From f3e4127bcc6c00a38e3cec5af88e158deac550f7 Mon Sep 17 00:00:00 2001 From: Denis Merigoux Date: Thu, 30 Mar 2023 15:09:45 +0200 Subject: [PATCH] Update assets --- french_law/js/french_law.js | 262781 ++++++++------- french_law/ocaml/law_source/aides_logement.ml | 355 +- 2 files changed, 135129 insertions(+), 128007 deletions(-) diff --git a/french_law/js/french_law.js b/french_law/js/french_law.js index 66c21eea..0d945a30 100644 --- a/french_law/js/french_law.js +++ b/french_law/js/french_law.js @@ -1,588 +1,580 @@ -//# 1 ".api_web.eobjs/jsoo/api_web.bc.runtime.js" +//# 1 "api_web.bc.runtime.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=runtime, use-js-string=true, version=5.1.1 - -//# 7 ".api_web.eobjs/jsoo/api_web.bc.runtime.js" (function - (Object){ - typeof globalThis !== "object" - && + (Object) + {typeof globalThis + !== + "object" + && (this - ? get() - : (Object.defineProperty - (Object.prototype, "_T_", {configurable: true, get: get}), + ?get() + :(Object.defineProperty + (Object.prototype,"_T_",{configurable:true,get:get}), _T_)); - function get(){ - var global = this || self; - global.globalThis = global; - delete Object.prototype._T_; - } - } + function get() + {var global=this || self; + global.globalThis = global; + delete Object.prototype._T_}} (Object)); -(function(globalThis){ - "use strict"; - var joo_global_object = globalThis; - function caml_int64_is_zero(x){return + x.isZero();} - function caml_str_repeat(n, s){ - if(n == 0) return ""; - if(s.repeat) return s.repeat(n); - var r = "", l = 0; - for(;;){ - if(n & 1) r += s; - n >>= 1; - if(n == 0) return r; - s += s; - l++; - if(l == 9) s.slice(0, 1); - } - } - var caml_int64_offset = Math.pow(2, - 24); - function caml_raise_constant(tag){throw tag;} - var caml_global_data = [0]; - function caml_raise_zero_divide(){ - caml_raise_constant(caml_global_data.Division_by_zero); - } - function MlInt64(lo, mi, hi){ - this.lo = lo & 0xffffff; - this.mi = mi & 0xffffff; - this.hi = hi & 0xffff; - } - MlInt64.prototype.caml_custom = "_j"; - MlInt64.prototype.copy = - function(){return new MlInt64(this.lo, this.mi, this.hi);}; - MlInt64.prototype.ucompare = - function(x){ - if(this.hi > x.hi) return 1; - if(this.hi < x.hi) return - 1; - if(this.mi > x.mi) return 1; - if(this.mi < x.mi) return - 1; - if(this.lo > x.lo) return 1; - if(this.lo < x.lo) return - 1; - return 0; - }; - MlInt64.prototype.compare = - function(x){ - var hi = this.hi << 16, xhi = x.hi << 16; - if(hi > xhi) return 1; - if(hi < xhi) return - 1; - if(this.mi > x.mi) return 1; - if(this.mi < x.mi) return - 1; - if(this.lo > x.lo) return 1; - if(this.lo < x.lo) return - 1; - return 0; - }; - MlInt64.prototype.neg = - function(){ - var - lo = - this.lo, - mi = - this.mi + (lo >> 24), - hi = - this.hi + (mi >> 24); - return new MlInt64(lo, mi, hi); - }; - MlInt64.prototype.add = - function(x){ - var - lo = this.lo + x.lo, - mi = this.mi + x.mi + (lo >> 24), - hi = this.hi + x.hi + (mi >> 24); - return new MlInt64(lo, mi, hi); - }; - MlInt64.prototype.sub = - function(x){ - var - lo = this.lo - x.lo, - mi = this.mi - x.mi + (lo >> 24), - hi = this.hi - x.hi + (mi >> 24); - return new MlInt64(lo, mi, hi); - }; - MlInt64.prototype.mul = - function(x){ - var - lo = this.lo * x.lo, - mi = (lo * caml_int64_offset | 0) + this.mi * x.lo + this.lo * x.mi, - hi = - (mi * caml_int64_offset | 0) + this.hi * x.lo + this.mi * x.mi - + this.lo * x.hi; - return new MlInt64(lo, mi, hi); - }; - MlInt64.prototype.isZero = - function(){return (this.lo | this.mi | this.hi) == 0;}; - MlInt64.prototype.isNeg = function(){return this.hi << 16 < 0;}; - MlInt64.prototype.and = - function(x){ - return new MlInt64(this.lo & x.lo, this.mi & x.mi, this.hi & x.hi); - }; - MlInt64.prototype.or = - function(x){ - return new MlInt64(this.lo | x.lo, this.mi | x.mi, this.hi | x.hi); - }; - MlInt64.prototype.xor = - function(x){ - return new MlInt64(this.lo ^ x.lo, this.mi ^ x.mi, this.hi ^ x.hi); - }; - MlInt64.prototype.shift_left = - function(s){ - s = s & 63; - if(s == 0) return this; - if(s < 24) - return new - MlInt64 - (this.lo << s, - this.mi << s | this.lo >> 24 - s, - this.hi << s | this.mi >> 24 - s); - if(s < 48) - return new - MlInt64 - (0, this.lo << s - 24, this.mi << s - 24 | this.lo >> 48 - s); - return new MlInt64(0, 0, this.lo << s - 48); - }; - MlInt64.prototype.shift_right_unsigned = - function(s){ - s = s & 63; - if(s == 0) return this; - if(s < 24) - return new - MlInt64 - (this.lo >> s | this.mi << 24 - s, - this.mi >> s | this.hi << 24 - s, - this.hi >> s); - if(s < 48) - return new - MlInt64 - (this.mi >> s - 24 | this.hi << 48 - s, this.hi >> s - 24, 0); - return new MlInt64(this.hi >> s - 48, 0, 0); - }; - MlInt64.prototype.shift_right = - function(s){ - s = s & 63; - if(s == 0) return this; - var h = this.hi << 16 >> 16; - if(s < 24) - return new - MlInt64 - (this.lo >> s | this.mi << 24 - s, - this.mi >> s | h << 24 - s, - this.hi << 16 >> s >>> 16); - var sign = this.hi << 16 >> 31; - if(s < 48) - return new - MlInt64 - (this.mi >> s - 24 | this.hi << 48 - s, - this.hi << 16 >> s - 24 >> 16, - sign & 0xffff); - return new MlInt64(this.hi << 16 >> s - 32, sign, sign); - }; - MlInt64.prototype.lsl1 = - function(){ - this.hi = this.hi << 1 | this.mi >> 23; - this.mi = (this.mi << 1 | this.lo >> 23) & 0xffffff; - this.lo = this.lo << 1 & 0xffffff; - }; - MlInt64.prototype.lsr1 = - function(){ - this.lo = (this.lo >>> 1 | this.mi << 23) & 0xffffff; - this.mi = (this.mi >>> 1 | this.hi << 23) & 0xffffff; - this.hi = this.hi >>> 1; - }; - MlInt64.prototype.udivmod = - function(x){ - var - offset = 0, - modulus = this.copy(), - divisor = x.copy(), - quotient = new MlInt64(0, 0, 0); - while(modulus.ucompare(divisor) > 0){offset++; divisor.lsl1();} - while(offset >= 0){ - offset--; - quotient.lsl1(); - if(modulus.ucompare(divisor) >= 0){ - quotient.lo++; - modulus = modulus.sub(divisor); - } - divisor.lsr1(); - } - return {quotient: quotient, modulus: modulus}; - }; - MlInt64.prototype.div = - function(y){ - var x = this; - if(y.isZero()) caml_raise_zero_divide(); - var sign = x.hi ^ y.hi; - if(x.hi & 0x8000) x = x.neg(); - if(y.hi & 0x8000) y = y.neg(); - var q = x.udivmod(y).quotient; - if(sign & 0x8000) q = q.neg(); - return q; - }; - MlInt64.prototype.mod = - function(y){ - var x = this; - if(y.isZero()) caml_raise_zero_divide(); - var sign = x.hi; - if(x.hi & 0x8000) x = x.neg(); - if(y.hi & 0x8000) y = y.neg(); - var r = x.udivmod(y).modulus; - if(sign & 0x8000) r = r.neg(); - return r; - }; - MlInt64.prototype.toInt = function(){return this.lo | this.mi << 24;}; - MlInt64.prototype.toFloat = - function(){ - return (this.hi << 16) * Math.pow(2, 32) + this.mi * Math.pow(2, 24) - + this.lo; - }; - MlInt64.prototype.toArray = - function(){ - return [this.hi >> 8, - this.hi & 0xff, - this.mi >> 16, - this.mi >> 8 & 0xff, - this.mi & 0xff, - this.lo >> 16, - this.lo >> 8 & 0xff, - this.lo & 0xff]; - }; - MlInt64.prototype.lo32 = - function(){return this.lo | (this.mi & 0xff) << 24;}; - MlInt64.prototype.hi32 = - function(){return this.mi >>> 8 & 0xffff | this.hi << 16;}; - function caml_int64_of_int32(x){ - return new MlInt64(x & 0xffffff, x >> 24 & 0xffffff, x >> 31 & 0xffff); - } - function caml_int64_to_int32(x){return x.toInt();} - function caml_int64_is_negative(x){return + x.isNeg();} - function caml_int64_neg(x){return x.neg();} - function caml_jsbytes_of_string(x){return x;} - function jsoo_sys_getenv(n){ - var process = globalThis.process; - if(process && process.env && process.env[n] != undefined) - return process.env[n]; - if(globalThis.jsoo_static_env && globalThis.jsoo_static_env[n]) - return globalThis.jsoo_static_env[n]; - } - var caml_record_backtrace_flag = 0; - (function(){ - var r = jsoo_sys_getenv("OCAMLRUNPARAM"); - if(r !== undefined){ - var l = r.split(","); - for(var i = 0; i < l.length; i++) - if(l[i] == "b"){ - caml_record_backtrace_flag = 1; - break; - } - else if(l[i].startsWith("b=")) - caml_record_backtrace_flag = + l[i].slice(2); +(function(globalThis) + {"use strict"; + var joo_global_object=globalThis; + function caml_int64_is_zero(x){return + x.isZero()} + function caml_str_repeat(n,s) + {if(n == 0)return ""; + if(s.repeat)return s.repeat(n); + var r="",l=0; + for(;;) + {if(n & 1)r += s; + n >>= 1; + if(n == 0)return r; + s += s; + l++; + if(l == 9)s.slice(0,1)}} + var caml_int64_offset=Math.pow(2,- 24); + function caml_raise_constant(tag){throw tag} + var caml_global_data=[0]; + function caml_raise_zero_divide() + {caml_raise_constant(caml_global_data.Division_by_zero)} + function MlInt64(lo,mi,hi) + {this.lo = lo & 0xffffff;this.mi = mi & 0xffffff;this.hi = hi & 0xffff} + MlInt64.prototype.caml_custom = "_j"; + MlInt64.prototype.copy + = + function(){return new MlInt64(this.lo,this.mi,this.hi)}; + MlInt64.prototype.ucompare + = + function(x) + {if(this.hi > x.hi)return 1; + if(this.hi < x.hi)return - 1; + if(this.mi > x.mi)return 1; + if(this.mi < x.mi)return - 1; + if(this.lo > x.lo)return 1; + if(this.lo < x.lo)return - 1; + return 0}; + MlInt64.prototype.compare + = + function(x) + {var hi=this.hi << 16,xhi=x.hi << 16; + if(hi > xhi)return 1; + if(hi < xhi)return - 1; + if(this.mi > x.mi)return 1; + if(this.mi < x.mi)return - 1; + if(this.lo > x.lo)return 1; + if(this.lo < x.lo)return - 1; + return 0}; + MlInt64.prototype.neg + = + function() + {var lo=- this.lo,mi=- this.mi + (lo >> 24),hi=- this.hi + (mi >> 24); + return new MlInt64(lo,mi,hi)}; + MlInt64.prototype.add + = + function(x) + {var + lo=this.lo + x.lo, + mi=this.mi + x.mi + (lo >> 24), + hi=this.hi + x.hi + (mi >> 24); + return new MlInt64(lo,mi,hi)}; + MlInt64.prototype.sub + = + function(x) + {var + lo=this.lo - x.lo, + mi=this.mi - x.mi + (lo >> 24), + hi=this.hi - x.hi + (mi >> 24); + return new MlInt64(lo,mi,hi)}; + MlInt64.prototype.mul + = + function(x) + {var + lo=this.lo * x.lo, + mi=(lo * caml_int64_offset | 0) + this.mi * x.lo + this.lo * x.mi, + hi= + (mi * caml_int64_offset | 0) + + + this.hi + * + x.lo + + + this.mi + * + x.mi + + + this.lo + * + x.hi; + return new MlInt64(lo,mi,hi)}; + MlInt64.prototype.isZero + = + function(){return (this.lo | this.mi | this.hi) == 0}; + MlInt64.prototype.isNeg = function(){return this.hi << 16 < 0}; + MlInt64.prototype.and + = + function(x) + {return new MlInt64(this.lo & x.lo,this.mi & x.mi,this.hi & x.hi)}; + MlInt64.prototype.or + = + function(x) + {return new MlInt64(this.lo | x.lo,this.mi | x.mi,this.hi | x.hi)}; + MlInt64.prototype.xor + = + function(x) + {return new MlInt64(this.lo ^ x.lo,this.mi ^ x.mi,this.hi ^ x.hi)}; + MlInt64.prototype.shift_left + = + function(s) + {s = s & 63; + if(s == 0)return this; + if(s < 24) + return new + MlInt64 + (this.lo << s, + this.mi << s | this.lo >> 24 - s, + this.hi << s | this.mi >> 24 - s); + if(s < 48) + return new + MlInt64 + (0,this.lo << s - 24,this.mi << s - 24 | this.lo >> 48 - s); + return new MlInt64(0,0,this.lo << s - 48)}; + MlInt64.prototype.shift_right_unsigned + = + function(s) + {s = s & 63; + if(s == 0)return this; + if(s < 24) + return new + MlInt64 + (this.lo >> s | this.mi << 24 - s, + this.mi >> s | this.hi << 24 - s, + this.hi >> s); + if(s < 48) + return new + MlInt64 + (this.mi >> s - 24 | this.hi << 48 - s,this.hi >> s - 24,0); + return new MlInt64(this.hi >> s - 48,0,0)}; + MlInt64.prototype.shift_right + = + function(s) + {s = s & 63; + if(s == 0)return this; + var h=this.hi << 16 >> 16; + if(s < 24) + return new + MlInt64 + (this.lo >> s | this.mi << 24 - s, + this.mi >> s | h << 24 - s, + this.hi << 16 >> s >>> 16); + var sign=this.hi << 16 >> 31; + if(s < 48) + return new + MlInt64 + (this.mi >> s - 24 | this.hi << 48 - s, + this.hi << 16 >> s - 24 >> 16, + sign & 0xffff); + return new MlInt64(this.hi << 16 >> s - 32,sign,sign)}; + MlInt64.prototype.lsl1 + = + function() + {this.hi = this.hi << 1 | this.mi >> 23; + this.mi = (this.mi << 1 | this.lo >> 23) & 0xffffff; + this.lo = this.lo << 1 & 0xffffff}; + MlInt64.prototype.lsr1 + = + function() + {this.lo = (this.lo >>> 1 | this.mi << 23) & 0xffffff; + this.mi = (this.mi >>> 1 | this.hi << 23) & 0xffffff; + this.hi = this.hi >>> 1}; + MlInt64.prototype.udivmod + = + function(x) + {var + offset=0, + modulus=this.copy(), + divisor=x.copy(), + quotient=new MlInt64(0,0,0); + while(modulus.ucompare(divisor) > 0){offset++;divisor.lsl1()} + while(offset >= 0) + {offset--; + quotient.lsl1(); + if(modulus.ucompare(divisor) >= 0) + {quotient.lo++;modulus = modulus.sub(divisor)} + divisor.lsr1()} + return {quotient:quotient,modulus:modulus}}; + MlInt64.prototype.div + = + function(y) + {var x=this; + if(y.isZero())caml_raise_zero_divide(); + var sign=x.hi ^ y.hi; + if(x.hi & 0x8000)x = x.neg(); + if(y.hi & 0x8000)y = y.neg(); + var q=x.udivmod(y).quotient; + if(sign & 0x8000)q = q.neg(); + return q}; + MlInt64.prototype.mod + = + function(y) + {var x=this; + if(y.isZero())caml_raise_zero_divide(); + var sign=x.hi; + if(x.hi & 0x8000)x = x.neg(); + if(y.hi & 0x8000)y = y.neg(); + var r=x.udivmod(y).modulus; + if(sign & 0x8000)r = r.neg(); + return r}; + MlInt64.prototype.toInt = function(){return this.lo | this.mi << 24}; + MlInt64.prototype.toFloat + = + function() + {return (this.hi << 16) + * + Math.pow(2,32) + + + this.mi + * + Math.pow(2,24) + + + this.lo}; + MlInt64.prototype.toArray + = + function() + {return [this.hi >> 8, + this.hi & 0xff, + this.mi >> 16, + this.mi >> 8 & 0xff, + this.mi & 0xff, + this.lo >> 16, + this.lo >> 8 & 0xff, + this.lo & 0xff]}; + MlInt64.prototype.lo32 + = + function(){return this.lo | (this.mi & 0xff) << 24}; + MlInt64.prototype.hi32 + = + function(){return this.mi >>> 8 & 0xffff | this.hi << 16}; + function caml_int64_of_int32(x) + {return new MlInt64(x & 0xffffff,x >> 24 & 0xffffff,x >> 31 & 0xffff)} + function caml_int64_to_int32(x){return x.toInt()} + function caml_int64_is_negative(x){return + x.isNeg()} + function caml_int64_neg(x){return x.neg()} + function caml_subarray_to_jsbytes(a,i,len) + {var f=String.fromCharCode; + if(i == 0 && len <= 4096 && len == a.length)return f.apply(null,a); + var s=""; + for(;0 < len;i += 1024,len -= 1024) + s += f.apply(null,a.slice(i,i + Math.min(len,1024))); + return s} + function caml_convert_string_to_bytes(s) + {if(s.t == 2) + s.c += caml_str_repeat(s.l - s.c.length,"\0"); + else + s.c = caml_subarray_to_jsbytes(s.c,0,s.c.length); + s.t = 0} + function caml_jsbytes_of_string(s) + {s.t & 6 && caml_convert_string_to_bytes(s);return s.c} + function caml_raise_with_arg(tag,arg){throw [0,tag,arg]} + function jsoo_is_ascii(s) + {if(s.length < 24) + {for(var i=0;i < s.length;i++)if(s.charCodeAt(i) > 127)return false; + return true} + else + return ! /[^\x00-\x7f]/.test(s)} + function caml_utf16_of_utf8(s) + {for(var b="",t="",c,c1,c2,v,i=0,l=s.length;i < l;i++) + {c1 = s.charCodeAt(i); + if(c1 < 0x80) + {for(var j=i + 1;j < l && (c1 = s.charCodeAt(j)) < 0x80;j++); + if(j - i > 512) + {t.substr(0,1);b += t;t = "";b += s.slice(i,j)} + else + t += s.slice(i,j); + if(j == l)break; + i = j} + v = 1; + if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128) + {c = c2 + (c1 << 6); + if(c1 < 0xe0) + {v = c - 0x3080;if(v < 0x80)v = 1} + else + {v = 2; + if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128) + {c = c2 + (c << 6); + if(c1 < 0xf0) + {v = c - 0xe2080; + if(v < 0x800 || v >= 0xd7ff && v < 0xe000)v = 2} + else + {v = 3; + if + (++i + < + l + && + ((c2 = s.charCodeAt(i)) & - 64) + == + 128 + && + c1 + < + 0xf5) + {v = c2 - 0x3c82080 + (c << 6); + if(v < 0x10000 || v > 0x10ffff)v = 3}}}}} + if(v < 4) + {i -= v;t += "\ufffd"} else - continue; - } - } - ()); - function caml_exn_with_js_backtrace(exn, force){ - if(! exn.js_error || force || exn[0] == 248) - exn.js_error = new globalThis.Error("Js exception containing backtrace"); - return exn; - } - function caml_maybe_attach_backtrace(exn, force){ - return caml_record_backtrace_flag - ? caml_exn_with_js_backtrace(exn, force) - : exn; - } - function caml_raise_with_arg(tag, arg){ - throw caml_maybe_attach_backtrace([0, tag, arg]); - } - function caml_string_of_jsbytes(x){return x;} - function caml_raise_with_string(tag, msg){ - caml_raise_with_arg(tag, caml_string_of_jsbytes(msg)); - } - function caml_invalid_argument(msg){ - caml_raise_with_string(caml_global_data.Invalid_argument, msg); - } - function caml_parse_format(fmt){ - fmt = caml_jsbytes_of_string(fmt); - var len = fmt.length; - if(len > 31) caml_invalid_argument("format_int: format too long"); - var - f = - {justify: "+", - signstyle: "-", - filler: " ", - alternate: false, - base: 0, - signedconv: false, - width: 0, - uppercase: false, - sign: 1, - prec: - 1, - conv: "f"}; - for(var i = 0; i < len; i++){ - var c = fmt.charAt(i); - switch(c){ - case "-": - f.justify = "-"; break; - case "+": - case " ": - f.signstyle = c; break; - case "0": - f.filler = "0"; break; - case "#": - f.alternate = true; break; - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - f.width = 0; - while(c = fmt.charCodeAt(i) - 48, c >= 0 && c <= 9){f.width = f.width * 10 + c; i++;} - i--; - break; - case ".": - f.prec = 0; - i++; - while(c = fmt.charCodeAt(i) - 48, c >= 0 && c <= 9){f.prec = f.prec * 10 + c; i++;} - i--; - case "d": - case "i": - f.signedconv = true; - case "u": - f.base = 10; break; - case "x": - f.base = 16; break; - case "X": - f.base = 16; f.uppercase = true; break; - case "o": - f.base = 8; break; - case "e": - case "f": - case "g": - f.signedconv = true; f.conv = c; break; - case "E": - case "F": - case "G": - f.signedconv = true; - f.uppercase = true; - f.conv = c.toLowerCase(); - break; - } - } - return f; - } - function caml_finish_formatting(f, rawbuffer){ - if(f.uppercase) rawbuffer = rawbuffer.toUpperCase(); - var len = rawbuffer.length; - if(f.signedconv && (f.sign < 0 || f.signstyle != "-")) len++; - if(f.alternate){if(f.base == 8) len += 1; if(f.base == 16) len += 2;} - var buffer = ""; - if(f.justify == "+" && f.filler == " ") - for(var i = len; i < f.width; i++) buffer += " "; - if(f.signedconv) - if(f.sign < 0) - buffer += "-"; - else if(f.signstyle != "-") buffer += f.signstyle; - if(f.alternate && f.base == 8) buffer += "0"; - if(f.alternate && f.base == 16) buffer += f.uppercase ? "0X" : "0x"; - if(f.justify == "+" && f.filler == "0") - for(var i = len; i < f.width; i++) buffer += "0"; - buffer += rawbuffer; - if(f.justify == "-") for(var i = len; i < f.width; i++) buffer += " "; - return caml_string_of_jsbytes(buffer); - } - function caml_int64_format(fmt, x){ - var f = caml_parse_format(fmt); - if(f.signedconv && caml_int64_is_negative(x)){f.sign = - 1; x = caml_int64_neg(x);} - var - buffer = "", - wbase = caml_int64_of_int32(f.base), - cvtbl = "0123456789abcdef"; - do{ - var p = x.udivmod(wbase); - x = p.quotient; - buffer = cvtbl.charAt(caml_int64_to_int32(p.modulus)) + buffer; - } - while - (! caml_int64_is_zero(x)); - if(f.prec >= 0){ - f.filler = " "; - var n = f.prec - buffer.length; - if(n > 0) buffer = caml_str_repeat(n, "0") + buffer; - } - return caml_finish_formatting(f, buffer); - } - function caml_expm1_float(x){return Math.expm1(x);} - function caml_ml_condition_broadcast(t){return 0;} - function jsoo_is_ascii(s){ - if(s.length < 24){ - for(var i = 0; i < s.length; i++) if(s.charCodeAt(i) > 127) return false; - return true; - } + if(v > 0xffff) + t += String.fromCharCode(0xd7c0 + (v >> 10),0xdc00 + (v & 0x3FF)); + else + t += String.fromCharCode(v); + if(t.length > 1024){t.substr(0,1);b += t;t = ""}} + return b + t} + function MlBytes(tag,contents,length) + {this.t = tag;this.c = contents;this.l = length} + MlBytes.prototype.toString + = + function() + {switch(this.t) + {case 9:return this.c; + default:caml_convert_string_to_bytes(this);case 0: + if(jsoo_is_ascii(this.c)){this.t = 9;return this.c}this.t = 8; + case 8:return this.c + }}; + MlBytes.prototype.toUtf16 + = + function() + {var r=this.toString(); + if(this.t == 9)return r; + return caml_utf16_of_utf8(r)}; + MlBytes.prototype.slice + = + function() + {var content=this.t == 4?this.c.slice():this.c; + return new MlBytes(this.t,content,this.l)}; + function caml_bytes_of_jsbytes(s){return new MlBytes(0,s,s.length)} + function caml_string_of_jsbytes(s){return caml_bytes_of_jsbytes(s)} + function caml_raise_with_string(tag,msg) + {caml_raise_with_arg(tag,caml_string_of_jsbytes(msg))} + function caml_invalid_argument(msg) + {caml_raise_with_string(caml_global_data.Invalid_argument,msg)} + function caml_parse_format(fmt) + {fmt = caml_jsbytes_of_string(fmt); + var len=fmt.length; + if(len > 31)caml_invalid_argument("format_int: format too long"); + var + f= + {justify:"+", + signstyle:"-", + filler:" ", + alternate:false, + base:0, + signedconv:false, + width:0, + uppercase:false, + sign:1, + prec:- 1, + conv:"f"}; + for(var i=0;i < len;i++) + {var c=fmt.charAt(i); + switch(c) + {case "-":f.justify = "-";break; + case "+": + case " ":f.signstyle = c;break; + case "0":f.filler = "0";break; + case "#":f.alternate = true;break; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + f.width = 0; + while(c = fmt.charCodeAt(i) - 48,c >= 0 && c <= 9) + {f.width = f.width * 10 + c;i++} + i--; + break; + case ".": + f.prec = 0; + i++; + while(c = fmt.charCodeAt(i) - 48,c >= 0 && c <= 9) + {f.prec = f.prec * 10 + c;i++} + i--; + case "d": + case "i":f.signedconv = true; + case "u":f.base = 10;break; + case "x":f.base = 16;break; + case "X":f.base = 16;f.uppercase = true;break; + case "o":f.base = 8;break; + case "e": + case "f": + case "g":f.signedconv = true;f.conv = c;break; + case "E": + case "F": + case "G": + f.signedconv = true; + f.uppercase = true; + f.conv = c.toLowerCase(); + break + }} + return f} + function caml_finish_formatting(f,rawbuffer) + {if(f.uppercase)rawbuffer = rawbuffer.toUpperCase(); + var len=rawbuffer.length; + if(f.signedconv && (f.sign < 0 || f.signstyle != "-"))len++; + if(f.alternate){if(f.base == 8)len += 1;if(f.base == 16)len += 2} + var buffer=""; + if(f.justify == "+" && f.filler == " ") + for(var i=len;i < f.width;i++)buffer += " "; + if(f.signedconv) + if(f.sign < 0) + buffer += "-"; + else + if(f.signstyle != "-")buffer += f.signstyle; + if(f.alternate && f.base == 8)buffer += "0"; + if(f.alternate && f.base == 16)buffer += f.uppercase?"0X":"0x"; + if(f.justify == "+" && f.filler == "0") + for(var i=len;i < f.width;i++)buffer += "0"; + buffer += rawbuffer; + if(f.justify == "-")for(var i=len;i < f.width;i++)buffer += " "; + return caml_string_of_jsbytes(buffer)} + function caml_int64_format(fmt,x) + {var f=caml_parse_format(fmt); + if(f.signedconv && caml_int64_is_negative(x)) + {f.sign = - 1;x = caml_int64_neg(x)} + var + buffer="", + wbase=caml_int64_of_int32(f.base), + cvtbl="0123456789abcdef"; + do + {var p=x.udivmod(wbase); + x = p.quotient; + buffer = cvtbl.charAt(caml_int64_to_int32(p.modulus)) + buffer} + while + (! caml_int64_is_zero(x)); + if(f.prec >= 0) + {f.filler = " "; + var n=f.prec - buffer.length; + if(n > 0)buffer = caml_str_repeat(n,"0") + buffer} + return caml_finish_formatting(f,buffer)} + function caml_expm1_float(x){return Math.expm1(x)} + function caml_ml_condition_broadcast(t){return 0} + function caml_jsstring_of_string(s){return s.toUtf16()} + function fs_node_supported() + {return typeof globalThis.process + !== + "undefined" + && + typeof globalThis.process.versions + !== + "undefined" + && + typeof globalThis.process.versions.node + !== + "undefined"} + function make_path_is_absolute() + {function posix(path) + {if(path.charAt(0) === "/")return ["",path.substring(1)];return} + function win32(path) + {var + splitDeviceRe= + /^([a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?([\\/])?([\s\S]*?)$/, + result=splitDeviceRe.exec(path), + device=result[1] || "", + isUnc=Boolean(device && device.charAt(1) !== ":"); + if(Boolean(result[2] || isUnc)) + {var root=result[1] || "",sep=result[2] || ""; + return [root,path.substring(root.length + sep.length)]} + return} + return fs_node_supported() + && + globalThis.process + && + globalThis.process.platform + ?globalThis.process.platform === "win32"?win32:posix + :posix} + var path_is_absolute=make_path_is_absolute(); + function caml_trailing_slash(name) + {return name.slice(- 1) !== "/"?name + "/":name} + if(fs_node_supported() && globalThis.process && globalThis.process.cwd) + var caml_current_dir=globalThis.process.cwd().replace(/\\/g,"/"); else - return ! /[^\x00-\x7f]/.test(s); - } - function caml_utf16_of_utf8(s){ - for(var b = "", t = "", c, c1, c2, v, i = 0, l = s.length; i < l; i++){ - c1 = s.charCodeAt(i); - if(c1 < 0x80){ - for(var j = i + 1; j < l && (c1 = s.charCodeAt(j)) < 0x80; j++) ; - if(j - i > 512){ - t.substr(0, 1); - b += t; - t = ""; - b += s.slice(i, j); - } - else - t += s.slice(i, j); - if(j == l) break; - i = j; - } - v = 1; - if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128){ - c = c2 + (c1 << 6); - if(c1 < 0xe0){ - v = c - 0x3080; - if(v < 0x80) v = 1; - } - else{ - v = 2; - if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128){ - c = c2 + (c << 6); - if(c1 < 0xf0){ - v = c - 0xe2080; - if(v < 0x800 || v >= 0xd7ff && v < 0xe000) v = 2; - } - else{ - v = 3; - if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128 && c1 < 0xf5){ - v = c2 - 0x3c82080 + (c << 6); - if(v < 0x10000 || v > 0x10ffff) v = 3; - } - } - } - } - } - if(v < 4){ - i -= v; - t += "\ufffd"; - } - else if(v > 0xffff) - t += String.fromCharCode(0xd7c0 + (v >> 10), 0xdc00 + (v & 0x3FF)); - else - t += String.fromCharCode(v); - if(t.length > 1024){t.substr(0, 1); b += t; t = "";} - } - return b + t; - } - function caml_jsstring_of_string(s){ - if(jsoo_is_ascii(s)) return s; - return caml_utf16_of_utf8(s); - } - function fs_node_supported(){ - return typeof globalThis.process !== "undefined" - && typeof globalThis.process.versions !== "undefined" - && typeof globalThis.process.versions.node !== "undefined"; - } - function make_path_is_absolute(){ - function posix(path){ - if(path.charAt(0) === "/") return ["", path.substring(1)]; - return; - } - function win32(path){ - var - splitDeviceRe = - /^([a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?([\\/])?([\s\S]*?)$/, - result = splitDeviceRe.exec(path), - device = result[1] || "", - isUnc = Boolean(device && device.charAt(1) !== ":"); - if(Boolean(result[2] || isUnc)){ - var root = result[1] || "", sep = result[2] || ""; - return [root, path.substring(root.length + sep.length)]; - } - return; - } - return fs_node_supported() && globalThis.process - && globalThis.process.platform - ? globalThis.process.platform === "win32" ? win32 : posix - : posix; - } - var path_is_absolute = make_path_is_absolute(); - function caml_trailing_slash(name){ - return name.slice(- 1) !== "/" ? name + "/" : name; - } - if(fs_node_supported() && globalThis.process && globalThis.process.cwd) - var caml_current_dir = globalThis.process.cwd().replace(/\\/g, "/"); - else - var caml_current_dir = "/static"; - caml_current_dir = caml_trailing_slash(caml_current_dir); - function caml_make_path(name){ - name = caml_jsstring_of_string(name); - if(! path_is_absolute(name)) name = caml_current_dir + name; + var caml_current_dir="/static"; + caml_current_dir = caml_trailing_slash(caml_current_dir); + function caml_make_path(name) + {name = caml_jsstring_of_string(name); + if(! path_is_absolute(name))name = caml_current_dir + name; + var comp0=path_is_absolute(name),comp=comp0[1].split("/"),ncomp=[]; + for(var i=0;i < comp.length;i++) + switch(comp[i]) + {case "..":if(ncomp.length > 1)ncomp.pop();break; + case ".":break; + case "":break; + default:ncomp.push(comp[i]);break} + ncomp.unshift(comp0[0]); + ncomp.orig = name; + return ncomp} + function caml_utf8_of_utf16(s) + {for(var b="",t=b,c,d,i=0,l=s.length;i < l;i++) + {c = s.charCodeAt(i); + if(c < 0x80) + {for(var j=i + 1;j < l && (c = s.charCodeAt(j)) < 0x80;j++); + if(j - i > 512) + {t.substr(0,1);b += t;t = "";b += s.slice(i,j)} + else + t += s.slice(i,j); + if(j == l)break; + i = j} + if(c < 0x800) + {t += String.fromCharCode(0xc0 | c >> 6); + t += String.fromCharCode(0x80 | c & 0x3f)} + else + if(c < 0xd800 || c >= 0xdfff) + t + += + String.fromCharCode + (0xe0 | c >> 12,0x80 | c >> 6 & 0x3f,0x80 | c & 0x3f); + else + if + (c + >= + 0xdbff + || + i + + + 1 + == + l + || + (d = s.charCodeAt(i + 1)) + < + 0xdc00 + || + d + > + 0xdfff) + t += "\xef\xbf\xbd"; + else + {i++; + c = (c << 10) + d - 0x35fdc00; + t + += + String.fromCharCode + (0xf0 | c >> 18, + 0x80 | c >> 12 & 0x3f, + 0x80 | c >> 6 & 0x3f, + 0x80 | c & 0x3f)} + if(t.length > 1024){t.substr(0,1);b += t;t = ""}} + return b + t} + function caml_bytes_of_utf16_jsstring(s) + {var tag=9; + if(! jsoo_is_ascii(s))tag = 8,s = caml_utf8_of_utf16(s); + return new MlBytes(tag,s,s.length)} + function caml_string_of_jsstring(s) + {return caml_bytes_of_utf16_jsstring(s)} var - comp0 = path_is_absolute(name), - comp = comp0[1].split("/"), - ncomp = []; - for(var i = 0; i < comp.length; i++) - switch(comp[i]){ - case "..": - if(ncomp.length > 1) ncomp.pop(); break; - case ".": break; - case "": break; - default: ncomp.push(comp[i]); break; - } - ncomp.unshift(comp0[0]); - ncomp.orig = name; - return ncomp; - } - function caml_utf8_of_utf16(s){ - for(var b = "", t = b, c, d, i = 0, l = s.length; i < l; i++){ - c = s.charCodeAt(i); - if(c < 0x80){ - for(var j = i + 1; j < l && (c = s.charCodeAt(j)) < 0x80; j++) ; - if(j - i > 512){ - t.substr(0, 1); - b += t; - t = ""; - b += s.slice(i, j); - } - else - t += s.slice(i, j); - if(j == l) break; - i = j; - } - if(c < 0x800){ - t += String.fromCharCode(0xc0 | c >> 6); - t += String.fromCharCode(0x80 | c & 0x3f); - } - else if(c < 0xd800 || c >= 0xdfff) - t += - String.fromCharCode - (0xe0 | c >> 12, 0x80 | c >> 6 & 0x3f, 0x80 | c & 0x3f); - else if - (c >= 0xdbff || i + 1 == l || (d = s.charCodeAt(i + 1)) < 0xdc00 - || d > 0xdfff) - t += "\xef\xbf\xbd"; - else{ - i++; - c = (c << 10) + d - 0x35fdc00; - t += - String.fromCharCode - (0xf0 | c >> 18, - 0x80 | c >> 12 & 0x3f, - 0x80 | c >> 6 & 0x3f, - 0x80 | c & 0x3f); - } - if(t.length > 1024){t.substr(0, 1); b += t; t = "";} - } - return b + t; - } - function caml_string_of_jsstring(s){ - return jsoo_is_ascii(s) - ? caml_string_of_jsbytes(s) - : caml_string_of_jsbytes(caml_utf8_of_utf16(s)); - } - var - unix_error = + unix_error= ["E2BIG", "EACCES", "EAGAIN", @@ -651,6145 +643,4848 @@ "EHOSTUNREACH", "ELOOP", "EOVERFLOW"]; - function make_unix_err_args(code, syscall, path, errno){ - var variant = unix_error.indexOf(code); - if(variant < 0){if(errno == null) errno = - 9999; variant = [0, errno];} - var - args = - [variant, - caml_string_of_jsstring(syscall || ""), - caml_string_of_jsstring(path || "")]; - return args; - } - var caml_named_values = {}; - function caml_named_value(nm){return caml_named_values[nm];} - function caml_raise_with_args(tag, args){ - throw caml_maybe_attach_backtrace([0, tag].concat(args)); - } - function caml_subarray_to_jsbytes(a, i, len){ - var f = String.fromCharCode; - if(i == 0 && len <= 4096 && len == a.length) return f.apply(null, a); - var s = ""; - for(; 0 < len; i += 1024, len -= 1024) - s += f.apply(null, a.slice(i, i + Math.min(len, 1024))); - return s; - } - function caml_convert_string_to_bytes(s){ - if(s.t == 2) - s.c += caml_str_repeat(s.l - s.c.length, "\0"); - else - s.c = caml_subarray_to_jsbytes(s.c, 0, s.c.length); - s.t = 0; - } - function MlBytes(tag, contents, length){ - this.t = tag; - this.c = contents; - this.l = length; - } - MlBytes.prototype.toString = - function(){ - switch(this.t){ - case 9: - return this.c; - default: caml_convert_string_to_bytes(this); - case 0: - if(jsoo_is_ascii(this.c)){this.t = 9; return this.c;} this.t = 8; - case 8: - return this.c; - } - }; - MlBytes.prototype.toUtf16 = - function(){ - var r = this.toString(); - if(this.t == 9) return r; - return caml_utf16_of_utf8(r); - }; - MlBytes.prototype.slice = - function(){ - var content = this.t == 4 ? this.c.slice() : this.c; - return new MlBytes(this.t, content, this.l); - }; - function caml_is_ml_bytes(s){return s instanceof MlBytes;} - function caml_is_ml_string(s){ - return typeof s === "string" && ! /[^\x00-\xff]/.test(s); - } - function caml_bytes_of_array(a){ - if(! (a instanceof Uint8Array)) a = new Uint8Array(a); - return new MlBytes(4, a, a.length); - } - function caml_bytes_of_jsbytes(s){return new MlBytes(0, s, s.length);} - function caml_bytes_of_string(s){ - return caml_bytes_of_jsbytes(caml_jsbytes_of_string(s)); - } - function caml_raise_sys_error(msg){ - caml_raise_with_string(caml_global_data.Sys_error, msg); - } - function caml_raise_no_such_file(name){ - caml_raise_sys_error(name + ": No such file or directory"); - } - function caml_convert_bytes_to_array(s){ - var a = new Uint8Array(s.l), b = s.c, l = b.length, i = 0; - for(; i < l; i++) a[i] = b.charCodeAt(i); - for(l = s.l; i < l; i++) a[i] = 0; - s.c = a; - s.t = 4; - return a; - } - function caml_uint8_array_of_bytes(s){ - if(s.t != 4) caml_convert_bytes_to_array(s); - return s.c; - } - function caml_create_bytes(len){ - if(len < 0) caml_invalid_argument("Bytes.create"); - return new MlBytes(len ? 2 : 9, "", len); - } - function caml_ml_bytes_length(s){return s.l;} - function caml_blit_bytes(s1, i1, s2, i2, len){ - if(len == 0) return 0; - if(i2 == 0 && (len >= s2.l || s2.t == 2 && len >= s2.c.length)){ - s2.c = - s1.t == 4 - ? caml_subarray_to_jsbytes(s1.c, i1, len) - : i1 == 0 && s1.c.length == len ? s1.c : s1.c.substr(i1, len); - s2.t = s2.c.length == s2.l ? 0 : 2; - } - else if(s2.t == 2 && i2 == s2.c.length){ - s2.c += - s1.t == 4 - ? caml_subarray_to_jsbytes(s1.c, i1, len) - : i1 == 0 && s1.c.length == len ? s1.c : s1.c.substr(i1, len); - s2.t = s2.c.length == s2.l ? 0 : 2; - } - else{ - if(s2.t != 4) caml_convert_bytes_to_array(s2); - var c1 = s1.c, c2 = s2.c; - if(s1.t == 4) - if(i2 <= i1) - for(var i = 0; i < len; i++) c2[i2 + i] = c1[i1 + i]; - else - for(var i = len - 1; i >= 0; i--) c2[i2 + i] = c1[i1 + i]; - else{ - var l = Math.min(len, c1.length - i1); - for(var i = 0; i < l; i++) c2[i2 + i] = c1.charCodeAt(i1 + i); - for(; i < len; i++) c2[i2 + i] = 0; - } - } - return 0; - } - function MlFile(){} - function MlFakeFile(content){this.data = content;} - MlFakeFile.prototype = new MlFile(); - MlFakeFile.prototype.constructor = MlFakeFile; - MlFakeFile.prototype.truncate = - function(len){ - var old = this.data; - this.data = caml_create_bytes(len | 0); - caml_blit_bytes(old, 0, this.data, 0, len); - }; - MlFakeFile.prototype.length = - function(){return caml_ml_bytes_length(this.data);}; - MlFakeFile.prototype.write = - function(offset, buf, pos, len){ - var clen = this.length(); - if(offset + len >= clen){ - var new_str = caml_create_bytes(offset + len), old_data = this.data; - this.data = new_str; - caml_blit_bytes(old_data, 0, this.data, 0, clen); - } - caml_blit_bytes(caml_bytes_of_array(buf), pos, this.data, offset, len); - return 0; - }; - MlFakeFile.prototype.read = - function(offset, buf, pos, len){ - var clen = this.length(); - if(offset + len >= clen) len = clen - offset; - if(len){ - var data = caml_create_bytes(len | 0); - caml_blit_bytes(this.data, offset, data, 0, len); - buf.set(caml_uint8_array_of_bytes(data), pos); - } - return len; - }; - function MlFakeFd(name, file, flags){ - this.file = file; - this.name = name; - this.flags = flags; - } - MlFakeFd.prototype.err_closed = - function(){ - caml_raise_sys_error(this.name + ": file descriptor already closed"); - }; - MlFakeFd.prototype.length = - function(){if(this.file) return this.file.length(); this.err_closed();}; - MlFakeFd.prototype.write = - function(offset, buf, pos, len){ - if(this.file) return this.file.write(offset, buf, pos, len); - this.err_closed(); - }; - MlFakeFd.prototype.read = - function(offset, buf, pos, len){ - if(this.file) return this.file.read(offset, buf, pos, len); - this.err_closed(); - }; - MlFakeFd.prototype.close = function(){this.file = undefined;}; - function MlFakeDevice(root, f){ - this.content = {}; - this.root = root; - this.lookupFun = f; - } - MlFakeDevice.prototype.nm = function(name){return this.root + name;}; - MlFakeDevice.prototype.create_dir_if_needed = - function(name){ - var comp = name.split("/"), res = ""; - for(var i = 0; i < comp.length - 1; i++){ - res += comp[i] + "/"; - if(this.content[res]) continue; - this.content[res] = Symbol("directory"); - } - }; - MlFakeDevice.prototype.slash = - function(name){return /\/$/.test(name) ? name : name + "/";}; - MlFakeDevice.prototype.lookup = - function(name){ - if(! this.content[name] && this.lookupFun){ + function make_unix_err_args(code,syscall,path,errno) + {var variant=unix_error.indexOf(code); + if(variant < 0){if(errno == null)errno = - 9999;variant = [0,errno]} var - res = - this.lookupFun - (caml_string_of_jsbytes(this.root), caml_string_of_jsbytes(name)); - if(res !== 0){ - this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_bytes_of_string(res[1])); - } - } - }; - MlFakeDevice.prototype.exists = - function(name){ - if(name == "") return 1; - var name_slash = this.slash(name); - if(this.content[name_slash]) return 1; - this.lookup(name); - return this.content[name] ? 1 : 0; - }; - MlFakeDevice.prototype.isFile = - function(name){return this.exists(name) && ! this.is_dir(name) ? 1 : 0;}; - MlFakeDevice.prototype.mkdir = - function(name, mode, raise_unix){ - var unix_error = raise_unix && caml_named_value("Unix.Unix_error"); - if(this.exists(name)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("EEXIST", "mkdir", this.nm(name))); + args= + [variant, + caml_string_of_jsstring(syscall || ""), + caml_string_of_jsstring(path || "")]; + return args} + var caml_named_values={}; + function caml_named_value(nm){return caml_named_values[nm]} + function caml_raise_with_args(tag,args){throw [0,tag].concat(args)} + function caml_is_ml_bytes(s){return s instanceof MlBytes} + function caml_is_ml_string(s){return caml_is_ml_bytes(s)} + function caml_bytes_of_array(a) + {if(! (a instanceof Uint8Array))a = new Uint8Array(a); + return new MlBytes(4,a,a.length)} + function caml_bytes_of_string(s){return s} + function caml_raise_sys_error(msg) + {caml_raise_with_string(caml_global_data.Sys_error,msg)} + function caml_raise_no_such_file(name) + {caml_raise_sys_error(name + ": No such file or directory")} + function caml_convert_bytes_to_array(s) + {var a=new Uint8Array(s.l),b=s.c,l=b.length,i=0; + for(;i < l;i++)a[i] = b.charCodeAt(i); + for(l = s.l;i < l;i++)a[i] = 0; + s.c = a; + s.t = 4; + return a} + function caml_uint8_array_of_bytes(s) + {if(s.t != 4)caml_convert_bytes_to_array(s);return s.c} + function caml_create_bytes(len) + {if(len < 0)caml_invalid_argument("Bytes.create"); + return new MlBytes(len?2:9,"",len)} + function caml_ml_bytes_length(s){return s.l} + function caml_blit_bytes(s1,i1,s2,i2,len) + {if(len == 0)return 0; + if(i2 == 0 && (len >= s2.l || s2.t == 2 && len >= s2.c.length)) + {s2.c + = + s1.t == 4 + ?caml_subarray_to_jsbytes(s1.c,i1,len) + :i1 == 0 && s1.c.length == len?s1.c:s1.c.substr(i1,len); + s2.t = s2.c.length == s2.l?0:2} else - caml_raise_sys_error(name + ": File exists"); - var parent = /^(.*)\/[^/]+/.exec(name); - parent = parent && parent[1] || ""; - if(! this.exists(parent)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("ENOENT", "mkdir", this.nm(parent))); - else - caml_raise_sys_error(parent + ": No such file or directory"); - if(! this.is_dir(parent)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("ENOTDIR", "mkdir", this.nm(parent))); - else - caml_raise_sys_error(parent + ": Not a directory"); - this.create_dir_if_needed(this.slash(name)); - }; - MlFakeDevice.prototype.rmdir = - function(name, raise_unix){ - var - unix_error = raise_unix && caml_named_value("Unix.Unix_error"), - name_slash = name == "" ? "" : this.slash(name), - r = new RegExp("^" + name_slash + "([^/]+)"); - if(! this.exists(name)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("ENOENT", "rmdir", this.nm(name))); - else - caml_raise_sys_error(name + ": No such file or directory"); - if(! this.is_dir(name)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("ENOTDIR", "rmdir", this.nm(name))); - else - caml_raise_sys_error(name + ": Not a directory"); - for(var n in this.content) - if(n.match(r)) + if(s2.t == 2 && i2 == s2.c.length) + {s2.c + += + s1.t == 4 + ?caml_subarray_to_jsbytes(s1.c,i1,len) + :i1 == 0 && s1.c.length == len?s1.c:s1.c.substr(i1,len); + s2.t = s2.c.length == s2.l?0:2} + else + {if(s2.t != 4)caml_convert_bytes_to_array(s2); + var c1=s1.c,c2=s2.c; + if(s1.t == 4) + if(i2 <= i1) + for(var i=0;i < len;i++)c2[i2 + i] = c1[i1 + i]; + else + for(var i=len - 1;i >= 0;i--)c2[i2 + i] = c1[i1 + i]; + else + {var l=Math.min(len,c1.length - i1); + for(var i=0;i < l;i++)c2[i2 + i] = c1.charCodeAt(i1 + i); + for(;i < len;i++)c2[i2 + i] = 0}} + return 0} + function MlFile(){} + function MlFakeFile(content){this.data = content} + MlFakeFile.prototype = new MlFile(); + MlFakeFile.prototype.constructor = MlFakeFile; + MlFakeFile.prototype.truncate + = + function(len) + {var old=this.data; + this.data = caml_create_bytes(len | 0); + caml_blit_bytes(old,0,this.data,0,len)}; + MlFakeFile.prototype.length + = + function(){return caml_ml_bytes_length(this.data)}; + MlFakeFile.prototype.write + = + function(offset,buf,pos,len) + {var clen=this.length(); + if(offset + len >= clen) + {var new_str=caml_create_bytes(offset + len),old_data=this.data; + this.data = new_str; + caml_blit_bytes(old_data,0,this.data,0,clen)} + caml_blit_bytes(caml_bytes_of_array(buf),pos,this.data,offset,len); + return 0}; + MlFakeFile.prototype.read + = + function(offset,buf,pos,len) + {var clen=this.length(); + if(offset + len >= clen)len = clen - offset; + if(len) + {var data=caml_create_bytes(len | 0); + caml_blit_bytes(this.data,offset,data,0,len); + buf.set(caml_uint8_array_of_bytes(data),pos)} + return len}; + function MlFakeFd(name,file,flags) + {this.file = file;this.name = name;this.flags = flags} + MlFakeFd.prototype.err_closed + = + function() + {caml_raise_sys_error(this.name + ": file descriptor already closed")}; + MlFakeFd.prototype.length + = + function(){if(this.file)return this.file.length();this.err_closed()}; + MlFakeFd.prototype.write + = + function(offset,buf,pos,len) + {if(this.file)return this.file.write(offset,buf,pos,len); + this.err_closed()}; + MlFakeFd.prototype.read + = + function(offset,buf,pos,len) + {if(this.file)return this.file.read(offset,buf,pos,len); + this.err_closed()}; + MlFakeFd.prototype.close = function(){this.file = undefined}; + function MlFakeDevice(root,f) + {this.content = {};this.root = root;this.lookupFun = f} + MlFakeDevice.prototype.nm = function(name){return this.root + name}; + MlFakeDevice.prototype.create_dir_if_needed + = + function(name) + {var comp=name.split("/"),res=""; + for(var i=0;i < comp.length - 1;i++) + {res += comp[i] + "/"; + if(this.content[res])continue; + this.content[res] = Symbol("directory")}}; + MlFakeDevice.prototype.slash + = + function(name){return /\/$/.test(name)?name:name + "/"}; + MlFakeDevice.prototype.lookup + = + function(name) + {if(! this.content[name] && this.lookupFun) + {var + res= + this.lookupFun + (caml_string_of_jsbytes(this.root),caml_string_of_jsbytes(name)); + if(res !== 0) + {this.create_dir_if_needed(name); + this.content[name] = new MlFakeFile(caml_bytes_of_string(res[1]))}}}; + MlFakeDevice.prototype.exists + = + function(name) + {if(name == "")return 1; + var name_slash=this.slash(name); + if(this.content[name_slash])return 1; + this.lookup(name); + return this.content[name]?1:0}; + MlFakeDevice.prototype.mkdir + = + function(name,mode,raise_unix) + {var unix_error=raise_unix && caml_named_value("Unix.Unix_error"); + if(this.exists(name)) if(unix_error) caml_raise_with_args - (unix_error, make_unix_err_args("ENOTEMPTY", "rmdir", this.nm(name))); + (unix_error,make_unix_err_args("EEXIST","mkdir",this.nm(name))); else - caml_raise_sys_error(this.nm(name) + ": Directory not empty"); - delete this.content[name_slash]; - }; - MlFakeDevice.prototype.readdir = - function(name){ - var name_slash = name == "" ? "" : this.slash(name); - if(! this.exists(name)) - caml_raise_sys_error(name + ": No such file or directory"); - if(! this.is_dir(name)) caml_raise_sys_error(name + ": Not a directory"); - var r = new RegExp("^" + name_slash + "([^/]+)"), seen = {}, a = []; - for(var n in this.content){ - var m = n.match(r); - if(m && ! seen[m[1]]){seen[m[1]] = true; a.push(m[1]);} - } - return a; - }; - MlFakeDevice.prototype.opendir = - function(name, raise_unix){ - var - unix_error = raise_unix && caml_named_value("Unix.Unix_error"), - a = this.readdir(name), - c = false, - i = 0; - return {readSync: - function(){ - if(c) - if(unix_error) - caml_raise_with_args - (unix_error, - make_unix_err_args("EBADF", "closedir", this.nm(name))); - else - caml_raise_sys_error(name + ": closedir failed"); - if(i == a.length) return null; - var entry = a[i]; - i++; - return {name: entry}; - }, - closeSync: - function(){ - if(c) - if(unix_error) - caml_raise_with_args - (unix_error, - make_unix_err_args("EBADF", "closedir", this.nm(name))); - else - caml_raise_sys_error(name + ": closedir failed"); - c = true; - a = []; - }}; - }; - MlFakeDevice.prototype.is_dir = - function(name){ - if(name == "") return true; - var name_slash = this.slash(name); - return this.content[name_slash] ? 1 : 0; - }; - MlFakeDevice.prototype.unlink = - function(name){ - var ok = this.content[name] ? true : false; - delete this.content[name]; - return ok; - }; - MlFakeDevice.prototype.open = - function(name, f){ - var file; - if(f.rdonly && f.wronly) - caml_raise_sys_error - (this.nm(name) - + " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (this.nm(name) - + " : flags Open_text and Open_binary are not compatible"); - this.lookup(name); - if(this.content[name]){ - if(this.is_dir(name)) - caml_raise_sys_error(this.nm(name) + " : is a directory"); - if(f.create && f.excl) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - file = this.content[name]; - if(f.truncate) file.truncate(); - } - else if(f.create){ - this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_create_bytes(0)); - file = this.content[name]; - } - else - caml_raise_no_such_file(this.nm(name)); - return new MlFakeFd(this.nm(name), file, f); - }; - MlFakeDevice.prototype.open = - function(name, f){ - var file; - if(f.rdonly && f.wronly) - caml_raise_sys_error - (this.nm(name) - + " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (this.nm(name) - + " : flags Open_text and Open_binary are not compatible"); - this.lookup(name); - if(this.content[name]){ - if(this.is_dir(name)) - caml_raise_sys_error(this.nm(name) + " : is a directory"); - if(f.create && f.excl) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - file = this.content[name]; - if(f.truncate) file.truncate(); - } - else if(f.create){ - this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_create_bytes(0)); - file = this.content[name]; - } - else - caml_raise_no_such_file(this.nm(name)); - return new MlFakeFd(this.nm(name), file, f); - }; - MlFakeDevice.prototype.register = - function(name, content){ - var file; - if(this.content[name]) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - if(caml_is_ml_bytes(content)) file = new MlFakeFile(content); - if(caml_is_ml_string(content)) - file = new MlFakeFile(caml_bytes_of_string(content)); - else if(content instanceof Array) - file = new MlFakeFile(caml_bytes_of_array(content)); - else if(typeof content === "string") - file = new MlFakeFile(caml_bytes_of_jsbytes(content)); - else if(content.toString){ - var - bytes = - caml_bytes_of_string(caml_string_of_jsstring(content.toString())); - file = new MlFakeFile(bytes); - } - if(file){ - this.create_dir_if_needed(name); - this.content[name] = file; - } - else - caml_raise_sys_error - (this.nm(name) + " : registering file with invalid content type"); - }; - MlFakeDevice.prototype.constructor = MlFakeDevice; - function caml_ml_string_length(s){return s.length;} - function caml_string_unsafe_get(s, i){return s.charCodeAt(i);} - function caml_uint8_array_of_string(s){ - var l = caml_ml_string_length(s), a = new Array(l), i = 0; - for(; i < l; i++) a[i] = caml_string_unsafe_get(s, i); - return a; - } - function caml_bytes_bound_error(){ - caml_invalid_argument("index out of bounds"); - } - function caml_bytes_unsafe_set(s, i, c){ - c &= 0xff; - if(s.t != 4){ - if(i == s.c.length){ - s.c += String.fromCharCode(c); - if(i + 1 == s.l) s.t = 0; - return 0; - } - caml_convert_bytes_to_array(s); - } - s.c[i] = c; - return 0; - } - function caml_bytes_set(s, i, c){ - if(i >>> 0 >= s.l) caml_bytes_bound_error(); - return caml_bytes_unsafe_set(s, i, c); - } - function MlNodeFd(fd, flags){ - this.fs = require("fs"); - this.fd = fd; - this.flags = flags; - } - MlNodeFd.prototype = new MlFile(); - MlNodeFd.prototype.constructor = MlNodeFd; - MlNodeFd.prototype.truncate = - function(len){ - try{this.fs.ftruncateSync(this.fd, len | 0);} - catch(err){caml_raise_sys_error(err.toString());} - }; - MlNodeFd.prototype.length = - function(){ - try{return this.fs.fstatSync(this.fd).size;} - catch(err){caml_raise_sys_error(err.toString());} - }; - MlNodeFd.prototype.write = - function(offset, buf, buf_offset, len){ - try{ - if(this.flags.isCharacterDevice) - this.fs.writeSync(this.fd, buf, buf_offset, len); + caml_raise_sys_error(name + ": File exists"); + var parent=/^(.*)\/[^/]+/.exec(name); + parent = parent && parent[1] || ""; + if(! this.exists(parent)) + if(unix_error) + caml_raise_with_args + (unix_error,make_unix_err_args("ENOENT","mkdir",this.nm(parent))); + else + caml_raise_sys_error(parent + ": No such file or directory"); + if(! this.is_dir(parent)) + if(unix_error) + caml_raise_with_args + (unix_error,make_unix_err_args("ENOTDIR","mkdir",this.nm(parent))); + else + caml_raise_sys_error(parent + ": Not a directory"); + this.create_dir_if_needed(this.slash(name))}; + MlFakeDevice.prototype.rmdir + = + function(name,raise_unix) + {var + unix_error=raise_unix && caml_named_value("Unix.Unix_error"), + name_slash=name == ""?"":this.slash(name), + r=new RegExp("^" + name_slash + "([^/]+)"); + if(! this.exists(name)) + if(unix_error) + caml_raise_with_args + (unix_error,make_unix_err_args("ENOENT","rmdir",this.nm(name))); + else + caml_raise_sys_error(name + ": No such file or directory"); + if(! this.is_dir(name)) + if(unix_error) + caml_raise_with_args + (unix_error,make_unix_err_args("ENOTDIR","rmdir",this.nm(name))); + else + caml_raise_sys_error(name + ": Not a directory"); + for(var n in this.content) + if(n.match(r)) + if(unix_error) + caml_raise_with_args + (unix_error,make_unix_err_args("ENOTEMPTY","rmdir",this.nm(name))); + else + caml_raise_sys_error(this.nm(name) + ": Directory not empty"); + delete this.content[name_slash]}; + MlFakeDevice.prototype.readdir + = + function(name) + {var name_slash=name == ""?"":this.slash(name); + if(! this.exists(name)) + caml_raise_sys_error(name + ": No such file or directory"); + if(! this.is_dir(name))caml_raise_sys_error(name + ": Not a directory"); + var r=new RegExp("^" + name_slash + "([^/]+)"),seen={},a=[]; + for(var n in this.content) + {var m=n.match(r); + if(m && ! seen[m[1]]){seen[m[1]] = true;a.push(m[1])}} + return a}; + MlFakeDevice.prototype.opendir + = + function(name,raise_unix) + {var + unix_error=raise_unix && caml_named_value("Unix.Unix_error"), + a=this.readdir(name), + c=false, + i=0; + return {readSync: + function() + {if(c) + if(unix_error) + caml_raise_with_args + (unix_error, + make_unix_err_args("EBADF","closedir",this.nm(name))); + else + caml_raise_sys_error(name + ": closedir failed"); + if(i == a.length)return null; + var entry=a[i]; + i++; + return {name:entry}}, + closeSync: + function() + {if(c) + if(unix_error) + caml_raise_with_args + (unix_error, + make_unix_err_args("EBADF","closedir",this.nm(name))); + else + caml_raise_sys_error(name + ": closedir failed"); + c = true; + a = []}}}; + MlFakeDevice.prototype.is_dir + = + function(name) + {if(name == "")return true; + var name_slash=this.slash(name); + return this.content[name_slash]?1:0}; + MlFakeDevice.prototype.unlink + = + function(name) + {var ok=this.content[name]?true:false; + delete this.content[name]; + return ok}; + MlFakeDevice.prototype.open + = + function(name,f) + {var file; + if(f.rdonly && f.wronly) + caml_raise_sys_error + (this.nm(name) + + + " : flags Open_rdonly and Open_wronly are not compatible"); + if(f.text && f.binary) + caml_raise_sys_error + (this.nm(name) + + + " : flags Open_text and Open_binary are not compatible"); + this.lookup(name); + if(this.content[name]) + {if(this.is_dir(name)) + caml_raise_sys_error(this.nm(name) + " : is a directory"); + if(f.create && f.excl) + caml_raise_sys_error(this.nm(name) + " : file already exists"); + file = this.content[name]; + if(f.truncate)file.truncate()} else - this.fs.writeSync(this.fd, buf, buf_offset, len, offset); - } - catch(err){caml_raise_sys_error(err.toString());} - return 0; - }; - MlNodeFd.prototype.read = - function(offset, a, buf_offset, len){ - try{ - if(this.flags.isCharacterDevice) - var read = this.fs.readSync(this.fd, a, buf_offset, len); + if(f.create) + {this.create_dir_if_needed(name); + this.content[name] = new MlFakeFile(caml_create_bytes(0)); + file = this.content[name]} + else + caml_raise_no_such_file(this.nm(name)); + return new MlFakeFd(this.nm(name),file,f)}; + MlFakeDevice.prototype.open + = + function(name,f) + {var file; + if(f.rdonly && f.wronly) + caml_raise_sys_error + (this.nm(name) + + + " : flags Open_rdonly and Open_wronly are not compatible"); + if(f.text && f.binary) + caml_raise_sys_error + (this.nm(name) + + + " : flags Open_text and Open_binary are not compatible"); + this.lookup(name); + if(this.content[name]) + {if(this.is_dir(name)) + caml_raise_sys_error(this.nm(name) + " : is a directory"); + if(f.create && f.excl) + caml_raise_sys_error(this.nm(name) + " : file already exists"); + file = this.content[name]; + if(f.truncate)file.truncate()} else - var read = this.fs.readSync(this.fd, a, buf_offset, len, offset); - return read; - } - catch(err){caml_raise_sys_error(err.toString());} - }; - MlNodeFd.prototype.close = - function(){ - try{this.fs.closeSync(this.fd); return 0;} - catch(err){caml_raise_sys_error(err.toString());} - }; - function MlNodeDevice(root){this.fs = require("fs"); this.root = root;} - MlNodeDevice.prototype.nm = function(name){return this.root + name;}; - MlNodeDevice.prototype.exists = - function(name){ - try{return this.fs.existsSync(this.nm(name)) ? 1 : 0;} - catch(err){return 0;} - }; - MlNodeDevice.prototype.isFile = - function(name){ - try{return this.fs.statSync(this.nm(name)).isFile() ? 1 : 0;} - catch(err){caml_raise_sys_error(err.toString());} - }; - MlNodeDevice.prototype.mkdir = - function(name, mode, raise_unix){ - try{this.fs.mkdirSync(this.nm(name), {mode: mode}); return 0;} - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.rmdir = - function(name, raise_unix){ - try{this.fs.rmdirSync(this.nm(name)); return 0;} - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.readdir = - function(name, raise_unix){ - try{return this.fs.readdirSync(this.nm(name));} - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.is_dir = - function(name){ - try{return this.fs.statSync(this.nm(name)).isDirectory() ? 1 : 0;} - catch(err){caml_raise_sys_error(err.toString());} - }; - MlNodeDevice.prototype.unlink = - function(name, raise_unix){ - try{ - var b = this.fs.existsSync(this.nm(name)) ? 1 : 0; - this.fs.unlinkSync(this.nm(name)); - return b; - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.open = - function(name, f, raise_unix){ - var consts = require("constants"), res = 0; - for(var key in f) - switch(key){ - case "rdonly": - res |= consts.O_RDONLY; break; - case "wronly": - res |= consts.O_WRONLY; break; - case "append": - res |= consts.O_WRONLY | consts.O_APPEND; break; - case "create": - res |= consts.O_CREAT; break; - case "truncate": - res |= consts.O_TRUNC; break; - case "excl": - res |= consts.O_EXCL; break; - case "binary": - res |= consts.O_BINARY; break; - case "text": - res |= consts.O_TEXT; break; - case "nonblock": - res |= consts.O_NONBLOCK; break; - } - try{ - var - fd = this.fs.openSync(this.nm(name), res), - isCharacterDevice = - this.fs.lstatSync(this.nm(name)).isCharacterDevice(); - f.isCharacterDevice = isCharacterDevice; - return new MlNodeFd(fd, f); - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.rename = - function(o, n, raise_unix){ - try{this.fs.renameSync(this.nm(o), this.nm(n));} - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.stat = - function(name, raise_unix){ - try{ - var js_stats = this.fs.statSync(this.nm(name)); - return this.stats_from_js(js_stats); - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.lstat = - function(name, raise_unix){ - try{ - var js_stats = this.fs.lstatSync(this.nm(name)); - return this.stats_from_js(js_stats); - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.symlink = - function(to_dir, target, path, raise_unix){ - try{ - this.fs.symlinkSync - (this.nm(target), this.nm(path), to_dir ? "dir" : "file"); - return 0; - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.readlink = - function(name, raise_unix){ - try{ - var link = this.fs.readlinkSync(this.nm(name), "utf8"); - return caml_string_of_jsstring(link); - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.opendir = - function(name, raise_unix){ - try{return this.fs.opendirSync(this.nm(name));} - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.raise_nodejs_error = - function(err, raise_unix){ - var unix_error = caml_named_value("Unix.Unix_error"); - if(raise_unix && unix_error){ - var - args = make_unix_err_args(err.code, err.syscall, err.path, err.errno); - caml_raise_with_args(unix_error, args); - } - else - caml_raise_sys_error(err.toString()); - }; - MlNodeDevice.prototype.stats_from_js = - function(js_stats){ - var file_kind; - if(js_stats.isFile()) - file_kind = 0; - else if(js_stats.isDirectory()) - file_kind = 1; - else if(js_stats.isCharacterDevice()) - file_kind = 2; - else if(js_stats.isBlockDevice()) - file_kind = 3; - else if(js_stats.isSymbolicLink()) - file_kind = 4; - else if(js_stats.isFIFO()) - file_kind = 5; - else if(js_stats.isSocket()) file_kind = 6; - return [0, - js_stats.dev, - js_stats.ino, - file_kind, - js_stats.mode, - js_stats.nlink, - js_stats.uid, - js_stats.gid, - js_stats.rdev, - js_stats.size, - js_stats.atimeMs, - js_stats.mtimeMs, - js_stats.ctimeMs]; - }; - MlNodeDevice.prototype.constructor = MlNodeDevice; - function caml_get_root(path){ - var x = path_is_absolute(path); - if(! x) return; - return x[0] + "/"; - } - function caml_failwith(msg){ - if(! caml_global_data.Failure) - caml_global_data.Failure = [248, caml_string_of_jsbytes("Failure"), - 3]; - caml_raise_with_string(caml_global_data.Failure, msg); - } - var - caml_root = - caml_get_root(caml_current_dir) - || caml_failwith("unable to compute caml_root"), - jsoo_mount_point = []; - if(fs_node_supported()) - jsoo_mount_point.push - ({path: caml_root, device: new MlNodeDevice(caml_root)}); - else - jsoo_mount_point.push - ({path: caml_root, device: new MlFakeDevice(caml_root)}); - jsoo_mount_point.push - ({path: "/static/", device: new MlFakeDevice("/static/")}); - function resolve_fs_device(name){ - var - path = caml_make_path(name), - name = path.join("/"), - name_slash = caml_trailing_slash(name), - res; - for(var i = 0; i < jsoo_mount_point.length; i++){ - var m = jsoo_mount_point[i]; - if - (name_slash.search(m.path) == 0 - && (! res || res.path.length < m.path.length)) - res = - {path: m.path, - device: m.device, - rest: name.substring(m.path.length, name.length)}; - } - if(! res && fs_node_supported()){ - var root = caml_get_root(name); - if(root && root.match(/^[a-zA-Z]:\/$/)){ - var m = {path: root, device: new MlNodeDevice(root)}; - jsoo_mount_point.push(m); - res = - {path: m.path, - device: m.device, - rest: name.substring(m.path.length, name.length)}; - } - } - if(res) return res; - caml_raise_sys_error("no device found for " + name_slash); - } - function caml_sys_is_directory(name){ - var root = resolve_fs_device(name), a = root.device.is_dir(root.rest); - return a ? 1 : 0; - } - function caml_raise_not_found(){ - caml_raise_constant(caml_global_data.Not_found); - } - function caml_sys_getenv(name){ - var r = jsoo_sys_getenv(caml_jsstring_of_string(name)); - if(r === undefined) caml_raise_not_found(); - return caml_string_of_jsstring(r); - } - function shift_right_nat(nat1, ofs1, len1, nat2, ofs2, nbits){ - if(nbits == 0){nat2.data[ofs2] = 0; return 0;} - var wrap = 0; - for(var i = len1 - 1; i >= 0; i--){ - var a = nat1.data[ofs1 + i] >>> 0; - nat1.data[ofs1 + i] = a >>> nbits | wrap; - wrap = a << 32 - nbits; - } - nat2.data[ofs2] = wrap; - return 0; - } - var caml_gr_state; - function caml_gr_state_get(){ - if(caml_gr_state) return caml_gr_state; - throw caml_maybe_attach_backtrace - ([0, - caml_named_value("Graphics.Graphic_failure"), - caml_string_of_jsbytes("Not initialized")]); - } - function caml_gr_point_color(x, y){ - var - s = caml_gr_state_get(), - im = s.context.getImageData(x, s.height - y, 1, 1), - d = im.data; - return (d[0] << 16) + (d[1] << 8) + d[2]; - } - function caml_runtime_events_user_resolve(){return 0;} - var MlObjectTable; - if(typeof globalThis.WeakMap === "undefined") - MlObjectTable = - function(){ - function NaiveLookup(objs){this.objs = objs;} - NaiveLookup.prototype.get = - function(v){ - for(var i = 0; i < this.objs.length; i++) - if(this.objs[i] === v) return i; - }; - NaiveLookup.prototype.set = function(){}; - return function(){ - this.objs = []; - this.lookup = new NaiveLookup(this.objs);}; - } - (); - else - MlObjectTable = - function(){this.objs = []; this.lookup = new globalThis.WeakMap();}; - MlObjectTable.prototype.store = - function(v){this.lookup.set(v, this.objs.length); this.objs.push(v);}; - MlObjectTable.prototype.recall = - function(v){ - var i = this.lookup.get(v); - return i === undefined ? undefined : this.objs.length - i; - }; - function caml_sys_rename(o, n){ - var o_root = resolve_fs_device(o), n_root = resolve_fs_device(n); - if(o_root.device != n_root.device) - caml_failwith("caml_sys_rename: cannot move file between two filesystem"); - if(! o_root.device.rename) - caml_failwith("caml_sys_rename: no implemented"); - o_root.device.rename(o_root.rest, n_root.rest); - } - function caml_log10_float(x){return Math.log10(x);} - var caml_runtime_warnings = 0; - function caml_ml_enable_runtime_warnings(bool){caml_runtime_warnings = bool; return 0; - } - function caml_classify_float(x){ - if(isFinite(x)){ - if(Math.abs(x) >= 2.2250738585072014e-308) return 0; - if(x != 0) return 1; - return 2; - } - return isNaN(x) ? 4 : 3; - } - var caml_ml_channels = new Array(); - function caml_refill(chan){ - if(chan.refill != null){ - var str = chan.refill(), str_a = caml_uint8_array_of_string(str); - if(str_a.length == 0) - chan.refill = null; - else{ - if(chan.buffer.length < chan.buffer_max + str_a.length){ - var b = new Uint8Array(chan.buffer_max + str_a.length); - b.set(chan.buffer); - chan.buffer = b; - } - chan.buffer.set(str_a, chan.buffer_max); - chan.offset += str_a.length; - chan.buffer_max += str_a.length; - } - } - else{ - var - nread = - chan.file.read - (chan.offset, - chan.buffer, - chan.buffer_max, - chan.buffer.length - chan.buffer_max); - chan.offset += nread; - chan.buffer_max += nread; - } - } - function caml_array_bound_error(){ - caml_invalid_argument("index out of bounds"); - } - function caml_ml_input_scan_line(chanid){ - var chan = caml_ml_channels[chanid], p = chan.buffer_curr; - do - if(p >= chan.buffer_max){ - if(chan.buffer_curr > 0){ - chan.buffer.set(chan.buffer.subarray(chan.buffer_curr), 0); - p -= chan.buffer_curr; - chan.buffer_max -= chan.buffer_curr; - chan.buffer_curr = 0; - } - if(chan.buffer_max >= chan.buffer.length) return - chan.buffer_max | 0; - var prev_max = chan.buffer_max; - caml_refill(chan); - if(prev_max == chan.buffer_max) return - chan.buffer_max | 0; - } - while - (chan.buffer[p++] != 10); - return p - chan.buffer_curr | 0; - } - function caml_gc_minor(unit){ - if(typeof globalThis.gc == "function") globalThis.gc(true); - return 0; - } - var - bigInt = - function(undefined){ - "use strict"; - var - BASE = 1e7, - LOG_BASE = 7, - MAX_INT = 9007199254740992, - MAX_INT_ARR = smallToArray(MAX_INT), - DEFAULT_ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz", - BigInt = joo_global_object.BigInt, - supportsNativeBigInt = typeof BigInt === "function"; - function Integer(v, radix, alphabet, caseSensitive){ - if(typeof v === "undefined") return Integer[0]; - if(typeof radix !== "undefined") - return + radix === 10 && ! alphabet - ? parseValue(v) - : parseBase(v, radix, alphabet, caseSensitive); - return parseValue(v); - } - function BigInteger(value, sign){ - this.value = value; - this.sign = sign; - this.isSmall = false; - this.caml_custom = "_z"; - } - BigInteger.prototype = Object.create(Integer.prototype); - function SmallInteger(value){ - this.value = value; - this.sign = value < 0; - this.isSmall = true; - this.caml_custom = "_z"; - } - SmallInteger.prototype = Object.create(Integer.prototype); - function NativeBigInt(value){ - this.value = value; - this.caml_custom = "_z"; - } - NativeBigInt.prototype = Object.create(Integer.prototype); - function isPrecise(n){return - MAX_INT < n && n < MAX_INT;} - function smallToArray(n){ - if(n < 1e7) return [n]; - if(n < 1e14) return [n % 1e7, Math.floor(n / 1e7)]; - return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)]; - } - function arrayToSmall(arr){ - trim(arr); - var length = arr.length; - if(length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) - switch(length){ - case 0: - return 0; - case 1: - return arr[0]; - case 2: - return arr[0] + arr[1] * BASE; - default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE; - } - return arr; - } - function trim(v){ - var i = v.length; - while(v[--i] === 0) ; - v.length = i + 1; - } - function createArray(length){ - var x = new Array(length), i = - 1; - while(++i < length) x[i] = 0; - return x; - } - function truncate(n){ - if(n > 0) return Math.floor(n); - return Math.ceil(n); - } - function add(a, b){ - var - l_a = a.length, - l_b = b.length, - r = new Array(l_a), - carry = 0, - base = BASE, - sum, - i; - for(i = 0; i < l_b; i++){ - sum = a[i] + b[i] + carry; - carry = sum >= base ? 1 : 0; - r[i] = sum - carry * base; + if(f.create) + {this.create_dir_if_needed(name); + this.content[name] = new MlFakeFile(caml_create_bytes(0)); + file = this.content[name]} + else + caml_raise_no_such_file(this.nm(name)); + return new MlFakeFd(this.nm(name),file,f)}; + MlFakeDevice.prototype.register + = + function(name,content) + {var file; + if(this.content[name]) + caml_raise_sys_error(this.nm(name) + " : file already exists"); + if(caml_is_ml_bytes(content))file = new MlFakeFile(content); + if(caml_is_ml_string(content)) + file = new MlFakeFile(caml_bytes_of_string(content)); + else + if(content instanceof Array) + file = new MlFakeFile(caml_bytes_of_array(content)); + else + if(typeof content === "string") + file = new MlFakeFile(caml_bytes_of_jsbytes(content)); + else + if(content.toString) + {var + bytes= + caml_bytes_of_string(caml_string_of_jsstring(content.toString())); + file = new MlFakeFile(bytes)} + if(file) + {this.create_dir_if_needed(name);this.content[name] = file} + else + caml_raise_sys_error + (this.nm(name) + " : registering file with invalid content type")}; + MlFakeDevice.prototype.constructor = MlFakeDevice; + function caml_ml_string_length(s){return caml_ml_bytes_length(s)} + function caml_bytes_unsafe_get(s,i) + {switch(s.t & 6) + {default:if(i >= s.c.length)return 0;case 0:return s.c.charCodeAt(i); + case 4:return s.c[i] + }} + function caml_string_unsafe_get(s,i){return caml_bytes_unsafe_get(s,i)} + function caml_uint8_array_of_string(s) + {var l=caml_ml_string_length(s),a=new Array(l),i=0; + for(;i < l;i++)a[i] = caml_string_unsafe_get(s,i); + return a} + function caml_bytes_bound_error() + {caml_invalid_argument("index out of bounds")} + function caml_bytes_unsafe_set(s,i,c) + {c &= 0xff; + if(s.t != 4) + {if(i == s.c.length) + {s.c += String.fromCharCode(c);if(i + 1 == s.l)s.t = 0;return 0} + caml_convert_bytes_to_array(s)} + s.c[i] = c; + return 0} + function caml_bytes_set(s,i,c) + {if(i >>> 0 >= s.l)caml_bytes_bound_error(); + return caml_bytes_unsafe_set(s,i,c)} + function MlNodeFd(fd,flags) + {this.fs = require("fs");this.fd = fd;this.flags = flags} + MlNodeFd.prototype = new MlFile(); + MlNodeFd.prototype.constructor = MlNodeFd; + MlNodeFd.prototype.truncate + = + function(len) + {try + {this.fs.ftruncateSync(this.fd,len | 0)} + catch(err){caml_raise_sys_error(err.toString())}}; + MlNodeFd.prototype.length + = + function() + {try + {return this.fs.fstatSync(this.fd).size} + catch(err){caml_raise_sys_error(err.toString())}}; + MlNodeFd.prototype.write + = + function(offset,buf,buf_offset,len) + {try + {if(this.flags.isCharacterDevice) + this.fs.writeSync(this.fd,buf,buf_offset,len); + else + this.fs.writeSync(this.fd,buf,buf_offset,len,offset)} + catch(err){caml_raise_sys_error(err.toString())} + return 0}; + MlNodeFd.prototype.read + = + function(offset,a,buf_offset,len) + {try + {if(this.flags.isCharacterDevice) + var read=this.fs.readSync(this.fd,a,buf_offset,len); + else + var read=this.fs.readSync(this.fd,a,buf_offset,len,offset); + return read} + catch(err){caml_raise_sys_error(err.toString())}}; + MlNodeFd.prototype.close + = + function() + {try + {this.fs.closeSync(this.fd);return 0} + catch(err){caml_raise_sys_error(err.toString())}}; + function MlNodeDevice(root){this.fs = require("fs");this.root = root} + MlNodeDevice.prototype.nm = function(name){return this.root + name}; + MlNodeDevice.prototype.exists + = + function(name) + {try {return this.fs.existsSync(this.nm(name))?1:0}catch(err){return 0}}; + MlNodeDevice.prototype.mkdir + = + function(name,mode,raise_unix) + {try + {this.fs.mkdirSync(this.nm(name),{mode:mode});return 0} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.rmdir + = + function(name,raise_unix) + {try + {this.fs.rmdirSync(this.nm(name));return 0} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.readdir + = + function(name,raise_unix) + {try + {return this.fs.readdirSync(this.nm(name))} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.is_dir + = + function(name) + {try + {return this.fs.statSync(this.nm(name)).isDirectory()?1:0} + catch(err){caml_raise_sys_error(err.toString())}}; + MlNodeDevice.prototype.unlink + = + function(name,raise_unix) + {try + {var b=this.fs.existsSync(this.nm(name))?1:0; + this.fs.unlinkSync(this.nm(name)); + return b} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.open + = + function(name,f,raise_unix) + {var consts=require("constants"),res=0; + for(var key in f) + switch(key) + {case "rdonly":res |= consts.O_RDONLY;break; + case "wronly":res |= consts.O_WRONLY;break; + case "append":res |= consts.O_WRONLY | consts.O_APPEND;break; + case "create":res |= consts.O_CREAT;break; + case "truncate":res |= consts.O_TRUNC;break; + case "excl":res |= consts.O_EXCL;break; + case "binary":res |= consts.O_BINARY;break; + case "text":res |= consts.O_TEXT;break; + case "nonblock":res |= consts.O_NONBLOCK;break } - while(i < l_a){ - sum = a[i] + carry; - carry = sum === base ? 1 : 0; - r[i++] = sum - carry * base; - } - if(carry > 0) r.push(carry); - return r; - } - function addAny(a, b){ - if(a.length >= b.length) return add(a, b); - return add(b, a); - } - function addSmall(a, carry){ - var l = a.length, r = new Array(l), base = BASE, sum, i; - for(i = 0; i < l; i++){ - sum = a[i] - base + carry; - carry = Math.floor(sum / base); - r[i] = sum - carry * base; - carry += 1; - } - while(carry > 0){ - r[i++] = carry % base; - carry = Math.floor(carry / base); - } - return r; - } - BigInteger.prototype.add = - function(v){ - var n = parseValue(v); - if(this.sign !== n.sign) return this.subtract(n.negate()); - var a = this.value, b = n.value; - if(n.isSmall) - return new BigInteger(addSmall(a, Math.abs(b)), this.sign); - return new BigInteger(addAny(a, b), this.sign); - }; - BigInteger.prototype.plus = BigInteger.prototype.add; - SmallInteger.prototype.add = - function(v){ - var n = parseValue(v), a = this.value; - if(a < 0 !== n.sign) return this.subtract(n.negate()); - var b = n.value; - if(n.isSmall){ - if(isPrecise(a + b)) return new SmallInteger(a + b); - b = smallToArray(Math.abs(b)); - } - return new BigInteger(addSmall(b, Math.abs(a)), a < 0); - }; - SmallInteger.prototype.plus = SmallInteger.prototype.add; - NativeBigInt.prototype.add = - function(v){ - return new NativeBigInt(this.value + parseValue(v).value); - }; - NativeBigInt.prototype.plus = NativeBigInt.prototype.add; - function subtract(a, b){ - var - a_l = a.length, - b_l = b.length, - r = new Array(a_l), - borrow = 0, - base = BASE, - i, - difference; - for(i = 0; i < b_l; i++){ - difference = a[i] - borrow - b[i]; - if(difference < 0){difference += base; borrow = 1;} else borrow = 0; - r[i] = difference; - } - for(i = b_l; i < a_l; i++){ - difference = a[i] - borrow; - if(difference < 0) - difference += base; - else{r[i++] = difference; break;} - r[i] = difference; - } - for(; i < a_l; i++) r[i] = a[i]; - trim(r); - return r; - } - function subtractAny(a, b, sign){ - var value; - if(compareAbs(a, b) >= 0) - value = subtract(a, b); - else{value = subtract(b, a); sign = ! sign;} - value = arrayToSmall(value); - if(typeof value === "number"){ - if(sign) value = - value; - return new SmallInteger(value); - } - return new BigInteger(value, sign); - } - function subtractSmall(a, b, sign){ - var - l = a.length, - r = new Array(l), - carry = - b, - base = BASE, - i, - difference; - for(i = 0; i < l; i++){ - difference = a[i] + carry; - carry = Math.floor(difference / base); - difference %= base; - r[i] = difference < 0 ? difference + base : difference; - } - r = arrayToSmall(r); - if(typeof r === "number"){ - if(sign) r = - r; - return new SmallInteger(r); - } - return new BigInteger(r, sign); - } - BigInteger.prototype.subtract = - function(v){ - var n = parseValue(v); - if(this.sign !== n.sign) return this.add(n.negate()); - var a = this.value, b = n.value; - if(n.isSmall) return subtractSmall(a, Math.abs(b), this.sign); - return subtractAny(a, b, this.sign); - }; - BigInteger.prototype.minus = BigInteger.prototype.subtract; - SmallInteger.prototype.subtract = - function(v){ - var n = parseValue(v), a = this.value; - if(a < 0 !== n.sign) return this.add(n.negate()); - var b = n.value; - if(n.isSmall) return new SmallInteger(a - b); - return subtractSmall(b, Math.abs(a), a >= 0); - }; - SmallInteger.prototype.minus = SmallInteger.prototype.subtract; - NativeBigInt.prototype.subtract = - function(v){ - return new NativeBigInt(this.value - parseValue(v).value); - }; - NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract; - BigInteger.prototype.negate = - function(){return new BigInteger(this.value, ! this.sign);}; - SmallInteger.prototype.negate = - function(){ - var sign = this.sign, small = new SmallInteger(- this.value); - small.sign = ! sign; - return small; - }; - NativeBigInt.prototype.negate = - function(){return new NativeBigInt(- this.value);}; - BigInteger.prototype.abs = - function(){return new BigInteger(this.value, false);}; - SmallInteger.prototype.abs = - function(){return new SmallInteger(Math.abs(this.value));}; - NativeBigInt.prototype.abs = - function(){ - return new NativeBigInt(this.value >= 0 ? this.value : - this.value); - }; - function multiplyLong(a, b){ - var - a_l = a.length, - b_l = b.length, - l = a_l + b_l, - r = createArray(l), - base = BASE, - product, - carry, - i, - a_i, - b_j; - for(i = 0; i < a_l; ++i){ - a_i = a[i]; - for(var j = 0; j < b_l; ++j){ - b_j = b[j]; - product = a_i * b_j + r[i + j]; - carry = Math.floor(product / base); - r[i + j] = product - carry * base; - r[i + j + 1] += carry; - } - } - trim(r); - return r; - } - function multiplySmall(a, b){ - var - l = a.length, - r = new Array(l), - base = BASE, - carry = 0, - product, - i; - for(i = 0; i < l; i++){ - product = a[i] * b + carry; - carry = Math.floor(product / base); - r[i] = product - carry * base; - } - while(carry > 0){ - r[i++] = carry % base; - carry = Math.floor(carry / base); - } - return r; - } - function shiftLeft(x, n){ - var r = []; - while(n-- > 0) r.push(0); - return r.concat(x); - } - function multiplyKaratsuba(x, y){ - var n = Math.max(x.length, y.length); - if(n <= 30) return multiplyLong(x, y); - n = Math.ceil(n / 2); - var - b = x.slice(n), - a = x.slice(0, n), - d = y.slice(n), - c = y.slice(0, n), - ac = multiplyKaratsuba(a, c), - bd = multiplyKaratsuba(b, d), - abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d)), - product = - addAny - (addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), - shiftLeft(bd, 2 * n)); - trim(product); - return product; - } - function useKaratsuba(l1, l2){ - return - (0.012 * l1) - 0.012 * l2 + 0.000015 * l1 * l2 > 0; - } - BigInteger.prototype.multiply = - function(v){ - var - n = parseValue(v), - a = this.value, - b = n.value, - sign = this.sign !== n.sign, - abs; - if(n.isSmall){ - if(b === 0) return Integer[0]; - if(b === 1) return this; - if(b === - 1) return this.negate(); - abs = Math.abs(b); - if(abs < BASE) return new BigInteger(multiplySmall(a, abs), sign); - b = smallToArray(abs); - } - if(useKaratsuba(a.length, b.length)) - return new BigInteger(multiplyKaratsuba(a, b), sign); - return new BigInteger(multiplyLong(a, b), sign); - }; - BigInteger.prototype.times = BigInteger.prototype.multiply; - function multiplySmallAndArray(a, b, sign){ - if(a < BASE) return new BigInteger(multiplySmall(b, a), sign); - return new BigInteger(multiplyLong(b, smallToArray(a)), sign); - } - SmallInteger.prototype._multiplyBySmall = - function(a){ - if(isPrecise(a.value * this.value)) - return new SmallInteger(a.value * this.value); - return multiplySmallAndArray - (Math.abs(a.value), - smallToArray(Math.abs(this.value)), - this.sign !== a.sign); - }; - BigInteger.prototype._multiplyBySmall = - function(a){ - if(a.value === 0) return Integer[0]; - if(a.value === 1) return this; - if(a.value === - 1) return this.negate(); - return multiplySmallAndArray - (Math.abs(a.value), this.value, this.sign !== a.sign); - }; - SmallInteger.prototype.multiply = - function(v){return parseValue(v)._multiplyBySmall(this);}; - SmallInteger.prototype.times = SmallInteger.prototype.multiply; - NativeBigInt.prototype.multiply = - function(v){ - return new NativeBigInt(this.value * parseValue(v).value); - }; - NativeBigInt.prototype.times = NativeBigInt.prototype.multiply; - function square(a){ - var - l = a.length, - r = createArray(l + l), - base = BASE, - product, - carry, - i, - a_i, - a_j; - for(i = 0; i < l; i++){ - a_i = a[i]; - carry = 0 - a_i * a_i; - for(var j = i; j < l; j++){ - a_j = a[j]; - product = 2 * (a_i * a_j) + r[i + j] + carry; - carry = Math.floor(product / base); - r[i + j] = product - carry * base; - } - r[i + l] = carry; - } - trim(r); - return r; - } - BigInteger.prototype.square = - function(){return new BigInteger(square(this.value), false);}; - SmallInteger.prototype.square = - function(){ - var value = this.value * this.value; - if(isPrecise(value)) return new SmallInteger(value); - return new - BigInteger - (square(smallToArray(Math.abs(this.value))), false); - }; - NativeBigInt.prototype.square = - function(v){return new NativeBigInt(this.value * this.value);}; - function divMod1(a, b){ - var - a_l = a.length, - b_l = b.length, - base = BASE, - result = createArray(b.length), - divisorMostSignificantDigit = b[b_l - 1], - lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)), - remainder = multiplySmall(a, lambda), - divisor = multiplySmall(b, lambda), - quotientDigit, - shift, - carry, - borrow, - i, - l, - q; - if(remainder.length <= a_l) remainder.push(0); - divisor.push(0); - divisorMostSignificantDigit = divisor[b_l - 1]; - for(shift = a_l - b_l; shift >= 0; shift--){ - quotientDigit = base - 1; - if(remainder[shift + b_l] !== divisorMostSignificantDigit) - quotientDigit = - Math.floor - ((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) - / divisorMostSignificantDigit); - carry = 0; - borrow = 0; - l = divisor.length; - for(i = 0; i < l; i++){ - carry += quotientDigit * divisor[i]; - q = Math.floor(carry / base); - borrow += remainder[shift + i] - (carry - q * base); - carry = q; - if(borrow < 0){ - remainder[shift + i] = borrow + base; - borrow = - 1; - } - else{remainder[shift + i] = borrow; borrow = 0;} - } - while(borrow !== 0){ - quotientDigit -= 1; - carry = 0; - for(i = 0; i < l; i++){ - carry += remainder[shift + i] - base + divisor[i]; - if(carry < 0){ - remainder[shift + i] = carry + base; - carry = 0; - } - else{remainder[shift + i] = carry; carry = 1;} - } - borrow += carry; - } - result[shift] = quotientDigit; - } - remainder = divModSmall(remainder, lambda)[0]; - return [arrayToSmall(result), arrayToSmall(remainder)]; - } - function divMod2(a, b){ - var - a_l = a.length, - b_l = b.length, - result = [], - part = [], - base = BASE, - guess, - xlen, - highx, - highy, - check; - while(a_l){ - part.unshift(a[--a_l]); - trim(part); - if(compareAbs(part, b) < 0){result.push(0); continue;} - xlen = part.length; - highx = part[xlen - 1] * base + part[xlen - 2]; - highy = b[b_l - 1] * base + b[b_l - 2]; - if(xlen > b_l) highx = (highx + 1) * base; - guess = Math.ceil(highx / highy); - do{ - check = multiplySmall(b, guess); - if(compareAbs(check, part) <= 0) break; - guess--; - } - while - (guess); - result.push(guess); - part = subtract(part, check); - } - result.reverse(); - return [arrayToSmall(result), arrayToSmall(part)]; - } - function divModSmall(value, lambda){ - var - length = value.length, - quotient = createArray(length), - base = BASE, - i, - q, - remainder, - divisor; - remainder = 0; - for(i = length - 1; i >= 0; --i){ - divisor = remainder * base + value[i]; - q = truncate(divisor / lambda); - remainder = divisor - q * lambda; - quotient[i] = q | 0; - } - return [quotient, remainder | 0]; - } - function divModAny(self, v){ - var value, n = parseValue(v); - if(supportsNativeBigInt) - return [new NativeBigInt(self.value / n.value), - new NativeBigInt(self.value % n.value)]; - var a = self.value, b = n.value, quotient; - if(b === 0) throw new Error("Cannot divide by zero"); - if(self.isSmall){ - if(n.isSmall) - return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)]; - return [Integer[0], self]; - } - if(n.isSmall){ - if(b === 1) return [self, Integer[0]]; - if(b == - 1) return [self.negate(), Integer[0]]; - var abs = Math.abs(b); - if(abs < BASE){ - value = divModSmall(a, abs); - quotient = arrayToSmall(value[0]); - var remainder = value[1]; - if(self.sign) remainder = - remainder; - if(typeof quotient === "number"){ - if(self.sign !== n.sign) quotient = - quotient; - return [new SmallInteger(quotient), new SmallInteger(remainder)]; - } - return [new BigInteger(quotient, self.sign !== n.sign), - new SmallInteger(remainder)]; - } - b = smallToArray(abs); - } - var comparison = compareAbs(a, b); - if(comparison === - 1) return [Integer[0], self]; - if(comparison === 0) - return [Integer[self.sign === n.sign ? 1 : - 1], Integer[0]]; - if(a.length + b.length <= 200) - value = divMod1(a, b); + try + {var + fd=this.fs.openSync(this.nm(name),res), + isCharacterDevice= + this.fs.lstatSync(this.nm(name)).isCharacterDevice(); + f.isCharacterDevice = isCharacterDevice; + return new MlNodeFd(fd,f)} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.rename + = + function(o,n,raise_unix) + {try + {this.fs.renameSync(this.nm(o),this.nm(n))} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.stat + = + function(name,raise_unix) + {try + {var js_stats=this.fs.statSync(this.nm(name)); + return this.stats_from_js(js_stats)} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.lstat + = + function(name,raise_unix) + {try + {var js_stats=this.fs.lstatSync(this.nm(name)); + return this.stats_from_js(js_stats)} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.symlink + = + function(to_dir,target,path,raise_unix) + {try + {this.fs.symlinkSync(this.nm(target),this.nm(path),to_dir?"dir":"file"); + return 0} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.readlink + = + function(name,raise_unix) + {try + {var link=this.fs.readlinkSync(this.nm(name),"utf8"); + return caml_string_of_jsstring(link)} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.opendir + = + function(name,raise_unix) + {try + {return this.fs.opendirSync(this.nm(name))} + catch(err){this.raise_nodejs_error(err,raise_unix)}}; + MlNodeDevice.prototype.raise_nodejs_error + = + function(err,raise_unix) + {var unix_error=caml_named_value("Unix.Unix_error"); + if(raise_unix && unix_error) + {var args=make_unix_err_args(err.code,err.syscall,err.path,err.errno); + caml_raise_with_args(unix_error,args)} + else + caml_raise_sys_error(err.toString())}; + MlNodeDevice.prototype.stats_from_js + = + function(js_stats) + {var file_kind; + if(js_stats.isFile()) + file_kind = 0; + else + if(js_stats.isDirectory()) + file_kind = 1; + else + if(js_stats.isCharacterDevice()) + file_kind = 2; + else + if(js_stats.isBlockDevice()) + file_kind = 3; else - value = divMod2(a, b); - quotient = value[0]; - var qSign = self.sign !== n.sign, mod = value[1], mSign = self.sign; - if(typeof quotient === "number"){ - if(qSign) quotient = - quotient; - quotient = new SmallInteger(quotient); - } - else - quotient = new BigInteger(quotient, qSign); - if(typeof mod === "number"){ - if(mSign) mod = - mod; - mod = new SmallInteger(mod); - } - else - mod = new BigInteger(mod, mSign); - return [quotient, mod]; - } - BigInteger.prototype.divmod = - function(v){ - var result = divModAny(this, v); - return {quotient: result[0], remainder: result[1]}; - }; - NativeBigInt.prototype.divmod = - SmallInteger.prototype.divmod = BigInteger.prototype.divmod; - BigInteger.prototype.divide = - function(v){return divModAny(this, v)[0];}; - NativeBigInt.prototype.over = - NativeBigInt.prototype.divide = - function(v){ - return new NativeBigInt(this.value / parseValue(v).value); - }; - SmallInteger.prototype.over = - SmallInteger.prototype.divide = - BigInteger.prototype.over = BigInteger.prototype.divide; - BigInteger.prototype.mod = function(v){return divModAny(this, v)[1];}; - NativeBigInt.prototype.mod = - NativeBigInt.prototype.remainder = - function(v){ - return new NativeBigInt(this.value % parseValue(v).value); - }; - SmallInteger.prototype.remainder = - SmallInteger.prototype.mod = - BigInteger.prototype.remainder = BigInteger.prototype.mod; - BigInteger.prototype.pow = - function(v){ - var n = parseValue(v), a = this.value, b = n.value, value, x, y; - if(b === 0) return Integer[1]; - if(a === 0) return Integer[0]; - if(a === 1) return Integer[1]; - if(a === - 1) return n.isEven() ? Integer[1] : Integer[- 1]; - if(n.sign) return Integer[0]; - if(! n.isSmall) - throw new Error("The exponent " + n.toString() + " is too large."); - if(this.isSmall) - if(isPrecise(value = Math.pow(a, b))) - return new SmallInteger(truncate(value)); - x = this; - y = Integer[1]; - while(true){ - if(b & 1 === 1){y = y.times(x); --b;} - if(b === 0) break; - b /= 2; - x = x.square(); - } - return y; - }; - SmallInteger.prototype.pow = BigInteger.prototype.pow; - NativeBigInt.prototype.pow = - function(v){ - var - n = parseValue(v), - a = this.value, - b = n.value, - _0 = BigInt(0), - _1 = BigInt(1), - _2 = BigInt(2); - if(b === _0) return Integer[1]; - if(a === _0) return Integer[0]; - if(a === _1) return Integer[1]; - if(a === BigInt(- 1)) return n.isEven() ? Integer[1] : Integer[- 1]; - if(n.isNegative()) return new NativeBigInt(_0); - var x = this, y = Integer[1]; - while(true){ - if((b & _1) === _1){y = y.times(x); --b;} - if(b === _0) break; - b /= _2; - x = x.square(); - } - return y; - }; - BigInteger.prototype.modPow = - function(exp, mod){ - exp = parseValue(exp); - mod = parseValue(mod); - if(mod.isZero()) - throw new Error("Cannot take modPow with modulus 0"); - var r = Integer[1], base = this.mod(mod); - if(exp.isNegative()){ - exp = exp.multiply(Integer[- 1]); - base = base.modInv(mod); - } - while(exp.isPositive()){ - if(base.isZero()) return Integer[0]; - if(exp.isOdd()) r = r.multiply(base).mod(mod); - exp = exp.divide(2); - base = base.square().mod(mod); - } - return r; - }; - NativeBigInt.prototype.modPow = - SmallInteger.prototype.modPow = BigInteger.prototype.modPow; - function compareAbs(a, b){ - if(a.length !== b.length) return a.length > b.length ? 1 : - 1; - for(var i = a.length - 1; i >= 0; i--) - if(a[i] !== b[i]) return a[i] > b[i] ? 1 : - 1; - return 0; - } - BigInteger.prototype.compareAbs = - function(v){ - var n = parseValue(v), a = this.value, b = n.value; - if(n.isSmall) return 1; - return compareAbs(a, b); - }; - SmallInteger.prototype.compareAbs = - function(v){ - var n = parseValue(v), a = Math.abs(this.value), b = n.value; - if(n.isSmall){ - b = Math.abs(b); - return a === b ? 0 : a > b ? 1 : - 1; - } - return - 1; - }; - NativeBigInt.prototype.compareAbs = - function(v){ - var a = this.value, b = parseValue(v).value; - a = a >= 0 ? a : - a; - b = b >= 0 ? b : - b; - return a === b ? 0 : a > b ? 1 : - 1; - }; - BigInteger.prototype.compare = - function(v){ - if(v === Infinity) return - 1; - if(v === - Infinity) return 1; - var n = parseValue(v), a = this.value, b = n.value; - if(this.sign !== n.sign) return n.sign ? 1 : - 1; - if(n.isSmall) return this.sign ? - 1 : 1; - return compareAbs(a, b) * (this.sign ? - 1 : 1); - }; - BigInteger.prototype.compareTo = BigInteger.prototype.compare; - SmallInteger.prototype.compare = - function(v){ - if(v === Infinity) return - 1; - if(v === - Infinity) return 1; - var n = parseValue(v), a = this.value, b = n.value; - if(n.isSmall) return a == b ? 0 : a > b ? 1 : - 1; - if(a < 0 !== n.sign) return a < 0 ? - 1 : 1; - return a < 0 ? 1 : - 1; - }; - SmallInteger.prototype.compareTo = SmallInteger.prototype.compare; - NativeBigInt.prototype.compare = - function(v){ - if(v === Infinity) return - 1; - if(v === - Infinity) return 1; - var a = this.value, b = parseValue(v).value; - return a === b ? 0 : a > b ? 1 : - 1; - }; - NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare; - BigInteger.prototype.equals = - function(v){return this.compare(v) === 0;}; - NativeBigInt.prototype.eq = - NativeBigInt.prototype.equals = - SmallInteger.prototype.eq = - SmallInteger.prototype.equals = - BigInteger.prototype.eq = BigInteger.prototype.equals; - BigInteger.prototype.notEquals = - function(v){return this.compare(v) !== 0;}; - NativeBigInt.prototype.neq = - NativeBigInt.prototype.notEquals = - SmallInteger.prototype.neq = - SmallInteger.prototype.notEquals = - BigInteger.prototype.neq = BigInteger.prototype.notEquals; - BigInteger.prototype.greater = - function(v){return this.compare(v) > 0;}; - NativeBigInt.prototype.gt = - NativeBigInt.prototype.greater = - SmallInteger.prototype.gt = - SmallInteger.prototype.greater = - BigInteger.prototype.gt = BigInteger.prototype.greater; - BigInteger.prototype.lesser = function(v){return this.compare(v) < 0;}; - NativeBigInt.prototype.lt = - NativeBigInt.prototype.lesser = - SmallInteger.prototype.lt = - SmallInteger.prototype.lesser = - BigInteger.prototype.lt = BigInteger.prototype.lesser; - BigInteger.prototype.greaterOrEquals = - function(v){return this.compare(v) >= 0;}; - NativeBigInt.prototype.geq = - NativeBigInt.prototype.greaterOrEquals = - SmallInteger.prototype.geq = - SmallInteger.prototype.greaterOrEquals = - BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals; - BigInteger.prototype.lesserOrEquals = - function(v){return this.compare(v) <= 0;}; - NativeBigInt.prototype.leq = - NativeBigInt.prototype.lesserOrEquals = - SmallInteger.prototype.leq = - SmallInteger.prototype.lesserOrEquals = - BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals; - BigInteger.prototype.isEven = - function(){return (this.value[0] & 1) === 0;}; - SmallInteger.prototype.isEven = - function(){return (this.value & 1) === 0;}; - NativeBigInt.prototype.isEven = - function(){return (this.value & BigInt(1)) === BigInt(0);}; - BigInteger.prototype.isOdd = - function(){return (this.value[0] & 1) === 1;}; - SmallInteger.prototype.isOdd = - function(){return (this.value & 1) === 1;}; - NativeBigInt.prototype.isOdd = - function(){return (this.value & BigInt(1)) === BigInt(1);}; - BigInteger.prototype.isPositive = function(){return ! this.sign;}; - SmallInteger.prototype.isPositive = function(){return this.value > 0;}; - NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive; - BigInteger.prototype.isNegative = function(){return this.sign;}; - SmallInteger.prototype.isNegative = function(){return this.value < 0;}; - NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative; - BigInteger.prototype.isUnit = function(){return false;}; - SmallInteger.prototype.isUnit = - function(){return Math.abs(this.value) === 1;}; - NativeBigInt.prototype.isUnit = - function(){return this.abs().value === BigInt(1);}; - BigInteger.prototype.isZero = function(){return false;}; - SmallInteger.prototype.isZero = function(){return this.value === 0;}; - NativeBigInt.prototype.isZero = - function(){return this.value === BigInt(0);}; - BigInteger.prototype.isDivisibleBy = - function(v){ - var n = parseValue(v); - if(n.isZero()) return false; - if(n.isUnit()) return true; - if(n.compareAbs(2) === 0) return this.isEven(); - return this.mod(n).isZero(); - }; - NativeBigInt.prototype.isDivisibleBy = - SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy; - function isBasicPrime(v){ - var n = v.abs(); - if(n.isUnit()) return false; - if(n.equals(2) || n.equals(3) || n.equals(5)) return true; - if(n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) - return false; - if(n.lesser(49)) return true; - } - function millerRabinTest(n, a){ - var nPrev = n.prev(), b = nPrev, r = 0, d, t, i, x; - while(b.isEven()) b = b.divide(2), r++; - next: - for(i = 0; i < a.length; i++){ - if(n.lesser(a[i])) continue; - x = bigInt(a[i]).modPow(b, n); - if(x.isUnit() || x.equals(nPrev)) continue; - for(d = r - 1; d != 0; d--){ - x = x.square().mod(n); - if(x.isUnit()) return false; - if(x.equals(nPrev)) continue next; - } - return false; - } - return true; - } - BigInteger.prototype.isPrime = - function(strict){ - var isPrime = isBasicPrime(this); - if(isPrime !== undefined) return isPrime; - var n = this.abs(), bits = n.bitLength(); - if(bits <= 64) - return millerRabinTest - (n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]); - var - logN = Math.log(2) * bits.toJSNumber(), - t = Math.ceil(strict === true ? 2 * Math.pow(logN, 2) : logN); - for(var a = [], i = 0; i < t; i++) a.push(bigInt(i + 2)); - return millerRabinTest(n, a); - }; - NativeBigInt.prototype.isPrime = - SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime; - BigInteger.prototype.isProbablePrime = - function(iterations){ - var isPrime = isBasicPrime(this); - if(isPrime !== undefined) return isPrime; - var n = this.abs(), t = iterations === undefined ? 5 : iterations; - for(var a = [], i = 0; i < t; i++) - a.push(bigInt.randBetween(2, n.minus(2))); - return millerRabinTest(n, a); - }; - NativeBigInt.prototype.isProbablePrime = - SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime; - BigInteger.prototype.modInv = - function(n){ - var - t = bigInt.zero, - newT = bigInt.one, - r = parseValue(n), - newR = this.abs(), - q, - lastT, - lastR; - while(! newR.isZero()){ - q = r.divide(newR); - lastT = t; - lastR = r; - t = newT; - r = newR; - newT = lastT.subtract(q.multiply(newT)); - newR = lastR.subtract(q.multiply(newR)); - } - if(! r.isUnit()) - throw new - Error - (this.toString() + " and " + n.toString() - + " are not co-prime"); - if(t.compare(0) === - 1) t = t.add(n); - if(this.isNegative()) return t.negate(); - return t; - }; - NativeBigInt.prototype.modInv = - SmallInteger.prototype.modInv = BigInteger.prototype.modInv; - BigInteger.prototype.next = - function(){ - var value = this.value; - if(this.sign) return subtractSmall(value, 1, this.sign); - return new BigInteger(addSmall(value, 1), this.sign); - }; - SmallInteger.prototype.next = - function(){ - var value = this.value; - if(value + 1 < MAX_INT) return new SmallInteger(value + 1); - return new BigInteger(MAX_INT_ARR, false); - }; - NativeBigInt.prototype.next = - function(){return new NativeBigInt(this.value + BigInt(1));}; - BigInteger.prototype.prev = - function(){ - var value = this.value; - if(this.sign) return new BigInteger(addSmall(value, 1), true); - return subtractSmall(value, 1, this.sign); - }; - SmallInteger.prototype.prev = - function(){ - var value = this.value; - if(value - 1 > - MAX_INT) return new SmallInteger(value - 1); - return new BigInteger(MAX_INT_ARR, true); - }; - NativeBigInt.prototype.prev = - function(){return new NativeBigInt(this.value - BigInt(1));}; - var powersOfTwo = [1]; - while(2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) - powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]); - var - powers2Length = powersOfTwo.length, - highestPower2 = powersOfTwo[powers2Length - 1]; - function shift_isSmall(n){return Math.abs(n) <= BASE;} - BigInteger.prototype.shiftLeft = - function(v){ - var n = parseValue(v).toJSNumber(); - if(! shift_isSmall(n)) - throw new Error(String(n) + " is too large for shifting."); - if(n < 0) return this.shiftRight(- n); - var result = this; - if(result.isZero()) return result; - while(n >= powers2Length){ - result = result.multiply(highestPower2); - n -= powers2Length - 1; - } - return result.multiply(powersOfTwo[n]); - }; - NativeBigInt.prototype.shiftLeft = - SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft; - BigInteger.prototype.shiftRight = - function(v){ - var remQuo, n = parseValue(v).toJSNumber(); - if(! shift_isSmall(n)) - throw new Error(String(n) + " is too large for shifting."); - if(n < 0) return this.shiftLeft(- n); - var result = this; - while(n >= powers2Length){ - if(result.isZero() || result.isNegative() && result.isUnit()) - return result; - remQuo = divModAny(result, highestPower2); - result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0]; - n -= powers2Length - 1; - } - remQuo = divModAny(result, powersOfTwo[n]); - return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0]; - }; - NativeBigInt.prototype.shiftRight = - SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight; - function bitwise(x, y, fn){ - y = parseValue(y); - var - xSign = x.isNegative(), - ySign = y.isNegative(), - xRem = xSign ? x.not() : x, - yRem = ySign ? y.not() : y, - xDigit = 0, - yDigit = 0, - xDivMod = null, - yDivMod = null, - result = []; - while(! xRem.isZero() || ! yRem.isZero()){ - xDivMod = divModAny(xRem, highestPower2); - xDigit = xDivMod[1].toJSNumber(); - if(xSign) xDigit = highestPower2 - 1 - xDigit; - yDivMod = divModAny(yRem, highestPower2); - yDigit = yDivMod[1].toJSNumber(); - if(ySign) yDigit = highestPower2 - 1 - yDigit; - xRem = xDivMod[0]; - yRem = yDivMod[0]; - result.push(fn(xDigit, yDigit)); - } - var - sum = - fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(- 1) : bigInt(0); - for(var i = result.length - 1; i >= 0; i -= 1) - sum = sum.multiply(highestPower2).add(bigInt(result[i])); - return sum; - } - BigInteger.prototype.not = function(){return this.negate().prev();}; - NativeBigInt.prototype.not = - SmallInteger.prototype.not = BigInteger.prototype.not; - BigInteger.prototype.and = - function(n){return bitwise(this, n, function(a, b){return a & b;});}; - NativeBigInt.prototype.and = - SmallInteger.prototype.and = BigInteger.prototype.and; - BigInteger.prototype.or = - function(n){return bitwise(this, n, function(a, b){return a | b;});}; - NativeBigInt.prototype.or = - SmallInteger.prototype.or = BigInteger.prototype.or; - BigInteger.prototype.xor = - function(n){return bitwise(this, n, function(a, b){return a ^ b;});}; - NativeBigInt.prototype.xor = - SmallInteger.prototype.xor = BigInteger.prototype.xor; - var - LOBMASK_I = 1 << 30, - LOBMASK_BI = (BASE & - BASE) * (BASE & - BASE) | LOBMASK_I; - function roughLOB(n){ - var - v = n.value, - x = - typeof v === "number" - ? v | LOBMASK_I - : typeof - v - === "bigint" - ? v | BigInt(LOBMASK_I) - : v[0] + v[1] * BASE | LOBMASK_BI; - return x & - x; - } - function integerLogarithm(value, base){ - if(base.compareTo(value) <= 0){ - var - tmp = integerLogarithm(value, base.square(base)), - p = tmp.p, - e = tmp.e, - t = p.multiply(base); - return t.compareTo(value) <= 0 - ? {p: t, e: e * 2 + 1} - : {p: p, e: e * 2}; - } - return {p: bigInt(1), e: 0}; - } - BigInteger.prototype.bitLength = - function(){ - var n = this; - if(n.compareTo(bigInt(0)) < 0) n = n.negate().subtract(bigInt(1)); - if(n.compareTo(bigInt(0)) === 0) return bigInt(0); - return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1)); - }; - NativeBigInt.prototype.bitLength = - SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength; - function max(a, b){ - a = parseValue(a); - b = parseValue(b); - return a.greater(b) ? a : b; - } - function min(a, b){ - a = parseValue(a); - b = parseValue(b); - return a.lesser(b) ? a : b; - } - function gcd(a, b){ - a = parseValue(a).abs(); - b = parseValue(b).abs(); - if(a.equals(b)) return a; - if(a.isZero()) return b; - if(b.isZero()) return a; - var c = Integer[1], d, t; - while(a.isEven() && b.isEven()){ - d = min(roughLOB(a), roughLOB(b)); - a = a.divide(d); - b = b.divide(d); - c = c.multiply(d); - } - while(a.isEven()) a = a.divide(roughLOB(a)); - do{ - while(b.isEven()) b = b.divide(roughLOB(b)); - if(a.greater(b)){t = b; b = a; a = t;} - b = b.subtract(a); - } - while - (! b.isZero()); - return c.isUnit() ? a : a.multiply(c); - } - function lcm(a, b){ - a = parseValue(a).abs(); - b = parseValue(b).abs(); - return a.divide(gcd(a, b)).multiply(b); - } - function randBetween(a, b){ - a = parseValue(a); - b = parseValue(b); - var - low = min(a, b), - high = max(a, b), - range = high.subtract(low).add(1); - if(range.isSmall) return low.add(Math.floor(Math.random() * range)); - var - digits = toBase(range, BASE).value, - result = [], - restricted = true; - for(var i = 0; i < digits.length; i++){ - var - top = restricted ? digits[i] : BASE, - digit = truncate(Math.random() * top); - result.push(digit); - if(digit < top) restricted = false; - } - return low.add(Integer.fromArray(result, BASE, false)); - } - function parseBase(text, base, alphabet, caseSensitive){ - alphabet = alphabet || DEFAULT_ALPHABET; - text = String(text); - if(! caseSensitive){ - text = text.toLowerCase(); - alphabet = alphabet.toLowerCase(); - } - var - length = text.length, - i, - absBase = Math.abs(base), - alphabetValues = {}; - for(i = 0; i < alphabet.length; i++) alphabetValues[alphabet[i]] = i; - for(i = 0; i < length; i++){ - var c = text[i]; - if(c === "-") continue; - if(c in alphabetValues) - if(alphabetValues[c] >= absBase){ - if(c === "1" && absBase === 1) continue; - throw new Error(c + " is not a valid digit in base " + base + "."); - } - } - base = parseValue(base); - var digits = [], isNegative = text[0] === "-"; - for(i = isNegative ? 1 : 0; i < text.length; i++){ - var c = text[i]; - if(c in alphabetValues) - digits.push(parseValue(alphabetValues[c])); - else if(c === "<"){ - var start = i; - do i++;while(text[i] !== ">" && i < text.length); - digits.push(parseValue(text.slice(start + 1, i))); - } + if(js_stats.isSymbolicLink()) + file_kind = 4; else - throw new Error(c + " is not a valid character"); - } - return parseBaseFromArray(digits, base, isNegative); - } - function parseBaseFromArray(digits, base, isNegative){ - var val = Integer[0], pow = Integer[1], i; - for(i = digits.length - 1; i >= 0; i--){ - val = val.add(digits[i].times(pow)); - pow = pow.times(base); - } - return isNegative ? val.negate() : val; - } - function stringify(digit, alphabet){ - alphabet = alphabet || DEFAULT_ALPHABET; - if(digit < alphabet.length) return alphabet[digit]; - return "<" + digit + ">"; - } - function toBase(n, base){ - base = bigInt(base); - if(base.isZero()){ - if(n.isZero()) return {value: [0], isNegative: false}; - throw new Error("Cannot convert nonzero numbers to base 0."); - } - if(base.equals(- 1)){ - if(n.isZero()) return {value: [0], isNegative: false}; - if(n.isNegative()) - return {value: - [].concat.apply - ([], - Array.apply(null, Array(- n.toJSNumber())).map - (Array.prototype.valueOf, [1, 0])), - isNegative: false}; - var - arr = - Array.apply(null, Array(n.toJSNumber() - 1)).map - (Array.prototype.valueOf, [0, 1]); - arr.unshift([1]); - return {value: [].concat.apply([], arr), isNegative: false}; - } - var neg = false; - if(n.isNegative() && base.isPositive()){neg = true; n = n.abs();} - if(base.isUnit()){ - if(n.isZero()) return {value: [0], isNegative: false}; - return {value: - Array.apply(null, Array(n.toJSNumber())).map - (Number.prototype.valueOf, 1), - isNegative: neg}; - } - var out = [], left = n, divmod; - while(left.isNegative() || left.compareAbs(base) >= 0){ - divmod = left.divmod(base); - left = divmod.quotient; - var digit = divmod.remainder; - if(digit.isNegative()){ - digit = base.minus(digit).abs(); - left = left.next(); - } - out.push(digit.toJSNumber()); - } - out.push(left.toJSNumber()); - return {value: out.reverse(), isNegative: neg}; - } - function toBaseString(n, base, alphabet){ - var arr = toBase(n, base); - return (arr.isNegative ? "-" : "") - + - arr.value.map(function(x){return stringify(x, alphabet);}).join - (""); - } - BigInteger.prototype.toArray = - function(radix){return toBase(this, radix);}; - SmallInteger.prototype.toArray = - function(radix){return toBase(this, radix);}; - NativeBigInt.prototype.toArray = - function(radix){return toBase(this, radix);}; - BigInteger.prototype.toString = - function(radix, alphabet){ - if(radix === undefined) radix = 10; - if(radix !== 10) return toBaseString(this, radix, alphabet); - var - v = this.value, - l = v.length, - str = String(v[--l]), - zeros = "0000000", - digit; - while(--l >= 0){ - digit = String(v[l]); - str += zeros.slice(digit.length) + digit; - } - var sign = this.sign ? "-" : ""; - return sign + str; - }; - SmallInteger.prototype.toString = - function(radix, alphabet){ - if(radix === undefined) radix = 10; - if(radix != 10) return toBaseString(this, radix, alphabet); - return String(this.value); - }; - NativeBigInt.prototype.toString = SmallInteger.prototype.toString; - NativeBigInt.prototype.toJSON = - BigInteger.prototype.toJSON = - SmallInteger.prototype.toJSON = function(){return this.toString();}; - BigInteger.prototype.valueOf = - function(){return parseInt(this.toString(), 10);}; - BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf; - SmallInteger.prototype.valueOf = function(){return this.value;}; - SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf; - NativeBigInt.prototype.valueOf = - NativeBigInt.prototype.toJSNumber = - function(){return parseInt(this.toString(), 10);}; - function parseStringValue(v){ - if(isPrecise(+ v)){ - var x = + v; - if(x === truncate(x)) - return supportsNativeBigInt - ? new NativeBigInt(BigInt(x)) - : new SmallInteger(x); - throw new Error("Invalid integer: " + v); - } - var sign = v[0] === "-"; - if(sign) v = v.slice(1); - var split = v.split(/e/i); - if(split.length > 2) - throw new Error("Invalid integer: " + split.join("e")); - if(split.length === 2){ - var exp = split[1]; - if(exp[0] === "+") exp = exp.slice(1); - exp = + exp; - if(exp !== truncate(exp) || ! isPrecise(exp)) - throw new - Error - ("Invalid integer: " + exp + " is not a valid exponent."); - var text = split[0], decimalPlace = text.indexOf("."); - if(decimalPlace >= 0){ - exp -= text.length - decimalPlace - 1; - text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1); - } - if(exp < 0) - throw new - Error - ("Cannot include negative exponent part for integers"); - text += new Array(exp + 1).join("0"); - v = text; - } - var isValid = /^([0-9][0-9]*)$/.test(v); - if(! isValid) throw new Error("Invalid integer: " + v); - if(supportsNativeBigInt) - return new NativeBigInt(BigInt(sign ? "-" + v : v)); - var r = [], max = v.length, l = LOG_BASE, min = max - l; - while(max > 0){ - r.push(+ v.slice(min, max)); - min -= l; - if(min < 0) min = 0; - max -= l; - } - trim(r); - return new BigInteger(r, sign); - } - function parseNumberValue(v){ - if(supportsNativeBigInt) return new NativeBigInt(BigInt(v)); - if(isPrecise(v)){ - if(v !== truncate(v)) throw new Error(v + " is not an integer."); - return new SmallInteger(v); - } - return parseStringValue(v.toString()); - } - function parseValue(v){ - if(typeof v === "number") return parseNumberValue(v); - if(typeof v === "string") return parseStringValue(v); - if(typeof v === "bigint") return new NativeBigInt(v); - return v; - } - for(var i = 0; i < 1000; i++){ - Integer[i] = parseValue(i); - if(i > 0) Integer[- i] = parseValue(- i); - } - Integer.one = Integer[1]; - Integer.zero = Integer[0]; - Integer.minusOne = Integer[- 1]; - Integer.max = max; - Integer.min = min; - Integer.gcd = gcd; - Integer.lcm = lcm; - Integer.isInstance = - function(x){ - return x instanceof BigInteger || x instanceof SmallInteger - || x instanceof NativeBigInt; - }; - Integer.randBetween = randBetween; - Integer.fromArray = - function(digits, base, isNegative){ - return parseBaseFromArray - (digits.map(parseValue), parseValue(base || 10), isNegative); - }; - return Integer; - } - (); - function ml_z_normalize(x){ - var y = x.toJSNumber() | 0; - if(x.equals(bigInt(y))) return y; - return x; - } - function ml_z_pow(z1, i1){ - i1 = bigInt(i1); - if(i1.lt(bigInt(0))) - caml_invalid_argument("Z.pow: exponent must be nonnegative"); - return ml_z_normalize(bigInt(z1).pow(i1)); - } - function ml_z_root(z, i){ - var zero = bigInt(0), one = bigInt(1); - z = bigInt(z); - if(i % 2 === 0 && z.lt(zero)) - caml_invalid_argument("Z.root: even root of a negative number"); - if(z.equals(zero) || z.equals(one)) return ml_z_normalize(z); - var start = zero, end = z, ans = null, two = bigInt(2); - while(start.leq(end)){ - var mid = start.add(end).divide(two), po = mid.pow(i); - if(po.equals(z)) - return ml_z_normalize(mid); - else if(po.lt(z)){start = mid.next(); ans = mid;} else end = mid.prev(); - } - return ml_z_normalize(ans); - } - function ml_z_rootrem(z, i){ - var zero = bigInt(0), one = bigInt(1); - z = bigInt(z); - if(i % 2 === 0 && z.lt(zero)) - caml_invalid_argument("Z.rootrem: even root of a negative number"); - if(z.equals(zero) || z.equals(one)) return [0, ml_z_normalize(z), zero]; - var start = zero, end = z, ans = null, two = bigInt(2); - while(start.leq(end)){ - var mid = start.add(end).divide(two), po = mid.pow(i); - if(po.equals(z)) - return [0, ml_z_normalize(mid), zero]; - else if(po.lt(z)){start = mid.next(); ans = mid;} else end = mid.prev(); - } - return [0, ml_z_normalize(ans), ml_z_normalize(z.minus(ans.pow(i)))]; - } - function caml_ml_condition_new(unit){return {condition: 1};} - function caml_int64_of_bytes(a){ - return new - MlInt64 - (a[7] << 0 | a[6] << 8 | a[5] << 16, - a[4] << 0 | a[3] << 8 | a[2] << 16, - a[1] << 0 | a[0] << 8); - } - function caml_ba_uint8_get64(ba, i0){ - var ofs = ba.offset(i0); - if(ofs + 7 >= ba.data.length) caml_array_bound_error(); + if(js_stats.isFIFO()) + file_kind = 5; + else + if(js_stats.isSocket())file_kind = 6; + return [0, + js_stats.dev, + js_stats.ino, + file_kind, + js_stats.mode, + js_stats.nlink, + js_stats.uid, + js_stats.gid, + js_stats.rdev, + js_stats.size, + js_stats.atimeMs, + js_stats.mtimeMs, + js_stats.ctimeMs]}; + MlNodeDevice.prototype.constructor = MlNodeDevice; + function caml_get_root(path) + {var x=path_is_absolute(path);if(! x)return;return x[0] + "/"} + function caml_failwith(msg) + {if(! caml_global_data.Failure) + caml_global_data.Failure = [248,caml_string_of_jsbytes("Failure"),- 3]; + caml_raise_with_string(caml_global_data.Failure,msg)} var - b1 = ba.get(ofs + 0), - b2 = ba.get(ofs + 1), - b3 = ba.get(ofs + 2), - b4 = ba.get(ofs + 3), - b5 = ba.get(ofs + 4), - b6 = ba.get(ofs + 5), - b7 = ba.get(ofs + 6), - b8 = ba.get(ofs + 7); - return caml_int64_of_bytes([b8, b7, b6, b5, b4, b3, b2, b1]); - } - function caml_int64_to_bytes(x){return x.toArray();} - function caml_int64_marshal(writer, v, sizes){ - var b = caml_int64_to_bytes(v); - for(var i = 0; i < 8; i++) writer.write(8, b[i]); - sizes[0] = 8; - sizes[1] = 8; - } - function caml_ba_num_dims(ba){return ba.dims.length;} - function caml_wrap_exception(e){ - { - if(e instanceof Array) return e; - var exn; - if - (globalThis.RangeError && e instanceof globalThis.RangeError - && e.message - && e.message.match(/maximum call stack/i)) - exn = caml_global_data.Stack_overflow; - else if - (globalThis.InternalError && e instanceof globalThis.InternalError - && e.message - && e.message.match(/too much recursion/i)) - exn = caml_global_data.Stack_overflow; - else if(e instanceof globalThis.Error && caml_named_value("jsError")) - exn = [0, caml_named_value("jsError"), e]; - else - exn = [0, caml_global_data.Failure, caml_string_of_jsstring(String(e))]; - if(e instanceof globalThis.Error) exn.js_error = e; - return exn; - } - } - function caml_create_file(name, content){ - var root = resolve_fs_device(name); - if(! root.device.register) caml_failwith("cannot register file"); - root.device.register(root.rest, content); - return 0; - } - function jsoo_create_file(name, content){ - var - name = caml_string_of_jsbytes(name), - content = caml_string_of_jsbytes(content); - return caml_create_file(name, content); - } - function caml_fs_init(){ - var tmp = globalThis.caml_fs_tmp; - if(tmp) - for(var i = 0; i < tmp.length; i++) - jsoo_create_file(tmp[i].name, tmp[i].content); - globalThis.jsoo_create_file = jsoo_create_file; - globalThis.caml_fs_tmp = []; - return 0; - } - function caml_get_continuation_callstack(){return [0];} - var caml_parser_trace = 0; - function caml_set_parser_trace(bool){ - var oldflag = caml_parser_trace; - caml_parser_trace = bool; - return oldflag; - } - function caml_list_of_js_array(a){ - var l = 0; - for(var i = a.length - 1; i >= 0; i--){var e = a[i]; l = [0, e, l];} - return l; - } - function caml_mul(a, b){return Math.imul(a, b);} - function caml_hash_mix_int(h, d){ - d = caml_mul(d, 0xcc9e2d51 | 0); - d = d << 15 | d >>> 32 - 15; - d = caml_mul(d, 0x1b873593); - h ^= d; - h = h << 13 | h >>> 32 - 13; - return (h + (h << 2) | 0) + (0xe6546b64 | 0) | 0; - } - function num_digits_nat(nat, ofs, len){ - for(var i = len - 1; i >= 0; i--) if(nat.data[ofs + i] != 0) return i + 1; - return 1; - } - function caml_hash_nat(x){ - var len = num_digits_nat(x, 0, x.data.length), h = 0; - for(var i = 0; i < len; i++) h = caml_hash_mix_int(h, x.data[i]); - return h; - } - function caml_call_gen(f, args){ - var - n = f.l >= 0 ? f.l : f.l = f.length, - argsLen = args.length, - d = n - argsLen; - if(d == 0) - return f.apply(null, args); - else if(d < 0){ - var g = f.apply(null, args.slice(0, n)); - if(typeof g !== "function") return g; - return caml_call_gen(g, args.slice(n)); - } - else{ - switch(d){ - case 1: - { - var - g = - function(x){ - var nargs = new Array(argsLen + 1); - for(var i = 0; i < argsLen; i++) nargs[i] = args[i]; - nargs[argsLen] = x; - return f.apply(null, nargs); - }; - break; - } - case 2: - { - var - g = - function(x, y){ - var nargs = new Array(argsLen + 2); - for(var i = 0; i < argsLen; i++) nargs[i] = args[i]; - nargs[argsLen] = x; - nargs[argsLen + 1] = y; - return f.apply(null, nargs); - }; - break; - } - default: - var - g = - function(){ - var - extra_args = arguments.length == 0 ? 1 : arguments.length, - nargs = new Array(args.length + extra_args); - for(var i = 0; i < args.length; i++) nargs[i] = args[i]; - for(var i = 0; i < arguments.length; i++) - nargs[args.length + i] = arguments[i]; - return caml_call_gen(f, nargs); - }; - } - g.l = d; - return g; - } - } - var caml_callback = caml_call_gen; - function caml_js_wrap_callback_arguments(f){ - return function(){ - var len = arguments.length, args = new Array(len); - for(var i = 0; i < len; i++) args[i] = arguments[i]; - return caml_callback(f, [args]);}; - } - function caml_sys_chdir(dir){ - var root = resolve_fs_device(dir); - if(root.device.exists(root.rest)){ - if(root.rest) - caml_current_dir = caml_trailing_slash(root.path + root.rest); - else - caml_current_dir = root.path; - return 0; - } + caml_root= + caml_get_root(caml_current_dir) + || + caml_failwith("unable to compute caml_root"), + jsoo_mount_point=[]; + if(fs_node_supported()) + jsoo_mount_point.push + ({path:caml_root,device:new MlNodeDevice(caml_root)}); else - caml_raise_no_such_file(caml_jsbytes_of_string(dir)); - } - function caml_obj_tag(x){ - if(x instanceof Array && x[0] == x[0] >>> 0) - return x[0]; - else if(caml_is_ml_bytes(x)) - return 252; - else if(caml_is_ml_string(x)) - return 252; - else if(x instanceof Function || typeof x == "function") - return 247; - else if(x && x.caml_custom) return 255; else return 1000; - } - function caml_obj_update_tag(b, o, n){ - if(b[0] == o){b[0] = n; return 1;} - return 0; - } - var caml_ml_domain_unique_token_ = [0]; - function caml_ml_domain_unique_token(unit){return caml_ml_domain_unique_token_; - } - function caml_lazy_update_to_forcing(o){ - var t = caml_obj_tag(o); - if(t != 246 && t != 250 && t != 244) return 4; - if(caml_obj_update_tag(o, 246, 244)) - return 0; - else{ - var field0 = o[1]; - t = o[0]; - if(t == 244) - return field0 == caml_ml_domain_unique_token(0) ? 1 : 2; - else if(t == 250) return 3; else return 2; - } - } - function caml_gc_counters(){return [254, 0, 0, 0];} - function ml_z_div(z1, z2){ - z2 = bigInt(z2); - if(z2.equals(bigInt(0))) caml_raise_zero_divide(); - return ml_z_normalize(bigInt(z1).divide(bigInt(z2))); - } - function ml_z_sign(z1){return bigInt(z1).compare(bigInt.zero);} - function ml_z_add(z1, z2){ - return ml_z_normalize(bigInt(z1).add(bigInt(z2))); - } - function ml_z_cdiv(z1, z2){ - var z1_pos = ml_z_sign(z1), z2_pos = ml_z_sign(z2); - if(z1_pos * z2_pos > 0) - if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) - return ml_z_add(ml_z_div(z1, z2), bigInt(1)); - return ml_z_div(z1, z2); - } - function caml_gr_synchronize(){ - caml_failwith("caml_gr_synchronize not Implemented"); - } - function caml_unix_closedir(dir_handle){ - try{dir_handle.pointer.closeSync();} - catch(e){ - var unix_error = caml_named_value("Unix.Unix_error"); - caml_raise_with_args - (unix_error, make_unix_err_args("EBADF", "closedir", dir_handle.path)); - } - } - function caml_unix_opendir(path){ - var root = resolve_fs_device(path); - if(! root.device.opendir) - caml_failwith("caml_unix_opendir: not implemented"); - var dir_handle = root.device.opendir(root.rest, true); - return {pointer: dir_handle, path: path}; - } - function caml_unix_rewinddir(dir_handle){ - caml_unix_closedir(dir_handle); - var new_dir_handle = caml_unix_opendir(dir_handle.path); - dir_handle.pointer = new_dir_handle.pointer; - return 0; - } - function caml_raise_end_of_file(){ - caml_raise_constant(caml_global_data.End_of_file); - } - function caml_unix_readdir(dir_handle){ - var entry; - try{entry = dir_handle.pointer.readSync();} - catch(e){ - var unix_error = caml_named_value("Unix.Unix_error"); - caml_raise_with_args - (unix_error, make_unix_err_args("EBADF", "readdir", dir_handle.path)); - } - if(entry === null) - caml_raise_end_of_file(); + jsoo_mount_point.push + ({path:caml_root,device:new MlFakeDevice(caml_root)}); + jsoo_mount_point.push + ({path:"/static/",device:new MlFakeDevice("/static/")}); + function resolve_fs_device(name) + {var + path=caml_make_path(name), + name=path.join("/"), + name_slash=caml_trailing_slash(name), + res; + for(var i=0;i < jsoo_mount_point.length;i++) + {var m=jsoo_mount_point[i]; + if + (name_slash.search(m.path) + == + 0 + && + (! res || res.path.length < m.path.length)) + res + = + {path:m.path, + device:m.device, + rest:name.substring(m.path.length,name.length)}} + if(! res && fs_node_supported()) + {var root=caml_get_root(name); + if(root && root.match(/^[a-zA-Z]:\/$/)) + {var m={path:root,device:new MlNodeDevice(root)}; + jsoo_mount_point.push(m); + res + = + {path:m.path, + device:m.device, + rest:name.substring(m.path.length,name.length)}}} + if(res)return res; + caml_raise_sys_error("no device found for " + name_slash)} + function caml_sys_is_directory(name) + {var root=resolve_fs_device(name),a=root.device.is_dir(root.rest); + return a?1:0} + function caml_raise_not_found() + {caml_raise_constant(caml_global_data.Not_found)} + function caml_sys_getenv(name) + {var process=globalThis.process,n=caml_jsstring_of_string(name); + if(process && process.env && process.env[n] != undefined) + return caml_string_of_jsstring(process.env[n]); + if(globalThis.jsoo_static_env && globalThis.jsoo_static_env[n]) + return caml_string_of_jsstring(globalThis.jsoo_static_env[n]); + caml_raise_not_found()} + function shift_right_nat(nat1,ofs1,len1,nat2,ofs2,nbits) + {if(nbits == 0){nat2.data[ofs2] = 0;return 0} + var wrap=0; + for(var i=len1 - 1;i >= 0;i--) + {var a=nat1.data[ofs1 + i] >>> 0; + nat1.data[ofs1 + i] = a >>> nbits | wrap; + wrap = a << 32 - nbits} + nat2.data[ofs2] = wrap; + return 0} + var caml_gr_state; + function caml_gr_state_get() + {if(caml_gr_state)return caml_gr_state; + throw [0, + caml_named_value("Graphics.Graphic_failure"), + caml_string_of_jsbytes("Not initialized")]} + function caml_gr_point_color(x,y) + {var + s=caml_gr_state_get(), + im=s.context.getImageData(x,s.height - y,1,1), + d=im.data; + return (d[0] << 16) + (d[1] << 8) + d[2]} + var MlObjectTable; + if(typeof globalThis.WeakMap === "undefined") + MlObjectTable + = + function() + {function NaiveLookup(objs){this.objs = objs} + NaiveLookup.prototype.get + = + function(v) + {for(var i=0;i < this.objs.length;i++)if(this.objs[i] === v)return i}; + NaiveLookup.prototype.set = function(){}; + return function() + {this.objs = [];this.lookup = new NaiveLookup(this.objs)}} + (); else - return caml_string_of_jsstring(entry.name); - } - function caml_unix_findfirst(path){ - var path_js = caml_jsstring_of_string(path); - path_js = path_js.replace(/(^|[\\\/])\*\.\*$/, ""); - path = caml_string_of_jsstring(path_js); - var - dir_handle = caml_unix_opendir(path), - first_entry = caml_unix_readdir(dir_handle); - return [0, first_entry, dir_handle]; - } - function caml_is_continuation_tag(t){return 0;} - var log2_ok = Math.log2 && Math.log2(1.1235582092889474E+307) == 1020; - function jsoo_floor_log2(x){ - if(log2_ok) return Math.floor(Math.log2(x)); - var i = 0; - if(x == 0) return - Infinity; - if(x >= 1) while(x >= 2){x /= 2; i++;} else while(x < 1){x *= 2; i--;} - return i; - } - function caml_int32_bits_of_float(x){ - var float32a = new Float32Array(1); - float32a[0] = x; - var int32a = new Int32Array(float32a.buffer); - return int32a[0] | 0; - } - function caml_int64_create_lo_mi_hi(lo, mi, hi){return new MlInt64(lo, mi, hi); - } - function caml_int64_bits_of_float(x){ - if(! isFinite(x)){ - if(isNaN(x)) return caml_int64_create_lo_mi_hi(1, 0, 0x7ff0); - return x > 0 - ? caml_int64_create_lo_mi_hi(0, 0, 0x7ff0) - : caml_int64_create_lo_mi_hi(0, 0, 0xfff0); - } - var sign = x == 0 && 1 / x == - Infinity ? 0x8000 : x >= 0 ? 0 : 0x8000; - if(sign) x = - x; - var exp = jsoo_floor_log2(x) + 1023; - if(exp <= 0){ - exp = 0; - x /= Math.pow(2, - 1026); - } - else{ - x /= Math.pow(2, exp - 1027); - if(x < 16){x *= 2; exp -= 1;} - if(exp == 0) x /= 2; - } - var k = Math.pow(2, 24), r3 = x | 0; - x = (x - r3) * k; - var r2 = x | 0; - x = (x - r2) * k; - var r1 = x | 0; - r3 = r3 & 0xf | sign | exp << 4; - return caml_int64_create_lo_mi_hi(r1, r2, r3); - } - function caml_ba_serialize(writer, ba, sz){ - writer.write(32, ba.dims.length); - writer.write(32, ba.kind | ba.layout << 8); - if(ba.caml_custom == "_bigarr02") - for(var i = 0; i < ba.dims.length; i++) - if(ba.dims[i] < 0xffff) - writer.write(16, ba.dims[i]); - else{ - writer.write(16, 0xffff); - writer.write(32, 0); - writer.write(32, ba.dims[i]); - } - else - for(var i = 0; i < ba.dims.length; i++) writer.write(32, ba.dims[i]); - switch(ba.kind){ - case 2: - case 3: - case 12: - for(var i = 0; i < ba.data.length; i++) writer.write(8, ba.data[i]); - break; - case 4: - case 5: - for(var i = 0; i < ba.data.length; i++) writer.write(16, ba.data[i]); - break; - case 6: - for(var i = 0; i < ba.data.length; i++) writer.write(32, ba.data[i]); - break; - case 8: - case 9: - writer.write(8, 0); - for(var i = 0; i < ba.data.length; i++) writer.write(32, ba.data[i]); - break; - case 7: - for(var i = 0; i < ba.data.length / 2; i++){ - var b = caml_int64_to_bytes(ba.get(i)); - for(var j = 0; j < 8; j++) writer.write(8, b[j]); - } - break; - case 1: - for(var i = 0; i < ba.data.length; i++){ - var b = caml_int64_to_bytes(caml_int64_bits_of_float(ba.get(i))); - for(var j = 0; j < 8; j++) writer.write(8, b[j]); - } - break; - case 0: - for(var i = 0; i < ba.data.length; i++){ - var b = caml_int32_bits_of_float(ba.get(i)); - writer.write(32, b); - } - break; - case 10: - for(var i = 0; i < ba.data.length / 2; i++){ - var j = ba.get(i); - writer.write(32, caml_int32_bits_of_float(j[1])); - writer.write(32, caml_int32_bits_of_float(j[2])); - } - break; - case 11: - for(var i = 0; i < ba.data.length / 2; i++){ - var - complex = ba.get(i), - b = caml_int64_to_bytes(caml_int64_bits_of_float(complex[1])); - for(var j = 0; j < 8; j++) writer.write(8, b[j]); - var b = caml_int64_to_bytes(caml_int64_bits_of_float(complex[2])); - for(var j = 0; j < 8; j++) writer.write(8, b[j]); - } - break; - } - sz[0] = (4 + ba.dims.length) * 4; - sz[1] = (4 + ba.dims.length) * 8; - } - function caml_ba_get_size_per_element(kind){ - switch(kind){case 7:case 10:case 11: return 2;default: return 1; - } - } - function caml_ba_create_buffer(kind, size){ - var view; - switch(kind){ - case 0: - view = Float32Array; break; - case 1: - view = Float64Array; break; - case 2: - view = Int8Array; break; - case 3: - view = Uint8Array; break; - case 4: - view = Int16Array; break; - case 5: - view = Uint16Array; break; - case 6: - view = Int32Array; break; - case 7: - view = Int32Array; break; - case 8: - view = Int32Array; break; - case 9: - view = Int32Array; break; - case 10: - view = Float32Array; break; - case 11: - view = Float64Array; break; - case 12: - view = Uint8Array; break; - } - if(! view) caml_invalid_argument("Bigarray.create: unsupported kind"); - var data = new view(size * caml_ba_get_size_per_element(kind)); - return data; - } - function caml_int32_float_of_bits(x){ - var int32a = new Int32Array(1); - int32a[0] = x; - var float32a = new Float32Array(int32a.buffer); - return float32a[0]; - } - function caml_int64_float_of_bits(x){ - var lo = x.lo, mi = x.mi, hi = x.hi, exp = (hi & 0x7fff) >> 4; - if(exp == 2047) - return (lo | mi | hi & 0xf) == 0 - ? hi & 0x8000 ? - Infinity : Infinity - : NaN; - var k = Math.pow(2, - 24), res = (lo * k + mi) * k + (hi & 0xf); - if(exp > 0){ - res += 16; - res *= Math.pow(2, exp - 1027); - } - else - res *= Math.pow(2, - 1026); - if(hi & 0x8000) res = - res; - return res; - } - function caml_ba_get_size(dims){ - var n_dims = dims.length, size = 1; - for(var i = 0; i < n_dims; i++){ - if(dims[i] < 0) - caml_invalid_argument("Bigarray.create: negative dimension"); - size = size * dims[i]; - } - return size; - } - function caml_int64_create_lo_hi(lo, hi){ - return new - MlInt64 - (lo & 0xffffff, - lo >>> 24 & 0xff | (hi & 0xffff) << 8, - hi >>> 16 & 0xffff); - } - function caml_int64_hi32(v){return v.hi32();} - function caml_int64_lo32(v){return v.lo32();} - var caml_ba_custom_name = "_bigarr02"; - function Ml_Bigarray(kind, layout, dims, buffer){ - this.kind = kind; - this.layout = layout; - this.dims = dims; - this.data = buffer; - } - Ml_Bigarray.prototype.caml_custom = caml_ba_custom_name; - Ml_Bigarray.prototype.offset = - function(arg){ - var ofs = 0; - if(typeof arg === "number") arg = [arg]; - if(! (arg instanceof Array)) - caml_invalid_argument("bigarray.js: invalid offset"); - if(this.dims.length != arg.length) - caml_invalid_argument("Bigarray.get/set: bad number of dimensions"); - if(this.layout == 0) - for(var i = 0; i < this.dims.length; i++){ - if(arg[i] < 0 || arg[i] >= this.dims[i]) caml_array_bound_error(); - ofs = ofs * this.dims[i] + arg[i]; - } - else - for(var i = this.dims.length - 1; i >= 0; i--){ - if(arg[i] < 1 || arg[i] > this.dims[i]) caml_array_bound_error(); - ofs = ofs * this.dims[i] + (arg[i] - 1); - } - return ofs; - }; - Ml_Bigarray.prototype.get = - function(ofs){ - switch(this.kind){ - case 7: - var l = this.data[ofs * 2 + 0], h = this.data[ofs * 2 + 1]; - return caml_int64_create_lo_hi(l, h); - case 10: - case 11: - var r = this.data[ofs * 2 + 0], i = this.data[ofs * 2 + 1]; - return [254, r, i]; - default: return this.data[ofs]; - } - }; - Ml_Bigarray.prototype.set = - function(ofs, v){ - switch(this.kind){ - case 7: - this.data[ofs * 2 + 0] = caml_int64_lo32(v); - this.data[ofs * 2 + 1] = caml_int64_hi32(v); - break; - case 10: - case 11: - this.data[ofs * 2 + 0] = v[1]; this.data[ofs * 2 + 1] = v[2]; break; - default: this.data[ofs] = v; break; - } - return 0; - }; - Ml_Bigarray.prototype.fill = - function(v){ - switch(this.kind){ - case 7: - var a = caml_int64_lo32(v), b = caml_int64_hi32(v); - if(a == b) - this.data.fill(a); + MlObjectTable + = + function(){this.objs = [];this.lookup = new (globalThis.WeakMap)()}; + MlObjectTable.prototype.store + = + function(v){this.lookup.set(v,this.objs.length);this.objs.push(v)}; + MlObjectTable.prototype.recall + = + function(v) + {var i=this.lookup.get(v); + return i === undefined?undefined:this.objs.length - i}; + function caml_sys_rename(o,n) + {var o_root=resolve_fs_device(o),n_root=resolve_fs_device(n); + if(o_root.device != n_root.device) + caml_failwith + ("caml_sys_rename: cannot move file between two filesystem"); + if(! o_root.device.rename) + caml_failwith("caml_sys_rename: no implemented"); + o_root.device.rename(o_root.rest,n_root.rest)} + function caml_log10_float(x){return Math.log10(x)} + var caml_runtime_warnings=0; + function caml_ml_enable_runtime_warnings(bool) + {caml_runtime_warnings = bool;return 0} + function caml_classify_float(x) + {if(isFinite(x)) + {if(Math.abs(x) >= 2.2250738585072014e-308)return 0; + if(x != 0)return 1; + return 2} + return isNaN(x)?4:3} + var caml_ml_channels=new Array(); + function caml_refill(chan) + {if(chan.refill != null) + {var str=chan.refill(),str_a=caml_uint8_array_of_string(str); + if(str_a.length == 0) + chan.refill = null; else - for(var i = 0; i < this.data.length; i++) - this.data[i] = i % 2 == 0 ? a : b; - break; - case 10: - case 11: - var im = v[1], re = v[2]; - if(im == re) - this.data.fill(im); - else - for(var i = 0; i < this.data.length; i++) - this.data[i] = i % 2 == 0 ? im : re; - break; - default: this.data.fill(v); break; - } - }; - Ml_Bigarray.prototype.compare = - function(b, total){ - if(this.layout != b.layout || this.kind != b.kind){ - var k1 = this.kind | this.layout << 8, k2 = b.kind | b.layout << 8; - return k2 - k1; - } - if(this.dims.length != b.dims.length) - return b.dims.length - this.dims.length; - for(var i = 0; i < this.dims.length; i++) - if(this.dims[i] != b.dims[i]) return this.dims[i] < b.dims[i] ? - 1 : 1; - switch(this.kind){ - case 0: - case 1: - case 10: - case 11: - var x, y; - for(var i = 0; i < this.data.length; i++){ - x = this.data[i]; - y = b.data[i]; - if(x < y) return - 1; - if(x > y) return 1; - if(x != y){ - if(! total) return NaN; - if(x == x) return 1; - if(y == y) return - 1; - } - } - break; - case 7: - for(var i = 0; i < this.data.length; i += 2){ - if(this.data[i + 1] < b.data[i + 1]) return - 1; - if(this.data[i + 1] > b.data[i + 1]) return 1; - if(this.data[i] >>> 0 < b.data[i] >>> 0) return - 1; - if(this.data[i] >>> 0 > b.data[i] >>> 0) return 1; - } - break; - case 2: - case 3: - case 4: - case 5: - case 6: - case 8: - case 9: - case 12: - for(var i = 0; i < this.data.length; i++){ - if(this.data[i] < b.data[i]) return - 1; - if(this.data[i] > b.data[i]) return 1; - } - break; - } - return 0; - }; - function Ml_Bigarray_c_1_1(kind, layout, dims, buffer){ - this.kind = kind; - this.layout = layout; - this.dims = dims; - this.data = buffer; - } - Ml_Bigarray_c_1_1.prototype = new Ml_Bigarray(); - Ml_Bigarray_c_1_1.prototype.offset = - function(arg){ - if(typeof arg !== "number") - if(arg instanceof Array && arg.length == 1) - arg = arg[0]; + {if(chan.buffer.length < chan.buffer_max + str_a.length) + {var b=new Uint8Array(chan.buffer_max + str_a.length); + b.set(chan.buffer); + chan.buffer = b} + chan.buffer.set(str_a,chan.buffer_max); + chan.offset += str_a.length; + chan.buffer_max += str_a.length}} else - caml_invalid_argument("Ml_Bigarray_c_1_1.offset"); - if(arg < 0 || arg >= this.dims[0]) caml_array_bound_error(); - return arg; - }; - Ml_Bigarray_c_1_1.prototype.get = function(ofs){return this.data[ofs];}; - Ml_Bigarray_c_1_1.prototype.set = - function(ofs, v){this.data[ofs] = v; return 0;}; - Ml_Bigarray_c_1_1.prototype.fill = - function(v){this.data.fill(v); return 0;}; - function caml_ba_create_unsafe(kind, layout, dims, data){ - var size_per_element = caml_ba_get_size_per_element(kind); - if(caml_ba_get_size(dims) * size_per_element != data.length) - caml_invalid_argument("length doesn't match dims"); - if(layout == 0 && dims.length == 1 && size_per_element == 1) - return new Ml_Bigarray_c_1_1(kind, layout, dims, data); - return new Ml_Bigarray(kind, layout, dims, data); - } - function caml_ba_deserialize(reader, sz, name){ - var num_dims = reader.read32s(); - if(num_dims < 0 || num_dims > 16) - caml_failwith("input_value: wrong number of bigarray dimensions"); + {var + nread= + chan.file.read + (chan.offset, + chan.buffer, + chan.buffer_max, + chan.buffer.length - chan.buffer_max); + chan.offset += nread; + chan.buffer_max += nread}} + function caml_array_bound_error() + {caml_invalid_argument("index out of bounds")} + function caml_ml_input_scan_line(chanid) + {var chan=caml_ml_channels[chanid],p=chan.buffer_curr; + do + if(p >= chan.buffer_max) + {if(chan.buffer_curr > 0) + {chan.buffer.set(chan.buffer.subarray(chan.buffer_curr),0); + p -= chan.buffer_curr; + chan.buffer_max -= chan.buffer_curr; + chan.buffer_curr = 0} + if(chan.buffer_max >= chan.buffer.length)return - chan.buffer_max; + var prev_max=chan.buffer_max; + caml_refill(chan); + if(prev_max == chan.buffer_max)return - chan.buffer_max} + while + (chan.buffer[p++] != 10); + return p - chan.buffer_curr} + function caml_gc_minor(unit) + {if(typeof globalThis.gc == "function")globalThis.gc(true);return 0} var - tag = reader.read32s(), - kind = tag & 0xff, - layout = tag >> 8 & 1, - dims = []; - if(name == "_bigarr02") - for(var i = 0; i < num_dims; i++){ - var size_dim = reader.read16u(); - if(size_dim == 0xffff){ - var size_dim_hi = reader.read32u(), size_dim_lo = reader.read32u(); - if(size_dim_hi != 0) - caml_failwith("input_value: bigarray dimension overflow in 32bit"); - size_dim = size_dim_lo; - } - dims.push(size_dim); - } - else - for(var i = 0; i < num_dims; i++) dims.push(reader.read32u()); + bigInt= + function(undefined) + {"use strict"; + var + BASE=1e7, + LOG_BASE=7, + MAX_INT=9007199254740992, + MAX_INT_ARR=smallToArray(MAX_INT), + DEFAULT_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyz", + BigInt=joo_global_object.BigInt, + supportsNativeBigInt=typeof BigInt === "function"; + function Integer(v,radix,alphabet,caseSensitive) + {if(typeof v === "undefined")return Integer[0]; + if(typeof radix !== "undefined") + return + radix === 10 && ! alphabet + ?parseValue(v) + :parseBase(v,radix,alphabet,caseSensitive); + return parseValue(v)} + function BigInteger(value,sign) + {this.value = value; + this.sign = sign; + this.isSmall = false; + this.caml_custom = "_z"} + BigInteger.prototype = Object.create(Integer.prototype); + function SmallInteger(value) + {this.value = value; + this.sign = value < 0; + this.isSmall = true; + this.caml_custom = "_z"} + SmallInteger.prototype = Object.create(Integer.prototype); + function NativeBigInt(value) + {this.value = value;this.caml_custom = "_z"} + NativeBigInt.prototype = Object.create(Integer.prototype); + function isPrecise(n){return - MAX_INT < n && n < MAX_INT} + function smallToArray(n) + {if(n < 1e7)return [n]; + if(n < 1e14)return [n % 1e7,Math.floor(n / 1e7)]; + return [n % 1e7,Math.floor(n / 1e7) % 1e7,Math.floor(n / 1e14)]} + function arrayToSmall(arr) + {trim(arr); + var length=arr.length; + if(length < 4 && compareAbs(arr,MAX_INT_ARR) < 0) + switch(length) + {case 0:return 0; + case 1:return arr[0]; + case 2:return arr[0] + arr[1] * BASE; + default:return arr[0] + (arr[1] + arr[2] * BASE) * BASE} + return arr} + function trim(v){var i=v.length;while(v[--i] === 0);v.length = i + 1} + function createArray(length) + {var x=new Array(length),i=- 1;while(++i < length)x[i] = 0;return x} + function truncate(n) + {if(n > 0)return Math.floor(n);return Math.ceil(n)} + function add(a,b) + {var + l_a=a.length, + l_b=b.length, + r=new Array(l_a), + carry=0, + base=BASE, + sum, + i; + for(i = 0;i < l_b;i++) + {sum = a[i] + b[i] + carry; + carry = sum >= base?1:0; + r[i] = sum - carry * base} + while(i < l_a) + {sum = a[i] + carry; + carry = sum === base?1:0; + r[i++] = sum - carry * base} + if(carry > 0)r.push(carry); + return r} + function addAny(a,b) + {if(a.length >= b.length)return add(a,b);return add(b,a)} + function addSmall(a,carry) + {var l=a.length,r=new Array(l),base=BASE,sum,i; + for(i = 0;i < l;i++) + {sum = a[i] - base + carry; + carry = Math.floor(sum / base); + r[i] = sum - carry * base; + carry += 1} + while(carry > 0) + {r[i++] = carry % base;carry = Math.floor(carry / base)} + return r} + BigInteger.prototype.add + = + function(v) + {var n=parseValue(v); + if(this.sign !== n.sign)return this.subtract(n.negate()); + var a=this.value,b=n.value; + if(n.isSmall) + return new BigInteger(addSmall(a,Math.abs(b)),this.sign); + return new BigInteger(addAny(a,b),this.sign)}; + BigInteger.prototype.plus = BigInteger.prototype.add; + SmallInteger.prototype.add + = + function(v) + {var n=parseValue(v),a=this.value; + if(a < 0 !== n.sign)return this.subtract(n.negate()); + var b=n.value; + if(n.isSmall) + {if(isPrecise(a + b))return new SmallInteger(a + b); + b = smallToArray(Math.abs(b))} + return new BigInteger(addSmall(b,Math.abs(a)),a < 0)}; + SmallInteger.prototype.plus = SmallInteger.prototype.add; + NativeBigInt.prototype.add + = + function(v) + {return new NativeBigInt(this.value + parseValue(v).value)}; + NativeBigInt.prototype.plus = NativeBigInt.prototype.add; + function subtract(a,b) + {var + a_l=a.length, + b_l=b.length, + r=new Array(a_l), + borrow=0, + base=BASE, + i, + difference; + for(i = 0;i < b_l;i++) + {difference = a[i] - borrow - b[i]; + if(difference < 0){difference += base;borrow = 1}else borrow = 0; + r[i] = difference} + for(i = b_l;i < a_l;i++) + {difference = a[i] - borrow; + if(difference < 0) + difference += base; + else + {r[i++] = difference;break} + r[i] = difference} + for(;i < a_l;i++)r[i] = a[i]; + trim(r); + return r} + function subtractAny(a,b,sign) + {var value; + if(compareAbs(a,b) >= 0) + value = subtract(a,b); + else + {value = subtract(b,a);sign = ! sign} + value = arrayToSmall(value); + if(typeof value === "number") + {if(sign)value = - value;return new SmallInteger(value)} + return new BigInteger(value,sign)} + function subtractSmall(a,b,sign) + {var l=a.length,r=new Array(l),carry=- b,base=BASE,i,difference; + for(i = 0;i < l;i++) + {difference = a[i] + carry; + carry = Math.floor(difference / base); + difference %= base; + r[i] = difference < 0?difference + base:difference} + r = arrayToSmall(r); + if(typeof r === "number") + {if(sign)r = - r;return new SmallInteger(r)} + return new BigInteger(r,sign)} + BigInteger.prototype.subtract + = + function(v) + {var n=parseValue(v); + if(this.sign !== n.sign)return this.add(n.negate()); + var a=this.value,b=n.value; + if(n.isSmall)return subtractSmall(a,Math.abs(b),this.sign); + return subtractAny(a,b,this.sign)}; + BigInteger.prototype.minus = BigInteger.prototype.subtract; + SmallInteger.prototype.subtract + = + function(v) + {var n=parseValue(v),a=this.value; + if(a < 0 !== n.sign)return this.add(n.negate()); + var b=n.value; + if(n.isSmall)return new SmallInteger(a - b); + return subtractSmall(b,Math.abs(a),a >= 0)}; + SmallInteger.prototype.minus = SmallInteger.prototype.subtract; + NativeBigInt.prototype.subtract + = + function(v) + {return new NativeBigInt(this.value - parseValue(v).value)}; + NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract; + BigInteger.prototype.negate + = + function(){return new BigInteger(this.value,! this.sign)}; + SmallInteger.prototype.negate + = + function() + {var sign=this.sign,small=new SmallInteger(- this.value); + small.sign = ! sign; + return small}; + NativeBigInt.prototype.negate + = + function(){return new NativeBigInt(- this.value)}; + BigInteger.prototype.abs + = + function(){return new BigInteger(this.value,false)}; + SmallInteger.prototype.abs + = + function(){return new SmallInteger(Math.abs(this.value))}; + NativeBigInt.prototype.abs + = + function() + {return new NativeBigInt(this.value >= 0?this.value:- this.value)}; + function multiplyLong(a,b) + {var + a_l=a.length, + b_l=b.length, + l=a_l + b_l, + r=createArray(l), + base=BASE, + product, + carry, + i, + a_i, + b_j; + for(i = 0;i < a_l;++i) + {a_i = a[i]; + for(var j=0;j < b_l;++j) + {b_j = b[j]; + product = a_i * b_j + r[i + j]; + carry = Math.floor(product / base); + r[i + j] = product - carry * base; + r[i + j + 1] += carry}} + trim(r); + return r} + function multiplySmall(a,b) + {var l=a.length,r=new Array(l),base=BASE,carry=0,product,i; + for(i = 0;i < l;i++) + {product = a[i] * b + carry; + carry = Math.floor(product / base); + r[i] = product - carry * base} + while(carry > 0) + {r[i++] = carry % base;carry = Math.floor(carry / base)} + return r} + function shiftLeft(x,n) + {var r=[];while(n-- > 0)r.push(0);return r.concat(x)} + function multiplyKaratsuba(x,y) + {var n=Math.max(x.length,y.length); + if(n <= 30)return multiplyLong(x,y); + n = Math.ceil(n / 2); + var + b=x.slice(n), + a=x.slice(0,n), + d=y.slice(n), + c=y.slice(0,n), + ac=multiplyKaratsuba(a,c), + bd=multiplyKaratsuba(b,d), + abcd=multiplyKaratsuba(addAny(a,b),addAny(c,d)), + product= + addAny + (addAny(ac,shiftLeft(subtract(subtract(abcd,ac),bd),n)), + shiftLeft(bd,2 * n)); + trim(product); + return product} + function useKaratsuba(l1,l2) + {return - (0.012 * l1) - 0.012 * l2 + 0.000015 * l1 * l2 > 0} + BigInteger.prototype.multiply + = + function(v) + {var + n=parseValue(v), + a=this.value, + b=n.value, + sign=this.sign !== n.sign, + abs; + if(n.isSmall) + {if(b === 0)return Integer[0]; + if(b === 1)return this; + if(b === - 1)return this.negate(); + abs = Math.abs(b); + if(abs < BASE)return new BigInteger(multiplySmall(a,abs),sign); + b = smallToArray(abs)} + if(useKaratsuba(a.length,b.length)) + return new BigInteger(multiplyKaratsuba(a,b),sign); + return new BigInteger(multiplyLong(a,b),sign)}; + BigInteger.prototype.times = BigInteger.prototype.multiply; + function multiplySmallAndArray(a,b,sign) + {if(a < BASE)return new BigInteger(multiplySmall(b,a),sign); + return new BigInteger(multiplyLong(b,smallToArray(a)),sign)} + SmallInteger.prototype._multiplyBySmall + = + function(a) + {if(isPrecise(a.value * this.value)) + return new SmallInteger(a.value * this.value); + return multiplySmallAndArray + (Math.abs(a.value), + smallToArray(Math.abs(this.value)), + this.sign !== a.sign)}; + BigInteger.prototype._multiplyBySmall + = + function(a) + {if(a.value === 0)return Integer[0]; + if(a.value === 1)return this; + if(a.value === - 1)return this.negate(); + return multiplySmallAndArray + (Math.abs(a.value),this.value,this.sign !== a.sign)}; + SmallInteger.prototype.multiply + = + function(v){return parseValue(v)._multiplyBySmall(this)}; + SmallInteger.prototype.times = SmallInteger.prototype.multiply; + NativeBigInt.prototype.multiply + = + function(v) + {return new NativeBigInt(this.value * parseValue(v).value)}; + NativeBigInt.prototype.times = NativeBigInt.prototype.multiply; + function square(a) + {var + l=a.length, + r=createArray(l + l), + base=BASE, + product, + carry, + i, + a_i, + a_j; + for(i = 0;i < l;i++) + {a_i = a[i]; + carry = 0 - a_i * a_i; + for(var j=i;j < l;j++) + {a_j = a[j]; + product = 2 * (a_i * a_j) + r[i + j] + carry; + carry = Math.floor(product / base); + r[i + j] = product - carry * base} + r[i + l] = carry} + trim(r); + return r} + BigInteger.prototype.square + = + function(){return new BigInteger(square(this.value),false)}; + SmallInteger.prototype.square + = + function() + {var value=this.value * this.value; + if(isPrecise(value))return new SmallInteger(value); + return new + BigInteger + (square(smallToArray(Math.abs(this.value))),false)}; + NativeBigInt.prototype.square + = + function(v){return new NativeBigInt(this.value * this.value)}; + function divMod1(a,b) + {var + a_l=a.length, + b_l=b.length, + base=BASE, + result=createArray(b.length), + divisorMostSignificantDigit=b[b_l - 1], + lambda=Math.ceil(base / (2 * divisorMostSignificantDigit)), + remainder=multiplySmall(a,lambda), + divisor=multiplySmall(b,lambda), + quotientDigit, + shift, + carry, + borrow, + i, + l, + q; + if(remainder.length <= a_l)remainder.push(0); + divisor.push(0); + divisorMostSignificantDigit = divisor[b_l - 1]; + for(shift = a_l - b_l;shift >= 0;shift--) + {quotientDigit = base - 1; + if(remainder[shift + b_l] !== divisorMostSignificantDigit) + quotientDigit + = + Math.floor + ((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) + / + divisorMostSignificantDigit); + carry = 0; + borrow = 0; + l = divisor.length; + for(i = 0;i < l;i++) + {carry += quotientDigit * divisor[i]; + q = Math.floor(carry / base); + borrow += remainder[shift + i] - (carry - q * base); + carry = q; + if(borrow < 0) + {remainder[shift + i] = borrow + base;borrow = - 1} + else + {remainder[shift + i] = borrow;borrow = 0}} + while(borrow !== 0) + {quotientDigit -= 1; + carry = 0; + for(i = 0;i < l;i++) + {carry += remainder[shift + i] - base + divisor[i]; + if(carry < 0) + {remainder[shift + i] = carry + base;carry = 0} + else + {remainder[shift + i] = carry;carry = 1}} + borrow += carry} + result[shift] = quotientDigit} + remainder = divModSmall(remainder,lambda)[0]; + return [arrayToSmall(result),arrayToSmall(remainder)]} + function divMod2(a,b) + {var + a_l=a.length, + b_l=b.length, + result=[], + part=[], + base=BASE, + guess, + xlen, + highx, + highy, + check; + while(a_l) + {part.unshift(a[--a_l]); + trim(part); + if(compareAbs(part,b) < 0){result.push(0);continue} + xlen = part.length; + highx = part[xlen - 1] * base + part[xlen - 2]; + highy = b[b_l - 1] * base + b[b_l - 2]; + if(xlen > b_l)highx = (highx + 1) * base; + guess = Math.ceil(highx / highy); + do + {check = multiplySmall(b,guess); + if(compareAbs(check,part) <= 0)break; + guess--} + while + (guess); + result.push(guess); + part = subtract(part,check)} + result.reverse(); + return [arrayToSmall(result),arrayToSmall(part)]} + function divModSmall(value,lambda) + {var + length=value.length, + quotient=createArray(length), + base=BASE, + i, + q, + remainder, + divisor; + remainder = 0; + for(i = length - 1;i >= 0;--i) + {divisor = remainder * base + value[i]; + q = truncate(divisor / lambda); + remainder = divisor - q * lambda; + quotient[i] = q | 0} + return [quotient,remainder | 0]} + function divModAny(self,v) + {var value,n=parseValue(v); + if(supportsNativeBigInt) + return [new NativeBigInt(self.value / n.value), + new NativeBigInt(self.value % n.value)]; + var a=self.value,b=n.value,quotient; + if(b === 0)throw new Error("Cannot divide by zero"); + if(self.isSmall) + {if(n.isSmall) + return [new SmallInteger(truncate(a / b)), + new SmallInteger(a % b)]; + return [Integer[0],self]} + if(n.isSmall) + {if(b === 1)return [self,Integer[0]]; + if(b == - 1)return [self.negate(),Integer[0]]; + var abs=Math.abs(b); + if(abs < BASE) + {value = divModSmall(a,abs); + quotient = arrayToSmall(value[0]); + var remainder=value[1]; + if(self.sign)remainder = - remainder; + if(typeof quotient === "number") + {if(self.sign !== n.sign)quotient = - quotient; + return [new SmallInteger(quotient), + new SmallInteger(remainder)]} + return [new BigInteger(quotient,self.sign !== n.sign), + new SmallInteger(remainder)]} + b = smallToArray(abs)} + var comparison=compareAbs(a,b); + if(comparison === - 1)return [Integer[0],self]; + if(comparison === 0) + return [Integer[self.sign === n.sign?1:- 1],Integer[0]]; + if(a.length + b.length <= 200) + value = divMod1(a,b); + else + value = divMod2(a,b); + quotient = value[0]; + var qSign=self.sign !== n.sign,mod=value[1],mSign=self.sign; + if(typeof quotient === "number") + {if(qSign)quotient = - quotient; + quotient = new SmallInteger(quotient)} + else + quotient = new BigInteger(quotient,qSign); + if(typeof mod === "number") + {if(mSign)mod = - mod;mod = new SmallInteger(mod)} + else + mod = new BigInteger(mod,mSign); + return [quotient,mod]} + BigInteger.prototype.divmod + = + function(v) + {var result=divModAny(this,v); + return {quotient:result[0],remainder:result[1]}}; + NativeBigInt.prototype.divmod + = + SmallInteger.prototype.divmod + = + BigInteger.prototype.divmod; + BigInteger.prototype.divide + = + function(v){return divModAny(this,v)[0]}; + NativeBigInt.prototype.over + = + NativeBigInt.prototype.divide + = + function(v) + {return new NativeBigInt(this.value / parseValue(v).value)}; + SmallInteger.prototype.over + = + SmallInteger.prototype.divide + = + BigInteger.prototype.over + = + BigInteger.prototype.divide; + BigInteger.prototype.mod = function(v){return divModAny(this,v)[1]}; + NativeBigInt.prototype.mod + = + NativeBigInt.prototype.remainder + = + function(v) + {return new NativeBigInt(this.value % parseValue(v).value)}; + SmallInteger.prototype.remainder + = + SmallInteger.prototype.mod + = + BigInteger.prototype.remainder + = + BigInteger.prototype.mod; + BigInteger.prototype.pow + = + function(v) + {var n=parseValue(v),a=this.value,b=n.value,value,x,y; + if(b === 0)return Integer[1]; + if(a === 0)return Integer[0]; + if(a === 1)return Integer[1]; + if(a === - 1)return n.isEven()?Integer[1]:Integer[- 1]; + if(n.sign)return Integer[0]; + if(! n.isSmall) + throw new Error("The exponent " + n.toString() + " is too large."); + if(this.isSmall) + if(isPrecise(value = Math.pow(a,b))) + return new SmallInteger(truncate(value)); + x = this; + y = Integer[1]; + while(true) + {if(b & 1 === 1){y = y.times(x);--b} + if(b === 0)break; + b /= 2; + x = x.square()} + return y}; + SmallInteger.prototype.pow = BigInteger.prototype.pow; + NativeBigInt.prototype.pow + = + function(v) + {var + n=parseValue(v), + a=this.value, + b=n.value, + _0=BigInt(0), + _1=BigInt(1), + _2=BigInt(2); + if(b === _0)return Integer[1]; + if(a === _0)return Integer[0]; + if(a === _1)return Integer[1]; + if(a === BigInt(- 1))return n.isEven()?Integer[1]:Integer[- 1]; + if(n.isNegative())return new NativeBigInt(_0); + var x=this,y=Integer[1]; + while(true) + {if((b & _1) === _1){y = y.times(x);--b} + if(b === _0)break; + b /= _2; + x = x.square()} + return y}; + BigInteger.prototype.modPow + = + function(exp,mod) + {exp = parseValue(exp); + mod = parseValue(mod); + if(mod.isZero()) + throw new Error("Cannot take modPow with modulus 0"); + var r=Integer[1],base=this.mod(mod); + if(exp.isNegative()) + {exp = exp.multiply(Integer[- 1]);base = base.modInv(mod)} + while(exp.isPositive()) + {if(base.isZero())return Integer[0]; + if(exp.isOdd())r = r.multiply(base).mod(mod); + exp = exp.divide(2); + base = base.square().mod(mod)} + return r}; + NativeBigInt.prototype.modPow + = + SmallInteger.prototype.modPow + = + BigInteger.prototype.modPow; + function compareAbs(a,b) + {if(a.length !== b.length)return a.length > b.length?1:- 1; + for(var i=a.length - 1;i >= 0;i--) + if(a[i] !== b[i])return a[i] > b[i]?1:- 1; + return 0} + BigInteger.prototype.compareAbs + = + function(v) + {var n=parseValue(v),a=this.value,b=n.value; + if(n.isSmall)return 1; + return compareAbs(a,b)}; + SmallInteger.prototype.compareAbs + = + function(v) + {var n=parseValue(v),a=Math.abs(this.value),b=n.value; + if(n.isSmall){b = Math.abs(b);return a === b?0:a > b?1:- 1} + return - 1}; + NativeBigInt.prototype.compareAbs + = + function(v) + {var a=this.value,b=parseValue(v).value; + a = a >= 0?a:- a; + b = b >= 0?b:- b; + return a === b?0:a > b?1:- 1}; + BigInteger.prototype.compare + = + function(v) + {if(v === Infinity)return - 1; + if(v === - Infinity)return 1; + var n=parseValue(v),a=this.value,b=n.value; + if(this.sign !== n.sign)return n.sign?1:- 1; + if(n.isSmall)return this.sign?- 1:1; + return compareAbs(a,b) * (this.sign?- 1:1)}; + BigInteger.prototype.compareTo = BigInteger.prototype.compare; + SmallInteger.prototype.compare + = + function(v) + {if(v === Infinity)return - 1; + if(v === - Infinity)return 1; + var n=parseValue(v),a=this.value,b=n.value; + if(n.isSmall)return a == b?0:a > b?1:- 1; + if(a < 0 !== n.sign)return a < 0?- 1:1; + return a < 0?1:- 1}; + SmallInteger.prototype.compareTo = SmallInteger.prototype.compare; + NativeBigInt.prototype.compare + = + function(v) + {if(v === Infinity)return - 1; + if(v === - Infinity)return 1; + var a=this.value,b=parseValue(v).value; + return a === b?0:a > b?1:- 1}; + NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare; + BigInteger.prototype.equals + = + function(v){return this.compare(v) === 0}; + NativeBigInt.prototype.eq + = + NativeBigInt.prototype.equals + = + SmallInteger.prototype.eq + = + SmallInteger.prototype.equals + = + BigInteger.prototype.eq + = + BigInteger.prototype.equals; + BigInteger.prototype.notEquals + = + function(v){return this.compare(v) !== 0}; + NativeBigInt.prototype.neq + = + NativeBigInt.prototype.notEquals + = + SmallInteger.prototype.neq + = + SmallInteger.prototype.notEquals + = + BigInteger.prototype.neq + = + BigInteger.prototype.notEquals; + BigInteger.prototype.greater + = + function(v){return this.compare(v) > 0}; + NativeBigInt.prototype.gt + = + NativeBigInt.prototype.greater + = + SmallInteger.prototype.gt + = + SmallInteger.prototype.greater + = + BigInteger.prototype.gt + = + BigInteger.prototype.greater; + BigInteger.prototype.lesser + = + function(v){return this.compare(v) < 0}; + NativeBigInt.prototype.lt + = + NativeBigInt.prototype.lesser + = + SmallInteger.prototype.lt + = + SmallInteger.prototype.lesser + = + BigInteger.prototype.lt + = + BigInteger.prototype.lesser; + BigInteger.prototype.greaterOrEquals + = + function(v){return this.compare(v) >= 0}; + NativeBigInt.prototype.geq + = + NativeBigInt.prototype.greaterOrEquals + = + SmallInteger.prototype.geq + = + SmallInteger.prototype.greaterOrEquals + = + BigInteger.prototype.geq + = + BigInteger.prototype.greaterOrEquals; + BigInteger.prototype.lesserOrEquals + = + function(v){return this.compare(v) <= 0}; + NativeBigInt.prototype.leq + = + NativeBigInt.prototype.lesserOrEquals + = + SmallInteger.prototype.leq + = + SmallInteger.prototype.lesserOrEquals + = + BigInteger.prototype.leq + = + BigInteger.prototype.lesserOrEquals; + BigInteger.prototype.isEven + = + function(){return (this.value[0] & 1) === 0}; + SmallInteger.prototype.isEven + = + function(){return (this.value & 1) === 0}; + NativeBigInt.prototype.isEven + = + function(){return (this.value & BigInt(1)) === BigInt(0)}; + BigInteger.prototype.isOdd + = + function(){return (this.value[0] & 1) === 1}; + SmallInteger.prototype.isOdd + = + function(){return (this.value & 1) === 1}; + NativeBigInt.prototype.isOdd + = + function(){return (this.value & BigInt(1)) === BigInt(1)}; + BigInteger.prototype.isPositive = function(){return ! this.sign}; + SmallInteger.prototype.isPositive + = + function(){return this.value > 0}; + NativeBigInt.prototype.isPositive + = + SmallInteger.prototype.isPositive; + BigInteger.prototype.isNegative = function(){return this.sign}; + SmallInteger.prototype.isNegative + = + function(){return this.value < 0}; + NativeBigInt.prototype.isNegative + = + SmallInteger.prototype.isNegative; + BigInteger.prototype.isUnit = function(){return false}; + SmallInteger.prototype.isUnit + = + function(){return Math.abs(this.value) === 1}; + NativeBigInt.prototype.isUnit + = + function(){return this.abs().value === BigInt(1)}; + BigInteger.prototype.isZero = function(){return false}; + SmallInteger.prototype.isZero = function(){return this.value === 0}; + NativeBigInt.prototype.isZero + = + function(){return this.value === BigInt(0)}; + BigInteger.prototype.isDivisibleBy + = + function(v) + {var n=parseValue(v); + if(n.isZero())return false; + if(n.isUnit())return true; + if(n.compareAbs(2) === 0)return this.isEven(); + return this.mod(n).isZero()}; + NativeBigInt.prototype.isDivisibleBy + = + SmallInteger.prototype.isDivisibleBy + = + BigInteger.prototype.isDivisibleBy; + function isBasicPrime(v) + {var n=v.abs(); + if(n.isUnit())return false; + if(n.equals(2) || n.equals(3) || n.equals(5))return true; + if(n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) + return false; + if(n.lesser(49))return true} + function millerRabinTest(n,a) + {var nPrev=n.prev(),b=nPrev,r=0,d,t,i,x; + while(b.isEven())b = b.divide(2),r++; + next: + for(i = 0;i < a.length;i++) + {if(n.lesser(a[i]))continue; + x = bigInt(a[i]).modPow(b,n); + if(x.isUnit() || x.equals(nPrev))continue; + for(d = r - 1;d != 0;d--) + {x = x.square().mod(n); + if(x.isUnit())return false; + if(x.equals(nPrev))continue next} + return false} + return true} + BigInteger.prototype.isPrime + = + function(strict) + {var isPrime=isBasicPrime(this); + if(isPrime !== undefined)return isPrime; + var n=this.abs(),bits=n.bitLength(); + if(bits <= 64) + return millerRabinTest(n,[2,3,5,7,11,13,17,19,23,29,31,37]); + var + logN=Math.log(2) * bits.toJSNumber(), + t=Math.ceil(strict === true?2 * Math.pow(logN,2):logN); + for(var a=[],i=0;i < t;i++)a.push(bigInt(i + 2)); + return millerRabinTest(n,a)}; + NativeBigInt.prototype.isPrime + = + SmallInteger.prototype.isPrime + = + BigInteger.prototype.isPrime; + BigInteger.prototype.isProbablePrime + = + function(iterations) + {var isPrime=isBasicPrime(this); + if(isPrime !== undefined)return isPrime; + var n=this.abs(),t=iterations === undefined?5:iterations; + for(var a=[],i=0;i < t;i++) + a.push(bigInt.randBetween(2,n.minus(2))); + return millerRabinTest(n,a)}; + NativeBigInt.prototype.isProbablePrime + = + SmallInteger.prototype.isProbablePrime + = + BigInteger.prototype.isProbablePrime; + BigInteger.prototype.modInv + = + function(n) + {var + t=bigInt.zero, + newT=bigInt.one, + r=parseValue(n), + newR=this.abs(), + q, + lastT, + lastR; + while(! newR.isZero()) + {q = r.divide(newR); + lastT = t; + lastR = r; + t = newT; + r = newR; + newT = lastT.subtract(q.multiply(newT)); + newR = lastR.subtract(q.multiply(newR))} + if(! r.isUnit()) + throw new + Error + (this.toString() + + + " and " + + + n.toString() + + + " are not co-prime"); + if(t.compare(0) === - 1)t = t.add(n); + if(this.isNegative())return t.negate(); + return t}; + NativeBigInt.prototype.modInv + = + SmallInteger.prototype.modInv + = + BigInteger.prototype.modInv; + BigInteger.prototype.next + = + function() + {var value=this.value; + if(this.sign)return subtractSmall(value,1,this.sign); + return new BigInteger(addSmall(value,1),this.sign)}; + SmallInteger.prototype.next + = + function() + {var value=this.value; + if(value + 1 < MAX_INT)return new SmallInteger(value + 1); + return new BigInteger(MAX_INT_ARR,false)}; + NativeBigInt.prototype.next + = + function(){return new NativeBigInt(this.value + BigInt(1))}; + BigInteger.prototype.prev + = + function() + {var value=this.value; + if(this.sign)return new BigInteger(addSmall(value,1),true); + return subtractSmall(value,1,this.sign)}; + SmallInteger.prototype.prev + = + function() + {var value=this.value; + if(value - 1 > - MAX_INT)return new SmallInteger(value - 1); + return new BigInteger(MAX_INT_ARR,true)}; + NativeBigInt.prototype.prev + = + function(){return new NativeBigInt(this.value - BigInt(1))}; + var powersOfTwo=[1]; + while(2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) + powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]); + var + powers2Length=powersOfTwo.length, + highestPower2=powersOfTwo[powers2Length - 1]; + function shift_isSmall(n){return Math.abs(n) <= BASE} + BigInteger.prototype.shiftLeft + = + function(v) + {var n=parseValue(v).toJSNumber(); + if(! shift_isSmall(n)) + throw new Error(String(n) + " is too large for shifting."); + if(n < 0)return this.shiftRight(- n); + var result=this; + if(result.isZero())return result; + while(n >= powers2Length) + {result = result.multiply(highestPower2);n -= powers2Length - 1} + return result.multiply(powersOfTwo[n])}; + NativeBigInt.prototype.shiftLeft + = + SmallInteger.prototype.shiftLeft + = + BigInteger.prototype.shiftLeft; + BigInteger.prototype.shiftRight + = + function(v) + {var remQuo,n=parseValue(v).toJSNumber(); + if(! shift_isSmall(n)) + throw new Error(String(n) + " is too large for shifting."); + if(n < 0)return this.shiftLeft(- n); + var result=this; + while(n >= powers2Length) + {if(result.isZero() || result.isNegative() && result.isUnit()) + return result; + remQuo = divModAny(result,highestPower2); + result = remQuo[1].isNegative()?remQuo[0].prev():remQuo[0]; + n -= powers2Length - 1} + remQuo = divModAny(result,powersOfTwo[n]); + return remQuo[1].isNegative()?remQuo[0].prev():remQuo[0]}; + NativeBigInt.prototype.shiftRight + = + SmallInteger.prototype.shiftRight + = + BigInteger.prototype.shiftRight; + function bitwise(x,y,fn) + {y = parseValue(y); + var + xSign=x.isNegative(), + ySign=y.isNegative(), + xRem=xSign?x.not():x, + yRem=ySign?y.not():y, + xDigit=0, + yDigit=0, + xDivMod=null, + yDivMod=null, + result=[]; + while(! xRem.isZero() || ! yRem.isZero()) + {xDivMod = divModAny(xRem,highestPower2); + xDigit = xDivMod[1].toJSNumber(); + if(xSign)xDigit = highestPower2 - 1 - xDigit; + yDivMod = divModAny(yRem,highestPower2); + yDigit = yDivMod[1].toJSNumber(); + if(ySign)yDigit = highestPower2 - 1 - yDigit; + xRem = xDivMod[0]; + yRem = yDivMod[0]; + result.push(fn(xDigit,yDigit))} + var sum=fn(xSign?1:0,ySign?1:0) !== 0?bigInt(- 1):bigInt(0); + for(var i=result.length - 1;i >= 0;i -= 1) + sum = sum.multiply(highestPower2).add(bigInt(result[i])); + return sum} + BigInteger.prototype.not = function(){return this.negate().prev()}; + NativeBigInt.prototype.not + = + SmallInteger.prototype.not + = + BigInteger.prototype.not; + BigInteger.prototype.and + = + function(n){return bitwise(this,n,function(a,b){return a & b})}; + NativeBigInt.prototype.and + = + SmallInteger.prototype.and + = + BigInteger.prototype.and; + BigInteger.prototype.or + = + function(n){return bitwise(this,n,function(a,b){return a | b})}; + NativeBigInt.prototype.or + = + SmallInteger.prototype.or + = + BigInteger.prototype.or; + BigInteger.prototype.xor + = + function(n){return bitwise(this,n,function(a,b){return a ^ b})}; + NativeBigInt.prototype.xor + = + SmallInteger.prototype.xor + = + BigInteger.prototype.xor; + var + LOBMASK_I=1 << 30, + LOBMASK_BI=(BASE & - BASE) * (BASE & - BASE) | LOBMASK_I; + function roughLOB(n) + {var + v=n.value, + x= + typeof v === "number" + ?v | LOBMASK_I + :typeof v === "bigint" + ?v | BigInt(LOBMASK_I) + :v[0] + v[1] * BASE | LOBMASK_BI; + return x & - x} + function integerLogarithm(value,base) + {if(base.compareTo(value) <= 0) + {var + tmp=integerLogarithm(value,base.square(base)), + p=tmp.p, + e=tmp.e, + t=p.multiply(base); + return t.compareTo(value) <= 0?{p:t,e:e * 2 + 1}:{p:p,e:e * 2}} + return {p:bigInt(1),e:0}} + BigInteger.prototype.bitLength + = + function() + {var n=this; + if(n.compareTo(bigInt(0)) < 0)n = n.negate().subtract(bigInt(1)); + if(n.compareTo(bigInt(0)) === 0)return bigInt(0); + return bigInt(integerLogarithm(n,bigInt(2)).e).add(bigInt(1))}; + NativeBigInt.prototype.bitLength + = + SmallInteger.prototype.bitLength + = + BigInteger.prototype.bitLength; + function max(a,b) + {a = parseValue(a);b = parseValue(b);return a.greater(b)?a:b} + function min(a,b) + {a = parseValue(a);b = parseValue(b);return a.lesser(b)?a:b} + function gcd(a,b) + {a = parseValue(a).abs(); + b = parseValue(b).abs(); + if(a.equals(b))return a; + if(a.isZero())return b; + if(b.isZero())return a; + var c=Integer[1],d,t; + while(a.isEven() && b.isEven()) + {d = min(roughLOB(a),roughLOB(b)); + a = a.divide(d); + b = b.divide(d); + c = c.multiply(d)} + while(a.isEven())a = a.divide(roughLOB(a)); + do + {while(b.isEven())b = b.divide(roughLOB(b)); + if(a.greater(b)){t = b;b = a;a = t} + b = b.subtract(a)} + while + (! b.isZero()); + return c.isUnit()?a:a.multiply(c)} + function lcm(a,b) + {a = parseValue(a).abs(); + b = parseValue(b).abs(); + return a.divide(gcd(a,b)).multiply(b)} + function randBetween(a,b) + {a = parseValue(a); + b = parseValue(b); + var low=min(a,b),high=max(a,b),range=high.subtract(low).add(1); + if(range.isSmall)return low.add(Math.floor(Math.random() * range)); + var digits=toBase(range,BASE).value,result=[],restricted=true; + for(var i=0;i < digits.length;i++) + {var + top=restricted?digits[i]:BASE, + digit=truncate(Math.random() * top); + result.push(digit); + if(digit < top)restricted = false} + return low.add(Integer.fromArray(result,BASE,false))} + function parseBase(text,base,alphabet,caseSensitive) + {alphabet = alphabet || DEFAULT_ALPHABET; + text = String(text); + if(! caseSensitive) + {text = text.toLowerCase();alphabet = alphabet.toLowerCase()} + var length=text.length,i,absBase=Math.abs(base),alphabetValues={}; + for(i = 0;i < alphabet.length;i++)alphabetValues[alphabet[i]] = i; + for(i = 0;i < length;i++) + {var c=text[i]; + if(c === "-")continue; + if(c in alphabetValues) + if(alphabetValues[c] >= absBase) + {if(c === "1" && absBase === 1)continue; + throw new + Error + (c + " is not a valid digit in base " + base + ".")}} + base = parseValue(base); + var digits=[],isNegative=text[0] === "-"; + for(i = isNegative?1:0;i < text.length;i++) + {var c=text[i]; + if(c in alphabetValues) + digits.push(parseValue(alphabetValues[c])); + else + if(c === "<") + {var start=i; + do i++;while(text[i] !== ">" && i < text.length); + digits.push(parseValue(text.slice(start + 1,i)))} + else + throw new Error(c + " is not a valid character")} + return parseBaseFromArray(digits,base,isNegative)} + function parseBaseFromArray(digits,base,isNegative) + {var val=Integer[0],pow=Integer[1],i; + for(i = digits.length - 1;i >= 0;i--) + {val = val.add(digits[i].times(pow));pow = pow.times(base)} + return isNegative?val.negate():val} + function stringify(digit,alphabet) + {alphabet = alphabet || DEFAULT_ALPHABET; + if(digit < alphabet.length)return alphabet[digit]; + return "<" + digit + ">"} + function toBase(n,base) + {base = bigInt(base); + if(base.isZero()) + {if(n.isZero())return {value:[0],isNegative:false}; + throw new Error("Cannot convert nonzero numbers to base 0.")} + if(base.equals(- 1)) + {if(n.isZero())return {value:[0],isNegative:false}; + if(n.isNegative()) + return {value: + [].concat.apply + ([], + Array.apply(null,Array(- n.toJSNumber())).map + (Array.prototype.valueOf,[1,0])), + isNegative:false}; + var + arr= + Array.apply(null,Array(n.toJSNumber() - 1)).map + (Array.prototype.valueOf,[0,1]); + arr.unshift([1]); + return {value:[].concat.apply([],arr),isNegative:false}} + var neg=false; + if(n.isNegative() && base.isPositive()){neg = true;n = n.abs()} + if(base.isUnit()) + {if(n.isZero())return {value:[0],isNegative:false}; + return {value: + Array.apply(null,Array(n.toJSNumber())).map + (Number.prototype.valueOf,1), + isNegative:neg}} + var out=[],left=n,divmod; + while(left.isNegative() || left.compareAbs(base) >= 0) + {divmod = left.divmod(base); + left = divmod.quotient; + var digit=divmod.remainder; + if(digit.isNegative()) + {digit = base.minus(digit).abs();left = left.next()} + out.push(digit.toJSNumber())} + out.push(left.toJSNumber()); + return {value:out.reverse(),isNegative:neg}} + function toBaseString(n,base,alphabet) + {var arr=toBase(n,base); + return (arr.isNegative?"-":"") + + + arr.value.map(function(x){return stringify(x,alphabet)}).join + ("")} + BigInteger.prototype.toArray + = + function(radix){return toBase(this,radix)}; + SmallInteger.prototype.toArray + = + function(radix){return toBase(this,radix)}; + NativeBigInt.prototype.toArray + = + function(radix){return toBase(this,radix)}; + BigInteger.prototype.toString + = + function(radix,alphabet) + {if(radix === undefined)radix = 10; + if(radix !== 10)return toBaseString(this,radix,alphabet); + var + v=this.value, + l=v.length, + str=String(v[--l]), + zeros="0000000", + digit; + while(--l >= 0) + {digit = String(v[l]);str += zeros.slice(digit.length) + digit} + var sign=this.sign?"-":""; + return sign + str}; + SmallInteger.prototype.toString + = + function(radix,alphabet) + {if(radix === undefined)radix = 10; + if(radix != 10)return toBaseString(this,radix,alphabet); + return String(this.value)}; + NativeBigInt.prototype.toString = SmallInteger.prototype.toString; + NativeBigInt.prototype.toJSON + = + BigInteger.prototype.toJSON + = + SmallInteger.prototype.toJSON + = + function(){return this.toString()}; + BigInteger.prototype.valueOf + = + function(){return parseInt(this.toString(),10)}; + BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf; + SmallInteger.prototype.valueOf = function(){return this.value}; + SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf; + NativeBigInt.prototype.valueOf + = + NativeBigInt.prototype.toJSNumber + = + function(){return parseInt(this.toString(),10)}; + function parseStringValue(v) + {if(isPrecise(+ v)) + {var x=+ v; + if(x === truncate(x)) + return supportsNativeBigInt + ?new NativeBigInt(BigInt(x)) + :new SmallInteger(x); + throw new Error("Invalid integer: " + v)} + var sign=v[0] === "-"; + if(sign)v = v.slice(1); + var split=v.split(/e/i); + if(split.length > 2) + throw new Error("Invalid integer: " + split.join("e")); + if(split.length === 2) + {var exp=split[1]; + if(exp[0] === "+")exp = exp.slice(1); + exp = + exp; + if(exp !== truncate(exp) || ! isPrecise(exp)) + throw new + Error + ("Invalid integer: " + exp + " is not a valid exponent."); + var text=split[0],decimalPlace=text.indexOf("."); + if(decimalPlace >= 0) + {exp -= text.length - decimalPlace - 1; + text + = + text.slice(0,decimalPlace) + + + text.slice(decimalPlace + 1)} + if(exp < 0) + throw new + Error + ("Cannot include negative exponent part for integers"); + text += new Array(exp + 1).join("0"); + v = text} + var isValid=/^([0-9][0-9]*)$/.test(v); + if(! isValid)throw new Error("Invalid integer: " + v); + if(supportsNativeBigInt) + return new NativeBigInt(BigInt(sign?"-" + v:v)); + var r=[],max=v.length,l=LOG_BASE,min=max - l; + while(max > 0) + {r.push(+ v.slice(min,max));min -= l;if(min < 0)min = 0;max -= l} + trim(r); + return new BigInteger(r,sign)} + function parseNumberValue(v) + {if(supportsNativeBigInt)return new NativeBigInt(BigInt(v)); + if(isPrecise(v)) + {if(v !== truncate(v))throw new Error(v + " is not an integer."); + return new SmallInteger(v)} + return parseStringValue(v.toString())} + function parseValue(v) + {if(typeof v === "number")return parseNumberValue(v); + if(typeof v === "string")return parseStringValue(v); + if(typeof v === "bigint")return new NativeBigInt(v); + return v} + for(var i=0;i < 1000;i++) + {Integer[i] = parseValue(i);if(i > 0)Integer[- i] = parseValue(- i)} + Integer.one = Integer[1]; + Integer.zero = Integer[0]; + Integer.minusOne = Integer[- 1]; + Integer.max = max; + Integer.min = min; + Integer.gcd = gcd; + Integer.lcm = lcm; + Integer.isInstance + = + function(x) + {return x instanceof BigInteger + || + x instanceof SmallInteger + || + x instanceof NativeBigInt}; + Integer.randBetween = randBetween; + Integer.fromArray + = + function(digits,base,isNegative) + {return parseBaseFromArray + (digits.map(parseValue),parseValue(base || 10),isNegative)}; + return Integer} + (); + function ml_z_normalize(x) + {var y=x.toJSNumber() | 0;if(x.equals(bigInt(y)))return y;return x} + function ml_z_pow(z1,i1) + {i1 = bigInt(i1); + if(i1.lt(bigInt(0))) + caml_invalid_argument("Z.pow: exponent must be nonnegative"); + return ml_z_normalize(bigInt(z1).pow(i1))} + function ml_z_root(z,i) + {var zero=bigInt(0),one=bigInt(1); + z = bigInt(z); + if(i % 2 === 0 && z.lt(zero)) + caml_invalid_argument("Z.root: even root of a negative number"); + if(z.equals(zero) || z.equals(one))return ml_z_normalize(z); + var start=zero,end=z,ans=null,two=bigInt(2); + while(start.leq(end)) + {var mid=start.add(end).divide(two),po=mid.pow(i); + if(po.equals(z)) + return ml_z_normalize(mid); + else + if(po.lt(z)){start = mid.next();ans = mid}else end = mid.prev()} + return ml_z_normalize(ans)} + function ml_z_rootrem(z,i) + {var zero=bigInt(0),one=bigInt(1); + z = bigInt(z); + if(i % 2 === 0 && z.lt(zero)) + caml_invalid_argument("Z.rootrem: even root of a negative number"); + if(z.equals(zero) || z.equals(one))return [0,ml_z_normalize(z),zero]; + var start=zero,end=z,ans=null,two=bigInt(2); + while(start.leq(end)) + {var mid=start.add(end).divide(two),po=mid.pow(i); + if(po.equals(z)) + return [0,ml_z_normalize(mid),zero]; + else + if(po.lt(z)){start = mid.next();ans = mid}else end = mid.prev()} + return [0,ml_z_normalize(ans),ml_z_normalize(z.minus(ans.pow(i)))]} + function caml_ml_condition_new(unit){return {condition:1}} + function caml_int64_of_bytes(a) + {return new + MlInt64 + (a[7] << 0 | a[6] << 8 | a[5] << 16, + a[4] << 0 | a[3] << 8 | a[2] << 16, + a[1] << 0 | a[0] << 8)} + function caml_ba_uint8_get64(ba,i0) + {var ofs=ba.offset(i0); + if(ofs + 7 >= ba.data.length)caml_array_bound_error(); + var + b1=ba.get(ofs + 0), + b2=ba.get(ofs + 1), + b3=ba.get(ofs + 2), + b4=ba.get(ofs + 3), + b5=ba.get(ofs + 4), + b6=ba.get(ofs + 5), + b7=ba.get(ofs + 6), + b8=ba.get(ofs + 7); + return caml_int64_of_bytes([b8,b7,b6,b5,b4,b3,b2,b1])} + function caml_int64_to_bytes(x){return x.toArray()} + function caml_int64_marshal(writer,v,sizes) + {var b=caml_int64_to_bytes(v); + for(var i=0;i < 8;i++)writer.write(8,b[i]); + sizes[0] = 8; + sizes[1] = 8} + function caml_ba_num_dims(ba){return ba.dims.length} + function caml_return_exn_constant(tag){return tag} + function caml_wrap_exception(e) + {if(e instanceof Array)return e; + if + (globalThis.RangeError + && + e instanceof globalThis.RangeError + && + e.message + && + e.message.match(/maximum call stack/i)) + return caml_return_exn_constant(caml_global_data.Stack_overflow); + if + (globalThis.InternalError + && + e instanceof globalThis.InternalError + && + e.message + && + e.message.match(/too much recursion/i)) + return caml_return_exn_constant(caml_global_data.Stack_overflow); + if(e instanceof globalThis.Error && caml_named_value("jsError")) + return [0,caml_named_value("jsError"),e]; + return [0,caml_global_data.Failure,caml_string_of_jsstring(String(e))]} + function caml_create_file(name,content) + {var root=resolve_fs_device(name); + if(! root.device.register)caml_failwith("cannot register file"); + root.device.register(root.rest,content); + return 0} + function jsoo_create_file(name,content) + {var + name=caml_string_of_jsbytes(name), + content=caml_string_of_jsbytes(content); + return caml_create_file(name,content)} + function caml_fs_init() + {var tmp=globalThis.caml_fs_tmp; + if(tmp) + for(var i=0;i < tmp.length;i++) + jsoo_create_file(tmp[i].name,tmp[i].content); + globalThis.jsoo_create_file = jsoo_create_file; + globalThis.caml_fs_tmp = []; + return 0} + function caml_get_continuation_callstack(){return [0]} + var caml_parser_trace=0; + function caml_set_parser_trace(bool) + {var oldflag=caml_parser_trace;caml_parser_trace = bool;return oldflag} + function caml_list_of_js_array(a) + {var l=0; + for(var i=a.length - 1;i >= 0;i--){var e=a[i];l = [0,e,l]} + return l} + function caml_mul(a,b){return Math.imul(a,b)} + function caml_hash_mix_int(h,d) + {d = caml_mul(d,0xcc9e2d51 | 0); + d = d << 15 | d >>> 32 - 15; + d = caml_mul(d,0x1b873593); + h ^= d; + h = h << 13 | h >>> 32 - 13; + return (h + (h << 2) | 0) + (0xe6546b64 | 0) | 0} + function num_digits_nat(nat,ofs,len) + {for(var i=len - 1;i >= 0;i--)if(nat.data[ofs + i] != 0)return i + 1; + return 1} + function caml_hash_nat(x) + {var len=num_digits_nat(x,0,x.data.length),h=0; + for(var i=0;i < len;i++)h = caml_hash_mix_int(h,x.data[i]); + return h} + function caml_call_gen(f,args) + {if(f.fun)return caml_call_gen(f.fun,args); + if(typeof f !== "function")return f; + var n=f.length | 0; + if(n === 0)return f.apply(null,args); + var argsLen=args.length | 0,d=n - argsLen | 0; + if(d == 0) + return f.apply(null,args); + else + if(d < 0) + return caml_call_gen(f.apply(null,args.slice(0,n)),args.slice(n)); + else + return function() + {var + extra_args=arguments.length == 0?1:arguments.length, + nargs=new Array(args.length + extra_args); + for(var i=0;i < args.length;i++)nargs[i] = args[i]; + for(var i=0;i < arguments.length;i++) + nargs[args.length + i] = arguments[i]; + return caml_call_gen(f,nargs)}} + var caml_callback=caml_call_gen; + function caml_js_wrap_callback_arguments(f) + {return function() + {var len=arguments.length,args=new Array(len); + for(var i=0;i < len;i++)args[i] = arguments[i]; + return caml_callback(f,[args])}} + function caml_sys_chdir(dir) + {var root=resolve_fs_device(dir); + if(root.device.exists(root.rest)) + {if(root.rest) + caml_current_dir = caml_trailing_slash(root.path + root.rest); + else + caml_current_dir = root.path; + return 0} + else + caml_raise_no_such_file(caml_jsbytes_of_string(dir))} + function caml_obj_tag(x) + {if(x instanceof Array && x[0] == x[0] >>> 0) + return x[0]; + else + if(caml_is_ml_bytes(x)) + return 252; + else + if(caml_is_ml_string(x)) + return 252; + else + if(x instanceof Function || typeof x == "function") + return 247; + else + if(x && x.caml_custom)return 255;else return 1000} + function caml_obj_update_tag(b,o,n) + {if(b[0] == o){b[0] = n;return 1}return 0} + var caml_ml_domain_unique_token_=[0]; + function caml_ml_domain_unique_token(unit) + {return caml_ml_domain_unique_token_} + function caml_lazy_update_to_forcing(o) + {var t=caml_obj_tag(o); + if(t != 246 && t != 250 && t != 244)return 4; + if(caml_obj_update_tag(o,246,244)) + return 0; + else + {var field0=o[1]; + t = o[0]; + if(t == 244) + return field0 == caml_ml_domain_unique_token(0)?1:2; + else + if(t == 250)return 3;else return 2}} + function caml_gc_counters(){return [254,0,0,0]} + function ml_z_div(z1,z2) + {z2 = bigInt(z2); + if(z2.equals(bigInt(0)))caml_raise_zero_divide(); + return ml_z_normalize(bigInt(z1).divide(bigInt(z2)))} + function ml_z_sign(z1){return bigInt(z1).compare(bigInt.zero)} + function ml_z_add(z1,z2) + {return ml_z_normalize(bigInt(z1).add(bigInt(z2)))} + function ml_z_cdiv(z1,z2) + {var z1_pos=ml_z_sign(z1),z2_pos=ml_z_sign(z2); + if(z1_pos * z2_pos > 0) + if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) + return ml_z_add(ml_z_div(z1,z2),bigInt(1)); + return ml_z_div(z1,z2)} + function caml_gr_synchronize() + {caml_failwith("caml_gr_synchronize not Implemented")} + function caml_unix_closedir(dir_handle) + {try + {dir_handle.pointer.closeSync()} + catch(e) + {var unix_error=caml_named_value("Unix.Unix_error"); + caml_raise_with_args + (unix_error,make_unix_err_args("EBADF","closedir",dir_handle.path))}} + function caml_unix_opendir(path) + {var root=resolve_fs_device(path); + if(! root.device.opendir) + caml_failwith("caml_unix_opendir: not implemented"); + var dir_handle=root.device.opendir(root.rest,true); + return {pointer:dir_handle,path:path}} + function caml_unix_rewinddir(dir_handle) + {caml_unix_closedir(dir_handle); + var new_dir_handle=caml_unix_opendir(dir_handle.path); + dir_handle.pointer = new_dir_handle.pointer; + return 0} + function caml_raise_end_of_file() + {caml_raise_constant(caml_global_data.End_of_file)} + function caml_unix_readdir(dir_handle) + {var entry; + try + {entry = dir_handle.pointer.readSync()} + catch(e) + {var unix_error=caml_named_value("Unix.Unix_error"); + caml_raise_with_args + (unix_error,make_unix_err_args("EBADF","readdir",dir_handle.path))} + if(entry === null) + caml_raise_end_of_file(); + else + return caml_string_of_jsstring(entry.name)} + function caml_unix_findfirst(path) + {var path_js=caml_jsstring_of_string(path); + path_js = path_js.replace(/(^|[\\\/])\*\.\*$/,""); + path = caml_string_of_jsstring(path_js); + var + dir_handle=caml_unix_opendir(path), + first_entry=caml_unix_readdir(dir_handle); + return [0,first_entry,dir_handle]} + function caml_is_continuation_tag(t){return 0} + var log2_ok=Math.log2 && Math.log2(1.1235582092889474E+307) == 1020; + function jsoo_floor_log2(x) + {if(log2_ok)return Math.floor(Math.log2(x)); + var i=0; + if(x == 0)return - Infinity; + if(x >= 1)while(x >= 2){x /= 2;i++}else while(x < 1){x *= 2;i--} + return i} + function caml_int32_bits_of_float(x) + {var float32a=new Float32Array(1); + float32a[0] = x; + var int32a=new Int32Array(float32a.buffer); + return int32a[0] | 0} + function caml_int64_create_lo_mi_hi(lo,mi,hi) + {return new MlInt64(lo,mi,hi)} + function caml_int64_bits_of_float(x) + {if(! isFinite(x)) + {if(isNaN(x))return caml_int64_create_lo_mi_hi(1,0,0x7ff0); + return x > 0 + ?caml_int64_create_lo_mi_hi(0,0,0x7ff0) + :caml_int64_create_lo_mi_hi(0,0,0xfff0)} + var sign=x == 0 && 1 / x == - Infinity?0x8000:x >= 0?0:0x8000; + if(sign)x = - x; + var exp=jsoo_floor_log2(x) + 1023; + if(exp <= 0) + {exp = 0;x /= Math.pow(2,- 1026)} + else + {x /= Math.pow(2,exp - 1027); + if(x < 16){x *= 2;exp -= 1} + if(exp == 0)x /= 2} + var k=Math.pow(2,24),r3=x | 0; + x = (x - r3) * k; + var r2=x | 0; + x = (x - r2) * k; + var r1=x | 0; + r3 = r3 & 0xf | sign | exp << 4; + return caml_int64_create_lo_mi_hi(r1,r2,r3)} + function caml_ba_serialize(writer,ba,sz) + {writer.write(32,ba.dims.length); + writer.write(32,ba.kind | ba.layout << 8); + if(ba.caml_custom == "_bigarr02") + for(var i=0;i < ba.dims.length;i++) + if(ba.dims[i] < 0xffff) + writer.write(16,ba.dims[i]); + else + {writer.write(16,0xffff); + writer.write(32,0); + writer.write(32,ba.dims[i])} + else + for(var i=0;i < ba.dims.length;i++)writer.write(32,ba.dims[i]); + switch(ba.kind) + {case 2: + case 3: + case 12: + for(var i=0;i < ba.data.length;i++)writer.write(8,ba.data[i]);break; + case 4: + case 5: + for(var i=0;i < ba.data.length;i++)writer.write(16,ba.data[i]);break; + case 6: + for(var i=0;i < ba.data.length;i++)writer.write(32,ba.data[i]);break; + case 8: + case 9: + writer.write(8,0); + for(var i=0;i < ba.data.length;i++)writer.write(32,ba.data[i]); + break; + case 7: + for(var i=0;i < ba.data.length / 2;i++) + {var b=caml_int64_to_bytes(ba.get(i)); + for(var j=0;j < 8;j++)writer.write(8,b[j])} + break; + case 1: + for(var i=0;i < ba.data.length;i++) + {var b=caml_int64_to_bytes(caml_int64_bits_of_float(ba.get(i))); + for(var j=0;j < 8;j++)writer.write(8,b[j])} + break; + case 0: + for(var i=0;i < ba.data.length;i++) + {var b=caml_int32_bits_of_float(ba.get(i));writer.write(32,b)} + break; + case 10: + for(var i=0;i < ba.data.length / 2;i++) + {var j=ba.get(i); + writer.write(32,caml_int32_bits_of_float(j[1])); + writer.write(32,caml_int32_bits_of_float(j[2]))} + break; + case 11: + for(var i=0;i < ba.data.length / 2;i++) + {var + complex=ba.get(i), + b=caml_int64_to_bytes(caml_int64_bits_of_float(complex[1])); + for(var j=0;j < 8;j++)writer.write(8,b[j]); + var b=caml_int64_to_bytes(caml_int64_bits_of_float(complex[2])); + for(var j=0;j < 8;j++)writer.write(8,b[j])} + break + } + sz[0] = (4 + ba.dims.length) * 4; + sz[1] = (4 + ba.dims.length) * 8} + function caml_ba_get_size_per_element(kind) + {switch(kind){case 7:case 10:case 11:return 2;default:return 1}} + function caml_ba_create_buffer(kind,size) + {var view; + switch(kind) + {case 0:view = Float32Array;break; + case 1:view = Float64Array;break; + case 2:view = Int8Array;break; + case 3:view = Uint8Array;break; + case 4:view = Int16Array;break; + case 5:view = Uint16Array;break; + case 6:view = Int32Array;break; + case 7:view = Int32Array;break; + case 8:view = Int32Array;break; + case 9:view = Int32Array;break; + case 10:view = Float32Array;break; + case 11:view = Float64Array;break; + case 12:view = Uint8Array;break + } + if(! view)caml_invalid_argument("Bigarray.create: unsupported kind"); + var data=new view(size * caml_ba_get_size_per_element(kind)); + return data} + function caml_int32_float_of_bits(x) + {var int32a=new Int32Array(1); + int32a[0] = x; + var float32a=new Float32Array(int32a.buffer); + return float32a[0]} + function caml_int64_float_of_bits(x) + {var lo=x.lo,mi=x.mi,hi=x.hi,exp=(hi & 0x7fff) >> 4; + if(exp == 2047) + return (lo | mi | hi & 0xf) == 0?hi & 0x8000?- Infinity:Infinity:NaN; + var k=Math.pow(2,- 24),res=(lo * k + mi) * k + (hi & 0xf); + if(exp > 0) + {res += 16;res *= Math.pow(2,exp - 1027)} + else + res *= Math.pow(2,- 1026); + if(hi & 0x8000)res = - res; + return res} + function caml_ba_get_size(dims) + {var n_dims=dims.length,size=1; + for(var i=0;i < n_dims;i++) + {if(dims[i] < 0) + caml_invalid_argument("Bigarray.create: negative dimension"); + size = size * dims[i]} + return size} + function caml_int64_create_lo_hi(lo,hi) + {return new + MlInt64 + (lo & 0xffffff, + lo >>> 24 & 0xff | (hi & 0xffff) << 8, + hi >>> 16 & 0xffff)} + function caml_int64_hi32(v){return v.hi32()} + function caml_int64_lo32(v){return v.lo32()} + var caml_ba_custom_name="_bigarr02"; + function Ml_Bigarray(kind,layout,dims,buffer) + {this.kind = kind; + this.layout = layout; + this.dims = dims; + this.data = buffer} + Ml_Bigarray.prototype.caml_custom = caml_ba_custom_name; + Ml_Bigarray.prototype.offset + = + function(arg) + {var ofs=0; + if(typeof arg === "number")arg = [arg]; + if(! (arg instanceof Array)) + caml_invalid_argument("bigarray.js: invalid offset"); + if(this.dims.length != arg.length) + caml_invalid_argument("Bigarray.get/set: bad number of dimensions"); + if(this.layout == 0) + for(var i=0;i < this.dims.length;i++) + {if(arg[i] < 0 || arg[i] >= this.dims[i])caml_array_bound_error(); + ofs = ofs * this.dims[i] + arg[i]} + else + for(var i=this.dims.length - 1;i >= 0;i--) + {if(arg[i] < 1 || arg[i] > this.dims[i])caml_array_bound_error(); + ofs = ofs * this.dims[i] + (arg[i] - 1)} + return ofs}; + Ml_Bigarray.prototype.get + = + function(ofs) + {switch(this.kind) + {case 7: + var l=this.data[ofs * 2 + 0],h=this.data[ofs * 2 + 1]; + return caml_int64_create_lo_hi(l,h); + case 10: + case 11: + var r=this.data[ofs * 2 + 0],i=this.data[ofs * 2 + 1]; + return [254,r,i]; + default:return this.data[ofs]}}; + Ml_Bigarray.prototype.set + = + function(ofs,v) + {switch(this.kind) + {case 7: + this.data[ofs * 2 + 0] = caml_int64_lo32(v); + this.data[ofs * 2 + 1] = caml_int64_hi32(v); + break; + case 10: + case 11: + this.data[ofs * 2 + 0] = v[1];this.data[ofs * 2 + 1] = v[2];break; + default:this.data[ofs] = v;break} + return 0}; + Ml_Bigarray.prototype.fill + = + function(v) + {switch(this.kind) + {case 7: + var a=caml_int64_lo32(v),b=caml_int64_hi32(v); + if(a == b) + this.data.fill(a); + else + for(var i=0;i < this.data.length;i++)this.data[i] = i % 2 == 0?a:b; + break; + case 10: + case 11: + var im=v[1],re=v[2]; + if(im == re) + this.data.fill(im); + else + for(var i=0;i < this.data.length;i++) + this.data[i] = i % 2 == 0?im:re; + break; + default:this.data.fill(v);break}}; + Ml_Bigarray.prototype.compare + = + function(b,total) + {if(this.layout != b.layout || this.kind != b.kind) + {var k1=this.kind | this.layout << 8,k2=b.kind | b.layout << 8; + return k2 - k1} + if(this.dims.length != b.dims.length) + return b.dims.length - this.dims.length; + for(var i=0;i < this.dims.length;i++) + if(this.dims[i] != b.dims[i])return this.dims[i] < b.dims[i]?- 1:1; + switch(this.kind) + {case 0: + case 1: + case 10: + case 11: + var x,y; + for(var i=0;i < this.data.length;i++) + {x = this.data[i]; + y = b.data[i]; + if(x < y)return - 1; + if(x > y)return 1; + if(x != y) + {if(! total)return NaN;if(x == x)return 1;if(y == y)return - 1}} + break; + case 7: + for(var i=0;i < this.data.length;i += 2) + {if(this.data[i + 1] < b.data[i + 1])return - 1; + if(this.data[i + 1] > b.data[i + 1])return 1; + if(this.data[i] >>> 0 < b.data[i] >>> 0)return - 1; + if(this.data[i] >>> 0 > b.data[i] >>> 0)return 1} + break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 12: + for(var i=0;i < this.data.length;i++) + {if(this.data[i] < b.data[i])return - 1; + if(this.data[i] > b.data[i])return 1} + break + } + return 0}; + function Ml_Bigarray_c_1_1(kind,layout,dims,buffer) + {this.kind = kind; + this.layout = layout; + this.dims = dims; + this.data = buffer} + Ml_Bigarray_c_1_1.prototype = new Ml_Bigarray(); + Ml_Bigarray_c_1_1.prototype.offset + = + function(arg) + {if(typeof arg !== "number") + if(arg instanceof Array && arg.length == 1) + arg = arg[0]; + else + caml_invalid_argument("Ml_Bigarray_c_1_1.offset"); + if(arg < 0 || arg >= this.dims[0])caml_array_bound_error(); + return arg}; + Ml_Bigarray_c_1_1.prototype.get = function(ofs){return this.data[ofs]}; + Ml_Bigarray_c_1_1.prototype.set + = + function(ofs,v){this.data[ofs] = v;return 0}; + Ml_Bigarray_c_1_1.prototype.fill + = + function(v){this.data.fill(v);return 0}; + function caml_ba_create_unsafe(kind,layout,dims,data) + {var size_per_element=caml_ba_get_size_per_element(kind); + if(caml_ba_get_size(dims) * size_per_element != data.length) + caml_invalid_argument("length doesn't match dims"); + if(layout == 0 && dims.length == 1 && size_per_element == 1) + return new Ml_Bigarray_c_1_1(kind,layout,dims,data); + return new Ml_Bigarray(kind,layout,dims,data)} + function caml_ba_deserialize(reader,sz,name) + {var num_dims=reader.read32s(); + if(num_dims < 0 || num_dims > 16) + caml_failwith("input_value: wrong number of bigarray dimensions"); + var tag=reader.read32s(),kind=tag & 0xff,layout=tag >> 8 & 1,dims=[]; + if(name == "_bigarr02") + for(var i=0;i < num_dims;i++) + {var size_dim=reader.read16u(); + if(size_dim == 0xffff) + {var size_dim_hi=reader.read32u(),size_dim_lo=reader.read32u(); + if(size_dim_hi != 0) + caml_failwith("input_value: bigarray dimension overflow in 32bit"); + size_dim = size_dim_lo} + dims.push(size_dim)} + else + for(var i=0;i < num_dims;i++)dims.push(reader.read32u()); + var + size=caml_ba_get_size(dims), + data=caml_ba_create_buffer(kind,size), + ba=caml_ba_create_unsafe(kind,layout,dims,data); + switch(kind) + {case 2:for(var i=0;i < size;i++)data[i] = reader.read8s();break; + case 3: + case 12:for(var i=0;i < size;i++)data[i] = reader.read8u();break; + case 4:for(var i=0;i < size;i++)data[i] = reader.read16s();break; + case 5:for(var i=0;i < size;i++)data[i] = reader.read16u();break; + case 6:for(var i=0;i < size;i++)data[i] = reader.read32s();break; + case 8: + case 9: + var sixty=reader.read8u(); + if(sixty) + caml_failwith + ("input_value: cannot read bigarray with 64-bit OCaml ints"); + for(var i=0;i < size;i++)data[i] = reader.read32s(); + break; + case 7: + var t=new Array(8); + for(var i=0;i < size;i++) + {for(var j=0;j < 8;j++)t[j] = reader.read8u(); + var int64=caml_int64_of_bytes(t); + ba.set(i,int64)} + break; + case 1: + var t=new Array(8); + for(var i=0;i < size;i++) + {for(var j=0;j < 8;j++)t[j] = reader.read8u(); + var f=caml_int64_float_of_bits(caml_int64_of_bytes(t)); + ba.set(i,f)} + break; + case 0: + for(var i=0;i < size;i++) + {var f=caml_int32_float_of_bits(reader.read32s());ba.set(i,f)} + break; + case 10: + for(var i=0;i < size;i++) + {var + re=caml_int32_float_of_bits(reader.read32s()), + im=caml_int32_float_of_bits(reader.read32s()); + ba.set(i,[254,re,im])} + break; + case 11: + var t=new Array(8); + for(var i=0;i < size;i++) + {for(var j=0;j < 8;j++)t[j] = reader.read8u(); + var re=caml_int64_float_of_bits(caml_int64_of_bytes(t)); + for(var j=0;j < 8;j++)t[j] = reader.read8u(); + var im=caml_int64_float_of_bits(caml_int64_of_bytes(t)); + ba.set(i,[254,re,im])} + break + } + sz[0] = (4 + num_dims) * 4; + return caml_ba_create_unsafe(kind,layout,dims,data)} + function caml_ba_compare(a,b,total){return a.compare(b,total)} + function caml_hash_mix_int64(h,v) + {h = caml_hash_mix_int(h,caml_int64_lo32(v)); + h = caml_hash_mix_int(h,caml_int64_hi32(v)); + return h} + function caml_hash_mix_float(h,v0) + {return caml_hash_mix_int64(h,caml_int64_bits_of_float(v0))} + function caml_ba_hash(ba) + {var num_elts=caml_ba_get_size(ba.dims),h=0; + switch(ba.kind) + {case 2: + case 3: + case 12: + if(num_elts > 256)num_elts = 256; + var w=0,i=0; + for(i = 0;i + 4 <= ba.data.length;i += 4) + {w + = + ba.data[i + 0] + | + ba.data[i + 1] + << + 8 + | + ba.data[i + 2] + << + 16 + | + ba.data[i + 3] + << + 24; + h = caml_hash_mix_int(h,w)} + w = 0; + switch(num_elts & 3) + {case 3:w = ba.data[i + 2] << 16; + case 2:w |= ba.data[i + 1] << 8; + case 1:w |= ba.data[i + 0];h = caml_hash_mix_int(h,w) + } + break; + case 4: + case 5: + if(num_elts > 128)num_elts = 128; + var w=0,i=0; + for(i = 0;i + 2 <= ba.data.length;i += 2) + {w = ba.data[i + 0] | ba.data[i + 1] << 16; + h = caml_hash_mix_int(h,w)} + if((num_elts & 1) != 0)h = caml_hash_mix_int(h,ba.data[i]); + break; + case 6: + if(num_elts > 64)num_elts = 64; + for(var i=0;i < num_elts;i++)h = caml_hash_mix_int(h,ba.data[i]); + break; + case 8: + case 9: + if(num_elts > 64)num_elts = 64; + for(var i=0;i < num_elts;i++)h = caml_hash_mix_int(h,ba.data[i]); + break; + case 7: + if(num_elts > 32)num_elts = 32; + num_elts *= 2; + for(var i=0;i < num_elts;i++)h = caml_hash_mix_int(h,ba.data[i]); + break; + case 10:num_elts *= 2; + case 0: + if(num_elts > 64)num_elts = 64; + for(var i=0;i < num_elts;i++)h = caml_hash_mix_float(h,ba.data[i]); + break; + case 11:num_elts *= 2; + case 1: + if(num_elts > 32)num_elts = 32; + for(var i=0;i < num_elts;i++)h = caml_hash_mix_float(h,ba.data[i]); + break + } + return h} + function caml_int32_unmarshal(reader,size) + {size[0] = 4;return reader.read32s()} + function caml_nativeint_unmarshal(reader,size) + {switch(reader.read8u()) + {case 1:size[0] = 4;return reader.read32s(); + case 2:caml_failwith("input_value: native integer value too large"); + default:caml_failwith("input_value: ill-formed native integer")}} + function caml_int64_unmarshal(reader,size) + {var t=new Array(8); + for(var j=0;j < 8;j++)t[j] = reader.read8u(); + size[0] = 8; + return caml_int64_of_bytes(t)} + function caml_int64_compare(x,y,total){return x.compare(y)} + function caml_int64_hash(v){return v.lo32() ^ v.hi32()} var - size = caml_ba_get_size(dims), - data = caml_ba_create_buffer(kind, size), - ba = caml_ba_create_unsafe(kind, layout, dims, data); - switch(kind){ - case 2: - for(var i = 0; i < size; i++) data[i] = reader.read8s(); break; - case 3: - case 12: - for(var i = 0; i < size; i++) data[i] = reader.read8u(); break; - case 4: - for(var i = 0; i < size; i++) data[i] = reader.read16s(); break; - case 5: - for(var i = 0; i < size; i++) data[i] = reader.read16u(); break; - case 6: - for(var i = 0; i < size; i++) data[i] = reader.read32s(); break; - case 8: - case 9: - var sixty = reader.read8u(); - if(sixty) - caml_failwith - ("input_value: cannot read bigarray with 64-bit OCaml ints"); - for(var i = 0; i < size; i++) data[i] = reader.read32s(); - break; - case 7: - var t = new Array(8); - for(var i = 0; i < size; i++){ - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - var int64 = caml_int64_of_bytes(t); - ba.set(i, int64); - } - break; - case 1: - var t = new Array(8); - for(var i = 0; i < size; i++){ - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - var f = caml_int64_float_of_bits(caml_int64_of_bytes(t)); - ba.set(i, f); - } - break; - case 0: - for(var i = 0; i < size; i++){ - var f = caml_int32_float_of_bits(reader.read32s()); - ba.set(i, f); - } - break; - case 10: - for(var i = 0; i < size; i++){ - var - re = caml_int32_float_of_bits(reader.read32s()), - im = caml_int32_float_of_bits(reader.read32s()); - ba.set(i, [254, re, im]); - } - break; - case 11: - var t = new Array(8); - for(var i = 0; i < size; i++){ - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - var re = caml_int64_float_of_bits(caml_int64_of_bytes(t)); - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - var im = caml_int64_float_of_bits(caml_int64_of_bytes(t)); - ba.set(i, [254, re, im]); - } - break; - } - sz[0] = (4 + num_dims) * 4; - return caml_ba_create_unsafe(kind, layout, dims, data); - } - function caml_ba_compare(a, b, total){return a.compare(b, total);} - function caml_hash_mix_int64(h, v){ - h = caml_hash_mix_int(h, caml_int64_lo32(v)); - h = caml_hash_mix_int(h, caml_int64_hi32(v)); - return h; - } - function caml_hash_mix_float(h, v0){ - return caml_hash_mix_int64(h, caml_int64_bits_of_float(v0)); - } - function caml_ba_hash(ba){ - var num_elts = caml_ba_get_size(ba.dims), h = 0; - switch(ba.kind){ - case 2: - case 3: - case 12: - if(num_elts > 256) num_elts = 256; - var w = 0, i = 0; - for(i = 0; i + 4 <= ba.data.length; i += 4){ - w = - ba.data[i + 0] | ba.data[i + 1] << 8 | ba.data[i + 2] << 16 - | ba.data[i + 3] << 24; - h = caml_hash_mix_int(h, w); - } - w = 0; - switch(num_elts & 3){ - case 3: - w = ba.data[i + 2] << 16; - case 2: - w |= ba.data[i + 1] << 8; - case 1: - w |= ba.data[i + 0]; h = caml_hash_mix_int(h, w); - } - break; - case 4: - case 5: - if(num_elts > 128) num_elts = 128; - var w = 0, i = 0; - for(i = 0; i + 2 <= ba.data.length; i += 2){ - w = ba.data[i + 0] | ba.data[i + 1] << 16; - h = caml_hash_mix_int(h, w); - } - if((num_elts & 1) != 0) h = caml_hash_mix_int(h, ba.data[i]); - break; - case 6: - if(num_elts > 64) num_elts = 64; - for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); - break; - case 8: - case 9: - if(num_elts > 64) num_elts = 64; - for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); - break; - case 7: - if(num_elts > 32) num_elts = 32; - num_elts *= 2; - for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); - break; - case 10: - num_elts *= 2; - case 0: - if(num_elts > 64) num_elts = 64; - for(var i = 0; i < num_elts; i++) - h = caml_hash_mix_float(h, ba.data[i]); - break; - case 11: - num_elts *= 2; - case 1: - if(num_elts > 32) num_elts = 32; - for(var i = 0; i < num_elts; i++) - h = caml_hash_mix_float(h, ba.data[i]); - break; - } - return h; - } - function caml_int32_unmarshal(reader, size){size[0] = 4; return reader.read32s(); - } - function caml_nativeint_unmarshal(reader, size){ - switch(reader.read8u()){ - case 1: - size[0] = 4; return reader.read32s(); - case 2: - caml_failwith("input_value: native integer value too large"); - default: caml_failwith("input_value: ill-formed native integer"); - } - } - function caml_int64_unmarshal(reader, size){ - var t = new Array(8); - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - size[0] = 8; - return caml_int64_of_bytes(t); - } - function caml_int64_compare(x, y, total){return x.compare(y);} - function caml_int64_hash(v){return v.lo32() ^ v.hi32();} - var - caml_custom_ops = + caml_custom_ops= {"_j": - {deserialize: caml_int64_unmarshal, - serialize: caml_int64_marshal, - fixed_length: 8, - compare: caml_int64_compare, - hash: caml_int64_hash}, - "_i": {deserialize: caml_int32_unmarshal, fixed_length: 4}, - "_n": {deserialize: caml_nativeint_unmarshal, fixed_length: 4}, + {deserialize:caml_int64_unmarshal, + serialize:caml_int64_marshal, + fixed_length:8, + compare:caml_int64_compare, + hash:caml_int64_hash}, + "_i":{deserialize:caml_int32_unmarshal,fixed_length:4}, + "_n":{deserialize:caml_nativeint_unmarshal,fixed_length:4}, "_bigarray": {deserialize: - function(reader, sz){ - return caml_ba_deserialize(reader, sz, "_bigarray"); - }, - serialize: caml_ba_serialize, - compare: caml_ba_compare, - hash: caml_ba_hash}, + function(reader,sz){return caml_ba_deserialize(reader,sz,"_bigarray")}, + serialize:caml_ba_serialize, + compare:caml_ba_compare, + hash:caml_ba_hash}, "_bigarr02": {deserialize: - function(reader, sz){ - return caml_ba_deserialize(reader, sz, "_bigarr02"); - }, - serialize: caml_ba_serialize, - compare: caml_ba_compare, - hash: caml_ba_hash}}; - function caml_compare_val_get_custom(a){ - return caml_custom_ops[a.caml_custom] - && caml_custom_ops[a.caml_custom].compare; - } - function caml_compare_val_number_custom(num, custom, swap, total){ - var comp = caml_compare_val_get_custom(custom); - if(comp){ - var x = swap > 0 ? comp(custom, num, total) : comp(num, custom, total); - if(total && x != x) return swap; - if(+ x != + x) return + x; - if((x | 0) != 0) return x | 0; - } - return swap; - } - function caml_compare_val_tag(a){ - if(typeof a === "number") - return 1000; - else if(caml_is_ml_bytes(a)) - return 252; - else if(caml_is_ml_string(a)) - return 1252; - else if(a instanceof Array && a[0] === a[0] >>> 0 && a[0] <= 255){var tag = a[0] | 0; return tag == 254 ? 0 : tag;} - else if(a instanceof String) - return 12520; - else if(typeof a == "string") - return 12520; - else if(a instanceof Number) - return 1000; - else if(a && a.caml_custom) - return 1255; - else if(a && a.compare) - return 1256; - else if(typeof a == "function") - return 1247; - else if(typeof a == "symbol") return 1251; - return 1001; - } - function caml_int_compare(a, b){ - if(a < b) return - 1; - if(a == b) return 0; - return 1; - } - function caml_string_compare(s1, s2){ - return s1 < s2 ? - 1 : s1 > s2 ? 1 : 0; - } - function caml_bytes_compare(s1, s2){ - s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c < s2.c ? - 1 : s1.c > s2.c ? 1 : 0; - } - function caml_compare_val(a, b, total){ - var stack = []; - for(;;){ - if(! (total && a === b)){ - var tag_a = caml_compare_val_tag(a); - if(tag_a == 250){a = a[1]; continue;} - var tag_b = caml_compare_val_tag(b); - if(tag_b == 250){b = b[1]; continue;} - if(tag_a !== tag_b){ - if(tag_a == 1000){ - if(tag_b == 1255) - return caml_compare_val_number_custom(a, b, - 1, total); - return - 1; - } - if(tag_b == 1000){ - if(tag_a == 1255) - return caml_compare_val_number_custom(b, a, 1, total); - return 1; - } - return tag_a < tag_b ? - 1 : 1; - } - switch(tag_a){ - case 247: - caml_invalid_argument("compare: functional value"); break; - case 248: - var x = caml_int_compare(a[2], b[2]); if(x != 0) return x | 0; break; - case 249: - caml_invalid_argument("compare: functional value"); break; - case 250: - caml_invalid_argument("equal: got Forward_tag, should not happen"); - break; - case 251: - caml_invalid_argument("equal: abstract value"); break; - case 252: - if(a !== b){ - var x = caml_bytes_compare(a, b); - if(x != 0) return x | 0; - } - break; - case 253: - caml_invalid_argument("equal: got Double_tag, should not happen"); - break; - case 254: - caml_invalid_argument - ("equal: got Double_array_tag, should not happen"); - break; - case 255: - caml_invalid_argument("equal: got Custom_tag, should not happen"); - break; - case 1247: - caml_invalid_argument("compare: functional value"); break; - case 1255: - var comp = caml_compare_val_get_custom(a); - if(comp != caml_compare_val_get_custom(b)) - return a.caml_custom < b.caml_custom ? - 1 : 1; - if(! comp) caml_invalid_argument("compare: abstract value"); - var x = comp(a, b, total); - if(x != x) return total ? - 1 : x; - if(x !== (x | 0)) return - 1; - if(x != 0) return x | 0; - break; - case 1256: - var x = a.compare(b, total); - if(x != x) return total ? - 1 : x; - if(x !== (x | 0)) return - 1; - if(x != 0) return x | 0; - break; - case 1000: - a = + a; - b = + b; - if(a < b) return - 1; - if(a > b) return 1; - if(a != b){ - if(! total) return NaN; - if(a == a) return 1; - if(b == b) return - 1; - } - break; - case 1001: - if(a < b) return - 1; - if(a > b) return 1; - if(a != b){ - if(! total) return NaN; - if(a == a) return 1; - if(b == b) return - 1; - } - break; - case 1251: - if(a !== b){if(! total) return NaN; return 1;} break; - case 1252: - var a = caml_jsbytes_of_string(a), b = caml_jsbytes_of_string(b); - if(a !== b){if(a < b) return - 1; if(a > b) return 1;} - break; - case 12520: - var a = a.toString(), b = b.toString(); - if(a !== b){if(a < b) return - 1; if(a > b) return 1;} - break; - case 246: - case 254: - default: - if(caml_is_continuation_tag(tag_a)){ - caml_invalid_argument("compare: continuation value"); - break; - } - if(a.length != b.length) return a.length < b.length ? - 1 : 1; - if(a.length > 1) stack.push(a, b, 1); - break; - } - } - if(stack.length == 0) return 0; - var i = stack.pop(); - b = stack.pop(); - a = stack.pop(); - if(i + 1 < a.length) stack.push(a, b, i + 1); - a = a[i]; - b = b[i]; - } - } - function caml_greaterthan(x, y){ - return + (caml_compare_val(x, y, false) > 0); - } - function div_helper(a, b, c){ - var - x = a * 65536 + (b >>> 16), - y = Math.floor(x / c) * 65536, - z = x % c * 65536, - w = z + (b & 0x0000FFFF); - return [y + Math.floor(w / c), w % c]; - } - function div_digit_nat(natq, ofsq, natr, ofsr, nat1, ofs1, len, nat2, ofs2){ - var rem = nat1.data[ofs1 + len - 1] >>> 0; - for(var i = len - 2; i >= 0; i--){ - var - x = div_helper(rem, nat1.data[ofs1 + i] >>> 0, nat2.data[ofs2] >>> 0); - natq.data[ofsq + i] = x[0]; - rem = x[1]; - } - natr.data[ofsr] = rem; - return 0; - } - function num_leading_zero_bits_in_digit(nat, ofs){ - var a = nat.data[ofs], b = 0; - if(a & 0xFFFF0000){b += 16; a >>>= 16;} - if(a & 0xFF00){b += 8; a >>>= 8;} - if(a & 0xF0){b += 4; a >>>= 4;} - if(a & 12){b += 2; a >>>= 2;} - if(a & 2){b += 1; a >>>= 1;} - if(a & 1) b += 1; - return 32 - b; - } - function shift_left_nat(nat1, ofs1, len1, nat2, ofs2, nbits){ - if(nbits == 0){nat2.data[ofs2] = 0; return 0;} - var wrap = 0; - for(var i = 0; i < len1; i++){ - var a = nat1.data[ofs1 + i] >>> 0; - nat1.data[ofs1 + i] = a << nbits | wrap; - wrap = a >>> 32 - nbits; - } - nat2.data[ofs2] = wrap; - return 0; - } - function MlNat(x){ - this.data = new Int32Array(x); - this.length = this.data.length + 2; - } - MlNat.prototype.caml_custom = "_nat"; - function create_nat(size){ - var arr = new MlNat(size); - for(var i = 0; i < size; i++) arr.data[i] = - 1; - return arr; - } - function set_to_zero_nat(nat, ofs, len){ - for(var i = 0; i < len; i++) nat.data[ofs + i] = 0; - return 0; - } - function incr_nat(nat, ofs, len, carry_in){ - var carry = carry_in; - for(var i = 0; i < len; i++){ - var x = (nat.data[ofs + i] >>> 0) + carry; - nat.data[ofs + i] = x | 0; - if(x == x >>> 0){carry = 0; break;} else carry = 1; - } - return carry; - } - function add_nat(nat1, ofs1, len1, nat2, ofs2, len2, carry_in){ - var carry = carry_in; - for(var i = 0; i < len2; i++){ - var - x = (nat1.data[ofs1 + i] >>> 0) + (nat2.data[ofs2 + i] >>> 0) + carry; - nat1.data[ofs1 + i] = x; - if(x == x >>> 0) carry = 0; else carry = 1; - } - return incr_nat(nat1, ofs1 + len2, len1 - len2, carry); - } - function nat_of_array(l){return new MlNat(l);} - function mult_digit_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat3, ofs3){ - var carry = 0, a = nat3.data[ofs3] >>> 0; - for(var i = 0; i < len2; i++){ - var - x1 = - (nat1.data[ofs1 + i] >>> 0) - + (nat2.data[ofs2 + i] >>> 0) * (a & 0x0000FFFF) - + carry, - x2 = (nat2.data[ofs2 + i] >>> 0) * (a >>> 16); - carry = Math.floor(x2 / 65536); - var x3 = x1 + x2 % 65536 * 65536; - nat1.data[ofs1 + i] = x3; - carry += Math.floor(x3 / 4294967296); - } - return len2 < len1 && carry - ? add_nat - (nat1, ofs1 + len2, len1 - len2, nat_of_array([carry]), 0, 1, 0) - : carry; - } - function decr_nat(nat, ofs, len, carry_in){ - var borrow = carry_in == 1 ? 0 : 1; - for(var i = 0; i < len; i++){ - var x = (nat.data[ofs + i] >>> 0) - borrow; - nat.data[ofs + i] = x; - if(x >= 0){borrow = 0; break;} else borrow = 1; - } - return borrow == 1 ? 0 : 1; - } - function sub_nat(nat1, ofs1, len1, nat2, ofs2, len2, carry_in){ - var borrow = carry_in == 1 ? 0 : 1; - for(var i = 0; i < len2; i++){ - var - x = (nat1.data[ofs1 + i] >>> 0) - (nat2.data[ofs2 + i] >>> 0) - borrow; - nat1.data[ofs1 + i] = x; - if(x >= 0) borrow = 0; else borrow = 1; - } - return decr_nat(nat1, ofs1 + len2, len1 - len2, borrow == 1 ? 0 : 1); - } - function compare_nat(nat1, ofs1, len1, nat2, ofs2, len2){ - var - a = num_digits_nat(nat1, ofs1, len1), - b = num_digits_nat(nat2, ofs2, len2); - if(a > b) return 1; - if(a < b) return - 1; - for(var i = len1 - 1; i >= 0; i--){ - if(nat1.data[ofs1 + i] >>> 0 > nat2.data[ofs2 + i] >>> 0) return 1; - if(nat1.data[ofs1 + i] >>> 0 < nat2.data[ofs2 + i] >>> 0) return - 1; - } - return 0; - } - function div_nat(nat1, ofs1, len1, nat2, ofs2, len2){ - if(len2 == 1){ - div_digit_nat(nat1, ofs1 + 1, nat1, ofs1, nat1, ofs1, len1, nat2, ofs2); - return 0; - } - var s = num_leading_zero_bits_in_digit(nat2, ofs2 + len2 - 1); - shift_left_nat(nat2, ofs2, len2, nat_of_array([0]), 0, s); - shift_left_nat(nat1, ofs1, len1, nat_of_array([0]), 0, s); - var d = (nat2.data[ofs2 + len2 - 1] >>> 0) + 1, a = create_nat(len2 + 1); - for(var i = len1 - 1; i >= len2; i--){ - var - quo = - d == 4294967296 - ? nat1.data[ofs1 + i] >>> 0 - : div_helper - (nat1.data[ofs1 + i] >>> 0, nat1.data[ofs1 + i - 1] >>> 0, d) - [0]; - set_to_zero_nat(a, 0, len2 + 1); - mult_digit_nat(a, 0, len2 + 1, nat2, ofs2, len2, nat_of_array([quo]), 0); - sub_nat(nat1, ofs1 + i - len2, len2 + 1, a, 0, len2 + 1, 1); - while - (nat1.data[ofs1 + i] != 0 - || compare_nat(nat1, ofs1 + i - len2, len2, nat2, ofs2, len2) >= 0){ - quo = quo + 1; - sub_nat(nat1, ofs1 + i - len2, len2 + 1, nat2, ofs2, len2, 1); - } - nat1.data[ofs1 + i] = quo; - } - shift_right_nat(nat1, ofs1, len2, nat_of_array([0]), 0, s); - shift_right_nat(nat2, ofs2, len2, nat_of_array([0]), 0, s); - return 0; - } - function caml_ba_blit(src, dst){ - if(dst.dims.length != src.dims.length) - caml_invalid_argument("Bigarray.blit: dimension mismatch"); - for(var i = 0; i < dst.dims.length; i++) - if(dst.dims[i] != src.dims[i]) - caml_invalid_argument("Bigarray.blit: dimension mismatch"); - dst.data.set(src.data); - return 0; - } - function is_digit_int(nat, ofs){if(nat.data[ofs] >= 0) return 1; return 0;} - function caml_int64_div(x, y){return x.div(y);} - function caml_js_html_entities(s){ - var entity = /^&#?[0-9a-zA-Z]+;$/; - if(s.match(entity)){ - var str, temp = document.createElement("p"); - temp.innerHTML = s; - str = temp.textContent || temp.innerText; - temp = null; - return str; - } - else - caml_failwith("Invalid entity " + s); - } - function caml_string_unsafe_set(s, i, c){ - caml_failwith("caml_string_unsafe_set"); - } - function caml_int64_of_float(x){ - if(x < 0) x = Math.ceil(x); - return new - MlInt64 - (x & 0xffffff, - Math.floor(x * caml_int64_offset) & 0xffffff, - Math.floor(x * caml_int64_offset * caml_int64_offset) & 0xffff); - } - function caml_ml_channel_size_64(chanid){ - var chan = caml_ml_channels[chanid]; - return caml_int64_of_float(chan.file.length()); - } - function caml_ba_set_2(ba, i0, i1, v){ - ba.set(ba.offset([i0, i1]), v); - return 0; - } - function ml_z_kronecker(n, k){ - caml_failwith("ml_z_kronecker is not implemented"); - } - function ml_z_of_int64(i64){ - var neg = false; - if(caml_int64_compare(i64, caml_int64_create_lo_hi(0, 0)) < 0){neg = true; i64 = caml_int64_neg(i64);} - var - lo = caml_int64_lo32(i64) >>> 0, - hi = caml_int64_hi32(i64) >>> 0, - x = bigInt(lo).add(bigInt(hi).shiftLeft(32)); - if(neg) x = x.negate(); - return ml_z_normalize(x); - } - var - caml_argv = - function(){ - var process = globalThis.process, main = "a.out", args = []; - if(process && process.argv && process.argv.length > 1){ - var argv = process.argv; - main = argv[1]; - args = argv.slice(2); - } - var p = caml_string_of_jsstring(main), args2 = [0, p]; - for(var i = 0; i < args.length; i++) - args2.push(caml_string_of_jsstring(args[i])); - return args2; - } - (), - caml_executable_name = caml_argv[1]; - function caml_js_eval_string(s){return eval(caml_jsstring_of_string(s));} - function serialize_nat(writer, nat, sz){ - var len = nat.data.length; - writer.write(32, len); - for(var i = 0; i < len; i++) writer.write(32, nat.data[i]); - sz[0] = len * 4; - sz[1] = len * 8; - } - function caml_memprof_set(_control){return 0;} - function ml_z_neg(z1){return ml_z_normalize(bigInt(z1).negate());} - function caml_sys_exit(code){ - if(globalThis.quit) globalThis.quit(code); - if(globalThis.process && globalThis.process.exit) - globalThis.process.exit(code); - caml_invalid_argument("Function 'exit' not implemented"); - } - function caml_channel_descriptor(chanid){ - var chan = caml_ml_channels[chanid]; - return chan.fd; - } - function caml_js_from_array(a){return a.slice(1);} - function caml_ba_reshape(ba, vind){ - vind = caml_js_from_array(vind); - var new_dim = [], num_dims = vind.length; - if(num_dims < 0 || num_dims > 16) - caml_invalid_argument("Bigarray.reshape: bad number of dimensions"); - var num_elts = 1; - for(var i = 0; i < num_dims; i++){ - new_dim[i] = vind[i]; - if(new_dim[i] < 0) - caml_invalid_argument("Bigarray.reshape: negative dimension"); - num_elts = num_elts * new_dim[i]; - } - var size = caml_ba_get_size(ba.dims); - if(num_elts != size) - caml_invalid_argument("Bigarray.reshape: size mismatch"); - return caml_ba_create_unsafe(ba.kind, ba.layout, new_dim, ba.data); - } - var caml_oo_last_id = 0; - function caml_set_oo_id(b){b[2] = caml_oo_last_id++; return b;} - function caml_gr_fill_rect(x, y, w, h){ - var s = caml_gr_state_get(); - s.context.fillRect(x, s.height - y, w, - h); - return 0; - } - function caml_bigstring_blit_string_to_ba(str1, pos1, ba2, pos2, len){ - if(12 != ba2.kind) - caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0) return 0; - var ofs2 = ba2.offset(pos2); - if(pos1 + len > caml_ml_string_length(str1)) caml_array_bound_error(); - if(ofs2 + len > ba2.data.length) caml_array_bound_error(); - var slice = caml_uint8_array_of_string(str1).slice(pos1, pos1 + len); - ba2.data.set(slice, ofs2); - return 0; - } - function caml_gr_set_window_title(name){ - var s = caml_gr_state_get(); - s.title = name; - var jsname = caml_jsstring_of_string(name); - if(s.set_title) s.set_title(jsname); - return 0; - } - function caml_get_global_data(){return caml_global_data;} - function caml_int64_shift_right_unsigned(x, s){return x.shift_right_unsigned(s); - } - function caml_ba_uint8_get16(ba, i0){ - var ofs = ba.offset(i0); - if(ofs + 1 >= ba.data.length) caml_array_bound_error(); - var b1 = ba.get(ofs), b2 = ba.get(ofs + 1); - return b1 | b2 << 8; - } - function ml_z_of_int32(i){return i | 0;} - function caml_compare(a, b){return caml_compare_val(a, b, true);} - var - caml_MD5Transform = - function(){ - function add(x, y){return x + y | 0;} - function xx(q, a, b, x, s, t){ - a = add(add(a, q), add(x, t)); - return add(a << s | a >>> 32 - s, b); - } - function ff(a, b, c, d, x, s, t){ - return xx(b & c | ~ b & d, a, b, x, s, t); - } - function gg(a, b, c, d, x, s, t){ - return xx(b & d | c & ~ d, a, b, x, s, t); - } - function hh(a, b, c, d, x, s, t){return xx(b ^ c ^ d, a, b, x, s, t);} - function ii(a, b, c, d, x, s, t){ - return xx(c ^ (b | ~ d), a, b, x, s, t); - } - return function(w, buffer){ - var a = w[0], b = w[1], c = w[2], d = w[3]; - a = ff(a, b, c, d, buffer[0], 7, 0xD76AA478); - d = ff(d, a, b, c, buffer[1], 12, 0xE8C7B756); - c = ff(c, d, a, b, buffer[2], 17, 0x242070DB); - b = ff(b, c, d, a, buffer[3], 22, 0xC1BDCEEE); - a = ff(a, b, c, d, buffer[4], 7, 0xF57C0FAF); - d = ff(d, a, b, c, buffer[5], 12, 0x4787C62A); - c = ff(c, d, a, b, buffer[6], 17, 0xA8304613); - b = ff(b, c, d, a, buffer[7], 22, 0xFD469501); - a = ff(a, b, c, d, buffer[8], 7, 0x698098D8); - d = ff(d, a, b, c, buffer[9], 12, 0x8B44F7AF); - c = ff(c, d, a, b, buffer[10], 17, 0xFFFF5BB1); - b = ff(b, c, d, a, buffer[11], 22, 0x895CD7BE); - a = ff(a, b, c, d, buffer[12], 7, 0x6B901122); - d = ff(d, a, b, c, buffer[13], 12, 0xFD987193); - c = ff(c, d, a, b, buffer[14], 17, 0xA679438E); - b = ff(b, c, d, a, buffer[15], 22, 0x49B40821); - a = gg(a, b, c, d, buffer[1], 5, 0xF61E2562); - d = gg(d, a, b, c, buffer[6], 9, 0xC040B340); - c = gg(c, d, a, b, buffer[11], 14, 0x265E5A51); - b = gg(b, c, d, a, buffer[0], 20, 0xE9B6C7AA); - a = gg(a, b, c, d, buffer[5], 5, 0xD62F105D); - d = gg(d, a, b, c, buffer[10], 9, 0x02441453); - c = gg(c, d, a, b, buffer[15], 14, 0xD8A1E681); - b = gg(b, c, d, a, buffer[4], 20, 0xE7D3FBC8); - a = gg(a, b, c, d, buffer[9], 5, 0x21E1CDE6); - d = gg(d, a, b, c, buffer[14], 9, 0xC33707D6); - c = gg(c, d, a, b, buffer[3], 14, 0xF4D50D87); - b = gg(b, c, d, a, buffer[8], 20, 0x455A14ED); - a = gg(a, b, c, d, buffer[13], 5, 0xA9E3E905); - d = gg(d, a, b, c, buffer[2], 9, 0xFCEFA3F8); - c = gg(c, d, a, b, buffer[7], 14, 0x676F02D9); - b = gg(b, c, d, a, buffer[12], 20, 0x8D2A4C8A); - a = hh(a, b, c, d, buffer[5], 4, 0xFFFA3942); - d = hh(d, a, b, c, buffer[8], 11, 0x8771F681); - c = hh(c, d, a, b, buffer[11], 16, 0x6D9D6122); - b = hh(b, c, d, a, buffer[14], 23, 0xFDE5380C); - a = hh(a, b, c, d, buffer[1], 4, 0xA4BEEA44); - d = hh(d, a, b, c, buffer[4], 11, 0x4BDECFA9); - c = hh(c, d, a, b, buffer[7], 16, 0xF6BB4B60); - b = hh(b, c, d, a, buffer[10], 23, 0xBEBFBC70); - a = hh(a, b, c, d, buffer[13], 4, 0x289B7EC6); - d = hh(d, a, b, c, buffer[0], 11, 0xEAA127FA); - c = hh(c, d, a, b, buffer[3], 16, 0xD4EF3085); - b = hh(b, c, d, a, buffer[6], 23, 0x04881D05); - a = hh(a, b, c, d, buffer[9], 4, 0xD9D4D039); - d = hh(d, a, b, c, buffer[12], 11, 0xE6DB99E5); - c = hh(c, d, a, b, buffer[15], 16, 0x1FA27CF8); - b = hh(b, c, d, a, buffer[2], 23, 0xC4AC5665); - a = ii(a, b, c, d, buffer[0], 6, 0xF4292244); - d = ii(d, a, b, c, buffer[7], 10, 0x432AFF97); - c = ii(c, d, a, b, buffer[14], 15, 0xAB9423A7); - b = ii(b, c, d, a, buffer[5], 21, 0xFC93A039); - a = ii(a, b, c, d, buffer[12], 6, 0x655B59C3); - d = ii(d, a, b, c, buffer[3], 10, 0x8F0CCC92); - c = ii(c, d, a, b, buffer[10], 15, 0xFFEFF47D); - b = ii(b, c, d, a, buffer[1], 21, 0x85845DD1); - a = ii(a, b, c, d, buffer[8], 6, 0x6FA87E4F); - d = ii(d, a, b, c, buffer[15], 10, 0xFE2CE6E0); - c = ii(c, d, a, b, buffer[6], 15, 0xA3014314); - b = ii(b, c, d, a, buffer[13], 21, 0x4E0811A1); - a = ii(a, b, c, d, buffer[4], 6, 0xF7537E82); - d = ii(d, a, b, c, buffer[11], 10, 0xBD3AF235); - c = ii(c, d, a, b, buffer[2], 15, 0x2AD7D2BB); - b = ii(b, c, d, a, buffer[9], 21, 0xEB86D391); - w[0] = add(a, w[0]); - w[1] = add(b, w[1]); - w[2] = add(c, w[2]); - w[3] = add(d, w[3]);}; - } - (); - function caml_MD5Update(ctx, input, input_len){ - var in_buf = ctx.len & 0x3f, input_pos = 0; - ctx.len += input_len; - if(in_buf){ - var missing = 64 - in_buf; - if(input_len < missing){ - ctx.b8.set(input.subarray(0, input_len), in_buf); - return; - } - ctx.b8.set(input.subarray(0, missing), in_buf); - caml_MD5Transform(ctx.w, ctx.b32); - input_len -= missing; - input_pos += missing; - } - while(input_len >= 64){ - ctx.b8.set(input.subarray(input_pos, input_pos + 64), 0); - caml_MD5Transform(ctx.w, ctx.b32); - input_len -= 64; - input_pos += 64; - } - if(input_len) - ctx.b8.set(input.subarray(input_pos, input_pos + input_len), 0); - } - function caml_runtime_events_read_poll(cursor, callbacks, num){return 0;} - function caml_fresh_oo_id(){return caml_oo_last_id++;} - function caml_int64_to_float(x){return x.toFloat();} - function caml_ba_get_1(ba, i0){return ba.get(ba.offset(i0));} - function caml_bigstring_memcmp(s1, pos1, s2, pos2, len){ - for(var i = 0; i < len; i++){ - var a = caml_ba_get_1(s1, pos1 + i), b = caml_ba_get_1(s2, pos2 + i); - if(a < b) return - 1; - if(a > b) return 1; - } - return 0; - } - function caml_new_string(s){return caml_string_of_jsbytes(s);} - function caml_erf_float(x){ - var - a1 = 0.254829592, - a2 = - 0.284496736, - a3 = 1.421413741, - a4 = - 1.453152027, - a5 = 1.061405429, - p = 0.3275911, - sign = 1; - if(x < 0) sign = - 1; - x = Math.abs(x); - var - t = 1.0 / (1.0 + p * x), - y = - 1.0 - - - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t - * Math.exp(- (x * x)); - return sign * y; - } - function caml_ba_uint8_get32(ba, i0){ - var ofs = ba.offset(i0); - if(ofs + 3 >= ba.data.length) caml_array_bound_error(); - var - b1 = ba.get(ofs + 0), - b2 = ba.get(ofs + 1), - b3 = ba.get(ofs + 2), - b4 = ba.get(ofs + 3); - return b1 << 0 | b2 << 8 | b3 << 16 | b4 << 24; - } - function caml_raw_backtrace_length(){return 0;} - function ml_z_shift_right(z1, amt){ - return ml_z_normalize(bigInt(z1).shiftRight(amt)); - } - function caml_str_initialize(unit){return 0;} - function caml_obj_block(tag, size){ - var o = new Array(size + 1); - o[0] = tag; - for(var i = 1; i <= size; i++) o[i] = 0; - return o; - } - function caml_gr_clear_graph(){ - var s = caml_gr_state_get(); - s.canvas.width = s.width; - s.canvas.height = s.height; - return 0; - } - function bigstring_to_array_buffer(bs){return bs.data.buffer;} - function caml_sys_const_naked_pointers_checked(_unit){return 0;} - function lxor_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] ^= nat2.data[ofs2]; return 0; - } - function caml_obj_add_offset(v, offset){ - caml_failwith("Obj.add_offset is not supported"); - } - function caml_final_release(){return 0;} - var caml_marshal_header_size = 20; - function caml_js_to_array(a){ - var len = a.length, b = new Array(len + 1); - b[0] = 0; - for(var i = 0; i < len; i++) b[i + 1] = a[i]; - return b; - } - function ml_z_logor(z1, z2){ - return ml_z_normalize(bigInt(z1).or(bigInt(z2))); - } - function caml_sys_is_regular_file(name){ - var root = resolve_fs_device(name); - return root.device.isFile(root.rest); - } - function caml_gr_plot(x, y){ - var - s = caml_gr_state_get(), - im = s.context.createImageData(1, 1), - d = im.data, - color = s.color; - d[0] = color >> 16 & 0xff; - d[1] = color >> 8 & 0xff, d[2] = color >> 0 & 0xff; - d[3] = 0xFF; - s.x = x; - s.y = y; - s.context.putImageData(im, x, s.height - y); - return 0; - } - function caml_bytes_set64(s, i, i64){ - if(i >>> 0 >= s.l - 7) caml_bytes_bound_error(); - var a = caml_int64_to_bytes(i64); - for(var j = 0; j < 8; j++) caml_bytes_unsafe_set(s, i + 7 - j, a[j]); - return 0; - } - function caml_string_set16(s, i, i16){caml_failwith("caml_string_set16");} - function caml_int64_bswap(x){ - var y = caml_int64_to_bytes(x); - return caml_int64_of_bytes - ([y[7], y[6], y[5], y[4], y[3], y[2], y[1], y[0]]); - } - function ml_z_fits_int(z1){return z1 == (z1 | 0) ? 1 : 0;} - function ml_z_fits_int32(z1){return ml_z_fits_int(z1);} - function caml_gc_major(unit){ - if(typeof globalThis.gc == "function") globalThis.gc(); - return 0; - } - function ml_z_shift_left(z1, amt){ - return ml_z_normalize(bigInt(z1).shiftLeft(amt)); - } - function caml_lex_array(s){ - s = caml_jsbytes_of_string(s); - var l = s.length / 2, a = new Array(l); - for(var i = 0; i < l; i++) - a[i] = (s.charCodeAt(2 * i) | s.charCodeAt(2 * i + 1) << 8) << 16 >> 16; - return a; - } - function caml_lex_engine(tbl, start_state, lexbuf){ - var - lex_buffer = 2, - lex_buffer_len = 3, - lex_start_pos = 5, - lex_curr_pos = 6, - lex_last_pos = 7, - lex_last_action = 8, - lex_eof_reached = 9, - lex_base = 1, - lex_backtrk = 2, - lex_default = 3, - lex_trans = 4, - lex_check = 5; - if(! tbl.lex_default){ - tbl.lex_base = caml_lex_array(tbl[lex_base]); - tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); - tbl.lex_check = caml_lex_array(tbl[lex_check]); - tbl.lex_trans = caml_lex_array(tbl[lex_trans]); - tbl.lex_default = caml_lex_array(tbl[lex_default]); - } - var - c, - state = start_state, - buffer = caml_uint8_array_of_bytes(lexbuf[lex_buffer]); - if(state >= 0){ - lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = - 1; - } - else - state = - state - 1; - for(;;){ - var base = tbl.lex_base[state]; - if(base < 0) return - base - 1; - var backtrk = tbl.lex_backtrk[state]; - if(backtrk >= 0){ - lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = backtrk; - } - if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) - if(lexbuf[lex_eof_reached] == 0) return - state - 1; else c = 256; - else{c = buffer[lexbuf[lex_curr_pos]]; lexbuf[lex_curr_pos]++;} - if(tbl.lex_check[base + c] == state) - state = tbl.lex_trans[base + c]; - else - state = tbl.lex_default[state]; - if(state < 0){ - lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; - if(lexbuf[lex_last_action] == - 1) - caml_failwith("lexing: empty token"); + function(reader,sz){return caml_ba_deserialize(reader,sz,"_bigarr02")}, + serialize:caml_ba_serialize, + compare:caml_ba_compare, + hash:caml_ba_hash}}; + function caml_compare_val_get_custom(a) + {return caml_custom_ops[a.caml_custom] + && + caml_custom_ops[a.caml_custom].compare} + function caml_compare_val_number_custom(num,custom,swap,total) + {var comp=caml_compare_val_get_custom(custom); + if(comp) + {var x=swap > 0?comp(custom,num,total):comp(num,custom,total); + if(total && x != x)return swap; + if(+ x != + x)return + x; + if((x | 0) != 0)return x | 0} + return swap} + function caml_compare_val_tag(a) + {if(typeof a === "number") + return 1000; else - return lexbuf[lex_last_action]; - } - else if(c == 256) lexbuf[lex_eof_reached] = 0; - } - } - function caml_sys_file_exists(name){ - var root = resolve_fs_device(name); - return root.device.exists(root.rest); - } - function caml_convert_raw_backtrace_slot(){ - caml_failwith("caml_convert_raw_backtrace_slot"); - } - function caml_array_sub(a, i, len){ - var a2 = new Array(len + 1); - a2[0] = 0; - for(var i2 = 1, i1 = i + 1; i2 <= len; i2++, i1++) a2[i2] = a[i1]; - return a2; - } - function caml_bytes_equal(s1, s2){ - if(s1 === s2) return 1; - s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c == s2.c ? 1 : 0; - } - function caml_gr_size_x(){var s = caml_gr_state_get(); return s.width;} - function caml_ml_debug_info_status(){return 0;} - function caml_atomic_fetch_add(ref, i){ - var old = ref[1]; - ref[1] += i; - return old; - } - var - os_type = - globalThis.process && globalThis.process.platform - && globalThis.process.platform == "win32" - ? "Cygwin" - : "Unix"; - function caml_sys_const_ostype_cygwin(){return os_type == "Cygwin" ? 1 : 0; - } - function caml_cosh_float(x){return Math.cosh(x);} - function MlMutex(){this.locked = false;} - function caml_ml_mutex_new(unit){return new MlMutex();} - var caml_ephe_key_offset = 3; - function caml_ephe_check_key(x, i){ - var weak = x[caml_ephe_key_offset + i]; - if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) - weak = weak.deref(); - return weak === undefined ? 0 : 1; - } - function caml_hash_mix_final(h){ - h ^= h >>> 16; - h = caml_mul(h, 0x85ebca6b | 0); - h ^= h >>> 13; - h = caml_mul(h, 0xc2b2ae35 | 0); - h ^= h >>> 16; - return h; - } - function caml_gr_text_size(txt){ - var - s = caml_gr_state_get(), - w = s.context.measureText(caml_jsstring_of_string(txt)).width; - return [0, w, s.text_size]; - } - function caml_lex_run_mem(s, i, mem, curr_pos){ - for(;;){ - var dst = s.charCodeAt(i); - i++; - if(dst == 0xff) return; - var src = s.charCodeAt(i); - i++; - if(src == 0xff) - mem[dst + 1] = curr_pos; - else - mem[dst + 1] = mem[src + 1]; - } - } - function caml_lex_run_tag(s, i, mem){ - for(;;){ - var dst = s.charCodeAt(i); - i++; - if(dst == 0xff) return; - var src = s.charCodeAt(i); - i++; - if(src == 0xff) mem[dst + 1] = - 1; else mem[dst + 1] = mem[src + 1]; - } - } - function caml_new_lex_engine(tbl, start_state, lexbuf){ - var - lex_buffer = 2, - lex_buffer_len = 3, - lex_start_pos = 5, - lex_curr_pos = 6, - lex_last_pos = 7, - lex_last_action = 8, - lex_eof_reached = 9, - lex_mem = 10, - lex_base = 1, - lex_backtrk = 2, - lex_default = 3, - lex_trans = 4, - lex_check = 5, - lex_base_code = 6, - lex_backtrk_code = 7, - lex_default_code = 8, - lex_trans_code = 9, - lex_check_code = 10, - lex_code = 11; - if(! tbl.lex_default){ - tbl.lex_base = caml_lex_array(tbl[lex_base]); - tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); - tbl.lex_check = caml_lex_array(tbl[lex_check]); - tbl.lex_trans = caml_lex_array(tbl[lex_trans]); - tbl.lex_default = caml_lex_array(tbl[lex_default]); - } - if(! tbl.lex_default_code){ - tbl.lex_base_code = caml_lex_array(tbl[lex_base_code]); - tbl.lex_backtrk_code = caml_lex_array(tbl[lex_backtrk_code]); - tbl.lex_check_code = caml_lex_array(tbl[lex_check_code]); - tbl.lex_trans_code = caml_lex_array(tbl[lex_trans_code]); - tbl.lex_default_code = caml_lex_array(tbl[lex_default_code]); - } - if(tbl.lex_code == null) - tbl.lex_code = caml_jsbytes_of_string(tbl[lex_code]); - var - c, - state = start_state, - buffer = caml_uint8_array_of_bytes(lexbuf[lex_buffer]); - if(state >= 0){ - lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = - 1; - } - else - state = - state - 1; - for(;;){ - var base = tbl.lex_base[state]; - if(base < 0){ - var pc_off = tbl.lex_base_code[state]; - caml_lex_run_tag(tbl.lex_code, pc_off, lexbuf[lex_mem]); - return - base - 1; - } - var backtrk = tbl.lex_backtrk[state]; - if(backtrk >= 0){ - var pc_off = tbl.lex_backtrk_code[state]; - caml_lex_run_tag(tbl.lex_code, pc_off, lexbuf[lex_mem]); - lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = backtrk; - } - if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) - if(lexbuf[lex_eof_reached] == 0) return - state - 1; else c = 256; - else{c = buffer[lexbuf[lex_curr_pos]]; lexbuf[lex_curr_pos]++;} - var pstate = state; - if(tbl.lex_check[base + c] == state) - state = tbl.lex_trans[base + c]; - else - state = tbl.lex_default[state]; - if(state < 0){ - lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; - if(lexbuf[lex_last_action] == - 1) - caml_failwith("lexing: empty token"); - else - return lexbuf[lex_last_action]; - } - else{ - var base_code = tbl.lex_base_code[pstate], pc_off; - if(tbl.lex_check_code[base_code + c] == pstate) - pc_off = tbl.lex_trans_code[base_code + c]; - else - pc_off = tbl.lex_default_code[pstate]; - if(pc_off > 0) - caml_lex_run_mem - (tbl.lex_code, pc_off, lexbuf[lex_mem], lexbuf[lex_curr_pos]); - if(c == 256) lexbuf[lex_eof_reached] = 0; - } - } - } - function caml_ba_uint8_set64(ba, i0, v){ - var ofs = ba.offset(i0); - if(ofs + 7 >= ba.data.length) caml_array_bound_error(); - var v = caml_int64_to_bytes(v); - for(var i = 0; i < 8; i++) ba.set(ofs + i, v[7 - i]); - return 0; - } - function ml_z_popcount(z){ - z = bigInt(z); - var zero = bigInt(0), one = bigInt(1); - if(z.lt(zero)) caml_raise_constant(caml_named_value("ml_z_overflow")); - var i; - for(i = 0; ! z.equals(zero); i++) z = z.and(z.prev()); - if(i != (i | 0)) caml_raise_constant(caml_named_value("ml_z_overflow")); - return i | 0; - } - function caml_sys_executable_name(a){return caml_executable_name;} - function caml_lessequal(x, y){ - return + (caml_compare_val(x, y, false) <= 0); - } - function caml_acosh_float(x){return Math.acosh(x);} - function caml_MD5Init(){ - var - buffer = new ArrayBuffer(64), - b32 = new Uint32Array(buffer), - b8 = new Uint8Array(buffer); - return {len: 0, - w: - new Uint32Array([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476]), - b32: b32, - b8: b8}; - } - function caml_ml_flush(chanid){ - var chan = caml_ml_channels[chanid]; - if(! chan.opened) caml_raise_sys_error("Cannot flush a closed channel"); - if(! chan.buffer || chan.buffer_curr == 0) return 0; - if(chan.output) - chan.output(caml_subarray_to_jsbytes(chan.buffer, 0, chan.buffer_curr)); - else - chan.file.write(chan.offset, chan.buffer, 0, chan.buffer_curr); - chan.offset += chan.buffer_curr; - chan.buffer_curr = 0; - return 0; - } - function caml_seek_out(chanid, pos){ - caml_ml_flush(chanid); - var chan = caml_ml_channels[chanid]; - chan.offset = pos; - return 0; - } - function caml_ml_seek_out_64(chanid, pos){ - var pos = caml_int64_to_float(pos); - return caml_seek_out(chanid, pos); - } - function compare_nat_real(nat1, nat2){ - return compare_nat(nat1, 0, nat1.data.length, nat2, 0, nat2.data.length); - } - function caml_gc_set(_control){return 0;} - function caml_js_get(o, f){return o[f];} - function caml_unix_isatty(fileDescriptor){ - if(fs_node_supported()){ - var tty = require("tty"); - return tty.isatty(fileDescriptor) ? 1 : 0; - } - else - return 0; - } - function caml_ml_set_buffered(chanid, v){ - caml_ml_channels[chanid].buffered = v; - if(! v) caml_ml_flush(chanid); - return 0; - } - function caml_gc_compaction(){return 0;} - function caml_ephe_get_key(x, i){ - if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.get_key"); - var weak = x[caml_ephe_key_offset + i]; - if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) - weak = weak.deref(); - return weak === undefined ? 0 : [0, weak]; - } - function caml_unix_localtime(t){ - var - d = new Date(t * 1000), - d_num = d.getTime(), - januaryfirst = new Date(d.getFullYear(), 0, 1).getTime(), - doy = Math.floor((d_num - januaryfirst) / 86400000), - jan = new Date(d.getFullYear(), 0, 1), - jul = new Date(d.getFullYear(), 6, 1), - stdTimezoneOffset = - Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); - return [0, - d.getSeconds(), - d.getMinutes(), - d.getHours(), - d.getDate(), - d.getMonth(), - d.getFullYear() - 1900, - d.getDay(), - doy, - d.getTimezoneOffset() < stdTimezoneOffset | 0]; - } - function caml_unix_mktime(tm){ - var - d = new Date(tm[6] + 1900, tm[5], tm[4], tm[3], tm[2], tm[1]).getTime(), - t = Math.floor(d / 1000), - tm2 = caml_unix_localtime(t); - return [0, t, tm2]; - } - function jsoo_z_of_js_string_base(base, s){ - if(base == 0){ - base = 10; - var p = 0, sign = 1; - if(s[p] == "-"){sign = - 1; p++;} else if(s[p] == "+") p++; - if(s[p] == "0"){ - p++; - if(s.length == p) - return 0; - else{ - var bc = s[p]; - if(bc == "o" || bc == "O") - base = 8; - else if(bc == "x" || bc == "X") - base = 16; - else if(bc == "b" || bc == "B") base = 2; - if(base != 10){s = s.substring(p + 1); if(sign == - 1) s = "-" + s;} - } - } - } - function digit(code){ - if(code >= 48 && code <= 57) return code - 48; - if(code >= 97 && code <= 102) return code - 97 + 10; - if(code >= 65 && code <= 70) return code - 65 + 10; - } - var i = 0; - if(s[i] == "+") s = s.substring(1); else if(s[i] == "-") i++; - if(s[i] == "_") - caml_invalid_argument("Z.of_substring_base: invalid digit"); - s = s.replace(/_/g, ""); - if(s == "-" || s == "") s = "0"; - for(; i < s.length; i++){ - var c = digit(s.charCodeAt(i)); - if(c == undefined || c >= base) - caml_invalid_argument("Z.of_substring_base: invalid digit"); - } - return ml_z_normalize(bigInt(s, base)); - } - function ml_z_of_substring_base(base, s, pos, len){ - s = caml_jsbytes_of_string(s); - if(pos != 0 || len != s.length){ - if(s.length - pos < len) - caml_invalid_argument("Z.of_substring_base: invalid offset or length"); - s = s.slice(pos, pos + len); - } - return jsoo_z_of_js_string_base(base, s); - } - function caml_bigstring_blit_bytes_to_ba(str1, pos1, ba2, pos2, len){ - if(12 != ba2.kind) - caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0) return 0; - var ofs2 = ba2.offset(pos2); - if(pos1 + len > caml_ml_bytes_length(str1)) caml_array_bound_error(); - if(ofs2 + len > ba2.data.length) caml_array_bound_error(); - var slice = caml_uint8_array_of_bytes(str1).slice(pos1, pos1 + len); - ba2.data.set(slice, ofs2); - return 0; - } - var caml_sys_fds = new Array(3); - function caml_sys_close(fd){ - var file = caml_sys_fds[fd]; - if(file) file.close(); - delete caml_sys_fds[fd]; - return 0; - } - function caml_ml_close_channel(chanid){ - var chan = caml_ml_channels[chanid]; - chan.opened = false; - caml_sys_close(chan.fd); - return 0; - } - function caml_atomic_exchange(ref, v){ - var r = ref[1]; - ref[1] = v; - return r; - } - function caml_sys_isatty(_chan){return 0;} - function is_digit_zero(nat, ofs){ - if(nat.data[ofs] == 0) return 1; - return 0; - } - function caml_unix_lstat(name){ - var root = resolve_fs_device(name); - if(! root.device.lstat) caml_failwith("caml_unix_lstat: not implemented"); - return root.device.lstat(root.rest, true); - } - function caml_unix_lstat_64(name){ - var r = caml_unix_lstat(name); - r[9] = caml_int64_of_int32(r[9]); - } - function caml_js_set(o, f, v){o[f] = v; return 0;} - function ml_z_gcdext_intern(z1, z2){ - z1 = bigInt(z1); - z2 = bigInt(z2); - var - gcd = bigInt.gcd(z1, z2), - a = z1, - b = z2, - x = bigInt(0), - lastx = bigInt(1), - y = bigInt(1), - lasty = bigInt(1), - q, - t, - r; - if(z1.equals(bigInt(0))) caml_raise_zero_divide(); - while(! b.equals(bigInt(0))){ - q = a.divide(b); - r = a.subtract(q.multiply(b)); - t = x; - x = lastx.subtract(q.multiply(x)); - lastx = t; - t = y; - y = lasty.subtract(q.multiply(y)); - lasty = t; - a = b; - b = r; - } - return a.lt(bigInt(0)) - ? [0, - ml_z_normalize(a.negate()), - ml_z_normalize(lastx.negate()), - 1] - : [0, ml_z_normalize(a), ml_z_normalize(lastx), 1]; - } - function ml_z_testbit(z, pos){ - z = bigInt(z); - return z.shiftRight(pos).and(bigInt(1)).toJSNumber() | 0; - } - function caml_array_get(array, index){ - if(index < 0 || index >= array.length - 1) caml_array_bound_error(); - return array[index + 1]; - } - function caml_continuation_use_noexc(cont){ - var stack = cont[1]; - cont[1] = 0; - return stack; - } - function caml_unix_rmdir(name){ - var root = resolve_fs_device(name); - if(! root.device.rmdir) caml_failwith("caml_unix_rmdir: not implemented"); - return root.device.rmdir(root.rest, true); - } - function caml_log2_float(x){return Math.log2(x);} - function caml_gc_huge_fallback_count(unit){return 0;} - function caml_runtime_events_resume(){return 0;} - function ml_z_congruent(a, b, c){ - var zero = bigInt(0); - a = bigInt(a); - b = bigInt(b); - c = bigInt(c); - if(c.equals(zero) && a.equals(b)) return 1; - return a.minus(b).isDivisibleBy(c) ? 1 : 0; - } - function caml_spacetime_only_works_for_native_code(){ - caml_failwith("Spacetime profiling only works for native code"); - } - function caml_int64_sub(x, y){return x.sub(y);} - function caml_seek_in(chanid, pos){ - var chan = caml_ml_channels[chanid]; - if(chan.refill != null) caml_raise_sys_error("Illegal seek"); - if - (pos >= chan.offset - chan.buffer_max && pos <= chan.offset - && chan.file.flags.binary) - chan.buffer_curr = chan.buffer_max - (chan.offset - pos); - else{chan.offset = pos; chan.buffer_curr = 0; chan.buffer_max = 0;} - return 0; - } - function caml_ml_seek_in_64(chanid, pos){ - var pos = caml_int64_to_float(pos); - return caml_seek_in(chanid, pos); - } - var caml_domain_id = 0; - function caml_ml_mutex_unlock(t){t.locked = false; return 0;} - var caml_domain_latest_idx = 1; - function caml_domain_spawn(f, mutex){ - var id = caml_domain_latest_idx++, old = caml_domain_id; - caml_domain_id = id; - caml_callback(f, [0]); - caml_domain_id = old; - caml_ml_mutex_unlock(mutex); - return id; - } - function caml_unix_mkdir(name, perm){ - var root = resolve_fs_device(name); - if(! root.device.mkdir) caml_failwith("caml_unix_mkdir: not implemented"); - return root.device.mkdir(root.rest, perm, true); - } - function caml_int64_shift_left(x, s){return x.shift_left(s);} - function caml_notequal(x, y){ - return + (caml_compare_val(x, y, false) != 0); - } - function ml_z_abs(z1){return ml_z_normalize(bigInt(z1).abs());} - function caml_sys_const_int_size(){return 32;} - function caml_js_wrap_callback(f){ - return function(){ - var len = arguments.length; - if(len > 0){ - var args = new Array(len); - for(var i = 0; i < len; i++) args[i] = arguments[i]; - } - else - args = [undefined]; - var res = caml_callback(f, args); - return res instanceof Function ? caml_js_wrap_callback(res) : res;}; - } - function caml_js_wrap_meth_callback(f){ - return function(){ - var len = arguments.length, args = new Array(len + 1); - args[0] = this; - for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; - var res = caml_callback(f, args); - return res instanceof Function ? caml_js_wrap_callback(res) : res;}; - } - function caml_is_js(){return 1;} - function caml_lazy_update_to_forward(o){ - caml_obj_update_tag(o, 244, 250); - return 0; - } - function caml_ba_dim(ba, i){ - if(i < 0 || i >= ba.dims.length) caml_invalid_argument("Bigarray.dim"); - return ba.dims[i]; - } - function caml_ba_dim_1(ba){return caml_ba_dim(ba, 0);} - function ml_z_sqrt(z1){ - var z = bigInt(z1), zero = bigInt(0); - if(z.lt(zero)) - caml_invalid_argument("Z.sqrt: square root of a negative number"); - return ml_z_root(z, 2); - } - function caml_js_meth_call(o, f, args){ - return o[caml_jsstring_of_string(f)].apply(o, caml_js_from_array(args)); - } - function ml_z_lucnum(i){ - if(i < 0) caml_invalid_argument("Z.lucnum: negative arguments"); - if(i == 0) return 2; - if(i == 1) return 1; - var a = bigInt(2), b = bigInt(1); - for(var k = 1; k < i; k++){var b2 = b; b = a.add(b); a = b2;} - return ml_z_normalize(b); - } - var caml_ephe_data_offset = 2; - function caml_weak_create(n){ - if(n < 0) caml_invalid_argument("Weak.create"); - var x = [251, "caml_ephe_list_head"]; - x.length = caml_ephe_key_offset + n; - return x; - } - function caml_ephe_create(n){var x = caml_weak_create(n); return x;} - function caml_js_to_byte_string(s){return caml_string_of_jsbytes(s);} - function ml_z_probab_prime(z, i){ - return bigInt(z).isProbablePrime(i) ? 1 : 0; - } - function caml_trampoline(res){ - var c = 1; - while(res && res.joo_tramp){ - res = res.joo_tramp.apply(null, res.joo_args); - c++; - } - return res; - } - function caml_maybe_print_stats(unit){return 0;} - function caml_bytes_unsafe_get(s, i){ - switch(s.t & 6){ - default: if(i >= s.c.length) return 0; - case 0: - return s.c.charCodeAt(i); - case 4: - return s.c[i]; - } - } - function caml_bytes_get64(s, i){ - if(i >>> 0 >= s.l - 7) caml_bytes_bound_error(); - var a = new Array(8); - for(var j = 0; j < 8; j++) a[7 - j] = caml_bytes_unsafe_get(s, i + j); - return caml_int64_of_bytes(a); - } - var caml_custom_event_index = 0; - function caml_runtime_events_user_register - (event_name, event_tag, event_type){ - caml_custom_event_index += 1; - return [0, caml_custom_event_index, event_name, event_type, event_tag]; - } - function caml_unix_has_symlink(unit){return fs_node_supported() ? 1 : 0;} - function ml_z_rem(z1, z2){ - z2 = bigInt(z2); - if(z2.equals(bigInt(0))) caml_raise_zero_divide(); - return ml_z_normalize(bigInt(z1).mod(z2)); - } - function caml_ephe_set_key(x, i, v){ - if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.set"); - if(v instanceof Object && globalThis.WeakRef){ - if(x[1].register) x[1].register(v, undefined, v); - x[caml_ephe_key_offset + i] = new globalThis.WeakRef(v); - } - else - x[caml_ephe_key_offset + i] = v; - return 0; - } - function caml_ephe_unset_key(x, i){ - if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.set"); - if - (globalThis.WeakRef - && x[caml_ephe_key_offset + i] instanceof globalThis.WeakRef - && x[1].unregister){ - var old = x[caml_ephe_key_offset + i].deref(); - if(old !== undefined){ - var count = 0; - for(var j = caml_ephe_key_offset; j < x.length; j++){ - var key = x[j]; - if(key instanceof globalThis.WeakRef){ - key = key.deref(); - if(key === old) count++; - } - } - if(count == 1) x[1].unregister(old); - } - } - x[caml_ephe_key_offset + i] = undefined; - return 0; - } - function caml_weak_set(x, i, v){ - if(v == 0) caml_ephe_unset_key(x, i); else caml_ephe_set_key(x, i, v[1]); - return 0; - } - function caml_sys_remove(name){ - var root = resolve_fs_device(name), ok = root.device.unlink(root.rest); - if(ok == 0) caml_raise_no_such_file(caml_jsbytes_of_string(name)); - return 0; - } - function caml_string_bound_error(){ - caml_invalid_argument("index out of bounds"); - } - function caml_string_get32(s, i){ - if(i >>> 0 >= caml_ml_string_length(s) - 3) caml_string_bound_error(); - var - b1 = caml_string_unsafe_get(s, i), - b2 = caml_string_unsafe_get(s, i + 1), - b3 = caml_string_unsafe_get(s, i + 2), - b4 = caml_string_unsafe_get(s, i + 3); - return b4 << 24 | b3 << 16 | b2 << 8 | b1; - } - function caml_bytes_get(s, i){ - if(i >>> 0 >= s.l) caml_bytes_bound_error(); - return caml_bytes_unsafe_get(s, i); - } - function caml_hypot_float(x, y){return Math.hypot(x, y);} - function ml_z_facM(i, m){ - if(i <= 0 || m <= 0) caml_invalid_argument("Z.factM: negative arguments"); - m = bigInt(m); - var current = bigInt(i), res = bigInt(1); - while(current.isPositive()){ - res = res.multiply(current); - current = current.minus(m); - } - return ml_z_normalize(res); - } - function caml_js_call(f, o, args){ - return f.apply(o, caml_js_from_array(args)); - } - function caml_sys_const_max_wosize(){return 0x7FFFFFFF / 4 | 0;} - function caml_unix_inet_addr_of_string(){return 0;} - function ml_z_to_int(z1){ - if(z1 == (z1 | 0)) return z1 | 0; - caml_raise_constant(caml_named_value("ml_z_overflow")); - } - function ml_z_mul_overflows(x, y){var z = x * y; return z != (z | 0);} - function caml_hash_mix_bytes_arr(h, s){ - var len = s.length, i, w; - for(i = 0; i + 4 <= len; i += 4){ - w = s[i] | s[i + 1] << 8 | s[i + 2] << 16 | s[i + 3] << 24; - h = caml_hash_mix_int(h, w); - } - w = 0; - switch(len & 3){ - case 3: - w = s[i + 2] << 16; - case 2: - w |= s[i + 1] << 8; - case 1: - w |= s[i]; h = caml_hash_mix_int(h, w); - } - h ^= len; - return h; - } - function caml_hash_mix_jsbytes(h, s){ - var len = s.length, i, w; - for(i = 0; i + 4 <= len; i += 4){ - w = - s.charCodeAt(i) | s.charCodeAt(i + 1) << 8 | s.charCodeAt(i + 2) << 16 - | s.charCodeAt(i + 3) << 24; - h = caml_hash_mix_int(h, w); - } - w = 0; - switch(len & 3){ - case 3: - w = s.charCodeAt(i + 2) << 16; - case 2: - w |= s.charCodeAt(i + 1) << 8; - case 1: - w |= s.charCodeAt(i); h = caml_hash_mix_int(h, w); - } - h ^= len; - return h; - } - function caml_ml_bytes_content(s){ - switch(s.t & 6){ - default: caml_convert_string_to_bytes(s); - case 0: - return s.c; - case 4: - return s.c; - } - } - function caml_hash_mix_bytes(h, v){ - var content = caml_ml_bytes_content(v); - return typeof content === "string" - ? caml_hash_mix_jsbytes(h, content) - : caml_hash_mix_bytes_arr(h, content); - } - function caml_bytes_lessthan(s1, s2){ - s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c < s2.c ? 1 : 0; - } - function caml_erfc_float(x){return 1 - caml_erf_float(x);} - function caml_gr_fill_poly(ar){ - var s = caml_gr_state_get(); - s.context.beginPath(); - s.context.moveTo(ar[1][1], s.height - ar[1][2]); - for(var i = 2; i < ar.length; i++) - s.context.lineTo(ar[i][1], s.height - ar[i][2]); - s.context.lineTo(ar[1][1], s.height - ar[1][2]); - s.context.fill(); - return 0; - } - function caml_gc_quick_stat(){ - return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - } - function ml_z_fac(i){ - if(i <= 0) caml_invalid_argument("Z.fact: negative arguments"); - return ml_z_facM(i, 1); - } - function caml_ml_input_char(chanid){ - var chan = caml_ml_channels[chanid]; - if(chan.buffer_curr >= chan.buffer_max){ - chan.buffer_curr = 0; - chan.buffer_max = 0; - caml_refill(chan); - } - if(chan.buffer_curr >= chan.buffer_max) caml_raise_end_of_file(); - var res = chan.buffer[chan.buffer_curr]; - chan.buffer_curr++; - return res; - } - function caml_ml_input_int(chanid){ - var chan = caml_ml_channels[chanid], res = 0; - for(var i = 0; i < 4; i++) - res = (res << 8) + caml_ml_input_char(chanid) | 0; - return res | 0; - } - function caml_gr_display_mode(){ - caml_failwith("caml_gr_display_mode not Implemented"); - } - function ml_z_divisible(a, b){ - var zero = bigInt(0); - a = bigInt(a); - b = bigInt(b); - if(a.equals(zero) && b.equals(zero)) return 1; - return a.isDivisibleBy(b) ? 1 : 0; - } - function caml_obj_reachable_words(o){return 0;} - function nth_digit_nat(nat, ofs){return nat.data[ofs];} - function caml_array_blit(a1, i1, a2, i2, len){ - if(i2 <= i1) - for(var j = 1; j <= len; j++) a2[i2 + j] = a1[i1 + j]; - else - for(var j = len; j >= 1; j--) a2[i2 + j] = a1[i1 + j]; - return 0; - } - function caml_float_of_string(s){ - var res; - s = caml_jsbytes_of_string(s); - res = + s; - if(s.length > 0 && res === res) return res; - s = s.replace(/_/g, ""); - res = + s; - if(s.length > 0 && res === res || /^[+-]?nan$/i.test(s)) return res; - var m = /^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(s); - if(m){ - var - m3 = m[3].replace(/0+$/, ""), - mantissa = parseInt(m[1] + m[2] + m3, 16), - exponent = (m[5] | 0) - 4 * m3.length; - res = mantissa * Math.pow(2, exponent); - return res; - } - if(/^\+?inf(inity)?$/i.test(s)) return Infinity; - if(/^-inf(inity)?$/i.test(s)) return - Infinity; - caml_failwith("float_of_string"); - } - function caml_sys_getcwd(){ - return caml_string_of_jsbytes(caml_current_dir); - } - function caml_int64_add(x, y){return x.add(y);} - function caml_int64_mul(x, y){return x.mul(y);} - function caml_int64_ult(x, y){return x.ucompare(y) < 0;} - function caml_parse_sign_and_base(s){ - var i = 0, len = caml_ml_string_length(s), base = 10, sign = 1; - if(len > 0) - switch(caml_string_unsafe_get(s, i)){ - case 45: - i++; sign = - 1; break; - case 43: - i++; sign = 1; break; - } - if(i + 1 < len && caml_string_unsafe_get(s, i) == 48) - switch(caml_string_unsafe_get(s, i + 1)){ - case 120: - case 88: - base = 16; i += 2; break; - case 111: - case 79: - base = 8; i += 2; break; - case 98: - case 66: - base = 2; i += 2; break; - case 117: - case 85: - i += 2; break; - } - return [i, sign, base]; - } - function caml_parse_digit(c){ - if(c >= 48 && c <= 57) return c - 48; - if(c >= 65 && c <= 90) return c - 55; - if(c >= 97 && c <= 122) return c - 87; - return - 1; - } - function caml_int64_of_string(s){ - var - r = caml_parse_sign_and_base(s), - i = r[0], - sign = r[1], - base = r[2], - base64 = caml_int64_of_int32(base), - threshold = - new MlInt64(0xffffff, 0xfffffff, 0xffff).udivmod(base64).quotient, - c = caml_string_unsafe_get(s, i), - d = caml_parse_digit(c); - if(d < 0 || d >= base) caml_failwith("int_of_string"); - var res = caml_int64_of_int32(d); - for(;;){ - i++; - c = caml_string_unsafe_get(s, i); - if(c == 95) continue; - d = caml_parse_digit(c); - if(d < 0 || d >= base) break; - if(caml_int64_ult(threshold, res)) caml_failwith("int_of_string"); - d = caml_int64_of_int32(d); - res = caml_int64_add(caml_int64_mul(base64, res), d); - if(caml_int64_ult(res, d)) caml_failwith("int_of_string"); - } - if(i != caml_ml_string_length(s)) caml_failwith("int_of_string"); - if(base == 10 && caml_int64_ult(new MlInt64(0, 0, 0x8000), res)) - caml_failwith("int_of_string"); - if(sign < 0) res = caml_int64_neg(res); - return res; - } - function caml_ba_set_1(ba, i0, v){ba.set(ba.offset(i0), v); return 0;} - function caml_int64_xor(x, y){return x.xor(y);} - function caml_int64_or(x, y){return x.or(y);} - function caml_lxm_next(v){ - function shift_l(x, k){return caml_int64_shift_left(x, k);} - function shift_r(x, k){return caml_int64_shift_right_unsigned(x, k);} - function or(a, b){return caml_int64_or(a, b);} - function xor(a, b){return caml_int64_xor(a, b);} - function add(a, b){return caml_int64_add(a, b);} - function mul(a, b){return caml_int64_mul(a, b);} - function rotl(x, k){return or(shift_l(x, k), shift_r(x, 64 - k));} - function get(a, i){return caml_ba_get_1(a, i);} - function set(a, i, x){return caml_ba_set_1(a, i, x);} - var - M = caml_int64_of_string(caml_new_string("0xd1342543de82ef95")), - daba = caml_int64_of_string(caml_new_string("0xdaba0b6eb09322e3")), - z, - q0, - q1, - st = v, - a = get(st, 0), - s = get(st, 1), - x0 = get(st, 2), - x1 = get(st, 3); - z = add(s, x0); - z = mul(xor(z, shift_r(z, 32)), daba); - z = mul(xor(z, shift_r(z, 32)), daba); - z = xor(z, shift_r(z, 32)); - set(st, 1, add(mul(s, M), a)); - var q0 = x0, q1 = x1; - q1 = xor(q1, q0); - q0 = rotl(q0, 24); - q0 = xor(xor(q0, q1), shift_l(q1, 16)); - q1 = rotl(q1, 37); - set(st, 2, q0); - set(st, 3, q1); - return z; - } - function caml_sys_const_big_endian(){return 0;} - function caml_list_to_js_array(l){ - var a = []; - for(; l !== 0; l = l[2]) a.push(l[1]); - return a; - } - var - caml_output_val = - function(){ - function Writer(){this.chunk = [];} - Writer.prototype = - {chunk_idx: 20, - block_len: 0, - obj_counter: 0, - size_32: 0, - size_64: 0, - write: - function(size, value){ - for(var i = size - 8; i >= 0; i -= 8) - this.chunk[this.chunk_idx++] = value >> i & 0xFF; - }, - write_at: - function(pos, size, value){ - var pos = pos; - for(var i = size - 8; i >= 0; i -= 8) - this.chunk[pos++] = value >> i & 0xFF; - }, - write_code: - function(size, code, value){ - this.chunk[this.chunk_idx++] = code; - for(var i = size - 8; i >= 0; i -= 8) - this.chunk[this.chunk_idx++] = value >> i & 0xFF; - }, - write_shared: - function(offset){ - if(offset < 1 << 8) - this.write_code(8, 0x04, offset); - else if(offset < 1 << 16) - this.write_code(16, 0x05, offset); - else - this.write_code(32, 0x06, offset); - }, - pos: function(){return this.chunk_idx;}, - finalize: - function(){ - this.block_len = this.chunk_idx - 20; - this.chunk_idx = 0; - this.write(32, 0x8495A6BE); - this.write(32, this.block_len); - this.write(32, this.obj_counter); - this.write(32, this.size_32); - this.write(32, this.size_64); - return this.chunk; - }}; - return function(v, flags){ - flags = caml_list_to_js_array(flags); - var - no_sharing = flags.indexOf(0) !== - 1, - closures = flags.indexOf(1) !== - 1; - if(closures) - console.warn - ("in caml_output_val: flag Marshal.Closures is not supported."); - var - writer = new Writer(), - stack = [], - intern_obj_table = no_sharing ? null : new MlObjectTable(); - function memo(v){ - if(no_sharing) return false; - var existing_offset = intern_obj_table.recall(v); - if(existing_offset){ - writer.write_shared(existing_offset); - return true; - } - else{intern_obj_table.store(v); return false;} - } - function extern_rec(v){ - if(v.caml_custom){ - if(memo(v)) return; - var - name = v.caml_custom, - ops = caml_custom_ops[name], - sz_32_64 = [0, 0]; - if(! ops.serialize) - caml_invalid_argument("output_value: abstract value (Custom)"); - if(ops.fixed_length == undefined){ - writer.write(8, 0x18); - for(var i = 0; i < name.length; i++) - writer.write(8, name.charCodeAt(i)); - writer.write(8, 0); - var header_pos = writer.pos(); - for(var i = 0; i < 12; i++) writer.write(8, 0); - ops.serialize(writer, v, sz_32_64); - writer.write_at(header_pos, 32, sz_32_64[0]); - writer.write_at(header_pos + 4, 32, 0); - writer.write_at(header_pos + 8, 32, sz_32_64[1]); - } - else{ - writer.write(8, 0x19); - for(var i = 0; i < name.length; i++) - writer.write(8, name.charCodeAt(i)); - writer.write(8, 0); - var old_pos = writer.pos(); - ops.serialize(writer, v, sz_32_64); - if(ops.fixed_length != writer.pos() - old_pos) - caml_failwith - ("output_value: incorrect fixed sizes specified by " + name); - } - writer.size_32 += 2 + (sz_32_64[0] + 3 >> 2); - writer.size_64 += 2 + (sz_32_64[1] + 7 >> 3); - } - else if(v instanceof Array && v[0] === (v[0] | 0)){ - if(v[0] == 251) - caml_failwith("output_value: abstract value (Abstract)"); - if(caml_is_continuation_tag(v[0])) - caml_invalid_argument("output_value: continuation value"); - if(v.length > 1 && memo(v)) return; - if(v[0] < 16 && v.length - 1 < 8) - writer.write(8, 0x80 + v[0] + (v.length - 1 << 4)); - else - writer.write_code(32, 0x08, v.length - 1 << 10 | v[0]); - writer.size_32 += v.length; - writer.size_64 += v.length; - if(v.length > 1) stack.push(v, 1); - } - else if(caml_is_ml_bytes(v)){ - if(! caml_is_ml_bytes(caml_string_of_jsbytes(""))) - caml_failwith - ("output_value: [Bytes.t] cannot safely be marshaled with [--enable use-js-string]"); - if(memo(v)) return; - var len = caml_ml_bytes_length(v); - if(len < 0x20) - writer.write(8, 0x20 + len); - else if(len < 0x100) - writer.write_code(8, 0x09, len); - else - writer.write_code(32, 0x0A, len); - for(var i = 0; i < len; i++) - writer.write(8, caml_bytes_unsafe_get(v, i)); - writer.size_32 += 1 + ((len + 4) / 4 | 0); - writer.size_64 += 1 + ((len + 8) / 8 | 0); - } - else if(caml_is_ml_string(v)){ - var len = caml_ml_string_length(v); - if(len < 0x20) - writer.write(8, 0x20 + len); - else if(len < 0x100) - writer.write_code(8, 0x09, len); - else - writer.write_code(32, 0x0A, len); - for(var i = 0; i < len; i++) - writer.write(8, caml_string_unsafe_get(v, i)); - writer.size_32 += 1 + ((len + 4) / 4 | 0); - writer.size_64 += 1 + ((len + 8) / 8 | 0); - } - else if(v != (v | 0)){ - var type_of_v = typeof v; - caml_failwith("output_value: abstract value (" + type_of_v + ")"); - } - else if(v >= 0 && v < 0x40) - writer.write(8, 0X40 + v); - else if(v >= - (1 << 7) && v < 1 << 7) - writer.write_code(8, 0x00, v); - else if(v >= - (1 << 15) && v < 1 << 15) - writer.write_code(16, 0x01, v); + if(caml_is_ml_bytes(a)) + return 252; + else + if(caml_is_ml_string(a)) + return 1252; + else + if(a instanceof Array && a[0] === a[0] >>> 0 && a[0] <= 255) + {var tag=a[0] | 0;return tag == 254?0:tag} + else + if(a instanceof String) + return 12520; else - writer.write_code(32, 0x02, v); - } - extern_rec(v); - while(stack.length > 0){ - var i = stack.pop(), v = stack.pop(); - if(i + 1 < v.length) stack.push(v, i + 1); - extern_rec(v[i]); - } - if(intern_obj_table) - writer.obj_counter = intern_obj_table.objs.length; - writer.finalize(); - return writer.chunk;}; - } - (); - function caml_string_of_array(a){ - return caml_string_of_jsbytes(caml_subarray_to_jsbytes(a, 0, a.length)); - } - function caml_output_value_to_string(v, flags){ - return caml_string_of_array(caml_output_val(v, flags)); - } - function caml_raise_not_a_dir(name){ - caml_raise_sys_error(name + ": Not a directory"); - } - function caml_sys_system_command(cmd){ - var cmd = caml_jsstring_of_string(cmd); - if(typeof require != "undefined"){ - var child_process = require("child_process"); - if(child_process && child_process.execSync) - try{child_process.execSync(cmd, {stdio: "inherit"}); return 0;} - catch(e){return 1;} - } - else - return 127; - } - function caml_js_error_of_exception(exn){ - if(exn.js_error) return exn.js_error; - return null; - } - function caml_unix_getuid(unit){ - if(globalThis.process && globalThis.process.getuid) - return globalThis.process.getuid(); - caml_raise_not_found(); - } - function deserialize_nat(reader, sz){ - var len = reader.read32s(), nat = new MlNat(len); - for(var i = 0; i < len; i++) nat.data[i] = reader.read32s(); - sz[0] = len * 4; - return nat; - } - function initialize_nat(){ - caml_custom_ops["_nat"] = - {deserialize: deserialize_nat, - serialize: serialize_nat, - hash: caml_hash_nat}; - } - function ml_z_succ(z1){return ml_z_normalize(bigInt(z1).next());} - function caml_bytes_of_utf16_jsstring(s){ - var tag = 9; - if(! jsoo_is_ascii(s)) tag = 8, s = caml_utf8_of_utf16(s); - return new MlBytes(tag, s, s.length); - } - function caml_gr_open_subwindow(a, b, c, d){ - caml_failwith("caml_gr_open_subwindow not Implemented"); - } - function UInt8ArrayReader(s, i){this.s = s; this.i = i;} - UInt8ArrayReader.prototype = - {read8u: function(){return this.s[this.i++];}, - read8s: function(){return this.s[this.i++] << 24 >> 24;}, - read16u: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return s[i] << 8 | s[i + 1]; - }, - read16s: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return s[i] << 24 >> 16 | s[i + 1]; - }, - read32u: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return (s[i] << 24 | s[i + 1] << 16 | s[i + 2] << 8 | s[i + 3]) >>> 0; - }, - read32s: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return s[i] << 24 | s[i + 1] << 16 | s[i + 2] << 8 | s[i + 3]; - }, - readstr: - function(len){ - var i = this.i; - this.i = i + len; - return caml_string_of_array(this.s.subarray(i, i + len)); - }, - readuint8array: - function(len){ - var i = this.i; - this.i = i + len; - return this.s.subarray(i, i + len); - }}; - function caml_marshal_data_size(s, ofs){ - var r = new UInt8ArrayReader(caml_uint8_array_of_bytes(s), ofs); - function readvlq(overflow){ - var c = r.read8u(), n = c & 0x7F; - while((c & 0x80) != 0){ - c = r.read8u(); - var n7 = n << 7; - if(n != n7 >> 7) overflow[0] = true; - n = n7 | c & 0x7F; - } - return n; - } - switch(r.read32u()){ - case 0x8495A6BE: - var header_len = 20, data_len = r.read32u(); break; - case 0x8495A6BD: - var - header_len = r.read8u() & 0x3F, - overflow = [false], - data_len = readvlq(overflow); - if(overflow[0]) - caml_failwith - ("Marshal.data_size: object too large to be read back on this platform"); - break; - case 0x8495A6BF: - default: caml_failwith("Marshal.data_size: bad object"); break; - } - return header_len - caml_marshal_header_size + data_len; - } - function MlStringReader(s, i){ - this.s = caml_jsbytes_of_string(s); - this.i = i; - } - MlStringReader.prototype = - {read8u: function(){return this.s.charCodeAt(this.i++);}, - read8s: function(){return this.s.charCodeAt(this.i++) << 24 >> 24;}, - read16u: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return s.charCodeAt(i) << 8 | s.charCodeAt(i + 1); - }, - read16s: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return s.charCodeAt(i) << 24 >> 16 | s.charCodeAt(i + 1); - }, - read32u: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return (s.charCodeAt(i) << 24 | s.charCodeAt(i + 1) << 16 - | s.charCodeAt(i + 2) << 8 - | s.charCodeAt(i + 3)) - >>> 0; - }, - read32s: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return s.charCodeAt(i) << 24 | s.charCodeAt(i + 1) << 16 - | s.charCodeAt(i + 2) << 8 - | s.charCodeAt(i + 3); - }, - readstr: - function(len){ - var i = this.i; - this.i = i + len; - return caml_string_of_jsbytes(this.s.substring(i, i + len)); - }, - readuint8array: - function(len){ - var b = new Uint8Array(len), s = this.s, i = this.i; - for(var j = 0; j < len; j++) b[j] = s.charCodeAt(i + j); - this.i = i + len; - return b; - }}; - var - zstd_decompress = - function(){ - "use strict"; - var - ab = ArrayBuffer, - u8 = Uint8Array, - u16 = Uint16Array, - i16 = Int16Array, - u32 = Uint32Array, - i32 = Int32Array; - function slc(v, s, e){ - if(u8.prototype.slice) return u8.prototype.slice.call(v, s, e); - if(s == null || s < 0) s = 0; - if(e == null || e > v.length) e = v.length; - var n = new u8(e - s); - n.set(v.subarray(s, e)); - return n; - } - function fill(v, n, s, e){ - if(u8.prototype.fill) return u8.prototype.fill.call(v, n, s, e); - if(s == null || s < 0) s = 0; - if(e == null || e > v.length) e = v.length; - for(; s < e; ++s) v[s] = n; - return v; - } - function cpw(v, t, s, e){ - if(u8.prototype.copyWithin) - return u8.prototype.copyWithin.call(v, t, s, e); - if(s == null || s < 0) s = 0; - if(e == null || e > v.length) e = v.length; - while(s < e) v[t++] = v[s++]; - } - var - ec = - ["invalid zstd data", - "window size too large (>2046MB)", - "invalid block type", - "FSE accuracy too high", - "match distance too far back", - "unexpected EOF"]; - function err(ind, msg, nt){ - var e = new Error(msg || ec[ind]); - e.code = ind; - if(! nt) throw e; - return e; - } - function rb(d, b, n){ - var i = 0, o = 0; - for(; i < n; ++i) o |= d[b++] << (i << 3); - return o; - } - function b4(d, b){ - return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; - } - function rzfh(dat, w){ - var n3 = dat[0] | dat[1] << 8 | dat[2] << 16; - if(n3 == 0x2FB528 && dat[3] == 253){ - var - flg = dat[4], - ss = flg >> 5 & 1, - cc = flg >> 2 & 1, - df = flg & 3, - fcf = flg >> 6; - if(flg & 8) err(0); - var bt = 6 - ss, db = df == 3 ? 4 : df, di = rb(dat, bt, db); - bt += db; - var - fsb = fcf ? 1 << fcf : ss, - fss = rb(dat, bt, fsb) + (fcf == 1 && 256), - ws = fss; - if(! ss){ - var wb = 1 << 10 + (dat[5] >> 3); - ws = wb + (wb >> 3) * (dat[5] & 7); - } - if(ws > 2145386496) err(1); - var buf = new u8((w == 1 ? fss || ws : w ? 0 : ws) + 12); - buf[0] = 1, buf[4] = 4, buf[8] = 8; - return {b: bt + fsb, - y: 0, - l: 0, - d: di, - w: w && w != 1 ? w : buf.subarray(12), - e: ws, - o: new i32(buf.buffer, 0, 3), - u: fss, - c: cc, - m: Math.min(131072, ws)}; - } - else if((n3 >> 4 | dat[3] << 20) == 0x184D2A5) return b4(dat, 4) + 8; - err(0); - } - function msb(val){ - var bits = 0; - for(; 1 << bits <= val; ++bits) ; - return bits - 1; - } - function rfse(dat, bt, mal){ - var tpos = (bt << 3) + 4, al = (dat[bt] & 15) + 5; - if(al > mal) err(3); - var - sz = 1 << al, - probs = sz, - sym = - 1, - re = - 1, - i = - 1, - ht = sz, - buf = new ab(512 + (sz << 2)), - freq = new i16(buf, 0, 256), - dstate = new u16(buf, 0, 256), - nstate = new u16(buf, 512, sz), - bb1 = 512 + (sz << 1), - syms = new u8(buf, bb1, sz), - nbits = new u8(buf, bb1 + sz); - while(sym < 255 && probs > 0){ - var - bits = msb(probs + 1), - cbt = tpos >> 3, - msk = (1 << bits + 1) - 1, - val = - (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (tpos & 7) - & msk, - msk1fb = (1 << bits) - 1, - msv = msk - probs - 1, - sval = val & msk1fb; - if(sval < msv) - tpos += bits, val = sval; - else{tpos += bits + 1; if(val > msk1fb) val -= msv;} - freq[++sym] = --val; - if(val == - 1){probs += val; syms[--ht] = sym;} else probs -= val; - if(! val) - do{ - var rbt = tpos >> 3; - re = (dat[rbt] | dat[rbt + 1] << 8) >> (tpos & 7) & 3; - tpos += 2; - sym += re; - } - while - (re == 3); - } - if(sym > 255 || probs) err(0); - var sympos = 0, sstep = (sz >> 1) + (sz >> 3) + 3, smask = sz - 1; - for(var s = 0; s <= sym; ++s){ - var sf = freq[s]; - if(sf < 1){dstate[s] = - sf; continue;} - for(i = 0; i < sf; ++i){ - syms[sympos] = s; - do sympos = sympos + sstep & smask;while(sympos >= ht); - } - } - if(sympos) err(0); - for(i = 0; i < sz; ++i){ - var ns = dstate[syms[i]]++, nb = nbits[i] = al - msb(ns); - nstate[i] = (ns << nb) - sz; - } - return [tpos + 7 >> 3, {b: al, s: syms, n: nbits, t: nstate}]; - } - function rhu(dat, bt){ - var - i = 0, - wc = - 1, - buf = new u8(292), - hb = dat[bt], - hw = buf.subarray(0, 256), - rc = buf.subarray(256, 268), - ri = new u16(buf.buffer, 268); - if(hb < 128){ - var _a = rfse(dat, bt + 1, 6), ebt = _a[0], fdt = _a[1]; - bt += hb; - var epos = ebt << 3, lb = dat[bt]; - if(! lb) err(0); - var - st1 = 0, - st2 = 0, - btr1 = fdt.b, - btr2 = btr1, - fpos = (++bt << 3) - 8 + msb(lb); - for(;;){ - fpos -= btr1; - if(fpos < epos) break; - var cbt = fpos >> 3; - st1 += - (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr1) - 1; - hw[++wc] = fdt.s[st1]; - fpos -= btr2; - if(fpos < epos) break; - cbt = fpos >> 3; - st2 += - (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr2) - 1; - hw[++wc] = fdt.s[st2]; - btr1 = fdt.n[st1]; - st1 = fdt.t[st1]; - btr2 = fdt.n[st2]; - st2 = fdt.t[st2]; - } - if(++wc > 255) err(0); - } - else{ - wc = hb - 127; - for(; i < wc; i += 2){ - var byte = dat[++bt]; - hw[i] = byte >> 4; - hw[i + 1] = byte & 15; - } - ++bt; - } - var wes = 0; - for(i = 0; i < wc; ++i){ - var wt = hw[i]; - if(wt > 11) err(0); - wes += wt && 1 << wt - 1; - } - var mb = msb(wes) + 1, ts = 1 << mb, rem = ts - wes; - if(rem & rem - 1) err(0); - hw[wc++] = msb(rem) + 1; - for(i = 0; i < wc; ++i){ - var wt = hw[i]; - ++rc[hw[i] = wt && mb + 1 - wt]; - } - var - hbuf = new u8(ts << 1), - syms = hbuf.subarray(0, ts), - nb = hbuf.subarray(ts); - ri[mb] = 0; - for(i = mb; i > 0; --i){ - var pv = ri[i]; - fill(nb, i, pv, ri[i - 1] = pv + rc[i] * (1 << mb - i)); - } - if(ri[0] != ts) err(0); - for(i = 0; i < wc; ++i){ - var bits = hw[i]; - if(bits){ - var code = ri[bits]; - fill(syms, i, code, ri[bits] = code + (1 << mb - bits)); - } - } - return [bt, {n: nb, b: mb, s: syms}]; - } - var - dllt = - rfse - (new - u8 - ([81, - 16, - 99, - 140, - 49, - 198, - 24, - 99, - 12, - 33, - 196, - 24, - 99, - 102, - 102, - 134, - 70, - 146, - 4]), - 0, - 6) - [1], - dmlt = - rfse - (new - u8 - ([33, - 20, - 196, - 24, - 99, - 140, - 33, - 132, - 16, - 66, - 8, - 33, - 132, - 16, - 66, - 8, - 33, - 68, - 68, - 68, - 68, - 68, - 68, - 68, - 68, - 36, - 9]), - 0, - 6) - [1], - doct = - rfse - (new u8([32, 132, 16, 66, 102, 70, 68, 68, 68, 68, 36, 73, 2]), - 0, - 5) - [1]; - function b2bl(b, s){ - var len = b.length, bl = new i32(len); - for(var i = 0; i < len; ++i){bl[i] = s; s += 1 << b[i];} - return bl; - } - var - llb = - new - u8 - (new - i32 - ([0, - 0, - 0, - 0, - 16843009, - 50528770, - 134678020, - 202050057, - 269422093]).buffer, - 0, - 36), - llbl = b2bl(llb, 0), - mlb = - new - u8 - (new - i32 - ([0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16843009, - 50528770, - 117769220, - 185207048, - 252579084, - 16]).buffer, - 0, - 53), - mlbl = b2bl(mlb, 3); - function dhu(dat, out, hu){ - var - len = dat.length, - ss = out.length, - lb = dat[len - 1], - msk = (1 << hu.b) - 1, - eb = - hu.b; - if(! lb) err(0); - var - st = 0, - btr = hu.b, - pos = (len << 3) - 8 + msb(lb) - btr, - i = - 1; - for(; pos > eb && i < ss;){ - var - cbt = pos >> 3, - val = - (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (pos & 7); - st = (st << btr | val) & msk; - out[++i] = hu.s[st]; - pos -= btr = hu.n[st]; - } - if(pos != eb || i + 1 != ss) err(0); - } - function dhu4(dat, out, hu){ - var - bt = 6, - ss = out.length, - sz1 = ss + 3 >> 2, - sz2 = sz1 << 1, - sz3 = sz1 + sz2; - dhu - (dat.subarray(bt, bt += dat[0] | dat[1] << 8), - out.subarray(0, sz1), - hu); - dhu - (dat.subarray(bt, bt += dat[2] | dat[3] << 8), - out.subarray(sz1, sz2), - hu); - dhu - (dat.subarray(bt, bt += dat[4] | dat[5] << 8), - out.subarray(sz2, sz3), - hu); - dhu(dat.subarray(bt), out.subarray(sz3), hu); - } - function rzb(dat, st, out){ - var _a, bt = st.b, b0 = dat[bt], btype = b0 >> 1 & 3; - st.l = b0 & 1; - var - sz = b0 >> 3 | dat[bt + 1] << 5 | dat[bt + 2] << 13, - ebt = (bt += 3) + sz; - if(btype == 1){ - if(bt >= dat.length) return; - st.b = bt + 1; - if(out){fill(out, dat[bt], st.y, st.y += sz); return out;} - return fill(new u8(sz), dat[bt]); - } - if(ebt > dat.length) return; - if(btype == 0){ - st.b = ebt; - if(out){ - out.set(dat.subarray(bt, ebt), st.y); - st.y += sz; - return out; - } - return slc(dat, bt, ebt); - } - if(btype == 2){ - var - b3 = dat[bt], - lbt = b3 & 3, - sf = b3 >> 2 & 3, - lss = b3 >> 4, - lcs = 0, - s4 = 0; - if(lbt < 2) - if(sf & 1) - lss |= dat[++bt] << 4 | (sf & 2 && dat[++bt] << 12); + if(typeof a == "string") + return 12520; else - lss = b3 >> 3; - else{ - s4 = sf; - if(sf < 2) - lss |= (dat[++bt] & 63) << 4, lcs = dat[bt] >> 6 | dat[++bt] << 2; - else if(sf == 2) - lss |= dat[++bt] << 4 | (dat[++bt] & 3) << 12, - lcs = dat[bt] >> 2 | dat[++bt] << 6; - else - lss |= dat[++bt] << 4 | (dat[++bt] & 63) << 12, - lcs = dat[bt] >> 6 | dat[++bt] << 2 | dat[++bt] << 10; - } - ++bt; - var - buf = out ? out.subarray(st.y, st.y + st.m) : new u8(st.m), - spl = buf.length - lss; - if(lbt == 0) - buf.set(dat.subarray(bt, bt += lss), spl); - else if(lbt == 1) - fill(buf, dat[bt++], spl); - else{ - var hu = st.h; - if(lbt == 2){ - var hud = rhu(dat, bt); - lcs += bt - (bt = hud[0]); - st.h = hu = hud[1]; - } - else if(! hu) err(0); - (s4 ? dhu4 : dhu) - (dat.subarray(bt, bt += lcs), buf.subarray(spl), hu); - } - var ns = dat[bt++]; - if(ns){ - if(ns == 255) - ns = (dat[bt++] | dat[bt++] << 8) + 0x7F00; - else if(ns > 127) ns = ns - 128 << 8 | dat[bt++]; - var scm = dat[bt++]; - if(scm & 3) err(0); - var dts = [dmlt, doct, dllt]; - for(var i = 2; i > - 1; --i){ - var md = scm >> (i << 1) + 2 & 3; - if(md == 1){ - var rbuf = new u8([0, 0, dat[bt++]]); - dts[i] = - {s: rbuf.subarray(2, 3), - n: rbuf.subarray(0, 1), - t: new u16(rbuf.buffer, 0, 1), - b: 0}; - } - else if(md == 2) - _a = rfse(dat, bt, 9 - (i & 1)), bt = _a[0], dts[i] = _a[1]; - else if(md == 3){if(! st.t) err(0); dts[i] = st.t[i];} - } - var - _b = st.t = dts, - mlt = _b[0], - oct = _b[1], - llt = _b[2], - lb = dat[ebt - 1]; - if(! lb) err(0); - var - spos = (ebt << 3) - 8 + msb(lb) - llt.b, - cbt = spos >> 3, - oubt = 0, - lst = - (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << llt.b) - 1; - cbt = (spos -= oct.b) >> 3; - var - ost = - (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << oct.b) - 1; - cbt = (spos -= mlt.b) >> 3; - var - mst = - (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mlt.b) - 1; - for(++ns; --ns;){ - var - llc = llt.s[lst], - lbtr = llt.n[lst], - mlc = mlt.s[mst], - mbtr = mlt.n[mst], - ofc = oct.s[ost], - obtr = oct.n[ost]; - cbt = (spos -= ofc) >> 3; - var - ofp = 1 << ofc, - off = - ofp - + - ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16 - | dat[cbt + 3] << 24) - >>> (spos & 7) - & ofp - 1); - cbt = (spos -= mlb[mlc]) >> 3; - var - ml = - mlbl[mlc] - + - ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) - >> (spos & 7) - & (1 << mlb[mlc]) - 1); - cbt = (spos -= llb[llc]) >> 3; - var - ll = - llbl[llc] - + - ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) - >> (spos & 7) - & (1 << llb[llc]) - 1); - cbt = (spos -= lbtr) >> 3; - lst = - llt.t[lst] - + - ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << lbtr) - 1); - cbt = (spos -= mbtr) >> 3; - mst = - mlt.t[mst] - + - ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mbtr) - 1); - cbt = (spos -= obtr) >> 3; - ost = - oct.t[ost] - + - ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << obtr) - 1); - if(off > 3){ - st.o[2] = st.o[1]; - st.o[1] = st.o[0]; - st.o[0] = off -= 3; - } - else{ - var idx = off - (ll != 0); - if(idx){ - off = idx == 3 ? st.o[0] - 1 : st.o[idx]; - if(idx > 1) st.o[2] = st.o[1]; - st.o[1] = st.o[0]; - st.o[0] = off; - } + if(a instanceof Number) + return 1000; + else + if(a && a.caml_custom) + return 1255; else - off = st.o[0]; - } - for(var i = 0; i < ll; ++i) buf[oubt + i] = buf[spl + i]; - oubt += ll, spl += ll; - var stin = oubt - off; - if(stin < 0){ - var len = - stin, bs = st.e + stin; - if(len > ml) len = ml; - for(var i = 0; i < len; ++i) buf[oubt + i] = st.w[bs + i]; - oubt += len, ml -= len, stin = 0; - } - for(var i = 0; i < ml; ++i) buf[oubt + i] = buf[stin + i]; - oubt += ml; - } - if(oubt != spl) - while(spl < buf.length) buf[oubt++] = buf[spl++]; - else - oubt = buf.length; - if(out) st.y += oubt; else buf = slc(buf, 0, oubt); - } - else if(out){ - st.y += lss; - if(spl) for(var i = 0; i < lss; ++i) buf[i] = buf[spl + i]; - } - else if(spl) buf = slc(buf, spl); - st.b = ebt; - return buf; - } - err(2); - } - function cct(bufs, ol){ - if(bufs.length == 1) return bufs[0]; - var buf = new u8(ol); - for(var i = 0, b = 0; i < bufs.length; ++i){ - var chk = bufs[i]; - buf.set(chk, b); - b += chk.length; - } - return buf; - } - return function(dat, buf){ - var bt = 0, bufs = [], nb = + ! buf, ol = 0; - for(; dat.length;){ - var st = rzfh(dat, nb || buf); - if(typeof st == "object"){ - if(nb){ - buf = null; - if(st.w.length == st.u){bufs.push(buf = st.w); ol += st.u;} - } - else{bufs.push(buf); st.e = 0;} - for(; ! st.l;){ - var blk = rzb(dat, st, buf); - if(! blk) err(5); - if(buf) - st.e = st.y; - else{ - bufs.push(blk); - ol += blk.length; - cpw(st.w, 0, blk.length); - st.w.set(blk, st.w.length - blk.length); - } - } - bt = st.b + st.c * 4; - } - else - bt = st; - dat = dat.subarray(bt); - } - return cct(bufs, ol);}; - } - (); - function caml_float_of_bytes(a){ - return caml_int64_float_of_bits(caml_int64_of_bytes(a)); - } - function caml_input_value_from_reader(reader, ofs){ - function readvlq(overflow){ - var c = reader.read8u(), n = c & 0x7F; - while((c & 0x80) != 0){ - c = reader.read8u(); - var n7 = n << 7; - if(n != n7 >> 7) overflow[0] = true; - n = n7 | c & 0x7F; - } - return n; - } - var magic = reader.read32u(); - switch(magic){ - case 0x8495A6BE: - var - header_len = 20, - compressed = 0, - data_len = reader.read32u(), - uncompressed_data_len = data_len, - num_objects = reader.read32u(), - _size_32 = reader.read32u(), - _size_64 = reader.read32u(); - break; - case 0x8495A6BD: - var - header_len = reader.read8u() & 0x3F, - compressed = 1, - overflow = [false], - data_len = readvlq(overflow), - uncompressed_data_len = readvlq(overflow), - num_objects = readvlq(overflow), - _size_32 = readvlq(overflow), - _size_64 = readvlq(overflow); - if(overflow[0]) - caml_failwith - ("caml_input_value_from_reader: object too large to be read back on this platform"); - break; - case 0x8495A6BF: - caml_failwith - ("caml_input_value_from_reader: object too large to be read back on a 32-bit platform"); - break; - default: - caml_failwith("caml_input_value_from_reader: bad object"); break; - } - var - stack = [], - intern_obj_table = num_objects > 0 ? [] : null, - obj_counter = 0; - function intern_rec(reader){ - var code = reader.read8u(); - if(code >= 0x40) - if(code >= 0x80){ - var tag = code & 0xF, size = code >> 4 & 0x7, v = [tag]; - if(size == 0) return v; - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - stack.push(v, size); - return v; - } + if(a && a.compare) + return 1256; + else + if(typeof a == "function") + return 1247; + else + if(typeof a == "symbol")return 1251; + return 1001} + function caml_int_compare(a,b) + {if(a < b)return - 1;if(a == b)return 0;return 1} + function caml_bytes_compare(s1,s2) + {s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c < s2.c?- 1:s1.c > s2.c?1:0} + function caml_string_compare(s1,s2){return caml_bytes_compare(s1,s2)} + function caml_compare_val(a,b,total) + {var stack=[]; + for(;;) + {if(! (total && a === b)) + {var tag_a=caml_compare_val_tag(a); + if(tag_a == 250){a = a[1];continue} + var tag_b=caml_compare_val_tag(b); + if(tag_b == 250){b = b[1];continue} + if(tag_a !== tag_b) + {if(tag_a == 1000) + {if(tag_b == 1255) + return caml_compare_val_number_custom(a,b,- 1,total); + return - 1} + if(tag_b == 1000) + {if(tag_a == 1255) + return caml_compare_val_number_custom(b,a,1,total); + return 1} + return tag_a < tag_b?- 1:1} + switch(tag_a) + {case 247:caml_invalid_argument("compare: functional value");break; + case 248: + var x=caml_int_compare(a[2],b[2]);if(x != 0)return x | 0;break; + case 249:caml_invalid_argument("compare: functional value");break; + case 250: + caml_invalid_argument + ("equal: got Forward_tag, should not happen"); + break; + case 251:caml_invalid_argument("equal: abstract value");break; + case 252: + if(a !== b){var x=caml_bytes_compare(a,b);if(x != 0)return x | 0} + break; + case 253: + caml_invalid_argument("equal: got Double_tag, should not happen"); + break; + case 254: + caml_invalid_argument + ("equal: got Double_array_tag, should not happen"); + break; + case 255: + caml_invalid_argument("equal: got Custom_tag, should not happen"); + break; + case 1247: + caml_invalid_argument("compare: functional value");break; + case 1255: + var comp=caml_compare_val_get_custom(a); + if(comp != caml_compare_val_get_custom(b)) + return a.caml_custom < b.caml_custom?- 1:1; + if(! comp)caml_invalid_argument("compare: abstract value"); + var x=comp(a,b,total); + if(x != x)return total?- 1:x; + if(x !== (x | 0))return - 1; + if(x != 0)return x | 0; + break; + case 1256: + var x=a.compare(b,total); + if(x != x)return total?- 1:x; + if(x !== (x | 0))return - 1; + if(x != 0)return x | 0; + break; + case 1000: + a = + a; + b = + b; + if(a < b)return - 1; + if(a > b)return 1; + if(a != b) + {if(! total)return NaN;if(a == a)return 1;if(b == b)return - 1} + break; + case 1001: + if(a < b)return - 1; + if(a > b)return 1; + if(a != b) + {if(! total)return NaN;if(a == a)return 1;if(b == b)return - 1} + break; + case 1251:if(a !== b){if(! total)return NaN;return 1}break; + case 1252: + var a=caml_jsbytes_of_string(a),b=caml_jsbytes_of_string(b); + if(a !== b){if(a < b)return - 1;if(a > b)return 1} + break; + case 12520: + var a=a.toString(),b=b.toString(); + if(a !== b){if(a < b)return - 1;if(a > b)return 1} + break; + case 246: + case 254: + default: + if(caml_is_continuation_tag(tag_a)) + {caml_invalid_argument("compare: continuation value");break} + if(a.length != b.length)return a.length < b.length?- 1:1; + if(a.length > 1)stack.push(a,b,1); + break}} + if(stack.length == 0)return 0; + var i=stack.pop(); + b = stack.pop(); + a = stack.pop(); + if(i + 1 < a.length)stack.push(a,b,i + 1); + a = a[i]; + b = b[i]}} + function caml_greaterthan(x,y){return + (caml_compare_val(x,y,false) > 0)} + function div_helper(a,b,c) + {var + x=a * 65536 + (b >>> 16), + y=Math.floor(x / c) * 65536, + z=x % c * 65536, + w=z + (b & 0x0000FFFF); + return [y + Math.floor(w / c),w % c]} + function div_digit_nat(natq,ofsq,natr,ofsr,nat1,ofs1,len,nat2,ofs2) + {var rem=nat1.data[ofs1 + len - 1] >>> 0; + for(var i=len - 2;i >= 0;i--) + {var x=div_helper(rem,nat1.data[ofs1 + i] >>> 0,nat2.data[ofs2] >>> 0); + natq.data[ofsq + i] = x[0]; + rem = x[1]} + natr.data[ofsr] = rem; + return 0} + function num_leading_zero_bits_in_digit(nat,ofs) + {var a=nat.data[ofs],b=0; + if(a & 0xFFFF0000){b += 16;a >>>= 16} + if(a & 0xFF00){b += 8;a >>>= 8} + if(a & 0xF0){b += 4;a >>>= 4} + if(a & 12){b += 2;a >>>= 2} + if(a & 2){b += 1;a >>>= 1} + if(a & 1)b += 1; + return 32 - b} + function shift_left_nat(nat1,ofs1,len1,nat2,ofs2,nbits) + {if(nbits == 0){nat2.data[ofs2] = 0;return 0} + var wrap=0; + for(var i=0;i < len1;i++) + {var a=nat1.data[ofs1 + i] >>> 0; + nat1.data[ofs1 + i] = a << nbits | wrap; + wrap = a >>> 32 - nbits} + nat2.data[ofs2] = wrap; + return 0} + function MlNat(x) + {this.data = new Int32Array(x);this.length = this.data.length + 2} + MlNat.prototype.caml_custom = "_nat"; + function create_nat(size) + {var arr=new MlNat(size); + for(var i=0;i < size;i++)arr.data[i] = - 1; + return arr} + function set_to_zero_nat(nat,ofs,len) + {for(var i=0;i < len;i++)nat.data[ofs + i] = 0;return 0} + function incr_nat(nat,ofs,len,carry_in) + {var carry=carry_in; + for(var i=0;i < len;i++) + {var x=(nat.data[ofs + i] >>> 0) + carry; + nat.data[ofs + i] = x | 0; + if(x == x >>> 0){carry = 0;break}else carry = 1} + return carry} + function add_nat(nat1,ofs1,len1,nat2,ofs2,len2,carry_in) + {var carry=carry_in; + for(var i=0;i < len2;i++) + {var + x= + (nat1.data[ofs1 + i] >>> 0) + (nat2.data[ofs2 + i] >>> 0) + carry; + nat1.data[ofs1 + i] = x; + if(x == x >>> 0)carry = 0;else carry = 1} + return incr_nat(nat1,ofs1 + len2,len1 - len2,carry)} + function nat_of_array(l){return new MlNat(l)} + function mult_digit_nat(nat1,ofs1,len1,nat2,ofs2,len2,nat3,ofs3) + {var carry=0,a=nat3.data[ofs3] >>> 0; + for(var i=0;i < len2;i++) + {var + x1= + (nat1.data[ofs1 + i] >>> 0) + + + (nat2.data[ofs2 + i] >>> 0) + * + (a & 0x0000FFFF) + + + carry, + x2=(nat2.data[ofs2 + i] >>> 0) * (a >>> 16); + carry = Math.floor(x2 / 65536); + var x3=x1 + x2 % 65536 * 65536; + nat1.data[ofs1 + i] = x3; + carry += Math.floor(x3 / 4294967296)} + return len2 < len1 && carry + ?add_nat + (nat1,ofs1 + len2,len1 - len2,nat_of_array([carry]),0,1,0) + :carry} + function decr_nat(nat,ofs,len,carry_in) + {var borrow=carry_in == 1?0:1; + for(var i=0;i < len;i++) + {var x=(nat.data[ofs + i] >>> 0) - borrow; + nat.data[ofs + i] = x; + if(x >= 0){borrow = 0;break}else borrow = 1} + return borrow == 1?0:1} + function sub_nat(nat1,ofs1,len1,nat2,ofs2,len2,carry_in) + {var borrow=carry_in == 1?0:1; + for(var i=0;i < len2;i++) + {var + x= + (nat1.data[ofs1 + i] >>> 0) - (nat2.data[ofs2 + i] >>> 0) - borrow; + nat1.data[ofs1 + i] = x; + if(x >= 0)borrow = 0;else borrow = 1} + return decr_nat(nat1,ofs1 + len2,len1 - len2,borrow == 1?0:1)} + function compare_nat(nat1,ofs1,len1,nat2,ofs2,len2) + {var a=num_digits_nat(nat1,ofs1,len1),b=num_digits_nat(nat2,ofs2,len2); + if(a > b)return 1; + if(a < b)return - 1; + for(var i=len1 - 1;i >= 0;i--) + {if(nat1.data[ofs1 + i] >>> 0 > nat2.data[ofs2 + i] >>> 0)return 1; + if(nat1.data[ofs1 + i] >>> 0 < nat2.data[ofs2 + i] >>> 0)return - 1} + return 0} + function div_nat(nat1,ofs1,len1,nat2,ofs2,len2) + {if(len2 == 1) + {div_digit_nat(nat1,ofs1 + 1,nat1,ofs1,nat1,ofs1,len1,nat2,ofs2); + return 0} + var s=num_leading_zero_bits_in_digit(nat2,ofs2 + len2 - 1); + shift_left_nat(nat2,ofs2,len2,nat_of_array([0]),0,s); + shift_left_nat(nat1,ofs1,len1,nat_of_array([0]),0,s); + var d=(nat2.data[ofs2 + len2 - 1] >>> 0) + 1,a=create_nat(len2 + 1); + for(var i=len1 - 1;i >= len2;i--) + {var + quo= + d == 4294967296 + ?nat1.data[ofs1 + i] >>> 0 + :div_helper + (nat1.data[ofs1 + i] >>> 0,nat1.data[ofs1 + i - 1] >>> 0,d) + [0]; + set_to_zero_nat(a,0,len2 + 1); + mult_digit_nat(a,0,len2 + 1,nat2,ofs2,len2,nat_of_array([quo]),0); + sub_nat(nat1,ofs1 + i - len2,len2 + 1,a,0,len2 + 1,1); + while + (nat1.data[ofs1 + i] + != + 0 + || + compare_nat(nat1,ofs1 + i - len2,len2,nat2,ofs2,len2) + >= + 0) + {quo = quo + 1; + sub_nat(nat1,ofs1 + i - len2,len2 + 1,nat2,ofs2,len2,1)} + nat1.data[ofs1 + i] = quo} + shift_right_nat(nat1,ofs1,len2,nat_of_array([0]),0,s); + shift_right_nat(nat2,ofs2,len2,nat_of_array([0]),0,s); + return 0} + function caml_ba_blit(src,dst) + {if(dst.dims.length != src.dims.length) + caml_invalid_argument("Bigarray.blit: dimension mismatch"); + for(var i=0;i < dst.dims.length;i++) + if(dst.dims[i] != src.dims[i]) + caml_invalid_argument("Bigarray.blit: dimension mismatch"); + dst.data.set(src.data); + return 0} + function is_digit_int(nat,ofs){if(nat.data[ofs] >= 0)return 1;return 0} + function caml_int64_div(x,y){return x.div(y)} + function caml_js_html_entities(s) + {var entity=/^&#?[0-9a-zA-Z]+;$/; + if(s.match(entity)) + {var str,temp=document.createElement("p"); + temp.innerHTML = s; + str = temp.textContent || temp.innerText; + temp = null; + return str} else - return code & 0x3F; - else if(code >= 0x20){ - var len = code & 0x1F, v = reader.readstr(len); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - } - else - switch(code){ - case 0x00: - return reader.read8s(); - case 0x01: - return reader.read16s(); - case 0x02: - return reader.read32s(); - case 0x03: - caml_failwith("input_value: integer too large"); break; - case 0x04: - var offset = reader.read8u(); - if(compressed == 0) offset = obj_counter - offset; - return intern_obj_table[offset]; - case 0x05: - var offset = reader.read16u(); - if(compressed == 0) offset = obj_counter - offset; - return intern_obj_table[offset]; - case 0x06: - var offset = reader.read32u(); - if(compressed == 0) offset = obj_counter - offset; - return intern_obj_table[offset]; - case 0x08: - var - header = reader.read32u(), - tag = header & 0xFF, - size = header >> 10, - v = [tag]; - if(size == 0) return v; - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - stack.push(v, size); - return v; - case 0x13: - caml_failwith("input_value: data block too large"); break; - case 0x09: - var len = reader.read8u(), v = reader.readstr(len); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - case 0x0A: - var len = reader.read32u(), v = reader.readstr(len); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - case 0x0C: - var t = new Array(8); - for(var i = 0; i < 8; i++) t[7 - i] = reader.read8u(); - var v = caml_float_of_bytes(t); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - case 0x0B: - var t = new Array(8); - for(var i = 0; i < 8; i++) t[i] = reader.read8u(); - var v = caml_float_of_bytes(t); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - case 0x0E: - var len = reader.read8u(), v = new Array(len + 1); - v[0] = 254; - var t = new Array(8); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - for(var i = 1; i <= len; i++){ - for(var j = 0; j < 8; j++) t[7 - j] = reader.read8u(); - v[i] = caml_float_of_bytes(t); - } - return v; - case 0x0D: - var len = reader.read8u(), v = new Array(len + 1); - v[0] = 254; - var t = new Array(8); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - for(var i = 1; i <= len; i++){ - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - v[i] = caml_float_of_bytes(t); - } - return v; - case 0x07: - var len = reader.read32u(), v = new Array(len + 1); - v[0] = 254; - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - var t = new Array(8); - for(var i = 1; i <= len; i++){ - for(var j = 0; j < 8; j++) t[7 - j] = reader.read8u(); - v[i] = caml_float_of_bytes(t); - } - return v; - case 0x0F: - var len = reader.read32u(), v = new Array(len + 1); - v[0] = 254; - var t = new Array(8); - for(var i = 1; i <= len; i++){ - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - v[i] = caml_float_of_bytes(t); - } - return v; - case 0x10: - case 0x11: - caml_failwith("input_value: code pointer"); break; - case 0x12: - case 0x18: - case 0x19: - var c, s = ""; - while((c = reader.read8u()) != 0) s += String.fromCharCode(c); - var ops = caml_custom_ops[s], expected_size; - if(! ops) - caml_failwith("input_value: unknown custom block identifier"); - switch(code){ - case 0x12: break; - case 0x19: - if(! ops.fixed_length) - caml_failwith("input_value: expected a fixed-size custom block"); - expected_size = ops.fixed_length; - break; - case 0x18: - expected_size = reader.read32u(); - reader.read32s(); - reader.read32s(); - break; - } - var - old_pos = reader.i, - size = [0], - v = ops.deserialize(reader, size); - if(expected_size != undefined) - if(expected_size != size[0]) - caml_failwith - ("input_value: incorrect length of serialized custom block"); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - default: caml_failwith("input_value: ill-formed message"); - } - } - if(compressed) - var - data = reader.readuint8array(data_len), - res = new Uint8Array(uncompressed_data_len), - res = zstd_decompress(data, res), - reader = new UInt8ArrayReader(res, 0); - var res = intern_rec(reader); - while(stack.length > 0){ - var size = stack.pop(), v = stack.pop(), d = v.length; - if(d < size) stack.push(v, size); - v[d] = intern_rec(reader); - } - if(typeof ofs != "number") ofs[0] = reader.i; - return res; - } - function caml_string_of_bytes(s){ - s.t & 6 && caml_convert_string_to_bytes(s); - return caml_string_of_jsbytes(s.c); - } - function caml_input_value_from_bytes(s, ofs){ + caml_failwith("Invalid entity " + s)} + function caml_string_unsafe_set(s,i,c) + {return caml_bytes_unsafe_set(s,i,c)} + function caml_int64_of_float(x) + {if(x < 0)x = Math.ceil(x); + return new + MlInt64 + (x & 0xffffff, + Math.floor(x * caml_int64_offset) & 0xffffff, + Math.floor(x * caml_int64_offset * caml_int64_offset) & 0xffff)} + function caml_ml_channel_size_64(chanid) + {var chan=caml_ml_channels[chanid]; + return caml_int64_of_float(chan.file.length())} + function caml_ba_set_2(ba,i0,i1,v){ba.set(ba.offset([i0,i1]),v);return 0} + function ml_z_of_int64(i64) + {var neg=false; + if(caml_int64_compare(i64,caml_int64_create_lo_hi(0,0)) < 0) + {neg = true;i64 = caml_int64_neg(i64)} + var + lo=caml_int64_lo32(i64) >>> 0, + hi=caml_int64_hi32(i64) >>> 0, + x=bigInt(lo).add(bigInt(hi).shiftLeft(32)); + if(neg)x = x.negate(); + return ml_z_normalize(x)} + function ml_z_kronecker(n,k) + {caml_failwith("ml_z_kronecker is not implemented")} var - reader = - new - MlStringReader - (caml_string_of_bytes(s), typeof ofs == "number" ? ofs : ofs[0]); - return caml_input_value_from_reader(reader, ofs); - } - function caml_input_value(chanid){ + caml_argv= + function() + {var process=globalThis.process,main="a.out",args=[]; + if(process && process.argv && process.argv.length > 1) + {var argv=process.argv;main = argv[1];args = argv.slice(2)} + var p=caml_string_of_jsstring(main),args2=[0,p]; + for(var i=0;i < args.length;i++) + args2.push(caml_string_of_jsstring(args[i])); + return args2} + (), + caml_executable_name=caml_argv[1]; + function caml_js_eval_string(s){return eval(caml_jsstring_of_string(s))} + function serialize_nat(writer,nat,sz) + {var len=nat.data.length; + writer.write(32,len); + for(var i=0;i < len;i++)writer.write(32,nat.data[i]); + sz[0] = len * 4; + sz[1] = len * 8} + function caml_memprof_set(_control){return 0} + function ml_z_neg(z1){return ml_z_normalize(bigInt(z1).negate())} + function caml_sys_exit(code) + {if(globalThis.quit)globalThis.quit(code); + if(globalThis.process && globalThis.process.exit) + globalThis.process.exit(code); + caml_invalid_argument("Function 'exit' not implemented")} + function caml_channel_descriptor(chanid) + {var chan=caml_ml_channels[chanid];return chan.fd} + function caml_js_from_array(a){return a.slice(1)} + function caml_ba_reshape(ba,vind) + {vind = caml_js_from_array(vind); + var new_dim=[],num_dims=vind.length; + if(num_dims < 0 || num_dims > 16) + caml_invalid_argument("Bigarray.reshape: bad number of dimensions"); + var num_elts=1; + for(var i=0;i < num_dims;i++) + {new_dim[i] = vind[i]; + if(new_dim[i] < 0) + caml_invalid_argument("Bigarray.reshape: negative dimension"); + num_elts = num_elts * new_dim[i]} + var size=caml_ba_get_size(ba.dims); + if(num_elts != size) + caml_invalid_argument("Bigarray.reshape: size mismatch"); + return caml_ba_create_unsafe(ba.kind,ba.layout,new_dim,ba.data)} + var caml_oo_last_id=0; + function caml_set_oo_id(b){b[2] = caml_oo_last_id++;return b} + function caml_gr_fill_rect(x,y,w,h) + {var s=caml_gr_state_get(); + s.context.fillRect(x,s.height - y,w,- h); + return 0} + function caml_bigstring_blit_string_to_ba(str1,pos1,ba2,pos2,len) + {if(12 != ba2.kind) + caml_invalid_argument + ("caml_bigstring_blit_string_to_ba: kind mismatch"); + if(len == 0)return 0; + var ofs2=ba2.offset(pos2); + if(pos1 + len > caml_ml_string_length(str1))caml_array_bound_error(); + if(ofs2 + len > ba2.data.length)caml_array_bound_error(); + var slice=caml_uint8_array_of_string(str1).slice(pos1,pos1 + len); + ba2.data.set(slice,ofs2); + return 0} + function caml_gr_set_window_title(name) + {var s=caml_gr_state_get(); + s.title = name; + var jsname=caml_jsstring_of_string(name); + if(s.set_title)s.set_title(jsname); + return 0} + function caml_get_global_data(){return caml_global_data} + function caml_int64_shift_right_unsigned(x,s) + {return x.shift_right_unsigned(s)} + function caml_ba_uint8_get16(ba,i0) + {var ofs=ba.offset(i0); + if(ofs + 1 >= ba.data.length)caml_array_bound_error(); + var b1=ba.get(ofs),b2=ba.get(ofs + 1); + return b1 | b2 << 8} + function ml_z_of_int32(i){return i | 0} + function caml_compare(a,b){return caml_compare_val(a,b,true)} var - chan = caml_ml_channels[chanid], - header = new Uint8Array(caml_marshal_header_size); - function block(buffer, offset, n){ - var r = 0; - while(r < n){ - if(chan.buffer_curr >= chan.buffer_max){ - chan.buffer_curr = 0; - chan.buffer_max = 0; - caml_refill(chan); - } - if(chan.buffer_curr >= chan.buffer_max) break; - buffer[offset + r] = chan.buffer[chan.buffer_curr]; - chan.buffer_curr++; - r++; - } - return r; - } - var r = block(header, 0, caml_marshal_header_size); - if(r == 0) - caml_raise_end_of_file(); - else if(r < caml_marshal_header_size) - caml_failwith("input_value: truncated object"); + caml_MD5Transform= + function() + {function add(x,y){return x + y | 0} + function xx(q,a,b,x,s,t) + {a = add(add(a,q),add(x,t));return add(a << s | a >>> 32 - s,b)} + function ff(a,b,c,d,x,s,t){return xx(b & c | ~ b & d,a,b,x,s,t)} + function gg(a,b,c,d,x,s,t){return xx(b & d | c & ~ d,a,b,x,s,t)} + function hh(a,b,c,d,x,s,t){return xx(b ^ c ^ d,a,b,x,s,t)} + function ii(a,b,c,d,x,s,t){return xx(c ^ (b | ~ d),a,b,x,s,t)} + return function(w,buffer) + {var a=w[0],b=w[1],c=w[2],d=w[3]; + a = ff(a,b,c,d,buffer[0],7,0xD76AA478); + d = ff(d,a,b,c,buffer[1],12,0xE8C7B756); + c = ff(c,d,a,b,buffer[2],17,0x242070DB); + b = ff(b,c,d,a,buffer[3],22,0xC1BDCEEE); + a = ff(a,b,c,d,buffer[4],7,0xF57C0FAF); + d = ff(d,a,b,c,buffer[5],12,0x4787C62A); + c = ff(c,d,a,b,buffer[6],17,0xA8304613); + b = ff(b,c,d,a,buffer[7],22,0xFD469501); + a = ff(a,b,c,d,buffer[8],7,0x698098D8); + d = ff(d,a,b,c,buffer[9],12,0x8B44F7AF); + c = ff(c,d,a,b,buffer[10],17,0xFFFF5BB1); + b = ff(b,c,d,a,buffer[11],22,0x895CD7BE); + a = ff(a,b,c,d,buffer[12],7,0x6B901122); + d = ff(d,a,b,c,buffer[13],12,0xFD987193); + c = ff(c,d,a,b,buffer[14],17,0xA679438E); + b = ff(b,c,d,a,buffer[15],22,0x49B40821); + a = gg(a,b,c,d,buffer[1],5,0xF61E2562); + d = gg(d,a,b,c,buffer[6],9,0xC040B340); + c = gg(c,d,a,b,buffer[11],14,0x265E5A51); + b = gg(b,c,d,a,buffer[0],20,0xE9B6C7AA); + a = gg(a,b,c,d,buffer[5],5,0xD62F105D); + d = gg(d,a,b,c,buffer[10],9,0x02441453); + c = gg(c,d,a,b,buffer[15],14,0xD8A1E681); + b = gg(b,c,d,a,buffer[4],20,0xE7D3FBC8); + a = gg(a,b,c,d,buffer[9],5,0x21E1CDE6); + d = gg(d,a,b,c,buffer[14],9,0xC33707D6); + c = gg(c,d,a,b,buffer[3],14,0xF4D50D87); + b = gg(b,c,d,a,buffer[8],20,0x455A14ED); + a = gg(a,b,c,d,buffer[13],5,0xA9E3E905); + d = gg(d,a,b,c,buffer[2],9,0xFCEFA3F8); + c = gg(c,d,a,b,buffer[7],14,0x676F02D9); + b = gg(b,c,d,a,buffer[12],20,0x8D2A4C8A); + a = hh(a,b,c,d,buffer[5],4,0xFFFA3942); + d = hh(d,a,b,c,buffer[8],11,0x8771F681); + c = hh(c,d,a,b,buffer[11],16,0x6D9D6122); + b = hh(b,c,d,a,buffer[14],23,0xFDE5380C); + a = hh(a,b,c,d,buffer[1],4,0xA4BEEA44); + d = hh(d,a,b,c,buffer[4],11,0x4BDECFA9); + c = hh(c,d,a,b,buffer[7],16,0xF6BB4B60); + b = hh(b,c,d,a,buffer[10],23,0xBEBFBC70); + a = hh(a,b,c,d,buffer[13],4,0x289B7EC6); + d = hh(d,a,b,c,buffer[0],11,0xEAA127FA); + c = hh(c,d,a,b,buffer[3],16,0xD4EF3085); + b = hh(b,c,d,a,buffer[6],23,0x04881D05); + a = hh(a,b,c,d,buffer[9],4,0xD9D4D039); + d = hh(d,a,b,c,buffer[12],11,0xE6DB99E5); + c = hh(c,d,a,b,buffer[15],16,0x1FA27CF8); + b = hh(b,c,d,a,buffer[2],23,0xC4AC5665); + a = ii(a,b,c,d,buffer[0],6,0xF4292244); + d = ii(d,a,b,c,buffer[7],10,0x432AFF97); + c = ii(c,d,a,b,buffer[14],15,0xAB9423A7); + b = ii(b,c,d,a,buffer[5],21,0xFC93A039); + a = ii(a,b,c,d,buffer[12],6,0x655B59C3); + d = ii(d,a,b,c,buffer[3],10,0x8F0CCC92); + c = ii(c,d,a,b,buffer[10],15,0xFFEFF47D); + b = ii(b,c,d,a,buffer[1],21,0x85845DD1); + a = ii(a,b,c,d,buffer[8],6,0x6FA87E4F); + d = ii(d,a,b,c,buffer[15],10,0xFE2CE6E0); + c = ii(c,d,a,b,buffer[6],15,0xA3014314); + b = ii(b,c,d,a,buffer[13],21,0x4E0811A1); + a = ii(a,b,c,d,buffer[4],6,0xF7537E82); + d = ii(d,a,b,c,buffer[11],10,0xBD3AF235); + c = ii(c,d,a,b,buffer[2],15,0x2AD7D2BB); + b = ii(b,c,d,a,buffer[9],21,0xEB86D391); + w[0] = add(a,w[0]); + w[1] = add(b,w[1]); + w[2] = add(c,w[2]); + w[3] = add(d,w[3])}} + (); + function caml_MD5Update(ctx,input,input_len) + {var in_buf=ctx.len & 0x3f,input_pos=0; + ctx.len += input_len; + if(in_buf) + {var missing=64 - in_buf; + if(input_len < missing) + {ctx.b8.set(input.subarray(0,input_len),in_buf);return} + ctx.b8.set(input.subarray(0,missing),in_buf); + caml_MD5Transform(ctx.w,ctx.b32); + input_len -= missing; + input_pos += missing} + while(input_len >= 64) + {ctx.b8.set(input.subarray(input_pos,input_pos + 64),0); + caml_MD5Transform(ctx.w,ctx.b32); + input_len -= 64; + input_pos += 64} + if(input_len) + ctx.b8.set(input.subarray(input_pos,input_pos + input_len),0)} + function caml_fresh_oo_id(){return caml_oo_last_id++} + function caml_int64_to_float(x){return x.toFloat()} + function caml_ba_get_1(ba,i0){return ba.get(ba.offset(i0))} + function caml_bigstring_memcmp(s1,pos1,s2,pos2,len) + {for(var i=0;i < len;i++) + {var a=caml_ba_get_1(s1,pos1 + i),b=caml_ba_get_1(s2,pos2 + i); + if(a < b)return - 1; + if(a > b)return 1} + return 0} + function caml_new_string(s){return caml_string_of_jsbytes(s)} + function caml_erf_float(x) + {var + a1=0.254829592, + a2=- 0.284496736, + a3=1.421413741, + a4=- 1.453152027, + a5=1.061405429, + p=0.3275911, + sign=1; + if(x < 0)sign = - 1; + x = Math.abs(x); + var + t=1.0 / (1.0 + p * x), + y= + 1.0 + - + ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) + * + t + * + Math.exp(- (x * x)); + return sign * y} + function caml_ba_uint8_get32(ba,i0) + {var ofs=ba.offset(i0); + if(ofs + 3 >= ba.data.length)caml_array_bound_error(); + var + b1=ba.get(ofs + 0), + b2=ba.get(ofs + 1), + b3=ba.get(ofs + 2), + b4=ba.get(ofs + 3); + return b1 << 0 | b2 << 8 | b3 << 16 | b4 << 24} + function caml_raw_backtrace_length(){return 0} + function ml_z_shift_right(z1,amt) + {return ml_z_normalize(bigInt(z1).shiftRight(amt))} + function caml_str_initialize(unit){return 0} + function caml_obj_block(tag,size) + {var o=new Array(size + 1); + o[0] = tag; + for(var i=1;i <= size;i++)o[i] = 0; + return o} + function caml_gr_clear_graph() + {var s=caml_gr_state_get(); + s.canvas.width = s.width; + s.canvas.height = s.height; + return 0} + function bigstring_to_array_buffer(bs){return bs.data.buffer} + function caml_sys_const_naked_pointers_checked(_unit){return 0} + function lxor_digit_nat(nat1,ofs1,nat2,ofs2) + {nat1.data[ofs1] ^= nat2.data[ofs2];return 0} + function caml_obj_add_offset(v,offset) + {caml_failwith("Obj.add_offset is not supported")} + function caml_final_release(){return 0} + function caml_js_to_array(a) + {var len=a.length,b=new Array(len + 1); + b[0] = 0; + for(var i=0;i < len;i++)b[i + 1] = a[i]; + return b} + function ml_z_logor(z1,z2) + {return ml_z_normalize(bigInt(z1).or(bigInt(z2)))} + function caml_gr_plot(x,y) + {var + s=caml_gr_state_get(), + im=s.context.createImageData(1,1), + d=im.data, + color=s.color; + d[0] = color >> 16 & 0xff; + d[1] = color >> 8 & 0xff,d[2] = color >> 0 & 0xff; + d[3] = 0xFF; + s.x = x; + s.y = y; + s.context.putImageData(im,x,s.height - y); + return 0} + function caml_bytes_set16(s,i,i16) + {if(i >>> 0 >= s.l - 1)caml_bytes_bound_error(); + var b2=0xFF & i16 >> 8,b1=0xFF & i16; + caml_bytes_unsafe_set(s,i + 0,b1); + caml_bytes_unsafe_set(s,i + 1,b2); + return 0} + function caml_string_set16(s,i,i16){return caml_bytes_set16(s,i,i16)} + function caml_bytes_set64(s,i,i64) + {if(i >>> 0 >= s.l - 7)caml_bytes_bound_error(); + var a=caml_int64_to_bytes(i64); + for(var j=0;j < 8;j++)caml_bytes_unsafe_set(s,i + 7 - j,a[j]); + return 0} + function caml_int64_bswap(x) + {var y=caml_int64_to_bytes(x); + return caml_int64_of_bytes([y[7],y[6],y[5],y[4],y[3],y[2],y[1],y[0]])} + function ml_z_fits_int(z1){return z1 == (z1 | 0)?1:0} + function ml_z_fits_int32(z1){return ml_z_fits_int(z1)} + function caml_gc_major(unit) + {if(typeof globalThis.gc == "function")globalThis.gc();return 0} + function ml_z_shift_left(z1,amt) + {return ml_z_normalize(bigInt(z1).shiftLeft(amt))} + function caml_lex_array(s) + {s = caml_jsbytes_of_string(s); + var l=s.length / 2,a=new Array(l); + for(var i=0;i < l;i++) + a[i] + = + (s.charCodeAt(2 * i) | s.charCodeAt(2 * i + 1) << 8) + << + 16 + >> + 16; + return a} + function caml_lex_engine(tbl,start_state,lexbuf) + {var + lex_buffer=2, + lex_buffer_len=3, + lex_start_pos=5, + lex_curr_pos=6, + lex_last_pos=7, + lex_last_action=8, + lex_eof_reached=9, + lex_base=1, + lex_backtrk=2, + lex_default=3, + lex_trans=4, + lex_check=5; + if(! tbl.lex_default) + {tbl.lex_base = caml_lex_array(tbl[lex_base]); + tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); + tbl.lex_check = caml_lex_array(tbl[lex_check]); + tbl.lex_trans = caml_lex_array(tbl[lex_trans]); + tbl.lex_default = caml_lex_array(tbl[lex_default])} + var + c, + state=start_state, + buffer=caml_uint8_array_of_bytes(lexbuf[lex_buffer]); + if(state >= 0) + {lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = - 1} + else + state = - state - 1; + for(;;) + {var base=tbl.lex_base[state]; + if(base < 0)return - base - 1; + var backtrk=tbl.lex_backtrk[state]; + if(backtrk >= 0) + {lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = backtrk} + if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) + if(lexbuf[lex_eof_reached] == 0)return - state - 1;else c = 256; + else + {c = buffer[lexbuf[lex_curr_pos]];lexbuf[lex_curr_pos]++} + if(tbl.lex_check[base + c] == state) + state = tbl.lex_trans[base + c]; + else + state = tbl.lex_default[state]; + if(state < 0) + {lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; + if(lexbuf[lex_last_action] == - 1) + caml_failwith("lexing: empty token"); + else + return lexbuf[lex_last_action]} + else + if(c == 256)lexbuf[lex_eof_reached] = 0}} + function caml_sys_file_exists(name) + {var root=resolve_fs_device(name);return root.device.exists(root.rest)} + function caml_convert_raw_backtrace_slot() + {caml_failwith("caml_convert_raw_backtrace_slot")} + function caml_array_sub(a,i,len) + {var a2=new Array(len + 1); + a2[0] = 0; + for(var i2=1,i1=i + 1;i2 <= len;i2++,i1++)a2[i2] = a[i1]; + return a2} + function caml_bytes_equal(s1,s2) + {if(s1 === s2)return 1; + s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c == s2.c?1:0} + function caml_gr_size_x(){var s=caml_gr_state_get();return s.width} + function caml_ml_debug_info_status(){return 0} + function caml_atomic_fetch_add(ref,i) + {var old=ref[1];ref[1] += i;return old} var - len = caml_marshal_data_size(caml_bytes_of_array(header), 0), - buf = new Uint8Array(len + caml_marshal_header_size); - buf.set(header, 0); - var r = block(buf, caml_marshal_header_size, len); - if(r < len) - caml_failwith("input_value: truncated object " + r + " " + len); - var - offset = [0], - res = caml_input_value_from_bytes(caml_bytes_of_array(buf), offset); - chan.offset = chan.offset + offset[0]; - return res; - } - function caml_input_value_to_outside_heap(c){return caml_input_value(c);} - function caml_atomic_cas(ref, o, n){ - if(ref[1] === o){ref[1] = n; return 1;} - return 0; - } - function caml_copysign_float(x, y){ - if(y == 0) y = 1 / y; - x = Math.abs(x); - return y < 0 ? - x : x; - } - function caml_gr_set_text_size(size){ - var s = caml_gr_state_get(); - s.text_size = size; - s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); - return 0; - } - function caml_atomic_load(ref){return ref[1];} - function caml_MD5Final(ctx){ - var in_buf = ctx.len & 0x3f; - ctx.b8[in_buf] = 0x80; - in_buf++; - if(in_buf > 56){ - for(var j = in_buf; j < 64; j++) ctx.b8[j] = 0; - caml_MD5Transform(ctx.w, ctx.b32); - for(var j = 0; j < 56; j++) ctx.b8[j] = 0; - } - else - for(var j = in_buf; j < 56; j++) ctx.b8[j] = 0; - ctx.b32[14] = ctx.len << 3; - ctx.b32[15] = ctx.len >> 29 & 0x1FFFFFFF; - caml_MD5Transform(ctx.w, ctx.b32); - var t = new Uint8Array(16); - for(var i = 0; i < 4; i++) - for(var j = 0; j < 4; j++) t[i * 4 + j] = ctx.w[i] >> 8 * j & 0xFF; - return t; - } - function caml_md5_bytes(s, ofs, len){ - var ctx = caml_MD5Init(), a = caml_uint8_array_of_bytes(s); - caml_MD5Update(ctx, a.subarray(ofs, ofs + len), len); - return caml_string_of_array(caml_MD5Final(ctx)); - } - function caml_ba_set_generic(ba, i, v){ - ba.set(ba.offset(caml_js_from_array(i)), v); - return 0; - } - function caml_ml_condition_wait(t, mutext){return 0;} - function caml_string_lessequal(s1, s2){return s1 <= s2 ? 1 : 0;} - function caml_string_greaterequal(s1, s2){return caml_string_lessequal(s2, s1); - } - function caml_nextafter_float(x, y){ - if(isNaN(x) || isNaN(y)) return NaN; - if(x == y) return y; - if(x == 0) return y < 0 ? - Math.pow(2, - 1074) : Math.pow(2, - 1074); - var bits = caml_int64_bits_of_float(x), one = caml_int64_of_int32(1); - if(x < y == x > 0) - bits = caml_int64_add(bits, one); - else - bits = caml_int64_sub(bits, one); - return caml_int64_float_of_bits(bits); - } - function caml_gr_size_y(){var s = caml_gr_state_get(); return s.height;} - function ml_z_fac2(i){ - if(i <= 0) caml_invalid_argument("Z.fact2: negative arguments"); - return ml_z_facM(i, 2); - } - function caml_pos_in(chanid){ - var chan = caml_ml_channels[chanid]; - return chan.offset - (chan.buffer_max - chan.buffer_curr) | 0; - } - function caml_ml_pos_in(chanid){return caml_pos_in(chanid);} - function caml_int64_and(x, y){return x.and(y);} - function caml_sys_const_word_size(){return 32;} - function ml_z_bin(n, k){ - var n = bigInt(n), k = bigInt(k), coeff = bigInt(1); - for(var x = n.minus(k).add(bigInt(1)); x.leq(n); x = x.add(bigInt(1))) - coeff = coeff.multiply(x); - for(x = bigInt(1); x.leq(k); x = x.add(bigInt(1))) - coeff = coeff.divide(x); - return ml_z_normalize(coeff); - } - function caml_runtime_events_pause(){return 0;} - function caml_unix_unlink(name){ - var root = resolve_fs_device(name); - if(! root.device.unlink) - caml_failwith("caml_unix_unlink: not implemented"); - return root.device.unlink(root.rest, true); - } - function caml_sys_open_for_node(fd, flags){ - if(flags.name) - try{ - var fs = require("fs"), fd2 = fs.openSync(flags.name, "rs"); - return new MlNodeFd(fd2, flags); - } - catch(e){} - return new MlNodeFd(fd, flags); - } - function MlFakeFd_out(fd, flags){ - MlFakeFile.call(this, caml_create_bytes(0)); - this.log = function(s){return 0;}; - if(fd == 1 && typeof console.log == "function") - this.log = console.log; - else if(fd == 2 && typeof console.error == "function") - this.log = console.error; - else if(typeof console.log == "function") this.log = console.log; - this.flags = flags; - } - MlFakeFd_out.prototype.length = function(){return 0;}; - MlFakeFd_out.prototype.write = - function(offset, buf, pos, len){ - if(this.log){ + os_type= + globalThis.process + && + globalThis.process.platform + && + globalThis.process.platform + == + "win32" + ?"Cygwin" + :"Unix"; + function caml_sys_const_ostype_cygwin(){return os_type == "Cygwin"?1:0} + function caml_cosh_float(x){return Math.cosh(x)} + function MlMutex(){this.locked = false} + function caml_ml_mutex_new(unit){return new MlMutex()} + var caml_ephe_key_offset=3; + function caml_ephe_check_key(x,i) + {var weak=x[caml_ephe_key_offset + i]; + if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) + weak = weak.deref(); + return weak === undefined?0:1} + function caml_hash_mix_final(h) + {h ^= h >>> 16; + h = caml_mul(h,0x85ebca6b | 0); + h ^= h >>> 13; + h = caml_mul(h,0xc2b2ae35 | 0); + h ^= h >>> 16; + return h} + function caml_gr_text_size(txt) + {var + s=caml_gr_state_get(), + w=s.context.measureText(caml_jsstring_of_string(txt)).width; + return [0,w,s.text_size]} + function caml_lex_run_mem(s,i,mem,curr_pos) + {for(;;) + {var dst=s.charCodeAt(i); + i++; + if(dst == 0xff)return; + var src=s.charCodeAt(i); + i++; + if(src == 0xff) + mem[dst + 1] = curr_pos; + else + mem[dst + 1] = mem[src + 1]}} + function caml_lex_run_tag(s,i,mem) + {for(;;) + {var dst=s.charCodeAt(i); + i++; + if(dst == 0xff)return; + var src=s.charCodeAt(i); + i++; + if(src == 0xff)mem[dst + 1] = - 1;else mem[dst + 1] = mem[src + 1]}} + function caml_new_lex_engine(tbl,start_state,lexbuf) + {var + lex_buffer=2, + lex_buffer_len=3, + lex_start_pos=5, + lex_curr_pos=6, + lex_last_pos=7, + lex_last_action=8, + lex_eof_reached=9, + lex_mem=10, + lex_base=1, + lex_backtrk=2, + lex_default=3, + lex_trans=4, + lex_check=5, + lex_base_code=6, + lex_backtrk_code=7, + lex_default_code=8, + lex_trans_code=9, + lex_check_code=10, + lex_code=11; + if(! tbl.lex_default) + {tbl.lex_base = caml_lex_array(tbl[lex_base]); + tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); + tbl.lex_check = caml_lex_array(tbl[lex_check]); + tbl.lex_trans = caml_lex_array(tbl[lex_trans]); + tbl.lex_default = caml_lex_array(tbl[lex_default])} + if(! tbl.lex_default_code) + {tbl.lex_base_code = caml_lex_array(tbl[lex_base_code]); + tbl.lex_backtrk_code = caml_lex_array(tbl[lex_backtrk_code]); + tbl.lex_check_code = caml_lex_array(tbl[lex_check_code]); + tbl.lex_trans_code = caml_lex_array(tbl[lex_trans_code]); + tbl.lex_default_code = caml_lex_array(tbl[lex_default_code])} + if(tbl.lex_code == null) + tbl.lex_code = caml_jsbytes_of_string(tbl[lex_code]); + var + c, + state=start_state, + buffer=caml_uint8_array_of_bytes(lexbuf[lex_buffer]); + if(state >= 0) + {lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = - 1} + else + state = - state - 1; + for(;;) + {var base=tbl.lex_base[state]; + if(base < 0) + {var pc_off=tbl.lex_base_code[state]; + caml_lex_run_tag(tbl.lex_code,pc_off,lexbuf[lex_mem]); + return - base - 1} + var backtrk=tbl.lex_backtrk[state]; + if(backtrk >= 0) + {var pc_off=tbl.lex_backtrk_code[state]; + caml_lex_run_tag(tbl.lex_code,pc_off,lexbuf[lex_mem]); + lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = backtrk} + if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) + if(lexbuf[lex_eof_reached] == 0)return - state - 1;else c = 256; + else + {c = buffer[lexbuf[lex_curr_pos]];lexbuf[lex_curr_pos]++} + var pstate=state; + if(tbl.lex_check[base + c] == state) + state = tbl.lex_trans[base + c]; + else + state = tbl.lex_default[state]; + if(state < 0) + {lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; + if(lexbuf[lex_last_action] == - 1) + caml_failwith("lexing: empty token"); + else + return lexbuf[lex_last_action]} + else + {var base_code=tbl.lex_base_code[pstate],pc_off; + if(tbl.lex_check_code[base_code + c] == pstate) + pc_off = tbl.lex_trans_code[base_code + c]; + else + pc_off = tbl.lex_default_code[pstate]; + if(pc_off > 0) + caml_lex_run_mem + (tbl.lex_code,pc_off,lexbuf[lex_mem],lexbuf[lex_curr_pos]); + if(c == 256)lexbuf[lex_eof_reached] = 0}}} + function caml_ba_uint8_set64(ba,i0,v) + {var ofs=ba.offset(i0); + if(ofs + 7 >= ba.data.length)caml_array_bound_error(); + var v=caml_int64_to_bytes(v); + for(var i=0;i < 8;i++)ba.set(ofs + i,v[7 - i]); + return 0} + function ml_z_popcount(z) + {z = bigInt(z); + var zero=bigInt(0),one=bigInt(1); + if(z.lt(zero))caml_raise_constant(caml_named_value("ml_z_overflow")); + var i; + for(i = 0;! z.equals(zero);i++)z = z.and(z.prev()); + if(i != (i | 0))caml_raise_constant(caml_named_value("ml_z_overflow")); + return i | 0} + function caml_sys_executable_name(a){return caml_executable_name} + function caml_lessequal(x,y){return + (caml_compare_val(x,y,false) <= 0)} + function caml_acosh_float(x){return Math.acosh(x)} + function caml_MD5Init() + {var + buffer=new ArrayBuffer(64), + b32=new Uint32Array(buffer), + b8=new Uint8Array(buffer); + return {len:0, + w:new Uint32Array([0x67452301,0xEFCDAB89,0x98BADCFE,0x10325476]), + b32:b32, + b8:b8}} + function caml_ml_flush(chanid) + {var chan=caml_ml_channels[chanid]; + if(! chan.opened)caml_raise_sys_error("Cannot flush a closed channel"); + if(! chan.buffer || chan.buffer_curr == 0)return 0; + if(chan.output) + chan.output(caml_subarray_to_jsbytes(chan.buffer,0,chan.buffer_curr)); + else + chan.file.write(chan.offset,chan.buffer,0,chan.buffer_curr); + chan.offset += chan.buffer_curr; + chan.buffer_curr = 0; + return 0} + function caml_seek_out(chanid,pos) + {caml_ml_flush(chanid); + var chan=caml_ml_channels[chanid]; + chan.offset = pos; + return 0} + function caml_ml_seek_out_64(chanid,pos) + {var pos=caml_int64_to_float(pos);return caml_seek_out(chanid,pos)} + function compare_nat_real(nat1,nat2) + {return compare_nat(nat1,0,nat1.data.length,nat2,0,nat2.data.length)} + function caml_gc_set(_control){return 0} + function caml_js_get(o,f){return o[f]} + function caml_unix_isatty(fileDescriptor) + {if(fs_node_supported()) + {var tty=require("tty");return tty.isatty(fileDescriptor)?1:0} + else + return 0} + function caml_ml_set_buffered(chanid,v) + {caml_ml_channels[chanid].buffered = v; + if(! v)caml_ml_flush(chanid); + return 0} + function caml_gc_compaction(){return 0} + function caml_ephe_get_key(x,i) + {if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.get_key"); + var weak=x[caml_ephe_key_offset + i]; + if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) + weak = weak.deref(); + return weak === undefined?0:[0,weak]} + function caml_unix_localtime(t) + {var + d=new Date(t * 1000), + d_num=d.getTime(), + januaryfirst=new Date(d.getFullYear(),0,1).getTime(), + doy=Math.floor((d_num - januaryfirst) / 86400000), + jan=new Date(d.getFullYear(),0,1), + jul=new Date(d.getFullYear(),6,1), + stdTimezoneOffset= + Math.max(jan.getTimezoneOffset(),jul.getTimezoneOffset()); + return [0, + d.getSeconds(), + d.getMinutes(), + d.getHours(), + d.getDate(), + d.getMonth(), + d.getFullYear() - 1900, + d.getDay(), + doy, + d.getTimezoneOffset() < stdTimezoneOffset | 0]} + function caml_unix_mktime(tm) + {var + d=new Date(tm[6] + 1900,tm[5],tm[4],tm[3],tm[2],tm[1]).getTime(), + t=Math.floor(d / 1000), + tm2=caml_unix_localtime(t); + return [0,t,tm2]} + function jsoo_z_of_js_string_base(base,s) + {if(base == 0) + {base = 10; + var p=0,sign=1; + if(s[p] == "-"){sign = - 1;p++}else if(s[p] == "+")p++; + if(s[p] == "0") + {p++; + if(s.length == p) + return 0; + else + {var bc=s[p]; + if(bc == "o" || bc == "O") + base = 8; + else + if(bc == "x" || bc == "X") + base = 16; + else + if(bc == "b" || bc == "B")base = 2; + if(base != 10){s = s.substring(p + 1);if(sign == - 1)s = "-" + s}}}} + function digit(code) + {if(code >= 48 && code <= 57)return code - 48; + if(code >= 97 && code <= 102)return code - 97 + 10; + if(code >= 65 && code <= 70)return code - 65 + 10} + var i=0; + if(s[i] == "+")s = s.substring(1);else if(s[i] == "-")i++; + if(s[i] == "_") + caml_invalid_argument("Z.of_substring_base: invalid digit"); + s = s.replace(/_/g,""); + if(s == "-" || s == "")s = "0"; + for(;i < s.length;i++) + {var c=digit(s.charCodeAt(i)); + if(c == undefined || c >= base) + caml_invalid_argument("Z.of_substring_base: invalid digit")} + return ml_z_normalize(bigInt(s,base))} + function ml_z_of_substring_base(base,s,pos,len) + {s = caml_jsbytes_of_string(s); + if(pos != 0 || len != s.length) + {if(s.length - pos < len) + caml_invalid_argument + ("Z.of_substring_base: invalid offset or length"); + s = s.slice(pos,pos + len)} + return jsoo_z_of_js_string_base(base,s)} + function caml_bigstring_blit_bytes_to_ba(str1,pos1,ba2,pos2,len) + {if(12 != ba2.kind) + caml_invalid_argument + ("caml_bigstring_blit_string_to_ba: kind mismatch"); + if(len == 0)return 0; + var ofs2=ba2.offset(pos2); + if(pos1 + len > caml_ml_bytes_length(str1))caml_array_bound_error(); + if(ofs2 + len > ba2.data.length)caml_array_bound_error(); + var slice=caml_uint8_array_of_bytes(str1).slice(pos1,pos1 + len); + ba2.data.set(slice,ofs2); + return 0} + var caml_sys_fds=new Array(3); + function caml_sys_close(fd) + {var file=caml_sys_fds[fd]; + if(file)file.close(); + delete caml_sys_fds[fd]; + return 0} + function caml_ml_close_channel(chanid) + {var chan=caml_ml_channels[chanid]; + chan.opened = false; + caml_sys_close(chan.fd); + return 0} + function caml_exn_with_js_backtrace(exn,force) + {if(! exn.js_error || force || exn[0] == 248) + exn.js_error + = + new (globalThis.Error)("Js exception containing backtrace"); + return exn} + function caml_atomic_exchange(ref,v){var r=ref[1];ref[1] = v;return r} + function caml_sys_isatty(_chan){return 0} + function is_digit_zero(nat,ofs){if(nat.data[ofs] == 0)return 1;return 0} + function caml_unix_lstat(name) + {var root=resolve_fs_device(name); + if(! root.device.lstat) + caml_failwith("caml_unix_lstat: not implemented"); + return root.device.lstat(root.rest,true)} + function caml_unix_lstat_64(name) + {var r=caml_unix_lstat(name);r[9] = caml_int64_of_int32(r[9])} + function caml_js_set(o,f,v){o[f] = v;return 0} + function ml_z_gcdext_intern(z1,z2) + {z1 = bigInt(z1); + z2 = bigInt(z2); + var + gcd=bigInt.gcd(z1,z2), + a=z1, + b=z2, + x=bigInt(0), + lastx=bigInt(1), + y=bigInt(1), + lasty=bigInt(1), + q, + t, + r; + if(z1.equals(bigInt(0)))caml_raise_zero_divide(); + while(! b.equals(bigInt(0))) + {q = a.divide(b); + r = a.subtract(q.multiply(b)); + t = x; + x = lastx.subtract(q.multiply(x)); + lastx = t; + t = y; + y = lasty.subtract(q.multiply(y)); + lasty = t; + a = b; + b = r} + return a.lt(bigInt(0)) + ?[0,ml_z_normalize(a.negate()),ml_z_normalize(lastx.negate()),1] + :[0,ml_z_normalize(a),ml_z_normalize(lastx),1]} + function ml_z_testbit(z,pos) + {z = bigInt(z);return z.shiftRight(pos).and(bigInt(1)).toJSNumber() | 0} + function caml_array_get(array,index) + {if(index < 0 || index >= array.length - 1)caml_array_bound_error(); + return array[index + 1]} + function caml_continuation_use_noexc(cont) + {var stack=cont[1];cont[1] = 0;return stack} + function caml_unix_rmdir(name) + {var root=resolve_fs_device(name); + if(! root.device.rmdir) + caml_failwith("caml_unix_rmdir: not implemented"); + return root.device.rmdir(root.rest,true)} + function caml_log2_float(x){return Math.log2(x)} + function caml_gc_huge_fallback_count(unit){return 0} + function ml_z_congruent(a,b,c) + {var zero=bigInt(0); + a = bigInt(a); + b = bigInt(b); + c = bigInt(c); + if(c.equals(zero) && a.equals(b))return 1; + return a.minus(b).isDivisibleBy(c)?1:0} + function caml_spacetime_only_works_for_native_code() + {caml_failwith("Spacetime profiling only works for native code")} + function caml_int64_sub(x,y){return x.sub(y)} + function caml_seek_in(chanid,pos) + {var chan=caml_ml_channels[chanid]; + if(chan.refill != null)caml_raise_sys_error("Illegal seek"); if - (len > 0 && pos >= 0 && pos + len <= buf.length - && buf[pos + len - 1] == 10) - len--; - var src = caml_create_bytes(len); - caml_blit_bytes(caml_bytes_of_array(buf), pos, src, 0, len); - this.log(src.toUtf16()); - return 0; - } - caml_raise_sys_error(this.fd + ": file descriptor already closed"); - }; - MlFakeFd_out.prototype.read = - function(offset, buf, pos, len){ - caml_raise_sys_error(this.fd + ": file descriptor is write only"); - }; - MlFakeFd_out.prototype.close = function(){this.log = undefined;}; - function caml_sys_open_internal(file, idx){ - if(idx == undefined) idx = caml_sys_fds.length; - caml_sys_fds[idx] = file; - return idx | 0; - } - function caml_sys_open(name, flags, _perms){ - var f = {}; - while(flags){ - switch(flags[1]){ - case 0: - f.rdonly = 1; break; - case 1: - f.wronly = 1; break; - case 2: - f.append = 1; break; - case 3: - f.create = 1; break; - case 4: - f.truncate = 1; break; - case 5: - f.excl = 1; break; - case 6: - f.binary = 1; break; - case 7: - f.text = 1; break; - case 8: - f.nonblock = 1; break; - } - flags = flags[2]; - } - if(f.rdonly && f.wronly) - caml_raise_sys_error - (caml_jsbytes_of_string(name) - + " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (caml_jsbytes_of_string(name) - + " : flags Open_text and Open_binary are not compatible"); - var root = resolve_fs_device(name), file = root.device.open(root.rest, f); - return caml_sys_open_internal(file, undefined); - } - (function(){ - function file(fd, flags){ - return fs_node_supported() - ? caml_sys_open_for_node(fd, flags) - : new MlFakeFd_out(fd, flags); - } - caml_sys_open_internal - (file(0, {rdonly: 1, altname: "/dev/stdin", isCharacterDevice: true}), - 0); - caml_sys_open_internal - (file(1, {buffered: 2, wronly: 1, isCharacterDevice: true}), 1); - caml_sys_open_internal - (file(2, {buffered: 2, wronly: 1, isCharacterDevice: true}), 2); - } - ()); - function ml_z_gcd(z1, z2){ - return ml_z_normalize(bigInt.gcd(bigInt(z1), bigInt(z2)).abs()); - } - function ml_z_hamdist(z1, z2){ - if(bigInt(z1).isNegative() != bigInt(z2).isNegative()) - caml_raise_constant(caml_named_value("ml_z_overflow")); - if - ((z1 != (z1 | 0) || z2 != (z2 | 0)) - && (bigInt(z1).isNegative() || bigInt(z2).isNegative())) - caml_invalid_argument("Z.hamdist: negative arguments"); - return ml_z_popcount(bigInt(z1).xor(bigInt(z2))); - } - function ml_z_mul(z1, z2){ - return ml_z_normalize(bigInt(z1).multiply(bigInt(z2))); - } - function caml_string_get(s, i){ - if(i >>> 0 >= caml_ml_string_length(s)) caml_string_bound_error(); - return caml_string_unsafe_get(s, i); - } - var - re_match = - function(){ - var - re_word_letters = + (pos + >= + chan.offset + - + chan.buffer_max + && + pos + <= + chan.offset + && + chan.file.flags.binary) + chan.buffer_curr = chan.buffer_max - (chan.offset - pos); + else + {chan.offset = pos;chan.buffer_curr = 0;chan.buffer_max = 0} + return 0} + function caml_ml_seek_in_64(chanid,pos) + {var pos=caml_int64_to_float(pos);return caml_seek_in(chanid,pos)} + var caml_domain_id=0; + function caml_ml_mutex_unlock(t){t.locked = false;return 0} + var caml_domain_latest_idx=1; + function caml_domain_spawn(f,mutex) + {var id=caml_domain_latest_idx++,old=caml_domain_id; + caml_domain_id = id; + caml_callback(f,[0]); + caml_domain_id = old; + caml_ml_mutex_unlock(mutex); + return id} + function caml_unix_mkdir(name,perm) + {var root=resolve_fs_device(name); + if(! root.device.mkdir) + caml_failwith("caml_unix_mkdir: not implemented"); + return root.device.mkdir(root.rest,perm,true)} + function caml_int64_shift_left(x,s){return x.shift_left(s)} + function caml_notequal(x,y){return + (caml_compare_val(x,y,false) != 0)} + function ml_z_abs(z1){return ml_z_normalize(bigInt(z1).abs())} + function caml_sys_const_int_size(){return 32} + function caml_js_wrap_callback(f) + {return function() + {var len=arguments.length; + if(len > 0) + {var args=new Array(len); + for(var i=0;i < len;i++)args[i] = arguments[i]} + else + args = [undefined]; + var res=caml_callback(f,args); + return res instanceof Function?caml_js_wrap_callback(res):res}} + function caml_js_wrap_meth_callback(f) + {return function() + {var len=arguments.length,args=new Array(len + 1); + args[0] = this; + for(var i=0;i < len;i++)args[i + 1] = arguments[i]; + var res=caml_callback(f,args); + return res instanceof Function?caml_js_wrap_callback(res):res}} + function caml_is_js(){return 1} + function caml_lazy_update_to_forward(o) + {caml_obj_update_tag(o,244,250);return 0} + function caml_ba_dim(ba,i) + {if(i < 0 || i >= ba.dims.length)caml_invalid_argument("Bigarray.dim"); + return ba.dims[i]} + function caml_ba_dim_1(ba){return caml_ba_dim(ba,0)} + function ml_z_sqrt(z1) + {var z=bigInt(z1),zero=bigInt(0); + if(z.lt(zero)) + caml_invalid_argument("Z.sqrt: square root of a negative number"); + return ml_z_root(z,2)} + function caml_js_meth_call(o,f,args) + {return o[caml_jsstring_of_string(f)].apply(o,caml_js_from_array(args))} + function ml_z_lucnum(i) + {if(i < 0)caml_invalid_argument("Z.lucnum: negative arguments"); + if(i == 0)return 2; + if(i == 1)return 1; + var a=bigInt(2),b=bigInt(1); + for(var k=1;k < i;k++){var b2=b;b = a.add(b);a = b2} + return ml_z_normalize(b)} + var caml_ephe_data_offset=2; + function caml_weak_create(n) + {if(n < 0)caml_invalid_argument("Weak.create"); + var x=[251,"caml_ephe_list_head"]; + x.length = caml_ephe_key_offset + n; + return x} + function caml_ephe_create(n){var x=caml_weak_create(n);return x} + function caml_js_to_byte_string(s){return caml_string_of_jsbytes(s)} + function ml_z_probab_prime(z,i){return bigInt(z).isProbablePrime(i)?1:0} + function caml_trampoline(res) + {var c=1; + while(res && res.joo_tramp) + {res = res.joo_tramp.apply(null,res.joo_args);c++} + return res} + function caml_maybe_print_stats(unit){return 0} + function caml_bytes_get64(s,i) + {if(i >>> 0 >= s.l - 7)caml_bytes_bound_error(); + var a=new Array(8); + for(var j=0;j < 8;j++)a[7 - j] = caml_bytes_unsafe_get(s,i + j); + return caml_int64_of_bytes(a)} + function caml_unix_has_symlink(unit){return fs_node_supported()?1:0} + function ml_z_rem(z1,z2) + {z2 = bigInt(z2); + if(z2.equals(bigInt(0)))caml_raise_zero_divide(); + return ml_z_normalize(bigInt(z1).mod(z2))} + function caml_ephe_set_key(x,i,v) + {if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.set"); + if(v instanceof Object && globalThis.WeakRef) + {if(x[1].register)x[1].register(v,undefined,v); + x[caml_ephe_key_offset + i] = new (globalThis.WeakRef)(v)} + else + x[caml_ephe_key_offset + i] = v; + return 0} + function caml_ephe_unset_key(x,i) + {if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.set"); + if + (globalThis.WeakRef + && + x[caml_ephe_key_offset + i] instanceof globalThis.WeakRef + && + x[1].unregister) + {var old=x[caml_ephe_key_offset + i].deref(); + if(old !== undefined) + {var count=0; + for(var j=caml_ephe_key_offset;j < x.length;j++) + {var key=x[j]; + if(key instanceof globalThis.WeakRef) + {key = key.deref();if(key === old)count++}} + if(count == 1)x[1].unregister(old)}} + x[caml_ephe_key_offset + i] = undefined; + return 0} + function caml_weak_set(x,i,v) + {if(v == 0)caml_ephe_unset_key(x,i);else caml_ephe_set_key(x,i,v[1]); + return 0} + function caml_sys_remove(name) + {var root=resolve_fs_device(name),ok=root.device.unlink(root.rest); + if(ok == 0)caml_raise_no_such_file(caml_jsbytes_of_string(name)); + return 0} + function caml_string_bound_error() + {caml_invalid_argument("index out of bounds")} + function caml_string_get32(s,i) + {if(i >>> 0 >= caml_ml_string_length(s) - 3)caml_string_bound_error(); + var + b1=caml_string_unsafe_get(s,i), + b2=caml_string_unsafe_get(s,i + 1), + b3=caml_string_unsafe_get(s,i + 2), + b4=caml_string_unsafe_get(s,i + 3); + return b4 << 24 | b3 << 16 | b2 << 8 | b1} + function caml_bytes_get(s,i) + {if(i >>> 0 >= s.l)caml_bytes_bound_error(); + return caml_bytes_unsafe_get(s,i)} + function caml_hypot_float(x,y){return Math.hypot(x,y)} + function ml_z_facM(i,m) + {if(i <= 0 || m <= 0) + caml_invalid_argument("Z.factM: negative arguments"); + m = bigInt(m); + var current=bigInt(i),res=bigInt(1); + while(current.isPositive()) + {res = res.multiply(current);current = current.minus(m)} + return ml_z_normalize(res)} + function caml_js_call(f,o,args) + {return f.apply(o,caml_js_from_array(args))} + function caml_sys_const_max_wosize(){return 0x7FFFFFFF / 4 | 0} + function caml_unix_inet_addr_of_string(){return 0} + function ml_z_mul_overflows(x,y){var z=x * y;return z != (z | 0)} + function ml_z_to_int(z1) + {if(z1 == (z1 | 0))return z1 | 0; + caml_raise_constant(caml_named_value("ml_z_overflow"))} + function caml_hash_mix_bytes_arr(h,s) + {var len=s.length,i,w; + for(i = 0;i + 4 <= len;i += 4) + {w = s[i] | s[i + 1] << 8 | s[i + 2] << 16 | s[i + 3] << 24; + h = caml_hash_mix_int(h,w)} + w = 0; + switch(len & 3) + {case 3:w = s[i + 2] << 16; + case 2:w |= s[i + 1] << 8; + case 1:w |= s[i];h = caml_hash_mix_int(h,w) + } + h ^= len; + return h} + function caml_hash_mix_jsbytes(h,s) + {var len=s.length,i,w; + for(i = 0;i + 4 <= len;i += 4) + {w + = + s.charCodeAt(i) + | + s.charCodeAt(i + 1) + << + 8 + | + s.charCodeAt(i + 2) + << + 16 + | + s.charCodeAt(i + 3) + << + 24; + h = caml_hash_mix_int(h,w)} + w = 0; + switch(len & 3) + {case 3:w = s.charCodeAt(i + 2) << 16; + case 2:w |= s.charCodeAt(i + 1) << 8; + case 1:w |= s.charCodeAt(i);h = caml_hash_mix_int(h,w) + } + h ^= len; + return h} + function caml_ml_bytes_content(s) + {switch(s.t & 6) + {default:caml_convert_string_to_bytes(s);case 0:return s.c; + case 4:return s.c + }} + function caml_hash_mix_bytes(h,v) + {var content=caml_ml_bytes_content(v); + return typeof content === "string" + ?caml_hash_mix_jsbytes(h,content) + :caml_hash_mix_bytes_arr(h,content)} + function caml_bytes_lessthan(s1,s2) + {s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c < s2.c?1:0} + function caml_erfc_float(x){return 1 - caml_erf_float(x)} + function caml_gr_fill_poly(ar) + {var s=caml_gr_state_get(); + s.context.beginPath(); + s.context.moveTo(ar[1][1],s.height - ar[1][2]); + for(var i=2;i < ar.length;i++) + s.context.lineTo(ar[i][1],s.height - ar[i][2]); + s.context.lineTo(ar[1][1],s.height - ar[1][2]); + s.context.fill(); + return 0} + function caml_gc_quick_stat(){return [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} + function ml_z_fac(i) + {if(i <= 0)caml_invalid_argument("Z.fact: negative arguments"); + return ml_z_facM(i,1)} + function caml_ml_input_char(chanid) + {var chan=caml_ml_channels[chanid]; + if(chan.buffer_curr >= chan.buffer_max) + {chan.buffer_curr = 0;chan.buffer_max = 0;caml_refill(chan)} + if(chan.buffer_curr >= chan.buffer_max)caml_raise_end_of_file(); + var res=chan.buffer[chan.buffer_curr]; + chan.buffer_curr++; + return res} + function caml_ml_input_int(chanid) + {var chan=caml_ml_channels[chanid],res=0; + for(var i=0;i < 4;i++)res = (res << 8) + caml_ml_input_char(chanid); + return res} + function caml_gr_display_mode() + {caml_failwith("caml_gr_display_mode not Implemented")} + function ml_z_divisible(a,b) + {var zero=bigInt(0); + a = bigInt(a); + b = bigInt(b); + if(a.equals(zero) && b.equals(zero))return 1; + return a.isDivisibleBy(b)?1:0} + function caml_obj_reachable_words(o){return 0} + function nth_digit_nat(nat,ofs){return nat.data[ofs]} + function caml_array_blit(a1,i1,a2,i2,len) + {if(i2 <= i1) + for(var j=1;j <= len;j++)a2[i2 + j] = a1[i1 + j]; + else + for(var j=len;j >= 1;j--)a2[i2 + j] = a1[i1 + j]; + return 0} + function caml_float_of_string(s) + {var res; + s = caml_jsbytes_of_string(s); + res = + s; + if(s.length > 0 && res === res)return res; + s = s.replace(/_/g,""); + res = + s; + if(s.length > 0 && res === res || /^[+-]?nan$/i.test(s))return res; + var m=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(s); + if(m) + {var + m3=m[3].replace(/0+$/,""), + mantissa=parseInt(m[1] + m[2] + m3,16), + exponent=(m[5] | 0) - 4 * m3.length; + res = mantissa * Math.pow(2,exponent); + return res} + if(/^\+?inf(inity)?$/i.test(s))return Infinity; + if(/^-inf(inity)?$/i.test(s))return - Infinity; + caml_failwith("float_of_string")} + function caml_sys_getcwd() + {return caml_string_of_jsbytes(caml_current_dir)} + function caml_int64_add(x,y){return x.add(y)} + function caml_int64_mul(x,y){return x.mul(y)} + function caml_int64_ult(x,y){return x.ucompare(y) < 0} + function caml_parse_sign_and_base(s) + {var i=0,len=caml_ml_string_length(s),base=10,sign=1; + if(len > 0) + switch(caml_string_unsafe_get(s,i)) + {case 45:i++;sign = - 1;break;case 43:i++;sign = 1;break} + if(i + 1 < len && caml_string_unsafe_get(s,i) == 48) + switch(caml_string_unsafe_get(s,i + 1)) + {case 120: + case 88:base = 16;i += 2;break; + case 111: + case 79:base = 8;i += 2;break; + case 98: + case 66:base = 2;i += 2;break; + case 117: + case 85:i += 2;break + } + return [i,sign,base]} + function caml_parse_digit(c) + {if(c >= 48 && c <= 57)return c - 48; + if(c >= 65 && c <= 90)return c - 55; + if(c >= 97 && c <= 122)return c - 87; + return - 1} + function caml_int64_of_string(s) + {var + r=caml_parse_sign_and_base(s), + i=r[0], + sign=r[1], + base=r[2], + base64=caml_int64_of_int32(base), + threshold= + new MlInt64(0xffffff,0xfffffff,0xffff).udivmod(base64).quotient, + c=caml_string_unsafe_get(s,i), + d=caml_parse_digit(c); + if(d < 0 || d >= base)caml_failwith("int_of_string"); + var res=caml_int64_of_int32(d); + for(;;) + {i++; + c = caml_string_unsafe_get(s,i); + if(c == 95)continue; + d = caml_parse_digit(c); + if(d < 0 || d >= base)break; + if(caml_int64_ult(threshold,res))caml_failwith("int_of_string"); + d = caml_int64_of_int32(d); + res = caml_int64_add(caml_int64_mul(base64,res),d); + if(caml_int64_ult(res,d))caml_failwith("int_of_string")} + if(i != caml_ml_string_length(s))caml_failwith("int_of_string"); + if(base == 10 && caml_int64_ult(new MlInt64(0,0,0x8000),res)) + caml_failwith("int_of_string"); + if(sign < 0)res = caml_int64_neg(res); + return res} + function caml_ba_set_1(ba,i0,v){ba.set(ba.offset(i0),v);return 0} + function caml_int64_xor(x,y){return x.xor(y)} + function caml_int64_or(x,y){return x.or(y)} + function caml_lxm_next(v) + {function shift_l(x,k){return caml_int64_shift_left(x,k)} + function shift_r(x,k){return caml_int64_shift_right_unsigned(x,k)} + function or(a,b){return caml_int64_or(a,b)} + function xor(a,b){return caml_int64_xor(a,b)} + function add(a,b){return caml_int64_add(a,b)} + function mul(a,b){return caml_int64_mul(a,b)} + function rotl(x,k){return or(shift_l(x,k),shift_r(x,64 - k))} + function get(a,i){return caml_ba_get_1(a,i)} + function set(a,i,x){return caml_ba_set_1(a,i,x)} + var + M=caml_int64_of_string(caml_new_string("0xd1342543de82ef95")), + daba=caml_int64_of_string(caml_new_string("0xdaba0b6eb09322e3")), + z, + q0, + q1, + st=v, + a=get(st,0), + s=get(st,1), + x0=get(st,2), + x1=get(st,3); + z = add(s,x0); + z = mul(xor(z,shift_r(z,32)),daba); + z = mul(xor(z,shift_r(z,32)),daba); + z = xor(z,shift_r(z,32)); + set(st,1,add(mul(s,M),a)); + var q0=x0,q1=x1; + q1 = xor(q1,q0); + q0 = rotl(q0,24); + q0 = xor(xor(q0,q1),shift_l(q1,16)); + q1 = rotl(q1,37); + set(st,2,q0); + set(st,3,q1); + return z} + function caml_sys_const_big_endian(){return 0} + function caml_list_to_js_array(l) + {var a=[];for(;l !== 0;l = l[2])a.push(l[1]);return a} + var + caml_legacy_custom_code=false, + caml_output_val= + function() + {function Writer(){this.chunk = []} + Writer.prototype + = + {chunk_idx:20, + block_len:0, + obj_counter:0, + size_32:0, + size_64:0, + write: + function(size,value) + {for(var i=size - 8;i >= 0;i -= 8) + this.chunk[this.chunk_idx++] = value >> i & 0xFF}, + write_at: + function(pos,size,value) + {var pos=pos; + for(var i=size - 8;i >= 0;i -= 8) + this.chunk[pos++] = value >> i & 0xFF}, + write_code: + function(size,code,value) + {this.chunk[this.chunk_idx++] = code; + for(var i=size - 8;i >= 0;i -= 8) + this.chunk[this.chunk_idx++] = value >> i & 0xFF}, + write_shared: + function(offset) + {if(offset < 1 << 8) + this.write_code(8,0x04,offset); + else + if(offset < 1 << 16) + this.write_code(16,0x05,offset); + else + this.write_code(32,0x06,offset)}, + pos:function(){return this.chunk_idx}, + finalize: + function() + {this.block_len = this.chunk_idx - 20; + this.chunk_idx = 0; + this.write(32,0x8495A6BE); + this.write(32,this.block_len); + this.write(32,this.obj_counter); + this.write(32,this.size_32); + this.write(32,this.size_64); + return this.chunk}}; + return function(v,flags) + {flags = caml_list_to_js_array(flags); + var + no_sharing=flags.indexOf(0) !== - 1, + closures=flags.indexOf(1) !== - 1; + if(closures) + console.warn + ("in caml_output_val: flag Marshal.Closures is not supported."); + var + writer=new Writer(), + stack=[], + intern_obj_table=no_sharing?null:new MlObjectTable(); + function memo(v) + {if(no_sharing)return false; + var existing_offset=intern_obj_table.recall(v); + if(existing_offset) + {writer.write_shared(existing_offset);return true} + else + {intern_obj_table.store(v);return false}} + function extern_rec(v) + {if(v.caml_custom) + {if(memo(v))return; + var + name=v.caml_custom, + ops=caml_custom_ops[name], + sz_32_64=[0,0]; + if(! ops.serialize) + caml_invalid_argument("output_value: abstract value (Custom)"); + if(caml_legacy_custom_code) + {writer.write(8,0x12); + for(var i=0;i < name.length;i++) + writer.write(8,name.charCodeAt(i)); + writer.write(8,0); + ops.serialize(writer,v,sz_32_64)} + else + if(ops.fixed_length == undefined) + {writer.write(8,0x18); + for(var i=0;i < name.length;i++) + writer.write(8,name.charCodeAt(i)); + writer.write(8,0); + var header_pos=writer.pos(); + for(var i=0;i < 12;i++)writer.write(8,0); + ops.serialize(writer,v,sz_32_64); + writer.write_at(header_pos,32,sz_32_64[0]); + writer.write_at(header_pos + 4,32,0); + writer.write_at(header_pos + 8,32,sz_32_64[1])} + else + {writer.write(8,0x19); + for(var i=0;i < name.length;i++) + writer.write(8,name.charCodeAt(i)); + writer.write(8,0); + var old_pos=writer.pos(); + ops.serialize(writer,v,sz_32_64); + if(ops.fixed_length != writer.pos() - old_pos) + caml_failwith + ("output_value: incorrect fixed sizes specified by " + name)} + writer.size_32 += 2 + (sz_32_64[0] + 3 >> 2); + writer.size_64 += 2 + (sz_32_64[1] + 7 >> 3)} + else + if(v instanceof Array && v[0] === (v[0] | 0)) + {if(v[0] == 251) + caml_failwith("output_value: abstract value (Abstract)"); + if(caml_is_continuation_tag(v[0])) + caml_invalid_argument("output_value: continuation value"); + if(v.length > 1 && memo(v))return; + if(v[0] < 16 && v.length - 1 < 8) + writer.write(8,0x80 + v[0] + (v.length - 1 << 4)); + else + writer.write_code(32,0x08,v.length - 1 << 10 | v[0]); + writer.size_32 += v.length; + writer.size_64 += v.length; + if(v.length > 1)stack.push(v,1)} + else + if(caml_is_ml_bytes(v)) + {if(! caml_is_ml_bytes(caml_string_of_jsbytes(""))) + caml_failwith + ("output_value: [Bytes.t] cannot safely be marshaled with [--enable use-js-string]"); + if(memo(v))return; + var len=caml_ml_bytes_length(v); + if(len < 0x20) + writer.write(8,0x20 + len); + else + if(len < 0x100) + writer.write_code(8,0x09,len); + else + writer.write_code(32,0x0A,len); + for(var i=0;i < len;i++) + writer.write(8,caml_bytes_unsafe_get(v,i)); + writer.size_32 += 1 + ((len + 4) / 4 | 0); + writer.size_64 += 1 + ((len + 8) / 8 | 0)} + else + if(caml_is_ml_string(v)) + {var len=caml_ml_string_length(v); + if(len < 0x20) + writer.write(8,0x20 + len); + else + if(len < 0x100) + writer.write_code(8,0x09,len); + else + writer.write_code(32,0x0A,len); + for(var i=0;i < len;i++) + writer.write(8,caml_string_unsafe_get(v,i)); + writer.size_32 += 1 + ((len + 4) / 4 | 0); + writer.size_64 += 1 + ((len + 8) / 8 | 0)} + else + if(v != (v | 0)) + {var type_of_v=typeof v; + caml_failwith + ("output_value: abstract value (" + type_of_v + ")")} + else + if(v >= 0 && v < 0x40) + writer.write(8,0X40 + v); + else + if(v >= - (1 << 7) && v < 1 << 7) + writer.write_code(8,0x00,v); + else + if(v >= - (1 << 15) && v < 1 << 15) + writer.write_code(16,0x01,v); + else + writer.write_code(32,0x02,v)} + extern_rec(v); + while(stack.length > 0) + {var i=stack.pop(),v=stack.pop(); + if(i + 1 < v.length)stack.push(v,i + 1); + extern_rec(v[i])} + if(intern_obj_table) + writer.obj_counter = intern_obj_table.objs.length; + writer.finalize(); + return writer.chunk}} + (); + function caml_string_of_array(a) + {return caml_string_of_jsbytes(caml_subarray_to_jsbytes(a,0,a.length))} + function caml_output_value_to_string(v,flags) + {return caml_string_of_array(caml_output_val(v,flags))} + function caml_raise_not_a_dir(name) + {caml_raise_sys_error(name + ": Not a directory")} + function caml_sys_system_command(cmd) + {var cmd=caml_jsstring_of_string(cmd); + if(typeof require != "undefined") + {var child_process=require("child_process"); + if(child_process && child_process.execSync) + try + {child_process.execSync(cmd,{stdio:"inherit"});return 0} + catch(e){return 1}} + else + return 127} + function caml_js_error_of_exception(exn) + {if(exn.js_error)return exn.js_error;return null} + function caml_unix_getuid(unit) + {if(globalThis.process && globalThis.process.getuid) + return globalThis.process.getuid(); + caml_raise_not_found()} + function deserialize_nat(reader,sz) + {var len=reader.read32s(),nat=new MlNat(len); + for(var i=0;i < len;i++)nat.data[i] = reader.read32s(); + sz[0] = len * 4; + return nat} + function initialize_nat() + {caml_custom_ops["_nat"] + = + {deserialize:deserialize_nat,serialize:serialize_nat,hash:caml_hash_nat}} + function ml_z_succ(z1){return ml_z_normalize(bigInt(z1).next())} + function caml_gr_open_subwindow(a,b,c,d) + {caml_failwith("caml_gr_open_subwindow not Implemented")} + function caml_marshal_data_size(s,ofs) + {function get32(s,i) + {return caml_bytes_unsafe_get(s,i) + << + 24 + | + caml_bytes_unsafe_get(s,i + 1) + << + 16 + | + caml_bytes_unsafe_get(s,i + 2) + << + 8 + | + caml_bytes_unsafe_get(s,i + 3)} + if(get32(s,ofs) != (0x8495A6BE | 0)) + caml_failwith("Marshal.data_size: bad object"); + return get32(s,ofs + 4)} + function MlStringReader(s,i) + {this.s = caml_jsbytes_of_string(s);this.i = i} + MlStringReader.prototype + = + {read8u:function(){return this.s.charCodeAt(this.i++)}, + read8s:function(){return this.s.charCodeAt(this.i++) << 24 >> 24}, + read16u: + function() + {var s=this.s,i=this.i; + this.i = i + 2; + return s.charCodeAt(i) << 8 | s.charCodeAt(i + 1)}, + read16s: + function() + {var s=this.s,i=this.i; + this.i = i + 2; + return s.charCodeAt(i) << 24 >> 16 | s.charCodeAt(i + 1)}, + read32u: + function() + {var s=this.s,i=this.i; + this.i = i + 4; + return (s.charCodeAt(i) + << + 24 + | + s.charCodeAt(i + 1) + << + 16 + | + s.charCodeAt(i + 2) + << + 8 + | + s.charCodeAt(i + 3)) + >>> + 0}, + read32s: + function() + {var s=this.s,i=this.i; + this.i = i + 4; + return s.charCodeAt(i) + << + 24 + | + s.charCodeAt(i + 1) + << + 16 + | + s.charCodeAt(i + 2) + << + 8 + | + s.charCodeAt(i + 3)}, + readstr: + function(len) + {var i=this.i; + this.i = i + len; + return caml_string_of_jsbytes(this.s.substring(i,i + len))}}; + function caml_float_of_bytes(a) + {return caml_int64_float_of_bits(caml_int64_of_bytes(a))} + function caml_input_value_from_reader(reader,ofs) + {var + _magic=reader.read32u(), + _block_len=reader.read32u(), + num_objects=reader.read32u(), + _size_32=reader.read32u(), + _size_64=reader.read32u(), + stack=[], + intern_obj_table=num_objects > 0?[]:null, + obj_counter=0; + function intern_rec() + {var code=reader.read8u(); + if(code >= 0x40) + if(code >= 0x80) + {var tag=code & 0xF,size=code >> 4 & 0x7,v=[tag]; + if(size == 0)return v; + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + stack.push(v,size); + return v} + else + return code & 0x3F; + else + if(code >= 0x20) + {var len=code & 0x1F,v=reader.readstr(len); + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + return v} + else + switch(code) + {case 0x00:return reader.read8s(); + case 0x01:return reader.read16s(); + case 0x02:return reader.read32s(); + case 0x03:caml_failwith("input_value: integer too large");break; + case 0x04: + var offset=reader.read8u(); + return intern_obj_table[obj_counter - offset]; + case 0x05: + var offset=reader.read16u(); + return intern_obj_table[obj_counter - offset]; + case 0x06: + var offset=reader.read32u(); + return intern_obj_table[obj_counter - offset]; + case 0x08: + var + header=reader.read32u(), + tag=header & 0xFF, + size=header >> 10, + v=[tag]; + if(size == 0)return v; + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + stack.push(v,size); + return v; + case 0x13: + caml_failwith("input_value: data block too large");break; + case 0x09: + var len=reader.read8u(),v=reader.readstr(len); + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + return v; + case 0x0A: + var len=reader.read32u(),v=reader.readstr(len); + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + return v; + case 0x0C: + var t=new Array(8); + for(var i=0;i < 8;i++)t[7 - i] = reader.read8u(); + var v=caml_float_of_bytes(t); + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + return v; + case 0x0B: + var t=new Array(8); + for(var i=0;i < 8;i++)t[i] = reader.read8u(); + var v=caml_float_of_bytes(t); + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + return v; + case 0x0E: + var len=reader.read8u(),v=new Array(len + 1); + v[0] = 254; + var t=new Array(8); + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + for(var i=1;i <= len;i++) + {for(var j=0;j < 8;j++)t[7 - j] = reader.read8u(); + v[i] = caml_float_of_bytes(t)} + return v; + case 0x0D: + var len=reader.read8u(),v=new Array(len + 1); + v[0] = 254; + var t=new Array(8); + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + for(var i=1;i <= len;i++) + {for(var j=0;j < 8;j++)t[j] = reader.read8u(); + v[i] = caml_float_of_bytes(t)} + return v; + case 0x07: + var len=reader.read32u(),v=new Array(len + 1); + v[0] = 254; + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + var t=new Array(8); + for(var i=1;i <= len;i++) + {for(var j=0;j < 8;j++)t[7 - j] = reader.read8u(); + v[i] = caml_float_of_bytes(t)} + return v; + case 0x0F: + var len=reader.read32u(),v=new Array(len + 1); + v[0] = 254; + var t=new Array(8); + for(var i=1;i <= len;i++) + {for(var j=0;j < 8;j++)t[j] = reader.read8u(); + v[i] = caml_float_of_bytes(t)} + return v; + case 0x10: + case 0x11:caml_failwith("input_value: code pointer");break; + case 0x12: + case 0x18: + case 0x19: + var c,s=""; + while((c = reader.read8u()) != 0)s += String.fromCharCode(c); + var ops=caml_custom_ops[s],expected_size; + if(! ops) + caml_failwith("input_value: unknown custom block identifier"); + switch(code) + {case 0x12:break; + case 0x19: + if(! ops.fixed_length) + caml_failwith + ("input_value: expected a fixed-size custom block"); + expected_size = ops.fixed_length; + break; + case 0x18: + expected_size = reader.read32u(); + reader.read32s(); + reader.read32s(); + break + } + var old_pos=reader.i,size=[0],v=ops.deserialize(reader,size); + if(expected_size != undefined) + if(expected_size != size[0]) + caml_failwith + ("input_value: incorrect length of serialized custom block"); + if(intern_obj_table)intern_obj_table[obj_counter++] = v; + return v; + default:caml_failwith("input_value: ill-formed message")}} + var res=intern_rec(); + while(stack.length > 0) + {var size=stack.pop(),v=stack.pop(),d=v.length; + if(d < size)stack.push(v,size); + v[d] = intern_rec()} + if(typeof ofs != "number")ofs[0] = reader.i; + return res} + function caml_string_of_bytes(s){return s} + function caml_input_value_from_bytes(s,ofs) + {var + reader= + new + MlStringReader + (caml_string_of_bytes(s),typeof ofs == "number"?ofs:ofs[0]); + return caml_input_value_from_reader(reader,ofs)} + function caml_input_value(chanid) + {var chan=caml_ml_channels[chanid],header=new Uint8Array(20); + function block(buffer,offset,n) + {var r=0; + while(r < n) + {if(chan.buffer_curr >= chan.buffer_max) + {chan.buffer_curr = 0;chan.buffer_max = 0;caml_refill(chan)} + if(chan.buffer_curr >= chan.buffer_max)break; + buffer[offset + r] = chan.buffer[chan.buffer_curr]; + chan.buffer_curr++; + r++} + return r} + var r=block(header,0,20); + if(r == 0) + caml_raise_end_of_file(); + else + if(r < 20)caml_failwith("input_value: truncated object"); + var + len=caml_marshal_data_size(caml_bytes_of_array(header),0), + buf=new Uint8Array(len + 20); + buf.set(header,0); + var r=block(buf,20,len); + if(r < len) + caml_failwith("input_value: truncated object " + r + " " + len); + var + offset=[0], + res=caml_input_value_from_bytes(caml_bytes_of_array(buf),offset); + chan.offset = chan.offset + offset[0]; + return res} + function caml_input_value_to_outside_heap(c){return caml_input_value(c)} + function caml_atomic_cas(ref,o,n) + {if(ref[1] === o){ref[1] = n;return 1}return 0} + function caml_copysign_float(x,y) + {if(y == 0)y = 1 / y;x = Math.abs(x);return y < 0?- x:x} + function caml_gr_set_text_size(size) + {var s=caml_gr_state_get(); + s.text_size = size; + s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); + return 0} + function caml_atomic_load(ref){return ref[1]} + function caml_MD5Final(ctx) + {var in_buf=ctx.len & 0x3f; + ctx.b8[in_buf] = 0x80; + in_buf++; + if(in_buf > 56) + {for(var j=in_buf;j < 64;j++)ctx.b8[j] = 0; + caml_MD5Transform(ctx.w,ctx.b32); + for(var j=0;j < 56;j++)ctx.b8[j] = 0} + else + for(var j=in_buf;j < 56;j++)ctx.b8[j] = 0; + ctx.b32[14] = ctx.len << 3; + ctx.b32[15] = ctx.len >> 29 & 0x1FFFFFFF; + caml_MD5Transform(ctx.w,ctx.b32); + var t=new Uint8Array(16); + for(var i=0;i < 4;i++) + for(var j=0;j < 4;j++)t[i * 4 + j] = ctx.w[i] >> 8 * j & 0xFF; + return t} + function caml_md5_bytes(s,ofs,len) + {var ctx=caml_MD5Init(),a=caml_uint8_array_of_bytes(s); + caml_MD5Update(ctx,a.subarray(ofs,ofs + len),len); + return caml_string_of_array(caml_MD5Final(ctx))} + function caml_ba_set_generic(ba,i,v) + {ba.set(ba.offset(caml_js_from_array(i)),v);return 0} + function caml_ml_condition_wait(t,mutext){return 0} + function caml_bytes_lessequal(s1,s2) + {s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c <= s2.c?1:0} + function caml_string_lessequal(s1,s2){return caml_bytes_lessequal(s1,s2)} + function caml_string_greaterequal(s1,s2) + {return caml_string_lessequal(s2,s1)} + function caml_nextafter_float(x,y) + {if(isNaN(x) || isNaN(y))return NaN; + if(x == y)return y; + if(x == 0)return y < 0?- Math.pow(2,- 1074):Math.pow(2,- 1074); + var bits=caml_int64_bits_of_float(x),one=caml_int64_of_int32(1); + if(x < y == x > 0) + bits = caml_int64_add(bits,one); + else + bits = caml_int64_sub(bits,one); + return caml_int64_float_of_bits(bits)} + function caml_gr_size_y(){var s=caml_gr_state_get();return s.height} + function ml_z_fac2(i) + {if(i <= 0)caml_invalid_argument("Z.fact2: negative arguments"); + return ml_z_facM(i,2)} + function caml_pos_in(chanid) + {var chan=caml_ml_channels[chanid]; + return chan.offset - (chan.buffer_max - chan.buffer_curr)} + function caml_ml_pos_in(chanid){return caml_pos_in(chanid)} + function caml_int64_and(x,y){return x.and(y)} + function caml_sys_const_word_size(){return 32} + function ml_z_bin(n,k) + {var n=bigInt(n),k=bigInt(k),coeff=bigInt(1); + for(var x=n.minus(k).add(bigInt(1));x.leq(n);x = x.add(bigInt(1))) + coeff = coeff.multiply(x); + for(x = bigInt(1);x.leq(k);x = x.add(bigInt(1)))coeff = coeff.divide(x); + return ml_z_normalize(coeff)} + function caml_unix_unlink(name) + {var root=resolve_fs_device(name); + if(! root.device.unlink) + caml_failwith("caml_unix_unlink: not implemented"); + return root.device.unlink(root.rest,true)} + function caml_sys_open_for_node(fd,flags) + {if(flags.name) + try + {var fs=require("fs"),fd2=fs.openSync(flags.name,"rs"); + return new MlNodeFd(fd2,flags)} + catch(e){} + return new MlNodeFd(fd,flags)} + function MlFakeFd_out(fd,flags) + {MlFakeFile.call(this,caml_create_bytes(0)); + this.log = function(s){return 0}; + if(fd == 1 && typeof console.log == "function") + this.log = console.log; + else + if(fd == 2 && typeof console.error == "function") + this.log = console.error; + else + if(typeof console.log == "function")this.log = console.log; + this.flags = flags} + MlFakeFd_out.prototype.length = function(){return 0}; + MlFakeFd_out.prototype.write + = + function(offset,buf,pos,len) + {if(this.log) + {if + (len + > + 0 + && + pos + >= + 0 + && + pos + + + len + <= + buf.length + && + buf[pos + len - 1] + == + 10) + len--; + var src=caml_create_bytes(len); + caml_blit_bytes(caml_bytes_of_array(buf),pos,src,0,len); + this.log(src.toUtf16()); + return 0} + caml_raise_sys_error(this.fd + ": file descriptor already closed")}; + MlFakeFd_out.prototype.read + = + function(offset,buf,pos,len) + {caml_raise_sys_error(this.fd + ": file descriptor is write only")}; + MlFakeFd_out.prototype.close = function(){this.log = undefined}; + function caml_sys_open_internal(file,idx) + {if(idx == undefined)idx = caml_sys_fds.length; + caml_sys_fds[idx] = file; + return idx} + function caml_sys_open(name,flags,_perms) + {var f={}; + while(flags) + {switch(flags[1]) + {case 0:f.rdonly = 1;break; + case 1:f.wronly = 1;break; + case 2:f.append = 1;break; + case 3:f.create = 1;break; + case 4:f.truncate = 1;break; + case 5:f.excl = 1;break; + case 6:f.binary = 1;break; + case 7:f.text = 1;break; + case 8:f.nonblock = 1;break + } + flags = flags[2]} + if(f.rdonly && f.wronly) + caml_raise_sys_error + (caml_jsbytes_of_string(name) + + + " : flags Open_rdonly and Open_wronly are not compatible"); + if(f.text && f.binary) + caml_raise_sys_error + (caml_jsbytes_of_string(name) + + + " : flags Open_text and Open_binary are not compatible"); + var root=resolve_fs_device(name),file=root.device.open(root.rest,f); + return caml_sys_open_internal(file,undefined)} + (function() + {function file(fd,flags) + {return fs_node_supported() + ?caml_sys_open_for_node(fd,flags) + :new MlFakeFd_out(fd,flags)} + caml_sys_open_internal + (file(0,{rdonly:1,altname:"/dev/stdin",isCharacterDevice:true}),0); + caml_sys_open_internal + (file(1,{buffered:2,wronly:1,isCharacterDevice:true}),1); + caml_sys_open_internal + (file(2,{buffered:2,wronly:1,isCharacterDevice:true}),2)} + ()); + function ml_z_gcd(z1,z2) + {return ml_z_normalize(bigInt.gcd(bigInt(z1),bigInt(z2)).abs())} + function ml_z_mul(z1,z2) + {return ml_z_normalize(bigInt(z1).multiply(bigInt(z2)))} + function ml_z_hamdist(z1,z2) + {if(bigInt(z1).isNegative() != bigInt(z2).isNegative()) + caml_raise_constant(caml_named_value("ml_z_overflow")); + if + ((z1 != (z1 | 0) || z2 != (z2 | 0)) + && + (bigInt(z1).isNegative() || bigInt(z2).isNegative())) + caml_invalid_argument("Z.hamdist: negative arguments"); + return ml_z_popcount(bigInt(z1).xor(bigInt(z2)))} + function caml_string_get(s,i) + {if(i >>> 0 >= caml_ml_string_length(s))caml_string_bound_error(); + return caml_string_unsafe_get(s,i)} + var + re_match= + function() + {var + re_word_letters= [0x00, 0x00, 0x00, @@ -6822,17729 +5517,4398 @@ 0xFF, 0x7F, 0xFF], - opcodes = - {CHAR: 0, - CHARNORM: 1, - STRING: 2, - STRINGNORM: 3, - CHARCLASS: 4, - BOL: 5, - EOL: 6, - WORDBOUNDARY: 7, - BEGGROUP: 8, - ENDGROUP: 9, - REFGROUP: 10, - ACCEPT: 11, - SIMPLEOPT: 12, - SIMPLESTAR: 13, - SIMPLEPLUS: 14, - GOTO: 15, - PUSHBACK: 16, - SETMARK: 17, - CHECKPROGRESS: 18}; - function is_word_letter(c){ - return re_word_letters[c >> 3] >> (c & 7) & 1; - } - function in_bitset(s, i){ - return caml_string_get(s, i >> 3) >> (i & 7) & 1; - } - function re_match_impl(re, s, pos, partial){ - var - prog = caml_js_from_array(re[1]), - cpool = caml_js_from_array(re[2]), - normtable = caml_jsbytes_of_string(re[3]), - numgroups = re[4] | 0, - numregisters = re[5] | 0, - startchars = re[6] | 0, - s = caml_uint8_array_of_string(s), - pc = 0, - quit = false, - stack = [], - groups = new Array(numgroups), - re_register = new Array(numregisters); - for(var i = 0; i < groups.length; i++) - groups[i] = {start: - 1, end: - 1}; - groups[0].start = pos; - function backtrack(){ - while(stack.length){ - var item = stack.pop(); - if(item.undo) - item.undo.obj[item.undo.prop] = item.undo.value; - else if(item.pos){pc = item.pos.pc; pos = item.pos.txt; return;} - } - quit = true; - } - function push(item){stack.push(item);} - function accept(){ - groups[0].end = pos; - var result = new Array(1 + groups.length * 2); - result[0] = 0; - for(var i = 0; i < groups.length; i++){ - var g = groups[i]; - if(g.start < 0 || g.end < 0) g.start = g.end = - 1; - result[2 * i + 1] = g.start; - result[2 * i + 1 + 1] = g.end; - } - return result; - } - function prefix_match(){ - if(partial) return accept(); else backtrack(); - } - while(! quit){ - var - op = prog[pc] & 0xff, - sarg = prog[pc] >> 8, - uarg = sarg & 0xff, - c = s[pos], - group; - pc++; - switch(op){ - case opcodes.CHAR: - if(pos === s.length){prefix_match(); break;} - if(c === uarg) pos++; else backtrack(); - break; - case opcodes.CHARNORM: - if(pos === s.length){prefix_match(); break;} - if(normtable.charCodeAt(c) === uarg) pos++; else backtrack(); - break; - case opcodes.STRING: - for - (var arg = caml_jsbytes_of_string(cpool[uarg]), i = 0; - i < arg.length; - i++){ - if(pos === s.length){prefix_match(); break;} - if(c === arg.charCodeAt(i)) - c = s[++pos]; - else{backtrack(); break;} - } - break; - case opcodes.STRINGNORM: - for - (var arg = caml_jsbytes_of_string(cpool[uarg]), i = 0; - i < arg.length; - i++){ - if(pos === s.length){prefix_match(); break;} - if(normtable.charCodeAt(c) === arg.charCodeAt(i)) - c = s[++pos]; - else{backtrack(); break;} - } - break; - case opcodes.CHARCLASS: - if(pos === s.length){prefix_match(); break;} - if(in_bitset(cpool[uarg], c)) pos++; else backtrack(); - break; - case opcodes.BOL: - if(pos > 0 && s[pos - 1] != 10) backtrack(); break; - case opcodes.EOL: - if(pos < s.length && s[pos] != 10) backtrack(); break; - case opcodes.WORDBOUNDARY: - if(pos == 0){ - if(pos === s.length){prefix_match(); break;} - if(is_word_letter(s[0])) break; - backtrack(); - } - else if(pos === s.length){ - if(is_word_letter(s[pos - 1])) break; - backtrack(); - } - else{ - if(is_word_letter(s[pos - 1]) != is_word_letter(s[pos])) break; - backtrack(); - } - break; - case opcodes.BEGGROUP: - group = groups[uarg]; - push({undo: {obj: group, prop: "start", value: group.start}}); - group.start = pos; - break; - case opcodes.ENDGROUP: - group = groups[uarg]; - push({undo: {obj: group, prop: "end", value: group.end}}); - group.end = pos; - break; - case opcodes.REFGROUP: - group = groups[uarg]; - if(group.start < 0 || group.end < 0){backtrack(); break;} - for(var i = group.start; i < group.end; i++){ - if(pos === s.length){prefix_match(); break;} - if(s[i] != s[pos]){backtrack(); break;} - pos++; - } - break; - case opcodes.SIMPLEOPT: - if(in_bitset(cpool[uarg], c)) pos++; break; - case opcodes.SIMPLESTAR: - while(in_bitset(cpool[uarg], c)) c = s[++pos]; break; - case opcodes.SIMPLEPLUS: - if(pos === s.length){prefix_match(); break;} - if(in_bitset(cpool[uarg], c)) - do c = s[++pos];while(in_bitset(cpool[uarg], c)); - else - backtrack(); - break; - case opcodes.ACCEPT: return accept(); - case opcodes.GOTO: - pc = pc + sarg; break; - case opcodes.PUSHBACK: - push({pos: {pc: pc + sarg, txt: pos}}); break; - case opcodes.SETMARK: - push - ({undo: {obj: re_register, prop: uarg, value: re_register[uarg]}}); - re_register[uarg] = pos; - break; - case opcodes.CHECKPROGRESS: - if(re_register[uarg] === pos) backtrack(); break; - default: throw new Error("Invalid bytecode"); - } - } - return 0; - } - return re_match_impl; - } + opcodes= + {CHAR:0, + CHARNORM:1, + STRING:2, + STRINGNORM:3, + CHARCLASS:4, + BOL:5, + EOL:6, + WORDBOUNDARY:7, + BEGGROUP:8, + ENDGROUP:9, + REFGROUP:10, + ACCEPT:11, + SIMPLEOPT:12, + SIMPLESTAR:13, + SIMPLEPLUS:14, + GOTO:15, + PUSHBACK:16, + SETMARK:17, + CHECKPROGRESS:18}; + function is_word_letter(c) + {return re_word_letters[c >> 3] >> (c & 7) & 1} + function in_bitset(s,i) + {return caml_string_get(s,i >> 3) >> (i & 7) & 1} + function re_match_impl(re,s,pos,partial) + {var + prog=caml_js_from_array(re[1]), + cpool=caml_js_from_array(re[2]), + normtable=caml_jsbytes_of_string(re[3]), + numgroups=re[4] | 0, + numregisters=re[5] | 0, + startchars=re[6] | 0, + s=caml_uint8_array_of_string(s), + pc=0, + quit=false, + stack=[], + groups=new Array(numgroups), + re_register=new Array(numregisters); + for(var i=0;i < groups.length;i++)groups[i] = {start:- 1,end:- 1}; + groups[0].start = pos; + function backtrack() + {while(stack.length) + {var item=stack.pop(); + if(item.undo) + item.undo.obj[item.undo.prop] = item.undo.value; + else + if(item.pos){pc = item.pos.pc;pos = item.pos.txt;return}} + quit = true} + function push(item){stack.push(item)} + function accept() + {groups[0].end = pos; + var result=new Array(1 + groups.length * 2); + result[0] = 0; + for(var i=0;i < groups.length;i++) + {var g=groups[i]; + if(g.start < 0 || g.end < 0)g.start = g.end = - 1; + result[2 * i + 1] = g.start; + result[2 * i + 1 + 1] = g.end} + return result} + function prefix_match() + {if(partial)return accept();else backtrack()} + while(! quit) + {var + op=prog[pc] & 0xff, + sarg=prog[pc] >> 8, + uarg=sarg & 0xff, + c=s[pos], + group; + pc++; + switch(op) + {case opcodes.CHAR: + if(pos === s.length){prefix_match();break} + if(c === uarg)pos++;else backtrack(); + break; + case opcodes.CHARNORM: + if(pos === s.length){prefix_match();break} + if(normtable.charCodeAt(c) === uarg)pos++;else backtrack(); + break; + case opcodes.STRING: + for + (var arg=caml_jsbytes_of_string(cpool[uarg]),i=0; + i + < + arg.length; + i++) + {if(pos === s.length){prefix_match();break} + if(c === arg.charCodeAt(i)) + c = s[++pos]; + else + {backtrack();break}} + break; + case opcodes.STRINGNORM: + for + (var arg=caml_jsbytes_of_string(cpool[uarg]),i=0; + i + < + arg.length; + i++) + {if(pos === s.length){prefix_match();break} + if(normtable.charCodeAt(c) === arg.charCodeAt(i)) + c = s[++pos]; + else + {backtrack();break}} + break; + case opcodes.CHARCLASS: + if(pos === s.length){prefix_match();break} + if(in_bitset(cpool[uarg],c))pos++;else backtrack(); + break; + case opcodes.BOL: + if(pos > 0 && s[pos - 1] != 10)backtrack();break; + case opcodes.EOL: + if(pos < s.length && s[pos] != 10)backtrack();break; + case opcodes.WORDBOUNDARY: + if(pos == 0) + {if(pos === s.length){prefix_match();break} + if(is_word_letter(s[0]))break; + backtrack()} + else + if(pos === s.length) + {if(is_word_letter(s[pos - 1]))break;backtrack()} + else + {if(is_word_letter(s[pos - 1]) != is_word_letter(s[pos])) + break; + backtrack()} + break; + case opcodes.BEGGROUP: + group = groups[uarg]; + push({undo:{obj:group,prop:"start",value:group.start}}); + group.start = pos; + break; + case opcodes.ENDGROUP: + group = groups[uarg]; + push({undo:{obj:group,prop:"end",value:group.end}}); + group.end = pos; + break; + case opcodes.REFGROUP: + group = groups[uarg]; + if(group.start < 0 || group.end < 0){backtrack();break} + for(var i=group.start;i < group.end;i++) + {if(pos === s.length){prefix_match();break} + if(s[i] != s[pos]){backtrack();break} + pos++} + break; + case opcodes.SIMPLEOPT:if(in_bitset(cpool[uarg],c))pos++;break; + case opcodes.SIMPLESTAR: + while(in_bitset(cpool[uarg],c))c = s[++pos];break; + case opcodes.SIMPLEPLUS: + if(pos === s.length){prefix_match();break} + if(in_bitset(cpool[uarg],c)) + do c = s[++pos];while(in_bitset(cpool[uarg],c)); + else + backtrack(); + break; + case opcodes.ACCEPT:return accept(); + case opcodes.GOTO:pc = pc + sarg;break; + case opcodes.PUSHBACK:push({pos:{pc:pc + sarg,txt:pos}});break; + case opcodes.SETMARK: + push + ({undo:{obj:re_register,prop:uarg,value:re_register[uarg]}}); + re_register[uarg] = pos; + break; + case opcodes.CHECKPROGRESS: + if(re_register[uarg] === pos)backtrack();break; + default:throw new Error("Invalid bytecode")}} + return 0} + return re_match_impl} (); - function re_search_backward(re, s, pos){ - if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.search_backward"); - while(pos >= 0){ - var res = re_match(re, s, pos, 0); - if(res) return res; - pos--; - } - return [0]; - } - function ml_z_logand(z1, z2){ - return ml_z_normalize(bigInt(z1).and(bigInt(z2))); - } - function caml_js_from_string(s){return caml_jsstring_of_string(s);} - function caml_ba_sub(ba, ofs, len){ - var changed_dim, mul = 1; - if(ba.layout == 0){ - for(var i = 1; i < ba.dims.length; i++) mul = mul * ba.dims[i]; - changed_dim = 0; - } - else{ - for(var i = 0; i < ba.dims.length - 1; i++) mul = mul * ba.dims[i]; - changed_dim = ba.dims.length - 1; - ofs = ofs - 1; - } - if(ofs < 0 || len < 0 || ofs + len > ba.dims[changed_dim]) - caml_invalid_argument("Bigarray.sub: bad sub-array"); - var new_dims = []; - for(var i = 0; i < ba.dims.length; i++) new_dims[i] = ba.dims[i]; - new_dims[changed_dim] = len; - mul *= caml_ba_get_size_per_element(ba.kind); - var new_data = ba.data.subarray(ofs * mul, (ofs + len) * mul); - return caml_ba_create_unsafe(ba.kind, ba.layout, new_dims, new_data); - } - function caml_gc_full_major(unit){ - if(typeof globalThis.gc == "function") globalThis.gc(); - return 0; - } - function caml_ml_mutex_try_lock(t){ - if(! t.locked){t.locked = true; return 1;} - return 0; - } - function caml_bytes_set32(s, i, i32){ - if(i >>> 0 >= s.l - 3) caml_bytes_bound_error(); - var - b4 = 0xFF & i32 >> 24, - b3 = 0xFF & i32 >> 16, - b2 = 0xFF & i32 >> 8, - b1 = 0xFF & i32; - caml_bytes_unsafe_set(s, i + 0, b1); - caml_bytes_unsafe_set(s, i + 1, b2); - caml_bytes_unsafe_set(s, i + 2, b3); - caml_bytes_unsafe_set(s, i + 3, b4); - return 0; - } - function caml_gr_sigio_signal(){return 0;} - function caml_ba_uint8_set32(ba, i0, v){ - var ofs = ba.offset(i0); - if(ofs + 3 >= ba.data.length) caml_array_bound_error(); - ba.set(ofs + 0, v & 0xff); - ba.set(ofs + 1, v >>> 8 & 0xff); - ba.set(ofs + 2, v >>> 16 & 0xff); - ba.set(ofs + 3, v >>> 24 & 0xff); - return 0; - } - function ml_z_div_rem(z1, z2){ - return [0, ml_z_div(z1, z2), ml_z_rem(z1, z2)]; - } - function caml_sys_const_ostype_unix(){return os_type == "Unix" ? 1 : 0;} - function caml_unix_gmtime(t){ - var - d = new Date(t * 1000), - d_num = d.getTime(), - januaryfirst = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)).getTime(), - doy = Math.floor((d_num - januaryfirst) / 86400000); - return [0, - d.getUTCSeconds(), - d.getUTCMinutes(), - d.getUTCHours(), - d.getUTCDate(), - d.getUTCMonth(), - d.getUTCFullYear() - 1900, - d.getUTCDay(), - doy, - false | 0]; - } - function caml_signbit_float(x){if(x == 0) x = 1 / x; return x < 0 ? 1 : 0;} - function caml_gr_current_x(){var s = caml_gr_state_get(); return s.x;} - function caml_gr_set_line_width(w){ - var s = caml_gr_state_get(); - s.line_width = w; - s.context.lineWidth = w; - return 0; - } - function caml_gr_set_font(f){ - var s = caml_gr_state_get(); - s.font = f; - s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); - return 0; - } - function caml_gr_set_color(color){ - var s = caml_gr_state_get(); - function convert(number){ - var str = "" + number.toString(16); - while(str.length < 2) str = "0" + str; - return str; - } - var r = color >> 16 & 0xff, g = color >> 8 & 0xff, b = color >> 0 & 0xff; - s.color = color; - var c_str = "#" + convert(r) + convert(g) + convert(b); - s.context.fillStyle = c_str; - s.context.strokeStyle = c_str; - return 0; - } - function caml_gr_moveto(x, y){ - var s = caml_gr_state_get(); - s.x = x; - s.y = y; - return 0; - } - function caml_gr_resize_window(w, h){ - var s = caml_gr_state_get(); - s.width = w; - s.height = h; - s.canvas.width = w; - s.canvas.height = h; - return 0; - } - function caml_gr_state_init(){ - caml_gr_moveto(caml_gr_state.x, caml_gr_state.y); - caml_gr_resize_window(caml_gr_state.width, caml_gr_state.height); - caml_gr_set_line_width(caml_gr_state.line_width); - caml_gr_set_text_size(caml_gr_state.text_size); - caml_gr_set_font(caml_gr_state.font); - caml_gr_set_color(caml_gr_state.color); - caml_gr_set_window_title(caml_gr_state.title); - caml_gr_state.context.textBaseline = "bottom"; - } - function caml_ba_kind_of_typed_array(ta){ - var kind; - if(ta instanceof Float32Array) - kind = 0; - else if(ta instanceof Float64Array) - kind = 1; - else if(ta instanceof Int8Array) - kind = 2; - else if(ta instanceof Uint8Array) - kind = 3; - else if(ta instanceof Int16Array) - kind = 4; - else if(ta instanceof Uint16Array) - kind = 5; - else if(ta instanceof Int32Array) - kind = 6; - else if(ta instanceof Uint32Array) - kind = 6; - else - caml_invalid_argument("caml_ba_kind_of_typed_array: unsupported kind"); - return kind; - } - function caml_ba_from_typed_array(ta){ - var kind = caml_ba_kind_of_typed_array(ta); - return caml_ba_create_unsafe(kind, 0, [ta.length], ta); - } - function caml_ml_seek_out(chanid, pos){return caml_seek_out(chanid, pos);} - function caml_js_typeof(o){return typeof o;} - function caml_hash_mix_string(h, v){ - return caml_hash_mix_jsbytes(h, caml_jsbytes_of_string(v)); - } - function caml_string_hash(h, v){ - var h = caml_hash_mix_string(h, v), h = caml_hash_mix_final(h); - return h & 0x3FFFFFFF; - } - function caml_restore_raw_backtrace(exn, bt){return 0;} - function caml_gr_lineto(x, y){ - var s = caml_gr_state_get(); - s.context.beginPath(); - s.context.moveTo(s.x, s.height - s.y); - s.context.lineTo(x, s.height - y); - s.context.stroke(); - s.x = x; - s.y = y; - return 0; - } - function caml_js_function_arity(f){return f.l >= 0 ? f.l : f.l = f.length;} - function caml_js_wrap_meth_callback_unsafe(f){ - return function(){ - var len = caml_js_function_arity(f) - 1, args = new Array(len + 1); - args[0] = this; - for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; - return caml_callback(f, args);}; - } - function caml_ba_dim_3(ba){return caml_ba_dim(ba, 2);} - function caml_is_special_exception(exn){ - switch(exn[2]){case - 8:case - 11:case - 12: return 1;default: return 0; - } - } - function caml_format_exception(exn){ - var r = ""; - if(exn[0] == 0){ - r += exn[1][1]; - if - (exn.length == 3 && exn[2][0] == 0 && caml_is_special_exception(exn[1])) - var bucket = exn[2], start = 1; - else - var start = 2, bucket = exn; - r += "("; - for(var i = start; i < bucket.length; i++){ - if(i > start) r += ", "; - var v = bucket[i]; - if(typeof v == "number") - r += v.toString(); - else if(v instanceof MlBytes) - r += '"' + v.toString() + '"'; - else if(typeof v == "string") - r += '"' + v.toString() + '"'; + function re_search_backward(re,s,pos) + {if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.search_backward"); + while(pos >= 0){var res=re_match(re,s,pos,0);if(res)return res;pos--} + return [0]} + function ml_z_logand(z1,z2) + {return ml_z_normalize(bigInt(z1).and(bigInt(z2)))} + function caml_js_from_string(s){return caml_jsstring_of_string(s)} + function caml_ba_sub(ba,ofs,len) + {var changed_dim,mul=1; + if(ba.layout == 0) + {for(var i=1;i < ba.dims.length;i++)mul = mul * ba.dims[i]; + changed_dim = 0} else - r += "_"; - } - r += ")"; - } - else if(exn[0] == 248) r += exn[1]; - return r; - } - function caml_fatal_uncaught_exception(err){ - if(err instanceof Array && (err[0] == 0 || err[0] == 248)){ - var handler = caml_named_value("Printexc.handle_uncaught_exception"); - if(handler) - caml_callback(handler, [err, false]); - else{ + {for(var i=0;i < ba.dims.length - 1;i++)mul = mul * ba.dims[i]; + changed_dim = ba.dims.length - 1; + ofs = ofs - 1} + if(ofs < 0 || len < 0 || ofs + len > ba.dims[changed_dim]) + caml_invalid_argument("Bigarray.sub: bad sub-array"); + var new_dims=[]; + for(var i=0;i < ba.dims.length;i++)new_dims[i] = ba.dims[i]; + new_dims[changed_dim] = len; + mul *= caml_ba_get_size_per_element(ba.kind); + var new_data=ba.data.subarray(ofs * mul,(ofs + len) * mul); + return caml_ba_create_unsafe(ba.kind,ba.layout,new_dims,new_data)} + function caml_gc_full_major(unit) + {if(typeof globalThis.gc == "function")globalThis.gc();return 0} + function caml_ml_mutex_try_lock(t) + {if(! t.locked){t.locked = true;return 1}return 0} + function caml_bytes_set32(s,i,i32) + {if(i >>> 0 >= s.l - 3)caml_bytes_bound_error(); var - msg = caml_format_exception(err), - at_exit = caml_named_value("Pervasives.do_at_exit"); - if(at_exit) caml_callback(at_exit, [0]); - console.error("Fatal error: exception " + msg + "\n"); - if(err.js_error) throw err.js_error; - } - } - else - throw err; - } - function caml_ephe_check_data(x){ - return x[caml_ephe_data_offset] === undefined ? 0 : 1; - } - function caml_bytes_get16(s, i){ - if(i >>> 0 >= s.l - 1) caml_bytes_bound_error(); - var - b1 = caml_bytes_unsafe_get(s, i), - b2 = caml_bytes_unsafe_get(s, i + 1); - return b2 << 8 | b1; - } - function caml_obj_make_forward(b, v){b[0] = 250; b[1] = v; return 0;} - function caml_js_from_bool(x){return ! ! x;} - function caml_ml_set_channel_name(chanid, name){ - var chan = caml_ml_channels[chanid]; - chan.name = name; - return 0; - } - function caml_exp2_float(x){return Math.pow(2, x);} - function caml_gr_close_graph(){ - var s = caml_gr_state_get(); - s.canvas.width = 0; - s.canvas.height = 0; - return 0; - } - function caml_ml_domain_cpu_relax(unit){return 0;} - function caml_create_string(len){caml_invalid_argument("String.create");} - function caml_ml_input_block(chanid, ba, i, l){ - var - chan = caml_ml_channels[chanid], - n = l, - avail = chan.buffer_max - chan.buffer_curr; - if(l <= avail){ - ba.set(chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + l), i); - chan.buffer_curr += l; - } - else if(avail > 0){ - ba.set - (chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + avail), i); - chan.buffer_curr += avail; - n = avail; - } - else{ - chan.buffer_curr = 0; - chan.buffer_max = 0; - caml_refill(chan); - var avail = chan.buffer_max - chan.buffer_curr; - if(n > avail) n = avail; - ba.set(chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + n), i); - chan.buffer_curr += n; - } - return n | 0; - } - function caml_md5_chan(chanid, toread){ - var ctx = caml_MD5Init(), buffer = new Uint8Array(4096); - if(toread < 0) - while(true){ - var read = caml_ml_input_block(chanid, buffer, 0, buffer.length); - if(read == 0) break; - caml_MD5Update(ctx, buffer.subarray(0, read), read); - } - else - while(toread > 0){ - var - read = - caml_ml_input_block - (chanid, buffer, 0, toread > buffer.length ? buffer.length : toread); - if(read == 0) caml_raise_end_of_file(); - caml_MD5Update(ctx, buffer.subarray(0, read), read); - toread -= read; - } - return caml_string_of_array(caml_MD5Final(ctx)); - } - function caml_atanh_float(x){return Math.atanh(x);} - function caml_ml_condition_signal(t){return 0;} - function caml_unix_findnext(dir_handle){return caml_unix_readdir(dir_handle); - } - function caml_ml_output_bytes(chanid, buffer, offset, len){ - var chan = caml_ml_channels[chanid]; - if(! chan.opened) - caml_raise_sys_error("Cannot output to a closed channel"); - var buffer = caml_uint8_array_of_bytes(buffer); - buffer = buffer.subarray(offset, offset + len); - if(chan.buffer_curr + buffer.length > chan.buffer.length){ - var b = new Uint8Array(chan.buffer_curr + buffer.length); - b.set(chan.buffer); - chan.buffer = b; - } - switch(chan.buffered){ - case 0: - chan.buffer.set(buffer, chan.buffer_curr); - chan.buffer_curr += buffer.length; - caml_ml_flush(chanid); - break; - case 1: - chan.buffer.set(buffer, chan.buffer_curr); - chan.buffer_curr += buffer.length; - if(chan.buffer_curr >= chan.buffer.length) caml_ml_flush(chanid); - break; - case 2: - var id = buffer.lastIndexOf(10); - if(id < 0){ - chan.buffer.set(buffer, chan.buffer_curr); - chan.buffer_curr += buffer.length; - if(chan.buffer_curr >= chan.buffer.length) caml_ml_flush(chanid); - } - else{ - chan.buffer.set(buffer.subarray(0, id + 1), chan.buffer_curr); - chan.buffer_curr += id + 1; - caml_ml_flush(chanid); - chan.buffer.set(buffer.subarray(id + 1), chan.buffer_curr); - chan.buffer_curr += buffer.length - id - 1; - } - break; - } - return 0; - } - function caml_ml_output(chanid, buffer, offset, len){ - return caml_ml_output_bytes - (chanid, caml_bytes_of_string(buffer), offset, len); - } - function caml_ml_domain_id(unit){return caml_domain_id;} - function caml_ephe_get_data(x){ - return x[caml_ephe_data_offset] === undefined - ? 0 - : [0, x[caml_ephe_data_offset]]; - } - function caml_xmlhttprequest_create(unit){ - if(typeof globalThis.XMLHttpRequest !== "undefined") - try{return new globalThis.XMLHttpRequest();}catch(e){} - if(typeof globalThis.activeXObject !== "undefined"){ - try{return new globalThis.activeXObject("Msxml2.XMLHTTP");}catch(e){} - try{return new globalThis.activeXObject("Msxml3.XMLHTTP");}catch(e){} - try{return new globalThis.activeXObject("Microsoft.XMLHTTP");}catch(e){} - } - caml_failwith("Cannot create a XMLHttpRequest"); - } - function caml_trampoline_return(f, args){return {joo_tramp: f, joo_args: args}; - } - function caml_ml_is_buffered(chanid){ - return caml_ml_channels[chanid].buffered ? 1 : 0; - } - function caml_array_append(a1, a2){ - var l1 = a1.length, l2 = a2.length, l = l1 + l2 - 1, a = new Array(l); - a[0] = 0; - var i = 1, j = 1; - for(; i < l1; i++) a[i] = a1[i]; - for(; i < l; i++, j++) a[i] = a2[j]; - return a; - } - function caml_unix_gettimeofday(){return new Date().getTime() / 1000;} - function caml_unix_time(){return Math.floor(caml_unix_gettimeofday());} - function caml_ml_set_channel_refill(chanid, f){ - caml_ml_channels[chanid].refill = f; - return 0; - } - function ml_z_nextprime(z1){ - z1 = bigInt(z1); - var one = bigInt(1), two = bigInt(2); - if(z1.lt(one) || z1.equals(one)) return 2; - if(z1.and(one).equals(one)) z1 = z1.add(two); else z1 = z1.add(one); - while(true) - if(z1.isProbablePrime(25)) - return ml_z_normalize(z1); - else - z1 = z1.add(two); - } - function caml_runtime_events_create_cursor(target){return {};} - function caml_fill_bytes(s, i, l, c){ - if(l > 0) - if(i == 0 && (l >= s.l || s.t == 2 && l >= s.c.length)) - if(c == 0){ - s.c = ""; - s.t = 2; - } - else{ - s.c = caml_str_repeat(l, String.fromCharCode(c)); - s.t = l == s.l ? 0 : 2; - } - else{ - if(s.t != 4) caml_convert_bytes_to_array(s); - for(l += i; i < l; i++) s.c[i] = c; - } - return 0; - } - function caml_js_expr(s){ - console.error("caml_js_expr: fallback to runtime evaluation\n"); - return eval(caml_jsstring_of_string(s)); - } - function caml_ml_runtime_warnings_enabled(_unit){return caml_runtime_warnings; - } - function ml_z_sub(z1, z2){ - return ml_z_normalize(bigInt(z1).subtract(bigInt(z2))); - } - function ml_z_fdiv(z1, z2){ - var z1_pos = ml_z_sign(z1), z2_pos = ml_z_sign(z2); - if(z1_pos * z2_pos < 0) - if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) - return ml_z_sub(ml_z_div(z1, z2), bigInt(1)); - return ml_z_div(z1, z2); - } - function ml_z_to_bits(z1){ - z1 = bigInt(z1).abs(); - var res = ""; - while(! z1.equals(bigInt(0))){ - res += String.fromCharCode(z1.mod(bigInt(256))); - z1 = z1.divide(bigInt(256)); - } - while(res.length % 4 != 0) res += String.fromCharCode(0); - return caml_string_of_jsbytes(res); - } - function caml_output_value_to_bytes(v, flags){ - return caml_bytes_of_array(caml_output_val(v, flags)); - } - function caml_eventlog_resume(unit){return 0;} - function caml_md5_string(s, ofs, len){ - return caml_md5_bytes(caml_bytes_of_string(s), ofs, len); - } - function caml_array_of_string(x){return caml_uint8_array_of_string(x);} - function caml_string_equal(s1, s2){if(s1 === s2) return 1; return 0;} - function caml_jsoo_flags_use_js_string(unit){return 1;} - function ml_z_divexact(z1, z2){return ml_z_div(z1, z2);} - function caml_output_value_to_buffer(s, ofs, len, v, flags){ - var t = caml_output_val(v, flags); - if(t.length > len) caml_failwith("Marshal.to_buffer: buffer overflow"); - caml_blit_bytes(t, 0, s, ofs, t.length); - return 0; - } - function re_replacement_text(repl, groups, orig){ - var - repl = caml_jsbytes_of_string(repl), - len = repl.length, - orig = caml_jsbytes_of_string(orig), - res = "", - n = 0, - cur, - start, - end, - c; - while(n < len){ - cur = repl.charAt(n++); - if(cur != "\\") - res += cur; - else{ - if(n == len) caml_failwith("Str.replace: illegal backslash sequence"); - cur = repl.charAt(n++); - switch(cur){ - case "\\": - res += cur; break; - case "0": - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - c = + cur; - if(c * 2 >= groups.length - 1) - caml_failwith("Str.replace: reference to unmatched group"); - start = caml_array_get(groups, c * 2); - end = caml_array_get(groups, c * 2 + 1); - if(start == - 1) - caml_failwith("Str.replace: reference to unmatched group"); - res += orig.slice(start, end); - break; - default: res += "\\" + cur; - } - } - } - return caml_string_of_jsbytes(res); - } - function caml_pure_js_expr(s){ - console.error("caml_pure_js_expr: fallback to runtime evaluation\n"); - return eval(caml_jsstring_of_string(s)); - } - function caml_blit_string(a, b, c, d, e){ - caml_blit_bytes(caml_bytes_of_string(a), b, c, d, e); - return 0; - } - function blit_nat(nat1, ofs1, nat2, ofs2, len){ - for(var i = 0; i < len; i++) nat1.data[ofs1 + i] = nat2.data[ofs2 + i]; - return 0; - } - function caml_bigstring_blit_ba_to_bytes(ba1, pos1, bytes2, pos2, len){ - if(12 != ba1.kind) - caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0) return 0; - var ofs1 = ba1.offset(pos1); - if(ofs1 + len > ba1.data.length) caml_array_bound_error(); - if(pos2 + len > caml_ml_bytes_length(bytes2)) caml_array_bound_error(); - var slice = ba1.data.slice(ofs1, ofs1 + len); - caml_blit_bytes(caml_bytes_of_array(slice), 0, bytes2, pos2, len); - return 0; - } - function caml_unix_stat(name){ - var root = resolve_fs_device(name); - if(! root.device.stat) caml_failwith("caml_unix_stat: not implemented"); - return root.device.stat(root.rest, true); - } - function caml_register_named_value(nm, v){ - caml_named_values[caml_jsbytes_of_string(nm)] = v; - return 0; - } - function jsoo_create_file_extern(name, content){ - if(globalThis.jsoo_create_file) - globalThis.jsoo_create_file(name, content); - else{ - if(! globalThis.caml_fs_tmp) globalThis.caml_fs_tmp = []; - globalThis.caml_fs_tmp.push({name: name, content: content}); - } - return 0; - } - function caml_unix_stat_64(name){ - var r = caml_unix_stat(name); - r[9] = caml_int64_of_int32(r[9]); - } - function caml_to_js_string(s){return caml_jsstring_of_string(s);} - function caml_ml_mutex_lock(t){ - if(t.locked) - caml_failwith("Mutex.lock: mutex already locked. Cannot wait."); - else - t.locked = true; - return 0; - } - function re_search_forward(re, s, pos){ - if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.search_forward"); - while(pos <= caml_ml_string_length(s)){ - var res = re_match(re, s, pos, 0); - if(res) return res; - pos++; - } - return [0]; - } - function caml_make_vect(len, init){ - if(len < 0) caml_array_bound_error(); - var len = len + 1 | 0, b = new Array(len); - b[0] = 0; - for(var i = 1; i < len; i++) b[i] = init; - return b; - } - function caml_ml_seek_in(chanid, pos){return caml_seek_in(chanid, pos);} - function caml_sys_read_directory(name){ - var - root = resolve_fs_device(name), - a = root.device.readdir(root.rest), - l = new Array(a.length + 1); - l[0] = 0; - for(var i = 0; i < a.length; i++) l[i + 1] = caml_string_of_jsbytes(a[i]); - return l; - } - function caml_ml_output_char(chanid, c){ - var s = caml_string_of_jsbytes(String.fromCharCode(c)); - caml_ml_output(chanid, s, 0, 1); - return 0; - } - function caml_sys_const_ostype_win32(){return os_type == "Win32" ? 1 : 0;} - function caml_obj_is_block(x){return + (x instanceof Array);} - function caml_obj_set_raw_field(o, i, v){return o[i + 1] = v;} - function caml_js_var(x){ - var x = caml_jsstring_of_string(x); - if(! x.match(/^[a-zA-Z_$][a-zA-Z_$0-9]*(\.[a-zA-Z_$][a-zA-Z_$0-9]*)*$/)) - console.error - ('caml_js_var: "' + x - + '" is not a valid JavaScript variable. continuing ..'); - return eval(x); - } - function caml_trunc_float(x){return Math.trunc(x);} - function caml_zarith_marshal(writer, v, sz){ - v = bigInt(v); - var bits = v.toArray(Math.pow(2, 32)); - writer.write(8, bits.isNegative ? 1 : 0); - var block = bits.value.length, len = block * 4; - writer.write(32, len); - for(var i = block - 1; i >= 0; i--){ - writer.write(8, bits.value[i] >>> 0 & 0xff); - writer.write(8, bits.value[i] >>> 8 & 0xff); - writer.write(8, bits.value[i] >>> 16 & 0xff); - writer.write(8, bits.value[i] >>> 24 & 0xff); - } - sz[0] = 4 * (1 + ((len + 3) / 4 | 0)); - sz[1] = 8 * (1 + ((len + 7) / 8 | 0)); - } - function caml_ephe_unset_data(x){ - if(globalThis.FinalizationRegistry && globalThis.WeakRef) - if(x[1] instanceof globalThis.FinalizationRegistry) - for(var j = caml_ephe_key_offset; j < x.length; j++){ - var key = x[j]; - if(key instanceof globalThis.WeakRef){ - key = key.deref(); - if(key) x[1].unregister(key); - } - } - x[caml_ephe_data_offset] = undefined; - return 0; - } - function caml_ephe_set_data(x, data){ - if(globalThis.FinalizationRegistry && globalThis.WeakRef) - if(! (x[1] instanceof globalThis.FinalizationRegistry)){ - x[1] = - new - globalThis.FinalizationRegistry - (function(){caml_ephe_unset_data(x);}); - for(var j = caml_ephe_key_offset; j < x.length; j++){ - var key = x[j]; - if(key instanceof globalThis.WeakRef){ - key = key.deref(); - if(key) x[1].register(key, undefined, key); - } - } - } - x[caml_ephe_data_offset] = data; - return 0; - } - function caml_ephe_blit_data(src, dst){ - var n = src[caml_ephe_data_offset]; - if(n === undefined) - caml_ephe_unset_data(dst); - else - caml_ephe_set_data(dst, n); - return 0; - } - function caml_is_printable(c){return + (c > 31 && c < 127);} - function caml_bytes_lessequal(s1, s2){ - s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c <= s2.c ? 1 : 0; - } - function caml_array_of_bytes(x){return caml_uint8_array_of_bytes(x);} - function caml_equal(x, y){return + (caml_compare_val(x, y, false) == 0);} - function re_partial_match(re, s, pos){ - if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.partial_match"); - var res = re_match(re, s, pos, 1); - return res ? res : [0]; - } - function caml_sys_random_seed(){ - if(globalThis.crypto) - if(typeof globalThis.crypto.getRandomValues === "function"){ - var a = new Uint32Array(1); - globalThis.crypto.getRandomValues(a); - return [0, a[0]]; - } - else if(globalThis.crypto.randomBytes === "function"){ - var buff = globalThis.crypto.randomBytes(4), a = new Uint32Array(buff); - return [0, a[0]]; - } - var now = new Date().getTime(), x = now ^ 0xffffffff * Math.random(); - return [0, x]; - } - var all_finalizers = new globalThis.Set(); - function caml_final_register_called_without_value(cb, a){ - if(globalThis.FinalizationRegistry && a instanceof Object){ - var - x = - new - globalThis.FinalizationRegistry - (function(x){all_finalizers.delete(x); cb(0); return;}); - x.register(a, x); - all_finalizers.add(x); - } - return 0; - } - function caml_ba_get_2(ba, i0, i1){return ba.get(ba.offset([i0, i1]));} - function caml_ba_uint8_set16(ba, i0, v){ - var ofs = ba.offset(i0); - if(ofs + 1 >= ba.data.length) caml_array_bound_error(); - ba.set(ofs + 0, v & 0xff); - ba.set(ofs + 1, v >>> 8 & 0xff); - return 0; - } - function caml_lazy_reset_to_lazy(o){ - caml_obj_update_tag(o, 244, 246); - return 0; - } - function caml_js_delete(o, f){delete o[f]; return 0;} - function caml_int_of_string(s){ - var - r = caml_parse_sign_and_base(s), - i = r[0], - sign = r[1], - base = r[2], - len = caml_ml_string_length(s), - threshold = - 1 >>> 0, - c = i < len ? caml_string_unsafe_get(s, i) : 0, - d = caml_parse_digit(c); - if(d < 0 || d >= base) caml_failwith("int_of_string"); - var res = d; - for(i++; i < len; i++){ - c = caml_string_unsafe_get(s, i); - if(c == 95) continue; - d = caml_parse_digit(c); - if(d < 0 || d >= base) break; - res = base * res + d; - if(res > threshold) caml_failwith("int_of_string"); - } - if(i != len) caml_failwith("int_of_string"); - res = sign * res; - if(base == 10 && (res | 0) != res) caml_failwith("int_of_string"); - return res | 0; - } - function caml_list_mount_point(){ - var prev = 0; - for(var i = 0; i < jsoo_mount_point.length; i++){ - var old = prev; - prev = [0, caml_string_of_jsbytes(jsoo_mount_point[i].path), old]; - } - return prev; - } - var - caml_marshal_constants = - {PREFIX_SMALL_BLOCK: 0x80, - PREFIX_SMALL_INT: 0x40, - PREFIX_SMALL_STRING: 0x20, - CODE_INT8: 0x00, - CODE_INT16: 0x01, - CODE_INT32: 0x02, - CODE_INT64: 0x03, - CODE_SHARED8: 0x04, - CODE_SHARED16: 0x05, - CODE_SHARED32: 0x06, - CODE_BLOCK32: 0x08, - CODE_BLOCK64: 0x13, - CODE_STRING8: 0x09, - CODE_STRING32: 0x0A, - CODE_DOUBLE_BIG: 0x0B, - CODE_DOUBLE_LITTLE: 0x0C, - CODE_DOUBLE_ARRAY8_BIG: 0x0D, - CODE_DOUBLE_ARRAY8_LITTLE: 0x0E, - CODE_DOUBLE_ARRAY32_BIG: 0x0F, - CODE_DOUBLE_ARRAY32_LITTLE: 0x07, - CODE_CODEPOINTER: 0x10, - CODE_INFIXPOINTER: 0x11, - CODE_CUSTOM: 0x12, - CODE_CUSTOM_LEN: 0x18, - CODE_CUSTOM_FIXED: 0x19}; - function caml_obj_raw_field(o, i){return o[i + 1];} - function caml_js_equals(x, y){return + (x == y);} - function caml_obj_compare_and_swap(x, i, old, n){ - if(x[i + 1] == old){x[i + 1] = n; return 1;} - return 0; - } - function bigstring_to_typed_array(bs){return bs.data;} - function ml_z_fits_nativeint(z1){return ml_z_fits_int(z1);} - function caml_gr_arc_aux(ctx, cx, cy, ry, rx, a1, a2){ - while(a1 > a2) a2 += 360; - a1 /= 180; - a2 /= 180; - var - rot = 0, - xPos, - yPos, - xPos_prev, - yPos_prev, - space = 2, - num = (a2 - a1) * Math.PI * ((rx + ry) / 2) / space | 0, - delta = (a2 - a1) * Math.PI / num, - i = a1 * Math.PI; - for(var j = 0; j <= num; j++){ - xPos = - cx - rx * Math.sin(i) * Math.sin(rot * Math.PI) - + ry * Math.cos(i) * Math.cos(rot * Math.PI); - xPos = xPos.toFixed(2); - yPos = - cy + ry * Math.cos(i) * Math.sin(rot * Math.PI) - + rx * Math.sin(i) * Math.cos(rot * Math.PI); - yPos = yPos.toFixed(2); - if(j == 0) - ctx.moveTo(xPos, yPos); - else if(xPos_prev != xPos || yPos_prev != yPos) ctx.lineTo(xPos, yPos); - xPos_prev = xPos; - yPos_prev = yPos; - i -= delta; - } - return 0; - } - function caml_gr_fill_arc(x, y, rx, ry, a1, a2){ - var s = caml_gr_state_get(); - s.context.beginPath(); - caml_gr_arc_aux(s.context, x, s.height - y, rx, ry, a1, a2); - s.context.fill(); - return 0; - } - function caml_ba_slice(ba, vind){ - vind = caml_js_from_array(vind); - var num_inds = vind.length, index = [], sub_dims = [], ofs; - if(num_inds > ba.dims.length) - caml_invalid_argument("Bigarray.slice: too many indices"); - if(ba.layout == 0){ - for(var i = 0; i < num_inds; i++) index[i] = vind[i]; - for(; i < ba.dims.length; i++) index[i] = 0; - sub_dims = ba.dims.slice(num_inds); - } - else{ - for(var i = 0; i < num_inds; i++) - index[ba.dims.length - num_inds + i] = vind[i]; - for(var i = 0; i < ba.dims.length - num_inds; i++) index[i] = 1; - sub_dims = ba.dims.slice(0, ba.dims.length - num_inds); - } - ofs = ba.offset(index); - var - size = caml_ba_get_size(sub_dims), - size_per_element = caml_ba_get_size_per_element(ba.kind), - new_data = - ba.data.subarray - (ofs * size_per_element, (ofs + size) * size_per_element); - return caml_ba_create_unsafe(ba.kind, ba.layout, sub_dims, new_data); - } - function ml_z_of_nativeint(i){return i | 0;} - function caml_js_wrap_callback_unsafe(f){ - return function(){ - var len = caml_js_function_arity(f), args = new Array(len); - for(var i = 0; i < len; i++) args[i] = arguments[i]; - return caml_callback(f, args);}; - } - function caml_ba_kind(ba){return ba.kind;} - function caml_alloc_dummy_infix(){ - return function f(x){return caml_call_gen(f.fun, [x]);}; - } - function caml_js_fun_call(f, a){ - switch(a.length){ - case 1: - return f(); - case 2: - return f(a[1]); - case 3: - return f(a[1], a[2]); - case 4: - return f(a[1], a[2], a[3]); - case 5: - return f(a[1], a[2], a[3], a[4]); - case 6: - return f(a[1], a[2], a[3], a[4], a[5]); - case 7: - return f(a[1], a[2], a[3], a[4], a[5], a[6]); - case 8: - return f(a[1], a[2], a[3], a[4], a[5], a[6], a[7]); - } - return f.apply(null, caml_js_from_array(a)); - } - function caml_gc_major_slice(work){return 0;} - function ml_z_invert(a, n){ - a = bigInt(a); - n = bigInt(n); - var zero = bigInt(0), one = bigInt(1); - if(n.abs().equals(one)) return 0; - if(n.equals(zero) && a.abs().equals(one)) return a; - if(n.equals(zero) || a.equals(zero)) caml_raise_zero_divide(); - var - x = ml_z_gcdext_intern(a, n), - r = bigInt(x[2]), - tmp = bigInt(a).multiply(r).mod(n); - if(tmp.lt(zero)) tmp = tmp.add(n.abs()); - if(r.lt(zero)) r = r.add(n.abs()); - if(tmp.equals(one)) return ml_z_normalize(r); - caml_raise_zero_divide(); - } - function ml_z_powm(z1, z2, z3){ - var zero = bigInt(0), one = bigInt(1); - z1 = bigInt(z1); - z2 = bigInt(z2); - z3 = bigInt(z3); - if(z3.equals(zero)) caml_raise_zero_divide(); - if(z3.abs().equals(one)) return 0; - if(z2.equals(zero)) return 1; - if(z2.lt(0)){ - var inv = bigInt(ml_z_invert(z1, z3)), r = inv.modPow(z2.negate(), z3); - if(r.lt(zero)) r = r.add(z3.abs()); - return ml_z_normalize(r); - } - else{ - var r = bigInt(z1).modPow(z2, z3); - if(r.lt(zero)) r = r.add(z3.abs()); - return ml_z_normalize(r); - } - } - function ml_z_powm_sec(z1, z2, z3){ - z3 = bigInt(z3).abs(); - var one = bigInt(1); - if(bigInt(z2).lt(one)) - caml_invalid_argument("Z.powm_sec: exponent must be positive"); - if(! bigInt(z3).and(one).equals(one)) - caml_invalid_argument("Z.powm_sec: modulus must be odd"); - return ml_z_powm(z1, z2, z3); - } - function caml_js_pure_expr(f){return caml_callback(f, [0]);} - function compare_digits_nat(nat1, ofs1, nat2, ofs2){ - if(nat1.data[ofs1] > nat2.data[ofs2]) return 1; - if(nat1.data[ofs1] < nat2.data[ofs2]) return - 1; - return 0; - } - function caml_ml_input(chanid, b, i, l){ - var ba = caml_uint8_array_of_bytes(b); - return caml_ml_input_block(chanid, ba, i, l); - } - function caml_gr_wait_event(_evl){ - caml_failwith - ("caml_gr_wait_event not Implemented: use Graphics_js instead"); - } - function caml_gr_sigio_handler(){return 0;} - function caml_hash_mix_bigstring(h, bs){ - return caml_hash_mix_bytes_arr(h, bs.data); - } - function caml_record_backtrace(b){ - caml_record_backtrace_flag = b; - return 0; - } - function caml_unix_cleanup(){} - function caml_sys_get_config(){ - return [0, caml_string_of_jsbytes(os_type), 32, 0]; - } - function caml_sys_const_backend_type(){ - return [0, caml_string_of_jsbytes("js_of_ocaml")]; - } - function caml_obj_is_shared(x){return 1;} - function caml_ml_out_channels_list(){ - var l = 0; - for(var c = 0; c < caml_ml_channels.length; c++) - if - (caml_ml_channels[c] && caml_ml_channels[c].opened - && caml_ml_channels[c].out) - l = [0, caml_ml_channels[c].fd, l]; - return l; - } - function caml_asinh_float(x){return Math.asinh(x);} - function ml_z_hash(z1){ - var a = bigInt(z1).toArray(Math.pow(2, 32)), acc = 0; - for(var i = 0; i < a.value.length; i++) - acc = caml_hash_mix_int(acc, a.value[i]); - if(a.value.length % 2 != 0) acc = caml_hash_mix_int(acc, 0); - if(a.isNegative) acc = acc + 1; - return acc | 0; - } - function caml_pos_out(chanid){ - var chan = caml_ml_channels[chanid]; - return chan.offset + chan.buffer_curr; - } - function bigstring_of_array_buffer(ab){ - var ta = new Uint8Array(ab); - return caml_ba_create_unsafe(12, 0, [ta.length], ta); - } - function caml_mod(x, y){if(y == 0) caml_raise_zero_divide(); return x % y;} - function caml_ba_init(){return 0;} - function caml_unix_filedescr_of_fd(x){return x;} - function re_string_match(re, s, pos){ - if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.string_match"); - var res = re_match(re, s, pos, 0); - return res ? res : [0]; - } - function BigStringReader(bs, i){this.s = bs; this.i = i;} - BigStringReader.prototype = - {read8u: function(){return caml_ba_get_1(this.s, this.i++);}, - read8s: function(){return caml_ba_get_1(this.s, this.i++) << 24 >> 24;}, - read16u: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return caml_ba_get_1(s, i) << 8 | caml_ba_get_1(s, i + 1); - }, - read16s: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return caml_ba_get_1(s, i) << 24 >> 16 | caml_ba_get_1(s, i + 1); - }, - read32u: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return (caml_ba_get_1(s, i) << 24 | caml_ba_get_1(s, i + 1) << 16 - | caml_ba_get_1(s, i + 2) << 8 - | caml_ba_get_1(s, i + 3)) - >>> 0; - }, - read32s: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return caml_ba_get_1(s, i) << 24 | caml_ba_get_1(s, i + 1) << 16 - | caml_ba_get_1(s, i + 2) << 8 - | caml_ba_get_1(s, i + 3); - }, - readstr: - function(len){ - var i = this.i, arr = new Array(len); - for(var j = 0; j < len; j++) arr[j] = caml_ba_get_1(this.s, i + j); - this.i = i + len; - return caml_string_of_array(arr); - }, - readuint8array: - function(len){ - var i = this.i, offset = this.offset(i); - this.i = i + len; - return this.s.data.subarray(offset, offset + len); - }}; - function caml_gr_dump_image(im){ - var data = [0]; - for(var i = 0; i < im.height; i++){ - data[i + 1] = [0]; - for(var j = 0; j < im.width; j++){ - var - o = i * (im.width * 4) + j * 4, - r = im.data[o + 0], - g = im.data[o + 1], - b = im.data[o + 2]; - data[i + 1][j + 1] = (r << 16) + (g << 8) + b; - } - } - return data; - } - function caml_ba_get_generic(ba, i){ - var ofs = ba.offset(caml_js_from_array(i)); - return ba.get(ofs); - } - function caml_unix_startup(){} - function caml_get_exception_backtrace(){return 0;} - function caml_format_float(fmt, x){ - function toFixed(x, dp){ - if(Math.abs(x) < 1.0) - return x.toFixed(dp); - else{ - var e = parseInt(x.toString().split("+")[1]); - if(e > 20){ - e -= 20; - x /= Math.pow(10, e); - x += new Array(e + 1).join("0"); - if(dp > 0) x = x + "." + new Array(dp + 1).join("0"); - return x; - } - else - return x.toFixed(dp); - } - } - var s, f = caml_parse_format(fmt), prec = f.prec < 0 ? 6 : f.prec; - if(x < 0 || x == 0 && 1 / x == - Infinity){f.sign = - 1; x = - x;} - if(isNaN(x)){ - s = "nan"; - f.filler = " "; - } - else if(! isFinite(x)){ - s = "inf"; - f.filler = " "; - } - else - switch(f.conv){ - case "e": - var s = x.toExponential(prec), i = s.length; - if(s.charAt(i - 3) == "e") - s = s.slice(0, i - 1) + "0" + s.slice(i - 1); - break; - case "f": - s = toFixed(x, prec); break; - case "g": - prec = prec ? prec : 1; - s = x.toExponential(prec - 1); - var j = s.indexOf("e"), exp = + s.slice(j + 1); - if(exp < - 4 || x >= 1e21 || x.toFixed(0).length > prec){ - var i = j - 1; - while(s.charAt(i) == "0") i--; - if(s.charAt(i) == ".") i--; - s = s.slice(0, i + 1) + s.slice(j); - i = s.length; - if(s.charAt(i - 3) == "e") - s = s.slice(0, i - 1) + "0" + s.slice(i - 1); - break; - } - else{ - var p = prec; - if(exp < 0){ - p -= exp + 1; - s = x.toFixed(p); - } - else - while(s = x.toFixed(p), s.length > prec + 1) p--; - if(p){ - var i = s.length - 1; - while(s.charAt(i) == "0") i--; - if(s.charAt(i) == ".") i--; - s = s.slice(0, i + 1); - } - } - break; - } - return caml_finish_formatting(f, s); - } - function caml_mount_autoload(name, f){ - var - path = caml_make_path(name), - name = caml_trailing_slash(path.join("/")); - jsoo_mount_point.push({path: name, device: new MlFakeDevice(name, f)}); - return 0; - } - function ml_z_fits_int64(z1){ - z1 = bigInt(z1); - return z1.compare(bigInt("9223372036854775807")) <= 0 - && z1.compare(bigInt("-9223372036854775808")) >= 0 - ? 1 - : 0; - } - function ml_z_equal(z1, z2){return bigInt(z1).equals(bigInt(z2)) ? 1 : 0;} - function ml_z_sqrt_rem(z){ - z = bigInt(z); - var zero = bigInt(0); - if(z.lt(zero)) - caml_invalid_argument("Z.sqrt_rem: square root of a negative number"); - var - root = bigInt(ml_z_root(z, 2)), - mul = root.multiply(root), - diff = z.subtract(mul); - return [0, ml_z_normalize(root), ml_z_normalize(diff)]; - } - function caml_string_lessthan(s1, s2){return s1 < s2 ? 1 : 0;} - function caml_string_greaterthan(s1, s2){return caml_string_lessthan(s2, s1); - } - function caml_div(x, y){ - if(y == 0) caml_raise_zero_divide(); - return x / y | 0; - } - function caml_obj_dup(x){ - var l = x.length, a = new Array(l); - for(var i = 0; i < l; i++) a[i] = x[i]; - return a; - } - function caml_ephe_get_data_copy(x){ - return x[caml_ephe_data_offset] === undefined - ? 0 - : [0, caml_obj_dup(x[caml_ephe_data_offset])]; - } - function caml_memprof_start(rate, stack_size, tracker){return 0;} - function ml_z_perfect_square(z){ - z = bigInt(z); - if(z.lt(bigInt(0))) return 0; - var root = bigInt(ml_z_root(z, 2)); - return root.multiply(root).eq(z) ? 1 : 0; - } - function caml_sys_get_argv(a){return [0, caml_argv[1], caml_argv];} - function caml_ml_domain_set_name(_name){return 0;} - function caml_js_to_bool(x){return + x;} - function caml_gr_create_image(x, y){ - var s = caml_gr_state_get(); - return s.context.createImageData(x, y); - } - function caml_ephe_get_key_copy(x, i){ - if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.get_copy"); - var y = caml_ephe_get_key(x, i); - if(y === 0) return y; - var z = y[1]; - if(z instanceof Array) return [0, caml_obj_dup(z)]; - return y; - } - function caml_lessthan(x, y){return + (caml_compare_val(x, y, false) < 0);} - function caml_raw_backtrace_next_slot(){return 0;} - function ml_z_to_nativeint(z1){return ml_z_to_int(z1);} - function caml_build_symbols(toc){ - var symb; - while(toc) - if(caml_jsstring_of_string(toc[1][1]) == "SYJS"){symb = toc[1][2]; break;} - else - toc = toc[2]; - var r = {}; - if(symb) - for(var i = 1; i < symb.length; i++) - r[caml_jsstring_of_string(symb[i][1])] = symb[i][2]; - return r; - } - function caml_register_global(n, v, name_opt){ - if(name_opt){ - var name = name_opt; - if(globalThis.toplevelReloc) - n = caml_callback(globalThis.toplevelReloc, [name]); - else if(caml_global_data.toc){ - if(! caml_global_data.symbols) - caml_global_data.symbols = caml_build_symbols(caml_global_data.toc); - var nid = caml_global_data.symbols[name]; - if(nid >= 0) - n = nid; - else - caml_failwith("caml_register_global: cannot locate " + name); - } - } - caml_global_data[n + 1] = v; - if(name_opt) caml_global_data[name_opt] = v; - } - function mult_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat3, ofs3, len3){ - var carry = 0; - for(var i = 0; i < len3; i++) - carry += - mult_digit_nat - (nat1, ofs1 + i, len1 - i, nat2, ofs2, len2, nat3, ofs3 + i); - return carry; - } - function square_nat(nat1, ofs1, len1, nat2, ofs2, len2){ - var carry = 0; - carry += add_nat(nat1, ofs1, len1, nat1, ofs1, len1, 0); - carry += mult_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat2, ofs2, len2); - return carry; - } - function caml_js_from_float(x){return x;} - function caml_floatarray_create(len){ - if(len < 0) caml_array_bound_error(); - var len = len + 1 | 0, b = new Array(len); - b[0] = 254; - for(var i = 1; i < len; i++) b[i] = 0; - return b; - } - function caml_gc_stat(){ - return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - } - function caml_get_major_credit(n){return 0;} - function caml_sys_modify_argv(arg){caml_argv = arg; return 0;} - var caml_method_cache = []; - function caml_get_public_method(obj, tag, cacheid){ - var meths = obj[1], ofs = caml_method_cache[cacheid]; - if(ofs === undefined) - for(var i = caml_method_cache.length; i < cacheid; i++) - caml_method_cache[i] = 0; - else if(meths[ofs] === tag) return meths[ofs - 1]; - var li = 3, hi = meths[1] * 2 + 1, mi; - while(li < hi){ - mi = li + hi >> 1 | 1; - if(tag < meths[mi + 1]) hi = mi - 2; else li = mi; - } - caml_method_cache[cacheid] = li + 1; - return tag == meths[li + 1] ? meths[li] : 0; - } - function caml_js_get_console(){ - var - c = console, - m = - ["log", - "debug", - "info", - "warn", - "error", - "assert", - "dir", - "dirxml", - "trace", - "group", - "groupCollapsed", - "groupEnd", - "time", - "timeEnd"]; - function f(){} - for(var i = 0; i < m.length; i++) if(! c[m[i]]) c[m[i]] = f; - return c; - } - function caml_sys_unsafe_getenv(name){return caml_sys_getenv(name);} - function caml_ml_open_descriptor_in(fd){ - var file = caml_sys_fds[fd]; - if(file.flags.wronly) caml_raise_sys_error("fd " + fd + " is writeonly"); - var - refill = null, - channel = - {file: file, - offset: file.flags.append ? file.length() : 0, - fd: fd, - opened: true, - out: false, - buffer_curr: 0, - buffer_max: 0, - buffer: new Uint8Array(65536), - refill: refill}; - caml_ml_channels[channel.fd] = channel; - return channel.fd; - } - function bigstring_of_typed_array(ba){ - var - ta = - new - Uint8Array - (ba.buffer, ba.byteOffset, ba.length * ba.BYTES_PER_ELEMENT); - return caml_ba_create_unsafe(12, 0, [ta.length], ta); - } - function caml_round_float(x){return Math.round(x);} - function ml_z_of_bits(z1){ - var r = bigInt.zero, base1 = bigInt(256), base = bigInt.one; - for(var i = 0; i < caml_ml_string_length(z1); i++){ - var d = caml_string_unsafe_get(z1, i); - r = bigInt(base).multiply(d).add(r); - base = bigInt(base).multiply(base1); - } - return ml_z_normalize(r); - } - function caml_ojs_new_arr(c, a){ - switch(a.length){ - case 0: - return new c(); - case 1: - return new c(a[0]); - case 2: - return new c(a[0], a[1]); - case 3: - return new c(a[0], a[1], a[2]); - case 4: - return new c(a[0], a[1], a[2], a[3]); - case 5: - return new c(a[0], a[1], a[2], a[3], a[4]); - case 6: - return new c(a[0], a[1], a[2], a[3], a[4], a[5]); - case 7: - return new c(a[0], a[1], a[2], a[3], a[4], a[5], a[6]); - } - function F(){return c.apply(this, a);} - F.prototype = c.prototype; - return new F(); - } - function complement_nat(nat, ofs, len){ - for(var i = 0; i < len; i++) - nat.data[ofs + i] = (- 1 >>> 0) - (nat.data[ofs + i] >>> 0); - } - function ml_z_logxor(z1, z2){ - return ml_z_normalize(bigInt(z1).xor(bigInt(z2))); - } - var caml_domain_dls = [0]; - function caml_domain_dls_set(a){caml_domain_dls = a;} - function caml_lazy_read_result(o){ - return caml_obj_tag(o) == 250 ? o[1] : o; - } - var caml_js_regexps = {amp: /&/g, lt: / 1023){ - exp -= 1023; - x *= Math.pow(2, 1023); - if(exp > 1023){exp -= 1023; x *= Math.pow(2, 1023);} - } - if(exp < - 1023){exp += 1023; x *= Math.pow(2, - 1023);} - x *= Math.pow(2, exp); - return x; - } - function caml_gr_state_set(ctx){ - caml_gr_state = ctx; - caml_gr_state_init(); - return 0; - } - function caml_zarith_unmarshal(reader, sz){ - var negate; - switch(reader.read8u()){ - case 1: - negate = true; break; - case 0: - negate = false; break; - default: caml_failwith("input_value: z (malformed input)"); - } - var len = reader.read32u(), x = bigInt(0); - for(var i = 0; i < len / 4; i++){ - var y = bigInt(reader.read8u()); - y = y.add(reader.read8u() << 8); - y = y.add(reader.read8u() << 16); - y = y.add(reader.read8u() << 24 >>> 0); - x = y.shiftLeft(i * 32).add(x); - } - if(negate) x = x.negate(); - sz[0] = len + 4; - return ml_z_normalize(x); - } - function ml_z_trailing_zeros(z){ - z = bigInt(z).abs(); - var zero = bigInt(0), one = bigInt(1); - if(z.equals(zero)) return 0x7fffffff; - var i = 0; - z = z.xor(z.prev()).shiftRight(1); - for(i = 0; ! z.equals(bigInt.zero); i++) z = z.shiftRight(1); - return i; - } - function caml_js_wrap_callback_strict(arity, f){ - return function(){ - var - n = arguments.length, - args = new Array(arity), - len = Math.min(arguments.length, arity); - for(var i = 0; i < len; i++) args[i] = arguments[i]; - return caml_callback(f, args);}; - } - function caml_gc_minor_words(unit){return 0;} - function caml_get_current_callstack(){return [0];} - function land_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] &= nat2.data[ofs2]; return 0; - } - function caml_int64_mod(x, y){return x.mod(y);} - function caml_obj_set_tag(x, tag){x[0] = tag; return 0;} - function caml_int32_bswap(x){ - return (x & 0x000000FF) << 24 | (x & 0x0000FF00) << 8 - | (x & 0x00FF0000) >>> 8 - | (x & 0xFF000000) >>> 24; - } - function caml_ba_set_3(ba, i0, i1, i2, v){ - ba.set(ba.offset([i0, i1, i2]), v); - return 0; - } - function ml_z_jacobi(n, k){ - n = bigInt(n); - k = bigInt(k); - if(k.leq(bigInt(0)) || k.mod(bigInt(2)).neq(bigInt(1))) - caml_invalid_argument("Z.jacobi: second argument is negative or even"); - n = n.mod(k); - if(n.lt(bigInt(0))) n = n.add(k); - var t = 1; - while(! n.equals(bigInt(0))){ - while(n.isDivisibleBy(bigInt(2))){ - n = n.divide(bigInt(2)); - var r = k.mod(bigInt(8)); - if(r.equals(bigInt(3)) || r.equals(bigInt(5))) t = - t; - } - var n1 = n, k1 = k; - n = k1; - k = n1; - if - (n.mod(bigInt(4)).equals(bigInt(3)) - && k.mod(bigInt(4)).equals(bigInt(3))) - t = - t; - n = n.mod(k); - } - return k.equals(bigInt(1)) ? t : 0; - } - function ml_z_legendre(a, b){return ml_z_jacobi(a, b);} - function caml_js_instanceof(o, c){return o instanceof c ? 1 : 0;} - function caml_get_major_bucket(n){return 0;} - function nth_digit_nat_native(nat, ofs){return nat.data[ofs];} - function set_digit_nat_native(nat, ofs, digit){nat.data[ofs] = digit; return 0; - } - function caml_string_set64(s, i, i64){caml_failwith("caml_string_set64");} - function caml_gr_state_create(canvas, w, h){ - var context = canvas.getContext("2d"); - return {context: context, - canvas: canvas, - x: 0, - y: 0, - width: w, - height: h, - line_width: 1, - font: caml_string_of_jsbytes("fixed"), - text_size: 26, - color: 0x000000, - title: caml_string_of_jsbytes("")}; - } - function caml_gr_draw_arc(x, y, rx, ry, a1, a2){ - var s = caml_gr_state_get(); - s.context.beginPath(); - caml_gr_arc_aux(s.context, x, s.height - y, rx, ry, a1, a2); - s.context.stroke(); - return 0; - } - function caml_ba_map_file(vfd, kind, layout, shared, dims, pos){caml_failwith("caml_ba_map_file not implemented"); - } - function caml_ba_map_file_bytecode(argv, argn){ - return caml_ba_map_file - (argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]); - } - function caml_ba_create_from(data1, data2, jstyp, kind, layout, dims){ - if(data2 || caml_ba_get_size_per_element(kind) == 2) - caml_invalid_argument - ("caml_ba_create_from: use return caml_ba_create_unsafe"); - return caml_ba_create_unsafe(kind, layout, dims, data1); - } - function caml_tanh_float(x){return Math.tanh(x);} - function caml_runtime_events_start(){return 0;} - function caml_gr_draw_str(str){ - var s = caml_gr_state_get(), m = s.context.measureText(str), dx = m.width; - s.context.fillText(str, s.x, s.height - s.y); - s.x += dx | 0; - return 0; - } - function caml_gr_draw_string(str){ - caml_gr_draw_str(caml_jsstring_of_string(str)); - return 0; - } - function ml_z_primorial(a){ - var one = bigInt(1), two = bigInt(2), z1 = one, res = one; - a = bigInt(a); - while(z1.leq(a)){ - if(z1.isProbablePrime(25)) res = res.multiply(z1); - if(z1.equals(one) || z1.equals(two)) - z1 = z1.add(one); - else - z1 = z1.add(two); - } - return ml_z_normalize(res); - } - function caml_gr_draw_char(c){ - caml_gr_draw_str(String.fromCharCode(c)); - return 0; - } - function caml_unmount(name){ - var - path = caml_make_path(name), - name = caml_trailing_slash(path.join("/")), - idx = - 1; - for(var i = 0; i < jsoo_mount_point.length; i++) - if(jsoo_mount_point[i].path == name) idx = i; - if(idx > - 1) jsoo_mount_point.splice(idx, 1); - return 0; - } - function caml_bigstring_blit_ba_to_ba(ba1, pos1, ba2, pos2, len){ - if(12 != ba1.kind) - caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); - if(12 != ba2.kind) - caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); - if(len == 0) return 0; - var ofs1 = ba1.offset(pos1), ofs2 = ba2.offset(pos2); - if(ofs1 + len > ba1.data.length) caml_array_bound_error(); - if(ofs2 + len > ba2.data.length) caml_array_bound_error(); - var slice = ba1.data.subarray(ofs1, ofs1 + len); - ba2.data.set(slice, pos2); - return 0; - } - function ml_z_fib(i){ - if(i < 0) caml_invalid_argument("Z.fib: negative arguments"); - if(i == 0 || i == 1) return i; - var a = bigInt(0), b = bigInt(1); - for(var k = 1; k < i; k++){var b2 = b; b = a.add(b); a = b2;} - return ml_z_normalize(b); - } - function caml_input_value_from_string(s, ofs){ - var reader = new MlStringReader(s, typeof ofs == "number" ? ofs : ofs[0]); - return caml_input_value_from_reader(reader, ofs); - } - function caml_ml_pos_in_64(chanid){ - return caml_int64_of_float(caml_pos_in(chanid)); - } - function caml_gr_draw_image(im, x, y){ - var s = caml_gr_state_get(); - if(! im.image){ - var canvas = document.createElement("canvas"); - canvas.width = s.width; - canvas.height = s.height; - canvas.getContext("2d").putImageData(im, 0, 0); - var image = new globalThis.Image(); - image.onload = - function(){ - s.context.drawImage(image, x, s.height - im.height - y); - im.image = image; - }; - image.src = canvas.toDataURL("image/png"); - } - else - s.context.drawImage(im.image, x, s.height - im.height - y); - return 0; - } - function caml_register_channel_for_spacetime(_channel){return 0;} - function caml_string_set(s, i, c){caml_failwith("caml_string_set");} - function caml_sys_rmdir(name){ - var root = resolve_fs_device(name); - root.device.rmdir(root.rest); - return 0; - } - function caml_unix_symlink(to_dir, src, dst){ - var src_root = resolve_fs_device(src), dst_root = resolve_fs_device(dst); - if(src_root.device != dst_root.device) - caml_failwith - ("caml_unix_symlink: cannot symlink between two filesystems"); - if(! src_root.device.symlink) - caml_failwith("caml_unix_symlink: not implemented"); - return src_root.device.symlink(to_dir, src_root.rest, dst_root.rest, true); - } - function caml_ml_pos_out(chanid){return caml_pos_out(chanid);} - function caml_spacetime_enabled(_unit){return 0;} - function caml_bytes_notequal(s1, s2){return 1 - caml_bytes_equal(s1, s2);} - function caml_runtime_parameters(_unit){return caml_string_of_jsbytes("");} - function caml_js_object(a){ - var o = {}; - for(var i = 1; i < a.length; i++){ - var p = a[i]; - o[caml_jsstring_of_string(p[1])] = p[2]; - } - return o; - } - function caml_ba_create(kind, layout, dims_ml){ - var - dims = caml_js_from_array(dims_ml), - data = caml_ba_create_buffer(kind, caml_ba_get_size(dims)); - return caml_ba_create_unsafe(kind, layout, dims, data); - } - function caml_gr_remember_mode(){ - caml_failwith("caml_gr_remember_mode not Implemented"); - } - function caml_fma_float(x, y, z){ - var - SPLIT = Math.pow(2, 27) + 1, - MIN_VALUE = Math.pow(2, - 1022), - EPSILON = Math.pow(2, - 52), - C = 416, - A = Math.pow(2, + C), - B = Math.pow(2, - C); - function multiply(a, b){ - var - at = SPLIT * a, - ahi = at - (at - a), - alo = a - ahi, - bt = SPLIT * b, - bhi = bt - (bt - b), - blo = b - bhi, - p = a * b, - e = ahi * bhi - p + ahi * blo + alo * bhi + alo * blo; - return {p: p, e: e}; - } - function add(a, b){ - var s = a + b, v = s - a, e = a - (s - v) + (b - v); - return {s: s, e: e}; - } - function adjust(x, y){ - return x !== 0 && y !== 0 && SPLIT * x - (SPLIT * x - x) === x - ? x * (1 + (x < 0 ? - 1 : + 1) * (y < 0 ? - 1 : + 1) * EPSILON) - : x; - } - if - (x === 0 || x !== x || x === + (1 / 0) || x === - (1 / 0) || y === 0 - || y !== y - || y === + (1 / 0) - || y === - (1 / 0)) - return x * y + z; - if(z === 0) return x * y; - if(z !== z || z === + (1 / 0) || z === - (1 / 0)) return z; - var scale = 1; - while(Math.abs(x) > A){scale *= A; x *= B;} - while(Math.abs(y) > A){scale *= A; y *= B;} - if(scale === 1 / 0) return x * y * scale; - while(Math.abs(x) < B){scale *= B; x *= A;} - while(Math.abs(y) < B){scale *= B; y *= A;} - if(scale === 0) return z; - var xs = x, ys = y, zs = z / scale; - if(Math.abs(zs) > Math.abs(xs * ys) * 4 / EPSILON) return z; - if(Math.abs(zs) < Math.abs(xs * ys) * EPSILON / 4 * EPSILON / 4) - zs = (z < 0 ? - 1 : + 1) * MIN_VALUE; - var - xy = multiply(xs, ys), - s = add(xy.p, zs), - u = add(xy.e, s.e), - i = add(s.s, u.s), - f = i.s + adjust(i.e, u.e); - if(f === 0) return f; - var fs = f * scale; - if(Math.abs(fs) > MIN_VALUE) return fs; - return fs + adjust(f - fs / scale, i.e) * scale; - } - function caml_recommended_domain_count(unit){return 1;} - function caml_bswap16(x){return (x & 0x00FF) << 8 | (x & 0xFF00) >> 8;} - function caml_ml_set_binary_mode(chanid, mode){ - var chan = caml_ml_channels[chanid]; - chan.file.flags.text = ! mode; - chan.file.flags.binary = mode; - return 0; - } - function caml_final_register(){return 0;} - function caml_gr_draw_rect(x, y, w, h){ - var s = caml_gr_state_get(); - s.context.strokeRect(x, s.height - y, w, - h); - return 0; - } - function caml_string_get16(s, i){ - if(i >>> 0 >= caml_ml_string_length(s) - 1) caml_string_bound_error(); - var - b1 = caml_string_unsafe_get(s, i), - b2 = caml_string_unsafe_get(s, i + 1); - return b2 << 8 | b1; - } - function caml_output_value(chanid, v, flags){ - var s = caml_output_value_to_string(v, flags); - caml_ml_output(chanid, s, 0, caml_ml_string_length(s)); - return 0; - } - function caml_ba_get_3(ba, i0, i1, i2){ - return ba.get(ba.offset([i0, i1, i2])); - } - function caml_ephe_blit_key(a1, i1, a2, i2, len){ - caml_array_blit - (a1, - caml_ephe_key_offset + i1 - 1, - a2, - caml_ephe_key_offset + i2 - 1, - len); - return 0; - } - function ml_z_to_int32(z1){return ml_z_to_int(z1);} - var caml_initial_time = new Date().getTime() * 0.001; - function caml_sys_time(){ - var now = new Date().getTime(); - return now * 0.001 - caml_initial_time; - } - function caml_sys_time_include_children(b){return caml_sys_time();} - function caml_check_bound(array, index){ - if(index >>> 0 >= array.length - 1) caml_array_bound_error(); - return array; - } - function caml_unix_getpwuid(unit){caml_raise_not_found();} - function ml_z_compare(z1, z2){return bigInt(z1).compare(bigInt(z2));} - function caml_hash(count, limit, seed, obj){ - var queue, rd, wr, sz, num, h, v, i, len; - sz = limit; - if(sz < 0 || sz > 256) sz = 256; - num = count; - h = seed; - queue = [obj]; - rd = 0; - wr = 1; - while(rd < wr && num > 0){ - v = queue[rd++]; - if(v && v.caml_custom){ - if - (caml_custom_ops[v.caml_custom] && caml_custom_ops[v.caml_custom].hash){ - var hh = caml_custom_ops[v.caml_custom].hash(v); - h = caml_hash_mix_int(h, hh); - num--; - } - } - else if(v instanceof Array && v[0] === (v[0] | 0)) - switch(v[0]){ - case 248: - h = caml_hash_mix_int(h, v[2]); num--; break; - case 250: - queue[--rd] = v[1]; break; - default: - if(caml_is_continuation_tag(v[0])) break; - var tag = v.length - 1 << 10 | v[0]; - h = caml_hash_mix_int(h, tag); - for(i = 1, len = v.length; i < len; i++){if(wr >= sz) break; queue[wr++] = v[i]; - } - break; - } - else if(caml_is_ml_bytes(v)){ - h = caml_hash_mix_bytes(h, v); - num--; - } - else if(caml_is_ml_string(v)){ - h = caml_hash_mix_string(h, v); - num--; - } - else if(typeof v === "string"){ - h = caml_hash_mix_jsbytes(h, v); - num--; - } - else if(v === (v | 0)){ - h = caml_hash_mix_int(h, v + v + 1); - num--; - } - else if(v === + v){h = caml_hash_mix_float(h, v); num--;} - } - h = caml_hash_mix_final(h); - return h & 0x3FFFFFFF; - } - function caml_ba_to_typed_array(ba){return ba.data;} - function caml_domain_dls_get(unit){return caml_domain_dls;} - function caml_bytes_get32(s, i){ - if(i >>> 0 >= s.l - 3) caml_bytes_bound_error(); - var - b1 = caml_bytes_unsafe_get(s, i), - b2 = caml_bytes_unsafe_get(s, i + 1), - b3 = caml_bytes_unsafe_get(s, i + 2), - b4 = caml_bytes_unsafe_get(s, i + 3); - return b4 << 24 | b3 << 16 | b2 << 8 | b1; - } - function caml_frexp_float(x){ - if(x == 0 || ! isFinite(x)) return [0, x, 0]; - var neg = x < 0; - if(neg) x = - x; - var exp = Math.max(- 1023, jsoo_floor_log2(x) + 1); - x *= Math.pow(2, - exp); - while(x < 0.5){x *= 2; exp--;} - while(x >= 1){x *= 0.5; exp++;} - if(neg) x = - x; - return [0, x, exp]; - } - function ml_z_pred(z1){return ml_z_normalize(bigInt(z1).prev());} - function caml_string_get64(s, i){ - if(i >>> 0 >= caml_ml_string_length(s) - 7) caml_string_bound_error(); - var a = new Array(8); - for(var j = 0; j < 8; j++) a[7 - j] = caml_string_unsafe_get(s, i + j); - return caml_int64_of_bytes(a); - } - function caml_js_error_option_of_exception(exn){ - if(exn.js_error) return [0, exn.js_error]; - return 0; - } - function caml_ml_pos_out_64(chanid){ - return caml_int64_of_float(caml_pos_out(chanid)); - } - function ml_z_remove(a, b){ - var zero = bigInt(0), one = bigInt(1); - a = bigInt(a); - b = bigInt(b); - if(b.equals(zero)) caml_raise_zero_divide(); - if(a.equals(zero) || b.abs().equals(one)) return [0, a, 0]; - var i = 0; - while(a.isDivisibleBy(b)){a = a.divide(b); i++;} - return [0, ml_z_normalize(a), i]; - } - function ml_z_extract(z1, pos, len){ - z1 = bigInt(z1); - return ml_z_normalize - (z1.shiftRight(pos).and(bigInt(2).pow(len).subtract(1))); - } - function ml_z_of_float(f1){ - if(f1 == Infinity || f1 == - Infinity || f1 != f1) - caml_raise_constant(caml_named_value("ml_z_overflow")); - return ml_z_normalize(bigInt(f1 < 0 ? Math.ceil(f1) : Math.floor(f1))); - } - function ml_z_lognot(z1){return ml_z_normalize(bigInt(z1).not());} - function caml_unix_findclose(dir_handle){return caml_unix_closedir(dir_handle); - } - function caml_gr_close_subwindow(a){ - caml_failwith("caml_gr_close_subwindow not Implemented"); - } - function caml_floatarray_blit(a1, i1, a2, i2, len){ - if(i2 <= i1) - for(var j = 1; j <= len; j++) a2[i2 + j] = a1[i1 + j]; - else - for(var j = len; j >= 1; j--) a2[i2 + j] = a1[i1 + j]; - return 0; - } - function caml_get_minor_free(unit){return 0;} - function caml_set_static_env(k, v){ - if(! globalThis.jsoo_static_env) globalThis.jsoo_static_env = {}; - globalThis.jsoo_static_env[k] = v; - return 0; - } - function caml_ba_change_layout(ba, layout){ - if(ba.layout == layout) return ba; - var new_dims = []; - for(var i = 0; i < ba.dims.length; i++) - new_dims[i] = ba.dims[ba.dims.length - i - 1]; - return caml_ba_create_unsafe(ba.kind, layout, new_dims, ba.data); - } - function caml_js_new(c, a){ - switch(a.length){ - case 1: - return new c(); - case 2: - return new c(a[1]); - case 3: - return new c(a[1], a[2]); - case 4: - return new c(a[1], a[2], a[3]); - case 5: - return new c(a[1], a[2], a[3], a[4]); - case 6: - return new c(a[1], a[2], a[3], a[4], a[5]); - case 7: - return new c(a[1], a[2], a[3], a[4], a[5], a[6]); - case 8: - return new c(a[1], a[2], a[3], a[4], a[5], a[6], a[7]); - } - function F(){return c.apply(this, caml_js_from_array(a));} - F.prototype = c.prototype; - return new F(); - } - function caml_gr_current_y(){var s = caml_gr_state_get(); return s.y;} - function caml_format_int(fmt, i){ - if(caml_jsbytes_of_string(fmt) == "%d") - return caml_string_of_jsbytes("" + i); - var f = caml_parse_format(fmt); - if(i < 0) if(f.signedconv){f.sign = - 1; i = - i;} else i >>>= 0; - var s = i.toString(f.base); - if(f.prec >= 0){ - f.filler = " "; - var n = f.prec - s.length; - if(n > 0) s = caml_str_repeat(n, "0") + s; - } - return caml_finish_formatting(f, s); - } - function jsoo_effect_not_supported(){ - caml_failwith("Effect handlers are not supported"); - } - function caml_continuation_use_and_update_handler_noexc - (cont, hval, hexn, heff){ - var stack = caml_continuation_use_noexc(cont); - stack[3] = [0, hval, hexn, heff]; - return stack; - } - function caml_obj_truncate(x, s){ - if(s <= 0 || s + 1 > x.length) caml_invalid_argument("Obj.truncate"); - if(x.length != s + 1) x.length = s + 1; - return 0; - } - function caml_js_to_string(s){return caml_string_of_jsstring(s);} - function is_digit_odd(nat, ofs){if(nat.data[ofs] & 1) return 1; return 0;} - function caml_runtime_variant(_unit){return caml_string_of_jsbytes("");} - function caml_ml_open_descriptor_out(fd){ - var file = caml_sys_fds[fd]; - if(file.flags.rdonly) caml_raise_sys_error("fd " + fd + " is readonly"); - var - buffered = file.flags.buffered !== undefined ? file.flags.buffered : 1, - channel = - {file: file, - offset: file.flags.append ? file.length() : 0, - fd: fd, - opened: true, - out: true, - buffer_curr: 0, - buffer: new Uint8Array(65536), - buffered: buffered}; - caml_ml_channels[channel.fd] = channel; - return channel.fd; - } - function caml_array_concat(l){ - var a = [0]; - while(l !== 0){ - var b = l[1]; - for(var i = 1; i < b.length; i++) a.push(b[i]); - l = l[2]; - } - return a; - } - function caml_gr_open_graph(info){ - var info = caml_jsstring_of_string(info); - function get(name){ - var res = info.match("(^|,) *" + name + " *= *([a-zA-Z0-9_]+) *(,|$)"); - if(res) return res[2]; - } - var specs = []; - if(! (info == "")) specs.push(info); - var target = get("target"); - if(! target) target = ""; - var status = get("status"); - if(! status) specs.push("status=1"); - var w = get("width"); - w = w ? parseInt(w) : 200; - specs.push("width=" + w); - var h = get("height"); - h = h ? parseInt(h) : 200; - specs.push("height=" + h); - var win = globalThis.open("about:blank", target, specs.join(",")); - if(! win) caml_failwith("Graphics.open_graph: cannot open the window"); - var doc = win.document, canvas = doc.createElement("canvas"); - canvas.width = w; - canvas.height = h; - var ctx = caml_gr_state_create(canvas, w, h); - ctx.set_title = function(title){doc.title = title;}; - caml_gr_state_set(ctx); - var body = doc.body; - body.style.margin = "0px"; - body.appendChild(canvas); - return 0; - } - function caml_make_float_vect(len){ - if(len < 0) caml_array_bound_error(); - var len = len + 1 | 0, b = new Array(len); - b[0] = 254; - for(var i = 1; i < len; i++) b[i] = 0; - return b; - } - function caml_cbrt_float(x){return Math.cbrt(x);} - function caml_eventlog_pause(unit){return 0;} - function caml_memprof_stop(unit){return 0;} - function caml_greaterequal(x, y){ - return + (caml_compare_val(x, y, false) >= 0); - } - function ml_z_numbits(z1){ - z1 = bigInt(z1).abs(); - var n = 0, upperBound = bigInt.one; - while(upperBound.leq(z1)){n += 1; upperBound = upperBound.multiply(2);} - return n; - } - function caml_get_exception_raw_backtrace(){return [0];} - function caml_log1p_float(x){return Math.log1p(x);} - function caml_runtime_events_free_cursor(cursor){return 0;} - function caml_lazy_make_forward(v){return [250, v];} - function lor_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] |= nat2.data[ofs2]; return 0; - } - function caml_gr_blit_image(im, x, y){ - var - s = caml_gr_state_get(), - im2 = - s.context.getImageData - (x, s.height - im.height - y, im.width, im.height); - for(var i = 0; i < im2.data.length; i += 4){ - im.data[i] = im2.data[i]; - im.data[i + 1] = im2.data[i + 1]; - im.data[i + 2] = im2.data[i + 2]; - im.data[i + 3] = im2.data[i + 3]; - } - return 0; - } - function caml_gr_window_id(a){ - caml_failwith("caml_gr_window_id not Implemented"); - } - function caml_js_on_ie(){ - var ua = globalThis.navigator ? globalThis.navigator.userAgent : ""; - return ua.indexOf("MSIE") != - 1 && ua.indexOf("Opera") != 0; - } - function caml_int64_shift_right(x, s){return x.shift_right(s);} - function caml_ba_layout(ba){return ba.layout;} - function caml_convert_raw_backtrace(){return [0];} - function caml_array_set(array, index, newval){ - if(index < 0 || index >= array.length - 1) caml_array_bound_error(); - array[index + 1] = newval; - return 0; - } - function caml_alloc_stack(hv, hx, hf){return 0;} - function caml_bytes_greaterequal(s1, s2){return caml_bytes_lessequal(s2, s1); - } - function ml_z_perfect_power(z){ - z = bigInt(z); - var zero = bigInt(0), one = bigInt(1); - if(z.equals(zero) || z.equals(one) || z.equals(one.negate())) return 1; - var log2z = ml_z_numbits(z.abs()); - for(var b = 2; b <= log2z; b++){ - if(z.lt(zero) && b % 2 == 0) continue; - var zp = z.abs(), p = bigInt(ml_z_root(zp, b)); - if(z.lt(zero)) p = p.negate(); - var r = bigInt(ml_z_pow(p, b)); - if(z.equals(r)) return 1; - } - return 0; - } - function set_digit_nat(nat, ofs, digit){nat.data[ofs] = digit; return 0;} - function ml_z_init(unit){ - caml_custom_ops["_z"] = - {serialize: caml_zarith_marshal, - deserialize: caml_zarith_unmarshal, - hash: ml_z_hash, - compare: ml_z_compare}; - return 0; - } - function caml_bytes_set16(s, i, i16){ - if(i >>> 0 >= s.l - 1) caml_bytes_bound_error(); - var b2 = 0xFF & i16 >> 8, b1 = 0xFF & i16; - caml_bytes_unsafe_set(s, i + 0, b1); - caml_bytes_unsafe_set(s, i + 1, b2); - return 0; - } - function caml_gr_doc_of_state(state){ - if(state.canvas.ownerDocument) return state.canvas.ownerDocument; - } - function caml_ml_output_int(chanid, i){ - var - arr = [i >> 24 & 0xFF, i >> 16 & 0xFF, i >> 8 & 0xFF, i & 0xFF], - s = caml_string_of_array(arr); - caml_ml_output(chanid, s, 0, 4); - return 0; - } - function caml_obj_with_tag(tag, x){ - var l = x.length, a = new Array(l); - a[0] = tag; - for(var i = 1; i < l; i++) a[i] = x[i]; - return a; - } - function caml_ml_channel_size(chanid){ - var chan = caml_ml_channels[chanid]; - return chan.file.length(); - } - function caml_raw_backtrace_slot(){ - caml_invalid_argument - ("Printexc.get_raw_backtrace_slot: index out of bounds"); - } - function caml_hexstring_of_float(x, prec, style){ - if(! isFinite(x)){ - if(isNaN(x)) return caml_string_of_jsstring("nan"); - return caml_string_of_jsstring(x > 0 ? "infinity" : "-infinity"); - } - var sign = x == 0 && 1 / x == - Infinity ? 1 : x >= 0 ? 0 : 1; - if(sign) x = - x; - var exp = 0; - if(x == 0) - ; - else if(x < 1) - while(x < 1 && exp > - 1022){x *= 2; exp--;} - else - while(x >= 2){x /= 2; exp++;} - var exp_sign = exp < 0 ? "" : "+", sign_str = ""; - if(sign) - sign_str = "-"; - else - switch(style){ - case 43: - sign_str = "+"; break; - case 32: - sign_str = " "; break; - default: break; - } - if(prec >= 0 && prec < 13){ - var cst = Math.pow(2, prec * 4); - x = Math.round(x * cst) / cst; - } - var x_str = x.toString(16); - if(prec >= 0){ - var idx = x_str.indexOf("."); - if(idx < 0) - x_str += "." + caml_str_repeat(prec, "0"); - else{ - var size = idx + 1 + prec; - if(x_str.length < size) - x_str += caml_str_repeat(size - x_str.length, "0"); - else - x_str = x_str.substr(0, size); - } - } - return caml_string_of_jsstring - (sign_str + "0x" + x_str + "p" + exp_sign + exp.toString(10)); - } - function caml_runtime_events_user_write(event, event_content){return 0;} - function caml_js_wrap_meth_callback_strict(arity, f){ - return function(){ - var args = new Array(arity + 1), len = Math.min(arguments.length, arity); - args[0] = this; - for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; - return caml_callback(f, args);}; - } - function ml_z_format(fmt, z1){ - z1 = bigInt(z1); - var - fmt = caml_jsbytes_of_string(fmt), - base = 10, - cas = 0, - width = 0, - alt = 0, - dir = 0, - sign = "", - pad = " ", - idx = 0, - prefix = ""; - while(fmt[idx] == "%") idx++; - for(;; idx++) - if(fmt[idx] == "#") - alt = 1; - else if(fmt[idx] == "0") - pad = "0"; - else if(fmt[idx] == "-") - dir = 1; - else if(fmt[idx] == " " || fmt[idx] == "+") sign = fmt[idx]; else break; - if(z1.lt(bigInt(0))){sign = "-"; z1 = z1.negate();} - for(; fmt[idx] >= "0" && fmt[idx] <= "9"; idx++) - width = 10 * width + + fmt[idx]; - switch(fmt[idx]){ - case "i": - case "d": - case "u": break; - case "b": - base = 2; if(alt) prefix = "0b"; break; - case "o": - base = 8; if(alt) prefix = "0o"; break; - case "x": - base = 16; if(alt) prefix = "0x"; break; - case "X": - base = 16; if(alt) prefix = "0X"; cas = 1; break; - default: caml_failwith("Unsupported format '" + fmt + "'"); - } - if(dir) pad = " "; - var res = z1.toString(base); - if(cas === 1) res = res.toUpperCase(); - var size = res.length; - if(pad == " ") - if(dir){ - res = sign + prefix + res; - for(; res.length < width;) res = res + pad; - } - else{ - res = sign + prefix + res; - for(; res.length < width;) res = pad + res; - } - else{ - var pre = sign + prefix; - for(; res.length + pre.length < width;) res = pad + res; - res = pre + res; - } - return caml_string_of_jsbytes(res); - } - function ml_z_size(z1){ - return bigInt(z1).toArray(Math.pow(2, 32)).value.length; - } - function ml_z_to_int64(z1){ - z1 = bigInt(z1); - if(! ml_z_fits_int64(z1)) - caml_raise_constant(caml_named_value("ml_z_overflow")); - var - mask = bigInt(0xffffffff), - lo = z1.and(mask).toJSNumber(), - hi = z1.shiftRight(32).and(mask).toJSNumber(), - x = caml_int64_create_lo_hi(lo, hi); - return x; - } - function caml_unix_readlink(name){ - var root = resolve_fs_device(name); - if(! root.device.readlink) - caml_failwith("caml_unix_readlink: not implemented"); - return root.device.readlink(root.rest, true); - } - function caml_backtrace_status(_unit){ - return caml_record_backtrace_flag ? 1 : 0; - } - function caml_install_signal_handler(){return 0;} - function caml_sys_argv(a){return caml_argv;} - function caml_ba_fill(ba, v){ba.fill(v); return 0;} - function caml_modf_float(x){ - if(isFinite(x)){ - var neg = 1 / x < 0; - x = Math.abs(x); - var i = Math.floor(x), f = x - i; - if(neg){i = - i; f = - f;} - return [0, f, i]; - } - if(isNaN(x)) return [0, NaN, NaN]; - return [0, 1 / x, x]; - } - function caml_gc_get(){return [0, 0, 0, 0, 0, 0, 0, 0, 0];} - function caml_float_compare(x, y){ - if(x === y) return 0; - if(x < y) return - 1; - if(x > y) return 1; - if(x === x) return 1; - if(y === y) return - 1; - return 0; - } - function ml_z_shift_right_trunc(z1, z2){ - return ml_z_div(bigInt(z1), bigInt(2).pow(z2)); - } - function caml_string_set32(s, i, i32){caml_failwith("caml_string_set32");} - function caml_parse_engine(tables, env, cmd, arg){ - var - ERRCODE = 256, - loop = 6, - testshift = 7, - shift = 8, - shift_recover = 9, - reduce = 10, - READ_TOKEN = 0, - RAISE_PARSE_ERROR = 1, - GROW_STACKS_1 = 2, - GROW_STACKS_2 = 3, - COMPUTE_SEMANTIC_ACTION = 4, - CALL_ERROR_FUNCTION = 5, - env_s_stack = 1, - env_v_stack = 2, - env_symb_start_stack = 3, - env_symb_end_stack = 4, - env_stacksize = 5, - env_stackbase = 6, - env_curr_char = 7, - env_lval = 8, - env_symb_start = 9, - env_symb_end = 10, - env_asp = 11, - env_rule_len = 12, - env_rule_number = 13, - env_sp = 14, - env_state = 15, - env_errflag = 16, - tbl_transl_const = 2, - tbl_transl_block = 3, - tbl_lhs = 4, - tbl_len = 5, - tbl_defred = 6, - tbl_dgoto = 7, - tbl_sindex = 8, - tbl_rindex = 9, - tbl_gindex = 10, - tbl_tablesize = 11, - tbl_table = 12, - tbl_check = 13, - tbl_names_const = 15, - tbl_names_block = 16; - function log(x){ - var s = caml_string_of_jsbytes(x + "\n"); - caml_ml_output(2, s, 0, caml_ml_string_length(s)); - } - function token_name(names, number){ - var str = caml_jsstring_of_string(names); - if(str[0] == "\x00") return ""; - return str.split("\x00")[number]; - } - function print_token(state, tok){ - var token, kind; - if(tok instanceof Array){ - token = token_name(tables[tbl_names_block], tok[0]); - if(typeof tok[1] == "number") - kind = "" + tok[1]; - else if(typeof tok[1] == "string") - kind = tok[1]; - else if(tok[1] instanceof MlBytes) - kind = caml_jsbytes_of_string(tok[1]); - else - kind = "_"; - log("State " + state + ": read token " + token + "(" + kind + ")"); - } - else{ - token = token_name(tables[tbl_names_const], tok); - log("State " + state + ": read token " + token); - } - } - if(! tables.dgoto){ - tables.defred = caml_lex_array(tables[tbl_defred]); - tables.sindex = caml_lex_array(tables[tbl_sindex]); - tables.check = caml_lex_array(tables[tbl_check]); - tables.rindex = caml_lex_array(tables[tbl_rindex]); - tables.table = caml_lex_array(tables[tbl_table]); - tables.len = caml_lex_array(tables[tbl_len]); - tables.lhs = caml_lex_array(tables[tbl_lhs]); - tables.gindex = caml_lex_array(tables[tbl_gindex]); - tables.dgoto = caml_lex_array(tables[tbl_dgoto]); - } - var - res = 0, - n, - n1, - n2, - state1, - sp = env[env_sp], - state = env[env_state], - errflag = env[env_errflag]; - exit: - for(;;) - next: - switch(cmd){ - case 0: - state = 0; errflag = 0; - case 6: - n = tables.defred[state]; - if(n != 0){cmd = reduce; break;} - if(env[env_curr_char] >= 0){cmd = testshift; break;} - res = READ_TOKEN; - break exit; - case 1: - if(arg instanceof Array){ - env[env_curr_char] = tables[tbl_transl_block][arg[0] + 1]; - env[env_lval] = arg[1]; - } - else{ - env[env_curr_char] = tables[tbl_transl_const][arg + 1]; - env[env_lval] = 0; - } - if(caml_parser_trace) print_token(state, arg); - case 7: - n1 = tables.sindex[state]; - n2 = n1 + env[env_curr_char]; - if - (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] - && tables.check[n2] == env[env_curr_char]){cmd = shift; break;} - n1 = tables.rindex[state]; - n2 = n1 + env[env_curr_char]; - if - (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] - && tables.check[n2] == env[env_curr_char]){ - n = tables.table[n2]; - cmd = reduce; - break; - } - if(errflag <= 0){res = CALL_ERROR_FUNCTION; break exit;} - case 5: - if(errflag < 3){ - errflag = 3; - for(;;){ - state1 = env[env_s_stack][sp + 1]; - n1 = tables.sindex[state1]; - n2 = n1 + ERRCODE; - if - (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] - && tables.check[n2] == ERRCODE){ - if(caml_parser_trace) log("Recovering in state " + state1); - cmd = shift_recover; - break next; - } - else{ - if(caml_parser_trace) log("Discarding state " + state1); - if(sp <= env[env_stackbase]){ - if(caml_parser_trace) log("No more states to discard"); - return RAISE_PARSE_ERROR; - } - sp--; - } - } - } - else{ - if(env[env_curr_char] == 0) return RAISE_PARSE_ERROR; - if(caml_parser_trace) log("Discarding last token read"); - env[env_curr_char] = - 1; - cmd = loop; - break; - } - case 8: - env[env_curr_char] = - 1; if(errflag > 0) errflag--; - case 9: - if(caml_parser_trace) - log("State " + state + ": shift to state " + tables.table[n2]); - state = tables.table[n2]; - sp++; - if(sp >= env[env_stacksize]){res = GROW_STACKS_1; break exit;} - case 2: - env[env_s_stack][sp + 1] = state; - env[env_v_stack][sp + 1] = env[env_lval]; - env[env_symb_start_stack][sp + 1] = env[env_symb_start]; - env[env_symb_end_stack][sp + 1] = env[env_symb_end]; - cmd = loop; - break; - case 10: - if(caml_parser_trace) log("State " + state + ": reduce by rule " + n); - var m = tables.len[n]; - env[env_asp] = sp; - env[env_rule_number] = n; - env[env_rule_len] = m; - sp = sp - m + 1; - m = tables.lhs[n]; - state1 = env[env_s_stack][sp]; - n1 = tables.gindex[m]; - n2 = n1 + state1; - if - (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] - && tables.check[n2] == state1) - state = tables.table[n2]; - else - state = tables.dgoto[m]; - if(sp >= env[env_stacksize]){res = GROW_STACKS_2; break exit;} - case 3: - res = COMPUTE_SEMANTIC_ACTION; break exit; - case 4: - env[env_s_stack][sp + 1] = state; - env[env_v_stack][sp + 1] = arg; - var asp = env[env_asp]; - env[env_symb_end_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; - if(sp > asp) - env[env_symb_start_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; - cmd = loop; - break; - default: return RAISE_PARSE_ERROR; - } - env[env_sp] = sp; - env[env_state] = state; - env[env_errflag] = errflag; - return res; - } - function caml_jsoo_flags_effects(unit){return 0;} - function caml_update_dummy(x, y){ - if(typeof y === "function"){x.fun = y; return 0;} - if(y.fun){x.fun = y.fun; return 0;} - var i = y.length; - while(i--) x[i] = y[i]; - return 0; - } - function caml_array_fill(array, ofs, len, v){ - for(var i = 0; i < len; i++) array[ofs + i + 1] = v; - return 0; - } - function caml_sys_mkdir(name, perm){ - var root = resolve_fs_device(name); - root.device.mkdir(root.rest, perm); - return 0; - } - function caml_string_notequal(s1, s2){ - return 1 - caml_string_equal(s1, s2); - } - function caml_bytes_greaterthan(s1, s2){return caml_bytes_lessthan(s2, s1); - } - function caml_gr_make_image(arr){ - var - s = caml_gr_state_get(), - h = arr.length - 1, - w = arr[1].length - 1, - im = s.context.createImageData(w, h); - for(var i = 0; i < h; i++) - for(var j = 0; j < w; j++){ - var c = arr[i + 1][j + 1], o = i * (w * 4) + j * 4; - if(c == - 1){ - im.data[o + 0] = 0; - im.data[o + 1] = 0; - im.data[o + 2] = 0; - im.data[o + 3] = 0; - } - else{ - im.data[o + 0] = c >> 16 & 0xff; - im.data[o + 1] = c >> 8 & 0xff; - im.data[o + 2] = c >> 0 & 0Xff; - im.data[o + 3] = 0xff; - } - } - return im; - } - function caml_ml_set_channel_output(chanid, f){ - var chan = caml_ml_channels[chanid]; - chan.output = function(s){f(s);}; - return 0; - } - function caml_read_file_content(name){ - var - name = typeof name == "string" ? caml_string_of_jsbytes(name) : name, - root = resolve_fs_device(name); - if(root.device.exists(root.rest)){ - var - file = root.device.open(root.rest, {rdonly: 1}), - len = file.length(), - buf = new Uint8Array(len); - file.read(0, buf, 0, len); - return caml_string_of_array(buf); - } - caml_raise_no_such_file(caml_jsbytes_of_string(name)); - } - function caml_js_to_float(x){return x;} - function caml_setup_uncaught_exception_handler(){ - var process = globalThis.process; - if(process && process.on) - process.on - ("uncaughtException", - function(err, origin){ - caml_fatal_uncaught_exception(err); - process.exit(2); - }); - else if(globalThis.addEventListener) - globalThis.addEventListener - ("error", - function(event){ - if(event.error) caml_fatal_uncaught_exception(event.error); - }); - } - caml_setup_uncaught_exception_handler(); - globalThis.jsoo_runtime = - {ml_z_bin: ml_z_bin, - ml_z_primorial: ml_z_primorial, - ml_z_kronecker: ml_z_kronecker, - ml_z_legendre: ml_z_legendre, - ml_z_jacobi: ml_z_jacobi, - ml_z_lucnum: ml_z_lucnum, - ml_z_fib: ml_z_fib, - ml_z_facM: ml_z_facM, - ml_z_fac2: ml_z_fac2, - ml_z_fac: ml_z_fac, - ml_z_remove: ml_z_remove, - ml_z_congruent: ml_z_congruent, - ml_z_divisible: ml_z_divisible, - caml_zarith_unmarshal: caml_zarith_unmarshal, - caml_zarith_marshal: caml_zarith_marshal, - ml_z_divexact: ml_z_divexact, - ml_z_size: ml_z_size, - ml_z_hamdist: ml_z_hamdist, - ml_z_popcount: ml_z_popcount, - ml_z_trailing_zeros: ml_z_trailing_zeros, - ml_z_sqrt_rem: ml_z_sqrt_rem, - ml_z_sqrt: ml_z_sqrt, - ml_z_gcdext_intern: ml_z_gcdext_intern, - ml_z_extract: ml_z_extract, - ml_z_nextprime: ml_z_nextprime, - ml_z_probab_prime: ml_z_probab_prime, - ml_z_perfect_square: ml_z_perfect_square, - ml_z_perfect_power: ml_z_perfect_power, - ml_z_invert: ml_z_invert, - ml_z_rootrem: ml_z_rootrem, - ml_z_root: ml_z_root, - ml_z_powm_sec: ml_z_powm_sec, - ml_z_of_bits: ml_z_of_bits, - ml_z_to_bits: ml_z_to_bits, - ml_z_hash: ml_z_hash, - ml_z_pow: ml_z_pow, - ml_z_powm: ml_z_powm, - ml_z_fits_nativeint: ml_z_fits_nativeint, - ml_z_fits_int64: ml_z_fits_int64, - ml_z_fits_int32: ml_z_fits_int32, - ml_z_fits_int: ml_z_fits_int, - ml_z_numbits: ml_z_numbits, - ml_z_gcd: ml_z_gcd, - ml_z_sign: ml_z_sign, - ml_z_equal: ml_z_equal, - ml_z_compare: ml_z_compare, - ml_z_of_substring_base: ml_z_of_substring_base, - jsoo_z_of_js_string_base: jsoo_z_of_js_string_base, - ml_z_format: ml_z_format, - ml_z_to_nativeint: ml_z_to_nativeint, - ml_z_testbit: ml_z_testbit, - ml_z_to_int64: ml_z_to_int64, - ml_z_to_int32: ml_z_to_int32, - ml_z_to_int: ml_z_to_int, - ml_z_of_float: ml_z_of_float, - ml_z_of_int64: ml_z_of_int64, - ml_z_of_nativeint: ml_z_of_nativeint, - ml_z_of_int32: ml_z_of_int32, - ml_z_shift_right_trunc: ml_z_shift_right_trunc, - ml_z_shift_right: ml_z_shift_right, - ml_z_shift_left: ml_z_shift_left, - ml_z_lognot: ml_z_lognot, - ml_z_logxor: ml_z_logxor, - ml_z_logor: ml_z_logor, - ml_z_logand: ml_z_logand, - ml_z_abs: ml_z_abs, - ml_z_pred: ml_z_pred, - ml_z_succ: ml_z_succ, - ml_z_div_rem: ml_z_div_rem, - ml_z_rem: ml_z_rem, - ml_z_fdiv: ml_z_fdiv, - ml_z_cdiv: ml_z_cdiv, - ml_z_div: ml_z_div, - ml_z_mul: ml_z_mul, - ml_z_sub: ml_z_sub, - ml_z_add: ml_z_add, - ml_z_neg: ml_z_neg, - ml_z_init: ml_z_init, - ml_z_mul_overflows: ml_z_mul_overflows, - ml_z_normalize: ml_z_normalize, - bigInt: bigInt, - caml_runtime_events_read_poll: caml_runtime_events_read_poll, - caml_runtime_events_free_cursor: caml_runtime_events_free_cursor, - caml_runtime_events_create_cursor: caml_runtime_events_create_cursor, - caml_runtime_events_resume: caml_runtime_events_resume, - caml_runtime_events_pause: caml_runtime_events_pause, - caml_runtime_events_start: caml_runtime_events_start, - caml_runtime_events_user_resolve: caml_runtime_events_user_resolve, - caml_runtime_events_user_write: caml_runtime_events_user_write, - caml_runtime_events_user_register: caml_runtime_events_user_register, - caml_custom_event_index: caml_custom_event_index, - zstd_decompress: zstd_decompress, - jsoo_effect_not_supported: jsoo_effect_not_supported, - caml_ml_condition_signal: caml_ml_condition_signal, - caml_ml_condition_broadcast: caml_ml_condition_broadcast, - caml_ml_condition_wait: caml_ml_condition_wait, - caml_ml_condition_new: caml_ml_condition_new, - caml_get_continuation_callstack: caml_get_continuation_callstack, - caml_continuation_use_and_update_handler_noexc: - caml_continuation_use_and_update_handler_noexc, - caml_continuation_use_noexc: caml_continuation_use_noexc, - caml_alloc_stack: caml_alloc_stack, - caml_ml_mutex_unlock: caml_ml_mutex_unlock, - caml_ml_mutex_try_lock: caml_ml_mutex_try_lock, - caml_ml_mutex_lock: caml_ml_mutex_lock, - caml_ml_mutex_new: caml_ml_mutex_new, - MlMutex: MlMutex, - caml_lxm_next: caml_lxm_next, - caml_ml_domain_cpu_relax: caml_ml_domain_cpu_relax, - caml_ml_domain_id: caml_ml_domain_id, - caml_domain_spawn: caml_domain_spawn, - caml_domain_id: caml_domain_id, - caml_recommended_domain_count: caml_recommended_domain_count, - caml_ml_domain_set_name: caml_ml_domain_set_name, - caml_ml_domain_unique_token: caml_ml_domain_unique_token, - caml_atomic_exchange: caml_atomic_exchange, - caml_atomic_fetch_add: caml_atomic_fetch_add, - caml_atomic_cas: caml_atomic_cas, - caml_atomic_load: caml_atomic_load, - caml_domain_dls_get: caml_domain_dls_get, - caml_domain_dls_set: caml_domain_dls_set, - caml_domain_dls: caml_domain_dls, - caml_ephe_check_data: caml_ephe_check_data, - caml_ephe_unset_data: caml_ephe_unset_data, - caml_ephe_set_data: caml_ephe_set_data, - caml_ephe_get_data_copy: caml_ephe_get_data_copy, - caml_ephe_get_data: caml_ephe_get_data, - caml_ephe_blit_data: caml_ephe_blit_data, - caml_ephe_blit_key: caml_ephe_blit_key, - caml_ephe_check_key: caml_ephe_check_key, - caml_ephe_get_key_copy: caml_ephe_get_key_copy, - caml_ephe_get_key: caml_ephe_get_key, - caml_weak_set: caml_weak_set, - caml_weak_create: caml_weak_create, - caml_ephe_create: caml_ephe_create, - caml_ephe_unset_key: caml_ephe_unset_key, - caml_ephe_set_key: caml_ephe_set_key, - caml_ephe_data_offset: caml_ephe_data_offset, - caml_ephe_key_offset: caml_ephe_key_offset, - caml_unix_inet_addr_of_string: caml_unix_inet_addr_of_string, - caml_unix_findclose: caml_unix_findclose, - caml_unix_findnext: caml_unix_findnext, - caml_unix_findfirst: caml_unix_findfirst, - caml_unix_rewinddir: caml_unix_rewinddir, - caml_unix_closedir: caml_unix_closedir, - caml_unix_readdir: caml_unix_readdir, - caml_unix_opendir: caml_unix_opendir, - caml_unix_has_symlink: caml_unix_has_symlink, - caml_unix_getpwuid: caml_unix_getpwuid, - caml_unix_getuid: caml_unix_getuid, - caml_unix_unlink: caml_unix_unlink, - caml_unix_readlink: caml_unix_readlink, - caml_unix_symlink: caml_unix_symlink, - caml_unix_rmdir: caml_unix_rmdir, - caml_unix_mkdir: caml_unix_mkdir, - caml_unix_lstat_64: caml_unix_lstat_64, - caml_unix_lstat: caml_unix_lstat, - caml_unix_stat_64: caml_unix_stat_64, - caml_unix_stat: caml_unix_stat, - make_unix_err_args: make_unix_err_args, - caml_unix_isatty: caml_unix_isatty, - caml_unix_filedescr_of_fd: caml_unix_filedescr_of_fd, - caml_unix_cleanup: caml_unix_cleanup, - caml_unix_startup: caml_unix_startup, - caml_unix_mktime: caml_unix_mktime, - caml_unix_localtime: caml_unix_localtime, - caml_unix_gmtime: caml_unix_gmtime, - caml_unix_time: caml_unix_time, - caml_unix_gettimeofday: caml_unix_gettimeofday, - caml_str_initialize: caml_str_initialize, - re_replacement_text: re_replacement_text, - re_partial_match: re_partial_match, - re_string_match: re_string_match, - re_search_backward: re_search_backward, - re_search_forward: re_search_forward, - re_match: re_match, - caml_sys_is_regular_file: caml_sys_is_regular_file, - caml_spacetime_only_works_for_native_code: - caml_spacetime_only_works_for_native_code, - caml_register_channel_for_spacetime: caml_register_channel_for_spacetime, - caml_sys_const_naked_pointers_checked: - caml_sys_const_naked_pointers_checked, - caml_spacetime_enabled: caml_spacetime_enabled, - caml_ml_runtime_warnings_enabled: caml_ml_runtime_warnings_enabled, - caml_ml_enable_runtime_warnings: caml_ml_enable_runtime_warnings, - caml_runtime_warnings: caml_runtime_warnings, - caml_install_signal_handler: caml_install_signal_handler, - caml_runtime_parameters: caml_runtime_parameters, - caml_runtime_variant: caml_runtime_variant, - caml_sys_isatty: caml_sys_isatty, - caml_sys_get_config: caml_sys_get_config, - os_type: os_type, - caml_sys_const_backend_type: caml_sys_const_backend_type, - caml_sys_const_ostype_cygwin: caml_sys_const_ostype_cygwin, - caml_sys_const_ostype_win32: caml_sys_const_ostype_win32, - caml_sys_const_ostype_unix: caml_sys_const_ostype_unix, - caml_sys_const_max_wosize: caml_sys_const_max_wosize, - caml_sys_const_int_size: caml_sys_const_int_size, - caml_sys_const_word_size: caml_sys_const_word_size, - caml_sys_const_big_endian: caml_sys_const_big_endian, - caml_sys_random_seed: caml_sys_random_seed, - caml_sys_time_include_children: caml_sys_time_include_children, - caml_sys_time: caml_sys_time, - caml_sys_system_command: caml_sys_system_command, - caml_sys_executable_name: caml_sys_executable_name, - caml_sys_modify_argv: caml_sys_modify_argv, - caml_sys_argv: caml_sys_argv, - caml_sys_get_argv: caml_sys_get_argv, - caml_executable_name: caml_executable_name, - caml_argv: caml_argv, - caml_sys_unsafe_getenv: caml_sys_unsafe_getenv, - caml_sys_getenv: caml_sys_getenv, - jsoo_sys_getenv: jsoo_sys_getenv, - caml_set_static_env: caml_set_static_env, - caml_fatal_uncaught_exception: caml_fatal_uncaught_exception, - caml_format_exception: caml_format_exception, - caml_is_special_exception: caml_is_special_exception, - caml_sys_exit: caml_sys_exit, - caml_raise_sys_error: caml_raise_sys_error, - caml_maybe_print_stats: caml_maybe_print_stats, - caml_is_printable: caml_is_printable, - caml_get_global_data: caml_get_global_data, - caml_register_global: caml_register_global, - caml_build_symbols: caml_build_symbols, - caml_global_data: caml_global_data, - caml_named_value: caml_named_value, - caml_register_named_value: caml_register_named_value, - caml_named_values: caml_named_values, - caml_call_gen: caml_call_gen, - caml_set_parser_trace: caml_set_parser_trace, - caml_parse_engine: caml_parse_engine, - caml_parser_trace: caml_parser_trace, - caml_is_continuation_tag: caml_is_continuation_tag, - caml_lazy_read_result: caml_lazy_read_result, - caml_lazy_reset_to_lazy: caml_lazy_reset_to_lazy, - caml_lazy_update_to_forward: caml_lazy_update_to_forward, - caml_lazy_update_to_forcing: caml_lazy_update_to_forcing, - caml_obj_update_tag: caml_obj_update_tag, - caml_obj_add_offset: caml_obj_add_offset, - caml_obj_reachable_words: caml_obj_reachable_words, - caml_obj_set_raw_field: caml_obj_set_raw_field, - caml_obj_raw_field: caml_obj_raw_field, - caml_fresh_oo_id: caml_fresh_oo_id, - caml_set_oo_id: caml_set_oo_id, - caml_oo_last_id: caml_oo_last_id, - caml_get_public_method: caml_get_public_method, - caml_lazy_make_forward: caml_lazy_make_forward, - caml_obj_is_shared: caml_obj_is_shared, - caml_obj_compare_and_swap: caml_obj_compare_and_swap, - caml_obj_make_forward: caml_obj_make_forward, - caml_obj_truncate: caml_obj_truncate, - caml_obj_dup: caml_obj_dup, - caml_obj_with_tag: caml_obj_with_tag, - caml_obj_block: caml_obj_block, - caml_obj_set_tag: caml_obj_set_tag, - caml_obj_tag: caml_obj_tag, - caml_obj_is_block: caml_obj_is_block, - caml_alloc_dummy_infix: caml_alloc_dummy_infix, - caml_update_dummy: caml_update_dummy, - deserialize_nat: deserialize_nat, - serialize_nat: serialize_nat, - lxor_digit_nat: lxor_digit_nat, - lor_digit_nat: lor_digit_nat, - land_digit_nat: land_digit_nat, - compare_nat_real: compare_nat_real, - compare_nat: compare_nat, - compare_digits_nat: compare_digits_nat, - shift_right_nat: shift_right_nat, - div_nat: div_nat, - div_digit_nat: div_digit_nat, - div_helper: div_helper, - shift_left_nat: shift_left_nat, - square_nat: square_nat, - mult_nat: mult_nat, - mult_digit_nat: mult_digit_nat, - sub_nat: sub_nat, - decr_nat: decr_nat, - complement_nat: complement_nat, - add_nat: add_nat, - incr_nat: incr_nat, - is_digit_odd: is_digit_odd, - is_digit_zero: is_digit_zero, - is_digit_int: is_digit_int, - num_leading_zero_bits_in_digit: num_leading_zero_bits_in_digit, - num_digits_nat: num_digits_nat, - nth_digit_nat_native: nth_digit_nat_native, - set_digit_nat_native: set_digit_nat_native, - nth_digit_nat: nth_digit_nat, - set_digit_nat: set_digit_nat, - blit_nat: blit_nat, - set_to_zero_nat: set_to_zero_nat, - create_nat: create_nat, - nat_of_array: nat_of_array, - caml_hash_nat: caml_hash_nat, - MlNat: MlNat, - initialize_nat: initialize_nat, - caml_array_of_bytes: caml_array_of_bytes, - caml_array_of_string: caml_array_of_string, - caml_js_to_string: caml_js_to_string, - caml_to_js_string: caml_to_js_string, - caml_js_from_string: caml_js_from_string, - caml_new_string: caml_new_string, - caml_js_to_byte_string: caml_js_to_byte_string, - caml_is_ml_string: caml_is_ml_string, - caml_ml_bytes_content: caml_ml_bytes_content, - caml_is_ml_bytes: caml_is_ml_bytes, - caml_bytes_of_jsbytes: caml_bytes_of_jsbytes, - caml_string_of_jsstring: caml_string_of_jsstring, - caml_jsstring_of_string: caml_jsstring_of_string, - caml_jsbytes_of_string: caml_jsbytes_of_string, - caml_string_of_jsbytes: caml_string_of_jsbytes, - caml_bytes_of_string: caml_bytes_of_string, - caml_string_of_bytes: caml_string_of_bytes, - caml_string_lessthan: caml_string_lessthan, - caml_string_lessequal: caml_string_lessequal, - caml_string_equal: caml_string_equal, - caml_string_compare: caml_string_compare, - caml_ml_string_length: caml_ml_string_length, - caml_string_unsafe_set: caml_string_unsafe_set, - caml_string_unsafe_get: caml_string_unsafe_get, - caml_ml_bytes_length: caml_ml_bytes_length, - caml_blit_string: caml_blit_string, - caml_blit_bytes: caml_blit_bytes, - caml_fill_bytes: caml_fill_bytes, - caml_bytes_greaterthan: caml_bytes_greaterthan, - caml_string_greaterthan: caml_string_greaterthan, - caml_bytes_greaterequal: caml_bytes_greaterequal, - caml_string_greaterequal: caml_string_greaterequal, - caml_bytes_lessthan: caml_bytes_lessthan, - caml_bytes_lessequal: caml_bytes_lessequal, - caml_bytes_notequal: caml_bytes_notequal, - caml_string_notequal: caml_string_notequal, - caml_bytes_equal: caml_bytes_equal, - caml_bytes_compare: caml_bytes_compare, - caml_bytes_of_array: caml_bytes_of_array, - caml_string_of_array: caml_string_of_array, - caml_create_bytes: caml_create_bytes, - caml_create_string: caml_create_string, - caml_uint8_array_of_string: caml_uint8_array_of_string, - caml_uint8_array_of_bytes: caml_uint8_array_of_bytes, - caml_convert_bytes_to_array: caml_convert_bytes_to_array, - caml_convert_string_to_bytes: caml_convert_string_to_bytes, - MlBytes: MlBytes, - caml_bytes_of_utf16_jsstring: caml_bytes_of_utf16_jsstring, - caml_bytes_set: caml_bytes_set, - caml_string_set64: caml_string_set64, - caml_bytes_set64: caml_bytes_set64, - caml_string_set32: caml_string_set32, - caml_bytes_set32: caml_bytes_set32, - caml_string_set16: caml_string_set16, - caml_bytes_set16: caml_bytes_set16, - caml_string_set: caml_string_set, - caml_bytes_get: caml_bytes_get, - caml_bytes_get64: caml_bytes_get64, - caml_string_get64: caml_string_get64, - caml_bytes_get32: caml_bytes_get32, - caml_string_get32: caml_string_get32, - caml_bytes_get16: caml_bytes_get16, - caml_string_get16: caml_string_get16, - caml_string_get: caml_string_get, - caml_bytes_bound_error: caml_bytes_bound_error, - caml_string_bound_error: caml_string_bound_error, - caml_bytes_unsafe_set: caml_bytes_unsafe_set, - caml_bytes_unsafe_get: caml_bytes_unsafe_get, - jsoo_is_ascii: jsoo_is_ascii, - caml_utf16_of_utf8: caml_utf16_of_utf8, - caml_utf8_of_utf16: caml_utf8_of_utf16, - caml_subarray_to_jsbytes: caml_subarray_to_jsbytes, - caml_str_repeat: caml_str_repeat, - caml_md5_bytes: caml_md5_bytes, - caml_MD5Final: caml_MD5Final, - caml_MD5Update: caml_MD5Update, - caml_MD5Init: caml_MD5Init, - caml_MD5Transform: caml_MD5Transform, - caml_md5_string: caml_md5_string, - caml_md5_chan: caml_md5_chan, - caml_output_value_to_buffer: caml_output_value_to_buffer, - caml_output_value_to_bytes: caml_output_value_to_bytes, - caml_output_value_to_string: caml_output_value_to_string, - caml_output_val: caml_output_val, - MlObjectTable: MlObjectTable, - caml_marshal_data_size: caml_marshal_data_size, - caml_marshal_header_size: caml_marshal_header_size, - caml_input_value_from_reader: caml_input_value_from_reader, - caml_custom_ops: caml_custom_ops, - caml_nativeint_unmarshal: caml_nativeint_unmarshal, - caml_int32_unmarshal: caml_int32_unmarshal, - caml_int64_marshal: caml_int64_marshal, - caml_int64_unmarshal: caml_int64_unmarshal, - caml_input_value_from_bytes: caml_input_value_from_bytes, - caml_input_value_from_string: caml_input_value_from_string, - caml_float_of_bytes: caml_float_of_bytes, - BigStringReader: BigStringReader, - MlStringReader: MlStringReader, - UInt8ArrayReader: UInt8ArrayReader, - caml_marshal_constants: caml_marshal_constants, - caml_new_lex_engine: caml_new_lex_engine, - caml_lex_engine: caml_lex_engine, - caml_lex_array: caml_lex_array, - caml_js_error_of_exception: caml_js_error_of_exception, - caml_xmlhttprequest_create: caml_xmlhttprequest_create, - caml_js_get_console: caml_js_get_console, - caml_js_html_entities: caml_js_html_entities, - caml_js_html_escape: caml_js_html_escape, - caml_js_on_ie: caml_js_on_ie, - caml_js_object: caml_js_object, - caml_pure_js_expr: caml_pure_js_expr, - caml_js_expr: caml_js_expr, - caml_js_eval_string: caml_js_eval_string, - caml_js_equals: caml_js_equals, - caml_js_function_arity: caml_js_function_arity, - caml_js_wrap_meth_callback_unsafe: caml_js_wrap_meth_callback_unsafe, - caml_js_wrap_meth_callback_strict: caml_js_wrap_meth_callback_strict, - caml_js_wrap_meth_callback_arguments: - caml_js_wrap_meth_callback_arguments, - caml_js_wrap_meth_callback: caml_js_wrap_meth_callback, - caml_js_wrap_callback_unsafe: caml_js_wrap_callback_unsafe, - caml_js_wrap_callback_strict: caml_js_wrap_callback_strict, - caml_js_wrap_callback_arguments: caml_js_wrap_callback_arguments, - caml_js_wrap_callback: caml_js_wrap_callback, - caml_ojs_new_arr: caml_ojs_new_arr, - caml_js_new: caml_js_new, - caml_js_meth_call: caml_js_meth_call, - caml_js_fun_call: caml_js_fun_call, - caml_js_call: caml_js_call, - caml_js_var: caml_js_var, - caml_list_to_js_array: caml_list_to_js_array, - caml_list_of_js_array: caml_list_of_js_array, - caml_js_to_array: caml_js_to_array, - caml_js_from_array: caml_js_from_array, - caml_js_to_float: caml_js_to_float, - caml_js_from_float: caml_js_from_float, - caml_js_to_bool: caml_js_to_bool, - caml_js_from_bool: caml_js_from_bool, - caml_js_error_option_of_exception: caml_js_error_option_of_exception, - caml_exn_with_js_backtrace: caml_exn_with_js_backtrace, - caml_maybe_attach_backtrace: caml_maybe_attach_backtrace, - caml_wrap_exception: caml_wrap_exception, - caml_jsoo_flags_effects: caml_jsoo_flags_effects, - caml_jsoo_flags_use_js_string: caml_jsoo_flags_use_js_string, - caml_is_js: caml_is_js, - caml_callback: caml_callback, - caml_trampoline_return: caml_trampoline_return, - caml_trampoline: caml_trampoline, - caml_js_typeof: caml_js_typeof, - caml_js_instanceof: caml_js_instanceof, - caml_js_delete: caml_js_delete, - caml_js_get: caml_js_get, - caml_js_set: caml_js_set, - caml_js_pure_expr: caml_js_pure_expr, - caml_ml_set_buffered: caml_ml_set_buffered, - caml_ml_is_buffered: caml_ml_is_buffered, - caml_ml_output_int: caml_ml_output_int, - caml_ml_pos_out_64: caml_ml_pos_out_64, - caml_ml_pos_out: caml_ml_pos_out, - caml_pos_out: caml_pos_out, - caml_ml_seek_out_64: caml_ml_seek_out_64, - caml_ml_seek_out: caml_ml_seek_out, - caml_seek_out: caml_seek_out, - caml_output_value: caml_output_value, - caml_ml_output_char: caml_ml_output_char, - caml_ml_output: caml_ml_output, - caml_ml_output_bytes: caml_ml_output_bytes, - caml_ml_flush: caml_ml_flush, - caml_ml_input_scan_line: caml_ml_input_scan_line, - caml_ml_pos_in_64: caml_ml_pos_in_64, - caml_ml_pos_in: caml_ml_pos_in, - caml_pos_in: caml_pos_in, - caml_ml_seek_in_64: caml_ml_seek_in_64, - caml_ml_seek_in: caml_ml_seek_in, - caml_seek_in: caml_seek_in, - caml_ml_input_int: caml_ml_input_int, - caml_ml_input_char: caml_ml_input_char, - caml_input_value_to_outside_heap: caml_input_value_to_outside_heap, - caml_input_value: caml_input_value, - caml_ml_input_block: caml_ml_input_block, - caml_ml_input: caml_ml_input, - caml_refill: caml_refill, - caml_ml_set_channel_refill: caml_ml_set_channel_refill, - caml_ml_set_channel_output: caml_ml_set_channel_output, - caml_ml_channel_size_64: caml_ml_channel_size_64, - caml_ml_channel_size: caml_ml_channel_size, - caml_ml_close_channel: caml_ml_close_channel, - caml_ml_set_binary_mode: caml_ml_set_binary_mode, - caml_channel_descriptor: caml_channel_descriptor, - caml_ml_open_descriptor_in: caml_ml_open_descriptor_in, - caml_ml_open_descriptor_out: caml_ml_open_descriptor_out, - caml_ml_out_channels_list: caml_ml_out_channels_list, - caml_ml_channels: caml_ml_channels, - caml_ml_set_channel_name: caml_ml_set_channel_name, - caml_sys_open: caml_sys_open, - caml_sys_close: caml_sys_close, - caml_sys_fds: caml_sys_fds, - caml_int64_bswap: caml_int64_bswap, - caml_int32_bswap: caml_int32_bswap, - caml_bswap16: caml_bswap16, - caml_mod: caml_mod, - caml_div: caml_div, - caml_mul: caml_mul, - caml_int_of_string: caml_int_of_string, - caml_parse_digit: caml_parse_digit, - caml_parse_sign_and_base: caml_parse_sign_and_base, - caml_format_int: caml_format_int, - caml_int64_hash: caml_int64_hash, - caml_int64_to_bytes: caml_int64_to_bytes, - caml_int64_of_bytes: caml_int64_of_bytes, - caml_int64_hi32: caml_int64_hi32, - caml_int64_lo32: caml_int64_lo32, - caml_int64_create_lo_hi: caml_int64_create_lo_hi, - caml_int64_create_lo_mi_hi: caml_int64_create_lo_mi_hi, - caml_int64_of_string: caml_int64_of_string, - caml_int64_format: caml_int64_format, - caml_int64_of_float: caml_int64_of_float, - caml_int64_to_float: caml_int64_to_float, - caml_int64_to_int32: caml_int64_to_int32, - caml_int64_of_int32: caml_int64_of_int32, - caml_int64_mod: caml_int64_mod, - caml_int64_div: caml_int64_div, - caml_int64_shift_right: caml_int64_shift_right, - caml_int64_shift_right_unsigned: caml_int64_shift_right_unsigned, - caml_int64_shift_left: caml_int64_shift_left, - caml_int64_xor: caml_int64_xor, - caml_int64_or: caml_int64_or, - caml_int64_and: caml_int64_and, - caml_int64_is_negative: caml_int64_is_negative, - caml_int64_is_zero: caml_int64_is_zero, - caml_int64_mul: caml_int64_mul, - caml_int64_sub: caml_int64_sub, - caml_int64_add: caml_int64_add, - caml_int64_neg: caml_int64_neg, - caml_int64_compare: caml_int64_compare, - caml_int64_ult: caml_int64_ult, - MlInt64: MlInt64, - caml_int64_offset: caml_int64_offset, - caml_float_of_string: caml_float_of_string, - caml_format_float: caml_format_float, - caml_fma_float: caml_fma_float, - caml_erfc_float: caml_erfc_float, - caml_erf_float: caml_erf_float, - caml_cbrt_float: caml_cbrt_float, - caml_round_float: caml_round_float, - caml_atanh_float: caml_atanh_float, - caml_tanh_float: caml_tanh_float, - caml_asinh_float: caml_asinh_float, - caml_sinh_float: caml_sinh_float, - caml_acosh_float: caml_acosh_float, - caml_cosh_float: caml_cosh_float, - caml_log10_float: caml_log10_float, - caml_hypot_float: caml_hypot_float, - caml_log2_float: caml_log2_float, - caml_log1p_float: caml_log1p_float, - caml_exp2_float: caml_exp2_float, - caml_expm1_float: caml_expm1_float, - caml_signbit_float: caml_signbit_float, - caml_copysign_float: caml_copysign_float, - caml_float_compare: caml_float_compare, - caml_frexp_float: caml_frexp_float, - caml_ldexp_float: caml_ldexp_float, - caml_modf_float: caml_modf_float, - caml_classify_float: caml_classify_float, - caml_int32_float_of_bits: caml_int32_float_of_bits, - caml_trunc_float: caml_trunc_float, - caml_nextafter_float: caml_nextafter_float, - caml_int64_float_of_bits: caml_int64_float_of_bits, - caml_hexstring_of_float: caml_hexstring_of_float, - caml_int32_bits_of_float: caml_int32_bits_of_float, - caml_int64_bits_of_float: caml_int64_bits_of_float, - jsoo_floor_log2: jsoo_floor_log2, - caml_string_hash: caml_string_hash, - caml_hash: caml_hash, - caml_hash_mix_string: caml_hash_mix_string, - caml_hash_mix_bytes: caml_hash_mix_bytes, - caml_hash_mix_bytes_arr: caml_hash_mix_bytes_arr, - caml_hash_mix_jsbytes: caml_hash_mix_jsbytes, - caml_hash_mix_int64: caml_hash_mix_int64, - caml_hash_mix_float: caml_hash_mix_float, - caml_hash_mix_final: caml_hash_mix_final, - caml_hash_mix_int: caml_hash_mix_int, - caml_gr_close_subwindow: caml_gr_close_subwindow, - caml_gr_open_subwindow: caml_gr_open_subwindow, - caml_gr_window_id: caml_gr_window_id, - caml_gr_display_mode: caml_gr_display_mode, - caml_gr_remember_mode: caml_gr_remember_mode, - caml_gr_synchronize: caml_gr_synchronize, - caml_gr_wait_event: caml_gr_wait_event, - caml_gr_sigio_signal: caml_gr_sigio_signal, - caml_gr_sigio_handler: caml_gr_sigio_handler, - caml_gr_blit_image: caml_gr_blit_image, - caml_gr_create_image: caml_gr_create_image, - caml_gr_draw_image: caml_gr_draw_image, - caml_gr_dump_image: caml_gr_dump_image, - caml_gr_make_image: caml_gr_make_image, - caml_gr_text_size: caml_gr_text_size, - caml_gr_set_text_size: caml_gr_set_text_size, - caml_gr_set_font: caml_gr_set_font, - caml_gr_draw_string: caml_gr_draw_string, - caml_gr_draw_char: caml_gr_draw_char, - caml_gr_draw_str: caml_gr_draw_str, - caml_gr_fill_arc: caml_gr_fill_arc, - caml_gr_fill_poly: caml_gr_fill_poly, - caml_gr_fill_rect: caml_gr_fill_rect, - caml_gr_set_line_width: caml_gr_set_line_width, - caml_gr_draw_arc: caml_gr_draw_arc, - caml_gr_arc_aux: caml_gr_arc_aux, - caml_gr_draw_rect: caml_gr_draw_rect, - caml_gr_lineto: caml_gr_lineto, - caml_gr_current_y: caml_gr_current_y, - caml_gr_current_x: caml_gr_current_x, - caml_gr_moveto: caml_gr_moveto, - caml_gr_point_color: caml_gr_point_color, - caml_gr_plot: caml_gr_plot, - caml_gr_set_color: caml_gr_set_color, - caml_gr_size_y: caml_gr_size_y, - caml_gr_size_x: caml_gr_size_x, - caml_gr_clear_graph: caml_gr_clear_graph, - caml_gr_resize_window: caml_gr_resize_window, - caml_gr_set_window_title: caml_gr_set_window_title, - caml_gr_close_graph: caml_gr_close_graph, - caml_gr_doc_of_state: caml_gr_doc_of_state, - caml_gr_state_create: caml_gr_state_create, - caml_gr_state_init: caml_gr_state_init, - caml_gr_open_graph: caml_gr_open_graph, - caml_gr_state_set: caml_gr_state_set, - caml_gr_state_get: caml_gr_state_get, - caml_gr_state: caml_gr_state, - caml_get_major_credit: caml_get_major_credit, - caml_get_major_bucket: caml_get_major_bucket, - caml_get_minor_free: caml_get_minor_free, - caml_gc_minor_words: caml_gc_minor_words, - caml_gc_major_slice: caml_gc_major_slice, - caml_gc_huge_fallback_count: caml_gc_huge_fallback_count, - caml_eventlog_pause: caml_eventlog_pause, - caml_eventlog_resume: caml_eventlog_resume, - caml_memprof_stop: caml_memprof_stop, - caml_memprof_start: caml_memprof_start, - caml_final_release: caml_final_release, - caml_final_register_called_without_value: - caml_final_register_called_without_value, - caml_final_register: caml_final_register, - caml_memprof_set: caml_memprof_set, - caml_gc_get: caml_gc_get, - caml_gc_set: caml_gc_set, - caml_gc_stat: caml_gc_stat, - caml_gc_quick_stat: caml_gc_quick_stat, - caml_gc_counters: caml_gc_counters, - caml_gc_compaction: caml_gc_compaction, - caml_gc_full_major: caml_gc_full_major, - caml_gc_major: caml_gc_major, - caml_gc_minor: caml_gc_minor, - caml_sys_open_for_node: caml_sys_open_for_node, - MlNodeFd: MlNodeFd, - MlNodeDevice: MlNodeDevice, - fs_node_supported: fs_node_supported, - MlFakeFd: MlFakeFd, - MlFakeFd_out: MlFakeFd_out, - MlFakeFile: MlFakeFile, - MlFakeDevice: MlFakeDevice, - caml_read_file_content: caml_read_file_content, - jsoo_create_file: jsoo_create_file, - caml_create_file: caml_create_file, - caml_fs_init: caml_fs_init, - jsoo_create_file_extern: jsoo_create_file_extern, - caml_ba_map_file_bytecode: caml_ba_map_file_bytecode, - caml_ba_map_file: caml_ba_map_file, - caml_sys_rmdir: caml_sys_rmdir, - caml_sys_mkdir: caml_sys_mkdir, - caml_sys_rename: caml_sys_rename, - caml_sys_is_directory: caml_sys_is_directory, - caml_sys_remove: caml_sys_remove, - caml_sys_read_directory: caml_sys_read_directory, - caml_sys_file_exists: caml_sys_file_exists, - caml_raise_not_a_dir: caml_raise_not_a_dir, - caml_raise_no_such_file: caml_raise_no_such_file, - caml_sys_chdir: caml_sys_chdir, - caml_sys_getcwd: caml_sys_getcwd, - caml_unmount: caml_unmount, - caml_mount_autoload: caml_mount_autoload, - resolve_fs_device: resolve_fs_device, - caml_list_mount_point: caml_list_mount_point, - jsoo_mount_point: jsoo_mount_point, - caml_make_path: caml_make_path, - path_is_absolute: path_is_absolute, - MlFile: MlFile, - caml_root: caml_root, - caml_get_root: caml_get_root, - caml_current_dir: caml_current_dir, - caml_trailing_slash: caml_trailing_slash, - caml_finish_formatting: caml_finish_formatting, - caml_parse_format: caml_parse_format, - caml_array_bound_error: caml_array_bound_error, - caml_raise_not_found: caml_raise_not_found, - caml_raise_zero_divide: caml_raise_zero_divide, - caml_raise_end_of_file: caml_raise_end_of_file, - caml_invalid_argument: caml_invalid_argument, - caml_failwith: caml_failwith, - caml_raise_with_string: caml_raise_with_string, - caml_raise_with_args: caml_raise_with_args, - caml_raise_with_arg: caml_raise_with_arg, - caml_raise_constant: caml_raise_constant, - caml_lessthan: caml_lessthan, - caml_lessequal: caml_lessequal, - caml_greaterthan: caml_greaterthan, - caml_greaterequal: caml_greaterequal, - caml_notequal: caml_notequal, - caml_equal: caml_equal, - caml_int_compare: caml_int_compare, - caml_compare: caml_compare, - caml_compare_val: caml_compare_val, - caml_compare_val_number_custom: caml_compare_val_number_custom, - caml_compare_val_get_custom: caml_compare_val_get_custom, - caml_compare_val_tag: caml_compare_val_tag, - caml_bigstring_blit_ba_to_bytes: caml_bigstring_blit_ba_to_bytes, - caml_bigstring_blit_bytes_to_ba: caml_bigstring_blit_bytes_to_ba, - caml_bigstring_blit_string_to_ba: caml_bigstring_blit_string_to_ba, - caml_bigstring_blit_ba_to_ba: caml_bigstring_blit_ba_to_ba, - caml_bigstring_memcmp: caml_bigstring_memcmp, - bigstring_of_typed_array: bigstring_of_typed_array, - bigstring_of_array_buffer: bigstring_of_array_buffer, - bigstring_to_typed_array: bigstring_to_typed_array, - bigstring_to_array_buffer: bigstring_to_array_buffer, - caml_hash_mix_bigstring: caml_hash_mix_bigstring, - caml_ba_from_typed_array: caml_ba_from_typed_array, - caml_ba_kind_of_typed_array: caml_ba_kind_of_typed_array, - caml_ba_to_typed_array: caml_ba_to_typed_array, - caml_ba_hash: caml_ba_hash, - caml_ba_create_from: caml_ba_create_from, - caml_ba_deserialize: caml_ba_deserialize, - caml_ba_serialize: caml_ba_serialize, - caml_ba_reshape: caml_ba_reshape, - caml_ba_slice: caml_ba_slice, - caml_ba_sub: caml_ba_sub, - caml_ba_blit: caml_ba_blit, - caml_ba_fill: caml_ba_fill, - caml_ba_set_3: caml_ba_set_3, - caml_ba_set_2: caml_ba_set_2, - caml_ba_set_1: caml_ba_set_1, - caml_ba_uint8_set64: caml_ba_uint8_set64, - caml_ba_uint8_set32: caml_ba_uint8_set32, - caml_ba_uint8_set16: caml_ba_uint8_set16, - caml_ba_set_generic: caml_ba_set_generic, - caml_ba_get_3: caml_ba_get_3, - caml_ba_get_2: caml_ba_get_2, - caml_ba_get_1: caml_ba_get_1, - caml_ba_uint8_get64: caml_ba_uint8_get64, - caml_ba_uint8_get32: caml_ba_uint8_get32, - caml_ba_uint8_get16: caml_ba_uint8_get16, - caml_ba_get_generic: caml_ba_get_generic, - caml_ba_dim_3: caml_ba_dim_3, - caml_ba_dim_2: caml_ba_dim_2, - caml_ba_dim_1: caml_ba_dim_1, - caml_ba_dim: caml_ba_dim, - caml_ba_num_dims: caml_ba_num_dims, - caml_ba_layout: caml_ba_layout, - caml_ba_kind: caml_ba_kind, - caml_ba_change_layout: caml_ba_change_layout, - caml_ba_create: caml_ba_create, - caml_ba_create_unsafe: caml_ba_create_unsafe, - caml_ba_compare: caml_ba_compare, - Ml_Bigarray_c_1_1: Ml_Bigarray_c_1_1, - Ml_Bigarray: Ml_Bigarray, - caml_ba_custom_name: caml_ba_custom_name, - caml_ba_create_buffer: caml_ba_create_buffer, - caml_ba_get_size_per_element: caml_ba_get_size_per_element, - caml_ba_get_size: caml_ba_get_size, - caml_ba_init: caml_ba_init, - caml_convert_raw_backtrace_slot: caml_convert_raw_backtrace_slot, - caml_get_current_callstack: caml_get_current_callstack, - caml_restore_raw_backtrace: caml_restore_raw_backtrace, - caml_raw_backtrace_slot: caml_raw_backtrace_slot, - caml_raw_backtrace_next_slot: caml_raw_backtrace_next_slot, - caml_raw_backtrace_length: caml_raw_backtrace_length, - caml_convert_raw_backtrace: caml_convert_raw_backtrace, - caml_record_backtrace: caml_record_backtrace, - caml_get_exception_raw_backtrace: caml_get_exception_raw_backtrace, - caml_get_exception_backtrace: caml_get_exception_backtrace, - caml_backtrace_status: caml_backtrace_status, - caml_ml_debug_info_status: caml_ml_debug_info_status, - caml_record_backtrace_flag: caml_record_backtrace_flag, - caml_floatarray_create: caml_floatarray_create, - caml_make_float_vect: caml_make_float_vect, - caml_make_vect: caml_make_vect, - caml_check_bound: caml_check_bound, - caml_array_fill: caml_array_fill, - caml_array_get: caml_array_get, - caml_array_set: caml_array_set, - caml_floatarray_blit: caml_floatarray_blit, - caml_array_blit: caml_array_blit, - caml_array_concat: caml_array_concat, - caml_array_append: caml_array_append, - caml_array_sub: caml_array_sub}; - var - cst_Assert_failure = "Assert_failure", - cst_Division_by_zero = "Division_by_zero", - cst_End_of_file = "End_of_file", - cst_Failure = "Failure", - cst_Invalid_argument = "Invalid_argument", - cst_Match_failure = "Match_failure", - cst_Not_found = "Not_found", - cst_Out_of_memory = "Out_of_memory", - cst_Stack_overflow = "Stack_overflow", - cst_Sys_blocked_io = "Sys_blocked_io", - cst_Sys_error = "Sys_error", - cst_Undefined_recursive_module = "Undefined_recursive_module"; - caml_fs_init(); - caml_register_global(0, [248, cst_Out_of_memory, -1], cst_Out_of_memory); - caml_register_global(1, [248, cst_Sys_error, -2], cst_Sys_error); - caml_register_global(2, [248, cst_Failure, -3], cst_Failure); - caml_register_global - (3, [248, cst_Invalid_argument, -4], cst_Invalid_argument); - caml_register_global(4, [248, cst_End_of_file, -5], cst_End_of_file); - caml_register_global - (5, [248, cst_Division_by_zero, -6], cst_Division_by_zero); - caml_register_global(6, [248, cst_Not_found, -7], cst_Not_found); - caml_register_global(7, [248, cst_Match_failure, -8], cst_Match_failure); - caml_register_global(8, [248, cst_Stack_overflow, -9], cst_Stack_overflow); - caml_register_global(9, [248, cst_Sys_blocked_io, -10], cst_Sys_blocked_io); - caml_register_global - (10, [248, cst_Assert_failure, -11], cst_Assert_failure); - caml_register_global - (11, - [248, cst_Undefined_recursive_module, -12], - cst_Undefined_recursive_module); - return; - } - (globalThis)); - - -(function(a){"use strict";var -aw=118,bX="Js_of_ocaml__EventSource",au="Js_of_ocaml__File",av="Law_source__Aides_logement",at="Stdlib__Fun",bW="Stdlib__Seq",aq="Stdlib__Weak",ar="Dune__exe__Api_web",as="Dates_calc__Dates",bV="Js_of_ocaml__Url",ap=132,ao="Zarith_version",bU="Stdlib__BytesLabels",an="Stdlib__ArrayLabels",bT=115,am="Stdlib__Buffer",ak="Runtime_jsoo__Runtime",al="Js_of_ocaml__ResizeObserver",aj="Stdlib__Out_channel",bR="Stdlib__Printf",bS=105,bO=102,bP="CamlinternalLazy",bQ="Js_of_ocaml__Dom_svg",bN="Stdlib__String",bM="Stdlib__Result",ah="Stdlib__Either",ai=129,bL="Js_of_ocaml__Import",ag="Stdlib__Sys",bK="Stdlib__Random",bJ=116,bI=126,bG="Stdlib__Oo",bH="Failure",bF=121,af="Ppx_yojson_conv_lib__Yojsonable_intf",bE="Stdlib__Pervasives",bD="CamlinternalOO",bC="Stdlib__Array",bA="Ppx_yojson_conv_lib",bB="Stdlib__Genlex",ae="Js_of_ocaml__Dom",bz=111,ac="Big_int_Z",ad="Not_found",ab="Js_of_ocaml__PerformanceObserver",by="Stdlib__Lazy",bw="Stdlib__Map",bx="Stdlib__Char",aa="Stdlib__Digest",$="Stdlib__Callback",bv="Stdlib__Ephemeron",_="Js_of_ocaml__Form",bu="Dates_calc",bt="Stdlib__In_channel",br="Stdlib",bs="Ppx_yojson_conv_lib__",Y="Stdlib__Printexc",Z=131,bq=125,X="Js_of_ocaml__CSS",bp="Js_of_ocaml__Geolocation",V="Runtime_jsoo",W="Law_source",T="Js_of_ocaml__Typed_array",U="Js_of_ocaml__Lib_version",bn="Stdlib__Bytes",bo=103,bk="Stdlib__Unit",bl="Stdlib__Option",bm="Js_of_ocaml__IntersectionObserver",R="Out_of_memory",S="Law_source__Allocations_familiales",Q="Js_of_ocaml__Intl",P="Js_of_ocaml__Sys_js",O="Stdlib__Stream",bh="Stdlib__Float",bi="Stdlib__Complex",bj="Stdlib__StdLabels",N="Stdlib__Filename",bg="Js_of_ocaml__WebGL",L="Stdlib__Marshal",M="Js_of_ocaml__MutationObserver",bf="Assert_failure",K="Js_of_ocaml__Regexp",J="Stdlib__Set",I="Js_of_ocaml__Dom_events",H="Sys_blocked_io",be="Js_of_ocaml__Worker",G=110,bb="Std_exit",bc="Stdlib__MoreLabels",bd=123,ba="Runtime_ocaml__Runtime",E="Stdlib__Queue",F="Law_source__Allocations_familiales_api_web",D="Stdlib__Parsing",a$="Stdlib__Obj",B="Z",C=112,A="Ppx_yojson_conv_lib__Yojson_conv",a_="Js_of_ocaml__Json",z="Js_of_ocaml",a8="Jsoo_runtime__",a9="CamlinternalMod",y="Law_source__Aides_logement_api_web",a7="Js_of_ocaml__Js",a5="Stdlib__Bigarray",a6=104,a3="CamlinternalAtomic",a4=128,a1=122,a2="Invalid_argument",aZ=106,a0=113,v="Stdlib__Format",w="Match_failure",x="Yojson",aX="Stdlib__Scanf",aY=119,aW="Js_of_ocaml__Dom_html",u="Q",aV="Js_of_ocaml__",t="Jsoo_runtime",aR="Stdlib__Bool",aS="Runtime_ocaml",aT=101,aU="Division_by_zero",s="Js_of_ocaml__Firebug",r=120,aP=130,aQ=117,q="Stdlib__Arg",aN=127,aO=107,aK="Stdlib__StringLabels",aL="CamlinternalFormatBasics",aM=114,aJ="Js_of_ocaml__XmlHttpRequest",p="Jsoo_runtime__Runtime_version",aI="Stdlib__Uchar",o="Stdlib__List",n="Stdlib__Atomic",m=100,l="Ppx_yojson_conv_lib__Yojson_conv_error",k="Stdlib__Int64",aF=124,aG=109,aH="Zarith_stubs_js",aE="Sys_error",aC="Stdlib__Lexing",aD="CamlinternalFormat",j="Stdlib__Gc",aB="Stdlib__Int",h="Stdlib__Hashtbl",i="Stdlib__ListLabels",aA="Js_of_ocaml__Jstable",g="Stdlib__Int32",az="End_of_file",f="Stdlib__Stack",ay="Stack_overflow",ax="Stdlib__Nativeint",d="Js_of_ocaml__WebSockets",e=108,c="Undefined_recursive_module",bY=a.jsoo_runtime,b=bY.caml_get_global_data();b.prim_count=926;var -bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[0,0,[2,bX],aw,0,1],2],b5=[2,aW],b6=[0,0,[2,I],bJ,0,1],b7=[0,0,[2,bp],r,0,1],b8=[2,_],b9=[0,0,[2,s],aY,0,1],b_=[0,[0,0,[2,a_],aM,0,1],[2,aA],a0,0,2],b$=[2,a7],ca=[0,0,[2,bm],bF,[0,0,[2,Q],a1,0,1],2],cb=[2,ab],cc=[0,0,[2,M],C,0,1],cd=[2,al],ce=[2,bg],cf=[0,0,[2,bV],aO,0,1],cg=[2,a8],ch=[0,0,[2,F],a4,0,1],ci=[2,S],cj=[0,0,[2,av],ai,[0,0,[2,y],aP,0,1],2],ck=[2,ad],cl=[2,bU],cm=[2,N],cn=[2,bB],co=[2,bt],cp=[2,i],cq=[2,bc],cr=[2,bj],cs=[2,x],ct=[2,aH];b.toc=[0,[0,"SYMB",[0,133,[0,[0,[0,[0,[0,[0,0,[2,bf],0,[0,0,[2,ac],81,0,1],2],[2,a3],13,[0,0,[2,aD],46,0,1],3],[2,aL],12,[0,[0,[0,0,[2,bP],19,[0,0,bZ,62,0,1],2],[2,bD],60,[0,0,[2,bu],76,[0,0,b0,77,0,1],2],3],[2,aU],1,[0,[0,0,[2,ar],Z,0,1],[2,az],2,0,2],4],5],[2,bH],3,[0,[0,[0,[0,[0,0,b2,4,b1,2],[2,aV],94,[0,0,b3,bT,0,1],3],[2,ae],97,[0,[0,b6,b5,m,b4,3],[2,au],99,[0,b9,b8,aT,b7,2],4],5],[2,bL],95,[0,[0,[0,ca,b$,96,b_,3],[2,U],e,[0,cc,cb,bz,0,2],4],[2,K],aZ,[0,[0,0,cd,G,0,1],[2,P],aG,0,2],5],6],[2,T],98,[0,[0,[0,[0,cf,ce,bS,0,2],[2,d],a6,0,3],[2,be],bo,[0,0,[2,aJ],bO,0,1],4],[2,t],93,[0,[0,[0,0,cg,91,0,1],[2,p],92,0,2],[2,W],bI,[0,[0,cj,ci,aN,ch,3],[2,w],5,[0,0,ck,6,0,1],4],5],6],7],8],[2,R],7,[0,[0,[0,[0,[0,0,[2,bA],88,0,1],[2,bs],84,0,2],[2,A],86,[0,[0,0,[2,l],87,0,1],[2,af],85,0,2],3],[2,u],80,[0,[0,0,[2,V],aF,[0,0,[2,ak],bq,0,1],2],[2,aS],89,[0,[0,0,[2,ba],90,0,1],[2,ay],8,[0,0,[2,bb],ap,0,1],2],3],4],[2,br],14,[0,[0,[0,0,[2,q],48,0,1],[2,bC],33,[0,[0,0,[2,an],67,0,1],[2,n],49,[0,0,[2,a5],73,0,1],2],3],[2,aR],24,[0,[0,[0,0,[2,am],45,0,1],[2,bn],29,[0,[0,0,cl,69,0,1],[2,$],59,0,2],3],[2,bx],25,[0,[0,0,[2,bi],66,0,1],[2,aa],53,0,2],4],5],6],9],[2,ah],16,[0,[0,[0,[0,[0,[0,0,[2,bv],64,[0,0,cm,65,0,1],2],[2,bh],34,[0,0,[2,v],57,0,1],3],[2,at],51,[0,0,[2,j],52,[0,[0,0,cn,63,0,1],[2,h],55,[0,0,co,74,0,1],2],3],4],[2,aB],28,[0,0,[2,g],35,[0,0,[2,k],36,0,1],2],5],[2,by],20,[0,[0,[0,0,[2,aC],38,0,1],[2,o],27,[0,[0,[0,0,cp,68,0,1],[2,bw],41,0,2],[2,L],32,[0,[0,0,cq,71,0,1],[2,ax],37,0,2],3],4],[2,a$],18,[0,[0,0,[2,bG],61,0,1],[2,bl],22,[0,[0,0,[2,aj],75,0,1],[2,D],39,0,2],3],5],6],[2,bE],15,[0,[0,[0,[0,[0,0,[2,Y],50,0,1],[2,bR],47,0,2],[2,E],43,[0,[0,0,[2,bK],54,0,1],[2,bM],23,[0,0,[2,aX],58,0,1],2],3],[2,bW],21,[0,[0,0,[2,J],40,0,1],[2,f],42,[0,[0,[0,0,cr,72,0,1],[2,O],44,0,2],[2,bN],30,[0,0,[2,aK],70,0,1],3],4],5],[2,ag],17,[0,[0,0,[2,aI],26,[0,0,[2,bk],31,[0,0,[2,aq],56,0,1],2],3],[2,H],9,[0,[0,0,[2,aE],10,0,1],[2,c],11,[0,[0,[0,0,cs,83,0,1],[2,B],79,[0,0,ct,82,0,1],2],[2,ao],78,0,3],4],5],6],7],10]]],[0,[0,"SYJS",[0,[0,ao,78],[0,aH,82],[0,B,79],[0,x,83],[0,c,11],[0,aE,10],[0,H,9],[0,aq,56],[0,bk,31],[0,aI,26],[0,ag,17],[0,aK,70],[0,bN,30],[0,O,44],[0,bj,72],[0,f,42],[0,J,40],[0,bW,21],[0,aX,58],[0,bM,23],[0,bK,54],[0,E,43],[0,bR,47],[0,Y,50],[0,bE,15],[0,D,39],[0,aj,75],[0,bl,22],[0,bG,61],[0,a$,18],[0,ax,37],[0,bc,71],[0,L,32],[0,bw,41],[0,i,68],[0,o,27],[0,aC,38],[0,by,20],[0,k,36],[0,g,35],[0,aB,28],[0,bt,74],[0,h,55],[0,bB,63],[0,j,52],[0,at,51],[0,v,57],[0,bh,34],[0,N,65],[0,bv,64],[0,ah,16],[0,aa,53],[0,bi,66],[0,bx,25],[0,$,59],[0,bU,69],[0,bn,29],[0,am,45],[0,aR,24],[0,a5,73],[0,n,49],[0,an,67],[0,bC,33],[0,q,48],[0,br,14],[0,bb,ap],[0,ay,8],[0,ba,90],[0,aS,89],[0,ak,bq],[0,V,aF],[0,u,80],[0,af,85],[0,l,87],[0,A,86],[0,bs,84],[0,bA,88],[0,R,7],[0,ad,6],[0,w,5],[0,F,a4],[0,S,aN],[0,y,aP],[0,av,ai],[0,W,bI],[0,p,92],[0,a8,91],[0,t,93],[0,aJ,bO],[0,be,bo],[0,d,a6],[0,bg,bS],[0,bV,aO],[0,T,98],[0,P,aG],[0,al,G],[0,K,aZ],[0,ab,bz],[0,M,C],[0,U,e],[0,aA,a0],[0,a_,aM],[0,a7,96],[0,Q,a1],[0,bm,bF],[0,bL,95],[0,bp,r],[0,_,aT],[0,s,aY],[0,au,99],[0,bX,aw],[0,bQ,aQ],[0,aW,m],[0,I,bJ],[0,ae,97],[0,X,bT],[0,aV,94],[0,z,bd],[0,a2,4],[0,bH,3],[0,az,2],[0,ar,Z],[0,aU,1],[0,as,77],[0,bu,76],[0,bD,60],[0,a9,62],[0,bP,19],[0,aL,12],[0,aD,46],[0,a3,13],[0,ac,81],[0,bf,0]]],[0,[0,"CRCS",0],[0,[0,"PRIM","%caml_format_int_special\0%direct_int_div\0%direct_int_mod\0%direct_int_mul\0%identity\0%int_add\0%int_and\0%int_asr\0%int_div\0%int_lsl\0%int_lsr\0%int_mod\0%int_mul\0%int_neg\0%int_or\0%int_sub\0%int_xor\0BigStringReader\0MlBytes\0MlFakeDevice\0MlFakeFd\0MlFakeFd_out\0MlFakeFile\0MlFile\0MlInt64\0MlMutex\0MlNat\0MlNodeDevice\0MlNodeFd\0MlObjectTable\0MlStringReader\0Ml_Bigarray\0Ml_Bigarray_c_1_1\0UInt8ArrayReader\0add_nat\0bigInt\0bigstring_of_array_buffer\0bigstring_of_typed_array\0bigstring_to_array_buffer\0bigstring_to_typed_array\0blit_nat\0caml_MD5Final\0caml_MD5Init\0caml_MD5Transform\0caml_MD5Update\0caml_abs_float\0caml_acos_float\0caml_acosh_float\0caml_add_float\0caml_alloc_dummy\0caml_alloc_dummy_float\0caml_alloc_dummy_infix\0caml_alloc_stack\0caml_argv\0caml_array_append\0caml_array_blit\0caml_array_bound_error\0caml_array_concat\0caml_array_fill\0caml_array_get\0caml_array_get_addr\0caml_array_get_float\0caml_array_of_bytes\0caml_array_of_string\0caml_array_set\0caml_array_set_addr\0caml_array_set_float\0caml_array_sub\0caml_array_unsafe_get\0caml_array_unsafe_get_float\0caml_array_unsafe_set\0caml_array_unsafe_set_float\0caml_asin_float\0caml_asinh_float\0caml_atan2_float\0caml_atan_float\0caml_atanh_float\0caml_atomic_cas\0caml_atomic_exchange\0caml_atomic_fetch_add\0caml_atomic_load\0caml_ba_blit\0caml_ba_change_layout\0caml_ba_compare\0caml_ba_create\0caml_ba_create_buffer\0caml_ba_create_from\0caml_ba_create_unsafe\0caml_ba_custom_name\0caml_ba_deserialize\0caml_ba_dim\0caml_ba_dim_1\0caml_ba_dim_2\0caml_ba_dim_3\0caml_ba_fill\0caml_ba_from_typed_array\0caml_ba_get_1\0caml_ba_get_2\0caml_ba_get_3\0caml_ba_get_generic\0caml_ba_get_size\0caml_ba_get_size_per_element\0caml_ba_hash\0caml_ba_init\0caml_ba_kind\0caml_ba_kind_of_typed_array\0caml_ba_layout\0caml_ba_map_file\0caml_ba_map_file_bytecode\0caml_ba_num_dims\0caml_ba_reshape\0caml_ba_serialize\0caml_ba_set_1\0caml_ba_set_2\0caml_ba_set_3\0caml_ba_set_generic\0caml_ba_slice\0caml_ba_sub\0caml_ba_to_typed_array\0caml_ba_uint8_get16\0caml_ba_uint8_get32\0caml_ba_uint8_get64\0caml_ba_uint8_set16\0caml_ba_uint8_set32\0caml_ba_uint8_set64\0caml_backtrace_status\0caml_bigstring_blit_ba_to_ba\0caml_bigstring_blit_ba_to_bytes\0caml_bigstring_blit_bytes_to_ba\0caml_bigstring_blit_string_to_ba\0caml_bigstring_memcmp\0caml_blit_bytes\0caml_blit_string\0caml_bswap16\0caml_build_symbols\0caml_bytes_bound_error\0caml_bytes_compare\0caml_bytes_equal\0caml_bytes_get\0caml_bytes_get16\0caml_bytes_get32\0caml_bytes_get64\0caml_bytes_greaterequal\0caml_bytes_greaterthan\0caml_bytes_lessequal\0caml_bytes_lessthan\0caml_bytes_notequal\0caml_bytes_of_array\0caml_bytes_of_jsbytes\0caml_bytes_of_string\0caml_bytes_of_utf16_jsstring\0caml_bytes_set\0caml_bytes_set16\0caml_bytes_set32\0caml_bytes_set64\0caml_bytes_unsafe_get\0caml_bytes_unsafe_set\0caml_call_gen\0caml_callback\0caml_cbrt_float\0caml_ceil_float\0caml_channel_descriptor\0caml_check_bound\0caml_classify_float\0caml_compare\0caml_compare_val\0caml_compare_val_get_custom\0caml_compare_val_number_custom\0caml_compare_val_tag\0caml_continuation_use_and_update_handler_noexc\0caml_continuation_use_noexc\0caml_convert_bytes_to_array\0caml_convert_raw_backtrace\0caml_convert_raw_backtrace_slot\0caml_convert_string_to_bytes\0caml_copysign_float\0caml_cos_float\0caml_cosh_float\0caml_create_bytes\0caml_create_file\0caml_create_string\0caml_current_dir\0caml_custom_event_index\0caml_custom_ops\0caml_div\0caml_div_float\0caml_domain_dls\0caml_domain_dls_get\0caml_domain_dls_set\0caml_domain_id\0caml_domain_spawn\0caml_ensure_stack_capacity\0caml_ephe_blit_data\0caml_ephe_blit_key\0caml_ephe_check_data\0caml_ephe_check_key\0caml_ephe_create\0caml_ephe_data_offset\0caml_ephe_get_data\0caml_ephe_get_data_copy\0caml_ephe_get_key\0caml_ephe_get_key_copy\0caml_ephe_key_offset\0caml_ephe_set_data\0caml_ephe_set_key\0caml_ephe_unset_data\0caml_ephe_unset_key\0caml_eq_float\0caml_equal\0caml_erf_float\0caml_erfc_float\0caml_eventlog_pause\0caml_eventlog_resume\0caml_executable_name\0caml_exn_with_js_backtrace\0caml_exp2_float\0caml_exp_float\0caml_expm1_float\0caml_failwith\0caml_fatal_uncaught_exception\0caml_fill_bytes\0caml_fill_string\0caml_final_register\0caml_final_register_called_without_value\0caml_final_release\0caml_finish_formatting\0caml_float_compare\0caml_float_of_bytes\0caml_float_of_int\0caml_float_of_string\0caml_floatarray_blit\0caml_floatarray_create\0caml_floatarray_get\0caml_floatarray_set\0caml_floatarray_unsafe_get\0caml_floatarray_unsafe_set\0caml_floor_float\0caml_fma_float\0caml_fmod_float\0caml_format_exception\0caml_format_float\0caml_format_int\0caml_fresh_oo_id\0caml_frexp_float\0caml_fs_init\0caml_gc_compaction\0caml_gc_counters\0caml_gc_full_major\0caml_gc_get\0caml_gc_huge_fallback_count\0caml_gc_major\0caml_gc_major_slice\0caml_gc_minor\0caml_gc_minor_words\0caml_gc_quick_stat\0caml_gc_set\0caml_gc_stat\0caml_ge_float\0caml_get_continuation_callstack\0caml_get_current_callstack\0caml_get_exception_backtrace\0caml_get_exception_raw_backtrace\0caml_get_global_data\0caml_get_major_bucket\0caml_get_major_credit\0caml_get_minor_free\0caml_get_public_method\0caml_get_root\0caml_global_data\0caml_gr_arc_aux\0caml_gr_blit_image\0caml_gr_clear_graph\0caml_gr_close_graph\0caml_gr_close_subwindow\0caml_gr_create_image\0caml_gr_current_x\0caml_gr_current_y\0caml_gr_display_mode\0caml_gr_doc_of_state\0caml_gr_draw_arc\0caml_gr_draw_char\0caml_gr_draw_image\0caml_gr_draw_rect\0caml_gr_draw_str\0caml_gr_draw_string\0caml_gr_dump_image\0caml_gr_fill_arc\0caml_gr_fill_poly\0caml_gr_fill_rect\0caml_gr_lineto\0caml_gr_make_image\0caml_gr_moveto\0caml_gr_open_graph\0caml_gr_open_subwindow\0caml_gr_plot\0caml_gr_point_color\0caml_gr_remember_mode\0caml_gr_resize_window\0caml_gr_set_color\0caml_gr_set_font\0caml_gr_set_line_width\0caml_gr_set_text_size\0caml_gr_set_window_title\0caml_gr_sigio_handler\0caml_gr_sigio_signal\0caml_gr_size_x\0caml_gr_size_y\0caml_gr_state\0caml_gr_state_create\0caml_gr_state_get\0caml_gr_state_init\0caml_gr_state_set\0caml_gr_synchronize\0caml_gr_text_size\0caml_gr_wait_event\0caml_gr_window_id\0caml_greaterequal\0caml_greaterthan\0caml_gt_float\0caml_hash\0caml_hash_mix_bigstring\0caml_hash_mix_bytes\0caml_hash_mix_bytes_arr\0caml_hash_mix_final\0caml_hash_mix_float\0caml_hash_mix_int\0caml_hash_mix_int64\0caml_hash_mix_jsbytes\0caml_hash_mix_string\0caml_hash_nat\0caml_hexstring_of_float\0caml_hypot_float\0caml_input_value\0caml_input_value_from_bytes\0caml_input_value_from_reader\0caml_input_value_from_string\0caml_input_value_to_outside_heap\0caml_install_signal_handler\0caml_int32_add\0caml_int32_and\0caml_int32_bits_of_float\0caml_int32_bswap\0caml_int32_compare\0caml_int32_div\0caml_int32_float_of_bits\0caml_int32_format\0caml_int32_mod\0caml_int32_mul\0caml_int32_neg\0caml_int32_of_float\0caml_int32_of_int\0caml_int32_of_string\0caml_int32_or\0caml_int32_shift_left\0caml_int32_shift_right\0caml_int32_shift_right_unsigned\0caml_int32_sub\0caml_int32_to_float\0caml_int32_to_int\0caml_int32_unmarshal\0caml_int32_xor\0caml_int64_add\0caml_int64_and\0caml_int64_bits_of_float\0caml_int64_bswap\0caml_int64_compare\0caml_int64_create_lo_hi\0caml_int64_create_lo_mi_hi\0caml_int64_div\0caml_int64_float_of_bits\0caml_int64_format\0caml_int64_hash\0caml_int64_hi32\0caml_int64_is_negative\0caml_int64_is_zero\0caml_int64_lo32\0caml_int64_marshal\0caml_int64_mod\0caml_int64_mul\0caml_int64_neg\0caml_int64_of_bytes\0caml_int64_of_float\0caml_int64_of_int\0caml_int64_of_int32\0caml_int64_of_nativeint\0caml_int64_of_string\0caml_int64_offset\0caml_int64_or\0caml_int64_shift_left\0caml_int64_shift_right\0caml_int64_shift_right_unsigned\0caml_int64_sub\0caml_int64_to_bytes\0caml_int64_to_float\0caml_int64_to_int\0caml_int64_to_int32\0caml_int64_to_nativeint\0caml_int64_ult\0caml_int64_unmarshal\0caml_int64_xor\0caml_int_compare\0caml_int_of_float\0caml_int_of_string\0caml_invalid_argument\0caml_is_continuation_tag\0caml_is_js\0caml_is_ml_bytes\0caml_is_ml_string\0caml_is_printable\0caml_is_special_exception\0caml_js_call\0caml_js_delete\0caml_js_equals\0caml_js_error_of_exception\0caml_js_error_option_of_exception\0caml_js_eval_string\0caml_js_expr\0caml_js_from_array\0caml_js_from_bool\0caml_js_from_float\0caml_js_from_string\0caml_js_fun_call\0caml_js_function_arity\0caml_js_get\0caml_js_get_console\0caml_js_html_entities\0caml_js_html_escape\0caml_js_instanceof\0caml_js_meth_call\0caml_js_new\0caml_js_object\0caml_js_on_ie\0caml_js_pure_expr\0caml_js_set\0caml_js_to_array\0caml_js_to_bool\0caml_js_to_byte_string\0caml_js_to_float\0caml_js_to_string\0caml_js_typeof\0caml_js_var\0caml_js_wrap_callback\0caml_js_wrap_callback_arguments\0caml_js_wrap_callback_strict\0caml_js_wrap_callback_unsafe\0caml_js_wrap_meth_callback\0caml_js_wrap_meth_callback_arguments\0caml_js_wrap_meth_callback_strict\0caml_js_wrap_meth_callback_unsafe\0caml_jsbytes_of_string\0caml_jsoo_flags_effects\0caml_jsoo_flags_use_js_string\0caml_jsstring_of_string\0caml_lazy_make_forward\0caml_lazy_read_result\0caml_lazy_reset_to_lazy\0caml_lazy_update_to_forcing\0caml_lazy_update_to_forward\0caml_ldexp_float\0caml_le_float\0caml_lessequal\0caml_lessthan\0caml_lex_array\0caml_lex_engine\0caml_list_mount_point\0caml_list_of_js_array\0caml_list_to_js_array\0caml_log10_float\0caml_log1p_float\0caml_log2_float\0caml_log_float\0caml_lt_float\0caml_lxm_next\0caml_make_array\0caml_make_float_vect\0caml_make_path\0caml_make_vect\0caml_marshal_constants\0caml_marshal_data_size\0caml_marshal_header_size\0caml_maybe_attach_backtrace\0caml_maybe_print_stats\0caml_md5_bytes\0caml_md5_chan\0caml_md5_string\0caml_memprof_set\0caml_memprof_start\0caml_memprof_stop\0caml_ml_bytes_content\0caml_ml_bytes_length\0caml_ml_channel_size\0caml_ml_channel_size_64\0caml_ml_channels\0caml_ml_close_channel\0caml_ml_condition_broadcast\0caml_ml_condition_new\0caml_ml_condition_signal\0caml_ml_condition_wait\0caml_ml_debug_info_status\0caml_ml_domain_cpu_relax\0caml_ml_domain_id\0caml_ml_domain_set_name\0caml_ml_domain_unique_token\0caml_ml_enable_runtime_warnings\0caml_ml_flush\0caml_ml_input\0caml_ml_input_block\0caml_ml_input_char\0caml_ml_input_int\0caml_ml_input_scan_line\0caml_ml_is_buffered\0caml_ml_mutex_lock\0caml_ml_mutex_new\0caml_ml_mutex_try_lock\0caml_ml_mutex_unlock\0caml_ml_open_descriptor_in\0caml_ml_open_descriptor_out\0caml_ml_out_channels_list\0caml_ml_output\0caml_ml_output_bytes\0caml_ml_output_char\0caml_ml_output_int\0caml_ml_pos_in\0caml_ml_pos_in_64\0caml_ml_pos_out\0caml_ml_pos_out_64\0caml_ml_runtime_warnings_enabled\0caml_ml_seek_in\0caml_ml_seek_in_64\0caml_ml_seek_out\0caml_ml_seek_out_64\0caml_ml_set_binary_mode\0caml_ml_set_buffered\0caml_ml_set_channel_name\0caml_ml_set_channel_output\0caml_ml_set_channel_refill\0caml_ml_string_length\0caml_mod\0caml_modf_float\0caml_mount_autoload\0caml_mul\0caml_mul_float\0caml_named_value\0caml_named_values\0caml_nativeint_add\0caml_nativeint_and\0caml_nativeint_bswap\0caml_nativeint_compare\0caml_nativeint_div\0caml_nativeint_format\0caml_nativeint_mod\0caml_nativeint_mul\0caml_nativeint_neg\0caml_nativeint_of_float\0caml_nativeint_of_int\0caml_nativeint_of_int32\0caml_nativeint_of_string\0caml_nativeint_or\0caml_nativeint_shift_left\0caml_nativeint_shift_right\0caml_nativeint_shift_right_unsigned\0caml_nativeint_sub\0caml_nativeint_to_float\0caml_nativeint_to_int\0caml_nativeint_to_int32\0caml_nativeint_unmarshal\0caml_nativeint_xor\0caml_neg_float\0caml_neq_float\0caml_new_lex_engine\0caml_new_string\0caml_nextafter_float\0caml_notequal\0caml_obj_add_offset\0caml_obj_block\0caml_obj_compare_and_swap\0caml_obj_dup\0caml_obj_is_block\0caml_obj_is_shared\0caml_obj_make_forward\0caml_obj_raw_field\0caml_obj_reachable_words\0caml_obj_set_raw_field\0caml_obj_set_tag\0caml_obj_tag\0caml_obj_truncate\0caml_obj_update_tag\0caml_obj_with_tag\0caml_ojs_new_arr\0caml_oo_last_id\0caml_output_val\0caml_output_value\0caml_output_value_to_buffer\0caml_output_value_to_bytes\0caml_output_value_to_string\0caml_parse_digit\0caml_parse_engine\0caml_parse_format\0caml_parse_sign_and_base\0caml_parser_trace\0caml_pos_in\0caml_pos_out\0caml_power_float\0caml_pure_js_expr\0caml_raise_constant\0caml_raise_end_of_file\0caml_raise_no_such_file\0caml_raise_not_a_dir\0caml_raise_not_found\0caml_raise_sys_error\0caml_raise_with_arg\0caml_raise_with_args\0caml_raise_with_string\0caml_raise_zero_divide\0caml_raw_backtrace_length\0caml_raw_backtrace_next_slot\0caml_raw_backtrace_slot\0caml_read_file_content\0caml_recommended_domain_count\0caml_record_backtrace\0caml_record_backtrace_flag\0caml_refill\0caml_register_channel_for_spacetime\0caml_register_global\0caml_register_named_value\0caml_restore_raw_backtrace\0caml_root\0caml_round_float\0caml_runtime_events_create_cursor\0caml_runtime_events_free_cursor\0caml_runtime_events_pause\0caml_runtime_events_read_poll\0caml_runtime_events_resume\0caml_runtime_events_start\0caml_runtime_events_user_register\0caml_runtime_events_user_resolve\0caml_runtime_events_user_write\0caml_runtime_parameters\0caml_runtime_variant\0caml_runtime_warnings\0caml_seek_in\0caml_seek_out\0caml_set_oo_id\0caml_set_parser_trace\0caml_set_static_env\0caml_signbit_float\0caml_sin_float\0caml_sinh_float\0caml_spacetime_enabled\0caml_spacetime_only_works_for_native_code\0caml_sqrt_float\0caml_str_initialize\0caml_str_repeat\0caml_string_bound_error\0caml_string_compare\0caml_string_equal\0caml_string_get\0caml_string_get16\0caml_string_get32\0caml_string_get64\0caml_string_greaterequal\0caml_string_greaterthan\0caml_string_hash\0caml_string_lessequal\0caml_string_lessthan\0caml_string_notequal\0caml_string_of_array\0caml_string_of_bytes\0caml_string_of_jsbytes\0caml_string_of_jsstring\0caml_string_set\0caml_string_set16\0caml_string_set32\0caml_string_set64\0caml_string_unsafe_get\0caml_string_unsafe_set\0caml_sub_float\0caml_subarray_to_jsbytes\0caml_sys_argv\0caml_sys_chdir\0caml_sys_close\0caml_sys_const_backend_type\0caml_sys_const_big_endian\0caml_sys_const_int_size\0caml_sys_const_max_wosize\0caml_sys_const_naked_pointers_checked\0caml_sys_const_ostype_cygwin\0caml_sys_const_ostype_unix\0caml_sys_const_ostype_win32\0caml_sys_const_word_size\0caml_sys_executable_name\0caml_sys_exit\0caml_sys_fds\0caml_sys_file_exists\0caml_sys_get_argv\0caml_sys_get_config\0caml_sys_getcwd\0caml_sys_getenv\0caml_sys_is_directory\0caml_sys_is_regular_file\0caml_sys_isatty\0caml_sys_mkdir\0caml_sys_modify_argv\0caml_sys_open\0caml_sys_open_for_node\0caml_sys_random_seed\0caml_sys_read_directory\0caml_sys_remove\0caml_sys_rename\0caml_sys_rmdir\0caml_sys_system_command\0caml_sys_time\0caml_sys_time_include_children\0caml_sys_unsafe_getenv\0caml_tan_float\0caml_tanh_float\0caml_to_js_string\0caml_trailing_slash\0caml_trampoline\0caml_trampoline_return\0caml_trunc_float\0caml_uint8_array_of_bytes\0caml_uint8_array_of_string\0caml_unix_cleanup\0caml_unix_closedir\0caml_unix_filedescr_of_fd\0caml_unix_findclose\0caml_unix_findfirst\0caml_unix_findnext\0caml_unix_getpwuid\0caml_unix_gettimeofday\0caml_unix_getuid\0caml_unix_gmtime\0caml_unix_has_symlink\0caml_unix_inet_addr_of_string\0caml_unix_isatty\0caml_unix_localtime\0caml_unix_lstat\0caml_unix_lstat_64\0caml_unix_mkdir\0caml_unix_mktime\0caml_unix_opendir\0caml_unix_readdir\0caml_unix_readlink\0caml_unix_rewinddir\0caml_unix_rmdir\0caml_unix_startup\0caml_unix_stat\0caml_unix_stat_64\0caml_unix_symlink\0caml_unix_time\0caml_unix_unlink\0caml_unmount\0caml_update_dummy\0caml_utf16_of_utf8\0caml_utf8_of_utf16\0caml_weak_blit\0caml_weak_check\0caml_weak_create\0caml_weak_get\0caml_weak_get_copy\0caml_weak_set\0caml_wrap_exception\0caml_xmlhttprequest_create\0caml_zarith_marshal\0caml_zarith_unmarshal\0compare_digits_nat\0compare_nat\0compare_nat_real\0complement_nat\0create_nat\0decr_nat\0deserialize_nat\0div_digit_nat\0div_helper\0div_nat\0fs_node_supported\0incr_nat\0initialize_nat\0is_digit_int\0is_digit_odd\0is_digit_zero\0jsoo_create_file\0jsoo_create_file_extern\0jsoo_effect_not_supported\0jsoo_floor_log2\0jsoo_is_ascii\0jsoo_mount_point\0jsoo_sys_getenv\0jsoo_z_of_js_string_base\0land_digit_nat\0lor_digit_nat\0lxor_digit_nat\0make_unix_err_args\0ml_z_abs\0ml_z_add\0ml_z_bin\0ml_z_cdiv\0ml_z_compare\0ml_z_congruent\0ml_z_div\0ml_z_div_rem\0ml_z_divexact\0ml_z_divisible\0ml_z_equal\0ml_z_extract\0ml_z_fac\0ml_z_fac2\0ml_z_facM\0ml_z_fdiv\0ml_z_fib\0ml_z_fits_int\0ml_z_fits_int32\0ml_z_fits_int64\0ml_z_fits_nativeint\0ml_z_format\0ml_z_gcd\0ml_z_gcdext_intern\0ml_z_hamdist\0ml_z_hash\0ml_z_init\0ml_z_invert\0ml_z_jacobi\0ml_z_kronecker\0ml_z_legendre\0ml_z_logand\0ml_z_lognot\0ml_z_logor\0ml_z_logxor\0ml_z_lucnum\0ml_z_mul\0ml_z_mul_overflows\0ml_z_neg\0ml_z_nextprime\0ml_z_normalize\0ml_z_numbits\0ml_z_of_bits\0ml_z_of_float\0ml_z_of_int32\0ml_z_of_int64\0ml_z_of_nativeint\0ml_z_of_substring_base\0ml_z_perfect_power\0ml_z_perfect_square\0ml_z_popcount\0ml_z_pow\0ml_z_powm\0ml_z_powm_sec\0ml_z_pred\0ml_z_primorial\0ml_z_probab_prime\0ml_z_rem\0ml_z_remove\0ml_z_root\0ml_z_rootrem\0ml_z_shift_left\0ml_z_shift_right\0ml_z_shift_right_trunc\0ml_z_sign\0ml_z_size\0ml_z_sqrt\0ml_z_sqrt_rem\0ml_z_sub\0ml_z_succ\0ml_z_testbit\0ml_z_to_bits\0ml_z_to_int\0ml_z_to_int32\0ml_z_to_int64\0ml_z_to_nativeint\0ml_z_trailing_zeros\0mult_digit_nat\0mult_nat\0nat_of_array\0nth_digit_nat\0nth_digit_nat_native\0num_digits_nat\0num_leading_zero_bits_in_digit\0os_type\0path_is_absolute\0re_match\0re_partial_match\0re_replacement_text\0re_search_backward\0re_search_forward\0re_string_match\0resolve_fs_device\0serialize_nat\0set_digit_nat\0set_digit_nat_native\0set_to_zero_nat\0shift_left_nat\0shift_right_nat\0square_nat\0sub_nat\0unix_closedir\0unix_getpwuid\0unix_gettimeofday\0unix_getuid\0unix_gmtime\0unix_has_symlink\0unix_inet_addr_of_string\0unix_isatty\0unix_localtime\0unix_lstat\0unix_lstat_64\0unix_mkdir\0unix_mktime\0unix_opendir\0unix_readdir\0unix_readlink\0unix_rewinddir\0unix_rmdir\0unix_stat\0unix_stat_64\0unix_symlink\0unix_time\0unix_unlink\0win_cleanup\0win_filedescr_of_channel\0win_findclose\0win_findfirst\0win_findnext\0win_handle_fd\0win_startup\0zstd_decompress\0"],0]]]];return}(globalThis)); - -//# 1 "../../.js/default/stdlib/stdlib.cma.js" -// Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - -//# 5 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function erase_rel(param){ - if(typeof param === "number") return 0; - switch(param[0]){ - case 0: - var rest = param[1]; return [0, erase_rel(rest)]; - case 1: - var rest$0 = param[1]; return [1, erase_rel(rest$0)]; - case 2: - var rest$1 = param[1]; return [2, erase_rel(rest$1)]; - case 3: - var rest$2 = param[1]; return [3, erase_rel(rest$2)]; - case 4: - var rest$3 = param[1]; return [4, erase_rel(rest$3)]; - case 5: - var rest$4 = param[1]; return [5, erase_rel(rest$4)]; - case 6: - var rest$5 = param[1]; return [6, erase_rel(rest$5)]; - case 7: - var rest$6 = param[1]; return [7, erase_rel(rest$6)]; - case 8: - var rest$7 = param[2], ty = param[1]; - return [8, ty, erase_rel(rest$7)]; - case 9: - var rest$8 = param[3], ty1 = param[1]; - return [9, ty1, ty1, erase_rel(rest$8)]; - case 10: - var rest$9 = param[1]; return [10, erase_rel(rest$9)]; - case 11: - var rest$10 = param[1]; return [11, erase_rel(rest$10)]; - case 12: - var rest$11 = param[1]; return [12, erase_rel(rest$11)]; - case 13: - var rest$12 = param[1]; return [13, erase_rel(rest$12)]; - default: var rest$13 = param[1]; return [14, erase_rel(rest$13)]; - } - } - function concat_fmtty(fmtty1, fmtty2){ - if(typeof fmtty1 === "number") return fmtty2; - switch(fmtty1[0]){ - case 0: - var rest = fmtty1[1]; return [0, concat_fmtty(rest, fmtty2)]; - case 1: - var rest$0 = fmtty1[1]; return [1, concat_fmtty(rest$0, fmtty2)]; - case 2: - var rest$1 = fmtty1[1]; return [2, concat_fmtty(rest$1, fmtty2)]; - case 3: - var rest$2 = fmtty1[1]; return [3, concat_fmtty(rest$2, fmtty2)]; - case 4: - var rest$3 = fmtty1[1]; return [4, concat_fmtty(rest$3, fmtty2)]; - case 5: - var rest$4 = fmtty1[1]; return [5, concat_fmtty(rest$4, fmtty2)]; - case 6: - var rest$5 = fmtty1[1]; return [6, concat_fmtty(rest$5, fmtty2)]; - case 7: - var rest$6 = fmtty1[1]; return [7, concat_fmtty(rest$6, fmtty2)]; - case 8: - var rest$7 = fmtty1[2], ty = fmtty1[1]; - return [8, ty, concat_fmtty(rest$7, fmtty2)]; - case 9: - var rest$8 = fmtty1[3], ty2 = fmtty1[2], ty1 = fmtty1[1]; - return [9, ty1, ty2, concat_fmtty(rest$8, fmtty2)]; - case 10: - var rest$9 = fmtty1[1]; return [10, concat_fmtty(rest$9, fmtty2)]; - case 11: - var rest$10 = fmtty1[1]; return [11, concat_fmtty(rest$10, fmtty2)]; - case 12: - var rest$11 = fmtty1[1]; return [12, concat_fmtty(rest$11, fmtty2)]; - case 13: - var rest$12 = fmtty1[1]; return [13, concat_fmtty(rest$12, fmtty2)]; - default: - var rest$13 = fmtty1[1]; return [14, concat_fmtty(rest$13, fmtty2)]; - } - } - function concat_fmt(fmt1, fmt2){ - if(typeof fmt1 === "number") return fmt2; - switch(fmt1[0]){ - case 0: - var rest = fmt1[1]; return [0, concat_fmt(rest, fmt2)]; - case 1: - var rest$0 = fmt1[1]; return [1, concat_fmt(rest$0, fmt2)]; - case 2: - var rest$1 = fmt1[2], pad = fmt1[1]; - return [2, pad, concat_fmt(rest$1, fmt2)]; - case 3: - var rest$2 = fmt1[2], pad$0 = fmt1[1]; - return [3, pad$0, concat_fmt(rest$2, fmt2)]; - case 4: - var rest$3 = fmt1[4], prec = fmt1[3], pad$1 = fmt1[2], iconv = fmt1[1]; - return [4, iconv, pad$1, prec, concat_fmt(rest$3, fmt2)]; - case 5: - var - rest$4 = fmt1[4], - prec$0 = fmt1[3], - pad$2 = fmt1[2], - iconv$0 = fmt1[1]; - return [5, iconv$0, pad$2, prec$0, concat_fmt(rest$4, fmt2)]; - case 6: - var - rest$5 = fmt1[4], - prec$1 = fmt1[3], - pad$3 = fmt1[2], - iconv$1 = fmt1[1]; - return [6, iconv$1, pad$3, prec$1, concat_fmt(rest$5, fmt2)]; - case 7: - var - rest$6 = fmt1[4], - prec$2 = fmt1[3], - pad$4 = fmt1[2], - iconv$2 = fmt1[1]; - return [7, iconv$2, pad$4, prec$2, concat_fmt(rest$6, fmt2)]; - case 8: - var - rest$7 = fmt1[4], - prec$3 = fmt1[3], - pad$5 = fmt1[2], - fconv = fmt1[1]; - return [8, fconv, pad$5, prec$3, concat_fmt(rest$7, fmt2)]; - case 9: - var rest$8 = fmt1[2], pad$6 = fmt1[1]; - return [9, pad$6, concat_fmt(rest$8, fmt2)]; - case 10: - var rest$9 = fmt1[1]; return [10, concat_fmt(rest$9, fmt2)]; - case 11: - var rest$10 = fmt1[2], str = fmt1[1]; - return [11, str, concat_fmt(rest$10, fmt2)]; - case 12: - var rest$11 = fmt1[2], chr = fmt1[1]; - return [12, chr, concat_fmt(rest$11, fmt2)]; - case 13: - var rest$12 = fmt1[3], fmtty = fmt1[2], pad$7 = fmt1[1]; - return [13, pad$7, fmtty, concat_fmt(rest$12, fmt2)]; - case 14: - var rest$13 = fmt1[3], fmtty$0 = fmt1[2], pad$8 = fmt1[1]; - return [14, pad$8, fmtty$0, concat_fmt(rest$13, fmt2)]; - case 15: - var rest$14 = fmt1[1]; return [15, concat_fmt(rest$14, fmt2)]; - case 16: - var rest$15 = fmt1[1]; return [16, concat_fmt(rest$15, fmt2)]; - case 17: - var rest$16 = fmt1[2], fmting_lit = fmt1[1]; - return [17, fmting_lit, concat_fmt(rest$16, fmt2)]; - case 18: - var rest$17 = fmt1[2], fmting_gen = fmt1[1]; - return [18, fmting_gen, concat_fmt(rest$17, fmt2)]; - case 19: - var rest$18 = fmt1[1]; return [19, concat_fmt(rest$18, fmt2)]; - case 20: - var rest$19 = fmt1[3], char_set = fmt1[2], width_opt = fmt1[1]; - return [20, width_opt, char_set, concat_fmt(rest$19, fmt2)]; - case 21: - var rest$20 = fmt1[2], counter = fmt1[1]; - return [21, counter, concat_fmt(rest$20, fmt2)]; - case 22: - var rest$21 = fmt1[1]; return [22, concat_fmt(rest$21, fmt2)]; - case 23: - var rest$22 = fmt1[2], ign = fmt1[1]; - return [23, ign, concat_fmt(rest$22, fmt2)]; - default: - var rest$23 = fmt1[3], f = fmt1[2], arity = fmt1[1]; - return [24, arity, f, concat_fmt(rest$23, fmt2)]; - } - } - var CamlinternalFormatBasics = [0, concat_fmtty, erase_rel, concat_fmt]; - runtime.caml_register_global - (0, CamlinternalFormatBasics, "CamlinternalFormatBasics"); - return; - } - (globalThis)); - -//# 179 "../../.js/default/stdlib/stdlib.cma.js" -(function(globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function make(v){return [0, v];} - function get(r){return r[1];} - function set(r, v){r[1] = v; return 0;} - function exchange(r, v){var cur = r[1]; r[1] = v; return cur;} - function compare_and_set(r, seen, v){ - var cur = r[1]; - return cur === seen ? (r[1] = v, 1) : 0; - } - function fetch_and_add(r, n){ - var cur = r[1]; - r[1] = cur + n | 0; - return cur; - } - function incr(r){fetch_and_add(r, 1); return 0;} - function decr(r){fetch_and_add(r, -1); return 0;} - var - CamlinternalAtomic = - [0, - make, - get, - set, - exchange, - compare_and_set, - fetch_and_add, - incr, - decr]; - runtime.caml_register_global(0, CamlinternalAtomic, "CamlinternalAtomic"); - return; - } - (globalThis)); - -//# 215 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_false$0 = "false", - cst_true$0 = "true", - caml_blit_string = runtime.caml_blit_string, - caml_create_bytes = runtime.caml_create_bytes, - caml_float_of_string = runtime.caml_float_of_string, - caml_int64_float_of_bits = runtime.caml_int64_float_of_bits, - caml_int_of_string = runtime.caml_int_of_string, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_bytes_length = runtime.caml_ml_bytes_length, - caml_ml_channel_size = runtime.caml_ml_channel_size, - caml_ml_channel_size_64 = runtime.caml_ml_channel_size_64, - caml_ml_close_channel = runtime.caml_ml_close_channel, - caml_ml_flush = runtime.caml_ml_flush, - caml_ml_input = runtime.caml_ml_input, - caml_ml_input_char = runtime.caml_ml_input_char, - caml_ml_open_descriptor_in = runtime.caml_ml_open_descriptor_in, - caml_ml_open_descriptor_out = runtime.caml_ml_open_descriptor_out, - caml_ml_output = runtime.caml_ml_output, - caml_ml_output_bytes = runtime.caml_ml_output_bytes, - caml_ml_output_char = runtime.caml_ml_output_char, - caml_ml_set_binary_mode = runtime.caml_ml_set_binary_mode, - caml_ml_set_channel_name = runtime.caml_ml_set_channel_name, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_string_notequal = runtime.caml_string_notequal, - caml_string_of_bytes = runtime.caml_string_of_bytes, - caml_sys_open = runtime.caml_sys_open, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - cst$0 = "%,", - cst = ".", - CamlinternalAtomic = global_data.CamlinternalAtomic, - CamlinternalFormatBasics = global_data.CamlinternalFormatBasics, - Invalid_argument = global_data.Invalid_argument, - Failure = global_data.Failure, - Match_failure = global_data.Match_failure, - Assert_failure = global_data.Assert_failure, - Not_found = global_data.Not_found, - Out_of_memory = global_data.Out_of_memory, - Stack_overflow = global_data.Stack_overflow, - Sys_error = global_data.Sys_error, - End_of_file = global_data.End_of_file, - Division_by_zero = global_data.Division_by_zero, - Sys_blocked_io = global_data.Sys_blocked_io, - Undefined_recursive_module = global_data.Undefined_recursive_module, - cst_really_input = "really_input", - cst_input = "input", - _l_ = [0, 0, [0, 6, 0]], - _k_ = [0, 0, [0, 7, 0]], - cst_output_substring = "output_substring", - cst_output = "output", - _j_ = [0, 1, [0, 3, [0, 4, [0, 6, 0]]]], - _i_ = [0, 1, [0, 3, [0, 4, [0, 7, 0]]]], - _g_ = [0, 1], - _h_ = [0, 0], - cst_bool_of_string = "bool_of_string", - cst_true = cst_true$0, - cst_false = cst_false$0, - cst_char_of_int = "char_of_int", - cst_Stdlib_Exit = "Stdlib.Exit", - _a_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 32752), - _b_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 65520), - _c_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 32752), - _d_ = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32751), - _e_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 16), - _f_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 15536); - function failwith(s){ - throw caml_maybe_attach_backtrace([0, Failure, s], 1); - } - function invalid_arg(s){ - throw caml_maybe_attach_backtrace([0, Invalid_argument, s], 1); - } - var Exit = [248, cst_Stdlib_Exit, runtime.caml_fresh_oo_id(0)]; - function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} - function max(x, y){return runtime.caml_greaterequal(x, y) ? x : y;} - function abs(x){return 0 <= x ? x : - x | 0;} - function lnot(x){return x ^ -1;} - var - infinity = caml_int64_float_of_bits(_a_), - neg_infinity = caml_int64_float_of_bits(_b_), - nan = caml_int64_float_of_bits(_c_), - max_float = caml_int64_float_of_bits(_d_), - min_float = caml_int64_float_of_bits(_e_), - epsilon_float = caml_int64_float_of_bits(_f_), - max_int = 2147483647, - min_int = -2147483648; - function symbol(s1, s2){ - var - l1 = caml_ml_string_length(s1), - l2 = caml_ml_string_length(s2), - s = caml_create_bytes(l1 + l2 | 0); - caml_blit_string(s1, 0, s, 0, l1); - caml_blit_string(s2, 0, s, l1, l2); - return caml_string_of_bytes(s); - } - function char_of_int(n){ - if(0 <= n && 255 >= n) return n; - return invalid_arg(cst_char_of_int); - } - function string_of_bool(b){return b ? cst_true : cst_false;} - function bool_of_string(param){ - return caml_string_notequal(param, cst_false$0) - ? caml_string_notequal - (param, cst_true$0) - ? invalid_arg(cst_bool_of_string) - : 1 - : 0; - } - function bool_of_string_opt(param){ - return caml_string_notequal(param, cst_false$0) - ? caml_string_notequal(param, cst_true$0) ? 0 : _g_ - : _h_; - } - function string_of_int(n){return "" + n;} - function int_of_string_opt(s){ - try{var _B_ = [0, caml_int_of_string(s)]; return _B_;} - catch(_C_){ - var _A_ = caml_wrap_exception(_C_); - if(_A_[1] === Failure) return 0; - throw caml_maybe_attach_backtrace(_A_, 0); - } - } - function valid_float_lexem(s){ - var l = caml_ml_string_length(s), i = 0; - for(;;){ - if(l <= i) return symbol(s, cst); - var match = runtime.caml_string_get(s, i), switch$0 = 0; - if(48 <= match){ - if(58 > match) switch$0 = 1; - } - else if(45 === match) switch$0 = 1; - if(! switch$0) return s; - var i$0 = i + 1 | 0, i = i$0; - } - } - function string_of_float(f){ - return valid_float_lexem(runtime.caml_format_float("%.12g", f)); - } - function float_of_string_opt(s){ - try{var _y_ = [0, caml_float_of_string(s)]; return _y_;} - catch(_z_){ - var _x_ = caml_wrap_exception(_z_); - if(_x_[1] === Failure) return 0; - throw caml_maybe_attach_backtrace(_x_, 0); - } - } - function symbol$0(l1, l2){ - if(! l1) return l2; - var tl = l1[2], hd = l1[1]; - return [0, hd, symbol$0(tl, l2)]; - } - var - stdin = caml_ml_open_descriptor_in(0), - stdout = caml_ml_open_descriptor_out(1), - stderr = caml_ml_open_descriptor_out(2); - function open_out_gen(mode, perm, name){ - var c = caml_ml_open_descriptor_out(caml_sys_open(name, mode, perm)); - caml_ml_set_channel_name(c, name); - return c; - } - function open_out(name){return open_out_gen(_i_, 438, name);} - function open_out_bin(name){return open_out_gen(_j_, 438, name);} - function flush_all(param){ - var param$0 = runtime.caml_ml_out_channels_list(0); - for(;;){ - if(! param$0) return 0; - var l = param$0[2], a = param$0[1]; - try{caml_ml_flush(a);} - catch(_w_){ - var _v_ = caml_wrap_exception(_w_); - if(_v_[1] !== Sys_error) throw caml_maybe_attach_backtrace(_v_, 0); - } - var param$0 = l; - } - } - function output_bytes(oc, s){ - return caml_ml_output_bytes(oc, s, 0, caml_ml_bytes_length(s)); - } - function output_string(oc, s){ - return caml_ml_output(oc, s, 0, caml_ml_string_length(s)); - } - function output(oc, s, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return caml_ml_output_bytes(oc, s, ofs, len); - return invalid_arg(cst_output); - } - function output_substring(oc, s, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_string_length(s) - len | 0) >= ofs) - return caml_ml_output(oc, s, ofs, len); - return invalid_arg(cst_output_substring); - } - function output_value(chan, v){ - return runtime.caml_output_value(chan, v, 0); - } - function close_out(oc){ - caml_ml_flush(oc); - return caml_ml_close_channel(oc); - } - function close_out_noerr(oc){ - try{caml_ml_flush(oc);}catch(_u_){} - try{var _s_ = caml_ml_close_channel(oc); return _s_;}catch(_t_){return 0;} - } - function open_in_gen(mode, perm, name){ - var c = caml_ml_open_descriptor_in(caml_sys_open(name, mode, perm)); - caml_ml_set_channel_name(c, name); - return c; - } - function open_in(name){return open_in_gen(_k_, 0, name);} - function open_in_bin(name){return open_in_gen(_l_, 0, name);} - function input(ic, s, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return caml_ml_input(ic, s, ofs, len); - return invalid_arg(cst_input); - } - function unsafe_really_input(ic, s, ofs, len){ - var ofs$0 = ofs, len$0 = len; - for(;;){ - if(0 >= len$0) return 0; - var r = caml_ml_input(ic, s, ofs$0, len$0); - if(0 === r) throw caml_maybe_attach_backtrace(End_of_file, 1); - var - len$1 = len$0 - r | 0, - ofs$1 = ofs$0 + r | 0, - ofs$0 = ofs$1, - len$0 = len$1; - } - } - function really_input(ic, s, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return unsafe_really_input(ic, s, ofs, len); - return invalid_arg(cst_really_input); - } - function really_input_string(ic, len){ - var s = caml_create_bytes(len); - really_input(ic, s, 0, len); - return caml_string_of_bytes(s); - } - function input_line(chan){ - function build_result(buf, pos, param){ - var pos$0 = pos, param$0 = param; - for(;;){ - if(! param$0) return buf; - var tl = param$0[2], hd = param$0[1], len = caml_ml_bytes_length(hd); - runtime.caml_blit_bytes(hd, 0, buf, pos$0 - len | 0, len); - var pos$1 = pos$0 - len | 0, pos$0 = pos$1, param$0 = tl; - } - } - var accu = 0, len = 0; - for(;;){ - var n = runtime.caml_ml_input_scan_line(chan); - if(0 === n){ - if(! accu) throw caml_maybe_attach_backtrace(End_of_file, 1); - var _r_ = build_result(caml_create_bytes(len), len, accu); - } - else{ - if(0 >= n){ - var beg = caml_create_bytes(- n | 0); - caml_ml_input(chan, beg, 0, - n | 0); - var - len$1 = len - n | 0, - accu$0 = [0, beg, accu], - accu = accu$0, - len = len$1; - continue; - } - var res = caml_create_bytes(n - 1 | 0); - caml_ml_input(chan, res, 0, n - 1 | 0); - caml_ml_input_char(chan); - if(accu) - var - len$0 = (len + n | 0) - 1 | 0, - _r_ = build_result(caml_create_bytes(len$0), len$0, [0, res, accu]); - else - var _r_ = res; - } - return caml_string_of_bytes(_r_); - } - } - function close_in_noerr(ic){ - try{var _p_ = caml_ml_close_channel(ic); return _p_;}catch(_q_){return 0;} - } - function print_char(c){return caml_ml_output_char(stdout, c);} - function print_string(s){return output_string(stdout, s);} - function print_bytes(s){return output_bytes(stdout, s);} - function print_int(i){return output_string(stdout, "" + i);} - function print_float(f){return output_string(stdout, string_of_float(f));} - function print_endline(s){ - output_string(stdout, s); - caml_ml_output_char(stdout, 10); - return caml_ml_flush(stdout); - } - function print_newline(param){ - caml_ml_output_char(stdout, 10); - return caml_ml_flush(stdout); - } - function prerr_char(c){return caml_ml_output_char(stderr, c);} - function prerr_string(s){return output_string(stderr, s);} - function prerr_bytes(s){return output_bytes(stderr, s);} - function prerr_int(i){return output_string(stderr, "" + i);} - function prerr_float(f){return output_string(stderr, string_of_float(f));} - function prerr_endline(s){ - output_string(stderr, s); - caml_ml_output_char(stderr, 10); - return caml_ml_flush(stderr); - } - function prerr_newline(param){ - caml_ml_output_char(stderr, 10); - return caml_ml_flush(stderr); - } - function read_line(param){caml_ml_flush(stdout); return input_line(stdin);} - function read_int(param){return caml_int_of_string(read_line(0));} - function read_int_opt(param){return int_of_string_opt(read_line(0));} - function read_float(param){return caml_float_of_string(read_line(0));} - function read_float_opt(param){return float_of_string_opt(read_line(0));} - function string_of_format(param){var str = param[2]; return str;} - function symbol$1(param, _n_){ - var - str2 = _n_[2], - fmt2 = _n_[1], - str1 = param[2], - fmt1 = param[1], - _o_ = symbol(str1, symbol(cst$0, str2)); - return [0, caml_call2(CamlinternalFormatBasics[3], fmt1, fmt2), _o_]; - } - var exit_function = caml_call1(CamlinternalAtomic[1], flush_all); - function at_exit(f){ - for(;;){ - var - f_yet_to_run = caml_call1(CamlinternalAtomic[1], 1), - old_exit = caml_call1(CamlinternalAtomic[2], exit_function), - new_exit$0 = - function(f_yet_to_run, old_exit){ - function new_exit(param){ - if(caml_call3(CamlinternalAtomic[5], f_yet_to_run, 1, 0)) - caml_call1(f, 0); - return caml_call1(old_exit, 0); - } - return new_exit; - }, - new_exit = new_exit$0(f_yet_to_run, old_exit), - success = - caml_call3(CamlinternalAtomic[5], exit_function, old_exit, new_exit), - _m_ = 1 - success; - if(_m_) continue; - return _m_; - } - } - function do_at_exit(param){ - return caml_call1(caml_call1(CamlinternalAtomic[2], exit_function), 0); - } - function exit(retcode){ - do_at_exit(0); - return runtime.caml_sys_exit(retcode); - } - runtime.caml_register_named_value("Pervasives.do_at_exit", do_at_exit); - var - Stdlib = - [0, - invalid_arg, - failwith, - Exit, - Match_failure, - Assert_failure, - Invalid_argument, - Failure, - Not_found, - Out_of_memory, - Stack_overflow, - Sys_error, - End_of_file, - Division_by_zero, - Sys_blocked_io, - Undefined_recursive_module, - min, - max, - abs, - max_int, - min_int, - lnot, - infinity, - neg_infinity, - nan, - max_float, - min_float, - epsilon_float, - symbol, - char_of_int, - string_of_bool, - bool_of_string_opt, - bool_of_string, - string_of_int, - int_of_string_opt, - string_of_float, - float_of_string_opt, - symbol$0, - stdin, - stdout, - stderr, - print_char, - print_string, - print_bytes, - print_int, - print_float, - print_endline, - print_newline, - prerr_char, - prerr_string, - prerr_bytes, - prerr_int, - prerr_float, - prerr_endline, - prerr_newline, - read_line, - read_int_opt, - read_int, - read_float_opt, - read_float, - open_out, - open_out_bin, - open_out_gen, - caml_ml_flush, - flush_all, - caml_ml_output_char, - output_string, - output_bytes, - output, - output_substring, - caml_ml_output_char, - runtime.caml_ml_output_int, - output_value, - runtime.caml_ml_seek_out, - runtime.caml_ml_pos_out, - caml_ml_channel_size, - close_out, - close_out_noerr, - caml_ml_set_binary_mode, - open_in, - open_in_bin, - open_in_gen, - caml_ml_input_char, - input_line, - input, - really_input, - really_input_string, - caml_ml_input_char, - runtime.caml_ml_input_int, - runtime.caml_input_value, - runtime.caml_ml_seek_in, - runtime.caml_ml_pos_in, - caml_ml_channel_size, - caml_ml_close_channel, - close_in_noerr, - caml_ml_set_binary_mode, - [0, - runtime.caml_ml_seek_out_64, - runtime.caml_ml_pos_out_64, - caml_ml_channel_size_64, - runtime.caml_ml_seek_in_64, - runtime.caml_ml_pos_in_64, - caml_ml_channel_size_64], - string_of_format, - symbol$1, - exit, - at_exit, - valid_float_lexem, - unsafe_really_input, - do_at_exit]; - runtime.caml_register_global(46, Stdlib, "Stdlib"); - return; - } - (globalThis)); - -//# 996 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_wrap_exception = runtime.caml_wrap_exception, - global_data = runtime.caml_get_global_data(), - ocaml_version = "4.14.0", - ocaml_release = [0, 4, 14, 0, 0], - Stdlib = global_data.Stdlib, - executable_name = runtime.caml_sys_executable_name(0), - os_type = runtime.caml_sys_get_config(0)[1], - backend_type = [0, "js_of_ocaml"], - unix = runtime.caml_sys_const_ostype_unix(0), - win32 = runtime.caml_sys_const_ostype_win32(0), - cygwin = runtime.caml_sys_const_ostype_cygwin(0), - max_array_length = runtime.caml_sys_const_max_wosize(0), - max_floatarray_length = max_array_length / 2 | 0, - max_string_length = (4 * max_array_length | 0) - 1 | 0, - cst_Stdlib_Sys_Break = "Stdlib.Sys.Break", - big_endian = 0, - word_size = 32, - int_size = 32; - function getenv_opt(s){ - try{var _d_ = [0, runtime.caml_sys_getenv(s)]; return _d_;} - catch(_e_){ - var _c_ = caml_wrap_exception(_e_); - if(_c_ === Stdlib[8]) return 0; - throw caml_maybe_attach_backtrace(_c_, 0); - } - } - var interactive = [0, 0]; - function set_signal(sig_num, sig_beh){return 0;} - var - Break = [248, cst_Stdlib_Sys_Break, runtime.caml_fresh_oo_id(0)], - sigabrt = -1, - sigalrm = -2, - sigfpe = -3, - sighup = -4, - sigill = -5, - sigint = -6, - sigkill = -7, - sigpipe = -8, - sigquit = -9, - sigsegv = -10, - sigterm = -11, - sigusr1 = -12, - sigusr2 = -13, - sigchld = -14, - sigcont = -15, - sigstop = -16, - sigtstp = -17, - sigttin = -18, - sigttou = -19, - sigvtalrm = -20, - sigprof = -21, - sigbus = -22, - sigpoll = -23, - sigsys = -24, - sigtrap = -25, - sigurg = -26, - sigxcpu = -27, - sigxfsz = -28; - function catch_break(on){return on ? 0 : 0;} - var development_version = 0; - function Make(_b_, _a_){return [0, 1];} - var - Immediate64 = [0, Make], - Stdlib_Sys = - [0, - executable_name, - getenv_opt, - interactive, - os_type, - backend_type, - unix, - win32, - cygwin, - word_size, - int_size, - big_endian, - max_string_length, - max_array_length, - max_floatarray_length, - set_signal, - sigabrt, - sigalrm, - sigfpe, - sighup, - sigill, - sigint, - sigkill, - sigpipe, - sigquit, - sigsegv, - sigterm, - sigusr1, - sigusr2, - sigchld, - sigcont, - sigstop, - sigtstp, - sigttin, - sigttou, - sigvtalrm, - sigprof, - sigbus, - sigpoll, - sigsys, - sigtrap, - sigurg, - sigxcpu, - sigxfsz, - Break, - catch_break, - ocaml_version, - development_version, - ocaml_release, - runtime.caml_ml_enable_runtime_warnings, - runtime.caml_ml_runtime_warnings_enabled, - Immediate64]; - runtime.caml_register_global(4, Stdlib_Sys, "Stdlib__Sys"); - return; - } - (globalThis)); - -//# 1125 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_Obj_extension_constructor$1 = "Obj.extension_constructor", - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_obj_tag = runtime.caml_obj_tag; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Assert_failure = global_data.Assert_failure, - Stdlib_Sys = global_data.Stdlib__Sys, - cst_Obj_Ephemeron_blit_key = "Obj.Ephemeron.blit_key", - cst_Obj_Ephemeron_check_key = "Obj.Ephemeron.check_key", - cst_Obj_Ephemeron_unset_key = "Obj.Ephemeron.unset_key", - cst_Obj_Ephemeron_set_key = "Obj.Ephemeron.set_key", - cst_Obj_Ephemeron_get_key_copy = "Obj.Ephemeron.get_key_copy", - cst_Obj_Ephemeron_get_key = "Obj.Ephemeron.get_key", - cst_Obj_Ephemeron_create = "Obj.Ephemeron.create", - cst_Obj_extension_constructor$0 = cst_Obj_extension_constructor$1, - cst_Obj_extension_constructor = cst_Obj_extension_constructor$1, - _a_ = [0, "obj.ml", 95, 4]; - function is_block(a){return 1 - (typeof a === "number" ? 1 : 0);} - var - double_field = runtime.caml_array_get, - set_double_field = runtime.caml_array_set, - first_non_constant_constructor = 0, - last_non_constant_constructor_ = 245, - lazy_tag = 246, - closure_tag = 247, - object_tag = 248, - infix_tag = 249, - forward_tag = 250, - no_scan_tag = 251, - abstract_tag = 251, - string_tag = 252, - double_tag = 253, - double_array_tag = 254, - custom_tag = 255, - int_tag = 1000, - out_of_heap_tag = 1001, - unaligned_tag = 1002; - function info(obj){ - if(caml_obj_tag(obj) !== 247) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - var - info = runtime.caml_obj_raw_field(obj, 1), - arity = 64 === Stdlib_Sys[9] ? info >> 56 : info >> 24, - start_env = info << 8 >>> 9 | 0; - return [0, arity, start_env]; - } - function of_val(x){ - var switch$0 = 0; - if(is_block(x) && caml_obj_tag(x) !== 248 && 1 <= x.length - 1){var slot = x[1]; switch$0 = 1;} - if(! switch$0) var slot = x; - var switch$1 = 0; - if(is_block(slot) && caml_obj_tag(slot) === 248){var name = slot[1]; switch$1 = 1;} - if(! switch$1) - var name = caml_call1(Stdlib[1], cst_Obj_extension_constructor$0); - return caml_obj_tag(name) === 252 - ? slot - : caml_call1(Stdlib[1], cst_Obj_extension_constructor); - } - function name(slot){return slot[1];} - function id(slot){return slot[2];} - var - Extension_constructor = [0, of_val, name, id], - extension_constructor = Extension_constructor[1], - extension_name = Extension_constructor[2], - extension_id = Extension_constructor[3], - max_ephe_length = Stdlib_Sys[13] - 2 | 0; - function create(l){ - var _g_ = 0 <= l ? 1 : 0, _h_ = _g_ ? l <= max_ephe_length ? 1 : 0 : _g_; - if(1 - _h_) caml_call1(Stdlib[1], cst_Obj_Ephemeron_create); - return runtime.caml_ephe_create(l); - } - function length(x){return x.length - 1 - 2 | 0;} - function raise_if_invalid_offset(e, o, msg){ - var - _d_ = 0 <= o ? 1 : 0, - _e_ = _d_ ? o < length(e) ? 1 : 0 : _d_, - _f_ = 1 - _e_; - return _f_ ? caml_call1(Stdlib[1], msg) : _f_; - } - function get_key(e, o){ - raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_get_key); - return runtime.caml_ephe_get_key(e, o); - } - function get_key_copy(e, o){ - raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_get_key_copy); - return runtime.caml_ephe_get_key_copy(e, o); - } - function set_key(e, o, x){ - raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_set_key); - return runtime.caml_ephe_set_key(e, o, x); - } - function unset_key(e, o){ - raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_unset_key); - return runtime.caml_ephe_unset_key(e, o); - } - function check_key(e, o){ - raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_check_key); - return runtime.caml_ephe_check_key(e, o); - } - function blit_key(e1, o1, e2, o2, l){ - if - (0 <= l - && - 0 <= o1 - && (length(e1) - l | 0) >= o1 && 0 <= o2 && (length(e2) - l | 0) >= o2){ - var - _b_ = 0 !== l ? 1 : 0, - _c_ = _b_ ? runtime.caml_ephe_blit_key(e1, o1, e2, o2, l) : _b_; - return _c_; - } - return caml_call1(Stdlib[1], cst_Obj_Ephemeron_blit_key); - } - var - Stdlib_Obj = - [0, - is_block, - double_field, - set_double_field, - first_non_constant_constructor, - last_non_constant_constructor_, - lazy_tag, - closure_tag, - object_tag, - infix_tag, - forward_tag, - no_scan_tag, - abstract_tag, - string_tag, - double_tag, - double_array_tag, - custom_tag, - custom_tag, - int_tag, - out_of_heap_tag, - unaligned_tag, - [0, info], - Extension_constructor, - extension_constructor, - extension_name, - extension_id, - [0, - create, - length, - get_key, - get_key_copy, - set_key, - unset_key, - check_key, - blit_key, - runtime.caml_ephe_get_data, - runtime.caml_ephe_get_data_copy, - runtime.caml_ephe_set_data, - runtime.caml_ephe_unset_data, - runtime.caml_ephe_check_data, - runtime.caml_ephe_blit_data, - max_ephe_length]]; - runtime.caml_register_global(13, Stdlib_Obj, "Stdlib__Obj"); - return; - } - (globalThis)); - -//# 1299 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_obj_make_forward = runtime.caml_obj_make_forward, - caml_obj_tag = runtime.caml_obj_tag, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Obj = global_data.Stdlib__Obj, - Undefined = - [248, "CamlinternalLazy.Undefined", runtime.caml_fresh_oo_id(0)]; - function raise_undefined(param){ - throw caml_maybe_attach_backtrace(Undefined, 1); - } - function force_lazy_block(blk){ - var closure = blk[1]; - blk[1] = raise_undefined; - try{ - var result = caml_call1(closure, 0); - caml_obj_make_forward(blk, result); - return result; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - blk[1] = function(param){throw caml_maybe_attach_backtrace(e, 0);}; - throw caml_maybe_attach_backtrace(e, 0); - } - } - function force_val_lazy_block(blk){ - var closure = blk[1]; - blk[1] = raise_undefined; - var result = caml_call1(closure, 0); - caml_obj_make_forward(blk, result); - return result; - } - function force(lzv){ - var t = caml_obj_tag(lzv); - return t === Stdlib_Obj[10] - ? lzv[1] - : t !== Stdlib_Obj[6] ? lzv : force_lazy_block(lzv); - } - function force_val(lzv){ - var t = caml_obj_tag(lzv); - return t === Stdlib_Obj[10] - ? lzv[1] - : t !== Stdlib_Obj[6] ? lzv : force_val_lazy_block(lzv); - } - var - CamlinternalLazy = - [0, Undefined, force_lazy_block, force_val_lazy_block, force, force_val]; - runtime.caml_register_global(2, CamlinternalLazy, "CamlinternalLazy"); - return; - } - (globalThis)); - -//# 1364 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime, caml_obj_tag = runtime.caml_obj_tag; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - CamlinternalLazy = global_data.CamlinternalLazy, - Stdlib_Obj = global_data.Stdlib__Obj, - Undefined = CamlinternalLazy[1], - force_val = CamlinternalLazy[5]; - function from_fun(f){ - var x = runtime.caml_obj_block(Stdlib_Obj[6], 1); - x[1] = f; - return x; - } - function from_val(v){ - var t = caml_obj_tag(v); - if(t !== Stdlib_Obj[10] && t !== Stdlib_Obj[6] && t !== Stdlib_Obj[14]) - return v; - return runtime.caml_lazy_make_forward(v); - } - function is_val(l){ - var _i_ = Stdlib_Obj[6]; - return caml_obj_tag(l) !== _i_ ? 1 : 0; - } - function map(f, x){ - return [246, - function(_f_){ - var - _g_ = caml_obj_tag(x), - _h_ = - 250 === _g_ - ? x[1] - : 246 === _g_ ? caml_call1(CamlinternalLazy[2], x) : x; - return caml_call1(f, _h_); - }]; - } - function map_val(f, x){ - if(! is_val(x)) - return [246, - function(_c_){ - var - _d_ = caml_obj_tag(x), - _e_ = - 250 === _d_ - ? x[1] - : 246 === _d_ ? caml_call1(CamlinternalLazy[2], x) : x; - return caml_call1(f, _e_); - }]; - var - _a_ = caml_obj_tag(x), - _b_ = - 250 === _a_ - ? x[1] - : 246 === _a_ ? caml_call1(CamlinternalLazy[2], x) : x; - return from_val(caml_call1(f, _b_)); - } - var - Stdlib_Lazy = - [0, - Undefined, - map, - is_val, - from_val, - map_val, - from_fun, - force_val, - from_fun, - from_val, - is_val]; - runtime.caml_register_global(2, Stdlib_Lazy, "Stdlib__Lazy"); - return; - } - (globalThis)); - -//# 1446 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Assert_failure = global_data.Assert_failure, - CamlinternalAtomic = global_data.CamlinternalAtomic, - CamlinternalLazy = global_data.CamlinternalLazy, - Stdlib = global_data.Stdlib, - Stdlib_Lazy = global_data.Stdlib__Lazy, - _a_ = [0, "seq.ml", 596, 4], - cst_Seq_drop = "Seq.drop", - cst_Seq_take = "Seq.take", - cst_Seq_init = "Seq.init", - cst_Stdlib_Seq_Forced_twice = "Stdlib.Seq.Forced_twice"; - function empty(param){return 0;} - function return$0(x, param){return [0, x, empty];} - function cons(x, next, param){return [0, x, next];} - function append(seq1, seq2, param){ - var match = caml_call1(seq1, 0); - if(! match) return caml_call1(seq2, 0); - var next = match[2], x = match[1]; - return [0, x, function(_aM_){return append(next, seq2, _aM_);}]; - } - function map(f, seq, param){ - var match = caml_call1(seq, 0); - if(! match) return 0; - var next = match[2], x = match[1]; - function _aK_(_aL_){return map(f, next, _aL_);} - return [0, caml_call1(f, x), _aK_]; - } - function filter_map(f, seq, param){ - var seq$0 = seq; - for(;;){ - var match = caml_call1(seq$0, 0); - if(! match) return 0; - var next = match[2], x = match[1], match$0 = caml_call1(f, x); - if(match$0){ - var y = match$0[1]; - return [0, y, function(_aJ_){return filter_map(f, next, _aJ_);}]; - } - var seq$0 = next; - } - } - function filter(f, seq, param){ - var seq$0 = seq; - for(;;){ - var match = caml_call1(seq$0, 0); - if(! match) return 0; - var next = match[2], x = match[1]; - if(caml_call1(f, x)) - return [0, x, function(_aI_){return filter(f, next, _aI_);}]; - var seq$0 = next; - } - } - function concat(seq, param){ - var match = caml_call1(seq, 0); - if(! match) return 0; - var next = match[2], x = match[1], _aG_ = 0; - return append(x, function(_aH_){return concat(next, _aH_);}, _aG_); - } - function flat_map(f, seq, param){ - var match = caml_call1(seq, 0); - if(! match) return 0; - var next = match[2], x = match[1], _aD_ = 0; - function _aE_(_aF_){return flat_map(f, next, _aF_);} - return append(caml_call1(f, x), _aE_, _aD_); - } - function fold_left(f, acc, seq){ - var acc$0 = acc, seq$0 = seq; - for(;;){ - var match = caml_call1(seq$0, 0); - if(! match) return acc$0; - var - next = match[2], - x = match[1], - acc$1 = caml_call2(f, acc$0, x), - acc$0 = acc$1, - seq$0 = next; - } - } - function iter(f, seq){ - var seq$0 = seq; - for(;;){ - var match = caml_call1(seq$0, 0); - if(! match) return 0; - var next = match[2], x = match[1]; - caml_call1(f, x); - var seq$0 = next; - } - } - function unfold(f, u, param){ - var match = caml_call1(f, u); - if(! match) return 0; - var match$0 = match[1], u$0 = match$0[2], x = match$0[1]; - return [0, x, function(_aC_){return unfold(f, u$0, _aC_);}]; - } - function is_empty(xs){return caml_call1(xs, 0) ? 0 : 1;} - function uncons(xs){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - return [0, [0, x, xs$0]]; - } - function length(xs$1){ - var accu = 0, xs = xs$1; - for(;;){ - var match = caml_call1(xs, 0); - if(! match) return accu; - var xs$0 = match[2], accu$0 = accu + 1 | 0, accu = accu$0, xs = xs$0; - } - } - function iteri(f, xs$1){ - var i = 0, xs = xs$1; - for(;;){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - caml_call2(f, i, x); - var i$0 = i + 1 | 0, i = i$0, xs = xs$0; - } - } - function fold_lefti(f, accu$1, xs$1){ - var accu = accu$1, i = 0, xs = xs$1; - for(;;){ - var match = caml_call1(xs, 0); - if(! match) return accu; - var - xs$0 = match[2], - x = match[1], - accu$0 = caml_call3(f, accu, i, x), - i$0 = i + 1 | 0, - accu = accu$0, - i = i$0, - xs = xs$0; - } - } - function for_all(p, xs){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 1; - var xs$1 = match[2], x = match[1], _aB_ = caml_call1(p, x); - if(! _aB_) return _aB_; - var xs$0 = xs$1; - } - } - function exists(p, xs){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], _aA_ = caml_call1(p, x); - if(_aA_) return _aA_; - var xs$0 = xs$1; - } - } - function find(p, xs){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1]; - if(caml_call1(p, x)) return [0, x]; - var xs$0 = xs$1; - } - } - function find_map(f, xs){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], result = caml_call1(f, x); - if(result) return result; - var xs$0 = xs$1; - } - } - function iter2(f, xs, ys){ - var xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); - if(! match$0) return 0; - var ys$1 = match$0[2], y = match$0[1]; - caml_call2(f, x, y); - var xs$0 = xs$1, ys$0 = ys$1; - } - } - function fold_left2(f, accu, xs, ys){ - var accu$0 = accu, xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return accu$0; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); - if(! match$0) return accu$0; - var - ys$1 = match$0[2], - y = match$0[1], - accu$1 = caml_call3(f, accu$0, x, y), - accu$0 = accu$1, - xs$0 = xs$1, - ys$0 = ys$1; - } - } - function for_all2(f, xs, ys){ - var xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 1; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); - if(! match$0) return 1; - var ys$1 = match$0[2], y = match$0[1], _az_ = caml_call2(f, x, y); - if(! _az_) return _az_; - var xs$0 = xs$1, ys$0 = ys$1; - } - } - function exists2(f, xs, ys){ - var xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); - if(! match$0) return 0; - var ys$1 = match$0[2], y = match$0[1], _ay_ = caml_call2(f, x, y); - if(_ay_) return _ay_; - var xs$0 = xs$1, ys$0 = ys$1; - } - } - function equal(eq, xs, ys){ - var xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0), match$0 = caml_call1(ys$0, 0); - if(match){ - if(match$0){ - var - ys$1 = match$0[2], - y = match$0[1], - xs$1 = match[2], - x = match[1], - _ax_ = caml_call2(eq, x, y); - if(! _ax_) return _ax_; - var xs$0 = xs$1, ys$0 = ys$1; - continue; - } - } - else if(! match$0) return 1; - return 0; - } - } - function compare(cmp, xs, ys){ - var xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0), match$0 = caml_call1(ys$0, 0); - if(! match) return match$0 ? -1 : 0; - var xs$1 = match[2], x = match[1]; - if(! match$0) return 1; - var ys$1 = match$0[2], y = match$0[1], c = caml_call2(cmp, x, y); - if(0 !== c) return c; - var xs$0 = xs$1, ys$0 = ys$1; - } - } - function init_aux(f, i, j, param){ - if(i >= j) return 0; - var _au_ = i + 1 | 0; - function _av_(_aw_){return init_aux(f, _au_, j, _aw_);} - return [0, caml_call1(f, i), _av_]; - } - function init(n, f){ - if(0 > n) return caml_call1(Stdlib[1], cst_Seq_init); - var _as_ = 0; - return function(_at_){return init_aux(f, _as_, n, _at_);}; - } - function repeat(x, param){ - return [0, x, function(_ar_){return repeat(x, _ar_);}]; - } - function forever(f, param){ - function _ap_(_aq_){return forever(f, _aq_);} - return [0, caml_call1(f, 0), _ap_]; - } - function cycle_nonempty(xs, param){ - var _an_ = 0; - return append(xs, function(_ao_){return cycle_nonempty(xs, _ao_);}, _an_); - } - function cycle(xs, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - function _ak_(_am_){return cycle_nonempty(xs, _am_);} - return [0, x, function(_al_){return append(xs$0, _ak_, _al_);}]; - } - function iterate1(f, x, param){ - var y = caml_call1(f, x); - return [0, y, function(_aj_){return iterate1(f, y, _aj_);}]; - } - function iterate(f, x){ - function _ag_(_ai_){return iterate1(f, x, _ai_);} - return function(_ah_){return [0, x, _ag_];}; - } - function mapi_aux(f, i, xs, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1], _ad_ = i + 1 | 0; - function _ae_(_af_){return mapi_aux(f, _ad_, xs$0, _af_);} - return [0, caml_call2(f, i, x), _ae_]; - } - function mapi(f, xs){ - var _ab_ = 0; - return function(_ac_){return mapi_aux(f, _ab_, xs, _ac_);}; - } - function tail_scan(f, s, xs, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1], s$0 = caml_call2(f, s, x); - return [0, s$0, function(_aa_){return tail_scan(f, s$0, xs$0, _aa_);}]; - } - function scan(f, s, xs){ - function _Z_(_$_){return tail_scan(f, s, xs, _$_);} - return function(___){return [0, s, _Z_];}; - } - function take_aux(n, xs){ - return 0 === n - ? empty - : function - (param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - return [0, x, take_aux(n - 1 | 0, xs$0)]; - }; - } - function take(n, xs){ - if(n < 0) caml_call1(Stdlib[1], cst_Seq_take); - return take_aux(n, xs); - } - function drop(n, xs){ - return 0 <= n - ? 0 - === n - ? xs - : function - (param){ - var n$0 = n, xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], n$1 = n$0 - 1 | 0; - if(0 === n$1) return caml_call1(xs$1, 0); - var n$0 = n$1, xs$0 = xs$1; - } - } - : caml_call1(Stdlib[1], cst_Seq_drop); - } - function take_while(p, xs, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - return caml_call1(p, x) - ? [0, x, function(_Y_){return take_while(p, xs$0, _Y_);}] - : 0; - } - function drop_while(p, xs, param){ - var xs$0 = xs; - for(;;){ - var node = caml_call1(xs$0, 0); - if(! node) return 0; - var xs$1 = node[2], x = node[1]; - if(! caml_call1(p, x)) return node; - var xs$0 = xs$1; - } - } - function group(eq, xs, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1], _P_ = caml_call1(eq, x); - function _Q_(_X_){return drop_while(_P_, xs$0, _X_);} - function _R_(_W_){return group(eq, _Q_, _W_);} - var _S_ = caml_call1(eq, x); - function _T_(_V_){return take_while(_S_, xs$0, _V_);} - return [0, function(_U_){return [0, x, _T_];}, _R_]; - } - var - Forced_twice = - [248, cst_Stdlib_Seq_Forced_twice, runtime.caml_fresh_oo_id(0)], - to_lazy = Stdlib_Lazy[6]; - function failure(param){ - throw caml_maybe_attach_backtrace(Forced_twice, 1); - } - function memoize(xs){ - function s$0(param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - return [0, x, memoize(xs$0)]; - } - var s = caml_call1(to_lazy, s$0); - return function(_O_){ - var _N_ = runtime.caml_obj_tag(s); - return 250 === _N_ - ? s[1] - : 246 === _N_ ? caml_call1(CamlinternalLazy[2], s) : s;}; - } - function once(xs){ - function f(param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - return [0, x, once(xs$0)]; - } - var action = caml_call1(CamlinternalAtomic[1], f); - return function(param){ - var f = caml_call2(CamlinternalAtomic[4], action, failure); - return caml_call1(f, 0);}; - } - function zip(xs, ys, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1], match$0 = caml_call1(ys, 0); - if(! match$0) return 0; - var ys$0 = match$0[2], y = match$0[1]; - return [0, [0, x, y], function(_M_){return zip(xs$0, ys$0, _M_);}]; - } - function map2(f, xs, ys, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1], match$0 = caml_call1(ys, 0); - if(! match$0) return 0; - var ys$0 = match$0[2], y = match$0[1]; - function _K_(_L_){return map2(f, xs$0, ys$0, _L_);} - return [0, caml_call2(f, x, y), _K_]; - } - function interleave(xs, ys, param){ - var match = caml_call1(xs, 0); - if(! match) return caml_call1(ys, 0); - var xs$0 = match[2], x = match[1]; - return [0, x, function(_J_){return interleave(ys, xs$0, _J_);}]; - } - function sorted_merge1(cmp, x, xs, y, ys){ - return 0 < caml_call2(cmp, x, y) - ? [0, - y, - function(_H_){ - var match = caml_call1(ys, 0); - if(! match) return [0, x, xs]; - var ys$0 = match[2], y = match[1]; - return sorted_merge1(cmp, x, xs, y, ys$0); - }] - : [0, - x, - function(_I_){ - var match = caml_call1(xs, 0); - if(! match) return [0, y, ys]; - var xs$0 = match[2], x = match[1]; - return sorted_merge1(cmp, x, xs$0, y, ys); - }]; - } - function sorted_merge(cmp, xs, ys, param){ - var match = caml_call1(xs, 0), match$0 = caml_call1(ys, 0); - if(match){ - if(match$0){ - var ys$0 = match$0[2], y = match$0[1], xs$0 = match[2], x = match[1]; - return sorted_merge1(cmp, x, xs$0, y, ys$0); - } - var c = match; - } - else{if(! match$0) return 0; var c = match$0;} - return c; - } - function map_fst(xys, param){ - var match = caml_call1(xys, 0); - if(! match) return 0; - var xys$0 = match[2], x = match[1][1]; - return [0, x, function(_G_){return map_fst(xys$0, _G_);}]; - } - function map_snd(xys, param){ - var match = caml_call1(xys, 0); - if(! match) return 0; - var xys$0 = match[2], y = match[1][2]; - return [0, y, function(_F_){return map_snd(xys$0, _F_);}]; - } - function unzip(xys){ - function _C_(_E_){return map_snd(xys, _E_);} - return [0, function(_D_){return map_fst(xys, _D_);}, _C_]; - } - function filter_map_find_left_map(f, xs, param){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(f, x); - if(0 === match$0[0]){ - var y = match$0[1]; + b4=0xFF & i32 >> 24, + b3=0xFF & i32 >> 16, + b2=0xFF & i32 >> 8, + b1=0xFF & i32; + caml_bytes_unsafe_set(s,i + 0,b1); + caml_bytes_unsafe_set(s,i + 1,b2); + caml_bytes_unsafe_set(s,i + 2,b3); + caml_bytes_unsafe_set(s,i + 3,b4); + return 0} + function caml_gr_sigio_signal(){return 0} + function caml_ba_uint8_set32(ba,i0,v) + {var ofs=ba.offset(i0); + if(ofs + 3 >= ba.data.length)caml_array_bound_error(); + ba.set(ofs + 0,v & 0xff); + ba.set(ofs + 1,v >>> 8 & 0xff); + ba.set(ofs + 2,v >>> 16 & 0xff); + ba.set(ofs + 3,v >>> 24 & 0xff); + return 0} + function ml_z_div_rem(z1,z2){return [0,ml_z_div(z1,z2),ml_z_rem(z1,z2)]} + function caml_sys_const_ostype_unix(){return os_type == "Unix"?1:0} + function caml_unix_gmtime(t) + {var + d=new Date(t * 1000), + d_num=d.getTime(), + januaryfirst=new Date(Date.UTC(d.getUTCFullYear(),0,1)).getTime(), + doy=Math.floor((d_num - januaryfirst) / 86400000); return [0, - y, - function(_B_){return filter_map_find_left_map(f, xs$1, _B_);}]; - } - var xs$0 = xs$1; - } - } - function filter_map_find_right_map(f, xs, param){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(f, x); - if(0 === match$0[0]){var xs$0 = xs$1; continue;} - var z = match$0[1]; - return [0, - z, - function(_A_){return filter_map_find_right_map(f, xs$1, _A_);}]; - } - } - function partition_map(f, xs){ - function _x_(_z_){return filter_map_find_right_map(f, xs, _z_);} - return [0, - function(_y_){return filter_map_find_left_map(f, xs, _y_);}, - _x_]; - } - function partition(p, xs){ - function _t_(x){return 1 - caml_call1(p, x);} - function _u_(_w_){return filter(_t_, xs, _w_);} - return [0, function(_v_){return filter(p, xs, _v_);}, _u_]; - } - function peel(xss){ - return unzip(function(_s_){return filter_map(uncons, xss, _s_);}); - } - function transpose(xss, param){ - var match = peel(xss), tails = match[2], heads = match[1]; - if(! is_empty(heads)) - return [0, heads, function(_r_){return transpose(tails, _r_);}]; - if(is_empty(tails)) return 0; - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - } - function _b_(remainders, xss, param){ - var match = caml_call1(xss, 0); - if(! match) return transpose(remainders, 0); - var xss$0 = match[2], xs = match[1], match$0 = caml_call1(xs, 0); - if(match$0){ - var - xs$0 = match$0[2], - x = match$0[1], - match$1 = peel(remainders), - tails = match$1[2], - heads = match$1[1], - _l_ = function(_q_){return [0, xs$0, tails];}, - _m_ = function(_p_){return _b_(_l_, xss$0, _p_);}; - return [0, function(_o_){return [0, x, heads];}, _m_]; - } - var - match$2 = peel(remainders), - tails$0 = match$2[2], - heads$0 = match$2[1]; - return [0, heads$0, function(_n_){return _b_(tails$0, xss$0, _n_);}]; - } - function map_product(f, xs, ys){ - function _f_(x){ - function _j_(y){return caml_call2(f, x, y);} - return function(_k_){return map(_j_, ys, _k_);}; - } - function xss(_i_){return map(_f_, xs, _i_);} - function _e_(_h_){return _b_(empty, xss, _h_);} - return function(_g_){return concat(_e_, _g_);}; - } - function product(xs, ys){ - return map_product(function(x, y){return [0, x, y];}, xs, ys); - } - function of_dispenser(it){ - function c(param){ - var match = caml_call1(it, 0); - if(! match) return 0; - var x = match[1]; - return [0, x, c]; - } - return c; - } - function to_dispenser(xs){ - var s = [0, xs]; - return function(param){ - var match = caml_call1(s[1], 0); - if(! match) return 0; - var xs = match[2], x = match[1]; - s[1] = xs; - return [0, x];}; - } - function ints(i, param){ - var _c_ = i + 1 | 0; - return [0, i, function(_d_){return ints(_c_, _d_);}]; - } - var - Stdlib_Seq = - [0, - is_empty, - uncons, - length, - iter, - fold_left, - iteri, - fold_lefti, - for_all, - exists, - find, - find_map, - iter2, - fold_left2, - for_all2, - exists2, - equal, - compare, - empty, - return$0, - cons, - init, - unfold, - repeat, - forever, - cycle, - iterate, - map, - mapi, - filter, - filter_map, - scan, - take, - drop, - take_while, - drop_while, - group, - memoize, - Forced_twice, - once, - transpose, - append, - concat, - flat_map, - flat_map, - zip, - map2, - interleave, - sorted_merge, - product, - map_product, - unzip, - unzip, - partition_map, - partition, - of_dispenser, - to_dispenser, - ints]; - runtime.caml_register_global(10, Stdlib_Seq, "Stdlib__Seq"); - return; - } - (globalThis)); - -//# 2119 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib = global_data.Stdlib, - cst_option_is_None = "option is None", - none = 0; - function some(v){return [0, v];} - function value(o, default$0){ - if(! o) return default$0; - var v = o[1]; - return v; - } - function get(param){ - if(! param) return caml_call1(Stdlib[1], cst_option_is_None); - var v = param[1]; - return v; - } - function bind(o, f){ - if(! o) return 0; - var v = o[1]; - return caml_call1(f, v); - } - function join(param){if(! param) return 0; var o = param[1]; return o;} - function map(f, o){ - if(! o) return 0; - var v = o[1]; - return [0, caml_call1(f, v)]; - } - function fold(none, some, param){ - if(! param) return none; - var v = param[1]; - return caml_call1(some, v); - } - function iter(f, param){ - if(! param) return 0; - var v = param[1]; - return caml_call1(f, v); - } - function is_none(param){return param ? 0 : 1;} - function is_some(param){return param ? 1 : 0;} - function equal(eq, o0, o1){ - if(o0){ - if(o1){var v1 = o1[1], v0 = o0[1]; return caml_call2(eq, v0, v1);} - } - else if(! o1) return 1; - return 0; - } - function compare(cmp, o0, o1){ - if(! o0) return o1 ? -1 : 0; - var v0 = o0[1]; - if(! o1) return 1; - var v1 = o1[1]; - return caml_call2(cmp, v0, v1); - } - function to_result(none, param){ - if(! param) return [1, none]; - var v = param[1]; - return [0, v]; - } - function to_list(param){ - if(! param) return 0; - var v = param[1]; - return [0, v, 0]; - } - function to_seq(param){ - if(! param) return Stdlib_Seq[18]; - var v = param[1]; - return caml_call1(Stdlib_Seq[19], v); - } - var - Stdlib_Option = - [0, - none, - some, - value, - get, - bind, - join, - map, - fold, - iter, - is_none, - is_some, - equal, - compare, - to_result, - to_list, - to_seq]; - runtime.caml_register_global(3, Stdlib_Option, "Stdlib__Option"); - return; - } - (globalThis)); - -//# 2391 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, - caml_create_bytes = runtime.caml_create_bytes, - caml_string_of_bytes = runtime.caml_string_of_bytes; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - cst = "\\\\", - cst$0 = "\\'", - Stdlib = global_data.Stdlib, - cst_b = "\\b", - cst_t = "\\t", - cst_n = "\\n", - cst_r = "\\r", - cst_Char_chr = "Char.chr"; - function chr(n){ - if(0 <= n && 255 >= n) return n; - return caml_call1(Stdlib[1], cst_Char_chr); - } - function escaped(c){ - var switch$0 = 0; - if(40 <= c){ - if(92 === c) return cst; - if(127 > c) switch$0 = 1; - } - else if(32 <= c){ - if(39 <= c) return cst$0; - switch$0 = 1; - } - else if(14 > c) - switch(c){ - case 8: - return cst_b; - case 9: - return cst_t; - case 10: - return cst_n; - case 13: - return cst_r; - } - if(switch$0){ - var s$0 = caml_create_bytes(1); - caml_bytes_unsafe_set(s$0, 0, c); - return caml_string_of_bytes(s$0); - } - var s = caml_create_bytes(4); - caml_bytes_unsafe_set(s, 0, 92); - caml_bytes_unsafe_set(s, 1, 48 + (c / 100 | 0) | 0); - caml_bytes_unsafe_set(s, 2, 48 + ((c / 10 | 0) % 10 | 0) | 0); - caml_bytes_unsafe_set(s, 3, 48 + (c % 10 | 0) | 0); - return caml_string_of_bytes(s); - } - function lowercase(c){ - var _b_ = c - 192 | 0, switch$0 = 0; - if(30 < _b_ >>> 0){ - if(25 >= _b_ + 127 >>> 0) switch$0 = 1; - } - else if(23 !== _b_) switch$0 = 1; - return switch$0 ? c + 32 | 0 : c; - } - function uppercase(c){ - var _a_ = c - 224 | 0, switch$0 = 0; - if(30 < _a_ >>> 0){ - if(25 >= _a_ + 127 >>> 0) switch$0 = 1; - } - else if(23 !== _a_) switch$0 = 1; - return switch$0 ? c - 32 | 0 : c; - } - function lowercase_ascii(c){return 25 < c - 65 >>> 0 ? c : c + 32 | 0;} - function uppercase_ascii(c){return 25 < c - 97 >>> 0 ? c : c - 32 | 0;} - function compare(c1, c2){return c1 - c2 | 0;} - function equal(c1, c2){return 0 === (c1 - c2 | 0) ? 1 : 0;} - var - Stdlib_Char = - [0, - chr, - escaped, - lowercase, - uppercase, - lowercase_ascii, - uppercase_ascii, - compare, - equal]; - runtime.caml_register_global(8, Stdlib_Char, "Stdlib__Char"); - return; - } - (globalThis)); - -//# 2489 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_uchar_ml = "uchar.ml", - caml_format_int = runtime.caml_format_int, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - err_no_pred = "U+0000 has no predecessor", - err_no_succ = "U+10FFFF has no successor", - Assert_failure = global_data.Assert_failure, - Stdlib = global_data.Stdlib, - _d_ = [0, cst_uchar_ml, 88, 18], - _c_ = [0, cst_uchar_ml, 91, 7], - _b_ = [0, cst_uchar_ml, 80, 18], - _a_ = [0, cst_uchar_ml, 85, 7], - cst_is_not_a_latin1_character = " is not a latin1 character", - cst_U = "U+", - cst_is_not_an_Unicode_scalar_v = " is not an Unicode scalar value", - min = 0, - max = 1114111, - lo_bound = 55295, - hi_bound = 57344, - bom = 65279, - rep = 65533; - function succ(u){ - return u === 55295 - ? hi_bound - : u === 1114111 ? caml_call1(Stdlib[1], err_no_succ) : u + 1 | 0; - } - function pred(u){ - return u === 57344 - ? lo_bound - : u === 0 ? caml_call1(Stdlib[1], err_no_pred) : u - 1 | 0; - } - function is_valid(i){ - var _o_ = 0 <= i ? 1 : 0, _p_ = _o_ ? i <= 55295 ? 1 : 0 : _o_; - if(_p_) - var _q_ = _p_; - else - var _r_ = 57344 <= i ? 1 : 0, _q_ = _r_ ? i <= 1114111 ? 1 : 0 : _r_; - return _q_; - } - function of_int(i){ - if(is_valid(i)) return i; - var - _n_ = - caml_call2 - (Stdlib[28], caml_format_int("%X", i), cst_is_not_an_Unicode_scalar_v); - return caml_call1(Stdlib[1], _n_); - } - function is_char(u){return u < 256 ? 1 : 0;} - function of_char(c){return c;} - function to_char(u){ - if(255 >= u) return u; - var - _l_ = - caml_call2 - (Stdlib[28], - caml_format_int("%04X", u), - cst_is_not_a_latin1_character), - _m_ = caml_call2(Stdlib[28], cst_U, _l_); - return caml_call1(Stdlib[1], _m_); - } - function unsafe_to_char(_k_){return _k_;} - function equal(_j_, _i_){return _j_ === _i_ ? 1 : 0;} - var compare = runtime.caml_int_compare; - function hash(_h_){return _h_;} - function utf_decode_is_valid(d){return 1 === (d >>> 27 | 0) ? 1 : 0;} - function utf_decode_length(d){return (d >>> 24 | 0) & 7;} - function utf_decode_uchar(d){return d & 16777215;} - function utf_decode(n, u){return (8 | n) << 24 | u;} - function utf_decode_invalid(n){return n << 24 | 65533;} - function utf_8_byte_length(u){ - if(0 > u) throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - if(127 >= u) return 1; - if(2047 >= u) return 2; - if(65535 >= u) return 3; - if(1114111 < u) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - return 4; - } - function utf_16_byte_length(u){ - if(0 > u) throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - if(65535 >= u) return 2; - if(1114111 < u) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - return 4; - } - function _e_(_g_){return _g_;} - var - Stdlib_Uchar = - [0, - min, - max, - bom, - rep, - succ, - pred, - is_valid, - of_int, - function(_f_){return _f_;}, - _e_, - is_char, - of_char, - to_char, - unsafe_to_char, - equal, - compare, - hash, - utf_decode_is_valid, - utf_decode_uchar, - utf_decode_length, - utf_decode, - utf_decode_invalid, - utf_8_byte_length, - utf_16_byte_length]; - runtime.caml_register_global(13, Stdlib_Uchar, "Stdlib__Uchar"); - return; - } - (globalThis)); - -//# 2625 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_List_nth$1 = "List.nth", - caml_compare = runtime.caml_compare, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib_Sys = global_data.Stdlib__Sys, - cst_List_map2 = "List.map2", - cst_List_iter2 = "List.iter2", - cst_List_fold_left2 = "List.fold_left2", - cst_List_fold_right2 = "List.fold_right2", - cst_List_for_all2 = "List.for_all2", - cst_List_exists2 = "List.exists2", - _b_ = [0, 0, 0], - cst_List_combine = "List.combine", - cst_List_rev_map2 = "List.rev_map2", - cst_List_init = "List.init", - cst_List_nth$0 = cst_List_nth$1, - cst_nth = "nth", - cst_List_nth = cst_List_nth$1, - cst_tl = "tl", - cst_hd = "hd"; - function length(l$0){ - var len = 0, param = l$0; - for(;;){ - if(! param) return len; - var l = param[2], len$0 = len + 1 | 0, len = len$0, param = l; - } - } - function cons(a, l){return [0, a, l];} - function hd(param){ - if(! param) return caml_call1(Stdlib[2], cst_hd); - var a = param[1]; - return a; - } - function tl(param){ - if(! param) return caml_call1(Stdlib[2], cst_tl); - var l = param[2]; - return l; - } - function nth(l, n){ - if(0 > n) return caml_call1(Stdlib[1], cst_List_nth); - var l$0 = l, n$0 = n; - for(;;){ - if(! l$0) return caml_call1(Stdlib[2], cst_nth); - var l$1 = l$0[2], a = l$0[1]; - if(0 === n$0) return a; - var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; - } - } - function nth_opt(l, n){ - if(0 > n) return caml_call1(Stdlib[1], cst_List_nth$0); - var l$0 = l, n$0 = n; - for(;;){ - if(! l$0) return 0; - var l$1 = l$0[2], a = l$0[1]; - if(0 === n$0) return [0, a]; - var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; - } - } - var append = Stdlib[37]; - function rev_append(l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(! l1$0) return l2$0; - var - l1$1 = l1$0[2], - a = l1$0[1], - l2$1 = [0, a, l2$0], - l1$0 = l1$1, - l2$0 = l2$1; - } - } - function rev(l){return rev_append(l, 0);} - function init_aux(i, n, f){ - if(n <= i) return 0; - var r = caml_call1(f, i); - return [0, r, init_aux(i + 1 | 0, n, f)]; - } - var rev_init_threshold = typeof Stdlib_Sys[5] === "number" ? 10000 : 50; - function init(len, f){ - if(0 > len) return caml_call1(Stdlib[1], cst_List_init); - if(rev_init_threshold >= len) return init_aux(0, len, f); - var acc = 0, i = 0; - for(;;){ - if(len <= i) return rev(acc); - var - i$0 = i + 1 | 0, - acc$0 = [0, caml_call1(f, i), acc], - acc = acc$0, - i = i$0; - } - } - function flatten(param){ - if(! param) return 0; - var r = param[2], l = param[1], _J_ = flatten(r); - return caml_call2(Stdlib[37], l, _J_); - } - function map(f, param){ - if(! param) return 0; - var l = param[2], a = param[1], r = caml_call1(f, a); - return [0, r, map(f, l)]; - } - function _a_(i, f, param){ - if(! param) return 0; - var l = param[2], a = param[1], r = caml_call2(f, i, a); - return [0, r, _a_(i + 1 | 0, f, l)]; - } - function mapi(f, l){return _a_(0, f, l);} - function rev_map(f, l){ - var accu = 0, param = l; - for(;;){ - if(! param) return accu; - var - l$0 = param[2], - a = param[1], - accu$0 = [0, caml_call1(f, a), accu], - accu = accu$0, - param = l$0; - } - } - function iter(f, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], a = param$0[1]; - caml_call1(f, a); - var param$0 = l; - } - } - function iteri(f, l$0){ - var i = 0, param = l$0; - for(;;){ - if(! param) return 0; - var l = param[2], a = param[1]; - caml_call2(f, i, a); - var i$0 = i + 1 | 0, i = i$0, param = l; - } - } - function fold_left(f, accu, l){ - var accu$0 = accu, l$0 = l; - for(;;){ - if(! l$0) return accu$0; - var - l$1 = l$0[2], - a = l$0[1], - accu$1 = caml_call2(f, accu$0, a), - accu$0 = accu$1, - l$0 = l$1; - } - } - function fold_right(f, l, accu){ - if(! l) return accu; - var l$0 = l[2], a = l[1]; - return caml_call2(f, a, fold_right(f, l$0, accu)); - } - function map2(f, l1, l2){ - if(l1){ - if(l2){ - var - l2$0 = l2[2], - a2 = l2[1], - l1$0 = l1[2], - a1 = l1[1], - r = caml_call2(f, a1, a2); - return [0, r, map2(f, l1$0, l2$0)]; - } - } - else if(! l2) return 0; - return caml_call1(Stdlib[1], cst_List_map2); - } - function rev_map2(f, l1, l2){ - var accu = 0, l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var - l2$1 = l2$0[2], - a2 = l2$0[1], - l1$1 = l1$0[2], - a1 = l1$0[1], - accu$0 = [0, caml_call2(f, a1, a2), accu], - accu = accu$0, - l1$0 = l1$1, - l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return accu; - return caml_call1(Stdlib[1], cst_List_rev_map2); - } - } - function iter2(f, l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var l2$1 = l2$0[2], a2 = l2$0[1], l1$1 = l1$0[2], a1 = l1$0[1]; - caml_call2(f, a1, a2); - var l1$0 = l1$1, l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return 0; - return caml_call1(Stdlib[1], cst_List_iter2); - } - } - function fold_left2(f, accu, l1, l2){ - var accu$0 = accu, l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var - l2$1 = l2$0[2], - a2 = l2$0[1], - l1$1 = l1$0[2], - a1 = l1$0[1], - accu$1 = caml_call3(f, accu$0, a1, a2), - accu$0 = accu$1, - l1$0 = l1$1, - l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return accu$0; - return caml_call1(Stdlib[1], cst_List_fold_left2); - } - } - function fold_right2(f, l1, l2, accu){ - if(l1){ - if(l2){ - var l2$0 = l2[2], a2 = l2[1], l1$0 = l1[2], a1 = l1[1]; - return caml_call3(f, a1, a2, fold_right2(f, l1$0, l2$0, accu)); - } - } - else if(! l2) return accu; - return caml_call1(Stdlib[1], cst_List_fold_right2); - } - function for_all(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 1; - var l = param$0[2], a = param$0[1], _I_ = caml_call1(p, a); - if(! _I_) return _I_; - var param$0 = l; - } - } - function exists(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], a = param$0[1], _H_ = caml_call1(p, a); - if(_H_) return _H_; - var param$0 = l; - } - } - function for_all2(p, l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var - l2$1 = l2$0[2], - a2 = l2$0[1], - l1$1 = l1$0[2], - a1 = l1$0[1], - _G_ = caml_call2(p, a1, a2); - if(! _G_) return _G_; - var l1$0 = l1$1, l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return 1; - return caml_call1(Stdlib[1], cst_List_for_all2); - } - } - function exists2(p, l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var - l2$1 = l2$0[2], - a2 = l2$0[1], - l1$1 = l1$0[2], - a1 = l1$0[1], - _F_ = caml_call2(p, a1, a2); - if(_F_) return _F_; - var l1$0 = l1$1, l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return 0; - return caml_call1(Stdlib[1], cst_List_exists2); - } - } - function mem(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - l = param$0[2], - a = param$0[1], - _E_ = 0 === caml_compare(a, x) ? 1 : 0; - if(_E_) return _E_; - var param$0 = l; - } - } - function memq(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], a = param$0[1], _D_ = a === x ? 1 : 0; - if(_D_) return _D_; - var param$0 = l; - } - } - function assoc(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - if(0 === caml_compare(a, x)) return b; - var param$0 = l; - } - } - function assoc_opt(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - if(0 === caml_compare(a, x)) return [0, b]; - var param$0 = l; - } - } - function assq(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - if(a === x) return b; - var param$0 = l; - } - } - function assq_opt(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - if(a === x) return [0, b]; - var param$0 = l; - } - } - function mem_assoc(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - l = param$0[2], - a = param$0[1][1], - _C_ = 0 === caml_compare(a, x) ? 1 : 0; - if(_C_) return _C_; - var param$0 = l; - } - } - function mem_assq(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], a = param$0[1][1], _B_ = a === x ? 1 : 0; - if(_B_) return _B_; - var param$0 = l; - } - } - function remove_assoc(x, param){ - if(! param) return 0; - var l = param[2], pair = param[1], a = pair[1]; - return 0 === caml_compare(a, x) ? l : [0, pair, remove_assoc(x, l)]; - } - function remove_assq(x, param){ - if(! param) return 0; - var l = param[2], pair = param[1], a = pair[1]; - return a === x ? l : [0, pair, remove_assq(x, l)]; - } - function find(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var l = param$0[2], x = param$0[1]; - if(caml_call1(p, x)) return x; - var param$0 = l; - } - } - function find_opt(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], x = param$0[1]; - if(caml_call1(p, x)) return [0, x]; - var param$0 = l; - } - } - function find_map(f, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], x = param$0[1], result = caml_call1(f, x); - if(result) return result; - var param$0 = l; - } - } - function find_all(p){ - var accu = 0; - return function(param$0){ - var accu$0 = accu, param = param$0; - for(;;){ - if(! param) return rev(accu$0); - var l = param[2], x = param[1]; - if(caml_call1(p, x)){ - var accu$1 = [0, x, accu$0], accu$0 = accu$1, param = l; - continue; - } - var param = l; - }}; - } - function filteri(p, l){ - var i = 0, acc = 0, param = l; - for(;;){ - if(! param) return rev(acc); - var - l$0 = param[2], - x = param[1], - acc$0 = caml_call2(p, i, x) ? [0, x, acc] : acc, - i$0 = i + 1 | 0, - i = i$0, - acc = acc$0, - param = l$0; - } - } - function filter_map(f){ - var accu = 0; - return function(param$0){ - var accu$0 = accu, param = param$0; - for(;;){ - if(! param) return rev(accu$0); - var l = param[2], x = param[1], match = caml_call1(f, x); - if(match){ - var v = match[1], accu$1 = [0, v, accu$0], accu$0 = accu$1, param = l; - continue; - } - var param = l; - }}; - } - function concat_map(f, l){ - var acc = 0, param = l; - for(;;){ - if(! param) return rev(acc); - var - l$0 = param[2], - x = param[1], - xs = caml_call1(f, x), - acc$0 = rev_append(xs, acc), - acc = acc$0, - param = l$0; - } - } - function fold_left_map(f, accu, l){ - var accu$0 = accu, l_accu = 0, param = l; - for(;;){ - if(! param) return [0, accu$0, rev(l_accu)]; - var - l$0 = param[2], - x = param[1], - match = caml_call2(f, accu$0, x), - x$0 = match[2], - accu$1 = match[1], - l_accu$0 = [0, x$0, l_accu], - accu$0 = accu$1, - l_accu = l_accu$0, - param = l$0; - } - } - function partition(p, l){ - var yes = 0, no = 0, param = l; - for(;;){ - if(! param){var _A_ = rev(no); return [0, rev(yes), _A_];} - var l$0 = param[2], x = param[1]; - if(caml_call1(p, x)){ - var yes$0 = [0, x, yes], yes = yes$0, param = l$0; - continue; - } - var no$0 = [0, x, no], no = no$0, param = l$0; - } - } - function partition_map(p, l){ - var left = 0, right = 0, param = l; - for(;;){ - if(! param){var _z_ = rev(right); return [0, rev(left), _z_];} - var l$0 = param[2], x = param[1], match = caml_call1(p, x); - if(0 === match[0]){ - var v = match[1], left$0 = [0, v, left], left = left$0, param = l$0; - continue; - } - var - v$0 = match[1], - right$0 = [0, v$0, right], - right = right$0, - param = l$0; - } - } - function split(param){ - if(! param) return _b_; - var - l = param[2], - match = param[1], - y = match[2], - x = match[1], - match$0 = split(l), - ry = match$0[2], - rx = match$0[1]; - return [0, [0, x, rx], [0, y, ry]]; - } - function combine(l1, l2){ - if(l1){ - if(l2){ - var l2$0 = l2[2], a2 = l2[1], l1$0 = l1[2], a1 = l1[1]; - return [0, [0, a1, a2], combine(l1$0, l2$0)]; - } - } - else if(! l2) return 0; - return caml_call1(Stdlib[1], cst_List_combine); - } - function merge(cmp, l1, l2){ - if(! l1) return l2; - if(! l2) return l1; - var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; - return 0 < caml_call2(cmp, h1, h2) - ? [0, h2, merge(cmp, l1, t2)] - : [0, h1, merge(cmp, t1, l2)]; - } - function stable_sort(cmp, l){ - function sort(n, l){ - if(2 === n){ - if(l){ - var match = l[2]; - if(match){ - var - tl = match[2], - x2 = match[1], - x1 = l[1], - s = - 0 < caml_call2(cmp, x1, x2) - ? [0, x2, [0, x1, 0]] - : [0, x1, [0, x2, 0]]; - return [0, s, tl]; - } - } - } - else if(3 === n && l){ - var _y_ = l[2]; - if(_y_){ - var match$2 = _y_[2]; - if(match$2){ - var - tl$1 = match$2[2], - x3 = match$2[1], - x2$0 = _y_[1], - x1$0 = l[1], - s$0 = - 0 < caml_call2(cmp, x1$0, x2$0) - ? 0 - < caml_call2(cmp, x1$0, x3) - ? 0 - < caml_call2(cmp, x2$0, x3) - ? [0, x3, [0, x2$0, [0, x1$0, 0]]] - : [0, x2$0, [0, x3, [0, x1$0, 0]]] - : [0, x2$0, [0, x1$0, [0, x3, 0]]] - : 0 - < caml_call2(cmp, x2$0, x3) - ? 0 - < caml_call2(cmp, x1$0, x3) - ? [0, x3, [0, x1$0, [0, x2$0, 0]]] - : [0, x1$0, [0, x3, [0, x2$0, 0]]] - : [0, x1$0, [0, x2$0, [0, x3, 0]]]; - return [0, s$0, tl$1]; - } - } - } - var - n1 = n >> 1, - n2 = n - n1 | 0, - match$0 = rev_sort(n1, l), - l2$0 = match$0[2], - s1 = match$0[1], - match$1 = rev_sort(n2, l2$0), - tl$0 = match$1[2], - s2 = match$1[1], - l1 = s1, - l2 = s2, - accu = 0; - for(;;){ - if(l1){ - if(l2){ - var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; - if(0 < caml_call2(cmp, h1, h2)){ - var accu$0 = [0, h1, accu], l1 = t1, accu = accu$0; - continue; - } - var accu$1 = [0, h2, accu], l2 = t2, accu = accu$1; - continue; - } - var _x_ = rev_append(l1, accu); - } + d.getUTCSeconds(), + d.getUTCMinutes(), + d.getUTCHours(), + d.getUTCDate(), + d.getUTCMonth(), + d.getUTCFullYear() - 1900, + d.getUTCDay(), + doy, + false | 0]} + function caml_signbit_float(x){if(x == 0)x = 1 / x;return x < 0?1:0} + function caml_gr_set_line_width(w) + {var s=caml_gr_state_get(); + s.line_width = w; + s.context.lineWidth = w; + return 0} + function caml_gr_set_font(f) + {var s=caml_gr_state_get(); + s.font = f; + s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); + return 0} + function caml_gr_set_color(color) + {var s=caml_gr_state_get(); + function convert(number) + {var str="" + number.toString(16); + while(str.length < 2)str = "0" + str; + return str} + var r=color >> 16 & 0xff,g=color >> 8 & 0xff,b=color >> 0 & 0xff; + s.color = color; + var c_str="#" + convert(r) + convert(g) + convert(b); + s.context.fillStyle = c_str; + s.context.strokeStyle = c_str; + return 0} + function caml_gr_moveto(x,y) + {var s=caml_gr_state_get();s.x = x;s.y = y;return 0} + function caml_gr_resize_window(w,h) + {var s=caml_gr_state_get(); + s.width = w; + s.height = h; + s.canvas.width = w; + s.canvas.height = h; + return 0} + function caml_gr_state_init() + {caml_gr_moveto(caml_gr_state.x,caml_gr_state.y); + caml_gr_resize_window(caml_gr_state.width,caml_gr_state.height); + caml_gr_set_line_width(caml_gr_state.line_width); + caml_gr_set_text_size(caml_gr_state.text_size); + caml_gr_set_font(caml_gr_state.font); + caml_gr_set_color(caml_gr_state.color); + caml_gr_set_window_title(caml_gr_state.title); + caml_gr_state.context.textBaseline = "bottom"} + function caml_gr_current_x(){var s=caml_gr_state_get();return s.x} + function caml_ba_kind_of_typed_array(ta) + {var kind; + if(ta instanceof Float32Array) + kind = 0; else - var _x_ = rev_append(l2, accu); - return [0, _x_, tl$0]; - } - } - function rev_sort(n, l){ - if(2 === n){ - if(l){ - var match = l[2]; - if(match){ - var - tl = match[2], - x2 = match[1], - x1 = l[1], - s = - 0 < caml_call2(cmp, x1, x2) - ? [0, x1, [0, x2, 0]] - : [0, x2, [0, x1, 0]]; - return [0, s, tl]; - } - } - } - else if(3 === n && l){ - var _w_ = l[2]; - if(_w_){ - var match$2 = _w_[2]; - if(match$2){ - var - tl$1 = match$2[2], - x3 = match$2[1], - x2$0 = _w_[1], - x1$0 = l[1], - s$0 = - 0 < caml_call2(cmp, x1$0, x2$0) - ? 0 - < caml_call2(cmp, x2$0, x3) - ? [0, x1$0, [0, x2$0, [0, x3, 0]]] - : 0 - < caml_call2(cmp, x1$0, x3) - ? [0, x1$0, [0, x3, [0, x2$0, 0]]] - : [0, x3, [0, x1$0, [0, x2$0, 0]]] - : 0 - < caml_call2(cmp, x1$0, x3) - ? [0, x2$0, [0, x1$0, [0, x3, 0]]] - : 0 - < caml_call2(cmp, x2$0, x3) - ? [0, x2$0, [0, x3, [0, x1$0, 0]]] - : [0, x3, [0, x2$0, [0, x1$0, 0]]]; - return [0, s$0, tl$1]; - } - } - } - var - n1 = n >> 1, - n2 = n - n1 | 0, - match$0 = sort(n1, l), - l2$0 = match$0[2], - s1 = match$0[1], - match$1 = sort(n2, l2$0), - tl$0 = match$1[2], - s2 = match$1[1], - l1 = s1, - l2 = s2, - accu = 0; - for(;;){ - if(l1){ - if(l2){ - var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; - if(0 < caml_call2(cmp, h1, h2)){ - var accu$0 = [0, h2, accu], l2 = t2, accu = accu$0; - continue; - } - var accu$1 = [0, h1, accu], l1 = t1, accu = accu$1; - continue; - } - var _v_ = rev_append(l1, accu); - } - else - var _v_ = rev_append(l2, accu); - return [0, _v_, tl$0]; - } - } - var len = length(l); - return 2 <= len ? sort(len, l)[1] : l; - } - function sort_uniq(cmp, l){ - function sort(n, l){ - if(2 === n){ - if(l){ - var match = l[2]; - if(match){ - var - tl = match[2], - x2 = match[1], - x1 = l[1], - c$0 = caml_call2(cmp, x1, x2), - s = - 0 === c$0 - ? [0, x1, 0] - : 0 <= c$0 ? [0, x2, [0, x1, 0]] : [0, x1, [0, x2, 0]]; - return [0, s, tl]; - } - } - } - else if(3 === n && l){ - var _p_ = l[2]; - if(_p_){ - var match$2 = _p_[2]; - if(match$2){ - var - tl$1 = match$2[2], - x3 = match$2[1], - x2$0 = _p_[1], - x1$0 = l[1], - c$1 = caml_call2(cmp, x1$0, x2$0); - if(0 === c$1) - var - c$2 = caml_call2(cmp, x2$0, x3), - _q_ = - 0 === c$2 - ? [0, x2$0, 0] - : 0 <= c$2 ? [0, x3, [0, x2$0, 0]] : [0, x2$0, [0, x3, 0]], - s$0 = _q_; - else if(0 <= c$1){ - var c$3 = caml_call2(cmp, x1$0, x3); - if(0 === c$3) - var _r_ = [0, x2$0, [0, x1$0, 0]]; - else if(0 <= c$3) - var - c$4 = caml_call2(cmp, x2$0, x3), - _s_ = - 0 === c$4 - ? [0, x2$0, [0, x1$0, 0]] - : 0 - <= c$4 - ? [0, x3, [0, x2$0, [0, x1$0, 0]]] - : [0, x2$0, [0, x3, [0, x1$0, 0]]], - _r_ = _s_; + if(ta instanceof Float64Array) + kind = 1; + else + if(ta instanceof Int8Array) + kind = 2; + else + if(ta instanceof Uint8Array) + kind = 3; else - var _r_ = [0, x2$0, [0, x1$0, [0, x3, 0]]]; - var s$0 = _r_; - } - else{ - var c$5 = caml_call2(cmp, x2$0, x3); - if(0 === c$5) - var _t_ = [0, x1$0, [0, x2$0, 0]]; - else if(0 <= c$5) - var - c$6 = caml_call2(cmp, x1$0, x3), - _u_ = - 0 === c$6 - ? [0, x1$0, [0, x2$0, 0]] - : 0 - <= c$6 - ? [0, x3, [0, x1$0, [0, x2$0, 0]]] - : [0, x1$0, [0, x3, [0, x2$0, 0]]], - _t_ = _u_; - else - var _t_ = [0, x1$0, [0, x2$0, [0, x3, 0]]]; - var s$0 = _t_; - } - return [0, s$0, tl$1]; - } - } - } - var - n1 = n >> 1, - n2 = n - n1 | 0, - match$0 = rev_sort(n1, l), - l2$0 = match$0[2], - s1 = match$0[1], - match$1 = rev_sort(n2, l2$0), - tl$0 = match$1[2], - s2 = match$1[1], - l1 = s1, - l2 = s2, - accu = 0; - for(;;){ - if(l1){ - if(l2){ - var - t2 = l2[2], - h2 = l2[1], - t1 = l1[2], - h1 = l1[1], - c = caml_call2(cmp, h1, h2); - if(0 === c){ - var accu$0 = [0, h1, accu], l1 = t1, l2 = t2, accu = accu$0; - continue; - } - if(0 < c){ - var accu$1 = [0, h1, accu], l1 = t1, accu = accu$1; - continue; - } - var accu$2 = [0, h2, accu], l2 = t2, accu = accu$2; - continue; - } - var _o_ = rev_append(l1, accu); - } + if(ta instanceof Int16Array) + kind = 4; + else + if(ta instanceof Uint16Array) + kind = 5; + else + if(ta instanceof Int32Array) + kind = 6; + else + if(ta instanceof Uint32Array) + kind = 6; + else + caml_invalid_argument + ("caml_ba_kind_of_typed_array: unsupported kind"); + return kind} + function caml_ba_from_typed_array(ta) + {var kind=caml_ba_kind_of_typed_array(ta); + return caml_ba_create_unsafe(kind,0,[ta.length],ta)} + function caml_ml_seek_out(chanid,pos){return caml_seek_out(chanid,pos)} + function caml_js_typeof(o){return typeof o} + function caml_hash_mix_string(h,v) + {return caml_hash_mix_jsbytes(h,caml_jsbytes_of_string(v))} + function caml_string_hash(h,v) + {var h=caml_hash_mix_string(h,v),h=caml_hash_mix_final(h); + return h & 0x3FFFFFFF} + function caml_restore_raw_backtrace(exn,bt){return 0} + function caml_gr_lineto(x,y) + {var s=caml_gr_state_get(); + s.context.beginPath(); + s.context.moveTo(s.x,s.height - s.y); + s.context.lineTo(x,s.height - y); + s.context.stroke(); + s.x = x; + s.y = y; + return 0} + function caml_js_function_arity(f){return f.length} + function caml_js_wrap_meth_callback_unsafe(f) + {return function() + {var len=caml_js_function_arity(f) - 1,args=new Array(len + 1); + args[0] = this; + for(var i=0;i < len;i++)args[i + 1] = arguments[i]; + return caml_callback(f,args)}} + function caml_ba_dim_3(ba){return caml_ba_dim(ba,2)} + function caml_is_special_exception(exn) + {switch(exn[2]){case - 8:case - 11:case - 12:return 1;default:return 0}} + function caml_format_exception(exn) + {var r=""; + if(exn[0] == 0) + {r += exn[1][1]; + if + (exn.length + == + 3 + && + exn[2][0] + == + 0 + && + caml_is_special_exception(exn[1])) + var bucket=exn[2],start=1; + else + var start=2,bucket=exn; + r += "("; + for(var i=start;i < bucket.length;i++) + {if(i > start)r += ", "; + var v=bucket[i]; + if(typeof v == "number") + r += v.toString(); + else + if(v instanceof MlBytes) + r += '"' + v.toString() + '"'; + else + if(typeof v == "string") + r += '"' + v.toString() + '"'; + else + r += "_"} + r += ")"} else - var _o_ = rev_append(l2, accu); - return [0, _o_, tl$0]; - } - } - function rev_sort(n, l){ - if(2 === n){ - if(l){ - var match = l[2]; - if(match){ - var - tl = match[2], - x2 = match[1], - x1 = l[1], - c$0 = caml_call2(cmp, x1, x2), - s = - 0 === c$0 - ? [0, x1, 0] - : 0 < c$0 ? [0, x1, [0, x2, 0]] : [0, x2, [0, x1, 0]]; - return [0, s, tl]; - } - } - } - else if(3 === n && l){ - var _i_ = l[2]; - if(_i_){ - var match$2 = _i_[2]; - if(match$2){ - var - tl$1 = match$2[2], - x3 = match$2[1], - x2$0 = _i_[1], - x1$0 = l[1], - c$1 = caml_call2(cmp, x1$0, x2$0); - if(0 === c$1) - var - c$2 = caml_call2(cmp, x2$0, x3), - _j_ = - 0 === c$2 - ? [0, x2$0, 0] - : 0 < c$2 ? [0, x2$0, [0, x3, 0]] : [0, x3, [0, x2$0, 0]], - s$0 = _j_; - else if(0 < c$1){ - var c$3 = caml_call2(cmp, x2$0, x3); - if(0 === c$3) - var _k_ = [0, x1$0, [0, x2$0, 0]]; - else if(0 < c$3) - var _k_ = [0, x1$0, [0, x2$0, [0, x3, 0]]]; - else - var - c$4 = caml_call2(cmp, x1$0, x3), - _l_ = - 0 === c$4 - ? [0, x1$0, [0, x2$0, 0]] - : 0 - < c$4 - ? [0, x1$0, [0, x3, [0, x2$0, 0]]] - : [0, x3, [0, x1$0, [0, x2$0, 0]]], - _k_ = _l_; - var s$0 = _k_; - } - else{ - var c$5 = caml_call2(cmp, x1$0, x3); - if(0 === c$5) - var _m_ = [0, x2$0, [0, x1$0, 0]]; - else if(0 < c$5) - var _m_ = [0, x2$0, [0, x1$0, [0, x3, 0]]]; - else - var - c$6 = caml_call2(cmp, x2$0, x3), - _n_ = - 0 === c$6 - ? [0, x2$0, [0, x1$0, 0]] - : 0 - < c$6 - ? [0, x2$0, [0, x3, [0, x1$0, 0]]] - : [0, x3, [0, x2$0, [0, x1$0, 0]]], - _m_ = _n_; - var s$0 = _m_; - } - return [0, s$0, tl$1]; - } - } - } - var - n1 = n >> 1, - n2 = n - n1 | 0, - match$0 = sort(n1, l), - l2$0 = match$0[2], - s1 = match$0[1], - match$1 = sort(n2, l2$0), - tl$0 = match$1[2], - s2 = match$1[1], - l1 = s1, - l2 = s2, - accu = 0; - for(;;){ - if(l1){ - if(l2){ - var - t2 = l2[2], - h2 = l2[1], - t1 = l1[2], - h1 = l1[1], - c = caml_call2(cmp, h1, h2); - if(0 === c){ - var accu$0 = [0, h1, accu], l1 = t1, l2 = t2, accu = accu$0; - continue; - } - if(0 <= c){ - var accu$1 = [0, h2, accu], l2 = t2, accu = accu$1; - continue; - } - var accu$2 = [0, h1, accu], l1 = t1, accu = accu$2; - continue; - } - var _h_ = rev_append(l1, accu); - } + if(exn[0] == 248)r += exn[1]; + return r} + function caml_fatal_uncaught_exception(err) + {if(err instanceof Array && (err[0] == 0 || err[0] == 248)) + {var handler=caml_named_value("Printexc.handle_uncaught_exception"); + if(handler) + caml_callback(handler,[err,false]); + else + {var + msg=caml_format_exception(err), + at_exit=caml_named_value("Pervasives.do_at_exit"); + if(at_exit)caml_callback(at_exit,[0]); + console.error("Fatal error: exception " + msg + "\n")}} else - var _h_ = rev_append(l2, accu); - return [0, _h_, tl$0]; - } - } - var len = length(l); - return 2 <= len ? sort(len, l)[1] : l; - } - function compare_lengths(l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(! l1$0) return l2$0 ? -1 : 0; - if(! l2$0) return 1; - var l2$1 = l2$0[2], l1$1 = l1$0[2], l1$0 = l1$1, l2$0 = l2$1; - } - } - function compare_length_with(l, n){ - var l$0 = l, n$0 = n; - for(;;){ - if(! l$0) return 0 === n$0 ? 0 : 0 < n$0 ? -1 : 1; - var l$1 = l$0[2]; - if(0 >= n$0) return 1; - var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; - } - } - function equal(eq, l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var - l2$1 = l2$0[2], - a2 = l2$0[1], - l1$1 = l1$0[2], - a1 = l1$0[1], - _g_ = caml_call2(eq, a1, a2); - if(! _g_) return _g_; - var l1$0 = l1$1, l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return 1; - return 0; - } - } - function compare(cmp, l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(! l1$0) return l2$0 ? -1 : 0; - var l1$1 = l1$0[2], a1 = l1$0[1]; - if(! l2$0) return 1; - var l2$1 = l2$0[2], a2 = l2$0[1], c = caml_call2(cmp, a1, a2); - if(0 !== c) return c; - var l1$0 = l1$1, l2$0 = l2$1; - } - } - function to_seq(l){ - function aux(l, param){ - if(! l) return 0; - var tail = l[2], x = l[1]; - return [0, x, function(_f_){return aux(tail, _f_);}]; - } - return function(_e_){return aux(l, _e_);}; - } - function of_seq(seq){ - function direct(depth, seq){ - if(0 === depth){ - var _c_ = 0, _d_ = function(acc, x){return [0, x, acc];}; - return rev(caml_call3(Stdlib_Seq[5], _d_, _c_, seq)); - } - var match = caml_call1(seq, 0); - if(! match) return 0; - var next = match[2], x = match[1]; - return [0, x, direct(depth - 1 | 0, next)]; - } - return direct(500, seq); - } - var - Stdlib_List = - [0, - length, - compare_lengths, - compare_length_with, - cons, - hd, - tl, - nth, - nth_opt, - rev, - init, - append, - rev_append, - flatten, - flatten, - equal, - compare, - iter, - iteri, - map, - mapi, - rev_map, - filter_map, - concat_map, - fold_left_map, - fold_left, - fold_right, - iter2, - map2, - rev_map2, - fold_left2, - fold_right2, - for_all, - exists, - for_all2, - exists2, - mem, - memq, - find, - find_opt, - find_map, - find_all, - find_all, - filteri, - partition, - partition_map, - assoc, - assoc_opt, - assq, - assq_opt, - mem_assoc, - mem_assq, - remove_assoc, - remove_assq, - split, - combine, - stable_sort, - stable_sort, - stable_sort, - sort_uniq, - merge, - to_seq, - of_seq]; - runtime.caml_register_global(18, Stdlib_List, "Stdlib__List"); - return; - } - (globalThis)); - -//# 3724 "../../.js/default/stdlib/stdlib.cma.js" -(function(globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime, zero = 0, one = 1, minus_one = -1; - function abs(x){return 0 <= x ? x : - x | 0;} - var max_int = 2147483647, min_int = -2147483648; - function lognot(x){return x ^ -1;} - function equal(_b_, _a_){return _b_ === _a_ ? 1 : 0;} - var compare = runtime.caml_int_compare; - function min(x, y){return x <= y ? x : y;} - function max(x, y){return y <= x ? x : y;} - function to_string(x){return "" + x;} - var - Stdlib_Int = - [0, - zero, - one, - minus_one, - abs, - max_int, - min_int, - lognot, - equal, - compare, - min, - max, - to_string]; - runtime.caml_register_global(1, Stdlib_Int, "Stdlib__Int"); - return; - } - (globalThis)); - -//# 3757 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_bytes_ml = "bytes.ml", - cst_index_out_of_bounds$3 = "index out of bounds", - caml_blit_bytes = runtime.caml_blit_bytes, - caml_bswap16 = runtime.caml_bswap16, - caml_bytes_get = runtime.caml_bytes_get, - caml_bytes_get16 = runtime.caml_bytes_get16, - caml_bytes_get32 = runtime.caml_bytes_get32, - caml_bytes_get64 = runtime.caml_bytes_get64, - caml_bytes_of_string = runtime.caml_bytes_of_string, - caml_bytes_set = runtime.caml_bytes_set, - caml_bytes_set16 = runtime.caml_bytes_set16, - caml_bytes_set32 = runtime.caml_bytes_set32, - caml_bytes_set64 = runtime.caml_bytes_set64, - caml_bytes_unsafe_get = runtime.caml_bytes_unsafe_get, - caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, - caml_create_bytes = runtime.caml_create_bytes, - caml_fill_bytes = runtime.caml_fill_bytes, - caml_int32_bswap = runtime.caml_int32_bswap, - caml_int64_bswap = runtime.caml_int64_bswap, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_bytes_length = runtime.caml_ml_bytes_length, - caml_string_of_bytes = runtime.caml_string_of_bytes, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Uchar = global_data.Stdlib__Uchar, - Assert_failure = global_data.Assert_failure, - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib_Int = global_data.Stdlib__Int, - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib_Char = global_data.Stdlib__Char, - cst_index_out_of_bounds$2 = cst_index_out_of_bounds$3, - _f_ = [0, cst_bytes_ml, 808, 20], - _e_ = [0, cst_bytes_ml, 819, 9], - cst_index_out_of_bounds$1 = cst_index_out_of_bounds$3, - cst_index_out_of_bounds$0 = cst_index_out_of_bounds$3, - _d_ = [0, cst_bytes_ml, 754, 20], - _c_ = [0, cst_bytes_ml, 765, 9], - cst_index_out_of_bounds = cst_index_out_of_bounds$3, - _b_ = [0, cst_bytes_ml, 642, 20], - _a_ = [0, cst_bytes_ml, 667, 9], - cst_Bytes_of_seq_cannot_grow_b = "Bytes.of_seq: cannot grow bytes", - cst_String_rcontains_from_Byte = - "String.rcontains_from / Bytes.rcontains_from", - cst_String_contains_from_Bytes = - "String.contains_from / Bytes.contains_from", - cst_String_rindex_from_opt_Byt = - "String.rindex_from_opt / Bytes.rindex_from_opt", - cst_String_rindex_from_Bytes_r = "String.rindex_from / Bytes.rindex_from", - cst_String_index_from_opt_Byte = - "String.index_from_opt / Bytes.index_from_opt", - cst_String_index_from_Bytes_in = "String.index_from / Bytes.index_from", - cst_Bytes_concat = "Bytes.concat", - cst_String_blit_Bytes_blit_str = "String.blit / Bytes.blit_string", - cst_Bytes_blit = "Bytes.blit", - cst_String_fill_Bytes_fill = "String.fill / Bytes.fill", - cst_Bytes_extend = "Bytes.extend", - cst_String_sub_Bytes_sub = "String.sub / Bytes.sub"; - function make(n, c){ - var s = caml_create_bytes(n); - caml_fill_bytes(s, 0, n, c); - return s; - } - function init(n, f){ - var s = caml_create_bytes(n), _aq_ = n - 1 | 0, _ap_ = 0; - if(_aq_ >= 0){ - var i = _ap_; - for(;;){ - caml_bytes_unsafe_set(s, i, caml_call1(f, i)); - var _ar_ = i + 1 | 0; - if(_aq_ !== i){var i = _ar_; continue;} - break; - } - } - return s; - } - var empty = caml_create_bytes(0); - function copy(s){ - var len = caml_ml_bytes_length(s), r = caml_create_bytes(len); - caml_blit_bytes(s, 0, r, 0, len); - return r; - } - function to_string(b){return caml_string_of_bytes(copy(b));} - function of_string(s){return copy(caml_bytes_of_string(s));} - function sub(s, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs){ - var r = caml_create_bytes(len); - caml_blit_bytes(s, ofs, r, 0, len); - return r; - } - return caml_call1(Stdlib[1], cst_String_sub_Bytes_sub); - } - function sub_string(b, ofs, len){ - return caml_string_of_bytes(sub(b, ofs, len)); - } - function symbol(a, b){ - var - c = a + b | 0, - _ao_ = b < 0 ? 1 : 0, - match = c < 0 ? 1 : 0, - switch$0 = 0; - if(a < 0){ - if(_ao_ && ! match) switch$0 = 1; - } - else if(! _ao_ && match) switch$0 = 1; - return switch$0 ? caml_call1(Stdlib[1], cst_Bytes_extend) : c; - } - function extend(s, left, right){ - var - len = symbol(symbol(caml_ml_bytes_length(s), left), right), - r = caml_create_bytes(len); - if(0 <= left) - var dstoff = left, srcoff = 0; - else - var dstoff = 0, srcoff = - left | 0; - var - cpylen = - caml_call2 - (Stdlib_Int[10], - caml_ml_bytes_length(s) - srcoff | 0, - len - dstoff | 0); - if(0 < cpylen) caml_blit_bytes(s, srcoff, r, dstoff, cpylen); - return r; - } - function fill(s, ofs, len, c){ - if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return caml_fill_bytes(s, ofs, len, c); - return caml_call1(Stdlib[1], cst_String_fill_Bytes_fill); - } - function blit(s1, ofs1, s2, ofs2, len){ - if - (0 <= len - && - 0 <= ofs1 - && - (caml_ml_bytes_length(s1) - len | 0) >= ofs1 - && 0 <= ofs2 && (caml_ml_bytes_length(s2) - len | 0) >= ofs2) - return caml_blit_bytes(s1, ofs1, s2, ofs2, len); - return caml_call1(Stdlib[1], cst_Bytes_blit); - } - function blit_string(s1, ofs1, s2, ofs2, len){ - if - (0 <= len - && - 0 <= ofs1 - && - (runtime.caml_ml_string_length(s1) - len | 0) >= ofs1 - && 0 <= ofs2 && (caml_ml_bytes_length(s2) - len | 0) >= ofs2) - return runtime.caml_blit_string(s1, ofs1, s2, ofs2, len); - return caml_call1(Stdlib[1], cst_String_blit_Bytes_blit_str); - } - function iter(f, a){ - var _am_ = caml_ml_bytes_length(a) - 1 | 0, _al_ = 0; - if(_am_ >= 0){ - var i = _al_; - for(;;){ - caml_call1(f, caml_bytes_unsafe_get(a, i)); - var _an_ = i + 1 | 0; - if(_am_ !== i){var i = _an_; continue;} - break; - } - } - return 0; - } - function iteri(f, a){ - var _aj_ = caml_ml_bytes_length(a) - 1 | 0, _ai_ = 0; - if(_aj_ >= 0){ - var i = _ai_; - for(;;){ - caml_call2(f, i, caml_bytes_unsafe_get(a, i)); - var _ak_ = i + 1 | 0; - if(_aj_ !== i){var i = _ak_; continue;} - break; - } - } - return 0; - } - function concat(sep, l){ - if(! l) return empty; - var seplen = caml_ml_bytes_length(sep), acc = 0, param = l, pos$1 = 0; - for(;;){ - if(param){ - var hd = param[1]; - if(param[2]){ - var - tl = param[2], - x = (caml_ml_bytes_length(hd) + seplen | 0) + acc | 0, - acc$0 = acc <= x ? x : caml_call1(Stdlib[1], cst_Bytes_concat), - acc = acc$0, - param = tl; - continue; - } - var _ah_ = caml_ml_bytes_length(hd) + acc | 0; - } - else - var _ah_ = acc; - var dst = caml_create_bytes(_ah_), pos = pos$1, param$0 = l; - for(;;){ - if(! param$0) return dst; - var hd$0 = param$0[1]; - if(param$0[2]){ - var tl$0 = param$0[2]; - caml_blit_bytes(hd$0, 0, dst, pos, caml_ml_bytes_length(hd$0)); - caml_blit_bytes - (sep, 0, dst, pos + caml_ml_bytes_length(hd$0) | 0, seplen); - var - pos$0 = (pos + caml_ml_bytes_length(hd$0) | 0) + seplen | 0, - pos = pos$0, - param$0 = tl$0; - continue; - } - caml_blit_bytes(hd$0, 0, dst, pos, caml_ml_bytes_length(hd$0)); - return dst; - } - } - } - function cat(s1, s2){ - var - l1 = caml_ml_bytes_length(s1), - l2 = caml_ml_bytes_length(s2), - r = caml_create_bytes(l1 + l2 | 0); - caml_blit_bytes(s1, 0, r, 0, l1); - caml_blit_bytes(s2, 0, r, l1, l2); - return r; - } - function is_space(param){ - var _ag_ = param - 9 | 0, switch$0 = 0; - if(4 < _ag_ >>> 0){ - if(23 === _ag_) switch$0 = 1; - } - else if(2 !== _ag_) switch$0 = 1; - return switch$0 ? 1 : 0; - } - function trim(s){ - var len = caml_ml_bytes_length(s), i = [0, 0]; - for(;;){ - if(i[1] < len && is_space(caml_bytes_unsafe_get(s, i[1]))){i[1]++; continue;} - var j = [0, len - 1 | 0]; - for(;;){ - if(i[1] <= j[1] && is_space(caml_bytes_unsafe_get(s, j[1]))){j[1] += -1; continue;} - return i[1] <= j[1] ? sub(s, i[1], (j[1] - i[1] | 0) + 1 | 0) : empty; - } - } - } - function escaped(s){ - var n = [0, 0], _$_ = caml_ml_bytes_length(s) - 1 | 0, ___ = 0; - if(_$_ >= 0){ - var i$0 = ___; - for(;;){ - var match = caml_bytes_unsafe_get(s, i$0), switch$0 = 0; - if(32 <= match){ - var _ad_ = match - 34 | 0, switch$1 = 0; - if(58 < _ad_ >>> 0){ - if(93 > _ad_) switch$1 = 1; - } - else if(56 < _ad_ - 1 >>> 0) switch$0 = 1; else switch$1 = 1; - if(switch$1){var _ae_ = 1; switch$0 = 2;} - } + throw err} + function caml_ephe_check_data(x) + {return x[caml_ephe_data_offset] === undefined?0:1} + function caml_bytes_get16(s,i) + {if(i >>> 0 >= s.l - 1)caml_bytes_bound_error(); + var b1=caml_bytes_unsafe_get(s,i),b2=caml_bytes_unsafe_get(s,i + 1); + return b2 << 8 | b1} + function caml_obj_make_forward(b,v){b[0] = 250;b[1] = v;return 0} + function caml_js_from_bool(x){return ! ! x} + function caml_ml_set_channel_name(chanid,name) + {var chan=caml_ml_channels[chanid];chan.name = name;return 0} + function caml_exp2_float(x){return Math.pow(2,x)} + function caml_gr_close_graph() + {var s=caml_gr_state_get(); + s.canvas.width = 0; + s.canvas.height = 0; + return 0} + function caml_ml_domain_cpu_relax(unit){return 0} + function caml_create_string(len) + {if(len < 0)caml_invalid_argument("String.create"); + return new MlBytes(len?2:9,"",len)} + function caml_ml_input_block(chanid,ba,i,l) + {var + chan=caml_ml_channels[chanid], + n=l, + avail=chan.buffer_max - chan.buffer_curr; + if(l <= avail) + {ba.set(chan.buffer.subarray(chan.buffer_curr,chan.buffer_curr + l),i); + chan.buffer_curr += l} else - if(11 <= match){ - if(13 === match) switch$0 = 1; - } - else if(8 <= match) switch$0 = 1; - switch(switch$0){ - case 0: - var _ae_ = 4; break; + if(avail > 0) + {ba.set + (chan.buffer.subarray(chan.buffer_curr,chan.buffer_curr + avail),i); + chan.buffer_curr += avail; + n = avail} + else + {chan.buffer_curr = 0; + chan.buffer_max = 0; + caml_refill(chan); + var avail=chan.buffer_max - chan.buffer_curr; + if(n > avail)n = avail; + ba.set(chan.buffer.subarray(chan.buffer_curr,chan.buffer_curr + n),i); + chan.buffer_curr += n} + return n} + function caml_md5_chan(chanid,toread) + {var ctx=caml_MD5Init(),buffer=new Uint8Array(4096); + if(toread < 0) + while(true) + {var read=caml_ml_input_block(chanid,buffer,0,buffer.length); + if(read == 0)break; + caml_MD5Update(ctx,buffer.subarray(0,read),read)} + else + while(toread > 0) + {var + read= + caml_ml_input_block + (chanid,buffer,0,toread > buffer.length?buffer.length:toread); + if(read == 0)caml_raise_end_of_file(); + caml_MD5Update(ctx,buffer.subarray(0,read),read); + toread -= read} + return caml_string_of_array(caml_MD5Final(ctx))} + function caml_atanh_float(x){return Math.atanh(x)} + function caml_ml_condition_signal(t){return 0} + function caml_unix_findnext(dir_handle) + {return caml_unix_readdir(dir_handle)} + function caml_ml_output_bytes(chanid,buffer,offset,len) + {var chan=caml_ml_channels[chanid]; + if(! chan.opened) + caml_raise_sys_error("Cannot output to a closed channel"); + var buffer=caml_uint8_array_of_bytes(buffer); + buffer = buffer.subarray(offset,offset + len); + if(chan.buffer_curr + buffer.length > chan.buffer.length) + {var b=new Uint8Array(chan.buffer_curr + buffer.length); + b.set(chan.buffer); + chan.buffer = b} + switch(chan.buffered) + {case 0: + chan.buffer.set(buffer,chan.buffer_curr); + chan.buffer_curr += buffer.length; + caml_ml_flush(chanid); + break; case 1: - var _ae_ = 2; break; - } - n[1] = n[1] + _ae_ | 0; - var _af_ = i$0 + 1 | 0; - if(_$_ !== i$0){var i$0 = _af_; continue;} - break; - } - } - if(n[1] === caml_ml_bytes_length(s)) return copy(s); - var s$0 = caml_create_bytes(n[1]); - n[1] = 0; - var _ab_ = caml_ml_bytes_length(s) - 1 | 0, _aa_ = 0; - if(_ab_ >= 0){ - var i = _aa_; - for(;;){ - var c = caml_bytes_unsafe_get(s, i), switch$2 = 0; - if(35 <= c) - if(92 === c) - switch$2 = 2; - else if(127 <= c) switch$2 = 1; else switch$2 = 3; - else if(32 <= c) - if(34 <= c) switch$2 = 2; else switch$2 = 3; - else if(14 <= c) - switch$2 = 1; - else - switch(c){ - case 8: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 98); - break; - case 9: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 116); - break; - case 10: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 110); - break; - case 13: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 114); - break; - default: switch$2 = 1; - } - switch(switch$2){ - case 1: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 48 + (c / 100 | 0) | 0); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 48 + ((c / 10 | 0) % 10 | 0) | 0); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 48 + (c % 10 | 0) | 0); + chan.buffer.set(buffer,chan.buffer_curr); + chan.buffer_curr += buffer.length; + if(chan.buffer_curr >= chan.buffer.length)caml_ml_flush(chanid); break; case 2: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], c); - break; - case 3: - caml_bytes_unsafe_set(s$0, n[1], c); break; - } - n[1]++; - var _ac_ = i + 1 | 0; - if(_ab_ !== i){var i = _ac_; continue;} - break; - } - } - return s$0; - } - function map(f, s){ - var l = caml_ml_bytes_length(s); - if(0 === l) return s; - var r = caml_create_bytes(l), _Y_ = l - 1 | 0, _X_ = 0; - if(_Y_ >= 0){ - var i = _X_; - for(;;){ - caml_bytes_unsafe_set(r, i, caml_call1(f, caml_bytes_unsafe_get(s, i))); - var _Z_ = i + 1 | 0; - if(_Y_ !== i){var i = _Z_; continue;} - break; - } - } - return r; - } - function mapi(f, s){ - var l = caml_ml_bytes_length(s); - if(0 === l) return s; - var r = caml_create_bytes(l), _V_ = l - 1 | 0, _U_ = 0; - if(_V_ >= 0){ - var i = _U_; - for(;;){ - caml_bytes_unsafe_set - (r, i, caml_call2(f, i, caml_bytes_unsafe_get(s, i))); - var _W_ = i + 1 | 0; - if(_V_ !== i){var i = _W_; continue;} - break; - } - } - return r; - } - function fold_left(f, x, a){ - var r = [0, x], _S_ = caml_ml_bytes_length(a) - 1 | 0, _R_ = 0; - if(_S_ >= 0){ - var i = _R_; - for(;;){ - r[1] = caml_call2(f, r[1], caml_bytes_unsafe_get(a, i)); - var _T_ = i + 1 | 0; - if(_S_ !== i){var i = _T_; continue;} - break; - } - } - return r[1]; - } - function fold_right(f, a, x){ - var r = [0, x], _P_ = caml_ml_bytes_length(a) - 1 | 0; - if(_P_ >= 0){ - var i = _P_; - for(;;){ - r[1] = caml_call2(f, caml_bytes_unsafe_get(a, i), r[1]); - var _Q_ = i - 1 | 0; - if(0 !== i){var i = _Q_; continue;} - break; - } - } - return r[1]; - } - function exists(p, s){ - var n = caml_ml_bytes_length(s), i = 0; - for(;;){ - if(i === n) return 0; - if(caml_call1(p, caml_bytes_unsafe_get(s, i))) return 1; - var i$0 = i + 1 | 0, i = i$0; - } - } - function for_all(p, s){ - var n = caml_ml_bytes_length(s), i = 0; - for(;;){ - if(i === n) return 1; - if(! caml_call1(p, caml_bytes_unsafe_get(s, i))) return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function uppercase_ascii(s){return map(Stdlib_Char[6], s);} - function lowercase_ascii(s){return map(Stdlib_Char[5], s);} - function apply1(f, s){ - if(0 === caml_ml_bytes_length(s)) return s; - var r = copy(s); - caml_bytes_unsafe_set(r, 0, caml_call1(f, caml_bytes_unsafe_get(s, 0))); - return r; - } - function capitalize_ascii(s){return apply1(Stdlib_Char[6], s);} - function uncapitalize_ascii(s){return apply1(Stdlib_Char[5], s);} - function starts_with(prefix, s){ - var - len_s = caml_ml_bytes_length(s), - len_pre = caml_ml_bytes_length(prefix), - _O_ = len_pre <= len_s ? 1 : 0; - if(! _O_) return _O_; - var i = 0; - for(;;){ - if(i === len_pre) return 1; - if(caml_bytes_unsafe_get(s, i) !== caml_bytes_unsafe_get(prefix, i)) - return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function ends_with(suffix, s){ - var - len_s = caml_ml_bytes_length(s), - len_suf = caml_ml_bytes_length(suffix), - diff = len_s - len_suf | 0, - _N_ = 0 <= diff ? 1 : 0; - if(! _N_) return _N_; - var i = 0; - for(;;){ - if(i === len_suf) return 1; - if - (caml_bytes_unsafe_get(s, diff + i | 0) - !== caml_bytes_unsafe_get(suffix, i)) - return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function index_rec(s, lim, i, c){ - var i$0 = i; - for(;;){ - if(lim <= i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(caml_bytes_unsafe_get(s, i$0) === c) return i$0; - var i$1 = i$0 + 1 | 0, i$0 = i$1; - } - } - function index(s, c){return index_rec(s, caml_ml_bytes_length(s), 0, c);} - function index_rec_opt(s, lim, i, c){ - var i$0 = i; - for(;;){ - if(lim <= i$0) return 0; - if(caml_bytes_unsafe_get(s, i$0) === c) return [0, i$0]; - var i$1 = i$0 + 1 | 0, i$0 = i$1; - } - } - function index_opt(s, c){ - return index_rec_opt(s, caml_ml_bytes_length(s), 0, c); - } - function index_from(s, i, c){ - var l = caml_ml_bytes_length(s); - if(0 <= i && l >= i) return index_rec(s, l, i, c); - return caml_call1(Stdlib[1], cst_String_index_from_Bytes_in); - } - function index_from_opt(s, i, c){ - var l = caml_ml_bytes_length(s); - if(0 <= i && l >= i) return index_rec_opt(s, l, i, c); - return caml_call1(Stdlib[1], cst_String_index_from_opt_Byte); - } - function rindex_rec(s, i, c){ - var i$0 = i; - for(;;){ - if(0 > i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(caml_bytes_unsafe_get(s, i$0) === c) return i$0; - var i$1 = i$0 - 1 | 0, i$0 = i$1; - } - } - function rindex(s, c){ - return rindex_rec(s, caml_ml_bytes_length(s) - 1 | 0, c); - } - function rindex_from(s, i, c){ - if(-1 <= i && caml_ml_bytes_length(s) > i) return rindex_rec(s, i, c); - return caml_call1(Stdlib[1], cst_String_rindex_from_Bytes_r); - } - function rindex_rec_opt(s, i, c){ - var i$0 = i; - for(;;){ - if(0 > i$0) return 0; - if(caml_bytes_unsafe_get(s, i$0) === c) return [0, i$0]; - var i$1 = i$0 - 1 | 0, i$0 = i$1; - } - } - function rindex_opt(s, c){ - return rindex_rec_opt(s, caml_ml_bytes_length(s) - 1 | 0, c); - } - function rindex_from_opt(s, i, c){ - if(-1 <= i && caml_ml_bytes_length(s) > i) return rindex_rec_opt(s, i, c); - return caml_call1(Stdlib[1], cst_String_rindex_from_opt_Byt); - } - function contains_from(s, i, c){ - var l = caml_ml_bytes_length(s); - if(0 <= i && l >= i) - try{index_rec(s, l, i, c); var _L_ = 1; return _L_;} - catch(_M_){ - var _K_ = caml_wrap_exception(_M_); - if(_K_ === Stdlib[8]) return 0; - throw caml_maybe_attach_backtrace(_K_, 0); - } - return caml_call1(Stdlib[1], cst_String_contains_from_Bytes); - } - function contains(s, c){return contains_from(s, 0, c);} - function rcontains_from(s, i, c){ - if(0 <= i && caml_ml_bytes_length(s) > i) - try{rindex_rec(s, i, c); var _I_ = 1; return _I_;} - catch(_J_){ - var _H_ = caml_wrap_exception(_J_); - if(_H_ === Stdlib[8]) return 0; - throw caml_maybe_attach_backtrace(_H_, 0); - } - return caml_call1(Stdlib[1], cst_String_rcontains_from_Byte); - } - var compare = runtime.caml_bytes_compare; - function split_on_char(sep, s){ - var - r = [0, 0], - j = [0, caml_ml_bytes_length(s)], - _D_ = caml_ml_bytes_length(s) - 1 | 0; - if(_D_ >= 0){ - var i = _D_; - for(;;){ - if(caml_bytes_unsafe_get(s, i) === sep){ - var _F_ = r[1]; - r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _F_]; - j[1] = i; - } - var _G_ = i - 1 | 0; - if(0 !== i){var i = _G_; continue;} - break; - } - } - var _E_ = r[1]; - return [0, sub(s, 0, j[1]), _E_]; - } - function uppercase(s){return map(Stdlib_Char[4], s);} - function lowercase(s){return map(Stdlib_Char[3], s);} - function capitalize(s){return apply1(Stdlib_Char[4], s);} - function uncapitalize(s){return apply1(Stdlib_Char[3], s);} - function to_seq(s){ - function aux(i, param){ - if(i === caml_ml_bytes_length(s)) return 0; - var x = caml_bytes_get(s, i), _B_ = i + 1 | 0; - return [0, x, function(_C_){return aux(_B_, _C_);}]; - } - var _z_ = 0; - return function(_A_){return aux(_z_, _A_);}; - } - function to_seqi(s){ - function aux(i, param){ - if(i === caml_ml_bytes_length(s)) return 0; - var x = caml_bytes_get(s, i), _x_ = i + 1 | 0; - return [0, [0, i, x], function(_y_){return aux(_x_, _y_);}]; - } - var _v_ = 0; - return function(_w_){return aux(_v_, _w_);}; - } - function of_seq(i){ - var n = [0, 0], buf = [0, make(256, 0)]; - function _u_(c){ - if(n[1] === caml_ml_bytes_length(buf[1])){ - var - new_len = - caml_call2 - (Stdlib_Int[10], - 2 * caml_ml_bytes_length(buf[1]) | 0, - Stdlib_Sys[12]); - if(caml_ml_bytes_length(buf[1]) === new_len) - caml_call1(Stdlib[2], cst_Bytes_of_seq_cannot_grow_b); - var new_buf = make(new_len, 0); - blit(buf[1], 0, new_buf, 0, n[1]); - buf[1] = new_buf; - } - caml_bytes_set(buf[1], n[1], c); - n[1]++; - return 0; - } - caml_call2(Stdlib_Seq[4], _u_, i); - return sub(buf[1], 0, n[1]); - } - function unsafe_get_uint16_le(b, i){ - return Stdlib_Sys[11] - ? caml_bswap16(caml_bytes_get16(b, i)) - : caml_bytes_get16(b, i); - } - function unsafe_get_uint16_be(b, i){ - return Stdlib_Sys[11] - ? caml_bytes_get16(b, i) - : caml_bswap16(caml_bytes_get16(b, i)); - } - function get_int8(b, i){ - var _s_ = Stdlib_Sys[10] - 8 | 0, _t_ = Stdlib_Sys[10] - 8 | 0; - return caml_bytes_get(b, i) << _t_ >> _s_; - } - function get_uint16_le(b, i){ - return Stdlib_Sys[11] - ? caml_bswap16(caml_bytes_get16(b, i)) - : caml_bytes_get16(b, i); - } - function get_uint16_be(b, i){ - return Stdlib_Sys[11] - ? caml_bytes_get16(b, i) - : caml_bswap16(caml_bytes_get16(b, i)); - } - function get_int16_ne(b, i){ - var _q_ = Stdlib_Sys[10] - 16 | 0, _r_ = Stdlib_Sys[10] - 16 | 0; - return caml_bytes_get16(b, i) << _r_ >> _q_; - } - function get_int16_le(b, i){ - var _o_ = Stdlib_Sys[10] - 16 | 0, _p_ = Stdlib_Sys[10] - 16 | 0; - return get_uint16_le(b, i) << _p_ >> _o_; - } - function get_int16_be(b, i){ - var _m_ = Stdlib_Sys[10] - 16 | 0, _n_ = Stdlib_Sys[10] - 16 | 0; - return get_uint16_be(b, i) << _n_ >> _m_; - } - function get_int32_le(b, i){ - return Stdlib_Sys[11] - ? caml_int32_bswap(caml_bytes_get32(b, i)) - : caml_bytes_get32(b, i); - } - function get_int32_be(b, i){ - return Stdlib_Sys[11] - ? caml_bytes_get32(b, i) - : caml_int32_bswap(caml_bytes_get32(b, i)); - } - function get_int64_le(b, i){ - return Stdlib_Sys[11] - ? caml_int64_bswap(caml_bytes_get64(b, i)) - : caml_bytes_get64(b, i); - } - function get_int64_be(b, i){ - return Stdlib_Sys[11] - ? caml_bytes_get64(b, i) - : caml_int64_bswap(caml_bytes_get64(b, i)); - } - function unsafe_set_uint16_le(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set16(b, i, caml_bswap16(x)) - : caml_bytes_set16(b, i, x); - } - function unsafe_set_uint16_be(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set16(b, i, x) - : caml_bytes_set16(b, i, caml_bswap16(x)); - } - function set_int16_le(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set16(b, i, caml_bswap16(x)) - : caml_bytes_set16(b, i, x); - } - function set_int16_be(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set16(b, i, x) - : caml_bytes_set16(b, i, caml_bswap16(x)); - } - function set_int32_le(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set32(b, i, caml_int32_bswap(x)) - : caml_bytes_set32(b, i, x); - } - function set_int32_be(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set32(b, i, x) - : caml_bytes_set32(b, i, caml_int32_bswap(x)); - } - function set_int64_le(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set64(b, i, caml_int64_bswap(x)) - : caml_bytes_set64(b, i, x); - } - function set_int64_be(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set64(b, i, x) - : caml_bytes_set64(b, i, caml_int64_bswap(x)); - } - var - set_uint8 = caml_bytes_set, - set_uint16_ne = caml_bytes_set16, - dec_invalid = Stdlib_Uchar[22]; - function dec_ret(n, u){ - var _l_ = caml_call1(Stdlib_Uchar[9], u); - return caml_call2(Stdlib_Uchar[21], n, _l_); - } - function not_in_x80_to_xBF(b){return 2 !== (b >>> 6 | 0) ? 1 : 0;} - function not_in_xA0_to_xBF(b){return 5 !== (b >>> 5 | 0) ? 1 : 0;} - function not_in_x80_to_x9F(b){return 4 !== (b >>> 5 | 0) ? 1 : 0;} - function not_in_x90_to_xBF(b){ - var _j_ = b < 144 ? 1 : 0, _k_ = _j_ || (191 < b ? 1 : 0); - return _k_; - } - function not_in_x80_to_x8F(b){return 8 !== (b >>> 4 | 0) ? 1 : 0;} - function utf_8_uchar_3(b0, b1, b2){ - return (b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63; - } - function utf_8_uchar_4(b0, b1, b2, b3){ - return (b0 & 7) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63; - } - function get_utf_8_uchar(b, i){ - var b0 = caml_bytes_get(b, i), max = caml_ml_bytes_length(b) - 1 | 0; - if(224 <= b0){ - var switch$0 = 0; - if(237 <= b0){ - if(245 > b0) - switch(b0 - 237 | 0){ - case 0: - var i$0 = i + 1 | 0; - if(max < i$0) return caml_call1(dec_invalid, 1); - var b1 = caml_bytes_unsafe_get(b, i$0); - if(not_in_x80_to_x9F(b1)) return caml_call1(dec_invalid, 1); - var i$1 = i$0 + 1 | 0; - if(max < i$1) return caml_call1(dec_invalid, 2); - var b2 = caml_bytes_unsafe_get(b, i$1); - return not_in_x80_to_xBF(b2) - ? caml_call1(dec_invalid, 2) - : dec_ret(3, utf_8_uchar_3(b0, b1, b2)); - case 3: - var i$4 = i + 1 | 0; - if(max < i$4) return caml_call1(dec_invalid, 1); - var b1$1 = caml_bytes_unsafe_get(b, i$4); - if(not_in_x90_to_xBF(b1$1)) return caml_call1(dec_invalid, 1); - var i$5 = i$4 + 1 | 0; - if(max < i$5) return caml_call1(dec_invalid, 2); - var b2$1 = caml_bytes_unsafe_get(b, i$5); - if(not_in_x80_to_xBF(b2$1)) return caml_call1(dec_invalid, 2); - var i$6 = i$5 + 1 | 0; - if(max < i$6) return caml_call1(dec_invalid, 3); - var b3 = caml_bytes_unsafe_get(b, i$6); - return not_in_x80_to_xBF(b3) - ? caml_call1(dec_invalid, 3) - : dec_ret(4, utf_8_uchar_4(b0, b1$1, b2$1, b3)); - case 7: - var i$10 = i + 1 | 0; - if(max < i$10) return caml_call1(dec_invalid, 1); - var b1$3 = caml_bytes_unsafe_get(b, i$10); - if(not_in_x80_to_x8F(b1$3)) return caml_call1(dec_invalid, 1); - var i$11 = i$10 + 1 | 0; - if(max < i$11) return caml_call1(dec_invalid, 2); - var b2$3 = caml_bytes_unsafe_get(b, i$11); - if(not_in_x80_to_xBF(b2$3)) return caml_call1(dec_invalid, 2); - var i$12 = i$11 + 1 | 0; - if(max < i$12) return caml_call1(dec_invalid, 3); - var b3$1 = caml_bytes_unsafe_get(b, i$12); - return not_in_x80_to_xBF(b3$1) - ? caml_call1(dec_invalid, 3) - : dec_ret(4, utf_8_uchar_4(b0, b1$3, b2$3, b3$1)); - case 1: - case 2: - switch$0 = 1; break; - default: - var i$7 = i + 1 | 0; - if(max < i$7) return caml_call1(dec_invalid, 1); - var b1$2 = caml_bytes_unsafe_get(b, i$7); - if(not_in_x80_to_xBF(b1$2)) return caml_call1(dec_invalid, 1); - var i$8 = i$7 + 1 | 0; - if(max < i$8) return caml_call1(dec_invalid, 2); - var b2$2 = caml_bytes_unsafe_get(b, i$8); - if(not_in_x80_to_xBF(b2$2)) return caml_call1(dec_invalid, 2); - var i$9 = i$8 + 1 | 0; - if(max < i$9) return caml_call1(dec_invalid, 3); - var b3$0 = caml_bytes_unsafe_get(b, i$9); - return not_in_x80_to_xBF(b3$0) - ? caml_call1(dec_invalid, 3) - : dec_ret(4, utf_8_uchar_4(b0, b1$2, b2$2, b3$0)); - } - } - else{ - if(225 > b0){ - var i$13 = i + 1 | 0; - if(max < i$13) return caml_call1(dec_invalid, 1); - var b1$4 = caml_bytes_unsafe_get(b, i$13); - if(not_in_xA0_to_xBF(b1$4)) return caml_call1(dec_invalid, 1); - var i$14 = i$13 + 1 | 0; - if(max < i$14) return caml_call1(dec_invalid, 2); - var b2$4 = caml_bytes_unsafe_get(b, i$14); - return not_in_x80_to_xBF(b2$4) - ? caml_call1(dec_invalid, 2) - : dec_ret(3, utf_8_uchar_3(b0, b1$4, b2$4)); - } - switch$0 = 1; - } - if(switch$0){ - var i$2 = i + 1 | 0; - if(max < i$2) return caml_call1(dec_invalid, 1); - var b1$0 = caml_bytes_unsafe_get(b, i$2); - if(not_in_x80_to_xBF(b1$0)) return caml_call1(dec_invalid, 1); - var i$3 = i$2 + 1 | 0; - if(max < i$3) return caml_call1(dec_invalid, 2); - var b2$0 = caml_bytes_unsafe_get(b, i$3); - return not_in_x80_to_xBF(b2$0) - ? caml_call1(dec_invalid, 2) - : dec_ret(3, utf_8_uchar_3(b0, b1$0, b2$0)); - } - } - else{ - if(128 > b0) return dec_ret(1, b0); - if(194 <= b0){ - var i$15 = i + 1 | 0; - if(max < i$15) return caml_call1(dec_invalid, 1); - var b1$5 = caml_bytes_unsafe_get(b, i$15); - return not_in_x80_to_xBF(b1$5) - ? caml_call1(dec_invalid, 1) - : dec_ret(2, (b0 & 31) << 6 | b1$5 & 63); - } - } - return caml_call1(dec_invalid, 1); - } - function set_utf_8_uchar(b, i, u){ - function set(_i_, _h_, _g_){ - caml_bytes_unsafe_set(_i_, _h_, _g_); - return 0; - } - var - max = caml_ml_bytes_length(b) - 1 | 0, - u$0 = caml_call1(Stdlib_Uchar[10], u); - if(0 > u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - if(127 >= u$0){caml_bytes_set(b, i, u$0); return 1;} - if(2047 >= u$0){ - var last$1 = i + 1 | 0; - return max < last$1 - ? 0 - : (caml_bytes_set - (b, i, 192 | u$0 >>> 6 | 0), - set(b, last$1, 128 | u$0 & 63), - 2); - } - if(65535 >= u$0){ - var last$0 = i + 2 | 0; - return max < last$0 - ? 0 - : (caml_bytes_set - (b, i, 224 | u$0 >>> 12 | 0), - set(b, i + 1 | 0, 128 | (u$0 >>> 6 | 0) & 63), - set(b, last$0, 128 | u$0 & 63), - 3); - } - if(1114111 < u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - var last = i + 3 | 0; - return max < last - ? 0 - : (caml_bytes_set - (b, i, 240 | u$0 >>> 18 | 0), - set(b, i + 1 | 0, 128 | (u$0 >>> 12 | 0) & 63), - set(b, i + 2 | 0, 128 | (u$0 >>> 6 | 0) & 63), - set(b, last, 128 | u$0 & 63), - 4); - } - function is_valid_utf_8(b){ - var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; - for(;;){ - if(max < i) return 1; - var match = caml_bytes_unsafe_get(b, i); - if(224 <= match){ - var switch$0 = 0; - if(237 <= match){ - if(245 > match) - switch(match - 237 | 0){ - case 0: - var last = i + 2 | 0; - if - (max >= last - && - ! - not_in_x80_to_x9F(caml_bytes_unsafe_get(b, i + 1 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last))){var i$0 = last + 1 | 0, i = i$0; continue;} - return 0; - case 3: - var last$1 = i + 3 | 0; - if - (max >= last$1 - && - ! - not_in_x90_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$1))){var i$2 = last$1 + 1 | 0, i = i$2; continue;} - return 0; - case 7: - var last$3 = i + 3 | 0; - if - (max >= last$3 - && - ! - not_in_x80_to_x8F(caml_bytes_unsafe_get(b, i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$3))){var i$4 = last$3 + 1 | 0, i = i$4; continue;} - return 0; - case 1: - case 2: - switch$0 = 1; break; - default: - var last$2 = i + 3 | 0; - if - (max >= last$2 - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$2))){var i$3 = last$2 + 1 | 0, i = i$3; continue;} - return 0; - } - } - else{ - if(225 > match){ - var last$4 = i + 2 | 0; - if - (max >= last$4 - && - ! - not_in_xA0_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$4))){var i$5 = last$4 + 1 | 0, i = i$5; continue;} - return 0; - } - switch$0 = 1; - } - if(switch$0){ - var last$0 = i + 2 | 0; - if - (max >= last$0 - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$0))){var i$1 = last$0 + 1 | 0, i = i$1; continue;} - return 0; - } - } - else{ - if(128 > match){var i$7 = i + 1 | 0, i = i$7; continue;} - if(194 <= match){ - var last$5 = i + 1 | 0; - if - (max >= last$5 - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$5))){var i$6 = last$5 + 1 | 0, i = i$6; continue;} - return 0; - } - } - return 0; - } - } - function get_utf_16be_uchar(b, i){ - var max = caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - if(i === max) return caml_call1(dec_invalid, 1); - var hi = unsafe_get_uint16_be(b, i); - if(55296 <= hi && 57343 >= hi){ - if(56319 < hi) return caml_call1(dec_invalid, 2); - var last = i + 3 | 0; - if(max < last) return caml_call1(dec_invalid, (max - i | 0) + 1 | 0); - var lo = unsafe_get_uint16_be(b, i + 2 | 0); - if(56320 <= lo && 57343 >= lo){ - var u = ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; - return dec_ret(4, u); - } - return caml_call1(dec_invalid, 2); - } - return dec_ret(2, hi); - } - return caml_call1(Stdlib[1], cst_index_out_of_bounds); - } - function set_utf_16be_uchar(b, i, u){ - var max = caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - var u$0 = caml_call1(Stdlib_Uchar[10], u); - if(0 > u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - if(65535 >= u$0){ - var last$0 = i + 1 | 0; - return max < last$0 ? 0 : (unsafe_set_uint16_be(b, i, u$0), 2); - } - if(1114111 < u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - var last = i + 3 | 0; - if(max < last) return 0; - var - u$1 = u$0 - 65536 | 0, - hi = 55296 | u$1 >>> 10 | 0, - lo = 56320 | u$1 & 1023; - unsafe_set_uint16_be(b, i, hi); - unsafe_set_uint16_be(b, i + 2 | 0, lo); - return 4; - } - return caml_call1(Stdlib[1], cst_index_out_of_bounds$0); - } - function is_valid_utf_16be(b){ - var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; - for(;;){ - if(max < i) return 1; - if(i === max) return 0; - var u = unsafe_get_uint16_be(b, i); - if(55296 <= u && 57343 >= u){ - if(56319 < u) return 0; - var last = i + 3 | 0; - if(max < last) return 0; - var u$0 = unsafe_get_uint16_be(b, i + 2 | 0); - if(56320 <= u$0 && 57343 >= u$0){ - var i$1 = i + 4 | 0, i = i$1; - continue; - } - return 0; - } - var i$0 = i + 2 | 0, i = i$0; - } - } - function get_utf_16le_uchar(b, i){ - var max = caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - if(i === max) return caml_call1(dec_invalid, 1); - var hi = unsafe_get_uint16_le(b, i); - if(55296 <= hi && 57343 >= hi){ - if(56319 < hi) return caml_call1(dec_invalid, 2); - var last = i + 3 | 0; - if(max < last) return caml_call1(dec_invalid, (max - i | 0) + 1 | 0); - var lo = unsafe_get_uint16_le(b, i + 2 | 0); - if(56320 <= lo && 57343 >= lo){ - var u = ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; - return dec_ret(4, u); - } - return caml_call1(dec_invalid, 2); - } - return dec_ret(2, hi); - } - return caml_call1(Stdlib[1], cst_index_out_of_bounds$1); - } - function set_utf_16le_uchar(b, i, u){ - var max = caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - var u$0 = caml_call1(Stdlib_Uchar[10], u); - if(0 > u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); - if(65535 >= u$0){ - var last$0 = i + 1 | 0; - return max < last$0 ? 0 : (unsafe_set_uint16_le(b, i, u$0), 2); - } - if(1114111 < u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); - var last = i + 3 | 0; - if(max < last) return 0; - var - u$1 = u$0 - 65536 | 0, - hi = 55296 | u$1 >>> 10 | 0, - lo = 56320 | u$1 & 1023; - unsafe_set_uint16_le(b, i, hi); - unsafe_set_uint16_le(b, i + 2 | 0, lo); - return 4; - } - return caml_call1(Stdlib[1], cst_index_out_of_bounds$2); - } - function is_valid_utf_16le(b){ - var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; - for(;;){ - if(max < i) return 1; - if(i === max) return 0; - var u = unsafe_get_uint16_le(b, i); - if(55296 <= u && 57343 >= u){ - if(56319 < u) return 0; - var last = i + 3 | 0; - if(max < last) return 0; - var u$0 = unsafe_get_uint16_le(b, i + 2 | 0); - if(56320 <= u$0 && 57343 >= u$0){ - var i$1 = i + 4 | 0, i = i$1; - continue; - } - return 0; - } - var i$0 = i + 2 | 0, i = i$0; - } - } - var - Stdlib_Bytes = - [0, - make, - init, - empty, - copy, - of_string, - to_string, - sub, - sub_string, - extend, - fill, - blit, - blit_string, - concat, - cat, - iter, - iteri, - map, - mapi, - fold_left, - fold_right, - for_all, - exists, - trim, - escaped, - index, - index_opt, - rindex, - rindex_opt, - index_from, - index_from_opt, - rindex_from, - rindex_from_opt, - contains, - contains_from, - rcontains_from, - uppercase, - lowercase, - capitalize, - uncapitalize, - uppercase_ascii, - lowercase_ascii, - capitalize_ascii, - uncapitalize_ascii, - compare, - runtime.caml_bytes_equal, - starts_with, - ends_with, - caml_string_of_bytes, - caml_bytes_of_string, - split_on_char, - to_seq, - to_seqi, - of_seq, - get_utf_8_uchar, - set_utf_8_uchar, - is_valid_utf_8, - get_utf_16be_uchar, - set_utf_16be_uchar, - is_valid_utf_16be, - get_utf_16le_uchar, - set_utf_16le_uchar, - is_valid_utf_16le, - caml_bytes_get, - get_int8, - caml_bytes_get16, - get_uint16_be, - get_uint16_le, - get_int16_ne, - get_int16_be, - get_int16_le, - caml_bytes_get32, - get_int32_be, - get_int32_le, - caml_bytes_get64, - get_int64_be, - get_int64_le, - set_uint8, - caml_bytes_set, - set_uint16_ne, - set_int16_be, - set_int16_le, - caml_bytes_set16, - set_int16_be, - set_int16_le, - caml_bytes_set32, - set_int32_be, - set_int32_le, - caml_bytes_set64, - set_int64_be, - set_int64_le]; - runtime.caml_register_global(30, Stdlib_Bytes, "Stdlib__Bytes"); - return; - } - (globalThis)); - -//# 4971 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$0 = "", - caml_blit_string = runtime.caml_blit_string, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_string_equal = runtime.caml_string_equal, - caml_string_unsafe_get = runtime.caml_string_unsafe_get, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - cst = cst$0, - empty = cst$0, - Stdlib = global_data.Stdlib, - Stdlib_Bytes = global_data.Stdlib__Bytes, - bts = Stdlib_Bytes[48], - bos = Stdlib_Bytes[49], - cst_String_rcontains_from_Byte = - "String.rcontains_from / Bytes.rcontains_from", - cst_String_contains_from_Bytes = - "String.contains_from / Bytes.contains_from", - cst_String_rindex_from_opt_Byt = - "String.rindex_from_opt / Bytes.rindex_from_opt", - cst_String_rindex_from_Bytes_r = "String.rindex_from / Bytes.rindex_from", - cst_String_index_from_opt_Byte = - "String.index_from_opt / Bytes.index_from_opt", - cst_String_index_from_Bytes_in = "String.index_from / Bytes.index_from", - cst_String_concat = "String.concat"; - function make(n, c){ - return caml_call1(bts, caml_call2(Stdlib_Bytes[1], n, c)); - } - function init(n, f){ - return caml_call1(bts, caml_call2(Stdlib_Bytes[2], n, f)); - } - function copy(s){ - var _ac_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[4], _ac_)); - } - var of_bytes = Stdlib_Bytes[6], to_bytes = Stdlib_Bytes[5]; - function sub(s, ofs, len){ - var _ab_ = caml_call1(bos, s); - return caml_call1(bts, caml_call3(Stdlib_Bytes[7], _ab_, ofs, len)); - } - var fill = Stdlib_Bytes[10], blit = Stdlib_Bytes[12]; - function concat(sep, l){ - if(! l) return cst; - var seplen = caml_ml_string_length(sep), acc = 0, param = l, pos$1 = 0; - for(;;){ - if(param){ - var hd = param[1]; - if(param[2]){ - var - tl = param[2], - x = (caml_ml_string_length(hd) + seplen | 0) + acc | 0, - acc$0 = acc <= x ? x : caml_call1(Stdlib[1], cst_String_concat), - acc = acc$0, - param = tl; - continue; - } - var _aa_ = caml_ml_string_length(hd) + acc | 0; - } - else - var _aa_ = acc; - var dst = runtime.caml_create_bytes(_aa_), pos = pos$1, param$0 = l; - for(;;){ - if(param$0){ - var hd$0 = param$0[1]; - if(param$0[2]){ - var tl$0 = param$0[2]; - caml_blit_string(hd$0, 0, dst, pos, caml_ml_string_length(hd$0)); - caml_blit_string - (sep, 0, dst, pos + caml_ml_string_length(hd$0) | 0, seplen); - var - pos$0 = (pos + caml_ml_string_length(hd$0) | 0) + seplen | 0, - pos = pos$0, - param$0 = tl$0; - continue; - } - caml_blit_string(hd$0, 0, dst, pos, caml_ml_string_length(hd$0)); - } - return caml_call1(bts, dst); - } - } - } - var cat = Stdlib[28]; - function iter(f, s){ - var ___ = caml_ml_string_length(s) - 1 | 0, _Z_ = 0; - if(___ >= 0){ - var i = _Z_; - for(;;){ - caml_call1(f, caml_string_unsafe_get(s, i)); - var _$_ = i + 1 | 0; - if(___ !== i){var i = _$_; continue;} - break; - } - } - return 0; - } - function iteri(f, s){ - var _X_ = caml_ml_string_length(s) - 1 | 0, _W_ = 0; - if(_X_ >= 0){ - var i = _W_; - for(;;){ - caml_call2(f, i, caml_string_unsafe_get(s, i)); - var _Y_ = i + 1 | 0; - if(_X_ !== i){var i = _Y_; continue;} - break; - } - } - return 0; - } - function map(f, s){ - var _V_ = caml_call1(bos, s); - return caml_call1(bts, caml_call2(Stdlib_Bytes[17], f, _V_)); - } - function mapi(f, s){ - var _U_ = caml_call1(bos, s); - return caml_call1(bts, caml_call2(Stdlib_Bytes[18], f, _U_)); - } - function fold_right(f, x, a){ - var _T_ = caml_call1(bos, x); - return caml_call3(Stdlib_Bytes[20], f, _T_, a); - } - function fold_left(f, a, x){ - var _S_ = caml_call1(bos, x); - return caml_call3(Stdlib_Bytes[19], f, a, _S_); - } - function exists(f, s){ - var _R_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[22], f, _R_); - } - function for_all(f, s){ - var _Q_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[21], f, _Q_); - } - function is_space(param){ - var _P_ = param - 9 | 0, switch$0 = 0; - if(4 < _P_ >>> 0){ - if(23 === _P_) switch$0 = 1; - } - else if(2 !== _P_) switch$0 = 1; - return switch$0 ? 1 : 0; - } - function trim(s){ - if(caml_string_equal(s, cst$0)) return s; - if - (! - is_space(caml_string_unsafe_get(s, 0)) - && - ! - is_space(caml_string_unsafe_get(s, caml_ml_string_length(s) - 1 | 0))) - return s; - var _O_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[23], _O_)); - } - function escaped(s){ - var n = caml_ml_string_length(s), i = 0; - for(;;){ - if(n <= i) return s; - var _M_ = caml_string_unsafe_get(s, i) - 32 | 0, switch$0 = 0; - if(59 < _M_ >>> 0){ - if(33 < _M_ - 61 >>> 0) switch$0 = 1; - } - else if(2 === _M_) switch$0 = 1; - if(switch$0){ - var _N_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[24], _N_)); - } - var i$0 = i + 1 | 0, i = i$0; - } - } - function index_rec(s, lim, i, c){ - var i$0 = i; - for(;;){ - if(lim <= i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(caml_string_unsafe_get(s, i$0) === c) return i$0; - var i$1 = i$0 + 1 | 0, i$0 = i$1; - } - } - function index(s, c){return index_rec(s, caml_ml_string_length(s), 0, c);} - function index_rec_opt(s, lim, i, c){ - var i$0 = i; - for(;;){ - if(lim <= i$0) return 0; - if(caml_string_unsafe_get(s, i$0) === c) return [0, i$0]; - var i$1 = i$0 + 1 | 0, i$0 = i$1; - } - } - function index_opt(s, c){ - return index_rec_opt(s, caml_ml_string_length(s), 0, c); - } - function index_from(s, i, c){ - var l = caml_ml_string_length(s); - if(0 <= i && l >= i) return index_rec(s, l, i, c); - return caml_call1(Stdlib[1], cst_String_index_from_Bytes_in); - } - function index_from_opt(s, i, c){ - var l = caml_ml_string_length(s); - if(0 <= i && l >= i) return index_rec_opt(s, l, i, c); - return caml_call1(Stdlib[1], cst_String_index_from_opt_Byte); - } - function rindex_rec(s, i, c){ - var i$0 = i; - for(;;){ - if(0 > i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(caml_string_unsafe_get(s, i$0) === c) return i$0; - var i$1 = i$0 - 1 | 0, i$0 = i$1; - } - } - function rindex(s, c){ - return rindex_rec(s, caml_ml_string_length(s) - 1 | 0, c); - } - function rindex_from(s, i, c){ - if(-1 <= i && caml_ml_string_length(s) > i) return rindex_rec(s, i, c); - return caml_call1(Stdlib[1], cst_String_rindex_from_Bytes_r); - } - function rindex_rec_opt(s, i, c){ - var i$0 = i; - for(;;){ - if(0 > i$0) return 0; - if(caml_string_unsafe_get(s, i$0) === c) return [0, i$0]; - var i$1 = i$0 - 1 | 0, i$0 = i$1; - } - } - function rindex_opt(s, c){ - return rindex_rec_opt(s, caml_ml_string_length(s) - 1 | 0, c); - } - function rindex_from_opt(s, i, c){ - if(-1 <= i && caml_ml_string_length(s) > i) - return rindex_rec_opt(s, i, c); - return caml_call1(Stdlib[1], cst_String_rindex_from_opt_Byt); - } - function contains_from(s, i, c){ - var l = caml_ml_string_length(s); - if(0 <= i && l >= i) - try{index_rec(s, l, i, c); var _K_ = 1; return _K_;} - catch(_L_){ - var _J_ = caml_wrap_exception(_L_); - if(_J_ === Stdlib[8]) return 0; - throw caml_maybe_attach_backtrace(_J_, 0); - } - return caml_call1(Stdlib[1], cst_String_contains_from_Bytes); - } - function contains(s, c){return contains_from(s, 0, c);} - function rcontains_from(s, i, c){ - if(0 <= i && caml_ml_string_length(s) > i) - try{rindex_rec(s, i, c); var _H_ = 1; return _H_;} - catch(_I_){ - var _G_ = caml_wrap_exception(_I_); - if(_G_ === Stdlib[8]) return 0; - throw caml_maybe_attach_backtrace(_G_, 0); - } - return caml_call1(Stdlib[1], cst_String_rcontains_from_Byte); - } - function uppercase_ascii(s){ - var _F_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[40], _F_)); - } - function lowercase_ascii(s){ - var _E_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[41], _E_)); - } - function capitalize_ascii(s){ - var _D_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[42], _D_)); - } - function uncapitalize_ascii(s){ - var _C_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[43], _C_)); - } - function starts_with(prefix, s){ - var - len_s = caml_ml_string_length(s), - len_pre = caml_ml_string_length(prefix), - _B_ = len_pre <= len_s ? 1 : 0; - if(! _B_) return _B_; - var i = 0; - for(;;){ - if(i === len_pre) return 1; - if(caml_string_unsafe_get(s, i) !== caml_string_unsafe_get(prefix, i)) - return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function ends_with(suffix, s){ - var - len_s = caml_ml_string_length(s), - len_suf = caml_ml_string_length(suffix), - diff = len_s - len_suf | 0, - _A_ = 0 <= diff ? 1 : 0; - if(! _A_) return _A_; - var i = 0; - for(;;){ - if(i === len_suf) return 1; - if - (caml_string_unsafe_get(s, diff + i | 0) - !== caml_string_unsafe_get(suffix, i)) - return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function split_on_char(sep, s){ - var - r = [0, 0], - j = [0, caml_ml_string_length(s)], - _w_ = caml_ml_string_length(s) - 1 | 0; - if(_w_ >= 0){ - var i = _w_; - for(;;){ - if(caml_string_unsafe_get(s, i) === sep){ - var _y_ = r[1]; - r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _y_]; - j[1] = i; - } - var _z_ = i - 1 | 0; - if(0 !== i){var i = _z_; continue;} - break; - } - } - var _x_ = r[1]; - return [0, sub(s, 0, j[1]), _x_]; - } - function uppercase(s){ - var _v_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[36], _v_)); - } - function lowercase(s){ - var _u_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[37], _u_)); - } - function capitalize(s){ - var _t_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[38], _t_)); - } - function uncapitalize(s){ - var _s_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[39], _s_)); - } - var compare = runtime.caml_string_compare; - function to_seq(s){ - var _r_ = caml_call1(bos, s); - return caml_call1(Stdlib_Bytes[51], _r_); - } - function to_seqi(s){ - var _q_ = caml_call1(bos, s); - return caml_call1(Stdlib_Bytes[52], _q_); - } - function of_seq(g){ - return caml_call1(bts, caml_call1(Stdlib_Bytes[53], g)); - } - function get_utf_8_uchar(s, i){ - var _p_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[54], _p_, i); - } - function is_valid_utf_8(s){ - var _o_ = caml_call1(bos, s); - return caml_call1(Stdlib_Bytes[56], _o_); - } - function get_utf_16be_uchar(s, i){ - var _n_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[57], _n_, i); - } - function is_valid_utf_16be(s){ - var _m_ = caml_call1(bos, s); - return caml_call1(Stdlib_Bytes[59], _m_); - } - function get_utf_16le_uchar(s, i){ - var _l_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[60], _l_, i); - } - function is_valid_utf_16le(s){ - var _k_ = caml_call1(bos, s); - return caml_call1(Stdlib_Bytes[62], _k_); - } - function get_int8(s, i){ - var _j_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[64], _j_, i); - } - function get_uint16_le(s, i){ - var _i_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[67], _i_, i); - } - function get_uint16_be(s, i){ - var _h_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[66], _h_, i); - } - function get_int16_ne(s, i){ - var _g_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[68], _g_, i); - } - function get_int16_le(s, i){ - var _f_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[70], _f_, i); - } - function get_int16_be(s, i){ - var _e_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[69], _e_, i); - } - function get_int32_le(s, i){ - var _d_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[73], _d_, i); - } - function get_int32_be(s, i){ - var _c_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[72], _c_, i); - } - function get_int64_le(s, i){ - var _b_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[76], _b_, i); - } - function get_int64_be(s, i){ - var _a_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[75], _a_, i); - } - var - Stdlib_String = - [0, - make, - init, - empty, - of_bytes, - to_bytes, - concat, - cat, - caml_string_equal, - compare, - starts_with, - ends_with, - contains_from, - rcontains_from, - contains, - sub, - split_on_char, - map, - mapi, - fold_left, - fold_right, - for_all, - exists, - trim, - escaped, - uppercase_ascii, - lowercase_ascii, - capitalize_ascii, - uncapitalize_ascii, - iter, - iteri, - index_from, - index_from_opt, - rindex_from, - rindex_from_opt, - index, - index_opt, - rindex, - rindex_opt, - to_seq, - to_seqi, - of_seq, - get_utf_8_uchar, - is_valid_utf_8, - get_utf_16be_uchar, - is_valid_utf_16be, - get_utf_16le_uchar, - is_valid_utf_16le, - blit, - copy, - fill, - uppercase, - lowercase, - capitalize, - uncapitalize, - runtime.caml_string_get, - get_int8, - runtime.caml_string_get16, - get_uint16_be, - get_uint16_le, - get_int16_ne, - get_int16_be, - get_int16_le, - runtime.caml_string_get32, - get_int32_be, - get_int32_le, - runtime.caml_string_get64, - get_int64_be, - get_int64_le]; - runtime.caml_register_global(12, Stdlib_String, "Stdlib__String"); - return; - } - (globalThis)); - -//# 5558 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_array_sub = runtime.caml_array_sub, - caml_check_bound = runtime.caml_check_bound, - caml_make_vect = runtime.caml_make_vect, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Seq = global_data.Stdlib__Seq, - Assert_failure = global_data.Assert_failure, - Stdlib = global_data.Stdlib, - make_float = runtime.caml_make_float_vect, - Floatarray = [0], - _a_ = [0, "array.ml", 322, 4], - cst_Array_combine = "Array.combine", - cst_Array_exists2 = "Array.exists2", - cst_Array_for_all2 = "Array.for_all2", - cst_Array_map2_arrays_must_hav = - "Array.map2: arrays must have the same length", - cst_Array_iter2_arrays_must_ha = - "Array.iter2: arrays must have the same length", - cst_Array_blit = "Array.blit", - cst_Array_fill = "Array.fill", - cst_Array_sub = "Array.sub", - cst_Array_init = "Array.init", - cst_Stdlib_Array_Bottom = "Stdlib.Array.Bottom"; - function init(l, f){ - if(0 === l) return [0]; - if(0 > l) return caml_call1(Stdlib[1], cst_Array_init); - var res = caml_make_vect(l, caml_call1(f, 0)), _as_ = l - 1 | 0, _ar_ = 1; - if(_as_ >= 1){ - var i = _ar_; - for(;;){ - res[1 + i] = caml_call1(f, i); - var _at_ = i + 1 | 0; - if(_as_ !== i){var i = _at_; continue;} - break; - } - } - return res; - } - function make_matrix(sx, sy, init){ - var res = caml_make_vect(sx, [0]), _ap_ = sx - 1 | 0, _ao_ = 0; - if(_ap_ >= 0){ - var x = _ao_; - for(;;){ - res[1 + x] = caml_make_vect(sy, init); - var _aq_ = x + 1 | 0; - if(_ap_ !== x){var x = _aq_; continue;} - break; - } - } - return res; - } - function copy(a){ - var l = a.length - 1; - return 0 === l ? [0] : caml_array_sub(a, 0, l); - } - function append(a1, a2){ - var l1 = a1.length - 1; - return 0 === l1 - ? copy(a2) - : 0 - === a2.length - 1 - ? caml_array_sub(a1, 0, l1) - : runtime.caml_array_append(a1, a2); - } - function sub(a, ofs, len){ - if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) - return caml_array_sub(a, ofs, len); - return caml_call1(Stdlib[1], cst_Array_sub); - } - function fill(a, ofs, len, v){ - if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) - return runtime.caml_array_fill(a, ofs, len, v); - return caml_call1(Stdlib[1], cst_Array_fill); - } - function blit(a1, ofs1, a2, ofs2, len){ - if - (0 <= len - && - 0 <= ofs1 - && - (a1.length - 1 - len | 0) >= ofs1 - && 0 <= ofs2 && (a2.length - 1 - len | 0) >= ofs2) - return runtime.caml_array_blit(a1, ofs1, a2, ofs2, len); - return caml_call1(Stdlib[1], cst_Array_blit); - } - function iter(f, a){ - var _am_ = a.length - 1 - 1 | 0, _al_ = 0; - if(_am_ >= 0){ - var i = _al_; - for(;;){ - caml_call1(f, a[1 + i]); - var _an_ = i + 1 | 0; - if(_am_ !== i){var i = _an_; continue;} - break; - } - } - return 0; - } - function iter2(f, a, b){ - if(a.length - 1 !== b.length - 1) - return caml_call1(Stdlib[1], cst_Array_iter2_arrays_must_ha); - var _aj_ = a.length - 1 - 1 | 0, _ai_ = 0; - if(_aj_ >= 0){ - var i = _ai_; - for(;;){ - caml_call2(f, a[1 + i], b[1 + i]); - var _ak_ = i + 1 | 0; - if(_aj_ !== i){var i = _ak_; continue;} - break; - } - } - return 0; - } - function map(f, a){ - var l = a.length - 1; - if(0 === l) return [0]; - var - r = caml_make_vect(l, caml_call1(f, a[1])), - _ag_ = l - 1 | 0, - _af_ = 1; - if(_ag_ >= 1){ - var i = _af_; - for(;;){ - r[1 + i] = caml_call1(f, a[1 + i]); - var _ah_ = i + 1 | 0; - if(_ag_ !== i){var i = _ah_; continue;} - break; - } - } - return r; - } - function map2(f, a, b){ - var la = a.length - 1, lb = b.length - 1; - if(la !== lb) - return caml_call1(Stdlib[1], cst_Array_map2_arrays_must_hav); - if(0 === la) return [0]; - var - r = caml_make_vect(la, caml_call2(f, a[1], b[1])), - _ad_ = la - 1 | 0, - _ac_ = 1; - if(_ad_ >= 1){ - var i = _ac_; - for(;;){ - r[1 + i] = caml_call2(f, a[1 + i], b[1 + i]); - var _ae_ = i + 1 | 0; - if(_ad_ !== i){var i = _ae_; continue;} - break; - } - } - return r; - } - function iteri(f, a){ - var _aa_ = a.length - 1 - 1 | 0, _$_ = 0; - if(_aa_ >= 0){ - var i = _$_; - for(;;){ - caml_call2(f, i, a[1 + i]); - var _ab_ = i + 1 | 0; - if(_aa_ !== i){var i = _ab_; continue;} - break; - } - } - return 0; - } - function mapi(f, a){ - var l = a.length - 1; - if(0 === l) return [0]; - var - r = caml_make_vect(l, caml_call2(f, 0, a[1])), - _Z_ = l - 1 | 0, - _Y_ = 1; - if(_Z_ >= 1){ - var i = _Y_; - for(;;){ - r[1 + i] = caml_call2(f, i, a[1 + i]); - var ___ = i + 1 | 0; - if(_Z_ !== i){var i = ___; continue;} - break; - } - } - return r; - } - function to_list(a){ - var i$1 = a.length - 1 - 1 | 0, i = i$1, res = 0; - for(;;){ - if(0 > i) return res; - var res$0 = [0, a[1 + i], res], i$0 = i - 1 | 0, i = i$0, res = res$0; - } - } - function list_length(accu, param){ - var accu$0 = accu, param$0 = param; - for(;;){ - if(! param$0) return accu$0; - var - t = param$0[2], - accu$1 = accu$0 + 1 | 0, - accu$0 = accu$1, - param$0 = t; - } - } - function of_list(l){ - if(! l) return [0]; - var - tl = l[2], - hd = l[1], - a = caml_make_vect(list_length(0, l), hd), - i = 1, - param = tl; - for(;;){ - if(! param) return a; - var tl$0 = param[2], hd$0 = param[1]; - a[1 + i] = hd$0; - var i$0 = i + 1 | 0, i = i$0, param = tl$0; - } - } - function fold_left(f, x, a){ - var r = [0, x], _W_ = a.length - 1 - 1 | 0, _V_ = 0; - if(_W_ >= 0){ - var i = _V_; - for(;;){ - r[1] = caml_call2(f, r[1], a[1 + i]); - var _X_ = i + 1 | 0; - if(_W_ !== i){var i = _X_; continue;} - break; - } - } - return r[1]; - } - function fold_left_map(f, acc, input_array){ - var len = input_array.length - 1; - if(0 === len) return [0, acc, [0]]; - var - match = caml_call2(f, acc, input_array[1]), - elt = match[2], - acc$0 = match[1], - output_array = caml_make_vect(len, elt), - acc$1 = [0, acc$0], - _T_ = len - 1 | 0, - _S_ = 1; - if(_T_ >= 1){ - var i = _S_; - for(;;){ - var - match$0 = caml_call2(f, acc$1[1], input_array[1 + i]), - elt$0 = match$0[2], - acc$2 = match$0[1]; - acc$1[1] = acc$2; - output_array[1 + i] = elt$0; - var _U_ = i + 1 | 0; - if(_T_ !== i){var i = _U_; continue;} - break; - } - } - return [0, acc$1[1], output_array]; - } - function fold_right(f, a, x){ - var r = [0, x], _Q_ = a.length - 1 - 1 | 0; - if(_Q_ >= 0){ - var i = _Q_; - for(;;){ - r[1] = caml_call2(f, a[1 + i], r[1]); - var _R_ = i - 1 | 0; - if(0 !== i){var i = _R_; continue;} - break; - } - } - return r[1]; - } - function exists(p, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 0; - if(caml_call1(p, a[1 + i])) return 1; - var i$0 = i + 1 | 0, i = i$0; - } - } - function for_all(p, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 1; - if(! caml_call1(p, a[1 + i])) return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function for_all2(p, l1, l2){ - var n1 = l1.length - 1, n2 = l2.length - 1; - if(n1 !== n2) return caml_call1(Stdlib[1], cst_Array_for_all2); - var i = 0; - for(;;){ - if(i === n1) return 1; - if(! caml_call2(p, l1[1 + i], l2[1 + i])) return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function exists2(p, l1, l2){ - var n1 = l1.length - 1, n2 = l2.length - 1; - if(n1 !== n2) return caml_call1(Stdlib[1], cst_Array_exists2); - var i = 0; - for(;;){ - if(i === n1) return 0; - if(caml_call2(p, l1[1 + i], l2[1 + i])) return 1; - var i$0 = i + 1 | 0, i = i$0; - } - } - function mem(x, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 0; - if(0 === runtime.caml_compare(a[1 + i], x)) return 1; - var i$0 = i + 1 | 0, i = i$0; - } - } - function memq(x, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 0; - if(x === a[1 + i]) return 1; - var i$0 = i + 1 | 0, i = i$0; - } - } - function find_opt(p, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 0; - var x = a[1 + i]; - if(caml_call1(p, x)) return [0, x]; - var i$0 = i + 1 | 0, i = i$0; - } - } - function find_map(f, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 0; - var r = caml_call1(f, a[1 + i]); - if(r) return r; - var i$0 = i + 1 | 0, i = i$0; - } - } - function split(x){ - if(runtime.caml_equal(x, [0])) return [0, [0], [0]]; - var - match = x[1], - b0 = match[2], - a0 = match[1], - n = x.length - 1, - a = caml_make_vect(n, a0), - b = caml_make_vect(n, b0), - _O_ = n - 1 | 0, - _N_ = 1; - if(_O_ >= 1){ - var i = _N_; - for(;;){ - var match$0 = x[1 + i], bi = match$0[2], ai = match$0[1]; - a[1 + i] = ai; - b[1 + i] = bi; - var _P_ = i + 1 | 0; - if(_O_ !== i){var i = _P_; continue;} - break; - } - } - return [0, a, b]; - } - function combine(a, b){ - var na = a.length - 1, nb = b.length - 1; - if(na !== nb) caml_call1(Stdlib[1], cst_Array_combine); - if(0 === na) return [0]; - var x = caml_make_vect(na, [0, a[1], b[1]]), _L_ = na - 1 | 0, _K_ = 1; - if(_L_ >= 1){ - var i = _K_; - for(;;){ - x[1 + i] = [0, a[1 + i], b[1 + i]]; - var _M_ = i + 1 | 0; - if(_L_ !== i){var i = _M_; continue;} - break; - } - } - return x; - } - var Bottom = [248, cst_Stdlib_Array_Bottom, runtime.caml_fresh_oo_id(0)]; - function sort(cmp, a){ - function maxson(l, i){ - var i31 = ((i + i | 0) + i | 0) + 1 | 0, x = [0, i31]; - if((i31 + 2 | 0) < l){ - var _D_ = i31 + 1 | 0, _E_ = caml_check_bound(a, _D_)[1 + _D_]; - if(caml_call2(cmp, caml_check_bound(a, i31)[1 + i31], _E_) < 0) - x[1] = i31 + 1 | 0; - var - _F_ = i31 + 2 | 0, - _G_ = caml_check_bound(a, _F_)[1 + _F_], - _H_ = x[1]; - if(caml_call2(cmp, caml_check_bound(a, _H_)[1 + _H_], _G_) < 0) - x[1] = i31 + 2 | 0; - return x[1]; - } - if((i31 + 1 | 0) < l){ - var _I_ = i31 + 1 | 0, _J_ = caml_check_bound(a, _I_)[1 + _I_]; - if(0 > caml_call2(cmp, caml_check_bound(a, i31)[1 + i31], _J_)) - return i31 + 1 | 0; - } - if(i31 < l) return i31; - throw caml_maybe_attach_backtrace([0, Bottom, i], 1); - } - var l = a.length - 1, _x_ = ((l + 1 | 0) / 3 | 0) - 1 | 0; - if(_x_ >= 0){ - var i$6 = _x_; - for(;;){ - var e$1 = caml_check_bound(a, i$6)[1 + i$6]; - try{ - var i = i$6; - for(;;){ - var j = maxson(l, i); - if(0 < caml_call2(cmp, caml_check_bound(a, j)[1 + j], e$1)){ - var _u_ = caml_check_bound(a, j)[1 + j]; - caml_check_bound(a, i)[1 + i] = _u_; - var i = j; - continue; - } - caml_check_bound(a, i)[1 + i] = e$1; - break; - } - } - catch(exn$0){ - var exn = caml_wrap_exception(exn$0); - if(exn[1] !== Bottom) throw caml_maybe_attach_backtrace(exn, 0); - var i$0 = exn[2]; - caml_check_bound(a, i$0)[1 + i$0] = e$1; - } - var _C_ = i$6 - 1 | 0; - if(0 !== i$6){var i$6 = _C_; continue;} - break; - } - } - var _y_ = l - 1 | 0; - if(_y_ >= 2){ - var i$4 = _y_; - a: - for(;;){ - var e$0 = caml_check_bound(a, i$4)[1 + i$4]; - a[1 + i$4] = caml_check_bound(a, 0)[1]; - var i$5 = 0; - try{ - var i$1 = i$5; - for(;;){ - var j$0 = maxson(i$4, i$1), _v_ = caml_check_bound(a, j$0)[1 + j$0]; - caml_check_bound(a, i$1)[1 + i$1] = _v_; - var i$1 = j$0; - } - } - catch(exn){ - var exn$0 = caml_wrap_exception(exn); - if(exn$0[1] !== Bottom) throw caml_maybe_attach_backtrace(exn$0, 0); - var i$2 = exn$0[2], i$3 = i$2; - for(;;){ - var father = (i$3 - 1 | 0) / 3 | 0; - if(i$3 === father) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - if(0 <= caml_call2(cmp, caml_check_bound(a, father)[1 + father], e$0)) - caml_check_bound(a, i$3)[1 + i$3] = e$0; - else{ - var _w_ = caml_check_bound(a, father)[1 + father]; - caml_check_bound(a, i$3)[1 + i$3] = _w_; - if(0 < father){var i$3 = father; continue;} - caml_check_bound(a, 0)[1] = e$0; - } - var _B_ = i$4 - 1 | 0; - if(2 !== i$4){var i$4 = _B_; continue a;} - break; - } - } - break; - } - } - var _z_ = 1 < l ? 1 : 0; - if(_z_){ - var e = caml_check_bound(a, 1)[2]; - a[2] = caml_check_bound(a, 0)[1]; - a[1] = e; - var _A_ = 0; - } - else - var _A_ = _z_; - return _A_; - } - function stable_sort(cmp, a){ - function merge(src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs){ - var - src1r = src1ofs + src1len | 0, - src2r = src2ofs + src2len | 0, - s2$1 = caml_check_bound(src2, src2ofs)[1 + src2ofs], - s1$1 = caml_check_bound(a, src1ofs)[1 + src1ofs], - i1 = src1ofs, - s1 = s1$1, - i2 = src2ofs, - s2 = s2$1, - d = dstofs; - for(;;){ - if(0 < caml_call2(cmp, s1, s2)){ - caml_check_bound(dst, d)[1 + d] = s2; - var i2$0 = i2 + 1 | 0; - if(i2$0 >= src2r) return blit(a, i1, dst, d + 1 | 0, src1r - i1 | 0); - var - d$0 = d + 1 | 0, - s2$0 = caml_check_bound(src2, i2$0)[1 + i2$0], - i2 = i2$0, - s2 = s2$0, - d = d$0; - continue; - } - caml_check_bound(dst, d)[1 + d] = s1; - var i1$0 = i1 + 1 | 0; - if(i1$0 >= src1r) return blit(src2, i2, dst, d + 1 | 0, src2r - i2 | 0); - var - d$1 = d + 1 | 0, - s1$0 = caml_check_bound(a, i1$0)[1 + i1$0], - i1 = i1$0, - s1 = s1$0, - d = d$1; - } - } - function isortto(srcofs, dst, dstofs, len){ - var _m_ = len - 1 | 0, _l_ = 0; - if(_m_ >= 0){ - var i = _l_; - a: - for(;;){ - var - _n_ = srcofs + i | 0, - e = caml_check_bound(a, _n_)[1 + _n_], - j = [0, (dstofs + i | 0) - 1 | 0]; - for(;;){ - if(dstofs <= j[1]){ - var _o_ = j[1]; - if(0 < caml_call2(cmp, caml_check_bound(dst, _o_)[1 + _o_], e)){ - var - _p_ = j[1], - _q_ = caml_check_bound(dst, _p_)[1 + _p_], - _r_ = j[1] + 1 | 0; - caml_check_bound(dst, _r_)[1 + _r_] = _q_; - j[1] += -1; - continue; - } - } - var _s_ = j[1] + 1 | 0; - caml_check_bound(dst, _s_)[1 + _s_] = e; - var _t_ = i + 1 | 0; - if(_m_ !== i){var i = _t_; continue a;} - break; - } - break; - } - } - return 0; - } - function sortto(srcofs, dst, dstofs, len){ - if(len <= 5) return isortto(srcofs, dst, dstofs, len); - var l1 = len / 2 | 0, l2 = len - l1 | 0; - sortto(srcofs + l1 | 0, dst, dstofs + l1 | 0, l2); - sortto(srcofs, a, srcofs + l2 | 0, l1); - return merge(srcofs + l2 | 0, l1, dst, dstofs + l1 | 0, l2, dst, dstofs); - } - var l = a.length - 1; - if(l <= 5) return isortto(0, a, 0, l); - var - l1 = l / 2 | 0, - l2 = l - l1 | 0, - t = caml_make_vect(l2, caml_check_bound(a, 0)[1]); - sortto(l1, t, 0, l2); - sortto(0, a, l2, l1); - return merge(l2, l1, t, 0, l2, a, 0); - } - function to_seq(a){ - function aux(i, param){ - if(i >= a.length - 1) return 0; - var x = a[1 + i], _j_ = i + 1 | 0; - return [0, x, function(_k_){return aux(_j_, _k_);}]; - } - var _h_ = 0; - return function(_i_){return aux(_h_, _i_);}; - } - function to_seqi(a){ - function aux(i, param){ - if(i >= a.length - 1) return 0; - var x = a[1 + i], _f_ = i + 1 | 0; - return [0, [0, i, x], function(_g_){return aux(_f_, _g_);}]; - } - var _d_ = 0; - return function(_e_){return aux(_d_, _e_);}; - } - function of_seq(i$2){ - var _b_ = 0; - function _c_(acc, x){return [0, x, acc];} - var l = caml_call3(Stdlib_Seq[5], _c_, _b_, i$2); - if(! l) return [0]; - var - tl = l[2], - hd = l[1], - len = list_length(0, l), - a = caml_make_vect(len, hd), - i$1 = len - 2 | 0, - i = i$1, - param = tl; - for(;;){ - if(! param) return a; - var tl$0 = param[2], hd$0 = param[1]; - a[1 + i] = hd$0; - var i$0 = i - 1 | 0, i = i$0, param = tl$0; - } - } - var - Stdlib_Array = - [0, - make_float, - init, - make_matrix, - make_matrix, - append, - runtime.caml_array_concat, - sub, - copy, - fill, - blit, - to_list, - of_list, - iter, - iteri, - map, - mapi, - fold_left, - fold_left_map, - fold_right, - iter2, - map2, - for_all, - exists, - for_all2, - exists2, - mem, - memq, - find_opt, - find_map, - split, - combine, - sort, - stable_sort, - stable_sort, - to_seq, - to_seqi, - of_seq, - Floatarray]; - runtime.caml_register_global(14, Stdlib_Array, "Stdlib__Array"); - return; - } - (globalThis)); - -//# 6998 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_greaterequal = runtime.caml_greaterequal, - caml_int_compare = runtime.caml_int_compare, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_mul = runtime.caml_mul, - caml_wrap_exception = runtime.caml_wrap_exception, - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Sys = global_data.Stdlib__Sys, - Assert_failure = global_data.Assert_failure, - _b_ = [0, "int32.ml", 69, 6], - zero = 0, - one = 1, - minus_one = -1; - function succ(n){return n + 1 | 0;} - function pred(n){return n - 1 | 0;} - function abs(n){return caml_greaterequal(n, 0) ? n : - n | 0;} - var min_int = -2147483648, max_int = 2147483647; - function lognot(n){return n ^ -1;} - var _a_ = Stdlib_Sys[9]; - if(32 === _a_) - var - max_int$0 = Stdlib[19], - unsigned_to_int = - function(n){ - if(0 >= caml_int_compare(0, n) && 0 >= caml_int_compare(n, max_int$0)) - return [0, n]; - return 0; - }; - else{ - if(64 !== _a_) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - var unsigned_to_int = function(n){return [0, n & -1];}; - } - function to_string(n){return runtime.caml_format_int("%d", n);} - function of_string_opt(s){ - try{var _d_ = [0, runtime.caml_int_of_string(s)]; return _d_;} - catch(_e_){ - var _c_ = caml_wrap_exception(_e_); - if(_c_[1] === Stdlib[7]) return 0; - throw caml_maybe_attach_backtrace(_c_, 0); - } - } - var compare = caml_int_compare; - function equal(x, y){return 0 === caml_int_compare(x, y) ? 1 : 0;} - function unsigned_compare(n, m){ - return caml_int_compare(n + 2147483648 | 0, m + 2147483648 | 0); - } - function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} - function max(x, y){return caml_greaterequal(x, y) ? x : y;} - function unsigned_div(n, d){ - if(runtime.caml_lessthan(d, 0)) - return 0 <= unsigned_compare(n, d) ? one : zero; - var q = runtime.caml_div(n >>> 1 | 0, d) << 1, r = n - caml_mul(q, d) | 0; - return 0 <= unsigned_compare(r, d) ? q + 1 | 0 : q; - } - function unsigned_rem(n, d){ - return n - caml_mul(unsigned_div(n, d), d) | 0; - } - var - Stdlib_Int32 = - [0, - zero, - one, - minus_one, - unsigned_div, - unsigned_rem, - succ, - pred, - abs, - max_int, - min_int, - lognot, - unsigned_to_int, - of_string_opt, - to_string, - compare, - unsigned_compare, - equal, - min, - max]; - runtime.caml_register_global(14, Stdlib_Int32, "Stdlib__Int32"); - return; - } - (globalThis)); - -//# 7090 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_greaterequal = runtime.caml_greaterequal, - caml_int64_compare = runtime.caml_int64_compare, - caml_int64_mul = runtime.caml_int64_mul, - caml_int64_sub = runtime.caml_int64_sub, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_wrap_exception = runtime.caml_wrap_exception, - global_data = runtime.caml_get_global_data(), - zero = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), - one = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), - minus_one = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535), - min_int = runtime.caml_int64_create_lo_mi_hi(0, 0, 32768), - max_int = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32767), - Stdlib = global_data.Stdlib, - _d_ = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535), - _c_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), - _b_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), - _a_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0); - function succ(n){return runtime.caml_int64_add(n, _a_);} - function pred(n){return caml_int64_sub(n, _b_);} - function abs(n){ - return caml_greaterequal(n, _c_) ? n : runtime.caml_int64_neg(n); - } - function lognot(n){return runtime.caml_int64_xor(n, _d_);} - var max_int$0 = runtime.caml_int64_of_int32(Stdlib[19]); - function unsigned_to_int(n){ - if - (0 >= caml_int64_compare(zero, n) - && 0 >= caml_int64_compare(n, max_int$0)) - return [0, runtime.caml_int64_to_int32(n)]; - return 0; - } - function to_string(n){return runtime.caml_int64_format("%d", n);} - function of_string_opt(s){ - try{var _f_ = [0, runtime.caml_int64_of_string(s)]; return _f_;} - catch(_g_){ - var _e_ = caml_wrap_exception(_g_); - if(_e_[1] === Stdlib[7]) return 0; - throw caml_maybe_attach_backtrace(_e_, 0); - } - } - function compare(x, y){return caml_int64_compare(x, y);} - function equal(x, y){return 0 === caml_int64_compare(x, y) ? 1 : 0;} - function unsigned_compare(n, m){ - return caml_int64_compare - (caml_int64_sub(n, min_int), caml_int64_sub(m, min_int)); - } - function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} - function max(x, y){return caml_greaterequal(x, y) ? x : y;} - function unsigned_div(n, d){ - if(runtime.caml_lessthan(d, zero)) - return 0 <= unsigned_compare(n, d) ? one : zero; - var - q = - runtime.caml_int64_shift_left - (runtime.caml_int64_div - (runtime.caml_int64_shift_right_unsigned(n, 1), d), - 1), - r = caml_int64_sub(n, caml_int64_mul(q, d)); - return 0 <= unsigned_compare(r, d) ? succ(q) : q; - } - function unsigned_rem(n, d){ - return caml_int64_sub(n, caml_int64_mul(unsigned_div(n, d), d)); - } - var - Stdlib_Int64 = - [0, - zero, - one, - minus_one, - unsigned_div, - unsigned_rem, - succ, - pred, - abs, - max_int, - min_int, - lognot, - unsigned_to_int, - of_string_opt, - to_string, - compare, - unsigned_compare, - equal, - min, - max]; - runtime.caml_register_global(11, Stdlib_Int64, "Stdlib__Int64"); - return; - } - (globalThis)); - -//# 7187 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_greaterequal = runtime.caml_greaterequal, - caml_int_compare = runtime.caml_int_compare, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_mul = runtime.caml_mul, - caml_wrap_exception = runtime.caml_wrap_exception, - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Sys = global_data.Stdlib__Sys, - zero = 0, - one = 1, - minus_one = -1; - function succ(n){return n + 1 | 0;} - function pred(n){return n - 1 | 0;} - function abs(n){return caml_greaterequal(n, 0) ? n : - n | 0;} - var - size = Stdlib_Sys[9], - min_int = 1 << (size - 1 | 0), - max_int = min_int - 1 | 0; - function lognot(n){return n ^ -1;} - var max_int$0 = Stdlib[19]; - function unsigned_to_int(n){ - if(0 >= caml_int_compare(0, n) && 0 >= caml_int_compare(n, max_int$0)) - return [0, n]; - return 0; - } - function to_string(n){return runtime.caml_format_int("%d", n);} - function of_string_opt(s){ - try{var _b_ = [0, runtime.caml_int_of_string(s)]; return _b_;} - catch(_c_){ - var _a_ = caml_wrap_exception(_c_); - if(_a_[1] === Stdlib[7]) return 0; - throw caml_maybe_attach_backtrace(_a_, 0); - } - } - var compare = caml_int_compare; - function equal(x, y){return 0 === caml_int_compare(x, y) ? 1 : 0;} - function unsigned_compare(n, m){ - return caml_int_compare(n - min_int | 0, m - min_int | 0); - } - function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} - function max(x, y){return caml_greaterequal(x, y) ? x : y;} - function unsigned_div(n, d){ - if(runtime.caml_lessthan(d, 0)) - return 0 <= unsigned_compare(n, d) ? one : zero; - var q = runtime.caml_div(n >>> 1 | 0, d) << 1, r = n - caml_mul(q, d) | 0; - return 0 <= unsigned_compare(r, d) ? q + 1 | 0 : q; - } - function unsigned_rem(n, d){ - return n - caml_mul(unsigned_div(n, d), d) | 0; - } - var - Stdlib_Nativeint = - [0, - zero, - one, - minus_one, - unsigned_div, - unsigned_rem, - succ, - pred, - abs, - size, - max_int, - min_int, - lognot, - unsigned_to_int, - of_string_opt, - to_string, - compare, - unsigned_compare, - equal, - min, - max]; - runtime.caml_register_global(12, Stdlib_Nativeint, "Stdlib__Nativeint"); - return; - } - (globalThis)); - -//# 7272 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst = "", - caml_bytes_get = runtime.caml_bytes_get, - caml_check_bound = runtime.caml_check_bound, - caml_create_bytes = runtime.caml_create_bytes, - caml_ml_bytes_length = runtime.caml_ml_bytes_length; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - dummy_pos = [0, cst, 0, 0, -1], - zero_pos = [0, cst, 1, 0, 0], - Stdlib_Bytes = global_data.Stdlib__Bytes, - Stdlib = global_data.Stdlib, - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib_Int = global_data.Stdlib__Int, - cst_Lexing_lex_refill_cannot_g = "Lexing.lex_refill: cannot grow buffer"; - function engine(tbl, state, buf){ - var - result = runtime.caml_lex_engine(tbl, state, buf), - _F_ = 0 <= result ? 1 : 0, - _G_ = _F_ ? buf[12] !== dummy_pos ? 1 : 0 : _F_; - if(_G_){ - buf[11] = buf[12]; - var _H_ = buf[12]; - buf[12] = [0, _H_[1], _H_[2], _H_[3], buf[4] + buf[6] | 0]; - } - return result; - } - function new_engine(tbl, state, buf){ - var - result = runtime.caml_new_lex_engine(tbl, state, buf), - _C_ = 0 <= result ? 1 : 0, - _D_ = _C_ ? buf[12] !== dummy_pos ? 1 : 0 : _C_; - if(_D_){ - buf[11] = buf[12]; - var _E_ = buf[12]; - buf[12] = [0, _E_[1], _E_[2], _E_[3], buf[4] + buf[6] | 0]; - } - return result; - } - function from_function(opt, read_fun){ - if(opt) - var sth = opt[1], with_positions = sth; - else - var with_positions = 1; - var - _o_ = with_positions ? zero_pos : dummy_pos, - _p_ = with_positions ? zero_pos : dummy_pos, - aux_buffer = caml_create_bytes(512), - _q_ = [0], - _r_ = 0, - _s_ = 0, - _t_ = 0, - _u_ = 0, - _v_ = 0, - _w_ = 0, - _x_ = 0, - _y_ = caml_create_bytes(1024); - return [0, - function(lexbuf){ - var - read = - caml_call2 - (read_fun, aux_buffer, caml_ml_bytes_length(aux_buffer)), - n = 0 < read ? read : (lexbuf[9] = 1, 0); - if(caml_ml_bytes_length(lexbuf[2]) < (lexbuf[3] + n | 0)){ - if - (((lexbuf[3] - lexbuf[5] | 0) + n | 0) - <= caml_ml_bytes_length(lexbuf[2])) - caml_call5 - (Stdlib_Bytes[11], - lexbuf[2], - lexbuf[5], - lexbuf[2], - 0, - lexbuf[3] - lexbuf[5] | 0); - else{ - var - newlen = - caml_call2 - (Stdlib_Int[10], - 2 * caml_ml_bytes_length(lexbuf[2]) | 0, - Stdlib_Sys[12]); - if(newlen < ((lexbuf[3] - lexbuf[5] | 0) + n | 0)) - caml_call1(Stdlib[2], cst_Lexing_lex_refill_cannot_g); - var newbuf = caml_create_bytes(newlen); - caml_call5 - (Stdlib_Bytes[11], - lexbuf[2], - lexbuf[5], - newbuf, - 0, - lexbuf[3] - lexbuf[5] | 0); - lexbuf[2] = newbuf; - } - var s = lexbuf[5]; - lexbuf[4] = lexbuf[4] + s | 0; - lexbuf[6] = lexbuf[6] - s | 0; - lexbuf[5] = 0; - lexbuf[7] = lexbuf[7] - s | 0; - lexbuf[3] = lexbuf[3] - s | 0; - var t = lexbuf[10], _A_ = t.length - 1 - 1 | 0, _z_ = 0; - if(_A_ >= 0){ - var i = _z_; - for(;;){ - var v = caml_check_bound(t, i)[1 + i]; - if(0 <= v) caml_check_bound(t, i)[1 + i] = v - s | 0; - var _B_ = i + 1 | 0; - if(_A_ !== i){var i = _B_; continue;} - break; - } - } - } - caml_call5 - (Stdlib_Bytes[11], aux_buffer, 0, lexbuf[2], lexbuf[3], n); - lexbuf[3] = lexbuf[3] + n | 0; - return 0; - }, - _y_, - _x_, - _w_, - _v_, - _u_, - _t_, - _s_, - _r_, - _q_, - _p_, - _o_]; - } - function from_channel(with_positions, ic){ - return from_function - (with_positions, - function(buf, n){return caml_call4(Stdlib[84], ic, buf, 0, n);}); - } - function from_string(opt, s){ - if(opt) - var sth = opt[1], with_positions = sth; - else - var with_positions = 1; - var - _d_ = with_positions ? zero_pos : dummy_pos, - _e_ = with_positions ? zero_pos : dummy_pos, - _f_ = [0], - _g_ = 1, - _h_ = 0, - _i_ = 0, - _j_ = 0, - _k_ = 0, - _l_ = 0, - _m_ = runtime.caml_ml_string_length(s), - _n_ = caml_call1(Stdlib_Bytes[5], s); - return [0, - function(lexbuf){lexbuf[9] = 1; return 0;}, - _n_, - _m_, - _l_, - _k_, - _j_, - _i_, - _h_, - _g_, - _f_, - _e_, - _d_]; - } - function set_position(lexbuf, position){ - lexbuf[12] = [0, lexbuf[12][1], position[2], position[3], position[4]]; - lexbuf[4] = position[4]; - return 0; - } - function set_filename(lexbuf, fname){ - var _c_ = lexbuf[12]; - lexbuf[12] = [0, fname, _c_[2], _c_[3], _c_[4]]; - return 0; - } - function with_positions(lexbuf){return lexbuf[12] !== dummy_pos ? 1 : 0;} - function lexeme(lexbuf){ - var len = lexbuf[6] - lexbuf[5] | 0; - return caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len); - } - function sub_lexeme(lexbuf, i1, i2){ - var len = i2 - i1 | 0; - return caml_call3(Stdlib_Bytes[8], lexbuf[2], i1, len); - } - function sub_lexeme_opt(lexbuf, i1, i2){ - if(0 > i1) return 0; - var len = i2 - i1 | 0; - return [0, caml_call3(Stdlib_Bytes[8], lexbuf[2], i1, len)]; - } - function sub_lexeme_char(lexbuf, i){return caml_bytes_get(lexbuf[2], i);} - function sub_lexeme_char_opt(lexbuf, i){ - return 0 <= i ? [0, caml_bytes_get(lexbuf[2], i)] : 0; - } - function lexeme_char(lexbuf, i){ - return caml_bytes_get(lexbuf[2], lexbuf[5] + i | 0); - } - function lexeme_start(lexbuf){return lexbuf[11][4];} - function lexeme_end(lexbuf){return lexbuf[12][4];} - function lexeme_start_p(lexbuf){return lexbuf[11];} - function lexeme_end_p(lexbuf){return lexbuf[12];} - function new_line(lexbuf){ - var - lcp = lexbuf[12], - _a_ = lcp !== dummy_pos ? 1 : 0, - _b_ = - _a_ - ? (lexbuf[12] = [0, lcp[1], lcp[2] + 1 | 0, lcp[4], lcp[4]], 0) - : _a_; - return _b_; - } - function flush_input(lb){ - lb[6] = 0; - lb[4] = 0; - var lcp = lb[12]; - if(lcp !== dummy_pos) - lb[12] = [0, lcp[1], zero_pos[2], zero_pos[3], zero_pos[4]]; - lb[3] = 0; - return 0; - } - var - Stdlib_Lexing = - [0, - dummy_pos, - from_channel, - from_string, - from_function, - set_position, - set_filename, - with_positions, - lexeme, - lexeme_char, - lexeme_start, - lexeme_end, - lexeme_start_p, - lexeme_end_p, - new_line, - flush_input, - sub_lexeme, - sub_lexeme_opt, - sub_lexeme_char, - sub_lexeme_char_opt, - engine, - new_engine]; - runtime.caml_register_global(7, Stdlib_Lexing, "Stdlib__Lexing"); - return; - } - (globalThis)); - -//# 7763 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_Set_bal$3 = "Set.bal", - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib_List = global_data.Stdlib__List, - Assert_failure = global_data.Assert_failure, - cst_Set_remove_min_elt = "Set.remove_min_elt", - _a_ = [0, 0, 0, 0], - _b_ = [0, 0, 0], - _c_ = [0, "set.ml", 570, 18], - cst_Set_bal = cst_Set_bal$3, - cst_Set_bal$0 = cst_Set_bal$3, - cst_Set_bal$1 = cst_Set_bal$3, - cst_Set_bal$2 = cst_Set_bal$3, - Stdlib_Set = - [0, - function(Ord){ - function height(param){ - if(! param) return 0; - var h = param[4]; - return h; - } - function create(l, v, r){ - if(l) var h = l[4], hl = h; else var hl = 0; - if(r) var h$0 = r[4], hr = h$0; else var hr = 0; - var _Z_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - return [0, l, v, r, _Z_]; - } - function bal(l, v, r){ - if(l) var h = l[4], hl = h; else var hl = 0; - if(r) var h$0 = r[4], hr = h$0; else var hr = 0; - if((hr + 2 | 0) < hl){ - if(! l) return caml_call1(Stdlib[1], cst_Set_bal$0); - var lr = l[3], lv = l[2], ll = l[1], _U_ = height(lr); - if(_U_ <= height(ll)) return create(ll, lv, create(lr, v, r)); - if(! lr) return caml_call1(Stdlib[1], cst_Set_bal); - var lrr = lr[3], lrv = lr[2], lrl = lr[1], _V_ = create(lrr, v, r); - return create(create(ll, lv, lrl), lrv, _V_); - } - if((hl + 2 | 0) >= hr){ - var _Y_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - return [0, l, v, r, _Y_]; - } - if(! r) return caml_call1(Stdlib[1], cst_Set_bal$2); - var rr = r[3], rv = r[2], rl = r[1], _W_ = height(rl); - if(_W_ <= height(rr)) return create(create(l, v, rl), rv, rr); - if(! rl) return caml_call1(Stdlib[1], cst_Set_bal$1); - var rlr = rl[3], rlv = rl[2], rll = rl[1], _X_ = create(rlr, rv, rr); - return create(create(l, v, rll), rlv, _X_); - } - function add(x, t){ - if(! t) return [0, 0, x, 0, 1]; - var r = t[3], v = t[2], l = t[1], c = caml_call2(Ord[1], x, v); - if(0 === c) return t; - if(0 <= c){var rr = add(x, r); return r === rr ? t : bal(l, v, rr);} - var ll = add(x, l); - return l === ll ? t : bal(ll, v, r); - } - function singleton(x){return [0, 0, x, 0, 1];} - function add_min_element(x, param){ - if(! param) return singleton(x); - var r = param[3], v = param[2], l = param[1]; - return bal(add_min_element(x, l), v, r); - } - function add_max_element(x, param){ - if(! param) return singleton(x); - var r = param[3], v = param[2], l = param[1]; - return bal(l, v, add_max_element(x, r)); - } - function join(l, v, r){ - if(! l) return add_min_element(v, r); - if(! r) return add_max_element(v, l); - var - rh = r[4], - rr = r[3], - rv = r[2], - rl = r[1], - lh = l[4], - lr = l[3], - lv = l[2], - ll = l[1]; - return (rh + 2 | 0) < lh - ? bal(ll, lv, join(lr, v, r)) - : (lh - + 2 - | 0) - < rh - ? bal(join(l, v, rl), rv, rr) - : create(l, v, r); - } - function min_elt(param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var l = param$0[1]; - if(l){var param$0 = l; continue;} - var v = param$0[2]; - return v; - } - } - function min_elt_opt(param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[1]; - if(l){var param$0 = l; continue;} - var v = param$0[2]; - return [0, v]; - } - } - function max_elt(param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(param$0[3]){var r = param$0[3], param$0 = r; continue;} - var v = param$0[2]; - return v; - } - } - function max_elt_opt(param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - if(param$0[3]){var r = param$0[3], param$0 = r; continue;} - var v = param$0[2]; - return [0, v]; - } - } - function remove_min_elt(param){ - if(! param) return caml_call1(Stdlib[1], cst_Set_remove_min_elt); - var l = param[1]; - if(l){ - var r = param[3], v = param[2]; - return bal(remove_min_elt(l), v, r); - } - var r$0 = param[3]; - return r$0; - } - function concat(t1, t2){ - if(! t1) return t2; - if(! t2) return t1; - var _T_ = remove_min_elt(t2); - return join(t1, min_elt(t2), _T_); - } - function split(x, param){ - if(! param) return _a_; - var - r = param[3], - v = param[2], - l = param[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return [0, l, 1, r]; - if(0 <= c){ - var - match = split(x, r), - rr = match[3], - pres = match[2], - lr = match[1]; - return [0, join(l, v, lr), pres, rr]; - } - var - match$0 = split(x, l), - rl = match$0[3], - pres$0 = match$0[2], - ll = match$0[1]; - return [0, ll, pres$0, join(rl, v, r)]; - } - var empty = 0; - function is_empty(param){return param ? 0 : 1;} - function mem(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - r = param$0[3], - v = param$0[2], - l = param$0[1], - c = caml_call2(Ord[1], x, v), - _S_ = 0 === c ? 1 : 0; - if(_S_) return _S_; - var r$0 = 0 <= c ? r : l, param$0 = r$0; - } - } - function remove(x, t){ - if(! t) return 0; - var t2 = t[3], v = t[2], t1 = t[1], c = caml_call2(Ord[1], x, v); - if(0 === c){ - if(! t1) return t2; - if(! t2) return t1; - var _R_ = remove_min_elt(t2); - return bal(t1, min_elt(t2), _R_); - } - if(0 <= c){ - var rr = remove(x, t2); - return t2 === rr ? t : bal(t1, v, rr); - } - var ll = remove(x, t1); - return t1 === ll ? t : bal(ll, v, t2); - } - function union(s1, s2){ - if(! s1) return s2; - if(! s2) return s1; - var - h2 = s2[4], - r2 = s2[3], - v2 = s2[2], - l2 = s2[1], - h1 = s1[4], - r1 = s1[3], - v1 = s1[2], - l1 = s1[1]; - if(h2 <= h1){ - if(1 === h2) return add(v2, s1); - var - match = split(v1, s2), - r2$0 = match[3], - l2$0 = match[1], - _P_ = union(r1, r2$0); - return join(union(l1, l2$0), v1, _P_); - } - if(1 === h1) return add(v1, s2); - var - match$0 = split(v2, s1), - r1$0 = match$0[3], - l1$0 = match$0[1], - _Q_ = union(r1$0, r2); - return join(union(l1$0, l2), v2, _Q_); - } - function inter(s1, s2){ - if(! s1) return 0; - if(! s2) return 0; - var - r1 = s1[3], - v1 = s1[2], - l1 = s1[1], - _M_ = split(v1, s2), - l2 = _M_[1]; - if(_M_[2]){ - var r2 = _M_[3], _N_ = inter(r1, r2); - return join(inter(l1, l2), v1, _N_); - } - var r2$0 = _M_[3], _O_ = inter(r1, r2$0); - return concat(inter(l1, l2), _O_); - } - function split_bis(x, param){ - if(! param) return [0, 0, function(param){return 0;}]; - var - r = param[3], - v = param[2], - l = param[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return 0; - if(0 <= c){ - var match = split_bis(x, r); - if(! match) return 0; - var rr = match[2], lr = match[1]; - return [0, join(l, v, lr), rr]; - } - var match$0 = split_bis(x, l); - if(! match$0) return 0; - var rl = match$0[2], ll = match$0[1]; - return [0, - ll, - function(param){return join(caml_call1(rl, 0), v, r);}]; - } - function disjoint(s1, s2){ - var s1$0 = s1, s2$0 = s2; - for(;;){ - if(s1$0 && s2$0){ - var r1 = s1$0[3], v1 = s1$0[2], l1 = s1$0[1]; - if(s1$0 === s2$0) return 0; - var match = split_bis(v1, s2$0); - if(! match) return 0; - var r2 = match[2], l2 = match[1], _L_ = disjoint(l1, l2); - if(! _L_) return _L_; - var s2$1 = caml_call1(r2, 0), s1$0 = r1, s2$0 = s2$1; - continue; - } - return 1; - } - } - function diff(s1, s2){ - if(! s1) return 0; - if(! s2) return s1; - var - r1 = s1[3], - v1 = s1[2], - l1 = s1[1], - _I_ = split(v1, s2), - l2 = _I_[1]; - if(_I_[2]){ - var r2 = _I_[3], _J_ = diff(r1, r2); - return concat(diff(l1, l2), _J_); - } - var r2$0 = _I_[3], _K_ = diff(r1, r2$0); - return join(diff(l1, l2), v1, _K_); - } - function cons_enum(s, e){ - var s$0 = s, e$0 = e; - for(;;){ - if(! s$0) return e$0; - var - r = s$0[3], - v = s$0[2], - l = s$0[1], - e$1 = [0, v, r, e$0], - s$0 = l, - e$0 = e$1; - } - } - function compare(s1, s2){ - var - e2$2 = cons_enum(s2, 0), - e1$2 = cons_enum(s1, 0), - e1 = e1$2, - e2 = e2$2; - for(;;){ - if(! e1) return e2 ? -1 : 0; - if(! e2) return 1; - var - e2$0 = e2[3], - r2 = e2[2], - v2 = e2[1], - e1$0 = e1[3], - r1 = e1[2], - v1 = e1[1], - c = caml_call2(Ord[1], v1, v2); - if(0 !== c) return c; - var - e2$1 = cons_enum(r2, e2$0), - e1$1 = cons_enum(r1, e1$0), - e1 = e1$1, - e2 = e2$1; - } - } - function equal(s1, s2){return 0 === compare(s1, s2) ? 1 : 0;} - function subset(s1, s2){ - var s1$0 = s1, s2$0 = s2; - for(;;){ - if(! s1$0) return 1; - if(! s2$0) return 0; - var - r2 = s2$0[3], - v2 = s2$0[2], - l2 = s2$0[1], - r1 = s1$0[3], - v1 = s1$0[2], - l1 = s1$0[1], - c = caml_call2(Ord[1], v1, v2); - if(0 === c){ - var _F_ = subset(l1, l2); - if(! _F_) return _F_; - var s1$0 = r1, s2$0 = r2; - continue; - } - if(0 <= c){ - var _G_ = subset([0, 0, v1, r1, 0], r2); - if(! _G_) return _G_; - var s1$0 = l1; - continue; - } - var _H_ = subset([0, l1, v1, 0, 0], l2); - if(! _H_) return _H_; - var s1$0 = r1; - } - } - function iter(f, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var r = param$0[3], v = param$0[2], l = param$0[1]; - iter(f, l); - caml_call1(f, v); - var param$0 = r; - } - } - function fold(f, s, accu){ - var s$0 = s, accu$0 = accu; - for(;;){ - if(! s$0) return accu$0; - var - r = s$0[3], - v = s$0[2], - l = s$0[1], - accu$1 = caml_call2(f, v, fold(f, l, accu$0)), - s$0 = r, - accu$0 = accu$1; - } - } - function for_all(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 1; - var - r = param$0[3], - v = param$0[2], - l = param$0[1], - _C_ = caml_call1(p, v); - if(_C_){ - var _D_ = for_all(p, l); - if(_D_){var param$0 = r; continue;} - var _E_ = _D_; - } - else - var _E_ = _C_; - return _E_; - } - } - function exists(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - r = param$0[3], - v = param$0[2], - l = param$0[1], - _z_ = caml_call1(p, v); - if(_z_) - var _A_ = _z_; - else{ - var _B_ = exists(p, l); - if(! _B_){var param$0 = r; continue;} - var _A_ = _B_; - } - return _A_; - } - } - function filter(p, t){ - if(! t) return 0; - var - r = t[3], - v = t[2], - l = t[1], - l$0 = filter(p, l), - pv = caml_call1(p, v), - r$0 = filter(p, r); - if(! pv) return concat(l$0, r$0); - if(l === l$0 && r === r$0) return t; - return join(l$0, v, r$0); - } - function partition(p, param){ - if(! param) return _b_; - var - r = param[3], - v = param[2], - l = param[1], - match = partition(p, l), - lf = match[2], - lt = match[1], - pv = caml_call1(p, v), - match$0 = partition(p, r), - rf = match$0[2], - rt = match$0[1]; - if(pv){var _x_ = concat(lf, rf); return [0, join(lt, v, rt), _x_];} - var _y_ = join(lf, v, rf); - return [0, concat(lt, rt), _y_]; - } - function cardinal(param){ - if(! param) return 0; - var r = param[3], l = param[1], _w_ = cardinal(r); - return (cardinal(l) + 1 | 0) + _w_ | 0; - } - function elements_aux(accu, param){ - var accu$0 = accu, param$0 = param; - for(;;){ - if(! param$0) return accu$0; - var - r = param$0[3], - v = param$0[2], - l = param$0[1], - accu$1 = [0, v, elements_aux(accu$0, r)], - accu$0 = accu$1, - param$0 = l; - } - } - function elements(s){return elements_aux(0, s);} - function find(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - r = param$0[3], - v = param$0[2], - l = param$0[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return v; - var r$0 = 0 <= c ? r : l, param$0 = r$0; - } - } - function find_first(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} - var v0 = v0$1, param = l$0; - for(;;){ - if(! param) return v0; - var r = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){var v0 = v0$0, param = l; continue;} - var param = r; - } - } - } - function find_first_opt(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) return 0; - var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} - var v0 = v0$1, param = l$0; - for(;;){ - if(! param) return [0, v0]; - var r = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){var v0 = v0$0, param = l; continue;} - var param = r; - } - } - } - function find_last(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} - var v0 = v0$1, param = r$0; - for(;;){ - if(! param) return v0; - var r = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){var v0 = v0$0, param = r; continue;} - var param = l; - } - } - } - function find_last_opt(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) return 0; - var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} - var v0 = v0$1, param = r$0; - for(;;){ - if(! param) return [0, v0]; - var r = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){var v0 = v0$0, param = r; continue;} - var param = l; - } - } - } - function find_opt(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - r = param$0[3], - v = param$0[2], - l = param$0[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return [0, v]; - var r$0 = 0 <= c ? r : l, param$0 = r$0; - } - } - function try_join(l, v, r){ - var switch$0 = 0; - if(0 !== l){ - var _v_ = max_elt(l); - if(0 <= caml_call2(Ord[1], _v_, v)) switch$0 = 1; - } - if(! switch$0){ - var switch$1 = 0; - if(0 !== r){ - var _u_ = min_elt(r); - if(0 <= caml_call2(Ord[1], v, _u_)) switch$1 = 1; - } - if(! switch$1) return join(l, v, r); - } - return union(l, add(v, r)); - } - function map(f, t){ - if(! t) return 0; - var - r = t[3], - v = t[2], - l = t[1], - l$0 = map(f, l), - v$0 = caml_call1(f, v), - r$0 = map(f, r); - if(l === l$0 && v === v$0 && r === r$0) return t; - return try_join(l$0, v$0, r$0); - } - function filter_map(f, t){ - if(! t) return 0; - var - r = t[3], - v = t[2], - l = t[1], - t1 = filter_map(f, l), - v$0 = caml_call1(f, v), - t2 = filter_map(f, r); - if(v$0){ - var v$1 = v$0[1]; - if(l === t1 && v === v$1 && r === t2) return t; - return try_join(t1, v$1, t2); - } - if(! t1) return t2; - if(! t2) return t1; - var _t_ = remove_min_elt(t2); - return try_join(t1, min_elt(t2), _t_); - } - function of_list(l){ - if(! l) return empty; - var _o_ = l[2], x0 = l[1]; - if(! _o_) return singleton(x0); - var _p_ = _o_[2], x1 = _o_[1]; - if(! _p_) return add(x1, singleton(x0)); - var _q_ = _p_[2], x2 = _p_[1]; - if(! _q_) return add(x2, add(x1, singleton(x0))); - var _r_ = _q_[2], x3 = _q_[1]; - if(! _r_) return add(x3, add(x2, add(x1, singleton(x0)))); - if(_r_[2]){ - var - l$0 = caml_call2(Stdlib_List[59], Ord[1], l), - sub = - function(n, l){ - if(3 >= n >>> 0) - switch(n){ - case 0: - return [0, 0, l]; - case 1: - if(l){ - var l$3 = l[2], x0 = l[1]; - return [0, [0, 0, x0, 0, 1], l$3]; - } - break; - case 2: - if(l){ - var match$1 = l[2]; - if(match$1){ - var l$4 = match$1[2], x1 = match$1[1], x0$0 = l[1]; - return [0, [0, [0, 0, x0$0, 0, 1], x1, 0, 2], l$4]; - } - } - break; - default: - if(l){ - var _s_ = l[2]; - if(_s_){ - var match$2 = _s_[2]; - if(match$2){ - var - l$5 = match$2[2], - x2 = match$2[1], - x1$0 = _s_[1], - x0$1 = l[1]; - return [0, - [0, [0, 0, x0$1, 0, 1], x1$0, [0, 0, x2, 0, 1], 2], - l$5]; - } - } - } - } - var - nl = n / 2 | 0, - match = sub(nl, l), - l$0 = match[2], - left = match[1]; - if(! l$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - var - l$1 = l$0[2], - mid = l$0[1], - match$0 = sub((n - nl | 0) - 1 | 0, l$1), - l$2 = match$0[2], - right = match$0[1]; - return [0, create(left, mid, right), l$2]; - }; - return sub(caml_call1(Stdlib_List[1], l$0), l$0)[1]; - } - var x4 = _r_[1]; - return add(x4, add(x3, add(x2, add(x1, singleton(x0))))); - } - function add_seq(i, m){ - function _n_(s, x){return add(x, s);} - return caml_call3(Stdlib_Seq[5], _n_, m, i); - } - function of_seq(i){return add_seq(i, empty);} - function seq_of_enum(c, param){ - if(! c) return 0; - var rest = c[3], t = c[2], x = c[1], _l_ = cons_enum(t, rest); - return [0, x, function(_m_){return seq_of_enum(_l_, _m_);}]; - } - function to_seq(c){ - var _j_ = cons_enum(c, 0); - return function(_k_){return seq_of_enum(_j_, _k_);}; - } - function snoc_enum(s, e){ - var s$0 = s, e$0 = e; - for(;;){ - if(! s$0) return e$0; - var - r = s$0[3], - v = s$0[2], - l = s$0[1], - e$1 = [0, v, l, e$0], - s$0 = r, - e$0 = e$1; - } - } - function rev_seq_of_enum(c, param){ - if(! c) return 0; - var rest = c[3], t = c[2], x = c[1], _h_ = snoc_enum(t, rest); - return [0, x, function(_i_){return rev_seq_of_enum(_h_, _i_);}]; - } - function to_rev_seq(c){ - var _f_ = snoc_enum(c, 0); - return function(_g_){return rev_seq_of_enum(_f_, _g_);}; - } - function to_seq_from(low, s){ - var s$0 = s, c = 0; - for(;;){ - if(s$0){ - var - r = s$0[3], - v = s$0[2], - l = s$0[1], - n = caml_call2(Ord[1], v, low); - if(0 !== n){ - if(0 <= n){var c$0 = [0, v, r, c], s$0 = l, c = c$0; continue;} - var s$0 = r; - continue; - } - var _d_ = [0, v, r, c]; - } - else - var _d_ = c; - return function(_e_){return seq_of_enum(_d_, _e_);}; - } - } - return [0, - empty, - is_empty, - mem, - add, - singleton, - remove, - union, - inter, - disjoint, - diff, - compare, - equal, - subset, - iter, - map, - fold, - for_all, - exists, - filter, - filter_map, - partition, - cardinal, - elements, - min_elt, - min_elt_opt, - max_elt, - max_elt_opt, - min_elt, - min_elt_opt, - split, - find, - find_opt, - find_first, - find_first_opt, - find_last, - find_last_opt, - of_list, - to_seq_from, - to_seq, - to_rev_seq, - add_seq, - of_seq]; - }]; - runtime.caml_register_global(12, Stdlib_Set, "Stdlib__Set"); - return; - } - (globalThis)); - -//# 8574 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_Map_bal$3 = "Map.bal", - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Assert_failure = global_data.Assert_failure, - Stdlib_Seq = global_data.Stdlib__Seq, - cst_Map_remove_min_elt = "Map.remove_min_elt", - _a_ = [0, 0, 0, 0], - _b_ = [0, "map.ml", 400, 10], - _c_ = [0, 0, 0], - cst_Map_bal = cst_Map_bal$3, - cst_Map_bal$0 = cst_Map_bal$3, - cst_Map_bal$1 = cst_Map_bal$3, - cst_Map_bal$2 = cst_Map_bal$3, - Stdlib_Map = - [0, - function(Ord){ - function height(param){ - if(! param) return 0; - var h = param[5]; - return h; - } - function create(l, x, d, r){ - var - hl = height(l), - hr = height(r), - _L_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - return [0, l, x, d, r, _L_]; - } - function singleton(x, d){return [0, 0, x, d, 0, 1];} - function bal(l, x, d, r){ - if(l) var h = l[5], hl = h; else var hl = 0; - if(r) var h$0 = r[5], hr = h$0; else var hr = 0; - if((hr + 2 | 0) < hl){ - if(! l) return caml_call1(Stdlib[1], cst_Map_bal$0); - var lr = l[4], ld = l[3], lv = l[2], ll = l[1], _G_ = height(lr); - if(_G_ <= height(ll)) - return create(ll, lv, ld, create(lr, x, d, r)); - if(! lr) return caml_call1(Stdlib[1], cst_Map_bal); - var - lrr = lr[4], - lrd = lr[3], - lrv = lr[2], - lrl = lr[1], - _H_ = create(lrr, x, d, r); - return create(create(ll, lv, ld, lrl), lrv, lrd, _H_); - } - if((hl + 2 | 0) >= hr){ - var _K_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - return [0, l, x, d, r, _K_]; - } - if(! r) return caml_call1(Stdlib[1], cst_Map_bal$2); - var rr = r[4], rd = r[3], rv = r[2], rl = r[1], _I_ = height(rl); - if(_I_ <= height(rr)) return create(create(l, x, d, rl), rv, rd, rr); - if(! rl) return caml_call1(Stdlib[1], cst_Map_bal$1); - var - rlr = rl[4], - rld = rl[3], - rlv = rl[2], - rll = rl[1], - _J_ = create(rlr, rv, rd, rr); - return create(create(l, x, d, rll), rlv, rld, _J_); - } - var empty = 0; - function is_empty(param){return param ? 0 : 1;} - function add(x, data, m){ - if(! m) return [0, 0, x, data, 0, 1]; - var - h = m[5], - r = m[4], - d = m[3], - v = m[2], - l = m[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return d === data ? m : [0, l, x, data, r, h]; - if(0 <= c){ - var rr = add(x, data, r); - return r === rr ? m : bal(l, v, d, rr); - } - var ll = add(x, data, l); - return l === ll ? m : bal(ll, v, d, r); - } - function find(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - r = param$0[4], - d = param$0[3], - v = param$0[2], - l = param$0[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return d; - var r$0 = 0 <= c ? r : l, param$0 = r$0; - } - } - function find_first(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - r$0 = param$1[4], - d0$1 = param$1[3], - v0$1 = param$1[2], - l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} - var v0 = v0$1, d0 = d0$1, param = l$0; - for(;;){ - if(! param) return [0, v0, d0]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){ - var v0 = v0$0, d0 = d0$0, param = l; - continue; - } - var param = r; - } - } - } - function find_first_opt(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) return 0; - var - r$0 = param$1[4], - d0$1 = param$1[3], - v0$1 = param$1[2], - l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} - var v0 = v0$1, d0 = d0$1, param = l$0; - for(;;){ - if(! param) return [0, [0, v0, d0]]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){ - var v0 = v0$0, d0 = d0$0, param = l; - continue; - } - var param = r; - } - } - } - function find_last(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - r$0 = param$1[4], - d0$1 = param$1[3], - v0$1 = param$1[2], - l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} - var v0 = v0$1, d0 = d0$1, param = r$0; - for(;;){ - if(! param) return [0, v0, d0]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){ - var v0 = v0$0, d0 = d0$0, param = r; - continue; - } - var param = l; - } - } - } - function find_last_opt(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) return 0; - var - r$0 = param$1[4], - d0$1 = param$1[3], - v0$1 = param$1[2], - l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} - var v0 = v0$1, d0 = d0$1, param = r$0; - for(;;){ - if(! param) return [0, [0, v0, d0]]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){ - var v0 = v0$0, d0 = d0$0, param = r; - continue; - } - var param = l; - } - } - } - function find_opt(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - r = param$0[4], - d = param$0[3], - v = param$0[2], - l = param$0[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return [0, d]; - var r$0 = 0 <= c ? r : l, param$0 = r$0; - } - } - function mem(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - r = param$0[4], - v = param$0[2], - l = param$0[1], - c = caml_call2(Ord[1], x, v), - _F_ = 0 === c ? 1 : 0; - if(_F_) return _F_; - var r$0 = 0 <= c ? r : l, param$0 = r$0; - } - } - function min_binding(param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var l = param$0[1]; - if(l){var param$0 = l; continue;} - var d = param$0[3], v = param$0[2]; - return [0, v, d]; - } - } - function min_binding_opt(param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[1]; - if(l){var param$0 = l; continue;} - var d = param$0[3], v = param$0[2]; - return [0, [0, v, d]]; - } - } - function max_binding(param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(param$0[4]){var r = param$0[4], param$0 = r; continue;} - var d = param$0[3], v = param$0[2]; - return [0, v, d]; - } - } - function max_binding_opt(param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - if(param$0[4]){var r = param$0[4], param$0 = r; continue;} - var d = param$0[3], v = param$0[2]; - return [0, [0, v, d]]; - } - } - function remove_min_binding(param){ - if(! param) return caml_call1(Stdlib[1], cst_Map_remove_min_elt); - var l = param[1]; - if(l){ - var r = param[4], d = param[3], v = param[2]; - return bal(remove_min_binding(l), v, d, r); - } - var r$0 = param[4]; - return r$0; - } - function _d_(t1, t2){ - if(! t1) return t2; - if(! t2) return t1; - var match = min_binding(t2), d = match[2], x = match[1]; - return bal(t1, x, d, remove_min_binding(t2)); - } - function remove(x, m){ - if(! m) return 0; - var - r = m[4], - d = m[3], - v = m[2], - l = m[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return _d_(l, r); - if(0 <= c){ - var rr = remove(x, r); - return r === rr ? m : bal(l, v, d, rr); - } - var ll = remove(x, l); - return l === ll ? m : bal(ll, v, d, r); - } - function update(x, f, m){ - if(! m){ - var match$0 = caml_call1(f, 0); - if(! match$0) return 0; - var data$0 = match$0[1]; - return [0, 0, x, data$0, 0, 1]; - } - var - h = m[5], - r = m[4], - d = m[3], - v = m[2], - l = m[1], - c = caml_call2(Ord[1], x, v); - if(0 === c){ - var match = caml_call1(f, [0, d]); - if(! match) return _d_(l, r); - var data = match[1]; - return d === data ? m : [0, l, x, data, r, h]; - } - if(0 <= c){ - var rr = update(x, f, r); - return r === rr ? m : bal(l, v, d, rr); - } - var ll = update(x, f, l); - return l === ll ? m : bal(ll, v, d, r); - } - function iter(f, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var r = param$0[4], d = param$0[3], v = param$0[2], l = param$0[1]; - iter(f, l); - caml_call2(f, v, d); - var param$0 = r; - } - } - function map(f, param){ - if(! param) return 0; - var - h = param[5], - r = param[4], - d = param[3], - v = param[2], - l = param[1], - l$0 = map(f, l), - d$0 = caml_call1(f, d), - r$0 = map(f, r); - return [0, l$0, v, d$0, r$0, h]; - } - function mapi(f, param){ - if(! param) return 0; - var - h = param[5], - r = param[4], - d = param[3], - v = param[2], - l = param[1], - l$0 = mapi(f, l), - d$0 = caml_call2(f, v, d), - r$0 = mapi(f, r); - return [0, l$0, v, d$0, r$0, h]; - } - function fold(f, m, accu){ - var m$0 = m, accu$0 = accu; - for(;;){ - if(! m$0) return accu$0; - var - r = m$0[4], - d = m$0[3], - v = m$0[2], - l = m$0[1], - accu$1 = caml_call3(f, v, d, fold(f, l, accu$0)), - m$0 = r, - accu$0 = accu$1; - } - } - function for_all(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 1; - var - r = param$0[4], - d = param$0[3], - v = param$0[2], - l = param$0[1], - _C_ = caml_call2(p, v, d); - if(_C_){ - var _D_ = for_all(p, l); - if(_D_){var param$0 = r; continue;} - var _E_ = _D_; - } - else - var _E_ = _C_; - return _E_; - } - } - function exists(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - r = param$0[4], - d = param$0[3], - v = param$0[2], - l = param$0[1], - _z_ = caml_call2(p, v, d); - if(_z_) - var _A_ = _z_; - else{ - var _B_ = exists(p, l); - if(! _B_){var param$0 = r; continue;} - var _A_ = _B_; - } - return _A_; - } - } - function add_min_binding(k, x, param){ - if(! param) return singleton(k, x); - var r = param[4], d = param[3], v = param[2], l = param[1]; - return bal(add_min_binding(k, x, l), v, d, r); - } - function add_max_binding(k, x, param){ - if(! param) return singleton(k, x); - var r = param[4], d = param[3], v = param[2], l = param[1]; - return bal(l, v, d, add_max_binding(k, x, r)); - } - function join(l, v, d, r){ - if(! l) return add_min_binding(v, d, r); - if(! r) return add_max_binding(v, d, l); - var - rh = r[5], - rr = r[4], - rd = r[3], - rv = r[2], - rl = r[1], - lh = l[5], - lr = l[4], - ld = l[3], - lv = l[2], - ll = l[1]; - return (rh + 2 | 0) < lh - ? bal(ll, lv, ld, join(lr, v, d, r)) - : (lh - + 2 - | 0) - < rh - ? bal(join(l, v, d, rl), rv, rd, rr) - : create(l, v, d, r); - } - function concat(t1, t2){ - if(! t1) return t2; - if(! t2) return t1; - var match = min_binding(t2), d = match[2], x = match[1]; - return join(t1, x, d, remove_min_binding(t2)); - } - function concat_or_join(t1, v, d, t2){ - if(! d) return concat(t1, t2); - var d$0 = d[1]; - return join(t1, v, d$0, t2); - } - function split(x, param){ - if(! param) return _a_; - var - r = param[4], - d = param[3], - v = param[2], - l = param[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return [0, l, [0, d], r]; - if(0 <= c){ - var - match = split(x, r), - rr = match[3], - pres = match[2], - lr = match[1]; - return [0, join(l, v, d, lr), pres, rr]; - } - var - match$0 = split(x, l), - rl = match$0[3], - pres$0 = match$0[2], - ll = match$0[1]; - return [0, ll, pres$0, join(rl, v, d, r)]; - } - function merge(f, s1, s2){ - if(s1){ - var h1 = s1[5], r1 = s1[4], d1 = s1[3], v1 = s1[2], l1 = s1[1]; - if(height(s2) <= h1){ - var - match = split(v1, s2), - r2 = match[3], - d2 = match[2], - l2 = match[1], - _v_ = merge(f, r1, r2), - _w_ = caml_call3(f, v1, [0, d1], d2); - return concat_or_join(merge(f, l1, l2), v1, _w_, _v_); - } - } - else if(! s2) return 0; - if(! s2) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - var - r2$0 = s2[4], - d2$0 = s2[3], - v2 = s2[2], - l2$0 = s2[1], - match$0 = split(v2, s1), - r1$0 = match$0[3], - d1$0 = match$0[2], - l1$0 = match$0[1], - _x_ = merge(f, r1$0, r2$0), - _y_ = caml_call3(f, v2, d1$0, [0, d2$0]); - return concat_or_join(merge(f, l1$0, l2$0), v2, _y_, _x_); - } - function union(f, s1, s2){ - if(s1){ - if(s2){ - var - h2 = s2[5], - r2 = s2[4], - d2 = s2[3], - v2 = s2[2], - l2 = s2[1], - h1 = s1[5], - r1 = s1[4], - d1 = s1[3], - v1 = s1[2], - l1 = s1[1]; - if(h2 <= h1){ - var - match = split(v1, s2), - r2$0 = match[3], - d2$0 = match[2], - l2$0 = match[1], - l = union(f, l1, l2$0), - r = union(f, r1, r2$0); - if(! d2$0) return join(l, v1, d1, r); - var d2$1 = d2$0[1]; - return concat_or_join(l, v1, caml_call3(f, v1, d1, d2$1), r); - } - var - match$0 = split(v2, s1), - r1$0 = match$0[3], - d1$0 = match$0[2], - l1$0 = match$0[1], - l$0 = union(f, l1$0, l2), - r$0 = union(f, r1$0, r2); - if(! d1$0) return join(l$0, v2, d2, r$0); - var d1$1 = d1$0[1]; - return concat_or_join(l$0, v2, caml_call3(f, v2, d1$1, d2), r$0); - } - var s = s1; - } + var id=buffer.lastIndexOf(10); + if(id < 0) + {chan.buffer.set(buffer,chan.buffer_curr); + chan.buffer_curr += buffer.length; + if(chan.buffer_curr >= chan.buffer.length)caml_ml_flush(chanid)} else - var s = s2; - return s; - } - function filter(p, m){ - if(! m) return 0; - var - r = m[4], - d = m[3], - v = m[2], - l = m[1], - l$0 = filter(p, l), - pvd = caml_call2(p, v, d), - r$0 = filter(p, r); - if(! pvd) return concat(l$0, r$0); - if(l === l$0 && r === r$0) return m; - return join(l$0, v, d, r$0); - } - function filter_map(f, param){ - if(! param) return 0; - var - r = param[4], - d = param[3], - v = param[2], - l = param[1], - l$0 = filter_map(f, l), - fvd = caml_call2(f, v, d), - r$0 = filter_map(f, r); - if(! fvd) return concat(l$0, r$0); - var d$0 = fvd[1]; - return join(l$0, v, d$0, r$0); - } - function partition(p, param){ - if(! param) return _c_; - var - r = param[4], - d = param[3], - v = param[2], - l = param[1], - match = partition(p, l), - lf = match[2], - lt = match[1], - pvd = caml_call2(p, v, d), - match$0 = partition(p, r), - rf = match$0[2], - rt = match$0[1]; - if(pvd){ - var _t_ = concat(lf, rf); - return [0, join(lt, v, d, rt), _t_]; - } - var _u_ = join(lf, v, d, rf); - return [0, concat(lt, rt), _u_]; - } - function cons_enum(m, e){ - var m$0 = m, e$0 = e; - for(;;){ - if(! m$0) return e$0; - var - r = m$0[4], - d = m$0[3], - v = m$0[2], - l = m$0[1], - e$1 = [0, v, d, r, e$0], - m$0 = l, - e$0 = e$1; - } - } - function compare(cmp, m1, m2){ - var - e2$2 = cons_enum(m2, 0), - e1$2 = cons_enum(m1, 0), - e1 = e1$2, - e2 = e2$2; - for(;;){ - if(! e1) return e2 ? -1 : 0; - if(! e2) return 1; - var - e2$0 = e2[4], - r2 = e2[3], - d2 = e2[2], - v2 = e2[1], - e1$0 = e1[4], - r1 = e1[3], - d1 = e1[2], - v1 = e1[1], - c = caml_call2(Ord[1], v1, v2); - if(0 !== c) return c; - var c$0 = caml_call2(cmp, d1, d2); - if(0 !== c$0) return c$0; - var - e2$1 = cons_enum(r2, e2$0), - e1$1 = cons_enum(r1, e1$0), - e1 = e1$1, - e2 = e2$1; - } - } - function equal(cmp, m1, m2){ - var - e2$2 = cons_enum(m2, 0), - e1$2 = cons_enum(m1, 0), - e1 = e1$2, - e2 = e2$2; - for(;;){ - if(! e1) return e2 ? 0 : 1; - if(! e2) return 0; - var - e2$0 = e2[4], - r2 = e2[3], - d2 = e2[2], - v2 = e2[1], - e1$0 = e1[4], - r1 = e1[3], - d1 = e1[2], - v1 = e1[1], - _q_ = 0 === caml_call2(Ord[1], v1, v2) ? 1 : 0; - if(_q_){ - var _r_ = caml_call2(cmp, d1, d2); - if(_r_){ - var - e2$1 = cons_enum(r2, e2$0), - e1$1 = cons_enum(r1, e1$0), - e1 = e1$1, - e2 = e2$1; - continue; - } - var _s_ = _r_; - } - else - var _s_ = _q_; - return _s_; - } - } - function cardinal(param){ - if(! param) return 0; - var r = param[4], l = param[1], _p_ = cardinal(r); - return (cardinal(l) + 1 | 0) + _p_ | 0; - } - function bindings_aux(accu, param){ - var accu$0 = accu, param$0 = param; - for(;;){ - if(! param$0) return accu$0; - var - r = param$0[4], - d = param$0[3], - v = param$0[2], - l = param$0[1], - accu$1 = [0, [0, v, d], bindings_aux(accu$0, r)], - accu$0 = accu$1, - param$0 = l; - } - } - function bindings(s){return bindings_aux(0, s);} - function add_seq(i, m){ - function _o_(m, param){ - var v = param[2], k = param[1]; - return add(k, v, m); - } - return caml_call3(Stdlib_Seq[5], _o_, m, i); - } - function of_seq(i){return add_seq(i, empty);} - function seq_of_enum(c, param){ - if(! c) return 0; - var - rest = c[4], - t = c[3], - v = c[2], - k = c[1], - _m_ = cons_enum(t, rest); - return [0, [0, k, v], function(_n_){return seq_of_enum(_m_, _n_);}]; - } - function to_seq(m){ - var _k_ = cons_enum(m, 0); - return function(_l_){return seq_of_enum(_k_, _l_);}; - } - function snoc_enum(s, e){ - var s$0 = s, e$0 = e; - for(;;){ - if(! s$0) return e$0; - var - r = s$0[4], - d = s$0[3], - v = s$0[2], - l = s$0[1], - e$1 = [0, v, d, l, e$0], - s$0 = r, - e$0 = e$1; - } - } - function rev_seq_of_enum(c, param){ - if(! c) return 0; - var - rest = c[4], - t = c[3], - v = c[2], - k = c[1], - _i_ = snoc_enum(t, rest); - return [0, - [0, k, v], - function(_j_){return rev_seq_of_enum(_i_, _j_);}]; - } - function to_rev_seq(c){ - var _g_ = snoc_enum(c, 0); - return function(_h_){return rev_seq_of_enum(_g_, _h_);}; - } - function to_seq_from(low, m){ - var m$0 = m, c = 0; - for(;;){ - if(m$0){ - var - r = m$0[4], - d = m$0[3], - v = m$0[2], - l = m$0[1], - n = caml_call2(Ord[1], v, low); - if(0 !== n){ - if(0 <= n){var c$0 = [0, v, d, r, c], m$0 = l, c = c$0; continue;} - var m$0 = r; - continue; - } - var _e_ = [0, v, d, r, c]; - } - else - var _e_ = c; - return function(_f_){return seq_of_enum(_e_, _f_);}; - } - } - return [0, - empty, - is_empty, - mem, - add, - update, - singleton, - remove, - merge, - union, - compare, - equal, - iter, - fold, - for_all, - exists, - filter, - filter_map, - partition, - cardinal, - bindings, - min_binding, - min_binding_opt, - max_binding, - max_binding_opt, - min_binding, - min_binding_opt, - split, - find, - find_opt, - find_first, - find_first_opt, - find_last, - find_last_opt, - map, - mapi, - to_seq, - to_rev_seq, - to_seq_from, - add_seq, - of_seq]; - }]; - runtime.caml_register_global(11, Stdlib_Map, "Stdlib__Map"); - return; - } - (globalThis)); - -//# 9406 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib_List = global_data.Stdlib__List, - Empty = [248, "Stdlib.Stack.Empty", runtime.caml_fresh_oo_id(0)]; - function create(param){return [0, 0, 0];} - function clear(s){s[1] = 0; s[2] = 0; return 0;} - function copy(s){return [0, s[1], s[2]];} - function push(x, s){s[1] = [0, x, s[1]]; s[2] = s[2] + 1 | 0; return 0;} - function pop(s){ - var match = s[1]; - if(! match) throw caml_maybe_attach_backtrace(Empty, 1); - var tl = match[2], hd = match[1]; - s[1] = tl; - s[2] = s[2] - 1 | 0; - return hd; - } - function pop_opt(s){ - var match = s[1]; - if(! match) return 0; - var tl = match[2], hd = match[1]; - s[1] = tl; - s[2] = s[2] - 1 | 0; - return [0, hd]; - } - function top(s){ - var match = s[1]; - if(! match) throw caml_maybe_attach_backtrace(Empty, 1); - var hd = match[1]; - return hd; - } - function top_opt(s){ - var match = s[1]; - if(! match) return 0; - var hd = match[1]; - return [0, hd]; - } - function is_empty(s){return 0 === s[1] ? 1 : 0;} - function length(s){return s[2];} - function iter(f, s){return caml_call2(Stdlib_List[17], f, s[1]);} - function fold(f, acc, s){return caml_call3(Stdlib_List[25], f, acc, s[1]);} - function to_seq(s){return caml_call1(Stdlib_List[61], s[1]);} - function add_seq(q, i){ - function _a_(x){return push(x, q);} - return caml_call2(Stdlib_Seq[4], _a_, i); - } - function of_seq(g){var s = create(0); add_seq(s, g); return s;} - var - Stdlib_Stack = - [0, - Empty, - create, - push, - pop, - pop_opt, - top, - top_opt, - clear, - copy, - is_empty, - length, - iter, - fold, - to_seq, - add_seq, - of_seq]; - runtime.caml_register_global(3, Stdlib_Stack, "Stdlib__Stack"); - return; - } - (globalThis)); - -//# 9500 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Seq = global_data.Stdlib__Seq, - Empty = [248, "Stdlib.Queue.Empty", runtime.caml_fresh_oo_id(0)]; - function create(param){return [0, 0, 0, 0];} - function clear(q){q[1] = 0; q[2] = 0; q[3] = 0; return 0;} - function add(x, q){ - var cell = [0, x, 0], match = q[3]; - return match - ? (q[1] = q[1] + 1 | 0, match[2] = cell, q[3] = cell, 0) - : (q[1] = 1, q[2] = cell, q[3] = cell, 0); - } - function peek(q){ - var match = q[2]; - if(! match) throw caml_maybe_attach_backtrace(Empty, 1); - var content = match[1]; - return content; - } - function peek_opt(q){ - var match = q[2]; - if(! match) return 0; - var content = match[1]; - return [0, content]; - } - function take(q){ - var _g_ = q[2]; - if(! _g_) throw caml_maybe_attach_backtrace(Empty, 1); - var content = _g_[1]; - if(_g_[2]){ - var next = _g_[2]; - q[1] = q[1] - 1 | 0; - q[2] = next; - return content; - } - clear(q); - return content; - } - function take_opt(q){ - var _f_ = q[2]; - if(! _f_) return 0; - var content = _f_[1]; - if(_f_[2]){ - var next = _f_[2]; - q[1] = q[1] - 1 | 0; - q[2] = next; - return [0, content]; - } - clear(q); - return [0, content]; - } - function copy(q){ - var cell$0 = q[2], q_res = [0, q[1], 0, 0], prev = 0, cell = cell$0; - for(;;){ - if(! cell){q_res[3] = prev; return q_res;} - var content = cell[1], next = cell[2], prev$0 = [0, content, 0]; - if(prev) prev[2] = prev$0; else q_res[2] = prev$0; - var prev = prev$0, cell = next; - } - } - function is_empty(q){return 0 === q[1] ? 1 : 0;} - function length(q){return q[1];} - function iter(f, q){ - var cell$0 = q[2], cell = cell$0; - for(;;){ - if(! cell) return 0; - var content = cell[1], next = cell[2]; - caml_call1(f, content); - var cell = next; - } - } - function fold(f, accu$1, q){ - var cell$0 = q[2], accu = accu$1, cell = cell$0; - for(;;){ - if(! cell) return accu; - var - content = cell[1], - next = cell[2], - accu$0 = caml_call2(f, accu, content), - accu = accu$0, - cell = next; - } - } - function transfer(q1, q2){ - var _e_ = 0 < q1[1] ? 1 : 0; - if(! _e_) return _e_; - var match = q2[3]; - return match - ? (q2 - [1] - = q2[1] + q1[1] | 0, - match[2] = q1[2], - q2[3] = q1[3], - clear(q1)) - : (q2[1] = q1[1], q2[2] = q1[2], q2[3] = q1[3], clear(q1)); - } - function to_seq(q){ - function aux(c, param){ - if(! c) return 0; - var x = c[1], next = c[2]; - return [0, x, function(_d_){return aux(next, _d_);}]; - } - var _b_ = q[2]; - return function(_c_){return aux(_b_, _c_);}; - } - function add_seq(q, i){ - function _a_(x){return add(x, q);} - return caml_call2(Stdlib_Seq[4], _a_, i); - } - function of_seq(g){var q = create(0); add_seq(q, g); return q;} - var - Stdlib_Queue = - [0, - Empty, - create, - add, - add, - take, - take_opt, - take, - peek, - peek_opt, - peek, - clear, - copy, - is_empty, - length, - iter, - fold, - transfer, - to_seq, - add_seq, - of_seq]; - runtime.caml_register_global(2, Stdlib_Queue, "Stdlib__Queue"); - return; - } - (globalThis)); - -//# 10021 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_buffer_ml = "buffer.ml", - caml_blit_string = runtime.caml_blit_string, - caml_bswap16 = runtime.caml_bswap16, - caml_bytes_unsafe_get = runtime.caml_bytes_unsafe_get, - caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, - caml_create_bytes = runtime.caml_create_bytes, - caml_int32_bswap = runtime.caml_int32_bswap, - caml_int64_bswap = runtime.caml_int64_bswap, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_bytes_length = runtime.caml_ml_bytes_length, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_string_get = runtime.caml_string_get; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Bytes = global_data.Stdlib__Bytes, - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib = global_data.Stdlib, - Stdlib_String = global_data.Stdlib__String, - Assert_failure = global_data.Assert_failure, - cst_Buffer_truncate = "Buffer.truncate", - _d_ = [0, cst_buffer_ml, 231, 9], - cst_Buffer_add_channel = "Buffer.add_channel", - _c_ = [0, cst_buffer_ml, 212, 2], - cst_Buffer_add_substring_add_s = "Buffer.add_substring/add_subbytes", - cst_Buffer_add_cannot_grow_buf = "Buffer.add: cannot grow buffer", - _b_ = [0, cst_buffer_ml, 93, 2], - _a_ = [0, cst_buffer_ml, 94, 2], - cst_Buffer_nth = "Buffer.nth", - cst_Buffer_blit = "Buffer.blit", - cst_Buffer_sub = "Buffer.sub"; - function create(n){ - var - n$0 = 1 <= n ? n : 1, - n$1 = Stdlib_Sys[12] < n$0 ? Stdlib_Sys[12] : n$0, - s = caml_create_bytes(n$1); - return [0, s, 0, n$1, s]; - } - function contents(b){return caml_call3(Stdlib_Bytes[8], b[1], 0, b[2]);} - function to_bytes(b){return caml_call3(Stdlib_Bytes[7], b[1], 0, b[2]);} - function sub(b, ofs, len){ - if(0 <= ofs && 0 <= len && (b[2] - len | 0) >= ofs) - return caml_call3(Stdlib_Bytes[8], b[1], ofs, len); - return caml_call1(Stdlib[1], cst_Buffer_sub); - } - function blit(src, srcoff, dst, dstoff, len){ - if - (0 <= len - && - 0 <= srcoff - && - (src[2] - len | 0) >= srcoff - && 0 <= dstoff && (caml_ml_bytes_length(dst) - len | 0) >= dstoff) - return runtime.caml_blit_bytes(src[1], srcoff, dst, dstoff, len); - return caml_call1(Stdlib[1], cst_Buffer_blit); - } - function nth(b, ofs){ - if(0 <= ofs && b[2] > ofs) return caml_bytes_unsafe_get(b[1], ofs); - return caml_call1(Stdlib[1], cst_Buffer_nth); - } - function length(b){return b[2];} - function clear(b){b[2] = 0; return 0;} - function reset(b){ - b[2] = 0; - b[1] = b[4]; - b[3] = caml_ml_bytes_length(b[1]); - return 0; - } - function resize(b, more){ - var old_pos = b[2], old_len = b[3], new_len = [0, old_len]; - for(;;){ - if(new_len[1] < (old_pos + more | 0)){ - new_len[1] = 2 * new_len[1] | 0; - continue; - } - if(Stdlib_Sys[12] < new_len[1]) - if((old_pos + more | 0) <= Stdlib_Sys[12]) - new_len[1] = Stdlib_Sys[12]; - else - caml_call1(Stdlib[2], cst_Buffer_add_cannot_grow_buf); - var new_buffer = caml_create_bytes(new_len[1]); - caml_call5(Stdlib_Bytes[11], b[1], 0, new_buffer, 0, b[2]); - b[1] = new_buffer; - b[3] = new_len[1]; - if((b[2] + more | 0) > b[3]) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - if((old_pos + more | 0) <= b[3]) return 0; - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - } - } - function add_char(b, c){ - var pos = b[2]; - if(b[3] <= pos) resize(b, 1); - caml_bytes_unsafe_set(b[1], pos, c); - b[2] = pos + 1 | 0; - return 0; - } - var uchar_utf_8_byte_length_max = 4, uchar_utf_16_byte_length_max = 4; - function add_utf_8_uchar(b, u){ - for(;;){ - var pos = b[2]; - if(b[3] <= pos) resize(b, uchar_utf_8_byte_length_max); - var n = caml_call3(Stdlib_Bytes[55], b[1], pos, u); - if(0 === n){resize(b, uchar_utf_8_byte_length_max); continue;} - b[2] = pos + n | 0; - return 0; - } - } - function add_utf_16be_uchar(b, u){ - for(;;){ - var pos = b[2]; - if(b[3] <= pos) resize(b, uchar_utf_16_byte_length_max); - var n = caml_call3(Stdlib_Bytes[58], b[1], pos, u); - if(0 === n){resize(b, uchar_utf_16_byte_length_max); continue;} - b[2] = pos + n | 0; - return 0; - } - } - function add_utf_16le_uchar(b, u){ - for(;;){ - var pos = b[2]; - if(b[3] <= pos) resize(b, uchar_utf_16_byte_length_max); - var n = caml_call3(Stdlib_Bytes[61], b[1], pos, u); - if(0 === n){resize(b, uchar_utf_16_byte_length_max); continue;} - b[2] = pos + n | 0; - return 0; - } - } - function add_substring(b, s, offset, len){ - var _u_ = offset < 0 ? 1 : 0; - if(_u_) - var _v_ = _u_; - else - var - _w_ = len < 0 ? 1 : 0, - _v_ = _w_ || ((caml_ml_string_length(s) - len | 0) < offset ? 1 : 0); - if(_v_) caml_call1(Stdlib[1], cst_Buffer_add_substring_add_s); - var new_position = b[2] + len | 0; - if(b[3] < new_position) resize(b, len); - caml_blit_string(s, offset, b[1], b[2], len); - b[2] = new_position; - return 0; - } - function add_subbytes(b, s, offset, len){ - return add_substring(b, caml_call1(Stdlib_Bytes[48], s), offset, len); - } - function add_string(b, s){ - var len = caml_ml_string_length(s), new_position = b[2] + len | 0; - if(b[3] < new_position) resize(b, len); - caml_blit_string(s, 0, b[1], b[2], len); - b[2] = new_position; - return 0; - } - function add_bytes(b, s){ - return add_string(b, caml_call1(Stdlib_Bytes[48], s)); - } - function add_buffer(b, bs){return add_subbytes(b, bs[1], 0, bs[2]);} - function add_channel(b, ic, to_read$1){ - var - _s_ = to_read$1 < 0 ? 1 : 0, - _t_ = _s_ || (Stdlib_Sys[12] < to_read$1 ? 1 : 0); - if(_t_) caml_call1(Stdlib[1], cst_Buffer_add_channel); - if(b[3] < (b[2] + to_read$1 | 0)) resize(b, to_read$1); - var - ofs$1 = b[2], - buf = b[1], - already_read = 0, - ofs = ofs$1, - to_read = to_read$1; - for(;;){ - if(0 !== to_read){ - var r = caml_call4(Stdlib[84], ic, buf, ofs, to_read); - if(0 !== r){ - var - already_read$0 = already_read + r | 0, - ofs$0 = ofs + r | 0, - to_read$0 = to_read - r | 0, - already_read = already_read$0, - ofs = ofs$0, - to_read = to_read$0; - continue; - } - } - if((b[2] + already_read | 0) > b[3]) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - b[2] = b[2] + already_read | 0; - if(already_read < to_read$1) - throw caml_maybe_attach_backtrace(Stdlib[12], 1); - return 0; - } - } - function output_buffer(oc, b){ - return caml_call4(Stdlib[68], oc, b[1], 0, b[2]); - } - function add_substitute(b, f, s){ - var lim$1 = caml_ml_string_length(s), previous = 32, i$4 = 0; - for(;;){ - if(i$4 >= lim$1){ - var _r_ = 92 === previous ? 1 : 0; - return _r_ ? add_char(b, previous) : _r_; - } - var previous$0 = caml_string_get(s, i$4); - if(36 !== previous$0){ - if(92 === previous){ - add_char(b, 92); - add_char(b, previous$0); - var i$6 = i$4 + 1 | 0, previous = 32, i$4 = i$6; - continue; - } - if(92 === previous$0){ - var i$7 = i$4 + 1 | 0, previous = previous$0, i$4 = i$7; - continue; - } - add_char(b, previous$0); - var i$8 = i$4 + 1 | 0, previous = previous$0, i$4 = i$8; - continue; - } - if(92 === previous){ - add_char(b, previous$0); - var i$5 = i$4 + 1 | 0, previous = 32, i$4 = i$5; - continue; - } - var start$0 = i$4 + 1 | 0; - if(lim$1 <= start$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var opening = caml_string_get(s, start$0), switch$0 = 0; - if(40 !== opening && 123 !== opening){ - var - start = start$0 + 1 | 0, - lim$0 = caml_ml_string_length(s), - i$2 = start; - for(;;){ - if(lim$0 <= i$2) - var stop$0 = lim$0; - else{ - var match = caml_string_get(s, i$2), switch$1 = 0; - if(91 <= match){ - if(97 <= match){ - if(123 > match) switch$1 = 1; - } - else if(95 === match) switch$1 = 1; + {chan.buffer.set(buffer.subarray(0,id + 1),chan.buffer_curr); + chan.buffer_curr += id + 1; + caml_ml_flush(chanid); + chan.buffer.set(buffer.subarray(id + 1),chan.buffer_curr); + chan.buffer_curr += buffer.length - id - 1} + break } + return 0} + function caml_ml_output(chanid,buffer,offset,len) + {return caml_ml_output_bytes + (chanid,caml_bytes_of_string(buffer),offset,len)} + function caml_ml_domain_id(unit){return caml_domain_id} + function caml_ephe_get_data(x) + {return x[caml_ephe_data_offset] === undefined + ?0 + :[0,x[caml_ephe_data_offset]]} + function caml_xmlhttprequest_create(unit) + {if(typeof globalThis.XMLHttpRequest !== "undefined") + try {return new (globalThis.XMLHttpRequest)()}catch(e){} + if(typeof globalThis.activeXObject !== "undefined") + {try + {return new (globalThis.activeXObject)("Msxml2.XMLHTTP")} + catch(e){} + try + {return new (globalThis.activeXObject)("Msxml3.XMLHTTP")} + catch(e){} + try + {return new (globalThis.activeXObject)("Microsoft.XMLHTTP")} + catch(e){}} + caml_failwith("Cannot create a XMLHttpRequest")} + function caml_trampoline_return(f,args) + {return {joo_tramp:f,joo_args:args}} + function caml_ml_is_buffered(chanid) + {return caml_ml_channels[chanid].buffered?1:0} + function caml_array_append(a1,a2) + {var l1=a1.length,l2=a2.length,l=l1 + l2 - 1,a=new Array(l); + a[0] = 0; + var i=1,j=1; + for(;i < l1;i++)a[i] = a1[i]; + for(;i < l;i++,j++)a[i] = a2[j]; + return a} + function caml_unix_gettimeofday(){return new Date().getTime() / 1000} + function caml_unix_time(){return Math.floor(caml_unix_gettimeofday())} + function caml_ml_set_channel_refill(chanid,f) + {caml_ml_channels[chanid].refill = f;return 0} + function ml_z_nextprime(z1) + {z1 = bigInt(z1); + var one=bigInt(1),two=bigInt(2); + if(z1.lt(one) || z1.equals(one))return 2; + if(z1.and(one).equals(one))z1 = z1.add(two);else z1 = z1.add(one); + while(true) + if(z1.isProbablePrime(25)) + return ml_z_normalize(z1); + else + z1 = z1.add(two)} + function caml_fill_bytes(s,i,l,c) + {if(l > 0) + if(i == 0 && (l >= s.l || s.t == 2 && l >= s.c.length)) + if(c == 0) + {s.c = "";s.t = 2} else - if(58 <= match){ - if(65 <= match) switch$1 = 1; - } - else if(48 <= match) switch$1 = 1; - if(switch$1){var i$3 = i$2 + 1 | 0, i$2 = i$3; continue;} - var stop$0 = i$2; - } - var - match$0 = - [0, - caml_call3(Stdlib_String[15], s, start$0, stop$0 - start$0 | 0), - stop$0]; - switch$0 = 1; - break; - } - } - if(! switch$0){ - var new_start = start$0 + 1 | 0, k$2 = 0; - if(40 === opening) - var closing = 41; - else{ - if(123 !== opening) - throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - var closing = 125; - } - var lim = caml_ml_string_length(s), k = k$2, stop = new_start; - for(;;){ - if(lim <= stop) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(caml_string_get(s, stop) === opening){ - var i = stop + 1 | 0, k$0 = k + 1 | 0, k = k$0, stop = i; - continue; - } - if(caml_string_get(s, stop) !== closing){ - var i$1 = stop + 1 | 0, stop = i$1; - continue; - } - if(0 !== k){ - var i$0 = stop + 1 | 0, k$1 = k - 1 | 0, k = k$1, stop = i$0; - continue; - } - var - match$0 = - [0, - caml_call3 - (Stdlib_String[15], s, new_start, (stop - start$0 | 0) - 1 | 0), - stop + 1 | 0]; - break; - } - } - var next_i = match$0[2], ident = match$0[1]; - add_string(b, caml_call1(f, ident)); - var previous = 32, i$4 = next_i; - } - } - function truncate(b, len){ - if(0 <= len && b[2] >= len){b[2] = len; return 0;} - return caml_call1(Stdlib[1], cst_Buffer_truncate); - } - function to_seq(b){ - function aux(i, param){ - if(b[2] <= i) return 0; - var x = caml_bytes_unsafe_get(b[1], i), _p_ = i + 1 | 0; - return [0, x, function(_q_){return aux(_p_, _q_);}]; - } - var _n_ = 0; - return function(_o_){return aux(_n_, _o_);}; - } - function to_seqi(b){ - function aux(i, param){ - if(b[2] <= i) return 0; - var x = caml_bytes_unsafe_get(b[1], i), _l_ = i + 1 | 0; - return [0, [0, i, x], function(_m_){return aux(_l_, _m_);}]; - } - var _j_ = 0; - return function(_k_){return aux(_j_, _k_);}; - } - function add_seq(b, seq){ - function _h_(_i_){return add_char(b, _i_);} - return caml_call2(Stdlib_Seq[4], _h_, seq); - } - function of_seq(i){var b = create(32); add_seq(b, i); return b;} - function add_int8(b, x){ - var new_position = b[2] + 1 | 0; - if(b[3] < new_position) resize(b, 1); - caml_bytes_unsafe_set(b[1], b[2], x); - b[2] = new_position; - return 0; - } - function add_int16_ne(b, x){ - var new_position = b[2] + 2 | 0; - if(b[3] < new_position) resize(b, 2); - runtime.caml_bytes_set16(b[1], b[2], x); - b[2] = new_position; - return 0; - } - function add_int32_ne(b, x){ - var new_position = b[2] + 4 | 0; - if(b[3] < new_position) resize(b, 4); - runtime.caml_bytes_set32(b[1], b[2], x); - b[2] = new_position; - return 0; - } - function add_int64_ne(b, x){ - var new_position = b[2] + 8 | 0; - if(b[3] < new_position) resize(b, 8); - runtime.caml_bytes_set64(b[1], b[2], x); - b[2] = new_position; - return 0; - } - function add_int16_le(b, x){ - var _g_ = Stdlib_Sys[11] ? caml_bswap16(x) : x; - return add_int16_ne(b, _g_); - } - function add_int16_be(b, x){ - var x$0 = Stdlib_Sys[11] ? x : caml_bswap16(x); - return add_int16_ne(b, x$0); - } - function add_int32_le(b, x){ - var _f_ = Stdlib_Sys[11] ? caml_int32_bswap(x) : x; - return add_int32_ne(b, _f_); - } - function add_int32_be(b, x){ - var x$0 = Stdlib_Sys[11] ? x : caml_int32_bswap(x); - return add_int32_ne(b, x$0); - } - function add_int64_le(b, x){ - var _e_ = Stdlib_Sys[11] ? caml_int64_bswap(x) : x; - return add_int64_ne(b, _e_); - } - function add_int64_be(b, x){ - var x$0 = Stdlib_Sys[11] ? x : caml_int64_bswap(x); - return add_int64_ne(b, x$0); - } - var - Stdlib_Buffer = - [0, - create, - contents, - to_bytes, - sub, - blit, - nth, - length, - clear, - reset, - output_buffer, - truncate, - add_char, - add_utf_8_uchar, - add_utf_16le_uchar, - add_utf_16be_uchar, - add_string, - add_bytes, - add_substring, - add_subbytes, - add_substitute, - add_buffer, - add_channel, - to_seq, - to_seqi, - add_seq, - of_seq, - add_int8, - add_int8, - add_int16_ne, - add_int16_be, - add_int16_le, - add_int16_ne, - add_int16_be, - add_int16_le, - add_int32_ne, - add_int32_be, - add_int32_le, - add_int64_ne, - add_int64_be, - add_int64_le]; - runtime.caml_register_global(17, Stdlib_Buffer, "Stdlib__Buffer"); - return; - } + {s.c = caml_str_repeat(l,String.fromCharCode(c));s.t = l == s.l?0:2} + else + {if(s.t != 4)caml_convert_bytes_to_array(s); + for(l += i;i < l;i++)s.c[i] = c} + return 0} + function caml_js_expr(s) + {console.error("caml_js_expr: fallback to runtime evaluation\n"); + return eval(caml_jsstring_of_string(s))} + function caml_ml_runtime_warnings_enabled(_unit) + {return caml_runtime_warnings} + function ml_z_sub(z1,z2) + {return ml_z_normalize(bigInt(z1).subtract(bigInt(z2)))} + function ml_z_fdiv(z1,z2) + {var z1_pos=ml_z_sign(z1),z2_pos=ml_z_sign(z2); + if(z1_pos * z2_pos < 0) + if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) + return ml_z_sub(ml_z_div(z1,z2),bigInt(1)); + return ml_z_div(z1,z2)} + function ml_z_to_bits(z1) + {z1 = bigInt(z1).abs(); + var res=""; + while(! z1.equals(bigInt(0))) + {res += String.fromCharCode(z1.mod(bigInt(256))); + z1 = z1.divide(bigInt(256))} + while(res.length % 4 != 0)res += String.fromCharCode(0); + return caml_string_of_jsbytes(res)} + function caml_output_value_to_bytes(v,flags) + {return caml_bytes_of_array(caml_output_val(v,flags))} + function caml_eventlog_resume(unit){return 0} + function caml_md5_string(s,ofs,len) + {return caml_md5_bytes(caml_bytes_of_string(s),ofs,len)} + function caml_string_equal(s1,s2){return caml_bytes_equal(s1,s2)} + function caml_array_of_string(x){return caml_uint8_array_of_string(x)} + function caml_jsoo_flags_use_js_string(unit){return 0} + function ml_z_divexact(z1,z2){return ml_z_div(z1,z2)} + function caml_output_value_to_buffer(s,ofs,len,v,flags) + {var t=caml_output_val(v,flags); + if(t.length > len)caml_failwith("Marshal.to_buffer: buffer overflow"); + caml_blit_bytes(t,0,s,ofs,t.length); + return 0} + function re_replacement_text(repl,groups,orig) + {var + repl=caml_jsbytes_of_string(repl), + len=repl.length, + orig=caml_jsbytes_of_string(orig), + res="", + n=0, + cur, + start, + end, + c; + while(n < len) + {cur = repl.charAt(n++); + if(cur != "\\") + res += cur; + else + {if(n == len) + caml_failwith("Str.replace: illegal backslash sequence"); + cur = repl.charAt(n++); + switch(cur) + {case "\\":res += cur;break; + case "0": + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + c = + cur; + if(c * 2 >= groups.length - 1) + caml_failwith("Str.replace: reference to unmatched group"); + start = caml_array_get(groups,c * 2); + end = caml_array_get(groups,c * 2 + 1); + if(start == - 1) + caml_failwith("Str.replace: reference to unmatched group"); + res += orig.slice(start,end); + break; + default:res += "\\" + cur}}} + return caml_string_of_jsbytes(res)} + function caml_pure_js_expr(s) + {console.error("caml_pure_js_expr: fallback to runtime evaluation\n"); + return eval(caml_jsstring_of_string(s))} + function caml_blit_string(a,b,c,d,e) + {caml_blit_bytes(caml_bytes_of_string(a),b,c,d,e);return 0} + function blit_nat(nat1,ofs1,nat2,ofs2,len) + {for(var i=0;i < len;i++)nat1.data[ofs1 + i] = nat2.data[ofs2 + i]; + return 0} + function caml_bigstring_blit_ba_to_bytes(ba1,pos1,bytes2,pos2,len) + {if(12 != ba1.kind) + caml_invalid_argument + ("caml_bigstring_blit_string_to_ba: kind mismatch"); + if(len == 0)return 0; + var ofs1=ba1.offset(pos1); + if(ofs1 + len > ba1.data.length)caml_array_bound_error(); + if(pos2 + len > caml_ml_bytes_length(bytes2))caml_array_bound_error(); + var slice=ba1.data.slice(ofs1,ofs1 + len); + caml_blit_bytes(caml_bytes_of_array(slice),0,bytes2,pos2,len); + return 0} + function caml_unix_stat(name) + {var root=resolve_fs_device(name); + if(! root.device.stat)caml_failwith("caml_unix_stat: not implemented"); + return root.device.stat(root.rest,true)} + function caml_register_named_value(nm,v) + {caml_named_values[caml_jsbytes_of_string(nm)] = v;return 0} + function jsoo_create_file_extern(name,content) + {if(globalThis.jsoo_create_file) + globalThis.jsoo_create_file(name,content); + else + {if(! globalThis.caml_fs_tmp)globalThis.caml_fs_tmp = []; + globalThis.caml_fs_tmp.push({name:name,content:content})} + return 0} + function caml_unix_stat_64(name) + {var r=caml_unix_stat(name);r[9] = caml_int64_of_int32(r[9])} + function caml_to_js_string(s){return caml_jsstring_of_string(s)} + function caml_ml_mutex_lock(t) + {if(t.locked) + caml_failwith("Mutex.lock: mutex already locked. Cannot wait."); + else + t.locked = true; + return 0} + function re_search_forward(re,s,pos) + {if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.search_forward"); + while(pos <= caml_ml_string_length(s)) + {var res=re_match(re,s,pos,0);if(res)return res;pos++} + return [0]} + var caml_blit_string_to_bigstring=caml_bigstring_blit_string_to_ba; + function caml_make_vect(len,init) + {if(len < 0)caml_array_bound_error(); + var len=len + 1 | 0,b=new Array(len); + b[0] = 0; + for(var i=1;i < len;i++)b[i] = init; + return b} + function caml_ml_seek_in(chanid,pos){return caml_seek_in(chanid,pos)} + function caml_sys_read_directory(name) + {var + root=resolve_fs_device(name), + a=root.device.readdir(root.rest), + l=new Array(a.length + 1); + l[0] = 0; + for(var i=0;i < a.length;i++)l[i + 1] = caml_string_of_jsbytes(a[i]); + return l} + function caml_ml_output_char(chanid,c) + {var s=caml_string_of_jsbytes(String.fromCharCode(c)); + caml_ml_output(chanid,s,0,1); + return 0} + function caml_sys_const_ostype_win32(){return os_type == "Win32"?1:0} + function caml_obj_is_block(x){return + (x instanceof Array)} + function caml_obj_set_raw_field(o,i,v){return o[i + 1] = v} + function caml_js_var(x) + {var x=caml_jsstring_of_string(x); + if(! x.match(/^[a-zA-Z_$][a-zA-Z_$0-9]*(\.[a-zA-Z_$][a-zA-Z_$0-9]*)*$/)) + console.error + ('caml_js_var: "' + + + x + + + '" is not a valid JavaScript variable. continuing ..'); + return eval(x)} + function caml_trunc_float(x){return Math.trunc(x)} + function caml_zarith_marshal(writer,v,sz) + {v = bigInt(v); + var bits=v.toArray(Math.pow(2,32)); + writer.write(8,bits.isNegative?1:0); + var block=bits.value.length,len=block * 4; + writer.write(32,len); + for(var i=block - 1;i >= 0;i--) + {writer.write(8,bits.value[i] >>> 0 & 0xff); + writer.write(8,bits.value[i] >>> 8 & 0xff); + writer.write(8,bits.value[i] >>> 16 & 0xff); + writer.write(8,bits.value[i] >>> 24 & 0xff)} + sz[0] = 4 * (1 + ((len + 3) / 4 | 0)); + sz[1] = 8 * (1 + ((len + 7) / 8 | 0))} + function caml_ephe_unset_data(x) + {if(globalThis.FinalizationRegistry && globalThis.WeakRef) + if(x[1] instanceof globalThis.FinalizationRegistry) + for(var j=caml_ephe_key_offset;j < x.length;j++) + {var key=x[j]; + if(key instanceof globalThis.WeakRef) + {key = key.deref();if(key)x[1].unregister(key)}} + x[caml_ephe_data_offset] = undefined; + return 0} + function caml_ephe_set_data(x,data) + {if(globalThis.FinalizationRegistry && globalThis.WeakRef) + if(! (x[1] instanceof globalThis.FinalizationRegistry)) + {x[1] + = + new + (globalThis.FinalizationRegistry) + (function(){caml_ephe_unset_data(x)}); + for(var j=caml_ephe_key_offset;j < x.length;j++) + {var key=x[j]; + if(key instanceof globalThis.WeakRef) + {key = key.deref();if(key)x[1].register(key,undefined,key)}}} + x[caml_ephe_data_offset] = data; + return 0} + function caml_ephe_blit_data(src,dst) + {var n=src[caml_ephe_data_offset]; + if(n === undefined) + caml_ephe_unset_data(dst); + else + caml_ephe_set_data(dst,n); + return 0} + function caml_is_printable(c){return + (c > 31 && c < 127)} + function caml_array_of_bytes(x){return caml_uint8_array_of_bytes(x)} + function caml_equal(x,y){return + (caml_compare_val(x,y,false) == 0)} + function re_partial_match(re,s,pos) + {if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.partial_match"); + var res=re_match(re,s,pos,1); + return res?res:[0]} + function caml_sys_random_seed() + {if(globalThis.crypto) + if(typeof globalThis.crypto.getRandomValues === "function") + {var a=new Uint32Array(1); + globalThis.crypto.getRandomValues(a); + return [0,a[0]]} + else + if(globalThis.crypto.randomBytes === "function") + {var buff=globalThis.crypto.randomBytes(4),a=new Uint32Array(buff); + return [0,a[0]]} + var now=new Date().getTime(),x=now ^ 0xffffffff * Math.random(); + return [0,x]} + var all_finalizers=new (globalThis.Set)(); + function caml_final_register_called_without_value(cb,a) + {if(globalThis.FinalizationRegistry && a instanceof Object) + {var + x= + new + (globalThis.FinalizationRegistry) + (function(x){all_finalizers.delete(x);cb(0);return}); + x.register(a,x); + all_finalizers.add(x)} + return 0} + function caml_ba_get_2(ba,i0,i1){return ba.get(ba.offset([i0,i1]))} + function caml_ba_uint8_set16(ba,i0,v) + {var ofs=ba.offset(i0); + if(ofs + 1 >= ba.data.length)caml_array_bound_error(); + ba.set(ofs + 0,v & 0xff); + ba.set(ofs + 1,v >>> 8 & 0xff); + return 0} + function caml_lazy_reset_to_lazy(o) + {caml_obj_update_tag(o,244,246);return 0} + function caml_js_delete(o,f){delete o[f];return 0} + function caml_int_of_string(s) + {var + r=caml_parse_sign_and_base(s), + i=r[0], + sign=r[1], + base=r[2], + len=caml_ml_string_length(s), + threshold=- 1 >>> 0, + c=i < len?caml_string_unsafe_get(s,i):0, + d=caml_parse_digit(c); + if(d < 0 || d >= base)caml_failwith("int_of_string"); + var res=d; + for(i++;i < len;i++) + {c = caml_string_unsafe_get(s,i); + if(c == 95)continue; + d = caml_parse_digit(c); + if(d < 0 || d >= base)break; + res = base * res + d; + if(res > threshold)caml_failwith("int_of_string")} + if(i != len)caml_failwith("int_of_string"); + res = sign * res; + if(base == 10 && (res | 0) != res)caml_failwith("int_of_string"); + return res | 0} + function caml_list_mount_point() + {var prev=0; + for(var i=0;i < jsoo_mount_point.length;i++) + {var old=prev; + prev = [0,caml_string_of_jsbytes(jsoo_mount_point[i].path),old]} + return prev} + var + caml_marshal_constants= + {PREFIX_SMALL_BLOCK:0x80, + PREFIX_SMALL_INT:0x40, + PREFIX_SMALL_STRING:0x20, + CODE_INT8:0x00, + CODE_INT16:0x01, + CODE_INT32:0x02, + CODE_INT64:0x03, + CODE_SHARED8:0x04, + CODE_SHARED16:0x05, + CODE_SHARED32:0x06, + CODE_BLOCK32:0x08, + CODE_BLOCK64:0x13, + CODE_STRING8:0x09, + CODE_STRING32:0x0A, + CODE_DOUBLE_BIG:0x0B, + CODE_DOUBLE_LITTLE:0x0C, + CODE_DOUBLE_ARRAY8_BIG:0x0D, + CODE_DOUBLE_ARRAY8_LITTLE:0x0E, + CODE_DOUBLE_ARRAY32_BIG:0x0F, + CODE_DOUBLE_ARRAY32_LITTLE:0x07, + CODE_CODEPOINTER:0x10, + CODE_INFIXPOINTER:0x11, + CODE_CUSTOM:0x12, + CODE_CUSTOM_LEN:0x18, + CODE_CUSTOM_FIXED:0x19}; + function caml_obj_raw_field(o,i){return o[i + 1]} + function caml_js_equals(x,y){return + (x == y)} + function caml_obj_compare_and_swap(x,i,old,n) + {if(x[i + 1] == old){x[i + 1] = n;return 1}return 0} + function bigstring_to_typed_array(bs){return bs.data} + function ml_z_fits_nativeint(z1){return ml_z_fits_int(z1)} + function caml_gr_arc_aux(ctx,cx,cy,ry,rx,a1,a2) + {while(a1 > a2)a2 += 360; + a1 /= 180; + a2 /= 180; + var + rot=0, + xPos, + yPos, + xPos_prev, + yPos_prev, + space=2, + num=(a2 - a1) * Math.PI * ((rx + ry) / 2) / space | 0, + delta=(a2 - a1) * Math.PI / num, + i=a1 * Math.PI; + for(var j=0;j <= num;j++) + {xPos + = + cx + - + rx + * + Math.sin(i) + * + Math.sin(rot * Math.PI) + + + ry + * + Math.cos(i) + * + Math.cos(rot * Math.PI); + xPos = xPos.toFixed(2); + yPos + = + cy + + + ry + * + Math.cos(i) + * + Math.sin(rot * Math.PI) + + + rx + * + Math.sin(i) + * + Math.cos(rot * Math.PI); + yPos = yPos.toFixed(2); + if(j == 0) + ctx.moveTo(xPos,yPos); + else + if(xPos_prev != xPos || yPos_prev != yPos)ctx.lineTo(xPos,yPos); + xPos_prev = xPos; + yPos_prev = yPos; + i -= delta} + return 0} + function caml_gr_fill_arc(x,y,rx,ry,a1,a2) + {var s=caml_gr_state_get(); + s.context.beginPath(); + caml_gr_arc_aux(s.context,x,s.height - y,rx,ry,a1,a2); + s.context.fill(); + return 0} + function caml_ba_slice(ba,vind) + {vind = caml_js_from_array(vind); + var num_inds=vind.length,index=[],sub_dims=[],ofs; + if(num_inds > ba.dims.length) + caml_invalid_argument("Bigarray.slice: too many indices"); + if(ba.layout == 0) + {for(var i=0;i < num_inds;i++)index[i] = vind[i]; + for(;i < ba.dims.length;i++)index[i] = 0; + sub_dims = ba.dims.slice(num_inds)} + else + {for(var i=0;i < num_inds;i++) + index[ba.dims.length - num_inds + i] = vind[i]; + for(var i=0;i < ba.dims.length - num_inds;i++)index[i] = 1; + sub_dims = ba.dims.slice(0,ba.dims.length - num_inds)} + ofs = ba.offset(index); + var + size=caml_ba_get_size(sub_dims), + size_per_element=caml_ba_get_size_per_element(ba.kind), + new_data= + ba.data.subarray + (ofs * size_per_element,(ofs + size) * size_per_element); + return caml_ba_create_unsafe(ba.kind,ba.layout,sub_dims,new_data)} + function ml_z_of_nativeint(i){return i | 0} + function caml_js_wrap_callback_unsafe(f) + {return function() + {var len=caml_js_function_arity(f),args=new Array(len); + for(var i=0;i < len;i++)args[i] = arguments[i]; + return caml_callback(f,args)}} + function caml_ba_kind(ba){return ba.kind} + function caml_js_fun_call(f,a) + {switch(a.length) + {case 1:return f(); + case 2:return f(a[1]); + case 3:return f(a[1],a[2]); + case 4:return f(a[1],a[2],a[3]); + case 5:return f(a[1],a[2],a[3],a[4]); + case 6:return f(a[1],a[2],a[3],a[4],a[5]); + case 7:return f(a[1],a[2],a[3],a[4],a[5],a[6]); + case 8:return f(a[1],a[2],a[3],a[4],a[5],a[6],a[7]) + } + return f.apply(null,caml_js_from_array(a))} + function caml_gc_major_slice(work){return 0} + function ml_z_invert(a,n) + {a = bigInt(a); + n = bigInt(n); + var zero=bigInt(0),one=bigInt(1); + if(n.abs().equals(one))return 0; + if(n.equals(zero) && a.abs().equals(one))return a; + if(n.equals(zero) || a.equals(zero))caml_raise_zero_divide(); + var + x=ml_z_gcdext_intern(a,n), + r=bigInt(x[2]), + tmp=bigInt(a).multiply(r).mod(n); + if(tmp.lt(zero))tmp = tmp.add(n.abs()); + if(r.lt(zero))r = r.add(n.abs()); + if(tmp.equals(one))return ml_z_normalize(r); + caml_raise_zero_divide()} + function ml_z_powm(z1,z2,z3) + {var zero=bigInt(0),one=bigInt(1); + z1 = bigInt(z1); + z2 = bigInt(z2); + z3 = bigInt(z3); + if(z3.equals(zero))caml_raise_zero_divide(); + if(z3.abs().equals(one))return 0; + if(z2.equals(zero))return 1; + if(z2.lt(0)) + {var inv=bigInt(ml_z_invert(z1,z3)),r=inv.modPow(z2.negate(),z3); + if(r.lt(zero))r = r.add(z3.abs()); + return ml_z_normalize(r)} + else + {var r=bigInt(z1).modPow(z2,z3); + if(r.lt(zero))r = r.add(z3.abs()); + return ml_z_normalize(r)}} + function ml_z_powm_sec(z1,z2,z3) + {z3 = bigInt(z3).abs(); + var one=bigInt(1); + if(bigInt(z2).lt(one)) + caml_invalid_argument("Z.powm_sec: exponent must be positive"); + if(! bigInt(z3).and(one).equals(one)) + caml_invalid_argument("Z.powm_sec: modulus must be odd"); + return ml_z_powm(z1,z2,z3)} + function caml_js_pure_expr(f){return caml_callback(f,[0])} + function compare_digits_nat(nat1,ofs1,nat2,ofs2) + {if(nat1.data[ofs1] > nat2.data[ofs2])return 1; + if(nat1.data[ofs1] < nat2.data[ofs2])return - 1; + return 0} + function caml_ml_input(chanid,b,i,l) + {var ba=caml_uint8_array_of_bytes(b); + return caml_ml_input_block(chanid,ba,i,l)} + function caml_gr_wait_event(_evl) + {caml_failwith + ("caml_gr_wait_event not Implemented: use Graphics_js instead")} + function caml_gr_sigio_handler(){return 0} + function caml_hash_mix_bigstring(h,bs) + {return caml_hash_mix_bytes_arr(h,bs.data)} + function caml_record_backtrace(){return 0} + function caml_unix_cleanup(){} + function caml_sys_const_backend_type() + {return [0,caml_string_of_jsbytes("js_of_ocaml")]} + function caml_sys_get_config() + {return [0,caml_string_of_jsbytes(os_type),32,0]} + function caml_obj_is_shared(x){return 1} + function caml_ml_out_channels_list() + {var l=0; + for(var c=0;c < caml_ml_channels.length;c++) + if + (caml_ml_channels[c] + && + caml_ml_channels[c].opened + && + caml_ml_channels[c].out) + l = [0,caml_ml_channels[c].fd,l]; + return l} + function caml_asinh_float(x){return Math.asinh(x)} + function ml_z_hash(z1) + {var a=bigInt(z1).toArray(Math.pow(2,32)),acc=0; + for(var i=0;i < a.value.length;i++) + acc = caml_hash_mix_int(acc,a.value[i]); + if(a.value.length % 2 != 0)acc = caml_hash_mix_int(acc,0); + if(a.isNegative)acc = acc + 1; + return acc | 0} + function caml_pos_out(chanid) + {var chan=caml_ml_channels[chanid];return chan.offset + chan.buffer_curr} + function bigstring_of_array_buffer(ab) + {var ta=new Uint8Array(ab); + return caml_ba_create_unsafe(12,0,[ta.length],ta)} + function caml_mod(x,y){if(y == 0)caml_raise_zero_divide();return x % y} + function caml_ba_init(){return 0} + function caml_unix_filedescr_of_fd(x){return x} + function re_string_match(re,s,pos) + {if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.string_match"); + var res=re_match(re,s,pos,0); + return res?res:[0]} + function BigStringReader(bs,i){this.s = bs;this.i = i} + BigStringReader.prototype + = + {read8u:function(){return caml_ba_get_1(this.s,this.i++)}, + read8s:function(){return caml_ba_get_1(this.s,this.i++) << 24 >> 24}, + read16u: + function() + {var s=this.s,i=this.i; + this.i = i + 2; + return caml_ba_get_1(s,i) << 8 | caml_ba_get_1(s,i + 1)}, + read16s: + function() + {var s=this.s,i=this.i; + this.i = i + 2; + return caml_ba_get_1(s,i) << 24 >> 16 | caml_ba_get_1(s,i + 1)}, + read32u: + function() + {var s=this.s,i=this.i; + this.i = i + 4; + return (caml_ba_get_1(s,i) + << + 24 + | + caml_ba_get_1(s,i + 1) + << + 16 + | + caml_ba_get_1(s,i + 2) + << + 8 + | + caml_ba_get_1(s,i + 3)) + >>> + 0}, + read32s: + function() + {var s=this.s,i=this.i; + this.i = i + 4; + return caml_ba_get_1(s,i) + << + 24 + | + caml_ba_get_1(s,i + 1) + << + 16 + | + caml_ba_get_1(s,i + 2) + << + 8 + | + caml_ba_get_1(s,i + 3)}, + readstr: + function(len) + {var i=this.i,arr=new Array(len); + for(var j=0;j < len;j++)arr[j] = caml_ba_get_1(this.s,i + j); + this.i = i + len; + return caml_string_of_array(arr)}}; + function caml_gr_dump_image(im) + {var data=[0]; + for(var i=0;i < im.height;i++) + {data[i + 1] = [0]; + for(var j=0;j < im.width;j++) + {var + o=i * (im.width * 4) + j * 4, + r=im.data[o + 0], + g=im.data[o + 1], + b=im.data[o + 2]; + data[i + 1][j + 1] = (r << 16) + (g << 8) + b}} + return data} + function caml_ba_get_generic(ba,i) + {var ofs=ba.offset(caml_js_from_array(i));return ba.get(ofs)} + function caml_unix_startup(){} + function caml_get_exception_backtrace(){return 0} + function caml_format_float(fmt,x) + {function toFixed(x,dp) + {if(Math.abs(x) < 1.0) + return x.toFixed(dp); + else + {var e=parseInt(x.toString().split("+")[1]); + if(e > 20) + {e -= 20; + x /= Math.pow(10,e); + x += new Array(e + 1).join("0"); + if(dp > 0)x = x + "." + new Array(dp + 1).join("0"); + return x} + else + return x.toFixed(dp)}} + var s,f=caml_parse_format(fmt),prec=f.prec < 0?6:f.prec; + if(x < 0 || x == 0 && 1 / x == - Infinity){f.sign = - 1;x = - x} + if(isNaN(x)) + {s = "nan";f.filler = " "} + else + if(! isFinite(x)) + {s = "inf";f.filler = " "} + else + switch(f.conv) + {case "e": + var s=x.toExponential(prec),i=s.length; + if(s.charAt(i - 3) == "e") + s = s.slice(0,i - 1) + "0" + s.slice(i - 1); + break; + case "f":s = toFixed(x,prec);break; + case "g": + prec = prec?prec:1; + s = x.toExponential(prec - 1); + var j=s.indexOf("e"),exp=+ s.slice(j + 1); + if(exp < - 4 || x >= 1e21 || x.toFixed(0).length > prec) + {var i=j - 1; + while(s.charAt(i) == "0")i--; + if(s.charAt(i) == ".")i--; + s = s.slice(0,i + 1) + s.slice(j); + i = s.length; + if(s.charAt(i - 3) == "e") + s = s.slice(0,i - 1) + "0" + s.slice(i - 1); + break} + else + {var p=prec; + if(exp < 0) + {p -= exp + 1;s = x.toFixed(p)} + else + while(s = x.toFixed(p),s.length > prec + 1)p--; + if(p) + {var i=s.length - 1; + while(s.charAt(i) == "0")i--; + if(s.charAt(i) == ".")i--; + s = s.slice(0,i + 1)}} + break + } + return caml_finish_formatting(f,s)} + function caml_mount_autoload(name,f) + {var path=caml_make_path(name),name=caml_trailing_slash(path.join("/")); + jsoo_mount_point.push({path:name,device:new MlFakeDevice(name,f)}); + return 0} + function ml_z_equal(z1,z2){return bigInt(z1).equals(bigInt(z2))?1:0} + function ml_z_fits_int64(z1) + {z1 = bigInt(z1); + return z1.compare(bigInt("9223372036854775807")) + <= + 0 + && + z1.compare(bigInt("-9223372036854775808")) + >= + 0 + ?1 + :0} + function caml_bigstring_blit_ba_to_ba(ba1,pos1,ba2,pos2,len) + {if(12 != ba1.kind) + caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); + if(12 != ba2.kind) + caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); + if(len == 0)return 0; + var ofs1=ba1.offset(pos1),ofs2=ba2.offset(pos2); + if(ofs1 + len > ba1.data.length)caml_array_bound_error(); + if(ofs2 + len > ba2.data.length)caml_array_bound_error(); + var slice=ba1.data.subarray(ofs1,ofs1 + len); + ba2.data.set(slice,pos2); + return 0} + var caml_blit_bigstring_to_bigstring=caml_bigstring_blit_ba_to_ba; + function ml_z_sqrt_rem(z) + {z = bigInt(z); + var zero=bigInt(0); + if(z.lt(zero)) + caml_invalid_argument("Z.sqrt_rem: square root of a negative number"); + var + root=bigInt(ml_z_root(z,2)), + mul=root.multiply(root), + diff=z.subtract(mul); + return [0,ml_z_normalize(root),ml_z_normalize(diff)]} + function caml_string_lessthan(s1,s2){return caml_bytes_lessthan(s1,s2)} + function caml_string_greaterthan(s1,s2) + {return caml_string_lessthan(s2,s1)} + function caml_div(x,y) + {if(y == 0)caml_raise_zero_divide();return x / y | 0} + function caml_obj_dup(x) + {var l=x.length,a=new Array(l); + for(var i=0;i < l;i++)a[i] = x[i]; + return a} + function caml_ephe_get_data_copy(x) + {return x[caml_ephe_data_offset] === undefined + ?0 + :[0,caml_obj_dup(x[caml_ephe_data_offset])]} + function caml_memprof_start(rate,stack_size,tracker){return 0} + function ml_z_perfect_square(z) + {z = bigInt(z); + if(z.lt(bigInt(0)))return 0; + var root=bigInt(ml_z_root(z,2)); + return root.multiply(root).eq(z)?1:0} + function caml_sys_get_argv(a){return [0,caml_argv[1],caml_argv]} + function caml_ml_domain_set_name(_name){return 0} + function caml_js_to_bool(x){return + x} + function caml_gr_create_image(x,y) + {var s=caml_gr_state_get();return s.context.createImageData(x,y)} + function caml_ephe_get_key_copy(x,i) + {if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.get_copy"); + var y=caml_ephe_get_key(x,i); + if(y === 0)return y; + var z=y[1]; + if(z instanceof Array)return [0,caml_obj_dup(z)]; + return y} + function caml_lessthan(x,y){return + (caml_compare_val(x,y,false) < 0)} + function caml_raw_backtrace_next_slot(){return 0} + function ml_z_to_nativeint(z1){return ml_z_to_int(z1)} + function caml_register_global(n,v,name_opt) + {if(name_opt && globalThis.toplevelReloc) + n = caml_callback(globalThis.toplevelReloc,[name_opt]); + caml_global_data[n + 1] = v; + if(name_opt)caml_global_data[name_opt] = v} + function mult_nat(nat1,ofs1,len1,nat2,ofs2,len2,nat3,ofs3,len3) + {var carry=0; + for(var i=0;i < len3;i++) + carry + += + mult_digit_nat(nat1,ofs1 + i,len1 - i,nat2,ofs2,len2,nat3,ofs3 + i); + return carry} + function square_nat(nat1,ofs1,len1,nat2,ofs2,len2) + {var carry=0; + carry += add_nat(nat1,ofs1,len1,nat1,ofs1,len1,0); + carry += mult_nat(nat1,ofs1,len1,nat2,ofs2,len2,nat2,ofs2,len2); + return carry} + function caml_js_from_float(x){return x} + function caml_floatarray_create(len) + {if(len < 0)caml_array_bound_error(); + var len=len + 1 | 0,b=new Array(len); + b[0] = 254; + for(var i=1;i < len;i++)b[i] = 0; + return b} + function caml_gc_stat(){return [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} + function caml_get_major_credit(n){return 0} + function caml_sys_modify_argv(arg){caml_argv = arg;return 0} + var caml_method_cache=[]; + function caml_get_public_method(obj,tag,cacheid) + {var meths=obj[1],ofs=caml_method_cache[cacheid]; + if(ofs === undefined) + for(var i=caml_method_cache.length;i < cacheid;i++) + caml_method_cache[i] = 0; + else + if(meths[ofs] === tag)return meths[ofs - 1]; + var li=3,hi=meths[1] * 2 + 1,mi; + while(li < hi) + {mi = li + hi >> 1 | 1;if(tag < meths[mi + 1])hi = mi - 2;else li = mi} + caml_method_cache[cacheid] = li + 1; + return tag == meths[li + 1]?meths[li]:0} + function caml_js_get_console() + {var + c=console, + m= + ["log", + "debug", + "info", + "warn", + "error", + "assert", + "dir", + "dirxml", + "trace", + "group", + "groupCollapsed", + "groupEnd", + "time", + "timeEnd"]; + function f(){} + for(var i=0;i < m.length;i++)if(! c[m[i]])c[m[i]] = f; + return c} + function caml_sys_unsafe_getenv(name){return caml_sys_getenv(name)} + function caml_ml_open_descriptor_in(fd) + {var file=caml_sys_fds[fd]; + if(file.flags.wronly)caml_raise_sys_error("fd " + fd + " is writeonly"); + var + refill=null, + channel= + {file:file, + offset:file.flags.append?file.length():0, + fd:fd, + opened:true, + out:false, + buffer_curr:0, + buffer_max:0, + buffer:new Uint8Array(65536), + refill:refill}; + caml_ml_channels[channel.fd] = channel; + return channel.fd} + function bigstring_of_typed_array(ba) + {var + ta= + new + Uint8Array + (ba.buffer,ba.byteOffset,ba.length * ba.BYTES_PER_ELEMENT); + return caml_ba_create_unsafe(12,0,[ta.length],ta)} + function caml_round_float(x){return Math.round(x)} + function ml_z_of_bits(z1) + {var r=bigInt.zero,base1=bigInt(256),base=bigInt.one; + for(var i=0;i < caml_ml_string_length(z1);i++) + {var d=caml_string_unsafe_get(z1,i); + r = bigInt(base).multiply(d).add(r); + base = bigInt(base).multiply(base1)} + return ml_z_normalize(r)} + function caml_ojs_new_arr(c,a) + {switch(a.length) + {case 0:return new c(); + case 1:return new c(a[0]); + case 2:return new c(a[0],a[1]); + case 3:return new c(a[0],a[1],a[2]); + case 4:return new c(a[0],a[1],a[2],a[3]); + case 5:return new c(a[0],a[1],a[2],a[3],a[4]); + case 6:return new c(a[0],a[1],a[2],a[3],a[4],a[5]); + case 7:return new c(a[0],a[1],a[2],a[3],a[4],a[5],a[6]) + } + function F(){return c.apply(this,a)} + F.prototype = c.prototype; + return new F()} + function complement_nat(nat,ofs,len) + {for(var i=0;i < len;i++) + nat.data[ofs + i] = (- 1 >>> 0) - (nat.data[ofs + i] >>> 0)} + function ml_z_logxor(z1,z2) + {return ml_z_normalize(bigInt(z1).xor(bigInt(z2)))} + var caml_domain_dls=[0]; + function caml_domain_dls_set(a){caml_domain_dls = a} + function caml_lazy_read_result(o){return caml_obj_tag(o) == 250?o[1]:o} + var caml_js_regexps={amp:/&/g,lt:/ 1023) + {exp -= 1023; + x *= Math.pow(2,1023); + if(exp > 1023){exp -= 1023;x *= Math.pow(2,1023)}} + if(exp < - 1023){exp += 1023;x *= Math.pow(2,- 1023)} + x *= Math.pow(2,exp); + return x} + function caml_gr_state_set(ctx) + {caml_gr_state = ctx;caml_gr_state_init();return 0} + function caml_zarith_unmarshal(reader,sz) + {var negate; + switch(reader.read8u()) + {case 1:negate = true;break; + case 0:negate = false;break; + default:caml_failwith("input_value: z (malformed input)")} + var len=reader.read32u(),x=bigInt(0); + for(var i=0;i < len / 4;i++) + {var y=bigInt(reader.read8u()); + y = y.add(reader.read8u() << 8); + y = y.add(reader.read8u() << 16); + y = y.add(reader.read8u() << 24 >>> 0); + x = y.shiftLeft(i * 32).add(x)} + if(negate)x = x.negate(); + sz[0] = len + 4; + return ml_z_normalize(x)} + function ml_z_trailing_zeros(z) + {z = bigInt(z).abs(); + var zero=bigInt(0),one=bigInt(1); + if(z.equals(zero))return 0x7fffffff; + var i=0; + z = z.xor(z.prev()).shiftRight(1); + for(i = 0;! z.equals(bigInt.zero);i++)z = z.shiftRight(1); + return i} + function caml_js_wrap_callback_strict(arity,f) + {return function() + {var + n=arguments.length, + args=new Array(arity), + len=Math.min(arguments.length,arity); + for(var i=0;i < len;i++)args[i] = arguments[i]; + return caml_callback(f,args)}} + function caml_gc_minor_words(unit){return 0} + function caml_get_current_callstack(){return [0]} + function land_digit_nat(nat1,ofs1,nat2,ofs2) + {nat1.data[ofs1] &= nat2.data[ofs2];return 0} + function caml_int64_mod(x,y){return x.mod(y)} + function caml_obj_set_tag(x,tag){x[0] = tag;return 0} + function caml_int32_bswap(x) + {return (x & 0x000000FF) + << + 24 + | + (x & 0x0000FF00) + << + 8 + | + (x & 0x00FF0000) + >>> + 8 + | + (x & 0xFF000000) + >>> + 24} + function caml_ba_set_3(ba,i0,i1,i2,v) + {ba.set(ba.offset([i0,i1,i2]),v);return 0} + function ml_z_jacobi(n,k) + {n = bigInt(n); + k = bigInt(k); + if(k.leq(bigInt(0)) || k.mod(bigInt(2)).neq(bigInt(1))) + caml_invalid_argument("Z.jacobi: second argument is negative or even"); + n = n.mod(k); + if(n.lt(bigInt(0)))n = n.add(k); + var t=1; + while(! n.equals(bigInt(0))) + {while(n.isDivisibleBy(bigInt(2))) + {n = n.divide(bigInt(2)); + var r=k.mod(bigInt(8)); + if(r.equals(bigInt(3)) || r.equals(bigInt(5)))t = - t} + var n1=n,k1=k; + n = k1; + k = n1; + if + (n.mod(bigInt(4)).equals(bigInt(3)) + && + k.mod(bigInt(4)).equals(bigInt(3))) + t = - t; + n = n.mod(k)} + return k.equals(bigInt(1))?t:0} + function ml_z_legendre(a,b){return ml_z_jacobi(a,b)} + function caml_js_instanceof(o,c){return o instanceof c?1:0} + function caml_get_major_bucket(n){return 0} + var caml_blit_bigstring_to_string=caml_bigstring_blit_ba_to_bytes; + function set_digit_nat_native(nat,ofs,digit) + {nat.data[ofs] = digit;return 0} + function nth_digit_nat_native(nat,ofs){return nat.data[ofs]} + function caml_string_set64(s,i,i64){return caml_bytes_set64(s,i,i64)} + function caml_gr_state_create(canvas,w,h) + {var context=canvas.getContext("2d"); + return {context:context, + canvas:canvas, + x:0, + y:0, + width:w, + height:h, + line_width:1, + font:caml_string_of_jsbytes("fixed"), + text_size:26, + color:0x000000, + title:caml_string_of_jsbytes("")}} + function caml_gr_draw_arc(x,y,rx,ry,a1,a2) + {var s=caml_gr_state_get(); + s.context.beginPath(); + caml_gr_arc_aux(s.context,x,s.height - y,rx,ry,a1,a2); + s.context.stroke(); + return 0} + function caml_ba_map_file(vfd,kind,layout,shared,dims,pos) + {caml_failwith("caml_ba_map_file not implemented")} + function caml_ba_map_file_bytecode(argv,argn) + {return caml_ba_map_file(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5])} + function caml_ba_create_from(data1,data2,jstyp,kind,layout,dims) + {if(data2 || caml_ba_get_size_per_element(kind) == 2) + caml_invalid_argument + ("caml_ba_create_from: use return caml_ba_create_unsafe"); + return caml_ba_create_unsafe(kind,layout,dims,data1)} + function caml_tanh_float(x){return Math.tanh(x)} + function caml_gr_draw_str(str) + {var s=caml_gr_state_get(),m=s.context.measureText(str),dx=m.width; + s.context.fillText(str,s.x,s.height - s.y); + s.x += dx | 0; + return 0} + function caml_gr_draw_string(str) + {caml_gr_draw_str(caml_jsstring_of_string(str));return 0} + function ml_z_primorial(a) + {var one=bigInt(1),two=bigInt(2),z1=one,res=one; + a = bigInt(a); + while(z1.leq(a)) + {if(z1.isProbablePrime(25))res = res.multiply(z1); + if(z1.equals(one) || z1.equals(two)) + z1 = z1.add(one); + else + z1 = z1.add(two)} + return ml_z_normalize(res)} + function caml_gr_draw_char(c) + {caml_gr_draw_str(String.fromCharCode(c));return 0} + function caml_unmount(name) + {var + path=caml_make_path(name), + name=caml_trailing_slash(path.join("/")), + idx=- 1; + for(var i=0;i < jsoo_mount_point.length;i++) + if(jsoo_mount_point[i].path == name)idx = i; + if(idx > - 1)jsoo_mount_point.splice(idx,1); + return 0} + function ml_z_fib(i) + {if(i < 0)caml_invalid_argument("Z.fib: negative arguments"); + if(i == 0 || i == 1)return i; + var a=bigInt(0),b=bigInt(1); + for(var k=1;k < i;k++){var b2=b;b = a.add(b);a = b2} + return ml_z_normalize(b)} + function caml_input_value_from_string(s,ofs) + {var reader=new MlStringReader(s,typeof ofs == "number"?ofs:ofs[0]); + return caml_input_value_from_reader(reader,ofs)} + function caml_ml_pos_in_64(chanid) + {return caml_int64_of_float(caml_pos_in(chanid))} + function caml_gr_draw_image(im,x,y) + {var s=caml_gr_state_get(); + if(! im.image) + {var canvas=document.createElement("canvas"); + canvas.width = s.width; + canvas.height = s.height; + canvas.getContext("2d").putImageData(im,0,0); + var image=new (globalThis.Image)(); + image.onload + = + function() + {s.context.drawImage(image,x,s.height - im.height - y); + im.image = image}; + image.src = canvas.toDataURL("image/png")} + else + s.context.drawImage(im.image,x,s.height - im.height - y); + return 0} + function caml_register_channel_for_spacetime(_channel){return 0} + function caml_string_set(s,i,c) + {if(i >>> 0 >= s.l)caml_string_bound_error(); + return caml_string_unsafe_set(s,i,c)} + function caml_sys_rmdir(name) + {var root=resolve_fs_device(name);root.device.rmdir(root.rest);return 0} + function caml_unix_symlink(to_dir,src,dst) + {var src_root=resolve_fs_device(src),dst_root=resolve_fs_device(dst); + if(src_root.device != dst_root.device) + caml_failwith + ("caml_unix_symlink: cannot symlink between two filesystems"); + if(! src_root.device.symlink) + caml_failwith("caml_unix_symlink: not implemented"); + return src_root.device.symlink(to_dir,src_root.rest,dst_root.rest,true)} + function caml_ml_pos_out(chanid){return caml_pos_out(chanid)} + function caml_spacetime_enabled(_unit){return 0} + function caml_bytes_notequal(s1,s2){return 1 - caml_bytes_equal(s1,s2)} + function caml_runtime_parameters(_unit){return caml_string_of_jsbytes("")} + function caml_js_object(a) + {var o={}; + for(var i=1;i < a.length;i++) + {var p=a[i];o[caml_jsstring_of_string(p[1])] = p[2]} + return o} + function caml_ba_create(kind,layout,dims_ml) + {var + dims=caml_js_from_array(dims_ml), + data=caml_ba_create_buffer(kind,caml_ba_get_size(dims)); + return caml_ba_create_unsafe(kind,layout,dims,data)} + function caml_gr_remember_mode() + {caml_failwith("caml_gr_remember_mode not Implemented")} + function caml_fma_float(x,y,z) + {var + SPLIT=Math.pow(2,27) + 1, + MIN_VALUE=Math.pow(2,- 1022), + EPSILON=Math.pow(2,- 52), + C=416, + A=Math.pow(2,+ C), + B=Math.pow(2,- C); + function multiply(a,b) + {var + at=SPLIT * a, + ahi=at - (at - a), + alo=a - ahi, + bt=SPLIT * b, + bhi=bt - (bt - b), + blo=b - bhi, + p=a * b, + e=ahi * bhi - p + ahi * blo + alo * bhi + alo * blo; + return {p:p,e:e}} + function add(a,b) + {var s=a + b,v=s - a,e=a - (s - v) + (b - v);return {s:s,e:e}} + function adjust(x,y) + {return x !== 0 && y !== 0 && SPLIT * x - (SPLIT * x - x) === x + ?x * (1 + (x < 0?- 1:+ 1) * (y < 0?- 1:+ 1) * EPSILON) + :x} + if + (x + === + 0 + || + x + !== + x + || + x + === + + + (1 / 0) + || + x + === + - + (1 / 0) + || + y + === + 0 + || + y + !== + y + || + y + === + + + (1 / 0) + || + y + === + - + (1 / 0)) + return x * y + z; + if(z === 0)return x * y; + if(z !== z || z === + (1 / 0) || z === - (1 / 0))return z; + var scale=1; + while(Math.abs(x) > A){scale *= A;x *= B} + while(Math.abs(y) > A){scale *= A;y *= B} + if(scale === 1 / 0)return x * y * scale; + while(Math.abs(x) < B){scale *= B;x *= A} + while(Math.abs(y) < B){scale *= B;y *= A} + if(scale === 0)return z; + var xs=x,ys=y,zs=z / scale; + if(Math.abs(zs) > Math.abs(xs * ys) * 4 / EPSILON)return z; + if(Math.abs(zs) < Math.abs(xs * ys) * EPSILON / 4 * EPSILON / 4) + zs = (z < 0?- 1:+ 1) * MIN_VALUE; + var + xy=multiply(xs,ys), + s=add(xy.p,zs), + u=add(xy.e,s.e), + i=add(s.s,u.s), + f=i.s + adjust(i.e,u.e); + if(f === 0)return f; + var fs=f * scale; + if(Math.abs(fs) > MIN_VALUE)return fs; + return fs + adjust(f - fs / scale,i.e) * scale} + function caml_recommended_domain_count(unit){return 1} + function caml_bswap16(x){return (x & 0x00FF) << 8 | (x & 0xFF00) >> 8} + function caml_ml_set_binary_mode(chanid,mode) + {var chan=caml_ml_channels[chanid]; + chan.file.flags.text = ! mode; + chan.file.flags.binary = mode; + return 0} + function caml_final_register(){return 0} + function caml_gr_draw_rect(x,y,w,h) + {var s=caml_gr_state_get(); + s.context.strokeRect(x,s.height - y,w,- h); + return 0} + function caml_string_get16(s,i) + {if(i >>> 0 >= caml_ml_string_length(s) - 1)caml_string_bound_error(); + var b1=caml_string_unsafe_get(s,i),b2=caml_string_unsafe_get(s,i + 1); + return b2 << 8 | b1} + function caml_output_value(chanid,v,flags) + {var s=caml_output_value_to_string(v,flags); + caml_ml_output(chanid,s,0,caml_ml_string_length(s)); + return 0} + function caml_ba_get_3(ba,i0,i1,i2){return ba.get(ba.offset([i0,i1,i2]))} + function caml_ephe_blit_key(a1,i1,a2,i2,len) + {caml_array_blit + (a1,caml_ephe_key_offset + i1 - 1,a2,caml_ephe_key_offset + i2 - 1,len); + return 0} + function ml_z_to_int32(z1){return ml_z_to_int(z1)} + var caml_initial_time=new Date().getTime() * 0.001; + function caml_sys_time() + {var now=new Date().getTime();return now * 0.001 - caml_initial_time} + function caml_sys_time_include_children(b){return caml_sys_time()} + function caml_check_bound(array,index) + {if(index >>> 0 >= array.length - 1)caml_array_bound_error(); + return array} + function caml_unix_getpwuid(unit){caml_raise_not_found()} + function ml_z_compare(z1,z2){return bigInt(z1).compare(bigInt(z2))} + function caml_hash(count,limit,seed,obj) + {var queue,rd,wr,sz,num,h,v,i,len; + sz = limit; + if(sz < 0 || sz > 256)sz = 256; + num = count; + h = seed; + queue = [obj]; + rd = 0; + wr = 1; + while(rd < wr && num > 0) + {v = queue[rd++]; + if(v && v.caml_custom) + {if + (caml_custom_ops[v.caml_custom] + && + caml_custom_ops[v.caml_custom].hash) + {var hh=caml_custom_ops[v.caml_custom].hash(v); + h = caml_hash_mix_int(h,hh); + num--}} + else + if(v instanceof Array && v[0] === (v[0] | 0)) + switch(v[0]) + {case 248:h = caml_hash_mix_int(h,v[2]);num--;break; + case 250:queue[--rd] = v[1];break; + default: + if(caml_is_continuation_tag(v[0]))break; + var tag=v.length - 1 << 10 | v[0]; + h = caml_hash_mix_int(h,tag); + for(i = 1,len = v.length;i < len;i++) + {if(wr >= sz)break;queue[wr++] = v[i]} + break} + else + if(caml_is_ml_bytes(v)) + {h = caml_hash_mix_bytes(h,v);num--} + else + if(caml_is_ml_string(v)) + {h = caml_hash_mix_string(h,v);num--} + else + if(typeof v === "string") + {h = caml_hash_mix_jsbytes(h,v);num--} + else + if(v === (v | 0)) + {h = caml_hash_mix_int(h,v + v + 1);num--} + else + if(v === + v){h = caml_hash_mix_float(h,v);num--}} + h = caml_hash_mix_final(h); + return h & 0x3FFFFFFF} + function caml_ba_to_typed_array(ba){return ba.data} + function caml_domain_dls_get(unit){return caml_domain_dls} + function caml_bytes_get32(s,i) + {if(i >>> 0 >= s.l - 3)caml_bytes_bound_error(); + var + b1=caml_bytes_unsafe_get(s,i), + b2=caml_bytes_unsafe_get(s,i + 1), + b3=caml_bytes_unsafe_get(s,i + 2), + b4=caml_bytes_unsafe_get(s,i + 3); + return b4 << 24 | b3 << 16 | b2 << 8 | b1} + function caml_frexp_float(x) + {if(x == 0 || ! isFinite(x))return [0,x,0]; + var neg=x < 0; + if(neg)x = - x; + var exp=Math.max(- 1023,jsoo_floor_log2(x) + 1); + x *= Math.pow(2,- exp); + while(x < 0.5){x *= 2;exp--} + while(x >= 1){x *= 0.5;exp++} + if(neg)x = - x; + return [0,x,exp]} + function ml_z_pred(z1){return ml_z_normalize(bigInt(z1).prev())} + function caml_string_get64(s,i) + {if(i >>> 0 >= caml_ml_string_length(s) - 7)caml_string_bound_error(); + var a=new Array(8); + for(var j=0;j < 8;j++)a[7 - j] = caml_string_unsafe_get(s,i + j); + return caml_int64_of_bytes(a)} + function caml_js_error_option_of_exception(exn) + {if(exn.js_error)return [0,exn.js_error];return 0} + function caml_ml_pos_out_64(chanid) + {return caml_int64_of_float(caml_pos_out(chanid))} + function ml_z_extract(z1,pos,len) + {z1 = bigInt(z1); + return ml_z_normalize + (z1.shiftRight(pos).and(bigInt(2).pow(len).subtract(1)))} + function ml_z_remove(a,b) + {var zero=bigInt(0),one=bigInt(1); + a = bigInt(a); + b = bigInt(b); + if(b.equals(zero))caml_raise_zero_divide(); + if(a.equals(zero) || b.abs().equals(one))return [0,a,0]; + var i=0; + while(a.isDivisibleBy(b)){a = a.divide(b);i++} + return [0,ml_z_normalize(a),i]} + function ml_z_of_float(f1) + {if(f1 == Infinity || f1 == - Infinity || f1 != f1) + caml_raise_constant(caml_named_value("ml_z_overflow")); + return ml_z_normalize(bigInt(f1 < 0?Math.ceil(f1):Math.floor(f1)))} + function ml_z_lognot(z1){return ml_z_normalize(bigInt(z1).not())} + function caml_unix_findclose(dir_handle) + {return caml_unix_closedir(dir_handle)} + function caml_gr_close_subwindow(a) + {caml_failwith("caml_gr_close_subwindow not Implemented")} + function caml_floatarray_blit(a1,i1,a2,i2,len) + {if(i2 <= i1) + for(var j=1;j <= len;j++)a2[i2 + j] = a1[i1 + j]; + else + for(var j=len;j >= 1;j--)a2[i2 + j] = a1[i1 + j]; + return 0} + function caml_get_minor_free(unit){return 0} + function caml_set_static_env(k,v) + {if(! globalThis.jsoo_static_env)globalThis.jsoo_static_env = {}; + globalThis.jsoo_static_env[k] = v; + return 0} + function caml_ba_change_layout(ba,layout) + {if(ba.layout == layout)return ba; + var new_dims=[]; + for(var i=0;i < ba.dims.length;i++) + new_dims[i] = ba.dims[ba.dims.length - i - 1]; + return caml_ba_create_unsafe(ba.kind,layout,new_dims,ba.data)} + function caml_js_new(c,a) + {switch(a.length) + {case 1:return new c(); + case 2:return new c(a[1]); + case 3:return new c(a[1],a[2]); + case 4:return new c(a[1],a[2],a[3]); + case 5:return new c(a[1],a[2],a[3],a[4]); + case 6:return new c(a[1],a[2],a[3],a[4],a[5]); + case 7:return new c(a[1],a[2],a[3],a[4],a[5],a[6]); + case 8:return new c(a[1],a[2],a[3],a[4],a[5],a[6],a[7]) + } + function F(){return c.apply(this,caml_js_from_array(a))} + F.prototype = c.prototype; + return new F()} + function caml_gr_current_y(){var s=caml_gr_state_get();return s.y} + function caml_format_int(fmt,i) + {if(caml_jsbytes_of_string(fmt) == "%d") + return caml_string_of_jsbytes("" + i); + var f=caml_parse_format(fmt); + if(i < 0)if(f.signedconv){f.sign = - 1;i = - i}else i >>>= 0; + var s=i.toString(f.base); + if(f.prec >= 0) + {f.filler = " "; + var n=f.prec - s.length; + if(n > 0)s = caml_str_repeat(n,"0") + s} + return caml_finish_formatting(f,s)} + function jsoo_effect_not_supported() + {caml_failwith("Effect handlers are not supported")} + function caml_continuation_use_and_update_handler_noexc + (cont,hval,hexn,heff) + {var stack=caml_continuation_use_noexc(cont); + stack[3] = [0,hval,hexn,heff]; + return stack} + function caml_obj_truncate(x,s) + {if(s <= 0 || s + 1 > x.length)caml_invalid_argument("Obj.truncate"); + if(x.length != s + 1)x.length = s + 1; + return 0} + function caml_js_to_string(s){return caml_string_of_jsstring(s)} + function is_digit_odd(nat,ofs){if(nat.data[ofs] & 1)return 1;return 0} + function caml_runtime_variant(_unit){return caml_string_of_jsbytes("")} + function caml_ml_open_descriptor_out(fd) + {var file=caml_sys_fds[fd]; + if(file.flags.rdonly)caml_raise_sys_error("fd " + fd + " is readonly"); + var + buffered=file.flags.buffered !== undefined?file.flags.buffered:1, + channel= + {file:file, + offset:file.flags.append?file.length():0, + fd:fd, + opened:true, + out:true, + buffer_curr:0, + buffer:new Uint8Array(65536), + buffered:buffered}; + caml_ml_channels[channel.fd] = channel; + return channel.fd} + function caml_array_concat(l) + {var a=[0]; + while(l !== 0) + {var b=l[1];for(var i=1;i < b.length;i++)a.push(b[i]);l = l[2]} + return a} + function caml_gr_open_graph(info) + {var info=caml_jsstring_of_string(info); + function get(name) + {var res=info.match("(^|,) *" + name + " *= *([a-zA-Z0-9_]+) *(,|$)"); + if(res)return res[2]} + var specs=[]; + if(! (info == ""))specs.push(info); + var target=get("target"); + if(! target)target = ""; + var status=get("status"); + if(! status)specs.push("status=1"); + var w=get("width"); + w = w?parseInt(w):200; + specs.push("width=" + w); + var h=get("height"); + h = h?parseInt(h):200; + specs.push("height=" + h); + var win=globalThis.open("about:blank",target,specs.join(",")); + if(! win)caml_failwith("Graphics.open_graph: cannot open the window"); + var doc=win.document,canvas=doc.createElement("canvas"); + canvas.width = w; + canvas.height = h; + var ctx=caml_gr_state_create(canvas,w,h); + ctx.set_title = function(title){doc.title = title}; + caml_gr_state_set(ctx); + var body=doc.body; + body.style.margin = "0px"; + body.appendChild(canvas); + return 0} + function caml_make_float_vect(len) + {if(len < 0)caml_array_bound_error(); + var len=len + 1 | 0,b=new Array(len); + b[0] = 254; + for(var i=1;i < len;i++)b[i] = 0; + return b} + function caml_cbrt_float(x){return Math.cbrt(x)} + function caml_memprof_stop(unit){return 0} + function caml_eventlog_pause(unit){return 0} + function caml_greaterequal(x,y) + {return + (caml_compare_val(x,y,false) >= 0)} + function ml_z_numbits(z1) + {z1 = bigInt(z1).abs(); + var n=0,upperBound=bigInt.one; + while(upperBound.leq(z1)){n += 1;upperBound = upperBound.multiply(2)} + return n} + function caml_get_exception_raw_backtrace(){return [0]} + function caml_log1p_float(x){return Math.log1p(x)} + function caml_lazy_make_forward(v){return [250,v]} + function lor_digit_nat(nat1,ofs1,nat2,ofs2) + {nat1.data[ofs1] |= nat2.data[ofs2];return 0} + function caml_gr_blit_image(im,x,y) + {var + s=caml_gr_state_get(), + im2= + s.context.getImageData(x,s.height - im.height - y,im.width,im.height); + for(var i=0;i < im2.data.length;i += 4) + {im.data[i] = im2.data[i]; + im.data[i + 1] = im2.data[i + 1]; + im.data[i + 2] = im2.data[i + 2]; + im.data[i + 3] = im2.data[i + 3]} + return 0} + function caml_gr_window_id(a) + {caml_failwith("caml_gr_window_id not Implemented")} + function caml_js_on_ie() + {var ua=globalThis.navigator?globalThis.navigator.userAgent:""; + return ua.indexOf("MSIE") != - 1 && ua.indexOf("Opera") != 0} + function caml_int64_shift_right(x,s){return x.shift_right(s)} + function caml_ba_layout(ba){return ba.layout} + function caml_convert_raw_backtrace(){return [0]} + function caml_array_set(array,index,newval) + {if(index < 0 || index >= array.length - 1)caml_array_bound_error(); + array[index + 1] = newval; + return 0} + function caml_alloc_stack(hv,hx,hf){return 0} + function caml_bytes_greaterequal(s1,s2) + {return caml_bytes_lessequal(s2,s1)} + function ml_z_perfect_power(z) + {z = bigInt(z); + var zero=bigInt(0),one=bigInt(1); + if(z.equals(zero) || z.equals(one) || z.equals(one.negate()))return 1; + var log2z=ml_z_numbits(z.abs()); + for(var b=2;b <= log2z;b++) + {if(z.lt(zero) && b % 2 == 0)continue; + var zp=z.abs(),p=bigInt(ml_z_root(zp,b)); + if(z.lt(zero))p = p.negate(); + var r=bigInt(ml_z_pow(p,b)); + if(z.equals(r))return 1} + return 0} + function set_digit_nat(nat,ofs,digit){nat.data[ofs] = digit;return 0} + function ml_z_init(unit) + {caml_custom_ops["_z"] + = + {serialize:caml_zarith_marshal, + deserialize:caml_zarith_unmarshal, + hash:ml_z_hash, + compare:ml_z_compare}; + return 0} + function caml_gr_doc_of_state(state) + {if(state.canvas.ownerDocument)return state.canvas.ownerDocument} + function caml_ml_output_int(chanid,i) + {var + arr=[i >> 24 & 0xFF,i >> 16 & 0xFF,i >> 8 & 0xFF,i & 0xFF], + s=caml_string_of_array(arr); + caml_ml_output(chanid,s,0,4); + return 0} + function caml_obj_with_tag(tag,x) + {var l=x.length,a=new Array(l); + a[0] = tag; + for(var i=1;i < l;i++)a[i] = x[i]; + return a} + function caml_ml_channel_size(chanid) + {var chan=caml_ml_channels[chanid];return chan.file.length()} + function caml_raw_backtrace_slot() + {caml_invalid_argument + ("Printexc.get_raw_backtrace_slot: index out of bounds")} + function caml_hexstring_of_float(x,prec,style) + {if(! isFinite(x)) + {if(isNaN(x))return caml_string_of_jsstring("nan"); + return caml_string_of_jsstring(x > 0?"infinity":"-infinity")} + var sign=x == 0 && 1 / x == - Infinity?1:x >= 0?0:1; + if(sign)x = - x; + var exp=0; + if(x == 0) + ; + else + if(x < 1) + while(x < 1 && exp > - 1022){x *= 2;exp--} + else + while(x >= 2){x /= 2;exp++} + var exp_sign=exp < 0?"":"+",sign_str=""; + if(sign) + sign_str = "-"; + else + switch(style) + {case 43:sign_str = "+";break; + case 32:sign_str = " ";break; + default:break} + if(prec >= 0 && prec < 13) + {var cst=Math.pow(2,prec * 4);x = Math.round(x * cst) / cst} + var x_str=x.toString(16); + if(prec >= 0) + {var idx=x_str.indexOf("."); + if(idx < 0) + x_str += "." + caml_str_repeat(prec,"0"); + else + {var size=idx + 1 + prec; + if(x_str.length < size) + x_str += caml_str_repeat(size - x_str.length,"0"); + else + x_str = x_str.substr(0,size)}} + return caml_string_of_jsstring + (sign_str + "0x" + x_str + "p" + exp_sign + exp.toString(10))} + function caml_js_wrap_meth_callback_strict(arity,f) + {return function() + {var args=new Array(arity + 1),len=Math.min(arguments.length,arity); + args[0] = this; + for(var i=0;i < len;i++)args[i + 1] = arguments[i]; + return caml_callback(f,args)}} + function ml_z_format(fmt,z1) + {z1 = bigInt(z1); + var + fmt=caml_jsbytes_of_string(fmt), + base=10, + cas=0, + width=0, + alt=0, + dir=0, + sign="", + pad=" ", + idx=0, + prefix=""; + while(fmt[idx] == "%")idx++; + for(;;idx++) + if(fmt[idx] == "#") + alt = 1; + else + if(fmt[idx] == "0") + pad = "0"; + else + if(fmt[idx] == "-") + dir = 1; + else + if(fmt[idx] == " " || fmt[idx] == "+")sign = fmt[idx];else break; + if(z1.lt(bigInt(0))){sign = "-";z1 = z1.negate()} + for(;fmt[idx] >= "0" && fmt[idx] <= "9";idx++) + width = 10 * width + + fmt[idx]; + switch(fmt[idx]) + {case "i": + case "d": + case "u":break; + case "b":base = 2;if(alt)prefix = "0b";break; + case "o":base = 8;if(alt)prefix = "0o";break; + case "x":base = 16;if(alt)prefix = "0x";break; + case "X":base = 16;if(alt)prefix = "0X";cas = 1;break; + default:caml_failwith("Unsupported format '" + fmt + "'")} + if(dir)pad = " "; + var res=z1.toString(base); + if(cas === 1)res = res.toUpperCase(); + var size=res.length; + if(pad == " ") + if(dir) + {res = sign + prefix + res;for(;res.length < width;)res = res + pad} + else + {res = sign + prefix + res;for(;res.length < width;)res = pad + res} + else + {var pre=sign + prefix; + for(;res.length + pre.length < width;)res = pad + res; + res = pre + res} + return caml_string_of_jsbytes(res)} + function ml_z_to_int64(z1) + {z1 = bigInt(z1); + if(! ml_z_fits_int64(z1)) + caml_raise_constant(caml_named_value("ml_z_overflow")); + var + mask=bigInt(0xffffffff), + lo=z1.and(mask).toJSNumber(), + hi=z1.shiftRight(32).and(mask).toJSNumber(), + x=caml_int64_create_lo_hi(lo,hi); + return x} + function ml_z_size(z1) + {return bigInt(z1).toArray(Math.pow(2,32)).value.length} + function caml_unix_readlink(name) + {var root=resolve_fs_device(name); + if(! root.device.readlink) + caml_failwith("caml_unix_readlink: not implemented"); + return root.device.readlink(root.rest,true)} + function caml_backtrace_status(){return 0} + function caml_sys_argv(a){return caml_argv} + function caml_install_signal_handler(){return 0} + function caml_ba_fill(ba,v){ba.fill(v);return 0} + function caml_modf_float(x) + {if(isFinite(x)) + {var neg=1 / x < 0; + x = Math.abs(x); + var i=Math.floor(x),f=x - i; + if(neg){i = - i;f = - f} + return [0,f,i]} + if(isNaN(x))return [0,NaN,NaN]; + return [0,1 / x,x]} + function caml_gc_get(){return [0,0,0,0,0,0,0,0,0]} + function caml_float_compare(x,y) + {if(x === y)return 0; + if(x < y)return - 1; + if(x > y)return 1; + if(x === x)return 1; + if(y === y)return - 1; + return 0} + function ml_z_shift_right_trunc(z1,z2) + {return ml_z_div(bigInt(z1),bigInt(2).pow(z2))} + function caml_string_set32(s,i,i32){return caml_bytes_set32(s,i,i32)} + function caml_parse_engine(tables,env,cmd,arg) + {var + ERRCODE=256, + loop=6, + testshift=7, + shift=8, + shift_recover=9, + reduce=10, + READ_TOKEN=0, + RAISE_PARSE_ERROR=1, + GROW_STACKS_1=2, + GROW_STACKS_2=3, + COMPUTE_SEMANTIC_ACTION=4, + CALL_ERROR_FUNCTION=5, + env_s_stack=1, + env_v_stack=2, + env_symb_start_stack=3, + env_symb_end_stack=4, + env_stacksize=5, + env_stackbase=6, + env_curr_char=7, + env_lval=8, + env_symb_start=9, + env_symb_end=10, + env_asp=11, + env_rule_len=12, + env_rule_number=13, + env_sp=14, + env_state=15, + env_errflag=16, + tbl_transl_const=2, + tbl_transl_block=3, + tbl_lhs=4, + tbl_len=5, + tbl_defred=6, + tbl_dgoto=7, + tbl_sindex=8, + tbl_rindex=9, + tbl_gindex=10, + tbl_tablesize=11, + tbl_table=12, + tbl_check=13, + tbl_names_const=15, + tbl_names_block=16; + function log(x) + {var s=caml_string_of_jsbytes(x + "\n"); + caml_ml_output(2,s,0,caml_ml_string_length(s))} + function token_name(names,number) + {var str=caml_jsstring_of_string(names); + if(str[0] == "\x00")return ""; + return str.split("\x00")[number]} + function print_token(state,tok) + {var token,kind; + if(tok instanceof Array) + {token = token_name(tables[tbl_names_block],tok[0]); + if(typeof tok[1] == "number") + kind = "" + tok[1]; + else + if(typeof tok[1] == "string") + kind = tok[1]; + else + if(tok[1] instanceof MlBytes) + kind = caml_jsbytes_of_string(tok[1]); + else + kind = "_"; + log("State " + state + ": read token " + token + "(" + kind + ")")} + else + {token = token_name(tables[tbl_names_const],tok); + log("State " + state + ": read token " + token)}} + if(! tables.dgoto) + {tables.defred = caml_lex_array(tables[tbl_defred]); + tables.sindex = caml_lex_array(tables[tbl_sindex]); + tables.check = caml_lex_array(tables[tbl_check]); + tables.rindex = caml_lex_array(tables[tbl_rindex]); + tables.table = caml_lex_array(tables[tbl_table]); + tables.len = caml_lex_array(tables[tbl_len]); + tables.lhs = caml_lex_array(tables[tbl_lhs]); + tables.gindex = caml_lex_array(tables[tbl_gindex]); + tables.dgoto = caml_lex_array(tables[tbl_dgoto])} + var + res=0, + n, + n1, + n2, + state1, + sp=env[env_sp], + state=env[env_state], + errflag=env[env_errflag]; + exit: + for(;;) + next: + switch(cmd) + {case 0:state = 0;errflag = 0; + case 6: + n = tables.defred[state]; + if(n != 0){cmd = reduce;break} + if(env[env_curr_char] >= 0){cmd = testshift;break} + res = READ_TOKEN; + break exit; + case 1: + if(arg instanceof Array) + {env[env_curr_char] = tables[tbl_transl_block][arg[0] + 1]; + env[env_lval] = arg[1]} + else + {env[env_curr_char] = tables[tbl_transl_const][arg + 1]; + env[env_lval] = 0} + if(caml_parser_trace)print_token(state,arg); + case 7: + n1 = tables.sindex[state]; + n2 = n1 + env[env_curr_char]; + if + (n1 + != + 0 + && + n2 + >= + 0 + && + n2 + <= + tables[tbl_tablesize] + && + tables.check[n2] + == + env[env_curr_char]) + {cmd = shift;break} + n1 = tables.rindex[state]; + n2 = n1 + env[env_curr_char]; + if + (n1 + != + 0 + && + n2 + >= + 0 + && + n2 + <= + tables[tbl_tablesize] + && + tables.check[n2] + == + env[env_curr_char]) + {n = tables.table[n2];cmd = reduce;break} + if(errflag <= 0){res = CALL_ERROR_FUNCTION;break exit} + case 5: + if(errflag < 3) + {errflag = 3; + for(;;) + {state1 = env[env_s_stack][sp + 1]; + n1 = tables.sindex[state1]; + n2 = n1 + ERRCODE; + if + (n1 + != + 0 + && + n2 + >= + 0 + && + n2 + <= + tables[tbl_tablesize] + && + tables.check[n2] + == + ERRCODE) + {if(caml_parser_trace)log("Recovering in state " + state1); + cmd = shift_recover; + break next} + else + {if(caml_parser_trace)log("Discarding state " + state1); + if(sp <= env[env_stackbase]) + {if(caml_parser_trace)log("No more states to discard"); + return RAISE_PARSE_ERROR} + sp--}}} + else + {if(env[env_curr_char] == 0)return RAISE_PARSE_ERROR; + if(caml_parser_trace)log("Discarding last token read"); + env[env_curr_char] = - 1; + cmd = loop; + break} + case 8:env[env_curr_char] = - 1;if(errflag > 0)errflag--; + case 9: + if(caml_parser_trace) + log("State " + state + ": shift to state " + tables.table[n2]); + state = tables.table[n2]; + sp++; + if(sp >= env[env_stacksize]){res = GROW_STACKS_1;break exit} + case 2: + env[env_s_stack][sp + 1] = state; + env[env_v_stack][sp + 1] = env[env_lval]; + env[env_symb_start_stack][sp + 1] = env[env_symb_start]; + env[env_symb_end_stack][sp + 1] = env[env_symb_end]; + cmd = loop; + break; + case 10: + if(caml_parser_trace) + log("State " + state + ": reduce by rule " + n); + var m=tables.len[n]; + env[env_asp] = sp; + env[env_rule_number] = n; + env[env_rule_len] = m; + sp = sp - m + 1; + m = tables.lhs[n]; + state1 = env[env_s_stack][sp]; + n1 = tables.gindex[m]; + n2 = n1 + state1; + if + (n1 + != + 0 + && + n2 + >= + 0 + && + n2 + <= + tables[tbl_tablesize] + && + tables.check[n2] + == + state1) + state = tables.table[n2]; + else + state = tables.dgoto[m]; + if(sp >= env[env_stacksize]){res = GROW_STACKS_2;break exit} + case 3:res = COMPUTE_SEMANTIC_ACTION;break exit; + case 4: + env[env_s_stack][sp + 1] = state; + env[env_v_stack][sp + 1] = arg; + var asp=env[env_asp]; + env[env_symb_end_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; + if(sp > asp) + env[env_symb_start_stack][sp + 1] + = + env[env_symb_end_stack][asp + 1]; + cmd = loop; + break; + default:return RAISE_PARSE_ERROR} + env[env_sp] = sp; + env[env_state] = state; + env[env_errflag] = errflag; + return res} + function caml_jsoo_flags_effects(unit){return 0} + function caml_update_dummy(x,y) + {if(typeof y === "function"){x.fun = y;return 0} + if(y.fun){x.fun = y.fun;return 0} + var i=y.length; + while(i--)x[i] = y[i]; + return 0} + function caml_array_fill(array,ofs,len,v) + {for(var i=0;i < len;i++)array[ofs + i + 1] = v;return 0} + function caml_sys_mkdir(name,perm) + {var root=resolve_fs_device(name); + root.device.mkdir(root.rest,perm); + return 0} + function caml_string_notequal(s1,s2){return 1 - caml_string_equal(s1,s2)} + function caml_bytes_greaterthan(s1,s2){return caml_bytes_lessthan(s2,s1)} + function caml_gr_make_image(arr) + {var + s=caml_gr_state_get(), + h=arr.length - 1, + w=arr[1].length - 1, + im=s.context.createImageData(w,h); + for(var i=0;i < h;i++) + for(var j=0;j < w;j++) + {var c=arr[i + 1][j + 1],o=i * (w * 4) + j * 4; + if(c == - 1) + {im.data[o + 0] = 0; + im.data[o + 1] = 0; + im.data[o + 2] = 0; + im.data[o + 3] = 0} + else + {im.data[o + 0] = c >> 16 & 0xff; + im.data[o + 1] = c >> 8 & 0xff; + im.data[o + 2] = c >> 0 & 0Xff; + im.data[o + 3] = 0xff}} + return im} + function caml_ml_set_channel_output(chanid,f) + {var chan=caml_ml_channels[chanid]; + chan.output = function(s){f(s)}; + return 0} + function caml_read_file_content(name) + {var + name=typeof name == "string"?caml_string_of_jsbytes(name):name, + root=resolve_fs_device(name); + if(root.device.exists(root.rest)) + {var + file=root.device.open(root.rest,{rdonly:1}), + len=file.length(), + buf=new Uint8Array(len); + file.read(0,buf,0,len); + return caml_string_of_array(buf)} + caml_raise_no_such_file(caml_jsbytes_of_string(name))} + function caml_js_to_float(x){return x} + function caml_setup_uncaught_exception_handler() + {var process=globalThis.process; + if(process && process.on) + process.on + ("uncaughtException", + function(err,origin) + {caml_fatal_uncaught_exception(err);process.exit(2)}); + else + if(globalThis.addEventListener) + globalThis.addEventListener + ("error", + function(event) + {if(event.error)caml_fatal_uncaught_exception(event.error)})} + caml_setup_uncaught_exception_handler(); + globalThis.jsoo_runtime + = + {ml_z_normalize:ml_z_normalize, + ml_z_mul_overflows:ml_z_mul_overflows, + ml_z_init:ml_z_init, + ml_z_neg:ml_z_neg, + ml_z_add:ml_z_add, + ml_z_sub:ml_z_sub, + ml_z_mul:ml_z_mul, + ml_z_div:ml_z_div, + ml_z_cdiv:ml_z_cdiv, + ml_z_fdiv:ml_z_fdiv, + ml_z_rem:ml_z_rem, + ml_z_div_rem:ml_z_div_rem, + ml_z_succ:ml_z_succ, + ml_z_pred:ml_z_pred, + ml_z_abs:ml_z_abs, + ml_z_logand:ml_z_logand, + ml_z_logor:ml_z_logor, + ml_z_logxor:ml_z_logxor, + ml_z_lognot:ml_z_lognot, + ml_z_shift_left:ml_z_shift_left, + ml_z_shift_right:ml_z_shift_right, + ml_z_shift_right_trunc:ml_z_shift_right_trunc, + ml_z_of_int32:ml_z_of_int32, + ml_z_of_nativeint:ml_z_of_nativeint, + ml_z_of_int64:ml_z_of_int64, + ml_z_of_float:ml_z_of_float, + ml_z_to_int:ml_z_to_int, + ml_z_to_int32:ml_z_to_int32, + ml_z_to_int64:ml_z_to_int64, + ml_z_testbit:ml_z_testbit, + ml_z_to_nativeint:ml_z_to_nativeint, + ml_z_format:ml_z_format, + jsoo_z_of_js_string_base:jsoo_z_of_js_string_base, + ml_z_of_substring_base:ml_z_of_substring_base, + ml_z_compare:ml_z_compare, + ml_z_equal:ml_z_equal, + ml_z_sign:ml_z_sign, + ml_z_gcd:ml_z_gcd, + ml_z_numbits:ml_z_numbits, + ml_z_fits_int:ml_z_fits_int, + ml_z_fits_int32:ml_z_fits_int32, + ml_z_fits_int64:ml_z_fits_int64, + ml_z_fits_nativeint:ml_z_fits_nativeint, + ml_z_powm:ml_z_powm, + ml_z_pow:ml_z_pow, + ml_z_hash:ml_z_hash, + ml_z_to_bits:ml_z_to_bits, + ml_z_of_bits:ml_z_of_bits, + ml_z_powm_sec:ml_z_powm_sec, + ml_z_root:ml_z_root, + ml_z_rootrem:ml_z_rootrem, + ml_z_invert:ml_z_invert, + ml_z_perfect_power:ml_z_perfect_power, + ml_z_perfect_square:ml_z_perfect_square, + ml_z_probab_prime:ml_z_probab_prime, + ml_z_nextprime:ml_z_nextprime, + ml_z_extract:ml_z_extract, + ml_z_gcdext_intern:ml_z_gcdext_intern, + ml_z_sqrt:ml_z_sqrt, + ml_z_sqrt_rem:ml_z_sqrt_rem, + ml_z_trailing_zeros:ml_z_trailing_zeros, + ml_z_popcount:ml_z_popcount, + ml_z_hamdist:ml_z_hamdist, + ml_z_size:ml_z_size, + ml_z_divexact:ml_z_divexact, + caml_zarith_marshal:caml_zarith_marshal, + caml_zarith_unmarshal:caml_zarith_unmarshal, + ml_z_divisible:ml_z_divisible, + ml_z_congruent:ml_z_congruent, + ml_z_remove:ml_z_remove, + ml_z_fac:ml_z_fac, + ml_z_fac2:ml_z_fac2, + ml_z_facM:ml_z_facM, + ml_z_fib:ml_z_fib, + ml_z_lucnum:ml_z_lucnum, + ml_z_jacobi:ml_z_jacobi, + ml_z_legendre:ml_z_legendre, + ml_z_kronecker:ml_z_kronecker, + ml_z_primorial:ml_z_primorial, + ml_z_bin:ml_z_bin, + bigInt:bigInt, + caml_alloc_stack:caml_alloc_stack, + caml_continuation_use_noexc:caml_continuation_use_noexc, + caml_continuation_use_and_update_handler_noexc: + caml_continuation_use_and_update_handler_noexc, + caml_get_continuation_callstack:caml_get_continuation_callstack, + caml_ml_condition_new:caml_ml_condition_new, + caml_ml_condition_wait:caml_ml_condition_wait, + caml_ml_condition_broadcast:caml_ml_condition_broadcast, + caml_ml_condition_signal:caml_ml_condition_signal, + jsoo_effect_not_supported:jsoo_effect_not_supported, + MlMutex:MlMutex, + caml_ml_mutex_new:caml_ml_mutex_new, + caml_ml_mutex_lock:caml_ml_mutex_lock, + caml_ml_mutex_try_lock:caml_ml_mutex_try_lock, + caml_ml_mutex_unlock:caml_ml_mutex_unlock, + caml_lxm_next:caml_lxm_next, + caml_domain_dls:caml_domain_dls, + caml_domain_dls_set:caml_domain_dls_set, + caml_domain_dls_get:caml_domain_dls_get, + caml_atomic_load:caml_atomic_load, + caml_atomic_cas:caml_atomic_cas, + caml_atomic_fetch_add:caml_atomic_fetch_add, + caml_atomic_exchange:caml_atomic_exchange, + caml_ml_domain_unique_token:caml_ml_domain_unique_token, + caml_ml_domain_set_name:caml_ml_domain_set_name, + caml_recommended_domain_count:caml_recommended_domain_count, + caml_domain_id:caml_domain_id, + caml_domain_spawn:caml_domain_spawn, + caml_ml_domain_id:caml_ml_domain_id, + caml_ml_domain_cpu_relax:caml_ml_domain_cpu_relax, + caml_ephe_key_offset:caml_ephe_key_offset, + caml_ephe_data_offset:caml_ephe_data_offset, + caml_ephe_set_key:caml_ephe_set_key, + caml_ephe_unset_key:caml_ephe_unset_key, + caml_ephe_create:caml_ephe_create, + caml_weak_create:caml_weak_create, + caml_weak_set:caml_weak_set, + caml_ephe_get_key:caml_ephe_get_key, + caml_ephe_get_key_copy:caml_ephe_get_key_copy, + caml_ephe_check_key:caml_ephe_check_key, + caml_ephe_blit_key:caml_ephe_blit_key, + caml_ephe_blit_data:caml_ephe_blit_data, + caml_ephe_get_data:caml_ephe_get_data, + caml_ephe_get_data_copy:caml_ephe_get_data_copy, + caml_ephe_set_data:caml_ephe_set_data, + caml_ephe_unset_data:caml_ephe_unset_data, + caml_ephe_check_data:caml_ephe_check_data, + caml_unix_gettimeofday:caml_unix_gettimeofday, + caml_unix_time:caml_unix_time, + caml_unix_gmtime:caml_unix_gmtime, + caml_unix_localtime:caml_unix_localtime, + caml_unix_mktime:caml_unix_mktime, + caml_unix_startup:caml_unix_startup, + caml_unix_cleanup:caml_unix_cleanup, + caml_unix_filedescr_of_fd:caml_unix_filedescr_of_fd, + caml_unix_isatty:caml_unix_isatty, + make_unix_err_args:make_unix_err_args, + caml_unix_stat:caml_unix_stat, + caml_unix_stat_64:caml_unix_stat_64, + caml_unix_lstat:caml_unix_lstat, + caml_unix_lstat_64:caml_unix_lstat_64, + caml_unix_mkdir:caml_unix_mkdir, + caml_unix_rmdir:caml_unix_rmdir, + caml_unix_symlink:caml_unix_symlink, + caml_unix_readlink:caml_unix_readlink, + caml_unix_unlink:caml_unix_unlink, + caml_unix_getuid:caml_unix_getuid, + caml_unix_getpwuid:caml_unix_getpwuid, + caml_unix_has_symlink:caml_unix_has_symlink, + caml_unix_opendir:caml_unix_opendir, + caml_unix_readdir:caml_unix_readdir, + caml_unix_closedir:caml_unix_closedir, + caml_unix_rewinddir:caml_unix_rewinddir, + caml_unix_findfirst:caml_unix_findfirst, + caml_unix_findnext:caml_unix_findnext, + caml_unix_findclose:caml_unix_findclose, + caml_unix_inet_addr_of_string:caml_unix_inet_addr_of_string, + re_match:re_match, + re_search_forward:re_search_forward, + re_search_backward:re_search_backward, + re_string_match:re_string_match, + re_partial_match:re_partial_match, + re_replacement_text:re_replacement_text, + caml_str_initialize:caml_str_initialize, + caml_raise_sys_error:caml_raise_sys_error, + caml_sys_exit:caml_sys_exit, + caml_is_special_exception:caml_is_special_exception, + caml_format_exception:caml_format_exception, + caml_fatal_uncaught_exception:caml_fatal_uncaught_exception, + caml_set_static_env:caml_set_static_env, + caml_sys_getenv:caml_sys_getenv, + caml_sys_unsafe_getenv:caml_sys_unsafe_getenv, + caml_argv:caml_argv, + caml_executable_name:caml_executable_name, + caml_sys_get_argv:caml_sys_get_argv, + caml_sys_argv:caml_sys_argv, + caml_sys_modify_argv:caml_sys_modify_argv, + caml_sys_executable_name:caml_sys_executable_name, + caml_sys_system_command:caml_sys_system_command, + caml_sys_time:caml_sys_time, + caml_sys_time_include_children:caml_sys_time_include_children, + caml_sys_random_seed:caml_sys_random_seed, + caml_sys_const_big_endian:caml_sys_const_big_endian, + caml_sys_const_word_size:caml_sys_const_word_size, + caml_sys_const_int_size:caml_sys_const_int_size, + caml_sys_const_max_wosize:caml_sys_const_max_wosize, + caml_sys_const_ostype_unix:caml_sys_const_ostype_unix, + caml_sys_const_ostype_win32:caml_sys_const_ostype_win32, + caml_sys_const_ostype_cygwin:caml_sys_const_ostype_cygwin, + caml_sys_const_backend_type:caml_sys_const_backend_type, + os_type:os_type, + caml_sys_get_config:caml_sys_get_config, + caml_sys_isatty:caml_sys_isatty, + caml_runtime_variant:caml_runtime_variant, + caml_runtime_parameters:caml_runtime_parameters, + caml_install_signal_handler:caml_install_signal_handler, + caml_runtime_warnings:caml_runtime_warnings, + caml_ml_enable_runtime_warnings:caml_ml_enable_runtime_warnings, + caml_ml_runtime_warnings_enabled:caml_ml_runtime_warnings_enabled, + caml_spacetime_enabled:caml_spacetime_enabled, + caml_sys_const_naked_pointers_checked: + caml_sys_const_naked_pointers_checked, + caml_register_channel_for_spacetime:caml_register_channel_for_spacetime, + caml_spacetime_only_works_for_native_code: + caml_spacetime_only_works_for_native_code, + caml_call_gen:caml_call_gen, + caml_named_values:caml_named_values, + caml_register_named_value:caml_register_named_value, + caml_named_value:caml_named_value, + caml_global_data:caml_global_data, + caml_register_global:caml_register_global, + caml_get_global_data:caml_get_global_data, + caml_is_printable:caml_is_printable, + caml_maybe_print_stats:caml_maybe_print_stats, + caml_parser_trace:caml_parser_trace, + caml_parse_engine:caml_parse_engine, + caml_set_parser_trace:caml_set_parser_trace, + caml_update_dummy:caml_update_dummy, + caml_obj_is_block:caml_obj_is_block, + caml_obj_tag:caml_obj_tag, + caml_obj_set_tag:caml_obj_set_tag, + caml_obj_block:caml_obj_block, + caml_obj_with_tag:caml_obj_with_tag, + caml_obj_dup:caml_obj_dup, + caml_obj_truncate:caml_obj_truncate, + caml_obj_make_forward:caml_obj_make_forward, + caml_obj_compare_and_swap:caml_obj_compare_and_swap, + caml_obj_is_shared:caml_obj_is_shared, + caml_lazy_make_forward:caml_lazy_make_forward, + caml_get_public_method:caml_get_public_method, + caml_oo_last_id:caml_oo_last_id, + caml_set_oo_id:caml_set_oo_id, + caml_fresh_oo_id:caml_fresh_oo_id, + caml_obj_raw_field:caml_obj_raw_field, + caml_obj_set_raw_field:caml_obj_set_raw_field, + caml_obj_reachable_words:caml_obj_reachable_words, + caml_obj_add_offset:caml_obj_add_offset, + caml_obj_update_tag:caml_obj_update_tag, + caml_lazy_update_to_forcing:caml_lazy_update_to_forcing, + caml_lazy_update_to_forward:caml_lazy_update_to_forward, + caml_lazy_reset_to_lazy:caml_lazy_reset_to_lazy, + caml_lazy_read_result:caml_lazy_read_result, + caml_is_continuation_tag:caml_is_continuation_tag, + initialize_nat:initialize_nat, + MlNat:MlNat, + caml_hash_nat:caml_hash_nat, + nat_of_array:nat_of_array, + create_nat:create_nat, + set_to_zero_nat:set_to_zero_nat, + blit_nat:blit_nat, + set_digit_nat:set_digit_nat, + nth_digit_nat:nth_digit_nat, + set_digit_nat_native:set_digit_nat_native, + nth_digit_nat_native:nth_digit_nat_native, + num_digits_nat:num_digits_nat, + num_leading_zero_bits_in_digit:num_leading_zero_bits_in_digit, + is_digit_int:is_digit_int, + is_digit_zero:is_digit_zero, + is_digit_odd:is_digit_odd, + incr_nat:incr_nat, + add_nat:add_nat, + complement_nat:complement_nat, + decr_nat:decr_nat, + sub_nat:sub_nat, + mult_digit_nat:mult_digit_nat, + mult_nat:mult_nat, + square_nat:square_nat, + shift_left_nat:shift_left_nat, + div_helper:div_helper, + div_digit_nat:div_digit_nat, + div_nat:div_nat, + shift_right_nat:shift_right_nat, + compare_digits_nat:compare_digits_nat, + compare_nat:compare_nat, + compare_nat_real:compare_nat_real, + land_digit_nat:land_digit_nat, + lor_digit_nat:lor_digit_nat, + lxor_digit_nat:lxor_digit_nat, + serialize_nat:serialize_nat, + deserialize_nat:deserialize_nat, + caml_str_repeat:caml_str_repeat, + caml_subarray_to_jsbytes:caml_subarray_to_jsbytes, + caml_utf8_of_utf16:caml_utf8_of_utf16, + caml_utf16_of_utf8:caml_utf16_of_utf8, + jsoo_is_ascii:jsoo_is_ascii, + caml_bytes_unsafe_get:caml_bytes_unsafe_get, + caml_bytes_unsafe_set:caml_bytes_unsafe_set, + caml_string_bound_error:caml_string_bound_error, + caml_bytes_bound_error:caml_bytes_bound_error, + caml_string_get:caml_string_get, + caml_string_get16:caml_string_get16, + caml_bytes_get16:caml_bytes_get16, + caml_string_get32:caml_string_get32, + caml_bytes_get32:caml_bytes_get32, + caml_string_get64:caml_string_get64, + caml_bytes_get64:caml_bytes_get64, + caml_bytes_get:caml_bytes_get, + caml_string_set:caml_string_set, + caml_bytes_set16:caml_bytes_set16, + caml_string_set16:caml_string_set16, + caml_bytes_set32:caml_bytes_set32, + caml_string_set32:caml_string_set32, + caml_bytes_set64:caml_bytes_set64, + caml_string_set64:caml_string_set64, + caml_bytes_set:caml_bytes_set, + caml_bytes_of_utf16_jsstring:caml_bytes_of_utf16_jsstring, + MlBytes:MlBytes, + caml_convert_string_to_bytes:caml_convert_string_to_bytes, + caml_convert_bytes_to_array:caml_convert_bytes_to_array, + caml_uint8_array_of_bytes:caml_uint8_array_of_bytes, + caml_uint8_array_of_string:caml_uint8_array_of_string, + caml_create_string:caml_create_string, + caml_create_bytes:caml_create_bytes, + caml_string_of_array:caml_string_of_array, + caml_bytes_of_array:caml_bytes_of_array, + caml_bytes_compare:caml_bytes_compare, + caml_bytes_equal:caml_bytes_equal, + caml_string_notequal:caml_string_notequal, + caml_bytes_notequal:caml_bytes_notequal, + caml_bytes_lessequal:caml_bytes_lessequal, + caml_bytes_lessthan:caml_bytes_lessthan, + caml_string_greaterequal:caml_string_greaterequal, + caml_bytes_greaterequal:caml_bytes_greaterequal, + caml_string_greaterthan:caml_string_greaterthan, + caml_bytes_greaterthan:caml_bytes_greaterthan, + caml_fill_bytes:caml_fill_bytes, + caml_blit_bytes:caml_blit_bytes, + caml_blit_string:caml_blit_string, + caml_ml_bytes_length:caml_ml_bytes_length, + caml_bytes_of_jsbytes:caml_bytes_of_jsbytes, + caml_string_unsafe_get:caml_string_unsafe_get, + caml_string_unsafe_set:caml_string_unsafe_set, + caml_ml_string_length:caml_ml_string_length, + caml_string_compare:caml_string_compare, + caml_string_equal:caml_string_equal, + caml_string_lessequal:caml_string_lessequal, + caml_string_lessthan:caml_string_lessthan, + caml_string_of_bytes:caml_string_of_bytes, + caml_bytes_of_string:caml_bytes_of_string, + caml_string_of_jsbytes:caml_string_of_jsbytes, + caml_jsbytes_of_string:caml_jsbytes_of_string, + caml_jsstring_of_string:caml_jsstring_of_string, + caml_string_of_jsstring:caml_string_of_jsstring, + caml_is_ml_bytes:caml_is_ml_bytes, + caml_ml_bytes_content:caml_ml_bytes_content, + caml_is_ml_string:caml_is_ml_string, + caml_js_to_byte_string:caml_js_to_byte_string, + caml_new_string:caml_new_string, + caml_js_from_string:caml_js_from_string, + caml_to_js_string:caml_to_js_string, + caml_js_to_string:caml_js_to_string, + caml_array_of_string:caml_array_of_string, + caml_array_of_bytes:caml_array_of_bytes, + caml_md5_chan:caml_md5_chan, + caml_md5_string:caml_md5_string, + caml_MD5Transform:caml_MD5Transform, + caml_MD5Init:caml_MD5Init, + caml_MD5Update:caml_MD5Update, + caml_MD5Final:caml_MD5Final, + caml_md5_bytes:caml_md5_bytes, + caml_marshal_constants:caml_marshal_constants, + MlStringReader:MlStringReader, + BigStringReader:BigStringReader, + caml_float_of_bytes:caml_float_of_bytes, + caml_input_value_from_string:caml_input_value_from_string, + caml_input_value_from_bytes:caml_input_value_from_bytes, + caml_int64_unmarshal:caml_int64_unmarshal, + caml_int64_marshal:caml_int64_marshal, + caml_int32_unmarshal:caml_int32_unmarshal, + caml_nativeint_unmarshal:caml_nativeint_unmarshal, + caml_custom_ops:caml_custom_ops, + caml_input_value_from_reader:caml_input_value_from_reader, + caml_marshal_data_size:caml_marshal_data_size, + MlObjectTable:MlObjectTable, + caml_legacy_custom_code:caml_legacy_custom_code, + caml_output_val:caml_output_val, + caml_output_value_to_string:caml_output_value_to_string, + caml_output_value_to_bytes:caml_output_value_to_bytes, + caml_output_value_to_buffer:caml_output_value_to_buffer, + caml_lex_array:caml_lex_array, + caml_lex_engine:caml_lex_engine, + caml_new_lex_engine:caml_new_lex_engine, + caml_js_on_ie:caml_js_on_ie, + caml_js_html_escape:caml_js_html_escape, + caml_js_html_entities:caml_js_html_entities, + caml_js_get_console:caml_js_get_console, + caml_xmlhttprequest_create:caml_xmlhttprequest_create, + caml_js_error_of_exception:caml_js_error_of_exception, + caml_js_pure_expr:caml_js_pure_expr, + caml_js_set:caml_js_set, + caml_js_get:caml_js_get, + caml_js_delete:caml_js_delete, + caml_js_instanceof:caml_js_instanceof, + caml_js_typeof:caml_js_typeof, + caml_trampoline:caml_trampoline, + caml_trampoline_return:caml_trampoline_return, + caml_callback:caml_callback, + caml_is_js:caml_is_js, + caml_jsoo_flags_use_js_string:caml_jsoo_flags_use_js_string, + caml_jsoo_flags_effects:caml_jsoo_flags_effects, + caml_wrap_exception:caml_wrap_exception, + caml_exn_with_js_backtrace:caml_exn_with_js_backtrace, + caml_js_error_option_of_exception:caml_js_error_option_of_exception, + caml_js_from_bool:caml_js_from_bool, + caml_js_to_bool:caml_js_to_bool, + caml_js_from_float:caml_js_from_float, + caml_js_to_float:caml_js_to_float, + caml_js_from_array:caml_js_from_array, + caml_js_to_array:caml_js_to_array, + caml_list_of_js_array:caml_list_of_js_array, + caml_list_to_js_array:caml_list_to_js_array, + caml_js_var:caml_js_var, + caml_js_call:caml_js_call, + caml_js_fun_call:caml_js_fun_call, + caml_js_meth_call:caml_js_meth_call, + caml_js_new:caml_js_new, + caml_ojs_new_arr:caml_ojs_new_arr, + caml_js_wrap_callback:caml_js_wrap_callback, + caml_js_wrap_callback_arguments:caml_js_wrap_callback_arguments, + caml_js_wrap_callback_strict:caml_js_wrap_callback_strict, + caml_js_wrap_callback_unsafe:caml_js_wrap_callback_unsafe, + caml_js_wrap_meth_callback:caml_js_wrap_meth_callback, + caml_js_wrap_meth_callback_arguments:caml_js_wrap_meth_callback_arguments, + caml_js_wrap_meth_callback_strict:caml_js_wrap_meth_callback_strict, + caml_js_wrap_meth_callback_unsafe:caml_js_wrap_meth_callback_unsafe, + caml_js_function_arity:caml_js_function_arity, + caml_js_equals:caml_js_equals, + caml_js_eval_string:caml_js_eval_string, + caml_js_expr:caml_js_expr, + caml_pure_js_expr:caml_pure_js_expr, + caml_js_object:caml_js_object, + caml_sys_fds:caml_sys_fds, + caml_sys_close:caml_sys_close, + caml_sys_open:caml_sys_open, + caml_ml_set_channel_name:caml_ml_set_channel_name, + caml_ml_channels:caml_ml_channels, + caml_ml_out_channels_list:caml_ml_out_channels_list, + caml_ml_open_descriptor_out:caml_ml_open_descriptor_out, + caml_ml_open_descriptor_in:caml_ml_open_descriptor_in, + caml_channel_descriptor:caml_channel_descriptor, + caml_ml_set_binary_mode:caml_ml_set_binary_mode, + caml_ml_close_channel:caml_ml_close_channel, + caml_ml_channel_size:caml_ml_channel_size, + caml_ml_channel_size_64:caml_ml_channel_size_64, + caml_ml_set_channel_output:caml_ml_set_channel_output, + caml_ml_set_channel_refill:caml_ml_set_channel_refill, + caml_refill:caml_refill, + caml_ml_input:caml_ml_input, + caml_ml_input_block:caml_ml_input_block, + caml_input_value:caml_input_value, + caml_input_value_to_outside_heap:caml_input_value_to_outside_heap, + caml_ml_input_char:caml_ml_input_char, + caml_ml_input_int:caml_ml_input_int, + caml_seek_in:caml_seek_in, + caml_ml_seek_in:caml_ml_seek_in, + caml_ml_seek_in_64:caml_ml_seek_in_64, + caml_pos_in:caml_pos_in, + caml_ml_pos_in:caml_ml_pos_in, + caml_ml_pos_in_64:caml_ml_pos_in_64, + caml_ml_input_scan_line:caml_ml_input_scan_line, + caml_ml_flush:caml_ml_flush, + caml_ml_output_bytes:caml_ml_output_bytes, + caml_ml_output:caml_ml_output, + caml_ml_output_char:caml_ml_output_char, + caml_output_value:caml_output_value, + caml_seek_out:caml_seek_out, + caml_ml_seek_out:caml_ml_seek_out, + caml_ml_seek_out_64:caml_ml_seek_out_64, + caml_pos_out:caml_pos_out, + caml_ml_pos_out:caml_ml_pos_out, + caml_ml_pos_out_64:caml_ml_pos_out_64, + caml_ml_output_int:caml_ml_output_int, + caml_ml_is_buffered:caml_ml_is_buffered, + caml_ml_set_buffered:caml_ml_set_buffered, + caml_format_int:caml_format_int, + caml_parse_sign_and_base:caml_parse_sign_and_base, + caml_parse_digit:caml_parse_digit, + caml_int_of_string:caml_int_of_string, + caml_mul:caml_mul, + caml_div:caml_div, + caml_mod:caml_mod, + caml_bswap16:caml_bswap16, + caml_int32_bswap:caml_int32_bswap, + caml_int64_bswap:caml_int64_bswap, + caml_int64_offset:caml_int64_offset, + MlInt64:MlInt64, + caml_int64_ult:caml_int64_ult, + caml_int64_compare:caml_int64_compare, + caml_int64_neg:caml_int64_neg, + caml_int64_add:caml_int64_add, + caml_int64_sub:caml_int64_sub, + caml_int64_mul:caml_int64_mul, + caml_int64_is_zero:caml_int64_is_zero, + caml_int64_is_negative:caml_int64_is_negative, + caml_int64_and:caml_int64_and, + caml_int64_or:caml_int64_or, + caml_int64_xor:caml_int64_xor, + caml_int64_shift_left:caml_int64_shift_left, + caml_int64_shift_right_unsigned:caml_int64_shift_right_unsigned, + caml_int64_shift_right:caml_int64_shift_right, + caml_int64_div:caml_int64_div, + caml_int64_mod:caml_int64_mod, + caml_int64_of_int32:caml_int64_of_int32, + caml_int64_to_int32:caml_int64_to_int32, + caml_int64_to_float:caml_int64_to_float, + caml_int64_of_float:caml_int64_of_float, + caml_int64_format:caml_int64_format, + caml_int64_of_string:caml_int64_of_string, + caml_int64_create_lo_mi_hi:caml_int64_create_lo_mi_hi, + caml_int64_create_lo_hi:caml_int64_create_lo_hi, + caml_int64_lo32:caml_int64_lo32, + caml_int64_hi32:caml_int64_hi32, + caml_int64_of_bytes:caml_int64_of_bytes, + caml_int64_to_bytes:caml_int64_to_bytes, + caml_int64_hash:caml_int64_hash, + jsoo_floor_log2:jsoo_floor_log2, + caml_int64_bits_of_float:caml_int64_bits_of_float, + caml_int32_bits_of_float:caml_int32_bits_of_float, + caml_hexstring_of_float:caml_hexstring_of_float, + caml_int64_float_of_bits:caml_int64_float_of_bits, + caml_nextafter_float:caml_nextafter_float, + caml_trunc_float:caml_trunc_float, + caml_int32_float_of_bits:caml_int32_float_of_bits, + caml_classify_float:caml_classify_float, + caml_modf_float:caml_modf_float, + caml_ldexp_float:caml_ldexp_float, + caml_frexp_float:caml_frexp_float, + caml_float_compare:caml_float_compare, + caml_copysign_float:caml_copysign_float, + caml_signbit_float:caml_signbit_float, + caml_expm1_float:caml_expm1_float, + caml_exp2_float:caml_exp2_float, + caml_log1p_float:caml_log1p_float, + caml_log2_float:caml_log2_float, + caml_hypot_float:caml_hypot_float, + caml_log10_float:caml_log10_float, + caml_cosh_float:caml_cosh_float, + caml_acosh_float:caml_acosh_float, + caml_sinh_float:caml_sinh_float, + caml_asinh_float:caml_asinh_float, + caml_tanh_float:caml_tanh_float, + caml_atanh_float:caml_atanh_float, + caml_round_float:caml_round_float, + caml_cbrt_float:caml_cbrt_float, + caml_erf_float:caml_erf_float, + caml_erfc_float:caml_erfc_float, + caml_fma_float:caml_fma_float, + caml_format_float:caml_format_float, + caml_float_of_string:caml_float_of_string, + caml_hash_mix_int:caml_hash_mix_int, + caml_hash_mix_final:caml_hash_mix_final, + caml_hash_mix_float:caml_hash_mix_float, + caml_hash_mix_int64:caml_hash_mix_int64, + caml_hash_mix_jsbytes:caml_hash_mix_jsbytes, + caml_hash_mix_bytes_arr:caml_hash_mix_bytes_arr, + caml_hash_mix_bytes:caml_hash_mix_bytes, + caml_hash_mix_string:caml_hash_mix_string, + caml_hash:caml_hash, + caml_string_hash:caml_string_hash, + caml_gr_state:caml_gr_state, + caml_gr_state_get:caml_gr_state_get, + caml_gr_state_set:caml_gr_state_set, + caml_gr_open_graph:caml_gr_open_graph, + caml_gr_state_init:caml_gr_state_init, + caml_gr_state_create:caml_gr_state_create, + caml_gr_doc_of_state:caml_gr_doc_of_state, + caml_gr_close_graph:caml_gr_close_graph, + caml_gr_set_window_title:caml_gr_set_window_title, + caml_gr_resize_window:caml_gr_resize_window, + caml_gr_clear_graph:caml_gr_clear_graph, + caml_gr_size_x:caml_gr_size_x, + caml_gr_size_y:caml_gr_size_y, + caml_gr_set_color:caml_gr_set_color, + caml_gr_plot:caml_gr_plot, + caml_gr_point_color:caml_gr_point_color, + caml_gr_moveto:caml_gr_moveto, + caml_gr_current_x:caml_gr_current_x, + caml_gr_current_y:caml_gr_current_y, + caml_gr_lineto:caml_gr_lineto, + caml_gr_draw_rect:caml_gr_draw_rect, + caml_gr_arc_aux:caml_gr_arc_aux, + caml_gr_draw_arc:caml_gr_draw_arc, + caml_gr_set_line_width:caml_gr_set_line_width, + caml_gr_fill_rect:caml_gr_fill_rect, + caml_gr_fill_poly:caml_gr_fill_poly, + caml_gr_fill_arc:caml_gr_fill_arc, + caml_gr_draw_str:caml_gr_draw_str, + caml_gr_draw_char:caml_gr_draw_char, + caml_gr_draw_string:caml_gr_draw_string, + caml_gr_set_font:caml_gr_set_font, + caml_gr_set_text_size:caml_gr_set_text_size, + caml_gr_text_size:caml_gr_text_size, + caml_gr_make_image:caml_gr_make_image, + caml_gr_dump_image:caml_gr_dump_image, + caml_gr_draw_image:caml_gr_draw_image, + caml_gr_create_image:caml_gr_create_image, + caml_gr_blit_image:caml_gr_blit_image, + caml_gr_sigio_handler:caml_gr_sigio_handler, + caml_gr_sigio_signal:caml_gr_sigio_signal, + caml_gr_wait_event:caml_gr_wait_event, + caml_gr_synchronize:caml_gr_synchronize, + caml_gr_remember_mode:caml_gr_remember_mode, + caml_gr_display_mode:caml_gr_display_mode, + caml_gr_window_id:caml_gr_window_id, + caml_gr_open_subwindow:caml_gr_open_subwindow, + caml_gr_close_subwindow:caml_gr_close_subwindow, + caml_gc_minor:caml_gc_minor, + caml_gc_major:caml_gc_major, + caml_gc_full_major:caml_gc_full_major, + caml_gc_compaction:caml_gc_compaction, + caml_gc_counters:caml_gc_counters, + caml_gc_quick_stat:caml_gc_quick_stat, + caml_gc_stat:caml_gc_stat, + caml_gc_set:caml_gc_set, + caml_gc_get:caml_gc_get, + caml_memprof_set:caml_memprof_set, + caml_final_register:caml_final_register, + caml_final_register_called_without_value: + caml_final_register_called_without_value, + caml_final_release:caml_final_release, + caml_memprof_start:caml_memprof_start, + caml_memprof_stop:caml_memprof_stop, + caml_eventlog_resume:caml_eventlog_resume, + caml_eventlog_pause:caml_eventlog_pause, + caml_gc_huge_fallback_count:caml_gc_huge_fallback_count, + caml_gc_major_slice:caml_gc_major_slice, + caml_gc_minor_words:caml_gc_minor_words, + caml_get_minor_free:caml_get_minor_free, + caml_get_major_bucket:caml_get_major_bucket, + caml_get_major_credit:caml_get_major_credit, + fs_node_supported:fs_node_supported, + MlNodeDevice:MlNodeDevice, + MlNodeFd:MlNodeFd, + caml_sys_open_for_node:caml_sys_open_for_node, + MlFakeDevice:MlFakeDevice, + MlFakeFile:MlFakeFile, + MlFakeFd_out:MlFakeFd_out, + MlFakeFd:MlFakeFd, + caml_trailing_slash:caml_trailing_slash, + caml_current_dir:caml_current_dir, + caml_get_root:caml_get_root, + caml_root:caml_root, + MlFile:MlFile, + path_is_absolute:path_is_absolute, + caml_make_path:caml_make_path, + jsoo_mount_point:jsoo_mount_point, + caml_list_mount_point:caml_list_mount_point, + resolve_fs_device:resolve_fs_device, + caml_mount_autoload:caml_mount_autoload, + caml_unmount:caml_unmount, + caml_sys_getcwd:caml_sys_getcwd, + caml_sys_chdir:caml_sys_chdir, + caml_raise_no_such_file:caml_raise_no_such_file, + caml_raise_not_a_dir:caml_raise_not_a_dir, + caml_sys_file_exists:caml_sys_file_exists, + caml_sys_read_directory:caml_sys_read_directory, + caml_sys_remove:caml_sys_remove, + caml_sys_is_directory:caml_sys_is_directory, + caml_sys_rename:caml_sys_rename, + caml_sys_mkdir:caml_sys_mkdir, + caml_sys_rmdir:caml_sys_rmdir, + caml_ba_map_file:caml_ba_map_file, + caml_ba_map_file_bytecode:caml_ba_map_file_bytecode, + jsoo_create_file_extern:jsoo_create_file_extern, + caml_fs_init:caml_fs_init, + caml_create_file:caml_create_file, + jsoo_create_file:jsoo_create_file, + caml_read_file_content:caml_read_file_content, + caml_parse_format:caml_parse_format, + caml_finish_formatting:caml_finish_formatting, + caml_raise_constant:caml_raise_constant, + caml_return_exn_constant:caml_return_exn_constant, + caml_raise_with_arg:caml_raise_with_arg, + caml_raise_with_args:caml_raise_with_args, + caml_raise_with_string:caml_raise_with_string, + caml_failwith:caml_failwith, + caml_invalid_argument:caml_invalid_argument, + caml_raise_end_of_file:caml_raise_end_of_file, + caml_raise_zero_divide:caml_raise_zero_divide, + caml_raise_not_found:caml_raise_not_found, + caml_array_bound_error:caml_array_bound_error, + caml_compare_val_tag:caml_compare_val_tag, + caml_compare_val_get_custom:caml_compare_val_get_custom, + caml_compare_val_number_custom:caml_compare_val_number_custom, + caml_compare_val:caml_compare_val, + caml_compare:caml_compare, + caml_int_compare:caml_int_compare, + caml_equal:caml_equal, + caml_notequal:caml_notequal, + caml_greaterequal:caml_greaterequal, + caml_greaterthan:caml_greaterthan, + caml_lessequal:caml_lessequal, + caml_lessthan:caml_lessthan, + caml_blit_bigstring_to_bigstring:caml_blit_bigstring_to_bigstring, + caml_blit_bigstring_to_string:caml_blit_bigstring_to_string, + caml_blit_string_to_bigstring:caml_blit_string_to_bigstring, + caml_hash_mix_bigstring:caml_hash_mix_bigstring, + bigstring_to_array_buffer:bigstring_to_array_buffer, + bigstring_to_typed_array:bigstring_to_typed_array, + bigstring_of_array_buffer:bigstring_of_array_buffer, + bigstring_of_typed_array:bigstring_of_typed_array, + caml_bigstring_memcmp:caml_bigstring_memcmp, + caml_bigstring_blit_ba_to_ba:caml_bigstring_blit_ba_to_ba, + caml_bigstring_blit_string_to_ba:caml_bigstring_blit_string_to_ba, + caml_bigstring_blit_bytes_to_ba:caml_bigstring_blit_bytes_to_ba, + caml_bigstring_blit_ba_to_bytes:caml_bigstring_blit_ba_to_bytes, + caml_ba_init:caml_ba_init, + caml_ba_get_size:caml_ba_get_size, + caml_ba_get_size_per_element:caml_ba_get_size_per_element, + caml_ba_create_buffer:caml_ba_create_buffer, + caml_ba_custom_name:caml_ba_custom_name, + Ml_Bigarray:Ml_Bigarray, + Ml_Bigarray_c_1_1:Ml_Bigarray_c_1_1, + caml_ba_compare:caml_ba_compare, + caml_ba_create_unsafe:caml_ba_create_unsafe, + caml_ba_create:caml_ba_create, + caml_ba_change_layout:caml_ba_change_layout, + caml_ba_kind:caml_ba_kind, + caml_ba_layout:caml_ba_layout, + caml_ba_num_dims:caml_ba_num_dims, + caml_ba_dim:caml_ba_dim, + caml_ba_dim_1:caml_ba_dim_1, + caml_ba_dim_2:caml_ba_dim_2, + caml_ba_dim_3:caml_ba_dim_3, + caml_ba_get_generic:caml_ba_get_generic, + caml_ba_uint8_get16:caml_ba_uint8_get16, + caml_ba_uint8_get32:caml_ba_uint8_get32, + caml_ba_uint8_get64:caml_ba_uint8_get64, + caml_ba_get_1:caml_ba_get_1, + caml_ba_get_2:caml_ba_get_2, + caml_ba_get_3:caml_ba_get_3, + caml_ba_set_generic:caml_ba_set_generic, + caml_ba_uint8_set16:caml_ba_uint8_set16, + caml_ba_uint8_set32:caml_ba_uint8_set32, + caml_ba_uint8_set64:caml_ba_uint8_set64, + caml_ba_set_1:caml_ba_set_1, + caml_ba_set_2:caml_ba_set_2, + caml_ba_set_3:caml_ba_set_3, + caml_ba_fill:caml_ba_fill, + caml_ba_blit:caml_ba_blit, + caml_ba_sub:caml_ba_sub, + caml_ba_slice:caml_ba_slice, + caml_ba_reshape:caml_ba_reshape, + caml_ba_serialize:caml_ba_serialize, + caml_ba_deserialize:caml_ba_deserialize, + caml_ba_create_from:caml_ba_create_from, + caml_ba_hash:caml_ba_hash, + caml_ba_to_typed_array:caml_ba_to_typed_array, + caml_ba_kind_of_typed_array:caml_ba_kind_of_typed_array, + caml_ba_from_typed_array:caml_ba_from_typed_array, + caml_ml_debug_info_status:caml_ml_debug_info_status, + caml_backtrace_status:caml_backtrace_status, + caml_get_exception_backtrace:caml_get_exception_backtrace, + caml_get_exception_raw_backtrace:caml_get_exception_raw_backtrace, + caml_record_backtrace:caml_record_backtrace, + caml_convert_raw_backtrace:caml_convert_raw_backtrace, + caml_raw_backtrace_length:caml_raw_backtrace_length, + caml_raw_backtrace_next_slot:caml_raw_backtrace_next_slot, + caml_raw_backtrace_slot:caml_raw_backtrace_slot, + caml_restore_raw_backtrace:caml_restore_raw_backtrace, + caml_get_current_callstack:caml_get_current_callstack, + caml_convert_raw_backtrace_slot:caml_convert_raw_backtrace_slot, + caml_array_sub:caml_array_sub, + caml_array_append:caml_array_append, + caml_array_concat:caml_array_concat, + caml_array_blit:caml_array_blit, + caml_floatarray_blit:caml_floatarray_blit, + caml_array_set:caml_array_set, + caml_array_get:caml_array_get, + caml_array_fill:caml_array_fill, + caml_check_bound:caml_check_bound, + caml_make_vect:caml_make_vect, + caml_make_float_vect:caml_make_float_vect, + caml_floatarray_create:caml_floatarray_create}; + caml_fs_init(); + caml_register_global + (0,[248,caml_string_of_jsbytes("Out_of_memory"),-1],"Out_of_memory"); + caml_register_global + (1,[248,caml_string_of_jsbytes("Sys_error"),-2],"Sys_error"); + caml_register_global + (2,[248,caml_string_of_jsbytes("Failure"),-3],"Failure"); + caml_register_global + (3, + [248,caml_string_of_jsbytes("Invalid_argument"),-4], + "Invalid_argument"); + caml_register_global + (4,[248,caml_string_of_jsbytes("End_of_file"),-5],"End_of_file"); + caml_register_global + (5, + [248,caml_string_of_jsbytes("Division_by_zero"),-6], + "Division_by_zero"); + caml_register_global + (6,[248,caml_string_of_jsbytes("Not_found"),-7],"Not_found"); + caml_register_global + (7,[248,caml_string_of_jsbytes("Match_failure"),-8],"Match_failure"); + caml_register_global + (8,[248,caml_string_of_jsbytes("Stack_overflow"),-9],"Stack_overflow"); + caml_register_global + (9,[248,caml_string_of_jsbytes("Sys_blocked_io"),-10],"Sys_blocked_io"); + caml_register_global + (10,[248,caml_string_of_jsbytes("Assert_failure"),-11],"Assert_failure"); + caml_register_global + (11, + [248,caml_string_of_jsbytes("Undefined_recursive_module"),-12], + "Undefined_recursive_module"); + return} (globalThis)); -//# 10476 "../../.js/default/stdlib/stdlib.cma.js" + +//# 1 "../../.js/stdlib/stdlib.cma.js" +// Generated by js_of_ocaml (function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$43 = "", - cst_and = " and ", - cst_Li$3 = "%Li", - cst_i$3 = "%i", - cst_li$3 = "%li", - cst_ni$3 = "%ni", - cst_u$0 = "%u", - cst$42 = "' '", - cst$41 = "'#'", - cst$39 = "'*'", - cst$40 = "'+'", - cst$44 = ", ", - cst_0$3 = "0", - cst_at_character_number = ": at character number ", - cst$38 = "@[", - cst$37 = "@{", - cst_bad_input_format_type_mism = - "bad input: format type mismatch between ", - cst_bad_input_format_type_mism$0 = - "bad input: format type mismatch between %S and %S", - cst_camlinternalFormat_ml = "camlinternalFormat.ml", - cst_invalid_format = "invalid format ", - cst_precision$3 = "precision", - caml_blit_string = runtime.caml_blit_string, - caml_bytes_set = runtime.caml_bytes_set, - caml_create_bytes = runtime.caml_create_bytes, - caml_format_float = runtime.caml_format_float, - caml_format_int = runtime.caml_format_int, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_notequal = runtime.caml_notequal, - caml_string_get = runtime.caml_string_get, - caml_string_notequal = runtime.caml_string_notequal, - caml_string_unsafe_get = runtime.caml_string_unsafe_get, - caml_trampoline = runtime.caml_trampoline, - caml_trampoline_return = runtime.caml_trampoline_return, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - cst$9 = "%{", - cst$10 = "%}", - cst$11 = "%(", - cst$12 = "%)", - cst$13 = "%?", - cst$18 = cst$37, - cst$19 = cst$38, - cst$20 = cst$37, - cst$21 = cst$38, - cst$22 = cst$37, - cst$23 = cst$38, - cst$26 = cst$39, - cst$24 = "'-'", - cst$25 = cst$39, - cst$27 = cst$40, - cst$28 = cst$41, - cst$29 = cst$42, - cst$30 = cst$40, - cst$31 = "'_'", - sub_format = [0, 0, cst$43], - formatting_lit = [0, "@;", 1, 0], - cst$35 = cst$41, - cst$32 = cst$40, - cst$33 = cst$40, - cst$34 = cst$42, - cst$36 = cst$40, - cst$17 = ".", - cst$14 = "%!", - cst$15 = cst$37, - cst$16 = cst$38, - cst$8 = "%%", - cst$0 = "@]", - cst$1 = "@}", - cst$2 = "@?", - cst$3 = "@\n", - cst$4 = "@.", - cst$5 = "@@", - cst$6 = "@%", - cst$7 = "@", - cst = ".*", - Assert_failure = global_data.Assert_failure, - CamlinternalFormatBasics = global_data.CamlinternalFormatBasics, - Stdlib = global_data.Stdlib, - Stdlib_Buffer = global_data.Stdlib__Buffer, - Stdlib_String = global_data.Stdlib__String, - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib_Char = global_data.Stdlib__Char, - Stdlib_Bytes = global_data.Stdlib__Bytes, - Stdlib_Int = global_data.Stdlib__Int, - cst_c = "%c", - cst_s = "%s", - cst_i = cst_i$3, - cst_li = cst_li$3, - cst_ni = cst_ni$3, - cst_Li = cst_Li$3, - cst_f = "%f", - cst_B = "%B", - cst_a = "%a", - cst_t = "%t", - cst_r = "%r", - cst_r$0 = "%_r", - _b_ = [0, cst_camlinternalFormat_ml, 850, 23], - _m_ = [0, cst_camlinternalFormat_ml, 814, 21], - _e_ = [0, cst_camlinternalFormat_ml, 815, 21], - _n_ = [0, cst_camlinternalFormat_ml, 818, 21], - _f_ = [0, cst_camlinternalFormat_ml, 819, 21], - _o_ = [0, cst_camlinternalFormat_ml, 822, 19], - _g_ = [0, cst_camlinternalFormat_ml, 823, 19], - _p_ = [0, cst_camlinternalFormat_ml, 826, 22], - _h_ = [0, cst_camlinternalFormat_ml, 827, 22], - _q_ = [0, cst_camlinternalFormat_ml, 831, 30], - _i_ = [0, cst_camlinternalFormat_ml, 832, 30], - _k_ = [0, cst_camlinternalFormat_ml, 836, 26], - _c_ = [0, cst_camlinternalFormat_ml, 837, 26], - _l_ = [0, cst_camlinternalFormat_ml, 846, 28], - _d_ = [0, cst_camlinternalFormat_ml, 847, 28], - _j_ = [0, cst_camlinternalFormat_ml, 851, 23], - _s_ = [0, cst_camlinternalFormat_ml, 1558, 4], - cst_Printf_bad_conversion = "Printf: bad conversion %[", - _t_ = [0, cst_camlinternalFormat_ml, 1626, 39], - _u_ = [0, cst_camlinternalFormat_ml, 1649, 31], - _v_ = [0, cst_camlinternalFormat_ml, 1650, 31], - cst_Printf_bad_conversion$0 = "Printf: bad conversion %_", - _w_ = [0, cst_camlinternalFormat_ml, 1830, 8], - ___ = - [0, - [11, cst_bad_input_format_type_mism, [3, 0, [11, cst_and, [3, 0, 0]]]], - cst_bad_input_format_type_mism$0], - _Z_ = - [0, - [11, cst_bad_input_format_type_mism, [3, 0, [11, cst_and, [3, 0, 0]]]], - cst_bad_input_format_type_mism$0], - _C_ = + (globalThis) + {"use strict"; + var + runtime=globalThis.jsoo_runtime, + caml_array_concat=runtime.caml_array_concat, + caml_array_get=runtime.caml_array_get, + caml_array_set=runtime.caml_array_set, + caml_array_sub=runtime.caml_array_sub, + caml_ba_change_layout=runtime.caml_ba_change_layout, + caml_ba_create=runtime.caml_ba_create, + caml_ba_dim_1=runtime.caml_ba_dim_1, + caml_ba_dim_2=runtime.caml_ba_dim_2, + caml_ba_kind=runtime.caml_ba_kind, + caml_ba_num_dims=runtime.caml_ba_num_dims, + caml_ba_reshape=runtime.caml_ba_reshape, + caml_ba_set_1=runtime.caml_ba_set_1, + caml_ba_set_2=runtime.caml_ba_set_2, + caml_ba_set_3=runtime.caml_ba_set_3, + caml_ba_set_generic=runtime.caml_ba_set_generic, + caml_ba_slice=runtime.caml_ba_slice, + caml_blit_bytes=runtime.caml_blit_bytes, + caml_blit_string=runtime.caml_blit_string, + caml_bswap16=runtime.caml_bswap16, + caml_bytes_get=runtime.caml_bytes_get, + caml_bytes_get16=runtime.caml_bytes_get16, + caml_bytes_get32=runtime.caml_bytes_get32, + caml_bytes_get64=runtime.caml_bytes_get64, + caml_bytes_of_string=runtime.caml_bytes_of_string, + caml_bytes_set=runtime.caml_bytes_set, + caml_bytes_set16=runtime.caml_bytes_set16, + caml_bytes_set32=runtime.caml_bytes_set32, + caml_bytes_set64=runtime.caml_bytes_set64, + caml_bytes_unsafe_get=runtime.caml_bytes_unsafe_get, + caml_bytes_unsafe_set=runtime.caml_bytes_unsafe_set, + caml_check_bound=runtime.caml_check_bound, + caml_compare=runtime.caml_compare, + caml_create_bytes=runtime.caml_create_bytes, + caml_div=runtime.caml_div, + caml_ephe_blit_key=runtime.caml_ephe_blit_key, + caml_ephe_check_key=runtime.caml_ephe_check_key, + caml_ephe_get_key=runtime.caml_ephe_get_key, + caml_ephe_get_key_copy=runtime.caml_ephe_get_key_copy, + caml_ephe_set_key=runtime.caml_ephe_set_key, + caml_ephe_unset_key=runtime.caml_ephe_unset_key, + caml_equal=runtime.caml_equal, + caml_fill_bytes=runtime.caml_fill_bytes, + caml_float_compare=runtime.caml_float_compare, + caml_float_of_string=runtime.caml_float_of_string, + caml_floatarray_blit=runtime.caml_floatarray_blit, + caml_floatarray_create=runtime.caml_floatarray_create, + caml_format_float=runtime.caml_format_float, + caml_format_int=runtime.caml_format_int, + caml_fresh_oo_id=runtime.caml_fresh_oo_id, + caml_get_exception_raw_backtra=runtime.caml_get_exception_raw_backtrace, + caml_get_public_method=runtime.caml_get_public_method, + caml_greaterequal=runtime.caml_greaterequal, + caml_greaterthan=runtime.caml_greaterthan, + caml_hash=runtime.caml_hash, + caml_input_value=runtime.caml_input_value, + caml_int32_bswap=runtime.caml_int32_bswap, + caml_int64_add=runtime.caml_int64_add, + caml_int64_bswap=runtime.caml_int64_bswap, + caml_int64_compare=runtime.caml_int64_compare, + caml_int64_float_of_bits=runtime.caml_int64_float_of_bits, + caml_int64_format=runtime.caml_int64_format, + caml_int64_mul=runtime.caml_int64_mul, + caml_int64_of_int32=runtime.caml_int64_of_int32, + caml_int64_of_string=runtime.caml_int64_of_string, + caml_int64_or=runtime.caml_int64_or, + caml_int64_shift_left=runtime.caml_int64_shift_left, + caml_int64_shift_right_unsigne=runtime.caml_int64_shift_right_unsigned, + caml_int64_sub=runtime.caml_int64_sub, + caml_int_compare=runtime.caml_int_compare, + caml_int_of_string=runtime.caml_int_of_string, + caml_lessequal=runtime.caml_lessequal, + caml_lessthan=runtime.caml_lessthan, + caml_make_vect=runtime.caml_make_vect, + caml_marshal_data_size=runtime.caml_marshal_data_size, + caml_md5_string=runtime.caml_md5_string, + caml_ml_bytes_length=runtime.caml_ml_bytes_length, + caml_ml_channel_size=runtime.caml_ml_channel_size, + caml_ml_channel_size_64=runtime.caml_ml_channel_size_64, + caml_ml_close_channel=runtime.caml_ml_close_channel, + caml_ml_flush=runtime.caml_ml_flush, + caml_ml_input=runtime.caml_ml_input, + caml_ml_input_char=runtime.caml_ml_input_char, + caml_ml_open_descriptor_in=runtime.caml_ml_open_descriptor_in, + caml_ml_open_descriptor_out=runtime.caml_ml_open_descriptor_out, + caml_ml_output=runtime.caml_ml_output, + caml_ml_output_bytes=runtime.caml_ml_output_bytes, + caml_ml_output_char=runtime.caml_ml_output_char, + caml_ml_pos_in=runtime.caml_ml_pos_in, + caml_ml_set_binary_mode=runtime.caml_ml_set_binary_mode, + caml_ml_set_channel_name=runtime.caml_ml_set_channel_name, + caml_ml_string_length=runtime.caml_ml_string_length, + caml_mod=runtime.caml_mod, + caml_mul=runtime.caml_mul, + caml_nextafter_float=runtime.caml_nextafter_float, + caml_notequal=runtime.caml_notequal, + caml_obj_block=runtime.caml_obj_block, + caml_obj_make_forward=runtime.caml_obj_make_forward, + caml_obj_tag=runtime.caml_obj_tag, + caml_output_value=runtime.caml_output_value, + caml_register_global=runtime.caml_register_global, + caml_register_named_value=runtime.caml_register_named_value, + caml_restore_raw_backtrace=runtime.caml_restore_raw_backtrace, + caml_set_oo_id=runtime.caml_set_oo_id, + caml_signbit_float=runtime.caml_signbit_float, + caml_string_compare=runtime.caml_string_compare, + caml_string_equal=runtime.caml_string_equal, + caml_string_get=runtime.caml_string_get, + caml_string_notequal=runtime.caml_string_notequal, + caml_string_of_bytes=runtime.caml_string_of_bytes, + caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, + caml_string_unsafe_get=runtime.caml_string_unsafe_get, + caml_sys_argv=runtime.caml_sys_argv, + caml_sys_getenv=runtime.caml_sys_getenv, + caml_sys_open=runtime.caml_sys_open, + caml_sys_random_seed=runtime.caml_sys_random_seed, + caml_trampoline=runtime.caml_trampoline, + caml_trampoline_return=runtime.caml_trampoline_return, + caml_wrap_exception=runtime.caml_wrap_exception; + function caml_call1(f,a0) + {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} + function caml_call2(f,a0,a1) + {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} + function caml_call3(f,a0,a1,a2) + {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} + function caml_call4(f,a0,a1,a2,a3) + {return f.length == 4 + ?f(a0,a1,a2,a3) + :runtime.caml_call_gen(f,[a0,a1,a2,a3])} + function caml_call5(f,a0,a1,a2,a3,a4) + {return f.length == 5 + ?f(a0,a1,a2,a3,a4) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} + function caml_call7(f,a0,a1,a2,a3,a4,a5,a6) + {return f.length == 7 + ?f(a0,a1,a2,a3,a4,a5,a6) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6])} + var + global_data=runtime.caml_get_global_data(), + cst$0=caml_string_of_jsbytes("%,"), + cst_really_input=caml_string_of_jsbytes("really_input"), + cst_input=caml_string_of_jsbytes("input"), + cst_output_substring=caml_string_of_jsbytes("output_substring"), + cst_output=caml_string_of_jsbytes("output"), + cst_12g=caml_string_of_jsbytes("%.12g"), + cst=caml_string_of_jsbytes("."), + cst_false$1=caml_string_of_jsbytes("false"), + cst_true$1=caml_string_of_jsbytes("true"), + cst_false$0=caml_string_of_jsbytes("false"), + cst_true$0=caml_string_of_jsbytes("true"), + cst_bool_of_string=caml_string_of_jsbytes("bool_of_string"), + cst_true=caml_string_of_jsbytes("true"), + cst_false=caml_string_of_jsbytes("false"), + cst_char_of_int=caml_string_of_jsbytes("char_of_int"), + cst_Stdlib_Exit=caml_string_of_jsbytes("Stdlib.Exit"), + cst_Stdlib_Pervasives_Exit= + caml_string_of_jsbytes("Stdlib.Pervasives.Exit"), + cst_Stdlib_Sys_Break=caml_string_of_jsbytes("Stdlib.Sys.Break"), + ocaml_version=caml_string_of_jsbytes("4.14.1"), + ocaml_release=[0,4,14,1,0], + cst_Obj_Ephemeron_blit_key= + caml_string_of_jsbytes("Obj.Ephemeron.blit_key"), + cst_Obj_Ephemeron_check_key= + caml_string_of_jsbytes("Obj.Ephemeron.check_key"), + cst_Obj_Ephemeron_unset_key= + caml_string_of_jsbytes("Obj.Ephemeron.unset_key"), + cst_Obj_Ephemeron_set_key=caml_string_of_jsbytes("Obj.Ephemeron.set_key"), + cst_Obj_Ephemeron_get_key_copy= + caml_string_of_jsbytes("Obj.Ephemeron.get_key_copy"), + cst_Obj_Ephemeron_get_key=caml_string_of_jsbytes("Obj.Ephemeron.get_key"), + cst_Obj_Ephemeron_create=caml_string_of_jsbytes("Obj.Ephemeron.create"), + cst_Obj_extension_constructor$0= + caml_string_of_jsbytes("Obj.extension_constructor"), + cst_Obj_extension_constructor= + caml_string_of_jsbytes("Obj.extension_constructor"), + cst_CamlinternalLazy_Undefined= + caml_string_of_jsbytes("CamlinternalLazy.Undefined"), + cst_Seq_drop=caml_string_of_jsbytes("Seq.drop"), + cst_Seq_take=caml_string_of_jsbytes("Seq.take"), + cst_Seq_init=caml_string_of_jsbytes("Seq.init"), + cst_Stdlib_Seq_Forced_twice= + caml_string_of_jsbytes("Stdlib.Seq.Forced_twice"), + cst_option_is_None=caml_string_of_jsbytes("option is None"), + cst_result_is_Ok=caml_string_of_jsbytes("result is Ok _"), + cst_result_is_Error=caml_string_of_jsbytes("result is Error _"), + cst_true$2=caml_string_of_jsbytes("true"), + cst_false$2=caml_string_of_jsbytes("false"), + cst$1=caml_string_of_jsbytes("\\\\"), + cst$2=caml_string_of_jsbytes("\\'"), + cst_b=caml_string_of_jsbytes("\\b"), + cst_t=caml_string_of_jsbytes("\\t"), + cst_n=caml_string_of_jsbytes("\\n"), + cst_r=caml_string_of_jsbytes("\\r"), + cst_Char_chr=caml_string_of_jsbytes("Char.chr"), + cst_is_not_a_latin1_character= + caml_string_of_jsbytes(" is not a latin1 character"), + cst_04X=caml_string_of_jsbytes("%04X"), + cst_U=caml_string_of_jsbytes("U+"), + cst_is_not_an_Unicode_scalar_v= + caml_string_of_jsbytes(" is not an Unicode scalar value"), + cst_X=caml_string_of_jsbytes("%X"), + err_no_pred=caml_string_of_jsbytes("U+0000 has no predecessor"), + err_no_succ=caml_string_of_jsbytes("U+10FFFF has no successor"), + cst_List_map2=caml_string_of_jsbytes("List.map2"), + cst_List_iter2=caml_string_of_jsbytes("List.iter2"), + cst_List_fold_left2=caml_string_of_jsbytes("List.fold_left2"), + cst_List_fold_right2=caml_string_of_jsbytes("List.fold_right2"), + cst_List_for_all2=caml_string_of_jsbytes("List.for_all2"), + cst_List_exists2=caml_string_of_jsbytes("List.exists2"), + cst_List_combine=caml_string_of_jsbytes("List.combine"), + cst_List_rev_map2=caml_string_of_jsbytes("List.rev_map2"), + cst_List_init=caml_string_of_jsbytes("List.init"), + cst_List_nth$0=caml_string_of_jsbytes("List.nth"), + cst_nth=caml_string_of_jsbytes("nth"), + cst_List_nth=caml_string_of_jsbytes("List.nth"), + cst_tl=caml_string_of_jsbytes("tl"), + cst_hd=caml_string_of_jsbytes("hd"), + cst_index_out_of_bounds$2=caml_string_of_jsbytes("index out of bounds"), + cst_index_out_of_bounds$1=caml_string_of_jsbytes("index out of bounds"), + cst_index_out_of_bounds$0=caml_string_of_jsbytes("index out of bounds"), + cst_index_out_of_bounds=caml_string_of_jsbytes("index out of bounds"), + cst_Bytes_of_seq_cannot_grow_b= + caml_string_of_jsbytes("Bytes.of_seq: cannot grow bytes"), + cst_String_rcontains_from_Byte= + caml_string_of_jsbytes("String.rcontains_from / Bytes.rcontains_from"), + cst_String_contains_from_Bytes= + caml_string_of_jsbytes("String.contains_from / Bytes.contains_from"), + cst_String_rindex_from_opt_Byt= + caml_string_of_jsbytes("String.rindex_from_opt / Bytes.rindex_from_opt"), + cst_String_rindex_from_Bytes_r= + caml_string_of_jsbytes("String.rindex_from / Bytes.rindex_from"), + cst_String_index_from_opt_Byte= + caml_string_of_jsbytes("String.index_from_opt / Bytes.index_from_opt"), + cst_String_index_from_Bytes_in= + caml_string_of_jsbytes("String.index_from / Bytes.index_from"), + cst_Bytes_concat=caml_string_of_jsbytes("Bytes.concat"), + cst_String_blit_Bytes_blit_str= + caml_string_of_jsbytes("String.blit / Bytes.blit_string"), + cst_Bytes_blit=caml_string_of_jsbytes("Bytes.blit"), + cst_String_fill_Bytes_fill= + caml_string_of_jsbytes("String.fill / Bytes.fill"), + cst_Bytes_extend=caml_string_of_jsbytes("Bytes.extend"), + cst_String_sub_Bytes_sub=caml_string_of_jsbytes("String.sub / Bytes.sub"), + cst_String_rcontains_from_Byte$0= + caml_string_of_jsbytes("String.rcontains_from / Bytes.rcontains_from"), + cst_String_contains_from_Bytes$0= + caml_string_of_jsbytes("String.contains_from / Bytes.contains_from"), + cst_String_rindex_from_opt_Byt$0= + caml_string_of_jsbytes("String.rindex_from_opt / Bytes.rindex_from_opt"), + cst_String_rindex_from_Bytes_r$0= + caml_string_of_jsbytes("String.rindex_from / Bytes.rindex_from"), + cst_String_index_from_opt_Byte$0= + caml_string_of_jsbytes("String.index_from_opt / Bytes.index_from_opt"), + cst_String_index_from_Bytes_in$0= + caml_string_of_jsbytes("String.index_from / Bytes.index_from"), + cst$4=caml_string_of_jsbytes(""), + cst$3=caml_string_of_jsbytes(""), + cst_String_concat=caml_string_of_jsbytes("String.concat"), + empty$1=caml_string_of_jsbytes(""), + cst$5=caml_string_of_jsbytes("()"), + cst_Marshal_from_bytes=caml_string_of_jsbytes("Marshal.from_bytes"), + cst_Marshal_from_bytes$0=caml_string_of_jsbytes("Marshal.from_bytes"), + cst_Marshal_data_size=caml_string_of_jsbytes("Marshal.data_size"), + cst_Marshal_to_buffer_substrin= + caml_string_of_jsbytes("Marshal.to_buffer: substring out of bounds"), + cst_Array_combine=caml_string_of_jsbytes("Array.combine"), + cst_Array_exists2=caml_string_of_jsbytes("Array.exists2"), + cst_Array_for_all2=caml_string_of_jsbytes("Array.for_all2"), + cst_Array_map2_arrays_must_hav= + caml_string_of_jsbytes("Array.map2: arrays must have the same length"), + cst_Array_iter2_arrays_must_ha= + caml_string_of_jsbytes("Array.iter2: arrays must have the same length"), + cst_Array_blit=caml_string_of_jsbytes("Array.blit"), + cst_Array_fill=caml_string_of_jsbytes("Array.fill"), + cst_Array_sub=caml_string_of_jsbytes("Array.sub"), + cst_Array_init=caml_string_of_jsbytes("Array.init"), + cst_Stdlib_Array_Bottom=caml_string_of_jsbytes("Stdlib.Array.Bottom"), + cst_Float_Array_map2_arrays_mu= + caml_string_of_jsbytes + ("Float.Array.map2: arrays must have the same length"), + cst_Float_Array_iter2_arrays_m= + caml_string_of_jsbytes + ("Float.Array.iter2: arrays must have the same length"), + cst_Float_array_blit=caml_string_of_jsbytes("Float.array.blit"), + cst_Float_array_blit$0=caml_string_of_jsbytes("Float.array.blit"), + cst_Float_Array_fill=caml_string_of_jsbytes("Float.Array.fill"), + cst_Float_Array_sub=caml_string_of_jsbytes("Float.Array.sub"), + cst_Float_Array_concat=caml_string_of_jsbytes("Float.Array.concat"), + cst_Float_Array_init=caml_string_of_jsbytes("Float.Array.init"), + cst_Stdlib_Float_Array_Bottom= + caml_string_of_jsbytes("Stdlib.Float.Array.Bottom"), + cst_d=caml_string_of_jsbytes("%d"), + cst_d$0=caml_string_of_jsbytes("%d"), + zero$2=runtime.caml_int64_create_lo_mi_hi(0,0,0), + one$2=runtime.caml_int64_create_lo_mi_hi(1,0,0), + minus_one$2=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,65535), + min_int$2=runtime.caml_int64_create_lo_mi_hi(0,0,32768), + max_int$2=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,32767), + cst_d$1=caml_string_of_jsbytes("%d"), + cst_Lexing_lex_refill_cannot_g= + caml_string_of_jsbytes("Lexing.lex_refill: cannot grow buffer"), + dummy_pos=[0,caml_string_of_jsbytes(""),0,0,-1], + zero_pos=[0,caml_string_of_jsbytes(""),1,0,0], + cst_syntax_error=caml_string_of_jsbytes("syntax error"), + cst_Stdlib_Parsing_YYexit=caml_string_of_jsbytes("Stdlib.Parsing.YYexit"), + cst_Stdlib_Parsing_Parse_error= + caml_string_of_jsbytes("Stdlib.Parsing.Parse_error"), + cst_Set_remove_min_elt=caml_string_of_jsbytes("Set.remove_min_elt"), + cst_Set_bal=caml_string_of_jsbytes("Set.bal"), + cst_Set_bal$0=caml_string_of_jsbytes("Set.bal"), + cst_Set_bal$1=caml_string_of_jsbytes("Set.bal"), + cst_Set_bal$2=caml_string_of_jsbytes("Set.bal"), + cst_Map_remove_min_elt=caml_string_of_jsbytes("Map.remove_min_elt"), + cst_Map_bal=caml_string_of_jsbytes("Map.bal"), + cst_Map_bal$0=caml_string_of_jsbytes("Map.bal"), + cst_Map_bal$1=caml_string_of_jsbytes("Map.bal"), + cst_Map_bal$2=caml_string_of_jsbytes("Map.bal"), + cst_Stdlib_Stack_Empty=caml_string_of_jsbytes("Stdlib.Stack.Empty"), + cst_Stdlib_Queue_Empty=caml_string_of_jsbytes("Stdlib.Queue.Empty"), + cst_count=caml_string_of_jsbytes("{count = "), + cst_data=caml_string_of_jsbytes("; data = "), + cst$6=caml_string_of_jsbytes("}"), + cst_Sempty=caml_string_of_jsbytes("Sempty"), + cst_Scons=caml_string_of_jsbytes("Scons ("), + cst$7=caml_string_of_jsbytes(", "), + cst$8=caml_string_of_jsbytes(")"), + cst_Sapp=caml_string_of_jsbytes("Sapp ("), + cst$9=caml_string_of_jsbytes(", "), + cst$10=caml_string_of_jsbytes(")"), + cst_Slazy=caml_string_of_jsbytes("Slazy"), + cst_Sgen=caml_string_of_jsbytes("Sgen"), + cst_Sbuffio=caml_string_of_jsbytes("Sbuffio"), + cst_Stdlib_Stream_Failure=caml_string_of_jsbytes("Stdlib.Stream.Failure"), + cst_Stdlib_Stream_Error=caml_string_of_jsbytes("Stdlib.Stream.Error"), + cst_Buffer_truncate=caml_string_of_jsbytes("Buffer.truncate"), + cst_Buffer_add_channel=caml_string_of_jsbytes("Buffer.add_channel"), + cst_Buffer_add_substring_add_s= + caml_string_of_jsbytes("Buffer.add_substring/add_subbytes"), + cst_Buffer_add_cannot_grow_buf= + caml_string_of_jsbytes("Buffer.add: cannot grow buffer"), + cst_Buffer_nth=caml_string_of_jsbytes("Buffer.nth"), + cst_Buffer_blit=caml_string_of_jsbytes("Buffer.blit"), + cst_Buffer_sub=caml_string_of_jsbytes("Buffer.sub"), + cst_c=caml_string_of_jsbytes("%c"), + cst_s=caml_string_of_jsbytes("%s"), + cst_i=caml_string_of_jsbytes("%i"), + cst_li=caml_string_of_jsbytes("%li"), + cst_ni=caml_string_of_jsbytes("%ni"), + cst_Li=caml_string_of_jsbytes("%Li"), + cst_f=caml_string_of_jsbytes("%f"), + cst_B=caml_string_of_jsbytes("%B"), + cst$21=caml_string_of_jsbytes("%{"), + cst$22=caml_string_of_jsbytes("%}"), + cst$23=caml_string_of_jsbytes("%("), + cst$24=caml_string_of_jsbytes("%)"), + cst_a=caml_string_of_jsbytes("%a"), + cst_t$0=caml_string_of_jsbytes("%t"), + cst$25=caml_string_of_jsbytes("%?"), + cst_r$0=caml_string_of_jsbytes("%r"), + cst_r$1=caml_string_of_jsbytes("%_r"), + cst_u$0=caml_string_of_jsbytes("%u"), + cst_Printf_bad_conversion= + caml_string_of_jsbytes("Printf: bad conversion %["), + cst_Printf_bad_conversion$0= + caml_string_of_jsbytes("Printf: bad conversion %_"), + cst$30=caml_string_of_jsbytes("@{"), + cst$31=caml_string_of_jsbytes("@["), + cst$32=caml_string_of_jsbytes("@{"), + cst$33=caml_string_of_jsbytes("@["), + cst$34=caml_string_of_jsbytes("@{"), + cst$35=caml_string_of_jsbytes("@["), + cst_0=caml_string_of_jsbytes("0"), + cst_padding=caml_string_of_jsbytes("padding"), + cst_precision=caml_string_of_jsbytes("precision"), + cst$40=caml_string_of_jsbytes("'*'"), + cst$38=caml_string_of_jsbytes("'-'"), + cst_0$2=caml_string_of_jsbytes("'0'"), + cst$39=caml_string_of_jsbytes("'*'"), + cst_0$0=caml_string_of_jsbytes("0"), + cst_0$1=caml_string_of_jsbytes("0"), + cst_precision$0=caml_string_of_jsbytes("precision"), + cst_precision$1=caml_string_of_jsbytes("precision"), + cst$41=caml_string_of_jsbytes("'+'"), + cst$42=caml_string_of_jsbytes("'#'"), + cst$43=caml_string_of_jsbytes("' '"), + cst_padding$0=caml_string_of_jsbytes("`padding'"), + cst_precision$2=caml_string_of_jsbytes("`precision'"), + cst$44=caml_string_of_jsbytes("'+'"), + cst$45=caml_string_of_jsbytes("'_'"), + sub_format=[0,0,caml_string_of_jsbytes("")], + formatting_lit=[0,caml_string_of_jsbytes("@;"),1,0], + cst_digit=caml_string_of_jsbytes("digit"), + cst_character=caml_string_of_jsbytes("character ')'"), + cst_character$0=caml_string_of_jsbytes("character '}'"), + cst$49=caml_string_of_jsbytes("'#'"), + cst$46=caml_string_of_jsbytes("'+'"), + cst$47=caml_string_of_jsbytes("'+'"), + cst$48=caml_string_of_jsbytes("' '"), + cst$50=caml_string_of_jsbytes("'+'"), + cst_non_zero_widths_are_unsupp= + caml_string_of_jsbytes + ("non-zero widths are unsupported for %c conversions"), + cst_unexpected_end_of_format= + caml_string_of_jsbytes("unexpected end of format"), + cst$36=caml_string_of_jsbytes(""), + cst$37=caml_string_of_jsbytes(""), + cst_b$0=caml_string_of_jsbytes("b"), + cst_h=caml_string_of_jsbytes("h"), + cst_hov=caml_string_of_jsbytes("hov"), + cst_hv=caml_string_of_jsbytes("hv"), + cst_v=caml_string_of_jsbytes("v"), + cst_nan=caml_string_of_jsbytes("nan"), + cst_neg_infinity=caml_string_of_jsbytes("neg_infinity"), + cst_infinity=caml_string_of_jsbytes("infinity"), + cst$29=caml_string_of_jsbytes("."), + cst_nd$0=caml_string_of_jsbytes("%+nd"), + cst_nd$1=caml_string_of_jsbytes("% nd"), + cst_ni$1=caml_string_of_jsbytes("%+ni"), + cst_ni$2=caml_string_of_jsbytes("% ni"), + cst_nx=caml_string_of_jsbytes("%nx"), + cst_nx$0=caml_string_of_jsbytes("%#nx"), + cst_nX=caml_string_of_jsbytes("%nX"), + cst_nX$0=caml_string_of_jsbytes("%#nX"), + cst_no=caml_string_of_jsbytes("%no"), + cst_no$0=caml_string_of_jsbytes("%#no"), + cst_nd=caml_string_of_jsbytes("%nd"), + cst_ni$0=caml_string_of_jsbytes("%ni"), + cst_nu=caml_string_of_jsbytes("%nu"), + cst_ld$0=caml_string_of_jsbytes("%+ld"), + cst_ld$1=caml_string_of_jsbytes("% ld"), + cst_li$1=caml_string_of_jsbytes("%+li"), + cst_li$2=caml_string_of_jsbytes("% li"), + cst_lx=caml_string_of_jsbytes("%lx"), + cst_lx$0=caml_string_of_jsbytes("%#lx"), + cst_lX=caml_string_of_jsbytes("%lX"), + cst_lX$0=caml_string_of_jsbytes("%#lX"), + cst_lo=caml_string_of_jsbytes("%lo"), + cst_lo$0=caml_string_of_jsbytes("%#lo"), + cst_ld=caml_string_of_jsbytes("%ld"), + cst_li$0=caml_string_of_jsbytes("%li"), + cst_lu=caml_string_of_jsbytes("%lu"), + cst_Ld$0=caml_string_of_jsbytes("%+Ld"), + cst_Ld$1=caml_string_of_jsbytes("% Ld"), + cst_Li$1=caml_string_of_jsbytes("%+Li"), + cst_Li$2=caml_string_of_jsbytes("% Li"), + cst_Lx=caml_string_of_jsbytes("%Lx"), + cst_Lx$0=caml_string_of_jsbytes("%#Lx"), + cst_LX=caml_string_of_jsbytes("%LX"), + cst_LX$0=caml_string_of_jsbytes("%#LX"), + cst_Lo=caml_string_of_jsbytes("%Lo"), + cst_Lo$0=caml_string_of_jsbytes("%#Lo"), + cst_Ld=caml_string_of_jsbytes("%Ld"), + cst_Li$0=caml_string_of_jsbytes("%Li"), + cst_Lu=caml_string_of_jsbytes("%Lu"), + cst_d$3=caml_string_of_jsbytes("%+d"), + cst_d$4=caml_string_of_jsbytes("% d"), + cst_i$1=caml_string_of_jsbytes("%+i"), + cst_i$2=caml_string_of_jsbytes("% i"), + cst_x=caml_string_of_jsbytes("%x"), + cst_x$0=caml_string_of_jsbytes("%#x"), + cst_X$0=caml_string_of_jsbytes("%X"), + cst_X$1=caml_string_of_jsbytes("%#X"), + cst_o=caml_string_of_jsbytes("%o"), + cst_o$0=caml_string_of_jsbytes("%#o"), + cst_d$2=caml_string_of_jsbytes("%d"), + cst_i$0=caml_string_of_jsbytes("%i"), + cst_u=caml_string_of_jsbytes("%u"), + cst$26=caml_string_of_jsbytes("%!"), + cst$27=caml_string_of_jsbytes("@{"), + cst$28=caml_string_of_jsbytes("@["), + cst_0c=caml_string_of_jsbytes("0c"), + cst$20=caml_string_of_jsbytes("%%"), + cst$12=caml_string_of_jsbytes("@]"), + cst$13=caml_string_of_jsbytes("@}"), + cst$14=caml_string_of_jsbytes("@?"), + cst$15=caml_string_of_jsbytes("@\n"), + cst$16=caml_string_of_jsbytes("@."), + cst$17=caml_string_of_jsbytes("@@"), + cst$18=caml_string_of_jsbytes("@%"), + cst$19=caml_string_of_jsbytes("@"), + cst$11=caml_string_of_jsbytes(".*"), + cst_CamlinternalFormat_Type_mi= + caml_string_of_jsbytes("CamlinternalFormat.Type_mismatch"), + cst$58=caml_string_of_jsbytes(""), + cst$59=caml_string_of_jsbytes("\n"), + cst_a_boolean=caml_string_of_jsbytes("a boolean"), + cst_an_integer=caml_string_of_jsbytes("an integer"), + cst_an_integer$0=caml_string_of_jsbytes("an integer"), + cst_a_float=caml_string_of_jsbytes("a float"), + cst_a_float$0=caml_string_of_jsbytes("a float"), + cst$55=caml_string_of_jsbytes(""), + cst$56=caml_string_of_jsbytes(" "), + cst$57=caml_string_of_jsbytes(""), + cst_one_of=caml_string_of_jsbytes("one of: "), + cst_Arg_Expand_is_is_only_allo= + caml_string_of_jsbytes + ("Arg.Expand is is only allowed with Arg.parse_and_expand_argv_dynamic"), + cst_no_argument=caml_string_of_jsbytes("no argument"), + cst$54=caml_string_of_jsbytes("(?)"), + cst_help$3=caml_string_of_jsbytes("--help"), + cst_help$4=caml_string_of_jsbytes("-help"), + cst_help$2=caml_string_of_jsbytes("-help"), + cst_Display_this_list_of_optio= + caml_string_of_jsbytes(" Display this list of options"), + cst_help=caml_string_of_jsbytes("-help"), + cst_help$1=caml_string_of_jsbytes("--help"), + cst_Display_this_list_of_optio$0= + caml_string_of_jsbytes(" Display this list of options"), + cst_help$0=caml_string_of_jsbytes("--help"), + cst$51=caml_string_of_jsbytes("}"), + cst$52=caml_string_of_jsbytes("|"), + cst$53=caml_string_of_jsbytes("{"), + cst_none=caml_string_of_jsbytes(""), + cst_Stdlib_Arg_Bad=caml_string_of_jsbytes("Stdlib.Arg.Bad"), + cst_Stdlib_Arg_Help=caml_string_of_jsbytes("Stdlib.Arg.Help"), + cst_Stdlib_Arg_Stop=caml_string_of_jsbytes("Stdlib.Arg.Stop"), + cst$61=caml_string_of_jsbytes(""), + cst_Fatal_error_out_of_memory_= + caml_string_of_jsbytes + ("Fatal error: out of memory in uncaught exception handler"), + cst$65=caml_string_of_jsbytes(""), + cst_Program_not_linked_with_g_= + caml_string_of_jsbytes + ("(Program not linked with -g, cannot print stack backtrace)\n"), + cst_Raised_at=caml_string_of_jsbytes("Raised at"), + cst_Re_raised_at=caml_string_of_jsbytes("Re-raised at"), + cst_Raised_by_primitive_operat= + caml_string_of_jsbytes("Raised by primitive operation at"), + cst_Called_from=caml_string_of_jsbytes("Called from"), + cst_inlined=caml_string_of_jsbytes(" (inlined)"), + cst$64=caml_string_of_jsbytes(""), + partial=[4,0,0,0,[12,45,[4,0,0,0,0]]], + cst_Out_of_memory=caml_string_of_jsbytes("Out of memory"), + cst_Stack_overflow=caml_string_of_jsbytes("Stack overflow"), + cst_Pattern_matching_failed= + caml_string_of_jsbytes("Pattern matching failed"), + cst_Assertion_failed=caml_string_of_jsbytes("Assertion failed"), + cst_Undefined_recursive_module= + caml_string_of_jsbytes("Undefined recursive module"), + cst$62=caml_string_of_jsbytes(""), + cst$63=caml_string_of_jsbytes(""), + cst$60=caml_string_of_jsbytes("_"), + locfmt= [0, [11, - cst_invalid_format, - [3, + caml_string_of_jsbytes('File "'), + [2, 0, [11, - cst_at_character_number, - [4, 0, 0, 0, [11, ", duplicate flag ", [1, 0]]]]]], - "invalid format %S: at character number %d, duplicate flag %C"], - cst_0 = cst_0$3, - cst_padding = "padding", - _D_ = [0, 1, 0], - _E_ = [0, 0], - cst_precision = cst_precision$3, - _F_ = [1, 0], - _G_ = [1, 1], - cst_0$2 = "'0'", - cst_0$0 = cst_0$3, - _I_ = [1, 1], - cst_0$1 = cst_0$3, - cst_precision$0 = cst_precision$3, - _H_ = [1, 1], - cst_precision$1 = cst_precision$3, - _M_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - cst_at_character_number, + caml_string_of_jsbytes('", line '), [4, 0, 0, 0, [11, - ", flag ", - [1, - [11, - " is only allowed after the '", - [12, 37, [11, "', before padding and precision", 0]]]]]]]]], - "invalid format %S: at character number %d, flag %C is only allowed after the '%%', before padding and precision"], - _J_ = + caml_string_of_jsbytes(", characters "), + [4, + 0, + 0, + 0, + [12,45,[4,0,0,0,[11,caml_string_of_jsbytes(": "),[2,0,0]]]]]]]]]], + caml_string_of_jsbytes('File "%s", line %d, characters %d-%d: %s')], + cst_Fun_Finally_raised=caml_string_of_jsbytes("Fun.Finally_raised: "), + cst_Stdlib_Fun_Finally_raised= + caml_string_of_jsbytes("Stdlib.Fun.Finally_raised"), + cst_Digest_from_hex$0=caml_string_of_jsbytes("Digest.from_hex"), + cst_Digest_from_hex=caml_string_of_jsbytes("Digest.from_hex"), + cst_Digest_to_hex=caml_string_of_jsbytes("Digest.to_hex"), + cst_Digest_substring=caml_string_of_jsbytes("Digest.substring"), + cst_Random_int64=caml_string_of_jsbytes("Random.int64"), + cst_Random_int32=caml_string_of_jsbytes("Random.int32"), + cst_Random_full_int=caml_string_of_jsbytes("Random.full_int"), + cst_Random_int=caml_string_of_jsbytes("Random.int"), + cst_x$1=caml_string_of_jsbytes("x"), + cst_Hashtbl_unsupported_hash_t= + caml_string_of_jsbytes("Hashtbl: unsupported hash table format"), + cst_OCAMLRUNPARAM=caml_string_of_jsbytes("OCAMLRUNPARAM"), + cst_CAMLRUNPARAM=caml_string_of_jsbytes("CAMLRUNPARAM"), + cst$66=caml_string_of_jsbytes(""), + cst_Weak_Make_hash_bucket_cann= + caml_string_of_jsbytes("Weak.Make: hash bucket cannot grow more"), + cst_Weak_fill=caml_string_of_jsbytes("Weak.fill"), + cst_Weak_blit=caml_string_of_jsbytes("Weak.blit"), + cst_Weak_check=caml_string_of_jsbytes("Weak.check"), + cst_Weak_get_copy=caml_string_of_jsbytes("Weak.get_copy"), + cst_Weak_get=caml_string_of_jsbytes("Weak.get"), + cst_Weak_set=caml_string_of_jsbytes("Weak.set"), + cst_Weak_create=caml_string_of_jsbytes("Weak.create"), + cst$84=caml_string_of_jsbytes(""), + cst$85=caml_string_of_jsbytes(""), + cst$83=caml_string_of_jsbytes("."), + cst$80=caml_string_of_jsbytes(">"), + cst$81=caml_string_of_jsbytes("<\/"), + cst$82=caml_string_of_jsbytes(""), + cst$77=caml_string_of_jsbytes(">"), + cst$78=caml_string_of_jsbytes("<"), + cst$79=caml_string_of_jsbytes(""), + cst$76=caml_string_of_jsbytes("\n"), + cst_Format_pp_set_geometry= + caml_string_of_jsbytes("Format.pp_set_geometry: "), + cst$72=caml_string_of_jsbytes(""), + cst$73=caml_string_of_jsbytes(""), + cst$74=caml_string_of_jsbytes(""), + cst$75=caml_string_of_jsbytes(""), + cst$68=caml_string_of_jsbytes(""), + cst$69=caml_string_of_jsbytes(""), + cst$70=caml_string_of_jsbytes(""), + cst$71=caml_string_of_jsbytes(""), + cst$67=caml_string_of_jsbytes(""), + cst_Stdlib_Format_String_tag= + caml_string_of_jsbytes("Stdlib.Format.String_tag"), + cst_end_of_input_not_found= + caml_string_of_jsbytes("end of input not found"), + cst_scanf_bad_conversion_a= + caml_string_of_jsbytes('scanf: bad conversion "%a"'), + cst_scanf_bad_conversion_t= + caml_string_of_jsbytes('scanf: bad conversion "%t"'), + cst_scanf_missing_reader=caml_string_of_jsbytes("scanf: missing reader"), + cst_scanf_bad_conversion_custo= + caml_string_of_jsbytes('scanf: bad conversion "%?" (custom converter)'), + cst_scanf_bad_conversion= + caml_string_of_jsbytes('scanf: bad conversion "%*"'), + cst_scanf_bad_conversion$0= + caml_string_of_jsbytes('scanf: bad conversion "%*"'), + cst_scanf_bad_conversion$1= + caml_string_of_jsbytes('scanf: bad conversion "%-"'), + cst_scanf_bad_conversion$2= + caml_string_of_jsbytes('scanf: bad conversion "%*"'), + cst$91=caml_string_of_jsbytes('"'), + cst$92=caml_string_of_jsbytes('"'), + cst$89=caml_string_of_jsbytes('"'), + cst$90=caml_string_of_jsbytes('"'), + cst$88=caml_string_of_jsbytes('"'), + cst_in_format=caml_string_of_jsbytes(' in format "'), + cst_an=caml_string_of_jsbytes("an"), + cst_x$2=caml_string_of_jsbytes("x"), + cst_nfinity=caml_string_of_jsbytes("nfinity"), + cst_digits=caml_string_of_jsbytes("digits"), + cst_decimal_digits=caml_string_of_jsbytes("decimal digits"), + cst_0b=caml_string_of_jsbytes("0b"), + cst_0o=caml_string_of_jsbytes("0o"), + cst_0u=caml_string_of_jsbytes("0u"), + cst_0x=caml_string_of_jsbytes("0x"), + cst_false$3=caml_string_of_jsbytes("false"), + cst_true$3=caml_string_of_jsbytes("true"), + cst_not_a_valid_float_in_hexad= + caml_string_of_jsbytes("not a valid float in hexadecimal notation"), + cst_no_dot_or_exponent_part_fo= + caml_string_of_jsbytes("no dot or exponent part found in float token"), + cst$87=caml_string_of_jsbytes("-"), + cst_unnamed_function=caml_string_of_jsbytes("unnamed function"), + cst_unnamed_character_string= + caml_string_of_jsbytes("unnamed character string"), + cst_unnamed_Stdlib_input_chann= + caml_string_of_jsbytes("unnamed Stdlib input channel"), + cst$86=caml_string_of_jsbytes("-"), + cst_Stdlib_Scanf_Scan_failure= + caml_string_of_jsbytes("Stdlib.Scanf.Scan_failure"), + cst_binary=caml_string_of_jsbytes("binary"), + cst_octal=caml_string_of_jsbytes("octal"), + cst_hexadecimal=caml_string_of_jsbytes("hexadecimal"), + cst_a_Char=caml_string_of_jsbytes("a Char"), + cst_a_String=caml_string_of_jsbytes("a String"), + cst$93=caml_string_of_jsbytes(""), + cst_CamlinternalMod_update_mod= + caml_string_of_jsbytes("CamlinternalMod.update_mod: not a module"), + cst_CamlinternalMod_init_mod_n= + caml_string_of_jsbytes("CamlinternalMod.init_mod: not a module"), + cst$94=caml_string_of_jsbytes(""), + cst$95=caml_string_of_jsbytes(""), + cst$96=caml_string_of_jsbytes(""), + cst$97=caml_string_of_jsbytes(""), + cst$99=caml_string_of_jsbytes(""), + cst$98=caml_string_of_jsbytes(""), + cst_Illegal_character=caml_string_of_jsbytes("Illegal character "), + cst_Filename_chop_extension= + caml_string_of_jsbytes("Filename.chop_extension"), + cst$127=caml_string_of_jsbytes(""), + cst_Filename_chop_suffix=caml_string_of_jsbytes("Filename.chop_suffix"), + cst$126=caml_string_of_jsbytes(""), + cst_2_1$0=caml_string_of_jsbytes(" 2>&1"), + cst_2$0=caml_string_of_jsbytes(" 2>"), + cst$125=caml_string_of_jsbytes(""), + cst$117=caml_string_of_jsbytes(" >"), + cst$124=caml_string_of_jsbytes(""), + cst$118=caml_string_of_jsbytes(" <"), + cst$123=caml_string_of_jsbytes(""), + cst$119=caml_string_of_jsbytes(" "), + cst$120=caml_string_of_jsbytes(" "), + cst$121=caml_string_of_jsbytes('"'), + cst$122=caml_string_of_jsbytes(""), + cst_Filename_quote_command_bad= + caml_string_of_jsbytes("Filename.quote_command: bad file name "), + cst$115=caml_string_of_jsbytes('"'), + cst$116=caml_string_of_jsbytes('"'), + cst$113=caml_string_of_jsbytes("./"), + cst$112=caml_string_of_jsbytes(".\\"), + cst$111=caml_string_of_jsbytes("../"), + cst$110=caml_string_of_jsbytes("..\\"), + cst_2_1=caml_string_of_jsbytes(" 2>&1"), + cst_2=caml_string_of_jsbytes(" 2>"), + cst$109=caml_string_of_jsbytes(""), + cst$104=caml_string_of_jsbytes(" >"), + cst$108=caml_string_of_jsbytes(""), + cst$105=caml_string_of_jsbytes(" <"), + cst$107=caml_string_of_jsbytes(""), + cst$106=caml_string_of_jsbytes(" "), + cst$103=caml_string_of_jsbytes("./"), + cst$102=caml_string_of_jsbytes("../"), + cst$101=caml_string_of_jsbytes(""), + cst$100=caml_string_of_jsbytes(""), + null$0=caml_string_of_jsbytes("/dev/null"), + current_dir_name=caml_string_of_jsbytes("."), + parent_dir_name=caml_string_of_jsbytes(".."), + dir_sep=caml_string_of_jsbytes("/"), + cst_TMPDIR=caml_string_of_jsbytes("TMPDIR"), + cst_tmp=caml_string_of_jsbytes("/tmp"), + quotequote=caml_string_of_jsbytes("'\\''"), + null$1=caml_string_of_jsbytes("NUL"), + current_dir_name$0=caml_string_of_jsbytes("."), + parent_dir_name$0=caml_string_of_jsbytes(".."), + dir_sep$0=caml_string_of_jsbytes("\\"), + cst_TEMP=caml_string_of_jsbytes("TEMP"), + cst$114=caml_string_of_jsbytes("."), + null$2=caml_string_of_jsbytes("/dev/null"), + current_dir_name$1=caml_string_of_jsbytes("."), + parent_dir_name$1=caml_string_of_jsbytes(".."), + dir_sep$1=caml_string_of_jsbytes("/"), + cst_Cygwin=caml_string_of_jsbytes("Cygwin"), + cst_Win32=caml_string_of_jsbytes("Win32"), + zero$4=[254,0.,0.], + one$4=[254,1.,0.], + i=[254,0.,1.], + cst_Bigarray_array3_of_genarra= + caml_string_of_jsbytes("Bigarray.array3_of_genarray"), + cst_Bigarray_array2_of_genarra= + caml_string_of_jsbytes("Bigarray.array2_of_genarray"), + cst_Bigarray_array1_of_genarra= + caml_string_of_jsbytes("Bigarray.array1_of_genarray"), + cst_Bigarray_array0_of_genarra= + caml_string_of_jsbytes("Bigarray.array0_of_genarray"), + cst_Bigarray_Array3_of_array_n= + caml_string_of_jsbytes("Bigarray.Array3.of_array: non-cubic data"), + cst_Bigarray_Array3_of_array_n$0= + caml_string_of_jsbytes("Bigarray.Array3.of_array: non-cubic data"), + cst_Bigarray_Array2_of_array_n= + caml_string_of_jsbytes("Bigarray.Array2.of_array: non-rectangular data"), + cst_In_channel_input_all_chann= + caml_string_of_jsbytes + ("In_channel.input_all: channel content is larger than maximum string length"), + Invalid_argument=global_data.Invalid_argument, + Failure=global_data.Failure, + Match_failure=global_data.Match_failure, + Assert_failure=global_data.Assert_failure, + Not_found=global_data.Not_found, + Out_of_memory=global_data.Out_of_memory, + Stack_overflow=global_data.Stack_overflow, + Sys_error=global_data.Sys_error, + End_of_file=global_data.End_of_file, + Division_by_zero=global_data.Division_by_zero, + Sys_blocked_io=global_data.Sys_blocked_io, + Undefined_recursive_module=global_data.Undefined_recursive_module, + _l_=[0,0,[0,6,0]], + _k_=[0,0,[0,7,0]], + _j_=[0,1,[0,3,[0,4,[0,6,0]]]], + _i_=[0,1,[0,3,[0,4,[0,7,0]]]], + _g_=[0,1], + _h_=[0,0], + _a_=runtime.caml_int64_create_lo_mi_hi(0,0,32752), + _b_=runtime.caml_int64_create_lo_mi_hi(0,0,65520), + _c_=runtime.caml_int64_create_lo_mi_hi(1,0,32752), + _d_=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,32751), + _e_=runtime.caml_int64_create_lo_mi_hi(0,0,16), + _f_=runtime.caml_int64_create_lo_mi_hi(0,0,15536), + _n_=[0,caml_string_of_jsbytes("obj.ml"),95,4], + _p_=[0,caml_string_of_jsbytes("seq.ml"),596,4], + _v_=[0,caml_string_of_jsbytes("uchar.ml"),88,18], + _u_=[0,caml_string_of_jsbytes("uchar.ml"),91,7], + _t_=[0,caml_string_of_jsbytes("uchar.ml"),80,18], + _s_=[0,caml_string_of_jsbytes("uchar.ml"),85,7], + _y_=[0,0,0], + _E_=[0,caml_string_of_jsbytes("bytes.ml"),808,20], + _D_=[0,caml_string_of_jsbytes("bytes.ml"),819,9], + _C_=[0,caml_string_of_jsbytes("bytes.ml"),754,20], + _B_=[0,caml_string_of_jsbytes("bytes.ml"),765,9], + _A_=[0,caml_string_of_jsbytes("bytes.ml"),642,20], + _z_=[0,caml_string_of_jsbytes("bytes.ml"),667,9], + _F_=[0,caml_string_of_jsbytes("array.ml"),322,4], + _H_=[0,caml_string_of_jsbytes("float.ml"),395,6], + _G_=[0,caml_string_of_jsbytes("float.ml"),222,14], + _S_=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,65535), + _R_=runtime.caml_int64_create_lo_mi_hi(0,0,0), + _Q_=runtime.caml_int64_create_lo_mi_hi(1,0,0), + _P_=runtime.caml_int64_create_lo_mi_hi(1,0,0), + _T_=[0,0,0,0], + _U_=[0,0,0], + _V_=[0,caml_string_of_jsbytes("set.ml"),570,18], + _W_=[0,0,0,0], + _X_=[0,caml_string_of_jsbytes("map.ml"),400,10], + _Y_=[0,0,0], + _Z_=[0,caml_string_of_jsbytes("stream.ml"),53,12], + ___=[0,0], + _$_=[0,caml_string_of_jsbytes("stream.ml"),82,12], + _ad_=[0,caml_string_of_jsbytes("buffer.ml"),231,9], + _ac_=[0,caml_string_of_jsbytes("buffer.ml"),212,2], + _ab_=[0,caml_string_of_jsbytes("buffer.ml"),93,2], + _aa_=[0,caml_string_of_jsbytes("buffer.ml"),94,2], + _af_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),850,23], + _aq_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),814,21], + _ai_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),815,21], + _ar_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),818,21], + _aj_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),819,21], + _as_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),822,19], + _ak_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),823,19], + _at_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),826,22], + _al_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),827,22], + _au_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),831,30], + _am_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),832,30], + _ao_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),836,26], + _ag_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),837,26], + _ap_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),846,28], + _ah_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),847,28], + _an_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),851,23], + _aw_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1558,4], + _ax_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1626,39], + _ay_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1649,31], + _az_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1650,31], + _aA_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1830,8], + _a4_= [0, [11, - cst_invalid_format, + caml_string_of_jsbytes("bad input: format type mismatch between "), + [3,0,[11,caml_string_of_jsbytes(" and "),[3,0,0]]]], + caml_string_of_jsbytes + ("bad input: format type mismatch between %S and %S")], + _a3_= + [0, + [11, + caml_string_of_jsbytes("bad input: format type mismatch between "), + [3,0,[11,caml_string_of_jsbytes(" and "),[3,0,0]]]], + caml_string_of_jsbytes + ("bad input: format type mismatch between %S and %S")], + _aG_= + [0, + [11, + caml_string_of_jsbytes("invalid format "), [3, 0, [11, - cst_at_character_number, + caml_string_of_jsbytes(": at character number "), + [4,0,0,0,[11,caml_string_of_jsbytes(", duplicate flag "),[1,0]]]]]], + caml_string_of_jsbytes + ("invalid format %S: at character number %d, duplicate flag %C")], + _aH_=[0,1,0], + _aI_=[0,0], + _aJ_=[1,0], + _aK_=[1,1], + _aM_=[1,1], + _aL_=[1,1], + _aQ_= + [0, + [11, + caml_string_of_jsbytes("invalid format "), + [3, + 0, + [11, + caml_string_of_jsbytes(": at character number "), [4, 0, 0, 0, - [11, ', invalid conversion "', [12, 37, [0, [12, 34, 0]]]]]]]], - 'invalid format %S: at character number %d, invalid conversion "%%%c"'], - _K_ = [0, 0], - cst_padding$0 = "`padding'", - _L_ = [0, 0], - cst_precision$2 = "`precision'", - _N_ = [0, [12, 64, 0]], - _O_ = [0, "@ ", 1, 0], - _P_ = [0, "@,", 0, 0], - _Q_ = [2, 60], - _R_ = + [11, + caml_string_of_jsbytes(", flag "), + [1, + [11, + caml_string_of_jsbytes(" is only allowed after the '"), + [12, + 37, + [11, + caml_string_of_jsbytes("', before padding and precision"), + 0]]]]]]]]], + caml_string_of_jsbytes + ("invalid format %S: at character number %d, flag %C is only allowed after the '%%', before padding and precision")], + _aN_= [0, [11, - cst_invalid_format, + caml_string_of_jsbytes("invalid format "), [3, 0, [11, - ": '", + caml_string_of_jsbytes(": at character number "), + [4, + 0, + 0, + 0, + [11, + caml_string_of_jsbytes(', invalid conversion "'), + [12,37,[0,[12,34,0]]]]]]]], + caml_string_of_jsbytes + ('invalid format %S: at character number %d, invalid conversion "%%%c"')], + _aO_=[0,0], + _aP_=[0,0], + _aR_=[0,[12,64,0]], + _aS_=[0,caml_string_of_jsbytes("@ "),1,0], + _aT_=[0,caml_string_of_jsbytes("@,"),0,0], + _aU_=[2,60], + _aV_= + [0, + [11, + caml_string_of_jsbytes("invalid format "), + [3, + 0, + [11, + caml_string_of_jsbytes(": '"), [12, 37, [11, - "' alone is not accepted in character sets, use ", + caml_string_of_jsbytes + ("' alone is not accepted in character sets, use "), [12, 37, [12, 37, - [11, " instead at position ", [4, 0, 0, 0, [12, 46, 0]]]]]]]]]], - "invalid format %S: '%%' alone is not accepted in character sets, use %%%% instead at position %d."], - _S_ = + [11, + caml_string_of_jsbytes(" instead at position "), + [4,0,0,0,[12,46,0]]]]]]]]]], + caml_string_of_jsbytes + ("invalid format %S: '%%' alone is not accepted in character sets, use %%%% instead at position %d.")], + _aW_= [0, [11, - cst_invalid_format, + caml_string_of_jsbytes("invalid format "), [3, 0, [11, - ": integer ", - [4, 0, 0, 0, [11, " is greater than the limit ", [4, 0, 0, 0, 0]]]]]], - "invalid format %S: integer %d is greater than the limit %d"], - cst_digit = "digit", - _T_ = [0, cst_camlinternalFormat_ml, 2837, 11], - _U_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - ': unclosed sub-format, expected "', - [12, 37, [0, [11, '" at character number ', [4, 0, 0, 0, 0]]]]]]], - 'invalid format %S: unclosed sub-format, expected "%%%c" at character number %d'], - cst_character = "character ')'", - cst_character$0 = "character '}'", - _V_ = [0, cst_camlinternalFormat_ml, 2899, 34], - _W_ = [0, cst_camlinternalFormat_ml, 2935, 28], - _X_ = [0, cst_camlinternalFormat_ml, 2957, 11], - _Y_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - cst_at_character_number, + caml_string_of_jsbytes(": integer "), [4, 0, 0, 0, [11, - cst$44, + caml_string_of_jsbytes(" is greater than the limit "), + [4,0,0,0,0]]]]]], + caml_string_of_jsbytes + ("invalid format %S: integer %d is greater than the limit %d")], + _aX_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2837,11], + _aY_= + [0, + [11, + caml_string_of_jsbytes("invalid format "), + [3, + 0, + [11, + caml_string_of_jsbytes(': unclosed sub-format, expected "'), + [12, + 37, + [0, + [11,caml_string_of_jsbytes('" at character number '),[4,0,0,0,0]]]]]]], + caml_string_of_jsbytes + ('invalid format %S: unclosed sub-format, expected "%%%c" at character number %d')], + _aZ_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2899,34], + _a0_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2935,28], + _a1_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2957,11], + _a2_= + [0, + [11, + caml_string_of_jsbytes("invalid format "), + [3, + 0, + [11, + caml_string_of_jsbytes(": at character number "), + [4, + 0, + 0, + 0, + [11, + caml_string_of_jsbytes(", "), [2, 0, [11, - " is incompatible with '", - [0, [11, "' in sub-format ", [3, 0, 0]]]]]]]]]], - "invalid format %S: at character number %d, %s is incompatible with '%c' in sub-format %S"], - _B_ = + caml_string_of_jsbytes(" is incompatible with '"), + [0,[11,caml_string_of_jsbytes("' in sub-format "),[3,0,0]]]]]]]]]], + caml_string_of_jsbytes + ("invalid format %S: at character number %d, %s is incompatible with '%c' in sub-format %S")], + _aF_= [0, [11, - cst_invalid_format, + caml_string_of_jsbytes("invalid format "), [3, 0, [11, - cst_at_character_number, - [4, 0, 0, 0, [11, cst$44, [2, 0, [11, " expected, read ", [1, 0]]]]]]]], - "invalid format %S: at character number %d, %s expected, read %C"], - _A_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - cst_at_character_number, - [4, 0, 0, 0, [11, ", '", [0, [11, "' without ", [2, 0, 0]]]]]]]], - "invalid format %S: at character number %d, '%c' without %s"], - cst_non_zero_widths_are_unsupp = - "non-zero widths are unsupported for %c conversions", - cst_unexpected_end_of_format = "unexpected end of format", - _z_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, cst_at_character_number, [4, 0, 0, 0, [11, cst$44, [2, 0, 0]]]]]], - "invalid format %S: at character number %d, %s"], - _y_ = - [0, - [11, "invalid box description ", [3, 0, 0]], - "invalid box description %S"], - _x_ = [0, 0, 4], - cst_nan = "nan", - cst_neg_infinity = "neg_infinity", - cst_infinity = "infinity", - _r_ = [0, 103], - cst_nd$0 = "%+nd", - cst_nd$1 = "% nd", - cst_ni$1 = "%+ni", - cst_ni$2 = "% ni", - cst_nx = "%nx", - cst_nx$0 = "%#nx", - cst_nX = "%nX", - cst_nX$0 = "%#nX", - cst_no = "%no", - cst_no$0 = "%#no", - cst_nd = "%nd", - cst_ni$0 = cst_ni$3, - cst_nu = "%nu", - cst_ld$0 = "%+ld", - cst_ld$1 = "% ld", - cst_li$1 = "%+li", - cst_li$2 = "% li", - cst_lx = "%lx", - cst_lx$0 = "%#lx", - cst_lX = "%lX", - cst_lX$0 = "%#lX", - cst_lo = "%lo", - cst_lo$0 = "%#lo", - cst_ld = "%ld", - cst_li$0 = cst_li$3, - cst_lu = "%lu", - cst_Ld$0 = "%+Ld", - cst_Ld$1 = "% Ld", - cst_Li$1 = "%+Li", - cst_Li$2 = "% Li", - cst_Lx = "%Lx", - cst_Lx$0 = "%#Lx", - cst_LX = "%LX", - cst_LX$0 = "%#LX", - cst_Lo = "%Lo", - cst_Lo$0 = "%#Lo", - cst_Ld = "%Ld", - cst_Li$0 = cst_Li$3, - cst_Lu = "%Lu", - cst_d$0 = "%+d", - cst_d$1 = "% d", - cst_i$1 = "%+i", - cst_i$2 = "% i", - cst_x = "%x", - cst_x$0 = "%#x", - cst_X = "%X", - cst_X$0 = "%#X", - cst_o = "%o", - cst_o$0 = "%#o", - cst_d = "%d", - cst_i$0 = cst_i$3, - cst_u = cst_u$0, - cst_0c = "0c", - _a_ = [0, 0, 0], - cst_CamlinternalFormat_Type_mi = "CamlinternalFormat.Type_mismatch"; - function create_char_set(param){return caml_call2(Stdlib_Bytes[1], 32, 0);} - function add_in_char_set(char_set, c){ - var - str_ind = c >>> 3 | 0, - mask = 1 << (c & 7), - _dU_ = runtime.caml_bytes_get(char_set, str_ind) | mask; - return caml_bytes_set(char_set, str_ind, caml_call1(Stdlib[29], _dU_)); - } - function freeze_char_set(char_set){ - return caml_call1(Stdlib_Bytes[6], char_set); - } - function rev_char_set(char_set){ - var char_set$0 = create_char_set(0), i = 0; - for(;;){ - var _dS_ = caml_string_get(char_set, i) ^ 255; - caml_bytes_set(char_set$0, i, caml_call1(Stdlib[29], _dS_)); - var _dT_ = i + 1 | 0; - if(31 === i) return caml_call1(Stdlib_Bytes[48], char_set$0); - var i = _dT_; - } - } - function is_in_char_set(char_set, c){ - var str_ind = c >>> 3 | 0, mask = 1 << (c & 7); - return 0 !== (caml_string_get(char_set, str_ind) & mask) ? 1 : 0; - } - function pad_of_pad_opt(pad_opt){ - if(! pad_opt) return 0; - var width = pad_opt[1]; - return [0, 1, width]; - } - function param_format_of_ignored_format(ign, fmt){ - if(typeof ign === "number") - switch(ign){ - case 0: - return [0, [0, fmt]]; - case 1: - return [0, [1, fmt]]; - case 2: - return [0, [19, fmt]]; - default: return [0, [22, fmt]]; - } - switch(ign[0]){ - case 0: - var pad_opt = ign[1]; return [0, [2, pad_of_pad_opt(pad_opt), fmt]]; - case 1: - var pad_opt$0 = ign[1]; - return [0, [3, pad_of_pad_opt(pad_opt$0), fmt]]; - case 2: - var pad_opt$1 = ign[2], iconv = ign[1]; - return [0, [4, iconv, pad_of_pad_opt(pad_opt$1), 0, fmt]]; - case 3: - var pad_opt$2 = ign[2], iconv$0 = ign[1]; - return [0, [5, iconv$0, pad_of_pad_opt(pad_opt$2), 0, fmt]]; - case 4: - var pad_opt$3 = ign[2], iconv$1 = ign[1]; - return [0, [6, iconv$1, pad_of_pad_opt(pad_opt$3), 0, fmt]]; - case 5: - var pad_opt$4 = ign[2], iconv$2 = ign[1]; - return [0, [7, iconv$2, pad_of_pad_opt(pad_opt$4), 0, fmt]]; - case 6: - var prec_opt = ign[2], pad_opt$5 = ign[1]; - if(prec_opt) - var ndec = prec_opt[1], _dR_ = [0, ndec]; - else - var _dR_ = 0; - return [0, [8, _a_, pad_of_pad_opt(pad_opt$5), _dR_, fmt]]; - case 7: - var pad_opt$6 = ign[1]; - return [0, [9, pad_of_pad_opt(pad_opt$6), fmt]]; - case 8: - var fmtty = ign[2], pad_opt$7 = ign[1]; - return [0, [13, pad_opt$7, fmtty, fmt]]; - case 9: - var fmtty$0 = ign[2], pad_opt$8 = ign[1]; - return [0, [14, pad_opt$8, fmtty$0, fmt]]; - case 10: - var char_set = ign[2], width_opt = ign[1]; - return [0, [20, width_opt, char_set, fmt]]; - default: var counter = ign[1]; return [0, [21, counter, fmt]]; - } - } - function default_float_precision(fconv){return 5 === fconv[2] ? 12 : -6;} - function buffer_create(init_size){ - return [0, 0, caml_create_bytes(init_size)]; - } - function buffer_check_size(buf, overhead){ - var - len = runtime.caml_ml_bytes_length(buf[2]), - min_len = buf[1] + overhead | 0, - _dP_ = len < min_len ? 1 : 0; - if(_dP_){ - var - new_len = caml_call2(Stdlib_Int[11], len * 2 | 0, min_len), - new_str = caml_create_bytes(new_len); - caml_call5(Stdlib_Bytes[11], buf[2], 0, new_str, 0, len); - buf[2] = new_str; - var _dQ_ = 0; - } - else - var _dQ_ = _dP_; - return _dQ_; - } - function buffer_add_char(buf, c){ - buffer_check_size(buf, 1); - caml_bytes_set(buf[2], buf[1], c); - buf[1] = buf[1] + 1 | 0; - return 0; - } - function buffer_add_string(buf, s){ - var str_len = caml_ml_string_length(s); - buffer_check_size(buf, str_len); - caml_call5(Stdlib_String[48], s, 0, buf[2], buf[1], str_len); - buf[1] = buf[1] + str_len | 0; - return 0; - } - function buffer_contents(buf){ - return caml_call3(Stdlib_Bytes[8], buf[2], 0, buf[1]); - } - function char_of_iconv(iconv){ - switch(iconv){ - case 6: - case 7: - return 120; - case 8: - case 9: - return 88; - case 10: - case 11: - return 111; - case 12: - case 15: - return 117; - case 0: - case 1: - case 2: - case 13: - return 100; - default: return 105; - } - } - function char_of_fconv(opt, fconv){ - if(opt) var sth = opt[1], cF = sth; else var cF = 70; - switch(fconv[2]){ - case 0: - return 102; - case 1: - return 101; - case 2: - return 69; - case 3: - return 103; - case 4: - return 71; - case 5: - return cF; - case 6: - return 104; - case 7: - return 72; - default: return 70; - } - } - function bprint_padty(buf, padty){ - switch(padty){ - case 0: - return buffer_add_char(buf, 45); - case 1: - return 0; - default: return buffer_add_char(buf, 48); - } - } - function bprint_ignored_flag(buf, ign_flag){ - return ign_flag ? buffer_add_char(buf, 95) : ign_flag; - } - function bprint_pad_opt(buf, pad_opt){ - if(! pad_opt) return 0; - var width = pad_opt[1]; - return buffer_add_string(buf, caml_call1(Stdlib_Int[12], width)); - } - function bprint_padding(buf, pad){ - if(typeof pad === "number") return 0; - if(0 === pad[0]){ - var n = pad[2], padty = pad[1]; - bprint_padty(buf, padty); - return buffer_add_string(buf, caml_call1(Stdlib_Int[12], n)); - } - var padty$0 = pad[1]; - bprint_padty(buf, padty$0); - return buffer_add_char(buf, 42); - } - function bprint_precision(buf, prec){ - if(typeof prec === "number") - return prec ? buffer_add_string(buf, cst) : 0; - var n = prec[1]; - buffer_add_char(buf, 46); - return buffer_add_string(buf, caml_call1(Stdlib_Int[12], n)); - } - function bprint_iconv_flag(buf, iconv){ - switch(iconv){ - case 1: - case 4: - return buffer_add_char(buf, 43); - case 2: - case 5: - return buffer_add_char(buf, 32); - case 7: - case 9: - case 11: - case 13: - case 14: - case 15: - return buffer_add_char(buf, 35); - default: return 0; - } - } - function bprint_altint_fmt(buf, ign_flag, iconv, pad, prec, c){ - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag); - bprint_iconv_flag(buf, iconv); - bprint_padding(buf, pad); - bprint_precision(buf, prec); - buffer_add_char(buf, c); - return buffer_add_char(buf, char_of_iconv(iconv)); - } - function bprint_fconv_flag(buf, fconv){ - switch(fconv[1]){ - case 0: break; - case 1: - buffer_add_char(buf, 43); break; - default: buffer_add_char(buf, 32); - } - return 8 <= fconv[2] ? buffer_add_char(buf, 35) : 0; - } - function string_of_formatting_lit(formatting_lit){ - if(typeof formatting_lit === "number") - switch(formatting_lit){ - case 0: - return cst$0; - case 1: - return cst$1; - case 2: - return cst$2; - case 3: - return cst$3; - case 4: - return cst$4; - case 5: - return cst$5; - default: return cst$6; - } - switch(formatting_lit[0]){ - case 0: - var str = formatting_lit[1]; return str; - case 1: - var str$0 = formatting_lit[1]; return str$0; - default: - var c = formatting_lit[1], _dO_ = caml_call2(Stdlib_String[1], 1, c); - return caml_call2(Stdlib[28], cst$7, _dO_); - } - } - function bprint_char_literal(buf, chr){ - return 37 === chr - ? buffer_add_string(buf, cst$8) - : buffer_add_char(buf, chr); - } - function bprint_string_literal(buf, str){ - var _dM_ = caml_ml_string_length(str) - 1 | 0, _dL_ = 0; - if(_dM_ >= 0){ - var i = _dL_; - for(;;){ - bprint_char_literal(buf, caml_string_get(str, i)); - var _dN_ = i + 1 | 0; - if(_dM_ !== i){var i = _dN_; continue;} - break; - } - } - return 0; - } - function bprint_fmtty(buf, fmtty){ - var fmtty$0 = fmtty; - for(;;){ - if(typeof fmtty$0 === "number") return 0; - switch(fmtty$0[0]){ - case 0: - var fmtty$1 = fmtty$0[1]; - buffer_add_string(buf, cst_c); - var fmtty$0 = fmtty$1; - continue; - case 1: - var fmtty$2 = fmtty$0[1]; - buffer_add_string(buf, cst_s); - var fmtty$0 = fmtty$2; - continue; - case 2: - var fmtty$3 = fmtty$0[1]; - buffer_add_string(buf, cst_i); - var fmtty$0 = fmtty$3; - continue; - case 3: - var fmtty$4 = fmtty$0[1]; - buffer_add_string(buf, cst_li); - var fmtty$0 = fmtty$4; - continue; - case 4: - var fmtty$5 = fmtty$0[1]; - buffer_add_string(buf, cst_ni); - var fmtty$0 = fmtty$5; - continue; - case 5: - var fmtty$6 = fmtty$0[1]; - buffer_add_string(buf, cst_Li); - var fmtty$0 = fmtty$6; - continue; - case 6: - var fmtty$7 = fmtty$0[1]; - buffer_add_string(buf, cst_f); - var fmtty$0 = fmtty$7; - continue; - case 7: - var fmtty$8 = fmtty$0[1]; - buffer_add_string(buf, cst_B); - var fmtty$0 = fmtty$8; - continue; - case 8: - var fmtty$9 = fmtty$0[2], sub_fmtty = fmtty$0[1]; - buffer_add_string(buf, cst$9); - bprint_fmtty(buf, sub_fmtty); - buffer_add_string(buf, cst$10); - var fmtty$0 = fmtty$9; - continue; - case 9: - var fmtty$10 = fmtty$0[3], sub_fmtty$0 = fmtty$0[1]; - buffer_add_string(buf, cst$11); - bprint_fmtty(buf, sub_fmtty$0); - buffer_add_string(buf, cst$12); - var fmtty$0 = fmtty$10; - continue; - case 10: - var fmtty$11 = fmtty$0[1]; - buffer_add_string(buf, cst_a); - var fmtty$0 = fmtty$11; - continue; - case 11: - var fmtty$12 = fmtty$0[1]; - buffer_add_string(buf, cst_t); - var fmtty$0 = fmtty$12; - continue; - case 12: - var fmtty$13 = fmtty$0[1]; - buffer_add_string(buf, cst$13); - var fmtty$0 = fmtty$13; - continue; - case 13: - var fmtty$14 = fmtty$0[1]; - buffer_add_string(buf, cst_r); - var fmtty$0 = fmtty$14; - continue; - default: - var fmtty$15 = fmtty$0[1]; - buffer_add_string(buf, cst_r$0); - var fmtty$0 = fmtty$15; - continue; - } - } - } - function int_of_custom_arity(param){ - if(! param) return 0; - var x = param[1]; - return 1 + int_of_custom_arity(x) | 0; - } - function string_of_fmt(fmt){ - var buf = buffer_create(16); - function fmtiter(fmt, ign_flag){ - var fmt$0 = fmt, ign_flag$0 = ign_flag; - a: - for(;;){ - if(typeof fmt$0 === "number") return 0; - switch(fmt$0[0]){ - case 0: - var rest = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 99); - var fmt$0 = rest, ign_flag$0 = 0; - continue; - case 1: - var rest$0 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 67); - var fmt$0 = rest$0, ign_flag$0 = 0; - continue; - case 2: - var rest$1 = fmt$0[2], pad = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_padding(buf, pad); - buffer_add_char(buf, 115); - var fmt$0 = rest$1, ign_flag$0 = 0; - continue; - case 3: - var rest$2 = fmt$0[2], pad$0 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_padding(buf, pad$0); - buffer_add_char(buf, 83); - var fmt$0 = rest$2, ign_flag$0 = 0; - continue; - case 4: - var - rest$3 = fmt$0[4], - prec = fmt$0[3], - pad$1 = fmt$0[2], - iconv = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_iconv_flag(buf, iconv); - bprint_padding(buf, pad$1); - bprint_precision(buf, prec); - buffer_add_char(buf, char_of_iconv(iconv)); - var fmt$0 = rest$3, ign_flag$0 = 0; - continue; - case 5: - var - rest$4 = fmt$0[4], - prec$0 = fmt$0[3], - pad$2 = fmt$0[2], - iconv$0 = fmt$0[1]; - bprint_altint_fmt(buf, ign_flag$0, iconv$0, pad$2, prec$0, 108); - var fmt$0 = rest$4, ign_flag$0 = 0; - continue; - case 6: - var - rest$5 = fmt$0[4], - prec$1 = fmt$0[3], - pad$3 = fmt$0[2], - iconv$1 = fmt$0[1]; - bprint_altint_fmt(buf, ign_flag$0, iconv$1, pad$3, prec$1, 110); - var fmt$0 = rest$5, ign_flag$0 = 0; - continue; - case 7: - var - rest$6 = fmt$0[4], - prec$2 = fmt$0[3], - pad$4 = fmt$0[2], - iconv$2 = fmt$0[1]; - bprint_altint_fmt(buf, ign_flag$0, iconv$2, pad$4, prec$2, 76); - var fmt$0 = rest$6, ign_flag$0 = 0; - continue; - case 8: - var - rest$7 = fmt$0[4], - prec$3 = fmt$0[3], - pad$5 = fmt$0[2], - fconv = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_fconv_flag(buf, fconv); - bprint_padding(buf, pad$5); - bprint_precision(buf, prec$3); - buffer_add_char(buf, char_of_fconv(0, fconv)); - var fmt$0 = rest$7, ign_flag$0 = 0; - continue; - case 9: - var rest$8 = fmt$0[2], pad$6 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_padding(buf, pad$6); - buffer_add_char(buf, 66); - var fmt$0 = rest$8, ign_flag$0 = 0; - continue; - case 10: - var rest$9 = fmt$0[1]; - buffer_add_string(buf, cst$14); - var fmt$0 = rest$9; - continue; - case 11: - var rest$10 = fmt$0[2], str = fmt$0[1]; - bprint_string_literal(buf, str); - var fmt$0 = rest$10; - continue; - case 12: - var rest$11 = fmt$0[2], chr = fmt$0[1]; - bprint_char_literal(buf, chr); - var fmt$0 = rest$11; - continue; - case 13: - var rest$12 = fmt$0[3], fmtty = fmt$0[2], pad_opt = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_pad_opt(buf, pad_opt); - buffer_add_char(buf, 123); - bprint_fmtty(buf, fmtty); - buffer_add_char(buf, 37); - buffer_add_char(buf, 125); - var fmt$0 = rest$12, ign_flag$0 = 0; - continue; - case 14: - var rest$13 = fmt$0[3], fmtty$0 = fmt$0[2], pad_opt$0 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_pad_opt(buf, pad_opt$0); - buffer_add_char(buf, 40); - bprint_fmtty(buf, fmtty$0); - buffer_add_char(buf, 37); - buffer_add_char(buf, 41); - var fmt$0 = rest$13, ign_flag$0 = 0; - continue; - case 15: - var rest$14 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 97); - var fmt$0 = rest$14, ign_flag$0 = 0; - continue; - case 16: - var rest$15 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 116); - var fmt$0 = rest$15, ign_flag$0 = 0; - continue; - case 17: - var rest$16 = fmt$0[2], fmting_lit = fmt$0[1]; - bprint_string_literal(buf, string_of_formatting_lit(fmting_lit)); - var fmt$0 = rest$16; - continue; - case 18: - var rest$17 = fmt$0[2], fmting_gen = fmt$0[1]; - if(0 === fmting_gen[0]){ - var str$0 = fmting_gen[1][2]; - buffer_add_string(buf, cst$15); - buffer_add_string(buf, str$0); - } - else{ - var str$1 = fmting_gen[1][2]; - buffer_add_string(buf, cst$16); - buffer_add_string(buf, str$1); - } - var fmt$0 = rest$17; - continue; - case 19: - var rest$18 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 114); - var fmt$0 = rest$18, ign_flag$0 = 0; - continue; - case 20: - var rest$19 = fmt$0[3], char_set = fmt$0[2], width_opt = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_pad_opt(buf, width_opt); - var - print_char = - function(buf, i){ - var c = caml_call1(Stdlib[29], i); - return 37 === c - ? (buffer_add_char(buf, 37), buffer_add_char(buf, 37)) - : 64 - === c - ? (buffer_add_char(buf, 37), buffer_add_char(buf, 64)) - : buffer_add_char(buf, c); - }; - buffer_add_char(buf, 91); - var - set = - is_in_char_set(char_set, 0) - ? (buffer_add_char(buf, 94), rev_char_set(char_set)) - : char_set, - is_alone$0 = - function(set){ - function is_alone(c){ - var - after = caml_call1(Stdlib_Char[1], c + 1 | 0), - before = caml_call1(Stdlib_Char[1], c - 1 | 0), - _dH_ = is_in_char_set(set, c); - if(_dH_) - var - _dI_ = is_in_char_set(set, before), - _dJ_ = _dI_ ? is_in_char_set(set, after) : _dI_, - _dK_ = 1 - _dJ_; - else - var _dK_ = _dH_; - return _dK_; - } - return is_alone; - }, - is_alone = is_alone$0(set); - if(is_alone(93)) buffer_add_char(buf, 93); - var i = 1; - b: - for(;;){ - if(i < 256){ - if(! is_in_char_set(set, caml_call1(Stdlib[29], i))){var i$0 = i + 1 | 0, i = i$0; continue;} - var switcher = caml_call1(Stdlib[29], i) - 45 | 0, switch$0 = 0; - if(48 < switcher >>> 0) - if(210 <= switcher) print_char(buf, 255); else switch$0 = 1; - else{ - if(46 < switcher - 1 >>> 0){ - var i$2 = i + 1 | 0, i = i$2; - continue; - } - switch$0 = 1; - } - if(switch$0){ - var i$1 = i + 1 | 0; - if(! is_in_char_set(set, caml_call1(Stdlib[29], i$1))){ - print_char(buf, i$1 - 1 | 0); - var i$6 = i$1 + 1 | 0, i = i$6; - continue; - } - var - switcher$0 = caml_call1(Stdlib[29], i$1) - 45 | 0, - switch$1 = 0; - if(48 < switcher$0 >>> 0){ - if(210 <= switcher$0){ - print_char(buf, 254); - print_char(buf, 255); - switch$1 = 1; - } - } - else if - (46 < switcher$0 - 1 >>> 0 - && ! is_in_char_set(set, caml_call1(Stdlib[29], i$1 + 1 | 0))){ - print_char(buf, i$1 - 1 | 0); - var i$5 = i$1 + 1 | 0, i = i$5; - continue; - } - if(! switch$1){ - if(! is_in_char_set(set, caml_call1(Stdlib[29], i$1 + 1 | 0))){ - print_char(buf, i$1 - 1 | 0); - print_char(buf, i$1); - var i$4 = i$1 + 2 | 0, i = i$4; - continue; - } - var j = i$1 + 2 | 0, i$3 = i$1 - 1 | 0, j$0 = j; - for(;;){ - if - (256 !== j$0 - && is_in_char_set(set, caml_call1(Stdlib[29], j$0))){var j$1 = j$0 + 1 | 0, j$0 = j$1; continue;} - print_char(buf, i$3); - print_char(buf, 45); - print_char(buf, j$0 - 1 | 0); - if(j$0 < 256){var i$7 = j$0 + 1 | 0, i = i$7; continue b;} - break; - } - } - } - } - if(is_alone(45)) buffer_add_char(buf, 45); - buffer_add_char(buf, 93); - var fmt$0 = rest$19, ign_flag$0 = 0; - continue a; - } - case 21: - var rest$20 = fmt$0[2], counter = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - switch(counter){ - case 0: - var _dD_ = 108; break; - case 1: - var _dD_ = 110; break; - default: var _dD_ = 78; - } - buffer_add_char(buf, _dD_); - var fmt$0 = rest$20, ign_flag$0 = 0; - continue; - case 22: - var rest$21 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_string_literal(buf, cst_0c); - var fmt$0 = rest$21, ign_flag$0 = 0; - continue; - case 23: - var - rest$22 = fmt$0[2], - ign = fmt$0[1], - fmt$1 = param_format_of_ignored_format(ign, rest$22)[1], - fmt$0 = fmt$1, - ign_flag$0 = 1; - continue; - default: - var - rest$23 = fmt$0[3], - arity = fmt$0[1], - _dF_ = int_of_custom_arity(arity), - _dE_ = 1; - if(_dF_ >= 1){ - var i$8 = _dE_; - for(;;){ - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 63); - var _dG_ = i$8 + 1 | 0; - if(_dF_ !== i$8){var i$8 = _dG_; continue;} - break; - } - } - var fmt$0 = rest$23, ign_flag$0 = 0; - continue; - } - } - } - fmtiter(fmt, 0); - return buffer_contents(buf); - } - function symm(param){ - if(typeof param === "number") return 0; - switch(param[0]){ - case 0: - var rest = param[1]; return [0, symm(rest)]; - case 1: - var rest$0 = param[1]; return [1, symm(rest$0)]; - case 2: - var rest$1 = param[1]; return [2, symm(rest$1)]; - case 3: - var rest$2 = param[1]; return [3, symm(rest$2)]; - case 4: - var rest$3 = param[1]; return [4, symm(rest$3)]; - case 5: - var rest$4 = param[1]; return [5, symm(rest$4)]; - case 6: - var rest$5 = param[1]; return [6, symm(rest$5)]; - case 7: - var rest$6 = param[1]; return [7, symm(rest$6)]; - case 8: - var rest$7 = param[2], ty = param[1]; return [8, ty, symm(rest$7)]; - case 9: - var rest$8 = param[3], ty2 = param[2], ty1 = param[1]; - return [9, ty2, ty1, symm(rest$8)]; - case 10: - var rest$9 = param[1]; return [10, symm(rest$9)]; - case 11: - var rest$10 = param[1]; return [11, symm(rest$10)]; - case 12: - var rest$11 = param[1]; return [12, symm(rest$11)]; - case 13: - var rest$12 = param[1]; return [13, symm(rest$12)]; - default: var rest$13 = param[1]; return [14, symm(rest$13)]; - } - } - function fmtty_rel_det(param){ - if(typeof param !== "number") - switch(param[0]){ - case 0: - var - rest = param[1], - match = fmtty_rel_det(rest), - de = match[4], - ed = match[3], - af = match[2], - fa = match[1], - _di_ = function(param){caml_call1(af, 0); return 0;}; - return [0, - function(param){caml_call1(fa, 0); return 0;}, - _di_, - ed, - de]; - case 1: - var - rest$0 = param[1], - match$0 = fmtty_rel_det(rest$0), - de$0 = match$0[4], - ed$0 = match$0[3], - af$0 = match$0[2], - fa$0 = match$0[1], - _dj_ = function(param){caml_call1(af$0, 0); return 0;}; - return [0, - function(param){caml_call1(fa$0, 0); return 0;}, - _dj_, - ed$0, - de$0]; - case 2: - var - rest$1 = param[1], - match$1 = fmtty_rel_det(rest$1), - de$1 = match$1[4], - ed$1 = match$1[3], - af$1 = match$1[2], - fa$1 = match$1[1], - _dk_ = function(param){caml_call1(af$1, 0); return 0;}; - return [0, - function(param){caml_call1(fa$1, 0); return 0;}, - _dk_, - ed$1, - de$1]; - case 3: - var - rest$2 = param[1], - match$2 = fmtty_rel_det(rest$2), - de$2 = match$2[4], - ed$2 = match$2[3], - af$2 = match$2[2], - fa$2 = match$2[1], - _dl_ = function(param){caml_call1(af$2, 0); return 0;}; - return [0, - function(param){caml_call1(fa$2, 0); return 0;}, - _dl_, - ed$2, - de$2]; - case 4: - var - rest$3 = param[1], - match$3 = fmtty_rel_det(rest$3), - de$3 = match$3[4], - ed$3 = match$3[3], - af$3 = match$3[2], - fa$3 = match$3[1], - _dm_ = function(param){caml_call1(af$3, 0); return 0;}; - return [0, - function(param){caml_call1(fa$3, 0); return 0;}, - _dm_, - ed$3, - de$3]; - case 5: - var - rest$4 = param[1], - match$4 = fmtty_rel_det(rest$4), - de$4 = match$4[4], - ed$4 = match$4[3], - af$4 = match$4[2], - fa$4 = match$4[1], - _dn_ = function(param){caml_call1(af$4, 0); return 0;}; - return [0, - function(param){caml_call1(fa$4, 0); return 0;}, - _dn_, - ed$4, - de$4]; - case 6: - var - rest$5 = param[1], - match$5 = fmtty_rel_det(rest$5), - de$5 = match$5[4], - ed$5 = match$5[3], - af$5 = match$5[2], - fa$5 = match$5[1], - _do_ = function(param){caml_call1(af$5, 0); return 0;}; - return [0, - function(param){caml_call1(fa$5, 0); return 0;}, - _do_, - ed$5, - de$5]; - case 7: - var - rest$6 = param[1], - match$6 = fmtty_rel_det(rest$6), - de$6 = match$6[4], - ed$6 = match$6[3], - af$6 = match$6[2], - fa$6 = match$6[1], - _dp_ = function(param){caml_call1(af$6, 0); return 0;}; - return [0, - function(param){caml_call1(fa$6, 0); return 0;}, - _dp_, - ed$6, - de$6]; - case 8: - var - rest$7 = param[2], - match$7 = fmtty_rel_det(rest$7), - de$7 = match$7[4], - ed$7 = match$7[3], - af$7 = match$7[2], - fa$7 = match$7[1], - _dq_ = function(param){caml_call1(af$7, 0); return 0;}; - return [0, - function(param){caml_call1(fa$7, 0); return 0;}, - _dq_, - ed$7, - de$7]; - case 9: - var - rest$8 = param[3], - ty2 = param[2], - ty1 = param[1], - match$8 = fmtty_rel_det(rest$8), - de$8 = match$8[4], - ed$8 = match$8[3], - af$8 = match$8[2], - fa$8 = match$8[1], - ty = trans(symm(ty1), ty2), - match$9 = fmtty_rel_det(ty), - jd = match$9[4], - dj = match$9[3], - ga = match$9[2], - ag = match$9[1], - _dr_ = - function(param){caml_call1(jd, 0); caml_call1(de$8, 0); return 0;}, - _ds_ = - function(param){caml_call1(ed$8, 0); caml_call1(dj, 0); return 0;}, - _dt_ = - function(param){caml_call1(ga, 0); caml_call1(af$8, 0); return 0;}; - return [0, - function(param){ - caml_call1(fa$8, 0); - caml_call1(ag, 0); - return 0; - }, - _dt_, - _ds_, - _dr_]; - case 10: - var - rest$9 = param[1], - match$10 = fmtty_rel_det(rest$9), - de$9 = match$10[4], - ed$9 = match$10[3], - af$9 = match$10[2], - fa$9 = match$10[1], - _du_ = function(param){caml_call1(af$9, 0); return 0;}; - return [0, - function(param){caml_call1(fa$9, 0); return 0;}, - _du_, - ed$9, - de$9]; - case 11: - var - rest$10 = param[1], - match$11 = fmtty_rel_det(rest$10), - de$10 = match$11[4], - ed$10 = match$11[3], - af$10 = match$11[2], - fa$10 = match$11[1], - _dv_ = function(param){caml_call1(af$10, 0); return 0;}; - return [0, - function(param){caml_call1(fa$10, 0); return 0;}, - _dv_, - ed$10, - de$10]; - case 12: - var - rest$11 = param[1], - match$12 = fmtty_rel_det(rest$11), - de$11 = match$12[4], - ed$11 = match$12[3], - af$11 = match$12[2], - fa$11 = match$12[1], - _dw_ = function(param){caml_call1(af$11, 0); return 0;}; - return [0, - function(param){caml_call1(fa$11, 0); return 0;}, - _dw_, - ed$11, - de$11]; - case 13: - var - rest$12 = param[1], - match$13 = fmtty_rel_det(rest$12), - de$12 = match$13[4], - ed$12 = match$13[3], - af$12 = match$13[2], - fa$12 = match$13[1], - _dx_ = function(param){caml_call1(de$12, 0); return 0;}, - _dy_ = function(param){caml_call1(ed$12, 0); return 0;}, - _dz_ = function(param){caml_call1(af$12, 0); return 0;}; - return [0, - function(param){caml_call1(fa$12, 0); return 0;}, - _dz_, - _dy_, - _dx_]; - default: - var - rest$13 = param[1], - match$14 = fmtty_rel_det(rest$13), - de$13 = match$14[4], - ed$13 = match$14[3], - af$13 = match$14[2], - fa$13 = match$14[1], - _dA_ = function(param){caml_call1(de$13, 0); return 0;}, - _dB_ = function(param){caml_call1(ed$13, 0); return 0;}, - _dC_ = function(param){caml_call1(af$13, 0); return 0;}; - return [0, - function(param){caml_call1(fa$13, 0); return 0;}, - _dC_, - _dB_, - _dA_]; - } - function _df_(param){return 0;} - function _dg_(param){return 0;} - function _dh_(param){return 0;} - return [0, function(param){return 0;}, _dh_, _dg_, _df_]; - } - function trans(ty1, ty2){ - var switch$0 = 0; - if(typeof ty1 === "number"){ - if(typeof ty2 === "number") return 0; - switch(ty2[0]){ - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - default: - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - } - } - else - switch(ty1[0]){ - case 0: - var rest1 = ty1[1], switch$1 = 0; - if(typeof ty2 === "number") - switch$1 = 1; - else - switch(ty2[0]){ - case 0: - var rest2 = ty2[1]; return [0, trans(rest1, rest2)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$1 = 1; - } - if(switch$1) switch$0 = 7; - break; - case 1: - var rest1$0 = ty1[1], switch$2 = 0; - if(typeof ty2 === "number") - switch$2 = 1; - else - switch(ty2[0]){ - case 1: - var rest2$0 = ty2[1]; return [1, trans(rest1$0, rest2$0)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$2 = 1; - } - if(switch$2) switch$0 = 7; - break; - case 2: - var rest1$1 = ty1[1], switch$3 = 0; - if(typeof ty2 === "number") - switch$3 = 1; - else - switch(ty2[0]){ - case 2: - var rest2$1 = ty2[1]; return [2, trans(rest1$1, rest2$1)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$3 = 1; - } - if(switch$3) switch$0 = 7; - break; - case 3: - var rest1$2 = ty1[1], switch$4 = 0; - if(typeof ty2 === "number") - switch$4 = 1; - else - switch(ty2[0]){ - case 3: - var rest2$2 = ty2[1]; return [3, trans(rest1$2, rest2$2)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$4 = 1; - } - if(switch$4) switch$0 = 7; - break; - case 4: - var rest1$3 = ty1[1], switch$5 = 0; - if(typeof ty2 === "number") - switch$5 = 1; - else - switch(ty2[0]){ - case 4: - var rest2$3 = ty2[1]; return [4, trans(rest1$3, rest2$3)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$5 = 1; - } - if(switch$5) switch$0 = 7; - break; - case 5: - var rest1$4 = ty1[1], switch$6 = 0; - if(typeof ty2 === "number") - switch$6 = 1; - else - switch(ty2[0]){ - case 5: - var rest2$4 = ty2[1]; return [5, trans(rest1$4, rest2$4)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$6 = 1; - } - if(switch$6) switch$0 = 7; - break; - case 6: - var rest1$5 = ty1[1], switch$7 = 0; - if(typeof ty2 === "number") - switch$7 = 1; - else - switch(ty2[0]){ - case 6: - var rest2$5 = ty2[1]; return [6, trans(rest1$5, rest2$5)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$7 = 1; - } - if(switch$7) switch$0 = 7; - break; - case 7: - var rest1$6 = ty1[1], switch$8 = 0; - if(typeof ty2 === "number") - switch$8 = 1; - else - switch(ty2[0]){ - case 7: - var rest2$6 = ty2[1]; return [7, trans(rest1$6, rest2$6)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$8 = 1; - } - if(switch$8) switch$0 = 7; - break; - case 8: - var rest1$7 = ty1[2], ty1$0 = ty1[1], switch$9 = 0; - if(typeof ty2 === "number") - switch$9 = 1; - else - switch(ty2[0]){ - case 8: - var - rest2$7 = ty2[2], - ty2$0 = ty2[1], - _de_ = trans(rest1$7, rest2$7); - return [8, trans(ty1$0, ty2$0), _de_]; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$9 = 1; - } - if(switch$9) - throw caml_maybe_attach_backtrace([0, Assert_failure, _k_], 1); - break; - case 9: - var rest1$8 = ty1[3], ty12 = ty1[2], ty11 = ty1[1], switch$10 = 0; - if(typeof ty2 === "number") - switch$10 = 1; - else - switch(ty2[0]){ - case 8: - switch$0 = 5; break; - case 9: - var - rest2$8 = ty2[3], - ty22 = ty2[2], - ty21 = ty2[1], - ty = trans(symm(ty12), ty21), - match = fmtty_rel_det(ty), - f4 = match[4], - f2 = match[2]; - caml_call1(f2, 0); - caml_call1(f4, 0); - return [9, ty11, ty22, trans(rest1$8, rest2$8)]; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$10 = 1; - } - if(switch$10) - throw caml_maybe_attach_backtrace([0, Assert_failure, _l_], 1); - break; - case 10: - var rest1$9 = ty1[1]; - if(typeof ty2 !== "number" && 10 === ty2[0]){ - var rest2$9 = ty2[1]; - return [10, trans(rest1$9, rest2$9)]; - } - throw caml_maybe_attach_backtrace([0, Assert_failure, _m_], 1); - case 11: - var rest1$10 = ty1[1], switch$11 = 0; - if(typeof ty2 === "number") - switch$11 = 1; - else - switch(ty2[0]){ - case 10: break; - case 11: - var rest2$10 = ty2[1]; return [11, trans(rest1$10, rest2$10)]; - default: switch$11 = 1; - } - if(switch$11) - throw caml_maybe_attach_backtrace([0, Assert_failure, _n_], 1); - break; - case 12: - var rest1$11 = ty1[1], switch$12 = 0; - if(typeof ty2 === "number") - switch$12 = 1; - else - switch(ty2[0]){ - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - var rest2$11 = ty2[1]; return [12, trans(rest1$11, rest2$11)]; - default: switch$12 = 1; - } - if(switch$12) - throw caml_maybe_attach_backtrace([0, Assert_failure, _o_], 1); - break; - case 13: - var rest1$12 = ty1[1], switch$13 = 0; - if(typeof ty2 === "number") - switch$13 = 1; - else - switch(ty2[0]){ - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - var rest2$12 = ty2[1]; return [13, trans(rest1$12, rest2$12)]; - default: switch$13 = 1; - } - if(switch$13) - throw caml_maybe_attach_backtrace([0, Assert_failure, _p_], 1); - break; - default: - var rest1$13 = ty1[1], switch$14 = 0; - if(typeof ty2 === "number") - switch$14 = 1; - else - switch(ty2[0]){ - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - var rest2$13 = ty2[1]; return [14, trans(rest1$13, rest2$13)]; - default: switch$14 = 1; - } - if(switch$14) - throw caml_maybe_attach_backtrace([0, Assert_failure, _q_], 1); - } - switch(switch$0){ - case 0: - throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); - case 1: - throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); - case 2: - throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); - case 3: - throw caml_maybe_attach_backtrace([0, Assert_failure, _h_], 1); - case 4: - throw caml_maybe_attach_backtrace([0, Assert_failure, _i_], 1); - case 5: - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - case 6: - throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - default: throw caml_maybe_attach_backtrace([0, Assert_failure, _j_], 1); - } - } - function fmtty_of_padding_fmtty(pad, fmtty){ - return typeof pad === "number" ? fmtty : 0 === pad[0] ? fmtty : [2, fmtty]; - } - function fmtty_of_custom(arity, fmtty){ - if(! arity) return fmtty; - var arity$0 = arity[1]; - return [12, fmtty_of_custom(arity$0, fmtty)]; - } - function fmtty_of_fmt(fmtty){ - var fmtty$0 = fmtty; - for(;;){ - if(typeof fmtty$0 === "number") return 0; - switch(fmtty$0[0]){ - case 0: - var rest = fmtty$0[1]; return [0, fmtty_of_fmt(rest)]; - case 1: - var rest$0 = fmtty$0[1]; return [0, fmtty_of_fmt(rest$0)]; - case 2: - var rest$1 = fmtty$0[2], pad = fmtty$0[1]; - return fmtty_of_padding_fmtty(pad, [1, fmtty_of_fmt(rest$1)]); - case 3: - var rest$2 = fmtty$0[2], pad$0 = fmtty$0[1]; - return fmtty_of_padding_fmtty(pad$0, [1, fmtty_of_fmt(rest$2)]); - case 4: - var - rest$3 = fmtty$0[4], - prec = fmtty$0[3], - pad$1 = fmtty$0[2], - ty_rest = fmtty_of_fmt(rest$3), - prec_ty = fmtty_of_precision_fmtty(prec, [2, ty_rest]); - return fmtty_of_padding_fmtty(pad$1, prec_ty); - case 5: - var - rest$4 = fmtty$0[4], - prec$0 = fmtty$0[3], - pad$2 = fmtty$0[2], - ty_rest$0 = fmtty_of_fmt(rest$4), - prec_ty$0 = fmtty_of_precision_fmtty(prec$0, [3, ty_rest$0]); - return fmtty_of_padding_fmtty(pad$2, prec_ty$0); - case 6: - var - rest$5 = fmtty$0[4], - prec$1 = fmtty$0[3], - pad$3 = fmtty$0[2], - ty_rest$1 = fmtty_of_fmt(rest$5), - prec_ty$1 = fmtty_of_precision_fmtty(prec$1, [4, ty_rest$1]); - return fmtty_of_padding_fmtty(pad$3, prec_ty$1); - case 7: - var - rest$6 = fmtty$0[4], - prec$2 = fmtty$0[3], - pad$4 = fmtty$0[2], - ty_rest$2 = fmtty_of_fmt(rest$6), - prec_ty$2 = fmtty_of_precision_fmtty(prec$2, [5, ty_rest$2]); - return fmtty_of_padding_fmtty(pad$4, prec_ty$2); - case 8: - var - rest$7 = fmtty$0[4], - prec$3 = fmtty$0[3], - pad$5 = fmtty$0[2], - ty_rest$3 = fmtty_of_fmt(rest$7), - prec_ty$3 = fmtty_of_precision_fmtty(prec$3, [6, ty_rest$3]); - return fmtty_of_padding_fmtty(pad$5, prec_ty$3); - case 9: - var rest$8 = fmtty$0[2], pad$6 = fmtty$0[1]; - return fmtty_of_padding_fmtty(pad$6, [7, fmtty_of_fmt(rest$8)]); - case 10: - var fmtty$1 = fmtty$0[1], fmtty$0 = fmtty$1; continue; - case 11: - var fmtty$2 = fmtty$0[2], fmtty$0 = fmtty$2; continue; - case 12: - var fmtty$3 = fmtty$0[2], fmtty$0 = fmtty$3; continue; - case 13: - var rest$9 = fmtty$0[3], ty = fmtty$0[2]; - return [8, ty, fmtty_of_fmt(rest$9)]; - case 14: - var rest$10 = fmtty$0[3], ty$0 = fmtty$0[2]; - return [9, ty$0, ty$0, fmtty_of_fmt(rest$10)]; - case 15: - var rest$11 = fmtty$0[1]; return [10, fmtty_of_fmt(rest$11)]; - case 16: - var rest$12 = fmtty$0[1]; return [11, fmtty_of_fmt(rest$12)]; - case 17: - var fmtty$4 = fmtty$0[2], fmtty$0 = fmtty$4; continue; - case 18: - var - rest$13 = fmtty$0[2], - formatting_gen = fmtty$0[1], - _db_ = fmtty_of_fmt(rest$13); - if(0 === formatting_gen[0]) - var fmt = formatting_gen[1][1], _dc_ = fmtty_of_fmt(fmt); - else - var fmt$0 = formatting_gen[1][1], _dc_ = fmtty_of_fmt(fmt$0); - return caml_call2(CamlinternalFormatBasics[1], _dc_, _db_); - case 19: - var rest$14 = fmtty$0[1]; return [13, fmtty_of_fmt(rest$14)]; - case 20: - var rest$15 = fmtty$0[3]; return [1, fmtty_of_fmt(rest$15)]; - case 21: - var rest$16 = fmtty$0[2]; return [2, fmtty_of_fmt(rest$16)]; - case 22: - var rest$17 = fmtty$0[1]; return [0, fmtty_of_fmt(rest$17)]; - case 23: - var fmtty$5 = fmtty$0[2], ign = fmtty$0[1]; - if(typeof ign === "number") - switch(ign){ - case 0: - var fmtty$0 = fmtty$5; continue; - case 1: - var fmtty$0 = fmtty$5; continue; - case 2: - return [14, fmtty_of_fmt(fmtty$5)]; - default: var fmtty$0 = fmtty$5; continue; - } - switch(ign[0]){ - case 0: - var fmtty$0 = fmtty$5; continue; - case 1: - var fmtty$0 = fmtty$5; continue; - case 2: - var fmtty$0 = fmtty$5; continue; - case 3: - var fmtty$0 = fmtty$5; continue; - case 4: - var fmtty$0 = fmtty$5; continue; - case 5: - var fmtty$0 = fmtty$5; continue; - case 6: - var fmtty$0 = fmtty$5; continue; - case 7: - var fmtty$0 = fmtty$5; continue; - case 8: - var fmtty$0 = fmtty$5; continue; - case 9: - var fmtty$6 = ign[2], _dd_ = fmtty_of_fmt(fmtty$5); - return caml_call2(CamlinternalFormatBasics[1], fmtty$6, _dd_); - case 10: - var fmtty$0 = fmtty$5; continue; - default: var fmtty$0 = fmtty$5; continue; - } - default: - var rest$18 = fmtty$0[3], arity = fmtty$0[1]; - return fmtty_of_custom(arity, fmtty_of_fmt(rest$18)); - } - } - } - function fmtty_of_precision_fmtty(prec, fmtty){ - return typeof prec === "number" ? prec ? [2, fmtty] : fmtty : fmtty; - } - var - Type_mismatch = - [248, cst_CamlinternalFormat_Type_mi, runtime.caml_fresh_oo_id(0)]; - function type_padding(pad, fmtty){ - if(typeof pad === "number") return [0, 0, fmtty]; - if(0 === pad[0]){ - var w = pad[2], padty = pad[1]; - return [0, [0, padty, w], fmtty]; - } - if(typeof fmtty !== "number" && 2 === fmtty[0]){ - var rest = fmtty[1], padty$0 = pad[1]; - return [0, [1, padty$0], rest]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - } - function type_padprec(pad, prec, fmtty){ - var match = type_padding(pad, fmtty); - if(typeof prec !== "number"){ - var rest$1 = match[2], pad$2 = match[1], p = prec[1]; - return [0, pad$2, [0, p], rest$1]; - } - if(! prec){ - var rest$0 = match[2], pad$1 = match[1]; - return [0, pad$1, 0, rest$0]; - } - var match$0 = match[2]; - if(typeof match$0 !== "number" && 2 === match$0[0]){ - var rest = match$0[1], pad$0 = match[1]; - return [0, pad$0, 1, rest]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - } - function type_format(fmt, fmtty){ - var _da_ = type_format_gen(fmt, fmtty); - if(typeof _da_[2] !== "number") - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var fmt$0 = _da_[1]; - return fmt$0; - } - function type_ignored_param_one(ign, fmt, fmtty){ - var - match = type_format_gen(fmt, fmtty), - fmtty$0 = match[2], - fmt$0 = match[1]; - return [0, [23, ign, fmt$0], fmtty$0]; - } - function type_format_gen(fmt, fmtty0){ - if(typeof fmt === "number") return [0, 0, fmtty0]; - switch(fmt[0]){ - case 0: - if(typeof fmtty0 !== "number" && 0 === fmtty0[0]){ - var - fmtty_rest = fmtty0[1], - fmt_rest = fmt[1], - match = type_format_gen(fmt_rest, fmtty_rest), - fmtty = match[2], - fmt$0 = match[1]; - return [0, [0, fmt$0], fmtty]; - } - break; - case 1: - if(typeof fmtty0 !== "number" && 0 === fmtty0[0]){ - var - fmtty_rest$0 = fmtty0[1], - fmt_rest$0 = fmt[1], - match$0 = type_format_gen(fmt_rest$0, fmtty_rest$0), - fmtty$0 = match$0[2], - fmt$1 = match$0[1]; - return [0, [1, fmt$1], fmtty$0]; - } - break; - case 2: - var - fmt_rest$1 = fmt[2], - pad = fmt[1], - match$1 = type_padding(pad, fmtty0), - pad$0 = match$1[1], - match$2 = match$1[2]; - if(typeof match$2 !== "number" && 1 === match$2[0]){ - var - fmtty_rest$1 = match$2[1], - match$3 = type_format_gen(fmt_rest$1, fmtty_rest$1), - fmtty$1 = match$3[2], - fmt$2 = match$3[1]; - return [0, [2, pad$0, fmt$2], fmtty$1]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 3: - var - fmt_rest$2 = fmt[2], - pad$1 = fmt[1], - match$4 = type_padding(pad$1, fmtty0), - pad$2 = match$4[1], - match$5 = match$4[2]; - if(typeof match$5 !== "number" && 1 === match$5[0]){ - var - fmtty_rest$2 = match$5[1], - match$6 = type_format_gen(fmt_rest$2, fmtty_rest$2), - fmtty$2 = match$6[2], - fmt$3 = match$6[1]; - return [0, [3, pad$2, fmt$3], fmtty$2]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 4: - var - fmt_rest$3 = fmt[4], - prec = fmt[3], - pad$3 = fmt[2], - iconv = fmt[1], - match$7 = type_padprec(pad$3, prec, fmtty0), - pad$4 = match$7[1], - match$8 = match$7[3]; - if(typeof match$8 !== "number" && 2 === match$8[0]){ - var - fmtty_rest$3 = match$8[1], - prec$0 = match$7[2], - match$9 = type_format_gen(fmt_rest$3, fmtty_rest$3), - fmtty$3 = match$9[2], - fmt$4 = match$9[1]; - return [0, [4, iconv, pad$4, prec$0, fmt$4], fmtty$3]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 5: - var - fmt_rest$4 = fmt[4], - prec$1 = fmt[3], - pad$5 = fmt[2], - iconv$0 = fmt[1], - match$10 = type_padprec(pad$5, prec$1, fmtty0), - pad$6 = match$10[1], - match$11 = match$10[3]; - if(typeof match$11 !== "number" && 3 === match$11[0]){ - var - fmtty_rest$4 = match$11[1], - prec$2 = match$10[2], - match$12 = type_format_gen(fmt_rest$4, fmtty_rest$4), - fmtty$4 = match$12[2], - fmt$5 = match$12[1]; - return [0, [5, iconv$0, pad$6, prec$2, fmt$5], fmtty$4]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 6: - var - fmt_rest$5 = fmt[4], - prec$3 = fmt[3], - pad$7 = fmt[2], - iconv$1 = fmt[1], - match$13 = type_padprec(pad$7, prec$3, fmtty0), - pad$8 = match$13[1], - match$14 = match$13[3]; - if(typeof match$14 !== "number" && 4 === match$14[0]){ - var - fmtty_rest$5 = match$14[1], - prec$4 = match$13[2], - match$15 = type_format_gen(fmt_rest$5, fmtty_rest$5), - fmtty$5 = match$15[2], - fmt$6 = match$15[1]; - return [0, [6, iconv$1, pad$8, prec$4, fmt$6], fmtty$5]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 7: - var - fmt_rest$6 = fmt[4], - prec$5 = fmt[3], - pad$9 = fmt[2], - iconv$2 = fmt[1], - match$16 = type_padprec(pad$9, prec$5, fmtty0), - pad$10 = match$16[1], - match$17 = match$16[3]; - if(typeof match$17 !== "number" && 5 === match$17[0]){ - var - fmtty_rest$6 = match$17[1], - prec$6 = match$16[2], - match$18 = type_format_gen(fmt_rest$6, fmtty_rest$6), - fmtty$6 = match$18[2], - fmt$7 = match$18[1]; - return [0, [7, iconv$2, pad$10, prec$6, fmt$7], fmtty$6]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 8: - var - fmt_rest$7 = fmt[4], - prec$7 = fmt[3], - pad$11 = fmt[2], - fconv = fmt[1], - match$19 = type_padprec(pad$11, prec$7, fmtty0), - pad$12 = match$19[1], - match$20 = match$19[3]; - if(typeof match$20 !== "number" && 6 === match$20[0]){ - var - fmtty_rest$7 = match$20[1], - prec$8 = match$19[2], - match$21 = type_format_gen(fmt_rest$7, fmtty_rest$7), - fmtty$7 = match$21[2], - fmt$8 = match$21[1]; - return [0, [8, fconv, pad$12, prec$8, fmt$8], fmtty$7]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 9: - var - fmt_rest$8 = fmt[2], - pad$13 = fmt[1], - match$22 = type_padding(pad$13, fmtty0), - pad$14 = match$22[1], - match$23 = match$22[2]; - if(typeof match$23 !== "number" && 7 === match$23[0]){ - var - fmtty_rest$8 = match$23[1], - match$24 = type_format_gen(fmt_rest$8, fmtty_rest$8), - fmtty$8 = match$24[2], - fmt$9 = match$24[1]; - return [0, [9, pad$14, fmt$9], fmtty$8]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 10: - var - fmt_rest$9 = fmt[1], - match$25 = type_format_gen(fmt_rest$9, fmtty0), - fmtty$9 = match$25[2], - fmt$10 = match$25[1]; - return [0, [10, fmt$10], fmtty$9]; - case 11: - var - fmt_rest$10 = fmt[2], - str = fmt[1], - match$26 = type_format_gen(fmt_rest$10, fmtty0), - fmtty$10 = match$26[2], - fmt$11 = match$26[1]; - return [0, [11, str, fmt$11], fmtty$10]; - case 12: - var - fmt_rest$11 = fmt[2], - chr = fmt[1], - match$27 = type_format_gen(fmt_rest$11, fmtty0), - fmtty$11 = match$27[2], - fmt$12 = match$27[1]; - return [0, [12, chr, fmt$12], fmtty$11]; - case 13: - if(typeof fmtty0 !== "number" && 8 === fmtty0[0]){ - var - fmtty_rest$9 = fmtty0[2], - sub_fmtty = fmtty0[1], - fmt_rest$12 = fmt[3], - sub_fmtty$0 = fmt[2], - pad_opt = fmt[1]; - if(caml_notequal([0, sub_fmtty$0], [0, sub_fmtty])) - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var - match$28 = type_format_gen(fmt_rest$12, fmtty_rest$9), - fmtty$12 = match$28[2], - fmt$13 = match$28[1]; - return [0, [13, pad_opt, sub_fmtty, fmt$13], fmtty$12]; - } - break; - case 14: - if(typeof fmtty0 !== "number" && 9 === fmtty0[0]){ - var - fmtty_rest$10 = fmtty0[3], - sub_fmtty1 = fmtty0[1], - fmt_rest$13 = fmt[3], - sub_fmtty$1 = fmt[2], - pad_opt$0 = fmt[1], - _c__ = [0, caml_call1(CamlinternalFormatBasics[2], sub_fmtty1)]; - if - (caml_notequal - ([0, caml_call1(CamlinternalFormatBasics[2], sub_fmtty$1)], _c__)) - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var - match$29 = - type_format_gen - (fmt_rest$13, - caml_call1(CamlinternalFormatBasics[2], fmtty_rest$10)), - fmtty$13 = match$29[2], - fmt$14 = match$29[1]; - return [0, [14, pad_opt$0, sub_fmtty1, fmt$14], fmtty$13]; - } - break; - case 15: - if(typeof fmtty0 !== "number" && 10 === fmtty0[0]){ - var - fmtty_rest$11 = fmtty0[1], - fmt_rest$14 = fmt[1], - match$30 = type_format_gen(fmt_rest$14, fmtty_rest$11), - fmtty$14 = match$30[2], - fmt$15 = match$30[1]; - return [0, [15, fmt$15], fmtty$14]; - } - break; - case 16: - if(typeof fmtty0 !== "number" && 11 === fmtty0[0]){ - var - fmtty_rest$12 = fmtty0[1], - fmt_rest$15 = fmt[1], - match$31 = type_format_gen(fmt_rest$15, fmtty_rest$12), - fmtty$15 = match$31[2], - fmt$16 = match$31[1]; - return [0, [16, fmt$16], fmtty$15]; - } - break; - case 17: - var - fmt_rest$16 = fmt[2], - formatting_lit = fmt[1], - match$32 = type_format_gen(fmt_rest$16, fmtty0), - fmtty$16 = match$32[2], - fmt$17 = match$32[1]; - return [0, [17, formatting_lit, fmt$17], fmtty$16]; - case 18: - var fmt_rest$17 = fmt[2], formatting_gen = fmt[1]; - if(0 === formatting_gen[0]){ - var - match$36 = formatting_gen[1], - str$0 = match$36[2], - fmt1 = match$36[1], - match$37 = type_format_gen(fmt1, fmtty0), - fmtty2 = match$37[2], - fmt2 = match$37[1], - match$38 = type_format_gen(fmt_rest$17, fmtty2), - fmtty3 = match$38[2], - fmt3 = match$38[1]; - return [0, [18, [0, [0, fmt2, str$0]], fmt3], fmtty3]; - } - var - match$39 = formatting_gen[1], - str$1 = match$39[2], - fmt1$0 = match$39[1], - match$40 = type_format_gen(fmt1$0, fmtty0), - fmtty2$0 = match$40[2], - fmt2$0 = match$40[1], - match$41 = type_format_gen(fmt_rest$17, fmtty2$0), - fmtty3$0 = match$41[2], - fmt3$0 = match$41[1]; - return [0, [18, [1, [0, fmt2$0, str$1]], fmt3$0], fmtty3$0]; - case 19: - if(typeof fmtty0 !== "number" && 13 === fmtty0[0]){ - var - fmtty_rest$13 = fmtty0[1], - fmt_rest$18 = fmt[1], - match$33 = type_format_gen(fmt_rest$18, fmtty_rest$13), - fmtty$17 = match$33[2], - fmt$18 = match$33[1]; - return [0, [19, fmt$18], fmtty$17]; - } - break; - case 20: - if(typeof fmtty0 !== "number" && 1 === fmtty0[0]){ - var - fmtty_rest$14 = fmtty0[1], - fmt_rest$19 = fmt[3], - char_set = fmt[2], - width_opt = fmt[1], - match$34 = type_format_gen(fmt_rest$19, fmtty_rest$14), - fmtty$18 = match$34[2], - fmt$19 = match$34[1]; - return [0, [20, width_opt, char_set, fmt$19], fmtty$18]; - } - break; - case 21: - if(typeof fmtty0 !== "number" && 2 === fmtty0[0]){ - var - fmtty_rest$15 = fmtty0[1], - fmt_rest$20 = fmt[2], - counter = fmt[1], - match$35 = type_format_gen(fmt_rest$20, fmtty_rest$15), - fmtty$19 = match$35[2], - fmt$20 = match$35[1]; - return [0, [21, counter, fmt$20], fmtty$19]; - } - break; - case 23: - var rest = fmt[2], ign = fmt[1]; - if(typeof ign !== "number") - switch(ign[0]){ - case 0: - return type_ignored_param_one(ign, rest, fmtty0); - case 1: - return type_ignored_param_one(ign, rest, fmtty0); - case 2: - return type_ignored_param_one(ign, rest, fmtty0); - case 3: - return type_ignored_param_one(ign, rest, fmtty0); - case 4: - return type_ignored_param_one(ign, rest, fmtty0); - case 5: - return type_ignored_param_one(ign, rest, fmtty0); - case 6: - return type_ignored_param_one(ign, rest, fmtty0); - case 7: - return type_ignored_param_one(ign, rest, fmtty0); - case 8: - var sub_fmtty$2 = ign[2], pad_opt$1 = ign[1]; - return type_ignored_param_one - ([8, pad_opt$1, sub_fmtty$2], rest, fmtty0); - case 9: - var - sub_fmtty$3 = ign[2], - pad_opt$2 = ign[1], - _c$_ = type_ignored_format_substituti(sub_fmtty$3, rest, fmtty0), - match$43 = _c$_[2], - fmtty$21 = match$43[2], - fmt$22 = match$43[1], - sub_fmtty$4 = _c$_[1]; - return [0, [23, [9, pad_opt$2, sub_fmtty$4], fmt$22], fmtty$21]; - case 10: - return type_ignored_param_one(ign, rest, fmtty0); - default: return type_ignored_param_one(ign, rest, fmtty0); - } - switch(ign){ - case 0: - return type_ignored_param_one(ign, rest, fmtty0); - case 1: - return type_ignored_param_one(ign, rest, fmtty0); - case 2: - if(typeof fmtty0 !== "number" && 14 === fmtty0[0]){ - var - fmtty_rest$16 = fmtty0[1], - match$42 = type_format_gen(rest, fmtty_rest$16), - fmtty$20 = match$42[2], - fmt$21 = match$42[1]; - return [0, [23, 2, fmt$21], fmtty$20]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - default: return type_ignored_param_one(ign, rest, fmtty0); - } - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - } - function type_ignored_format_substituti(sub_fmtty, fmt, fmtty){ - if(typeof sub_fmtty === "number") - return [0, 0, type_format_gen(fmt, fmtty)]; - switch(sub_fmtty[0]){ - case 0: - if(typeof fmtty !== "number" && 0 === fmtty[0]){ - var - fmtty_rest = fmtty[1], - sub_fmtty_rest = sub_fmtty[1], - match = - type_ignored_format_substituti(sub_fmtty_rest, fmt, fmtty_rest), - fmt$0 = match[2], - sub_fmtty_rest$0 = match[1]; - return [0, [0, sub_fmtty_rest$0], fmt$0]; - } - break; - case 1: - if(typeof fmtty !== "number" && 1 === fmtty[0]){ - var - fmtty_rest$0 = fmtty[1], - sub_fmtty_rest$1 = sub_fmtty[1], - match$0 = - type_ignored_format_substituti(sub_fmtty_rest$1, fmt, fmtty_rest$0), - fmt$1 = match$0[2], - sub_fmtty_rest$2 = match$0[1]; - return [0, [1, sub_fmtty_rest$2], fmt$1]; - } - break; - case 2: - if(typeof fmtty !== "number" && 2 === fmtty[0]){ - var - fmtty_rest$1 = fmtty[1], - sub_fmtty_rest$3 = sub_fmtty[1], - match$1 = - type_ignored_format_substituti(sub_fmtty_rest$3, fmt, fmtty_rest$1), - fmt$2 = match$1[2], - sub_fmtty_rest$4 = match$1[1]; - return [0, [2, sub_fmtty_rest$4], fmt$2]; - } - break; - case 3: - if(typeof fmtty !== "number" && 3 === fmtty[0]){ - var - fmtty_rest$2 = fmtty[1], - sub_fmtty_rest$5 = sub_fmtty[1], - match$2 = - type_ignored_format_substituti(sub_fmtty_rest$5, fmt, fmtty_rest$2), - fmt$3 = match$2[2], - sub_fmtty_rest$6 = match$2[1]; - return [0, [3, sub_fmtty_rest$6], fmt$3]; - } - break; - case 4: - if(typeof fmtty !== "number" && 4 === fmtty[0]){ - var - fmtty_rest$3 = fmtty[1], - sub_fmtty_rest$7 = sub_fmtty[1], - match$3 = - type_ignored_format_substituti(sub_fmtty_rest$7, fmt, fmtty_rest$3), - fmt$4 = match$3[2], - sub_fmtty_rest$8 = match$3[1]; - return [0, [4, sub_fmtty_rest$8], fmt$4]; - } - break; - case 5: - if(typeof fmtty !== "number" && 5 === fmtty[0]){ - var - fmtty_rest$4 = fmtty[1], - sub_fmtty_rest$9 = sub_fmtty[1], - match$4 = - type_ignored_format_substituti(sub_fmtty_rest$9, fmt, fmtty_rest$4), - fmt$5 = match$4[2], - sub_fmtty_rest$10 = match$4[1]; - return [0, [5, sub_fmtty_rest$10], fmt$5]; - } - break; - case 6: - if(typeof fmtty !== "number" && 6 === fmtty[0]){ - var - fmtty_rest$5 = fmtty[1], - sub_fmtty_rest$11 = sub_fmtty[1], - match$5 = - type_ignored_format_substituti - (sub_fmtty_rest$11, fmt, fmtty_rest$5), - fmt$6 = match$5[2], - sub_fmtty_rest$12 = match$5[1]; - return [0, [6, sub_fmtty_rest$12], fmt$6]; - } - break; - case 7: - if(typeof fmtty !== "number" && 7 === fmtty[0]){ - var - fmtty_rest$6 = fmtty[1], - sub_fmtty_rest$13 = sub_fmtty[1], - match$6 = - type_ignored_format_substituti - (sub_fmtty_rest$13, fmt, fmtty_rest$6), - fmt$7 = match$6[2], - sub_fmtty_rest$14 = match$6[1]; - return [0, [7, sub_fmtty_rest$14], fmt$7]; - } - break; - case 8: - if(typeof fmtty !== "number" && 8 === fmtty[0]){ - var - fmtty_rest$7 = fmtty[2], - sub2_fmtty = fmtty[1], - sub_fmtty_rest$15 = sub_fmtty[2], - sub2_fmtty$0 = sub_fmtty[1]; - if(caml_notequal([0, sub2_fmtty$0], [0, sub2_fmtty])) - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var - match$7 = - type_ignored_format_substituti - (sub_fmtty_rest$15, fmt, fmtty_rest$7), - fmt$8 = match$7[2], - sub_fmtty_rest$16 = match$7[1]; - return [0, [8, sub2_fmtty, sub_fmtty_rest$16], fmt$8]; - } - break; - case 9: - if(typeof fmtty !== "number" && 9 === fmtty[0]){ - var - fmtty_rest$8 = fmtty[3], - sub2_fmtty$1 = fmtty[2], - sub1_fmtty = fmtty[1], - sub_fmtty_rest$17 = sub_fmtty[3], - sub2_fmtty$2 = sub_fmtty[2], - sub1_fmtty$0 = sub_fmtty[1], - _c8_ = [0, caml_call1(CamlinternalFormatBasics[2], sub1_fmtty)]; - if - (caml_notequal - ([0, caml_call1(CamlinternalFormatBasics[2], sub1_fmtty$0)], _c8_)) - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var _c9_ = [0, caml_call1(CamlinternalFormatBasics[2], sub2_fmtty$1)]; - if - (caml_notequal - ([0, caml_call1(CamlinternalFormatBasics[2], sub2_fmtty$2)], _c9_)) - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var - sub_fmtty$0 = trans(symm(sub1_fmtty), sub2_fmtty$1), - match$8 = fmtty_rel_det(sub_fmtty$0), - f4 = match$8[4], - f2 = match$8[2]; - caml_call1(f2, 0); - caml_call1(f4, 0); - var - match$9 = - type_ignored_format_substituti - (caml_call1(CamlinternalFormatBasics[2], sub_fmtty_rest$17), - fmt, - fmtty_rest$8), - fmt$9 = match$9[2], - sub_fmtty_rest$18 = match$9[1]; - return [0, - [9, sub1_fmtty, sub2_fmtty$1, symm(sub_fmtty_rest$18)], - fmt$9]; - } - break; - case 10: - if(typeof fmtty !== "number" && 10 === fmtty[0]){ - var - fmtty_rest$9 = fmtty[1], - sub_fmtty_rest$19 = sub_fmtty[1], - match$10 = - type_ignored_format_substituti - (sub_fmtty_rest$19, fmt, fmtty_rest$9), - fmt$10 = match$10[2], - sub_fmtty_rest$20 = match$10[1]; - return [0, [10, sub_fmtty_rest$20], fmt$10]; - } - break; - case 11: - if(typeof fmtty !== "number" && 11 === fmtty[0]){ - var - fmtty_rest$10 = fmtty[1], - sub_fmtty_rest$21 = sub_fmtty[1], - match$11 = - type_ignored_format_substituti - (sub_fmtty_rest$21, fmt, fmtty_rest$10), - fmt$11 = match$11[2], - sub_fmtty_rest$22 = match$11[1]; - return [0, [11, sub_fmtty_rest$22], fmt$11]; - } - break; - case 13: - if(typeof fmtty !== "number" && 13 === fmtty[0]){ - var - fmtty_rest$11 = fmtty[1], - sub_fmtty_rest$23 = sub_fmtty[1], - match$12 = - type_ignored_format_substituti - (sub_fmtty_rest$23, fmt, fmtty_rest$11), - fmt$12 = match$12[2], - sub_fmtty_rest$24 = match$12[1]; - return [0, [13, sub_fmtty_rest$24], fmt$12]; - } - break; - case 14: - if(typeof fmtty !== "number" && 14 === fmtty[0]){ - var - fmtty_rest$12 = fmtty[1], - sub_fmtty_rest$25 = sub_fmtty[1], - match$13 = - type_ignored_format_substituti - (sub_fmtty_rest$25, fmt, fmtty_rest$12), - fmt$13 = match$13[2], - sub_fmtty_rest$26 = match$13[1]; - return [0, [14, sub_fmtty_rest$26], fmt$13]; - } - break; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - } - function recast(fmt, fmtty){ - var _c7_ = symm(fmtty); - return type_format(fmt, caml_call1(CamlinternalFormatBasics[2], _c7_)); - } - function fix_padding(padty, width, str){ - var - len = caml_ml_string_length(str), - padty$0 = 0 <= width ? padty : 0, - width$0 = caml_call1(Stdlib[18], width); - if(width$0 <= len) return str; - var - _c6_ = 2 === padty$0 ? 48 : 32, - res = caml_call2(Stdlib_Bytes[1], width$0, _c6_); - switch(padty$0){ - case 0: - caml_call5(Stdlib_String[48], str, 0, res, 0, len); break; - case 1: - caml_call5(Stdlib_String[48], str, 0, res, width$0 - len | 0, len); - break; - default: - var switch$0 = 0; - if(0 < len){ - var switch$1 = 0; - if - (43 !== caml_string_get(str, 0) - && 45 !== caml_string_get(str, 0) && 32 !== caml_string_get(str, 0)){switch$0 = 1; switch$1 = 1;} - if(! switch$1){ - caml_bytes_set(res, 0, caml_string_get(str, 0)); - caml_call5 - (Stdlib_String[48], - str, - 1, - res, - (width$0 - len | 0) + 1 | 0, - len - 1 | 0); - } - } - else - switch$0 = 1; - if(switch$0){ - var switch$2 = 0; - if(1 < len && 48 === caml_string_get(str, 0)){ - var switch$3 = 0; - if(120 === caml_string_get(str, 1) || 88 === caml_string_get(str, 1)) - switch$3 = 1; - if(switch$3){ - caml_bytes_set(res, 1, caml_string_get(str, 1)); - caml_call5 - (Stdlib_String[48], - str, - 2, - res, - (width$0 - len | 0) + 2 | 0, - len - 2 | 0); - switch$2 = 1; - } - } - if(! switch$2) - caml_call5(Stdlib_String[48], str, 0, res, width$0 - len | 0, len); - } - } - return caml_call1(Stdlib_Bytes[48], res); - } - function fix_int_precision(prec, str){ - var - prec$0 = caml_call1(Stdlib[18], prec), - len = caml_ml_string_length(str), - c = caml_string_get(str, 0), - switch$0 = 0; - if(58 <= c){ - if(71 <= c){ - if(5 >= c - 97 >>> 0) switch$0 = 1; - } - else if(65 <= c) switch$0 = 1; - } - else{ - var switch$1 = 0; - if(32 === c) - switch$1 = 1; - else if(43 <= c) - switch(c - 43 | 0){ - case 5: - if(len < (prec$0 + 2 | 0) && 1 < len){ - var switch$2 = 0; - if - (120 !== caml_string_get(str, 1) && 88 !== caml_string_get(str, 1)) - switch$2 = 1; - if(! switch$2){ - var res$1 = caml_call2(Stdlib_Bytes[1], prec$0 + 2 | 0, 48); - caml_bytes_set(res$1, 1, caml_string_get(str, 1)); - caml_call5 - (Stdlib_String[48], - str, - 2, - res$1, - (prec$0 - len | 0) + 4 | 0, - len - 2 | 0); - return caml_call1(Stdlib_Bytes[48], res$1); - } - } - switch$0 = 1; - break; - case 0: - case 2: - switch$1 = 1; break; - case 1: - case 3: - case 4: break; - default: switch$0 = 1; - } - if(switch$1 && len < (prec$0 + 1 | 0)){ - var res$0 = caml_call2(Stdlib_Bytes[1], prec$0 + 1 | 0, 48); - caml_bytes_set(res$0, 0, c); - caml_call5 - (Stdlib_String[48], - str, - 1, - res$0, - (prec$0 - len | 0) + 2 | 0, - len - 1 | 0); - return caml_call1(Stdlib_Bytes[48], res$0); - } - } - if(switch$0 && len < prec$0){ - var res = caml_call2(Stdlib_Bytes[1], prec$0, 48); - caml_call5(Stdlib_String[48], str, 0, res, prec$0 - len | 0, len); - return caml_call1(Stdlib_Bytes[48], res); - } - return str; - } - function string_to_caml_string(str){ - var - str$0 = caml_call1(Stdlib_String[24], str), - l = caml_ml_string_length(str$0), - res = caml_call2(Stdlib_Bytes[1], l + 2 | 0, 34); - caml_blit_string(str$0, 0, res, 1, l); - return caml_call1(Stdlib_Bytes[48], res); - } - function format_of_fconv(fconv, prec){ - var - prec$0 = caml_call1(Stdlib[18], prec), - symb = char_of_fconv(_r_, fconv), - buf = buffer_create(16); - buffer_add_char(buf, 37); - bprint_fconv_flag(buf, fconv); - buffer_add_char(buf, 46); - buffer_add_string(buf, caml_call1(Stdlib_Int[12], prec$0)); - buffer_add_char(buf, symb); - return buffer_contents(buf); - } - function transform_int_alt(iconv, s){ - if(13 > iconv) return s; - var n = [0, 0], _c1_ = caml_ml_string_length(s) - 1 | 0, _c0_ = 0; - if(_c1_ >= 0){ - var i$0 = _c0_; - for(;;){ - if(9 >= caml_string_unsafe_get(s, i$0) - 48 >>> 0) n[1]++; - var _c5_ = i$0 + 1 | 0; - if(_c1_ !== i$0){var i$0 = _c5_; continue;} - break; - } - } - var - digits = n[1], - buf = - caml_create_bytes - (caml_ml_string_length(s) + ((digits - 1 | 0) / 3 | 0) | 0), - pos = [0, 0]; - function put(c){caml_bytes_set(buf, pos[1], c); pos[1]++; return 0;} - var - left = [0, ((digits - 1 | 0) % 3 | 0) + 1 | 0], - _c3_ = caml_ml_string_length(s) - 1 | 0, - _c2_ = 0; - if(_c3_ >= 0){ - var i = _c2_; - for(;;){ - var c = caml_string_unsafe_get(s, i); - if(9 < c - 48 >>> 0) - put(c); - else{if(0 === left[1]){put(95); left[1] = 3;} left[1] += -1; put(c);} - var _c4_ = i + 1 | 0; - if(_c3_ !== i){var i = _c4_; continue;} - break; - } - } - return caml_call1(Stdlib_Bytes[48], buf); - } - function convert_int(iconv, n){ - switch(iconv){ - case 1: - var _cZ_ = cst_d$0; break; - case 2: - var _cZ_ = cst_d$1; break; - case 4: - var _cZ_ = cst_i$1; break; - case 5: - var _cZ_ = cst_i$2; break; - case 6: - var _cZ_ = cst_x; break; - case 7: - var _cZ_ = cst_x$0; break; - case 8: - var _cZ_ = cst_X; break; - case 9: - var _cZ_ = cst_X$0; break; - case 10: - var _cZ_ = cst_o; break; - case 11: - var _cZ_ = cst_o$0; break; - case 0: - case 13: - var _cZ_ = cst_d; break; - case 3: - case 14: - var _cZ_ = cst_i$0; break; - default: var _cZ_ = cst_u; - } - return transform_int_alt(iconv, caml_format_int(_cZ_, n)); - } - function convert_int32(iconv, n){ - switch(iconv){ - case 1: - var _cY_ = cst_ld$0; break; - case 2: - var _cY_ = cst_ld$1; break; - case 4: - var _cY_ = cst_li$1; break; - case 5: - var _cY_ = cst_li$2; break; - case 6: - var _cY_ = cst_lx; break; - case 7: - var _cY_ = cst_lx$0; break; - case 8: - var _cY_ = cst_lX; break; - case 9: - var _cY_ = cst_lX$0; break; - case 10: - var _cY_ = cst_lo; break; - case 11: - var _cY_ = cst_lo$0; break; - case 0: - case 13: - var _cY_ = cst_ld; break; - case 3: - case 14: - var _cY_ = cst_li$0; break; - default: var _cY_ = cst_lu; - } - return transform_int_alt(iconv, caml_format_int(_cY_, n)); - } - function convert_nativeint(iconv, n){ - switch(iconv){ - case 1: - var _cX_ = cst_nd$0; break; - case 2: - var _cX_ = cst_nd$1; break; - case 4: - var _cX_ = cst_ni$1; break; - case 5: - var _cX_ = cst_ni$2; break; - case 6: - var _cX_ = cst_nx; break; - case 7: - var _cX_ = cst_nx$0; break; - case 8: - var _cX_ = cst_nX; break; - case 9: - var _cX_ = cst_nX$0; break; - case 10: - var _cX_ = cst_no; break; - case 11: - var _cX_ = cst_no$0; break; - case 0: - case 13: - var _cX_ = cst_nd; break; - case 3: - case 14: - var _cX_ = cst_ni$0; break; - default: var _cX_ = cst_nu; - } - return transform_int_alt(iconv, caml_format_int(_cX_, n)); - } - function convert_int64(iconv, n){ - switch(iconv){ - case 1: - var _cW_ = cst_Ld$0; break; - case 2: - var _cW_ = cst_Ld$1; break; - case 4: - var _cW_ = cst_Li$1; break; - case 5: - var _cW_ = cst_Li$2; break; - case 6: - var _cW_ = cst_Lx; break; - case 7: - var _cW_ = cst_Lx$0; break; - case 8: - var _cW_ = cst_LX; break; - case 9: - var _cW_ = cst_LX$0; break; - case 10: - var _cW_ = cst_Lo; break; - case 11: - var _cW_ = cst_Lo$0; break; - case 0: - case 13: - var _cW_ = cst_Ld; break; - case 3: - case 14: - var _cW_ = cst_Li$0; break; - default: var _cW_ = cst_Lu; - } - return transform_int_alt(iconv, runtime.caml_int64_format(_cW_, n)); - } - function convert_float(fconv, prec, x){ - function hex(param){ - switch(fconv[1]){ - case 0: - var sign = 45; break; - case 1: - var sign = 43; break; - default: var sign = 32; - } - return runtime.caml_hexstring_of_float(x, prec, sign); - } - function caml_special_val(str){ - var match = runtime.caml_classify_float(x); - return 3 === match - ? x < 0. ? cst_neg_infinity : cst_infinity - : 4 <= match ? cst_nan : str; - } - switch(fconv[2]){ - case 5: - var - str = caml_format_float(format_of_fconv(fconv, prec), x), - len = caml_ml_string_length(str), - i = 0; - for(;;){ - if(i === len) - var _cT_ = 0; - else{ - var _cS_ = caml_string_get(str, i) - 46 | 0, switch$0 = 0; - if(23 < _cS_ >>> 0){ - if(55 === _cS_) switch$0 = 1; - } - else if(21 < _cS_ - 1 >>> 0) switch$0 = 1; - if(! switch$0){var i$0 = i + 1 | 0, i = i$0; continue;} - var _cT_ = 1; - } - var _cU_ = _cT_ ? str : caml_call2(Stdlib[28], str, cst$17); - return caml_special_val(_cU_); - } - case 6: - return hex(0); - case 7: - var _cV_ = hex(0); return caml_call1(Stdlib_String[25], _cV_); - case 8: - return caml_special_val(hex(0)); - default: return caml_format_float(format_of_fconv(fconv, prec), x); - } - } - function string_of_fmtty(fmtty){ - var buf = buffer_create(16); - bprint_fmtty(buf, fmtty); - return buffer_contents(buf); - } - function make_int_padding_precision(k, acc, fmt, pad, prec, trans, iconv){ - if(typeof pad === "number"){ - if(typeof prec === "number") - return prec - ? function - (p, x){ - var str = fix_int_precision(p, caml_call2(trans, iconv, x)); - return make_printf(k, [4, acc, str], fmt); - } - : function - (x){ - var str = caml_call2(trans, iconv, x); - return make_printf(k, [4, acc, str], fmt); - }; - var p = prec[1]; - return function(x){ - var str = fix_int_precision(p, caml_call2(trans, iconv, x)); - return make_printf(k, [4, acc, str], fmt);}; - } - if(0 === pad[0]){ - var w = pad[2], padty = pad[1]; - if(typeof prec === "number") - return prec - ? function - (p, x){ - var - str = - fix_padding - (padty, - w, - fix_int_precision(p, caml_call2(trans, iconv, x))); - return make_printf(k, [4, acc, str], fmt); - } - : function - (x){ - var str = fix_padding(padty, w, caml_call2(trans, iconv, x)); - return make_printf(k, [4, acc, str], fmt); - }; - var p$0 = prec[1]; - return function(x){ - var - str = - fix_padding - (padty, w, fix_int_precision(p$0, caml_call2(trans, iconv, x))); - return make_printf(k, [4, acc, str], fmt);}; - } - var padty$0 = pad[1]; - if(typeof prec === "number") - return prec - ? function - (w, p, x){ - var - str = - fix_padding - (padty$0, - w, - fix_int_precision(p, caml_call2(trans, iconv, x))); - return make_printf(k, [4, acc, str], fmt); - } - : function - (w, x){ - var str = fix_padding(padty$0, w, caml_call2(trans, iconv, x)); - return make_printf(k, [4, acc, str], fmt); - }; - var p$1 = prec[1]; - return function(w, x){ - var - str = - fix_padding - (padty$0, w, fix_int_precision(p$1, caml_call2(trans, iconv, x))); - return make_printf(k, [4, acc, str], fmt);}; - } - function make_padding(k, acc, fmt, pad, trans){ - if(typeof pad === "number") - return function(x){ - var new_acc = [4, acc, caml_call1(trans, x)]; - return make_printf(k, new_acc, fmt);}; - if(0 === pad[0]){ - var width = pad[2], padty = pad[1]; - return function(x){ - var new_acc = [4, acc, fix_padding(padty, width, caml_call1(trans, x))]; - return make_printf(k, new_acc, fmt);}; - } - var padty$0 = pad[1]; - return function(w, x){ - var new_acc = [4, acc, fix_padding(padty$0, w, caml_call1(trans, x))]; - return make_printf(k, new_acc, fmt);}; - } - function make_printf$0(counter, k, acc, fmt){ - var k$0 = k, acc$0 = acc, fmt$0 = fmt; - for(;;){ - if(typeof fmt$0 === "number") return caml_call1(k$0, acc$0); - switch(fmt$0[0]){ - case 0: - var rest = fmt$0[1]; - return function(c){ - var new_acc = [5, acc$0, c]; - return make_printf(k$0, new_acc, rest);}; - case 1: - var rest$0 = fmt$0[1]; - return function(c){ - var - str = caml_call1(Stdlib_Char[2], c), - l = caml_ml_string_length(str), - res = caml_call2(Stdlib_Bytes[1], l + 2 | 0, 39); - caml_blit_string(str, 0, res, 1, l); - var new_acc = [4, acc$0, caml_call1(Stdlib_Bytes[48], res)]; - return make_printf(k$0, new_acc, rest$0);}; - case 2: - var rest$1 = fmt$0[2], pad = fmt$0[1]; - return make_padding - (k$0, acc$0, rest$1, pad, function(str){return str;}); - case 3: - var rest$2 = fmt$0[2], pad$0 = fmt$0[1]; - return make_padding(k$0, acc$0, rest$2, pad$0, string_to_caml_string); - case 4: - var - rest$3 = fmt$0[4], - prec = fmt$0[3], - pad$1 = fmt$0[2], - iconv = fmt$0[1]; - return make_int_padding_precision - (k$0, acc$0, rest$3, pad$1, prec, convert_int, iconv); - case 5: - var - rest$4 = fmt$0[4], - prec$0 = fmt$0[3], - pad$2 = fmt$0[2], - iconv$0 = fmt$0[1]; - return make_int_padding_precision - (k$0, acc$0, rest$4, pad$2, prec$0, convert_int32, iconv$0); - case 6: - var - rest$5 = fmt$0[4], - prec$1 = fmt$0[3], - pad$3 = fmt$0[2], - iconv$1 = fmt$0[1]; - return make_int_padding_precision - (k$0, - acc$0, - rest$5, - pad$3, - prec$1, - convert_nativeint, - iconv$1); - case 7: - var - rest$6 = fmt$0[4], - prec$2 = fmt$0[3], - pad$4 = fmt$0[2], - iconv$2 = fmt$0[1]; - return make_int_padding_precision - (k$0, acc$0, rest$6, pad$4, prec$2, convert_int64, iconv$2); - case 8: - var - rest$7 = fmt$0[4], - prec$3 = fmt$0[3], - pad$5 = fmt$0[2], - fconv = fmt$0[1]; - if(typeof pad$5 === "number"){ - if(typeof prec$3 === "number") - return prec$3 - ? function - (p, x){ - var str = convert_float(fconv, p, x); - return make_printf(k$0, [4, acc$0, str], rest$7); - } - : function - (x){ - var - str = - convert_float(fconv, default_float_precision(fconv), x); - return make_printf(k$0, [4, acc$0, str], rest$7); - }; - var p = prec$3[1]; - return function(x){ - var str = convert_float(fconv, p, x); - return make_printf(k$0, [4, acc$0, str], rest$7);}; - } - if(0 === pad$5[0]){ - var w = pad$5[2], padty = pad$5[1]; - if(typeof prec$3 === "number") - return prec$3 - ? function - (p, x){ - var str = fix_padding(padty, w, convert_float(fconv, p, x)); - return make_printf(k$0, [4, acc$0, str], rest$7); - } - : function - (x){ - var - str = - convert_float(fconv, default_float_precision(fconv), x), - str$0 = fix_padding(padty, w, str); - return make_printf(k$0, [4, acc$0, str$0], rest$7); - }; - var p$0 = prec$3[1]; - return function(x){ - var str = fix_padding(padty, w, convert_float(fconv, p$0, x)); - return make_printf(k$0, [4, acc$0, str], rest$7);}; - } - var padty$0 = pad$5[1]; - if(typeof prec$3 === "number") - return prec$3 - ? function - (w, p, x){ - var - str = fix_padding(padty$0, w, convert_float(fconv, p, x)); - return make_printf(k$0, [4, acc$0, str], rest$7); - } - : function - (w, x){ - var - str = - convert_float(fconv, default_float_precision(fconv), x), - str$0 = fix_padding(padty$0, w, str); - return make_printf(k$0, [4, acc$0, str$0], rest$7); - }; - var p$1 = prec$3[1]; - return function(w, x){ - var str = fix_padding(padty$0, w, convert_float(fconv, p$1, x)); - return make_printf(k$0, [4, acc$0, str], rest$7);}; - case 9: - var rest$8 = fmt$0[2], pad$6 = fmt$0[1]; - return make_padding(k$0, acc$0, rest$8, pad$6, Stdlib[30]); - case 10: - var - rest$9 = fmt$0[1], - acc$1 = [7, acc$0], - acc$0 = acc$1, - fmt$0 = rest$9; - continue; - case 11: - var - rest$10 = fmt$0[2], - str = fmt$0[1], - acc$2 = [2, acc$0, str], - acc$0 = acc$2, - fmt$0 = rest$10; - continue; - case 12: - var - rest$11 = fmt$0[2], - chr = fmt$0[1], - acc$3 = [3, acc$0, chr], - acc$0 = acc$3, - fmt$0 = rest$11; - continue; - case 13: - var - rest$12 = fmt$0[3], - sub_fmtty = fmt$0[2], - ty = string_of_fmtty(sub_fmtty); - return function(str){ - return make_printf(k$0, [4, acc$0, ty], rest$12);}; - case 14: - var rest$13 = fmt$0[3], fmtty = fmt$0[2]; - return function(param){ - var fmt = param[1], _cR_ = recast(fmt, fmtty); - return make_printf - (k$0, - acc$0, - caml_call2(CamlinternalFormatBasics[3], _cR_, rest$13));}; - case 15: - var rest$14 = fmt$0[1]; - return function(f, x){ - return make_printf - (k$0, - [6, acc$0, function(o){return caml_call2(f, o, x);}], - rest$14);}; - case 16: - var rest$15 = fmt$0[1]; - return function(f){return make_printf(k$0, [6, acc$0, f], rest$15);}; - case 17: - var - rest$16 = fmt$0[2], - fmting_lit = fmt$0[1], - acc$4 = [0, acc$0, fmting_lit], - acc$0 = acc$4, - fmt$0 = rest$16; - continue; - case 18: - var _cP_ = fmt$0[1]; - if(0 === _cP_[0]){ - var - rest$17 = fmt$0[2], - fmt$1 = _cP_[1][1], - k$3 = - function(acc, k, rest){ - function k$0(kacc){ - return make_printf(k, [1, acc, [0, kacc]], rest); - } - return k$0; - }, - k$1 = k$3(acc$0, k$0, rest$17), - k$0 = k$1, - acc$0 = 0, - fmt$0 = fmt$1; - continue; - } - var - rest$18 = fmt$0[2], - fmt$2 = _cP_[1][1], - k$4 = - function(acc, k, rest){ - function k$0(kacc){ - return make_printf(k, [1, acc, [1, kacc]], rest); - } - return k$0; - }, - k$2 = k$4(acc$0, k$0, rest$18), - k$0 = k$2, - acc$0 = 0, - fmt$0 = fmt$2; - continue; - case 19: - throw caml_maybe_attach_backtrace([0, Assert_failure, _s_], 1); - case 20: - var - rest$19 = fmt$0[3], - new_acc = [8, acc$0, cst_Printf_bad_conversion]; - return function(param){return make_printf(k$0, new_acc, rest$19);}; - case 21: - var rest$20 = fmt$0[2]; - return function(n){ - var new_acc = [4, acc$0, caml_format_int(cst_u$0, n)]; - return make_printf(k$0, new_acc, rest$20);}; - case 22: - var rest$21 = fmt$0[1]; - return function(c){ - var new_acc = [5, acc$0, c]; - return make_printf(k$0, new_acc, rest$21);}; - case 23: - var rest$22 = fmt$0[2], ign = fmt$0[1]; - if(counter >= 50) - return caml_trampoline_return - (make_ignored_param$0, [0, k$0, acc$0, ign, rest$22]); - var counter$1 = counter + 1 | 0; - return make_ignored_param$0(counter$1, k$0, acc$0, ign, rest$22); - default: - var - rest$23 = fmt$0[3], - f = fmt$0[2], - arity = fmt$0[1], - _cQ_ = caml_call1(f, 0); - if(counter >= 50) - return caml_trampoline_return - (make_custom$0, [0, k$0, acc$0, rest$23, arity, _cQ_]); - var counter$0 = counter + 1 | 0; - return make_custom$0(counter$0, k$0, acc$0, rest$23, arity, _cQ_); - } - } - } - function make_ignored_param$0(counter, k, acc, ign, fmt){ - if(typeof ign === "number") - switch(ign){ - case 0: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$0 = counter + 1 | 0; - return make_invalid_arg(counter$0, k, acc, fmt); - case 1: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$1 = counter + 1 | 0; - return make_invalid_arg(counter$1, k, acc, fmt); - case 2: - throw caml_maybe_attach_backtrace([0, Assert_failure, _t_], 1); - default: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$2 = counter + 1 | 0; - return make_invalid_arg(counter$2, k, acc, fmt); - } - switch(ign[0]){ - case 0: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$3 = counter + 1 | 0; - return make_invalid_arg(counter$3, k, acc, fmt); - case 1: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$4 = counter + 1 | 0; - return make_invalid_arg(counter$4, k, acc, fmt); - case 2: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$5 = counter + 1 | 0; - return make_invalid_arg(counter$5, k, acc, fmt); - case 3: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$6 = counter + 1 | 0; - return make_invalid_arg(counter$6, k, acc, fmt); - case 4: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$7 = counter + 1 | 0; - return make_invalid_arg(counter$7, k, acc, fmt); - case 5: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$8 = counter + 1 | 0; - return make_invalid_arg(counter$8, k, acc, fmt); - case 6: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$9 = counter + 1 | 0; - return make_invalid_arg(counter$9, k, acc, fmt); - case 7: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$10 = counter + 1 | 0; - return make_invalid_arg(counter$10, k, acc, fmt); - case 8: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$11 = counter + 1 | 0; - return make_invalid_arg(counter$11, k, acc, fmt); - case 9: - var fmtty = ign[2]; - if(counter >= 50) - return caml_trampoline_return - (make_from_fmtty$0, [0, k, acc, fmtty, fmt]); - var counter$14 = counter + 1 | 0; - return make_from_fmtty$0(counter$14, k, acc, fmtty, fmt); - case 10: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$12 = counter + 1 | 0; - return make_invalid_arg(counter$12, k, acc, fmt); - default: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$13 = counter + 1 | 0; - return make_invalid_arg(counter$13, k, acc, fmt); - } - } - function make_from_fmtty$0(counter, k, acc, fmtty, fmt){ - if(typeof fmtty !== "number") - switch(fmtty[0]){ - case 0: - var rest = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest, fmt);}; - case 1: - var rest$0 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$0, fmt);}; - case 2: - var rest$1 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$1, fmt);}; - case 3: - var rest$2 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$2, fmt);}; - case 4: - var rest$3 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$3, fmt);}; - case 5: - var rest$4 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$4, fmt);}; - case 6: - var rest$5 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$5, fmt);}; - case 7: - var rest$6 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$6, fmt);}; - case 8: - var rest$7 = fmtty[2]; - return function(param){return make_from_fmtty(k, acc, rest$7, fmt);}; - case 9: - var - rest$8 = fmtty[3], - ty2 = fmtty[2], - ty1 = fmtty[1], - ty = trans(symm(ty1), ty2); - return function(param){ - return make_from_fmtty - (k, - acc, - caml_call2(CamlinternalFormatBasics[1], ty, rest$8), - fmt);}; - case 10: - var rest$9 = fmtty[1]; - return function(param, _cO_){ - return make_from_fmtty(k, acc, rest$9, fmt);}; - case 11: - var rest$10 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$10, fmt);}; - case 12: - var rest$11 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$11, fmt);}; - case 13: - throw caml_maybe_attach_backtrace([0, Assert_failure, _u_], 1); - default: - throw caml_maybe_attach_backtrace([0, Assert_failure, _v_], 1); - } - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$0 = counter + 1 | 0; - return make_invalid_arg(counter$0, k, acc, fmt); - } - function make_invalid_arg(counter, k, acc, fmt){ - var _cN_ = [8, acc, cst_Printf_bad_conversion$0]; - if(counter >= 50) - return caml_trampoline_return(make_printf$0, [0, k, _cN_, fmt]); - var counter$0 = counter + 1 | 0; - return make_printf$0(counter$0, k, _cN_, fmt); - } - function make_custom$0(counter, k, acc, rest, arity, f){ - if(arity){ - var arity$0 = arity[1]; - return function(x){ - return make_custom(k, acc, rest, arity$0, caml_call1(f, x));}; - } - var _cM_ = [4, acc, f]; - if(counter >= 50) - return caml_trampoline_return(make_printf$0, [0, k, _cM_, rest]); - var counter$0 = counter + 1 | 0; - return make_printf$0(counter$0, k, _cM_, rest); - } - function make_printf(k, acc, fmt){ - return caml_trampoline(make_printf$0(0, k, acc, fmt)); - } - function make_ignored_param(k, acc, ign, fmt){ - return caml_trampoline(make_ignored_param$0(0, k, acc, ign, fmt)); - } - function make_from_fmtty(k, acc, fmtty, fmt){ - return caml_trampoline(make_from_fmtty$0(0, k, acc, fmtty, fmt)); - } - function make_custom(k, acc, rest, arity, f){ - return caml_trampoline(make_custom$0(0, k, acc, rest, arity, f)); - } - function fn_of_padding_precision(k, o, fmt, pad, prec){ - if(typeof pad === "number"){ - if(typeof prec !== "number"){ - var _cl_ = make_iprintf(k, o, fmt); - return function(_cL_){return _cl_;}; - } - if(prec){ - var _ci_ = make_iprintf(k, o, fmt), _cj_ = function(_cK_){return _ci_;}; - return function(_cJ_){return _cj_;}; - } - var _ck_ = make_iprintf(k, o, fmt); - return function(_cI_){return _ck_;}; - } - if(0 === pad[0]){ - if(typeof prec !== "number"){ - var _cp_ = make_iprintf(k, o, fmt); - return function(_cH_){return _cp_;}; - } - if(prec){ - var _cm_ = make_iprintf(k, o, fmt), _cn_ = function(_cG_){return _cm_;}; - return function(_cF_){return _cn_;}; - } - var _co_ = make_iprintf(k, o, fmt); - return function(_cE_){return _co_;}; - } - if(typeof prec !== "number"){ - var _cv_ = make_iprintf(k, o, fmt), _cw_ = function(_cD_){return _cv_;}; - return function(_cC_){return _cw_;}; - } - if(prec){ - var - _cq_ = make_iprintf(k, o, fmt), - _cr_ = function(_cB_){return _cq_;}, - _cs_ = function(_cA_){return _cr_;}; - return function(_cz_){return _cs_;}; - } - var _ct_ = make_iprintf(k, o, fmt); - function _cu_(_cy_){return _ct_;} - return function(_cx_){return _cu_;}; - } - function make_iprintf$0(counter, k, o, fmt){ - var k$0 = k, fmt$0 = fmt; - for(;;){ - if(typeof fmt$0 === "number") return caml_call1(k$0, o); - switch(fmt$0[0]){ - case 0: - var rest = fmt$0[1], _by_ = make_iprintf(k$0, o, rest); - return function(_ch_){return _by_;}; - case 1: - var rest$0 = fmt$0[1], _bz_ = make_iprintf(k$0, o, rest$0); - return function(_cg_){return _bz_;}; - case 2: - var _bA_ = fmt$0[1]; - if(typeof _bA_ === "number"){ - var rest$1 = fmt$0[2], _bB_ = make_iprintf(k$0, o, rest$1); - return function(_cf_){return _bB_;}; - } - if(0 === _bA_[0]){ - var rest$2 = fmt$0[2], _bC_ = make_iprintf(k$0, o, rest$2); - return function(_ce_){return _bC_;}; - } - var - rest$3 = fmt$0[2], - _bD_ = make_iprintf(k$0, o, rest$3), - _bE_ = function(_cd_){return _bD_;}; - return function(_cc_){return _bE_;}; - case 3: - var _bF_ = fmt$0[1]; - if(typeof _bF_ === "number"){ - var rest$4 = fmt$0[2], _bG_ = make_iprintf(k$0, o, rest$4); - return function(_cb_){return _bG_;}; - } - if(0 === _bF_[0]){ - var rest$5 = fmt$0[2], _bH_ = make_iprintf(k$0, o, rest$5); - return function(_ca_){return _bH_;}; - } - var - rest$6 = fmt$0[2], - _bI_ = make_iprintf(k$0, o, rest$6), - _bJ_ = function(_b$_){return _bI_;}; - return function(_b__){return _bJ_;}; - case 4: - var rest$7 = fmt$0[4], prec = fmt$0[3], pad = fmt$0[2]; - return fn_of_padding_precision(k$0, o, rest$7, pad, prec); - case 5: - var rest$8 = fmt$0[4], prec$0 = fmt$0[3], pad$0 = fmt$0[2]; - return fn_of_padding_precision(k$0, o, rest$8, pad$0, prec$0); - case 6: - var rest$9 = fmt$0[4], prec$1 = fmt$0[3], pad$1 = fmt$0[2]; - return fn_of_padding_precision(k$0, o, rest$9, pad$1, prec$1); - case 7: - var rest$10 = fmt$0[4], prec$2 = fmt$0[3], pad$2 = fmt$0[2]; - return fn_of_padding_precision(k$0, o, rest$10, pad$2, prec$2); - case 8: - var rest$11 = fmt$0[4], prec$3 = fmt$0[3], pad$3 = fmt$0[2]; - return fn_of_padding_precision(k$0, o, rest$11, pad$3, prec$3); - case 9: - var _bK_ = fmt$0[1]; - if(typeof _bK_ === "number"){ - var rest$12 = fmt$0[2], _bL_ = make_iprintf(k$0, o, rest$12); - return function(_b9_){return _bL_;}; - } - if(0 === _bK_[0]){ - var rest$13 = fmt$0[2], _bM_ = make_iprintf(k$0, o, rest$13); - return function(_b8_){return _bM_;}; - } - var - rest$14 = fmt$0[2], - _bN_ = make_iprintf(k$0, o, rest$14), - _bO_ = function(_b7_){return _bN_;}; - return function(_b6_){return _bO_;}; - case 10: - var rest$15 = fmt$0[1], fmt$0 = rest$15; continue; - case 11: - var rest$16 = fmt$0[2], fmt$0 = rest$16; continue; - case 12: - var rest$17 = fmt$0[2], fmt$0 = rest$17; continue; - case 13: - var rest$18 = fmt$0[3], _bP_ = make_iprintf(k$0, o, rest$18); - return function(_b5_){return _bP_;}; - case 14: - var rest$19 = fmt$0[3], fmtty = fmt$0[2]; - return function(param){ - var fmt = param[1], _b4_ = recast(fmt, fmtty); - return make_iprintf - (k$0, - o, - caml_call2(CamlinternalFormatBasics[3], _b4_, rest$19));}; - case 15: - var - rest$20 = fmt$0[1], - _bQ_ = make_iprintf(k$0, o, rest$20), - _bR_ = function(_b3_){return _bQ_;}; - return function(_b2_){return _bR_;}; - case 16: - var rest$21 = fmt$0[1], _bS_ = make_iprintf(k$0, o, rest$21); - return function(_b1_){return _bS_;}; - case 17: - var rest$22 = fmt$0[2], fmt$0 = rest$22; continue; - case 18: - var _bT_ = fmt$0[1]; - if(0 === _bT_[0]){ - var - rest$23 = fmt$0[2], - fmt$1 = _bT_[1][1], - k$3 = - function(k, rest){ - function k$0(koc){return make_iprintf(k, koc, rest);} - return k$0; - }, - k$1 = k$3(k$0, rest$23), - k$0 = k$1, - fmt$0 = fmt$1; - continue; - } - var - rest$24 = fmt$0[2], - fmt$2 = _bT_[1][1], - k$4 = - function(k, rest){ - function k$0(koc){return make_iprintf(k, koc, rest);} - return k$0; - }, - k$2 = k$4(k$0, rest$24), - k$0 = k$2, - fmt$0 = fmt$2; - continue; - case 19: - throw caml_maybe_attach_backtrace([0, Assert_failure, _w_], 1); - case 20: - var rest$25 = fmt$0[3], _bU_ = make_iprintf(k$0, o, rest$25); - return function(_b0_){return _bU_;}; - case 21: - var rest$26 = fmt$0[2], _bV_ = make_iprintf(k$0, o, rest$26); - return function(_bZ_){return _bV_;}; - case 22: - var rest$27 = fmt$0[1], _bW_ = make_iprintf(k$0, o, rest$27); - return function(_bY_){return _bW_;}; - case 23: - var rest$28 = fmt$0[2], ign = fmt$0[1], _bX_ = 0; - return make_ignored_param - (function(param){return caml_call1(k$0, o);}, - _bX_, - ign, - rest$28); - default: - var rest$29 = fmt$0[3], arity = fmt$0[1]; - if(counter >= 50) - return caml_trampoline_return - (fn_of_custom_arity$0, [0, k$0, o, rest$29, arity]); - var counter$0 = counter + 1 | 0; - return fn_of_custom_arity$0(counter$0, k$0, o, rest$29, arity); - } - } - } - function fn_of_custom_arity$0(counter, k, o, fmt, param){ - if(param){ - var arity = param[1], _bw_ = fn_of_custom_arity(k, o, fmt, arity); - return function(_bx_){return _bw_;}; - } - if(counter >= 50) - return caml_trampoline_return(make_iprintf$0, [0, k, o, fmt]); - var counter$0 = counter + 1 | 0; - return make_iprintf$0(counter$0, k, o, fmt); - } - function make_iprintf(k, o, fmt){ - return caml_trampoline(make_iprintf$0(0, k, o, fmt)); - } - function fn_of_custom_arity(k, o, fmt, param){ - return caml_trampoline(fn_of_custom_arity$0(0, k, o, fmt, param)); - } - function output_acc(o, acc){ - var acc$0 = acc; - for(;;){ - if(typeof acc$0 === "number") return 0; - switch(acc$0[0]){ - case 0: - var - fmting_lit = acc$0[2], - p = acc$0[1], - s = string_of_formatting_lit(fmting_lit); - output_acc(o, p); - return caml_call2(Stdlib[66], o, s); - case 1: - var match = acc$0[2], p$0 = acc$0[1]; - if(0 === match[0]){ - var acc$1 = match[1]; - output_acc(o, p$0); - caml_call2(Stdlib[66], o, cst$18); - var acc$0 = acc$1; - continue; - } - var acc$2 = match[1]; - output_acc(o, p$0); - caml_call2(Stdlib[66], o, cst$19); - var acc$0 = acc$2; - continue; - case 6: - var f = acc$0[2], p$3 = acc$0[1]; - output_acc(o, p$3); - return caml_call1(f, o); - case 7: - var p$4 = acc$0[1]; - output_acc(o, p$4); - return caml_call1(Stdlib[63], o); - case 8: - var msg = acc$0[2], p$5 = acc$0[1]; - output_acc(o, p$5); - return caml_call1(Stdlib[1], msg); - case 2: - case 4: - var s$0 = acc$0[2], p$1 = acc$0[1]; - output_acc(o, p$1); - return caml_call2(Stdlib[66], o, s$0); - default: - var c = acc$0[2], p$2 = acc$0[1]; - output_acc(o, p$2); - return caml_call2(Stdlib[65], o, c); - } - } - } - function bufput_acc(b, acc){ - var acc$0 = acc; - for(;;){ - if(typeof acc$0 === "number") return 0; - switch(acc$0[0]){ - case 0: - var - fmting_lit = acc$0[2], - p = acc$0[1], - s = string_of_formatting_lit(fmting_lit); - bufput_acc(b, p); - return caml_call2(Stdlib_Buffer[16], b, s); - case 1: - var match = acc$0[2], p$0 = acc$0[1]; - if(0 === match[0]){ - var acc$1 = match[1]; - bufput_acc(b, p$0); - caml_call2(Stdlib_Buffer[16], b, cst$20); - var acc$0 = acc$1; - continue; - } - var acc$2 = match[1]; - bufput_acc(b, p$0); - caml_call2(Stdlib_Buffer[16], b, cst$21); - var acc$0 = acc$2; - continue; - case 6: - var f = acc$0[2], p$3 = acc$0[1]; - bufput_acc(b, p$3); - return caml_call1(f, b); - case 7: - var acc$3 = acc$0[1], acc$0 = acc$3; continue; - case 8: - var msg = acc$0[2], p$4 = acc$0[1]; - bufput_acc(b, p$4); - return caml_call1(Stdlib[1], msg); - case 2: - case 4: - var s$0 = acc$0[2], p$1 = acc$0[1]; - bufput_acc(b, p$1); - return caml_call2(Stdlib_Buffer[16], b, s$0); - default: - var c = acc$0[2], p$2 = acc$0[1]; - bufput_acc(b, p$2); - return caml_call2(Stdlib_Buffer[12], b, c); - } - } - } - function strput_acc(b, acc){ - var acc$0 = acc; - for(;;){ - if(typeof acc$0 === "number") return 0; - switch(acc$0[0]){ - case 0: - var - fmting_lit = acc$0[2], - p = acc$0[1], - s = string_of_formatting_lit(fmting_lit); - strput_acc(b, p); - return caml_call2(Stdlib_Buffer[16], b, s); - case 1: - var match = acc$0[2], p$0 = acc$0[1]; - if(0 === match[0]){ - var acc$1 = match[1]; - strput_acc(b, p$0); - caml_call2(Stdlib_Buffer[16], b, cst$22); - var acc$0 = acc$1; - continue; - } - var acc$2 = match[1]; - strput_acc(b, p$0); - caml_call2(Stdlib_Buffer[16], b, cst$23); - var acc$0 = acc$2; - continue; - case 6: - var f = acc$0[2], p$3 = acc$0[1]; - strput_acc(b, p$3); - var _bv_ = caml_call1(f, 0); - return caml_call2(Stdlib_Buffer[16], b, _bv_); - case 7: - var acc$3 = acc$0[1], acc$0 = acc$3; continue; - case 8: - var msg = acc$0[2], p$4 = acc$0[1]; - strput_acc(b, p$4); - return caml_call1(Stdlib[1], msg); - case 2: - case 4: - var s$0 = acc$0[2], p$1 = acc$0[1]; - strput_acc(b, p$1); - return caml_call2(Stdlib_Buffer[16], b, s$0); - default: - var c = acc$0[2], p$2 = acc$0[1]; - strput_acc(b, p$2); - return caml_call2(Stdlib_Buffer[12], b, c); - } - } - } - function failwith_message(param){ - var fmt = param[1], buf = caml_call1(Stdlib_Buffer[1], 256); - function k(acc){ - strput_acc(buf, acc); - var _bu_ = caml_call1(Stdlib_Buffer[2], buf); - return caml_call1(Stdlib[2], _bu_); - } - return make_printf(k, 0, fmt); - } - function open_box_of_string(str){ - if(runtime.caml_string_equal(str, cst$43)) return _x_; - var len = caml_ml_string_length(str); - function invalid_box(param){ - return caml_call1(failwith_message(_y_), str); - } - function parse_spaces(i){ - var i$0 = i; - for(;;){ - if(i$0 === len) return i$0; - var match = caml_string_get(str, i$0); - if(9 !== match && 32 !== match) return i$0; - var i$1 = i$0 + 1 | 0, i$0 = i$1; - } - } - var wstart = parse_spaces(0), wend = wstart; - for(;;){ - if(wend !== len && 25 >= caml_string_get(str, wend) - 97 >>> 0){var j = wend + 1 | 0, wend = j; continue;} - var - box_name = caml_call3(Stdlib_String[15], str, wstart, wend - wstart | 0), - nstart = parse_spaces(wend), - nend = nstart; - for(;;){ - if(nend !== len){ - var match = caml_string_get(str, nend), switch$0 = 0; - if(48 <= match){ - if(58 > match) switch$0 = 1; - } - else if(45 === match) switch$0 = 1; - if(switch$0){var j$0 = nend + 1 | 0, nend = j$0; continue;} - } - if(nstart === nend) - var indent = 0; - else - try{ - var - _bs_ = - runtime.caml_int_of_string - (caml_call3(Stdlib_String[15], str, nstart, nend - nstart | 0)), - indent = _bs_; - } - catch(_bt_){ - var _br_ = caml_wrap_exception(_bt_); - if(_br_[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(_br_, 0); - var indent = invalid_box(0); - } - var exp_end = parse_spaces(nend); - if(exp_end !== len) invalid_box(0); - var switch$1 = 0; - if - (caml_string_notequal(box_name, cst$43) - && caml_string_notequal(box_name, "b")) - var - box_type = - caml_string_notequal(box_name, "h") - ? caml_string_notequal - (box_name, "hov") - ? caml_string_notequal - (box_name, "hv") - ? caml_string_notequal(box_name, "v") ? invalid_box(0) : 1 - : 2 - : 3 - : 0; - else - switch$1 = 1; - if(switch$1) var box_type = 4; - return [0, indent, box_type]; - } - } - } - function make_padding_fmt_ebb(pad, fmt){ - if(typeof pad === "number") return [0, 0, fmt]; - if(0 === pad[0]){var w = pad[2], s = pad[1]; return [0, [0, s, w], fmt];} - var s$0 = pad[1]; - return [0, [1, s$0], fmt]; - } - function make_padprec_fmt_ebb(pad, prec, fmt){ - if(typeof prec === "number") - var match = prec ? [0, 1, fmt] : [0, 0, fmt]; - else - var p = prec[1], match = [0, [0, p], fmt]; - var prec$0 = match[1]; - if(typeof pad === "number") return [0, 0, prec$0, fmt]; - if(0 === pad[0]){ - var w = pad[2], s = pad[1]; - return [0, [0, s, w], prec$0, fmt]; - } - var s$0 = pad[1]; - return [0, [1, s$0], prec$0, fmt]; - } - function fmt_ebb_of_string(legacy_behavior, str){ - if(legacy_behavior) - var flag = legacy_behavior[1], legacy_behavior$0 = flag; - else - var legacy_behavior$0 = 1; - function invalid_format_message(str_ind, msg){ - return caml_call3(failwith_message(_z_), str, str_ind, msg); - } - function unexpected_end_of_format(end_ind){ - return invalid_format_message(end_ind, cst_unexpected_end_of_format); - } - function invalid_format_without(str_ind, c, s){ - return caml_call4(failwith_message(_A_), str, str_ind, c, s); - } - function expected_character(str_ind, expected, read){ - return caml_call4(failwith_message(_B_), str, str_ind, expected, read); - } - function add_literal(lit_start, str_ind, fmt){ - var size = str_ind - lit_start | 0; - return 0 === size - ? [0, fmt] - : 1 - === size - ? [0, [12, caml_string_get(str, lit_start), fmt]] - : [0, - [11, - caml_call3(Stdlib_String[15], str, lit_start, size), - fmt]]; - } - function parse(lit_start, end_ind){ - var str_ind = lit_start; - for(;;){ - if(str_ind === end_ind) return add_literal(lit_start, str_ind, 0); - var match = caml_string_get(str, str_ind); - if(37 === match){ - var str_ind$2 = str_ind + 1 | 0; - if(str_ind$2 === end_ind) unexpected_end_of_format(end_ind); - var - match$1 = - 95 === caml_string_get(str, str_ind$2) - ? parse_flags(str_ind, str_ind$2 + 1 | 0, end_ind, 1) - : parse_flags(str_ind, str_ind$2, end_ind, 0), - fmt_rest = match$1[1]; - return add_literal(lit_start, str_ind, fmt_rest); - } - if(64 !== match){ - var str_ind$1 = str_ind + 1 | 0, str_ind = str_ind$1; - continue; - } - var str_ind$0 = str_ind + 1 | 0; - if(str_ind$0 === end_ind) - var match$0 = _N_; - else{ - var c = caml_string_get(str, str_ind$0), switch$0 = 0; - if(65 <= c) - if(94 <= c){ - var switcher = c - 123 | 0; - if(2 < switcher >>> 0) - switch$0 = 1; - else - switch(switcher){ - case 0: - var match$0 = parse_tag(1, str_ind$0 + 1 | 0, end_ind); break; - case 1: - switch$0 = 1; break; - default: - var - fmt_rest$2 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 1, fmt_rest$2]]; - } - } - else if(91 <= c) - switch(c - 91 | 0){ - case 0: - var match$0 = parse_tag(0, str_ind$0 + 1 | 0, end_ind); break; - case 1: - switch$0 = 1; break; - default: - var - fmt_rest$3 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 0, fmt_rest$3]]; - } - else - switch$0 = 1; - else if(10 === c) - var - fmt_rest$4 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 3, fmt_rest$4]]; - else if(32 <= c) - switch(c - 32 | 0){ - case 0: - var - fmt_rest$5 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, _O_, fmt_rest$5]]; - break; - case 5: - var switch$1 = 0; - if - ((str_ind$0 + 1 | 0) < end_ind - && 37 === caml_string_get(str, str_ind$0 + 1 | 0)) - var - fmt_rest$6 = parse(str_ind$0 + 2 | 0, end_ind)[1], - match$0 = [0, [17, 6, fmt_rest$6]]; - else - switch$1 = 1; - if(switch$1) - var - fmt_rest$7 = parse(str_ind$0, end_ind)[1], - match$0 = [0, [12, 64, fmt_rest$7]]; - break; - case 12: - var - fmt_rest$8 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, _P_, fmt_rest$8]]; - break; - case 14: - var - fmt_rest$9 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 4, fmt_rest$9]]; - break; - case 27: - var str_ind$3 = str_ind$0 + 1 | 0; - try{ - var - _bg_ = str_ind$3 === end_ind ? 1 : 0, - _bh_ = _bg_ || (60 !== caml_string_get(str, str_ind$3) ? 1 : 0); - if(_bh_) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - str_ind_1 = parse_spaces(str_ind$3 + 1 | 0, end_ind), - match$2 = caml_string_get(str, str_ind_1), - switch$2 = 0; - if(48 <= match$2){ - if(58 > match$2) switch$2 = 1; - } - else if(45 === match$2) switch$2 = 1; - if(! switch$2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - match$3 = parse_integer(str_ind_1, end_ind), - width = match$3[2], - str_ind_2 = match$3[1], - str_ind_3 = parse_spaces(str_ind_2, end_ind), - switcher$0 = caml_string_get(str, str_ind_3) - 45 | 0, - switch$3 = 0; - if(12 < switcher$0 >>> 0) - if(17 === switcher$0) - var - s = - caml_call3 - (Stdlib_String[15], - str, - str_ind$3 - 2 | 0, - (str_ind_3 - str_ind$3 | 0) + 3 | 0), - _bi_ = [0, s, width, 0], - _bj_ = str_ind_3 + 1 | 0, - formatting_lit$0 = _bi_, - next_ind = _bj_; - else - switch$3 = 1; - else if(1 < switcher$0 - 1 >>> 0){ - var - match$4 = parse_integer(str_ind_3, end_ind), - offset = match$4[2], - str_ind_4 = match$4[1], - str_ind_5 = parse_spaces(str_ind_4, end_ind); - if(62 !== caml_string_get(str, str_ind_5)) - throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - s$0 = - caml_call3 - (Stdlib_String[15], - str, - str_ind$3 - 2 | 0, - (str_ind_5 - str_ind$3 | 0) + 3 | 0), - _bk_ = [0, s$0, width, offset], - _bl_ = str_ind_5 + 1 | 0, - formatting_lit$0 = _bk_, - next_ind = _bl_; - } - else - switch$3 = 1; - if(switch$3) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - } - catch(_bq_){ - var _bf_ = caml_wrap_exception(_bq_); - if(_bf_ !== Stdlib[8] && _bf_[1] !== Stdlib[7]) - throw caml_maybe_attach_backtrace(_bf_, 0); - var formatting_lit$0 = formatting_lit, next_ind = str_ind$3; - } - var - fmt_rest$12 = parse(next_ind, end_ind)[1], - match$0 = [0, [17, formatting_lit$0, fmt_rest$12]]; - break; - case 28: - var str_ind$4 = str_ind$0 + 1 | 0; - try{ - var - str_ind_1$0 = parse_spaces(str_ind$4, end_ind), - match$6 = caml_string_get(str, str_ind_1$0), - switch$4 = 0; - if(48 <= match$6){ - if(58 > match$6) switch$4 = 1; - } - else if(45 === match$6) switch$4 = 1; - if(switch$4){ - var - match$7 = parse_integer(str_ind_1$0, end_ind), - size = match$7[2], - str_ind_2$0 = match$7[1], - str_ind_3$0 = parse_spaces(str_ind_2$0, end_ind); - if(62 !== caml_string_get(str, str_ind_3$0)) - throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - s$1 = - caml_call3 - (Stdlib_String[15], - str, - str_ind$4 - 2 | 0, - (str_ind_3$0 - str_ind$4 | 0) + 3 | 0), - _bo_ = [0, [0, str_ind_3$0 + 1 | 0, [1, s$1, size]]]; - } - else - var _bo_ = 0; - var _bn_ = _bo_; - } - catch(_bp_){ - var _bm_ = caml_wrap_exception(_bp_); - if(_bm_ !== Stdlib[8] && _bm_[1] !== Stdlib[7]) - throw caml_maybe_attach_backtrace(_bm_, 0); - var _bn_ = 0; - } - if(_bn_) - var - match$5 = _bn_[1], - formatting_lit$1 = match$5[2], - next_ind$0 = match$5[1], - fmt_rest$13 = parse(next_ind$0, end_ind)[1], - _be_ = [0, [17, formatting_lit$1, fmt_rest$13]]; - else - var - fmt_rest$14 = parse(str_ind$4, end_ind)[1], - _be_ = [0, [17, _Q_, fmt_rest$14]]; - var match$0 = _be_; - break; - case 31: - var - fmt_rest$10 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 2, fmt_rest$10]]; - break; - case 32: - var - fmt_rest$11 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 5, fmt_rest$11]]; - break; - default: switch$0 = 1; - } - else - switch$0 = 1; - if(switch$0) - var - fmt_rest$1 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, [2, c], fmt_rest$1]]; - } - var fmt_rest$0 = match$0[1]; - return add_literal(lit_start, str_ind, fmt_rest$0); - } - } - function parse_conversion - (pct_ind, - str_ind, - end_ind, - plus, - hash, - space, - ign, - pad, - prec, - padprec, - symb){ - var - plus_used = [0, 0], - hash_used = [0, 0], - space_used = [0, 0], - ign_used = [0, 0], - pad_used = [0, 0], - prec_used = [0, 0]; - function get_plus(param){plus_used[1] = 1; return plus;} - function get_hash(param){hash_used[1] = 1; return hash;} - function get_space(param){space_used[1] = 1; return space;} - function get_ign(param){ign_used[1] = 1; return ign;} - function get_pad(param){pad_used[1] = 1; return pad;} - function get_prec(param){prec_used[1] = 1; return prec;} - function get_padprec(param){pad_used[1] = 1; return padprec;} - function get_int_pad(param){ - var pad = get_pad(0), match = get_prec(0); - if(typeof match === "number" && ! match) return pad; - if(typeof pad === "number") return 0; - if(0 !== pad[0]) - return 2 <= pad[1] - ? legacy_behavior$0 - ? _H_ - : incompatible_flag(pct_ind, str_ind, 48, cst_precision$1) - : pad; - if(2 > pad[1]) return pad; - var n = pad[2]; - return legacy_behavior$0 - ? [0, 1, n] - : incompatible_flag(pct_ind, str_ind, 48, cst_precision$0); - } - function check_no_0(symb, pad){ - if(typeof pad === "number") return pad; - if(0 !== pad[0]) - return 2 <= pad[1] - ? legacy_behavior$0 - ? _I_ - : incompatible_flag(pct_ind, str_ind, symb, cst_0$1) - : pad; - if(2 > pad[1]) return pad; - var width = pad[2]; - return legacy_behavior$0 - ? [0, 1, width] - : incompatible_flag(pct_ind, str_ind, symb, cst_0$0); - } - function opt_of_pad(c, pad){ - if(typeof pad === "number") return 0; - if(0 === pad[0]) - switch(pad[1]){ - case 0: - var width = pad[2]; - return legacy_behavior$0 - ? [0, width] - : incompatible_flag(pct_ind, str_ind, c, cst$24); - case 1: - var width$0 = pad[2]; return [0, width$0]; - default: - var width$1 = pad[2]; - return legacy_behavior$0 - ? [0, width$1] - : incompatible_flag(pct_ind, str_ind, c, cst_0$2); - } - return incompatible_flag(pct_ind, str_ind, c, cst$25); - } - function get_pad_opt(c){return opt_of_pad(c, get_pad(0));} - function get_padprec_opt(c){return opt_of_pad(c, get_padprec(0));} - var switch$0 = 0; - if(124 <= symb) - switch$0 = 1; - else - switch(symb){ - case 33: - var - fmt_rest$5 = parse(str_ind, end_ind)[1], - fmt_result = [0, [10, fmt_rest$5]]; - break; - case 40: - var - sub_end = search_subformat_end(str_ind, end_ind, 41), - fmt_rest$7 = parse(sub_end + 2 | 0, end_ind)[1], - sub_fmt = parse(str_ind, sub_end)[1], - sub_fmtty = fmtty_of_fmt(sub_fmt); - if(get_ign(0)) - var - ignored$2 = [9, get_pad_opt(95), sub_fmtty], - _aN_ = [0, [23, ignored$2, fmt_rest$7]]; - else - var _aN_ = [0, [14, get_pad_opt(40), sub_fmtty, fmt_rest$7]]; - var fmt_result = _aN_; - break; - case 44: - var fmt_result = parse(str_ind, end_ind); break; - case 67: - var - fmt_rest$10 = parse(str_ind, end_ind)[1], - _aP_ = - get_ign(0) ? [0, [23, 1, fmt_rest$10]] : [0, [1, fmt_rest$10]], - fmt_result = _aP_; - break; - case 78: - var fmt_rest$14 = parse(str_ind, end_ind)[1], counter$0 = 2; - if(get_ign(0)) - var - ignored$6 = [11, counter$0], - _aV_ = [0, [23, ignored$6, fmt_rest$14]]; - else - var _aV_ = [0, [21, counter$0, fmt_rest$14]]; - var fmt_result = _aV_; - break; - case 83: - var - pad$6 = check_no_0(symb, get_padprec(0)), - fmt_rest$15 = parse(str_ind, end_ind)[1]; - if(get_ign(0)) - var - ignored$7 = [1, get_padprec_opt(95)], - _aW_ = [0, [23, ignored$7, fmt_rest$15]]; - else - var - match$5 = make_padding_fmt_ebb(pad$6, fmt_rest$15), - fmt_rest$16 = match$5[2], - pad$7 = match$5[1], - _aW_ = [0, [3, pad$7, fmt_rest$16]]; - var fmt_result = _aW_; - break; - case 91: - if(str_ind === end_ind) unexpected_end_of_format(end_ind); - var - char_set = create_char_set(0), - add_char = function(c){return add_in_char_set(char_set, c);}, - add_range = - function(c$0, c){ - if(c >= c$0){ - var i = c$0; - for(;;){ - add_in_char_set(char_set, caml_call1(Stdlib[29], i)); - var _bd_ = i + 1 | 0; - if(c !== i){var i = _bd_; continue;} - break; - } - } - return 0; - }, - fail_single_percent = - function(str_ind){ - return caml_call2(failwith_message(_R_), str, str_ind); - }, - parse_char_set_content = - function(counter, str_ind, end_ind){ - var str_ind$0 = str_ind; - for(;;){ - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - var c = caml_string_get(str, str_ind$0); - if(45 === c){ - add_char(45); - var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; - continue; - } - if(93 === c) return str_ind$0 + 1 | 0; - var _bc_ = str_ind$0 + 1 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_after_char$0, [0, _bc_, end_ind, c]); - var counter$0 = counter + 1 | 0; - return parse_char_set_after_char$0(counter$0, _bc_, end_ind, c); - } - }, - parse_char_set_after_char$0 = - function(counter, str_ind, end_ind, c){ - var str_ind$0 = str_ind, c$0 = c; - for(;;){ - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - var c$1 = caml_string_get(str, str_ind$0), switch$0 = 0; - if(46 <= c$1){ - if(64 === c$1) - switch$0 = 1; - else if(93 === c$1){add_char(c$0); return str_ind$0 + 1 | 0;} - } - else if(37 === c$1) - switch$0 = 1; - else if(45 <= c$1){ - var str_ind$2 = str_ind$0 + 1 | 0; - if(str_ind$2 === end_ind) unexpected_end_of_format(end_ind); - var c$2 = caml_string_get(str, str_ind$2); - if(37 === c$2){ - if((str_ind$2 + 1 | 0) === end_ind) - unexpected_end_of_format(end_ind); - var c$3 = caml_string_get(str, str_ind$2 + 1 | 0); - if(37 !== c$3 && 64 !== c$3) - return fail_single_percent(str_ind$2); - add_range(c$0, c$3); - var _ba_ = str_ind$2 + 2 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_content, [0, _ba_, end_ind]); - var counter$2 = counter + 1 | 0; - return parse_char_set_content(counter$2, _ba_, end_ind); - } - if(93 === c$2){ - add_char(c$0); - add_char(45); - return str_ind$2 + 1 | 0; - } - add_range(c$0, c$2); - var _bb_ = str_ind$2 + 1 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_content, [0, _bb_, end_ind]); - var counter$1 = counter + 1 | 0; - return parse_char_set_content(counter$1, _bb_, end_ind); - } - if(switch$0 && 37 === c$0){ - add_char(c$1); - var _a$_ = str_ind$0 + 1 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_content, [0, _a$_, end_ind]); - var counter$0 = counter + 1 | 0; - return parse_char_set_content(counter$0, _a$_, end_ind); - } - if(37 === c$0) fail_single_percent(str_ind$0); - add_char(c$0); - var - str_ind$1 = str_ind$0 + 1 | 0, - str_ind$0 = str_ind$1, - c$0 = c$1; - } - }, - parse_char_set_after_char = - function(str_ind, end_ind, c){ - return caml_trampoline - (parse_char_set_after_char$0(0, str_ind, end_ind, c)); - }; - if(str_ind === end_ind) unexpected_end_of_format(end_ind); - if(94 === caml_string_get(str, str_ind)) - var str_ind$0 = str_ind + 1 | 0, reverse = 1, str_ind$1 = str_ind$0; - else - var reverse = 0, str_ind$1 = str_ind; - if(str_ind$1 === end_ind) unexpected_end_of_format(end_ind); - var - c = caml_string_get(str, str_ind$1), - next_ind = parse_char_set_after_char(str_ind$1 + 1 | 0, end_ind, c), - char_set$0 = freeze_char_set(char_set), - char_set$1 = reverse ? rev_char_set(char_set$0) : char_set$0, - fmt_rest$19 = parse(next_ind, end_ind)[1]; - if(get_ign(0)) - var - ignored$9 = [10, get_pad_opt(95), char_set$1], - _a1_ = [0, [23, ignored$9, fmt_rest$19]]; - else - var _a1_ = [0, [20, get_pad_opt(91), char_set$1, fmt_rest$19]]; - var fmt_result = _a1_; - break; - case 97: - var - fmt_rest$20 = parse(str_ind, end_ind)[1], - fmt_result = [0, [15, fmt_rest$20]]; - break; - case 99: - var - char_format = - function(fmt_rest){ - return get_ign(0) ? [0, [23, 0, fmt_rest]] : [0, [0, fmt_rest]]; - }, - fmt_rest$21 = parse(str_ind, end_ind)[1], - match$7 = get_pad_opt(99); - if(match$7){ - if(0 === match$7[1]) - var - _a2_ = - get_ign(0) ? [0, [23, 3, fmt_rest$21]] : [0, [22, fmt_rest$21]], - _a3_ = _a2_; - else - var - _a3_ = - legacy_behavior$0 - ? char_format(fmt_rest$21) - : invalid_format_message - (str_ind, cst_non_zero_widths_are_unsupp); - var _a4_ = _a3_; - } - else - var _a4_ = char_format(fmt_rest$21); - var fmt_result = _a4_; - break; - case 114: - var - fmt_rest$22 = parse(str_ind, end_ind)[1], - _a5_ = - get_ign(0) ? [0, [23, 2, fmt_rest$22]] : [0, [19, fmt_rest$22]], - fmt_result = _a5_; - break; - case 115: - var - pad$9 = check_no_0(symb, get_padprec(0)), - fmt_rest$23 = parse(str_ind, end_ind)[1]; - if(get_ign(0)) - var - ignored$10 = [0, get_padprec_opt(95)], - _a6_ = [0, [23, ignored$10, fmt_rest$23]]; - else - var - match$8 = make_padding_fmt_ebb(pad$9, fmt_rest$23), - fmt_rest$24 = match$8[2], - pad$10 = match$8[1], - _a6_ = [0, [2, pad$10, fmt_rest$24]]; - var fmt_result = _a6_; - break; - case 116: - var - fmt_rest$25 = parse(str_ind, end_ind)[1], - fmt_result = [0, [16, fmt_rest$25]]; - break; - case 123: - var - sub_end$0 = search_subformat_end(str_ind, end_ind, 125), - sub_fmt$0 = parse(str_ind, sub_end$0)[1], - fmt_rest$26 = parse(sub_end$0 + 2 | 0, end_ind)[1], - sub_fmtty$0 = fmtty_of_fmt(sub_fmt$0); - if(get_ign(0)) - var - ignored$11 = [8, get_pad_opt(95), sub_fmtty$0], - _a7_ = [0, [23, ignored$11, fmt_rest$26]]; - else - var _a7_ = [0, [13, get_pad_opt(123), sub_fmtty$0, fmt_rest$26]]; - var fmt_result = _a7_; - break; - case 66: - case 98: - var - pad$3 = check_no_0(symb, get_padprec(0)), - fmt_rest$8 = parse(str_ind, end_ind)[1]; - if(get_ign(0)) - var - ignored$3 = [7, get_padprec_opt(95)], - _aO_ = [0, [23, ignored$3, fmt_rest$8]]; - else - var - match$3 = make_padding_fmt_ebb(pad$3, fmt_rest$8), - fmt_rest$9 = match$3[2], - pad$4 = match$3[1], - _aO_ = [0, [9, pad$4, fmt_rest$9]]; - var fmt_result = _aO_; - break; - case 37: - case 64: - var - fmt_rest$6 = parse(str_ind, end_ind)[1], - fmt_result = [0, [12, symb, fmt_rest$6]]; - break; - case 76: - case 108: - case 110: - var switch$1 = 0; - if(str_ind === end_ind) - switch$1 = 1; - else{ - var - symb$0 = caml_string_get(str, str_ind), - _a8_ = symb$0 - 88 | 0, - switch$2 = 0; - if(32 >= _a8_ >>> 0) - switch(_a8_){ - case 0: - case 12: - case 17: - case 23: - case 29: - case 32: - var _aU_ = 1; switch$2 = 1; break; - } - if(! switch$2) var _aU_ = 0; - if(_aU_) switch$0 = 1; else switch$1 = 1; - } - if(switch$1){ - var fmt_rest$13 = parse(str_ind, end_ind)[1], switch$3 = 0; - if(108 <= symb){ - if(111 > symb) - switch(symb - 108 | 0){ - case 0: - var counter = 0; switch$3 = 1; break; - case 1: break; - default: var counter = 1; switch$3 = 1; - } - } - else if(76 === symb){var counter = 2; switch$3 = 1;} - if(! switch$3) - throw caml_maybe_attach_backtrace([0, Assert_failure, _V_], 1); - if(get_ign(0)) - var - ignored$5 = [11, counter], - _aT_ = [0, [23, ignored$5, fmt_rest$13]]; - else - var _aT_ = [0, [21, counter, fmt_rest$13]]; - var fmt_result = _aT_; - } - break; - case 32: - case 35: - case 43: - case 45: - case 95: - var - fmt_result = caml_call3(failwith_message(_M_), str, pct_ind, symb); - break; - case 88: - case 100: - case 105: - case 111: - case 117: - case 120: - var - _aX_ = get_space(0), - _aY_ = get_hash(0), - iconv$2 = - compute_int_conv(pct_ind, str_ind, get_plus(0), _aY_, _aX_, symb), - fmt_rest$17 = parse(str_ind, end_ind)[1]; - if(get_ign(0)) - var - ignored$8 = [2, iconv$2, get_pad_opt(95)], - _aZ_ = [0, [23, ignored$8, fmt_rest$17]]; - else - var - _a0_ = get_prec(0), - match$6 = make_padprec_fmt_ebb(get_int_pad(0), _a0_, fmt_rest$17), - fmt_rest$18 = match$6[3], - prec$4 = match$6[2], - pad$8 = match$6[1], - _aZ_ = [0, [4, iconv$2, pad$8, prec$4, fmt_rest$18]]; - var fmt_result = _aZ_; - break; - case 69: - case 70: - case 71: - case 72: - case 101: - case 102: - case 103: - case 104: - var - space$1 = get_space(0), - hash$1 = get_hash(0), - plus$2 = get_plus(0), - flag = - plus$2 - ? space$1 - ? legacy_behavior$0 - ? 1 - : incompatible_flag(pct_ind, str_ind, 32, cst$36) - : 1 - : space$1 ? 2 : 0, - switch$4 = 0; - if(73 <= symb){ - var switcher = symb - 101 | 0; - if(3 < switcher >>> 0) - switch$4 = 1; - else{ - switch(switcher){ - case 0: - var _a9_ = 1; break; - case 1: - var _a9_ = 0; break; - case 2: - var _a9_ = 3; break; - default: var _a9_ = 6; - } - var kind = _a9_; - } - } - else if(69 <= symb){ - var switch$5 = 0; - switch(symb - 69 | 0){ - case 0: - var _a__ = 2; break; - case 1: - switch$4 = 1; switch$5 = 1; break; - case 2: - var _a__ = 4; break; - default: var _a__ = 7; - } - if(! switch$5) var kind = _a__; - } - else - switch$4 = 1; - if(switch$4){ - var switch$6 = 0; - if(hash$1){ - if(70 === symb){var kind = 8; switch$6 = 1;} - } - else if(70 === symb){var kind = 5; switch$6 = 1;} - if(! switch$6) - throw caml_maybe_attach_backtrace([0, Assert_failure, _X_], 1); - } - var - fconv = [0, flag, kind], - fmt_rest$11 = parse(str_ind, end_ind)[1]; - if(get_ign(0)){ - var match = get_prec(0); - if(typeof match === "number") - var - _aQ_ = match ? incompatible_flag(pct_ind, str_ind, 95, cst$26) : 0; - else - var ndec = match[1], _aQ_ = [0, ndec]; - var - ignored$4 = [6, get_pad_opt(95), _aQ_], - _aR_ = [0, [23, ignored$4, fmt_rest$11]]; - } - else - var - _aS_ = get_prec(0), - match$4 = make_padprec_fmt_ebb(get_pad(0), _aS_, fmt_rest$11), - fmt_rest$12 = match$4[3], - prec$3 = match$4[2], - pad$5 = match$4[1], - _aR_ = [0, [8, fconv, pad$5, prec$3, fmt_rest$12]]; - var fmt_result = _aR_; - break; - default: switch$0 = 1; - } - if(switch$0){ - var switch$7 = 0; - if(108 <= symb){ - if(111 > symb){ - var switch$8 = 0; - switch(symb - 108 | 0){ - case 0: - var - _ax_ = caml_string_get(str, str_ind), - _ay_ = get_space(0), - _az_ = get_hash(0), - iconv = - compute_int_conv - (pct_ind, str_ind + 1 | 0, get_plus(0), _az_, _ay_, _ax_), - fmt_rest = parse(str_ind + 1 | 0, end_ind)[1]; - if(get_ign(0)) - var - ignored = [3, iconv, get_pad_opt(95)], - _aA_ = [0, [23, ignored, fmt_rest]]; - else - var - _aC_ = get_prec(0), - match$0 = make_padprec_fmt_ebb(get_int_pad(0), _aC_, fmt_rest), - fmt_rest$0 = match$0[3], - prec$0 = match$0[2], - pad$0 = match$0[1], - _aA_ = [0, [5, iconv, pad$0, prec$0, fmt_rest$0]]; - var _aB_ = _aA_; - switch$8 = 1; - break; - case 1: break; - default: - var - _aD_ = caml_string_get(str, str_ind), - _aE_ = get_space(0), - _aF_ = get_hash(0), - iconv$0 = - compute_int_conv - (pct_ind, str_ind + 1 | 0, get_plus(0), _aF_, _aE_, _aD_), - fmt_rest$1 = parse(str_ind + 1 | 0, end_ind)[1]; - if(get_ign(0)) - var - ignored$0 = [4, iconv$0, get_pad_opt(95)], - _aG_ = [0, [23, ignored$0, fmt_rest$1]]; - else - var - _aH_ = get_prec(0), - match$1 = make_padprec_fmt_ebb(get_int_pad(0), _aH_, fmt_rest$1), - fmt_rest$2 = match$1[3], - prec$1 = match$1[2], - pad$1 = match$1[1], - _aG_ = [0, [6, iconv$0, pad$1, prec$1, fmt_rest$2]]; - var _aB_ = _aG_; - switch$8 = 1; - } - if(switch$8){var fmt_result = _aB_; switch$7 = 1;} - } - } - else if(76 === symb){ - var - _aI_ = caml_string_get(str, str_ind), - _aJ_ = get_space(0), - _aK_ = get_hash(0), - iconv$1 = - compute_int_conv - (pct_ind, str_ind + 1 | 0, get_plus(0), _aK_, _aJ_, _aI_), - fmt_rest$3 = parse(str_ind + 1 | 0, end_ind)[1]; - if(get_ign(0)) - var - ignored$1 = [5, iconv$1, get_pad_opt(95)], - _aL_ = [0, [23, ignored$1, fmt_rest$3]]; - else - var - _aM_ = get_prec(0), - match$2 = make_padprec_fmt_ebb(get_int_pad(0), _aM_, fmt_rest$3), - fmt_rest$4 = match$2[3], - prec$2 = match$2[2], - pad$2 = match$2[1], - _aL_ = [0, [7, iconv$1, pad$2, prec$2, fmt_rest$4]]; - var fmt_result = _aL_; - switch$7 = 1; - } - if(! switch$7) - var - fmt_result = - caml_call3(failwith_message(_J_), str, str_ind - 1 | 0, symb); - } - if(1 - legacy_behavior$0){ - var _ao_ = 1 - plus_used[1], plus$0 = _ao_ ? plus : _ao_; - if(plus$0) incompatible_flag(pct_ind, str_ind, symb, cst$27); - var _ap_ = 1 - hash_used[1], hash$0 = _ap_ ? hash : _ap_; - if(hash$0) incompatible_flag(pct_ind, str_ind, symb, cst$28); - var _aq_ = 1 - space_used[1], space$0 = _aq_ ? space : _aq_; - if(space$0) incompatible_flag(pct_ind, str_ind, symb, cst$29); - var - _ar_ = 1 - pad_used[1], - _as_ = _ar_ ? caml_notequal([0, pad], _K_) : _ar_; - if(_as_) incompatible_flag(pct_ind, str_ind, symb, cst_padding$0); - var - _at_ = 1 - prec_used[1], - _au_ = _at_ ? caml_notequal([0, prec], _L_) : _at_; - if(_au_){ - var _av_ = ign ? 95 : symb; - incompatible_flag(pct_ind, str_ind, _av_, cst_precision$2); - } - var plus$1 = ign ? plus : ign; - if(plus$1) incompatible_flag(pct_ind, str_ind, 95, cst$30); - } - var _aw_ = 1 - ign_used[1], ign$0 = _aw_ ? ign : _aw_; - if(ign$0){ - var switch$9 = 0; - if(38 <= symb){ - if(44 !== symb && 64 !== symb) switch$9 = 1; - } - else if(33 !== symb && 37 > symb) switch$9 = 1; - var switch$10 = 0; - if(switch$9 || ! legacy_behavior$0) switch$10 = 1; - if(switch$10) incompatible_flag(pct_ind, str_ind, symb, cst$31); - } - return fmt_result; - } - function parse_after_precision - (pct_ind, str_ind, end_ind, minus, plus, hash, space, ign, pad, prec){ - if(str_ind === end_ind) unexpected_end_of_format(end_ind); - function parse_conv(padprec){ - return parse_conversion - (pct_ind, - str_ind + 1 | 0, - end_ind, - plus, - hash, - space, - ign, - pad, - prec, - padprec, - caml_string_get(str, str_ind)); - } - if(typeof pad !== "number") return parse_conv(pad); - if(typeof prec === "number" && ! prec) return parse_conv(0); - if(minus){ - if(typeof prec === "number") return parse_conv(_F_); - var n = prec[1]; - return parse_conv([0, 0, n]); - } - if(typeof prec === "number") return parse_conv(_G_); - var n$0 = prec[1]; - return parse_conv([0, 1, n$0]); - } - function parse_after_padding - (pct_ind, str_ind, end_ind, minus, plus, hash, space, ign, pad){ - if(str_ind === end_ind) unexpected_end_of_format(end_ind); - var symb = caml_string_get(str, str_ind); - if(46 !== symb) - return parse_conversion - (pct_ind, - str_ind + 1 | 0, - end_ind, - plus, - hash, - space, - ign, - pad, - 0, - pad, - symb); - var str_ind$0 = str_ind + 1 | 0; - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - function parse_literal(minus, str_ind){ - var - match = parse_positive(str_ind, end_ind, 0), - prec = match[2], - new_ind = match[1]; - return parse_after_precision - (pct_ind, - new_ind, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - [0, prec]); - } - var symb$0 = caml_string_get(str, str_ind$0); - if(48 <= symb$0){ - if(58 > symb$0) return parse_literal(minus, str_ind$0); - } - else if(42 <= symb$0) - switch(symb$0 - 42 | 0){ - case 0: - return parse_after_precision - (pct_ind, - str_ind$0 + 1 | 0, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - 1); - case 1: - case 3: - if(legacy_behavior$0){ - var - _an_ = str_ind$0 + 1 | 0, - minus$0 = minus || (45 === symb$0 ? 1 : 0); - return parse_literal(minus$0, _an_); - } - break; - } - return legacy_behavior$0 - ? parse_after_precision - (pct_ind, - str_ind$0, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - _E_) - : invalid_format_without(str_ind$0 - 1 | 0, 46, cst_precision); - } - function parse_flags(pct_ind, str_ind, end_ind, ign){ - var - zero = [0, 0], - minus = [0, 0], - plus = [0, 0], - space = [0, 0], - hash = [0, 0]; - function set_flag(str_ind, flag){ - var _ak_ = flag[1], _al_ = _ak_ ? 1 - legacy_behavior$0 : _ak_; - if(_al_){ - var _am_ = caml_string_get(str, str_ind); - caml_call3(failwith_message(_C_), str, str_ind, _am_); - } - flag[1] = 1; - return 0; - } - var str_ind$0 = str_ind; - for(;;){ - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - var switcher = caml_string_get(str, str_ind$0) - 32 | 0; - if(16 >= switcher >>> 0) - switch(switcher){ - case 0: - set_flag(str_ind$0, space); - var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; - continue; - case 3: - set_flag(str_ind$0, hash); - var str_ind$2 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$2; - continue; - case 11: - set_flag(str_ind$0, plus); - var str_ind$3 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$3; - continue; - case 13: - set_flag(str_ind$0, minus); - var str_ind$4 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$4; - continue; - case 16: - set_flag(str_ind$0, zero); - var str_ind$5 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$5; - continue; - } - var - space$0 = space[1], - hash$0 = hash[1], - plus$0 = plus[1], - minus$0 = minus[1], - zero$0 = zero[1]; - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - var - padty = - zero$0 - ? minus$0 - ? legacy_behavior$0 - ? 0 - : incompatible_flag(pct_ind, str_ind$0, 45, cst_0) - : 2 - : minus$0 ? 0 : 1, - match = caml_string_get(str, str_ind$0); - if(48 <= match){ - if(58 > match){ - var - match$0 = parse_positive(str_ind$0, end_ind, 0), - width = match$0[2], - new_ind = match$0[1]; - return parse_after_padding - (pct_ind, - new_ind, - end_ind, - minus$0, - plus$0, - hash$0, - space$0, - ign, - [0, padty, width]); - } - } - else if(42 === match) - return parse_after_padding - (pct_ind, - str_ind$0 + 1 | 0, - end_ind, - minus$0, - plus$0, - hash$0, - space$0, - ign, - [1, padty]); - switch(padty){ - case 0: - if(1 - legacy_behavior$0) - invalid_format_without(str_ind$0 - 1 | 0, 45, cst_padding); - return parse_after_padding - (pct_ind, - str_ind$0, - end_ind, - minus$0, - plus$0, - hash$0, - space$0, - ign, - 0); - case 1: - return parse_after_padding - (pct_ind, - str_ind$0, - end_ind, - minus$0, - plus$0, - hash$0, - space$0, - ign, - 0); - default: - return parse_after_padding - (pct_ind, - str_ind$0, - end_ind, - minus$0, - plus$0, - hash$0, - space$0, - ign, - _D_); - } - } - } - function parse_tag(is_open_tag, str_ind, end_ind){ - try{ - if(str_ind === end_ind) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(60 !== caml_string_get(str, str_ind)) - throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var ind = caml_call3(Stdlib_String[31], str, str_ind + 1 | 0, 62); - if(end_ind <= ind) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - sub_str = - caml_call3 - (Stdlib_String[15], str, str_ind, (ind - str_ind | 0) + 1 | 0), - fmt_rest$0 = parse(ind + 1 | 0, end_ind)[1], - sub_fmt = parse(str_ind, ind + 1 | 0)[1], - sub_format$0 = [0, sub_fmt, sub_str], - formatting$0 = is_open_tag ? [0, sub_format$0] : [1, sub_format$0], - _ai_ = [0, [18, formatting$0, fmt_rest$0]]; - return _ai_; - } - catch(_aj_){ - var _ah_ = caml_wrap_exception(_aj_); - if(_ah_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ah_, 0); - var - fmt_rest = parse(str_ind, end_ind)[1], - formatting = is_open_tag ? [0, sub_format] : [1, sub_format]; - return [0, [18, formatting, fmt_rest]]; - } - } - function parse_spaces(str_ind, end_ind){ - var str_ind$0 = str_ind; - for(;;){ - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - if(32 !== caml_string_get(str, str_ind$0)) return str_ind$0; - var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; - } - } - function parse_positive(str_ind, end_ind, acc){ - var str_ind$0 = str_ind, acc$0 = acc; - for(;;){ - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - var c = caml_string_get(str, str_ind$0); - if(9 < c - 48 >>> 0) return [0, str_ind$0, acc$0]; - var new_acc = (acc$0 * 10 | 0) + (c - 48 | 0) | 0; - if(Stdlib_Sys[12] < new_acc){ - var _ag_ = Stdlib_Sys[12]; - return caml_call3(failwith_message(_S_), str, new_acc, _ag_); - } - var - str_ind$1 = str_ind$0 + 1 | 0, - str_ind$0 = str_ind$1, - acc$0 = new_acc; - } - } - function parse_integer(str_ind, end_ind){ - if(str_ind === end_ind) unexpected_end_of_format(end_ind); - var match = caml_string_get(str, str_ind); - if(48 <= match){ - if(58 > match) return parse_positive(str_ind, end_ind, 0); - } - else if(45 === match){ - if((str_ind + 1 | 0) === end_ind) unexpected_end_of_format(end_ind); - var c = caml_string_get(str, str_ind + 1 | 0); - if(9 < c - 48 >>> 0) - return expected_character(str_ind + 1 | 0, cst_digit, c); - var - match$0 = parse_positive(str_ind + 1 | 0, end_ind, 0), - n = match$0[2], - next_ind = match$0[1]; - return [0, next_ind, - n | 0]; - } - throw caml_maybe_attach_backtrace([0, Assert_failure, _T_], 1); - } - function search_subformat_end(str_ind, end_ind, c){ - var str_ind$0 = str_ind; - for(;;){ - if(str_ind$0 === end_ind) - caml_call3(failwith_message(_U_), str, c, end_ind); - if(37 !== caml_string_get(str, str_ind$0)){ - var str_ind$7 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$7; - continue; - } - if((str_ind$0 + 1 | 0) === end_ind) unexpected_end_of_format(end_ind); - if(caml_string_get(str, str_ind$0 + 1 | 0) === c) return str_ind$0; - var match = caml_string_get(str, str_ind$0 + 1 | 0); - if(95 <= match){ - if(123 <= match){ - if(126 > match) - switch(match - 123 | 0){ - case 0: - var - sub_end = search_subformat_end(str_ind$0 + 2 | 0, end_ind, 125), - str_ind$2 = sub_end + 2 | 0, - str_ind$0 = str_ind$2; - continue; - case 1: break; - default: - return expected_character(str_ind$0 + 1 | 0, cst_character, 125); - } - } - else if(96 > match){ - if((str_ind$0 + 2 | 0) === end_ind) unexpected_end_of_format(end_ind); - var match$0 = caml_string_get(str, str_ind$0 + 2 | 0); - if(40 === match$0){ - var - sub_end$0 = search_subformat_end(str_ind$0 + 3 | 0, end_ind, 41), - str_ind$3 = sub_end$0 + 2 | 0, - str_ind$0 = str_ind$3; - continue; - } - if(123 === match$0){ - var - sub_end$1 = search_subformat_end(str_ind$0 + 3 | 0, end_ind, 125), - str_ind$4 = sub_end$1 + 2 | 0, - str_ind$0 = str_ind$4; - continue; - } - var str_ind$5 = str_ind$0 + 3 | 0, str_ind$0 = str_ind$5; - continue; - } - } - else{ - if(40 === match){ - var - sub_end$2 = search_subformat_end(str_ind$0 + 2 | 0, end_ind, 41), - str_ind$6 = sub_end$2 + 2 | 0, - str_ind$0 = str_ind$6; - continue; - } - if(41 === match) - return expected_character(str_ind$0 + 1 | 0, cst_character$0, 41); - } - var str_ind$1 = str_ind$0 + 2 | 0, str_ind$0 = str_ind$1; - } - } - function incompatible_flag(pct_ind, str_ind, symb, option){ - var - subfmt = - caml_call3(Stdlib_String[15], str, pct_ind, str_ind - pct_ind | 0); - return caml_call5 - (failwith_message(_Y_), str, pct_ind, option, symb, subfmt); - } - function compute_int_conv(pct_ind, str_ind, plus, hash, space, symb){ - var plus$0 = plus, hash$0 = hash, space$0 = space; - for(;;){ - var switch$0 = 0; - if(plus$0){ - if(hash$0) - switch$0 = 1; - else if(! space$0){ - if(100 === symb) return 1; - if(105 === symb) return 4; - } - } - else if(hash$0) - if(space$0) - switch$0 = 1; - else{ - var switcher$0 = symb - 88 | 0; - if(32 < switcher$0 >>> 0) - switch$0 = 1; - else - switch(switcher$0){ - case 0: - return 9; - case 12: - return 13; - case 17: - return 14; - case 23: - return 11; - case 29: - return 15; - case 32: - return 7; - default: switch$0 = 1; - } - } - else if(space$0){ - if(100 === symb) return 2; - if(105 === symb) return 5; - } - else{ - var switcher$1 = symb - 88 | 0; - if(32 >= switcher$1 >>> 0) - switch(switcher$1){ - case 0: - return 8; - case 12: - return 0; - case 17: - return 3; - case 23: - return 10; - case 29: - return 12; - case 32: - return 6; - } - } - if(switch$0){ - var switcher = symb - 88 | 0; - if(32 >= switcher >>> 0) - switch(switcher){ - case 0: - if(legacy_behavior$0) return 9; break; - case 23: - if(legacy_behavior$0) return 11; break; - case 32: - if(legacy_behavior$0) return 7; break; - case 12: - case 17: - case 29: - if(! legacy_behavior$0) - return incompatible_flag(pct_ind, str_ind, symb, cst$35); - var hash$0 = 0; - continue; - } - } - if(! plus$0){ - if(! space$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _W_], 1); - if(! legacy_behavior$0) - return incompatible_flag(pct_ind, str_ind, symb, cst$34); - var space$0 = 0; - continue; - } - if(space$0){ - if(! legacy_behavior$0) - return incompatible_flag(pct_ind, str_ind, 32, cst$32); - var space$0 = 0; - continue; - } - if(! legacy_behavior$0) - return incompatible_flag(pct_ind, str_ind, symb, cst$33); - var plus$0 = 0; - } - } - return parse(0, caml_ml_string_length(str)); - } - function format_of_string_fmtty(str, fmtty){ - var fmt = fmt_ebb_of_string(0, str)[1]; - try{var _ae_ = [0, type_format(fmt, fmtty), str]; return _ae_;} - catch(_af_){ - var _ac_ = caml_wrap_exception(_af_); - if(_ac_ !== Type_mismatch) throw caml_maybe_attach_backtrace(_ac_, 0); - var _ad_ = string_of_fmtty(fmtty); - return caml_call2(failwith_message(_Z_), str, _ad_); - } - } - function format_of_string_format(str, param){ - var - str$0 = param[2], - fmt = param[1], - fmt$0 = fmt_ebb_of_string(0, str)[1]; - try{ - var _aa_ = [0, type_format(fmt$0, fmtty_of_fmt(fmt)), str]; - return _aa_; - } - catch(_ab_){ - var _$_ = caml_wrap_exception(_ab_); - if(_$_ === Type_mismatch) - return caml_call2(failwith_message(___), str, str$0); - throw caml_maybe_attach_backtrace(_$_, 0); - } - } - var - CamlinternalFormat = - [0, - is_in_char_set, - rev_char_set, - create_char_set, - add_in_char_set, - freeze_char_set, - param_format_of_ignored_format, - make_printf, - make_iprintf, - output_acc, - bufput_acc, - strput_acc, - type_format, - fmt_ebb_of_string, - format_of_string_fmtty, - format_of_string_format, - char_of_iconv, - string_of_formatting_lit, - string_of_fmtty, - string_of_fmt, - open_box_of_string, - symm, - trans, - recast]; - runtime.caml_register_global(197, CamlinternalFormat, "CamlinternalFormat"); - return; - } - (globalThis)); - -//# 15817 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Buffer = global_data.Stdlib__Buffer, - CamlinternalFormat = global_data.CamlinternalFormat, - Stdlib = global_data.Stdlib; - function kfprintf(k, o, param){ - var fmt = param[1], _g_ = 0; - function _h_(acc){ - caml_call2(CamlinternalFormat[9], o, acc); - return caml_call1(k, o); - } - return caml_call3(CamlinternalFormat[7], _h_, _g_, fmt); - } - function kbprintf(k, b, param){ - var fmt = param[1], _e_ = 0; - function _f_(acc){ - caml_call2(CamlinternalFormat[10], b, acc); - return caml_call1(k, b); - } - return caml_call3(CamlinternalFormat[7], _f_, _e_, fmt); - } - function ikfprintf(k, oc, param){ - var fmt = param[1]; - return caml_call3(CamlinternalFormat[8], k, oc, fmt); - } - function fprintf(oc, fmt){ - return kfprintf(function(_d_){return 0;}, oc, fmt); - } - function bprintf(b, fmt){ - return kbprintf(function(_c_){return 0;}, b, fmt); - } - function ifprintf(oc, fmt){ - return ikfprintf(function(_b_){return 0;}, oc, fmt); - } - function ibprintf(b, fmt){ - return ikfprintf(function(_a_){return 0;}, b, fmt); - } - function printf(fmt){return fprintf(Stdlib[39], fmt);} - function eprintf(fmt){return fprintf(Stdlib[40], fmt);} - function ksprintf(k, param){ - var fmt = param[1]; - function k$0(acc){ - var buf = caml_call1(Stdlib_Buffer[1], 64); - caml_call2(CamlinternalFormat[11], buf, acc); - return caml_call1(k, caml_call1(Stdlib_Buffer[2], buf)); - } - return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); - } - function sprintf(fmt){return ksprintf(function(s){return s;}, fmt);} - var - Stdlib_Printf = - [0, - fprintf, - printf, - eprintf, - sprintf, - bprintf, - ifprintf, - ibprintf, - kfprintf, - ikfprintf, - ksprintf, - kbprintf, - ikfprintf, - ksprintf]; - runtime.caml_register_global(3, Stdlib_Printf, "Stdlib__Printf"); - return; - } - (globalThis)); - -//# 16607 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - global_data = runtime.caml_get_global_data(), - CamlinternalAtomic = global_data.CamlinternalAtomic, - make = CamlinternalAtomic[1], - get = CamlinternalAtomic[2], - set = CamlinternalAtomic[3], - exchange = CamlinternalAtomic[4], - compare_and_set = CamlinternalAtomic[5], - fetch_and_add = CamlinternalAtomic[6], - incr = CamlinternalAtomic[7], - decr = CamlinternalAtomic[8], - Stdlib_Atomic = - [0, - make, - get, - set, - exchange, - compare_and_set, - fetch_and_add, - incr, - decr]; - runtime.caml_register_global(1, Stdlib_Atomic, "Stdlib__Atomic"); - return; - } - (globalThis)); - -//# 16639 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$4 = "", - cst_s = "%s\n", - cst_Program_not_linked_with_g_$0 = - "(Program not linked with -g, cannot print stack backtrace)\n", - cst_characters = ", characters ", - cst_Fatal_error_exception = "Fatal error: exception ", - cst_Fatal_error_exception_s = "Fatal error: exception %s\n", - cst_Uncaught_exception = "Uncaught exception: ", - cst_Uncaught_exception_s = "Uncaught exception: %s\n", - caml_check_bound = runtime.caml_check_bound, - caml_get_exception_raw_backtra = runtime.caml_get_exception_raw_backtrace, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_obj_tag = runtime.caml_obj_tag, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call6(f, a0, a1, a2, a3, a4, a5){ - return (f.l >= 0 ? f.l : f.l = f.length) == 6 - ? f(a0, a1, a2, a3, a4, a5) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5]); - } - function caml_call8(f, a0, a1, a2, a3, a4, a5, a6, a7){ - return (f.l >= 0 ? f.l : f.l = f.length) == 8 - ? f(a0, a1, a2, a3, a4, a5, a6, a7) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6, a7]); - } - var - global_data = runtime.caml_get_global_data(), - cst$0 = cst$4, - cst$3 = cst$4, - partial = [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, 0]]], - cst$1 = cst$4, - cst$2 = cst$4, - cst = "_", - locfmt = - [0, - [11, - 'File "', - [2, - 0, - [11, - '", line ', + caml_string_of_jsbytes(": at character number "), [4, 0, 0, 0, [11, - cst_characters, - [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, [11, ": ", [2, 0, 0]]]]]]]]]], - 'File "%s", line %d, characters %d-%d: %s'], - Stdlib_Printf = global_data.Stdlib__Printf, - Stdlib_Atomic = global_data.Stdlib__Atomic, - Stdlib = global_data.Stdlib, - Stdlib_Buffer = global_data.Stdlib__Buffer, - Stdlib_Obj = global_data.Stdlib__Obj, - printers = caml_call1(Stdlib_Atomic[1], 0), - _c_ = [0, [11, ", ", [2, 0, [2, 0, 0]]], ", %s%s"], - _o_ = - [0, - [11, cst_Fatal_error_exception, [2, 0, [12, 10, 0]]], - cst_Fatal_error_exception_s], - _p_ = + caml_string_of_jsbytes(", "), + [2,0,[11,caml_string_of_jsbytes(" expected, read "),[1,0]]]]]]]], + caml_string_of_jsbytes + ("invalid format %S: at character number %d, %s expected, read %C")], + _aE_= [0, [11, - "Fatal error in uncaught exception handler: exception ", - [2, 0, [12, 10, 0]]], - "Fatal error in uncaught exception handler: exception %s\n"], - cst_Fatal_error_out_of_memory_ = - "Fatal error: out of memory in uncaught exception handler", - _n_ = + caml_string_of_jsbytes("invalid format "), + [3, + 0, + [11, + caml_string_of_jsbytes(": at character number "), + [4, + 0, + 0, + 0, + [11, + caml_string_of_jsbytes(", '"), + [0,[11,caml_string_of_jsbytes("' without "),[2,0,0]]]]]]]], + caml_string_of_jsbytes + ("invalid format %S: at character number %d, '%c' without %s")], + _aD_= [0, - [11, cst_Fatal_error_exception, [2, 0, [12, 10, 0]]], - cst_Fatal_error_exception_s], - _l_ = [0, [2, 0, [12, 10, 0]], cst_s], - cst_Program_not_linked_with_g_ = cst_Program_not_linked_with_g_$0, - _j_ = [0, [2, 0, [12, 10, 0]], cst_s], - _k_ = + [11, + caml_string_of_jsbytes("invalid format "), + [3, + 0, + [11, + caml_string_of_jsbytes(": at character number "), + [4,0,0,0,[11,caml_string_of_jsbytes(", "),[2,0,0]]]]]], + caml_string_of_jsbytes("invalid format %S: at character number %d, %s")], + _aC_= [0, - [11, cst_Program_not_linked_with_g_$0, 0], - cst_Program_not_linked_with_g_$0], - cst_Raised_at = "Raised at", - cst_Re_raised_at = "Re-raised at", - cst_Raised_by_primitive_operat = "Raised by primitive operation at", - cst_Called_from = "Called from", - cst_inlined = " (inlined)", - _h_ = + [11,caml_string_of_jsbytes("invalid box description "),[3,0,0]], + caml_string_of_jsbytes("invalid box description %S")], + _aB_=[0,0,4], + _av_=[0,103], + _ae_=[0,0,0], + _bo_=[0,[2,0,[0,0]],caml_string_of_jsbytes("%s%c")], + _bi_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _bj_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _bg_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _bh_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _be_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _bf_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _a__= + [0, + [2, + 0, + [11, + caml_string_of_jsbytes(": unknown option '"), + [2,0,[11,caml_string_of_jsbytes("'.\n"),0]]]], + caml_string_of_jsbytes("%s: unknown option '%s'.\n")], + _bb_= + [0, + [2, + 0, + [11, + caml_string_of_jsbytes(": wrong argument '"), + [2, + 0, + [11, + caml_string_of_jsbytes("'; option '"), + [2, + 0, + [11, + caml_string_of_jsbytes("' expects "), + [2,0,[11,caml_string_of_jsbytes(".\n"),0]]]]]]]], + caml_string_of_jsbytes + ("%s: wrong argument '%s'; option '%s' expects %s.\n")], + _bc_= + [0, + [2, + 0, + [11, + caml_string_of_jsbytes(": option '"), + [2,0,[11,caml_string_of_jsbytes("' needs an argument.\n"),0]]]], + caml_string_of_jsbytes("%s: option '%s' needs an argument.\n")], + _bd_= + [0, + [2, + 0, + [11, + caml_string_of_jsbytes(": "), + [2,0,[11,caml_string_of_jsbytes(".\n"),0]]]], + caml_string_of_jsbytes("%s: %s.\n")], + _a$_=[0,caml_string_of_jsbytes("-help")], + _ba_=[0,caml_string_of_jsbytes("--help")], + _a9_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _a8_=[0,[2,0,[12,10,0]],caml_string_of_jsbytes("%s\n")], + _a7_=[0,caml_string_of_jsbytes("-help")], + _a5_= + [0, + [11,caml_string_of_jsbytes(" "),[2,0,[12,32,[2,0,[12,10,0]]]]], + caml_string_of_jsbytes(" %s %s\n")], + _a6_= + [0, + [11,caml_string_of_jsbytes(" "),[2,0,[12,32,[2,0,[2,0,[12,10,0]]]]]], + caml_string_of_jsbytes(" %s %s%s\n")], + _bt_= + [0, + [11,caml_string_of_jsbytes(", "),[2,0,[2,0,0]]], + caml_string_of_jsbytes(", %s%s")], + _bF_= + [0, + [11,caml_string_of_jsbytes("Fatal error: exception "),[2,0,[12,10,0]]], + caml_string_of_jsbytes("Fatal error: exception %s\n")], + _bG_= + [0, + [11, + caml_string_of_jsbytes + ("Fatal error in uncaught exception handler: exception "), + [2,0,[12,10,0]]], + caml_string_of_jsbytes + ("Fatal error in uncaught exception handler: exception %s\n")], + _bE_= + [0, + [11,caml_string_of_jsbytes("Fatal error: exception "),[2,0,[12,10,0]]], + caml_string_of_jsbytes("Fatal error: exception %s\n")], + _bC_=[0,[2,0,[12,10,0]],caml_string_of_jsbytes("%s\n")], + _bA_=[0,[2,0,[12,10,0]],caml_string_of_jsbytes("%s\n")], + _bB_= + [0, + [11, + caml_string_of_jsbytes + ("(Program not linked with -g, cannot print stack backtrace)\n"), + 0], + caml_string_of_jsbytes + ("(Program not linked with -g, cannot print stack backtrace)\n")], + _by_= [0, [2, 0, @@ -24553,550 +9917,131 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ [2, 0, [11, - ' in file "', + caml_string_of_jsbytes(' in file "'), [2, 0, [12, 34, [2, 0, - [11, ", line ", [4, 0, 0, 0, [11, cst_characters, partial]]]]]]]]]], - '%s %s in file "%s"%s, line %d, characters %d-%d'], - _i_ = [0, [2, 0, [11, " unknown location", 0]], "%s unknown location"], - _g_ = + [11, + caml_string_of_jsbytes(", line "), + [4,0,0,0,[11,caml_string_of_jsbytes(", characters "),partial]]]]]]]]]], + caml_string_of_jsbytes + ('%s %s in file "%s"%s, line %d, characters %d-%d')], + _bz_= [0, - [11, cst_Uncaught_exception, [2, 0, [12, 10, 0]]], - cst_Uncaught_exception_s], - _f_ = + [2,0,[11,caml_string_of_jsbytes(" unknown location"),0]], + caml_string_of_jsbytes("%s unknown location")], + _bx_= [0, - [11, cst_Uncaught_exception, [2, 0, [12, 10, 0]]], - cst_Uncaught_exception_s], - cst_Out_of_memory = "Out of memory", - cst_Stack_overflow = "Stack overflow", - cst_Pattern_matching_failed = "Pattern matching failed", - cst_Assertion_failed = "Assertion failed", - cst_Undefined_recursive_module = "Undefined recursive module", - _d_ = [0, [12, 40, [2, 0, [2, 0, [12, 41, 0]]]], "(%s%s)"], - _e_ = [0, [12, 40, [2, 0, [12, 41, 0]]], "(%s)"], - _b_ = [0, [4, 0, 0, 0, 0], "%d"], - _a_ = [0, [3, 0, 0], "%S"], - _m_ = + [11,caml_string_of_jsbytes("Uncaught exception: "),[2,0,[12,10,0]]], + caml_string_of_jsbytes("Uncaught exception: %s\n")], + _bw_= [0, - cst$4, - "(Cannot print locations:\n bytecode executable program file not found)", - "(Cannot print locations:\n bytecode executable program file appears to be corrupt)", - "(Cannot print locations:\n bytecode executable program file has wrong magic number)", - "(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)"]; - function field(x, i){ - var f = x[1 + i]; - if(! caml_call1(Stdlib_Obj[1], f)) - return caml_call2(Stdlib_Printf[4], _b_, f); - var _al_ = Stdlib_Obj[13]; - if(caml_obj_tag(f) === _al_) return caml_call2(Stdlib_Printf[4], _a_, f); - var _am_ = Stdlib_Obj[14]; - return caml_obj_tag(f) === _am_ ? caml_call1(Stdlib[35], f) : cst; - } - function other_fields(x, i){ - if(x.length - 1 <= i) return cst$0; - var _aj_ = other_fields(x, i + 1 | 0), _ak_ = field(x, i); - return caml_call3(Stdlib_Printf[4], _c_, _ak_, _aj_); - } - function use_printers(x){ - var param = caml_call1(Stdlib_Atomic[2], printers); - for(;;){ - if(! param) return 0; - var tl = param[2], hd = param[1], switch$0 = 0; - try{var val = caml_call1(hd, x);}catch(_ai_){switch$0 = 1;} - if(! switch$0 && val){var s = val[1]; return [0, s];} - var param = tl; - } - } - function to_string_default(x){ - if(x === Stdlib[9]) return cst_Out_of_memory; - if(x === Stdlib[10]) return cst_Stack_overflow; - if(x[1] === Stdlib[4]){ - var - match$0 = x[2], - char$0 = match$0[3], - line = match$0[2], - file = match$0[1]; - return caml_call6 - (Stdlib_Printf[4], - locfmt, - file, - line, - char$0, - char$0 + 5 | 0, - cst_Pattern_matching_failed); - } - if(x[1] === Stdlib[5]){ - var - match$1 = x[2], - char$1 = match$1[3], - line$0 = match$1[2], - file$0 = match$1[1]; - return caml_call6 - (Stdlib_Printf[4], - locfmt, - file$0, - line$0, - char$1, - char$1 + 6 | 0, - cst_Assertion_failed); - } - if(x[1] === Stdlib[15]){ - var - match$2 = x[2], - char$2 = match$2[3], - line$1 = match$2[2], - file$1 = match$2[1]; - return caml_call6 - (Stdlib_Printf[4], - locfmt, - file$1, - line$1, - char$2, - char$2 + 6 | 0, - cst_Undefined_recursive_module); - } - if(0 !== caml_obj_tag(x)) return x[1]; - var constructor = x[1][1], match = x.length - 1; - if(2 < match >>> 0) - var - _ae_ = other_fields(x, 2), - _af_ = field(x, 1), - _ah_ = caml_call3(Stdlib_Printf[4], _d_, _af_, _ae_); - else - switch(match){ - case 0: - var _ah_ = cst$1; break; - case 1: - var _ah_ = cst$2; break; - default: - var - _ag_ = field(x, 1), - _ah_ = caml_call2(Stdlib_Printf[4], _e_, _ag_); - } - return caml_call2(Stdlib[28], constructor, _ah_); - } - function to_string(e){ - var match = use_printers(e); - if(! match) return to_string_default(e); - var s = match[1]; - return s; - } - function print(fct, arg){ - try{var _ad_ = caml_call1(fct, arg); return _ad_;} - catch(x$0){ - var x = caml_wrap_exception(x$0), _ac_ = to_string(x); - caml_call2(Stdlib_Printf[3], _f_, _ac_); - caml_call1(Stdlib[63], Stdlib[40]); - throw caml_maybe_attach_backtrace(x, 0); - } - } - function catch$0(fct, arg){ - try{var _ab_ = caml_call1(fct, arg); return _ab_;} - catch(x$0){ - var x = caml_wrap_exception(x$0); - caml_call1(Stdlib[63], Stdlib[39]); - var _aa_ = to_string(x); - caml_call2(Stdlib_Printf[3], _g_, _aa_); - return caml_call1(Stdlib[99], 2); - } - } - function raw_backtrace_entries(bt){return bt;} - function convert_raw_backtrace(bt){ - return [0, runtime.caml_convert_raw_backtrace(bt)]; - } - function format_backtrace_slot(pos, slot){ - function info(is_raise){ - return is_raise - ? 0 === pos ? cst_Raised_at : cst_Re_raised_at - : 0 === pos ? cst_Raised_by_primitive_operat : cst_Called_from; - } - if(0 === slot[0]){ - var - _U_ = slot[5], - _V_ = slot[4], - _W_ = slot[3], - _X_ = slot[6] ? cst_inlined : cst$3, - _Y_ = slot[2], - _Z_ = slot[7], - ___ = info(slot[1]); - return [0, - caml_call8 - (Stdlib_Printf[4], _h_, ___, _Z_, _Y_, _X_, _W_, _V_, _U_)]; - } - if(slot[1]) return 0; - var _$_ = info(0); - return [0, caml_call2(Stdlib_Printf[4], _i_, _$_)]; - } - function print_raw_backtrace(outchan, raw_backtrace){ - var backtrace = convert_raw_backtrace(raw_backtrace); - if(! backtrace) return caml_call2(Stdlib_Printf[1], outchan, _k_); - var a = backtrace[1], _S_ = a.length - 1 - 1 | 0, _R_ = 0; - if(_S_ >= 0){ - var i = _R_; - for(;;){ - var match = format_backtrace_slot(i, caml_check_bound(a, i)[1 + i]); - if(match){ - var str = match[1]; - caml_call3(Stdlib_Printf[1], outchan, _j_, str); - } - var _T_ = i + 1 | 0; - if(_S_ !== i){var i = _T_; continue;} - break; - } - } - return 0; - } - function print_backtrace(outchan){ - return print_raw_backtrace(outchan, caml_get_exception_raw_backtra(0)); - } - function raw_backtrace_to_string(raw_backtrace){ - var backtrace = convert_raw_backtrace(raw_backtrace); - if(! backtrace) return cst_Program_not_linked_with_g_; - var - a = backtrace[1], - b = caml_call1(Stdlib_Buffer[1], 1024), - _P_ = a.length - 1 - 1 | 0, - _O_ = 0; - if(_P_ >= 0){ - var i = _O_; - for(;;){ - var match = format_backtrace_slot(i, caml_check_bound(a, i)[1 + i]); - if(match){ - var str = match[1]; - caml_call3(Stdlib_Printf[5], b, _l_, str); - } - var _Q_ = i + 1 | 0; - if(_P_ !== i){var i = _Q_; continue;} - break; - } - } - return caml_call1(Stdlib_Buffer[2], b); - } - function backtrace_slot_is_raise(param){ - return 0 === param[0] ? param[1] : param[1]; - } - function backtrace_slot_is_inline(param){return 0 === param[0] ? param[6] : 0; - } - function backtrace_slot_location(param){ - return 0 === param[0] - ? [0, [0, param[2], param[3], param[4], param[5]]] - : 0; - } - function backtrace_slot_defname(param){ - if(0 === param[0] && runtime.caml_string_notequal(param[7], cst$4)) - return [0, param[7]]; - return 0; - } - function backtrace_slots(raw_backtrace){ - var match = convert_raw_backtrace(raw_backtrace); - if(! match) return 0; - var backtrace = match[1], i$1 = backtrace.length - 1 - 1 | 0, i = i$1; - for(;;){ - if(-1 === i) - var _N_ = 0; - else{ - var _M_ = 0 === caml_check_bound(backtrace, i)[1 + i][0] ? 1 : 0; - if(! _M_){var i$0 = i - 1 | 0, i = i$0; continue;} - var _N_ = _M_; - } - return _N_ ? [0, backtrace] : 0; - } - } - function backtrace_slots_of_raw_entry(entry){return backtrace_slots([0, entry]); - } - function raw_backtrace_length(bt){return bt.length - 1;} - function get_backtrace(param){ - return raw_backtrace_to_string(caml_get_exception_raw_backtra(0)); - } - function register_printer(fn){ - for(;;){ - var - old_printers = caml_call1(Stdlib_Atomic[2], printers), - new_printers = [0, fn, old_printers], - success = - caml_call3(Stdlib_Atomic[5], printers, old_printers, new_printers), - _L_ = 1 - success; - if(_L_) continue; - return _L_; - } - } - function exn_slot(x){return 0 === caml_obj_tag(x) ? x[1] : x;} - function exn_slot_id(x){var slot = exn_slot(x); return slot[2];} - function exn_slot_name(x){var slot = exn_slot(x); return slot[1];} - var errors = _m_.slice(); - function default_uncaught_exception_han(exn, raw_backtrace){ - var _I_ = to_string(exn); - caml_call2(Stdlib_Printf[3], _n_, _I_); - print_raw_backtrace(Stdlib[40], raw_backtrace); - var status = runtime.caml_ml_debug_info_status(0); - if(status < 0){ - var - _J_ = caml_call1(Stdlib[18], status), - _K_ = caml_check_bound(errors, _J_)[1 + _J_]; - caml_call1(Stdlib[53], _K_); - } - return caml_call1(Stdlib[63], Stdlib[40]); - } - var uncaught_exception_handler = [0, default_uncaught_exception_han]; - function set_uncaught_exception_handler(fn){ - uncaught_exception_handler[1] = fn; - return 0; - } - var empty_backtrace = [0]; - function handle_uncaught_exception(exn$0, debugger_in_use){ - try{ - try{ - var - raw_backtrace = - debugger_in_use ? empty_backtrace : caml_get_exception_raw_backtra(0); - try{caml_call1(Stdlib[103], 0);}catch(_H_){} - try{ - var - _D_ = caml_call2(uncaught_exception_handler[1], exn$0, raw_backtrace), - _C_ = _D_; - } - catch(exn$1){ - var - exn = caml_wrap_exception(exn$1), - raw_backtrace$0 = caml_get_exception_raw_backtra(0), - _A_ = to_string(exn$0); - caml_call2(Stdlib_Printf[3], _o_, _A_); - print_raw_backtrace(Stdlib[40], raw_backtrace); - var _B_ = to_string(exn); - caml_call2(Stdlib_Printf[3], _p_, _B_); - print_raw_backtrace(Stdlib[40], raw_backtrace$0); - var _C_ = caml_call1(Stdlib[63], Stdlib[40]); - } - var _E_ = _C_; - } - catch(_G_){ - var _z_ = caml_wrap_exception(_G_); - if(_z_ !== Stdlib[9]) throw caml_maybe_attach_backtrace(_z_, 0); - var _E_ = caml_call1(Stdlib[53], cst_Fatal_error_out_of_memory_); - } - return _E_; - } - catch(_F_){return 0;} - } - runtime.caml_register_named_value - ("Printexc.handle_uncaught_exception", handle_uncaught_exception); - function _q_(_y_){return runtime.caml_raw_backtrace_next_slot(_y_);} - function _r_(_x_){return runtime.caml_convert_raw_backtrace_slot(_x_);} - function _s_(_w_, _v_){return runtime.caml_raw_backtrace_slot(_w_, _v_);} - var - _t_ = + [11,caml_string_of_jsbytes("Uncaught exception: "),[2,0,[12,10,0]]], + caml_string_of_jsbytes("Uncaught exception: %s\n")], + _bu_=[0,[12,40,[2,0,[2,0,[12,41,0]]]],caml_string_of_jsbytes("(%s%s)")], + _bv_=[0,[12,40,[2,0,[12,41,0]]],caml_string_of_jsbytes("(%s)")], + _bs_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], + _br_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _bD_= [0, - backtrace_slot_is_raise, - backtrace_slot_is_inline, - backtrace_slot_location, - backtrace_slot_defname, - format_backtrace_slot], - Stdlib_Printexc = + caml_string_of_jsbytes(""), + caml_string_of_jsbytes + ("(Cannot print locations:\n bytecode executable program file not found)"), + caml_string_of_jsbytes + ("(Cannot print locations:\n bytecode executable program file appears to be corrupt)"), + caml_string_of_jsbytes + ("(Cannot print locations:\n bytecode executable program file has wrong magic number)"), + caml_string_of_jsbytes + ("(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)")], + _bN_= [0, - to_string, - to_string_default, - print, - catch$0, - print_backtrace, - get_backtrace, - runtime.caml_record_backtrace, - runtime.caml_backtrace_status, - register_printer, - use_printers, - raw_backtrace_entries, - function(_u_){return caml_get_exception_raw_backtra(_u_);}, - print_raw_backtrace, - raw_backtrace_to_string, - default_uncaught_exception_han, - set_uncaught_exception_handler, - backtrace_slots, - backtrace_slots_of_raw_entry, - _t_, - raw_backtrace_length, - _s_, - _r_, - _q_, - exn_slot_id, - exn_slot_name]; - runtime.caml_register_global(42, Stdlib_Printexc, "Stdlib__Printexc"); - return; - } - (globalThis)); - -//# 17358 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_Digest_from_hex$1 = "Digest.from_hex", - caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, - caml_create_bytes = runtime.caml_create_bytes, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_md5_string = runtime.caml_md5_string, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_string_get = runtime.caml_string_get, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Char = global_data.Stdlib__Char, - Stdlib_Bytes = global_data.Stdlib__Bytes, - Stdlib_String = global_data.Stdlib__String, - compare = Stdlib_String[9], - equal = Stdlib_String[8], - cst_Digest_from_hex$0 = cst_Digest_from_hex$1, - cst_Digest_from_hex = cst_Digest_from_hex$1, - cst_Digest_to_hex = "Digest.to_hex", - cst_Digest_substring = "Digest.substring"; - function string(str){ - return caml_md5_string(str, 0, caml_ml_string_length(str)); - } - function bytes(b){return string(caml_call1(Stdlib_Bytes[48], b));} - function substring(str, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_string_length(str) - len | 0) >= ofs) - return caml_md5_string(str, ofs, len); - return caml_call1(Stdlib[1], cst_Digest_substring); - } - function subbytes(b, ofs, len){ - return substring(caml_call1(Stdlib_Bytes[48], b), ofs, len); - } - function file(filename){ - var ic = caml_call1(Stdlib[80], filename); - try{var d = runtime.caml_md5_chan(ic, -1);} - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[93], ic); - throw caml_maybe_attach_backtrace(e, 0); - } - caml_call1(Stdlib[93], ic); - return d; - } - function output(chan, digest){return caml_call2(Stdlib[66], chan, digest);} - function input(chan){return caml_call2(Stdlib[86], chan, 16);} - function char_hex(n){var _e_ = 10 <= n ? 87 : 48; return n + _e_ | 0;} - function to_hex(d){ - if(16 !== caml_ml_string_length(d)) - caml_call1(Stdlib[1], cst_Digest_to_hex); - var result = caml_create_bytes(32), i = 0; - for(;;){ - var x = caml_string_get(d, i); - caml_bytes_unsafe_set(result, i * 2 | 0, char_hex(x >>> 4 | 0)); - caml_bytes_unsafe_set(result, (i * 2 | 0) + 1 | 0, char_hex(x & 15)); - var _d_ = i + 1 | 0; - if(15 === i) return caml_call1(Stdlib_Bytes[48], result); - var i = _d_; - } - } - function from_hex(s){ - if(32 !== caml_ml_string_length(s)) - caml_call1(Stdlib[1], cst_Digest_from_hex); - function digit(c){ - if(65 <= c){ - if(97 <= c){ - if(103 > c) return (c - 97 | 0) + 10 | 0; - } - else if(71 > c) return (c - 65 | 0) + 10 | 0; - } - else if(9 >= c - 48 >>> 0) return c - 48 | 0; - throw caml_maybe_attach_backtrace - ([0, Stdlib[6], cst_Digest_from_hex$0], 1); - } - var result = caml_create_bytes(16), i = 0; - for(;;){ - var - i$0 = 2 * i | 0, - _a_ = digit(caml_string_get(s, i$0 + 1 | 0)), - _b_ = (digit(caml_string_get(s, i$0)) << 4) + _a_ | 0; - runtime.caml_bytes_set(result, i, caml_call1(Stdlib_Char[1], _b_)); - var _c_ = i + 1 | 0; - if(15 === i) return caml_call1(Stdlib_Bytes[48], result); - var i = _c_; - } - } - var - Stdlib_Digest = + [11, + caml_string_of_jsbytes("minor_collections: "), + [4,0,0,0,[12,10,0]]], + caml_string_of_jsbytes("minor_collections: %d\n")], + _bO_= [0, - compare, - equal, - string, - bytes, - substring, - subbytes, - file, - output, - input, - to_hex, - from_hex]; - runtime.caml_register_global(8, Stdlib_Digest, "Stdlib__Digest"); - return; - } - (globalThis)); - -//# 17479 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_check_bound = runtime.caml_check_bound, - caml_greaterthan = runtime.caml_greaterthan, - caml_int64_of_int32 = runtime.caml_int64_of_int32, - caml_int64_or = runtime.caml_int64_or, - caml_int64_shift_left = runtime.caml_int64_shift_left, - caml_int64_shift_right_unsigne = runtime.caml_int64_shift_right_unsigned, - caml_int64_sub = runtime.caml_int64_sub, - caml_int64_to_int32 = runtime.caml_int64_to_int32, - caml_lessequal = runtime.caml_lessequal, - caml_mod = runtime.caml_mod, - caml_string_get = runtime.caml_string_get, - caml_sys_random_seed = runtime.caml_sys_random_seed; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Int32 = global_data.Stdlib__Int32, - Stdlib_Int64 = global_data.Stdlib__Int64, - Stdlib_Int = global_data.Stdlib__Int, - Stdlib_Digest = global_data.Stdlib__Digest, - Stdlib_Array = global_data.Stdlib__Array, - Stdlib_Nativeint = global_data.Stdlib__Nativeint, - _a_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), - _b_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), - cst_Random_int64 = "Random.int64", - cst_Random_int32 = "Random.int32", - cst_Random_full_int = "Random.full_int", - cst_Random_int = "Random.int", - cst_x = "x", - _c_ = + [11, + caml_string_of_jsbytes("major_collections: "), + [4,0,0,0,[12,10,0]]], + caml_string_of_jsbytes("major_collections: %d\n")], + _bP_= + [0, + [11, + caml_string_of_jsbytes("compactions: "), + [4,0,0,0,[12,10,0]]], + caml_string_of_jsbytes("compactions: %d\n")], + _bQ_= + [0, + [11, + caml_string_of_jsbytes("forced_major_collections: "), + [4,0,0,0,[12,10,0]]], + caml_string_of_jsbytes("forced_major_collections: %d\n")], + _bR_=[0,[12,10,0],caml_string_of_jsbytes("\n")], + _bS_=[0,[8,[0,0,0],0,[0,0],0],caml_string_of_jsbytes("%.0f")], + _bT_= + [0, + [11, + caml_string_of_jsbytes("minor_words: "), + [8,[0,0,0],[1,1],[0,0],[12,10,0]]], + caml_string_of_jsbytes("minor_words: %*.0f\n")], + _bU_= + [0, + [11, + caml_string_of_jsbytes("promoted_words: "), + [8,[0,0,0],[1,1],[0,0],[12,10,0]]], + caml_string_of_jsbytes("promoted_words: %*.0f\n")], + _bV_= + [0, + [11, + caml_string_of_jsbytes("major_words: "), + [8,[0,0,0],[1,1],[0,0],[12,10,0]]], + caml_string_of_jsbytes("major_words: %*.0f\n")], + _bW_=[0,[12,10,0],caml_string_of_jsbytes("\n")], + _bX_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], + _bY_= + [0, + [11,caml_string_of_jsbytes("top_heap_words: "),[4,0,[1,1],0,[12,10,0]]], + caml_string_of_jsbytes("top_heap_words: %*d\n")], + _bZ_= + [0, + [11,caml_string_of_jsbytes("heap_words: "),[4,0,[1,1],0,[12,10,0]]], + caml_string_of_jsbytes("heap_words: %*d\n")], + _b0_= + [0, + [11,caml_string_of_jsbytes("live_words: "),[4,0,[1,1],0,[12,10,0]]], + caml_string_of_jsbytes("live_words: %*d\n")], + _b1_= + [0, + [11,caml_string_of_jsbytes("free_words: "),[4,0,[1,1],0,[12,10,0]]], + caml_string_of_jsbytes("free_words: %*d\n")], + _b2_= + [0, + [11,caml_string_of_jsbytes("largest_free: "),[4,0,[1,1],0,[12,10,0]]], + caml_string_of_jsbytes("largest_free: %*d\n")], + _b3_= + [0, + [11,caml_string_of_jsbytes("fragments: "),[4,0,[1,1],0,[12,10,0]]], + caml_string_of_jsbytes("fragments: %*d\n")], + _b4_=[0,[12,10,0],caml_string_of_jsbytes("\n")], + _b5_= + [0, + [11,caml_string_of_jsbytes("live_blocks: "),[4,0,0,0,[12,10,0]]], + caml_string_of_jsbytes("live_blocks: %d\n")], + _b6_= + [0, + [11,caml_string_of_jsbytes("free_blocks: "),[4,0,0,0,[12,10,0]]], + caml_string_of_jsbytes("free_blocks: %d\n")], + _b7_= + [0, + [11,caml_string_of_jsbytes("heap_chunks: "),[4,0,0,0,[12,10,0]]], + caml_string_of_jsbytes("heap_chunks: %d\n")], + _cd_=runtime.caml_int64_create_lo_mi_hi(1,0,0), + _ce_=runtime.caml_int64_create_lo_mi_hi(0,0,0), + _cf_= [0, 987910699, 495797812, @@ -25152,198 +10097,12815 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ 510646120, 652377910, 409934019, - 801085050]; - function new_state(param){return [0, runtime.caml_make_vect(55, 0), 0];} - function assign(st1, st2){ - caml_call5(Stdlib_Array[10], st2[1], 0, st1[1], 0, 55); - st1[2] = st2[2]; - return 0; - } - function full_init(s, seed){ - var - seed$0 = 0 === seed.length - 1 ? [0, 0] : seed, - l = seed$0.length - 1, - i$0 = 0; - for(;;){ - caml_check_bound(s[1], i$0)[1 + i$0] = i$0; - var _q_ = i$0 + 1 | 0; - if(54 !== i$0){var i$0 = _q_; continue;} - var - accu = [0, cst_x], - _n_ = 54 + caml_call2(Stdlib_Int[11], 55, l) | 0, - _m_ = 0; - if(_n_ >= 0){ - var i = _m_; - for(;;){ - var - j = i % 55 | 0, - k = caml_mod(i, l), - x = caml_check_bound(seed$0, k)[1 + k], - accu$0 = accu[1], - _g_ = caml_call1(Stdlib_Int[12], x), - _h_ = caml_call2(Stdlib[28], accu$0, _g_); - accu[1] = caml_call1(Stdlib_Digest[3], _h_); - var - d = accu[1], - _i_ = caml_string_get(d, 3) << 24, - _j_ = caml_string_get(d, 2) << 16, - _k_ = caml_string_get(d, 1) << 8, - _l_ = ((caml_string_get(d, 0) + _k_ | 0) + _j_ | 0) + _i_ | 0, - _o_ = (caml_check_bound(s[1], j)[1 + j] ^ _l_) & 1073741823; - caml_check_bound(s[1], j)[1 + j] = _o_; - var _p_ = i + 1 | 0; - if(_n_ !== i){var i = _p_; continue;} - break; - } - } - s[2] = 0; - return 0; - } - } - function make(seed){ - var result = new_state(0); - full_init(result, seed); - return result; - } - function make_self_init(param){return make(caml_sys_random_seed(0));} - function copy(s){ - var result = new_state(0); - assign(result, s); - return result; - } - function bits(s){ - s[2] = (s[2] + 1 | 0) % 55 | 0; - var - _d_ = s[2], - curval = caml_check_bound(s[1], _d_)[1 + _d_], - _e_ = (s[2] + 24 | 0) % 55 | 0, - newval = - caml_check_bound(s[1], _e_)[1 + _e_] - + (curval ^ (curval >>> 25 | 0) & 31) - | 0, - newval30 = newval & 1073741823, - _f_ = s[2]; - caml_check_bound(s[1], _f_)[1 + _f_] = newval30; - return newval30; - } - function intaux(s, n){ - for(;;){ - var r = bits(s), v = caml_mod(r, n); - if(((1073741823 - n | 0) + 1 | 0) < (r - v | 0)) continue; - return v; - } - } - function int$0(s, bound){ - if(1073741823 >= bound && 0 < bound) return intaux(s, bound); - return caml_call1(Stdlib[1], cst_Random_int); - } - function full_int(s, bound){ - if(0 >= bound) return caml_call1(Stdlib[1], cst_Random_full_int); - if(1073741823 >= bound) return intaux(s, bound); - for(;;){ - var b1 = bits(s), b2 = bits(s), max_int_32 = 2147483647; - if(bound <= 2147483647) - var - bpos = (b2 & 1073725440) << 1 | b1 >>> 15 | 0, - max_int = max_int_32, - r = bpos; - else - var - b3 = bits(s), - r$0 = ((b3 & 1073741312) << 12 | b2 >>> 9 | 0) << 20 | b1 >>> 10 | 0, - max_int$0 = Stdlib[19], - max_int = max_int$0, - r = r$0; - var v = caml_mod(r, bound); - if(((max_int - bound | 0) + 1 | 0) < (r - v | 0)) continue; - return v; - } - } - function int32(s, bound){ - if(caml_lessequal(bound, 0)) - return caml_call1(Stdlib[1], cst_Random_int32); - for(;;){ - var - b1 = bits(s), - b2 = (bits(s) & 1) << 30, - r = b1 | b2, - v = caml_mod(r, bound); - if(caml_greaterthan(r - v | 0, (Stdlib_Int32[9] - bound | 0) + 1 | 0)) - continue; - return v; - } - } - function int64(s, bound){ - if(caml_lessequal(bound, _b_)) - return caml_call1(Stdlib[1], cst_Random_int64); - for(;;){ - var - b1 = caml_int64_of_int32(bits(s)), - b2 = caml_int64_shift_left(caml_int64_of_int32(bits(s)), 30), - b3 = caml_int64_shift_left(caml_int64_of_int32(bits(s) & 7), 60), - r = caml_int64_or(b1, caml_int64_or(b2, b3)), - v = runtime.caml_int64_mod(r, bound); - if - (caml_greaterthan - (caml_int64_sub(r, v), - runtime.caml_int64_add(caml_int64_sub(Stdlib_Int64[9], bound), _a_))) - continue; - return v; - } - } - var - nativeint = - 32 === Stdlib_Nativeint[9] - ? function(s, bound){return int32(s, bound);} - : function - (s, bound){ - return caml_int64_to_int32(int64(s, caml_int64_of_int32(bound))); - }; - function float$0(s, bound){ - var r1 = bits(s), r2 = bits(s); - return (r1 / 1073741824. + r2) / 1073741824. * bound; - } - function bool(s){return 0 === (bits(s) & 1) ? 1 : 0;} - function bits32(s){ - var b1 = bits(s) >>> 14 | 0, b2 = bits(s) >>> 14 | 0; - return b1 | b2 << 16; - } - function bits64(s){ - var - b1 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 9), - b2 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 9), - b3 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 8); - return caml_int64_or - (b1, - caml_int64_or - (caml_int64_shift_left(b2, 21), caml_int64_shift_left(b3, 42))); - } - var - nativebits = - 32 === Stdlib_Nativeint[9] - ? function(s){return bits32(s);} - : function(s){return caml_int64_to_int32(bits64(s));}, - default$0 = [0, _c_.slice(), 0]; - function bits$0(param){return bits(default$0);} - function int$1(bound){return int$0(default$0, bound);} - function full_int$0(bound){return full_int(default$0, bound);} - function int32$0(bound){return int32(default$0, bound);} - function nativeint$0(bound){return nativeint(default$0, bound);} - function int64$0(bound){return int64(default$0, bound);} - function float$1(scale){return float$0(default$0, scale);} - function bool$0(param){return bool(default$0);} - function bits32$0(param){return bits32(default$0);} - function bits64$0(param){return bits64(default$0);} - function nativebits$0(param){return nativebits(default$0);} - function full_init$0(seed){return full_init(default$0, seed);} - function init(seed){return full_init(default$0, [0, seed]);} - function self_init(param){return full_init$0(caml_sys_random_seed(0));} - function get_state(param){return copy(default$0);} - function set_state(s){return assign(default$0, s);} - var - Stdlib_Random = + 801085050], + _ci_=[0,0], + _co_=[3,0,3], + _cn_=[1,caml_string_of_jsbytes("max_indent < 2")], + _cl_=[1,caml_string_of_jsbytes("margin <= max_indent")], + _cm_=[0,0], + _ck_=[0,caml_string_of_jsbytes("")], + _cj_=[0,caml_string_of_jsbytes(""),0,caml_string_of_jsbytes("")], + _cE_=[0,91], + _cD_=[0,123], + _cF_=[0,caml_string_of_jsbytes("scanf.ml"),1453,13], + _cG_=[0,[3,0,[10,0]],caml_string_of_jsbytes("%S%!")], + _cC_=[0,37,caml_string_of_jsbytes("")], + _cB_= [0, + [11, + caml_string_of_jsbytes("scanf: bad input at char number "), + [4,3,0,0,[11,caml_string_of_jsbytes(": "),[2,0,0]]]], + caml_string_of_jsbytes("scanf: bad input at char number %i: %s")], + _cA_= + [0, + [11, + caml_string_of_jsbytes("the character "), + [1,[11,caml_string_of_jsbytes(" cannot start a boolean"),0]]], + caml_string_of_jsbytes("the character %C cannot start a boolean")], + _cz_= + [0, + [11, + caml_string_of_jsbytes("bad character hexadecimal encoding \\"), + [0,[0,0]]], + caml_string_of_jsbytes("bad character hexadecimal encoding \\%c%c")], + _cy_= + [0, + [11, + caml_string_of_jsbytes("bad character decimal encoding \\"), + [0,[0,[0,0]]]], + caml_string_of_jsbytes("bad character decimal encoding \\%c%c%c")], + _cx_= + [0, + [11, + caml_string_of_jsbytes("character "), + [1, + [11, + caml_string_of_jsbytes(" is not a valid "), + [2,0,[11,caml_string_of_jsbytes(" digit"),0]]]]], + caml_string_of_jsbytes("character %C is not a valid %s digit")], + _cw_= + [0, + [11, + caml_string_of_jsbytes("character "), + [1,[11,caml_string_of_jsbytes(" is not a decimal digit"),0]]], + caml_string_of_jsbytes("character %C is not a decimal digit")], + _cv_=[0,caml_string_of_jsbytes("scanf.ml"),555,9], + _cu_= + [0, + [11,caml_string_of_jsbytes("invalid boolean '"),[2,0,[12,39,0]]], + caml_string_of_jsbytes("invalid boolean '%s'")], + _ct_= + [0, + [11, + caml_string_of_jsbytes("looking for "), + [1,[11,caml_string_of_jsbytes(", found "),[1,0]]]], + caml_string_of_jsbytes("looking for %C, found %C")], + _cs_= + [0, + [11, + caml_string_of_jsbytes("scanning of "), + [2, + 0, + [11, + caml_string_of_jsbytes + (" failed: premature end of file occurred before end of token"), + 0]]], + caml_string_of_jsbytes + ("scanning of %s failed: premature end of file occurred before end of token")], + _cr_= + [0, + [11, + caml_string_of_jsbytes("scanning of "), + [2, + 0, + [11, + caml_string_of_jsbytes + (" failed: the specified length was too short for token"), + 0]]], + caml_string_of_jsbytes + ("scanning of %s failed: the specified length was too short for token")], + _cq_= + [0, + [11,caml_string_of_jsbytes("illegal escape character "),[1,0]], + caml_string_of_jsbytes("illegal escape character %C")], + _cN_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),439,17], + _cM_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),421,13], + _cL_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),418,13], + _cK_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),415,13], + _cJ_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),412,13], + _cI_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),409,13], + _cH_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),281,50], + _cO_=[0,caml_string_of_jsbytes("camlinternalMod.ml"),72,5], + _cP_=[0,caml_string_of_jsbytes("camlinternalMod.ml"),81,2], + _cS_=[0,0], + _cR_=[0,0], + _cQ_=[0,0], + _cX_=[0,7,0], + _cW_=[0,1,[0,3,[0,5,0]]], + _cV_=[0,[2,0,[4,6,[0,2,6],0,[2,0,0]]],caml_string_of_jsbytes("%s%06x%s")], + _cU_=[0,caml_string_of_jsbytes('"'),0], + _cY_=[254,0.,0.], + _cZ_=[0,0]; + function erase_rel(param) + {if(typeof param === "number")return 0; + switch(param[0]) + {case 0:var rest=param[1];return [0,erase_rel(rest)]; + case 1:var rest$0=param[1];return [1,erase_rel(rest$0)]; + case 2:var rest$1=param[1];return [2,erase_rel(rest$1)]; + case 3:var rest$2=param[1];return [3,erase_rel(rest$2)]; + case 4:var rest$3=param[1];return [4,erase_rel(rest$3)]; + case 5:var rest$4=param[1];return [5,erase_rel(rest$4)]; + case 6:var rest$5=param[1];return [6,erase_rel(rest$5)]; + case 7:var rest$6=param[1];return [7,erase_rel(rest$6)]; + case 8: + var rest$7=param[2],ty=param[1];return [8,ty,erase_rel(rest$7)]; + case 9: + var rest$8=param[3],ty1=param[1]; + return [9,ty1,ty1,erase_rel(rest$8)]; + case 10:var rest$9=param[1];return [10,erase_rel(rest$9)]; + case 11:var rest$10=param[1];return [11,erase_rel(rest$10)]; + case 12:var rest$11=param[1];return [12,erase_rel(rest$11)]; + case 13:var rest$12=param[1];return [13,erase_rel(rest$12)]; + default:var rest$13=param[1];return [14,erase_rel(rest$13)]}} + function concat_fmtty(fmtty1,fmtty2) + {if(typeof fmtty1 === "number")return fmtty2; + switch(fmtty1[0]) + {case 0:var rest=fmtty1[1];return [0,concat_fmtty(rest,fmtty2)]; + case 1:var rest$0=fmtty1[1];return [1,concat_fmtty(rest$0,fmtty2)]; + case 2:var rest$1=fmtty1[1];return [2,concat_fmtty(rest$1,fmtty2)]; + case 3:var rest$2=fmtty1[1];return [3,concat_fmtty(rest$2,fmtty2)]; + case 4:var rest$3=fmtty1[1];return [4,concat_fmtty(rest$3,fmtty2)]; + case 5:var rest$4=fmtty1[1];return [5,concat_fmtty(rest$4,fmtty2)]; + case 6:var rest$5=fmtty1[1];return [6,concat_fmtty(rest$5,fmtty2)]; + case 7:var rest$6=fmtty1[1];return [7,concat_fmtty(rest$6,fmtty2)]; + case 8: + var rest$7=fmtty1[2],ty=fmtty1[1]; + return [8,ty,concat_fmtty(rest$7,fmtty2)]; + case 9: + var rest$8=fmtty1[3],ty2=fmtty1[2],ty1=fmtty1[1]; + return [9,ty1,ty2,concat_fmtty(rest$8,fmtty2)]; + case 10:var rest$9=fmtty1[1];return [10,concat_fmtty(rest$9,fmtty2)]; + case 11: + var rest$10=fmtty1[1];return [11,concat_fmtty(rest$10,fmtty2)]; + case 12: + var rest$11=fmtty1[1];return [12,concat_fmtty(rest$11,fmtty2)]; + case 13: + var rest$12=fmtty1[1];return [13,concat_fmtty(rest$12,fmtty2)]; + default:var rest$13=fmtty1[1];return [14,concat_fmtty(rest$13,fmtty2)]}} + function concat_fmt(fmt1,fmt2) + {if(typeof fmt1 === "number")return fmt2; + switch(fmt1[0]) + {case 0:var rest=fmt1[1];return [0,concat_fmt(rest,fmt2)]; + case 1:var rest$0=fmt1[1];return [1,concat_fmt(rest$0,fmt2)]; + case 2: + var rest$1=fmt1[2],pad=fmt1[1]; + return [2,pad,concat_fmt(rest$1,fmt2)]; + case 3: + var rest$2=fmt1[2],pad$0=fmt1[1]; + return [3,pad$0,concat_fmt(rest$2,fmt2)]; + case 4: + var rest$3=fmt1[4],prec=fmt1[3],pad$1=fmt1[2],iconv=fmt1[1]; + return [4,iconv,pad$1,prec,concat_fmt(rest$3,fmt2)]; + case 5: + var rest$4=fmt1[4],prec$0=fmt1[3],pad$2=fmt1[2],iconv$0=fmt1[1]; + return [5,iconv$0,pad$2,prec$0,concat_fmt(rest$4,fmt2)]; + case 6: + var rest$5=fmt1[4],prec$1=fmt1[3],pad$3=fmt1[2],iconv$1=fmt1[1]; + return [6,iconv$1,pad$3,prec$1,concat_fmt(rest$5,fmt2)]; + case 7: + var rest$6=fmt1[4],prec$2=fmt1[3],pad$4=fmt1[2],iconv$2=fmt1[1]; + return [7,iconv$2,pad$4,prec$2,concat_fmt(rest$6,fmt2)]; + case 8: + var rest$7=fmt1[4],prec$3=fmt1[3],pad$5=fmt1[2],fconv=fmt1[1]; + return [8,fconv,pad$5,prec$3,concat_fmt(rest$7,fmt2)]; + case 9: + var rest$8=fmt1[2],pad$6=fmt1[1]; + return [9,pad$6,concat_fmt(rest$8,fmt2)]; + case 10:var rest$9=fmt1[1];return [10,concat_fmt(rest$9,fmt2)]; + case 11: + var rest$10=fmt1[2],str=fmt1[1]; + return [11,str,concat_fmt(rest$10,fmt2)]; + case 12: + var rest$11=fmt1[2],chr=fmt1[1]; + return [12,chr,concat_fmt(rest$11,fmt2)]; + case 13: + var rest$12=fmt1[3],fmtty=fmt1[2],pad$7=fmt1[1]; + return [13,pad$7,fmtty,concat_fmt(rest$12,fmt2)]; + case 14: + var rest$13=fmt1[3],fmtty$0=fmt1[2],pad$8=fmt1[1]; + return [14,pad$8,fmtty$0,concat_fmt(rest$13,fmt2)]; + case 15:var rest$14=fmt1[1];return [15,concat_fmt(rest$14,fmt2)]; + case 16:var rest$15=fmt1[1];return [16,concat_fmt(rest$15,fmt2)]; + case 17: + var rest$16=fmt1[2],fmting_lit=fmt1[1]; + return [17,fmting_lit,concat_fmt(rest$16,fmt2)]; + case 18: + var rest$17=fmt1[2],fmting_gen=fmt1[1]; + return [18,fmting_gen,concat_fmt(rest$17,fmt2)]; + case 19:var rest$18=fmt1[1];return [19,concat_fmt(rest$18,fmt2)]; + case 20: + var rest$19=fmt1[3],char_set=fmt1[2],width_opt=fmt1[1]; + return [20,width_opt,char_set,concat_fmt(rest$19,fmt2)]; + case 21: + var rest$20=fmt1[2],counter=fmt1[1]; + return [21,counter,concat_fmt(rest$20,fmt2)]; + case 22:var rest$21=fmt1[1];return [22,concat_fmt(rest$21,fmt2)]; + case 23: + var rest$22=fmt1[2],ign=fmt1[1]; + return [23,ign,concat_fmt(rest$22,fmt2)]; + default: + var rest$23=fmt1[3],f=fmt1[2],arity=fmt1[1]; + return [24,arity,f,concat_fmt(rest$23,fmt2)]}} + var CamlinternalFormatBasics=[0,concat_fmtty,erase_rel,concat_fmt]; + caml_register_global + (761,CamlinternalFormatBasics,"CamlinternalFormatBasics"); + function make(v){return [0,v]} + function get(r){return r[1]} + function set(r,v){r[1] = v;return 0} + function exchange(r,v){var cur=r[1];r[1] = v;return cur} + function compare_and_set(r,seen,v) + {var cur=r[1];return cur === seen?(r[1] = v,1):0} + function fetch_and_add(r,n){var cur=r[1];r[1] = cur + n | 0;return cur} + function incr(r){fetch_and_add(r,1);return 0} + function decr(r){fetch_and_add(r,-1);return 0} + var + include= + [0,make,get,set,exchange,compare_and_set,fetch_and_add,incr,decr]; + caml_register_global(762,include,"CamlinternalAtomic"); + function failwith(s){throw [0,Failure,s]} + function invalid_arg(s){throw [0,Invalid_argument,s]} + var Exit=[248,cst_Stdlib_Exit,caml_fresh_oo_id(0)]; + function min(x,y){return caml_lessequal(x,y)?x:y} + function max(x,y){return caml_greaterequal(x,y)?x:y} + function abs(x){return 0 <= x?x:- x | 0} + function lnot(x){return x ^ -1} + var + infinity=caml_int64_float_of_bits(_a_), + neg_infinity=caml_int64_float_of_bits(_b_), + nan=caml_int64_float_of_bits(_c_), + max_float=caml_int64_float_of_bits(_d_), + min_float=caml_int64_float_of_bits(_e_), + epsilon=caml_int64_float_of_bits(_f_), + max_int=2147483647, + min_int=-2147483648; + function cat(s1,s2) + {var + l1=caml_ml_string_length(s1), + l2=caml_ml_string_length(s2), + s=caml_create_bytes(l1 + l2 | 0); + caml_blit_string(s1,0,s,0,l1); + caml_blit_string(s2,0,s,l1,l2); + return caml_string_of_bytes(s)} + function char_of_int(n) + {if(0 <= n && 255 >= n)return n;return invalid_arg(cst_char_of_int)} + function string_of_bool(b){return b?cst_true:cst_false} + function bool_of_string(param) + {return caml_string_notequal(param,cst_false$0) + ?caml_string_notequal(param,cst_true$0) + ?invalid_arg(cst_bool_of_string) + :1 + :0} + function bool_of_string_opt(param) + {return caml_string_notequal(param,cst_false$1) + ?caml_string_notequal(param,cst_true$1)?0:_g_ + :_h_} + function string_of_int(n){return caml_string_of_jsbytes("" + n)} + function int_of_string_opt(s) + {try + {var _Et_=[0,caml_int_of_string(s)];return _Et_} + catch(_Eu_) + {_Eu_ = caml_wrap_exception(_Eu_); + if(_Eu_[1] === Failure)return 0; + throw _Eu_}} + function valid_float_lexem(s) + {var l=caml_ml_string_length(s),i=0; + for(;;) + {if(l <= i)return cat(s,cst); + var match=caml_string_get(s,i),switch$0=0; + if(48 <= match) + {if(58 > match)switch$0 = 1} + else + if(45 === match)switch$0 = 1; + if(! switch$0)return s; + var i$0=i + 1 | 0,i=i$0}} + function to_string(f) + {return valid_float_lexem(caml_format_float(cst_12g,f))} + function of_string_opt(s) + {try + {var _Er_=[0,caml_float_of_string(s)];return _Er_} + catch(_Es_) + {_Es_ = caml_wrap_exception(_Es_); + if(_Es_[1] === Failure)return 0; + throw _Es_}} + function append(l1,l2) + {if(! l1)return l2;var tl=l1[2],hd=l1[1];return [0,hd,append(tl,l2)]} + var + stdin=caml_ml_open_descriptor_in(0), + stdout=caml_ml_open_descriptor_out(1), + stderr=caml_ml_open_descriptor_out(2); + function open_gen(mode,perm,name) + {var c=caml_ml_open_descriptor_out(caml_sys_open(name,mode,perm)); + caml_ml_set_channel_name(c,name); + return c} + function open_text(name){return open_gen(_i_,438,name)} + function open_bin(name){return open_gen(_j_,438,name)} + function flush_all(param) + {function iter(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],a=param$0[1]; + try + {caml_ml_flush(a)} + catch(_Eq_) + {_Eq_ = caml_wrap_exception(_Eq_); + if(_Eq_[1] !== Sys_error)throw _Eq_} + var param$0=l}} + return iter(runtime.caml_ml_out_channels_list(0))} + function output_bytes(oc,s) + {return caml_ml_output_bytes(oc,s,0,caml_ml_bytes_length(s))} + function output_string(oc,s) + {return caml_ml_output(oc,s,0,caml_ml_string_length(s))} + function output(oc,s,ofs,len) + {if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return caml_ml_output_bytes(oc,s,ofs,len); + return invalid_arg(cst_output)} + function output_substring(oc,s,ofs,len) + {if(0 <= ofs && 0 <= len && (caml_ml_string_length(s) - len | 0) >= ofs) + return caml_ml_output(oc,s,ofs,len); + return invalid_arg(cst_output_substring)} + function output_value(chan,v){return caml_output_value(chan,v,0)} + function close(oc){caml_ml_flush(oc);return caml_ml_close_channel(oc)} + function close_noerr(oc) + {try {caml_ml_flush(oc)}catch(_Ep_){} + try + {var _En_=caml_ml_close_channel(oc);return _En_} + catch(_Eo_){return 0}} + function open_gen$0(mode,perm,name) + {var c=caml_ml_open_descriptor_in(caml_sys_open(name,mode,perm)); + caml_ml_set_channel_name(c,name); + return c} + function open_text$0(name){return open_gen$0(_k_,0,name)} + function open_bin$0(name){return open_gen$0(_l_,0,name)} + function input(ic,s,ofs,len) + {if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return caml_ml_input(ic,s,ofs,len); + return invalid_arg(cst_input)} + function unsafe_really_input(ic,s,ofs,len) + {var ofs$0=ofs,len$0=len; + for(;;) + {if(0 >= len$0)return 0; + var r=caml_ml_input(ic,s,ofs$0,len$0); + if(0 === r)throw End_of_file; + var len$1=len$0 - r | 0,ofs$1=ofs$0 + r | 0,ofs$0=ofs$1,len$0=len$1}} + function really_input(ic,s,ofs,len) + {if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return unsafe_really_input(ic,s,ofs,len); + return invalid_arg(cst_really_input)} + function really_input_string(ic,len) + {var s=caml_create_bytes(len); + really_input(ic,s,0,len); + return caml_string_of_bytes(s)} + function input_line(chan) + {function build_result(buf,pos,param) + {var pos$0=pos,param$0=param; + for(;;) + {if(! param$0)return buf; + var tl=param$0[2],hd=param$0[1],len=caml_ml_bytes_length(hd); + caml_blit_bytes(hd,0,buf,pos$0 - len | 0,len); + var pos$1=pos$0 - len | 0,pos$0=pos$1,param$0=tl}} + var accu=0,len=0; + for(;;) + {var n=runtime.caml_ml_input_scan_line(chan); + if(0 === n) + {if(! accu)throw End_of_file; + var _Em_=build_result(caml_create_bytes(len),len,accu)} + else + {if(0 >= n) + {var beg=caml_create_bytes(- n | 0); + caml_ml_input(chan,beg,0,- n | 0); + var len$1=len - n | 0,accu$0=[0,beg,accu],accu=accu$0,len=len$1; + continue} + var res=caml_create_bytes(n - 1 | 0); + caml_ml_input(chan,res,0,n - 1 | 0); + caml_ml_input_char(chan); + if(accu) + var + len$0=(len + n | 0) - 1 | 0, + _Em_=build_result(caml_create_bytes(len$0),len$0,[0,res,accu]); + else + var _Em_=res} + return caml_string_of_bytes(_Em_)}} + function close_noerr$0(ic) + {try + {var _Ek_=caml_ml_close_channel(ic);return _Ek_} + catch(_El_){return 0}} + function print_char(c){return caml_ml_output_char(stdout,c)} + function print_string(s){return output_string(stdout,s)} + function print_bytes(s){return output_bytes(stdout,s)} + function print_int(i) + {return output_string(stdout,caml_string_of_jsbytes("" + i))} + function print_float(f){return output_string(stdout,to_string(f))} + function print_endline(s) + {output_string(stdout,s); + caml_ml_output_char(stdout,10); + return caml_ml_flush(stdout)} + function print_newline(param) + {caml_ml_output_char(stdout,10);return caml_ml_flush(stdout)} + function prerr_char(c){return caml_ml_output_char(stderr,c)} + function prerr_string(s){return output_string(stderr,s)} + function prerr_bytes(s){return output_bytes(stderr,s)} + function prerr_int(i) + {return output_string(stderr,caml_string_of_jsbytes("" + i))} + function prerr_float(f){return output_string(stderr,to_string(f))} + function prerr_endline(s) + {output_string(stderr,s); + caml_ml_output_char(stderr,10); + return caml_ml_flush(stderr)} + function prerr_newline(param) + {caml_ml_output_char(stderr,10);return caml_ml_flush(stderr)} + function read_line(param){caml_ml_flush(stdout);return input_line(stdin)} + function read_int(param){return caml_int_of_string(read_line(0))} + function read_int_opt(param){return int_of_string_opt(read_line(0))} + function read_float(param){return caml_float_of_string(read_line(0))} + function read_float_opt(param){return of_string_opt(read_line(0))} + function string_of_format(param){var str=param[2];return str} + function symbol(param,_Ei_) + {var + str2=_Ei_[2], + fmt2=_Ei_[1], + str1=param[2], + fmt1=param[1], + _Ej_=cat(str1,cat(cst$0,str2)); + return [0,concat_fmt(fmt1,fmt2),_Ej_]} + var exit_function=[0,flush_all]; + function at_exit(f) + {for(;;) + {var + f_yet_to_run=[0,1], + old_exit=exit_function[1], + new_exit$0= + function(f_yet_to_run,old_exit) + {function new_exit(param) + {if(compare_and_set(f_yet_to_run,1,0))caml_call1(f,0); + return caml_call1(old_exit,0)} + return new_exit}, + new_exit=new_exit$0(f_yet_to_run,old_exit), + success=compare_and_set(exit_function,old_exit,new_exit), + _Eh_=1 - success; + if(_Eh_)continue; + return _Eh_}} + function do_at_exit(param){return caml_call1(exit_function[1],0)} + function exit(retcode) + {do_at_exit(0);return runtime.caml_sys_exit(retcode)} + caml_register_named_value + (caml_string_of_jsbytes("Pervasives.do_at_exit"),do_at_exit); + var + _m_= + [0, + runtime.caml_ml_seek_out_64, + runtime.caml_ml_pos_out_64, + caml_ml_channel_size_64, + runtime.caml_ml_seek_in_64, + runtime.caml_ml_pos_in_64, + caml_ml_channel_size_64], + set_binary_mode=caml_ml_set_binary_mode, + close$0=caml_ml_close_channel, + in_channel_length=caml_ml_channel_size, + pos_in=caml_ml_pos_in, + seek_in=runtime.caml_ml_seek_in, + input_value=caml_input_value, + input_binary_int=runtime.caml_ml_input_int, + input_byte=caml_ml_input_char, + input_char=caml_ml_input_char, + set_binary_mode$0=caml_ml_set_binary_mode, + out_channel_length=caml_ml_channel_size, + pos_out=runtime.caml_ml_pos_out, + seek_out=runtime.caml_ml_seek_out, + output_binary_int=runtime.caml_ml_output_int, + output_byte=caml_ml_output_char, + output_char=caml_ml_output_char, + flush=caml_ml_flush, + Stdlib= + [0, + invalid_arg, + failwith, + Exit, + Match_failure, + Assert_failure, + Invalid_argument, + Failure, + Not_found, + Out_of_memory, + Stack_overflow, + Sys_error, + End_of_file, + Division_by_zero, + Sys_blocked_io, + Undefined_recursive_module, + min, + max, + abs, + max_int, + min_int, + lnot, + infinity, + neg_infinity, + nan, + max_float, + min_float, + epsilon, + cat, + char_of_int, + string_of_bool, + bool_of_string_opt, + bool_of_string, + string_of_int, + int_of_string_opt, + to_string, + of_string_opt, + append, + stdin, + stdout, + stderr, + print_char, + print_string, + print_bytes, + print_int, + print_float, + print_endline, + print_newline, + prerr_char, + prerr_string, + prerr_bytes, + prerr_int, + prerr_float, + prerr_endline, + prerr_newline, + read_line, + read_int_opt, + read_int, + read_float_opt, + read_float, + open_text, + open_bin, + open_gen, + flush, + flush_all, + output_char, + output_string, + output_bytes, + output, + output_substring, + output_byte, + output_binary_int, + output_value, + seek_out, + pos_out, + out_channel_length, + close, + close_noerr, + set_binary_mode$0, + open_text$0, + open_bin$0, + open_gen$0, + input_char, + input_line, + input, + really_input, + really_input_string, + input_byte, + input_binary_int, + input_value, + seek_in, + pos_in, + in_channel_length, + close$0, + close_noerr$0, + set_binary_mode, + _m_, + string_of_format, + symbol, + exit, + at_exit, + valid_float_lexem, + unsafe_really_input, + do_at_exit]; + caml_register_global(775,Stdlib,"Stdlib"); + var + Exit$0=[248,cst_Stdlib_Pervasives_Exit,caml_fresh_oo_id(0)], + Stdlib_Pervasives= + [0, + invalid_arg, + failwith, + Exit$0, + min, + max, + abs, + max_int, + min_int, + lnot, + infinity, + neg_infinity, + nan, + max_float, + min_float, + epsilon, + cat, + char_of_int, + string_of_bool, + bool_of_string, + bool_of_string_opt, + string_of_int, + int_of_string_opt, + to_string, + of_string_opt, + append, + stdin, + stdout, + stderr, + print_char, + print_string, + print_bytes, + print_int, + print_float, + print_endline, + print_newline, + prerr_char, + prerr_string, + prerr_bytes, + prerr_int, + prerr_float, + prerr_endline, + prerr_newline, + read_line, + read_int, + read_int_opt, + read_float, + read_float_opt, + open_text, + open_bin, + open_gen, + flush, + flush_all, + output_char, + output_string, + output_bytes, + output, + output_substring, + output_byte, + output_binary_int, + output_value, + seek_out, + pos_out, + out_channel_length, + close, + close_noerr, + set_binary_mode$0, + open_text$0, + open_bin$0, + open_gen$0, + input_char, + input_line, + input, + really_input, + really_input_string, + input_byte, + input_binary_int, + input_value, + seek_in, + pos_in, + in_channel_length, + close$0, + close_noerr$0, + set_binary_mode, + string_of_format, + symbol, + exit, + at_exit, + valid_float_lexem, + do_at_exit]; + caml_register_global(776,Stdlib_Pervasives,"Stdlib__Pervasives"); + function left(v){return [0,v]} + function right(v){return [1,v]} + function is_left(param){return 0 === param[0]?1:0} + function is_right(param){return 0 === param[0]?0:1} + function find_left(param) + {if(0 !== param[0])return 0;var v=param[1];return [0,v]} + function find_right(param) + {if(0 === param[0])return 0;var v=param[1];return [0,v]} + function map_left(f,e) + {if(0 !== e[0])return e;var v=e[1];return [0,caml_call1(f,v)]} + function map_right(f,e) + {if(0 === e[0])return e;var v=e[1];return [1,caml_call1(f,v)]} + function map(left,right,param) + {if(0 === param[0]){var v=param[1];return [0,caml_call1(left,v)]} + var v$0=param[1]; + return [1,caml_call1(right,v$0)]} + function fold(left,right,param) + {if(0 === param[0]){var v=param[1];return caml_call1(left,v)} + var v$0=param[1]; + return caml_call1(right,v$0)} + function equal(left,right,e1,e2) + {if(0 === e1[0]) + {var _Ef_=e1[1]; + if(0 === e2[0]){var v2=e2[1];return caml_call2(left,_Ef_,v2)}} + else + {var _Eg_=e1[1]; + if(0 !== e2[0]){var v2$0=e2[1];return caml_call2(right,_Eg_,v2$0)}} + return 0} + function compare(left,right,e1,e2) + {if(0 === e1[0]) + {var _Ed_=e1[1]; + if(0 !== e2[0])return -1; + var v2=e2[1]; + return caml_call2(left,_Ed_,v2)} + var _Ee_=e1[1]; + if(0 === e2[0])return 1; + var v2$0=e2[1]; + return caml_call2(right,_Ee_,v2$0)} + var + Stdlib_Either= + [0, + left, + right, + is_left, + is_right, + find_left, + find_right, + map_left, + map_right, + map, + fold, + fold, + fold, + equal, + compare]; + caml_register_global(777,Stdlib_Either,"Stdlib__Either"); + var + executable_name=runtime.caml_sys_executable_name(0), + match=runtime.caml_sys_get_config(0), + os_type=match[1], + match$0=[0,caml_string_of_jsbytes("js_of_ocaml")], + unix=runtime.caml_sys_const_ostype_unix(0), + win32=runtime.caml_sys_const_ostype_win32(0), + cygwin=runtime.caml_sys_const_ostype_cygwin(0), + max_array_length=runtime.caml_sys_const_max_wosize(0), + max_floatarray_length=max_array_length / 2 | 0, + max_string_length=(4 * max_array_length | 0) - 1 | 0, + big_endian=0, + match$1=32, + int_size=32; + function getenv_opt(s) + {try + {var _Eb_=[0,caml_sys_getenv(s)];return _Eb_} + catch(_Ec_) + {_Ec_ = caml_wrap_exception(_Ec_); + if(_Ec_ === Not_found)return 0; + throw _Ec_}} + var interactive=[0,0]; + function set_signal(sig_num,sig_beh){return 0} + var + Break=[248,cst_Stdlib_Sys_Break,caml_fresh_oo_id(0)], + sigabrt=-1, + sigalrm=-2, + sigfpe=-3, + sighup=-4, + sigill=-5, + sigint=-6, + sigkill=-7, + sigpipe=-8, + sigquit=-9, + sigsegv=-10, + sigterm=-11, + sigusr1=-12, + sigusr2=-13, + sigchld=-14, + sigcont=-15, + sigstop=-16, + sigtstp=-17, + sigttin=-18, + sigttou=-19, + sigvtalrm=-20, + sigprof=-21, + sigbus=-22, + sigpoll=-23, + sigsys=-24, + sigtrap=-25, + sigurg=-26, + sigxcpu=-27, + sigxfsz=-28; + function catch_break(on){return on?0:0} + var development_version=0; + function Make(_Ea_,_D$_){return [0,1]} + var + Immediate64=[0,Make], + Stdlib_Sys= + [0, + executable_name, + getenv_opt, + interactive, + os_type, + match$0, + unix, + win32, + cygwin, + match$1, + int_size, + big_endian, + max_string_length, + max_array_length, + max_floatarray_length, + set_signal, + sigabrt, + sigalrm, + sigfpe, + sighup, + sigill, + sigint, + sigkill, + sigpipe, + sigquit, + sigsegv, + sigterm, + sigusr1, + sigusr2, + sigchld, + sigcont, + sigstop, + sigtstp, + sigttin, + sigttou, + sigvtalrm, + sigprof, + sigbus, + sigpoll, + sigsys, + sigtrap, + sigurg, + sigxcpu, + sigxfsz, + Break, + catch_break, + ocaml_version, + development_version, + ocaml_release, + runtime.caml_ml_enable_runtime_warnings, + runtime.caml_ml_runtime_warnings_enabled, + Immediate64]; + caml_register_global(778,Stdlib_Sys,"Stdlib__Sys"); + function is_block(a){return 1 - (typeof a === "number"?1:0)} + function double_field(x,i){return caml_array_get(x,i)} + function set_double_field(x,i,v){return caml_array_set(x,i,v)} + var + first_non_constant_constructor=0, + last_non_constant_constructor_=245, + lazy_tag=246, + closure_tag=247, + object_tag=248, + infix_tag=249, + forward_tag=250, + no_scan_tag=251, + abstract_tag=251, + string_tag=252, + double_tag=253, + double_array_tag=254, + custom_tag=255, + int_tag=1000, + out_of_heap_tag=1001, + unaligned_tag=1002; + function info(obj) + {if(caml_obj_tag(obj) !== 247)throw [0,Assert_failure,_n_]; + var + info=runtime.caml_obj_raw_field(obj,1), + arity=info >> 24, + start_env=info << 8 >>> 9 | 0; + return [0,arity,start_env]} + function of_val(x) + {var switch$0=0; + if(is_block(x) && caml_obj_tag(x) !== 248 && 1 <= x.length - 1) + {var slot=x[1];switch$0 = 1} + if(! switch$0)var slot=x; + var switch$1=0; + if(is_block(slot) && caml_obj_tag(slot) === 248) + {var name=slot[1];switch$1 = 1} + if(! switch$1)var name=invalid_arg(cst_Obj_extension_constructor$0); + return caml_obj_tag(name) === 252 + ?slot + :invalid_arg(cst_Obj_extension_constructor)} + function name(slot){return slot[1]} + function id(slot){return slot[2]} + var + Extension_constructor=[0,of_val,name,id], + extension_constructor=Extension_constructor[1], + extension_name=Extension_constructor[2], + extension_id=Extension_constructor[3], + max_ephe_length=max_array_length - 2 | 0; + function create(l) + {var _D9_=0 <= l?1:0,_D__=_D9_?l <= max_ephe_length?1:0:_D9_; + if(1 - _D__)invalid_arg(cst_Obj_Ephemeron_create); + return runtime.caml_ephe_create(l)} + function length(x){return x.length - 1 - 2 | 0} + function raise_if_invalid_offset(e,o,msg) + {var _D6_=0 <= o?1:0,_D7_=_D6_?o < length(e)?1:0:_D6_,_D8_=1 - _D7_; + return _D8_?invalid_arg(msg):_D8_} + function get_key(e,o) + {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_get_key); + return caml_ephe_get_key(e,o)} + function get_key_copy(e,o) + {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_get_key_copy); + return caml_ephe_get_key_copy(e,o)} + function set_key(e,o,x) + {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_set_key); + return caml_ephe_set_key(e,o,x)} + function unset_key(e,o) + {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_unset_key); + return caml_ephe_unset_key(e,o)} + function check_key(e,o) + {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_check_key); + return caml_ephe_check_key(e,o)} + function blit_key(e1,o1,e2,o2,l) + {if + (0 + <= + l + && + 0 + <= + o1 + && + (length(e1) - l | 0) + >= + o1 + && + 0 + <= + o2 + && + (length(e2) - l | 0) + >= + o2) + {var _D4_=0 !== l?1:0,_D5_=_D4_?caml_ephe_blit_key(e1,o1,e2,o2,l):_D4_; + return _D5_} + return invalid_arg(cst_Obj_Ephemeron_blit_key)} + var + _o_= + [0, + create, + length, + get_key, + get_key_copy, + set_key, + unset_key, + check_key, + blit_key, + runtime.caml_ephe_get_data, + runtime.caml_ephe_get_data_copy, + runtime.caml_ephe_set_data, + runtime.caml_ephe_unset_data, + runtime.caml_ephe_check_data, + runtime.caml_ephe_blit_data, + max_ephe_length], + Stdlib_Obj= + [0, + is_block, + double_field, + set_double_field, + first_non_constant_constructor, + last_non_constant_constructor_, + lazy_tag, + closure_tag, + object_tag, + infix_tag, + forward_tag, + no_scan_tag, + abstract_tag, + string_tag, + double_tag, + double_array_tag, + custom_tag, + custom_tag, + int_tag, + out_of_heap_tag, + unaligned_tag, + [0,info], + Extension_constructor, + extension_constructor, + extension_name, + extension_id, + _o_]; + caml_register_global(779,Stdlib_Obj,"Stdlib__Obj"); + var Undefined=[248,cst_CamlinternalLazy_Undefined,caml_fresh_oo_id(0)]; + function raise_undefined(param){throw Undefined} + function force_lazy_block(blk) + {var closure=blk[1]; + blk[1] = raise_undefined; + try + {var result=caml_call1(closure,0); + caml_obj_make_forward(blk,result); + return result} + catch(e) + {e = caml_wrap_exception(e);blk[1] = function(param){throw e};throw e}} + function force_val_lazy_block(blk) + {var closure=blk[1]; + blk[1] = raise_undefined; + var result=caml_call1(closure,0); + caml_obj_make_forward(blk,result); + return result} + function force(lzv) + {var t=caml_obj_tag(lzv); + return t === 250?lzv[1]:t !== 246?lzv:force_lazy_block(lzv)} + function force_val(lzv) + {var t=caml_obj_tag(lzv); + return t === 250?lzv[1]:t !== 246?lzv:force_val_lazy_block(lzv)} + var + CamlinternalLazy= + [0,Undefined,force_lazy_block,force_val_lazy_block,force,force_val]; + caml_register_global(780,CamlinternalLazy,"CamlinternalLazy"); + function to_lazy(f){var x=caml_obj_block(246,1);x[1] = f;return x} + function from_val(v) + {var t=caml_obj_tag(v); + if(t !== 250 && t !== 246 && t !== 253)return v; + return runtime.caml_lazy_make_forward(v)} + function is_val(l){return caml_obj_tag(l) !== 246?1:0} + function map$0(f,x) + {return [246, + function(_D1_) + {var + _D2_=caml_obj_tag(x), + _D3_=250 === _D2_?x[1]:246 === _D2_?force_lazy_block(x):x; + return caml_call1(f,_D3_)}]} + function map_val(f,x) + {if(! is_val(x)) + return [246, + function(_DY_) + {var + _DZ_=caml_obj_tag(x), + _D0_=250 === _DZ_?x[1]:246 === _DZ_?force_lazy_block(x):x; + return caml_call1(f,_D0_)}]; + var + _DW_=caml_obj_tag(x), + _DX_=250 === _DW_?x[1]:246 === _DW_?force_lazy_block(x):x; + return from_val(caml_call1(f,_DX_))} + var + Stdlib_Lazy= + [0, + Undefined, + map$0, + is_val, + from_val, + map_val, + to_lazy, + force_val, + to_lazy, + from_val, + is_val]; + caml_register_global(781,Stdlib_Lazy,"Stdlib__Lazy"); + function empty(param){return 0} + function return$0(x,param){return [0,x,empty]} + function cons(x,next,param){return [0,x,next]} + function append$0(seq1,seq2,param) + {var match=caml_call1(seq1,0); + if(! match)return caml_call1(seq2,0); + var next=match[2],x=match[1]; + return [0,x,function(_DV_){return append$0(next,seq2,_DV_)}]} + function map$1(f,seq,param) + {var match=caml_call1(seq,0); + if(! match)return 0; + var next=match[2],x=match[1]; + function _DT_(_DU_){return map$1(f,next,_DU_)} + return [0,caml_call1(f,x),_DT_]} + function filter_map(f,seq,param) + {var seq$0=seq; + for(;;) + {var match=caml_call1(seq$0,0); + if(! match)return 0; + var next=match[2],x=match[1],match$0=caml_call1(f,x); + if(match$0) + {var y=match$0[1]; + return [0,y,function(_DS_){return filter_map(f,next,_DS_)}]} + var seq$0=next}} + function filter(f,seq,param) + {var seq$0=seq; + for(;;) + {var match=caml_call1(seq$0,0); + if(! match)return 0; + var next=match[2],x=match[1]; + if(caml_call1(f,x)) + return [0,x,function(_DR_){return filter(f,next,_DR_)}]; + var seq$0=next}} + function concat(seq,param) + {var match=caml_call1(seq,0); + if(! match)return 0; + var next=match[2],x=match[1],_DP_=0; + return append$0(x,function(_DQ_){return concat(next,_DQ_)},_DP_)} + function flat_map(f,seq,param) + {var match=caml_call1(seq,0); + if(! match)return 0; + var next=match[2],x=match[1],_DM_=0; + function _DN_(_DO_){return flat_map(f,next,_DO_)} + return append$0(caml_call1(f,x),_DN_,_DM_)} + function fold_left(f,acc,seq) + {var acc$0=acc,seq$0=seq; + for(;;) + {var match=caml_call1(seq$0,0); + if(! match)return acc$0; + var + next=match[2], + x=match[1], + acc$1=caml_call2(f,acc$0,x), + acc$0=acc$1, + seq$0=next}} + function iter(f,seq) + {var seq$0=seq; + for(;;) + {var match=caml_call1(seq$0,0); + if(! match)return 0; + var next=match[2],x=match[1]; + caml_call1(f,x); + var seq$0=next}} + function unfold(f,u,param) + {var match=caml_call1(f,u); + if(! match)return 0; + var match$0=match[1],u$0=match$0[2],x=match$0[1]; + return [0,x,function(_DL_){return unfold(f,u$0,_DL_)}]} + function is_empty(xs){var match=caml_call1(xs,0);return match?0:1} + function uncons(xs) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1]; + return [0,[0,x,xs$0]]} + function length$0(xs$1) + {var accu=0,xs=xs$1; + for(;;) + {var match=caml_call1(xs,0); + if(! match)return accu; + var xs$0=match[2],accu$0=accu + 1 | 0,accu=accu$0,xs=xs$0}} + function iteri(f,xs$1) + {var i=0,xs=xs$1; + for(;;) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1]; + caml_call2(f,i,x); + var i$0=i + 1 | 0,i=i$0,xs=xs$0}} + function fold_lefti(f,accu$1,xs$1) + {var accu=accu$1,i=0,xs=xs$1; + for(;;) + {var match=caml_call1(xs,0); + if(! match)return accu; + var + xs$0=match[2], + x=match[1], + accu$0=caml_call3(f,accu,i,x), + i$0=i + 1 | 0, + accu=accu$0, + i=i$0, + xs=xs$0}} + function for_all(p,xs) + {var xs$0=xs; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return 1; + var xs$1=match[2],x=match[1],_DK_=caml_call1(p,x); + if(! _DK_)return _DK_; + var xs$0=xs$1}} + function exists(p,xs) + {var xs$0=xs; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return 0; + var xs$1=match[2],x=match[1],_DJ_=caml_call1(p,x); + if(_DJ_)return _DJ_; + var xs$0=xs$1}} + function find(p,xs) + {var xs$0=xs; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return 0; + var xs$1=match[2],x=match[1]; + if(caml_call1(p,x))return [0,x]; + var xs$0=xs$1}} + function find_map(f,xs) + {var xs$0=xs; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return 0; + var xs$1=match[2],x=match[1],result=caml_call1(f,x); + if(result)return result; + var xs$0=xs$1}} + function iter2(f,xs,ys) + {var xs$0=xs,ys$0=ys; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return 0; + var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); + if(! match$0)return 0; + var ys$1=match$0[2],y=match$0[1]; + caml_call2(f,x,y); + var xs$0=xs$1,ys$0=ys$1}} + function fold_left2(f,accu,xs,ys) + {var accu$0=accu,xs$0=xs,ys$0=ys; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return accu$0; + var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); + if(! match$0)return accu$0; + var + ys$1=match$0[2], + y=match$0[1], + accu$1=caml_call3(f,accu$0,x,y), + accu$0=accu$1, + xs$0=xs$1, + ys$0=ys$1}} + function for_all2(f,xs,ys) + {var xs$0=xs,ys$0=ys; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return 1; + var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); + if(! match$0)return 1; + var ys$1=match$0[2],y=match$0[1],_DI_=caml_call2(f,x,y); + if(! _DI_)return _DI_; + var xs$0=xs$1,ys$0=ys$1}} + function exists2(f,xs,ys) + {var xs$0=xs,ys$0=ys; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return 0; + var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); + if(! match$0)return 0; + var ys$1=match$0[2],y=match$0[1],_DH_=caml_call2(f,x,y); + if(_DH_)return _DH_; + var xs$0=xs$1,ys$0=ys$1}} + function equal$0(eq,xs,ys) + {var xs$0=xs,ys$0=ys; + for(;;) + {var match=caml_call1(xs$0,0),match$0=caml_call1(ys$0,0); + if(match) + {if(match$0) + {var + ys$1=match$0[2], + y=match$0[1], + xs$1=match[2], + x=match[1], + _DG_=caml_call2(eq,x,y); + if(! _DG_)return _DG_; + var xs$0=xs$1,ys$0=ys$1; + continue}} + else + if(! match$0)return 1; + return 0}} + function compare$0(cmp,xs,ys) + {var xs$0=xs,ys$0=ys; + for(;;) + {var match=caml_call1(xs$0,0),match$0=caml_call1(ys$0,0); + if(! match)return match$0?-1:0; + var _DE_=match[2],_DF_=match[1]; + if(! match$0)return 1; + var ys$1=match$0[2],y=match$0[1],c=caml_call2(cmp,_DF_,y); + if(0 !== c)return c; + var xs$0=_DE_,ys$0=ys$1}} + function init_aux(f,i,j,param) + {if(i >= j)return 0; + var _DB_=i + 1 | 0; + function _DC_(_DD_){return init_aux(f,_DB_,j,_DD_)} + return [0,caml_call1(f,i),_DC_]} + function init(n,f) + {if(0 > n)return invalid_arg(cst_Seq_init); + var _Dz_=0; + return function(_DA_){return init_aux(f,_Dz_,n,_DA_)}} + function repeat(x,param) + {return [0,x,function(_Dy_){return repeat(x,_Dy_)}]} + function forever(f,param) + {function _Dw_(_Dx_){return forever(f,_Dx_)} + return [0,caml_call1(f,0),_Dw_]} + function cycle_nonempty(xs,param) + {var _Du_=0; + return append$0(xs,function(_Dv_){return cycle_nonempty(xs,_Dv_)},_Du_)} + function cycle(xs,param) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1]; + function _Dr_(_Dt_){return cycle_nonempty(xs,_Dt_)} + return [0,x,function(_Ds_){return append$0(xs$0,_Dr_,_Ds_)}]} + function iterate1(f,x,param) + {var y=caml_call1(f,x); + return [0,y,function(_Dq_){return iterate1(f,y,_Dq_)}]} + function iterate(f,x) + {function _Dn_(_Dp_){return iterate1(f,x,_Dp_)} + return function(_Do_){return [0,x,_Dn_]}} + function mapi_aux(f,i,xs,param) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1],_Dk_=i + 1 | 0; + function _Dl_(_Dm_){return mapi_aux(f,_Dk_,xs$0,_Dm_)} + return [0,caml_call2(f,i,x),_Dl_]} + function mapi(f,xs) + {var _Di_=0;return function(_Dj_){return mapi_aux(f,_Di_,xs,_Dj_)}} + function tail_scan(f,s,xs,param) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1],s$0=caml_call2(f,s,x); + return [0,s$0,function(_Dh_){return tail_scan(f,s$0,xs$0,_Dh_)}]} + function scan(f,s,xs) + {function _De_(_Dg_){return tail_scan(f,s,xs,_Dg_)} + return function(_Df_){return [0,s,_De_]}} + function take_aux(n,xs) + {return 0 === n + ?empty + :function(param) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1]; + return [0,x,take_aux(n - 1 | 0,xs$0)]}} + function take(n,xs) + {if(n < 0)invalid_arg(cst_Seq_take);return take_aux(n,xs)} + function drop(n,xs) + {return 0 <= n + ?0 === n + ?xs + :function(param) + {var n$0=n,xs$0=xs; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return 0; + var xs$1=match[2],n$1=n$0 - 1 | 0; + if(0 === n$1)return caml_call1(xs$1,0); + var n$0=n$1,xs$0=xs$1}} + :invalid_arg(cst_Seq_drop)} + function take_while(p,xs,param) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1]; + return caml_call1(p,x) + ?[0,x,function(_Dd_){return take_while(p,xs$0,_Dd_)}] + :0} + function drop_while(p,xs,param) + {var xs$0=xs; + for(;;) + {var node=caml_call1(xs$0,0); + if(! node)return 0; + var xs$1=node[2],x=node[1]; + if(! caml_call1(p,x))return node; + var xs$0=xs$1}} + function group(eq,xs,param) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1],_C6_=caml_call1(eq,x); + function _C7_(_Dc_){return drop_while(_C6_,xs$0,_Dc_)} + function _C8_(_Db_){return group(eq,_C7_,_Db_)} + var _C9_=caml_call1(eq,x); + function _C__(_Da_){return take_while(_C9_,xs$0,_Da_)} + return [0,function(_C$_){return [0,x,_C__]},_C8_]} + var Forced_twice=[248,cst_Stdlib_Seq_Forced_twice,caml_fresh_oo_id(0)]; + function failure(param){throw Forced_twice} + function memoize(xs) + {function s$0(param) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1]; + return [0,x,memoize(xs$0)]} + var s=to_lazy(s$0); + return function(_C5_) + {var _C4_=caml_obj_tag(s); + return 250 === _C4_?s[1]:246 === _C4_?force_lazy_block(s):s}} + function once(xs) + {function f(param) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1]; + return [0,x,once(xs$0)]} + var action=[0,f]; + return function(param) + {var f=exchange(action,failure);return caml_call1(f,0)}} + function zip(xs,ys,param) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1],match$0=caml_call1(ys,0); + if(! match$0)return 0; + var ys$0=match$0[2],y=match$0[1]; + return [0,[0,x,y],function(_C3_){return zip(xs$0,ys$0,_C3_)}]} + function map2(f,xs,ys,param) + {var match=caml_call1(xs,0); + if(! match)return 0; + var xs$0=match[2],x=match[1],match$0=caml_call1(ys,0); + if(! match$0)return 0; + var ys$0=match$0[2],y=match$0[1]; + function _C1_(_C2_){return map2(f,xs$0,ys$0,_C2_)} + return [0,caml_call2(f,x,y),_C1_]} + function interleave(xs,ys,param) + {var match=caml_call1(xs,0); + if(! match)return caml_call1(ys,0); + var xs$0=match[2],x=match[1]; + return [0,x,function(_C0_){return interleave(ys,xs$0,_C0_)}]} + function sorted_merge1(cmp,x,xs,y,ys) + {return 0 < caml_call2(cmp,x,y) + ?[0, + y, + function(_CY_) + {var match=caml_call1(ys,0); + if(! match)return [0,x,xs]; + var ys$0=match[2],y=match[1]; + return sorted_merge1(cmp,x,xs,y,ys$0)}] + :[0, + x, + function(_CZ_) + {var match=caml_call1(xs,0); + if(! match)return [0,y,ys]; + var xs$0=match[2],x=match[1]; + return sorted_merge1(cmp,x,xs$0,y,ys)}]} + function sorted_merge(cmp,xs,ys,param) + {var match=caml_call1(xs,0),match$0=caml_call1(ys,0); + if(match) + {if(match$0) + {var ys$0=match$0[2],y=match$0[1],xs$0=match[2],x=match[1]; + return sorted_merge1(cmp,x,xs$0,y,ys$0)} + var c=match} + else + {if(! match$0)return 0;var c=match$0} + return c} + function map_fst(xys,param) + {var match=caml_call1(xys,0); + if(! match)return 0; + var xys$0=match[2],match$0=match[1],x=match$0[1]; + return [0,x,function(_CX_){return map_fst(xys$0,_CX_)}]} + function map_snd(xys,param) + {var match=caml_call1(xys,0); + if(! match)return 0; + var xys$0=match[2],match$0=match[1],y=match$0[2]; + return [0,y,function(_CW_){return map_snd(xys$0,_CW_)}]} + function unzip(xys) + {function _CT_(_CV_){return map_snd(xys,_CV_)} + return [0,function(_CU_){return map_fst(xys,_CU_)},_CT_]} + function filter_map_find_left_map(f,xs,param) + {var xs$0=xs; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return 0; + var xs$1=match[2],x=match[1],match$0=caml_call1(f,x); + if(0 === match$0[0]) + {var y=match$0[1]; + return [0, + y, + function(_CS_){return filter_map_find_left_map(f,xs$1,_CS_)}]} + var xs$0=xs$1}} + function filter_map_find_right_map(f,xs,param) + {var xs$0=xs; + for(;;) + {var match=caml_call1(xs$0,0); + if(! match)return 0; + var xs$1=match[2],x=match[1],match$0=caml_call1(f,x); + if(0 === match$0[0]){var xs$0=xs$1;continue} + var z=match$0[1]; + return [0, + z, + function(_CR_){return filter_map_find_right_map(f,xs$1,_CR_)}]}} + function partition_map(f,xs) + {function _CO_(_CQ_){return filter_map_find_right_map(f,xs,_CQ_)} + return [0, + function(_CP_){return filter_map_find_left_map(f,xs,_CP_)}, + _CO_]} + function partition(p,xs) + {function _CK_(x){return 1 - caml_call1(p,x)} + function _CL_(_CN_){return filter(_CK_,xs,_CN_)} + return [0,function(_CM_){return filter(p,xs,_CM_)},_CL_]} + function peel(xss) + {return unzip(function(_CJ_){return filter_map(uncons,xss,_CJ_)})} + function transpose(xss,param) + {var match=peel(xss),tails=match[2],heads=match[1]; + if(! is_empty(heads)) + return [0,heads,function(_CI_){return transpose(tails,_CI_)}]; + if(is_empty(tails))return 0; + throw [0,Assert_failure,_p_]} + function _q_(remainders,xss,param) + {var match=caml_call1(xss,0); + if(! match)return transpose(remainders,0); + var xss$0=match[2],xs=match[1],match$0=caml_call1(xs,0); + if(match$0) + {var + xs$0=match$0[2], + x=match$0[1], + match$1=peel(remainders), + tails=match$1[2], + heads=match$1[1], + _CC_=function(_CH_){return [0,xs$0,tails]}, + _CD_=function(_CG_){return _q_(_CC_,xss$0,_CG_)}; + return [0,function(_CF_){return [0,x,heads]},_CD_]} + var match$2=peel(remainders),tails$0=match$2[2],heads$0=match$2[1]; + return [0,heads$0,function(_CE_){return _q_(tails$0,xss$0,_CE_)}]} + function map_product(f,xs,ys) + {function _Cw_(x) + {function _CA_(y){return caml_call2(f,x,y)} + return function(_CB_){return map$1(_CA_,ys,_CB_)}} + function xss(_Cz_){return map$1(_Cw_,xs,_Cz_)} + function _Cv_(_Cy_){return _q_(empty,xss,_Cy_)} + return function(_Cx_){return concat(_Cv_,_Cx_)}} + function product(xs,ys) + {return map_product(function(x,y){return [0,x,y]},xs,ys)} + function of_dispenser(it) + {function c(param) + {var match=caml_call1(it,0); + if(! match)return 0; + var x=match[1]; + return [0,x,c]} + return c} + function to_dispenser(xs) + {var s=[0,xs]; + return function(param) + {var match=caml_call1(s[1],0); + if(! match)return 0; + var xs=match[2],x=match[1]; + s[1] = xs; + return [0,x]}} + function ints(i,param) + {var _Ct_=i + 1 | 0;return [0,i,function(_Cu_){return ints(_Ct_,_Cu_)}]} + var + Stdlib_Seq= + [0, + is_empty, + uncons, + length$0, + iter, + fold_left, + iteri, + fold_lefti, + for_all, + exists, + find, + find_map, + iter2, + fold_left2, + for_all2, + exists2, + equal$0, + compare$0, + empty, + return$0, + cons, init, + unfold, + repeat, + forever, + cycle, + iterate, + map$1, + mapi, + filter, + filter_map, + scan, + take, + drop, + take_while, + drop_while, + group, + memoize, + Forced_twice, + once, + transpose, + append$0, + concat, + flat_map, + flat_map, + zip, + map2, + interleave, + sorted_merge, + product, + map_product, + unzip, + unzip, + partition_map, + partition, + of_dispenser, + to_dispenser, + ints]; + caml_register_global(782,Stdlib_Seq,"Stdlib__Seq"); + var none=0; + function some(v){return [0,v]} + function value(o,default$0){if(! o)return default$0;var v=o[1];return v} + function get$0(param) + {if(! param)return invalid_arg(cst_option_is_None); + var v=param[1]; + return v} + function bind(o,f){if(! o)return 0;var v=o[1];return caml_call1(f,v)} + function join(param){if(! param)return 0;var o=param[1];return o} + function map$2(f,o){if(! o)return 0;var v=o[1];return [0,caml_call1(f,v)]} + function fold$0(none,some,param) + {if(! param)return none;var v=param[1];return caml_call1(some,v)} + function iter$0(f,param) + {if(! param)return 0;var v=param[1];return caml_call1(f,v)} + function is_none(param){return param?0:1} + function is_some(param){return param?1:0} + function equal$1(eq,o0,o1) + {if(o0) + {if(o1){var v1=o1[1],v0=o0[1];return caml_call2(eq,v0,v1)}} + else + if(! o1)return 1; + return 0} + function compare$1(cmp,o0,o1) + {if(! o0)return o1?-1:0; + var _Cs_=o0[1]; + if(! o1)return 1; + var v1=o1[1]; + return caml_call2(cmp,_Cs_,v1)} + function to_result(none,param) + {if(! param)return [1,none];var v=param[1];return [0,v]} + function to_list(param){if(! param)return 0;var v=param[1];return [0,v,0]} + function to_seq(param) + {if(! param)return empty; + var v=param[1]; + return function(_Cr_){return return$0(v,_Cr_)}} + var + Stdlib_Option= + [0, + none, + some, + value, + get$0, + bind, + join, + map$2, + fold$0, + iter$0, + is_none, + is_some, + equal$1, + compare$1, + to_result, + to_list, + to_seq]; + caml_register_global(783,Stdlib_Option,"Stdlib__Option"); + function ok(v){return [0,v]} + function error(e){return [1,e]} + function value$0(r,default$0) + {if(0 !== r[0])return default$0;var v=r[1];return v} + function get_ok(param) + {if(0 !== param[0])return invalid_arg(cst_result_is_Error); + var v=param[1]; + return v} + function get_error(param) + {if(0 === param[0])return invalid_arg(cst_result_is_Ok); + var e=param[1]; + return e} + function bind$0(r,f) + {if(0 !== r[0])return r;var v=r[1];return caml_call1(f,v)} + function join$0(e){if(0 !== e[0])return e;var r=e[1];return r} + function map$3(f,e) + {if(0 !== e[0])return e;var v=e[1];return [0,caml_call1(f,v)]} + function map_error(f,v) + {if(0 === v[0])return v;var e=v[1];return [1,caml_call1(f,e)]} + function fold$1(ok,error,param) + {if(0 === param[0]){var v=param[1];return caml_call1(ok,v)} + var e=param[1]; + return caml_call1(error,e)} + function iter$1(f,param) + {if(0 !== param[0])return 0;var v=param[1];return caml_call1(f,v)} + function iter_error(f,param) + {if(0 === param[0])return 0;var e=param[1];return caml_call1(f,e)} + function is_ok(param){return 0 === param[0]?1:0} + function is_error(param){return 0 === param[0]?0:1} + function equal$2(ok,error,r0,r1) + {if(0 === r0[0]) + {var _Cp_=r0[1]; + if(0 === r1[0]){var v1=r1[1];return caml_call2(ok,_Cp_,v1)}} + else + {var _Cq_=r0[1]; + if(0 !== r1[0]){var e1=r1[1];return caml_call2(error,_Cq_,e1)}} + return 0} + function compare$2(ok,error,r0,r1) + {if(0 === r0[0]) + {var _Cn_=r0[1]; + if(0 !== r1[0])return -1; + var v1=r1[1]; + return caml_call2(ok,_Cn_,v1)} + var _Co_=r0[1]; + if(0 === r1[0])return 1; + var e1=r1[1]; + return caml_call2(error,_Co_,e1)} + function to_option(param) + {if(0 !== param[0])return 0;var v=param[1];return [0,v]} + function to_list$0(param) + {if(0 !== param[0])return 0;var v=param[1];return [0,v,0]} + function to_seq$0(param) + {if(0 !== param[0])return empty; + var v=param[1]; + return function(_Cm_){return return$0(v,_Cm_)}} + var + Stdlib_Result= + [0, + ok, + error, + value$0, + get_ok, + get_error, + bind$0, + join$0, + map$3, + map_error, + fold$1, + iter$1, + iter_error, + is_ok, + is_error, + equal$2, + compare$2, + to_option, + to_list$0, + to_seq$0]; + caml_register_global(784,Stdlib_Result,"Stdlib__Result"); + function equal$3(_Cl_,_Ck_){return _Cl_ === _Ck_?1:0} + var compare$3=caml_int_compare; + function to_float(param){return param?1.:0.} + function to_string$0(param){return param?cst_true$2:cst_false$2} + function _r_(_Cj_){return _Cj_} + var + Stdlib_Bool= + [0, + function(_Ci_){return 1 - _Ci_}, + equal$3, + compare$3, + _r_, + to_float, + to_string$0]; + caml_register_global(785,Stdlib_Bool,"Stdlib__Bool"); + function chr(n) + {if(0 <= n && 255 >= n)return n;return invalid_arg(cst_Char_chr)} + function escaped(c) + {var switch$0=0; + if(40 <= c) + {if(92 === c)return cst$1;if(127 > c)switch$0 = 1} + else + if(32 <= c) + {if(39 <= c)return cst$2;switch$0 = 1} + else + if(14 > c) + switch(c) + {case 8:return cst_b; + case 9:return cst_t; + case 10:return cst_n; + case 13:return cst_r + } + if(switch$0) + {var s$0=caml_create_bytes(1); + caml_bytes_unsafe_set(s$0,0,c); + return caml_string_of_bytes(s$0)} + var s=caml_create_bytes(4); + caml_bytes_unsafe_set(s,0,92); + caml_bytes_unsafe_set(s,1,48 + (c / 100 | 0) | 0); + caml_bytes_unsafe_set(s,2,48 + ((c / 10 | 0) % 10 | 0) | 0); + caml_bytes_unsafe_set(s,3,48 + (c % 10 | 0) | 0); + return caml_string_of_bytes(s)} + function lowercase(c) + {var _Ch_=c - 192 | 0,switch$0=0; + if(30 < _Ch_ >>> 0) + {if(25 >= _Ch_ + 127 >>> 0)switch$0 = 1} + else + if(23 !== _Ch_)switch$0 = 1; + return switch$0?c + 32 | 0:c} + function uppercase(c) + {var _Cg_=c - 224 | 0,switch$0=0; + if(30 < _Cg_ >>> 0) + {if(25 >= _Cg_ + 127 >>> 0)switch$0 = 1} + else + if(23 !== _Cg_)switch$0 = 1; + return switch$0?c - 32 | 0:c} + function lowercase_ascii(c){return 25 < c - 65 >>> 0?c:c + 32 | 0} + function uppercase_ascii(c){return 25 < c - 97 >>> 0?c:c - 32 | 0} + function compare$4(c1,c2){return c1 - c2 | 0} + function equal$4(c1,c2){return 0 === (c1 - c2 | 0)?1:0} + var + Stdlib_Char= + [0, + chr, + escaped, + lowercase, + uppercase, + lowercase_ascii, + uppercase_ascii, + compare$4, + equal$4]; + caml_register_global(786,Stdlib_Char,"Stdlib__Char"); + var + min$0=0, + max$0=1114111, + lo_bound=55295, + hi_bound=57344, + bom=65279, + rep=65533; + function succ(u) + {return u === 55295 + ?hi_bound + :u === 1114111?invalid_arg(err_no_succ):u + 1 | 0} + function pred(u) + {return u === 57344?lo_bound:u === 0?invalid_arg(err_no_pred):u - 1 | 0} + function is_valid(i) + {var _Cc_=0 <= i?1:0,_Cd_=_Cc_?i <= 55295?1:0:_Cc_; + if(_Cd_) + var _Ce_=_Cd_; + else + var _Cf_=57344 <= i?1:0,_Ce_=_Cf_?i <= 1114111?1:0:_Cf_; + return _Ce_} + function of_int(i) + {return is_valid(i) + ?i + :invalid_arg + (cat(caml_format_int(cst_X,i),cst_is_not_an_Unicode_scalar_v))} + function is_char(u){return u < 256?1:0} + function of_char(c){return c} + function to_char(u) + {return 255 < u + ?invalid_arg + (cat + (cst_U, + cat + (caml_format_int(cst_04X,u),cst_is_not_a_latin1_character))) + :u} + function unsafe_to_char(_Cb_){return _Cb_} + function equal$5(_Ca_,_B$_){return _Ca_ === _B$_?1:0} + var compare$5=caml_int_compare; + function hash(_B__){return _B__} + function utf_decode_is_valid(d){return 1 === (d >>> 27 | 0)?1:0} + function utf_decode_length(d){return (d >>> 24 | 0) & 7} + function utf_decode_uchar(d){return d & 16777215} + function utf_decode(n,u){return (8 | n) << 24 | u} + function dec_invalid(n){return n << 24 | 65533} + function utf_8_byte_length(u) + {if(0 > u)throw [0,Assert_failure,_t_]; + if(127 >= u)return 1; + if(2047 >= u)return 2; + if(65535 >= u)return 3; + if(1114111 < u)throw [0,Assert_failure,_s_]; + return 4} + function utf_16_byte_length(u) + {if(0 > u)throw [0,Assert_failure,_v_]; + if(65535 >= u)return 2; + if(1114111 < u)throw [0,Assert_failure,_u_]; + return 4} + function _w_(_B9_){return _B9_} + var + Stdlib_Uchar= + [0, + min$0, + max$0, + bom, + rep, + succ, + pred, + is_valid, + of_int, + function(_B8_){return _B8_}, + _w_, + is_char, + of_char, + to_char, + unsafe_to_char, + equal$5, + compare$5, + hash, + utf_decode_is_valid, + utf_decode_uchar, + utf_decode_length, + utf_decode, + dec_invalid, + utf_8_byte_length, + utf_16_byte_length]; + caml_register_global(787,Stdlib_Uchar,"Stdlib__Uchar"); + function length$1(l) + {var len=0,param=l; + for(;;) + {if(! param)return len; + var param$0=param[2],len$0=len + 1 | 0,len=len$0,param=param$0}} + function cons$0(a,l){return [0,a,l]} + function hd(param) + {if(! param)return failwith(cst_hd);var a=param[1];return a} + function tl(param) + {if(! param)return failwith(cst_tl);var l=param[2];return l} + function nth(l,n) + {if(0 > n)return invalid_arg(cst_List_nth); + var l$0=l,n$0=n; + for(;;) + {if(! l$0)return failwith(cst_nth); + var l$1=l$0[2],a=l$0[1]; + if(0 === n$0)return a; + var n$1=n$0 - 1 | 0,l$0=l$1,n$0=n$1}} + function nth_opt(l,n) + {if(0 > n)return invalid_arg(cst_List_nth$0); + var l$0=l,n$0=n; + for(;;) + {if(! l$0)return 0; + var l$1=l$0[2],a=l$0[1]; + if(0 === n$0)return [0,a]; + var n$1=n$0 - 1 | 0,l$0=l$1,n$0=n$1}} + function rev_append(l1,l2) + {var l1$0=l1,l2$0=l2; + for(;;) + {if(! l1$0)return l2$0; + var l1$1=l1$0[2],a=l1$0[1],l2$1=[0,a,l2$0],l1$0=l1$1,l2$0=l2$1}} + function rev(l){return rev_append(l,0)} + function init_aux$0(i,n,f) + {if(n <= i)return 0; + var r=caml_call1(f,i); + return [0,r,init_aux$0(i + 1 | 0,n,f)]} + function init$0(len,f) + {if(0 > len)return invalid_arg(cst_List_init); + if(50 >= len)return init_aux$0(0,len,f); + var acc=0,i=0; + for(;;) + {if(len <= i)return rev(acc); + var i$0=i + 1 | 0,acc$0=[0,caml_call1(f,i),acc],acc=acc$0,i=i$0}} + function flatten(param) + {if(! param)return 0; + var r=param[2],l=param[1]; + return append(l,flatten(r))} + function map$4(f,param) + {if(! param)return 0; + var l=param[2],a=param[1],r=caml_call1(f,a); + return [0,r,map$4(f,l)]} + function _x_(i,f,param) + {if(! param)return 0; + var l=param[2],a=param[1],r=caml_call2(f,i,a); + return [0,r,_x_(i + 1 | 0,f,l)]} + function mapi$0(f,l){return _x_(0,f,l)} + function rev_map(f,param) + {var accu=0,param$0=param; + for(;;) + {if(! param$0)return accu; + var + l=param$0[2], + a=param$0[1], + accu$0=[0,caml_call1(f,a),accu], + accu=accu$0, + param$0=l}} + function iter$2(f,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],a=param$0[1]; + caml_call1(f,a); + var param$0=l}} + function iteri$0(f,l$0) + {var i=0,param=l$0; + for(;;) + {if(! param)return 0; + var l=param[2],a=param[1]; + caml_call2(f,i,a); + var i$0=i + 1 | 0,i=i$0,param=l}} + function fold_left$0(f,accu,l) + {var accu$0=accu,l$0=l; + for(;;) + {if(! l$0)return accu$0; + var + l$1=l$0[2], + a=l$0[1], + accu$1=caml_call2(f,accu$0,a), + accu$0=accu$1, + l$0=l$1}} + function fold_right(f,l,accu) + {if(! l)return accu; + var l$0=l[2],a=l[1]; + return caml_call2(f,a,fold_right(f,l$0,accu))} + function map2$0(f,l1,l2) + {if(l1) + {if(l2) + {var l2$0=l2[2],a2=l2[1],l1$0=l1[2],a1=l1[1],r=caml_call2(f,a1,a2); + return [0,r,map2$0(f,l1$0,l2$0)]}} + else + if(! l2)return 0; + return invalid_arg(cst_List_map2)} + function rev_map2(f,l1,l2) + {var accu=0,l1$0=l1,l2$0=l2; + for(;;) + {if(l1$0) + {if(l2$0) + {var + l2$1=l2$0[2], + a2=l2$0[1], + l1$1=l1$0[2], + a1=l1$0[1], + accu$0=[0,caml_call2(f,a1,a2),accu], + accu=accu$0, + l1$0=l1$1, + l2$0=l2$1; + continue}} + else + if(! l2$0)return accu; + return invalid_arg(cst_List_rev_map2)}} + function iter2$0(f,l1,l2) + {var l1$0=l1,l2$0=l2; + for(;;) + {if(l1$0) + {if(l2$0) + {var l2$1=l2$0[2],a2=l2$0[1],l1$1=l1$0[2],a1=l1$0[1]; + caml_call2(f,a1,a2); + var l1$0=l1$1,l2$0=l2$1; + continue}} + else + if(! l2$0)return 0; + return invalid_arg(cst_List_iter2)}} + function fold_left2$0(f,accu,l1,l2) + {var accu$0=accu,l1$0=l1,l2$0=l2; + for(;;) + {if(l1$0) + {if(l2$0) + {var + l2$1=l2$0[2], + a2=l2$0[1], + l1$1=l1$0[2], + a1=l1$0[1], + accu$1=caml_call3(f,accu$0,a1,a2), + accu$0=accu$1, + l1$0=l1$1, + l2$0=l2$1; + continue}} + else + if(! l2$0)return accu$0; + return invalid_arg(cst_List_fold_left2)}} + function fold_right2(f,l1,l2,accu) + {if(l1) + {if(l2) + {var l2$0=l2[2],a2=l2[1],l1$0=l1[2],a1=l1[1]; + return caml_call3(f,a1,a2,fold_right2(f,l1$0,l2$0,accu))}} + else + if(! l2)return accu; + return invalid_arg(cst_List_fold_right2)} + function for_all$0(p,param) + {var param$0=param; + for(;;) + {if(! param$0)return 1; + var l=param$0[2],a=param$0[1],_B7_=caml_call1(p,a); + if(! _B7_)return _B7_; + var param$0=l}} + function exists$0(p,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],a=param$0[1],_B6_=caml_call1(p,a); + if(_B6_)return _B6_; + var param$0=l}} + function for_all2$0(p,l1,l2) + {var l1$0=l1,l2$0=l2; + for(;;) + {if(l1$0) + {if(l2$0) + {var + l2$1=l2$0[2], + a2=l2$0[1], + l1$1=l1$0[2], + a1=l1$0[1], + _B5_=caml_call2(p,a1,a2); + if(! _B5_)return _B5_; + var l1$0=l1$1,l2$0=l2$1; + continue}} + else + if(! l2$0)return 1; + return invalid_arg(cst_List_for_all2)}} + function exists2$0(p,l1,l2) + {var l1$0=l1,l2$0=l2; + for(;;) + {if(l1$0) + {if(l2$0) + {var + l2$1=l2$0[2], + a2=l2$0[1], + l1$1=l1$0[2], + a1=l1$0[1], + _B4_=caml_call2(p,a1,a2); + if(_B4_)return _B4_; + var l1$0=l1$1,l2$0=l2$1; + continue}} + else + if(! l2$0)return 0; + return invalid_arg(cst_List_exists2)}} + function mem(x,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],a=param$0[1],_B3_=0 === caml_compare(a,x)?1:0; + if(_B3_)return _B3_; + var param$0=l}} + function memq(x,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],a=param$0[1],_B2_=a === x?1:0; + if(_B2_)return _B2_; + var param$0=l}} + function assoc(x,param) + {var param$0=param; + for(;;) + {if(! param$0)throw Not_found; + var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; + if(0 === caml_compare(a,x))return b; + var param$0=l}} + function assoc_opt(x,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; + if(0 === caml_compare(a,x))return [0,b]; + var param$0=l}} + function assq(x,param) + {var param$0=param; + for(;;) + {if(! param$0)throw Not_found; + var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; + if(a === x)return b; + var param$0=l}} + function assq_opt(x,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; + if(a === x)return [0,b]; + var param$0=l}} + function mem_assoc(x,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var + l=param$0[2], + match=param$0[1], + a=match[1], + _B1_=0 === caml_compare(a,x)?1:0; + if(_B1_)return _B1_; + var param$0=l}} + function mem_assq(x,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],match=param$0[1],a=match[1],_B0_=a === x?1:0; + if(_B0_)return _B0_; + var param$0=l}} + function remove_assoc(x,param) + {if(! param)return 0; + var l=param[2],pair=param[1],a=pair[1]; + return 0 === caml_compare(a,x)?l:[0,pair,remove_assoc(x,l)]} + function remove_assq(x,param) + {if(! param)return 0; + var l=param[2],pair=param[1],a=pair[1]; + return a === x?l:[0,pair,remove_assq(x,l)]} + function find$0(p,param) + {var param$0=param; + for(;;) + {if(! param$0)throw Not_found; + var l=param$0[2],x=param$0[1]; + if(caml_call1(p,x))return x; + var param$0=l}} + function find_opt(p,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],x=param$0[1]; + if(caml_call1(p,x))return [0,x]; + var param$0=l}} + function find_map$0(f,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],x=param$0[1],result=caml_call1(f,x); + if(result)return result; + var param$0=l}} + function find_all(p) + {var accu=0; + return function(param$0) + {var accu$0=accu,param=param$0; + for(;;) + {if(! param)return rev(accu$0); + var l=param[2],x=param[1]; + if(caml_call1(p,x)) + {var accu$1=[0,x,accu$0],accu$0=accu$1,param=l;continue} + var param=l}}} + function filteri(p,param) + {var i=0,acc=0,param$0=param; + for(;;) + {if(! param$0)return rev(acc); + var + l=param$0[2], + x=param$0[1], + acc$0=caml_call2(p,i,x)?[0,x,acc]:acc, + i$0=i + 1 | 0, + i=i$0, + acc=acc$0, + param$0=l}} + function filter_map$0(f) + {var accu=0; + return function(param$0) + {var accu$0=accu,param=param$0; + for(;;) + {if(! param)return rev(accu$0); + var l=param[2],x=param[1],match=caml_call1(f,x); + if(match) + {var v=match[1],accu$1=[0,v,accu$0],accu$0=accu$1,param=l;continue} + var param=l}}} + function concat_map(f,param) + {var acc=0,param$0=param; + for(;;) + {if(! param$0)return rev(acc); + var + l=param$0[2], + x=param$0[1], + xs=caml_call1(f,x), + acc$0=rev_append(xs,acc), + acc=acc$0, + param$0=l}} + function fold_left_map(f,accu,param) + {var accu$0=accu,l_accu=0,param$0=param; + for(;;) + {if(! param$0)return [0,accu$0,rev(l_accu)]; + var + l=param$0[2], + x=param$0[1], + match=caml_call2(f,accu$0,x), + x$0=match[2], + accu$1=match[1], + l_accu$0=[0,x$0,l_accu], + accu$0=accu$1, + l_accu=l_accu$0, + param$0=l}} + function partition$0(p,param) + {var yes=0,no=0,param$0=param; + for(;;) + {if(! param$0){var _BZ_=rev(no);return [0,rev(yes),_BZ_]} + var l=param$0[2],x=param$0[1]; + if(caml_call1(p,x)){var yes$0=[0,x,yes],yes=yes$0,param$0=l;continue} + var no$0=[0,x,no],no=no$0,param$0=l}} + function partition_map$0(p,param) + {var left=0,right=0,param$0=param; + for(;;) + {if(! param$0){var _BY_=rev(right);return [0,rev(left),_BY_]} + var l=param$0[2],x=param$0[1],match=caml_call1(p,x); + if(0 === match[0]) + {var v=match[1],left$0=[0,v,left],left=left$0,param$0=l;continue} + var v$0=match[1],right$0=[0,v$0,right],right=right$0,param$0=l}} + function split(param) + {if(! param)return _y_; + var + l=param[2], + match=param[1], + y=match[2], + x=match[1], + match$0=split(l), + ry=match$0[2], + rx=match$0[1]; + return [0,[0,x,rx],[0,y,ry]]} + function combine(l1,l2) + {if(l1) + {if(l2) + {var l2$0=l2[2],a2=l2[1],l1$0=l1[2],a1=l1[1]; + return [0,[0,a1,a2],combine(l1$0,l2$0)]}} + else + if(! l2)return 0; + return invalid_arg(cst_List_combine)} + function merge(cmp,l1,l2) + {if(! l1)return l2; + if(! l2)return l1; + var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1]; + return 0 < caml_call2(cmp,h1,h2) + ?[0,h2,merge(cmp,l1,t2)] + :[0,h1,merge(cmp,t1,l2)]} + function fast_sort(cmp,l) + {function sort(n,l) + {if(2 === n) + {if(l) + {var _BU_=l[2]; + if(_BU_) + {var + tl=_BU_[2], + x2=_BU_[1], + x1=l[1], + s=0 < caml_call2(cmp,x1,x2)?[0,x2,[0,x1,0]]:[0,x1,[0,x2,0]]; + return [0,s,tl]}}} + else + if(3 === n && l) + {var _BW_=l[2]; + if(_BW_) + {var _BX_=_BW_[2]; + if(_BX_) + {var + tl$1=_BX_[2], + x3=_BX_[1], + x2$0=_BW_[1], + x1$0=l[1], + s$0= + 0 < caml_call2(cmp,x1$0,x2$0) + ?0 < caml_call2(cmp,x1$0,x3) + ?0 < caml_call2(cmp,x2$0,x3) + ?[0,x3,[0,x2$0,[0,x1$0,0]]] + :[0,x2$0,[0,x3,[0,x1$0,0]]] + :[0,x2$0,[0,x1$0,[0,x3,0]]] + :0 < caml_call2(cmp,x2$0,x3) + ?0 < caml_call2(cmp,x1$0,x3) + ?[0,x3,[0,x1$0,[0,x2$0,0]]] + :[0,x1$0,[0,x3,[0,x2$0,0]]] + :[0,x1$0,[0,x2$0,[0,x3,0]]]; + return [0,s$0,tl$1]}}} + var + n1=n >> 1, + n2=n - n1 | 0, + match=rev_sort(n1,l), + l2$0=match[2], + s1=match[1], + match$0=rev_sort(n2,l2$0), + tl$0=match$0[2], + s2=match$0[1], + l1=s1, + l2=s2, + accu=0; + for(;;) + {if(l1) + {if(l2) + {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1]; + if(0 < caml_call2(cmp,h1,h2)) + {var accu$0=[0,h1,accu],l1=t1,accu=accu$0;continue} + var accu$1=[0,h2,accu],l2=t2,accu=accu$1; + continue} + var _BV_=rev_append(l1,accu)} + else + var _BV_=rev_append(l2,accu); + return [0,_BV_,tl$0]}} + function rev_sort(n,l) + {if(2 === n) + {if(l) + {var _BQ_=l[2]; + if(_BQ_) + {var + tl=_BQ_[2], + x2=_BQ_[1], + x1=l[1], + s=0 < caml_call2(cmp,x1,x2)?[0,x1,[0,x2,0]]:[0,x2,[0,x1,0]]; + return [0,s,tl]}}} + else + if(3 === n && l) + {var _BS_=l[2]; + if(_BS_) + {var _BT_=_BS_[2]; + if(_BT_) + {var + tl$1=_BT_[2], + x3=_BT_[1], + x2$0=_BS_[1], + x1$0=l[1], + s$0= + 0 < caml_call2(cmp,x1$0,x2$0) + ?0 < caml_call2(cmp,x2$0,x3) + ?[0,x1$0,[0,x2$0,[0,x3,0]]] + :0 < caml_call2(cmp,x1$0,x3) + ?[0,x1$0,[0,x3,[0,x2$0,0]]] + :[0,x3,[0,x1$0,[0,x2$0,0]]] + :0 < caml_call2(cmp,x1$0,x3) + ?[0,x2$0,[0,x1$0,[0,x3,0]]] + :0 < caml_call2(cmp,x2$0,x3) + ?[0,x2$0,[0,x3,[0,x1$0,0]]] + :[0,x3,[0,x2$0,[0,x1$0,0]]]; + return [0,s$0,tl$1]}}} + var + n1=n >> 1, + n2=n - n1 | 0, + match=sort(n1,l), + l2$0=match[2], + s1=match[1], + match$0=sort(n2,l2$0), + tl$0=match$0[2], + s2=match$0[1], + l1=s1, + l2=s2, + accu=0; + for(;;) + {if(l1) + {if(l2) + {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1]; + if(0 < caml_call2(cmp,h1,h2)) + {var accu$0=[0,h2,accu],l2=t2,accu=accu$0;continue} + var accu$1=[0,h1,accu],l1=t1,accu=accu$1; + continue} + var _BR_=rev_append(l1,accu)} + else + var _BR_=rev_append(l2,accu); + return [0,_BR_,tl$0]}} + var len=length$1(l); + return 2 <= len?sort(len,l)[1]:l} + function sort_uniq(cmp,l) + {function sort(n,l) + {if(2 === n) + {if(l) + {var _BH_=l[2]; + if(_BH_) + {var + tl=_BH_[2], + x2=_BH_[1], + x1=l[1], + c$0=caml_call2(cmp,x1,x2), + s=0 === c$0?[0,x1,0]:0 <= c$0?[0,x2,[0,x1,0]]:[0,x1,[0,x2,0]]; + return [0,s,tl]}}} + else + if(3 === n && l) + {var _BJ_=l[2]; + if(_BJ_) + {var _BK_=_BJ_[2]; + if(_BK_) + {var + tl$1=_BK_[2], + x3=_BK_[1], + x2$0=_BJ_[1], + x1$0=l[1], + c$1=caml_call2(cmp,x1$0,x2$0); + if(0 === c$1) + var + c$2=caml_call2(cmp,x2$0,x3), + _BL_= + 0 === c$2 + ?[0,x2$0,0] + :0 <= c$2?[0,x3,[0,x2$0,0]]:[0,x2$0,[0,x3,0]], + s$0=_BL_; + else + if(0 <= c$1) + {var c$3=caml_call2(cmp,x1$0,x3); + if(0 === c$3) + var _BM_=[0,x2$0,[0,x1$0,0]]; + else + if(0 <= c$3) + var + c$4=caml_call2(cmp,x2$0,x3), + _BN_= + 0 === c$4 + ?[0,x2$0,[0,x1$0,0]] + :0 <= c$4 + ?[0,x3,[0,x2$0,[0,x1$0,0]]] + :[0,x2$0,[0,x3,[0,x1$0,0]]], + _BM_=_BN_; + else + var _BM_=[0,x2$0,[0,x1$0,[0,x3,0]]]; + var s$0=_BM_} + else + {var c$5=caml_call2(cmp,x2$0,x3); + if(0 === c$5) + var _BO_=[0,x1$0,[0,x2$0,0]]; + else + if(0 <= c$5) + var + c$6=caml_call2(cmp,x1$0,x3), + _BP_= + 0 === c$6 + ?[0,x1$0,[0,x2$0,0]] + :0 <= c$6 + ?[0,x3,[0,x1$0,[0,x2$0,0]]] + :[0,x1$0,[0,x3,[0,x2$0,0]]], + _BO_=_BP_; + else + var _BO_=[0,x1$0,[0,x2$0,[0,x3,0]]]; + var s$0=_BO_} + return [0,s$0,tl$1]}}} + var + n1=n >> 1, + n2=n - n1 | 0, + match=rev_sort(n1,l), + l2$0=match[2], + s1=match[1], + match$0=rev_sort(n2,l2$0), + tl$0=match$0[2], + s2=match$0[1], + l1=s1, + l2=s2, + accu=0; + for(;;) + {if(l1) + {if(l2) + {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1],c=caml_call2(cmp,h1,h2); + if(0 === c) + {var accu$0=[0,h1,accu],l1=t1,l2=t2,accu=accu$0;continue} + if(0 < c){var accu$1=[0,h1,accu],l1=t1,accu=accu$1;continue} + var accu$2=[0,h2,accu],l2=t2,accu=accu$2; + continue} + var _BI_=rev_append(l1,accu)} + else + var _BI_=rev_append(l2,accu); + return [0,_BI_,tl$0]}} + function rev_sort(n,l) + {if(2 === n) + {if(l) + {var _By_=l[2]; + if(_By_) + {var + tl=_By_[2], + x2=_By_[1], + x1=l[1], + c$0=caml_call2(cmp,x1,x2), + s=0 === c$0?[0,x1,0]:0 < c$0?[0,x1,[0,x2,0]]:[0,x2,[0,x1,0]]; + return [0,s,tl]}}} + else + if(3 === n && l) + {var _BA_=l[2]; + if(_BA_) + {var _BB_=_BA_[2]; + if(_BB_) + {var + tl$1=_BB_[2], + x3=_BB_[1], + x2$0=_BA_[1], + x1$0=l[1], + c$1=caml_call2(cmp,x1$0,x2$0); + if(0 === c$1) + var + c$2=caml_call2(cmp,x2$0,x3), + _BC_= + 0 === c$2 + ?[0,x2$0,0] + :0 < c$2?[0,x2$0,[0,x3,0]]:[0,x3,[0,x2$0,0]], + s$0=_BC_; + else + if(0 < c$1) + {var c$3=caml_call2(cmp,x2$0,x3); + if(0 === c$3) + var _BD_=[0,x1$0,[0,x2$0,0]]; + else + if(0 < c$3) + var _BD_=[0,x1$0,[0,x2$0,[0,x3,0]]]; + else + var + c$4=caml_call2(cmp,x1$0,x3), + _BE_= + 0 === c$4 + ?[0,x1$0,[0,x2$0,0]] + :0 < c$4 + ?[0,x1$0,[0,x3,[0,x2$0,0]]] + :[0,x3,[0,x1$0,[0,x2$0,0]]], + _BD_=_BE_; + var s$0=_BD_} + else + {var c$5=caml_call2(cmp,x1$0,x3); + if(0 === c$5) + var _BF_=[0,x2$0,[0,x1$0,0]]; + else + if(0 < c$5) + var _BF_=[0,x2$0,[0,x1$0,[0,x3,0]]]; + else + var + c$6=caml_call2(cmp,x2$0,x3), + _BG_= + 0 === c$6 + ?[0,x2$0,[0,x1$0,0]] + :0 < c$6 + ?[0,x2$0,[0,x3,[0,x1$0,0]]] + :[0,x3,[0,x2$0,[0,x1$0,0]]], + _BF_=_BG_; + var s$0=_BF_} + return [0,s$0,tl$1]}}} + var + n1=n >> 1, + n2=n - n1 | 0, + match=sort(n1,l), + l2$0=match[2], + s1=match[1], + match$0=sort(n2,l2$0), + tl$0=match$0[2], + s2=match$0[1], + l1=s1, + l2=s2, + accu=0; + for(;;) + {if(l1) + {if(l2) + {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1],c=caml_call2(cmp,h1,h2); + if(0 === c) + {var accu$0=[0,h1,accu],l1=t1,l2=t2,accu=accu$0;continue} + if(0 <= c){var accu$1=[0,h2,accu],l2=t2,accu=accu$1;continue} + var accu$2=[0,h1,accu],l1=t1,accu=accu$2; + continue} + var _Bz_=rev_append(l1,accu)} + else + var _Bz_=rev_append(l2,accu); + return [0,_Bz_,tl$0]}} + var len=length$1(l); + return 2 <= len?sort(len,l)[1]:l} + function compare_lengths(l1,l2) + {var l1$0=l1,l2$0=l2; + for(;;) + {if(! l1$0)return l2$0?-1:0; + if(! l2$0)return 1; + var l2$1=l2$0[2],l1$1=l1$0[2],l1$0=l1$1,l2$0=l2$1}} + function compare_length_with(l,n) + {var l$0=l,n$0=n; + for(;;) + {if(! l$0)return 0 === n$0?0:0 < n$0?-1:1; + var l$1=l$0[2]; + if(0 >= n$0)return 1; + var n$1=n$0 - 1 | 0,l$0=l$1,n$0=n$1}} + function equal$6(eq,l1,l2) + {var l1$0=l1,l2$0=l2; + for(;;) + {if(l1$0) + {if(l2$0) + {var + l2$1=l2$0[2], + a2=l2$0[1], + l1$1=l1$0[2], + a1=l1$0[1], + _Bx_=caml_call2(eq,a1,a2); + if(! _Bx_)return _Bx_; + var l1$0=l1$1,l2$0=l2$1; + continue}} + else + if(! l2$0)return 1; + return 0}} + function compare$6(cmp,l1,l2) + {var l1$0=l1,l2$0=l2; + for(;;) + {if(! l1$0)return l2$0?-1:0; + var _Bv_=l1$0[2],_Bw_=l1$0[1]; + if(! l2$0)return 1; + var l2$1=l2$0[2],a2=l2$0[1],c=caml_call2(cmp,_Bw_,a2); + if(0 !== c)return c; + var l1$0=_Bv_,l2$0=l2$1}} + function to_seq$1(l) + {function aux(l,param) + {if(! l)return 0; + var tail=l[2],x=l[1]; + return [0,x,function(_Bu_){return aux(tail,_Bu_)}]} + return function(_Bt_){return aux(l,_Bt_)}} + function of_seq(seq) + {function direct(depth,seq) + {if(0 === depth) + {var _Bs_=0; + return rev(fold_left(function(acc,x){return [0,x,acc]},_Bs_,seq))} + var match=caml_call1(seq,0); + if(! match)return 0; + var next=match[2],x=match[1]; + return [0,x,direct(depth - 1 | 0,next)]} + return direct(500,seq)} + var + include$0= + [0, + length$1, + compare_lengths, + compare_length_with, + cons$0, + hd, + tl, + nth, + nth_opt, + rev, + init$0, + append, + rev_append, + flatten, + flatten, + equal$6, + compare$6, + iter$2, + iteri$0, + map$4, + mapi$0, + rev_map, + filter_map$0, + concat_map, + fold_left_map, + fold_left$0, + fold_right, + iter2$0, + map2$0, + rev_map2, + fold_left2$0, + fold_right2, + for_all$0, + exists$0, + for_all2$0, + exists2$0, + mem, + memq, + find$0, + find_opt, + find_map$0, + find_all, + find_all, + filteri, + partition$0, + partition_map$0, + assoc, + assoc_opt, + assq, + assq_opt, + mem_assoc, + mem_assq, + remove_assoc, + remove_assq, + split, + combine, + fast_sort, + fast_sort, + fast_sort, + sort_uniq, + merge, + to_seq$1, + of_seq]; + caml_register_global(788,include$0,"Stdlib__List"); + var zero=0,one=1,minus_one=-1; + function abs$0(x){return 0 <= x?x:- x | 0} + var max_int$0=2147483647,min_int$0=-2147483648; + function lognot(x){return x ^ -1} + function equal$7(_Br_,_Bq_){return _Br_ === _Bq_?1:0} + var compare$7=caml_int_compare; + function min$1(x,y){return x <= y?x:y} + function max$1(x,y){return y <= x?x:y} + function to_string$1(x){return caml_string_of_jsbytes("" + x)} + var + Stdlib_Int= + [0, + zero, + one, + minus_one, + abs$0, + max_int$0, + min_int$0, + lognot, + equal$7, + compare$7, + min$1, + max$1, + to_string$1]; + caml_register_global(789,Stdlib_Int,"Stdlib__Int"); + function make$0(n,c) + {var s=caml_create_bytes(n);caml_fill_bytes(s,0,n,c);return s} + function init$1(n,f) + {var s=caml_create_bytes(n),_Bo_=n - 1 | 0,_Bn_=0; + if(_Bo_ >= 0) + {var i=_Bn_; + for(;;) + {caml_bytes_unsafe_set(s,i,caml_call1(f,i)); + var _Bp_=i + 1 | 0; + if(_Bo_ !== i){var i=_Bp_;continue} + break}} + return s} + var empty$0=caml_create_bytes(0); + function copy(s) + {var len=caml_ml_bytes_length(s),r=caml_create_bytes(len); + caml_blit_bytes(s,0,r,0,len); + return r} + function of_bytes(b){return caml_string_of_bytes(copy(b))} + function to_bytes(s){return copy(caml_bytes_of_string(s))} + function sub(s,ofs,len) + {if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + {var r=caml_create_bytes(len);caml_blit_bytes(s,ofs,r,0,len);return r} + return invalid_arg(cst_String_sub_Bytes_sub)} + function sub_string(b,ofs,len) + {return caml_string_of_bytes(sub(b,ofs,len))} + function symbol$0(a,b) + {var c=a + b | 0,_Bm_=b < 0?1:0,match=c < 0?1:0,switch$0=0; + if(a < 0) + {if(_Bm_ && ! match)switch$0 = 1} + else + if(! _Bm_ && match)switch$0 = 1; + return switch$0?invalid_arg(cst_Bytes_extend):c} + function extend(s,left,right) + {var + len=symbol$0(symbol$0(caml_ml_bytes_length(s),left),right), + r=caml_create_bytes(len); + if(0 <= left) + var dstoff=left,srcoff=0; + else + var dstoff=0,srcoff=- left | 0; + var cpylen=min$1(caml_ml_bytes_length(s) - srcoff | 0,len - dstoff | 0); + if(0 < cpylen)caml_blit_bytes(s,srcoff,r,dstoff,cpylen); + return r} + function fill(s,ofs,len,c) + {if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return caml_fill_bytes(s,ofs,len,c); + return invalid_arg(cst_String_fill_Bytes_fill)} + function blit(s1,ofs1,s2,ofs2,len) + {if + (0 + <= + len + && + 0 + <= + ofs1 + && + (caml_ml_bytes_length(s1) - len | 0) + >= + ofs1 + && + 0 + <= + ofs2 + && + (caml_ml_bytes_length(s2) - len | 0) + >= + ofs2) + return caml_blit_bytes(s1,ofs1,s2,ofs2,len); + return invalid_arg(cst_Bytes_blit)} + function blit$0(s1,ofs1,s2,ofs2,len) + {if + (0 + <= + len + && + 0 + <= + ofs1 + && + (caml_ml_string_length(s1) - len | 0) + >= + ofs1 + && + 0 + <= + ofs2 + && + (caml_ml_bytes_length(s2) - len | 0) + >= + ofs2) + return caml_blit_string(s1,ofs1,s2,ofs2,len); + return invalid_arg(cst_String_blit_Bytes_blit_str)} + function iter$3(f,a) + {var _Bk_=caml_ml_bytes_length(a) - 1 | 0,_Bj_=0; + if(_Bk_ >= 0) + {var i=_Bj_; + for(;;) + {caml_call1(f,caml_bytes_unsafe_get(a,i)); + var _Bl_=i + 1 | 0; + if(_Bk_ !== i){var i=_Bl_;continue} + break}} + return 0} + function iteri$1(f,a) + {var _Bh_=caml_ml_bytes_length(a) - 1 | 0,_Bg_=0; + if(_Bh_ >= 0) + {var i=_Bg_; + for(;;) + {caml_call2(f,i,caml_bytes_unsafe_get(a,i)); + var _Bi_=i + 1 | 0; + if(_Bh_ !== i){var i=_Bi_;continue} + break}} + return 0} + function concat$0(sep,l) + {if(! l)return empty$0; + var seplen=caml_ml_bytes_length(sep),acc=0,param=l,pos$1=0; + for(;;) + {if(param) + {var _Bd_=param[1]; + if(param[2]) + {var + tl=param[2], + x=(caml_ml_bytes_length(_Bd_) + seplen | 0) + acc | 0, + acc$0=acc <= x?x:invalid_arg(cst_Bytes_concat), + acc=acc$0, + param=tl; + continue} + var _Bf_=caml_ml_bytes_length(_Bd_) + acc | 0} + else + var _Bf_=acc; + var dst=caml_create_bytes(_Bf_),pos=pos$1,param$0=l; + for(;;) + {if(! param$0)return dst; + var _Be_=param$0[1]; + if(param$0[2]) + {var tl$0=param$0[2]; + caml_blit_bytes(_Be_,0,dst,pos,caml_ml_bytes_length(_Be_)); + caml_blit_bytes + (sep,0,dst,pos + caml_ml_bytes_length(_Be_) | 0,seplen); + var + pos$0=(pos + caml_ml_bytes_length(_Be_) | 0) + seplen | 0, + pos=pos$0, + param$0=tl$0; + continue} + caml_blit_bytes(_Be_,0,dst,pos,caml_ml_bytes_length(_Be_)); + return dst}}} + function cat$0(s1,s2) + {var + l1=caml_ml_bytes_length(s1), + l2=caml_ml_bytes_length(s2), + r=caml_create_bytes(l1 + l2 | 0); + caml_blit_bytes(s1,0,r,0,l1); + caml_blit_bytes(s2,0,r,l1,l2); + return r} + function is_space(param) + {var _Bc_=param - 9 | 0,switch$0=0; + if(4 < _Bc_ >>> 0) + {if(23 === _Bc_)switch$0 = 1} + else + if(2 !== _Bc_)switch$0 = 1; + return switch$0?1:0} + function trim(s) + {var len=caml_ml_bytes_length(s),i=[0,0]; + for(;;) + {if(i[1] < len && is_space(caml_bytes_unsafe_get(s,i[1]))) + {i[1]++;continue} + var j=[0,len - 1 | 0]; + for(;;) + {if(i[1] <= j[1] && is_space(caml_bytes_unsafe_get(s,j[1]))) + {j[1] += -1;continue} + return i[1] <= j[1]?sub(s,i[1],(j[1] - i[1] | 0) + 1 | 0):empty$0}}} + function escaped$0(s) + {var n=[0,0],_A7_=caml_ml_bytes_length(s) - 1 | 0,_A6_=0; + if(_A7_ >= 0) + {var i$0=_A6_; + for(;;) + {var match=caml_bytes_unsafe_get(s,i$0),switch$0=0; + if(32 <= match) + {var _A$_=match - 34 | 0,switch$1=0; + if(58 < _A$_ >>> 0) + {if(93 <= _A$_)switch$1 = 1} + else + if(56 < _A$_ - 1 >>> 0){switch$0 = 1;switch$1 = 1} + if(! switch$1){var _Ba_=1;switch$0 = 2}} + else + if(11 <= match) + {if(13 === match)switch$0 = 1} + else + if(8 <= match)switch$0 = 1; + switch(switch$0){case 0:var _Ba_=4;break;case 1:var _Ba_=2;break} + n[1] = n[1] + _Ba_ | 0; + var _Bb_=i$0 + 1 | 0; + if(_A7_ !== i$0){var i$0=_Bb_;continue} + break}} + if(n[1] === caml_ml_bytes_length(s))return copy(s); + var s$0=caml_create_bytes(n[1]); + n[1] = 0; + var _A9_=caml_ml_bytes_length(s) - 1 | 0,_A8_=0; + if(_A9_ >= 0) + {var i=_A8_; + for(;;) + {var c=caml_bytes_unsafe_get(s,i),switch$2=0; + if(35 <= c) + if(92 === c) + switch$2 = 2; + else + if(127 <= c)switch$2 = 1;else switch$2 = 3; + else + if(32 <= c) + if(34 <= c)switch$2 = 2;else switch$2 = 3; + else + if(14 <= c) + switch$2 = 1; + else + switch(c) + {case 8: + caml_bytes_unsafe_set(s$0,n[1],92); + n[1]++; + caml_bytes_unsafe_set(s$0,n[1],98); + break; + case 9: + caml_bytes_unsafe_set(s$0,n[1],92); + n[1]++; + caml_bytes_unsafe_set(s$0,n[1],116); + break; + case 10: + caml_bytes_unsafe_set(s$0,n[1],92); + n[1]++; + caml_bytes_unsafe_set(s$0,n[1],110); + break; + case 13: + caml_bytes_unsafe_set(s$0,n[1],92); + n[1]++; + caml_bytes_unsafe_set(s$0,n[1],114); + break; + default:switch$2 = 1} + switch(switch$2) + {case 1: + caml_bytes_unsafe_set(s$0,n[1],92); + n[1]++; + caml_bytes_unsafe_set(s$0,n[1],48 + (c / 100 | 0) | 0); + n[1]++; + caml_bytes_unsafe_set(s$0,n[1],48 + ((c / 10 | 0) % 10 | 0) | 0); + n[1]++; + caml_bytes_unsafe_set(s$0,n[1],48 + (c % 10 | 0) | 0); + break; + case 2: + caml_bytes_unsafe_set(s$0,n[1],92); + n[1]++; + caml_bytes_unsafe_set(s$0,n[1],c); + break; + case 3:caml_bytes_unsafe_set(s$0,n[1],c);break + } + n[1]++; + var _A__=i + 1 | 0; + if(_A9_ !== i){var i=_A__;continue} + break}} + return s$0} + function map$5(f,s) + {var l=caml_ml_bytes_length(s); + if(0 === l)return s; + var r=caml_create_bytes(l),_A4_=l - 1 | 0,_A3_=0; + if(_A4_ >= 0) + {var i=_A3_; + for(;;) + {caml_bytes_unsafe_set(r,i,caml_call1(f,caml_bytes_unsafe_get(s,i))); + var _A5_=i + 1 | 0; + if(_A4_ !== i){var i=_A5_;continue} + break}} + return r} + function mapi$1(f,s) + {var l=caml_ml_bytes_length(s); + if(0 === l)return s; + var r=caml_create_bytes(l),_A1_=l - 1 | 0,_A0_=0; + if(_A1_ >= 0) + {var i=_A0_; + for(;;) + {caml_bytes_unsafe_set + (r,i,caml_call2(f,i,caml_bytes_unsafe_get(s,i))); + var _A2_=i + 1 | 0; + if(_A1_ !== i){var i=_A2_;continue} + break}} + return r} + function fold_left$1(f,x,a) + {var r=[0,x],_AY_=caml_ml_bytes_length(a) - 1 | 0,_AX_=0; + if(_AY_ >= 0) + {var i=_AX_; + for(;;) + {r[1] = caml_call2(f,r[1],caml_bytes_unsafe_get(a,i)); + var _AZ_=i + 1 | 0; + if(_AY_ !== i){var i=_AZ_;continue} + break}} + return r[1]} + function fold_right$0(f,a,x) + {var r=[0,x],_AV_=caml_ml_bytes_length(a) - 1 | 0; + if(_AV_ >= 0) + {var i=_AV_; + for(;;) + {r[1] = caml_call2(f,caml_bytes_unsafe_get(a,i),r[1]); + var _AW_=i - 1 | 0; + if(0 !== i){var i=_AW_;continue} + break}} + return r[1]} + function exists$1(p,s) + {var n=caml_ml_bytes_length(s),i=0; + for(;;) + {if(i === n)return 0; + if(caml_call1(p,caml_bytes_unsafe_get(s,i)))return 1; + var i$0=i + 1 | 0,i=i$0}} + function for_all$1(p,s) + {var n=caml_ml_bytes_length(s),i=0; + for(;;) + {if(i === n)return 1; + if(! caml_call1(p,caml_bytes_unsafe_get(s,i)))return 0; + var i$0=i + 1 | 0,i=i$0}} + function uppercase_ascii$0(s){return map$5(uppercase_ascii,s)} + function lowercase_ascii$0(s){return map$5(lowercase_ascii,s)} + function apply1(f,s) + {if(0 === caml_ml_bytes_length(s))return s; + var r=copy(s); + caml_bytes_unsafe_set(r,0,caml_call1(f,caml_bytes_unsafe_get(s,0))); + return r} + function capitalize_ascii(s){return apply1(uppercase_ascii,s)} + function uncapitalize_ascii(s){return apply1(lowercase_ascii,s)} + function starts_with(prefix,s) + {var + len_s=caml_ml_bytes_length(s), + len_pre=caml_ml_bytes_length(prefix), + _AU_=len_pre <= len_s?1:0; + if(! _AU_)return _AU_; + var i=0; + for(;;) + {if(i === len_pre)return 1; + if(caml_bytes_unsafe_get(s,i) !== caml_bytes_unsafe_get(prefix,i)) + return 0; + var i$0=i + 1 | 0,i=i$0}} + function ends_with(suffix,s) + {var + len_s=caml_ml_bytes_length(s), + len_suf=caml_ml_bytes_length(suffix), + diff=len_s - len_suf | 0, + _AT_=0 <= diff?1:0; + if(! _AT_)return _AT_; + var i=0; + for(;;) + {if(i === len_suf)return 1; + if + (caml_bytes_unsafe_get(s,diff + i | 0) + !== + caml_bytes_unsafe_get(suffix,i)) + return 0; + var i$0=i + 1 | 0,i=i$0}} + function index_rec(s,lim,i,c) + {var i$0=i; + for(;;) + {if(lim <= i$0)throw Not_found; + if(caml_bytes_unsafe_get(s,i$0) === c)return i$0; + var i$1=i$0 + 1 | 0,i$0=i$1}} + function index(s,c){return index_rec(s,caml_ml_bytes_length(s),0,c)} + function index_rec_opt(s,lim,i,c) + {var i$0=i; + for(;;) + {if(lim <= i$0)return 0; + if(caml_bytes_unsafe_get(s,i$0) === c)return [0,i$0]; + var i$1=i$0 + 1 | 0,i$0=i$1}} + function index_opt(s,c) + {return index_rec_opt(s,caml_ml_bytes_length(s),0,c)} + function index_from(s,i,c) + {var l=caml_ml_bytes_length(s); + if(0 <= i && l >= i)return index_rec(s,l,i,c); + return invalid_arg(cst_String_index_from_Bytes_in)} + function index_from_opt(s,i,c) + {var l=caml_ml_bytes_length(s); + if(0 <= i && l >= i)return index_rec_opt(s,l,i,c); + return invalid_arg(cst_String_index_from_opt_Byte)} + function rindex_rec(s,i,c) + {var i$0=i; + for(;;) + {if(0 > i$0)throw Not_found; + if(caml_bytes_unsafe_get(s,i$0) === c)return i$0; + var i$1=i$0 - 1 | 0,i$0=i$1}} + function rindex(s,c) + {return rindex_rec(s,caml_ml_bytes_length(s) - 1 | 0,c)} + function rindex_from(s,i,c) + {if(-1 <= i && caml_ml_bytes_length(s) > i)return rindex_rec(s,i,c); + return invalid_arg(cst_String_rindex_from_Bytes_r)} + function rindex_rec_opt(s,i,c) + {var i$0=i; + for(;;) + {if(0 > i$0)return 0; + if(caml_bytes_unsafe_get(s,i$0) === c)return [0,i$0]; + var i$1=i$0 - 1 | 0,i$0=i$1}} + function rindex_opt(s,c) + {return rindex_rec_opt(s,caml_ml_bytes_length(s) - 1 | 0,c)} + function rindex_from_opt(s,i,c) + {if(-1 <= i && caml_ml_bytes_length(s) > i)return rindex_rec_opt(s,i,c); + return invalid_arg(cst_String_rindex_from_opt_Byt)} + function contains_from(s,i,c) + {var l=caml_ml_bytes_length(s); + if(0 <= i && l >= i) + try + {index_rec(s,l,i,c);var _AR_=1;return _AR_} + catch(_AS_) + {_AS_ = caml_wrap_exception(_AS_); + if(_AS_ === Not_found)return 0; + throw _AS_} + return invalid_arg(cst_String_contains_from_Bytes)} + function contains(s,c){return contains_from(s,0,c)} + function rcontains_from(s,i,c) + {if(0 <= i && caml_ml_bytes_length(s) > i) + try + {rindex_rec(s,i,c);var _AP_=1;return _AP_} + catch(_AQ_) + {_AQ_ = caml_wrap_exception(_AQ_); + if(_AQ_ === Not_found)return 0; + throw _AQ_} + return invalid_arg(cst_String_rcontains_from_Byte)} + function compare$8(x,y){return runtime.caml_bytes_compare(x,y)} + function split_on_char(sep,s) + {var + r=[0,0], + j=[0,caml_ml_bytes_length(s)], + _AL_=caml_ml_bytes_length(s) - 1 | 0; + if(_AL_ >= 0) + {var i=_AL_; + for(;;) + {if(caml_bytes_unsafe_get(s,i) === sep) + {var _AN_=r[1]; + r[1] = [0,sub(s,i + 1 | 0,(j[1] - i | 0) - 1 | 0),_AN_]; + j[1] = i} + var _AO_=i - 1 | 0; + if(0 !== i){var i=_AO_;continue} + break}} + var _AM_=r[1]; + return [0,sub(s,0,j[1]),_AM_]} + function uppercase$0(s){return map$5(uppercase,s)} + function lowercase$0(s){return map$5(lowercase,s)} + function capitalize(s){return apply1(uppercase,s)} + function uncapitalize(s){return apply1(lowercase,s)} + function to_seq$2(s) + {function aux(i,param) + {if(i === caml_ml_bytes_length(s))return 0; + var x=caml_bytes_get(s,i),_AJ_=i + 1 | 0; + return [0,x,function(_AK_){return aux(_AJ_,_AK_)}]} + var _AH_=0; + return function(_AI_){return aux(_AH_,_AI_)}} + function to_seqi(s) + {function aux(i,param) + {if(i === caml_ml_bytes_length(s))return 0; + var x=caml_bytes_get(s,i),_AF_=i + 1 | 0; + return [0,[0,i,x],function(_AG_){return aux(_AF_,_AG_)}]} + var _AD_=0; + return function(_AE_){return aux(_AD_,_AE_)}} + function of_seq$0(i) + {var n=[0,0],buf=[0,make$0(256,0)]; + iter + (function(c) + {if(n[1] === caml_ml_bytes_length(buf[1])) + {var + new_len= + min$1(2 * caml_ml_bytes_length(buf[1]) | 0,max_string_length); + if(caml_ml_bytes_length(buf[1]) === new_len) + failwith(cst_Bytes_of_seq_cannot_grow_b); + var new_buf=make$0(new_len,0); + blit(buf[1],0,new_buf,0,n[1]); + buf[1] = new_buf} + caml_bytes_set(buf[1],n[1],c); + n[1]++; + return 0}, + i); + return sub(buf[1],0,n[1])} + function get$1(b,i){return caml_bswap16(caml_bytes_get16(b,i))} + function get_int8(b,i){return caml_bytes_get(b,i) << 24 >> 24} + function get_uint16_le(b,i){return caml_bytes_get16(b,i)} + function get_uint16_be(b,i){return caml_bswap16(caml_bytes_get16(b,i))} + function get_int16_ne(b,i){return caml_bytes_get16(b,i) << 16 >> 16} + function get_int16_le(b,i){return caml_bytes_get16(b,i) << 16 >> 16} + function get_int16_be(b,i){return get_uint16_be(b,i) << 16 >> 16} + function get_int32_le(b,i){return caml_bytes_get32(b,i)} + function get_int32_be(b,i){return caml_int32_bswap(caml_bytes_get32(b,i))} + function get_int64_le(b,i){return caml_bytes_get64(b,i)} + function get_int64_be(b,i){return caml_int64_bswap(caml_bytes_get64(b,i))} + function set$0(b,i,x){return caml_bytes_set16(b,i,caml_bswap16(x))} + function set_int16_le(b,i,x){return caml_bytes_set16(b,i,x)} + function set_int16_be(b,i,x){return caml_bytes_set16(b,i,caml_bswap16(x))} + function set_int32_le(b,i,x){return caml_bytes_set32(b,i,x)} + function set_int32_be(b,i,x) + {return caml_bytes_set32(b,i,caml_int32_bswap(x))} + function set_int64_le(b,i,x){return caml_bytes_set64(b,i,x)} + function set_int64_be(b,i,x) + {return caml_bytes_set64(b,i,caml_int64_bswap(x))} + var set_uint8=caml_bytes_set,set_uint16_ne=caml_bytes_set16; + function dec_ret(n,u){return utf_decode(n,u)} + function not_in_x80_to_xBF(b){return 2 !== (b >>> 6 | 0)?1:0} + function not_in_xA0_to_xBF(b){return 5 !== (b >>> 5 | 0)?1:0} + function not_in_x80_to_x9F(b){return 4 !== (b >>> 5 | 0)?1:0} + function not_in_x90_to_xBF(b) + {var _AB_=b < 144?1:0,_AC_=_AB_ || (191 < b?1:0);return _AC_} + function not_in_x80_to_x8F(b){return 8 !== (b >>> 4 | 0)?1:0} + function utf_8_uchar_3(b0,b1,b2) + {return (b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63} + function utf_8_uchar_4(b0,b1,b2,b3) + {return (b0 & 7) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63} + function get_utf_8_uchar(b,i) + {var b0=caml_bytes_get(b,i),max=caml_ml_bytes_length(b) - 1 | 0; + if(224 <= b0) + {var switch$0=0; + if(237 <= b0) + {if(245 > b0) + switch(b0 - 237 | 0) + {case 0: + var i$0=i + 1 | 0; + if(max < i$0)return dec_invalid(1); + var b1=caml_bytes_unsafe_get(b,i$0); + if(not_in_x80_to_x9F(b1))return dec_invalid(1); + var i$1=i$0 + 1 | 0; + if(max < i$1)return dec_invalid(2); + var b2=caml_bytes_unsafe_get(b,i$1); + return not_in_x80_to_xBF(b2) + ?dec_invalid(2) + :dec_ret(3,utf_8_uchar_3(b0,b1,b2)); + case 3: + var i$4=i + 1 | 0; + if(max < i$4)return dec_invalid(1); + var b1$1=caml_bytes_unsafe_get(b,i$4); + if(not_in_x90_to_xBF(b1$1))return dec_invalid(1); + var i$5=i$4 + 1 | 0; + if(max < i$5)return dec_invalid(2); + var b2$1=caml_bytes_unsafe_get(b,i$5); + if(not_in_x80_to_xBF(b2$1))return dec_invalid(2); + var i$6=i$5 + 1 | 0; + if(max < i$6)return dec_invalid(3); + var b3=caml_bytes_unsafe_get(b,i$6); + return not_in_x80_to_xBF(b3) + ?dec_invalid(3) + :dec_ret(4,utf_8_uchar_4(b0,b1$1,b2$1,b3)); + case 7: + var i$10=i + 1 | 0; + if(max < i$10)return dec_invalid(1); + var b1$3=caml_bytes_unsafe_get(b,i$10); + if(not_in_x80_to_x8F(b1$3))return dec_invalid(1); + var i$11=i$10 + 1 | 0; + if(max < i$11)return dec_invalid(2); + var b2$3=caml_bytes_unsafe_get(b,i$11); + if(not_in_x80_to_xBF(b2$3))return dec_invalid(2); + var i$12=i$11 + 1 | 0; + if(max < i$12)return dec_invalid(3); + var b3$1=caml_bytes_unsafe_get(b,i$12); + return not_in_x80_to_xBF(b3$1) + ?dec_invalid(3) + :dec_ret(4,utf_8_uchar_4(b0,b1$3,b2$3,b3$1)); + case 1: + case 2:switch$0 = 1;break; + default: + var i$7=i + 1 | 0; + if(max < i$7)return dec_invalid(1); + var b1$2=caml_bytes_unsafe_get(b,i$7); + if(not_in_x80_to_xBF(b1$2))return dec_invalid(1); + var i$8=i$7 + 1 | 0; + if(max < i$8)return dec_invalid(2); + var b2$2=caml_bytes_unsafe_get(b,i$8); + if(not_in_x80_to_xBF(b2$2))return dec_invalid(2); + var i$9=i$8 + 1 | 0; + if(max < i$9)return dec_invalid(3); + var b3$0=caml_bytes_unsafe_get(b,i$9); + return not_in_x80_to_xBF(b3$0) + ?dec_invalid(3) + :dec_ret(4,utf_8_uchar_4(b0,b1$2,b2$2,b3$0))}} + else + {if(225 > b0) + {var i$13=i + 1 | 0; + if(max < i$13)return dec_invalid(1); + var b1$4=caml_bytes_unsafe_get(b,i$13); + if(not_in_xA0_to_xBF(b1$4))return dec_invalid(1); + var i$14=i$13 + 1 | 0; + if(max < i$14)return dec_invalid(2); + var b2$4=caml_bytes_unsafe_get(b,i$14); + return not_in_x80_to_xBF(b2$4) + ?dec_invalid(2) + :dec_ret(3,utf_8_uchar_3(b0,b1$4,b2$4))} + switch$0 = 1} + if(switch$0) + {var i$2=i + 1 | 0; + if(max < i$2)return dec_invalid(1); + var b1$0=caml_bytes_unsafe_get(b,i$2); + if(not_in_x80_to_xBF(b1$0))return dec_invalid(1); + var i$3=i$2 + 1 | 0; + if(max < i$3)return dec_invalid(2); + var b2$0=caml_bytes_unsafe_get(b,i$3); + return not_in_x80_to_xBF(b2$0) + ?dec_invalid(2) + :dec_ret(3,utf_8_uchar_3(b0,b1$0,b2$0))}} + else + {if(128 > b0)return dec_ret(1,b0); + if(194 <= b0) + {var i$15=i + 1 | 0; + if(max < i$15)return dec_invalid(1); + var b1$5=caml_bytes_unsafe_get(b,i$15); + return not_in_x80_to_xBF(b1$5) + ?dec_invalid(1) + :dec_ret(2,(b0 & 31) << 6 | b1$5 & 63)}} + return dec_invalid(1)} + function set_utf_8_uchar(b,i,u) + {function set(_AA_,_Az_,_Ay_) + {caml_bytes_unsafe_set(_AA_,_Az_,_Ay_);return 0} + var max=caml_ml_bytes_length(b) - 1 | 0; + if(0 > u)throw [0,Assert_failure,_A_]; + if(127 >= u){caml_bytes_set(b,i,u);return 1} + if(2047 >= u) + {var last$1=i + 1 | 0; + return max < last$1 + ?0 + :(caml_bytes_set(b,i,192 | u >>> 6 | 0), + set(b,last$1,128 | u & 63), + 2)} + if(65535 >= u) + {var last$0=i + 2 | 0; + return max < last$0 + ?0 + :(caml_bytes_set(b,i,224 | u >>> 12 | 0), + set(b,i + 1 | 0,128 | (u >>> 6 | 0) & 63), + set(b,last$0,128 | u & 63), + 3)} + if(1114111 < u)throw [0,Assert_failure,_z_]; + var last=i + 3 | 0; + return max < last + ?0 + :(caml_bytes_set(b,i,240 | u >>> 18 | 0), + set(b,i + 1 | 0,128 | (u >>> 12 | 0) & 63), + set(b,i + 2 | 0,128 | (u >>> 6 | 0) & 63), + set(b,last,128 | u & 63), + 4)} + function is_valid_utf_8(b) + {var max=caml_ml_bytes_length(b) - 1 | 0,i=0; + for(;;) + {if(max < i)return 1; + var match=caml_bytes_unsafe_get(b,i); + if(224 <= match) + {var switch$0=0; + if(237 <= match) + {if(245 > match) + switch(match - 237 | 0) + {case 0: + var last=i + 2 | 0; + if + (max + >= + last + && + ! + not_in_x80_to_x9F(caml_bytes_unsafe_get(b,i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last))) + {var i$0=last + 1 | 0,i=i$0;continue} + return 0; + case 3: + var last$1=i + 3 | 0; + if + (max + >= + last$1 + && + ! + not_in_x90_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 2 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$1))) + {var i$2=last$1 + 1 | 0,i=i$2;continue} + return 0; + case 7: + var last$3=i + 3 | 0; + if + (max + >= + last$3 + && + ! + not_in_x80_to_x8F(caml_bytes_unsafe_get(b,i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 2 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$3))) + {var i$4=last$3 + 1 | 0,i=i$4;continue} + return 0; + case 1: + case 2:switch$0 = 1;break; + default: + var last$2=i + 3 | 0; + if + (max + >= + last$2 + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 2 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$2))) + {var i$3=last$2 + 1 | 0,i=i$3;continue} + return 0}} + else + {if(225 > match) + {var last$4=i + 2 | 0; + if + (max + >= + last$4 + && + ! + not_in_xA0_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$4))) + {var i$5=last$4 + 1 | 0,i=i$5;continue} + return 0} + switch$0 = 1} + if(switch$0) + {var last$0=i + 2 | 0; + if + (max + >= + last$0 + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$0))) + {var i$1=last$0 + 1 | 0,i=i$1;continue} + return 0}} + else + {if(128 > match){var i$7=i + 1 | 0,i=i$7;continue} + if(194 <= match) + {var last$5=i + 1 | 0; + if + (max + >= + last$5 + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$5))) + {var i$6=last$5 + 1 | 0,i=i$6;continue} + return 0}} + return 0}} + function get_utf_16be_uchar(b,i) + {var max=caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i) + {if(i === max)return dec_invalid(1); + var hi=get$1(b,i); + if(55296 <= hi && 57343 >= hi) + {if(56319 < hi)return dec_invalid(2); + var last=i + 3 | 0; + if(max < last)return dec_invalid((max - i | 0) + 1 | 0); + var u=get$1(b,i + 2 | 0); + if(56320 <= u && 57343 >= u) + {var u$0=((hi & 1023) << 10 | u & 1023) + 65536 | 0; + return dec_ret(4,u$0)} + return dec_invalid(2)} + return dec_ret(2,hi)} + return invalid_arg(cst_index_out_of_bounds)} + function set_utf_16be_uchar(b,i,u) + {var max=caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i) + {if(0 > u)throw [0,Assert_failure,_C_]; + if(65535 >= u) + {var last$0=i + 1 | 0;return max < last$0?0:(set$0(b,i,u),2)} + if(1114111 < u)throw [0,Assert_failure,_B_]; + var last=i + 3 | 0; + if(max < last)return 0; + var u$0=u - 65536 | 0,hi=55296 | u$0 >>> 10 | 0,lo=56320 | u$0 & 1023; + set$0(b,i,hi); + set$0(b,i + 2 | 0,lo); + return 4} + return invalid_arg(cst_index_out_of_bounds$0)} + function is_valid_utf_16be(b) + {var max=caml_ml_bytes_length(b) - 1 | 0,i=0; + for(;;) + {if(max < i)return 1; + if(i === max)return 0; + var u=get$1(b,i); + if(55296 <= u && 57343 >= u) + {if(56319 < u)return 0; + var last=i + 3 | 0; + if(max < last)return 0; + var u$0=get$1(b,i + 2 | 0); + if(56320 <= u$0 && 57343 >= u$0){var i$1=i + 4 | 0,i=i$1;continue} + return 0} + var i$0=i + 2 | 0,i=i$0}} + function get_utf_16le_uchar(b,i) + {var max=caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i) + {if(i === max)return dec_invalid(1); + var hi=caml_bytes_get16(b,i); + if(55296 <= hi && 57343 >= hi) + {if(56319 < hi)return dec_invalid(2); + var last=i + 3 | 0; + if(max < last)return dec_invalid((max - i | 0) + 1 | 0); + var u=caml_bytes_get16(b,i + 2 | 0); + if(56320 <= u && 57343 >= u) + {var u$0=((hi & 1023) << 10 | u & 1023) + 65536 | 0; + return dec_ret(4,u$0)} + return dec_invalid(2)} + return dec_ret(2,hi)} + return invalid_arg(cst_index_out_of_bounds$1)} + function set_utf_16le_uchar(b,i,u) + {var max=caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i) + {if(0 > u)throw [0,Assert_failure,_E_]; + if(65535 >= u) + {var last$0=i + 1 | 0; + return max < last$0?0:(caml_bytes_set16(b,i,u),2)} + if(1114111 < u)throw [0,Assert_failure,_D_]; + var last=i + 3 | 0; + if(max < last)return 0; + var u$0=u - 65536 | 0,hi=55296 | u$0 >>> 10 | 0,lo=56320 | u$0 & 1023; + caml_bytes_set16(b,i,hi); + caml_bytes_set16(b,i + 2 | 0,lo); + return 4} + return invalid_arg(cst_index_out_of_bounds$2)} + function is_valid_utf_16le(b) + {var max=caml_ml_bytes_length(b) - 1 | 0,i=0; + for(;;) + {if(max < i)return 1; + if(i === max)return 0; + var u=caml_bytes_get16(b,i); + if(55296 <= u && 57343 >= u) + {if(56319 < u)return 0; + var last=i + 3 | 0; + if(max < last)return 0; + var u$0=caml_bytes_get16(b,i + 2 | 0); + if(56320 <= u$0 && 57343 >= u$0){var i$1=i + 4 | 0,i=i$1;continue} + return 0} + var i$0=i + 2 | 0,i=i$0}} + var + set_int64_ne=caml_bytes_set64, + set_int32_ne=caml_bytes_set32, + set_int16_ne=caml_bytes_set16, + set_int8=caml_bytes_set, + get_int64_ne=caml_bytes_get64, + get_int32_ne=caml_bytes_get32, + get_uint16_ne=caml_bytes_get16, + get_uint8=caml_bytes_get, + unsafe_of_string=caml_bytes_of_string, + unsafe_to_string=caml_string_of_bytes, + equal$8=runtime.caml_bytes_equal, + include$1= + [0, + make$0, + init$1, + empty$0, + copy, + to_bytes, + of_bytes, + sub, + sub_string, + extend, + fill, + blit, + blit$0, + concat$0, + cat$0, + iter$3, + iteri$1, + map$5, + mapi$1, + fold_left$1, + fold_right$0, + for_all$1, + exists$1, + trim, + escaped$0, + index, + index_opt, + rindex, + rindex_opt, + index_from, + index_from_opt, + rindex_from, + rindex_from_opt, + contains, + contains_from, + rcontains_from, + uppercase$0, + lowercase$0, + capitalize, + uncapitalize, + uppercase_ascii$0, + lowercase_ascii$0, + capitalize_ascii, + uncapitalize_ascii, + compare$8, + equal$8, + starts_with, + ends_with, + unsafe_to_string, + unsafe_of_string, + split_on_char, + to_seq$2, + to_seqi, + of_seq$0, + get_utf_8_uchar, + set_utf_8_uchar, + is_valid_utf_8, + get_utf_16be_uchar, + set_utf_16be_uchar, + is_valid_utf_16be, + get_utf_16le_uchar, + set_utf_16le_uchar, + is_valid_utf_16le, + get_uint8, + get_int8, + get_uint16_ne, + get_uint16_be, + get_uint16_le, + get_int16_ne, + get_int16_be, + get_int16_le, + get_int32_ne, + get_int32_be, + get_int32_le, + get_int64_ne, + get_int64_be, + get_int64_le, + set_uint8, + set_int8, + set_uint16_ne, + set_int16_be, + set_int16_le, + set_int16_ne, + set_int16_be, + set_int16_le, + set_int32_ne, + set_int32_be, + set_int32_le, + set_int64_ne, + set_int64_be, + set_int64_le]; + caml_register_global(790,include$1,"Stdlib__Bytes"); + function make$1(n,c){return caml_string_of_bytes(make$0(n,c))} + function init$2(n,f){return caml_string_of_bytes(init$1(n,f))} + function copy$0(s) + {return caml_string_of_bytes(copy(caml_bytes_of_string(s)))} + function sub$0(s,ofs,len) + {return caml_string_of_bytes(sub(caml_bytes_of_string(s),ofs,len))} + function concat$1(sep,l) + {if(! l)return cst$3; + var seplen=caml_ml_string_length(sep),acc=0,param=l,pos$1=0; + for(;;) + {if(param) + {var _Av_=param[1]; + if(param[2]) + {var + tl=param[2], + x=(caml_ml_string_length(_Av_) + seplen | 0) + acc | 0, + acc$0=acc <= x?x:invalid_arg(cst_String_concat), + acc=acc$0, + param=tl; + continue} + var _Ax_=caml_ml_string_length(_Av_) + acc | 0} + else + var _Ax_=acc; + var dst=caml_create_bytes(_Ax_),pos=pos$1,param$0=l; + for(;;) + {if(param$0) + {var _Aw_=param$0[1]; + if(param$0[2]) + {var tl$0=param$0[2]; + caml_blit_string(_Aw_,0,dst,pos,caml_ml_string_length(_Aw_)); + caml_blit_string + (sep,0,dst,pos + caml_ml_string_length(_Aw_) | 0,seplen); + var + pos$0=(pos + caml_ml_string_length(_Aw_) | 0) + seplen | 0, + pos=pos$0, + param$0=tl$0; + continue} + caml_blit_string(_Aw_,0,dst,pos,caml_ml_string_length(_Aw_))} + return caml_string_of_bytes(dst)}}} + function iter$4(f,s) + {var _At_=caml_ml_string_length(s) - 1 | 0,_As_=0; + if(_At_ >= 0) + {var i=_As_; + for(;;) + {caml_call1(f,caml_string_unsafe_get(s,i)); + var _Au_=i + 1 | 0; + if(_At_ !== i){var i=_Au_;continue} + break}} + return 0} + function iteri$2(f,s) + {var _Aq_=caml_ml_string_length(s) - 1 | 0,_Ap_=0; + if(_Aq_ >= 0) + {var i=_Ap_; + for(;;) + {caml_call2(f,i,caml_string_unsafe_get(s,i)); + var _Ar_=i + 1 | 0; + if(_Aq_ !== i){var i=_Ar_;continue} + break}} + return 0} + function map$6(f,s) + {return caml_string_of_bytes(map$5(f,caml_bytes_of_string(s)))} + function mapi$2(f,s) + {return caml_string_of_bytes(mapi$1(f,caml_bytes_of_string(s)))} + function fold_right$1(f,x,a) + {return fold_right$0(f,caml_bytes_of_string(x),a)} + function fold_left$2(f,a,x) + {return fold_left$1(f,a,caml_bytes_of_string(x))} + function exists$2(f,s){return exists$1(f,caml_bytes_of_string(s))} + function for_all$2(f,s){return for_all$1(f,caml_bytes_of_string(s))} + function is_space$0(param) + {var _Ao_=param - 9 | 0,switch$0=0; + if(4 < _Ao_ >>> 0) + {if(23 === _Ao_)switch$0 = 1} + else + if(2 !== _Ao_)switch$0 = 1; + return switch$0?1:0} + function trim$0(s) + {if(caml_string_equal(s,cst$4))return s; + if + (! + is_space$0(caml_string_unsafe_get(s,0)) + && + ! + is_space$0(caml_string_unsafe_get(s,caml_ml_string_length(s) - 1 | 0))) + return s; + return caml_string_of_bytes(trim(caml_bytes_of_string(s)))} + function escaped$1(s) + {var n=caml_ml_string_length(s),i=0; + for(;;) + {if(n <= i)return s; + var match=caml_string_unsafe_get(s,i),_An_=match - 32 | 0,switch$0=0; + if(59 < _An_ >>> 0) + {if(33 < _An_ - 61 >>> 0)switch$0 = 1} + else + if(2 === _An_)switch$0 = 1; + if(switch$0) + return caml_string_of_bytes(escaped$0(caml_bytes_of_string(s))); + var i$0=i + 1 | 0,i=i$0}} + function index_rec$0(s,lim,i,c) + {var i$0=i; + for(;;) + {if(lim <= i$0)throw Not_found; + if(caml_string_unsafe_get(s,i$0) === c)return i$0; + var i$1=i$0 + 1 | 0,i$0=i$1}} + function index$0(s,c){return index_rec$0(s,caml_ml_string_length(s),0,c)} + function index_rec_opt$0(s,lim,i,c) + {var i$0=i; + for(;;) + {if(lim <= i$0)return 0; + if(caml_string_unsafe_get(s,i$0) === c)return [0,i$0]; + var i$1=i$0 + 1 | 0,i$0=i$1}} + function index_opt$0(s,c) + {return index_rec_opt$0(s,caml_ml_string_length(s),0,c)} + function index_from$0(s,i,c) + {var l=caml_ml_string_length(s); + if(0 <= i && l >= i)return index_rec$0(s,l,i,c); + return invalid_arg(cst_String_index_from_Bytes_in$0)} + function index_from_opt$0(s,i,c) + {var l=caml_ml_string_length(s); + if(0 <= i && l >= i)return index_rec_opt$0(s,l,i,c); + return invalid_arg(cst_String_index_from_opt_Byte$0)} + function rindex_rec$0(s,i,c) + {var i$0=i; + for(;;) + {if(0 > i$0)throw Not_found; + if(caml_string_unsafe_get(s,i$0) === c)return i$0; + var i$1=i$0 - 1 | 0,i$0=i$1}} + function rindex$0(s,c) + {return rindex_rec$0(s,caml_ml_string_length(s) - 1 | 0,c)} + function rindex_from$0(s,i,c) + {if(-1 <= i && caml_ml_string_length(s) > i)return rindex_rec$0(s,i,c); + return invalid_arg(cst_String_rindex_from_Bytes_r$0)} + function rindex_rec_opt$0(s,i,c) + {var i$0=i; + for(;;) + {if(0 > i$0)return 0; + if(caml_string_unsafe_get(s,i$0) === c)return [0,i$0]; + var i$1=i$0 - 1 | 0,i$0=i$1}} + function rindex_opt$0(s,c) + {return rindex_rec_opt$0(s,caml_ml_string_length(s) - 1 | 0,c)} + function rindex_from_opt$0(s,i,c) + {if(-1 <= i && caml_ml_string_length(s) > i) + return rindex_rec_opt$0(s,i,c); + return invalid_arg(cst_String_rindex_from_opt_Byt$0)} + function contains_from$0(s,i,c) + {var l=caml_ml_string_length(s); + if(0 <= i && l >= i) + try + {index_rec$0(s,l,i,c);var _Al_=1;return _Al_} + catch(_Am_) + {_Am_ = caml_wrap_exception(_Am_); + if(_Am_ === Not_found)return 0; + throw _Am_} + return invalid_arg(cst_String_contains_from_Bytes$0)} + function contains$0(s,c){return contains_from$0(s,0,c)} + function rcontains_from$0(s,i,c) + {if(0 <= i && caml_ml_string_length(s) > i) + try + {rindex_rec$0(s,i,c);var _Aj_=1;return _Aj_} + catch(_Ak_) + {_Ak_ = caml_wrap_exception(_Ak_); + if(_Ak_ === Not_found)return 0; + throw _Ak_} + return invalid_arg(cst_String_rcontains_from_Byte$0)} + function uppercase_ascii$1(s) + {return caml_string_of_bytes(uppercase_ascii$0(caml_bytes_of_string(s)))} + function lowercase_ascii$1(s) + {return caml_string_of_bytes(lowercase_ascii$0(caml_bytes_of_string(s)))} + function capitalize_ascii$0(s) + {return caml_string_of_bytes(capitalize_ascii(caml_bytes_of_string(s)))} + function uncapitalize_ascii$0(s) + {return caml_string_of_bytes(uncapitalize_ascii(caml_bytes_of_string(s)))} + function starts_with$0(prefix,s) + {var + len_s=caml_ml_string_length(s), + len_pre=caml_ml_string_length(prefix), + _Ai_=len_pre <= len_s?1:0; + if(! _Ai_)return _Ai_; + var i=0; + for(;;) + {if(i === len_pre)return 1; + if(caml_string_unsafe_get(s,i) !== caml_string_unsafe_get(prefix,i)) + return 0; + var i$0=i + 1 | 0,i=i$0}} + function ends_with$0(suffix,s) + {var + len_s=caml_ml_string_length(s), + len_suf=caml_ml_string_length(suffix), + diff=len_s - len_suf | 0, + _Ah_=0 <= diff?1:0; + if(! _Ah_)return _Ah_; + var i=0; + for(;;) + {if(i === len_suf)return 1; + if + (caml_string_unsafe_get(s,diff + i | 0) + !== + caml_string_unsafe_get(suffix,i)) + return 0; + var i$0=i + 1 | 0,i=i$0}} + function split_on_char$0(sep,s) + {var + r=[0,0], + j=[0,caml_ml_string_length(s)], + _Ad_=caml_ml_string_length(s) - 1 | 0; + if(_Ad_ >= 0) + {var i=_Ad_; + for(;;) + {if(caml_string_unsafe_get(s,i) === sep) + {var _Af_=r[1]; + r[1] = [0,sub$0(s,i + 1 | 0,(j[1] - i | 0) - 1 | 0),_Af_]; + j[1] = i} + var _Ag_=i - 1 | 0; + if(0 !== i){var i=_Ag_;continue} + break}} + var _Ae_=r[1]; + return [0,sub$0(s,0,j[1]),_Ae_]} + function uppercase$1(s) + {return caml_string_of_bytes(uppercase$0(caml_bytes_of_string(s)))} + function lowercase$1(s) + {return caml_string_of_bytes(lowercase$0(caml_bytes_of_string(s)))} + function capitalize$0(s) + {return caml_string_of_bytes(capitalize(caml_bytes_of_string(s)))} + function uncapitalize$0(s) + {return caml_string_of_bytes(uncapitalize(caml_bytes_of_string(s)))} + function compare$9(x,y){return caml_string_compare(x,y)} + function to_seq$3(s){return to_seq$2(caml_bytes_of_string(s))} + function to_seqi$0(s){return to_seqi(caml_bytes_of_string(s))} + function of_seq$1(g){return caml_string_of_bytes(of_seq$0(g))} + function get_utf_8_uchar$0(s,i) + {return get_utf_8_uchar(caml_bytes_of_string(s),i)} + function is_valid_utf_8$0(s) + {return is_valid_utf_8(caml_bytes_of_string(s))} + function get_utf_16be_uchar$0(s,i) + {return get_utf_16be_uchar(caml_bytes_of_string(s),i)} + function is_valid_utf_16be$0(s) + {return is_valid_utf_16be(caml_bytes_of_string(s))} + function get_utf_16le_uchar$0(s,i) + {return get_utf_16le_uchar(caml_bytes_of_string(s),i)} + function is_valid_utf_16le$0(s) + {return is_valid_utf_16le(caml_bytes_of_string(s))} + function get_int8$0(s,i){return get_int8(caml_bytes_of_string(s),i)} + function get_uint16_le$0(s,i) + {return caml_bytes_get16(caml_bytes_of_string(s),i)} + function get_uint16_be$0(s,i) + {return get_uint16_be(caml_bytes_of_string(s),i)} + function get_int16_ne$0(s,i) + {return get_int16_ne(caml_bytes_of_string(s),i)} + function get_int16_le$0(s,i) + {return get_int16_le(caml_bytes_of_string(s),i)} + function get_int16_be$0(s,i) + {return get_int16_be(caml_bytes_of_string(s),i)} + function get_int32_le$0(s,i) + {return caml_bytes_get32(caml_bytes_of_string(s),i)} + function get_int32_be$0(s,i) + {return get_int32_be(caml_bytes_of_string(s),i)} + function get_int64_le$0(s,i) + {return caml_bytes_get64(caml_bytes_of_string(s),i)} + function get_int64_be$0(s,i) + {return get_int64_be(caml_bytes_of_string(s),i)} + var + get_int64_ne$0=runtime.caml_string_get64, + get_int32_ne$0=runtime.caml_string_get32, + get_uint16_ne$0=runtime.caml_string_get16, + get_uint8$0=caml_string_get, + equal$9=caml_string_equal, + include$2= + [0, + make$1, + init$2, + empty$1, + of_bytes, + to_bytes, + concat$1, + cat, + equal$9, + compare$9, + starts_with$0, + ends_with$0, + contains_from$0, + rcontains_from$0, + contains$0, + sub$0, + split_on_char$0, + map$6, + mapi$2, + fold_left$2, + fold_right$1, + for_all$2, + exists$2, + trim$0, + escaped$1, + uppercase_ascii$1, + lowercase_ascii$1, + capitalize_ascii$0, + uncapitalize_ascii$0, + iter$4, + iteri$2, + index_from$0, + index_from_opt$0, + rindex_from$0, + rindex_from_opt$0, + index$0, + index_opt$0, + rindex$0, + rindex_opt$0, + to_seq$3, + to_seqi$0, + of_seq$1, + get_utf_8_uchar$0, + is_valid_utf_8$0, + get_utf_16be_uchar$0, + is_valid_utf_16be$0, + get_utf_16le_uchar$0, + is_valid_utf_16le$0, + blit$0, + copy$0, + fill, + uppercase$1, + lowercase$1, + capitalize$0, + uncapitalize$0, + get_uint8$0, + get_int8$0, + get_uint16_ne$0, + get_uint16_be$0, + get_uint16_le$0, + get_int16_ne$0, + get_int16_be$0, + get_int16_le$0, + get_int32_ne$0, + get_int32_be$0, + get_int32_le$0, + get_int64_ne$0, + get_int64_be$0, + get_int64_le$0]; + caml_register_global(791,include$2,"Stdlib__String"); + function equal$10(param,_Ac_){return 1} + function compare$10(param,_Ab_){return 0} + function to_string$2(param){return cst$5} + var Stdlib_Unit=[0,equal$10,compare$10,to_string$2]; + caml_register_global(792,Stdlib_Unit,"Stdlib__Unit"); + function to_buffer(buff,ofs,len,v,flags) + {if + (0 <= ofs && 0 <= len && (caml_ml_bytes_length(buff) - len | 0) >= ofs) + return runtime.caml_output_value_to_buffer(buff,ofs,len,v,flags); + return invalid_arg(cst_Marshal_to_buffer_substrin)} + var header_size=20; + function data_size(buff,ofs) + {if(0 <= ofs && (caml_ml_bytes_length(buff) - 20 | 0) >= ofs) + return caml_marshal_data_size(buff,ofs); + return invalid_arg(cst_Marshal_data_size)} + function total_size(buff,ofs){return 20 + data_size(buff,ofs) | 0} + function from_bytes(buff,ofs) + {if(0 <= ofs && (caml_ml_bytes_length(buff) - 20 | 0) >= ofs) + {var len=caml_marshal_data_size(buff,ofs); + return (caml_ml_bytes_length(buff) - (20 + len | 0) | 0) < ofs + ?invalid_arg(cst_Marshal_from_bytes$0) + :runtime.caml_input_value_from_bytes(buff,ofs)} + return invalid_arg(cst_Marshal_from_bytes)} + function from_string(buff,ofs) + {return from_bytes(caml_bytes_of_string(buff),ofs)} + var + Stdlib_Marshal= + [0, + caml_output_value, + to_buffer, + caml_input_value, + from_bytes, + from_string, + header_size, + data_size, + total_size]; + caml_register_global(793,Stdlib_Marshal,"Stdlib__Marshal"); + var make_float=runtime.caml_make_float_vect,Floatarray=[0]; + function init$3(l,f) + {if(0 === l)return [0]; + if(0 > l)return invalid_arg(cst_Array_init); + var res=caml_make_vect(l,caml_call1(f,0)),_z$_=l - 1 | 0,_z__=1; + if(_z$_ >= 1) + {var i=_z__; + for(;;) + {res[1 + i] = caml_call1(f,i); + var _Aa_=i + 1 | 0; + if(_z$_ !== i){var i=_Aa_;continue} + break}} + return res} + function create_matrix(sx,sy,init) + {var res=caml_make_vect(sx,[0]),_z8_=sx - 1 | 0,_z7_=0; + if(_z8_ >= 0) + {var x=_z7_; + for(;;) + {res[1 + x] = caml_make_vect(sy,init); + var _z9_=x + 1 | 0; + if(_z8_ !== x){var x=_z9_;continue} + break}} + return res} + function copy$1(a) + {var l=a.length - 1;return 0 === l?[0]:caml_array_sub(a,0,l)} + function append$1(a1,a2) + {var l1=a1.length - 1; + return 0 === l1 + ?copy$1(a2) + :0 === a2.length - 1 + ?caml_array_sub(a1,0,l1) + :runtime.caml_array_append(a1,a2)} + function sub$1(a,ofs,len) + {if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) + return caml_array_sub(a,ofs,len); + return invalid_arg(cst_Array_sub)} + function fill$0(a,ofs,len,v) + {if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) + return runtime.caml_array_fill(a,ofs,len,v); + return invalid_arg(cst_Array_fill)} + function blit$1(a1,ofs1,a2,ofs2,len) + {if + (0 + <= + len + && + 0 + <= + ofs1 + && + (a1.length - 1 - len | 0) + >= + ofs1 + && + 0 + <= + ofs2 + && + (a2.length - 1 - len | 0) + >= + ofs2) + return runtime.caml_array_blit(a1,ofs1,a2,ofs2,len); + return invalid_arg(cst_Array_blit)} + function iter$5(f,a) + {var _z5_=a.length - 1 - 1 | 0,_z4_=0; + if(_z5_ >= 0) + {var i=_z4_; + for(;;) + {caml_call1(f,a[1 + i]); + var _z6_=i + 1 | 0; + if(_z5_ !== i){var i=_z6_;continue} + break}} + return 0} + function iter2$1(f,a,b) + {if(a.length - 1 !== b.length - 1) + return invalid_arg(cst_Array_iter2_arrays_must_ha); + var _z2_=a.length - 1 - 1 | 0,_z1_=0; + if(_z2_ >= 0) + {var i=_z1_; + for(;;) + {caml_call2(f,a[1 + i],b[1 + i]); + var _z3_=i + 1 | 0; + if(_z2_ !== i){var i=_z3_;continue} + break}} + return 0} + function map$7(f,a) + {var l=a.length - 1; + if(0 === l)return [0]; + var r=caml_make_vect(l,caml_call1(f,a[1])),_zZ_=l - 1 | 0,_zY_=1; + if(_zZ_ >= 1) + {var i=_zY_; + for(;;) + {r[1 + i] = caml_call1(f,a[1 + i]); + var _z0_=i + 1 | 0; + if(_zZ_ !== i){var i=_z0_;continue} + break}} + return r} + function map2$1(f,a,b) + {var la=a.length - 1,lb=b.length - 1; + if(la !== lb)return invalid_arg(cst_Array_map2_arrays_must_hav); + if(0 === la)return [0]; + var r=caml_make_vect(la,caml_call2(f,a[1],b[1])),_zW_=la - 1 | 0,_zV_=1; + if(_zW_ >= 1) + {var i=_zV_; + for(;;) + {r[1 + i] = caml_call2(f,a[1 + i],b[1 + i]); + var _zX_=i + 1 | 0; + if(_zW_ !== i){var i=_zX_;continue} + break}} + return r} + function iteri$3(f,a) + {var _zT_=a.length - 1 - 1 | 0,_zS_=0; + if(_zT_ >= 0) + {var i=_zS_; + for(;;) + {caml_call2(f,i,a[1 + i]); + var _zU_=i + 1 | 0; + if(_zT_ !== i){var i=_zU_;continue} + break}} + return 0} + function mapi$3(f,a) + {var l=a.length - 1; + if(0 === l)return [0]; + var r=caml_make_vect(l,caml_call2(f,0,a[1])),_zQ_=l - 1 | 0,_zP_=1; + if(_zQ_ >= 1) + {var i=_zP_; + for(;;) + {r[1 + i] = caml_call2(f,i,a[1 + i]); + var _zR_=i + 1 | 0; + if(_zQ_ !== i){var i=_zR_;continue} + break}} + return r} + function to_list$1(a) + {var i$1=a.length - 1 - 1 | 0,i=i$1,res=0; + for(;;) + {if(0 > i)return res; + var res$0=[0,a[1 + i],res],i$0=i - 1 | 0,i=i$0,res=res$0}} + function list_length(accu,param) + {var accu$0=accu,param$0=param; + for(;;) + {if(! param$0)return accu$0; + var + param$1=param$0[2], + accu$1=accu$0 + 1 | 0, + accu$0=accu$1, + param$0=param$1}} + function of_list(l) + {if(! l)return [0]; + var tl=l[2],hd=l[1],a=caml_make_vect(list_length(0,l),hd),i=1,param=tl; + for(;;) + {if(! param)return a; + var tl$0=param[2],hd$0=param[1]; + a[1 + i] = hd$0; + var i$0=i + 1 | 0,i=i$0,param=tl$0}} + function fold_left$3(f,x,a) + {var r=[0,x],_zN_=a.length - 1 - 1 | 0,_zM_=0; + if(_zN_ >= 0) + {var i=_zM_; + for(;;) + {r[1] = caml_call2(f,r[1],a[1 + i]); + var _zO_=i + 1 | 0; + if(_zN_ !== i){var i=_zO_;continue} + break}} + return r[1]} + function fold_left_map$0(f,acc,input_array) + {var len=input_array.length - 1; + if(0 === len)return [0,acc,[0]]; + var + match=caml_call2(f,acc,input_array[1]), + elt=match[2], + acc$0=match[1], + output_array=caml_make_vect(len,elt), + acc$1=[0,acc$0], + _zK_=len - 1 | 0, + _zJ_=1; + if(_zK_ >= 1) + {var i=_zJ_; + for(;;) + {var + match$0=caml_call2(f,acc$1[1],input_array[1 + i]), + elt$0=match$0[2], + acc$2=match$0[1]; + acc$1[1] = acc$2; + output_array[1 + i] = elt$0; + var _zL_=i + 1 | 0; + if(_zK_ !== i){var i=_zL_;continue} + break}} + return [0,acc$1[1],output_array]} + function fold_right$2(f,a,x) + {var r=[0,x],_zH_=a.length - 1 - 1 | 0; + if(_zH_ >= 0) + {var i=_zH_; + for(;;) + {r[1] = caml_call2(f,a[1 + i],r[1]); + var _zI_=i - 1 | 0; + if(0 !== i){var i=_zI_;continue} + break}} + return r[1]} + function exists$3(p,a) + {var n=a.length - 1,i=0; + for(;;) + {if(i === n)return 0; + if(caml_call1(p,a[1 + i]))return 1; + var i$0=i + 1 | 0,i=i$0}} + function for_all$3(p,a) + {var n=a.length - 1,i=0; + for(;;) + {if(i === n)return 1; + if(! caml_call1(p,a[1 + i]))return 0; + var i$0=i + 1 | 0,i=i$0}} + function for_all2$1(p,l1,l2) + {var n1=l1.length - 1,n2=l2.length - 1; + if(n1 !== n2)return invalid_arg(cst_Array_for_all2); + var i=0; + for(;;) + {if(i === n1)return 1; + if(! caml_call2(p,l1[1 + i],l2[1 + i]))return 0; + var i$0=i + 1 | 0,i=i$0}} + function exists2$1(p,l1,l2) + {var n1=l1.length - 1,n2=l2.length - 1; + if(n1 !== n2)return invalid_arg(cst_Array_exists2); + var i=0; + for(;;) + {if(i === n1)return 0; + if(caml_call2(p,l1[1 + i],l2[1 + i]))return 1; + var i$0=i + 1 | 0,i=i$0}} + function mem$0(x,a) + {var n=a.length - 1,i=0; + for(;;) + {if(i === n)return 0; + if(0 === caml_compare(a[1 + i],x))return 1; + var i$0=i + 1 | 0,i=i$0}} + function memq$0(x,a) + {var n=a.length - 1,i=0; + for(;;) + {if(i === n)return 0; + if(x === a[1 + i])return 1; + var i$0=i + 1 | 0,i=i$0}} + function find_opt$0(p,a) + {var n=a.length - 1,i=0; + for(;;) + {if(i === n)return 0; + var x=a[1 + i]; + if(caml_call1(p,x))return [0,x]; + var i$0=i + 1 | 0,i=i$0}} + function find_map$1(f,a) + {var n=a.length - 1,i=0; + for(;;) + {if(i === n)return 0; + var r=caml_call1(f,a[1 + i]); + if(r)return r; + var i$0=i + 1 | 0,i=i$0}} + function split$0(x) + {if(caml_equal(x,[0]))return [0,[0],[0]]; + var + match=x[1], + b0=match[2], + a0=match[1], + n=x.length - 1, + a=caml_make_vect(n,a0), + b=caml_make_vect(n,b0), + _zF_=n - 1 | 0, + _zE_=1; + if(_zF_ >= 1) + {var i=_zE_; + for(;;) + {var match$0=x[1 + i],bi=match$0[2],ai=match$0[1]; + a[1 + i] = ai; + b[1 + i] = bi; + var _zG_=i + 1 | 0; + if(_zF_ !== i){var i=_zG_;continue} + break}} + return [0,a,b]} + function combine$0(a,b) + {var na=a.length - 1,nb=b.length - 1; + if(na !== nb)invalid_arg(cst_Array_combine); + if(0 === na)return [0]; + var x=caml_make_vect(na,[0,a[1],b[1]]),_zC_=na - 1 | 0,_zB_=1; + if(_zC_ >= 1) + {var i=_zB_; + for(;;) + {x[1 + i] = [0,a[1 + i],b[1 + i]]; + var _zD_=i + 1 | 0; + if(_zC_ !== i){var i=_zD_;continue} + break}} + return x} + var Bottom=[248,cst_Stdlib_Array_Bottom,caml_fresh_oo_id(0)]; + function sort(cmp,a) + {function maxson(l,i) + {var i31=((i + i | 0) + i | 0) + 1 | 0,x=[0,i31]; + if((i31 + 2 | 0) < l) + {var _zu_=i31 + 1 | 0,_zv_=caml_check_bound(a,_zu_)[1 + _zu_]; + if(caml_call2(cmp,caml_check_bound(a,i31)[1 + i31],_zv_) < 0) + x[1] = i31 + 1 | 0; + var + _zw_=i31 + 2 | 0, + _zx_=caml_check_bound(a,_zw_)[1 + _zw_], + _zy_=x[1]; + if(caml_call2(cmp,caml_check_bound(a,_zy_)[1 + _zy_],_zx_) < 0) + x[1] = i31 + 2 | 0; + return x[1]} + if((i31 + 1 | 0) < l) + {var _zz_=i31 + 1 | 0,_zA_=caml_check_bound(a,_zz_)[1 + _zz_]; + if(0 > caml_call2(cmp,caml_check_bound(a,i31)[1 + i31],_zA_)) + return i31 + 1 | 0} + if(i31 < l)return i31; + throw [0,Bottom,i]} + function trickledown(l,i,e) + {var i$0=i; + for(;;) + {var j=maxson(l,i$0); + if(0 < caml_call2(cmp,caml_check_bound(a,j)[1 + j],e)) + {var _zt_=caml_check_bound(a,j)[1 + j]; + caml_check_bound(a,i$0)[1 + i$0] = _zt_; + var i$0=j; + continue} + caml_check_bound(a,i$0)[1 + i$0] = e; + return 0}} + function trickle(l,i,e) + {try + {var _zs_=trickledown(l,i,e);return _zs_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] !== Bottom)throw exn; + var i$0=exn[2]; + caml_check_bound(a,i$0)[1 + i$0] = e; + return 0}} + function bubbledown(l,i) + {var i$0=i; + for(;;) + {var i$1=maxson(l,i$0),_zr_=caml_check_bound(a,i$1)[1 + i$1]; + caml_check_bound(a,i$0)[1 + i$0] = _zr_; + var i$0=i$1}} + function bubble(l,i) + {try + {var _zq_=bubbledown(l,i);return _zq_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] !== Bottom)throw exn; + var i$0=exn[2]; + return i$0}} + var l=a.length - 1,_zi_=((l + 1 | 0) / 3 | 0) - 1 | 0; + if(_zi_ >= 0) + {var i$2=_zi_; + for(;;) + {trickle(l,i$2,caml_check_bound(a,i$2)[1 + i$2]); + var _zp_=i$2 - 1 | 0; + if(0 !== i$2){var i$2=_zp_;continue} + break}} + var _zj_=l - 1 | 0; + if(_zj_ >= 2) + {var i$0=_zj_; + a: + for(;;) + {var + e$0=caml_check_bound(a,i$0)[1 + i$0], + _zn_=caml_check_bound(a,0)[1]; + caml_check_bound(a,i$0)[1 + i$0] = _zn_; + var i$1=bubble(i$0,0),i=i$1; + for(;;) + {var father=(i - 1 | 0) / 3 | 0; + if(i === father)throw [0,Assert_failure,_F_]; + if + (0 <= caml_call2(cmp,caml_check_bound(a,father)[1 + father],e$0)) + caml_check_bound(a,i)[1 + i] = e$0; + else + {var _zh_=caml_check_bound(a,father)[1 + father]; + caml_check_bound(a,i)[1 + i] = _zh_; + if(0 < father){var i=father;continue} + caml_check_bound(a,0)[1] = e$0} + var _zo_=i$0 - 1 | 0; + if(2 !== i$0){var i$0=_zo_;continue a} + break} + break}} + var _zk_=1 < l?1:0; + if(_zk_) + {var e=caml_check_bound(a,1)[2],_zl_=caml_check_bound(a,0)[1]; + caml_check_bound(a,1)[2] = _zl_; + caml_check_bound(a,0)[1] = e; + var _zm_=0} + else + var _zm_=_zk_; + return _zm_} + function fast_sort$0(cmp,a) + {function merge(src1ofs,src1len,src2,src2ofs,src2len,dst,dstofs) + {var + src1r=src1ofs + src1len | 0, + src2r=src2ofs + src2len | 0, + s2$1=caml_check_bound(src2,src2ofs)[1 + src2ofs], + s1$1=caml_check_bound(a,src1ofs)[1 + src1ofs], + i1=src1ofs, + s1=s1$1, + i2=src2ofs, + s2=s2$1, + d=dstofs; + for(;;) + {if(0 < caml_call2(cmp,s1,s2)) + {caml_check_bound(dst,d)[1 + d] = s2; + var i2$0=i2 + 1 | 0; + if(i2$0 >= src2r)return blit$1(a,i1,dst,d + 1 | 0,src1r - i1 | 0); + var + d$0=d + 1 | 0, + s2$0=caml_check_bound(src2,i2$0)[1 + i2$0], + i2=i2$0, + s2=s2$0, + d=d$0; + continue} + caml_check_bound(dst,d)[1 + d] = s1; + var i1$0=i1 + 1 | 0; + if(i1$0 >= src1r) + return blit$1(src2,i2,dst,d + 1 | 0,src2r - i2 | 0); + var + d$1=d + 1 | 0, + s1$0=caml_check_bound(a,i1$0)[1 + i1$0], + i1=i1$0, + s1=s1$0, + d=d$1}} + function isortto(srcofs,dst,dstofs,len) + {var _y$_=len - 1 | 0,_y__=0; + if(_y$_ >= 0) + {var i=_y__; + a: + for(;;) + {var + _za_=srcofs + i | 0, + e=caml_check_bound(a,_za_)[1 + _za_], + j=[0,(dstofs + i | 0) - 1 | 0]; + for(;;) + {if(dstofs <= j[1]) + {var _zb_=j[1]; + if(0 < caml_call2(cmp,caml_check_bound(dst,_zb_)[1 + _zb_],e)) + {var + _zc_=j[1], + _zd_=caml_check_bound(dst,_zc_)[1 + _zc_], + _ze_=j[1] + 1 | 0; + caml_check_bound(dst,_ze_)[1 + _ze_] = _zd_; + j[1] += -1; + continue}} + var _zf_=j[1] + 1 | 0; + caml_check_bound(dst,_zf_)[1 + _zf_] = e; + var _zg_=i + 1 | 0; + if(_y$_ !== i){var i=_zg_;continue a} + break} + break}} + return 0} + function sortto(srcofs,dst,dstofs,len) + {if(len <= 5)return isortto(srcofs,dst,dstofs,len); + var l1=len / 2 | 0,l2=len - l1 | 0; + sortto(srcofs + l1 | 0,dst,dstofs + l1 | 0,l2); + sortto(srcofs,a,srcofs + l2 | 0,l1); + return merge(srcofs + l2 | 0,l1,dst,dstofs + l1 | 0,l2,dst,dstofs)} + var l=a.length - 1; + if(l <= 5)return isortto(0,a,0,l); + var + l1=l / 2 | 0, + l2=l - l1 | 0, + t=caml_make_vect(l2,caml_check_bound(a,0)[1]); + sortto(l1,t,0,l2); + sortto(0,a,l2,l1); + return merge(l2,l1,t,0,l2,a,0)} + function to_seq$4(a) + {function aux(i,param) + {if(i >= a.length - 1)return 0; + var x=a[1 + i],_y8_=i + 1 | 0; + return [0,x,function(_y9_){return aux(_y8_,_y9_)}]} + var _y6_=0; + return function(_y7_){return aux(_y6_,_y7_)}} + function to_seqi$1(a) + {function aux(i,param) + {if(i >= a.length - 1)return 0; + var x=a[1 + i],_y4_=i + 1 | 0; + return [0,[0,i,x],function(_y5_){return aux(_y4_,_y5_)}]} + var _y2_=0; + return function(_y3_){return aux(_y2_,_y3_)}} + function of_seq$2(i$2) + {var _y1_=0,l=fold_left(function(acc,x){return [0,x,acc]},_y1_,i$2); + if(! l)return [0]; + var + tl=l[2], + hd=l[1], + len=list_length(0,l), + a=caml_make_vect(len,hd), + i$1=len - 2 | 0, + i=i$1, + param=tl; + for(;;) + {if(! param)return a; + var tl$0=param[2],hd$0=param[1]; + a[1 + i] = hd$0; + var i$0=i - 1 | 0,i=i$0,param=tl$0}} + var + concat$2=caml_array_concat, + include$3= + [0, + make_float, + init$3, + create_matrix, + create_matrix, + append$1, + concat$2, + sub$1, + copy$1, + fill$0, + blit$1, + to_list$1, + of_list, + iter$5, + iteri$3, + map$7, + mapi$3, + fold_left$3, + fold_left_map$0, + fold_right$2, + iter2$1, + map2$1, + for_all$3, + exists$3, + for_all2$1, + exists2$1, + mem$0, + memq$0, + find_opt$0, + find_map$1, + split$0, + combine$0, + sort, + fast_sort$0, + fast_sort$0, + to_seq$4, + to_seqi$1, + of_seq$2, + Floatarray]; + caml_register_global(794,include$3,"Stdlib__Array"); + var zero$0=0.,one$0=1.,minus_one$0=-1.; + function is_finite(x){return x - x == 0.?1:0} + function is_infinite(x){return 1. / x == 0.?1:0} + function is_nan(x){return x != x?1:0} + var pi=3.14159265358979312; + function is_integer(x) + {var _y0_=x == runtime.caml_trunc_float(x)?1:0; + return _y0_?is_finite(x):_y0_} + function succ$0(x){return caml_nextafter_float(x,infinity)} + function pred$0(x){return caml_nextafter_float(x,neg_infinity)} + function equal$11(x,y){return 0 === caml_float_compare(x,y)?1:0} + function min$2(x,y) + {if(! (x < y)) + {var switch$0=0; + if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; + if(switch$0)return x != x?x:y} + return y != y?y:x} + function max$2(x,y) + {if(! (x < y)) + {var switch$0=0; + if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; + if(switch$0)return y != y?y:x} + return x != x?x:y} + function min_max(x,y) + {if(x == x && y == y) + {if(! (x < y)) + {var switch$0=0; + if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; + if(switch$0)return [0,y,x]} + return [0,x,y]} + return [0,nan,nan]} + function min_num(x,y) + {if(! (x < y)) + {var switch$0=0; + if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; + if(switch$0)return y != y?x:y} + return x != x?y:x} + function max_num(x,y) + {if(! (x < y)) + {var switch$0=0; + if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; + if(switch$0)return x != x?y:x} + return y != y?x:y} + function min_max_num(x,y) + {if(x != x)return [0,y,y]; + if(y != y)return [0,x,x]; + if(! (x < y)) + {var switch$0=0; + if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; + if(switch$0)return [0,y,x]} + return [0,x,y]} + function hash$0(x){return caml_hash(10,100,0,x)} + function unsafe_fill(a,ofs,len,v) + {var _yY_=(ofs + len | 0) - 1 | 0; + if(_yY_ >= ofs) + {var i=ofs; + for(;;) + {a[1 + i] = v; + var _yZ_=i + 1 | 0; + if(_yY_ !== i){var i=_yZ_;continue} + break}} + return 0} + function check(a,ofs,len,msg) + {var _yU_=ofs < 0?1:0; + if(_yU_) + var _yV_=_yU_; + else + {var _yW_=len < 0?1:0; + if(_yW_) + var _yV_=_yW_; + else + var + _yX_=(ofs + len | 0) < 0?1:0, + _yV_=_yX_ || (a.length - 1 < (ofs + len | 0)?1:0)} + return _yV_?invalid_arg(msg):_yV_} + function make$2(n,v) + {var result=caml_floatarray_create(n); + unsafe_fill(result,0,n,v); + return result} + function init$4(l,f) + {if(0 > l)return invalid_arg(cst_Float_Array_init); + var res=caml_floatarray_create(l),_yS_=l - 1 | 0,_yR_=0; + if(_yS_ >= 0) + {var i=_yR_; + for(;;) + {res[1 + i] = caml_call1(f,i); + var _yT_=i + 1 | 0; + if(_yS_ !== i){var i=_yT_;continue} + break}} + return res} + function append$2(a1,a2) + {var + l1=a1.length - 1, + l2=a2.length - 1, + result=caml_floatarray_create(l1 + l2 | 0); + caml_floatarray_blit(a1,0,result,0,l1); + caml_floatarray_blit(a2,0,result,l1,l2); + return result} + function concat$3(l) + {var acc=0,param=l; + for(;;) + {if(param) + {var + tl=param[2], + hd=param[1], + x=hd.length - 1 + acc | 0, + acc$0=acc <= x?x:invalid_arg(cst_Float_Array_concat), + acc=acc$0, + param=tl; + continue} + var result=caml_floatarray_create(acc),l$0=l,i=0; + for(;;) + {if(l$0) + {var tl$0=l$0[2],hd$0=l$0[1],hlen=hd$0.length - 1; + caml_floatarray_blit(hd$0,0,result,i,hlen); + var i$0=i + hlen | 0,l$0=tl$0,i=i$0; + continue} + if(i === acc)return result; + throw [0,Assert_failure,_G_]}}} + function sub$2(a,ofs,len) + {check(a,ofs,len,cst_Float_Array_sub); + var result=caml_floatarray_create(len); + caml_floatarray_blit(a,ofs,result,0,len); + return result} + function copy$2(a) + {var l=a.length - 1,result=caml_floatarray_create(l); + caml_floatarray_blit(a,0,result,0,l); + return result} + function fill$1(a,ofs,len,v) + {check(a,ofs,len,cst_Float_Array_fill);return unsafe_fill(a,ofs,len,v)} + function blit$2(src,sofs,dst,dofs,len) + {check(src,sofs,len,cst_Float_array_blit); + check(dst,dofs,len,cst_Float_array_blit$0); + return caml_floatarray_blit(src,sofs,dst,dofs,len)} + function to_list$2(a) + {return init$0(a.length - 1,function(_yQ_){return a[1 + _yQ_]})} + function of_list$0(l) + {var result=caml_floatarray_create(length$1(l)),i=0,l$0=l; + for(;;) + {if(! l$0)return result; + var t=l$0[2],h=l$0[1]; + result[1 + i] = h; + var i$0=i + 1 | 0,i=i$0,l$0=t}} + function iter$6(f,a) + {var _yO_=a.length - 1 - 1 | 0,_yN_=0; + if(_yO_ >= 0) + {var i=_yN_; + for(;;) + {caml_call1(f,a[1 + i]); + var _yP_=i + 1 | 0; + if(_yO_ !== i){var i=_yP_;continue} + break}} + return 0} + function iter2$2(f,a,b) + {if(a.length - 1 !== b.length - 1) + return invalid_arg(cst_Float_Array_iter2_arrays_m); + var _yL_=a.length - 1 - 1 | 0,_yK_=0; + if(_yL_ >= 0) + {var i=_yK_; + for(;;) + {caml_call2(f,a[1 + i],b[1 + i]); + var _yM_=i + 1 | 0; + if(_yL_ !== i){var i=_yM_;continue} + break}} + return 0} + function map$8(f,a) + {var l=a.length - 1,r=caml_floatarray_create(l),_yI_=l - 1 | 0,_yH_=0; + if(_yI_ >= 0) + {var i=_yH_; + for(;;) + {r[1 + i] = caml_call1(f,a[1 + i]); + var _yJ_=i + 1 | 0; + if(_yI_ !== i){var i=_yJ_;continue} + break}} + return r} + function map2$2(f,a,b) + {var la=a.length - 1,lb=b.length - 1; + if(la !== lb)return invalid_arg(cst_Float_Array_map2_arrays_mu); + var r=caml_floatarray_create(la),_yF_=la - 1 | 0,_yE_=0; + if(_yF_ >= 0) + {var i=_yE_; + for(;;) + {r[1 + i] = caml_call2(f,a[1 + i],b[1 + i]); + var _yG_=i + 1 | 0; + if(_yF_ !== i){var i=_yG_;continue} + break}} + return r} + function iteri$4(f,a) + {var _yC_=a.length - 1 - 1 | 0,_yB_=0; + if(_yC_ >= 0) + {var i=_yB_; + for(;;) + {caml_call2(f,i,a[1 + i]); + var _yD_=i + 1 | 0; + if(_yC_ !== i){var i=_yD_;continue} + break}} + return 0} + function mapi$4(f,a) + {var l=a.length - 1,r=caml_floatarray_create(l),_yz_=l - 1 | 0,_yy_=0; + if(_yz_ >= 0) + {var i=_yy_; + for(;;) + {r[1 + i] = caml_call2(f,i,a[1 + i]); + var _yA_=i + 1 | 0; + if(_yz_ !== i){var i=_yA_;continue} + break}} + return r} + function fold_left$4(f,x,a) + {var r=[0,x],_yw_=a.length - 1 - 1 | 0,_yv_=0; + if(_yw_ >= 0) + {var i=_yv_; + for(;;) + {r[1] = caml_call2(f,r[1],a[1 + i]); + var _yx_=i + 1 | 0; + if(_yw_ !== i){var i=_yx_;continue} + break}} + return r[1]} + function fold_right$3(f,a,x) + {var r=[0,x],_yt_=a.length - 1 - 1 | 0; + if(_yt_ >= 0) + {var i=_yt_; + for(;;) + {r[1] = caml_call2(f,a[1 + i],r[1]); + var _yu_=i - 1 | 0; + if(0 !== i){var i=_yu_;continue} + break}} + return r[1]} + function exists$4(p,a) + {var n=a.length - 1,i=0; + for(;;) + {if(i === n)return 0; + if(caml_call1(p,a[1 + i]))return 1; + var i$0=i + 1 | 0,i=i$0}} + function for_all$4(p,a) + {var n=a.length - 1,i=0; + for(;;) + {if(i === n)return 1; + if(! caml_call1(p,a[1 + i]))return 0; + var i$0=i + 1 | 0,i=i$0}} + function mem$1(x,a) + {var n=a.length - 1,i=0; + for(;;) + {if(i === n)return 0; + if(0 === caml_float_compare(a[1 + i],x))return 1; + var i$0=i + 1 | 0,i=i$0}} + function mem_ieee(x,a) + {var n=a.length - 1,i=0; + for(;;) + {if(i === n)return 0;if(x == a[1 + i])return 1;var i$0=i + 1 | 0,i=i$0}} + var Bottom$0=[248,cst_Stdlib_Float_Array_Bottom,caml_fresh_oo_id(0)]; + function sort$0(cmp,a) + {function maxson(l,i) + {var i31=((i + i | 0) + i | 0) + 1 | 0,x=[0,i31]; + if((i31 + 2 | 0) < l) + {if + (caml_call2 + (cmp,caml_array_get(a,i31),caml_array_get(a,i31 + 1 | 0)) + < + 0) + x[1] = i31 + 1 | 0; + if + (caml_call2 + (cmp,caml_array_get(a,x[1]),caml_array_get(a,i31 + 2 | 0)) + < + 0) + x[1] = i31 + 2 | 0; + return x[1]} + if + ((i31 + 1 | 0) + < + l + && + 0 + > + caml_call2(cmp,caml_array_get(a,i31),caml_array_get(a,i31 + 1 | 0))) + return i31 + 1 | 0; + if(i31 < l)return i31; + throw [0,Bottom$0,i]} + function trickledown(l,i,e) + {var i$0=i; + for(;;) + {var j=maxson(l,i$0); + if(0 >= caml_call2(cmp,caml_array_get(a,j),e)) + return caml_array_set(a,i$0,e); + caml_array_set(a,i$0,caml_array_get(a,j)); + var i$0=j}} + function trickle(l,i,e) + {try + {var _ys_=trickledown(l,i,e);return _ys_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] !== Bottom$0)throw exn; + var i$0=exn[2]; + return caml_array_set(a,i$0,e)}} + function bubbledown(l,i) + {var i$0=i; + for(;;) + {var i$1=maxson(l,i$0); + caml_array_set(a,i$0,caml_array_get(a,i$1)); + var i$0=i$1}} + function bubble(l,i) + {try + {var _yr_=bubbledown(l,i);return _yr_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] !== Bottom$0)throw exn; + var i$0=exn[2]; + return i$0}} + var l=a.length - 1,_yl_=((l + 1 | 0) / 3 | 0) - 1 | 0; + if(_yl_ >= 0) + {var i$2=_yl_; + for(;;) + {trickle(l,i$2,caml_array_get(a,i$2)); + var _yq_=i$2 - 1 | 0; + if(0 !== i$2){var i$2=_yq_;continue} + break}} + var _ym_=l - 1 | 0; + if(_ym_ >= 2) + {var i$0=_ym_; + a: + for(;;) + {var e$0=caml_array_get(a,i$0); + caml_array_set(a,i$0,caml_array_get(a,0)); + var i$1=bubble(i$0,0),i=i$1; + for(;;) + {var father=(i - 1 | 0) / 3 | 0; + if(i === father)throw [0,Assert_failure,_H_]; + if(0 <= caml_call2(cmp,caml_array_get(a,father),e$0)) + caml_array_set(a,i,e$0); + else + {caml_array_set(a,i,caml_array_get(a,father)); + if(0 < father){var i=father;continue} + caml_array_set(a,0,e$0)} + var _yp_=i$0 - 1 | 0; + if(2 !== i$0){var i$0=_yp_;continue a} + break} + break}} + var _yn_=1 < l?1:0; + if(_yn_) + {var e=caml_array_get(a,1); + caml_array_set(a,1,caml_array_get(a,0)); + var _yo_=caml_array_set(a,0,e)} + else + var _yo_=_yn_; + return _yo_} + function stable_sort(cmp,a) + {function merge(src1ofs,src1len,src2,src2ofs,src2len,dst,dstofs) + {var + src1r=src1ofs + src1len | 0, + src2r=src2ofs + src2len | 0, + s2$1=caml_array_get(src2,src2ofs), + s1$1=caml_array_get(a,src1ofs), + i1=src1ofs, + s1=s1$1, + i2=src2ofs, + s2=s2$1, + d=dstofs; + for(;;) + {if(0 < caml_call2(cmp,s1,s2)) + {caml_array_set(dst,d,s2); + var i2$0=i2 + 1 | 0; + if(i2$0 >= src2r)return blit$2(a,i1,dst,d + 1 | 0,src1r - i1 | 0); + var + d$0=d + 1 | 0, + s2$0=caml_array_get(src2,i2$0), + i2=i2$0, + s2=s2$0, + d=d$0; + continue} + caml_array_set(dst,d,s1); + var i1$0=i1 + 1 | 0; + if(i1$0 >= src1r) + return blit$2(src2,i2,dst,d + 1 | 0,src2r - i2 | 0); + var d$1=d + 1 | 0,s1$0=caml_array_get(a,i1$0),i1=i1$0,s1=s1$0,d=d$1}} + function isortto(srcofs,dst,dstofs,len) + {var _yj_=len - 1 | 0,_yi_=0; + if(_yj_ >= 0) + {var i=_yi_; + a: + for(;;) + {var + e=caml_array_get(a,srcofs + i | 0), + j=[0,(dstofs + i | 0) - 1 | 0]; + for(;;) + {if + (dstofs + <= + j[1] + && + 0 + < + caml_call2(cmp,caml_array_get(dst,j[1]),e)) + {caml_array_set(dst,j[1] + 1 | 0,caml_array_get(dst,j[1])); + j[1] += -1; + continue} + caml_array_set(dst,j[1] + 1 | 0,e); + var _yk_=i + 1 | 0; + if(_yj_ !== i){var i=_yk_;continue a} + break} + break}} + return 0} + function sortto(srcofs,dst,dstofs,len) + {if(len <= 5)return isortto(srcofs,dst,dstofs,len); + var l1=len / 2 | 0,l2=len - l1 | 0; + sortto(srcofs + l1 | 0,dst,dstofs + l1 | 0,l2); + sortto(srcofs,a,srcofs + l2 | 0,l1); + return merge(srcofs + l2 | 0,l1,dst,dstofs + l1 | 0,l2,dst,dstofs)} + var l=a.length - 1; + if(l <= 5)return isortto(0,a,0,l); + var l1=l / 2 | 0,l2=l - l1 | 0,t=caml_floatarray_create(l2); + sortto(l1,t,0,l2); + sortto(0,a,l2,l1); + return merge(l2,l1,t,0,l2,a,0)} + function to_seq$5(a) + {function aux(i,param) + {if(i >= a.length - 1)return 0; + var x=a[1 + i],_yg_=i + 1 | 0; + return [0,x,function(_yh_){return aux(_yg_,_yh_)}]} + var _ye_=0; + return function(_yf_){return aux(_ye_,_yf_)}} + function to_seqi$2(a) + {function aux(i,param) + {if(i >= a.length - 1)return 0; + var x=a[1 + i],_yc_=i + 1 | 0; + return [0,[0,i,x],function(_yd_){return aux(_yc_,_yd_)}]} + var _ya_=0; + return function(_yb_){return aux(_ya_,_yb_)}} + function of_seq$3(i$2) + {var + _x$_=0, + param$0=fold_left(function(acc,x){return [0,x,acc]},_x$_,i$2), + len=length$1(param$0), + a=caml_floatarray_create(len), + i$1=len - 1 | 0, + i=i$1, + param=param$0; + for(;;) + {if(! param)return a; + var tl=param[2],hd=param[1]; + a[1 + i] = hd; + var i$0=i - 1 | 0,i=i$0,param=tl}} + function map_to_array(f,a) + {var l=a.length - 1; + if(0 === l)return [0]; + var r=caml_make_vect(l,caml_call1(f,a[1])),_x9_=l - 1 | 0,_x8_=1; + if(_x9_ >= 1) + {var i=_x8_; + for(;;) + {r[1 + i] = caml_call1(f,a[1 + i]); + var _x__=i + 1 | 0; + if(_x9_ !== i){var i=_x__;continue} + break}} + return r} + function map_from_array(f,a) + {var l=a.length - 1,r=caml_floatarray_create(l),_x6_=l - 1 | 0,_x5_=0; + if(_x6_ >= 0) + {var i=_x5_; + for(;;) + {r[1 + i] = caml_call1(f,a[1 + i]); + var _x7_=i + 1 | 0; + if(_x6_ !== i){var i=_x7_;continue} + break}} + return r} + var + _I_=caml_floatarray_create, + _J_=caml_array_set, + _K_=caml_array_get, + _L_= + [0, + function(_x4_){return _x4_.length - 1}, + _K_, + _J_, + make$2, + _I_, + init$4, + append$2, + concat$3, + sub$2, + copy$2, + fill$1, + blit$2, + to_list$2, + of_list$0, + iter$6, + iteri$4, + map$8, + mapi$4, + fold_left$4, + fold_right$3, + iter2$2, + map2$2, + for_all$4, + exists$4, + mem$1, + mem_ieee, + sort$0, + stable_sort, + stable_sort, + to_seq$5, + to_seqi$2, + of_seq$3, + map_to_array, + map_from_array], + _M_=caml_floatarray_create, + _N_=caml_array_set, + _O_=caml_array_get, + Stdlib_Float= + [0, + zero$0, + one$0, + minus_one$0, + succ$0, + pred$0, + infinity, + neg_infinity, + nan, + pi, + max_float, + min_float, + epsilon, + is_finite, + is_infinite, + is_nan, + is_integer, + of_string_opt, + to_string, + caml_float_compare, + equal$11, + min$2, + max$2, + min_max, + min_num, + max_num, + min_max_num, + hash$0, + [0, + function(_x3_){return _x3_.length - 1}, + _O_, + _N_, + make$2, + _M_, + init$4, + append$2, + concat$3, + sub$2, + copy$2, + fill$1, + blit$2, + to_list$2, + of_list$0, + iter$6, + iteri$4, + map$8, + mapi$4, + fold_left$4, + fold_right$3, + iter2$2, + map2$2, + for_all$4, + exists$4, + mem$1, + mem_ieee, + sort$0, + stable_sort, + stable_sort, + to_seq$5, + to_seqi$2, + of_seq$3, + map_to_array, + map_from_array], + _L_]; + caml_register_global(795,Stdlib_Float,"Stdlib__Float"); + var zero$1=0,one$1=1,minus_one$1=-1; + function succ$1(n){return n + 1 | 0} + function pred$1(n){return n - 1 | 0} + function abs$1(n){return caml_greaterequal(n,0)?n:- n | 0} + var min_int$1=-2147483648,max_int$1=2147483647; + function lognot$0(n){return n ^ -1} + function unsigned_to_int(n) + {if(0 >= caml_int_compare(0,n) && 0 >= caml_int_compare(n,2147483647)) + return [0,n]; + return 0} + function to_string$3(n){return caml_format_int(cst_d,n)} + function of_string_opt$0(s) + {try + {var _x1_=[0,caml_int_of_string(s)];return _x1_} + catch(_x2_) + {_x2_ = caml_wrap_exception(_x2_); + if(_x2_[1] === Failure)return 0; + throw _x2_}} + function compare$11(x,y){return caml_int_compare(x,y)} + function equal$12(x,y){return 0 === caml_int_compare(x,y)?1:0} + function unsigned_compare(n,m) + {return caml_int_compare(n + 2147483648 | 0,m + 2147483648 | 0)} + function min$3(x,y){return caml_lessequal(x,y)?x:y} + function max$3(x,y){return caml_greaterequal(x,y)?x:y} + function unsigned_div(n,d) + {if(caml_lessthan(d,0))return 0 <= unsigned_compare(n,d)?one$1:zero$1; + var q=caml_div(n >>> 1 | 0,d) << 1,r=n - caml_mul(q,d) | 0; + return 0 <= unsigned_compare(r,d)?q + 1 | 0:q} + function unsigned_rem(n,d){return n - caml_mul(unsigned_div(n,d),d) | 0} + var + Stdlib_Int32= + [0, + zero$1, + one$1, + minus_one$1, + unsigned_div, + unsigned_rem, + succ$1, + pred$1, + abs$1, + max_int$1, + min_int$1, + lognot$0, + unsigned_to_int, + of_string_opt$0, + to_string$3, + compare$11, + unsigned_compare, + equal$12, + min$3, + max$3]; + caml_register_global(796,Stdlib_Int32,"Stdlib__Int32"); + function succ$2(n){return caml_int64_add(n,_P_)} + function pred$2(n){return caml_int64_sub(n,_Q_)} + function abs$2(n) + {return caml_greaterequal(n,_R_)?n:runtime.caml_int64_neg(n)} + function lognot$1(n){return runtime.caml_int64_xor(n,_S_)} + var max_int$3=caml_int64_of_int32(2147483647); + function unsigned_to_int$0(n) + {if + (0 + >= + caml_int64_compare(zero$2,n) + && + 0 + >= + caml_int64_compare(n,max_int$3)) + return [0,runtime.caml_int64_to_int32(n)]; + return 0} + function to_string$4(n){return caml_int64_format(cst_d$0,n)} + function of_string_opt$1(s) + {try + {var _xZ_=[0,caml_int64_of_string(s)];return _xZ_} + catch(_x0_) + {_x0_ = caml_wrap_exception(_x0_); + if(_x0_[1] === Failure)return 0; + throw _x0_}} + function compare$12(x,y){return caml_int64_compare(x,y)} + function equal$13(x,y){return 0 === caml_int64_compare(x,y)?1:0} + function unsigned_compare$0(n,m) + {return caml_int64_compare + (caml_int64_sub(n,min_int$2),caml_int64_sub(m,min_int$2))} + function min$4(x,y){return caml_lessequal(x,y)?x:y} + function max$4(x,y){return caml_greaterequal(x,y)?x:y} + function unsigned_div$0(n,d) + {if(caml_lessthan(d,zero$2)) + return 0 <= unsigned_compare$0(n,d)?one$2:zero$2; + var + q= + caml_int64_shift_left + (runtime.caml_int64_div(caml_int64_shift_right_unsigne(n,1),d),1), + r=caml_int64_sub(n,caml_int64_mul(q,d)); + return 0 <= unsigned_compare$0(r,d)?succ$2(q):q} + function unsigned_rem$0(n,d) + {return caml_int64_sub(n,caml_int64_mul(unsigned_div$0(n,d),d))} + var + Stdlib_Int64= + [0, + zero$2, + one$2, + minus_one$2, + unsigned_div$0, + unsigned_rem$0, + succ$2, + pred$2, + abs$2, + max_int$2, + min_int$2, + lognot$1, + unsigned_to_int$0, + of_string_opt$1, + to_string$4, + compare$12, + unsigned_compare$0, + equal$13, + min$4, + max$4]; + caml_register_global(797,Stdlib_Int64,"Stdlib__Int64"); + var zero$3=0,one$3=1,minus_one$3=-1; + function succ$3(n){return n + 1 | 0} + function pred$3(n){return n - 1 | 0} + function abs$3(n){return caml_greaterequal(n,0)?n:- n | 0} + var min_int$3=-2147483648,max_int$4=2147483647; + function lognot$2(n){return n ^ -1} + function unsigned_to_int$1(n) + {if(0 >= caml_int_compare(0,n) && 0 >= caml_int_compare(n,2147483647)) + return [0,n]; + return 0} + function to_string$5(n){return caml_format_int(cst_d$1,n)} + function of_string_opt$2(s) + {try + {var _xX_=[0,caml_int_of_string(s)];return _xX_} + catch(_xY_) + {_xY_ = caml_wrap_exception(_xY_); + if(_xY_[1] === Failure)return 0; + throw _xY_}} + function compare$13(x,y){return caml_int_compare(x,y)} + function equal$14(x,y){return 0 === caml_int_compare(x,y)?1:0} + function unsigned_compare$1(n,m) + {return caml_int_compare(n + 2147483648 | 0,m + 2147483648 | 0)} + function min$5(x,y){return caml_lessequal(x,y)?x:y} + function max$5(x,y){return caml_greaterequal(x,y)?x:y} + function unsigned_div$1(n,d) + {if(caml_lessthan(d,0))return 0 <= unsigned_compare$1(n,d)?one$3:zero$3; + var q=caml_div(n >>> 1 | 0,d) << 1,r=n - caml_mul(q,d) | 0; + return 0 <= unsigned_compare$1(r,d)?q + 1 | 0:q} + function unsigned_rem$1(n,d) + {return n - caml_mul(unsigned_div$1(n,d),d) | 0} + var + Stdlib_Nativeint= + [0, + zero$3, + one$3, + minus_one$3, + unsigned_div$1, + unsigned_rem$1, + succ$3, + pred$3, + abs$3, + match$1, + max_int$4, + min_int$3, + lognot$2, + unsigned_to_int$1, + of_string_opt$2, + to_string$5, + compare$13, + unsigned_compare$1, + equal$14, + min$5, + max$5]; + caml_register_global(798,Stdlib_Nativeint,"Stdlib__Nativeint"); + function engine(tbl,state,buf) + {var + result=runtime.caml_lex_engine(tbl,state,buf), + _xU_=0 <= result?1:0, + _xV_=_xU_?buf[12] !== dummy_pos?1:0:_xU_; + if(_xV_) + {buf[11] = buf[12]; + var _xW_=buf[12]; + buf[12] = [0,_xW_[1],_xW_[2],_xW_[3],buf[4] + buf[6] | 0]} + return result} + function new_engine(tbl,state,buf) + {var + result=runtime.caml_new_lex_engine(tbl,state,buf), + _xR_=0 <= result?1:0, + _xS_=_xR_?buf[12] !== dummy_pos?1:0:_xR_; + if(_xS_) + {buf[11] = buf[12]; + var _xT_=buf[12]; + buf[12] = [0,_xT_[1],_xT_[2],_xT_[3],buf[4] + buf[6] | 0]} + return result} + function from_function(opt,f) + {if(opt)var sth=opt[1],with_positions=sth;else var with_positions=1; + var + _xD_=with_positions?zero_pos:dummy_pos, + _xE_=with_positions?zero_pos:dummy_pos, + aux_buffer=caml_create_bytes(512), + _xF_=[0], + _xG_=0, + _xH_=0, + _xI_=0, + _xJ_=0, + _xK_=0, + _xL_=0, + _xM_=0, + _xN_=caml_create_bytes(1024); + return [0, + function(lexbuf) + {var + read= + caml_call2(f,aux_buffer,caml_ml_bytes_length(aux_buffer)), + n=0 < read?read:(lexbuf[9] = 1,0); + if(caml_ml_bytes_length(lexbuf[2]) < (lexbuf[3] + n | 0)) + {if + (((lexbuf[3] - lexbuf[5] | 0) + n | 0) + <= + caml_ml_bytes_length(lexbuf[2])) + blit + (lexbuf[2],lexbuf[5],lexbuf[2],0,lexbuf[3] - lexbuf[5] | 0); + else + {var + newlen= + min$1 + (2 * caml_ml_bytes_length(lexbuf[2]) | 0,max_string_length); + if(newlen < ((lexbuf[3] - lexbuf[5] | 0) + n | 0)) + failwith(cst_Lexing_lex_refill_cannot_g); + var newbuf=caml_create_bytes(newlen); + blit(lexbuf[2],lexbuf[5],newbuf,0,lexbuf[3] - lexbuf[5] | 0); + lexbuf[2] = newbuf} + var s=lexbuf[5]; + lexbuf[4] = lexbuf[4] + s | 0; + lexbuf[6] = lexbuf[6] - s | 0; + lexbuf[5] = 0; + lexbuf[7] = lexbuf[7] - s | 0; + lexbuf[3] = lexbuf[3] - s | 0; + var t=lexbuf[10],_xP_=t.length - 1 - 1 | 0,_xO_=0; + if(_xP_ >= 0) + {var i=_xO_; + for(;;) + {var v=caml_check_bound(t,i)[1 + i]; + if(0 <= v)caml_check_bound(t,i)[1 + i] = v - s | 0; + var _xQ_=i + 1 | 0; + if(_xP_ !== i){var i=_xQ_;continue} + break}}} + blit(aux_buffer,0,lexbuf[2],lexbuf[3],n); + lexbuf[3] = lexbuf[3] + n | 0; + return 0}, + _xN_, + _xM_, + _xL_, + _xK_, + _xJ_, + _xI_, + _xH_, + _xG_, + _xF_, + _xE_, + _xD_]} + function from_channel(with_positions,ic) + {return from_function + (with_positions,function(buf,n){return input(ic,buf,0,n)})} + function from_string$0(opt,s) + {if(opt)var sth=opt[1],with_positions=sth;else var with_positions=1; + var + _xs_=with_positions?zero_pos:dummy_pos, + _xt_=with_positions?zero_pos:dummy_pos, + _xu_=[0], + _xv_=1, + _xw_=0, + _xx_=0, + _xy_=0, + _xz_=0, + _xA_=0, + _xB_=caml_ml_string_length(s), + _xC_=to_bytes(s); + return [0, + function(lexbuf){lexbuf[9] = 1;return 0}, + _xC_, + _xB_, + _xA_, + _xz_, + _xy_, + _xx_, + _xw_, + _xv_, + _xu_, + _xt_, + _xs_]} + function set_position(lexbuf,position) + {lexbuf[12] = [0,lexbuf[12][1],position[2],position[3],position[4]]; + lexbuf[4] = position[4]; + return 0} + function set_filename(lexbuf,fname) + {var _xr_=lexbuf[12]; + lexbuf[12] = [0,fname,_xr_[2],_xr_[3],_xr_[4]]; + return 0} + function with_positions(lexbuf){return lexbuf[12] !== dummy_pos?1:0} + function lexeme(lexbuf) + {var len=lexbuf[6] - lexbuf[5] | 0; + return sub_string(lexbuf[2],lexbuf[5],len)} + function sub_lexeme(lexbuf,i1,i2) + {var len=i2 - i1 | 0;return sub_string(lexbuf[2],i1,len)} + function sub_lexeme_opt(lexbuf,i1,i2) + {if(0 > i1)return 0; + var len=i2 - i1 | 0; + return [0,sub_string(lexbuf[2],i1,len)]} + function sub_lexeme_char(lexbuf,i){return caml_bytes_get(lexbuf[2],i)} + function sub_lexeme_char_opt(lexbuf,i) + {return 0 <= i?[0,caml_bytes_get(lexbuf[2],i)]:0} + function lexeme_char(lexbuf,i) + {return caml_bytes_get(lexbuf[2],lexbuf[5] + i | 0)} + function lexeme_start(lexbuf){return lexbuf[11][4]} + function lexeme_end(lexbuf){return lexbuf[12][4]} + function lexeme_start_p(lexbuf){return lexbuf[11]} + function lexeme_end_p(lexbuf){return lexbuf[12]} + function new_line(lexbuf) + {var + lcp=lexbuf[12], + _xp_=lcp !== dummy_pos?1:0, + _xq_=_xp_?(lexbuf[12] = [0,lcp[1],lcp[2] + 1 | 0,lcp[4],lcp[4]],0):_xp_; + return _xq_} + function flush_input(lb) + {lb[6] = 0; + lb[4] = 0; + var lcp=lb[12]; + if(lcp !== dummy_pos) + lb[12] = [0,lcp[1],zero_pos[2],zero_pos[3],zero_pos[4]]; + lb[3] = 0; + return 0} + var + Stdlib_Lexing= + [0, + dummy_pos, + from_channel, + from_string$0, + from_function, + set_position, + set_filename, + with_positions, + lexeme, + lexeme_char, + lexeme_start, + lexeme_end, + lexeme_start_p, + lexeme_end_p, + new_line, + flush_input, + sub_lexeme, + sub_lexeme_opt, + sub_lexeme_char, + sub_lexeme_char_opt, + engine, + new_engine]; + caml_register_global(799,Stdlib_Lexing,"Stdlib__Lexing"); + var + YYexit=[248,cst_Stdlib_Parsing_YYexit,caml_fresh_oo_id(0)], + Parse_error=[248,cst_Stdlib_Parsing_Parse_error,caml_fresh_oo_id(0)], + env= + [0, + caml_make_vect(100,0), + caml_make_vect(100,0), + caml_make_vect(100,dummy_pos), + caml_make_vect(100,dummy_pos), + 100, + 0, + 0, + 0, + dummy_pos, + dummy_pos, + 0, + 0, + 0, + 0, + 0, + 0]; + function grow_stacks(param) + {var + oldsize=env[5], + newsize=oldsize * 2 | 0, + new_s=caml_make_vect(newsize,0), + new_v=caml_make_vect(newsize,0), + new_start=caml_make_vect(newsize,dummy_pos), + new_end=caml_make_vect(newsize,dummy_pos); + blit$1(env[1],0,new_s,0,oldsize); + env[1] = new_s; + blit$1(env[2],0,new_v,0,oldsize); + env[2] = new_v; + blit$1(env[3],0,new_start,0,oldsize); + env[3] = new_start; + blit$1(env[4],0,new_end,0,oldsize); + env[4] = new_end; + env[5] = newsize; + return 0} + function clear_parser(param) + {fill$0(env[2],0,env[5],0);env[8] = 0;return 0} + var current_lookahead_fun=[0,function(param){return 0}]; + function yyparse(tables,start,lexer,lexbuf) + {var + init_asp=env[11], + init_sp=env[14], + init_stackbase=env[6], + init_state=env[15], + init_curr_char=env[7], + init_lval=env[8], + init_errflag=env[16]; + env[6] = env[14] + 1 | 0; + env[7] = start; + env[10] = lexbuf[12]; + try + {var cmd=0,arg=0; + for(;;) + {var match=runtime.caml_parse_engine(tables,env,cmd,arg); + switch(match) + {case 0: + var arg$0=caml_call1(lexer,lexbuf); + env[9] = lexbuf[11]; + env[10] = lexbuf[12]; + var cmd=1,arg=arg$0; + continue; + case 1:throw Parse_error; + case 2:grow_stacks(0);var cmd=2,arg=0;continue; + case 3:grow_stacks(0);var cmd=3,arg=0;continue; + case 4: + try + {var + _xk_=env[13], + _xl_= + caml_call1(caml_check_bound(tables[1],_xk_)[1 + _xk_],env), + _xm_=4, + arg$1=_xl_, + cmd$0=_xm_} + catch(_xo_) + {_xo_ = caml_wrap_exception(_xo_); + if(_xo_ !== Parse_error)throw _xo_; + var arg$1=0,cmd$0=5} + var cmd=cmd$0,arg=arg$1; + continue; + default: + caml_call1(tables[14],cst_syntax_error);var cmd=5,arg=0;continue}}} + catch(exn) + {exn = caml_wrap_exception(exn); + var curr_char=env[7]; + env[11] = init_asp; + env[14] = init_sp; + env[6] = init_stackbase; + env[15] = init_state; + env[7] = init_curr_char; + env[8] = init_lval; + env[16] = init_errflag; + if(exn[1] === YYexit){var v=exn[2];return v} + current_lookahead_fun[1] + = + function(tok) + {if(! is_block(tok)) + return caml_check_bound(tables[2],tok)[1 + tok] === curr_char?1:0; + var _xn_=caml_obj_tag(tok); + return caml_check_bound(tables[3],_xn_)[1 + _xn_] === curr_char?1:0}; + throw exn}} + function peek_val(env,n) + {var _xj_=env[11] - n | 0;return caml_check_bound(env[2],_xj_)[1 + _xj_]} + function symbol_start_pos(param) + {var i=env[12]; + for(;;) + {if(0 >= i) + {var _xi_=env[11];return caml_check_bound(env[4],_xi_)[1 + _xi_]} + var + _xg_=(env[11] - i | 0) + 1 | 0, + st=caml_check_bound(env[3],_xg_)[1 + _xg_], + _xh_=(env[11] - i | 0) + 1 | 0, + en=caml_check_bound(env[4],_xh_)[1 + _xh_]; + if(caml_notequal(st,en))return st; + var i$0=i - 1 | 0,i=i$0}} + function symbol_end_pos(param) + {var _xf_=env[11];return caml_check_bound(env[4],_xf_)[1 + _xf_]} + function rhs_start_pos(n) + {var _xe_=env[11] - (env[12] - n | 0) | 0; + return caml_check_bound(env[3],_xe_)[1 + _xe_]} + function rhs_end_pos(n) + {var _xd_=env[11] - (env[12] - n | 0) | 0; + return caml_check_bound(env[4],_xd_)[1 + _xd_]} + function symbol_start(param){return symbol_start_pos(0)[4]} + function symbol_end(param){return symbol_end_pos(0)[4]} + function rhs_start(n){return rhs_start_pos(n)[4]} + function rhs_end(n){return rhs_end_pos(n)[4]} + function is_current_lookahead(tok) + {return caml_call1(current_lookahead_fun[1],tok)} + function parse_error(param){return 0} + var + Stdlib_Parsing= + [0, + symbol_start, + symbol_end, + rhs_start, + rhs_end, + symbol_start_pos, + symbol_end_pos, + rhs_start_pos, + rhs_end_pos, + clear_parser, + Parse_error, + runtime.caml_set_parser_trace, + YYexit, + yyparse, + peek_val, + is_current_lookahead, + parse_error]; + caml_register_global(800,Stdlib_Parsing,"Stdlib__Parsing"); + var + Stdlib_Set= + [0, + function(Ord) + {function height(param){if(! param)return 0;var h=param[4];return h} + function create(l,v,r) + {if(l)var h=l[4],hl=h;else var hl=0; + if(r)var h$0=r[4],hr=h$0;else var hr=0; + var _xc_=hr <= hl?hl + 1 | 0:hr + 1 | 0; + return [0,l,v,r,_xc_]} + function bal(l,v,r) + {if(l)var h=l[4],hl=h;else var hl=0; + if(r)var h$0=r[4],hr=h$0;else var hr=0; + if((hr + 2 | 0) < hl) + {if(! l)return invalid_arg(cst_Set_bal$0); + var lr=l[3],lv=l[2],ll=l[1],_w9_=height(lr); + if(_w9_ <= height(ll))return create(ll,lv,create(lr,v,r)); + if(! lr)return invalid_arg(cst_Set_bal); + var lrr=lr[3],lrv=lr[2],lrl=lr[1],_w__=create(lrr,v,r); + return create(create(ll,lv,lrl),lrv,_w__)} + if((hl + 2 | 0) >= hr) + {var _xb_=hr <= hl?hl + 1 | 0:hr + 1 | 0;return [0,l,v,r,_xb_]} + if(! r)return invalid_arg(cst_Set_bal$2); + var rr=r[3],rv=r[2],rl=r[1],_w$_=height(rl); + if(_w$_ <= height(rr))return create(create(l,v,rl),rv,rr); + if(! rl)return invalid_arg(cst_Set_bal$1); + var rlr=rl[3],rlv=rl[2],rll=rl[1],_xa_=create(rlr,rv,rr); + return create(create(l,v,rll),rlv,_xa_)} + function add(x,t) + {if(! t)return [0,0,x,0,1]; + var r=t[3],v=t[2],l=t[1],c=caml_call2(Ord[1],x,v); + if(0 === c)return t; + if(0 <= c){var rr=add(x,r);return r === rr?t:bal(l,v,rr)} + var ll=add(x,l); + return l === ll?t:bal(ll,v,r)} + function singleton(x){return [0,0,x,0,1]} + function add_min_element(x,param) + {if(! param)return singleton(x); + var r=param[3],v=param[2],l=param[1]; + return bal(add_min_element(x,l),v,r)} + function add_max_element(x,param) + {if(! param)return singleton(x); + var r=param[3],v=param[2],l=param[1]; + return bal(l,v,add_max_element(x,r))} + function join(l,v,r) + {if(! l)return add_min_element(v,r); + if(! r)return add_max_element(v,l); + var + rh=r[4], + rr=r[3], + rv=r[2], + rl=r[1], + lh=l[4], + lr=l[3], + lv=l[2], + ll=l[1]; + return (rh + 2 | 0) < lh + ?bal(ll,lv,join(lr,v,r)) + :(lh + 2 | 0) < rh?bal(join(l,v,rl),rv,rr):create(l,v,r)} + function min_elt(param) + {var param$0=param; + for(;;) + {if(! param$0)throw Not_found; + var _w8_=param$0[1]; + if(_w8_){var param$0=_w8_;continue} + var v=param$0[2]; + return v}} + function min_elt_opt(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var _w7_=param$0[1]; + if(_w7_){var param$0=_w7_;continue} + var v=param$0[2]; + return [0,v]}} + function max_elt(param) + {var param$0=param; + for(;;) + {if(! param$0)throw Not_found; + if(param$0[3]){var param$1=param$0[3],param$0=param$1;continue} + var v=param$0[2]; + return v}} + function max_elt_opt(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + if(param$0[3]){var param$1=param$0[3],param$0=param$1;continue} + var v=param$0[2]; + return [0,v]}} + function remove_min_elt(param) + {if(! param)return invalid_arg(cst_Set_remove_min_elt); + var _w6_=param[1]; + if(_w6_) + {var r=param[3],v=param[2];return bal(remove_min_elt(_w6_),v,r)} + var r$0=param[3]; + return r$0} + function concat(t1,t2) + {if(! t1)return t2; + if(! t2)return t1; + var _w5_=remove_min_elt(t2); + return join(t1,min_elt(t2),_w5_)} + function split(x,param) + {if(! param)return _T_; + var r=param[3],v=param[2],l=param[1],c=caml_call2(Ord[1],x,v); + if(0 === c)return [0,l,1,r]; + if(0 <= c) + {var match=split(x,r),rr=match[3],pres=match[2],lr=match[1]; + return [0,join(l,v,lr),pres,rr]} + var + match$0=split(x,l), + rl=match$0[3], + pres$0=match$0[2], + ll=match$0[1]; + return [0,ll,pres$0,join(rl,v,r)]} + var empty=0; + function is_empty(param){return param?0:1} + function mem(x,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var + r=param$0[3], + v=param$0[2], + l=param$0[1], + c=caml_call2(Ord[1],x,v), + _w4_=0 === c?1:0; + if(_w4_)return _w4_; + var param$1=0 <= c?r:l,param$0=param$1}} + function remove(x,t) + {if(! t)return 0; + var r=t[3],v=t[2],l=t[1],c=caml_call2(Ord[1],x,v); + if(0 === c) + {if(! l)return r; + if(! r)return l; + var _w3_=remove_min_elt(r); + return bal(l,min_elt(r),_w3_)} + if(0 <= c){var rr=remove(x,r);return r === rr?t:bal(l,v,rr)} + var ll=remove(x,l); + return l === ll?t:bal(ll,v,r)} + function union(s1,s2) + {if(! s1)return s2; + if(! s2)return s1; + var + h2=s2[4], + r2=s2[3], + v2=s2[2], + l2=s2[1], + h1=s1[4], + r1=s1[3], + v1=s1[2], + l1=s1[1]; + if(h2 <= h1) + {if(1 === h2)return add(v2,s1); + var + match=split(v1,s2), + r2$0=match[3], + l2$0=match[1], + _w1_=union(r1,r2$0); + return join(union(l1,l2$0),v1,_w1_)} + if(1 === h1)return add(v1,s2); + var + match$0=split(v2,s1), + r1$0=match$0[3], + l1$0=match$0[1], + _w2_=union(r1$0,r2); + return join(union(l1$0,l2),v2,_w2_)} + function inter(s1,s2) + {if(! s1)return 0; + if(! s2)return 0; + var r1=s1[3],v1=s1[2],l1=s1[1],_wX_=split(v1,s2),_wY_=_wX_[1]; + if(_wX_[2]) + {var r2=_wX_[3],_wZ_=inter(r1,r2); + return join(inter(l1,_wY_),v1,_wZ_)} + var r2$0=_wX_[3],_w0_=inter(r1,r2$0); + return concat(inter(l1,_wY_),_w0_)} + function split_bis(x,param) + {if(! param)return [0,0,function(param){return 0}]; + var r=param[3],v=param[2],l=param[1],c=caml_call2(Ord[1],x,v); + if(0 === c)return 0; + if(0 <= c) + {var match=split_bis(x,r); + if(! match)return 0; + var rr=match[2],lr=match[1]; + return [0,join(l,v,lr),rr]} + var match$0=split_bis(x,l); + if(! match$0)return 0; + var rl=match$0[2],ll=match$0[1]; + return [0,ll,function(param){return join(caml_call1(rl,0),v,r)}]} + function disjoint(s1,s2) + {var s1$0=s1,s2$0=s2; + for(;;) + {if(s1$0 && s2$0) + {var r1=s1$0[3],v1=s1$0[2],l1=s1$0[1]; + if(s1$0 === s2$0)return 0; + var match=split_bis(v1,s2$0); + if(! match)return 0; + var r2=match[2],l2=match[1],_wW_=disjoint(l1,l2); + if(! _wW_)return _wW_; + var s2$1=caml_call1(r2,0),s1$0=r1,s2$0=s2$1; + continue} + return 1}} + function diff(s1,s2) + {if(! s1)return 0; + if(! s2)return s1; + var r1=s1[3],v1=s1[2],l1=s1[1],_wS_=split(v1,s2),_wT_=_wS_[1]; + if(_wS_[2]) + {var r2=_wS_[3],_wU_=diff(r1,r2); + return concat(diff(l1,_wT_),_wU_)} + var r2$0=_wS_[3],_wV_=diff(r1,r2$0); + return join(diff(l1,_wT_),v1,_wV_)} + function cons_enum(s,e) + {var s$0=s,e$0=e; + for(;;) + {if(! s$0)return e$0; + var r=s$0[3],v=s$0[2],s$1=s$0[1],e$1=[0,v,r,e$0],s$0=s$1,e$0=e$1}} + function compare(s1,s2) + {var e2$2=cons_enum(s2,0),e1$2=cons_enum(s1,0),e1=e1$2,e2=e2$2; + for(;;) + {if(! e1)return e2?-1:0; + if(! e2)return 1; + var + e2$0=e2[3], + r2=e2[2], + v2=e2[1], + e1$0=e1[3], + r1=e1[2], + v1=e1[1], + c=caml_call2(Ord[1],v1,v2); + if(0 !== c)return c; + var + e2$1=cons_enum(r2,e2$0), + e1$1=cons_enum(r1,e1$0), + e1=e1$1, + e2=e2$1}} + function equal(s1,s2){return 0 === compare(s1,s2)?1:0} + function subset(s1,s2) + {var s1$0=s1,s2$0=s2; + for(;;) + {if(! s1$0)return 1; + if(! s2$0)return 0; + var + r2=s2$0[3], + v2=s2$0[2], + l2=s2$0[1], + r1=s1$0[3], + v1=s1$0[2], + l1=s1$0[1], + c=caml_call2(Ord[1],v1,v2); + if(0 === c) + {var _wP_=subset(l1,l2); + if(! _wP_)return _wP_; + var s1$0=r1,s2$0=r2; + continue} + if(0 <= c) + {var _wQ_=subset([0,0,v1,r1,0],r2); + if(! _wQ_)return _wQ_; + var s1$0=l1; + continue} + var _wR_=subset([0,l1,v1,0,0],l2); + if(! _wR_)return _wR_; + var s1$0=r1}} + function iter(f,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var r=param$0[3],v=param$0[2],l=param$0[1]; + iter(f,l); + caml_call1(f,v); + var param$0=r}} + function fold(f,s,accu) + {var s$0=s,accu$0=accu; + for(;;) + {if(! s$0)return accu$0; + var + r=s$0[3], + v=s$0[2], + l=s$0[1], + accu$1=caml_call2(f,v,fold(f,l,accu$0)), + s$0=r, + accu$0=accu$1}} + function for_all(p,param) + {var param$0=param; + for(;;) + {if(! param$0)return 1; + var r=param$0[3],v=param$0[2],l=param$0[1],_wM_=caml_call1(p,v); + if(_wM_) + {var _wN_=for_all(p,l); + if(_wN_){var param$0=r;continue} + var _wO_=_wN_} + else + var _wO_=_wM_; + return _wO_}} + function exists(p,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var r=param$0[3],v=param$0[2],l=param$0[1],_wJ_=caml_call1(p,v); + if(_wJ_) + var _wK_=_wJ_; + else + {var _wL_=exists(p,l); + if(! _wL_){var param$0=r;continue} + var _wK_=_wL_} + return _wK_}} + function filter(p,t) + {if(! t)return 0; + var + r=t[3], + v=t[2], + l=t[1], + l$0=filter(p,l), + pv=caml_call1(p,v), + r$0=filter(p,r); + if(! pv)return concat(l$0,r$0); + if(l === l$0 && r === r$0)return t; + return join(l$0,v,r$0)} + function partition(p,param) + {if(! param)return _U_; + var + r=param[3], + v=param[2], + l=param[1], + match=partition(p,l), + lf=match[2], + lt=match[1], + pv=caml_call1(p,v), + match$0=partition(p,r), + rf=match$0[2], + rt=match$0[1]; + if(pv){var _wH_=concat(lf,rf);return [0,join(lt,v,rt),_wH_]} + var _wI_=join(lf,v,rf); + return [0,concat(lt,rt),_wI_]} + function cardinal(param) + {if(! param)return 0; + var r=param[3],l=param[1],_wG_=cardinal(r); + return (cardinal(l) + 1 | 0) + _wG_ | 0} + function elements_aux(accu,param) + {var accu$0=accu,param$0=param; + for(;;) + {if(! param$0)return accu$0; + var + r=param$0[3], + v=param$0[2], + l=param$0[1], + accu$1=[0,v,elements_aux(accu$0,r)], + accu$0=accu$1, + param$0=l}} + function elements(s){return elements_aux(0,s)} + function find(x,param) + {var param$0=param; + for(;;) + {if(! param$0)throw Not_found; + var + r=param$0[3], + v=param$0[2], + l=param$0[1], + c=caml_call2(Ord[1],x,v); + if(0 === c)return v; + var param$1=0 <= c?r:l,param$0=param$1}} + function find_first(f,param$0) + {var param$1=param$0; + for(;;) + {if(! param$1)throw Not_found; + var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; + if(! caml_call1(f,v$0)){var param$1=r$0;continue} + var v0=v$0,param=l$0; + for(;;) + {if(! param)return v0; + var r=param[3],v=param[2],l=param[1]; + if(caml_call1(f,v)){var v0=v,param=l;continue} + var param=r}}} + function find_first_opt(f,param$0) + {var param$1=param$0; + for(;;) + {if(! param$1)return 0; + var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; + if(! caml_call1(f,v$0)){var param$1=r$0;continue} + var v0=v$0,param=l$0; + for(;;) + {if(! param)return [0,v0]; + var r=param[3],v=param[2],l=param[1]; + if(caml_call1(f,v)){var v0=v,param=l;continue} + var param=r}}} + function find_last(f,param$0) + {var param$1=param$0; + for(;;) + {if(! param$1)throw Not_found; + var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; + if(! caml_call1(f,v$0)){var param$1=l$0;continue} + var v0=v$0,param=r$0; + for(;;) + {if(! param)return v0; + var r=param[3],v=param[2],l=param[1]; + if(caml_call1(f,v)){var v0=v,param=r;continue} + var param=l}}} + function find_last_opt(f,param$0) + {var param$1=param$0; + for(;;) + {if(! param$1)return 0; + var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; + if(! caml_call1(f,v$0)){var param$1=l$0;continue} + var v0=v$0,param=r$0; + for(;;) + {if(! param)return [0,v0]; + var r=param[3],v=param[2],l=param[1]; + if(caml_call1(f,v)){var v0=v,param=r;continue} + var param=l}}} + function find_opt(x,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var + r=param$0[3], + v=param$0[2], + l=param$0[1], + c=caml_call2(Ord[1],x,v); + if(0 === c)return [0,v]; + var param$1=0 <= c?r:l,param$0=param$1}} + function try_join(l,v,r) + {var switch$0=0; + if(0 !== l) + {var _wF_=max_elt(l); + if(0 <= caml_call2(Ord[1],_wF_,v))switch$0 = 1} + if(! switch$0) + {var switch$1=0; + if(0 !== r) + {var _wE_=min_elt(r); + if(0 <= caml_call2(Ord[1],v,_wE_))switch$1 = 1} + if(! switch$1)return join(l,v,r)} + return union(l,add(v,r))} + function map(f,t) + {if(! t)return 0; + var + r=t[3], + v=t[2], + l=t[1], + l$0=map(f,l), + v$0=caml_call1(f,v), + r$0=map(f,r); + if(l === l$0 && v === v$0 && r === r$0)return t; + return try_join(l$0,v$0,r$0)} + function filter_map(f,t) + {if(! t)return 0; + var + r=t[3], + v=t[2], + l=t[1], + t1=filter_map(f,l), + v$0=caml_call1(f,v), + t2=filter_map(f,r); + if(v$0) + {var v$1=v$0[1]; + if(l === t1 && v === v$1 && r === t2)return t; + return try_join(t1,v$1,t2)} + if(! t1)return t2; + if(! t2)return t1; + var _wD_=remove_min_elt(t2); + return try_join(t1,min_elt(t2),_wD_)} + function of_list(l) + {if(! l)return empty; + var _ws_=l[2],_wt_=l[1]; + if(! _ws_)return singleton(_wt_); + var _wu_=_ws_[2],_wv_=_ws_[1]; + if(! _wu_)return add(_wv_,singleton(_wt_)); + var _ww_=_wu_[2],_wx_=_wu_[1]; + if(! _ww_)return add(_wx_,add(_wv_,singleton(_wt_))); + var _wy_=_ww_[2],_wz_=_ww_[1]; + if(! _wy_)return add(_wz_,add(_wx_,add(_wv_,singleton(_wt_)))); + if(_wy_[2]) + {var + l$0=sort_uniq(Ord[1],l), + sub= + function(n,l) + {if(3 >= n >>> 0) + switch(n) + {case 0:return [0,0,l]; + case 1: + if(l){var l$3=l[2],x0=l[1];return [0,[0,0,x0,0,1],l$3]} + break; + case 2: + if(l) + {var _wA_=l[2]; + if(_wA_) + {var l$4=_wA_[2],x1=_wA_[1],x0$0=l[1]; + return [0,[0,[0,0,x0$0,0,1],x1,0,2],l$4]}} + break; + default: + if(l) + {var _wB_=l[2]; + if(_wB_) + {var _wC_=_wB_[2]; + if(_wC_) + {var l$5=_wC_[2],x2=_wC_[1],x1$0=_wB_[1],x0$1=l[1]; + return [0,[0,[0,0,x0$1,0,1],x1$0,[0,0,x2,0,1],2],l$5]}}}} + var nl=n / 2 | 0,match=sub(nl,l),l$0=match[2],left=match[1]; + if(! l$0)throw [0,Assert_failure,_V_]; + var + l$1=l$0[2], + mid=l$0[1], + match$0=sub((n - nl | 0) - 1 | 0,l$1), + l$2=match$0[2], + right=match$0[1]; + return [0,create(left,mid,right),l$2]}; + return sub(length$1(l$0),l$0)[1]} + var x4=_wy_[1]; + return add(x4,add(_wz_,add(_wx_,add(_wv_,singleton(_wt_)))))} + function add_seq(i,m) + {return fold_left(function(s,x){return add(x,s)},m,i)} + function of_seq(i){return add_seq(i,empty)} + function seq_of_enum(c,param) + {if(! c)return 0; + var rest=c[3],t=c[2],x=c[1],_wq_=cons_enum(t,rest); + return [0,x,function(_wr_){return seq_of_enum(_wq_,_wr_)}]} + function to_seq(c) + {var _wo_=cons_enum(c,0); + return function(_wp_){return seq_of_enum(_wo_,_wp_)}} + function snoc_enum(s,e) + {var s$0=s,e$0=e; + for(;;) + {if(! s$0)return e$0; + var s$1=s$0[3],v=s$0[2],l=s$0[1],e$1=[0,v,l,e$0],s$0=s$1,e$0=e$1}} + function rev_seq_of_enum(c,param) + {if(! c)return 0; + var rest=c[3],t=c[2],x=c[1],_wm_=snoc_enum(t,rest); + return [0,x,function(_wn_){return rev_seq_of_enum(_wm_,_wn_)}]} + function to_rev_seq(c) + {var _wk_=snoc_enum(c,0); + return function(_wl_){return rev_seq_of_enum(_wk_,_wl_)}} + function to_seq_from(low,s) + {var s$0=s,c=0; + for(;;) + {if(s$0) + {var r=s$0[3],v=s$0[2],l=s$0[1],n=caml_call2(Ord[1],v,low); + if(0 !== n) + {if(0 <= n){var c$0=[0,v,r,c],s$0=l,c=c$0;continue} + var s$0=r; + continue} + var _wi_=[0,v,r,c]} + else + var _wi_=c; + return function(_wj_){return seq_of_enum(_wi_,_wj_)}}} + return [0, + empty, + is_empty, + mem, + add, + singleton, + remove, + union, + inter, + disjoint, + diff, + compare, + equal, + subset, + iter, + map, + fold, + for_all, + exists, + filter, + filter_map, + partition, + cardinal, + elements, + min_elt, + min_elt_opt, + max_elt, + max_elt_opt, + min_elt, + min_elt_opt, + split, + find, + find_opt, + find_first, + find_first_opt, + find_last, + find_last_opt, + of_list, + to_seq_from, + to_seq, + to_rev_seq, + add_seq, + of_seq]}]; + caml_register_global(801,Stdlib_Set,"Stdlib__Set"); + var + Stdlib_Map= + [0, + function(Ord) + {function height(param){if(! param)return 0;var h=param[5];return h} + function create(l,x,d,r) + {var hl=height(l),hr=height(r),_wh_=hr <= hl?hl + 1 | 0:hr + 1 | 0; + return [0,l,x,d,r,_wh_]} + function singleton(x,d){return [0,0,x,d,0,1]} + function bal(l,x,d,r) + {if(l)var h=l[5],hl=h;else var hl=0; + if(r)var h$0=r[5],hr=h$0;else var hr=0; + if((hr + 2 | 0) < hl) + {if(! l)return invalid_arg(cst_Map_bal$0); + var lr=l[4],ld=l[3],lv=l[2],ll=l[1],_wc_=height(lr); + if(_wc_ <= height(ll))return create(ll,lv,ld,create(lr,x,d,r)); + if(! lr)return invalid_arg(cst_Map_bal); + var + lrr=lr[4], + lrd=lr[3], + lrv=lr[2], + lrl=lr[1], + _wd_=create(lrr,x,d,r); + return create(create(ll,lv,ld,lrl),lrv,lrd,_wd_)} + if((hl + 2 | 0) >= hr) + {var _wg_=hr <= hl?hl + 1 | 0:hr + 1 | 0;return [0,l,x,d,r,_wg_]} + if(! r)return invalid_arg(cst_Map_bal$2); + var rr=r[4],rd=r[3],rv=r[2],rl=r[1],_we_=height(rl); + if(_we_ <= height(rr))return create(create(l,x,d,rl),rv,rd,rr); + if(! rl)return invalid_arg(cst_Map_bal$1); + var + rlr=rl[4], + rld=rl[3], + rlv=rl[2], + rll=rl[1], + _wf_=create(rlr,rv,rd,rr); + return create(create(l,x,d,rll),rlv,rld,_wf_)} + var empty=0; + function is_empty(param){return param?0:1} + function add(x,data,m) + {if(! m)return [0,0,x,data,0,1]; + var h=m[5],r=m[4],d=m[3],v=m[2],l=m[1],c=caml_call2(Ord[1],x,v); + if(0 === c)return d === data?m:[0,l,x,data,r,h]; + if(0 <= c){var rr=add(x,data,r);return r === rr?m:bal(l,v,d,rr)} + var ll=add(x,data,l); + return l === ll?m:bal(ll,v,d,r)} + function find(x,param) + {var param$0=param; + for(;;) + {if(! param$0)throw Not_found; + var + r=param$0[4], + d=param$0[3], + v=param$0[2], + l=param$0[1], + c=caml_call2(Ord[1],x,v); + if(0 === c)return d; + var param$1=0 <= c?r:l,param$0=param$1}} + function find_first(f,param$0) + {var param$1=param$0; + for(;;) + {if(! param$1)throw Not_found; + var r$0=param$1[4],d$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; + if(! caml_call1(f,v$0)){var param$1=r$0;continue} + var v0=v$0,d0=d$0,param=l$0; + for(;;) + {if(! param)return [0,v0,d0]; + var r=param[4],d=param[3],v=param[2],l=param[1]; + if(caml_call1(f,v)){var v0=v,d0=d,param=l;continue} + var param=r}}} + function find_first_opt(f,param$0) + {var param$1=param$0; + for(;;) + {if(! param$1)return 0; + var r$0=param$1[4],d$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; + if(! caml_call1(f,v$0)){var param$1=r$0;continue} + var v0=v$0,d0=d$0,param=l$0; + for(;;) + {if(! param)return [0,[0,v0,d0]]; + var r=param[4],d=param[3],v=param[2],l=param[1]; + if(caml_call1(f,v)){var v0=v,d0=d,param=l;continue} + var param=r}}} + function find_last(f,param$0) + {var param$1=param$0; + for(;;) + {if(! param$1)throw Not_found; + var r$0=param$1[4],d$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; + if(! caml_call1(f,v$0)){var param$1=l$0;continue} + var v0=v$0,d0=d$0,param=r$0; + for(;;) + {if(! param)return [0,v0,d0]; + var r=param[4],d=param[3],v=param[2],l=param[1]; + if(caml_call1(f,v)){var v0=v,d0=d,param=r;continue} + var param=l}}} + function find_last_opt(f,param$0) + {var param$1=param$0; + for(;;) + {if(! param$1)return 0; + var r$0=param$1[4],d$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; + if(! caml_call1(f,v$0)){var param$1=l$0;continue} + var v0=v$0,d0=d$0,param=r$0; + for(;;) + {if(! param)return [0,[0,v0,d0]]; + var r=param[4],d=param[3],v=param[2],l=param[1]; + if(caml_call1(f,v)){var v0=v,d0=d,param=r;continue} + var param=l}}} + function find_opt(x,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var + r=param$0[4], + d=param$0[3], + v=param$0[2], + l=param$0[1], + c=caml_call2(Ord[1],x,v); + if(0 === c)return [0,d]; + var param$1=0 <= c?r:l,param$0=param$1}} + function mem(x,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var + r=param$0[4], + v=param$0[2], + l=param$0[1], + c=caml_call2(Ord[1],x,v), + _wb_=0 === c?1:0; + if(_wb_)return _wb_; + var param$1=0 <= c?r:l,param$0=param$1}} + function min_binding(param) + {var param$0=param; + for(;;) + {if(! param$0)throw Not_found; + var _wa_=param$0[1]; + if(_wa_){var param$0=_wa_;continue} + var d=param$0[3],v=param$0[2]; + return [0,v,d]}} + function min_binding_opt(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var _v$_=param$0[1]; + if(_v$_){var param$0=_v$_;continue} + var d=param$0[3],v=param$0[2]; + return [0,[0,v,d]]}} + function max_binding(param) + {var param$0=param; + for(;;) + {if(! param$0)throw Not_found; + if(param$0[4]){var param$1=param$0[4],param$0=param$1;continue} + var d=param$0[3],v=param$0[2]; + return [0,v,d]}} + function max_binding_opt(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + if(param$0[4]){var param$1=param$0[4],param$0=param$1;continue} + var d=param$0[3],v=param$0[2]; + return [0,[0,v,d]]}} + function remove_min_binding(param) + {if(! param)return invalid_arg(cst_Map_remove_min_elt); + var _v__=param[1]; + if(_v__) + {var r=param[4],d=param[3],v=param[2]; + return bal(remove_min_binding(_v__),v,d,r)} + var r$0=param[4]; + return r$0} + function _vJ_(t1,t2) + {if(! t1)return t2; + if(! t2)return t1; + var match=min_binding(t2),d=match[2],x=match[1]; + return bal(t1,x,d,remove_min_binding(t2))} + function remove(x,m) + {if(! m)return 0; + var r=m[4],d=m[3],v=m[2],l=m[1],c=caml_call2(Ord[1],x,v); + if(0 === c)return _vJ_(l,r); + if(0 <= c){var rr=remove(x,r);return r === rr?m:bal(l,v,d,rr)} + var ll=remove(x,l); + return l === ll?m:bal(ll,v,d,r)} + function update(x,f,m) + {if(! m) + {var match$0=caml_call1(f,0); + if(! match$0)return 0; + var data$0=match$0[1]; + return [0,0,x,data$0,0,1]} + var h=m[5],r=m[4],d=m[3],v=m[2],l=m[1],c=caml_call2(Ord[1],x,v); + if(0 === c) + {var match=caml_call1(f,[0,d]); + if(! match)return _vJ_(l,r); + var data=match[1]; + return d === data?m:[0,l,x,data,r,h]} + if(0 <= c){var rr=update(x,f,r);return r === rr?m:bal(l,v,d,rr)} + var ll=update(x,f,l); + return l === ll?m:bal(ll,v,d,r)} + function iter(f,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var r=param$0[4],d=param$0[3],v=param$0[2],l=param$0[1]; + iter(f,l); + caml_call2(f,v,d); + var param$0=r}} + function map(f,param) + {if(! param)return 0; + var + h=param[5], + r=param[4], + d=param[3], + v=param[2], + l=param[1], + l$0=map(f,l), + d$0=caml_call1(f,d), + r$0=map(f,r); + return [0,l$0,v,d$0,r$0,h]} + function mapi(f,param) + {if(! param)return 0; + var + h=param[5], + r=param[4], + d=param[3], + v=param[2], + l=param[1], + l$0=mapi(f,l), + d$0=caml_call2(f,v,d), + r$0=mapi(f,r); + return [0,l$0,v,d$0,r$0,h]} + function fold(f,m,accu) + {var m$0=m,accu$0=accu; + for(;;) + {if(! m$0)return accu$0; + var + r=m$0[4], + d=m$0[3], + v=m$0[2], + l=m$0[1], + accu$1=caml_call3(f,v,d,fold(f,l,accu$0)), + m$0=r, + accu$0=accu$1}} + function for_all(p,param) + {var param$0=param; + for(;;) + {if(! param$0)return 1; + var + r=param$0[4], + d=param$0[3], + v=param$0[2], + l=param$0[1], + _v7_=caml_call2(p,v,d); + if(_v7_) + {var _v8_=for_all(p,l); + if(_v8_){var param$0=r;continue} + var _v9_=_v8_} + else + var _v9_=_v7_; + return _v9_}} + function exists(p,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var + r=param$0[4], + d=param$0[3], + v=param$0[2], + l=param$0[1], + _v4_=caml_call2(p,v,d); + if(_v4_) + var _v5_=_v4_; + else + {var _v6_=exists(p,l); + if(! _v6_){var param$0=r;continue} + var _v5_=_v6_} + return _v5_}} + function add_min_binding(k,x,param) + {if(! param)return singleton(k,x); + var r=param[4],d=param[3],v=param[2],l=param[1]; + return bal(add_min_binding(k,x,l),v,d,r)} + function add_max_binding(k,x,param) + {if(! param)return singleton(k,x); + var r=param[4],d=param[3],v=param[2],l=param[1]; + return bal(l,v,d,add_max_binding(k,x,r))} + function join(l,v,d,r) + {if(! l)return add_min_binding(v,d,r); + if(! r)return add_max_binding(v,d,l); + var + rh=r[5], + rr=r[4], + rd=r[3], + rv=r[2], + rl=r[1], + lh=l[5], + lr=l[4], + ld=l[3], + lv=l[2], + ll=l[1]; + return (rh + 2 | 0) < lh + ?bal(ll,lv,ld,join(lr,v,d,r)) + :(lh + 2 | 0) < rh + ?bal(join(l,v,d,rl),rv,rd,rr) + :create(l,v,d,r)} + function concat(t1,t2) + {if(! t1)return t2; + if(! t2)return t1; + var match=min_binding(t2),d=match[2],x=match[1]; + return join(t1,x,d,remove_min_binding(t2))} + function concat_or_join(t1,v,d,t2) + {if(! d)return concat(t1,t2);var d$0=d[1];return join(t1,v,d$0,t2)} + function split(x,param) + {if(! param)return _W_; + var + r=param[4], + d=param[3], + v=param[2], + l=param[1], + c=caml_call2(Ord[1],x,v); + if(0 === c)return [0,l,[0,d],r]; + if(0 <= c) + {var match=split(x,r),rr=match[3],pres=match[2],lr=match[1]; + return [0,join(l,v,d,lr),pres,rr]} + var + match$0=split(x,l), + rl=match$0[3], + pres$0=match$0[2], + ll=match$0[1]; + return [0,ll,pres$0,join(rl,v,d,r)]} + function merge(f,s1,s2) + {if(s1) + {var h1=s1[5],r1=s1[4],d1=s1[3],v1=s1[2],l1=s1[1]; + if(height(s2) <= h1) + {var + match=split(v1,s2), + r2=match[3], + d2=match[2], + l2=match[1], + _v0_=merge(f,r1,r2), + _v1_=caml_call3(f,v1,[0,d1],d2); + return concat_or_join(merge(f,l1,l2),v1,_v1_,_v0_)}} + else + if(! s2)return 0; + if(! s2)throw [0,Assert_failure,_X_]; + var + r2$0=s2[4], + d2$0=s2[3], + v2=s2[2], + l2$0=s2[1], + match$0=split(v2,s1), + r1$0=match$0[3], + d1$0=match$0[2], + l1$0=match$0[1], + _v2_=merge(f,r1$0,r2$0), + _v3_=caml_call3(f,v2,d1$0,[0,d2$0]); + return concat_or_join(merge(f,l1$0,l2$0),v2,_v3_,_v2_)} + function union(f,s1,s2) + {if(s1) + {if(s2) + {var + h2=s2[5], + r2=s2[4], + d2=s2[3], + v2=s2[2], + l2=s2[1], + h1=s1[5], + r1=s1[4], + d1=s1[3], + v1=s1[2], + l1=s1[1]; + if(h2 <= h1) + {var + match=split(v1,s2), + r2$0=match[3], + d2$0=match[2], + l2$0=match[1], + l=union(f,l1,l2$0), + r=union(f,r1,r2$0); + if(! d2$0)return join(l,v1,d1,r); + var d2$1=d2$0[1]; + return concat_or_join(l,v1,caml_call3(f,v1,d1,d2$1),r)} + var + match$0=split(v2,s1), + r1$0=match$0[3], + d1$0=match$0[2], + l1$0=match$0[1], + l$0=union(f,l1$0,l2), + r$0=union(f,r1$0,r2); + if(! d1$0)return join(l$0,v2,d2,r$0); + var d1$1=d1$0[1]; + return concat_or_join(l$0,v2,caml_call3(f,v2,d1$1,d2),r$0)} + var s=s1} + else + var s=s2; + return s} + function filter(p,m) + {if(! m)return 0; + var + r=m[4], + d=m[3], + v=m[2], + l=m[1], + l$0=filter(p,l), + pvd=caml_call2(p,v,d), + r$0=filter(p,r); + if(! pvd)return concat(l$0,r$0); + if(l === l$0 && r === r$0)return m; + return join(l$0,v,d,r$0)} + function filter_map(f,param) + {if(! param)return 0; + var + r=param[4], + d=param[3], + v=param[2], + l=param[1], + l$0=filter_map(f,l), + fvd=caml_call2(f,v,d), + r$0=filter_map(f,r); + if(! fvd)return concat(l$0,r$0); + var d$0=fvd[1]; + return join(l$0,v,d$0,r$0)} + function partition(p,param) + {if(! param)return _Y_; + var + r=param[4], + d=param[3], + v=param[2], + l=param[1], + match=partition(p,l), + lf=match[2], + lt=match[1], + pvd=caml_call2(p,v,d), + match$0=partition(p,r), + rf=match$0[2], + rt=match$0[1]; + if(pvd){var _vY_=concat(lf,rf);return [0,join(lt,v,d,rt),_vY_]} + var _vZ_=join(lf,v,d,rf); + return [0,concat(lt,rt),_vZ_]} + function cons_enum(m,e) + {var m$0=m,e$0=e; + for(;;) + {if(! m$0)return e$0; + var + r=m$0[4], + d=m$0[3], + v=m$0[2], + m$1=m$0[1], + e$1=[0,v,d,r,e$0], + m$0=m$1, + e$0=e$1}} + function compare(cmp,m1,m2) + {var e2$2=cons_enum(m2,0),e1$2=cons_enum(m1,0),e1=e1$2,e2=e2$2; + for(;;) + {if(! e1)return e2?-1:0; + if(! e2)return 1; + var + e2$0=e2[4], + r2=e2[3], + d2=e2[2], + v2=e2[1], + e1$0=e1[4], + r1=e1[3], + d1=e1[2], + v1=e1[1], + c=caml_call2(Ord[1],v1,v2); + if(0 !== c)return c; + var c$0=caml_call2(cmp,d1,d2); + if(0 !== c$0)return c$0; + var + e2$1=cons_enum(r2,e2$0), + e1$1=cons_enum(r1,e1$0), + e1=e1$1, + e2=e2$1}} + function equal(cmp,m1,m2) + {var e2$2=cons_enum(m2,0),e1$2=cons_enum(m1,0),e1=e1$2,e2=e2$2; + for(;;) + {if(! e1)return e2?0:1; + if(! e2)return 0; + var + e2$0=e2[4], + r2=e2[3], + d2=e2[2], + v2=e2[1], + e1$0=e1[4], + r1=e1[3], + d1=e1[2], + v1=e1[1], + _vV_=0 === caml_call2(Ord[1],v1,v2)?1:0; + if(_vV_) + {var _vW_=caml_call2(cmp,d1,d2); + if(_vW_) + {var + e2$1=cons_enum(r2,e2$0), + e1$1=cons_enum(r1,e1$0), + e1=e1$1, + e2=e2$1; + continue} + var _vX_=_vW_} + else + var _vX_=_vV_; + return _vX_}} + function cardinal(param) + {if(! param)return 0; + var r=param[4],l=param[1],_vU_=cardinal(r); + return (cardinal(l) + 1 | 0) + _vU_ | 0} + function bindings_aux(accu,param) + {var accu$0=accu,param$0=param; + for(;;) + {if(! param$0)return accu$0; + var + r=param$0[4], + d=param$0[3], + v=param$0[2], + l=param$0[1], + accu$1=[0,[0,v,d],bindings_aux(accu$0,r)], + accu$0=accu$1, + param$0=l}} + function bindings(s){return bindings_aux(0,s)} + function add_seq(i,m) + {return fold_left + (function(m,param) + {var v=param[2],k=param[1];return add(k,v,m)}, + m, + i)} + function of_seq(i){return add_seq(i,empty)} + function seq_of_enum(c,param) + {if(! c)return 0; + var rest=c[4],t=c[3],v=c[2],k=c[1],_vS_=cons_enum(t,rest); + return [0,[0,k,v],function(_vT_){return seq_of_enum(_vS_,_vT_)}]} + function to_seq(m) + {var _vQ_=cons_enum(m,0); + return function(_vR_){return seq_of_enum(_vQ_,_vR_)}} + function snoc_enum(s,e) + {var s$0=s,e$0=e; + for(;;) + {if(! s$0)return e$0; + var + s$1=s$0[4], + d=s$0[3], + v=s$0[2], + l=s$0[1], + e$1=[0,v,d,l,e$0], + s$0=s$1, + e$0=e$1}} + function rev_seq_of_enum(c,param) + {if(! c)return 0; + var rest=c[4],t=c[3],v=c[2],k=c[1],_vO_=snoc_enum(t,rest); + return [0, + [0,k,v], + function(_vP_){return rev_seq_of_enum(_vO_,_vP_)}]} + function to_rev_seq(c) + {var _vM_=snoc_enum(c,0); + return function(_vN_){return rev_seq_of_enum(_vM_,_vN_)}} + function to_seq_from(low,m) + {var m$0=m,c=0; + for(;;) + {if(m$0) + {var + r=m$0[4], + d=m$0[3], + v=m$0[2], + l=m$0[1], + n=caml_call2(Ord[1],v,low); + if(0 !== n) + {if(0 <= n){var c$0=[0,v,d,r,c],m$0=l,c=c$0;continue} + var m$0=r; + continue} + var _vK_=[0,v,d,r,c]} + else + var _vK_=c; + return function(_vL_){return seq_of_enum(_vK_,_vL_)}}} + return [0, + empty, + is_empty, + mem, + add, + update, + singleton, + remove, + merge, + union, + compare, + equal, + iter, + fold, + for_all, + exists, + filter, + filter_map, + partition, + cardinal, + bindings, + min_binding, + min_binding_opt, + max_binding, + max_binding_opt, + min_binding, + min_binding_opt, + split, + find, + find_opt, + find_first, + find_first_opt, + find_last, + find_last_opt, + map, + mapi, + to_seq, + to_rev_seq, + to_seq_from, + add_seq, + of_seq]}]; + caml_register_global(802,Stdlib_Map,"Stdlib__Map"); + var Empty=[248,cst_Stdlib_Stack_Empty,caml_fresh_oo_id(0)]; + function create$0(param){return [0,0,0]} + function clear(s){s[1] = 0;s[2] = 0;return 0} + function copy$3(s){return [0,s[1],s[2]]} + function push(x,s){s[1] = [0,x,s[1]];s[2] = s[2] + 1 | 0;return 0} + function pop(s) + {var _vI_=s[1]; + if(! _vI_)throw Empty; + var tl=_vI_[2],hd=_vI_[1]; + s[1] = tl; + s[2] = s[2] - 1 | 0; + return hd} + function pop_opt(s) + {var _vH_=s[1]; + if(! _vH_)return 0; + var tl=_vH_[2],hd=_vH_[1]; + s[1] = tl; + s[2] = s[2] - 1 | 0; + return [0,hd]} + function top(s) + {var _vG_=s[1];if(! _vG_)throw Empty;var hd=_vG_[1];return hd} + function top_opt(s) + {var _vF_=s[1];if(! _vF_)return 0;var hd=_vF_[1];return [0,hd]} + function is_empty$0(s){return 0 === s[1]?1:0} + function length$2(s){return s[2]} + function iter$7(f,s){return iter$2(f,s[1])} + function fold$2(f,acc,s){return fold_left$0(f,acc,s[1])} + function to_seq$6(s){return to_seq$1(s[1])} + function add_seq(q,i){return iter(function(x){return push(x,q)},i)} + function of_seq$4(g){var s=create$0(0);add_seq(s,g);return s} + var + Stdlib_Stack= + [0, + Empty, + create$0, + push, + pop, + pop_opt, + top, + top_opt, + clear, + copy$3, + is_empty$0, + length$2, + iter$7, + fold$2, + to_seq$6, + add_seq, + of_seq$4]; + caml_register_global(803,Stdlib_Stack,"Stdlib__Stack"); + var Empty$0=[248,cst_Stdlib_Queue_Empty,caml_fresh_oo_id(0)]; + function create$1(param){return [0,0,0,0]} + function clear$0(q){q[1] = 0;q[2] = 0;q[3] = 0;return 0} + function add(x,q) + {var cell=[0,x,0],_vE_=q[3]; + return _vE_ + ?(q[1] = q[1] + 1 | 0,_vE_[2] = cell,q[3] = cell,0) + :(q[1] = 1,q[2] = cell,q[3] = cell,0)} + function peek(q) + {var _vD_=q[2]; + if(! _vD_)throw Empty$0; + var content=_vD_[1]; + return content} + function peek_opt(q) + {var _vC_=q[2];if(! _vC_)return 0;var content=_vC_[1];return [0,content]} + function take$0(q) + {var _vA_=q[2]; + if(! _vA_)throw Empty$0; + var _vB_=_vA_[1]; + if(_vA_[2]) + {var next=_vA_[2];q[1] = q[1] - 1 | 0;q[2] = next;return _vB_} + clear$0(q); + return _vB_} + function take_opt(q) + {var _vy_=q[2]; + if(! _vy_)return 0; + var _vz_=_vy_[1]; + if(_vy_[2]) + {var next=_vy_[2];q[1] = q[1] - 1 | 0;q[2] = next;return [0,_vz_]} + clear$0(q); + return [0,_vz_]} + function copy$4(q) + {var q_res=[0,q[1],0,0],prev=0,cell=q[2]; + for(;;) + {if(! cell){q_res[3] = prev;return q_res} + var content=cell[1],next=cell[2],res=[0,content,0]; + if(prev)prev[2] = res;else q_res[2] = res; + var prev=res,cell=next}} + function is_empty$1(q){return 0 === q[1]?1:0} + function length$3(q){return q[1]} + function iter$8(f,q) + {var cell=q[2]; + for(;;) + {if(! cell)return 0; + var content=cell[1],next=cell[2]; + caml_call1(f,content); + var cell=next}} + function fold$3(f,accu$1,q) + {var accu=accu$1,cell=q[2]; + for(;;) + {if(! cell)return accu; + var + content=cell[1], + next=cell[2], + accu$0=caml_call2(f,accu,content), + accu=accu$0, + cell=next}} + function transfer(q1,q2) + {var _vw_=0 < q1[1]?1:0; + if(! _vw_)return _vw_; + var _vx_=q2[3]; + return _vx_ + ?(q2[1] + = + q2[1] + + + q1[1] + | + 0, + _vx_[2] + = + q1[2], + q2[3] + = + q1[3], + clear$0(q1)) + :(q2[1] = q1[1],q2[2] = q1[2],q2[3] = q1[3],clear$0(q1))} + function to_seq$7(q) + {function aux(c,param) + {if(! c)return 0; + var x=c[1],next=c[2]; + return [0,x,function(_vv_){return aux(next,_vv_)}]} + var _vt_=q[2]; + return function(_vu_){return aux(_vt_,_vu_)}} + function add_seq$0(q,i){return iter(function(x){return add(x,q)},i)} + function of_seq$5(g){var q=create$1(0);add_seq$0(q,g);return q} + var + Stdlib_Queue= + [0, + Empty$0, + create$1, + add, + add, + take$0, + take_opt, + take$0, + peek, + peek_opt, + peek, + clear$0, + copy$4, + is_empty$1, + length$3, + iter$8, + fold$3, + transfer, + to_seq$7, + add_seq$0, + of_seq$5]; + caml_register_global(804,Stdlib_Queue,"Stdlib__Queue"); + var + Failure$0=[248,cst_Stdlib_Stream_Failure,caml_fresh_oo_id(0)], + Error=[248,cst_Stdlib_Stream_Error,caml_fresh_oo_id(0)]; + function count(param) + {if(! param)return 0;var match=param[1],count=match[1];return count} + function data(param) + {if(! param)return 0;var match=param[1],data=match[2];return data} + function fill_buff(b) + {b[3] = input(b[1],b[2],0,caml_ml_bytes_length(b[2]));b[4] = 0;return 0} + function get_data(count,d) + {var d$0=d; + for(;;) + {if(typeof d$0 !== "number") + switch(d$0[0]) + {case 1: + var d2=d$0[2],d1=d$0[1],match=get_data(count,d1); + if(typeof match === "number"){var d$0=d2;continue} + if(0 !== match[0])throw [0,Assert_failure,_Z_]; + var d11=match[2],a=match[1]; + return [0,a,[1,d11,d2]]; + case 2: + var + f=d$0[1], + _vp_=caml_obj_tag(f), + d$1=250 === _vp_?f[1]:246 === _vp_?force_lazy_block(f):f, + d$0=d$1; + continue; + case 3: + var _vq_=d$0[1],_vr_=_vq_[1]; + if(_vr_) + {var _vs_=_vr_[1]; + if(! _vs_)return 0; + var a$0=_vs_[1]; + _vq_[1] = 0; + return [0,a$0,d$0]} + var match$0=caml_call1(_vq_[2],count); + if(match$0){var a$1=match$0[1];return [0,a$1,d$0]} + _vq_[1] = ___; + return 0; + case 4: + var b=d$0[1]; + if(b[3] <= b[4])fill_buff(b); + if(0 === b[3])return 0; + var r=caml_bytes_unsafe_get(b[2],b[4]); + b[4] = b[4] + 1 | 0; + return [0,r,d$0] + } + return d$0}} + function peek_data(s) + {for(;;) + {var _vk_=s[2]; + if(typeof _vk_ === "number")return 0; + switch(_vk_[0]) + {case 0:var a=_vk_[1];return [0,a]; + case 1: + var d=get_data(s[1],s[2]); + if(typeof d === "number")return 0; + if(0 !== d[0])throw [0,Assert_failure,_$_]; + var a$0=d[1]; + s[2] = d; + return [0,a$0]; + case 2: + var + f=_vk_[1], + _vl_=caml_obj_tag(f), + _vm_=250 === _vl_?f[1]:246 === _vl_?force_lazy_block(f):f; + s[2] = _vm_; + continue; + case 3: + var _vn_=_vk_[1],_vo_=_vn_[1]; + if(_vo_){var a$1=_vo_[1];return a$1} + var x=caml_call1(_vn_[2],s[1]); + _vn_[1] = [0,x]; + return x; + default: + var b=_vk_[1]; + if(b[3] <= b[4])fill_buff(b); + return 0 === b[3]?(s[2] = 0,0):[0,caml_bytes_unsafe_get(b[2],b[4])]}}} + function peek$0(param) + {if(! param)return 0;var s=param[1];return peek_data(s)} + function junk_data(s) + {for(;;) + {var _vi_=s[2]; + if(typeof _vi_ !== "number") + switch(_vi_[0]) + {case 0:var d=_vi_[2];s[1] = s[1] + 1 | 0;s[2] = d;return 0; + case 3: + var _vj_=_vi_[1]; + if(_vj_[1]){s[1] = s[1] + 1 | 0;_vj_[1] = 0;return 0} + break; + case 4: + var b=_vi_[1]; + if(b[3] <= b[4])fill_buff(b); + return 0 === b[3] + ?(s[2] = 0,0) + :(s[1] = s[1] + 1 | 0,b[4] = b[4] + 1 | 0,0) + } + var match=peek_data(s); + if(match)continue; + return 0}} + function junk(param) + {if(! param)return 0;var data=param[1];return junk_data(data)} + function nget_data(n,s) + {if(0 >= n)return [0,0,s[2],0]; + var match=peek_data(s); + if(! match)return [0,0,s[2],0]; + var a=match[1]; + junk_data(s); + var + match$0=nget_data(n - 1 | 0,s), + k=match$0[3], + d=match$0[2], + al=match$0[1]; + return [0,[0,a,al],[0,a,d],k + 1 | 0]} + function npeek(n,param) + {if(! param)return 0; + var + d$0=param[1], + match=nget_data(n,d$0), + len=match[3], + d=match[2], + al=match[1]; + d$0[1] = d$0[1] - len | 0; + d$0[2] = d; + return al} + function next(s) + {var match=peek$0(s); + if(! match)throw Failure$0; + var a=match[1]; + junk(s); + return a} + function empty$2(s){var match=peek$0(s);if(match)throw Failure$0;return 0} + function iter$9(f,strm) + {for(;;) + {var match=peek$0(strm); + if(! match)return 0; + var a=match[1]; + junk(strm); + caml_call1(f,a)}} + function from(f){return [0,[0,0,[3,[0,0,f]]]]} + function of_list$1(l) + {var _vh_=0; + return [0,[0,0,fold_right(function(x,l){return [0,x,l]},l,_vh_)]]} + function of_string(s) + {var count=[0,0]; + return from + (function(param) + {var c=count[1]; + return c < caml_ml_string_length(s) + ?(count[1]++,[0,caml_string_get(s,c)]) + :0})} + function of_bytes$0(s) + {var count=[0,0]; + return from + (function(param) + {var c=count[1]; + return c < caml_ml_bytes_length(s) + ?(count[1]++,[0,caml_bytes_get(s,c)]) + :0})} + function of_channel(ic) + {return [0,[0,0,[4,[0,ic,caml_create_bytes(4096),0,0]]]]} + function iapp(i,s){var _vg_=data(s);return [0,[0,0,[1,data(i),_vg_]]]} + function icons(i,s){return [0,[0,0,[0,i,data(s)]]]} + function ising(i){return [0,[0,0,[0,i,0]]]} + function lapp(f,s) + {return [0, + [0, + 0, + [2, + [246, + function(_ve_) + {var _vf_=data(s);return [1,data(caml_call1(f,0)),_vf_]}]]]]} + function lcons(f,s) + {return [0, + [0, + 0, + [2, + [246, + function(_vc_) + {var _vd_=data(s);return [0,caml_call1(f,0),_vd_]}]]]]} + function lsing(f) + {return [0,[0,0,[2,[246,function(_vb_){return [0,caml_call1(f,0),0]}]]]]} + var sempty=0; + function slazy(f) + {return [0,[0,0,[2,[246,function(_va_){return data(caml_call1(f,0))}]]]]} + function dump(f,s) + {print_string(cst_count); + print_int(count(s)); + print_string(cst_data); + dump_data(f,data(s)); + print_string(cst$6); + return print_newline(0)} + function dump_data(f,param) + {if(typeof param === "number")return print_string(cst_Sempty); + switch(param[0]) + {case 0: + var d=param[2],a=param[1]; + print_string(cst_Scons); + caml_call1(f,a); + print_string(cst$7); + dump_data(f,d); + return print_string(cst$8); + case 1: + var d2=param[2],d1=param[1]; + print_string(cst_Sapp); + dump_data(f,d1); + print_string(cst$9); + dump_data(f,d2); + return print_string(cst$10); + case 2:return print_string(cst_Slazy); + case 3:return print_string(cst_Sgen); + default:return print_string(cst_Sbuffio)}} + var + Stdlib_Stream= + [0, + Failure$0, + Error, + from, + of_list$1, + of_string, + of_bytes$0, + of_channel, + iter$9, + next, + empty$2, + peek$0, + junk, + count, + npeek, + iapp, + icons, + ising, + lapp, + lcons, + lsing, + sempty, + slazy, + dump]; + caml_register_global(805,Stdlib_Stream,"Stdlib__Stream"); + function create$2(n) + {var + n$0=1 <= n?n:1, + n$1=max_string_length < n$0?max_string_length:n$0, + s=caml_create_bytes(n$1); + return [0,s,0,n$1,s]} + function contents(b){return sub_string(b[1],0,b[2])} + function to_bytes$0(b){return sub(b[1],0,b[2])} + function sub$3(b,ofs,len) + {if(0 <= ofs && 0 <= len && (b[2] - len | 0) >= ofs) + return sub_string(b[1],ofs,len); + return invalid_arg(cst_Buffer_sub)} + function blit$3(src,srcoff,dst,dstoff,len) + {if + (0 + <= + len + && + 0 + <= + srcoff + && + (src[2] - len | 0) + >= + srcoff + && + 0 + <= + dstoff + && + (caml_ml_bytes_length(dst) - len | 0) + >= + dstoff) + return caml_blit_bytes(src[1],srcoff,dst,dstoff,len); + return invalid_arg(cst_Buffer_blit)} + function nth$0(b,ofs) + {if(0 <= ofs && b[2] > ofs)return caml_bytes_unsafe_get(b[1],ofs); + return invalid_arg(cst_Buffer_nth)} + function length$4(b){return b[2]} + function clear$1(b){b[2] = 0;return 0} + function reset(b) + {b[2] = 0;b[1] = b[4];b[3] = caml_ml_bytes_length(b[1]);return 0} + function resize(b,more) + {var old_pos=b[2],old_len=b[3],new_len=[0,old_len]; + for(;;) + {if(new_len[1] < (old_pos + more | 0)) + {new_len[1] = 2 * new_len[1] | 0;continue} + if(max_string_length < new_len[1]) + if((old_pos + more | 0) <= max_string_length) + new_len[1] = max_string_length; + else + failwith(cst_Buffer_add_cannot_grow_buf); + var new_buffer=caml_create_bytes(new_len[1]); + blit(b[1],0,new_buffer,0,b[2]); + b[1] = new_buffer; + b[3] = new_len[1]; + if((b[2] + more | 0) > b[3])throw [0,Assert_failure,_ab_]; + if((old_pos + more | 0) <= b[3])return 0; + throw [0,Assert_failure,_aa_]}} + function add_char(b,c) + {var pos=b[2]; + if(b[3] <= pos)resize(b,1); + caml_bytes_unsafe_set(b[1],pos,c); + b[2] = pos + 1 | 0; + return 0} + var uchar_utf_8_byte_length_max=4,uchar_utf_16_byte_length_max=4; + function add_utf_8_uchar(b,u) + {for(;;) + {var pos=b[2]; + if(b[3] <= pos)resize(b,uchar_utf_8_byte_length_max); + var n=set_utf_8_uchar(b[1],pos,u); + if(0 === n){resize(b,uchar_utf_8_byte_length_max);continue} + b[2] = pos + n | 0; + return 0}} + function add_utf_16be_uchar(b,u) + {for(;;) + {var pos=b[2]; + if(b[3] <= pos)resize(b,uchar_utf_16_byte_length_max); + var n=set_utf_16be_uchar(b[1],pos,u); + if(0 === n){resize(b,uchar_utf_16_byte_length_max);continue} + b[2] = pos + n | 0; + return 0}} + function add_utf_16le_uchar(b,u) + {for(;;) + {var pos=b[2]; + if(b[3] <= pos)resize(b,uchar_utf_16_byte_length_max); + var n=set_utf_16le_uchar(b[1],pos,u); + if(0 === n){resize(b,uchar_utf_16_byte_length_max);continue} + b[2] = pos + n | 0; + return 0}} + function add_substring(b,s,offset,len) + {var _u9_=offset < 0?1:0; + if(_u9_) + var _u__=_u9_; + else + var + _u$_=len < 0?1:0, + _u__=_u$_ || ((caml_ml_string_length(s) - len | 0) < offset?1:0); + if(_u__)invalid_arg(cst_Buffer_add_substring_add_s); + var new_position=b[2] + len | 0; + if(b[3] < new_position)resize(b,len); + caml_blit_string(s,offset,b[1],b[2],len); + b[2] = new_position; + return 0} + function add_subbytes(b,s,offset,len) + {return add_substring(b,caml_string_of_bytes(s),offset,len)} + function add_string(b,s) + {var len=caml_ml_string_length(s),new_position=b[2] + len | 0; + if(b[3] < new_position)resize(b,len); + caml_blit_string(s,0,b[1],b[2],len); + b[2] = new_position; + return 0} + function add_bytes(b,s){return add_string(b,caml_string_of_bytes(s))} + function add_buffer(b,bs){return add_subbytes(b,bs[1],0,bs[2])} + function add_channel(b,ic,len) + {var _u7_=len < 0?1:0,_u8_=_u7_ || (max_string_length < len?1:0); + if(_u8_)invalid_arg(cst_Buffer_add_channel); + if(b[3] < (b[2] + len | 0))resize(b,len); + var already_read=0,ofs=b[2],to_read=len,_u6_=b[1]; + for(;;) + {if(0 !== to_read) + {var r=input(ic,_u6_,ofs,to_read); + if(0 !== r) + {var + already_read$0=already_read + r | 0, + ofs$0=ofs + r | 0, + to_read$0=to_read - r | 0, + already_read=already_read$0, + ofs=ofs$0, + to_read=to_read$0; + continue}} + if((b[2] + already_read | 0) > b[3])throw [0,Assert_failure,_ac_]; + b[2] = b[2] + already_read | 0; + if(already_read < len)throw End_of_file; + return 0}} + function output_buffer(oc,b){return output(oc,b[1],0,b[2])} + function add_substitute(b,f,s) + {var lim$1=caml_ml_string_length(s),previous=32,i$7=0; + for(;;) + {if(i$7 >= lim$1) + {var _u5_=92 === previous?1:0;return _u5_?add_char(b,previous):_u5_} + var current=caml_string_get(s,i$7); + if(36 !== current) + {if(92 === previous) + {add_char(b,92); + add_char(b,current); + var i$9=i$7 + 1 | 0,previous=32,i$7=i$9; + continue} + if(92 === current) + {var i$10=i$7 + 1 | 0,previous=current,i$7=i$10;continue} + add_char(b,current); + var i$11=i$7 + 1 | 0,previous=current,i$7=i$11; + continue} + if(92 === previous) + {add_char(b,current); + var i$8=i$7 + 1 | 0,previous=32,i$7=i$8; + continue} + var start=i$7 + 1 | 0; + if(lim$1 <= start)throw Not_found; + var opening=caml_string_get(s,start),switch$0=0; + if(40 !== opening && 123 !== opening) + {var i$6=start + 1 | 0,lim$0=caml_ml_string_length(s),i$3=i$6; + for(;;) + {if(lim$0 <= i$3) + var stop=lim$0; + else + {var match=caml_string_get(s,i$3),switch$1=0; + if(91 <= match) + {if(97 <= match) + {if(123 > match)switch$1 = 1} + else + if(95 === match)switch$1 = 1} + else + if(58 <= match) + {if(65 <= match)switch$1 = 1} + else + if(48 <= match)switch$1 = 1; + if(switch$1){var i$4=i$3 + 1 | 0,i$3=i$4;continue} + var stop=i$3} + var match$0=[0,sub$0(s,start,stop - start | 0),stop]; + switch$0 = 1; + break}} + if(! switch$0) + {var i$5=start + 1 | 0,k$2=0; + if(40 === opening) + var _u4_=41; + else + {if(123 !== opening)throw [0,Assert_failure,_ad_];var _u4_=125} + var lim=caml_ml_string_length(s),k=k$2,i=i$5; + for(;;) + {if(lim <= i)throw Not_found; + if(caml_string_get(s,i) === opening) + {var i$0=i + 1 | 0,k$0=k + 1 | 0,k=k$0,i=i$0;continue} + if(caml_string_get(s,i) !== _u4_) + {var i$2=i + 1 | 0,i=i$2;continue} + if(0 !== k){var i$1=i + 1 | 0,k$1=k - 1 | 0,k=k$1,i=i$1;continue} + var match$0=[0,sub$0(s,i$5,(i - start | 0) - 1 | 0),i + 1 | 0]; + break}} + var next_i=match$0[2],ident=match$0[1]; + add_string(b,caml_call1(f,ident)); + var previous=32,i$7=next_i}} + function truncate(b,len) + {if(0 <= len && b[2] >= len){b[2] = len;return 0} + return invalid_arg(cst_Buffer_truncate)} + function to_seq$8(b) + {function aux(i,param) + {if(b[2] <= i)return 0; + var x=caml_bytes_unsafe_get(b[1],i),_u2_=i + 1 | 0; + return [0,x,function(_u3_){return aux(_u2_,_u3_)}]} + var _u0_=0; + return function(_u1_){return aux(_u0_,_u1_)}} + function to_seqi$3(b) + {function aux(i,param) + {if(b[2] <= i)return 0; + var x=caml_bytes_unsafe_get(b[1],i),_uY_=i + 1 | 0; + return [0,[0,i,x],function(_uZ_){return aux(_uY_,_uZ_)}]} + var _uW_=0; + return function(_uX_){return aux(_uW_,_uX_)}} + function add_seq$1(b,seq) + {return iter(function(_uV_){return add_char(b,_uV_)},seq)} + function of_seq$6(i){var b=create$2(32);add_seq$1(b,i);return b} + function add_int8(b,x) + {var new_position=b[2] + 1 | 0; + if(b[3] < new_position)resize(b,1); + caml_bytes_unsafe_set(b[1],b[2],x); + b[2] = new_position; + return 0} + function add_int16_ne(b,x) + {var new_position=b[2] + 2 | 0; + if(b[3] < new_position)resize(b,2); + caml_bytes_set16(b[1],b[2],x); + b[2] = new_position; + return 0} + function add_int32_ne(b,x) + {var new_position=b[2] + 4 | 0; + if(b[3] < new_position)resize(b,4); + caml_bytes_set32(b[1],b[2],x); + b[2] = new_position; + return 0} + function add_int64_ne(b,x) + {var new_position=b[2] + 8 | 0; + if(b[3] < new_position)resize(b,8); + caml_bytes_set64(b[1],b[2],x); + b[2] = new_position; + return 0} + function add_int16_le(b,x){return add_int16_ne(b,x)} + function add_int16_be(b,x) + {var x$0=caml_bswap16(x);return add_int16_ne(b,x$0)} + function add_int32_le(b,x){return add_int32_ne(b,x)} + function add_int32_be(b,x) + {var x$0=caml_int32_bswap(x);return add_int32_ne(b,x$0)} + function add_int64_le(b,x){return add_int64_ne(b,x)} + function add_int64_be(b,x) + {var x$0=caml_int64_bswap(x);return add_int64_ne(b,x$0)} + var + Stdlib_Buffer= + [0, + create$2, + contents, + to_bytes$0, + sub$3, + blit$3, + nth$0, + length$4, + clear$1, + reset, + output_buffer, + truncate, + add_char, + add_utf_8_uchar, + add_utf_16le_uchar, + add_utf_16be_uchar, + add_string, + add_bytes, + add_substring, + add_subbytes, + add_substitute, + add_buffer, + add_channel, + to_seq$8, + to_seqi$3, + add_seq$1, + of_seq$6, + add_int8, + add_int8, + add_int16_ne, + add_int16_be, + add_int16_le, + add_int16_ne, + add_int16_be, + add_int16_le, + add_int32_ne, + add_int32_be, + add_int32_le, + add_int64_ne, + add_int64_be, + add_int64_le]; + caml_register_global(806,Stdlib_Buffer,"Stdlib__Buffer"); + function create_char_set(param){return make$0(32,0)} + function add_in_char_set(char_set,c) + {var str_ind=c >>> 3 | 0,mask=1 << (c & 7); + return caml_bytes_set + (char_set, + str_ind, + char_of_int(caml_bytes_get(char_set,str_ind) | mask))} + function freeze_char_set(char_set){return of_bytes(char_set)} + function rev_char_set(char_set) + {var char_set$0=create_char_set(0),i=0; + for(;;) + {caml_bytes_set + (char_set$0,i,char_of_int(caml_string_get(char_set,i) ^ 255)); + var _uU_=i + 1 | 0; + if(31 === i)return caml_string_of_bytes(char_set$0); + var i=_uU_}} + function is_in_char_set(char_set,c) + {var str_ind=c >>> 3 | 0,mask=1 << (c & 7); + return 0 !== (caml_string_get(char_set,str_ind) & mask)?1:0} + function pad_of_pad_opt(pad_opt) + {if(! pad_opt)return 0;var width=pad_opt[1];return [0,1,width]} + function param_format_of_ignored_format(ign,fmt) + {if(typeof ign === "number") + switch(ign) + {case 0:return [0,[0,fmt]]; + case 1:return [0,[1,fmt]]; + case 2:return [0,[19,fmt]]; + default:return [0,[22,fmt]]} + switch(ign[0]) + {case 0:var pad_opt=ign[1];return [0,[2,pad_of_pad_opt(pad_opt),fmt]]; + case 1: + var pad_opt$0=ign[1];return [0,[3,pad_of_pad_opt(pad_opt$0),fmt]]; + case 2: + var pad_opt$1=ign[2],iconv=ign[1]; + return [0,[4,iconv,pad_of_pad_opt(pad_opt$1),0,fmt]]; + case 3: + var pad_opt$2=ign[2],iconv$0=ign[1]; + return [0,[5,iconv$0,pad_of_pad_opt(pad_opt$2),0,fmt]]; + case 4: + var pad_opt$3=ign[2],iconv$1=ign[1]; + return [0,[6,iconv$1,pad_of_pad_opt(pad_opt$3),0,fmt]]; + case 5: + var pad_opt$4=ign[2],iconv$2=ign[1]; + return [0,[7,iconv$2,pad_of_pad_opt(pad_opt$4),0,fmt]]; + case 6: + var prec_opt=ign[2],pad_opt$5=ign[1]; + if(prec_opt)var ndec=prec_opt[1],_uT_=[0,ndec];else var _uT_=0; + return [0,[8,_ae_,pad_of_pad_opt(pad_opt$5),_uT_,fmt]]; + case 7: + var pad_opt$6=ign[1];return [0,[9,pad_of_pad_opt(pad_opt$6),fmt]]; + case 8: + var fmtty=ign[2],pad_opt$7=ign[1]; + return [0,[13,pad_opt$7,fmtty,fmt]]; + case 9: + var fmtty$0=ign[2],pad_opt$8=ign[1]; + return [0,[14,pad_opt$8,fmtty$0,fmt]]; + case 10: + var char_set=ign[2],width_opt=ign[1]; + return [0,[20,width_opt,char_set,fmt]]; + default:var counter=ign[1];return [0,[21,counter,fmt]]}} + function default_float_precision(fconv){return 5 === fconv[2]?12:-6} + function buffer_create(init_size) + {return [0,0,caml_create_bytes(init_size)]} + function buffer_check_size(buf,overhead) + {var + len=caml_ml_bytes_length(buf[2]), + min_len=buf[1] + overhead | 0, + _uR_=len < min_len?1:0; + if(_uR_) + {var + new_len=max$1(len * 2 | 0,min_len), + new_str=caml_create_bytes(new_len); + blit(buf[2],0,new_str,0,len); + buf[2] = new_str; + var _uS_=0} + else + var _uS_=_uR_; + return _uS_} + function buffer_add_char(buf,c) + {buffer_check_size(buf,1); + caml_bytes_set(buf[2],buf[1],c); + buf[1] = buf[1] + 1 | 0; + return 0} + function buffer_add_string(buf,s) + {var str_len=caml_ml_string_length(s); + buffer_check_size(buf,str_len); + blit$0(s,0,buf[2],buf[1],str_len); + buf[1] = buf[1] + str_len | 0; + return 0} + function buffer_contents(buf){return sub_string(buf[2],0,buf[1])} + function char_of_iconv(iconv) + {switch(iconv) + {case 6: + case 7:return 120; + case 8: + case 9:return 88; + case 10: + case 11:return 111; + case 12: + case 15:return 117; + case 0: + case 1: + case 2: + case 13:return 100; + default:return 105}} + function char_of_fconv(opt,fconv) + {if(opt)var sth=opt[1],cF=sth;else var cF=70; + switch(fconv[2]) + {case 0:return 102; + case 1:return 101; + case 2:return 69; + case 3:return 103; + case 4:return 71; + case 5:return cF; + case 6:return 104; + case 7:return 72; + default:return 70}} + function bprint_padty(buf,padty) + {switch(padty) + {case 0:return buffer_add_char(buf,45); + case 1:return 0; + default:return buffer_add_char(buf,48)}} + function bprint_ignored_flag(buf,ign_flag) + {return ign_flag?buffer_add_char(buf,95):ign_flag} + function bprint_pad_opt(buf,pad_opt) + {if(! pad_opt)return 0; + var width=pad_opt[1]; + return buffer_add_string(buf,caml_string_of_jsbytes("" + width))} + function bprint_padding(buf,pad) + {if(typeof pad === "number")return 0; + if(0 === pad[0]) + {var n=pad[2],padty=pad[1]; + bprint_padty(buf,padty); + return buffer_add_string(buf,caml_string_of_jsbytes("" + n))} + var padty$0=pad[1]; + bprint_padty(buf,padty$0); + return buffer_add_char(buf,42)} + function bprint_precision(buf,prec) + {if(typeof prec === "number")return prec?buffer_add_string(buf,cst$11):0; + var n=prec[1]; + buffer_add_char(buf,46); + return buffer_add_string(buf,caml_string_of_jsbytes("" + n))} + function bprint_iconv_flag(buf,iconv) + {switch(iconv) + {case 1: + case 4:return buffer_add_char(buf,43); + case 2: + case 5:return buffer_add_char(buf,32); + case 7: + case 9: + case 11: + case 13: + case 14: + case 15:return buffer_add_char(buf,35); + default:return 0}} + function bprint_altint_fmt(buf,ign_flag,iconv,pad,prec,c) + {buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag); + bprint_iconv_flag(buf,iconv); + bprint_padding(buf,pad); + bprint_precision(buf,prec); + buffer_add_char(buf,c); + return buffer_add_char(buf,char_of_iconv(iconv))} + function bprint_fconv_flag(buf,fconv) + {switch(fconv[1]) + {case 0:break; + case 1:buffer_add_char(buf,43);break; + default:buffer_add_char(buf,32)} + return 8 <= fconv[2]?buffer_add_char(buf,35):0} + function string_of_formatting_lit(formatting_lit) + {if(typeof formatting_lit === "number") + switch(formatting_lit) + {case 0:return cst$12; + case 1:return cst$13; + case 2:return cst$14; + case 3:return cst$15; + case 4:return cst$16; + case 5:return cst$17; + default:return cst$18} + switch(formatting_lit[0]) + {case 0:var str=formatting_lit[1];return str; + case 1:var str$0=formatting_lit[1];return str$0; + default:var c=formatting_lit[1];return cat(cst$19,make$1(1,c))}} + function bprint_char_literal(buf,chr) + {return 37 === chr?buffer_add_string(buf,cst$20):buffer_add_char(buf,chr)} + function bprint_string_literal(buf,str) + {var _uP_=caml_ml_string_length(str) - 1 | 0,_uO_=0; + if(_uP_ >= 0) + {var i=_uO_; + for(;;) + {bprint_char_literal(buf,caml_string_get(str,i)); + var _uQ_=i + 1 | 0; + if(_uP_ !== i){var i=_uQ_;continue} + break}} + return 0} + function bprint_fmtty(buf,fmtty) + {var fmtty$0=fmtty; + for(;;) + {if(typeof fmtty$0 === "number")return 0; + switch(fmtty$0[0]) + {case 0: + var rest=fmtty$0[1]; + buffer_add_string(buf,cst_c); + var fmtty$0=rest; + continue; + case 1: + var rest$0=fmtty$0[1]; + buffer_add_string(buf,cst_s); + var fmtty$0=rest$0; + continue; + case 2: + var rest$1=fmtty$0[1]; + buffer_add_string(buf,cst_i); + var fmtty$0=rest$1; + continue; + case 3: + var rest$2=fmtty$0[1]; + buffer_add_string(buf,cst_li); + var fmtty$0=rest$2; + continue; + case 4: + var rest$3=fmtty$0[1]; + buffer_add_string(buf,cst_ni); + var fmtty$0=rest$3; + continue; + case 5: + var rest$4=fmtty$0[1]; + buffer_add_string(buf,cst_Li); + var fmtty$0=rest$4; + continue; + case 6: + var rest$5=fmtty$0[1]; + buffer_add_string(buf,cst_f); + var fmtty$0=rest$5; + continue; + case 7: + var rest$6=fmtty$0[1]; + buffer_add_string(buf,cst_B); + var fmtty$0=rest$6; + continue; + case 8: + var rest$7=fmtty$0[2],sub_fmtty=fmtty$0[1]; + buffer_add_string(buf,cst$21); + bprint_fmtty(buf,sub_fmtty); + buffer_add_string(buf,cst$22); + var fmtty$0=rest$7; + continue; + case 9: + var rest$8=fmtty$0[3],sub_fmtty$0=fmtty$0[1]; + buffer_add_string(buf,cst$23); + bprint_fmtty(buf,sub_fmtty$0); + buffer_add_string(buf,cst$24); + var fmtty$0=rest$8; + continue; + case 10: + var rest$9=fmtty$0[1]; + buffer_add_string(buf,cst_a); + var fmtty$0=rest$9; + continue; + case 11: + var rest$10=fmtty$0[1]; + buffer_add_string(buf,cst_t$0); + var fmtty$0=rest$10; + continue; + case 12: + var rest$11=fmtty$0[1]; + buffer_add_string(buf,cst$25); + var fmtty$0=rest$11; + continue; + case 13: + var rest$12=fmtty$0[1]; + buffer_add_string(buf,cst_r$0); + var fmtty$0=rest$12; + continue; + default: + var rest$13=fmtty$0[1]; + buffer_add_string(buf,cst_r$1); + var fmtty$0=rest$13; + continue}}} + function int_of_custom_arity(param) + {if(! param)return 0; + var x=param[1]; + return 1 + int_of_custom_arity(x) | 0} + function string_of_fmt(fmt) + {var buf=buffer_create(16); + function fmtiter(fmt,ign_flag) + {var fmt$0=fmt,ign_flag$0=ign_flag; + a: + for(;;) + {if(typeof fmt$0 === "number")return 0; + switch(fmt$0[0]) + {case 0: + var rest=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + buffer_add_char(buf,99); + var fmt$0=rest,ign_flag$0=0; + continue; + case 1: + var rest$0=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + buffer_add_char(buf,67); + var fmt$0=rest$0,ign_flag$0=0; + continue; + case 2: + var rest$1=fmt$0[2],pad=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + bprint_padding(buf,pad); + buffer_add_char(buf,115); + var fmt$0=rest$1,ign_flag$0=0; + continue; + case 3: + var rest$2=fmt$0[2],pad$0=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + bprint_padding(buf,pad$0); + buffer_add_char(buf,83); + var fmt$0=rest$2,ign_flag$0=0; + continue; + case 4: + var rest$3=fmt$0[4],prec=fmt$0[3],pad$1=fmt$0[2],iconv=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + bprint_iconv_flag(buf,iconv); + bprint_padding(buf,pad$1); + bprint_precision(buf,prec); + buffer_add_char(buf,char_of_iconv(iconv)); + var fmt$0=rest$3,ign_flag$0=0; + continue; + case 5: + var + rest$4=fmt$0[4], + prec$0=fmt$0[3], + pad$2=fmt$0[2], + iconv$0=fmt$0[1]; + bprint_altint_fmt(buf,ign_flag$0,iconv$0,pad$2,prec$0,108); + var fmt$0=rest$4,ign_flag$0=0; + continue; + case 6: + var + rest$5=fmt$0[4], + prec$1=fmt$0[3], + pad$3=fmt$0[2], + iconv$1=fmt$0[1]; + bprint_altint_fmt(buf,ign_flag$0,iconv$1,pad$3,prec$1,110); + var fmt$0=rest$5,ign_flag$0=0; + continue; + case 7: + var + rest$6=fmt$0[4], + prec$2=fmt$0[3], + pad$4=fmt$0[2], + iconv$2=fmt$0[1]; + bprint_altint_fmt(buf,ign_flag$0,iconv$2,pad$4,prec$2,76); + var fmt$0=rest$6,ign_flag$0=0; + continue; + case 8: + var + rest$7=fmt$0[4], + prec$3=fmt$0[3], + pad$5=fmt$0[2], + fconv=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + bprint_fconv_flag(buf,fconv); + bprint_padding(buf,pad$5); + bprint_precision(buf,prec$3); + buffer_add_char(buf,char_of_fconv(0,fconv)); + var fmt$0=rest$7,ign_flag$0=0; + continue; + case 9: + var rest$8=fmt$0[2],pad$6=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + bprint_padding(buf,pad$6); + buffer_add_char(buf,66); + var fmt$0=rest$8,ign_flag$0=0; + continue; + case 10: + var rest$9=fmt$0[1]; + buffer_add_string(buf,cst$26); + var fmt$0=rest$9; + continue; + case 11: + var rest$10=fmt$0[2],str=fmt$0[1]; + bprint_string_literal(buf,str); + var fmt$0=rest$10; + continue; + case 12: + var rest$11=fmt$0[2],chr$0=fmt$0[1]; + bprint_char_literal(buf,chr$0); + var fmt$0=rest$11; + continue; + case 13: + var rest$12=fmt$0[3],fmtty=fmt$0[2],pad_opt=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + bprint_pad_opt(buf,pad_opt); + buffer_add_char(buf,123); + bprint_fmtty(buf,fmtty); + buffer_add_char(buf,37); + buffer_add_char(buf,125); + var fmt$0=rest$12,ign_flag$0=0; + continue; + case 14: + var rest$13=fmt$0[3],fmtty$0=fmt$0[2],pad_opt$0=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + bprint_pad_opt(buf,pad_opt$0); + buffer_add_char(buf,40); + bprint_fmtty(buf,fmtty$0); + buffer_add_char(buf,37); + buffer_add_char(buf,41); + var fmt$0=rest$13,ign_flag$0=0; + continue; + case 15: + var rest$14=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + buffer_add_char(buf,97); + var fmt$0=rest$14,ign_flag$0=0; + continue; + case 16: + var rest$15=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + buffer_add_char(buf,116); + var fmt$0=rest$15,ign_flag$0=0; + continue; + case 17: + var rest$16=fmt$0[2],fmting_lit=fmt$0[1]; + bprint_string_literal(buf,string_of_formatting_lit(fmting_lit)); + var fmt$0=rest$16; + continue; + case 18: + var rest$17=fmt$0[2],fmting_gen=fmt$0[1]; + if(0 === fmting_gen[0]) + {var match$1=fmting_gen[1],str$0=match$1[2]; + buffer_add_string(buf,cst$27); + buffer_add_string(buf,str$0)} + else + {var match$2=fmting_gen[1],str$1=match$2[2]; + buffer_add_string(buf,cst$28); + buffer_add_string(buf,str$1)} + var fmt$0=rest$17; + continue; + case 19: + var rest$18=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + buffer_add_char(buf,114); + var fmt$0=rest$18,ign_flag$0=0; + continue; + case 20: + var rest$19=fmt$0[3],char_set=fmt$0[2],width_opt=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + bprint_pad_opt(buf,width_opt); + var + print_char= + function(buf,i) + {var c=char_of_int(i); + return 37 === c + ?(buffer_add_char(buf,37),buffer_add_char(buf,37)) + :64 === c + ?(buffer_add_char(buf,37),buffer_add_char(buf,64)) + :buffer_add_char(buf,c)}; + buffer_add_char(buf,91); + var + _uE_= + is_in_char_set(char_set,0) + ?(buffer_add_char(buf,94),rev_char_set(char_set)) + :char_set, + is_alone$0= + function(_uJ_) + {function is_alone(c) + {var + after=chr(c + 1 | 0), + before=chr(c - 1 | 0), + _uK_=is_in_char_set(_uJ_,c); + if(_uK_) + var + _uL_=is_in_char_set(_uJ_,before), + _uM_=_uL_?is_in_char_set(_uJ_,after):_uL_, + _uN_=1 - _uM_; + else + var _uN_=_uK_; + return _uN_} + return is_alone}, + is_alone=is_alone$0(_uE_); + if(is_alone(93))buffer_add_char(buf,93); + var i=1; + b: + for(;;) + {if(i < 256) + {if(! is_in_char_set(_uE_,char_of_int(i))) + {var i$0=i + 1 | 0,i=i$0;continue} + var match=char_of_int(i),switcher=match - 45 | 0,switch$0=0; + if(48 < switcher >>> 0) + if(210 <= switcher)print_char(buf,255);else switch$0 = 1; + else + {if(46 < switcher - 1 >>> 0) + {var i$2=i + 1 | 0,i=i$2;continue} + switch$0 = 1} + if(switch$0) + {var i$1=i + 1 | 0; + if(! is_in_char_set(_uE_,char_of_int(i$1))) + {print_char(buf,i$1 - 1 | 0); + var i$6=i$1 + 1 | 0,i=i$6; + continue} + var + match$0=char_of_int(i$1), + switcher$0=match$0 - 45 | 0, + switch$1=0; + if(48 < switcher$0 >>> 0) + if(210 <= switcher$0) + {print_char(buf,254);print_char(buf,255)} + else + switch$1 = 1; + else + if(46 < switcher$0 - 1 >>> 0) + {if(! is_in_char_set(_uE_,char_of_int(i$1 + 1 | 0))) + {print_char(buf,i$1 - 1 | 0); + var i$5=i$1 + 1 | 0,i=i$5; + continue} + switch$1 = 1} + else + switch$1 = 1; + if(switch$1) + {if(! is_in_char_set(_uE_,char_of_int(i$1 + 1 | 0))) + {print_char(buf,i$1 - 1 | 0); + print_char(buf,i$1); + var i$4=i$1 + 2 | 0,i=i$4; + continue} + var j=i$1 + 2 | 0,i$3=i$1 - 1 | 0,j$0=j; + for(;;) + {if(256 !== j$0 && is_in_char_set(_uE_,char_of_int(j$0))) + {var j$1=j$0 + 1 | 0,j$0=j$1;continue} + print_char(buf,i$3); + print_char(buf,45); + print_char(buf,j$0 - 1 | 0); + if(j$0 < 256){var i$7=j$0 + 1 | 0,i=i$7;continue b} + break}}}} + if(is_alone(45))buffer_add_char(buf,45); + buffer_add_char(buf,93); + var fmt$0=rest$19,ign_flag$0=0; + continue a} + case 21: + var rest$20=fmt$0[2],counter=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + switch(counter) + {case 0:var _uF_=108;break; + case 1:var _uF_=110;break; + default:var _uF_=78} + buffer_add_char(buf,_uF_); + var fmt$0=rest$20,ign_flag$0=0; + continue; + case 22: + var rest$21=fmt$0[1]; + buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + bprint_string_literal(buf,cst_0c); + var fmt$0=rest$21,ign_flag$0=0; + continue; + case 23: + var + rest$22=fmt$0[2], + ign=fmt$0[1], + match$3=param_format_of_ignored_format(ign,rest$22), + fmt$1=match$3[1], + fmt$0=fmt$1, + ign_flag$0=1; + continue; + default: + var + rest$23=fmt$0[3], + arity=fmt$0[1], + _uH_=int_of_custom_arity(arity), + _uG_=1; + if(_uH_ >= 1) + {var i$8=_uG_; + for(;;) + {buffer_add_char(buf,37); + bprint_ignored_flag(buf,ign_flag$0); + buffer_add_char(buf,63); + var _uI_=i$8 + 1 | 0; + if(_uH_ !== i$8){var i$8=_uI_;continue} + break}} + var fmt$0=rest$23,ign_flag$0=0; + continue}}} + fmtiter(fmt,0); + return buffer_contents(buf)} + function symm(param) + {if(typeof param === "number")return 0; + switch(param[0]) + {case 0:var rest=param[1];return [0,symm(rest)]; + case 1:var rest$0=param[1];return [1,symm(rest$0)]; + case 2:var rest$1=param[1];return [2,symm(rest$1)]; + case 3:var rest$2=param[1];return [3,symm(rest$2)]; + case 4:var rest$3=param[1];return [4,symm(rest$3)]; + case 5:var rest$4=param[1];return [5,symm(rest$4)]; + case 6:var rest$5=param[1];return [6,symm(rest$5)]; + case 7:var rest$6=param[1];return [7,symm(rest$6)]; + case 8:var rest$7=param[2],ty=param[1];return [8,ty,symm(rest$7)]; + case 9: + var rest$8=param[3],ty2=param[2],ty1=param[1]; + return [9,ty2,ty1,symm(rest$8)]; + case 10:var rest$9=param[1];return [10,symm(rest$9)]; + case 11:var rest$10=param[1];return [11,symm(rest$10)]; + case 12:var rest$11=param[1];return [12,symm(rest$11)]; + case 13:var rest$12=param[1];return [13,symm(rest$12)]; + default:var rest$13=param[1];return [14,symm(rest$13)]}} + function fmtty_rel_det(param) + {if(typeof param !== "number") + switch(param[0]) + {case 0: + var + rest=param[1], + match=fmtty_rel_det(rest), + de=match[4], + ed=match[3], + af=match[2], + fa=match[1], + _uj_=function(param){caml_call1(af,0);return 0}; + return [0,function(param){caml_call1(fa,0);return 0},_uj_,ed,de]; + case 1: + var + rest$0=param[1], + match$0=fmtty_rel_det(rest$0), + de$0=match$0[4], + ed$0=match$0[3], + af$0=match$0[2], + fa$0=match$0[1], + _uk_=function(param){caml_call1(af$0,0);return 0}; + return [0, + function(param){caml_call1(fa$0,0);return 0}, + _uk_, + ed$0, + de$0]; + case 2: + var + rest$1=param[1], + match$1=fmtty_rel_det(rest$1), + de$1=match$1[4], + ed$1=match$1[3], + af$1=match$1[2], + fa$1=match$1[1], + _ul_=function(param){caml_call1(af$1,0);return 0}; + return [0, + function(param){caml_call1(fa$1,0);return 0}, + _ul_, + ed$1, + de$1]; + case 3: + var + rest$2=param[1], + match$2=fmtty_rel_det(rest$2), + de$2=match$2[4], + ed$2=match$2[3], + af$2=match$2[2], + fa$2=match$2[1], + _um_=function(param){caml_call1(af$2,0);return 0}; + return [0, + function(param){caml_call1(fa$2,0);return 0}, + _um_, + ed$2, + de$2]; + case 4: + var + rest$3=param[1], + match$3=fmtty_rel_det(rest$3), + de$3=match$3[4], + ed$3=match$3[3], + af$3=match$3[2], + fa$3=match$3[1], + _un_=function(param){caml_call1(af$3,0);return 0}; + return [0, + function(param){caml_call1(fa$3,0);return 0}, + _un_, + ed$3, + de$3]; + case 5: + var + rest$4=param[1], + match$4=fmtty_rel_det(rest$4), + de$4=match$4[4], + ed$4=match$4[3], + af$4=match$4[2], + fa$4=match$4[1], + _uo_=function(param){caml_call1(af$4,0);return 0}; + return [0, + function(param){caml_call1(fa$4,0);return 0}, + _uo_, + ed$4, + de$4]; + case 6: + var + rest$5=param[1], + match$5=fmtty_rel_det(rest$5), + de$5=match$5[4], + ed$5=match$5[3], + af$5=match$5[2], + fa$5=match$5[1], + _up_=function(param){caml_call1(af$5,0);return 0}; + return [0, + function(param){caml_call1(fa$5,0);return 0}, + _up_, + ed$5, + de$5]; + case 7: + var + rest$6=param[1], + match$6=fmtty_rel_det(rest$6), + de$6=match$6[4], + ed$6=match$6[3], + af$6=match$6[2], + fa$6=match$6[1], + _uq_=function(param){caml_call1(af$6,0);return 0}; + return [0, + function(param){caml_call1(fa$6,0);return 0}, + _uq_, + ed$6, + de$6]; + case 8: + var + rest$7=param[2], + match$7=fmtty_rel_det(rest$7), + de$7=match$7[4], + ed$7=match$7[3], + af$7=match$7[2], + fa$7=match$7[1], + _ur_=function(param){caml_call1(af$7,0);return 0}; + return [0, + function(param){caml_call1(fa$7,0);return 0}, + _ur_, + ed$7, + de$7]; + case 9: + var + rest$8=param[3], + ty2=param[2], + ty1=param[1], + match$8=fmtty_rel_det(rest$8), + de$8=match$8[4], + ed$8=match$8[3], + af$8=match$8[2], + fa$8=match$8[1], + ty=trans(symm(ty1),ty2), + match$9=fmtty_rel_det(ty), + jd=match$9[4], + dj=match$9[3], + ga=match$9[2], + ag=match$9[1], + _us_=function(param){caml_call1(jd,0);caml_call1(de$8,0);return 0}, + _ut_=function(param){caml_call1(ed$8,0);caml_call1(dj,0);return 0}, + _uu_=function(param){caml_call1(ga,0);caml_call1(af$8,0);return 0}; + return [0, + function(param) + {caml_call1(fa$8,0);caml_call1(ag,0);return 0}, + _uu_, + _ut_, + _us_]; + case 10: + var + rest$9=param[1], + match$10=fmtty_rel_det(rest$9), + de$9=match$10[4], + ed$9=match$10[3], + af$9=match$10[2], + fa$9=match$10[1], + _uv_=function(param){caml_call1(af$9,0);return 0}; + return [0, + function(param){caml_call1(fa$9,0);return 0}, + _uv_, + ed$9, + de$9]; + case 11: + var + rest$10=param[1], + match$11=fmtty_rel_det(rest$10), + de$10=match$11[4], + ed$10=match$11[3], + af$10=match$11[2], + fa$10=match$11[1], + _uw_=function(param){caml_call1(af$10,0);return 0}; + return [0, + function(param){caml_call1(fa$10,0);return 0}, + _uw_, + ed$10, + de$10]; + case 12: + var + rest$11=param[1], + match$12=fmtty_rel_det(rest$11), + de$11=match$12[4], + ed$11=match$12[3], + af$11=match$12[2], + fa$11=match$12[1], + _ux_=function(param){caml_call1(af$11,0);return 0}; + return [0, + function(param){caml_call1(fa$11,0);return 0}, + _ux_, + ed$11, + de$11]; + case 13: + var + rest$12=param[1], + match$13=fmtty_rel_det(rest$12), + de$12=match$13[4], + ed$12=match$13[3], + af$12=match$13[2], + fa$12=match$13[1], + _uy_=function(param){caml_call1(de$12,0);return 0}, + _uz_=function(param){caml_call1(ed$12,0);return 0}, + _uA_=function(param){caml_call1(af$12,0);return 0}; + return [0, + function(param){caml_call1(fa$12,0);return 0}, + _uA_, + _uz_, + _uy_]; + default: + var + rest$13=param[1], + match$14=fmtty_rel_det(rest$13), + de$13=match$14[4], + ed$13=match$14[3], + af$13=match$14[2], + fa$13=match$14[1], + _uB_=function(param){caml_call1(de$13,0);return 0}, + _uC_=function(param){caml_call1(ed$13,0);return 0}, + _uD_=function(param){caml_call1(af$13,0);return 0}; + return [0, + function(param){caml_call1(fa$13,0);return 0}, + _uD_, + _uC_, + _uB_]} + function _ug_(param){return 0} + function _uh_(param){return 0} + function _ui_(param){return 0} + return [0,function(param){return 0},_ui_,_uh_,_ug_]} + function trans(ty1,ty2) + {var switch$0=0; + if(typeof ty1 === "number") + {if(typeof ty2 === "number")return 0; + switch(ty2[0]) + {case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:switch$0 = 3;break; + case 14:switch$0 = 4;break; + case 8:switch$0 = 5;break; + case 9:switch$0 = 6;break; + default:throw [0,Assert_failure,_af_]}} + else + switch(ty1[0]) + {case 0: + var switch$1=0,_tZ_=ty1[1]; + if(typeof ty2 !== "number") + switch(ty2[0]) + {case 0:var rest2=ty2[1];return [0,trans(_tZ_,rest2)]; + case 8:switch$0 = 5;switch$1 = 1;break; + case 9:switch$0 = 6;switch$1 = 1;break; + case 10:switch$1 = 1;break; + case 11:switch$0 = 1;switch$1 = 1;break; + case 12:switch$0 = 2;switch$1 = 1;break; + case 13:switch$0 = 3;switch$1 = 1;break; + case 14:switch$0 = 4;switch$1 = 1;break + } + if(! switch$1)switch$0 = 7; + break; + case 1: + var switch$2=0,_t0_=ty1[1]; + if(typeof ty2 !== "number") + switch(ty2[0]) + {case 1:var rest2$0=ty2[1];return [1,trans(_t0_,rest2$0)]; + case 8:switch$0 = 5;switch$2 = 1;break; + case 9:switch$0 = 6;switch$2 = 1;break; + case 10:switch$2 = 1;break; + case 11:switch$0 = 1;switch$2 = 1;break; + case 12:switch$0 = 2;switch$2 = 1;break; + case 13:switch$0 = 3;switch$2 = 1;break; + case 14:switch$0 = 4;switch$2 = 1;break + } + if(! switch$2)switch$0 = 7; + break; + case 2: + var switch$3=0,_t1_=ty1[1]; + if(typeof ty2 === "number") + switch$3 = 1; + else + switch(ty2[0]) + {case 2:var rest2$1=ty2[1];return [2,trans(_t1_,rest2$1)]; + case 8:switch$0 = 5;break; + case 9:switch$0 = 6;break; + case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:switch$0 = 3;break; + case 14:switch$0 = 4;break; + default:switch$3 = 1} + if(switch$3)switch$0 = 7; + break; + case 3: + var switch$4=0,_t2_=ty1[1]; + if(typeof ty2 === "number") + switch$4 = 1; + else + switch(ty2[0]) + {case 3:var rest2$2=ty2[1];return [3,trans(_t2_,rest2$2)]; + case 8:switch$0 = 5;break; + case 9:switch$0 = 6;break; + case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:switch$0 = 3;break; + case 14:switch$0 = 4;break; + default:switch$4 = 1} + if(switch$4)switch$0 = 7; + break; + case 4: + var switch$5=0,_t3_=ty1[1]; + if(typeof ty2 === "number") + switch$5 = 1; + else + switch(ty2[0]) + {case 4:var rest2$3=ty2[1];return [4,trans(_t3_,rest2$3)]; + case 8:switch$0 = 5;break; + case 9:switch$0 = 6;break; + case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:switch$0 = 3;break; + case 14:switch$0 = 4;break; + default:switch$5 = 1} + if(switch$5)switch$0 = 7; + break; + case 5: + var switch$6=0,_t4_=ty1[1]; + if(typeof ty2 === "number") + switch$6 = 1; + else + switch(ty2[0]) + {case 5:var rest2$4=ty2[1];return [5,trans(_t4_,rest2$4)]; + case 8:switch$0 = 5;break; + case 9:switch$0 = 6;break; + case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:switch$0 = 3;break; + case 14:switch$0 = 4;break; + default:switch$6 = 1} + if(switch$6)switch$0 = 7; + break; + case 6: + var switch$7=0,_t5_=ty1[1]; + if(typeof ty2 === "number") + switch$7 = 1; + else + switch(ty2[0]) + {case 6:var rest2$5=ty2[1];return [6,trans(_t5_,rest2$5)]; + case 8:switch$0 = 5;break; + case 9:switch$0 = 6;break; + case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:switch$0 = 3;break; + case 14:switch$0 = 4;break; + default:switch$7 = 1} + if(switch$7)switch$0 = 7; + break; + case 7: + var switch$8=0,_t6_=ty1[1]; + if(typeof ty2 === "number") + switch$8 = 1; + else + switch(ty2[0]) + {case 7:var rest2$6=ty2[1];return [7,trans(_t6_,rest2$6)]; + case 8:switch$0 = 5;break; + case 9:switch$0 = 6;break; + case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:switch$0 = 3;break; + case 14:switch$0 = 4;break; + default:switch$8 = 1} + if(switch$8)switch$0 = 7; + break; + case 8: + var switch$9=0,_t7_=ty1[2],_t8_=ty1[1]; + if(typeof ty2 === "number") + switch$9 = 1; + else + switch(ty2[0]) + {case 8: + var rest2$7=ty2[2],ty2$0=ty2[1],_t9_=trans(_t7_,rest2$7); + return [8,trans(_t8_,ty2$0),_t9_]; + case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:switch$0 = 3;break; + case 14:switch$0 = 4;break; + default:switch$9 = 1} + if(switch$9)throw [0,Assert_failure,_ao_]; + break; + case 9: + var switch$10=0,_t__=ty1[3],_t$_=ty1[2],_ua_=ty1[1]; + if(typeof ty2 === "number") + switch$10 = 1; + else + switch(ty2[0]) + {case 8:switch$0 = 5;break; + case 9: + var + rest2$8=ty2[3], + ty22=ty2[2], + ty21=ty2[1], + ty=trans(symm(_t$_),ty21), + match=fmtty_rel_det(ty), + f4=match[4], + f2=match[2]; + caml_call1(f2,0); + caml_call1(f4,0); + return [9,_ua_,ty22,trans(_t__,rest2$8)]; + case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:switch$0 = 3;break; + case 14:switch$0 = 4;break; + default:switch$10 = 1} + if(switch$10)throw [0,Assert_failure,_ap_]; + break; + case 10: + var _ub_=ty1[1]; + if(typeof ty2 !== "number" && 10 === ty2[0]) + {var rest2$9=ty2[1];return [10,trans(_ub_,rest2$9)]} + throw [0,Assert_failure,_aq_]; + case 11: + var switch$11=0,_uc_=ty1[1]; + if(typeof ty2 === "number") + switch$11 = 1; + else + switch(ty2[0]) + {case 10:break; + case 11:var rest2$10=ty2[1];return [11,trans(_uc_,rest2$10)]; + default:switch$11 = 1} + if(switch$11)throw [0,Assert_failure,_ar_]; + break; + case 12: + var switch$12=0,_ud_=ty1[1]; + if(typeof ty2 === "number") + switch$12 = 1; + else + switch(ty2[0]) + {case 10:break; + case 11:switch$0 = 1;break; + case 12:var rest2$11=ty2[1];return [12,trans(_ud_,rest2$11)]; + default:switch$12 = 1} + if(switch$12)throw [0,Assert_failure,_as_]; + break; + case 13: + var switch$13=0,_ue_=ty1[1]; + if(typeof ty2 === "number") + switch$13 = 1; + else + switch(ty2[0]) + {case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:var rest2$12=ty2[1];return [13,trans(_ue_,rest2$12)]; + default:switch$13 = 1} + if(switch$13)throw [0,Assert_failure,_at_]; + break; + default: + var switch$14=0,_uf_=ty1[1]; + if(typeof ty2 === "number") + switch$14 = 1; + else + switch(ty2[0]) + {case 10:break; + case 11:switch$0 = 1;break; + case 12:switch$0 = 2;break; + case 13:switch$0 = 3;break; + case 14:var rest2$13=ty2[1];return [14,trans(_uf_,rest2$13)]; + default:switch$14 = 1} + if(switch$14)throw [0,Assert_failure,_au_]} + switch(switch$0) + {case 0:throw [0,Assert_failure,_ai_]; + case 1:throw [0,Assert_failure,_aj_]; + case 2:throw [0,Assert_failure,_ak_]; + case 3:throw [0,Assert_failure,_al_]; + case 4:throw [0,Assert_failure,_am_]; + case 5:throw [0,Assert_failure,_ag_]; + case 6:throw [0,Assert_failure,_ah_]; + default:throw [0,Assert_failure,_an_]}} + function fmtty_of_padding_fmtty(pad,fmtty) + {return typeof pad === "number"?fmtty:0 === pad[0]?fmtty:[2,fmtty]} + function fmtty_of_custom(arity,fmtty) + {if(! arity)return fmtty; + var arity$0=arity[1]; + return [12,fmtty_of_custom(arity$0,fmtty)]} + function fmtty_of_fmt(fmtty) + {var fmtty$0=fmtty; + for(;;) + {if(typeof fmtty$0 === "number")return 0; + switch(fmtty$0[0]) + {case 0:var rest=fmtty$0[1];return [0,fmtty_of_fmt(rest)]; + case 1:var rest$0=fmtty$0[1];return [0,fmtty_of_fmt(rest$0)]; + case 2: + var rest$1=fmtty$0[2],pad=fmtty$0[1]; + return fmtty_of_padding_fmtty(pad,[1,fmtty_of_fmt(rest$1)]); + case 3: + var rest$2=fmtty$0[2],pad$0=fmtty$0[1]; + return fmtty_of_padding_fmtty(pad$0,[1,fmtty_of_fmt(rest$2)]); + case 4: + var + rest$3=fmtty$0[4], + prec=fmtty$0[3], + pad$1=fmtty$0[2], + ty_rest=fmtty_of_fmt(rest$3), + prec_ty=fmtty_of_precision_fmtty(prec,[2,ty_rest]); + return fmtty_of_padding_fmtty(pad$1,prec_ty); + case 5: + var + rest$4=fmtty$0[4], + prec$0=fmtty$0[3], + pad$2=fmtty$0[2], + ty_rest$0=fmtty_of_fmt(rest$4), + prec_ty$0=fmtty_of_precision_fmtty(prec$0,[3,ty_rest$0]); + return fmtty_of_padding_fmtty(pad$2,prec_ty$0); + case 6: + var + rest$5=fmtty$0[4], + prec$1=fmtty$0[3], + pad$3=fmtty$0[2], + ty_rest$1=fmtty_of_fmt(rest$5), + prec_ty$1=fmtty_of_precision_fmtty(prec$1,[4,ty_rest$1]); + return fmtty_of_padding_fmtty(pad$3,prec_ty$1); + case 7: + var + rest$6=fmtty$0[4], + prec$2=fmtty$0[3], + pad$4=fmtty$0[2], + ty_rest$2=fmtty_of_fmt(rest$6), + prec_ty$2=fmtty_of_precision_fmtty(prec$2,[5,ty_rest$2]); + return fmtty_of_padding_fmtty(pad$4,prec_ty$2); + case 8: + var + rest$7=fmtty$0[4], + prec$3=fmtty$0[3], + pad$5=fmtty$0[2], + ty_rest$3=fmtty_of_fmt(rest$7), + prec_ty$3=fmtty_of_precision_fmtty(prec$3,[6,ty_rest$3]); + return fmtty_of_padding_fmtty(pad$5,prec_ty$3); + case 9: + var rest$8=fmtty$0[2],pad$6=fmtty$0[1]; + return fmtty_of_padding_fmtty(pad$6,[7,fmtty_of_fmt(rest$8)]); + case 10:var fmtty$1=fmtty$0[1],fmtty$0=fmtty$1;continue; + case 11:var fmtty$2=fmtty$0[2],fmtty$0=fmtty$2;continue; + case 12:var fmtty$3=fmtty$0[2],fmtty$0=fmtty$3;continue; + case 13: + var rest$9=fmtty$0[3],ty=fmtty$0[2]; + return [8,ty,fmtty_of_fmt(rest$9)]; + case 14: + var rest$10=fmtty$0[3],ty$0=fmtty$0[2]; + return [9,ty$0,ty$0,fmtty_of_fmt(rest$10)]; + case 15:var rest$11=fmtty$0[1];return [10,fmtty_of_fmt(rest$11)]; + case 16:var rest$12=fmtty$0[1];return [11,fmtty_of_fmt(rest$12)]; + case 17:var fmtty$4=fmtty$0[2],fmtty$0=fmtty$4;continue; + case 18: + var + rest$13=fmtty$0[2], + fmting_gen=fmtty$0[1], + _tX_=fmtty_of_fmt(rest$13); + if(0 === fmting_gen[0]) + var match=fmting_gen[1],fmt=match[1],_tY_=fmtty_of_fmt(fmt); + else + var + match$0=fmting_gen[1], + fmt$0=match$0[1], + _tY_=fmtty_of_fmt(fmt$0); + return concat_fmtty(_tY_,_tX_); + case 19:var rest$14=fmtty$0[1];return [13,fmtty_of_fmt(rest$14)]; + case 20:var rest$15=fmtty$0[3];return [1,fmtty_of_fmt(rest$15)]; + case 21:var rest$16=fmtty$0[2];return [2,fmtty_of_fmt(rest$16)]; + case 22:var rest$17=fmtty$0[1];return [0,fmtty_of_fmt(rest$17)]; + case 23: + var rest$18=fmtty$0[2],ign=fmtty$0[1]; + if(typeof ign === "number") + switch(ign) + {case 0:var fmtty$0=rest$18;continue; + case 1:var fmtty$0=rest$18;continue; + case 2:return [14,fmtty_of_fmt(rest$18)]; + default:var fmtty$0=rest$18;continue} + switch(ign[0]) + {case 0:var fmtty$0=rest$18;continue; + case 1:var fmtty$0=rest$18;continue; + case 2:var fmtty$0=rest$18;continue; + case 3:var fmtty$0=rest$18;continue; + case 4:var fmtty$0=rest$18;continue; + case 5:var fmtty$0=rest$18;continue; + case 6:var fmtty$0=rest$18;continue; + case 7:var fmtty$0=rest$18;continue; + case 8:var fmtty$0=rest$18;continue; + case 9: + var fmtty$5=ign[2]; + return concat_fmtty(fmtty$5,fmtty_of_fmt(rest$18)); + case 10:var fmtty$0=rest$18;continue; + default:var fmtty$0=rest$18;continue} + default: + var rest$19=fmtty$0[3],arity=fmtty$0[1]; + return fmtty_of_custom(arity,fmtty_of_fmt(rest$19))}}} + function fmtty_of_precision_fmtty(prec,fmtty) + {return typeof prec === "number"?prec?[2,fmtty]:fmtty:fmtty} + var + Type_mismatch= + [248,cst_CamlinternalFormat_Type_mi,caml_fresh_oo_id(0)]; + function type_padding(pad,fmtty) + {if(typeof pad === "number")return [0,0,fmtty]; + if(0 === pad[0]){var w=pad[2],padty=pad[1];return [0,[0,padty,w],fmtty]} + if(typeof fmtty !== "number" && 2 === fmtty[0]) + {var rest=fmtty[1],padty$0=pad[1];return [0,[1,padty$0],rest]} + throw Type_mismatch} + function type_padprec(pad,prec,fmtty) + {var match=type_padding(pad,fmtty); + if(typeof prec !== "number") + {var rest$1=match[2],pad$2=match[1],p=prec[1]; + return [0,pad$2,[0,p],rest$1]} + if(! prec){var rest$0=match[2],pad$1=match[1];return [0,pad$1,0,rest$0]} + var _tW_=match[2]; + if(typeof _tW_ !== "number" && 2 === _tW_[0]) + {var rest=_tW_[1],pad$0=match[1];return [0,pad$0,1,rest]} + throw Type_mismatch} + function type_format(fmt,fmtty) + {var _tV_=type_format_gen(fmt,fmtty); + if(typeof _tV_[2] !== "number")throw Type_mismatch; + var fmt$0=_tV_[1]; + return fmt$0} + function type_ignored_param_one(ign,fmt,fmtty) + {var match=type_format_gen(fmt,fmtty),fmtty$0=match[2],fmt$0=match[1]; + return [0,[23,ign,fmt$0],fmtty$0]} + function type_format_gen(fmt,fmtty) + {if(typeof fmt === "number")return [0,0,fmtty]; + switch(fmt[0]) + {case 0: + if(typeof fmtty !== "number" && 0 === fmtty[0]) + {var + fmtty_rest=fmtty[1], + fmt_rest=fmt[1], + match=type_format_gen(fmt_rest,fmtty_rest), + fmtty$0=match[2], + fmt$0=match[1]; + return [0,[0,fmt$0],fmtty$0]} + break; + case 1: + if(typeof fmtty !== "number" && 0 === fmtty[0]) + {var + fmtty_rest$0=fmtty[1], + fmt_rest$0=fmt[1], + match$0=type_format_gen(fmt_rest$0,fmtty_rest$0), + fmtty$1=match$0[2], + fmt$1=match$0[1]; + return [0,[1,fmt$1],fmtty$1]} + break; + case 2: + var + fmt_rest$1=fmt[2], + pad=fmt[1], + match$1=type_padding(pad,fmtty), + _tE_=match$1[2], + _tD_=match$1[1]; + if(typeof _tE_ !== "number" && 1 === _tE_[0]) + {var + fmtty_rest$1=_tE_[1], + match$2=type_format_gen(fmt_rest$1,fmtty_rest$1), + fmtty$2=match$2[2], + fmt$2=match$2[1]; + return [0,[2,_tD_,fmt$2],fmtty$2]} + throw Type_mismatch; + case 3: + var + fmt_rest$2=fmt[2], + pad$0=fmt[1], + match$3=type_padding(pad$0,fmtty), + _tG_=match$3[2], + _tF_=match$3[1]; + if(typeof _tG_ !== "number" && 1 === _tG_[0]) + {var + fmtty_rest$2=_tG_[1], + match$4=type_format_gen(fmt_rest$2,fmtty_rest$2), + fmtty$3=match$4[2], + fmt$3=match$4[1]; + return [0,[3,_tF_,fmt$3],fmtty$3]} + throw Type_mismatch; + case 4: + var + fmt_rest$3=fmt[4], + prec=fmt[3], + pad$1=fmt[2], + iconv=fmt[1], + match$5=type_padprec(pad$1,prec,fmtty), + _tI_=match$5[3], + _tH_=match$5[1]; + if(typeof _tI_ !== "number" && 2 === _tI_[0]) + {var + fmtty_rest$3=_tI_[1], + prec$0=match$5[2], + match$6=type_format_gen(fmt_rest$3,fmtty_rest$3), + fmtty$4=match$6[2], + fmt$4=match$6[1]; + return [0,[4,iconv,_tH_,prec$0,fmt$4],fmtty$4]} + throw Type_mismatch; + case 5: + var + fmt_rest$4=fmt[4], + prec$1=fmt[3], + pad$2=fmt[2], + iconv$0=fmt[1], + match$7=type_padprec(pad$2,prec$1,fmtty), + _tK_=match$7[3], + _tJ_=match$7[1]; + if(typeof _tK_ !== "number" && 3 === _tK_[0]) + {var + fmtty_rest$4=_tK_[1], + prec$2=match$7[2], + match$8=type_format_gen(fmt_rest$4,fmtty_rest$4), + fmtty$5=match$8[2], + fmt$5=match$8[1]; + return [0,[5,iconv$0,_tJ_,prec$2,fmt$5],fmtty$5]} + throw Type_mismatch; + case 6: + var + fmt_rest$5=fmt[4], + prec$3=fmt[3], + pad$3=fmt[2], + iconv$1=fmt[1], + match$9=type_padprec(pad$3,prec$3,fmtty), + _tM_=match$9[3], + _tL_=match$9[1]; + if(typeof _tM_ !== "number" && 4 === _tM_[0]) + {var + fmtty_rest$5=_tM_[1], + prec$4=match$9[2], + match$10=type_format_gen(fmt_rest$5,fmtty_rest$5), + fmtty$6=match$10[2], + fmt$6=match$10[1]; + return [0,[6,iconv$1,_tL_,prec$4,fmt$6],fmtty$6]} + throw Type_mismatch; + case 7: + var + fmt_rest$6=fmt[4], + prec$5=fmt[3], + pad$4=fmt[2], + iconv$2=fmt[1], + match$11=type_padprec(pad$4,prec$5,fmtty), + _tO_=match$11[3], + _tN_=match$11[1]; + if(typeof _tO_ !== "number" && 5 === _tO_[0]) + {var + fmtty_rest$6=_tO_[1], + prec$6=match$11[2], + match$12=type_format_gen(fmt_rest$6,fmtty_rest$6), + fmtty$7=match$12[2], + fmt$7=match$12[1]; + return [0,[7,iconv$2,_tN_,prec$6,fmt$7],fmtty$7]} + throw Type_mismatch; + case 8: + var + fmt_rest$7=fmt[4], + prec$7=fmt[3], + pad$5=fmt[2], + fconv=fmt[1], + match$13=type_padprec(pad$5,prec$7,fmtty), + _tQ_=match$13[3], + _tP_=match$13[1]; + if(typeof _tQ_ !== "number" && 6 === _tQ_[0]) + {var + fmtty_rest$7=_tQ_[1], + prec$8=match$13[2], + match$14=type_format_gen(fmt_rest$7,fmtty_rest$7), + fmtty$8=match$14[2], + fmt$8=match$14[1]; + return [0,[8,fconv,_tP_,prec$8,fmt$8],fmtty$8]} + throw Type_mismatch; + case 9: + var + fmt_rest$8=fmt[2], + pad$6=fmt[1], + match$15=type_padding(pad$6,fmtty), + _tS_=match$15[2], + _tR_=match$15[1]; + if(typeof _tS_ !== "number" && 7 === _tS_[0]) + {var + fmtty_rest$8=_tS_[1], + match$16=type_format_gen(fmt_rest$8,fmtty_rest$8), + fmtty$9=match$16[2], + fmt$9=match$16[1]; + return [0,[9,_tR_,fmt$9],fmtty$9]} + throw Type_mismatch; + case 10: + var + fmt_rest$9=fmt[1], + match$17=type_format_gen(fmt_rest$9,fmtty), + fmtty$10=match$17[2], + fmt$10=match$17[1]; + return [0,[10,fmt$10],fmtty$10]; + case 11: + var + fmt_rest$10=fmt[2], + str=fmt[1], + match$18=type_format_gen(fmt_rest$10,fmtty), + fmtty$11=match$18[2], + fmt$11=match$18[1]; + return [0,[11,str,fmt$11],fmtty$11]; + case 12: + var + fmt_rest$11=fmt[2], + chr=fmt[1], + match$19=type_format_gen(fmt_rest$11,fmtty), + fmtty$12=match$19[2], + fmt$12=match$19[1]; + return [0,[12,chr,fmt$12],fmtty$12]; + case 13: + if(typeof fmtty !== "number" && 8 === fmtty[0]) + {var + fmtty_rest$9=fmtty[2], + sub_fmtty=fmtty[1], + fmt_rest$12=fmt[3], + sub_fmtty$0=fmt[2], + pad_opt=fmt[1]; + if(caml_notequal([0,sub_fmtty$0],[0,sub_fmtty])) + throw Type_mismatch; + var + match$20=type_format_gen(fmt_rest$12,fmtty_rest$9), + fmtty$13=match$20[2], + fmt$13=match$20[1]; + return [0,[13,pad_opt,sub_fmtty,fmt$13],fmtty$13]} + break; + case 14: + if(typeof fmtty !== "number" && 9 === fmtty[0]) + {var + fmtty_rest$10=fmtty[3], + sub_fmtty1=fmtty[1], + fmt_rest$13=fmt[3], + sub_fmtty$1=fmt[2], + pad_opt$0=fmt[1], + _tT_=[0,erase_rel(sub_fmtty1)]; + if(caml_notequal([0,erase_rel(sub_fmtty$1)],_tT_)) + throw Type_mismatch; + var + match$21=type_format_gen(fmt_rest$13,erase_rel(fmtty_rest$10)), + fmtty$14=match$21[2], + fmt$14=match$21[1]; + return [0,[14,pad_opt$0,sub_fmtty1,fmt$14],fmtty$14]} + break; + case 15: + if(typeof fmtty !== "number" && 10 === fmtty[0]) + {var + fmtty_rest$11=fmtty[1], + fmt_rest$14=fmt[1], + match$22=type_format_gen(fmt_rest$14,fmtty_rest$11), + fmtty$15=match$22[2], + fmt$15=match$22[1]; + return [0,[15,fmt$15],fmtty$15]} + break; + case 16: + if(typeof fmtty !== "number" && 11 === fmtty[0]) + {var + fmtty_rest$12=fmtty[1], + fmt_rest$15=fmt[1], + match$23=type_format_gen(fmt_rest$15,fmtty_rest$12), + fmtty$16=match$23[2], + fmt$16=match$23[1]; + return [0,[16,fmt$16],fmtty$16]} + break; + case 17: + var + fmt_rest$16=fmt[2], + formatting_lit=fmt[1], + match$24=type_format_gen(fmt_rest$16,fmtty), + fmtty$17=match$24[2], + fmt$17=match$24[1]; + return [0,[17,formatting_lit,fmt$17],fmtty$17]; + case 18: + var fmt_rest$17=fmt[2],formatting_gen=fmt[1]; + if(0 === formatting_gen[0]) + {var + match$28=formatting_gen[1], + str$0=match$28[2], + fmt1=match$28[1], + match$29=type_format_gen(fmt1,fmtty), + fmtty2=match$29[2], + fmt2=match$29[1], + match$30=type_format_gen(fmt_rest$17,fmtty2), + fmtty3=match$30[2], + fmt3=match$30[1]; + return [0,[18,[0,[0,fmt2,str$0]],fmt3],fmtty3]} + var + match$31=formatting_gen[1], + str$1=match$31[2], + fmt1$0=match$31[1], + match$32=type_format_gen(fmt1$0,fmtty), + fmtty2$0=match$32[2], + fmt2$0=match$32[1], + match$33=type_format_gen(fmt_rest$17,fmtty2$0), + fmtty3$0=match$33[2], + fmt3$0=match$33[1]; + return [0,[18,[1,[0,fmt2$0,str$1]],fmt3$0],fmtty3$0]; + case 19: + if(typeof fmtty !== "number" && 13 === fmtty[0]) + {var + fmtty_rest$13=fmtty[1], + fmt_rest$18=fmt[1], + match$25=type_format_gen(fmt_rest$18,fmtty_rest$13), + fmtty$18=match$25[2], + fmt$18=match$25[1]; + return [0,[19,fmt$18],fmtty$18]} + break; + case 20: + if(typeof fmtty !== "number" && 1 === fmtty[0]) + {var + fmtty_rest$14=fmtty[1], + fmt_rest$19=fmt[3], + char_set=fmt[2], + width_opt=fmt[1], + match$26=type_format_gen(fmt_rest$19,fmtty_rest$14), + fmtty$19=match$26[2], + fmt$19=match$26[1]; + return [0,[20,width_opt,char_set,fmt$19],fmtty$19]} + break; + case 21: + if(typeof fmtty !== "number" && 2 === fmtty[0]) + {var + fmtty_rest$15=fmtty[1], + fmt_rest$20=fmt[2], + counter=fmt[1], + match$27=type_format_gen(fmt_rest$20,fmtty_rest$15), + fmtty$20=match$27[2], + fmt$20=match$27[1]; + return [0,[21,counter,fmt$20],fmtty$20]} + break; + case 23: + var rest=fmt[2],ign=fmt[1]; + if(typeof ign !== "number") + switch(ign[0]) + {case 0:return type_ignored_param_one(ign,rest,fmtty); + case 1:return type_ignored_param_one(ign,rest,fmtty); + case 2:return type_ignored_param_one(ign,rest,fmtty); + case 3:return type_ignored_param_one(ign,rest,fmtty); + case 4:return type_ignored_param_one(ign,rest,fmtty); + case 5:return type_ignored_param_one(ign,rest,fmtty); + case 6:return type_ignored_param_one(ign,rest,fmtty); + case 7:return type_ignored_param_one(ign,rest,fmtty); + case 8: + var sub_fmtty$2=ign[2],pad_opt$1=ign[1]; + return type_ignored_param_one + ([8,pad_opt$1,sub_fmtty$2],rest,fmtty); + case 9: + var + sub_fmtty$3=ign[2], + pad_opt$2=ign[1], + _tU_=type_ignored_format_substituti(sub_fmtty$3,rest,fmtty), + match$35=_tU_[2], + fmtty$22=match$35[2], + fmt$22=match$35[1], + sub_fmtty$4=_tU_[1]; + return [0,[23,[9,pad_opt$2,sub_fmtty$4],fmt$22],fmtty$22]; + case 10:return type_ignored_param_one(ign,rest,fmtty); + default:return type_ignored_param_one(ign,rest,fmtty)} + switch(ign) + {case 0:return type_ignored_param_one(ign,rest,fmtty); + case 1:return type_ignored_param_one(ign,rest,fmtty); + case 2: + if(typeof fmtty !== "number" && 14 === fmtty[0]) + {var + fmtty_rest$16=fmtty[1], + match$34=type_format_gen(rest,fmtty_rest$16), + fmtty$21=match$34[2], + fmt$21=match$34[1]; + return [0,[23,2,fmt$21],fmtty$21]} + throw Type_mismatch; + default:return type_ignored_param_one(ign,rest,fmtty)} + } + throw Type_mismatch} + function type_ignored_format_substituti(sub_fmtty,fmt,fmtty) + {if(typeof sub_fmtty === "number") + return [0,0,type_format_gen(fmt,fmtty)]; + switch(sub_fmtty[0]) + {case 0: + if(typeof fmtty !== "number" && 0 === fmtty[0]) + {var + fmtty_rest=fmtty[1], + sub_fmtty_rest=sub_fmtty[1], + match= + type_ignored_format_substituti(sub_fmtty_rest,fmt,fmtty_rest), + fmt$0=match[2], + sub_fmtty_rest$0=match[1]; + return [0,[0,sub_fmtty_rest$0],fmt$0]} + break; + case 1: + if(typeof fmtty !== "number" && 1 === fmtty[0]) + {var + fmtty_rest$0=fmtty[1], + sub_fmtty_rest$1=sub_fmtty[1], + match$0= + type_ignored_format_substituti(sub_fmtty_rest$1,fmt,fmtty_rest$0), + fmt$1=match$0[2], + sub_fmtty_rest$2=match$0[1]; + return [0,[1,sub_fmtty_rest$2],fmt$1]} + break; + case 2: + if(typeof fmtty !== "number" && 2 === fmtty[0]) + {var + fmtty_rest$1=fmtty[1], + sub_fmtty_rest$3=sub_fmtty[1], + match$1= + type_ignored_format_substituti(sub_fmtty_rest$3,fmt,fmtty_rest$1), + fmt$2=match$1[2], + sub_fmtty_rest$4=match$1[1]; + return [0,[2,sub_fmtty_rest$4],fmt$2]} + break; + case 3: + if(typeof fmtty !== "number" && 3 === fmtty[0]) + {var + fmtty_rest$2=fmtty[1], + sub_fmtty_rest$5=sub_fmtty[1], + match$2= + type_ignored_format_substituti(sub_fmtty_rest$5,fmt,fmtty_rest$2), + fmt$3=match$2[2], + sub_fmtty_rest$6=match$2[1]; + return [0,[3,sub_fmtty_rest$6],fmt$3]} + break; + case 4: + if(typeof fmtty !== "number" && 4 === fmtty[0]) + {var + fmtty_rest$3=fmtty[1], + sub_fmtty_rest$7=sub_fmtty[1], + match$3= + type_ignored_format_substituti(sub_fmtty_rest$7,fmt,fmtty_rest$3), + fmt$4=match$3[2], + sub_fmtty_rest$8=match$3[1]; + return [0,[4,sub_fmtty_rest$8],fmt$4]} + break; + case 5: + if(typeof fmtty !== "number" && 5 === fmtty[0]) + {var + fmtty_rest$4=fmtty[1], + sub_fmtty_rest$9=sub_fmtty[1], + match$4= + type_ignored_format_substituti(sub_fmtty_rest$9,fmt,fmtty_rest$4), + fmt$5=match$4[2], + sub_fmtty_rest$10=match$4[1]; + return [0,[5,sub_fmtty_rest$10],fmt$5]} + break; + case 6: + if(typeof fmtty !== "number" && 6 === fmtty[0]) + {var + fmtty_rest$5=fmtty[1], + sub_fmtty_rest$11=sub_fmtty[1], + match$5= + type_ignored_format_substituti + (sub_fmtty_rest$11,fmt,fmtty_rest$5), + fmt$6=match$5[2], + sub_fmtty_rest$12=match$5[1]; + return [0,[6,sub_fmtty_rest$12],fmt$6]} + break; + case 7: + if(typeof fmtty !== "number" && 7 === fmtty[0]) + {var + fmtty_rest$6=fmtty[1], + sub_fmtty_rest$13=sub_fmtty[1], + match$6= + type_ignored_format_substituti + (sub_fmtty_rest$13,fmt,fmtty_rest$6), + fmt$7=match$6[2], + sub_fmtty_rest$14=match$6[1]; + return [0,[7,sub_fmtty_rest$14],fmt$7]} + break; + case 8: + if(typeof fmtty !== "number" && 8 === fmtty[0]) + {var + fmtty_rest$7=fmtty[2], + sub2_fmtty=fmtty[1], + sub_fmtty_rest$15=sub_fmtty[2], + sub2_fmtty$0=sub_fmtty[1]; + if(caml_notequal([0,sub2_fmtty$0],[0,sub2_fmtty])) + throw Type_mismatch; + var + match$7= + type_ignored_format_substituti + (sub_fmtty_rest$15,fmt,fmtty_rest$7), + fmt$8=match$7[2], + sub_fmtty_rest$16=match$7[1]; + return [0,[8,sub2_fmtty,sub_fmtty_rest$16],fmt$8]} + break; + case 9: + if(typeof fmtty !== "number" && 9 === fmtty[0]) + {var + fmtty_rest$8=fmtty[3], + sub2_fmtty$1=fmtty[2], + sub1_fmtty=fmtty[1], + sub_fmtty_rest$17=sub_fmtty[3], + sub2_fmtty$2=sub_fmtty[2], + sub1_fmtty$0=sub_fmtty[1], + _tB_=[0,erase_rel(sub1_fmtty)]; + if(caml_notequal([0,erase_rel(sub1_fmtty$0)],_tB_)) + throw Type_mismatch; + var _tC_=[0,erase_rel(sub2_fmtty$1)]; + if(caml_notequal([0,erase_rel(sub2_fmtty$2)],_tC_)) + throw Type_mismatch; + var + sub_fmtty$0=trans(symm(sub1_fmtty),sub2_fmtty$1), + match$8=fmtty_rel_det(sub_fmtty$0), + f4=match$8[4], + f2=match$8[2]; + caml_call1(f2,0); + caml_call1(f4,0); + var + match$9= + type_ignored_format_substituti + (erase_rel(sub_fmtty_rest$17),fmt,fmtty_rest$8), + fmt$9=match$9[2], + sub_fmtty_rest$18=match$9[1]; + return [0, + [9,sub1_fmtty,sub2_fmtty$1,symm(sub_fmtty_rest$18)], + fmt$9]} + break; + case 10: + if(typeof fmtty !== "number" && 10 === fmtty[0]) + {var + fmtty_rest$9=fmtty[1], + sub_fmtty_rest$19=sub_fmtty[1], + match$10= + type_ignored_format_substituti + (sub_fmtty_rest$19,fmt,fmtty_rest$9), + fmt$10=match$10[2], + sub_fmtty_rest$20=match$10[1]; + return [0,[10,sub_fmtty_rest$20],fmt$10]} + break; + case 11: + if(typeof fmtty !== "number" && 11 === fmtty[0]) + {var + fmtty_rest$10=fmtty[1], + sub_fmtty_rest$21=sub_fmtty[1], + match$11= + type_ignored_format_substituti + (sub_fmtty_rest$21,fmt,fmtty_rest$10), + fmt$11=match$11[2], + sub_fmtty_rest$22=match$11[1]; + return [0,[11,sub_fmtty_rest$22],fmt$11]} + break; + case 13: + if(typeof fmtty !== "number" && 13 === fmtty[0]) + {var + fmtty_rest$11=fmtty[1], + sub_fmtty_rest$23=sub_fmtty[1], + match$12= + type_ignored_format_substituti + (sub_fmtty_rest$23,fmt,fmtty_rest$11), + fmt$12=match$12[2], + sub_fmtty_rest$24=match$12[1]; + return [0,[13,sub_fmtty_rest$24],fmt$12]} + break; + case 14: + if(typeof fmtty !== "number" && 14 === fmtty[0]) + {var + fmtty_rest$12=fmtty[1], + sub_fmtty_rest$25=sub_fmtty[1], + match$13= + type_ignored_format_substituti + (sub_fmtty_rest$25,fmt,fmtty_rest$12), + fmt$13=match$13[2], + sub_fmtty_rest$26=match$13[1]; + return [0,[14,sub_fmtty_rest$26],fmt$13]} + break + } + throw Type_mismatch} + function recast(fmt,fmtty){return type_format(fmt,erase_rel(symm(fmtty)))} + function fix_padding(padty,width,str) + {var + len=caml_ml_string_length(str), + padty$0=0 <= width?padty:0, + width$0=abs(width); + if(width$0 <= len)return str; + var _tA_=2 === padty$0?48:32,res=make$0(width$0,_tA_); + switch(padty$0) + {case 0:blit$0(str,0,res,0,len);break; + case 1:blit$0(str,0,res,width$0 - len | 0,len);break; + default: + var switch$0=0; + if(0 < len) + {var switch$1=0; + if + (43 + !== + caml_string_get(str,0) + && + 45 + !== + caml_string_get(str,0) + && + 32 + !== + caml_string_get(str,0)) + {switch$0 = 1;switch$1 = 1} + if(! switch$1) + {caml_bytes_set(res,0,caml_string_get(str,0)); + blit$0(str,1,res,(width$0 - len | 0) + 1 | 0,len - 1 | 0)}} + else + switch$0 = 1; + if(switch$0) + {var switch$2=0; + if(1 < len && 48 === caml_string_get(str,0)) + {var switch$3=0; + if + (120 + !== + caml_string_get(str,1) + && + 88 + !== + caml_string_get(str,1)) + {switch$2 = 1;switch$3 = 1} + if(! switch$3) + {caml_bytes_set(res,1,caml_string_get(str,1)); + blit$0(str,2,res,(width$0 - len | 0) + 2 | 0,len - 2 | 0)}} + else + switch$2 = 1; + if(switch$2)blit$0(str,0,res,width$0 - len | 0,len)}} + return caml_string_of_bytes(res)} + function fix_int_precision(prec,str) + {var + prec$0=abs(prec), + len=caml_ml_string_length(str), + c=caml_string_get(str,0), + switch$0=0; + if(58 <= c) + {if(71 <= c) + {if(5 >= c - 97 >>> 0)switch$0 = 1} + else + if(65 <= c)switch$0 = 1} + else + {var switch$1=0; + if(32 !== c) + if(43 <= c) + switch(c - 43 | 0) + {case 5: + if(len < (prec$0 + 2 | 0) && 1 < len) + {var switch$2=0; + if + (120 + === + caml_string_get(str,1) + || + 88 + === + caml_string_get(str,1)) + switch$2 = 1; + if(switch$2) + {var res$1=make$0(prec$0 + 2 | 0,48); + caml_bytes_set(res$1,1,caml_string_get(str,1)); + blit$0(str,2,res$1,(prec$0 - len | 0) + 4 | 0,len - 2 | 0); + return caml_string_of_bytes(res$1)}} + switch$0 = 1; + switch$1 = 1; + break; + case 0: + case 2:break; + case 1: + case 3: + case 4:switch$1 = 1;break; + default:switch$0 = 1;switch$1 = 1} + else + switch$1 = 1; + if(! switch$1 && len < (prec$0 + 1 | 0)) + {var res$0=make$0(prec$0 + 1 | 0,48); + caml_bytes_set(res$0,0,c); + blit$0(str,1,res$0,(prec$0 - len | 0) + 2 | 0,len - 1 | 0); + return caml_string_of_bytes(res$0)}} + if(switch$0 && len < prec$0) + {var res=make$0(prec$0,48); + blit$0(str,0,res,prec$0 - len | 0,len); + return caml_string_of_bytes(res)} + return str} + function string_to_caml_string(str) + {var + str$0=escaped$1(str), + l=caml_ml_string_length(str$0), + res=make$0(l + 2 | 0,34); + caml_blit_string(str$0,0,res,1,l); + return caml_string_of_bytes(res)} + function format_of_fconv(fconv,prec) + {var + prec$0=abs(prec), + symb=char_of_fconv(_av_,fconv), + buf=buffer_create(16); + buffer_add_char(buf,37); + bprint_fconv_flag(buf,fconv); + buffer_add_char(buf,46); + buffer_add_string(buf,caml_string_of_jsbytes("" + prec$0)); + buffer_add_char(buf,symb); + return buffer_contents(buf)} + function transform_int_alt(iconv,s) + {if(13 > iconv)return s; + var n=[0,0],_tv_=caml_ml_string_length(s) - 1 | 0,_tu_=0; + if(_tv_ >= 0) + {var i$0=_tu_; + for(;;) + {var match=caml_string_unsafe_get(s,i$0); + if(9 >= match - 48 >>> 0)n[1]++; + var _tz_=i$0 + 1 | 0; + if(_tv_ !== i$0){var i$0=_tz_;continue} + break}} + var + digits=n[1], + buf= + caml_create_bytes + (caml_ml_string_length(s) + ((digits - 1 | 0) / 3 | 0) | 0), + pos=[0,0]; + function put(c){caml_bytes_set(buf,pos[1],c);pos[1]++;return 0} + var + left=[0,((digits - 1 | 0) % 3 | 0) + 1 | 0], + _tx_=caml_ml_string_length(s) - 1 | 0, + _tw_=0; + if(_tx_ >= 0) + {var i=_tw_; + for(;;) + {var c=caml_string_unsafe_get(s,i); + if(9 < c - 48 >>> 0) + put(c); + else + {if(0 === left[1]){put(95);left[1] = 3}left[1] += -1;put(c)} + var _ty_=i + 1 | 0; + if(_tx_ !== i){var i=_ty_;continue} + break}} + return caml_string_of_bytes(buf)} + function convert_int(iconv,n) + {switch(iconv) + {case 1:var _tt_=cst_d$3;break; + case 2:var _tt_=cst_d$4;break; + case 4:var _tt_=cst_i$1;break; + case 5:var _tt_=cst_i$2;break; + case 6:var _tt_=cst_x;break; + case 7:var _tt_=cst_x$0;break; + case 8:var _tt_=cst_X$0;break; + case 9:var _tt_=cst_X$1;break; + case 10:var _tt_=cst_o;break; + case 11:var _tt_=cst_o$0;break; + case 0: + case 13:var _tt_=cst_d$2;break; + case 3: + case 14:var _tt_=cst_i$0;break; + default:var _tt_=cst_u} + return transform_int_alt(iconv,caml_format_int(_tt_,n))} + function convert_int32(iconv,n) + {switch(iconv) + {case 1:var _ts_=cst_ld$0;break; + case 2:var _ts_=cst_ld$1;break; + case 4:var _ts_=cst_li$1;break; + case 5:var _ts_=cst_li$2;break; + case 6:var _ts_=cst_lx;break; + case 7:var _ts_=cst_lx$0;break; + case 8:var _ts_=cst_lX;break; + case 9:var _ts_=cst_lX$0;break; + case 10:var _ts_=cst_lo;break; + case 11:var _ts_=cst_lo$0;break; + case 0: + case 13:var _ts_=cst_ld;break; + case 3: + case 14:var _ts_=cst_li$0;break; + default:var _ts_=cst_lu} + return transform_int_alt(iconv,caml_format_int(_ts_,n))} + function convert_nativeint(iconv,n) + {switch(iconv) + {case 1:var _tr_=cst_nd$0;break; + case 2:var _tr_=cst_nd$1;break; + case 4:var _tr_=cst_ni$1;break; + case 5:var _tr_=cst_ni$2;break; + case 6:var _tr_=cst_nx;break; + case 7:var _tr_=cst_nx$0;break; + case 8:var _tr_=cst_nX;break; + case 9:var _tr_=cst_nX$0;break; + case 10:var _tr_=cst_no;break; + case 11:var _tr_=cst_no$0;break; + case 0: + case 13:var _tr_=cst_nd;break; + case 3: + case 14:var _tr_=cst_ni$0;break; + default:var _tr_=cst_nu} + return transform_int_alt(iconv,caml_format_int(_tr_,n))} + function convert_int64(iconv,n) + {switch(iconv) + {case 1:var _tq_=cst_Ld$0;break; + case 2:var _tq_=cst_Ld$1;break; + case 4:var _tq_=cst_Li$1;break; + case 5:var _tq_=cst_Li$2;break; + case 6:var _tq_=cst_Lx;break; + case 7:var _tq_=cst_Lx$0;break; + case 8:var _tq_=cst_LX;break; + case 9:var _tq_=cst_LX$0;break; + case 10:var _tq_=cst_Lo;break; + case 11:var _tq_=cst_Lo$0;break; + case 0: + case 13:var _tq_=cst_Ld;break; + case 3: + case 14:var _tq_=cst_Li$0;break; + default:var _tq_=cst_Lu} + return transform_int_alt(iconv,caml_int64_format(_tq_,n))} + function convert_float(fconv,prec,x) + {function hex(param) + {switch(fconv[1]) + {case 0:var sign=45;break; + case 1:var sign=43;break; + default:var sign=32} + return runtime.caml_hexstring_of_float(x,prec,sign)} + function caml_special_val(str) + {var match=runtime.caml_classify_float(x); + return 3 === match + ?x < 0.?cst_neg_infinity:cst_infinity + :4 <= match?cst_nan:str} + switch(fconv[2]) + {case 5: + var + str=caml_format_float(format_of_fconv(fconv,prec),x), + len=caml_ml_string_length(str), + i=0; + for(;;) + {if(i === len) + var _to_=0; + else + {var match=caml_string_get(str,i),_tn_=match - 46 | 0,switch$0=0; + if(23 < _tn_ >>> 0) + {if(55 === _tn_)switch$0 = 1} + else + if(21 < _tn_ - 1 >>> 0)switch$0 = 1; + if(! switch$0){var i$0=i + 1 | 0,i=i$0;continue} + var _to_=1} + var _tp_=_to_?str:cat(str,cst$29); + return caml_special_val(_tp_)} + case 6:return hex(0); + case 7:return uppercase_ascii$1(hex(0)); + case 8:return caml_special_val(hex(0)); + default:return caml_format_float(format_of_fconv(fconv,prec),x)}} + function string_of_fmtty(fmtty) + {var buf=buffer_create(16); + bprint_fmtty(buf,fmtty); + return buffer_contents(buf)} + function make_int_padding_precision(k,acc,fmt,pad,prec,trans,iconv) + {if(typeof pad === "number") + {if(typeof prec === "number") + return prec + ?function(p,x) + {var str=fix_int_precision(p,caml_call2(trans,iconv,x)); + return make_printf(k,[4,acc,str],fmt)} + :function(x) + {var str=caml_call2(trans,iconv,x); + return make_printf(k,[4,acc,str],fmt)}; + var p=prec[1]; + return function(x) + {var str=fix_int_precision(p,caml_call2(trans,iconv,x)); + return make_printf(k,[4,acc,str],fmt)}} + if(0 === pad[0]) + {var _tk_=pad[2],_tl_=pad[1]; + if(typeof prec === "number") + return prec + ?function(p,x) + {var + str= + fix_padding + (_tl_,_tk_,fix_int_precision(p,caml_call2(trans,iconv,x))); + return make_printf(k,[4,acc,str],fmt)} + :function(x) + {var str=fix_padding(_tl_,_tk_,caml_call2(trans,iconv,x)); + return make_printf(k,[4,acc,str],fmt)}; + var p$0=prec[1]; + return function(x) + {var + str= + fix_padding + (_tl_,_tk_,fix_int_precision(p$0,caml_call2(trans,iconv,x))); + return make_printf(k,[4,acc,str],fmt)}} + var _tm_=pad[1]; + if(typeof prec === "number") + return prec + ?function(w,p,x) + {var + str= + fix_padding + (_tm_,w,fix_int_precision(p,caml_call2(trans,iconv,x))); + return make_printf(k,[4,acc,str],fmt)} + :function(w,x) + {var str=fix_padding(_tm_,w,caml_call2(trans,iconv,x)); + return make_printf(k,[4,acc,str],fmt)}; + var p$1=prec[1]; + return function(w,x) + {var + str= + fix_padding(_tm_,w,fix_int_precision(p$1,caml_call2(trans,iconv,x))); + return make_printf(k,[4,acc,str],fmt)}} + function make_padding(k,acc,fmt,pad,trans) + {if(typeof pad === "number") + return function(x) + {var new_acc=[4,acc,caml_call1(trans,x)]; + return make_printf(k,new_acc,fmt)}; + if(0 === pad[0]) + {var width=pad[2],padty=pad[1]; + return function(x) + {var new_acc=[4,acc,fix_padding(padty,width,caml_call1(trans,x))]; + return make_printf(k,new_acc,fmt)}} + var padty$0=pad[1]; + return function(w,x) + {var new_acc=[4,acc,fix_padding(padty$0,w,caml_call1(trans,x))]; + return make_printf(k,new_acc,fmt)}} + function make_printf$0(counter,k,acc,fmt) + {var k$0=k,acc$0=acc,fmt$0=fmt; + for(;;) + {if(typeof fmt$0 === "number")return caml_call1(k$0,acc$0); + switch(fmt$0[0]) + {case 0: + var rest=fmt$0[1]; + return function(c) + {var new_acc=[5,acc$0,c];return make_printf(k$0,new_acc,rest)}; + case 1: + var rest$0=fmt$0[1]; + return function(c) + {var + str=escaped(c), + l=caml_ml_string_length(str), + res=make$0(l + 2 | 0,39); + caml_blit_string(str,0,res,1,l); + var new_acc=[4,acc$0,caml_string_of_bytes(res)]; + return make_printf(k$0,new_acc,rest$0)}; + case 2: + var rest$1=fmt$0[2],pad=fmt$0[1]; + return make_padding(k$0,acc$0,rest$1,pad,function(str){return str}); + case 3: + var rest$2=fmt$0[2],pad$0=fmt$0[1]; + return make_padding(k$0,acc$0,rest$2,pad$0,string_to_caml_string); + case 4: + var rest$3=fmt$0[4],prec=fmt$0[3],pad$1=fmt$0[2],iconv=fmt$0[1]; + return make_int_padding_precision + (k$0,acc$0,rest$3,pad$1,prec,convert_int,iconv); + case 5: + var + rest$4=fmt$0[4], + prec$0=fmt$0[3], + pad$2=fmt$0[2], + iconv$0=fmt$0[1]; + return make_int_padding_precision + (k$0,acc$0,rest$4,pad$2,prec$0,convert_int32,iconv$0); + case 6: + var + rest$5=fmt$0[4], + prec$1=fmt$0[3], + pad$3=fmt$0[2], + iconv$1=fmt$0[1]; + return make_int_padding_precision + (k$0,acc$0,rest$5,pad$3,prec$1,convert_nativeint,iconv$1); + case 7: + var + rest$6=fmt$0[4], + prec$2=fmt$0[3], + pad$4=fmt$0[2], + iconv$2=fmt$0[1]; + return make_int_padding_precision + (k$0,acc$0,rest$6,pad$4,prec$2,convert_int64,iconv$2); + case 8: + var rest$7=fmt$0[4],prec$3=fmt$0[3],pad$5=fmt$0[2],fconv=fmt$0[1]; + if(typeof pad$5 === "number") + {if(typeof prec$3 === "number") + return prec$3 + ?function(p,x) + {var str=convert_float(fconv,p,x); + return make_printf(k$0,[4,acc$0,str],rest$7)} + :function(x) + {var + str= + convert_float(fconv,default_float_precision(fconv),x); + return make_printf(k$0,[4,acc$0,str],rest$7)}; + var p=prec$3[1]; + return function(x) + {var str=convert_float(fconv,p,x); + return make_printf(k$0,[4,acc$0,str],rest$7)}} + if(0 === pad$5[0]) + {var _th_=pad$5[2],_ti_=pad$5[1]; + if(typeof prec$3 === "number") + return prec$3 + ?function(p,x) + {var str=fix_padding(_ti_,_th_,convert_float(fconv,p,x)); + return make_printf(k$0,[4,acc$0,str],rest$7)} + :function(x) + {var + str=convert_float(fconv,default_float_precision(fconv),x), + str$0=fix_padding(_ti_,_th_,str); + return make_printf(k$0,[4,acc$0,str$0],rest$7)}; + var p$0=prec$3[1]; + return function(x) + {var str=fix_padding(_ti_,_th_,convert_float(fconv,p$0,x)); + return make_printf(k$0,[4,acc$0,str],rest$7)}} + var _tj_=pad$5[1]; + if(typeof prec$3 === "number") + return prec$3 + ?function(w,p,x) + {var str=fix_padding(_tj_,w,convert_float(fconv,p,x)); + return make_printf(k$0,[4,acc$0,str],rest$7)} + :function(w,x) + {var + str=convert_float(fconv,default_float_precision(fconv),x), + str$0=fix_padding(_tj_,w,str); + return make_printf(k$0,[4,acc$0,str$0],rest$7)}; + var p$1=prec$3[1]; + return function(w,x) + {var str=fix_padding(_tj_,w,convert_float(fconv,p$1,x)); + return make_printf(k$0,[4,acc$0,str],rest$7)}; + case 9: + var rest$8=fmt$0[2],pad$6=fmt$0[1]; + return make_padding(k$0,acc$0,rest$8,pad$6,string_of_bool); + case 10: + var fmt$1=fmt$0[1],acc$1=[7,acc$0],acc$0=acc$1,fmt$0=fmt$1; + continue; + case 11: + var + fmt$2=fmt$0[2], + str=fmt$0[1], + acc$2=[2,acc$0,str], + acc$0=acc$2, + fmt$0=fmt$2; + continue; + case 12: + var + fmt$3=fmt$0[2], + chr=fmt$0[1], + acc$3=[3,acc$0,chr], + acc$0=acc$3, + fmt$0=fmt$3; + continue; + case 13: + var + rest$9=fmt$0[3], + sub_fmtty=fmt$0[2], + ty=string_of_fmtty(sub_fmtty); + return function(str){return make_printf(k$0,[4,acc$0,ty],rest$9)}; + case 14: + var rest$10=fmt$0[3],fmtty=fmt$0[2]; + return function(param) + {var fmt=param[1]; + return make_printf + (k$0,acc$0,concat_fmt(recast(fmt,fmtty),rest$10))}; + case 15: + var rest$11=fmt$0[1]; + return function(f,x) + {return make_printf + (k$0, + [6,acc$0,function(o){return caml_call2(f,o,x)}], + rest$11)}; + case 16: + var rest$12=fmt$0[1]; + return function(f){return make_printf(k$0,[6,acc$0,f],rest$12)}; + case 17: + var + fmt$4=fmt$0[2], + fmting_lit=fmt$0[1], + acc$4=[0,acc$0,fmting_lit], + acc$0=acc$4, + fmt$0=fmt$4; + continue; + case 18: + var _tf_=fmt$0[1]; + if(0 === _tf_[0]) + {var + rest$13=fmt$0[2], + match=_tf_[1], + fmt$5=match[1], + k$3= + function(acc,k,rest) + {function k$0(kacc) + {return make_printf(k,[1,acc,[0,kacc]],rest)} + return k$0}, + k$1=k$3(acc$0,k$0,rest$13), + k$0=k$1, + acc$0=0, + fmt$0=fmt$5; + continue} + var + rest$14=fmt$0[2], + match$0=_tf_[1], + fmt$6=match$0[1], + k$4= + function(acc,k,rest) + {function k$0(kacc){return make_printf(k,[1,acc,[1,kacc]],rest)} + return k$0}, + k$2=k$4(acc$0,k$0,rest$14), + k$0=k$2, + acc$0=0, + fmt$0=fmt$6; + continue; + case 19:throw [0,Assert_failure,_aw_]; + case 20: + var rest$15=fmt$0[3],new_acc=[8,acc$0,cst_Printf_bad_conversion]; + return function(param){return make_printf(k$0,new_acc,rest$15)}; + case 21: + var rest$16=fmt$0[2]; + return function(n) + {var new_acc=[4,acc$0,caml_format_int(cst_u$0,n)]; + return make_printf(k$0,new_acc,rest$16)}; + case 22: + var rest$17=fmt$0[1]; + return function(c) + {var new_acc=[5,acc$0,c];return make_printf(k$0,new_acc,rest$17)}; + case 23: + var rest$18=fmt$0[2],ign=fmt$0[1]; + if(counter >= 50) + return caml_trampoline_return + (make_ignored_param$0,[0,k$0,acc$0,ign,rest$18]); + var counter$1=counter + 1 | 0; + return make_ignored_param$0(counter$1,k$0,acc$0,ign,rest$18); + default: + var + rest$19=fmt$0[3], + f=fmt$0[2], + arity=fmt$0[1], + _tg_=caml_call1(f,0); + if(counter >= 50) + return caml_trampoline_return + (make_custom$0,[0,k$0,acc$0,rest$19,arity,_tg_]); + var counter$0=counter + 1 | 0; + return make_custom$0(counter$0,k$0,acc$0,rest$19,arity,_tg_)}}} + function make_ignored_param$0(counter,k,acc,ign,fmt) + {if(typeof ign === "number") + switch(ign) + {case 0: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$0=counter + 1 | 0; + return make_invalid_arg(counter$0,k,acc,fmt); + case 1: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$1=counter + 1 | 0; + return make_invalid_arg(counter$1,k,acc,fmt); + case 2:throw [0,Assert_failure,_ax_]; + default: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$2=counter + 1 | 0; + return make_invalid_arg(counter$2,k,acc,fmt)} + switch(ign[0]) + {case 0: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$3=counter + 1 | 0; + return make_invalid_arg(counter$3,k,acc,fmt); + case 1: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$4=counter + 1 | 0; + return make_invalid_arg(counter$4,k,acc,fmt); + case 2: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$5=counter + 1 | 0; + return make_invalid_arg(counter$5,k,acc,fmt); + case 3: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$6=counter + 1 | 0; + return make_invalid_arg(counter$6,k,acc,fmt); + case 4: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$7=counter + 1 | 0; + return make_invalid_arg(counter$7,k,acc,fmt); + case 5: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$8=counter + 1 | 0; + return make_invalid_arg(counter$8,k,acc,fmt); + case 6: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$9=counter + 1 | 0; + return make_invalid_arg(counter$9,k,acc,fmt); + case 7: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$10=counter + 1 | 0; + return make_invalid_arg(counter$10,k,acc,fmt); + case 8: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$11=counter + 1 | 0; + return make_invalid_arg(counter$11,k,acc,fmt); + case 9: + var fmtty=ign[2]; + if(counter >= 50) + return caml_trampoline_return(make_from_fmtty$0,[0,k,acc,fmtty,fmt]); + var counter$14=counter + 1 | 0; + return make_from_fmtty$0(counter$14,k,acc,fmtty,fmt); + case 10: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$12=counter + 1 | 0; + return make_invalid_arg(counter$12,k,acc,fmt); + default: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$13=counter + 1 | 0; + return make_invalid_arg(counter$13,k,acc,fmt)}} + function make_from_fmtty$0(counter,k,acc,fmtty,fmt) + {if(typeof fmtty !== "number") + switch(fmtty[0]) + {case 0: + var rest=fmtty[1]; + return function(param){return make_from_fmtty(k,acc,rest,fmt)}; + case 1: + var rest$0=fmtty[1]; + return function(param){return make_from_fmtty(k,acc,rest$0,fmt)}; + case 2: + var rest$1=fmtty[1]; + return function(param){return make_from_fmtty(k,acc,rest$1,fmt)}; + case 3: + var rest$2=fmtty[1]; + return function(param){return make_from_fmtty(k,acc,rest$2,fmt)}; + case 4: + var rest$3=fmtty[1]; + return function(param){return make_from_fmtty(k,acc,rest$3,fmt)}; + case 5: + var rest$4=fmtty[1]; + return function(param){return make_from_fmtty(k,acc,rest$4,fmt)}; + case 6: + var rest$5=fmtty[1]; + return function(param){return make_from_fmtty(k,acc,rest$5,fmt)}; + case 7: + var rest$6=fmtty[1]; + return function(param){return make_from_fmtty(k,acc,rest$6,fmt)}; + case 8: + var rest$7=fmtty[2]; + return function(param){return make_from_fmtty(k,acc,rest$7,fmt)}; + case 9: + var + rest$8=fmtty[3], + ty2=fmtty[2], + ty1=fmtty[1], + ty=trans(symm(ty1),ty2); + return function(param) + {return make_from_fmtty(k,acc,concat_fmtty(ty,rest$8),fmt)}; + case 10: + var rest$9=fmtty[1]; + return function(param,_te_) + {return make_from_fmtty(k,acc,rest$9,fmt)}; + case 11: + var rest$10=fmtty[1]; + return function(param){return make_from_fmtty(k,acc,rest$10,fmt)}; + case 12: + var rest$11=fmtty[1]; + return function(param){return make_from_fmtty(k,acc,rest$11,fmt)}; + case 13:throw [0,Assert_failure,_ay_]; + default:throw [0,Assert_failure,_az_]} + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); + var counter$0=counter + 1 | 0; + return make_invalid_arg(counter$0,k,acc,fmt)} + function make_invalid_arg(counter,k,acc,fmt) + {var _td_=[8,acc,cst_Printf_bad_conversion$0]; + if(counter >= 50) + return caml_trampoline_return(make_printf$0,[0,k,_td_,fmt]); + var counter$0=counter + 1 | 0; + return make_printf$0(counter$0,k,_td_,fmt)} + function make_custom$0(counter,k,acc,rest,arity,f) + {if(arity) + {var arity$0=arity[1]; + return function(x) + {return make_custom(k,acc,rest,arity$0,caml_call1(f,x))}} + var _tc_=[4,acc,f]; + if(counter >= 50) + return caml_trampoline_return(make_printf$0,[0,k,_tc_,rest]); + var counter$0=counter + 1 | 0; + return make_printf$0(counter$0,k,_tc_,rest)} + function make_printf(k,acc,fmt) + {return caml_trampoline(make_printf$0(0,k,acc,fmt))} + function make_ignored_param(k,acc,ign,fmt) + {return caml_trampoline(make_ignored_param$0(0,k,acc,ign,fmt))} + function make_from_fmtty(k,acc,fmtty,fmt) + {return caml_trampoline(make_from_fmtty$0(0,k,acc,fmtty,fmt))} + function make_custom(k,acc,rest,arity,f) + {return caml_trampoline(make_custom$0(0,k,acc,rest,arity,f))} + function fn_of_padding_precision(k,o,fmt,pad,prec) + {if(typeof pad === "number") + {if(typeof prec !== "number") + {var _sN_=make_iprintf(k,o,fmt);return function(_tb_){return _sN_}} + if(prec) + {var _sK_=make_iprintf(k,o,fmt),_sL_=function(_ta_){return _sK_}; + return function(_s$_){return _sL_}} + var _sM_=make_iprintf(k,o,fmt); + return function(_s__){return _sM_}} + if(0 === pad[0]) + {if(typeof prec !== "number") + {var _sR_=make_iprintf(k,o,fmt);return function(_s9_){return _sR_}} + if(prec) + {var _sO_=make_iprintf(k,o,fmt),_sP_=function(_s8_){return _sO_}; + return function(_s7_){return _sP_}} + var _sQ_=make_iprintf(k,o,fmt); + return function(_s6_){return _sQ_}} + if(typeof prec !== "number") + {var _sX_=make_iprintf(k,o,fmt),_sY_=function(_s5_){return _sX_}; + return function(_s4_){return _sY_}} + if(prec) + {var + _sS_=make_iprintf(k,o,fmt), + _sT_=function(_s3_){return _sS_}, + _sU_=function(_s2_){return _sT_}; + return function(_s1_){return _sU_}} + var _sV_=make_iprintf(k,o,fmt); + function _sW_(_s0_){return _sV_} + return function(_sZ_){return _sW_}} + function make_iprintf$0(counter,k,o,fmt) + {var k$0=k,fmt$0=fmt; + for(;;) + {if(typeof fmt$0 === "number")return caml_call1(k$0,o); + switch(fmt$0[0]) + {case 0: + var rest=fmt$0[1],_r1_=make_iprintf(k$0,o,rest); + return function(_sJ_){return _r1_}; + case 1: + var rest$0=fmt$0[1],_r2_=make_iprintf(k$0,o,rest$0); + return function(_sI_){return _r2_}; + case 2: + var _r3_=fmt$0[1]; + if(typeof _r3_ === "number") + {var rest$1=fmt$0[2],_r4_=make_iprintf(k$0,o,rest$1); + return function(_sH_){return _r4_}} + if(0 === _r3_[0]) + {var rest$2=fmt$0[2],_r5_=make_iprintf(k$0,o,rest$2); + return function(_sG_){return _r5_}} + var + rest$3=fmt$0[2], + _r6_=make_iprintf(k$0,o,rest$3), + _r7_=function(_sF_){return _r6_}; + return function(_sE_){return _r7_}; + case 3: + var _r8_=fmt$0[1]; + if(typeof _r8_ === "number") + {var rest$4=fmt$0[2],_r9_=make_iprintf(k$0,o,rest$4); + return function(_sD_){return _r9_}} + if(0 === _r8_[0]) + {var rest$5=fmt$0[2],_r__=make_iprintf(k$0,o,rest$5); + return function(_sC_){return _r__}} + var + rest$6=fmt$0[2], + _r$_=make_iprintf(k$0,o,rest$6), + _sa_=function(_sB_){return _r$_}; + return function(_sA_){return _sa_}; + case 4: + var rest$7=fmt$0[4],prec=fmt$0[3],pad=fmt$0[2]; + return fn_of_padding_precision(k$0,o,rest$7,pad,prec); + case 5: + var rest$8=fmt$0[4],prec$0=fmt$0[3],pad$0=fmt$0[2]; + return fn_of_padding_precision(k$0,o,rest$8,pad$0,prec$0); + case 6: + var rest$9=fmt$0[4],prec$1=fmt$0[3],pad$1=fmt$0[2]; + return fn_of_padding_precision(k$0,o,rest$9,pad$1,prec$1); + case 7: + var rest$10=fmt$0[4],prec$2=fmt$0[3],pad$2=fmt$0[2]; + return fn_of_padding_precision(k$0,o,rest$10,pad$2,prec$2); + case 8: + var rest$11=fmt$0[4],prec$3=fmt$0[3],pad$3=fmt$0[2]; + return fn_of_padding_precision(k$0,o,rest$11,pad$3,prec$3); + case 9: + var _sb_=fmt$0[1]; + if(typeof _sb_ === "number") + {var rest$12=fmt$0[2],_sc_=make_iprintf(k$0,o,rest$12); + return function(_sz_){return _sc_}} + if(0 === _sb_[0]) + {var rest$13=fmt$0[2],_sd_=make_iprintf(k$0,o,rest$13); + return function(_sy_){return _sd_}} + var + rest$14=fmt$0[2], + _se_=make_iprintf(k$0,o,rest$14), + _sf_=function(_sx_){return _se_}; + return function(_sw_){return _sf_}; + case 10:var fmt$1=fmt$0[1],fmt$0=fmt$1;continue; + case 11:var fmt$2=fmt$0[2],fmt$0=fmt$2;continue; + case 12:var fmt$3=fmt$0[2],fmt$0=fmt$3;continue; + case 13: + var rest$15=fmt$0[3],_sg_=make_iprintf(k$0,o,rest$15); + return function(_sv_){return _sg_}; + case 14: + var rest$16=fmt$0[3],fmtty=fmt$0[2]; + return function(param) + {var fmt=param[1]; + return make_iprintf(k$0,o,concat_fmt(recast(fmt,fmtty),rest$16))}; + case 15: + var + rest$17=fmt$0[1], + _sh_=make_iprintf(k$0,o,rest$17), + _si_=function(_su_){return _sh_}; + return function(_st_){return _si_}; + case 16: + var rest$18=fmt$0[1],_sj_=make_iprintf(k$0,o,rest$18); + return function(_ss_){return _sj_}; + case 17:var fmt$4=fmt$0[2],fmt$0=fmt$4;continue; + case 18: + var _sk_=fmt$0[1]; + if(0 === _sk_[0]) + {var + rest$19=fmt$0[2], + match=_sk_[1], + fmt$5=match[1], + k$3= + function(k,rest) + {function k$0(koc){return make_iprintf(k,koc,rest)}return k$0}, + k$1=k$3(k$0,rest$19), + k$0=k$1, + fmt$0=fmt$5; + continue} + var + rest$20=fmt$0[2], + match$0=_sk_[1], + fmt$6=match$0[1], + k$4= + function(k,rest) + {function k$0(koc){return make_iprintf(k,koc,rest)}return k$0}, + k$2=k$4(k$0,rest$20), + k$0=k$2, + fmt$0=fmt$6; + continue; + case 19:throw [0,Assert_failure,_aA_]; + case 20: + var rest$21=fmt$0[3],_sl_=make_iprintf(k$0,o,rest$21); + return function(_sr_){return _sl_}; + case 21: + var rest$22=fmt$0[2],_sm_=make_iprintf(k$0,o,rest$22); + return function(_sq_){return _sm_}; + case 22: + var rest$23=fmt$0[1],_sn_=make_iprintf(k$0,o,rest$23); + return function(_sp_){return _sn_}; + case 23: + var rest$24=fmt$0[2],ign=fmt$0[1],_so_=0; + return make_ignored_param + (function(param){return caml_call1(k$0,o)},_so_,ign,rest$24); + default: + var rest$25=fmt$0[3],arity=fmt$0[1]; + if(counter >= 50) + return caml_trampoline_return + (fn_of_custom_arity$0,[0,k$0,o,rest$25,arity]); + var counter$0=counter + 1 | 0; + return fn_of_custom_arity$0(counter$0,k$0,o,rest$25,arity)}}} + function fn_of_custom_arity$0(counter,k,o,fmt,param) + {if(param) + {var arity=param[1],_rZ_=fn_of_custom_arity(k,o,fmt,arity); + return function(_r0_){return _rZ_}} + if(counter >= 50) + return caml_trampoline_return(make_iprintf$0,[0,k,o,fmt]); + var counter$0=counter + 1 | 0; + return make_iprintf$0(counter$0,k,o,fmt)} + function make_iprintf(k,o,fmt) + {return caml_trampoline(make_iprintf$0(0,k,o,fmt))} + function fn_of_custom_arity(k,o,fmt,param) + {return caml_trampoline(fn_of_custom_arity$0(0,k,o,fmt,param))} + function output_acc(o,acc) + {var acc$0=acc; + for(;;) + {if(typeof acc$0 === "number")return 0; + switch(acc$0[0]) + {case 0: + var + fmting_lit=acc$0[2], + p=acc$0[1], + s=string_of_formatting_lit(fmting_lit); + output_acc(o,p); + return output_string(o,s); + case 1: + var _rX_=acc$0[2],_rY_=acc$0[1]; + if(0 === _rX_[0]) + {var acc$1=_rX_[1]; + output_acc(o,_rY_); + output_string(o,cst$30); + var acc$0=acc$1; + continue} + var acc$2=_rX_[1]; + output_acc(o,_rY_); + output_string(o,cst$31); + var acc$0=acc$2; + continue; + case 6: + var f=acc$0[2],p$2=acc$0[1]; + output_acc(o,p$2); + return caml_call1(f,o); + case 7:var p$3=acc$0[1];output_acc(o,p$3);return caml_ml_flush(o); + case 8: + var msg=acc$0[2],p$4=acc$0[1]; + output_acc(o,p$4); + return invalid_arg(msg); + case 2: + case 4: + var s$0=acc$0[2],p$0=acc$0[1]; + output_acc(o,p$0); + return output_string(o,s$0); + default: + var c=acc$0[2],p$1=acc$0[1]; + output_acc(o,p$1); + return caml_ml_output_char(o,c)}}} + function bufput_acc(b,acc) + {var acc$0=acc; + for(;;) + {if(typeof acc$0 === "number")return 0; + switch(acc$0[0]) + {case 0: + var + fmting_lit=acc$0[2], + p=acc$0[1], + s=string_of_formatting_lit(fmting_lit); + bufput_acc(b,p); + return add_string(b,s); + case 1: + var _rV_=acc$0[2],_rW_=acc$0[1]; + if(0 === _rV_[0]) + {var acc$1=_rV_[1]; + bufput_acc(b,_rW_); + add_string(b,cst$32); + var acc$0=acc$1; + continue} + var acc$2=_rV_[1]; + bufput_acc(b,_rW_); + add_string(b,cst$33); + var acc$0=acc$2; + continue; + case 6: + var f=acc$0[2],p$2=acc$0[1]; + bufput_acc(b,p$2); + return caml_call1(f,b); + case 7:var acc$3=acc$0[1],acc$0=acc$3;continue; + case 8: + var msg=acc$0[2],p$3=acc$0[1]; + bufput_acc(b,p$3); + return invalid_arg(msg); + case 2: + case 4: + var s$0=acc$0[2],p$0=acc$0[1]; + bufput_acc(b,p$0); + return add_string(b,s$0); + default: + var c=acc$0[2],p$1=acc$0[1];bufput_acc(b,p$1);return add_char(b,c)}}} + function strput_acc(b,acc) + {var acc$0=acc; + for(;;) + {if(typeof acc$0 === "number")return 0; + switch(acc$0[0]) + {case 0: + var + fmting_lit=acc$0[2], + p=acc$0[1], + s=string_of_formatting_lit(fmting_lit); + strput_acc(b,p); + return add_string(b,s); + case 1: + var _rT_=acc$0[2],_rU_=acc$0[1]; + if(0 === _rT_[0]) + {var acc$1=_rT_[1]; + strput_acc(b,_rU_); + add_string(b,cst$34); + var acc$0=acc$1; + continue} + var acc$2=_rT_[1]; + strput_acc(b,_rU_); + add_string(b,cst$35); + var acc$0=acc$2; + continue; + case 6: + var f=acc$0[2],p$2=acc$0[1]; + strput_acc(b,p$2); + return add_string(b,caml_call1(f,0)); + case 7:var acc$3=acc$0[1],acc$0=acc$3;continue; + case 8: + var msg=acc$0[2],p$3=acc$0[1]; + strput_acc(b,p$3); + return invalid_arg(msg); + case 2: + case 4: + var s$0=acc$0[2],p$0=acc$0[1]; + strput_acc(b,p$0); + return add_string(b,s$0); + default: + var c=acc$0[2],p$1=acc$0[1];strput_acc(b,p$1);return add_char(b,c)}}} + function failwith_message(param) + {var fmt=param[1],buf=create$2(256); + function k(acc){strput_acc(buf,acc);return failwith(contents(buf))} + return make_printf(k,0,fmt)} + function open_box_of_string(str) + {if(caml_string_equal(str,cst$36))return _aB_; + var len=caml_ml_string_length(str); + function invalid_box(param) + {return caml_call1(failwith_message(_aC_),str)} + function parse_spaces(i) + {var i$0=i; + for(;;) + {if(i$0 === len)return i$0; + var match=caml_string_get(str,i$0); + if(9 !== match && 32 !== match)return i$0; + var i$1=i$0 + 1 | 0,i$0=i$1}} + function parse_lword(i,j) + {var j$0=j; + for(;;) + {if(j$0 === len)return j$0; + var match=caml_string_get(str,j$0); + if(25 < match - 97 >>> 0)return j$0; + var j$1=j$0 + 1 | 0,j$0=j$1}} + function parse_int(i,j) + {var j$0=j; + for(;;) + {if(j$0 === len)return j$0; + var match=caml_string_get(str,j$0),switch$0=0; + if(48 <= match) + {if(58 > match)switch$0 = 1} + else + if(45 === match)switch$0 = 1; + if(! switch$0)return j$0; + var j$1=j$0 + 1 | 0,j$0=j$1}} + var + wstart=parse_spaces(0), + wend=parse_lword(wstart,wstart), + box_name=sub$0(str,wstart,wend - wstart | 0), + nstart=parse_spaces(wend), + nend=parse_int(nstart,nstart); + if(nstart === nend) + var indent=0; + else + try + {var + _rR_=caml_int_of_string(sub$0(str,nstart,nend - nstart | 0)), + indent=_rR_} + catch(_rS_) + {_rS_ = caml_wrap_exception(_rS_); + if(_rS_[1] !== Failure)throw _rS_; + var indent=invalid_box(0)} + var exp_end=parse_spaces(nend); + if(exp_end !== len)invalid_box(0); + var switch$0=0; + if + (caml_string_notequal(box_name,cst$37) + && + caml_string_notequal(box_name,cst_b$0)) + var + box_type= + caml_string_notequal(box_name,cst_h) + ?caml_string_notequal(box_name,cst_hov) + ?caml_string_notequal(box_name,cst_hv) + ?caml_string_notequal(box_name,cst_v)?invalid_box(0):1 + :2 + :3 + :0; + else + switch$0 = 1; + if(switch$0)var box_type=4; + return [0,indent,box_type]} + function make_padding_fmt_ebb(pad,fmt) + {if(typeof pad === "number")return [0,0,fmt]; + if(0 === pad[0]){var w=pad[2],s=pad[1];return [0,[0,s,w],fmt]} + var s$0=pad[1]; + return [0,[1,s$0],fmt]} + function make_padprec_fmt_ebb(pad,prec,fmt) + {if(typeof prec === "number") + var match=prec?[0,1,fmt]:[0,0,fmt]; + else + var p=prec[1],match=[0,[0,p],fmt]; + var prec$0=match[1]; + if(typeof pad === "number")return [0,0,prec$0,fmt]; + if(0 === pad[0]){var w=pad[2],s=pad[1];return [0,[0,s,w],prec$0,fmt]} + var s$0=pad[1]; + return [0,[1,s$0],prec$0,fmt]} + function fmt_ebb_of_string(legacy_behavior,str) + {if(legacy_behavior) + var flag=legacy_behavior[1],legacy_behavior$0=flag; + else + var legacy_behavior$0=1; + function invalid_format_message(str_ind,msg) + {return caml_call3(failwith_message(_aD_),str,str_ind,msg)} + function unexpected_end_of_format(end_ind) + {return invalid_format_message(end_ind,cst_unexpected_end_of_format)} + function invalid_format_without(str_ind,c,s) + {return caml_call4(failwith_message(_aE_),str,str_ind,c,s)} + function expected_character(str_ind,expected,read) + {return caml_call4(failwith_message(_aF_),str,str_ind,expected,read)} + function add_literal(lit_start,str_ind,fmt) + {var size=str_ind - lit_start | 0; + return 0 === size + ?[0,fmt] + :1 === size + ?[0,[12,caml_string_get(str,lit_start),fmt]] + :[0,[11,sub$0(str,lit_start,size),fmt]]} + function parse(lit_start,end_ind) + {var str_ind=lit_start; + for(;;) + {if(str_ind === end_ind)return add_literal(lit_start,str_ind,0); + var match=caml_string_get(str,str_ind); + if(37 === match) + {var str_ind$2=str_ind + 1 | 0; + if(str_ind$2 === end_ind)unexpected_end_of_format(end_ind); + var + match$1=caml_string_get(str,str_ind$2), + _rQ_= + 95 === match$1 + ?parse_flags(str_ind,str_ind$2 + 1 | 0,end_ind,1) + :parse_flags(str_ind,str_ind$2,end_ind,0), + fmt_rest=_rQ_[1]; + return add_literal(lit_start,str_ind,fmt_rest)} + if(64 !== match) + {var str_ind$1=str_ind + 1 | 0,str_ind=str_ind$1;continue} + var str_ind$0=str_ind + 1 | 0; + if(str_ind$0 === end_ind) + var match$0=_aR_; + else + {var c=caml_string_get(str,str_ind$0),switch$0=0; + if(65 <= c) + if(94 <= c) + {var switcher=c - 123 | 0; + if(2 < switcher >>> 0) + switch$0 = 1; + else + switch(switcher) + {case 0: + var match$0=parse_tag(1,str_ind$0 + 1 | 0,end_ind);break; + case 1:switch$0 = 1;break; + default: + var + match$3=parse(str_ind$0 + 1 | 0,end_ind), + fmt_rest$2=match$3[1], + match$0=[0,[17,1,fmt_rest$2]]}} + else + if(91 <= c) + switch(c - 91 | 0) + {case 0: + var match$0=parse_tag(0,str_ind$0 + 1 | 0,end_ind);break; + case 1:switch$0 = 1;break; + default: + var + match$4=parse(str_ind$0 + 1 | 0,end_ind), + fmt_rest$3=match$4[1], + match$0=[0,[17,0,fmt_rest$3]]} + else + switch$0 = 1; + else + if(10 === c) + var + match$5=parse(str_ind$0 + 1 | 0,end_ind), + fmt_rest$4=match$5[1], + match$0=[0,[17,3,fmt_rest$4]]; + else + if(32 <= c) + switch(c - 32 | 0) + {case 0: + var + match$6=parse(str_ind$0 + 1 | 0,end_ind), + fmt_rest$5=match$6[1], + match$0=[0,[17,_aS_,fmt_rest$5]]; + break; + case 5: + var switch$1=0; + if + ((str_ind$0 + 1 | 0) + < + end_ind + && + 37 + === + caml_string_get(str,str_ind$0 + 1 | 0)) + {var + match$7=parse(str_ind$0 + 2 | 0,end_ind), + fmt_rest$6=match$7[1], + match$0=[0,[17,6,fmt_rest$6]]; + switch$1 = 1} + if(! switch$1) + var + match$8=parse(str_ind$0,end_ind), + fmt_rest$7=match$8[1], + match$0=[0,[12,64,fmt_rest$7]]; + break; + case 12: + var + match$9=parse(str_ind$0 + 1 | 0,end_ind), + fmt_rest$8=match$9[1], + match$0=[0,[17,_aT_,fmt_rest$8]]; + break; + case 14: + var + match$10=parse(str_ind$0 + 1 | 0,end_ind), + fmt_rest$9=match$10[1], + match$0=[0,[17,4,fmt_rest$9]]; + break; + case 27: + var match$0=parse_good_break(str_ind$0 + 1 | 0,end_ind); + break; + case 28: + var match$0=parse_magic_size(str_ind$0 + 1 | 0,end_ind); + break; + case 31: + var + match$11=parse(str_ind$0 + 1 | 0,end_ind), + fmt_rest$10=match$11[1], + match$0=[0,[17,2,fmt_rest$10]]; + break; + case 32: + var + match$12=parse(str_ind$0 + 1 | 0,end_ind), + fmt_rest$11=match$12[1], + match$0=[0,[17,5,fmt_rest$11]]; + break; + default:switch$0 = 1} + else + switch$0 = 1; + if(switch$0) + var + match$2=parse(str_ind$0 + 1 | 0,end_ind), + fmt_rest$1=match$2[1], + match$0=[0,[17,[2,c],fmt_rest$1]]} + var fmt_rest$0=match$0[1]; + return add_literal(lit_start,str_ind,fmt_rest$0)}} + function parse_conversion + (pct_ind,str_ind,end_ind,plus,hash,space,ign,pad,prec,padprec,symb) + {var + plus_used=[0,0], + hash_used=[0,0], + space_used=[0,0], + ign_used=[0,0], + pad_used=[0,0], + prec_used=[0,0]; + function get_plus(param){plus_used[1] = 1;return plus} + function get_hash(param){hash_used[1] = 1;return hash} + function get_space(param){space_used[1] = 1;return space} + function get_ign(param){ign_used[1] = 1;return ign} + function get_pad(param){pad_used[1] = 1;return pad} + function get_prec(param){prec_used[1] = 1;return prec} + function get_padprec(param){pad_used[1] = 1;return padprec} + function get_int_pad(param) + {var pad=get_pad(0),match=get_prec(0); + if(typeof match === "number" && ! match)return pad; + if(typeof pad === "number")return 0; + if(0 !== pad[0]) + return 2 <= pad[1] + ?legacy_behavior$0 + ?_aL_ + :incompatible_flag(pct_ind,str_ind,48,cst_precision$1) + :pad; + if(2 > pad[1])return pad; + var n=pad[2]; + return legacy_behavior$0 + ?[0,1,n] + :incompatible_flag(pct_ind,str_ind,48,cst_precision$0)} + function check_no_0(symb,pad) + {if(typeof pad === "number")return pad; + if(0 !== pad[0]) + return 2 <= pad[1] + ?legacy_behavior$0 + ?_aM_ + :incompatible_flag(pct_ind,str_ind,symb,cst_0$1) + :pad; + if(2 > pad[1])return pad; + var width=pad[2]; + return legacy_behavior$0 + ?[0,1,width] + :incompatible_flag(pct_ind,str_ind,symb,cst_0$0)} + function opt_of_pad(c,pad) + {if(typeof pad === "number")return 0; + if(0 === pad[0]) + switch(pad[1]) + {case 0: + var width=pad[2]; + return legacy_behavior$0 + ?[0,width] + :incompatible_flag(pct_ind,str_ind,c,cst$38); + case 1:var width$0=pad[2];return [0,width$0]; + default: + var width$1=pad[2]; + return legacy_behavior$0 + ?[0,width$1] + :incompatible_flag(pct_ind,str_ind,c,cst_0$2)} + return incompatible_flag(pct_ind,str_ind,c,cst$39)} + function get_pad_opt(c){return opt_of_pad(c,get_pad(0))} + function get_padprec_opt(c){return opt_of_pad(c,get_padprec(0))} + var switch$0=0; + if(124 <= symb) + switch$0 = 1; + else + switch(symb) + {case 33: + var + match$6=parse(str_ind,end_ind), + fmt_rest$5=match$6[1], + fmt_result=[0,[10,fmt_rest$5]]; + break; + case 40: + var + sub_end=search_subformat_end(str_ind,end_ind,41), + match$8=parse(sub_end + 2 | 0,end_ind), + fmt_rest$7=match$8[1], + match$9=parse(str_ind,sub_end), + sub_fmt=match$9[1], + sub_fmtty=fmtty_of_fmt(sub_fmt); + if(get_ign(0)) + var + ignored$2=[9,get_pad_opt(95),sub_fmtty], + _rn_=[0,[23,ignored$2,fmt_rest$7]]; + else + var _rn_=[0,[14,get_pad_opt(40),sub_fmtty,fmt_rest$7]]; + var fmt_result=_rn_; + break; + case 44:var fmt_result=parse(str_ind,end_ind);break; + case 67: + var + match$12=parse(str_ind,end_ind), + fmt_rest$10=match$12[1], + _rp_=get_ign(0)?[0,[23,1,fmt_rest$10]]:[0,[1,fmt_rest$10]], + fmt_result=_rp_; + break; + case 78: + var + match$16=parse(str_ind,end_ind), + fmt_rest$14=match$16[1], + counter$0=2; + if(get_ign(0)) + var ignored$6=[11,counter$0],_rv_=[0,[23,ignored$6,fmt_rest$14]]; + else + var _rv_=[0,[21,counter$0,fmt_rest$14]]; + var fmt_result=_rv_; + break; + case 83: + var + pad$6=check_no_0(symb,get_padprec(0)), + match$17=parse(str_ind,end_ind), + fmt_rest$15=match$17[1]; + if(get_ign(0)) + var + ignored$7=[1,get_padprec_opt(95)], + _rw_=[0,[23,ignored$7,fmt_rest$15]]; + else + var + match$18=make_padding_fmt_ebb(pad$6,fmt_rest$15), + fmt_rest$16=match$18[2], + pad$7=match$18[1], + _rw_=[0,[3,pad$7,fmt_rest$16]]; + var fmt_result=_rw_; + break; + case 91: + if(str_ind === end_ind)unexpected_end_of_format(end_ind); + var + char_set=create_char_set(0), + add_char=function(c){return add_in_char_set(char_set,c)}, + add_range= + function(c$0,c) + {if(c >= c$0) + {var i=c$0; + for(;;) + {add_in_char_set(char_set,char_of_int(i)); + var _rP_=i + 1 | 0; + if(c !== i){var i=_rP_;continue} + break}} + return 0}, + fail_single_percent= + function(str_ind) + {return caml_call2(failwith_message(_aV_),str,str_ind)}, + parse_char_set_content= + function(counter,str_ind,end_ind) + {var str_ind$0=str_ind; + for(;;) + {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); + var c=caml_string_get(str,str_ind$0); + if(45 === c) + {add_char(45); + var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1; + continue} + if(93 === c)return str_ind$0 + 1 | 0; + var _rO_=str_ind$0 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_after_char$0,[0,_rO_,end_ind,c]); + var counter$0=counter + 1 | 0; + return parse_char_set_after_char$0(counter$0,_rO_,end_ind,c)}}, + parse_char_set_after_char$0= + function(counter,str_ind,end_ind,c) + {var str_ind$0=str_ind,c$0=c; + for(;;) + {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); + var c$1=caml_string_get(str,str_ind$0),switch$0=0; + if(46 <= c$1) + {if(64 === c$1) + switch$0 = 1; + else + if(93 === c$1){add_char(c$0);return str_ind$0 + 1 | 0}} + else + if(37 === c$1) + switch$0 = 1; + else + if(45 <= c$1) + {var str_ind$2=str_ind$0 + 1 | 0; + if(str_ind$2 === end_ind)unexpected_end_of_format(end_ind); + var c$2=caml_string_get(str,str_ind$2); + if(37 === c$2) + {if((str_ind$2 + 1 | 0) === end_ind) + unexpected_end_of_format(end_ind); + var c$3=caml_string_get(str,str_ind$2 + 1 | 0); + if(37 !== c$3 && 64 !== c$3) + return fail_single_percent(str_ind$2); + add_range(c$0,c$3); + var _rM_=str_ind$2 + 2 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content,[0,_rM_,end_ind]); + var counter$2=counter + 1 | 0; + return parse_char_set_content(counter$2,_rM_,end_ind)} + if(93 === c$2) + {add_char(c$0);add_char(45);return str_ind$2 + 1 | 0} + add_range(c$0,c$2); + var _rN_=str_ind$2 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content,[0,_rN_,end_ind]); + var counter$1=counter + 1 | 0; + return parse_char_set_content(counter$1,_rN_,end_ind)} + if(switch$0 && 37 === c$0) + {add_char(c$1); + var _rL_=str_ind$0 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content,[0,_rL_,end_ind]); + var counter$0=counter + 1 | 0; + return parse_char_set_content(counter$0,_rL_,end_ind)} + if(37 === c$0)fail_single_percent(str_ind$0); + add_char(c$0); + var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1,c$0=c$1}}, + parse_char_set_after_char= + function(str_ind,end_ind,c) + {return caml_trampoline + (parse_char_set_after_char$0(0,str_ind,end_ind,c))}; + if(str_ind === end_ind)unexpected_end_of_format(end_ind); + var match$31=caml_string_get(str,str_ind); + if(94 === match$31) + var str_ind$0=str_ind + 1 | 0,reverse=1,str_ind$1=str_ind$0; + else + var reverse=0,str_ind$1=str_ind; + if(str_ind$1 === end_ind)unexpected_end_of_format(end_ind); + var + c=caml_string_get(str,str_ind$1), + next_ind=parse_char_set_after_char(str_ind$1 + 1 | 0,end_ind,c), + char_set$0=freeze_char_set(char_set), + char_set$1=reverse?rev_char_set(char_set$0):char_set$0, + match$21=parse(next_ind,end_ind), + fmt_rest$19=match$21[1]; + if(get_ign(0)) + var + ignored$9=[10,get_pad_opt(95),char_set$1], + _rB_=[0,[23,ignored$9,fmt_rest$19]]; + else + var _rB_=[0,[20,get_pad_opt(91),char_set$1,fmt_rest$19]]; + var fmt_result=_rB_; + break; + case 97: + var + match$22=parse(str_ind,end_ind), + fmt_rest$20=match$22[1], + fmt_result=[0,[15,fmt_rest$20]]; + break; + case 99: + var + char_format= + function(fmt_rest) + {return get_ign(0)?[0,[23,0,fmt_rest]]:[0,[0,fmt_rest]]}, + match$23=parse(str_ind,end_ind), + fmt_rest$21=match$23[1], + match$24=get_pad_opt(99); + if(match$24) + {if(0 === match$24[1]) + var + _rC_=get_ign(0)?[0,[23,3,fmt_rest$21]]:[0,[22,fmt_rest$21]], + _rD_=_rC_; + else + var + _rD_= + legacy_behavior$0 + ?char_format(fmt_rest$21) + :invalid_format_message + (str_ind,cst_non_zero_widths_are_unsupp); + var _rE_=_rD_} + else + var _rE_=char_format(fmt_rest$21); + var fmt_result=_rE_; + break; + case 114: + var + match$25=parse(str_ind,end_ind), + fmt_rest$22=match$25[1], + _rF_=get_ign(0)?[0,[23,2,fmt_rest$22]]:[0,[19,fmt_rest$22]], + fmt_result=_rF_; + break; + case 115: + var + pad$9=check_no_0(symb,get_padprec(0)), + match$26=parse(str_ind,end_ind), + fmt_rest$23=match$26[1]; + if(get_ign(0)) + var + ignored$10=[0,get_padprec_opt(95)], + _rG_=[0,[23,ignored$10,fmt_rest$23]]; + else + var + match$27=make_padding_fmt_ebb(pad$9,fmt_rest$23), + fmt_rest$24=match$27[2], + pad$10=match$27[1], + _rG_=[0,[2,pad$10,fmt_rest$24]]; + var fmt_result=_rG_; + break; + case 116: + var + match$28=parse(str_ind,end_ind), + fmt_rest$25=match$28[1], + fmt_result=[0,[16,fmt_rest$25]]; + break; + case 123: + var + sub_end$0=search_subformat_end(str_ind,end_ind,125), + match$29=parse(str_ind,sub_end$0), + sub_fmt$0=match$29[1], + match$30=parse(sub_end$0 + 2 | 0,end_ind), + fmt_rest$26=match$30[1], + sub_fmtty$0=fmtty_of_fmt(sub_fmt$0); + if(get_ign(0)) + var + ignored$11=[8,get_pad_opt(95),sub_fmtty$0], + _rH_=[0,[23,ignored$11,fmt_rest$26]]; + else + var _rH_=[0,[13,get_pad_opt(123),sub_fmtty$0,fmt_rest$26]]; + var fmt_result=_rH_; + break; + case 66: + case 98: + var + pad$3=check_no_0(symb,get_padprec(0)), + match$10=parse(str_ind,end_ind), + fmt_rest$8=match$10[1]; + if(get_ign(0)) + var + ignored$3=[7,get_padprec_opt(95)], + _ro_=[0,[23,ignored$3,fmt_rest$8]]; + else + var + match$11=make_padding_fmt_ebb(pad$3,fmt_rest$8), + fmt_rest$9=match$11[2], + pad$4=match$11[1], + _ro_=[0,[9,pad$4,fmt_rest$9]]; + var fmt_result=_ro_; + break; + case 37: + case 64: + var + match$7=parse(str_ind,end_ind), + fmt_rest$6=match$7[1], + fmt_result=[0,[12,symb,fmt_rest$6]]; + break; + case 76: + case 108: + case 110: + var switch$1=0; + if(str_ind !== end_ind) + {var + symb$0=caml_string_get(str,str_ind), + _rI_=symb$0 - 88 | 0, + switch$2=0; + if(32 >= _rI_ >>> 0) + switch(_rI_) + {case 0: + case 12: + case 17: + case 23: + case 29: + case 32:var _ru_=1;switch$2 = 1;break + } + if(! switch$2)var _ru_=0; + if(_ru_){switch$0 = 1;switch$1 = 1}} + if(! switch$1) + {var + match$15=parse(str_ind,end_ind), + fmt_rest$13=match$15[1], + switch$3=0; + if(108 <= symb) + {if(111 > symb) + switch(symb - 108 | 0) + {case 0:var counter=0;switch$3 = 1;break; + case 1:break; + default:var counter=1;switch$3 = 1}} + else + if(76 === symb){var counter=2;switch$3 = 1} + if(! switch$3)throw [0,Assert_failure,_aZ_]; + if(get_ign(0)) + var ignored$5=[11,counter],_rt_=[0,[23,ignored$5,fmt_rest$13]]; + else + var _rt_=[0,[21,counter,fmt_rest$13]]; + var fmt_result=_rt_} + break; + case 32: + case 35: + case 43: + case 45: + case 95: + var + fmt_result= + caml_call3(failwith_message(_aQ_),str,pct_ind,symb); + break; + case 88: + case 100: + case 105: + case 111: + case 117: + case 120: + var + _rx_=get_space(0), + _ry_=get_hash(0), + iconv$2= + compute_int_conv(pct_ind,str_ind,get_plus(0),_ry_,_rx_,symb), + match$19=parse(str_ind,end_ind), + fmt_rest$17=match$19[1]; + if(get_ign(0)) + var + ignored$8=[2,iconv$2,get_pad_opt(95)], + _rz_=[0,[23,ignored$8,fmt_rest$17]]; + else + var + _rA_=get_prec(0), + match$20=make_padprec_fmt_ebb(get_int_pad(0),_rA_,fmt_rest$17), + fmt_rest$18=match$20[3], + prec$4=match$20[2], + pad$8=match$20[1], + _rz_=[0,[4,iconv$2,pad$8,prec$4,fmt_rest$18]]; + var fmt_result=_rz_; + break; + case 69: + case 70: + case 71: + case 72: + case 101: + case 102: + case 103: + case 104: + var + space$1=get_space(0), + hash$1=get_hash(0), + plus$2=get_plus(0), + flag= + plus$2 + ?space$1 + ?legacy_behavior$0 + ?1 + :incompatible_flag(pct_ind,str_ind,32,cst$50) + :1 + :space$1?2:0, + switch$4=0; + if(73 <= symb) + {var switcher=symb - 101 | 0; + if(3 < switcher >>> 0) + switch$4 = 1; + else + {switch(switcher) + {case 0:var _rJ_=1;break; + case 1:var _rJ_=0;break; + case 2:var _rJ_=3;break; + default:var _rJ_=6} + var kind=_rJ_}} + else + if(69 <= symb) + {var switch$5=0; + switch(symb - 69 | 0) + {case 0:var _rK_=2;break; + case 1:switch$4 = 1;switch$5 = 1;break; + case 2:var _rK_=4;break; + default:var _rK_=7} + if(! switch$5)var kind=_rK_} + else + switch$4 = 1; + if(switch$4) + {var switch$6=0; + if(hash$1) + if(70 === symb)var kind=8;else switch$6 = 1; + else + if(70 === symb)var kind=5;else switch$6 = 1; + if(switch$6)throw [0,Assert_failure,_a1_]} + var + fconv=[0,flag,kind], + match$13=parse(str_ind,end_ind), + fmt_rest$11=match$13[1]; + if(get_ign(0)) + {var match=get_prec(0); + if(typeof match === "number") + var _rq_=match?incompatible_flag(pct_ind,str_ind,95,cst$40):0; + else + var ndec=match[1],_rq_=[0,ndec]; + var + ignored$4=[6,get_pad_opt(95),_rq_], + _rr_=[0,[23,ignored$4,fmt_rest$11]]} + else + var + _rs_=get_prec(0), + match$14=make_padprec_fmt_ebb(get_pad(0),_rs_,fmt_rest$11), + fmt_rest$12=match$14[3], + prec$3=match$14[2], + pad$5=match$14[1], + _rr_=[0,[8,fconv,pad$5,prec$3,fmt_rest$12]]; + var fmt_result=_rr_; + break; + default:switch$0 = 1} + if(switch$0) + {var switch$7=0; + if(108 <= symb) + if(111 <= symb) + switch$7 = 1; + else + {var switch$8=0; + switch(symb - 108 | 0) + {case 0: + var + _q9_=caml_string_get(str,str_ind), + _q__=get_space(0), + _q$_=get_hash(0), + iconv= + compute_int_conv + (pct_ind,str_ind + 1 | 0,get_plus(0),_q$_,_q__,_q9_), + match$0=parse(str_ind + 1 | 0,end_ind), + fmt_rest=match$0[1]; + if(get_ign(0)) + var + ignored=[3,iconv,get_pad_opt(95)], + _ra_=[0,[23,ignored,fmt_rest]]; + else + var + _rc_=get_prec(0), + match$1=make_padprec_fmt_ebb(get_int_pad(0),_rc_,fmt_rest), + fmt_rest$0=match$1[3], + prec$0=match$1[2], + pad$0=match$1[1], + _ra_=[0,[5,iconv,pad$0,prec$0,fmt_rest$0]]; + var _rb_=_ra_; + break; + case 1:switch$7 = 1;switch$8 = 1;break; + default: + var + _rd_=caml_string_get(str,str_ind), + _re_=get_space(0), + _rf_=get_hash(0), + iconv$0= + compute_int_conv + (pct_ind,str_ind + 1 | 0,get_plus(0),_rf_,_re_,_rd_), + match$2=parse(str_ind + 1 | 0,end_ind), + fmt_rest$1=match$2[1]; + if(get_ign(0)) + var + ignored$0=[4,iconv$0,get_pad_opt(95)], + _rg_=[0,[23,ignored$0,fmt_rest$1]]; + else + var + _rh_=get_prec(0), + match$3=make_padprec_fmt_ebb(get_int_pad(0),_rh_,fmt_rest$1), + fmt_rest$2=match$3[3], + prec$1=match$3[2], + pad$1=match$3[1], + _rg_=[0,[6,iconv$0,pad$1,prec$1,fmt_rest$2]]; + var _rb_=_rg_} + if(! switch$8)var fmt_result=_rb_} + else + if(76 === symb) + {var + _ri_=caml_string_get(str,str_ind), + _rj_=get_space(0), + _rk_=get_hash(0), + iconv$1= + compute_int_conv + (pct_ind,str_ind + 1 | 0,get_plus(0),_rk_,_rj_,_ri_), + match$4=parse(str_ind + 1 | 0,end_ind), + fmt_rest$3=match$4[1]; + if(get_ign(0)) + var + ignored$1=[5,iconv$1,get_pad_opt(95)], + _rl_=[0,[23,ignored$1,fmt_rest$3]]; + else + var + _rm_=get_prec(0), + match$5=make_padprec_fmt_ebb(get_int_pad(0),_rm_,fmt_rest$3), + fmt_rest$4=match$5[3], + prec$2=match$5[2], + pad$2=match$5[1], + _rl_=[0,[7,iconv$1,pad$2,prec$2,fmt_rest$4]]; + var fmt_result=_rl_} + else + switch$7 = 1; + if(switch$7) + var + fmt_result= + caml_call3(failwith_message(_aN_),str,str_ind - 1 | 0,symb)} + if(1 - legacy_behavior$0) + {var _q0_=1 - plus_used[1],plus$0=_q0_?plus:_q0_; + if(plus$0)incompatible_flag(pct_ind,str_ind,symb,cst$41); + var _q1_=1 - hash_used[1],hash$0=_q1_?hash:_q1_; + if(hash$0)incompatible_flag(pct_ind,str_ind,symb,cst$42); + var _q2_=1 - space_used[1],space$0=_q2_?space:_q2_; + if(space$0)incompatible_flag(pct_ind,str_ind,symb,cst$43); + var _q3_=1 - pad_used[1],_q4_=_q3_?caml_notequal([0,pad],_aO_):_q3_; + if(_q4_)incompatible_flag(pct_ind,str_ind,symb,cst_padding$0); + var + _q5_=1 - prec_used[1], + _q6_=_q5_?caml_notequal([0,prec],_aP_):_q5_; + if(_q6_) + {var _q7_=ign?95:symb; + incompatible_flag(pct_ind,str_ind,_q7_,cst_precision$2)} + var plus$1=ign?plus:ign; + if(plus$1)incompatible_flag(pct_ind,str_ind,95,cst$44)} + var _q8_=1 - ign_used[1],ign$0=_q8_?ign:_q8_; + if(ign$0) + {var switch$9=0; + if(38 <= symb) + {if(44 !== symb && 64 !== symb)switch$9 = 1} + else + if(33 !== symb && 37 > symb)switch$9 = 1; + var switch$10=0; + if(switch$9 || ! legacy_behavior$0)switch$10 = 1; + if(switch$10)incompatible_flag(pct_ind,str_ind,symb,cst$45)} + return fmt_result} + function parse_after_precision + (pct_ind,str_ind,end_ind,minus,plus,hash,space,ign,pad,prec) + {if(str_ind === end_ind)unexpected_end_of_format(end_ind); + function parse_conv(padprec) + {return parse_conversion + (pct_ind, + str_ind + 1 | 0, + end_ind, + plus, + hash, + space, + ign, + pad, + prec, + padprec, + caml_string_get(str,str_ind))} + if(typeof pad !== "number")return parse_conv(pad); + if(typeof prec === "number" && ! prec)return parse_conv(0); + if(minus) + {if(typeof prec === "number")return parse_conv(_aJ_); + var n=prec[1]; + return parse_conv([0,0,n])} + if(typeof prec === "number")return parse_conv(_aK_); + var n$0=prec[1]; + return parse_conv([0,1,n$0])} + function parse_after_padding + (pct_ind,str_ind,end_ind,minus,plus,hash,space,ign,pad) + {if(str_ind === end_ind)unexpected_end_of_format(end_ind); + var symb=caml_string_get(str,str_ind); + if(46 !== symb) + return parse_conversion + (pct_ind, + str_ind + 1 | 0, + end_ind, + plus, + hash, + space, + ign, + pad, + 0, + pad, + symb); + var str_ind$0=str_ind + 1 | 0; + if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); + function parse_literal(minus,str_ind) + {var + match=parse_positive(str_ind,end_ind,0), + prec=match[2], + new_ind=match[1]; + return parse_after_precision + (pct_ind, + new_ind, + end_ind, + minus, + plus, + hash, + space, + ign, + pad, + [0,prec])} + var symb$0=caml_string_get(str,str_ind$0); + if(48 <= symb$0) + {if(58 > symb$0)return parse_literal(minus,str_ind$0)} + else + if(42 <= symb$0) + switch(symb$0 - 42 | 0) + {case 0: + return parse_after_precision + (pct_ind, + str_ind$0 + 1 | 0, + end_ind, + minus, + plus, + hash, + space, + ign, + pad, + 1); + case 1: + case 3: + if(legacy_behavior$0) + {var + _qZ_=str_ind$0 + 1 | 0, + minus$0=minus || (45 === symb$0?1:0); + return parse_literal(minus$0,_qZ_)} + break + } + return legacy_behavior$0 + ?parse_after_precision + (pct_ind, + str_ind$0, + end_ind, + minus, + plus, + hash, + space, + ign, + pad, + _aI_) + :invalid_format_without(str_ind$0 - 1 | 0,46,cst_precision)} + function parse_flags(pct_ind,str_ind,end_ind,ign) + {var zero=[0,0],minus=[0,0],plus=[0,0],space=[0,0],hash=[0,0]; + function set_flag(str_ind,flag) + {var _qW_=flag[1],_qX_=_qW_?1 - legacy_behavior$0:_qW_; + if(_qX_) + {var _qY_=caml_string_get(str,str_ind); + caml_call3(failwith_message(_aG_),str,str_ind,_qY_)} + flag[1] = 1; + return 0} + var str_ind$0=str_ind; + for(;;) + {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); + var match=caml_string_get(str,str_ind$0),switcher=match - 32 | 0; + if(16 >= switcher >>> 0) + switch(switcher) + {case 0: + set_flag(str_ind$0,space); + var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1; + continue; + case 3: + set_flag(str_ind$0,hash); + var str_ind$2=str_ind$0 + 1 | 0,str_ind$0=str_ind$2; + continue; + case 11: + set_flag(str_ind$0,plus); + var str_ind$3=str_ind$0 + 1 | 0,str_ind$0=str_ind$3; + continue; + case 13: + set_flag(str_ind$0,minus); + var str_ind$4=str_ind$0 + 1 | 0,str_ind$0=str_ind$4; + continue; + case 16: + set_flag(str_ind$0,zero); + var str_ind$5=str_ind$0 + 1 | 0,str_ind$0=str_ind$5; + continue + } + var + _qR_=space[1], + _qS_=hash[1], + _qT_=plus[1], + _qU_=minus[1], + _qV_=zero[1]; + if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); + var + padty= + _qV_ + ?_qU_ + ?legacy_behavior$0 + ?0 + :incompatible_flag(pct_ind,str_ind$0,45,cst_0) + :2 + :_qU_?0:1, + match$0=caml_string_get(str,str_ind$0); + if(48 <= match$0) + {if(58 > match$0) + {var + match$1=parse_positive(str_ind$0,end_ind,0), + width=match$1[2], + new_ind=match$1[1]; + return parse_after_padding + (pct_ind, + new_ind, + end_ind, + _qU_, + _qT_, + _qS_, + _qR_, + ign, + [0,padty,width])}} + else + if(42 === match$0) + return parse_after_padding + (pct_ind, + str_ind$0 + 1 | 0, + end_ind, + _qU_, + _qT_, + _qS_, + _qR_, + ign, + [1,padty]); + switch(padty) + {case 0: + if(1 - legacy_behavior$0) + invalid_format_without(str_ind$0 - 1 | 0,45,cst_padding); + return parse_after_padding + (pct_ind,str_ind$0,end_ind,_qU_,_qT_,_qS_,_qR_,ign,0); + case 1: + return parse_after_padding + (pct_ind,str_ind$0,end_ind,_qU_,_qT_,_qS_,_qR_,ign,0); + default: + return parse_after_padding + (pct_ind,str_ind$0,end_ind,_qU_,_qT_,_qS_,_qR_,ign,_aH_)}}} + function parse_tag(is_open_tag,str_ind,end_ind) + {try + {if(str_ind === end_ind)throw Not_found; + var match$0=caml_string_get(str,str_ind); + if(60 !== match$0)throw Not_found; + var ind=index_from$0(str,str_ind + 1 | 0,62); + if(end_ind <= ind)throw Not_found; + var + sub_str=sub$0(str,str_ind,(ind - str_ind | 0) + 1 | 0), + match$1=parse(ind + 1 | 0,end_ind), + fmt_rest$0=match$1[1], + match$2=parse(str_ind,ind + 1 | 0), + sub_fmt=match$2[1], + sub_format$0=[0,sub_fmt,sub_str], + formatting$0=is_open_tag?[0,sub_format$0]:[1,sub_format$0], + _qP_=[0,[18,formatting$0,fmt_rest$0]]; + return _qP_} + catch(_qQ_) + {_qQ_ = caml_wrap_exception(_qQ_); + if(_qQ_ !== Not_found)throw _qQ_; + var + match=parse(str_ind,end_ind), + fmt_rest=match[1], + formatting=is_open_tag?[0,sub_format]:[1,sub_format]; + return [0,[18,formatting,fmt_rest]]}} + function parse_good_break(str_ind,end_ind) + {try + {var + _qI_=str_ind === end_ind?1:0, + _qJ_=_qI_ || (60 !== caml_string_get(str,str_ind)?1:0); + if(_qJ_)throw Not_found; + var + str_ind_1=parse_spaces(str_ind + 1 | 0,end_ind), + match$0=caml_string_get(str,str_ind_1), + switch$0=0; + if(48 <= match$0) + {if(58 > match$0)switch$0 = 1} + else + if(45 === match$0)switch$0 = 1; + if(! switch$0)throw Not_found; + var + match$1=parse_integer(str_ind_1,end_ind), + width=match$1[2], + str_ind_2=match$1[1], + str_ind_3=parse_spaces(str_ind_2,end_ind), + match$2=caml_string_get(str,str_ind_3), + switcher=match$2 - 45 | 0, + switch$1=0; + if(12 < switcher >>> 0) + if(17 === switcher) + var + s=sub$0(str,str_ind - 2 | 0,(str_ind_3 - str_ind | 0) + 3 | 0), + _qK_=[0,s,width,0], + _qL_=str_ind_3 + 1 | 0, + formatting_lit$0=_qK_, + next_ind=_qL_; + else + switch$1 = 1; + else + if(1 < switcher - 1 >>> 0) + {var + match$3=parse_integer(str_ind_3,end_ind), + offset=match$3[2], + str_ind_4=match$3[1], + str_ind_5=parse_spaces(str_ind_4,end_ind); + if(62 !== caml_string_get(str,str_ind_5))throw Not_found; + var + s$0=sub$0(str,str_ind - 2 | 0,(str_ind_5 - str_ind | 0) + 3 | 0), + _qM_=[0,s$0,width,offset], + _qN_=str_ind_5 + 1 | 0, + formatting_lit$0=_qM_, + next_ind=_qN_} + else + switch$1 = 1; + if(switch$1)throw Not_found} + catch(_qO_) + {_qO_ = caml_wrap_exception(_qO_); + if(_qO_ !== Not_found && _qO_[1] !== Failure)throw _qO_; + var formatting_lit$0=formatting_lit,next_ind=str_ind} + var match=parse(next_ind,end_ind),fmt_rest=match[1]; + return [0,[17,formatting_lit$0,fmt_rest]]} + function parse_magic_size(str_ind,end_ind) + {try + {var + str_ind_1=parse_spaces(str_ind,end_ind), + match$2=caml_string_get(str,str_ind_1), + switch$0=0; + if(48 <= match$2) + {if(58 > match$2)switch$0 = 1} + else + if(45 === match$2)switch$0 = 1; + if(switch$0) + {var + match$3=parse_integer(str_ind_1,end_ind), + size=match$3[2], + str_ind_2=match$3[1], + str_ind_3=parse_spaces(str_ind_2,end_ind); + if(62 !== caml_string_get(str,str_ind_3))throw Not_found; + var + s=sub$0(str,str_ind - 2 | 0,(str_ind_3 - str_ind | 0) + 3 | 0), + _qG_=[0,[0,str_ind_3 + 1 | 0,[1,s,size]]]} + else + var _qG_=0; + var _qF_=_qG_} + catch(_qH_) + {_qH_ = caml_wrap_exception(_qH_); + if(_qH_ !== Not_found && _qH_[1] !== Failure)throw _qH_; + var _qF_=0} + if(_qF_) + {var + match=_qF_[1], + formatting_lit=match[2], + next_ind=match[1], + match$0=parse(next_ind,end_ind), + fmt_rest=match$0[1]; + return [0,[17,formatting_lit,fmt_rest]]} + var match$1=parse(str_ind,end_ind),fmt_rest$0=match$1[1]; + return [0,[17,_aU_,fmt_rest$0]]} + function parse_spaces(str_ind,end_ind) + {var str_ind$0=str_ind; + for(;;) + {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); + if(32 !== caml_string_get(str,str_ind$0))return str_ind$0; + var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1}} + function parse_positive(str_ind,end_ind,acc) + {var str_ind$0=str_ind,acc$0=acc; + for(;;) + {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); + var c=caml_string_get(str,str_ind$0); + if(9 < c - 48 >>> 0)return [0,str_ind$0,acc$0]; + var acc$1=(acc$0 * 10 | 0) + (c - 48 | 0) | 0; + if(max_string_length < acc$1) + return caml_call3 + (failwith_message(_aW_),str,acc$1,max_string_length); + var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1,acc$0=acc$1}} + function parse_integer(str_ind,end_ind) + {if(str_ind === end_ind)unexpected_end_of_format(end_ind); + var match=caml_string_get(str,str_ind); + if(48 <= match) + {if(58 > match)return parse_positive(str_ind,end_ind,0)} + else + if(45 === match) + {if((str_ind + 1 | 0) === end_ind)unexpected_end_of_format(end_ind); + var c=caml_string_get(str,str_ind + 1 | 0); + if(9 < c - 48 >>> 0) + return expected_character(str_ind + 1 | 0,cst_digit,c); + var + match$0=parse_positive(str_ind + 1 | 0,end_ind,0), + n=match$0[2], + next_ind=match$0[1]; + return [0,next_ind,- n | 0]} + throw [0,Assert_failure,_aX_]} + function search_subformat_end(str_ind,end_ind,c) + {var str_ind$0=str_ind; + for(;;) + {if(str_ind$0 === end_ind) + caml_call3(failwith_message(_aY_),str,c,end_ind); + var match=caml_string_get(str,str_ind$0); + if(37 !== match) + {var str_ind$7=str_ind$0 + 1 | 0,str_ind$0=str_ind$7;continue} + if((str_ind$0 + 1 | 0) === end_ind) + unexpected_end_of_format(end_ind); + if(caml_string_get(str,str_ind$0 + 1 | 0) === c)return str_ind$0; + var match$0=caml_string_get(str,str_ind$0 + 1 | 0); + if(95 <= match$0) + {if(123 <= match$0) + {if(126 > match$0) + switch(match$0 - 123 | 0) + {case 0: + var + sub_end=search_subformat_end(str_ind$0 + 2 | 0,end_ind,125), + str_ind$2=sub_end + 2 | 0, + str_ind$0=str_ind$2; + continue; + case 1:break; + default: + return expected_character + (str_ind$0 + 1 | 0,cst_character,125)}} + else + if(96 > match$0) + {if((str_ind$0 + 2 | 0) === end_ind) + unexpected_end_of_format(end_ind); + var match$1=caml_string_get(str,str_ind$0 + 2 | 0); + if(40 === match$1) + {var + sub_end$0=search_subformat_end(str_ind$0 + 3 | 0,end_ind,41), + str_ind$3=sub_end$0 + 2 | 0, + str_ind$0=str_ind$3; + continue} + if(123 === match$1) + {var + sub_end$1= + search_subformat_end(str_ind$0 + 3 | 0,end_ind,125), + str_ind$4=sub_end$1 + 2 | 0, + str_ind$0=str_ind$4; + continue} + var str_ind$5=str_ind$0 + 3 | 0,str_ind$0=str_ind$5; + continue}} + else + {if(40 === match$0) + {var + sub_end$2=search_subformat_end(str_ind$0 + 2 | 0,end_ind,41), + str_ind$6=sub_end$2 + 2 | 0, + str_ind$0=str_ind$6; + continue} + if(41 === match$0) + return expected_character(str_ind$0 + 1 | 0,cst_character$0,41)} + var str_ind$1=str_ind$0 + 2 | 0,str_ind$0=str_ind$1}} + function incompatible_flag(pct_ind,str_ind,symb,option) + {var subfmt=sub$0(str,pct_ind,str_ind - pct_ind | 0); + return caml_call5 + (failwith_message(_a2_),str,pct_ind,option,symb,subfmt)} + function compute_int_conv(pct_ind,str_ind,plus,hash,space,symb) + {var plus$0=plus,hash$0=hash,space$0=space; + for(;;) + {var switch$0=0; + if(plus$0) + {if(hash$0) + switch$0 = 1; + else + if(! space$0){if(100 === symb)return 1;if(105 === symb)return 4}} + else + if(hash$0) + if(space$0) + switch$0 = 1; + else + {var switcher$0=symb - 88 | 0; + if(32 < switcher$0 >>> 0) + switch$0 = 1; + else + switch(switcher$0) + {case 0:return 9; + case 12:return 13; + case 17:return 14; + case 23:return 11; + case 29:return 15; + case 32:return 7; + default:switch$0 = 1}} + else + if(space$0) + {if(100 === symb)return 2;if(105 === symb)return 5} + else + {var switcher$1=symb - 88 | 0; + if(32 >= switcher$1 >>> 0) + switch(switcher$1) + {case 0:return 8; + case 12:return 0; + case 17:return 3; + case 23:return 10; + case 29:return 12; + case 32:return 6 + }} + if(switch$0) + {var switcher=symb - 88 | 0; + if(32 >= switcher >>> 0) + switch(switcher) + {case 0:if(legacy_behavior$0)return 9;break; + case 23:if(legacy_behavior$0)return 11;break; + case 32:if(legacy_behavior$0)return 7;break; + case 12: + case 17: + case 29: + if(! legacy_behavior$0) + return incompatible_flag(pct_ind,str_ind,symb,cst$49); + var hash$0=0; + continue + }} + if(! plus$0) + {if(! space$0)throw [0,Assert_failure,_a0_]; + if(! legacy_behavior$0) + return incompatible_flag(pct_ind,str_ind,symb,cst$48); + var space$0=0; + continue} + if(space$0) + {if(! legacy_behavior$0) + return incompatible_flag(pct_ind,str_ind,32,cst$46); + var space$0=0; + continue} + if(! legacy_behavior$0) + return incompatible_flag(pct_ind,str_ind,symb,cst$47); + var plus$0=0}} + return parse(0,caml_ml_string_length(str))} + function format_of_string_fmtty(str,fmtty) + {var match=fmt_ebb_of_string(0,str),fmt=match[1]; + try + {var _qD_=[0,type_format(fmt,fmtty),str];return _qD_} + catch(_qE_) + {_qE_ = caml_wrap_exception(_qE_); + if(_qE_ !== Type_mismatch)throw _qE_; + var _qC_=string_of_fmtty(fmtty); + return caml_call2(failwith_message(_a3_),str,_qC_)}} + function format_of_string_format(str,param) + {var + str$0=param[2], + fmt=param[1], + match=fmt_ebb_of_string(0,str), + fmt$0=match[1]; + try + {var _qA_=[0,type_format(fmt$0,fmtty_of_fmt(fmt)),str];return _qA_} + catch(_qB_) + {_qB_ = caml_wrap_exception(_qB_); + if(_qB_ === Type_mismatch) + return caml_call2(failwith_message(_a4_),str,str$0); + throw _qB_}} + var + CamlinternalFormat= + [0, + is_in_char_set, + rev_char_set, + create_char_set, + add_in_char_set, + freeze_char_set, + param_format_of_ignored_format, + make_printf, + make_iprintf, + output_acc, + bufput_acc, + strput_acc, + type_format, + fmt_ebb_of_string, + format_of_string_fmtty, + format_of_string_format, + char_of_iconv, + string_of_formatting_lit, + string_of_fmtty, + string_of_fmt, + open_box_of_string, + symm, + trans, + recast]; + caml_register_global(807,CamlinternalFormat,"CamlinternalFormat"); + function kfprintf(k,o,param) + {var fmt=param[1],_qz_=0; + return make_printf + (function(acc){output_acc(o,acc);return caml_call1(k,o)}, + _qz_, + fmt)} + function kbprintf(k,b,param) + {var fmt=param[1],_qy_=0; + return make_printf + (function(acc){bufput_acc(b,acc);return caml_call1(k,b)}, + _qy_, + fmt)} + function ikfprintf(k,oc,param) + {var fmt=param[1];return make_iprintf(k,oc,fmt)} + function fprintf(oc,fmt){return kfprintf(function(_qx_){return 0},oc,fmt)} + function bprintf(b,fmt){return kbprintf(function(_qw_){return 0},b,fmt)} + function ifprintf(oc,fmt) + {return ikfprintf(function(_qv_){return 0},oc,fmt)} + function ibprintf(b,fmt){return ikfprintf(function(_qu_){return 0},b,fmt)} + function printf(fmt){return fprintf(stdout,fmt)} + function eprintf(fmt){return fprintf(stderr,fmt)} + function ksprintf(k,param) + {var fmt=param[1]; + function k$0(acc) + {var buf=create$2(64); + strput_acc(buf,acc); + return caml_call1(k,contents(buf))} + return make_printf(k$0,0,fmt)} + function sprintf(fmt){return ksprintf(function(s){return s},fmt)} + var + Stdlib_Printf= + [0, + fprintf, + printf, + eprintf, + sprintf, + bprintf, + ifprintf, + ibprintf, + kfprintf, + ikfprintf, + ksprintf, + kbprintf, + ikfprintf, + ksprintf]; + caml_register_global(808,Stdlib_Printf,"Stdlib__Printf"); + var + Bad=[248,cst_Stdlib_Arg_Bad,caml_fresh_oo_id(0)], + Help=[248,cst_Stdlib_Arg_Help,caml_fresh_oo_id(0)], + Stop=[248,cst_Stdlib_Arg_Stop,caml_fresh_oo_id(0)]; + function assoc3(x,l) + {var l$0=l; + for(;;) + {if(! l$0)throw Not_found; + var match=l$0[1],y2=match[2],y1=match[1]; + if(caml_equal(y1,x))return y2; + var l$1=l$0[2],l$0=l$1}} + function split$1(s) + {var + i=index$0(s,61), + len=caml_ml_string_length(s), + _qt_=sub$0(s,i + 1 | 0,len - (i + 1 | 0) | 0); + return [0,sub$0(s,0,i),_qt_]} + function make_symlist(prefix,sep,suffix,l) + {if(! l)return cst_none; + var t=l[2],h=l[1],_qs_=cat(prefix,h); + return cat + (fold_left$0(function(x,y){return cat(x,cat(sep,y))},_qs_,t), + suffix)} + function help_action(param){throw [0,Stop,_a7_]} + function add_help(speclist) + {try + {assoc3(cst_help$2,speclist);var _qp_=0,_qn_=_qp_} + catch(_qr_) + {_qr_ = caml_wrap_exception(_qr_); + if(_qr_ !== Not_found)throw _qr_; + var + _qn_= + [0,[0,cst_help,[0,help_action],cst_Display_this_list_of_optio],0]} + try + {assoc3(cst_help$1,speclist);var _qo_=0,add2=_qo_} + catch(_qq_) + {_qq_ = caml_wrap_exception(_qq_); + if(_qq_ !== Not_found)throw _qq_; + var + add2= + [0, + [0,cst_help$0,[0,help_action],cst_Display_this_list_of_optio$0], + 0]} + return append(speclist,append(_qn_,add2))} + function usage_b(buf,speclist,errmsg) + {caml_call1(bprintf(buf,_a8_),errmsg); + var _qk_=add_help(speclist); + return iter$2 + (function(param) + {var + doc=param[3], + spec=param[2], + key=param[1], + _ql_=0 < caml_ml_string_length(doc)?1:0; + if(! _ql_)return _ql_; + if(11 !== spec[0]) + return caml_call2(bprintf(buf,_a5_),key,doc); + var l=spec[1],_qm_=make_symlist(cst$53,cst$52,cst$51,l); + return caml_call3(bprintf(buf,_a6_),key,_qm_,doc)}, + _qk_)} + function usage_string(speclist,errmsg) + {var b=create$2(200);usage_b(b,speclist,errmsg);return contents(b)} + function usage(speclist,errmsg) + {var _qj_=usage_string(speclist,errmsg); + return caml_call1(eprintf(_a9_),_qj_)} + var current=[0,0]; + function bool_of_string_opt$0(x) + {try + {var _qh_=[0,bool_of_string(x)];return _qh_} + catch(_qi_) + {_qi_ = caml_wrap_exception(_qi_); + if(_qi_[1] === Invalid_argument)return 0; + throw _qi_}} + function int_of_string_opt$0(x) + {try + {var _qf_=[0,caml_int_of_string(x)];return _qf_} + catch(_qg_) + {_qg_ = caml_wrap_exception(_qg_); + if(_qg_[1] === Failure)return 0; + throw _qg_}} + function float_of_string_opt(x) + {try + {var _qd_=[0,caml_float_of_string(x)];return _qd_} + catch(_qe_) + {_qe_ = caml_wrap_exception(_qe_); + if(_qe_[1] === Failure)return 0; + throw _qe_}} + function parse_and_expand_argv_dynamic_ + (allow_expand,current,argv,speclist,anonfun,errmsg) + {var initpos=current[1]; + function convert_error(error) + {var + b=create$2(200), + progname= + initpos < argv[1].length - 1 + ?caml_check_bound(argv[1],initpos)[1 + initpos] + :cst$54; + switch(error[0]) + {case 0: + var _qc_=error[1]; + if + (caml_string_notequal(_qc_,cst_help$3) + && + caml_string_notequal(_qc_,cst_help$4)) + caml_call2(bprintf(b,_a__),progname,_qc_); + break; + case 1: + var expected=error[3],arg=error[2],opt=error[1]; + caml_call4(bprintf(b,_bb_),progname,arg,opt,expected); + break; + case 2:var s=error[1];caml_call2(bprintf(b,_bc_),progname,s);break; + default:var s$0=error[1];caml_call2(bprintf(b,_bd_),progname,s$0)} + usage_b(b,speclist[1],errmsg); + if(! caml_equal(error,_a$_) && ! caml_equal(error,_ba_)) + return [0,Bad,contents(b)]; + return [0,Help,contents(b)]} + current[1]++; + for(;;) + {if(current[1] >= argv[1].length - 1)return 0; + try + {var + _p5_=current[1], + s=caml_check_bound(argv[1],_p5_)[1 + _p5_], + switch$0=0; + if(1 <= caml_ml_string_length(s) && 45 === caml_string_get(s,0)) + {try + {var + follow$1=0, + _p7_=assoc3(s,speclist[1]), + follow$0=follow$1, + action=_p7_} + catch(_qa_) + {_qa_ = caml_wrap_exception(_qa_); + if(_qa_ !== Not_found)throw _qa_; + try + {var + match=split$1(s), + arg=match[2], + keyword=match[1], + follow=[0,arg], + _p6_=assoc3(keyword,speclist[1])} + catch(_qb_) + {_qb_ = caml_wrap_exception(_qb_); + if(_qb_ === Not_found)throw [0,Stop,[0,s]]; + throw _qb_} + var follow$0=follow,action=_p6_} + var + no_arg$0= + function(s,follow) + {function no_arg(param) + {if(! follow)return 0; + var arg=follow[1]; + throw [0,Stop,[1,s,arg,cst_no_argument]]} + return no_arg}, + no_arg=no_arg$0(s,follow$0), + get_arg$0= + function(s,follow) + {function get_arg(param) + {if(follow){var arg=follow[1];return arg} + if((current[1] + 1 | 0) >= argv[1].length - 1) + throw [0,Stop,[2,s]]; + var _p$_=current[1] + 1 | 0; + return caml_check_bound(argv[1],_p$_)[1 + _p$_]} + return get_arg}, + get_arg=get_arg$0(s,follow$0), + consume_arg$0= + function(follow) + {function consume_arg(param){return follow?0:(current[1]++,0)} + return consume_arg}, + consume_arg=consume_arg$0(follow$0), + treat_action$0= + function(s,no_arg,get_arg,consume_arg) + {function treat_action(param) + {switch(param[0]) + {case 0:var f=param[1];no_arg(0);return caml_call1(f,0); + case 1: + var + f$0=param[1], + arg=get_arg(0), + match=bool_of_string_opt$0(arg); + if(! match)throw [0,Stop,[1,s,arg,cst_a_boolean]]; + var s$0=match[1]; + caml_call1(f$0,s$0); + return consume_arg(0); + case 2:var r=param[1];no_arg(0);r[1] = 1;return 0; + case 3:var r$0=param[1];no_arg(0);r$0[1] = 0;return 0; + case 4: + var f$1=param[1],arg$0=get_arg(0); + caml_call1(f$1,arg$0); + return consume_arg(0); + case 5: + var r$1=param[1];r$1[1] = get_arg(0);return consume_arg(0); + case 6: + var + f$2=param[1], + arg$1=get_arg(0), + match$0=int_of_string_opt$0(arg$1); + if(! match$0)throw [0,Stop,[1,s,arg$1,cst_an_integer]]; + var x=match$0[1]; + caml_call1(f$2,x); + return consume_arg(0); + case 7: + var + r$2=param[1], + arg$2=get_arg(0), + match$1=int_of_string_opt$0(arg$2); + if(! match$1)throw [0,Stop,[1,s,arg$2,cst_an_integer$0]]; + var x$0=match$1[1]; + r$2[1] = x$0; + return consume_arg(0); + case 8: + var + f$3=param[1], + arg$3=get_arg(0), + match$2=float_of_string_opt(arg$3); + if(! match$2)throw [0,Stop,[1,s,arg$3,cst_a_float]]; + var x$1=match$2[1]; + caml_call1(f$3,x$1); + return consume_arg(0); + case 9: + var + r$3=param[1], + arg$4=get_arg(0), + match$3=float_of_string_opt(arg$4); + if(! match$3)throw [0,Stop,[1,s,arg$4,cst_a_float$0]]; + var x$2=match$3[1]; + r$3[1] = x$2; + return consume_arg(0); + case 10: + var specs=param[1]; + no_arg(0); + return iter$2(treat_action,specs); + case 11: + var f$4=param[2],symb=param[1],arg$5=get_arg(0); + if(! mem(arg$5,symb)) + throw [0, + Stop, + [1, + s, + arg$5, + cat(cst_one_of,make_symlist(cst$57,cst$56,cst$55,symb))]]; + caml_call1(f$4,arg$5); + return consume_arg(0); + case 12: + var f$5=param[1]; + no_arg(0); + for(;;) + {if(current[1] >= (argv[1].length - 1 - 1 | 0))return 0; + var _p8_=current[1] + 1 | 0; + caml_call1(f$5,caml_check_bound(argv[1],_p8_)[1 + _p8_]); + consume_arg(0)} + case 13: + var f$6=param[1]; + no_arg(0); + var acc=[0,0]; + for(;;) + {if(current[1] >= (argv[1].length - 1 - 1 | 0)) + return caml_call1(f$6,rev(acc[1])); + var _p__=current[1] + 1 | 0,_p9_=acc[1]; + acc[1] = [0,caml_check_bound(argv[1],_p__)[1 + _p__],_p9_]; + consume_arg(0)} + default: + var f$7=param[1]; + if(1 - allow_expand) + throw [0,Invalid_argument,cst_Arg_Expand_is_is_only_allo]; + var arg$6=get_arg(0),newarg=caml_call1(f$7,arg$6); + consume_arg(0); + var + before=sub$1(argv[1],0,current[1] + 1 | 0), + after= + sub$1 + (argv[1], + current[1] + 1 | 0, + (argv[1].length - 1 - current[1] | 0) - 1 | 0); + argv[1] + = + caml_array_concat([0,before,[0,newarg,[0,after,0]]]); + return 0}} + return treat_action}, + treat_action=treat_action$0(s,no_arg,get_arg,consume_arg); + treat_action(action); + switch$0 = 1} + if(! switch$0)caml_call1(anonfun,s)} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] === Bad){var m=exn[2];throw convert_error([3,m])} + if(exn[1] !== Stop)throw exn; + var e=exn[2]; + throw convert_error(e)} + current[1]++}} + function parse_and_expand_argv_dynamic + (current,argv,speclist,anonfun,errmsg) + {return parse_and_expand_argv_dynamic_ + (1,current,argv,speclist,anonfun,errmsg)} + function parse_argv_dynamic(opt,argv,speclist,anonfun,errmsg) + {if(opt)var sth=opt[1],current$0=sth;else var current$0=current; + return parse_and_expand_argv_dynamic_ + (0,current$0,[0,argv],speclist,anonfun,errmsg)} + function parse_argv(opt,argv,speclist,anonfun,errmsg) + {if(opt)var sth=opt[1],current$0=sth;else var current$0=current; + return parse_argv_dynamic + ([0,current$0],argv,[0,speclist],anonfun,errmsg)} + function parse(l,f,msg) + {try + {var _p4_=parse_argv(0,caml_sys_argv(0),l,f,msg);return _p4_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] === Bad) + {var msg$0=exn[2];caml_call1(eprintf(_be_),msg$0);return exit(2)} + if(exn[1] !== Help)throw exn; + var msg$1=exn[2]; + caml_call1(printf(_bf_),msg$1); + return exit(0)}} + function parse_dynamic(l,f,msg) + {try + {var _p3_=parse_argv_dynamic(0,caml_sys_argv(0),l,f,msg);return _p3_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] === Bad) + {var msg$0=exn[2];caml_call1(eprintf(_bg_),msg$0);return exit(2)} + if(exn[1] !== Help)throw exn; + var msg$1=exn[2]; + caml_call1(printf(_bh_),msg$1); + return exit(0)}} + function parse_expand(l,f,msg) + {try + {var + argv=[0,caml_sys_argv(0)], + spec=[0,l], + current$0=[0,current[1]], + _p2_=parse_and_expand_argv_dynamic(current$0,argv,spec,f,msg); + return _p2_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] === Bad) + {var msg$0=exn[2];caml_call1(eprintf(_bi_),msg$0);return exit(2)} + if(exn[1] !== Help)throw exn; + var msg$1=exn[2]; + caml_call1(printf(_bj_),msg$1); + return exit(0)}} + function second_word(s) + {var len=caml_ml_string_length(s); + function loop(n) + {var n$0=n; + for(;;) + {if(len <= n$0)return len; + if(32 !== caml_string_get(s,n$0))return n$0; + var n$1=n$0 + 1 | 0,n$0=n$1}} + try + {var n$0=index$0(s,9)} + catch(_p0_) + {_p0_ = caml_wrap_exception(_p0_); + if(_p0_ !== Not_found)throw _p0_; + try + {var n=index$0(s,32)} + catch(_p1_) + {_p1_ = caml_wrap_exception(_p1_); + if(_p1_ === Not_found)return len; + throw _p1_} + return loop(n + 1 | 0)} + return loop(n$0 + 1 | 0)} + function max_arg_len(cur,param) + {var doc=param[3],spec=param[2],kwd=param[1]; + return 11 === spec[0] + ?max$1(cur,caml_ml_string_length(kwd)) + :max$1(cur,caml_ml_string_length(kwd) + second_word(doc) | 0)} + function replace_leading_tab(s) + {var seen=[0,0]; + return map$6 + (function(c) + {if(9 === c && ! seen[1]){seen[1] = 1;return 32}return c}, + s)} + function align(opt,speclist) + {if(opt)var sth=opt[1],limit=sth;else var limit=max_int; + var + completed=add_help(speclist), + len=fold_left$0(max_arg_len,0,completed), + len$0=min$1(len,limit); + return map$4 + (function(ksd) + {var _pY_=ksd[1],_pZ_=ksd[2]; + if(! caml_string_notequal(ksd[3],cst$58))return ksd; + if(11 === _pZ_[0]) + {var + msg$0=ksd[3], + cutcol$0=second_word(msg$0), + spaces$0=make$1(max$1(0,len$0 - cutcol$0 | 0) + 3 | 0,32); + return [0, + _pY_, + _pZ_, + cat(cst$59,cat(spaces$0,replace_leading_tab(msg$0)))]} + var + msg=ksd[3], + spec=ksd[2], + cutcol=second_word(msg), + kwd_len=caml_ml_string_length(_pY_), + diff=(len$0 - kwd_len | 0) - cutcol | 0; + if(0 >= diff)return [0,_pY_,spec,replace_leading_tab(msg)]; + var + spaces=make$1(diff,32), + prefix=sub$0(replace_leading_tab(msg),0,cutcol), + suffix= + sub$0(msg,cutcol,caml_ml_string_length(msg) - cutcol | 0); + return [0,_pY_,spec,cat(prefix,cat(spaces,suffix))]}, + completed)} + function read_aux(trim,sep,file) + {var ic=open_bin$0(file),buf=create$2(200),words=[0,0]; + function stash(param) + {var s=contents(buf); + if(trim) + {var len=caml_ml_string_length(s),switch$0=0; + if(0 < len && 13 === caml_string_get(s,len - 1 | 0)) + {var _pX_=sub$0(s,0,len - 1 | 0);switch$0 = 1} + if(! switch$0)var _pX_=s; + var word=_pX_} + else + var word=s; + words[1] = [0,word,words[1]]; + return clear$1(buf)} + try + {for(;;) + {var c=caml_ml_input_char(ic); + if(c === sep)stash(0);else add_char(buf,c)}} + catch(_pW_) + {_pW_ = caml_wrap_exception(_pW_); + if(_pW_ !== End_of_file)throw _pW_; + if(0 < buf[2])stash(0); + caml_ml_close_channel(ic); + return of_list(rev(words[1]))}} + var _bk_=10,_bl_=1; + function read_arg(_pV_){return read_aux(_bl_,_bk_,_pV_)} + var _bm_=0,_bn_=0; + function read_arg0(_pU_){return read_aux(_bn_,_bm_,_pU_)} + function write_aux(sep,file,args) + {var oc=open_bin(file); + iter$5(function(s){return caml_call2(fprintf(oc,_bo_),s,sep)},args); + return close(oc)} + var _bp_=10; + function write_arg(_pS_,_pT_){return write_aux(_bp_,_pS_,_pT_)} + var _bq_=0; + function write_arg0(_pQ_,_pR_){return write_aux(_bq_,_pQ_,_pR_)} + var + Stdlib_Arg= + [0, + parse, + parse_dynamic, + parse_argv, + parse_argv_dynamic, + parse_and_expand_argv_dynamic, + parse_expand, + Help, + Bad, + usage, + usage_string, + align, + current, + read_arg, + read_arg0, + write_arg, + write_arg0]; + caml_register_global(809,Stdlib_Arg,"Stdlib__Arg"); + var + Stdlib_Atomic= + [0,make,get,set,exchange,compare_and_set,fetch_and_add,incr,decr]; + caml_register_global(810,Stdlib_Atomic,"Stdlib__Atomic"); + var printers=[0,0]; + function field(x,i) + {var f=x[1 + i]; + return is_block(f) + ?caml_obj_tag(f) === 252 + ?caml_call1(sprintf(_br_),f) + :caml_obj_tag(f) === 253?to_string(f):cst$60 + :caml_call1(sprintf(_bs_),f)} + function other_fields(x,i) + {if(x.length - 1 <= i)return cst$61; + var _pO_=other_fields(x,i + 1 | 0),_pP_=field(x,i); + return caml_call2(sprintf(_bt_),_pP_,_pO_)} + function use_printers(x) + {function conv(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var tl=param$0[2],hd=param$0[1]; + try {var switch$0=0,val=caml_call1(hd,x);switch$0 = 1}catch(_pN_){} + if(switch$0 && val){var s=val[1];return [0,s]} + var param$0=tl}} + return conv(printers[1])} + function to_string_default(x) + {if(x === Out_of_memory)return cst_Out_of_memory; + if(x === Stack_overflow)return cst_Stack_overflow; + if(x[1] === Match_failure) + {var match$0=x[2],char$0=match$0[3],line=match$0[2],file=match$0[1]; + return caml_call5 + (sprintf(locfmt), + file, + line, + char$0, + char$0 + 5 | 0, + cst_Pattern_matching_failed)} + if(x[1] === Assert_failure) + {var + match$1=x[2], + char$1=match$1[3], + line$0=match$1[2], + file$0=match$1[1]; + return caml_call5 + (sprintf(locfmt), + file$0, + line$0, + char$1, + char$1 + 6 | 0, + cst_Assertion_failed)} + if(x[1] === Undefined_recursive_module) + {var + match$2=x[2], + char$2=match$2[3], + line$1=match$2[2], + file$1=match$2[1]; + return caml_call5 + (sprintf(locfmt), + file$1, + line$1, + char$2, + char$2 + 6 | 0, + cst_Undefined_recursive_module)} + if(0 !== caml_obj_tag(x))return x[1]; + var constructor=x[1][1],match=x.length - 1; + if(2 < match >>> 0) + var + _pJ_=other_fields(x,2), + _pK_=field(x,1), + _pM_=caml_call2(sprintf(_bu_),_pK_,_pJ_); + else + switch(match) + {case 0:var _pM_=cst$62;break; + case 1:var _pM_=cst$63;break; + default:var _pL_=field(x,1),_pM_=caml_call1(sprintf(_bv_),_pL_)} + return cat(constructor,_pM_)} + function to_string$6(e) + {var match=use_printers(e); + if(! match)return to_string_default(e); + var s=match[1]; + return s} + function print(fct,arg) + {try + {var _pI_=caml_call1(fct,arg);return _pI_} + catch(x) + {x = caml_wrap_exception(x); + var _pH_=to_string$6(x); + caml_call1(eprintf(_bw_),_pH_); + caml_ml_flush(stderr); + throw x}} + function catch$0(fct,arg) + {try + {var _pG_=caml_call1(fct,arg);return _pG_} + catch(x) + {x = caml_wrap_exception(x); + caml_ml_flush(stdout); + var _pF_=to_string$6(x); + caml_call1(eprintf(_bx_),_pF_); + return exit(2)}} + function raw_backtrace_entries(bt){return bt} + function convert_raw_backtrace(bt) + {return [0,runtime.caml_convert_raw_backtrace(bt)]} + function format_backtrace_slot(pos,slot) + {function info(is_raise) + {return is_raise + ?0 === pos?cst_Raised_at:cst_Re_raised_at + :0 === pos?cst_Raised_by_primitive_operat:cst_Called_from} + if(0 === slot[0]) + {var + _px_=slot[5], + _py_=slot[4], + _pz_=slot[3], + _pA_=slot[6]?cst_inlined:cst$64, + _pB_=slot[2], + _pC_=slot[7], + _pD_=info(slot[1]); + return [0, + caml_call7(sprintf(_by_),_pD_,_pC_,_pB_,_pA_,_pz_,_py_,_px_)]} + if(slot[1])return 0; + var _pE_=info(0); + return [0,caml_call1(sprintf(_bz_),_pE_)]} + function print_raw_backtrace(outchan,raw_backtrace) + {var backtrace=convert_raw_backtrace(raw_backtrace); + if(! backtrace)return fprintf(outchan,_bB_); + var a=backtrace[1],_pv_=a.length - 1 - 1 | 0,_pu_=0; + if(_pv_ >= 0) + {var i=_pu_; + for(;;) + {var match=format_backtrace_slot(i,caml_check_bound(a,i)[1 + i]); + if(match){var str=match[1];caml_call1(fprintf(outchan,_bA_),str)} + var _pw_=i + 1 | 0; + if(_pv_ !== i){var i=_pw_;continue} + break}} + return 0} + function print_backtrace(outchan) + {return print_raw_backtrace(outchan,caml_get_exception_raw_backtra(0))} + function raw_backtrace_to_string(raw_backtrace) + {var backtrace=convert_raw_backtrace(raw_backtrace); + if(! backtrace)return cst_Program_not_linked_with_g_; + var a=backtrace[1],b=create$2(1024),_ps_=a.length - 1 - 1 | 0,_pr_=0; + if(_ps_ >= 0) + {var i=_pr_; + for(;;) + {var match=format_backtrace_slot(i,caml_check_bound(a,i)[1 + i]); + if(match){var str=match[1];caml_call1(bprintf(b,_bC_),str)} + var _pt_=i + 1 | 0; + if(_ps_ !== i){var i=_pt_;continue} + break}} + return contents(b)} + function backtrace_slot_is_raise(param) + {return 0 === param[0]?param[1]:param[1]} + function backtrace_slot_is_inline(param){return 0 === param[0]?param[6]:0} + function backtrace_slot_location(param) + {return 0 === param[0]?[0,[0,param[2],param[3],param[4],param[5]]]:0} + function backtrace_slot_defname(param) + {if(0 === param[0] && caml_string_notequal(param[7],cst$65)) + return [0,param[7]]; + return 0} + function backtrace_slots(raw_backtrace) + {var match=convert_raw_backtrace(raw_backtrace); + if(! match)return 0; + var backtrace=match[1],i$1=backtrace.length - 1 - 1 | 0,i=i$1; + for(;;) + {if(-1 === i) + var _pq_=0; + else + {var + param=caml_check_bound(backtrace,i)[1 + i], + _pp_=0 === param[0]?1:0; + if(! _pp_){var i$0=i - 1 | 0,i=i$0;continue} + var _pq_=_pp_} + return _pq_?[0,backtrace]:0}} + function backtrace_slots_of_raw_entry(entry) + {return backtrace_slots([0,entry])} + function raw_backtrace_length(bt){return bt.length - 1} + function get_backtrace(param) + {return raw_backtrace_to_string(caml_get_exception_raw_backtra(0))} + function register_printer(fn) + {for(;;) + {var + old_printers=printers[1], + new_printers=[0,fn,old_printers], + success=compare_and_set(printers,old_printers,new_printers), + _po_=1 - success; + if(_po_)continue; + return _po_}} + function exn_slot(x){return 0 === caml_obj_tag(x)?x[1]:x} + function exn_slot_id(x){var slot=exn_slot(x);return slot[2]} + function exn_slot_name(x){var slot=exn_slot(x);return slot[1]} + var errors=_bD_.slice(); + function default_uncaught_exception_han(exn,raw_backtrace) + {var _pm_=to_string$6(exn); + caml_call1(eprintf(_bE_),_pm_); + print_raw_backtrace(stderr,raw_backtrace); + var status=runtime.caml_ml_debug_info_status(0); + if(status < 0) + {var _pn_=abs(status); + prerr_endline(caml_check_bound(errors,_pn_)[1 + _pn_])} + return caml_ml_flush(stderr)} + var uncaught_exception_handler=[0,default_uncaught_exception_han]; + function set_uncaught_exception_handler(fn) + {uncaught_exception_handler[1] = fn;return 0} + var empty_backtrace=[0]; + function handle_uncaught_exception(exn,debugger_in_use) + {try + {try + {var + raw_backtrace= + debugger_in_use?empty_backtrace:caml_get_exception_raw_backtra(0); + try {do_at_exit(0)}catch(_pl_){} + try + {var + _ph_=caml_call2(uncaught_exception_handler[1],exn,raw_backtrace), + _pg_=_ph_} + catch(exn$0) + {exn$0 = caml_wrap_exception(exn$0); + var + raw_backtrace$0=caml_get_exception_raw_backtra(0), + _pe_=to_string$6(exn); + caml_call1(eprintf(_bF_),_pe_); + print_raw_backtrace(stderr,raw_backtrace); + var _pf_=to_string$6(exn$0); + caml_call1(eprintf(_bG_),_pf_); + print_raw_backtrace(stderr,raw_backtrace$0); + var _pg_=caml_ml_flush(stderr)} + var _pi_=_pg_} + catch(_pk_) + {_pk_ = caml_wrap_exception(_pk_); + if(_pk_ !== Out_of_memory)throw _pk_; + var _pi_=prerr_endline(cst_Fatal_error_out_of_memory_)} + return _pi_} + catch(_pj_){return 0}} + caml_register_named_value + (caml_string_of_jsbytes("Printexc.handle_uncaught_exception"), + handle_uncaught_exception); + function _bH_(_pd_){return runtime.caml_raw_backtrace_next_slot(_pd_)} + function _bI_(_pc_){return runtime.caml_convert_raw_backtrace_slot(_pc_)} + function _bJ_(_pb_,_pa_) + {return runtime.caml_raw_backtrace_slot(_pb_,_pa_)} + var + _bK_= + [0, + backtrace_slot_is_raise, + backtrace_slot_is_inline, + backtrace_slot_location, + backtrace_slot_defname, + format_backtrace_slot]; + function _bL_(_o$_){return caml_get_exception_raw_backtra(_o$_)} + function _bM_(_o__){return runtime.caml_backtrace_status(_o__)} + var + Stdlib_Printexc= + [0, + to_string$6, + to_string_default, + print, + catch$0, + print_backtrace, + get_backtrace, + function(_o9_){return runtime.caml_record_backtrace(_o9_)}, + _bM_, + register_printer, + use_printers, + raw_backtrace_entries, + _bL_, + print_raw_backtrace, + raw_backtrace_to_string, + default_uncaught_exception_han, + set_uncaught_exception_handler, + backtrace_slots, + backtrace_slots_of_raw_entry, + _bK_, + raw_backtrace_length, + _bJ_, + _bI_, + _bH_, + exn_slot_id, + exn_slot_name]; + caml_register_global(811,Stdlib_Printexc,"Stdlib__Printexc"); + function const$0(c,param){return c} + function flip(f,x,y){return caml_call2(f,y,x)} + function negate(p,v){return 1 - caml_call1(p,v)} + var + Finally_raised= + [248,cst_Stdlib_Fun_Finally_raised,caml_fresh_oo_id(0)]; + register_printer + (function(param) + {if(param[1] !== Finally_raised)return 0; + var exn=param[2]; + return [0,cat(cst_Fun_Finally_raised,to_string$6(exn))]}); + function protect(finally$0,work) + {function finally_no_exn(param) + {try + {var _o8_=caml_call1(finally$0,0);return _o8_} + catch(e) + {e = caml_wrap_exception(e); + var bt=caml_get_exception_raw_backtra(0),exn=[0,Finally_raised,e]; + caml_restore_raw_backtrace(exn,bt); + throw exn}} + try + {var result=caml_call1(work,0)} + catch(work_exn) + {work_exn = caml_wrap_exception(work_exn); + var work_bt=caml_get_exception_raw_backtra(0); + finally_no_exn(0); + caml_restore_raw_backtrace(work_exn,work_bt); + throw work_exn} + finally_no_exn(0); + return result} + var Stdlib_Fun=[0,const$0,flip,negate,protect,Finally_raised]; + caml_register_global(812,Stdlib_Fun,"Stdlib__Fun"); + function print_stat(c) + {var st=runtime.caml_gc_stat(0),_oQ_=st[4]; + caml_call1(fprintf(c,_bN_),_oQ_); + var _oR_=st[5]; + caml_call1(fprintf(c,_bO_),_oR_); + var _oS_=st[14]; + caml_call1(fprintf(c,_bP_),_oS_); + var _oT_=st[17]; + caml_call1(fprintf(c,_bQ_),_oT_); + fprintf(c,_bR_); + var + _oU_=st[1], + l1=caml_ml_string_length(caml_call1(sprintf(_bS_),_oU_)), + _oV_=st[1]; + caml_call2(fprintf(c,_bT_),l1,_oV_); + var _oW_=st[2]; + caml_call2(fprintf(c,_bU_),l1,_oW_); + var _oX_=st[3]; + caml_call2(fprintf(c,_bV_),l1,_oX_); + fprintf(c,_bW_); + var + _oY_=st[15], + l2=caml_ml_string_length(caml_call1(sprintf(_bX_),_oY_)), + _oZ_=st[15]; + caml_call2(fprintf(c,_bY_),l2,_oZ_); + var _o0_=st[6]; + caml_call2(fprintf(c,_bZ_),l2,_o0_); + var _o1_=st[8]; + caml_call2(fprintf(c,_b0_),l2,_o1_); + var _o2_=st[10]; + caml_call2(fprintf(c,_b1_),l2,_o2_); + var _o3_=st[12]; + caml_call2(fprintf(c,_b2_),l2,_o3_); + var _o4_=st[13]; + caml_call2(fprintf(c,_b3_),l2,_o4_); + fprintf(c,_b4_); + var _o5_=st[9]; + caml_call1(fprintf(c,_b5_),_o5_); + var _o6_=st[11]; + caml_call1(fprintf(c,_b6_),_o6_); + var _o7_=st[7]; + return caml_call1(fprintf(c,_b7_),_o7_)} + function allocated_bytes(param) + {var + match=runtime.caml_gc_counters(0), + ma=match[3], + pro=match[2], + mi=match[1]; + return (mi + ma - pro) * 4} + function create_alarm(f){return [0,1]} + function delete_alarm(a){a[1] = 0;return 0} + function _b8_(param){return 0} + function _b9_(param){return 0} + function _b__(param){return 0} + function _b$_(param){return 0} + var null_tracker=[0,function(param){return 0},_b$_,_b__,_b9_,_b8_]; + function start(sampling_rate,opt,tracker) + {if(opt) + var sth=opt[1],callstack_size=sth; + else + var callstack_size=max_int; + return runtime.caml_memprof_start(sampling_rate,callstack_size,tracker)} + var _ca_=[0,null_tracker,start,runtime.caml_memprof_stop]; + function _cb_(_oP_){return runtime.caml_final_release(_oP_)} + var + _cc_=runtime.caml_final_register_called_without_value, + Stdlib_Gc= + [0, + print_stat, + allocated_bytes, + function(_oO_,_oN_){return runtime.caml_final_register(_oO_,_oN_)}, + _cc_, + _cb_, + create_alarm, + delete_alarm, + _ca_]; + caml_register_global(813,Stdlib_Gc,"Stdlib__Gc"); + function string(str) + {return caml_md5_string(str,0,caml_ml_string_length(str))} + function bytes(b){return string(caml_string_of_bytes(b))} + function substring(str,ofs,len) + {if + (0 <= ofs && 0 <= len && (caml_ml_string_length(str) - len | 0) >= ofs) + return caml_md5_string(str,ofs,len); + return invalid_arg(cst_Digest_substring)} + function subbytes(b,ofs,len) + {return substring(caml_string_of_bytes(b),ofs,len)} + function file(filename) + {var ic=open_bin$0(filename); + try + {var d=runtime.caml_md5_chan(ic,-1)} + catch(e){e = caml_wrap_exception(e);caml_ml_close_channel(ic);throw e} + caml_ml_close_channel(ic); + return d} + function output$0(chan,digest){return output_string(chan,digest)} + function input$0(chan){return really_input_string(chan,16)} + function char_hex(n){var _oM_=10 <= n?87:48;return n + _oM_ | 0} + function to_hex(d) + {if(16 !== caml_ml_string_length(d))invalid_arg(cst_Digest_to_hex); + var result=caml_create_bytes(32),i=0; + for(;;) + {var x=caml_string_get(d,i); + caml_bytes_unsafe_set(result,i * 2 | 0,char_hex(x >>> 4 | 0)); + caml_bytes_unsafe_set(result,(i * 2 | 0) + 1 | 0,char_hex(x & 15)); + var _oL_=i + 1 | 0; + if(15 === i)return caml_string_of_bytes(result); + var i=_oL_}} + function from_hex(s) + {if(32 !== caml_ml_string_length(s))invalid_arg(cst_Digest_from_hex); + function digit(c) + {if(65 <= c) + {if(97 <= c) + {if(103 > c)return (c - 97 | 0) + 10 | 0} + else + if(71 > c)return (c - 65 | 0) + 10 | 0} + else + if(9 >= c - 48 >>> 0)return c - 48 | 0; + throw [0,Invalid_argument,cst_Digest_from_hex$0]} + var result=caml_create_bytes(16),i=0; + for(;;) + {var i$0=2 * i | 0,_oJ_=digit(caml_string_get(s,i$0 + 1 | 0)); + caml_bytes_set + (result,i,chr((digit(caml_string_get(s,i$0)) << 4) + _oJ_ | 0)); + var _oK_=i + 1 | 0; + if(15 === i)return caml_string_of_bytes(result); + var i=_oK_}} + var + Stdlib_Digest= + [0, + compare$9, + equal$9, + string, + bytes, + substring, + subbytes, + file, + output$0, + input$0, + to_hex, + from_hex]; + caml_register_global(814,Stdlib_Digest,"Stdlib__Digest"); + function new_state(param){return [0,caml_make_vect(55,0),0]} + function assign(st1,st2) + {blit$1(st2[1],0,st1[1],0,55);st1[2] = st2[2];return 0} + function full_init(s,seed) + {var seed$0=0 === seed.length - 1?[0,0]:seed,l=seed$0.length - 1,i$0=0; + for(;;) + {caml_check_bound(s[1],i$0)[1 + i$0] = i$0; + var _oI_=i$0 + 1 | 0; + if(54 !== i$0){var i$0=_oI_;continue} + var accu=[0,cst_x$1],_oE_=54 + max$1(55,l) | 0,_oD_=0; + if(_oE_ >= 0) + {var i=_oD_; + for(;;) + {var + j=i % 55 | 0, + k=caml_mod(i,l), + x=caml_check_bound(seed$0,k)[1 + k]; + accu[1] = string(cat(accu[1],caml_string_of_jsbytes("" + x))); + var + _oF_=accu[1], + _oz_=caml_string_get(_oF_,3) << 24, + _oA_=caml_string_get(_oF_,2) << 16, + _oB_=caml_string_get(_oF_,1) << 8, + _oC_=((caml_string_get(_oF_,0) + _oB_ | 0) + _oA_ | 0) + _oz_ | 0, + _oG_=(caml_check_bound(s[1],j)[1 + j] ^ _oC_) & 1073741823; + caml_check_bound(s[1],j)[1 + j] = _oG_; + var _oH_=i + 1 | 0; + if(_oE_ !== i){var i=_oH_;continue} + break}} + s[2] = 0; + return 0}} + function make$3(seed) + {var result=new_state(0);full_init(result,seed);return result} + function make_self_init(param){return make$3(caml_sys_random_seed(0))} + function copy$5(s){var result=new_state(0);assign(result,s);return result} + function bits(s) + {s[2] = (s[2] + 1 | 0) % 55 | 0; + var + _ow_=s[2], + curval=caml_check_bound(s[1],_ow_)[1 + _ow_], + _ox_=(s[2] + 24 | 0) % 55 | 0, + newval= + caml_check_bound(s[1],_ox_)[1 + _ox_] + + + (curval ^ (curval >>> 25 | 0) & 31) + | + 0, + newval30=newval & 1073741823, + _oy_=s[2]; + caml_check_bound(s[1],_oy_)[1 + _oy_] = newval30; + return newval30} + function intaux(s,n) + {for(;;) + {var r=bits(s),v=caml_mod(r,n); + if(((1073741823 - n | 0) + 1 | 0) < (r - v | 0))continue; + return v}} + function int$0(s,bound) + {if(1073741823 >= bound && 0 < bound)return intaux(s,bound); + return invalid_arg(cst_Random_int)} + function full_int(s,bound) + {if(0 >= bound)return invalid_arg(cst_Random_full_int); + if(1073741823 >= bound)return intaux(s,bound); + for(;;) + {var b1=bits(s),b2=bits(s); + if(bound <= 2147483647) + var bpos=(b2 & 1073725440) << 1 | b1 >>> 15 | 0,r=bpos; + else + var + b3=bits(s), + r$0=((b3 & 1073741312) << 12 | b2 >>> 9 | 0) << 20 | b1 >>> 10 | 0, + r=r$0; + var v=caml_mod(r,bound); + if(((2147483647 - bound | 0) + 1 | 0) < (r - v | 0))continue; + return v}} + function int32(s,bound) + {if(caml_lessequal(bound,0))return invalid_arg(cst_Random_int32); + for(;;) + {var b1=bits(s),b2=(bits(s) & 1) << 30,r=b1 | b2,v=caml_mod(r,bound); + if(caml_greaterthan(r - v | 0,(2147483647 - bound | 0) + 1 | 0)) + continue; + return v}} + function int64(s,bound) + {if(caml_lessequal(bound,_ce_))return invalid_arg(cst_Random_int64); + for(;;) + {var + b1=caml_int64_of_int32(bits(s)), + b2=caml_int64_shift_left(caml_int64_of_int32(bits(s)),30), + b3=caml_int64_shift_left(caml_int64_of_int32(bits(s) & 7),60), + r=caml_int64_or(b1,caml_int64_or(b2,b3)), + v=runtime.caml_int64_mod(r,bound); + if + (caml_greaterthan + (caml_int64_sub(r,v), + caml_int64_add(caml_int64_sub(max_int$2,bound),_cd_))) + continue; + return v}} + function nativeint(s,bound){return int32(s,bound)} + function float$0(s,bound) + {var r1=bits(s),r2=bits(s); + return (r1 / 1073741824. + r2) / 1073741824. * bound} + function bool(s){return 0 === (bits(s) & 1)?1:0} + function bits32(s) + {var b1=bits(s) >>> 14 | 0,b2=bits(s) >>> 14 | 0;return b1 | b2 << 16} + function bits64(s) + {var + b1=caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)),9), + b2=caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)),9), + b3=caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)),8); + return caml_int64_or + (b1, + caml_int64_or + (caml_int64_shift_left(b2,21),caml_int64_shift_left(b3,42)))} + function nativebits(s){return bits32(s)} + var default$0=[0,_cf_.slice(),0]; + function bits$0(param){return bits(default$0)} + function int$1(bound){return int$0(default$0,bound)} + function full_int$0(bound){return full_int(default$0,bound)} + function int32$0(bound){return int32(default$0,bound)} + function nativeint$0(bound){return nativeint(default$0,bound)} + function int64$0(bound){return int64(default$0,bound)} + function float$1(scale){return float$0(default$0,scale)} + function bool$0(param){return bool(default$0)} + function bits32$0(param){return bits32(default$0)} + function bits64$0(param){return bits64(default$0)} + function nativebits$0(param){return nativebits(default$0)} + function full_init$0(seed){return full_init(default$0,seed)} + function init$5(seed){return full_init(default$0,[0,seed])} + function self_init(param){return full_init$0(caml_sys_random_seed(0))} + function get_state(param){return copy$5(default$0)} + function set_state(s){return assign(default$0,s)} + var + _cg_= + [0, + make$3, + make_self_init, + copy$5, + bits, + int$0, + full_int, + int32, + nativeint, + int64, + float$0, + bool, + bits32, + bits64, + nativebits], + Stdlib_Random= + [0, + init$5, full_init$0, self_init, bits$0, @@ -25357,2139 +22919,1986 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ bits32$0, bits64$0, nativebits$0, - [0, - make, - make_self_init, - copy, - bits, - int$0, - full_int, - int32, - nativeint, - int64, - float$0, - bool, - bits32, - bits64, - nativebits], + _cg_, get_state, set_state]; - runtime.caml_register_global(18, Stdlib_Random, "Stdlib__Random"); - return; - } - (globalThis)); - -//# 17812 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_check_bound = runtime.caml_check_bound, - caml_compare = runtime.caml_compare, - caml_hash = runtime.caml_hash, - caml_make_vect = runtime.caml_make_vect, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_obj_tag = runtime.caml_obj_tag, - caml_sys_getenv = runtime.caml_sys_getenv, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - var - global_data = runtime.caml_get_global_data(), - cst = "", - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib = global_data.Stdlib, - CamlinternalLazy = global_data.CamlinternalLazy, - Stdlib_Random = global_data.Stdlib__Random, - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib_Int = global_data.Stdlib__Int, - Stdlib_Array = global_data.Stdlib__Array; - global_data.Assert_failure; - var - Stdlib_String = global_data.Stdlib__String, - cst_Hashtbl_unsupported_hash_t = "Hashtbl: unsupported hash table format", - _d_ = [0, 0]; - function ongoing_traversal(h){ - var _aE_ = h.length - 1 < 4 ? 1 : 0, _aF_ = _aE_ || (h[4] < 0 ? 1 : 0); - return _aF_; - } - function flip_ongoing_traversal(h){h[4] = - h[4] | 0; return 0;} - try{var _f_ = caml_sys_getenv("OCAMLRUNPARAM"), params = _f_;} - catch(_aC_){ - var _a_ = caml_wrap_exception(_aC_); - if(_a_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_a_, 0); - try{var _e_ = caml_sys_getenv("CAMLRUNPARAM"), _c_ = _e_;} - catch(_aD_){ - var _b_ = caml_wrap_exception(_aD_); - if(_b_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_b_, 0); - var _c_ = cst; - } - var params = _c_; - } - var - randomized_default = caml_call2(Stdlib_String[14], params, 82), - randomized = [0, randomized_default]; - function randomize(param){randomized[1] = 1; return 0;} - function is_randomized(param){return randomized[1];} - var - prng = [246, function(_aB_){return caml_call1(Stdlib_Random[15][2], 0);}]; - function power_2_above(x, n){ - var x$0 = x; - for(;;){ - if(n <= x$0) return x$0; - if(Stdlib_Sys[13] < (x$0 * 2 | 0)) return x$0; - var x$1 = x$0 * 2 | 0, x$0 = x$1; - } - } - function create(opt, initial_size){ - if(opt) var sth = opt[1], random = sth; else var random = randomized[1]; - var s = power_2_above(16, initial_size); - if(random) - var - _az_ = caml_obj_tag(prng), - _aA_ = - 250 === _az_ - ? prng[1] - : 246 === _az_ ? caml_call1(CamlinternalLazy[2], prng) : prng, - seed = caml_call1(Stdlib_Random[15][4], _aA_); - else - var seed = 0; - return [0, 0, caml_make_vect(s, 0), seed, s]; - } - function clear(h){ - var _ay_ = 0 < h[1] ? 1 : 0; - return _ay_ - ? (h - [1] - = 0, - caml_call4(Stdlib_Array[9], h[2], 0, h[2].length - 1, 0)) - : _ay_; - } - function reset(h){ - var len = h[2].length - 1; - if(4 <= h.length - 1 && len !== caml_call1(Stdlib[18], h[4])){ - h[1] = 0; - h[2] = caml_make_vect(caml_call1(Stdlib[18], h[4]), 0); - return 0; - } - return clear(h); - } - function copy_bucketlist(param){ - if(! param) return 0; + caml_register_global(815,Stdlib_Random,"Stdlib__Random"); + function ongoing_traversal(h) + {var _ou_=h.length - 1 < 4?1:0,_ov_=_ou_ || (h[4] < 0?1:0);return _ov_} + function flip_ongoing_traversal(h){h[4] = - h[4] | 0;return 0} + try + {var _c3_=caml_sys_getenv(cst_OCAMLRUNPARAM),params=_c3_} + catch(_os_) + {_os_ = caml_wrap_exception(_os_); + if(_os_ !== Not_found)throw _os_; + try + {var _c2_=caml_sys_getenv(cst_CAMLRUNPARAM),_ch_=_c2_} + catch(_ot_) + {_ot_ = caml_wrap_exception(_ot_); + if(_ot_ !== Not_found)throw _ot_; + var _ch_=cst$66} + var params=_ch_} var - key = param[1], - data = param[2], - next = param[3], - prec$1 = [0, key, data, next], - prec = prec$1, - param$0 = next; - for(;;){ - if(! param$0) return prec$1; - var - key$0 = param$0[1], - data$0 = param$0[2], - next$0 = param$0[3], - prec$0 = [0, key$0, data$0, next$0]; - prec[3] = prec$0; - var prec = prec$0, param$0 = next$0; - } - } - function copy(h){ - var - _av_ = h[4], - _aw_ = h[3], - _ax_ = caml_call2(Stdlib_Array[15], copy_bucketlist, h[2]); - return [0, h[1], _ax_, _aw_, _av_]; - } - function length(h){return h[1];} - function insert_all_buckets(indexfun, inplace, odata, ndata){ - var - nsize = ndata.length - 1, - ndata_tail = caml_make_vect(nsize, 0), - _ap_ = odata.length - 1 - 1 | 0, - _ao_ = 0; - if(_ap_ >= 0){ - var i$0 = _ao_; - a: - for(;;){ - var cell$1 = caml_check_bound(odata, i$0)[1 + i$0], cell = cell$1; - for(;;){ - if(cell){ - var - key = cell[1], - data = cell[2], - next = cell[3], - cell$0 = inplace ? cell : [0, key, data, 0], - nidx = caml_call1(indexfun, key), - match = caml_check_bound(ndata_tail, nidx)[1 + nidx]; - if(match) - match[3] = cell$0; - else - caml_check_bound(ndata, nidx)[1 + nidx] = cell$0; - caml_check_bound(ndata_tail, nidx)[1 + nidx] = cell$0; - var cell = next; - continue; - } - var _au_ = i$0 + 1 | 0; - if(_ap_ !== i$0){var i$0 = _au_; continue a;} - break; - } - break; - } - } - if(inplace){ - var _ar_ = nsize - 1 | 0, _aq_ = 0; - if(_ar_ >= 0){ - var i = _aq_; - for(;;){ - var match$0 = caml_check_bound(ndata_tail, i)[1 + i]; - if(match$0) match$0[3] = 0; - var _at_ = i + 1 | 0; - if(_ar_ !== i){var i = _at_; continue;} - break; - } - } - var _as_ = 0; - } - else - var _as_ = inplace; - return _as_; - } - function resize(indexfun, h){ - var - odata = h[2], - osize = odata.length - 1, - nsize = osize * 2 | 0, - _an_ = nsize < Stdlib_Sys[13] ? 1 : 0; - if(! _an_) return _an_; - var ndata = caml_make_vect(nsize, 0), inplace = 1 - ongoing_traversal(h); - h[2] = ndata; - return insert_all_buckets(caml_call1(indexfun, h), inplace, odata, ndata); - } - function iter(f, h){ - var old_trav = ongoing_traversal(h); - if(1 - old_trav) flip_ongoing_traversal(h); - try{ - var d = h[2], _aj_ = d.length - 1 - 1 | 0, _ai_ = 0; - if(_aj_ >= 0){ - var i = _ai_; - a: - for(;;){ - var param = caml_check_bound(d, i)[1 + i]; - for(;;){ - if(param){ - var key = param[1], data = param[2], next = param[3]; - caml_call2(f, key, data); - var param = next; - continue; - } - var _am_ = i + 1 | 0; - if(_aj_ !== i){var i = _am_; continue a;} - break; - } - break; - } - } - var _ak_ = 1 - old_trav, _al_ = _ak_ ? flip_ongoing_traversal(h) : _ak_; - return _al_; - } - catch(exn$0){ - var exn = caml_wrap_exception(exn$0); - if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); - flip_ongoing_traversal(h); - throw caml_maybe_attach_backtrace(exn, 0); - } - } - function filter_map_inplace(f, h){ - var d = h[2], old_trav = ongoing_traversal(h); - if(1 - old_trav) flip_ongoing_traversal(h); - try{ - var _ae_ = d.length - 1 - 1 | 0, _ad_ = 0; - if(_ae_ >= 0){ - var i = _ad_; - a: - for(;;){ - var slot$0 = caml_check_bound(h[2], i)[1 + i], prec = 0, slot = slot$0; - for(;;){ - if(slot){ - var - key = slot[1], - data = slot[2], - next = slot[3], - match = caml_call2(f, key, data); - if(! match){h[1] = h[1] - 1 | 0; var slot = next; continue;} - var data$0 = match[1]; - if(prec) - prec[3] = slot; - else - caml_check_bound(h[2], i)[1 + i] = slot; - slot[2] = data$0; - var prec = slot, slot = next; - continue; - } - if(prec) prec[3] = 0; else caml_check_bound(h[2], i)[1 + i] = 0; - var _ah_ = i + 1 | 0; - if(_ae_ !== i){var i = _ah_; continue a;} - break; - } - break; - } - } - var _af_ = 1 - old_trav, _ag_ = _af_ ? flip_ongoing_traversal(h) : _af_; - return _ag_; - } - catch(exn$0){ - var exn = caml_wrap_exception(exn$0); - if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); - flip_ongoing_traversal(h); - throw caml_maybe_attach_backtrace(exn, 0); - } - } - function fold(f, h, init){ - var old_trav = ongoing_traversal(h); - if(1 - old_trav) flip_ongoing_traversal(h); - try{ - var d = h[2], accu$1 = [0, init], _aa_ = d.length - 1 - 1 | 0, _$_ = 0; - if(_aa_ >= 0){ - var i = _$_; - a: - for(;;){ + randomized_default=contains$0(params,82), + randomized=[0,randomized_default]; + function randomize(param){randomized[1] = 1;return 0} + function is_randomized(param){return randomized[1]} + var prng=[246,function(_or_){return caml_call1(_cg_[2],0)}]; + function power_2_above(x,n) + {var x$0=x; + for(;;) + {if(n <= x$0)return x$0; + if(max_array_length < (x$0 * 2 | 0))return x$0; + var x$1=x$0 * 2 | 0,x$0=x$1}} + function create$3(opt,initial_size) + {if(opt)var sth=opt[1],random=sth;else var random=randomized[1]; + var s=power_2_above(16,initial_size); + if(random) var - accu$2 = accu$1[1], - b$0 = caml_check_bound(d, i)[1 + i], - b = b$0, - accu = accu$2; - for(;;){ - if(b){ - var - key = b[1], - data = b[2], - next = b[3], - accu$0 = caml_call3(f, key, data, accu), - b = next, - accu = accu$0; - continue; - } - accu$1[1] = accu; - var _ac_ = i + 1 | 0; - if(_aa_ !== i){var i = _ac_; continue a;} - break; - } - break; - } - } - if(1 - old_trav) flip_ongoing_traversal(h); - var _ab_ = accu$1[1]; - return _ab_; - } - catch(exn$0){ - var exn = caml_wrap_exception(exn$0); - if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); - flip_ongoing_traversal(h); - throw caml_maybe_attach_backtrace(exn, 0); - } - } - function bucket_length(accu, param){ - var accu$0 = accu, param$0 = param; - for(;;){ - if(! param$0) return accu$0; - var - next = param$0[3], - accu$1 = accu$0 + 1 | 0, - accu$0 = accu$1, - param$0 = next; - } - } - function stats(h){ - var _V_ = h[2], _W_ = 0; - function _X_(m, b){ - var ___ = bucket_length(0, b); - return caml_call2(Stdlib_Int[11], m, ___); - } - var - mbl = caml_call3(Stdlib_Array[17], _X_, _W_, _V_), - histo = caml_make_vect(mbl + 1 | 0, 0), - _Y_ = h[2]; - function _Z_(b){ - var l = bucket_length(0, b); - histo[1 + l] = caml_check_bound(histo, l)[1 + l] + 1 | 0; - return 0; - } - caml_call2(Stdlib_Array[13], _Z_, _Y_); - return [0, h[1], h[2].length - 1, mbl, histo]; - } - function to_seq(tbl){ - var tbl_data = tbl[2]; - function aux(i, buck, param){ - var i$0 = i, buck$0 = buck; - for(;;){ - if(buck$0){ - var key = buck$0[1], data = buck$0[2], next = buck$0[3]; - return [0, [0, key, data], function(_U_){return aux(i$0, next, _U_);}]; - } - if(i$0 === tbl_data.length - 1) return 0; + _op_=caml_obj_tag(prng), + _oq_=250 === _op_?prng[1]:246 === _op_?force_lazy_block(prng):prng, + seed=caml_call1(_cg_[4],_oq_); + else + var seed=0; + return [0,0,caml_make_vect(s,0),seed,s]} + function clear$2(h) + {var _oo_=0 < h[1]?1:0; + return _oo_?(h[1] = 0,fill$0(h[2],0,h[2].length - 1,0)):_oo_} + function reset$0(h) + {var len=h[2].length - 1; + if(4 <= h.length - 1 && len !== abs(h[4])) + {h[1] = 0;h[2] = caml_make_vect(abs(h[4]),0);return 0} + return clear$2(h)} + function copy_bucketlist(param) + {if(! param)return 0; var - buck$1 = caml_check_bound(tbl_data, i$0)[1 + i$0], - i$1 = i$0 + 1 | 0, - i$0 = i$1, - buck$0 = buck$1; - } - } - var _R_ = 0, _S_ = 0; - return function(_T_){return aux(_S_, _R_, _T_);}; - } - function to_seq_keys(m){ - var _O_ = to_seq(m); - function _P_(_Q_){return _Q_[1];} - return caml_call2(Stdlib_Seq[27], _P_, _O_); - } - function to_seq_values(m){ - var _L_ = to_seq(m); - function _M_(_N_){return _N_[2];} - return caml_call2(Stdlib_Seq[27], _M_, _L_); - } - function MakeSeeded(H){ - function key_index(h, key){ - var _K_ = h[2].length - 1 - 1 | 0; - return caml_call2(H[2], h[3], key) & _K_; - } - function add(h, key, data){ - var - i = key_index(h, key), - bucket = [0, key, data, caml_check_bound(h[2], i)[1 + i]]; - caml_check_bound(h[2], i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _J_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - return _J_ ? resize(key_index, h) : _J_; - } - function remove(h, key){ - var - i = key_index(h, key), - c = caml_check_bound(h[2], i)[1 + i], - prec$0 = 0, - prec = c; - for(;;){ - if(! prec) return 0; - var k = prec[1], next = prec[3]; - if(caml_call2(H[1], k, key)){ - h[1] = h[1] - 1 | 0; - return prec$0 - ? (prec$0[3] = next, 0) - : (caml_check_bound(h[2], i)[1 + i] = next, 0); - } - var prec$0 = prec, prec = next; - } - } - function find(h, key){ - var - _I_ = key_index(h, key), - match = caml_check_bound(h[2], _I_)[1 + _I_]; - if(! match) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k1 = match[1], d1 = match[2], next1 = match[3]; - if(caml_call2(H[1], key, k1)) return d1; - if(! next1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - if(caml_call2(H[1], key, k2)) return d2; - if(! next2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - if(caml_call2(H[1], key, k3)) return d3; - var param = next3; - for(;;){ - if(! param) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k = param[1], data = param[2], next = param[3]; - if(caml_call2(H[1], key, k)) return data; - var param = next; - } - } - function find_opt(h, key){ - var - _H_ = key_index(h, key), - match = caml_check_bound(h[2], _H_)[1 + _H_]; - if(! match) return 0; - var k1 = match[1], d1 = match[2], next1 = match[3]; - if(caml_call2(H[1], key, k1)) return [0, d1]; - if(! next1) return 0; - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - if(caml_call2(H[1], key, k2)) return [0, d2]; - if(! next2) return 0; - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - if(caml_call2(H[1], key, k3)) return [0, d3]; - var param = next3; - for(;;){ - if(! param) return 0; - var k = param[1], data = param[2], next = param[3]; - if(caml_call2(H[1], key, k)) return [0, data]; - var param = next; - } - } - function find_all(h, key){ - function find_in_bucket(param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var k = param$0[1], d = param$0[2], next = param$0[3]; - if(caml_call2(H[1], k, key)) return [0, d, find_in_bucket(next)]; - var param$0 = next; - } - } - var _G_ = key_index(h, key); - return find_in_bucket(caml_check_bound(h[2], _G_)[1 + _G_]); - } - function replace(h, key, data){ - var - i = key_index(h, key), - l = caml_check_bound(h[2], i)[1 + i], - slot = l; - for(;;){ - if(slot){ - var k = slot[1], next = slot[3]; - if(! caml_call2(H[1], k, key)){var slot = next; continue;} - slot[1] = key; - slot[2] = data; - var _D_ = 0; - } + key=param[1], + data=param[2], + next=param[3], + prec$0=[0,key,data,next], + prec=prec$0, + param$0=next; + for(;;) + {if(! param$0)return prec$0; + var + key$0=param$0[1], + data$0=param$0[2], + next$0=param$0[3], + r=[0,key$0,data$0,next$0]; + prec[3] = r; + var prec=r,param$0=next$0}} + function copy$6(init) + {var _ol_=init[4],_om_=init[3],_on_=map$7(copy_bucketlist,init[2]); + return [0,init[1],_on_,_om_,_ol_]} + function length$5(h){return h[1]} + function insert_all_buckets(indexfun,inplace,odata,ndata) + {var + nsize=ndata.length - 1, + ndata_tail=caml_make_vect(nsize,0), + _of_=odata.length - 1 - 1 | 0, + _oe_=0; + if(_of_ >= 0) + {var i$0=_oe_; + a: + for(;;) + {var cell$1=caml_check_bound(odata,i$0)[1 + i$0],cell=cell$1; + for(;;) + {if(cell) + {var + key=cell[1], + data=cell[2], + next=cell[3], + cell$0=inplace?cell:[0,key,data,0], + nidx=caml_call1(indexfun,key), + match=caml_check_bound(ndata_tail,nidx)[1 + nidx]; + if(match) + match[3] = cell$0; + else + caml_check_bound(ndata,nidx)[1 + nidx] = cell$0; + caml_check_bound(ndata_tail,nidx)[1 + nidx] = cell$0; + var cell=next; + continue} + var _ok_=i$0 + 1 | 0; + if(_of_ !== i$0){var i$0=_ok_;continue a} + break} + break}} + if(inplace) + {var _oh_=nsize - 1 | 0,_og_=0; + if(_oh_ >= 0) + {var i=_og_; + for(;;) + {var match$0=caml_check_bound(ndata_tail,i)[1 + i]; + if(match$0)match$0[3] = 0; + var _oj_=i + 1 | 0; + if(_oh_ !== i){var i=_oj_;continue} + break}} + var _oi_=0} else - var _D_ = 1; - if(_D_){ - caml_check_bound(h[2], i)[1 + i] = [0, key, data, l]; - h[1] = h[1] + 1 | 0; - var _E_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - if(_E_) return resize(key_index, h); - var _F_ = _E_; - } - else - var _F_ = _D_; - return _F_; - } - } - function mem(h, key){ - var - _C_ = key_index(h, key), - param = caml_check_bound(h[2], _C_)[1 + _C_]; - for(;;){ - if(! param) return 0; - var k = param[1], next = param[3], _B_ = caml_call2(H[1], k, key); - if(_B_) return _B_; - var param = next; - } - } - function add_seq(tbl, i){ - function _A_(param){ - var v = param[2], k = param[1]; - return add(tbl, k, v); - } - return caml_call2(Stdlib_Seq[4], _A_, i); - } - function replace_seq(tbl, i){ - function _z_(param){ - var v = param[2], k = param[1]; - return replace(tbl, k, v); - } - return caml_call2(Stdlib_Seq[4], _z_, i); - } - function of_seq(i){ - var tbl = create(0, 16); - replace_seq(tbl, i); - return tbl; - } - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq]; - } - function Make(H){ - var equal = H[1]; - function hash(seed, x){return caml_call1(H[2], x);} - var - include = MakeSeeded([0, equal, hash]), - clear = include[2], - reset = include[3], - copy = include[4], - add = include[5], - remove = include[6], - find = include[7], - find_opt = include[8], - find_all = include[9], - replace = include[10], - mem = include[11], - iter = include[12], - filter_map_inplace = include[13], - fold = include[14], - length = include[15], - stats = include[16], - to_seq = include[17], - to_seq_keys = include[18], - to_seq_values = include[19], - add_seq = include[20], - replace_seq = include[21], - _y_ = include[1]; - function create(sz){return caml_call2(_y_, _d_, sz);} - function of_seq(i){ - var tbl = create(16); - caml_call2(replace_seq, tbl, i); - return tbl; - } - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq]; - } - function hash(x){return caml_hash(10, 100, 0, x);} - function hash_param(n1, n2, x){return caml_hash(n1, n2, 0, x);} - function seeded_hash(seed, x){return caml_hash(10, 100, seed, x);} - function key_index(h, key){ - return 4 <= h.length - 1 - ? caml_hash(10, 100, h[3], key) & (h[2].length - 1 - 1 | 0) - : caml_call1(Stdlib[1], cst_Hashtbl_unsupported_hash_t); - } - function add(h, key, data){ - var - i = key_index(h, key), - bucket = [0, key, data, caml_check_bound(h[2], i)[1 + i]]; - caml_check_bound(h[2], i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _x_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - return _x_ ? resize(key_index, h) : _x_; - } - function remove(h, key){ - var - i = key_index(h, key), - c = caml_check_bound(h[2], i)[1 + i], - prec$0 = 0, - prec = c; - for(;;){ - if(! prec) return 0; - var k = prec[1], next = prec[3]; - if(0 === caml_compare(k, key)){ - h[1] = h[1] - 1 | 0; - return prec$0 - ? (prec$0[3] = next, 0) - : (caml_check_bound(h[2], i)[1 + i] = next, 0); - } - var prec$0 = prec, prec = next; - } - } - function find(h, key){ - var _w_ = key_index(h, key), match = caml_check_bound(h[2], _w_)[1 + _w_]; - if(! match) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k1 = match[1], d1 = match[2], next1 = match[3]; - if(0 === caml_compare(key, k1)) return d1; - if(! next1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - if(0 === caml_compare(key, k2)) return d2; - if(! next2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - if(0 === caml_compare(key, k3)) return d3; - var param = next3; - for(;;){ - if(! param) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k = param[1], data = param[2], next = param[3]; - if(0 === caml_compare(key, k)) return data; - var param = next; - } - } - function find_opt(h, key){ - var _v_ = key_index(h, key), match = caml_check_bound(h[2], _v_)[1 + _v_]; - if(! match) return 0; - var k1 = match[1], d1 = match[2], next1 = match[3]; - if(0 === caml_compare(key, k1)) return [0, d1]; - if(! next1) return 0; - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - if(0 === caml_compare(key, k2)) return [0, d2]; - if(! next2) return 0; - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - if(0 === caml_compare(key, k3)) return [0, d3]; - var param = next3; - for(;;){ - if(! param) return 0; - var k = param[1], data = param[2], next = param[3]; - if(0 === caml_compare(key, k)) return [0, data]; - var param = next; - } - } - function find_all(h, key){ - function find_in_bucket(param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var k = param$0[1], data = param$0[2], next = param$0[3]; - if(0 === caml_compare(k, key)) return [0, data, find_in_bucket(next)]; - var param$0 = next; - } - } - var _u_ = key_index(h, key); - return find_in_bucket(caml_check_bound(h[2], _u_)[1 + _u_]); - } - function replace(h, key, data){ - var i = key_index(h, key), l = caml_check_bound(h[2], i)[1 + i], slot = l; - for(;;){ - if(slot){ - var k = slot[1], next = slot[3]; - if(0 !== caml_compare(k, key)){var slot = next; continue;} - slot[1] = key; - slot[2] = data; - var _r_ = 0; - } - else - var _r_ = 1; - if(_r_){ - caml_check_bound(h[2], i)[1 + i] = [0, key, data, l]; + var _oi_=inplace; + return _oi_} + function resize$0(indexfun,h) + {var + odata=h[2], + osize=odata.length - 1, + nsize=osize * 2 | 0, + _od_=nsize < max_array_length?1:0; + if(! _od_)return _od_; + var ndata=caml_make_vect(nsize,0),inplace=1 - ongoing_traversal(h); + h[2] = ndata; + return insert_all_buckets(caml_call1(indexfun,h),inplace,odata,ndata)} + function iter$10(f,h) + {function do_bucket(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var key=param$0[1],data=param$0[2],next=param$0[3]; + caml_call2(f,key,data); + var param$0=next}} + var old_trav=ongoing_traversal(h); + if(1 - old_trav)flip_ongoing_traversal(h); + try + {var d=h[2],_n$_=d.length - 1 - 1 | 0,_n__=0; + if(_n$_ >= 0) + {var i=_n__; + for(;;) + {do_bucket(caml_check_bound(d,i)[1 + i]); + var _oc_=i + 1 | 0; + if(_n$_ !== i){var i=_oc_;continue} + break}} + var _oa_=1 - old_trav,_ob_=_oa_?flip_ongoing_traversal(h):_oa_; + return _ob_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(old_trav)throw exn; + flip_ongoing_traversal(h); + throw exn}} + function filter_map_inplace_bucket(f,h,i,prec,slot) + {var prec$0=prec,slot$0=slot; + for(;;) + {if(! slot$0) + return prec$0 + ?(prec$0[3] = 0,0) + :(caml_check_bound(h[2],i)[1 + i] = 0,0); + var + key=slot$0[1], + data=slot$0[2], + next=slot$0[3], + match=caml_call2(f,key,data); + if(! match){h[1] = h[1] - 1 | 0;var slot$0=next;continue} + var data$0=match[1]; + if(prec$0) + prec$0[3] = slot$0; + else + caml_check_bound(h[2],i)[1 + i] = slot$0; + slot$0[2] = data$0; + var prec$0=slot$0,slot$0=next}} + function filter_map_inplace(f,h) + {var d=h[2],old_trav=ongoing_traversal(h); + if(1 - old_trav)flip_ongoing_traversal(h); + try + {var _n6_=d.length - 1 - 1 | 0,_n5_=0; + if(_n6_ >= 0) + {var i=_n5_; + for(;;) + {filter_map_inplace_bucket(f,h,i,0,caml_check_bound(h[2],i)[1 + i]); + var _n9_=i + 1 | 0; + if(_n6_ !== i){var i=_n9_;continue} + break}} + var _n7_=1 - old_trav,_n8_=_n7_?flip_ongoing_traversal(h):_n7_; + return _n8_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(old_trav)throw exn; + flip_ongoing_traversal(h); + throw exn}} + function fold$4(f,h,init) + {function do_bucket(b,accu) + {var b$0=b,accu$0=accu; + for(;;) + {if(! b$0)return accu$0; + var + key=b$0[1], + data=b$0[2], + next=b$0[3], + accu$1=caml_call3(f,key,data,accu$0), + b$0=next, + accu$0=accu$1}} + var old_trav=ongoing_traversal(h); + if(1 - old_trav)flip_ongoing_traversal(h); + try + {var d=h[2],accu=[0,init],_n1_=d.length - 1 - 1 | 0,_n0_=0; + if(_n1_ >= 0) + {var i=_n0_; + for(;;) + {var _n3_=accu[1]; + accu[1] = do_bucket(caml_check_bound(d,i)[1 + i],_n3_); + var _n4_=i + 1 | 0; + if(_n1_ !== i){var i=_n4_;continue} + break}} + if(1 - old_trav)flip_ongoing_traversal(h); + var _n2_=accu[1]; + return _n2_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(old_trav)throw exn; + flip_ongoing_traversal(h); + throw exn}} + function bucket_length(accu,param) + {var accu$0=accu,param$0=param; + for(;;) + {if(! param$0)return accu$0; + var + param$1=param$0[3], + accu$1=accu$0 + 1 | 0, + accu$0=accu$1, + param$0=param$1}} + function stats(h) + {var + _nW_=h[2], + _nX_=0, + mbl= + fold_left$3 + (function(m,b){return max$1(m,bucket_length(0,b))},_nX_,_nW_), + histo=caml_make_vect(mbl + 1 | 0,0), + _nY_=h[2]; + iter$5 + (function(b) + {var + l=bucket_length(0,b), + _nZ_=caml_check_bound(histo,l)[1 + l] + 1 | 0; + caml_check_bound(histo,l)[1 + l] = _nZ_; + return 0}, + _nY_); + return [0,h[1],h[2].length - 1,mbl,histo]} + function to_seq$9(tbl) + {var tbl_data=tbl[2]; + function aux(i,buck,param) + {var i$0=i,buck$0=buck; + for(;;) + {if(buck$0) + {var key=buck$0[1],data=buck$0[2],next=buck$0[3]; + return [0,[0,key,data],function(_nV_){return aux(i$0,next,_nV_)}]} + if(i$0 === tbl_data.length - 1)return 0; + var + buck$1=caml_check_bound(tbl_data,i$0)[1 + i$0], + i$1=i$0 + 1 | 0, + i$0=i$1, + buck$0=buck$1}} + var _nS_=0,_nT_=0; + return function(_nU_){return aux(_nT_,_nS_,_nU_)}} + function to_seq_keys(m) + {var _nO_=to_seq$9(m); + function _nP_(_nR_){return _nR_[1]} + return function(_nQ_){return map$1(_nP_,_nO_,_nQ_)}} + function to_seq_values(m) + {var _nK_=to_seq$9(m); + function _nL_(_nN_){return _nN_[2]} + return function(_nM_){return map$1(_nL_,_nK_,_nM_)}} + function MakeSeeded(H) + {function key_index(h,key) + {var _nJ_=h[2].length - 1 - 1 | 0; + return caml_call2(H[2],h[3],key) & _nJ_} + function add(h,key,data) + {var + i=key_index(h,key), + bucket=[0,key,data,caml_check_bound(h[2],i)[1 + i]]; + caml_check_bound(h[2],i)[1 + i] = bucket; + h[1] = h[1] + 1 | 0; + var _nI_=h[2].length - 1 << 1 < h[1]?1:0; + return _nI_?resize$0(key_index,h):_nI_} + function remove(h,key) + {var + i=key_index(h,key), + c$0=caml_check_bound(h[2],i)[1 + i], + prec=0, + c=c$0; + for(;;) + {if(! c)return 0; + var k=c[1],next=c[3]; + if(caml_call2(H[1],k,key)) + {h[1] = h[1] - 1 | 0; + return prec + ?(prec[3] = next,0) + :(caml_check_bound(h[2],i)[1 + i] = next,0)} + var prec=c,c=next}} + function find(h,key) + {var _nH_=key_index(h,key),match=caml_check_bound(h[2],_nH_)[1 + _nH_]; + if(! match)throw Not_found; + var k1=match[1],d1=match[2],next1=match[3]; + if(caml_call2(H[1],key,k1))return d1; + if(! next1)throw Not_found; + var k2=next1[1],d2=next1[2],next2=next1[3]; + if(caml_call2(H[1],key,k2))return d2; + if(! next2)throw Not_found; + var k3=next2[1],d3=next2[2],next3=next2[3]; + if(caml_call2(H[1],key,k3))return d3; + var param=next3; + for(;;) + {if(! param)throw Not_found; + var k=param[1],data=param[2],next=param[3]; + if(caml_call2(H[1],key,k))return data; + var param=next}} + function find_opt(h,key) + {var _nG_=key_index(h,key),match=caml_check_bound(h[2],_nG_)[1 + _nG_]; + if(! match)return 0; + var k1=match[1],d1=match[2],next1=match[3]; + if(caml_call2(H[1],key,k1))return [0,d1]; + if(! next1)return 0; + var k2=next1[1],d2=next1[2],next2=next1[3]; + if(caml_call2(H[1],key,k2))return [0,d2]; + if(! next2)return 0; + var k3=next2[1],d3=next2[2],next3=next2[3]; + if(caml_call2(H[1],key,k3))return [0,d3]; + var param=next3; + for(;;) + {if(! param)return 0; + var k=param[1],data=param[2],next=param[3]; + if(caml_call2(H[1],key,k))return [0,data]; + var param=next}} + function find_all(h,key) + {function find_in_bucket(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var k=param$0[1],d=param$0[2],next=param$0[3]; + if(caml_call2(H[1],k,key))return [0,d,find_in_bucket(next)]; + var param$0=next}} + var _nF_=key_index(h,key); + return find_in_bucket(caml_check_bound(h[2],_nF_)[1 + _nF_])} + function replace(h,key,data) + {var + i=key_index(h,key), + param$0=caml_check_bound(h[2],i)[1 + i], + param=param$0; + for(;;) + {if(param) + {var k=param[1],next=param[3]; + if(! caml_call2(H[1],k,key)){var param=next;continue} + param[1] = key; + param[2] = data; + var _nC_=0} + else + var _nC_=1; + if(_nC_) + {caml_check_bound(h[2],i)[1 + i] = [0,key,data,param$0]; + h[1] = h[1] + 1 | 0; + var _nD_=h[2].length - 1 << 1 < h[1]?1:0; + if(_nD_)return resize$0(key_index,h); + var _nE_=_nD_} + else + var _nE_=_nC_; + return _nE_}} + function mem(h,key) + {var + _nB_=key_index(h,key), + param$0=caml_check_bound(h[2],_nB_)[1 + _nB_], + param=param$0; + for(;;) + {if(! param)return 0; + var k=param[1],next=param[3],_nA_=caml_call2(H[1],k,key); + if(_nA_)return _nA_; + var param=next}} + function add_seq(tbl,i) + {return iter + (function(param) + {var v=param[2],k=param[1];return add(tbl,k,v)}, + i)} + function replace_seq(tbl,i) + {return iter + (function(param) + {var v=param[2],k=param[1];return replace(tbl,k,v)}, + i)} + function of_seq(i){var tbl=create$3(0,16);replace_seq(tbl,i);return tbl} + return [0, + create$3, + clear$2, + reset$0, + copy$6, + add, + remove, + find, + find_opt, + find_all, + replace, + mem, + iter$10, + filter_map_inplace, + fold$4, + length$5, + stats, + to_seq$9, + to_seq_keys, + to_seq_values, + add_seq, + replace_seq, + of_seq]} + function Make$0(H) + {var equal=H[1]; + function hash(seed,x){return caml_call1(H[2],x)} + var + include=MakeSeeded([0,equal,hash]), + clear=include[2], + reset=include[3], + copy=include[4], + add=include[5], + remove=include[6], + find=include[7], + find_opt=include[8], + find_all=include[9], + replace=include[10], + mem=include[11], + iter=include[12], + filter_map_inplace=include[13], + fold=include[14], + length=include[15], + stats=include[16], + to_seq=include[17], + to_seq_keys=include[18], + to_seq_values=include[19], + add_seq=include[20], + replace_seq=include[21], + _nz_=include[1]; + function create(sz){return caml_call2(_nz_,_ci_,sz)} + function of_seq(i) + {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} + return [0, + create, + clear, + reset, + copy, + add, + remove, + find, + find_opt, + find_all, + replace, + mem, + iter, + filter_map_inplace, + fold, + length, + stats, + to_seq, + to_seq_keys, + to_seq_values, + add_seq, + replace_seq, + of_seq]} + function hash$1(x){return caml_hash(10,100,0,x)} + function hash_param(n1,n2,x){return caml_hash(n1,n2,0,x)} + function seeded_hash(seed,x){return caml_hash(10,100,seed,x)} + function key_index(h,key) + {return 4 <= h.length - 1 + ?caml_hash(10,100,h[3],key) & (h[2].length - 1 - 1 | 0) + :invalid_arg(cst_Hashtbl_unsupported_hash_t)} + function add$0(h,key,data) + {var + i=key_index(h,key), + bucket=[0,key,data,caml_check_bound(h[2],i)[1 + i]]; + caml_check_bound(h[2],i)[1 + i] = bucket; h[1] = h[1] + 1 | 0; - var _s_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - if(_s_) return resize(key_index, h); - var _t_ = _s_; - } - else - var _t_ = _r_; - return _t_; - } - } - function mem(h, key){ - var _q_ = key_index(h, key), param = caml_check_bound(h[2], _q_)[1 + _q_]; - for(;;){ - if(! param) return 0; - var - k = param[1], - next = param[3], - _p_ = 0 === caml_compare(k, key) ? 1 : 0; - if(_p_) return _p_; - var param = next; - } - } - function add_seq(tbl, i){ - function _o_(param){ - var v = param[2], k = param[1]; - return add(tbl, k, v); - } - return caml_call2(Stdlib_Seq[4], _o_, i); - } - function replace_seq(tbl, i){ - function _n_(param){ - var v = param[2], k = param[1]; - return replace(tbl, k, v); - } - return caml_call2(Stdlib_Seq[4], _n_, i); - } - function of_seq(i){ - var tbl = create(0, 16); - replace_seq(tbl, i); - return tbl; - } - function rebuild(opt, h){ - if(opt) var sth = opt[1], random = sth; else var random = randomized[1]; - var s = power_2_above(16, h[2].length - 1); - if(random) - var - _g_ = caml_obj_tag(prng), - _h_ = - 250 === _g_ - ? prng[1] - : 246 === _g_ ? caml_call1(CamlinternalLazy[2], prng) : prng, - seed = caml_call1(Stdlib_Random[15][4], _h_); - else - var seed = 4 <= h.length - 1 ? h[3] : 0; + var _ny_=h[2].length - 1 << 1 < h[1]?1:0; + return _ny_?resize$0(key_index,h):_ny_} + function remove(h,key) + {var i=key_index(h,key),c$0=caml_check_bound(h[2],i)[1 + i],prec=0,c=c$0; + for(;;) + {if(! c)return 0; + var k=c[1],next=c[3]; + if(0 === caml_compare(k,key)) + {h[1] = h[1] - 1 | 0; + return prec + ?(prec[3] = next,0) + :(caml_check_bound(h[2],i)[1 + i] = next,0)} + var prec=c,c=next}} + function find$1(h,key) + {var _nx_=key_index(h,key),match=caml_check_bound(h[2],_nx_)[1 + _nx_]; + if(! match)throw Not_found; + var k1=match[1],d1=match[2],next1=match[3]; + if(0 === caml_compare(key,k1))return d1; + if(! next1)throw Not_found; + var k2=next1[1],d2=next1[2],next2=next1[3]; + if(0 === caml_compare(key,k2))return d2; + if(! next2)throw Not_found; + var k3=next2[1],d3=next2[2],next3=next2[3]; + if(0 === caml_compare(key,k3))return d3; + var param=next3; + for(;;) + {if(! param)throw Not_found; + var k=param[1],data=param[2],next=param[3]; + if(0 === caml_compare(key,k))return data; + var param=next}} + function find_opt$1(h,key) + {var _nw_=key_index(h,key),match=caml_check_bound(h[2],_nw_)[1 + _nw_]; + if(! match)return 0; + var k1=match[1],d1=match[2],next1=match[3]; + if(0 === caml_compare(key,k1))return [0,d1]; + if(! next1)return 0; + var k2=next1[1],d2=next1[2],next2=next1[3]; + if(0 === caml_compare(key,k2))return [0,d2]; + if(! next2)return 0; + var k3=next2[1],d3=next2[2],next3=next2[3]; + if(0 === caml_compare(key,k3))return [0,d3]; + var param=next3; + for(;;) + {if(! param)return 0; + var k=param[1],data=param[2],next=param[3]; + if(0 === caml_compare(key,k))return [0,data]; + var param=next}} + function find_all$0(h,key) + {function find_in_bucket(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var k=param$0[1],data=param$0[2],next=param$0[3]; + if(0 === caml_compare(k,key))return [0,data,find_in_bucket(next)]; + var param$0=next}} + var _nv_=key_index(h,key); + return find_in_bucket(caml_check_bound(h[2],_nv_)[1 + _nv_])} + function replace(h,key,data) + {var + i=key_index(h,key), + param$0=caml_check_bound(h[2],i)[1 + i], + param=param$0; + for(;;) + {if(param) + {var k=param[1],next=param[3]; + if(0 !== caml_compare(k,key)){var param=next;continue} + param[1] = key; + param[2] = data; + var _ns_=0} + else + var _ns_=1; + if(_ns_) + {caml_check_bound(h[2],i)[1 + i] = [0,key,data,param$0]; + h[1] = h[1] + 1 | 0; + var _nt_=h[2].length - 1 << 1 < h[1]?1:0; + if(_nt_)return resize$0(key_index,h); + var _nu_=_nt_} + else + var _nu_=_ns_; + return _nu_}} + function mem$2(h,key) + {var + _nr_=key_index(h,key), + param$0=caml_check_bound(h[2],_nr_)[1 + _nr_], + param=param$0; + for(;;) + {if(! param)return 0; + var k=param[1],next=param[3],_nq_=0 === caml_compare(k,key)?1:0; + if(_nq_)return _nq_; + var param=next}} + function add_seq$2(tbl,i) + {return iter + (function(param) + {var v=param[2],k=param[1];return add$0(tbl,k,v)}, + i)} + function replace_seq(tbl,i) + {return iter + (function(param) + {var v=param[2],k=param[1];return replace(tbl,k,v)}, + i)} + function of_seq$7(i){var tbl=create$3(0,16);replace_seq(tbl,i);return tbl} + function rebuild(opt,h) + {if(opt)var sth=opt[1],random=sth;else var random=randomized[1]; + var s=power_2_above(16,h[2].length - 1); + if(random) + var + _nj_=caml_obj_tag(prng), + _nk_=250 === _nj_?prng[1]:246 === _nj_?force_lazy_block(prng):prng, + seed=caml_call1(_cg_[4],_nk_); + else + var seed=4 <= h.length - 1?h[3]:0; + var + _nl_=4 <= h.length - 1?h[4]:s, + h$0=[0,h[1],caml_make_vect(s,0),seed,_nl_], + _nm_=h$0[2], + _nn_=h[2], + _no_=0; + insert_all_buckets + (function(_np_){return key_index(h$0,_np_)},_no_,_nn_,_nm_); + return h$0} var - _i_ = 4 <= h.length - 1 ? h[4] : s, - h$0 = [0, h[1], caml_make_vect(s, 0), seed, _i_], - _j_ = h$0[2], - _k_ = h[2], - _l_ = 0; - insert_all_buckets - (function(_m_){return key_index(h$0, _m_);}, _l_, _k_, _j_); - return h$0; - } - var - Stdlib_Hashtbl = + Stdlib_Hashtbl= [0, - create, - clear, - reset, - copy, - add, - find, - find_opt, - find_all, - mem, + create$3, + clear$2, + reset$0, + copy$6, + add$0, + find$1, + find_opt$1, + find_all$0, + mem$2, remove, replace, - iter, + iter$10, filter_map_inplace, - fold, - length, + fold$4, + length$5, randomize, is_randomized, rebuild, stats, - to_seq, + to_seq$9, to_seq_keys, to_seq_values, - add_seq, + add_seq$2, replace_seq, - of_seq, - Make, + of_seq$7, + Make$0, MakeSeeded, - hash, + hash$1, seeded_hash, hash_param, caml_hash]; - runtime.caml_register_global(15, Stdlib_Hashtbl, "Stdlib__Hashtbl"); - return; - } - (globalThis)); - -//# 19123 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$17 = "", - cst$18 = ">", - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_string_length = runtime.caml_ml_string_length; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - cst$15 = cst$17, - cst$16 = cst$17, - cst$14 = ".", - cst$11 = cst$18, - cst$12 = "<\/", - cst$13 = cst$17, - cst$8 = cst$18, - cst$9 = "<", - cst$10 = cst$17, - cst$7 = "\n", - cst$3 = cst$17, - cst$4 = cst$17, - cst$5 = cst$17, - cst$6 = cst$17, - cst = cst$17, - cst$0 = cst$17, - cst$1 = cst$17, - cst$2 = cst$17, - Stdlib_Queue = global_data.Stdlib__Queue, - CamlinternalFormat = global_data.CamlinternalFormat, - Stdlib = global_data.Stdlib, - Stdlib_String = global_data.Stdlib__String, - Stdlib_Buffer = global_data.Stdlib__Buffer, - Stdlib_List = global_data.Stdlib__List, - Stdlib_Stack = global_data.Stdlib__Stack, - Stdlib_Int = global_data.Stdlib__Int, - Stdlib_Bytes = global_data.Stdlib__Bytes, - _f_ = [3, 0, 3], - cst_Format_pp_set_geometry = "Format.pp_set_geometry: ", - _e_ = [1, "max_indent < 2"], - _c_ = [1, "margin <= max_indent"], - _d_ = [0, 0], - _b_ = [0, cst$17], - _a_ = [0, cst$17, 0, cst$17], - cst_Stdlib_Format_String_tag = "Stdlib.Format.String_tag"; - function id(x){return x;} - var - String_tag = - [248, cst_Stdlib_Format_String_tag, runtime.caml_fresh_oo_id(0)], - zero = 0, - unknown = -1; - function pp_enqueue(state, token){ - state[13] = state[13] + token[3] | 0; - return caml_call2(Stdlib_Queue[3], token, state[28]); - } - var pp_infinity = 1000000010; - function pp_output_string(state, s){ - return caml_call3(state[17], s, 0, caml_ml_string_length(s)); - } - function pp_output_newline(state){return caml_call1(state[19], 0);} - function format_pp_text(state, size, text){ - state[9] = state[9] - size | 0; - pp_output_string(state, text); - state[11] = 0; - return 0; - } - function format_string(state, s){ - var _bX_ = runtime.caml_string_notequal(s, cst$17); - return _bX_ ? format_pp_text(state, caml_ml_string_length(s), s) : _bX_; - } - function break_new_line(state, param, width){ - var after = param[3], offset = param[2], before = param[1]; - format_string(state, before); - pp_output_newline(state); - state[11] = 1; - var - indent = (state[6] - width | 0) + offset | 0, - real_indent = caml_call2(Stdlib_Int[10], state[8], indent); - state[10] = real_indent; - state[9] = state[6] - state[10] | 0; - var n = state[10]; - caml_call1(state[21], n); - return format_string(state, after); - } - function break_line(state, width){ - return break_new_line(state, _a_, width); - } - function break_same_line(state, param){ - var after = param[3], width = param[2], before = param[1]; - format_string(state, before); - state[9] = state[9] - width | 0; - caml_call1(state[20], width); - return format_string(state, after); - } - function format_pp_token(state, size$0, param){ - if(typeof param === "number") - switch(param){ - case 0: - var match$3 = caml_call1(Stdlib_Stack[7], state[3]); - if(! match$3) return 0; + caml_register_global(816,Stdlib_Hashtbl,"Stdlib__Hashtbl"); + function weak_create(l) + {var _nh_=0 <= l?1:0,_ni_=_nh_?l <= _o_[15]?1:0:_nh_; + if(1 - _ni_)invalid_arg(cst_Weak_create); + return runtime.caml_weak_create(l)} + function length$6(x){return x.length - 1 - 2 | 0} + function raise_if_invalid_offset$0(e,o,msg) + {var _ne_=0 <= o?1:0,_nf_=_ne_?o < length$6(e)?1:0:_ne_,_ng_=1 - _nf_; + return _ng_?invalid_arg(msg):_ng_} + function set$1(e,o,x) + {raise_if_invalid_offset$0(e,o,cst_Weak_set); + if(! x)return caml_ephe_unset_key(e,o); + var x$0=x[1]; + return caml_ephe_set_key(e,o,x$0)} + function get$2(e,o) + {raise_if_invalid_offset$0(e,o,cst_Weak_get); + return caml_ephe_get_key(e,o)} + function get_copy(e,o) + {raise_if_invalid_offset$0(e,o,cst_Weak_get_copy); + return caml_ephe_get_key_copy(e,o)} + function check$0(e,o) + {raise_if_invalid_offset$0(e,o,cst_Weak_check); + return caml_ephe_check_key(e,o)} + function blit$4(e1,o1,e2,o2,l) + {if + (0 + <= + l + && + 0 + <= + o1 + && + (length$6(e1) - l | 0) + >= + o1 + && + 0 + <= + o2 + && + (length$6(e2) - l | 0) + >= + o2) + {var _nc_=0 !== l?1:0,_nd_=_nc_?caml_ephe_blit_key(e1,o1,e2,o2,l):_nc_; + return _nd_} + return invalid_arg(cst_Weak_blit)} + function fill$2(ar,ofs,len,x) + {if(0 <= ofs && 0 <= len && (length$6(ar) - len | 0) >= ofs) + {var _na_=(ofs + len | 0) - 1 | 0; + if(_na_ >= ofs) + {var i=ofs; + for(;;) + {set$1(ar,i,x); + var _nb_=i + 1 | 0; + if(_na_ !== i){var i=_nb_;continue} + break}} + return 0} + throw [0,Invalid_argument,cst_Weak_fill]} + function Make$1(H) + {var emptybucket=weak_create(0); + function get_index(t,h){return caml_mod(h & 2147483647,t[1].length - 1)} + var limit=7; + function create(sz) + {var + sz$0=7 <= sz?sz:7, + sz$1=max_array_length < sz$0?max_array_length:sz$0; + return [0, + caml_make_vect(sz$1,emptybucket), + caml_make_vect(sz$1,[0]), + limit, + 0, + 0]} + function clear(t) + {var _m__=t[1].length - 1 - 1 | 0,_m9_=0; + if(_m__ >= 0) + {var i=_m9_; + for(;;) + {caml_check_bound(t[1],i)[1 + i] = emptybucket; + caml_check_bound(t[2],i)[1 + i] = [0]; + var _m$_=i + 1 | 0; + if(_m__ !== i){var i=_m$_;continue} + break}} + t[3] = limit; + t[4] = 0; + return 0} + function fold(f,t,init) + {var _m8_=t[1],i=0; + return fold_right$2 + (function(b,accu$1) + {var i$0=i,accu=accu$1; + for(;;) + {if(length$6(b) <= i$0)return accu; + var match=get$2(b,i$0); + if(match) + {var + v=match[1], + accu$0=caml_call2(f,v,accu), + i$1=i$0 + 1 | 0, + i$0=i$1, + accu=accu$0; + continue} + var i$2=i$0 + 1 | 0,i$0=i$2}}, + _m8_, + init)} + function iter(f,t) + {var _m7_=t[1],i=0; + return iter$5 + (function(b) + {var i$0=i; + for(;;) + {if(length$6(b) <= i$0)return 0; + var match=get$2(b,i$0); + if(match) + {var v=match[1]; + caml_call1(f,v); + var i$1=i$0 + 1 | 0,i$0=i$1; + continue} + var i$2=i$0 + 1 | 0,i$0=i$2}}, + _m7_)} + function count_bucket(i,b,accu) + {var i$0=i,accu$0=accu; + for(;;) + {if(length$6(b) <= i$0)return accu$0; + var + _m6_=check$0(b,i$0)?1:0, + accu$1=accu$0 + _m6_ | 0, + i$1=i$0 + 1 | 0, + i$0=i$1, + accu$0=accu$1}} + function count(t) + {var _m1_=0,_m2_=t[1],_m3_=0; + return fold_right$2 + (function(_m4_,_m5_){return count_bucket(_m3_,_m4_,_m5_)}, + _m2_, + _m1_)} + function add_aux(t,setter,d,h,index) + {var + bucket$0=caml_check_bound(t[1],index)[1 + index], + hashes=caml_check_bound(t[2],index)[1 + index], + sz=length$6(bucket$0), + i$3=0; + for(;;) + {if(sz > i$3) + {if(check$0(bucket$0,i$3)){var i$5=i$3 + 1 | 0,i$3=i$5;continue} + caml_call3(setter,bucket$0,i$3,d); + caml_check_bound(hashes,i$3)[1 + i$3] = h; + return 0} + var + newsz= + min$1(((3 * sz | 0) / 2 | 0) + 3 | 0,max_array_length - 2 | 0); + if(newsz <= sz)failwith(cst_Weak_Make_hash_bucket_cann); + var + newbucket$0=weak_create(newsz), + newhashes=caml_make_vect(newsz,0); + blit$4(bucket$0,0,newbucket$0,0,sz); + blit$1(hashes,0,newhashes,0,sz); + caml_call3(setter,newbucket$0,sz,d); + caml_check_bound(newhashes,sz)[1 + sz] = h; + caml_check_bound(t[1],index)[1 + index] = newbucket$0; + caml_check_bound(t[2],index)[1 + index] = newhashes; + var _mX_=sz <= t[3]?1:0,_mY_=_mX_?t[3] < newsz?1:0:_mX_; + if(_mY_) + {t[4] = t[4] + 1 | 0; + var i$4=0; + for(;;) + {var + _mN_=t[5], + bucket=caml_check_bound(t[1],_mN_)[1 + _mN_], + _mO_=t[5], + hbucket=caml_check_bound(t[2],_mO_)[1 + _mO_], + n=length$6(bucket), + prev_len=(((n - 3 | 0) * 2 | 0) + 2 | 0) / 3 | 0, + live=count_bucket(0,bucket,0); + if(live <= prev_len) + {var j$2=length$6(bucket) - 1 | 0,i$0=0,j=j$2; + for(;;) + {if(prev_len <= j) + {if(check$0(bucket,i$0)) + {var i$1=i$0 + 1 | 0,i$0=i$1;continue} + if(check$0(bucket,j)) + {blit$4(bucket,j,bucket,i$0,1); + var _mP_=caml_check_bound(hbucket,j)[1 + j]; + caml_check_bound(hbucket,i$0)[1 + i$0] = _mP_; + var j$0=j - 1 | 0,i$2=i$0 + 1 | 0,i$0=i$2,j=j$0; + continue} + var j$1=j - 1 | 0,j=j$1; + continue} + if(0 === prev_len) + {var _mQ_=t[5]; + caml_check_bound(t[1],_mQ_)[1 + _mQ_] = emptybucket; + var _mR_=t[5]; + caml_check_bound(t[2],_mR_)[1 + _mR_] = [0]} + else + {var newbucket=weak_create(prev_len); + blit$4(bucket,0,newbucket,0,prev_len); + var _mU_=t[5]; + caml_check_bound(t[1],_mU_)[1 + _mU_] = newbucket; + var _mV_=sub$1(hbucket,0,prev_len),_mW_=t[5]; + caml_check_bound(t[2],_mW_)[1 + _mW_] = _mV_} + var _mS_=t[3] < n?1:0,_mT_=_mS_?prev_len <= t[3]?1:0:_mS_; + if(_mT_)t[4] = t[4] - 1 | 0; + break}} + t[5] = caml_mod(t[5] + 1 | 0,t[1].length - 1); + var _m0_=i$4 + 1 | 0; + if(2 !== i$4){var i$4=_m0_;continue} + break}} + var _mZ_=((t[1].length - 1) / 2 | 0) < t[4]?1:0; + if(! _mZ_)return _mZ_; + var + n$0=t[1].length - 1, + newlen=min$1(((3 * n$0 | 0) / 2 | 0) + 3 | 0,max_array_length); + if(n$0 < newlen) + {var newt=create(newlen),_mM_=t[1],i=0; + iteri$3 + (function(j,ob) + {var i$0=i; + for(;;) + {if(length$6(ob) <= i$0)return 0; + var match=check$0(ob,i$0); + if(match) + {var + oh=caml_check_bound(t[2],j)[1 + j], + setter$0= + function(i) + {function setter(nb,ni,param){return blit$4(ob,i,nb,ni,1)} + return setter}, + setter=setter$0(i$0), + h=caml_check_bound(oh,i$0)[1 + i$0]; + add_aux(newt,setter,0,h,get_index(newt,h)); + var i$1=i$0 + 1 | 0,i$0=i$1; + continue} + var i$2=i$0 + 1 | 0,i$0=i$2}}, + _mM_); + t[1] = newt[1]; + t[2] = newt[2]; + t[3] = newt[3]; + t[4] = newt[4]; + t[5] = caml_mod(t[5],newt[1].length - 1); + return 0} + t[3] = max_int; + t[4] = 0; + return 0}} + function add(t,d) + {var h=caml_call1(H[2],d); + return add_aux(t,set$1,[0,d],h,get_index(t,h))} + function find_or(t,d,ifnotfound) + {var + h=caml_call1(H[2],d), + index=get_index(t,h), + bucket=caml_check_bound(t[1],index)[1 + index], + hashes=caml_check_bound(t[2],index)[1 + index], + sz=length$6(bucket), + i=0; + for(;;) + {if(sz <= i)return caml_call2(ifnotfound,h,index); + if(h !== caml_check_bound(hashes,i)[1 + i]) + {var i$2=i + 1 | 0,i=i$2;continue} + var match=get_copy(bucket,i); + if(match) + {var v=match[1]; + if(caml_call2(H[1],v,d)) + {var match$0=get$2(bucket,i); + if(match$0){var v$0=match$0[1];return v$0} + var i$0=i + 1 | 0,i=i$0; + continue}} + var i$1=i + 1 | 0,i=i$1}} + function merge(t,d) + {return find_or + (t, + d, + function(h,index){add_aux(t,set$1,[0,d],h,index);return d})} + function find(t,d) + {return find_or(t,d,function(h,index){throw Not_found})} + function find_opt(t,d) + {var + h=caml_call1(H[2],d), + index=get_index(t,h), + bucket=caml_check_bound(t[1],index)[1 + index], + hashes=caml_check_bound(t[2],index)[1 + index], + sz=length$6(bucket), + i=0; + for(;;) + {if(sz <= i)return 0; + if(h !== caml_check_bound(hashes,i)[1 + i]) + {var i$2=i + 1 | 0,i=i$2;continue} + var match=get_copy(bucket,i); + if(match) + {var v=match[1]; + if(caml_call2(H[1],v,d)) + {var v$0=get$2(bucket,i); + if(v$0)return v$0; + var i$0=i + 1 | 0,i=i$0; + continue}} + var i$1=i + 1 | 0,i=i$1}} + function find_shadow(t,d,iffound,ifnotfound) + {var + h=caml_call1(H[2],d), + index=get_index(t,h), + bucket=caml_check_bound(t[1],index)[1 + index], + hashes=caml_check_bound(t[2],index)[1 + index], + sz=length$6(bucket), + i=0; + for(;;) + {if(sz <= i)return ifnotfound; + if(h !== caml_check_bound(hashes,i)[1 + i]) + {var i$1=i + 1 | 0,i=i$1;continue} + var match=get_copy(bucket,i); + if(match) + {var v=match[1]; + if(caml_call2(H[1],v,d))return caml_call2(iffound,bucket,i)} + var i$0=i + 1 | 0,i=i$0}} + function remove(t,d) + {var _mL_=0; + return find_shadow(t,d,function(w,i){return set$1(w,i,0)},_mL_)} + function mem(t,d) + {var _mK_=0;return find_shadow(t,d,function(w,i){return 1},_mK_)} + function find_all(t,d) + {var + h=caml_call1(H[2],d), + index=get_index(t,h), + bucket=caml_check_bound(t[1],index)[1 + index], + hashes=caml_check_bound(t[2],index)[1 + index], + sz=length$6(bucket), + i=0, + accu=0; + for(;;) + {if(sz <= i)return accu; + if(h !== caml_check_bound(hashes,i)[1 + i]) + {var i$3=i + 1 | 0,i=i$3;continue} + var match=get_copy(bucket,i); + if(match) + {var v=match[1]; + if(caml_call2(H[1],v,d)) + {var match$0=get$2(bucket,i); + if(match$0) + {var + v$0=match$0[1], + accu$0=[0,v$0,accu], + i$0=i + 1 | 0, + i=i$0, + accu=accu$0; + continue} + var i$1=i + 1 | 0,i=i$1; + continue}} + var i$2=i + 1 | 0,i=i$2}} + function stats(t) + {var len=t[1].length - 1,lens=map$7(length$6,t[1]); + sort(caml_int_compare,lens); var - tabs = match$3[1][1], - add_tab = - function(n, ls){ - if(! ls) return [0, n, 0]; - var l = ls[2], x = ls[1]; - return runtime.caml_lessthan(n, x) - ? [0, n, ls] - : [0, x, add_tab(n, l)]; - }; - tabs[1] = add_tab(state[6] - state[9] | 0, tabs[1]); - return 0; - case 1: - caml_call1(Stdlib_Stack[5], state[2]); return 0; - case 2: - caml_call1(Stdlib_Stack[5], state[3]); return 0; - case 3: - var match$4 = caml_call1(Stdlib_Stack[7], state[2]); - if(! match$4) return pp_output_newline(state); - var width$0 = match$4[1][2]; - return break_line(state, width$0); - case 4: - var _bV_ = state[10] !== (state[6] - state[9] | 0) ? 1 : 0; - if(! _bV_) return _bV_; - var match$1 = caml_call1(Stdlib_Queue[6], state[28]); - if(! match$1) return 0; - var match$2 = match$1[1], size = match$2[1], length = match$2[3]; - state[12] = state[12] - length | 0; - state[9] = state[9] + size | 0; - return 0; - default: - var match$5 = caml_call1(Stdlib_Stack[5], state[5]); - if(! match$5) return 0; - var tag_name = match$5[1], marker = caml_call1(state[25], tag_name); - return pp_output_string(state, marker); - } - switch(param[0]){ - case 0: - var s = param[1]; return format_pp_text(state, size$0, s); - case 1: - var - breaks = param[2], - fits = param[1], - off = breaks[2], - before = breaks[1], - match$6 = caml_call1(Stdlib_Stack[7], state[2]); - if(! match$6) return 0; - var - match$7 = match$6[1], - width$1 = match$7[2], - box_type$0 = match$7[1]; - switch(box_type$0){ - case 0: - return break_same_line(state, fits); - case 1: - return break_new_line(state, breaks, width$1); - case 2: - return break_new_line(state, breaks, width$1); + _mC_=0, + totlen= + fold_left$3(function(_mJ_,_mI_){return _mJ_ + _mI_ | 0},_mC_,lens), + _mD_=len - 1 | 0, + _mF_=len / 2 | 0, + _mE_=caml_check_bound(lens,_mD_)[1 + _mD_], + _mG_=caml_check_bound(lens,_mF_)[1 + _mF_], + _mH_=caml_check_bound(lens,0)[1]; + return [0,len,count(t),totlen,_mH_,_mG_,_mE_]} + return [0, + create, + clear, + merge, + add, + remove, + find, + find_opt, + find_all, + mem, + iter, + fold, + count, + stats]} + var + Stdlib_Weak= + [0, + weak_create, + length$6, + set$1, + get$2, + get_copy, + check$0, + fill$2, + blit$4, + Make$1]; + caml_register_global(817,Stdlib_Weak,"Stdlib__Weak"); + function id$0(x){return x} + var + String_tag=[248,cst_Stdlib_Format_String_tag,caml_fresh_oo_id(0)], + size=0, + unknown=-1; + function pp_enqueue(state,token) + {state[13] = state[13] + token[3] | 0;return add(token,state[28])} + var pp_infinity=1000000010; + function pp_output_string(state,s) + {return caml_call3(state[17],s,0,caml_ml_string_length(s))} + function pp_output_newline(state){return caml_call1(state[19],0)} + function format_pp_text(state,size,text) + {state[9] = state[9] - size | 0; + pp_output_string(state,text); + state[11] = 0; + return 0} + function format_string(state,s) + {var _mB_=caml_string_notequal(s,cst$67); + return _mB_?format_pp_text(state,caml_ml_string_length(s),s):_mB_} + function break_new_line(state,param,width) + {var after=param[3],offset=param[2],before=param[1]; + format_string(state,before); + pp_output_newline(state); + state[11] = 1; + var + indent=(state[6] - width | 0) + offset | 0, + real_indent=min$1(state[8],indent); + state[10] = real_indent; + state[9] = state[6] - state[10] | 0; + caml_call1(state[21],state[10]); + return format_string(state,after)} + function break_line(state,width){return break_new_line(state,_cj_,width)} + function break_same_line(state,param) + {var after=param[3],width=param[2],before=param[1]; + format_string(state,before); + state[9] = state[9] - width | 0; + caml_call1(state[20],width); + return format_string(state,after)} + function format_pp_token(state,size$0,param) + {if(typeof param === "number") + switch(param) + {case 0: + var match$3=top_opt(state[3]); + if(! match$3)return 0; + var + match$4=match$3[1], + tabs=match$4[1], + add_tab= + function(n,ls) + {if(! ls)return [0,n,0]; + var l=ls[2],x=ls[1]; + return caml_lessthan(n,x)?[0,n,ls]:[0,x,add_tab(n,l)]}; + tabs[1] = add_tab(state[6] - state[9] | 0,tabs[1]); + return 0; + case 1:pop_opt(state[2]);return 0; + case 2:pop_opt(state[3]);return 0; case 3: - return state[9] < (size$0 + caml_ml_string_length(before) | 0) - ? break_new_line(state, breaks, width$1) - : break_same_line(state, fits); + var match$5=top_opt(state[2]); + if(! match$5)return pp_output_newline(state); + var match$6=match$5[1],width$0=match$6[2]; + return break_line(state,width$0); case 4: - return state[11] - ? break_same_line(state, fits) - : state - [9] - < (size$0 + caml_ml_string_length(before) | 0) - ? break_new_line(state, breaks, width$1) - : ((state - [6] - - width$1 - | 0) - + off - | 0) - < state[10] - ? break_new_line(state, breaks, width$1) - : break_same_line(state, fits); - default: return break_same_line(state, fits); - } - case 2: - var - off$0 = param[2], - n = param[1], - insertion_point = state[6] - state[9] | 0, - match$8 = caml_call1(Stdlib_Stack[7], state[3]); - if(! match$8) return 0; - var tabs$0 = match$8[1][1], match$9 = tabs$0[1]; - if(match$9){ - var first = match$9[1], param$0 = tabs$0[1]; - for(;;){ - if(param$0){ - var tail = param$0[2], head = param$0[1]; - if(insertion_point > head){var param$0 = tail; continue;} - var _bW_ = head; - } + var _my_=state[10] !== (state[6] - state[9] | 0)?1:0; + if(! _my_)return _my_; + var match$1=take_opt(state[28]); + if(! match$1)return 0; + var match$2=match$1[1],size=match$2[1],length=match$2[3]; + state[12] = state[12] - length | 0; + state[9] = state[9] + size | 0; + return 0; + default: + var match$7=pop_opt(state[5]); + if(! match$7)return 0; + var tag_name=match$7[1],marker=caml_call1(state[25],tag_name); + return pp_output_string(state,marker)} + switch(param[0]) + {case 0:var s=param[1];return format_pp_text(state,size$0,s); + case 1: + var + breaks=param[2], + fits=param[1], + off=breaks[2], + before=breaks[1], + match$8=top_opt(state[2]); + if(! match$8)return 0; + var match$9=match$8[1],width$1=match$9[2],box_type$0=match$9[1]; + switch(box_type$0) + {case 0:return break_same_line(state,fits); + case 1:return break_new_line(state,breaks,width$1); + case 2:return break_new_line(state,breaks,width$1); + case 3: + return state[9] < (size$0 + caml_ml_string_length(before) | 0) + ?break_new_line(state,breaks,width$1) + :break_same_line(state,fits); + case 4: + return state[11] + ?break_same_line(state,fits) + :state[9] < (size$0 + caml_ml_string_length(before) | 0) + ?break_new_line(state,breaks,width$1) + :((state[6] - width$1 | 0) + off | 0) < state[10] + ?break_new_line(state,breaks,width$1) + :break_same_line(state,fits); + default:return break_same_line(state,fits)} + case 2: + var + off$0=param[2], + n=param[1], + insertion_point=state[6] - state[9] | 0, + match$10=top_opt(state[3]); + if(! match$10)return 0; + var match$11=match$10[1],tabs$0=match$11[1],_mz_=tabs$0[1]; + if(_mz_) + {var first=_mz_[1],param$0=tabs$0[1]; + for(;;) + {if(param$0) + {var tail=param$0[2],head=param$0[1]; + if(insertion_point > head){var param$0=tail;continue} + var _mA_=head} + else + var _mA_=first; + var tab=_mA_; + break}} else - var _bW_ = first; - var tab = _bW_; + var tab=insertion_point; + var offset=tab - insertion_point | 0; + return 0 <= offset + ?break_same_line(state,[0,cst$69,offset + n | 0,cst$68]) + :break_new_line + (state,[0,cst$71,tab + off$0 | 0,cst$70],state[6]); + case 3: + var + ty=param[2], + off$1=param[1], + insertion_point$0=state[6] - state[9] | 0; + if(state[8] < insertion_point$0) + {var match=top_opt(state[2]); + if(match) + {var match$0=match[1],width=match$0[2],box_type=match$0[1]; + if(state[9] < width && 3 >= box_type - 1 >>> 0) + break_line(state,width)} + else + pp_output_newline(state)} + var + width$2=state[9] - off$1 | 0, + box_type$1=1 === ty?1:state[9] < size$0?ty:5; + return push([0,box_type$1,width$2],state[2]); + case 4:var tbox=param[1];return push(tbox,state[3]); + default: + var tag_name$0=param[1],marker$0=caml_call1(state[24],tag_name$0); + pp_output_string(state,marker$0); + return push(tag_name$0,state[5])}} + function advance_left(state) + {for(;;) + {var match=peek_opt(state[28]); + if(! match)return 0; + var + match$0=match[1], + size=match$0[1], + length=match$0[3], + token=match$0[2], + pending_count=state[13] - state[12] | 0, + _mw_=0 <= size?1:0, + _mx_=_mw_ || (state[9] <= pending_count?1:0); + if(! _mx_)return _mx_; + take$0(state[28]); + var size$0=0 <= size?size:pp_infinity; + format_pp_token(state,size$0,token); + state[12] = length + state[12] | 0}} + function enqueue_advance(state,tok) + {pp_enqueue(state,tok);return advance_left(state)} + function enqueue_string_as(state,size,s) + {return enqueue_advance(state,[0,size,[0,s],size])} + function initialize_scan_stack(stack) + {clear(stack); + var queue_elem=[0,unknown,_ck_,0]; + return push([0,-1,queue_elem],stack)} + function set_size(state,ty) + {var match=top_opt(state[1]); + if(! match)return 0; + var + match$0=match[1], + queue_elem=match$0[2], + left_total=match$0[1], + _mr_=queue_elem[1]; + if(left_total < state[12])return initialize_scan_stack(state[1]); + var _ms_=queue_elem[2]; + if(typeof _ms_ !== "number") + switch(_ms_[0]) + {case 3: + var + _mu_=1 - ty, + _mv_= + _mu_ + ?(queue_elem[1] = state[13] + _mr_ | 0,pop_opt(state[1]),0) + :_mu_; + return _mv_; + case 1: + case 2: + var + _mt_= + ty?(queue_elem[1] = state[13] + _mr_ | 0,pop_opt(state[1]),0):ty; + return _mt_ + } + return 0} + function scan_push(state,b,token) + {pp_enqueue(state,token); + if(b)set_size(state,1); + var elem=[0,state[13],token]; + return push(elem,state[1])} + function pp_open_box_gen(state,indent,br_ty) + {state[14] = state[14] + 1 | 0; + if(state[14] < state[15]) + {var size=- state[13] | 0,elem=[0,size,[3,indent,br_ty],0]; + return scan_push(state,0,elem)} + var _mp_=state[14] === state[15]?1:0; + if(! _mp_)return _mp_; + var _mq_=state[16]; + return enqueue_string_as(state,caml_ml_string_length(_mq_),_mq_)} + function pp_close_box(state,param) + {var _mn_=1 < state[14]?1:0; + if(_mn_) + {if(state[14] < state[15]) + {pp_enqueue(state,[0,size,1,0]);set_size(state,1);set_size(state,0)} + state[14] = state[14] - 1 | 0; + var _mo_=0} + else + var _mo_=_mn_; + return _mo_} + function pp_open_stag(state,tag_name) + {if(state[22]){push(tag_name,state[4]);caml_call1(state[26],tag_name)} + var _mm_=state[23]; + if(! _mm_)return _mm_; + var token=[5,tag_name]; + return pp_enqueue(state,[0,size,token,0])} + function pp_close_stag(state,param) + {if(state[23])pp_enqueue(state,[0,size,5,0]); + var _mk_=state[22]; + if(_mk_) + {var match=pop_opt(state[4]); + if(match){var tag_name=match[1];return caml_call1(state[27],tag_name)} + var _ml_=0} + else + var _ml_=_mk_; + return _ml_} + function pp_open_tag(state,s){return pp_open_stag(state,[0,String_tag,s])} + function pp_close_tag(state,param){return pp_close_stag(state,0)} + function pp_set_print_tags(state,b){state[22] = b;return 0} + function pp_set_mark_tags(state,b){state[23] = b;return 0} + function pp_get_print_tags(state,param){return state[22]} + function pp_get_mark_tags(state,param){return state[23]} + function pp_set_tags(state,b) + {pp_set_print_tags(state,b);return pp_set_mark_tags(state,b)} + function pp_get_formatter_stag_function(state,param) + {return [0,state[24],state[25],state[26],state[27]]} + function pp_set_formatter_stag_function(state,param) + {var pct=param[4],pot=param[3],mct=param[2],mot=param[1]; + state[24] = mot; + state[25] = mct; + state[26] = pot; + state[27] = pct; + return 0} + function pp_rinit(state) + {state[12] = 1; + state[13] = 1; + clear$0(state[28]); + initialize_scan_stack(state[1]); + clear(state[2]); + clear(state[3]); + clear(state[4]); + clear(state[5]); + state[10] = 0; + state[14] = 0; + state[9] = state[6]; + return pp_open_box_gen(state,0,3)} + function pp_flush_queue(state,b) + {var _mj_=state[4]; + iter$7(function(param){return pp_close_tag(state,0)},_mj_); + for(;;) + {if(1 < state[14]){pp_close_box(state,0);continue} + state[13] = pp_infinity; + advance_left(state); + if(b)pp_output_newline(state); + return pp_rinit(state)}} + function pp_print_as_size(state,size,s) + {var _mi_=state[14] < state[15]?1:0; + return _mi_?enqueue_string_as(state,size,s):_mi_} + function pp_print_as(state,isize,s) + {return pp_print_as_size(state,isize,s)} + function pp_print_string(state,s) + {return pp_print_as(state,caml_ml_string_length(s),s)} + function pp_print_bytes(state,s) + {return pp_print_as(state,caml_ml_bytes_length(s),of_bytes(s))} + function pp_print_int(state,i) + {return pp_print_string(state,caml_string_of_jsbytes("" + i))} + function pp_print_float(state,f) + {return pp_print_string(state,to_string(f))} + function pp_print_bool(state,b) + {return pp_print_string(state,string_of_bool(b))} + function pp_print_char(state,c){return pp_print_as(state,1,make$1(1,c))} + function pp_open_hbox(state,param){return pp_open_box_gen(state,0,0)} + function pp_open_vbox(state,indent) + {return pp_open_box_gen(state,indent,1)} + function pp_open_hvbox(state,indent) + {return pp_open_box_gen(state,indent,2)} + function pp_open_hovbox(state,indent) + {return pp_open_box_gen(state,indent,3)} + function pp_open_box(state,indent){return pp_open_box_gen(state,indent,4)} + function pp_print_newline(state,param) + {pp_flush_queue(state,1);return caml_call1(state[18],0)} + function pp_print_flush(state,param) + {pp_flush_queue(state,0);return caml_call1(state[18],0)} + function pp_force_newline(state,param) + {var _mh_=state[14] < state[15]?1:0; + return _mh_?enqueue_advance(state,[0,size,3,0]):_mh_} + function pp_print_if_newline(state,param) + {var _mg_=state[14] < state[15]?1:0; + return _mg_?enqueue_advance(state,[0,size,4,0]):_mg_} + function pp_print_custom_break(state,fits,breaks) + {var + after=fits[3], + width=fits[2], + before=fits[1], + _mf_=state[14] < state[15]?1:0; + if(! _mf_)return _mf_; + var + size=- state[13] | 0, + token=[1,fits,breaks], + length= + (caml_ml_string_length(before) + width | 0) + + + caml_ml_string_length(after) + | + 0, + elem=[0,size,token,length]; + return scan_push(state,1,elem)} + function pp_print_break(state,width,offset) + {return pp_print_custom_break + (state,[0,cst$75,width,cst$74],[0,cst$73,offset,cst$72])} + function pp_print_space(state,param){return pp_print_break(state,1,0)} + function pp_print_cut(state,param){return pp_print_break(state,0,0)} + function pp_open_tbox(state,param) + {state[14] = state[14] + 1 | 0; + var _me_=state[14] < state[15]?1:0; + if(! _me_)return _me_; + var elem=[0,size,[4,[0,[0,0]]],0]; + return enqueue_advance(state,elem)} + function pp_close_tbox(state,param) + {var _mb_=1 < state[14]?1:0; + if(_mb_) + {var _mc_=state[14] < state[15]?1:0; + if(_mc_) + {var elem=[0,size,2,0]; + enqueue_advance(state,elem); + state[14] = state[14] - 1 | 0; + var _md_=0} + else + var _md_=_mc_} + else + var _md_=_mb_; + return _md_} + function pp_print_tbreak(state,width,offset) + {var _ma_=state[14] < state[15]?1:0; + if(! _ma_)return _ma_; + var size=- state[13] | 0,elem=[0,size,[2,width,offset],width]; + return scan_push(state,1,elem)} + function pp_print_tab(state,param){return pp_print_tbreak(state,0,0)} + function pp_set_tab(state,param) + {var _l$_=state[14] < state[15]?1:0; + if(! _l$_)return _l$_; + var elem=[0,size,0,0]; + return enqueue_advance(state,elem)} + function pp_set_max_boxes(state,n) + {var _l9_=1 < n?1:0,_l__=_l9_?(state[15] = n,0):_l9_;return _l__} + function pp_get_max_boxes(state,param){return state[15]} + function pp_over_max_boxes(state,param) + {return state[14] === state[15]?1:0} + function pp_set_ellipsis_text(state,s){state[16] = s;return 0} + function pp_get_ellipsis_text(state,param){return state[16]} + function pp_limit(n){return n < 1000000010?n:1000000009} + function pp_set_max_indent(state,n$0) + {var _l8_=1 < n$0?1:0; + if(! _l8_)return _l8_; + var n$1=state[6] - n$0 | 0,_l7_=1 <= n$1?1:0; + if(! _l7_)return _l7_; + var n=pp_limit(n$1); + state[7] = n; + state[8] = state[6] - state[7] | 0; + return pp_rinit(state)} + function pp_get_max_indent(state,param){return state[8]} + function pp_set_margin(state,n) + {var _l6_=1 <= n?1:0; + if(! _l6_)return _l6_; + var n$0=pp_limit(n); + state[6] = n$0; + var + new_max_indent= + state[8] <= state[6] + ?state[8] + :max$1(max$1(state[6] - state[7] | 0,state[6] / 2 | 0),1); + return pp_set_max_indent(state,new_max_indent)} + function validate_geometry(param) + {var margin=param[2],max_indent=param[1]; + return 2 <= max_indent?margin <= max_indent?_cl_:_cm_:_cn_} + function check_geometry(geometry) + {var match=validate_geometry(geometry);return 0 === match[0]?1:0} + function pp_get_margin(state,param){return state[6]} + function pp_set_full_geometry(state,param) + {var margin=param[2],max_indent=param[1]; + pp_set_margin(state,margin); + pp_set_max_indent(state,max_indent); + return 0} + function pp_set_geometry(state,max_indent,margin) + {var geometry=[0,max_indent,margin],match=validate_geometry(geometry); + if(0 === match[0])return pp_set_full_geometry(state,geometry); + var msg=match[1]; + throw [0,Invalid_argument,cat(cst_Format_pp_set_geometry,msg)]} + function pp_safe_set_geometry(state,max_indent,margin) + {var geometry=[0,max_indent,margin],match=validate_geometry(geometry); + return 0 === match[0]?pp_set_full_geometry(state,geometry):0} + function pp_get_geometry(state,param){return [0,state[8],state[6]]} + function pp_update_geometry(state,update) + {var geometry=pp_get_geometry(state,0); + return pp_set_full_geometry(state,caml_call1(update,geometry))} + function pp_set_formatter_out_functions(state,param) + {var j=param[5],i=param[4],h=param[3],g=param[2],f=param[1]; + state[17] = f; + state[18] = g; + state[19] = h; + state[20] = i; + state[21] = j; + return 0} + function pp_get_formatter_out_functions(state,param) + {return [0,state[17],state[18],state[19],state[20],state[21]]} + function pp_set_formatter_output_functi(state,f,g) + {state[17] = f;state[18] = g;return 0} + function pp_get_formatter_output_functi(state,param) + {return [0,state[17],state[18]]} + function display_newline(state,param) + {return caml_call3(state[17],cst$76,0,1)} + var blank_line=make$1(80,32); + function display_indent(state,n) + {var n$0=n; + for(;;) + {var _l5_=0 < n$0?1:0; + if(! _l5_)return _l5_; + if(80 >= n$0)return caml_call3(state[17],blank_line,0,n$0); + caml_call3(state[17],blank_line,0,80); + var n$1=n$0 - 80 | 0,n$0=n$1}} + function pp_set_formatter_out_channel(state,oc) + {state[17] + = + function(_l2_,_l3_,_l4_){return output_substring(oc,_l2_,_l3_,_l4_)}; + state[18] = function(param){return caml_ml_flush(oc)}; + state[19] = function(_l1_){return display_newline(state,_l1_)}; + state[20] = function(_l0_){return display_indent(state,_l0_)}; + state[21] = function(_lZ_){return display_indent(state,_lZ_)}; + return 0} + function default_pp_mark_open_tag(param) + {if(param[1] !== String_tag)return cst$79; + var s=param[2]; + return cat(cst$78,cat(s,cst$77))} + function default_pp_mark_close_tag(param) + {if(param[1] !== String_tag)return cst$82; + var s=param[2]; + return cat(cst$81,cat(s,cst$80))} + function default_pp_print_open_tag(_lY_){return 0} + function default_pp_print_close_tag(_lX_){return 0} + function pp_make_formatter(f,g,h,i,j) + {var pp_queue=create$1(0),sys_tok=[0,unknown,_co_,0]; + add(sys_tok,pp_queue); + var scan_stack=create$0(0); + initialize_scan_stack(scan_stack); + push([0,1,sys_tok],scan_stack); + var _lU_=create$0(0),_lV_=create$0(0),_lW_=create$0(0); + return [0, + scan_stack, + create$0(0), + _lW_, + _lV_, + _lU_, + 78, + 10, + 68, + 78, + 0, + 1, + 1, + 1, + 1, + max_int, + cst$83, + f, + g, + h, + i, + j, + 0, + 0, + default_pp_mark_open_tag, + default_pp_mark_close_tag, + default_pp_print_open_tag, + default_pp_print_close_tag, + pp_queue]} + function formatter_of_out_functions(out_funs) + {return pp_make_formatter + (out_funs[1],out_funs[2],out_funs[3],out_funs[4],out_funs[5])} + function make_formatter(output,flush) + {function _lM_(_lT_){return 0} + function _lN_(_lS_){return 0} + var + ppf= + pp_make_formatter(output,flush,function(_lR_){return 0},_lN_,_lM_); + ppf[19] = function(_lQ_){return display_newline(ppf,_lQ_)}; + ppf[20] = function(_lP_){return display_indent(ppf,_lP_)}; + ppf[21] = function(_lO_){return display_indent(ppf,_lO_)}; + return ppf} + function formatter_of_out_channel(oc) + {function _lI_(param){return caml_ml_flush(oc)} + return make_formatter + (function(_lJ_,_lK_,_lL_) + {return output_substring(oc,_lJ_,_lK_,_lL_)}, + _lI_)} + function formatter_of_buffer(b) + {function _lD_(_lH_){return 0} + return make_formatter + (function(_lE_,_lF_,_lG_) + {return add_substring(b,_lE_,_lF_,_lG_)}, + _lD_)} + var pp_buffer_size=512; + function pp_make_buffer(param){return create$2(pp_buffer_size)} + var + stdbuf=pp_make_buffer(0), + std_formatter=formatter_of_out_channel(stdout), + err_formatter=formatter_of_out_channel(stderr), + str_formatter=formatter_of_buffer(stdbuf); + function flush_buffer_formatter(buf,ppf) + {pp_flush_queue(ppf,0);var s=contents(buf);reset(buf);return s} + function flush_str_formatter(param) + {return flush_buffer_formatter(stdbuf,str_formatter)} + function make_symbolic_output_buffer(param){return [0,0]} + function clear_symbolic_output_buffer(sob){sob[1] = 0;return 0} + function get_symbolic_output_buffer(sob){return rev(sob[1])} + function flush_symbolic_output_buffer(sob) + {var items=get_symbolic_output_buffer(sob); + clear_symbolic_output_buffer(sob); + return items} + function add_symbolic_output_item(sob,item) + {sob[1] = [0,item,sob[1]];return 0} + function formatter_of_symbolic_output_b(sob) + {function f(s,i,n){return add_symbolic_output_item(sob,[0,sub$0(s,i,n)])} + function g(_lC_){return add_symbolic_output_item(sob,0)} + function h(_lB_){return add_symbolic_output_item(sob,1)} + function i(n){return add_symbolic_output_item(sob,[1,n])} + function j(n){return add_symbolic_output_item(sob,[2,n])} + return pp_make_formatter(f,g,h,i,j)} + function open_hbox(_lA_){return pp_open_hbox(std_formatter,_lA_)} + function open_vbox(_lz_){return pp_open_vbox(std_formatter,_lz_)} + function open_hvbox(_ly_){return pp_open_hvbox(std_formatter,_ly_)} + function open_hovbox(_lx_){return pp_open_hovbox(std_formatter,_lx_)} + function open_box(_lw_){return pp_open_box(std_formatter,_lw_)} + function close_box(_lv_){return pp_close_box(std_formatter,_lv_)} + function open_tag(_lu_){return pp_open_tag(std_formatter,_lu_)} + function close_tag(_lt_){return pp_close_tag(std_formatter,_lt_)} + function open_stag(_ls_){return pp_open_stag(std_formatter,_ls_)} + function close_stag(_lr_){return pp_close_stag(std_formatter,_lr_)} + function print_as(_lp_,_lq_){return pp_print_as(std_formatter,_lp_,_lq_)} + function print_string$0(_lo_){return pp_print_string(std_formatter,_lo_)} + function print_bytes$0(_ln_){return pp_print_bytes(std_formatter,_ln_)} + function print_int$0(_lm_){return pp_print_int(std_formatter,_lm_)} + function print_float$0(_ll_){return pp_print_float(std_formatter,_ll_)} + function print_char$0(_lk_){return pp_print_char(std_formatter,_lk_)} + function print_bool(_lj_){return pp_print_bool(std_formatter,_lj_)} + function print_break(_lh_,_li_) + {return pp_print_break(std_formatter,_lh_,_li_)} + function print_cut(_lg_){return pp_print_cut(std_formatter,_lg_)} + function print_space(_lf_){return pp_print_space(std_formatter,_lf_)} + function force_newline(_le_){return pp_force_newline(std_formatter,_le_)} + function print_flush(_ld_){return pp_print_flush(std_formatter,_ld_)} + function print_newline$0(_lc_) + {return pp_print_newline(std_formatter,_lc_)} + function print_if_newline(_lb_) + {return pp_print_if_newline(std_formatter,_lb_)} + function open_tbox(_la_){return pp_open_tbox(std_formatter,_la_)} + function close_tbox(_k$_){return pp_close_tbox(std_formatter,_k$_)} + function print_tbreak(_k9_,_k__) + {return pp_print_tbreak(std_formatter,_k9_,_k__)} + function set_tab(_k8_){return pp_set_tab(std_formatter,_k8_)} + function print_tab(_k7_){return pp_print_tab(std_formatter,_k7_)} + function set_margin(_k6_){return pp_set_margin(std_formatter,_k6_)} + function get_margin(_k5_){return std_formatter[6]} + function set_max_indent(_k4_) + {return pp_set_max_indent(std_formatter,_k4_)} + function get_max_indent(_k3_){return std_formatter[8]} + function set_geometry(_k1_,_k2_) + {return pp_set_geometry(std_formatter,_k1_,_k2_)} + function safe_set_geometry(_kZ_,_k0_) + {return pp_safe_set_geometry(std_formatter,_kZ_,_k0_)} + function get_geometry(_kY_){return pp_get_geometry(std_formatter,_kY_)} + function update_geometry(_kX_) + {return pp_update_geometry(std_formatter,_kX_)} + function set_max_boxes(_kW_){return pp_set_max_boxes(std_formatter,_kW_)} + function get_max_boxes(_kV_){return std_formatter[15]} + function over_max_boxes(_kU_) + {return pp_over_max_boxes(std_formatter,_kU_)} + function set_ellipsis_text(_kT_) + {return pp_set_ellipsis_text(std_formatter,_kT_)} + function get_ellipsis_text(_kS_){return std_formatter[16]} + function set_formatter_out_channel(_kR_) + {return pp_set_formatter_out_channel(std_formatter,_kR_)} + function set_formatter_out_functions(_kQ_) + {return pp_set_formatter_out_functions(std_formatter,_kQ_)} + function get_formatter_out_functions(_kP_) + {return pp_get_formatter_out_functions(std_formatter,_kP_)} + function set_formatter_output_functions(_kN_,_kO_) + {return pp_set_formatter_output_functi(std_formatter,_kN_,_kO_)} + function get_formatter_output_functions(_kM_) + {return pp_get_formatter_output_functi(std_formatter,_kM_)} + function set_formatter_stag_functions(_kL_) + {return pp_set_formatter_stag_function(std_formatter,_kL_)} + function get_formatter_stag_functions(_kK_) + {return pp_get_formatter_stag_function(std_formatter,_kK_)} + function set_print_tags(_kJ_) + {return pp_set_print_tags(std_formatter,_kJ_)} + function get_print_tags(_kI_){return std_formatter[22]} + function set_mark_tags(_kH_){return pp_set_mark_tags(std_formatter,_kH_)} + function get_mark_tags(_kG_){return std_formatter[23]} + function set_tags(_kF_){return pp_set_tags(std_formatter,_kF_)} + function pp_print_list(opt,pp_v,ppf,param) + {var opt$0=opt,param$0=param; + for(;;) + {if(opt$0)var sth=opt$0[1],pp_sep=sth;else var pp_sep=pp_print_cut; + if(! param$0)return 0; + var _kE_=param$0[1]; + if(! param$0[2])return caml_call2(pp_v,ppf,_kE_); + var vs=param$0[2]; + caml_call2(pp_v,ppf,_kE_); + caml_call2(pp_sep,ppf,0); + var opt$1=[0,pp_sep],opt$0=opt$1,param$0=vs}} + function pp_print_seq(opt,pp_v,ppf,seq$1) + {if(opt)var sth=opt[1],pp_sep=sth;else var pp_sep=pp_print_cut; + var match$0=caml_call1(seq$1,0); + if(! match$0)return 0; + var seq$2=match$0[2],v$0=match$0[1]; + caml_call2(pp_v,ppf,v$0); + var seq=seq$2; + for(;;) + {var match=caml_call1(seq,0); + if(! match)return 0; + var seq$0=match[2],v=match[1]; + caml_call2(pp_sep,ppf,0); + caml_call2(pp_v,ppf,v); + var seq=seq$0}} + function pp_print_text(ppf,s) + {var len=caml_ml_string_length(s),left=[0,0],right=[0,0]; + function flush(param) + {pp_print_string(ppf,sub$0(s,left[1],right[1] - left[1] | 0)); + right[1]++; + left[1] = right[1]; + return 0} + for(;;) + {if(right[1] === len) + {var _kD_=left[1] !== len?1:0;return _kD_?flush(0):_kD_} + var match=caml_string_get(s,right[1]); + if(10 === match) + {flush(0);pp_force_newline(ppf,0)} + else + if(32 === match){flush(0);pp_print_space(ppf,0)}else right[1]++}} + function pp_print_option(opt,pp_v,ppf,param) + {if(opt) + var sth=opt[1],none=sth; + else + var none=function(param,_kC_){return 0}; + if(! param)return caml_call2(none,ppf,0); + var v=param[1]; + return caml_call2(pp_v,ppf,v)} + function pp_print_result(ok,error,ppf,param) + {if(0 === param[0]){var v=param[1];return caml_call2(ok,ppf,v)} + var e=param[1]; + return caml_call2(error,ppf,e)} + function pp_print_either(left,right,ppf,param) + {if(0 === param[0]){var l=param[1];return caml_call2(left,ppf,l)} + var r=param[1]; + return caml_call2(right,ppf,r)} + function compute_tag(output,tag_acc) + {var buf=create$2(16),ppf=formatter_of_buffer(buf); + caml_call2(output,ppf,tag_acc); + pp_print_flush(ppf,0); + var len=buf[2]; + return 2 <= len?sub$3(buf,1,len - 2 | 0):contents(buf)} + function output_formatting_lit(ppf,fmting_lit) + {if(typeof fmting_lit === "number") + switch(fmting_lit) + {case 0:return pp_close_box(ppf,0); + case 1:return pp_close_tag(ppf,0); + case 2:return pp_print_flush(ppf,0); + case 3:return pp_force_newline(ppf,0); + case 4:return pp_print_newline(ppf,0); + case 5:return pp_print_char(ppf,64); + default:return pp_print_char(ppf,37)} + switch(fmting_lit[0]) + {case 0: + var offset=fmting_lit[3],width=fmting_lit[2]; + return pp_print_break(ppf,width,offset); + case 1:return 0; + default: + var c=fmting_lit[1];pp_print_char(ppf,64);return pp_print_char(ppf,c)}} + function output_acc$0(ppf,acc) + {var switch$0=0; + if(typeof acc === "number")return 0; + switch(acc[0]) + {case 0: + var f=acc[2],p=acc[1]; + output_acc$0(ppf,p); + return output_formatting_lit(ppf,f); + case 1: + var _ks_=acc[2],_kt_=acc[1]; + if(0 === _ks_[0]) + {var acc$0=_ks_[1]; + output_acc$0(ppf,_kt_); + return pp_open_stag + (ppf,[0,String_tag,compute_tag(output_acc$0,acc$0)])} + var acc$1=_ks_[1]; + output_acc$0(ppf,_kt_); + var + match=open_box_of_string(compute_tag(output_acc$0,acc$1)), + bty=match[2], + indent=match[1]; + return pp_open_box_gen(ppf,indent,bty); + case 2: + var _ku_=acc[1],switch$1=0; + if(typeof _ku_ !== "number" && 0 === _ku_[0]) + {var _kv_=_ku_[2],switch$2=0; + if(typeof _kv_ !== "number" && 1 === _kv_[0]) + {var s$0=acc[2],size=_kv_[2],p$1=_ku_[1]; + switch$1 = 1; + switch$2 = 1}} + if(! switch$1){var s=acc[2],p$0=_ku_;switch$0 = 2} break; - } - } - else - var tab = insertion_point; - var offset = tab - insertion_point | 0; - return 0 <= offset - ? break_same_line(state, [0, cst$0, offset + n | 0, cst]) - : break_new_line - (state, [0, cst$2, tab + off$0 | 0, cst$1], state[6]); - case 3: - var - ty = param[2], - off$1 = param[1], - insertion_point$0 = state[6] - state[9] | 0; - if(state[8] < insertion_point$0){ - var match = caml_call1(Stdlib_Stack[7], state[2]); - if(match){ - var match$0 = match[1], width = match$0[2], box_type = match$0[1]; - if(state[9] < width && 3 >= box_type - 1 >>> 0) - break_line(state, width); - } - else - pp_output_newline(state); - } - var - width$2 = state[9] - off$1 | 0, - box_type$1 = 1 === ty ? 1 : state[9] < size$0 ? ty : 5; - return caml_call2(Stdlib_Stack[3], [0, box_type$1, width$2], state[2]); - case 4: - var tbox = param[1]; - return caml_call2(Stdlib_Stack[3], tbox, state[3]); - default: - var - tag_name$0 = param[1], - marker$0 = caml_call1(state[24], tag_name$0); - pp_output_string(state, marker$0); - return caml_call2(Stdlib_Stack[3], tag_name$0, state[5]); - } - } - function advance_left(state){ - for(;;){ - var match = caml_call1(Stdlib_Queue[9], state[28]); - if(! match) return 0; - var - match$0 = match[1], - size = match$0[1], - length = match$0[3], - token = match$0[2], - pending_count = state[13] - state[12] | 0, - _bT_ = 0 <= size ? 1 : 0, - _bU_ = _bT_ || (state[9] <= pending_count ? 1 : 0); - if(! _bU_) return _bU_; - caml_call1(Stdlib_Queue[5], state[28]); - var size$0 = 0 <= size ? size : pp_infinity; - format_pp_token(state, size$0, token); - state[12] = length + state[12] | 0; - } - } - function enqueue_advance(state, tok){ - pp_enqueue(state, tok); - return advance_left(state); - } - function enqueue_string_as(state, size, s){ - return enqueue_advance(state, [0, size, [0, s], size]); - } - function initialize_scan_stack(stack){ - caml_call1(Stdlib_Stack[8], stack); - var queue_elem = [0, unknown, _b_, 0]; - return caml_call2(Stdlib_Stack[3], [0, -1, queue_elem], stack); - } - function set_size(state, ty){ - var match = caml_call1(Stdlib_Stack[7], state[1]); - if(! match) return 0; + case 3: + var _kw_=acc[1],switch$3=0; + if(typeof _kw_ !== "number" && 0 === _kw_[0]) + {var _kx_=_kw_[2],switch$4=0; + if(typeof _kx_ !== "number" && 1 === _kx_[0]) + {var c$0=acc[2],size$0=_kx_[2],p$3=_kw_[1]; + switch$0 = 1; + switch$3 = 1; + switch$4 = 1}} + if(! switch$3){var c=acc[2],p$2=_kw_;switch$0 = 3} + break; + case 4: + var _ky_=acc[1],switch$5=0; + if(typeof _ky_ !== "number" && 0 === _ky_[0]) + {var _kz_=_ky_[2],switch$6=0; + if(typeof _kz_ !== "number" && 1 === _kz_[0]) + {var s$0=acc[2],size=_kz_[2],p$1=_ky_[1]; + switch$5 = 1; + switch$6 = 1}} + if(! switch$5){var s=acc[2],p$0=_ky_;switch$0 = 2} + break; + case 5: + var _kA_=acc[1],switch$7=0; + if(typeof _kA_ === "number" || ! (0 === _kA_[0])) + switch$7 = 1; + else + {var _kB_=_kA_[2],switch$8=0; + if(typeof _kB_ !== "number" && 1 === _kB_[0]) + {var c$0=acc[2],size$0=_kB_[2],p$3=_kA_[1]; + switch$0 = 1; + switch$8 = 1} + if(! switch$8)switch$7 = 1} + if(switch$7){var c=acc[2],p$2=_kA_;switch$0 = 3} + break; + case 6: + var f$0=acc[2],p$4=acc[1]; + output_acc$0(ppf,p$4); + return caml_call1(f$0,ppf); + case 7: + var p$5=acc[1];output_acc$0(ppf,p$5);return pp_print_flush(ppf,0); + default: + var msg=acc[2],p$6=acc[1]; + output_acc$0(ppf,p$6); + return invalid_arg(msg)} + switch(switch$0) + {case 0:output_acc$0(ppf,p$1);return pp_print_as_size(ppf,size,s$0); + case 1: + output_acc$0(ppf,p$3); + return pp_print_as_size(ppf,size$0,make$1(1,c$0)); + case 2:output_acc$0(ppf,p$0);return pp_print_string(ppf,s); + default:output_acc$0(ppf,p$2);return pp_print_char(ppf,c)}} + function strput_acc$0(ppf,acc) + {var switch$0=0; + if(typeof acc === "number")return 0; + switch(acc[0]) + {case 0: + var f=acc[2],p=acc[1]; + strput_acc$0(ppf,p); + return output_formatting_lit(ppf,f); + case 1: + var _kg_=acc[2],_kh_=acc[1]; + if(0 === _kg_[0]) + {var acc$0=_kg_[1]; + strput_acc$0(ppf,_kh_); + return pp_open_stag + (ppf,[0,String_tag,compute_tag(strput_acc$0,acc$0)])} + var acc$1=_kg_[1]; + strput_acc$0(ppf,_kh_); + var + match=open_box_of_string(compute_tag(strput_acc$0,acc$1)), + bty=match[2], + indent=match[1]; + return pp_open_box_gen(ppf,indent,bty); + case 2: + var _ki_=acc[1],switch$1=0; + if(typeof _ki_ !== "number" && 0 === _ki_[0]) + {var _kj_=_ki_[2],switch$2=0; + if(typeof _kj_ !== "number" && 1 === _kj_[0]) + {var s$0=acc[2],size=_kj_[2],p$1=_ki_[1]; + switch$1 = 1; + switch$2 = 1}} + if(! switch$1){var s=acc[2],p$0=_ki_;switch$0 = 2} + break; + case 3: + var _kk_=acc[1],switch$3=0; + if(typeof _kk_ !== "number" && 0 === _kk_[0]) + {var _kl_=_kk_[2],switch$4=0; + if(typeof _kl_ !== "number" && 1 === _kl_[0]) + {var c$0=acc[2],size$0=_kl_[2],p$3=_kk_[1]; + switch$0 = 1; + switch$3 = 1; + switch$4 = 1}} + if(! switch$3){var c=acc[2],p$2=_kk_;switch$0 = 3} + break; + case 4: + var _km_=acc[1],switch$5=0; + if(typeof _km_ !== "number" && 0 === _km_[0]) + {var _kn_=_km_[2],switch$6=0; + if(typeof _kn_ !== "number" && 1 === _kn_[0]) + {var s$0=acc[2],size=_kn_[2],p$1=_km_[1]; + switch$5 = 1; + switch$6 = 1}} + if(! switch$5){var s=acc[2],p$0=_km_;switch$0 = 2} + break; + case 5: + var _ko_=acc[1],switch$7=0; + if(typeof _ko_ === "number" || ! (0 === _ko_[0])) + switch$7 = 1; + else + {var _kp_=_ko_[2],switch$8=0; + if(typeof _kp_ !== "number" && 1 === _kp_[0]) + {var c$0=acc[2],size$0=_kp_[2],p$3=_ko_[1]; + switch$0 = 1; + switch$8 = 1} + if(! switch$8)switch$7 = 1} + if(switch$7){var c=acc[2],p$2=_ko_;switch$0 = 3} + break; + case 6: + var _kq_=acc[1]; + if(typeof _kq_ !== "number" && 0 === _kq_[0]) + {var _kr_=_kq_[2]; + if(typeof _kr_ !== "number" && 1 === _kr_[0]) + {var f$1=acc[2],size$1=_kr_[2],p$4=_kq_[1]; + strput_acc$0(ppf,p$4); + return pp_print_as_size(ppf,size$1,caml_call1(f$1,0))}} + var f$0=acc[2]; + strput_acc$0(ppf,_kq_); + return pp_print_string(ppf,caml_call1(f$0,0)); + case 7: + var p$5=acc[1];strput_acc$0(ppf,p$5);return pp_print_flush(ppf,0); + default: + var msg=acc[2],p$6=acc[1]; + strput_acc$0(ppf,p$6); + return invalid_arg(msg)} + switch(switch$0) + {case 0:strput_acc$0(ppf,p$1);return pp_print_as_size(ppf,size,s$0); + case 1: + strput_acc$0(ppf,p$3); + return pp_print_as_size(ppf,size$0,make$1(1,c$0)); + case 2:strput_acc$0(ppf,p$0);return pp_print_string(ppf,s); + default:strput_acc$0(ppf,p$2);return pp_print_char(ppf,c)}} + function kfprintf$0(k,ppf,param) + {var fmt=param[1],_kf_=0; + return make_printf + (function(acc){output_acc$0(ppf,acc);return caml_call1(k,ppf)}, + _kf_, + fmt)} + function ikfprintf$0(k,ppf,param) + {var fmt=param[1];return make_iprintf(k,ppf,fmt)} + function ifprintf$0(ppf,param) + {var fmt=param[1],_kd_=0; + return make_iprintf(function(_ke_){return 0},_kd_,fmt)} + function fprintf$0(ppf) + {function _ka_(_kc_){return 0} + return function(_kb_){return kfprintf$0(_ka_,ppf,_kb_)}} + function printf$0(fmt){return caml_call1(fprintf$0(std_formatter),fmt)} + function eprintf$0(fmt){return caml_call1(fprintf$0(err_formatter),fmt)} + function kdprintf(k,param) + {var fmt=param[1],_j$_=0; + return make_printf + (function(acc) + {return caml_call1 + (k,function(ppf){return output_acc$0(ppf,acc)})}, + _j$_, + fmt)} + function dprintf(fmt){return kdprintf(function(i){return i},fmt)} + function kprintf(k,param) + {var fmt=param[1],b=pp_make_buffer(0),ppf=formatter_of_buffer(b); + function k$0(acc) + {strput_acc$0(ppf,acc); + return caml_call1(k,flush_buffer_formatter(b,ppf))} + return make_printf(k$0,0,fmt)} + function sprintf$0(fmt){return kprintf(id$0,fmt)} + function kasprintf(k,param) + {var fmt=param[1],b=pp_make_buffer(0),ppf=formatter_of_buffer(b); + function k$0(acc) + {output_acc$0(ppf,acc); + return caml_call1(k,flush_buffer_formatter(b,ppf))} + return make_printf(k$0,0,fmt)} + function asprintf(fmt){return kasprintf(id$0,fmt)} + function flush_standard_formatters(param) + {pp_print_flush(std_formatter,0);return pp_print_flush(err_formatter,0)} + at_exit(flush_standard_formatters); + function pp_set_all_formatter_output_fu(state,f,g,h,i) + {pp_set_formatter_output_functi(state,f,g); + state[19] = h; + state[20] = i; + return 0} + function pp_get_all_formatter_output_fu(state,param) + {return [0,state[17],state[18],state[19],state[20]]} + function set_all_formatter_output_funct(_j7_,_j8_,_j9_,_j__) + {return pp_set_all_formatter_output_fu(std_formatter,_j7_,_j8_,_j9_,_j__)} + function get_all_formatter_output_funct(_j6_) + {return pp_get_all_formatter_output_fu(std_formatter,_j6_)} + function bprintf$0(b,param) + {var fmt=param[1],ppf=formatter_of_buffer(b); + function k(acc){output_acc$0(ppf,acc);return pp_flush_queue(ppf,0)} + return make_printf(k,0,fmt)} + function pp_set_formatter_tag_functions(state,param) + {var pct=param[4],pot=param[3],mct=param[2],mot=param[1]; + function stringify(f,e,param) + {if(param[1] !== String_tag)return e; + var s=param[2]; + return caml_call1(f,s)} + state[24] = function(_j5_){return stringify(mot,cst$84,_j5_)}; + state[25] = function(_j4_){return stringify(mct,cst$85,_j4_)}; + var _j0_=0; + state[26] = function(_j3_){return stringify(pot,_j0_,_j3_)}; + var _j1_=0; + state[27] = function(_j2_){return stringify(pct,_j1_,_j2_)}; + return 0} + function pp_get_formatter_tag_functions(fmt,param) + {var funs=pp_get_formatter_stag_function(fmt,0); + function mark_open_tag(s){return caml_call1(funs[1],[0,String_tag,s])} + function mark_close_tag(s){return caml_call1(funs[2],[0,String_tag,s])} + function print_open_tag(s){return caml_call1(funs[3],[0,String_tag,s])} + function print_close_tag(s){return caml_call1(funs[4],[0,String_tag,s])} + return [0,mark_open_tag,mark_close_tag,print_open_tag,print_close_tag]} + function set_formatter_tag_functions(_jZ_) + {return pp_set_formatter_tag_functions(std_formatter,_jZ_)} + function get_formatter_tag_functions(_jY_) + {return pp_get_formatter_tag_functions(std_formatter,_jY_)} var - match$0 = match[1], - queue_elem = match$0[2], - left_total = match$0[1], - size = queue_elem[1]; - if(left_total < state[12]) return initialize_scan_stack(state[1]); - var _bP_ = queue_elem[2]; - if(typeof _bP_ !== "number") - switch(_bP_[0]){ - case 3: - var - _bR_ = 1 - ty, - _bS_ = - _bR_ - ? (queue_elem - [1] - = state[13] + size | 0, - caml_call1(Stdlib_Stack[5], state[1]), - 0) - : _bR_; - return _bS_; - case 1: - case 2: - var - _bQ_ = - ty - ? (queue_elem - [1] - = state[13] + size | 0, - caml_call1(Stdlib_Stack[5], state[1]), - 0) - : ty; - return _bQ_; - } - return 0; - } - function scan_push(state, b, token){ - pp_enqueue(state, token); - if(b) set_size(state, 1); - var elem = [0, state[13], token]; - return caml_call2(Stdlib_Stack[3], elem, state[1]); - } - function pp_open_box_gen(state, indent, br_ty){ - state[14] = state[14] + 1 | 0; - if(state[14] < state[15]){ - var size = - state[13] | 0, elem = [0, size, [3, indent, br_ty], 0]; - return scan_push(state, 0, elem); - } - var _bO_ = state[14] === state[15] ? 1 : 0; - if(! _bO_) return _bO_; - var s = state[16]; - return enqueue_string_as(state, caml_ml_string_length(s), s); - } - function pp_close_box(state, param){ - var _bM_ = 1 < state[14] ? 1 : 0; - if(_bM_){ - if(state[14] < state[15]){ - pp_enqueue(state, [0, zero, 1, 0]); - set_size(state, 1); - set_size(state, 0); - } - state[14] = state[14] - 1 | 0; - var _bN_ = 0; - } - else - var _bN_ = _bM_; - return _bN_; - } - function pp_open_stag(state, tag_name){ - if(state[22]){ - caml_call2(Stdlib_Stack[3], tag_name, state[4]); - caml_call1(state[26], tag_name); - } - var _bL_ = state[23]; - if(! _bL_) return _bL_; - var token = [5, tag_name]; - return pp_enqueue(state, [0, zero, token, 0]); - } - function pp_close_stag(state, param){ - if(state[23]) pp_enqueue(state, [0, zero, 5, 0]); - var _bJ_ = state[22]; - if(_bJ_){ - var match = caml_call1(Stdlib_Stack[5], state[4]); - if(match){ - var tag_name = match[1]; - return caml_call1(state[27], tag_name); - } - var _bK_ = 0; - } - else - var _bK_ = _bJ_; - return _bK_; - } - function pp_open_tag(state, s){ - return pp_open_stag(state, [0, String_tag, s]); - } - function pp_close_tag(state, param){return pp_close_stag(state, 0);} - function pp_set_print_tags(state, b){state[22] = b; return 0;} - function pp_set_mark_tags(state, b){state[23] = b; return 0;} - function pp_get_print_tags(state, param){return state[22];} - function pp_get_mark_tags(state, param){return state[23];} - function pp_set_tags(state, b){ - pp_set_print_tags(state, b); - return pp_set_mark_tags(state, b); - } - function pp_get_formatter_stag_function(state, param){ - return [0, state[24], state[25], state[26], state[27]]; - } - function pp_set_formatter_stag_function(state, param){ - var pct = param[4], pot = param[3], mct = param[2], mot = param[1]; - state[24] = mot; - state[25] = mct; - state[26] = pot; - state[27] = pct; - return 0; - } - function pp_rinit(state){ - state[12] = 1; - state[13] = 1; - caml_call1(Stdlib_Queue[11], state[28]); - initialize_scan_stack(state[1]); - caml_call1(Stdlib_Stack[8], state[2]); - caml_call1(Stdlib_Stack[8], state[3]); - caml_call1(Stdlib_Stack[8], state[4]); - caml_call1(Stdlib_Stack[8], state[5]); - state[10] = 0; - state[14] = 0; - state[9] = state[6]; - return pp_open_box_gen(state, 0, 3); - } - function pp_flush_queue(state, b){ - var _bH_ = state[4]; - function _bI_(param){return pp_close_tag(state, 0);} - caml_call2(Stdlib_Stack[12], _bI_, _bH_); - for(;;){ - if(1 < state[14]){pp_close_box(state, 0); continue;} - state[13] = pp_infinity; - advance_left(state); - if(b) pp_output_newline(state); - return pp_rinit(state); - } - } - function pp_print_as_size(state, size, s){ - var _bG_ = state[14] < state[15] ? 1 : 0; - return _bG_ ? enqueue_string_as(state, size, s) : _bG_; - } - function pp_print_as(state, isize, s){ - return pp_print_as_size(state, isize, s); - } - function pp_print_string(state, s){ - return pp_print_as(state, caml_ml_string_length(s), s); - } - function pp_print_bytes(state, s){ - return pp_print_as - (state, - runtime.caml_ml_bytes_length(s), - caml_call1(Stdlib_Bytes[6], s)); - } - function pp_print_int(state, i){ - return pp_print_string(state, caml_call1(Stdlib_Int[12], i)); - } - function pp_print_float(state, f){ - return pp_print_string(state, caml_call1(Stdlib[35], f)); - } - function pp_print_bool(state, b){ - return pp_print_string(state, caml_call1(Stdlib[30], b)); - } - function pp_print_char(state, c){ - return pp_print_as(state, 1, caml_call2(Stdlib_String[1], 1, c)); - } - function pp_open_hbox(state, param){return pp_open_box_gen(state, 0, 0);} - function pp_open_vbox(state, indent){ - return pp_open_box_gen(state, indent, 1); - } - function pp_open_hvbox(state, indent){ - return pp_open_box_gen(state, indent, 2); - } - function pp_open_hovbox(state, indent){ - return pp_open_box_gen(state, indent, 3); - } - function pp_open_box(state, indent){ - return pp_open_box_gen(state, indent, 4); - } - function pp_print_newline(state, param){ - pp_flush_queue(state, 1); - return caml_call1(state[18], 0); - } - function pp_print_flush(state, param){ - pp_flush_queue(state, 0); - return caml_call1(state[18], 0); - } - function pp_force_newline(state, param){ - var _bF_ = state[14] < state[15] ? 1 : 0; - return _bF_ ? enqueue_advance(state, [0, zero, 3, 0]) : _bF_; - } - function pp_print_if_newline(state, param){ - var _bE_ = state[14] < state[15] ? 1 : 0; - return _bE_ ? enqueue_advance(state, [0, zero, 4, 0]) : _bE_; - } - function pp_print_custom_break(state, fits, breaks){ - var - after = fits[3], - width = fits[2], - before = fits[1], - _bD_ = state[14] < state[15] ? 1 : 0; - if(! _bD_) return _bD_; - var - size = - state[13] | 0, - token = [1, fits, breaks], - length = - (caml_ml_string_length(before) + width | 0) - + caml_ml_string_length(after) - | 0, - elem = [0, size, token, length]; - return scan_push(state, 1, elem); - } - function pp_print_break(state, width, offset){ - return pp_print_custom_break - (state, [0, cst$6, width, cst$5], [0, cst$4, offset, cst$3]); - } - function pp_print_space(state, param){return pp_print_break(state, 1, 0);} - function pp_print_cut(state, param){return pp_print_break(state, 0, 0);} - function pp_open_tbox(state, param){ - state[14] = state[14] + 1 | 0; - var _bC_ = state[14] < state[15] ? 1 : 0; - if(! _bC_) return _bC_; - var elem = [0, zero, [4, [0, [0, 0]]], 0]; - return enqueue_advance(state, elem); - } - function pp_close_tbox(state, param){ - var _bz_ = 1 < state[14] ? 1 : 0; - if(_bz_){ - var _bA_ = state[14] < state[15] ? 1 : 0; - if(_bA_){ - var elem = [0, zero, 2, 0]; - enqueue_advance(state, elem); - state[14] = state[14] - 1 | 0; - var _bB_ = 0; - } - else - var _bB_ = _bA_; - } - else - var _bB_ = _bz_; - return _bB_; - } - function pp_print_tbreak(state, width, offset){ - var _by_ = state[14] < state[15] ? 1 : 0; - if(! _by_) return _by_; - var size = - state[13] | 0, elem = [0, size, [2, width, offset], width]; - return scan_push(state, 1, elem); - } - function pp_print_tab(state, param){return pp_print_tbreak(state, 0, 0);} - function pp_set_tab(state, param){ - var _bx_ = state[14] < state[15] ? 1 : 0; - if(! _bx_) return _bx_; - var elem = [0, zero, 0, 0]; - return enqueue_advance(state, elem); - } - function pp_set_max_boxes(state, n){ - var _bv_ = 1 < n ? 1 : 0, _bw_ = _bv_ ? (state[15] = n, 0) : _bv_; - return _bw_; - } - function pp_get_max_boxes(state, param){return state[15];} - function pp_over_max_boxes(state, param){return state[14] === state[15] ? 1 : 0; - } - function pp_set_ellipsis_text(state, s){state[16] = s; return 0;} - function pp_get_ellipsis_text(state, param){return state[16];} - function pp_limit(n){return n < 1000000010 ? n : 1000000009;} - function pp_set_max_indent(state, n$0){ - var _bu_ = 1 < n$0 ? 1 : 0; - if(! _bu_) return _bu_; - var n$1 = state[6] - n$0 | 0, _bt_ = 1 <= n$1 ? 1 : 0; - if(! _bt_) return _bt_; - var n = pp_limit(n$1); - state[7] = n; - state[8] = state[6] - state[7] | 0; - return pp_rinit(state); - } - function pp_get_max_indent(state, param){return state[8];} - function pp_set_margin(state, n){ - var _br_ = 1 <= n ? 1 : 0; - if(! _br_) return _br_; - var n$0 = pp_limit(n); - state[6] = n$0; - if(state[8] <= state[6]) - var new_max_indent = state[8]; - else - var - _bs_ = - caml_call2(Stdlib_Int[11], state[6] - state[7] | 0, state[6] / 2 | 0), - new_max_indent = caml_call2(Stdlib_Int[11], _bs_, 1); - return pp_set_max_indent(state, new_max_indent); - } - function validate_geometry(param){ - var margin = param[2], max_indent = param[1]; - return 2 <= max_indent ? margin <= max_indent ? _c_ : _d_ : _e_; - } - function check_geometry(geometry){ - return 0 === validate_geometry(geometry)[0] ? 1 : 0; - } - function pp_get_margin(state, param){return state[6];} - function pp_set_full_geometry(state, param){ - var margin = param[2], max_indent = param[1]; - pp_set_margin(state, margin); - pp_set_max_indent(state, max_indent); - return 0; - } - function pp_set_geometry(state, max_indent, margin){ - var - geometry = [0, max_indent, margin], - match = validate_geometry(geometry); - if(0 === match[0]) return pp_set_full_geometry(state, geometry); - var - msg = match[1], - _bq_ = caml_call2(Stdlib[28], cst_Format_pp_set_geometry, msg); - throw caml_maybe_attach_backtrace([0, Stdlib[6], _bq_], 1); - } - function pp_safe_set_geometry(state, max_indent, margin){ - var geometry = [0, max_indent, margin]; - return 0 === validate_geometry(geometry)[0] - ? pp_set_full_geometry(state, geometry) - : 0; - } - function pp_get_geometry(state, param){return [0, state[8], state[6]];} - function pp_update_geometry(state, update){ - var geometry = pp_get_geometry(state, 0); - return pp_set_full_geometry(state, caml_call1(update, geometry)); - } - function pp_set_formatter_out_functions(state, param){ - var j = param[5], i = param[4], h = param[3], g = param[2], f = param[1]; - state[17] = f; - state[18] = g; - state[19] = h; - state[20] = i; - state[21] = j; - return 0; - } - function pp_get_formatter_out_functions(state, param){ - return [0, state[17], state[18], state[19], state[20], state[21]]; - } - function pp_set_formatter_output_functi(state, f, g){state[17] = f; state[18] = g; return 0; - } - function pp_get_formatter_output_functi(state, param){return [0, state[17], state[18]]; - } - function display_newline(state, param){ - return caml_call3(state[17], cst$7, 0, 1); - } - var blank_line = caml_call2(Stdlib_String[1], 80, 32); - function display_blanks(state, n){ - var n$0 = n; - for(;;){ - var _bp_ = 0 < n$0 ? 1 : 0; - if(! _bp_) return _bp_; - if(80 >= n$0) return caml_call3(state[17], blank_line, 0, n$0); - caml_call3(state[17], blank_line, 0, 80); - var n$1 = n$0 - 80 | 0, n$0 = n$1; - } - } - function pp_set_formatter_out_channel(state, oc){ - state[17] = caml_call1(Stdlib[69], oc); - state[18] = function(param){return caml_call1(Stdlib[63], oc);}; - state[19] = function(_bo_){return display_newline(state, _bo_);}; - state[20] = function(_bn_){return display_blanks(state, _bn_);}; - state[21] = function(_bm_){return display_blanks(state, _bm_);}; - return 0; - } - function default_pp_mark_open_tag(param){ - if(param[1] !== String_tag) return cst$10; - var s = param[2], _bl_ = caml_call2(Stdlib[28], s, cst$8); - return caml_call2(Stdlib[28], cst$9, _bl_); - } - function default_pp_mark_close_tag(param){ - if(param[1] !== String_tag) return cst$13; - var s = param[2], _bk_ = caml_call2(Stdlib[28], s, cst$11); - return caml_call2(Stdlib[28], cst$12, _bk_); - } - function default_pp_print_open_tag(_bj_){return 0;} - function default_pp_print_close_tag(_bi_){return 0;} - function pp_make_formatter(f, g, h, i, j){ - var - pp_queue = caml_call1(Stdlib_Queue[2], 0), - sys_tok = [0, unknown, _f_, 0]; - caml_call2(Stdlib_Queue[3], sys_tok, pp_queue); - var scan_stack = caml_call1(Stdlib_Stack[2], 0); - initialize_scan_stack(scan_stack); - caml_call2(Stdlib_Stack[3], [0, 1, sys_tok], scan_stack); - var - _be_ = Stdlib[19], - _bf_ = caml_call1(Stdlib_Stack[2], 0), - _bg_ = caml_call1(Stdlib_Stack[2], 0), - _bh_ = caml_call1(Stdlib_Stack[2], 0); - return [0, - scan_stack, - caml_call1(Stdlib_Stack[2], 0), - _bh_, - _bg_, - _bf_, - 78, - 10, - 68, - 78, - 0, - 1, - 1, - 1, - 1, - _be_, - cst$14, - f, - g, - h, - i, - j, - 0, - 0, - default_pp_mark_open_tag, - default_pp_mark_close_tag, - default_pp_print_open_tag, - default_pp_print_close_tag, - pp_queue]; - } - function formatter_of_out_functions(out_funs){ - return pp_make_formatter - (out_funs[1], out_funs[2], out_funs[3], out_funs[4], out_funs[5]); - } - function make_formatter(output, flush){ - function _a8_(_bd_){return 0;} - function _a9_(_bc_){return 0;} - var - ppf = - pp_make_formatter(output, flush, function(_bb_){return 0;}, _a9_, _a8_); - ppf[19] = function(_ba_){return display_newline(ppf, _ba_);}; - ppf[20] = function(_a$_){return display_blanks(ppf, _a$_);}; - ppf[21] = function(_a__){return display_blanks(ppf, _a__);}; - return ppf; - } - function formatter_of_out_channel(oc){ - function _a7_(param){return caml_call1(Stdlib[63], oc);} - return make_formatter(caml_call1(Stdlib[69], oc), _a7_); - } - function formatter_of_buffer(b){ - function _a5_(_a6_){return 0;} - return make_formatter(caml_call1(Stdlib_Buffer[18], b), _a5_); - } - var pp_buffer_size = 512; - function pp_make_buffer(param){ - return caml_call1(Stdlib_Buffer[1], pp_buffer_size); - } - var - stdbuf = pp_make_buffer(0), - std_formatter = formatter_of_out_channel(Stdlib[39]), - err_formatter = formatter_of_out_channel(Stdlib[40]), - str_formatter = formatter_of_buffer(stdbuf); - function flush_buffer_formatter(buf, ppf){ - pp_flush_queue(ppf, 0); - var s = caml_call1(Stdlib_Buffer[2], buf); - caml_call1(Stdlib_Buffer[9], buf); - return s; - } - function flush_str_formatter(param){ - return flush_buffer_formatter(stdbuf, str_formatter); - } - function make_symbolic_output_buffer(param){return [0, 0];} - function clear_symbolic_output_buffer(sob){sob[1] = 0; return 0;} - function get_symbolic_output_buffer(sob){ - return caml_call1(Stdlib_List[9], sob[1]); - } - function flush_symbolic_output_buffer(sob){ - var items = get_symbolic_output_buffer(sob); - clear_symbolic_output_buffer(sob); - return items; - } - function add_symbolic_output_item(sob, item){sob[1] = [0, item, sob[1]]; return 0; - } - function formatter_of_symbolic_output_b(sob){ - function f(s, i, n){ - return add_symbolic_output_item - (sob, [0, caml_call3(Stdlib_String[15], s, i, n)]); - } - function g(_a4_){return add_symbolic_output_item(sob, 0);} - function h(_a3_){return add_symbolic_output_item(sob, 1);} - function i(n){return add_symbolic_output_item(sob, [1, n]);} - function j(n){return add_symbolic_output_item(sob, [2, n]);} - return pp_make_formatter(f, g, h, i, j); - } - function open_hbox(_a2_){return pp_open_hbox(std_formatter, _a2_);} - function open_vbox(_a1_){return pp_open_vbox(std_formatter, _a1_);} - function open_hvbox(_a0_){return pp_open_hvbox(std_formatter, _a0_);} - function open_hovbox(_aZ_){return pp_open_hovbox(std_formatter, _aZ_);} - function open_box(_aY_){return pp_open_box(std_formatter, _aY_);} - function close_box(_aX_){return pp_close_box(std_formatter, _aX_);} - function open_tag(_aW_){return pp_open_tag(std_formatter, _aW_);} - function close_tag(_aV_){return pp_close_tag(std_formatter, _aV_);} - function open_stag(_aU_){return pp_open_stag(std_formatter, _aU_);} - function close_stag(_aT_){return pp_close_stag(std_formatter, _aT_);} - function print_as(_aR_, _aS_){ - return pp_print_as(std_formatter, _aR_, _aS_); - } - function print_string(_aQ_){return pp_print_string(std_formatter, _aQ_);} - function print_bytes(_aP_){return pp_print_bytes(std_formatter, _aP_);} - function print_int(_aO_){return pp_print_int(std_formatter, _aO_);} - function print_float(_aN_){return pp_print_float(std_formatter, _aN_);} - function print_char(_aM_){return pp_print_char(std_formatter, _aM_);} - function print_bool(_aL_){return pp_print_bool(std_formatter, _aL_);} - function print_break(_aJ_, _aK_){ - return pp_print_break(std_formatter, _aJ_, _aK_); - } - function print_cut(_aI_){return pp_print_cut(std_formatter, _aI_);} - function print_space(_aH_){return pp_print_space(std_formatter, _aH_);} - function force_newline(_aG_){return pp_force_newline(std_formatter, _aG_);} - function print_flush(_aF_){return pp_print_flush(std_formatter, _aF_);} - function print_newline(_aE_){return pp_print_newline(std_formatter, _aE_);} - function print_if_newline(_aD_){ - return pp_print_if_newline(std_formatter, _aD_); - } - function open_tbox(_aC_){return pp_open_tbox(std_formatter, _aC_);} - function close_tbox(_aB_){return pp_close_tbox(std_formatter, _aB_);} - function print_tbreak(_az_, _aA_){ - return pp_print_tbreak(std_formatter, _az_, _aA_); - } - function set_tab(_ay_){return pp_set_tab(std_formatter, _ay_);} - function print_tab(_ax_){return pp_print_tab(std_formatter, _ax_);} - function set_margin(_aw_){return pp_set_margin(std_formatter, _aw_);} - function get_margin(_av_){return std_formatter[6];} - function set_max_indent(_au_){ - return pp_set_max_indent(std_formatter, _au_); - } - function get_max_indent(_at_){return std_formatter[8];} - function set_geometry(_ar_, _as_){ - return pp_set_geometry(std_formatter, _ar_, _as_); - } - function safe_set_geometry(_ap_, _aq_){ - return pp_safe_set_geometry(std_formatter, _ap_, _aq_); - } - function get_geometry(_ao_){return pp_get_geometry(std_formatter, _ao_);} - function update_geometry(_an_){ - return pp_update_geometry(std_formatter, _an_); - } - function set_max_boxes(_am_){return pp_set_max_boxes(std_formatter, _am_);} - function get_max_boxes(_al_){return std_formatter[15];} - function over_max_boxes(_ak_){ - return pp_over_max_boxes(std_formatter, _ak_); - } - function set_ellipsis_text(_aj_){ - return pp_set_ellipsis_text(std_formatter, _aj_); - } - function get_ellipsis_text(_ai_){return std_formatter[16];} - function set_formatter_out_channel(_ah_){ - return pp_set_formatter_out_channel(std_formatter, _ah_); - } - function set_formatter_out_functions(_ag_){ - return pp_set_formatter_out_functions(std_formatter, _ag_); - } - function get_formatter_out_functions(_af_){ - return pp_get_formatter_out_functions(std_formatter, _af_); - } - function set_formatter_output_functions(_ad_, _ae_){ - return pp_set_formatter_output_functi(std_formatter, _ad_, _ae_); - } - function get_formatter_output_functions(_ac_){ - return pp_get_formatter_output_functi(std_formatter, _ac_); - } - function set_formatter_stag_functions(_ab_){ - return pp_set_formatter_stag_function(std_formatter, _ab_); - } - function get_formatter_stag_functions(_aa_){ - return pp_get_formatter_stag_function(std_formatter, _aa_); - } - function set_print_tags(_$_){return pp_set_print_tags(std_formatter, _$_);} - function get_print_tags(___){return std_formatter[22];} - function set_mark_tags(_Z_){return pp_set_mark_tags(std_formatter, _Z_);} - function get_mark_tags(_Y_){return std_formatter[23];} - function set_tags(_X_){return pp_set_tags(std_formatter, _X_);} - function pp_print_list(opt, pp_v, ppf, param){ - var opt$0 = opt, param$0 = param; - for(;;){ - if(opt$0) - var sth = opt$0[1], pp_sep = sth; - else - var pp_sep = pp_print_cut; - if(! param$0) return 0; - var v = param$0[1]; - if(! param$0[2]) return caml_call2(pp_v, ppf, v); - var vs = param$0[2]; - caml_call2(pp_v, ppf, v); - caml_call2(pp_sep, ppf, 0); - var opt$1 = [0, pp_sep], opt$0 = opt$1, param$0 = vs; - } - } - function pp_print_seq(opt, pp_v, ppf, seq$1){ - if(opt) var sth = opt[1], pp_sep = sth; else var pp_sep = pp_print_cut; - var match$0 = caml_call1(seq$1, 0); - if(! match$0) return 0; - var seq$2 = match$0[2], v$0 = match$0[1]; - caml_call2(pp_v, ppf, v$0); - var seq = seq$2; - for(;;){ - var match = caml_call1(seq, 0); - if(! match) return 0; - var seq$0 = match[2], v = match[1]; - caml_call2(pp_sep, ppf, 0); - caml_call2(pp_v, ppf, v); - var seq = seq$0; - } - } - function pp_print_text(ppf, s){ - var len = caml_ml_string_length(s), left = [0, 0], right = [0, 0]; - function flush(param){ - pp_print_string - (ppf, caml_call3(Stdlib_String[15], s, left[1], right[1] - left[1] | 0)); - right[1]++; - left[1] = right[1]; - return 0; - } - for(;;){ - if(right[1] === len){ - var _W_ = left[1] !== len ? 1 : 0; - return _W_ ? flush(0) : _W_; - } - var match = runtime.caml_string_get(s, right[1]); - if(10 === match){ - flush(0); - pp_force_newline(ppf, 0); - } - else if(32 === match){flush(0); pp_print_space(ppf, 0);} else right[1]++; - } - } - function pp_print_option(opt, pp_v, ppf, param){ - if(opt) - var sth = opt[1], none = sth; - else - var none = function(param, _V_){return 0;}; - if(! param) return caml_call2(none, ppf, 0); - var v = param[1]; - return caml_call2(pp_v, ppf, v); - } - function pp_print_result(ok, error, ppf, param){ - if(0 === param[0]){var v = param[1]; return caml_call2(ok, ppf, v);} - var e = param[1]; - return caml_call2(error, ppf, e); - } - function pp_print_either(left, right, ppf, param){ - if(0 === param[0]){var l = param[1]; return caml_call2(left, ppf, l);} - var r = param[1]; - return caml_call2(right, ppf, r); - } - function compute_tag(output, tag_acc){ - var - buf = caml_call1(Stdlib_Buffer[1], 16), - ppf = formatter_of_buffer(buf); - caml_call2(output, ppf, tag_acc); - pp_print_flush(ppf, 0); - var len = caml_call1(Stdlib_Buffer[7], buf); - return 2 <= len - ? caml_call3(Stdlib_Buffer[4], buf, 1, len - 2 | 0) - : caml_call1(Stdlib_Buffer[2], buf); - } - function output_formatting_lit(ppf, fmting_lit){ - if(typeof fmting_lit === "number") - switch(fmting_lit){ - case 0: - return pp_close_box(ppf, 0); - case 1: - return pp_close_tag(ppf, 0); - case 2: - return pp_print_flush(ppf, 0); - case 3: - return pp_force_newline(ppf, 0); - case 4: - return pp_print_newline(ppf, 0); - case 5: - return pp_print_char(ppf, 64); - default: return pp_print_char(ppf, 37); - } - switch(fmting_lit[0]){ - case 0: - var offset = fmting_lit[3], width = fmting_lit[2]; - return pp_print_break(ppf, width, offset); - case 1: - return 0; - default: - var c = fmting_lit[1]; - pp_print_char(ppf, 64); - return pp_print_char(ppf, c); - } - } - function output_acc(ppf, acc){ - var switch$0 = 0; - if(typeof acc === "number") return 0; - switch(acc[0]){ - case 0: - var f = acc[2], p = acc[1]; - output_acc(ppf, p); - return output_formatting_lit(ppf, f); - case 1: - var match = acc[2], p$0 = acc[1]; - if(0 === match[0]){ - var acc$0 = match[1]; - output_acc(ppf, p$0); - return pp_open_stag - (ppf, [0, String_tag, compute_tag(output_acc, acc$0)]); - } - var acc$1 = match[1]; - output_acc(ppf, p$0); - var - _M_ = compute_tag(output_acc, acc$1), - match$0 = caml_call1(CamlinternalFormat[20], _M_), - bty = match$0[2], - indent = match$0[1]; - return pp_open_box_gen(ppf, indent, bty); - case 2: - var _N_ = acc[1], switch$1 = 0; - if(typeof _N_ === "number" || ! (0 === _N_[0])) - switch$1 = 1; - else{ - var _O_ = _N_[2], switch$2 = 0; - if(typeof _O_ === "number" || ! (1 === _O_[0])) - switch$2 = 1; - else - var s$0 = acc[2], size = _O_[2], p$2 = _N_[1]; - if(switch$2) switch$1 = 1; - } - if(switch$1){var s = acc[2], p$1 = _N_; switch$0 = 2;} - break; - case 3: - var _P_ = acc[1], switch$3 = 0; - if(typeof _P_ === "number" || ! (0 === _P_[0])) - switch$3 = 1; - else{ - var _Q_ = _P_[2], switch$4 = 0; - if(typeof _Q_ === "number" || ! (1 === _Q_[0])) - switch$4 = 1; - else{var c$0 = acc[2], size$0 = _Q_[2], p$4 = _P_[1]; switch$0 = 1;} - if(switch$4) switch$3 = 1; - } - if(switch$3){var c = acc[2], p$3 = _P_; switch$0 = 3;} - break; - case 4: - var _R_ = acc[1], switch$5 = 0; - if(typeof _R_ === "number" || ! (0 === _R_[0])) - switch$5 = 1; - else{ - var _S_ = _R_[2], switch$6 = 0; - if(typeof _S_ === "number" || ! (1 === _S_[0])) - switch$6 = 1; - else - var s$0 = acc[2], size = _S_[2], p$2 = _R_[1]; - if(switch$6) switch$5 = 1; - } - if(switch$5){var s = acc[2], p$1 = _R_; switch$0 = 2;} - break; - case 5: - var _T_ = acc[1], switch$7 = 0; - if(typeof _T_ === "number" || ! (0 === _T_[0])) - switch$7 = 1; - else{ - var _U_ = _T_[2], switch$8 = 0; - if(typeof _U_ === "number" || ! (1 === _U_[0])) - switch$8 = 1; - else{var c$0 = acc[2], size$0 = _U_[2], p$4 = _T_[1]; switch$0 = 1;} - if(switch$8) switch$7 = 1; - } - if(switch$7){var c = acc[2], p$3 = _T_; switch$0 = 3;} - break; - case 6: - var f$0 = acc[2], p$5 = acc[1]; - output_acc(ppf, p$5); - return caml_call1(f$0, ppf); - case 7: - var p$6 = acc[1]; output_acc(ppf, p$6); return pp_print_flush(ppf, 0); - default: - var msg = acc[2], p$7 = acc[1]; - output_acc(ppf, p$7); - return caml_call1(Stdlib[1], msg); - } - switch(switch$0){ - case 0: - output_acc(ppf, p$2); return pp_print_as_size(ppf, size, s$0); - case 1: - output_acc(ppf, p$4); - return pp_print_as_size - (ppf, size$0, caml_call2(Stdlib_String[1], 1, c$0)); - case 2: - output_acc(ppf, p$1); return pp_print_string(ppf, s); - default: output_acc(ppf, p$3); return pp_print_char(ppf, c); - } - } - function strput_acc(ppf, acc){ - var switch$0 = 0; - if(typeof acc === "number") return 0; - switch(acc[0]){ - case 0: - var f = acc[2], p = acc[1]; - strput_acc(ppf, p); - return output_formatting_lit(ppf, f); - case 1: - var match = acc[2], p$0 = acc[1]; - if(0 === match[0]){ - var acc$0 = match[1]; - strput_acc(ppf, p$0); - return pp_open_stag - (ppf, [0, String_tag, compute_tag(strput_acc, acc$0)]); - } - var acc$1 = match[1]; - strput_acc(ppf, p$0); - var - _D_ = compute_tag(strput_acc, acc$1), - match$0 = caml_call1(CamlinternalFormat[20], _D_), - bty = match$0[2], - indent = match$0[1]; - return pp_open_box_gen(ppf, indent, bty); - case 2: - var _E_ = acc[1], switch$1 = 0; - if(typeof _E_ === "number" || ! (0 === _E_[0])) - switch$1 = 1; - else{ - var _F_ = _E_[2], switch$2 = 0; - if(typeof _F_ === "number" || ! (1 === _F_[0])) - switch$2 = 1; - else - var s$0 = acc[2], size = _F_[2], p$2 = _E_[1]; - if(switch$2) switch$1 = 1; - } - if(switch$1){var s = acc[2], p$1 = _E_; switch$0 = 2;} - break; - case 3: - var _G_ = acc[1], switch$3 = 0; - if(typeof _G_ === "number" || ! (0 === _G_[0])) - switch$3 = 1; - else{ - var _H_ = _G_[2], switch$4 = 0; - if(typeof _H_ === "number" || ! (1 === _H_[0])) - switch$4 = 1; - else{var c$0 = acc[2], size$0 = _H_[2], p$4 = _G_[1]; switch$0 = 1;} - if(switch$4) switch$3 = 1; - } - if(switch$3){var c = acc[2], p$3 = _G_; switch$0 = 3;} - break; - case 4: - var _I_ = acc[1], switch$5 = 0; - if(typeof _I_ === "number" || ! (0 === _I_[0])) - switch$5 = 1; - else{ - var _J_ = _I_[2], switch$6 = 0; - if(typeof _J_ === "number" || ! (1 === _J_[0])) - switch$6 = 1; - else - var s$0 = acc[2], size = _J_[2], p$2 = _I_[1]; - if(switch$6) switch$5 = 1; - } - if(switch$5){var s = acc[2], p$1 = _I_; switch$0 = 2;} - break; - case 5: - var _K_ = acc[1], switch$7 = 0; - if(typeof _K_ === "number" || ! (0 === _K_[0])) - switch$7 = 1; - else{ - var _L_ = _K_[2], switch$8 = 0; - if(typeof _L_ === "number" || ! (1 === _L_[0])) - switch$8 = 1; - else{var c$0 = acc[2], size$0 = _L_[2], p$4 = _K_[1]; switch$0 = 1;} - if(switch$8) switch$7 = 1; - } - if(switch$7){var c = acc[2], p$3 = _K_; switch$0 = 3;} - break; - case 6: - var p$5 = acc[1]; - if(typeof p$5 !== "number" && 0 === p$5[0]){ - var match$1 = p$5[2]; - if(typeof match$1 !== "number" && 1 === match$1[0]){ - var f$1 = acc[2], size$1 = match$1[2], p$6 = p$5[1]; - strput_acc(ppf, p$6); - return pp_print_as_size(ppf, size$1, caml_call1(f$1, 0)); - } - } - var f$0 = acc[2]; - strput_acc(ppf, p$5); - return pp_print_string(ppf, caml_call1(f$0, 0)); - case 7: - var p$7 = acc[1]; strput_acc(ppf, p$7); return pp_print_flush(ppf, 0); - default: - var msg = acc[2], p$8 = acc[1]; - strput_acc(ppf, p$8); - return caml_call1(Stdlib[1], msg); - } - switch(switch$0){ - case 0: - strput_acc(ppf, p$2); return pp_print_as_size(ppf, size, s$0); - case 1: - strput_acc(ppf, p$4); - return pp_print_as_size - (ppf, size$0, caml_call2(Stdlib_String[1], 1, c$0)); - case 2: - strput_acc(ppf, p$1); return pp_print_string(ppf, s); - default: strput_acc(ppf, p$3); return pp_print_char(ppf, c); - } - } - function kfprintf(k, ppf, param){ - var fmt = param[1], _B_ = 0; - function _C_(acc){output_acc(ppf, acc); return caml_call1(k, ppf);} - return caml_call3(CamlinternalFormat[7], _C_, _B_, fmt); - } - function ikfprintf(k, ppf, param){ - var fmt = param[1]; - return caml_call3(CamlinternalFormat[8], k, ppf, fmt); - } - function ifprintf(ppf, param){ - var fmt = param[1], _y_ = 0; - function _z_(_A_){return 0;} - return caml_call3(CamlinternalFormat[8], _z_, _y_, fmt); - } - function fprintf(ppf){ - function _v_(_x_){return 0;} - return function(_w_){return kfprintf(_v_, ppf, _w_);}; - } - function printf(fmt){return caml_call1(fprintf(std_formatter), fmt);} - function eprintf(fmt){return caml_call1(fprintf(err_formatter), fmt);} - function kdprintf(k, param){ - var fmt = param[1], _t_ = 0; - function _u_(acc){ - return caml_call1(k, function(ppf){return output_acc(ppf, acc);}); - } - return caml_call3(CamlinternalFormat[7], _u_, _t_, fmt); - } - function dprintf(fmt){return kdprintf(function(i){return i;}, fmt);} - function ksprintf(k, param){ - var fmt = param[1], b = pp_make_buffer(0), ppf = formatter_of_buffer(b); - function k$0(acc){ - strput_acc(ppf, acc); - return caml_call1(k, flush_buffer_formatter(b, ppf)); - } - return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); - } - function sprintf(fmt){return ksprintf(id, fmt);} - function kasprintf(k, param){ - var fmt = param[1], b = pp_make_buffer(0), ppf = formatter_of_buffer(b); - function k$0(acc){ - output_acc(ppf, acc); - return caml_call1(k, flush_buffer_formatter(b, ppf)); - } - return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); - } - function asprintf(fmt){return kasprintf(id, fmt);} - function flush_standard_formatters(param){ - pp_print_flush(std_formatter, 0); - return pp_print_flush(err_formatter, 0); - } - caml_call1(Stdlib[100], flush_standard_formatters); - function pp_set_all_formatter_output_fu(state, f, g, h, i){ - pp_set_formatter_output_functi(state, f, g); - state[19] = h; - state[20] = i; - return 0; - } - function pp_get_all_formatter_output_fu(state, param){ - return [0, state[17], state[18], state[19], state[20]]; - } - function set_all_formatter_output_funct(_p_, _q_, _r_, _s_){ - return pp_set_all_formatter_output_fu(std_formatter, _p_, _q_, _r_, _s_); - } - function get_all_formatter_output_funct(_o_){ - return pp_get_all_formatter_output_fu(std_formatter, _o_); - } - function bprintf(b, param){ - var fmt = param[1], ppf = formatter_of_buffer(b); - function k(acc){output_acc(ppf, acc); return pp_flush_queue(ppf, 0);} - return caml_call3(CamlinternalFormat[7], k, 0, fmt); - } - function pp_set_formatter_tag_functions(state, param){ - var pct = param[4], pot = param[3], mct = param[2], mot = param[1]; - function stringify(f, e, param){ - if(param[1] !== String_tag) return e; - var s = param[2]; - return caml_call1(f, s); - } - state[24] = function(_n_){return stringify(mot, cst$15, _n_);}; - state[25] = function(_m_){return stringify(mct, cst$16, _m_);}; - var _i_ = 0; - state[26] = function(_l_){return stringify(pot, _i_, _l_);}; - var _j_ = 0; - state[27] = function(_k_){return stringify(pct, _j_, _k_);}; - return 0; - } - function pp_get_formatter_tag_functions(fmt, param){ - var funs = pp_get_formatter_stag_function(fmt, 0); - function mark_open_tag(s){return caml_call1(funs[1], [0, String_tag, s]);} - function mark_close_tag(s){ - return caml_call1(funs[2], [0, String_tag, s]); - } - function print_open_tag(s){ - return caml_call1(funs[3], [0, String_tag, s]); - } - function print_close_tag(s){ - return caml_call1(funs[4], [0, String_tag, s]); - } - return [0, mark_open_tag, mark_close_tag, print_open_tag, print_close_tag]; - } - function set_formatter_tag_functions(_h_){ - return pp_set_formatter_tag_functions(std_formatter, _h_); - } - function get_formatter_tag_functions(_g_){ - return pp_get_formatter_tag_functions(std_formatter, _g_); - } - var - Stdlib_Format = + Stdlib_Format= [0, pp_open_box, open_box, @@ -27504,17 +24913,17 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ pp_open_hovbox, open_hovbox, pp_print_string, - print_string, + print_string$0, pp_print_bytes, - print_bytes, + print_bytes$0, pp_print_as, print_as, pp_print_int, - print_int, + print_int$0, pp_print_float, - print_float, + print_float$0, pp_print_char, - print_char, + print_char$0, pp_print_bool, print_bool, pp_print_space, @@ -27531,7 +24940,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ pp_print_flush, print_flush, pp_print_newline, - print_newline, + print_newline$0, pp_set_margin, set_margin, pp_get_margin, @@ -27619,20 +25028,20 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ pp_print_option, pp_print_result, pp_print_either, - fprintf, - printf, - eprintf, - sprintf, + fprintf$0, + printf$0, + eprintf$0, + sprintf$0, asprintf, dprintf, - ifprintf, - kfprintf, + ifprintf$0, + kfprintf$0, kdprintf, - ikfprintf, - ksprintf, + ikfprintf$0, + kprintf, kasprintf, - bprintf, - ksprintf, + bprintf$0, + kprintf, set_all_formatter_output_funct, get_all_formatter_output_funct, pp_set_all_formatter_output_fu, @@ -27645,778 +25054,1865 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ set_formatter_tag_functions, pp_get_formatter_tag_functions, get_formatter_tag_functions]; - runtime.caml_register_global(36, Stdlib_Format, "Stdlib__Format"); - return; - } - (globalThis)); - -//# 22293 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_register_named_value = runtime.caml_register_named_value, - global_data = runtime.caml_get_global_data(), - Stdlib_Obj = global_data.Stdlib__Obj, - register = caml_register_named_value; - function register_exception(name, exn){ - var - _a_ = Stdlib_Obj[8], - slot = runtime.caml_obj_tag(exn) === _a_ ? exn : exn[1]; - return caml_register_named_value(name, slot); - } - var Stdlib_Callback = [0, register, register_exception]; - runtime.caml_register_global(1, Stdlib_Callback, "Stdlib__Callback"); - return; - } - (globalThis)); - -//# 22316 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_camlinternalOO_ml = "camlinternalOO.ml", - caml_check_bound = runtime.caml_check_bound, - caml_div = runtime.caml_div, - caml_get_public_method = runtime.caml_get_public_method, - caml_make_vect = runtime.caml_make_vect, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_obj_block = runtime.caml_obj_block, - caml_set_oo_id = runtime.caml_set_oo_id, - caml_string_compare = runtime.caml_string_compare, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - Assert_failure = global_data.Assert_failure, - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib_Obj = global_data.Stdlib__Obj, - Stdlib = global_data.Stdlib, - Stdlib_Array = global_data.Stdlib__Array, - Stdlib_List = global_data.Stdlib__List, - Stdlib_Map = global_data.Stdlib__Map, - _g_ = [0, cst_camlinternalOO_ml, 439, 17], - _f_ = [0, cst_camlinternalOO_ml, 421, 13], - _e_ = [0, cst_camlinternalOO_ml, 418, 13], - _d_ = [0, cst_camlinternalOO_ml, 415, 13], - _c_ = [0, cst_camlinternalOO_ml, 412, 13], - _b_ = [0, cst_camlinternalOO_ml, 409, 13], - _a_ = [0, cst_camlinternalOO_ml, 281, 50]; - function copy(o){var o$0 = o.slice(); return caml_set_oo_id(o$0);} - var params = [0, 1, 1, 1, 3, 16], initial_object_size = 2, dummy_item = 0; - function public_method_label(s){ - var - accu = [0, 0], - _aE_ = runtime.caml_ml_string_length(s) - 1 | 0, - _aD_ = 0; - if(_aE_ >= 0){ - var i = _aD_; - for(;;){ - var _aF_ = runtime.caml_string_get(s, i); - accu[1] = (223 * accu[1] | 0) + _aF_ | 0; - var _aG_ = i + 1 | 0; - if(_aE_ !== i){var i = _aG_; continue;} - break; - } - } - accu[1] = accu[1] & 2147483647; - var tag = 1073741823 < accu[1] ? accu[1] + 2147483648 | 0 : accu[1]; - return tag; - } - var - compare = caml_string_compare, - Vars = caml_call1(Stdlib_Map[1], [0, compare]), - compare$0 = caml_string_compare, - Meths = caml_call1(Stdlib_Map[1], [0, compare$0]), - compare$1 = runtime.caml_int_compare, - Labs = caml_call1(Stdlib_Map[1], [0, compare$1]), - dummy_table = [0, 0, [0, dummy_item], Meths[1], Labs[1], 0, 0, Vars[1], 0], - table_count = [0, 0], - dummy_met = caml_obj_block(0, 0); - function fit_size(n){ - return 2 < n ? fit_size((n + 1 | 0) / 2 | 0) * 2 | 0 : n; - } - function new_table(pub_labels){ - table_count[1]++; - var - len = pub_labels.length - 1, - methods = caml_make_vect((len * 2 | 0) + 2 | 0, dummy_met); - caml_check_bound(methods, 0)[1] = len; - var - _aw_ = Stdlib_Sys[9], - _ax_ = (runtime.caml_mul(fit_size(len), _aw_) / 8 | 0) - 1 | 0; - caml_check_bound(methods, 1)[2] = _ax_; - var _az_ = len - 1 | 0, _ay_ = 0; - if(_az_ >= 0){ - var i = _ay_; - for(;;){ - var - _aB_ = (i * 2 | 0) + 3 | 0, - _aA_ = caml_check_bound(pub_labels, i)[1 + i]; - caml_check_bound(methods, _aB_)[1 + _aB_] = _aA_; - var _aC_ = i + 1 | 0; - if(_az_ !== i){var i = _aC_; continue;} - break; - } - } - return [0, - initial_object_size, - methods, - Meths[1], - Labs[1], - 0, - 0, - Vars[1], - 0]; - } - function resize(array, new_size){ - var old_size = array[2].length - 1, _au_ = old_size < new_size ? 1 : 0; - if(_au_){ - var new_buck = caml_make_vect(new_size, dummy_met); - caml_call5(Stdlib_Array[10], array[2], 0, new_buck, 0, old_size); - array[2] = new_buck; - var _av_ = 0; - } - else - var _av_ = _au_; - return _av_; - } - var method_count = [0, 0], inst_var_count = [0, 0]; - function new_method(table){ - var index = table[2].length - 1; - resize(table, index + 1 | 0); - return index; - } - function get_method_label(table, name){ - try{var _as_ = caml_call2(Meths[28], name, table[3]); return _as_;} - catch(_at_){ - var _ar_ = caml_wrap_exception(_at_); - if(_ar_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ar_, 0); - var label = new_method(table); - table[3] = caml_call3(Meths[4], name, label, table[3]); - table[4] = caml_call3(Labs[4], label, 1, table[4]); - return label; - } - } - function get_method_labels(table, names){ - function _ap_(_aq_){return get_method_label(table, _aq_);} - return caml_call2(Stdlib_Array[15], _ap_, names); - } - function set_method(table, label, element){ - method_count[1]++; - return caml_call2(Labs[28], label, table[4]) - ? (resize - (table, label + 1 | 0), - caml_check_bound(table[2], label)[1 + label] = element, - 0) - : (table[6] = [0, [0, label, element], table[6]], 0); - } - function get_method(table, label){ - try{var _an_ = caml_call2(Stdlib_List[46], label, table[6]); return _an_;} - catch(_ao_){ - var _am_ = caml_wrap_exception(_ao_); - if(_am_ === Stdlib[8]) - return caml_check_bound(table[2], label)[1 + label]; - throw caml_maybe_attach_backtrace(_am_, 0); - } - } - function to_list(arr){ - return 0 === arr ? 0 : caml_call1(Stdlib_Array[11], arr); - } - function narrow(table, vars, virt_meths, concr_meths){ - var - vars$0 = to_list(vars), - virt_meths$0 = to_list(virt_meths), - concr_meths$0 = to_list(concr_meths); - function _X_(_al_){return get_method_label(table, _al_);} - var virt_meth_labs = caml_call2(Stdlib_List[19], _X_, virt_meths$0); - function _Y_(_ak_){return get_method_label(table, _ak_);} - var concr_meth_labs = caml_call2(Stdlib_List[19], _Y_, concr_meths$0); - table[5] = - [0, - [0, table[3], table[4], table[6], table[7], virt_meth_labs, vars$0], - table[5]]; - var _Z_ = Vars[1], ___ = table[7]; - function _$_(lab, info, tvars){ - return caml_call2(Stdlib_List[36], lab, vars$0) - ? caml_call3(Vars[4], lab, info, tvars) - : tvars; - } - table[7] = caml_call3(Vars[13], _$_, ___, _Z_); - var by_name = [0, Meths[1]], by_label = [0, Labs[1]]; - function _aa_(met, label){ - by_name[1] = caml_call3(Meths[4], met, label, by_name[1]); - var _af_ = by_label[1]; - try{var _ai_ = caml_call2(Labs[28], label, table[4]), _ah_ = _ai_;} - catch(_aj_){ - var _ag_ = caml_wrap_exception(_aj_); - if(_ag_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ag_, 0); - var _ah_ = 1; - } - by_label[1] = caml_call3(Labs[4], label, _ah_, _af_); - return 0; - } - caml_call3(Stdlib_List[27], _aa_, concr_meths$0, concr_meth_labs); - function _ab_(met, label){ - by_name[1] = caml_call3(Meths[4], met, label, by_name[1]); - by_label[1] = caml_call3(Labs[4], label, 0, by_label[1]); - return 0; - } - caml_call3(Stdlib_List[27], _ab_, virt_meths$0, virt_meth_labs); - table[3] = by_name[1]; - table[4] = by_label[1]; - var _ac_ = 0, _ad_ = table[6]; - function _ae_(met, hm){ - var lab = met[1]; - return caml_call2(Stdlib_List[36], lab, virt_meth_labs) - ? hm - : [0, met, hm]; - } - table[6] = caml_call3(Stdlib_List[26], _ae_, _ad_, _ac_); - return 0; - } - function widen(table){ - var - match = caml_call1(Stdlib_List[5], table[5]), - vars = match[6], - virt_meths = match[5], - saved_vars = match[4], - saved_hidden_meths = match[3], - by_label = match[2], - by_name = match[1]; - table[5] = caml_call1(Stdlib_List[6], table[5]); - function _T_(s, v){ - var _W_ = caml_call2(Vars[28], v, table[7]); - return caml_call3(Vars[4], v, _W_, s); - } - table[7] = caml_call3(Stdlib_List[25], _T_, saved_vars, vars); - table[3] = by_name; - table[4] = by_label; - var _U_ = table[6]; - function _V_(met, hm){ - var lab = met[1]; - return caml_call2(Stdlib_List[36], lab, virt_meths) ? hm : [0, met, hm]; - } - table[6] = caml_call3(Stdlib_List[26], _V_, _U_, saved_hidden_meths); - return 0; - } - function new_variable(table, name){ - try{var _R_ = caml_call2(Vars[28], name, table[7]); return _R_;} - catch(_S_){ - var _Q_ = caml_wrap_exception(_S_); - if(_Q_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_Q_, 0); - var index = table[1]; - table[1] = index + 1 | 0; - if(runtime.caml_string_notequal(name, "")) - table[7] = caml_call3(Vars[4], name, index, table[7]); - return index; - } - } - function to_array(arr){return runtime.caml_equal(arr, 0) ? [0] : arr;} - function new_methods_variables(table, meths, vals){ - var - meths$0 = to_array(meths), - nmeths = meths$0.length - 1, - nvals = vals.length - 1, - res = caml_make_vect(nmeths + nvals | 0, 0), - _I_ = nmeths - 1 | 0, - _H_ = 0; - if(_I_ >= 0){ - var i$0 = _H_; - for(;;){ - var - _O_ = get_method_label(table, caml_check_bound(meths$0, i$0)[1 + i$0]); - caml_check_bound(res, i$0)[1 + i$0] = _O_; - var _P_ = i$0 + 1 | 0; - if(_I_ !== i$0){var i$0 = _P_; continue;} - break; - } - } - var _K_ = nvals - 1 | 0, _J_ = 0; - if(_K_ >= 0){ - var i = _J_; - for(;;){ - var - _M_ = i + nmeths | 0, - _L_ = new_variable(table, caml_check_bound(vals, i)[1 + i]); - caml_check_bound(res, _M_)[1 + _M_] = _L_; - var _N_ = i + 1 | 0; - if(_K_ !== i){var i = _N_; continue;} - break; - } - } - return res; - } - function get_variable(table, name){ - try{var _F_ = caml_call2(Vars[28], name, table[7]); return _F_;} - catch(_G_){ - var _E_ = caml_wrap_exception(_G_); - if(_E_ === Stdlib[8]) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - throw caml_maybe_attach_backtrace(_E_, 0); - } - } - function get_variables(table, names){ - function _C_(_D_){return get_variable(table, _D_);} - return caml_call2(Stdlib_Array[15], _C_, names); - } - function add_initializer(table, f){table[8] = [0, f, table[8]]; return 0;} - function create_table(public_methods){ - if(0 === public_methods) return new_table([0]); - var - tags = caml_call2(Stdlib_Array[15], public_method_label, public_methods), - table = new_table(tags); - function _B_(i, met){ - var lab = (i * 2 | 0) + 2 | 0; - table[3] = caml_call3(Meths[4], met, lab, table[3]); - table[4] = caml_call3(Labs[4], lab, 1, table[4]); - return 0; - } - caml_call2(Stdlib_Array[14], _B_, public_methods); - return table; - } - function init_class(table){ - inst_var_count[1] = (inst_var_count[1] + table[1] | 0) - 1 | 0; - table[8] = caml_call1(Stdlib_List[9], table[8]); - var _A_ = Stdlib_Sys[9]; - return resize - (table, - 3 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _A_) | 0); - } - function inherits(cla, vals, virt_meths, concr_meths, param, top){ - var env = param[4], super$0 = param[2]; - narrow(cla, vals, virt_meths, concr_meths); - var init = top ? caml_call2(super$0, cla, env) : caml_call1(super$0, cla); - widen(cla); - var _s_ = 0, _t_ = to_array(concr_meths); - function _u_(nm){return get_method(cla, get_method_label(cla, nm));} - var - _v_ = [0, caml_call2(Stdlib_Array[15], _u_, _t_), _s_], - _w_ = to_array(vals); - function _x_(_z_){return get_variable(cla, _z_);} - var - _y_ = [0, [0, init], [0, caml_call2(Stdlib_Array[15], _x_, _w_), _v_]]; - return caml_call1(Stdlib_Array[6], _y_); - } - function make_class(pub_meths, class_init){ - var - table = create_table(pub_meths), - env_init = caml_call1(class_init, table); - init_class(table); - return [0, caml_call1(env_init, 0), class_init, env_init, 0]; - } - function make_class_store(pub_meths, class_init, init_table){ - var - table = create_table(pub_meths), - env_init = caml_call1(class_init, table); - init_class(table); - init_table[2] = class_init; - init_table[1] = env_init; - return 0; - } - function dummy_class(loc){ - function undef(param){ - throw caml_maybe_attach_backtrace([0, Stdlib[15], loc], 1); - } - return [0, undef, undef, undef, 0]; - } - function create_object(table){ - var obj = caml_obj_block(Stdlib_Obj[8], table[1]); - obj[1] = table[2]; - return caml_set_oo_id(obj); - } - function create_object_opt(obj_0, table){ - if(obj_0) return obj_0; - var obj = caml_obj_block(Stdlib_Obj[8], table[1]); - obj[1] = table[2]; - return caml_set_oo_id(obj); - } - function iter_f(obj, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], f = param$0[1]; - caml_call1(f, obj); - var param$0 = l; - } - } - function run_initializers(obj, table){ - var inits = table[8], _r_ = 0 !== inits ? 1 : 0; - return _r_ ? iter_f(obj, inits) : _r_; - } - function run_initializers_opt(obj_0, obj, table){ - if(obj_0) return obj; - var inits = table[8]; - if(0 !== inits) iter_f(obj, inits); - return obj; - } - function create_object_and_run_initiali(obj_0, table){ - if(obj_0) return obj_0; - var obj = create_object(table); - run_initializers(obj, table); - return obj; - } - function get_data(param){ - if(param) return param[2]; - throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); - } - function build_path(n, keys, tables){ - var res = [0, 0, 0, 0], r = [0, res], _o_ = 0; - if(n >= 0){ - var i = _o_; - for(;;){ - var _p_ = r[1]; - r[1] = [0, caml_check_bound(keys, i)[1 + i], _p_, 0]; - var _q_ = i + 1 | 0; - if(n !== i){var i = _q_; continue;} - break; - } - } - var v = r[1]; - if(! tables) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - tables[2] = v; - return res; - } - function lookup_tables(root, keys){ - var root_data = get_data(root); - if(! root_data) return build_path(keys.length - 1 - 1 | 0, keys, root); - var i$1 = keys.length - 1 - 1 | 0, i = i$1, tables$0 = root_data; - a: - for(;;){ - if(0 > i) return tables$0; - var key = caml_check_bound(keys, i)[1 + i], tables$1 = tables$0; - for(;;){ - if(! tables$1) - throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - if(tables$1[1] === key){ - var tables_data = get_data(tables$1); - if(! tables_data) - throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); - var i$0 = i - 1 | 0, i = i$0, tables$0 = tables_data; - continue a; - } - if(! tables$1) - throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); - var tables = tables$1[3]; - if(tables){var tables$1 = tables; continue;} - var next = [0, key, 0, 0]; - if(! tables$1) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - tables$1[3] = next; - return build_path(i - 1 | 0, keys, next); - } - } - } - function new_cache(table){ - var n = new_method(table), switch$0 = 0; - if(0 !== (n % 2 | 0)){ - var _n_ = Stdlib_Sys[9]; - if - ((2 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _n_) | 0) >= n){var n$0 = new_method(table); switch$0 = 1;} - } - if(! switch$0) var n$0 = n; - caml_check_bound(table[2], n$0)[1 + n$0] = 0; - return n$0; - } - function set_methods(table, methods){ - var len = methods.length - 1, i = [0, 0]; - for(;;){ - if(i[1] >= len) return 0; - var - _h_ = i[1], - label = caml_check_bound(methods, _h_)[1 + _h_], - next = - function(param){ - i[1]++; - var _m_ = i[1]; - return caml_check_bound(methods, _m_)[1 + _m_]; - }, - clo = next(0); - if(typeof clo === "number") - switch(clo){ - case 0: - var - x = next(0), - clo$0 = function(x){return function(obj){return x;};}(x); - break; - case 1: - var - n = next(0), - clo$0 = function(n){return function(obj){return obj[1 + n];};}(n); - break; + caml_register_global(818,Stdlib_Format,"Stdlib__Format"); + var null_char=0; + function next_char(ib) + {try + {var c=caml_call1(ib[7],0); + ib[2] = c; + ib[3] = 1; + ib[4] = ib[4] + 1 | 0; + if(10 === c)ib[5] = ib[5] + 1 | 0; + return c} + catch(_jX_) + {_jX_ = caml_wrap_exception(_jX_); + if(_jX_ !== End_of_file)throw _jX_; + ib[2] = null_char; + ib[3] = 0; + ib[1] = 1; + return null_char}} + function peek_char(ib){return ib[3]?ib[2]:next_char(ib)} + function checked_peek_char(ib) + {var c=peek_char(ib);if(ib[1])throw End_of_file;return c} + function end_of_input(ib){peek_char(ib);return ib[1]} + function beginning_of_input(ib){return 0 === ib[4]?1:0} + function name_of_input(ib) + {var _jW_=ib[9]; + if(typeof _jW_ === "number") + return 0 === _jW_?cst_unnamed_function:cst_unnamed_character_string; + if(0 === _jW_[0])return cst_unnamed_Stdlib_input_chann; + var fname=_jW_[1]; + return fname} + function char_count(ib){return ib[3]?ib[4] - 1 | 0:ib[4]} + function reset_token(ib){return reset(ib[8])} + function invalidate_current_char(ib){ib[3] = 0;return 0} + function token_string(ib) + {var token_buffer=ib[8],tok=contents(token_buffer); + clear$1(token_buffer); + ib[6] = ib[6] + 1 | 0; + return tok} + function skip_char(width,ib){invalidate_current_char(ib);return width} + function ignore_char(width,ib){return skip_char(width - 1 | 0,ib)} + function store_char(width,ib,c) + {add_char(ib[8],c);return ignore_char(width,ib)} + var default_token_buffer_size=1024; + function create$4(iname,next) + {return [0, + 0, + null_char, + 0, + 0, + 0, + 0, + next, + create$2(default_token_buffer_size), + iname]} + function from_string$1(s) + {var i=[0,0],len=caml_ml_string_length(s); + function next(param) + {if(len <= i[1])throw End_of_file; + var c=caml_string_get(s,i[1]); + i[1]++; + return c} + return create$4(1,next)} + var _cp_=0; + function from_function$0(_jV_){return create$4(_cp_,_jV_)} + var len=1024; + function scan_close_at_end(ic) + {caml_ml_close_channel(ic);throw End_of_file} + function scan_raise_at_end(ic){throw End_of_file} + function from_ic(scan_close_ic,iname,ic) + {var buf=caml_create_bytes(1024),i=[0,0],lim=[0,0],eof=[0,0]; + function next(param) + {if(i[1] < lim[1]){var c=caml_bytes_get(buf,i[1]);i[1]++;return c} + if(eof[1])throw End_of_file; + lim[1] = input(ic,buf,0,len); + return 0 === lim[1] + ?(eof[1] = 1,caml_call1(scan_close_ic,ic)) + :(i[1] = 1,caml_bytes_get(buf,0))} + return create$4(iname,next)} + var stdib=from_ic(scan_raise_at_end,[1,cst$86,stdin],stdin); + function open_in_file(open_in,fname) + {if(! caml_string_notequal(fname,cst$87))return stdib; + var ic=caml_call1(open_in,fname); + return from_ic(scan_close_at_end,[1,fname,ic],ic)} + function from_file(_jU_){return open_in_file(open_text$0,_jU_)} + function from_file_bin(_jT_){return open_in_file(open_bin$0,_jT_)} + function from_channel$0(ic){return from_ic(scan_raise_at_end,[0,ic],ic)} + function close_in(ib) + {var _jS_=ib[9]; + if(typeof _jS_ === "number")return 0; + if(0 === _jS_[0]){var ic=_jS_[1];return caml_ml_close_channel(ic)} + var ic$0=_jS_[2]; + return caml_ml_close_channel(ic$0)} + var memo=[0,0]; + function memo_from_ic(scan_close_ic,ic) + {try + {var _jQ_=assq(ic,memo[1]);return _jQ_} + catch(_jR_) + {_jR_ = caml_wrap_exception(_jR_); + if(_jR_ !== Not_found)throw _jR_; + var ib=from_ic(scan_close_ic,[0,ic],ic); + memo[1] = [0,[0,ic,ib],memo[1]]; + return ib}} + function memo_from_channel(_jP_) + {return memo_from_ic(scan_raise_at_end,_jP_)} + var Scan_failure=[248,cst_Stdlib_Scanf_Scan_failure,caml_fresh_oo_id(0)]; + function bad_input(s){throw [0,Scan_failure,s]} + function bad_input_escape(c) + {return bad_input(caml_call1(sprintf(_cq_),c))} + function bad_token_length(message) + {return bad_input(caml_call1(sprintf(_cr_),message))} + function bad_float(param) + {return bad_input(cst_no_dot_or_exponent_part_fo)} + function bad_hex_float(param) + {return bad_input(cst_not_a_valid_float_in_hexad)} + function character_mismatch(c,ci) + {return bad_input(caml_call2(sprintf(_ct_),c,ci))} + function check_this_char(ib,c) + {var ci=checked_peek_char(ib); + return ci === c?invalidate_current_char(ib):character_mismatch(c,ci)} + function check_char(ib,c$0) + {if(10 === c$0) + {var ci=checked_peek_char(ib); + return 10 === ci + ?invalidate_current_char(ib) + :13 === ci + ?(invalidate_current_char(ib),check_this_char(ib,10)) + :character_mismatch(10,ci)} + if(32 !== c$0)return check_this_char(ib,c$0); + for(;;) + {var c=peek_char(ib),_jN_=1 - ib[1]; + if(! _jN_)return _jN_; + var _jO_=c - 9 | 0,switch$0=0; + if(4 < _jO_ >>> 0) + {if(23 === _jO_)switch$0 = 1} + else + if(1 < _jO_ - 2 >>> 0)switch$0 = 1; + if(! switch$0)return 0; + invalidate_current_char(ib)}} + function token_char(ib){return caml_string_get(token_string(ib),0)} + function token_bool(ib) + {var s=token_string(ib); + return caml_string_notequal(s,cst_false$3) + ?caml_string_notequal(s,cst_true$3) + ?bad_input(caml_call1(sprintf(_cu_),s)) + :1 + :0} + function integer_conversion_of_char(param) + {var switcher=param - 88 | 0; + if(32 >= switcher >>> 0) + switch(switcher) + {case 10:return 0; + case 12:return 1; + case 17:return 2; + case 23:return 3; + case 29:return 4; + case 0: + case 32:return 5 + } + throw [0,Assert_failure,_cv_]} + function token_int_literal(conv,ib) + {switch(conv) + {case 0:var tok=cat(cst_0b,token_string(ib));break; + case 3:var tok=cat(cst_0o,token_string(ib));break; + case 4:var tok=cat(cst_0u,token_string(ib));break; + case 5:var tok=cat(cst_0x,token_string(ib));break; + default:var tok=token_string(ib)} + var l=caml_ml_string_length(tok); + if(0 !== l && 43 === caml_string_get(tok,0)) + return sub$0(tok,1,l - 1 | 0); + return tok} + function token_float(ib){return caml_float_of_string(token_string(ib))} + function scan_decimal_digit_star(width,ib) + {var width$0=width; + for(;;) + {if(0 === width$0)return width$0; + var c=peek_char(ib); + if(ib[1])return width$0; + if(58 <= c) + {if(95 === c) + {var width$1=ignore_char(width$0,ib),width$0=width$1;continue}} + else + if(48 <= c) + {var width$2=store_char(width$0,ib,c),width$0=width$2;continue} + return width$0}} + function scan_unsigned_decimal_int(width,ib) + {if(0 === width)return bad_token_length(cst_decimal_digits); + var c=checked_peek_char(ib); + if(9 < c - 48 >>> 0)return bad_input(caml_call1(sprintf(_cw_),c)); + var width$0=store_char(width,ib,c); + return scan_decimal_digit_star(width$0,ib)} + function scan_digit_plus(basis,digitp,width$2,ib) + {if(0 === width$2)return bad_token_length(cst_digits); + var c$0=checked_peek_char(ib); + if(! caml_call1(digitp,c$0)) + return bad_input(caml_call2(sprintf(_cx_),c$0,basis)); + var width$3=store_char(width$2,ib,c$0),width=width$3; + for(;;) + {if(0 === width)return width; + var c=peek_char(ib); + if(ib[1])return width; + if(caml_call1(digitp,c)) + {var width$0=store_char(width,ib,c),width=width$0;continue} + if(95 !== c)return width; + var width$1=ignore_char(width,ib),width=width$1}} + function is_binary_digit(param){return 1 < param - 48 >>> 0?0:1} + function scan_binary_int(_jL_,_jM_) + {return scan_digit_plus(cst_binary,is_binary_digit,_jL_,_jM_)} + function is_octal_digit(param){return 7 < param - 48 >>> 0?0:1} + function scan_octal_int(_jJ_,_jK_) + {return scan_digit_plus(cst_octal,is_octal_digit,_jJ_,_jK_)} + function is_hexa_digit(param) + {var _jI_=param - 48 | 0,switch$0=0; + if(22 < _jI_ >>> 0) + {if(5 >= _jI_ - 49 >>> 0)switch$0 = 1} + else + if(6 < _jI_ - 10 >>> 0)switch$0 = 1; + return switch$0?1:0} + function scan_hexadecimal_int(_jG_,_jH_) + {return scan_digit_plus(cst_hexadecimal,is_hexa_digit,_jG_,_jH_)} + function scan_sign(width,ib) + {var c=checked_peek_char(ib),switcher=c - 43 | 0; + if(2 >= switcher >>> 0) + switch(switcher) + {case 0:return store_char(width,ib,c); + case 1:break; + default:return store_char(width,ib,c)} + return width} + function scan_optionally_signed_decimal(width,ib) + {var width$0=scan_sign(width,ib); + return scan_unsigned_decimal_int(width$0,ib)} + function scan_int_conversion(conv,width$1,ib) + {switch(conv) + {case 0:return scan_binary_int(width$1,ib); + case 1:return scan_optionally_signed_decimal(width$1,ib); case 2: + var width$0=scan_sign(width$1,ib),c=checked_peek_char(ib); + if(48 !== c)return scan_unsigned_decimal_int(width$0,ib); + var width=store_char(width$0,ib,c); + if(0 === width)return width; + var c$0=peek_char(ib); + if(ib[1])return width; + var switch$0=0; + if(99 <= c$0) + {if(111 === c$0)return scan_octal_int(store_char(width,ib,c$0),ib); + if(120 === c$0)switch$0 = 1} + else + if(88 === c$0) + switch$0 = 1; + else + if(98 <= c$0)return scan_binary_int(store_char(width,ib,c$0),ib); + return switch$0 + ?scan_hexadecimal_int(store_char(width,ib,c$0),ib) + :scan_decimal_digit_star(width,ib); + case 3:return scan_octal_int(width$1,ib); + case 4:return scan_unsigned_decimal_int(width$1,ib); + default:return scan_hexadecimal_int(width$1,ib)}} + function scan_fractional_part(width,ib) + {if(0 === width)return width; + var c=peek_char(ib); + return ib[1] + ?width + :9 < c - 48 >>> 0 + ?width + :scan_decimal_digit_star(store_char(width,ib,c),ib)} + function scan_exponent_part(width,ib) + {if(0 === width)return width; + var c=peek_char(ib); + if(ib[1])return width; + if(69 !== c && 101 !== c)return width; + return scan_optionally_signed_decimal(store_char(width,ib,c),ib)} + function scan_float(width$1,precision,ib) + {var + width=scan_sign(width$1,ib), + width$0=scan_decimal_digit_star(width,ib); + if(0 === width$0)return [0,width$0,precision]; + var c=peek_char(ib); + if(ib[1])return [0,width$0,precision]; + if(46 !== c)return [0,scan_exponent_part(width$0,ib),precision]; + var + width$2=store_char(width$0,ib,c), + precision$0=min$1(width$2,precision), + width$3= + width$2 + - + (precision$0 - scan_fractional_part(precision$0,ib) | 0) + | + 0; + return [0,scan_exponent_part(width$3,ib),precision$0]} + function check_case_insensitive_string(width,ib,error,str) + {function lowercase(c) + {return 25 < c - 65 >>> 0?c:char_of_int((c - 65 | 0) + 97 | 0)} + var + len=caml_ml_string_length(str), + width$0=[0,width], + _jD_=len - 1 | 0, + _jC_=0; + if(_jD_ >= 0) + {var i=_jC_; + for(;;) + {var c=peek_char(ib),_jE_=lowercase(caml_string_get(str,i)); + if(lowercase(c) !== _jE_)caml_call1(error,0); + if(0 === width$0[1])caml_call1(error,0); + width$0[1] = store_char(width$0[1],ib,c); + var _jF_=i + 1 | 0; + if(_jD_ !== i){var i=_jF_;continue} + break}} + return width$0[1]} + function scan_hex_float(width,precision,ib) + {var _jp_=0 === width?1:0,_jq_=_jp_ || end_of_input(ib); + if(_jq_)bad_hex_float(0); + var + width$0=scan_sign(width,ib), + _jr_=0 === width$0?1:0, + _js_=_jr_ || end_of_input(ib); + if(_js_)bad_hex_float(0); + var c=peek_char(ib),switch$0=0; + if(78 <= c) + {var switcher=c - 79 | 0; + if(30 < switcher >>> 0) + {if(32 > switcher) + {var + width$1=store_char(width$0,ib,c), + _jt_=0 === width$1?1:0, + _ju_=_jt_ || end_of_input(ib); + if(_ju_)bad_hex_float(0); + return check_case_insensitive_string + (width$1,ib,bad_hex_float,cst_an)}} + else + if(26 === switcher)switch$0 = 1} + else + {if(48 === c) + {var + width$3=store_char(width$0,ib,c), + _jx_=0 === width$3?1:0, + _jy_=_jx_ || end_of_input(ib); + if(_jy_)bad_hex_float(0); + var + width$4= + check_case_insensitive_string(width$3,ib,bad_hex_float,cst_x$2); + if(0 !== width$4 && ! end_of_input(ib)) + {var match=peek_char(ib),_jz_=match - 46 | 0,switch$1=0; + if(34 < _jz_ >>> 0) + {if(66 === _jz_)switch$1 = 1} + else + if(32 < _jz_ - 1 >>> 0)switch$1 = 1; + var width$5=switch$1?width$4:scan_hexadecimal_int(width$4,ib); + if(0 !== width$5 && ! end_of_input(ib)) + {var c$0=peek_char(ib); + if(46 === c$0) + {var width$6=store_char(width$5,ib,c$0),switch$2=0; + if(0 !== width$6 && ! end_of_input(ib)) + {var match$0=peek_char(ib),switch$3=0; + if(80 !== match$0 && 112 !== match$0) + {var + precision$0=min$1(width$6,precision), + width$10= + width$6 + - + (precision$0 - scan_hexadecimal_int(precision$0,ib) | 0) + | + 0; + switch$3 = 1} + if(! switch$3)var width$10=width$6; + var width$7=width$10; + switch$2 = 1} + if(! switch$2)var width$7=width$6; + var width$8=width$7} + else + var width$8=width$5; + if(0 !== width$8 && ! end_of_input(ib)) + {var c$1=peek_char(ib); + if(80 !== c$1 && 112 !== c$1)return width$8; + var + width$9=store_char(width$8,ib,c$1), + _jA_=0 === width$9?1:0, + _jB_=_jA_ || end_of_input(ib); + if(_jB_)bad_hex_float(0); + return scan_optionally_signed_decimal(width$9,ib)} + return width$8} + return width$5} + return width$4} + if(73 === c)switch$0 = 1} + if(! switch$0)return bad_hex_float(0); + var + width$2=store_char(width$0,ib,c), + _jv_=0 === width$2?1:0, + _jw_=_jv_ || end_of_input(ib); + if(_jw_)bad_hex_float(0); + return check_case_insensitive_string + (width$2,ib,bad_hex_float,cst_nfinity)} + function scan_caml_float_rest(width,precision,ib) + {var _jl_=0 === width?1:0,_jm_=_jl_ || end_of_input(ib); + if(_jm_)bad_float(0); + var + width$0=scan_decimal_digit_star(width,ib), + _jn_=0 === width$0?1:0, + _jo_=_jn_ || end_of_input(ib); + if(_jo_)bad_float(0); + var c=peek_char(ib),switcher=c - 69 | 0; + if(32 < switcher >>> 0) + {if(-23 === switcher) + {var + width$1=store_char(width$0,ib,c), + precision$0=min$1(width$1,precision), + width_precision=scan_fractional_part(precision$0,ib), + frac_width=precision$0 - width_precision | 0, + width$2=width$1 - frac_width | 0; + return scan_exponent_part(width$2,ib)}} + else + if(30 < switcher - 1 >>> 0)return scan_exponent_part(width$0,ib); + return bad_float(0)} + function scan_caml_float(width,precision,ib) + {var _i9_=0 === width?1:0,_i__=_i9_ || end_of_input(ib); + if(_i__)bad_float(0); + var + width$0=scan_sign(width,ib), + _i$_=0 === width$0?1:0, + _ja_=_i$_ || end_of_input(ib); + if(_ja_)bad_float(0); + var c=peek_char(ib); + if(49 <= c) + {if(58 > c) + {var + width$1=store_char(width$0,ib,c), + _jb_=0 === width$1?1:0, + _jc_=_jb_ || end_of_input(ib); + if(_jc_)bad_float(0); + return scan_caml_float_rest(width$1,precision,ib)}} + else + if(48 <= c) + {var + width$2=store_char(width$0,ib,c), + _jd_=0 === width$2?1:0, + _je_=_jd_ || end_of_input(ib); + if(_je_)bad_float(0); + var c$0=peek_char(ib); + if(88 !== c$0 && 120 !== c$0) + return scan_caml_float_rest(width$2,precision,ib); var - e = next(0), - n$0 = next(0), - clo$0 = - function(e, n){return function(obj){return obj[1 + e][1 + n];};} - (e, n$0); - break; - case 3: + width$3=store_char(width$2,ib,c$0), + _jf_=0 === width$3?1:0, + _jg_=_jf_ || end_of_input(ib); + if(_jg_)bad_float(0); var - n$1 = next(0), - clo$0 = - function(n){ - return function(obj){return caml_call1(obj[1][1 + n], obj);}; - } - (n$1); - break; - case 4: - var - n$2 = next(0), - clo$0 = - function(n){return function(obj, x){obj[1 + n] = x; return 0;};} - (n$2); - break; - case 5: - var - f = next(0), - x$0 = next(0), - clo$0 = - function(f, x){return function(obj){return caml_call1(f, x);};} - (f, x$0); - break; - case 6: - var - f$0 = next(0), - n$3 = next(0), - clo$0 = - function(f, n){ - return function(obj){return caml_call1(f, obj[1 + n]);}; - } - (f$0, n$3); - break; - case 7: - var - f$1 = next(0), - e$0 = next(0), - n$4 = next(0), - clo$0 = - function(f, e, n){ - return function(obj){return caml_call1(f, obj[1 + e][1 + n]);}; - } - (f$1, e$0, n$4); - break; - case 8: - var - f$2 = next(0), - n$5 = next(0), - clo$0 = - function(f, n){ - return function(obj){ - return caml_call1(f, caml_call1(obj[1][1 + n], obj));}; - } - (f$2, n$5); - break; - case 9: - var - f$3 = next(0), - x$1 = next(0), - y = next(0), - clo$0 = - function(f, x, y){ - return function(obj){return caml_call2(f, x, y);}; - } - (f$3, x$1, y); - break; - case 10: - var - f$4 = next(0), - x$2 = next(0), - n$6 = next(0), - clo$0 = - function(f, x, n){ - return function(obj){return caml_call2(f, x, obj[1 + n]);}; - } - (f$4, x$2, n$6); - break; - case 11: - var - f$5 = next(0), - x$3 = next(0), - e$1 = next(0), - n$7 = next(0), - clo$0 = - function(f, x, e, n){ - return function(obj){ - return caml_call2(f, x, obj[1 + e][1 + n]);}; - } - (f$5, x$3, e$1, n$7); - break; - case 12: - var - f$6 = next(0), - x$4 = next(0), - n$8 = next(0), - clo$0 = - function(f, x, n){ - return function(obj){ - return caml_call2(f, x, caml_call1(obj[1][1 + n], obj));}; - } - (f$6, x$4, n$8); - break; - case 13: - var - f$7 = next(0), - n$9 = next(0), - x$5 = next(0), - clo$0 = - function(f, n, x){ - return function(obj){return caml_call2(f, obj[1 + n], x);}; - } - (f$7, n$9, x$5); - break; - case 14: - var - f$8 = next(0), - e$2 = next(0), - n$10 = next(0), - x$6 = next(0), - clo$0 = - function(f, e, n, x){ - return function(obj){ - return caml_call2(f, obj[1 + e][1 + n], x);}; - } - (f$8, e$2, n$10, x$6); - break; - case 15: - var - f$9 = next(0), - n$11 = next(0), - x$7 = next(0), - clo$0 = - function(f, n, x){ - return function(obj){ - return caml_call2(f, caml_call1(obj[1][1 + n], obj), x);}; - } - (f$9, n$11, x$7); - break; - case 16: - var - n$12 = next(0), - x$8 = next(0), - clo$0 = - function(n, x){ - return function(obj){return caml_call2(obj[1][1 + n], obj, x);}; - } - (n$12, x$8); - break; - case 17: - var - n$13 = next(0), - m = next(0), - clo$0 = - function(n, m){ - return function(obj){ - return caml_call2(obj[1][1 + n], obj, obj[1 + m]);}; - } - (n$13, m); - break; - case 18: - var - n$14 = next(0), - e$3 = next(0), - m$0 = next(0), - clo$0 = - function(n, e, m){ - return function(obj){ - return caml_call2(obj[1][1 + n], obj, obj[1 + e][1 + m]);}; - } - (n$14, e$3, m$0); - break; - case 19: - var - n$15 = next(0), - m$1 = next(0), - clo$0 = - function(n, m){ - return function(obj){ - var _k_ = caml_call1(obj[1][1 + m], obj); - return caml_call2(obj[1][1 + n], obj, _k_);}; - } - (n$15, m$1); - break; - case 20: - var m$2 = next(0), x$9 = next(0); - new_cache(table); - var - clo$0 = - function(m, x){ - return function(obj){ - return caml_call1(caml_get_public_method(x, m, 0), x);}; - } - (m$2, x$9); - break; - case 21: - var m$3 = next(0), n$16 = next(0); - new_cache(table); - var - clo$0 = - function(m, n){ - return function(obj){ - var _j_ = obj[1 + n]; - return caml_call1(caml_get_public_method(_j_, m, 0), _j_);}; - } - (m$3, n$16); - break; - case 22: - var m$4 = next(0), e$4 = next(0), n$17 = next(0); - new_cache(table); - var - clo$0 = - function(m, e, n){ - return function(obj){ - var _i_ = obj[1 + e][1 + n]; - return caml_call1(caml_get_public_method(_i_, m, 0), _i_);}; - } - (m$4, e$4, n$17); - break; - default: - var m$5 = next(0), n$18 = next(0); - new_cache(table); - var - clo$0 = - function(m, n){ - return function(obj){ - var _l_ = caml_call1(obj[1][1 + n], obj); - return caml_call1(caml_get_public_method(_l_, m, 0), _l_);}; - } - (m$5, n$18); - } - else - var clo$0 = clo; - set_method(table, label, clo$0); - i[1]++; - } - } - function stats(param){ - return [0, table_count[1], method_count[1], inst_var_count[1]]; - } - var - CamlinternalOO = + width$4=scan_hexadecimal_int(width$3,ib), + _jh_=0 === width$4?1:0, + _ji_=_jh_ || end_of_input(ib); + if(_ji_)bad_float(0); + var c$1=peek_char(ib),switcher=c$1 - 80 | 0,switch$0=0; + if(32 < switcher >>> 0) + if(-34 === switcher) + {var width$5=store_char(width$4,ib,c$1),switch$1=0; + if(0 !== width$5 && ! end_of_input(ib)) + {var match=peek_char(ib),switch$2=0; + if(80 !== match && 112 !== match) + {var + precision$0=min$1(width$5,precision), + width$10= + width$5 + - + (precision$0 - scan_hexadecimal_int(precision$0,ib) | 0) + | + 0; + switch$2 = 1} + if(! switch$2)var width$10=width$5; + var width$6=width$10; + switch$1 = 1} + if(! switch$1)var width$6=width$5; + var width$7=width$6} + else + switch$0 = 1; + else + if(30 < switcher - 1 >>> 0)var width$7=width$4;else switch$0 = 1; + var width$8=switch$0?bad_float(0):width$7; + if(0 !== width$8 && ! end_of_input(ib)) + {var c$2=peek_char(ib); + if(80 !== c$2 && 112 !== c$2)return width$8; + var + width$9=store_char(width$8,ib,c$2), + _jj_=0 === width$9?1:0, + _jk_=_jj_ || end_of_input(ib); + if(_jk_)bad_hex_float(0); + return scan_optionally_signed_decimal(width$9,ib)} + return width$8} + return bad_float(0)} + function scan_string(stp,width,ib) + {var width$0=width; + for(;;) + {if(0 === width$0)return width$0; + var c=peek_char(ib); + if(ib[1])return width$0; + if(stp) + {var c$0=stp[1]; + if(c === c$0)return skip_char(width$0,ib); + var width$1=store_char(width$0,ib,c),width$0=width$1; + continue} + var _i8_=c - 9 | 0,switch$0=0; + if(4 < _i8_ >>> 0) + {if(23 === _i8_)switch$0 = 1} + else + if(1 < _i8_ - 2 >>> 0)switch$0 = 1; + if(switch$0)return width$0; + var width$2=store_char(width$0,ib,c),width$0=width$2}} + function scan_char(width,ib) + {return store_char(width,ib,checked_peek_char(ib))} + function hexadecimal_value_of_char(d) + {return 97 <= d?d - 87 | 0:65 <= d?d - 55 | 0:d - 48 | 0} + function check_next_char(message,width,ib) + {if(0 === width)return bad_token_length(message); + var c=peek_char(ib); + return ib[1]?bad_input(caml_call1(sprintf(_cs_),message)):c} + function check_next_char_for_char(_i6_,_i7_) + {return check_next_char(cst_a_Char,_i6_,_i7_)} + function check_next_char_for_string(_i4_,_i5_) + {return check_next_char(cst_a_String,_i4_,_i5_)} + function scan_backslash_char(width,ib) + {var c0=check_next_char_for_char(width,ib),switch$0=0; + if(40 <= c0) + {if(58 <= c0) + {var switcher=c0 - 92 | 0; + if(28 >= switcher >>> 0) + switch(switcher) + {case 28: + var + get_digit= + function(param) + {var c=next_char(ib),_i3_=c - 48 | 0,switch$0=0; + if(22 < _i3_ >>> 0) + {if(5 >= _i3_ - 49 >>> 0)switch$0 = 1} + else + if(6 < _i3_ - 10 >>> 0)switch$0 = 1; + return switch$0?c:bad_input_escape(c)}, + c1=get_digit(0), + c2=get_digit(0), + _iZ_=hexadecimal_value_of_char(c2), + c$0=(16 * hexadecimal_value_of_char(c1) | 0) + _iZ_ | 0, + switch$1=0; + if(0 <= c$0 && 255 >= c$0) + {var _i1_=char_of_int(c$0);switch$1 = 1} + if(! switch$1) + var _i1_=bad_input(caml_call2(sprintf(_cz_),c1,c2)); + return store_char(width - 2 | 0,ib,_i1_); + case 0: + case 6: + case 18: + case 22: + case 24:switch$0 = 1;break + }} + else + if(48 <= c0) + {var + get_digit$0= + function(param) + {var c=next_char(ib); + return 9 < c - 48 >>> 0?bad_input_escape(c):c}, + c1$0=get_digit$0(0), + c2$0=get_digit$0(0), + c= + ((100 * (c0 - 48 | 0) | 0) + (10 * (c1$0 - 48 | 0) | 0) | 0) + + + (c2$0 - 48 | 0) + | + 0, + switch$2=0; + if(0 <= c && 255 >= c){var _i2_=char_of_int(c);switch$2 = 1} + if(! switch$2) + var _i2_=bad_input(caml_call3(sprintf(_cy_),c0,c1$0,c2$0)); + return store_char(width - 2 | 0,ib,_i2_)}} + else + if(34 === c0 || 39 <= c0)switch$0 = 1; + if(! switch$0)return bad_input_escape(c0); + var switch$3=0; + if(110 <= c0) + if(117 <= c0) + switch$3 = 1; + else + switch(c0 - 110 | 0) + {case 0:var _i0_=10;break; + case 4:var _i0_=13;break; + case 6:var _i0_=9;break; + default:switch$3 = 1} + else + if(98 === c0)var _i0_=8;else switch$3 = 1; + if(switch$3)var _i0_=c0; + return store_char(width,ib,_i0_)} + function scan_caml_char(width,ib) + {function find_stop(width) + {var c=check_next_char_for_char(width,ib); + return 39 === c?ignore_char(width,ib):character_mismatch(39,c)} + var c=checked_peek_char(ib); + if(39 !== c)return character_mismatch(39,c); + var + width$0=ignore_char(width,ib), + c$0=check_next_char_for_char(width$0,ib); + return 92 === c$0 + ?find_stop(scan_backslash_char(ignore_char(width$0,ib),ib)) + :find_stop(store_char(width$0,ib,c$0))} + function scan_caml_string(width,ib) + {function find_stop$0(counter,width) + {var width$0=width; + for(;;) + {var c=check_next_char_for_string(width$0,ib); + if(34 === c)return ignore_char(width$0,ib); + if(92 !== c) + {var width$2=store_char(width$0,ib,c),width$0=width$2;continue} + var + width$1=ignore_char(width$0,ib), + match=check_next_char_for_string(width$1,ib); + if(10 === match) + {var _iX_=ignore_char(width$1,ib); + if(counter >= 50) + return caml_trampoline_return(skip_spaces,[0,_iX_]); + var counter$0=counter + 1 | 0; + return skip_spaces(counter$0,_iX_)} + if(13 !== match) + {var width$4=scan_backslash_char(width$1,ib),width$0=width$4; + continue} + var + width$3=ignore_char(width$1,ib), + match$0=check_next_char_for_string(width$3,ib); + if(10 !== match$0) + {var width$5=store_char(width$3,ib,13),width$0=width$5;continue} + var _iY_=ignore_char(width$3,ib); + if(counter >= 50) + return caml_trampoline_return(skip_spaces,[0,_iY_]); + var counter$1=counter + 1 | 0; + return skip_spaces(counter$1,_iY_)}} + function skip_spaces(counter,width) + {var width$0=width; + for(;;) + {var match=check_next_char_for_string(width$0,ib); + if(32 === match) + {var width$1=ignore_char(width$0,ib),width$0=width$1;continue} + if(counter >= 50) + return caml_trampoline_return(find_stop$0,[0,width$0]); + var counter$0=counter + 1 | 0; + return find_stop$0(counter$0,width$0)}} + function find_stop(width){return caml_trampoline(find_stop$0(0,width))} + var c=checked_peek_char(ib); + return 34 === c + ?find_stop(ignore_char(width,ib)) + :character_mismatch(34,c)} + function scan_chars_in_char_set(char_set,scan_indic,width,ib) + {function scan_chars(i,stp) + {var i$0=i; + for(;;) + {var c=peek_char(ib),_iT_=0 < i$0?1:0; + if(_iT_) + {var _iU_=1 - ib[1]; + if(_iU_) + var _iV_=is_in_char_set(char_set,c),_iW_=_iV_?c !== stp?1:0:_iV_; + else + var _iW_=_iU_} + else + var _iW_=_iT_; + if(! _iW_)return _iW_; + store_char(max_int,ib,c); + var i$1=i$0 - 1 | 0,i$0=i$1}} + if(! scan_indic)return scan_chars(width,-1); + var c=scan_indic[1]; + scan_chars(width,c); + var _iS_=1 - ib[1]; + if(! _iS_)return _iS_; + var ci=peek_char(ib); + return c === ci?invalidate_current_char(ib):character_mismatch(c,ci)} + function scanf_bad_input(ib,x) + {if(x[1] === Scan_failure) + var s=x[2]; + else + {if(x[1] !== Failure)throw x;var s=x[2]} + var i=char_count(ib); + return bad_input(caml_call2(sprintf(_cB_),i,s))} + function get_counter(ib,counter) + {switch(counter) + {case 0:return ib[5];case 1:return char_count(ib);default:return ib[6]}} + function width_of_pad_opt(pad_opt) + {if(! pad_opt)return max_int;var width=pad_opt[1];return width} + function stopper_of_formatting_lit(fmting) + {if(6 === fmting)return _cC_; + var + str=string_of_formatting_lit(fmting), + stp=caml_string_get(str,1), + sub_str=sub$0(str,2,caml_ml_string_length(str) - 2 | 0); + return [0,stp,sub_str]} + function take_format_readers$0(counter,k,fmt) + {var fmt$0=fmt; + for(;;) + {if(typeof fmt$0 === "number")return caml_call1(k,0); + switch(fmt$0[0]) + {case 0:var fmt$1=fmt$0[1],fmt$0=fmt$1;continue; + case 1:var fmt$2=fmt$0[1],fmt$0=fmt$2;continue; + case 2:var fmt$3=fmt$0[2],fmt$0=fmt$3;continue; + case 3:var fmt$4=fmt$0[2],fmt$0=fmt$4;continue; + case 4:var fmt$5=fmt$0[4],fmt$0=fmt$5;continue; + case 5:var fmt$6=fmt$0[4],fmt$0=fmt$6;continue; + case 6:var fmt$7=fmt$0[4],fmt$0=fmt$7;continue; + case 7:var fmt$8=fmt$0[4],fmt$0=fmt$8;continue; + case 8:var fmt$9=fmt$0[4],fmt$0=fmt$9;continue; + case 9:var fmt$10=fmt$0[2],fmt$0=fmt$10;continue; + case 10:var fmt$11=fmt$0[1],fmt$0=fmt$11;continue; + case 11:var fmt$12=fmt$0[2],fmt$0=fmt$12;continue; + case 12:var fmt$13=fmt$0[2],fmt$0=fmt$13;continue; + case 13:var fmt$14=fmt$0[3],fmt$0=fmt$14;continue; + case 14: + var rest=fmt$0[3],fmtty=fmt$0[2],_iQ_=erase_rel(symm(fmtty)); + if(counter >= 50) + return caml_trampoline_return + (take_fmtty_format_readers$0,[0,k,_iQ_,rest]); + var counter$0=counter + 1 | 0; + return take_fmtty_format_readers$0(counter$0,k,_iQ_,rest); + case 15:var fmt$15=fmt$0[1],fmt$0=fmt$15;continue; + case 16:var fmt$16=fmt$0[1],fmt$0=fmt$16;continue; + case 17:var fmt$17=fmt$0[2],fmt$0=fmt$17;continue; + case 18: + var _iR_=fmt$0[1]; + if(0 === _iR_[0]) + {var + rest$0=fmt$0[2], + match=_iR_[1], + fmt$18=match[1], + fmt$19=concat_fmt(fmt$18,rest$0), + fmt$0=fmt$19; + continue} + var + rest$1=fmt$0[2], + match$0=_iR_[1], + fmt$20=match$0[1], + fmt$21=concat_fmt(fmt$20,rest$1), + fmt$0=fmt$21; + continue; + case 19: + var fmt_rest=fmt$0[1]; + return function(reader) + {function new_k(readers_rest) + {return caml_call1(k,[0,reader,readers_rest])} + return take_format_readers(new_k,fmt_rest)}; + case 20:var fmt$22=fmt$0[3],fmt$0=fmt$22;continue; + case 21:var fmt$23=fmt$0[2],fmt$0=fmt$23;continue; + case 22:var fmt$24=fmt$0[1],fmt$0=fmt$24;continue; + case 23: + var rest$2=fmt$0[2],ign=fmt$0[1]; + if(typeof ign === "number") + switch(ign) + {case 0:var fmt$0=rest$2;continue; + case 1:var fmt$0=rest$2;continue; + case 2: + return function(reader) + {function new_k(readers_rest) + {return caml_call1(k,[0,reader,readers_rest])} + return take_format_readers(new_k,rest$2)}; + default:var fmt$0=rest$2;continue} + switch(ign[0]) + {case 0:var fmt$0=rest$2;continue; + case 1:var fmt$0=rest$2;continue; + case 2:var fmt$0=rest$2;continue; + case 3:var fmt$0=rest$2;continue; + case 4:var fmt$0=rest$2;continue; + case 5:var fmt$0=rest$2;continue; + case 6:var fmt$0=rest$2;continue; + case 7:var fmt$0=rest$2;continue; + case 8:var fmt$0=rest$2;continue; + case 9: + var fmtty$0=ign[2]; + if(counter >= 50) + return caml_trampoline_return + (take_fmtty_format_readers$0,[0,k,fmtty$0,rest$2]); + var counter$1=counter + 1 | 0; + return take_fmtty_format_readers$0(counter$1,k,fmtty$0,rest$2); + case 10:var fmt$0=rest$2;continue; + default:var fmt$0=rest$2;continue} + default:var fmt$25=fmt$0[3],fmt$0=fmt$25;continue}}} + function take_fmtty_format_readers$0(counter,k,fmtty,fmt) + {var fmtty$0=fmtty; + for(;;) + {if(typeof fmtty$0 !== "number") + switch(fmtty$0[0]) + {case 0:var fmtty$1=fmtty$0[1],fmtty$0=fmtty$1;continue; + case 1:var fmtty$2=fmtty$0[1],fmtty$0=fmtty$2;continue; + case 2:var fmtty$3=fmtty$0[1],fmtty$0=fmtty$3;continue; + case 3:var fmtty$4=fmtty$0[1],fmtty$0=fmtty$4;continue; + case 4:var fmtty$5=fmtty$0[1],fmtty$0=fmtty$5;continue; + case 5:var fmtty$6=fmtty$0[1],fmtty$0=fmtty$6;continue; + case 6:var fmtty$7=fmtty$0[1],fmtty$0=fmtty$7;continue; + case 7:var fmtty$8=fmtty$0[1],fmtty$0=fmtty$8;continue; + case 8:var fmtty$9=fmtty$0[2],fmtty$0=fmtty$9;continue; + case 9: + var + rest=fmtty$0[3], + ty2=fmtty$0[2], + ty1=fmtty$0[1], + ty=trans(symm(ty1),ty2), + fmtty$10=concat_fmtty(ty,rest), + fmtty$0=fmtty$10; + continue; + case 10:var fmtty$11=fmtty$0[1],fmtty$0=fmtty$11;continue; + case 11:var fmtty$12=fmtty$0[1],fmtty$0=fmtty$12;continue; + case 12:var fmtty$13=fmtty$0[1],fmtty$0=fmtty$13;continue; + case 13: + var fmt_rest=fmtty$0[1]; + return function(reader) + {function new_k(readers_rest) + {return caml_call1(k,[0,reader,readers_rest])} + return take_fmtty_format_readers(new_k,fmt_rest,fmt)}; + default: + var fmt_rest$0=fmtty$0[1]; + return function(reader) + {function new_k(readers_rest) + {return caml_call1(k,[0,reader,readers_rest])} + return take_fmtty_format_readers(new_k,fmt_rest$0,fmt)}} + if(counter >= 50) + return caml_trampoline_return(take_format_readers$0,[0,k,fmt]); + var counter$0=counter + 1 | 0; + return take_format_readers$0(counter$0,k,fmt)}} + function take_format_readers(k,fmt) + {return caml_trampoline(take_format_readers$0(0,k,fmt))} + function take_fmtty_format_readers(k,fmtty,fmt) + {return caml_trampoline(take_fmtty_format_readers$0(0,k,fmtty,fmt))} + function pad_prec_scanf(ib,fmt,readers,pad,prec,scan,token) + {if(typeof pad === "number") + {if(typeof prec !== "number") + {var p=prec[1]; + caml_call3(scan,max_int,p,ib); + var x$0=caml_call1(token,ib); + return [0,x$0,make_scanf(ib,fmt,readers)]} + if(prec)return invalid_arg(cst_scanf_bad_conversion); + caml_call3(scan,max_int,max_int,ib); + var x=caml_call1(token,ib); + return [0,x,make_scanf(ib,fmt,readers)]} + if(0 !== pad[0])return invalid_arg(cst_scanf_bad_conversion$2); + if(! pad[1])return invalid_arg(cst_scanf_bad_conversion$1); + var _iP_=pad[2]; + if(typeof prec !== "number") + {var p$0=prec[1]; + caml_call3(scan,_iP_,p$0,ib); + var x$2=caml_call1(token,ib); + return [0,x$2,make_scanf(ib,fmt,readers)]} + if(prec)return invalid_arg(cst_scanf_bad_conversion$0); + caml_call3(scan,_iP_,max_int,ib); + var x$1=caml_call1(token,ib); + return [0,x$1,make_scanf(ib,fmt,readers)]} + function make_scanf(ib,fmt,readers) + {var fmt$0=fmt; + for(;;) + {if(typeof fmt$0 === "number")return 0; + switch(fmt$0[0]) + {case 0: + var rest=fmt$0[1]; + scan_char(0,ib); + var c=token_char(ib); + return [0,c,make_scanf(ib,rest,readers)]; + case 1: + var rest$0=fmt$0[1]; + scan_caml_char(0,ib); + var c$0=token_char(ib); + return [0,c$0,make_scanf(ib,rest$0,readers)]; + case 2: + var _iC_=fmt$0[1],_iD_=fmt$0[2]; + if(typeof _iD_ !== "number") + switch(_iD_[0]) + {case 17: + var + rest$2=_iD_[2], + fmting_lit=_iD_[1], + match=stopper_of_formatting_lit(fmting_lit), + str=match[2], + stp=match[1], + scan$0= + function(width,param,ib) + {return scan_string([0,stp],width,ib)}, + str_rest=[11,str,rest$2]; + return pad_prec_scanf + (ib,str_rest,readers,_iC_,0,scan$0,token_string); + case 18: + var _iE_=_iD_[1]; + if(0 === _iE_[0]) + {var + rest$3=_iD_[2], + match$0=_iE_[1], + fmt$1=match$0[1], + scan$1= + function(width,param,ib){return scan_string(_cD_,width,ib)}; + return pad_prec_scanf + (ib, + concat_fmt(fmt$1,rest$3), + readers, + _iC_, + 0, + scan$1, + token_string)} + var + rest$4=_iD_[2], + match$1=_iE_[1], + fmt$2=match$1[1], + scan$2= + function(width,param,ib){return scan_string(_cE_,width,ib)}; + return pad_prec_scanf + (ib, + concat_fmt(fmt$2,rest$4), + readers, + _iC_, + 0, + scan$2, + token_string) + } + var + rest$1=fmt$0[2], + scan=function(width,param,ib){return scan_string(0,width,ib)}; + return pad_prec_scanf(ib,rest$1,readers,_iC_,0,scan,token_string); + case 3: + var + rest$5=fmt$0[2], + pad=fmt$0[1], + scan$3=function(width,param,ib){return scan_caml_string(width,ib)}; + return pad_prec_scanf(ib,rest$5,readers,pad,0,scan$3,token_string); + case 4: + var + rest$6=fmt$0[4], + prec=fmt$0[3], + pad$0=fmt$0[2], + iconv=fmt$0[1], + conv=integer_conversion_of_char(char_of_iconv(iconv)), + scan$4= + function(width,param,ib) + {return scan_int_conversion(conv,width,ib)}; + return pad_prec_scanf + (ib, + rest$6, + readers, + pad$0, + prec, + scan$4, + function(ib) + {return caml_int_of_string(token_int_literal(conv,ib))}); + case 5: + var + rest$7=fmt$0[4], + prec$0=fmt$0[3], + pad$1=fmt$0[2], + iconv$0=fmt$0[1], + conv$0=integer_conversion_of_char(char_of_iconv(iconv$0)), + scan$5= + function(width,param,ib) + {return scan_int_conversion(conv$0,width,ib)}; + return pad_prec_scanf + (ib, + rest$7, + readers, + pad$1, + prec$0, + scan$5, + function(ib) + {return caml_int_of_string(token_int_literal(conv$0,ib))}); + case 6: + var + rest$8=fmt$0[4], + prec$1=fmt$0[3], + pad$2=fmt$0[2], + iconv$1=fmt$0[1], + conv$1=integer_conversion_of_char(char_of_iconv(iconv$1)), + scan$6= + function(width,param,ib) + {return scan_int_conversion(conv$1,width,ib)}; + return pad_prec_scanf + (ib, + rest$8, + readers, + pad$2, + prec$1, + scan$6, + function(ib) + {return caml_int_of_string(token_int_literal(conv$1,ib))}); + case 7: + var + rest$9=fmt$0[4], + prec$2=fmt$0[3], + pad$3=fmt$0[2], + iconv$2=fmt$0[1], + conv$2=integer_conversion_of_char(char_of_iconv(iconv$2)), + scan$7= + function(width,param,ib) + {return scan_int_conversion(conv$2,width,ib)}; + return pad_prec_scanf + (ib, + rest$9, + readers, + pad$3, + prec$2, + scan$7, + function(ib) + {return caml_int64_of_string(token_int_literal(conv$2,ib))}); + case 8: + switch(fmt$0[1][2]) + {case 5: + case 8: + var rest$11=fmt$0[4],prec$4=fmt$0[3],pad$5=fmt$0[2]; + return pad_prec_scanf + (ib, + rest$11, + readers, + pad$5, + prec$4, + scan_caml_float, + token_float); + case 6: + case 7: + var rest$12=fmt$0[4],prec$5=fmt$0[3],pad$6=fmt$0[2]; + return pad_prec_scanf + (ib,rest$12,readers,pad$6,prec$5,scan_hex_float,token_float); + default: + var rest$10=fmt$0[4],prec$3=fmt$0[3],pad$4=fmt$0[2]; + return pad_prec_scanf + (ib,rest$10,readers,pad$4,prec$3,scan_float,token_float)} + case 9: + var + rest$13=fmt$0[2], + pad$7=fmt$0[1], + scan$8= + function(param,_iO_,ib) + {var + c=checked_peek_char(ib), + m= + 102 === c + ?5 + :116 === c?4:bad_input(caml_call1(sprintf(_cA_),c)); + return scan_string(0,m,ib)}; + return pad_prec_scanf(ib,rest$13,readers,pad$7,0,scan$8,token_bool); + case 10: + var rest$14=fmt$0[1]; + if(! end_of_input(ib))return bad_input(cst_end_of_input_not_found); + var fmt$0=rest$14; + continue; + case 11: + var rest$15=fmt$0[2],str$0=fmt$0[1]; + iter$4(function(_iN_){return check_char(ib,_iN_)},str$0); + var fmt$0=rest$15; + continue; + case 12: + var rest$16=fmt$0[2],chr=fmt$0[1]; + check_char(ib,chr); + var fmt$0=rest$16; + continue; + case 13: + var rest$17=fmt$0[3],fmtty=fmt$0[2],pad_opt=fmt$0[1]; + scan_caml_string(width_of_pad_opt(pad_opt),ib); + var s=token_string(ib); + try + {var _iF_=format_of_string_fmtty(s,fmtty),fmt$3=_iF_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] !== Failure)throw exn; + var msg=exn[2],fmt$3=bad_input(msg)} + return [0,fmt$3,make_scanf(ib,rest$17,readers)]; + case 14: + var rest$18=fmt$0[3],fmtty$0=fmt$0[2],pad_opt$0=fmt$0[1]; + scan_caml_string(width_of_pad_opt(pad_opt$0),ib); + var s$0=token_string(ib); + try + {var + match$2=fmt_ebb_of_string(0,s$0), + fmt$6=match$2[1], + match$3=fmt_ebb_of_string(0,s$0), + fmt$7=match$3[1], + fmt$8=type_format(fmt$7,erase_rel(symm(fmtty$0))), + _iH_=type_format(fmt$6,erase_rel(fmtty$0)), + fmt$5=fmt$8, + fmt$4=_iH_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] !== Failure)throw exn; + var + msg$0=exn[2], + _iG_=bad_input(msg$0), + fmt$5=_iG_[2], + fmt$4=_iG_[1]} + return [0, + [0,fmt$4,s$0], + make_scanf(ib,concat_fmt(fmt$5,rest$18),readers)]; + case 15:return invalid_arg(cst_scanf_bad_conversion_a); + case 16:return invalid_arg(cst_scanf_bad_conversion_t); + case 17: + var + rest$19=fmt$0[2], + formatting_lit=fmt$0[1], + _iI_=string_of_formatting_lit(formatting_lit); + iter$4(function(_iM_){return check_char(ib,_iM_)},_iI_); + var fmt$0=rest$19; + continue; + case 18: + var _iJ_=fmt$0[1]; + if(0 === _iJ_[0]) + {var rest$20=fmt$0[2],match$4=_iJ_[1],fmt$9=match$4[1]; + check_char(ib,64); + check_char(ib,123); + var fmt$10=concat_fmt(fmt$9,rest$20),fmt$0=fmt$10; + continue} + var rest$21=fmt$0[2],match$5=_iJ_[1],fmt$11=match$5[1]; + check_char(ib,64); + check_char(ib,91); + var fmt$12=concat_fmt(fmt$11,rest$21),fmt$0=fmt$12; + continue; + case 19: + var fmt_rest=fmt$0[1]; + if(! readers)return invalid_arg(cst_scanf_missing_reader); + var + readers_rest=readers[2], + reader=readers[1], + x=caml_call1(reader,ib); + return [0,x,make_scanf(ib,fmt_rest,readers_rest)]; + case 20: + var _iK_=fmt$0[1],_iL_=fmt$0[3]; + if(typeof _iL_ !== "number" && 17 === _iL_[0]) + {var + rest$23=_iL_[2], + fmting_lit$0=_iL_[1], + char_set$0=fmt$0[2], + match$6=stopper_of_formatting_lit(fmting_lit$0), + str$1=match$6[2], + stp$0=match$6[1], + width$0=width_of_pad_opt(_iK_); + scan_chars_in_char_set(char_set$0,[0,stp$0],width$0,ib); + var s$2=token_string(ib),str_rest$0=[11,str$1,rest$23]; + return [0,s$2,make_scanf(ib,str_rest$0,readers)]} + var + rest$22=fmt$0[3], + char_set=fmt$0[2], + width=width_of_pad_opt(_iK_); + scan_chars_in_char_set(char_set,0,width,ib); + var s$1=token_string(ib); + return [0,s$1,make_scanf(ib,rest$22,readers)]; + case 21: + var + rest$24=fmt$0[2], + counter=fmt$0[1], + count=get_counter(ib,counter); + return [0,count,make_scanf(ib,rest$24,readers)]; + case 22: + var rest$25=fmt$0[1],c$1=checked_peek_char(ib); + return [0,c$1,make_scanf(ib,rest$25,readers)]; + case 23: + var + rest$26=fmt$0[2], + ign=fmt$0[1], + match$7=param_format_of_ignored_format(ign,rest$26), + fmt$13=match$7[1], + match$8=make_scanf(ib,fmt$13,readers); + if(! match$8)throw [0,Assert_failure,_cF_]; + var arg_rest=match$8[2]; + return arg_rest; + default:return invalid_arg(cst_scanf_bad_conversion_custo)}}} + function kscanf(ib,ef,param) + {var str=param[2],fmt=param[1]; + function apply(f,args) + {var f$0=f,args$0=args; + for(;;) + {if(! args$0)return f$0; + var r=args$0[2],x=args$0[1],f$1=caml_call1(f$0,x),f$0=f$1,args$0=r}} + function k(readers,f) + {reset_token(ib); + try + {var _iB_=[0,make_scanf(ib,fmt,readers)],_iA_=_iB_} + catch(exc) + {exc = caml_wrap_exception(exc); + var switch$0=0; + if + (exc[1] + !== + Scan_failure + && + exc[1] + !== + Failure + && + exc + !== + End_of_file) + {if(exc[1] !== Invalid_argument)throw exc; + var + msg=exc[2], + _iz_= + invalid_arg + (cat(msg,cat(cst_in_format,cat(escaped$1(str),cst$88)))); + switch$0 = 1} + if(! switch$0)var _iz_=[1,exc]; + var _iA_=_iz_} + if(0 === _iA_[0]){var args=_iA_[1];return apply(f,args)} + var exc=_iA_[1]; + return caml_call2(ef,ib,exc)} + return take_format_readers(k,fmt)} + function bscanf(ib,fmt){return kscanf(ib,scanf_bad_input,fmt)} + function ksscanf(s,ef,fmt){return kscanf(from_string$1(s),ef,fmt)} + function sscanf(s,fmt) + {return kscanf(from_string$1(s),scanf_bad_input,fmt)} + function scanf(fmt){return kscanf(stdib,scanf_bad_input,fmt)} + function bscanf_format(ib,format,f) + {scan_caml_string(max_int,ib); + var str=token_string(ib); + try + {var _iy_=format_of_string_format(str,format),fmt=_iy_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] !== Failure)throw exn; + var msg=exn[2],fmt=bad_input(msg)} + return caml_call1(f,fmt)} + function sscanf_format(s,format,f) + {return bscanf_format(from_string$1(s),format,f)} + function format_from_string(s,fmt) + {function _ix_(x){return x} + return sscanf_format(cat(cst$90,cat(escaped$1(s),cst$89)),fmt,_ix_)} + function unescaped(s) + {function _iw_(x){return x} + return caml_call1(sscanf(cat(cst$92,cat(s,cst$91)),_cG_),_iw_)} + function kfscanf(ic,ef,fmt){return kscanf(memo_from_channel(ic),ef,fmt)} + function fscanf(ic,fmt) + {return kscanf(memo_from_channel(ic),scanf_bad_input,fmt)} + var + Stdlib_Scanf= + [0, + [0, + stdib, + from_file, + from_file_bin, + close_in, + from_file, + from_file_bin, + from_string$1, + from_function$0, + from_channel$0, + end_of_input, + beginning_of_input, + name_of_input, + stdib], + Scan_failure, + bscanf, + sscanf, + scanf, + kscanf, + ksscanf, + bscanf_format, + sscanf_format, + format_from_string, + unescaped, + fscanf, + kfscanf]; + caml_register_global(819,Stdlib_Scanf,"Stdlib__Scanf"); + function register(name,v){return caml_register_named_value(name,v)} + function register_exception(name,exn) + {var slot=caml_obj_tag(exn) === 248?exn:exn[1]; + return caml_register_named_value(name,slot)} + var Stdlib_Callback=[0,register,register_exception]; + caml_register_global(820,Stdlib_Callback,"Stdlib__Callback"); + function copy$7(o){var o$0=o.slice();return caml_set_oo_id(o$0)} + var params$0=[0,1,1,1,3,16],initial_object_size=2,dummy_item=0; + function public_method_label(s) + {var accu=[0,0],_it_=caml_ml_string_length(s) - 1 | 0,_is_=0; + if(_it_ >= 0) + {var i=_is_; + for(;;) + {var _iu_=caml_string_get(s,i); + accu[1] = (223 * accu[1] | 0) + _iu_ | 0; + var _iv_=i + 1 | 0; + if(_it_ !== i){var i=_iv_;continue} + break}} + accu[1] = accu[1] & 2147483647; + var tag=1073741823 < accu[1]?accu[1] + 2147483648 | 0:accu[1]; + return tag} + function compare$14(x,y){return caml_string_compare(x,y)} + var Vars=caml_call1(Stdlib_Map[1],[0,compare$14]); + function compare$15(x,y){return caml_string_compare(x,y)} + var + Meths=caml_call1(Stdlib_Map[1],[0,compare$15]), + compare$16=caml_int_compare, + Labs=caml_call1(Stdlib_Map[1],[0,compare$16]), + dummy_table=[0,0,[0,dummy_item],Meths[1],Labs[1],0,0,Vars[1],0], + table_count=[0,0], + dummy_met=caml_obj_block(0,0); + function fit_size(n){return 2 < n?fit_size((n + 1 | 0) / 2 | 0) * 2 | 0:n} + function new_table(pub_labels) + {table_count[1]++; + var + len=pub_labels.length - 1, + methods=caml_make_vect((len * 2 | 0) + 2 | 0,dummy_met); + caml_check_bound(methods,0)[1] = len; + var _im_=((fit_size(len) * 32 | 0) / 8 | 0) - 1 | 0; + caml_check_bound(methods,1)[2] = _im_; + var _io_=len - 1 | 0,_in_=0; + if(_io_ >= 0) + {var i=_in_; + for(;;) + {var + _iq_=(i * 2 | 0) + 3 | 0, + _ip_=caml_check_bound(pub_labels,i)[1 + i]; + caml_check_bound(methods,_iq_)[1 + _iq_] = _ip_; + var _ir_=i + 1 | 0; + if(_io_ !== i){var i=_ir_;continue} + break}} + return [0,initial_object_size,methods,Meths[1],Labs[1],0,0,Vars[1],0]} + function resize$1(array,new_size) + {var old_size=array[2].length - 1,_ik_=old_size < new_size?1:0; + if(_ik_) + {var new_buck=caml_make_vect(new_size,dummy_met); + blit$1(array[2],0,new_buck,0,old_size); + array[2] = new_buck; + var _il_=0} + else + var _il_=_ik_; + return _il_} + var method_count=[0,0],inst_var_count=[0,0]; + function new_method(table) + {var index=table[2].length - 1; + resize$1(table,index + 1 | 0); + return index} + function get_method_label(table,name) + {try + {var _ii_=caml_call2(Meths[28],name,table[3]);return _ii_} + catch(_ij_) + {_ij_ = caml_wrap_exception(_ij_); + if(_ij_ !== Not_found)throw _ij_; + var label=new_method(table); + table[3] = caml_call3(Meths[4],name,label,table[3]); + table[4] = caml_call3(Labs[4],label,1,table[4]); + return label}} + function get_method_labels(table,names) + {return map$7(function(_ih_){return get_method_label(table,_ih_)},names)} + function set_method(table,label,element) + {method_count[1]++; + return caml_call2(Labs[28],label,table[4]) + ?(resize$1(table,label + 1 | 0), + caml_check_bound(table[2],label)[1 + label] + = + element, + 0) + :(table[6] = [0,[0,label,element],table[6]],0)} + function get_method(table,label) + {try + {var _if_=assoc(label,table[6]);return _if_} + catch(_ig_) + {_ig_ = caml_wrap_exception(_ig_); + if(_ig_ === Not_found) + return caml_check_bound(table[2],label)[1 + label]; + throw _ig_}} + function to_list$3(arr){return 0 === arr?0:to_list$1(arr)} + function narrow(table,vars,virt_meths,concr_meths) + {var + vars$0=to_list$3(vars), + virt_meths$0=to_list$3(virt_meths), + concr_meths$0=to_list$3(concr_meths), + virt_meth_labs= + map$4 + (function(_ie_){return get_method_label(table,_ie_)},virt_meths$0), + concr_meth_labs= + map$4 + (function(_id_){return get_method_label(table,_id_)},concr_meths$0); + table[5] + = + [0, + [0,table[3],table[4],table[6],table[7],virt_meth_labs,vars$0], + table[5]]; + var _h6_=Vars[1],_h7_=table[7]; + function _h8_(lab,info,tvars) + {return mem(lab,vars$0)?caml_call3(Vars[4],lab,info,tvars):tvars} + table[7] = caml_call3(Vars[13],_h8_,_h7_,_h6_); + var by_name=[0,Meths[1]],by_label=[0,Labs[1]]; + iter2$0 + (function(met,label) + {by_name[1] = caml_call3(Meths[4],met,label,by_name[1]); + var _h$_=by_label[1]; + try + {var _ib_=caml_call2(Labs[28],label,table[4]),_ia_=_ib_} + catch(_ic_) + {_ic_ = caml_wrap_exception(_ic_); + if(_ic_ !== Not_found)throw _ic_; + var _ia_=1} + by_label[1] = caml_call3(Labs[4],label,_ia_,_h$_); + return 0}, + concr_meths$0, + concr_meth_labs); + iter2$0 + (function(met,label) + {by_name[1] = caml_call3(Meths[4],met,label,by_name[1]); + by_label[1] = caml_call3(Labs[4],label,0,by_label[1]); + return 0}, + virt_meths$0, + virt_meth_labs); + table[3] = by_name[1]; + table[4] = by_label[1]; + var _h9_=0,_h__=table[6]; + table[6] + = + fold_right + (function(met,hm) + {var lab=met[1];return mem(lab,virt_meth_labs)?hm:[0,met,hm]}, + _h__, + _h9_); + return 0} + function widen(table) + {var + match=hd(table[5]), + vars=match[6], + virt_meths=match[5], + saved_vars=match[4], + saved_hidden_meths=match[3], + by_label=match[2], + by_name=match[1]; + table[5] = tl(table[5]); + table[7] + = + fold_left$0 + (function(s,v) + {var _h5_=caml_call2(Vars[28],v,table[7]); + return caml_call3(Vars[4],v,_h5_,s)}, + saved_vars, + vars); + table[3] = by_name; + table[4] = by_label; + var _h4_=table[6]; + table[6] + = + fold_right + (function(met,hm) + {var lab=met[1];return mem(lab,virt_meths)?hm:[0,met,hm]}, + _h4_, + saved_hidden_meths); + return 0} + function new_slot(table) + {var index=table[1];table[1] = index + 1 | 0;return index} + function new_variable(table,name) + {try + {var _h2_=caml_call2(Vars[28],name,table[7]);return _h2_} + catch(_h3_) + {_h3_ = caml_wrap_exception(_h3_); + if(_h3_ !== Not_found)throw _h3_; + var index=new_slot(table); + if(caml_string_notequal(name,cst$93)) + table[7] = caml_call3(Vars[4],name,index,table[7]); + return index}} + function to_array(arr){return caml_equal(arr,0)?[0]:arr} + function new_methods_variables(table,meths,vals) + {var + meths$0=to_array(meths), + nmeths=meths$0.length - 1, + nvals=vals.length - 1, + res=caml_make_vect(nmeths + nvals | 0,0), + _hU_=nmeths - 1 | 0, + _hT_=0; + if(_hU_ >= 0) + {var i$0=_hT_; + for(;;) + {var + _h0_= + get_method_label(table,caml_check_bound(meths$0,i$0)[1 + i$0]); + caml_check_bound(res,i$0)[1 + i$0] = _h0_; + var _h1_=i$0 + 1 | 0; + if(_hU_ !== i$0){var i$0=_h1_;continue} + break}} + var _hW_=nvals - 1 | 0,_hV_=0; + if(_hW_ >= 0) + {var i=_hV_; + for(;;) + {var + _hY_=i + nmeths | 0, + _hX_=new_variable(table,caml_check_bound(vals,i)[1 + i]); + caml_check_bound(res,_hY_)[1 + _hY_] = _hX_; + var _hZ_=i + 1 | 0; + if(_hW_ !== i){var i=_hZ_;continue} + break}} + return res} + function get_variable(table,name) + {try + {var _hR_=caml_call2(Vars[28],name,table[7]);return _hR_} + catch(_hS_) + {_hS_ = caml_wrap_exception(_hS_); + if(_hS_ === Not_found)throw [0,Assert_failure,_cH_]; + throw _hS_}} + function get_variables(table,names) + {return map$7(function(_hQ_){return get_variable(table,_hQ_)},names)} + function add_initializer(table,f){table[8] = [0,f,table[8]];return 0} + function create_table(public_methods) + {if(0 === public_methods)return new_table([0]); + var + tags=map$7(public_method_label,public_methods), + table=new_table(tags); + iteri$3 + (function(i,met) + {var lab=(i * 2 | 0) + 2 | 0; + table[3] = caml_call3(Meths[4],met,lab,table[3]); + table[4] = caml_call3(Labs[4],lab,1,table[4]); + return 0}, + public_methods); + return table} + function init_class(table) + {inst_var_count[1] = (inst_var_count[1] + table[1] | 0) - 1 | 0; + table[8] = rev(table[8]); + return resize$1 + (table, + 3 + ((caml_check_bound(table[2],1)[2] * 16 | 0) / 32 | 0) | 0)} + function inherits(cla,vals,virt_meths,concr_meths,param,top) + {var env=param[4],super$0=param[2]; + narrow(cla,vals,virt_meths,concr_meths); + var init=top?caml_call2(super$0,cla,env):caml_call1(super$0,cla); + widen(cla); + var + _hL_=0, + _hM_=to_array(concr_meths), + _hN_= + [0, + map$7 + (function(nm){return get_method(cla,get_method_label(cla,nm))},_hM_), + _hL_], + _hO_=to_array(vals); + return caml_array_concat + ([0, + [0,init], + [0, + map$7(function(_hP_){return get_variable(cla,_hP_)},_hO_), + _hN_]])} + function make_class(pub_meths,class_init) + {var table=create_table(pub_meths),env_init=caml_call1(class_init,table); + init_class(table); + return [0,caml_call1(env_init,0),class_init,env_init,0]} + function make_class_store(pub_meths,class_init,init_table) + {var table=create_table(pub_meths),env_init=caml_call1(class_init,table); + init_class(table); + init_table[2] = class_init; + init_table[1] = env_init; + return 0} + function dummy_class(loc) + {function undef(param){throw [0,Undefined_recursive_module,loc]} + return [0,undef,undef,undef,0]} + function create_object(table) + {var obj=caml_obj_block(248,table[1]); + obj[1] = table[2]; + return caml_set_oo_id(obj)} + function create_object_opt(obj_0,table) + {if(obj_0)return obj_0; + var obj=caml_obj_block(248,table[1]); + obj[1] = table[2]; + return caml_set_oo_id(obj)} + function iter_f(obj,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var l=param$0[2],f=param$0[1]; + caml_call1(f,obj); + var param$0=l}} + function run_initializers(obj,table) + {var inits=table[8],_hK_=0 !== inits?1:0; + return _hK_?iter_f(obj,inits):_hK_} + function run_initializers_opt(obj_0,obj,table) + {if(obj_0)return obj; + var inits=table[8]; + if(0 !== inits)iter_f(obj,inits); + return obj} + function create_object_and_run_initiali(obj_0,table) + {if(obj_0)return obj_0; + var obj=create_object(table); + run_initializers(obj,table); + return obj} + function get_data$0(param) + {if(param)return param[2];throw [0,Assert_failure,_cL_]} + function build_path(n,keys,tables) + {var res=[0,0,0,0],r=[0,res],_hG_=0; + if(n >= 0) + {var i=_hG_; + for(;;) + {var _hI_=r[1]; + r[1] = [0,caml_check_bound(keys,i)[1 + i],_hI_,0]; + var _hJ_=i + 1 | 0; + if(n !== i){var i=_hJ_;continue} + break}} + var _hH_=r[1]; + if(! tables)throw [0,Assert_failure,_cI_]; + tables[2] = _hH_; + return res} + function lookup_tables(root,keys) + {var tables$2=get_data$0(root); + if(! tables$2)return build_path(keys.length - 1 - 1 | 0,keys,root); + var i$1=keys.length - 1 - 1 | 0,i=i$1,tables=tables$2; + a: + for(;;) + {if(0 > i)return tables; + var key=caml_check_bound(keys,i)[1 + i],tables$0=tables; + for(;;) + {if(! tables$0)throw [0,Assert_failure,_cK_]; + if(tables$0[1] === key) + {var tables$1=get_data$0(tables$0); + if(! tables$1)throw [0,Assert_failure,_cN_]; + var i$0=i - 1 | 0,i=i$0,tables=tables$1; + continue a} + if(! tables$0)throw [0,Assert_failure,_cM_]; + var _hF_=tables$0[3]; + if(_hF_){var tables$0=_hF_;continue} + var v=[0,key,0,0]; + if(! tables$0)throw [0,Assert_failure,_cJ_]; + tables$0[3] = v; + return build_path(i - 1 | 0,keys,v)}}} + function new_cache(table) + {var n=new_method(table),switch$0=0; + if + (0 + !== + (n % 2 | 0) + && + (2 + ((caml_check_bound(table[2],1)[2] * 16 | 0) / 32 | 0) | 0) + >= + n) + {var n$0=new_method(table);switch$0 = 1} + if(! switch$0)var n$0=n; + caml_check_bound(table[2],n$0)[1 + n$0] = 0; + return n$0} + function set_methods(table,methods) + {var len=methods.length - 1,i=[0,0]; + for(;;) + {if(i[1] >= len)return 0; + var + _hz_=i[1], + label=caml_check_bound(methods,_hz_)[1 + _hz_], + next= + function(param) + {i[1]++; + var _hE_=i[1]; + return caml_check_bound(methods,_hE_)[1 + _hE_]}, + clo=next(0); + if(typeof clo === "number") + switch(clo) + {case 0: + var + x=next(0), + clo$0=function(x){return function(obj){return x}}(x); + break; + case 1: + var + n=next(0), + clo$0=function(n){return function(obj){return obj[1 + n]}}(n); + break; + case 2: + var + e=next(0), + n$0=next(0), + clo$0= + function(e,n){return function(obj){return obj[1 + e][1 + n]}} + (e,n$0); + break; + case 3: + var + n$1=next(0), + clo$0= + function(n) + {return function(obj){return caml_call1(obj[1][1 + n],obj)}} + (n$1); + break; + case 4: + var + n$2=next(0), + clo$0= + function(n){return function(obj,x){obj[1 + n] = x;return 0}} + (n$2); + break; + case 5: + var + f=next(0), + x$0=next(0), + clo$0= + function(f,x){return function(obj){return caml_call1(f,x)}} + (f,x$0); + break; + case 6: + var + f$0=next(0), + n$3=next(0), + clo$0= + function(f,n) + {return function(obj){return caml_call1(f,obj[1 + n])}} + (f$0,n$3); + break; + case 7: + var + f$1=next(0), + e$0=next(0), + n$4=next(0), + clo$0= + function(f,e,n) + {return function(obj){return caml_call1(f,obj[1 + e][1 + n])}} + (f$1,e$0,n$4); + break; + case 8: + var + f$2=next(0), + n$5=next(0), + clo$0= + function(f,n) + {return function(obj) + {return caml_call1(f,caml_call1(obj[1][1 + n],obj))}} + (f$2,n$5); + break; + case 9: + var + f$3=next(0), + x$1=next(0), + y=next(0), + clo$0= + function(f,x,y){return function(obj){return caml_call2(f,x,y)}} + (f$3,x$1,y); + break; + case 10: + var + f$4=next(0), + x$2=next(0), + n$6=next(0), + clo$0= + function(f,x,n) + {return function(obj){return caml_call2(f,x,obj[1 + n])}} + (f$4,x$2,n$6); + break; + case 11: + var + f$5=next(0), + x$3=next(0), + e$1=next(0), + n$7=next(0), + clo$0= + function(f,x,e,n) + {return function(obj) + {return caml_call2(f,x,obj[1 + e][1 + n])}} + (f$5,x$3,e$1,n$7); + break; + case 12: + var + f$6=next(0), + x$4=next(0), + n$8=next(0), + clo$0= + function(f,x,n) + {return function(obj) + {return caml_call2(f,x,caml_call1(obj[1][1 + n],obj))}} + (f$6,x$4,n$8); + break; + case 13: + var + f$7=next(0), + n$9=next(0), + x$5=next(0), + clo$0= + function(f,n,x) + {return function(obj){return caml_call2(f,obj[1 + n],x)}} + (f$7,n$9,x$5); + break; + case 14: + var + f$8=next(0), + e$2=next(0), + n$10=next(0), + x$6=next(0), + clo$0= + function(f,e,n,x) + {return function(obj) + {return caml_call2(f,obj[1 + e][1 + n],x)}} + (f$8,e$2,n$10,x$6); + break; + case 15: + var + f$9=next(0), + n$11=next(0), + x$7=next(0), + clo$0= + function(f,n,x) + {return function(obj) + {return caml_call2(f,caml_call1(obj[1][1 + n],obj),x)}} + (f$9,n$11,x$7); + break; + case 16: + var + n$12=next(0), + x$8=next(0), + clo$0= + function(n,x) + {return function(obj){return caml_call2(obj[1][1 + n],obj,x)}} + (n$12,x$8); + break; + case 17: + var + n$13=next(0), + m=next(0), + clo$0= + function(n,m) + {return function(obj) + {return caml_call2(obj[1][1 + n],obj,obj[1 + m])}} + (n$13,m); + break; + case 18: + var + n$14=next(0), + e$3=next(0), + m$0=next(0), + clo$0= + function(n,e,m) + {return function(obj) + {return caml_call2(obj[1][1 + n],obj,obj[1 + e][1 + m])}} + (n$14,e$3,m$0); + break; + case 19: + var + n$15=next(0), + m$1=next(0), + clo$0= + function(n,m) + {return function(obj) + {var _hC_=caml_call1(obj[1][1 + m],obj); + return caml_call2(obj[1][1 + n],obj,_hC_)}} + (n$15,m$1); + break; + case 20: + var m$2=next(0),x$9=next(0); + new_cache(table); + var + clo$0= + function(m,x) + {return function(obj) + {return caml_call1(caml_get_public_method(x,m,0),x)}} + (m$2,x$9); + break; + case 21: + var m$3=next(0),n$16=next(0); + new_cache(table); + var + clo$0= + function(m,n) + {return function(obj) + {var _hB_=obj[1 + n]; + return caml_call1(caml_get_public_method(_hB_,m,0),_hB_)}} + (m$3,n$16); + break; + case 22: + var m$4=next(0),e$4=next(0),n$17=next(0); + new_cache(table); + var + clo$0= + function(m,e,n) + {return function(obj) + {var _hA_=obj[1 + e][1 + n]; + return caml_call1(caml_get_public_method(_hA_,m,0),_hA_)}} + (m$4,e$4,n$17); + break; + default: + var m$5=next(0),n$18=next(0); + new_cache(table); + var + clo$0= + function(m,n) + {return function(obj) + {var _hD_=caml_call1(obj[1][1 + n],obj); + return caml_call1(caml_get_public_method(_hD_,m,0),_hD_)}} + (m$5,n$18)} + else + var clo$0=clo; + set_method(table,label,clo$0); + i[1]++}} + function stats$0(param) + {return [0,table_count[1],method_count[1],inst_var_count[1]]} + var + CamlinternalOO= [0, public_method_label, new_method, @@ -28439,228 +26935,2065 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ make_class, make_class_store, dummy_class, - copy, + copy$7, create_object, create_object_opt, run_initializers, run_initializers_opt, create_object_and_run_initiali, lookup_tables, - params, - stats]; - runtime.caml_register_global(17, CamlinternalOO, "CamlinternalOO"); - return; - } - (globalThis)); - -//# 25878 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - global_data = runtime.caml_get_global_data(), - Stdlib_Array = global_data.Stdlib__Array, - make_float = Stdlib_Array[1], - init = Stdlib_Array[2], - make_matrix = Stdlib_Array[3], - create_matrix = Stdlib_Array[4], - append = Stdlib_Array[5], - concat = Stdlib_Array[6], - sub = Stdlib_Array[7], - copy = Stdlib_Array[8], - fill = Stdlib_Array[9], - blit = Stdlib_Array[10], - to_list = Stdlib_Array[11], - of_list = Stdlib_Array[12], - iter = Stdlib_Array[13], - iteri = Stdlib_Array[14], - map = Stdlib_Array[15], - mapi = Stdlib_Array[16], - fold_left = Stdlib_Array[17], - fold_left_map = Stdlib_Array[18], - fold_right = Stdlib_Array[19], - iter2 = Stdlib_Array[20], - map2 = Stdlib_Array[21], - for_all = Stdlib_Array[22], - exists = Stdlib_Array[23], - for_all2 = Stdlib_Array[24], - exists2 = Stdlib_Array[25], - mem = Stdlib_Array[26], - memq = Stdlib_Array[27], - find_opt = Stdlib_Array[28], - find_map = Stdlib_Array[29], - split = Stdlib_Array[30], - combine = Stdlib_Array[31], - sort = Stdlib_Array[32], - stable_sort = Stdlib_Array[33], - fast_sort = Stdlib_Array[34], - to_seq = Stdlib_Array[35], - to_seqi = Stdlib_Array[36], - of_seq = Stdlib_Array[37], - Floatarray = Stdlib_Array[38], - Stdlib_ArrayLabels = + params$0, + stats$0]; + caml_register_global(821,CamlinternalOO,"CamlinternalOO"); + var Stdlib_Oo=[0,copy$7,public_method_label,public_method_label]; + caml_register_global(822,Stdlib_Oo,"Stdlib__Oo"); + function init_mod_block(loc,comps$0) + {var + length=comps$0.length - 1, + modu=caml_obj_block(0,length), + _hv_=length - 1 | 0, + _hu_=0; + if(_hv_ >= 0) + {var i=_hu_; + for(;;) + {var shape=caml_check_bound(comps$0,i)[1 + i]; + if(typeof shape === "number") + switch(shape) + {case 0: + var + fn$0= + function(i) + {function fn(x) + {var fn$0=modu[1 + i]; + if(fn === fn$0)throw [0,Undefined_recursive_module,loc]; + return caml_call1(fn$0,x)} + return fn}, + fn=fn$0(i), + init=fn; + break; + case 1: + var l=[]; + runtime.caml_update_dummy + (l, + [246, + function(l,i) + {return function(_hx_) + {var l$0=modu[1 + i]; + if(l === l$0)throw [0,Undefined_recursive_module,loc]; + var _hy_=caml_obj_tag(l$0); + return 250 === _hy_ + ?l$0[1] + :246 === _hy_?force_lazy_block(l$0):l$0}} + (l,i)]); + var init=l; + break; + default:var init=dummy_class(loc)} + else + if(0 === shape[0]) + var comps=shape[1],init=init_mod_block(loc,comps); + else + var v=shape[1],init=v; + modu[1 + i] = init; + var _hw_=i + 1 | 0; + if(_hv_ !== i){var i=_hw_;continue} + break}} + return modu} + function init_mod(loc,shape) + {if(typeof shape !== "number" && 0 === shape[0]) + {var comps=shape[1];return init_mod_block(loc,comps)} + return failwith(cst_CamlinternalMod_init_mod_n)} + function update_mod_block(comps$0,o,n) + {if(0 === caml_obj_tag(n) && comps$0.length - 1 <= n.length - 1) + {var _hs_=comps$0.length - 1 - 1 | 0,_hr_=0; + if(_hs_ >= 0) + {var i=_hr_; + for(;;) + {var n$0=n[1 + i],shape=caml_check_bound(comps$0,i)[1 + i]; + if(typeof shape === "number") + if(2 === shape) + {var switch$0=0; + if(0 === caml_obj_tag(n$0) && 4 === n$0.length - 1) + {var cl=o[1 + i],j=0; + for(;;) + {cl[1 + j] = n$0[1 + j]; + var _hq_=j + 1 | 0; + if(3 !== j){var j=_hq_;continue} + break}} + else + switch$0 = 1; + if(switch$0)throw [0,Assert_failure,_cO_]} + else + o[1 + i] = n$0; + else + if(0 === shape[0]) + {var comps=shape[1];update_mod_block(comps,o[1 + i],n$0)} + var _ht_=i + 1 | 0; + if(_hs_ !== i){var i=_ht_;continue} + break}} + return 0} + throw [0,Assert_failure,_cP_]} + function update_mod(shape,o,n) + {if(typeof shape !== "number" && 0 === shape[0]) + {var comps=shape[1];return update_mod_block(comps,o,n)} + return failwith(cst_CamlinternalMod_update_mod)} + var CamlinternalMod=[0,init_mod,update_mod]; + caml_register_global(823,CamlinternalMod,"CamlinternalMod"); + var + initial_buffer=caml_create_bytes(32), + buffer=[0,initial_buffer], + bufpos=[0,0]; + function reset_buffer(param) + {buffer[1] = initial_buffer;bufpos[1] = 0;return 0} + function store(c) + {if(caml_ml_bytes_length(buffer[1]) <= bufpos[1]) + {var newbuffer=caml_create_bytes(2 * bufpos[1] | 0); + blit(buffer[1],0,newbuffer,0,bufpos[1]); + buffer[1] = newbuffer} + caml_bytes_set(buffer[1],bufpos[1],c); + bufpos[1]++; + return 0} + function get_string(param) + {var s=sub_string(buffer[1],0,bufpos[1]); + buffer[1] = initial_buffer; + return s} + function make_lexer(keywords) + {var kwd_table=caml_call2(Stdlib_Hashtbl[1],0,17); + iter$2 + (function(s){return caml_call3(Stdlib_Hashtbl[5],kwd_table,s,[0,s])}, + keywords); + function ident_or_keyword(id) + {try + {var _ho_=caml_call2(Stdlib_Hashtbl[6],kwd_table,id);return _ho_} + catch(_hp_) + {_hp_ = caml_wrap_exception(_hp_); + if(_hp_ === Not_found)return [1,id]; + throw _hp_}} + function keyword_or_error(c) + {var s=make$1(1,c); + try + {var _hm_=caml_call2(Stdlib_Hashtbl[6],kwd_table,s);return _hm_} + catch(_hn_) + {_hn_ = caml_wrap_exception(_hn_); + if(_hn_ === Not_found)throw [0,Error,cat(cst_Illegal_character,s)]; + throw _hn_}} + function end_exponent_part(strm) + {for(;;) + {var match=peek$0(strm); + if(match) + {var _hl_=match[1]; + if(9 >= _hl_ - 48 >>> 0){junk(strm);store(_hl_);continue}} + return [0,[3,caml_float_of_string(get_string(0))]]}} + function exponent_part(strm) + {var match=peek$0(strm); + if(match) + {var _hk_=match[1],switch$0=0; + if(43 !== _hk_ && 45 !== _hk_)switch$0 = 1; + if(! switch$0) + {junk(strm);store(_hk_);return end_exponent_part(strm)}} + return end_exponent_part(strm)} + function number(s) + {for(;;) + {var match=peek$0(s); + if(match) + {var _hh_=match[1]; + if(58 <= _hh_) + {var switch$0=0; + if(69 === _hh_ || 101 === _hh_)switch$0 = 1; + if(switch$0){junk(s);store(69);return exponent_part(s)}} + else + {if(46 === _hh_) + {junk(s); + store(46); + for(;;) + {var match$0=peek$0(s); + if(match$0) + {var _hi_=match$0[1],_hj_=_hi_ - 69 | 0; + if(32 < _hj_ >>> 0) + {if(9 >= _hj_ + 21 >>> 0){junk(s);store(_hi_);continue}} + else + if(30 < _hj_ - 1 >>> 0) + {junk(s);store(69);return exponent_part(s)}} + return [0,[3,caml_float_of_string(get_string(0))]]}} + if(48 <= _hh_){junk(s);store(_hh_);continue}}} + return [0,[2,caml_int_of_string(get_string(0))]]}} + function ident2(strm) + {for(;;) + {var match=peek$0(strm); + if(match) + {var _hf_=match[1],switch$0=0; + if(94 <= _hf_) + {var _hg_=_hf_ - 95 | 0; + if(30 < _hg_ >>> 0) + {if(32 > _hg_)switch$0 = 1} + else + if(29 === _hg_)switch$0 = 1} + else + if(65 <= _hf_) + {if(92 === _hf_)switch$0 = 1} + else + if(33 <= _hf_) + switch(_hf_ - 33 | 0) + {case 0: + case 2: + case 3: + case 4: + case 5: + case 9: + case 10: + case 12: + case 14: + case 25: + case 27: + case 28: + case 29: + case 30: + case 31:switch$0 = 1;break + } + if(switch$0){junk(strm);store(_hf_);continue}} + return [0,ident_or_keyword(get_string(0))]}} + function neg_number(s) + {var match=peek$0(s); + if(match) + {var _he_=match[1]; + if(9 >= _he_ - 48 >>> 0) + {junk(s);reset_buffer(0);store(45);store(_he_);return number(s)}} + reset_buffer(0); + store(45); + return ident2(s)} + function ident(strm) + {for(;;) + {var match=peek$0(strm); + if(match) + {var _hc_=match[1],switch$0=0; + if(91 <= _hc_) + {var _hd_=_hc_ - 95 | 0; + if(27 < _hd_ >>> 0) + {if(97 <= _hd_)switch$0 = 1} + else + if(1 !== _hd_)switch$0 = 1} + else + if(48 <= _hc_) + {if(6 < _hc_ - 58 >>> 0)switch$0 = 1} + else + if(39 === _hc_)switch$0 = 1; + if(switch$0){junk(strm);store(_hc_);continue}} + return [0,ident_or_keyword(get_string(0))]}} + function next_token$0(counter,strm) + {for(;;) + {var match=peek$0(strm); + if(! match)return 0; + var _g5_=match[1],switch$0=0; + if(124 <= _g5_) + {if(127 <= _g5_) + {if(192 <= _g5_)switch$0 = 1} + else + if(125 !== _g5_)switch$0 = 2} + else + {var _g6_=_g5_ - 65 | 0; + if(57 < _g6_ >>> 0) + {if(58 > _g6_) + switch(_g6_ + 65 | 0) + {case 34: + junk(strm); + reset_buffer(0); + for(;;) + {var match$1=peek$0(strm); + if(! match$1)throw Failure$0; + var _g8_=match$1[1]; + if(34 === _g8_){junk(strm);return [0,[4,get_string(0)]]} + if(92 !== _g8_){junk(strm);store(_g8_);continue} + junk(strm); + try + {var c$0=escape(strm)} + catch(_hb_) + {_hb_ = caml_wrap_exception(_hb_); + if(_hb_ === Failure$0)throw [0,Error,cst$96]; + throw _hb_} + store(c$0)} + case 39: + junk(strm); + try + {var match$2=peek$0(strm); + if(! match$2)throw Failure$0; + var _g9_=match$2[1]; + if(92 === _g9_) + {junk(strm); + try + {var _g__=escape(strm)} + catch(_ha_) + {_ha_ = caml_wrap_exception(_ha_); + if(_ha_ === Failure$0)throw [0,Error,cst$97]; + throw _ha_} + var c=_g__} + else + {junk(strm);var c=_g9_}} + catch(_g$_) + {_g$_ = caml_wrap_exception(_g$_); + if(_g$_ === Failure$0)throw [0,Error,cst$94]; + throw _g$_} + var match$0=peek$0(strm); + if(match$0 && 39 === match$0[1]) + {junk(strm);return [0,[5,c]]} + throw [0,Error,cst$95]; + case 40: + junk(strm); + if(counter >= 50) + return caml_trampoline_return(maybe_comment,[0,strm]); + var counter$0=counter + 1 | 0; + return maybe_comment(counter$0,strm); + case 45:junk(strm);return neg_number(strm); + case 9: + case 10: + case 12: + case 13: + case 26: + case 32:junk(strm);continue; + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + junk(strm);reset_buffer(0);store(_g5_);return number(strm); + case 33: + case 35: + case 36: + case 37: + case 38: + case 42: + case 43: + case 47: + case 58: + case 60: + case 61: + case 62: + case 63: + case 64:switch$0 = 2;break + }} + else + {var _g7_=_g6_ - 26 | 0; + if(5 < _g7_ >>> 0) + switch$0 = 1; + else + switch(_g7_) + {case 4:switch$0 = 1;break;case 1:case 3:switch$0 = 2;break}}} + switch(switch$0) + {case 0:junk(strm);return [0,keyword_or_error(_g5_)]; + case 1:junk(strm);reset_buffer(0);store(_g5_);return ident(strm); + default:junk(strm);reset_buffer(0);store(_g5_);return ident2(strm)}}} + function maybe_comment(counter,strm) + {var match=peek$0(strm); + if(match && 42 === match[1]) + {junk(strm); + comment(strm); + if(counter >= 50) + return caml_trampoline_return(next_token$0,[0,strm]); + var counter$0=counter + 1 | 0; + return next_token$0(counter$0,strm)} + return [0,keyword_or_error(40)]} + function next_token(strm){return caml_trampoline(next_token$0(0,strm))} + function escape(strm) + {var match=peek$0(strm); + if(! match)throw Failure$0; + var _g2_=match[1]; + if(58 <= _g2_) + {var switcher=_g2_ - 110 | 0; + if(6 >= switcher >>> 0) + switch(switcher) + {case 0:junk(strm);return 10; + case 4:junk(strm);return 13; + case 6:junk(strm);return 9 + }} + else + if(48 <= _g2_) + {junk(strm); + var match$0=peek$0(strm); + if(match$0) + {var _g3_=match$0[1]; + if(9 >= _g3_ - 48 >>> 0) + {junk(strm); + var match$1=peek$0(strm); + if(match$1) + {var _g4_=match$1[1]; + if(9 >= _g4_ - 48 >>> 0) + {junk(strm); + return chr + ((((_g2_ - 48 | 0) * 100 | 0) + + + ((_g3_ - 48 | 0) * 10 | 0) + | + 0) + + + (_g4_ - 48 | 0) + | + 0)}} + throw [0,Error,cst$99]}} + throw [0,Error,cst$98]} + junk(strm); + return _g2_} + function comment(strm) + {a: + for(;;) + {var match=peek$0(strm); + if(! match)throw Failure$0; + var switcher=match[1] - 40 | 0; + if(2 >= switcher >>> 0) + switch(switcher) + {case 0: + junk(strm); + var match$0=peek$0(strm); + if(! match$0)throw Failure$0; + if(42 === match$0[1]){junk(strm);comment(strm);continue} + junk(strm); + continue; + case 1:break; + default: + junk(strm); + for(;;) + {var match$1=peek$0(strm); + if(! match$1)throw Failure$0; + var _g1_=match$1[1]; + if(41 === _g1_){junk(strm);return 0} + if(42 === _g1_){junk(strm);continue} + junk(strm); + continue a}} + junk(strm)}} + return function(input) + {return from(function(count){return next_token(input)})}} + var Stdlib_Genlex=[0,make_lexer]; + caml_register_global(824,Stdlib_Genlex,"Stdlib__Genlex"); + function MakeSeeded$0(H) + {var prng=[246,function(_g0_){return caml_call1(_cg_[2],0)}]; + function create(opt,initial_size) + {if(opt) + var sth=opt[1],random=sth; + else + var random=caml_call1(Stdlib_Hashtbl[17],0); + var x=16; + for(;;) + {if(initial_size > x && max_array_length >= (x * 2 | 0)) + {var x$0=x * 2 | 0,x=x$0;continue} + if(random) + var + _gY_=caml_obj_tag(prng), + _gZ_=250 === _gY_?prng[1]:246 === _gY_?force_lazy_block(prng):prng, + seed=caml_call1(_cg_[4],_gZ_); + else + var seed=0; + return [0,0,caml_make_vect(x,0),seed,x]}} + function clear(h) + {h[1] = 0; + var len=h[2].length - 1,_gW_=len - 1 | 0,_gV_=0; + if(_gW_ >= 0) + {var i=_gV_; + for(;;) + {caml_check_bound(h[2],i)[1 + i] = 0; + var _gX_=i + 1 | 0; + if(_gW_ !== i){var i=_gX_;continue} + break}} + return 0} + function reset(h) + {var len=h[2].length - 1; + return len === h[4] + ?clear(h) + :(h[1] = 0,h[2] = caml_make_vect(h[4],0),0)} + function copy(init) + {var _gS_=init[4],_gT_=init[3],_gU_=copy$1(init[2]); + return [0,init[1],_gU_,_gT_,_gS_]} + function key_index(h,hkey){return hkey & (h[2].length - 1 - 1 | 0)} + function clean(h) + {function do_bucket(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var hkey=param$0[1],rest=param$0[3],c=param$0[2]; + if(caml_call1(H[7],c)) + {var rest$0=param$0[3],c$0=param$0[2]; + return [0,hkey,c$0,do_bucket(rest$0)]} + h[1] = h[1] - 1 | 0; + var param$0=rest}} + var d=h[2],_gP_=d.length - 1 - 1 | 0,_gO_=0; + if(_gP_ >= 0) + {var i=_gO_; + for(;;) + {var _gQ_=do_bucket(caml_check_bound(d,i)[1 + i]); + caml_check_bound(d,i)[1 + i] = _gQ_; + var _gR_=i + 1 | 0; + if(_gP_ !== i){var i=_gR_;continue} + break}} + return 0} + function resize(h) + {var odata=h[2],osize=odata.length - 1,nsize=osize * 2 | 0; + clean(h); + var + _gH_=nsize < max_array_length?1:0, + _gI_=_gH_?(osize >>> 1 | 0) <= h[1]?1:0:_gH_; + if(_gI_) + {var ndata=caml_make_vect(nsize,0); + h[2] = ndata; + var + insert_bucket= + function(param) + {if(! param)return 0; + var rest=param[3],data=param[2],hkey=param[1]; + insert_bucket(rest); + var + nidx=key_index(h,hkey), + _gN_=[0,hkey,data,caml_check_bound(ndata,nidx)[1 + nidx]]; + caml_check_bound(ndata,nidx)[1 + nidx] = _gN_; + return 0}, + _gK_=osize - 1 | 0, + _gJ_=0; + if(_gK_ >= 0) + {var i=_gJ_; + for(;;) + {insert_bucket(caml_check_bound(odata,i)[1 + i]); + var _gM_=i + 1 | 0; + if(_gK_ !== i){var i=_gM_;continue} + break}} + var _gL_=0} + else + var _gL_=_gI_; + return _gL_} + function add(h,key,info) + {var + hkey=caml_call2(H[2],h[3],key), + i=key_index(h,hkey), + container=caml_call2(H[1],key,info), + bucket=[0,hkey,container,caml_check_bound(h[2],i)[1 + i]]; + caml_check_bound(h[2],i)[1 + i] = bucket; + h[1] = h[1] + 1 | 0; + var _gG_=h[2].length - 1 << 1 < h[1]?1:0; + return _gG_?resize(h):_gG_} + function remove(h,key) + {var hkey=caml_call2(H[2],h[3],key); + function remove_bucket(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var hk=param$0[1],next=param$0[3],c=param$0[2]; + if(hkey === hk) + {var match=caml_call2(H[3],c,key); + switch(match) + {case 0:h[1] = h[1] - 1 | 0;return next; + case 1:return [0,hk,c,remove_bucket(next)]; + default:h[1] = h[1] - 1 | 0;var param$0=next;continue}} + var next$0=param$0[3],c$0=param$0[2]; + return [0,hk,c$0,remove_bucket(next$0)]}} + var + i=key_index(h,hkey), + _gF_=remove_bucket(caml_check_bound(h[2],i)[1 + i]); + caml_check_bound(h[2],i)[1 + i] = _gF_; + return 0} + function find(h,key) + {var + hkey=caml_call2(H[2],h[3],key), + _gE_=key_index(h,hkey), + param$1=caml_check_bound(h[2],_gE_)[1 + _gE_], + param=param$1; + for(;;) + {if(! param)throw Not_found; + var hk=param[1],rest=param[3],c=param[2]; + if(hkey !== hk){var param$0=param[3],param=param$0;continue} + var match=caml_call2(H[3],c,key); + switch(match) + {case 0: + var match$0=caml_call1(H[4],c); + if(match$0){var d=match$0[1];return d} + var param=rest; + continue; + case 1:var param=rest;continue; + default:var param=rest;continue}}} + function find_opt(h,key) + {var + hkey=caml_call2(H[2],h[3],key), + _gD_=key_index(h,hkey), + param$1=caml_check_bound(h[2],_gD_)[1 + _gD_], + param=param$1; + for(;;) + {if(! param)return 0; + var hk=param[1],rest=param[3],c=param[2]; + if(hkey !== hk){var param$0=param[3],param=param$0;continue} + var match=caml_call2(H[3],c,key); + switch(match) + {case 0: + var d=caml_call1(H[4],c);if(d)return d;var param=rest;continue; + case 1:var param=rest;continue; + default:var param=rest;continue}}} + function find_all(h,key) + {var hkey=caml_call2(H[2],h[3],key); + function find_in_bucket(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var hk=param$0[1],rest=param$0[3],c=param$0[2]; + if(hkey !== hk){var param$1=param$0[3],param$0=param$1;continue} + var match=caml_call2(H[3],c,key); + switch(match) + {case 0: + var match$0=caml_call1(H[4],c); + if(match$0){var d=match$0[1];return [0,d,find_in_bucket(rest)]} + var param$0=rest; + continue; + case 1:var param$0=rest;continue; + default:var param$0=rest;continue}}} + var _gC_=key_index(h,hkey); + return find_in_bucket(caml_check_bound(h[2],_gC_)[1 + _gC_])} + function replace(h,key,info) + {var hkey=caml_call2(H[2],h[3],key); + function replace_bucket(param) + {var param$0=param; + for(;;) + {if(! param$0)throw Not_found; + var hk=param$0[1],next=param$0[3],c=param$0[2]; + if(hkey !== hk){var param$1=param$0[3],param$0=param$1;continue} + var match=caml_call2(H[3],c,key); + if(! match)return caml_call3(H[6],c,key,info); + var param$0=next}} + var i=key_index(h,hkey),l=caml_check_bound(h[2],i)[1 + i]; + try + {var _gA_=replace_bucket(l);return _gA_} + catch(_gB_) + {_gB_ = caml_wrap_exception(_gB_); + if(_gB_ !== Not_found)throw _gB_; + var container=caml_call2(H[1],key,info); + caml_check_bound(h[2],i)[1 + i] = [0,hkey,container,l]; + h[1] = h[1] + 1 | 0; + var _gz_=h[2].length - 1 << 1 < h[1]?1:0; + return _gz_?resize(h):_gz_}} + function mem(h,key) + {var + hkey=caml_call2(H[2],h[3],key), + _gy_=key_index(h,hkey), + param$1=caml_check_bound(h[2],_gy_)[1 + _gy_], + param=param$1; + for(;;) + {if(! param)return 0; + var hk=param[1],rest=param[3],c=param[2]; + if(hk !== hkey){var param$0=param[3],param=param$0;continue} + var match=caml_call2(H[3],c,key); + if(! match)return 1; + var param=rest}} + function iter$0(f,h) + {var d$0=h[2],_gw_=d$0.length - 1 - 1 | 0,_gv_=0; + if(_gw_ >= 0) + {var i=_gv_; + a: + for(;;) + {var param$0=caml_check_bound(d$0,i)[1 + i],param=param$0; + for(;;) + {if(param) + {var + rest=param[3], + c=param[2], + match=caml_call1(H[5],c), + match$0=caml_call1(H[4],c), + switch$0=0; + if(match && match$0) + {var d=match$0[1],k=match[1];caml_call2(f,k,d);switch$0 = 1} + var param=rest; + continue} + var _gx_=i + 1 | 0; + if(_gw_ !== i){var i=_gx_;continue a} + break} + break}} + return 0} + function fold(f,h,init) + {var d$0=h[2],accu$1=[0,init],_gs_=d$0.length - 1 - 1 | 0,_gr_=0; + if(_gs_ >= 0) + {var i=_gr_; + a: + for(;;) + {var + _gt_=accu$1[1], + b$0=caml_check_bound(d$0,i)[1 + i], + b=b$0, + accu=_gt_; + for(;;) + {if(b) + {var + rest=b[3], + c=b[2], + match=caml_call1(H[5],c), + match$0=caml_call1(H[4],c), + switch$0=0; + if(match && match$0) + {var d=match$0[1],k=match[1],accu$0=caml_call3(f,k,d,accu); + switch$0 = 1} + if(! switch$0)var accu$0=accu; + var b=rest,accu=accu$0; + continue} + accu$1[1] = accu; + var _gu_=i + 1 | 0; + if(_gs_ !== i){var i=_gu_;continue a} + break} + break}} + return accu$1[1]} + function filter_map_inplace(f,h) + {function do_bucket(param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var + rest=param$0[3], + c=param$0[2], + hk=param$0[1], + match=caml_call1(H[5],c), + match$0=caml_call1(H[4],c); + if(match && match$0) + {var d=match$0[1],k=match[1],match$1=caml_call2(f,k,d); + if(match$1) + {var new_d=match$1[1]; + caml_call3(H[6],c,k,new_d); + return [0,hk,c,do_bucket(rest)]} + var param$0=rest; + continue} + var param$0=rest}} + var d=h[2],_go_=d.length - 1 - 1 | 0,_gn_=0; + if(_go_ >= 0) + {var i=_gn_; + for(;;) + {var _gp_=do_bucket(caml_check_bound(d,i)[1 + i]); + caml_check_bound(d,i)[1 + i] = _gp_; + var _gq_=i + 1 | 0; + if(_go_ !== i){var i=_gq_;continue} + break}} + return 0} + function length(h){return h[1]} + function bucket_length(accu,param) + {var accu$0=accu,param$0=param; + for(;;) + {if(! param$0)return accu$0; + var + param$1=param$0[3], + accu$1=accu$0 + 1 | 0, + accu$0=accu$1, + param$0=param$1}} + function stats(h) + {var + _gj_=h[2], + _gk_=0, + mbl= + fold_left$3 + (function(m,b){return max$1(m,bucket_length(0,b))},_gk_,_gj_), + histo=caml_make_vect(mbl + 1 | 0,0), + _gl_=h[2]; + iter$5 + (function(b) + {var + l=bucket_length(0,b), + _gm_=caml_check_bound(histo,l)[1 + l] + 1 | 0; + caml_check_bound(histo,l)[1 + l] = _gm_; + return 0}, + _gl_); + return [0,h[1],h[2].length - 1,mbl,histo]} + function bucket_length_alive(accu,param) + {var accu$0=accu,param$0=param; + for(;;) + {if(! param$0)return accu$0; + var rest=param$0[3],c=param$0[2]; + if(caml_call1(H[7],c)) + {var accu$1=accu$0 + 1 | 0,accu$0=accu$1,param$0=rest;continue} + var param$1=param$0[3],param$0=param$1}} + function stats_alive(h) + {var + size=[0,0], + _gf_=h[2], + _gg_=0, + mbl= + fold_left$3 + (function(m,b){return max$1(m,bucket_length_alive(0,b))},_gg_,_gf_), + histo=caml_make_vect(mbl + 1 | 0,0), + _gh_=h[2]; + iter$5 + (function(b) + {var l=bucket_length_alive(0,b); + size[1] = size[1] + l | 0; + var _gi_=caml_check_bound(histo,l)[1 + l] + 1 | 0; + caml_check_bound(histo,l)[1 + l] = _gi_; + return 0}, + _gh_); + return [0,size[1],h[2].length - 1,mbl,histo]} + function to_seq(tbl) + {var tbl_data=tbl[2]; + function aux(i,buck,param) + {var i$0=i,buck$0=buck; + for(;;) + {if(! buck$0) + {if(i$0 === tbl_data.length - 1)return 0; + var + buck$1=caml_check_bound(tbl_data,i$0)[1 + i$0], + i$1=i$0 + 1 | 0, + i$0=i$1, + buck$0=buck$1; + continue} + var + next=buck$0[3], + c=buck$0[2], + match=caml_call1(H[5],c), + match$0=caml_call1(H[4],c); + if(match && match$0) + {var data=match$0[1],key=match[1]; + return [0, + [0,key,data], + function(_ge_){return aux(i$0,next,_ge_)}]} + var buck$0=next}} + var _gb_=0,_gc_=0; + return function(_gd_){return aux(_gc_,_gb_,_gd_)}} + function to_seq_keys(m) + {var _f9_=to_seq(m); + function _f__(_ga_){return _ga_[1]} + return function(_f$_){return map$1(_f__,_f9_,_f$_)}} + function to_seq_values(m) + {var _f5_=to_seq(m); + function _f6_(_f8_){return _f8_[2]} + return function(_f7_){return map$1(_f6_,_f5_,_f7_)}} + function add_seq(tbl,i) + {return iter + (function(param) + {var v=param[2],k=param[1];return add(tbl,k,v)}, + i)} + function replace_seq(tbl,i) + {return iter + (function(param) + {var v=param[2],k=param[1];return replace(tbl,k,v)}, + i)} + function of_seq(i){var tbl=create(0,16);replace_seq(tbl,i);return tbl} + return [0, + create, + clear, + reset, + copy, + add, + remove, + find, + find_opt, + find_all, + replace, + mem, + iter$0, + filter_map_inplace, + fold, + length, + stats, + to_seq, + to_seq_keys, + to_seq_values, + add_seq, + replace_seq, + of_seq, + clean, + stats_alive]} + function create$5(param){return caml_call1(_o_[1],1)} + function get_key$0(t){return caml_call2(_o_[3],t,0)} + function get_key_copy$0(t){return caml_call2(_o_[4],t,0)} + function set_key$0(t,k){return caml_call3(_o_[5],t,0,k)} + function unset_key$0(t){return caml_call2(_o_[6],t,0)} + function check_key$0(t){return caml_call2(_o_[7],t,0)} + function blit_key$0(t1,t2){return caml_call5(_o_[8],t1,0,t2,0,1)} + function get_data$1(t){return caml_call1(_o_[9],t)} + function get_data_copy(t){return caml_call1(_o_[10],t)} + function set_data(t,d){return caml_call2(_o_[11],t,d)} + function unset_data(t){return caml_call1(_o_[12],t)} + function check_data(t){return caml_call1(_o_[13],t)} + function blit_data(t1,t2){return caml_call2(_o_[14],t1,t2)} + function make$4(key,data) + {var eph=create$5(0);set_data(eph,data);set_key$0(eph,key);return eph} + function query(eph,key) + {var match=get_key$0(eph); + if(! match)return 0; + var k=match[1]; + return k === key?get_data$1(eph):0} + function MakeSeeded$1(H) + {function create(k,d) + {var c=create$5(0);set_data(c,d);set_key$0(c,k);return c} + var hash=H[2]; + function equal(c,k) + {var match=get_key$0(c); + if(! match)return 2; + var k$0=match[1]; + return caml_call2(H[1],k,k$0)?0:1} + function set_key_data(c,k,d) + {unset_data(c);set_key$0(c,k);return set_data(c,d)} + return MakeSeeded$0 + ([0, + create, + hash, + equal, + get_data$1, + get_key$0, + set_key_data, + check_key$0])} + function Make$2(H) + {var equal=H[1]; + function hash(seed,x){return caml_call1(H[2],x)} + var + include=MakeSeeded$1([0,equal,hash]), + clear=include[2], + reset=include[3], + copy=include[4], + add=include[5], + remove=include[6], + find=include[7], + find_opt=include[8], + find_all=include[9], + replace=include[10], + mem=include[11], + iter=include[12], + filter_map_inplace=include[13], + fold=include[14], + length=include[15], + stats=include[16], + to_seq=include[17], + to_seq_keys=include[18], + to_seq_values=include[19], + add_seq=include[20], + replace_seq=include[21], + clean=include[23], + stats_alive=include[24], + _f4_=include[1]; + function create(sz){return caml_call2(_f4_,_cQ_,sz)} + function of_seq(i) + {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} + return [0, + create, + clear, + reset, + copy, + add, + remove, + find, + find_opt, + find_all, + replace, + mem, + iter, + filter_map_inplace, + fold, + length, + stats, + to_seq, + to_seq_keys, + to_seq_values, + add_seq, + replace_seq, + of_seq, + clean, + stats_alive]} + function make$5(param){return [0,0]} + function add$1(b,k,d){var _f3_=b[1];b[1] = [0,make$4(k,d),_f3_];return 0} + function test_key(k,e) + {var match=get_key$0(e); + if(match){var x=match[1];if(x === k)return 1} + return 0} + function remove$0(b,k) + {var l=b[1],acc=0; + for(;;) + {if(! l)return 0; + var h=l[1],t=l[2]; + if(test_key(k,h)){b[1] = rev_append(acc,t);return 0} + var l$0=l[2],acc$0=[0,h,acc],l=l$0,acc=acc$0}} + function find$2(b,k) + {var + _f1_=b[1], + match=find_opt(function(_f2_){return test_key(k,_f2_)},_f1_); + if(! match)return 0; + var e=match[1]; + return get_data$1(e)} + function length$7(b){return length$1(b[1])} + function clear$3(b){b[1] = 0;return 0} + function create$6(param){return caml_call1(_o_[1],2)} + function get_key1(t){return caml_call2(_o_[3],t,0)} + function get_key1_copy(t){return caml_call2(_o_[4],t,0)} + function set_key1(t,k){return caml_call3(_o_[5],t,0,k)} + function unset_key1(t){return caml_call2(_o_[6],t,0)} + function check_key1(t){return caml_call2(_o_[7],t,0)} + function get_key2(t){return caml_call2(_o_[3],t,1)} + function get_key2_copy(t){return caml_call2(_o_[4],t,1)} + function set_key2(t,k){return caml_call3(_o_[5],t,1,k)} + function unset_key2(t){return caml_call2(_o_[6],t,1)} + function check_key2(t){return caml_call2(_o_[7],t,1)} + function blit_key1(t1,t2){return caml_call5(_o_[8],t1,0,t2,0,1)} + function blit_key2(t1,t2){return caml_call5(_o_[8],t1,1,t2,1,1)} + function blit_key12(t1,t2){return caml_call5(_o_[8],t1,0,t2,0,2)} + function get_data$2(t){return caml_call1(_o_[9],t)} + function get_data_copy$0(t){return caml_call1(_o_[10],t)} + function set_data$0(t,d){return caml_call2(_o_[11],t,d)} + function unset_data$0(t){return caml_call1(_o_[12],t)} + function check_data$0(t){return caml_call1(_o_[13],t)} + function blit_data$0(t1,t2){return caml_call2(_o_[14],t1,t2)} + function make$6(key1,key2,data) + {var eph=create$6(0); + set_data$0(eph,data); + set_key1(eph,key1); + set_key2(eph,key2); + return eph} + function query$0(eph,key1,key2) + {var match=get_key1(eph); + if(! match)return 0; + var k=match[1]; + if(k !== key1)return 0; + var match$0=get_key2(eph); + if(! match$0)return 0; + var k$0=match$0[1]; + return k$0 === key2?get_data$2(eph):0} + function MakeSeeded$2(H1,H2) + {function create(param,d) + {var k2=param[2],k1=param[1],c=create$6(0); + set_data$0(c,d); + set_key1(c,k1); + set_key2(c,k2); + return c} + function hash(seed,param) + {var + k2=param[2], + k1=param[1], + _f0_=caml_call2(H2[2],seed,k2) * 65599 | 0; + return caml_call2(H1[2],seed,k1) + _f0_ | 0} + function equal(c,param) + {var k2=param[2],k1=param[1],match=get_key1(c),match$0=get_key2(c); + if(match && match$0) + {var k2$0=match$0[1],k1$0=match[1]; + if(caml_call2(H1[1],k1,k1$0) && caml_call2(H2[1],k2,k2$0))return 0; + return 1} + return 2} + function get_key(c) + {var match=get_key1(c),match$0=get_key2(c); + if(match && match$0) + {var k2=match$0[1],k1=match[1];return [0,[0,k1,k2]]} + return 0} + function set_key_data(c,param,d) + {var k2=param[2],k1=param[1]; + unset_data$0(c); + set_key1(c,k1); + set_key2(c,k2); + return set_data$0(c,d)} + function check_key(c) + {var _fZ_=check_key1(c);return _fZ_?check_key2(c):_fZ_} + return MakeSeeded$0 + ([0,create,hash,equal,get_data$2,get_key,set_key_data,check_key])} + function Make$3(H1,H2) + {var equal=H2[1]; + function hash(seed,x){return caml_call1(H2[2],x)} + var equal$0=H1[1],_fX_=[0,equal,hash]; + function hash$0(seed,x){return caml_call1(H1[2],x)} + var + include=MakeSeeded$2([0,equal$0,hash$0],_fX_), + clear=include[2], + reset=include[3], + copy=include[4], + add=include[5], + remove=include[6], + find=include[7], + find_opt=include[8], + find_all=include[9], + replace=include[10], + mem=include[11], + iter=include[12], + filter_map_inplace=include[13], + fold=include[14], + length=include[15], + stats=include[16], + to_seq=include[17], + to_seq_keys=include[18], + to_seq_values=include[19], + add_seq=include[20], + replace_seq=include[21], + clean=include[23], + stats_alive=include[24], + _fY_=include[1]; + function create(sz){return caml_call2(_fY_,_cR_,sz)} + function of_seq(i) + {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} + return [0, + create, + clear, + reset, + copy, + add, + remove, + find, + find_opt, + find_all, + replace, + mem, + iter, + filter_map_inplace, + fold, + length, + stats, + to_seq, + to_seq_keys, + to_seq_values, + add_seq, + replace_seq, + of_seq, + clean, + stats_alive]} + function make$7(param){return [0,0]} + function add$2(b,k1,k2,d) + {var _fW_=b[1];b[1] = [0,make$6(k1,k2,d),_fW_];return 0} + function test_keys(k1,k2,e) + {var match=get_key1(e),match$0=get_key2(e); + if(match && match$0) + {var x2=match$0[1],x1=match[1];if(x1 === k1 && x2 === k2)return 1} + return 0} + function remove$1(b,k1,k2) + {var l=b[1],acc=0; + for(;;) + {if(! l)return 0; + var h=l[1],t=l[2]; + if(test_keys(k1,k2,h)){b[1] = rev_append(acc,t);return 0} + var l$0=l[2],acc$0=[0,h,acc],l=l$0,acc=acc$0}} + function find$3(b,k1,k2) + {var + _fU_=b[1], + match=find_opt(function(_fV_){return test_keys(k1,k2,_fV_)},_fU_); + if(! match)return 0; + var e=match[1]; + return get_data$2(e)} + function length$8(b){return length$1(b[1])} + function clear$4(b){b[1] = 0;return 0} + function create$7(n){return caml_call1(_o_[1],n)} + function length$9(k){return caml_call1(_o_[2],k)} + function get_key$1(t,n){return caml_call2(_o_[3],t,n)} + function get_key_copy$1(t,n){return caml_call2(_o_[4],t,n)} + function set_key$1(t,n,k){return caml_call3(_o_[5],t,n,k)} + function unset_key$1(t,n){return caml_call2(_o_[6],t,n)} + function check_key$1(t,n){return caml_call2(_o_[7],t,n)} + function blit_key$1(t1,o1,t2,o2,l) + {return caml_call5(_o_[8],t1,o1,t2,o2,l)} + function get_data$3(t){return caml_call1(_o_[9],t)} + function get_data_copy$1(t){return caml_call1(_o_[10],t)} + function set_data$1(t,d){return caml_call2(_o_[11],t,d)} + function unset_data$1(t){return caml_call1(_o_[12],t)} + function check_data$1(t){return caml_call1(_o_[13],t)} + function blit_data$1(t1,t2){return caml_call2(_o_[14],t1,t2)} + function make$8(keys,data) + {var l=keys.length - 1,eph=create$7(l); + set_data$1(eph,data); + var _fS_=l - 1 | 0,_fR_=0; + if(_fS_ >= 0) + {var i=_fR_; + for(;;) + {set_key$1(eph,i,caml_check_bound(keys,i)[1 + i]); + var _fT_=i + 1 | 0; + if(_fS_ !== i){var i=_fT_;continue} + break}} + return eph} + function query$1(eph,keys) + {var l=length$9(eph); + try + {if(l !== keys.length - 1)throw Exit; + var _fN_=l - 1 | 0,_fM_=0; + if(_fN_ >= 0) + {var i=_fM_; + for(;;) + {var match=get_key$1(eph,i); + if(! match)throw Exit; + var k=match[1]; + if(k !== caml_check_bound(keys,i)[1 + i])throw Exit; + var _fP_=i + 1 | 0; + if(_fN_ !== i){var i=_fP_;continue} + break}} + var _fO_=get_data$3(eph); + return _fO_} + catch(_fQ_) + {_fQ_ = caml_wrap_exception(_fQ_);if(_fQ_ === Exit)return 0;throw _fQ_}} + function MakeSeeded$3(H) + {function create(k,d) + {var c=create$7(k.length - 1); + set_data$1(c,d); + var _fK_=k.length - 1 - 1 | 0,_fJ_=0; + if(_fK_ >= 0) + {var i=_fJ_; + for(;;) + {set_key$1(c,i,caml_check_bound(k,i)[1 + i]); + var _fL_=i + 1 | 0; + if(_fK_ !== i){var i=_fL_;continue} + break}} + return c} + function hash(seed,k) + {var h=[0,0],_fF_=k.length - 1 - 1 | 0,_fE_=0; + if(_fF_ >= 0) + {var i=_fE_; + for(;;) + {var _fG_=h[1],_fH_=caml_check_bound(k,i)[1 + i]; + h[1] = (caml_call2(H[2],seed,_fH_) * 65599 | 0) + _fG_ | 0; + var _fI_=i + 1 | 0; + if(_fF_ !== i){var i=_fI_;continue} + break}} + return h[1]} + function equal(c,k) + {var len=k.length - 1,len$0=length$9(c); + if(len !== len$0)return 1; + var i$1=len - 1 | 0,i=i$1; + for(;;) + {if(0 > i)return 0; + var match=get_key$1(c,i); + if(! match)return 2; + var ki=match[1],_fD_=caml_check_bound(k,i)[1 + i]; + if(! caml_call2(H[1],_fD_,ki))return 1; + var i$0=i - 1 | 0,i=i$0}} + function get_key(c) + {var len=length$9(c); + if(0 === len)return [0,[0]]; + var match=get_key$1(c,0); + if(! match)return 0; + var k0=match[1],a=caml_make_vect(len,k0),i$1=len - 1 | 0,i=i$1; + for(;;) + {if(1 > i)return [0,a]; + var match$0=get_key$1(c,i); + if(! match$0)return 0; + var ki=match$0[1]; + caml_check_bound(a,i)[1 + i] = ki; + var i$0=i - 1 | 0,i=i$0}} + function set_key_data(c,k,d) + {unset_data$1(c); + var _fB_=k.length - 1 - 1 | 0,_fA_=0; + if(_fB_ >= 0) + {var i=_fA_; + for(;;) + {set_key$1(c,i,caml_check_bound(k,i)[1 + i]); + var _fC_=i + 1 | 0; + if(_fB_ !== i){var i=_fC_;continue} + break}} + return set_data$1(c,d)} + function check_key(c) + {var i$1=length$9(c) - 1 | 0,i=i$1; + for(;;) + {var _fx_=i < 0?1:0; + if(_fx_) + var _fy_=_fx_; + else + {var _fz_=check_key$1(c,i); + if(_fz_){var i$0=i - 1 | 0,i=i$0;continue} + var _fy_=_fz_} + return _fy_}} + return MakeSeeded$0 + ([0,create,hash,equal,get_data$3,get_key,set_key_data,check_key])} + function Make$4(H) + {var equal=H[1]; + function hash(seed,x){return caml_call1(H[2],x)} + var + include=MakeSeeded$3([0,equal,hash]), + clear=include[2], + reset=include[3], + copy=include[4], + add=include[5], + remove=include[6], + find=include[7], + find_opt=include[8], + find_all=include[9], + replace=include[10], + mem=include[11], + iter=include[12], + filter_map_inplace=include[13], + fold=include[14], + length=include[15], + stats=include[16], + to_seq=include[17], + to_seq_keys=include[18], + to_seq_values=include[19], + add_seq=include[20], + replace_seq=include[21], + clean=include[23], + stats_alive=include[24], + _fw_=include[1]; + function create(sz){return caml_call2(_fw_,_cS_,sz)} + function of_seq(i) + {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} + return [0, + create, + clear, + reset, + copy, + add, + remove, + find, + find_opt, + find_all, + replace, + mem, + iter, + filter_map_inplace, + fold, + length, + stats, + to_seq, + to_seq_keys, + to_seq_values, + add_seq, + replace_seq, + of_seq, + clean, + stats_alive]} + function make$9(param){return [0,0]} + function add$3(b,k,d){var _fv_=b[1];b[1] = [0,make$8(k,d),_fv_];return 0} + function test_keys$0(k,e) + {try + {if(length$9(e) !== k.length - 1)throw Exit; + var _fr_=k.length - 1 - 1 | 0,_fq_=0; + if(_fr_ >= 0) + {var i=_fq_; + for(;;) + {var match=get_key$1(e,i),switch$0=0; + if(match) + {var x=match[1]; + if(x === caml_check_bound(k,i)[1 + i]) + {var _ft_=i + 1 | 0; + if(_fr_ !== i){var i=_ft_;continue} + switch$0 = 1}} + if(! switch$0)throw Exit; + break}} + var _fs_=1; + return _fs_} + catch(_fu_) + {_fu_ = caml_wrap_exception(_fu_);if(_fu_ === Exit)return 0;throw _fu_}} + function remove$2(b,k) + {var l=b[1],acc=0; + for(;;) + {if(! l)return 0; + var h=l[1],t=l[2]; + if(test_keys$0(k,h)){b[1] = rev_append(acc,t);return 0} + var l$0=l[2],acc$0=[0,h,acc],l=l$0,acc=acc$0}} + function find$4(b,k) + {var + _fo_=b[1], + match=find_opt(function(_fp_){return test_keys$0(k,_fp_)},_fo_); + if(! match)return 0; + var e=match[1]; + return get_data$3(e)} + function length$10(b){return length$1(b[1])} + function clear$5(b){b[1] = 0;return 0} + var + Stdlib_Ephemeron= + [0, + [0, + create$5, + get_key$0, + get_key_copy$0, + set_key$0, + unset_key$0, + check_key$0, + blit_key$0, + get_data$1, + get_data_copy, + set_data, + unset_data, + check_data, + blit_data, + make$4, + query, + Make$2, + MakeSeeded$1, + [0,make$5,add$1,remove$0,find$2,length$7,clear$3]], + [0, + create$6, + get_key1, + get_key1_copy, + set_key1, + unset_key1, + check_key1, + get_key2, + get_key2_copy, + set_key2, + unset_key2, + check_key2, + blit_key1, + blit_key2, + blit_key12, + get_data$2, + get_data_copy$0, + set_data$0, + unset_data$0, + check_data$0, + blit_data$0, + make$6, + query$0, + Make$3, + MakeSeeded$2, + [0,make$7,add$2,remove$1,find$3,length$8,clear$4]], + [0, + create$7, + get_key$1, + get_key_copy$1, + set_key$1, + unset_key$1, + check_key$1, + blit_key$1, + get_data$3, + get_data_copy$1, + set_data$1, + unset_data$1, + check_data$1, + blit_data$1, + make$8, + query$1, + Make$4, + MakeSeeded$3, + [0,make$9,add$3,remove$2,find$4,length$10,clear$5]], + [0, + function(_fn_) + {return MakeSeeded$0 + ([0,_fn_[3],_fn_[1],_fn_[2],_fn_[5],_fn_[4],_fn_[6],_fn_[7]])}]]; + caml_register_global(825,Stdlib_Ephemeron,"Stdlib__Ephemeron"); + function generic_basename(is_dir_sep,current_dir_name,name) + {if(caml_string_equal(name,cst$100))return current_dir_name; + var n$3=caml_ml_string_length(name) - 1 | 0,n=n$3; + for(;;) + {if(0 > n)return sub$0(name,0,1); + if(caml_call2(is_dir_sep,name,n)){var n$0=n - 1 | 0,n=n$0;continue} + var p=n + 1 | 0,n$1=n; + for(;;) + {if(0 > n$1)return sub$0(name,0,p); + if(caml_call2(is_dir_sep,name,n$1)) + return sub$0(name,n$1 + 1 | 0,(p - n$1 | 0) - 1 | 0); + var n$2=n$1 - 1 | 0,n$1=n$2}}} + function generic_dirname(is_dir_sep,current_dir_name,name) + {if(caml_string_equal(name,cst$101))return current_dir_name; + var n$5=caml_ml_string_length(name) - 1 | 0,n=n$5; + for(;;) + {if(0 > n)return sub$0(name,0,1); + if(caml_call2(is_dir_sep,name,n)){var n$0=n - 1 | 0,n=n$0;continue} + var n$1=n; + for(;;) + {if(0 > n$1)return current_dir_name; + if(! caml_call2(is_dir_sep,name,n$1)) + {var n$2=n$1 - 1 | 0,n$1=n$2;continue} + var n$3=n$1; + for(;;) + {if(0 > n$3)return sub$0(name,0,1); + if(! caml_call2(is_dir_sep,name,n$3)) + return sub$0(name,0,n$3 + 1 | 0); + var n$4=n$3 - 1 | 0,n$3=n$4}}}} + function is_dir_sep(s,i){return 47 === caml_string_get(s,i)?1:0} + function is_relative(n) + {var + _fl_=caml_ml_string_length(n) < 1?1:0, + _fm_=_fl_ || (47 !== caml_string_get(n,0)?1:0); + return _fm_} + function is_implicit(n) + {var _fg_=is_relative(n); + if(_fg_) + {var + _fh_=caml_ml_string_length(n) < 2?1:0, + _fi_=_fh_ || caml_string_notequal(sub$0(n,0,2),cst$103); + if(_fi_) + var + _fj_=caml_ml_string_length(n) < 3?1:0, + _fk_=_fj_ || caml_string_notequal(sub$0(n,0,3),cst$102); + else + var _fk_=_fi_} + else + var _fk_=_fg_; + return _fk_} + function check_suffix(name,suff){return ends_with$0(suff,name)} + function chop_suffix_opt(suffix,filename) + {var + len_s=caml_ml_string_length(suffix), + len_f=caml_ml_string_length(filename); + if(len_s > len_f)return 0; + var r=sub$0(filename,len_f - len_s | 0,len_s); + return caml_string_equal(r,suffix) + ?[0,sub$0(filename,0,len_f - len_s | 0)] + :0} + try + {var _c1_=caml_sys_getenv(cst_TMPDIR),_cT_=_c1_} + catch(_ff_) + {_ff_ = caml_wrap_exception(_ff_); + if(_ff_ !== Not_found)throw _ff_; + var _cT_=cst_tmp} + function quote(s) + {var l=caml_ml_string_length(s),b=create$2(l + 20 | 0); + add_char(b,39); + var _fd_=l - 1 | 0,_fc_=0; + if(_fd_ >= 0) + {var i=_fc_; + for(;;) + {if(39 === caml_string_get(s,i)) + add_string(b,quotequote); + else + add_char(b,caml_string_get(s,i)); + var _fe_=i + 1 | 0; + if(_fd_ !== i){var i=_fe_;continue} + break}} + add_char(b,39); + return contents(b)} + function quote_command(cmd,stdin,stdout,stderr,args) + {if(stderr) + var + f=stderr[1], + _e8_=caml_equal(stderr,stdout)?cst_2_1:cat(cst_2,quote(f)), + _e9_=_e8_; + else + var _e9_=cst$109; + if(stdout) + var f$0=stdout[1],_e__=cat(cst$104,quote(f$0)); + else + var _e__=cst$108; + var _e$_=cat(_e__,_e9_); + if(stdin) + var f$1=stdin[1],_fa_=cat(cst$105,quote(f$1)); + else + var _fa_=cst$107; + var _fb_=cat(_fa_,_e$_); + return cat(concat$1(cst$106,map$4(quote,[0,cmd,args])),_fb_)} + function basename(_e7_) + {return generic_basename(is_dir_sep,current_dir_name,_e7_)} + function dirname(_e6_) + {return generic_dirname(is_dir_sep,current_dir_name,_e6_)} + var + Unix= + [0, + null$0, + current_dir_name, + parent_dir_name, + dir_sep, + is_dir_sep, + is_relative, + is_implicit, + check_suffix, + chop_suffix_opt, + _cT_, + quote, + quote_command, + basename, + dirname]; + function is_dir_sep$0(s,i) + {var c=caml_string_get(s,i),_e3_=47 === c?1:0; + if(_e3_) + var _e4_=_e3_; + else + var _e5_=92 === c?1:0,_e4_=_e5_ || (58 === c?1:0); + return _e4_} + function is_relative$0(n) + {var + _eX_=caml_ml_string_length(n) < 1?1:0, + _eY_=_eX_ || (47 !== caml_string_get(n,0)?1:0); + if(_eY_) + {var + _eZ_=caml_ml_string_length(n) < 1?1:0, + _e0_=_eZ_ || (92 !== caml_string_get(n,0)?1:0); + if(_e0_) + var + _e1_=caml_ml_string_length(n) < 2?1:0, + _e2_=_e1_ || (58 !== caml_string_get(n,1)?1:0); + else + var _e2_=_e0_} + else + var _e2_=_eY_; + return _e2_} + function is_implicit$0(n) + {var _eO_=is_relative$0(n); + if(_eO_) + {var + _eP_=caml_ml_string_length(n) < 2?1:0, + _eQ_=_eP_ || caml_string_notequal(sub$0(n,0,2),cst$113); + if(_eQ_) + {var + _eR_=caml_ml_string_length(n) < 2?1:0, + _eS_=_eR_ || caml_string_notequal(sub$0(n,0,2),cst$112); + if(_eS_) + {var + _eT_=caml_ml_string_length(n) < 3?1:0, + _eU_=_eT_ || caml_string_notequal(sub$0(n,0,3),cst$111); + if(_eU_) + var + _eV_=caml_ml_string_length(n) < 3?1:0, + _eW_=_eV_ || caml_string_notequal(sub$0(n,0,3),cst$110); + else + var _eW_=_eU_} + else + var _eW_=_eS_} + else + var _eW_=_eQ_} + else + var _eW_=_eO_; + return _eW_} + function check_suffix$0(name,suff) + {var _eL_=caml_ml_string_length(suff) <= caml_ml_string_length(name)?1:0; + if(_eL_) + var + s= + sub$0 + (name, + caml_ml_string_length(name) - caml_ml_string_length(suff) | 0, + caml_ml_string_length(suff)), + _eM_=lowercase_ascii$1(suff), + _eN_=caml_string_equal(lowercase_ascii$1(s),_eM_); + else + var _eN_=_eL_; + return _eN_} + function chop_suffix_opt$0(suffix,filename) + {var + len_s=caml_ml_string_length(suffix), + len_f=caml_ml_string_length(filename); + if(len_s > len_f)return 0; + var + r=sub$0(filename,len_f - len_s | 0,len_s), + _eK_=lowercase_ascii$1(suffix); + return caml_string_equal(lowercase_ascii$1(r),_eK_) + ?[0,sub$0(filename,0,len_f - len_s | 0)] + :0} + try + {var _c0_=caml_sys_getenv(cst_TEMP),temp_dir_name=_c0_} + catch(_eJ_) + {_eJ_ = caml_wrap_exception(_eJ_); + if(_eJ_ !== Not_found)throw _eJ_; + var temp_dir_name=cst$114} + function quote$0(s) + {var l=caml_ml_string_length(s),b=create$2(l + 20 | 0); + add_char(b,34); + function add_bs(n) + {var _eH_=1; + if(n >= 1) + {var j=_eH_; + for(;;) + {add_char(b,92); + var _eI_=j + 1 | 0; + if(n !== j){var j=_eI_;continue} + break}} + return 0} + function loop$0(counter,i) + {var i$0=i; + for(;;) + {if(i$0 === l)return add_char(b,34); + var c=caml_string_get(s,i$0); + if(34 === c) + {var _eF_=0; + if(counter >= 50) + return caml_trampoline_return(loop_bs,[0,_eF_,i$0]); + var counter$1=counter + 1 | 0; + return loop_bs(counter$1,_eF_,i$0)} + if(92 !== c){add_char(b,c);var i$1=i$0 + 1 | 0,i$0=i$1;continue} + var _eG_=0; + if(counter >= 50) + return caml_trampoline_return(loop_bs,[0,_eG_,i$0]); + var counter$0=counter + 1 | 0; + return loop_bs(counter$0,_eG_,i$0)}} + function loop_bs(counter,n,i) + {var n$0=n,i$0=i; + for(;;) + {if(i$0 === l){add_char(b,34);return add_bs(n$0)} + var match=caml_string_get(s,i$0); + if(34 === match) + {add_bs((2 * n$0 | 0) + 1 | 0); + add_char(b,34); + var _eE_=i$0 + 1 | 0; + if(counter >= 50)return caml_trampoline_return(loop$0,[0,_eE_]); + var counter$1=counter + 1 | 0; + return loop$0(counter$1,_eE_)} + if(92 === match) + {var i$1=i$0 + 1 | 0,n$1=n$0 + 1 | 0,n$0=n$1,i$0=i$1;continue} + add_bs(n$0); + if(counter >= 50)return caml_trampoline_return(loop$0,[0,i$0]); + var counter$0=counter + 1 | 0; + return loop$0(counter$0,i$0)}} + function loop(i){return caml_trampoline(loop$0(0,i))} + loop(0); + return contents(b)} + function quote_cmd_filename(f) + {if(! contains$0(f,34) && ! contains$0(f,37)) + return contains$0(f,32)?cat(cst$116,cat(f,cst$115)):f; + return failwith(cat(cst_Filename_quote_command_bad,f))} + function quote_command$0(cmd,stdin,stdout,stderr,args) + {if(stderr) + var + f=stderr[1], + _ev_= + caml_equal(stderr,stdout) + ?cst_2_1$0 + :cat(cst_2$0,quote_cmd_filename(f)), + _ew_=_ev_; + else + var _ew_=cst$125; + var _ex_=[0,_ew_,_cU_]; + if(stdout) + var f$0=stdout[1],_ey_=cat(cst$117,quote_cmd_filename(f$0)); + else + var _ey_=cst$124; + var _ez_=[0,_ey_,_ex_]; + if(stdin) + var f$1=stdin[1],_eA_=cat(cst$118,quote_cmd_filename(f$1)); + else + var _eA_=cst$123; + var + s=concat$1(cst$119,map$4(quote$0,args)), + b=create$2(caml_ml_string_length(s) + 20 | 0), + _eB_=[0,_eA_,_ez_]; + iter$4 + (function(c) + {var switch$0=0; + if(62 <= c) + {var _eD_=c - 63 | 0; + if(60 < _eD_ >>> 0) + {if(62 > _eD_)switch$0 = 1} + else + if(31 === _eD_)switch$0 = 1} + else + if(42 <= c) + {if(60 === c)switch$0 = 1} + else + if(33 <= c) + switch(c - 33 | 0) + {case 2:case 3:case 6:break;default:switch$0 = 1} + return switch$0?(add_char(b,94),add_char(b,c)):add_char(b,c)}, + s); + var _eC_=[0,cst$120,[0,contents(b),_eB_]]; + return concat$1(cst$122,[0,cst$121,[0,quote_cmd_filename(cmd),_eC_]])} + function drive_and_path(s) + {var _er_=2 <= caml_ml_string_length(s)?1:0; + if(_er_) + {var param=caml_string_get(s,0),switch$0=0; + if(91 <= param) + {if(25 >= param - 97 >>> 0)switch$0 = 1} + else + if(65 <= param)switch$0 = 1; + var _es_=switch$0?1:0,_et_=_es_?58 === caml_string_get(s,1)?1:0:_es_} + else + var _et_=_er_; + if(! _et_)return [0,cst$126,s]; + var _eu_=sub$0(s,2,caml_ml_string_length(s) - 2 | 0); + return [0,sub$0(s,0,2),_eu_]} + function dirname$0(s) + {var + match=drive_and_path(s), + path=match[2], + drive=match[1], + dir=generic_dirname(is_dir_sep$0,current_dir_name$0,path); + return cat(drive,dir)} + function basename$0(s) + {var match=drive_and_path(s),path=match[2]; + return generic_basename(is_dir_sep$0,current_dir_name$0,path)} + var + Win32= + [0, + null$1, + current_dir_name$0, + parent_dir_name$0, + dir_sep$0, + is_dir_sep$0, + is_relative$0, + is_implicit$0, + check_suffix$0, + chop_suffix_opt$0, + temp_dir_name, + quote$0, + quote_command$0, + basename$0, + dirname$0]; + function basename$1(_eq_) + {return generic_basename(is_dir_sep$0,current_dir_name$1,_eq_)} + function dirname$1(_ep_) + {return generic_dirname(is_dir_sep$0,current_dir_name$1,_ep_)} + var + Cygwin= + [0, + null$2, + current_dir_name$1, + parent_dir_name$1, + dir_sep$1, + is_dir_sep$0, + is_relative$0, + is_implicit$0, + check_suffix$0, + chop_suffix_opt$0, + _cT_, + quote, + quote_command, + basename$1, + dirname$1], + Sysdeps= + caml_string_notequal(os_type,cst_Cygwin) + ?caml_string_notequal(os_type,cst_Win32)?Unix:Win32 + :Cygwin, + null$3=Sysdeps[1], + current_dir_name$2=Sysdeps[2], + parent_dir_name$2=Sysdeps[3], + dir_sep$2=Sysdeps[4], + is_dir_sep$1=Sysdeps[5], + is_relative$1=Sysdeps[6], + is_implicit$1=Sysdeps[7], + check_suffix$1=Sysdeps[8], + chop_suffix_opt$1=Sysdeps[9], + temp_dir_name$0=Sysdeps[10], + quote$1=Sysdeps[11], + quote_command$1=Sysdeps[12], + basename$2=Sysdeps[13], + dirname$2=Sysdeps[14]; + function concat$4(dirname,filename) + {var l=caml_ml_string_length(dirname); + if(0 !== l && ! is_dir_sep$1(dirname,l - 1 | 0)) + return cat(dirname,cat(dir_sep$2,filename)); + return cat(dirname,filename)} + function chop_suffix(name,suff) + {return check_suffix$1(name,suff) + ?sub$0 + (name, + 0, + caml_ml_string_length(name) - caml_ml_string_length(suff) | 0) + :invalid_arg(cst_Filename_chop_suffix)} + function extension_len(name) + {var i$4=caml_ml_string_length(name) - 1 | 0,i$1=i$4; + for(;;) + {if(0 <= i$1 && ! is_dir_sep$1(name,i$1)) + {if(46 !== caml_string_get(name,i$1)) + {var i$3=i$1 - 1 | 0,i$1=i$3;continue} + var i$2=i$1 - 1 | 0,i=i$2; + for(;;) + {if(0 <= i && ! is_dir_sep$1(name,i)) + {if(46 !== caml_string_get(name,i)) + return caml_ml_string_length(name) - i$1 | 0; + var i$0=i - 1 | 0,i=i$0; + continue} + return 0}} + return 0}} + function extension(name) + {var l=extension_len(name); + return 0 === l?cst$127:sub$0(name,caml_ml_string_length(name) - l | 0,l)} + function chop_extension(name) + {var l=extension_len(name); + return 0 === l + ?invalid_arg(cst_Filename_chop_extension) + :sub$0(name,0,caml_ml_string_length(name) - l | 0)} + function remove_extension(name) + {var l=extension_len(name); + return 0 === l?name:sub$0(name,0,caml_ml_string_length(name) - l | 0)} + var prng$0=[246,function(_eo_){return caml_call1(_cg_[2],0)}]; + function temp_file_name(temp_dir,prefix,suffix) + {var + _em_=caml_obj_tag(prng$0), + _en_= + 250 === _em_?prng$0[1]:246 === _em_?force_lazy_block(prng$0):prng$0, + rnd=caml_call1(_cg_[4],_en_) & 16777215; + return concat$4(temp_dir,caml_call3(sprintf(_cV_),prefix,rnd,suffix))} + var current_temp_dir_name=[0,temp_dir_name$0]; + function set_temp_dir_name(s){current_temp_dir_name[1] = s;return 0} + function get_temp_dir_name(param){return current_temp_dir_name[1]} + function temp_file(opt,prefix,suffix) + {if(opt) + var sth=opt[1],temp_dir=sth; + else + var temp_dir=current_temp_dir_name[1]; + function try_name(counter) + {var counter$0=counter; + for(;;) + {var name=temp_file_name(temp_dir,prefix,suffix); + try + {runtime.caml_sys_close(caml_sys_open(name,_cW_,384));return name} + catch(e) + {e = caml_wrap_exception(e); + if(e[1] !== Sys_error)throw e; + if(1000 <= counter$0)throw e; + var counter$1=counter$0 + 1 | 0,counter$0=counter$1; + continue}}} + return try_name(0)} + function open_temp_file(opt,_ek_,_ej_,prefix,suffix) + {if(opt)var sth=opt[1],mode=sth;else var mode=_cX_; + if(_ek_)var sth$0=_ek_[1],perms=sth$0;else var perms=384; + if(_ej_) + var sth$1=_ej_[1],temp_dir=sth$1; + else + var temp_dir=current_temp_dir_name[1]; + function try_name(counter) + {var counter$0=counter; + for(;;) + {var name=temp_file_name(temp_dir,prefix,suffix); + try + {var _el_=[0,name,open_gen([0,1,[0,3,[0,5,mode]]],perms,name)]; + return _el_} + catch(e) + {e = caml_wrap_exception(e); + if(e[1] !== Sys_error)throw e; + if(1000 <= counter$0)throw e; + var counter$1=counter$0 + 1 | 0,counter$0=counter$1; + continue}}} + return try_name(0)} + var + Stdlib_Filename= + [0, + current_dir_name$2, + parent_dir_name$2, + dir_sep$2, + concat$4, + is_relative$1, + is_implicit$1, + check_suffix$1, + chop_suffix, + chop_suffix_opt$1, + extension, + remove_extension, + chop_extension, + basename$2, + dirname$2, + null$3, + temp_file, + open_temp_file, + get_temp_dir_name, + set_temp_dir_name, + temp_dir_name$0, + quote$1, + quote_command$1]; + caml_register_global(826,Stdlib_Filename,"Stdlib__Filename"); + function add$4(x,y){return [254,x[1] + y[1],x[2] + y[2]]} + function sub$4(x,y){return [254,x[1] - y[1],x[2] - y[2]]} + function neg(x){return [254,- x[1],- x[2]]} + function conj(x){return [254,x[1],- x[2]]} + function mul(x,y) + {return [254,x[1] * y[1] - x[2] * y[2],x[1] * y[2] + x[2] * y[1]]} + function div(x,y) + {if(Math.abs(y[2]) <= Math.abs(y[1])) + {var r=y[2] / y[1],d=y[1] + r * y[2]; + return [254,(x[1] + r * x[2]) / d,(x[2] - r * x[1]) / d]} + var r$0=y[1] / y[2],d$0=y[2] + r$0 * y[1]; + return [254,(r$0 * x[1] + x[2]) / d$0,(r$0 * x[2] - x[1]) / d$0]} + function inv(x){return div(one$4,x)} + function norm2(x){return x[1] * x[1] + x[2] * x[2]} + function norm(x) + {var r=Math.abs(x[1]),i=Math.abs(x[2]); + if(r == 0.)return i; + if(i == 0.)return r; + if(i <= r){var q=i / r;return r * Math.sqrt(1. + q * q)} + var q$0=r / i; + return i * Math.sqrt(1. + q$0 * q$0)} + function arg(x){return Math.atan2(x[2],x[1])} + function polar(n,a){return [254,Math.cos(a) * n,Math.sin(a) * n]} + function sqrt(x) + {if(x[1] == 0. && x[2] == 0.)return _cY_; + var r=Math.abs(x[1]),i=Math.abs(x[2]); + if(i <= r) + var + q=i / r, + w=Math.sqrt(r) * Math.sqrt(0.5 * (1. + Math.sqrt(1. + q * q))); + else + var + q$0=r / i, + w=Math.sqrt(i) * Math.sqrt(0.5 * (q$0 + Math.sqrt(1. + q$0 * q$0))); + if(0. <= x[1])return [254,w,0.5 * x[2] / w]; + var w$0=0. <= x[2]?w:- w; + return [254,0.5 * i / w,w$0]} + function exp(x) + {var e=Math.exp(x[1]);return [254,e * Math.cos(x[2]),e * Math.sin(x[2])]} + function log(x) + {var _ei_=Math.atan2(x[2],x[1]);return [254,Math.log(norm(x)),_ei_]} + function pow(x,y){return exp(mul(y,log(x)))} + var + Stdlib_Complex= + [0, + zero$4, + one$4, + i, + neg, + conj, + add$4, + sub$4, + mul, + inv, + div, + sqrt, + norm2, + norm, + arg, + polar, + exp, + log, + pow]; + caml_register_global(827,Stdlib_Complex,"Stdlib__Complex"); + var + Stdlib_ArrayLabels= [0, make_float, - init, - make_matrix, + init$3, create_matrix, - append, - concat, - sub, - copy, - fill, - blit, - to_list, + create_matrix, + append$1, + concat$2, + sub$1, + copy$1, + fill$0, + blit$1, + to_list$1, of_list, - iter, - iteri, - map, - mapi, - fold_left, - fold_left_map, - fold_right, - iter2, - map2, - for_all, - exists, - for_all2, - exists2, - mem, - memq, - find_opt, - find_map, - split, - combine, + iter$5, + iteri$3, + map$7, + mapi$3, + fold_left$3, + fold_left_map$0, + fold_right$2, + iter2$1, + map2$1, + for_all$3, + exists$3, + for_all2$1, + exists2$1, + mem$0, + memq$0, + find_opt$0, + find_map$1, + split$0, + combine$0, sort, - stable_sort, - fast_sort, - to_seq, - to_seqi, - of_seq, + fast_sort$0, + fast_sort$0, + to_seq$4, + to_seqi$1, + of_seq$2, Floatarray]; - runtime.caml_register_global(1, Stdlib_ArrayLabels, "Stdlib__ArrayLabels"); - return; - } - (globalThis)); - -//# 25970 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - global_data = runtime.caml_get_global_data(), - Stdlib_List = global_data.Stdlib__List, - length = Stdlib_List[1], - compare_lengths = Stdlib_List[2], - compare_length_with = Stdlib_List[3], - cons = Stdlib_List[4], - hd = Stdlib_List[5], - tl = Stdlib_List[6], - nth = Stdlib_List[7], - nth_opt = Stdlib_List[8], - rev = Stdlib_List[9], - init = Stdlib_List[10], - append = Stdlib_List[11], - rev_append = Stdlib_List[12], - concat = Stdlib_List[13], - flatten = Stdlib_List[14], - equal = Stdlib_List[15], - compare = Stdlib_List[16], - iter = Stdlib_List[17], - iteri = Stdlib_List[18], - map = Stdlib_List[19], - mapi = Stdlib_List[20], - rev_map = Stdlib_List[21], - filter_map = Stdlib_List[22], - concat_map = Stdlib_List[23], - fold_left_map = Stdlib_List[24], - fold_left = Stdlib_List[25], - fold_right = Stdlib_List[26], - iter2 = Stdlib_List[27], - map2 = Stdlib_List[28], - rev_map2 = Stdlib_List[29], - fold_left2 = Stdlib_List[30], - fold_right2 = Stdlib_List[31], - for_all = Stdlib_List[32], - exists = Stdlib_List[33], - for_all2 = Stdlib_List[34], - exists2 = Stdlib_List[35], - mem = Stdlib_List[36], - memq = Stdlib_List[37], - find = Stdlib_List[38], - find_opt = Stdlib_List[39], - find_map = Stdlib_List[40], - filter = Stdlib_List[41], - find_all = Stdlib_List[42], - filteri = Stdlib_List[43], - partition = Stdlib_List[44], - partition_map = Stdlib_List[45], - assoc = Stdlib_List[46], - assoc_opt = Stdlib_List[47], - assq = Stdlib_List[48], - assq_opt = Stdlib_List[49], - mem_assoc = Stdlib_List[50], - mem_assq = Stdlib_List[51], - remove_assoc = Stdlib_List[52], - remove_assq = Stdlib_List[53], - split = Stdlib_List[54], - combine = Stdlib_List[55], - sort = Stdlib_List[56], - stable_sort = Stdlib_List[57], - fast_sort = Stdlib_List[58], - sort_uniq = Stdlib_List[59], - merge = Stdlib_List[60], - to_seq = Stdlib_List[61], - of_seq = Stdlib_List[62], - Stdlib_ListLabels = + caml_register_global(828,Stdlib_ArrayLabels,"Stdlib__ArrayLabels"); + var + Stdlib_ListLabels= [0, - length, + length$1, compare_lengths, compare_length_with, - cons, + cons$0, hd, tl, nth, nth_opt, rev, - init, + init$0, append, rev_append, - concat, flatten, - equal, - compare, - iter, - iteri, - map, - mapi, + flatten, + equal$6, + compare$6, + iter$2, + iteri$0, + map$4, + mapi$0, rev_map, - filter_map, + filter_map$0, concat_map, fold_left_map, - fold_left, + fold_left$0, fold_right, - iter2, - map2, + iter2$0, + map2$0, rev_map2, - fold_left2, + fold_left2$0, fold_right2, - for_all, - exists, - for_all2, - exists2, + for_all$0, + exists$0, + for_all2$0, + exists2$0, mem, memq, - find, + find$0, find_opt, - find_map, - filter, + find_map$0, + find_all, find_all, filteri, - partition, - partition_map, + partition$0, + partition_map$0, assoc, assoc_opt, assq, @@ -28671,142 +29004,41 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ remove_assq, split, combine, - sort, - stable_sort, + fast_sort, + fast_sort, fast_sort, sort_uniq, merge, - to_seq, + to_seq$1, of_seq]; - runtime.caml_register_global(1, Stdlib_ListLabels, "Stdlib__ListLabels"); - return; - } - (globalThis)); - -//# 26110 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - global_data = runtime.caml_get_global_data(), - Stdlib_Bytes = global_data.Stdlib__Bytes, - make = Stdlib_Bytes[1], - init = Stdlib_Bytes[2], - empty = Stdlib_Bytes[3], - copy = Stdlib_Bytes[4], - of_string = Stdlib_Bytes[5], - to_string = Stdlib_Bytes[6], - sub = Stdlib_Bytes[7], - sub_string = Stdlib_Bytes[8], - extend = Stdlib_Bytes[9], - fill = Stdlib_Bytes[10], - blit = Stdlib_Bytes[11], - blit_string = Stdlib_Bytes[12], - concat = Stdlib_Bytes[13], - cat = Stdlib_Bytes[14], - iter = Stdlib_Bytes[15], - iteri = Stdlib_Bytes[16], - map = Stdlib_Bytes[17], - mapi = Stdlib_Bytes[18], - fold_left = Stdlib_Bytes[19], - fold_right = Stdlib_Bytes[20], - for_all = Stdlib_Bytes[21], - exists = Stdlib_Bytes[22], - trim = Stdlib_Bytes[23], - escaped = Stdlib_Bytes[24], - index = Stdlib_Bytes[25], - index_opt = Stdlib_Bytes[26], - rindex = Stdlib_Bytes[27], - rindex_opt = Stdlib_Bytes[28], - index_from = Stdlib_Bytes[29], - index_from_opt = Stdlib_Bytes[30], - rindex_from = Stdlib_Bytes[31], - rindex_from_opt = Stdlib_Bytes[32], - contains = Stdlib_Bytes[33], - contains_from = Stdlib_Bytes[34], - rcontains_from = Stdlib_Bytes[35], - uppercase = Stdlib_Bytes[36], - lowercase = Stdlib_Bytes[37], - capitalize = Stdlib_Bytes[38], - uncapitalize = Stdlib_Bytes[39], - uppercase_ascii = Stdlib_Bytes[40], - lowercase_ascii = Stdlib_Bytes[41], - capitalize_ascii = Stdlib_Bytes[42], - uncapitalize_ascii = Stdlib_Bytes[43], - compare = Stdlib_Bytes[44], - equal = Stdlib_Bytes[45], - starts_with = Stdlib_Bytes[46], - ends_with = Stdlib_Bytes[47], - unsafe_to_string = Stdlib_Bytes[48], - unsafe_of_string = Stdlib_Bytes[49], - split_on_char = Stdlib_Bytes[50], - to_seq = Stdlib_Bytes[51], - to_seqi = Stdlib_Bytes[52], - of_seq = Stdlib_Bytes[53], - get_utf_8_uchar = Stdlib_Bytes[54], - set_utf_8_uchar = Stdlib_Bytes[55], - is_valid_utf_8 = Stdlib_Bytes[56], - get_utf_16be_uchar = Stdlib_Bytes[57], - set_utf_16be_uchar = Stdlib_Bytes[58], - is_valid_utf_16be = Stdlib_Bytes[59], - get_utf_16le_uchar = Stdlib_Bytes[60], - set_utf_16le_uchar = Stdlib_Bytes[61], - is_valid_utf_16le = Stdlib_Bytes[62], - get_uint8 = Stdlib_Bytes[63], - get_int8 = Stdlib_Bytes[64], - get_uint16_ne = Stdlib_Bytes[65], - get_uint16_be = Stdlib_Bytes[66], - get_uint16_le = Stdlib_Bytes[67], - get_int16_ne = Stdlib_Bytes[68], - get_int16_be = Stdlib_Bytes[69], - get_int16_le = Stdlib_Bytes[70], - get_int32_ne = Stdlib_Bytes[71], - get_int32_be = Stdlib_Bytes[72], - get_int32_le = Stdlib_Bytes[73], - get_int64_ne = Stdlib_Bytes[74], - get_int64_be = Stdlib_Bytes[75], - get_int64_le = Stdlib_Bytes[76], - set_uint8 = Stdlib_Bytes[77], - set_int8 = Stdlib_Bytes[78], - set_uint16_ne = Stdlib_Bytes[79], - set_uint16_be = Stdlib_Bytes[80], - set_uint16_le = Stdlib_Bytes[81], - set_int16_ne = Stdlib_Bytes[82], - set_int16_be = Stdlib_Bytes[83], - set_int16_le = Stdlib_Bytes[84], - set_int32_ne = Stdlib_Bytes[85], - set_int32_be = Stdlib_Bytes[86], - set_int32_le = Stdlib_Bytes[87], - set_int64_ne = Stdlib_Bytes[88], - set_int64_be = Stdlib_Bytes[89], - set_int64_le = Stdlib_Bytes[90], - Stdlib_BytesLabels = + caml_register_global(829,Stdlib_ListLabels,"Stdlib__ListLabels"); + var + Stdlib_BytesLabels= [0, - make, - init, - empty, + make$0, + init$1, + empty$0, copy, - of_string, - to_string, + to_bytes, + of_bytes, sub, sub_string, extend, fill, blit, - blit_string, - concat, - cat, - iter, - iteri, - map, - mapi, - fold_left, - fold_right, - for_all, - exists, + blit$0, + concat$0, + cat$0, + iter$3, + iteri$1, + map$5, + mapi$1, + fold_left$1, + fold_right$0, + for_all$1, + exists$1, trim, - escaped, + escaped$0, index, index_opt, rindex, @@ -28818,24 +29050,24 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ contains, contains_from, rcontains_from, - uppercase, - lowercase, + uppercase$0, + lowercase$0, capitalize, uncapitalize, - uppercase_ascii, - lowercase_ascii, + uppercase_ascii$0, + lowercase_ascii$0, capitalize_ascii, uncapitalize_ascii, - compare, - equal, + compare$8, + equal$8, starts_with, ends_with, unsafe_to_string, unsafe_of_string, split_on_char, - to_seq, + to_seq$2, to_seqi, - of_seq, + of_seq$0, get_utf_8_uchar, set_utf_8_uchar, is_valid_utf_8, @@ -28862,8 +29094,8 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ set_uint8, set_int8, set_uint16_ne, - set_uint16_be, - set_uint16_le, + set_int16_be, + set_int16_le, set_int16_ne, set_int16_be, set_int16_le, @@ -28873,228 +29105,700 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ set_int64_ne, set_int64_be, set_int64_le]; - runtime.caml_register_global(1, Stdlib_BytesLabels, "Stdlib__BytesLabels"); - return; - } - (globalThis)); - -//# 26306 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - global_data = runtime.caml_get_global_data(), - Stdlib_String = global_data.Stdlib__String, - make = Stdlib_String[1], - init = Stdlib_String[2], - empty = Stdlib_String[3], - of_bytes = Stdlib_String[4], - to_bytes = Stdlib_String[5], - concat = Stdlib_String[6], - cat = Stdlib_String[7], - equal = Stdlib_String[8], - compare = Stdlib_String[9], - starts_with = Stdlib_String[10], - ends_with = Stdlib_String[11], - contains_from = Stdlib_String[12], - rcontains_from = Stdlib_String[13], - contains = Stdlib_String[14], - sub = Stdlib_String[15], - split_on_char = Stdlib_String[16], - map = Stdlib_String[17], - mapi = Stdlib_String[18], - fold_left = Stdlib_String[19], - fold_right = Stdlib_String[20], - for_all = Stdlib_String[21], - exists = Stdlib_String[22], - trim = Stdlib_String[23], - escaped = Stdlib_String[24], - uppercase_ascii = Stdlib_String[25], - lowercase_ascii = Stdlib_String[26], - capitalize_ascii = Stdlib_String[27], - uncapitalize_ascii = Stdlib_String[28], - iter = Stdlib_String[29], - iteri = Stdlib_String[30], - index_from = Stdlib_String[31], - index_from_opt = Stdlib_String[32], - rindex_from = Stdlib_String[33], - rindex_from_opt = Stdlib_String[34], - index = Stdlib_String[35], - index_opt = Stdlib_String[36], - rindex = Stdlib_String[37], - rindex_opt = Stdlib_String[38], - to_seq = Stdlib_String[39], - to_seqi = Stdlib_String[40], - of_seq = Stdlib_String[41], - get_utf_8_uchar = Stdlib_String[42], - is_valid_utf_8 = Stdlib_String[43], - get_utf_16be_uchar = Stdlib_String[44], - is_valid_utf_16be = Stdlib_String[45], - get_utf_16le_uchar = Stdlib_String[46], - is_valid_utf_16le = Stdlib_String[47], - blit = Stdlib_String[48], - copy = Stdlib_String[49], - fill = Stdlib_String[50], - uppercase = Stdlib_String[51], - lowercase = Stdlib_String[52], - capitalize = Stdlib_String[53], - uncapitalize = Stdlib_String[54], - get_uint8 = Stdlib_String[55], - get_int8 = Stdlib_String[56], - get_uint16_ne = Stdlib_String[57], - get_uint16_be = Stdlib_String[58], - get_uint16_le = Stdlib_String[59], - get_int16_ne = Stdlib_String[60], - get_int16_be = Stdlib_String[61], - get_int16_le = Stdlib_String[62], - get_int32_ne = Stdlib_String[63], - get_int32_be = Stdlib_String[64], - get_int32_le = Stdlib_String[65], - get_int64_ne = Stdlib_String[66], - get_int64_be = Stdlib_String[67], - get_int64_le = Stdlib_String[68], - Stdlib_StringLabels = + caml_register_global(830,Stdlib_BytesLabels,"Stdlib__BytesLabels"); + var + Stdlib_StringLabels= [0, - make, - init, - empty, + make$1, + init$2, + empty$1, of_bytes, to_bytes, - concat, + concat$1, cat, - equal, - compare, - starts_with, - ends_with, - contains_from, - rcontains_from, - contains, - sub, - split_on_char, - map, - mapi, - fold_left, - fold_right, - for_all, - exists, - trim, - escaped, - uppercase_ascii, - lowercase_ascii, - capitalize_ascii, - uncapitalize_ascii, - iter, - iteri, - index_from, - index_from_opt, - rindex_from, - rindex_from_opt, - index, - index_opt, - rindex, - rindex_opt, - to_seq, - to_seqi, - of_seq, - get_utf_8_uchar, - is_valid_utf_8, - get_utf_16be_uchar, - is_valid_utf_16be, - get_utf_16le_uchar, - is_valid_utf_16le, - blit, - copy, + equal$9, + compare$9, + starts_with$0, + ends_with$0, + contains_from$0, + rcontains_from$0, + contains$0, + sub$0, + split_on_char$0, + map$6, + mapi$2, + fold_left$2, + fold_right$1, + for_all$2, + exists$2, + trim$0, + escaped$1, + uppercase_ascii$1, + lowercase_ascii$1, + capitalize_ascii$0, + uncapitalize_ascii$0, + iter$4, + iteri$2, + index_from$0, + index_from_opt$0, + rindex_from$0, + rindex_from_opt$0, + index$0, + index_opt$0, + rindex$0, + rindex_opt$0, + to_seq$3, + to_seqi$0, + of_seq$1, + get_utf_8_uchar$0, + is_valid_utf_8$0, + get_utf_16be_uchar$0, + is_valid_utf_16be$0, + get_utf_16le_uchar$0, + is_valid_utf_16le$0, + blit$0, + copy$0, fill, - uppercase, - lowercase, - capitalize, - uncapitalize, - get_uint8, - get_int8, - get_uint16_ne, - get_uint16_be, - get_uint16_le, - get_int16_ne, - get_int16_be, - get_int16_le, - get_int32_ne, - get_int32_be, - get_int32_le, - get_int64_ne, - get_int64_be, - get_int64_le]; - runtime.caml_register_global - (1, Stdlib_StringLabels, "Stdlib__StringLabels"); - return; - } - (globalThis)); - -//# 26459 "../../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - global_data = runtime.caml_get_global_data(), - Stdlib_Set = global_data.Stdlib__Set, - Stdlib_Map = global_data.Stdlib__Map, - Stdlib_Hashtbl = global_data.Stdlib__Hashtbl, - Stdlib_MoreLabels = [0, Stdlib_Hashtbl, Stdlib_Map, Stdlib_Set]; - runtime.caml_register_global(3, Stdlib_MoreLabels, "Stdlib__MoreLabels"); - return; - } - (globalThis)); - - -//# 1 "../../.js/default/dates_calc/dates_calc.cma.js" -// Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - -//# 16 "../../.js/default/dates_calc/dates_calc.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_lib_dates_ml = "lib/dates.ml", - caml_fresh_oo_id = runtime.caml_fresh_oo_id, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_mul = runtime.caml_mul, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - Assert_failure = global_data.Assert_failure, - Stdlib_Format = global_data.Stdlib__Format, - Stdlib_Int = global_data.Stdlib__Int, - InvalidDate = [248, "Dates_calc.Dates.InvalidDate", caml_fresh_oo_id(0)], - AmbiguousComputation = - [248, "Dates_calc.Dates.AmbiguousComputation", caml_fresh_oo_id(0)], - _h_ = [0, cst_lib_dates_ml, 230, 2], - _g_ = [0, cst_lib_dates_ml, 226, 2], - _f_ = + uppercase$1, + lowercase$1, + capitalize$0, + uncapitalize$0, + get_uint8$0, + get_int8$0, + get_uint16_ne$0, + get_uint16_be$0, + get_uint16_le$0, + get_int16_ne$0, + get_int16_be$0, + get_int16_le$0, + get_int32_ne$0, + get_int32_be$0, + get_int32_le$0, + get_int64_ne$0, + get_int64_be$0, + get_int64_le$0]; + caml_register_global(831,Stdlib_StringLabels,"Stdlib__StringLabels"); + var Stdlib_MoreLabels=[0,Stdlib_Hashtbl,Stdlib_Map,Stdlib_Set]; + caml_register_global(832,Stdlib_MoreLabels,"Stdlib__MoreLabels"); + var Stdlib_StdLabels=[0]; + caml_register_global(833,Stdlib_StdLabels,"Stdlib__StdLabels"); + var + float32=0, + float64=1, + int8_signed=2, + int8_unsigned=3, + int16_signed=4, + int16_unsigned=5, + int32$1=6, + int64$1=7, + int$2=8, + nativeint$1=9, + complex32=10, + complex64=11, + char$0=12; + function kind_size_in_bytes(param) + {switch(param) + {case 0:return 4; + case 1:return 8; + case 2:return 1; + case 3:return 1; + case 4:return 2; + case 5:return 2; + case 6:return 4; + case 7:return 8; + case 8:return 4; + case 9:return 4; + case 10:return 8; + case 11:return 16; + default:return 1}} + var c_layout=0,fortran_layout=1; + function cloop(arr,idx,f,col,max) + {if(col === idx.length - 1) + return caml_ba_set_generic(arr,idx,caml_call1(f,idx)); + var _eg_=caml_check_bound(max,col)[1 + col] - 1 | 0,_ef_=0; + if(_eg_ >= 0) + {var j=_ef_; + for(;;) + {caml_check_bound(idx,col)[1 + col] = j; + cloop(arr,idx,f,col + 1 | 0,max); + var _eh_=j + 1 | 0; + if(_eg_ !== j){var j=_eh_;continue} + break}} + return 0} + function floop(arr,idx,f,col,max) + {if(0 > col)return caml_ba_set_generic(arr,idx,caml_call1(f,idx)); + var _ed_=caml_check_bound(max,col)[1 + col],_ec_=1; + if(_ed_ >= 1) + {var j=_ec_; + for(;;) + {caml_check_bound(idx,col)[1 + col] = j; + floop(arr,idx,f,col - 1 | 0,max); + var _ee_=j + 1 | 0; + if(_ed_ !== j){var j=_ee_;continue} + break}} + return 0} + function init$6(kind,layout,dims,f) + {var arr=caml_ba_create(kind,layout,dims),dlen=dims.length - 1; + return 0 === dlen + ?arr + :layout + ?(floop(arr,caml_make_vect(dlen,1),f,dlen - 1 | 0,dims),arr) + :(cloop(arr,caml_make_vect(dlen,0),f,0,dims),arr)} + function dims(a) + {var n=caml_ba_num_dims(a),d=caml_make_vect(n,0),_d$_=n - 1 | 0,_d__=0; + if(_d$_ >= 0) + {var i=_d__; + for(;;) + {var _ea_=runtime.caml_ba_dim(a,i); + caml_check_bound(d,i)[1 + i] = _ea_; + var _eb_=i + 1 | 0; + if(_d$_ !== i){var i=_eb_;continue} + break}} + return d} + function size_in_bytes(arr) + {var _d9_=fold_left$3(caml_mul,1,dims(arr)); + return caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_d9_)} + function create$8(kind,layout){return caml_ba_create(kind,layout,[0])} + function get$3(arr){return runtime.caml_ba_get_generic(arr,[0])} + function set$2(arr) + {var _d7_=[0]; + return function(_d8_){return caml_ba_set_generic(arr,_d7_,_d8_)}} + function size_in_bytes$0(arr) + {return kind_size_in_bytes(caml_ba_kind(arr))} + function of_value(kind,layout,v) + {var a=create$8(kind,layout);caml_call1(set$2(a),v);return a} + function create$9(kind,layout,dim) + {return caml_ba_create(kind,layout,[0,dim])} + function size_in_bytes$1(arr) + {var _d6_=caml_ba_dim_1(arr); + return caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_d6_)} + function slice(a,n) + {var match=runtime.caml_ba_layout(a); + return match?caml_ba_slice(a,[0,n]):caml_ba_slice(a,[0,n])} + function init$7(kind,layout,dim,f) + {var arr=create$9(kind,layout,dim); + if(layout) + {var _d4_=1; + if(dim >= 1) + {var i$0=_d4_; + for(;;) + {caml_ba_set_1(arr,i$0,caml_call1(f,i$0)); + var _d5_=i$0 + 1 | 0; + if(dim !== i$0){var i$0=_d5_;continue} + break}} + return arr} + var _d2_=dim - 1 | 0,_d1_=0; + if(_d2_ >= 0) + {var i=_d1_; + for(;;) + {caml_ba_set_1(arr,i,caml_call1(f,i)); + var _d3_=i + 1 | 0; + if(_d2_ !== i){var i=_d3_;continue} + break}} + return arr} + function of_array(kind,layout,data) + {var + ba=create$9(kind,layout,data.length - 1), + ofs=layout?1:0, + _dZ_=data.length - 1 - 1 | 0, + _dY_=0; + if(_dZ_ >= 0) + {var i=_dY_; + for(;;) + {caml_ba_set_1(ba,i + ofs | 0,caml_check_bound(data,i)[1 + i]); + var _d0_=i + 1 | 0; + if(_dZ_ !== i){var i=_d0_;continue} + break}} + return ba} + function create$10(kind,layout,dim1,dim2) + {return caml_ba_create(kind,layout,[0,dim1,dim2])} + function size_in_bytes$2(arr) + {var _dW_=caml_ba_dim_2(arr),_dX_=caml_ba_dim_1(arr); + return caml_mul + (caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_dX_),_dW_)} + function slice_left(a,n){return caml_ba_slice(a,[0,n])} + function slice_right(a,n){return caml_ba_slice(a,[0,n])} + function init$8(kind,layout,dim1,dim2,f) + {var arr=create$10(kind,layout,dim1,dim2); + if(layout) + {var _dS_=1; + if(dim2 >= 1) + {var j$0=_dS_; + for(;;) + {var _dT_=1; + if(dim1 >= 1) + {var i$0=_dT_; + for(;;) + {caml_ba_set_2(arr,i$0,j$0,caml_call2(f,i$0,j$0)); + var _dV_=i$0 + 1 | 0; + if(dim1 !== i$0){var i$0=_dV_;continue} + break}} + var _dU_=j$0 + 1 | 0; + if(dim2 !== j$0){var j$0=_dU_;continue} + break}} + return arr} + var _dN_=dim1 - 1 | 0,_dM_=0; + if(_dN_ >= 0) + {var i=_dM_; + for(;;) + {var _dP_=dim2 - 1 | 0,_dO_=0; + if(_dP_ >= 0) + {var j=_dO_; + for(;;) + {caml_ba_set_2(arr,i,j,caml_call2(f,i,j)); + var _dR_=j + 1 | 0; + if(_dP_ !== j){var j=_dR_;continue} + break}} + var _dQ_=i + 1 | 0; + if(_dN_ !== i){var i=_dQ_;continue} + break}} + return arr} + function of_array$0(kind,layout,data) + {var + dim1=data.length - 1, + dim2=0 === dim1?0:caml_check_bound(data,0)[1].length - 1, + ba=create$10(kind,layout,dim1,dim2), + ofs=layout?1:0, + _dH_=dim1 - 1 | 0, + _dG_=0; + if(_dH_ >= 0) + {var i=_dG_; + for(;;) + {var row=caml_check_bound(data,i)[1 + i]; + if(row.length - 1 !== dim2) + invalid_arg(cst_Bigarray_Array2_of_array_n); + var _dJ_=dim2 - 1 | 0,_dI_=0; + if(_dJ_ >= 0) + {var j=_dI_; + for(;;) + {caml_ba_set_2 + (ba,i + ofs | 0,j + ofs | 0,caml_check_bound(row,j)[1 + j]); + var _dL_=j + 1 | 0; + if(_dJ_ !== j){var j=_dL_;continue} + break}} + var _dK_=i + 1 | 0; + if(_dH_ !== i){var i=_dK_;continue} + break}} + return ba} + function create$11(kind,layout,dim1,dim2,dim3) + {return caml_ba_create(kind,layout,[0,dim1,dim2,dim3])} + function size_in_bytes$3(arr) + {var + _dD_=runtime.caml_ba_dim_3(arr), + _dE_=caml_ba_dim_2(arr), + _dF_=caml_ba_dim_1(arr); + return caml_mul + (caml_mul + (caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_dF_),_dE_), + _dD_)} + function slice_left_1(a,n,m){return caml_ba_slice(a,[0,n,m])} + function slice_right_1(a,n,m){return caml_ba_slice(a,[0,n,m])} + function slice_left_2(a,n){return caml_ba_slice(a,[0,n])} + function slice_right_2(a,n){return caml_ba_slice(a,[0,n])} + function init$9(kind,layout,dim1,dim2,dim3,f) + {var arr=create$11(kind,layout,dim1,dim2,dim3); + if(layout) + {var _dx_=1; + if(dim3 >= 1) + {var k$0=_dx_; + for(;;) + {var _dy_=1; + if(dim2 >= 1) + {var j$0=_dy_; + for(;;) + {var _dA_=1; + if(dim1 >= 1) + {var i$0=_dA_; + for(;;) + {caml_ba_set_3(arr,i$0,j$0,k$0,caml_call3(f,i$0,j$0,k$0)); + var _dC_=i$0 + 1 | 0; + if(dim1 !== i$0){var i$0=_dC_;continue} + break}} + var _dB_=j$0 + 1 | 0; + if(dim2 !== j$0){var j$0=_dB_;continue} + break}} + var _dz_=k$0 + 1 | 0; + if(dim3 !== k$0){var k$0=_dz_;continue} + break}} + return arr} + var _dp_=dim1 - 1 | 0,_do_=0; + if(_dp_ >= 0) + {var i=_do_; + for(;;) + {var _dr_=dim2 - 1 | 0,_dq_=0; + if(_dr_ >= 0) + {var j=_dq_; + for(;;) + {var _du_=dim3 - 1 | 0,_dt_=0; + if(_du_ >= 0) + {var k=_dt_; + for(;;) + {caml_ba_set_3(arr,i,j,k,caml_call3(f,i,j,k)); + var _dw_=k + 1 | 0; + if(_du_ !== k){var k=_dw_;continue} + break}} + var _dv_=j + 1 | 0; + if(_dr_ !== j){var j=_dv_;continue} + break}} + var _ds_=i + 1 | 0; + if(_dp_ !== i){var i=_ds_;continue} + break}} + return arr} + function of_array$1(kind,layout,data) + {var + dim1=data.length - 1, + dim2=0 === dim1?0:caml_check_bound(data,0)[1].length - 1, + dim3= + 0 === dim2 + ?0 + :caml_check_bound(caml_check_bound(data,0)[1],0)[1].length - 1, + ba=create$11(kind,layout,dim1,dim2,dim3), + ofs=layout?1:0, + _dg_=dim1 - 1 | 0, + _df_=0; + if(_dg_ >= 0) + {var i=_df_; + for(;;) + {var row=caml_check_bound(data,i)[1 + i]; + if(row.length - 1 !== dim2) + invalid_arg(cst_Bigarray_Array3_of_array_n); + var _di_=dim2 - 1 | 0,_dh_=0; + if(_di_ >= 0) + {var j=_dh_; + for(;;) + {var col=caml_check_bound(row,j)[1 + j]; + if(col.length - 1 !== dim3) + invalid_arg(cst_Bigarray_Array3_of_array_n$0); + var _dl_=dim3 - 1 | 0,_dk_=0; + if(_dl_ >= 0) + {var k=_dk_; + for(;;) + {caml_ba_set_3 + (ba, + i + ofs | 0, + j + ofs | 0, + k + ofs | 0, + caml_check_bound(col,k)[1 + k]); + var _dn_=k + 1 | 0; + if(_dl_ !== k){var k=_dn_;continue} + break}} + var _dm_=j + 1 | 0; + if(_di_ !== j){var j=_dm_;continue} + break}} + var _dj_=i + 1 | 0; + if(_dg_ !== i){var i=_dj_;continue} + break}} + return ba} + function array0_of_genarray(a) + {return 0 === caml_ba_num_dims(a) + ?a + :invalid_arg(cst_Bigarray_array0_of_genarra)} + function array1_of_genarray(a) + {return 1 === caml_ba_num_dims(a) + ?a + :invalid_arg(cst_Bigarray_array1_of_genarra)} + function array2_of_genarray(a) + {return 2 === caml_ba_num_dims(a) + ?a + :invalid_arg(cst_Bigarray_array2_of_genarra)} + function array3_of_genarray(a) + {return 3 === caml_ba_num_dims(a) + ?a + :invalid_arg(cst_Bigarray_array3_of_genarra)} + function reshape_0(a){return caml_ba_reshape(a,[0])} + function reshape_1(a,dim1){return caml_ba_reshape(a,[0,dim1])} + function reshape_2(a,dim1,dim2){return caml_ba_reshape(a,[0,dim1,dim2])} + function reshape_3(a,dim1,dim2,dim3) + {return caml_ba_reshape(a,[0,dim1,dim2,dim3])} + var + Stdlib_Bigarray= [0, - [4, - 0, - [0, 2, 4], - 0, - [12, 45, [4, 0, [0, 2, 2], 0, [12, 45, [4, 0, [0, 2, 2], 0, 0]]]]], - "%04d-%02d-%02d"], - _d_ = [0, cst_lib_dates_ml, 123, 2], - _e_ = [0, cst_lib_dates_ml, 124, 2], - _b_ = [0, cst_lib_dates_ml, 109, 2], - _c_ = [0, cst_lib_dates_ml, 110, 2], - _a_ = + float32, + float64, + complex32, + complex64, + int8_signed, + int8_unsigned, + int16_signed, + int16_unsigned, + int$2, + int32$1, + int64$1, + nativeint$1, + char$0, + kind_size_in_bytes, + c_layout, + fortran_layout, + [0,init$6,dims,size_in_bytes], + [0, + create$8, + of_value, + caml_ba_change_layout, + size_in_bytes$0, + get$3, + set$2, + of_value], + [0, + create$9, + init$7, + caml_ba_change_layout, + size_in_bytes$1, + slice, + of_array], + [0, + create$10, + init$8, + caml_ba_change_layout, + size_in_bytes$2, + slice_left, + slice_right, + of_array$0], + [0, + create$11, + init$9, + caml_ba_change_layout, + size_in_bytes$3, + slice_left_1, + slice_right_1, + slice_left_2, + slice_right_2, + of_array$1], + array0_of_genarray, + array1_of_genarray, + array2_of_genarray, + array3_of_genarray, + caml_ba_reshape, + reshape_0, + reshape_1, + reshape_2, + reshape_3]; + caml_register_global(834,Stdlib_Bigarray,"Stdlib__Bigarray"); + function with_open(openfun,s,f) + {var ic=caml_call1(openfun,s); + function _de_(param){return caml_call1(f,ic)} + return protect(function(param){return close_noerr$0(ic)},_de_)} + function with_open_bin(s,f){return with_open(open_bin$0,s,f)} + function with_open_text(s,f){return with_open(open_text$0,s,f)} + function with_open_gen(flags,perm,s,f) + {return with_open(function(_dd_){return open_gen$0(flags,perm,_dd_)},s,f)} + var seek=_m_[4],pos=_m_[5],length$11=_m_[6]; + function input_char$0(ic) + {try + {var c=caml_ml_input_char(ic)} + catch(_dc_) + {_dc_ = caml_wrap_exception(_dc_); + if(_dc_ === End_of_file)return 0; + throw _dc_} + return [0,c]} + function input_byte$0(ic) + {try + {var n=caml_ml_input_char(ic)} + catch(_db_) + {_db_ = caml_wrap_exception(_db_); + if(_db_ === End_of_file)return 0; + throw _db_} + return [0,n]} + function input_line$0(ic) + {try + {var s=input_line(ic)} + catch(_da_) + {_da_ = caml_wrap_exception(_da_); + if(_da_ === End_of_file)return 0; + throw _da_} + return [0,s]} + function really_input$0(ic,buf,pos,len) + {try + {really_input(ic,buf,pos,len);return _cZ_} + catch(_c$_) + {_c$_ = caml_wrap_exception(_c$_); + if(_c$_ === End_of_file)return 0; + throw _c$_}} + function really_input_string$0(ic,len) + {try + {var s=really_input_string(ic,len)} + catch(_c__) + {_c__ = caml_wrap_exception(_c__); + if(_c__ === End_of_file)return 0; + throw _c__} + return [0,s]} + function read_upto(ic,buf,ofs,len) + {var ofs$0=ofs,len$0=len; + for(;;) + {if(0 !== len$0) + {var r=input(ic,buf,ofs$0,len$0); + if(0 !== r) + {var + len$1=len$0 - r | 0, + ofs$1=ofs$0 + r | 0, + ofs$0=ofs$1, + len$0=len$1; + continue}} + return ofs$0 - ofs | 0}} + function ensure(buf,ofs,n) + {var len=caml_ml_bytes_length(buf); + if((ofs + n | 0) <= len)return buf; + var new_len=[0,len]; + for(;;) + {if(new_len[1] < (ofs + n | 0)) + {new_len[1] = (2 * new_len[1] | 0) + 1 | 0;continue} + var + new_len$0=new_len[1], + new_len$1= + new_len$0 <= max_string_length + ?new_len$0 + :ofs < max_string_length + ?max_string_length + :failwith(cst_In_channel_input_all_chann), + new_buf=caml_create_bytes(new_len$1); + blit(buf,0,new_buf,0,ofs); + return new_buf}} + function input_all(ic) + {var chunk_size=65536; + try + {var + _c6_=caml_ml_pos_in(ic), + _c7_=caml_ml_channel_size(ic) - _c6_ | 0, + initial_size=_c7_} + catch(_c9_) + {_c9_ = caml_wrap_exception(_c9_); + if(_c9_[1] !== Sys_error)throw _c9_; + var initial_size=-1} + var + initial_size$0=0 <= initial_size?initial_size:chunk_size, + initial_size$1= + initial_size$0 <= max_string_length?initial_size$0:max_string_length, + buf=caml_create_bytes(initial_size$1), + nread=read_upto(ic,buf,0,initial_size$1); + if(nread < initial_size$1)return sub_string(buf,0,nread); + try + {var c=caml_ml_input_char(ic)} + catch(_c8_) + {_c8_ = caml_wrap_exception(_c8_); + if(_c8_ === End_of_file)return caml_string_of_bytes(buf); + throw _c8_} + function loop(buf,ofs) + {var buf$0=buf,ofs$0=ofs; + for(;;) + {var + buf$1=ensure(buf$0,ofs$0,chunk_size), + rem=caml_ml_bytes_length(buf$1) - ofs$0 | 0, + r=read_upto(ic,buf$1,ofs$0,rem); + if(r < rem)return sub_string(buf$1,0,ofs$0 + r | 0); + var ofs$1=ofs$0 + rem | 0,buf$0=buf$1,ofs$0=ofs$1}} + var buf$0=ensure(buf,nread,65537); + caml_bytes_set(buf$0,nread,c); + return loop(buf$0,nread + 1 | 0)} + var + Stdlib_In_channel= + [0, + stdin, + open_bin$0, + open_text$0, + open_gen$0, + with_open_bin, + with_open_text, + with_open_gen, + seek, + pos, + length$11, + close$0, + close_noerr$0, + input_char$0, + input_byte$0, + input_line$0, + input, + really_input$0, + really_input_string$0, + input_all, + set_binary_mode]; + caml_register_global(835,Stdlib_In_channel,"Stdlib__In_channel"); + function with_open$0(openfun,s,f) + {var oc=caml_call1(openfun,s); + function _c5_(param){return caml_call1(f,oc)} + return protect(function(param){return close_noerr(oc)},_c5_)} + function with_open_bin$0(s,f){return with_open$0(open_bin,s,f)} + function with_open_text$0(s,f){return with_open$0(open_text,s,f)} + function with_open_gen$0(flags,perm,s,f) + {return with_open$0(function(_c4_){return open_gen(flags,perm,_c4_)},s,f)} + var + seek$0=_m_[1], + pos$0=_m_[2], + length$12=_m_[3], + Stdlib_Out_channel= + [0, + stdout, + stderr, + open_bin, + open_text, + open_gen, + with_open_bin$0, + with_open_text$0, + with_open_gen$0, + seek$0, + pos$0, + length$12, + close, + close_noerr, + flush, + flush_all, + output_char, + output_byte, + output_string, + output_bytes, + output, + output_substring, + set_binary_mode$0, + runtime.caml_ml_set_buffered, + runtime.caml_ml_is_buffered]; + caml_register_global(836,Stdlib_Out_channel,"Stdlib__Out_channel"); + return} + (globalThis)); + + +//# 1 "../../.js/dates_calc/dates_calc.cma.js" +// Generated by js_of_ocaml +(function + (globalThis) + {"use strict"; + var + runtime=globalThis.jsoo_runtime, + caml_fresh_oo_id=runtime.caml_fresh_oo_id, + caml_mul=runtime.caml_mul, + caml_register_global=runtime.caml_register_global, + caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, + caml_wrap_exception=runtime.caml_wrap_exception; + function caml_call2(f,a0,a1) + {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} + function caml_call5(f,a0,a1,a2,a3,a4) + {return f.length == 5 + ?f(a0,a1,a2,a3,a4) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} + var + global_data=runtime.caml_get_global_data(), + cst_Dates_calc_Dates_InvalidDa= + caml_string_of_jsbytes("Dates_calc.Dates.InvalidDate"), + cst_Dates_calc_Dates_Ambiguous= + caml_string_of_jsbytes("Dates_calc.Dates.AmbiguousComputation"), + Assert_failure=global_data.Assert_failure, + Stdlib_Format=global_data.Stdlib__Format, + Stdlib_Int=global_data.Stdlib__Int, + Dates_calc=[0]; + caml_register_global(10,Dates_calc,"Dates_calc"); + var + InvalidDate=[248,cst_Dates_calc_Dates_InvalidDa,caml_fresh_oo_id(0)], + AmbiguousComputation= + [248,cst_Dates_calc_Dates_Ambiguous,caml_fresh_oo_id(0)], + _h_=[0,caml_string_of_jsbytes("lib/dates.ml"),230,2], + _g_=[0,caml_string_of_jsbytes("lib/dates.ml"),226,2], + _f_= + [0, + [4,0,[0,2,4],0,[12,45,[4,0,[0,2,2],0,[12,45,[4,0,[0,2,2],0,0]]]]], + caml_string_of_jsbytes("%04d-%02d-%02d")], + _d_=[0,caml_string_of_jsbytes("lib/dates.ml"),123,2], + _e_=[0,caml_string_of_jsbytes("lib/dates.ml"),124,2], + _b_=[0,caml_string_of_jsbytes("lib/dates.ml"),109,2], + _c_=[0,caml_string_of_jsbytes("lib/dates.ml"),110,2], + _a_= [0, [12, 91, @@ -29103,233 +29807,195 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ 0, 0, [11, - " years, ", - [4, 0, 0, 0, [11, " months, ", [4, 0, 0, 0, [11, " days]", 0]]]]]]], - "[%d years, %d months, %d days]"]; - function format_period(fmt, p){ - return caml_call5(Stdlib_Format[129], fmt, _a_, p[1], p[2], p[3]); - } - function make_period(years, months, days){return [0, years, months, days];} - function add_periods(d1, d2){ - return [0, d1[1] + d2[1] | 0, d1[2] + d2[2] | 0, d1[3] + d2[3] | 0]; - } - function sub_periods(d1, d2){ - return [0, d1[1] - d2[1] | 0, d1[2] - d2[2] | 0, d1[3] - d2[3] | 0]; - } - function mul_period(d1, m){ - return [0, caml_mul(d1[1], m), caml_mul(d1[2], m), caml_mul(d1[3], m)]; - } - function period_to_days(p){ - if(0 === p[1] && 0 === p[2]) return p[3]; - throw caml_maybe_attach_backtrace(AmbiguousComputation, 1); - } - function is_leap_year(year){ - var _w_ = 0 === (year % 400 | 0) ? 1 : 0; - if(_w_) - var _x_ = _w_; - else - var - _y_ = 0 === (year % 4 | 0) ? 1 : 0, - _x_ = _y_ ? 0 !== (year % 100 | 0) ? 1 : 0 : _y_; - return _x_; - } - function days_in_month(month, is_leap_year){ - var switcher = month - 1 | 0; - if(11 < switcher >>> 0) throw caml_maybe_attach_backtrace(InvalidDate, 1); - switch(switcher){ - case 1: - return is_leap_year ? 29 : 28; - case 3: - case 5: - case 8: - case 10: - return 30; - default: return 31; - } - } - function is_valid_date(d){ - try{ - var _r_ = 1 <= d[3] ? 1 : 0; - if(_r_) - var - _s_ = is_leap_year(d[1]), - _t_ = days_in_month(d[2], _s_), - _u_ = d[3] <= _t_ ? 1 : 0; - else - var _u_ = _r_; - return _u_; - } - catch(_v_){ - var _q_ = caml_wrap_exception(_v_); - if(_q_ === InvalidDate) return 0; - throw caml_maybe_attach_backtrace(_q_, 0); - } - } - function make_date(year, month, day){ - var d = [0, year, month, day]; - if(is_valid_date(d)) return d; - throw caml_maybe_attach_backtrace(InvalidDate, 1); - } - function add_months_to_first_of_month_d(year, month, months){ - var year$0 = year, months$0 = months; - for(;;){ - var new_month = month + months$0 | 0; - if(1 <= new_month && 12 >= new_month) return [0, year$0, new_month]; - if(12 < new_month){ - var - months$1 = months$0 - 12 | 0, - year$1 = year$0 + 1 | 0, - year$0 = year$1, - months$0 = months$1; - continue; - } - var - months$2 = months$0 + 12 | 0, - year$2 = year$0 - 1 | 0, - year$0 = year$2, - months$0 = months$2; - } - } - function add_dates(opt, d){ - if(opt) var sth = opt[1], round = sth; else var round = 2; - return function(p){ - var - years = p[1], - months = p[2], - _o_ = d[3], - match$0 = add_months_to_first_of_month_d(d[1] + years | 0, d[2], months), - new_month$0 = match$0[2], - new_year$0 = match$0[1], - new_date = [0, new_year$0, new_month$0, _o_]; - if(is_valid_date(new_date)) - var d$0 = new_date; - else - switch(round){ - case 0: - var switch$0 = 0; - if(1 <= new_date[2] && ! (12 < new_date[2])){ - var switch$1 = 0; - if(1 <= new_date[3] && ! (31 < new_date[3])) - if(is_valid_date(new_date)) - var d$0 = new_date; - else - var - match = - add_months_to_first_of_month_d(new_date[1], new_date[2], 1), - new_month = match[2], - new_year = match[1], - d$0 = [0, new_year, new_month, 1]; - else - switch$1 = 1; - if(switch$1) - throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); - } - else - switch$0 = 1; - if(switch$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - break; - case 1: - var switch$2 = 0; - if(1 <= new_date[2] && 12 >= new_date[2]){ - var switch$3 = 0; - if(1 <= new_date[3] && ! (31 < new_date[3])) - if(is_valid_date(new_date)){ - var d$0 = new_date; - switch$2 = 1; - } - else{ - var - _m_ = is_leap_year(new_date[1]), - _n_ = days_in_month(new_date[2], _m_), - d$0 = [0, new_date[1], new_date[2], _n_]; - switch$2 = 1; - } - else - switch$3 = 1; - if(switch$3) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - } - if(! switch$2) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - break; - default: throw caml_maybe_attach_backtrace(AmbiguousComputation, 1); - } - var days$2 = p[3], d$1 = d$0, days = days$2; - for(;;){ - var - _p_ = is_leap_year(d$1[1]), - days_in_d_month = days_in_month(d$1[2], _p_), - new_day = d$1[3] + days | 0; - if(1 <= new_day && new_day <= days_in_d_month) - return [0, d$1[1], d$1[2], new_day]; - if(days_in_d_month <= new_day){ + caml_string_of_jsbytes(" years, "), + [4, + 0, + 0, + 0, + [11, + caml_string_of_jsbytes(" months, "), + [4,0,0,0,[11,caml_string_of_jsbytes(" days]"),0]]]]]]], + caml_string_of_jsbytes("[%d years, %d months, %d days]")]; + function format_period(fmt,p) + {return caml_call5(Stdlib_Format[129],fmt,_a_,p[1],p[2],p[3])} + function make_period(years,months,days){return [0,years,months,days]} + function add_periods(d1,d2) + {return [0,d1[1] + d2[1] | 0,d1[2] + d2[2] | 0,d1[3] + d2[3] | 0]} + function sub_periods(d1,d2) + {return [0,d1[1] - d2[1] | 0,d1[2] - d2[2] | 0,d1[3] - d2[3] | 0]} + function mul_period(d1,m) + {return [0,caml_mul(d1[1],m),caml_mul(d1[2],m),caml_mul(d1[3],m)]} + function period_to_days(p) + {if(0 === p[1] && 0 === p[2])return p[3];throw AmbiguousComputation} + function is_leap_year(year) + {var _w_=0 === (year % 400 | 0)?1:0; + if(_w_) + var _x_=_w_; + else var - match$1 = add_months_to_first_of_month_d(d$1[1], d$1[2], 1), - new_month$1 = match$1[2], - new_year$1 = match$1[1], - days$0 = (days - (days_in_d_month - d$1[3] | 0) | 0) - 1 | 0, - d$2 = [0, new_year$1, new_month$1, 1], - d$1 = d$2, - days = days$0; - continue; - } + _y_=0 === (year % 4 | 0)?1:0, + _x_=_y_?0 !== (year % 100 | 0)?1:0:_y_; + return _x_} + function days_in_month(month,is_leap_year) + {var switcher=month - 1 | 0; + if(11 < switcher >>> 0)throw InvalidDate; + switch(switcher) + {case 1:return is_leap_year?29:28; + case 3: + case 5: + case 8: + case 10:return 30; + default:return 31}} + function is_valid_date(d) + {try + {var _r_=1 <= d[3]?1:0; + if(_r_) + var + _s_=is_leap_year(d[1]), + _t_=days_in_month(d[2],_s_), + _u_=d[3] <= _t_?1:0; + else + var _u_=_r_; + return _u_} + catch(_v_) + {_v_ = caml_wrap_exception(_v_); + if(_v_ === InvalidDate)return 0; + throw _v_}} + function make_date(year,month,day) + {var d=[0,year,month,day];if(is_valid_date(d))return d;throw InvalidDate} + function add_months_to_first_of_month_d(year,month,months) + {var year$0=year,months$0=months; + for(;;) + {var new_month=month + months$0 | 0; + if(1 <= new_month && 12 >= new_month)return [0,year$0,new_month]; + if(12 < new_month) + {var + months$1=months$0 - 12 | 0, + year$1=year$0 + 1 | 0, + year$0=year$1, + months$0=months$1; + continue} + var + months$2=months$0 + 12 | 0, + year$2=year$0 - 1 | 0, + year$0=year$2, + months$0=months$2}} + function add_dates(opt,d) + {if(opt)var sth=opt[1],round=sth;else var round=2; + return function(p) + {var + _o_=d[3], + match$0=add_months_to_first_of_month_d(d[1] + p[1] | 0,d[2],p[2]), + new_month$0=match$0[2], + new_year$0=match$0[1], + new_date=[0,new_year$0,new_month$0,_o_]; + if(is_valid_date(new_date)) + var _p_=new_date; + else + switch(round) + {case 0: + var switch$0=0; + if(1 <= new_date[2] && ! (12 < new_date[2])) + {var switch$1=0; + if(1 <= new_date[3] && 31 >= new_date[3]) + if(is_valid_date(new_date)) + {var _p_=new_date;switch$1 = 1} + else + {var + match= + add_months_to_first_of_month_d(new_date[1],new_date[2],1), + new_month=match[2], + new_year=match[1], + _p_=[0,new_year,new_month,1]; + switch$1 = 1} + if(! switch$1)throw [0,Assert_failure,_e_]} + else + switch$0 = 1; + if(switch$0)throw [0,Assert_failure,_d_]; + break; + case 1: + var switch$2=0; + if(1 <= new_date[2] && ! (12 < new_date[2])) + {var switch$3=0; + if(1 <= new_date[3] && 31 >= new_date[3]) + if(is_valid_date(new_date)) + {var _p_=new_date;switch$3 = 1} + else + {var + _m_=is_leap_year(new_date[1]), + _n_=days_in_month(new_date[2],_m_), + _p_=[0,new_date[1],new_date[2],_n_]; + switch$3 = 1} + if(! switch$3)throw [0,Assert_failure,_c_]} + else + switch$2 = 1; + if(switch$2)throw [0,Assert_failure,_b_]; + break; + default:throw AmbiguousComputation} + var d$0=_p_,days=p[3]; + for(;;) + {var + _q_=is_leap_year(d$0[1]), + days_in_d_month=days_in_month(d$0[2],_q_), + new_day=d$0[3] + days | 0; + if(1 <= new_day && new_day <= days_in_d_month) + return [0,d$0[1],d$0[2],new_day]; + if(days_in_d_month <= new_day) + {var + match$1=add_months_to_first_of_month_d(d$0[1],d$0[2],1), + new_month$1=match$1[2], + new_year$1=match$1[1], + days$0=(days - (days_in_d_month - d$0[3] | 0) | 0) - 1 | 0, + d$1=[0,new_year$1,new_month$1,1], + d$0=d$1, + days=days$0; + continue} + var + match$2=add_months_to_first_of_month_d(d$0[1],d$0[2],-1), + new_month$2=match$2[2], + new_year$2=match$2[1], + days$1=days + d$0[3] | 0, + d$2= + [0, + new_year$2, + new_month$2, + days_in_month(new_month$2,is_leap_year(new_year$2))], + d$0=d$2, + days=days$1}}} + function compare_dates(d1,d2) + {return 0 === caml_call2(Stdlib_Int[9],d1[1],d2[1]) + ?0 === caml_call2(Stdlib_Int[9],d1[2],d2[2]) + ?caml_call2(Stdlib_Int[9],d1[3],d2[3]) + :caml_call2(Stdlib_Int[9],d1[2],d2[2]) + :caml_call2(Stdlib_Int[9],d1[1],d2[1])} + function format_date(fmt,d) + {return caml_call5(Stdlib_Format[129],fmt,_f_,d[1],d[2],d[3])} + function first_day_of_month(d) + {if(is_valid_date(d))return make_date(d[1],d[2],1); + throw [0,Assert_failure,_g_]} + function last_day_of_month(d) + {if(! is_valid_date(d))throw [0,Assert_failure,_h_]; + var _l_=is_leap_year(d[1]),days_month=days_in_month(d[2],_l_); + return make_date(d[1],d[2],days_month)} + function neg_period(p){return [0,- p[1] | 0,- p[2] | 0,- p[3] | 0]} + function sub_dates(d1,d2) + {if(d1[1] === d2[1] && d1[2] === d2[2])return [0,0,0,d1[3] - d2[3] | 0]; + var cmp=compare_dates(d1,d2); + if(0 > cmp)return neg_period(sub_dates(d2,d1)); var - match$2 = add_months_to_first_of_month_d(d$1[1], d$1[2], -1), - new_month$2 = match$2[2], - new_year$2 = match$2[1], - days$1 = days + d$1[3] | 0, - d$3 = - [0, - new_year$2, - new_month$2, - days_in_month(new_month$2, is_leap_year(new_year$2))], - d$1 = d$3, - days = days$1; - }}; - } - function compare_dates(d1, d2){ - return 0 === caml_call2(Stdlib_Int[9], d1[1], d2[1]) - ? 0 - === caml_call2(Stdlib_Int[9], d1[2], d2[2]) - ? caml_call2(Stdlib_Int[9], d1[3], d2[3]) - : caml_call2(Stdlib_Int[9], d1[2], d2[2]) - : caml_call2(Stdlib_Int[9], d1[1], d2[1]); - } - function format_date(fmt, d){ - return caml_call5(Stdlib_Format[129], fmt, _f_, d[1], d[2], d[3]); - } - function first_day_of_month(d){ - if(is_valid_date(d)) return make_date(d[1], d[2], 1); - throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); - } - function last_day_of_month(d){ - if(! is_valid_date(d)) - throw caml_maybe_attach_backtrace([0, Assert_failure, _h_], 1); - var _l_ = is_leap_year(d[1]), days_month = days_in_month(d[2], _l_); - return make_date(d[1], d[2], days_month); - } - function neg_period(p){return [0, - p[1] | 0, - p[2] | 0, - p[3] | 0];} - function sub_dates(d1, d2){ - if(d1[1] === d2[1] && d1[2] === d2[2]) - return [0, 0, 0, d1[3] - d2[3] | 0]; - var cmp = compare_dates(d1, d2); - if(0 > cmp) return neg_period(sub_dates(d2, d1)); + match=add_months_to_first_of_month_d(d2[1],d2[2],1), + new_d2_month=match[2], + new_d2_year=match[1], + new_d2=[0,new_d2_year,new_d2_month,1], + _i_=sub_dates(d1,new_d2), + _j_=d2[3], + _k_=is_leap_year(d2[1]); + return add_periods + ([0,0,0,(days_in_month(d2[2],_k_) - _j_ | 0) + 1 | 0],_i_)} + function date_to_ymd(d){return [0,d[1],d[2],d[3]]} + function period_to_ymds(p){return [0,p[1],p[2],p[3]]} var - match = add_months_to_first_of_month_d(d2[1], d2[2], 1), - new_d2_month = match[2], - new_d2_year = match[1], - new_d2 = [0, new_d2_year, new_d2_month, 1], - _i_ = sub_dates(d1, new_d2), - _j_ = d2[3], - _k_ = is_leap_year(d2[1]); - return add_periods - ([0, 0, 0, (days_in_month(d2[2], _k_) - _j_ | 0) + 1 | 0], _i_); - } - function date_to_ymd(d){return [0, d[1], d[2], d[3]];} - function period_to_ymds(p){return [0, p[1], p[2], p[3]];} - var - Dates_calc_Dates = + Dates_calc_Dates= [0, InvalidDate, AmbiguousComputation, @@ -29350,347 +30016,292 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ format_period, period_to_days, period_to_ymds]; - runtime.caml_register_global(13, Dates_calc_Dates, "Dates_calc__Dates"); - return; - } + caml_register_global(14,Dates_calc_Dates,"Dates_calc__Dates"); + return} (globalThis)); -//# 1 "../../.js/default/zarith/zarith.cma.js" +//# 1 "../../.js/zarith/zarith.cma.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - -//# 5 "../../.js/default/zarith/zarith.cma.js" (function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime, Zarith_version = [0, "1.12"]; - runtime.caml_register_global(1, Zarith_version, "Zarith_version"); - return; - } - (globalThis)); - -//# 16 "../../.js/default/zarith/zarith.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_d = "%d", - caml_div = runtime.caml_div, - caml_equal = runtime.caml_equal, - caml_int64_to_float = runtime.caml_int64_to_float, - caml_ml_string_length = runtime.caml_ml_string_length; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Format = global_data.Stdlib__Format, - Stdlib_Buffer = global_data.Stdlib__Buffer, - Stdlib = global_data.Stdlib, - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib_Callback = global_data.Stdlib__Callback, - Zarith_version = global_data.Zarith_version, - _a_ = [248, "Z.Overflow", runtime.caml_fresh_oo_id(0)]; - runtime.ml_z_init(0); - caml_call2(Stdlib_Callback[2], "ml_z_overflow", _a_); - var - _S_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), - cst_Z_log2up = "Z.log2up", - cst_Z_log2 = "Z.log2", - cst_Z_signed_extract_negative_ = "Z.signed_extract: negative bit offset", - cst_Z_signed_extract_nonpositi = - "Z.signed_extract: nonpositive bit length", - cst_Z_testbit = "Z.testbit"; - function _b_(_bU_){ - if(typeof _bU_ === "number" && _bU_ !== Stdlib[20]) return - _bU_ | 0; - return runtime.ml_z_neg(_bU_); - } - function _c_(_bS_, _bR_){ - if(typeof _bS_ === "number" && typeof _bR_ === "number"){ - var _bT_ = _bS_ + _bR_ | 0; - return 0 <= ((_bT_ ^ _bS_) & (_bT_ ^ _bR_)) - ? _bT_ - : runtime.ml_z_add(_bS_, _bR_); - } - return runtime.ml_z_add(_bS_, _bR_); - } - function _d_(_bP_, _bO_){ - if(typeof _bP_ === "number" && typeof _bO_ === "number"){ - var _bQ_ = _bP_ - _bO_ | 0; - return 0 <= ((_bP_ ^ _bO_) & (_bQ_ ^ _bP_)) - ? _bQ_ - : runtime.ml_z_sub(_bP_, _bO_); - } - return runtime.ml_z_sub(_bP_, _bO_); - } - function _e_(_bN_, _bM_){ - if - (typeof _bN_ === "number" - && typeof _bM_ === "number" && ! runtime.ml_z_mul_overflows(_bN_, _bM_)) - return runtime.caml_mul(_bN_, _bM_); - return runtime.ml_z_mul(_bN_, _bM_); - } - function _f_(_bL_, _bK_){ - return typeof _bK_ === "number" - ? -1 - === _bK_ - ? _b_(_bL_) - : typeof - _bL_ - === "number" - ? caml_div(_bL_, _bK_) - : runtime.ml_z_div(_bL_, _bK_) - : runtime.ml_z_div(_bL_, _bK_); - } - function _g_(_bJ_, _bI_){ - return typeof _bI_ === "number" - ? -1 - === _bI_ - ? 0 - : typeof - _bJ_ - === "number" - ? runtime.caml_mod(_bJ_, _bI_) - : runtime.ml_z_rem(_bJ_, _bI_) - : runtime.ml_z_rem(_bJ_, _bI_); - } - function _h_(_bH_, _bG_){ - return typeof _bG_ === "number" - ? -1 - === _bG_ - ? _b_(_bH_) - : typeof - _bH_ - === "number" - ? caml_div(_bH_, _bG_) - : runtime.ml_z_divexact(_bH_, _bG_) - : runtime.ml_z_divexact(_bH_, _bG_); - } - function _i_(_bF_){ - if(typeof _bF_ === "number" && _bF_ !== Stdlib[19]) return _bF_ + 1 | 0; - return runtime.ml_z_succ(_bF_); - } - function _j_(_bE_){ - if(typeof _bE_ === "number" && _bE_ !== Stdlib[20]) return _bE_ - 1 | 0; - return runtime.ml_z_pred(_bE_); - } - function _k_(_bD_){ - return typeof _bD_ === "number" - ? 0 - <= _bD_ - ? _bD_ - : _bD_ !== Stdlib[20] ? - _bD_ | 0 : runtime.ml_z_abs(_bD_) - : runtime.ml_z_abs(_bD_); - } - function _l_(_bC_, _bB_){ - if(typeof _bC_ === "number" && typeof _bB_ === "number") - return _bC_ & _bB_; - return runtime.ml_z_logand(_bC_, _bB_); - } - function _m_(_bA_, _bz_){ - if(typeof _bA_ === "number" && typeof _bz_ === "number") - return _bA_ | _bz_; - return runtime.ml_z_logor(_bA_, _bz_); - } - function _n_(_by_, _bx_){ - if(typeof _by_ === "number" && typeof _bx_ === "number") - return _by_ ^ _bx_; - return runtime.ml_z_logxor(_by_, _bx_); - } - function _o_(_bw_){ - return typeof _bw_ === "number" ? _bw_ ^ -1 : runtime.ml_z_lognot(_bw_); - } - function _p_(_bu_, _bt_){ - if(typeof _bu_ === "number" && 0 <= _bt_ && _bt_ < Stdlib_Sys[9]){ - var _bv_ = _bu_ << _bt_; - return _bv_ >> _bt_ === _bu_ ? _bv_ : runtime.ml_z_shift_left(_bu_, _bt_); - } - return runtime.ml_z_shift_left(_bu_, _bt_); - } - function _q_(_br_, _bq_){ - if(typeof _br_ === "number" && 0 <= _bq_){ - var _bs_ = _bq_ < Stdlib_Sys[9] ? _bq_ : Stdlib_Sys[9] - 1 | 0; - return _br_ >> _bs_; - } - return runtime.ml_z_shift_right(_br_, _bq_); - } - function _r_(_bp_, _bo_){ - if(typeof _bp_ === "number" && 0 <= _bo_) - return Stdlib_Sys[9] <= _bo_ - ? 0 - : 0 - <= _bp_ - ? _bp_ >>> _bo_ | 0 - : - ((- _bp_ | 0) >>> _bo_ | 0) | 0; - return runtime.ml_z_shift_right_trunc(_bp_, _bo_); - } - function _s_(_bn_){ - return typeof _bn_ === "number" ? _bn_ : runtime.ml_z_to_int(_bn_); - } - var _t_ = 0, _u_ = 1, _v_ = -1; - function _w_(_bm_, _bl_){ - return 0 < runtime.ml_z_compare(_bm_, _bl_) ? _bl_ : _bm_; - } - function _x_(_bk_, _bj_){ - return 0 <= runtime.ml_z_compare(_bk_, _bj_) ? _bk_ : _bj_; - } - function _y_(_bi_, _bh_){ - return runtime.ml_z_compare(_bi_, _bh_) <= 0 ? 1 : 0; - } - function _z_(_bg_, _bf_){ - return 0 <= runtime.ml_z_compare(_bg_, _bf_) ? 1 : 0; - } - function _A_(_be_, _bd_){ - return runtime.ml_z_compare(_be_, _bd_) < 0 ? 1 : 0; - } - function _B_(_bc_, _bb_){ - return 0 < runtime.ml_z_compare(_bc_, _bb_) ? 1 : 0; - } - function _C_(_ba_){return runtime.ml_z_format(cst_d, _ba_);} - function _D_(_a$_){ - return runtime.ml_z_of_substring_base - (0, _a$_, 0, caml_ml_string_length(_a$_)); - } - function _E_(_a8_, _a9_, _a__){ - return runtime.ml_z_of_substring_base(0, _a8_, _a9_, _a__); - } - function _F_(_a7_, _a6_){ - return runtime.ml_z_of_substring_base - (_a7_, _a6_, 0, caml_ml_string_length(_a6_)); - } - function _G_(_a0_, _aZ_){ + (globalThis) + {"use strict"; var - _a1_ = runtime.ml_z_div_rem(_a0_, _aZ_), - _a2_ = _a1_[2], - _a3_ = _a1_[1]; - if(0 <= runtime.ml_z_sign(_a2_)) return [0, _a3_, _a2_]; - if(0 <= runtime.ml_z_sign(_aZ_)){ - var _a4_ = _c_(_a2_, _aZ_); - return [0, _j_(_a3_), _a4_]; - } - var _a5_ = _d_(_a2_, _aZ_); - return [0, _i_(_a3_), _a5_]; - } - function _H_(_aY_, _aX_){ - return 0 <= runtime.ml_z_sign(_aX_) - ? runtime.ml_z_fdiv(_aY_, _aX_) - : runtime.ml_z_cdiv(_aY_, _aX_); - } - function _I_(_aV_, _aU_){ - var _aW_ = _g_(_aV_, _aU_); - return 0 <= runtime.ml_z_sign(_aW_) ? _aW_ : _c_(_aW_, _k_(_aU_)); - } - function _J_(_aM_, _aL_){ + runtime=globalThis.jsoo_runtime, + caml_div=runtime.caml_div, + caml_equal=runtime.caml_equal, + caml_int64_to_float=runtime.caml_int64_to_float, + caml_ldexp_float=runtime.caml_ldexp_float, + caml_ml_string_length=runtime.caml_ml_string_length, + caml_mul=runtime.caml_mul, + caml_register_global=runtime.caml_register_global, + caml_string_get=runtime.caml_string_get, + caml_string_notequal=runtime.caml_string_notequal, + caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, + caml_wrap_exception=runtime.caml_wrap_exception; + function caml_call1(f,a0) + {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} + function caml_call2(f,a0,a1) + {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} + function caml_call3(f,a0,a1,a2) + {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} var - _aN_ = runtime.ml_z_sign(_aM_), - _aO_ = runtime.ml_z_sign(_aL_), - _aP_ = _aN_ + 1 | 0; - if(2 >= _aP_ >>> 0) - switch(_aP_){ - case 0: - if(0 === _aO_) return [0, _b_(_aM_), _v_, _t_]; break; - case 1: - var _aT_ = _aO_ + 1 | 0; - if(2 >= _aT_ >>> 0) - switch(_aT_){ - case 0: - return [0, _b_(_aL_), _t_, _v_]; - case 1: - return [0, _t_, _t_, _t_]; - default: return [0, _aL_, _t_, _u_]; - } - break; - default: if(0 === _aO_) return [0, _aM_, _u_, _t_]; - } + global_data=runtime.caml_get_global_data(), + cst_1_12=caml_string_of_jsbytes("1.12"), + cst_Z_log2up=caml_string_of_jsbytes("Z.log2up"), + cst_Z_log2=caml_string_of_jsbytes("Z.log2"), + cst_Z_signed_extract_negative_= + caml_string_of_jsbytes("Z.signed_extract: negative bit offset"), + cst_Z_signed_extract_nonpositi= + caml_string_of_jsbytes("Z.signed_extract: nonpositive bit length"), + cst_Z_testbit=caml_string_of_jsbytes("Z.testbit"), + cst_Z_Overflow=caml_string_of_jsbytes("Z.Overflow"), + cst_ml_z_overflow=caml_string_of_jsbytes("ml_z_overflow"), + cst_d=caml_string_of_jsbytes("%d"), + cst$0=caml_string_of_jsbytes(""), + cst_inf$1=caml_string_of_jsbytes("+inf"), + cst_inf$2=caml_string_of_jsbytes("-inf"), + cst_inf$3=caml_string_of_jsbytes("inf"), + cst_undef$0=caml_string_of_jsbytes("undef"), + cst_Q_of_string_invalid_digit= + caml_string_of_jsbytes("Q.of_string: invalid digit"), + cst_impossible_case$0=caml_string_of_jsbytes("impossible case"), + cst_impossible_case=caml_string_of_jsbytes("impossible case"), + cst_0=caml_string_of_jsbytes("0"), + cst_inf=caml_string_of_jsbytes("+inf"), + cst_inf$0=caml_string_of_jsbytes("-inf"), + cst_undef=caml_string_of_jsbytes("undef"), + cst=caml_string_of_jsbytes("/"), + cst_int64_of_big_int=caml_string_of_jsbytes("int64_of_big_int"), + cst_nativeint_of_big_int=caml_string_of_jsbytes("nativeint_of_big_int"), + cst_int32_of_big_int=caml_string_of_jsbytes("int32_of_big_int"), + cst_int_of_big_int=caml_string_of_jsbytes("int_of_big_int"), + cst_power_big_int_positive_big= + caml_string_of_jsbytes("power_big_int_positive_big_int"), + cst_power_int_positive_big_int= + caml_string_of_jsbytes("power_int_positive_big_int"), + cst_power_big_int_positive_int= + caml_string_of_jsbytes("power_big_int_positive_int"), + cst_power_int_positive_int= + caml_string_of_jsbytes("power_int_positive_int"), + Stdlib_Format=global_data.Stdlib__Format, + Stdlib_Buffer=global_data.Stdlib__Buffer, + Stdlib=global_data.Stdlib, + Stdlib_Sys=global_data.Stdlib__Sys, + Stdlib_Callback=global_data.Stdlib__Callback, + Stdlib_String=global_data.Stdlib__String, + Assert_failure=global_data.Assert_failure, + Zarith_version=[0,cst_1_12]; + caml_register_global(33,Zarith_version,"Zarith_version"); + var _a_=[248,cst_Z_Overflow,runtime.caml_fresh_oo_id(0)]; + runtime.ml_z_init(0); + caml_call2(Stdlib_Callback[2],cst_ml_z_overflow,_a_); var - _aQ_ = runtime.ml_z_gcdext_intern(_aM_, _aL_), - _aR_ = _aQ_[2], - _aS_ = _aQ_[1]; - return _aQ_[3] - ? [0, _aS_, _aR_, _f_(_d_(_aS_, _e_(_aM_, _aR_)), _aL_)] - : [0, _aS_, _f_(_d_(_aS_, _e_(_aL_, _aR_)), _aM_), _aR_]; - } - function _K_(_aK_, _aJ_){ - if(! caml_equal(_aK_, _t_) && ! caml_equal(_aJ_, _t_)) - return _k_(_e_(_h_(_aK_, runtime.ml_z_gcd(_aK_, _aJ_)), _aJ_)); - return _t_; - } - function _L_(_aI_, _aH_){ - return 0 <= _aH_ - ? runtime.ml_z_testbit(_aI_, _aH_) - : caml_call1(Stdlib[1], cst_Z_testbit); - } - function _M_(_aG_){return runtime.ml_z_testbit(_aG_, 0);} - function _N_(_aF_){return 1 - runtime.ml_z_testbit(_aF_, 0);} - function _O_(_aE_, _aD_, _aC_){ - if(_aD_ < 0) caml_call1(Stdlib[1], cst_Z_signed_extract_negative_); - if(_aC_ < 1) caml_call1(Stdlib[1], cst_Z_signed_extract_nonpositi); - return _L_(_aE_, (_aD_ + _aC_ | 0) - 1 | 0) - ? _o_(runtime.ml_z_extract(_o_(_aE_), _aD_, _aC_)) - : runtime.ml_z_extract(_aE_, _aD_, _aC_); - } - function _P_(_aB_){ - return 0 < runtime.ml_z_sign(_aB_) - ? runtime.ml_z_numbits(_aB_) - 1 | 0 - : caml_call1(Stdlib[1], cst_Z_log2); - } - function _Q_(_aA_){ - return 0 < runtime.ml_z_sign(_aA_) - ? runtime.ml_z_numbits(_j_(_aA_)) - : caml_call1(Stdlib[1], cst_Z_log2up); - } - function _R_(_ax_, _aw_){ + _S_=runtime.caml_int64_create_lo_mi_hi(1,0,0), + _aV_=[0,caml_string_of_jsbytes("q.ml"),486,25]; + function _b_(_gZ_) + {if(typeof _gZ_ === "number" && _gZ_ !== Stdlib[20])return - _gZ_ | 0; + return runtime.ml_z_neg(_gZ_)} + function _c_(_gX_,_gW_) + {if(typeof _gX_ === "number" && typeof _gW_ === "number") + {var _gY_=_gX_ + _gW_ | 0; + return 0 <= ((_gY_ ^ _gX_) & (_gY_ ^ _gW_)) + ?_gY_ + :runtime.ml_z_add(_gX_,_gW_)} + return runtime.ml_z_add(_gX_,_gW_)} + function _d_(_gU_,_gT_) + {if(typeof _gU_ === "number" && typeof _gT_ === "number") + {var _gV_=_gU_ - _gT_ | 0; + return 0 <= ((_gU_ ^ _gT_) & (_gV_ ^ _gU_)) + ?_gV_ + :runtime.ml_z_sub(_gU_,_gT_)} + return runtime.ml_z_sub(_gU_,_gT_)} + function _e_(_gS_,_gR_) + {if + (typeof _gS_ + === + "number" + && + typeof _gR_ + === + "number" + && + ! + runtime.ml_z_mul_overflows(_gS_,_gR_)) + return caml_mul(_gS_,_gR_); + return runtime.ml_z_mul(_gS_,_gR_)} + function _f_(_gQ_,_gP_) + {return typeof _gP_ === "number" + ?-1 === _gP_ + ?_b_(_gQ_) + :typeof _gQ_ === "number" + ?caml_div(_gQ_,_gP_) + :runtime.ml_z_div(_gQ_,_gP_) + :runtime.ml_z_div(_gQ_,_gP_)} + function _g_(_gO_,_gN_) + {return typeof _gN_ === "number" + ?-1 === _gN_ + ?0 + :typeof _gO_ === "number" + ?runtime.caml_mod(_gO_,_gN_) + :runtime.ml_z_rem(_gO_,_gN_) + :runtime.ml_z_rem(_gO_,_gN_)} + function _h_(_gM_,_gL_) + {return typeof _gL_ === "number" + ?-1 === _gL_ + ?_b_(_gM_) + :typeof _gM_ === "number" + ?caml_div(_gM_,_gL_) + :runtime.ml_z_divexact(_gM_,_gL_) + :runtime.ml_z_divexact(_gM_,_gL_)} + function _i_(_gK_) + {if(typeof _gK_ === "number" && _gK_ !== Stdlib[19])return _gK_ + 1 | 0; + return runtime.ml_z_succ(_gK_)} + function _j_(_gJ_) + {if(typeof _gJ_ === "number" && _gJ_ !== Stdlib[20])return _gJ_ - 1 | 0; + return runtime.ml_z_pred(_gJ_)} + function _k_(_gI_) + {return typeof _gI_ === "number" + ?0 <= _gI_ + ?_gI_ + :_gI_ !== Stdlib[20]?- _gI_ | 0:runtime.ml_z_abs(_gI_) + :runtime.ml_z_abs(_gI_)} + function _l_(_gH_,_gG_) + {if(typeof _gH_ === "number" && typeof _gG_ === "number") + return _gH_ & _gG_; + return runtime.ml_z_logand(_gH_,_gG_)} + function _m_(_gF_,_gE_) + {if(typeof _gF_ === "number" && typeof _gE_ === "number") + return _gF_ | _gE_; + return runtime.ml_z_logor(_gF_,_gE_)} + function _n_(_gD_,_gC_) + {if(typeof _gD_ === "number" && typeof _gC_ === "number") + return _gD_ ^ _gC_; + return runtime.ml_z_logxor(_gD_,_gC_)} + function _o_(_gB_) + {return typeof _gB_ === "number"?_gB_ ^ -1:runtime.ml_z_lognot(_gB_)} + function _p_(_gz_,_gy_) + {if(typeof _gz_ === "number" && 0 <= _gy_ && _gy_ < Stdlib_Sys[9]) + {var _gA_=_gz_ << _gy_; + return _gA_ >> _gy_ === _gz_?_gA_:runtime.ml_z_shift_left(_gz_,_gy_)} + return runtime.ml_z_shift_left(_gz_,_gy_)} + function _q_(_gw_,_gv_) + {if(typeof _gw_ === "number" && 0 <= _gv_) + {var _gx_=_gv_ < Stdlib_Sys[9]?_gv_:Stdlib_Sys[9] - 1 | 0; + return _gw_ >> _gx_} + return runtime.ml_z_shift_right(_gw_,_gv_)} + function _r_(_gu_,_gt_) + {if(typeof _gu_ === "number" && 0 <= _gt_) + return Stdlib_Sys[9] <= _gt_ + ?0 + :0 <= _gu_?_gu_ >>> _gt_ | 0:- ((- _gu_ | 0) >>> _gt_ | 0) | 0; + return runtime.ml_z_shift_right_trunc(_gu_,_gt_)} + function _s_(_gs_) + {return typeof _gs_ === "number"?_gs_:runtime.ml_z_to_int(_gs_)} + var _t_=0,_u_=1,_v_=-1; + function _w_(_gr_,_gq_) + {return 0 < runtime.ml_z_compare(_gr_,_gq_)?_gq_:_gr_} + function _x_(_gp_,_go_) + {return 0 <= runtime.ml_z_compare(_gp_,_go_)?_gp_:_go_} + function _y_(_gn_,_gm_){return runtime.ml_z_compare(_gn_,_gm_) <= 0?1:0} + function _z_(_gl_,_gk_){return 0 <= runtime.ml_z_compare(_gl_,_gk_)?1:0} + function _A_(_gj_,_gi_){return runtime.ml_z_compare(_gj_,_gi_) < 0?1:0} + function _B_(_gh_,_gg_){return 0 < runtime.ml_z_compare(_gh_,_gg_)?1:0} + function _C_(_gf_){return runtime.ml_z_format(cst_d,_gf_)} + function _D_(_ge_) + {return runtime.ml_z_of_substring_base + (0,_ge_,0,caml_ml_string_length(_ge_))} + function _E_(_gb_,_gc_,_gd_) + {return runtime.ml_z_of_substring_base(0,_gb_,_gc_,_gd_)} + function _F_(_ga_,_f$_) + {return runtime.ml_z_of_substring_base + (_ga_,_f$_,0,caml_ml_string_length(_f$_))} + function _G_(_f5_,_f4_) + {var _f6_=runtime.ml_z_div_rem(_f5_,_f4_),_f7_=_f6_[2],_f8_=_f6_[1]; + if(0 <= runtime.ml_z_sign(_f7_))return [0,_f8_,_f7_]; + if(0 <= runtime.ml_z_sign(_f4_)) + {var _f9_=_c_(_f7_,_f4_);return [0,_j_(_f8_),_f9_]} + var _f__=_d_(_f7_,_f4_); + return [0,_i_(_f8_),_f__]} + function _H_(_f3_,_f2_) + {return 0 <= runtime.ml_z_sign(_f2_) + ?runtime.ml_z_fdiv(_f3_,_f2_) + :runtime.ml_z_cdiv(_f3_,_f2_)} + function _I_(_f0_,_fZ_) + {var _f1_=_g_(_f0_,_fZ_); + return 0 <= runtime.ml_z_sign(_f1_)?_f1_:_c_(_f1_,_k_(_fZ_))} + function _J_(_fR_,_fQ_) + {var + _fS_=runtime.ml_z_sign(_fR_), + _fT_=runtime.ml_z_sign(_fQ_), + _fU_=_fS_ + 1 | 0; + if(2 >= _fU_ >>> 0) + switch(_fU_) + {case 0:if(0 === _fT_)return [0,_b_(_fR_),_v_,_t_];break; + case 1: + var _fY_=_fT_ + 1 | 0; + if(2 >= _fY_ >>> 0) + switch(_fY_) + {case 0:return [0,_b_(_fQ_),_t_,_v_]; + case 1:return [0,_t_,_t_,_t_]; + default:return [0,_fQ_,_t_,_u_]} + break; + default:if(0 === _fT_)return [0,_fR_,_u_,_t_]} + var + _fV_=runtime.ml_z_gcdext_intern(_fR_,_fQ_), + _fW_=_fV_[2], + _fX_=_fV_[1]; + return _fV_[3] + ?[0,_fX_,_fW_,_f_(_d_(_fX_,_e_(_fR_,_fW_)),_fQ_)] + :[0,_fX_,_f_(_d_(_fX_,_e_(_fQ_,_fW_)),_fR_),_fW_]} + function _K_(_fP_,_fO_) + {if(! caml_equal(_fP_,_t_) && ! caml_equal(_fO_,_t_)) + return _k_(_e_(_h_(_fP_,runtime.ml_z_gcd(_fP_,_fO_)),_fO_)); + return _t_} + function _L_(_fN_,_fM_) + {return 0 <= _fM_ + ?runtime.ml_z_testbit(_fN_,_fM_) + :caml_call1(Stdlib[1],cst_Z_testbit)} + function _M_(_fL_){return runtime.ml_z_testbit(_fL_,0)} + function _N_(_fK_){return 1 - runtime.ml_z_testbit(_fK_,0)} + function _O_(_fJ_,_fI_,_fH_) + {if(_fI_ < 0)caml_call1(Stdlib[1],cst_Z_signed_extract_negative_); + if(_fH_ < 1)caml_call1(Stdlib[1],cst_Z_signed_extract_nonpositi); + return _L_(_fJ_,(_fI_ + _fH_ | 0) - 1 | 0) + ?_o_(runtime.ml_z_extract(_o_(_fJ_),_fI_,_fH_)) + :runtime.ml_z_extract(_fJ_,_fI_,_fH_)} + function _P_(_fG_) + {return 0 < runtime.ml_z_sign(_fG_) + ?runtime.ml_z_numbits(_fG_) - 1 | 0 + :caml_call1(Stdlib[1],cst_Z_log2)} + function _Q_(_fF_) + {return 0 < runtime.ml_z_sign(_fF_) + ?runtime.ml_z_numbits(_j_(_fF_)) + :caml_call1(Stdlib[1],cst_Z_log2up)} + function _R_(_fC_,_fB_) + {var + _fD_=runtime.ml_z_to_int64(_fC_), + _fE_=_fB_?_fD_:runtime.caml_int64_or(_fD_,_S_); + return caml_int64_to_float(_fE_)} + function _T_(_fx_) + {if(typeof _fx_ === "number")return _fx_; + var _fy_=runtime.ml_z_numbits(_fx_); + if(63 >= _fy_)return caml_int64_to_float(runtime.ml_z_to_int64(_fx_)); + var _fz_=_fy_ - 55 | 0,_fA_=_q_(_fx_,_fz_); + return caml_ldexp_float + (_R_(_fA_,runtime.ml_z_equal(_fx_,_p_(_fA_,_fz_))),_fz_)} + function _U_(_fv_){var _fw_=_C_(_fv_);return caml_call1(Stdlib[42],_fw_)} + function _V_(_ft_,_fs_) + {var _fu_=_C_(_fs_);return caml_call2(Stdlib[66],_ft_,_fu_)} + function _W_(_fr_,_fq_){return _C_(_fq_)} + function _X_(_fo_,_fn_) + {var _fp_=_C_(_fn_);return caml_call2(Stdlib_Buffer[16],_fo_,_fp_)} + function _Y_(_fl_,_fk_) + {var _fm_=_C_(_fk_);return caml_call2(Stdlib_Format[13],_fl_,_fm_)} + function _Z_(_fj_){return _fj_} + function ___(_fi_,_fh_){return runtime.ml_z_equal(_fi_,_fh_)} var - _ay_ = runtime.ml_z_to_int64(_ax_), - _az_ = _aw_ ? _ay_ : runtime.caml_int64_or(_ay_, _S_); - return caml_int64_to_float(_az_); - } - function _T_(_as_){ - if(typeof _as_ === "number") return _as_; - var _at_ = runtime.ml_z_numbits(_as_); - if(63 >= _at_) return caml_int64_to_float(runtime.ml_z_to_int64(_as_)); - var _au_ = _at_ - 55 | 0, _av_ = _q_(_as_, _au_); - return runtime.caml_ldexp_float - (_R_(_av_, runtime.ml_z_equal(_as_, _p_(_av_, _au_))), _au_); - } - function _U_(_aq_){ - var _ar_ = runtime.ml_z_format(cst_d, _aq_); - return caml_call1(Stdlib[42], _ar_); - } - function _V_(_ao_, _an_){ - var _ap_ = runtime.ml_z_format(cst_d, _an_); - return caml_call2(Stdlib[66], _ao_, _ap_); - } - function _W_(_am_, _al_){return runtime.ml_z_format(cst_d, _al_);} - function _X_(_aj_, _ai_){ - var _ak_ = runtime.ml_z_format(cst_d, _ai_); - return caml_call2(Stdlib_Buffer[16], _aj_, _ak_); - } - function _Y_(_ag_, _af_){ - var _ah_ = runtime.ml_z_format(cst_d, _af_); - return caml_call2(Stdlib_Format[13], _ag_, _ah_); - } - function _Z_(_ae_){return _ae_;} - function ___(_ad_, _ac_){return runtime.ml_z_equal(_ad_, _ac_);} - var - _$_ = - [0, - ___, - _A_, - _B_, - _y_, - _z_, - function(_ab_, _aa_){return 1 - runtime.ml_z_equal(_ab_, _aa_);}], - Z = + Z= [0, _a_, _t_, @@ -29755,12318 +30366,11247 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ _o_, _p_, _q_, - _$_, - Zarith_version[1], + [0, + ___, + _A_, + _B_, + _y_, + _z_, + function(_fg_,_ff_){return 1 - runtime.ml_z_equal(_fg_,_ff_)}], + cst_1_12, _R_]; - runtime.caml_register_global(15, Z, "Z"); - return; - } - (globalThis)); - -//# 410 "../../.js/default/zarith/zarith.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_inf$1 = "+inf", - cst_inf$2 = "-inf", - cst_impossible_case$1 = "impossible case", - cst_undef$0 = "undef", - caml_equal = runtime.caml_equal, - caml_int64_to_float = runtime.caml_int64_to_float, - caml_ldexp_float = runtime.caml_ldexp_float, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_mul = runtime.caml_mul, - caml_string_get = runtime.caml_string_get, - caml_string_notequal = runtime.caml_string_notequal, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - cst = "/", - Stdlib_Format = global_data.Stdlib__Format, - Stdlib_Buffer = global_data.Stdlib__Buffer, - Stdlib = global_data.Stdlib, - Stdlib_String = global_data.Stdlib__String, - Z = global_data.Z, - Assert_failure = global_data.Assert_failure, - _W_ = [0, "q.ml", 486, 25], - cst_Q_of_string_invalid_digit = "Q.of_string: invalid digit", - cst_impossible_case$0 = cst_impossible_case$1, - cst_impossible_case = cst_impossible_case$1, - cst_0 = "0", - cst_inf = cst_inf$1, - cst_inf$0 = cst_inf$2, - cst_undef = cst_undef$0; - function _a_(_dg_, _df_){ - if(_dg_ !== Z[2] && _df_ !== Z[3]){ - var _dh_ = runtime.ml_z_gcd(_dg_, _df_); - if(_dh_ === Z[3]) return [0, _dg_, _df_]; - var _di_ = caml_call2(Z[20], _df_, _dh_); - return [0, caml_call2(Z[20], _dg_, _dh_), _di_]; - } - return [0, _dg_, Z[3]]; - } - function _b_(_db_, _da_){ - var _dc_ = runtime.ml_z_sign(_da_); - if(0 === _dc_){ - var _dd_ = Z[2]; - return [0, runtime.ml_z_sign(_db_), _dd_]; - } - if(0 < _dc_) return _a_(_db_, _da_); - var _de_ = caml_call1(Z[11], _da_); - return _a_(caml_call1(Z[11], _db_), _de_); - } - function _c_(_c$_){return [0, _c$_, Z[3]];} - function _d_(_c__){return _c_(_c__);} - function _e_(_c9_){return _c_(runtime.ml_z_of_int32(_c9_));} - function _f_(_c8_){return _c_(runtime.ml_z_of_int64(_c8_));} - function _g_(_c7_){return _c_(runtime.ml_z_of_nativeint(_c7_));} - function _h_(_c6_, _c5_){return _b_(_c6_, _c5_);} - var - _i_ = _c_(Z[2]), - _j_ = _c_(Z[3]), - _k_ = _c_(Z[4]), - _l_ = [0, Z[3], Z[2]], - _m_ = [0, Z[4], Z[2]], - _n_ = [0, Z[2], Z[2]]; - function _o_(_c1_){ - if(_c1_ == Stdlib[22]) return _l_; - if(_c1_ == Stdlib[23]) return _m_; - if(4 === runtime.caml_classify_float(_c1_)) return _n_; + caml_register_global(39,Z,"Z"); + function _$_(_fc_,_fb_) + {if(_fc_ !== 0 && _fb_ !== 1) + {var _fd_=runtime.ml_z_gcd(_fc_,_fb_); + if(_fd_ === 1)return [0,_fc_,_fb_]; + var _fe_=_h_(_fb_,_fd_); + return [0,_h_(_fc_,_fd_),_fe_]} + return [0,_fc_,_u_]} + function _aa_(_e__,_e9_) + {var _e$_=runtime.ml_z_sign(_e9_); + if(0 === _e$_)return [0,runtime.ml_z_sign(_e__),_t_]; + if(0 < _e$_)return _$_(_e__,_e9_); + var _fa_=_b_(_e9_); + return _$_(_b_(_e__),_fa_)} + function _ab_(_e8_){return [0,_e8_,_u_]} + function _ac_(_e7_){return _ab_(_e7_)} + function _ad_(_e6_){return _ab_(runtime.ml_z_of_int32(_e6_))} + function _ae_(_e5_){return _ab_(runtime.ml_z_of_int64(_e5_))} + function _af_(_e4_){return _ab_(runtime.ml_z_of_nativeint(_e4_))} + function _ag_(_e3_,_e2_){return _aa_(_e3_,_e2_)} var - _c2_ = runtime.caml_frexp_float(_c1_), - _c3_ = _c2_[2] - 53 | 0, - _c4_ = runtime.ml_z_of_float(caml_ldexp_float(_c2_[1], 53)); - return 0 <= _c3_ - ? _c_(caml_call2(Z[25], _c4_, _c3_)) - : _a_(_c4_, caml_call2(Z[25], Z[3], - _c3_ | 0)); - } - function _p_(_cZ_){ - if(_cZ_[2] !== Z[2]) return _cZ_[1] === Z[2] ? 0 : 4; - var _c0_ = runtime.ml_z_sign(_cZ_[1]) + 1 | 0; - if(2 >= _c0_ >>> 0) - switch(_c0_){case 0: return 2;case 1: break;default: return 1;} - return 3; - } - function _q_(_cY_){return _cY_[2] !== Z[2] ? 1 : 0;} - function _r_(_cX_){return _cX_[1];} - function _s_(_cW_){return _cW_[2];} - function _t_(_cV_){return runtime.ml_z_sign(_cV_[1]);} - function _u_(_cR_, _cQ_){ - var _cS_ = runtime.ml_z_equal(_cR_[1], _cQ_[1]); - if(_cS_) - var - _cT_ = runtime.ml_z_equal(_cR_[2], _cQ_[2]), - _cU_ = _cT_ ? 3 !== _p_(_cR_) ? 1 : 0 : _cT_; - else - var _cU_ = _cS_; - return _cU_; - } - function _v_(_cK_, _cJ_){ - var _cL_ = _p_(_cK_), _cM_ = _p_(_cJ_), switch$0 = 0; - switch(_cL_){ - case 1: - var _cP_ = _cM_ - 1 | 0; - if(2 >= _cP_ >>> 0) - switch(_cP_){ - case 0: - switch$0 = 2; break; - case 1: break; - default: switch$0 = 1; - } - break; - case 2: - if(1 === _cM_) - switch$0 = 1; - else if(_cM_) - switch(_cM_ - 2 | 0){ - case 1: - switch$0 = 1; break; - case 2: break; - default: switch$0 = 2; - } - break; - case 3: - if(3 !== _cM_) return -1; switch$0 = 2; break; - default: switch$0 = 1; - } - var switch$1 = 0; - switch(switch$0){ - case 1: - var _cN_ = _cM_ - 1 | 0; - if(2 >= _cN_ >>> 0) - switch(_cN_){ - case 0: - switch$1 = 1; break; - case 1: break; - default: return 1; - } - break; - case 0: break; - default: return 0; - } - if(! switch$1){ - var switch$2 = 0; - if(4 > _cL_) - switch(_cL_){ - case 0: break; + _ah_=_ab_(_t_), + _ai_=_ab_(_u_), + _ak_=[0,_u_,_t_], + _al_=[0,_v_,_t_], + _am_=[0,_t_,_t_], + _aj_=_ab_(_v_); + function _an_(_eY_) + {if(_eY_ == Stdlib[22])return _ak_; + if(_eY_ == Stdlib[23])return _al_; + if(4 === runtime.caml_classify_float(_eY_))return _am_; + var + _eZ_=runtime.caml_frexp_float(_eY_), + _e0_=_eZ_[2] - 53 | 0, + _e1_=runtime.ml_z_of_float(caml_ldexp_float(_eZ_[1],53)); + return 0 <= _e0_?_ab_(_p_(_e1_,_e0_)):_$_(_e1_,_p_(_u_,- _e0_ | 0))} + function _ao_(_eW_) + {if(_eW_[2] !== 0)return _eW_[1] === 0?0:4; + var _eX_=runtime.ml_z_sign(_eW_[1]) + 1 | 0; + if(2 >= _eX_ >>> 0) + switch(_eX_){case 0:return 2;case 1:break;default:return 1} + return 3} + function _ap_(_eV_){return _eV_[2] !== 0?1:0} + function _aq_(_eU_){return _eU_[1]} + function _ar_(_eT_){return _eT_[2]} + function _as_(_eS_){return runtime.ml_z_sign(_eS_[1])} + function _at_(_eO_,_eN_) + {var _eP_=runtime.ml_z_equal(_eO_[1],_eN_[1]); + if(_eP_) + var + _eQ_=runtime.ml_z_equal(_eO_[2],_eN_[2]), + _eR_=_eQ_?3 !== _ao_(_eO_)?1:0:_eQ_; + else + var _eR_=_eP_; + return _eR_} + function _au_(_eH_,_eG_) + {var _eI_=_ao_(_eH_),_eJ_=_ao_(_eG_),switch$0=0; + switch(_eI_) + {case 1: + var _eM_=_eJ_ - 1 | 0; + if(2 >= _eM_ >>> 0) + switch(_eM_) + {case 0:switch$0 = 2;break;case 1:break;default:switch$0 = 1} + break; case 2: - switch$2 = 2; break; - default: switch$2 = 1; - } - switch(switch$2){ - case 0: - if(2 !== _cM_){ - if(caml_equal(_cK_[2], _cJ_[2])) - return runtime.ml_z_compare(_cK_[1], _cJ_[1]); - var _cO_ = caml_call2(Z[14], _cJ_[1], _cK_[2]); - return runtime.ml_z_compare - (caml_call2(Z[14], _cK_[1], _cJ_[2]), _cO_); - } - break; - case 2: break; - } - return 1; - } - return -1; - } - function _w_(_cI_, _cH_){return 0 < _v_(_cI_, _cH_) ? _cH_ : _cI_;} - function _x_(_cG_, _cF_){return 0 <= _v_(_cG_, _cF_) ? _cG_ : _cF_;} - function _y_(_cz_, _cy_){ - var _cA_ = _p_(_cz_), _cB_ = _p_(_cy_); - if(3 !== _cA_){ - var _cC_ = _cB_ - 1 | 0, switch$0 = 0; - if(2 >= _cC_ >>> 0) - switch(_cC_){ - case 0: - switch$0 = 1; break; - case 1: break; - default: switch$0 = 2; - } - switch(switch$0){ - case 0: - var switch$1 = 0; - if(4 > _cA_) - switch(_cA_){ - case 0: break; - case 2: - switch$1 = 2; break; - default: switch$1 = 1; - } - switch(switch$1){ - case 0: - if(2 !== _cB_){ - if(caml_equal(_cz_[2], _cy_[2])) - return caml_call2(Z[37], _cz_[1], _cy_[1]); - var - _cD_ = caml_call2(Z[14], _cy_[1], _cz_[2]), - _cE_ = caml_call2(Z[14], _cz_[1], _cy_[2]); - return caml_call2(Z[37], _cE_, _cD_); - } + if(1 === _eJ_) + switch$0 = 1; + else + if(_eJ_) + switch(_eJ_ - 2 | 0) + {case 1:switch$0 = 1;break;case 2:break;default:switch$0 = 2} + break; + case 3:if(3 !== _eJ_)return -1;switch$0 = 2;break; + default:switch$0 = 1} + var switch$1=0; + switch(switch$0) + {case 1: + var _eK_=_eJ_ - 1 | 0; + if(2 >= _eK_ >>> 0) + switch(_eK_) + {case 0:switch$1 = 1;break;case 1:break;default:return 1} + break; + case 0:break; + default:return 0} + if(! switch$1) + {var switch$2=0; + if(4 > _eI_) + switch(_eI_) + {case 0:break;case 2:switch$2 = 1;break;default:switch$2 = 2} + var switch$3=0; + switch(switch$2) + {case 0: + if(2 !== _eJ_) + {if(caml_equal(_eH_[2],_eG_[2])) + return runtime.ml_z_compare(_eH_[1],_eG_[1]); + var _eL_=_e_(_eG_[1],_eH_[2]); + return runtime.ml_z_compare(_e_(_eH_[1],_eG_[2]),_eL_)} + switch$3 = 1; break; - case 2: break; - } - return 0; - case 2: break; - } - return 1; - } - return 0; - } - function _z_(_ct_, _cs_){ - var _cu_ = _p_(_ct_), _cv_ = _p_(_cs_); - if(3 !== _cu_){ - var switch$0 = 0; - if(2 <= _cv_) - switch(_cv_ - 2 | 0){ - case 2: break; - case 1: - switch$0 = 2; break; - default: switch$0 = 1; - } - switch(switch$0){ - case 0: - var switch$1 = 0; - if(4 > _cu_) - switch(_cu_){ - case 0: break; - case 1: - switch$1 = 2; break; - default: switch$1 = 1; - } - switch(switch$1){ - case 0: - if(1 !== _cv_){ - if(caml_equal(_ct_[2], _cs_[2])) - return caml_call2(Z[39], _ct_[1], _cs_[1]); - var - _cw_ = caml_call2(Z[14], _cs_[1], _ct_[2]), - _cx_ = caml_call2(Z[14], _ct_[1], _cs_[2]); - return caml_call2(Z[39], _cx_, _cw_); - } - break; - case 2: break; - } - return 1; - case 2: break; - } - return 0; - } - return 0; - } - function _A_(_cr_, _cq_){return _y_(_cq_, _cr_);} - function _B_(_cp_, _co_){return _z_(_co_, _cp_);} - function _C_(_ck_){ - switch(_p_(_ck_)){ - case 0: - return cst_0; - case 1: - return cst_inf; - case 2: - return cst_inf$0; - case 3: - return cst_undef; - default: - if(runtime.ml_z_equal(_ck_[2], Z[3])) - return caml_call1(Z[31], _ck_[1]); - var - _cl_ = caml_call1(Z[31], _ck_[2]), - _cm_ = caml_call2(Stdlib[28], cst, _cl_), - _cn_ = caml_call1(Z[31], _ck_[1]); - return caml_call2(Stdlib[28], _cn_, _cm_); - } - } - function _D_(_cj_){return caml_call2(Z[15], _cj_[1], _cj_[2]);} - function _E_(_ch_){var _ci_ = _D_(_ch_); return caml_call1(Z[29], _ci_);} - function _F_(_cg_){return runtime.ml_z_to_int32(_D_(_cg_));} - function _G_(_cf_){return runtime.ml_z_to_int64(_D_(_cf_));} - function _H_(_ce_){return runtime.ml_z_to_nativeint(_D_(_ce_));} - function _I_(_bX_){ - switch(_p_(_bX_)){ - case 0: - return 0.; - case 1: - return Stdlib[22]; - case 2: - return Stdlib[23]; - case 3: - return Stdlib[24]; - default: - var - _bY_ = _bX_[1], - _bZ_ = _bX_[2], - _b0_ = runtime.ml_z_numbits(_bY_), - _b1_ = runtime.ml_z_numbits(_bZ_); - if(53 >= _b0_ && 53 >= _b1_){ - var _cd_ = caml_int64_to_float(runtime.ml_z_to_int64(_bZ_)); - return caml_int64_to_float(runtime.ml_z_to_int64(_bY_)) / _cd_; - } - var - _b2_ = 0 <= runtime.ml_z_sign(_bY_) ? 1 : -1, - _b3_ = _b0_ - _b1_ | 0; - if(0 <= _b3_) - var _b5_ = caml_call2(Z[25], _bZ_, _b3_), _b4_ = _bY_; - else - var _b5_ = _bZ_, _b4_ = caml_call2(Z[25], _bY_, - _b3_ | 0); - var _b6_ = caml_call1(Z[10], _b4_); - if(caml_call2(Z[38], _b6_, _b5_)) - var _b8_ = _b3_, _b7_ = _b4_; - else - var _b8_ = _b3_ - 1 | 0, _b7_ = caml_call2(Z[25], _b4_, 1); - var - _b9_ = caml_call2(Z[25], _b7_, 54), - _b__ = caml_call2(Z[17], _b9_, _b5_); - if(-1080 >= _b8_) return caml_ldexp_float(_b2_, -1080); - var - _b$_ = - -1023 < _b8_ - ? Z[2] - : caml_call2(Z[25], _b2_, 55 + (-1023 - _b8_ | 0) | 0), - _ca_ = caml_call2(Z[12], _b$_, _b__[1]), - _cb_ = - 0 === runtime.ml_z_sign(_b__[2]) - ? _ca_ - : caml_call2(Z[22], Z[3], _ca_), - _cc_ = caml_call1(Z[30], _cb_); - return caml_ldexp_float(_cc_ - caml_call1(Z[30], _b$_), _b8_ - 54 | 0); - } - } - function _J_(_bV_){ - var _bW_ = _bV_[2]; - return [0, caml_call1(Z[11], _bV_[1]), _bW_]; - } - function _K_(_bT_){ - var _bU_ = _bT_[2]; - return [0, caml_call1(Z[10], _bT_[1]), _bU_]; - } - function _L_(_bP_, _bO_, _bN_){ - if(_bO_[2] === _bN_[2]){ - var _bQ_ = _bO_[2]; - return _a_(caml_call2(_bP_, _bO_[1], _bN_[1]), _bQ_); - } - var - _bR_ = caml_call2(Z[14], _bO_[2], _bN_[2]), - _bS_ = caml_call2(Z[14], _bN_[1], _bO_[2]); - return _a_ - (caml_call2(_bP_, caml_call2(Z[14], _bO_[1], _bN_[2]), _bS_), - _bR_); - } - function _M_(_bK_, _bJ_){ - if(_bK_[2] !== Z[2] && _bJ_[2] !== Z[2]) return _L_(Z[12], _bK_, _bJ_); - var _bL_ = _p_(_bK_), _bM_ = _p_(_bJ_), switch$0 = 0; - switch(_bL_){ - case 0: - return _bJ_; - case 1: - switch(_bM_){ - case 2: - switch$0 = 3; break; - case 0: - case 3: break; - default: switch$0 = 1; - } - break; - case 2: - switch(_bM_){ - case 2: - switch$0 = 2; break; - case 1: - switch$0 = 3; break; - case 4: - switch$0 = 4; break; - } - break; - case 4: - switch(_bM_){ - case 4: - return caml_call1(Stdlib[2], cst_impossible_case); - case 0: - case 3: break; - default: switch$0 = 2; - } - break; - } - var switch$1 = 0; - switch(switch$0){ - case 0: - if(3 !== _bM_){if(! _bM_) return _bK_; switch$1 = 2;} break; - case 1: - switch$1 = 2; break; - case 2: - switch$1 = 2 <= _bM_ ? 3 : 1; break; - case 3: - return _n_; - default: switch$1 = 3; - } - var switch$2 = 0; - switch(switch$1){ - case 2: - if(3 > _bL_) switch$2 = 1; break; - case 0: break; - case 1: - switch$2 = 1; break; - default: return _m_; - } - return switch$2 ? _l_ : _n_; - } - function _N_(_bG_, _bF_){ - if(_bG_[2] !== Z[2] && _bF_[2] !== Z[2]) return _L_(Z[13], _bG_, _bF_); - var _bH_ = _p_(_bG_), _bI_ = _p_(_bF_), switch$0 = 0; - switch(_bH_){ - case 0: - return _J_(_bF_); - case 1: - switch(_bI_){ - case 1: - switch$0 = 3; break; - case 0: - case 3: break; - default: switch$0 = 1; - } - break; - case 2: - switch(_bI_){ - case 1: - switch$0 = 2; break; - case 2: - switch$0 = 3; break; - case 4: - switch$0 = 4; break; - } - break; - case 4: - switch(_bI_){ - case 4: - return caml_call1(Stdlib[2], cst_impossible_case$0); - case 0: - case 3: break; - default: switch$0 = 2; - } - break; - } - var switch$1 = 0; - switch(switch$0){ - case 0: - if(3 !== _bI_){if(! _bI_) return _bG_; switch$1 = 2;} break; - case 1: - switch$1 = 2; break; - case 2: - switch$1 = 2 <= _bI_ ? 1 : 3; break; - case 3: - return _n_; - default: switch$1 = 3; - } - var switch$2 = 0; - switch(switch$1){ - case 2: - if(3 > _bH_) switch$2 = 1; break; - case 0: break; - case 1: - switch$2 = 1; break; - default: return _m_; - } - return switch$2 ? _l_ : _n_; - } - function _O_(_bB_, _bA_){ - if(_bB_[2] !== Z[2] && _bA_[2] !== Z[2]){ - var _bE_ = caml_call2(Z[14], _bB_[2], _bA_[2]); - return _a_(caml_call2(Z[14], _bB_[1], _bA_[1]), _bE_); - } - var _bC_ = Z[2], _bD_ = runtime.ml_z_sign(_bA_[1]); - return [0, caml_mul(runtime.ml_z_sign(_bB_[1]), _bD_), _bC_]; - } - function _P_(_bx_){ - var _by_ = runtime.ml_z_sign(_bx_[1]) + 1 | 0; - if(2 >= _by_ >>> 0) - switch(_by_){ - case 0: - var _bz_ = caml_call1(Z[11], _bx_[1]); - return [0, caml_call1(Z[11], _bx_[2]), _bz_]; - case 1: break; - default: return [0, _bx_[2], _bx_[1]]; - } - return _bx_[2] === Z[2] ? _n_ : _l_; - } - function _Q_(_bv_, _bu_){ - if(0 <= runtime.ml_z_sign(_bu_[1])) - return _O_(_bv_, [0, _bu_[2], _bu_[1]]); - var _bw_ = caml_call1(Z[11], _bu_[1]); - return _O_(_bv_, [0, caml_call1(Z[11], _bu_[2]), _bw_]); - } - function _R_(_bs_, _br_){ - if(_bs_[2] === Z[2]) return _bs_; - var _bt_ = _bs_[2]; - return _a_(caml_call2(Z[25], _bs_[1], _br_), _bt_); - } - function _S_(_bp_, _bo_){ - if(_bp_[2] === Z[2]) return _bp_; - var _bq_ = caml_call2(Z[25], _bp_[2], _bo_); - return _a_(_bp_[1], _bq_); - } - function _T_(_bn_){ - switch(_bn_){ - case 0: - return 2; - case 1: - return 8; - case 2: - return 10; - default: return 16; - } - } - function _U_(_bl_, _bk_, _bj_, _bi_){ - var _bm_ = _bk_; - for(;;){ - if(_bj_ <= _bm_) return 0; - if(caml_call1(_bi_, caml_string_get(_bl_, _bm_))) return [0, _bm_]; - var _bm_ = _bm_ + 1 | 0; - } - } - function _V_(_ar_){ - if(! caml_string_notequal(_ar_, "")) return _i_; - if(caml_string_notequal(_ar_, cst_inf$1)){ - if(! caml_string_notequal(_ar_, cst_inf$2)) return _m_; - if(caml_string_notequal(_ar_, "inf")){ - if(! caml_string_notequal(_ar_, cst_undef$0)) return _n_; - try{ - var - _a$_ = caml_call2(Stdlib_String[35], _ar_, 47), - _ba_ = - caml_call3 - (Z[6], - _ar_, - _a$_ + 1 | 0, - (caml_ml_string_length(_ar_) - _a$_ | 0) - 1 | 0), - _bb_ = _b_(caml_call3(Z[6], _ar_, 0, _a$_), _ba_); - return _bb_; - } - catch(_bc_){ - var _as_ = caml_wrap_exception(_bc_); - if(_as_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_as_, 0); - var _au_ = caml_ml_string_length(_ar_), _at_ = 0; - if(_au_ < 1) - var _av_ = [0, 0, _at_]; - else{ - var _a8_ = caml_string_get(_ar_, 0) - 43 | 0, switch$0 = 0; - if(2 >= _a8_ >>> 0){ - var switch$1 = 0; - switch(_a8_){ - case 0: - var _a__ = [0, 0, 1]; switch$1 = 1; break; - case 1: break; - default: var _a__ = [0, 1, 1]; switch$1 = 1; - } - if(switch$1){var _a9_ = _a__; switch$0 = 1;} - } - if(! switch$0) var _a9_ = [0, 0, _at_]; - var _av_ = _a9_; - } - var _aw_ = _av_[2]; - if(_au_ < (_aw_ + 2 | 0)) - var _ax_ = [0, 2, _aw_]; - else{ - var - _a5_ = caml_string_get(_ar_, _aw_), - _a6_ = caml_string_get(_ar_, _aw_ + 1 | 0), - switch$2 = 0; - if(48 === _a5_){ - var switch$3 = 0; - if(89 <= _a6_) - if(98 === _a6_) - switch$3 = 3; - else if(111 === _a6_) - switch$3 = 2; - else if(120 === _a6_) switch$3 = 1; else switch$2 = 1; - else if(66 === _a6_) - switch$3 = 3; - else if(79 === _a6_) - switch$3 = 2; - else if(88 <= _a6_) switch$3 = 1; else switch$2 = 1; - switch(switch$3){ - case 0: break; - case 1: - var _a7_ = [0, 3, _aw_ + 2 | 0]; break; - case 2: - var _a7_ = [0, 1, _aw_ + 2 | 0]; break; - default: var _a7_ = [0, 0, _aw_ + 2 | 0]; - } - } - else - switch$2 = 1; - if(switch$2) var _a7_ = [0, 2, _aw_]; - var _ax_ = _a7_; - } - var - _ay_ = _ax_[2], - _az_ = _ax_[1], - _aA_ = - 2 === _az_ - ? function - (_bf_){ - if(69 !== _bf_ && 101 !== _bf_) return 0; - return 1; - } - : 3 - <= _az_ - ? function - (_bg_){ - if(80 !== _bg_ && 112 !== _bg_) return 0; - return 1; - } - : function(_bh_){return 0;}, - _aB_ = _U_(_ar_, _ay_, _au_, _aA_); - if(_aB_) - var - _aC_ = _aB_[1], - _aD_ = _aC_ + 1 | 0, - _aE_ = - runtime.ml_z_of_substring_base(10, _ar_, _aD_, _au_ - _aD_ | 0), - _aG_ = _aC_, - _aF_ = caml_call1(Z[29], _aE_); - else - var _aG_ = _au_, _aF_ = 0; - if(2 <= _az_){ - var - _aH_ = - _U_(_ar_, _ay_, _aG_, function(_be_){return 46 === _be_ ? 1 : 0;}); - if(_aH_){ - var _aI_ = _aH_[1]; - if(2 === _az_) - var _aJ_ = 1; - else{ - if(3 > _az_) - throw caml_maybe_attach_backtrace([0, Assert_failure, _W_], 1); - var _aJ_ = 4; - } - var _aL_ = _aI_ + 1 | 0, _aM_ = _aG_ - 1 | 0, _aK_ = 0; - if(_aM_ < _aL_) - var _aN_ = _aK_; - else{ - var _a1_ = _aL_, _a0_ = _aK_; - for(;;){ - var _a2_ = caml_string_get(_ar_, _a1_), switch$4 = 0; - if(71 <= _a2_){ - if(97 <= _a2_){ - if(103 > _a2_) switch$4 = 1; - } - else if(95 === _a2_){var _a3_ = _a0_; switch$4 = 2;} - } - else - if(58 <= _a2_){ - if(65 <= _a2_) switch$4 = 1; - } - else if(48 <= _a2_) switch$4 = 1; - switch(switch$4){ + case 1:break; + default:switch$3 = 1} + if(switch$3)return 1} + return -1} + function _av_(_eF_,_eE_){return 0 < _au_(_eF_,_eE_)?_eE_:_eF_} + function _aw_(_eD_,_eC_){return 0 <= _au_(_eD_,_eC_)?_eD_:_eC_} + function _ax_(_ex_,_ew_) + {var _ey_=_ao_(_ex_),_ez_=_ao_(_ew_); + if(3 !== _ey_) + {var _eA_=_ez_ - 1 | 0,switch$0=0; + if(2 >= _eA_ >>> 0) + switch(_eA_) + {case 0:switch$0 = 2;break;case 1:break;default:switch$0 = 1} + var switch$1=0; + switch(switch$0) + {case 0: + var switch$2=0; + if(4 > _ey_) + switch(_ey_) + {case 0:break; + case 2:switch$1 = 1;switch$2 = 2;break; + default:switch$2 = 1} + var switch$3=0; + switch(switch$2) + {case 2:switch$3 = 1;break; case 0: - caml_call1(Stdlib[1], cst_Q_of_string_invalid_digit); - var _a3_ = _a0_; - break; - case 1: - var _a3_ = _a0_ + 1 | 0; break; - } - var _a4_ = _a1_ + 1 | 0; - if(_aM_ !== _a1_){var _a1_ = _a4_, _a0_ = _a3_; continue;} - var _aN_ = _a3_; + if(2 !== _ez_) + {if(caml_equal(_ex_[2],_ew_[2]))return _y_(_ex_[1],_ew_[1]); + var _eB_=_e_(_ew_[1],_ex_[2]); + return _y_(_e_(_ex_[1],_ew_[2]),_eB_)} + break + } + if(! switch$3)return 0; break; - } - } + case 1:break; + default:switch$1 = 1} + if(switch$1)return 1} + return 0} + function _ay_(_es_,_er_) + {var _et_=_ao_(_es_),_eu_=_ao_(_er_); + if(3 !== _et_) + {var switch$0=0; + if(2 <= _eu_) + switch(_eu_ - 2 | 0) + {case 2:break;case 1:switch$0 = 1;break;default:switch$0 = 2} + var switch$1=0; + switch(switch$0) + {case 0: + var switch$2=0; + if(4 > _et_) + switch(_et_) + {case 0:break; + case 1:switch$1 = 1;switch$2 = 2;break; + default:switch$2 = 1} + var switch$3=0; + switch(switch$2) + {case 2:switch$3 = 1;break; + case 0: + if(1 !== _eu_) + {if(caml_equal(_es_[2],_er_[2]))return _A_(_es_[1],_er_[1]); + var _ev_=_e_(_er_[1],_es_[2]); + return _A_(_e_(_es_[1],_er_[2]),_ev_)} + break + } + if(! switch$3)return 1; + break; + case 1:break; + default:switch$1 = 1} + if(switch$1)return 0} + return 0} + function _az_(_eq_,_ep_){return _ax_(_ep_,_eq_)} + function _aA_(_eo_,_en_){return _ay_(_en_,_eo_)} + function _aB_(_ej_) + {switch(_ao_(_ej_)) + {case 0:return cst_0; + case 1:return cst_inf; + case 2:return cst_inf$0; + case 3:return cst_undef; + default: + if(runtime.ml_z_equal(_ej_[2],1))return _C_(_ej_[1]); var - _aO_ = - _U_ - (_ar_, - _aI_ + 1 | 0, - _aG_, - function(_bd_){return 95 !== _bd_ ? 1 : 0;}), - _aP_ = _aO_ ? _aO_[1] : _aG_, - _aQ_ = caml_call3(Stdlib_String[15], _ar_, _aP_, _aG_ - _aP_ | 0), - _aR_ = caml_call3(Stdlib_String[15], _ar_, _ay_, _aI_ - _ay_ | 0), - _aS_ = caml_call2(Stdlib[28], _aR_, _aQ_), - _aT_ = _T_(_az_), - _aV_ = caml_mul(_aN_, _aJ_), - _aU_ = caml_call2(Z[7], _aT_, _aS_); + _ek_=_C_(_ej_[2]), + _el_=caml_call2(Stdlib[28],cst,_ek_), + _em_=_C_(_ej_[1]); + return caml_call2(Stdlib[28],_em_,_el_)}} + function _aC_(_ei_){return _f_(_ei_[1],_ei_[2])} + function _aD_(_eh_){return _s_(_aC_(_eh_))} + function _aE_(_eg_){return runtime.ml_z_to_int32(_aC_(_eg_))} + function _aF_(_ef_){return runtime.ml_z_to_int64(_aC_(_ef_))} + function _aG_(_ee_){return runtime.ml_z_to_nativeint(_aC_(_ee_))} + function _aH_(_dZ_) + {switch(_ao_(_dZ_)) + {case 0:return 0.; + case 1:return Stdlib[22]; + case 2:return Stdlib[23]; + case 3:return Stdlib[24]; + default: + var + _d0_=_dZ_[1], + _d1_=_dZ_[2], + _d2_=runtime.ml_z_numbits(_d0_), + _d3_=runtime.ml_z_numbits(_d1_); + if(53 >= _d2_ && 53 >= _d3_) + {var _ed_=caml_int64_to_float(runtime.ml_z_to_int64(_d1_)); + return caml_int64_to_float(runtime.ml_z_to_int64(_d0_)) / _ed_} + var _d4_=0 <= runtime.ml_z_sign(_d0_)?1:-1,_d5_=_d2_ - _d3_ | 0; + if(0 <= _d5_) + var _d7_=_p_(_d1_,_d5_),_d6_=_d0_; + else + var _d7_=_d1_,_d6_=_p_(_d0_,- _d5_ | 0); + if(_z_(_k_(_d6_),_d7_)) + var _d9_=_d5_,_d8_=_d6_; + else + var _d9_=_d5_ - 1 | 0,_d8_=_p_(_d6_,1); + var _d__=_G_(_p_(_d8_,54),_d7_); + if(-1080 >= _d9_)return caml_ldexp_float(_d4_,-1080); + var + _d$_=-1023 < _d9_?_t_:_p_(_d4_,55 + (-1023 - _d9_ | 0) | 0), + _ea_=_c_(_d$_,_d__[1]), + _eb_=0 === runtime.ml_z_sign(_d__[2])?_ea_:_m_(_u_,_ea_), + _ec_=_T_(_eb_); + return caml_ldexp_float(_ec_ - _T_(_d$_),_d9_ - 54 | 0)}} + function _aI_(_dX_){var _dY_=_dX_[2];return [0,_b_(_dX_[1]),_dY_]} + function _aJ_(_dV_){var _dW_=_dV_[2];return [0,_k_(_dV_[1]),_dW_]} + function _aK_(_dR_,_dQ_,_dP_) + {if(_dQ_[2] === _dP_[2]) + {var _dS_=_dQ_[2];return _$_(caml_call2(_dR_,_dQ_[1],_dP_[1]),_dS_)} + var _dT_=_e_(_dQ_[2],_dP_[2]),_dU_=_e_(_dP_[1],_dQ_[2]); + return _$_(caml_call2(_dR_,_e_(_dQ_[1],_dP_[2]),_dU_),_dT_)} + function _aL_(_dM_,_dL_) + {if(_dM_[2] !== 0 && _dL_[2] !== 0)return _aK_(_c_,_dM_,_dL_); + var _dN_=_ao_(_dM_),_dO_=_ao_(_dL_),switch$0=0; + switch(_dN_) + {case 0:return _dL_; + case 1: + switch(_dO_) + {case 2:switch$0 = 3;break;case 0:case 3:break;default:switch$0 = 1} + break; + case 2: + switch(_dO_) + {case 2:switch$0 = 2;break; + case 1:switch$0 = 3;break; + case 4:switch$0 = 4;break + } + break; + case 4: + switch(_dO_) + {case 4:return caml_call1(Stdlib[2],cst_impossible_case); + case 0: + case 3:break; + default:switch$0 = 2} + break } - else - var - _aV_ = 0, - _aU_ = - runtime.ml_z_of_substring_base - (_T_(_az_), _ar_, _ay_, _aG_ - _ay_ | 0); - } - else - var - _aV_ = 0, - _aU_ = - runtime.ml_z_of_substring_base - (_T_(_az_), _ar_, _ay_, _aG_ - _ay_ | 0); - var _aW_ = _aF_ - _aV_ | 0, _aX_ = 2 === _az_ ? 10 : 3 <= _az_ ? 2 : 1; - if(0 <= _aW_) - var - _aY_ = runtime.ml_z_pow(_aX_, _aW_), - _aZ_ = _c_(caml_call2(Z[14], _aU_, _aY_)); - else - var _aZ_ = _b_(_aU_, runtime.ml_z_pow(_aX_, - _aW_ | 0)); - return _av_[1] ? _J_(_aZ_) : _aZ_; - } - } - } - return _l_; - } - function _X_(_ap_){ - var _aq_ = _C_(_ap_); - return caml_call1(Stdlib[42], _aq_); - } - function _Y_(_an_, _am_){ - var _ao_ = _C_(_am_); - return caml_call2(Stdlib[66], _an_, _ao_); - } - function _Z_(_al_, _ak_){return _C_(_ak_);} - function ___(_ai_, _ah_){ - var _aj_ = _C_(_ah_); - return caml_call2(Stdlib_Buffer[16], _ai_, _aj_); - } - function _$_(_af_, _ae_){ - var _ag_ = _C_(_ae_); - return caml_call2(Stdlib_Format[13], _af_, _ag_); - } - function _aa_(_ad_){return _ad_;} - var - Q = + var switch$1=0; + switch(switch$0) + {case 0:if(3 === _dO_)switch$1 = 1;else if(! _dO_)return _dM_;break; + case 1:break; + case 2:switch$1 = 2 <= _dO_?3:2;break; + case 3:return _am_; + default:switch$1 = 3} + var switch$2=0; + switch(switch$1) + {case 0:if(3 > _dN_)switch$2 = 1;break; + case 1:break; + case 2:switch$2 = 1;break; + default:return _al_} + return switch$2?_ak_:_am_} + function _aM_(_dI_,_dH_) + {if(_dI_[2] !== 0 && _dH_[2] !== 0)return _aK_(_d_,_dI_,_dH_); + var _dJ_=_ao_(_dI_),_dK_=_ao_(_dH_),switch$0=0; + switch(_dJ_) + {case 0:return _aI_(_dH_); + case 1: + switch(_dK_) + {case 1:switch$0 = 3;break;case 0:case 3:break;default:switch$0 = 1} + break; + case 2: + switch(_dK_) + {case 1:switch$0 = 2;break; + case 2:switch$0 = 3;break; + case 4:switch$0 = 4;break + } + break; + case 4: + switch(_dK_) + {case 4:return caml_call1(Stdlib[2],cst_impossible_case$0); + case 0: + case 3:break; + default:switch$0 = 2} + break + } + var switch$1=0; + switch(switch$0) + {case 0:if(3 === _dK_)switch$1 = 1;else if(! _dK_)return _dI_;break; + case 1:break; + case 2:switch$1 = 2 <= _dK_?2:3;break; + case 3:return _am_; + default:switch$1 = 3} + var switch$2=0; + switch(switch$1) + {case 0:if(3 > _dJ_)switch$2 = 1;break; + case 1:break; + case 2:switch$2 = 1;break; + default:return _al_} + return switch$2?_ak_:_am_} + function _aN_(_dE_,_dD_) + {if(_dE_[2] !== 0 && _dD_[2] !== 0) + {var _dG_=_e_(_dE_[2],_dD_[2]);return _$_(_e_(_dE_[1],_dD_[1]),_dG_)} + var _dF_=runtime.ml_z_sign(_dD_[1]); + return [0,caml_mul(runtime.ml_z_sign(_dE_[1]),_dF_),_t_]} + function _aO_(_dA_) + {var _dB_=runtime.ml_z_sign(_dA_[1]) + 1 | 0; + if(2 >= _dB_ >>> 0) + switch(_dB_) + {case 0:var _dC_=_b_(_dA_[1]);return [0,_b_(_dA_[2]),_dC_]; + case 1:break; + default:return [0,_dA_[2],_dA_[1]]} + return _dA_[2] === 0?_am_:_ak_} + function _aP_(_dy_,_dx_) + {if(0 <= runtime.ml_z_sign(_dx_[1])) + return _aN_(_dy_,[0,_dx_[2],_dx_[1]]); + var _dz_=_b_(_dx_[1]); + return _aN_(_dy_,[0,_b_(_dx_[2]),_dz_])} + function _aQ_(_dv_,_du_) + {if(_dv_[2] === 0)return _dv_; + var _dw_=_dv_[2]; + return _$_(_p_(_dv_[1],_du_),_dw_)} + function _aR_(_ds_,_dr_) + {if(_ds_[2] === 0)return _ds_; + var _dt_=_p_(_ds_[2],_dr_); + return _$_(_ds_[1],_dt_)} + function _aS_(_dq_) + {switch(_dq_) + {case 0:return 2;case 1:return 8;case 2:return 10;default:return 16}} + function _aT_(_do_,_dn_,_dm_,_dl_) + {var _dp_=_dn_; + for(;;) + {if(_dm_ <= _dp_)return 0; + if(caml_call1(_dl_,caml_string_get(_do_,_dp_)))return [0,_dp_]; + var _dp_=_dp_ + 1 | 0}} + function _aU_(_cy_) + {if(! caml_string_notequal(_cy_,cst$0))return _ah_; + if(caml_string_notequal(_cy_,cst_inf$1)) + {if(! caml_string_notequal(_cy_,cst_inf$2))return _al_; + if(caml_string_notequal(_cy_,cst_inf$3)) + {if(! caml_string_notequal(_cy_,cst_undef$0))return _am_; + try + {var + _dc_=caml_call2(Stdlib_String[35],_cy_,47), + _dd_= + runtime.ml_z_of_substring_base + (0, + _cy_, + _dc_ + 1 | 0, + (caml_ml_string_length(_cy_) - _dc_ | 0) - 1 | 0), + _de_=_aa_(runtime.ml_z_of_substring_base(0,_cy_,0,_dc_),_dd_); + return _de_} + catch(_df_) + {_df_ = caml_wrap_exception(_df_); + if(_df_ !== Stdlib[8])throw _df_; + var _cA_=caml_ml_string_length(_cy_),_cz_=0; + if(_cA_ < 1) + var _cB_=[0,0,_cz_]; + else + {var _c$_=caml_string_get(_cy_,0) - 43 | 0,switch$0=0; + if(2 >= _c$_ >>> 0) + {var switch$1=0; + switch(_c$_) + {case 0:var _db_=[0,0,1];break; + case 1:switch$1 = 1;break; + default:var _db_=[0,1,1]} + if(! switch$1){var _da_=_db_;switch$0 = 1}} + if(! switch$0)var _da_=[0,0,_cz_]; + var _cB_=_da_} + var _cC_=_cB_[2]; + if(_cA_ < (_cC_ + 2 | 0)) + var _cD_=[0,2,_cC_]; + else + {var + _c8_=caml_string_get(_cy_,_cC_), + _c9_=caml_string_get(_cy_,_cC_ + 1 | 0), + switch$2=0; + if(48 === _c8_) + {var switch$3=0; + if(89 <= _c9_) + {if(98 === _c9_) + switch$3 = 2; + else + if(111 === _c9_) + switch$3 = 1; + else + if(120 !== _c9_){switch$2 = 1;switch$3 = 3}} + else + if(66 === _c9_) + switch$3 = 2; + else + if(79 === _c9_) + switch$3 = 1; + else + if(88 > _c9_){switch$2 = 1;switch$3 = 3} + switch(switch$3) + {case 3:break; + case 0:var _c__=[0,3,_cC_ + 2 | 0];break; + case 1:var _c__=[0,1,_cC_ + 2 | 0];break; + default:var _c__=[0,0,_cC_ + 2 | 0]}} + else + switch$2 = 1; + if(switch$2)var _c__=[0,2,_cC_]; + var _cD_=_c__} + var + _cE_=_cD_[2], + _cF_=_cD_[1], + _cG_= + 2 === _cF_ + ?function(_di_) + {if(69 !== _di_ && 101 !== _di_)return 0;return 1} + :3 <= _cF_ + ?function(_dj_) + {if(80 !== _dj_ && 112 !== _dj_)return 0;return 1} + :function(_dk_){return 0}, + _cH_=_aT_(_cy_,_cE_,_cA_,_cG_); + if(_cH_) + var + _cI_=_cH_[1], + _cJ_=_cI_ + 1 | 0, + _cL_=_cI_, + _cK_= + _s_ + (runtime.ml_z_of_substring_base(10,_cy_,_cJ_,_cA_ - _cJ_ | 0)); + else + var _cL_=_cA_,_cK_=0; + if(2 <= _cF_) + {var + _cM_= + _aT_(_cy_,_cE_,_cL_,function(_dh_){return 46 === _dh_?1:0}); + if(_cM_) + {var _cN_=_cM_[1]; + if(2 === _cF_) + var _cO_=1; + else + {if(3 > _cF_)throw [0,Assert_failure,_aV_];var _cO_=4} + var _cQ_=_cN_ + 1 | 0,_cR_=_cL_ - 1 | 0,_cP_=0; + if(_cR_ < _cQ_) + var _cS_=_cP_; + else + {var _c4_=_cQ_,_c3_=_cP_; + for(;;) + {var _c5_=caml_string_get(_cy_,_c4_),switch$4=0; + if(71 <= _c5_) + {if(97 <= _c5_) + {if(103 > _c5_)switch$4 = 1} + else + if(95 === _c5_){var _c6_=_c3_;switch$4 = 2}} + else + if(58 <= _c5_) + {if(65 <= _c5_)switch$4 = 1} + else + if(48 <= _c5_)switch$4 = 1; + switch(switch$4) + {case 0: + caml_call1(Stdlib[1],cst_Q_of_string_invalid_digit); + var _c6_=_c3_; + break; + case 1:var _c6_=_c3_ + 1 | 0;break + } + var _c7_=_c4_ + 1 | 0; + if(_cR_ !== _c4_){var _c4_=_c7_,_c3_=_c6_;continue} + var _cS_=_c6_; + break}} + var + _cT_= + _aT_ + (_cy_, + _cN_ + 1 | 0, + _cL_, + function(_dg_){return 95 !== _dg_?1:0}), + _cU_=_cT_?_cT_[1]:_cL_, + _cV_=caml_call3(Stdlib_String[15],_cy_,_cU_,_cL_ - _cU_ | 0), + _cW_=caml_call3(Stdlib_String[15],_cy_,_cE_,_cN_ - _cE_ | 0), + _cX_=caml_call2(Stdlib[28],_cW_,_cV_), + _cZ_=caml_mul(_cS_,_cO_), + _cY_=_F_(_aS_(_cF_),_cX_)} + else + var + _cZ_=0, + _cY_= + runtime.ml_z_of_substring_base + (_aS_(_cF_),_cy_,_cE_,_cL_ - _cE_ | 0)} + else + var + _cZ_=0, + _cY_= + runtime.ml_z_of_substring_base + (_aS_(_cF_),_cy_,_cE_,_cL_ - _cE_ | 0); + var + _c0_=_cK_ - _cZ_ | 0, + _c1_=2 === _cF_?10:3 <= _cF_?2:1, + _c2_= + 0 <= _c0_ + ?_ab_(_e_(_cY_,runtime.ml_z_pow(_c1_,_c0_))) + :_aa_(_cY_,runtime.ml_z_pow(_c1_,- _c0_ | 0)); + return _cB_[1]?_aI_(_c2_):_c2_}}} + return _ak_} + function _aW_(_cw_) + {var _cx_=_aB_(_cw_);return caml_call1(Stdlib[42],_cx_)} + function _aX_(_cu_,_ct_) + {var _cv_=_aB_(_ct_);return caml_call2(Stdlib[66],_cu_,_cv_)} + function _aY_(_cs_,_cr_){return _aB_(_cr_)} + function _aZ_(_cp_,_co_) + {var _cq_=_aB_(_co_);return caml_call2(Stdlib_Buffer[16],_cp_,_cq_)} + function _a0_(_cm_,_cl_) + {var _cn_=_aB_(_cl_);return caml_call2(Stdlib_Format[13],_cm_,_cn_)} + function _a1_(_ck_){return _ck_} + var + Q= [0, + _aa_, + _ah_, + _ai_, + _aj_, + _ak_, + _al_, + _am_, + _ab_, + _ac_, + _ad_, + _ae_, + _af_, + _ag_, + _an_, + _aU_, + _aq_, + _ar_, + _ao_, + _ap_, + _as_, + _au_, + _at_, + _av_, + _aw_, + _ax_, + _az_, + _ay_, + _aA_, + _aC_, + _aD_, + _aE_, + _aF_, + _aG_, + _aB_, + _aH_, + _aI_, + _aJ_, + _aL_, + _aM_, + _aN_, + _aO_, + _aP_, + _aQ_, + _aR_, + _aW_, + _aX_, + _aY_, + _aZ_, + _a0_, + _aI_, + _a1_, + _aL_, + _aM_, + _aN_, + _aP_, + _aQ_, + _aR_, + _ac_, + _ag_, + _ab_, + _aa_, + _at_, + _ay_, + _aA_, + _ax_, + _az_, + function(_cj_,_ci_){return 1 - _at_(_cj_,_ci_)}]; + caml_register_global(42,Q,"Q"); + function _a2_(_ch_,_cg_){return _c_(_ch_,_cg_)} + function _a3_(_cf_,_ce_){return _e_(_cf_,_ce_)} + function _a4_(_cd_){return _e_(_cd_,_cd_)} + function _a5_(_cc_){return runtime.ml_z_sqrt(_cc_)} + function _a6_(_cb_,_ca_){return runtime.ml_z_gcd(_cb_,_ca_)} + function _a7_(_b$_,_b__){return runtime.ml_z_pow(_b$_,_b__)} + function _a8_(_b9_,_b8_){return runtime.ml_z_pow(_b9_,_s_(_b8_))} + function _a9_(_b7_,_b6_) + {if(_b6_ < 0)throw [0,Stdlib[6],cst_power_int_positive_int]; + return runtime.ml_z_pow(_b7_,_b6_)} + function _a__(_b5_,_b4_) + {if(_b4_ < 0)throw [0,Stdlib[6],cst_power_big_int_positive_int]; + return runtime.ml_z_pow(_b5_,_b4_)} + function _a$_(_b3_,_b2_) + {if(runtime.ml_z_sign(_b2_) < 0) + throw [0,Stdlib[6],cst_power_int_positive_big_int]; + return _a8_(_b3_,_b2_)} + function _ba_(_b1_,_b0_) + {if(runtime.ml_z_sign(_b0_) < 0) + throw [0,Stdlib[6],cst_power_big_int_positive_big]; + return _a8_(_b1_,_b0_)} + function _bb_(_bZ_){return runtime.ml_z_sign(_bZ_)} + function _bc_(_bY_,_bX_){return runtime.ml_z_compare(_bY_,_bX_)} + function _bd_(_bW_,_bV_){return runtime.ml_z_equal(_bW_,_bV_)} + function _be_(_bU_,_bT_){return runtime.ml_z_compare(_bU_,_bT_) <= 0?1:0} + function _bf_(_bS_,_bR_){return 0 <= runtime.ml_z_compare(_bS_,_bR_)?1:0} + function _bg_(_bQ_,_bP_){return runtime.ml_z_compare(_bQ_,_bP_) < 0?1:0} + function _bh_(_bO_,_bN_){return 0 < runtime.ml_z_compare(_bO_,_bN_)?1:0} + function _bi_(_bM_){return runtime.ml_z_size(_bM_)} + function _bj_(_bL_){return _bL_} + function _bk_(_bK_){return runtime.ml_z_fits_int(_bK_)} + function _bl_(_bH_) + {try + {var _bI_=_s_(_bH_);return _bI_} + catch(_bJ_) + {_bJ_ = caml_wrap_exception(_bJ_); + if(_bJ_ === _a_)return caml_call1(Stdlib[2],cst_int_of_big_int); + throw _bJ_}} + function _bm_(_bG_){return runtime.ml_z_of_int32(_bG_)} + function _bn_(_bF_){return runtime.ml_z_of_nativeint(_bF_)} + function _bo_(_bE_){return runtime.ml_z_of_int64(_bE_)} + function _bp_(_bB_) + {try + {var _bC_=runtime.ml_z_to_int32(_bB_);return _bC_} + catch(_bD_) + {_bD_ = caml_wrap_exception(_bD_); + if(_bD_ === _a_)return caml_call1(Stdlib[2],cst_int32_of_big_int); + throw _bD_}} + function _bq_(_by_) + {try + {var _bz_=runtime.ml_z_to_nativeint(_by_);return _bz_} + catch(_bA_) + {_bA_ = caml_wrap_exception(_bA_); + if(_bA_ === _a_)return caml_call1(Stdlib[2],cst_nativeint_of_big_int); + throw _bA_}} + function _br_(_bv_) + {try + {var _bw_=runtime.ml_z_to_int64(_bv_);return _bw_} + catch(_bx_) + {_bx_ = caml_wrap_exception(_bx_); + if(_bx_ === _a_)return caml_call1(Stdlib[2],cst_int64_of_big_int); + throw _bx_}} + var + Big_int_Z= + [0, + _t_, + _u_, _b_, - _i_, - _j_, _k_, + _c_, + _i_, + _a2_, + _d_, + _j_, + _e_, + _a3_, + _a4_, + _a5_, + _G_, + _H_, + _I_, + _a6_, + _a7_, + _a8_, + _a9_, + _a__, + _a$_, + _ba_, + _bb_, + _bc_, + _bd_, + _be_, + _bf_, + _bg_, + _bh_, + _x_, + _w_, + _bi_, + _C_, + _D_, + _bj_, + _bk_, + _bl_, + _bm_, + _bn_, + _bo_, + _bp_, + _bq_, + _br_, + _T_, _l_, _m_, _n_, - _c_, - _d_, - _e_, - _f_, - _g_, - _h_, - _o_, - _V_, - _r_, - _s_, _p_, _q_, - _t_, - _v_, - _u_, - _w_, - _x_, - _y_, - _A_, - _z_, - _B_, - _D_, - _E_, - _F_, - _G_, - _H_, - _C_, - _I_, - _J_, - _K_, - _M_, - _N_, - _O_, - _P_, - _Q_, - _R_, - _S_, - _X_, - _Y_, - _Z_, - ___, - _$_, - _J_, - _aa_, - _M_, - _N_, - _O_, - _Q_, - _R_, - _S_, - _d_, - _h_, - _c_, - _b_, - _u_, - _z_, - _B_, - _y_, - _A_, - function(_ac_, _ab_){return 1 - _u_(_ac_, _ab_);}]; - runtime.caml_register_global(21, Q, "Q"); - return; - } + _r_, + function(_bu_,_bt_,_bs_){return runtime.ml_z_extract(_bu_,_bt_,_bs_)}]; + caml_register_global(43,Big_int_Z,"Big_int_Z"); + return} (globalThis)); -//# 1 "../../.js/default/zarith_stubs_js/zarith_stubs_js.cma.js" +//# 1 "../../.js/zarith_stubs_js/zarith_stubs_js.cma.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - - -//# 1 "../../.js/default/yojson/yojson.cma.js" -// Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - -//# 6 "../../.js/default/yojson/yojson.cma.js" (function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_E_E_E_1_8_v_9_1_0_j_n_i_1_ = - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", - cst_U_a_w_A_n_0_G_m_X_4_5_5_0_ = - "\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0", - cst_9_A_A_F_T_a_a_h_m_q_u_y_4_ = - "\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02", - cst$104 = - "\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff", - cst_E_9_E_E_s_f_k_f_o_R_U_0_0_ = - "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff", - cst$83 = "", - cst$101 = "\n", - cst$92 = " '", - cst_len = " len=", - cst_of_non_array_type$1 = " of non-array type ", - cst_out_of_bounds$1 = " out of bounds", - cst_start = " start=", - cst_10g = "%.10g", - cst_11g = "%.11g", - cst_12g = "%.12g", - cst_13g = "%.13g", - cst_14g = "%.14g", - cst_15g = "%.15g", - cst_16g = "%.16g", - cst_17g = "%.17g", - cst_1g = "%.1g", - cst_2g = "%.2g", - cst_3g = "%.3g", - cst_4g = "%.4g", - cst_5g = "%.5g", - cst_6g = "%.6g", - cst_7g = "%.7g", - cst_8g = "%.8g", - cst_9g = "%.9g", - cst_B = "%B", - cst_F = "%F", - cst_S = "%S", - cst_a = "%a", - cst_a$0 = "%a@?", - cst_d = "%d", - cst_s_i_s_s = "%s %i, %s:\n%s", - cst_s_s_s = "%s '%s%s'", - cst_s_s = "%s '%s'", - cst_s$0 = "%s@ ", - cst_of_non_object_type$1 = "' of non-object type ", - cst$99 = "()", - cst_a_0_2 = "(@,%a@;<0 -2>)", - cst$84 = "(@[", - cst_Some$2 = "(Some ", - cst$89 = ")", - cst$91 = "*/", - cst$95 = ",", - cst$93 = ", ", - cst_line = ", line", - cst$85 = ",@ ", - cst_Infinity$12 = "-Infinity", - cst_Infinity_value_not_allowed$12 = - "-Infinity value not allowed in standard JSON", - cst_0$8 = ".0", - cst$90 = "/*", - cst$94 = ":\n", - cst$100 = ": ", - cst$82 = ";@ ", - cst_s = "<%s>", - cst_2 = "<2>", - cst_hv2_s_a = "<@[%s: %a@]>", - cst_hov2 = "", - cst_hov = "", - cst_hv2 = "", - cst_hv = "", - cst$81 = "@ ", - cst$87 = "@,", - cst$88 = "@,]@]", - cst_0_2 = "@;<0 -2>", - cst_1_2 = "@;<1 -2>", - cst_1_0 = "@;<1 0>", - cst_2$0 = "@[<2>[", - cst_hov2$0 = "@[", - cst_hv2$0 = "@[", - cst_hv2_a = "@[%a@]", - cst_hv2_s_a$0 = "@[%s: %a@]", - cst$96 = "@]", - cst$86 = "@])", - cst_Blank_input_data$5 = "Blank input data", - cst_Can_t_convert_each_element$1 = - "Can't convert each element of non-array type ", - cst_Can_t_get_index$1 = "Can't get index ", - cst_Can_t_get_member$1 = "Can't get member '", - cst_Can_t_map_function_over_no$1 = - "Can't map function over non-array type ", - cst_Expected_but_found$49 = "Expected '\"' but found", - cst_Expected_but_found$54 = "Expected '(' but found", - cst_Expected_or_but_found$52 = "Expected '(' or '[' but found", - cst_Expected_but_found$51 = "Expected ')' but found", - cst_Expected_or_but_found$48 = "Expected ')' or '' but found", - cst_Expected_but_found$48 = "Expected ',' but found", - cst_Expected_or_but_found$50 = "Expected ',' or ')' but found", - cst_Expected_or_but_found$47 = "Expected ',' or ']' but found", - cst_Expected_or_but_found$51 = "Expected ',' or '}' but found", - cst_Expected_but_found$53 = "Expected ':' but found", - cst_Expected_or_but_found$45 = "Expected ':' or '>' but found", - cst_Expected_but_found$46 = "Expected '<' but found", - cst_Expected_or_but_found$46 = "Expected '<', '\"' or '[' but found", - cst_Expected_but_found$47 = "Expected '>' but found", - cst_Expected_but_found$50 = "Expected '[' but found", - cst_Expected_but_found$55 = "Expected ']' but found", - cst_Expected_or_but_found$49 = "Expected ']' or '' but found", - cst_Expected_null_but_found$2 = "Expected 'null' but found", - cst_Expected_true_or_false_but$2 = "Expected 'true' or 'false' but found", - cst_Expected_but_found$52 = "Expected '{' but found", - cst_Expected_a_number_but_foun$2 = - "Expected a number but found a string that doesn't even represent a number", - cst_Expected_an_int32_but_foun$2 = - "Expected an int32 but found a string that doesn't even represent an integer", - cst_Expected_an_int64_but_foun$2 = - "Expected an int64 but found a string that doesn't even represent an integer", - cst_Expected_an_integer_but_fo$2 = - "Expected an integer but found a string that doesn't even represent an integer", - cst_Expected_array_got$1 = "Expected array, got ", - cst_Expected_bool_or_null_got$1 = "Expected bool or null, got ", - cst_Expected_bool_got$1 = "Expected bool, got ", - cst_Expected_float_or_null_got$1 = "Expected float or null, got ", - cst_Expected_float_got$1 = "Expected float, got ", - cst_Expected_int_or_null_got$1 = "Expected int or null, got ", - cst_Expected_int_got$1 = "Expected int, got ", - cst_Expected_int32_but_found$2 = "Expected int32 but found", - cst_Expected_int64_but_found$2 = "Expected int64 but found", - cst_Expected_integer_but_found$2 = "Expected integer but found", - cst_Expected_number_but_found$2 = "Expected number but found", - cst_Expected_number_or_null_go$1 = "Expected number or null, got ", - cst_Expected_number_got$1 = "Expected number, got ", - cst_Expected_object_got$1 = "Expected object, got ", - cst_Expected_string_or_identif$11 = - "Expected string or identifier but found", - cst_Expected_string_or_null_go$1 = "Expected string or null, got ", - cst_Expected_string_got$1 = "Expected string, got ", - cst_Expected_two_objects_check$1 = "Expected two objects, check inputs", - cst_File = "File ", - cst_File_s_line = "File %s, line", - cst_Index$1 = "Index ", - cst_Infinity$11 = "Infinity", - cst_Infinity_value_not_allowed$11 = - "Infinity value not allowed in standard JSON", - cst_Int_overflow$7 = "Int overflow", - cst_Int32_overflow$5 = "Int32 overflow", - cst_Int8_overflow$2 = "Int8 overflow", - cst_Invalid_escape_sequence$2 = "Invalid escape sequence", - cst_Invalid_low_surrogate_for_$2 = - "Invalid low surrogate for code point beyond U+FFFF", - cst_Invalid_string_literal$8 = "Invalid string literal", - cst_Invalid_token$15 = "Invalid token", - cst_Junk_after_end_of_JSON_val$2 = "Junk after end of JSON value:", - cst_Line$2 = "Line", - cst_Missing_escape_sequence_re$2 = - "Missing escape sequence representing low surrogate for code point beyond U+FFFF", - cst_NaN$5 = "NaN", - cst_NaN_value_not_allowed_in_s$5 = - "NaN value not allowed in standard JSON", - cst_None$2 = "None", - cst_Unexpected_end_of_input$140 = "Unexpected end of input", - cst_Unterminated_comment$5 = "Unterminated comment", - cst_1_0_hov_a_1_2 = "[@;<1 0>@[%a@]@;<1 -2>]", - cst_1_0_hv_a_1_2 = "[@;<1 0>@[%a@]@;<1 -2>]", - cst$98 = "[]", - cst$102 = '\\"', - cst$103 = "\\\\", - cst_b$3 = "\\b", - cst_f$3 = "\\f", - cst_n$3 = "\\n", - cst_r$3 = "\\r", - cst_t$3 = "\\t", - cst_u00$3 = "\\u00", - cst_Assoc = "`Assoc (", - cst_Assoc_hov = "`Assoc (@[", - cst_Bool = "`Bool (", - cst_Bool_hov = "`Bool (@[", - cst_Float = "`Float (", - cst_Float_hov = "`Float (@[", - cst_Floatlit = "`Floatlit (", - cst_Floatlit_hov = "`Floatlit (@[", - cst_Int = "`Int (", - cst_Int_hov = "`Int (@[", - cst_Intlit = "`Intlit (", - cst_Intlit_hov = "`Intlit (@[", - cst_List = "`List (", - cst_List_hov = "`List (@[", - cst_Null$3 = "`Null", - cst_String = "`String (", - cst_String_hov = "`String (@[", - cst_Stringlit = "`Stringlit (", - cst_Stringlit_hov = "`Stringlit (@[", - cst_Tuple = "`Tuple (", - cst_Tuple_hov = "`Tuple (@[", - cst_Variant = "`Variant (", - cst_Variant_hov = "`Variant (@[", - cst_array$1 = "array", - cst_bool$1 = "bool", - cst_byte = "byte ", - cst_byte_i = "byte %i", - cst_bytes = "bytes ", - cst_bytes_i_i = "bytes %i-%i", - cst_false$3 = "false", - cst_float$1 = "float", - cst_int$1 = "int", - cst_intlit$1 = "intlit", - cst_lib_read_mll = "lib/read.mll", - cst_null$9 = "null", - cst_object$1 = "object", - cst_src = "src=", - cst_src_S_start_i_len_i = "src=%S start=%i len=%i\n%!", - cst_string$1 = "string", - cst_true$3 = "true", - cst_tuple$1 = "tuple", - cst_variant$1 = "variant", - cst_1_0_a_1_2 = "{@;<1 0>%a@;<1 -2>}", - cst$97 = "{}", - caml_bytes_get = runtime.caml_bytes_get, - caml_bytes_set = runtime.caml_bytes_set, - caml_check_bound = runtime.caml_check_bound, - caml_classify_float = runtime.caml_classify_float, - caml_create_bytes = runtime.caml_create_bytes, - caml_equal = runtime.caml_equal, - caml_float_of_string = runtime.caml_float_of_string, - caml_fresh_oo_id = runtime.caml_fresh_oo_id, - caml_get_public_method = runtime.caml_get_public_method, - caml_int64_of_string = runtime.caml_int64_of_string, - caml_int_of_string = runtime.caml_int_of_string, - caml_lex_engine = runtime.caml_lex_engine, - caml_make_vect = runtime.caml_make_vect, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_string_equal = runtime.caml_string_equal, - caml_string_get = runtime.caml_string_get, - caml_string_notequal = runtime.caml_string_notequal, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - cst$10 = cst$89, - cst$77 = cst$89, - cst$78 = cst$90, - cst$79 = cst$90, - cst$80 = cst$91, - stream$1 = [0, 1], - cst$70 = cst$95, - cst$71 = cst$97, - cst$72 = cst$95, - cst$73 = cst$95, - cst$74 = cst$98, - cst$75 = cst$99, - cst$76 = cst$95, - cst$69 = cst$101, - cst$68 = cst$101, - cst$67 = cst$101, - cst$66 = cst$101, - cst$65 = cst$101, - cst$64 = cst$83, - cst$63 = cst$83, - cst$62 = cst$83, - cst$61 = cst$83, - cst$60 = cst$102, - cst$59 = cst$103, - cst$55 = cst$89, - cst$56 = cst$90, - cst$57 = cst$90, - cst$58 = cst$91, - stream$0 = [0, 1], - cst$50 = cst$95, - cst$51 = cst$97, - cst$52 = cst$95, - cst$53 = cst$95, - cst$54 = cst$98, - cst$48 = cst$99, - cst$49 = cst$95, - cst$47 = cst$101, - cst$46 = cst$101, - cst$45 = cst$101, - cst$44 = cst$101, - cst$43 = cst$101, - cst$42 = cst$83, - cst$41 = cst$83, - cst$40 = cst$83, - cst$39 = cst$83, - cst$38 = cst$102, - cst$37 = cst$103, - cst$34 = cst$90, - cst$35 = cst$90, - cst$36 = cst$91, - stream = [0, 1], - cst$29 = cst$95, - cst$30 = cst$97, - cst$31 = cst$95, - cst$32 = cst$95, - cst$33 = cst$98, - cst$28 = cst$101, - cst$27 = cst$101, - cst$26 = cst$101, - cst$25 = cst$101, - cst$24 = cst$101, - cst$23 = cst$83, - cst$22 = cst$83, - cst$21 = cst$83, - cst$20 = cst$83, - cst$19 = cst$102, - cst$18 = cst$103, - cst$11 = cst$95, - cst$12 = cst$97, - cst$13 = cst$95, - cst$14 = cst$95, - cst$15 = cst$98, - cst$16 = cst$99, - cst$17 = cst$95, - cst$9 = cst$101, - cst$8 = cst$101, - cst$7 = cst$101, - cst$6 = cst$101, - cst$5 = cst$101, - cst$4 = cst$83, - cst$3 = cst$83, - cst$2 = cst$83, - cst$1 = cst$83, - cst$0 = cst$102, - cst = cst$103, - version = "2.0.2", - ocaml_lex_tables = + (globalThis) + {"use strict"; + var runtime=globalThis.jsoo_runtime,Zarith_stubs_js=[0]; + runtime.caml_register_global(0,Zarith_stubs_js,"Zarith_stubs_js"); + return} + (globalThis)); + + +//# 1 "../../.js/yojson/yojson.cma.js" +// Generated by js_of_ocaml +(function + (globalThis) + {"use strict"; + var + runtime=globalThis.jsoo_runtime, + caml_bytes_get=runtime.caml_bytes_get, + caml_bytes_set=runtime.caml_bytes_set, + caml_check_bound=runtime.caml_check_bound, + caml_classify_float=runtime.caml_classify_float, + caml_create_bytes=runtime.caml_create_bytes, + caml_equal=runtime.caml_equal, + caml_float_of_string=runtime.caml_float_of_string, + caml_fresh_oo_id=runtime.caml_fresh_oo_id, + caml_get_public_method=runtime.caml_get_public_method, + caml_int64_of_string=runtime.caml_int64_of_string, + caml_int_of_string=runtime.caml_int_of_string, + caml_lex_engine=runtime.caml_lex_engine, + caml_make_vect=runtime.caml_make_vect, + caml_ml_string_length=runtime.caml_ml_string_length, + caml_string_equal=runtime.caml_string_equal, + caml_string_get=runtime.caml_string_get, + caml_string_notequal=runtime.caml_string_notequal, + caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, + caml_trampoline=runtime.caml_trampoline, + caml_trampoline_return=runtime.caml_trampoline_return, + caml_wrap_exception=runtime.caml_wrap_exception; + function caml_call1(f,a0) + {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} + function caml_call2(f,a0,a1) + {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} + function caml_call3(f,a0,a1,a2) + {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} + function caml_call4(f,a0,a1,a2,a3) + {return f.length == 4 + ?f(a0,a1,a2,a3) + :runtime.caml_call_gen(f,[a0,a1,a2,a3])} + function caml_call5(f,a0,a1,a2,a3,a4) + {return f.length == 5 + ?f(a0,a1,a2,a3,a4) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} + var + global_data=runtime.caml_get_global_data(), + cst_Null=caml_string_of_jsbytes("`Null"), + cst_Some=caml_string_of_jsbytes("(Some "), + cst$10=caml_string_of_jsbytes(")"), + cst_None=caml_string_of_jsbytes("None"), + cst_Null$2=caml_string_of_jsbytes("`Null"), + cst_Some$1=caml_string_of_jsbytes("(Some "), + cst$77=caml_string_of_jsbytes(")"), + cst_None$1=caml_string_of_jsbytes("None"), + cst_Unexpected_end_of_input$92= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$12=caml_string_of_jsbytes("Invalid token"), + cst_Unexpected_end_of_input$93= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Unexpected_end_of_input$94= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_escape_sequence$1= + caml_string_of_jsbytes("Invalid escape sequence"), + cst_Unexpected_end_of_input$95= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_low_surrogate_for_$1= + caml_string_of_jsbytes + ("Invalid low surrogate for code point beyond U+FFFF"), + cst_Missing_escape_sequence_re$1= + caml_string_of_jsbytes + ("Missing escape sequence representing low surrogate for code point beyond U+FFFF"), + cst_Unexpected_end_of_input$96= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_string_literal$5= + caml_string_of_jsbytes("Invalid string literal"), + cst_Unexpected_end_of_input$97= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$29= + caml_string_of_jsbytes("Expected ':' or '>' but found"), + cst_Unexpected_end_of_input$98= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$30= + caml_string_of_jsbytes("Expected '<' but found"), + cst_Unexpected_end_of_input$99= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$31= + caml_string_of_jsbytes("Expected '>' but found"), + cst_Unexpected_end_of_input$100= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$32= + caml_string_of_jsbytes("Expected ',' but found"), + cst_Unexpected_end_of_input$101= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$30= + caml_string_of_jsbytes("Expected '<', '\"' or '[' but found"), + cst_Unexpected_end_of_input$102= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Unterminated_comment$3=caml_string_of_jsbytes("Unterminated comment"), + cst_Expected_null_but_found$1= + caml_string_of_jsbytes("Expected 'null' but found"), + cst_Unexpected_end_of_input$103= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_true_or_false_but$1= + caml_string_of_jsbytes("Expected 'true' or 'false' but found"), + cst_Unexpected_end_of_input$104= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Int_overflow$5=caml_string_of_jsbytes("Int overflow"), + cst_Int_overflow$6=caml_string_of_jsbytes("Int overflow"), + cst_Expected_an_integer_but_fo$1= + caml_string_of_jsbytes + ("Expected an integer but found a string that doesn't even represent an integer"), + cst_Expected_integer_but_found$1= + caml_string_of_jsbytes("Expected integer but found"), + cst_Unexpected_end_of_input$105= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Int32_overflow$3=caml_string_of_jsbytes("Int32 overflow"), + cst_Expected_an_int32_but_foun$1= + caml_string_of_jsbytes + ("Expected an int32 but found a string that doesn't even represent an integer"), + cst_Expected_int32_but_found$1= + caml_string_of_jsbytes("Expected int32 but found"), + cst_Unexpected_end_of_input$106= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Int32_overflow$4=caml_string_of_jsbytes("Int32 overflow"), + cst_Expected_an_int64_but_foun$1= + caml_string_of_jsbytes + ("Expected an int64 but found a string that doesn't even represent an integer"), + cst_Expected_int64_but_found$1= + caml_string_of_jsbytes("Expected int64 but found"), + cst_Unexpected_end_of_input$107= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Infinity$15=caml_string_of_jsbytes("-Infinity"), + cst_Infinity$16=caml_string_of_jsbytes("Infinity"), + cst_NaN$7=caml_string_of_jsbytes("NaN"), + cst_Expected_a_number_but_foun$1= + caml_string_of_jsbytes + ("Expected a number but found a string that doesn't even represent a number"), + cst_Expected_number_but_found$1= + caml_string_of_jsbytes("Expected number but found"), + cst_Unexpected_end_of_input$108= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$33= + caml_string_of_jsbytes("Expected '\"' but found"), + cst_Unexpected_end_of_input$109= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$7= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$110= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$8= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$111= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$34= + caml_string_of_jsbytes("Expected '[' but found"), + cst_Unexpected_end_of_input$112= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$35= + caml_string_of_jsbytes("Expected '[' but found"), + cst_Unexpected_end_of_input$113= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$31= + caml_string_of_jsbytes("Expected ',' or ']' but found"), + cst_Unexpected_end_of_input$114= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$36= + caml_string_of_jsbytes("Expected ')' but found"), + cst_Unexpected_end_of_input$115= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$32= + caml_string_of_jsbytes("Expected ')' or '' but found"), + cst_Expected_or_but_found$33= + caml_string_of_jsbytes("Expected ']' or '' but found"), + cst_Expected_or_but_found$34= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Unexpected_end_of_input$116= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$35= + caml_string_of_jsbytes("Expected ',' or ']' but found"), + cst_Expected_or_but_found$36= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Expected_or_but_found$37= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Unexpected_end_of_input$117= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$37= + caml_string_of_jsbytes("Expected '{' but found"), + cst_Unexpected_end_of_input$118= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$38= + caml_string_of_jsbytes("Expected '{' but found"), + cst_Unexpected_end_of_input$119= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$38= + caml_string_of_jsbytes("Expected ',' or '}' but found"), + cst_Unexpected_end_of_input$120= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$39= + caml_string_of_jsbytes("Expected ':' but found"), + cst_Unexpected_end_of_input$121= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$39= + caml_string_of_jsbytes("Expected '(' or '[' but found"), + cst_Unexpected_end_of_input$122= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$40= + caml_string_of_jsbytes("Expected '(' but found"), + cst_Unexpected_end_of_input$123= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$41= + caml_string_of_jsbytes("Expected ')' but found"), + cst_Unexpected_end_of_input$124= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$42= + caml_string_of_jsbytes("Expected '[' but found"), + cst_Unexpected_end_of_input$125= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$43= + caml_string_of_jsbytes("Expected ']' but found"), + cst_Unexpected_end_of_input$126= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Unexpected_end_of_input$127= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$13=caml_string_of_jsbytes("Invalid token"), + cst_Invalid_string_literal$6= + caml_string_of_jsbytes("Invalid string literal"), + cst_Unexpected_end_of_input$128= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$40= + caml_string_of_jsbytes("Expected ':' or '>' but found"), + cst_Unexpected_end_of_input$129= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$9= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$130= + caml_string_of_jsbytes("Unexpected end of input"), + cst$78=caml_string_of_jsbytes("/*"), + cst_Unexpected_end_of_input$131= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$14=caml_string_of_jsbytes("Invalid token"), + cst_Invalid_string_literal$7= + caml_string_of_jsbytes("Invalid string literal"), + cst_Unexpected_end_of_input$132= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$41= + caml_string_of_jsbytes("Expected ':' or '>' but found"), + cst_Unexpected_end_of_input$133= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$10= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$134= + caml_string_of_jsbytes("Unexpected end of input"), + cst$79=caml_string_of_jsbytes("/*"), + cst_Expected_or_but_found$42= + caml_string_of_jsbytes("Expected ',' or '}' but found"), + cst_Unexpected_end_of_input$135= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$43= + caml_string_of_jsbytes("Expected ',' or ']' but found"), + cst_Unexpected_end_of_input$136= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$44= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Unexpected_end_of_input$137= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$44= + caml_string_of_jsbytes("Expected ':' but found"), + cst_Unexpected_end_of_input$138= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$45= + caml_string_of_jsbytes("Expected '>' but found"), + cst_Unexpected_end_of_input$139= + caml_string_of_jsbytes("Unexpected end of input"), + cst$80=caml_string_of_jsbytes("*/"), + cst_Unterminated_comment$4=caml_string_of_jsbytes("Unterminated comment"), + stream$1=[0,1], + cst_Blank_input_data$4=caml_string_of_jsbytes("Blank input data"), + cst_Blank_input_data$3=caml_string_of_jsbytes("Blank input data"), + cst_Junk_after_end_of_JSON_val$1= + caml_string_of_jsbytes("Junk after end of JSON value:"), + cst_Int8_overflow$1=caml_string_of_jsbytes("Int8 overflow"), + cst_Line$1=caml_string_of_jsbytes("Line"), + cst_null$8=caml_string_of_jsbytes("null"), + cst$70=caml_string_of_jsbytes(","), + cst$71=caml_string_of_jsbytes("{}"), + cst$72=caml_string_of_jsbytes(","), + cst$73=caml_string_of_jsbytes(","), + cst$74=caml_string_of_jsbytes("[]"), + cst$75=caml_string_of_jsbytes("()"), + cst$76=caml_string_of_jsbytes(","), + cst$69=caml_string_of_jsbytes("\n"), + cst$68=caml_string_of_jsbytes("\n"), + cst$67=caml_string_of_jsbytes("\n"), + cst$66=caml_string_of_jsbytes("\n"), + cst$65=caml_string_of_jsbytes("\n"), + cst$64=caml_string_of_jsbytes(""), + cst$63=caml_string_of_jsbytes(""), + cst$62=caml_string_of_jsbytes(""), + cst$61=caml_string_of_jsbytes(""), + cst_true$2=caml_string_of_jsbytes("true"), + cst_false$2=caml_string_of_jsbytes("false"), + cst_null$7=caml_string_of_jsbytes("null"), + cst_b$2=caml_string_of_jsbytes("\\b"), + cst_t$2=caml_string_of_jsbytes("\\t"), + cst_n$2=caml_string_of_jsbytes("\\n"), + cst_f$2=caml_string_of_jsbytes("\\f"), + cst_r$2=caml_string_of_jsbytes("\\r"), + cst$60=caml_string_of_jsbytes('\\"'), + cst$59=caml_string_of_jsbytes("\\\\"), + cst_u00$2=caml_string_of_jsbytes("\\u00"), + cst_Null$1=caml_string_of_jsbytes("`Null"), + cst_Some$0=caml_string_of_jsbytes("(Some "), + cst$55=caml_string_of_jsbytes(")"), + cst_None$0=caml_string_of_jsbytes("None"), + cst_Unexpected_end_of_input$44= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$9=caml_string_of_jsbytes("Invalid token"), + cst_Unexpected_end_of_input$45= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Unexpected_end_of_input$46= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_escape_sequence$0= + caml_string_of_jsbytes("Invalid escape sequence"), + cst_Unexpected_end_of_input$47= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_low_surrogate_for_$0= + caml_string_of_jsbytes + ("Invalid low surrogate for code point beyond U+FFFF"), + cst_Missing_escape_sequence_re$0= + caml_string_of_jsbytes + ("Missing escape sequence representing low surrogate for code point beyond U+FFFF"), + cst_Unexpected_end_of_input$48= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_string_literal$2= + caml_string_of_jsbytes("Invalid string literal"), + cst_Unexpected_end_of_input$49= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$13= + caml_string_of_jsbytes("Expected ':' or '>' but found"), + cst_Unexpected_end_of_input$50= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$14= + caml_string_of_jsbytes("Expected '<' but found"), + cst_Unexpected_end_of_input$51= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$15= + caml_string_of_jsbytes("Expected '>' but found"), + cst_Unexpected_end_of_input$52= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$16= + caml_string_of_jsbytes("Expected ',' but found"), + cst_Unexpected_end_of_input$53= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$14= + caml_string_of_jsbytes("Expected '<', '\"' or '[' but found"), + cst_Unexpected_end_of_input$54= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Unterminated_comment$1=caml_string_of_jsbytes("Unterminated comment"), + cst_Expected_null_but_found$0= + caml_string_of_jsbytes("Expected 'null' but found"), + cst_Unexpected_end_of_input$55= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_true_or_false_but$0= + caml_string_of_jsbytes("Expected 'true' or 'false' but found"), + cst_Unexpected_end_of_input$56= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Int_overflow$3=caml_string_of_jsbytes("Int overflow"), + cst_Int_overflow$4=caml_string_of_jsbytes("Int overflow"), + cst_Expected_an_integer_but_fo$0= + caml_string_of_jsbytes + ("Expected an integer but found a string that doesn't even represent an integer"), + cst_Expected_integer_but_found$0= + caml_string_of_jsbytes("Expected integer but found"), + cst_Unexpected_end_of_input$57= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Int32_overflow$1=caml_string_of_jsbytes("Int32 overflow"), + cst_Expected_an_int32_but_foun$0= + caml_string_of_jsbytes + ("Expected an int32 but found a string that doesn't even represent an integer"), + cst_Expected_int32_but_found$0= + caml_string_of_jsbytes("Expected int32 but found"), + cst_Unexpected_end_of_input$58= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Int32_overflow$2=caml_string_of_jsbytes("Int32 overflow"), + cst_Expected_an_int64_but_foun$0= + caml_string_of_jsbytes + ("Expected an int64 but found a string that doesn't even represent an integer"), + cst_Expected_int64_but_found$0= + caml_string_of_jsbytes("Expected int64 but found"), + cst_Unexpected_end_of_input$59= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Infinity$13=caml_string_of_jsbytes("-Infinity"), + cst_Infinity$14=caml_string_of_jsbytes("Infinity"), + cst_NaN$6=caml_string_of_jsbytes("NaN"), + cst_Expected_a_number_but_foun$0= + caml_string_of_jsbytes + ("Expected a number but found a string that doesn't even represent a number"), + cst_Expected_number_but_found$0= + caml_string_of_jsbytes("Expected number but found"), + cst_Unexpected_end_of_input$60= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$17= + caml_string_of_jsbytes("Expected '\"' but found"), + cst_Unexpected_end_of_input$61= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$3= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$62= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$4= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$63= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$18= + caml_string_of_jsbytes("Expected '[' but found"), + cst_Unexpected_end_of_input$64= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$19= + caml_string_of_jsbytes("Expected '[' but found"), + cst_Unexpected_end_of_input$65= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$15= + caml_string_of_jsbytes("Expected ',' or ']' but found"), + cst_Unexpected_end_of_input$66= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$20= + caml_string_of_jsbytes("Expected ')' but found"), + cst_Unexpected_end_of_input$67= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$16= + caml_string_of_jsbytes("Expected ')' or '' but found"), + cst_Expected_or_but_found$17= + caml_string_of_jsbytes("Expected ']' or '' but found"), + cst_Expected_or_but_found$18= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Unexpected_end_of_input$68= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$19= + caml_string_of_jsbytes("Expected ',' or ']' but found"), + cst_Expected_or_but_found$20= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Expected_or_but_found$21= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Unexpected_end_of_input$69= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$21= + caml_string_of_jsbytes("Expected '{' but found"), + cst_Unexpected_end_of_input$70= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$22= + caml_string_of_jsbytes("Expected '{' but found"), + cst_Unexpected_end_of_input$71= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$22= + caml_string_of_jsbytes("Expected ',' or '}' but found"), + cst_Unexpected_end_of_input$72= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$23= + caml_string_of_jsbytes("Expected ':' but found"), + cst_Unexpected_end_of_input$73= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$23= + caml_string_of_jsbytes("Expected '(' or '[' but found"), + cst_Unexpected_end_of_input$74= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$24= + caml_string_of_jsbytes("Expected '(' but found"), + cst_Unexpected_end_of_input$75= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$25= + caml_string_of_jsbytes("Expected ')' but found"), + cst_Unexpected_end_of_input$76= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$26= + caml_string_of_jsbytes("Expected '[' but found"), + cst_Unexpected_end_of_input$77= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$27= + caml_string_of_jsbytes("Expected ']' but found"), + cst_Unexpected_end_of_input$78= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Unexpected_end_of_input$79= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$10=caml_string_of_jsbytes("Invalid token"), + cst_Invalid_string_literal$3= + caml_string_of_jsbytes("Invalid string literal"), + cst_Unexpected_end_of_input$80= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$24= + caml_string_of_jsbytes("Expected ':' or '>' but found"), + cst_Unexpected_end_of_input$81= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$5= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$82= + caml_string_of_jsbytes("Unexpected end of input"), + cst$56=caml_string_of_jsbytes("/*"), + cst_Unexpected_end_of_input$83= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$11=caml_string_of_jsbytes("Invalid token"), + cst_Invalid_string_literal$4= + caml_string_of_jsbytes("Invalid string literal"), + cst_Unexpected_end_of_input$84= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$25= + caml_string_of_jsbytes("Expected ':' or '>' but found"), + cst_Unexpected_end_of_input$85= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$6= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$86= + caml_string_of_jsbytes("Unexpected end of input"), + cst$57=caml_string_of_jsbytes("/*"), + cst_Expected_or_but_found$26= + caml_string_of_jsbytes("Expected ',' or '}' but found"), + cst_Unexpected_end_of_input$87= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$27= + caml_string_of_jsbytes("Expected ',' or ']' but found"), + cst_Unexpected_end_of_input$88= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$28= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Unexpected_end_of_input$89= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$28= + caml_string_of_jsbytes("Expected ':' but found"), + cst_Unexpected_end_of_input$90= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$29= + caml_string_of_jsbytes("Expected '>' but found"), + cst_Unexpected_end_of_input$91= + caml_string_of_jsbytes("Unexpected end of input"), + cst$58=caml_string_of_jsbytes("*/"), + cst_Unterminated_comment$2=caml_string_of_jsbytes("Unterminated comment"), + cst_Expected_two_objects_check$0= + caml_string_of_jsbytes("Expected two objects, check inputs"), + cst_Can_t_convert_each_element$0= + caml_string_of_jsbytes("Can't convert each element of non-array type "), + cst_Expected_string_or_null_go$0= + caml_string_of_jsbytes("Expected string or null, got "), + cst_Expected_string_got$0=caml_string_of_jsbytes("Expected string, got "), + cst_Expected_array_got$0=caml_string_of_jsbytes("Expected array, got "), + cst_Expected_int_or_null_got$0= + caml_string_of_jsbytes("Expected int or null, got "), + cst_Expected_int_got$0=caml_string_of_jsbytes("Expected int, got "), + cst_Expected_float_or_null_got$0= + caml_string_of_jsbytes("Expected float or null, got "), + cst_Expected_float_got$0=caml_string_of_jsbytes("Expected float, got "), + cst_Expected_number_or_null_go$0= + caml_string_of_jsbytes("Expected number or null, got "), + cst_Expected_number_got$0=caml_string_of_jsbytes("Expected number, got "), + cst_Expected_bool_or_null_got$0= + caml_string_of_jsbytes("Expected bool or null, got "), + cst_Expected_bool_got$0=caml_string_of_jsbytes("Expected bool, got "), + cst_Expected_object_got$0=caml_string_of_jsbytes("Expected object, got "), + cst_Can_t_map_function_over_no$0= + caml_string_of_jsbytes("Can't map function over non-array type "), + cst_out_of_bounds$0=caml_string_of_jsbytes(" out of bounds"), + cst_Index$0=caml_string_of_jsbytes("Index "), + cst_of_non_array_type$0=caml_string_of_jsbytes(" of non-array type "), + cst_Can_t_get_index$0=caml_string_of_jsbytes("Can't get index "), + cst_of_non_object_type$0=caml_string_of_jsbytes("' of non-object type "), + cst_Can_t_get_member$0=caml_string_of_jsbytes("Can't get member '"), + cst_null$6=caml_string_of_jsbytes("null"), + cst_object$0=caml_string_of_jsbytes("object"), + cst_array$0=caml_string_of_jsbytes("array"), + cst_bool$0=caml_string_of_jsbytes("bool"), + cst_variant$0=caml_string_of_jsbytes("variant"), + cst_tuple$0=caml_string_of_jsbytes("tuple"), + cst_float$0=caml_string_of_jsbytes("float"), + cst_int$0=caml_string_of_jsbytes("int"), + cst_intlit$0=caml_string_of_jsbytes("intlit"), + cst_string$0=caml_string_of_jsbytes("string"), + stream$0=[0,1], + cst_Blank_input_data$2=caml_string_of_jsbytes("Blank input data"), + cst_Blank_input_data$1=caml_string_of_jsbytes("Blank input data"), + cst_Junk_after_end_of_JSON_val$0= + caml_string_of_jsbytes("Junk after end of JSON value:"), + cst_Int8_overflow$0=caml_string_of_jsbytes("Int8 overflow"), + cst_Line$0=caml_string_of_jsbytes("Line"), + cst_null$5=caml_string_of_jsbytes("null"), + cst$50=caml_string_of_jsbytes(","), + cst$51=caml_string_of_jsbytes("{}"), + cst$52=caml_string_of_jsbytes(","), + cst$53=caml_string_of_jsbytes(","), + cst$54=caml_string_of_jsbytes("[]"), + cst$48=caml_string_of_jsbytes("()"), + cst$49=caml_string_of_jsbytes(","), + cst$47=caml_string_of_jsbytes("\n"), + cst$46=caml_string_of_jsbytes("\n"), + cst$45=caml_string_of_jsbytes("\n"), + cst$44=caml_string_of_jsbytes("\n"), + cst$43=caml_string_of_jsbytes("\n"), + cst$42=caml_string_of_jsbytes(""), + cst$41=caml_string_of_jsbytes(""), + cst$40=caml_string_of_jsbytes(""), + cst$39=caml_string_of_jsbytes(""), + cst_NaN_value_not_allowed_in_s$4= + caml_string_of_jsbytes("NaN value not allowed in standard JSON"), + cst_Infinity_value_not_allowed$9= + caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), + cst_Infinity_value_not_allowed$10= + caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), + cst_NaN_value_not_allowed_in_s$3= + caml_string_of_jsbytes("NaN value not allowed in standard JSON"), + cst_0$7=caml_string_of_jsbytes(".0"), + cst_Infinity_value_not_allowed$7= + caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), + cst_Infinity_value_not_allowed$8= + caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), + cst_NaN$5=caml_string_of_jsbytes("NaN"), + cst_Infinity$11=caml_string_of_jsbytes("Infinity"), + cst_Infinity$12=caml_string_of_jsbytes("-Infinity"), + cst_0$6=caml_string_of_jsbytes(".0"), + cst_NaN$4=caml_string_of_jsbytes("NaN"), + cst_0$5=caml_string_of_jsbytes(".0"), + cst_Infinity$9=caml_string_of_jsbytes("Infinity"), + cst_Infinity$10=caml_string_of_jsbytes("-Infinity"), + cst_true$1=caml_string_of_jsbytes("true"), + cst_false$1=caml_string_of_jsbytes("false"), + cst_null$4=caml_string_of_jsbytes("null"), + cst_b$1=caml_string_of_jsbytes("\\b"), + cst_t$1=caml_string_of_jsbytes("\\t"), + cst_n$1=caml_string_of_jsbytes("\\n"), + cst_f$1=caml_string_of_jsbytes("\\f"), + cst_r$1=caml_string_of_jsbytes("\\r"), + cst$38=caml_string_of_jsbytes('\\"'), + cst$37=caml_string_of_jsbytes("\\\\"), + cst_u00$1=caml_string_of_jsbytes("\\u00"), + cst_Null$0=caml_string_of_jsbytes("`Null"), + cst_Invalid_token=caml_string_of_jsbytes("Invalid token"), + cst_Invalid_token$0=caml_string_of_jsbytes("Invalid token"), + cst_Unexpected_end_of_input= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$1=caml_string_of_jsbytes("Invalid token"), + cst_Unexpected_end_of_input$0= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Unexpected_end_of_input$1= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_escape_sequence= + caml_string_of_jsbytes("Invalid escape sequence"), + cst_Unexpected_end_of_input$2= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_low_surrogate_for_= + caml_string_of_jsbytes + ("Invalid low surrogate for code point beyond U+FFFF"), + cst_Missing_escape_sequence_re= + caml_string_of_jsbytes + ("Missing escape sequence representing low surrogate for code point beyond U+FFFF"), + cst_Unexpected_end_of_input$3= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_string_literal= + caml_string_of_jsbytes("Invalid string literal"), + cst_Unexpected_end_of_input$4= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found= + caml_string_of_jsbytes("Expected ':' or '>' but found"), + cst_Unexpected_end_of_input$5= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found=caml_string_of_jsbytes("Expected '<' but found"), + cst_Unexpected_end_of_input$6= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$0=caml_string_of_jsbytes("Expected '>' but found"), + cst_Unexpected_end_of_input$7= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$1=caml_string_of_jsbytes("Expected ',' but found"), + cst_Unexpected_end_of_input$8= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$0= + caml_string_of_jsbytes("Expected '<', '\"' or '[' but found"), + cst_Unexpected_end_of_input$9= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Unterminated_comment=caml_string_of_jsbytes("Unterminated comment"), + cst_Expected_null_but_found= + caml_string_of_jsbytes("Expected 'null' but found"), + cst_Unexpected_end_of_input$10= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_true_or_false_but= + caml_string_of_jsbytes("Expected 'true' or 'false' but found"), + cst_Unexpected_end_of_input$11= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Int_overflow$1=caml_string_of_jsbytes("Int overflow"), + cst_Int_overflow$2=caml_string_of_jsbytes("Int overflow"), + cst_Expected_an_integer_but_fo= + caml_string_of_jsbytes + ("Expected an integer but found a string that doesn't even represent an integer"), + cst_Expected_integer_but_found= + caml_string_of_jsbytes("Expected integer but found"), + cst_Unexpected_end_of_input$12= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Int32_overflow=caml_string_of_jsbytes("Int32 overflow"), + cst_Expected_an_int32_but_foun= + caml_string_of_jsbytes + ("Expected an int32 but found a string that doesn't even represent an integer"), + cst_Expected_int32_but_found= + caml_string_of_jsbytes("Expected int32 but found"), + cst_Unexpected_end_of_input$13= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Int32_overflow$0=caml_string_of_jsbytes("Int32 overflow"), + cst_Expected_an_int64_but_foun= + caml_string_of_jsbytes + ("Expected an int64 but found a string that doesn't even represent an integer"), + cst_Expected_int64_but_found= + caml_string_of_jsbytes("Expected int64 but found"), + cst_Unexpected_end_of_input$14= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Infinity$7=caml_string_of_jsbytes("-Infinity"), + cst_Infinity$8=caml_string_of_jsbytes("Infinity"), + cst_NaN$3=caml_string_of_jsbytes("NaN"), + cst_Expected_a_number_but_foun= + caml_string_of_jsbytes + ("Expected a number but found a string that doesn't even represent a number"), + cst_Expected_number_but_found= + caml_string_of_jsbytes("Expected number but found"), + cst_Unexpected_end_of_input$15= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$2= + caml_string_of_jsbytes("Expected '\"' but found"), + cst_Unexpected_end_of_input$16= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$17= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$0= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$18= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$3=caml_string_of_jsbytes("Expected '[' but found"), + cst_Unexpected_end_of_input$19= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$4=caml_string_of_jsbytes("Expected '[' but found"), + cst_Unexpected_end_of_input$20= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$1= + caml_string_of_jsbytes("Expected ',' or ']' but found"), + cst_Unexpected_end_of_input$21= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$2=caml_string_of_jsbytes("Invalid token"), + cst_Expected_but_found$5=caml_string_of_jsbytes("Expected ')' but found"), + cst_Unexpected_end_of_input$22= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$2= + caml_string_of_jsbytes("Expected ')' or '' but found"), + cst_Expected_or_but_found$3= + caml_string_of_jsbytes("Expected ']' or '' but found"), + cst_Expected_or_but_found$4= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Unexpected_end_of_input$23= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$5= + caml_string_of_jsbytes("Expected ',' or ']' but found"), + cst_Expected_or_but_found$6= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Expected_or_but_found$7= + caml_string_of_jsbytes("Expected ',' or ')' but found"), + cst_Unexpected_end_of_input$24= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$6=caml_string_of_jsbytes("Expected '{' but found"), + cst_Unexpected_end_of_input$25= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$7=caml_string_of_jsbytes("Expected '{' but found"), + cst_Unexpected_end_of_input$26= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$8= + caml_string_of_jsbytes("Expected ',' or '}' but found"), + cst_Unexpected_end_of_input$27= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$8=caml_string_of_jsbytes("Expected ':' but found"), + cst_Unexpected_end_of_input$28= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$9= + caml_string_of_jsbytes("Expected '(' or '[' but found"), + cst_Unexpected_end_of_input$29= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$9=caml_string_of_jsbytes("Expected '(' but found"), + cst_Unexpected_end_of_input$30= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$10= + caml_string_of_jsbytes("Expected ')' but found"), + cst_Unexpected_end_of_input$31= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$11= + caml_string_of_jsbytes("Expected '[' but found"), + cst_Unexpected_end_of_input$32= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$12= + caml_string_of_jsbytes("Expected ']' but found"), + cst_Unexpected_end_of_input$33= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$3=caml_string_of_jsbytes("Invalid token"), + cst_Invalid_token$4=caml_string_of_jsbytes("Invalid token"), + cst_Unexpected_end_of_input$34= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$5=caml_string_of_jsbytes("Invalid token"), + cst_Invalid_string_literal$0= + caml_string_of_jsbytes("Invalid string literal"), + cst_Unexpected_end_of_input$35= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$10= + caml_string_of_jsbytes("Expected ':' or '>' but found"), + cst_Unexpected_end_of_input$36= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$1= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$37= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$6=caml_string_of_jsbytes("Invalid token"), + cst_Invalid_token$7=caml_string_of_jsbytes("Invalid token"), + cst$34=caml_string_of_jsbytes("/*"), + cst_Unexpected_end_of_input$38= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Invalid_token$8=caml_string_of_jsbytes("Invalid token"), + cst_Invalid_string_literal$1= + caml_string_of_jsbytes("Invalid string literal"), + cst_Unexpected_end_of_input$39= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_string_or_identif$2= + caml_string_of_jsbytes("Expected string or identifier but found"), + cst_Unexpected_end_of_input$40= + caml_string_of_jsbytes("Unexpected end of input"), + cst$35=caml_string_of_jsbytes("/*"), + cst_Expected_or_but_found$11= + caml_string_of_jsbytes("Expected ',' or '}' but found"), + cst_Unexpected_end_of_input$41= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_or_but_found$12= + caml_string_of_jsbytes("Expected ',' or ']' but found"), + cst_Unexpected_end_of_input$42= + caml_string_of_jsbytes("Unexpected end of input"), + cst_Expected_but_found$13= + caml_string_of_jsbytes("Expected ':' but found"), + cst_Unexpected_end_of_input$43= + caml_string_of_jsbytes("Unexpected end of input"), + cst$36=caml_string_of_jsbytes("*/"), + cst_Unterminated_comment$0=caml_string_of_jsbytes("Unterminated comment"), + cst_Expected_two_objects_check= + caml_string_of_jsbytes("Expected two objects, check inputs"), + cst_Can_t_convert_each_element= + caml_string_of_jsbytes("Can't convert each element of non-array type "), + cst_Expected_string_or_null_go= + caml_string_of_jsbytes("Expected string or null, got "), + cst_Expected_string_got=caml_string_of_jsbytes("Expected string, got "), + cst_Expected_array_got=caml_string_of_jsbytes("Expected array, got "), + cst_Expected_int_or_null_got= + caml_string_of_jsbytes("Expected int or null, got "), + cst_Expected_int_got=caml_string_of_jsbytes("Expected int, got "), + cst_Expected_float_or_null_got= + caml_string_of_jsbytes("Expected float or null, got "), + cst_Expected_float_got=caml_string_of_jsbytes("Expected float, got "), + cst_Expected_number_or_null_go= + caml_string_of_jsbytes("Expected number or null, got "), + cst_Expected_number_got=caml_string_of_jsbytes("Expected number, got "), + cst_Expected_bool_or_null_got= + caml_string_of_jsbytes("Expected bool or null, got "), + cst_Expected_bool_got=caml_string_of_jsbytes("Expected bool, got "), + cst_Expected_object_got=caml_string_of_jsbytes("Expected object, got "), + cst_Can_t_map_function_over_no= + caml_string_of_jsbytes("Can't map function over non-array type "), + cst_out_of_bounds=caml_string_of_jsbytes(" out of bounds"), + cst_Index=caml_string_of_jsbytes("Index "), + cst_of_non_array_type=caml_string_of_jsbytes(" of non-array type "), + cst_Can_t_get_index=caml_string_of_jsbytes("Can't get index "), + cst_of_non_object_type=caml_string_of_jsbytes("' of non-object type "), + cst_Can_t_get_member=caml_string_of_jsbytes("Can't get member '"), + cst_null$3=caml_string_of_jsbytes("null"), + cst_object=caml_string_of_jsbytes("object"), + cst_array=caml_string_of_jsbytes("array"), + cst_bool=caml_string_of_jsbytes("bool"), + cst_variant=caml_string_of_jsbytes("variant"), + cst_tuple=caml_string_of_jsbytes("tuple"), + cst_float=caml_string_of_jsbytes("float"), + cst_int=caml_string_of_jsbytes("int"), + cst_intlit=caml_string_of_jsbytes("intlit"), + cst_string=caml_string_of_jsbytes("string"), + stream=[0,1], + cst_Blank_input_data$0=caml_string_of_jsbytes("Blank input data"), + cst_Blank_input_data=caml_string_of_jsbytes("Blank input data"), + cst_Junk_after_end_of_JSON_val= + caml_string_of_jsbytes("Junk after end of JSON value:"), + cst_Int8_overflow=caml_string_of_jsbytes("Int8 overflow"), + cst_Int_overflow$0=caml_string_of_jsbytes("Int overflow"), + cst_Int_overflow=caml_string_of_jsbytes("Int overflow"), + cst_Line=caml_string_of_jsbytes("Line"), + cst_null$2=caml_string_of_jsbytes("null"), + cst$29=caml_string_of_jsbytes(","), + cst$30=caml_string_of_jsbytes("{}"), + cst$31=caml_string_of_jsbytes(","), + cst$32=caml_string_of_jsbytes(","), + cst$33=caml_string_of_jsbytes("[]"), + cst$28=caml_string_of_jsbytes("\n"), + cst$27=caml_string_of_jsbytes("\n"), + cst$26=caml_string_of_jsbytes("\n"), + cst$25=caml_string_of_jsbytes("\n"), + cst$24=caml_string_of_jsbytes("\n"), + cst$23=caml_string_of_jsbytes(""), + cst$22=caml_string_of_jsbytes(""), + cst$21=caml_string_of_jsbytes(""), + cst$20=caml_string_of_jsbytes(""), + cst_NaN_value_not_allowed_in_s$2= + caml_string_of_jsbytes("NaN value not allowed in standard JSON"), + cst_Infinity_value_not_allowed$5= + caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), + cst_Infinity_value_not_allowed$6= + caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), + cst_NaN_value_not_allowed_in_s$1= + caml_string_of_jsbytes("NaN value not allowed in standard JSON"), + cst_0$4=caml_string_of_jsbytes(".0"), + cst_Infinity_value_not_allowed$3= + caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), + cst_Infinity_value_not_allowed$4= + caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), + cst_NaN$2=caml_string_of_jsbytes("NaN"), + cst_Infinity$5=caml_string_of_jsbytes("Infinity"), + cst_Infinity$6=caml_string_of_jsbytes("-Infinity"), + cst_0$3=caml_string_of_jsbytes(".0"), + cst_NaN$1=caml_string_of_jsbytes("NaN"), + cst_0$2=caml_string_of_jsbytes(".0"), + cst_Infinity$3=caml_string_of_jsbytes("Infinity"), + cst_Infinity$4=caml_string_of_jsbytes("-Infinity"), + cst_true$0=caml_string_of_jsbytes("true"), + cst_false$0=caml_string_of_jsbytes("false"), + cst_null$1=caml_string_of_jsbytes("null"), + cst_b$0=caml_string_of_jsbytes("\\b"), + cst_t$0=caml_string_of_jsbytes("\\t"), + cst_n$0=caml_string_of_jsbytes("\\n"), + cst_f$0=caml_string_of_jsbytes("\\f"), + cst_r$0=caml_string_of_jsbytes("\\r"), + cst$19=caml_string_of_jsbytes('\\"'), + cst$18=caml_string_of_jsbytes("\\\\"), + cst_u00$0=caml_string_of_jsbytes("\\u00"), + cst_null$0=caml_string_of_jsbytes("null"), + cst$11=caml_string_of_jsbytes(","), + cst$12=caml_string_of_jsbytes("{}"), + cst$13=caml_string_of_jsbytes(","), + cst$14=caml_string_of_jsbytes(","), + cst$15=caml_string_of_jsbytes("[]"), + cst$16=caml_string_of_jsbytes("()"), + cst$17=caml_string_of_jsbytes(","), + cst$9=caml_string_of_jsbytes("\n"), + cst$8=caml_string_of_jsbytes("\n"), + cst$7=caml_string_of_jsbytes("\n"), + cst$6=caml_string_of_jsbytes("\n"), + cst$5=caml_string_of_jsbytes("\n"), + cst$4=caml_string_of_jsbytes(""), + cst$3=caml_string_of_jsbytes(""), + cst$2=caml_string_of_jsbytes(""), + cst$1=caml_string_of_jsbytes(""), + cst_NaN_value_not_allowed_in_s$0= + caml_string_of_jsbytes("NaN value not allowed in standard JSON"), + cst_Infinity_value_not_allowed$1= + caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), + cst_Infinity_value_not_allowed$2= + caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), + cst_NaN_value_not_allowed_in_s= + caml_string_of_jsbytes("NaN value not allowed in standard JSON"), + cst_0$1=caml_string_of_jsbytes(".0"), + cst_Infinity_value_not_allowed= + caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), + cst_Infinity_value_not_allowed$0= + caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), + cst_NaN$0=caml_string_of_jsbytes("NaN"), + cst_Infinity$1=caml_string_of_jsbytes("Infinity"), + cst_Infinity$2=caml_string_of_jsbytes("-Infinity"), + cst_0$0=caml_string_of_jsbytes(".0"), + cst_NaN=caml_string_of_jsbytes("NaN"), + cst_0=caml_string_of_jsbytes(".0"), + cst_Infinity=caml_string_of_jsbytes("Infinity"), + cst_Infinity$0=caml_string_of_jsbytes("-Infinity"), + cst_true=caml_string_of_jsbytes("true"), + cst_false=caml_string_of_jsbytes("false"), + cst_null=caml_string_of_jsbytes("null"), + cst_b=caml_string_of_jsbytes("\\b"), + cst_t=caml_string_of_jsbytes("\\t"), + cst_n=caml_string_of_jsbytes("\\n"), + cst_f=caml_string_of_jsbytes("\\f"), + cst_r=caml_string_of_jsbytes("\\r"), + cst$0=caml_string_of_jsbytes('\\"'), + cst=caml_string_of_jsbytes("\\\\"), + cst_u00=caml_string_of_jsbytes("\\u00"), + version=caml_string_of_jsbytes("2.0.2"), + cst_Yojson_Json_error=caml_string_of_jsbytes("Yojson.Json_error"), + cst_Yojson_End_of_array=caml_string_of_jsbytes("Yojson.End_of_array"), + cst_Yojson_End_of_object=caml_string_of_jsbytes("Yojson.End_of_object"), + cst_Yojson_End_of_tuple=caml_string_of_jsbytes("Yojson.End_of_tuple"), + cst_Yojson_End_of_input=caml_string_of_jsbytes("Yojson.End_of_input"), + cst_Yojson_Basic_Int_overflow= + caml_string_of_jsbytes("Yojson.Basic.Int_overflow"), + ocaml_lex_tables= [0, - cst_U_a_w_A_n_0_G_m_X_4_5_5_0_, - cst$104, - cst_9_A_A_F_T_a_a_h_m_q_u_y_4_, - cst_E_E_E_1_8_v_9_1_0_j_n_i_1_, - cst_E_9_E_E_s_f_k_f_o_R_U_0_0_, - cst$83, - cst$83, - cst$83, - cst$83, - cst$83, - cst$83], - ocaml_lex_tables$0 = + caml_string_of_jsbytes + ("\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0"), + caml_string_of_jsbytes + ("\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), + caml_string_of_jsbytes + ("\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02"), + caml_string_of_jsbytes + ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"), + caml_string_of_jsbytes + ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes("")], + cst_Yojson_Basic_Finally=caml_string_of_jsbytes("Yojson.Basic.Finally"), + cst_Yojson_Basic_Util_Type_err= + caml_string_of_jsbytes("Yojson.Basic.Util.Type_error"), + cst_Yojson_Basic_Util_Undefine= + caml_string_of_jsbytes("Yojson.Basic.Util.Undefined"), + cst_Yojson_Safe_Int_overflow= + caml_string_of_jsbytes("Yojson.Safe.Int_overflow"), + ocaml_lex_tables$0= [0, - cst_U_a_w_A_n_0_G_m_X_4_5_5_0_, - cst$104, - cst_9_A_A_F_T_a_a_h_m_q_u_y_4_, - cst_E_E_E_1_8_v_9_1_0_j_n_i_1_, - cst_E_9_E_E_s_f_k_f_o_R_U_0_0_, - cst$83, - cst$83, - cst$83, - cst$83, - cst$83, - cst$83], - ocaml_lex_tables$1 = + caml_string_of_jsbytes + ("\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0"), + caml_string_of_jsbytes + ("\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), + caml_string_of_jsbytes + ("\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02"), + caml_string_of_jsbytes + ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"), + caml_string_of_jsbytes + ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes("")], + cst_Yojson_Safe_Finally=caml_string_of_jsbytes("Yojson.Safe.Finally"), + cst_Yojson_Safe_Util_Type_erro= + caml_string_of_jsbytes("Yojson.Safe.Util.Type_error"), + cst_Yojson_Safe_Util_Undefined= + caml_string_of_jsbytes("Yojson.Safe.Util.Undefined"), + cst_Yojson_Raw_Int_overflow= + caml_string_of_jsbytes("Yojson.Raw.Int_overflow"), + ocaml_lex_tables$1= [0, - cst_U_a_w_A_n_0_G_m_X_4_5_5_0_, - cst$104, - cst_9_A_A_F_T_a_a_h_m_q_u_y_4_, - cst_E_E_E_1_8_v_9_1_0_j_n_i_1_, - cst_E_9_E_E_s_f_k_f_o_R_U_0_0_, - cst$83, - cst$83, - cst$83, - cst$83, - cst$83, - cst$83], - Stdlib = global_data.Stdlib, - Stdlib_Buffer = global_data.Stdlib__Buffer, - Stdlib_String = global_data.Stdlib__String, - Stdlib_List = global_data.Stdlib__List, - Stdlib_Format = global_data.Stdlib__Format, - Assert_failure = global_data.Assert_failure, - Stdlib_Bytes = global_data.Stdlib__Bytes, - Stdlib_Printf = global_data.Stdlib__Printf, - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib_Char = global_data.Stdlib__Char, - Stdlib_Lexing = global_data.Stdlib__Lexing, - Json_error = [248, "Yojson.Json_error", caml_fresh_oo_id(0)], - _V_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _N_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _B_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _C_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], - _D_ = [0, [3, 0, 0], cst_S], - _E_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], - _F_ = [0, [17, 0, [12, 41, 0]], cst$86], - cst_Null = cst_Null$3, - _z_ = + caml_string_of_jsbytes + ("\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0"), + caml_string_of_jsbytes + ("\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), + caml_string_of_jsbytes + ("\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02"), + caml_string_of_jsbytes + ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"), + caml_string_of_jsbytes + ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes(""), + caml_string_of_jsbytes("")], + cst_Yojson_Raw_Finally=caml_string_of_jsbytes("Yojson.Raw.Finally"), + Stdlib=global_data.Stdlib, + Stdlib_Buffer=global_data.Stdlib__Buffer, + Stdlib_String=global_data.Stdlib__String, + Stdlib_List=global_data.Stdlib__List, + Stdlib_Format=global_data.Stdlib__Format, + Assert_failure=global_data.Assert_failure, + Stdlib_Bytes=global_data.Stdlib__Bytes, + Stdlib_Printf=global_data.Stdlib__Printf, + Stdlib_Seq=global_data.Stdlib__Seq, + Stdlib_Char=global_data.Stdlib__Char, + Stdlib_Lexing=global_data.Stdlib__Lexing, + Json_error=[248,cst_Yojson_Json_error,caml_fresh_oo_id(0)], + _V_= [0, - [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Assoc_hov], - _A_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _G_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _H_ = [0, [17, 0, [12, 41, 0]], cst$86], - _I_ = + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _N_= [0, - [11, cst_Floatlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Floatlit_hov], - _J_ = [0, [3, 0, 0], cst_S], - _K_ = [0, [17, 0, [12, 41, 0]], cst$86], - _L_ = + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _B_= [0, - [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_List_hov], - _M_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _O_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _P_ = [0, [17, 0, [12, 41, 0]], cst$86], - _Q_ = + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _C_= [0, - [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Bool_hov], - _R_ = [0, [9, 0, 0], cst_B], - _S_ = [0, [17, 0, [12, 41, 0]], cst$86], - _T_ = + [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], + caml_string_of_jsbytes("(@[")], + _D_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _E_= [0, - [11, cst_Tuple, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Tuple_hov], - _U_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _W_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _X_ = [0, [17, 0, [12, 41, 0]], cst$86], - _Y_ = + [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(",@ ")], + _F_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _z_= [0, - [11, cst_Variant, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Variant_hov], - _Z_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], - ___ = [0, [3, 0, 0], cst_S], - _$_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], - cst_Some = cst_Some$2, - cst_None = cst_None$2, - _aa_ = [0, [17, 0, [12, 41, 0]], cst$86], - _ab_ = [0, [17, 0, [12, 41, 0]], cst$86], - _af_ = - [0, - [11, cst_Float, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Float_hov], - _ag_ = [0, [8, [0, 0, 5], 0, 0, 0], cst_F], - _ah_ = [0, [17, 0, [12, 41, 0]], cst$86], - _ai_ = - [0, - [11, cst_Int, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Int_hov], - _aj_ = [0, [4, 0, 0, 0, 0], cst_d], - _ak_ = [0, [17, 0, [12, 41, 0]], cst$86], - _al_ = - [0, - [11, cst_Stringlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Stringlit_hov], - _am_ = [0, [3, 0, 0], cst_S], - _an_ = [0, [17, 0, [12, 41, 0]], cst$86], - _ao_ = - [0, - [11, cst_String, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_String_hov], - _ap_ = [0, [3, 0, 0], cst_S], - _aq_ = [0, [17, 0, [12, 41, 0]], cst$86], - _ac_ = - [0, - [11, cst_Intlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Intlit_hov], - _ad_ = [0, [3, 0, 0], cst_S], - _ae_ = [0, [17, 0, [12, 41, 0]], cst$86], - _d2_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _dU_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _dI_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _dJ_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], - _dK_ = [0, [3, 0, 0], cst_S], - _dL_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], - _dM_ = [0, [17, 0, [12, 41, 0]], cst$86], - cst_Null$2 = cst_Null$3, - _dG_ = - [0, - [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Assoc_hov], - _dH_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _dN_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _dO_ = [0, [17, 0, [12, 41, 0]], cst$86], - _dP_ = - [0, - [11, cst_Floatlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Floatlit_hov], - _dQ_ = [0, [3, 0, 0], cst_S], - _dR_ = [0, [17, 0, [12, 41, 0]], cst$86], - _dS_ = - [0, - [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_List_hov], - _dT_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _dV_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _dW_ = [0, [17, 0, [12, 41, 0]], cst$86], - _dX_ = - [0, - [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Bool_hov], - _dY_ = [0, [9, 0, 0], cst_B], - _dZ_ = [0, [17, 0, [12, 41, 0]], cst$86], - _d0_ = - [0, - [11, cst_Tuple, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Tuple_hov], - _d1_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _d3_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _d4_ = [0, [17, 0, [12, 41, 0]], cst$86], - _d5_ = - [0, - [11, cst_Variant, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Variant_hov], - _d6_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], - _d7_ = [0, [3, 0, 0], cst_S], - _d8_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], - cst_Some$1 = cst_Some$2, - cst_None$1 = cst_None$2, - _d9_ = [0, [17, 0, [12, 41, 0]], cst$86], - _d__ = [0, [17, 0, [12, 41, 0]], cst$86], - _d$_ = - [0, - [11, cst_Stringlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Stringlit_hov], - _ea_ = [0, [3, 0, 0], cst_S], - _eb_ = [0, [17, 0, [12, 41, 0]], cst$86], - _ec_ = - [0, - [11, cst_Intlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Intlit_hov], - _ed_ = [0, [3, 0, 0], cst_S], - _ee_ = [0, [17, 0, [12, 41, 0]], cst$86], - _eq_ = [0, 737456202, 1], - _er_ = [0, 737456202, 0], - _es_ = [0, 928231259, cst_NaN$5], - _et_ = [0, 928231259, cst_Infinity$11], - _eu_ = [0, 928231259, cst_Infinity$12], - cst_Unexpected_end_of_input$92 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$12 = cst_Invalid_token$15, - cst_Unexpected_end_of_input$93 = cst_Unexpected_end_of_input$140, - cst_Unexpected_end_of_input$94 = cst_Unexpected_end_of_input$140, - cst_Invalid_escape_sequence$1 = cst_Invalid_escape_sequence$2, - cst_Unexpected_end_of_input$95 = cst_Unexpected_end_of_input$140, - cst_Invalid_low_surrogate_for_$1 = cst_Invalid_low_surrogate_for_$2, - cst_Missing_escape_sequence_re$1 = cst_Missing_escape_sequence_re$2, - cst_Unexpected_end_of_input$96 = cst_Unexpected_end_of_input$140, - cst_Invalid_string_literal$5 = cst_Invalid_string_literal$8, - cst_Unexpected_end_of_input$97 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$29 = cst_Expected_or_but_found$45, - cst_Unexpected_end_of_input$98 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$30 = cst_Expected_but_found$46, - cst_Unexpected_end_of_input$99 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$31 = cst_Expected_but_found$47, - cst_Unexpected_end_of_input$100 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$32 = cst_Expected_but_found$48, - cst_Unexpected_end_of_input$101 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$30 = cst_Expected_or_but_found$46, - cst_Unexpected_end_of_input$102 = cst_Unexpected_end_of_input$140, - cst_Unterminated_comment$3 = cst_Unterminated_comment$5, - cst_Expected_null_but_found$1 = cst_Expected_null_but_found$2, - cst_Unexpected_end_of_input$103 = cst_Unexpected_end_of_input$140, - cst_Expected_true_or_false_but$1 = cst_Expected_true_or_false_but$2, - cst_Unexpected_end_of_input$104 = cst_Unexpected_end_of_input$140, - cst_Int_overflow$5 = cst_Int_overflow$7, - cst_Int_overflow$6 = cst_Int_overflow$7, - cst_Expected_an_integer_but_fo$1 = cst_Expected_an_integer_but_fo$2, - cst_Expected_integer_but_found$1 = cst_Expected_integer_but_found$2, - cst_Unexpected_end_of_input$105 = cst_Unexpected_end_of_input$140, - cst_Int32_overflow$3 = cst_Int32_overflow$5, - cst_Expected_an_int32_but_foun$1 = cst_Expected_an_int32_but_foun$2, - cst_Expected_int32_but_found$1 = cst_Expected_int32_but_found$2, - cst_Unexpected_end_of_input$106 = cst_Unexpected_end_of_input$140, - cst_Int32_overflow$4 = cst_Int32_overflow$5, - cst_Expected_an_int64_but_foun$1 = cst_Expected_an_int64_but_foun$2, - cst_Expected_int64_but_found$1 = cst_Expected_int64_but_found$2, - cst_Unexpected_end_of_input$107 = cst_Unexpected_end_of_input$140, - cst_Expected_a_number_but_foun$1 = cst_Expected_a_number_but_foun$2, - cst_Expected_number_but_found$1 = cst_Expected_number_but_found$2, - cst_Unexpected_end_of_input$108 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$33 = cst_Expected_but_found$49, - cst_Unexpected_end_of_input$109 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$7 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$110 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$8 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$111 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$34 = cst_Expected_but_found$50, - cst_Unexpected_end_of_input$112 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$35 = cst_Expected_but_found$50, - cst_Unexpected_end_of_input$113 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$31 = cst_Expected_or_but_found$47, - cst_Unexpected_end_of_input$114 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$36 = cst_Expected_but_found$51, - cst_Unexpected_end_of_input$115 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$32 = cst_Expected_or_but_found$48, - cst_Expected_or_but_found$33 = cst_Expected_or_but_found$49, - cst_Expected_or_but_found$34 = cst_Expected_or_but_found$50, - cst_Unexpected_end_of_input$116 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$35 = cst_Expected_or_but_found$47, - cst_Expected_or_but_found$36 = cst_Expected_or_but_found$50, - cst_Expected_or_but_found$37 = cst_Expected_or_but_found$50, - cst_Unexpected_end_of_input$117 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$37 = cst_Expected_but_found$52, - cst_Unexpected_end_of_input$118 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$38 = cst_Expected_but_found$52, - cst_Unexpected_end_of_input$119 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$38 = cst_Expected_or_but_found$51, - cst_Unexpected_end_of_input$120 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$39 = cst_Expected_but_found$53, - cst_Unexpected_end_of_input$121 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$39 = cst_Expected_or_but_found$52, - cst_Unexpected_end_of_input$122 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$40 = cst_Expected_but_found$54, - cst_Unexpected_end_of_input$123 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$41 = cst_Expected_but_found$51, - cst_Unexpected_end_of_input$124 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$42 = cst_Expected_but_found$50, - cst_Unexpected_end_of_input$125 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$43 = cst_Expected_but_found$55, - cst_Unexpected_end_of_input$126 = cst_Unexpected_end_of_input$140, - cst_Unexpected_end_of_input$127 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$13 = cst_Invalid_token$15, - cst_Invalid_string_literal$6 = cst_Invalid_string_literal$8, - cst_Unexpected_end_of_input$128 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$40 = cst_Expected_or_but_found$45, - cst_Unexpected_end_of_input$129 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$9 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$130 = cst_Unexpected_end_of_input$140, - cst_Unexpected_end_of_input$131 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$14 = cst_Invalid_token$15, - cst_Invalid_string_literal$7 = cst_Invalid_string_literal$8, - cst_Unexpected_end_of_input$132 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$41 = cst_Expected_or_but_found$45, - cst_Unexpected_end_of_input$133 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$10 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$134 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$42 = cst_Expected_or_but_found$51, - cst_Unexpected_end_of_input$135 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$43 = cst_Expected_or_but_found$47, - cst_Unexpected_end_of_input$136 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$44 = cst_Expected_or_but_found$50, - cst_Unexpected_end_of_input$137 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$44 = cst_Expected_but_found$53, - cst_Unexpected_end_of_input$138 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$45 = cst_Expected_but_found$47, - cst_Unexpected_end_of_input$139 = cst_Unexpected_end_of_input$140, - cst_Unterminated_comment$4 = cst_Unterminated_comment$5, - cst_Blank_input_data$4 = cst_Blank_input_data$5, - cst_Blank_input_data$3 = cst_Blank_input_data$5, - cst_Junk_after_end_of_JSON_val$1 = cst_Junk_after_end_of_JSON_val$2, - cst_Int8_overflow$1 = cst_Int8_overflow$2, - _en_ = [0, [2, 0, [11, cst$92, [2, 0, [2, 0, [12, 39, 0]]]]], cst_s_s_s], - _em_ = [0, cst_lib_read_mll, 72, 32], - _el_ = [0, [2, 0, [11, cst$92, [2, 0, [12, 39, 0]]]], cst_s_s], - _eh_ = [0, [11, cst_File, [2, 0, [11, cst_line, 0]]], cst_File_s_line], - cst_Line$1 = cst_Line$2, - _ei_ = [0, [11, cst_byte, [4, 3, 0, 0, 0]], cst_byte_i], - _ek_ = - [0, - [11, cst_bytes, [4, 3, 0, 0, [12, 45, [4, 3, 0, 0, 0]]]], - cst_bytes_i_i], - _ej_ = - [0, - [2, - 0, - [12, 32, [4, 3, 0, 0, [11, cst$93, [2, 0, [11, cst$94, [2, 0, 0]]]]]]], - cst_s_i_s_s], - _eg_ = [0, cst_lib_read_mll, 44, 13], - _ef_ = [0, [15, 0], cst_a], - cst_null$8 = cst_null$9, - _dq_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], - _dr_ = - [0, - [12, - 123, - [17, - [0, cst_1_0, 1, 0], - [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], - cst_1_0_a_1_2], - _ds_ = [0, [17, 0, 0], cst$96], - _dt_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], - _du_ = - [0, - [12, - 91, - [17, - [0, cst_1_0, 1, 0], - [18, - [1, [0, [11, cst_hov, 0], cst_hov]], - [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], - cst_1_0_hov_a_1_2], - _dw_ = - [0, - [12, - 91, - [17, - [0, cst_1_0, 1, 0], - [18, - [1, [0, [11, cst_hv, 0], cst_hv]], - [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], - cst_1_0_hv_a_1_2], - _dv_ = [0, [17, 0, 0], cst$96], - _dx_ = [0, [18, [1, [0, [11, cst_hov2, 0], cst_hov2]], 0], cst_hov2$0], - _dy_ = - [0, - [12, - 40, - [17, [0, cst$87, 0, 0], [15, [17, [0, cst_0_2, 0, -2], [12, 41, 0]]]]], - cst_a_0_2], - _dz_ = [0, [17, 0, 0], cst$96], - _dA_ = - [0, - [12, - 60, + [11, + caml_string_of_jsbytes("`Assoc ("), [18, - [1, [0, [11, cst_hv2, 0], cst_hv2]], - [2, 0, [11, cst$100, [15, [17, 0, [12, 62, 0]]]]]]], - cst_hv2_s_a], - _dB_ = [0, [12, 60, [2, 0, [12, 62, 0]]], cst_s], - _dC_ = + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Assoc (@[")], + _A_= [0, [18, - [1, [0, [11, cst_hv2, 0], cst_hv2]], - [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], - cst_hv2_s_a$0], - _dF_ = [0, [15, [17, 2, 0]], cst_a$0], - _dE_ = [0, [15, 0], cst_a], - _dD_ = - [0, - [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], - cst_hv2_a], - _dp_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], - cst_true$2 = cst_true$3, - cst_false$2 = cst_false$3, - cst_null$7 = cst_null$9, - cst_b$2 = cst_b$3, - cst_t$2 = cst_t$3, - cst_n$2 = cst_n$3, - cst_f$2 = cst_f$3, - cst_r$2 = cst_r$3, - _dm_ = - [0, - [11, - cst_src, - [3, - 0, - [11, - cst_start, - [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], - cst_src_S_start_i_len_i], - cst_u00$2 = cst_u00$3, - _cz_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _cN_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _cE_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _cF_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], - _cG_ = [0, [3, 0, 0], cst_S], - _cH_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], - _cI_ = [0, [17, 0, [12, 41, 0]], cst$86], - cst_Null$1 = cst_Null$3, - _cC_ = - [0, - [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Assoc_hov], - _cD_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _cJ_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _cK_ = [0, [17, 0, [12, 41, 0]], cst$86], - _cL_ = - [0, - [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_List_hov], - _cM_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _cO_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _cP_ = [0, [17, 0, [12, 41, 0]], cst$86], - _cQ_ = - [0, - [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Bool_hov], - _cR_ = [0, [9, 0, 0], cst_B], - _cS_ = [0, [17, 0, [12, 41, 0]], cst$86], - _cT_ = - [0, - [11, cst_Variant, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Variant_hov], - _cU_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], - _cV_ = [0, [3, 0, 0], cst_S], - _cW_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], - cst_Some$0 = cst_Some$2, - cst_None$0 = cst_None$2, - _cX_ = [0, [17, 0, [12, 41, 0]], cst$86], - _cY_ = [0, [17, 0, [12, 41, 0]], cst$86], - _cx_ = - [0, - [11, cst_Tuple, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Tuple_hov], - _cy_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _cA_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _cB_ = [0, [17, 0, [12, 41, 0]], cst$86], - _cZ_ = - [0, - [11, cst_Float, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Float_hov], - _c0_ = [0, [8, [0, 0, 5], 0, 0, 0], cst_F], - _c1_ = [0, [17, 0, [12, 41, 0]], cst$86], - _c2_ = - [0, - [11, cst_Int, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Int_hov], - _c3_ = [0, [4, 0, 0, 0, 0], cst_d], - _c4_ = [0, [17, 0, [12, 41, 0]], cst$86], - _c5_ = - [0, - [11, cst_Intlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Intlit_hov], - _c6_ = [0, [3, 0, 0], cst_S], - _c7_ = [0, [17, 0, [12, 41, 0]], cst$86], - _c8_ = - [0, - [11, cst_String, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_String_hov], - _c9_ = [0, [3, 0, 0], cst_S], - _c__ = [0, [17, 0, [12, 41, 0]], cst$86], - _dk_ = [0, 737456202, 1], - _dl_ = [0, 737456202, 0], - cst_Unexpected_end_of_input$44 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$9 = cst_Invalid_token$15, - cst_Unexpected_end_of_input$45 = cst_Unexpected_end_of_input$140, - cst_Unexpected_end_of_input$46 = cst_Unexpected_end_of_input$140, - cst_Invalid_escape_sequence$0 = cst_Invalid_escape_sequence$2, - cst_Unexpected_end_of_input$47 = cst_Unexpected_end_of_input$140, - cst_Invalid_low_surrogate_for_$0 = cst_Invalid_low_surrogate_for_$2, - cst_Missing_escape_sequence_re$0 = cst_Missing_escape_sequence_re$2, - cst_Unexpected_end_of_input$48 = cst_Unexpected_end_of_input$140, - cst_Invalid_string_literal$2 = cst_Invalid_string_literal$8, - cst_Unexpected_end_of_input$49 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$13 = cst_Expected_or_but_found$45, - cst_Unexpected_end_of_input$50 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$14 = cst_Expected_but_found$46, - cst_Unexpected_end_of_input$51 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$15 = cst_Expected_but_found$47, - cst_Unexpected_end_of_input$52 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$16 = cst_Expected_but_found$48, - cst_Unexpected_end_of_input$53 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$14 = cst_Expected_or_but_found$46, - cst_Unexpected_end_of_input$54 = cst_Unexpected_end_of_input$140, - cst_Unterminated_comment$1 = cst_Unterminated_comment$5, - cst_Expected_null_but_found$0 = cst_Expected_null_but_found$2, - cst_Unexpected_end_of_input$55 = cst_Unexpected_end_of_input$140, - cst_Expected_true_or_false_but$0 = cst_Expected_true_or_false_but$2, - cst_Unexpected_end_of_input$56 = cst_Unexpected_end_of_input$140, - cst_Int_overflow$3 = cst_Int_overflow$7, - cst_Int_overflow$4 = cst_Int_overflow$7, - cst_Expected_an_integer_but_fo$0 = cst_Expected_an_integer_but_fo$2, - cst_Expected_integer_but_found$0 = cst_Expected_integer_but_found$2, - cst_Unexpected_end_of_input$57 = cst_Unexpected_end_of_input$140, - cst_Int32_overflow$1 = cst_Int32_overflow$5, - cst_Expected_an_int32_but_foun$0 = cst_Expected_an_int32_but_foun$2, - cst_Expected_int32_but_found$0 = cst_Expected_int32_but_found$2, - cst_Unexpected_end_of_input$58 = cst_Unexpected_end_of_input$140, - cst_Int32_overflow$2 = cst_Int32_overflow$5, - cst_Expected_an_int64_but_foun$0 = cst_Expected_an_int64_but_foun$2, - cst_Expected_int64_but_found$0 = cst_Expected_int64_but_found$2, - cst_Unexpected_end_of_input$59 = cst_Unexpected_end_of_input$140, - cst_Expected_a_number_but_foun$0 = cst_Expected_a_number_but_foun$2, - cst_Expected_number_but_found$0 = cst_Expected_number_but_found$2, - cst_Unexpected_end_of_input$60 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$17 = cst_Expected_but_found$49, - cst_Unexpected_end_of_input$61 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$3 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$62 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$4 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$63 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$18 = cst_Expected_but_found$50, - cst_Unexpected_end_of_input$64 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$19 = cst_Expected_but_found$50, - cst_Unexpected_end_of_input$65 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$15 = cst_Expected_or_but_found$47, - cst_Unexpected_end_of_input$66 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$20 = cst_Expected_but_found$51, - cst_Unexpected_end_of_input$67 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$16 = cst_Expected_or_but_found$48, - cst_Expected_or_but_found$17 = cst_Expected_or_but_found$49, - cst_Expected_or_but_found$18 = cst_Expected_or_but_found$50, - cst_Unexpected_end_of_input$68 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$19 = cst_Expected_or_but_found$47, - cst_Expected_or_but_found$20 = cst_Expected_or_but_found$50, - cst_Expected_or_but_found$21 = cst_Expected_or_but_found$50, - cst_Unexpected_end_of_input$69 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$21 = cst_Expected_but_found$52, - cst_Unexpected_end_of_input$70 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$22 = cst_Expected_but_found$52, - cst_Unexpected_end_of_input$71 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$22 = cst_Expected_or_but_found$51, - cst_Unexpected_end_of_input$72 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$23 = cst_Expected_but_found$53, - cst_Unexpected_end_of_input$73 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$23 = cst_Expected_or_but_found$52, - cst_Unexpected_end_of_input$74 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$24 = cst_Expected_but_found$54, - cst_Unexpected_end_of_input$75 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$25 = cst_Expected_but_found$51, - cst_Unexpected_end_of_input$76 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$26 = cst_Expected_but_found$50, - cst_Unexpected_end_of_input$77 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$27 = cst_Expected_but_found$55, - cst_Unexpected_end_of_input$78 = cst_Unexpected_end_of_input$140, - cst_Unexpected_end_of_input$79 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$10 = cst_Invalid_token$15, - cst_Invalid_string_literal$3 = cst_Invalid_string_literal$8, - cst_Unexpected_end_of_input$80 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$24 = cst_Expected_or_but_found$45, - cst_Unexpected_end_of_input$81 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$5 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$82 = cst_Unexpected_end_of_input$140, - cst_Unexpected_end_of_input$83 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$11 = cst_Invalid_token$15, - cst_Invalid_string_literal$4 = cst_Invalid_string_literal$8, - cst_Unexpected_end_of_input$84 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$25 = cst_Expected_or_but_found$45, - cst_Unexpected_end_of_input$85 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$6 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$86 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$26 = cst_Expected_or_but_found$51, - cst_Unexpected_end_of_input$87 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$27 = cst_Expected_or_but_found$47, - cst_Unexpected_end_of_input$88 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$28 = cst_Expected_or_but_found$50, - cst_Unexpected_end_of_input$89 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$28 = cst_Expected_but_found$53, - cst_Unexpected_end_of_input$90 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$29 = cst_Expected_but_found$47, - cst_Unexpected_end_of_input$91 = cst_Unexpected_end_of_input$140, - cst_Unterminated_comment$2 = cst_Unterminated_comment$5, - cst_Expected_two_objects_check$0 = cst_Expected_two_objects_check$1, - cst_Can_t_convert_each_element$0 = cst_Can_t_convert_each_element$1, - cst_Expected_string_or_null_go$0 = cst_Expected_string_or_null_go$1, - cst_Expected_string_got$0 = cst_Expected_string_got$1, - cst_Expected_array_got$0 = cst_Expected_array_got$1, - cst_Expected_int_or_null_got$0 = cst_Expected_int_or_null_got$1, - cst_Expected_int_got$0 = cst_Expected_int_got$1, - cst_Expected_float_or_null_got$0 = cst_Expected_float_or_null_got$1, - cst_Expected_float_got$0 = cst_Expected_float_got$1, - cst_Expected_number_or_null_go$0 = cst_Expected_number_or_null_go$1, - cst_Expected_number_got$0 = cst_Expected_number_got$1, - cst_Expected_bool_or_null_got$0 = cst_Expected_bool_or_null_got$1, - cst_Expected_bool_got$0 = cst_Expected_bool_got$1, - cst_Expected_object_got$0 = cst_Expected_object_got$1, - cst_Can_t_map_function_over_no$0 = cst_Can_t_map_function_over_no$1, - cst_out_of_bounds$0 = cst_out_of_bounds$1, - cst_Index$0 = cst_Index$1, - cst_of_non_array_type$0 = cst_of_non_array_type$1, - cst_Can_t_get_index$0 = cst_Can_t_get_index$1, - cst_of_non_object_type$0 = cst_of_non_object_type$1, - cst_Can_t_get_member$0 = cst_Can_t_get_member$1, - cst_null$6 = cst_null$9, - cst_object$0 = cst_object$1, - cst_array$0 = cst_array$1, - cst_bool$0 = cst_bool$1, - cst_variant$0 = cst_variant$1, - cst_tuple$0 = cst_tuple$1, - cst_float$0 = cst_float$1, - cst_int$0 = cst_int$1, - cst_intlit$0 = cst_intlit$1, - cst_string$0 = cst_string$1, - cst_Blank_input_data$2 = cst_Blank_input_data$5, - cst_Blank_input_data$1 = cst_Blank_input_data$5, - cst_Junk_after_end_of_JSON_val$0 = cst_Junk_after_end_of_JSON_val$2, - cst_Int8_overflow$0 = cst_Int8_overflow$2, - _dh_ = [0, [2, 0, [11, cst$92, [2, 0, [2, 0, [12, 39, 0]]]]], cst_s_s_s], - _dg_ = [0, cst_lib_read_mll, 72, 32], - _df_ = [0, [2, 0, [11, cst$92, [2, 0, [12, 39, 0]]]], cst_s_s], - _db_ = [0, [11, cst_File, [2, 0, [11, cst_line, 0]]], cst_File_s_line], - cst_Line$0 = cst_Line$2, - _dc_ = [0, [11, cst_byte, [4, 3, 0, 0, 0]], cst_byte_i], - _de_ = - [0, - [11, cst_bytes, [4, 3, 0, 0, [12, 45, [4, 3, 0, 0, 0]]]], - cst_bytes_i_i], - _dd_ = - [0, - [2, - 0, - [12, 32, [4, 3, 0, 0, [11, cst$93, [2, 0, [11, cst$94, [2, 0, 0]]]]]]], - cst_s_i_s_s], - _da_ = [0, cst_lib_read_mll, 44, 13], - _c$_ = [0, [15, 0], cst_a], - cst_null$5 = cst_null$9, - _ck_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], - _cl_ = - [0, - [12, - 123, - [17, - [0, cst_1_0, 1, 0], - [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], - cst_1_0_a_1_2], - _cm_ = [0, [17, 0, 0], cst$96], - _cn_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], - _co_ = - [0, - [12, - 91, - [17, - [0, cst_1_0, 1, 0], - [18, - [1, [0, [11, cst_hov, 0], cst_hov]], - [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], - cst_1_0_hov_a_1_2], - _cq_ = - [0, - [12, - 91, - [17, - [0, cst_1_0, 1, 0], - [18, - [1, [0, [11, cst_hv, 0], cst_hv]], - [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], - cst_1_0_hv_a_1_2], - _cp_ = [0, [17, 0, 0], cst$96], - _cr_ = - [0, - [12, - 60, - [18, - [1, [0, [11, cst_hv2, 0], cst_hv2]], - [2, 0, [11, cst$100, [15, [17, 0, [12, 62, 0]]]]]]], - cst_hv2_s_a], - _cs_ = [0, [12, 60, [2, 0, [12, 62, 0]]], cst_s], - _ch_ = [0, [18, [1, [0, [11, cst_hov2, 0], cst_hov2]], 0], cst_hov2$0], - _ci_ = - [0, - [12, - 40, - [17, [0, cst$87, 0, 0], [15, [17, [0, cst_0_2, 0, -2], [12, 41, 0]]]]], - cst_a_0_2], - _cj_ = [0, [17, 0, 0], cst$96], - _ct_ = - [0, - [18, - [1, [0, [11, cst_hv2, 0], cst_hv2]], - [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], - cst_hv2_s_a$0], - _cw_ = [0, [15, [17, 2, 0]], cst_a$0], - _cv_ = [0, [15, 0], cst_a], - _cu_ = - [0, - [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], - cst_hv2_a], - _cg_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], - cst_NaN_value_not_allowed_in_s$4 = cst_NaN_value_not_allowed_in_s$5, - cst_Infinity_value_not_allowed$9 = cst_Infinity_value_not_allowed$11, - cst_Infinity_value_not_allowed$10 = cst_Infinity_value_not_allowed$12, - cst_NaN_value_not_allowed_in_s$3 = cst_NaN_value_not_allowed_in_s$5, - _ce_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], - _cf_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], - cst_0$7 = cst_0$8, - cst_Infinity_value_not_allowed$7 = cst_Infinity_value_not_allowed$11, - cst_Infinity_value_not_allowed$8 = cst_Infinity_value_not_allowed$12, - cst_NaN$4 = cst_NaN$5, - cst_Infinity$9 = cst_Infinity$11, - cst_Infinity$10 = cst_Infinity$12, - _bZ_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], - _b0_ = [0, [8, [0, 0, 3], 0, [0, 1], 0], cst_1g], - _b1_ = [0, [8, [0, 0, 3], 0, [0, 2], 0], cst_2g], - _b2_ = [0, [8, [0, 0, 3], 0, [0, 3], 0], cst_3g], - _b3_ = [0, [8, [0, 0, 3], 0, [0, 4], 0], cst_4g], - _b4_ = [0, [8, [0, 0, 3], 0, [0, 5], 0], cst_5g], - _b5_ = [0, [8, [0, 0, 3], 0, [0, 6], 0], cst_6g], - _b6_ = [0, [8, [0, 0, 3], 0, [0, 7], 0], cst_7g], - _b7_ = [0, [8, [0, 0, 3], 0, [0, 8], 0], cst_8g], - _b8_ = [0, [8, [0, 0, 3], 0, [0, 9], 0], cst_9g], - _b9_ = [0, [8, [0, 0, 3], 0, [0, 10], 0], cst_10g], - _b__ = [0, [8, [0, 0, 3], 0, [0, 11], 0], cst_11g], - _b$_ = [0, [8, [0, 0, 3], 0, [0, 12], 0], cst_12g], - _ca_ = [0, [8, [0, 0, 3], 0, [0, 13], 0], cst_13g], - _cb_ = [0, [8, [0, 0, 3], 0, [0, 14], 0], cst_14g], - _cc_ = [0, [8, [0, 0, 3], 0, [0, 15], 0], cst_15g], - _cd_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], - cst_0$6 = cst_0$8, - cst_NaN$3 = cst_NaN$5, - _bX_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], - _bY_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], - cst_0$5 = cst_0$8, - cst_Infinity$7 = cst_Infinity$11, - cst_Infinity$8 = cst_Infinity$12, - cst_true$1 = cst_true$3, - cst_false$1 = cst_false$3, - cst_null$4 = cst_null$9, - cst_b$1 = cst_b$3, - cst_t$1 = cst_t$3, - cst_n$1 = cst_n$3, - cst_f$1 = cst_f$3, - cst_r$1 = cst_r$3, - _bU_ = - [0, - [11, - cst_src, - [3, - 0, - [11, - cst_start, - [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], - cst_src_S_start_i_len_i], - cst_u00$1 = cst_u00$3, - _bs_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _bj_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], - _bk_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], - _bl_ = [0, [3, 0, 0], cst_S], - _bm_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], - _bn_ = [0, [17, 0, [12, 41, 0]], cst$86], - cst_Null$0 = cst_Null$3, - _bh_ = - [0, - [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Assoc_hov], - _bi_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _bo_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _bp_ = [0, [17, 0, [12, 41, 0]], cst$86], - _bq_ = - [0, - [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_List_hov], - _br_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], - _bt_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], - _bu_ = [0, [17, 0, [12, 41, 0]], cst$86], - _bv_ = - [0, - [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Bool_hov], - _bw_ = [0, [9, 0, 0], cst_B], - _bx_ = [0, [17, 0, [12, 41, 0]], cst$86], - _by_ = - [0, - [11, cst_Float, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Float_hov], - _bz_ = [0, [8, [0, 0, 5], 0, 0, 0], cst_F], - _bA_ = [0, [17, 0, [12, 41, 0]], cst$86], - _bB_ = - [0, - [11, cst_Int, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_Int_hov], - _bC_ = [0, [4, 0, 0, 0, 0], cst_d], - _bD_ = [0, [17, 0, [12, 41, 0]], cst$86], - _bE_ = - [0, - [11, cst_String, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], - cst_String_hov], - _bF_ = [0, [3, 0, 0], cst_S], - _bG_ = [0, [17, 0, [12, 41, 0]], cst$86], - _bS_ = [0, 737456202, 1], - _bT_ = [0, 737456202, 0], - cst_Invalid_token = cst_Invalid_token$15, - cst_Invalid_token$0 = cst_Invalid_token$15, - cst_Unexpected_end_of_input = cst_Unexpected_end_of_input$140, - cst_Invalid_token$1 = cst_Invalid_token$15, - cst_Unexpected_end_of_input$0 = cst_Unexpected_end_of_input$140, - cst_Unexpected_end_of_input$1 = cst_Unexpected_end_of_input$140, - cst_Invalid_escape_sequence = cst_Invalid_escape_sequence$2, - cst_Unexpected_end_of_input$2 = cst_Unexpected_end_of_input$140, - cst_Invalid_low_surrogate_for_ = cst_Invalid_low_surrogate_for_$2, - cst_Missing_escape_sequence_re = cst_Missing_escape_sequence_re$2, - cst_Unexpected_end_of_input$3 = cst_Unexpected_end_of_input$140, - cst_Invalid_string_literal = cst_Invalid_string_literal$8, - cst_Unexpected_end_of_input$4 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found = cst_Expected_or_but_found$45, - cst_Unexpected_end_of_input$5 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found = cst_Expected_but_found$46, - cst_Unexpected_end_of_input$6 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$0 = cst_Expected_but_found$47, - cst_Unexpected_end_of_input$7 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$1 = cst_Expected_but_found$48, - cst_Unexpected_end_of_input$8 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$0 = cst_Expected_or_but_found$46, - cst_Unexpected_end_of_input$9 = cst_Unexpected_end_of_input$140, - cst_Unterminated_comment = cst_Unterminated_comment$5, - cst_Expected_null_but_found = cst_Expected_null_but_found$2, - cst_Unexpected_end_of_input$10 = cst_Unexpected_end_of_input$140, - cst_Expected_true_or_false_but = cst_Expected_true_or_false_but$2, - cst_Unexpected_end_of_input$11 = cst_Unexpected_end_of_input$140, - cst_Int_overflow$1 = cst_Int_overflow$7, - cst_Int_overflow$2 = cst_Int_overflow$7, - cst_Expected_an_integer_but_fo = cst_Expected_an_integer_but_fo$2, - cst_Expected_integer_but_found = cst_Expected_integer_but_found$2, - cst_Unexpected_end_of_input$12 = cst_Unexpected_end_of_input$140, - cst_Int32_overflow = cst_Int32_overflow$5, - cst_Expected_an_int32_but_foun = cst_Expected_an_int32_but_foun$2, - cst_Expected_int32_but_found = cst_Expected_int32_but_found$2, - cst_Unexpected_end_of_input$13 = cst_Unexpected_end_of_input$140, - cst_Int32_overflow$0 = cst_Int32_overflow$5, - cst_Expected_an_int64_but_foun = cst_Expected_an_int64_but_foun$2, - cst_Expected_int64_but_found = cst_Expected_int64_but_found$2, - cst_Unexpected_end_of_input$14 = cst_Unexpected_end_of_input$140, - cst_Expected_a_number_but_foun = cst_Expected_a_number_but_foun$2, - cst_Expected_number_but_found = cst_Expected_number_but_found$2, - cst_Unexpected_end_of_input$15 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$2 = cst_Expected_but_found$49, - cst_Unexpected_end_of_input$16 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$17 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$0 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$18 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$3 = cst_Expected_but_found$50, - cst_Unexpected_end_of_input$19 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$4 = cst_Expected_but_found$50, - cst_Unexpected_end_of_input$20 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$1 = cst_Expected_or_but_found$47, - cst_Unexpected_end_of_input$21 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$2 = cst_Invalid_token$15, - cst_Expected_but_found$5 = cst_Expected_but_found$51, - cst_Unexpected_end_of_input$22 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$2 = cst_Expected_or_but_found$48, - cst_Expected_or_but_found$3 = cst_Expected_or_but_found$49, - cst_Expected_or_but_found$4 = cst_Expected_or_but_found$50, - cst_Unexpected_end_of_input$23 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$5 = cst_Expected_or_but_found$47, - cst_Expected_or_but_found$6 = cst_Expected_or_but_found$50, - cst_Expected_or_but_found$7 = cst_Expected_or_but_found$50, - cst_Unexpected_end_of_input$24 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$6 = cst_Expected_but_found$52, - cst_Unexpected_end_of_input$25 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$7 = cst_Expected_but_found$52, - cst_Unexpected_end_of_input$26 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$8 = cst_Expected_or_but_found$51, - cst_Unexpected_end_of_input$27 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$8 = cst_Expected_but_found$53, - cst_Unexpected_end_of_input$28 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$9 = cst_Expected_or_but_found$52, - cst_Unexpected_end_of_input$29 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$9 = cst_Expected_but_found$54, - cst_Unexpected_end_of_input$30 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$10 = cst_Expected_but_found$51, - cst_Unexpected_end_of_input$31 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$11 = cst_Expected_but_found$50, - cst_Unexpected_end_of_input$32 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$12 = cst_Expected_but_found$55, - cst_Unexpected_end_of_input$33 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$3 = cst_Invalid_token$15, - cst_Invalid_token$4 = cst_Invalid_token$15, - cst_Unexpected_end_of_input$34 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$5 = cst_Invalid_token$15, - cst_Invalid_string_literal$0 = cst_Invalid_string_literal$8, - cst_Unexpected_end_of_input$35 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$10 = cst_Expected_or_but_found$45, - cst_Unexpected_end_of_input$36 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$1 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$37 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$6 = cst_Invalid_token$15, - cst_Invalid_token$7 = cst_Invalid_token$15, - cst_Unexpected_end_of_input$38 = cst_Unexpected_end_of_input$140, - cst_Invalid_token$8 = cst_Invalid_token$15, - cst_Invalid_string_literal$1 = cst_Invalid_string_literal$8, - cst_Unexpected_end_of_input$39 = cst_Unexpected_end_of_input$140, - cst_Expected_string_or_identif$2 = cst_Expected_string_or_identif$11, - cst_Unexpected_end_of_input$40 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$11 = cst_Expected_or_but_found$51, - cst_Unexpected_end_of_input$41 = cst_Unexpected_end_of_input$140, - cst_Expected_or_but_found$12 = cst_Expected_or_but_found$47, - cst_Unexpected_end_of_input$42 = cst_Unexpected_end_of_input$140, - cst_Expected_but_found$13 = cst_Expected_but_found$53, - cst_Unexpected_end_of_input$43 = cst_Unexpected_end_of_input$140, - cst_Unterminated_comment$0 = cst_Unterminated_comment$5, - cst_Expected_two_objects_check = cst_Expected_two_objects_check$1, - cst_Can_t_convert_each_element = cst_Can_t_convert_each_element$1, - cst_Expected_string_or_null_go = cst_Expected_string_or_null_go$1, - cst_Expected_string_got = cst_Expected_string_got$1, - cst_Expected_array_got = cst_Expected_array_got$1, - cst_Expected_int_or_null_got = cst_Expected_int_or_null_got$1, - cst_Expected_int_got = cst_Expected_int_got$1, - cst_Expected_float_or_null_got = cst_Expected_float_or_null_got$1, - cst_Expected_float_got = cst_Expected_float_got$1, - cst_Expected_number_or_null_go = cst_Expected_number_or_null_go$1, - cst_Expected_number_got = cst_Expected_number_got$1, - cst_Expected_bool_or_null_got = cst_Expected_bool_or_null_got$1, - cst_Expected_bool_got = cst_Expected_bool_got$1, - cst_Expected_object_got = cst_Expected_object_got$1, - cst_Can_t_map_function_over_no = cst_Can_t_map_function_over_no$1, - cst_out_of_bounds = cst_out_of_bounds$1, - cst_Index = cst_Index$1, - cst_of_non_array_type = cst_of_non_array_type$1, - cst_Can_t_get_index = cst_Can_t_get_index$1, - cst_of_non_object_type = cst_of_non_object_type$1, - cst_Can_t_get_member = cst_Can_t_get_member$1, - cst_null$3 = cst_null$9, - cst_object = cst_object$1, - cst_array = cst_array$1, - cst_bool = cst_bool$1, - cst_variant = cst_variant$1, - cst_tuple = cst_tuple$1, - cst_float = cst_float$1, - cst_int = cst_int$1, - cst_intlit = cst_intlit$1, - cst_string = cst_string$1, - cst_Blank_input_data$0 = cst_Blank_input_data$5, - cst_Blank_input_data = cst_Blank_input_data$5, - cst_Junk_after_end_of_JSON_val = cst_Junk_after_end_of_JSON_val$2, - cst_Int8_overflow = cst_Int8_overflow$2, - cst_Int_overflow$0 = cst_Int_overflow$7, - cst_Int_overflow = cst_Int_overflow$7, - _bP_ = [0, [2, 0, [11, cst$92, [2, 0, [2, 0, [12, 39, 0]]]]], cst_s_s_s], - _bO_ = [0, cst_lib_read_mll, 72, 32], - _bN_ = [0, [2, 0, [11, cst$92, [2, 0, [12, 39, 0]]]], cst_s_s], - _bJ_ = [0, [11, cst_File, [2, 0, [11, cst_line, 0]]], cst_File_s_line], - cst_Line = cst_Line$2, - _bK_ = [0, [11, cst_byte, [4, 3, 0, 0, 0]], cst_byte_i], - _bM_ = - [0, - [11, cst_bytes, [4, 3, 0, 0, [12, 45, [4, 3, 0, 0, 0]]]], - cst_bytes_i_i], - _bL_ = - [0, - [2, - 0, - [12, 32, [4, 3, 0, 0, [11, cst$93, [2, 0, [11, cst$94, [2, 0, 0]]]]]]], - cst_s_i_s_s], - _bI_ = [0, cst_lib_read_mll, 44, 13], - _bH_ = [0, [15, 0], cst_a], - cst_null$2 = cst_null$9, - _a8_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], - _a9_ = - [0, - [12, - 123, - [17, - [0, cst_1_0, 1, 0], - [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], - cst_1_0_a_1_2], - _a__ = [0, [17, 0, 0], cst$96], - _a$_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], - _ba_ = - [0, - [12, - 91, - [17, - [0, cst_1_0, 1, 0], - [18, - [1, [0, [11, cst_hov, 0], cst_hov]], - [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], - cst_1_0_hov_a_1_2], - _bc_ = - [0, - [12, - 91, - [17, - [0, cst_1_0, 1, 0], - [18, - [1, [0, [11, cst_hv, 0], cst_hv]], - [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], - cst_1_0_hv_a_1_2], - _bb_ = [0, [17, 0, 0], cst$96], - _bd_ = - [0, - [18, - [1, [0, [11, cst_hv2, 0], cst_hv2]], - [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], - cst_hv2_s_a$0], - _bg_ = [0, [15, [17, 2, 0]], cst_a$0], - _bf_ = [0, [15, 0], cst_a], - _be_ = - [0, - [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], - cst_hv2_a], - _a7_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], - cst_NaN_value_not_allowed_in_s$2 = cst_NaN_value_not_allowed_in_s$5, - cst_Infinity_value_not_allowed$5 = cst_Infinity_value_not_allowed$11, - cst_Infinity_value_not_allowed$6 = cst_Infinity_value_not_allowed$12, - cst_NaN_value_not_allowed_in_s$1 = cst_NaN_value_not_allowed_in_s$5, - _a5_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], - _a6_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], - cst_0$4 = cst_0$8, - cst_Infinity_value_not_allowed$3 = cst_Infinity_value_not_allowed$11, - cst_Infinity_value_not_allowed$4 = cst_Infinity_value_not_allowed$12, - cst_NaN$2 = cst_NaN$5, - cst_Infinity$5 = cst_Infinity$11, - cst_Infinity$6 = cst_Infinity$12, - _aO_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], - _aP_ = [0, [8, [0, 0, 3], 0, [0, 1], 0], cst_1g], - _aQ_ = [0, [8, [0, 0, 3], 0, [0, 2], 0], cst_2g], - _aR_ = [0, [8, [0, 0, 3], 0, [0, 3], 0], cst_3g], - _aS_ = [0, [8, [0, 0, 3], 0, [0, 4], 0], cst_4g], - _aT_ = [0, [8, [0, 0, 3], 0, [0, 5], 0], cst_5g], - _aU_ = [0, [8, [0, 0, 3], 0, [0, 6], 0], cst_6g], - _aV_ = [0, [8, [0, 0, 3], 0, [0, 7], 0], cst_7g], - _aW_ = [0, [8, [0, 0, 3], 0, [0, 8], 0], cst_8g], - _aX_ = [0, [8, [0, 0, 3], 0, [0, 9], 0], cst_9g], - _aY_ = [0, [8, [0, 0, 3], 0, [0, 10], 0], cst_10g], - _aZ_ = [0, [8, [0, 0, 3], 0, [0, 11], 0], cst_11g], - _a0_ = [0, [8, [0, 0, 3], 0, [0, 12], 0], cst_12g], - _a1_ = [0, [8, [0, 0, 3], 0, [0, 13], 0], cst_13g], - _a2_ = [0, [8, [0, 0, 3], 0, [0, 14], 0], cst_14g], - _a3_ = [0, [8, [0, 0, 3], 0, [0, 15], 0], cst_15g], - _a4_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], - cst_0$3 = cst_0$8, - cst_NaN$1 = cst_NaN$5, - _aM_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], - _aN_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], - cst_0$2 = cst_0$8, - cst_Infinity$3 = cst_Infinity$11, - cst_Infinity$4 = cst_Infinity$12, - cst_true$0 = cst_true$3, - cst_false$0 = cst_false$3, - cst_null$1 = cst_null$9, - cst_b$0 = cst_b$3, - cst_t$0 = cst_t$3, - cst_n$0 = cst_n$3, - cst_f$0 = cst_f$3, - cst_r$0 = cst_r$3, - _aJ_ = - [0, - [11, - cst_src, - [3, - 0, - [11, - cst_start, - [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], - cst_src_S_start_i_len_i], - cst_u00$0 = cst_u00$3, - cst_null$0 = cst_null$9, - _at_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], - _au_ = - [0, - [12, - 123, - [17, - [0, cst_1_0, 1, 0], - [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], - cst_1_0_a_1_2], - _av_ = [0, [17, 0, 0], cst$96], - _aw_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], - _ax_ = - [0, - [12, - 91, - [17, - [0, cst_1_0, 1, 0], - [18, - [1, [0, [11, cst_hov, 0], cst_hov]], - [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], - cst_1_0_hov_a_1_2], - _az_ = - [0, - [12, - 91, - [17, - [0, cst_1_0, 1, 0], - [18, - [1, [0, [11, cst_hv, 0], cst_hv]], - [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], - cst_1_0_hv_a_1_2], - _ay_ = [0, [17, 0, 0], cst$96], - _aA_ = [0, [18, [1, [0, [11, cst_hov2, 0], cst_hov2]], 0], cst_hov2$0], - _aB_ = - [0, - [12, - 40, - [17, [0, cst$87, 0, 0], [15, [17, [0, cst_0_2, 0, -2], [12, 41, 0]]]]], - cst_a_0_2], - _aC_ = [0, [17, 0, 0], cst$96], - _aD_ = - [0, - [12, - 60, - [18, - [1, [0, [11, cst_hv2, 0], cst_hv2]], - [2, 0, [11, cst$100, [15, [17, 0, [12, 62, 0]]]]]]], - cst_hv2_s_a], - _aE_ = [0, [12, 60, [2, 0, [12, 62, 0]]], cst_s], - _aF_ = - [0, - [18, - [1, [0, [11, cst_hv2, 0], cst_hv2]], - [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], - cst_hv2_s_a$0], - _aI_ = [0, [15, [17, 2, 0]], cst_a$0], - _aH_ = [0, [15, 0], cst_a], - _aG_ = - [0, - [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], - cst_hv2_a], - _as_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], - _ar_ = [0, [15, 0], cst_a], - cst_NaN_value_not_allowed_in_s$0 = cst_NaN_value_not_allowed_in_s$5, - cst_Infinity_value_not_allowed$1 = cst_Infinity_value_not_allowed$11, - cst_Infinity_value_not_allowed$2 = cst_Infinity_value_not_allowed$12, - cst_NaN_value_not_allowed_in_s = cst_NaN_value_not_allowed_in_s$5, - _x_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], - _y_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], - cst_0$1 = cst_0$8, - cst_Infinity_value_not_allowed = cst_Infinity_value_not_allowed$11, - cst_Infinity_value_not_allowed$0 = cst_Infinity_value_not_allowed$12, - cst_NaN$0 = cst_NaN$5, - cst_Infinity$1 = cst_Infinity$11, - cst_Infinity$2 = cst_Infinity$12, - _g_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], - _h_ = [0, [8, [0, 0, 3], 0, [0, 1], 0], cst_1g], - _i_ = [0, [8, [0, 0, 3], 0, [0, 2], 0], cst_2g], - _j_ = [0, [8, [0, 0, 3], 0, [0, 3], 0], cst_3g], - _k_ = [0, [8, [0, 0, 3], 0, [0, 4], 0], cst_4g], - _l_ = [0, [8, [0, 0, 3], 0, [0, 5], 0], cst_5g], - _m_ = [0, [8, [0, 0, 3], 0, [0, 6], 0], cst_6g], - _n_ = [0, [8, [0, 0, 3], 0, [0, 7], 0], cst_7g], - _o_ = [0, [8, [0, 0, 3], 0, [0, 8], 0], cst_8g], - _p_ = [0, [8, [0, 0, 3], 0, [0, 9], 0], cst_9g], - _q_ = [0, [8, [0, 0, 3], 0, [0, 10], 0], cst_10g], - _r_ = [0, [8, [0, 0, 3], 0, [0, 11], 0], cst_11g], - _s_ = [0, [8, [0, 0, 3], 0, [0, 12], 0], cst_12g], - _t_ = [0, [8, [0, 0, 3], 0, [0, 13], 0], cst_13g], - _u_ = [0, [8, [0, 0, 3], 0, [0, 14], 0], cst_14g], - _v_ = [0, [8, [0, 0, 3], 0, [0, 15], 0], cst_15g], - _w_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], - cst_0$0 = cst_0$8, - cst_NaN = cst_NaN$5, - _e_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], - _f_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], - cst_0 = cst_0$8, - cst_Infinity = cst_Infinity$11, - cst_Infinity$0 = cst_Infinity$12, - cst_true = cst_true$3, - cst_false = cst_false$3, - cst_null = cst_null$9, - cst_b = cst_b$3, - cst_t = cst_t$3, - cst_n = cst_n$3, - cst_f = cst_f$3, - cst_r = cst_r$3, - _b_ = - [0, - [11, - cst_src, - [3, - 0, - [11, - cst_start, - [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], - cst_src_S_start_i_len_i], - cst_u00 = cst_u00$3, - _a_ = [0, "common.ml", 57, 4], - cst_Yojson_End_of_array = "Yojson.End_of_array", - cst_Yojson_End_of_object = "Yojson.End_of_object", - cst_Yojson_End_of_tuple = "Yojson.End_of_tuple", - cst_Yojson_End_of_input = "Yojson.End_of_input", - cst_Yojson_Basic_Int_overflow = "Yojson.Basic.Int_overflow", - cst_Yojson_Basic_Finally = "Yojson.Basic.Finally", - cst_Yojson_Basic_Util_Type_err = "Yojson.Basic.Util.Type_error", - cst_Yojson_Basic_Util_Undefine = "Yojson.Basic.Util.Undefined", - cst_Yojson_Safe_Int_overflow = "Yojson.Safe.Int_overflow", - cst_Yojson_Safe_Finally = "Yojson.Safe.Finally", - cst_Yojson_Safe_Util_Type_erro = "Yojson.Safe.Util.Type_error", - cst_Yojson_Safe_Util_Undefined = "Yojson.Safe.Util.Undefined", - cst_Yojson_Raw_Int_overflow = "Yojson.Raw.Int_overflow", - cst_Yojson_Raw_Finally = "Yojson.Raw.Finally"; - function json_error(s){ - throw caml_maybe_attach_backtrace([0, Json_error, s], 1); - } - var - End_of_array = [248, cst_Yojson_End_of_array, caml_fresh_oo_id(0)], - End_of_object = [248, cst_Yojson_End_of_object, caml_fresh_oo_id(0)], - End_of_tuple = [248, cst_Yojson_End_of_tuple, caml_fresh_oo_id(0)], - End_of_input = [248, cst_Yojson_End_of_input, caml_fresh_oo_id(0)]; - function utf8_of_code(buf, x){ - var add = Stdlib_Buffer[12]; - function maxbits(n, x){return 0 === (x >>> n | 0) ? 1 : 0;} - if(maxbits(7, x)) - return caml_call2(add, buf, caml_call1(Stdlib_Char[1], x)); - if(maxbits(11, x)){ - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 192 | (x >>> 6 | 0) & 31)); - return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); - } - if(maxbits(16, x)){ - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 224 | (x >>> 12 | 0) & 15)); - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); - return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); - } - if(maxbits(21, x)){ - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 240 | (x >>> 18 | 0) & 7)); - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 12 | 0) & 63)); - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); - return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); - } - if(maxbits(26, x)){ - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 248 | (x >>> 24 | 0) & 3)); - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 18 | 0) & 63)); - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 12 | 0) & 63)); - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); - return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); - } - if(! maxbits(31, x)) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - caml_call2(add, buf, caml_call1(Stdlib_Char[1], 252 | (x >>> 30 | 0) & 1)); - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 24 | 0) & 63)); - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 18 | 0) & 63)); - caml_call2 - (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 12 | 0) & 63)); - caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); - return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); - } - function utf8_of_surrogate_pair(buf, i, j){ - var high10 = i - 55296 | 0, low10 = j - 56320 | 0; - return utf8_of_code(buf, 65536 + (high10 << 10 | low10) | 0); - } - var Lexer_state = [0]; - function init_lexer(buf, fname, opt, param){ - if(opt) var sth = opt[1], lnum = sth; else var lnum = 1; - if(buf) - var buf$0 = buf[1], buf$1 = buf$0; - else - var buf$1 = caml_call1(Stdlib_Buffer[1], 256); - return [0, buf$1, lnum, 0, fname]; - } - function hex(n){ - var _pO_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; - return caml_call1(Stdlib_Char[1], _pO_); - } - function write_special(src, start, stop, ob, str){ - caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16], ob, str); - start[1] = stop + 1 | 0; - return 0; - } - function write_string(ob, src){ - caml_call2(Stdlib_Buffer[12], ob, 34); - var start = [0, 0], _pM_ = caml_ml_string_length(src) - 1 | 0, _pL_ = 0; - if(_pM_ >= 0){ - var stop = _pL_; - for(;;){ - var c = caml_string_get(src, stop); - if(92 === c) - write_special(src, start, stop, ob, cst); - else{ - var switch$0 = 0; - if(35 <= c){ - if(127 !== c) switch$0 = 2; - } - else if(8 <= c){ - var switch$1 = 0; - switch(c - 8 | 0){ - case 0: - write_special(src, start, stop, ob, cst_b); break; - case 1: - write_special(src, start, stop, ob, cst_t); break; - case 2: - write_special(src, start, stop, ob, cst_n); break; - case 4: - write_special(src, start, stop, ob, cst_f); break; - case 5: - write_special(src, start, stop, ob, cst_r); break; - case 26: - write_special(src, start, stop, ob, cst$0); break; - case 24: - case 25: - switch$0 = 2; switch$1 = 1; break; - default: switch$1 = 1; - } - if(! switch$1) switch$0 = 1; - } - switch(switch$0){ - case 2: break; - case 0: - caml_call4 - (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16], ob, cst_u00); - var _pJ_ = hex(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12], ob, _pJ_); - var _pK_ = hex(c & 15); - caml_call2(Stdlib_Buffer[12], ob, _pK_); - start[1] = stop + 1 | 0; - break; - } - } - var _pN_ = stop + 1 | 0; - if(_pM_ !== stop){var stop = _pN_; continue;} - break; - } - } - try{ - caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - } - catch(exc$0){ - var exc = caml_wrap_exception(exc$0); - caml_call4 - (Stdlib_Printf[3], - _b_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw caml_maybe_attach_backtrace(exc, 0); - } - return caml_call2(Stdlib_Buffer[12], ob, 34); - } - function json_string_of_string(s){ - var ob = caml_call1(Stdlib_Buffer[1], 10); - write_string(ob, s); - return caml_call1(Stdlib_Buffer[2], ob); - } - function write_null(ob, param){ - return caml_call2(Stdlib_Buffer[16], ob, cst_null); - } - function write_bool(ob, x){ - var _pI_ = x ? cst_true : cst_false; - return caml_call2(Stdlib_Buffer[16], ob, _pI_); - } - var - _c_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), - _d_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); - caml_call2(Stdlib[17], _d_, _c_); - function write_digits(s, x){ - if(0 === x) return 0; - var d = x % 10 | 0; - write_digits(s, x / 10 | 0); - var - n = caml_call1(Stdlib[18], d), - _pH_ = caml_call1(Stdlib_Char[1], n + 48 | 0); - return caml_call2(Stdlib_Buffer[12], s, _pH_); - } - function write_int(ob, x){ - return 0 < x - ? write_digits(ob, x) - : 0 - <= x - ? caml_call2(Stdlib_Buffer[12], ob, 48) - : (caml_call2(Stdlib_Buffer[12], ob, 45), write_digits(ob, x)); - } - function float_needs_period(s){ - try{ - var _pD_ = caml_ml_string_length(s) - 1 | 0, _pC_ = 0; - if(_pD_ >= 0){ - var i = _pC_; - for(;;){ - var match = caml_string_get(s, i), switch$0 = 0; - if(48 <= match){ - if(58 > match) switch$0 = 1; - } - else if(45 === match) switch$0 = 1; - if(! switch$0) throw caml_maybe_attach_backtrace(Stdlib[3], 1); - var _pF_ = i + 1 | 0; - if(_pD_ !== i){var i = _pF_; continue;} - break; - } - } - var _pE_ = 1; - return _pE_; - } - catch(_pG_){ - var _pB_ = caml_wrap_exception(_pG_); - if(_pB_ === Stdlib[3]) return 0; - throw caml_maybe_attach_backtrace(_pB_, 0); - } - } - function write_float(ob, x){ - var match = caml_classify_float(x); - if(3 === match){ - var _pz_ = 0. < x ? cst_Infinity : cst_Infinity$0; - return caml_call2(Stdlib_Buffer[16], ob, _pz_); - } - if(4 <= match) return caml_call2(Stdlib_Buffer[16], ob, cst_NaN); - var - s1 = caml_call2(Stdlib_Printf[4], _e_, x), - s = - caml_float_of_string(s1) == x - ? s1 - : caml_call2(Stdlib_Printf[4], _f_, x); - caml_call2(Stdlib_Buffer[16], ob, s); - var _pA_ = float_needs_period(s); - return _pA_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0) : _pA_; - } - function write_normal_float_prec(significant_figures, ob, x){ - var switcher = significant_figures - 1 | 0; - if(15 < switcher >>> 0) - var s = caml_call2(Stdlib_Printf[4], _g_, x); - else - switch(switcher){ - case 0: - var s = caml_call2(Stdlib_Printf[4], _h_, x); break; - case 1: - var s = caml_call2(Stdlib_Printf[4], _i_, x); break; - case 2: - var s = caml_call2(Stdlib_Printf[4], _j_, x); break; - case 3: - var s = caml_call2(Stdlib_Printf[4], _k_, x); break; - case 4: - var s = caml_call2(Stdlib_Printf[4], _l_, x); break; - case 5: - var s = caml_call2(Stdlib_Printf[4], _m_, x); break; - case 6: - var s = caml_call2(Stdlib_Printf[4], _n_, x); break; - case 7: - var s = caml_call2(Stdlib_Printf[4], _o_, x); break; - case 8: - var s = caml_call2(Stdlib_Printf[4], _p_, x); break; - case 9: - var s = caml_call2(Stdlib_Printf[4], _q_, x); break; - case 10: - var s = caml_call2(Stdlib_Printf[4], _r_, x); break; - case 11: - var s = caml_call2(Stdlib_Printf[4], _s_, x); break; - case 12: - var s = caml_call2(Stdlib_Printf[4], _t_, x); break; - case 13: - var s = caml_call2(Stdlib_Printf[4], _u_, x); break; - case 14: - var s = caml_call2(Stdlib_Printf[4], _v_, x); break; - default: var s = caml_call2(Stdlib_Printf[4], _w_, x); - } - caml_call2(Stdlib_Buffer[16], ob, s); - var _py_ = float_needs_period(s); - return _py_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$0) : _py_; - } - function write_float_prec(significant_figures, ob, x){ - var match = caml_classify_float(x); - if(3 !== match) - return 4 <= match - ? caml_call2(Stdlib_Buffer[16], ob, cst_NaN$0) - : write_normal_float_prec(significant_figures, ob, x); - var _px_ = 0. < x ? cst_Infinity$1 : cst_Infinity$2; - return caml_call2(Stdlib_Buffer[16], ob, _px_); - } - function write_std_float(ob, x){ - var match = caml_classify_float(x); - if(3 === match){ - var - _pv_ = - 0. < x - ? cst_Infinity_value_not_allowed - : cst_Infinity_value_not_allowed$0; - return json_error(_pv_); - } - if(4 <= match) return json_error(cst_NaN_value_not_allowed_in_s); - var - s1 = caml_call2(Stdlib_Printf[4], _x_, x), - s = - caml_float_of_string(s1) == x - ? s1 - : caml_call2(Stdlib_Printf[4], _y_, x); - caml_call2(Stdlib_Buffer[16], ob, s); - var _pw_ = float_needs_period(s); - return _pw_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$1) : _pw_; - } - function write_std_float_prec(significant_figures, ob, x){ - var match = caml_classify_float(x); - if(3 !== match) - return 4 <= match - ? json_error(cst_NaN_value_not_allowed_in_s$0) - : write_normal_float_prec(significant_figures, ob, x); - var - _pu_ = - 0. < x - ? cst_Infinity_value_not_allowed$1 - : cst_Infinity_value_not_allowed$2; - return json_error(_pu_); - } - var - write_intlit = Stdlib_Buffer[16], - write_floatlit = Stdlib_Buffer[16], - write_stringlit = Stdlib_Buffer[16]; - function iter2(f_elt, f_sep, x, param$0){ - if(! param$0) return 0; - var l$0 = param$0[2], y$0 = param$0[1]; - caml_call2(f_elt, x, y$0); - var param = l$0; - for(;;){ - if(! param) return 0; - var l = param[2], y = param[1]; - caml_call1(f_sep, x); - caml_call2(f_elt, x, y); - var param = l; - } - } - function f_sep(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} - function write_variant(ob, s, o){ - caml_call2(Stdlib_Buffer[12], ob, 60); - write_string(ob, s); - if(o){ - var x = o[1]; - caml_call2(Stdlib_Buffer[12], ob, 58); - write_json(ob, x); - } - return caml_call2(Stdlib_Buffer[12], ob, 62); - } - function write_tuple(ob, l){ - caml_call2(Stdlib_Buffer[12], ob, 40); - iter2(write_json, f_sep, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 41); - } - function write_list(ob, l){ - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2(write_json, f_sep, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - function write_assoc(ob, l){ - function f_elt(ob, param){ - var x = param[2], s = param[1]; - write_string(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 58); - return write_json(ob, x); - } - caml_call2(Stdlib_Buffer[12], ob, 123); - iter2(f_elt, f_sep, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 125); - } - function write_json(ob, x){ - if(typeof x === "number") return write_null(ob, 0); - var _pt_ = x[1]; - if(708012133 <= _pt_){ - if(737456202 > _pt_){ - if(726928360 <= _pt_){var l$1 = x[2]; return write_tuple(ob, l$1);} - var match = x[2], o = match[2], s$0 = match[1]; - return write_variant(ob, s$0, o); - } - if(928231259 <= _pt_){ - if(963043957 <= _pt_){var l = x[2]; return write_assoc(ob, l);} - var s = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s); - } - if(848054398 <= _pt_){var l$0 = x[2]; return write_list(ob, l$0);} - var b = x[2]; - return write_bool(ob, b); - } - if(-752863768 === _pt_){ - var s$1 = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s$1); - } - if(3654863 <= _pt_){ - if(365180284 <= _pt_){var f = x[2]; return write_float(ob, f);} - var i = x[2]; - return write_int(ob, i); - } - if(-375152890 <= _pt_){ - var s$2 = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s$2); - } - var s$3 = x[2]; - return write_string(ob, s$3); - } - function write_std_variant(ob, s, o){ - if(! o) return write_string(ob, s); - var x = o[1]; - caml_call2(Stdlib_Buffer[12], ob, 91); - write_string(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 44); - write_std_json(ob, x); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - function write_std_tuple(ob, l){ - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2(write_std_json, f_sep, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - function write_std_json(ob, x){ - if(typeof x === "number") return write_null(ob, 0); - var _ps_ = x[1]; - if(708012133 <= _ps_){ - if(737456202 > _ps_){ - if(726928360 <= _ps_){var l$1 = x[2]; return write_std_tuple(ob, l$1);} - var match = x[2], o = match[2], s$0 = match[1]; - return write_std_variant(ob, s$0, o); - } - if(928231259 <= _ps_){ - if(963043957 <= _ps_){ - var - l = x[2], - f_elt = - function(ob, param){ - var x = param[2], s = param[1]; - write_string(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 58); - return write_std_json(ob, x); - }; - caml_call2(Stdlib_Buffer[12], ob, 123); - iter2(f_elt, f_sep, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 125); - } - var s = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s); - } - if(848054398 <= _ps_){ - var l$0 = x[2]; - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2(write_std_json, f_sep, ob, l$0); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - var b = x[2]; - return write_bool(ob, b); - } - if(-752863768 === _ps_){ - var s$1 = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s$1); - } - if(3654863 <= _ps_){ - if(365180284 <= _ps_){var f = x[2]; return write_std_float(ob, f);} - var i = x[2]; - return write_int(ob, i); - } - if(-375152890 <= _ps_){ - var s$2 = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s$2); - } - var s$3 = x[2]; - return write_string(ob, s$3); - } - function to_buffer(opt, _pr_, ob, x){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$1; - if(_pr_) var sth$0 = _pr_[1], std = sth$0; else var std = 0; - if(std) write_std_json(ob, x); else write_json(ob, x); - return caml_call2(Stdlib_Buffer[16], ob, suf); - } - function to_string(buf, opt, _pq_, std, x){ - if(opt) var sth = opt[1], len = sth; else var len = 256; - if(_pq_) var sth$0 = _pq_[1], suf = sth$0; else var suf = cst$2; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer([0, suf], std, ob$0, x); - var s = caml_call1(Stdlib_Buffer[2], ob$0); - caml_call1(Stdlib_Buffer[8], ob$0); - return s; - } - function to_channel(buf, opt, _pp_, std, oc, x){ - if(opt) var sth = opt[1], len = sth; else var len = 4096; - if(_pp_) var sth$0 = _pp_[1], suf = sth$0; else var suf = cst$3; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer([0, suf], std, ob$0, x); - caml_call2(Stdlib_Buffer[10], oc, ob$0); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - function to_output(buf, opt, _pn_, std, out, x){ - if(opt) var sth = opt[1], len = sth; else var len = 4096; - if(_pn_) var sth$0 = _pn_[1], suf = sth$0; else var suf = cst$4; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer([0, suf], std, ob$0, x); - var _po_ = caml_call1(Stdlib_Buffer[7], ob$0); - caml_call4 - (caml_get_public_method(out, 209784577, 1), - out, - caml_call1(Stdlib_Buffer[2], ob$0), - 0, - _po_); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - function to_file(len, std, opt, file, x){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$5; - var oc = caml_call1(Stdlib[60], file); - try{ - to_channel(0, len, [0, suf], std, oc, x); - var _pm_ = caml_call1(Stdlib[76], oc); - return _pm_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[77], oc); - throw caml_maybe_attach_backtrace(e, 0); - } - } - function seq_to_buffer(opt, std, ob, st){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$6; - var _pj_ = [0, suf]; - function _pk_(_pl_){return to_buffer(_pj_, std, ob, _pl_);} - return caml_call2(Stdlib_Seq[4], _pk_, st); - } - function seq_to_string(buf, opt, _pi_, std, st){ - if(opt) var sth = opt[1], len = sth; else var len = 256; - if(_pi_) var sth$0 = _pi_[1], suf = sth$0; else var suf = cst$7; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - seq_to_buffer([0, suf], std, ob$0, st); - var s = caml_call1(Stdlib_Buffer[2], ob$0); - caml_call1(Stdlib_Buffer[8], ob$0); - return s; - } - function seq_to_channel(buf, opt, _pg_, std, oc, seq){ - if(opt) var sth = opt[1], len = sth; else var len = 2096; - if(_pg_) var sth$0 = _pg_[1], suf = sth$0; else var suf = cst$8; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - function _ph_(json){ - to_buffer([0, suf], std, ob$0, json); - caml_call2(Stdlib_Buffer[10], oc, ob$0); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - return caml_call2(Stdlib_Seq[4], _ph_, seq); - } - function seq_to_file(len, opt, std, file, st){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$9; - var oc = caml_call1(Stdlib[60], file); - try{ - seq_to_channel(0, len, [0, suf], std, oc, st); - var _pf_ = caml_call1(Stdlib[76], oc); - return _pf_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[77], oc); - throw caml_maybe_attach_backtrace(e, 0); - } - } - function sort(x){ - if(typeof x !== "number"){ - var _o9_ = x[1]; - if(726928361 <= _o9_){ - if(848054398 === _o9_){ - var l = x[2], _o__ = caml_call2(Stdlib_List[21], sort, l); - return [0, 848054398, caml_call1(Stdlib_List[9], _o__)]; - } - if(963043957 === _o9_){ - var - l$0 = x[2], - _o$_ = - function(param){ - var v = param[2], k = param[1]; - return [0, k, sort(v)]; - }, - _pa_ = caml_call2(Stdlib_List[21], _o$_, l$0), - l$1 = caml_call1(Stdlib_List[9], _pa_), - _pb_ = - function(param, _pe_){ - var b = _pe_[1], a = param[1]; - return caml_call2(Stdlib_String[9], a, b); - }; - return [0, 963043957, caml_call2(Stdlib_List[57], _pb_, l$1)]; - } - } - else if(708012133 === _o9_){ - var _pc_ = x[2], match = _pc_[2]; - if(match){ - var v = match[1], k = _pc_[1], v$0 = sort(v); - return v === v$0 ? x : [0, 708012133, [0, k, [0, v$0]]]; - } - } - else if(726928360 <= _o9_){ - var l$2 = x[2], _pd_ = caml_call2(Stdlib_List[21], sort, l$2); - return [0, 726928360, caml_call1(Stdlib_List[9], _pd_)]; - } - } - return x; - } - function pp(fmt, param){ - if(typeof param === "number") - return caml_call2(Stdlib_Format[13], fmt, cst_Null); - var _o2_ = param[1]; - if(708012133 <= _o2_){ - if(737456202 > _o2_){ - if(726928360 <= _o2_){ - var tup = param[2]; - caml_call2(Stdlib_Format[129], fmt, _T_); - caml_call2(Stdlib_Format[129], fmt, _U_); - var - _o7_ = 0, - _o8_ = - function(sep, e){ - if(sep) caml_call2(Stdlib_Format[129], fmt, _V_); - pp(fmt, e); - return 1; - }; - caml_call3(Stdlib_List[25], _o8_, _o7_, tup); - caml_call2(Stdlib_Format[129], fmt, _W_); - return caml_call2(Stdlib_Format[129], fmt, _X_); - } - var match = param[2], value = match[2], name = match[1]; - caml_call2(Stdlib_Format[129], fmt, _Y_); - caml_call2(Stdlib_Format[129], fmt, _Z_); - caml_call3(Stdlib_Format[129], fmt, ___, name); - caml_call2(Stdlib_Format[129], fmt, _$_); - if(value){ - var x$1 = value[1]; - caml_call2(Stdlib_Format[13], fmt, cst_Some); - pp(fmt, x$1); - caml_call2(Stdlib_Format[13], fmt, cst$10); - } - else - caml_call2(Stdlib_Format[13], fmt, cst_None); - caml_call2(Stdlib_Format[129], fmt, _aa_); - return caml_call2(Stdlib_Format[129], fmt, _ab_); - } - if(928231259 <= _o2_){ - if(963043957 <= _o2_){ - var xs = param[2]; - caml_call2(Stdlib_Format[129], fmt, _z_); - caml_call2(Stdlib_Format[129], fmt, _A_); - var - _o3_ = 0, - _o4_ = - function(sep, param){ - var value = param[2], key = param[1]; - if(sep) caml_call2(Stdlib_Format[129], fmt, _B_); - caml_call2(Stdlib_Format[129], fmt, _C_); - caml_call3(Stdlib_Format[129], fmt, _D_, key); - caml_call2(Stdlib_Format[129], fmt, _E_); - pp(fmt, value); - caml_call2(Stdlib_Format[129], fmt, _F_); - return 1; - }; - caml_call3(Stdlib_List[25], _o4_, _o3_, xs); - caml_call2(Stdlib_Format[129], fmt, _G_); - return caml_call2(Stdlib_Format[129], fmt, _H_); - } - var x = param[2]; - caml_call2(Stdlib_Format[129], fmt, _I_); - caml_call3(Stdlib_Format[129], fmt, _J_, x); - return caml_call2(Stdlib_Format[129], fmt, _K_); - } - if(848054398 <= _o2_){ - var xs$0 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _L_); - caml_call2(Stdlib_Format[129], fmt, _M_); - var - _o5_ = 0, - _o6_ = - function(sep, x){ - if(sep) caml_call2(Stdlib_Format[129], fmt, _N_); - pp(fmt, x); - return 1; - }; - caml_call3(Stdlib_List[25], _o6_, _o5_, xs$0); - caml_call2(Stdlib_Format[129], fmt, _O_); - return caml_call2(Stdlib_Format[129], fmt, _P_); - } - var x$0 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _Q_); - caml_call3(Stdlib_Format[129], fmt, _R_, x$0); - return caml_call2(Stdlib_Format[129], fmt, _S_); - } - if(-752863768 === _o2_){ - var x$2 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _ac_); - caml_call3(Stdlib_Format[129], fmt, _ad_, x$2); - return caml_call2(Stdlib_Format[129], fmt, _ae_); - } - if(3654863 <= _o2_){ - if(365180284 <= _o2_){ - var x$3 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _af_); - caml_call3(Stdlib_Format[129], fmt, _ag_, x$3); - return caml_call2(Stdlib_Format[129], fmt, _ah_); - } - var x$4 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _ai_); - caml_call3(Stdlib_Format[129], fmt, _aj_, x$4); - return caml_call2(Stdlib_Format[129], fmt, _ak_); - } - if(-375152890 <= _o2_){ - var x$5 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _al_); - caml_call3(Stdlib_Format[129], fmt, _am_, x$5); - return caml_call2(Stdlib_Format[129], fmt, _an_); - } - var x$6 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _ao_); - caml_call3(Stdlib_Format[129], fmt, _ap_, x$6); - return caml_call2(Stdlib_Format[129], fmt, _aq_); - } - function show(x){return caml_call3(Stdlib_Format[133], _ar_, pp, x);} - function equal(a, b){ - var a$0 = a, b$0 = b; - for(;;){ - if(typeof a$0 === "number"){ - if(870828711 === a$0 && 870828711 === b$0) return 1; - } - else{ - var _oT_ = a$0[1]; - if(708012133 <= _oT_){ - var switch$0 = 0; - if(848054398 <= _oT_){ - if(928231259 === _oT_){ - if(typeof b$0 !== "number" && 928231259 === b$0[1]){ - var b$1 = b$0[2], a$1 = a$0[2]; - return caml_equal(a$1, b$1); - } - } - else - if(963043957 === _oT_){ - if(typeof b$0 !== "number" && 963043957 === b$0[1]){ - var - ys = b$0[2], - xs = a$0[2], - compare_keys = - function(param, _o1_){ - var key = _o1_[1], key$0 = param[1]; - return caml_call2(Stdlib_String[9], key$0, key); - }, - xs$0 = caml_call2(Stdlib_List[57], compare_keys, xs), - ys$0 = caml_call2(Stdlib_List[57], compare_keys, ys); - try{ - var - _oV_ = - function(param, _o0_){ - var - value = _o0_[2], - key = _o0_[1], - value$0 = param[2], - key$0 = param[1]; - return caml_string_equal(key$0, key) - ? equal(value$0, value) - : 0; - }, - result = caml_call3(Stdlib_List[34], _oV_, xs$0, ys$0); - return result; - } - catch(_oZ_){ - var _oU_ = caml_wrap_exception(_oZ_); - if(_oU_[1] === Stdlib[6]) return 0; - throw caml_maybe_attach_backtrace(_oU_, 0); - } - } - } - else if - (848054399 > _oT_ && typeof b$0 !== "number" && 848054398 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} - } - else - if(726928360 === _oT_){ - if(typeof b$0 !== "number" && 726928360 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} - } - else - if(737456202 === _oT_){ - if(typeof b$0 !== "number" && 737456202 === b$0[1]){ - var b$2 = b$0[2], a$2 = a$0[2]; - return caml_equal(a$2, b$2); - } - } - else if - (708012134 > _oT_ && typeof b$0 !== "number" && 708012133 === b$0[1]){ - var - _oX_ = b$0[2], - value = _oX_[2], - name = _oX_[1], - match = a$0[2], - value$0 = match[2], - name$0 = match[1]; - if(! caml_equal(name$0, name)) return 0; - if(value$0){ - if(value){ - var y = value[1], x = value$0[1], a$0 = x, b$0 = y; - continue; - } - } - else if(! value) return 1; - return 0; - } - if(switch$0) - try{ - var result$0 = caml_call3(Stdlib_List[34], equal, xs$1, ys$1); - return result$0; - } - catch(_oY_){ - var _oW_ = caml_wrap_exception(_oY_); - if(_oW_[1] === Stdlib[6]) return 0; - throw caml_maybe_attach_backtrace(_oW_, 0); - } - } - else - if(-375152890 <= _oT_){ - if(3654863 === _oT_){ - if(typeof b$0 !== "number" && 3654863 === b$0[1]){ - var b$3 = b$0[2], a$3 = a$0[2]; - return caml_equal(a$3, b$3); - } - } - else - if(365180284 === _oT_){ - if(typeof b$0 !== "number" && 365180284 === b$0[1]){ - var b$4 = b$0[2], a$4 = a$0[2]; - return caml_equal(a$4, b$4); - } - } - else if - (-375152889 > _oT_ - && typeof b$0 !== "number" && -375152890 === b$0[1]){ - var b$5 = b$0[2], a$5 = a$0[2]; - return caml_equal(a$5, b$5); - } - } - else - if(-976970511 === _oT_){ - if(typeof b$0 !== "number" && -976970511 === b$0[1]){ - var b$6 = b$0[2], a$6 = a$0[2]; - return caml_equal(a$6, b$6); - } - } - else if - (-752863768 === _oT_ - && typeof b$0 !== "number" && -752863768 === b$0[1]){ - var b$7 = b$0[2], a$7 = a$0[2]; - return caml_equal(a$7, b$7); - } - } - return 0; - } - } - function pp_list(sep, ppx, out, l){ - function pp_sep(out, param){ - return caml_call3(Stdlib_Format[129], out, _as_, sep); - } - return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); - } - function is_atom(x){ - if(typeof x !== "number"){ - var _oS_ = x[1], switch$0 = 0; - if(737456202 <= _oS_){ - if(848054398 === _oS_){ - if(x[2]) switch$0 = 1; - } - else if(963043957 <= _oS_ && x[2]) switch$0 = 1; - } - else - if(708012133 === _oS_){ - if(x[2][2]) switch$0 = 1; - } - else if(726928360 <= _oS_ && x[2]) switch$0 = 1; - if(switch$0) return 0; - } - return 1; - } - function format(inside_box, std, out, x){ - var x$0 = x; - for(;;){ - if(typeof x$0 === "number") - return caml_call2(Stdlib_Format[13], out, cst_null$0); - var _od_ = x$0[1]; - if(708012133 > _od_){ - if(-752863768 === _od_){ - var s$1 = x$0[2]; - return caml_call2(Stdlib_Format[13], out, s$1); - } - if(3654863 <= _od_){ - if(365180284 > _od_){ - var x$6 = x$0[2], _oc_ = caml_call1(Stdlib[33], x$6); - return caml_call2(Stdlib_Format[13], out, _oc_); - } - var x$5 = x$0[2]; - if(std){ - var ob$0 = caml_call1(Stdlib_Buffer[1], 20); - write_std_float(ob$0, x$5); - var s$2 = caml_call1(Stdlib_Buffer[2], ob$0); - } - else{ - var ob = caml_call1(Stdlib_Buffer[1], 20); - write_float(ob, x$5); - var s$2 = caml_call1(Stdlib_Buffer[2], ob); - } - return caml_call2(Stdlib_Format[13], out, s$2); - } - if(-375152890 <= _od_){ - var s$3 = x$0[2]; - return caml_call2(Stdlib_Format[13], out, s$3); - } - var s$4 = x$0[2], _ow_ = json_string_of_string(s$4); - return caml_call2(Stdlib_Format[13], out, _ow_); - } - if(737456202 <= _od_){ - if(928231259 <= _od_){ - if(963043957 > _od_){ - var s = x$0[2]; - return caml_call2(Stdlib_Format[13], out, s); - } - var l = x$0[2]; - if(! l) return caml_call2(Stdlib_Format[13], out, cst$12); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _at_); - var - _oe_ = - function(out, param){ - var x = param[2], name = param[1], _oN_ = 1; - function _oO_(_oQ_, _oR_){return format(_oN_, std, _oQ_, _oR_);} - var _oP_ = json_string_of_string(name); - return caml_call5(Stdlib_Format[129], out, _aF_, _oP_, _oO_, x); - }, - _of_ = function(_oL_, _oM_){return pp_list(cst$11, _oe_, _oL_, _oM_);}; - caml_call4(Stdlib_Format[129], out, _au_, _of_, l); - var _og_ = 1 - inside_box; - return _og_ ? caml_call2(Stdlib_Format[129], out, _av_) : _og_; - } - if(848054398 > _od_){ - var x$1 = x$0[2]; - return caml_call2(Stdlib_Format[25], out, x$1); - } - var l$0 = x$0[2]; - if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$15); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _aw_); - if(caml_call2(Stdlib_List[32], is_atom, l$0)){ - var - _oh_ = 0, - _oi_ = function(_oF_, _oG_){return format(_oh_, std, _oF_, _oG_);}, - _oj_ = function(_oD_, _oE_){return pp_list(cst$13, _oi_, _oD_, _oE_);}; - caml_call4(Stdlib_Format[129], out, _ax_, _oj_, l$0); - } - else{ - var - _ol_ = 0, - _om_ = function(_oJ_, _oK_){return format(_ol_, std, _oJ_, _oK_);}, - _on_ = function(_oH_, _oI_){return pp_list(cst$14, _om_, _oH_, _oI_);}; - caml_call4(Stdlib_Format[129], out, _az_, _on_, l$0); - } - var _ok_ = 1 - inside_box; - return _ok_ ? caml_call2(Stdlib_Format[129], out, _ay_) : _ok_; - } - if(726928360 <= _od_){ - var l$1 = x$0[2]; - if(std){var x$2 = [0, 848054398, l$1], x$0 = x$2; continue;} - if(0 === l$1) return caml_call2(Stdlib_Format[13], out, cst$16); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _aA_); - var - _oo_ = 0, - _op_ = function(_oB_, _oC_){return format(_oo_, std, _oB_, _oC_);}, - _oq_ = function(_oz_, _oA_){return pp_list(cst$17, _op_, _oz_, _oA_);}; - caml_call4(Stdlib_Format[129], out, _aB_, _oq_, l$1); - var _or_ = 1 - inside_box; - return _or_ ? caml_call2(Stdlib_Format[129], out, _aC_) : _or_; - } - var _os_ = x$0[2], match = _os_[2], s$0 = _os_[1]; - if(match){ - var x$3 = match[1]; - if(std){ - var - representation = [0, -976970511, s$0], - x$4 = [0, 848054398, [0, representation, [0, x$3, 0]]], - x$0 = x$4; - continue; - } - var - op = json_string_of_string(s$0), - _ot_ = 1, - _ou_ = function(_ox_, _oy_){return format(_ot_, std, _ox_, _oy_);}; - return caml_call5(Stdlib_Format[129], out, _aD_, op, _ou_, x$3); - } - if(std){ - var representation$0 = [0, -976970511, s$0], x$0 = representation$0; - continue; - } - var _ov_ = json_string_of_string(s$0); - return caml_call3(Stdlib_Format[129], out, _aE_, _ov_); - } - } - function pp$0(opt, out, x){ - if(opt) var sth = opt[1], std = sth; else var std = 0; - var _n__ = 1; - function _n$_(_oa_, _ob_){return format(_n__, std, _oa_, _ob_);} - return caml_call4(Stdlib_Format[129], out, _aG_, _n$_, x); - } - function pretty_print(std, out, x){return pp$0(std, out, x);} - function pretty_to_string(std, x){ - function _n7_(_n8_, _n9_){return pp$0(std, _n8_, _n9_);} - return caml_call3(Stdlib_Format[133], _aH_, _n7_, x); - } - function pretty_to_channel(std, oc, x){ - var fmt = caml_call1(Stdlib_Format[108], oc); - function _n4_(_n5_, _n6_){return pp$0(std, _n5_, _n6_);} - return caml_call4(Stdlib_Format[129], fmt, _aI_, _n4_, x); - } - function hex$0(n){ - var _n3_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; - return caml_call1(Stdlib_Char[1], _n3_); - } - function write_special$0(src, start, stop, ob, str){ - caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16], ob, str); - start[1] = stop + 1 | 0; - return 0; - } - function write_string$0(ob, src){ - caml_call2(Stdlib_Buffer[12], ob, 34); - var start = [0, 0], _n1_ = caml_ml_string_length(src) - 1 | 0, _n0_ = 0; - if(_n1_ >= 0){ - var stop = _n0_; - for(;;){ - var c = caml_string_get(src, stop); - if(92 === c) - write_special$0(src, start, stop, ob, cst$18); - else{ - var switch$0 = 0; - if(35 <= c){ - if(127 !== c) switch$0 = 2; - } - else if(8 <= c){ - var switch$1 = 0; - switch(c - 8 | 0){ - case 0: - write_special$0(src, start, stop, ob, cst_b$0); break; - case 1: - write_special$0(src, start, stop, ob, cst_t$0); break; - case 2: - write_special$0(src, start, stop, ob, cst_n$0); break; - case 4: - write_special$0(src, start, stop, ob, cst_f$0); break; - case 5: - write_special$0(src, start, stop, ob, cst_r$0); break; - case 26: - write_special$0(src, start, stop, ob, cst$19); break; - case 24: - case 25: - switch$0 = 2; switch$1 = 1; break; - default: switch$1 = 1; - } - if(! switch$1) switch$0 = 1; - } - switch(switch$0){ - case 2: break; - case 0: - caml_call4 - (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16], ob, cst_u00$0); - var _nY_ = hex$0(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12], ob, _nY_); - var _nZ_ = hex$0(c & 15); - caml_call2(Stdlib_Buffer[12], ob, _nZ_); - start[1] = stop + 1 | 0; - break; - } - } - var _n2_ = stop + 1 | 0; - if(_n1_ !== stop){var stop = _n2_; continue;} - break; - } - } - try{ - caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - } - catch(exc$0){ - var exc = caml_wrap_exception(exc$0); - caml_call4 - (Stdlib_Printf[3], - _aJ_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw caml_maybe_attach_backtrace(exc, 0); - } - return caml_call2(Stdlib_Buffer[12], ob, 34); - } - function json_string_of_string$0(s){ - var ob = caml_call1(Stdlib_Buffer[1], 10); - write_string$0(ob, s); - return caml_call1(Stdlib_Buffer[2], ob); - } - function write_null$0(ob, param){ - return caml_call2(Stdlib_Buffer[16], ob, cst_null$1); - } - function write_bool$0(ob, x){ - var _nX_ = x ? cst_true$0 : cst_false$0; - return caml_call2(Stdlib_Buffer[16], ob, _nX_); - } - var - _aK_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), - _aL_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); - caml_call2(Stdlib[17], _aL_, _aK_); - function write_digits$0(s, x){ - if(0 === x) return 0; - var d = x % 10 | 0; - write_digits$0(s, x / 10 | 0); - var - n = caml_call1(Stdlib[18], d), - _nW_ = caml_call1(Stdlib_Char[1], n + 48 | 0); - return caml_call2(Stdlib_Buffer[12], s, _nW_); - } - function write_int$0(ob, x){ - return 0 < x - ? write_digits$0(ob, x) - : 0 - <= x - ? caml_call2(Stdlib_Buffer[12], ob, 48) - : (caml_call2(Stdlib_Buffer[12], ob, 45), write_digits$0(ob, x)); - } - function float_needs_period$0(s){ - try{ - var _nS_ = caml_ml_string_length(s) - 1 | 0, _nR_ = 0; - if(_nS_ >= 0){ - var i = _nR_; - for(;;){ - var match = caml_string_get(s, i), switch$0 = 0; - if(48 <= match){ - if(58 > match) switch$0 = 1; - } - else if(45 === match) switch$0 = 1; - if(! switch$0) throw caml_maybe_attach_backtrace(Stdlib[3], 1); - var _nU_ = i + 1 | 0; - if(_nS_ !== i){var i = _nU_; continue;} - break; - } - } - var _nT_ = 1; - return _nT_; - } - catch(_nV_){ - var _nQ_ = caml_wrap_exception(_nV_); - if(_nQ_ === Stdlib[3]) return 0; - throw caml_maybe_attach_backtrace(_nQ_, 0); - } - } - function write_float$0(ob, x){ - var match = caml_classify_float(x); - if(3 === match){ - var _nO_ = 0. < x ? cst_Infinity$3 : cst_Infinity$4; - return caml_call2(Stdlib_Buffer[16], ob, _nO_); - } - if(4 <= match) return caml_call2(Stdlib_Buffer[16], ob, cst_NaN$1); - var - s1 = caml_call2(Stdlib_Printf[4], _aM_, x), - s = - caml_float_of_string(s1) == x - ? s1 - : caml_call2(Stdlib_Printf[4], _aN_, x); - caml_call2(Stdlib_Buffer[16], ob, s); - var _nP_ = float_needs_period$0(s); - return _nP_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$2) : _nP_; - } - function write_normal_float_prec$0(significant_figures, ob, x){ - var switcher = significant_figures - 1 | 0; - if(15 < switcher >>> 0) - var s = caml_call2(Stdlib_Printf[4], _aO_, x); - else - switch(switcher){ - case 0: - var s = caml_call2(Stdlib_Printf[4], _aP_, x); break; - case 1: - var s = caml_call2(Stdlib_Printf[4], _aQ_, x); break; - case 2: - var s = caml_call2(Stdlib_Printf[4], _aR_, x); break; - case 3: - var s = caml_call2(Stdlib_Printf[4], _aS_, x); break; - case 4: - var s = caml_call2(Stdlib_Printf[4], _aT_, x); break; - case 5: - var s = caml_call2(Stdlib_Printf[4], _aU_, x); break; - case 6: - var s = caml_call2(Stdlib_Printf[4], _aV_, x); break; - case 7: - var s = caml_call2(Stdlib_Printf[4], _aW_, x); break; - case 8: - var s = caml_call2(Stdlib_Printf[4], _aX_, x); break; - case 9: - var s = caml_call2(Stdlib_Printf[4], _aY_, x); break; - case 10: - var s = caml_call2(Stdlib_Printf[4], _aZ_, x); break; - case 11: - var s = caml_call2(Stdlib_Printf[4], _a0_, x); break; - case 12: - var s = caml_call2(Stdlib_Printf[4], _a1_, x); break; - case 13: - var s = caml_call2(Stdlib_Printf[4], _a2_, x); break; - case 14: - var s = caml_call2(Stdlib_Printf[4], _a3_, x); break; - default: var s = caml_call2(Stdlib_Printf[4], _a4_, x); - } - caml_call2(Stdlib_Buffer[16], ob, s); - var _nN_ = float_needs_period$0(s); - return _nN_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$3) : _nN_; - } - function write_float_prec$0(significant_figures, ob, x){ - var match = caml_classify_float(x); - if(3 !== match) - return 4 <= match - ? caml_call2(Stdlib_Buffer[16], ob, cst_NaN$2) - : write_normal_float_prec$0(significant_figures, ob, x); - var _nM_ = 0. < x ? cst_Infinity$5 : cst_Infinity$6; - return caml_call2(Stdlib_Buffer[16], ob, _nM_); - } - function write_std_float$0(ob, x){ - var match = caml_classify_float(x); - if(3 === match){ - var - _nK_ = - 0. < x - ? cst_Infinity_value_not_allowed$3 - : cst_Infinity_value_not_allowed$4; - return json_error(_nK_); - } - if(4 <= match) return json_error(cst_NaN_value_not_allowed_in_s$1); - var - s1 = caml_call2(Stdlib_Printf[4], _a5_, x), - s = - caml_float_of_string(s1) == x - ? s1 - : caml_call2(Stdlib_Printf[4], _a6_, x); - caml_call2(Stdlib_Buffer[16], ob, s); - var _nL_ = float_needs_period$0(s); - return _nL_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$4) : _nL_; - } - function write_std_float_prec$0(significant_figures, ob, x){ - var match = caml_classify_float(x); - if(3 !== match) - return 4 <= match - ? json_error(cst_NaN_value_not_allowed_in_s$2) - : write_normal_float_prec$0(significant_figures, ob, x); - var - _nJ_ = - 0. < x - ? cst_Infinity_value_not_allowed$5 - : cst_Infinity_value_not_allowed$6; - return json_error(_nJ_); - } - function iter2$0(f_elt, f_sep, x, param$0){ - if(! param$0) return 0; - var l$0 = param$0[2], y$0 = param$0[1]; - caml_call2(f_elt, x, y$0); - var param = l$0; - for(;;){ - if(! param) return 0; - var l = param[2], y = param[1]; - caml_call1(f_sep, x); - caml_call2(f_elt, x, y); - var param = l; - } - } - function f_sep$0(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} - function write_list$0(ob, l){ - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2$0(write_json$0, f_sep$0, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - function write_assoc$0(ob, l){ - function f_elt(ob, param){ - var x = param[2], s = param[1]; - write_string$0(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 58); - return write_json$0(ob, x); - } - caml_call2(Stdlib_Buffer[12], ob, 123); - iter2$0(f_elt, f_sep$0, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 125); - } - function write_json$0(ob, x){ - if(typeof x === "number") return write_null$0(ob, 0); - var _nI_ = x[1]; - if(365180284 > _nI_){ - if(3654863 <= _nI_){var i = x[2]; return write_int$0(ob, i);} - var s = x[2]; - return write_string$0(ob, s); - } - if(848054398 <= _nI_){ - if(963043957 <= _nI_){var l = x[2]; return write_assoc$0(ob, l);} - var l$0 = x[2]; - return write_list$0(ob, l$0); - } - if(737456202 <= _nI_){var b = x[2]; return write_bool$0(ob, b);} - var f = x[2]; - return write_float$0(ob, f); - } - function write_std_json$0(ob, x){ - if(typeof x === "number") return write_null$0(ob, 0); - var _nH_ = x[1]; - if(365180284 > _nH_){ - if(3654863 <= _nH_){var i = x[2]; return write_int$0(ob, i);} - var s = x[2]; - return write_string$0(ob, s); - } - if(848054398 <= _nH_){ - if(963043957 <= _nH_){ - var - l = x[2], - f_elt = - function(ob, param){ - var x = param[2], s = param[1]; - write_string$0(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 58); - return write_std_json$0(ob, x); - }; - caml_call2(Stdlib_Buffer[12], ob, 123); - iter2$0(f_elt, f_sep$0, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 125); - } - var l$0 = x[2]; - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2$0(write_std_json$0, f_sep$0, ob, l$0); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - if(737456202 <= _nH_){var b = x[2]; return write_bool$0(ob, b);} - var f = x[2]; - return write_std_float$0(ob, f); - } - function to_buffer$0(opt, _nG_, ob, x){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$20; - if(_nG_) var sth$0 = _nG_[1], std = sth$0; else var std = 0; - if(std) write_std_json$0(ob, x); else write_json$0(ob, x); - return caml_call2(Stdlib_Buffer[16], ob, suf); - } - function to_string$0(buf, opt, _nF_, std, x){ - if(opt) var sth = opt[1], len = sth; else var len = 256; - if(_nF_) var sth$0 = _nF_[1], suf = sth$0; else var suf = cst$21; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer$0([0, suf], std, ob$0, x); - var s = caml_call1(Stdlib_Buffer[2], ob$0); - caml_call1(Stdlib_Buffer[8], ob$0); - return s; - } - function to_channel$0(buf, opt, _nE_, std, oc, x){ - if(opt) var sth = opt[1], len = sth; else var len = 4096; - if(_nE_) var sth$0 = _nE_[1], suf = sth$0; else var suf = cst$22; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer$0([0, suf], std, ob$0, x); - caml_call2(Stdlib_Buffer[10], oc, ob$0); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - function to_output$0(buf, opt, _nC_, std, out, x){ - if(opt) var sth = opt[1], len = sth; else var len = 4096; - if(_nC_) var sth$0 = _nC_[1], suf = sth$0; else var suf = cst$23; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer$0([0, suf], std, ob$0, x); - var _nD_ = caml_call1(Stdlib_Buffer[7], ob$0); - caml_call4 - (caml_get_public_method(out, 209784577, 2), - out, - caml_call1(Stdlib_Buffer[2], ob$0), - 0, - _nD_); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - function to_file$0(len, std, opt, file, x){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$24; - var oc = caml_call1(Stdlib[60], file); - try{ - to_channel$0(0, len, [0, suf], std, oc, x); - var _nB_ = caml_call1(Stdlib[76], oc); - return _nB_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[77], oc); - throw caml_maybe_attach_backtrace(e, 0); - } - } - function seq_to_buffer$0(opt, std, ob, st){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$25; - var _ny_ = [0, suf]; - function _nz_(_nA_){return to_buffer$0(_ny_, std, ob, _nA_);} - return caml_call2(Stdlib_Seq[4], _nz_, st); - } - function seq_to_string$0(buf, opt, _nx_, std, st){ - if(opt) var sth = opt[1], len = sth; else var len = 256; - if(_nx_) var sth$0 = _nx_[1], suf = sth$0; else var suf = cst$26; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - seq_to_buffer$0([0, suf], std, ob$0, st); - var s = caml_call1(Stdlib_Buffer[2], ob$0); - caml_call1(Stdlib_Buffer[8], ob$0); - return s; - } - function seq_to_channel$0(buf, opt, _nv_, std, oc, seq){ - if(opt) var sth = opt[1], len = sth; else var len = 2096; - if(_nv_) var sth$0 = _nv_[1], suf = sth$0; else var suf = cst$27; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - function _nw_(json){ - to_buffer$0([0, suf], std, ob$0, json); - caml_call2(Stdlib_Buffer[10], oc, ob$0); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - return caml_call2(Stdlib_Seq[4], _nw_, seq); - } - function seq_to_file$0(len, opt, std, file, st){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$28; - var oc = caml_call1(Stdlib[60], file); - try{ - seq_to_channel$0(0, len, [0, suf], std, oc, st); - var _nu_ = caml_call1(Stdlib[76], oc); - return _nu_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[77], oc); - throw caml_maybe_attach_backtrace(e, 0); - } - } - function sort$0(x){ - if(typeof x !== "number"){ - var _no_ = x[1]; - if(848054398 === _no_){ - var l = x[2], _np_ = caml_call2(Stdlib_List[21], sort$0, l); - return [0, 848054398, caml_call1(Stdlib_List[9], _np_)]; - } - if(963043957 === _no_){ - var - l$0 = x[2], - _nq_ = - function(param){ - var v = param[2], k = param[1]; - return [0, k, sort$0(v)]; - }, - _nr_ = caml_call2(Stdlib_List[21], _nq_, l$0), - l$1 = caml_call1(Stdlib_List[9], _nr_), - _ns_ = - function(param, _nt_){ - var b = _nt_[1], a = param[1]; - return caml_call2(Stdlib_String[9], a, b); - }; - return [0, 963043957, caml_call2(Stdlib_List[57], _ns_, l$1)]; - } - } - return x; - } - function pp_list$0(sep, ppx, out, l){ - function pp_sep(out, param){ - return caml_call3(Stdlib_Format[129], out, _a7_, sep); - } - return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); - } - function is_atom$0(x){ - if(typeof x !== "number"){ - var _nn_ = x[1], switch$0 = 0; - if(737456202 <= _nn_){ - if(848054398 === _nn_){ - if(x[2]) switch$0 = 1; - } - else if(963043957 <= _nn_ && x[2]) switch$0 = 1; - } - else - if(708012133 === _nn_){ - if(x[2][2]) switch$0 = 1; - } - else if(726928360 <= _nn_ && x[2]) switch$0 = 1; - if(switch$0) return 0; - } - return 1; - } - function format$0(inside_box, std, out, x){ - if(typeof x === "number") - return caml_call2(Stdlib_Format[13], out, cst_null$2); - var _mY_ = x[1]; - if(365180284 > _mY_){ - if(3654863 <= _mY_){ - var x$2 = x[2], _mX_ = caml_call1(Stdlib[33], x$2); - return caml_call2(Stdlib_Format[13], out, _mX_); - } - var s$0 = x[2], _m9_ = json_string_of_string$0(s$0); - return caml_call2(Stdlib_Format[13], out, _m9_); - } - if(848054398 > _mY_){ - if(737456202 <= _mY_){ - var x$0 = x[2]; - return caml_call2(Stdlib_Format[25], out, x$0); - } - var x$1 = x[2]; - if(std){ - var ob$0 = caml_call1(Stdlib_Buffer[1], 20); - write_std_float$0(ob$0, x$1); - var s = caml_call1(Stdlib_Buffer[2], ob$0); - } - else{ - var ob = caml_call1(Stdlib_Buffer[1], 20); - write_float$0(ob, x$1); - var s = caml_call1(Stdlib_Buffer[2], ob); - } - return caml_call2(Stdlib_Format[13], out, s); - } - if(963043957 <= _mY_){ - var l = x[2]; - if(! l) return caml_call2(Stdlib_Format[13], out, cst$30); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _a8_); - var - _mZ_ = - function(out, param){ - var x = param[2], name = param[1], _ni_ = 1; - function _nj_(_nl_, _nm_){return format$0(_ni_, std, _nl_, _nm_);} - var _nk_ = json_string_of_string$0(name); - return caml_call5(Stdlib_Format[129], out, _bd_, _nk_, _nj_, x); - }, - _m0_ = function(_ng_, _nh_){return pp_list$0(cst$29, _mZ_, _ng_, _nh_);}; - caml_call4(Stdlib_Format[129], out, _a9_, _m0_, l); - var _m1_ = 1 - inside_box; - return _m1_ ? caml_call2(Stdlib_Format[129], out, _a__) : _m1_; - } - var l$0 = x[2]; - if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$33); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _a$_); - if(caml_call2(Stdlib_List[32], is_atom$0, l$0)){ - var - _m2_ = 0, - _m3_ = function(_na_, _nb_){return format$0(_m2_, std, _na_, _nb_);}, - _m4_ = function(_m__, _m$_){return pp_list$0(cst$31, _m3_, _m__, _m$_);}; - caml_call4(Stdlib_Format[129], out, _ba_, _m4_, l$0); - } - else{ - var - _m6_ = 0, - _m7_ = function(_ne_, _nf_){return format$0(_m6_, std, _ne_, _nf_);}, - _m8_ = function(_nc_, _nd_){return pp_list$0(cst$32, _m7_, _nc_, _nd_);}; - caml_call4(Stdlib_Format[129], out, _bc_, _m8_, l$0); - } - var _m5_ = 1 - inside_box; - return _m5_ ? caml_call2(Stdlib_Format[129], out, _bb_) : _m5_; - } - function pp$1(opt, out, x){ - if(opt) var sth = opt[1], std = sth; else var std = 0; - var _mT_ = 1; - function _mU_(_mV_, _mW_){return format$0(_mT_, std, _mV_, _mW_);} - return caml_call4(Stdlib_Format[129], out, _be_, _mU_, x); - } - function pp$2(fmt, param){ - if(typeof param === "number") - return caml_call2(Stdlib_Format[13], fmt, cst_Null$0); - var _mO_ = param[1]; - if(365180284 > _mO_){ - if(3654863 <= _mO_){ - var x$1 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _bB_); - caml_call3(Stdlib_Format[129], fmt, _bC_, x$1); - return caml_call2(Stdlib_Format[129], fmt, _bD_); - } - var x$2 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _bE_); - caml_call3(Stdlib_Format[129], fmt, _bF_, x$2); - return caml_call2(Stdlib_Format[129], fmt, _bG_); - } - if(848054398 <= _mO_){ - if(963043957 <= _mO_){ - var xs = param[2]; - caml_call2(Stdlib_Format[129], fmt, _bh_); - caml_call2(Stdlib_Format[129], fmt, _bi_); - var - _mP_ = 0, - _mQ_ = - function(sep, param){ - var value = param[2], key = param[1]; - if(sep) caml_call2(Stdlib_Format[129], fmt, _bj_); - caml_call2(Stdlib_Format[129], fmt, _bk_); - caml_call3(Stdlib_Format[129], fmt, _bl_, key); - caml_call2(Stdlib_Format[129], fmt, _bm_); - pp$2(fmt, value); - caml_call2(Stdlib_Format[129], fmt, _bn_); - return 1; - }; - caml_call3(Stdlib_List[25], _mQ_, _mP_, xs); - caml_call2(Stdlib_Format[129], fmt, _bo_); - return caml_call2(Stdlib_Format[129], fmt, _bp_); - } - var xs$0 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _bq_); - caml_call2(Stdlib_Format[129], fmt, _br_); - var - _mR_ = 0, - _mS_ = - function(sep, x){ - if(sep) caml_call2(Stdlib_Format[129], fmt, _bs_); - pp$2(fmt, x); - return 1; - }; - caml_call3(Stdlib_List[25], _mS_, _mR_, xs$0); - caml_call2(Stdlib_Format[129], fmt, _bt_); - return caml_call2(Stdlib_Format[129], fmt, _bu_); - } - if(737456202 <= _mO_){ - var x = param[2]; - caml_call2(Stdlib_Format[129], fmt, _bv_); - caml_call3(Stdlib_Format[129], fmt, _bw_, x); - return caml_call2(Stdlib_Format[129], fmt, _bx_); - } - var x$0 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _by_); - caml_call3(Stdlib_Format[129], fmt, _bz_, x$0); - return caml_call2(Stdlib_Format[129], fmt, _bA_); - } - function show$0(x){return caml_call3(Stdlib_Format[133], _bH_, pp$2, x);} - function equal$0(a, b){ - if(typeof a === "number"){ - if(870828711 === a && 870828711 === b) return 1; - } - else{ - var _mG_ = a[1]; - if(365180285 <= _mG_){ - if(737456202 === _mG_){ - if(typeof b !== "number" && 737456202 === b[1]){ - var b$0 = b[2], a$0 = a[2]; - return caml_equal(a$0, b$0); - } - } - else - if(848054398 === _mG_){ - if(typeof b !== "number" && 848054398 === b[1]){ - var ys = b[2], xs = a[2]; - try{ - var result = caml_call3(Stdlib_List[34], equal$0, xs, ys); - return result; - } - catch(_mK_){ - var _mH_ = caml_wrap_exception(_mK_); - if(_mH_[1] === Stdlib[6]) return 0; - throw caml_maybe_attach_backtrace(_mH_, 0); - } - } - } - else if - (963043957 === _mG_ && typeof b !== "number" && 963043957 === b[1]){ - var - ys$0 = b[2], - xs$0 = a[2], - compare_keys = - function(param, _mN_){ - var key = _mN_[1], key$0 = param[1]; - return caml_call2(Stdlib_String[9], key$0, key); - }, - xs$1 = caml_call2(Stdlib_List[57], compare_keys, xs$0), - ys$1 = caml_call2(Stdlib_List[57], compare_keys, ys$0); - try{ - var - _mJ_ = - function(param, _mM_){ - var - value = _mM_[2], - key = _mM_[1], - value$0 = param[2], - key$0 = param[1]; - return caml_string_equal(key$0, key) - ? equal$0(value$0, value) - : 0; - }, - result$0 = caml_call3(Stdlib_List[34], _mJ_, xs$1, ys$1); - return result$0; - } - catch(_mL_){ - var _mI_ = caml_wrap_exception(_mL_); - if(_mI_[1] === Stdlib[6]) return 0; - throw caml_maybe_attach_backtrace(_mI_, 0); - } - } - } - else - if(-976970511 === _mG_){ - if(typeof b !== "number" && -976970511 === b[1]){ - var b$1 = b[2], a$1 = a[2]; - return caml_equal(a$1, b$1); - } - } - else - if(3654863 === _mG_){ - if(typeof b !== "number" && 3654863 === b[1]){ - var b$2 = b[2], a$2 = a[2]; - return caml_equal(a$2, b$2); - } - } - else if - (365180284 <= _mG_ && typeof b !== "number" && 365180284 === b[1]){var b$3 = b[2], a$3 = a[2]; return caml_equal(a$3, b$3);} - } - return 0; - } - function pretty_print$0(std, out, x){return pp$1(std, out, x);} - function pretty_to_string$0(std, x){ - function _mD_(_mE_, _mF_){return pp$1(std, _mE_, _mF_);} - return caml_call3(Stdlib_Format[133], _bf_, _mD_, x); - } - function pretty_to_channel$0(std, oc, x){ - var fmt = caml_call1(Stdlib_Format[108], oc); - function _mA_(_mB_, _mC_){return pp$1(std, _mB_, _mC_);} - return caml_call4(Stdlib_Format[129], fmt, _bg_, _mA_, x); - } - var - from_channel = Stdlib_Lexing[2], - from_string = Stdlib_Lexing[3], - lexeme = Stdlib_Lexing[8], - sub_lexeme = Stdlib_Lexing[16], - sub_lexeme_char = Stdlib_Lexing[18]; - function hex$1(c){ - if(65 <= c){ - if(97 <= c){ - if(103 > c) return (c - 97 | 0) + 10 | 0; - } - else if(71 > c) return (c - 65 | 0) + 10 | 0; - } - else if(9 >= c - 48 >>> 0) return c - 48 | 0; - throw caml_maybe_attach_backtrace([0, Assert_failure, _bI_], 1); - } - function custom_error(descr, v, lexbuf){ - var - offs = lexbuf[4] - 1 | 0, - bol = v[3], - pos1 = ((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, - pos2 = caml_call2(Stdlib[17], pos1, (offs + lexbuf[6] | 0) - bol | 0), - match = v[4]; - if(match) - var s = match[1], file_line = caml_call2(Stdlib_Printf[4], _bJ_, s); - else - var file_line = cst_Line; - var - bytes = - pos1 === pos2 - ? caml_call2(Stdlib_Printf[4], _bK_, pos1 + 1 | 0) - : caml_call3(Stdlib_Printf[4], _bM_, pos1 + 1 | 0, pos2 + 1 | 0), - msg = caml_call5(Stdlib_Printf[4], _bL_, file_line, v[2], bytes, descr); - return json_error(msg); - } - function lexer_error(descr, v, lexbuf){ - var _mz_ = caml_call1(lexeme, lexbuf); - return custom_error - (caml_call3(Stdlib_Printf[4], _bN_, descr, _mz_), v, lexbuf); - } - var - read_junk = - [0, - function(param){ - throw caml_maybe_attach_backtrace([0, Assert_failure, _bO_], 1); - }]; - function long_error(descr, v, lexbuf){ - var - junk = caml_call1(lexeme, lexbuf), - extra_junk = caml_call1(read_junk[1], lexbuf); - return custom_error - (caml_call4(Stdlib_Printf[4], _bP_, descr, junk, extra_junk), - v, - lexbuf); - } - var - _bQ_ = 0 === (Stdlib[20] % 10 | 0) ? 0 : 1, - min10 = (Stdlib[20] / 10 | 0) - _bQ_ | 0, - _bR_ = 0 === (Stdlib[19] % 10 | 0) ? 0 : 1, - max10 = (Stdlib[19] / 10 | 0) + _bR_ | 0, - Int_overflow = [248, cst_Yojson_Basic_Int_overflow, caml_fresh_oo_id(0)]; - function extract_positive_int(lexbuf){ - var - start = lexbuf[5], - stop = lexbuf[6], - s = lexbuf[2], - n = [0, 0], - _mw_ = stop - 1 | 0; - if(_mw_ >= start){ - var i = start; - for(;;){ - if(max10 <= n[1]) throw caml_maybe_attach_backtrace(Int_overflow, 1); - var _mx_ = caml_bytes_get(s, i) - 48 | 0; - n[1] = (10 * n[1] | 0) + _mx_ | 0; - var _my_ = i + 1 | 0; - if(_mw_ !== i){var i = _my_; continue;} - break; - } - } - if(0 <= n[1]) return n[1]; - throw caml_maybe_attach_backtrace(Int_overflow, 1); - } - function extract_negative_int(lexbuf){ - var - start = lexbuf[5] + 1 | 0, - stop = lexbuf[6], - s = lexbuf[2], - n = [0, 0], - _mt_ = stop - 1 | 0; - if(_mt_ >= start){ - var i = start; - for(;;){ - if(n[1] <= min10) throw caml_maybe_attach_backtrace(Int_overflow, 1); - var _mu_ = caml_bytes_get(s, i) - 48 | 0; - n[1] = (10 * n[1] | 0) - _mu_ | 0; - var _mv_ = i + 1 | 0; - if(_mt_ !== i){var i = _mv_; continue;} - break; - } - } - if(0 < n[1]) throw caml_maybe_attach_backtrace(Int_overflow, 1); - return n[1]; - } - function newline(v, lexbuf){ - v[2] = v[2] + 1 | 0; - v[3] = lexbuf[4] + lexbuf[6] | 0; - return 0; - } - function add_lexeme(buf, lexbuf){ - var len = lexbuf[6] - lexbuf[5] | 0; - return caml_call4(Stdlib_Buffer[19], buf, lexbuf[2], lexbuf[5], len); - } - function read_json(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 0; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(19 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return _bS_; - case 1: - return _bT_; - case 2: - return 870828711; - case 3: - return [0, 365180284, Stdlib[24]]; - case 4: - return [0, 365180284, Stdlib[22]]; - case 5: - return [0, 365180284, Stdlib[23]]; - case 6: - caml_call1(Stdlib_Buffer[8], v[1]); - return [0, -976970511, finish_string(v, lexbuf)]; - case 7: - try{ - var _mg_ = [0, 3654863, extract_positive_int(lexbuf)]; - return _mg_; - } - catch(_ms_){ - var _mf_ = caml_wrap_exception(_ms_); - if(_mf_ === Int_overflow) - return lexer_error(cst_Int_overflow, v, lexbuf); - throw caml_maybe_attach_backtrace(_mf_, 0); - } - case 8: - try{ - var _mi_ = [0, 3654863, extract_negative_int(lexbuf)]; - return _mi_; - } - catch(_mr_){ - var _mh_ = caml_wrap_exception(_mr_); - if(_mh_ === Int_overflow) - return lexer_error(cst_Int_overflow$0, v, lexbuf); - throw caml_maybe_attach_backtrace(_mh_, 0); - } - case 9: - return [0, - 365180284, - caml_float_of_string(caml_call1(lexeme, lexbuf))]; - case 10: - var acc = [0, 0]; - try{ - read_space(v, lexbuf); - read_object_end(lexbuf); - var field_name = read_ident(v, lexbuf); - read_space(v, lexbuf); - read_colon(v, lexbuf); - read_space(v, lexbuf); - var _mk_ = acc[1]; - acc[1] = [0, [0, field_name, read_json(v, lexbuf)], _mk_]; - for(;;){ - read_space(v, lexbuf); - read_object_sep(v, lexbuf); - read_space(v, lexbuf); - var field_name$0 = read_ident(v, lexbuf); - read_space(v, lexbuf); - read_colon(v, lexbuf); - read_space(v, lexbuf); - var _ml_ = acc[1]; - acc[1] = [0, [0, field_name$0, read_json(v, lexbuf)], _ml_]; - } - } - catch(_mq_){ - var _mj_ = caml_wrap_exception(_mq_); - if(_mj_ === End_of_object) - return [0, 963043957, caml_call1(Stdlib_List[9], acc[1])]; - throw caml_maybe_attach_backtrace(_mj_, 0); - } - case 11: - var acc$0 = [0, 0]; - try{ - read_space(v, lexbuf); - read_array_end(lexbuf); - var _mn_ = acc$0[1]; - acc$0[1] = [0, read_json(v, lexbuf), _mn_]; - for(;;){ - read_space(v, lexbuf); - read_array_sep(v, lexbuf); - read_space(v, lexbuf); - var _mo_ = acc$0[1]; - acc$0[1] = [0, read_json(v, lexbuf), _mo_]; - } - } - catch(_mp_){ - var _mm_ = caml_wrap_exception(_mp_); - if(_mm_ === End_of_array) - return [0, 848054398, caml_call1(Stdlib_List[9], acc$0[1])]; - throw caml_maybe_attach_backtrace(_mm_, 0); - } - case 12: - return long_error(cst_Invalid_token, v, lexbuf); - case 13: - return long_error(cst_Invalid_token$0, v, lexbuf); - case 14: - continue a; - case 15: - finish_comment(v, lexbuf); continue a; - case 16: - newline(v, lexbuf); continue a; - case 17: - continue a; - case 18: - return custom_error(cst_Unexpected_end_of_input, v, lexbuf); - default: return long_error(cst_Invalid_token$1, v, lexbuf); - } - } - } - } - function finish_string(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 58; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return caml_call1(Stdlib_Buffer[2], v[1]); - case 1: - finish_escaped_char(v, lexbuf); continue a; - case 2: - add_lexeme(v[1], lexbuf); continue a; - default: - return custom_error(cst_Unexpected_end_of_input$0, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function map_string(v, f, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 63; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - var b = v[1], _me_ = caml_call1(Stdlib_Buffer[7], b); - return caml_call3(f, caml_call1(Stdlib_Buffer[2], b), 0, _me_); - case 1: - finish_escaped_char(v, lexbuf); continue a; - case 2: - add_lexeme(v[1], lexbuf); continue a; - default: - return custom_error(cst_Unexpected_end_of_input$1, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function finish_escaped_char(v, lexbuf){ - var ocaml_lex_state = 68; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(8 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var c = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5]); - return caml_call2(Stdlib_Buffer[12], v[1], c); - case 1: - return caml_call2(Stdlib_Buffer[12], v[1], 8); - case 2: - return caml_call2(Stdlib_Buffer[12], v[1], 12); - case 3: - return caml_call2(Stdlib_Buffer[12], v[1], 10); - case 4: - return caml_call2(Stdlib_Buffer[12], v[1], 13); - case 5: - return caml_call2(Stdlib_Buffer[12], v[1], 9); - case 6: - var - a = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 1 | 0), - b = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 2 | 0), - c$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 3 | 0), - d = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 4 | 0), - _l__ = hex$1(d), - _l$_ = hex$1(c$0) << 4, - _ma_ = hex$1(b) << 8, - x = hex$1(a) << 12 | _ma_ | _l$_ | _l__; - if(55296 <= x && 56319 >= x){ - var ocaml_lex_state$1 = 82; - for(;;){ - var - ocaml_lex_state$2 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$1, lexbuf); - if(2 < ocaml_lex_state$2 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$1 = ocaml_lex_state$2; - continue; - } - switch(ocaml_lex_state$2){ - case 0: - var - a$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 2 | 0), - b$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 3 | 0), - c$1 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 4 | 0), - d$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 5 | 0), - _mb_ = hex$1(d$0), - _mc_ = hex$1(c$1) << 4, - _md_ = hex$1(b$0) << 8, - y = hex$1(a$0) << 12 | _md_ | _mc_ | _mb_; - if(56320 <= y && 57343 >= y) - return utf8_of_surrogate_pair(v[1], x, y); - return long_error(cst_Invalid_low_surrogate_for_, v, lexbuf); - case 1: - return long_error(cst_Missing_escape_sequence_re, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$3, v, lexbuf); - } - } - } - return utf8_of_code(v[1], x); - case 7: - return long_error(cst_Invalid_escape_sequence, v, lexbuf); - default: return custom_error(cst_Unexpected_end_of_input$2, v, lexbuf); - } - } - } - function finish_stringlit(v, lexbuf){ - var ocaml_lex_state = 91; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - var - len = lexbuf[6] - lexbuf[5] | 0, - s = caml_create_bytes(len + 1 | 0); - caml_bytes_set(s, 0, 34); - caml_call5(Stdlib_Bytes[11], lexbuf[2], lexbuf[5], s, 1, len); - return caml_call1(Stdlib_Bytes[6], s); - case 1: - return long_error(cst_Invalid_string_literal, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$4, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_variant(v, lexbuf){ - var ocaml_lex_state = 102; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - var x = read_json(v, lexbuf); - read_space(v, lexbuf); - read_gt(v, lexbuf); - return [0, x]; - case 1: - return 0; - case 2: - return long_error(cst_Expected_or_but_found, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$5, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_lt(v, lexbuf){ - var ocaml_lex_state = 107; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Expected_but_found, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$6, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_gt(v, lexbuf){ - var ocaml_lex_state = 111; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Expected_but_found$0, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$7, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_comma(v, lexbuf){ - var ocaml_lex_state = 115; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Expected_but_found$1, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$8, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function start_any_variant(v, lexbuf){ - var ocaml_lex_state = 119; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return -154522342; - case 1: - caml_call1(Stdlib_Buffer[8], v[1]); return -589953938; - case 2: - return -124528282; - case 3: - return long_error(cst_Expected_or_but_found$0, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$9, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_comment(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 125; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Unterminated_comment, v, lexbuf); - case 2: - newline(v, lexbuf); continue a; - default: continue a; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function read_eof(lexbuf){ - var ocaml_lex_state = 131; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) return 1; - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_space(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 133; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - newline(v, lexbuf); continue a; - case 1: - finish_comment(v, lexbuf); continue a; - case 2: - newline(v, lexbuf); continue a; - case 3: - continue a; - default: return 0; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function read_null(v, lexbuf){ - var ocaml_lex_state = 140; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Expected_null_but_found, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$10, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_null_if_possible(v, lexbuf){ - var ocaml_lex_state = 147; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) return 1; - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_bool(v, lexbuf){ - var ocaml_lex_state = 152; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(5 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 1; - case 1: - return 0; - case 2: - return 1; - case 3: - return 0; - case 4: - return long_error(cst_Expected_true_or_false_but, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$11, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_int(v, lexbuf){ - var ocaml_lex_state = 176; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(4 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - try{var _l3_ = extract_positive_int(lexbuf); return _l3_;} - catch(_l9_){ - var _l2_ = caml_wrap_exception(_l9_); - if(_l2_ === Int_overflow) - return lexer_error(cst_Int_overflow$1, v, lexbuf); - throw caml_maybe_attach_backtrace(_l2_, 0); - } - case 1: - try{var _l5_ = extract_negative_int(lexbuf); return _l5_;} - catch(_l8_){ - var _l4_ = caml_wrap_exception(_l8_); - if(_l4_ === Int_overflow) - return lexer_error(cst_Int_overflow$2, v, lexbuf); - throw caml_maybe_attach_backtrace(_l4_, 0); - } - case 2: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string(v, lexbuf); - try{var _l6_ = caml_int_of_string(s); return _l6_;} - catch(_l7_){ - return custom_error(cst_Expected_an_integer_but_fo, v, lexbuf); - } - case 3: - return long_error(cst_Expected_integer_but_found, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$12, v, lexbuf); - } - } - } - function read_int32(v, lexbuf){ - var ocaml_lex_state = 185; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - try{ - var _lY_ = caml_int_of_string(caml_call1(lexeme, lexbuf)); - return _lY_; - } - catch(_l1_){return lexer_error(cst_Int32_overflow, v, lexbuf);} - case 1: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string(v, lexbuf); - try{var _lZ_ = caml_int_of_string(s); return _lZ_;} - catch(_l0_){ - return custom_error(cst_Expected_an_int32_but_foun, v, lexbuf); - } - case 2: - return long_error(cst_Expected_int32_but_found, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$13, v, lexbuf); - } - } - } - function read_int64(v, lexbuf){ - var ocaml_lex_state = 192; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - try{ - var _lU_ = caml_int64_of_string(caml_call1(lexeme, lexbuf)); - return _lU_; - } - catch(_lX_){return lexer_error(cst_Int32_overflow$0, v, lexbuf);} - case 1: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string(v, lexbuf); - try{var _lV_ = caml_int64_of_string(s); return _lV_;} - catch(_lW_){ - return custom_error(cst_Expected_an_int64_but_foun, v, lexbuf); - } - case 2: - return long_error(cst_Expected_int64_but_found, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$14, v, lexbuf); - } - } - } - function read_number(v, lexbuf){ - var ocaml_lex_state = 199; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(6 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return Stdlib[24]; - case 1: - return Stdlib[22]; - case 2: - return Stdlib[23]; - case 3: - return caml_float_of_string(caml_call1(lexeme, lexbuf)); - case 4: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string(v, lexbuf); - try{var _lS_ = caml_float_of_string(s); return _lS_;} - catch(_lT_){ - return caml_string_notequal(s, cst_Infinity$12) - ? caml_string_notequal - (s, cst_Infinity$11) - ? caml_string_notequal - (s, cst_NaN$5) - ? custom_error(cst_Expected_a_number_but_foun, v, lexbuf) - : Stdlib[24] - : Stdlib[22] - : Stdlib[23]; - } - case 5: - return long_error(cst_Expected_number_but_found, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$15, v, lexbuf); - } - } - } - function read_string(v, lexbuf){ - var ocaml_lex_state = 233; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call1(Stdlib_Buffer[8], v[1]); return finish_string(v, lexbuf); - case 1: - return long_error(cst_Expected_but_found$2, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$16, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_ident(v, lexbuf){ - var ocaml_lex_state = 237; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call1(Stdlib_Buffer[8], v[1]); return finish_string(v, lexbuf); - case 1: - var s = caml_call3(sub_lexeme, lexbuf, lexbuf[5], lexbuf[6]); - return s; - case 2: - return long_error(cst_Expected_string_or_identif, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$17, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function map_ident(v, f, lexbuf){ - var ocaml_lex_state = 242; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call1(Stdlib_Buffer[8], v[1]); return map_string(v, f, lexbuf); - case 1: - var len = lexbuf[6] - lexbuf[5] | 0; - return caml_call3 - (f, - caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len), - 0, - len); - case 2: - return long_error(cst_Expected_string_or_identif$0, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$18, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_sequence(read_cell, init_acc, v, lexbuf){ - var ocaml_lex_state = 247; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var acc = [0, init_acc]; - try{ - read_space(v, lexbuf); - read_array_end(lexbuf); - acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); - for(;;){ - read_space(v, lexbuf); - read_array_sep(v, lexbuf); - read_space(v, lexbuf); - acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); - } - } - catch(_lR_){ - var _lQ_ = caml_wrap_exception(_lR_); - if(_lQ_ === End_of_array) return acc[1]; - throw caml_maybe_attach_backtrace(_lQ_, 0); - } - case 1: - return long_error(cst_Expected_but_found$3, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$19, v, lexbuf); - } - } - } - function read_list_rev(read_cell, v, lexbuf){ - var ocaml_lex_state = 251; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var acc = [0, 0]; - try{ - read_space(v, lexbuf); - read_array_end(lexbuf); - var _lN_ = acc[1]; - acc[1] = [0, caml_call2(read_cell, v, lexbuf), _lN_]; - for(;;){ - read_space(v, lexbuf); - read_array_sep(v, lexbuf); - read_space(v, lexbuf); - var _lO_ = acc[1]; - acc[1] = [0, caml_call2(read_cell, v, lexbuf), _lO_]; - } - } - catch(_lP_){ - var _lM_ = caml_wrap_exception(_lP_); - if(_lM_ === End_of_array) return acc[1]; - throw caml_maybe_attach_backtrace(_lM_, 0); - } - case 1: - return long_error(cst_Expected_but_found$4, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$20, v, lexbuf); - } - } - } - function read_array_end(lexbuf){ - var ocaml_lex_state = 255; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) - throw caml_maybe_attach_backtrace(End_of_array, 1); - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_array_sep(v, lexbuf){ - var ocaml_lex_state = 257; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - throw caml_maybe_attach_backtrace(End_of_array, 1); - case 2: - return long_error(cst_Expected_or_but_found$1, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$21, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_tuple(read_cell, init_acc, v, lexbuf){ - var ocaml_lex_state = 262; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return long_error(cst_Invalid_token$2, v, lexbuf); - case 1: - return long_error(cst_Expected_but_found$5, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$22, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_tuple_end(lexbuf){ - var ocaml_lex_state = 266; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_tuple_end2(v, std, lexbuf){ - var ocaml_lex_state = 268; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - if(std) return long_error(cst_Expected_or_but_found$2, v, lexbuf); - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 1: - if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); - return long_error(cst_Expected_or_but_found$3, v, lexbuf); - default: return 0; - } - } - } - function read_tuple_sep(v, lexbuf){ - var ocaml_lex_state = 271; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 2: - return long_error(cst_Expected_or_but_found$4, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$23, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_tuple_sep2(v, std, lexbuf){ - var ocaml_lex_state = 276; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(4 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - if(std) return long_error(cst_Expected_or_but_found$5, v, lexbuf); - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 2: - if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); - return long_error(cst_Expected_or_but_found$6, v, lexbuf); - case 3: - return long_error(cst_Expected_or_but_found$7, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$24, v, lexbuf); - } - } - } - function read_abstract_fields(read_key, read_field, init_acc, v, lexbuf){ - var ocaml_lex_state = 282; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var acc = [0, init_acc]; - try{ - read_space(v, lexbuf); - read_object_end(lexbuf); - var field_name = caml_call2(read_key, v, lexbuf); - read_space(v, lexbuf); - read_colon(v, lexbuf); - read_space(v, lexbuf); - acc[1] = caml_call4(read_field, acc[1], field_name, v, lexbuf); - for(;;){ - read_space(v, lexbuf); - read_object_sep(v, lexbuf); - read_space(v, lexbuf); - var field_name$0 = caml_call2(read_key, v, lexbuf); - read_space(v, lexbuf); - read_colon(v, lexbuf); - read_space(v, lexbuf); - acc[1] = caml_call4(read_field, acc[1], field_name$0, v, lexbuf); - } - } - catch(_lL_){ - var _lK_ = caml_wrap_exception(_lL_); - if(_lK_ === End_of_object) return acc[1]; - throw caml_maybe_attach_backtrace(_lK_, 0); - } - case 1: - return long_error(cst_Expected_but_found$6, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$25, v, lexbuf); - } - } - } - function read_lcurl(v, lexbuf){ - var ocaml_lex_state = 286; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Expected_but_found$7, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$26, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_object_end(lexbuf){ - var ocaml_lex_state = 290; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) - throw caml_maybe_attach_backtrace(End_of_object, 1); - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_object_sep(v, lexbuf){ - var ocaml_lex_state = 292; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - throw caml_maybe_attach_backtrace(End_of_object, 1); - case 2: - return long_error(cst_Expected_or_but_found$8, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$27, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_colon(v, lexbuf){ - var ocaml_lex_state = 297; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Expected_but_found$8, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$28, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function start_any_tuple(v, lexbuf){ - var ocaml_lex_state = 301; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return 1; - case 2: - return long_error(cst_Expected_or_but_found$9, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$29, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_lpar(v, lexbuf){ - var ocaml_lex_state = 306; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Expected_but_found$9, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$30, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_rpar(v, lexbuf){ - var ocaml_lex_state = 310; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Expected_but_found$10, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$31, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_lbr(v, lexbuf){ - var ocaml_lex_state = 314; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Expected_but_found$11, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$32, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_rbr(v, lexbuf){ - var ocaml_lex_state = 318; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Expected_but_found$12, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$33, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_skip_stringlit(v, lexbuf){ - var ocaml_lex_state = 378; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error(cst_Invalid_string_literal$0, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$35, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function skip_json(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 322; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(18 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return 0; - case 2: - return 0; - case 3: - return 0; - case 4: - return 0; - case 5: - return 0; - case 6: - return finish_skip_stringlit(v, lexbuf); - case 7: - return 0; - case 8: - return 0; - case 9: - try{ - read_space(v, lexbuf); - read_object_end(lexbuf); - skip_ident(v, lexbuf); - read_space(v, lexbuf); - read_colon(v, lexbuf); - read_space(v, lexbuf); - skip_json(v, lexbuf); - for(;;){ - read_space(v, lexbuf); - read_object_sep(v, lexbuf); - read_space(v, lexbuf); - skip_ident(v, lexbuf); - read_space(v, lexbuf); - read_colon(v, lexbuf); - read_space(v, lexbuf); - skip_json(v, lexbuf); - } - } - catch(_lJ_){ - var _lG_ = caml_wrap_exception(_lJ_); - if(_lG_ === End_of_object) return 0; - throw caml_maybe_attach_backtrace(_lG_, 0); - } - case 10: - try{ - read_space(v, lexbuf); - read_array_end(lexbuf); - skip_json(v, lexbuf); - for(;;){ - read_space(v, lexbuf); - read_array_sep(v, lexbuf); - read_space(v, lexbuf); - skip_json(v, lexbuf); - } - } - catch(_lI_){ - var _lH_ = caml_wrap_exception(_lI_); - if(_lH_ === End_of_array) return 0; - throw caml_maybe_attach_backtrace(_lH_, 0); - } - case 11: - return long_error(cst_Invalid_token$3, v, lexbuf); - case 12: - return long_error(cst_Invalid_token$4, v, lexbuf); - case 13: - continue a; - case 14: - finish_comment(v, lexbuf); continue a; - case 15: - newline(v, lexbuf); continue a; - case 16: - continue a; - case 17: - return custom_error(cst_Unexpected_end_of_input$34, v, lexbuf); - default: return long_error(cst_Invalid_token$5, v, lexbuf); - } - } - } - } - function finish_skip_variant(v, lexbuf){ - var ocaml_lex_state = 389; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - skip_json(v, lexbuf); - read_space(v, lexbuf); - return read_gt(v, lexbuf); - case 1: - return 0; - case 2: - return long_error(cst_Expected_or_but_found$10, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$36, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function skip_ident(v, lexbuf){ - var ocaml_lex_state = 394; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return finish_skip_stringlit(v, lexbuf); - case 1: - return 0; - case 2: - return long_error(cst_Expected_string_or_identif$1, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$37, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_buffer_stringlit(v, lexbuf){ - var ocaml_lex_state = 450; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 34); - return add_lexeme(v[1], lexbuf); - case 1: - return long_error(cst_Invalid_string_literal$1, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$39, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function buffer_json(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 399; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(11 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return add_lexeme(v[1], lexbuf); - case 1: - return finish_buffer_stringlit(v, lexbuf); - case 2: - try{ - caml_call2(Stdlib_Buffer[12], v[1], 123); - buffer_space(v, lexbuf); - var ocaml_lex_state$1 = 478; - for(;;){ - var - ocaml_lex_state$2 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$1, lexbuf); - if(0 === ocaml_lex_state$2){ - caml_call2(Stdlib_Buffer[12], v[1], 125); - throw caml_maybe_attach_backtrace(End_of_object, 1); - } - if(1 !== ocaml_lex_state$2){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$1 = ocaml_lex_state$2; - continue; - } - buffer_ident(v, lexbuf); - buffer_space(v, lexbuf); - buffer_colon(v, lexbuf); - buffer_space(v, lexbuf); - buffer_json(v, lexbuf); - b: - for(;;){ - buffer_space(v, lexbuf); - var ocaml_lex_state$3 = 480; - for(;;){ - var - ocaml_lex_state$4 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$3, lexbuf); - if(3 < ocaml_lex_state$4 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$3 = ocaml_lex_state$4; - continue; - } - switch(ocaml_lex_state$4){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 44); break; - case 1: - caml_call2(Stdlib_Buffer[12], v[1], 125); - throw caml_maybe_attach_backtrace(End_of_object, 1); - case 2: - long_error(cst_Expected_or_but_found$11, v, lexbuf); break; - default: - custom_error(cst_Unexpected_end_of_input$41, v, lexbuf); - } - buffer_space(v, lexbuf); - buffer_ident(v, lexbuf); - buffer_space(v, lexbuf); - buffer_colon(v, lexbuf); - buffer_space(v, lexbuf); - buffer_json(v, lexbuf); - continue b; - } - } - } - } - catch(_lF_){ - var _lC_ = caml_wrap_exception(_lF_); - if(_lC_ === End_of_object) return 0; - throw caml_maybe_attach_backtrace(_lC_, 0); - } - case 3: - try{ - caml_call2(Stdlib_Buffer[12], v[1], 91); - buffer_space(v, lexbuf); - var ocaml_lex_state$5 = 485; - for(;;){ - var - ocaml_lex_state$6 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$5, lexbuf); - if(0 === ocaml_lex_state$6){ - caml_call2(Stdlib_Buffer[12], v[1], 93); - throw caml_maybe_attach_backtrace(End_of_array, 1); - } - if(1 !== ocaml_lex_state$6){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$5 = ocaml_lex_state$6; - continue; - } - buffer_json(v, lexbuf); - b: - for(;;){ - buffer_space(v, lexbuf); - var ocaml_lex_state$7 = 487; - for(;;){ - var - ocaml_lex_state$8 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$7, lexbuf); - if(3 < ocaml_lex_state$8 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$7 = ocaml_lex_state$8; - continue; - } - switch(ocaml_lex_state$8){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 44); break; - case 1: - caml_call2(Stdlib_Buffer[12], v[1], 93); - throw caml_maybe_attach_backtrace(End_of_array, 1); - case 2: - long_error(cst_Expected_or_but_found$12, v, lexbuf); break; - default: - custom_error(cst_Unexpected_end_of_input$42, v, lexbuf); - } - buffer_space(v, lexbuf); - buffer_json(v, lexbuf); - continue b; - } - } - } - } - catch(_lE_){ - var _lD_ = caml_wrap_exception(_lE_); - if(_lD_ === End_of_array) return 0; - throw caml_maybe_attach_backtrace(_lD_, 0); - } - case 4: - return long_error(cst_Invalid_token$6, v, lexbuf); - case 5: - return long_error(cst_Invalid_token$7, v, lexbuf); - case 6: - add_lexeme(v[1], lexbuf); continue a; - case 7: - caml_call2(Stdlib_Buffer[16], v[1], cst$34); - finish_buffer_comment(v, lexbuf); - continue a; - case 8: - caml_call2(Stdlib_Buffer[12], v[1], 10); - newline(v, lexbuf); - continue a; - case 9: - add_lexeme(v[1], lexbuf); continue a; - case 10: - return custom_error(cst_Unexpected_end_of_input$38, v, lexbuf); - default: return long_error(cst_Invalid_token$8, v, lexbuf); - } - } - } - } - function buffer_ident(v, lexbuf){ - var ocaml_lex_state = 466; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return finish_buffer_stringlit(v, lexbuf); - case 1: - return add_lexeme(v[1], lexbuf); - case 2: - return long_error(cst_Expected_string_or_identif$2, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$40, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function buffer_space(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 471; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - add_lexeme(v[1], lexbuf); newline(v, lexbuf); continue a; - case 1: - caml_call2(Stdlib_Buffer[16], v[1], cst$35); - finish_buffer_comment(v, lexbuf); - continue a; - case 2: - caml_call2(Stdlib_Buffer[12], v[1], 10); - newline(v, lexbuf); - continue a; - case 3: - add_lexeme(v[1], lexbuf); continue a; - default: return 0; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function buffer_colon(v, lexbuf){ - var ocaml_lex_state = 499; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return caml_call2(Stdlib_Buffer[12], v[1], 58); - case 1: - return long_error(cst_Expected_but_found$13, v, lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$43, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_buffer_comment(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 507; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return caml_call2(Stdlib_Buffer[16], v[1], cst$36); - case 1: - return long_error(cst_Unterminated_comment$0, v, lexbuf); - case 2: - caml_call2(Stdlib_Buffer[12], v[1], 10); - newline(v, lexbuf); - continue a; - default: add_lexeme(v[1], lexbuf); continue a; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function junk(lexbuf){ - var ocaml_lex_state = 513; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) return caml_call1(lexeme, lexbuf); - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - read_junk[1] = junk; - function read_int8(v, lexbuf){ - var n = read_int(v, lexbuf); - if(0 <= n && 255 >= n) return caml_call1(Stdlib[29], n); - return lexer_error(cst_Int8_overflow, v, lexbuf); - } - function read_list(read_cell, v, lexbuf){ - var _lB_ = read_list_rev(read_cell, v, lexbuf); - return caml_call1(Stdlib_List[9], _lB_); - } - function read_array(read_cell, v, lexbuf){ - var l = read_list_rev(read_cell, v, lexbuf); - if(! l) return [0]; - var - tl = l[2], - x = l[1], - len = caml_call1(Stdlib_List[1], l), - a = caml_make_vect(len, x), - r = [0, tl], - _ly_ = len - 2 | 0; - if(_ly_ >= 0){ - var i = _ly_; - for(;;){ - var _lz_ = caml_call1(Stdlib_List[5], r[1]); - caml_check_bound(a, i)[1 + i] = _lz_; - r[1] = caml_call1(Stdlib_List[6], r[1]); - var _lA_ = i - 1 | 0; - if(0 !== i){var i = _lA_; continue;} - break; - } - } - return a; - } - function read_fields(read_field, init_acc, v){ - return function(_lx_){ - return read_abstract_fields(read_ident, read_field, init_acc, v, _lx_);}; - } - function from_lexbuf(v, opt, lexbuf){ - if(opt) var sth = opt[1], stream = sth; else var stream = 0; - read_space(v, lexbuf); - if(read_eof(lexbuf)) throw caml_maybe_attach_backtrace(End_of_input, 1); - var x = read_json(v, lexbuf); - if(1 - stream){ - read_space(v, lexbuf); - if(1 - read_eof(lexbuf)) - long_error(cst_Junk_after_end_of_JSON_val, v, lexbuf); - } - return x; - } - function from_string$0(buf, fname, lnum, s){ - try{ - var - lexbuf = caml_call2(from_string, 0, s), - v = init_lexer(buf, fname, lnum, 0), - _lv_ = from_lexbuf(v, 0, lexbuf); - return _lv_; - } - catch(_lw_){ - var _lu_ = caml_wrap_exception(_lw_); - if(_lu_ === End_of_input) return json_error(cst_Blank_input_data); - throw caml_maybe_attach_backtrace(_lu_, 0); - } - } - function from_channel$0(buf, fname, lnum, ic){ - try{ - var - lexbuf = caml_call2(from_channel, 0, ic), - v = init_lexer(buf, fname, lnum, 0), - _ls_ = from_lexbuf(v, 0, lexbuf); - return _ls_; - } - catch(_lt_){ - var _lr_ = caml_wrap_exception(_lt_); - if(_lr_ === End_of_input) return json_error(cst_Blank_input_data$0); - throw caml_maybe_attach_backtrace(_lr_, 0); - } - } - function from_file(buf, fname, lnum, file){ - var ic = caml_call1(Stdlib[79], file); - try{ - var x = from_channel$0(buf, fname, lnum, ic); - caml_call1(Stdlib[93], ic); - return x; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[94], ic); - throw caml_maybe_attach_backtrace(e, 0); - } - } - var Finally = [248, cst_Yojson_Basic_Finally, caml_fresh_oo_id(0)]; - function seq_from_lexbuf(v, opt, lexbuf){ - if(opt) - var sth = opt[1], fin = sth; - else - var fin = function(param){return 0;}; - function f(param){ - try{var _lq_ = [0, from_lexbuf(v, stream, lexbuf), f]; return _lq_;} - catch(e$0){ - var e = caml_wrap_exception(e$0); - if(e === End_of_input){caml_call1(fin, 0); return 0;} - try{caml_call1(fin, 0);} - catch(fin_e$0){ - var fin_e = caml_wrap_exception(fin_e$0); - throw caml_maybe_attach_backtrace([0, Finally, e, fin_e], 1); - } - throw caml_maybe_attach_backtrace(e, 0); - } - } - return f; - } - function seq_from_string(buf, fname, lnum, s){ - var v = init_lexer(buf, fname, lnum, 0); - return seq_from_lexbuf(v, 0, caml_call2(from_string, 0, s)); - } - function seq_from_channel(buf, fin, fname, lnum, ic){ - var - lexbuf = caml_call2(from_channel, 0, ic), - v = init_lexer(buf, fname, lnum, 0); - return seq_from_lexbuf(v, fin, lexbuf); - } - function seq_from_file(buf, fname, lnum, file){ - var ic = caml_call1(Stdlib[79], file); - function fin(param){return caml_call1(Stdlib[93], ic);} - var - fname$0 = fname || [0, file], - lexbuf = caml_call2(from_channel, 0, ic), - v = init_lexer(buf, fname$0, lnum, 0); - return seq_from_lexbuf(v, [0, fin], lexbuf); - } - function lineseq_from_channel(buf, opt, fname, _li_, ic){ - if(opt) - var sth = opt[1], fin = sth; - else - var fin = function(param){return 0;}; - if(_li_) var sth$0 = _li_[1], lnum0 = sth$0; else var lnum0 = 1; - var buf$0 = buf || [0, caml_call1(Stdlib_Buffer[1], 256)]; - function f(lnum, param){ - try{ - var - line = caml_call1(Stdlib[83], ic), - _ll_ = lnum + 1 | 0, - _lm_ = function(_lp_){return f(_ll_, _lp_);}, - _ln_ = + [1, [0, - [0, 826371656, from_string$0(buf$0, fname, [0, lnum], line)], - _lm_]; - return _ln_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - if(e === Stdlib[12]){caml_call1(fin, 0); return 0;} - var _lk_ = lnum + 1 | 0; - return [0, [0, 3458171, e], function(_lo_){return f(_lk_, _lo_);}]; - } - } - return function(_lj_){return f(lnum0, _lj_);}; - } - function lineseq_from_file(buf, fname, lnum, file){ - var ic = caml_call1(Stdlib[79], file); - function fin(param){return caml_call1(Stdlib[93], ic);} - var fname$0 = fname || [0, file]; - return lineseq_from_channel(buf, [0, fin], fname$0, lnum, ic); - } - function prettify(std, s){ - return pretty_to_string$0(std, from_string$0(0, 0, 0, s)); - } - function compact(std, s){ - return to_string$0(0, 0, 0, 0, from_string$0(0, 0, 0, s)); - } - var - Type_error = [248, cst_Yojson_Basic_Util_Type_err, caml_fresh_oo_id(0)]; - function typerr(msg, js){ - if(typeof js === "number") - var _lh_ = cst_null$3; - else - var - _lg_ = js[1], - _lh_ = - 708012133 <= _lg_ - ? 726928360 - === _lg_ - ? cst_tuple - : 848054398 - <= _lg_ - ? 963043957 <= _lg_ ? cst_object : cst_array - : 737456202 <= _lg_ ? cst_bool : cst_variant - : 3654863 - <= _lg_ - ? 365180284 <= _lg_ ? cst_float : cst_int - : -752863768 <= _lg_ ? cst_intlit : cst_string; - throw caml_maybe_attach_backtrace - ([0, Type_error, caml_call2(Stdlib[28], msg, _lh_), js], 1); - } - var Undefined = [248, cst_Yojson_Basic_Util_Undefine, caml_fresh_oo_id(0)]; - function member(name, js){ - if(typeof js !== "number" && 963043957 === js[1]){ - var obj = js[2]; - try{var _ld_ = caml_call2(Stdlib_List[46], name, obj); return _ld_;} - catch(_lf_){ - var _lc_ = caml_wrap_exception(_lf_); - if(_lc_ === Stdlib[8]) return 870828711; - throw caml_maybe_attach_backtrace(_lc_, 0); - } - } - var _le_ = caml_call2(Stdlib[28], name, cst_of_non_object_type); - return typerr(caml_call2(Stdlib[28], cst_Can_t_get_member, _le_), js); - } - function index(i, js){ - if(typeof js !== "number" && 848054398 === js[1]){ - var - l = js[2], - len = caml_call1(Stdlib_List[1], l), - wrapped_index = 0 <= i ? i : len + i | 0; - if(0 <= wrapped_index && len > wrapped_index) - return caml_call2(Stdlib_List[7], l, wrapped_index); - var - _la_ = caml_call1(Stdlib[33], i), - _lb_ = caml_call2(Stdlib[28], _la_, cst_out_of_bounds); - throw caml_maybe_attach_backtrace - ([0, Undefined, caml_call2(Stdlib[28], cst_Index, _lb_), js], 1); - } - var - _k__ = caml_call1(Stdlib[33], i), - _k$_ = caml_call2(Stdlib[28], _k__, cst_of_non_array_type); - return typerr(caml_call2(Stdlib[28], cst_Can_t_get_index, _k$_), js); - } - function map(f, js){ - if(typeof js !== "number" && 848054398 === js[1]){ - var l = js[2]; - return [0, 848054398, caml_call2(Stdlib_List[19], f, l)]; - } - return typerr(cst_Can_t_map_function_over_no, js); - } - function to_assoc(js){ - if(typeof js !== "number" && 963043957 === js[1]){var obj = js[2]; return obj;} - return typerr(cst_Expected_object_got, js); - } - function to_option(f, x){ - return 870828711 === x ? 0 : [0, caml_call1(f, x)]; - } - function to_bool(js){ - if(typeof js !== "number" && 737456202 === js[1]){var b = js[2]; return b;} - return typerr(cst_Expected_bool_got, js); - } - function to_bool_option(js){ - if(typeof js === "number"){ - if(870828711 === js) return 0; - } - else if(737456202 === js[1]){var b = js[2]; return [0, b];} - return typerr(cst_Expected_bool_or_null_got, js); - } - function to_number(js){ - if(typeof js !== "number"){ - var _k9_ = js[1]; - if(3654863 === _k9_){var i = js[2]; return i;} - if(365180284 === _k9_){var f = js[2]; return f;} - } - return typerr(cst_Expected_number_got, js); - } - function to_number_option(js){ - if(typeof js === "number"){ - if(870828711 === js) return 0; - } - else{ - var _k8_ = js[1]; - if(3654863 === _k8_){var i = js[2]; return [0, i];} - if(365180284 === _k8_){var f = js[2]; return [0, f];} - } - return typerr(cst_Expected_number_or_null_go, js); - } - function to_float(js){ - if(typeof js !== "number" && 365180284 === js[1]){var f = js[2]; return f;} - return typerr(cst_Expected_float_got, js); - } - function to_float_option(js){ - if(typeof js === "number"){ - if(870828711 === js) return 0; - } - else if(365180284 === js[1]){var f = js[2]; return [0, f];} - return typerr(cst_Expected_float_or_null_got, js); - } - function to_int(js){ - if(typeof js !== "number" && 3654863 === js[1]){var i = js[2]; return i;} - return typerr(cst_Expected_int_got, js); - } - function to_int_option(js){ - if(typeof js === "number"){ - if(870828711 === js) return 0; - } - else if(3654863 === js[1]){var i = js[2]; return [0, i];} - return typerr(cst_Expected_int_or_null_got, js); - } - function to_list(js){ - if(typeof js !== "number" && 848054398 === js[1]){var l = js[2]; return l;} - return typerr(cst_Expected_array_got, js); - } - function to_string$1(js){ - if(typeof js !== "number" && -976970511 === js[1]){var s = js[2]; return s;} - return typerr(cst_Expected_string_got, js); - } - function to_string_option(js){ - if(typeof js === "number"){ - if(870828711 === js) return 0; - } - else if(-976970511 === js[1]){var s = js[2]; return [0, s];} - return typerr(cst_Expected_string_or_null_go, js); - } - function convert_each(f, js){ - if(typeof js !== "number" && 848054398 === js[1]){ - var l = js[2]; - return caml_call2(Stdlib_List[19], f, l); - } - return typerr(cst_Can_t_convert_each_element, js); - } - function filter_map(f, l$0){ - var acc = 0, l = l$0; - for(;;){ - if(! l) return caml_call1(Stdlib_List[9], acc); - var tl = l[2], x = l[1], match = caml_call1(f, x); - if(match){ - var y = match[1], acc$0 = [0, y, acc], acc = acc$0, l = tl; - continue; - } - var l = tl; - } - } - function flatten(l$0){ - var acc = 0, l = l$0; - for(;;){ - if(! l) return caml_call1(Stdlib_List[9], acc); - var tl = l[2], x = l[1]; - if(typeof x !== "number" && 848054398 === x[1]){ - var - l2 = x[2], - acc$0 = caml_call2(Stdlib_List[12], l2, acc), - acc = acc$0, - l = tl; - continue; - } - var l = tl; - } - } - function filter_index(i, l){ - return filter_map - (function(param){ - if(typeof param !== "number" && 848054398 === param[1]){ - var l = param[2]; - try{ - var _k6_ = [0, caml_call2(Stdlib_List[7], l, i)]; - return _k6_; - } - catch(_k7_){return 0;} - } - return 0; - }, - l); - } - function filter_list(l){ - return filter_map - (function(param){ - if(typeof param !== "number" && 848054398 === param[1]){var l = param[2]; return [0, l];} - return 0; - }, - l); - } - function filter_member(k, l){ - return filter_map - (function(param){ - if(typeof param !== "number" && 963043957 === param[1]){ - var l = param[2]; - try{ - var _k4_ = [0, caml_call2(Stdlib_List[46], k, l)]; - return _k4_; - } - catch(_k5_){return 0;} - } - return 0; - }, - l); - } - function filter_assoc(l){ - return filter_map - (function(param){ - if(typeof param !== "number" && 963043957 === param[1]){var l = param[2]; return [0, l];} - return 0; - }, - l); - } - function filter_bool(l){ - return filter_map - (function(param){ - if(typeof param !== "number" && 737456202 === param[1]){var x = param[2]; return [0, x];} - return 0; - }, - l); - } - function filter_int(l){ - return filter_map - (function(param){ - if(typeof param !== "number" && 3654863 === param[1]){var x = param[2]; return [0, x];} - return 0; - }, - l); - } - function filter_float(l){ - return filter_map - (function(param){ - if(typeof param !== "number" && 365180284 === param[1]){var x = param[2]; return [0, x];} - return 0; - }, - l); - } - function filter_number(l){ - return filter_map - (function(param){ - if(typeof param !== "number"){ - var _k3_ = param[1]; - if(3654863 === _k3_){var x = param[2]; return [0, x];} - if(365180284 === _k3_){var x$0 = param[2]; return [0, x$0];} - } - return 0; - }, - l); - } - function filter_string(l){ - return filter_map - (function(param){ - if(typeof param !== "number" && -976970511 === param[1]){var x = param[2]; return [0, x];} - return 0; - }, - l); - } - function keys(o){ - var _k1_ = to_assoc(o); - function _k2_(param){var key = param[1]; return key;} - return caml_call1(caml_call1(Stdlib_List[19], _k2_), _k1_); - } - function values(o){ - var _kZ_ = to_assoc(o); - function _k0_(param){var value = param[2]; return value;} - return caml_call1(caml_call1(Stdlib_List[19], _k0_), _kZ_); - } - function combine(first, second){ - if - (typeof first !== "number" - && - 963043957 === first[1] - && typeof second !== "number" && 963043957 === second[1]){ - var b = second[2], a = first[2]; - return [0, 963043957, caml_call2(Stdlib[37], a, b)]; - } - throw caml_maybe_attach_backtrace - ([0, Stdlib[6], cst_Expected_two_objects_check], 1); - } - function to_basic(x){ - if(typeof x !== "number"){ - var _kU_ = x[1]; - if(726928360 <= _kU_){ - if(737456202 !== _kU_){ - if(963043957 <= _kU_){ - var - l = x[2], - _kV_ = - function(param){ - var v = param[2], k = param[1]; - return [0, k, to_basic(v)]; - }, - _kW_ = caml_call2(Stdlib_List[21], _kV_, l); - return [0, 963043957, caml_call1(Stdlib_List[9], _kW_)]; - } - var l$0 = x[2], _kX_ = caml_call2(Stdlib_List[21], to_basic, l$0); - return [0, 848054398, caml_call1(Stdlib_List[9], _kX_)]; - } - } - else{ - if(-752863768 === _kU_){var s = x[2]; return [0, -976970511, s];} - if(708012133 <= _kU_){ - var _kY_ = x[2], match = _kY_[2], k = _kY_[1]; - if(! match) return [0, -976970511, k]; - var v = match[1]; - return [0, 848054398, [0, [0, -976970511, k], [0, to_basic(v), 0]]]; - } - } - } - return x; - } - function hex$2(n){ - var _kT_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; - return caml_call1(Stdlib_Char[1], _kT_); - } - function write_special$1(src, start, stop, ob, str){ - caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16], ob, str); - start[1] = stop + 1 | 0; - return 0; - } - function write_string$1(ob, src){ - caml_call2(Stdlib_Buffer[12], ob, 34); - var start = [0, 0], _kR_ = caml_ml_string_length(src) - 1 | 0, _kQ_ = 0; - if(_kR_ >= 0){ - var stop = _kQ_; - for(;;){ - var c = caml_string_get(src, stop); - if(92 === c) - write_special$1(src, start, stop, ob, cst$37); - else{ - var switch$0 = 0; - if(35 <= c){ - if(127 !== c) switch$0 = 2; - } - else if(8 <= c){ - var switch$1 = 0; - switch(c - 8 | 0){ - case 0: - write_special$1(src, start, stop, ob, cst_b$1); break; - case 1: - write_special$1(src, start, stop, ob, cst_t$1); break; - case 2: - write_special$1(src, start, stop, ob, cst_n$1); break; - case 4: - write_special$1(src, start, stop, ob, cst_f$1); break; - case 5: - write_special$1(src, start, stop, ob, cst_r$1); break; - case 26: - write_special$1(src, start, stop, ob, cst$38); break; - case 24: - case 25: - switch$0 = 2; switch$1 = 1; break; - default: switch$1 = 1; - } - if(! switch$1) switch$0 = 1; - } - switch(switch$0){ - case 2: break; - case 0: - caml_call4 - (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16], ob, cst_u00$1); - var _kO_ = hex$2(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12], ob, _kO_); - var _kP_ = hex$2(c & 15); - caml_call2(Stdlib_Buffer[12], ob, _kP_); - start[1] = stop + 1 | 0; - break; - } - } - var _kS_ = stop + 1 | 0; - if(_kR_ !== stop){var stop = _kS_; continue;} - break; - } - } - try{ - caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - } - catch(exc$0){ - var exc = caml_wrap_exception(exc$0); - caml_call4 - (Stdlib_Printf[3], - _bU_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw caml_maybe_attach_backtrace(exc, 0); - } - return caml_call2(Stdlib_Buffer[12], ob, 34); - } - function json_string_of_string$1(s){ - var ob = caml_call1(Stdlib_Buffer[1], 10); - write_string$1(ob, s); - return caml_call1(Stdlib_Buffer[2], ob); - } - function write_null$1(ob, param){ - return caml_call2(Stdlib_Buffer[16], ob, cst_null$4); - } - function write_bool$1(ob, x){ - var _kN_ = x ? cst_true$1 : cst_false$1; - return caml_call2(Stdlib_Buffer[16], ob, _kN_); - } - var - _bV_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), - _bW_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); - caml_call2(Stdlib[17], _bW_, _bV_); - function write_digits$1(s, x){ - if(0 === x) return 0; - var d = x % 10 | 0; - write_digits$1(s, x / 10 | 0); - var - n = caml_call1(Stdlib[18], d), - _kM_ = caml_call1(Stdlib_Char[1], n + 48 | 0); - return caml_call2(Stdlib_Buffer[12], s, _kM_); - } - function write_int$1(ob, x){ - return 0 < x - ? write_digits$1(ob, x) - : 0 - <= x - ? caml_call2(Stdlib_Buffer[12], ob, 48) - : (caml_call2(Stdlib_Buffer[12], ob, 45), write_digits$1(ob, x)); - } - function float_needs_period$1(s){ - try{ - var _kI_ = caml_ml_string_length(s) - 1 | 0, _kH_ = 0; - if(_kI_ >= 0){ - var i = _kH_; - for(;;){ - var match = caml_string_get(s, i), switch$0 = 0; - if(48 <= match){ - if(58 > match) switch$0 = 1; - } - else if(45 === match) switch$0 = 1; - if(! switch$0) throw caml_maybe_attach_backtrace(Stdlib[3], 1); - var _kK_ = i + 1 | 0; - if(_kI_ !== i){var i = _kK_; continue;} - break; - } - } - var _kJ_ = 1; - return _kJ_; - } - catch(_kL_){ - var _kG_ = caml_wrap_exception(_kL_); - if(_kG_ === Stdlib[3]) return 0; - throw caml_maybe_attach_backtrace(_kG_, 0); - } - } - function write_float$1(ob, x){ - var match = caml_classify_float(x); - if(3 === match){ - var _kE_ = 0. < x ? cst_Infinity$7 : cst_Infinity$8; - return caml_call2(Stdlib_Buffer[16], ob, _kE_); - } - if(4 <= match) return caml_call2(Stdlib_Buffer[16], ob, cst_NaN$3); - var - s1 = caml_call2(Stdlib_Printf[4], _bX_, x), - s = - caml_float_of_string(s1) == x - ? s1 - : caml_call2(Stdlib_Printf[4], _bY_, x); - caml_call2(Stdlib_Buffer[16], ob, s); - var _kF_ = float_needs_period$1(s); - return _kF_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$5) : _kF_; - } - function write_normal_float_prec$1(significant_figures, ob, x){ - var switcher = significant_figures - 1 | 0; - if(15 < switcher >>> 0) - var s = caml_call2(Stdlib_Printf[4], _bZ_, x); - else - switch(switcher){ - case 0: - var s = caml_call2(Stdlib_Printf[4], _b0_, x); break; - case 1: - var s = caml_call2(Stdlib_Printf[4], _b1_, x); break; - case 2: - var s = caml_call2(Stdlib_Printf[4], _b2_, x); break; - case 3: - var s = caml_call2(Stdlib_Printf[4], _b3_, x); break; - case 4: - var s = caml_call2(Stdlib_Printf[4], _b4_, x); break; - case 5: - var s = caml_call2(Stdlib_Printf[4], _b5_, x); break; - case 6: - var s = caml_call2(Stdlib_Printf[4], _b6_, x); break; - case 7: - var s = caml_call2(Stdlib_Printf[4], _b7_, x); break; - case 8: - var s = caml_call2(Stdlib_Printf[4], _b8_, x); break; - case 9: - var s = caml_call2(Stdlib_Printf[4], _b9_, x); break; - case 10: - var s = caml_call2(Stdlib_Printf[4], _b__, x); break; - case 11: - var s = caml_call2(Stdlib_Printf[4], _b$_, x); break; - case 12: - var s = caml_call2(Stdlib_Printf[4], _ca_, x); break; - case 13: - var s = caml_call2(Stdlib_Printf[4], _cb_, x); break; - case 14: - var s = caml_call2(Stdlib_Printf[4], _cc_, x); break; - default: var s = caml_call2(Stdlib_Printf[4], _cd_, x); - } - caml_call2(Stdlib_Buffer[16], ob, s); - var _kD_ = float_needs_period$1(s); - return _kD_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$6) : _kD_; - } - function write_float_prec$1(significant_figures, ob, x){ - var match = caml_classify_float(x); - if(3 !== match) - return 4 <= match - ? caml_call2(Stdlib_Buffer[16], ob, cst_NaN$4) - : write_normal_float_prec$1(significant_figures, ob, x); - var _kC_ = 0. < x ? cst_Infinity$9 : cst_Infinity$10; - return caml_call2(Stdlib_Buffer[16], ob, _kC_); - } - function write_std_float$1(ob, x){ - var match = caml_classify_float(x); - if(3 === match){ - var - _kA_ = - 0. < x - ? cst_Infinity_value_not_allowed$7 - : cst_Infinity_value_not_allowed$8; - return json_error(_kA_); - } - if(4 <= match) return json_error(cst_NaN_value_not_allowed_in_s$3); - var - s1 = caml_call2(Stdlib_Printf[4], _ce_, x), - s = - caml_float_of_string(s1) == x - ? s1 - : caml_call2(Stdlib_Printf[4], _cf_, x); - caml_call2(Stdlib_Buffer[16], ob, s); - var _kB_ = float_needs_period$1(s); - return _kB_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$7) : _kB_; - } - function write_std_float_prec$1(significant_figures, ob, x){ - var match = caml_classify_float(x); - if(3 !== match) - return 4 <= match - ? json_error(cst_NaN_value_not_allowed_in_s$4) - : write_normal_float_prec$1(significant_figures, ob, x); - var - _kz_ = - 0. < x - ? cst_Infinity_value_not_allowed$9 - : cst_Infinity_value_not_allowed$10; - return json_error(_kz_); - } - var write_intlit$0 = Stdlib_Buffer[16]; - function iter2$1(f_elt, f_sep, x, param$0){ - if(! param$0) return 0; - var l$0 = param$0[2], y$0 = param$0[1]; - caml_call2(f_elt, x, y$0); - var param = l$0; - for(;;){ - if(! param) return 0; - var l = param[2], y = param[1]; - caml_call1(f_sep, x); - caml_call2(f_elt, x, y); - var param = l; - } - } - function f_sep$1(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} - function write_variant$0(ob, s, o){ - caml_call2(Stdlib_Buffer[12], ob, 60); - write_string$1(ob, s); - if(o){ - var x = o[1]; - caml_call2(Stdlib_Buffer[12], ob, 58); - write_json$1(ob, x); - } - return caml_call2(Stdlib_Buffer[12], ob, 62); - } - function write_tuple$0(ob, l){ - caml_call2(Stdlib_Buffer[12], ob, 40); - iter2$1(write_json$1, f_sep$1, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 41); - } - function write_list$1(ob, l){ - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2$1(write_json$1, f_sep$1, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - function write_assoc$1(ob, l){ - function f_elt(ob, param){ - var x = param[2], s = param[1]; - write_string$1(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 58); - return write_json$1(ob, x); - } - caml_call2(Stdlib_Buffer[12], ob, 123); - iter2$1(f_elt, f_sep$1, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 125); - } - function write_json$1(ob, x){ - if(typeof x === "number") return write_null$1(ob, 0); - var _ky_ = x[1]; - if(708012133 <= _ky_){ - if(726928360 === _ky_){var l = x[2]; return write_tuple$0(ob, l);} - if(848054398 <= _ky_){ - if(963043957 <= _ky_){var l$0 = x[2]; return write_assoc$1(ob, l$0);} - var l$1 = x[2]; - return write_list$1(ob, l$1); - } - if(737456202 <= _ky_){var b = x[2]; return write_bool$1(ob, b);} - var match = x[2], o = match[2], s = match[1]; - return write_variant$0(ob, s, o); - } - if(3654863 <= _ky_){ - if(365180284 <= _ky_){var f = x[2]; return write_float$1(ob, f);} - var i = x[2]; - return write_int$1(ob, i); - } - if(-752863768 <= _ky_){ - var s$0 = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s$0); - } - var s$1 = x[2]; - return write_string$1(ob, s$1); - } - function write_std_variant$0(ob, s, o){ - if(! o) return write_string$1(ob, s); - var x = o[1]; - caml_call2(Stdlib_Buffer[12], ob, 91); - write_string$1(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 44); - write_std_json$1(ob, x); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - function write_std_tuple$0(ob, l){ - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2$1(write_std_json$1, f_sep$1, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - function write_std_json$1(ob, x){ - if(typeof x === "number") return write_null$1(ob, 0); - var _kx_ = x[1]; - if(708012133 <= _kx_){ - if(726928360 === _kx_){var l = x[2]; return write_std_tuple$0(ob, l);} - if(848054398 <= _kx_){ - if(963043957 <= _kx_){ - var - l$0 = x[2], - f_elt = - function(ob, param){ - var x = param[2], s = param[1]; - write_string$1(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 58); - return write_std_json$1(ob, x); - }; - caml_call2(Stdlib_Buffer[12], ob, 123); - iter2$1(f_elt, f_sep$1, ob, l$0); - return caml_call2(Stdlib_Buffer[12], ob, 125); - } - var l$1 = x[2]; - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2$1(write_std_json$1, f_sep$1, ob, l$1); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - if(737456202 <= _kx_){var b = x[2]; return write_bool$1(ob, b);} - var match = x[2], o = match[2], s = match[1]; - return write_std_variant$0(ob, s, o); - } - if(3654863 <= _kx_){ - if(365180284 <= _kx_){var f = x[2]; return write_std_float$1(ob, f);} - var i = x[2]; - return write_int$1(ob, i); - } - if(-752863768 <= _kx_){ - var s$0 = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s$0); - } - var s$1 = x[2]; - return write_string$1(ob, s$1); - } - function to_buffer$1(opt, _kw_, ob, x){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$39; - if(_kw_) var sth$0 = _kw_[1], std = sth$0; else var std = 0; - if(std) write_std_json$1(ob, x); else write_json$1(ob, x); - return caml_call2(Stdlib_Buffer[16], ob, suf); - } - function to_string$2(buf, opt, _kv_, std, x){ - if(opt) var sth = opt[1], len = sth; else var len = 256; - if(_kv_) var sth$0 = _kv_[1], suf = sth$0; else var suf = cst$40; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer$1([0, suf], std, ob$0, x); - var s = caml_call1(Stdlib_Buffer[2], ob$0); - caml_call1(Stdlib_Buffer[8], ob$0); - return s; - } - function to_channel$1(buf, opt, _ku_, std, oc, x){ - if(opt) var sth = opt[1], len = sth; else var len = 4096; - if(_ku_) var sth$0 = _ku_[1], suf = sth$0; else var suf = cst$41; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer$1([0, suf], std, ob$0, x); - caml_call2(Stdlib_Buffer[10], oc, ob$0); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - function to_output$1(buf, opt, _ks_, std, out, x){ - if(opt) var sth = opt[1], len = sth; else var len = 4096; - if(_ks_) var sth$0 = _ks_[1], suf = sth$0; else var suf = cst$42; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer$1([0, suf], std, ob$0, x); - var _kt_ = caml_call1(Stdlib_Buffer[7], ob$0); - caml_call4 - (caml_get_public_method(out, 209784577, 3), - out, - caml_call1(Stdlib_Buffer[2], ob$0), - 0, - _kt_); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - function to_file$1(len, std, opt, file, x){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$43; - var oc = caml_call1(Stdlib[60], file); - try{ - to_channel$1(0, len, [0, suf], std, oc, x); - var _kr_ = caml_call1(Stdlib[76], oc); - return _kr_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[77], oc); - throw caml_maybe_attach_backtrace(e, 0); - } - } - function seq_to_buffer$1(opt, std, ob, st){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$44; - var _ko_ = [0, suf]; - function _kp_(_kq_){return to_buffer$1(_ko_, std, ob, _kq_);} - return caml_call2(Stdlib_Seq[4], _kp_, st); - } - function seq_to_string$1(buf, opt, _kn_, std, st){ - if(opt) var sth = opt[1], len = sth; else var len = 256; - if(_kn_) var sth$0 = _kn_[1], suf = sth$0; else var suf = cst$45; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - seq_to_buffer$1([0, suf], std, ob$0, st); - var s = caml_call1(Stdlib_Buffer[2], ob$0); - caml_call1(Stdlib_Buffer[8], ob$0); - return s; - } - function seq_to_channel$1(buf, opt, _kl_, std, oc, seq){ - if(opt) var sth = opt[1], len = sth; else var len = 2096; - if(_kl_) var sth$0 = _kl_[1], suf = sth$0; else var suf = cst$46; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - function _km_(json){ - to_buffer$1([0, suf], std, ob$0, json); - caml_call2(Stdlib_Buffer[10], oc, ob$0); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - return caml_call2(Stdlib_Seq[4], _km_, seq); - } - function seq_to_file$1(len, opt, std, file, st){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$47; - var oc = caml_call1(Stdlib[60], file); - try{ - seq_to_channel$1(0, len, [0, suf], std, oc, st); - var _kk_ = caml_call1(Stdlib[76], oc); - return _kk_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[77], oc); - throw caml_maybe_attach_backtrace(e, 0); - } - } - function sort$1(x){ - if(typeof x !== "number"){ - var _kc_ = x[1]; - if(726928361 <= _kc_){ - if(848054398 === _kc_){ - var l = x[2], _kd_ = caml_call2(Stdlib_List[21], sort$1, l); - return [0, 848054398, caml_call1(Stdlib_List[9], _kd_)]; - } - if(963043957 === _kc_){ - var - l$0 = x[2], - _ke_ = - function(param){ - var v = param[2], k = param[1]; - return [0, k, sort$1(v)]; - }, - _kf_ = caml_call2(Stdlib_List[21], _ke_, l$0), - l$1 = caml_call1(Stdlib_List[9], _kf_), - _kg_ = - function(param, _kj_){ - var b = _kj_[1], a = param[1]; - return caml_call2(Stdlib_String[9], a, b); - }; - return [0, 963043957, caml_call2(Stdlib_List[57], _kg_, l$1)]; - } - } - else if(708012133 === _kc_){ - var _kh_ = x[2], match = _kh_[2]; - if(match){ - var v = match[1], k = _kh_[1], v$0 = sort$1(v); - return v === v$0 ? x : [0, 708012133, [0, k, [0, v$0]]]; - } - } - else if(726928360 <= _kc_){ - var l$2 = x[2], _ki_ = caml_call2(Stdlib_List[21], sort$1, l$2); - return [0, 726928360, caml_call1(Stdlib_List[9], _ki_)]; - } - } - return x; - } - function pp_list$1(sep, ppx, out, l){ - function pp_sep(out, param){ - return caml_call3(Stdlib_Format[129], out, _cg_, sep); - } - return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); - } - function is_atom$1(x){ - if(typeof x !== "number"){ - var _kb_ = x[1], switch$0 = 0; - if(737456202 <= _kb_){ - if(848054398 === _kb_){ - if(x[2]) switch$0 = 1; - } - else if(963043957 <= _kb_ && x[2]) switch$0 = 1; - } - else - if(708012133 === _kb_){ - if(x[2][2]) switch$0 = 1; - } - else if(726928360 <= _kb_ && x[2]) switch$0 = 1; - if(switch$0) return 0; - } - return 1; - } - function format$1(inside_box, std, out, x){ - var x$0 = x; - for(;;){ - if(typeof x$0 === "number") - return caml_call2(Stdlib_Format[13], out, cst_null$5); - var _jy_ = x$0[1]; - if(708012133 > _jy_){ - if(3654863 <= _jy_){ - if(365180284 > _jy_){ - var x$6 = x$0[2], _jx_ = caml_call1(Stdlib[33], x$6); - return caml_call2(Stdlib_Format[13], out, _jx_); - } - var x$5 = x$0[2]; - if(std){ - var ob$0 = caml_call1(Stdlib_Buffer[1], 20); - write_std_float$1(ob$0, x$5); - var s$0 = caml_call1(Stdlib_Buffer[2], ob$0); - } - else{ - var ob = caml_call1(Stdlib_Buffer[1], 20); - write_float$1(ob, x$5); - var s$0 = caml_call1(Stdlib_Buffer[2], ob); - } - return caml_call2(Stdlib_Format[13], out, s$0); - } - if(-752863768 <= _jy_){ - var s$1 = x$0[2]; - return caml_call2(Stdlib_Format[13], out, s$1); - } - var s$2 = x$0[2], _jR_ = json_string_of_string$1(s$2); - return caml_call2(Stdlib_Format[13], out, _jR_); - } - if(726928360 === _jy_){ - var l = x$0[2]; - if(std){var x$1 = [0, 848054398, l], x$0 = x$1; continue;} - if(0 === l) return caml_call2(Stdlib_Format[13], out, cst$48); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _ch_); - var - _jz_ = 0, - _jA_ = function(_j$_, _ka_){return format$1(_jz_, std, _j$_, _ka_);}, - _jB_ = - function(_j9_, _j__){return pp_list$1(cst$49, _jA_, _j9_, _j__);}; - caml_call4(Stdlib_Format[129], out, _ci_, _jB_, l); - var _jC_ = 1 - inside_box; - return _jC_ ? caml_call2(Stdlib_Format[129], out, _cj_) : _jC_; - } - if(848054398 <= _jy_){ - if(963043957 <= _jy_){ - var l$0 = x$0[2]; - if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$51); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _ck_); - var - _jD_ = - function(out, param){ - var x = param[2], name = param[1], _j4_ = 1; - function _j5_(_j7_, _j8_){return format$1(_j4_, std, _j7_, _j8_);} - var _j6_ = json_string_of_string$1(name); - return caml_call5(Stdlib_Format[129], out, _ct_, _j6_, _j5_, x); - }, - _jE_ = - function(_j2_, _j3_){return pp_list$1(cst$50, _jD_, _j2_, _j3_);}; - caml_call4(Stdlib_Format[129], out, _cl_, _jE_, l$0); - var _jF_ = 1 - inside_box; - return _jF_ ? caml_call2(Stdlib_Format[129], out, _cm_) : _jF_; - } - var l$1 = x$0[2]; - if(! l$1) return caml_call2(Stdlib_Format[13], out, cst$54); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _cn_); - if(caml_call2(Stdlib_List[32], is_atom$1, l$1)){ - var - _jG_ = 0, - _jH_ = function(_jW_, _jX_){return format$1(_jG_, std, _jW_, _jX_);}, - _jI_ = - function(_jU_, _jV_){return pp_list$1(cst$52, _jH_, _jU_, _jV_);}; - caml_call4(Stdlib_Format[129], out, _co_, _jI_, l$1); - } - else{ - var - _jK_ = 0, - _jL_ = function(_j0_, _j1_){return format$1(_jK_, std, _j0_, _j1_);}, - _jM_ = - function(_jY_, _jZ_){return pp_list$1(cst$53, _jL_, _jY_, _jZ_);}; - caml_call4(Stdlib_Format[129], out, _cq_, _jM_, l$1); - } - var _jJ_ = 1 - inside_box; - return _jJ_ ? caml_call2(Stdlib_Format[129], out, _cp_) : _jJ_; - } - if(737456202 <= _jy_){ - var x$2 = x$0[2]; - return caml_call2(Stdlib_Format[25], out, x$2); - } - var _jN_ = x$0[2], match = _jN_[2], s = _jN_[1]; - if(match){ - var x$3 = match[1]; - if(std){ - var - representation = [0, -976970511, s], - x$4 = [0, 848054398, [0, representation, [0, x$3, 0]]], - x$0 = x$4; - continue; - } - var - op = json_string_of_string$1(s), - _jO_ = 1, - _jP_ = function(_jS_, _jT_){return format$1(_jO_, std, _jS_, _jT_);}; - return caml_call5(Stdlib_Format[129], out, _cr_, op, _jP_, x$3); - } - if(std){ - var representation$0 = [0, -976970511, s], x$0 = representation$0; - continue; - } - var _jQ_ = json_string_of_string$1(s); - return caml_call3(Stdlib_Format[129], out, _cs_, _jQ_); - } - } - function pp$3(opt, out, x){ - if(opt) var sth = opt[1], std = sth; else var std = 0; - var _jt_ = 1; - function _ju_(_jv_, _jw_){return format$1(_jt_, std, _jv_, _jw_);} - return caml_call4(Stdlib_Format[129], out, _cu_, _ju_, x); - } - function pp$4(fmt, param){ - if(typeof param === "number") - return caml_call2(Stdlib_Format[13], fmt, cst_Null$1); - var _jm_ = param[1]; - if(708012133 <= _jm_){ - if(726928360 === _jm_){ - var tup = param[2]; - caml_call2(Stdlib_Format[129], fmt, _cx_); - caml_call2(Stdlib_Format[129], fmt, _cy_); - var - _jn_ = 0, - _jo_ = - function(sep, e){ - if(sep) caml_call2(Stdlib_Format[129], fmt, _cz_); - pp$4(fmt, e); - return 1; - }; - caml_call3(Stdlib_List[25], _jo_, _jn_, tup); - caml_call2(Stdlib_Format[129], fmt, _cA_); - return caml_call2(Stdlib_Format[129], fmt, _cB_); - } - if(848054398 <= _jm_){ - if(963043957 <= _jm_){ - var xs = param[2]; - caml_call2(Stdlib_Format[129], fmt, _cC_); - caml_call2(Stdlib_Format[129], fmt, _cD_); - var - _jp_ = 0, - _jq_ = - function(sep, param){ - var value = param[2], key = param[1]; - if(sep) caml_call2(Stdlib_Format[129], fmt, _cE_); - caml_call2(Stdlib_Format[129], fmt, _cF_); - caml_call3(Stdlib_Format[129], fmt, _cG_, key); - caml_call2(Stdlib_Format[129], fmt, _cH_); - pp$4(fmt, value); - caml_call2(Stdlib_Format[129], fmt, _cI_); - return 1; - }; - caml_call3(Stdlib_List[25], _jq_, _jp_, xs); - caml_call2(Stdlib_Format[129], fmt, _cJ_); - return caml_call2(Stdlib_Format[129], fmt, _cK_); - } - var xs$0 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _cL_); - caml_call2(Stdlib_Format[129], fmt, _cM_); - var - _jr_ = 0, - _js_ = - function(sep, x){ - if(sep) caml_call2(Stdlib_Format[129], fmt, _cN_); - pp$4(fmt, x); - return 1; - }; - caml_call3(Stdlib_List[25], _js_, _jr_, xs$0); - caml_call2(Stdlib_Format[129], fmt, _cO_); - return caml_call2(Stdlib_Format[129], fmt, _cP_); - } - if(737456202 <= _jm_){ - var x = param[2]; - caml_call2(Stdlib_Format[129], fmt, _cQ_); - caml_call3(Stdlib_Format[129], fmt, _cR_, x); - return caml_call2(Stdlib_Format[129], fmt, _cS_); - } - var match = param[2], value = match[2], name = match[1]; - caml_call2(Stdlib_Format[129], fmt, _cT_); - caml_call2(Stdlib_Format[129], fmt, _cU_); - caml_call3(Stdlib_Format[129], fmt, _cV_, name); - caml_call2(Stdlib_Format[129], fmt, _cW_); - if(value){ - var x$0 = value[1]; - caml_call2(Stdlib_Format[13], fmt, cst_Some$0); - pp$4(fmt, x$0); - caml_call2(Stdlib_Format[13], fmt, cst$55); - } - else - caml_call2(Stdlib_Format[13], fmt, cst_None$0); - caml_call2(Stdlib_Format[129], fmt, _cX_); - return caml_call2(Stdlib_Format[129], fmt, _cY_); - } - if(3654863 <= _jm_){ - if(365180284 <= _jm_){ - var x$1 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _cZ_); - caml_call3(Stdlib_Format[129], fmt, _c0_, x$1); - return caml_call2(Stdlib_Format[129], fmt, _c1_); - } - var x$2 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _c2_); - caml_call3(Stdlib_Format[129], fmt, _c3_, x$2); - return caml_call2(Stdlib_Format[129], fmt, _c4_); - } - if(-752863768 <= _jm_){ - var x$3 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _c5_); - caml_call3(Stdlib_Format[129], fmt, _c6_, x$3); - return caml_call2(Stdlib_Format[129], fmt, _c7_); - } - var x$4 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _c8_); - caml_call3(Stdlib_Format[129], fmt, _c9_, x$4); - return caml_call2(Stdlib_Format[129], fmt, _c__); - } - function show$1(x){return caml_call3(Stdlib_Format[133], _c$_, pp$4, x);} - function equal$1(a, b){ - var a$0 = a, b$0 = b; - for(;;){ - if(typeof a$0 === "number"){ - if(870828711 === a$0 && 870828711 === b$0) return 1; - } - else{ - var _jd_ = a$0[1]; - if(708012133 <= _jd_){ - var switch$0 = 0; - if(737456203 <= _jd_){ - if(848054398 === _jd_){ - if(typeof b$0 !== "number" && 848054398 === b$0[1]){var ys = b$0[2], xs = a$0[2]; switch$0 = 1;} - } - else if - (963043957 === _jd_ - && typeof b$0 !== "number" && 963043957 === b$0[1]){ - var - ys$0 = b$0[2], - xs$0 = a$0[2], - compare_keys = - function(param, _jl_){ - var key = _jl_[1], key$0 = param[1]; - return caml_call2(Stdlib_String[9], key$0, key); - }, - xs$1 = caml_call2(Stdlib_List[57], compare_keys, xs$0), - ys$1 = caml_call2(Stdlib_List[57], compare_keys, ys$0); - try{ - var - _jg_ = - function(param, _jk_){ - var - value = _jk_[2], - key = _jk_[1], - value$0 = param[2], - key$0 = param[1]; - return caml_string_equal(key$0, key) - ? equal$1(value$0, value) - : 0; - }, - result$0 = caml_call3(Stdlib_List[34], _jg_, xs$1, ys$1); - return result$0; - } - catch(_jj_){ - var _jf_ = caml_wrap_exception(_jj_); - if(_jf_[1] === Stdlib[6]) return 0; - throw caml_maybe_attach_backtrace(_jf_, 0); - } - } - } - else - if(726928360 === _jd_){ - if(typeof b$0 !== "number" && 726928360 === b$0[1]){var ys = b$0[2], xs = a$0[2]; switch$0 = 1;} - } - else - if(708012134 <= _jd_){ - if - (737456202 <= _jd_ - && typeof b$0 !== "number" && 737456202 === b$0[1]){ - var b$1 = b$0[2], a$1 = a$0[2]; - return caml_equal(a$1, b$1); - } - } - else if(typeof b$0 !== "number" && 708012133 === b$0[1]){ - var - _jh_ = b$0[2], - value = _jh_[2], - name = _jh_[1], - match = a$0[2], - value$0 = match[2], - name$0 = match[1]; - if(! caml_equal(name$0, name)) return 0; - if(value$0){ - if(value){ - var y = value[1], x = value$0[1], a$0 = x, b$0 = y; - continue; - } - } - else if(! value) return 1; - return 0; - } - if(switch$0) - try{ - var result = caml_call3(Stdlib_List[34], equal$1, xs, ys); - return result; - } - catch(_ji_){ - var _je_ = caml_wrap_exception(_ji_); - if(_je_[1] === Stdlib[6]) return 0; - throw caml_maybe_attach_backtrace(_je_, 0); - } - } - else - if(-752863767 <= _jd_){ - if(3654863 === _jd_){ - if(typeof b$0 !== "number" && 3654863 === b$0[1]){ - var b$2 = b$0[2], a$2 = a$0[2]; - return caml_equal(a$2, b$2); - } - } - else if - (365180284 === _jd_ - && typeof b$0 !== "number" && 365180284 === b$0[1]){ - var b$3 = b$0[2], a$3 = a$0[2]; - return caml_equal(a$3, b$3); - } - } - else - if(-976970511 === _jd_){ - if(typeof b$0 !== "number" && -976970511 === b$0[1]){ - var b$4 = b$0[2], a$4 = a$0[2]; - return caml_equal(a$4, b$4); - } - } - else if - (-752863768 <= _jd_ - && typeof b$0 !== "number" && -752863768 === b$0[1]){ - var b$5 = b$0[2], a$5 = a$0[2]; - return caml_equal(a$5, b$5); - } - } - return 0; - } - } - function pretty_print$1(std, out, x){return pp$3(std, out, x);} - function pretty_to_string$1(std, x){ - function _ja_(_jb_, _jc_){return pp$3(std, _jb_, _jc_);} - return caml_call3(Stdlib_Format[133], _cv_, _ja_, x); - } - function pretty_to_channel$1(std, oc, x){ - var fmt = caml_call1(Stdlib_Format[108], oc); - function _i9_(_i__, _i$_){return pp$3(std, _i__, _i$_);} - return caml_call4(Stdlib_Format[129], fmt, _cw_, _i9_, x); - } - var - from_channel$1 = Stdlib_Lexing[2], - from_string$1 = Stdlib_Lexing[3], - lexeme$0 = Stdlib_Lexing[8], - sub_lexeme$0 = Stdlib_Lexing[16], - sub_lexeme_char$0 = Stdlib_Lexing[18]; - function hex$3(c){ - if(65 <= c){ - if(97 <= c){ - if(103 > c) return (c - 97 | 0) + 10 | 0; - } - else if(71 > c) return (c - 65 | 0) + 10 | 0; - } - else if(9 >= c - 48 >>> 0) return c - 48 | 0; - throw caml_maybe_attach_backtrace([0, Assert_failure, _da_], 1); - } - function custom_error$0(descr, v, lexbuf){ - var - offs = lexbuf[4] - 1 | 0, - bol = v[3], - pos1 = ((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, - pos2 = caml_call2(Stdlib[17], pos1, (offs + lexbuf[6] | 0) - bol | 0), - match = v[4]; - if(match) - var s = match[1], file_line = caml_call2(Stdlib_Printf[4], _db_, s); - else - var file_line = cst_Line$0; - var - bytes = - pos1 === pos2 - ? caml_call2(Stdlib_Printf[4], _dc_, pos1 + 1 | 0) - : caml_call3(Stdlib_Printf[4], _de_, pos1 + 1 | 0, pos2 + 1 | 0), - msg = caml_call5(Stdlib_Printf[4], _dd_, file_line, v[2], bytes, descr); - return json_error(msg); - } - function lexer_error$0(descr, v, lexbuf){ - var _i8_ = caml_call1(lexeme$0, lexbuf); - return custom_error$0 - (caml_call3(Stdlib_Printf[4], _df_, descr, _i8_), v, lexbuf); - } - var - read_junk$0 = + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _G_= [0, - function(param){ - throw caml_maybe_attach_backtrace([0, Assert_failure, _dg_], 1); - }]; - function long_error$0(descr, v, lexbuf){ + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _H_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _I_= + [0, + [11, + caml_string_of_jsbytes("`Floatlit ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Floatlit (@[")], + _J_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _K_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _L_= + [0, + [11, + caml_string_of_jsbytes("`List ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`List (@[")], + _M_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _O_= + [0, + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _P_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _Q_= + [0, + [11, + caml_string_of_jsbytes("`Bool ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Bool (@[")], + _R_=[0,[9,0,0],caml_string_of_jsbytes("%B")], + _S_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _T_= + [0, + [11, + caml_string_of_jsbytes("`Tuple ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Tuple (@[")], + _U_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _W_= + [0, + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _X_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _Y_= + [0, + [11, + caml_string_of_jsbytes("`Variant ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Variant (@[")], + _Z_= + [0, + [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], + caml_string_of_jsbytes("(@[")], + ___=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _$_= + [0, + [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(",@ ")], + _aa_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _ab_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _af_= + [0, + [11, + caml_string_of_jsbytes("`Float ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Float (@[")], + _ag_=[0,[8,[0,0,5],0,0,0],caml_string_of_jsbytes("%F")], + _ah_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _ai_= + [0, + [11, + caml_string_of_jsbytes("`Int ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Int (@[")], + _aj_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], + _ak_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _al_= + [0, + [11, + caml_string_of_jsbytes("`Stringlit ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Stringlit (@[")], + _am_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _an_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _ao_= + [0, + [11, + caml_string_of_jsbytes("`String ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`String (@[")], + _ap_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _aq_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _ac_= + [0, + [11, + caml_string_of_jsbytes("`Intlit ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Intlit (@[")], + _ad_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _ae_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _d2_= + [0, + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _dU_= + [0, + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _dI_= + [0, + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _dJ_= + [0, + [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], + caml_string_of_jsbytes("(@[")], + _dK_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _dL_= + [0, + [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(",@ ")], + _dM_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _dG_= + [0, + [11, + caml_string_of_jsbytes("`Assoc ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Assoc (@[")], + _dH_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _dN_= + [0, + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _dO_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _dP_= + [0, + [11, + caml_string_of_jsbytes("`Floatlit ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Floatlit (@[")], + _dQ_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _dR_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _dS_= + [0, + [11, + caml_string_of_jsbytes("`List ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`List (@[")], + _dT_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _dV_= + [0, + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _dW_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _dX_= + [0, + [11, + caml_string_of_jsbytes("`Bool ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Bool (@[")], + _dY_=[0,[9,0,0],caml_string_of_jsbytes("%B")], + _dZ_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _d0_= + [0, + [11, + caml_string_of_jsbytes("`Tuple ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Tuple (@[")], + _d1_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _d3_= + [0, + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _d4_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _d5_= + [0, + [11, + caml_string_of_jsbytes("`Variant ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Variant (@[")], + _d6_= + [0, + [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], + caml_string_of_jsbytes("(@[")], + _d7_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _d8_= + [0, + [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(",@ ")], + _d9_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _d__=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _d$_= + [0, + [11, + caml_string_of_jsbytes("`Stringlit ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Stringlit (@[")], + _ea_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _eb_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _ec_= + [0, + [11, + caml_string_of_jsbytes("`Intlit ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Intlit (@[")], + _ed_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _ee_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _eq_=[0,737456202,1], + _er_=[0,737456202,0], + _es_=[0,928231259,caml_string_of_jsbytes("NaN")], + _et_=[0,928231259,caml_string_of_jsbytes("Infinity")], + _eu_=[0,928231259,caml_string_of_jsbytes("-Infinity")], + _en_= + [0, + [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[2,0,[12,39,0]]]]], + caml_string_of_jsbytes("%s '%s%s'")], + _em_=[0,caml_string_of_jsbytes("lib/read.mll"),72,32], + _el_= + [0, + [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[12,39,0]]]], + caml_string_of_jsbytes("%s '%s'")], + _eh_= + [0, + [11, + caml_string_of_jsbytes("File "), + [2,0,[11,caml_string_of_jsbytes(", line"),0]]], + caml_string_of_jsbytes("File %s, line")], + _ei_= + [0, + [11,caml_string_of_jsbytes("byte "),[4,3,0,0,0]], + caml_string_of_jsbytes("byte %i")], + _ek_= + [0, + [11,caml_string_of_jsbytes("bytes "),[4,3,0,0,[12,45,[4,3,0,0,0]]]], + caml_string_of_jsbytes("bytes %i-%i")], + _ej_= + [0, + [2, + 0, + [12, + 32, + [4, + 3, + 0, + 0, + [11, + caml_string_of_jsbytes(", "), + [2,0,[11,caml_string_of_jsbytes(":\n"),[2,0,0]]]]]]], + caml_string_of_jsbytes("%s %i, %s:\n%s")], + _eg_=[0,caml_string_of_jsbytes("lib/read.mll"),44,13], + _ef_=[0,[15,0],caml_string_of_jsbytes("%a")], + _dq_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _dr_= + [0, + [12, + 123, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], + caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], + _ds_=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _dt_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _du_= + [0, + [12, + 91, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15, + [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], + caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], + _dw_= + [0, + [12, + 91, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15, + [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], + caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], + _dv_=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _dx_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _dy_= + [0, + [12, + 40, + [17, + [0,caml_string_of_jsbytes("@,"),0,0], + [15,[17,[0,caml_string_of_jsbytes("@;<0 -2>"),0,-2],[12,41,0]]]]], + caml_string_of_jsbytes("(@,%a@;<0 -2>)")], + _dz_=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _dA_= + [0, + [12, + 60, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,[12,62,0]]]]]]], + caml_string_of_jsbytes("<@[%s: %a@]>")], + _dB_=[0,[12,60,[2,0,[12,62,0]]],caml_string_of_jsbytes("<%s>")], + _dC_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], + caml_string_of_jsbytes("@[%s: %a@]")], + _dF_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], + _dE_=[0,[15,0],caml_string_of_jsbytes("%a")], + _dD_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15,[17,0,0]]], + caml_string_of_jsbytes("@[%a@]")], + _dp_= + [0, + [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes("%s@ ")], + _dm_= + [0, + [11, + caml_string_of_jsbytes("src="), + [3, + 0, + [11, + caml_string_of_jsbytes(" start="), + [4, + 3, + 0, + 0, + [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], + caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], + _cz_= + [0, + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _cN_= + [0, + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _cE_= + [0, + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _cF_= + [0, + [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], + caml_string_of_jsbytes("(@[")], + _cG_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _cH_= + [0, + [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(",@ ")], + _cI_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _cC_= + [0, + [11, + caml_string_of_jsbytes("`Assoc ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Assoc (@[")], + _cD_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _cJ_= + [0, + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _cK_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _cL_= + [0, + [11, + caml_string_of_jsbytes("`List ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`List (@[")], + _cM_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _cO_= + [0, + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _cP_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _cQ_= + [0, + [11, + caml_string_of_jsbytes("`Bool ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Bool (@[")], + _cR_=[0,[9,0,0],caml_string_of_jsbytes("%B")], + _cS_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _cT_= + [0, + [11, + caml_string_of_jsbytes("`Variant ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Variant (@[")], + _cU_= + [0, + [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], + caml_string_of_jsbytes("(@[")], + _cV_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _cW_= + [0, + [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(",@ ")], + _cX_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _cY_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _cx_= + [0, + [11, + caml_string_of_jsbytes("`Tuple ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Tuple (@[")], + _cy_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _cA_= + [0, + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _cB_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _cZ_= + [0, + [11, + caml_string_of_jsbytes("`Float ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Float (@[")], + _c0_=[0,[8,[0,0,5],0,0,0],caml_string_of_jsbytes("%F")], + _c1_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _c2_= + [0, + [11, + caml_string_of_jsbytes("`Int ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Int (@[")], + _c3_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], + _c4_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _c5_= + [0, + [11, + caml_string_of_jsbytes("`Intlit ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Intlit (@[")], + _c6_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _c7_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _c8_= + [0, + [11, + caml_string_of_jsbytes("`String ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`String (@[")], + _c9_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _c__=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _dk_=[0,737456202,1], + _dl_=[0,737456202,0], + _dh_= + [0, + [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[2,0,[12,39,0]]]]], + caml_string_of_jsbytes("%s '%s%s'")], + _dg_=[0,caml_string_of_jsbytes("lib/read.mll"),72,32], + _df_= + [0, + [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[12,39,0]]]], + caml_string_of_jsbytes("%s '%s'")], + _db_= + [0, + [11, + caml_string_of_jsbytes("File "), + [2,0,[11,caml_string_of_jsbytes(", line"),0]]], + caml_string_of_jsbytes("File %s, line")], + _dc_= + [0, + [11,caml_string_of_jsbytes("byte "),[4,3,0,0,0]], + caml_string_of_jsbytes("byte %i")], + _de_= + [0, + [11,caml_string_of_jsbytes("bytes "),[4,3,0,0,[12,45,[4,3,0,0,0]]]], + caml_string_of_jsbytes("bytes %i-%i")], + _dd_= + [0, + [2, + 0, + [12, + 32, + [4, + 3, + 0, + 0, + [11, + caml_string_of_jsbytes(", "), + [2,0,[11,caml_string_of_jsbytes(":\n"),[2,0,0]]]]]]], + caml_string_of_jsbytes("%s %i, %s:\n%s")], + _da_=[0,caml_string_of_jsbytes("lib/read.mll"),44,13], + _c$_=[0,[15,0],caml_string_of_jsbytes("%a")], + _ck_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _cl_= + [0, + [12, + 123, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], + caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], + _cm_=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _cn_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _co_= + [0, + [12, + 91, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15, + [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], + caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], + _cq_= + [0, + [12, + 91, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15, + [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], + caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], + _cp_=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _cr_= + [0, + [12, + 60, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,[12,62,0]]]]]]], + caml_string_of_jsbytes("<@[%s: %a@]>")], + _cs_=[0,[12,60,[2,0,[12,62,0]]],caml_string_of_jsbytes("<%s>")], + _ch_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _ci_= + [0, + [12, + 40, + [17, + [0,caml_string_of_jsbytes("@,"),0,0], + [15,[17,[0,caml_string_of_jsbytes("@;<0 -2>"),0,-2],[12,41,0]]]]], + caml_string_of_jsbytes("(@,%a@;<0 -2>)")], + _cj_=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _ct_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], + caml_string_of_jsbytes("@[%s: %a@]")], + _cw_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], + _cv_=[0,[15,0],caml_string_of_jsbytes("%a")], + _cu_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15,[17,0,0]]], + caml_string_of_jsbytes("@[%a@]")], + _cg_= + [0, + [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes("%s@ ")], + _ce_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], + _cf_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], + _bZ_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], + _b0_=[0,[8,[0,0,3],0,[0,1],0],caml_string_of_jsbytes("%.1g")], + _b1_=[0,[8,[0,0,3],0,[0,2],0],caml_string_of_jsbytes("%.2g")], + _b2_=[0,[8,[0,0,3],0,[0,3],0],caml_string_of_jsbytes("%.3g")], + _b3_=[0,[8,[0,0,3],0,[0,4],0],caml_string_of_jsbytes("%.4g")], + _b4_=[0,[8,[0,0,3],0,[0,5],0],caml_string_of_jsbytes("%.5g")], + _b5_=[0,[8,[0,0,3],0,[0,6],0],caml_string_of_jsbytes("%.6g")], + _b6_=[0,[8,[0,0,3],0,[0,7],0],caml_string_of_jsbytes("%.7g")], + _b7_=[0,[8,[0,0,3],0,[0,8],0],caml_string_of_jsbytes("%.8g")], + _b8_=[0,[8,[0,0,3],0,[0,9],0],caml_string_of_jsbytes("%.9g")], + _b9_=[0,[8,[0,0,3],0,[0,10],0],caml_string_of_jsbytes("%.10g")], + _b__=[0,[8,[0,0,3],0,[0,11],0],caml_string_of_jsbytes("%.11g")], + _b$_=[0,[8,[0,0,3],0,[0,12],0],caml_string_of_jsbytes("%.12g")], + _ca_=[0,[8,[0,0,3],0,[0,13],0],caml_string_of_jsbytes("%.13g")], + _cb_=[0,[8,[0,0,3],0,[0,14],0],caml_string_of_jsbytes("%.14g")], + _cc_=[0,[8,[0,0,3],0,[0,15],0],caml_string_of_jsbytes("%.15g")], + _cd_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], + _bX_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], + _bY_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], + _bU_= + [0, + [11, + caml_string_of_jsbytes("src="), + [3, + 0, + [11, + caml_string_of_jsbytes(" start="), + [4, + 3, + 0, + 0, + [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], + caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], + _bs_= + [0, + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _bj_= + [0, + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _bk_= + [0, + [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], + caml_string_of_jsbytes("(@[")], + _bl_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _bm_= + [0, + [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(",@ ")], + _bn_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _bh_= + [0, + [11, + caml_string_of_jsbytes("`Assoc ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Assoc (@[")], + _bi_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _bo_= + [0, + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _bp_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _bq_= + [0, + [11, + caml_string_of_jsbytes("`List ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`List (@[")], + _br_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes("<2>"),0], + caml_string_of_jsbytes("<2>")]], + [12,91,0]], + caml_string_of_jsbytes("@[<2>[")], + _bt_= + [0, + [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], + caml_string_of_jsbytes("@,]@]")], + _bu_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _bv_= + [0, + [11, + caml_string_of_jsbytes("`Bool ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Bool (@[")], + _bw_=[0,[9,0,0],caml_string_of_jsbytes("%B")], + _bx_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _by_= + [0, + [11, + caml_string_of_jsbytes("`Float ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Float (@[")], + _bz_=[0,[8,[0,0,5],0,0,0],caml_string_of_jsbytes("%F")], + _bA_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _bB_= + [0, + [11, + caml_string_of_jsbytes("`Int ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`Int (@[")], + _bC_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], + _bD_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _bE_= + [0, + [11, + caml_string_of_jsbytes("`String ("), + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0]], + caml_string_of_jsbytes("`String (@[")], + _bF_=[0,[3,0,0],caml_string_of_jsbytes("%S")], + _bG_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], + _bS_=[0,737456202,1], + _bT_=[0,737456202,0], + _bP_= + [0, + [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[2,0,[12,39,0]]]]], + caml_string_of_jsbytes("%s '%s%s'")], + _bO_=[0,caml_string_of_jsbytes("lib/read.mll"),72,32], + _bN_= + [0, + [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[12,39,0]]]], + caml_string_of_jsbytes("%s '%s'")], + _bJ_= + [0, + [11, + caml_string_of_jsbytes("File "), + [2,0,[11,caml_string_of_jsbytes(", line"),0]]], + caml_string_of_jsbytes("File %s, line")], + _bK_= + [0, + [11,caml_string_of_jsbytes("byte "),[4,3,0,0,0]], + caml_string_of_jsbytes("byte %i")], + _bM_= + [0, + [11,caml_string_of_jsbytes("bytes "),[4,3,0,0,[12,45,[4,3,0,0,0]]]], + caml_string_of_jsbytes("bytes %i-%i")], + _bL_= + [0, + [2, + 0, + [12, + 32, + [4, + 3, + 0, + 0, + [11, + caml_string_of_jsbytes(", "), + [2,0,[11,caml_string_of_jsbytes(":\n"),[2,0,0]]]]]]], + caml_string_of_jsbytes("%s %i, %s:\n%s")], + _bI_=[0,caml_string_of_jsbytes("lib/read.mll"),44,13], + _bH_=[0,[15,0],caml_string_of_jsbytes("%a")], + _a8_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _a9_= + [0, + [12, + 123, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], + caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], + _a__=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _a$_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _ba_= + [0, + [12, + 91, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15, + [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], + caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], + _bc_= + [0, + [12, + 91, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15, + [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], + caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], + _bb_=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _bd_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], + caml_string_of_jsbytes("@[%s: %a@]")], + _bg_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], + _bf_=[0,[15,0],caml_string_of_jsbytes("%a")], + _be_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15,[17,0,0]]], + caml_string_of_jsbytes("@[%a@]")], + _a7_= + [0, + [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes("%s@ ")], + _a5_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], + _a6_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], + _aO_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], + _aP_=[0,[8,[0,0,3],0,[0,1],0],caml_string_of_jsbytes("%.1g")], + _aQ_=[0,[8,[0,0,3],0,[0,2],0],caml_string_of_jsbytes("%.2g")], + _aR_=[0,[8,[0,0,3],0,[0,3],0],caml_string_of_jsbytes("%.3g")], + _aS_=[0,[8,[0,0,3],0,[0,4],0],caml_string_of_jsbytes("%.4g")], + _aT_=[0,[8,[0,0,3],0,[0,5],0],caml_string_of_jsbytes("%.5g")], + _aU_=[0,[8,[0,0,3],0,[0,6],0],caml_string_of_jsbytes("%.6g")], + _aV_=[0,[8,[0,0,3],0,[0,7],0],caml_string_of_jsbytes("%.7g")], + _aW_=[0,[8,[0,0,3],0,[0,8],0],caml_string_of_jsbytes("%.8g")], + _aX_=[0,[8,[0,0,3],0,[0,9],0],caml_string_of_jsbytes("%.9g")], + _aY_=[0,[8,[0,0,3],0,[0,10],0],caml_string_of_jsbytes("%.10g")], + _aZ_=[0,[8,[0,0,3],0,[0,11],0],caml_string_of_jsbytes("%.11g")], + _a0_=[0,[8,[0,0,3],0,[0,12],0],caml_string_of_jsbytes("%.12g")], + _a1_=[0,[8,[0,0,3],0,[0,13],0],caml_string_of_jsbytes("%.13g")], + _a2_=[0,[8,[0,0,3],0,[0,14],0],caml_string_of_jsbytes("%.14g")], + _a3_=[0,[8,[0,0,3],0,[0,15],0],caml_string_of_jsbytes("%.15g")], + _a4_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], + _aM_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], + _aN_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], + _aJ_= + [0, + [11, + caml_string_of_jsbytes("src="), + [3, + 0, + [11, + caml_string_of_jsbytes(" start="), + [4, + 3, + 0, + 0, + [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], + caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], + _at_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _au_= + [0, + [12, + 123, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], + caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], + _av_=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _aw_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _ax_= + [0, + [12, + 91, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15, + [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], + caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], + _az_= + [0, + [12, + 91, + [17, + [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15, + [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], + caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], + _ay_=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _aA_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + 0], + caml_string_of_jsbytes("@[")], + _aB_= + [0, + [12, + 40, + [17, + [0,caml_string_of_jsbytes("@,"),0,0], + [15,[17,[0,caml_string_of_jsbytes("@;<0 -2>"),0,-2],[12,41,0]]]]], + caml_string_of_jsbytes("(@,%a@;<0 -2>)")], + _aC_=[0,[17,0,0],caml_string_of_jsbytes("@]")], + _aD_= + [0, + [12, + 60, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,[12,62,0]]]]]]], + caml_string_of_jsbytes("<@[%s: %a@]>")], + _aE_=[0,[12,60,[2,0,[12,62,0]]],caml_string_of_jsbytes("<%s>")], + _aF_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], + caml_string_of_jsbytes("@[%s: %a@]")], + _aI_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], + _aH_=[0,[15,0],caml_string_of_jsbytes("%a")], + _aG_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15,[17,0,0]]], + caml_string_of_jsbytes("@[%a@]")], + _as_= + [0, + [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes("%s@ ")], + _ar_=[0,[15,0],caml_string_of_jsbytes("%a")], + _x_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], + _y_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], + _g_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], + _h_=[0,[8,[0,0,3],0,[0,1],0],caml_string_of_jsbytes("%.1g")], + _i_=[0,[8,[0,0,3],0,[0,2],0],caml_string_of_jsbytes("%.2g")], + _j_=[0,[8,[0,0,3],0,[0,3],0],caml_string_of_jsbytes("%.3g")], + _k_=[0,[8,[0,0,3],0,[0,4],0],caml_string_of_jsbytes("%.4g")], + _l_=[0,[8,[0,0,3],0,[0,5],0],caml_string_of_jsbytes("%.5g")], + _m_=[0,[8,[0,0,3],0,[0,6],0],caml_string_of_jsbytes("%.6g")], + _n_=[0,[8,[0,0,3],0,[0,7],0],caml_string_of_jsbytes("%.7g")], + _o_=[0,[8,[0,0,3],0,[0,8],0],caml_string_of_jsbytes("%.8g")], + _p_=[0,[8,[0,0,3],0,[0,9],0],caml_string_of_jsbytes("%.9g")], + _q_=[0,[8,[0,0,3],0,[0,10],0],caml_string_of_jsbytes("%.10g")], + _r_=[0,[8,[0,0,3],0,[0,11],0],caml_string_of_jsbytes("%.11g")], + _s_=[0,[8,[0,0,3],0,[0,12],0],caml_string_of_jsbytes("%.12g")], + _t_=[0,[8,[0,0,3],0,[0,13],0],caml_string_of_jsbytes("%.13g")], + _u_=[0,[8,[0,0,3],0,[0,14],0],caml_string_of_jsbytes("%.14g")], + _v_=[0,[8,[0,0,3],0,[0,15],0],caml_string_of_jsbytes("%.15g")], + _w_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], + _e_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], + _f_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], + _b_= + [0, + [11, + caml_string_of_jsbytes("src="), + [3, + 0, + [11, + caml_string_of_jsbytes(" start="), + [4, + 3, + 0, + 0, + [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], + caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], + _a_=[0,caml_string_of_jsbytes("common.ml"),57,4]; + function json_error(s){throw [0,Json_error,s]} var - junk = caml_call1(lexeme$0, lexbuf), - extra_junk = caml_call1(read_junk$0[1], lexbuf); - return custom_error$0 - (caml_call4(Stdlib_Printf[4], _dh_, descr, junk, extra_junk), - v, - lexbuf); - } - var - _di_ = 0 === (Stdlib[20] % 10 | 0) ? 0 : 1, - min10$0 = (Stdlib[20] / 10 | 0) - _di_ | 0, - _dj_ = 0 === (Stdlib[19] % 10 | 0) ? 0 : 1, - max10$0 = (Stdlib[19] / 10 | 0) + _dj_ | 0, - Int_overflow$0 = [248, cst_Yojson_Safe_Int_overflow, caml_fresh_oo_id(0)]; - function extract_positive_int$0(lexbuf){ + End_of_array=[248,cst_Yojson_End_of_array,caml_fresh_oo_id(0)], + End_of_object=[248,cst_Yojson_End_of_object,caml_fresh_oo_id(0)], + End_of_tuple=[248,cst_Yojson_End_of_tuple,caml_fresh_oo_id(0)], + End_of_input=[248,cst_Yojson_End_of_input,caml_fresh_oo_id(0)]; + function utf8_of_code(buf,x) + {var add=Stdlib_Buffer[12]; + function maxbits(n,x){return 0 === (x >>> n | 0)?1:0} + if(maxbits(7,x))return caml_call2(add,buf,caml_call1(Stdlib_Char[1],x)); + if(maxbits(11,x)) + {caml_call2 + (add,buf,caml_call1(Stdlib_Char[1],192 | (x >>> 6 | 0) & 31)); + return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} + if(maxbits(16,x)) + {caml_call2 + (add,buf,caml_call1(Stdlib_Char[1],224 | (x >>> 12 | 0) & 15)); + caml_call2 + (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); + return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} + if(maxbits(21,x)) + {caml_call2 + (add,buf,caml_call1(Stdlib_Char[1],240 | (x >>> 18 | 0) & 7)); + caml_call2 + (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 12 | 0) & 63)); + caml_call2 + (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); + return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} + if(maxbits(26,x)) + {caml_call2 + (add,buf,caml_call1(Stdlib_Char[1],248 | (x >>> 24 | 0) & 3)); + caml_call2 + (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 18 | 0) & 63)); + caml_call2 + (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 12 | 0) & 63)); + caml_call2 + (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); + return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} + if(! maxbits(31,x))throw [0,Assert_failure,_a_]; + caml_call2(add,buf,caml_call1(Stdlib_Char[1],252 | (x >>> 30 | 0) & 1)); + caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 24 | 0) & 63)); + caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 18 | 0) & 63)); + caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 12 | 0) & 63)); + caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); + return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} + function utf8_of_surrogate_pair(buf,i,j) + {var high10=i - 55296 | 0,low10=j - 56320 | 0; + return utf8_of_code(buf,65536 + (high10 << 10 | low10) | 0)} + var Lexer_state=[0]; + function init_lexer(buf,fname,opt,param) + {if(opt)var sth=opt[1],lnum=sth;else var lnum=1; + if(buf) + var buf$0=buf[1],buf$1=buf$0; + else + var buf$1=caml_call1(Stdlib_Buffer[1],256); + return [0,buf$1,lnum,0,fname]} + function hex(n) + {var _pl_=10 <= n?n + 87 | 0:n + 48 | 0; + return caml_call1(Stdlib_Char[1],_pl_)} + function write_special(src,start,stop,ob,str) + {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16],ob,str); + start[1] = stop + 1 | 0; + return 0} + function finish_string(src,start,ob) + {try + {var + _pk_= + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + return _pk_} + catch(exc) + {exc = caml_wrap_exception(exc); + caml_call4 + (Stdlib_Printf[3], + _b_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw exc}} + function write_string(ob,s) + {caml_call2(Stdlib_Buffer[12],ob,34); + var start=[0,0],_pi_=caml_ml_string_length(s) - 1 | 0,_ph_=0; + if(_pi_ >= 0) + {var i=_ph_; + for(;;) + {var c=caml_string_get(s,i); + if(92 === c) + write_special(s,start,i,ob,cst); + else + {var switch$0=0; + if(35 <= c) + if(127 === c)switch$0 = 1;else switch$0 = 2; + else + if(8 <= c) + {var switch$1=0; + switch(c - 8 | 0) + {case 0:write_special(s,start,i,ob,cst_b);break; + case 1:write_special(s,start,i,ob,cst_t);break; + case 2:write_special(s,start,i,ob,cst_n);break; + case 4:write_special(s,start,i,ob,cst_f);break; + case 5:write_special(s,start,i,ob,cst_r);break; + case 26:write_special(s,start,i,ob,cst$0);break; + case 24: + case 25:switch$0 = 2;switch$1 = 1;break; + default:switch$0 = 1;switch$1 = 1}} + else + switch$0 = 1; + switch(switch$0) + {case 2:break; + case 1: + caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); + caml_call2(Stdlib_Buffer[16],ob,cst_u00); + var _pf_=hex(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12],ob,_pf_); + var _pg_=hex(c & 15); + caml_call2(Stdlib_Buffer[12],ob,_pg_); + start[1] = i + 1 | 0; + break + }} + var _pj_=i + 1 | 0; + if(_pi_ !== i){var i=_pj_;continue} + break}} + finish_string(s,start,ob); + return caml_call2(Stdlib_Buffer[12],ob,34)} + function json_string_of_string(s) + {var ob=caml_call1(Stdlib_Buffer[1],10); + write_string(ob,s); + return caml_call1(Stdlib_Buffer[2],ob)} + function write_null(ob,param) + {return caml_call2(Stdlib_Buffer[16],ob,cst_null)} + function write_bool(ob,x) + {var _pe_=x?cst_true:cst_false; + return caml_call2(Stdlib_Buffer[16],ob,_pe_)} var - start = lexbuf[5], - stop = lexbuf[6], - s = lexbuf[2], - n = [0, 0], - _i5_ = stop - 1 | 0; - if(_i5_ >= start){ - var i = start; - for(;;){ - if(max10$0 <= n[1]) - throw caml_maybe_attach_backtrace(Int_overflow$0, 1); - var _i6_ = caml_bytes_get(s, i) - 48 | 0; - n[1] = (10 * n[1] | 0) + _i6_ | 0; - var _i7_ = i + 1 | 0; - if(_i5_ !== i){var i = _i7_; continue;} - break; - } - } - if(0 <= n[1]) return n[1]; - throw caml_maybe_attach_backtrace(Int_overflow$0, 1); - } - function extract_negative_int$0(lexbuf){ + _c_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), + _d_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); + caml_call2(Stdlib[17],_d_,_c_); + function write_digits(s,x) + {if(0 === x)return 0; + var d=x % 10 | 0; + write_digits(s,x / 10 | 0); + var + n=caml_call1(Stdlib[18],d), + _pd_=caml_call1(Stdlib_Char[1],n + 48 | 0); + return caml_call2(Stdlib_Buffer[12],s,_pd_)} + function write_int(ob,x) + {return 0 < x + ?write_digits(ob,x) + :0 <= x + ?caml_call2(Stdlib_Buffer[12],ob,48) + :(caml_call2(Stdlib_Buffer[12],ob,45),write_digits(ob,x))} + function float_needs_period(s) + {try + {var _o$_=caml_ml_string_length(s) - 1 | 0,_o__=0; + if(_o$_ >= 0) + {var i=_o__; + for(;;) + {var match=caml_string_get(s,i),switch$0=0; + if(48 <= match) + {if(58 > match)switch$0 = 1} + else + if(45 === match)switch$0 = 1; + if(! switch$0)throw Stdlib[3]; + var _pb_=i + 1 | 0; + if(_o$_ !== i){var i=_pb_;continue} + break}} + var _pa_=1; + return _pa_} + catch(_pc_) + {_pc_ = caml_wrap_exception(_pc_); + if(_pc_ === Stdlib[3])return 0; + throw _pc_}} + function write_float(ob,x) + {var match=caml_classify_float(x); + if(3 === match) + {var _o8_=0. < x?cst_Infinity:cst_Infinity$0; + return caml_call2(Stdlib_Buffer[16],ob,_o8_)} + if(4 <= match)return caml_call2(Stdlib_Buffer[16],ob,cst_NaN); + var + s1=caml_call2(Stdlib_Printf[4],_e_,x), + s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_f_,x); + caml_call2(Stdlib_Buffer[16],ob,s); + var _o9_=float_needs_period(s); + return _o9_?caml_call2(Stdlib_Buffer[16],ob,cst_0):_o9_} + function write_normal_float_prec(significant_figures,ob,x) + {var switcher=significant_figures - 1 | 0; + if(15 < switcher >>> 0) + var s=caml_call2(Stdlib_Printf[4],_g_,x); + else + switch(switcher) + {case 0:var s=caml_call2(Stdlib_Printf[4],_h_,x);break; + case 1:var s=caml_call2(Stdlib_Printf[4],_i_,x);break; + case 2:var s=caml_call2(Stdlib_Printf[4],_j_,x);break; + case 3:var s=caml_call2(Stdlib_Printf[4],_k_,x);break; + case 4:var s=caml_call2(Stdlib_Printf[4],_l_,x);break; + case 5:var s=caml_call2(Stdlib_Printf[4],_m_,x);break; + case 6:var s=caml_call2(Stdlib_Printf[4],_n_,x);break; + case 7:var s=caml_call2(Stdlib_Printf[4],_o_,x);break; + case 8:var s=caml_call2(Stdlib_Printf[4],_p_,x);break; + case 9:var s=caml_call2(Stdlib_Printf[4],_q_,x);break; + case 10:var s=caml_call2(Stdlib_Printf[4],_r_,x);break; + case 11:var s=caml_call2(Stdlib_Printf[4],_s_,x);break; + case 12:var s=caml_call2(Stdlib_Printf[4],_t_,x);break; + case 13:var s=caml_call2(Stdlib_Printf[4],_u_,x);break; + case 14:var s=caml_call2(Stdlib_Printf[4],_v_,x);break; + default:var s=caml_call2(Stdlib_Printf[4],_w_,x)} + caml_call2(Stdlib_Buffer[16],ob,s); + var _o7_=float_needs_period(s); + return _o7_?caml_call2(Stdlib_Buffer[16],ob,cst_0$0):_o7_} + function write_float_prec(significant_figures,ob,x) + {var match=caml_classify_float(x); + if(3 !== match) + return 4 <= match + ?caml_call2(Stdlib_Buffer[16],ob,cst_NaN$0) + :write_normal_float_prec(significant_figures,ob,x); + var _o6_=0. < x?cst_Infinity$1:cst_Infinity$2; + return caml_call2(Stdlib_Buffer[16],ob,_o6_)} + function write_std_float(ob,x) + {var match=caml_classify_float(x); + if(3 === match) + {var + _o4_= + 0. < x + ?cst_Infinity_value_not_allowed + :cst_Infinity_value_not_allowed$0; + return json_error(_o4_)} + if(4 <= match)return json_error(cst_NaN_value_not_allowed_in_s); + var + s1=caml_call2(Stdlib_Printf[4],_x_,x), + s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_y_,x); + caml_call2(Stdlib_Buffer[16],ob,s); + var _o5_=float_needs_period(s); + return _o5_?caml_call2(Stdlib_Buffer[16],ob,cst_0$1):_o5_} + function write_std_float_prec(significant_figures,ob,x) + {var match=caml_classify_float(x); + if(3 !== match) + return 4 <= match + ?json_error(cst_NaN_value_not_allowed_in_s$0) + :write_normal_float_prec(significant_figures,ob,x); + var + _o3_= + 0. < x + ?cst_Infinity_value_not_allowed$1 + :cst_Infinity_value_not_allowed$2; + return json_error(_o3_)} var - start = lexbuf[5] + 1 | 0, - stop = lexbuf[6], - s = lexbuf[2], - n = [0, 0], - _i2_ = stop - 1 | 0; - if(_i2_ >= start){ - var i = start; - for(;;){ - if(n[1] <= min10$0) - throw caml_maybe_attach_backtrace(Int_overflow$0, 1); - var _i3_ = caml_bytes_get(s, i) - 48 | 0; - n[1] = (10 * n[1] | 0) - _i3_ | 0; - var _i4_ = i + 1 | 0; - if(_i2_ !== i){var i = _i4_; continue;} - break; - } - } - if(0 < n[1]) throw caml_maybe_attach_backtrace(Int_overflow$0, 1); - return n[1]; - } - function newline$0(v, lexbuf){ - v[2] = v[2] + 1 | 0; - v[3] = lexbuf[4] + lexbuf[6] | 0; - return 0; - } - function add_lexeme$0(buf, lexbuf){ - var len = lexbuf[6] - lexbuf[5] | 0; - return caml_call4(Stdlib_Buffer[19], buf, lexbuf[2], lexbuf[5], len); - } - function read_json$0(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 0; - for(;;){ + write_intlit=Stdlib_Buffer[16], + write_floatlit=Stdlib_Buffer[16], + write_stringlit=Stdlib_Buffer[16]; + function iter2(f_elt,f_sep,x,param$0) + {if(! param$0)return 0; + var l$0=param$0[2],y$0=param$0[1]; + caml_call2(f_elt,x,y$0); + var param=l$0; + for(;;) + {if(! param)return 0; + var l=param[2],y=param[1]; + caml_call1(f_sep,x); + caml_call2(f_elt,x,y); + var param=l}} + function f_sep(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} + function write_variant(ob,s,o) + {caml_call2(Stdlib_Buffer[12],ob,60); + write_string(ob,s); + if(o){var x=o[1];caml_call2(Stdlib_Buffer[12],ob,58);write_t(ob,x)} + return caml_call2(Stdlib_Buffer[12],ob,62)} + function write_tuple(ob,l) + {caml_call2(Stdlib_Buffer[12],ob,40); + iter2(write_t,f_sep,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,41)} + function write_list(ob,l) + {caml_call2(Stdlib_Buffer[12],ob,91); + iter2(write_t,f_sep,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,93)} + function write_assoc(ob,l) + {function f_elt(ob,param) + {var x=param[2],s=param[1]; + write_string(ob,s); + caml_call2(Stdlib_Buffer[12],ob,58); + return write_t(ob,x)} + caml_call2(Stdlib_Buffer[12],ob,123); + iter2(f_elt,f_sep,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,125)} + function write_t(ob,x) + {if(typeof x === "number")return write_null(ob,0); + var _o2_=x[1]; + if(708012133 <= _o2_) + {if(737456202 > _o2_) + {if(726928360 <= _o2_){var l$1=x[2];return write_tuple(ob,l$1)} + var match=x[2],o=match[2],s$0=match[1]; + return write_variant(ob,s$0,o)} + if(928231259 <= _o2_) + {if(963043957 <= _o2_){var l=x[2];return write_assoc(ob,l)} + var s=x[2]; + return caml_call2(Stdlib_Buffer[16],ob,s)} + if(848054398 <= _o2_){var l$0=x[2];return write_list(ob,l$0)} + var b=x[2]; + return write_bool(ob,b)} + if(-752863768 === _o2_) + {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} + if(3654863 <= _o2_) + {if(365180284 <= _o2_){var f=x[2];return write_float(ob,f)} + var i=x[2]; + return write_int(ob,i)} + if(-375152890 <= _o2_) + {var s$2=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$2)} + var s$3=x[2]; + return write_string(ob,s$3)} + function write_std_variant(ob,s,o) + {if(! o)return write_string(ob,s); + var x=o[1]; + caml_call2(Stdlib_Buffer[12],ob,91); + write_string(ob,s); + caml_call2(Stdlib_Buffer[12],ob,44); + write_std_json(ob,x); + return caml_call2(Stdlib_Buffer[12],ob,93)} + function write_std_tuple(ob,l) + {caml_call2(Stdlib_Buffer[12],ob,91); + iter2(write_std_json,f_sep,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,93)} + function write_std_json(ob,x) + {if(typeof x === "number")return write_null(ob,0); + var _o1_=x[1]; + if(708012133 <= _o1_) + {if(737456202 > _o1_) + {if(726928360 <= _o1_){var l$1=x[2];return write_std_tuple(ob,l$1)} + var match=x[2],o=match[2],s$0=match[1]; + return write_std_variant(ob,s$0,o)} + if(928231259 <= _o1_) + {if(963043957 <= _o1_) + {var + l=x[2], + f_elt= + function(ob,param) + {var x=param[2],s=param[1]; + write_string(ob,s); + caml_call2(Stdlib_Buffer[12],ob,58); + return write_std_json(ob,x)}; + caml_call2(Stdlib_Buffer[12],ob,123); + iter2(f_elt,f_sep,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,125)} + var s=x[2]; + return caml_call2(Stdlib_Buffer[16],ob,s)} + if(848054398 <= _o1_) + {var l$0=x[2]; + caml_call2(Stdlib_Buffer[12],ob,91); + iter2(write_std_json,f_sep,ob,l$0); + return caml_call2(Stdlib_Buffer[12],ob,93)} + var b=x[2]; + return write_bool(ob,b)} + if(-752863768 === _o1_) + {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} + if(3654863 <= _o1_) + {if(365180284 <= _o1_){var f=x[2];return write_std_float(ob,f)} + var i=x[2]; + return write_int(ob,i)} + if(-375152890 <= _o1_) + {var s$2=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$2)} + var s$3=x[2]; + return write_string(ob,s$3)} + function to_buffer(opt,_o0_,ob,x) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$1; + if(_o0_)var sth$0=_o0_[1],std=sth$0;else var std=0; + if(std)write_std_json(ob,x);else write_t(ob,x); + return caml_call2(Stdlib_Buffer[16],ob,suf)} + function to_string(buf,opt,_oZ_,std,x) + {if(opt)var sth=opt[1],len=sth;else var len=256; + if(_oZ_)var sth$0=_oZ_[1],suf=sth$0;else var suf=cst$2; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer([0,suf],std,ob$0,x); + var s=caml_call1(Stdlib_Buffer[2],ob$0); + caml_call1(Stdlib_Buffer[8],ob$0); + return s} + function to_channel(buf,opt,_oY_,std,oc,x) + {if(opt)var sth=opt[1],len=sth;else var len=4096; + if(_oY_)var sth$0=_oY_[1],suf=sth$0;else var suf=cst$3; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer([0,suf],std,ob$0,x); + caml_call2(Stdlib_Buffer[10],oc,ob$0); + return caml_call1(Stdlib_Buffer[8],ob$0)} + function to_output(buf,opt,_oW_,std,out,x) + {if(opt)var sth=opt[1],len=sth;else var len=4096; + if(_oW_)var sth$0=_oW_[1],suf=sth$0;else var suf=cst$4; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer([0,suf],std,ob$0,x); + var _oX_=caml_call1(Stdlib_Buffer[7],ob$0); + caml_call4 + (caml_get_public_method(out,209784577,1), + out, + caml_call1(Stdlib_Buffer[2],ob$0), + 0, + _oX_); + return caml_call1(Stdlib_Buffer[8],ob$0)} + function to_file(len,std,opt,file,x) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$5; + var oc=caml_call1(Stdlib[60],file); + try + {to_channel(0,len,[0,suf],std,oc,x); + var _oV_=caml_call1(Stdlib[76],oc); + return _oV_} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} + function seq_to_buffer(opt,std,ob,st) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$6; + var _oS_=[0,suf]; + function _oT_(_oU_){return to_buffer(_oS_,std,ob,_oU_)} + return caml_call2(Stdlib_Seq[4],_oT_,st)} + function seq_to_string(buf,opt,_oR_,std,st) + {if(opt)var sth=opt[1],len=sth;else var len=256; + if(_oR_)var sth$0=_oR_[1],suf=sth$0;else var suf=cst$7; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + seq_to_buffer([0,suf],std,ob$0,st); + var s=caml_call1(Stdlib_Buffer[2],ob$0); + caml_call1(Stdlib_Buffer[8],ob$0); + return s} + function seq_to_channel(buf,opt,_oP_,std,oc,seq) + {if(opt)var sth=opt[1],len=sth;else var len=2096; + if(_oP_)var sth$0=_oP_[1],suf=sth$0;else var suf=cst$8; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + function _oQ_(json) + {to_buffer([0,suf],std,ob$0,json); + caml_call2(Stdlib_Buffer[10],oc,ob$0); + return caml_call1(Stdlib_Buffer[8],ob$0)} + return caml_call2(Stdlib_Seq[4],_oQ_,seq)} + function seq_to_file(len,opt,std,file,st) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$9; + var oc=caml_call1(Stdlib[60],file); + try + {seq_to_channel(0,len,[0,suf],std,oc,st); + var _oO_=caml_call1(Stdlib[76],oc); + return _oO_} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} + function sort(x) + {if(typeof x !== "number") + {var _oF_=x[1]; + if(726928361 <= _oF_) + {if(848054398 === _oF_) + {var l=x[2],_oG_=caml_call2(Stdlib_List[21],sort,l); + return [0,848054398,caml_call1(Stdlib_List[9],_oG_)]} + if(963043957 === _oF_) + {var + l$0=x[2], + _oH_= + function(param){var v=param[2],k=param[1];return [0,k,sort(v)]}, + _oI_=caml_call2(Stdlib_List[21],_oH_,l$0), + l$1=caml_call1(Stdlib_List[9],_oI_), + _oJ_= + function(param,_oN_) + {var b=_oN_[1],a=param[1]; + return caml_call2(Stdlib_String[9],a,b)}; + return [0,963043957,caml_call2(Stdlib_List[57],_oJ_,l$1)]}} + else + if(708012133 === _oF_) + {var _oK_=x[2],_oL_=_oK_[2]; + if(_oL_) + {var v=_oL_[1],k=_oK_[1],v$0=sort(v); + return v === v$0?x:[0,708012133,[0,k,[0,v$0]]]}} + else + if(726928360 <= _oF_) + {var l$2=x[2],_oM_=caml_call2(Stdlib_List[21],sort,l$2); + return [0,726928360,caml_call1(Stdlib_List[9],_oM_)]}} + return x} + function pp(fmt,param) + {if(typeof param === "number") + return caml_call2(Stdlib_Format[13],fmt,cst_Null); + var _oy_=param[1]; + if(708012133 <= _oy_) + {if(737456202 > _oy_) + {if(726928360 <= _oy_) + {var tup=param[2]; + caml_call2(Stdlib_Format[129],fmt,_T_); + caml_call2(Stdlib_Format[129],fmt,_U_); + var + _oD_=0, + _oE_= + function(sep,e) + {if(sep)caml_call2(Stdlib_Format[129],fmt,_V_); + pp(fmt,e); + return 1}; + caml_call3(Stdlib_List[25],_oE_,_oD_,tup); + caml_call2(Stdlib_Format[129],fmt,_W_); + return caml_call2(Stdlib_Format[129],fmt,_X_)} + var match=param[2],value=match[2],name=match[1]; + caml_call2(Stdlib_Format[129],fmt,_Y_); + caml_call2(Stdlib_Format[129],fmt,_Z_); + caml_call3(Stdlib_Format[129],fmt,___,name); + caml_call2(Stdlib_Format[129],fmt,_$_); + if(value) + {var x$1=value[1]; + caml_call2(Stdlib_Format[13],fmt,cst_Some); + pp(fmt,x$1); + caml_call2(Stdlib_Format[13],fmt,cst$10)} + else + caml_call2(Stdlib_Format[13],fmt,cst_None); + caml_call2(Stdlib_Format[129],fmt,_aa_); + return caml_call2(Stdlib_Format[129],fmt,_ab_)} + if(928231259 <= _oy_) + {if(963043957 <= _oy_) + {var xs=param[2]; + caml_call2(Stdlib_Format[129],fmt,_z_); + caml_call2(Stdlib_Format[129],fmt,_A_); + var + _oz_=0, + _oA_= + function(sep,param) + {var value=param[2],key=param[1]; + if(sep)caml_call2(Stdlib_Format[129],fmt,_B_); + caml_call2(Stdlib_Format[129],fmt,_C_); + caml_call3(Stdlib_Format[129],fmt,_D_,key); + caml_call2(Stdlib_Format[129],fmt,_E_); + pp(fmt,value); + caml_call2(Stdlib_Format[129],fmt,_F_); + return 1}; + caml_call3(Stdlib_List[25],_oA_,_oz_,xs); + caml_call2(Stdlib_Format[129],fmt,_G_); + return caml_call2(Stdlib_Format[129],fmt,_H_)} + var x=param[2]; + caml_call2(Stdlib_Format[129],fmt,_I_); + caml_call3(Stdlib_Format[129],fmt,_J_,x); + return caml_call2(Stdlib_Format[129],fmt,_K_)} + if(848054398 <= _oy_) + {var xs$0=param[2]; + caml_call2(Stdlib_Format[129],fmt,_L_); + caml_call2(Stdlib_Format[129],fmt,_M_); + var + _oB_=0, + _oC_= + function(sep,x) + {if(sep)caml_call2(Stdlib_Format[129],fmt,_N_); + pp(fmt,x); + return 1}; + caml_call3(Stdlib_List[25],_oC_,_oB_,xs$0); + caml_call2(Stdlib_Format[129],fmt,_O_); + return caml_call2(Stdlib_Format[129],fmt,_P_)} + var x$0=param[2]; + caml_call2(Stdlib_Format[129],fmt,_Q_); + caml_call3(Stdlib_Format[129],fmt,_R_,x$0); + return caml_call2(Stdlib_Format[129],fmt,_S_)} + if(-752863768 === _oy_) + {var x$2=param[2]; + caml_call2(Stdlib_Format[129],fmt,_ac_); + caml_call3(Stdlib_Format[129],fmt,_ad_,x$2); + return caml_call2(Stdlib_Format[129],fmt,_ae_)} + if(3654863 <= _oy_) + {if(365180284 <= _oy_) + {var x$3=param[2]; + caml_call2(Stdlib_Format[129],fmt,_af_); + caml_call3(Stdlib_Format[129],fmt,_ag_,x$3); + return caml_call2(Stdlib_Format[129],fmt,_ah_)} + var x$4=param[2]; + caml_call2(Stdlib_Format[129],fmt,_ai_); + caml_call3(Stdlib_Format[129],fmt,_aj_,x$4); + return caml_call2(Stdlib_Format[129],fmt,_ak_)} + if(-375152890 <= _oy_) + {var x$5=param[2]; + caml_call2(Stdlib_Format[129],fmt,_al_); + caml_call3(Stdlib_Format[129],fmt,_am_,x$5); + return caml_call2(Stdlib_Format[129],fmt,_an_)} + var x$6=param[2]; + caml_call2(Stdlib_Format[129],fmt,_ao_); + caml_call3(Stdlib_Format[129],fmt,_ap_,x$6); + return caml_call2(Stdlib_Format[129],fmt,_aq_)} + function show(x){return caml_call3(Stdlib_Format[133],_ar_,pp,x)} + function equal(a,b) + {var a$0=a,b$0=b; + for(;;) + {if(typeof a$0 === "number") + {if(870828711 === a$0 && 870828711 === b$0)return 1} + else + {var _or_=a$0[1]; + if(708012133 <= _or_) + {var switch$0=0; + if(848054398 <= _or_) + {if(928231259 === _or_) + {if(typeof b$0 !== "number" && 928231259 === b$0[1]) + {var b$1=b$0[2],a$1=a$0[2];return caml_equal(a$1,b$1)}} + else + if(963043957 === _or_) + {if(typeof b$0 !== "number" && 963043957 === b$0[1]) + {var + ys=b$0[2], + xs=a$0[2], + compare_keys= + function(param,_ox_) + {var key=_ox_[1],key$0=param[1]; + return caml_call2(Stdlib_String[9],key$0,key)}, + xs$0=caml_call2(Stdlib_List[57],compare_keys,xs), + ys$0=caml_call2(Stdlib_List[57],compare_keys,ys); + try + {var + _os_= + function(param,_ow_) + {var + value=_ow_[2], + key=_ow_[1], + value$0=param[2], + key$0=param[1], + match=caml_string_equal(key$0,key); + return match?equal(value$0,value):0}, + result=caml_call3(Stdlib_List[34],_os_,xs$0,ys$0); + return result} + catch(_ov_) + {_ov_ = caml_wrap_exception(_ov_); + if(_ov_[1] === Stdlib[6])return 0; + throw _ov_}}} + else + if + (848054399 + > + _or_ + && + typeof b$0 + !== + "number" + && + 848054398 + === + b$0[1]) + {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} + else + if(726928360 === _or_) + {if(typeof b$0 !== "number" && 726928360 === b$0[1]) + {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} + else + if(737456202 === _or_) + {if(typeof b$0 !== "number" && 737456202 === b$0[1]) + {var b$2=b$0[2],a$2=a$0[2];return caml_equal(a$2,b$2)}} + else + if + (708012134 + > + _or_ + && + typeof b$0 + !== + "number" + && + 708012133 + === + b$0[1]) + {var + _ot_=b$0[2], + value=_ot_[2], + name=_ot_[1], + match=a$0[2], + value$0=match[2], + name$0=match[1], + match$0=caml_equal(name$0,name); + if(! match$0)return 0; + if(value$0) + {if(value) + {var b$3=value[1],a$3=value$0[1],a$0=a$3,b$0=b$3;continue}} + else + if(! value)return 1; + return 0} + if(switch$0) + try + {var result$0=caml_call3(Stdlib_List[34],equal,xs$1,ys$1); + return result$0} + catch(_ou_) + {_ou_ = caml_wrap_exception(_ou_); + if(_ou_[1] === Stdlib[6])return 0; + throw _ou_}} + else + if(-375152890 <= _or_) + {if(3654863 === _or_) + {if(typeof b$0 !== "number" && 3654863 === b$0[1]) + {var b$4=b$0[2],a$4=a$0[2];return caml_equal(a$4,b$4)}} + else + if(365180284 === _or_) + {if(typeof b$0 !== "number" && 365180284 === b$0[1]) + {var b$5=b$0[2],a$5=a$0[2];return caml_equal(a$5,b$5)}} + else + if + (-375152889 + > + _or_ + && + typeof b$0 + !== + "number" + && + -375152890 + === + b$0[1]) + {var b$6=b$0[2],a$6=a$0[2];return caml_equal(a$6,b$6)}} + else + if(-976970511 === _or_) + {if(typeof b$0 !== "number" && -976970511 === b$0[1]) + {var b$7=b$0[2],a$7=a$0[2];return caml_equal(a$7,b$7)}} + else + if + (-752863768 + === + _or_ + && + typeof b$0 + !== + "number" + && + -752863768 + === + b$0[1]) + {var b$8=b$0[2],a$8=a$0[2];return caml_equal(a$8,b$8)}} + return 0}} + function pp_list(sep,ppx,out,l) + {function pp_sep(out,param) + {return caml_call3(Stdlib_Format[129],out,_as_,sep)} + return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} + function is_atom(x) + {if(typeof x !== "number") + {var _oq_=x[1],switch$0=0; + if(737456202 <= _oq_) + {if(848054398 === _oq_) + {if(x[2])switch$0 = 1} + else + if(963043957 <= _oq_ && x[2])switch$0 = 1} + else + if(708012133 === _oq_) + {if(x[2][2])switch$0 = 1} + else + if(726928360 <= _oq_ && x[2])switch$0 = 1; + if(switch$0)return 0} + return 1} + function format(inside_box,std,out,x) + {var x$0=x; + for(;;) + {if(typeof x$0 === "number") + return caml_call2(Stdlib_Format[13],out,cst_null$0); + var _nJ_=x$0[1]; + if(708012133 > _nJ_) + {if(-752863768 === _nJ_) + {var s$0=x$0[2];return caml_call2(Stdlib_Format[13],out,s$0)} + if(3654863 <= _nJ_) + {if(365180284 > _nJ_) + {var x$7=x$0[2],_nI_=caml_call1(Stdlib[33],x$7); + return caml_call2(Stdlib_Format[13],out,_nI_)} + var x$6=x$0[2]; + if(std) + {var ob$0=caml_call1(Stdlib_Buffer[1],20); + write_std_float(ob$0,x$6); + var s$1=caml_call1(Stdlib_Buffer[2],ob$0)} + else + {var ob=caml_call1(Stdlib_Buffer[1],20); + write_float(ob,x$6); + var s$1=caml_call1(Stdlib_Buffer[2],ob)} + return caml_call2(Stdlib_Format[13],out,s$1)} + if(-375152890 <= _nJ_) + {var s$2=x$0[2];return caml_call2(Stdlib_Format[13],out,s$2)} + var s$3=x$0[2],_n6_=json_string_of_string(s$3); + return caml_call2(Stdlib_Format[13],out,_n6_)} + if(737456202 <= _nJ_) + {if(928231259 <= _nJ_) + {if(963043957 > _nJ_) + {var s=x$0[2];return caml_call2(Stdlib_Format[13],out,s)} + var _nK_=x$0[2]; + if(! _nK_)return caml_call2(Stdlib_Format[13],out,cst$12); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_at_); + var + _nL_= + function(out,param) + {var x=param[2],name=param[1],_ol_=1; + function _om_(_oo_,_op_){return format(_ol_,std,_oo_,_op_)} + var _on_=json_string_of_string(name); + return caml_call5(Stdlib_Format[129],out,_aF_,_on_,_om_,x)}, + _nM_=function(_oj_,_ok_){return pp_list(cst$11,_nL_,_oj_,_ok_)}; + caml_call4(Stdlib_Format[129],out,_au_,_nM_,_nK_); + var _nN_=1 - inside_box; + return _nN_?caml_call2(Stdlib_Format[129],out,_av_):_nN_} + if(848054398 > _nJ_) + {var x$1=x$0[2];return caml_call2(Stdlib_Format[25],out,x$1)} + var _nO_=x$0[2]; + if(! _nO_)return caml_call2(Stdlib_Format[13],out,cst$15); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_aw_); + if(caml_call2(Stdlib_List[32],is_atom,_nO_)) + {var + _nP_=0, + _nQ_=function(_od_,_oe_){return format(_nP_,std,_od_,_oe_)}, + _nR_=function(_ob_,_oc_){return pp_list(cst$13,_nQ_,_ob_,_oc_)}; + caml_call4(Stdlib_Format[129],out,_ax_,_nR_,_nO_)} + else + {var + _nT_=0, + _nU_=function(_oh_,_oi_){return format(_nT_,std,_oh_,_oi_)}, + _nV_=function(_of_,_og_){return pp_list(cst$14,_nU_,_of_,_og_)}; + caml_call4(Stdlib_Format[129],out,_az_,_nV_,_nO_)} + var _nS_=1 - inside_box; + return _nS_?caml_call2(Stdlib_Format[129],out,_ay_):_nS_} + if(726928360 <= _nJ_) + {var l=x$0[2]; + if(std){var x$2=[0,848054398,l],x$0=x$2;continue} + if(0 === l)return caml_call2(Stdlib_Format[13],out,cst$16); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_aA_); + var + _nW_=0, + _nX_=function(_n$_,_oa_){return format(_nW_,std,_n$_,_oa_)}, + _nY_=function(_n9_,_n__){return pp_list(cst$17,_nX_,_n9_,_n__)}; + caml_call4(Stdlib_Format[129],out,_aB_,_nY_,l); + var _nZ_=1 - inside_box; + return _nZ_?caml_call2(Stdlib_Format[129],out,_aC_):_nZ_} + var _n0_=x$0[2],_n1_=_n0_[2],_n2_=_n0_[1]; + if(_n1_) + {var x$3=_n1_[1]; + if(std) + {var + representation=[0,-976970511,_n2_], + x$4=[0,848054398,[0,representation,[0,x$3,0]]], + x$0=x$4; + continue} + var + op=json_string_of_string(_n2_), + _n3_=1, + _n4_=function(_n7_,_n8_){return format(_n3_,std,_n7_,_n8_)}; + return caml_call5(Stdlib_Format[129],out,_aD_,op,_n4_,x$3)} + if(std){var x$5=[0,-976970511,_n2_],x$0=x$5;continue} + var _n5_=json_string_of_string(_n2_); + return caml_call3(Stdlib_Format[129],out,_aE_,_n5_)}} + function pp$0(opt,out,x) + {if(opt)var sth=opt[1],std=sth;else var std=0; + var _nE_=1; + function _nF_(_nG_,_nH_){return format(_nE_,std,_nG_,_nH_)} + return caml_call4(Stdlib_Format[129],out,_aG_,_nF_,x)} + function pretty_print(std,out,x){return pp$0(std,out,x)} + function pretty_to_string(std,x) + {function _nB_(_nC_,_nD_){return pp$0(std,_nC_,_nD_)} + return caml_call3(Stdlib_Format[133],_aH_,_nB_,x)} + function pretty_to_channel(std,oc,x) + {var fmt=caml_call1(Stdlib_Format[108],oc); + function _ny_(_nz_,_nA_){return pp$0(std,_nz_,_nA_)} + return caml_call4(Stdlib_Format[129],fmt,_aI_,_ny_,x)} + function hex$0(n) + {var _nx_=10 <= n?n + 87 | 0:n + 48 | 0; + return caml_call1(Stdlib_Char[1],_nx_)} + function write_special$0(src,start,stop,ob,str) + {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16],ob,str); + start[1] = stop + 1 | 0; + return 0} + function finish_string$0(src,start,ob) + {try + {var + _nw_= + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + return _nw_} + catch(exc) + {exc = caml_wrap_exception(exc); + caml_call4 + (Stdlib_Printf[3], + _aJ_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw exc}} + function write_string$0(ob,s) + {caml_call2(Stdlib_Buffer[12],ob,34); + var start=[0,0],_nu_=caml_ml_string_length(s) - 1 | 0,_nt_=0; + if(_nu_ >= 0) + {var i=_nt_; + for(;;) + {var c=caml_string_get(s,i); + if(92 === c) + write_special$0(s,start,i,ob,cst$18); + else + {var switch$0=0; + if(35 <= c) + if(127 === c)switch$0 = 1;else switch$0 = 2; + else + if(8 <= c) + {var switch$1=0; + switch(c - 8 | 0) + {case 0:write_special$0(s,start,i,ob,cst_b$0);break; + case 1:write_special$0(s,start,i,ob,cst_t$0);break; + case 2:write_special$0(s,start,i,ob,cst_n$0);break; + case 4:write_special$0(s,start,i,ob,cst_f$0);break; + case 5:write_special$0(s,start,i,ob,cst_r$0);break; + case 26:write_special$0(s,start,i,ob,cst$19);break; + case 24: + case 25:switch$0 = 2;switch$1 = 1;break; + default:switch$0 = 1;switch$1 = 1}} + else + switch$0 = 1; + switch(switch$0) + {case 2:break; + case 1: + caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); + caml_call2(Stdlib_Buffer[16],ob,cst_u00$0); + var _nr_=hex$0(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12],ob,_nr_); + var _ns_=hex$0(c & 15); + caml_call2(Stdlib_Buffer[12],ob,_ns_); + start[1] = i + 1 | 0; + break + }} + var _nv_=i + 1 | 0; + if(_nu_ !== i){var i=_nv_;continue} + break}} + finish_string$0(s,start,ob); + return caml_call2(Stdlib_Buffer[12],ob,34)} + function json_string_of_string$0(s) + {var ob=caml_call1(Stdlib_Buffer[1],10); + write_string$0(ob,s); + return caml_call1(Stdlib_Buffer[2],ob)} + function write_null$0(ob,param) + {return caml_call2(Stdlib_Buffer[16],ob,cst_null$1)} + function write_bool$0(ob,x) + {var _nq_=x?cst_true$0:cst_false$0; + return caml_call2(Stdlib_Buffer[16],ob,_nq_)} + var + _aK_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), + _aL_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); + caml_call2(Stdlib[17],_aL_,_aK_); + function write_digits$0(s,x) + {if(0 === x)return 0; + var d=x % 10 | 0; + write_digits$0(s,x / 10 | 0); var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(19 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return _dk_; - case 1: - return _dl_; - case 2: - return 870828711; - case 3: - return [0, 365180284, Stdlib[24]]; - case 4: - return [0, 365180284, Stdlib[22]]; - case 5: - return [0, 365180284, Stdlib[23]]; - case 6: - caml_call1(Stdlib_Buffer[8], v[1]); - return [0, -976970511, finish_string$0(v, lexbuf)]; - case 7: - try{ - var _iL_ = [0, 3654863, extract_positive_int$0(lexbuf)]; - return _iL_; - } - catch(_i1_){ - var _iK_ = caml_wrap_exception(_i1_); - if(_iK_ === Int_overflow$0) - return [0, -752863768, caml_call1(lexeme$0, lexbuf)]; - throw caml_maybe_attach_backtrace(_iK_, 0); - } - case 8: - try{ - var _iN_ = [0, 3654863, extract_negative_int$0(lexbuf)]; - return _iN_; - } - catch(_i0_){ - var _iM_ = caml_wrap_exception(_i0_); - if(_iM_ === Int_overflow$0) - return [0, -752863768, caml_call1(lexeme$0, lexbuf)]; - throw caml_maybe_attach_backtrace(_iM_, 0); - } - case 9: - return [0, - 365180284, - caml_float_of_string(caml_call1(lexeme$0, lexbuf))]; - case 10: - var acc = [0, 0]; - try{ - read_space$0(v, lexbuf); - read_object_end$0(lexbuf); - var field_name = read_ident$0(v, lexbuf); - read_space$0(v, lexbuf); - read_colon$0(v, lexbuf); - read_space$0(v, lexbuf); - var _iP_ = acc[1]; - acc[1] = [0, [0, field_name, read_json$0(v, lexbuf)], _iP_]; - for(;;){ - read_space$0(v, lexbuf); - read_object_sep$0(v, lexbuf); - read_space$0(v, lexbuf); - var field_name$0 = read_ident$0(v, lexbuf); - read_space$0(v, lexbuf); - read_colon$0(v, lexbuf); - read_space$0(v, lexbuf); - var _iQ_ = acc[1]; - acc[1] = [0, [0, field_name$0, read_json$0(v, lexbuf)], _iQ_]; - } - } - catch(_iZ_){ - var _iO_ = caml_wrap_exception(_iZ_); - if(_iO_ === End_of_object) - return [0, 963043957, caml_call1(Stdlib_List[9], acc[1])]; - throw caml_maybe_attach_backtrace(_iO_, 0); - } - case 11: - var acc$0 = [0, 0]; - try{ - read_space$0(v, lexbuf); - read_array_end$0(lexbuf); - var _iS_ = acc$0[1]; - acc$0[1] = [0, read_json$0(v, lexbuf), _iS_]; - for(;;){ - read_space$0(v, lexbuf); - read_array_sep$0(v, lexbuf); - read_space$0(v, lexbuf); - var _iT_ = acc$0[1]; - acc$0[1] = [0, read_json$0(v, lexbuf), _iT_]; - } - } - catch(_iY_){ - var _iR_ = caml_wrap_exception(_iY_); - if(_iR_ === End_of_array) - return [0, 848054398, caml_call1(Stdlib_List[9], acc$0[1])]; - throw caml_maybe_attach_backtrace(_iR_, 0); - } - case 12: - var acc$1 = [0, 0]; - try{ - read_space$0(v, lexbuf); - read_tuple_end$0(lexbuf); - var _iV_ = acc$1[1]; - acc$1[1] = [0, read_json$0(v, lexbuf), _iV_]; - for(;;){ - read_space$0(v, lexbuf); - read_tuple_sep$0(v, lexbuf); - read_space$0(v, lexbuf); - var _iW_ = acc$1[1]; - acc$1[1] = [0, read_json$0(v, lexbuf), _iW_]; - } - } - catch(_iX_){ - var _iU_ = caml_wrap_exception(_iX_); - if(_iU_ === End_of_tuple) - return [0, 726928360, caml_call1(Stdlib_List[9], acc$1[1])]; - throw caml_maybe_attach_backtrace(_iU_, 0); - } - case 13: - read_space$0(v, lexbuf); - var cons = read_ident$0(v, lexbuf); - read_space$0(v, lexbuf); - return [0, 708012133, [0, cons, finish_variant$0(v, lexbuf)]]; - case 14: - continue a; - case 15: - finish_comment$0(v, lexbuf); continue a; - case 16: - newline$0(v, lexbuf); continue a; - case 17: - continue a; - case 18: - return custom_error$0(cst_Unexpected_end_of_input$44, v, lexbuf); - default: return long_error$0(cst_Invalid_token$9, v, lexbuf); - } - } - } - } - function finish_string$0(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 58; - for(;;){ + n=caml_call1(Stdlib[18],d), + _np_=caml_call1(Stdlib_Char[1],n + 48 | 0); + return caml_call2(Stdlib_Buffer[12],s,_np_)} + function write_int$0(ob,x) + {return 0 < x + ?write_digits$0(ob,x) + :0 <= x + ?caml_call2(Stdlib_Buffer[12],ob,48) + :(caml_call2(Stdlib_Buffer[12],ob,45),write_digits$0(ob,x))} + function float_needs_period$0(s) + {try + {var _nl_=caml_ml_string_length(s) - 1 | 0,_nk_=0; + if(_nl_ >= 0) + {var i=_nk_; + for(;;) + {var match=caml_string_get(s,i),switch$0=0; + if(48 <= match) + {if(58 > match)switch$0 = 1} + else + if(45 === match)switch$0 = 1; + if(! switch$0)throw Stdlib[3]; + var _nn_=i + 1 | 0; + if(_nl_ !== i){var i=_nn_;continue} + break}} + var _nm_=1; + return _nm_} + catch(_no_) + {_no_ = caml_wrap_exception(_no_); + if(_no_ === Stdlib[3])return 0; + throw _no_}} + function write_float$0(ob,x) + {var match=caml_classify_float(x); + if(3 === match) + {var _ni_=0. < x?cst_Infinity$3:cst_Infinity$4; + return caml_call2(Stdlib_Buffer[16],ob,_ni_)} + if(4 <= match)return caml_call2(Stdlib_Buffer[16],ob,cst_NaN$1); var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return caml_call1(Stdlib_Buffer[2], v[1]); - case 1: - finish_escaped_char$0(v, lexbuf); continue a; - case 2: - add_lexeme$0(v[1], lexbuf); continue a; - default: - return custom_error$0(cst_Unexpected_end_of_input$45, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function map_string$0(v, f, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 63; - for(;;){ + s1=caml_call2(Stdlib_Printf[4],_aM_,x), + s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_aN_,x); + caml_call2(Stdlib_Buffer[16],ob,s); + var _nj_=float_needs_period$0(s); + return _nj_?caml_call2(Stdlib_Buffer[16],ob,cst_0$2):_nj_} + function write_normal_float_prec$0(significant_figures,ob,x) + {var switcher=significant_figures - 1 | 0; + if(15 < switcher >>> 0) + var s=caml_call2(Stdlib_Printf[4],_aO_,x); + else + switch(switcher) + {case 0:var s=caml_call2(Stdlib_Printf[4],_aP_,x);break; + case 1:var s=caml_call2(Stdlib_Printf[4],_aQ_,x);break; + case 2:var s=caml_call2(Stdlib_Printf[4],_aR_,x);break; + case 3:var s=caml_call2(Stdlib_Printf[4],_aS_,x);break; + case 4:var s=caml_call2(Stdlib_Printf[4],_aT_,x);break; + case 5:var s=caml_call2(Stdlib_Printf[4],_aU_,x);break; + case 6:var s=caml_call2(Stdlib_Printf[4],_aV_,x);break; + case 7:var s=caml_call2(Stdlib_Printf[4],_aW_,x);break; + case 8:var s=caml_call2(Stdlib_Printf[4],_aX_,x);break; + case 9:var s=caml_call2(Stdlib_Printf[4],_aY_,x);break; + case 10:var s=caml_call2(Stdlib_Printf[4],_aZ_,x);break; + case 11:var s=caml_call2(Stdlib_Printf[4],_a0_,x);break; + case 12:var s=caml_call2(Stdlib_Printf[4],_a1_,x);break; + case 13:var s=caml_call2(Stdlib_Printf[4],_a2_,x);break; + case 14:var s=caml_call2(Stdlib_Printf[4],_a3_,x);break; + default:var s=caml_call2(Stdlib_Printf[4],_a4_,x)} + caml_call2(Stdlib_Buffer[16],ob,s); + var _nh_=float_needs_period$0(s); + return _nh_?caml_call2(Stdlib_Buffer[16],ob,cst_0$3):_nh_} + function write_float_prec$0(significant_figures,ob,x) + {var match=caml_classify_float(x); + if(3 !== match) + return 4 <= match + ?caml_call2(Stdlib_Buffer[16],ob,cst_NaN$2) + :write_normal_float_prec$0(significant_figures,ob,x); + var _ng_=0. < x?cst_Infinity$5:cst_Infinity$6; + return caml_call2(Stdlib_Buffer[16],ob,_ng_)} + function write_std_float$0(ob,x) + {var match=caml_classify_float(x); + if(3 === match) + {var + _ne_= + 0. < x + ?cst_Infinity_value_not_allowed$3 + :cst_Infinity_value_not_allowed$4; + return json_error(_ne_)} + if(4 <= match)return json_error(cst_NaN_value_not_allowed_in_s$1); var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - var b = v[1], _iJ_ = caml_call1(Stdlib_Buffer[7], b); - return caml_call3(f, caml_call1(Stdlib_Buffer[2], b), 0, _iJ_); - case 1: - finish_escaped_char$0(v, lexbuf); continue a; - case 2: - add_lexeme$0(v[1], lexbuf); continue a; - default: - return custom_error$0(cst_Unexpected_end_of_input$46, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function finish_escaped_char$0(v, lexbuf){ - var ocaml_lex_state = 68; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(8 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var c = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5]); - return caml_call2(Stdlib_Buffer[12], v[1], c); - case 1: - return caml_call2(Stdlib_Buffer[12], v[1], 8); - case 2: - return caml_call2(Stdlib_Buffer[12], v[1], 12); - case 3: - return caml_call2(Stdlib_Buffer[12], v[1], 10); - case 4: - return caml_call2(Stdlib_Buffer[12], v[1], 13); - case 5: - return caml_call2(Stdlib_Buffer[12], v[1], 9); - case 6: + s1=caml_call2(Stdlib_Printf[4],_a5_,x), + s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_a6_,x); + caml_call2(Stdlib_Buffer[16],ob,s); + var _nf_=float_needs_period$0(s); + return _nf_?caml_call2(Stdlib_Buffer[16],ob,cst_0$4):_nf_} + function write_std_float_prec$0(significant_figures,ob,x) + {var match=caml_classify_float(x); + if(3 !== match) + return 4 <= match + ?json_error(cst_NaN_value_not_allowed_in_s$2) + :write_normal_float_prec$0(significant_figures,ob,x); + var + _nd_= + 0. < x + ?cst_Infinity_value_not_allowed$5 + :cst_Infinity_value_not_allowed$6; + return json_error(_nd_)} + function iter2$0(f_elt,f_sep,x,param$0) + {if(! param$0)return 0; + var l$0=param$0[2],y$0=param$0[1]; + caml_call2(f_elt,x,y$0); + var param=l$0; + for(;;) + {if(! param)return 0; + var l=param[2],y=param[1]; + caml_call1(f_sep,x); + caml_call2(f_elt,x,y); + var param=l}} + function f_sep$0(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} + function write_list$0(ob,l) + {caml_call2(Stdlib_Buffer[12],ob,91); + iter2$0(write_t$0,f_sep$0,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,93)} + function write_assoc$0(ob,l) + {function f_elt(ob,param) + {var x=param[2],s=param[1]; + write_string$0(ob,s); + caml_call2(Stdlib_Buffer[12],ob,58); + return write_t$0(ob,x)} + caml_call2(Stdlib_Buffer[12],ob,123); + iter2$0(f_elt,f_sep$0,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,125)} + function write_t$0(ob,x) + {if(typeof x === "number")return write_null$0(ob,0); + var _nc_=x[1]; + if(365180284 > _nc_) + {if(3654863 <= _nc_){var i=x[2];return write_int$0(ob,i)} + var s=x[2]; + return write_string$0(ob,s)} + if(848054398 <= _nc_) + {if(963043957 <= _nc_){var l=x[2];return write_assoc$0(ob,l)} + var l$0=x[2]; + return write_list$0(ob,l$0)} + if(737456202 <= _nc_){var b=x[2];return write_bool$0(ob,b)} + var f=x[2]; + return write_float$0(ob,f)} + function write_std_json$0(ob,x) + {if(typeof x === "number")return write_null$0(ob,0); + var _nb_=x[1]; + if(365180284 > _nb_) + {if(3654863 <= _nb_){var i=x[2];return write_int$0(ob,i)} + var s=x[2]; + return write_string$0(ob,s)} + if(848054398 <= _nb_) + {if(963043957 <= _nb_) + {var + l=x[2], + f_elt= + function(ob,param) + {var x=param[2],s=param[1]; + write_string$0(ob,s); + caml_call2(Stdlib_Buffer[12],ob,58); + return write_std_json$0(ob,x)}; + caml_call2(Stdlib_Buffer[12],ob,123); + iter2$0(f_elt,f_sep$0,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,125)} + var l$0=x[2]; + caml_call2(Stdlib_Buffer[12],ob,91); + iter2$0(write_std_json$0,f_sep$0,ob,l$0); + return caml_call2(Stdlib_Buffer[12],ob,93)} + if(737456202 <= _nb_){var b=x[2];return write_bool$0(ob,b)} + var f=x[2]; + return write_std_float$0(ob,f)} + function to_buffer$0(opt,_na_,ob,x) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$20; + if(_na_)var sth$0=_na_[1],std=sth$0;else var std=0; + if(std)write_std_json$0(ob,x);else write_t$0(ob,x); + return caml_call2(Stdlib_Buffer[16],ob,suf)} + function to_string$0(buf,opt,_m$_,std,x) + {if(opt)var sth=opt[1],len=sth;else var len=256; + if(_m$_)var sth$0=_m$_[1],suf=sth$0;else var suf=cst$21; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer$0([0,suf],std,ob$0,x); + var s=caml_call1(Stdlib_Buffer[2],ob$0); + caml_call1(Stdlib_Buffer[8],ob$0); + return s} + function to_channel$0(buf,opt,_m__,std,oc,x) + {if(opt)var sth=opt[1],len=sth;else var len=4096; + if(_m__)var sth$0=_m__[1],suf=sth$0;else var suf=cst$22; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer$0([0,suf],std,ob$0,x); + caml_call2(Stdlib_Buffer[10],oc,ob$0); + return caml_call1(Stdlib_Buffer[8],ob$0)} + function to_output$0(buf,opt,_m8_,std,out,x) + {if(opt)var sth=opt[1],len=sth;else var len=4096; + if(_m8_)var sth$0=_m8_[1],suf=sth$0;else var suf=cst$23; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer$0([0,suf],std,ob$0,x); + var _m9_=caml_call1(Stdlib_Buffer[7],ob$0); + caml_call4 + (caml_get_public_method(out,209784577,2), + out, + caml_call1(Stdlib_Buffer[2],ob$0), + 0, + _m9_); + return caml_call1(Stdlib_Buffer[8],ob$0)} + function to_file$0(len,std,opt,file,x) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$24; + var oc=caml_call1(Stdlib[60],file); + try + {to_channel$0(0,len,[0,suf],std,oc,x); + var _m7_=caml_call1(Stdlib[76],oc); + return _m7_} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} + function seq_to_buffer$0(opt,std,ob,st) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$25; + var _m4_=[0,suf]; + function _m5_(_m6_){return to_buffer$0(_m4_,std,ob,_m6_)} + return caml_call2(Stdlib_Seq[4],_m5_,st)} + function seq_to_string$0(buf,opt,_m3_,std,st) + {if(opt)var sth=opt[1],len=sth;else var len=256; + if(_m3_)var sth$0=_m3_[1],suf=sth$0;else var suf=cst$26; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + seq_to_buffer$0([0,suf],std,ob$0,st); + var s=caml_call1(Stdlib_Buffer[2],ob$0); + caml_call1(Stdlib_Buffer[8],ob$0); + return s} + function seq_to_channel$0(buf,opt,_m1_,std,oc,seq) + {if(opt)var sth=opt[1],len=sth;else var len=2096; + if(_m1_)var sth$0=_m1_[1],suf=sth$0;else var suf=cst$27; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + function _m2_(json) + {to_buffer$0([0,suf],std,ob$0,json); + caml_call2(Stdlib_Buffer[10],oc,ob$0); + return caml_call1(Stdlib_Buffer[8],ob$0)} + return caml_call2(Stdlib_Seq[4],_m2_,seq)} + function seq_to_file$0(len,opt,std,file,st) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$28; + var oc=caml_call1(Stdlib[60],file); + try + {seq_to_channel$0(0,len,[0,suf],std,oc,st); + var _m0_=caml_call1(Stdlib[76],oc); + return _m0_} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} + function sort$0(x) + {if(typeof x !== "number") + {var _mU_=x[1]; + if(848054398 === _mU_) + {var l=x[2],_mV_=caml_call2(Stdlib_List[21],sort$0,l); + return [0,848054398,caml_call1(Stdlib_List[9],_mV_)]} + if(963043957 === _mU_) + {var + l$0=x[2], + _mW_= + function(param){var v=param[2],k=param[1];return [0,k,sort$0(v)]}, + _mX_=caml_call2(Stdlib_List[21],_mW_,l$0), + l$1=caml_call1(Stdlib_List[9],_mX_), + _mY_= + function(param,_mZ_) + {var b=_mZ_[1],a=param[1]; + return caml_call2(Stdlib_String[9],a,b)}; + return [0,963043957,caml_call2(Stdlib_List[57],_mY_,l$1)]}} + return x} + function pp_list$0(sep,ppx,out,l) + {function pp_sep(out,param) + {return caml_call3(Stdlib_Format[129],out,_a7_,sep)} + return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} + function is_atom$0(x) + {if(typeof x !== "number") + {var _mT_=x[1],switch$0=0; + if(737456202 <= _mT_) + {if(848054398 === _mT_) + {if(x[2])switch$0 = 1} + else + if(963043957 <= _mT_ && x[2])switch$0 = 1} + else + if(708012133 === _mT_) + {if(x[2][2])switch$0 = 1} + else + if(726928360 <= _mT_ && x[2])switch$0 = 1; + if(switch$0)return 0} + return 1} + function format$0(inside_box,std,out,x) + {if(typeof x === "number") + return caml_call2(Stdlib_Format[13],out,cst_null$2); + var _mq_=x[1]; + if(365180284 > _mq_) + {if(3654863 <= _mq_) + {var x$2=x[2],_mp_=caml_call1(Stdlib[33],x$2); + return caml_call2(Stdlib_Format[13],out,_mp_)} + var s$0=x[2],_mD_=json_string_of_string$0(s$0); + return caml_call2(Stdlib_Format[13],out,_mD_)} + if(848054398 > _mq_) + {if(737456202 <= _mq_) + {var x$0=x[2];return caml_call2(Stdlib_Format[25],out,x$0)} + var x$1=x[2]; + if(std) + {var ob$0=caml_call1(Stdlib_Buffer[1],20); + write_std_float$0(ob$0,x$1); + var s=caml_call1(Stdlib_Buffer[2],ob$0)} + else + {var ob=caml_call1(Stdlib_Buffer[1],20); + write_float$0(ob,x$1); + var s=caml_call1(Stdlib_Buffer[2],ob)} + return caml_call2(Stdlib_Format[13],out,s)} + if(963043957 <= _mq_) + {var _mr_=x[2]; + if(! _mr_)return caml_call2(Stdlib_Format[13],out,cst$30); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_a8_); var - a = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 1 | 0), - b = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 2 | 0), - c$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 3 | 0), - d = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 4 | 0), - _iD_ = hex$3(d), - _iE_ = hex$3(c$0) << 4, - _iF_ = hex$3(b) << 8, - x = hex$3(a) << 12 | _iF_ | _iE_ | _iD_; - if(55296 <= x && 56319 >= x){ - var ocaml_lex_state$1 = 82; - for(;;){ + _ms_= + function(out,param) + {var x=param[2],name=param[1],_mO_=1; + function _mP_(_mR_,_mS_){return format$0(_mO_,std,_mR_,_mS_)} + var _mQ_=json_string_of_string$0(name); + return caml_call5(Stdlib_Format[129],out,_bd_,_mQ_,_mP_,x)}, + _mt_=function(_mM_,_mN_){return pp_list$0(cst$29,_ms_,_mM_,_mN_)}; + caml_call4(Stdlib_Format[129],out,_a9_,_mt_,_mr_); + var _mu_=1 - inside_box; + return _mu_?caml_call2(Stdlib_Format[129],out,_a__):_mu_} + var _mv_=x[2]; + if(! _mv_)return caml_call2(Stdlib_Format[13],out,cst$33); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_a$_); + if(caml_call2(Stdlib_List[32],is_atom$0,_mv_)) + {var + _mw_=0, + _mx_=function(_mG_,_mH_){return format$0(_mw_,std,_mG_,_mH_)}, + _my_=function(_mE_,_mF_){return pp_list$0(cst$31,_mx_,_mE_,_mF_)}; + caml_call4(Stdlib_Format[129],out,_ba_,_my_,_mv_)} + else + {var + _mA_=0, + _mB_=function(_mK_,_mL_){return format$0(_mA_,std,_mK_,_mL_)}, + _mC_=function(_mI_,_mJ_){return pp_list$0(cst$32,_mB_,_mI_,_mJ_)}; + caml_call4(Stdlib_Format[129],out,_bc_,_mC_,_mv_)} + var _mz_=1 - inside_box; + return _mz_?caml_call2(Stdlib_Format[129],out,_bb_):_mz_} + function pp$1(opt,out,x) + {if(opt)var sth=opt[1],std=sth;else var std=0; + var _ml_=1; + function _mm_(_mn_,_mo_){return format$0(_ml_,std,_mn_,_mo_)} + return caml_call4(Stdlib_Format[129],out,_be_,_mm_,x)} + function pp$2(fmt,param) + {if(typeof param === "number") + return caml_call2(Stdlib_Format[13],fmt,cst_Null$0); + var _mg_=param[1]; + if(365180284 > _mg_) + {if(3654863 <= _mg_) + {var x$1=param[2]; + caml_call2(Stdlib_Format[129],fmt,_bB_); + caml_call3(Stdlib_Format[129],fmt,_bC_,x$1); + return caml_call2(Stdlib_Format[129],fmt,_bD_)} + var x$2=param[2]; + caml_call2(Stdlib_Format[129],fmt,_bE_); + caml_call3(Stdlib_Format[129],fmt,_bF_,x$2); + return caml_call2(Stdlib_Format[129],fmt,_bG_)} + if(848054398 <= _mg_) + {if(963043957 <= _mg_) + {var xs=param[2]; + caml_call2(Stdlib_Format[129],fmt,_bh_); + caml_call2(Stdlib_Format[129],fmt,_bi_); var - ocaml_lex_state$2 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$1, lexbuf); - if(2 < ocaml_lex_state$2 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$1 = ocaml_lex_state$2; - continue; - } - switch(ocaml_lex_state$2){ - case 0: - var - a$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 2 | 0), - b$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 3 | 0), - c$1 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 4 | 0), - d$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 5 | 0), - _iG_ = hex$3(d$0), - _iH_ = hex$3(c$1) << 4, - _iI_ = hex$3(b$0) << 8, - y = hex$3(a$0) << 12 | _iI_ | _iH_ | _iG_; - if(56320 <= y && 57343 >= y) - return utf8_of_surrogate_pair(v[1], x, y); - return long_error$0(cst_Invalid_low_surrogate_for_$0, v, lexbuf); - case 1: - return long_error$0(cst_Missing_escape_sequence_re$0, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$48, v, lexbuf); - } - } - } - return utf8_of_code(v[1], x); - case 7: - return long_error$0(cst_Invalid_escape_sequence$0, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$47, v, lexbuf); - } - } - } - function finish_stringlit$0(v, lexbuf){ - var ocaml_lex_state = 91; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - var - len = lexbuf[6] - lexbuf[5] | 0, - s = caml_create_bytes(len + 1 | 0); - caml_bytes_set(s, 0, 34); - caml_call5(Stdlib_Bytes[11], lexbuf[2], lexbuf[5], s, 1, len); - return caml_call1(Stdlib_Bytes[6], s); - case 1: - return long_error$0(cst_Invalid_string_literal$2, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$49, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_variant$0(v, lexbuf){ - var ocaml_lex_state = 102; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - var x = read_json$0(v, lexbuf); - read_space$0(v, lexbuf); - read_gt$0(v, lexbuf); - return [0, x]; - case 1: - return 0; - case 2: - return long_error$0(cst_Expected_or_but_found$13, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$50, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_lt$0(v, lexbuf){ - var ocaml_lex_state = 107; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Expected_but_found$14, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$51, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_gt$0(v, lexbuf){ - var ocaml_lex_state = 111; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Expected_but_found$15, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$52, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_comma$0(v, lexbuf){ - var ocaml_lex_state = 115; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Expected_but_found$16, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$53, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function start_any_variant$0(v, lexbuf){ - var ocaml_lex_state = 119; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return -154522342; - case 1: - caml_call1(Stdlib_Buffer[8], v[1]); return -589953938; - case 2: - return -124528282; - case 3: - return long_error$0(cst_Expected_or_but_found$14, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$54, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_comment$0(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 125; - for(;;){ + _mh_=0, + _mi_= + function(sep,param) + {var value=param[2],key=param[1]; + if(sep)caml_call2(Stdlib_Format[129],fmt,_bj_); + caml_call2(Stdlib_Format[129],fmt,_bk_); + caml_call3(Stdlib_Format[129],fmt,_bl_,key); + caml_call2(Stdlib_Format[129],fmt,_bm_); + pp$2(fmt,value); + caml_call2(Stdlib_Format[129],fmt,_bn_); + return 1}; + caml_call3(Stdlib_List[25],_mi_,_mh_,xs); + caml_call2(Stdlib_Format[129],fmt,_bo_); + return caml_call2(Stdlib_Format[129],fmt,_bp_)} + var xs$0=param[2]; + caml_call2(Stdlib_Format[129],fmt,_bq_); + caml_call2(Stdlib_Format[129],fmt,_br_); + var + _mj_=0, + _mk_= + function(sep,x) + {if(sep)caml_call2(Stdlib_Format[129],fmt,_bs_); + pp$2(fmt,x); + return 1}; + caml_call3(Stdlib_List[25],_mk_,_mj_,xs$0); + caml_call2(Stdlib_Format[129],fmt,_bt_); + return caml_call2(Stdlib_Format[129],fmt,_bu_)} + if(737456202 <= _mg_) + {var x=param[2]; + caml_call2(Stdlib_Format[129],fmt,_bv_); + caml_call3(Stdlib_Format[129],fmt,_bw_,x); + return caml_call2(Stdlib_Format[129],fmt,_bx_)} + var x$0=param[2]; + caml_call2(Stdlib_Format[129],fmt,_by_); + caml_call3(Stdlib_Format[129],fmt,_bz_,x$0); + return caml_call2(Stdlib_Format[129],fmt,_bA_)} + function show$0(x){return caml_call3(Stdlib_Format[133],_bH_,pp$2,x)} + function equal$0(a,b) + {if(typeof a === "number") + {if(870828711 === a && 870828711 === b)return 1} + else + {var _ma_=a[1]; + if(365180285 <= _ma_) + {if(737456202 === _ma_) + {if(typeof b !== "number" && 737456202 === b[1]) + {var b$0=b[2],a$0=a[2];return caml_equal(a$0,b$0)}} + else + if(848054398 === _ma_) + {if(typeof b !== "number" && 848054398 === b[1]) + {var ys=b[2],xs=a[2]; + try + {var result=caml_call3(Stdlib_List[34],equal$0,xs,ys); + return result} + catch(_mc_) + {_mc_ = caml_wrap_exception(_mc_); + if(_mc_[1] === Stdlib[6])return 0; + throw _mc_}}} + else + if + (963043957 + === + _ma_ + && + typeof b + !== + "number" + && + 963043957 + === + b[1]) + {var + ys$0=b[2], + xs$0=a[2], + compare_keys= + function(param,_mf_) + {var key=_mf_[1],key$0=param[1]; + return caml_call2(Stdlib_String[9],key$0,key)}, + xs$1=caml_call2(Stdlib_List[57],compare_keys,xs$0), + ys$1=caml_call2(Stdlib_List[57],compare_keys,ys$0); + try + {var + _mb_= + function(param,_me_) + {var + value=_me_[2], + key=_me_[1], + value$0=param[2], + key$0=param[1], + match=caml_string_equal(key$0,key); + return match?equal$0(value$0,value):0}, + result$0=caml_call3(Stdlib_List[34],_mb_,xs$1,ys$1); + return result$0} + catch(_md_) + {_md_ = caml_wrap_exception(_md_); + if(_md_[1] === Stdlib[6])return 0; + throw _md_}}} + else + if(-976970511 === _ma_) + {if(typeof b !== "number" && -976970511 === b[1]) + {var b$1=b[2],a$1=a[2];return caml_equal(a$1,b$1)}} + else + if(3654863 === _ma_) + {if(typeof b !== "number" && 3654863 === b[1]) + {var b$2=b[2],a$2=a[2];return caml_equal(a$2,b$2)}} + else + if + (365180284 <= _ma_ && typeof b !== "number" && 365180284 === b[1]) + {var b$3=b[2],a$3=a[2];return caml_equal(a$3,b$3)}} + return 0} + function pretty_print$0(std,out,x){return pp$1(std,out,x)} + function pretty_to_string$0(std,x) + {function _l9_(_l__,_l$_){return pp$1(std,_l__,_l$_)} + return caml_call3(Stdlib_Format[133],_bf_,_l9_,x)} + function pretty_to_channel$0(std,oc,x) + {var fmt=caml_call1(Stdlib_Format[108],oc); + function _l6_(_l7_,_l8_){return pp$1(std,_l7_,_l8_)} + return caml_call4(Stdlib_Format[129],fmt,_bg_,_l6_,x)} + var + from_channel=Stdlib_Lexing[2], + from_string=Stdlib_Lexing[3], + lexeme=Stdlib_Lexing[8], + sub_lexeme=Stdlib_Lexing[16], + sub_lexeme_char=Stdlib_Lexing[18]; + function hex$1(c) + {if(65 <= c) + {if(97 <= c) + {if(103 > c)return (c - 97 | 0) + 10 | 0} + else + if(71 > c)return (c - 65 | 0) + 10 | 0} + else + if(9 >= c - 48 >>> 0)return c - 48 | 0; + throw [0,Assert_failure,_bI_]} + function custom_error(descr,v,lexbuf) + {var + offs=lexbuf[4] - 1 | 0, + bol=v[3], + pos1=((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, + pos2=caml_call2(Stdlib[17],pos1,(offs + lexbuf[6] | 0) - bol | 0), + _l5_=v[4]; + if(_l5_) + var s=_l5_[1],file_line=caml_call2(Stdlib_Printf[4],_bJ_,s); + else + var file_line=cst_Line; var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Unterminated_comment$1, v, lexbuf); - case 2: - newline$0(v, lexbuf); continue a; - default: continue a; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function read_eof$0(lexbuf){ - var ocaml_lex_state = 131; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) return 1; - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_space$0(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 133; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - newline$0(v, lexbuf); continue a; - case 1: - finish_comment$0(v, lexbuf); continue a; - case 2: - newline$0(v, lexbuf); continue a; - case 3: - continue a; - default: return 0; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function read_null$0(v, lexbuf){ - var ocaml_lex_state = 140; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Expected_null_but_found$0, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$55, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_null_if_possible$0(v, lexbuf){ - var ocaml_lex_state = 147; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) return 1; - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_bool$0(v, lexbuf){ - var ocaml_lex_state = 152; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(5 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 1; - case 1: - return 0; - case 2: - return 1; - case 3: - return 0; - case 4: - return long_error$0(cst_Expected_true_or_false_but$0, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$56, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_int$0(v, lexbuf){ - var ocaml_lex_state = 176; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(4 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - try{var _iw_ = extract_positive_int$0(lexbuf); return _iw_;} - catch(_iC_){ - var _iv_ = caml_wrap_exception(_iC_); - if(_iv_ === Int_overflow$0) - return lexer_error$0(cst_Int_overflow$3, v, lexbuf); - throw caml_maybe_attach_backtrace(_iv_, 0); - } - case 1: - try{var _iy_ = extract_negative_int$0(lexbuf); return _iy_;} - catch(_iB_){ - var _ix_ = caml_wrap_exception(_iB_); - if(_ix_ === Int_overflow$0) - return lexer_error$0(cst_Int_overflow$4, v, lexbuf); - throw caml_maybe_attach_backtrace(_ix_, 0); - } - case 2: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string$0(v, lexbuf); - try{var _iz_ = caml_int_of_string(s); return _iz_;} - catch(_iA_){ - return custom_error$0(cst_Expected_an_integer_but_fo$0, v, lexbuf); - } - case 3: - return long_error$0(cst_Expected_integer_but_found$0, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$57, v, lexbuf); - } - } - } - function read_int32$0(v, lexbuf){ - var ocaml_lex_state = 185; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - try{ - var _ir_ = caml_int_of_string(caml_call1(lexeme$0, lexbuf)); - return _ir_; - } - catch(_iu_){return lexer_error$0(cst_Int32_overflow$1, v, lexbuf);} - case 1: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string$0(v, lexbuf); - try{var _is_ = caml_int_of_string(s); return _is_;} - catch(_it_){ - return custom_error$0(cst_Expected_an_int32_but_foun$0, v, lexbuf); - } - case 2: - return long_error$0(cst_Expected_int32_but_found$0, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$58, v, lexbuf); - } - } - } - function read_int64$0(v, lexbuf){ - var ocaml_lex_state = 192; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - try{ - var _in_ = caml_int64_of_string(caml_call1(lexeme$0, lexbuf)); - return _in_; - } - catch(_iq_){return lexer_error$0(cst_Int32_overflow$2, v, lexbuf);} - case 1: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string$0(v, lexbuf); - try{var _io_ = caml_int64_of_string(s); return _io_;} - catch(_ip_){ - return custom_error$0(cst_Expected_an_int64_but_foun$0, v, lexbuf); - } - case 2: - return long_error$0(cst_Expected_int64_but_found$0, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$59, v, lexbuf); - } - } - } - function read_number$0(v, lexbuf){ - var ocaml_lex_state = 199; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(6 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return Stdlib[24]; - case 1: - return Stdlib[22]; - case 2: - return Stdlib[23]; - case 3: - return caml_float_of_string(caml_call1(lexeme$0, lexbuf)); - case 4: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string$0(v, lexbuf); - try{var _il_ = caml_float_of_string(s); return _il_;} - catch(_im_){ - return caml_string_notequal(s, cst_Infinity$12) - ? caml_string_notequal - (s, cst_Infinity$11) - ? caml_string_notequal - (s, cst_NaN$5) - ? custom_error$0 - (cst_Expected_a_number_but_foun$0, v, lexbuf) - : Stdlib[24] - : Stdlib[22] - : Stdlib[23]; - } - case 5: - return long_error$0(cst_Expected_number_but_found$0, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$60, v, lexbuf); - } - } - } - function read_string$0(v, lexbuf){ - var ocaml_lex_state = 233; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call1(Stdlib_Buffer[8], v[1]); - return finish_string$0(v, lexbuf); - case 1: - return long_error$0(cst_Expected_but_found$17, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$61, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_ident$0(v, lexbuf){ - var ocaml_lex_state = 237; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call1(Stdlib_Buffer[8], v[1]); - return finish_string$0(v, lexbuf); - case 1: - var s = caml_call3(sub_lexeme$0, lexbuf, lexbuf[5], lexbuf[6]); - return s; - case 2: - return long_error$0(cst_Expected_string_or_identif$3, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$62, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function map_ident$0(v, f, lexbuf){ - var ocaml_lex_state = 242; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call1(Stdlib_Buffer[8], v[1]); - return map_string$0(v, f, lexbuf); - case 1: - var len = lexbuf[6] - lexbuf[5] | 0; - return caml_call3 - (f, - caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len), - 0, - len); - case 2: - return long_error$0(cst_Expected_string_or_identif$4, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$63, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_sequence$0(read_cell, init_acc, v, lexbuf){ - var ocaml_lex_state = 247; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var acc = [0, init_acc]; - try{ - read_space$0(v, lexbuf); - read_array_end$0(lexbuf); - acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); - for(;;){ - read_space$0(v, lexbuf); - read_array_sep$0(v, lexbuf); - read_space$0(v, lexbuf); - acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); - } - } - catch(_ik_){ - var _ij_ = caml_wrap_exception(_ik_); - if(_ij_ === End_of_array) return acc[1]; - throw caml_maybe_attach_backtrace(_ij_, 0); - } - case 1: - return long_error$0(cst_Expected_but_found$18, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$64, v, lexbuf); - } - } - } - function read_list_rev$0(read_cell, v, lexbuf){ - var ocaml_lex_state = 251; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var acc = [0, 0]; - try{ - read_space$0(v, lexbuf); - read_array_end$0(lexbuf); - var _ig_ = acc[1]; - acc[1] = [0, caml_call2(read_cell, v, lexbuf), _ig_]; - for(;;){ - read_space$0(v, lexbuf); - read_array_sep$0(v, lexbuf); - read_space$0(v, lexbuf); - var _ih_ = acc[1]; - acc[1] = [0, caml_call2(read_cell, v, lexbuf), _ih_]; - } - } - catch(_ii_){ - var _if_ = caml_wrap_exception(_ii_); - if(_if_ === End_of_array) return acc[1]; - throw caml_maybe_attach_backtrace(_if_, 0); - } - case 1: - return long_error$0(cst_Expected_but_found$19, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$65, v, lexbuf); - } - } - } - function read_array_end$0(lexbuf){ - var ocaml_lex_state = 255; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) - throw caml_maybe_attach_backtrace(End_of_array, 1); - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_array_sep$0(v, lexbuf){ - var ocaml_lex_state = 257; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - throw caml_maybe_attach_backtrace(End_of_array, 1); - case 2: - return long_error$0(cst_Expected_or_but_found$15, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$66, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_tuple$0(read_cell, init_acc, v, lexbuf){ - var ocaml_lex_state = 262; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var pos = [0, 0], acc = [0, init_acc]; - try{ - read_space$0(v, lexbuf); - read_tuple_end$0(lexbuf); - acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); - pos[1]++; - for(;;){ - read_space$0(v, lexbuf); - read_tuple_sep$0(v, lexbuf); - read_space$0(v, lexbuf); - acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); - pos[1]++; - } - } - catch(_ie_){ - var _id_ = caml_wrap_exception(_ie_); - if(_id_ === End_of_tuple) return acc[1]; - throw caml_maybe_attach_backtrace(_id_, 0); - } - case 1: - return long_error$0(cst_Expected_but_found$20, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$67, v, lexbuf); - } - } - } - function read_tuple_end$0(lexbuf){ - var ocaml_lex_state = 266; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_tuple_end2$0(v, std, lexbuf){ - var ocaml_lex_state = 268; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - if(std) return long_error$0(cst_Expected_or_but_found$16, v, lexbuf); - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 1: - if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); - return long_error$0(cst_Expected_or_but_found$17, v, lexbuf); - default: return 0; - } - } - } - function read_tuple_sep$0(v, lexbuf){ - var ocaml_lex_state = 271; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 2: - return long_error$0(cst_Expected_or_but_found$18, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$68, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_tuple_sep2$0(v, std, lexbuf){ - var ocaml_lex_state = 276; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(4 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - if(std) return long_error$0(cst_Expected_or_but_found$19, v, lexbuf); - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 2: - if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); - return long_error$0(cst_Expected_or_but_found$20, v, lexbuf); - case 3: - return long_error$0(cst_Expected_or_but_found$21, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$69, v, lexbuf); - } - } - } - function read_abstract_fields$0(read_key, read_field, init_acc, v, lexbuf){ - var ocaml_lex_state = 282; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var acc = [0, init_acc]; - try{ - read_space$0(v, lexbuf); - read_object_end$0(lexbuf); - var field_name = caml_call2(read_key, v, lexbuf); - read_space$0(v, lexbuf); - read_colon$0(v, lexbuf); - read_space$0(v, lexbuf); - acc[1] = caml_call4(read_field, acc[1], field_name, v, lexbuf); - for(;;){ - read_space$0(v, lexbuf); - read_object_sep$0(v, lexbuf); - read_space$0(v, lexbuf); - var field_name$0 = caml_call2(read_key, v, lexbuf); - read_space$0(v, lexbuf); - read_colon$0(v, lexbuf); - read_space$0(v, lexbuf); - acc[1] = caml_call4(read_field, acc[1], field_name$0, v, lexbuf); - } - } - catch(_ic_){ - var _ib_ = caml_wrap_exception(_ic_); - if(_ib_ === End_of_object) return acc[1]; - throw caml_maybe_attach_backtrace(_ib_, 0); - } - case 1: - return long_error$0(cst_Expected_but_found$21, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$70, v, lexbuf); - } - } - } - function read_lcurl$0(v, lexbuf){ - var ocaml_lex_state = 286; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Expected_but_found$22, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$71, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_object_end$0(lexbuf){ - var ocaml_lex_state = 290; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) - throw caml_maybe_attach_backtrace(End_of_object, 1); - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_object_sep$0(v, lexbuf){ - var ocaml_lex_state = 292; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - throw caml_maybe_attach_backtrace(End_of_object, 1); - case 2: - return long_error$0(cst_Expected_or_but_found$22, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$72, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_colon$0(v, lexbuf){ - var ocaml_lex_state = 297; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Expected_but_found$23, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$73, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function start_any_tuple$0(v, lexbuf){ - var ocaml_lex_state = 301; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return 1; - case 2: - return long_error$0(cst_Expected_or_but_found$23, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$74, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_lpar$0(v, lexbuf){ - var ocaml_lex_state = 306; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Expected_but_found$24, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$75, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_rpar$0(v, lexbuf){ - var ocaml_lex_state = 310; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Expected_but_found$25, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$76, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_lbr$0(v, lexbuf){ - var ocaml_lex_state = 314; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Expected_but_found$26, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$77, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_rbr$0(v, lexbuf){ - var ocaml_lex_state = 318; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Expected_but_found$27, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$78, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_skip_variant$0(v, lexbuf){ - var ocaml_lex_state = 389; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - skip_json$0(v, lexbuf); - read_space$0(v, lexbuf); - return read_gt$0(v, lexbuf); - case 1: - return 0; - case 2: - return long_error$0(cst_Expected_or_but_found$24, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$81, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_skip_stringlit$0(v, lexbuf){ - var ocaml_lex_state = 378; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$0(cst_Invalid_string_literal$3, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$80, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function skip_json$0(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 322; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(18 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return 0; - case 2: - return 0; - case 3: - return 0; - case 4: - return 0; - case 5: - return 0; - case 6: - return finish_skip_stringlit$0(v, lexbuf); - case 7: - return 0; - case 8: - return 0; - case 9: - try{ - read_space$0(v, lexbuf); - read_object_end$0(lexbuf); - skip_ident$0(v, lexbuf); - read_space$0(v, lexbuf); - read_colon$0(v, lexbuf); - read_space$0(v, lexbuf); - skip_json$0(v, lexbuf); - for(;;){ - read_space$0(v, lexbuf); - read_object_sep$0(v, lexbuf); - read_space$0(v, lexbuf); - skip_ident$0(v, lexbuf); - read_space$0(v, lexbuf); - read_colon$0(v, lexbuf); - read_space$0(v, lexbuf); - skip_json$0(v, lexbuf); - } - } - catch(_ia_){ - var _h7_ = caml_wrap_exception(_ia_); - if(_h7_ === End_of_object) return 0; - throw caml_maybe_attach_backtrace(_h7_, 0); - } - case 10: - try{ - read_space$0(v, lexbuf); - read_array_end$0(lexbuf); - skip_json$0(v, lexbuf); - for(;;){ - read_space$0(v, lexbuf); - read_array_sep$0(v, lexbuf); - read_space$0(v, lexbuf); - skip_json$0(v, lexbuf); - } - } - catch(_h$_){ - var _h8_ = caml_wrap_exception(_h$_); - if(_h8_ === End_of_array) return 0; - throw caml_maybe_attach_backtrace(_h8_, 0); - } - case 11: - try{ - read_space$0(v, lexbuf); - read_tuple_end$0(lexbuf); - skip_json$0(v, lexbuf); - for(;;){ - read_space$0(v, lexbuf); - read_tuple_sep$0(v, lexbuf); - read_space$0(v, lexbuf); - skip_json$0(v, lexbuf); - } - } - catch(_h__){ - var _h9_ = caml_wrap_exception(_h__); - if(_h9_ === End_of_tuple) return 0; - throw caml_maybe_attach_backtrace(_h9_, 0); - } - case 12: - read_space$0(v, lexbuf); - skip_ident$0(v, lexbuf); - read_space$0(v, lexbuf); - return finish_skip_variant$0(v, lexbuf); - case 13: - continue a; - case 14: - finish_comment$0(v, lexbuf); continue a; - case 15: - newline$0(v, lexbuf); continue a; - case 16: - continue a; - case 17: - return custom_error$0(cst_Unexpected_end_of_input$79, v, lexbuf); - default: return long_error$0(cst_Invalid_token$10, v, lexbuf); - } - } - } - } - function skip_ident$0(v, lexbuf){ - var ocaml_lex_state = 394; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return finish_skip_stringlit$0(v, lexbuf); - case 1: - return 0; - case 2: - return long_error$0(cst_Expected_string_or_identif$5, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$82, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_buffer_stringlit$0(v, lexbuf){ - var ocaml_lex_state = 450; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 34); - return add_lexeme$0(v[1], lexbuf); - case 1: - return long_error$0(cst_Invalid_string_literal$4, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$84, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function buffer_json$0(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 399; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(11 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return add_lexeme$0(v[1], lexbuf); - case 1: - return finish_buffer_stringlit$0(v, lexbuf); - case 2: - try{ - caml_call2(Stdlib_Buffer[12], v[1], 123); - buffer_space$0(v, lexbuf); - var ocaml_lex_state$3 = 478; - for(;;){ + bytes= + pos1 === pos2 + ?caml_call2(Stdlib_Printf[4],_bK_,pos1 + 1 | 0) + :caml_call3(Stdlib_Printf[4],_bM_,pos1 + 1 | 0,pos2 + 1 | 0), + msg=caml_call5(Stdlib_Printf[4],_bL_,file_line,v[2],bytes,descr); + return json_error(msg)} + function lexer_error(descr,v,lexbuf) + {var _l4_=caml_call1(lexeme,lexbuf); + return custom_error + (caml_call3(Stdlib_Printf[4],_bN_,descr,_l4_),v,lexbuf)} + var read_junk=[0,function(param){throw [0,Assert_failure,_bO_]}]; + function long_error(descr,v,lexbuf) + {var + junk=caml_call1(lexeme,lexbuf), + extra_junk=caml_call1(read_junk[1],lexbuf); + return custom_error + (caml_call4(Stdlib_Printf[4],_bP_,descr,junk,extra_junk), + v, + lexbuf)} + var + _bQ_=0 === (Stdlib[20] % 10 | 0)?0:1, + min10=(Stdlib[20] / 10 | 0) - _bQ_ | 0, + _bR_=0 === (Stdlib[19] % 10 | 0)?0:1, + max10=(Stdlib[19] / 10 | 0) + _bR_ | 0, + Int_overflow=[248,cst_Yojson_Basic_Int_overflow,caml_fresh_oo_id(0)]; + function extract_positive_int(lexbuf) + {var + start=lexbuf[5], + stop=lexbuf[6], + s=lexbuf[2], + n=[0,0], + _l1_=stop - 1 | 0; + if(_l1_ >= start) + {var i=start; + for(;;) + {if(max10 <= n[1])throw Int_overflow; + var _l2_=caml_bytes_get(s,i) - 48 | 0; + n[1] = (10 * n[1] | 0) + _l2_ | 0; + var _l3_=i + 1 | 0; + if(_l1_ !== i){var i=_l3_;continue} + break}} + if(0 <= n[1])return n[1]; + throw Int_overflow} + function extract_negative_int(lexbuf) + {var + start=lexbuf[5] + 1 | 0, + stop=lexbuf[6], + s=lexbuf[2], + n=[0,0], + _lY_=stop - 1 | 0; + if(_lY_ >= start) + {var i=start; + for(;;) + {if(n[1] <= min10)throw Int_overflow; + var _lZ_=caml_bytes_get(s,i) - 48 | 0; + n[1] = (10 * n[1] | 0) - _lZ_ | 0; + var _l0_=i + 1 | 0; + if(_lY_ !== i){var i=_l0_;continue} + break}} + if(0 < n[1])throw Int_overflow; + return n[1]} + function newline(v,lexbuf) + {v[2] = v[2] + 1 | 0;v[3] = lexbuf[4] + lexbuf[6] | 0;return 0} + function add_lexeme(buf,lexbuf) + {var len=lexbuf[6] - lexbuf[5] | 0; + return caml_call4(Stdlib_Buffer[19],buf,lexbuf[2],lexbuf[5],len)} + function read_json$2(counter,v,lexbuf) + {var _lX_=0; + if(counter >= 50) + return caml_trampoline_return + (ocaml_lex_read_json_rec,[0,v,lexbuf,_lX_]); + var counter$0=counter + 1 | 0; + return ocaml_lex_read_json_rec(counter$0,v,lexbuf,_lX_)} + function ocaml_lex_read_json_rec(counter,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); + if(19 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return _bS_; + case 1:return _bT_; + case 2:return 870828711; + case 3:return [0,365180284,Stdlib[24]]; + case 4:return [0,365180284,Stdlib[22]]; + case 5:return [0,365180284,Stdlib[23]]; + case 6: + caml_call1(Stdlib_Buffer[8],v[1]); + return [0,-976970511,finish_string$1(v,lexbuf)]; + case 7: + try + {var _lN_=[0,3654863,extract_positive_int(lexbuf)];return _lN_} + catch(_lW_) + {_lW_ = caml_wrap_exception(_lW_); + if(_lW_ === Int_overflow) + return lexer_error(cst_Int_overflow,v,lexbuf); + throw _lW_} + case 8: + try + {var _lO_=[0,3654863,extract_negative_int(lexbuf)];return _lO_} + catch(_lV_) + {_lV_ = caml_wrap_exception(_lV_); + if(_lV_ === Int_overflow) + return lexer_error(cst_Int_overflow$0,v,lexbuf); + throw _lV_} + case 9: + return [0, + 365180284, + caml_float_of_string(caml_call1(lexeme,lexbuf))]; + case 10: + var acc=[0,0]; + try + {read_space(v,lexbuf); + read_object_end(lexbuf); + var field_name=read_ident(v,lexbuf); + read_space(v,lexbuf); + read_colon(v,lexbuf); + read_space(v,lexbuf); + var _lP_=acc[1]; + acc[1] = [0,[0,field_name,read_json(v,lexbuf)],_lP_]; + for(;;) + {read_space(v,lexbuf); + read_object_sep(v,lexbuf); + read_space(v,lexbuf); + var field_name$0=read_ident(v,lexbuf); + read_space(v,lexbuf); + read_colon(v,lexbuf); + read_space(v,lexbuf); + var _lQ_=acc[1]; + acc[1] = [0,[0,field_name$0,read_json(v,lexbuf)],_lQ_]}} + catch(_lU_) + {_lU_ = caml_wrap_exception(_lU_); + if(_lU_ === End_of_object) + return [0,963043957,caml_call1(Stdlib_List[9],acc[1])]; + throw _lU_} + case 11: + var acc$0=[0,0]; + try + {read_space(v,lexbuf); + read_array_end(lexbuf); + var _lR_=acc$0[1]; + acc$0[1] = [0,read_json(v,lexbuf),_lR_]; + for(;;) + {read_space(v,lexbuf); + read_array_sep(v,lexbuf); + read_space(v,lexbuf); + var _lS_=acc$0[1]; + acc$0[1] = [0,read_json(v,lexbuf),_lS_]}} + catch(_lT_) + {_lT_ = caml_wrap_exception(_lT_); + if(_lT_ === End_of_array) + return [0,848054398,caml_call1(Stdlib_List[9],acc$0[1])]; + throw _lT_} + case 12:return long_error(cst_Invalid_token,v,lexbuf); + case 13:return long_error(cst_Invalid_token$0,v,lexbuf); + case 14: + if(counter >= 50) + return caml_trampoline_return(read_json$2,[0,v,lexbuf]); + var counter$0=counter + 1 | 0; + return read_json$2(counter$0,v,lexbuf); + case 15: + finish_comment(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(read_json$2,[0,v,lexbuf]); + var counter$1=counter + 1 | 0; + return read_json$2(counter$1,v,lexbuf); + case 16: + newline(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(read_json$2,[0,v,lexbuf]); + var counter$2=counter + 1 | 0; + return read_json$2(counter$2,v,lexbuf); + case 17: + if(counter >= 50) + return caml_trampoline_return(read_json$2,[0,v,lexbuf]); + var counter$3=counter + 1 | 0; + return read_json$2(counter$3,v,lexbuf); + case 18:return custom_error(cst_Unexpected_end_of_input,v,lexbuf); + default:return long_error(cst_Invalid_token$1,v,lexbuf)}}} + function read_json(v,lexbuf) + {return caml_trampoline(read_json$2(0,v,lexbuf))} + function finish_string$1(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=58; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call1(Stdlib_Buffer[2],v[1]); + case 1:finish_escaped_char(v,lexbuf);continue a; + case 2:add_lexeme(v[1],lexbuf);continue a; + default: + return custom_error(cst_Unexpected_end_of_input$0,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function map_string(v,f,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=63; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + var b=v[1],_lM_=caml_call1(Stdlib_Buffer[7],b); + return caml_call3(f,caml_call1(Stdlib_Buffer[2],b),0,_lM_); + case 1:finish_escaped_char(v,lexbuf);continue a; + case 2:add_lexeme(v[1],lexbuf);continue a; + default: + return custom_error(cst_Unexpected_end_of_input$1,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function finish_escaped_char(v,lexbuf) + {var ocaml_lex_state=68; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(8 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0: + var c=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5]); + return caml_call2(Stdlib_Buffer[12],v[1],c); + case 1:return caml_call2(Stdlib_Buffer[12],v[1],8); + case 2:return caml_call2(Stdlib_Buffer[12],v[1],12); + case 3:return caml_call2(Stdlib_Buffer[12],v[1],10); + case 4:return caml_call2(Stdlib_Buffer[12],v[1],13); + case 5:return caml_call2(Stdlib_Buffer[12],v[1],9); + case 6: var - ocaml_lex_state$4 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$3, lexbuf); - if(0 === ocaml_lex_state$4){ - caml_call2(Stdlib_Buffer[12], v[1], 125); - throw caml_maybe_attach_backtrace(End_of_object, 1); - } - if(1 !== ocaml_lex_state$4){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$3 = ocaml_lex_state$4; - continue; - } - buffer_ident$0(v, lexbuf); - buffer_space$0(v, lexbuf); - buffer_colon$0(v, lexbuf); - buffer_space$0(v, lexbuf); - buffer_json$0(v, lexbuf); - b: - for(;;){ - buffer_space$0(v, lexbuf); - var ocaml_lex_state$5 = 480; - for(;;){ - var - ocaml_lex_state$6 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$5, lexbuf); - if(3 < ocaml_lex_state$6 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$5 = ocaml_lex_state$6; - continue; - } - switch(ocaml_lex_state$6){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 44); break; - case 1: - caml_call2(Stdlib_Buffer[12], v[1], 125); - throw caml_maybe_attach_backtrace(End_of_object, 1); - case 2: - long_error$0(cst_Expected_or_but_found$26, v, lexbuf); break; - default: - custom_error$0(cst_Unexpected_end_of_input$87, v, lexbuf); - } - buffer_space$0(v, lexbuf); - buffer_ident$0(v, lexbuf); - buffer_space$0(v, lexbuf); - buffer_colon$0(v, lexbuf); - buffer_space$0(v, lexbuf); - buffer_json$0(v, lexbuf); - continue b; - } - } - } - } - catch(_h6_){ - var _h1_ = caml_wrap_exception(_h6_); - if(_h1_ === End_of_object) return 0; - throw caml_maybe_attach_backtrace(_h1_, 0); - } - case 3: - try{ - caml_call2(Stdlib_Buffer[12], v[1], 91); - buffer_space$0(v, lexbuf); - var ocaml_lex_state$7 = 485; - for(;;){ - var - ocaml_lex_state$8 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$7, lexbuf); - if(0 === ocaml_lex_state$8){ - caml_call2(Stdlib_Buffer[12], v[1], 93); - throw caml_maybe_attach_backtrace(End_of_array, 1); - } - if(1 !== ocaml_lex_state$8){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$7 = ocaml_lex_state$8; - continue; - } - buffer_json$0(v, lexbuf); - b: - for(;;){ - buffer_space$0(v, lexbuf); - var ocaml_lex_state$9 = 487; - for(;;){ - var - ocaml_lex_state$10 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$9, lexbuf); - if(3 < ocaml_lex_state$10 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$9 = ocaml_lex_state$10; - continue; - } - switch(ocaml_lex_state$10){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 44); break; - case 1: - caml_call2(Stdlib_Buffer[12], v[1], 93); - throw caml_maybe_attach_backtrace(End_of_array, 1); - case 2: - long_error$0(cst_Expected_or_but_found$27, v, lexbuf); break; - default: - custom_error$0(cst_Unexpected_end_of_input$88, v, lexbuf); - } - buffer_space$0(v, lexbuf); - buffer_json$0(v, lexbuf); - continue b; - } - } - } - } - catch(_h5_){ - var _h2_ = caml_wrap_exception(_h5_); - if(_h2_ === End_of_array) return 0; - throw caml_maybe_attach_backtrace(_h2_, 0); - } - case 4: - try{ - caml_call2(Stdlib_Buffer[12], v[1], 40); - buffer_space$0(v, lexbuf); - var ocaml_lex_state$11 = 492; - for(;;){ - var - ocaml_lex_state$12 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$11, lexbuf); - if(0 === ocaml_lex_state$12){ - caml_call2(Stdlib_Buffer[12], v[1], 41); - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - } - if(1 !== ocaml_lex_state$12){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$11 = ocaml_lex_state$12; - continue; - } - buffer_json$0(v, lexbuf); - b: - for(;;){ - buffer_space$0(v, lexbuf); - var ocaml_lex_state$13 = 494; - for(;;){ - var - ocaml_lex_state$14 = - caml_lex_engine - (ocaml_lex_tables$0, ocaml_lex_state$13, lexbuf); - if(3 < ocaml_lex_state$14 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$13 = ocaml_lex_state$14; - continue; - } - switch(ocaml_lex_state$14){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 44); break; - case 1: - caml_call2(Stdlib_Buffer[12], v[1], 41); - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 2: - long_error$0(cst_Expected_or_but_found$28, v, lexbuf); break; - default: - custom_error$0(cst_Unexpected_end_of_input$89, v, lexbuf); - } - buffer_space$0(v, lexbuf); - buffer_json$0(v, lexbuf); - continue b; - } - } - } - } - catch(_h4_){ - var _h3_ = caml_wrap_exception(_h4_); - if(_h3_ === End_of_tuple) return 0; - throw caml_maybe_attach_backtrace(_h3_, 0); - } - case 5: - caml_call2(Stdlib_Buffer[12], v[1], 60); - buffer_space$0(v, lexbuf); - buffer_ident$0(v, lexbuf); - buffer_space$0(v, lexbuf); - var ocaml_lex_state$1 = 461; - for(;;){ - var - ocaml_lex_state$2 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$1, lexbuf); - if(3 < ocaml_lex_state$2 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$1 = ocaml_lex_state$2; - continue; - } - switch(ocaml_lex_state$2){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 58); - buffer_json$0(v, lexbuf); - buffer_space$0(v, lexbuf); - var ocaml_lex_state$15 = 503; - for(;;){ - var - ocaml_lex_state$16 = - caml_lex_engine - (ocaml_lex_tables$0, ocaml_lex_state$15, lexbuf); - if(2 >= ocaml_lex_state$16 >>> 0) - switch(ocaml_lex_state$16){ - case 0: - return caml_call2(Stdlib_Buffer[12], v[1], 62); + a=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 1 | 0), + b=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 2 | 0), + c$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 3 | 0), + d=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 4 | 0), + _lG_=hex$1(d), + _lH_=hex$1(c$0) << 4, + _lI_=hex$1(b) << 8, + x=hex$1(a) << 12 | _lI_ | _lH_ | _lG_; + if(55296 <= x && 56319 >= x) + {var ocaml_lex_state$1=82; + for(;;) + {var + ocaml_lex_state$2= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$1,lexbuf); + if(2 < ocaml_lex_state$2 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$1=ocaml_lex_state$2; + continue} + switch(ocaml_lex_state$2) + {case 0: + var + a$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 2 | 0), + b$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 3 | 0), + c$1=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 4 | 0), + d$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 5 | 0), + _lJ_=hex$1(d$0), + _lK_=hex$1(c$1) << 4, + _lL_=hex$1(b$0) << 8, + y=hex$1(a$0) << 12 | _lL_ | _lK_ | _lJ_; + if(56320 <= y && 57343 >= y) + return utf8_of_surrogate_pair(v[1],x,y); + return long_error(cst_Invalid_low_surrogate_for_,v,lexbuf); case 1: - return long_error$0(cst_Expected_but_found$29, v, lexbuf); + return long_error(cst_Missing_escape_sequence_re,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$3,v,lexbuf)}}} + return utf8_of_code(v[1],x); + case 7:return long_error(cst_Invalid_escape_sequence,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$2,v,lexbuf)}}} + function finish_stringlit(v,lexbuf) + {var ocaml_lex_state=91; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + var + len=lexbuf[6] - lexbuf[5] | 0, + s=caml_create_bytes(len + 1 | 0); + caml_bytes_set(s,0,34); + caml_call5(Stdlib_Bytes[11],lexbuf[2],lexbuf[5],s,1,len); + return caml_call1(Stdlib_Bytes[6],s); + case 1:return long_error(cst_Invalid_string_literal,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$4,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_variant(v,lexbuf) + {var ocaml_lex_state=102; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + var x=read_json(v,lexbuf); + read_space(v,lexbuf); + read_gt(v,lexbuf); + return [0,x]; + case 1:return 0; + case 2:return long_error(cst_Expected_or_but_found,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$5,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_lt(v,lexbuf) + {var ocaml_lex_state=107; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Expected_but_found,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$6,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_gt(v,lexbuf) + {var ocaml_lex_state=111; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Expected_but_found$0,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$7,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_comma(v,lexbuf) + {var ocaml_lex_state=115; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Expected_but_found$1,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$8,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function start_any_variant(v,lexbuf) + {var ocaml_lex_state=119; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return -154522342; + case 1:caml_call1(Stdlib_Buffer[8],v[1]);return -589953938; + case 2:return -124528282; + case 3:return long_error(cst_Expected_or_but_found$0,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$9,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_comment(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=125; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Unterminated_comment,v,lexbuf); + case 2:newline(v,lexbuf);continue a; + default:continue a} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function read_eof(lexbuf) + {var ocaml_lex_state=131; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)return 1; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_space(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=133; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:newline(v,lexbuf);continue a; + case 1:finish_comment(v,lexbuf);continue a; + case 2:newline(v,lexbuf);continue a; + case 3:continue a; + default:return 0} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function read_null(v,lexbuf) + {var ocaml_lex_state=140; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Expected_null_but_found,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$10,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_null_if_possible(v,lexbuf) + {var ocaml_lex_state=147; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)return 1; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_bool(v,lexbuf) + {var ocaml_lex_state=152; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(5 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 1; + case 1:return 0; + case 2:return 1; + case 3:return 0; + case 4:return long_error(cst_Expected_true_or_false_but,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$11,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function ocaml_lex_read_int_rec(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); + if(4 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + try + {var _lA_=extract_positive_int(lexbuf);return _lA_} + catch(_lF_) + {_lF_ = caml_wrap_exception(_lF_); + if(_lF_ === Int_overflow) + return lexer_error(cst_Int_overflow$1,v,lexbuf); + throw _lF_} + case 1: + try + {var _lB_=extract_negative_int(lexbuf);return _lB_} + catch(_lE_) + {_lE_ = caml_wrap_exception(_lE_); + if(_lE_ === Int_overflow) + return lexer_error(cst_Int_overflow$2,v,lexbuf); + throw _lE_} + case 2: + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$1(v,lexbuf); + try + {var _lC_=caml_int_of_string(s);return _lC_} + catch(_lD_) + {return custom_error(cst_Expected_an_integer_but_fo,v,lexbuf)} + case 3:return long_error(cst_Expected_integer_but_found,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$12,v,lexbuf)}}} + function read_int(v,lexbuf){return ocaml_lex_read_int_rec(v,lexbuf,176)} + function ocaml_lex_read_int32_rec(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); + if(3 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + try + {var _lw_=caml_int_of_string(caml_call1(lexeme,lexbuf)); + return _lw_} + catch(_lz_){return lexer_error(cst_Int32_overflow,v,lexbuf)} + case 1: + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$1(v,lexbuf); + try + {var _lx_=caml_int_of_string(s);return _lx_} + catch(_ly_) + {return custom_error(cst_Expected_an_int32_but_foun,v,lexbuf)} + case 2:return long_error(cst_Expected_int32_but_found,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$13,v,lexbuf)}}} + function read_int32(v,lexbuf) + {return ocaml_lex_read_int32_rec(v,lexbuf,185)} + function ocaml_lex_read_int64_rec(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); + if(3 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + try + {var _ls_=caml_int64_of_string(caml_call1(lexeme,lexbuf)); + return _ls_} + catch(_lv_){return lexer_error(cst_Int32_overflow$0,v,lexbuf)} + case 1: + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$1(v,lexbuf); + try + {var _lt_=caml_int64_of_string(s);return _lt_} + catch(_lu_) + {return custom_error(cst_Expected_an_int64_but_foun,v,lexbuf)} + case 2:return long_error(cst_Expected_int64_but_found,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$14,v,lexbuf)}}} + function read_int64(v,lexbuf) + {return ocaml_lex_read_int64_rec(v,lexbuf,192)} + function ocaml_lex_read_number_rec(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); + if(6 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return Stdlib[24]; + case 1:return Stdlib[22]; + case 2:return Stdlib[23]; + case 3:return caml_float_of_string(caml_call1(lexeme,lexbuf)); + case 4: + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$1(v,lexbuf); + try + {var _lq_=caml_float_of_string(s);return _lq_} + catch(_lr_) + {return caml_string_notequal(s,cst_Infinity$7) + ?caml_string_notequal(s,cst_Infinity$8) + ?caml_string_notequal(s,cst_NaN$3) + ?custom_error(cst_Expected_a_number_but_foun,v,lexbuf) + :Stdlib[24] + :Stdlib[22] + :Stdlib[23]} + case 5:return long_error(cst_Expected_number_but_found,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$15,v,lexbuf)}}} + function read_number(v,lexbuf) + {return ocaml_lex_read_number_rec(v,lexbuf,199)} + function read_string(v,lexbuf) + {var ocaml_lex_state=233; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call1(Stdlib_Buffer[8],v[1]); + return finish_string$1(v,lexbuf); + case 1:return long_error(cst_Expected_but_found$2,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$16,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_ident(v,lexbuf) + {var ocaml_lex_state=237; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call1(Stdlib_Buffer[8],v[1]); + return finish_string$1(v,lexbuf); + case 1: + var s=caml_call3(sub_lexeme,lexbuf,lexbuf[5],lexbuf[6]);return s; + case 2:return long_error(cst_Expected_string_or_identif,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$17,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function map_ident(v,f,lexbuf) + {var ocaml_lex_state=242; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call1(Stdlib_Buffer[8],v[1]);return map_string(v,f,lexbuf); + case 1: + var len=lexbuf[6] - lexbuf[5] | 0; + return caml_call3 + (f, + caml_call3(Stdlib_Bytes[8],lexbuf[2],lexbuf[5],len), + 0, + len); + case 2: + return long_error(cst_Expected_string_or_identif$0,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$18,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function ocaml_lex_read_sequence_rec + (read_cell,init_acc,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var acc=[0,init_acc]; + try + {read_space(v,lexbuf); + read_array_end(lexbuf); + acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); + for(;;) + {read_space(v,lexbuf); + read_array_sep(v,lexbuf); + read_space(v,lexbuf); + acc[1] = caml_call3(read_cell,acc[1],v,lexbuf)}} + catch(_lp_) + {_lp_ = caml_wrap_exception(_lp_); + if(_lp_ === End_of_array)return acc[1]; + throw _lp_} + case 1:return long_error(cst_Expected_but_found$3,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$19,v,lexbuf)}}} + function read_sequence(read_cell,init_acc,v,lexbuf) + {return ocaml_lex_read_sequence_rec(read_cell,init_acc,v,lexbuf,247)} + function ocaml_lex_read_list_rev_rec(read_cell,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var acc=[0,0]; + try + {read_space(v,lexbuf); + read_array_end(lexbuf); + var _lm_=acc[1]; + acc[1] = [0,caml_call2(read_cell,v,lexbuf),_lm_]; + for(;;) + {read_space(v,lexbuf); + read_array_sep(v,lexbuf); + read_space(v,lexbuf); + var _ln_=acc[1]; + acc[1] = [0,caml_call2(read_cell,v,lexbuf),_ln_]}} + catch(_lo_) + {_lo_ = caml_wrap_exception(_lo_); + if(_lo_ === End_of_array)return acc[1]; + throw _lo_} + case 1:return long_error(cst_Expected_but_found$4,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$20,v,lexbuf)}}} + function read_list_rev(read_cell,v,lexbuf) + {return ocaml_lex_read_list_rev_rec(read_cell,v,lexbuf,251)} + function read_array_end(lexbuf) + {var ocaml_lex_state=255; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)throw End_of_array; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_array_sep(v,lexbuf) + {var ocaml_lex_state=257; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:throw End_of_array; + case 2:return long_error(cst_Expected_or_but_found$1,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$21,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_tuple(read_cell,init_acc,v,lexbuf) + {var ocaml_lex_state=262; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return long_error(cst_Invalid_token$2,v,lexbuf); + case 1:return long_error(cst_Expected_but_found$5,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$22,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_tuple_end(lexbuf) + {var ocaml_lex_state=266; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)throw End_of_tuple; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_tuple_end2(v,std,lexbuf) + {var ocaml_lex_state=268; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0: + if(std)return long_error(cst_Expected_or_but_found$2,v,lexbuf); + throw End_of_tuple; + case 1: + if(std)throw End_of_tuple; + return long_error(cst_Expected_or_but_found$3,v,lexbuf); + default:return 0}}} + function read_tuple_sep(v,lexbuf) + {var ocaml_lex_state=271; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:throw End_of_tuple; + case 2:return long_error(cst_Expected_or_but_found$4,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$23,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_tuple_sep2(v,std,lexbuf) + {var ocaml_lex_state=276; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(4 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1: + if(std)return long_error(cst_Expected_or_but_found$5,v,lexbuf); + throw End_of_tuple; + case 2: + if(std)throw End_of_tuple; + return long_error(cst_Expected_or_but_found$6,v,lexbuf); + case 3:return long_error(cst_Expected_or_but_found$7,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$24,v,lexbuf)}}} + function ocaml_lex_read_abstract_fields + (read_key,read_field,init_acc,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var acc=[0,init_acc]; + try + {read_space(v,lexbuf); + read_object_end(lexbuf); + var field_name=caml_call2(read_key,v,lexbuf); + read_space(v,lexbuf); + read_colon(v,lexbuf); + read_space(v,lexbuf); + acc[1] = caml_call4(read_field,acc[1],field_name,v,lexbuf); + for(;;) + {read_space(v,lexbuf); + read_object_sep(v,lexbuf); + read_space(v,lexbuf); + var field_name$0=caml_call2(read_key,v,lexbuf); + read_space(v,lexbuf); + read_colon(v,lexbuf); + read_space(v,lexbuf); + acc[1] = caml_call4(read_field,acc[1],field_name$0,v,lexbuf)}} + catch(_ll_) + {_ll_ = caml_wrap_exception(_ll_); + if(_ll_ === End_of_object)return acc[1]; + throw _ll_} + case 1:return long_error(cst_Expected_but_found$6,v,lexbuf); + default:return custom_error(cst_Unexpected_end_of_input$25,v,lexbuf)}}} + function read_abstract_fields(read_key,read_field,init_acc,v,lexbuf) + {return ocaml_lex_read_abstract_fields + (read_key,read_field,init_acc,v,lexbuf,282)} + function read_lcurl(v,lexbuf) + {var ocaml_lex_state=286; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Expected_but_found$7,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$26,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_object_end(lexbuf) + {var ocaml_lex_state=290; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)throw End_of_object; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_object_sep(v,lexbuf) + {var ocaml_lex_state=292; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:throw End_of_object; + case 2:return long_error(cst_Expected_or_but_found$8,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$27,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_colon(v,lexbuf) + {var ocaml_lex_state=297; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Expected_but_found$8,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$28,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function start_any_tuple(v,lexbuf) + {var ocaml_lex_state=301; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return 1; + case 2:return long_error(cst_Expected_or_but_found$9,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$29,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_lpar(v,lexbuf) + {var ocaml_lex_state=306; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Expected_but_found$9,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$30,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_rpar(v,lexbuf) + {var ocaml_lex_state=310; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Expected_but_found$10,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$31,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_lbr(v,lexbuf) + {var ocaml_lex_state=314; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Expected_but_found$11,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$32,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_rbr(v,lexbuf) + {var ocaml_lex_state=318; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Expected_but_found$12,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$33,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_skip_stringlit(v,lexbuf) + {var ocaml_lex_state=378; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error(cst_Invalid_string_literal$0,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$35,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function skip_json$2(counter,v,lexbuf) + {var _lk_=322; + if(counter >= 50) + return caml_trampoline_return + (ocaml_lex_skip_json_rec,[0,v,lexbuf,_lk_]); + var counter$0=counter + 1 | 0; + return ocaml_lex_skip_json_rec(counter$0,v,lexbuf,_lk_)} + function ocaml_lex_skip_json_rec(counter,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); + if(18 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return 0; + case 1:return 0; + case 2:return 0; + case 3:return 0; + case 4:return 0; + case 5:return 0; + case 6:return finish_skip_stringlit(v,lexbuf); + case 7:return 0; + case 8:return 0; + case 9: + try + {read_space(v,lexbuf); + read_object_end(lexbuf); + skip_ident(v,lexbuf); + read_space(v,lexbuf); + read_colon(v,lexbuf); + read_space(v,lexbuf); + skip_json(v,lexbuf); + for(;;) + {read_space(v,lexbuf); + read_object_sep(v,lexbuf); + read_space(v,lexbuf); + skip_ident(v,lexbuf); + read_space(v,lexbuf); + read_colon(v,lexbuf); + read_space(v,lexbuf); + skip_json(v,lexbuf)}} + catch(_lj_) + {_lj_ = caml_wrap_exception(_lj_); + if(_lj_ === End_of_object)return 0; + throw _lj_} + case 10: + try + {read_space(v,lexbuf); + read_array_end(lexbuf); + skip_json(v,lexbuf); + for(;;) + {read_space(v,lexbuf); + read_array_sep(v,lexbuf); + read_space(v,lexbuf); + skip_json(v,lexbuf)}} + catch(_li_) + {_li_ = caml_wrap_exception(_li_); + if(_li_ === End_of_array)return 0; + throw _li_} + case 11:return long_error(cst_Invalid_token$3,v,lexbuf); + case 12:return long_error(cst_Invalid_token$4,v,lexbuf); + case 13: + if(counter >= 50) + return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); + var counter$0=counter + 1 | 0; + return skip_json$2(counter$0,v,lexbuf); + case 14: + finish_comment(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); + var counter$1=counter + 1 | 0; + return skip_json$2(counter$1,v,lexbuf); + case 15: + newline(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); + var counter$2=counter + 1 | 0; + return skip_json$2(counter$2,v,lexbuf); + case 16: + if(counter >= 50) + return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); + var counter$3=counter + 1 | 0; + return skip_json$2(counter$3,v,lexbuf); + case 17: + return custom_error(cst_Unexpected_end_of_input$34,v,lexbuf); + default:return long_error(cst_Invalid_token$5,v,lexbuf)}}} + function skip_json(v,lexbuf) + {return caml_trampoline(skip_json$2(0,v,lexbuf))} + function finish_skip_variant(v,lexbuf) + {var ocaml_lex_state=389; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + skip_json(v,lexbuf);read_space(v,lexbuf);return read_gt(v,lexbuf); + case 1:return 0; + case 2:return long_error(cst_Expected_or_but_found$10,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$36,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function skip_ident(v,lexbuf) + {var ocaml_lex_state=394; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return finish_skip_stringlit(v,lexbuf); + case 1:return 0; + case 2: + return long_error(cst_Expected_string_or_identif$1,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$37,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_buffer_stringlit(v,lexbuf) + {var ocaml_lex_state=450; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call2(Stdlib_Buffer[12],v[1],34); + return add_lexeme(v[1],lexbuf); + case 1:return long_error(cst_Invalid_string_literal$1,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$39,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_json$2(counter,v,lexbuf) + {var _lh_=399; + if(counter >= 50) + return caml_trampoline_return + (ocaml_lex_buffer_json_rec,[0,v,lexbuf,_lh_]); + var counter$0=counter + 1 | 0; + return ocaml_lex_buffer_json_rec(counter$0,v,lexbuf,_lh_)} + function ocaml_lex_buffer_json_rec(counter,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); + if(11 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return add_lexeme(v[1],lexbuf); + case 1:return finish_buffer_stringlit(v,lexbuf); + case 2: + try + {caml_call2(Stdlib_Buffer[12],v[1],123); + buffer_space(v,lexbuf); + buffer_object_end(v,lexbuf); + buffer_ident(v,lexbuf); + buffer_space(v,lexbuf); + buffer_colon(v,lexbuf); + buffer_space(v,lexbuf); + buffer_json(v,lexbuf); + for(;;) + {buffer_space(v,lexbuf); + buffer_object_sep(v,lexbuf); + buffer_space(v,lexbuf); + buffer_ident(v,lexbuf); + buffer_space(v,lexbuf); + buffer_colon(v,lexbuf); + buffer_space(v,lexbuf); + buffer_json(v,lexbuf)}} + catch(_lg_) + {_lg_ = caml_wrap_exception(_lg_); + if(_lg_ === End_of_object)return 0; + throw _lg_} + case 3: + try + {caml_call2(Stdlib_Buffer[12],v[1],91); + buffer_space(v,lexbuf); + buffer_array_end(v,lexbuf); + buffer_json(v,lexbuf); + for(;;) + {buffer_space(v,lexbuf); + buffer_array_sep(v,lexbuf); + buffer_space(v,lexbuf); + buffer_json(v,lexbuf)}} + catch(_lf_) + {_lf_ = caml_wrap_exception(_lf_); + if(_lf_ === End_of_array)return 0; + throw _lf_} + case 4:return long_error(cst_Invalid_token$6,v,lexbuf); + case 5:return long_error(cst_Invalid_token$7,v,lexbuf); + case 6: + add_lexeme(v[1],lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); + var counter$0=counter + 1 | 0; + return buffer_json$2(counter$0,v,lexbuf); + case 7: + caml_call2(Stdlib_Buffer[16],v[1],cst$34); + finish_buffer_comment(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); + var counter$1=counter + 1 | 0; + return buffer_json$2(counter$1,v,lexbuf); + case 8: + caml_call2(Stdlib_Buffer[12],v[1],10); + newline(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); + var counter$2=counter + 1 | 0; + return buffer_json$2(counter$2,v,lexbuf); + case 9: + add_lexeme(v[1],lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); + var counter$3=counter + 1 | 0; + return buffer_json$2(counter$3,v,lexbuf); + case 10: + return custom_error(cst_Unexpected_end_of_input$38,v,lexbuf); + default:return long_error(cst_Invalid_token$8,v,lexbuf)}}} + function buffer_json(v,lexbuf) + {return caml_trampoline(buffer_json$2(0,v,lexbuf))} + function buffer_ident(v,lexbuf) + {var ocaml_lex_state=466; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return finish_buffer_stringlit(v,lexbuf); + case 1:return add_lexeme(v[1],lexbuf); + case 2: + return long_error(cst_Expected_string_or_identif$2,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$40,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_space(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=471; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:add_lexeme(v[1],lexbuf);newline(v,lexbuf);continue a; + case 1: + caml_call2(Stdlib_Buffer[16],v[1],cst$35); + finish_buffer_comment(v,lexbuf); + continue a; + case 2: + caml_call2(Stdlib_Buffer[12],v[1],10); + newline(v,lexbuf); + continue a; + case 3:add_lexeme(v[1],lexbuf);continue a; + default:return 0} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function buffer_object_end(v,lexbuf) + {var ocaml_lex_state=478; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0) + {caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object} + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_object_sep(v,lexbuf) + {var ocaml_lex_state=480; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); + case 1:caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object; + case 2:return long_error(cst_Expected_or_but_found$11,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$41,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_array_end(v,lexbuf) + {var ocaml_lex_state=485; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0) + {caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array} + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_array_sep(v,lexbuf) + {var ocaml_lex_state=487; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); + case 1:caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array; + case 2:return long_error(cst_Expected_or_but_found$12,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$42,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_colon(v,lexbuf) + {var ocaml_lex_state=499; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],58); + case 1:return long_error(cst_Expected_but_found$13,v,lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$43,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_buffer_comment(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=507; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[16],v[1],cst$36); + case 1:return long_error(cst_Unterminated_comment$0,v,lexbuf); + case 2: + caml_call2(Stdlib_Buffer[12],v[1],10); + newline(v,lexbuf); + continue a; + default:add_lexeme(v[1],lexbuf);continue a} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function junk(lexbuf) + {var ocaml_lex_state=513; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)return caml_call1(lexeme,lexbuf); + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + read_junk[1] = junk; + function read_int8(v,lexbuf) + {var n=read_int(v,lexbuf); + if(0 <= n && 255 >= n)return caml_call1(Stdlib[29],n); + return lexer_error(cst_Int8_overflow,v,lexbuf)} + function read_list(read_cell,v,lexbuf) + {var _le_=read_list_rev(read_cell,v,lexbuf); + return caml_call1(Stdlib_List[9],_le_)} + function read_array(read_cell,v,lexbuf) + {var l=read_list_rev(read_cell,v,lexbuf); + if(! l)return [0]; + var + tl=l[2], + x=l[1], + len=caml_call1(Stdlib_List[1],l), + a=caml_make_vect(len,x), + r=[0,tl], + _lb_=len - 2 | 0; + if(_lb_ >= 0) + {var i=_lb_; + for(;;) + {var _lc_=caml_call1(Stdlib_List[5],r[1]); + caml_check_bound(a,i)[1 + i] = _lc_; + r[1] = caml_call1(Stdlib_List[6],r[1]); + var _ld_=i - 1 | 0; + if(0 !== i){var i=_ld_;continue} + break}} + return a} + function read_fields(read_field,init_acc,v) + {return function(_la_) + {return read_abstract_fields(read_ident,read_field,init_acc,v,_la_)}} + function from_lexbuf(v,opt,lexbuf) + {if(opt)var sth=opt[1],stream=sth;else var stream=0; + read_space(v,lexbuf); + if(read_eof(lexbuf))throw End_of_input; + var x=read_json(v,lexbuf); + if(1 - stream) + {read_space(v,lexbuf); + if(1 - read_eof(lexbuf)) + long_error(cst_Junk_after_end_of_JSON_val,v,lexbuf)} + return x} + function from_string$0(buf,fname,lnum,s) + {try + {var + lexbuf=caml_call2(from_string,0,s), + v=init_lexer(buf,fname,lnum,0), + _k__=from_lexbuf(v,0,lexbuf); + return _k__} + catch(_k$_) + {_k$_ = caml_wrap_exception(_k$_); + if(_k$_ === End_of_input)return json_error(cst_Blank_input_data); + throw _k$_}} + function from_channel$0(buf,fname,lnum,ic) + {try + {var + lexbuf=caml_call2(from_channel,0,ic), + v=init_lexer(buf,fname,lnum,0), + _k8_=from_lexbuf(v,0,lexbuf); + return _k8_} + catch(_k9_) + {_k9_ = caml_wrap_exception(_k9_); + if(_k9_ === End_of_input)return json_error(cst_Blank_input_data$0); + throw _k9_}} + function from_file(buf,fname,lnum,file) + {var ic=caml_call1(Stdlib[79],file); + try + {var x=from_channel$0(buf,fname,lnum,ic); + caml_call1(Stdlib[93],ic); + return x} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[94],ic);throw e}} + var Finally=[248,cst_Yojson_Basic_Finally,caml_fresh_oo_id(0)]; + function seq_from_lexbuf(v,opt,lexbuf) + {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; + function f(param) + {try + {var _k7_=[0,from_lexbuf(v,stream,lexbuf),f];return _k7_} + catch(e) + {e = caml_wrap_exception(e); + if(e === End_of_input){caml_call1(fin,0);return 0} + try + {caml_call1(fin,0)} + catch(fin_e) + {fin_e = caml_wrap_exception(fin_e);throw [0,Finally,e,fin_e]} + throw e}} + return f} + function seq_from_string(buf,fname,lnum,s) + {var v=init_lexer(buf,fname,lnum,0); + return seq_from_lexbuf(v,0,caml_call2(from_string,0,s))} + function seq_from_channel(buf,fin,fname,lnum,ic) + {var lexbuf=caml_call2(from_channel,0,ic),v=init_lexer(buf,fname,lnum,0); + return seq_from_lexbuf(v,fin,lexbuf)} + function seq_from_file(buf,fname,lnum,file) + {var ic=caml_call1(Stdlib[79],file); + function fin(param){return caml_call1(Stdlib[93],ic)} + var + fname$0=fname || [0,file], + lexbuf=caml_call2(from_channel,0,ic), + v=init_lexer(buf,fname$0,lnum,0); + return seq_from_lexbuf(v,[0,fin],lexbuf)} + function lineseq_from_channel(buf,opt,fname,_kZ_,ic) + {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; + if(_kZ_)var sth$0=_kZ_[1],lnum0=sth$0;else var lnum0=1; + var buf$0=buf || [0,caml_call1(Stdlib_Buffer[1],256)]; + function f(lnum,param) + {try + {var + line=caml_call1(Stdlib[83],ic), + _k2_=lnum + 1 | 0, + _k3_=function(_k6_){return f(_k2_,_k6_)}, + _k4_= + [0,[0,826371656,from_string$0(buf$0,fname,[0,lnum],line)],_k3_]; + return _k4_} + catch(e) + {e = caml_wrap_exception(e); + if(e === Stdlib[12]){caml_call1(fin,0);return 0} + var _k1_=lnum + 1 | 0; + return [0,[0,3458171,e],function(_k5_){return f(_k1_,_k5_)}]}} + return function(_k0_){return f(lnum0,_k0_)}} + function lineseq_from_file(buf,fname,lnum,file) + {var ic=caml_call1(Stdlib[79],file); + function fin(param){return caml_call1(Stdlib[93],ic)} + var fname$0=fname || [0,file]; + return lineseq_from_channel(buf,[0,fin],fname$0,lnum,ic)} + function prettify(std,s) + {return pretty_to_string$0(std,from_string$0(0,0,0,s))} + function compact(std,s) + {return to_string$0(0,0,0,0,from_string$0(0,0,0,s))} + var Type_error=[248,cst_Yojson_Basic_Util_Type_err,caml_fresh_oo_id(0)]; + function typerr(msg,js) + {if(typeof js === "number") + var _kY_=cst_null$3; + else + var + _kX_=js[1], + _kY_= + 708012133 <= _kX_ + ?726928360 === _kX_ + ?cst_tuple + :848054398 <= _kX_ + ?963043957 <= _kX_?cst_object:cst_array + :737456202 <= _kX_?cst_bool:cst_variant + :3654863 <= _kX_ + ?365180284 <= _kX_?cst_float:cst_int + :-752863768 <= _kX_?cst_intlit:cst_string; + throw [0,Type_error,caml_call2(Stdlib[28],msg,_kY_),js]} + var Undefined=[248,cst_Yojson_Basic_Util_Undefine,caml_fresh_oo_id(0)]; + function assoc(name,obj) + {try + {var _kV_=caml_call2(Stdlib_List[46],name,obj);return _kV_} + catch(_kW_) + {_kW_ = caml_wrap_exception(_kW_); + if(_kW_ === Stdlib[8])return 870828711; + throw _kW_}} + function member(name,js) + {if(typeof js !== "number" && 963043957 === js[1]) + {var obj=js[2];return assoc(name,obj)} + var _kU_=caml_call2(Stdlib[28],name,cst_of_non_object_type); + return typerr(caml_call2(Stdlib[28],cst_Can_t_get_member,_kU_),js)} + function index(i,js) + {if(typeof js !== "number" && 848054398 === js[1]) + {var + l=js[2], + len=caml_call1(Stdlib_List[1],l), + wrapped_index=0 <= i?i:len + i | 0; + if(0 <= wrapped_index && len > wrapped_index) + return caml_call2(Stdlib_List[7],l,wrapped_index); + var + _kS_=caml_call1(Stdlib[33],i), + _kT_=caml_call2(Stdlib[28],_kS_,cst_out_of_bounds); + throw [0,Undefined,caml_call2(Stdlib[28],cst_Index,_kT_),js]} + var + _kQ_=caml_call1(Stdlib[33],i), + _kR_=caml_call2(Stdlib[28],_kQ_,cst_of_non_array_type); + return typerr(caml_call2(Stdlib[28],cst_Can_t_get_index,_kR_),js)} + function map(f,js) + {if(typeof js !== "number" && 848054398 === js[1]) + {var l=js[2];return [0,848054398,caml_call2(Stdlib_List[19],f,l)]} + return typerr(cst_Can_t_map_function_over_no,js)} + function to_assoc(js) + {if(typeof js !== "number" && 963043957 === js[1]) + {var obj=js[2];return obj} + return typerr(cst_Expected_object_got,js)} + function to_option(f,x){return 870828711 === x?0:[0,caml_call1(f,x)]} + function to_bool(js) + {if(typeof js !== "number" && 737456202 === js[1]){var b=js[2];return b} + return typerr(cst_Expected_bool_got,js)} + function to_bool_option(js) + {if(typeof js === "number") + {if(870828711 === js)return 0} + else + if(737456202 === js[1]){var b=js[2];return [0,b]} + return typerr(cst_Expected_bool_or_null_got,js)} + function to_number(js) + {if(typeof js !== "number") + {var _kP_=js[1]; + if(3654863 === _kP_){var i=js[2];return i} + if(365180284 === _kP_){var f=js[2];return f}} + return typerr(cst_Expected_number_got,js)} + function to_number_option(js) + {if(typeof js === "number") + {if(870828711 === js)return 0} + else + {var _kO_=js[1]; + if(3654863 === _kO_){var i=js[2];return [0,i]} + if(365180284 === _kO_){var f=js[2];return [0,f]}} + return typerr(cst_Expected_number_or_null_go,js)} + function to_float(js) + {if(typeof js !== "number" && 365180284 === js[1]){var f=js[2];return f} + return typerr(cst_Expected_float_got,js)} + function to_float_option(js) + {if(typeof js === "number") + {if(870828711 === js)return 0} + else + if(365180284 === js[1]){var f=js[2];return [0,f]} + return typerr(cst_Expected_float_or_null_got,js)} + function to_int(js) + {if(typeof js !== "number" && 3654863 === js[1]){var i=js[2];return i} + return typerr(cst_Expected_int_got,js)} + function to_int_option(js) + {if(typeof js === "number") + {if(870828711 === js)return 0} + else + if(3654863 === js[1]){var i=js[2];return [0,i]} + return typerr(cst_Expected_int_or_null_got,js)} + function to_list(js) + {if(typeof js !== "number" && 848054398 === js[1]){var l=js[2];return l} + return typerr(cst_Expected_array_got,js)} + function to_string$1(js) + {if(typeof js !== "number" && -976970511 === js[1]){var s=js[2];return s} + return typerr(cst_Expected_string_got,js)} + function to_string_option(js) + {if(typeof js === "number") + {if(870828711 === js)return 0} + else + if(-976970511 === js[1]){var s=js[2];return [0,s]} + return typerr(cst_Expected_string_or_null_go,js)} + function convert_each(f,js) + {if(typeof js !== "number" && 848054398 === js[1]) + {var l=js[2];return caml_call2(Stdlib_List[19],f,l)} + return typerr(cst_Can_t_convert_each_element,js)} + function filter_map(f,l$0) + {var acc=0,l=l$0; + for(;;) + {if(! l)return caml_call1(Stdlib_List[9],acc); + var tl=l[2],x=l[1],match=caml_call1(f,x); + if(match){var y=match[1],acc$0=[0,y,acc],acc=acc$0,l=tl;continue} + var l=tl}} + function flatten(l$0) + {var acc=0,l=l$0; + for(;;) + {if(! l)return caml_call1(Stdlib_List[9],acc); + var tl=l[2],x=l[1]; + if(typeof x !== "number" && 848054398 === x[1]) + {var l2=x[2],acc$0=caml_call2(Stdlib_List[12],l2,acc),acc=acc$0,l=tl; + continue} + var l=tl}} + function filter_index(i,l) + {return filter_map + (function(param) + {if(typeof param !== "number" && 848054398 === param[1]) + {var l=param[2]; + try + {var _kM_=[0,caml_call2(Stdlib_List[7],l,i)];return _kM_} + catch(_kN_){return 0}} + return 0}, + l)} + function filter_list(l) + {return filter_map + (function(param) + {if(typeof param !== "number" && 848054398 === param[1]) + {var l=param[2];return [0,l]} + return 0}, + l)} + function filter_member(k,l) + {return filter_map + (function(param) + {if(typeof param !== "number" && 963043957 === param[1]) + {var l=param[2]; + try + {var _kK_=[0,caml_call2(Stdlib_List[46],k,l)];return _kK_} + catch(_kL_){return 0}} + return 0}, + l)} + function filter_assoc(l) + {return filter_map + (function(param) + {if(typeof param !== "number" && 963043957 === param[1]) + {var l=param[2];return [0,l]} + return 0}, + l)} + function filter_bool(l) + {return filter_map + (function(param) + {if(typeof param !== "number" && 737456202 === param[1]) + {var x=param[2];return [0,x]} + return 0}, + l)} + function filter_int(l) + {return filter_map + (function(param) + {if(typeof param !== "number" && 3654863 === param[1]) + {var x=param[2];return [0,x]} + return 0}, + l)} + function filter_float(l) + {return filter_map + (function(param) + {if(typeof param !== "number" && 365180284 === param[1]) + {var x=param[2];return [0,x]} + return 0}, + l)} + function filter_number(l) + {return filter_map + (function(param) + {if(typeof param !== "number") + {var _kJ_=param[1]; + if(3654863 === _kJ_){var x=param[2];return [0,x]} + if(365180284 === _kJ_){var x$0=param[2];return [0,x$0]}} + return 0}, + l)} + function filter_string(l) + {return filter_map + (function(param) + {if(typeof param !== "number" && -976970511 === param[1]) + {var x=param[2];return [0,x]} + return 0}, + l)} + function keys(o) + {var _kH_=to_assoc(o); + function _kI_(param){var key=param[1];return key} + return caml_call1(caml_call1(Stdlib_List[19],_kI_),_kH_)} + function values(o) + {var _kF_=to_assoc(o); + function _kG_(param){var value=param[2];return value} + return caml_call1(caml_call1(Stdlib_List[19],_kG_),_kF_)} + function combine(first,second) + {if + (typeof first + !== + "number" + && + 963043957 + === + first[1] + && + typeof second + !== + "number" + && + 963043957 + === + second[1]) + {var b=second[2],a=first[2]; + return [0,963043957,caml_call2(Stdlib[37],a,b)]} + throw [0,Stdlib[6],cst_Expected_two_objects_check]} + function to_basic(x) + {if(typeof x !== "number") + {var _ky_=x[1]; + if(726928360 <= _ky_) + {if(737456202 !== _ky_) + {if(963043957 <= _ky_) + {var + l=x[2], + _kz_= + function(param) + {var v=param[2],k=param[1];return [0,k,to_basic(v)]}, + _kA_=caml_call2(Stdlib_List[21],_kz_,l); + return [0,963043957,caml_call1(Stdlib_List[9],_kA_)]} + var l$0=x[2],_kB_=caml_call2(Stdlib_List[21],to_basic,l$0); + return [0,848054398,caml_call1(Stdlib_List[9],_kB_)]}} + else + {if(-752863768 === _ky_){var s=x[2];return [0,-976970511,s]} + if(708012133 <= _ky_) + {var _kC_=x[2],_kD_=_kC_[2],_kE_=_kC_[1]; + if(! _kD_)return [0,-976970511,_kE_]; + var v=_kD_[1]; + return [0,848054398,[0,[0,-976970511,_kE_],[0,to_basic(v),0]]]}}} + return x} + function hex$2(n) + {var _kx_=10 <= n?n + 87 | 0:n + 48 | 0; + return caml_call1(Stdlib_Char[1],_kx_)} + function write_special$1(src,start,stop,ob,str) + {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16],ob,str); + start[1] = stop + 1 | 0; + return 0} + function finish_string$2(src,start,ob) + {try + {var + _kw_= + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + return _kw_} + catch(exc) + {exc = caml_wrap_exception(exc); + caml_call4 + (Stdlib_Printf[3], + _bU_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw exc}} + function write_string$1(ob,s) + {caml_call2(Stdlib_Buffer[12],ob,34); + var start=[0,0],_ku_=caml_ml_string_length(s) - 1 | 0,_kt_=0; + if(_ku_ >= 0) + {var i=_kt_; + for(;;) + {var c=caml_string_get(s,i); + if(92 === c) + write_special$1(s,start,i,ob,cst$37); + else + {var switch$0=0; + if(35 <= c) + if(127 === c)switch$0 = 1;else switch$0 = 2; + else + if(8 <= c) + {var switch$1=0; + switch(c - 8 | 0) + {case 0:write_special$1(s,start,i,ob,cst_b$1);break; + case 1:write_special$1(s,start,i,ob,cst_t$1);break; + case 2:write_special$1(s,start,i,ob,cst_n$1);break; + case 4:write_special$1(s,start,i,ob,cst_f$1);break; + case 5:write_special$1(s,start,i,ob,cst_r$1);break; + case 26:write_special$1(s,start,i,ob,cst$38);break; + case 24: + case 25:switch$0 = 2;switch$1 = 1;break; + default:switch$0 = 1;switch$1 = 1}} + else + switch$0 = 1; + switch(switch$0) + {case 2:break; + case 1: + caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); + caml_call2(Stdlib_Buffer[16],ob,cst_u00$1); + var _kr_=hex$2(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12],ob,_kr_); + var _ks_=hex$2(c & 15); + caml_call2(Stdlib_Buffer[12],ob,_ks_); + start[1] = i + 1 | 0; + break + }} + var _kv_=i + 1 | 0; + if(_ku_ !== i){var i=_kv_;continue} + break}} + finish_string$2(s,start,ob); + return caml_call2(Stdlib_Buffer[12],ob,34)} + function json_string_of_string$1(s) + {var ob=caml_call1(Stdlib_Buffer[1],10); + write_string$1(ob,s); + return caml_call1(Stdlib_Buffer[2],ob)} + function write_null$1(ob,param) + {return caml_call2(Stdlib_Buffer[16],ob,cst_null$4)} + function write_bool$1(ob,x) + {var _kq_=x?cst_true$1:cst_false$1; + return caml_call2(Stdlib_Buffer[16],ob,_kq_)} + var + _bV_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), + _bW_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); + caml_call2(Stdlib[17],_bW_,_bV_); + function write_digits$1(s,x) + {if(0 === x)return 0; + var d=x % 10 | 0; + write_digits$1(s,x / 10 | 0); + var + n=caml_call1(Stdlib[18],d), + _kp_=caml_call1(Stdlib_Char[1],n + 48 | 0); + return caml_call2(Stdlib_Buffer[12],s,_kp_)} + function write_int$1(ob,x) + {return 0 < x + ?write_digits$1(ob,x) + :0 <= x + ?caml_call2(Stdlib_Buffer[12],ob,48) + :(caml_call2(Stdlib_Buffer[12],ob,45),write_digits$1(ob,x))} + function float_needs_period$1(s) + {try + {var _kl_=caml_ml_string_length(s) - 1 | 0,_kk_=0; + if(_kl_ >= 0) + {var i=_kk_; + for(;;) + {var match=caml_string_get(s,i),switch$0=0; + if(48 <= match) + {if(58 > match)switch$0 = 1} + else + if(45 === match)switch$0 = 1; + if(! switch$0)throw Stdlib[3]; + var _kn_=i + 1 | 0; + if(_kl_ !== i){var i=_kn_;continue} + break}} + var _km_=1; + return _km_} + catch(_ko_) + {_ko_ = caml_wrap_exception(_ko_); + if(_ko_ === Stdlib[3])return 0; + throw _ko_}} + function write_float$1(ob,x) + {var match=caml_classify_float(x); + if(3 === match) + {var _ki_=0. < x?cst_Infinity$9:cst_Infinity$10; + return caml_call2(Stdlib_Buffer[16],ob,_ki_)} + if(4 <= match)return caml_call2(Stdlib_Buffer[16],ob,cst_NaN$4); + var + s1=caml_call2(Stdlib_Printf[4],_bX_,x), + s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_bY_,x); + caml_call2(Stdlib_Buffer[16],ob,s); + var _kj_=float_needs_period$1(s); + return _kj_?caml_call2(Stdlib_Buffer[16],ob,cst_0$5):_kj_} + function write_normal_float_prec$1(significant_figures,ob,x) + {var switcher=significant_figures - 1 | 0; + if(15 < switcher >>> 0) + var s=caml_call2(Stdlib_Printf[4],_bZ_,x); + else + switch(switcher) + {case 0:var s=caml_call2(Stdlib_Printf[4],_b0_,x);break; + case 1:var s=caml_call2(Stdlib_Printf[4],_b1_,x);break; + case 2:var s=caml_call2(Stdlib_Printf[4],_b2_,x);break; + case 3:var s=caml_call2(Stdlib_Printf[4],_b3_,x);break; + case 4:var s=caml_call2(Stdlib_Printf[4],_b4_,x);break; + case 5:var s=caml_call2(Stdlib_Printf[4],_b5_,x);break; + case 6:var s=caml_call2(Stdlib_Printf[4],_b6_,x);break; + case 7:var s=caml_call2(Stdlib_Printf[4],_b7_,x);break; + case 8:var s=caml_call2(Stdlib_Printf[4],_b8_,x);break; + case 9:var s=caml_call2(Stdlib_Printf[4],_b9_,x);break; + case 10:var s=caml_call2(Stdlib_Printf[4],_b__,x);break; + case 11:var s=caml_call2(Stdlib_Printf[4],_b$_,x);break; + case 12:var s=caml_call2(Stdlib_Printf[4],_ca_,x);break; + case 13:var s=caml_call2(Stdlib_Printf[4],_cb_,x);break; + case 14:var s=caml_call2(Stdlib_Printf[4],_cc_,x);break; + default:var s=caml_call2(Stdlib_Printf[4],_cd_,x)} + caml_call2(Stdlib_Buffer[16],ob,s); + var _kh_=float_needs_period$1(s); + return _kh_?caml_call2(Stdlib_Buffer[16],ob,cst_0$6):_kh_} + function write_float_prec$1(significant_figures,ob,x) + {var match=caml_classify_float(x); + if(3 !== match) + return 4 <= match + ?caml_call2(Stdlib_Buffer[16],ob,cst_NaN$5) + :write_normal_float_prec$1(significant_figures,ob,x); + var _kg_=0. < x?cst_Infinity$11:cst_Infinity$12; + return caml_call2(Stdlib_Buffer[16],ob,_kg_)} + function write_std_float$1(ob,x) + {var match=caml_classify_float(x); + if(3 === match) + {var + _ke_= + 0. < x + ?cst_Infinity_value_not_allowed$7 + :cst_Infinity_value_not_allowed$8; + return json_error(_ke_)} + if(4 <= match)return json_error(cst_NaN_value_not_allowed_in_s$3); + var + s1=caml_call2(Stdlib_Printf[4],_ce_,x), + s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_cf_,x); + caml_call2(Stdlib_Buffer[16],ob,s); + var _kf_=float_needs_period$1(s); + return _kf_?caml_call2(Stdlib_Buffer[16],ob,cst_0$7):_kf_} + function write_std_float_prec$1(significant_figures,ob,x) + {var match=caml_classify_float(x); + if(3 !== match) + return 4 <= match + ?json_error(cst_NaN_value_not_allowed_in_s$4) + :write_normal_float_prec$1(significant_figures,ob,x); + var + _kd_= + 0. < x + ?cst_Infinity_value_not_allowed$9 + :cst_Infinity_value_not_allowed$10; + return json_error(_kd_)} + var write_intlit$0=Stdlib_Buffer[16]; + function iter2$1(f_elt,f_sep,x,param$0) + {if(! param$0)return 0; + var l$0=param$0[2],y$0=param$0[1]; + caml_call2(f_elt,x,y$0); + var param=l$0; + for(;;) + {if(! param)return 0; + var l=param[2],y=param[1]; + caml_call1(f_sep,x); + caml_call2(f_elt,x,y); + var param=l}} + function f_sep$1(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} + function write_variant$0(ob,s,o) + {caml_call2(Stdlib_Buffer[12],ob,60); + write_string$1(ob,s); + if(o){var x=o[1];caml_call2(Stdlib_Buffer[12],ob,58);write_t$1(ob,x)} + return caml_call2(Stdlib_Buffer[12],ob,62)} + function write_tuple$0(ob,l) + {caml_call2(Stdlib_Buffer[12],ob,40); + iter2$1(write_t$1,f_sep$1,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,41)} + function write_list$1(ob,l) + {caml_call2(Stdlib_Buffer[12],ob,91); + iter2$1(write_t$1,f_sep$1,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,93)} + function write_assoc$1(ob,l) + {function f_elt(ob,param) + {var x=param[2],s=param[1]; + write_string$1(ob,s); + caml_call2(Stdlib_Buffer[12],ob,58); + return write_t$1(ob,x)} + caml_call2(Stdlib_Buffer[12],ob,123); + iter2$1(f_elt,f_sep$1,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,125)} + function write_t$1(ob,x) + {if(typeof x === "number")return write_null$1(ob,0); + var _kc_=x[1]; + if(708012133 <= _kc_) + {if(726928360 === _kc_){var l=x[2];return write_tuple$0(ob,l)} + if(848054398 <= _kc_) + {if(963043957 <= _kc_){var l$0=x[2];return write_assoc$1(ob,l$0)} + var l$1=x[2]; + return write_list$1(ob,l$1)} + if(737456202 <= _kc_){var b=x[2];return write_bool$1(ob,b)} + var match=x[2],o=match[2],s=match[1]; + return write_variant$0(ob,s,o)} + if(3654863 <= _kc_) + {if(365180284 <= _kc_){var f=x[2];return write_float$1(ob,f)} + var i=x[2]; + return write_int$1(ob,i)} + if(-752863768 <= _kc_) + {var s$0=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$0)} + var s$1=x[2]; + return write_string$1(ob,s$1)} + function write_std_variant$0(ob,s,o) + {if(! o)return write_string$1(ob,s); + var x=o[1]; + caml_call2(Stdlib_Buffer[12],ob,91); + write_string$1(ob,s); + caml_call2(Stdlib_Buffer[12],ob,44); + write_std_json$1(ob,x); + return caml_call2(Stdlib_Buffer[12],ob,93)} + function write_std_tuple$0(ob,l) + {caml_call2(Stdlib_Buffer[12],ob,91); + iter2$1(write_std_json$1,f_sep$1,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,93)} + function write_std_json$1(ob,x) + {if(typeof x === "number")return write_null$1(ob,0); + var _kb_=x[1]; + if(708012133 <= _kb_) + {if(726928360 === _kb_){var l=x[2];return write_std_tuple$0(ob,l)} + if(848054398 <= _kb_) + {if(963043957 <= _kb_) + {var + l$0=x[2], + f_elt= + function(ob,param) + {var x=param[2],s=param[1]; + write_string$1(ob,s); + caml_call2(Stdlib_Buffer[12],ob,58); + return write_std_json$1(ob,x)}; + caml_call2(Stdlib_Buffer[12],ob,123); + iter2$1(f_elt,f_sep$1,ob,l$0); + return caml_call2(Stdlib_Buffer[12],ob,125)} + var l$1=x[2]; + caml_call2(Stdlib_Buffer[12],ob,91); + iter2$1(write_std_json$1,f_sep$1,ob,l$1); + return caml_call2(Stdlib_Buffer[12],ob,93)} + if(737456202 <= _kb_){var b=x[2];return write_bool$1(ob,b)} + var match=x[2],o=match[2],s=match[1]; + return write_std_variant$0(ob,s,o)} + if(3654863 <= _kb_) + {if(365180284 <= _kb_){var f=x[2];return write_std_float$1(ob,f)} + var i=x[2]; + return write_int$1(ob,i)} + if(-752863768 <= _kb_) + {var s$0=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$0)} + var s$1=x[2]; + return write_string$1(ob,s$1)} + function to_buffer$1(opt,_ka_,ob,x) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$39; + if(_ka_)var sth$0=_ka_[1],std=sth$0;else var std=0; + if(std)write_std_json$1(ob,x);else write_t$1(ob,x); + return caml_call2(Stdlib_Buffer[16],ob,suf)} + function to_string$2(buf,opt,_j$_,std,x) + {if(opt)var sth=opt[1],len=sth;else var len=256; + if(_j$_)var sth$0=_j$_[1],suf=sth$0;else var suf=cst$40; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer$1([0,suf],std,ob$0,x); + var s=caml_call1(Stdlib_Buffer[2],ob$0); + caml_call1(Stdlib_Buffer[8],ob$0); + return s} + function to_channel$1(buf,opt,_j__,std,oc,x) + {if(opt)var sth=opt[1],len=sth;else var len=4096; + if(_j__)var sth$0=_j__[1],suf=sth$0;else var suf=cst$41; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer$1([0,suf],std,ob$0,x); + caml_call2(Stdlib_Buffer[10],oc,ob$0); + return caml_call1(Stdlib_Buffer[8],ob$0)} + function to_output$1(buf,opt,_j8_,std,out,x) + {if(opt)var sth=opt[1],len=sth;else var len=4096; + if(_j8_)var sth$0=_j8_[1],suf=sth$0;else var suf=cst$42; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer$1([0,suf],std,ob$0,x); + var _j9_=caml_call1(Stdlib_Buffer[7],ob$0); + caml_call4 + (caml_get_public_method(out,209784577,3), + out, + caml_call1(Stdlib_Buffer[2],ob$0), + 0, + _j9_); + return caml_call1(Stdlib_Buffer[8],ob$0)} + function to_file$1(len,std,opt,file,x) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$43; + var oc=caml_call1(Stdlib[60],file); + try + {to_channel$1(0,len,[0,suf],std,oc,x); + var _j7_=caml_call1(Stdlib[76],oc); + return _j7_} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} + function seq_to_buffer$1(opt,std,ob,st) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$44; + var _j4_=[0,suf]; + function _j5_(_j6_){return to_buffer$1(_j4_,std,ob,_j6_)} + return caml_call2(Stdlib_Seq[4],_j5_,st)} + function seq_to_string$1(buf,opt,_j3_,std,st) + {if(opt)var sth=opt[1],len=sth;else var len=256; + if(_j3_)var sth$0=_j3_[1],suf=sth$0;else var suf=cst$45; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + seq_to_buffer$1([0,suf],std,ob$0,st); + var s=caml_call1(Stdlib_Buffer[2],ob$0); + caml_call1(Stdlib_Buffer[8],ob$0); + return s} + function seq_to_channel$1(buf,opt,_j1_,std,oc,seq) + {if(opt)var sth=opt[1],len=sth;else var len=2096; + if(_j1_)var sth$0=_j1_[1],suf=sth$0;else var suf=cst$46; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + function _j2_(json) + {to_buffer$1([0,suf],std,ob$0,json); + caml_call2(Stdlib_Buffer[10],oc,ob$0); + return caml_call1(Stdlib_Buffer[8],ob$0)} + return caml_call2(Stdlib_Seq[4],_j2_,seq)} + function seq_to_file$1(len,opt,std,file,st) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$47; + var oc=caml_call1(Stdlib[60],file); + try + {seq_to_channel$1(0,len,[0,suf],std,oc,st); + var _j0_=caml_call1(Stdlib[76],oc); + return _j0_} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} + function sort$1(x) + {if(typeof x !== "number") + {var _jR_=x[1]; + if(726928361 <= _jR_) + {if(848054398 === _jR_) + {var l=x[2],_jS_=caml_call2(Stdlib_List[21],sort$1,l); + return [0,848054398,caml_call1(Stdlib_List[9],_jS_)]} + if(963043957 === _jR_) + {var + l$0=x[2], + _jT_= + function(param) + {var v=param[2],k=param[1];return [0,k,sort$1(v)]}, + _jU_=caml_call2(Stdlib_List[21],_jT_,l$0), + l$1=caml_call1(Stdlib_List[9],_jU_), + _jV_= + function(param,_jZ_) + {var b=_jZ_[1],a=param[1]; + return caml_call2(Stdlib_String[9],a,b)}; + return [0,963043957,caml_call2(Stdlib_List[57],_jV_,l$1)]}} + else + if(708012133 === _jR_) + {var _jW_=x[2],_jX_=_jW_[2]; + if(_jX_) + {var v=_jX_[1],k=_jW_[1],v$0=sort$1(v); + return v === v$0?x:[0,708012133,[0,k,[0,v$0]]]}} + else + if(726928360 <= _jR_) + {var l$2=x[2],_jY_=caml_call2(Stdlib_List[21],sort$1,l$2); + return [0,726928360,caml_call1(Stdlib_List[9],_jY_)]}} + return x} + function pp_list$1(sep,ppx,out,l) + {function pp_sep(out,param) + {return caml_call3(Stdlib_Format[129],out,_cg_,sep)} + return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} + function is_atom$1(x) + {if(typeof x !== "number") + {var _jQ_=x[1],switch$0=0; + if(737456202 <= _jQ_) + {if(848054398 === _jQ_) + {if(x[2])switch$0 = 1} + else + if(963043957 <= _jQ_ && x[2])switch$0 = 1} + else + if(708012133 === _jQ_) + {if(x[2][2])switch$0 = 1} + else + if(726928360 <= _jQ_ && x[2])switch$0 = 1; + if(switch$0)return 0} + return 1} + function format$1(inside_box,std,out,x) + {var x$0=x; + for(;;) + {if(typeof x$0 === "number") + return caml_call2(Stdlib_Format[13],out,cst_null$5); + var _i9_=x$0[1]; + if(708012133 > _i9_) + {if(3654863 <= _i9_) + {if(365180284 > _i9_) + {var x$7=x$0[2],_i8_=caml_call1(Stdlib[33],x$7); + return caml_call2(Stdlib_Format[13],out,_i8_)} + var x$6=x$0[2]; + if(std) + {var ob$0=caml_call1(Stdlib_Buffer[1],20); + write_std_float$1(ob$0,x$6); + var s=caml_call1(Stdlib_Buffer[2],ob$0)} + else + {var ob=caml_call1(Stdlib_Buffer[1],20); + write_float$1(ob,x$6); + var s=caml_call1(Stdlib_Buffer[2],ob)} + return caml_call2(Stdlib_Format[13],out,s)} + if(-752863768 <= _i9_) + {var s$0=x$0[2];return caml_call2(Stdlib_Format[13],out,s$0)} + var s$1=x$0[2],_ju_=json_string_of_string$1(s$1); + return caml_call2(Stdlib_Format[13],out,_ju_)} + if(726928360 === _i9_) + {var l=x$0[2]; + if(std){var x$1=[0,848054398,l],x$0=x$1;continue} + if(0 === l)return caml_call2(Stdlib_Format[13],out,cst$48); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_ch_); + var + _i__=0, + _i$_=function(_jO_,_jP_){return format$1(_i__,std,_jO_,_jP_)}, + _ja_=function(_jM_,_jN_){return pp_list$1(cst$49,_i$_,_jM_,_jN_)}; + caml_call4(Stdlib_Format[129],out,_ci_,_ja_,l); + var _jb_=1 - inside_box; + return _jb_?caml_call2(Stdlib_Format[129],out,_cj_):_jb_} + if(848054398 <= _i9_) + {if(963043957 <= _i9_) + {var _jc_=x$0[2]; + if(! _jc_)return caml_call2(Stdlib_Format[13],out,cst$51); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_ck_); + var + _jd_= + function(out,param) + {var x=param[2],name=param[1],_jH_=1; + function _jI_(_jK_,_jL_){return format$1(_jH_,std,_jK_,_jL_)} + var _jJ_=json_string_of_string$1(name); + return caml_call5(Stdlib_Format[129],out,_ct_,_jJ_,_jI_,x)}, + _je_=function(_jF_,_jG_){return pp_list$1(cst$50,_jd_,_jF_,_jG_)}; + caml_call4(Stdlib_Format[129],out,_cl_,_je_,_jc_); + var _jf_=1 - inside_box; + return _jf_?caml_call2(Stdlib_Format[129],out,_cm_):_jf_} + var _jg_=x$0[2]; + if(! _jg_)return caml_call2(Stdlib_Format[13],out,cst$54); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_cn_); + if(caml_call2(Stdlib_List[32],is_atom$1,_jg_)) + {var + _jh_=0, + _ji_=function(_jz_,_jA_){return format$1(_jh_,std,_jz_,_jA_)}, + _jj_=function(_jx_,_jy_){return pp_list$1(cst$52,_ji_,_jx_,_jy_)}; + caml_call4(Stdlib_Format[129],out,_co_,_jj_,_jg_)} + else + {var + _jl_=0, + _jm_=function(_jD_,_jE_){return format$1(_jl_,std,_jD_,_jE_)}, + _jn_=function(_jB_,_jC_){return pp_list$1(cst$53,_jm_,_jB_,_jC_)}; + caml_call4(Stdlib_Format[129],out,_cq_,_jn_,_jg_)} + var _jk_=1 - inside_box; + return _jk_?caml_call2(Stdlib_Format[129],out,_cp_):_jk_} + if(737456202 <= _i9_) + {var x$2=x$0[2];return caml_call2(Stdlib_Format[25],out,x$2)} + var _jo_=x$0[2],_jp_=_jo_[2],_jq_=_jo_[1]; + if(_jp_) + {var x$3=_jp_[1]; + if(std) + {var + representation=[0,-976970511,_jq_], + x$4=[0,848054398,[0,representation,[0,x$3,0]]], + x$0=x$4; + continue} + var + op=json_string_of_string$1(_jq_), + _jr_=1, + _js_=function(_jv_,_jw_){return format$1(_jr_,std,_jv_,_jw_)}; + return caml_call5(Stdlib_Format[129],out,_cr_,op,_js_,x$3)} + if(std){var x$5=[0,-976970511,_jq_],x$0=x$5;continue} + var _jt_=json_string_of_string$1(_jq_); + return caml_call3(Stdlib_Format[129],out,_cs_,_jt_)}} + function pp$3(opt,out,x) + {if(opt)var sth=opt[1],std=sth;else var std=0; + var _i4_=1; + function _i5_(_i6_,_i7_){return format$1(_i4_,std,_i6_,_i7_)} + return caml_call4(Stdlib_Format[129],out,_cu_,_i5_,x)} + function pp$4(fmt,param) + {if(typeof param === "number") + return caml_call2(Stdlib_Format[13],fmt,cst_Null$1); + var _iX_=param[1]; + if(708012133 <= _iX_) + {if(726928360 === _iX_) + {var tup=param[2]; + caml_call2(Stdlib_Format[129],fmt,_cx_); + caml_call2(Stdlib_Format[129],fmt,_cy_); + var + _iY_=0, + _iZ_= + function(sep,e) + {if(sep)caml_call2(Stdlib_Format[129],fmt,_cz_); + pp$4(fmt,e); + return 1}; + caml_call3(Stdlib_List[25],_iZ_,_iY_,tup); + caml_call2(Stdlib_Format[129],fmt,_cA_); + return caml_call2(Stdlib_Format[129],fmt,_cB_)} + if(848054398 <= _iX_) + {if(963043957 <= _iX_) + {var xs=param[2]; + caml_call2(Stdlib_Format[129],fmt,_cC_); + caml_call2(Stdlib_Format[129],fmt,_cD_); + var + _i0_=0, + _i1_= + function(sep,param) + {var value=param[2],key=param[1]; + if(sep)caml_call2(Stdlib_Format[129],fmt,_cE_); + caml_call2(Stdlib_Format[129],fmt,_cF_); + caml_call3(Stdlib_Format[129],fmt,_cG_,key); + caml_call2(Stdlib_Format[129],fmt,_cH_); + pp$4(fmt,value); + caml_call2(Stdlib_Format[129],fmt,_cI_); + return 1}; + caml_call3(Stdlib_List[25],_i1_,_i0_,xs); + caml_call2(Stdlib_Format[129],fmt,_cJ_); + return caml_call2(Stdlib_Format[129],fmt,_cK_)} + var xs$0=param[2]; + caml_call2(Stdlib_Format[129],fmt,_cL_); + caml_call2(Stdlib_Format[129],fmt,_cM_); + var + _i2_=0, + _i3_= + function(sep,x) + {if(sep)caml_call2(Stdlib_Format[129],fmt,_cN_); + pp$4(fmt,x); + return 1}; + caml_call3(Stdlib_List[25],_i3_,_i2_,xs$0); + caml_call2(Stdlib_Format[129],fmt,_cO_); + return caml_call2(Stdlib_Format[129],fmt,_cP_)} + if(737456202 <= _iX_) + {var x=param[2]; + caml_call2(Stdlib_Format[129],fmt,_cQ_); + caml_call3(Stdlib_Format[129],fmt,_cR_,x); + return caml_call2(Stdlib_Format[129],fmt,_cS_)} + var match=param[2],value=match[2],name=match[1]; + caml_call2(Stdlib_Format[129],fmt,_cT_); + caml_call2(Stdlib_Format[129],fmt,_cU_); + caml_call3(Stdlib_Format[129],fmt,_cV_,name); + caml_call2(Stdlib_Format[129],fmt,_cW_); + if(value) + {var x$0=value[1]; + caml_call2(Stdlib_Format[13],fmt,cst_Some$0); + pp$4(fmt,x$0); + caml_call2(Stdlib_Format[13],fmt,cst$55)} + else + caml_call2(Stdlib_Format[13],fmt,cst_None$0); + caml_call2(Stdlib_Format[129],fmt,_cX_); + return caml_call2(Stdlib_Format[129],fmt,_cY_)} + if(3654863 <= _iX_) + {if(365180284 <= _iX_) + {var x$1=param[2]; + caml_call2(Stdlib_Format[129],fmt,_cZ_); + caml_call3(Stdlib_Format[129],fmt,_c0_,x$1); + return caml_call2(Stdlib_Format[129],fmt,_c1_)} + var x$2=param[2]; + caml_call2(Stdlib_Format[129],fmt,_c2_); + caml_call3(Stdlib_Format[129],fmt,_c3_,x$2); + return caml_call2(Stdlib_Format[129],fmt,_c4_)} + if(-752863768 <= _iX_) + {var x$3=param[2]; + caml_call2(Stdlib_Format[129],fmt,_c5_); + caml_call3(Stdlib_Format[129],fmt,_c6_,x$3); + return caml_call2(Stdlib_Format[129],fmt,_c7_)} + var x$4=param[2]; + caml_call2(Stdlib_Format[129],fmt,_c8_); + caml_call3(Stdlib_Format[129],fmt,_c9_,x$4); + return caml_call2(Stdlib_Format[129],fmt,_c__)} + function show$1(x){return caml_call3(Stdlib_Format[133],_c$_,pp$4,x)} + function equal$1(a,b) + {var a$0=a,b$0=b; + for(;;) + {if(typeof a$0 === "number") + {if(870828711 === a$0 && 870828711 === b$0)return 1} + else + {var _iQ_=a$0[1]; + if(708012133 <= _iQ_) + {var switch$0=0; + if(737456203 <= _iQ_) + {if(848054398 === _iQ_) + {if(typeof b$0 !== "number" && 848054398 === b$0[1]) + {var ys=b$0[2],xs=a$0[2];switch$0 = 1}} + else + if + (963043957 + === + _iQ_ + && + typeof b$0 + !== + "number" + && + 963043957 + === + b$0[1]) + {var + ys$0=b$0[2], + xs$0=a$0[2], + compare_keys= + function(param,_iW_) + {var key=_iW_[1],key$0=param[1]; + return caml_call2(Stdlib_String[9],key$0,key)}, + xs$1=caml_call2(Stdlib_List[57],compare_keys,xs$0), + ys$1=caml_call2(Stdlib_List[57],compare_keys,ys$0); + try + {var + _iR_= + function(param,_iV_) + {var + value=_iV_[2], + key=_iV_[1], + value$0=param[2], + key$0=param[1], + match=caml_string_equal(key$0,key); + return match?equal$1(value$0,value):0}, + result$0=caml_call3(Stdlib_List[34],_iR_,xs$1,ys$1); + return result$0} + catch(_iU_) + {_iU_ = caml_wrap_exception(_iU_); + if(_iU_[1] === Stdlib[6])return 0; + throw _iU_}}} + else + if(726928360 === _iQ_) + {if(typeof b$0 !== "number" && 726928360 === b$0[1]) + {var ys=b$0[2],xs=a$0[2];switch$0 = 1}} + else + if(708012134 <= _iQ_) + {if + (737456202 + <= + _iQ_ + && + typeof b$0 + !== + "number" + && + 737456202 + === + b$0[1]) + {var b$1=b$0[2],a$1=a$0[2];return caml_equal(a$1,b$1)}} + else + if(typeof b$0 !== "number" && 708012133 === b$0[1]) + {var + _iS_=b$0[2], + value=_iS_[2], + name=_iS_[1], + match=a$0[2], + value$0=match[2], + name$0=match[1], + match$0=caml_equal(name$0,name); + if(! match$0)return 0; + if(value$0) + {if(value) + {var b$2=value[1],a$2=value$0[1],a$0=a$2,b$0=b$2;continue}} + else + if(! value)return 1; + return 0} + if(switch$0) + try + {var result=caml_call3(Stdlib_List[34],equal$1,xs,ys); + return result} + catch(_iT_) + {_iT_ = caml_wrap_exception(_iT_); + if(_iT_[1] === Stdlib[6])return 0; + throw _iT_}} + else + if(-752863767 <= _iQ_) + {if(3654863 === _iQ_) + {if(typeof b$0 !== "number" && 3654863 === b$0[1]) + {var b$3=b$0[2],a$3=a$0[2];return caml_equal(a$3,b$3)}} + else + if + (365180284 + === + _iQ_ + && + typeof b$0 + !== + "number" + && + 365180284 + === + b$0[1]) + {var b$4=b$0[2],a$4=a$0[2];return caml_equal(a$4,b$4)}} + else + if(-976970511 === _iQ_) + {if(typeof b$0 !== "number" && -976970511 === b$0[1]) + {var b$5=b$0[2],a$5=a$0[2];return caml_equal(a$5,b$5)}} + else + if + (-752863768 + <= + _iQ_ + && + typeof b$0 + !== + "number" + && + -752863768 + === + b$0[1]) + {var b$6=b$0[2],a$6=a$0[2];return caml_equal(a$6,b$6)}} + return 0}} + function pretty_print$1(std,out,x){return pp$3(std,out,x)} + function pretty_to_string$1(std,x) + {function _iN_(_iO_,_iP_){return pp$3(std,_iO_,_iP_)} + return caml_call3(Stdlib_Format[133],_cv_,_iN_,x)} + function pretty_to_channel$1(std,oc,x) + {var fmt=caml_call1(Stdlib_Format[108],oc); + function _iK_(_iL_,_iM_){return pp$3(std,_iL_,_iM_)} + return caml_call4(Stdlib_Format[129],fmt,_cw_,_iK_,x)} + var + from_channel$1=Stdlib_Lexing[2], + from_string$1=Stdlib_Lexing[3], + lexeme$0=Stdlib_Lexing[8], + sub_lexeme$0=Stdlib_Lexing[16], + sub_lexeme_char$0=Stdlib_Lexing[18]; + function hex$3(c) + {if(65 <= c) + {if(97 <= c) + {if(103 > c)return (c - 97 | 0) + 10 | 0} + else + if(71 > c)return (c - 65 | 0) + 10 | 0} + else + if(9 >= c - 48 >>> 0)return c - 48 | 0; + throw [0,Assert_failure,_da_]} + function custom_error$0(descr,v,lexbuf) + {var + offs=lexbuf[4] - 1 | 0, + bol=v[3], + pos1=((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, + pos2=caml_call2(Stdlib[17],pos1,(offs + lexbuf[6] | 0) - bol | 0), + _iJ_=v[4]; + if(_iJ_) + var s=_iJ_[1],file_line=caml_call2(Stdlib_Printf[4],_db_,s); + else + var file_line=cst_Line$0; + var + bytes= + pos1 === pos2 + ?caml_call2(Stdlib_Printf[4],_dc_,pos1 + 1 | 0) + :caml_call3(Stdlib_Printf[4],_de_,pos1 + 1 | 0,pos2 + 1 | 0), + msg=caml_call5(Stdlib_Printf[4],_dd_,file_line,v[2],bytes,descr); + return json_error(msg)} + function lexer_error$0(descr,v,lexbuf) + {var _iI_=caml_call1(lexeme$0,lexbuf); + return custom_error$0 + (caml_call3(Stdlib_Printf[4],_df_,descr,_iI_),v,lexbuf)} + var read_junk$0=[0,function(param){throw [0,Assert_failure,_dg_]}]; + function long_error$0(descr,v,lexbuf) + {var + junk=caml_call1(lexeme$0,lexbuf), + extra_junk=caml_call1(read_junk$0[1],lexbuf); + return custom_error$0 + (caml_call4(Stdlib_Printf[4],_dh_,descr,junk,extra_junk), + v, + lexbuf)} + var + _di_=0 === (Stdlib[20] % 10 | 0)?0:1, + min10$0=(Stdlib[20] / 10 | 0) - _di_ | 0, + _dj_=0 === (Stdlib[19] % 10 | 0)?0:1, + max10$0=(Stdlib[19] / 10 | 0) + _dj_ | 0, + Int_overflow$0=[248,cst_Yojson_Safe_Int_overflow,caml_fresh_oo_id(0)]; + function extract_positive_int$0(lexbuf) + {var + start=lexbuf[5], + stop=lexbuf[6], + s=lexbuf[2], + n=[0,0], + _iF_=stop - 1 | 0; + if(_iF_ >= start) + {var i=start; + for(;;) + {if(max10$0 <= n[1])throw Int_overflow$0; + var _iG_=caml_bytes_get(s,i) - 48 | 0; + n[1] = (10 * n[1] | 0) + _iG_ | 0; + var _iH_=i + 1 | 0; + if(_iF_ !== i){var i=_iH_;continue} + break}} + if(0 <= n[1])return n[1]; + throw Int_overflow$0} + function extract_negative_int$0(lexbuf) + {var + start=lexbuf[5] + 1 | 0, + stop=lexbuf[6], + s=lexbuf[2], + n=[0,0], + _iC_=stop - 1 | 0; + if(_iC_ >= start) + {var i=start; + for(;;) + {if(n[1] <= min10$0)throw Int_overflow$0; + var _iD_=caml_bytes_get(s,i) - 48 | 0; + n[1] = (10 * n[1] | 0) - _iD_ | 0; + var _iE_=i + 1 | 0; + if(_iC_ !== i){var i=_iE_;continue} + break}} + if(0 < n[1])throw Int_overflow$0; + return n[1]} + function newline$0(v,lexbuf) + {v[2] = v[2] + 1 | 0;v[3] = lexbuf[4] + lexbuf[6] | 0;return 0} + function add_lexeme$0(buf,lexbuf) + {var len=lexbuf[6] - lexbuf[5] | 0; + return caml_call4(Stdlib_Buffer[19],buf,lexbuf[2],lexbuf[5],len)} + function read_json$3(counter,v,lexbuf) + {var _iB_=0; + if(counter >= 50) + return caml_trampoline_return + (ocaml_lex_read_json_rec$0,[0,v,lexbuf,_iB_]); + var counter$0=counter + 1 | 0; + return ocaml_lex_read_json_rec$0(counter$0,v,lexbuf,_iB_)} + function ocaml_lex_read_json_rec$0(counter,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(19 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return _dk_; + case 1:return _dl_; + case 2:return 870828711; + case 3:return [0,365180284,Stdlib[24]]; + case 4:return [0,365180284,Stdlib[22]]; + case 5:return [0,365180284,Stdlib[23]]; + case 6: + caml_call1(Stdlib_Buffer[8],v[1]); + return [0,-976970511,finish_string$3(v,lexbuf)]; + case 7: + try + {var _io_=[0,3654863,extract_positive_int$0(lexbuf)];return _io_} + catch(_iA_) + {_iA_ = caml_wrap_exception(_iA_); + if(_iA_ === Int_overflow$0) + return [0,-752863768,caml_call1(lexeme$0,lexbuf)]; + throw _iA_} + case 8: + try + {var _ip_=[0,3654863,extract_negative_int$0(lexbuf)];return _ip_} + catch(_iz_) + {_iz_ = caml_wrap_exception(_iz_); + if(_iz_ === Int_overflow$0) + return [0,-752863768,caml_call1(lexeme$0,lexbuf)]; + throw _iz_} + case 9: + return [0, + 365180284, + caml_float_of_string(caml_call1(lexeme$0,lexbuf))]; + case 10: + var acc=[0,0]; + try + {read_space$0(v,lexbuf); + read_object_end$0(lexbuf); + var field_name=read_ident$0(v,lexbuf); + read_space$0(v,lexbuf); + read_colon$0(v,lexbuf); + read_space$0(v,lexbuf); + var _iq_=acc[1]; + acc[1] = [0,[0,field_name,read_json$0(v,lexbuf)],_iq_]; + for(;;) + {read_space$0(v,lexbuf); + read_object_sep$0(v,lexbuf); + read_space$0(v,lexbuf); + var field_name$0=read_ident$0(v,lexbuf); + read_space$0(v,lexbuf); + read_colon$0(v,lexbuf); + read_space$0(v,lexbuf); + var _ir_=acc[1]; + acc[1] = [0,[0,field_name$0,read_json$0(v,lexbuf)],_ir_]}} + catch(_iy_) + {_iy_ = caml_wrap_exception(_iy_); + if(_iy_ === End_of_object) + return [0,963043957,caml_call1(Stdlib_List[9],acc[1])]; + throw _iy_} + case 11: + var acc$0=[0,0]; + try + {read_space$0(v,lexbuf); + read_array_end$0(lexbuf); + var _is_=acc$0[1]; + acc$0[1] = [0,read_json$0(v,lexbuf),_is_]; + for(;;) + {read_space$0(v,lexbuf); + read_array_sep$0(v,lexbuf); + read_space$0(v,lexbuf); + var _it_=acc$0[1]; + acc$0[1] = [0,read_json$0(v,lexbuf),_it_]}} + catch(_ix_) + {_ix_ = caml_wrap_exception(_ix_); + if(_ix_ === End_of_array) + return [0,848054398,caml_call1(Stdlib_List[9],acc$0[1])]; + throw _ix_} + case 12: + var acc$1=[0,0]; + try + {read_space$0(v,lexbuf); + read_tuple_end$0(lexbuf); + var _iu_=acc$1[1]; + acc$1[1] = [0,read_json$0(v,lexbuf),_iu_]; + for(;;) + {read_space$0(v,lexbuf); + read_tuple_sep$0(v,lexbuf); + read_space$0(v,lexbuf); + var _iv_=acc$1[1]; + acc$1[1] = [0,read_json$0(v,lexbuf),_iv_]}} + catch(_iw_) + {_iw_ = caml_wrap_exception(_iw_); + if(_iw_ === End_of_tuple) + return [0,726928360,caml_call1(Stdlib_List[9],acc$1[1])]; + throw _iw_} + case 13: + read_space$0(v,lexbuf); + var cons=read_ident$0(v,lexbuf); + read_space$0(v,lexbuf); + return [0,708012133,[0,cons,finish_variant$0(v,lexbuf)]]; + case 14: + if(counter >= 50) + return caml_trampoline_return(read_json$3,[0,v,lexbuf]); + var counter$0=counter + 1 | 0; + return read_json$3(counter$0,v,lexbuf); + case 15: + finish_comment$0(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(read_json$3,[0,v,lexbuf]); + var counter$1=counter + 1 | 0; + return read_json$3(counter$1,v,lexbuf); + case 16: + newline$0(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(read_json$3,[0,v,lexbuf]); + var counter$2=counter + 1 | 0; + return read_json$3(counter$2,v,lexbuf); + case 17: + if(counter >= 50) + return caml_trampoline_return(read_json$3,[0,v,lexbuf]); + var counter$3=counter + 1 | 0; + return read_json$3(counter$3,v,lexbuf); + case 18: + return custom_error$0(cst_Unexpected_end_of_input$44,v,lexbuf); + default:return long_error$0(cst_Invalid_token$9,v,lexbuf)}}} + function read_json$0(v,lexbuf) + {return caml_trampoline(read_json$3(0,v,lexbuf))} + function finish_string$3(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=58; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call1(Stdlib_Buffer[2],v[1]); + case 1:finish_escaped_char$0(v,lexbuf);continue a; + case 2:add_lexeme$0(v[1],lexbuf);continue a; + default: + return custom_error$0(cst_Unexpected_end_of_input$45,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function map_string$0(v,f,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=63; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + var b=v[1],_in_=caml_call1(Stdlib_Buffer[7],b); + return caml_call3(f,caml_call1(Stdlib_Buffer[2],b),0,_in_); + case 1:finish_escaped_char$0(v,lexbuf);continue a; + case 2:add_lexeme$0(v[1],lexbuf);continue a; + default: + return custom_error$0(cst_Unexpected_end_of_input$46,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function finish_escaped_char$0(v,lexbuf) + {var ocaml_lex_state=68; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(8 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0: + var c=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5]); + return caml_call2(Stdlib_Buffer[12],v[1],c); + case 1:return caml_call2(Stdlib_Buffer[12],v[1],8); + case 2:return caml_call2(Stdlib_Buffer[12],v[1],12); + case 3:return caml_call2(Stdlib_Buffer[12],v[1],10); + case 4:return caml_call2(Stdlib_Buffer[12],v[1],13); + case 5:return caml_call2(Stdlib_Buffer[12],v[1],9); + case 6: + var + a=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 1 | 0), + b=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 2 | 0), + c$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 3 | 0), + d=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 4 | 0), + _ih_=hex$3(d), + _ii_=hex$3(c$0) << 4, + _ij_=hex$3(b) << 8, + x=hex$3(a) << 12 | _ij_ | _ii_ | _ih_; + if(55296 <= x && 56319 >= x) + {var ocaml_lex_state$1=82; + for(;;) + {var + ocaml_lex_state$2= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$1,lexbuf); + if(2 < ocaml_lex_state$2 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$1=ocaml_lex_state$2; + continue} + switch(ocaml_lex_state$2) + {case 0: + var + a$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 2 | 0), + b$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 3 | 0), + c$1=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 4 | 0), + d$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 5 | 0), + _ik_=hex$3(d$0), + _il_=hex$3(c$1) << 4, + _im_=hex$3(b$0) << 8, + y=hex$3(a$0) << 12 | _im_ | _il_ | _ik_; + if(56320 <= y && 57343 >= y) + return utf8_of_surrogate_pair(v[1],x,y); + return long_error$0 + (cst_Invalid_low_surrogate_for_$0,v,lexbuf); + case 1: + return long_error$0 + (cst_Missing_escape_sequence_re$0,v,lexbuf); default: return custom_error$0 - (cst_Unexpected_end_of_input$91, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$15 = ocaml_lex_state$16; - } - case 1: - return caml_call2(Stdlib_Buffer[12], v[1], 62); - case 2: - return long_error$0(cst_Expected_or_but_found$25, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$85, v, lexbuf); - } - } - case 6: - add_lexeme$0(v[1], lexbuf); continue a; - case 7: - caml_call2(Stdlib_Buffer[16], v[1], cst$56); - finish_buffer_comment$0(v, lexbuf); - continue a; - case 8: - caml_call2(Stdlib_Buffer[12], v[1], 10); - newline$0(v, lexbuf); - continue a; - case 9: - add_lexeme$0(v[1], lexbuf); continue a; - case 10: - return custom_error$0(cst_Unexpected_end_of_input$83, v, lexbuf); - default: return long_error$0(cst_Invalid_token$11, v, lexbuf); - } - } - } - } - function buffer_ident$0(v, lexbuf){ - var ocaml_lex_state = 466; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return finish_buffer_stringlit$0(v, lexbuf); - case 1: - return add_lexeme$0(v[1], lexbuf); - case 2: - return long_error$0(cst_Expected_string_or_identif$6, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$86, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function buffer_space$0(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 471; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - add_lexeme$0(v[1], lexbuf); newline$0(v, lexbuf); continue a; - case 1: - caml_call2(Stdlib_Buffer[16], v[1], cst$57); - finish_buffer_comment$0(v, lexbuf); - continue a; - case 2: - caml_call2(Stdlib_Buffer[12], v[1], 10); - newline$0(v, lexbuf); - continue a; - case 3: - add_lexeme$0(v[1], lexbuf); continue a; - default: return 0; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function buffer_colon$0(v, lexbuf){ - var ocaml_lex_state = 499; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return caml_call2(Stdlib_Buffer[12], v[1], 58); - case 1: - return long_error$0(cst_Expected_but_found$28, v, lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$90, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_buffer_comment$0(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 507; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return caml_call2(Stdlib_Buffer[16], v[1], cst$58); - case 1: - return long_error$0(cst_Unterminated_comment$2, v, lexbuf); - case 2: - caml_call2(Stdlib_Buffer[12], v[1], 10); - newline$0(v, lexbuf); - continue a; - default: add_lexeme$0(v[1], lexbuf); continue a; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function junk$0(lexbuf){ - var ocaml_lex_state = 513; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) return caml_call1(lexeme$0, lexbuf); - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - read_junk$0[1] = junk$0; - function read_int8$0(v, lexbuf){ - var n = read_int$0(v, lexbuf); - if(0 <= n && 255 >= n) return caml_call1(Stdlib[29], n); - return lexer_error$0(cst_Int8_overflow$0, v, lexbuf); - } - function read_list$0(read_cell, v, lexbuf){ - var _h0_ = read_list_rev$0(read_cell, v, lexbuf); - return caml_call1(Stdlib_List[9], _h0_); - } - function read_array$0(read_cell, v, lexbuf){ - var l = read_list_rev$0(read_cell, v, lexbuf); - if(! l) return [0]; - var - tl = l[2], - x = l[1], - len = caml_call1(Stdlib_List[1], l), - a = caml_make_vect(len, x), - r = [0, tl], - _hX_ = len - 2 | 0; - if(_hX_ >= 0){ - var i = _hX_; - for(;;){ - var _hY_ = caml_call1(Stdlib_List[5], r[1]); - caml_check_bound(a, i)[1 + i] = _hY_; - r[1] = caml_call1(Stdlib_List[6], r[1]); - var _hZ_ = i - 1 | 0; - if(0 !== i){var i = _hZ_; continue;} - break; - } - } - return a; - } - function read_fields$0(read_field, init_acc, v){ - return function(_hW_){ - return read_abstract_fields$0 - (read_ident$0, read_field, init_acc, v, _hW_);}; - } - function from_lexbuf$0(v, opt, lexbuf){ - if(opt) var sth = opt[1], stream = sth; else var stream = 0; - read_space$0(v, lexbuf); - if(read_eof$0(lexbuf)) throw caml_maybe_attach_backtrace(End_of_input, 1); - var x = read_json$0(v, lexbuf); - if(1 - stream){ - read_space$0(v, lexbuf); - if(1 - read_eof$0(lexbuf)) - long_error$0(cst_Junk_after_end_of_JSON_val$0, v, lexbuf); - } - return x; - } - function from_string$2(buf, fname, lnum, s){ - try{ - var - lexbuf = caml_call2(from_string$1, 0, s), - v = init_lexer(buf, fname, lnum, 0), - _hU_ = from_lexbuf$0(v, 0, lexbuf); - return _hU_; - } - catch(_hV_){ - var _hT_ = caml_wrap_exception(_hV_); - if(_hT_ === End_of_input) return json_error(cst_Blank_input_data$1); - throw caml_maybe_attach_backtrace(_hT_, 0); - } - } - function from_channel$2(buf, fname, lnum, ic){ - try{ - var - lexbuf = caml_call2(from_channel$1, 0, ic), - v = init_lexer(buf, fname, lnum, 0), - _hR_ = from_lexbuf$0(v, 0, lexbuf); - return _hR_; - } - catch(_hS_){ - var _hQ_ = caml_wrap_exception(_hS_); - if(_hQ_ === End_of_input) return json_error(cst_Blank_input_data$2); - throw caml_maybe_attach_backtrace(_hQ_, 0); - } - } - function from_file$0(buf, fname, lnum, file){ - var ic = caml_call1(Stdlib[79], file); - try{ - var x = from_channel$2(buf, fname, lnum, ic); - caml_call1(Stdlib[93], ic); - return x; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[94], ic); - throw caml_maybe_attach_backtrace(e, 0); - } - } - var Finally$0 = [248, cst_Yojson_Safe_Finally, caml_fresh_oo_id(0)]; - function seq_from_lexbuf$0(v, opt, lexbuf){ - if(opt) - var sth = opt[1], fin = sth; - else - var fin = function(param){return 0;}; - function f(param){ - try{var _hP_ = [0, from_lexbuf$0(v, stream$0, lexbuf), f]; return _hP_;} - catch(e$0){ - var e = caml_wrap_exception(e$0); - if(e === End_of_input){caml_call1(fin, 0); return 0;} - try{caml_call1(fin, 0);} - catch(fin_e$0){ - var fin_e = caml_wrap_exception(fin_e$0); - throw caml_maybe_attach_backtrace([0, Finally$0, e, fin_e], 1); - } - throw caml_maybe_attach_backtrace(e, 0); - } - } - return f; - } - function seq_from_string$0(buf, fname, lnum, s){ - var v = init_lexer(buf, fname, lnum, 0); - return seq_from_lexbuf$0(v, 0, caml_call2(from_string$1, 0, s)); - } - function seq_from_channel$0(buf, fin, fname, lnum, ic){ - var - lexbuf = caml_call2(from_channel$1, 0, ic), - v = init_lexer(buf, fname, lnum, 0); - return seq_from_lexbuf$0(v, fin, lexbuf); - } - function seq_from_file$0(buf, fname, lnum, file){ - var ic = caml_call1(Stdlib[79], file); - function fin(param){return caml_call1(Stdlib[93], ic);} - var - fname$0 = fname || [0, file], - lexbuf = caml_call2(from_channel$1, 0, ic), - v = init_lexer(buf, fname$0, lnum, 0); - return seq_from_lexbuf$0(v, [0, fin], lexbuf); - } - function lineseq_from_channel$0(buf, opt, fname, _hH_, ic){ - if(opt) - var sth = opt[1], fin = sth; - else - var fin = function(param){return 0;}; - if(_hH_) var sth$0 = _hH_[1], lnum0 = sth$0; else var lnum0 = 1; - var buf$0 = buf || [0, caml_call1(Stdlib_Buffer[1], 256)]; - function f(lnum, param){ - try{ - var - line = caml_call1(Stdlib[83], ic), - _hK_ = lnum + 1 | 0, - _hL_ = function(_hO_){return f(_hK_, _hO_);}, - _hM_ = - [0, - [0, 826371656, from_string$2(buf$0, fname, [0, lnum], line)], - _hL_]; - return _hM_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - if(e === Stdlib[12]){caml_call1(fin, 0); return 0;} - var _hJ_ = lnum + 1 | 0; - return [0, [0, 3458171, e], function(_hN_){return f(_hJ_, _hN_);}]; - } - } - return function(_hI_){return f(lnum0, _hI_);}; - } - function lineseq_from_file$0(buf, fname, lnum, file){ - var ic = caml_call1(Stdlib[79], file); - function fin(param){return caml_call1(Stdlib[93], ic);} - var fname$0 = fname || [0, file]; - return lineseq_from_channel$0(buf, [0, fin], fname$0, lnum, ic); - } - function prettify$0(std, s){ - return pretty_to_string$1(std, from_string$2(0, 0, 0, s)); - } - function compact$0(std, s){ - return to_string$2(0, 0, 0, 0, from_string$2(0, 0, 0, s)); - } - var - Type_error$0 = [248, cst_Yojson_Safe_Util_Type_erro, caml_fresh_oo_id(0)]; - function typerr$0(msg, js){ - if(typeof js === "number") - var _hG_ = cst_null$6; - else - var - _hF_ = js[1], - _hG_ = - 708012133 <= _hF_ - ? 726928360 - === _hF_ - ? cst_tuple$0 - : 848054398 - <= _hF_ - ? 963043957 <= _hF_ ? cst_object$0 : cst_array$0 - : 737456202 <= _hF_ ? cst_bool$0 : cst_variant$0 - : 3654863 - <= _hF_ - ? 365180284 <= _hF_ ? cst_float$0 : cst_int$0 - : -752863768 <= _hF_ ? cst_intlit$0 : cst_string$0; - throw caml_maybe_attach_backtrace - ([0, Type_error$0, caml_call2(Stdlib[28], msg, _hG_), js], 1); - } - var - Undefined$0 = [248, cst_Yojson_Safe_Util_Undefined, caml_fresh_oo_id(0)]; - function member$0(name, js){ - if(typeof js !== "number" && 963043957 === js[1]){ - var obj = js[2]; - try{var _hC_ = caml_call2(Stdlib_List[46], name, obj); return _hC_;} - catch(_hE_){ - var _hB_ = caml_wrap_exception(_hE_); - if(_hB_ === Stdlib[8]) return 870828711; - throw caml_maybe_attach_backtrace(_hB_, 0); - } - } - var _hD_ = caml_call2(Stdlib[28], name, cst_of_non_object_type$0); - return typerr$0(caml_call2(Stdlib[28], cst_Can_t_get_member$0, _hD_), js); - } - function index$0(i, js){ - if(typeof js !== "number" && 848054398 === js[1]){ - var - l = js[2], - len = caml_call1(Stdlib_List[1], l), - wrapped_index = 0 <= i ? i : len + i | 0; - if(0 <= wrapped_index && len > wrapped_index) - return caml_call2(Stdlib_List[7], l, wrapped_index); - var - _hz_ = caml_call1(Stdlib[33], i), - _hA_ = caml_call2(Stdlib[28], _hz_, cst_out_of_bounds$0); - throw caml_maybe_attach_backtrace - ([0, Undefined$0, caml_call2(Stdlib[28], cst_Index$0, _hA_), js], - 1); - } - var - _hx_ = caml_call1(Stdlib[33], i), - _hy_ = caml_call2(Stdlib[28], _hx_, cst_of_non_array_type$0); - return typerr$0(caml_call2(Stdlib[28], cst_Can_t_get_index$0, _hy_), js); - } - function map$0(f, js){ - if(typeof js !== "number" && 848054398 === js[1]){ - var l = js[2]; - return [0, 848054398, caml_call2(Stdlib_List[19], f, l)]; - } - return typerr$0(cst_Can_t_map_function_over_no$0, js); - } - function to_assoc$0(js){ - if(typeof js !== "number" && 963043957 === js[1]){var obj = js[2]; return obj;} - return typerr$0(cst_Expected_object_got$0, js); - } - function to_option$0(f, x){ - return 870828711 === x ? 0 : [0, caml_call1(f, x)]; - } - function to_bool$0(js){ - if(typeof js !== "number" && 737456202 === js[1]){var b = js[2]; return b;} - return typerr$0(cst_Expected_bool_got$0, js); - } - function to_bool_option$0(js){ - if(typeof js === "number"){ - if(870828711 === js) return 0; - } - else if(737456202 === js[1]){var b = js[2]; return [0, b];} - return typerr$0(cst_Expected_bool_or_null_got$0, js); - } - function to_number$0(js){ - if(typeof js !== "number"){ - var _hw_ = js[1]; - if(3654863 === _hw_){var i = js[2]; return i;} - if(365180284 === _hw_){var f = js[2]; return f;} - } - return typerr$0(cst_Expected_number_got$0, js); - } - function to_number_option$0(js){ - if(typeof js === "number"){ - if(870828711 === js) return 0; - } - else{ - var _hv_ = js[1]; - if(3654863 === _hv_){var i = js[2]; return [0, i];} - if(365180284 === _hv_){var f = js[2]; return [0, f];} - } - return typerr$0(cst_Expected_number_or_null_go$0, js); - } - function to_float$0(js){ - if(typeof js !== "number" && 365180284 === js[1]){var f = js[2]; return f;} - return typerr$0(cst_Expected_float_got$0, js); - } - function to_float_option$0(js){ - if(typeof js === "number"){ - if(870828711 === js) return 0; - } - else if(365180284 === js[1]){var f = js[2]; return [0, f];} - return typerr$0(cst_Expected_float_or_null_got$0, js); - } - function to_int$0(js){ - if(typeof js !== "number" && 3654863 === js[1]){var i = js[2]; return i;} - return typerr$0(cst_Expected_int_got$0, js); - } - function to_int_option$0(js){ - if(typeof js === "number"){ - if(870828711 === js) return 0; - } - else if(3654863 === js[1]){var i = js[2]; return [0, i];} - return typerr$0(cst_Expected_int_or_null_got$0, js); - } - function to_list$0(js){ - if(typeof js !== "number" && 848054398 === js[1]){var l = js[2]; return l;} - return typerr$0(cst_Expected_array_got$0, js); - } - function to_string$3(js){ - if(typeof js !== "number" && -976970511 === js[1]){var s = js[2]; return s;} - return typerr$0(cst_Expected_string_got$0, js); - } - function to_string_option$0(js){ - if(typeof js === "number"){ - if(870828711 === js) return 0; - } - else if(-976970511 === js[1]){var s = js[2]; return [0, s];} - return typerr$0(cst_Expected_string_or_null_go$0, js); - } - function convert_each$0(f, js){ - if(typeof js !== "number" && 848054398 === js[1]){ - var l = js[2]; - return caml_call2(Stdlib_List[19], f, l); - } - return typerr$0(cst_Can_t_convert_each_element$0, js); - } - function filter_map$0(f, l$0){ - var acc = 0, l = l$0; - for(;;){ - if(! l) return caml_call1(Stdlib_List[9], acc); - var tl = l[2], x = l[1], match = caml_call1(f, x); - if(match){ - var y = match[1], acc$0 = [0, y, acc], acc = acc$0, l = tl; - continue; - } - var l = tl; - } - } - function flatten$0(l$0){ - var acc = 0, l = l$0; - for(;;){ - if(! l) return caml_call1(Stdlib_List[9], acc); - var tl = l[2], x = l[1]; - if(typeof x !== "number" && 848054398 === x[1]){ - var - l2 = x[2], - acc$0 = caml_call2(Stdlib_List[12], l2, acc), - acc = acc$0, - l = tl; - continue; - } - var l = tl; - } - } - function filter_index$0(i, l){ - return filter_map$0 - (function(param){ - if(typeof param !== "number" && 848054398 === param[1]){ - var l = param[2]; - try{ - var _ht_ = [0, caml_call2(Stdlib_List[7], l, i)]; - return _ht_; - } - catch(_hu_){return 0;} - } - return 0; - }, - l); - } - function filter_list$0(l){ - return filter_map$0 - (function(param){ - if(typeof param !== "number" && 848054398 === param[1]){var l = param[2]; return [0, l];} - return 0; - }, - l); - } - function filter_member$0(k, l){ - return filter_map$0 - (function(param){ - if(typeof param !== "number" && 963043957 === param[1]){ - var l = param[2]; - try{ - var _hr_ = [0, caml_call2(Stdlib_List[46], k, l)]; - return _hr_; - } - catch(_hs_){return 0;} - } - return 0; - }, - l); - } - function filter_assoc$0(l){ - return filter_map$0 - (function(param){ - if(typeof param !== "number" && 963043957 === param[1]){var l = param[2]; return [0, l];} - return 0; - }, - l); - } - function filter_bool$0(l){ - return filter_map$0 - (function(param){ - if(typeof param !== "number" && 737456202 === param[1]){var x = param[2]; return [0, x];} - return 0; - }, - l); - } - function filter_int$0(l){ - return filter_map$0 - (function(param){ - if(typeof param !== "number" && 3654863 === param[1]){var x = param[2]; return [0, x];} - return 0; - }, - l); - } - function filter_float$0(l){ - return filter_map$0 - (function(param){ - if(typeof param !== "number" && 365180284 === param[1]){var x = param[2]; return [0, x];} - return 0; - }, - l); - } - function filter_number$0(l){ - return filter_map$0 - (function(param){ - if(typeof param !== "number"){ - var _hq_ = param[1]; - if(3654863 === _hq_){var x = param[2]; return [0, x];} - if(365180284 === _hq_){var x$0 = param[2]; return [0, x$0];} - } - return 0; - }, - l); - } - function filter_string$0(l){ - return filter_map$0 - (function(param){ - if(typeof param !== "number" && -976970511 === param[1]){var x = param[2]; return [0, x];} - return 0; - }, - l); - } - function keys$0(o){ - var _ho_ = to_assoc$0(o); - function _hp_(param){var key = param[1]; return key;} - return caml_call1(caml_call1(Stdlib_List[19], _hp_), _ho_); - } - function values$0(o){ - var _hm_ = to_assoc$0(o); - function _hn_(param){var value = param[2]; return value;} - return caml_call1(caml_call1(Stdlib_List[19], _hn_), _hm_); - } - function combine$0(first, second){ - if - (typeof first !== "number" - && - 963043957 === first[1] - && typeof second !== "number" && 963043957 === second[1]){ - var b = second[2], a = first[2]; - return [0, 963043957, caml_call2(Stdlib[37], a, b)]; - } - throw caml_maybe_attach_backtrace - ([0, Stdlib[6], cst_Expected_two_objects_check$0], 1); - } - function hex$4(n){ - var _hl_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; - return caml_call1(Stdlib_Char[1], _hl_); - } - function write_special$2(src, start, stop, ob, str){ - caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16], ob, str); - start[1] = stop + 1 | 0; - return 0; - } - function write_string$2(ob, src){ - caml_call2(Stdlib_Buffer[12], ob, 34); - var start = [0, 0], _hj_ = caml_ml_string_length(src) - 1 | 0, _hi_ = 0; - if(_hj_ >= 0){ - var stop = _hi_; - for(;;){ - var c = caml_string_get(src, stop); - if(92 === c) - write_special$2(src, start, stop, ob, cst$59); - else{ - var switch$0 = 0; - if(35 <= c){ - if(127 !== c) switch$0 = 2; - } - else if(8 <= c){ - var switch$1 = 0; - switch(c - 8 | 0){ - case 0: - write_special$2(src, start, stop, ob, cst_b$2); break; + (cst_Unexpected_end_of_input$48,v,lexbuf)}}} + return utf8_of_code(v[1],x); + case 7:return long_error$0(cst_Invalid_escape_sequence$0,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$47,v,lexbuf)}}} + function finish_stringlit$0(v,lexbuf) + {var ocaml_lex_state=91; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + var + len=lexbuf[6] - lexbuf[5] | 0, + s=caml_create_bytes(len + 1 | 0); + caml_bytes_set(s,0,34); + caml_call5(Stdlib_Bytes[11],lexbuf[2],lexbuf[5],s,1,len); + return caml_call1(Stdlib_Bytes[6],s); + case 1:return long_error$0(cst_Invalid_string_literal$2,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$49,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_variant$0(v,lexbuf) + {var ocaml_lex_state=102; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + var x=read_json$0(v,lexbuf); + read_space$0(v,lexbuf); + read_gt$0(v,lexbuf); + return [0,x]; + case 1:return 0; + case 2:return long_error$0(cst_Expected_or_but_found$13,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$50,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_lt$0(v,lexbuf) + {var ocaml_lex_state=107; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Expected_but_found$14,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$51,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_gt$0(v,lexbuf) + {var ocaml_lex_state=111; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Expected_but_found$15,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$52,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_comma$0(v,lexbuf) + {var ocaml_lex_state=115; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Expected_but_found$16,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$53,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function start_any_variant$0(v,lexbuf) + {var ocaml_lex_state=119; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return -154522342; + case 1:caml_call1(Stdlib_Buffer[8],v[1]);return -589953938; + case 2:return -124528282; + case 3:return long_error$0(cst_Expected_or_but_found$14,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$54,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_comment$0(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=125; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Unterminated_comment$1,v,lexbuf); + case 2:newline$0(v,lexbuf);continue a; + default:continue a} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function read_eof$0(lexbuf) + {var ocaml_lex_state=131; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)return 1; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_space$0(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=133; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:newline$0(v,lexbuf);continue a; + case 1:finish_comment$0(v,lexbuf);continue a; + case 2:newline$0(v,lexbuf);continue a; + case 3:continue a; + default:return 0} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function read_null$0(v,lexbuf) + {var ocaml_lex_state=140; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Expected_null_but_found$0,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$55,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_null_if_possible$0(v,lexbuf) + {var ocaml_lex_state=147; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)return 1; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_bool$0(v,lexbuf) + {var ocaml_lex_state=152; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(5 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 1; + case 1:return 0; + case 2:return 1; + case 3:return 0; + case 4: + return long_error$0(cst_Expected_true_or_false_but$0,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$56,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function ocaml_lex_read_int_rec$0(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(4 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + try + {var _ib_=extract_positive_int$0(lexbuf);return _ib_} + catch(_ig_) + {_ig_ = caml_wrap_exception(_ig_); + if(_ig_ === Int_overflow$0) + return lexer_error$0(cst_Int_overflow$3,v,lexbuf); + throw _ig_} case 1: - write_special$2(src, start, stop, ob, cst_t$2); break; + try + {var _ic_=extract_negative_int$0(lexbuf);return _ic_} + catch(_if_) + {_if_ = caml_wrap_exception(_if_); + if(_if_ === Int_overflow$0) + return lexer_error$0(cst_Int_overflow$4,v,lexbuf); + throw _if_} case 2: - write_special$2(src, start, stop, ob, cst_n$2); break; + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$3(v,lexbuf); + try + {var _id_=caml_int_of_string(s);return _id_} + catch(_ie_) + {return custom_error$0(cst_Expected_an_integer_but_fo$0,v,lexbuf)} + case 3: + return long_error$0(cst_Expected_integer_but_found$0,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$57,v,lexbuf)}}} + function read_int$0(v,lexbuf) + {return ocaml_lex_read_int_rec$0(v,lexbuf,176)} + function ocaml_lex_read_int32_rec$0(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(3 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + try + {var _h9_=caml_int_of_string(caml_call1(lexeme$0,lexbuf)); + return _h9_} + catch(_ia_){return lexer_error$0(cst_Int32_overflow$1,v,lexbuf)} + case 1: + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$3(v,lexbuf); + try + {var _h__=caml_int_of_string(s);return _h__} + catch(_h$_) + {return custom_error$0(cst_Expected_an_int32_but_foun$0,v,lexbuf)} + case 2:return long_error$0(cst_Expected_int32_but_found$0,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$58,v,lexbuf)}}} + function read_int32$0(v,lexbuf) + {return ocaml_lex_read_int32_rec$0(v,lexbuf,185)} + function ocaml_lex_read_int64_rec$0(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(3 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + try + {var _h5_=caml_int64_of_string(caml_call1(lexeme$0,lexbuf)); + return _h5_} + catch(_h8_){return lexer_error$0(cst_Int32_overflow$2,v,lexbuf)} + case 1: + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$3(v,lexbuf); + try + {var _h6_=caml_int64_of_string(s);return _h6_} + catch(_h7_) + {return custom_error$0(cst_Expected_an_int64_but_foun$0,v,lexbuf)} + case 2:return long_error$0(cst_Expected_int64_but_found$0,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$59,v,lexbuf)}}} + function read_int64$0(v,lexbuf) + {return ocaml_lex_read_int64_rec$0(v,lexbuf,192)} + function ocaml_lex_read_number_rec$0(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(6 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return Stdlib[24]; + case 1:return Stdlib[22]; + case 2:return Stdlib[23]; + case 3:return caml_float_of_string(caml_call1(lexeme$0,lexbuf)); case 4: - write_special$2(src, start, stop, ob, cst_f$2); break; + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$3(v,lexbuf); + try + {var _h3_=caml_float_of_string(s);return _h3_} + catch(_h4_) + {return caml_string_notequal(s,cst_Infinity$13) + ?caml_string_notequal(s,cst_Infinity$14) + ?caml_string_notequal(s,cst_NaN$6) + ?custom_error$0(cst_Expected_a_number_but_foun$0,v,lexbuf) + :Stdlib[24] + :Stdlib[22] + :Stdlib[23]} case 5: - write_special$2(src, start, stop, ob, cst_r$2); break; - case 26: - write_special$2(src, start, stop, ob, cst$60); break; - case 24: - case 25: - switch$0 = 2; switch$1 = 1; break; - default: switch$1 = 1; - } - if(! switch$1) switch$0 = 1; - } - switch(switch$0){ - case 2: break; - case 0: - caml_call4 - (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16], ob, cst_u00$2); - var _hg_ = hex$4(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12], ob, _hg_); - var _hh_ = hex$4(c & 15); - caml_call2(Stdlib_Buffer[12], ob, _hh_); - start[1] = stop + 1 | 0; - break; - } - } - var _hk_ = stop + 1 | 0; - if(_hj_ !== stop){var stop = _hk_; continue;} - break; - } - } - try{ - caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - } - catch(exc$0){ - var exc = caml_wrap_exception(exc$0); - caml_call4 - (Stdlib_Printf[3], - _dm_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw caml_maybe_attach_backtrace(exc, 0); - } - return caml_call2(Stdlib_Buffer[12], ob, 34); - } - function json_string_of_string$2(s){ - var ob = caml_call1(Stdlib_Buffer[1], 10); - write_string$2(ob, s); - return caml_call1(Stdlib_Buffer[2], ob); - } - function write_null$2(ob, param){ - return caml_call2(Stdlib_Buffer[16], ob, cst_null$7); - } - function write_bool$2(ob, x){ - var _hf_ = x ? cst_true$2 : cst_false$2; - return caml_call2(Stdlib_Buffer[16], ob, _hf_); - } - var - _dn_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), - _do_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); - caml_call2(Stdlib[17], _do_, _dn_); - var - write_intlit$1 = Stdlib_Buffer[16], - write_floatlit$0 = Stdlib_Buffer[16], - write_stringlit$0 = Stdlib_Buffer[16]; - function iter2$2(f_elt, f_sep, x, param$0){ - if(! param$0) return 0; - var l$0 = param$0[2], y$0 = param$0[1]; - caml_call2(f_elt, x, y$0); - var param = l$0; - for(;;){ - if(! param) return 0; - var l = param[2], y = param[1]; - caml_call1(f_sep, x); - caml_call2(f_elt, x, y); - var param = l; - } - } - function f_sep$2(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} - function write_variant$1(ob, s, o){ - caml_call2(Stdlib_Buffer[12], ob, 60); - write_string$2(ob, s); - if(o){ - var x = o[1]; - caml_call2(Stdlib_Buffer[12], ob, 58); - write_json$2(ob, x); - } - return caml_call2(Stdlib_Buffer[12], ob, 62); - } - function write_tuple$1(ob, l){ - caml_call2(Stdlib_Buffer[12], ob, 40); - iter2$2(write_json$2, f_sep$2, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 41); - } - function write_list$2(ob, l){ - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2$2(write_json$2, f_sep$2, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - function write_assoc$2(ob, l){ - function f_elt(ob, param){ - var x = param[2], s = param[1]; - write_string$2(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 58); - return write_json$2(ob, x); - } - caml_call2(Stdlib_Buffer[12], ob, 123); - iter2$2(f_elt, f_sep$2, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 125); - } - function write_json$2(ob, x){ - if(typeof x === "number") return write_null$2(ob, 0); - var _he_ = x[1]; - if(737456202 <= _he_){ - if(928231259 <= _he_){ - if(963043957 <= _he_){var l = x[2]; return write_assoc$2(ob, l);} - var s = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s); - } - if(848054398 <= _he_){var l$0 = x[2]; return write_list$2(ob, l$0);} - var b = x[2]; - return write_bool$2(ob, b); - } - if(708012133 <= _he_){ - if(726928360 <= _he_){var l$1 = x[2]; return write_tuple$1(ob, l$1);} - var match = x[2], o = match[2], s$0 = match[1]; - return write_variant$1(ob, s$0, o); - } - if(-375152890 <= _he_){ - var s$1 = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s$1); - } - var s$2 = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s$2); - } - function write_std_variant$1(ob, s, o){ - if(! o) return write_string$2(ob, s); - var x = o[1]; - caml_call2(Stdlib_Buffer[12], ob, 91); - write_string$2(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 44); - write_std_json$2(ob, x); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - function write_std_tuple$1(ob, l){ - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2$2(write_std_json$2, f_sep$2, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - function write_std_json$2(ob, x){ - if(typeof x === "number") return write_null$2(ob, 0); - var _hd_ = x[1]; - if(737456202 <= _hd_){ - if(928231259 <= _hd_){ - if(963043957 <= _hd_){ - var - l = x[2], - f_elt = - function(ob, param){ - var x = param[2], s = param[1]; - write_string$2(ob, s); - caml_call2(Stdlib_Buffer[12], ob, 58); - return write_std_json$2(ob, x); - }; - caml_call2(Stdlib_Buffer[12], ob, 123); - iter2$2(f_elt, f_sep$2, ob, l); - return caml_call2(Stdlib_Buffer[12], ob, 125); - } - var s = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s); - } - if(848054398 <= _hd_){ - var l$0 = x[2]; - caml_call2(Stdlib_Buffer[12], ob, 91); - iter2$2(write_std_json$2, f_sep$2, ob, l$0); - return caml_call2(Stdlib_Buffer[12], ob, 93); - } - var b = x[2]; - return write_bool$2(ob, b); - } - if(708012133 <= _hd_){ - if(726928360 <= _hd_){var l$1 = x[2]; return write_std_tuple$1(ob, l$1);} - var match = x[2], o = match[2], s$0 = match[1]; - return write_std_variant$1(ob, s$0, o); - } - if(-375152890 <= _hd_){ - var s$1 = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s$1); - } - var s$2 = x[2]; - return caml_call2(Stdlib_Buffer[16], ob, s$2); - } - function to_buffer$2(opt, _hc_, ob, x){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$61; - if(_hc_) var sth$0 = _hc_[1], std = sth$0; else var std = 0; - if(std) write_std_json$2(ob, x); else write_json$2(ob, x); - return caml_call2(Stdlib_Buffer[16], ob, suf); - } - function to_string$4(buf, opt, _hb_, std, x){ - if(opt) var sth = opt[1], len = sth; else var len = 256; - if(_hb_) var sth$0 = _hb_[1], suf = sth$0; else var suf = cst$62; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer$2([0, suf], std, ob$0, x); - var s = caml_call1(Stdlib_Buffer[2], ob$0); - caml_call1(Stdlib_Buffer[8], ob$0); - return s; - } - function to_channel$2(buf, opt, _ha_, std, oc, x){ - if(opt) var sth = opt[1], len = sth; else var len = 4096; - if(_ha_) var sth$0 = _ha_[1], suf = sth$0; else var suf = cst$63; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer$2([0, suf], std, ob$0, x); - caml_call2(Stdlib_Buffer[10], oc, ob$0); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - function to_output$2(buf, opt, _g__, std, out, x){ - if(opt) var sth = opt[1], len = sth; else var len = 4096; - if(_g__) var sth$0 = _g__[1], suf = sth$0; else var suf = cst$64; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - to_buffer$2([0, suf], std, ob$0, x); - var _g$_ = caml_call1(Stdlib_Buffer[7], ob$0); - caml_call4 - (caml_get_public_method(out, 209784577, 4), - out, - caml_call1(Stdlib_Buffer[2], ob$0), - 0, - _g$_); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - function to_file$2(len, std, opt, file, x){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$65; - var oc = caml_call1(Stdlib[60], file); - try{ - to_channel$2(0, len, [0, suf], std, oc, x); - var _g9_ = caml_call1(Stdlib[76], oc); - return _g9_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[77], oc); - throw caml_maybe_attach_backtrace(e, 0); - } - } - function seq_to_buffer$2(opt, std, ob, st){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$66; - var _g6_ = [0, suf]; - function _g7_(_g8_){return to_buffer$2(_g6_, std, ob, _g8_);} - return caml_call2(Stdlib_Seq[4], _g7_, st); - } - function seq_to_string$2(buf, opt, _g5_, std, st){ - if(opt) var sth = opt[1], len = sth; else var len = 256; - if(_g5_) var sth$0 = _g5_[1], suf = sth$0; else var suf = cst$67; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - seq_to_buffer$2([0, suf], std, ob$0, st); - var s = caml_call1(Stdlib_Buffer[2], ob$0); - caml_call1(Stdlib_Buffer[8], ob$0); - return s; - } - function seq_to_channel$2(buf, opt, _g3_, std, oc, seq){ - if(opt) var sth = opt[1], len = sth; else var len = 2096; - if(_g3_) var sth$0 = _g3_[1], suf = sth$0; else var suf = cst$68; - if(buf){ - var ob = buf[1]; - caml_call1(Stdlib_Buffer[8], ob); - var ob$0 = ob; - } - else - var ob$0 = caml_call1(Stdlib_Buffer[1], len); - function _g4_(json){ - to_buffer$2([0, suf], std, ob$0, json); - caml_call2(Stdlib_Buffer[10], oc, ob$0); - return caml_call1(Stdlib_Buffer[8], ob$0); - } - return caml_call2(Stdlib_Seq[4], _g4_, seq); - } - function seq_to_file$2(len, opt, std, file, st){ - if(opt) var sth = opt[1], suf = sth; else var suf = cst$69; - var oc = caml_call1(Stdlib[60], file); - try{ - seq_to_channel$2(0, len, [0, suf], std, oc, st); - var _g2_ = caml_call1(Stdlib[76], oc); - return _g2_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[77], oc); - throw caml_maybe_attach_backtrace(e, 0); - } - } - function sort$2(x){ - if(typeof x !== "number"){ - var _gU_ = x[1]; - if(726928361 <= _gU_){ - if(848054398 === _gU_){ - var l = x[2], _gV_ = caml_call2(Stdlib_List[21], sort$2, l); - return [0, 848054398, caml_call1(Stdlib_List[9], _gV_)]; - } - if(963043957 === _gU_){ - var - l$0 = x[2], - _gW_ = - function(param){ - var v = param[2], k = param[1]; - return [0, k, sort$2(v)]; - }, - _gX_ = caml_call2(Stdlib_List[21], _gW_, l$0), - l$1 = caml_call1(Stdlib_List[9], _gX_), - _gY_ = - function(param, _g1_){ - var b = _g1_[1], a = param[1]; - return caml_call2(Stdlib_String[9], a, b); - }; - return [0, 963043957, caml_call2(Stdlib_List[57], _gY_, l$1)]; - } - } - else if(708012133 === _gU_){ - var _gZ_ = x[2], match = _gZ_[2]; - if(match){ - var v = match[1], k = _gZ_[1], v$0 = sort$2(v); - return v === v$0 ? x : [0, 708012133, [0, k, [0, v$0]]]; - } - } - else if(726928360 <= _gU_){ - var l$2 = x[2], _g0_ = caml_call2(Stdlib_List[21], sort$2, l$2); - return [0, 726928360, caml_call1(Stdlib_List[9], _g0_)]; - } - } - return x; - } - function pp_list$2(sep, ppx, out, l){ - function pp_sep(out, param){ - return caml_call3(Stdlib_Format[129], out, _dp_, sep); - } - return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); - } - function is_atom$2(x){ - if(typeof x !== "number"){ - var _gT_ = x[1], switch$0 = 0; - if(737456202 <= _gT_){ - if(848054398 === _gT_){ - if(x[2]) switch$0 = 1; - } - else if(963043957 <= _gT_ && x[2]) switch$0 = 1; - } - else - if(708012133 === _gT_){ - if(x[2][2]) switch$0 = 1; - } - else if(726928360 <= _gT_ && x[2]) switch$0 = 1; - if(switch$0) return 0; - } - return 1; - } - function format$2(inside_box, std, out, x){ - var x$0 = x; - for(;;){ - if(typeof x$0 === "number") - return caml_call2(Stdlib_Format[13], out, cst_null$8); - var _gf_ = x$0[1]; - if(737456202 <= _gf_){ - if(928231259 <= _gf_){ - if(963043957 > _gf_){ - var s = x$0[2]; - return caml_call2(Stdlib_Format[13], out, s); - } - var l = x$0[2]; - if(! l) return caml_call2(Stdlib_Format[13], out, cst$71); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _dq_); - var - _gg_ = - function(out, param){ - var x = param[2], name = param[1], _gO_ = 1; - function _gP_(_gR_, _gS_){return format$2(_gO_, std, _gR_, _gS_);} - var _gQ_ = json_string_of_string$2(name); - return caml_call5(Stdlib_Format[129], out, _dC_, _gQ_, _gP_, x); - }, - _gh_ = - function(_gM_, _gN_){return pp_list$2(cst$70, _gg_, _gM_, _gN_);}; - caml_call4(Stdlib_Format[129], out, _dr_, _gh_, l); - var _gi_ = 1 - inside_box; - return _gi_ ? caml_call2(Stdlib_Format[129], out, _ds_) : _gi_; - } - if(848054398 > _gf_){ - var x$1 = x$0[2]; - return caml_call2(Stdlib_Format[25], out, x$1); - } - var l$0 = x$0[2]; - if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$74); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _dt_); - if(caml_call2(Stdlib_List[32], is_atom$2, l$0)){ - var - _gj_ = 0, - _gk_ = function(_gG_, _gH_){return format$2(_gj_, std, _gG_, _gH_);}, - _gl_ = - function(_gE_, _gF_){return pp_list$2(cst$72, _gk_, _gE_, _gF_);}; - caml_call4(Stdlib_Format[129], out, _du_, _gl_, l$0); - } - else{ - var - _gn_ = 0, - _go_ = function(_gK_, _gL_){return format$2(_gn_, std, _gK_, _gL_);}, - _gp_ = - function(_gI_, _gJ_){return pp_list$2(cst$73, _go_, _gI_, _gJ_);}; - caml_call4(Stdlib_Format[129], out, _dw_, _gp_, l$0); - } - var _gm_ = 1 - inside_box; - return _gm_ ? caml_call2(Stdlib_Format[129], out, _dv_) : _gm_; - } - if(708012133 > _gf_){ - if(-375152890 <= _gf_){ - var s$1 = x$0[2]; - return caml_call2(Stdlib_Format[13], out, s$1); - } - var s$2 = x$0[2]; - return caml_call2(Stdlib_Format[13], out, s$2); - } - if(726928360 <= _gf_){ - var l$1 = x$0[2]; - if(std){var x$2 = [0, 848054398, l$1], x$0 = x$2; continue;} - if(0 === l$1) return caml_call2(Stdlib_Format[13], out, cst$75); - if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _dx_); + return long_error$0(cst_Expected_number_but_found$0,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$60,v,lexbuf)}}} + function read_number$0(v,lexbuf) + {return ocaml_lex_read_number_rec$0(v,lexbuf,199)} + function read_string$0(v,lexbuf) + {var ocaml_lex_state=233; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call1(Stdlib_Buffer[8],v[1]); + return finish_string$3(v,lexbuf); + case 1:return long_error$0(cst_Expected_but_found$17,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$61,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_ident$0(v,lexbuf) + {var ocaml_lex_state=237; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call1(Stdlib_Buffer[8],v[1]); + return finish_string$3(v,lexbuf); + case 1: + var s=caml_call3(sub_lexeme$0,lexbuf,lexbuf[5],lexbuf[6]); + return s; + case 2: + return long_error$0(cst_Expected_string_or_identif$3,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$62,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function map_ident$0(v,f,lexbuf) + {var ocaml_lex_state=242; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call1(Stdlib_Buffer[8],v[1]);return map_string$0(v,f,lexbuf); + case 1: + var len=lexbuf[6] - lexbuf[5] | 0; + return caml_call3 + (f, + caml_call3(Stdlib_Bytes[8],lexbuf[2],lexbuf[5],len), + 0, + len); + case 2: + return long_error$0(cst_Expected_string_or_identif$4,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$63,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function ocaml_lex_read_sequence_rec$0 + (read_cell,init_acc,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var acc=[0,init_acc]; + try + {read_space$0(v,lexbuf); + read_array_end$0(lexbuf); + acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); + for(;;) + {read_space$0(v,lexbuf); + read_array_sep$0(v,lexbuf); + read_space$0(v,lexbuf); + acc[1] = caml_call3(read_cell,acc[1],v,lexbuf)}} + catch(_h2_) + {_h2_ = caml_wrap_exception(_h2_); + if(_h2_ === End_of_array)return acc[1]; + throw _h2_} + case 1:return long_error$0(cst_Expected_but_found$18,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$64,v,lexbuf)}}} + function read_sequence$0(read_cell,init_acc,v,lexbuf) + {return ocaml_lex_read_sequence_rec$0(read_cell,init_acc,v,lexbuf,247)} + function ocaml_lex_read_list_rev_rec$0(read_cell,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var acc=[0,0]; + try + {read_space$0(v,lexbuf); + read_array_end$0(lexbuf); + var _hZ_=acc[1]; + acc[1] = [0,caml_call2(read_cell,v,lexbuf),_hZ_]; + for(;;) + {read_space$0(v,lexbuf); + read_array_sep$0(v,lexbuf); + read_space$0(v,lexbuf); + var _h0_=acc[1]; + acc[1] = [0,caml_call2(read_cell,v,lexbuf),_h0_]}} + catch(_h1_) + {_h1_ = caml_wrap_exception(_h1_); + if(_h1_ === End_of_array)return acc[1]; + throw _h1_} + case 1:return long_error$0(cst_Expected_but_found$19,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$65,v,lexbuf)}}} + function read_list_rev$0(read_cell,v,lexbuf) + {return ocaml_lex_read_list_rev_rec$0(read_cell,v,lexbuf,251)} + function read_array_end$0(lexbuf) + {var ocaml_lex_state=255; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)throw End_of_array; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_array_sep$0(v,lexbuf) + {var ocaml_lex_state=257; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:throw End_of_array; + case 2:return long_error$0(cst_Expected_or_but_found$15,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$66,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function ocaml_lex_read_tuple_rec + (read_cell,init_acc,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var pos=[0,0],acc=[0,init_acc]; + try + {read_space$0(v,lexbuf); + read_tuple_end$0(lexbuf); + acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); + pos[1]++; + for(;;) + {read_space$0(v,lexbuf); + read_tuple_sep$0(v,lexbuf); + read_space$0(v,lexbuf); + acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); + pos[1]++}} + catch(_hY_) + {_hY_ = caml_wrap_exception(_hY_); + if(_hY_ === End_of_tuple)return acc[1]; + throw _hY_} + case 1:return long_error$0(cst_Expected_but_found$20,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$67,v,lexbuf)}}} + function read_tuple$0(read_cell,init_acc,v,lexbuf) + {return ocaml_lex_read_tuple_rec(read_cell,init_acc,v,lexbuf,262)} + function read_tuple_end$0(lexbuf) + {var ocaml_lex_state=266; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)throw End_of_tuple; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_tuple_end2$0(v,std,lexbuf) + {var ocaml_lex_state=268; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0: + if(std)return long_error$0(cst_Expected_or_but_found$16,v,lexbuf); + throw End_of_tuple; + case 1: + if(std)throw End_of_tuple; + return long_error$0(cst_Expected_or_but_found$17,v,lexbuf); + default:return 0}}} + function read_tuple_sep$0(v,lexbuf) + {var ocaml_lex_state=271; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:throw End_of_tuple; + case 2:return long_error$0(cst_Expected_or_but_found$18,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$68,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_tuple_sep2$0(v,std,lexbuf) + {var ocaml_lex_state=276; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(4 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1: + if(std)return long_error$0(cst_Expected_or_but_found$19,v,lexbuf); + throw End_of_tuple; + case 2: + if(std)throw End_of_tuple; + return long_error$0(cst_Expected_or_but_found$20,v,lexbuf); + case 3:return long_error$0(cst_Expected_or_but_found$21,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$69,v,lexbuf)}}} + function ocaml_lex_read_abstract_fields$0 + (read_key,read_field,init_acc,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var acc=[0,init_acc]; + try + {read_space$0(v,lexbuf); + read_object_end$0(lexbuf); + var field_name=caml_call2(read_key,v,lexbuf); + read_space$0(v,lexbuf); + read_colon$0(v,lexbuf); + read_space$0(v,lexbuf); + acc[1] = caml_call4(read_field,acc[1],field_name,v,lexbuf); + for(;;) + {read_space$0(v,lexbuf); + read_object_sep$0(v,lexbuf); + read_space$0(v,lexbuf); + var field_name$0=caml_call2(read_key,v,lexbuf); + read_space$0(v,lexbuf); + read_colon$0(v,lexbuf); + read_space$0(v,lexbuf); + acc[1] = caml_call4(read_field,acc[1],field_name$0,v,lexbuf)}} + catch(_hX_) + {_hX_ = caml_wrap_exception(_hX_); + if(_hX_ === End_of_object)return acc[1]; + throw _hX_} + case 1:return long_error$0(cst_Expected_but_found$21,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$70,v,lexbuf)}}} + function read_abstract_fields$0(read_key,read_field,init_acc,v,lexbuf) + {return ocaml_lex_read_abstract_fields$0 + (read_key,read_field,init_acc,v,lexbuf,282)} + function read_lcurl$0(v,lexbuf) + {var ocaml_lex_state=286; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Expected_but_found$22,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$71,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_object_end$0(lexbuf) + {var ocaml_lex_state=290; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)throw End_of_object; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_object_sep$0(v,lexbuf) + {var ocaml_lex_state=292; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:throw End_of_object; + case 2:return long_error$0(cst_Expected_or_but_found$22,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$72,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_colon$0(v,lexbuf) + {var ocaml_lex_state=297; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Expected_but_found$23,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$73,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function start_any_tuple$0(v,lexbuf) + {var ocaml_lex_state=301; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return 1; + case 2:return long_error$0(cst_Expected_or_but_found$23,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$74,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_lpar$0(v,lexbuf) + {var ocaml_lex_state=306; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Expected_but_found$24,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$75,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_rpar$0(v,lexbuf) + {var ocaml_lex_state=310; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Expected_but_found$25,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$76,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_lbr$0(v,lexbuf) + {var ocaml_lex_state=314; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Expected_but_found$26,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$77,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_rbr$0(v,lexbuf) + {var ocaml_lex_state=318; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Expected_but_found$27,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$78,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_skip_variant$0(v,lexbuf) + {var ocaml_lex_state=389; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + skip_json$0(v,lexbuf); + read_space$0(v,lexbuf); + return read_gt$0(v,lexbuf); + case 1:return 0; + case 2:return long_error$0(cst_Expected_or_but_found$24,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$81,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_skip_stringlit$0(v,lexbuf) + {var ocaml_lex_state=378; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$0(cst_Invalid_string_literal$3,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$80,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function skip_json$3(counter,v,lexbuf) + {var _hW_=322; + if(counter >= 50) + return caml_trampoline_return + (ocaml_lex_skip_json_rec$0,[0,v,lexbuf,_hW_]); + var counter$0=counter + 1 | 0; + return ocaml_lex_skip_json_rec$0(counter$0,v,lexbuf,_hW_)} + function ocaml_lex_skip_json_rec$0(counter,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(18 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return 0; + case 1:return 0; + case 2:return 0; + case 3:return 0; + case 4:return 0; + case 5:return 0; + case 6:return finish_skip_stringlit$0(v,lexbuf); + case 7:return 0; + case 8:return 0; + case 9: + try + {read_space$0(v,lexbuf); + read_object_end$0(lexbuf); + skip_ident$0(v,lexbuf); + read_space$0(v,lexbuf); + read_colon$0(v,lexbuf); + read_space$0(v,lexbuf); + skip_json$0(v,lexbuf); + for(;;) + {read_space$0(v,lexbuf); + read_object_sep$0(v,lexbuf); + read_space$0(v,lexbuf); + skip_ident$0(v,lexbuf); + read_space$0(v,lexbuf); + read_colon$0(v,lexbuf); + read_space$0(v,lexbuf); + skip_json$0(v,lexbuf)}} + catch(_hV_) + {_hV_ = caml_wrap_exception(_hV_); + if(_hV_ === End_of_object)return 0; + throw _hV_} + case 10: + try + {read_space$0(v,lexbuf); + read_array_end$0(lexbuf); + skip_json$0(v,lexbuf); + for(;;) + {read_space$0(v,lexbuf); + read_array_sep$0(v,lexbuf); + read_space$0(v,lexbuf); + skip_json$0(v,lexbuf)}} + catch(_hU_) + {_hU_ = caml_wrap_exception(_hU_); + if(_hU_ === End_of_array)return 0; + throw _hU_} + case 11: + try + {read_space$0(v,lexbuf); + read_tuple_end$0(lexbuf); + skip_json$0(v,lexbuf); + for(;;) + {read_space$0(v,lexbuf); + read_tuple_sep$0(v,lexbuf); + read_space$0(v,lexbuf); + skip_json$0(v,lexbuf)}} + catch(_hT_) + {_hT_ = caml_wrap_exception(_hT_); + if(_hT_ === End_of_tuple)return 0; + throw _hT_} + case 12: + read_space$0(v,lexbuf); + skip_ident$0(v,lexbuf); + read_space$0(v,lexbuf); + return finish_skip_variant$0(v,lexbuf); + case 13: + if(counter >= 50) + return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); + var counter$0=counter + 1 | 0; + return skip_json$3(counter$0,v,lexbuf); + case 14: + finish_comment$0(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); + var counter$1=counter + 1 | 0; + return skip_json$3(counter$1,v,lexbuf); + case 15: + newline$0(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); + var counter$2=counter + 1 | 0; + return skip_json$3(counter$2,v,lexbuf); + case 16: + if(counter >= 50) + return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); + var counter$3=counter + 1 | 0; + return skip_json$3(counter$3,v,lexbuf); + case 17: + return custom_error$0(cst_Unexpected_end_of_input$79,v,lexbuf); + default:return long_error$0(cst_Invalid_token$10,v,lexbuf)}}} + function skip_json$0(v,lexbuf) + {return caml_trampoline(skip_json$3(0,v,lexbuf))} + function skip_ident$0(v,lexbuf) + {var ocaml_lex_state=394; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return finish_skip_stringlit$0(v,lexbuf); + case 1:return 0; + case 2: + return long_error$0(cst_Expected_string_or_identif$5,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$82,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_buffer_variant(v,lexbuf) + {var ocaml_lex_state=461; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0: + caml_call2(Stdlib_Buffer[12],v[1],58); + buffer_json$0(v,lexbuf); + buffer_space$0(v,lexbuf); + var ocaml_lex_state$1=503; + for(;;) + {var + ocaml_lex_state$2= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$1,lexbuf); + if(2 >= ocaml_lex_state$2 >>> 0) + switch(ocaml_lex_state$2) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],62); + case 1: + return long_error$0(cst_Expected_but_found$29,v,lexbuf); + default: + return custom_error$0 + (cst_Unexpected_end_of_input$91,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$1=ocaml_lex_state$2} + case 1:return caml_call2(Stdlib_Buffer[12],v[1],62); + case 2:return long_error$0(cst_Expected_or_but_found$25,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$85,v,lexbuf)}}} + function finish_buffer_stringlit$0(v,lexbuf) + {var ocaml_lex_state=450; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call2(Stdlib_Buffer[12],v[1],34); + return add_lexeme$0(v[1],lexbuf); + case 1:return long_error$0(cst_Invalid_string_literal$4,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$84,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_json$3(counter,v,lexbuf) + {var _hS_=399; + if(counter >= 50) + return caml_trampoline_return + (ocaml_lex_buffer_json_rec$0,[0,v,lexbuf,_hS_]); + var counter$0=counter + 1 | 0; + return ocaml_lex_buffer_json_rec$0(counter$0,v,lexbuf,_hS_)} + function ocaml_lex_buffer_json_rec$0(counter,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); + if(11 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return add_lexeme$0(v[1],lexbuf); + case 1:return finish_buffer_stringlit$0(v,lexbuf); + case 2: + try + {caml_call2(Stdlib_Buffer[12],v[1],123); + buffer_space$0(v,lexbuf); + buffer_object_end$0(v,lexbuf); + buffer_ident$0(v,lexbuf); + buffer_space$0(v,lexbuf); + buffer_colon$0(v,lexbuf); + buffer_space$0(v,lexbuf); + buffer_json$0(v,lexbuf); + for(;;) + {buffer_space$0(v,lexbuf); + buffer_object_sep$0(v,lexbuf); + buffer_space$0(v,lexbuf); + buffer_ident$0(v,lexbuf); + buffer_space$0(v,lexbuf); + buffer_colon$0(v,lexbuf); + buffer_space$0(v,lexbuf); + buffer_json$0(v,lexbuf)}} + catch(_hR_) + {_hR_ = caml_wrap_exception(_hR_); + if(_hR_ === End_of_object)return 0; + throw _hR_} + case 3: + try + {caml_call2(Stdlib_Buffer[12],v[1],91); + buffer_space$0(v,lexbuf); + buffer_array_end$0(v,lexbuf); + buffer_json$0(v,lexbuf); + for(;;) + {buffer_space$0(v,lexbuf); + buffer_array_sep$0(v,lexbuf); + buffer_space$0(v,lexbuf); + buffer_json$0(v,lexbuf)}} + catch(_hQ_) + {_hQ_ = caml_wrap_exception(_hQ_); + if(_hQ_ === End_of_array)return 0; + throw _hQ_} + case 4: + try + {caml_call2(Stdlib_Buffer[12],v[1],40); + buffer_space$0(v,lexbuf); + buffer_tuple_end(v,lexbuf); + buffer_json$0(v,lexbuf); + for(;;) + {buffer_space$0(v,lexbuf); + buffer_tuple_sep(v,lexbuf); + buffer_space$0(v,lexbuf); + buffer_json$0(v,lexbuf)}} + catch(_hP_) + {_hP_ = caml_wrap_exception(_hP_); + if(_hP_ === End_of_tuple)return 0; + throw _hP_} + case 5: + caml_call2(Stdlib_Buffer[12],v[1],60); + buffer_space$0(v,lexbuf); + buffer_ident$0(v,lexbuf); + buffer_space$0(v,lexbuf); + return finish_buffer_variant(v,lexbuf); + case 6: + add_lexeme$0(v[1],lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); + var counter$0=counter + 1 | 0; + return buffer_json$3(counter$0,v,lexbuf); + case 7: + caml_call2(Stdlib_Buffer[16],v[1],cst$56); + finish_buffer_comment$0(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); + var counter$1=counter + 1 | 0; + return buffer_json$3(counter$1,v,lexbuf); + case 8: + caml_call2(Stdlib_Buffer[12],v[1],10); + newline$0(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); + var counter$2=counter + 1 | 0; + return buffer_json$3(counter$2,v,lexbuf); + case 9: + add_lexeme$0(v[1],lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); + var counter$3=counter + 1 | 0; + return buffer_json$3(counter$3,v,lexbuf); + case 10: + return custom_error$0(cst_Unexpected_end_of_input$83,v,lexbuf); + default:return long_error$0(cst_Invalid_token$11,v,lexbuf)}}} + function buffer_json$0(v,lexbuf) + {return caml_trampoline(buffer_json$3(0,v,lexbuf))} + function buffer_ident$0(v,lexbuf) + {var ocaml_lex_state=466; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return finish_buffer_stringlit$0(v,lexbuf); + case 1:return add_lexeme$0(v[1],lexbuf); + case 2: + return long_error$0(cst_Expected_string_or_identif$6,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$86,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_space$0(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=471; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:add_lexeme$0(v[1],lexbuf);newline$0(v,lexbuf);continue a; + case 1: + caml_call2(Stdlib_Buffer[16],v[1],cst$57); + finish_buffer_comment$0(v,lexbuf); + continue a; + case 2: + caml_call2(Stdlib_Buffer[12],v[1],10); + newline$0(v,lexbuf); + continue a; + case 3:add_lexeme$0(v[1],lexbuf);continue a; + default:return 0} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function buffer_object_end$0(v,lexbuf) + {var ocaml_lex_state=478; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0) + {caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object} + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_object_sep$0(v,lexbuf) + {var ocaml_lex_state=480; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); + case 1:caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object; + case 2:return long_error$0(cst_Expected_or_but_found$26,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$87,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_array_end$0(v,lexbuf) + {var ocaml_lex_state=485; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0) + {caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array} + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_array_sep$0(v,lexbuf) + {var ocaml_lex_state=487; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); + case 1:caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array; + case 2:return long_error$0(cst_Expected_or_but_found$27,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$88,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_tuple_end(v,lexbuf) + {var ocaml_lex_state=492; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0) + {caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple} + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_tuple_sep(v,lexbuf) + {var ocaml_lex_state=494; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); + case 1:caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple; + case 2:return long_error$0(cst_Expected_or_but_found$28,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$89,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_colon$0(v,lexbuf) + {var ocaml_lex_state=499; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],58); + case 1:return long_error$0(cst_Expected_but_found$28,v,lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$90,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_buffer_comment$0(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=507; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[16],v[1],cst$58); + case 1:return long_error$0(cst_Unterminated_comment$2,v,lexbuf); + case 2: + caml_call2(Stdlib_Buffer[12],v[1],10); + newline$0(v,lexbuf); + continue a; + default:add_lexeme$0(v[1],lexbuf);continue a} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function junk$0(lexbuf) + {var ocaml_lex_state=513; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)return caml_call1(lexeme$0,lexbuf); + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + read_junk$0[1] = junk$0; + function read_int8$0(v,lexbuf) + {var n=read_int$0(v,lexbuf); + if(0 <= n && 255 >= n)return caml_call1(Stdlib[29],n); + return lexer_error$0(cst_Int8_overflow$0,v,lexbuf)} + function read_list$0(read_cell,v,lexbuf) + {var _hO_=read_list_rev$0(read_cell,v,lexbuf); + return caml_call1(Stdlib_List[9],_hO_)} + function read_array$0(read_cell,v,lexbuf) + {var l=read_list_rev$0(read_cell,v,lexbuf); + if(! l)return [0]; var - _gq_ = 0, - _gr_ = function(_gC_, _gD_){return format$2(_gq_, std, _gC_, _gD_);}, - _gs_ = - function(_gA_, _gB_){return pp_list$2(cst$76, _gr_, _gA_, _gB_);}; - caml_call4(Stdlib_Format[129], out, _dy_, _gs_, l$1); - var _gt_ = 1 - inside_box; - return _gt_ ? caml_call2(Stdlib_Format[129], out, _dz_) : _gt_; - } - var _gu_ = x$0[2], match = _gu_[2], s$0 = _gu_[1]; - if(match){ - var x$3 = match[1]; - if(std){ - var - representation = [0, -375152890, s$0], - x$4 = [0, 848054398, [0, representation, [0, x$3, 0]]], - x$0 = x$4; - continue; - } + tl=l[2], + x=l[1], + len=caml_call1(Stdlib_List[1],l), + a=caml_make_vect(len,x), + r=[0,tl], + _hL_=len - 2 | 0; + if(_hL_ >= 0) + {var i=_hL_; + for(;;) + {var _hM_=caml_call1(Stdlib_List[5],r[1]); + caml_check_bound(a,i)[1 + i] = _hM_; + r[1] = caml_call1(Stdlib_List[6],r[1]); + var _hN_=i - 1 | 0; + if(0 !== i){var i=_hN_;continue} + break}} + return a} + function read_fields$0(read_field,init_acc,v) + {return function(_hK_) + {return read_abstract_fields$0(read_ident$0,read_field,init_acc,v,_hK_)}} + function from_lexbuf$0(v,opt,lexbuf) + {if(opt)var sth=opt[1],stream=sth;else var stream=0; + read_space$0(v,lexbuf); + if(read_eof$0(lexbuf))throw End_of_input; + var x=read_json$0(v,lexbuf); + if(1 - stream) + {read_space$0(v,lexbuf); + if(1 - read_eof$0(lexbuf)) + long_error$0(cst_Junk_after_end_of_JSON_val$0,v,lexbuf)} + return x} + function from_string$2(buf,fname,lnum,s) + {try + {var + lexbuf=caml_call2(from_string$1,0,s), + v=init_lexer(buf,fname,lnum,0), + _hI_=from_lexbuf$0(v,0,lexbuf); + return _hI_} + catch(_hJ_) + {_hJ_ = caml_wrap_exception(_hJ_); + if(_hJ_ === End_of_input)return json_error(cst_Blank_input_data$1); + throw _hJ_}} + function from_channel$2(buf,fname,lnum,ic) + {try + {var + lexbuf=caml_call2(from_channel$1,0,ic), + v=init_lexer(buf,fname,lnum,0), + _hG_=from_lexbuf$0(v,0,lexbuf); + return _hG_} + catch(_hH_) + {_hH_ = caml_wrap_exception(_hH_); + if(_hH_ === End_of_input)return json_error(cst_Blank_input_data$2); + throw _hH_}} + function from_file$0(buf,fname,lnum,file) + {var ic=caml_call1(Stdlib[79],file); + try + {var x=from_channel$2(buf,fname,lnum,ic); + caml_call1(Stdlib[93],ic); + return x} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[94],ic);throw e}} + var Finally$0=[248,cst_Yojson_Safe_Finally,caml_fresh_oo_id(0)]; + function seq_from_lexbuf$0(v,opt,lexbuf) + {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; + function f(param) + {try + {var _hF_=[0,from_lexbuf$0(v,stream$0,lexbuf),f];return _hF_} + catch(e) + {e = caml_wrap_exception(e); + if(e === End_of_input){caml_call1(fin,0);return 0} + try + {caml_call1(fin,0)} + catch(fin_e) + {fin_e = caml_wrap_exception(fin_e);throw [0,Finally$0,e,fin_e]} + throw e}} + return f} + function seq_from_string$0(buf,fname,lnum,s) + {var v=init_lexer(buf,fname,lnum,0); + return seq_from_lexbuf$0(v,0,caml_call2(from_string$1,0,s))} + function seq_from_channel$0(buf,fin,fname,lnum,ic) + {var + lexbuf=caml_call2(from_channel$1,0,ic), + v=init_lexer(buf,fname,lnum,0); + return seq_from_lexbuf$0(v,fin,lexbuf)} + function seq_from_file$0(buf,fname,lnum,file) + {var ic=caml_call1(Stdlib[79],file); + function fin(param){return caml_call1(Stdlib[93],ic)} var - op = json_string_of_string$2(s$0), - _gv_ = 1, - _gw_ = function(_gy_, _gz_){return format$2(_gv_, std, _gy_, _gz_);}; - return caml_call5(Stdlib_Format[129], out, _dA_, op, _gw_, x$3); - } - if(std){ - var representation$0 = [0, -375152890, s$0], x$0 = representation$0; - continue; - } - var _gx_ = json_string_of_string$2(s$0); - return caml_call3(Stdlib_Format[129], out, _dB_, _gx_); - } - } - function pp$5(opt, out, x){ - if(opt) var sth = opt[1], std = sth; else var std = 0; - var _gb_ = 1; - function _gc_(_gd_, _ge_){return format$2(_gb_, std, _gd_, _ge_);} - return caml_call4(Stdlib_Format[129], out, _dD_, _gc_, x); - } - function pp$6(fmt, param){ - if(typeof param === "number") - return caml_call2(Stdlib_Format[13], fmt, cst_Null$2); - var _f6_ = param[1]; - if(737456202 <= _f6_){ - if(928231259 <= _f6_){ - if(963043957 <= _f6_){ - var xs = param[2]; - caml_call2(Stdlib_Format[129], fmt, _dG_); - caml_call2(Stdlib_Format[129], fmt, _dH_); - var - _f7_ = 0, - _f8_ = - function(sep, param){ - var value = param[2], key = param[1]; - if(sep) caml_call2(Stdlib_Format[129], fmt, _dI_); - caml_call2(Stdlib_Format[129], fmt, _dJ_); - caml_call3(Stdlib_Format[129], fmt, _dK_, key); - caml_call2(Stdlib_Format[129], fmt, _dL_); - pp$6(fmt, value); - caml_call2(Stdlib_Format[129], fmt, _dM_); - return 1; - }; - caml_call3(Stdlib_List[25], _f8_, _f7_, xs); - caml_call2(Stdlib_Format[129], fmt, _dN_); - return caml_call2(Stdlib_Format[129], fmt, _dO_); - } - var x = param[2]; - caml_call2(Stdlib_Format[129], fmt, _dP_); - caml_call3(Stdlib_Format[129], fmt, _dQ_, x); - return caml_call2(Stdlib_Format[129], fmt, _dR_); - } - if(848054398 <= _f6_){ - var xs$0 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _dS_); - caml_call2(Stdlib_Format[129], fmt, _dT_); - var - _f9_ = 0, - _f__ = - function(sep, x){ - if(sep) caml_call2(Stdlib_Format[129], fmt, _dU_); - pp$6(fmt, x); - return 1; - }; - caml_call3(Stdlib_List[25], _f__, _f9_, xs$0); - caml_call2(Stdlib_Format[129], fmt, _dV_); - return caml_call2(Stdlib_Format[129], fmt, _dW_); - } - var x$0 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _dX_); - caml_call3(Stdlib_Format[129], fmt, _dY_, x$0); - return caml_call2(Stdlib_Format[129], fmt, _dZ_); - } - if(708012133 <= _f6_){ - if(726928360 <= _f6_){ - var tup = param[2]; - caml_call2(Stdlib_Format[129], fmt, _d0_); - caml_call2(Stdlib_Format[129], fmt, _d1_); - var - _f$_ = 0, - _ga_ = - function(sep, e){ - if(sep) caml_call2(Stdlib_Format[129], fmt, _d2_); - pp$6(fmt, e); - return 1; - }; - caml_call3(Stdlib_List[25], _ga_, _f$_, tup); - caml_call2(Stdlib_Format[129], fmt, _d3_); - return caml_call2(Stdlib_Format[129], fmt, _d4_); - } - var match = param[2], value = match[2], name = match[1]; - caml_call2(Stdlib_Format[129], fmt, _d5_); - caml_call2(Stdlib_Format[129], fmt, _d6_); - caml_call3(Stdlib_Format[129], fmt, _d7_, name); - caml_call2(Stdlib_Format[129], fmt, _d8_); - if(value){ - var x$1 = value[1]; - caml_call2(Stdlib_Format[13], fmt, cst_Some$1); - pp$6(fmt, x$1); - caml_call2(Stdlib_Format[13], fmt, cst$77); - } - else - caml_call2(Stdlib_Format[13], fmt, cst_None$1); - caml_call2(Stdlib_Format[129], fmt, _d9_); - return caml_call2(Stdlib_Format[129], fmt, _d__); - } - if(-375152890 <= _f6_){ - var x$2 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _d$_); - caml_call3(Stdlib_Format[129], fmt, _ea_, x$2); - return caml_call2(Stdlib_Format[129], fmt, _eb_); - } - var x$3 = param[2]; - caml_call2(Stdlib_Format[129], fmt, _ec_); - caml_call3(Stdlib_Format[129], fmt, _ed_, x$3); - return caml_call2(Stdlib_Format[129], fmt, _ee_); - } - function show$2(x){return caml_call3(Stdlib_Format[133], _ef_, pp$6, x);} - function equal$2(a, b){ - var a$0 = a, b$0 = b; - for(;;){ - if(typeof a$0 === "number"){ - if(870828711 === a$0 && 870828711 === b$0) return 1; - } - else{ - var _fX_ = a$0[1], switch$0 = 0; - if(726928361 <= _fX_){ - if(848054399 <= _fX_){ - if(928231259 === _fX_){ - if(typeof b$0 !== "number" && 928231259 === b$0[1]){ - var b$1 = b$0[2], a$1 = a$0[2]; - return caml_equal(a$1, b$1); - } - } - else if - (963043957 === _fX_ - && typeof b$0 !== "number" && 963043957 === b$0[1]){ - var - ys = b$0[2], - xs = a$0[2], - compare_keys = - function(param, _f5_){ - var key = _f5_[1], key$0 = param[1]; - return caml_call2(Stdlib_String[9], key$0, key); - }, - xs$0 = caml_call2(Stdlib_List[57], compare_keys, xs), - ys$0 = caml_call2(Stdlib_List[57], compare_keys, ys); - try{ - var - _fZ_ = - function(param, _f4_){ - var - value = _f4_[2], - key = _f4_[1], - value$0 = param[2], - key$0 = param[1]; - return caml_string_equal(key$0, key) - ? equal$2(value$0, value) - : 0; - }, - result = caml_call3(Stdlib_List[34], _fZ_, xs$0, ys$0); - return result; - } - catch(_f3_){ - var _fY_ = caml_wrap_exception(_f3_); - if(_fY_[1] === Stdlib[6]) return 0; - throw caml_maybe_attach_backtrace(_fY_, 0); - } - } - } - else - if(737456202 === _fX_){ - if(typeof b$0 !== "number" && 737456202 === b$0[1]){ - var b$2 = b$0[2], a$2 = a$0[2]; - return caml_equal(a$2, b$2); - } - } - else if - (848054398 <= _fX_ && typeof b$0 !== "number" && 848054398 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} - } + fname$0=fname || [0,file], + lexbuf=caml_call2(from_channel$1,0,ic), + v=init_lexer(buf,fname$0,lnum,0); + return seq_from_lexbuf$0(v,[0,fin],lexbuf)} + function lineseq_from_channel$0(buf,opt,fname,_hx_,ic) + {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; + if(_hx_)var sth$0=_hx_[1],lnum0=sth$0;else var lnum0=1; + var buf$0=buf || [0,caml_call1(Stdlib_Buffer[1],256)]; + function f(lnum,param) + {try + {var + line=caml_call1(Stdlib[83],ic), + _hA_=lnum + 1 | 0, + _hB_=function(_hE_){return f(_hA_,_hE_)}, + _hC_= + [0,[0,826371656,from_string$2(buf$0,fname,[0,lnum],line)],_hB_]; + return _hC_} + catch(e) + {e = caml_wrap_exception(e); + if(e === Stdlib[12]){caml_call1(fin,0);return 0} + var _hz_=lnum + 1 | 0; + return [0,[0,3458171,e],function(_hD_){return f(_hz_,_hD_)}]}} + return function(_hy_){return f(lnum0,_hy_)}} + function lineseq_from_file$0(buf,fname,lnum,file) + {var ic=caml_call1(Stdlib[79],file); + function fin(param){return caml_call1(Stdlib[93],ic)} + var fname$0=fname || [0,file]; + return lineseq_from_channel$0(buf,[0,fin],fname$0,lnum,ic)} + function prettify$0(std,s) + {return pretty_to_string$1(std,from_string$2(0,0,0,s))} + function compact$0(std,s) + {return to_string$2(0,0,0,0,from_string$2(0,0,0,s))} + var Type_error$0=[248,cst_Yojson_Safe_Util_Type_erro,caml_fresh_oo_id(0)]; + function typerr$0(msg,js) + {if(typeof js === "number") + var _hw_=cst_null$6; else - if(-375152889 <= _fX_){ - if(708012133 === _fX_){ - if(typeof b$0 !== "number" && 708012133 === b$0[1]){ - var - _f1_ = b$0[2], - value = _f1_[2], - name = _f1_[1], - match = a$0[2], - value$0 = match[2], - name$0 = match[1]; - if(! caml_equal(name$0, name)) return 0; - if(value$0){ - if(value){ - var y = value[1], x = value$0[1], a$0 = x, b$0 = y; - continue; - } - } - else if(! value) return 1; - return 0; - } - } - else if - (726928360 <= _fX_ && typeof b$0 !== "number" && 726928360 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} - } - else - if(-752863768 === _fX_){ - if(typeof b$0 !== "number" && -752863768 === b$0[1]){ - var b$3 = b$0[2], a$3 = a$0[2]; - return caml_equal(a$3, b$3); - } - } - else if - (-375152890 <= _fX_ - && typeof b$0 !== "number" && -375152890 === b$0[1]){ - var b$4 = b$0[2], a$4 = a$0[2]; - return caml_equal(a$4, b$4); - } - if(switch$0) - try{ - var result$0 = caml_call3(Stdlib_List[34], equal$2, xs$1, ys$1); - return result$0; - } - catch(_f2_){ - var _f0_ = caml_wrap_exception(_f2_); - if(_f0_[1] === Stdlib[6]) return 0; - throw caml_maybe_attach_backtrace(_f0_, 0); - } - } - return 0; - } - } - function pretty_print$2(std, out, x){return pp$5(std, out, x);} - function pretty_to_string$2(std, x){ - function _fU_(_fV_, _fW_){return pp$5(std, _fV_, _fW_);} - return caml_call3(Stdlib_Format[133], _dE_, _fU_, x); - } - function pretty_to_channel$2(std, oc, x){ - var fmt = caml_call1(Stdlib_Format[108], oc); - function _fR_(_fS_, _fT_){return pp$5(std, _fS_, _fT_);} - return caml_call4(Stdlib_Format[129], fmt, _dF_, _fR_, x); - } - var - from_channel$3 = Stdlib_Lexing[2], - from_string$3 = Stdlib_Lexing[3], - lexeme$1 = Stdlib_Lexing[8], - sub_lexeme$1 = Stdlib_Lexing[16], - sub_lexeme_char$1 = Stdlib_Lexing[18]; - function hex$5(c){ - if(65 <= c){ - if(97 <= c){ - if(103 > c) return (c - 97 | 0) + 10 | 0; - } - else if(71 > c) return (c - 65 | 0) + 10 | 0; - } - else if(9 >= c - 48 >>> 0) return c - 48 | 0; - throw caml_maybe_attach_backtrace([0, Assert_failure, _eg_], 1); - } - function custom_error$1(descr, v, lexbuf){ - var - offs = lexbuf[4] - 1 | 0, - bol = v[3], - pos1 = ((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, - pos2 = caml_call2(Stdlib[17], pos1, (offs + lexbuf[6] | 0) - bol | 0), - match = v[4]; - if(match) - var s = match[1], file_line = caml_call2(Stdlib_Printf[4], _eh_, s); - else - var file_line = cst_Line$1; - var - bytes = - pos1 === pos2 - ? caml_call2(Stdlib_Printf[4], _ei_, pos1 + 1 | 0) - : caml_call3(Stdlib_Printf[4], _ek_, pos1 + 1 | 0, pos2 + 1 | 0), - msg = caml_call5(Stdlib_Printf[4], _ej_, file_line, v[2], bytes, descr); - return json_error(msg); - } - function lexer_error$1(descr, v, lexbuf){ - var _fQ_ = caml_call1(lexeme$1, lexbuf); - return custom_error$1 - (caml_call3(Stdlib_Printf[4], _el_, descr, _fQ_), v, lexbuf); - } - var - read_junk$1 = - [0, - function(param){ - throw caml_maybe_attach_backtrace([0, Assert_failure, _em_], 1); - }]; - function long_error$1(descr, v, lexbuf){ - var - junk = caml_call1(lexeme$1, lexbuf), - extra_junk = caml_call1(read_junk$1[1], lexbuf); - return custom_error$1 - (caml_call4(Stdlib_Printf[4], _en_, descr, junk, extra_junk), - v, - lexbuf); - } - var - _eo_ = 0 === (Stdlib[20] % 10 | 0) ? 0 : 1, - min10$1 = (Stdlib[20] / 10 | 0) - _eo_ | 0, - _ep_ = 0 === (Stdlib[19] % 10 | 0) ? 0 : 1, - max10$1 = (Stdlib[19] / 10 | 0) + _ep_ | 0, - Int_overflow$1 = [248, cst_Yojson_Raw_Int_overflow, caml_fresh_oo_id(0)]; - function newline$1(v, lexbuf){ - v[2] = v[2] + 1 | 0; - v[3] = lexbuf[4] + lexbuf[6] | 0; - return 0; - } - function add_lexeme$1(buf, lexbuf){ - var len = lexbuf[6] - lexbuf[5] | 0; - return caml_call4(Stdlib_Buffer[19], buf, lexbuf[2], lexbuf[5], len); - } - function read_json$1(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 0; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(19 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return _eq_; - case 1: - return _er_; - case 2: - return 870828711; - case 3: - return _es_; - case 4: - return _et_; - case 5: - return _eu_; - case 6: - return [0, -375152890, finish_stringlit$1(v, lexbuf)]; - case 7: - return [0, -752863768, caml_call1(lexeme$1, lexbuf)]; - case 8: - return [0, -752863768, caml_call1(lexeme$1, lexbuf)]; - case 9: - return [0, 928231259, caml_call1(lexeme$1, lexbuf)]; - case 10: - var acc = [0, 0]; - try{ - read_space$1(v, lexbuf); - read_object_end$1(lexbuf); - var field_name = read_ident$1(v, lexbuf); - read_space$1(v, lexbuf); - read_colon$1(v, lexbuf); - read_space$1(v, lexbuf); - var _fF_ = acc[1]; - acc[1] = [0, [0, field_name, read_json$1(v, lexbuf)], _fF_]; - for(;;){ - read_space$1(v, lexbuf); - read_object_sep$1(v, lexbuf); - read_space$1(v, lexbuf); - var field_name$0 = read_ident$1(v, lexbuf); - read_space$1(v, lexbuf); - read_colon$1(v, lexbuf); - read_space$1(v, lexbuf); - var _fG_ = acc[1]; - acc[1] = [0, [0, field_name$0, read_json$1(v, lexbuf)], _fG_]; - } - } - catch(_fP_){ - var _fE_ = caml_wrap_exception(_fP_); - if(_fE_ === End_of_object) - return [0, 963043957, caml_call1(Stdlib_List[9], acc[1])]; - throw caml_maybe_attach_backtrace(_fE_, 0); - } - case 11: - var acc$0 = [0, 0]; - try{ - read_space$1(v, lexbuf); - read_array_end$1(lexbuf); - var _fI_ = acc$0[1]; - acc$0[1] = [0, read_json$1(v, lexbuf), _fI_]; - for(;;){ - read_space$1(v, lexbuf); - read_array_sep$1(v, lexbuf); - read_space$1(v, lexbuf); - var _fJ_ = acc$0[1]; - acc$0[1] = [0, read_json$1(v, lexbuf), _fJ_]; - } - } - catch(_fO_){ - var _fH_ = caml_wrap_exception(_fO_); - if(_fH_ === End_of_array) - return [0, 848054398, caml_call1(Stdlib_List[9], acc$0[1])]; - throw caml_maybe_attach_backtrace(_fH_, 0); - } - case 12: - var acc$1 = [0, 0]; - try{ - read_space$1(v, lexbuf); - read_tuple_end$1(lexbuf); - var _fL_ = acc$1[1]; - acc$1[1] = [0, read_json$1(v, lexbuf), _fL_]; - for(;;){ - read_space$1(v, lexbuf); - read_tuple_sep$1(v, lexbuf); - read_space$1(v, lexbuf); - var _fM_ = acc$1[1]; - acc$1[1] = [0, read_json$1(v, lexbuf), _fM_]; - } - } - catch(_fN_){ - var _fK_ = caml_wrap_exception(_fN_); - if(_fK_ === End_of_tuple) - return [0, 726928360, caml_call1(Stdlib_List[9], acc$1[1])]; - throw caml_maybe_attach_backtrace(_fK_, 0); - } - case 13: - read_space$1(v, lexbuf); - var cons = read_ident$1(v, lexbuf); - read_space$1(v, lexbuf); - return [0, 708012133, [0, cons, finish_variant$1(v, lexbuf)]]; - case 14: - continue a; - case 15: - finish_comment$1(v, lexbuf); continue a; - case 16: - newline$1(v, lexbuf); continue a; - case 17: - continue a; - case 18: - return custom_error$1(cst_Unexpected_end_of_input$92, v, lexbuf); - default: return long_error$1(cst_Invalid_token$12, v, lexbuf); - } - } - } - } - function finish_string$1(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 58; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return caml_call1(Stdlib_Buffer[2], v[1]); - case 1: - finish_escaped_char$1(v, lexbuf); continue a; - case 2: - add_lexeme$1(v[1], lexbuf); continue a; - default: - return custom_error$1(cst_Unexpected_end_of_input$93, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function map_string$1(v, f, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 63; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - var b = v[1], _fD_ = caml_call1(Stdlib_Buffer[7], b); - return caml_call3(f, caml_call1(Stdlib_Buffer[2], b), 0, _fD_); - case 1: - finish_escaped_char$1(v, lexbuf); continue a; - case 2: - add_lexeme$1(v[1], lexbuf); continue a; - default: - return custom_error$1(cst_Unexpected_end_of_input$94, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function finish_escaped_char$1(v, lexbuf){ - var ocaml_lex_state = 68; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(8 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var c = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5]); - return caml_call2(Stdlib_Buffer[12], v[1], c); - case 1: - return caml_call2(Stdlib_Buffer[12], v[1], 8); - case 2: - return caml_call2(Stdlib_Buffer[12], v[1], 12); - case 3: - return caml_call2(Stdlib_Buffer[12], v[1], 10); - case 4: - return caml_call2(Stdlib_Buffer[12], v[1], 13); - case 5: - return caml_call2(Stdlib_Buffer[12], v[1], 9); - case 6: + var + _hv_=js[1], + _hw_= + 708012133 <= _hv_ + ?726928360 === _hv_ + ?cst_tuple$0 + :848054398 <= _hv_ + ?963043957 <= _hv_?cst_object$0:cst_array$0 + :737456202 <= _hv_?cst_bool$0:cst_variant$0 + :3654863 <= _hv_ + ?365180284 <= _hv_?cst_float$0:cst_int$0 + :-752863768 <= _hv_?cst_intlit$0:cst_string$0; + throw [0,Type_error$0,caml_call2(Stdlib[28],msg,_hw_),js]} + var Undefined$0=[248,cst_Yojson_Safe_Util_Undefined,caml_fresh_oo_id(0)]; + function assoc$0(name,obj) + {try + {var _ht_=caml_call2(Stdlib_List[46],name,obj);return _ht_} + catch(_hu_) + {_hu_ = caml_wrap_exception(_hu_); + if(_hu_ === Stdlib[8])return 870828711; + throw _hu_}} + function member$0(name,js) + {if(typeof js !== "number" && 963043957 === js[1]) + {var obj=js[2];return assoc$0(name,obj)} + var _hs_=caml_call2(Stdlib[28],name,cst_of_non_object_type$0); + return typerr$0(caml_call2(Stdlib[28],cst_Can_t_get_member$0,_hs_),js)} + function index$0(i,js) + {if(typeof js !== "number" && 848054398 === js[1]) + {var + l=js[2], + len=caml_call1(Stdlib_List[1],l), + wrapped_index=0 <= i?i:len + i | 0; + if(0 <= wrapped_index && len > wrapped_index) + return caml_call2(Stdlib_List[7],l,wrapped_index); var - a = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 1 | 0), - b = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 2 | 0), - c$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 3 | 0), - d = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 4 | 0), - _fx_ = hex$5(d), - _fy_ = hex$5(c$0) << 4, - _fz_ = hex$5(b) << 8, - x = hex$5(a) << 12 | _fz_ | _fy_ | _fx_; - if(55296 <= x && 56319 >= x){ - var ocaml_lex_state$1 = 82; - for(;;){ + _hq_=caml_call1(Stdlib[33],i), + _hr_=caml_call2(Stdlib[28],_hq_,cst_out_of_bounds$0); + throw [0,Undefined$0,caml_call2(Stdlib[28],cst_Index$0,_hr_),js]} + var + _ho_=caml_call1(Stdlib[33],i), + _hp_=caml_call2(Stdlib[28],_ho_,cst_of_non_array_type$0); + return typerr$0(caml_call2(Stdlib[28],cst_Can_t_get_index$0,_hp_),js)} + function map$0(f,js) + {if(typeof js !== "number" && 848054398 === js[1]) + {var l=js[2];return [0,848054398,caml_call2(Stdlib_List[19],f,l)]} + return typerr$0(cst_Can_t_map_function_over_no$0,js)} + function to_assoc$0(js) + {if(typeof js !== "number" && 963043957 === js[1]) + {var obj=js[2];return obj} + return typerr$0(cst_Expected_object_got$0,js)} + function to_option$0(f,x){return 870828711 === x?0:[0,caml_call1(f,x)]} + function to_bool$0(js) + {if(typeof js !== "number" && 737456202 === js[1]){var b=js[2];return b} + return typerr$0(cst_Expected_bool_got$0,js)} + function to_bool_option$0(js) + {if(typeof js === "number") + {if(870828711 === js)return 0} + else + if(737456202 === js[1]){var b=js[2];return [0,b]} + return typerr$0(cst_Expected_bool_or_null_got$0,js)} + function to_number$0(js) + {if(typeof js !== "number") + {var _hn_=js[1]; + if(3654863 === _hn_){var i=js[2];return i} + if(365180284 === _hn_){var f=js[2];return f}} + return typerr$0(cst_Expected_number_got$0,js)} + function to_number_option$0(js) + {if(typeof js === "number") + {if(870828711 === js)return 0} + else + {var _hm_=js[1]; + if(3654863 === _hm_){var i=js[2];return [0,i]} + if(365180284 === _hm_){var f=js[2];return [0,f]}} + return typerr$0(cst_Expected_number_or_null_go$0,js)} + function to_float$0(js) + {if(typeof js !== "number" && 365180284 === js[1]){var f=js[2];return f} + return typerr$0(cst_Expected_float_got$0,js)} + function to_float_option$0(js) + {if(typeof js === "number") + {if(870828711 === js)return 0} + else + if(365180284 === js[1]){var f=js[2];return [0,f]} + return typerr$0(cst_Expected_float_or_null_got$0,js)} + function to_int$0(js) + {if(typeof js !== "number" && 3654863 === js[1]){var i=js[2];return i} + return typerr$0(cst_Expected_int_got$0,js)} + function to_int_option$0(js) + {if(typeof js === "number") + {if(870828711 === js)return 0} + else + if(3654863 === js[1]){var i=js[2];return [0,i]} + return typerr$0(cst_Expected_int_or_null_got$0,js)} + function to_list$0(js) + {if(typeof js !== "number" && 848054398 === js[1]){var l=js[2];return l} + return typerr$0(cst_Expected_array_got$0,js)} + function to_string$3(js) + {if(typeof js !== "number" && -976970511 === js[1]){var s=js[2];return s} + return typerr$0(cst_Expected_string_got$0,js)} + function to_string_option$0(js) + {if(typeof js === "number") + {if(870828711 === js)return 0} + else + if(-976970511 === js[1]){var s=js[2];return [0,s]} + return typerr$0(cst_Expected_string_or_null_go$0,js)} + function convert_each$0(f,js) + {if(typeof js !== "number" && 848054398 === js[1]) + {var l=js[2];return caml_call2(Stdlib_List[19],f,l)} + return typerr$0(cst_Can_t_convert_each_element$0,js)} + function filter_map$0(f,l$0) + {var acc=0,l=l$0; + for(;;) + {if(! l)return caml_call1(Stdlib_List[9],acc); + var tl=l[2],x=l[1],match=caml_call1(f,x); + if(match){var y=match[1],acc$0=[0,y,acc],acc=acc$0,l=tl;continue} + var l=tl}} + function flatten$0(l$0) + {var acc=0,l=l$0; + for(;;) + {if(! l)return caml_call1(Stdlib_List[9],acc); + var tl=l[2],x=l[1]; + if(typeof x !== "number" && 848054398 === x[1]) + {var l2=x[2],acc$0=caml_call2(Stdlib_List[12],l2,acc),acc=acc$0,l=tl; + continue} + var l=tl}} + function filter_index$0(i,l) + {return filter_map$0 + (function(param) + {if(typeof param !== "number" && 848054398 === param[1]) + {var l=param[2]; + try + {var _hk_=[0,caml_call2(Stdlib_List[7],l,i)];return _hk_} + catch(_hl_){return 0}} + return 0}, + l)} + function filter_list$0(l) + {return filter_map$0 + (function(param) + {if(typeof param !== "number" && 848054398 === param[1]) + {var l=param[2];return [0,l]} + return 0}, + l)} + function filter_member$0(k,l) + {return filter_map$0 + (function(param) + {if(typeof param !== "number" && 963043957 === param[1]) + {var l=param[2]; + try + {var _hi_=[0,caml_call2(Stdlib_List[46],k,l)];return _hi_} + catch(_hj_){return 0}} + return 0}, + l)} + function filter_assoc$0(l) + {return filter_map$0 + (function(param) + {if(typeof param !== "number" && 963043957 === param[1]) + {var l=param[2];return [0,l]} + return 0}, + l)} + function filter_bool$0(l) + {return filter_map$0 + (function(param) + {if(typeof param !== "number" && 737456202 === param[1]) + {var x=param[2];return [0,x]} + return 0}, + l)} + function filter_int$0(l) + {return filter_map$0 + (function(param) + {if(typeof param !== "number" && 3654863 === param[1]) + {var x=param[2];return [0,x]} + return 0}, + l)} + function filter_float$0(l) + {return filter_map$0 + (function(param) + {if(typeof param !== "number" && 365180284 === param[1]) + {var x=param[2];return [0,x]} + return 0}, + l)} + function filter_number$0(l) + {return filter_map$0 + (function(param) + {if(typeof param !== "number") + {var _hh_=param[1]; + if(3654863 === _hh_){var x=param[2];return [0,x]} + if(365180284 === _hh_){var x$0=param[2];return [0,x$0]}} + return 0}, + l)} + function filter_string$0(l) + {return filter_map$0 + (function(param) + {if(typeof param !== "number" && -976970511 === param[1]) + {var x=param[2];return [0,x]} + return 0}, + l)} + function keys$0(o) + {var _hf_=to_assoc$0(o); + function _hg_(param){var key=param[1];return key} + return caml_call1(caml_call1(Stdlib_List[19],_hg_),_hf_)} + function values$0(o) + {var _hd_=to_assoc$0(o); + function _he_(param){var value=param[2];return value} + return caml_call1(caml_call1(Stdlib_List[19],_he_),_hd_)} + function combine$0(first,second) + {if + (typeof first + !== + "number" + && + 963043957 + === + first[1] + && + typeof second + !== + "number" + && + 963043957 + === + second[1]) + {var b=second[2],a=first[2]; + return [0,963043957,caml_call2(Stdlib[37],a,b)]} + throw [0,Stdlib[6],cst_Expected_two_objects_check$0]} + function hex$4(n) + {var _hc_=10 <= n?n + 87 | 0:n + 48 | 0; + return caml_call1(Stdlib_Char[1],_hc_)} + function write_special$2(src,start,stop,ob,str) + {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16],ob,str); + start[1] = stop + 1 | 0; + return 0} + function finish_string$4(src,start,ob) + {try + {var + _hb_= + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + return _hb_} + catch(exc) + {exc = caml_wrap_exception(exc); + caml_call4 + (Stdlib_Printf[3], + _dm_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw exc}} + function write_string$2(ob,s) + {caml_call2(Stdlib_Buffer[12],ob,34); + var start=[0,0],_g$_=caml_ml_string_length(s) - 1 | 0,_g__=0; + if(_g$_ >= 0) + {var i=_g__; + for(;;) + {var c=caml_string_get(s,i); + if(92 === c) + write_special$2(s,start,i,ob,cst$59); + else + {var switch$0=0; + if(35 <= c) + if(127 === c)switch$0 = 1;else switch$0 = 2; + else + if(8 <= c) + {var switch$1=0; + switch(c - 8 | 0) + {case 0:write_special$2(s,start,i,ob,cst_b$2);break; + case 1:write_special$2(s,start,i,ob,cst_t$2);break; + case 2:write_special$2(s,start,i,ob,cst_n$2);break; + case 4:write_special$2(s,start,i,ob,cst_f$2);break; + case 5:write_special$2(s,start,i,ob,cst_r$2);break; + case 26:write_special$2(s,start,i,ob,cst$60);break; + case 24: + case 25:switch$0 = 2;switch$1 = 1;break; + default:switch$0 = 1;switch$1 = 1}} + else + switch$0 = 1; + switch(switch$0) + {case 2:break; + case 1: + caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); + caml_call2(Stdlib_Buffer[16],ob,cst_u00$2); + var _g8_=hex$4(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12],ob,_g8_); + var _g9_=hex$4(c & 15); + caml_call2(Stdlib_Buffer[12],ob,_g9_); + start[1] = i + 1 | 0; + break + }} + var _ha_=i + 1 | 0; + if(_g$_ !== i){var i=_ha_;continue} + break}} + finish_string$4(s,start,ob); + return caml_call2(Stdlib_Buffer[12],ob,34)} + function json_string_of_string$2(s) + {var ob=caml_call1(Stdlib_Buffer[1],10); + write_string$2(ob,s); + return caml_call1(Stdlib_Buffer[2],ob)} + function write_null$2(ob,param) + {return caml_call2(Stdlib_Buffer[16],ob,cst_null$7)} + function write_bool$2(ob,x) + {var _g7_=x?cst_true$2:cst_false$2; + return caml_call2(Stdlib_Buffer[16],ob,_g7_)} + var + _dn_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), + _do_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); + caml_call2(Stdlib[17],_do_,_dn_); + var + write_intlit$1=Stdlib_Buffer[16], + write_floatlit$0=Stdlib_Buffer[16], + write_stringlit$0=Stdlib_Buffer[16]; + function iter2$2(f_elt,f_sep,x,param$0) + {if(! param$0)return 0; + var l$0=param$0[2],y$0=param$0[1]; + caml_call2(f_elt,x,y$0); + var param=l$0; + for(;;) + {if(! param)return 0; + var l=param[2],y=param[1]; + caml_call1(f_sep,x); + caml_call2(f_elt,x,y); + var param=l}} + function f_sep$2(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} + function write_variant$1(ob,s,o) + {caml_call2(Stdlib_Buffer[12],ob,60); + write_string$2(ob,s); + if(o){var x=o[1];caml_call2(Stdlib_Buffer[12],ob,58);write_t$2(ob,x)} + return caml_call2(Stdlib_Buffer[12],ob,62)} + function write_tuple$1(ob,l) + {caml_call2(Stdlib_Buffer[12],ob,40); + iter2$2(write_t$2,f_sep$2,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,41)} + function write_list$2(ob,l) + {caml_call2(Stdlib_Buffer[12],ob,91); + iter2$2(write_t$2,f_sep$2,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,93)} + function write_assoc$2(ob,l) + {function f_elt(ob,param) + {var x=param[2],s=param[1]; + write_string$2(ob,s); + caml_call2(Stdlib_Buffer[12],ob,58); + return write_t$2(ob,x)} + caml_call2(Stdlib_Buffer[12],ob,123); + iter2$2(f_elt,f_sep$2,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,125)} + function write_t$2(ob,x) + {if(typeof x === "number")return write_null$2(ob,0); + var _g6_=x[1]; + if(737456202 <= _g6_) + {if(928231259 <= _g6_) + {if(963043957 <= _g6_){var l=x[2];return write_assoc$2(ob,l)} + var s=x[2]; + return caml_call2(Stdlib_Buffer[16],ob,s)} + if(848054398 <= _g6_){var l$0=x[2];return write_list$2(ob,l$0)} + var b=x[2]; + return write_bool$2(ob,b)} + if(708012133 <= _g6_) + {if(726928360 <= _g6_){var l$1=x[2];return write_tuple$1(ob,l$1)} + var match=x[2],o=match[2],s$0=match[1]; + return write_variant$1(ob,s$0,o)} + if(-375152890 <= _g6_) + {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} + var s$2=x[2]; + return caml_call2(Stdlib_Buffer[16],ob,s$2)} + function write_std_variant$1(ob,s,o) + {if(! o)return write_string$2(ob,s); + var x=o[1]; + caml_call2(Stdlib_Buffer[12],ob,91); + write_string$2(ob,s); + caml_call2(Stdlib_Buffer[12],ob,44); + write_std_json$2(ob,x); + return caml_call2(Stdlib_Buffer[12],ob,93)} + function write_std_tuple$1(ob,l) + {caml_call2(Stdlib_Buffer[12],ob,91); + iter2$2(write_std_json$2,f_sep$2,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,93)} + function write_std_json$2(ob,x) + {if(typeof x === "number")return write_null$2(ob,0); + var _g5_=x[1]; + if(737456202 <= _g5_) + {if(928231259 <= _g5_) + {if(963043957 <= _g5_) + {var + l=x[2], + f_elt= + function(ob,param) + {var x=param[2],s=param[1]; + write_string$2(ob,s); + caml_call2(Stdlib_Buffer[12],ob,58); + return write_std_json$2(ob,x)}; + caml_call2(Stdlib_Buffer[12],ob,123); + iter2$2(f_elt,f_sep$2,ob,l); + return caml_call2(Stdlib_Buffer[12],ob,125)} + var s=x[2]; + return caml_call2(Stdlib_Buffer[16],ob,s)} + if(848054398 <= _g5_) + {var l$0=x[2]; + caml_call2(Stdlib_Buffer[12],ob,91); + iter2$2(write_std_json$2,f_sep$2,ob,l$0); + return caml_call2(Stdlib_Buffer[12],ob,93)} + var b=x[2]; + return write_bool$2(ob,b)} + if(708012133 <= _g5_) + {if(726928360 <= _g5_){var l$1=x[2];return write_std_tuple$1(ob,l$1)} + var match=x[2],o=match[2],s$0=match[1]; + return write_std_variant$1(ob,s$0,o)} + if(-375152890 <= _g5_) + {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} + var s$2=x[2]; + return caml_call2(Stdlib_Buffer[16],ob,s$2)} + function to_buffer$2(opt,_g4_,ob,x) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$61; + if(_g4_)var sth$0=_g4_[1],std=sth$0;else var std=0; + if(std)write_std_json$2(ob,x);else write_t$2(ob,x); + return caml_call2(Stdlib_Buffer[16],ob,suf)} + function to_string$4(buf,opt,_g3_,std,x) + {if(opt)var sth=opt[1],len=sth;else var len=256; + if(_g3_)var sth$0=_g3_[1],suf=sth$0;else var suf=cst$62; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer$2([0,suf],std,ob$0,x); + var s=caml_call1(Stdlib_Buffer[2],ob$0); + caml_call1(Stdlib_Buffer[8],ob$0); + return s} + function to_channel$2(buf,opt,_g2_,std,oc,x) + {if(opt)var sth=opt[1],len=sth;else var len=4096; + if(_g2_)var sth$0=_g2_[1],suf=sth$0;else var suf=cst$63; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer$2([0,suf],std,ob$0,x); + caml_call2(Stdlib_Buffer[10],oc,ob$0); + return caml_call1(Stdlib_Buffer[8],ob$0)} + function to_output$2(buf,opt,_g0_,std,out,x) + {if(opt)var sth=opt[1],len=sth;else var len=4096; + if(_g0_)var sth$0=_g0_[1],suf=sth$0;else var suf=cst$64; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + to_buffer$2([0,suf],std,ob$0,x); + var _g1_=caml_call1(Stdlib_Buffer[7],ob$0); + caml_call4 + (caml_get_public_method(out,209784577,4), + out, + caml_call1(Stdlib_Buffer[2],ob$0), + 0, + _g1_); + return caml_call1(Stdlib_Buffer[8],ob$0)} + function to_file$2(len,std,opt,file,x) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$65; + var oc=caml_call1(Stdlib[60],file); + try + {to_channel$2(0,len,[0,suf],std,oc,x); + var _gZ_=caml_call1(Stdlib[76],oc); + return _gZ_} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} + function seq_to_buffer$2(opt,std,ob,st) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$66; + var _gW_=[0,suf]; + function _gX_(_gY_){return to_buffer$2(_gW_,std,ob,_gY_)} + return caml_call2(Stdlib_Seq[4],_gX_,st)} + function seq_to_string$2(buf,opt,_gV_,std,st) + {if(opt)var sth=opt[1],len=sth;else var len=256; + if(_gV_)var sth$0=_gV_[1],suf=sth$0;else var suf=cst$67; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + seq_to_buffer$2([0,suf],std,ob$0,st); + var s=caml_call1(Stdlib_Buffer[2],ob$0); + caml_call1(Stdlib_Buffer[8],ob$0); + return s} + function seq_to_channel$2(buf,opt,_gT_,std,oc,seq) + {if(opt)var sth=opt[1],len=sth;else var len=2096; + if(_gT_)var sth$0=_gT_[1],suf=sth$0;else var suf=cst$68; + if(buf) + {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} + else + var ob$0=caml_call1(Stdlib_Buffer[1],len); + function _gU_(json) + {to_buffer$2([0,suf],std,ob$0,json); + caml_call2(Stdlib_Buffer[10],oc,ob$0); + return caml_call1(Stdlib_Buffer[8],ob$0)} + return caml_call2(Stdlib_Seq[4],_gU_,seq)} + function seq_to_file$2(len,opt,std,file,st) + {if(opt)var sth=opt[1],suf=sth;else var suf=cst$69; + var oc=caml_call1(Stdlib[60],file); + try + {seq_to_channel$2(0,len,[0,suf],std,oc,st); + var _gS_=caml_call1(Stdlib[76],oc); + return _gS_} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} + function sort$2(x) + {if(typeof x !== "number") + {var _gJ_=x[1]; + if(726928361 <= _gJ_) + {if(848054398 === _gJ_) + {var l=x[2],_gK_=caml_call2(Stdlib_List[21],sort$2,l); + return [0,848054398,caml_call1(Stdlib_List[9],_gK_)]} + if(963043957 === _gJ_) + {var + l$0=x[2], + _gL_= + function(param) + {var v=param[2],k=param[1];return [0,k,sort$2(v)]}, + _gM_=caml_call2(Stdlib_List[21],_gL_,l$0), + l$1=caml_call1(Stdlib_List[9],_gM_), + _gN_= + function(param,_gR_) + {var b=_gR_[1],a=param[1]; + return caml_call2(Stdlib_String[9],a,b)}; + return [0,963043957,caml_call2(Stdlib_List[57],_gN_,l$1)]}} + else + if(708012133 === _gJ_) + {var _gO_=x[2],_gP_=_gO_[2]; + if(_gP_) + {var v=_gP_[1],k=_gO_[1],v$0=sort$2(v); + return v === v$0?x:[0,708012133,[0,k,[0,v$0]]]}} + else + if(726928360 <= _gJ_) + {var l$2=x[2],_gQ_=caml_call2(Stdlib_List[21],sort$2,l$2); + return [0,726928360,caml_call1(Stdlib_List[9],_gQ_)]}} + return x} + function pp_list$2(sep,ppx,out,l) + {function pp_sep(out,param) + {return caml_call3(Stdlib_Format[129],out,_dp_,sep)} + return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} + function is_atom$2(x) + {if(typeof x !== "number") + {var _gI_=x[1],switch$0=0; + if(737456202 <= _gI_) + {if(848054398 === _gI_) + {if(x[2])switch$0 = 1} + else + if(963043957 <= _gI_ && x[2])switch$0 = 1} + else + if(708012133 === _gI_) + {if(x[2][2])switch$0 = 1} + else + if(726928360 <= _gI_ && x[2])switch$0 = 1; + if(switch$0)return 0} + return 1} + function format$2(inside_box,std,out,x) + {var x$0=x; + for(;;) + {if(typeof x$0 === "number") + return caml_call2(Stdlib_Format[13],out,cst_null$8); + var _f2_=x$0[1]; + if(737456202 <= _f2_) + {if(928231259 <= _f2_) + {if(963043957 > _f2_) + {var s=x$0[2];return caml_call2(Stdlib_Format[13],out,s)} + var _f3_=x$0[2]; + if(! _f3_)return caml_call2(Stdlib_Format[13],out,cst$71); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_dq_); + var + _f4_= + function(out,param) + {var x=param[2],name=param[1],_gD_=1; + function _gE_(_gG_,_gH_){return format$2(_gD_,std,_gG_,_gH_)} + var _gF_=json_string_of_string$2(name); + return caml_call5(Stdlib_Format[129],out,_dC_,_gF_,_gE_,x)}, + _f5_=function(_gB_,_gC_){return pp_list$2(cst$70,_f4_,_gB_,_gC_)}; + caml_call4(Stdlib_Format[129],out,_dr_,_f5_,_f3_); + var _f6_=1 - inside_box; + return _f6_?caml_call2(Stdlib_Format[129],out,_ds_):_f6_} + if(848054398 > _f2_) + {var x$1=x$0[2];return caml_call2(Stdlib_Format[25],out,x$1)} + var _f7_=x$0[2]; + if(! _f7_)return caml_call2(Stdlib_Format[13],out,cst$74); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_dt_); + if(caml_call2(Stdlib_List[32],is_atom$2,_f7_)) + {var + _f8_=0, + _f9_=function(_gv_,_gw_){return format$2(_f8_,std,_gv_,_gw_)}, + _f__=function(_gt_,_gu_){return pp_list$2(cst$72,_f9_,_gt_,_gu_)}; + caml_call4(Stdlib_Format[129],out,_du_,_f__,_f7_)} + else + {var + _ga_=0, + _gb_=function(_gz_,_gA_){return format$2(_ga_,std,_gz_,_gA_)}, + _gc_=function(_gx_,_gy_){return pp_list$2(cst$73,_gb_,_gx_,_gy_)}; + caml_call4(Stdlib_Format[129],out,_dw_,_gc_,_f7_)} + var _f$_=1 - inside_box; + return _f$_?caml_call2(Stdlib_Format[129],out,_dv_):_f$_} + if(708012133 > _f2_) + {if(-375152890 <= _f2_) + {var s$0=x$0[2];return caml_call2(Stdlib_Format[13],out,s$0)} + var s$1=x$0[2]; + return caml_call2(Stdlib_Format[13],out,s$1)} + if(726928360 <= _f2_) + {var l=x$0[2]; + if(std){var x$2=[0,848054398,l],x$0=x$2;continue} + if(0 === l)return caml_call2(Stdlib_Format[13],out,cst$75); + if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_dx_); var - ocaml_lex_state$2 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$1, lexbuf); - if(2 < ocaml_lex_state$2 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$1 = ocaml_lex_state$2; - continue; - } - switch(ocaml_lex_state$2){ - case 0: - var - a$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 2 | 0), - b$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 3 | 0), - c$1 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 4 | 0), - d$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 5 | 0), - _fA_ = hex$5(d$0), - _fB_ = hex$5(c$1) << 4, - _fC_ = hex$5(b$0) << 8, - y = hex$5(a$0) << 12 | _fC_ | _fB_ | _fA_; - if(56320 <= y && 57343 >= y) - return utf8_of_surrogate_pair(v[1], x, y); - return long_error$1(cst_Invalid_low_surrogate_for_$1, v, lexbuf); - case 1: - return long_error$1(cst_Missing_escape_sequence_re$1, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$96, v, lexbuf); - } - } - } - return utf8_of_code(v[1], x); - case 7: - return long_error$1(cst_Invalid_escape_sequence$1, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$95, v, lexbuf); - } - } - } - function finish_stringlit$1(v, lexbuf){ - var ocaml_lex_state = 91; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - var - len = lexbuf[6] - lexbuf[5] | 0, - s = caml_create_bytes(len + 1 | 0); - caml_bytes_set(s, 0, 34); - caml_call5(Stdlib_Bytes[11], lexbuf[2], lexbuf[5], s, 1, len); - return caml_call1(Stdlib_Bytes[6], s); - case 1: - return long_error$1(cst_Invalid_string_literal$5, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$97, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_variant$1(v, lexbuf){ - var ocaml_lex_state = 102; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - var x = read_json$1(v, lexbuf); - read_space$1(v, lexbuf); - read_gt$1(v, lexbuf); - return [0, x]; - case 1: - return 0; - case 2: - return long_error$1(cst_Expected_or_but_found$29, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$98, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_lt$1(v, lexbuf){ - var ocaml_lex_state = 107; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Expected_but_found$30, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$99, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_gt$1(v, lexbuf){ - var ocaml_lex_state = 111; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Expected_but_found$31, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$100, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_comma$1(v, lexbuf){ - var ocaml_lex_state = 115; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Expected_but_found$32, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$101, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function start_any_variant$1(v, lexbuf){ - var ocaml_lex_state = 119; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return -154522342; - case 1: - caml_call1(Stdlib_Buffer[8], v[1]); return -589953938; - case 2: - return -124528282; - case 3: - return long_error$1(cst_Expected_or_but_found$30, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$102, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_comment$1(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 125; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Unterminated_comment$3, v, lexbuf); - case 2: - newline$1(v, lexbuf); continue a; - default: continue a; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function read_eof$1(lexbuf){ - var ocaml_lex_state = 131; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) return 1; - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_space$1(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 133; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - newline$1(v, lexbuf); continue a; - case 1: - finish_comment$1(v, lexbuf); continue a; - case 2: - newline$1(v, lexbuf); continue a; - case 3: - continue a; - default: return 0; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function read_null$1(v, lexbuf){ - var ocaml_lex_state = 140; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Expected_null_but_found$1, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$103, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_null_if_possible$1(v, lexbuf){ - var ocaml_lex_state = 147; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) return 1; - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_bool$1(v, lexbuf){ - var ocaml_lex_state = 152; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(5 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 1; - case 1: - return 0; - case 2: - return 1; - case 3: - return 0; - case 4: - return long_error$1(cst_Expected_true_or_false_but$1, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$104, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_int$1(v, lexbuf){ - var ocaml_lex_state = 176; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(4 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - try{ - var - start = lexbuf[5], - stop = lexbuf[6], - s = lexbuf[2], - n = [0, 0], - _fj_ = stop - 1 | 0; - if(_fj_ >= start){ - var i = start; - for(;;){ - if(max10$1 <= n[1]) - throw caml_maybe_attach_backtrace(Int_overflow$1, 1); - var _fl_ = caml_bytes_get(s, i) - 48 | 0; - n[1] = (10 * n[1] | 0) + _fl_ | 0; - var _fm_ = i + 1 | 0; - if(_fj_ !== i){var i = _fm_; continue;} - break; - } - } - if(0 > n[1]) throw caml_maybe_attach_backtrace(Int_overflow$1, 1); - var _fk_ = n[1]; - return _fk_; - } - catch(_fw_){ - var _fr_ = caml_wrap_exception(_fw_); - if(_fr_ === Int_overflow$1) - return lexer_error$1(cst_Int_overflow$5, v, lexbuf); - throw caml_maybe_attach_backtrace(_fr_, 0); - } - case 1: - try{ - var - start$0 = lexbuf[5] + 1 | 0, - stop$0 = lexbuf[6], - s$0 = lexbuf[2], - n$0 = [0, 0], - _fn_ = stop$0 - 1 | 0; - if(_fn_ >= start$0){ - var i$0 = start$0; - for(;;){ - if(n$0[1] <= min10$1) - throw caml_maybe_attach_backtrace(Int_overflow$1, 1); - var _fp_ = caml_bytes_get(s$0, i$0) - 48 | 0; - n$0[1] = (10 * n$0[1] | 0) - _fp_ | 0; - var _fq_ = i$0 + 1 | 0; - if(_fn_ !== i$0){var i$0 = _fq_; continue;} - break; - } - } - if(0 < n$0[1]) throw caml_maybe_attach_backtrace(Int_overflow$1, 1); - var _fo_ = n$0[1]; - return _fo_; - } - catch(_fv_){ - var _fs_ = caml_wrap_exception(_fv_); - if(_fs_ === Int_overflow$1) - return lexer_error$1(cst_Int_overflow$6, v, lexbuf); - throw caml_maybe_attach_backtrace(_fs_, 0); - } - case 2: - caml_call1(Stdlib_Buffer[8], v[1]); - var s$1 = finish_string$1(v, lexbuf); - try{var _ft_ = caml_int_of_string(s$1); return _ft_;} - catch(_fu_){ - return custom_error$1(cst_Expected_an_integer_but_fo$1, v, lexbuf); - } - case 3: - return long_error$1(cst_Expected_integer_but_found$1, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$105, v, lexbuf); - } - } - } - function read_int32$1(v, lexbuf){ - var ocaml_lex_state = 185; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - try{ - var _ff_ = caml_int_of_string(caml_call1(lexeme$1, lexbuf)); - return _ff_; - } - catch(_fi_){return lexer_error$1(cst_Int32_overflow$3, v, lexbuf);} - case 1: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string$1(v, lexbuf); - try{var _fg_ = caml_int_of_string(s); return _fg_;} - catch(_fh_){ - return custom_error$1(cst_Expected_an_int32_but_foun$1, v, lexbuf); - } - case 2: - return long_error$1(cst_Expected_int32_but_found$1, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$106, v, lexbuf); - } - } - } - function read_int64$1(v, lexbuf){ - var ocaml_lex_state = 192; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - try{ - var _fb_ = caml_int64_of_string(caml_call1(lexeme$1, lexbuf)); - return _fb_; - } - catch(_fe_){return lexer_error$1(cst_Int32_overflow$4, v, lexbuf);} - case 1: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string$1(v, lexbuf); - try{var _fc_ = caml_int64_of_string(s); return _fc_;} - catch(_fd_){ - return custom_error$1(cst_Expected_an_int64_but_foun$1, v, lexbuf); - } - case 2: - return long_error$1(cst_Expected_int64_but_found$1, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$107, v, lexbuf); - } - } - } - function read_number$1(v, lexbuf){ - var ocaml_lex_state = 199; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(6 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return Stdlib[24]; - case 1: - return Stdlib[22]; - case 2: - return Stdlib[23]; - case 3: - return caml_float_of_string(caml_call1(lexeme$1, lexbuf)); - case 4: - caml_call1(Stdlib_Buffer[8], v[1]); - var s = finish_string$1(v, lexbuf); - try{var _e$_ = caml_float_of_string(s); return _e$_;} - catch(_fa_){ - return caml_string_notequal(s, cst_Infinity$12) - ? caml_string_notequal - (s, cst_Infinity$11) - ? caml_string_notequal - (s, cst_NaN$5) - ? custom_error$1 - (cst_Expected_a_number_but_foun$1, v, lexbuf) - : Stdlib[24] - : Stdlib[22] - : Stdlib[23]; - } - case 5: - return long_error$1(cst_Expected_number_but_found$1, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$108, v, lexbuf); - } - } - } - function read_string$1(v, lexbuf){ - var ocaml_lex_state = 233; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call1(Stdlib_Buffer[8], v[1]); - return finish_string$1(v, lexbuf); - case 1: - return long_error$1(cst_Expected_but_found$33, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$109, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_ident$1(v, lexbuf){ - var ocaml_lex_state = 237; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call1(Stdlib_Buffer[8], v[1]); - return finish_string$1(v, lexbuf); - case 1: - var s = caml_call3(sub_lexeme$1, lexbuf, lexbuf[5], lexbuf[6]); - return s; - case 2: - return long_error$1(cst_Expected_string_or_identif$7, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$110, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function map_ident$1(v, f, lexbuf){ - var ocaml_lex_state = 242; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call1(Stdlib_Buffer[8], v[1]); - return map_string$1(v, f, lexbuf); - case 1: - var len = lexbuf[6] - lexbuf[5] | 0; - return caml_call3 - (f, - caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len), - 0, - len); - case 2: - return long_error$1(cst_Expected_string_or_identif$8, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$111, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_sequence$1(read_cell, init_acc, v, lexbuf){ - var ocaml_lex_state = 247; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var acc = [0, init_acc]; - try{ - read_space$1(v, lexbuf); - read_array_end$1(lexbuf); - acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); - for(;;){ - read_space$1(v, lexbuf); - read_array_sep$1(v, lexbuf); - read_space$1(v, lexbuf); - acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); - } - } - catch(_e__){ - var _e9_ = caml_wrap_exception(_e__); - if(_e9_ === End_of_array) return acc[1]; - throw caml_maybe_attach_backtrace(_e9_, 0); - } - case 1: - return long_error$1(cst_Expected_but_found$34, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$112, v, lexbuf); - } - } - } - function read_list_rev$1(read_cell, v, lexbuf){ - var ocaml_lex_state = 251; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var acc = [0, 0]; - try{ - read_space$1(v, lexbuf); - read_array_end$1(lexbuf); - var _e6_ = acc[1]; - acc[1] = [0, caml_call2(read_cell, v, lexbuf), _e6_]; - for(;;){ - read_space$1(v, lexbuf); - read_array_sep$1(v, lexbuf); - read_space$1(v, lexbuf); - var _e7_ = acc[1]; - acc[1] = [0, caml_call2(read_cell, v, lexbuf), _e7_]; - } - } - catch(_e8_){ - var _e5_ = caml_wrap_exception(_e8_); - if(_e5_ === End_of_array) return acc[1]; - throw caml_maybe_attach_backtrace(_e5_, 0); - } - case 1: - return long_error$1(cst_Expected_but_found$35, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$113, v, lexbuf); - } - } - } - function read_array_end$1(lexbuf){ - var ocaml_lex_state = 255; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) - throw caml_maybe_attach_backtrace(End_of_array, 1); - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_array_sep$1(v, lexbuf){ - var ocaml_lex_state = 257; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - throw caml_maybe_attach_backtrace(End_of_array, 1); - case 2: - return long_error$1(cst_Expected_or_but_found$31, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$114, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_tuple$1(read_cell, init_acc, v, lexbuf){ - var ocaml_lex_state = 262; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var pos = [0, 0], acc = [0, init_acc]; - try{ - read_space$1(v, lexbuf); - read_tuple_end$1(lexbuf); - acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); - pos[1]++; - for(;;){ - read_space$1(v, lexbuf); - read_tuple_sep$1(v, lexbuf); - read_space$1(v, lexbuf); - acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); - pos[1]++; - } - } - catch(_e4_){ - var _e3_ = caml_wrap_exception(_e4_); - if(_e3_ === End_of_tuple) return acc[1]; - throw caml_maybe_attach_backtrace(_e3_, 0); - } - case 1: - return long_error$1(cst_Expected_but_found$36, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$115, v, lexbuf); - } - } - } - function read_tuple_end$1(lexbuf){ - var ocaml_lex_state = 266; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_tuple_end2$1(v, std, lexbuf){ - var ocaml_lex_state = 268; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - if(std) return long_error$1(cst_Expected_or_but_found$32, v, lexbuf); - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 1: - if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); - return long_error$1(cst_Expected_or_but_found$33, v, lexbuf); - default: return 0; - } - } - } - function read_tuple_sep$1(v, lexbuf){ - var ocaml_lex_state = 271; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 2: - return long_error$1(cst_Expected_or_but_found$34, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$116, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_tuple_sep2$1(v, std, lexbuf){ - var ocaml_lex_state = 276; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(4 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - if(std) return long_error$1(cst_Expected_or_but_found$35, v, lexbuf); - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 2: - if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); - return long_error$1(cst_Expected_or_but_found$36, v, lexbuf); - case 3: - return long_error$1(cst_Expected_or_but_found$37, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$117, v, lexbuf); - } - } - } - function read_abstract_fields$1(read_key, read_field, init_acc, v, lexbuf){ - var ocaml_lex_state = 282; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - var acc = [0, init_acc]; - try{ - read_space$1(v, lexbuf); - read_object_end$1(lexbuf); - var field_name = caml_call2(read_key, v, lexbuf); - read_space$1(v, lexbuf); - read_colon$1(v, lexbuf); - read_space$1(v, lexbuf); - acc[1] = caml_call4(read_field, acc[1], field_name, v, lexbuf); - for(;;){ - read_space$1(v, lexbuf); - read_object_sep$1(v, lexbuf); - read_space$1(v, lexbuf); - var field_name$0 = caml_call2(read_key, v, lexbuf); - read_space$1(v, lexbuf); - read_colon$1(v, lexbuf); - read_space$1(v, lexbuf); - acc[1] = caml_call4(read_field, acc[1], field_name$0, v, lexbuf); - } - } - catch(_e2_){ - var _e1_ = caml_wrap_exception(_e2_); - if(_e1_ === End_of_object) return acc[1]; - throw caml_maybe_attach_backtrace(_e1_, 0); - } - case 1: - return long_error$1(cst_Expected_but_found$37, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$118, v, lexbuf); - } - } - } - function read_lcurl$1(v, lexbuf){ - var ocaml_lex_state = 286; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Expected_but_found$38, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$119, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_object_end$1(lexbuf){ - var ocaml_lex_state = 290; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) - throw caml_maybe_attach_backtrace(End_of_object, 1); - if(1 === ocaml_lex_state$0) return 0; - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_object_sep$1(v, lexbuf){ - var ocaml_lex_state = 292; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - throw caml_maybe_attach_backtrace(End_of_object, 1); - case 2: - return long_error$1(cst_Expected_or_but_found$38, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$120, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_colon$1(v, lexbuf){ - var ocaml_lex_state = 297; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Expected_but_found$39, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$121, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function start_any_tuple$1(v, lexbuf){ - var ocaml_lex_state = 301; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return 1; - case 2: - return long_error$1(cst_Expected_or_but_found$39, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$122, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_lpar$1(v, lexbuf){ - var ocaml_lex_state = 306; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Expected_but_found$40, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$123, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_rpar$1(v, lexbuf){ - var ocaml_lex_state = 310; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Expected_but_found$41, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$124, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_lbr$1(v, lexbuf){ - var ocaml_lex_state = 314; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Expected_but_found$42, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$125, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function read_rbr$1(v, lexbuf){ - var ocaml_lex_state = 318; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Expected_but_found$43, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$126, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_skip_variant$1(v, lexbuf){ - var ocaml_lex_state = 389; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - skip_json$1(v, lexbuf); - read_space$1(v, lexbuf); - return read_gt$1(v, lexbuf); - case 1: - return 0; - case 2: - return long_error$1(cst_Expected_or_but_found$40, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$129, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_skip_stringlit$1(v, lexbuf){ - var ocaml_lex_state = 378; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return long_error$1(cst_Invalid_string_literal$6, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$128, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function skip_json$1(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 322; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(18 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return 0; - case 1: - return 0; - case 2: - return 0; - case 3: - return 0; - case 4: - return 0; - case 5: - return 0; - case 6: - return finish_skip_stringlit$1(v, lexbuf); - case 7: - return 0; - case 8: - return 0; - case 9: - try{ - read_space$1(v, lexbuf); - read_object_end$1(lexbuf); - skip_ident$1(v, lexbuf); - read_space$1(v, lexbuf); - read_colon$1(v, lexbuf); - read_space$1(v, lexbuf); - skip_json$1(v, lexbuf); - for(;;){ - read_space$1(v, lexbuf); - read_object_sep$1(v, lexbuf); - read_space$1(v, lexbuf); - skip_ident$1(v, lexbuf); - read_space$1(v, lexbuf); - read_colon$1(v, lexbuf); - read_space$1(v, lexbuf); - skip_json$1(v, lexbuf); - } - } - catch(_e0_){ - var _eV_ = caml_wrap_exception(_e0_); - if(_eV_ === End_of_object) return 0; - throw caml_maybe_attach_backtrace(_eV_, 0); - } - case 10: - try{ - read_space$1(v, lexbuf); - read_array_end$1(lexbuf); - skip_json$1(v, lexbuf); - for(;;){ - read_space$1(v, lexbuf); - read_array_sep$1(v, lexbuf); - read_space$1(v, lexbuf); - skip_json$1(v, lexbuf); - } - } - catch(_eZ_){ - var _eW_ = caml_wrap_exception(_eZ_); - if(_eW_ === End_of_array) return 0; - throw caml_maybe_attach_backtrace(_eW_, 0); - } - case 11: - try{ - read_space$1(v, lexbuf); - read_tuple_end$1(lexbuf); - skip_json$1(v, lexbuf); - for(;;){ - read_space$1(v, lexbuf); - read_tuple_sep$1(v, lexbuf); - read_space$1(v, lexbuf); - skip_json$1(v, lexbuf); - } - } - catch(_eY_){ - var _eX_ = caml_wrap_exception(_eY_); - if(_eX_ === End_of_tuple) return 0; - throw caml_maybe_attach_backtrace(_eX_, 0); - } - case 12: - read_space$1(v, lexbuf); - skip_ident$1(v, lexbuf); - read_space$1(v, lexbuf); - return finish_skip_variant$1(v, lexbuf); - case 13: - continue a; - case 14: - finish_comment$1(v, lexbuf); continue a; - case 15: - newline$1(v, lexbuf); continue a; - case 16: - continue a; - case 17: - return custom_error$1(cst_Unexpected_end_of_input$127, v, lexbuf); - default: return long_error$1(cst_Invalid_token$13, v, lexbuf); - } - } - } - } - function skip_ident$1(v, lexbuf){ - var ocaml_lex_state = 394; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return finish_skip_stringlit$1(v, lexbuf); - case 1: - return 0; - case 2: - return long_error$1(cst_Expected_string_or_identif$9, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$130, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_buffer_stringlit$1(v, lexbuf){ - var ocaml_lex_state = 450; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 34); - return add_lexeme$1(v[1], lexbuf); - case 1: - return long_error$1(cst_Invalid_string_literal$7, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$132, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function buffer_json$1(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 399; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(11 < ocaml_lex_state$0 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - continue; - } - switch(ocaml_lex_state$0){ - case 0: - return add_lexeme$1(v[1], lexbuf); - case 1: - return finish_buffer_stringlit$1(v, lexbuf); - case 2: - try{ - caml_call2(Stdlib_Buffer[12], v[1], 123); - buffer_space$1(v, lexbuf); - var ocaml_lex_state$3 = 478; - for(;;){ - var - ocaml_lex_state$4 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$3, lexbuf); - if(0 === ocaml_lex_state$4){ - caml_call2(Stdlib_Buffer[12], v[1], 125); - throw caml_maybe_attach_backtrace(End_of_object, 1); - } - if(1 !== ocaml_lex_state$4){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$3 = ocaml_lex_state$4; - continue; - } - buffer_ident$1(v, lexbuf); - buffer_space$1(v, lexbuf); - buffer_colon$1(v, lexbuf); - buffer_space$1(v, lexbuf); - buffer_json$1(v, lexbuf); - b: - for(;;){ - buffer_space$1(v, lexbuf); - var ocaml_lex_state$5 = 480; - for(;;){ - var - ocaml_lex_state$6 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$5, lexbuf); - if(3 < ocaml_lex_state$6 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$5 = ocaml_lex_state$6; - continue; - } - switch(ocaml_lex_state$6){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 44); break; - case 1: - caml_call2(Stdlib_Buffer[12], v[1], 125); - throw caml_maybe_attach_backtrace(End_of_object, 1); - case 2: - long_error$1(cst_Expected_or_but_found$42, v, lexbuf); break; - default: - custom_error$1(cst_Unexpected_end_of_input$135, v, lexbuf); - } - buffer_space$1(v, lexbuf); - buffer_ident$1(v, lexbuf); - buffer_space$1(v, lexbuf); - buffer_colon$1(v, lexbuf); - buffer_space$1(v, lexbuf); - buffer_json$1(v, lexbuf); - continue b; - } - } - } - } - catch(_eU_){ - var _eP_ = caml_wrap_exception(_eU_); - if(_eP_ === End_of_object) return 0; - throw caml_maybe_attach_backtrace(_eP_, 0); - } - case 3: - try{ - caml_call2(Stdlib_Buffer[12], v[1], 91); - buffer_space$1(v, lexbuf); - var ocaml_lex_state$7 = 485; - for(;;){ - var - ocaml_lex_state$8 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$7, lexbuf); - if(0 === ocaml_lex_state$8){ - caml_call2(Stdlib_Buffer[12], v[1], 93); - throw caml_maybe_attach_backtrace(End_of_array, 1); - } - if(1 !== ocaml_lex_state$8){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$7 = ocaml_lex_state$8; - continue; - } - buffer_json$1(v, lexbuf); - b: - for(;;){ - buffer_space$1(v, lexbuf); - var ocaml_lex_state$9 = 487; - for(;;){ - var - ocaml_lex_state$10 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$9, lexbuf); - if(3 < ocaml_lex_state$10 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$9 = ocaml_lex_state$10; - continue; - } - switch(ocaml_lex_state$10){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 44); break; - case 1: - caml_call2(Stdlib_Buffer[12], v[1], 93); - throw caml_maybe_attach_backtrace(End_of_array, 1); - case 2: - long_error$1(cst_Expected_or_but_found$43, v, lexbuf); break; - default: - custom_error$1(cst_Unexpected_end_of_input$136, v, lexbuf); - } - buffer_space$1(v, lexbuf); - buffer_json$1(v, lexbuf); - continue b; - } - } - } - } - catch(_eT_){ - var _eQ_ = caml_wrap_exception(_eT_); - if(_eQ_ === End_of_array) return 0; - throw caml_maybe_attach_backtrace(_eQ_, 0); - } - case 4: - try{ - caml_call2(Stdlib_Buffer[12], v[1], 40); - buffer_space$1(v, lexbuf); - var ocaml_lex_state$11 = 492; - for(;;){ - var - ocaml_lex_state$12 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$11, lexbuf); - if(0 === ocaml_lex_state$12){ - caml_call2(Stdlib_Buffer[12], v[1], 41); - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - } - if(1 !== ocaml_lex_state$12){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$11 = ocaml_lex_state$12; - continue; - } - buffer_json$1(v, lexbuf); - b: - for(;;){ - buffer_space$1(v, lexbuf); - var ocaml_lex_state$13 = 494; - for(;;){ - var - ocaml_lex_state$14 = - caml_lex_engine - (ocaml_lex_tables$1, ocaml_lex_state$13, lexbuf); - if(3 < ocaml_lex_state$14 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$13 = ocaml_lex_state$14; - continue; - } - switch(ocaml_lex_state$14){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 44); break; - case 1: - caml_call2(Stdlib_Buffer[12], v[1], 41); - throw caml_maybe_attach_backtrace(End_of_tuple, 1); - case 2: - long_error$1(cst_Expected_or_but_found$44, v, lexbuf); break; - default: - custom_error$1(cst_Unexpected_end_of_input$137, v, lexbuf); - } - buffer_space$1(v, lexbuf); - buffer_json$1(v, lexbuf); - continue b; - } - } - } - } - catch(_eS_){ - var _eR_ = caml_wrap_exception(_eS_); - if(_eR_ === End_of_tuple) return 0; - throw caml_maybe_attach_backtrace(_eR_, 0); - } - case 5: - caml_call2(Stdlib_Buffer[12], v[1], 60); - buffer_space$1(v, lexbuf); - buffer_ident$1(v, lexbuf); - buffer_space$1(v, lexbuf); - var ocaml_lex_state$1 = 461; - for(;;){ + _gd_=0, + _ge_=function(_gr_,_gs_){return format$2(_gd_,std,_gr_,_gs_)}, + _gf_=function(_gp_,_gq_){return pp_list$2(cst$76,_ge_,_gp_,_gq_)}; + caml_call4(Stdlib_Format[129],out,_dy_,_gf_,l); + var _gg_=1 - inside_box; + return _gg_?caml_call2(Stdlib_Format[129],out,_dz_):_gg_} + var _gh_=x$0[2],_gi_=_gh_[2],_gj_=_gh_[1]; + if(_gi_) + {var x$3=_gi_[1]; + if(std) + {var + representation=[0,-375152890,_gj_], + x$4=[0,848054398,[0,representation,[0,x$3,0]]], + x$0=x$4; + continue} var - ocaml_lex_state$2 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$1, lexbuf); - if(3 < ocaml_lex_state$2 >>> 0){ - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$1 = ocaml_lex_state$2; - continue; - } - switch(ocaml_lex_state$2){ - case 0: - caml_call2(Stdlib_Buffer[12], v[1], 58); - buffer_json$1(v, lexbuf); - buffer_space$1(v, lexbuf); - var ocaml_lex_state$15 = 503; - for(;;){ - var - ocaml_lex_state$16 = - caml_lex_engine - (ocaml_lex_tables$1, ocaml_lex_state$15, lexbuf); - if(2 >= ocaml_lex_state$16 >>> 0) - switch(ocaml_lex_state$16){ - case 0: - return caml_call2(Stdlib_Buffer[12], v[1], 62); + op=json_string_of_string$2(_gj_), + _gk_=1, + _gl_=function(_gn_,_go_){return format$2(_gk_,std,_gn_,_go_)}; + return caml_call5(Stdlib_Format[129],out,_dA_,op,_gl_,x$3)} + if(std){var x$5=[0,-375152890,_gj_],x$0=x$5;continue} + var _gm_=json_string_of_string$2(_gj_); + return caml_call3(Stdlib_Format[129],out,_dB_,_gm_)}} + function pp$5(opt,out,x) + {if(opt)var sth=opt[1],std=sth;else var std=0; + var _fY_=1; + function _fZ_(_f0_,_f1_){return format$2(_fY_,std,_f0_,_f1_)} + return caml_call4(Stdlib_Format[129],out,_dD_,_fZ_,x)} + function pp$6(fmt,param) + {if(typeof param === "number") + return caml_call2(Stdlib_Format[13],fmt,cst_Null$2); + var _fR_=param[1]; + if(737456202 <= _fR_) + {if(928231259 <= _fR_) + {if(963043957 <= _fR_) + {var xs=param[2]; + caml_call2(Stdlib_Format[129],fmt,_dG_); + caml_call2(Stdlib_Format[129],fmt,_dH_); + var + _fS_=0, + _fT_= + function(sep,param) + {var value=param[2],key=param[1]; + if(sep)caml_call2(Stdlib_Format[129],fmt,_dI_); + caml_call2(Stdlib_Format[129],fmt,_dJ_); + caml_call3(Stdlib_Format[129],fmt,_dK_,key); + caml_call2(Stdlib_Format[129],fmt,_dL_); + pp$6(fmt,value); + caml_call2(Stdlib_Format[129],fmt,_dM_); + return 1}; + caml_call3(Stdlib_List[25],_fT_,_fS_,xs); + caml_call2(Stdlib_Format[129],fmt,_dN_); + return caml_call2(Stdlib_Format[129],fmt,_dO_)} + var x=param[2]; + caml_call2(Stdlib_Format[129],fmt,_dP_); + caml_call3(Stdlib_Format[129],fmt,_dQ_,x); + return caml_call2(Stdlib_Format[129],fmt,_dR_)} + if(848054398 <= _fR_) + {var xs$0=param[2]; + caml_call2(Stdlib_Format[129],fmt,_dS_); + caml_call2(Stdlib_Format[129],fmt,_dT_); + var + _fU_=0, + _fV_= + function(sep,x) + {if(sep)caml_call2(Stdlib_Format[129],fmt,_dU_); + pp$6(fmt,x); + return 1}; + caml_call3(Stdlib_List[25],_fV_,_fU_,xs$0); + caml_call2(Stdlib_Format[129],fmt,_dV_); + return caml_call2(Stdlib_Format[129],fmt,_dW_)} + var x$0=param[2]; + caml_call2(Stdlib_Format[129],fmt,_dX_); + caml_call3(Stdlib_Format[129],fmt,_dY_,x$0); + return caml_call2(Stdlib_Format[129],fmt,_dZ_)} + if(708012133 <= _fR_) + {if(726928360 <= _fR_) + {var tup=param[2]; + caml_call2(Stdlib_Format[129],fmt,_d0_); + caml_call2(Stdlib_Format[129],fmt,_d1_); + var + _fW_=0, + _fX_= + function(sep,e) + {if(sep)caml_call2(Stdlib_Format[129],fmt,_d2_); + pp$6(fmt,e); + return 1}; + caml_call3(Stdlib_List[25],_fX_,_fW_,tup); + caml_call2(Stdlib_Format[129],fmt,_d3_); + return caml_call2(Stdlib_Format[129],fmt,_d4_)} + var match=param[2],value=match[2],name=match[1]; + caml_call2(Stdlib_Format[129],fmt,_d5_); + caml_call2(Stdlib_Format[129],fmt,_d6_); + caml_call3(Stdlib_Format[129],fmt,_d7_,name); + caml_call2(Stdlib_Format[129],fmt,_d8_); + if(value) + {var x$1=value[1]; + caml_call2(Stdlib_Format[13],fmt,cst_Some$1); + pp$6(fmt,x$1); + caml_call2(Stdlib_Format[13],fmt,cst$77)} + else + caml_call2(Stdlib_Format[13],fmt,cst_None$1); + caml_call2(Stdlib_Format[129],fmt,_d9_); + return caml_call2(Stdlib_Format[129],fmt,_d__)} + if(-375152890 <= _fR_) + {var x$2=param[2]; + caml_call2(Stdlib_Format[129],fmt,_d$_); + caml_call3(Stdlib_Format[129],fmt,_ea_,x$2); + return caml_call2(Stdlib_Format[129],fmt,_eb_)} + var x$3=param[2]; + caml_call2(Stdlib_Format[129],fmt,_ec_); + caml_call3(Stdlib_Format[129],fmt,_ed_,x$3); + return caml_call2(Stdlib_Format[129],fmt,_ee_)} + function show$2(x){return caml_call3(Stdlib_Format[133],_ef_,pp$6,x)} + function equal$2(a,b) + {var a$0=a,b$0=b; + for(;;) + {if(typeof a$0 === "number") + {if(870828711 === a$0 && 870828711 === b$0)return 1} + else + {var _fK_=a$0[1],switch$0=0; + if(726928361 <= _fK_) + {if(848054399 <= _fK_) + {if(928231259 === _fK_) + {if(typeof b$0 !== "number" && 928231259 === b$0[1]) + {var b$1=b$0[2],a$1=a$0[2];return caml_equal(a$1,b$1)}} + else + if + (963043957 + === + _fK_ + && + typeof b$0 + !== + "number" + && + 963043957 + === + b$0[1]) + {var + ys=b$0[2], + xs=a$0[2], + compare_keys= + function(param,_fQ_) + {var key=_fQ_[1],key$0=param[1]; + return caml_call2(Stdlib_String[9],key$0,key)}, + xs$0=caml_call2(Stdlib_List[57],compare_keys,xs), + ys$0=caml_call2(Stdlib_List[57],compare_keys,ys); + try + {var + _fL_= + function(param,_fP_) + {var + value=_fP_[2], + key=_fP_[1], + value$0=param[2], + key$0=param[1], + match=caml_string_equal(key$0,key); + return match?equal$2(value$0,value):0}, + result=caml_call3(Stdlib_List[34],_fL_,xs$0,ys$0); + return result} + catch(_fO_) + {_fO_ = caml_wrap_exception(_fO_); + if(_fO_[1] === Stdlib[6])return 0; + throw _fO_}}} + else + if(737456202 === _fK_) + {if(typeof b$0 !== "number" && 737456202 === b$0[1]) + {var b$2=b$0[2],a$2=a$0[2];return caml_equal(a$2,b$2)}} + else + if + (848054398 + <= + _fK_ + && + typeof b$0 + !== + "number" + && + 848054398 + === + b$0[1]) + {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} + else + if(-375152889 <= _fK_) + {if(708012133 === _fK_) + {if(typeof b$0 !== "number" && 708012133 === b$0[1]) + {var + _fM_=b$0[2], + value=_fM_[2], + name=_fM_[1], + match=a$0[2], + value$0=match[2], + name$0=match[1], + match$0=caml_equal(name$0,name); + if(! match$0)return 0; + if(value$0) + {if(value) + {var b$3=value[1],a$3=value$0[1],a$0=a$3,b$0=b$3;continue}} + else + if(! value)return 1; + return 0}} + else + if + (726928360 + <= + _fK_ + && + typeof b$0 + !== + "number" + && + 726928360 + === + b$0[1]) + {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} + else + if(-752863768 === _fK_) + {if(typeof b$0 !== "number" && -752863768 === b$0[1]) + {var b$4=b$0[2],a$4=a$0[2];return caml_equal(a$4,b$4)}} + else + if + (-375152890 + <= + _fK_ + && + typeof b$0 + !== + "number" + && + -375152890 + === + b$0[1]) + {var b$5=b$0[2],a$5=a$0[2];return caml_equal(a$5,b$5)} + if(switch$0) + try + {var result$0=caml_call3(Stdlib_List[34],equal$2,xs$1,ys$1); + return result$0} + catch(_fN_) + {_fN_ = caml_wrap_exception(_fN_); + if(_fN_[1] === Stdlib[6])return 0; + throw _fN_}} + return 0}} + function pretty_print$2(std,out,x){return pp$5(std,out,x)} + function pretty_to_string$2(std,x) + {function _fH_(_fI_,_fJ_){return pp$5(std,_fI_,_fJ_)} + return caml_call3(Stdlib_Format[133],_dE_,_fH_,x)} + function pretty_to_channel$2(std,oc,x) + {var fmt=caml_call1(Stdlib_Format[108],oc); + function _fE_(_fF_,_fG_){return pp$5(std,_fF_,_fG_)} + return caml_call4(Stdlib_Format[129],fmt,_dF_,_fE_,x)} + var + from_channel$3=Stdlib_Lexing[2], + from_string$3=Stdlib_Lexing[3], + lexeme$1=Stdlib_Lexing[8], + sub_lexeme$1=Stdlib_Lexing[16], + sub_lexeme_char$1=Stdlib_Lexing[18]; + function hex$5(c) + {if(65 <= c) + {if(97 <= c) + {if(103 > c)return (c - 97 | 0) + 10 | 0} + else + if(71 > c)return (c - 65 | 0) + 10 | 0} + else + if(9 >= c - 48 >>> 0)return c - 48 | 0; + throw [0,Assert_failure,_eg_]} + function custom_error$1(descr,v,lexbuf) + {var + offs=lexbuf[4] - 1 | 0, + bol=v[3], + pos1=((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, + pos2=caml_call2(Stdlib[17],pos1,(offs + lexbuf[6] | 0) - bol | 0), + _fD_=v[4]; + if(_fD_) + var s=_fD_[1],file_line=caml_call2(Stdlib_Printf[4],_eh_,s); + else + var file_line=cst_Line$1; + var + bytes= + pos1 === pos2 + ?caml_call2(Stdlib_Printf[4],_ei_,pos1 + 1 | 0) + :caml_call3(Stdlib_Printf[4],_ek_,pos1 + 1 | 0,pos2 + 1 | 0), + msg=caml_call5(Stdlib_Printf[4],_ej_,file_line,v[2],bytes,descr); + return json_error(msg)} + function lexer_error$1(descr,v,lexbuf) + {var _fC_=caml_call1(lexeme$1,lexbuf); + return custom_error$1 + (caml_call3(Stdlib_Printf[4],_el_,descr,_fC_),v,lexbuf)} + var read_junk$1=[0,function(param){throw [0,Assert_failure,_em_]}]; + function long_error$1(descr,v,lexbuf) + {var + junk=caml_call1(lexeme$1,lexbuf), + extra_junk=caml_call1(read_junk$1[1],lexbuf); + return custom_error$1 + (caml_call4(Stdlib_Printf[4],_en_,descr,junk,extra_junk), + v, + lexbuf)} + var + _eo_=0 === (Stdlib[20] % 10 | 0)?0:1, + min10$1=(Stdlib[20] / 10 | 0) - _eo_ | 0, + _ep_=0 === (Stdlib[19] % 10 | 0)?0:1, + max10$1=(Stdlib[19] / 10 | 0) + _ep_ | 0, + Int_overflow$1=[248,cst_Yojson_Raw_Int_overflow,caml_fresh_oo_id(0)]; + function extract_positive_int$1(lexbuf) + {var + start=lexbuf[5], + stop=lexbuf[6], + s=lexbuf[2], + n=[0,0], + _fz_=stop - 1 | 0; + if(_fz_ >= start) + {var i=start; + for(;;) + {if(max10$1 <= n[1])throw Int_overflow$1; + var _fA_=caml_bytes_get(s,i) - 48 | 0; + n[1] = (10 * n[1] | 0) + _fA_ | 0; + var _fB_=i + 1 | 0; + if(_fz_ !== i){var i=_fB_;continue} + break}} + if(0 <= n[1])return n[1]; + throw Int_overflow$1} + function make_positive_int(v,lexbuf) + {return [0,-752863768,caml_call1(lexeme$1,lexbuf)]} + function extract_negative_int$1(lexbuf) + {var + start=lexbuf[5] + 1 | 0, + stop=lexbuf[6], + s=lexbuf[2], + n=[0,0], + _fw_=stop - 1 | 0; + if(_fw_ >= start) + {var i=start; + for(;;) + {if(n[1] <= min10$1)throw Int_overflow$1; + var _fx_=caml_bytes_get(s,i) - 48 | 0; + n[1] = (10 * n[1] | 0) - _fx_ | 0; + var _fy_=i + 1 | 0; + if(_fw_ !== i){var i=_fy_;continue} + break}} + if(0 < n[1])throw Int_overflow$1; + return n[1]} + function make_negative_int(v,lexbuf) + {return [0,-752863768,caml_call1(lexeme$1,lexbuf)]} + function newline$1(v,lexbuf) + {v[2] = v[2] + 1 | 0;v[3] = lexbuf[4] + lexbuf[6] | 0;return 0} + function add_lexeme$1(buf,lexbuf) + {var len=lexbuf[6] - lexbuf[5] | 0; + return caml_call4(Stdlib_Buffer[19],buf,lexbuf[2],lexbuf[5],len)} + function read_json$4(counter,v,lexbuf) + {var _fv_=0; + if(counter >= 50) + return caml_trampoline_return + (ocaml_lex_read_json_rec$1,[0,v,lexbuf,_fv_]); + var counter$0=counter + 1 | 0; + return ocaml_lex_read_json_rec$1(counter$0,v,lexbuf,_fv_)} + function ocaml_lex_read_json_rec$1(counter,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(19 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return _eq_; + case 1:return _er_; + case 2:return 870828711; + case 3:return _es_; + case 4:return _et_; + case 5:return _eu_; + case 6:return [0,-375152890,finish_stringlit$1(v,lexbuf)]; + case 7:return make_positive_int(v,lexbuf); + case 8:return make_negative_int(v,lexbuf); + case 9:return [0,928231259,caml_call1(lexeme$1,lexbuf)]; + case 10: + var acc=[0,0]; + try + {read_space$1(v,lexbuf); + read_object_end$1(lexbuf); + var field_name=read_ident$1(v,lexbuf); + read_space$1(v,lexbuf); + read_colon$1(v,lexbuf); + read_space$1(v,lexbuf); + var _fm_=acc[1]; + acc[1] = [0,[0,field_name,read_json$1(v,lexbuf)],_fm_]; + for(;;) + {read_space$1(v,lexbuf); + read_object_sep$1(v,lexbuf); + read_space$1(v,lexbuf); + var field_name$0=read_ident$1(v,lexbuf); + read_space$1(v,lexbuf); + read_colon$1(v,lexbuf); + read_space$1(v,lexbuf); + var _fn_=acc[1]; + acc[1] = [0,[0,field_name$0,read_json$1(v,lexbuf)],_fn_]}} + catch(_fu_) + {_fu_ = caml_wrap_exception(_fu_); + if(_fu_ === End_of_object) + return [0,963043957,caml_call1(Stdlib_List[9],acc[1])]; + throw _fu_} + case 11: + var acc$0=[0,0]; + try + {read_space$1(v,lexbuf); + read_array_end$1(lexbuf); + var _fo_=acc$0[1]; + acc$0[1] = [0,read_json$1(v,lexbuf),_fo_]; + for(;;) + {read_space$1(v,lexbuf); + read_array_sep$1(v,lexbuf); + read_space$1(v,lexbuf); + var _fp_=acc$0[1]; + acc$0[1] = [0,read_json$1(v,lexbuf),_fp_]}} + catch(_ft_) + {_ft_ = caml_wrap_exception(_ft_); + if(_ft_ === End_of_array) + return [0,848054398,caml_call1(Stdlib_List[9],acc$0[1])]; + throw _ft_} + case 12: + var acc$1=[0,0]; + try + {read_space$1(v,lexbuf); + read_tuple_end$1(lexbuf); + var _fq_=acc$1[1]; + acc$1[1] = [0,read_json$1(v,lexbuf),_fq_]; + for(;;) + {read_space$1(v,lexbuf); + read_tuple_sep$1(v,lexbuf); + read_space$1(v,lexbuf); + var _fr_=acc$1[1]; + acc$1[1] = [0,read_json$1(v,lexbuf),_fr_]}} + catch(_fs_) + {_fs_ = caml_wrap_exception(_fs_); + if(_fs_ === End_of_tuple) + return [0,726928360,caml_call1(Stdlib_List[9],acc$1[1])]; + throw _fs_} + case 13: + read_space$1(v,lexbuf); + var cons=read_ident$1(v,lexbuf); + read_space$1(v,lexbuf); + return [0,708012133,[0,cons,finish_variant$1(v,lexbuf)]]; + case 14: + if(counter >= 50) + return caml_trampoline_return(read_json$4,[0,v,lexbuf]); + var counter$0=counter + 1 | 0; + return read_json$4(counter$0,v,lexbuf); + case 15: + finish_comment$1(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(read_json$4,[0,v,lexbuf]); + var counter$1=counter + 1 | 0; + return read_json$4(counter$1,v,lexbuf); + case 16: + newline$1(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(read_json$4,[0,v,lexbuf]); + var counter$2=counter + 1 | 0; + return read_json$4(counter$2,v,lexbuf); + case 17: + if(counter >= 50) + return caml_trampoline_return(read_json$4,[0,v,lexbuf]); + var counter$3=counter + 1 | 0; + return read_json$4(counter$3,v,lexbuf); + case 18: + return custom_error$1(cst_Unexpected_end_of_input$92,v,lexbuf); + default:return long_error$1(cst_Invalid_token$12,v,lexbuf)}}} + function read_json$1(v,lexbuf) + {return caml_trampoline(read_json$4(0,v,lexbuf))} + function finish_string$5(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=58; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call1(Stdlib_Buffer[2],v[1]); + case 1:finish_escaped_char$1(v,lexbuf);continue a; + case 2:add_lexeme$1(v[1],lexbuf);continue a; + default: + return custom_error$1(cst_Unexpected_end_of_input$93,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function map_string$1(v,f,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=63; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + var b=v[1],_fl_=caml_call1(Stdlib_Buffer[7],b); + return caml_call3(f,caml_call1(Stdlib_Buffer[2],b),0,_fl_); + case 1:finish_escaped_char$1(v,lexbuf);continue a; + case 2:add_lexeme$1(v[1],lexbuf);continue a; + default: + return custom_error$1(cst_Unexpected_end_of_input$94,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function finish_escaped_char$1(v,lexbuf) + {var ocaml_lex_state=68; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(8 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0: + var c=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5]); + return caml_call2(Stdlib_Buffer[12],v[1],c); + case 1:return caml_call2(Stdlib_Buffer[12],v[1],8); + case 2:return caml_call2(Stdlib_Buffer[12],v[1],12); + case 3:return caml_call2(Stdlib_Buffer[12],v[1],10); + case 4:return caml_call2(Stdlib_Buffer[12],v[1],13); + case 5:return caml_call2(Stdlib_Buffer[12],v[1],9); + case 6: + var + a=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 1 | 0), + b=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 2 | 0), + c$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 3 | 0), + d=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 4 | 0), + _ff_=hex$5(d), + _fg_=hex$5(c$0) << 4, + _fh_=hex$5(b) << 8, + x=hex$5(a) << 12 | _fh_ | _fg_ | _ff_; + if(55296 <= x && 56319 >= x) + {var ocaml_lex_state$1=82; + for(;;) + {var + ocaml_lex_state$2= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$1,lexbuf); + if(2 < ocaml_lex_state$2 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$1=ocaml_lex_state$2; + continue} + switch(ocaml_lex_state$2) + {case 0: + var + a$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 2 | 0), + b$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 3 | 0), + c$1=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 4 | 0), + d$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 5 | 0), + _fi_=hex$5(d$0), + _fj_=hex$5(c$1) << 4, + _fk_=hex$5(b$0) << 8, + y=hex$5(a$0) << 12 | _fk_ | _fj_ | _fi_; + if(56320 <= y && 57343 >= y) + return utf8_of_surrogate_pair(v[1],x,y); + return long_error$1 + (cst_Invalid_low_surrogate_for_$1,v,lexbuf); case 1: - return long_error$1(cst_Expected_but_found$45, v, lexbuf); + return long_error$1 + (cst_Missing_escape_sequence_re$1,v,lexbuf); default: return custom_error$1 - (cst_Unexpected_end_of_input$139, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state$15 = ocaml_lex_state$16; - } - case 1: - return caml_call2(Stdlib_Buffer[12], v[1], 62); - case 2: - return long_error$1(cst_Expected_or_but_found$41, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$133, v, lexbuf); - } - } - case 6: - add_lexeme$1(v[1], lexbuf); continue a; - case 7: - caml_call2(Stdlib_Buffer[16], v[1], cst$78); - finish_buffer_comment$1(v, lexbuf); - continue a; - case 8: - caml_call2(Stdlib_Buffer[12], v[1], 10); - newline$1(v, lexbuf); - continue a; - case 9: - add_lexeme$1(v[1], lexbuf); continue a; - case 10: - return custom_error$1(cst_Unexpected_end_of_input$131, v, lexbuf); - default: return long_error$1(cst_Invalid_token$14, v, lexbuf); - } - } - } - } - function buffer_ident$1(v, lexbuf){ - var ocaml_lex_state = 466; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return finish_buffer_stringlit$1(v, lexbuf); - case 1: - return add_lexeme$1(v[1], lexbuf); - case 2: - return long_error$1(cst_Expected_string_or_identif$10, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$134, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function buffer_space$1(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 471; - for(;;){ + (cst_Unexpected_end_of_input$96,v,lexbuf)}}} + return utf8_of_code(v[1],x); + case 7:return long_error$1(cst_Invalid_escape_sequence$1,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$95,v,lexbuf)}}} + function finish_stringlit$1(v,lexbuf) + {var ocaml_lex_state=91; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + var + len=lexbuf[6] - lexbuf[5] | 0, + s=caml_create_bytes(len + 1 | 0); + caml_bytes_set(s,0,34); + caml_call5(Stdlib_Bytes[11],lexbuf[2],lexbuf[5],s,1,len); + return caml_call1(Stdlib_Bytes[6],s); + case 1:return long_error$1(cst_Invalid_string_literal$5,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$97,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_variant$1(v,lexbuf) + {var ocaml_lex_state=102; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + var x=read_json$1(v,lexbuf); + read_space$1(v,lexbuf); + read_gt$1(v,lexbuf); + return [0,x]; + case 1:return 0; + case 2:return long_error$1(cst_Expected_or_but_found$29,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$98,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_lt$1(v,lexbuf) + {var ocaml_lex_state=107; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Expected_but_found$30,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$99,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_gt$1(v,lexbuf) + {var ocaml_lex_state=111; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Expected_but_found$31,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$100,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_comma$1(v,lexbuf) + {var ocaml_lex_state=115; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Expected_but_found$32,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$101,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function start_any_variant$1(v,lexbuf) + {var ocaml_lex_state=119; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return -154522342; + case 1:caml_call1(Stdlib_Buffer[8],v[1]);return -589953938; + case 2:return -124528282; + case 3:return long_error$1(cst_Expected_or_but_found$30,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$102,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_comment$1(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=125; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Unterminated_comment$3,v,lexbuf); + case 2:newline$1(v,lexbuf);continue a; + default:continue a} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function read_eof$1(lexbuf) + {var ocaml_lex_state=131; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)return 1; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_space$1(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=133; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:newline$1(v,lexbuf);continue a; + case 1:finish_comment$1(v,lexbuf);continue a; + case 2:newline$1(v,lexbuf);continue a; + case 3:continue a; + default:return 0} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function read_null$1(v,lexbuf) + {var ocaml_lex_state=140; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Expected_null_but_found$1,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$103,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_null_if_possible$1(v,lexbuf) + {var ocaml_lex_state=147; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)return 1; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_bool$1(v,lexbuf) + {var ocaml_lex_state=152; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(5 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 1; + case 1:return 0; + case 2:return 1; + case 3:return 0; + case 4: + return long_error$1(cst_Expected_true_or_false_but$1,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$104,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function ocaml_lex_read_int_rec$1(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(4 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + try + {var _e$_=extract_positive_int$1(lexbuf);return _e$_} + catch(_fe_) + {_fe_ = caml_wrap_exception(_fe_); + if(_fe_ === Int_overflow$1) + return lexer_error$1(cst_Int_overflow$5,v,lexbuf); + throw _fe_} + case 1: + try + {var _fa_=extract_negative_int$1(lexbuf);return _fa_} + catch(_fd_) + {_fd_ = caml_wrap_exception(_fd_); + if(_fd_ === Int_overflow$1) + return lexer_error$1(cst_Int_overflow$6,v,lexbuf); + throw _fd_} + case 2: + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$5(v,lexbuf); + try + {var _fb_=caml_int_of_string(s);return _fb_} + catch(_fc_) + {return custom_error$1(cst_Expected_an_integer_but_fo$1,v,lexbuf)} + case 3: + return long_error$1(cst_Expected_integer_but_found$1,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$105,v,lexbuf)}}} + function read_int$1(v,lexbuf) + {return ocaml_lex_read_int_rec$1(v,lexbuf,176)} + function ocaml_lex_read_int32_rec$1(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(3 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + try + {var _e7_=caml_int_of_string(caml_call1(lexeme$1,lexbuf)); + return _e7_} + catch(_e__){return lexer_error$1(cst_Int32_overflow$3,v,lexbuf)} + case 1: + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$5(v,lexbuf); + try + {var _e8_=caml_int_of_string(s);return _e8_} + catch(_e9_) + {return custom_error$1(cst_Expected_an_int32_but_foun$1,v,lexbuf)} + case 2:return long_error$1(cst_Expected_int32_but_found$1,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$106,v,lexbuf)}}} + function read_int32$1(v,lexbuf) + {return ocaml_lex_read_int32_rec$1(v,lexbuf,185)} + function ocaml_lex_read_int64_rec$1(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(3 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + try + {var _e3_=caml_int64_of_string(caml_call1(lexeme$1,lexbuf)); + return _e3_} + catch(_e6_){return lexer_error$1(cst_Int32_overflow$4,v,lexbuf)} + case 1: + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$5(v,lexbuf); + try + {var _e4_=caml_int64_of_string(s);return _e4_} + catch(_e5_) + {return custom_error$1(cst_Expected_an_int64_but_foun$1,v,lexbuf)} + case 2:return long_error$1(cst_Expected_int64_but_found$1,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$107,v,lexbuf)}}} + function read_int64$1(v,lexbuf) + {return ocaml_lex_read_int64_rec$1(v,lexbuf,192)} + function ocaml_lex_read_number_rec$1(v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(6 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return Stdlib[24]; + case 1:return Stdlib[22]; + case 2:return Stdlib[23]; + case 3:return caml_float_of_string(caml_call1(lexeme$1,lexbuf)); + case 4: + caml_call1(Stdlib_Buffer[8],v[1]); + var s=finish_string$5(v,lexbuf); + try + {var _e1_=caml_float_of_string(s);return _e1_} + catch(_e2_) + {return caml_string_notequal(s,cst_Infinity$15) + ?caml_string_notequal(s,cst_Infinity$16) + ?caml_string_notequal(s,cst_NaN$7) + ?custom_error$1(cst_Expected_a_number_but_foun$1,v,lexbuf) + :Stdlib[24] + :Stdlib[22] + :Stdlib[23]} + case 5: + return long_error$1(cst_Expected_number_but_found$1,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$108,v,lexbuf)}}} + function read_number$1(v,lexbuf) + {return ocaml_lex_read_number_rec$1(v,lexbuf,199)} + function read_string$1(v,lexbuf) + {var ocaml_lex_state=233; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call1(Stdlib_Buffer[8],v[1]); + return finish_string$5(v,lexbuf); + case 1:return long_error$1(cst_Expected_but_found$33,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$109,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_ident$1(v,lexbuf) + {var ocaml_lex_state=237; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call1(Stdlib_Buffer[8],v[1]); + return finish_string$5(v,lexbuf); + case 1: + var s=caml_call3(sub_lexeme$1,lexbuf,lexbuf[5],lexbuf[6]); + return s; + case 2: + return long_error$1(cst_Expected_string_or_identif$7,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$110,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function map_ident$1(v,f,lexbuf) + {var ocaml_lex_state=242; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call1(Stdlib_Buffer[8],v[1]);return map_string$1(v,f,lexbuf); + case 1: + var len=lexbuf[6] - lexbuf[5] | 0; + return caml_call3 + (f, + caml_call3(Stdlib_Bytes[8],lexbuf[2],lexbuf[5],len), + 0, + len); + case 2: + return long_error$1(cst_Expected_string_or_identif$8,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$111,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function ocaml_lex_read_sequence_rec$1 + (read_cell,init_acc,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var acc=[0,init_acc]; + try + {read_space$1(v,lexbuf); + read_array_end$1(lexbuf); + acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); + for(;;) + {read_space$1(v,lexbuf); + read_array_sep$1(v,lexbuf); + read_space$1(v,lexbuf); + acc[1] = caml_call3(read_cell,acc[1],v,lexbuf)}} + catch(_e0_) + {_e0_ = caml_wrap_exception(_e0_); + if(_e0_ === End_of_array)return acc[1]; + throw _e0_} + case 1:return long_error$1(cst_Expected_but_found$34,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$112,v,lexbuf)}}} + function read_sequence$1(read_cell,init_acc,v,lexbuf) + {return ocaml_lex_read_sequence_rec$1(read_cell,init_acc,v,lexbuf,247)} + function ocaml_lex_read_list_rev_rec$1(read_cell,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var acc=[0,0]; + try + {read_space$1(v,lexbuf); + read_array_end$1(lexbuf); + var _eX_=acc[1]; + acc[1] = [0,caml_call2(read_cell,v,lexbuf),_eX_]; + for(;;) + {read_space$1(v,lexbuf); + read_array_sep$1(v,lexbuf); + read_space$1(v,lexbuf); + var _eY_=acc[1]; + acc[1] = [0,caml_call2(read_cell,v,lexbuf),_eY_]}} + catch(_eZ_) + {_eZ_ = caml_wrap_exception(_eZ_); + if(_eZ_ === End_of_array)return acc[1]; + throw _eZ_} + case 1:return long_error$1(cst_Expected_but_found$35,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$113,v,lexbuf)}}} + function read_list_rev$1(read_cell,v,lexbuf) + {return ocaml_lex_read_list_rev_rec$1(read_cell,v,lexbuf,251)} + function read_array_end$1(lexbuf) + {var ocaml_lex_state=255; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)throw End_of_array; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_array_sep$1(v,lexbuf) + {var ocaml_lex_state=257; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:throw End_of_array; + case 2:return long_error$1(cst_Expected_or_but_found$31,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$114,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function ocaml_lex_read_tuple_rec$0 + (read_cell,init_acc,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var pos=[0,0],acc=[0,init_acc]; + try + {read_space$1(v,lexbuf); + read_tuple_end$1(lexbuf); + acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); + pos[1]++; + for(;;) + {read_space$1(v,lexbuf); + read_tuple_sep$1(v,lexbuf); + read_space$1(v,lexbuf); + acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); + pos[1]++}} + catch(_eW_) + {_eW_ = caml_wrap_exception(_eW_); + if(_eW_ === End_of_tuple)return acc[1]; + throw _eW_} + case 1:return long_error$1(cst_Expected_but_found$36,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$115,v,lexbuf)}}} + function read_tuple$1(read_cell,init_acc,v,lexbuf) + {return ocaml_lex_read_tuple_rec$0(read_cell,init_acc,v,lexbuf,262)} + function read_tuple_end$1(lexbuf) + {var ocaml_lex_state=266; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)throw End_of_tuple; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_tuple_end2$1(v,std,lexbuf) + {var ocaml_lex_state=268; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0: + if(std)return long_error$1(cst_Expected_or_but_found$32,v,lexbuf); + throw End_of_tuple; + case 1: + if(std)throw End_of_tuple; + return long_error$1(cst_Expected_or_but_found$33,v,lexbuf); + default:return 0}}} + function read_tuple_sep$1(v,lexbuf) + {var ocaml_lex_state=271; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:throw End_of_tuple; + case 2:return long_error$1(cst_Expected_or_but_found$34,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$116,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_tuple_sep2$1(v,std,lexbuf) + {var ocaml_lex_state=276; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(4 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1: + if(std)return long_error$1(cst_Expected_or_but_found$35,v,lexbuf); + throw End_of_tuple; + case 2: + if(std)throw End_of_tuple; + return long_error$1(cst_Expected_or_but_found$36,v,lexbuf); + case 3:return long_error$1(cst_Expected_or_but_found$37,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$117,v,lexbuf)}}} + function ocaml_lex_read_abstract_fields$1 + (read_key,read_field,init_acc,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(2 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0: + var acc=[0,init_acc]; + try + {read_space$1(v,lexbuf); + read_object_end$1(lexbuf); + var field_name=caml_call2(read_key,v,lexbuf); + read_space$1(v,lexbuf); + read_colon$1(v,lexbuf); + read_space$1(v,lexbuf); + acc[1] = caml_call4(read_field,acc[1],field_name,v,lexbuf); + for(;;) + {read_space$1(v,lexbuf); + read_object_sep$1(v,lexbuf); + read_space$1(v,lexbuf); + var field_name$0=caml_call2(read_key,v,lexbuf); + read_space$1(v,lexbuf); + read_colon$1(v,lexbuf); + read_space$1(v,lexbuf); + acc[1] = caml_call4(read_field,acc[1],field_name$0,v,lexbuf)}} + catch(_eV_) + {_eV_ = caml_wrap_exception(_eV_); + if(_eV_ === End_of_object)return acc[1]; + throw _eV_} + case 1:return long_error$1(cst_Expected_but_found$37,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$118,v,lexbuf)}}} + function read_abstract_fields$1(read_key,read_field,init_acc,v,lexbuf) + {return ocaml_lex_read_abstract_fields$1 + (read_key,read_field,init_acc,v,lexbuf,282)} + function read_lcurl$1(v,lexbuf) + {var ocaml_lex_state=286; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Expected_but_found$38,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$119,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_object_end$1(lexbuf) + {var ocaml_lex_state=290; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)throw End_of_object; + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_object_sep$1(v,lexbuf) + {var ocaml_lex_state=292; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:throw End_of_object; + case 2:return long_error$1(cst_Expected_or_but_found$38,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$120,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_colon$1(v,lexbuf) + {var ocaml_lex_state=297; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Expected_but_found$39,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$121,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function start_any_tuple$1(v,lexbuf) + {var ocaml_lex_state=301; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return 1; + case 2:return long_error$1(cst_Expected_or_but_found$39,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$122,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_lpar$1(v,lexbuf) + {var ocaml_lex_state=306; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Expected_but_found$40,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$123,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_rpar$1(v,lexbuf) + {var ocaml_lex_state=310; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Expected_but_found$41,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$124,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_lbr$1(v,lexbuf) + {var ocaml_lex_state=314; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Expected_but_found$42,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$125,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function read_rbr$1(v,lexbuf) + {var ocaml_lex_state=318; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Expected_but_found$43,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$126,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_skip_variant$1(v,lexbuf) + {var ocaml_lex_state=389; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + skip_json$1(v,lexbuf); + read_space$1(v,lexbuf); + return read_gt$1(v,lexbuf); + case 1:return 0; + case 2:return long_error$1(cst_Expected_or_but_found$40,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$129,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_skip_stringlit$1(v,lexbuf) + {var ocaml_lex_state=378; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return 0; + case 1:return long_error$1(cst_Invalid_string_literal$6,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$128,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function skip_json$4(counter,v,lexbuf) + {var _eU_=322; + if(counter >= 50) + return caml_trampoline_return + (ocaml_lex_skip_json_rec$1,[0,v,lexbuf,_eU_]); + var counter$0=counter + 1 | 0; + return ocaml_lex_skip_json_rec$1(counter$0,v,lexbuf,_eU_)} + function ocaml_lex_skip_json_rec$1(counter,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(18 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return 0; + case 1:return 0; + case 2:return 0; + case 3:return 0; + case 4:return 0; + case 5:return 0; + case 6:return finish_skip_stringlit$1(v,lexbuf); + case 7:return 0; + case 8:return 0; + case 9: + try + {read_space$1(v,lexbuf); + read_object_end$1(lexbuf); + skip_ident$1(v,lexbuf); + read_space$1(v,lexbuf); + read_colon$1(v,lexbuf); + read_space$1(v,lexbuf); + skip_json$1(v,lexbuf); + for(;;) + {read_space$1(v,lexbuf); + read_object_sep$1(v,lexbuf); + read_space$1(v,lexbuf); + skip_ident$1(v,lexbuf); + read_space$1(v,lexbuf); + read_colon$1(v,lexbuf); + read_space$1(v,lexbuf); + skip_json$1(v,lexbuf)}} + catch(_eT_) + {_eT_ = caml_wrap_exception(_eT_); + if(_eT_ === End_of_object)return 0; + throw _eT_} + case 10: + try + {read_space$1(v,lexbuf); + read_array_end$1(lexbuf); + skip_json$1(v,lexbuf); + for(;;) + {read_space$1(v,lexbuf); + read_array_sep$1(v,lexbuf); + read_space$1(v,lexbuf); + skip_json$1(v,lexbuf)}} + catch(_eS_) + {_eS_ = caml_wrap_exception(_eS_); + if(_eS_ === End_of_array)return 0; + throw _eS_} + case 11: + try + {read_space$1(v,lexbuf); + read_tuple_end$1(lexbuf); + skip_json$1(v,lexbuf); + for(;;) + {read_space$1(v,lexbuf); + read_tuple_sep$1(v,lexbuf); + read_space$1(v,lexbuf); + skip_json$1(v,lexbuf)}} + catch(_eR_) + {_eR_ = caml_wrap_exception(_eR_); + if(_eR_ === End_of_tuple)return 0; + throw _eR_} + case 12: + read_space$1(v,lexbuf); + skip_ident$1(v,lexbuf); + read_space$1(v,lexbuf); + return finish_skip_variant$1(v,lexbuf); + case 13: + if(counter >= 50) + return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); + var counter$0=counter + 1 | 0; + return skip_json$4(counter$0,v,lexbuf); + case 14: + finish_comment$1(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); + var counter$1=counter + 1 | 0; + return skip_json$4(counter$1,v,lexbuf); + case 15: + newline$1(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); + var counter$2=counter + 1 | 0; + return skip_json$4(counter$2,v,lexbuf); + case 16: + if(counter >= 50) + return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); + var counter$3=counter + 1 | 0; + return skip_json$4(counter$3,v,lexbuf); + case 17: + return custom_error$1(cst_Unexpected_end_of_input$127,v,lexbuf); + default:return long_error$1(cst_Invalid_token$13,v,lexbuf)}}} + function skip_json$1(v,lexbuf) + {return caml_trampoline(skip_json$4(0,v,lexbuf))} + function skip_ident$1(v,lexbuf) + {var ocaml_lex_state=394; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return finish_skip_stringlit$1(v,lexbuf); + case 1:return 0; + case 2: + return long_error$1(cst_Expected_string_or_identif$9,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$130,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_buffer_variant$0(v,lexbuf) + {var ocaml_lex_state=461; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 < ocaml_lex_state$0 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0; + continue} + switch(ocaml_lex_state$0) + {case 0: + caml_call2(Stdlib_Buffer[12],v[1],58); + buffer_json$1(v,lexbuf); + buffer_space$1(v,lexbuf); + var ocaml_lex_state$1=503; + for(;;) + {var + ocaml_lex_state$2= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$1,lexbuf); + if(2 >= ocaml_lex_state$2 >>> 0) + switch(ocaml_lex_state$2) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],62); + case 1: + return long_error$1(cst_Expected_but_found$45,v,lexbuf); + default: + return custom_error$1 + (cst_Unexpected_end_of_input$139,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$1=ocaml_lex_state$2} + case 1:return caml_call2(Stdlib_Buffer[12],v[1],62); + case 2:return long_error$1(cst_Expected_or_but_found$41,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$133,v,lexbuf)}}} + function finish_buffer_stringlit$1(v,lexbuf) + {var ocaml_lex_state=450; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0: + caml_call2(Stdlib_Buffer[12],v[1],34); + return add_lexeme$1(v[1],lexbuf); + case 1:return long_error$1(cst_Invalid_string_literal$7,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$132,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_json$4(counter,v,lexbuf) + {var _eQ_=399; + if(counter >= 50) + return caml_trampoline_return + (ocaml_lex_buffer_json_rec$1,[0,v,lexbuf,_eQ_]); + var counter$0=counter + 1 | 0; + return ocaml_lex_buffer_json_rec$1(counter$0,v,lexbuf,_eQ_)} + function ocaml_lex_buffer_json_rec$1(counter,v,lexbuf,ocaml_lex_state) + {var ocaml_lex_state$0=ocaml_lex_state; + for(;;) + {var + ocaml_lex_state$1= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); + if(11 < ocaml_lex_state$1 >>> 0) + {caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state$0=ocaml_lex_state$1; + continue} + switch(ocaml_lex_state$1) + {case 0:return add_lexeme$1(v[1],lexbuf); + case 1:return finish_buffer_stringlit$1(v,lexbuf); + case 2: + try + {caml_call2(Stdlib_Buffer[12],v[1],123); + buffer_space$1(v,lexbuf); + buffer_object_end$1(v,lexbuf); + buffer_ident$1(v,lexbuf); + buffer_space$1(v,lexbuf); + buffer_colon$1(v,lexbuf); + buffer_space$1(v,lexbuf); + buffer_json$1(v,lexbuf); + for(;;) + {buffer_space$1(v,lexbuf); + buffer_object_sep$1(v,lexbuf); + buffer_space$1(v,lexbuf); + buffer_ident$1(v,lexbuf); + buffer_space$1(v,lexbuf); + buffer_colon$1(v,lexbuf); + buffer_space$1(v,lexbuf); + buffer_json$1(v,lexbuf)}} + catch(_eP_) + {_eP_ = caml_wrap_exception(_eP_); + if(_eP_ === End_of_object)return 0; + throw _eP_} + case 3: + try + {caml_call2(Stdlib_Buffer[12],v[1],91); + buffer_space$1(v,lexbuf); + buffer_array_end$1(v,lexbuf); + buffer_json$1(v,lexbuf); + for(;;) + {buffer_space$1(v,lexbuf); + buffer_array_sep$1(v,lexbuf); + buffer_space$1(v,lexbuf); + buffer_json$1(v,lexbuf)}} + catch(_eO_) + {_eO_ = caml_wrap_exception(_eO_); + if(_eO_ === End_of_array)return 0; + throw _eO_} + case 4: + try + {caml_call2(Stdlib_Buffer[12],v[1],40); + buffer_space$1(v,lexbuf); + buffer_tuple_end$0(v,lexbuf); + buffer_json$1(v,lexbuf); + for(;;) + {buffer_space$1(v,lexbuf); + buffer_tuple_sep$0(v,lexbuf); + buffer_space$1(v,lexbuf); + buffer_json$1(v,lexbuf)}} + catch(_eN_) + {_eN_ = caml_wrap_exception(_eN_); + if(_eN_ === End_of_tuple)return 0; + throw _eN_} + case 5: + caml_call2(Stdlib_Buffer[12],v[1],60); + buffer_space$1(v,lexbuf); + buffer_ident$1(v,lexbuf); + buffer_space$1(v,lexbuf); + return finish_buffer_variant$0(v,lexbuf); + case 6: + add_lexeme$1(v[1],lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); + var counter$0=counter + 1 | 0; + return buffer_json$4(counter$0,v,lexbuf); + case 7: + caml_call2(Stdlib_Buffer[16],v[1],cst$78); + finish_buffer_comment$1(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); + var counter$1=counter + 1 | 0; + return buffer_json$4(counter$1,v,lexbuf); + case 8: + caml_call2(Stdlib_Buffer[12],v[1],10); + newline$1(v,lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); + var counter$2=counter + 1 | 0; + return buffer_json$4(counter$2,v,lexbuf); + case 9: + add_lexeme$1(v[1],lexbuf); + if(counter >= 50) + return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); + var counter$3=counter + 1 | 0; + return buffer_json$4(counter$3,v,lexbuf); + case 10: + return custom_error$1(cst_Unexpected_end_of_input$131,v,lexbuf); + default:return long_error$1(cst_Invalid_token$14,v,lexbuf)}}} + function buffer_json$1(v,lexbuf) + {return caml_trampoline(buffer_json$4(0,v,lexbuf))} + function buffer_ident$1(v,lexbuf) + {var ocaml_lex_state=466; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return finish_buffer_stringlit$1(v,lexbuf); + case 1:return add_lexeme$1(v[1],lexbuf); + case 2: + return long_error$1(cst_Expected_string_or_identif$10,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$134,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_space$1(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=471; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:add_lexeme$1(v[1],lexbuf);newline$1(v,lexbuf);continue a; + case 1: + caml_call2(Stdlib_Buffer[16],v[1],cst$79); + finish_buffer_comment$1(v,lexbuf); + continue a; + case 2: + caml_call2(Stdlib_Buffer[12],v[1],10); + newline$1(v,lexbuf); + continue a; + case 3:add_lexeme$1(v[1],lexbuf);continue a; + default:return 0} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function buffer_object_end$1(v,lexbuf) + {var ocaml_lex_state=478; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0) + {caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object} + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_object_sep$1(v,lexbuf) + {var ocaml_lex_state=480; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); + case 1:caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object; + case 2:return long_error$1(cst_Expected_or_but_found$42,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$135,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_array_end$1(v,lexbuf) + {var ocaml_lex_state=485; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0) + {caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array} + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_array_sep$1(v,lexbuf) + {var ocaml_lex_state=487; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); + case 1:caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array; + case 2:return long_error$1(cst_Expected_or_but_found$43,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$136,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_tuple_end$0(v,lexbuf) + {var ocaml_lex_state=492; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0) + {caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple} + if(1 === ocaml_lex_state$0)return 0; + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_tuple_sep$0(v,lexbuf) + {var ocaml_lex_state=494; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); + case 1:caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple; + case 2:return long_error$1(cst_Expected_or_but_found$44,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$137,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function buffer_colon$1(v,lexbuf) + {var ocaml_lex_state=499; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[12],v[1],58); + case 1:return long_error$1(cst_Expected_but_found$44,v,lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$138,v,lexbuf)} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + function finish_buffer_comment$1(v,lexbuf) + {a: + for(;;) + {var ocaml_lex_state=507; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0) + {case 0:return caml_call2(Stdlib_Buffer[16],v[1],cst$80); + case 1:return long_error$1(cst_Unterminated_comment$4,v,lexbuf); + case 2: + caml_call2(Stdlib_Buffer[12],v[1],10); + newline$1(v,lexbuf); + continue a; + default:add_lexeme$1(v[1],lexbuf);continue a} + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}}} + function junk$1(lexbuf) + {var ocaml_lex_state=513; + for(;;) + {var + ocaml_lex_state$0= + caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); + if(0 === ocaml_lex_state$0)return caml_call1(lexeme$1,lexbuf); + caml_call1(lexbuf[1],lexbuf); + var ocaml_lex_state=ocaml_lex_state$0}} + read_junk$1[1] = junk$1; + function read_int8$1(v,lexbuf) + {var n=read_int$1(v,lexbuf); + if(0 <= n && 255 >= n)return caml_call1(Stdlib[29],n); + return lexer_error$1(cst_Int8_overflow$1,v,lexbuf)} + function read_list$1(read_cell,v,lexbuf) + {var _eM_=read_list_rev$1(read_cell,v,lexbuf); + return caml_call1(Stdlib_List[9],_eM_)} + function read_array$1(read_cell,v,lexbuf) + {var l=read_list_rev$1(read_cell,v,lexbuf); + if(! l)return [0]; var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - add_lexeme$1(v[1], lexbuf); newline$1(v, lexbuf); continue a; - case 1: - caml_call2(Stdlib_Buffer[16], v[1], cst$79); - finish_buffer_comment$1(v, lexbuf); - continue a; - case 2: - caml_call2(Stdlib_Buffer[12], v[1], 10); - newline$1(v, lexbuf); - continue a; - case 3: - add_lexeme$1(v[1], lexbuf); continue a; - default: return 0; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function buffer_colon$1(v, lexbuf){ - var ocaml_lex_state = 499; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return caml_call2(Stdlib_Buffer[12], v[1], 58); - case 1: - return long_error$1(cst_Expected_but_found$44, v, lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$138, v, lexbuf); - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - function finish_buffer_comment$1(v, lexbuf){ - a: - for(;;){ - var ocaml_lex_state = 507; - for(;;){ + tl=l[2], + x=l[1], + len=caml_call1(Stdlib_List[1],l), + a=caml_make_vect(len,x), + r=[0,tl], + _eJ_=len - 2 | 0; + if(_eJ_ >= 0) + {var i=_eJ_; + for(;;) + {var _eK_=caml_call1(Stdlib_List[5],r[1]); + caml_check_bound(a,i)[1 + i] = _eK_; + r[1] = caml_call1(Stdlib_List[6],r[1]); + var _eL_=i - 1 | 0; + if(0 !== i){var i=_eL_;continue} + break}} + return a} + function read_fields$1(read_field,init_acc,v) + {return function(_eI_) + {return read_abstract_fields$1(read_ident$1,read_field,init_acc,v,_eI_)}} + function from_lexbuf$1(v,opt,lexbuf) + {if(opt)var sth=opt[1],stream=sth;else var stream=0; + read_space$1(v,lexbuf); + if(read_eof$1(lexbuf))throw End_of_input; + var x=read_json$1(v,lexbuf); + if(1 - stream) + {read_space$1(v,lexbuf); + if(1 - read_eof$1(lexbuf)) + long_error$1(cst_Junk_after_end_of_JSON_val$1,v,lexbuf)} + return x} + function from_string$4(buf,fname,lnum,s) + {try + {var + lexbuf=caml_call2(from_string$3,0,s), + v=init_lexer(buf,fname,lnum,0), + _eG_=from_lexbuf$1(v,0,lexbuf); + return _eG_} + catch(_eH_) + {_eH_ = caml_wrap_exception(_eH_); + if(_eH_ === End_of_input)return json_error(cst_Blank_input_data$3); + throw _eH_}} + function from_channel$4(buf,fname,lnum,ic) + {try + {var + lexbuf=caml_call2(from_channel$3,0,ic), + v=init_lexer(buf,fname,lnum,0), + _eE_=from_lexbuf$1(v,0,lexbuf); + return _eE_} + catch(_eF_) + {_eF_ = caml_wrap_exception(_eF_); + if(_eF_ === End_of_input)return json_error(cst_Blank_input_data$4); + throw _eF_}} + function from_file$1(buf,fname,lnum,file) + {var ic=caml_call1(Stdlib[79],file); + try + {var x=from_channel$4(buf,fname,lnum,ic); + caml_call1(Stdlib[93],ic); + return x} + catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[94],ic);throw e}} + var Finally$1=[248,cst_Yojson_Raw_Finally,caml_fresh_oo_id(0)]; + function seq_from_lexbuf$1(v,opt,lexbuf) + {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; + function f(param) + {try + {var _eD_=[0,from_lexbuf$1(v,stream$1,lexbuf),f];return _eD_} + catch(e) + {e = caml_wrap_exception(e); + if(e === End_of_input){caml_call1(fin,0);return 0} + try + {caml_call1(fin,0)} + catch(fin_e) + {fin_e = caml_wrap_exception(fin_e);throw [0,Finally$1,e,fin_e]} + throw e}} + return f} + function seq_from_string$1(buf,fname,lnum,s) + {var v=init_lexer(buf,fname,lnum,0); + return seq_from_lexbuf$1(v,0,caml_call2(from_string$3,0,s))} + function seq_from_channel$1(buf,fin,fname,lnum,ic) + {var + lexbuf=caml_call2(from_channel$3,0,ic), + v=init_lexer(buf,fname,lnum,0); + return seq_from_lexbuf$1(v,fin,lexbuf)} + function seq_from_file$1(buf,fname,lnum,file) + {var ic=caml_call1(Stdlib[79],file); + function fin(param){return caml_call1(Stdlib[93],ic)} var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0){ - case 0: - return caml_call2(Stdlib_Buffer[16], v[1], cst$80); - case 1: - return long_error$1(cst_Unterminated_comment$4, v, lexbuf); - case 2: - caml_call2(Stdlib_Buffer[12], v[1], 10); - newline$1(v, lexbuf); - continue a; - default: add_lexeme$1(v[1], lexbuf); continue a; - } - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - } - function junk$1(lexbuf){ - var ocaml_lex_state = 513; - for(;;){ - var - ocaml_lex_state$0 = - caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); - if(0 === ocaml_lex_state$0) return caml_call1(lexeme$1, lexbuf); - caml_call1(lexbuf[1], lexbuf); - var ocaml_lex_state = ocaml_lex_state$0; - } - } - read_junk$1[1] = junk$1; - function read_int8$1(v, lexbuf){ - var n = read_int$1(v, lexbuf); - if(0 <= n && 255 >= n) return caml_call1(Stdlib[29], n); - return lexer_error$1(cst_Int8_overflow$1, v, lexbuf); - } - function read_list$1(read_cell, v, lexbuf){ - var _eO_ = read_list_rev$1(read_cell, v, lexbuf); - return caml_call1(Stdlib_List[9], _eO_); - } - function read_array$1(read_cell, v, lexbuf){ - var l = read_list_rev$1(read_cell, v, lexbuf); - if(! l) return [0]; + fname$0=fname || [0,file], + lexbuf=caml_call2(from_channel$3,0,ic), + v=init_lexer(buf,fname$0,lnum,0); + return seq_from_lexbuf$1(v,[0,fin],lexbuf)} + function lineseq_from_channel$1(buf,opt,fname,_ev_,ic) + {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; + if(_ev_)var sth$0=_ev_[1],lnum0=sth$0;else var lnum0=1; + var buf$0=buf || [0,caml_call1(Stdlib_Buffer[1],256)]; + function f(lnum,param) + {try + {var + line=caml_call1(Stdlib[83],ic), + _ey_=lnum + 1 | 0, + _ez_=function(_eC_){return f(_ey_,_eC_)}, + _eA_= + [0,[0,826371656,from_string$4(buf$0,fname,[0,lnum],line)],_ez_]; + return _eA_} + catch(e) + {e = caml_wrap_exception(e); + if(e === Stdlib[12]){caml_call1(fin,0);return 0} + var _ex_=lnum + 1 | 0; + return [0,[0,3458171,e],function(_eB_){return f(_ex_,_eB_)}]}} + return function(_ew_){return f(lnum0,_ew_)}} + function lineseq_from_file$1(buf,fname,lnum,file) + {var ic=caml_call1(Stdlib[79],file); + function fin(param){return caml_call1(Stdlib[93],ic)} + var fname$0=fname || [0,file]; + return lineseq_from_channel$1(buf,[0,fin],fname$0,lnum,ic)} + function prettify$1(std,s) + {return pretty_to_string$2(std,from_string$4(0,0,0,s))} + function compact$1(std,s) + {return to_string$4(0,0,0,0,from_string$4(0,0,0,s))} var - tl = l[2], - x = l[1], - len = caml_call1(Stdlib_List[1], l), - a = caml_make_vect(len, x), - r = [0, tl], - _eL_ = len - 2 | 0; - if(_eL_ >= 0){ - var i = _eL_; - for(;;){ - var _eM_ = caml_call1(Stdlib_List[5], r[1]); - caml_check_bound(a, i)[1 + i] = _eM_; - r[1] = caml_call1(Stdlib_List[6], r[1]); - var _eN_ = i - 1 | 0; - if(0 !== i){var i = _eN_; continue;} - break; - } - } - return a; - } - function read_fields$1(read_field, init_acc, v){ - return function(_eK_){ - return read_abstract_fields$1 - (read_ident$1, read_field, init_acc, v, _eK_);}; - } - function from_lexbuf$1(v, opt, lexbuf){ - if(opt) var sth = opt[1], stream = sth; else var stream = 0; - read_space$1(v, lexbuf); - if(read_eof$1(lexbuf)) throw caml_maybe_attach_backtrace(End_of_input, 1); - var x = read_json$1(v, lexbuf); - if(1 - stream){ - read_space$1(v, lexbuf); - if(1 - read_eof$1(lexbuf)) - long_error$1(cst_Junk_after_end_of_JSON_val$1, v, lexbuf); - } - return x; - } - function from_string$4(buf, fname, lnum, s){ - try{ - var - lexbuf = caml_call2(from_string$3, 0, s), - v = init_lexer(buf, fname, lnum, 0), - _eI_ = from_lexbuf$1(v, 0, lexbuf); - return _eI_; - } - catch(_eJ_){ - var _eH_ = caml_wrap_exception(_eJ_); - if(_eH_ === End_of_input) return json_error(cst_Blank_input_data$3); - throw caml_maybe_attach_backtrace(_eH_, 0); - } - } - function from_channel$4(buf, fname, lnum, ic){ - try{ - var - lexbuf = caml_call2(from_channel$3, 0, ic), - v = init_lexer(buf, fname, lnum, 0), - _eF_ = from_lexbuf$1(v, 0, lexbuf); - return _eF_; - } - catch(_eG_){ - var _eE_ = caml_wrap_exception(_eG_); - if(_eE_ === End_of_input) return json_error(cst_Blank_input_data$4); - throw caml_maybe_attach_backtrace(_eE_, 0); - } - } - function from_file$1(buf, fname, lnum, file){ - var ic = caml_call1(Stdlib[79], file); - try{ - var x = from_channel$4(buf, fname, lnum, ic); - caml_call1(Stdlib[93], ic); - return x; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[94], ic); - throw caml_maybe_attach_backtrace(e, 0); - } - } - var Finally$1 = [248, cst_Yojson_Raw_Finally, caml_fresh_oo_id(0)]; - function seq_from_lexbuf$1(v, opt, lexbuf){ - if(opt) - var sth = opt[1], fin = sth; - else - var fin = function(param){return 0;}; - function f(param){ - try{var _eD_ = [0, from_lexbuf$1(v, stream$1, lexbuf), f]; return _eD_;} - catch(e$0){ - var e = caml_wrap_exception(e$0); - if(e === End_of_input){caml_call1(fin, 0); return 0;} - try{caml_call1(fin, 0);} - catch(fin_e$0){ - var fin_e = caml_wrap_exception(fin_e$0); - throw caml_maybe_attach_backtrace([0, Finally$1, e, fin_e], 1); - } - throw caml_maybe_attach_backtrace(e, 0); - } - } - return f; - } - function seq_from_string$1(buf, fname, lnum, s){ - var v = init_lexer(buf, fname, lnum, 0); - return seq_from_lexbuf$1(v, 0, caml_call2(from_string$3, 0, s)); - } - function seq_from_channel$1(buf, fin, fname, lnum, ic){ - var - lexbuf = caml_call2(from_channel$3, 0, ic), - v = init_lexer(buf, fname, lnum, 0); - return seq_from_lexbuf$1(v, fin, lexbuf); - } - function seq_from_file$1(buf, fname, lnum, file){ - var ic = caml_call1(Stdlib[79], file); - function fin(param){return caml_call1(Stdlib[93], ic);} - var - fname$0 = fname || [0, file], - lexbuf = caml_call2(from_channel$3, 0, ic), - v = init_lexer(buf, fname$0, lnum, 0); - return seq_from_lexbuf$1(v, [0, fin], lexbuf); - } - function lineseq_from_channel$1(buf, opt, fname, _ev_, ic){ - if(opt) - var sth = opt[1], fin = sth; - else - var fin = function(param){return 0;}; - if(_ev_) var sth$0 = _ev_[1], lnum0 = sth$0; else var lnum0 = 1; - var buf$0 = buf || [0, caml_call1(Stdlib_Buffer[1], 256)]; - function f(lnum, param){ - try{ - var - line = caml_call1(Stdlib[83], ic), - _ey_ = lnum + 1 | 0, - _ez_ = function(_eC_){return f(_ey_, _eC_);}, - _eA_ = - [0, - [0, 826371656, from_string$4(buf$0, fname, [0, lnum], line)], - _ez_]; - return _eA_; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - if(e === Stdlib[12]){caml_call1(fin, 0); return 0;} - var _ex_ = lnum + 1 | 0; - return [0, [0, 3458171, e], function(_eB_){return f(_ex_, _eB_);}]; - } - } - return function(_ew_){return f(lnum0, _ew_);}; - } - function lineseq_from_file$1(buf, fname, lnum, file){ - var ic = caml_call1(Stdlib[79], file); - function fin(param){return caml_call1(Stdlib[93], ic);} - var fname$0 = fname || [0, file]; - return lineseq_from_channel$1(buf, [0, fin], fname$0, lnum, ic); - } - function prettify$1(std, s){ - return pretty_to_string$2(std, from_string$4(0, 0, 0, s)); - } - function compact$1(std, s){ - return to_string$4(0, 0, 0, 0, from_string$4(0, 0, 0, s)); - } - var - Yojson = + Yojson= [0, version, Json_error, @@ -42087,7 +41627,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ seq_to_channel$0, seq_to_file$0, seq_to_buffer$0, - write_json$0, + write_t$0, sort$0, write_null$0, write_bool$0, @@ -42099,7 +41639,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ write_string$0, write_assoc$0, write_list$0, - write_json$0, + write_t$0, write_std_json$0, pp$2, show$0, @@ -42122,7 +41662,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ lineseq_from_channel, lineseq_from_file, read_json, - finish_string, + finish_string$1, read_string, read_ident, map_string, @@ -42221,7 +41761,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ seq_to_channel$1, seq_to_file$1, seq_to_buffer$1, - write_json$1, + write_t$1, sort$1, write_null$1, write_bool$1, @@ -42238,7 +41778,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ write_std_tuple$0, write_variant$0, write_std_variant$0, - write_json$1, + write_t$1, write_std_json$1, pretty_print$1, pretty_to_string$1, @@ -42258,7 +41798,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ lineseq_from_channel$0, lineseq_from_file$0, read_json$0, - finish_string$0, + finish_string$3, read_string$0, read_ident$0, map_string$0, @@ -42356,7 +41896,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ seq_to_channel$2, seq_to_file$2, seq_to_buffer$2, - write_json$2, + write_t$2, sort$2, write_null$2, write_bool$2, @@ -42369,7 +41909,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ write_std_tuple$1, write_variant$1, write_std_variant$1, - write_json$2, + write_t$2, write_std_json$2, pretty_print$2, pretty_to_string$2, @@ -42389,7 +41929,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ lineseq_from_channel$1, lineseq_from_file$1, read_json$1, - finish_string$1, + finish_string$5, read_string$1, read_ident$1, map_string$1, @@ -42452,7 +41992,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ seq_to_channel, seq_to_file, seq_to_buffer, - write_json, + write_t, sort, write_null, write_bool, @@ -42471,367 +42011,407 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ write_std_tuple, write_variant, write_std_variant, - write_json, + write_t, write_std_json, pretty_print, pretty_to_string, pretty_to_channel]; - runtime.caml_register_global(1068, Yojson, "Yojson"); - return; - } + runtime.caml_register_global(1068,Yojson,"Yojson"); + return} (globalThis)); -//# 1 "../../.js/default/ppx_yojson_conv_lib/ppx_yojson_conv_lib.cma.js" +//# 1 "../../.js/ppx_yojson_conv_lib/ppx_yojson_conv_lib.cma.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - -//# 32 "../../.js/default/ppx_yojson_conv_lib/ppx_yojson_conv_lib.cma.js" (function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_check_bound = runtime.caml_check_bound, - caml_int_of_string = runtime.caml_int_of_string, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_MoreLabels = global_data.Stdlib__MoreLabels, - Stdlib_ListLabels = global_data.Stdlib__ListLabels, - Stdlib_Lazy = global_data.Stdlib__Lazy, - Stdlib_BytesLabels = global_data.Stdlib__BytesLabels, - Stdlib = global_data.Stdlib, - CamlinternalLazy = global_data.CamlinternalLazy, - Stdlib_Nativeint = global_data.Stdlib__Nativeint, - Stdlib_Int64 = global_data.Stdlib__Int64, - Stdlib_Int32 = global_data.Stdlib__Int32, - Stdlib_StringLabels = global_data.Stdlib__StringLabels, - cst_fun_of_yojson_cannot_conve = - "fun_of_yojson: cannot convert function values", - cst_opaque_of_yojson_cannot_co = - "opaque_of_yojson: cannot convert opaque values", - cst_hashtbl_of_yojson_tuple_li = "hashtbl_of_yojson: tuple list needed", - cst_hashtbl_of_yojson_list_nee = "hashtbl_of_yojson: list needed", - cst_array_of_yojson_list_neede = "array_of_yojson: list needed", - cst_list_of_yojson_list_needed = "list_of_yojson: list needed", - cst_triple_of_yojson_invalid_f = "triple_of_yojson: invalid format", - cst_pair_of_yojson_invalid_for = "pair_of_yojson: invalid format", - cst_nativeint_of_yojson_intege = "nativeint_of_yojson: integer needed", - cst_int64_of_yojson_integer_ne = "int64_of_yojson: integer needed", - cst_int32_of_yojson_integer_ne = "int32_of_yojson: integer needed", - cst_float_of_yojson_float_need = "float_of_yojson: float needed", - cst_int_of_yojson_integer_need = "int_of_yojson: integer needed", - cst_char_of_yojson_string_must = - "char_of_yojson: string must contain one character only", - cst_char_of_yojson_string_of_s = - "char_of_yojson: string of size one needed", - cst_bytes_of_yojson_string_nee = "bytes_of_yojson: string needed", - cst_string_of_yojson_string_ne = "string_of_yojson: string needed", - cst_bool_of_yojson_true_false_ = "bool_of_yojson: true/false needed", - cst_unit_of_yojson_Null_needed = "unit_of_yojson: `Null needed", - _b_ = [0, -976970511, ""], - _a_ = [0, -976970511, ""], - cst_Ppx_yojson_conv_lib_Yojson = - "Ppx_yojson_conv_lib__Yojson_conv.Of_yojson_error"; - function yojson_of_unit(param){return 870828711;} - function yojson_of_bool(b){return [0, 737456202, b];} - function yojson_of_string(str){return [0, -976970511, str];} - function yojson_of_bytes(bytes){ - return [0, -976970511, caml_call1(Stdlib_BytesLabels[6], bytes)]; - } - function yojson_of_char(c){ - return [0, -976970511, caml_call2(Stdlib_StringLabels[1], 1, c)]; - } - function yojson_of_int(n){return [0, 3654863, n];} - function yojson_of_float(n){return [0, 365180284, n];} - function yojson_of_int32(n){ - return [0, -752863768, caml_call1(Stdlib_Int32[14], n)]; - } - function yojson_of_int64(n){ - return [0, -752863768, caml_call1(Stdlib_Int64[14], n)]; - } - function yojson_of_nativeint(n){ - return [0, -752863768, caml_call1(Stdlib_Nativeint[15], n)]; - } - function yojson_of_ref(yojson_of_a, rf){return caml_call1(yojson_of_a, rf[1]); - } - function yojson_of_lazy_t(yojson_of_a, lv){ + (globalThis) + {"use strict"; var - _z_ = runtime.caml_obj_tag(lv), - _A_ = - 250 === _z_ - ? lv[1] - : 246 === _z_ ? caml_call1(CamlinternalLazy[2], lv) : lv; - return caml_call1(yojson_of_a, _A_); - } - function yojson_of_option(yojson_of_a, param){ - if(! param) return 870828711; - var x = param[1]; - return caml_call1(yojson_of_a, x); - } - function yojson_of_pair(yojson_of_a, yojson_of_b, param){ - var b = param[2], a = param[1], _y_ = [0, caml_call1(yojson_of_b, b), 0]; - return [0, 848054398, [0, caml_call1(yojson_of_a, a), _y_]]; - } - function yojson_of_triple(yojson_of_a, yojson_of_b, yojson_of_c, param){ + runtime=globalThis.jsoo_runtime, + caml_check_bound=runtime.caml_check_bound, + caml_fresh_oo_id=runtime.caml_fresh_oo_id, + caml_int_of_string=runtime.caml_int_of_string, + caml_register_global=runtime.caml_register_global, + caml_string_of_jsbytes=runtime.caml_string_of_jsbytes; + function caml_call1(f,a0) + {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} + function caml_call2(f,a0,a1) + {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} + function caml_call3(f,a0,a1,a2) + {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} + function caml_call4(f,a0,a1,a2,a3) + {return f.length == 4 + ?f(a0,a1,a2,a3) + :runtime.caml_call_gen(f,[a0,a1,a2,a3])} var - c = param[3], - b = param[2], - a = param[1], - _w_ = [0, caml_call1(yojson_of_c, c), 0], - _x_ = [0, caml_call1(yojson_of_b, b), _w_]; - return [0, 848054398, [0, caml_call1(yojson_of_a, a), _x_]]; - } - function yojson_of_list(yojson_of_a, lst){ - var _v_ = caml_call2(Stdlib_ListLabels[21], yojson_of_a, lst); - return [0, 848054398, caml_call1(Stdlib_ListLabels[9], _v_)]; - } - function yojson_of_array(yojson_of_a, ar){ - var lst_ref = [0, 0], _s_ = ar.length - 1 - 1 | 0; - if(_s_ >= 0){ - var i = _s_; - for(;;){ - var _t_ = lst_ref[1]; - lst_ref[1] = - [0, caml_call1(yojson_of_a, caml_check_bound(ar, i)[1 + i]), _t_]; - var _u_ = i - 1 | 0; - if(0 !== i){var i = _u_; continue;} - break; - } - } - return [0, 848054398, lst_ref[1]]; - } - function yojson_of_hashtbl(yojson_of_key, yojson_of_val, htbl){ - function coll(k, v, acc){ - var _r_ = [0, caml_call1(yojson_of_val, v), 0]; - return [0, [0, 848054398, [0, caml_call1(yojson_of_key, k), _r_]], acc]; - } - return [0, 848054398, caml_call3(Stdlib_MoreLabels[1][14], coll, htbl, 0)]; - } - function yojson_of_opaque(param){return _a_;} - function yojson_of_fun(param){return _b_;} - var - Of_yojson_error = - [248, cst_Ppx_yojson_conv_lib_Yojson, runtime.caml_fresh_oo_id(0)], - record_check_extra_fields = [0, 1]; - function of_yojson_error_exn(exc, yojson){ - throw caml_maybe_attach_backtrace([0, Of_yojson_error, exc, yojson], 1); - } - function of_yojson_error(what, yojson){ - throw caml_maybe_attach_backtrace - ([0, Of_yojson_error, [0, Stdlib[7], what], yojson], 1); - } - function unit_of_yojson(yojson){ - return 870828711 === yojson - ? 0 - : of_yojson_error(cst_unit_of_yojson_Null_needed, yojson); - } - function bool_of_yojson(yojson){ - if(typeof yojson !== "number" && 737456202 === yojson[1]){var v = yojson[2]; return v;} - return of_yojson_error(cst_bool_of_yojson_true_false_, yojson); - } - function string_of_yojson(yojson){ - if(typeof yojson !== "number" && -976970511 === yojson[1]){var str = yojson[2]; return str;} - return of_yojson_error(cst_string_of_yojson_string_ne, yojson); - } - function bytes_of_yojson(yojson){ - if(typeof yojson !== "number" && -976970511 === yojson[1]){ - var str = yojson[2]; - return caml_call1(Stdlib_BytesLabels[5], str); - } - return of_yojson_error(cst_bytes_of_yojson_string_nee, yojson); - } - function char_of_yojson(yojson){ - if(typeof yojson !== "number" && -976970511 === yojson[1]){ - var str = yojson[2]; - if(1 !== runtime.caml_ml_string_length(str)) - of_yojson_error(cst_char_of_yojson_string_must, yojson); - return runtime.caml_string_get(str, 0); - } - return of_yojson_error(cst_char_of_yojson_string_of_s, yojson); - } - function int_of_yojson(yojson){ - if(typeof yojson !== "number" && 3654863 === yojson[1]){var v = yojson[2]; return v;} - return of_yojson_error(cst_int_of_yojson_integer_need, yojson); - } - function float_of_yojson(yojson){ - if(typeof yojson !== "number"){ - var _q_ = yojson[1]; - if(-752863768 === _q_){ - var str = yojson[2]; - return runtime.caml_float_of_string(str); - } - if(3654863 === _q_){var i = yojson[2]; return i;} - if(365180284 === _q_){var v = yojson[2]; return v;} - } - return of_yojson_error(cst_float_of_yojson_float_need, yojson); - } - function int32_of_yojson(yojson){ - if(typeof yojson !== "number"){ - var _p_ = yojson[1]; - if(-752863768 === _p_){ - var str = yojson[2]; - return caml_int_of_string(str); - } - if(3654863 === _p_){var v = yojson[2]; return v;} - } - return of_yojson_error(cst_int32_of_yojson_integer_ne, yojson); - } - function int64_of_yojson(yojson){ - if(typeof yojson !== "number"){ - var _o_ = yojson[1]; - if(-752863768 === _o_){ - var str = yojson[2]; - return runtime.caml_int64_of_string(str); - } - if(3654863 === _o_){ - var v = yojson[2]; - return runtime.caml_int64_of_int32(v); - } - } - return of_yojson_error(cst_int64_of_yojson_integer_ne, yojson); - } - function nativeint_of_yojson(yojson){ - if(typeof yojson !== "number"){ - var _n_ = yojson[1]; - if(-752863768 === _n_){ - var str = yojson[2]; - return caml_int_of_string(str); - } - if(3654863 === _n_){var v = yojson[2]; return v;} - } - return of_yojson_error(cst_nativeint_of_yojson_intege, yojson); - } - function ref_of_yojson(a_of_yojson, yojson){ - return [0, caml_call1(a_of_yojson, yojson)]; - } - function lazy_t_of_yojson(a_of_yojson, yojson){ - var _m_ = caml_call1(a_of_yojson, yojson); - return caml_call1(Stdlib_Lazy[4], _m_); - } - function option_of_yojson(a_of_yojson, yojson){ - return 870828711 === yojson ? 0 : [0, caml_call1(a_of_yojson, yojson)]; - } - function pair_of_yojson(a_of_yojson, b_of_yojson, yojson){ - if(typeof yojson !== "number" && 848054398 === yojson[1]){ - var _k_ = yojson[2]; - if(_k_){ - var _l_ = _k_[2]; - if(_l_ && ! _l_[2]){ - var - b_yojson = _l_[1], - a_yojson = _k_[1], - a = caml_call1(a_of_yojson, a_yojson), - b = caml_call1(b_of_yojson, b_yojson); - return [0, a, b]; - } - } - } - return of_yojson_error(cst_pair_of_yojson_invalid_for, yojson); - } - function triple_of_yojson(a_of_yojson, b_of_yojson, c_of_yojson, yojson){ - if(typeof yojson !== "number" && 848054398 === yojson[1]){ - var _h_ = yojson[2]; - if(_h_){ - var _i_ = _h_[2]; - if(_i_){ - var _j_ = _i_[2]; - if(_j_ && ! _j_[2]){ + global_data=runtime.caml_get_global_data(), + cst_fun_of_yojson_cannot_conve= + caml_string_of_jsbytes("fun_of_yojson: cannot convert function values"), + cst_opaque_of_yojson_cannot_co= + caml_string_of_jsbytes("opaque_of_yojson: cannot convert opaque values"), + cst_hashtbl_of_yojson_tuple_li= + caml_string_of_jsbytes("hashtbl_of_yojson: tuple list needed"), + cst_hashtbl_of_yojson_list_nee= + caml_string_of_jsbytes("hashtbl_of_yojson: list needed"), + cst_array_of_yojson_list_neede= + caml_string_of_jsbytes("array_of_yojson: list needed"), + cst_list_of_yojson_list_needed= + caml_string_of_jsbytes("list_of_yojson: list needed"), + cst_triple_of_yojson_invalid_f= + caml_string_of_jsbytes("triple_of_yojson: invalid format"), + cst_pair_of_yojson_invalid_for= + caml_string_of_jsbytes("pair_of_yojson: invalid format"), + cst_nativeint_of_yojson_intege= + caml_string_of_jsbytes("nativeint_of_yojson: integer needed"), + cst_int64_of_yojson_integer_ne= + caml_string_of_jsbytes("int64_of_yojson: integer needed"), + cst_int32_of_yojson_integer_ne= + caml_string_of_jsbytes("int32_of_yojson: integer needed"), + cst_float_of_yojson_float_need= + caml_string_of_jsbytes("float_of_yojson: float needed"), + cst_int_of_yojson_integer_need= + caml_string_of_jsbytes("int_of_yojson: integer needed"), + cst_char_of_yojson_string_must= + caml_string_of_jsbytes + ("char_of_yojson: string must contain one character only"), + cst_char_of_yojson_string_of_s= + caml_string_of_jsbytes("char_of_yojson: string of size one needed"), + cst_bytes_of_yojson_string_nee= + caml_string_of_jsbytes("bytes_of_yojson: string needed"), + cst_string_of_yojson_string_ne= + caml_string_of_jsbytes("string_of_yojson: string needed"), + cst_bool_of_yojson_true_false_= + caml_string_of_jsbytes("bool_of_yojson: true/false needed"), + cst_unit_of_yojson_Null_needed= + caml_string_of_jsbytes("unit_of_yojson: `Null needed"), + cst_Ppx_yojson_conv_lib_Yojson= + caml_string_of_jsbytes + ("Ppx_yojson_conv_lib__Yojson_conv.Of_yojson_error"), + cst$0=caml_string_of_jsbytes(" "), + cst_of_yojson_trying_to_conver= + caml_string_of_jsbytes("_of_yojson: trying to convert an empty type"), + cst_of_yojson_the_empty_list_i= + caml_string_of_jsbytes + ("_of_yojson: the empty list is an invalid polymorphic variant"), + cst_of_yojson_a_nested_list_is= + caml_string_of_jsbytes + ("_of_yojson: a nested list is an invalid polymorphic variant"), + cst_of_yojson_polymorphic_vari$0= + caml_string_of_jsbytes + ("_of_yojson: polymorphic variant tag takes an argument"), + cst_of_yojson_polymorphic_vari= + caml_string_of_jsbytes + ("_of_yojson: polymorphic variant does not take arguments"), + cst_of_yojson_no_matching_vari= + caml_string_of_jsbytes("_of_yojson: no matching variant found"), + cst_of_yojson_cannot_convert_v= + caml_string_of_jsbytes + ("_of_yojson: cannot convert values of types resulting from polymorphic record fields"), + cst_of_yojson_list_instead_of_= + caml_string_of_jsbytes + ("_of_yojson: list instead of atom for record expected"), + cst_extra_fields=caml_string_of_jsbytes("extra fields"), + cst_duplicate_fields=caml_string_of_jsbytes("duplicate fields"), + cst=caml_string_of_jsbytes(" "), + cst_of_yojson_unexpected_varia= + caml_string_of_jsbytes("_of_yojson: unexpected variant constructor"), + cst_of_yojson_expected_a_varia$0= + caml_string_of_jsbytes + ("_of_yojson: expected a variant type, saw an empty list"), + cst_of_yojson_expected_a_varia= + caml_string_of_jsbytes + ("_of_yojson: expected a variant type, saw a nested list"), + cst_of_yojson_this_constructor$0= + caml_string_of_jsbytes + ("_of_yojson: this constructor requires arguments"), + cst_of_yojson_this_constructor= + caml_string_of_jsbytes + ("_of_yojson: this constructor does not take arguments"), + cst_Ppx_yojson_conv_lib_Yojson$0= + caml_string_of_jsbytes + ("Ppx_yojson_conv_lib__Yojson_conv_error.No_variant_match"), + Stdlib_MoreLabels=global_data.Stdlib__MoreLabels, + Stdlib_ListLabels=global_data.Stdlib__ListLabels, + Stdlib_Lazy=global_data.Stdlib__Lazy, + Stdlib_BytesLabels=global_data.Stdlib__BytesLabels, + Stdlib=global_data.Stdlib, + CamlinternalLazy=global_data.CamlinternalLazy, + Stdlib_Nativeint=global_data.Stdlib__Nativeint, + Stdlib_Int64=global_data.Stdlib__Int64, + Stdlib_Int32=global_data.Stdlib__Int32, + Stdlib_StringLabels=global_data.Stdlib__StringLabels, + Stdlib_Printf=global_data.Stdlib__Printf, + Ppx_yojson_conv_lib=[0]; + caml_register_global(45,Ppx_yojson_conv_lib,"Ppx_yojson_conv_lib__"); + var Ppx_yojson_conv_lib_Yojsonable=[0]; + caml_register_global + (46, + Ppx_yojson_conv_lib_Yojsonable, + "Ppx_yojson_conv_lib__Yojsonable_intf"); + var + _b_=[0,-976970511,caml_string_of_jsbytes("")], + _a_=[0,-976970511,caml_string_of_jsbytes("")], + _g_= + [0, + [2, + 0, + [11, + caml_string_of_jsbytes("_of_yojson: polymorphic variant tag "), + [3, + 0, + [11,caml_string_of_jsbytes(" has incorrect number of arguments"),0]]]], + caml_string_of_jsbytes + ("%s_of_yojson: polymorphic variant tag %S has incorrect number of arguments")], + _f_= + [0, + [2, + 0, + [11, + caml_string_of_jsbytes + ("_of_yojson: the following record elements were undefined: "), + [2,0,0]]], + caml_string_of_jsbytes + ("%s_of_yojson: the following record elements were undefined: %s")], + _e_= + [0, + [2, + 0, + [11, + caml_string_of_jsbytes("_of_yojson: "), + [2,0,[11,caml_string_of_jsbytes(": "),[2,0,0]]]]], + caml_string_of_jsbytes("%s_of_yojson: %s: %s")], + _d_= + [0, + [2, + 0, + [11, + caml_string_of_jsbytes("_of_yojson: sum tag "), + [3, + 0, + [11,caml_string_of_jsbytes(" has incorrect number of arguments"),0]]]], + caml_string_of_jsbytes + ("%s_of_yojson: sum tag %S has incorrect number of arguments")], + _c_= + [0, + [2, + 0, + [11, + caml_string_of_jsbytes("_of_yojson: tuple of size "), + [4,0,0,0,[11,caml_string_of_jsbytes(" expected"),0]]]], + caml_string_of_jsbytes("%s_of_yojson: tuple of size %d expected")]; + function yojson_of_unit(param){return 870828711} + function yojson_of_bool(b){return [0,737456202,b]} + function yojson_of_string(str){return [0,-976970511,str]} + function yojson_of_bytes(bytes) + {return [0,-976970511,caml_call1(Stdlib_BytesLabels[6],bytes)]} + function yojson_of_char(c) + {return [0,-976970511,caml_call2(Stdlib_StringLabels[1],1,c)]} + function yojson_of_int(n){return [0,3654863,n]} + function yojson_of_float(n){return [0,365180284,n]} + function yojson_of_int32(n) + {return [0,-752863768,caml_call1(Stdlib_Int32[14],n)]} + function yojson_of_int64(n) + {return [0,-752863768,caml_call1(Stdlib_Int64[14],n)]} + function yojson_of_nativeint(n) + {return [0,-752863768,caml_call1(Stdlib_Nativeint[15],n)]} + function yojson_of_ref(yojson_of_a,rf) + {return caml_call1(yojson_of_a,rf[1])} + function yojson_of_lazy_t(yojson_of_a,lv) + {var + _I_=runtime.caml_obj_tag(lv), + _J_=250 === _I_?lv[1]:246 === _I_?caml_call1(CamlinternalLazy[2],lv):lv; + return caml_call1(yojson_of_a,_J_)} + function yojson_of_option(yojson_of_a,param) + {if(! param)return 870828711; + var x=param[1]; + return caml_call1(yojson_of_a,x)} + function yojson_of_pair(yojson_of_a,yojson_of_b,param) + {var b=param[2],a=param[1],_H_=[0,caml_call1(yojson_of_b,b),0]; + return [0,848054398,[0,caml_call1(yojson_of_a,a),_H_]]} + function yojson_of_triple(yojson_of_a,yojson_of_b,yojson_of_c,param) + {var + c=param[3], + b=param[2], + a=param[1], + _F_=[0,caml_call1(yojson_of_c,c),0], + _G_=[0,caml_call1(yojson_of_b,b),_F_]; + return [0,848054398,[0,caml_call1(yojson_of_a,a),_G_]]} + function yojson_of_list(yojson_of_a,lst) + {var _E_=caml_call2(Stdlib_ListLabels[21],yojson_of_a,lst); + return [0,848054398,caml_call1(Stdlib_ListLabels[9],_E_)]} + function yojson_of_array(yojson_of_a,ar) + {var lst_ref=[0,0],_B_=ar.length - 1 - 1 | 0; + if(_B_ >= 0) + {var i=_B_; + for(;;) + {var _C_=lst_ref[1]; + lst_ref[1] + = + [0,caml_call1(yojson_of_a,caml_check_bound(ar,i)[1 + i]),_C_]; + var _D_=i - 1 | 0; + if(0 !== i){var i=_D_;continue} + break}} + return [0,848054398,lst_ref[1]]} + function yojson_of_hashtbl(yojson_of_key,yojson_of_val,htbl) + {function coll(k,v,acc) + {var _A_=[0,caml_call1(yojson_of_val,v),0]; + return [0,[0,848054398,[0,caml_call1(yojson_of_key,k),_A_]],acc]} + return [0,848054398,caml_call3(Stdlib_MoreLabels[1][14],coll,htbl,0)]} + function yojson_of_opaque(param){return _a_} + function yojson_of_fun(param){return _b_} + var + Of_yojson_error=[248,cst_Ppx_yojson_conv_lib_Yojson,caml_fresh_oo_id(0)], + record_check_extra_fields=[0,1]; + function of_yojson_error_exn(exc,yojson) + {throw [0,Of_yojson_error,exc,yojson]} + function of_yojson_error(what,yojson) + {throw [0,Of_yojson_error,[0,Stdlib[7],what],yojson]} + function unit_of_yojson(yojson) + {return 870828711 === yojson + ?0 + :of_yojson_error(cst_unit_of_yojson_Null_needed,yojson)} + function bool_of_yojson(yojson) + {if(typeof yojson !== "number" && 737456202 === yojson[1]) + {var v=yojson[2];return v} + return of_yojson_error(cst_bool_of_yojson_true_false_,yojson)} + function string_of_yojson(yojson) + {if(typeof yojson !== "number" && -976970511 === yojson[1]) + {var str=yojson[2];return str} + return of_yojson_error(cst_string_of_yojson_string_ne,yojson)} + function bytes_of_yojson(yojson) + {if(typeof yojson !== "number" && -976970511 === yojson[1]) + {var str=yojson[2];return caml_call1(Stdlib_BytesLabels[5],str)} + return of_yojson_error(cst_bytes_of_yojson_string_nee,yojson)} + function char_of_yojson(yojson) + {if(typeof yojson !== "number" && -976970511 === yojson[1]) + {var str=yojson[2]; + if(1 !== runtime.caml_ml_string_length(str)) + of_yojson_error(cst_char_of_yojson_string_must,yojson); + return runtime.caml_string_get(str,0)} + return of_yojson_error(cst_char_of_yojson_string_of_s,yojson)} + function int_of_yojson(yojson) + {if(typeof yojson !== "number" && 3654863 === yojson[1]) + {var v=yojson[2];return v} + return of_yojson_error(cst_int_of_yojson_integer_need,yojson)} + function float_of_yojson(yojson) + {if(typeof yojson !== "number") + {var _z_=yojson[1]; + if(-752863768 === _z_) + {var str=yojson[2];return runtime.caml_float_of_string(str)} + if(3654863 === _z_){var i=yojson[2];return i} + if(365180284 === _z_){var v=yojson[2];return v}} + return of_yojson_error(cst_float_of_yojson_float_need,yojson)} + function int32_of_yojson(yojson) + {if(typeof yojson !== "number") + {var _y_=yojson[1]; + if(-752863768 === _y_) + {var str=yojson[2];return caml_int_of_string(str)} + if(3654863 === _y_){var v=yojson[2];return v}} + return of_yojson_error(cst_int32_of_yojson_integer_ne,yojson)} + function int64_of_yojson(yojson) + {if(typeof yojson !== "number") + {var _x_=yojson[1]; + if(-752863768 === _x_) + {var str=yojson[2];return runtime.caml_int64_of_string(str)} + if(3654863 === _x_) + {var v=yojson[2];return runtime.caml_int64_of_int32(v)}} + return of_yojson_error(cst_int64_of_yojson_integer_ne,yojson)} + function nativeint_of_yojson(yojson) + {if(typeof yojson !== "number") + {var _w_=yojson[1]; + if(-752863768 === _w_) + {var str=yojson[2];return caml_int_of_string(str)} + if(3654863 === _w_){var v=yojson[2];return v}} + return of_yojson_error(cst_nativeint_of_yojson_intege,yojson)} + function ref_of_yojson(a_of_yojson,yojson) + {return [0,caml_call1(a_of_yojson,yojson)]} + function lazy_t_of_yojson(a_of_yojson,yojson) + {var _v_=caml_call1(a_of_yojson,yojson); + return caml_call1(Stdlib_Lazy[4],_v_)} + function option_of_yojson(a_of_yojson,yojson) + {return 870828711 === yojson?0:[0,caml_call1(a_of_yojson,yojson)]} + function pair_of_yojson(a_of_yojson,b_of_yojson,yojson) + {if(typeof yojson !== "number" && 848054398 === yojson[1]) + {var _t_=yojson[2]; + if(_t_) + {var _u_=_t_[2]; + if(_u_ && ! _u_[2]) + {var + b_yojson=_u_[1], + a_yojson=_t_[1], + a=caml_call1(a_of_yojson,a_yojson), + b=caml_call1(b_of_yojson,b_yojson); + return [0,a,b]}}} + return of_yojson_error(cst_pair_of_yojson_invalid_for,yojson)} + function triple_of_yojson(a_of_yojson,b_of_yojson,c_of_yojson,yojson) + {if(typeof yojson !== "number" && 848054398 === yojson[1]) + {var _q_=yojson[2]; + if(_q_) + {var _r_=_q_[2]; + if(_r_) + {var _s_=_r_[2]; + if(_s_ && ! _s_[2]) + {var + c_yojson=_s_[1], + b_yojson=_r_[1], + a_yojson=_q_[1], + a=caml_call1(a_of_yojson,a_yojson), + b=caml_call1(b_of_yojson,b_yojson), + c=caml_call1(c_of_yojson,c_yojson); + return [0,a,b,c]}}}} + return of_yojson_error(cst_triple_of_yojson_invalid_f,yojson)} + function list_of_yojson(a_of_yojson,yojson) + {if(typeof yojson !== "number" && 848054398 === yojson[1]) + {var + lst=yojson[2], + rev_lst=caml_call2(Stdlib_ListLabels[21],a_of_yojson,lst); + return caml_call1(Stdlib_ListLabels[9],rev_lst)} + return of_yojson_error(cst_list_of_yojson_list_needed,yojson)} + function array_of_yojson(a_of_yojson,yojson) + {if(typeof yojson !== "number" && 848054398 === yojson[1]) + {var _o_=yojson[2]; + if(! _o_)return [0]; var - c_yojson = _j_[1], - b_yojson = _i_[1], - a_yojson = _h_[1], - a = caml_call1(a_of_yojson, a_yojson), - b = caml_call1(b_of_yojson, b_yojson), - c = caml_call1(c_of_yojson, c_yojson); - return [0, a, b, c]; - } - } - } - } - return of_yojson_error(cst_triple_of_yojson_invalid_f, yojson); - } - function list_of_yojson(a_of_yojson, yojson){ - if(typeof yojson !== "number" && 848054398 === yojson[1]){ - var - lst = yojson[2], - rev_lst = caml_call2(Stdlib_ListLabels[21], a_of_yojson, lst); - return caml_call1(Stdlib_ListLabels[9], rev_lst); - } - return of_yojson_error(cst_list_of_yojson_list_needed, yojson); - } - function array_of_yojson(a_of_yojson, yojson){ - if(typeof yojson !== "number" && 848054398 === yojson[1]){ - var match = yojson[2]; - if(! match) return [0]; - var - t = match[2], - h = match[1], - len = caml_call1(Stdlib_ListLabels[1], t) + 1 | 0, - res = runtime.caml_make_vect(len, caml_call1(a_of_yojson, h)), - i = 1, - param = t; - for(;;){ - if(! param) return res; - var t$0 = param[2], h$0 = param[1], _g_ = caml_call1(a_of_yojson, h$0); - caml_check_bound(res, i)[1 + i] = _g_; - var i$0 = i + 1 | 0, i = i$0, param = t$0; - } - } - return of_yojson_error(cst_array_of_yojson_list_neede, yojson); - } - function hashtbl_of_yojson(key_of_yojson, val_of_yojson, yojson){ - if(typeof yojson !== "number" && 848054398 === yojson[1]){ - var - lst = yojson[2], - htbl = caml_call2(Stdlib_MoreLabels[1][1], 0, 0), - act = - function(param){ - if(typeof param !== "number" && 848054398 === param[1]){ - var _c_ = param[2]; - if(_c_){ - var _d_ = _c_[2]; - if(_d_ && ! _d_[2]){ - var - v_yojson = _d_[1], - k_yojson = _c_[1], - _e_ = caml_call1(val_of_yojson, v_yojson), - _f_ = caml_call1(key_of_yojson, k_yojson); - return caml_call3(Stdlib_MoreLabels[1][5], htbl, _f_, _e_); - } - } - } - return of_yojson_error(cst_hashtbl_of_yojson_tuple_li, yojson); - }; - caml_call2(Stdlib_ListLabels[17], act, lst); - return htbl; - } - return of_yojson_error(cst_hashtbl_of_yojson_list_nee, yojson); - } - function opaque_of_yojson(yojson){ - return of_yojson_error(cst_opaque_of_yojson_cannot_co, yojson); - } - function fun_of_yojson(yojson){ - return of_yojson_error(cst_fun_of_yojson_cannot_conve, yojson); - } - var - Ppx_yojson_conv_lib_Yojson_con = + t=_o_[2], + h=_o_[1], + len=caml_call1(Stdlib_ListLabels[1],t) + 1 | 0, + res=runtime.caml_make_vect(len,caml_call1(a_of_yojson,h)), + i=1, + param=t; + for(;;) + {if(! param)return res; + var t$0=param[2],h$0=param[1],_p_=caml_call1(a_of_yojson,h$0); + caml_check_bound(res,i)[1 + i] = _p_; + var i$0=i + 1 | 0,i=i$0,param=t$0}} + return of_yojson_error(cst_array_of_yojson_list_neede,yojson)} + function hashtbl_of_yojson(key_of_yojson,val_of_yojson,yojson) + {if(typeof yojson !== "number" && 848054398 === yojson[1]) + {var + lst=yojson[2], + htbl=caml_call2(Stdlib_MoreLabels[1][1],0,0), + act= + function(param) + {if(typeof param !== "number" && 848054398 === param[1]) + {var _k_=param[2]; + if(_k_) + {var _l_=_k_[2]; + if(_l_ && ! _l_[2]) + {var + v_yojson=_l_[1], + k_yojson=_k_[1], + _m_=caml_call1(val_of_yojson,v_yojson), + _n_=caml_call1(key_of_yojson,k_yojson); + return caml_call3(Stdlib_MoreLabels[1][5],htbl,_n_,_m_)}}} + return of_yojson_error(cst_hashtbl_of_yojson_tuple_li,yojson)}; + caml_call2(Stdlib_ListLabels[17],act,lst); + return htbl} + return of_yojson_error(cst_hashtbl_of_yojson_list_nee,yojson)} + function opaque_of_yojson(yojson) + {return of_yojson_error(cst_opaque_of_yojson_cannot_co,yojson)} + function fun_of_yojson(yojson) + {return of_yojson_error(cst_fun_of_yojson_cannot_conve,yojson)} + var + Ppx_yojson_conv_lib_Yojson_con= [0, yojson_of_unit, yojson_of_bool, @@ -42910,369 +42490,585 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ list_of_yojson, array_of_yojson, hashtbl_of_yojson]]; - runtime.caml_register_global - (32, Ppx_yojson_conv_lib_Yojson_con, "Ppx_yojson_conv_lib__Yojson_conv"); - return; - } + caml_register_global + (57,Ppx_yojson_conv_lib_Yojson_con,"Ppx_yojson_conv_lib__Yojson_conv"); + var sprintf=Stdlib_Printf[4]; + function tuple_of_size_n_expected(loc,n,yojson) + {return of_yojson_error(caml_call3(sprintf,_c_,loc,n),yojson)} + function stag_no_args(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_this_constructor), + yojson)} + function stag_incorrect_n_args(loc,tag,yojson) + {var msg=caml_call3(sprintf,_d_,loc,tag); + return of_yojson_error(msg,yojson)} + function stag_takes_args(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_this_constructor$0), + yojson)} + function nested_list_invalid_sum(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_expected_a_varia), + yojson)} + function empty_list_invalid_sum(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_expected_a_varia$0), + yojson)} + function unexpected_stag(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_unexpected_varia), + yojson)} + function record_superfluous_fields(what,loc,rev_fld_names,yojson) + {var + _j_=caml_call1(Stdlib_ListLabels[9],rev_fld_names), + fld_names_str=caml_call2(Stdlib_StringLabels[6],cst,_j_), + msg=caml_call4(sprintf,_e_,loc,what,fld_names_str); + return of_yojson_error(msg,yojson)} + function record_duplicate_fields(loc,rev_fld_names,yojson) + {return record_superfluous_fields + (cst_duplicate_fields,loc,rev_fld_names,yojson)} + function record_extra_fields(loc,rev_fld_names,yojson) + {return record_superfluous_fields + (cst_extra_fields,loc,rev_fld_names,yojson)} + function record_get_undefined_loop(fields,param) + {var fields$0=fields,param$0=param; + for(;;) + {if(! param$0) + {var _i_=caml_call1(Stdlib_ListLabels[9],fields$0); + return caml_call2(Stdlib_StringLabels[6],cst$0,_i_)} + var _h_=param$0[1]; + if(_h_[1]) + {var + param$1=param$0[2], + field=_h_[2], + fields$1=[0,field,fields$0], + fields$0=fields$1, + param$0=param$1; + continue} + var param$2=param$0[2],param$0=param$2}} + function record_undefined_elements(loc,yojson,lst) + {var + undefined$0=record_get_undefined_loop(0,lst), + msg=caml_call3(sprintf,_f_,loc,undefined$0); + return of_yojson_error(msg,yojson)} + function record_list_instead_atom(loc,yojson) + {var msg=caml_call2(Stdlib[28],loc,cst_of_yojson_list_instead_of_); + return of_yojson_error(msg,yojson)} + function record_poly_field_value(loc,yojson) + {var msg=caml_call2(Stdlib[28],loc,cst_of_yojson_cannot_convert_v); + return of_yojson_error(msg,yojson)} + var + No_variant_match= + [248,cst_Ppx_yojson_conv_lib_Yojson$0,caml_fresh_oo_id(0)]; + function no_variant_match(param){throw No_variant_match} + function no_matching_variant_found(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_no_matching_vari), + yojson)} + function ptag_no_args(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_polymorphic_vari), + yojson)} + function ptag_incorrect_n_args(loc,cnstr,yojson) + {var msg=caml_call3(sprintf,_g_,loc,cnstr); + return of_yojson_error(msg,yojson)} + function ptag_takes_args(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_polymorphic_vari$0), + yojson)} + function nested_list_invalid_poly_var(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_a_nested_list_is), + yojson)} + function empty_list_invalid_poly_var(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_the_empty_list_i), + yojson)} + function empty_type(loc,yojson) + {return of_yojson_error + (caml_call2(Stdlib[28],loc,cst_of_yojson_trying_to_conver), + yojson)} + var + Ppx_yojson_conv_lib_Yojson_con$0= + [0, + sprintf, + tuple_of_size_n_expected, + stag_no_args, + stag_incorrect_n_args, + stag_takes_args, + nested_list_invalid_sum, + empty_list_invalid_sum, + unexpected_stag, + record_superfluous_fields, + record_duplicate_fields, + record_extra_fields, + record_get_undefined_loop, + record_undefined_elements, + record_list_instead_atom, + record_poly_field_value, + No_variant_match, + no_variant_match, + no_matching_variant_found, + ptag_no_args, + ptag_incorrect_n_args, + ptag_takes_args, + nested_list_invalid_poly_var, + empty_list_invalid_poly_var, + empty_type]; + caml_register_global + (59, + Ppx_yojson_conv_lib_Yojson_con$0, + "Ppx_yojson_conv_lib__Yojson_conv_error"); + var Option=[0]; + function symbol(x){return x[1]} + var Ppx_yojson_conv_lib$0=[0,Option,symbol]; + caml_register_global(60,Ppx_yojson_conv_lib$0,"Ppx_yojson_conv_lib"); + return} (globalThis)); -//# 1 "../../runtimes/ocaml/.runtime_ocaml.objs/jsoo/default/runtime_ocaml.cma.js" +//# 1 "../../runtimes/ocaml/.runtime_ocaml.objs/runtime_ocaml.cma.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - -//# 16 "../../runtimes/ocaml/.runtime_ocaml.objs/jsoo/default/runtime_ocaml.cma.js" (function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$24 = "", - cst$23 = " :=", - cst$26 = " ])", - cst_a = "%a", - cst_s = "%s", - cst$22 = "()", - cst$25 = ", ", - cst$18 = ".", - cst$20 = ": ", - cst_hov_1 = "", - cst_hov_2 = "", - cst_hv_1 = "", - cst_hv_2 = "", - cst$19 = "@ ", - cst$21 = "@,", - cst_1_2 = "@;<1 -2>", - cst_BeginCall = "BeginCall([ ", - cst_EndCall = "EndCall([ ", - cst_Invalid_function_call$1 = "Invalid function call ([ ", - cst_body$2 = "body", - cst_body$1 = "body:", - cst_fun = "fun", - cst_name$1 = "name", - cst_no_pos = "no_pos", - cst_output$0 = "output", - caml_check_bound = runtime.caml_check_bound, - caml_equal = runtime.caml_equal, - caml_fresh_oo_id = runtime.caml_fresh_oo_id, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - function caml_call6(f, a0, a1, a2, a3, a4, a5){ - return (f.l >= 0 ? f.l : f.l = f.length) == 6 - ? f(a0, a1, a2, a3, a4, a5) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5]); - } - function caml_call7(f, a0, a1, a2, a3, a4, a5, a6){ - return (f.l >= 0 ? f.l : f.l = f.length) == 7 - ? f(a0, a1, a2, a3, a4, a5, a6) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6]); - } - function caml_call9(f, a0, a1, a2, a3, a4, a5, a6, a7, a8){ - return (f.l >= 0 ? f.l : f.l = f.length) == 9 - ? f(a0, a1, a2, a3, a4, a5, a6, a7, a8) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6, a7, a8]); - } - var - global_data = runtime.caml_get_global_data(), - cst$3 = cst$18, - cst$4 = cst$18, - partial = + (globalThis) + {"use strict"; + var + runtime=globalThis.jsoo_runtime, + caml_check_bound=runtime.caml_check_bound, + caml_equal=runtime.caml_equal, + caml_fresh_oo_id=runtime.caml_fresh_oo_id, + caml_register_global=runtime.caml_register_global, + caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, + caml_wrap_exception=runtime.caml_wrap_exception; + function caml_call1(f,a0) + {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} + function caml_call2(f,a0,a1) + {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} + function caml_call3(f,a0,a1,a2) + {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} + function caml_call4(f,a0,a1,a2,a3) + {return f.length == 4 + ?f(a0,a1,a2,a3) + :runtime.caml_call_gen(f,[a0,a1,a2,a3])} + function caml_call5(f,a0,a1,a2,a3,a4) + {return f.length == 5 + ?f(a0,a1,a2,a3,a4) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} + function caml_call6(f,a0,a1,a2,a3,a4,a5) + {return f.length == 6 + ?f(a0,a1,a2,a3,a4,a5) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5])} + function caml_call7(f,a0,a1,a2,a3,a4,a5,a6) + {return f.length == 7 + ?f(a0,a1,a2,a3,a4,a5,a6) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6])} + function caml_call9(f,a0,a1,a2,a3,a4,a5,a6,a7,a8) + {return f.length == 9 + ?f(a0,a1,a2,a3,a4,a5,a6,a7,a8) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6,a7,a8])} + var + global_data=runtime.caml_get_global_data(), + cst$3=caml_string_of_jsbytes("."), + cst$4=caml_string_of_jsbytes("."), + partial= [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [18, - [1, [0, [11, cst_hv_2, 0], cst_hv_2]], + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], [12, 91, [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [15, - [17, [0, cst_1_2, 1, -2], [12, 93, [17, 0, [12, 32, [17, 0, 0]]]]]]]]]], - cst$5 = cst$18, - cst$6 = "; ", - cst$7 = cst$18, - partial$0 = [11, cst_hv_1, 0], - partial$1 = + [17, + [0,caml_string_of_jsbytes("@;<1 -2>"),1,-2], + [12,93,[17,0,[12,32,[17,0,0]]]]]]]]]], + cst$5=caml_string_of_jsbytes("."), + cst$6=caml_string_of_jsbytes("; "), + cst$7=caml_string_of_jsbytes("."), + partial$0=[11,caml_string_of_jsbytes(""),0], + partial$1= [12, 91, [17, - [0, cst$21, 0, 0], + [0,caml_string_of_jsbytes("@,"),0,0], [15, [12, 93, [17, 0, [17, - [0, cst$21, 0, 0], - [17, 0, [17, [0, cst$21, 0, 0], [12, 125, 0]]]]]]]]], - partial$2 = [0, cst$19, 1, 0], - partial$3 = + [0,caml_string_of_jsbytes("@,"),0,0], + [17,0,[17,[0,caml_string_of_jsbytes("@,"),0,0],[12,125,0]]]]]]]]], + partial$2=[0,caml_string_of_jsbytes("@ "),1,0], + partial$3= [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [15, [12, 44, [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [11, - "output:", + caml_string_of_jsbytes("output:"), [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [15, [12, 44, [17, - [0, cst$19, 1, 0], - [11, cst_body$1, [17, partial$2, partial$1]]]]]]]]]]], - cst$8 = cst$18, - partial$4 = [11, cst_hv_1, 0], - partial$5 = + [0,caml_string_of_jsbytes("@ "),1,0], + [11,caml_string_of_jsbytes("body:"),[17,partial$2,partial$1]]]]]]]]]]], + cst$8=caml_string_of_jsbytes("."), + partial$4=[11,caml_string_of_jsbytes(""),0], + partial$5= [12, 91, [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [15, [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [12, 93, - [17, 0, [17, 0, [17, 0, [17, [0, cst$21, 0, 0], [12, 125, 0]]]]]]]]]], - partial$6 = [1, [0, [11, cst_hv_2, 0], cst_hv_2]], - partial$7 = + [17, + 0, + [17,0,[17,0,[17,[0,caml_string_of_jsbytes("@,"),0,0],[12,125,0]]]]]]]]]], + partial$6= + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + partial$7= [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [18, - [1, [0, [11, cst_hv_2, 0], cst_hv_2]], + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], [12, 91, [17, - [0, cst$21, 0, 0], + [0,caml_string_of_jsbytes("@,"),0,0], [15, [17, 0, [11, - "],", + caml_string_of_jsbytes("],"), [17, - [0, cst$21, 0, 0], + [0,caml_string_of_jsbytes("@,"),0,0], [11, - cst_body$1, - [17, [0, cst$19, 1, 0], [18, partial$6, partial$5]]]]]]]]]]], - cst$14 = "]", - cst$15 = "[", - cst$16 = cst$25, - cst$17 = cst$25, - cst$9 = cst$26, - cst$10 = cst$25, - cst$11 = cst$26, - cst$12 = cst$25, - cst$13 = cst$25, - partial$8 = [12, 41, 0], - cst = "\xe2\x80\xa6", - cst$2 = cst$24, - cst$1 = "-", - cst$0 = cst$24, - Stdlib_String = global_data.Stdlib__String, - Stdlib_Format = global_data.Stdlib__Format, - Stdlib_Array = global_data.Stdlib__Array, - Stdlib_Option = global_data.Stdlib__Option, - Stdlib = global_data.Stdlib, - Dates_calc_Dates = global_data.Dates_calc__Dates, - Q = global_data.Q, - Z = global_data.Z, - Stdlib_List = global_data.Stdlib__List, - Assert_failure = global_data.Assert_failure, - Stdlib_ListLabels = global_data.Stdlib__ListLabels, - Stdlib_Printf = global_data.Stdlib__Printf, - Yojson = global_data.Yojson, - Ppx_yojson_conv_lib_Yojson_con = + caml_string_of_jsbytes("body:"), + [17, + [0,caml_string_of_jsbytes("@ "),1,0], + [18,partial$6,partial$5]]]]]]]]]]], + cst_unreachable_due_to_the_is_= + caml_string_of_jsbytes("unreachable due to the [is_subscope_call] test"), + cst_unreachable_due_to_the_is_$0= + caml_string_of_jsbytes + ("unreachable due to the [is_subscope_input_var_def] test"), + cst$14=caml_string_of_jsbytes("]"), + cst$15=caml_string_of_jsbytes("["), + cst_expected_variable_definiti= + caml_string_of_jsbytes + (" ]): expected variable definition (function output), found: "), + cst$16=caml_string_of_jsbytes(", "), + cst_Invalid_function_call= + caml_string_of_jsbytes("Invalid function call ([ "), + cst_expected_variable_definiti$0= + caml_string_of_jsbytes + (" ]): expected variable definition (function output), found: end of tokens"), + cst$17=caml_string_of_jsbytes(", "), + cst_Invalid_function_call$0= + caml_string_of_jsbytes("Invalid function call ([ "), + cst_Unexpected_event=caml_string_of_jsbytes("Unexpected event: "), + cst_Missing_function_output_va= + caml_string_of_jsbytes("Missing function output variable definition."), + cst_Invalid_start_of_function_= + caml_string_of_jsbytes("Invalid start of function call."), + cst_input=caml_string_of_jsbytes("input"), + cst_output$0=caml_string_of_jsbytes("output"), + cst$9=caml_string_of_jsbytes(" ])"), + cst$10=caml_string_of_jsbytes(", "), + cst$11=caml_string_of_jsbytes(" ])"), + cst$12=caml_string_of_jsbytes(", "), + cst$13=caml_string_of_jsbytes(", "), + partial$8=[12,41,0], + cst_body=caml_string_of_jsbytes("body"), + cst_inputs=caml_string_of_jsbytes("inputs"), + cst_name=caml_string_of_jsbytes("name"), + cst_fun_calls=caml_string_of_jsbytes("fun_calls"), + cst_value=caml_string_of_jsbytes("value"), + cst_name$0=caml_string_of_jsbytes("name"), + cst_pos=caml_string_of_jsbytes("pos"), + cst_output=caml_string_of_jsbytes("output"), + cst_body$0=caml_string_of_jsbytes("body"), + cst_fun_inputs=caml_string_of_jsbytes("fun_inputs"), + cst_fun_name=caml_string_of_jsbytes("fun_name"), + cst=caml_string_of_jsbytes("\xe2\x80\xa6"), + cst$2=caml_string_of_jsbytes(""), + cst$1=caml_string_of_jsbytes("-"), + cst$0=caml_string_of_jsbytes(""), + cst_law_headings=caml_string_of_jsbytes("law_headings"), + cst_end_column=caml_string_of_jsbytes("end_column"), + cst_end_line=caml_string_of_jsbytes("end_line"), + cst_start_column=caml_string_of_jsbytes("start_column"), + cst_start_line=caml_string_of_jsbytes("start_line"), + cst_filename=caml_string_of_jsbytes("filename"), + cst_Runtime_ocaml_Runtime_Empt= + caml_string_of_jsbytes("Runtime_ocaml.Runtime.EmptyError"), + cst_Runtime_ocaml_Runtime_Asse= + caml_string_of_jsbytes("Runtime_ocaml.Runtime.AssertionFailed"), + cst_Runtime_ocaml_Runtime_Conf= + caml_string_of_jsbytes("Runtime_ocaml.Runtime.ConflictError"), + cst_Runtime_ocaml_Runtime_Unco= + caml_string_of_jsbytes("Runtime_ocaml.Runtime.UncomparableDurations"), + cst_Runtime_ocaml_Runtime_Indi= + caml_string_of_jsbytes("Runtime_ocaml.Runtime.IndivisibleDurations"), + cst_Runtime_ocaml_Runtime_Impo= + caml_string_of_jsbytes("Runtime_ocaml.Runtime.ImpossibleDate"), + cst_Runtime_ocaml_Runtime_NoVa= + caml_string_of_jsbytes("Runtime_ocaml.Runtime.NoValueProvided"), + Stdlib_String=global_data.Stdlib__String, + Stdlib_Format=global_data.Stdlib__Format, + Stdlib_Array=global_data.Stdlib__Array, + Stdlib_Option=global_data.Stdlib__Option, + Stdlib=global_data.Stdlib, + Dates_calc_Dates=global_data.Dates_calc__Dates, + Q=global_data.Q, + Z=global_data.Z, + Stdlib_List=global_data.Stdlib__List, + Assert_failure=global_data.Assert_failure, + Stdlib_ListLabels=global_data.Stdlib__ListLabels, + Stdlib_Printf=global_data.Stdlib__Printf, + Yojson=global_data.Yojson, + Ppx_yojson_conv_lib_Yojson_con= global_data.Ppx_yojson_conv_lib__Yojson_conv, - Stdlib_Map = global_data.Stdlib__Map, - _u_ = + Stdlib_Map=global_data.Stdlib__Map, + Runtime_ocaml=[0]; + caml_register_global(115,Runtime_ocaml,"Runtime_ocaml"); + var + _u_= [0, [18, - [1, [0, [11, cst_hov_2, 0], cst_hov_2]], + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], [11, - "@ %s:@ %a@]"], - _v_ = + [0,caml_string_of_jsbytes("@ "),1,0], + [2, + 0, + [12,58,[17,[0,caml_string_of_jsbytes("@ "),1,0],[15,[17,0,0]]]]]]]]]], + caml_string_of_jsbytes("@[@ %s:@ %a@]")], + _v_= [0, - [2, 0, [11, " line ", [4, 0, 0, 0, [11, " to ", [4, 0, 0, 0, 0]]]]], - "%s line %d to %d"], - _w_ = [0, [11, cst_no_pos, 0], cst_no_pos], - _x_ = [0, [17, [0, cst$19, 1, 0], 0], cst$19], - _y_ = [0, [12, 44, [17, [0, cst$19, 1, 0], 0]], ",@ "], - _z_ = + [2, + 0, + [11, + caml_string_of_jsbytes(" line "), + [4,0,0,0,[11,caml_string_of_jsbytes(" to "),[4,0,0,0,0]]]]], + caml_string_of_jsbytes("%s line %d to %d")], + _w_= + [0, + [11,caml_string_of_jsbytes("no_pos"),0], + caml_string_of_jsbytes("no_pos")], + _x_= + [0, + [17,[0,caml_string_of_jsbytes("@ "),1,0],0], + caml_string_of_jsbytes("@ ")], + _y_= + [0, + [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(",@ ")], + _z_= [0, [18, - [1, [0, [11, cst_hov_2, 0], cst_hov_2]], + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], [11, - "", + caml_string_of_jsbytes(""), [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [2, 0, [11, - cst$20, + caml_string_of_jsbytes(": "), [15, [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [11, - "computed from", - [17, [0, cst$19, 1, 0], [12, 58, partial]]]]]]]]]], - "@[@ %s: %a@ computed from@ :@ @[[@ %a@;<1 -2>]@] @]"], - _M_ = [0, [12, 59, [17, [0, cst$19, 1, 0], 0]], ";@ "], - _K_ = [0, [12, 44, [17, [0, cst$21, 0, 0], 0]], ",@,"], - _J_ = [0, [2, 0, [11, cst$20, [15, 0]]], "%s: %a"], - _A_ = [0, [11, cst$22, 0], cst$22], - _B_ = [0, [11, cst_fun, 0], cst_fun], - _C_ = [0, [9, 0, 0], "%b"], - _D_ = [0, [2, 0, [11, "\xe2\x82\xac", 0]], "%s\xe2\x82\xac"], - _E_ = [0, [4, 0, 0, 0, 0], "%d"], - _F_ = [0, [2, 0, 0], cst_s], - _G_ = [0, [2, 0, 0], cst_s], - _H_ = [0, [2, 0, 0], cst_s], - _I_ = [0, [2, 0, 0], cst_s], - _L_ = + caml_string_of_jsbytes("computed from"), + [17,[0,caml_string_of_jsbytes("@ "),1,0],[12,58,partial]]]]]]]]]], + caml_string_of_jsbytes + ("@[@ %s: %a@ computed from@ :@ @[[@ %a@;<1 -2>]@] @]")], + _M_= + [0, + [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], + caml_string_of_jsbytes(";@ ")], + _K_= + [0, + [12,44,[17,[0,caml_string_of_jsbytes("@,"),0,0],0]], + caml_string_of_jsbytes(",@,")], + _J_= + [0, + [2,0,[11,caml_string_of_jsbytes(": "),[15,0]]], + caml_string_of_jsbytes("%s: %a")], + _A_=[0,[11,caml_string_of_jsbytes("()"),0],caml_string_of_jsbytes("()")], + _B_= + [0,[11,caml_string_of_jsbytes("fun"),0],caml_string_of_jsbytes("fun")], + _C_=[0,[9,0,0],caml_string_of_jsbytes("%b")], + _D_= + [0, + [2,0,[11,caml_string_of_jsbytes("\xe2\x82\xac"),0]], + caml_string_of_jsbytes("%s\xe2\x82\xac")], + _E_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], + _F_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _G_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _H_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _I_=[0,[2,0,0],caml_string_of_jsbytes("%s")], + _L_= [0, [18, - [1, [0, [11, cst_hv_2, 0], cst_hv_2]], + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], [2, 0, [11, - " = {", + caml_string_of_jsbytes(" = {"), [17, - [0, cst$19, 1, 0], - [15, [17, [0, cst_1_2, 1, -2], [12, 125, [17, 0, 0]]]]]]]], - "@[%s = {@ %a@;<1 -2>}@]"], - _N_ = + [0,caml_string_of_jsbytes("@ "),1,0], + [15, + [17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,[17,0,0]]]]]]]], + caml_string_of_jsbytes("@[%s = {@ %a@;<1 -2>}@]")], + _N_= [0, [18, - [1, [0, [11, cst_hv_2, 0], cst_hv_2]], + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], [12, 91, [17, - [0, cst$19, 1, 0], - [15, [17, [0, cst_1_2, 1, -2], [12, 93, [17, 0, 0]]]]]]], - "@[[@ %a@;<1 -2>]@]"], - _O_ = [0, [15, 0], cst_a], - _P_ = [0, [15, 0], cst_a], - _Q_ = [0, 0], - _R_ = + [0,caml_string_of_jsbytes("@ "),1,0], + [15, + [17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,[17,0,0]]]]]]], + caml_string_of_jsbytes("@[[@ %a@;<1 -2>]@]")], + _O_=[0,[15,0],caml_string_of_jsbytes("%a")], + _P_=[0,[15,0],caml_string_of_jsbytes("%a")], + _Q_=[0,0], + _R_= [0, [18, - [1, [0, [11, cst_hov_1, 0], cst_hov_1]], + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], [11, - "", + caml_string_of_jsbytes(""), [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [2, 0, [11, - cst$23, + caml_string_of_jsbytes(" :="), [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [12, 123, [18, - [1, [0, partial$0, cst_hv_1]], - [17, [0, cst$19, 1, 0], [11, "input:", partial$3]]]]]]]]]], - "@[@ %s :=@ {@[@ input:@ %a,@ output:@ %a,@ body:@ [@,%a]@]@,@]@,}"], - _S_ = [0, 0], - _T_ = + [1,[0,partial$0,caml_string_of_jsbytes("")]], + [17, + [0,caml_string_of_jsbytes("@ "),1,0], + [11,caml_string_of_jsbytes("input:"),partial$3]]]]]]]]]], + caml_string_of_jsbytes + ("@[@ %s :=@ {@[@ input:@ %a,@ output:@ %a,@ body:@ [@,%a]@]@,@]@,}")], + _S_=[0,0], + _T_= [0, [18, - [1, [0, [11, cst_hv_2, 0], cst_hv_2]], + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], [11, - "", + caml_string_of_jsbytes(""), [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [2, 0, [11, - cst$23, + caml_string_of_jsbytes(" :="), [17, - [0, cst$19, 1, 0], + [0,caml_string_of_jsbytes("@ "),1,0], [12, 123, [18, - [1, [0, partial$4, cst_hv_1]], - [17, [0, cst$21, 0, 0], [11, "inputs:", partial$7]]]]]]]]]], - "@[@ %s :=@ {@[@,inputs:@ @[[@,%a@]],@,body:@ @[[@ %a@ ]@]@]@]@,}"], - _U_ = [0, [17, [0, cst$19, 1, 0], 0], cst$19], - _V_ = [0, [17, 4, 0], "@."], - _X_ = [0, 0, cst$24], - _W_ = + [1,[0,partial$4,caml_string_of_jsbytes("")]], + [17, + [0,caml_string_of_jsbytes("@,"),0,0], + [11,caml_string_of_jsbytes("inputs:"),partial$7]]]]]]]]]], + caml_string_of_jsbytes + ("@[@ %s :=@ {@[@,inputs:@ @[[@,%a@]],@,body:@ @[[@ %a@ ]@]@]@]@,}")], + _U_= [0, - [18, [1, [0, [11, cst_hv_1, 0], cst_hv_1]], [15, [17, 0, 0]]], - "@[%a@]"], - _ae_ = [0, 0], - _af_ = [0, 0], - _ag_ = [0, 0], - _ab_ = [0, 0, 0], - cst_unreachable_due_to_the_is_ = - "unreachable due to the [is_subscope_call] test", - cst_unreachable_due_to_the_is_$0 = - "unreachable due to the [is_subscope_input_var_def] test", - cst_expected_variable_definiti = - " ]): expected variable definition (function output), found: ", - cst_Invalid_function_call = cst_Invalid_function_call$1, - cst_expected_variable_definiti$0 = - " ]): expected variable definition (function output), found: end of tokens", - cst_Invalid_function_call$0 = cst_Invalid_function_call$1, - cst_Unexpected_event = "Unexpected event: ", - _ac_ = [0, "runtimes/ocaml/runtime.ml", 513, 19], - cst_Missing_function_output_va = - "Missing function output variable definition.", - cst_Invalid_start_of_function_ = "Invalid start of function call.", - cst_input = "input", - _ad_ = + [17,[0,caml_string_of_jsbytes("@ "),1,0],0], + caml_string_of_jsbytes("@ ")], + _V_=[0,[17,4,0],caml_string_of_jsbytes("@.")], + _X_=[0,0,caml_string_of_jsbytes("")], + _W_= + [0, + [18, + [1, + [0, + [11,caml_string_of_jsbytes(""),0], + caml_string_of_jsbytes("")]], + [15,[17,0,0]]], + caml_string_of_jsbytes("@[%a@]")], + _ae_=[0,0], + _af_=[0,0], + _ag_=[0,0], + _ab_=[0,0,0], + _ac_=[0,caml_string_of_jsbytes("runtimes/ocaml/runtime.ml"),513,19], + _ad_= [0, [11, - "An error occurred while parsing raw events: ", - [2, 0, [12, 10, 0]]], - "An error occurred while parsing raw events: %s\n"], - _Z_ = [0, [11, cst_BeginCall, 0], cst_BeginCall], - ___ = [0, [11, cst_EndCall, 0], cst_EndCall], - _$_ = + caml_string_of_jsbytes("An error occurred while parsing raw events: "), + [2,0,[12,10,0]]], + caml_string_of_jsbytes + ("An error occurred while parsing raw events: %s\n")], + _Z_= + [0, + [11,caml_string_of_jsbytes("BeginCall([ "),0], + caml_string_of_jsbytes("BeginCall([ ")], + ___= + [0, + [11,caml_string_of_jsbytes("EndCall([ "),0], + caml_string_of_jsbytes("EndCall([ ")], + _$_= [0, [11, - "VariableDefinition([ ", - [2, 0, [11, " ], ", [2, 0, [12, 41, 0]]]]], - "VariableDefinition([ %s ], %s)"], - _aa_ = + caml_string_of_jsbytes("VariableDefinition([ "), + [2,0,[11,caml_string_of_jsbytes(" ], "),[2,0,[12,41,0]]]]], + caml_string_of_jsbytes("VariableDefinition([ %s ], %s)")], + _aa_= [0, [11, - "DecisionTaken(", + caml_string_of_jsbytes("DecisionTaken("), [2, 0, [12, @@ -43281,1179 +43077,965 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ 0, 0, 0, - [12, - 46, - [4, - 0, - 0, - 0, - [12, 45, [4, 0, 0, 0, [12, 46, [4, 0, 0, 0, partial$8]]]]]]]]]], - "DecisionTaken(%s:%d.%d-%d.%d)"], - _r_ = [0, -976970511, "VarComputation"], - _s_ = [0, -976970511, "FunCall"], - cst_body = cst_body$2, - cst_inputs = "inputs", - cst_name = cst_name$1, - _t_ = [0, -976970511, "SubScopeCall"], - cst_fun_calls = "fun_calls", - cst_value = "value", - cst_name$0 = cst_name$1, - cst_pos = "pos", - cst_output = cst_output$0, - cst_body$0 = cst_body$2, - cst_fun_inputs = "fun_inputs", - cst_fun_name = "fun_name", - _g_ = [0, 848054398, [0, [0, -976970511, "Unit"], 0]], - _h_ = [0, 848054398, [0, [0, -976970511, "Unembeddable"], 0]], - _i_ = [0, -976970511, "Bool"], - _j_ = [0, -976970511, "Money"], - _k_ = [0, -976970511, "Integer"], - _l_ = [0, -976970511, "Decimal"], - _m_ = [0, -976970511, "Date"], - _n_ = [0, -976970511, "Duration"], - _o_ = [0, -976970511, "Enum"], - _p_ = [0, -976970511, "Struct"], - _q_ = [0, -976970511, "Array"], - _f_ = [0, [15, 0], cst_a], - _e_ = [0, [15, 0], cst_a], - _c_ = [0, [15, 0], cst_a], - _b_ = [0, -1014801911, 0], - _d_ = [0, [2, 0, [15, [12, 46, [15, [2, 0, 0]]]]], "%s%a.%a%s"], - _a_ = [0, [8, [0, 0, 0], 0, [0, 2], 0], "%.2f"], - cst_law_headings = "law_headings", - cst_end_column = "end_column", - cst_end_line = "end_line", - cst_start_column = "start_column", - cst_start_line = "start_line", - cst_filename = "filename", - cst_Runtime_ocaml_Runtime_Empt = "Runtime_ocaml.Runtime.EmptyError", - cst_Runtime_ocaml_Runtime_Asse = "Runtime_ocaml.Runtime.AssertionFailed", - cst_Runtime_ocaml_Runtime_Conf = "Runtime_ocaml.Runtime.ConflictError", - cst_Runtime_ocaml_Runtime_Unco = - "Runtime_ocaml.Runtime.UncomparableDurations", - cst_Runtime_ocaml_Runtime_Indi = - "Runtime_ocaml.Runtime.IndivisibleDurations", - cst_Runtime_ocaml_Runtime_Impo = "Runtime_ocaml.Runtime.ImpossibleDate", - cst_Runtime_ocaml_Runtime_NoVa = "Runtime_ocaml.Runtime.NoValueProvided"; - function yojson_of_source_position(param){ + [12,46,[4,0,0,0,[12,45,[4,0,0,0,[12,46,[4,0,0,0,partial$8]]]]]]]]]], + caml_string_of_jsbytes("DecisionTaken(%s:%d.%d-%d.%d)")], + _r_=[0,-976970511,caml_string_of_jsbytes("VarComputation")], + _s_=[0,-976970511,caml_string_of_jsbytes("FunCall")], + _t_=[0,-976970511,caml_string_of_jsbytes("SubScopeCall")], + _g_=[0,848054398,[0,[0,-976970511,caml_string_of_jsbytes("Unit")],0]], + _h_= + [0, + 848054398, + [0,[0,-976970511,caml_string_of_jsbytes("Unembeddable")],0]], + _i_=[0,-976970511,caml_string_of_jsbytes("Bool")], + _j_=[0,-976970511,caml_string_of_jsbytes("Money")], + _k_=[0,-976970511,caml_string_of_jsbytes("Integer")], + _l_=[0,-976970511,caml_string_of_jsbytes("Decimal")], + _m_=[0,-976970511,caml_string_of_jsbytes("Date")], + _n_=[0,-976970511,caml_string_of_jsbytes("Duration")], + _o_=[0,-976970511,caml_string_of_jsbytes("Enum")], + _p_=[0,-976970511,caml_string_of_jsbytes("Struct")], + _q_=[0,-976970511,caml_string_of_jsbytes("Array")], + _f_=[0,[15,0],caml_string_of_jsbytes("%a")], + _e_=[0,[15,0],caml_string_of_jsbytes("%a")], + _c_=[0,[15,0],caml_string_of_jsbytes("%a")], + _b_=[0,-1014801911,0], + _d_= + [0,[2,0,[15,[12,46,[15,[2,0,0]]]]],caml_string_of_jsbytes("%s%a.%a%s")], + _a_=[0,[8,[0,0,0],0,[0,2],0],caml_string_of_jsbytes("%.2f")]; + function yojson_of_source_position(param) + {var + v_law_headings=param[6], + v_end_column=param[5], + v_end_line=param[4], + v_start_column=param[3], + v_start_line=param[2], + v_filename=param[1], + arg= + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + Ppx_yojson_conv_lib_Yojson_con[45][3], + v_law_headings), + bnds=[0,[0,cst_law_headings,arg],0], + arg$0=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_end_column), + bnds$0=[0,[0,cst_end_column,arg$0],bnds], + arg$1=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_end_line), + bnds$1=[0,[0,cst_end_line,arg$1],bnds$0], + arg$2=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_start_column), + bnds$2=[0,[0,cst_start_column,arg$2],bnds$1], + arg$3=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_start_line), + bnds$3=[0,[0,cst_start_line,arg$3],bnds$2], + arg$4=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3],v_filename), + bnds$4=[0,[0,cst_filename,arg$4],bnds$3]; + return [0,963043957,bnds$4]} var - v_law_headings = param[6], - v_end_column = param[5], - v_end_line = param[4], - v_start_column = param[3], - v_start_line = param[2], - v_filename = param[1], - arg = - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v_law_headings), - bnds = [0, [0, cst_law_headings, arg], 0], - arg$0 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_end_column), - bnds$0 = [0, [0, cst_end_column, arg$0], bnds], - arg$1 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_end_line), - bnds$1 = [0, [0, cst_end_line, arg$1], bnds$0], - arg$2 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_start_column), - bnds$2 = [0, [0, cst_start_column, arg$2], bnds$1], - arg$3 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_start_line), - bnds$3 = [0, [0, cst_start_line, arg$3], bnds$2], - arg$4 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3], v_filename), - bnds$4 = [0, [0, cst_filename, arg$4], bnds$3]; - return [0, 963043957, bnds$4]; - } - var - EmptyError = [248, cst_Runtime_ocaml_Runtime_Empt, caml_fresh_oo_id(0)], - AssertionFailed = - [248, cst_Runtime_ocaml_Runtime_Asse, caml_fresh_oo_id(0)], - ConflictError = [248, cst_Runtime_ocaml_Runtime_Conf, caml_fresh_oo_id(0)], - UncomparableDurations = - [248, cst_Runtime_ocaml_Runtime_Unco, caml_fresh_oo_id(0)], - IndivisibleDurations = - [248, cst_Runtime_ocaml_Runtime_Indi, caml_fresh_oo_id(0)], - ImpossibleDate = - [248, cst_Runtime_ocaml_Runtime_Impo, caml_fresh_oo_id(0)], - NoValueProvided = - [248, cst_Runtime_ocaml_Runtime_NoVa, caml_fresh_oo_id(0)]; - function money_of_cents_string(cents){return caml_call1(Z[5], cents);} - function money_of_units_int(units){return caml_call2(Z[54], units, 100);} - function money_of_cents_integer(cents){return cents;} - function money_to_float(m){return caml_call1(Z[30], m) / 100.;} - function money_of_decimal(d){ - var _cG_ = caml_call1(Q[9], 100), _cH_ = caml_call2(Q[40], d, _cG_); - return caml_call1(Q[29], _cH_); - } - function money_to_string(m){ + EmptyError=[248,cst_Runtime_ocaml_Runtime_Empt,caml_fresh_oo_id(0)], + AssertionFailed=[248,cst_Runtime_ocaml_Runtime_Asse,caml_fresh_oo_id(0)], + ConflictError=[248,cst_Runtime_ocaml_Runtime_Conf,caml_fresh_oo_id(0)], + UncomparableDurations= + [248,cst_Runtime_ocaml_Runtime_Unco,caml_fresh_oo_id(0)], + IndivisibleDurations= + [248,cst_Runtime_ocaml_Runtime_Indi,caml_fresh_oo_id(0)], + ImpossibleDate=[248,cst_Runtime_ocaml_Runtime_Impo,caml_fresh_oo_id(0)], + NoValueProvided=[248,cst_Runtime_ocaml_Runtime_NoVa,caml_fresh_oo_id(0)]; + function money_of_cents_string(cents){return caml_call1(Z[5],cents)} + function money_of_units_int(units){return caml_call2(Z[54],units,100)} + function money_of_cents_integer(cents){return cents} + function money_to_float(m){return caml_call1(Z[30],m) / 100.} + function money_of_decimal(d) + {var _cM_=caml_call1(Q[9],100),_cN_=caml_call2(Q[40],d,_cM_); + return caml_call1(Q[29],_cN_)} + function money_to_string(m) + {var + _cI_=caml_call1(Q[9],100), + _cJ_=caml_call1(Q[8],m), + _cK_=caml_call2(Q[55],_cJ_,_cI_), + _cL_=caml_call1(Q[35],_cK_); + return caml_call2(Stdlib_Format[133],_a_,_cL_)} + function money_to_cents(m){return m} + function money_round(m) + {var match=runtime.ml_z_div_rem(m,100),cents=match[2],units=match[1]; + if(runtime.caml_lessthan(caml_call1(Z[10],cents),50)) + return caml_call2(Z[54],units,100); + var _cG_=runtime.ml_z_sign(units),_cH_=caml_call2(Z[52],units,_cG_); + return caml_call2(Z[54],_cH_,100)} + function decimal_of_string(d){return caml_call1(Q[15],d)} + function decimal_to_float(d){return caml_call1(Q[35],d)} + function decimal_of_float(d){return caml_call1(Q[14],d)} + function decimal_of_integer(d){return caml_call1(Q[8],d)} + function decimal_to_string(max_prec_digits,i) + {var + sign=caml_call1(Q[20],i), + _ct_=caml_call1(Q[16],i), + n=caml_call1(Z[10],_ct_), + _cu_=caml_call1(Q[17],i), + d=caml_call1(Z[10],_cu_), + int_part=caml_call2(Z[18],n,d), + n$0=[0,caml_call2(Z[19],n,d)], + digits=[0,0]; + function leading_zeroes(digits) + {function _cF_(digit,num_leading_zeroes) + {if(3455931 <= num_leading_zeroes[1])return num_leading_zeroes; + var i=num_leading_zeroes[2]; + return caml_equal(digit,Z[2]) + ?[0,-1014801911,i + 1 | 0] + :[0,3455931,i]} + var match=caml_call3(Stdlib_List[26],_cF_,digits,_b_); + if(3455931 <= match[1]){var i=match[2];return i} + var i$0=match[2]; + return i$0} + for(;;) + {if(runtime.caml_notequal(n$0[1],Z[2])) + {var _cv_=leading_zeroes(digits[1]); + if + ((caml_call1(Stdlib_List[1],digits[1]) - _cv_ | 0) + < + max_prec_digits) + {n$0[1] = caml_call2(Z[14],n$0[1],10); + var _cw_=digits[1]; + digits[1] = [0,caml_call2(Z[18],n$0[1],d),_cw_]; + n$0[1] = caml_call2(Z[19],n$0[1],d); + continue}} + var + _cx_=leading_zeroes(digits[1]), + _cy_= + (caml_call1(Stdlib_List[1],digits[1]) - _cx_ | 0) + === + max_prec_digits + ?cst + :cst$2, + _cz_=caml_call1(Stdlib_List[9],digits[1]), + _cA_= + function(fmt,digit) + {return caml_call4(Stdlib_Format[129],fmt,_c_,Z[36],digit)}, + _cB_=[0,function(fmt,param){return 0}], + _cC_=caml_call2(Stdlib_Format[123],_cB_,_cA_), + _cD_=Z[36], + _cE_=0 <= sign?cst$0:cst$1; + return caml_call7 + (Stdlib_Format[133],_d_,_cE_,_cD_,int_part,_cC_,_cz_,_cy_)}} + function decimal_round(q) + {var + n=caml_call1(Q[16],q), + d=caml_call1(Q[17],q), + _cq_=caml_call2(Z[54],2,d), + _cr_=caml_call2(Z[54],2,n), + _cs_=runtime.ml_z_fdiv(caml_call2(Z[52],_cr_,d),_cq_); + return caml_call1(Q[8],_cs_)} + function decimal_of_money(m) + {var _co_=caml_call1(Q[9],100),_cp_=caml_call1(Q[8],m); + return caml_call2(Q[42],_cp_,_co_)} + function integer_of_string(s){return caml_call1(Z[5],s)} + function integer_to_string(i){return caml_call1(Z[31],i)} + function integer_to_int(i){return caml_call1(Z[29],i)} + function integer_of_int(i){return i} + function integer_exponentiation(i,e){return runtime.ml_z_pow(i,e)} + var integer_log2=Z[47]; + function year_of_date(d) + {var match=caml_call1(Dates_calc_Dates[7],d),y=match[1];return y} + function month_number_of_date(d) + {var match=caml_call1(Dates_calc_Dates[7],d),m=match[2];return m} + function is_leap_year(y) + {var y$0=caml_call1(Z[29],y);return caml_call1(Dates_calc_Dates[11],y$0)} + function day_of_month_of_date(d) + {var match=caml_call1(Dates_calc_Dates[7],d),d$0=match[3];return d$0} + function date_of_numbers(year,month,day) + {try + {var _cm_=caml_call3(Dates_calc_Dates[3],year,month,day);return _cm_} + catch(_cn_){throw ImpossibleDate}} + function date_to_string(d) + {return caml_call3(Stdlib_Format[133],_e_,Dates_calc_Dates[8],d)} var - _cC_ = caml_call1(Q[9], 100), - _cD_ = caml_call1(Q[8], m), - _cE_ = caml_call2(Q[55], _cD_, _cC_), - _cF_ = caml_call1(Q[35], _cE_); - return caml_call2(Stdlib_Format[133], _a_, _cF_); - } - function money_to_cents(m){return m;} - function money_round(m){ - var - match = runtime.ml_z_div_rem(m, 100), - cents = match[2], - units = match[1]; - if(runtime.caml_lessthan(caml_call1(Z[10], cents), 50)) - return caml_call2(Z[54], units, 100); - var - _cA_ = runtime.ml_z_sign(units), - _cB_ = caml_call2(Z[52], units, _cA_); - return caml_call2(Z[54], _cB_, 100); - } - function decimal_of_string(d){return caml_call1(Q[15], d);} - function decimal_to_float(d){return caml_call1(Q[35], d);} - function decimal_of_float(d){return caml_call1(Q[14], d);} - function decimal_of_integer(d){return caml_call1(Q[8], d);} - function decimal_to_string(max_prec_digits, i){ - var - sign = caml_call1(Q[20], i), - _cn_ = caml_call1(Q[16], i), - n = caml_call1(Z[10], _cn_), - _co_ = caml_call1(Q[17], i), - d = caml_call1(Z[10], _co_), - int_part = caml_call2(Z[18], n, d), - n$0 = [0, caml_call2(Z[19], n, d)], - digits = [0, 0]; - function leading_zeroes(digits){ - function _cz_(digit, num_leading_zeroes){ - if(3455931 <= num_leading_zeroes[1]) return num_leading_zeroes; - var i = num_leading_zeroes[2]; - return caml_equal(digit, Z[2]) - ? [0, -1014801911, i + 1 | 0] - : [0, 3455931, i]; - } - var match = caml_call3(Stdlib_List[26], _cz_, digits, _b_); - if(3455931 <= match[1]){var i = match[2]; return i;} - var i$0 = match[2]; - return i$0; - } - for(;;){ - if(runtime.caml_notequal(n$0[1], Z[2])){ - var _cp_ = leading_zeroes(digits[1]); - if((caml_call1(Stdlib_List[1], digits[1]) - _cp_ | 0) < max_prec_digits){ - n$0[1] = caml_call2(Z[14], n$0[1], 10); - var _cq_ = digits[1]; - digits[1] = [0, caml_call2(Z[18], n$0[1], d), _cq_]; - n$0[1] = caml_call2(Z[19], n$0[1], d); - continue; - } - } - var - _cr_ = leading_zeroes(digits[1]), - _cs_ = - (caml_call1(Stdlib_List[1], digits[1]) - _cr_ | 0) === max_prec_digits - ? cst - : cst$2, - _ct_ = caml_call1(Stdlib_List[9], digits[1]), - _cu_ = - function(fmt, digit){ - return caml_call4(Stdlib_Format[129], fmt, _c_, Z[36], digit); - }, - _cv_ = [0, function(fmt, param){return 0;}], - _cw_ = caml_call2(Stdlib_Format[123], _cv_, _cu_), - _cx_ = Z[36], - _cy_ = 0 <= sign ? cst$0 : cst$1; - return caml_call7 - (Stdlib_Format[133], _d_, _cy_, _cx_, int_part, _cw_, _ct_, _cs_); - } - } - function decimal_round(q){ - var - n = caml_call1(Q[16], q), - d = caml_call1(Q[17], q), - _ck_ = caml_call2(Z[54], 2, d), - _cl_ = caml_call2(Z[54], 2, n), - _cm_ = runtime.ml_z_fdiv(caml_call2(Z[52], _cl_, d), _ck_); - return caml_call1(Q[8], _cm_); - } - function decimal_of_money(m){ - var _ci_ = caml_call1(Q[9], 100), _cj_ = caml_call1(Q[8], m); - return caml_call2(Q[42], _cj_, _ci_); - } - function integer_of_string(s){return caml_call1(Z[5], s);} - function integer_to_string(i){return caml_call1(Z[31], i);} - function integer_to_int(i){return caml_call1(Z[29], i);} - function integer_of_int(i){return i;} - function integer_exponentiation(i, e){return runtime.ml_z_pow(i, e);} - var integer_log2 = Z[47]; - function year_of_date(d){ - var y = caml_call1(Dates_calc_Dates[7], d)[1]; - return y; - } - function month_number_of_date(d){ - var m = caml_call1(Dates_calc_Dates[7], d)[2]; - return m; - } - function is_leap_year(y){ - var y$0 = caml_call1(Z[29], y); - return caml_call1(Dates_calc_Dates[11], y$0); - } - function day_of_month_of_date(d){ - var d$0 = caml_call1(Dates_calc_Dates[7], d)[3]; - return d$0; - } - function date_of_numbers(year, month, day){ - try{ - var _cg_ = caml_call3(Dates_calc_Dates[3], year, month, day); - return _cg_; - } - catch(_ch_){throw caml_maybe_attach_backtrace(ImpossibleDate, 1);} - } - function date_to_string(d){ - return caml_call3(Stdlib_Format[133], _e_, Dates_calc_Dates[8], d); - } - var - first_day_of_month = Dates_calc_Dates[9], - last_day_of_month = Dates_calc_Dates[10]; - function duration_of_numbers(year, month, day){ - return caml_call3(Dates_calc_Dates[12], year, month, day); - } - function duration_to_string(d){ - return caml_call3(Stdlib_Format[133], _f_, Dates_calc_Dates[17], d); - } - function duration_to_years_months_days(d){ - return caml_call1(Dates_calc_Dates[19], d); - } - function yojson_of_runtime_value(param){ - if(typeof param === "number") return 0 === param ? _g_ : _h_; - switch(param[0]){ - case 0: - var - v0$4 = param[1], - v0$5 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][2], v0$4); - return [0, 848054398, [0, _i_, [0, v0$5, 0]]]; - case 1: - var v0$6 = param[1], v0 = [0, 365180284, money_to_float(v0$6)]; - return [0, 848054398, [0, _j_, [0, v0, 0]]]; - case 2: - var v0$7 = param[1], v0$0 = [0, 3654863, integer_to_int(v0$7)]; - return [0, 848054398, [0, _k_, [0, v0$0, 0]]]; - case 3: - var v0$8 = param[1], v0$1 = [0, 365180284, decimal_to_float(v0$8)]; - return [0, 848054398, [0, _l_, [0, v0$1, 0]]]; - case 4: - var v0$9 = param[1], v0$2 = [0, -976970511, date_to_string(v0$9)]; - return [0, 848054398, [0, _m_, [0, v0$2, 0]]]; - case 5: - var - v0$10 = param[1], - v0$3 = [0, -976970511, duration_to_string(v0$10)]; - return [0, 848054398, [0, _n_, [0, v0$3, 0]]]; - case 6: - var - v1 = param[2], - v0$11 = param[1], - v0$12 = - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v0$11), - v1$0 = v1[2], - v0$13 = v1[1], - v0$14 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3], v0$13), - v1$1 = yojson_of_runtime_value(v1$0), - v1$2 = [0, 848054398, [0, v0$14, [0, v1$1, 0]]]; - return [0, 848054398, [0, _o_, [0, v0$12, [0, v1$2, 0]]]]; - case 7: - var - v1$3 = param[2], - v0$15 = param[1], - v0$16 = - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v0$15), - _cf_ = - function(param){ - var - v1 = param[2], - v0 = param[1], - v0$0 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3], v0), - v1$0 = yojson_of_runtime_value(v1); - return [0, 848054398, [0, v0$0, [0, v1$0, 0]]]; - }, - v1$4 = caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][14], _cf_, v1$3); - return [0, 848054398, [0, _p_, [0, v0$16, [0, v1$4, 0]]]]; - default: - var - v0$17 = param[1], - v0$18 = - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][15], - yojson_of_runtime_value, - v0$17); - return [0, 848054398, [0, _q_, [0, v0$18, 0]]]; - } - } - function unembeddable(param){return 1;} - function embed_unit(param){return 0;} - function embed_bool(x){return [0, x];} - function embed_money(x){return [1, x];} - function embed_integer(x){return [2, x];} - function embed_decimal(x){return [3, x];} - function embed_date(x){return [4, x];} - function embed_duration(x){return [5, x];} - function embed_array(f, x){return [8, caml_call2(Stdlib_Array[15], f, x)];} - function yojson_of_information(v){ - return caml_call2 + first_day_of_month=Dates_calc_Dates[9], + last_day_of_month=Dates_calc_Dates[10]; + function duration_of_numbers(year,month,day) + {return caml_call3(Dates_calc_Dates[12],year,month,day)} + function duration_to_string(d) + {return caml_call3(Stdlib_Format[133],_f_,Dates_calc_Dates[17],d)} + function duration_to_years_months_days(d) + {return caml_call1(Dates_calc_Dates[19],d)} + function yojson_of_runtime_value(param) + {if(typeof param === "number")return 0 === param?_g_:_h_; + switch(param[0]) + {case 0: + var + v0$4=param[1], + v0$5=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][2],v0$4); + return [0,848054398,[0,_i_,[0,v0$5,0]]]; + case 1: + var v0$6=param[1],v0=[0,365180284,money_to_float(v0$6)]; + return [0,848054398,[0,_j_,[0,v0,0]]]; + case 2: + var v0$7=param[1],v0$0=[0,3654863,integer_to_int(v0$7)]; + return [0,848054398,[0,_k_,[0,v0$0,0]]]; + case 3: + var v0$8=param[1],v0$1=[0,365180284,decimal_to_float(v0$8)]; + return [0,848054398,[0,_l_,[0,v0$1,0]]]; + case 4: + var v0$9=param[1],v0$2=[0,-976970511,date_to_string(v0$9)]; + return [0,848054398,[0,_m_,[0,v0$2,0]]]; + case 5: + var v0$10=param[1],v0$3=[0,-976970511,duration_to_string(v0$10)]; + return [0,848054398,[0,_n_,[0,v0$3,0]]]; + case 6: + var + v1=param[2], + v0$11=param[1], + v0$12= + caml_call2 (Ppx_yojson_conv_lib_Yojson_con[45][14], Ppx_yojson_conv_lib_Yojson_con[45][3], - v); - } - function yojson_of_event(param){ - switch(param[0]){ - case 0: - var v0 = param[1], v0$0 = yojson_of_var_def(v0); - return [0, 848054398, [0, _r_, [0, v0$0, 0]]]; - case 1: - var v0$1 = param[1], v0$2 = yojson_of_fun_call(v0$1); - return [0, 848054398, [0, _s_, [0, v0$2, 0]]]; - default: - var - v_body = param[3], - v_inputs = param[2], - v_name = param[1], - arg = - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], yojson_of_event, v_body), - bnds = [0, [0, cst_body, arg], 0], - arg$0 = - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - yojson_of_var_def, - v_inputs), - bnds$0 = [0, [0, cst_inputs, arg$0], bnds], - arg$1 = yojson_of_information(v_name), - bnds$1 = [0, [0, cst_name, arg$1], bnds$0]; - return [0, 848054398, [0, _t_, [0, [0, 963043957, bnds$1], 0]]]; - } - } - function yojson_of_var_def(param){ - var - v_fun_calls = param[4], - v_value = param[3], - v_name = param[2], - v_pos = param[1], - _ce_ = - caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][14], yojson_of_fun_call), - arg = - caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][13], _ce_, v_fun_calls), - bnds = [0, [0, cst_fun_calls, arg], 0], - arg$0 = yojson_of_runtime_value(v_value), - bnds$0 = [0, [0, cst_value, arg$0], bnds], - arg$1 = yojson_of_information(v_name), - bnds$1 = [0, [0, cst_name$0, arg$1], bnds$0], - arg$2 = - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][13], - yojson_of_source_position, - v_pos), - bnds$2 = [0, [0, cst_pos, arg$2], bnds$1]; - return [0, 963043957, bnds$2]; - } - function yojson_of_fun_call(param){ - var - v_output = param[4], - v_body = param[3], - v_fun_inputs = param[2], - v_fun_name = param[1], - arg = yojson_of_var_def(v_output), - bnds = [0, [0, cst_output, arg], 0], - arg$0 = - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], yojson_of_event, v_body), - bnds$0 = [0, [0, cst_body$0, arg$0], bnds], - arg$1 = - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - yojson_of_var_def, - v_fun_inputs), - bnds$1 = [0, [0, cst_fun_inputs, arg$1], bnds$0], - arg$2 = yojson_of_information(v_fun_name), - bnds$2 = [0, [0, cst_fun_name, arg$2], bnds$1]; - return [0, 963043957, bnds$2]; - } - var log_ref = [0, 0]; - function reset_log(param){log_ref[1] = 0; return 0;} - function retrieve_log(param){ - return caml_call1(Stdlib_List[9], log_ref[1]); - } - function log_begin_call(info, f){ - log_ref[1] = [0, [0, info], log_ref[1]]; - return f; - } - function log_end_call(info, x){ - log_ref[1] = [0, [1, info], log_ref[1]]; - return x; - } - function log_variable_definition(info, embed, x){ - var _cd_ = log_ref[1]; - log_ref[1] = [0, [2, info, caml_call1(embed, x)], _cd_]; - return x; - } - function log_decision_taken(pos, x){ - if(x) log_ref[1] = [0, [3, pos], log_ref[1]]; - return x; - } - function pp_events(opt, ppf, events){ - if(opt) var sth = opt[1], is_first_call = sth; else var is_first_call = 1; - function format_var_def(ppf, var$0){ - var - _cb_ = var$0[3], - _cc_ = caml_call2(Stdlib_String[6], cst$3, var$0[2]); - return caml_call7 - (Stdlib_Format[129], - ppf, - _u_, - format_pos_opt, - var$0[1], - _cc_, - format_value, - _cb_); - } - function format_pos_opt(ppf, param){ - if(! param) return caml_call2(Stdlib_Format[129], ppf, _w_); - var pos = param[1]; - return caml_call5(Stdlib_Format[129], ppf, _v_, pos[1], pos[2], pos[4]); - } - function format_var_defs(ppf){ - var - _ca_ = - [0, - function(ppf, param){ - return caml_call2(Stdlib_Format[129], ppf, _x_); - }]; - return caml_call3(Stdlib_Format[123], _ca_, format_var_def, ppf); - } - function format_var_def_with_fun_calls(ppf, var_with_fun){ - var _b6_ = var_with_fun[4]; - if(_b6_){ - var fun_calls = _b6_[1]; - if(fun_calls){ - var - _b7_ = - function(ppf, fun_call){return format_event(ppf, [1, fun_call]);}, - _b8_ = - [0, - function(ppf, param){ - return caml_call2(Stdlib_Format[129], ppf, _y_); - }], - _b9_ = caml_call2(Stdlib_Format[123], _b8_, _b7_), - _b__ = var_with_fun[3], - _b$_ = caml_call2(Stdlib_String[6], cst$4, var_with_fun[2]); - return caml_call7 - (Stdlib_Format[129], - ppf, - _z_, - _b$_, - format_value, - _b__, - _b9_, - fun_calls); - } - } - return format_var_def(ppf, var_with_fun); - } - function format_value(ppf, param){ - if(typeof param === "number") - return 0 === param - ? caml_call2(Stdlib_Format[129], ppf, _A_) - : caml_call2(Stdlib_Format[129], ppf, _B_); - switch(param[0]){ - case 0: - var x = param[1]; return caml_call3(Stdlib_Format[129], ppf, _C_, x); - case 1: - var x$0 = param[1], _bU_ = money_to_string(x$0); - return caml_call3(Stdlib_Format[129], ppf, _D_, _bU_); - case 2: - var x$1 = param[1], _bV_ = integer_to_int(x$1); - return caml_call3(Stdlib_Format[129], ppf, _E_, _bV_); - case 3: - var x$2 = param[1], _bW_ = decimal_to_string(10, x$2); - return caml_call3(Stdlib_Format[129], ppf, _F_, _bW_); - case 4: - var x$3 = param[1], _bX_ = date_to_string(x$3); - return caml_call3(Stdlib_Format[129], ppf, _G_, _bX_); - case 5: - var x$4 = param[1], _bY_ = duration_to_string(x$4); - return caml_call3(Stdlib_Format[129], ppf, _H_, _bY_); - case 6: - var name = param[2][1]; - return caml_call3(Stdlib_Format[129], ppf, _I_, name); - case 7: - var - attrs = param[2], - name$0 = param[1], - _bZ_ = - function(fmt, param){ - var value = param[2], name = param[1]; - return caml_call5 - (Stdlib_Format[129], fmt, _J_, name, format_value, value); - }, - _b0_ = - [0, - function(ppf, param){ - return caml_call2(Stdlib_Format[129], ppf, _K_); - }], - _b1_ = caml_call2(Stdlib_Format[123], _b0_, _bZ_), - _b2_ = caml_call2(Stdlib_String[6], cst$5, name$0); - return caml_call5(Stdlib_Format[129], ppf, _L_, _b2_, _b1_, attrs); - default: - var - elts = param[1], - _b3_ = caml_call1(Stdlib_Array[11], elts), - _b4_ = - [0, - function(ppf, param){ - return caml_call2(Stdlib_Format[129], ppf, _M_); - }], - _b5_ = caml_call2(Stdlib_Format[123], _b4_, format_value); - return caml_call4(Stdlib_Format[129], ppf, _N_, _b5_, _b3_); - } - } - function format_event(ppf, param){ - switch(param[0]){ - case 0: - var var_def_with_fun = param[1]; - return caml_call1(Stdlib_Option[11], var_def_with_fun[4]) - ? caml_call4 - (Stdlib_Format[129], - ppf, - _O_, - format_var_def_with_fun_calls, - var_def_with_fun) - : caml_call4 - (Stdlib_Format[129], - ppf, - _P_, - format_var_def, - var_def_with_fun); - case 1: - var - match = param[1], - output = match[4], - body = match[3], - fun_inputs = match[2], - fun_name = match[1], - _bK_ = function(_bQ_, _bR_){return pp_events(_Q_, _bQ_, _bR_);}, - _bL_ = - [0, - function(fmt, param){ - return caml_call2(Stdlib_Format[13], fmt, cst$6); - }], - _bM_ = caml_call2(Stdlib_Format[123], _bL_, format_var_def), - _bN_ = caml_call2(Stdlib_String[6], cst$7, fun_name); - return caml_call9 - (Stdlib_Format[129], - ppf, - _R_, - _bN_, - _bM_, - fun_inputs, - format_var_def_with_fun_calls, - output, - _bK_, - body); - default: - var - body$0 = param[3], - inputs = param[2], - name = param[1], - _bO_ = function(_bS_, _bT_){return pp_events(_S_, _bS_, _bT_);}, - _bP_ = caml_call2(Stdlib_String[6], cst$8, name); + v0$11), + v1$0=v1[2], + v0$13=v1[1], + v0$14=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3],v0$13), + v1$1=yojson_of_runtime_value(v1$0), + v1$2=[0,848054398,[0,v0$14,[0,v1$1,0]]]; + return [0,848054398,[0,_o_,[0,v0$12,[0,v1$2,0]]]]; + case 7: + var + v1$3=param[2], + v0$15=param[1], + v0$16= + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + Ppx_yojson_conv_lib_Yojson_con[45][3], + v0$15), + _cl_= + function(param) + {var + v1=param[2], + v0=param[1], + v0$0=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3],v0), + v1$0=yojson_of_runtime_value(v1); + return [0,848054398,[0,v0$0,[0,v1$0,0]]]}, + v1$4=caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][14],_cl_,v1$3); + return [0,848054398,[0,_p_,[0,v0$16,[0,v1$4,0]]]]; + default: + var + v0$17=param[1], + v0$18= + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][15], + yojson_of_runtime_value, + v0$17); + return [0,848054398,[0,_q_,[0,v0$18,0]]]}} + function unembeddable(param){return 1} + function embed_unit(param){return 0} + function embed_bool(x){return [0,x]} + function embed_money(x){return [1,x]} + function embed_integer(x){return [2,x]} + function embed_decimal(x){return [3,x]} + function embed_date(x){return [4,x]} + function embed_duration(x){return [5,x]} + function embed_array(f,x){return [8,caml_call2(Stdlib_Array[15],f,x)]} + function yojson_of_information(v) + {return caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + Ppx_yojson_conv_lib_Yojson_con[45][3], + v)} + function yojson_of_event(param) + {switch(param[0]) + {case 0: + var v0=param[1],v0$0=yojson_of_var_def(v0); + return [0,848054398,[0,_r_,[0,v0$0,0]]]; + case 1: + var v0$1=param[1],v0$2=yojson_of_fun_call(v0$1); + return [0,848054398,[0,_s_,[0,v0$2,0]]]; + default: + var + v_body=param[3], + v_inputs=param[2], + v_name=param[1], + arg= + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14],yojson_of_event,v_body), + bnds=[0,[0,cst_body,arg],0], + arg$0= + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + yojson_of_var_def, + v_inputs), + bnds$0=[0,[0,cst_inputs,arg$0],bnds], + arg$1=yojson_of_information(v_name), + bnds$1=[0,[0,cst_name,arg$1],bnds$0]; + return [0,848054398,[0,_t_,[0,[0,963043957,bnds$1],0]]]}} + function yojson_of_var_def(param) + {var + v_fun_calls=param[4], + v_value=param[3], + v_name=param[2], + v_pos=param[1], + _ck_= + caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][14],yojson_of_fun_call), + arg=caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][13],_ck_,v_fun_calls), + bnds=[0,[0,cst_fun_calls,arg],0], + arg$0=yojson_of_runtime_value(v_value), + bnds$0=[0,[0,cst_value,arg$0],bnds], + arg$1=yojson_of_information(v_name), + bnds$1=[0,[0,cst_name$0,arg$1],bnds$0], + arg$2= + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][13], + yojson_of_source_position, + v_pos), + bnds$2=[0,[0,cst_pos,arg$2],bnds$1]; + return [0,963043957,bnds$2]} + function yojson_of_fun_call(param) + {var + v_output=param[4], + v_body=param[3], + v_fun_inputs=param[2], + v_fun_name=param[1], + arg=yojson_of_var_def(v_output), + bnds=[0,[0,cst_output,arg],0], + arg$0= + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14],yojson_of_event,v_body), + bnds$0=[0,[0,cst_body$0,arg$0],bnds], + arg$1= + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + yojson_of_var_def, + v_fun_inputs), + bnds$1=[0,[0,cst_fun_inputs,arg$1],bnds$0], + arg$2=yojson_of_information(v_fun_name), + bnds$2=[0,[0,cst_fun_name,arg$2],bnds$1]; + return [0,963043957,bnds$2]} + var log_ref=[0,0]; + function reset_log(param){log_ref[1] = 0;return 0} + function retrieve_log(param){return caml_call1(Stdlib_List[9],log_ref[1])} + function log_begin_call(info,f) + {log_ref[1] = [0,[0,info],log_ref[1]];return f} + function log_end_call(info,x) + {log_ref[1] = [0,[1,info],log_ref[1]];return x} + function log_variable_definition(info,embed,x) + {var _cj_=log_ref[1]; + log_ref[1] = [0,[2,info,caml_call1(embed,x)],_cj_]; + return x} + function log_decision_taken(pos,x) + {if(x)log_ref[1] = [0,[3,pos],log_ref[1]];return x} + function pp_events(opt,ppf,events) + {if(opt)var sth=opt[1],is_first_call=sth;else var is_first_call=1; + function format_var_def(ppf,var$0) + {var _ch_=var$0[3],_ci_=caml_call2(Stdlib_String[6],cst$3,var$0[2]); return caml_call7 (Stdlib_Format[129], ppf, - _T_, - _bP_, - format_var_defs, - inputs, - _bO_, - body$0); - } - } - var - _bG_ = - [0, - function(ppf, param){return caml_call2(Stdlib_Format[129], ppf, _U_);}], - _bH_ = caml_call2(Stdlib_Format[123], _bG_, format_event), - _bI_ = is_first_call ? _V_ : _X_, - _bJ_ = caml_call2(Stdlib[98], _W_, _bI_); - return caml_call4(Stdlib_Format[129], ppf, _bJ_, _bH_, events); - } - var - StringMap = caml_call1(Stdlib_Map[1], [0, Stdlib_String[9]]), - empty = StringMap[1], - empty_ctx = [0, empty, 0, 0], - _Y_ = 0; - function raw_event_to_string(param){ - switch(param[0]){ - case 0: - var - name = param[1], - _bx_ = caml_call2(Stdlib_String[6], cst$10, name), - _by_ = caml_call2(Stdlib[28], _bx_, cst$9), - _bz_ = caml_call1(Stdlib_Printf[4], _Z_); - return caml_call2(Stdlib[28], _bz_, _by_); - case 1: - var - name$0 = param[1], - _bA_ = caml_call2(Stdlib_String[6], cst$12, name$0), - _bB_ = caml_call2(Stdlib[28], _bA_, cst$11), - _bC_ = caml_call1(Stdlib_Printf[4], ___); - return caml_call2(Stdlib[28], _bC_, _bB_); - case 2: - var - value = param[2], - name$1 = param[1], - _bD_ = yojson_of_runtime_value(value), - _bE_ = caml_call5(Yojson[11][5], 0, 0, 0, 0, _bD_), - _bF_ = caml_call2(Stdlib_String[6], cst$13, name$1); - return caml_call3(Stdlib_Printf[4], _$_, _bF_, _bE_); - default: - var pos = param[1]; - return caml_call6 - (Stdlib_Printf[4], - _aa_, - pos[1], - pos[2], - pos[3], - pos[4], - pos[5]); - } - } - function take_while(p, l){ - if(! l) return _ab_; - var t = l[2], h = l[1]; - if(! caml_call1(p, h)) return [0, 0, l]; - var match = take_while(p, t), rest = match[2], t$0 = match[1]; - return [0, [0, h, t$0], rest]; - } - function parse_raw_events(raw_events){ - var nb_raw_events = caml_call1(Stdlib_List[1], raw_events); - function is_function_call(infos){ - return 2 === caml_call1(Stdlib_List[1], infos) ? 1 : 0; - } - function is_var_def(name){ - return 2 === caml_call1(Stdlib_List[1], name) ? 1 : 0; - } - function parse_events(ctx){ - var ctx$0 = ctx; - a: - for(;;){ - var match$1 = ctx$0[3]; - if(! match$1){ - var _bu_ = ctx$0[3], _bv_ = caml_call1(Stdlib_List[9], ctx$0[2]); - return [0, ctx$0[1], _bv_, _bu_]; - } - var event = match$1[1]; - switch(event[0]){ - case 0: - var rest = match$1[2], infos = event[1]; - if(3 === caml_call1(Stdlib_List[1], infos)){ - if(infos){ - var _a6_ = infos[2]; - if(_a6_){ - var _a7_ = _a6_[2]; - if(_a7_ && ! _a7_[2]){ - var - var_name = _a6_[1], - body_ctx = parse_events([0, empty, _Y_, rest]), - map = ctx$0[1], - match$0 = caml_call2(StringMap[29], var_name, map); - if(match$0) - var ls$0 = match$0[1], inputs = ls$0; - else - var inputs = 0; - var - ctx$1 = - [0, - ctx$0[1], - [0, [2, infos, inputs, body_ctx[2]], ctx$0[2]], - body_ctx[3]], - ctx$0 = ctx$1; - continue; - } - } - } - return caml_call1(Stdlib[2], cst_unreachable_due_to_the_is_); - } - break; - case 1: - var rest$0 = match$1[2], _a__ = caml_call1(Stdlib_List[9], ctx$0[2]); - return [0, ctx$0[1], _a__, rest$0]; - case 2: - var rest$1 = match$1[2], name = event[1]; - if(is_var_def(name)){ - var ctx$2 = [0, ctx$0[1], ctx$0[2], rest$1], ctx$0 = ctx$2; - continue; - } - if(rest$1){ - var match$2 = rest$1[1]; - if(0 === match$2[0]){ - var infos$0 = match$2[1]; - if(is_function_call(infos$0)){ - var - match$3 = parse_fun_call(ctx$0[3]), - fun_call = match$3[2], - rest$2 = match$3[1], - ctx$3 = [0, ctx$0[1], [0, [1, fun_call], ctx$0[2]], rest$2], - ctx$0 = ctx$3; - continue; - } - } - } - break; - default: - var _a$_ = match$1[2]; - if(_a$_){ - var match$4 = _a$_[1]; - if(2 === match$4[0]){ + _u_, + format_pos_opt, + var$0[1], + _ci_, + format_value, + _ch_)} + function format_pos_opt(ppf,param) + {if(! param)return caml_call2(Stdlib_Format[129],ppf,_w_); + var pos=param[1]; + return caml_call5(Stdlib_Format[129],ppf,_v_,pos[1],pos[2],pos[4])} + function format_var_defs(ppf) + {var + _cg_= + [0, + function(ppf,param){return caml_call2(Stdlib_Format[129],ppf,_x_)}]; + return caml_call3(Stdlib_Format[123],_cg_,format_var_def,ppf)} + function format_var_def_with_fun_calls(ppf,var_with_fun) + {var _b$_=var_with_fun[4]; + if(_b$_) + {var _ca_=_b$_[1]; + if(_ca_) + {var + _cb_= + function(ppf,fun_call){return format_event(ppf,[1,fun_call])}, + _cc_= + [0, + function(ppf,param) + {return caml_call2(Stdlib_Format[129],ppf,_y_)}], + _cd_=caml_call2(Stdlib_Format[123],_cc_,_cb_), + _ce_=var_with_fun[3], + _cf_=caml_call2(Stdlib_String[6],cst$4,var_with_fun[2]); + return caml_call7 + (Stdlib_Format[129], + ppf, + _z_, + _cf_, + format_value, + _ce_, + _cd_, + _ca_)}} + return format_var_def(ppf,var_with_fun)} + function format_value(ppf,param) + {if(typeof param === "number") + return 0 === param + ?caml_call2(Stdlib_Format[129],ppf,_A_) + :caml_call2(Stdlib_Format[129],ppf,_B_); + switch(param[0]) + {case 0: + var x=param[1];return caml_call3(Stdlib_Format[129],ppf,_C_,x); + case 1: + var x$0=param[1],_bZ_=money_to_string(x$0); + return caml_call3(Stdlib_Format[129],ppf,_D_,_bZ_); + case 2: + var x$1=param[1],_b0_=integer_to_int(x$1); + return caml_call3(Stdlib_Format[129],ppf,_E_,_b0_); + case 3: + var x$2=param[1],_b1_=decimal_to_string(10,x$2); + return caml_call3(Stdlib_Format[129],ppf,_F_,_b1_); + case 4: + var x$3=param[1],_b2_=date_to_string(x$3); + return caml_call3(Stdlib_Format[129],ppf,_G_,_b2_); + case 5: + var x$4=param[1],_b3_=duration_to_string(x$4); + return caml_call3(Stdlib_Format[129],ppf,_H_,_b3_); + case 6: + var match=param[2],name=match[1]; + return caml_call3(Stdlib_Format[129],ppf,_I_,name); + case 7: var - rest$3 = _a$_[2], - value = match$4[2], - name$0 = match$4[1], - pos = event[1], - _a4_ = 2 === caml_call1(Stdlib_List[1], name$0) ? 1 : 0; - if(_a4_) - var - _a5_ = caml_call2(Stdlib_List[7], name$0, 1), - _ba_ = caml_call2(Stdlib_String[14], _a5_, 46); - else - var _ba_ = _a4_; - if(_ba_){ - if(name$0){ - var _bb_ = name$0[2]; - if(_bb_ && ! _bb_[2]){ + attrs=param[2], + name$0=param[1], + _b4_= + function(fmt,param) + {var value=param[2],name=param[1]; + return caml_call5 + (Stdlib_Format[129],fmt,_J_,name,format_value,value)}, + _b5_= + [0, + function(ppf,param) + {return caml_call2(Stdlib_Format[129],ppf,_K_)}], + _b6_=caml_call2(Stdlib_Format[123],_b5_,_b4_), + _b7_=caml_call2(Stdlib_String[6],cst$5,name$0); + return caml_call5(Stdlib_Format[129],ppf,_L_,_b7_,_b6_,attrs); + default: + var + elts=param[1], + _b8_=caml_call1(Stdlib_Array[11],elts), + _b9_= + [0, + function(ppf,param) + {return caml_call2(Stdlib_Format[129],ppf,_M_)}], + _b__=caml_call2(Stdlib_Format[123],_b9_,format_value); + return caml_call4(Stdlib_Format[129],ppf,_N_,_b__,_b8_)}} + function format_event(ppf,param) + {switch(param[0]) + {case 0: + var var_def_with_fun=param[1]; + return caml_call1(Stdlib_Option[11],var_def_with_fun[4]) + ?caml_call4 + (Stdlib_Format[129], + ppf, + _O_, + format_var_def_with_fun_calls, + var_def_with_fun) + :caml_call4 + (Stdlib_Format[129],ppf,_P_,format_var_def,var_def_with_fun); + case 1: + var + match=param[1], + output=match[4], + body=match[3], + fun_inputs=match[2], + fun_name=match[1], + _bP_=function(_bV_,_bW_){return pp_events(_Q_,_bV_,_bW_)}, + _bQ_= + [0, + function(fmt,param) + {return caml_call2(Stdlib_Format[13],fmt,cst$6)}], + _bR_=caml_call2(Stdlib_Format[123],_bQ_,format_var_def), + _bS_=caml_call2(Stdlib_String[6],cst$7,fun_name); + return caml_call9 + (Stdlib_Format[129], + ppf, + _R_, + _bS_, + _bR_, + fun_inputs, + format_var_def_with_fun_calls, + output, + _bP_, + body); + default: + var + body$0=param[3], + inputs=param[2], + name=param[1], + _bT_=function(_bX_,_bY_){return pp_events(_S_,_bX_,_bY_)}, + _bU_=caml_call2(Stdlib_String[6],cst$8,name); + return caml_call7 + (Stdlib_Format[129], + ppf, + _T_, + _bU_, + format_var_defs, + inputs, + _bT_, + body$0)}} + var + _bL_= + [0,function(ppf,param){return caml_call2(Stdlib_Format[129],ppf,_U_)}], + _bM_=caml_call2(Stdlib_Format[123],_bL_,format_event), + _bN_=is_first_call?_V_:_X_, + _bO_=caml_call2(Stdlib[98],_W_,_bN_); + return caml_call4(Stdlib_Format[129],ppf,_bO_,_bM_,events)} + var + StringMap=caml_call1(Stdlib_Map[1],[0,Stdlib_String[9]]), + empty=StringMap[1], + empty_ctx=[0,empty,0,0], + _Y_=0; + function raw_event_to_string(param) + {switch(param[0]) + {case 0: + var + name=param[1], + _bC_=caml_call2(Stdlib_String[6],cst$10,name), + _bD_=caml_call2(Stdlib[28],_bC_,cst$9), + _bE_=caml_call1(Stdlib_Printf[4],_Z_); + return caml_call2(Stdlib[28],_bE_,_bD_); + case 1: + var + name$0=param[1], + _bF_=caml_call2(Stdlib_String[6],cst$12,name$0), + _bG_=caml_call2(Stdlib[28],_bF_,cst$11), + _bH_=caml_call1(Stdlib_Printf[4],___); + return caml_call2(Stdlib[28],_bH_,_bG_); + case 2: + var + value=param[2], + name$1=param[1], + _bI_=yojson_of_runtime_value(value), + _bJ_=caml_call5(Yojson[11][5],0,0,0,0,_bI_), + _bK_=caml_call2(Stdlib_String[6],cst$13,name$1); + return caml_call3(Stdlib_Printf[4],_$_,_bK_,_bJ_); + default: + var pos=param[1]; + return caml_call6 + (Stdlib_Printf[4],_aa_,pos[1],pos[2],pos[3],pos[4],pos[5])}} + function take_while(p,l) + {if(! l)return _ab_; + var t=l[2],h=l[1]; + if(! caml_call1(p,h))return [0,0,l]; + var match=take_while(p,t),rest=match[2],t$0=match[1]; + return [0,[0,h,t$0],rest]} + function parse_raw_events(raw_events) + {var nb_raw_events=caml_call1(Stdlib_List[1],raw_events); + function is_function_call(infos) + {return 2 === caml_call1(Stdlib_List[1],infos)?1:0} + function is_var_def(name) + {return 2 === caml_call1(Stdlib_List[1],name)?1:0} + function parse_events(ctx) + {var ctx$0=ctx; + a: + for(;;) + {var _a3_=ctx$0[3]; + if(! _a3_) + {var _bz_=ctx$0[3],_bA_=caml_call1(Stdlib_List[9],ctx$0[2]); + return [0,ctx$0[1],_bA_,_bz_]} + var _a4_=_a3_[1]; + switch(_a4_[0]) + {case 0: + var rest=_a3_[2],infos=_a4_[1]; + if(3 === caml_call1(Stdlib_List[1],infos)) + {if(infos) + {var _a5_=infos[2]; + if(_a5_) + {var _a6_=_a5_[2]; + if(_a6_ && ! _a6_[2]) + {var + var_name=_a5_[1], + body_ctx=parse_events([0,empty,_Y_,rest]), + match$0=caml_call2(StringMap[29],var_name,ctx$0[1]); + if(match$0) + var ls$0=match$0[1],inputs=ls$0; + else + var inputs=0; + var + ctx$1= + [0, + ctx$0[1], + [0,[2,infos,inputs,body_ctx[2]],ctx$0[2]], + body_ctx[3]], + ctx$0=ctx$1; + continue}}} + return caml_call1(Stdlib[2],cst_unreachable_due_to_the_is_)} + break; + case 1: + var rest$0=_a3_[2],_a9_=caml_call1(Stdlib_List[9],ctx$0[2]); + return [0,ctx$0[1],_a9_,rest$0]; + case 2: + var rest$1=_a3_[2],name=_a4_[1]; + if(is_var_def(name)) + {var ctx$2=[0,ctx$0[1],ctx$0[2],rest$1],ctx$0=ctx$2;continue} + if(rest$1) + {var _a__=rest$1[1]; + if(0 === _a__[0]) + {var infos$0=_a__[1]; + if(is_function_call(infos$0)) + {var + match$1=parse_fun_call(ctx$0[3]), + fun_call=match$1[2], + rest$2=match$1[1], + ctx$3=[0,ctx$0[1],[0,[1,fun_call],ctx$0[2]],rest$2], + ctx$0=ctx$3; + continue}}} + break; + default: + var _a$_=_a3_[2]; + if(_a$_) + {var _ba_=_a$_[1]; + if(2 === _ba_[0]) + {var + rest$3=_a$_[2], + value=_ba_[2], + name$0=_ba_[1], + pos=_a4_[1], + _a1_=2 === caml_call1(Stdlib_List[1],name$0)?1:0; + if(_a1_) + var + _a2_=caml_call2(Stdlib_List[7],name$0,1), + _bb_=caml_call2(Stdlib_String[14],_a2_,46); + else + var _bb_=_a1_; + if(_bb_) + {if(name$0) + {var _bc_=name$0[2]; + if(_bc_ && ! _bc_[2]) + {var + var_dot_subscope_var_name=_bc_[1], + _bd_= + caml_call2(Stdlib_String[16],46,var_dot_subscope_var_name), + name$1=caml_call2(Stdlib_List[7],_bd_,0), + _bf_=ctx$0[1], + v=[0,[0,pos],name$0,value,0], + _be_=ctx$0[2], + match=caml_call2(StringMap[29],name$1,_bf_); + if(match) + var + ls=match[1], + _bB_=caml_call3(StringMap[4],name$1,[0,v,ls],_bf_); + else + var _bB_=caml_call3(StringMap[4],name$1,[0,v,0],_bf_); + var ctx$4=[0,_bB_,_be_,rest$3],ctx$0=ctx$4; + continue}} + return caml_call1 + (Stdlib[2],cst_unreachable_due_to_the_is_$0)} + var switch$0=0; + if(is_var_def(name$0)) + switch$0 = 1; + else + {var + _aZ_=3 === caml_call1(Stdlib_List[1],name$0)?1:0, + _a0_= + _aZ_ + ?runtime.caml_string_equal + (cst_output$0,caml_call2(Stdlib_List[7],name$0,2)) + :_aZ_; + if(_a0_) + switch$0 = 1; + else + if(rest$3) + {var _bg_=rest$3[1]; + if(0 === _bg_[0]) + {var infos$1=_bg_[1]; + if(is_function_call(infos$1)) + {var + raw_events$0=caml_call1(Stdlib_List[6],ctx$0[3]), + fun_calls=0, + rest$4=raw_events$0; + for(;;) + {var + match$2= + take_while + (function(param){return 2 === param[0]?1:0},rest$4), + _bh_=match$2[2]; + if(_bh_) + {var _bi_=_bh_[1]; + if(0 === _bi_[0]) + {var infos$2=_bi_[1]; + if(is_function_call(infos$2)) + {var + match$3=parse_fun_call(rest$4), + fun_call$0=match$3[2], + raw_events=match$3[1], + fun_calls$0=[0,fun_call$0,fun_calls], + fun_calls=fun_calls$0, + rest$4=raw_events; + continue}}} + var fun_calls$1=caml_call1(Stdlib_List[9],fun_calls); + if(rest$4) + {var _bj_=rest$4[1]; + if(2 === _bj_[0]) + var + rest$6=rest$4[2], + value$0=_bj_[2], + name$2=_bj_[1], + var_comp=[0,[0,[0,pos],name$2,value$0,[0,fun_calls$1]]], + rest$5=rest$6; + else + var + _bk_= + (nb_raw_events - caml_call1(Stdlib_List[1],rest$4) | 0) + + + 1 + | + 0, + _bl_=caml_call1(Stdlib[33],_bk_), + _bm_=caml_call2(Stdlib[28],_bl_,cst$14), + _bn_=caml_call2(Stdlib[28],cst$15,_bm_), + _bo_=raw_event_to_string(_bj_), + _bp_=caml_call2(Stdlib[28],_bo_,_bn_), + _bq_= + caml_call2(Stdlib[28],cst_expected_variable_definiti,_bp_), + _br_=caml_call2(Stdlib_String[6],cst$16,infos$1), + _bs_=caml_call2(Stdlib[28],_br_,_bq_), + _bt_=caml_call2(Stdlib[28],cst_Invalid_function_call,_bs_), + _bu_=caml_call1(Stdlib[2],_bt_), + var_comp=_bu_[2], + rest$5=_bu_[1]} + else + var + _bv_=caml_call2(Stdlib_String[6],cst$17,infos$1), + _bw_= + caml_call2(Stdlib[28],_bv_,cst_expected_variable_definiti$0), + _bx_=caml_call2(Stdlib[28],cst_Invalid_function_call$0,_bw_), + _by_=caml_call1(Stdlib[2],_bx_), + var_comp$0=_by_[2], + rest$7=_by_[1], + var_comp=var_comp$0, + rest$5=rest$7; + var + ctx$6=[0,ctx$0[1],[0,var_comp,ctx$0[2]],rest$5], + ctx$0=ctx$6; + continue a}}}}} + if(switch$0) + {var + ctx$5= + [0, + ctx$0[1], + [0,[0,[0,[0,pos],name$0,value,0]],ctx$0[2]], + rest$3], + ctx$0=ctx$5; + continue}}}} + var + _a7_=raw_event_to_string(_a4_), + _a8_=caml_call2(Stdlib[28],cst_Unexpected_event,_a7_); + return caml_call1(Stdlib[2],_a8_)}} + function parse_fun_call(events) + {var + match= + take_while + (function(param) + {if(2 !== param[0])return 0; var - var_dot_subscope_var_name = _bb_[1], - _bc_ = - caml_call2(Stdlib_String[16], 46, var_dot_subscope_var_name), - var_name$0 = caml_call2(Stdlib_List[7], _bc_, 0), - map$0 = ctx$0[1], - v = [0, [0, pos], name$0, value, 0], - _bd_ = ctx$0[2], - match = caml_call2(StringMap[29], var_name$0, map$0); - if(match) - var - ls = match[1], - _bw_ = caml_call3(StringMap[4], var_name$0, [0, v, ls], map$0); + name=param[1], + _aX_=3 === caml_call1(Stdlib_List[1],name)?1:0; + if(! _aX_)return _aX_; + var _aY_=caml_call2(Stdlib_List[7],name,2); + return caml_call2(Stdlib_String[10],cst_input,_aY_)}, + events), + _aT_=match[2]; + if(_aT_) + {var _aU_=_aT_[1]; + if(0 === _aU_[0]) + {var rest=_aT_[2],infos=_aU_[1],inputs=match[1]; + if(is_function_call(infos)) + {var + _aV_= + function(param) + {if(2 !== param[0])throw [0,Assert_failure,_ac_]; + var value=param[2],name=param[1]; + return [0,0,name,value,0]}, + fun_inputs=caml_call2(Stdlib_ListLabels[19],_aV_,inputs), + body_ctx=parse_events([0,empty,0,rest]), + body_rev=caml_call1(Stdlib_List[9],body_ctx[2]), + output=caml_call1(Stdlib_List[5],body_rev), + _aW_=caml_call1(Stdlib_List[6],body_rev), + body=caml_call1(Stdlib_List[9],_aW_), + rest$0=body_ctx[3]; + if(0 === output[0]) + var var_def=output[1],output$0=var_def; else var - _bw_ = caml_call3(StringMap[4], var_name$0, [0, v, 0], map$0); - var ctx$4 = [0, _bw_, _bd_, rest$3], ctx$0 = ctx$4; - continue; - } - } - return caml_call1(Stdlib[2], cst_unreachable_due_to_the_is_$0); - } - var switch$0 = 0; - if(is_var_def(name$0)) - switch$0 = 1; - else{ - var - _a2_ = 3 === caml_call1(Stdlib_List[1], name$0) ? 1 : 0, - _a3_ = - _a2_ - ? runtime.caml_string_equal - (cst_output$0, caml_call2(Stdlib_List[7], name$0, 2)) - : _a2_; - if(_a3_) - switch$0 = 1; - else if(rest$3){ - var match$5 = rest$3[1]; - if(0 === match$5[0]){ - var infos$1 = match$5[1]; - if(is_function_call(infos$1)){ - var - raw_events$1 = caml_call1(Stdlib_List[6], ctx$0[3]), - fun_calls = 0, - raw_events = raw_events$1; - for(;;){ - var - _be_ = - take_while - (function(param){return 2 === param[0] ? 1 : 0;}, - raw_events) - [2]; - if(_be_){ - var match$6 = _be_[1]; - if(0 === match$6[0]){ - var infos$2 = match$6[1]; - if(is_function_call(infos$2)){ - var - match$7 = parse_fun_call(raw_events), - fun_call$0 = match$7[2], - raw_events$0 = match$7[1], - fun_calls$0 = [0, fun_call$0, fun_calls], - fun_calls = fun_calls$0, - raw_events = raw_events$0; - continue; - } - } - } - var fun_calls$1 = caml_call1(Stdlib_List[9], fun_calls); - if(raw_events){ - var event$0 = raw_events[1]; - if(2 === event$0[0]) - var - rest$5 = raw_events[2], - value$0 = event$0[2], - name$1 = event$0[1], - var_comp = - [0, [0, [0, pos], name$1, value$0, [0, fun_calls$1]]], - rest$4 = rest$5; - else - var - _bf_ = - (nb_raw_events - caml_call1(Stdlib_List[1], raw_events) | 0) - + 1 - | 0, - _bg_ = caml_call1(Stdlib[33], _bf_), - _bh_ = caml_call2(Stdlib[28], _bg_, cst$14), - _bi_ = caml_call2(Stdlib[28], cst$15, _bh_), - _bj_ = raw_event_to_string(event$0), - _bk_ = caml_call2(Stdlib[28], _bj_, _bi_), - _bl_ = - caml_call2(Stdlib[28], cst_expected_variable_definiti, _bk_), - _bm_ = caml_call2(Stdlib_String[6], cst$16, infos$1), - _bn_ = caml_call2(Stdlib[28], _bm_, _bl_), - _bo_ = - caml_call2(Stdlib[28], cst_Invalid_function_call, _bn_), - _bp_ = caml_call1(Stdlib[2], _bo_), - var_comp = _bp_[2], - rest$4 = _bp_[1]; - } - else - var - _bq_ = caml_call2(Stdlib_String[6], cst$17, infos$1), - _br_ = - caml_call2 - (Stdlib[28], _bq_, cst_expected_variable_definiti$0), - _bs_ = - caml_call2(Stdlib[28], cst_Invalid_function_call$0, _br_), - _bt_ = caml_call1(Stdlib[2], _bs_), - var_comp$0 = _bt_[2], - rest$6 = _bt_[1], - var_comp = var_comp$0, - rest$4 = rest$6; - var - ctx$6 = [0, ctx$0[1], [0, var_comp, ctx$0[2]], rest$4], - ctx$0 = ctx$6; - continue a; - } - } - } - } - } - if(switch$0){ - var - ctx$5 = - [0, - ctx$0[1], - [0, [0, [0, [0, pos], name$0, value, 0]], ctx$0[2]], - rest$3], - ctx$0 = ctx$5; - continue; - } - } - } - } - var - _a8_ = raw_event_to_string(event), - _a9_ = caml_call2(Stdlib[28], cst_Unexpected_event, _a8_); - return caml_call1(Stdlib[2], _a9_); - } - } - function parse_fun_call(events){ - var - match = - take_while - (function(param){ - if(2 !== param[0]) return 0; - var - name = param[1], - _a0_ = 3 === caml_call1(Stdlib_List[1], name) ? 1 : 0; - if(! _a0_) return _a0_; - var _a1_ = caml_call2(Stdlib_List[7], name, 2); - return caml_call2(Stdlib_String[10], cst_input, _a1_); - }, - events), - _aX_ = match[2]; - if(_aX_){ - var match$0 = _aX_[1]; - if(0 === match$0[0]){ - var rest = _aX_[2], infos = match$0[1], inputs = match[1]; - if(is_function_call(infos)){ - var - _aY_ = - function(param){ - if(2 !== param[0]) - throw caml_maybe_attach_backtrace([0, Assert_failure, _ac_], 1); - var value = param[2], name = param[1]; - return [0, 0, name, value, 0]; - }, - fun_inputs = caml_call2(Stdlib_ListLabels[19], _aY_, inputs), - body_ctx = parse_events([0, empty, 0, rest]), - body_rev = caml_call1(Stdlib_List[9], body_ctx[2]), - output = caml_call1(Stdlib_List[5], body_rev), - _aZ_ = caml_call1(Stdlib_List[6], body_rev), - body = caml_call1(Stdlib_List[9], _aZ_), - rest$0 = body_ctx[3]; - if(0 === output[0]) - var var_def = output[1], output$0 = var_def; - else - var output$0 = caml_call1(Stdlib[2], cst_Missing_function_output_va); - return [0, rest$0, [0, infos, fun_inputs, body, output$0]]; - } - } - } - return caml_call1(Stdlib[2], cst_Invalid_start_of_function_); - } - try{var _aW_ = parse_events([0, empty, _Y_, raw_events]), ctx = _aW_;} - catch(exn$0){ - var exn = caml_wrap_exception(exn$0); - if(exn[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(exn, 0); - var msg = exn[2]; - caml_call2(Stdlib_Printf[3], _ad_, msg); - var ctx = empty_ctx; - } - return ctx[2]; - } - function handle_default(pos, exceptions, just, cons){ - var _aR_ = 0; - function _aS_(acc, except){ - try{var _aU_ = [0, caml_call1(except, 0)], new_val = _aU_;} - catch(_aV_){ - var _aT_ = caml_wrap_exception(_aV_); - if(_aT_ !== EmptyError) throw caml_maybe_attach_backtrace(_aT_, 0); - var new_val = 0; - } - if(! acc) return new_val; - if(new_val) - throw caml_maybe_attach_backtrace([0, ConflictError, pos], 1); - return acc; - } - var except = caml_call3(Stdlib_Array[17], _aS_, _aR_, exceptions); - if(except){var x = except[1]; return x;} - if(caml_call1(just, 0)) return caml_call1(cons, 0); - throw caml_maybe_attach_backtrace(EmptyError, 1); - } - function handle_default_opt(pos, exceptions, just, cons){ - function _aQ_(acc, except){ - if(0 === acc[0]) return except; - if(0 === except[0]) return acc; - throw caml_maybe_attach_backtrace([0, ConflictError, pos], 1); - } - var except = caml_call3(Stdlib_Array[17], _aQ_, _ae_, exceptions); - if(0 !== except[0]) return except; - if(0 === just[0]) return _af_; - var b = just[1]; - return b ? cons : _ag_; - } - function no_input(param){throw caml_maybe_attach_backtrace(EmptyError, 1);} - function compare_periods(p1, p2){ - try{ - var - p1_days = caml_call1(Dates_calc_Dates[18], p1), - p2_days = caml_call1(Dates_calc_Dates[18], p2), - _aO_ = runtime.caml_int_compare(p1_days, p2_days); - return _aO_; - } - catch(_aP_){ - var _aN_ = caml_wrap_exception(_aP_); - if(_aN_ === Dates_calc_Dates[2]) - throw caml_maybe_attach_backtrace(UncomparableDurations, 1); - throw caml_maybe_attach_backtrace(_aN_, 0); - } - } - function o_not(_aM_){return 1 - _aM_;} - function o_length(a){return a.length - 1;} - function o_minus_int(i1){return caml_call2(Z[13], Z[2], i1);} - function o_minus_rat(i1){return caml_call2(Q[39], Q[2], i1);} - function o_minus_mon(m1){return caml_call2(Z[13], Z[2], m1);} - var o_minus_dur = Dates_calc_Dates[13]; - function o_and(_aK_, _aJ_){var _aL_ = _aK_ ? _aJ_ : _aK_; return _aL_;} - function o_or(_aH_, _aG_){var _aI_ = _aH_ || _aG_; return _aI_;} - function o_xor(_aF_, _aE_){return _aF_ !== _aE_ ? 1 : 0;} - var o_eq = caml_equal, o_map = Stdlib_Array[15]; - function o_reduce(f, dft, a){ - var len = a.length - 1; - if(0 === len) return dft; - var r = [0, caml_check_bound(a, 0)[1]], _aB_ = len - 1 | 0, _aA_ = 1; - if(_aB_ >= 1){ - var i = _aA_; - for(;;){ - var _aC_ = caml_check_bound(a, i)[1 + i]; - r[1] = caml_call2(f, r[1], _aC_); - var _aD_ = i + 1 | 0; - if(_aB_ !== i){var i = _aD_; continue;} - break; - } - } - return r[1]; - } - var o_concat = Stdlib_Array[5]; - function o_filter(f, a){ + output$0= + caml_call1(Stdlib[2],cst_Missing_function_output_va); + return [0,rest$0,[0,infos,fun_inputs,body,output$0]]}}} + return caml_call1(Stdlib[2],cst_Invalid_start_of_function_)} + try + {var _aS_=parse_events([0,empty,_Y_,raw_events]),ctx=_aS_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] !== Stdlib[7])throw exn; + var msg=exn[2]; + caml_call2(Stdlib_Printf[3],_ad_,msg); + var ctx=empty_ctx} + return ctx[2]} + function handle_default(pos,exceptions,just,cons) + {var _aO_=0; + function _aP_(acc,except) + {try + {var _aQ_=[0,caml_call1(except,0)],new_val=_aQ_} + catch(_aR_) + {_aR_ = caml_wrap_exception(_aR_); + if(_aR_ !== EmptyError)throw _aR_; + var new_val=0} + if(! acc)return new_val; + if(new_val)throw [0,ConflictError,pos]; + return acc} + var except=caml_call3(Stdlib_Array[17],_aP_,_aO_,exceptions); + if(except){var x=except[1];return x} + if(caml_call1(just,0))return caml_call1(cons,0); + throw EmptyError} + function handle_default_opt(pos,exceptions,just,cons) + {function _aN_(acc,except) + {if(0 === acc[0])return except; + if(0 === except[0])return acc; + throw [0,ConflictError,pos]} + var except=caml_call3(Stdlib_Array[17],_aN_,_ae_,exceptions); + if(0 !== except[0])return except; + if(0 === just[0])return _af_; + var b=just[1]; + return b?cons:_ag_} + function no_input(param){throw EmptyError} + function compare_periods(p1,p2) + {try + {var + p1_days=caml_call1(Dates_calc_Dates[18],p1), + p2_days=caml_call1(Dates_calc_Dates[18],p2), + _aL_=runtime.caml_int_compare(p1_days,p2_days); + return _aL_} + catch(_aM_) + {_aM_ = caml_wrap_exception(_aM_); + if(_aM_ === Dates_calc_Dates[2])throw UncomparableDurations; + throw _aM_}} + function equal_periods(p1,p2) + {try + {var + _aI_=caml_call2(Dates_calc_Dates[15],p1,p2), + _aJ_=0 === caml_call1(Dates_calc_Dates[18],_aI_)?1:0; + return _aJ_} + catch(_aK_) + {_aK_ = caml_wrap_exception(_aK_); + if(_aK_ === Dates_calc_Dates[2])throw UncomparableDurations; + throw _aK_}} + function o_not(_aH_){return 1 - _aH_} + function o_length(a){return a.length - 1} + function o_minus_int(i1){return caml_call2(Z[13],Z[2],i1)} + function o_minus_rat(i1){return caml_call2(Q[39],Q[2],i1)} + function o_minus_mon(m1){return caml_call2(Z[13],Z[2],m1)} + var o_minus_dur=Dates_calc_Dates[13]; + function o_and(_aF_,_aE_){var _aG_=_aF_?_aE_:_aF_;return _aG_} + function o_or(_aC_,_aB_){var _aD_=_aC_ || _aB_;return _aD_} + function o_xor(_aA_,_az_){return _aA_ !== _az_?1:0} + var o_eq=caml_equal,o_map=Stdlib_Array[15]; + function o_reduce(f,dft,a) + {var len=a.length - 1; + if(0 === len)return dft; + var r=[0,caml_check_bound(a,0)[1]],_aw_=len - 1 | 0,_av_=1; + if(_aw_ >= 1) + {var i=_av_; + for(;;) + {var _ax_=caml_check_bound(a,i)[1 + i]; + r[1] = caml_call2(f,r[1],_ax_); + var _ay_=i + 1 | 0; + if(_aw_ !== i){var i=_ay_;continue} + break}} + return r[1]} + var o_concat=Stdlib_Array[5]; + function o_filter(f,a) + {var + _at_=caml_call1(Stdlib_Array[11],a), + _au_=caml_call2(Stdlib_List[41],f,_at_); + return caml_call1(Stdlib_Array[12],_au_)} + function o_add_int_int(i1,i2){return caml_call2(Z[12],i1,i2)} + function o_add_rat_rat(i1,i2){return caml_call2(Q[38],i1,i2)} + function o_add_mon_mon(m1,m2){return caml_call2(Z[12],m1,m2)} + function o_add_dat_dur(r,da,du) + {return caml_call3(Dates_calc_Dates[4],[0,r],da,du)} + var o_add_dur_dur=Dates_calc_Dates[14]; + function o_sub_int_int(i1,i2){return caml_call2(Z[13],i1,i2)} + function o_sub_rat_rat(i1,i2){return caml_call2(Q[39],i1,i2)} + function o_sub_mon_mon(m1,m2){return caml_call2(Z[13],m1,m2)} + var o_sub_dat_dat=Dates_calc_Dates[5]; + function o_sub_dat_dur(dat,dur) + {var _as_=caml_call1(Dates_calc_Dates[13],dur); + return caml_call3(Dates_calc_Dates[4],0,dat,_as_)} + var o_sub_dur_dur=Dates_calc_Dates[15]; + function o_mult_int_int(i1,i2){return caml_call2(Z[14],i1,i2)} + function o_mult_rat_rat(i1,i2){return caml_call2(Q[40],i1,i2)} + function o_mult_mon_rat(i1,i2) + {var + i1_abs=caml_call1(Z[10],i1), + i2_abs=caml_call1(Q[37],i2), + _an_=caml_call1(Q[20],i2), + sign_int=runtime.caml_mul(runtime.ml_z_sign(i1),_an_), + _ao_=caml_call1(Q[8],i1_abs), + rat_result=caml_call2(Q[40],_ao_,i2_abs), + _ap_=caml_call1(Q[17],rat_result), + match=runtime.ml_z_div_rem(caml_call1(Q[16],rat_result),_ap_), + remainder=match[2], + res=match[1], + _aq_=caml_call1(Q[17],rat_result); + if(! runtime.caml_greaterequal(caml_call2(Z[54],2,remainder),_aq_)) + return caml_call2(Z[54],res,sign_int); + var _ar_=caml_call2(Z[12],res,1); + return caml_call2(Z[54],_ar_,sign_int)} + function o_mult_dur_int(d,m) + {var _am_=caml_call1(Z[29],m); + return caml_call2(Dates_calc_Dates[16],d,_am_)} + function o_div_int_int(i1,i2) + {if(caml_equal(Z[2],i2))throw Stdlib[13]; + var _ak_=caml_call1(Q[8],i2),_al_=caml_call1(Q[8],i1); + return caml_call2(Q[42],_al_,_ak_)} + function o_div_rat_rat(i1,i2) + {if(caml_equal(Q[2],i2))throw Stdlib[13];return caml_call2(Q[42],i1,i2)} + function o_div_mon_mon(m1,m2) + {if(caml_equal(Z[2],m2))throw Stdlib[13]; + var _ai_=caml_call1(Q[8],m2),_aj_=caml_call1(Q[8],m1); + return caml_call2(Q[42],_aj_,_ai_)} + function o_div_mon_rat(m1,r1) + {if(caml_equal(Q[2],r1))throw Stdlib[13]; + return o_mult_mon_rat(m1,caml_call1(Q[41],r1))} + function o_div_dur_dur(d1,d2) + {try + {var + i2=caml_call1(Dates_calc_Dates[18],d2), + i1=caml_call1(Dates_calc_Dates[18],d1)} + catch(_ah_) + {_ah_ = caml_wrap_exception(_ah_); + if(_ah_ === Dates_calc_Dates[2])throw IndivisibleDurations; + throw _ah_} + return o_div_int_int(i1,i2)} + function o_lt_int_int(i1,i2){return runtime.ml_z_compare(i1,i2) < 0?1:0} + function o_lt_rat_rat(i1,i2){return caml_call2(Q[21],i1,i2) < 0?1:0} + function o_lt_mon_mon(m1,m2){return runtime.ml_z_compare(m1,m2) < 0?1:0} + function o_lt_dur_dur(d1,d2){return compare_periods(d1,d2) < 0?1:0} + function o_lt_dat_dat(d1,d2) + {return caml_call2(Dates_calc_Dates[6],d1,d2) < 0?1:0} + function o_lte_int_int(i1,i2){return runtime.ml_z_compare(i1,i2) <= 0?1:0} + function o_lte_rat_rat(i1,i2){return caml_call2(Q[21],i1,i2) <= 0?1:0} + function o_lte_mon_mon(m1,m2){return runtime.ml_z_compare(m1,m2) <= 0?1:0} + function o_lte_dur_dur(d1,d2){return compare_periods(d1,d2) <= 0?1:0} + function o_lte_dat_dat(d1,d2) + {return caml_call2(Dates_calc_Dates[6],d1,d2) <= 0?1:0} + function o_gt_int_int(i1,i2){return 0 < runtime.ml_z_compare(i1,i2)?1:0} + function o_gt_rat_rat(i1,i2){return 0 < caml_call2(Q[21],i1,i2)?1:0} + function o_gt_mon_mon(m1,m2){return 0 < runtime.ml_z_compare(m1,m2)?1:0} + function o_gt_dur_dur(d1,d2){return 0 < compare_periods(d1,d2)?1:0} + function o_gt_dat_dat(d1,d2) + {return 0 < caml_call2(Dates_calc_Dates[6],d1,d2)?1:0} + function o_gte_int_int(i1,i2){return 0 <= runtime.ml_z_compare(i1,i2)?1:0} + function o_gte_rat_rat(i1,i2){return 0 <= caml_call2(Q[21],i1,i2)?1:0} + function o_gte_mon_mon(m1,m2){return 0 <= runtime.ml_z_compare(m1,m2)?1:0} + function o_gte_dur_dur(d1,d2){return 0 <= compare_periods(d1,d2)?1:0} + function o_gte_dat_dat(d1,d2) + {return 0 <= caml_call2(Dates_calc_Dates[6],d1,d2)?1:0} + function o_eq_int_int(i1,i2){return runtime.ml_z_equal(i1,i2)} + function o_eq_rat_rat(i1,i2){return caml_call2(Q[22],i1,i2)} + function o_eq_mon_mon(m1,m2){return runtime.ml_z_equal(m1,m2)} + function o_eq_dur_dur(d1,d2){return equal_periods(d1,d2)} + function o_eq_dat_dat(d1,d2) + {return 0 === caml_call2(Dates_calc_Dates[6],d1,d2)?1:0} var - _ay_ = caml_call1(Stdlib_Array[11], a), - _az_ = caml_call2(Stdlib_List[41], f, _ay_); - return caml_call1(Stdlib_Array[12], _az_); - } - function o_add_int_int(i1, i2){return caml_call2(Z[12], i1, i2);} - function o_add_rat_rat(i1, i2){return caml_call2(Q[38], i1, i2);} - function o_add_mon_mon(m1, m2){return caml_call2(Z[12], m1, m2);} - function o_add_dat_dur(r, da, du){ - return caml_call3(Dates_calc_Dates[4], [0, r], da, du); - } - var o_add_dur_dur = Dates_calc_Dates[14]; - function o_sub_int_int(i1, i2){return caml_call2(Z[13], i1, i2);} - function o_sub_rat_rat(i1, i2){return caml_call2(Q[39], i1, i2);} - function o_sub_mon_mon(m1, m2){return caml_call2(Z[13], m1, m2);} - var o_sub_dat_dat = Dates_calc_Dates[5]; - function o_sub_dat_dur(dat, dur){ - var _ax_ = caml_call1(Dates_calc_Dates[13], dur); - return caml_call3(Dates_calc_Dates[4], 0, dat, _ax_); - } - var o_sub_dur_dur = Dates_calc_Dates[15]; - function o_mult_int_int(i1, i2){return caml_call2(Z[14], i1, i2);} - function o_mult_rat_rat(i1, i2){return caml_call2(Q[40], i1, i2);} - function o_mult_mon_rat(i1, i2){ - var - i1_abs = caml_call1(Z[10], i1), - i2_abs = caml_call1(Q[37], i2), - _as_ = caml_call1(Q[20], i2), - sign_int = runtime.caml_mul(runtime.ml_z_sign(i1), _as_), - _at_ = caml_call1(Q[8], i1_abs), - rat_result = caml_call2(Q[40], _at_, i2_abs), - _au_ = caml_call1(Q[17], rat_result), - match = runtime.ml_z_div_rem(caml_call1(Q[16], rat_result), _au_), - remainder = match[2], - res = match[1], - _av_ = caml_call1(Q[17], rat_result); - if(! runtime.caml_greaterequal(caml_call2(Z[54], 2, remainder), _av_)) - return caml_call2(Z[54], res, sign_int); - var _aw_ = caml_call2(Z[12], res, 1); - return caml_call2(Z[54], _aw_, sign_int); - } - function o_mult_dur_int(d, m){ - var _ar_ = caml_call1(Z[29], m); - return caml_call2(Dates_calc_Dates[16], d, _ar_); - } - function o_div_int_int(i1, i2){ - if(caml_equal(Z[2], i2)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); - var _ap_ = caml_call1(Q[8], i2), _aq_ = caml_call1(Q[8], i1); - return caml_call2(Q[42], _aq_, _ap_); - } - function o_div_rat_rat(i1, i2){ - if(caml_equal(Q[2], i2)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); - return caml_call2(Q[42], i1, i2); - } - function o_div_mon_mon(m1, m2){ - if(caml_equal(Z[2], m2)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); - var _an_ = caml_call1(Q[8], m2), _ao_ = caml_call1(Q[8], m1); - return caml_call2(Q[42], _ao_, _an_); - } - function o_div_mon_rat(m1, r1){ - if(caml_equal(Q[2], r1)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); - return o_mult_mon_rat(m1, caml_call1(Q[41], r1)); - } - function o_div_dur_dur(d1, d2){ - try{ - var - i2 = caml_call1(Dates_calc_Dates[18], d2), - i1 = caml_call1(Dates_calc_Dates[18], d1); - } - catch(_am_){ - var _al_ = caml_wrap_exception(_am_); - if(_al_ === Dates_calc_Dates[2]) - throw caml_maybe_attach_backtrace(IndivisibleDurations, 1); - throw caml_maybe_attach_backtrace(_al_, 0); - } - return o_div_int_int(i1, i2); - } - function o_lt_int_int(i1, i2){ - return runtime.ml_z_compare(i1, i2) < 0 ? 1 : 0; - } - function o_lt_rat_rat(i1, i2){ - return caml_call2(Q[21], i1, i2) < 0 ? 1 : 0; - } - function o_lt_mon_mon(m1, m2){ - return runtime.ml_z_compare(m1, m2) < 0 ? 1 : 0; - } - function o_lt_dur_dur(d1, d2){return compare_periods(d1, d2) < 0 ? 1 : 0;} - function o_lt_dat_dat(d1, d2){ - return caml_call2(Dates_calc_Dates[6], d1, d2) < 0 ? 1 : 0; - } - function o_lte_int_int(i1, i2){ - return runtime.ml_z_compare(i1, i2) <= 0 ? 1 : 0; - } - function o_lte_rat_rat(i1, i2){ - return caml_call2(Q[21], i1, i2) <= 0 ? 1 : 0; - } - function o_lte_mon_mon(m1, m2){ - return runtime.ml_z_compare(m1, m2) <= 0 ? 1 : 0; - } - function o_lte_dur_dur(d1, d2){ - return compare_periods(d1, d2) <= 0 ? 1 : 0; - } - function o_lte_dat_dat(d1, d2){ - return caml_call2(Dates_calc_Dates[6], d1, d2) <= 0 ? 1 : 0; - } - function o_gt_int_int(i1, i2){ - return 0 < runtime.ml_z_compare(i1, i2) ? 1 : 0; - } - function o_gt_rat_rat(i1, i2){ - return 0 < caml_call2(Q[21], i1, i2) ? 1 : 0; - } - function o_gt_mon_mon(m1, m2){ - return 0 < runtime.ml_z_compare(m1, m2) ? 1 : 0; - } - function o_gt_dur_dur(d1, d2){return 0 < compare_periods(d1, d2) ? 1 : 0;} - function o_gt_dat_dat(d1, d2){ - return 0 < caml_call2(Dates_calc_Dates[6], d1, d2) ? 1 : 0; - } - function o_gte_int_int(i1, i2){ - return 0 <= runtime.ml_z_compare(i1, i2) ? 1 : 0; - } - function o_gte_rat_rat(i1, i2){ - return 0 <= caml_call2(Q[21], i1, i2) ? 1 : 0; - } - function o_gte_mon_mon(m1, m2){ - return 0 <= runtime.ml_z_compare(m1, m2) ? 1 : 0; - } - function o_gte_dur_dur(d1, d2){ - return 0 <= compare_periods(d1, d2) ? 1 : 0; - } - function o_gte_dat_dat(d1, d2){ - return 0 <= caml_call2(Dates_calc_Dates[6], d1, d2) ? 1 : 0; - } - function o_eq_int_int(i1, i2){return runtime.ml_z_equal(i1, i2);} - function o_eq_rat_rat(i1, i2){return caml_call2(Q[22], i1, i2);} - function o_eq_mon_mon(m1, m2){return runtime.ml_z_equal(m1, m2);} - function o_eq_dur_dur(d1, d2){ - try{ - var - _ai_ = caml_call2(Dates_calc_Dates[15], d1, d2), - _aj_ = 0 === caml_call1(Dates_calc_Dates[18], _ai_) ? 1 : 0; - return _aj_; - } - catch(_ak_){ - var _ah_ = caml_wrap_exception(_ak_); - if(_ah_ === Dates_calc_Dates[2]) - throw caml_maybe_attach_backtrace(UncomparableDurations, 1); - throw caml_maybe_attach_backtrace(_ah_, 0); - } - } - function o_eq_dat_dat(d1, d2){ - return 0 === caml_call2(Dates_calc_Dates[6], d1, d2) ? 1 : 0; - } - var - o_fold = Stdlib_Array[17], - Oper = + o_fold=Stdlib_Array[17], + Oper= [0, o_not, o_length, @@ -44525,77 +44107,77 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ o_eq_dur_dur, o_eq_dat_dat, o_fold], - o_not$0 = Oper[1], - o_length$0 = Oper[2], - o_torat_int = Oper[3], - o_torat_mon = Oper[4], - o_tomoney_rat = Oper[5], - o_getDay = Oper[6], - o_getMonth = Oper[7], - o_getYear = Oper[8], - o_firstDayOfMonth = Oper[9], - o_lastDayOfMonth = Oper[10], - o_round_mon = Oper[11], - o_round_rat = Oper[12], - o_minus_int$0 = Oper[13], - o_minus_rat$0 = Oper[14], - o_minus_mon$0 = Oper[15], - o_minus_dur$0 = Oper[16], - o_and$0 = Oper[17], - o_or$0 = Oper[18], - o_xor$0 = Oper[19], - o_eq$0 = Oper[20], - o_map$0 = Oper[21], - o_reduce$0 = Oper[22], - o_concat$0 = Oper[23], - o_filter$0 = Oper[24], - o_add_int_int$0 = Oper[25], - o_add_rat_rat$0 = Oper[26], - o_add_mon_mon$0 = Oper[27], - o_add_dat_dur$0 = Oper[28], - o_add_dur_dur$0 = Oper[29], - o_sub_int_int$0 = Oper[30], - o_sub_rat_rat$0 = Oper[31], - o_sub_mon_mon$0 = Oper[32], - o_sub_dat_dat$0 = Oper[33], - o_sub_dat_dur$0 = Oper[34], - o_sub_dur_dur$0 = Oper[35], - o_mult_int_int$0 = Oper[36], - o_mult_rat_rat$0 = Oper[37], - o_mult_mon_rat$0 = Oper[38], - o_mult_dur_int$0 = Oper[39], - o_div_int_int$0 = Oper[40], - o_div_rat_rat$0 = Oper[41], - o_div_mon_mon$0 = Oper[42], - o_div_mon_rat$0 = Oper[43], - o_div_dur_dur$0 = Oper[44], - o_lt_int_int$0 = Oper[45], - o_lt_rat_rat$0 = Oper[46], - o_lt_mon_mon$0 = Oper[47], - o_lt_dur_dur$0 = Oper[48], - o_lt_dat_dat$0 = Oper[49], - o_lte_int_int$0 = Oper[50], - o_lte_rat_rat$0 = Oper[51], - o_lte_mon_mon$0 = Oper[52], - o_lte_dur_dur$0 = Oper[53], - o_lte_dat_dat$0 = Oper[54], - o_gt_int_int$0 = Oper[55], - o_gt_rat_rat$0 = Oper[56], - o_gt_mon_mon$0 = Oper[57], - o_gt_dur_dur$0 = Oper[58], - o_gt_dat_dat$0 = Oper[59], - o_gte_int_int$0 = Oper[60], - o_gte_rat_rat$0 = Oper[61], - o_gte_mon_mon$0 = Oper[62], - o_gte_dur_dur$0 = Oper[63], - o_gte_dat_dat$0 = Oper[64], - o_eq_int_int$0 = Oper[65], - o_eq_rat_rat$0 = Oper[66], - o_eq_mon_mon$0 = Oper[67], - o_eq_dur_dur$0 = Oper[68], - o_eq_dat_dat$0 = Oper[69], - o_fold$0 = Oper[70], - Runtime_ocaml_Runtime = + o_not$0=Oper[1], + o_length$0=Oper[2], + o_torat_int=Oper[3], + o_torat_mon=Oper[4], + o_tomoney_rat=Oper[5], + o_getDay=Oper[6], + o_getMonth=Oper[7], + o_getYear=Oper[8], + o_firstDayOfMonth=Oper[9], + o_lastDayOfMonth=Oper[10], + o_round_mon=Oper[11], + o_round_rat=Oper[12], + o_minus_int$0=Oper[13], + o_minus_rat$0=Oper[14], + o_minus_mon$0=Oper[15], + o_minus_dur$0=Oper[16], + o_and$0=Oper[17], + o_or$0=Oper[18], + o_xor$0=Oper[19], + o_eq$0=Oper[20], + o_map$0=Oper[21], + o_reduce$0=Oper[22], + o_concat$0=Oper[23], + o_filter$0=Oper[24], + o_add_int_int$0=Oper[25], + o_add_rat_rat$0=Oper[26], + o_add_mon_mon$0=Oper[27], + o_add_dat_dur$0=Oper[28], + o_add_dur_dur$0=Oper[29], + o_sub_int_int$0=Oper[30], + o_sub_rat_rat$0=Oper[31], + o_sub_mon_mon$0=Oper[32], + o_sub_dat_dat$0=Oper[33], + o_sub_dat_dur$0=Oper[34], + o_sub_dur_dur$0=Oper[35], + o_mult_int_int$0=Oper[36], + o_mult_rat_rat$0=Oper[37], + o_mult_mon_rat$0=Oper[38], + o_mult_dur_int$0=Oper[39], + o_div_int_int$0=Oper[40], + o_div_rat_rat$0=Oper[41], + o_div_mon_mon$0=Oper[42], + o_div_mon_rat$0=Oper[43], + o_div_dur_dur$0=Oper[44], + o_lt_int_int$0=Oper[45], + o_lt_rat_rat$0=Oper[46], + o_lt_mon_mon$0=Oper[47], + o_lt_dur_dur$0=Oper[48], + o_lt_dat_dat$0=Oper[49], + o_lte_int_int$0=Oper[50], + o_lte_rat_rat$0=Oper[51], + o_lte_mon_mon$0=Oper[52], + o_lte_dur_dur$0=Oper[53], + o_lte_dat_dat$0=Oper[54], + o_gt_int_int$0=Oper[55], + o_gt_rat_rat$0=Oper[56], + o_gt_mon_mon$0=Oper[57], + o_gt_dur_dur$0=Oper[58], + o_gt_dat_dat$0=Oper[59], + o_gte_int_int$0=Oper[60], + o_gte_rat_rat$0=Oper[61], + o_gte_mon_mon$0=Oper[62], + o_gte_dur_dur$0=Oper[63], + o_gte_dat_dat$0=Oper[64], + o_eq_int_int$0=Oper[65], + o_eq_rat_rat$0=Oper[66], + o_eq_mon_mon$0=Oper[67], + o_eq_dur_dur$0=Oper[68], + o_eq_dat_dat$0=Oper[69], + o_fold$0=Oper[70], + Runtime_ocaml_Runtime= [0, yojson_of_source_position, EmptyError, @@ -44620,7 +44202,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ yojson_of_var_def, yojson_of_fun_call, retrieve_log, - [0, parse_raw_events], + [0,parse_raw_events], reset_log, log_begin_call, log_end_call, @@ -44733,159 +44315,1635 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ o_eq_dur_dur$0, o_eq_dat_dat$0, o_fold$0]; - runtime.caml_register_global - (130, Runtime_ocaml_Runtime, "Runtime_ocaml__Runtime"); - return; - } + caml_register_global(131,Runtime_ocaml_Runtime,"Runtime_ocaml__Runtime"); + return} (globalThis)); -//# 1 "../../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" +//# 1 "../../.js/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - -//# 18 "../../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" -(function(globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - s = "5.1.1", - git_version = "", - Jsoo_runtime_Runtime_version = [0, s, git_version]; - runtime.caml_register_global - (2, Jsoo_runtime_Runtime_version, "Jsoo_runtime__Runtime_version"); - return; - } - (globalThis)); - -//# 33 "../../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" (function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Jsoo_runtime_Runtime_version = global_data.Jsoo_runtime__Runtime_version, - Stdlib_Callback = global_data.Stdlib__Callback, - Js = [0], - Config = [0], - version = Jsoo_runtime_Runtime_version[1], - git_version = Jsoo_runtime_Runtime_version[2], - Sys = [0, Config, version, git_version], - Exn = [248, "Jsoo_runtime.Error.Exn", runtime.caml_fresh_oo_id(0)]; - caml_call2(Stdlib_Callback[2], "jsError", [0, Exn, [0]]); - function raise(exn){throw exn;} - var - Error = + (globalThis) + {"use strict"; + var + runtime=globalThis.jsoo_runtime, + caml_exn_with_js_backtrace=runtime.caml_exn_with_js_backtrace, + caml_register_global=runtime.caml_register_global, + caml_string_of_jsbytes=runtime.caml_string_of_jsbytes; + function caml_call2(f,a0,a1) + {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} + var + global_data=runtime.caml_get_global_data(), + version=caml_string_of_jsbytes("5.0.1"), + git_version=caml_string_of_jsbytes(""), + cst_Jsoo_runtime_Error_Exn= + caml_string_of_jsbytes("Jsoo_runtime.Error.Exn"), + cst_jsError=caml_string_of_jsbytes("jsError"), + Stdlib_Callback=global_data.Stdlib__Callback, + Jsoo_runtime=[0]; + caml_register_global(5,Jsoo_runtime,"Jsoo_runtime__"); + var Jsoo_runtime_Runtime_version=[0,version,git_version]; + caml_register_global + (6,Jsoo_runtime_Runtime_version,"Jsoo_runtime__Runtime_version"); + var + Js=[0], + Config=[0], + Sys=[0,Config,version,git_version], + Exn=[248,cst_Jsoo_runtime_Error_Exn,runtime.caml_fresh_oo_id(0)]; + caml_call2(Stdlib_Callback[2],cst_jsError,[0,Exn,[0]]); + function raise(exn){throw exn} + var + Error= [0, raise, - runtime.caml_exn_with_js_backtrace, + caml_exn_with_js_backtrace, runtime.caml_js_error_option_of_exception, Exn], - For_compatibility_only = [0], - Bigstring = [0], - Typed_array = [0, Bigstring], - Int64 = [0], - Jsoo_runtime = - [0, Js, Sys, Error, For_compatibility_only, Typed_array, Int64]; - runtime.caml_register_global(5, Jsoo_runtime, "Jsoo_runtime"); - return; - } + For_compatibility_only=[0], + Bigstring=[0], + Typed_array=[0,Bigstring], + Int64=[0], + Jsoo_runtime$0=[0,Js,Sys,Error,For_compatibility_only,Typed_array,Int64]; + caml_register_global(8,Jsoo_runtime$0,"Jsoo_runtime"); + return} (globalThis)); -//# 1 "../../.js/default/js_of_ocaml/js_of_ocaml.cma.js" +//# 1 "../../.js/js_of_ocaml/js_of_ocaml.cma.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - -//# 19 "../../.js/default/js_of_ocaml/js_of_ocaml.cma.js" (function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - global_data = runtime.caml_get_global_data(), - Stdlib_String = global_data.Stdlib__String, - Stdlib_Char = global_data.Stdlib__Char, - Poly = [0]; - function max(x, y){return y <= x ? x : y;} - function min(x, y){return x <= y ? x : y;} - var - Int_replace_polymorphic_compar = [0, max, min], - make = Stdlib_String[1], - init = Stdlib_String[2], - empty = Stdlib_String[3], - of_bytes = Stdlib_String[4], - to_bytes = Stdlib_String[5], - concat = Stdlib_String[6], - cat = Stdlib_String[7], - compare = Stdlib_String[9], - starts_with = Stdlib_String[10], - ends_with = Stdlib_String[11], - contains_from = Stdlib_String[12], - rcontains_from = Stdlib_String[13], - contains = Stdlib_String[14], - sub = Stdlib_String[15], - split_on_char = Stdlib_String[16], - map = Stdlib_String[17], - mapi = Stdlib_String[18], - fold_left = Stdlib_String[19], - fold_right = Stdlib_String[20], - for_all = Stdlib_String[21], - exists = Stdlib_String[22], - trim = Stdlib_String[23], - escaped = Stdlib_String[24], - uppercase_ascii = Stdlib_String[25], - lowercase_ascii = Stdlib_String[26], - capitalize_ascii = Stdlib_String[27], - uncapitalize_ascii = Stdlib_String[28], - iter = Stdlib_String[29], - iteri = Stdlib_String[30], - index_from = Stdlib_String[31], - index_from_opt = Stdlib_String[32], - rindex_from = Stdlib_String[33], - rindex_from_opt = Stdlib_String[34], - index = Stdlib_String[35], - index_opt = Stdlib_String[36], - rindex = Stdlib_String[37], - rindex_opt = Stdlib_String[38], - to_seq = Stdlib_String[39], - to_seqi = Stdlib_String[40], - of_seq = Stdlib_String[41], - get_utf_8_uchar = Stdlib_String[42], - is_valid_utf_8 = Stdlib_String[43], - get_utf_16be_uchar = Stdlib_String[44], - is_valid_utf_16be = Stdlib_String[45], - get_utf_16le_uchar = Stdlib_String[46], - is_valid_utf_16le = Stdlib_String[47], - blit = Stdlib_String[48], - copy = Stdlib_String[49], - fill = Stdlib_String[50], - uppercase = Stdlib_String[51], - lowercase = Stdlib_String[52], - capitalize = Stdlib_String[53], - uncapitalize = Stdlib_String[54], - get_uint8 = Stdlib_String[55], - get_int8 = Stdlib_String[56], - get_uint16_ne = Stdlib_String[57], - get_uint16_be = Stdlib_String[58], - get_uint16_le = Stdlib_String[59], - get_int16_ne = Stdlib_String[60], - get_int16_be = Stdlib_String[61], - get_int16_le = Stdlib_String[62], - get_int32_ne = Stdlib_String[63], - get_int32_be = Stdlib_String[64], - get_int32_le = Stdlib_String[65], - get_int64_ne = Stdlib_String[66], - get_int64_be = Stdlib_String[67], - get_int64_le = Stdlib_String[68], - equal = runtime.caml_string_equal, - String = + (globalThis) + {"use strict"; + var + jsoo_exports=typeof module === "object" && module.exports || globalThis, + runtime=globalThis.jsoo_runtime, + caml_float_of_string=runtime.caml_float_of_string, + caml_fresh_oo_id=runtime.caml_fresh_oo_id, + caml_int_of_string=runtime.caml_int_of_string, + caml_js_from_array=runtime.caml_js_from_array, + caml_js_get=runtime.caml_js_get, + caml_js_html_escape=runtime.caml_js_html_escape, + caml_js_set=runtime.caml_js_set, + caml_js_wrap_callback=runtime.caml_js_wrap_callback, + caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback, + caml_jsbytes_of_string=runtime.caml_jsbytes_of_string, + caml_jsstring_of_string=runtime.caml_jsstring_of_string, + caml_list_of_js_array=runtime.caml_list_of_js_array, + caml_ml_string_length=runtime.caml_ml_string_length, + caml_register_global=runtime.caml_register_global, + caml_string_compare=runtime.caml_string_compare, + caml_string_notequal=runtime.caml_string_notequal, + caml_string_of_array=runtime.caml_string_of_array, + caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, + caml_string_of_jsstring=runtime.caml_string_of_jsstring, + caml_wrap_exception=runtime.caml_wrap_exception; + function caml_call1(f,a0) + {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} + function caml_call2(f,a0,a1) + {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} + function caml_call3(f,a0,a1,a2) + {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} + function caml_call4(f,a0,a1,a2,a3) + {return f.length == 4 + ?f(a0,a1,a2,a3) + :runtime.caml_call_gen(f,[a0,a1,a2,a3])} + function caml_call5(f,a0,a1,a2,a3,a4) + {return f.length == 5 + ?f(a0,a1,a2,a3,a4) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} + var + global_data=runtime.caml_get_global_data(), + cst_parseFloat=caml_string_of_jsbytes("parseFloat"), + cst_parseInt=caml_string_of_jsbytes("parseInt"), + cst_can_t_retrieve_file_name_n= + caml_string_of_jsbytes("can't retrieve file name: not implemented"), + cst_endings=caml_string_of_jsbytes("endings"), + cst_type=caml_string_of_jsbytes("type"), + cst_loadstart=caml_string_of_jsbytes("loadstart"), + cst_progress=caml_string_of_jsbytes("progress"), + cst_abort=caml_string_of_jsbytes("abort"), + cst_error=caml_string_of_jsbytes("error"), + cst_load=caml_string_of_jsbytes("load"), + cst_loadend=caml_string_of_jsbytes("loadend"), + cst_a$1=caml_string_of_jsbytes("a"), + cst_area$1=caml_string_of_jsbytes("area"), + cst_audio$1=caml_string_of_jsbytes("audio"), + cst_base$1=caml_string_of_jsbytes("base"), + cst_blockquote$1=caml_string_of_jsbytes("blockquote"), + cst_body$1=caml_string_of_jsbytes("body"), + cst_br$1=caml_string_of_jsbytes("br"), + cst_button$1=caml_string_of_jsbytes("button"), + cst_canvas$1=caml_string_of_jsbytes("canvas"), + cst_caption$1=caml_string_of_jsbytes("caption"), + cst_col$1=caml_string_of_jsbytes("col"), + cst_colgroup$1=caml_string_of_jsbytes("colgroup"), + cst_del$1=caml_string_of_jsbytes("del"), + cst_div$1=caml_string_of_jsbytes("div"), + cst_dl$1=caml_string_of_jsbytes("dl"), + cst_embed$1=caml_string_of_jsbytes("embed"), + cst_fieldset$1=caml_string_of_jsbytes("fieldset"), + cst_form$1=caml_string_of_jsbytes("form"), + cst_frame$1=caml_string_of_jsbytes("frame"), + cst_frameset$1=caml_string_of_jsbytes("frameset"), + cst_h1$1=caml_string_of_jsbytes("h1"), + cst_h2$1=caml_string_of_jsbytes("h2"), + cst_h3$1=caml_string_of_jsbytes("h3"), + cst_h4$1=caml_string_of_jsbytes("h4"), + cst_h5$1=caml_string_of_jsbytes("h5"), + cst_h6$1=caml_string_of_jsbytes("h6"), + cst_head$1=caml_string_of_jsbytes("head"), + cst_hr$1=caml_string_of_jsbytes("hr"), + cst_html$1=caml_string_of_jsbytes("html"), + cst_iframe$1=caml_string_of_jsbytes("iframe"), + cst_img$1=caml_string_of_jsbytes("img"), + cst_input$2=caml_string_of_jsbytes("input"), + cst_ins$1=caml_string_of_jsbytes("ins"), + cst_label$1=caml_string_of_jsbytes("label"), + cst_legend$1=caml_string_of_jsbytes("legend"), + cst_li$1=caml_string_of_jsbytes("li"), + cst_link$1=caml_string_of_jsbytes("link"), + cst_map$1=caml_string_of_jsbytes("map"), + cst_meta$1=caml_string_of_jsbytes("meta"), + cst_object$1=caml_string_of_jsbytes("object"), + cst_ol$1=caml_string_of_jsbytes("ol"), + cst_optgroup$1=caml_string_of_jsbytes("optgroup"), + cst_option$1=caml_string_of_jsbytes("option"), + cst_p$1=caml_string_of_jsbytes("p"), + cst_param$1=caml_string_of_jsbytes("param"), + cst_pre$1=caml_string_of_jsbytes("pre"), + cst_q$1=caml_string_of_jsbytes("q"), + cst_script$1=caml_string_of_jsbytes("script"), + cst_select$2=caml_string_of_jsbytes("select"), + cst_style$1=caml_string_of_jsbytes("style"), + cst_table$1=caml_string_of_jsbytes("table"), + cst_tbody$1=caml_string_of_jsbytes("tbody"), + cst_td$1=caml_string_of_jsbytes("td"), + cst_textarea$1=caml_string_of_jsbytes("textarea"), + cst_tfoot$1=caml_string_of_jsbytes("tfoot"), + cst_th$1=caml_string_of_jsbytes("th"), + cst_thead$1=caml_string_of_jsbytes("thead"), + cst_title$1=caml_string_of_jsbytes("title"), + cst_tr$1=caml_string_of_jsbytes("tr"), + cst_ul$1=caml_string_of_jsbytes("ul"), + cst_video$1=caml_string_of_jsbytes("video"), + cst_KeyH=caml_string_of_jsbytes("KeyH"), + cst_Digit6=caml_string_of_jsbytes("Digit6"), + cst_BrowserRefresh=caml_string_of_jsbytes("BrowserRefresh"), + cst_Backslash=caml_string_of_jsbytes("Backslash"), + cst_AltLeft=caml_string_of_jsbytes("AltLeft"), + cst_AltRight=caml_string_of_jsbytes("AltRight"), + cst_ArrowDown=caml_string_of_jsbytes("ArrowDown"), + cst_ArrowLeft=caml_string_of_jsbytes("ArrowLeft"), + cst_ArrowRight=caml_string_of_jsbytes("ArrowRight"), + cst_ArrowUp=caml_string_of_jsbytes("ArrowUp"), + cst_Backquote=caml_string_of_jsbytes("Backquote"), + cst_Backspace=caml_string_of_jsbytes("Backspace"), + cst_BracketLeft=caml_string_of_jsbytes("BracketLeft"), + cst_BracketRight=caml_string_of_jsbytes("BracketRight"), + cst_BrowserBack=caml_string_of_jsbytes("BrowserBack"), + cst_BrowserFavorites=caml_string_of_jsbytes("BrowserFavorites"), + cst_BrowserForward=caml_string_of_jsbytes("BrowserForward"), + cst_BrowserHome=caml_string_of_jsbytes("BrowserHome"), + cst_Delete=caml_string_of_jsbytes("Delete"), + cst_BrowserSearch=caml_string_of_jsbytes("BrowserSearch"), + cst_BrowserStop=caml_string_of_jsbytes("BrowserStop"), + cst_CapsLock=caml_string_of_jsbytes("CapsLock"), + cst_Comma=caml_string_of_jsbytes("Comma"), + cst_ContextMenu=caml_string_of_jsbytes("ContextMenu"), + cst_ControlLeft=caml_string_of_jsbytes("ControlLeft"), + cst_ControlRight=caml_string_of_jsbytes("ControlRight"), + cst_Digit0=caml_string_of_jsbytes("Digit0"), + cst_Digit1=caml_string_of_jsbytes("Digit1"), + cst_Digit2=caml_string_of_jsbytes("Digit2"), + cst_Digit3=caml_string_of_jsbytes("Digit3"), + cst_Digit4=caml_string_of_jsbytes("Digit4"), + cst_Digit5=caml_string_of_jsbytes("Digit5"), + cst_F6=caml_string_of_jsbytes("F6"), + cst_F1=caml_string_of_jsbytes("F1"), + cst_Digit7=caml_string_of_jsbytes("Digit7"), + cst_Digit8=caml_string_of_jsbytes("Digit8"), + cst_Digit9=caml_string_of_jsbytes("Digit9"), + cst_End=caml_string_of_jsbytes("End"), + cst_Enter=caml_string_of_jsbytes("Enter"), + cst_Equal=caml_string_of_jsbytes("Equal"), + cst_Escape=caml_string_of_jsbytes("Escape"), + cst_F10=caml_string_of_jsbytes("F10"), + cst_F11=caml_string_of_jsbytes("F11"), + cst_F12=caml_string_of_jsbytes("F12"), + cst_F2=caml_string_of_jsbytes("F2"), + cst_F3=caml_string_of_jsbytes("F3"), + cst_F4=caml_string_of_jsbytes("F4"), + cst_F5=caml_string_of_jsbytes("F5"), + cst_KeyA=caml_string_of_jsbytes("KeyA"), + cst_F7=caml_string_of_jsbytes("F7"), + cst_F8=caml_string_of_jsbytes("F8"), + cst_F9=caml_string_of_jsbytes("F9"), + cst_Home=caml_string_of_jsbytes("Home"), + cst_Insert=caml_string_of_jsbytes("Insert"), + cst_IntlBackslash=caml_string_of_jsbytes("IntlBackslash"), + cst_IntlYen=caml_string_of_jsbytes("IntlYen"), + cst_KeyB=caml_string_of_jsbytes("KeyB"), + cst_KeyC=caml_string_of_jsbytes("KeyC"), + cst_KeyD=caml_string_of_jsbytes("KeyD"), + cst_KeyE=caml_string_of_jsbytes("KeyE"), + cst_KeyF=caml_string_of_jsbytes("KeyF"), + cst_KeyG=caml_string_of_jsbytes("KeyG"), + cst_Numpad4=caml_string_of_jsbytes("Numpad4"), + cst_KeyX=caml_string_of_jsbytes("KeyX"), + cst_KeyP=caml_string_of_jsbytes("KeyP"), + cst_KeyI=caml_string_of_jsbytes("KeyI"), + cst_KeyJ=caml_string_of_jsbytes("KeyJ"), + cst_KeyK=caml_string_of_jsbytes("KeyK"), + cst_KeyL=caml_string_of_jsbytes("KeyL"), + cst_KeyM=caml_string_of_jsbytes("KeyM"), + cst_KeyN=caml_string_of_jsbytes("KeyN"), + cst_KeyO=caml_string_of_jsbytes("KeyO"), + cst_KeyQ=caml_string_of_jsbytes("KeyQ"), + cst_KeyR=caml_string_of_jsbytes("KeyR"), + cst_KeyS=caml_string_of_jsbytes("KeyS"), + cst_KeyT=caml_string_of_jsbytes("KeyT"), + cst_KeyU=caml_string_of_jsbytes("KeyU"), + cst_KeyV=caml_string_of_jsbytes("KeyV"), + cst_KeyW=caml_string_of_jsbytes("KeyW"), + cst_MetaRight=caml_string_of_jsbytes("MetaRight"), + cst_KeyY=caml_string_of_jsbytes("KeyY"), + cst_KeyZ=caml_string_of_jsbytes("KeyZ"), + cst_MediaPlayPause=caml_string_of_jsbytes("MediaPlayPause"), + cst_MediaStop=caml_string_of_jsbytes("MediaStop"), + cst_MediaTrackNext=caml_string_of_jsbytes("MediaTrackNext"), + cst_MediaTrackPrevious=caml_string_of_jsbytes("MediaTrackPrevious"), + cst_MetaLeft=caml_string_of_jsbytes("MetaLeft"), + cst_Minus=caml_string_of_jsbytes("Minus"), + cst_NumLock=caml_string_of_jsbytes("NumLock"), + cst_Numpad0=caml_string_of_jsbytes("Numpad0"), + cst_Numpad1=caml_string_of_jsbytes("Numpad1"), + cst_Numpad2=caml_string_of_jsbytes("Numpad2"), + cst_Numpad3=caml_string_of_jsbytes("Numpad3"), + cst_PageUp=caml_string_of_jsbytes("PageUp"), + cst_NumpadDivide=caml_string_of_jsbytes("NumpadDivide"), + cst_Numpad5=caml_string_of_jsbytes("Numpad5"), + cst_Numpad6=caml_string_of_jsbytes("Numpad6"), + cst_Numpad7=caml_string_of_jsbytes("Numpad7"), + cst_Numpad8=caml_string_of_jsbytes("Numpad8"), + cst_Numpad9=caml_string_of_jsbytes("Numpad9"), + cst_NumpadAdd=caml_string_of_jsbytes("NumpadAdd"), + cst_NumpadDecimal=caml_string_of_jsbytes("NumpadDecimal"), + cst_NumpadEnter=caml_string_of_jsbytes("NumpadEnter"), + cst_NumpadEqual=caml_string_of_jsbytes("NumpadEqual"), + cst_NumpadMultiply=caml_string_of_jsbytes("NumpadMultiply"), + cst_NumpadSubtract=caml_string_of_jsbytes("NumpadSubtract"), + cst_OSLeft=caml_string_of_jsbytes("OSLeft"), + cst_OSRight=caml_string_of_jsbytes("OSRight"), + cst_PageDown=caml_string_of_jsbytes("PageDown"), + cst_ShiftRight=caml_string_of_jsbytes("ShiftRight"), + cst_Pause=caml_string_of_jsbytes("Pause"), + cst_Period=caml_string_of_jsbytes("Period"), + cst_PrintScreen=caml_string_of_jsbytes("PrintScreen"), + cst_Quote=caml_string_of_jsbytes("Quote"), + cst_ScrollLock=caml_string_of_jsbytes("ScrollLock"), + cst_Semicolon=caml_string_of_jsbytes("Semicolon"), + cst_ShiftLeft=caml_string_of_jsbytes("ShiftLeft"), + cst_Slash=caml_string_of_jsbytes("Slash"), + cst_Space=caml_string_of_jsbytes("Space"), + cst_Tab=caml_string_of_jsbytes("Tab"), + cst_VolumeDown=caml_string_of_jsbytes("VolumeDown"), + cst_VolumeMute=caml_string_of_jsbytes("VolumeMute"), + cst_VolumeUp=caml_string_of_jsbytes("VolumeUp"), + cst_mouseout$0=caml_string_of_jsbytes("mouseout"), + cst_mouseover$0=caml_string_of_jsbytes("mouseover"), + cst_video$0=caml_string_of_jsbytes("video"), + cst_audio$0=caml_string_of_jsbytes("audio"), + cst_ul$0=caml_string_of_jsbytes("ul"), + cst_tr$0=caml_string_of_jsbytes("tr"), + cst_title$0=caml_string_of_jsbytes("title"), + cst_thead$0=caml_string_of_jsbytes("thead"), + cst_th$0=caml_string_of_jsbytes("th"), + cst_tfoot$0=caml_string_of_jsbytes("tfoot"), + cst_textarea$0=caml_string_of_jsbytes("textarea"), + cst_td$0=caml_string_of_jsbytes("td"), + cst_tbody$0=caml_string_of_jsbytes("tbody"), + cst_table$0=caml_string_of_jsbytes("table"), + cst_style$0=caml_string_of_jsbytes("style"), + cst_select$1=caml_string_of_jsbytes("select"), + cst_script$0=caml_string_of_jsbytes("script"), + cst_q$0=caml_string_of_jsbytes("q"), + cst_pre$0=caml_string_of_jsbytes("pre"), + cst_param$0=caml_string_of_jsbytes("param"), + cst_p$0=caml_string_of_jsbytes("p"), + cst_option$0=caml_string_of_jsbytes("option"), + cst_optgroup$0=caml_string_of_jsbytes("optgroup"), + cst_ol$0=caml_string_of_jsbytes("ol"), + cst_object$0=caml_string_of_jsbytes("object"), + cst_meta$0=caml_string_of_jsbytes("meta"), + cst_map$0=caml_string_of_jsbytes("map"), + cst_link$0=caml_string_of_jsbytes("link"), + cst_li$0=caml_string_of_jsbytes("li"), + cst_legend$0=caml_string_of_jsbytes("legend"), + cst_label$0=caml_string_of_jsbytes("label"), + cst_ins$0=caml_string_of_jsbytes("ins"), + cst_input$1=caml_string_of_jsbytes("input"), + cst_img$0=caml_string_of_jsbytes("img"), + cst_iframe$0=caml_string_of_jsbytes("iframe"), + cst_html$0=caml_string_of_jsbytes("html"), + cst_hr$0=caml_string_of_jsbytes("hr"), + cst_head$0=caml_string_of_jsbytes("head"), + cst_h6$0=caml_string_of_jsbytes("h6"), + cst_h5$0=caml_string_of_jsbytes("h5"), + cst_h4$0=caml_string_of_jsbytes("h4"), + cst_h3$0=caml_string_of_jsbytes("h3"), + cst_h2$0=caml_string_of_jsbytes("h2"), + cst_h1$0=caml_string_of_jsbytes("h1"), + cst_frame$0=caml_string_of_jsbytes("frame"), + cst_frameset$0=caml_string_of_jsbytes("frameset"), + cst_form$0=caml_string_of_jsbytes("form"), + cst_embed$0=caml_string_of_jsbytes("embed"), + cst_fieldset$0=caml_string_of_jsbytes("fieldset"), + cst_dl$0=caml_string_of_jsbytes("dl"), + cst_div$0=caml_string_of_jsbytes("div"), + cst_del$0=caml_string_of_jsbytes("del"), + cst_colgroup$0=caml_string_of_jsbytes("colgroup"), + cst_col$0=caml_string_of_jsbytes("col"), + cst_caption$0=caml_string_of_jsbytes("caption"), + cst_canvas$0=caml_string_of_jsbytes("canvas"), + cst_button$0=caml_string_of_jsbytes("button"), + cst_br$0=caml_string_of_jsbytes("br"), + cst_body$0=caml_string_of_jsbytes("body"), + cst_blockquote$0=caml_string_of_jsbytes("blockquote"), + cst_base$0=caml_string_of_jsbytes("base"), + cst_area$0=caml_string_of_jsbytes("area"), + cst_a$0=caml_string_of_jsbytes("a"), + cst_canvas=caml_string_of_jsbytes("canvas"), + cst_video=caml_string_of_jsbytes("video"), + cst_audio=caml_string_of_jsbytes("audio"), + cst_iframe=caml_string_of_jsbytes("iframe"), + cst_frame=caml_string_of_jsbytes("frame"), + cst_frameset=caml_string_of_jsbytes("frameset"), + cst_address=caml_string_of_jsbytes("address"), + cst_noscript=caml_string_of_jsbytes("noscript"), + cst_dt=caml_string_of_jsbytes("dt"), + cst_dd=caml_string_of_jsbytes("dd"), + cst_abbr=caml_string_of_jsbytes("abbr"), + cst_var=caml_string_of_jsbytes("var"), + cst_kbd=caml_string_of_jsbytes("kbd"), + cst_samp=caml_string_of_jsbytes("samp"), + cst_code=caml_string_of_jsbytes("code"), + cst_dfn=caml_string_of_jsbytes("dfn"), + cst_cite=caml_string_of_jsbytes("cite"), + cst_strong=caml_string_of_jsbytes("strong"), + cst_em=caml_string_of_jsbytes("em"), + cst_small=caml_string_of_jsbytes("small"), + cst_big=caml_string_of_jsbytes("big"), + cst_b=caml_string_of_jsbytes("b"), + cst_i=caml_string_of_jsbytes("i"), + cst_tt=caml_string_of_jsbytes("tt"), + cst_span=caml_string_of_jsbytes("span"), + cst_sup=caml_string_of_jsbytes("sup"), + cst_sub=caml_string_of_jsbytes("sub"), + cst_td=caml_string_of_jsbytes("td"), + cst_th=caml_string_of_jsbytes("th"), + cst_tr=caml_string_of_jsbytes("tr"), + cst_tbody=caml_string_of_jsbytes("tbody"), + cst_tfoot=caml_string_of_jsbytes("tfoot"), + cst_thead=caml_string_of_jsbytes("thead"), + cst_colgroup=caml_string_of_jsbytes("colgroup"), + cst_col=caml_string_of_jsbytes("col"), + cst_caption=caml_string_of_jsbytes("caption"), + cst_table=caml_string_of_jsbytes("table"), + cst_script=caml_string_of_jsbytes("script"), + cst_area=caml_string_of_jsbytes("area"), + cst_map=caml_string_of_jsbytes("map"), + cst_param=caml_string_of_jsbytes("param"), + cst_object=caml_string_of_jsbytes("object"), + cst_img=caml_string_of_jsbytes("img"), + cst_a=caml_string_of_jsbytes("a"), + cst_del=caml_string_of_jsbytes("del"), + cst_ins=caml_string_of_jsbytes("ins"), + cst_hr=caml_string_of_jsbytes("hr"), + cst_br=caml_string_of_jsbytes("br"), + cst_pre=caml_string_of_jsbytes("pre"), + cst_blockquote=caml_string_of_jsbytes("blockquote"), + cst_q=caml_string_of_jsbytes("q"), + cst_h6=caml_string_of_jsbytes("h6"), + cst_h5=caml_string_of_jsbytes("h5"), + cst_h4=caml_string_of_jsbytes("h4"), + cst_h3=caml_string_of_jsbytes("h3"), + cst_h2=caml_string_of_jsbytes("h2"), + cst_h1=caml_string_of_jsbytes("h1"), + cst_p=caml_string_of_jsbytes("p"), + cst_embed=caml_string_of_jsbytes("embed"), + cst_div=caml_string_of_jsbytes("div"), + cst_li=caml_string_of_jsbytes("li"), + cst_dl=caml_string_of_jsbytes("dl"), + cst_ol=caml_string_of_jsbytes("ol"), + cst_ul=caml_string_of_jsbytes("ul"), + cst_legend=caml_string_of_jsbytes("legend"), + cst_fieldset=caml_string_of_jsbytes("fieldset"), + cst_label=caml_string_of_jsbytes("label"), + cst_button=caml_string_of_jsbytes("button"), + cst_textarea=caml_string_of_jsbytes("textarea"), + cst_input$0=caml_string_of_jsbytes("input"), + cst_select$0=caml_string_of_jsbytes("select"), + cst_option=caml_string_of_jsbytes("option"), + cst_optgroup=caml_string_of_jsbytes("optgroup"), + cst_form=caml_string_of_jsbytes("form"), + cst_body=caml_string_of_jsbytes("body"), + cst_style=caml_string_of_jsbytes("style"), + cst_base=caml_string_of_jsbytes("base"), + cst_meta=caml_string_of_jsbytes("meta"), + cst_title=caml_string_of_jsbytes("title"), + cst_link=caml_string_of_jsbytes("link"), + cst_head=caml_string_of_jsbytes("head"), + cst_html=caml_string_of_jsbytes("html"), + cst_click=caml_string_of_jsbytes("click"), + cst_copy=caml_string_of_jsbytes("copy"), + cst_cut=caml_string_of_jsbytes("cut"), + cst_paste=caml_string_of_jsbytes("paste"), + cst_dblclick=caml_string_of_jsbytes("dblclick"), + cst_mousedown=caml_string_of_jsbytes("mousedown"), + cst_mouseup=caml_string_of_jsbytes("mouseup"), + cst_mouseover=caml_string_of_jsbytes("mouseover"), + cst_mousemove=caml_string_of_jsbytes("mousemove"), + cst_mouseout=caml_string_of_jsbytes("mouseout"), + cst_keypress=caml_string_of_jsbytes("keypress"), + cst_keydown=caml_string_of_jsbytes("keydown"), + cst_keyup=caml_string_of_jsbytes("keyup"), + cst_mousewheel=caml_string_of_jsbytes("mousewheel"), + cst_wheel=caml_string_of_jsbytes("wheel"), + cst_DOMMouseScroll=caml_string_of_jsbytes("DOMMouseScroll"), + cst_touchstart=caml_string_of_jsbytes("touchstart"), + cst_touchmove=caml_string_of_jsbytes("touchmove"), + cst_touchend=caml_string_of_jsbytes("touchend"), + cst_touchcancel=caml_string_of_jsbytes("touchcancel"), + cst_dragstart=caml_string_of_jsbytes("dragstart"), + cst_dragend=caml_string_of_jsbytes("dragend"), + cst_dragenter=caml_string_of_jsbytes("dragenter"), + cst_dragover=caml_string_of_jsbytes("dragover"), + cst_dragleave=caml_string_of_jsbytes("dragleave"), + cst_drag=caml_string_of_jsbytes("drag"), + cst_drop=caml_string_of_jsbytes("drop"), + cst_hashchange=caml_string_of_jsbytes("hashchange"), + cst_change=caml_string_of_jsbytes("change"), + cst_input=caml_string_of_jsbytes("input"), + cst_timeupdate=caml_string_of_jsbytes("timeupdate"), + cst_submit=caml_string_of_jsbytes("submit"), + cst_scroll=caml_string_of_jsbytes("scroll"), + cst_focus=caml_string_of_jsbytes("focus"), + cst_blur=caml_string_of_jsbytes("blur"), + cst_load$0=caml_string_of_jsbytes("load"), + cst_unload=caml_string_of_jsbytes("unload"), + cst_beforeunload=caml_string_of_jsbytes("beforeunload"), + cst_resize=caml_string_of_jsbytes("resize"), + cst_orientationchange=caml_string_of_jsbytes("orientationchange"), + cst_popstate=caml_string_of_jsbytes("popstate"), + cst_error$0=caml_string_of_jsbytes("error"), + cst_abort$0=caml_string_of_jsbytes("abort"), + cst_select=caml_string_of_jsbytes("select"), + cst_online=caml_string_of_jsbytes("online"), + cst_offline=caml_string_of_jsbytes("offline"), + cst_checking=caml_string_of_jsbytes("checking"), + cst_noupdate=caml_string_of_jsbytes("noupdate"), + cst_downloading=caml_string_of_jsbytes("downloading"), + cst_progress$0=caml_string_of_jsbytes("progress"), + cst_updateready=caml_string_of_jsbytes("updateready"), + cst_cached=caml_string_of_jsbytes("cached"), + cst_obsolete=caml_string_of_jsbytes("obsolete"), + cst_DOMContentLoaded=caml_string_of_jsbytes("DOMContentLoaded"), + cst_animationstart=caml_string_of_jsbytes("animationstart"), + cst_animationend=caml_string_of_jsbytes("animationend"), + cst_animationiteration=caml_string_of_jsbytes("animationiteration"), + cst_animationcancel=caml_string_of_jsbytes("animationcancel"), + cst_transitionrun=caml_string_of_jsbytes("transitionrun"), + cst_transitionstart=caml_string_of_jsbytes("transitionstart"), + cst_transitionend=caml_string_of_jsbytes("transitionend"), + cst_transitioncancel=caml_string_of_jsbytes("transitioncancel"), + cst_canplay=caml_string_of_jsbytes("canplay"), + cst_canplaythrough=caml_string_of_jsbytes("canplaythrough"), + cst_durationchange=caml_string_of_jsbytes("durationchange"), + cst_emptied=caml_string_of_jsbytes("emptied"), + cst_ended=caml_string_of_jsbytes("ended"), + cst_gotpointercapture=caml_string_of_jsbytes("gotpointercapture"), + cst_loadeddata=caml_string_of_jsbytes("loadeddata"), + cst_loadedmetadata=caml_string_of_jsbytes("loadedmetadata"), + cst_loadstart$0=caml_string_of_jsbytes("loadstart"), + cst_lostpointercapture=caml_string_of_jsbytes("lostpointercapture"), + cst_message=caml_string_of_jsbytes("message"), + cst_pause=caml_string_of_jsbytes("pause"), + cst_play=caml_string_of_jsbytes("play"), + cst_playing=caml_string_of_jsbytes("playing"), + cst_pointerenter=caml_string_of_jsbytes("pointerenter"), + cst_pointercancel=caml_string_of_jsbytes("pointercancel"), + cst_pointerdown=caml_string_of_jsbytes("pointerdown"), + cst_pointerleave=caml_string_of_jsbytes("pointerleave"), + cst_pointermove=caml_string_of_jsbytes("pointermove"), + cst_pointerout=caml_string_of_jsbytes("pointerout"), + cst_pointerover=caml_string_of_jsbytes("pointerover"), + cst_pointerup=caml_string_of_jsbytes("pointerup"), + cst_ratechange=caml_string_of_jsbytes("ratechange"), + cst_seeked=caml_string_of_jsbytes("seeked"), + cst_seeking=caml_string_of_jsbytes("seeking"), + cst_stalled=caml_string_of_jsbytes("stalled"), + cst_suspend=caml_string_of_jsbytes("suspend"), + cst_volumechange=caml_string_of_jsbytes("volumechange"), + cst_waiting=caml_string_of_jsbytes("waiting"), + cst_Js_of_ocaml_Dom_html_Canva= + caml_string_of_jsbytes("Js_of_ocaml__Dom_html.Canvas_not_available"), + cst_checkbox=caml_string_of_jsbytes("checkbox"), + cst_file=caml_string_of_jsbytes("file"), + cst_password=caml_string_of_jsbytes("password"), + cst_radio=caml_string_of_jsbytes("radio"), + cst_reset=caml_string_of_jsbytes("reset"), + cst_submit$0=caml_string_of_jsbytes("submit"), + cst_text=caml_string_of_jsbytes("text"), + cst_readystatechange=caml_string_of_jsbytes("readystatechange"), + cst_loadstart$1=caml_string_of_jsbytes("loadstart"), + cst_progress$1=caml_string_of_jsbytes("progress"), + cst_abort$1=caml_string_of_jsbytes("abort"), + cst_error$1=caml_string_of_jsbytes("error"), + cst_load$1=caml_string_of_jsbytes("load"), + cst_timeout=caml_string_of_jsbytes("timeout"), + cst_loadend$0=caml_string_of_jsbytes("loadend"), + cst_Worker_onmessage_is_undefi$0= + caml_string_of_jsbytes("Worker.onmessage is undefined"), + cst_Worker_onmessage_is_undefi= + caml_string_of_jsbytes("Worker.onmessage is undefined"), + cst_Worker_import_scripts_is_u= + caml_string_of_jsbytes("Worker.import_scripts is undefined"), + cst_webglcontextlost=caml_string_of_jsbytes("webglcontextlost"), + cst_webglcontextrestored=caml_string_of_jsbytes("webglcontextrestored"), + cst_webglcontextcreationerror= + caml_string_of_jsbytes("webglcontextcreationerror"), + cst_g=caml_string_of_jsbytes("g"), + cst=caml_string_of_jsbytes("[\\][()\\\\|+*.?{}^$]"), + cst$37=caml_string_of_jsbytes(""), + cst$13=caml_string_of_jsbytes(""), + cst$21=caml_string_of_jsbytes(""), + cst$14=caml_string_of_jsbytes("#"), + cst$15=caml_string_of_jsbytes("?"), + cst$20=caml_string_of_jsbytes(""), + cst$16=caml_string_of_jsbytes("/"), + cst$17=caml_string_of_jsbytes("/"), + cst$19=caml_string_of_jsbytes(":"), + cst$18=caml_string_of_jsbytes(""), + cst_http$1=caml_string_of_jsbytes("http://"), + cst$22=caml_string_of_jsbytes(""), + cst$30=caml_string_of_jsbytes(""), + cst$23=caml_string_of_jsbytes("#"), + cst$24=caml_string_of_jsbytes("?"), + cst$29=caml_string_of_jsbytes(""), + cst$25=caml_string_of_jsbytes("/"), + cst$26=caml_string_of_jsbytes("/"), + cst$28=caml_string_of_jsbytes(":"), + cst$27=caml_string_of_jsbytes(""), + cst_https$1=caml_string_of_jsbytes("https://"), + cst$31=caml_string_of_jsbytes(""), + cst$36=caml_string_of_jsbytes(""), + cst$32=caml_string_of_jsbytes("#"), + cst$33=caml_string_of_jsbytes("?"), + cst$35=caml_string_of_jsbytes(""), + cst$34=caml_string_of_jsbytes("/"), + cst_file$2=caml_string_of_jsbytes("file://"), + cst$12=caml_string_of_jsbytes(""), + cst$11=caml_string_of_jsbytes(""), + cst$10=caml_string_of_jsbytes(""), + cst$9=caml_string_of_jsbytes(""), + cst$8=caml_string_of_jsbytes(""), + cst$7=caml_string_of_jsbytes(""), + cst$6=caml_string_of_jsbytes(""), + cst$4=caml_string_of_jsbytes("="), + cst$5=caml_string_of_jsbytes("&"), + cst$2=caml_string_of_jsbytes(""), + cst$3=caml_string_of_jsbytes(""), + cst_file$0=caml_string_of_jsbytes("file"), + cst_file$1=caml_string_of_jsbytes("file:"), + cst_http=caml_string_of_jsbytes("http"), + cst_http$0=caml_string_of_jsbytes("http:"), + cst_https=caml_string_of_jsbytes("https"), + cst_https$0=caml_string_of_jsbytes("https:"), + cst$1=caml_string_of_jsbytes(" "), + cst_2B=caml_string_of_jsbytes("%2B"), + cst_Js_of_ocaml_Url_Local_exn= + caml_string_of_jsbytes("Js_of_ocaml__Url.Local_exn"), + cst$0=caml_string_of_jsbytes("+"), + cst_Js_of_ocaml_Url_Not_an_htt= + caml_string_of_jsbytes("Js_of_ocaml__Url.Not_an_http_protocol"), + cst_Hh_Tt_Tt_Pp_Ss_0_9a_zA_Z_0= + caml_string_of_jsbytes + ("^([Hh][Tt][Tt][Pp][Ss]?)://([0-9a-zA-Z.-]+|\\[[0-9a-zA-Z.-]+\\]|\\[[0-9A-Fa-f:.]+\\])?(:([0-9]+))?(/([^\\?#]*)(\\?([^#]*))?(#(.*))?)?$"), + cst_Ff_Ii_Ll_Ee= + caml_string_of_jsbytes + ("^([Ff][Ii][Ll][Ee])://([^\\?#]*)(\\?([^#]*))?(#(.*))?$"), + s=caml_string_of_jsbytes("5.0.1"), + git_version=caml_string_of_jsbytes(""), + cst$38=caml_string_of_jsbytes(""), + cst$41=caml_string_of_jsbytes("+"), + cst_Jstable_keys=caml_string_of_jsbytes("Jstable.keys"), + t5=runtime.caml_int64_create_lo_mi_hi(1,0,0), + cst_is_not_a_valid_length$0= + caml_string_of_jsbytes(" is not a valid length"), + cst_d_d_deg_grad_rad_turns= + caml_string_of_jsbytes("^(\\d*(?:\\.\\d*))(deg|grad|rad|turns)$"), + cst_length_conversion_error$0= + caml_string_of_jsbytes("length conversion error: "), + cst_deg$0=caml_string_of_jsbytes("deg"), + cst_grad$0=caml_string_of_jsbytes("grad"), + cst_rad$0=caml_string_of_jsbytes("rad"), + cst_turns$0=caml_string_of_jsbytes("turns"), + cst_deg=caml_string_of_jsbytes("deg"), + cst_grad=caml_string_of_jsbytes("grad"), + cst_rad=caml_string_of_jsbytes("rad"), + cst_turns=caml_string_of_jsbytes("turns"), + cst_is_not_a_valid_length= + caml_string_of_jsbytes(" is not a valid length"), + cst_0$0=caml_string_of_jsbytes("0"), + cst_d_d_s_S=caml_string_of_jsbytes("^(\\d*(?:\\.\\d*)?)\\s*(\\S*)$"), + cst_length_conversion_error= + caml_string_of_jsbytes("length conversion error: "), + cst_pc$0=caml_string_of_jsbytes("pc"), + cst_ch$0=caml_string_of_jsbytes("ch"), + cst_cm$0=caml_string_of_jsbytes("cm"), + cst_em$1=caml_string_of_jsbytes("em"), + cst_ex$0=caml_string_of_jsbytes("ex"), + cst_gd$0=caml_string_of_jsbytes("gd"), + cst_in$0=caml_string_of_jsbytes("in"), + cst_mm$0=caml_string_of_jsbytes("mm"), + cst_pt$0=caml_string_of_jsbytes("pt"), + cst_px$0=caml_string_of_jsbytes("px"), + cst_rem$0=caml_string_of_jsbytes("rem"), + cst_vh$0=caml_string_of_jsbytes("vh"), + cst_vm$0=caml_string_of_jsbytes("vm"), + cst_vw$0=caml_string_of_jsbytes("vw"), + cst_0=caml_string_of_jsbytes("0"), + cst_em$0=caml_string_of_jsbytes("em"), + cst_ex=caml_string_of_jsbytes("ex"), + cst_px=caml_string_of_jsbytes("px"), + cst_gd=caml_string_of_jsbytes("gd"), + cst_rem=caml_string_of_jsbytes("rem"), + cst_vw=caml_string_of_jsbytes("vw"), + cst_vh=caml_string_of_jsbytes("vh"), + cst_vm=caml_string_of_jsbytes("vm"), + cst_ch=caml_string_of_jsbytes("ch"), + cst_mm=caml_string_of_jsbytes("mm"), + cst_cm=caml_string_of_jsbytes("cm"), + cst_in=caml_string_of_jsbytes("in"), + cst_pt=caml_string_of_jsbytes("pt"), + cst_pc=caml_string_of_jsbytes("pc"), + cst$40=caml_string_of_jsbytes("): "), + cst_color_conversion_error$0= + caml_string_of_jsbytes("color conversion error ("), + cst$39=caml_string_of_jsbytes("): "), + cst_color_conversion_error= + caml_string_of_jsbytes("color conversion error ("), + cst_is_not_a_valid_color$0= + caml_string_of_jsbytes(" is not a valid color"), + cst_rgba_d_d_d_d_d= + caml_string_of_jsbytes + ("(rgba?)\\((?:(\\d*),(\\d*),(\\d*)(?:,(\\d*(?:\\.\\d*)?))?)\\)"), + cst_rgba_d_d_d_d_d$0= + caml_string_of_jsbytes + ("(rgba?)\\((?:(\\d*)%,(\\d*)%,(\\d*)%(?:,(\\d*(?:\\.\\d*)?))?)\\)"), + cst_hsla_d_d_d_d_d= + caml_string_of_jsbytes + ("(hsla?)\\((?:(\\d*),(\\d*)%,(\\d*)%(?:,(\\d*(?:\\.\\d*)?))?)\\)"), + cst_rgb=caml_string_of_jsbytes("rgb"), + cst_rgba=caml_string_of_jsbytes("rgba"), + cst_rgb$0=caml_string_of_jsbytes("rgb"), + cst_rgba$0=caml_string_of_jsbytes("rgba"), + cst_hsl=caml_string_of_jsbytes("hsl"), + cst_hsla=caml_string_of_jsbytes("hsla"), + cst_rgb_s_d_s_d_s_d= + caml_string_of_jsbytes("^rgb\\(\\s*\\d*,\\s*\\d*,\\s*\\d*\\)$"), + cst_rgb_s_d_s_d_s_d$0= + caml_string_of_jsbytes("^rgb\\(\\s*\\d*%,\\s*\\d*%,\\s*\\d*%\\)$"), + cst_rgba_s_d_s_d_s_d_d_d= + caml_string_of_jsbytes + ("^rgba\\(\\s*\\d*,\\s*\\d*,\\s*\\d*,\\d*\\.?\\d*\\)$"), + cst_rgba_s_d_s_d_s_d_d_d$0= + caml_string_of_jsbytes + ("^rgba\\(\\s*\\d*%,\\s*\\d*%,\\s*\\d*%,\\d*\\.?\\d*\\)$"), + cst_hsl_s_d_s_d_s_d= + caml_string_of_jsbytes("^hsl\\(\\s*\\d*,\\s*\\d*%,\\s*\\d*%\\)$"), + cst_hsla_s_d_s_d_s_d_d_d= + caml_string_of_jsbytes + ("^hsla\\(\\s*\\d*,\\s*\\d*%,\\s*\\d*%,\\d*\\.?\\d*\\)$"), + cst_is_not_a_valid_color=caml_string_of_jsbytes(" is not a valid color"), + cst_is_out_of_valid_range= + caml_string_of_jsbytes(" is out of valid range"), + partial=[8,[0,0,0],0,0,[12,41,0]], + partial$0=[12,41,0], + partial$1=[0,0,0], + cst_lightgrey$0=caml_string_of_jsbytes("lightgrey"), + cst_darkslategray$0=caml_string_of_jsbytes("darkslategray"), + cst_cornsilk$0=caml_string_of_jsbytes("cornsilk"), + cst_blue$0=caml_string_of_jsbytes("blue"), + cst_aliceblue$0=caml_string_of_jsbytes("aliceblue"), + cst_antiquewhite$0=caml_string_of_jsbytes("antiquewhite"), + cst_aqua$0=caml_string_of_jsbytes("aqua"), + cst_aquamarine$0=caml_string_of_jsbytes("aquamarine"), + cst_azure$0=caml_string_of_jsbytes("azure"), + cst_beige$0=caml_string_of_jsbytes("beige"), + cst_bisque$0=caml_string_of_jsbytes("bisque"), + cst_black$0=caml_string_of_jsbytes("black"), + cst_blanchedalmond$0=caml_string_of_jsbytes("blanchedalmond"), + cst_blueviolet$0=caml_string_of_jsbytes("blueviolet"), + cst_brown$0=caml_string_of_jsbytes("brown"), + cst_burlywood$0=caml_string_of_jsbytes("burlywood"), + cst_cadetblue$0=caml_string_of_jsbytes("cadetblue"), + cst_chartreuse$0=caml_string_of_jsbytes("chartreuse"), + cst_chocolate$0=caml_string_of_jsbytes("chocolate"), + cst_coral$0=caml_string_of_jsbytes("coral"), + cst_cornflowerblue$0=caml_string_of_jsbytes("cornflowerblue"), + cst_darkkhaki$0=caml_string_of_jsbytes("darkkhaki"), + cst_crimson$0=caml_string_of_jsbytes("crimson"), + cst_cyan$0=caml_string_of_jsbytes("cyan"), + cst_darkblue$0=caml_string_of_jsbytes("darkblue"), + cst_darkcyan$0=caml_string_of_jsbytes("darkcyan"), + cst_darkgoldenrod$0=caml_string_of_jsbytes("darkgoldenrod"), + cst_darkgray$0=caml_string_of_jsbytes("darkgray"), + cst_darkgreen$0=caml_string_of_jsbytes("darkgreen"), + cst_darkgrey$0=caml_string_of_jsbytes("darkgrey"), + cst_darkmagenta$0=caml_string_of_jsbytes("darkmagenta"), + cst_darkolivegreen$0=caml_string_of_jsbytes("darkolivegreen"), + cst_darkorange$0=caml_string_of_jsbytes("darkorange"), + cst_darkorchid$0=caml_string_of_jsbytes("darkorchid"), + cst_darkred$0=caml_string_of_jsbytes("darkred"), + cst_darksalmon$0=caml_string_of_jsbytes("darksalmon"), + cst_darkseagreen$0=caml_string_of_jsbytes("darkseagreen"), + cst_darkslateblue$0=caml_string_of_jsbytes("darkslateblue"), + cst_greenyellow$0=caml_string_of_jsbytes("greenyellow"), + cst_floralwhite$0=caml_string_of_jsbytes("floralwhite"), + cst_darkslategrey$0=caml_string_of_jsbytes("darkslategrey"), + cst_darkturquoise$0=caml_string_of_jsbytes("darkturquoise"), + cst_darkviolet$0=caml_string_of_jsbytes("darkviolet"), + cst_deeppink$0=caml_string_of_jsbytes("deeppink"), + cst_deepskyblue$0=caml_string_of_jsbytes("deepskyblue"), + cst_dimgray$0=caml_string_of_jsbytes("dimgray"), + cst_dimgrey$0=caml_string_of_jsbytes("dimgrey"), + cst_dodgerblue$0=caml_string_of_jsbytes("dodgerblue"), + cst_firebrick$0=caml_string_of_jsbytes("firebrick"), + cst_forestgreen$0=caml_string_of_jsbytes("forestgreen"), + cst_fuchsia$0=caml_string_of_jsbytes("fuchsia"), + cst_gainsboro$0=caml_string_of_jsbytes("gainsboro"), + cst_ghostwhite$0=caml_string_of_jsbytes("ghostwhite"), + cst_gold$0=caml_string_of_jsbytes("gold"), + cst_goldenrod$0=caml_string_of_jsbytes("goldenrod"), + cst_gray$0=caml_string_of_jsbytes("gray"), + cst_green$0=caml_string_of_jsbytes("green"), + cst_lavenderblush$0=caml_string_of_jsbytes("lavenderblush"), + cst_grey$0=caml_string_of_jsbytes("grey"), + cst_honeydew$0=caml_string_of_jsbytes("honeydew"), + cst_hotpink$0=caml_string_of_jsbytes("hotpink"), + cst_indianred$0=caml_string_of_jsbytes("indianred"), + cst_indigo$0=caml_string_of_jsbytes("indigo"), + cst_ivory$0=caml_string_of_jsbytes("ivory"), + cst_khaki$0=caml_string_of_jsbytes("khaki"), + cst_lavender$0=caml_string_of_jsbytes("lavender"), + cst_lawngreen$0=caml_string_of_jsbytes("lawngreen"), + cst_lemonchiffon$0=caml_string_of_jsbytes("lemonchiffon"), + cst_lightblue$0=caml_string_of_jsbytes("lightblue"), + cst_lightcoral$0=caml_string_of_jsbytes("lightcoral"), + cst_lightcyan$0=caml_string_of_jsbytes("lightcyan"), + cst_lightgoldenrodyellow$0=caml_string_of_jsbytes("lightgoldenrodyellow"), + cst_lightgray$0=caml_string_of_jsbytes("lightgray"), + cst_lightgreen$0=caml_string_of_jsbytes("lightgreen"), + cst_paleturquoise$0=caml_string_of_jsbytes("paleturquoise"), + cst_mediumslateblue$0=caml_string_of_jsbytes("mediumslateblue"), + cst_limegreen$0=caml_string_of_jsbytes("limegreen"), + cst_lightpink$0=caml_string_of_jsbytes("lightpink"), + cst_lightsalmon$0=caml_string_of_jsbytes("lightsalmon"), + cst_lightseagreen$0=caml_string_of_jsbytes("lightseagreen"), + cst_lightskyblue$0=caml_string_of_jsbytes("lightskyblue"), + cst_lightslategray$0=caml_string_of_jsbytes("lightslategray"), + cst_lightslategrey$0=caml_string_of_jsbytes("lightslategrey"), + cst_lightsteelblue$0=caml_string_of_jsbytes("lightsteelblue"), + cst_lightyellow$0=caml_string_of_jsbytes("lightyellow"), + cst_lime$0=caml_string_of_jsbytes("lime"), + cst_linen$0=caml_string_of_jsbytes("linen"), + cst_magenta$0=caml_string_of_jsbytes("magenta"), + cst_maroon$0=caml_string_of_jsbytes("maroon"), + cst_mediumaquamarine$0=caml_string_of_jsbytes("mediumaquamarine"), + cst_mediumblue$0=caml_string_of_jsbytes("mediumblue"), + cst_mediumorchid$0=caml_string_of_jsbytes("mediumorchid"), + cst_mediumpurple$0=caml_string_of_jsbytes("mediumpurple"), + cst_mediumseagreen$0=caml_string_of_jsbytes("mediumseagreen"), + cst_navy$0=caml_string_of_jsbytes("navy"), + cst_mediumspringgreen$0=caml_string_of_jsbytes("mediumspringgreen"), + cst_mediumturquoise$0=caml_string_of_jsbytes("mediumturquoise"), + cst_mediumvioletred$0=caml_string_of_jsbytes("mediumvioletred"), + cst_midnightblue$0=caml_string_of_jsbytes("midnightblue"), + cst_mintcream$0=caml_string_of_jsbytes("mintcream"), + cst_mistyrose$0=caml_string_of_jsbytes("mistyrose"), + cst_moccasin$0=caml_string_of_jsbytes("moccasin"), + cst_navajowhite$0=caml_string_of_jsbytes("navajowhite"), + cst_oldlace$0=caml_string_of_jsbytes("oldlace"), + cst_olive$0=caml_string_of_jsbytes("olive"), + cst_olivedrab$0=caml_string_of_jsbytes("olivedrab"), + cst_orange$0=caml_string_of_jsbytes("orange"), + cst_orangered$0=caml_string_of_jsbytes("orangered"), + cst_orchid$0=caml_string_of_jsbytes("orchid"), + cst_palegoldenrod$0=caml_string_of_jsbytes("palegoldenrod"), + cst_palegreen$0=caml_string_of_jsbytes("palegreen"), + cst_skyblue$0=caml_string_of_jsbytes("skyblue"), + cst_rosybrown$0=caml_string_of_jsbytes("rosybrown"), + cst_palevioletred$0=caml_string_of_jsbytes("palevioletred"), + cst_papayawhip$0=caml_string_of_jsbytes("papayawhip"), + cst_peachpuff$0=caml_string_of_jsbytes("peachpuff"), + cst_peru$0=caml_string_of_jsbytes("peru"), + cst_pink$0=caml_string_of_jsbytes("pink"), + cst_plum$0=caml_string_of_jsbytes("plum"), + cst_powderblue$0=caml_string_of_jsbytes("powderblue"), + cst_purple$0=caml_string_of_jsbytes("purple"), + cst_red$0=caml_string_of_jsbytes("red"), + cst_royalblue$0=caml_string_of_jsbytes("royalblue"), + cst_saddlebrown$0=caml_string_of_jsbytes("saddlebrown"), + cst_salmon$0=caml_string_of_jsbytes("salmon"), + cst_sandybrown$0=caml_string_of_jsbytes("sandybrown"), + cst_seagreen$0=caml_string_of_jsbytes("seagreen"), + cst_seashell$0=caml_string_of_jsbytes("seashell"), + cst_sienna$0=caml_string_of_jsbytes("sienna"), + cst_silver$0=caml_string_of_jsbytes("silver"), + cst_thistle$0=caml_string_of_jsbytes("thistle"), + cst_slateblue$0=caml_string_of_jsbytes("slateblue"), + cst_slategray$0=caml_string_of_jsbytes("slategray"), + cst_slategrey$0=caml_string_of_jsbytes("slategrey"), + cst_snow$0=caml_string_of_jsbytes("snow"), + cst_springgreen$0=caml_string_of_jsbytes("springgreen"), + cst_steelblue$0=caml_string_of_jsbytes("steelblue"), + cst_tan$0=caml_string_of_jsbytes("tan"), + cst_teal$0=caml_string_of_jsbytes("teal"), + cst_tomato$0=caml_string_of_jsbytes("tomato"), + cst_turquoise$0=caml_string_of_jsbytes("turquoise"), + cst_violet$0=caml_string_of_jsbytes("violet"), + cst_wheat$0=caml_string_of_jsbytes("wheat"), + cst_white$0=caml_string_of_jsbytes("white"), + cst_whitesmoke$0=caml_string_of_jsbytes("whitesmoke"), + cst_yellow$0=caml_string_of_jsbytes("yellow"), + cst_yellowgreen$0=caml_string_of_jsbytes("yellowgreen"), + cst_is_not_a_valid_color_name= + caml_string_of_jsbytes(" is not a valid color name"), + cst_aliceblue=caml_string_of_jsbytes("aliceblue"), + cst_antiquewhite=caml_string_of_jsbytes("antiquewhite"), + cst_aqua=caml_string_of_jsbytes("aqua"), + cst_aquamarine=caml_string_of_jsbytes("aquamarine"), + cst_azure=caml_string_of_jsbytes("azure"), + cst_beige=caml_string_of_jsbytes("beige"), + cst_bisque=caml_string_of_jsbytes("bisque"), + cst_black=caml_string_of_jsbytes("black"), + cst_blanchedalmond=caml_string_of_jsbytes("blanchedalmond"), + cst_blue=caml_string_of_jsbytes("blue"), + cst_blueviolet=caml_string_of_jsbytes("blueviolet"), + cst_brown=caml_string_of_jsbytes("brown"), + cst_burlywood=caml_string_of_jsbytes("burlywood"), + cst_cadetblue=caml_string_of_jsbytes("cadetblue"), + cst_chartreuse=caml_string_of_jsbytes("chartreuse"), + cst_chocolate=caml_string_of_jsbytes("chocolate"), + cst_coral=caml_string_of_jsbytes("coral"), + cst_cornflowerblue=caml_string_of_jsbytes("cornflowerblue"), + cst_cornsilk=caml_string_of_jsbytes("cornsilk"), + cst_crimson=caml_string_of_jsbytes("crimson"), + cst_cyan=caml_string_of_jsbytes("cyan"), + cst_darkblue=caml_string_of_jsbytes("darkblue"), + cst_darkcyan=caml_string_of_jsbytes("darkcyan"), + cst_darkgoldenrod=caml_string_of_jsbytes("darkgoldenrod"), + cst_darkgray=caml_string_of_jsbytes("darkgray"), + cst_darkgreen=caml_string_of_jsbytes("darkgreen"), + cst_darkgrey=caml_string_of_jsbytes("darkgrey"), + cst_darkkhaki=caml_string_of_jsbytes("darkkhaki"), + cst_darkmagenta=caml_string_of_jsbytes("darkmagenta"), + cst_darkolivegreen=caml_string_of_jsbytes("darkolivegreen"), + cst_darkorange=caml_string_of_jsbytes("darkorange"), + cst_darkorchid=caml_string_of_jsbytes("darkorchid"), + cst_darkred=caml_string_of_jsbytes("darkred"), + cst_darksalmon=caml_string_of_jsbytes("darksalmon"), + cst_darkseagreen=caml_string_of_jsbytes("darkseagreen"), + cst_darkslateblue=caml_string_of_jsbytes("darkslateblue"), + cst_darkslategray=caml_string_of_jsbytes("darkslategray"), + cst_darkslategrey=caml_string_of_jsbytes("darkslategrey"), + cst_darkturquoise=caml_string_of_jsbytes("darkturquoise"), + cst_darkviolet=caml_string_of_jsbytes("darkviolet"), + cst_deeppink=caml_string_of_jsbytes("deeppink"), + cst_deepskyblue=caml_string_of_jsbytes("deepskyblue"), + cst_dimgray=caml_string_of_jsbytes("dimgray"), + cst_dimgrey=caml_string_of_jsbytes("dimgrey"), + cst_dodgerblue=caml_string_of_jsbytes("dodgerblue"), + cst_firebrick=caml_string_of_jsbytes("firebrick"), + cst_floralwhite=caml_string_of_jsbytes("floralwhite"), + cst_forestgreen=caml_string_of_jsbytes("forestgreen"), + cst_fuchsia=caml_string_of_jsbytes("fuchsia"), + cst_gainsboro=caml_string_of_jsbytes("gainsboro"), + cst_ghostwhite=caml_string_of_jsbytes("ghostwhite"), + cst_gold=caml_string_of_jsbytes("gold"), + cst_goldenrod=caml_string_of_jsbytes("goldenrod"), + cst_gray=caml_string_of_jsbytes("gray"), + cst_grey=caml_string_of_jsbytes("grey"), + cst_green=caml_string_of_jsbytes("green"), + cst_greenyellow=caml_string_of_jsbytes("greenyellow"), + cst_honeydew=caml_string_of_jsbytes("honeydew"), + cst_hotpink=caml_string_of_jsbytes("hotpink"), + cst_indianred=caml_string_of_jsbytes("indianred"), + cst_indigo=caml_string_of_jsbytes("indigo"), + cst_ivory=caml_string_of_jsbytes("ivory"), + cst_khaki=caml_string_of_jsbytes("khaki"), + cst_lavender=caml_string_of_jsbytes("lavender"), + cst_lavenderblush=caml_string_of_jsbytes("lavenderblush"), + cst_lawngreen=caml_string_of_jsbytes("lawngreen"), + cst_lemonchiffon=caml_string_of_jsbytes("lemonchiffon"), + cst_lightblue=caml_string_of_jsbytes("lightblue"), + cst_lightcoral=caml_string_of_jsbytes("lightcoral"), + cst_lightcyan=caml_string_of_jsbytes("lightcyan"), + cst_lightgoldenrodyellow=caml_string_of_jsbytes("lightgoldenrodyellow"), + cst_lightgray=caml_string_of_jsbytes("lightgray"), + cst_lightgreen=caml_string_of_jsbytes("lightgreen"), + cst_lightgrey=caml_string_of_jsbytes("lightgrey"), + cst_lightpink=caml_string_of_jsbytes("lightpink"), + cst_lightsalmon=caml_string_of_jsbytes("lightsalmon"), + cst_lightseagreen=caml_string_of_jsbytes("lightseagreen"), + cst_lightskyblue=caml_string_of_jsbytes("lightskyblue"), + cst_lightslategray=caml_string_of_jsbytes("lightslategray"), + cst_lightslategrey=caml_string_of_jsbytes("lightslategrey"), + cst_lightsteelblue=caml_string_of_jsbytes("lightsteelblue"), + cst_lightyellow=caml_string_of_jsbytes("lightyellow"), + cst_lime=caml_string_of_jsbytes("lime"), + cst_limegreen=caml_string_of_jsbytes("limegreen"), + cst_linen=caml_string_of_jsbytes("linen"), + cst_magenta=caml_string_of_jsbytes("magenta"), + cst_maroon=caml_string_of_jsbytes("maroon"), + cst_mediumaquamarine=caml_string_of_jsbytes("mediumaquamarine"), + cst_mediumblue=caml_string_of_jsbytes("mediumblue"), + cst_mediumorchid=caml_string_of_jsbytes("mediumorchid"), + cst_mediumpurple=caml_string_of_jsbytes("mediumpurple"), + cst_mediumseagreen=caml_string_of_jsbytes("mediumseagreen"), + cst_mediumslateblue=caml_string_of_jsbytes("mediumslateblue"), + cst_mediumspringgreen=caml_string_of_jsbytes("mediumspringgreen"), + cst_mediumturquoise=caml_string_of_jsbytes("mediumturquoise"), + cst_mediumvioletred=caml_string_of_jsbytes("mediumvioletred"), + cst_midnightblue=caml_string_of_jsbytes("midnightblue"), + cst_mintcream=caml_string_of_jsbytes("mintcream"), + cst_mistyrose=caml_string_of_jsbytes("mistyrose"), + cst_moccasin=caml_string_of_jsbytes("moccasin"), + cst_navajowhite=caml_string_of_jsbytes("navajowhite"), + cst_navy=caml_string_of_jsbytes("navy"), + cst_oldlace=caml_string_of_jsbytes("oldlace"), + cst_olive=caml_string_of_jsbytes("olive"), + cst_olivedrab=caml_string_of_jsbytes("olivedrab"), + cst_orange=caml_string_of_jsbytes("orange"), + cst_orangered=caml_string_of_jsbytes("orangered"), + cst_orchid=caml_string_of_jsbytes("orchid"), + cst_palegoldenrod=caml_string_of_jsbytes("palegoldenrod"), + cst_palegreen=caml_string_of_jsbytes("palegreen"), + cst_paleturquoise=caml_string_of_jsbytes("paleturquoise"), + cst_palevioletred=caml_string_of_jsbytes("palevioletred"), + cst_papayawhip=caml_string_of_jsbytes("papayawhip"), + cst_peachpuff=caml_string_of_jsbytes("peachpuff"), + cst_peru=caml_string_of_jsbytes("peru"), + cst_pink=caml_string_of_jsbytes("pink"), + cst_plum=caml_string_of_jsbytes("plum"), + cst_powderblue=caml_string_of_jsbytes("powderblue"), + cst_purple=caml_string_of_jsbytes("purple"), + cst_red=caml_string_of_jsbytes("red"), + cst_rosybrown=caml_string_of_jsbytes("rosybrown"), + cst_royalblue=caml_string_of_jsbytes("royalblue"), + cst_saddlebrown=caml_string_of_jsbytes("saddlebrown"), + cst_salmon=caml_string_of_jsbytes("salmon"), + cst_sandybrown=caml_string_of_jsbytes("sandybrown"), + cst_seagreen=caml_string_of_jsbytes("seagreen"), + cst_seashell=caml_string_of_jsbytes("seashell"), + cst_sienna=caml_string_of_jsbytes("sienna"), + cst_silver=caml_string_of_jsbytes("silver"), + cst_skyblue=caml_string_of_jsbytes("skyblue"), + cst_slateblue=caml_string_of_jsbytes("slateblue"), + cst_slategray=caml_string_of_jsbytes("slategray"), + cst_slategrey=caml_string_of_jsbytes("slategrey"), + cst_snow=caml_string_of_jsbytes("snow"), + cst_springgreen=caml_string_of_jsbytes("springgreen"), + cst_steelblue=caml_string_of_jsbytes("steelblue"), + cst_tan=caml_string_of_jsbytes("tan"), + cst_teal=caml_string_of_jsbytes("teal"), + cst_thistle=caml_string_of_jsbytes("thistle"), + cst_tomato=caml_string_of_jsbytes("tomato"), + cst_turquoise=caml_string_of_jsbytes("turquoise"), + cst_violet=caml_string_of_jsbytes("violet"), + cst_wheat=caml_string_of_jsbytes("wheat"), + cst_white=caml_string_of_jsbytes("white"), + cst_whitesmoke=caml_string_of_jsbytes("whitesmoke"), + cst_yellow=caml_string_of_jsbytes("yellow"), + cst_yellowgreen=caml_string_of_jsbytes("yellowgreen"), + cst_vkern$0=caml_string_of_jsbytes("vkern"), + cst_view$0=caml_string_of_jsbytes("view"), + cst_use$0=caml_string_of_jsbytes("use"), + cst_tspan$0=caml_string_of_jsbytes("tspan"), + cst_tref$0=caml_string_of_jsbytes("tref"), + cst_title$3=caml_string_of_jsbytes("title"), + cst_textpath$0=caml_string_of_jsbytes("textpath"), + cst_text$1=caml_string_of_jsbytes("text"), + cst_symbol$0=caml_string_of_jsbytes("symbol"), + cst_switch$0=caml_string_of_jsbytes("switch"), + cst_svg$0=caml_string_of_jsbytes("svg"), + cst_style$3=caml_string_of_jsbytes("style"), + cst_stop$0=caml_string_of_jsbytes("stop"), + cst_set$0=caml_string_of_jsbytes("set"), + cst_script$3=caml_string_of_jsbytes("script"), + cst_rect$0=caml_string_of_jsbytes("rect"), + cst_radialgradient$0=caml_string_of_jsbytes("radialgradient"), + cst_polyline$0=caml_string_of_jsbytes("polyline"), + cst_polygon$0=caml_string_of_jsbytes("polygon"), + cst_pattern$0=caml_string_of_jsbytes("pattern"), + cst_path$0=caml_string_of_jsbytes("path"), + cst_mpath$0=caml_string_of_jsbytes("mpath"), + cst_missing_glyph$0=caml_string_of_jsbytes("missing-glyph"), + cst_metadata$0=caml_string_of_jsbytes("metadata"), + cst_mask$0=caml_string_of_jsbytes("mask"), + cst_lineargradient$0=caml_string_of_jsbytes("lineargradient"), + cst_line$0=caml_string_of_jsbytes("line"), + cst_image$0=caml_string_of_jsbytes("image"), + cst_hkern$0=caml_string_of_jsbytes("hkern"), + cst_glyphref$0=caml_string_of_jsbytes("glyphref"), + cst_glyph$0=caml_string_of_jsbytes("glyph"), + cst_g$1=caml_string_of_jsbytes("g"), + cst_foreignobject=caml_string_of_jsbytes("foreignobject"), + cst_font_face_uri$0=caml_string_of_jsbytes("font-face-uri"), + cst_font_face_src$0=caml_string_of_jsbytes("font-face-src"), + cst_font_face_name$0=caml_string_of_jsbytes("font-face-name"), + cst_font_face_format$0=caml_string_of_jsbytes("font-face-format"), + cst_font_face$0=caml_string_of_jsbytes("font-face"), + cst_font$0=caml_string_of_jsbytes("font"), + cst_filter$0=caml_string_of_jsbytes("filter"), + cst_ellipse$0=caml_string_of_jsbytes("ellipse"), + cst_desc$0=caml_string_of_jsbytes("desc"), + cst_defs$0=caml_string_of_jsbytes("defs"), + cst_cursor$0=caml_string_of_jsbytes("cursor"), + cst_clippath$0=caml_string_of_jsbytes("clippath"), + cst_circle$0=caml_string_of_jsbytes("circle"), + cst_animatetransform$0=caml_string_of_jsbytes("animatetransform"), + cst_animatemotion$0=caml_string_of_jsbytes("animatemotion"), + cst_animatecolor$0=caml_string_of_jsbytes("animatecolor"), + cst_animate$0=caml_string_of_jsbytes("animate"), + cst_altglyphitem$0=caml_string_of_jsbytes("altglyphitem"), + cst_altglyphdef$0=caml_string_of_jsbytes("altglyphdef"), + cst_altglyph$0=caml_string_of_jsbytes("altglyph"), + cst_a$3=caml_string_of_jsbytes("a"), + cst_vkern=caml_string_of_jsbytes("vkern"), + cst_view=caml_string_of_jsbytes("view"), + cst_use=caml_string_of_jsbytes("use"), + cst_tspan=caml_string_of_jsbytes("tspan"), + cst_tref=caml_string_of_jsbytes("tref"), + cst_title$2=caml_string_of_jsbytes("title"), + cst_textpath=caml_string_of_jsbytes("textpath"), + cst_text$0=caml_string_of_jsbytes("text"), + cst_symbol=caml_string_of_jsbytes("symbol"), + cst_switch=caml_string_of_jsbytes("switch"), + cst_svg=caml_string_of_jsbytes("svg"), + cst_style$2=caml_string_of_jsbytes("style"), + cst_stop=caml_string_of_jsbytes("stop"), + cst_set=caml_string_of_jsbytes("set"), + cst_script$2=caml_string_of_jsbytes("script"), + cst_rect=caml_string_of_jsbytes("rect"), + cst_radialgradient=caml_string_of_jsbytes("radialgradient"), + cst_polyline=caml_string_of_jsbytes("polyline"), + cst_polygon=caml_string_of_jsbytes("polygon"), + cst_pattern=caml_string_of_jsbytes("pattern"), + cst_path=caml_string_of_jsbytes("path"), + cst_mpath=caml_string_of_jsbytes("mpath"), + cst_missing_glyph=caml_string_of_jsbytes("missing-glyph"), + cst_metadata=caml_string_of_jsbytes("metadata"), + cst_mask=caml_string_of_jsbytes("mask"), + cst_lineargradient=caml_string_of_jsbytes("lineargradient"), + cst_line=caml_string_of_jsbytes("line"), + cst_image=caml_string_of_jsbytes("image"), + cst_hkern=caml_string_of_jsbytes("hkern"), + cst_glyphref=caml_string_of_jsbytes("glyphref"), + cst_glyph=caml_string_of_jsbytes("glyph"), + cst_g$0=caml_string_of_jsbytes("g"), + cst_foreignObject=caml_string_of_jsbytes("foreignObject"), + cst_font_face_uri=caml_string_of_jsbytes("font-face-uri"), + cst_font_face_src=caml_string_of_jsbytes("font-face-src"), + cst_font_face_name=caml_string_of_jsbytes("font-face-name"), + cst_font_face_format=caml_string_of_jsbytes("font-face-format"), + cst_font_face=caml_string_of_jsbytes("font-face"), + cst_font=caml_string_of_jsbytes("font"), + cst_filter=caml_string_of_jsbytes("filter"), + cst_ellipse=caml_string_of_jsbytes("ellipse"), + cst_desc=caml_string_of_jsbytes("desc"), + cst_defs=caml_string_of_jsbytes("defs"), + cst_cursor=caml_string_of_jsbytes("cursor"), + cst_clippath=caml_string_of_jsbytes("clippath"), + cst_circle=caml_string_of_jsbytes("circle"), + cst_animatetransform=caml_string_of_jsbytes("animatetransform"), + cst_animatemotion=caml_string_of_jsbytes("animatemotion"), + cst_animatecolor=caml_string_of_jsbytes("animatecolor"), + cst_animate=caml_string_of_jsbytes("animate"), + cst_altglyphitem=caml_string_of_jsbytes("altglyphitem"), + cst_altglyphdef=caml_string_of_jsbytes("altglyphdef"), + cst_altglyph=caml_string_of_jsbytes("altglyph"), + cst_a$2=caml_string_of_jsbytes("a"), + cst_Js_of_ocaml_Dom_svg_SVGErr= + caml_string_of_jsbytes("Js_of_ocaml__Dom_svg.SVGError"), + Stdlib_String=global_data.Stdlib__String, + Stdlib_Char=global_data.Stdlib__Char, + Stdlib=global_data.Stdlib, + Jsoo_runtime=global_data.Jsoo_runtime, + Stdlib_Printexc=global_data.Stdlib__Printexc, + Assert_failure=global_data.Assert_failure, + Stdlib_List=global_data.Stdlib__List, + Stdlib_Array=global_data.Stdlib__Array, + Stdlib_Uchar=global_data.Stdlib__Uchar, + Stdlib_Printf=global_data.Stdlib__Printf; + global_data.CamlinternalOO; + var Stdlib_Obj=global_data.Stdlib__Obj,Js_of_ocaml=[0]; + caml_register_global(1653,Js_of_ocaml,"Js_of_ocaml__"); + var + Poly=[0], + _g_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/dom.ml"),351,67], + _h_=[0,caml_string_of_jsbytes("transparent")], + _i_=[0,caml_string_of_jsbytes("native")], + _m_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/dom_html.ml"),2894,58], + _l_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/dom_html.ml"),2893,61], + _k_= + [0, + [11, + caml_string_of_jsbytes("getElementById_exn: "), + [3,0,[11,caml_string_of_jsbytes(" not found"),0]]], + caml_string_of_jsbytes("getElementById_exn: %S not found")], + _p_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/form.ml"),178,13], + _o_=[0,1], + _q_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/regexp.ml"),34,64], + _r_=[0,caml_string_of_jsbytes(""),0], + _cl_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _cm_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _cn_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _co_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _b9_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _b__=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _b$_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _ca_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _cb_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _cc_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _cd_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _ce_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _cf_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _cg_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _ch_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _ci_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _cj_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _ck_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], + _b8_= + caml_list_of_js_array + ([caml_string_of_jsbytes("aliceblue"), + caml_string_of_jsbytes("antiquewhite"), + caml_string_of_jsbytes("aqua"), + caml_string_of_jsbytes("aquamarine"), + caml_string_of_jsbytes("azure"), + caml_string_of_jsbytes("beige"), + caml_string_of_jsbytes("bisque"), + caml_string_of_jsbytes("black"), + caml_string_of_jsbytes("blanchedalmond"), + caml_string_of_jsbytes("blue"), + caml_string_of_jsbytes("blueviolet"), + caml_string_of_jsbytes("brown"), + caml_string_of_jsbytes("burlywood"), + caml_string_of_jsbytes("cadetblue"), + caml_string_of_jsbytes("chartreuse"), + caml_string_of_jsbytes("chocolate"), + caml_string_of_jsbytes("coral"), + caml_string_of_jsbytes("cornflowerblue"), + caml_string_of_jsbytes("cornsilk"), + caml_string_of_jsbytes("crimson"), + caml_string_of_jsbytes("cyan"), + caml_string_of_jsbytes("darkblue"), + caml_string_of_jsbytes("darkcyan"), + caml_string_of_jsbytes("darkgoldenrod"), + caml_string_of_jsbytes("darkgray"), + caml_string_of_jsbytes("darkgreen"), + caml_string_of_jsbytes("darkgrey"), + caml_string_of_jsbytes("darkkhaki"), + caml_string_of_jsbytes("darkmagenta"), + caml_string_of_jsbytes("darkolivegreen"), + caml_string_of_jsbytes("darkorange"), + caml_string_of_jsbytes("darkorchid"), + caml_string_of_jsbytes("darkred"), + caml_string_of_jsbytes("darksalmon"), + caml_string_of_jsbytes("darkseagreen"), + caml_string_of_jsbytes("darkslateblue"), + caml_string_of_jsbytes("darkslategray"), + caml_string_of_jsbytes("darkslategrey"), + caml_string_of_jsbytes("darkturquoise"), + caml_string_of_jsbytes("darkviolet"), + caml_string_of_jsbytes("deeppink"), + caml_string_of_jsbytes("deepskyblue"), + caml_string_of_jsbytes("dimgray"), + caml_string_of_jsbytes("dimgrey"), + caml_string_of_jsbytes("dodgerblue"), + caml_string_of_jsbytes("firebrick"), + caml_string_of_jsbytes("floralwhite"), + caml_string_of_jsbytes("forestgreen"), + caml_string_of_jsbytes("fuchsia"), + caml_string_of_jsbytes("gainsboro"), + caml_string_of_jsbytes("ghostwhite"), + caml_string_of_jsbytes("gold"), + caml_string_of_jsbytes("goldenrod"), + caml_string_of_jsbytes("gray"), + caml_string_of_jsbytes("green"), + caml_string_of_jsbytes("greenyellow"), + caml_string_of_jsbytes("grey"), + caml_string_of_jsbytes("honeydew"), + caml_string_of_jsbytes("hotpink"), + caml_string_of_jsbytes("indianred"), + caml_string_of_jsbytes("indigo"), + caml_string_of_jsbytes("ivory"), + caml_string_of_jsbytes("khaki"), + caml_string_of_jsbytes("lavender"), + caml_string_of_jsbytes("lavenderblush"), + caml_string_of_jsbytes("lawngreen"), + caml_string_of_jsbytes("lemonchiffon"), + caml_string_of_jsbytes("lightblue"), + caml_string_of_jsbytes("lightcoral"), + caml_string_of_jsbytes("lightcyan"), + caml_string_of_jsbytes("lightgoldenrodyellow"), + caml_string_of_jsbytes("lightgray"), + caml_string_of_jsbytes("lightgreen"), + caml_string_of_jsbytes("lightgrey"), + caml_string_of_jsbytes("lightpink"), + caml_string_of_jsbytes("lightsalmon"), + caml_string_of_jsbytes("lightseagreen"), + caml_string_of_jsbytes("lightskyblue"), + caml_string_of_jsbytes("lightslategray"), + caml_string_of_jsbytes("lightslategrey"), + caml_string_of_jsbytes("lightsteelblue"), + caml_string_of_jsbytes("lightyellow"), + caml_string_of_jsbytes("lime"), + caml_string_of_jsbytes("limegreen"), + caml_string_of_jsbytes("linen"), + caml_string_of_jsbytes("magenta"), + caml_string_of_jsbytes("maroon"), + caml_string_of_jsbytes("mediumaquamarine"), + caml_string_of_jsbytes("mediumblue"), + caml_string_of_jsbytes("mediumorchid"), + caml_string_of_jsbytes("mediumpurple"), + caml_string_of_jsbytes("mediumseagreen"), + caml_string_of_jsbytes("mediumslateblue"), + caml_string_of_jsbytes("mediumspringgreen"), + caml_string_of_jsbytes("mediumturquoise"), + caml_string_of_jsbytes("mediumvioletred"), + caml_string_of_jsbytes("midnightblue"), + caml_string_of_jsbytes("mintcream"), + caml_string_of_jsbytes("mistyrose"), + caml_string_of_jsbytes("moccasin"), + caml_string_of_jsbytes("navajowhite"), + caml_string_of_jsbytes("navy"), + caml_string_of_jsbytes("oldlace"), + caml_string_of_jsbytes("olive"), + caml_string_of_jsbytes("olivedrab"), + caml_string_of_jsbytes("orange"), + caml_string_of_jsbytes("orangered"), + caml_string_of_jsbytes("orchid"), + caml_string_of_jsbytes("palegoldenrod"), + caml_string_of_jsbytes("palegreen"), + caml_string_of_jsbytes("paleturquoise"), + caml_string_of_jsbytes("palevioletred"), + caml_string_of_jsbytes("papayawhip"), + caml_string_of_jsbytes("peachpuff"), + caml_string_of_jsbytes("peru"), + caml_string_of_jsbytes("pink"), + caml_string_of_jsbytes("plum"), + caml_string_of_jsbytes("powderblue"), + caml_string_of_jsbytes("purple"), + caml_string_of_jsbytes("red"), + caml_string_of_jsbytes("rosybrown"), + caml_string_of_jsbytes("royalblue"), + caml_string_of_jsbytes("saddlebrown"), + caml_string_of_jsbytes("salmon"), + caml_string_of_jsbytes("sandybrown"), + caml_string_of_jsbytes("seagreen"), + caml_string_of_jsbytes("seashell"), + caml_string_of_jsbytes("sienna"), + caml_string_of_jsbytes("silver"), + caml_string_of_jsbytes("skyblue"), + caml_string_of_jsbytes("slateblue"), + caml_string_of_jsbytes("slategray"), + caml_string_of_jsbytes("slategrey"), + caml_string_of_jsbytes("snow"), + caml_string_of_jsbytes("springgreen"), + caml_string_of_jsbytes("steelblue"), + caml_string_of_jsbytes("tan"), + caml_string_of_jsbytes("teal"), + caml_string_of_jsbytes("thistle"), + caml_string_of_jsbytes("tomato"), + caml_string_of_jsbytes("turquoise"), + caml_string_of_jsbytes("violet"), + caml_string_of_jsbytes("wheat"), + caml_string_of_jsbytes("white"), + caml_string_of_jsbytes("whitesmoke"), + caml_string_of_jsbytes("yellow"), + caml_string_of_jsbytes("yellowgreen")]), + _b7_= + [0, + [12,35,[4,8,[0,2,2],0,[4,8,[0,2,2],0,[4,8,[0,2,2],0,0]]]], + caml_string_of_jsbytes("#%02X%02X%02X")], + _b1_= + [0, + [11, + caml_string_of_jsbytes("rgb("), + [4,0,0,0,[12,44,[4,0,0,0,[12,44,[4,0,0,0,[12,41,0]]]]]]], + caml_string_of_jsbytes("rgb(%d,%d,%d)")], + _b2_= + [0, + [11, + caml_string_of_jsbytes("rgb("), + [4, + 0, + 0, + 0, + [12,37,[12,44,[4,0,0,0,[12,37,[12,44,[4,0,0,0,[12,37,[12,41,0]]]]]]]]]], + caml_string_of_jsbytes("rgb(%d%%,%d%%,%d%%)")], + _b3_= + [0, + [11, + caml_string_of_jsbytes("rgba("), + [4, + 0, + 0, + 0, + [12,44,[4,0,0,0,[12,44,[4,0,0,0,[12,44,[8,[0,0,0],0,0,[12,41,0]]]]]]]]], + caml_string_of_jsbytes("rgba(%d,%d,%d,%f)")], + _b4_= + [0, + [11, + caml_string_of_jsbytes("rgba("), + [4, + 0, + 0, + 0, + [12, + 37, + [12,44,[4,0,0,0,[12,37,[12,44,[4,0,0,0,[12,37,[12,44,partial]]]]]]]]]], + caml_string_of_jsbytes("rgba(%d%%,%d%%,%d%%,%f)")], + _b5_= + [0, + [11, + caml_string_of_jsbytes("hsl("), + [4, + 0, + 0, + 0, + [12,44,[4,0,0,0,[12,37,[12,44,[4,0,0,0,[12,37,[12,41,0]]]]]]]]], + caml_string_of_jsbytes("hsl(%d,%d%%,%d%%)")], + _b6_= + [0, + [11, + caml_string_of_jsbytes("hsla("), + [4, + 0, + 0, + 0, + [12, + 44, + [4, + 0, + 0, + 0, + [12, + 37, + [12,44,[4,0,0,0,[12,37,[12,44,[8,partial$1,0,0,partial$0]]]]]]]]]], + caml_string_of_jsbytes("hsla(%d,%d%%,%d%%,%f)")], + _y_=[0,240,248,255], + _z_=[0,250,235,215], + _A_=[0,0,255,255], + _B_=[0,127,255,212], + _C_=[0,240,255,255], + _D_=[0,245,245,220], + _E_=[0,255,228,196], + _F_=[0,0,0,0], + _G_=[0,255,235,205], + _H_=[0,0,0,255], + _I_=[0,138,43,226], + _J_=[0,165,42,42], + _K_=[0,222,184,135], + _L_=[0,95,158,160], + _M_=[0,127,255,0], + _N_=[0,210,105,30], + _O_=[0,255,127,80], + _P_=[0,100,149,237], + _Q_=[0,255,248,220], + _R_=[0,220,20,60], + _S_=[0,0,255,255], + _T_=[0,0,0,139], + _U_=[0,0,139,139], + _V_=[0,184,134,11], + _W_=[0,169,169,169], + _X_=[0,0,100,0], + _Y_=[0,169,169,169], + _Z_=[0,189,183,107], + ___=[0,139,0,139], + _$_=[0,85,107,47], + _aa_=[0,255,140,0], + _ab_=[0,153,50,204], + _ac_=[0,139,0,0], + _ad_=[0,233,150,122], + _ae_=[0,143,188,143], + _af_=[0,72,61,139], + _ag_=[0,47,79,79], + _ah_=[0,47,79,79], + _ai_=[0,0,206,209], + _aj_=[0,148,0,211], + _ak_=[0,255,20,147], + _al_=[0,0,191,255], + _am_=[0,105,105,105], + _an_=[0,105,105,105], + _ao_=[0,30,144,255], + _ap_=[0,178,34,34], + _aq_=[0,255,250,240], + _ar_=[0,34,139,34], + _as_=[0,255,0,255], + _at_=[0,220,220,220], + _au_=[0,248,248,255], + _av_=[0,255,215,0], + _aw_=[0,218,165,32], + _ax_=[0,128,128,128], + _ay_=[0,128,128,128], + _az_=[0,0,128,0], + _aA_=[0,173,255,47], + _aB_=[0,240,255,240], + _aC_=[0,255,105,180], + _aD_=[0,205,92,92], + _aE_=[0,75,0,130], + _aF_=[0,255,255,240], + _aG_=[0,240,230,140], + _aH_=[0,230,230,250], + _aI_=[0,255,240,245], + _aJ_=[0,124,252,0], + _aK_=[0,255,250,205], + _aL_=[0,173,216,230], + _aM_=[0,240,128,128], + _aN_=[0,224,255,255], + _aO_=[0,250,250,210], + _aP_=[0,211,211,211], + _aQ_=[0,144,238,144], + _aR_=[0,211,211,211], + _aS_=[0,255,182,193], + _aT_=[0,255,160,122], + _aU_=[0,32,178,170], + _aV_=[0,135,206,250], + _aW_=[0,119,136,153], + _aX_=[0,119,136,153], + _aY_=[0,176,196,222], + _aZ_=[0,255,255,224], + _a0_=[0,0,255,0], + _a1_=[0,50,205,50], + _a2_=[0,250,240,230], + _a3_=[0,255,0,255], + _a4_=[0,128,0,0], + _a5_=[0,102,205,170], + _a6_=[0,0,0,205], + _a7_=[0,186,85,211], + _a8_=[0,147,112,219], + _a9_=[0,60,179,113], + _a__=[0,123,104,238], + _a$_=[0,0,250,154], + _ba_=[0,72,209,204], + _bb_=[0,199,21,133], + _bc_=[0,25,25,112], + _bd_=[0,245,255,250], + _be_=[0,255,228,225], + _bf_=[0,255,228,181], + _bg_=[0,255,222,173], + _bh_=[0,0,0,128], + _bi_=[0,253,245,230], + _bj_=[0,128,128,0], + _bk_=[0,107,142,35], + _bl_=[0,255,165,0], + _bm_=[0,255,69,0], + _bn_=[0,218,112,214], + _bo_=[0,238,232,170], + _bp_=[0,152,251,152], + _bq_=[0,175,238,238], + _br_=[0,219,112,147], + _bs_=[0,255,239,213], + _bt_=[0,255,218,185], + _bu_=[0,205,133,63], + _bv_=[0,255,192,203], + _bw_=[0,221,160,221], + _bx_=[0,176,224,230], + _by_=[0,128,0,128], + _bz_=[0,255,0,0], + _bA_=[0,188,143,143], + _bB_=[0,65,105,225], + _bC_=[0,139,69,19], + _bD_=[0,250,128,114], + _bE_=[0,244,164,96], + _bF_=[0,46,139,87], + _bG_=[0,255,245,238], + _bH_=[0,160,82,45], + _bI_=[0,192,192,192], + _bJ_=[0,135,206,235], + _bK_=[0,106,90,205], + _bL_=[0,112,128,144], + _bM_=[0,112,128,144], + _bN_=[0,255,250,250], + _bO_=[0,0,255,127], + _bP_=[0,70,130,180], + _bQ_=[0,210,180,140], + _bR_=[0,0,128,128], + _bS_=[0,216,191,216], + _bT_=[0,255,99,71], + _bU_=[0,64,224,208], + _bV_=[0,238,130,238], + _bW_=[0,245,222,179], + _bX_=[0,255,255,255], + _bY_=[0,245,245,245], + _bZ_=[0,255,255,0], + _b0_=[0,154,205,50]; + function symbol(x,y){return x < y?1:0} + function symbol$0(x,y){return x <= y?1:0} + function symbol$1(x,y){return x !== y?1:0} + function symbol$2(x,y){return x === y?1:0} + function symbol$3(x,y){return y < x?1:0} + function symbol$4(x,y){return y <= x?1:0} + var compare=runtime.caml_int_compare; + function equal(x,y){return x === y?1:0} + function max(x,y){return y <= x?x:y} + function min(x,y){return x <= y?x:y} + var + Int_replace_polymorphic_compar= + [0, + symbol, + symbol$0, + symbol$1, + symbol$2, + symbol$3, + symbol$4, + compare, + equal, + max, + min], + make=Stdlib_String[1], + init=Stdlib_String[2], + empty=Stdlib_String[3], + of_bytes=Stdlib_String[4], + to_bytes=Stdlib_String[5], + concat=Stdlib_String[6], + cat=Stdlib_String[7], + compare$0=Stdlib_String[9], + starts_with=Stdlib_String[10], + ends_with=Stdlib_String[11], + contains_from=Stdlib_String[12], + rcontains_from=Stdlib_String[13], + contains=Stdlib_String[14], + sub=Stdlib_String[15], + split_on_char=Stdlib_String[16], + map=Stdlib_String[17], + mapi=Stdlib_String[18], + fold_left=Stdlib_String[19], + fold_right=Stdlib_String[20], + for_all=Stdlib_String[21], + exists=Stdlib_String[22], + trim=Stdlib_String[23], + escaped=Stdlib_String[24], + uppercase_ascii=Stdlib_String[25], + lowercase_ascii=Stdlib_String[26], + capitalize_ascii=Stdlib_String[27], + uncapitalize_ascii=Stdlib_String[28], + iter=Stdlib_String[29], + iteri=Stdlib_String[30], + index_from=Stdlib_String[31], + index_from_opt=Stdlib_String[32], + rindex_from=Stdlib_String[33], + rindex_from_opt=Stdlib_String[34], + index=Stdlib_String[35], + index_opt=Stdlib_String[36], + rindex=Stdlib_String[37], + rindex_opt=Stdlib_String[38], + to_seq=Stdlib_String[39], + to_seqi=Stdlib_String[40], + of_seq=Stdlib_String[41], + get_utf_8_uchar=Stdlib_String[42], + is_valid_utf_8=Stdlib_String[43], + get_utf_16be_uchar=Stdlib_String[44], + is_valid_utf_16be=Stdlib_String[45], + get_utf_16le_uchar=Stdlib_String[46], + is_valid_utf_16le=Stdlib_String[47], + blit=Stdlib_String[48], + copy=Stdlib_String[49], + fill=Stdlib_String[50], + uppercase=Stdlib_String[51], + lowercase=Stdlib_String[52], + capitalize=Stdlib_String[53], + uncapitalize=Stdlib_String[54], + get_uint8=Stdlib_String[55], + get_int8=Stdlib_String[56], + get_uint16_ne=Stdlib_String[57], + get_uint16_be=Stdlib_String[58], + get_uint16_le=Stdlib_String[59], + get_int16_ne=Stdlib_String[60], + get_int16_be=Stdlib_String[61], + get_int16_le=Stdlib_String[62], + get_int32_ne=Stdlib_String[63], + get_int32_be=Stdlib_String[64], + get_int32_le=Stdlib_String[65], + get_int64_ne=Stdlib_String[66], + get_int64_be=Stdlib_String[67], + get_int64_le=Stdlib_String[68]; + function equal$0(x,y){return runtime.caml_string_equal(x,y)} + var + String= [0, make, init, @@ -44894,7 +45952,7 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ to_bytes, concat, cat, - compare, + compare$0, starts_with, ends_with, contains_from, @@ -44954,17 +46012,17 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ get_int64_ne, get_int64_be, get_int64_le, - equal], - chr = Stdlib_Char[1], - escaped$0 = Stdlib_Char[2], - lowercase$0 = Stdlib_Char[3], - uppercase$0 = Stdlib_Char[4], - lowercase_ascii$0 = Stdlib_Char[5], - uppercase_ascii$0 = Stdlib_Char[6], - compare$0 = Stdlib_Char[7]; - function equal$0(x, y){return x === y ? 1 : 0;} - var - Char = + equal$0], + chr=Stdlib_Char[1], + escaped$0=Stdlib_Char[2], + lowercase$0=Stdlib_Char[3], + uppercase$0=Stdlib_Char[4], + lowercase_ascii$0=Stdlib_Char[5], + uppercase_ascii$0=Stdlib_Char[6], + compare$1=Stdlib_Char[7]; + function equal$1(x,y){return x === y?1:0} + var + Char= [0, chr, escaped$0, @@ -44972,286 +46030,222 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ uppercase$0, lowercase_ascii$0, uppercase_ascii$0, - compare$0, - equal$0], - max$0 = Int_replace_polymorphic_compar[1], - min$0 = Int_replace_polymorphic_compar[2], - Js_of_ocaml_Import = - [0, Poly, Int_replace_polymorphic_compar, String, Char, max$0, min$0]; - runtime.caml_register_global(2, Js_of_ocaml_Import, "Js_of_ocaml__Import"); - return; - } - (globalThis)); - -//# 200 "../../.js/default/js_of_ocaml/js_of_ocaml.cma.js" -(function - (globalThis){ - "use strict"; - var - jsoo_exports = typeof module === "object" && module.exports || globalThis, - runtime = globalThis.jsoo_runtime, - cst_parseFloat$0 = "parseFloat", - cst_parseInt$0 = "parseInt", - caml_js_get = runtime.caml_js_get, - caml_js_set = runtime.caml_js_set, - caml_js_wrap_callback = runtime.caml_js_wrap_callback, - caml_string_of_jsstring = runtime.caml_string_of_jsstring; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Js_of_ocaml_Import = global_data.Js_of_ocaml__Import, - Stdlib = global_data.Stdlib, - Jsoo_runtime = global_data.Jsoo_runtime, - Stdlib_Printexc = global_data.Stdlib__Printexc, - global = globalThis, - Unsafe = [0, global], - null$0 = null, - undefined$0 = undefined, - cst_function = "function", - cst_parseFloat = cst_parseFloat$0, - cst_parseInt = cst_parseInt$0; - function return$0(_z_){return _z_;} - function map(x, f){return x == null$0 ? null$0 : caml_call1(f, x);} - function bind(x, f){return x == null$0 ? null$0 : caml_call1(f, x);} - function test(x){return 1 - (x == null$0 ? 1 : 0);} - function iter(x, f){ - var _y_ = 1 - (x == null$0 ? 1 : 0); - return _y_ ? caml_call1(f, x) : _y_; - } - function case$0(x, f, g){ - return x == null$0 ? caml_call1(f, 0) : caml_call1(g, x); - } - function get(x, f){return x == null$0 ? caml_call1(f, 0) : x;} - function option(x){if(! x) return null$0; var x$0 = x[1]; return x$0;} - function to_option(x){ - function _x_(x){return [0, x];} - return case$0(x, function(param){return 0;}, _x_); - } - var - Opt = + compare$1, + equal$1], + symbol$5=Int_replace_polymorphic_compar[1], + symbol$6=Int_replace_polymorphic_compar[2], + symbol$7=Int_replace_polymorphic_compar[3], + symbol$8=Int_replace_polymorphic_compar[4], + symbol$9=Int_replace_polymorphic_compar[5], + symbol$10=Int_replace_polymorphic_compar[6], + compare$2=Int_replace_polymorphic_compar[7], + equal$2=Int_replace_polymorphic_compar[8], + max$0=Int_replace_polymorphic_compar[9], + min$0=Int_replace_polymorphic_compar[10], + Js_of_ocaml_Import= [0, - null$0, + Poly, + Int_replace_polymorphic_compar, + String, + Char, + symbol$5, + symbol$6, + symbol$7, + symbol$8, + symbol$9, + symbol$10, + compare$2, + equal$2, + max$0, + min$0]; + caml_register_global(1656,Js_of_ocaml_Import,"Js_of_ocaml__Import"); + var global=globalThis,Unsafe=[0,global],no_handler=null,t39=undefined; + function return$0(_g2_){return _g2_} + function map$0(x,f){return x == no_handler?no_handler:caml_call1(f,x)} + function bind(x,f){return x == no_handler?no_handler:caml_call1(f,x)} + function test(x){return 1 - (x == no_handler?1:0)} + function iter$0(x,f) + {var _g1_=1 - (x == no_handler?1:0);return _g1_?caml_call1(f,x):_g1_} + function case$0(x,f,g) + {return x == no_handler?caml_call1(f,0):caml_call1(g,x)} + function get(x,f){return x == no_handler?caml_call1(f,0):x} + function option(x){if(! x)return no_handler;var x$0=x[1];return x$0} + function to_option(x) + {function _g0_(x){return [0,x]} + return case$0(x,function(param){return 0},_g0_)} + var + Opt= + [0, + no_handler, return$0, - map, + map$0, bind, test, - iter, + iter$0, case$0, get, option, to_option]; - function return$1(_w_){return _w_;} - function map$0(x, f){ - return x === undefined$0 ? undefined$0 : caml_call1(f, x); - } - function bind$0(x, f){ - return x === undefined$0 ? undefined$0 : caml_call1(f, x); - } - function test$0(x){return x !== undefined$0 ? 1 : 0;} - function iter$0(x, f){ - var _v_ = x !== undefined$0 ? 1 : 0; - return _v_ ? caml_call1(f, x) : _v_; - } - function case$1(x, f, g){ - return x === undefined$0 ? caml_call1(f, 0) : caml_call1(g, x); - } - function get$0(x, f){return x === undefined$0 ? caml_call1(f, 0) : x;} - function option$0(x){ - if(! x) return undefined$0; - var x$0 = x[1]; - return x$0; - } - function to_option$0(x){ - function _u_(x){return [0, x];} - return case$1(x, function(param){return 0;}, _u_); - } - var - Optdef = + function return$1(_gZ_){return _gZ_} + function map$1(x,f){return x === t39?t39:caml_call1(f,x)} + function bind$0(x,f){return x === t39?t39:caml_call1(f,x)} + function test$0(x){return x !== t39?1:0} + function iter$1(x,f) + {var _gY_=x !== t39?1:0;return _gY_?caml_call1(f,x):_gY_} + function case$1(x,f,g){return x === t39?caml_call1(f,0):caml_call1(g,x)} + function get$0(x,f){return x === t39?caml_call1(f,0):x} + function option$0(x){if(! x)return t39;var x$0=x[1];return x$0} + function to_option$0(x) + {function _gX_(x){return [0,x]} + return case$1(x,function(param){return 0},_gX_)} + var + Optdef= [0, - undefined$0, + t39, return$1, - map$0, + map$1, bind$0, test$0, - iter$0, + iter$1, case$1, get$0, option$0, to_option$0]; - function coerce(x, f, g){ - function _s_(param){return caml_call1(g, x);} - var _t_ = caml_call1(f, x); - return caml_call2(Opt[8], _t_, _s_); - } - function coerce_opt(x, f, g){ - function _q_(param){return caml_call1(g, x);} - var _r_ = caml_call2(Opt[4], x, f); - return caml_call2(Opt[8], _r_, _q_); - } - var - true$0 = true, - false$0 = false, - nfc = "NFC", - nfd = "NFD", - nfkc = "NFKC", - nfkd = "NFKD", - t0 = Unsafe[1], - string_constr = t0.String, - t1 = Unsafe[1], - regExp = t1.RegExp, - t2 = Unsafe[1], - object_constructor = t2.Object; - function object_keys(o){return object_constructor.keys(o);} - var - t5 = Unsafe[1], - array_constructor = t5.Array, - array_get = caml_js_get, - array_set = caml_js_set; - function array_map(f, a){ - return a.map - (caml_js_wrap_callback - (function(x, idx, param){return caml_call1(f, x);})); - } - function array_mapi(f, a){ - return a.map - (caml_js_wrap_callback - (function(x, idx, param){return caml_call2(f, idx, x);})); - } - function str_array(_p_){return _p_;} - function match_result(_o_){return _o_;} - var - t8 = Unsafe[1], - date_constr = t8.Date, - t9 = Unsafe[1], - math = t9.Math, - t10 = Unsafe[1], - error_constr = t10.Error, - include = Jsoo_runtime[3], - raise = include[1], - exn_with_js_backtrace = include[2], - of_exn = include[3], - Error = include[4]; - function name(t11){return caml_string_of_jsstring(t11.name);} - function message(t12){return caml_string_of_jsstring(t12.message);} - function stack(t13){ - var _n_ = caml_call2(Opt[3], t13.stack, caml_string_of_jsstring); - return caml_call1(Opt[10], _n_); - } - function to_string(e){return caml_string_of_jsstring(e.toString());} - function raise_js_error(e){return caml_call1(raise, e);} - function string_of_error(e){return to_string(e);} - var t15 = Unsafe[1], JSON = t15.JSON; - function decodeURI(s){var t16 = Unsafe[1]; return t16.decodeURI(s);} - function decodeURIComponent(s){ - var t17 = Unsafe[1]; - return t17.decodeURIComponent(s); - } - function encodeURI(s){var t18 = Unsafe[1]; return t18.encodeURI(s);} - function encodeURIComponent(s){ - var t19 = Unsafe[1]; - return t19.encodeURIComponent(s); - } - function escape(s){var t20 = Unsafe[1]; return t20.escape(s);} - function unescape(s){var t21 = Unsafe[1]; return t21.unescape(s);} - function isNaN(i){var t22 = Unsafe[1]; return t22.isNaN(i) | 0;} - function parseInt(s){ - var t23 = Unsafe[1], s$0 = t23.parseInt(s); - return isNaN(s$0) ? caml_call1(Stdlib[2], cst_parseInt) : s$0; - } - function parseFloat(s){ - var t24 = Unsafe[1], s$0 = t24.parseFloat(s); - return isNaN(s$0) ? caml_call1(Stdlib[2], cst_parseFloat) : s$0; - } - function _a_(param){ - if(param[1] !== Error) return 0; - var e = param[2]; - return [0, to_string(e)]; - } - caml_call1(Stdlib_Printexc[9], _a_); - function _b_(e){ - return e instanceof array_constructor - ? 0 - : [0, caml_string_of_jsstring(e.toString())]; - } - caml_call1(Stdlib_Printexc[9], _b_); - function export_js(field, x){ - var _l_ = caml_string_of_jsstring(typeof x), switch$0 = 0; - if - (caml_call2(Js_of_ocaml_Import[3][68], _l_, cst_function) && 0 < x.length){var _m_ = caml_js_wrap_callback(x); switch$0 = 1;} - if(! switch$0) var _m_ = x; - return jsoo_exports[field] = _m_; - } - function export$0(field, x){ - return export_js(runtime.caml_jsstring_of_string(field), x); - } - function export_all(obj){ - var keys = object_keys(obj); - return keys.forEach - (caml_js_wrap_callback - (function(key, param, _k_){return export_js(key, obj[key]);})); - } - var _c_ = runtime.caml_js_error_of_exception; - function _d_(_j_){return _j_;} - var - _e_ = + function coerce(x,f,g) + {function _gV_(param){return caml_call1(g,x)} + var _gW_=caml_call1(f,x); + return caml_call2(Opt[8],_gW_,_gV_)} + function coerce_opt(x,f,g) + {function _gT_(param){return caml_call1(g,x)} + var _gU_=caml_call2(Opt[4],x,f); + return caml_call2(Opt[8],_gU_,_gT_)} + var + t38=true, + t4=false, + nfc="NFC", + nfd="NFD", + nfkc="NFKC", + nfkd="NFKD", + string_constr=Unsafe[1].String, + t11=Unsafe[1].RegExp, + t4$0=Unsafe[1].Object; + function object_keys(t3){return t4$0.keys(t3)} + var + array_length=Unsafe[1].Array, + array_get=caml_js_get, + array_set=caml_js_set; + function array_map(f,a) + {return a.map + (caml_js_wrap_callback + (function(x,idx,param){return caml_call1(f,x)}))} + function array_mapi(f,a) + {return a.map + (caml_js_wrap_callback + (function(x,idx,param){return caml_call2(f,idx,x)}))} + function str_array(_gS_){return _gS_} + function match_result(_gR_){return _gR_} + var + t116=Unsafe[1].Date, + math=Unsafe[1].Math, + error_constr=Unsafe[1].Error, + include=Jsoo_runtime[3], + raise=include[1], + attach_js_backtrace=include[2], + of_exn=include[3], + Error=include[4]; + function name(e){return caml_string_of_jsstring(e.name)} + function message(e){return caml_string_of_jsstring(e.message)} + function stack(e) + {var _gQ_=caml_call2(Opt[3],e.stack,caml_string_of_jsstring); + return caml_call1(Opt[10],_gQ_)} + function to_string(e){return caml_string_of_jsstring(e.toString())} + function raise_js_error(e){return caml_call1(raise,e)} + function string_of_error(e){return to_string(e)} + var JSON=Unsafe[1].JSON; + function decodeURI(s){return Unsafe[1].decodeURI(s)} + function decodeURIComponent(s){return Unsafe[1].decodeURIComponent(s)} + function encodeURI(s){return Unsafe[1].encodeURI(s)} + function encodeURIComponent(s){return Unsafe[1].encodeURIComponent(s)} + function escape(s){return Unsafe[1].escape(s)} + function unescape(s){return Unsafe[1].unescape(s)} + function isNaN(i){return Unsafe[1].isNaN(i) | 0} + function parseInt(s) + {var s$0=Unsafe[1].parseInt(s); + return isNaN(s$0)?caml_call1(Stdlib[2],cst_parseInt):s$0} + function parseFloat(s) + {var s$0=Unsafe[1].parseFloat(s); + return isNaN(s$0)?caml_call1(Stdlib[2],cst_parseFloat):s$0} + function _a_(param) + {if(param[1] !== Error)return 0;var e=param[2];return [0,to_string(e)]} + caml_call1(Stdlib_Printexc[9],_a_); + function _b_(e) + {return e instanceof array_length + ?0 + :[0,caml_string_of_jsstring(e.toString())]} + caml_call1(Stdlib_Printexc[9],_b_); + function export_js(field,x){return jsoo_exports[field] = x} + function export$0(field,x) + {return export_js(caml_jsstring_of_string(field),x)} + function export_all(obj) + {var + t27=object_keys(obj), + t26= + caml_js_wrap_callback + (function(key,param,_gP_){return export_js(key,obj[key])}); + return t27.forEach(t26)} + var _c_=runtime.caml_js_error_of_exception; + function _d_(_gO_){return _gO_} + var + _e_= [0, to_string, name, message, stack, raise, - exn_with_js_backtrace, + attach_js_backtrace, of_exn, Error, - function(_i_){return _i_;}, + function(_gN_){return _gN_}, _d_]; - function _f_(_h_){return _h_;} - var - Js_of_ocaml_Js = + function _f_(_gM_){return _gM_} + var + Js_of_ocaml_Js= [0, - null$0, - function(_g_){return _g_;}, - undefined$0, + no_handler, + function(_gL_){return _gL_}, + t39, _f_, Opt, Optdef, - true$0, - false$0, + t38, + t4, nfd, nfc, nfkd, nfkc, string_constr, - regExp, - regExp, - regExp, + t11, + t11, + t11, object_keys, - array_constructor, - array_constructor, + array_length, + array_length, array_get, array_set, array_map, array_mapi, str_array, match_result, - date_constr, - date_constr, - date_constr, - date_constr, - date_constr, - date_constr, - date_constr, - date_constr, - date_constr, + t116, + t116, + t116, + t116, + t116, + t116, + t116, + t116, + t116, math, error_constr, _e_, @@ -45272,265 +46266,3930 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ Unsafe, string_of_error, raise_js_error, - exn_with_js_backtrace, + attach_js_backtrace, _c_, Error]; - runtime.caml_register_global(43, Js_of_ocaml_Js, "Js_of_ocaml__Js"); - return; - } + caml_register_global(1660,Js_of_ocaml_Js,"Js_of_ocaml__Js"); + function list_of_nodeList(nodeList) + {var length=nodeList.length,acc=0,i=0; + for(;;) + {if(! caml_call2(symbol$5,i,length)) + return caml_call1(Stdlib_List[9],acc); + var _gK_=nodeList.item(i),match=caml_call1(Opt[10],_gK_); + if(match) + {var e=match[1],i$0=i + 1 | 0,acc$0=[0,e,acc],acc=acc$0,i=i$0; + continue} + var i$1=i + 1 | 0,i=i$1}} + var + disconnected=1, + preceding=2, + following=4, + contains$0=8, + contained_by=16, + implementation_specific=32; + function has(t,mask){return caml_call2(symbol$8,t & mask,mask)} + function add(x,y){return x | y} + var + DocumentPosition= + [0, + disconnected, + preceding, + following, + contains$0, + contained_by, + implementation_specific, + has, + add, + add]; + function appendChild(p,n){p.appendChild(n);return 0} + function removeChild(p,n){p.removeChild(n);return 0} + function replaceChild(p,n,o){p.replaceChild(n,o);return 0} + function insertBefore(p,n,o){p.insertBefore(n,o);return 0} + function nodeType(e) + {var match=e.nodeType; + if(match) + switch(match - 1 | 0) + {case 0:return [0,e];case 1:return [1,e];case 2:case 3:return [2,e]} + return [3,e]} + function cast(e,t){return e.nodeType === t?e:no_handler} + function element(e){return cast(e,1)} + function text(e) + {if(3 !== e.nodeType && 4 !== e.nodeType)return no_handler;return e} + function attr(e){return cast(e,2)} + function handler(f) + {return runtime.caml_js_wrap_callback_unsafe + (function(e) + {if(caml_call1(Opt[5],e)) + {var res=caml_call1(f,e); + if(1 - (res | 0))e.preventDefault(); + return res} + var t18=event,t17=caml_call1(f,t18); + if(1 - (t17 | 0))t18.returnValue = t17; + return t17})} + function full_handler(f) + {return runtime.caml_js_wrap_meth_callback_unsafe + (function(this$0,e) + {if(caml_call1(Opt[5],e)) + {var res=caml_call2(f,this$0,e); + if(1 - (res | 0))e.preventDefault(); + return res} + var t21=event,t20=caml_call2(f,this$0,t21); + if(1 - (t20 | 0))t21.returnValue = t20; + return t20})} + function invoke_handler(f,this$0,event){return f.call(this$0,event)} + function eventTarget(e) + {function _gH_(param) + {function _gJ_(param){throw Stdlib[8]} + return caml_call2(Opt[8],e.srcElement,_gJ_)} + var t27=caml_call2(Opt[8],e.target,_gH_); + if(! (t27 instanceof Unsafe[1].Node))return t27; + if(3 !== t27.nodeType)return t27; + function _gI_(param){throw [0,Assert_failure,_g_]} + return caml_call2(Opt[8],t27.parentNode,_gI_)} + function make$0(s){return caml_jsstring_of_string(s)} + var Event=[0,make$0]; + function addEventListenerWithOptions(t50,t47,capture,once,passive,t48) + {if(t50.addEventListener === t39) + {var + t34="on".concat(t47), + t35= + function(e) + {var _gE_=[0,t48,e,[0]]; + return function(_gF_,_gG_) + {return runtime.caml_js_call(_gE_,_gF_,_gG_)}}; + t50.attachEvent(t34,t35); + return function(param){return t50.detachEvent(t34,t35)}} + var t49={}; + function iter(t,f){if(! t)return 0;var b=t[1];return caml_call1(f,b)} + iter(capture,function(t37){return t49.capture = t37}); + iter(once,function(t39){return t49.once = t39}); + iter(passive,function(t41){return t49.passive = t41}); + t50.addEventListener(t47,t48,t49); + return function(param){return t50.removeEventListener(t47,t48,t49)}} + function addEventListener(e,typ,h,capt) + {return addEventListenerWithOptions(e,typ,[0,capt],0,0,h)} + function removeEventListener(id){return caml_call1(id,0)} + function preventDefault(t54) + {if(caml_call1(Optdef[5],t54.preventDefault))return t54.preventDefault(); + var t53=! ! 0; + return t54.returnValue = t53} + function createCustomEvent(bubbles,cancelable,detail,t62) + {function opt_iter(f,param) + {if(! param)return 0;var x=param[1];return caml_call1(f,x)} + var t63={}; + opt_iter(function(x){var t55=! ! x;return t63.bubbles = t55},bubbles); + opt_iter + (function(x){var t57=! ! x;return t63.cancelable = t57},cancelable); + opt_iter(function(t59){return t63.detail = t59},detail); + var t64=Unsafe[1].CustomEvent; + return new t64(t62,t63)} + var + Js_of_ocaml_Dom= + [0, + DocumentPosition, + insertBefore, + replaceChild, + removeChild, + appendChild, + list_of_nodeList, + nodeType, + [0,element,text,attr], + no_handler, + handler, + full_handler, + invoke_handler, + eventTarget, + Event, + addEventListenerWithOptions, + addEventListener, + removeEventListener, + preventDefault, + createCustomEvent]; + caml_register_global(1663,Js_of_ocaml_Dom,"Js_of_ocaml__Dom"); + var + arrayBuffer=Unsafe[1].ArrayBuffer, + int8Array_inBuffer=Unsafe[1].Int8Array, + t11$0=Unsafe[1].Uint8Array, + int16Array_inBuffer=Unsafe[1].Int16Array, + uint16Array_inBuffer=Unsafe[1].Uint16Array, + int32Array_inBuffer=Unsafe[1].Int32Array, + uint32Array_inBuffer=Unsafe[1].Uint32Array, + float32Array_inBuffer=Unsafe[1].Float32Array, + float64Array_inBuffer=Unsafe[1].Float64Array, + set=caml_js_set; + function get$1(a,i){return a[i]} + function unsafe_get(a,i){return a[i]} + var dataView=Unsafe[1].DataView; + function of_arrayBuffer(ab) + {var uint8=new t11$0(ab);return caml_string_of_array(uint8)} + var + Js_of_ocaml_Typed_array= + [0, + arrayBuffer, + runtime.caml_ba_kind_of_typed_array, + runtime.caml_ba_to_typed_array, + runtime.caml_ba_from_typed_array, + int8Array_inBuffer, + int8Array_inBuffer, + int8Array_inBuffer, + int8Array_inBuffer, + int8Array_inBuffer, + t11$0, + t11$0, + t11$0, + t11$0, + t11$0, + int16Array_inBuffer, + int16Array_inBuffer, + int16Array_inBuffer, + int16Array_inBuffer, + int16Array_inBuffer, + uint16Array_inBuffer, + uint16Array_inBuffer, + uint16Array_inBuffer, + uint16Array_inBuffer, + uint16Array_inBuffer, + int32Array_inBuffer, + int32Array_inBuffer, + int32Array_inBuffer, + int32Array_inBuffer, + int32Array_inBuffer, + uint32Array_inBuffer, + uint32Array_inBuffer, + uint32Array_inBuffer, + uint32Array_inBuffer, + uint32Array_inBuffer, + float32Array_inBuffer, + float32Array_inBuffer, + float32Array_inBuffer, + float32Array_inBuffer, + float32Array_inBuffer, + float64Array_inBuffer, + float64Array_inBuffer, + float64Array_inBuffer, + float64Array_inBuffer, + float64Array_inBuffer, + set, + get$1, + unsafe_get, + dataView, + dataView, + [0, + runtime.bigstring_to_array_buffer, + runtime.bigstring_to_typed_array, + runtime.bigstring_of_array_buffer, + runtime.bigstring_of_typed_array], + [0,of_arrayBuffer,caml_string_of_array]]; + caml_register_global + (1664,Js_of_ocaml_Typed_array,"Js_of_ocaml__Typed_array"); + var t3=Unsafe[1].Blob; + function filter_map(f,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var q=param$0[2],v=param$0[1],match=caml_call1(f,v); + if(match){var v$0=match[1];return [0,v$0,filter_map(f,q)]} + var param$0=q}} + function blob_raw(contentType,endings,a) + {var _gA_=0; + if(endings) + var _gB_=116179762 <= endings[1]?_h_:_i_,_gC_=_gB_; + else + var _gC_=0; + var + _gD_=[0,[0,cst_type,contentType],[0,[0,cst_endings,_gC_],_gA_]], + options= + filter_map + (function(param) + {var v=param[2],name=param[1]; + if(! v)return 0; + var v$0=v[1]; + return [0,[0,name,caml_jsstring_of_string(v$0)]]}, + _gD_), + options$0= + options + ?runtime.caml_js_object(caml_call1(Stdlib_Array[12],options)) + :t39, + t1=caml_js_from_array(a); + return new t3(t1,options$0)} + function blob_from_string(contentType,endings,s) + {return blob_raw(contentType,endings,[0,caml_jsstring_of_string(s)])} + function blob_from_any(contentType,endings,l) + {function _gy_(param) + {var _gz_=param[1]; + if(155580615 === _gz_){var s=param[2];return s} + if(486041214 <= _gz_) + {if(1037850489 <= _gz_){var a=param[2];return a} + var a$0=param[2]; + return a$0} + if(288368849 <= _gz_) + {var s$0=param[2];return caml_jsstring_of_string(s$0)} + var b=param[2]; + return b} + var l$0=caml_call2(Stdlib_List[19],_gy_,l); + return blob_raw(contentType,endings,caml_call1(Stdlib_Array[12],l$0))} + function filename(file) + {var match=caml_call1(Optdef[10],file.name); + if(match){var name=match[1];return name} + var match$0=caml_call1(Optdef[10],file.fileName); + if(! match$0) + return caml_call1(Stdlib[2],cst_can_t_retrieve_file_name_n); + var name$0=match$0[1]; + return name$0} + var doc_constr=Unsafe[1].Document; + function document(e){return e instanceof doc_constr?e:no_handler} + function blob(e){return e instanceof t3?e:no_handler} + function string(e){return typeof e === "string"?e:no_handler} + function arrayBuffer$0(e){return e instanceof arrayBuffer?e:no_handler} + var + loadstart=caml_call1(Event[1],cst_loadstart), + progress=caml_call1(Event[1],cst_progress), + abort=caml_call1(Event[1],cst_abort), + error=caml_call1(Event[1],cst_error), + load=caml_call1(Event[1],cst_load), + loadend=caml_call1(Event[1],cst_loadend), + ReaderEvent=[0,loadstart,progress,abort,error,load,loadend], + fileReader=Unsafe[1].FileReader, + Js_of_ocaml_File= + [0, + blob_from_string, + blob_from_any, + [0,document,blob,function(_gx_){return _gx_},string,arrayBuffer$0], + ReaderEvent, + filename, + fileReader, + addEventListener]; + caml_register_global(1666,Js_of_ocaml_File,"Js_of_ocaml__File"); + var + onIE=runtime.caml_js_on_ie(0) | 0, + click=caml_call1(Event[1],cst_click), + copy$0=caml_call1(Event[1],cst_copy), + cut=caml_call1(Event[1],cst_cut), + paste=caml_call1(Event[1],cst_paste), + dblclick=caml_call1(Event[1],cst_dblclick), + mousedown=caml_call1(Event[1],cst_mousedown), + mouseup=caml_call1(Event[1],cst_mouseup), + mouseover=caml_call1(Event[1],cst_mouseover), + mousemove=caml_call1(Event[1],cst_mousemove), + mouseout=caml_call1(Event[1],cst_mouseout), + keypress=caml_call1(Event[1],cst_keypress), + keydown=caml_call1(Event[1],cst_keydown), + keyup=caml_call1(Event[1],cst_keyup), + mousewheel=caml_call1(Event[1],cst_mousewheel), + wheel=caml_call1(Event[1],cst_wheel), + DOMMouseScroll=caml_call1(Event[1],cst_DOMMouseScroll), + touchstart=caml_call1(Event[1],cst_touchstart), + touchmove=caml_call1(Event[1],cst_touchmove), + touchend=caml_call1(Event[1],cst_touchend), + touchcancel=caml_call1(Event[1],cst_touchcancel), + dragstart=caml_call1(Event[1],cst_dragstart), + dragend=caml_call1(Event[1],cst_dragend), + dragenter=caml_call1(Event[1],cst_dragenter), + dragover=caml_call1(Event[1],cst_dragover), + dragleave=caml_call1(Event[1],cst_dragleave), + drag=caml_call1(Event[1],cst_drag), + drop=caml_call1(Event[1],cst_drop), + hashchange=caml_call1(Event[1],cst_hashchange), + change=caml_call1(Event[1],cst_change), + input=caml_call1(Event[1],cst_input), + timeupdate=caml_call1(Event[1],cst_timeupdate), + submit=caml_call1(Event[1],cst_submit), + scroll=caml_call1(Event[1],cst_scroll), + focus=caml_call1(Event[1],cst_focus), + blur=caml_call1(Event[1],cst_blur), + load$0=caml_call1(Event[1],cst_load$0), + unload=caml_call1(Event[1],cst_unload), + beforeunload=caml_call1(Event[1],cst_beforeunload), + resize=caml_call1(Event[1],cst_resize), + orientationchange=caml_call1(Event[1],cst_orientationchange), + popstate=caml_call1(Event[1],cst_popstate), + error$0=caml_call1(Event[1],cst_error$0), + abort$0=caml_call1(Event[1],cst_abort$0), + select=caml_call1(Event[1],cst_select), + online=caml_call1(Event[1],cst_online), + offline=caml_call1(Event[1],cst_offline), + checking=caml_call1(Event[1],cst_checking), + noupdate=caml_call1(Event[1],cst_noupdate), + downloading=caml_call1(Event[1],cst_downloading), + progress$0=caml_call1(Event[1],cst_progress$0), + updateready=caml_call1(Event[1],cst_updateready), + cached=caml_call1(Event[1],cst_cached), + obsolete=caml_call1(Event[1],cst_obsolete), + domContentLoaded=caml_call1(Event[1],cst_DOMContentLoaded), + animationstart=caml_call1(Event[1],cst_animationstart), + animationend=caml_call1(Event[1],cst_animationend), + animationiteration=caml_call1(Event[1],cst_animationiteration), + animationcancel=caml_call1(Event[1],cst_animationcancel), + transitionrun=caml_call1(Event[1],cst_transitionrun), + transitionstart=caml_call1(Event[1],cst_transitionstart), + transitionend=caml_call1(Event[1],cst_transitionend), + transitioncancel=caml_call1(Event[1],cst_transitioncancel), + canplay=caml_call1(Event[1],cst_canplay), + canplaythrough=caml_call1(Event[1],cst_canplaythrough), + durationchange=caml_call1(Event[1],cst_durationchange), + emptied=caml_call1(Event[1],cst_emptied), + ended=caml_call1(Event[1],cst_ended), + gotpointercapture=caml_call1(Event[1],cst_gotpointercapture), + loadeddata=caml_call1(Event[1],cst_loadeddata), + loadedmetadata=caml_call1(Event[1],cst_loadedmetadata), + loadstart$0=caml_call1(Event[1],cst_loadstart$0), + lostpointercapture=caml_call1(Event[1],cst_lostpointercapture), + message$0=caml_call1(Event[1],cst_message), + pause=caml_call1(Event[1],cst_pause), + play=caml_call1(Event[1],cst_play), + playing=caml_call1(Event[1],cst_playing), + pointerenter=caml_call1(Event[1],cst_pointerenter), + pointercancel=caml_call1(Event[1],cst_pointercancel), + pointerdown=caml_call1(Event[1],cst_pointerdown), + pointerleave=caml_call1(Event[1],cst_pointerleave), + pointermove=caml_call1(Event[1],cst_pointermove), + pointerout=caml_call1(Event[1],cst_pointerout), + pointerover=caml_call1(Event[1],cst_pointerover), + pointerup=caml_call1(Event[1],cst_pointerup), + ratechange=caml_call1(Event[1],cst_ratechange), + seeked=caml_call1(Event[1],cst_seeked), + seeking=caml_call1(Event[1],cst_seeking), + stalled=caml_call1(Event[1],cst_stalled), + suspend=caml_call1(Event[1],cst_suspend), + volumechange=caml_call1(Event[1],cst_volumechange), + waiting=caml_call1(Event[1],cst_waiting), + make$1=Event[1], + d="2d"; + function location_origin(loc) + {function _gv_(o){return o} + function _gw_(param) + {var t8=loc.protocol,t7=loc.hostname,t9=loc.port; + if + (caml_call2(symbol$8,t8.length,0) + && + caml_call2(symbol$8,t7.length,0)) + return ""; + var t13=t8.concat("//",t7); + if(! caml_call2(symbol$9,t9.length,0))return t13; + var t12=loc.port; + return t13.concat(":",t12)} + return caml_call3(Optdef[7],loc.origin,_gw_,_gv_)} + var _j_=Unsafe[1],t87=_j_.document; + function getElementById(id) + {function _gs_(pnode){return pnode} + function _gt_(param){throw Stdlib[8]} + var t15=caml_jsstring_of_string(id),_gu_=t87.getElementById(t15); + return caml_call3(Opt[7],_gu_,_gt_,_gs_)} + function getElementById_exn(id) + {function _go_(pnode){return pnode} + function _gp_(param) + {var _gr_=caml_call2(Stdlib_Printf[4],_k_,id); + return caml_call1(Stdlib[2],_gr_)} + var t17=caml_jsstring_of_string(id),_gq_=t87.getElementById(t17); + return caml_call3(Opt[7],_gq_,_gp_,_go_)} + function getElementById_opt(id) + {var t19=caml_jsstring_of_string(id),_gn_=t87.getElementById(t19); + return caml_call1(Opt[10],_gn_)} + function getElementById_coerce(id,coerce) + {function _gj_(e) + {var _gm_=caml_call1(coerce,e);return caml_call1(Opt[10],_gm_)} + function _gk_(param){return 0} + var t21=caml_jsstring_of_string(id),_gl_=t87.getElementById(t21); + return caml_call3(Opt[7],_gl_,_gk_,_gj_)} + function opt_iter(x,f){if(! x)return 0;var v=x[1];return caml_call1(f,v)} + function createElement(t24,name) + {var t23=caml_jsstring_of_string(name);return t24.createElement(t23)} + function unsafeCreateElement(doc,name){return createElement(doc,name)} + var createElementSyntax=[0,785140586]; + function unsafeCreateElementEx(type,name,doc,elt) + {for(;;) + {if(0 === type && 0 === name)return createElement(doc,elt); + var _gd_=createElementSyntax[1]; + if(785140586 === _gd_) + {try + {var + el=t87.createElement(''), + _gg_=el.tagName.toLowerCase() === "input"?1:0, + _gh_=_gg_?el.name === "x"?1:0:_gg_, + _ge_=_gh_} + catch(_gi_){var _ge_=0} + var _gf_=_ge_?982028505:-1003883683; + createElementSyntax[1] = _gf_; + continue} + if(982028505 <= _gd_) + {var t40=new array_length(); + t40.push("<",caml_jsstring_of_string(elt)); + opt_iter + (type, + function(t) + {var t34=caml_js_html_escape(t); + t40.push(' type="',t34,'"'); + return 0}); + opt_iter + (name, + function(n) + {var t38=caml_js_html_escape(n); + t40.push(' name="',t38,'"'); + return 0}); + t40.push(">"); + return doc.createElement(t40.join(""))} + var t28=createElement(doc,elt); + opt_iter(type,function(t25){return t28.type = t25}); + opt_iter(name,function(t27){return t28.name = t27}); + return t28}} + function createHtml(doc){return unsafeCreateElement(doc,cst_html)} + function createHead(doc){return unsafeCreateElement(doc,cst_head)} + function createLink(doc){return unsafeCreateElement(doc,cst_link)} + function createTitle(doc){return unsafeCreateElement(doc,cst_title)} + function createMeta(doc){return unsafeCreateElement(doc,cst_meta)} + function createBase(doc){return unsafeCreateElement(doc,cst_base)} + function createStyle(doc){return unsafeCreateElement(doc,cst_style)} + function createBody(doc){return unsafeCreateElement(doc,cst_body)} + function createForm(doc){return unsafeCreateElement(doc,cst_form)} + function createOptgroup(doc){return unsafeCreateElement(doc,cst_optgroup)} + function createOption(doc){return unsafeCreateElement(doc,cst_option)} + function createSelect(type,name,doc) + {return unsafeCreateElementEx(type,name,doc,cst_select$0)} + function createInput(type,name,doc) + {return unsafeCreateElementEx(type,name,doc,cst_input$0)} + function createTextarea(type,name,doc) + {return unsafeCreateElementEx(type,name,doc,cst_textarea)} + function createButton(type,name,doc) + {return unsafeCreateElementEx(type,name,doc,cst_button)} + function createLabel(doc){return unsafeCreateElement(doc,cst_label)} + function createFieldset(doc){return unsafeCreateElement(doc,cst_fieldset)} + function createLegend(doc){return unsafeCreateElement(doc,cst_legend)} + function createUl(doc){return unsafeCreateElement(doc,cst_ul)} + function createOl(doc){return unsafeCreateElement(doc,cst_ol)} + function createDl(doc){return unsafeCreateElement(doc,cst_dl)} + function createLi(doc){return unsafeCreateElement(doc,cst_li)} + function createDiv(doc){return unsafeCreateElement(doc,cst_div)} + function createEmbed(doc){return unsafeCreateElement(doc,cst_embed)} + function createP(doc){return unsafeCreateElement(doc,cst_p)} + function createH1(doc){return unsafeCreateElement(doc,cst_h1)} + function createH2(doc){return unsafeCreateElement(doc,cst_h2)} + function createH3(doc){return unsafeCreateElement(doc,cst_h3)} + function createH4(doc){return unsafeCreateElement(doc,cst_h4)} + function createH5(doc){return unsafeCreateElement(doc,cst_h5)} + function createH6(doc){return unsafeCreateElement(doc,cst_h6)} + function createQ(doc){return unsafeCreateElement(doc,cst_q)} + function createBlockquote(doc) + {return unsafeCreateElement(doc,cst_blockquote)} + function createPre(doc){return unsafeCreateElement(doc,cst_pre)} + function createBr(doc){return unsafeCreateElement(doc,cst_br)} + function createHr(doc){return unsafeCreateElement(doc,cst_hr)} + function createIns(doc){return unsafeCreateElement(doc,cst_ins)} + function createDel(doc){return unsafeCreateElement(doc,cst_del)} + function createA(doc){return unsafeCreateElement(doc,cst_a)} + function createImg(doc){return unsafeCreateElement(doc,cst_img)} + function createObject(doc){return unsafeCreateElement(doc,cst_object)} + function createParam(doc){return unsafeCreateElement(doc,cst_param)} + function createMap(doc){return unsafeCreateElement(doc,cst_map)} + function createArea(doc){return unsafeCreateElement(doc,cst_area)} + function createScript(doc){return unsafeCreateElement(doc,cst_script)} + function createTable(doc){return unsafeCreateElement(doc,cst_table)} + function createCaption(doc){return unsafeCreateElement(doc,cst_caption)} + function createCol(doc){return unsafeCreateElement(doc,cst_col)} + function createColgroup(doc){return unsafeCreateElement(doc,cst_colgroup)} + function createThead(doc){return unsafeCreateElement(doc,cst_thead)} + function createTfoot(doc){return unsafeCreateElement(doc,cst_tfoot)} + function createTbody(doc){return unsafeCreateElement(doc,cst_tbody)} + function createTr(doc){return unsafeCreateElement(doc,cst_tr)} + function createTh(doc){return unsafeCreateElement(doc,cst_th)} + function createTd(doc){return unsafeCreateElement(doc,cst_td)} + function createSub(doc){return createElement(doc,cst_sub)} + function createSup(doc){return createElement(doc,cst_sup)} + function createSpan(doc){return createElement(doc,cst_span)} + function createTt(doc){return createElement(doc,cst_tt)} + function createI(doc){return createElement(doc,cst_i)} + function createB(doc){return createElement(doc,cst_b)} + function createBig(doc){return createElement(doc,cst_big)} + function createSmall(doc){return createElement(doc,cst_small)} + function createEm(doc){return createElement(doc,cst_em)} + function createStrong(doc){return createElement(doc,cst_strong)} + function createCite(doc){return createElement(doc,cst_cite)} + function createDfn(doc){return createElement(doc,cst_dfn)} + function createCode(doc){return createElement(doc,cst_code)} + function createSamp(doc){return createElement(doc,cst_samp)} + function createKbd(doc){return createElement(doc,cst_kbd)} + function createVar(doc){return createElement(doc,cst_var)} + function createAbbr(doc){return createElement(doc,cst_abbr)} + function createDd(doc){return createElement(doc,cst_dd)} + function createDt(doc){return createElement(doc,cst_dt)} + function createNoscript(doc){return createElement(doc,cst_noscript)} + function createAddress(doc){return createElement(doc,cst_address)} + function createFrameset(doc){return unsafeCreateElement(doc,cst_frameset)} + function createFrame(doc){return unsafeCreateElement(doc,cst_frame)} + function createIframe(doc){return unsafeCreateElement(doc,cst_iframe)} + function createAudio(doc){return unsafeCreateElement(doc,cst_audio)} + function createVideo(doc){return unsafeCreateElement(doc,cst_video)} + var + Canvas_not_available= + [248,cst_Js_of_ocaml_Dom_html_Canva,caml_fresh_oo_id(0)]; + function createCanvas(doc) + {var t52=unsafeCreateElement(doc,cst_canvas); + if(1 - caml_call1(Opt[5],t52.getContext))throw Canvas_not_available; + return t52} + var + html_element=Unsafe[1].HTMLElement, + element$0= + html_element === t39 + ?function(e){return e.innerHTML === t39?no_handler:e} + :function(e){return e instanceof html_element?e:no_handler}; + function unsafeCoerce(tag,e) + {var t56=e.tagName,_gc_=caml_jsstring_of_string(tag); + return t56.toLowerCase() === _gc_?e:no_handler} + function a(e){return unsafeCoerce(cst_a$0,e)} + function area(e){return unsafeCoerce(cst_area$0,e)} + function base(e){return unsafeCoerce(cst_base$0,e)} + function blockquote(e){return unsafeCoerce(cst_blockquote$0,e)} + function body(e){return unsafeCoerce(cst_body$0,e)} + function br(e){return unsafeCoerce(cst_br$0,e)} + function button(e){return unsafeCoerce(cst_button$0,e)} + function canvas(e){return unsafeCoerce(cst_canvas$0,e)} + function caption(e){return unsafeCoerce(cst_caption$0,e)} + function col(e){return unsafeCoerce(cst_col$0,e)} + function colgroup(e){return unsafeCoerce(cst_colgroup$0,e)} + function del(e){return unsafeCoerce(cst_del$0,e)} + function div(e){return unsafeCoerce(cst_div$0,e)} + function dl(e){return unsafeCoerce(cst_dl$0,e)} + function fieldset(e){return unsafeCoerce(cst_fieldset$0,e)} + function embed(e){return unsafeCoerce(cst_embed$0,e)} + function form(e){return unsafeCoerce(cst_form$0,e)} + function frameset(e){return unsafeCoerce(cst_frameset$0,e)} + function frame(e){return unsafeCoerce(cst_frame$0,e)} + function h1(e){return unsafeCoerce(cst_h1$0,e)} + function h2(e){return unsafeCoerce(cst_h2$0,e)} + function h3(e){return unsafeCoerce(cst_h3$0,e)} + function h4(e){return unsafeCoerce(cst_h4$0,e)} + function h5(e){return unsafeCoerce(cst_h5$0,e)} + function h6(e){return unsafeCoerce(cst_h6$0,e)} + function head(e){return unsafeCoerce(cst_head$0,e)} + function hr(e){return unsafeCoerce(cst_hr$0,e)} + function html(e){return unsafeCoerce(cst_html$0,e)} + function iframe(e){return unsafeCoerce(cst_iframe$0,e)} + function img(e){return unsafeCoerce(cst_img$0,e)} + function input$0(e){return unsafeCoerce(cst_input$1,e)} + function ins(e){return unsafeCoerce(cst_ins$0,e)} + function label(e){return unsafeCoerce(cst_label$0,e)} + function legend(e){return unsafeCoerce(cst_legend$0,e)} + function li(e){return unsafeCoerce(cst_li$0,e)} + function link(e){return unsafeCoerce(cst_link$0,e)} + function map$2(e){return unsafeCoerce(cst_map$0,e)} + function meta(e){return unsafeCoerce(cst_meta$0,e)} + function object(e){return unsafeCoerce(cst_object$0,e)} + function ol(e){return unsafeCoerce(cst_ol$0,e)} + function optgroup(e){return unsafeCoerce(cst_optgroup$0,e)} + function option$1(e){return unsafeCoerce(cst_option$0,e)} + function p(e){return unsafeCoerce(cst_p$0,e)} + function param(e){return unsafeCoerce(cst_param$0,e)} + function pre(e){return unsafeCoerce(cst_pre$0,e)} + function q(e){return unsafeCoerce(cst_q$0,e)} + function script(e){return unsafeCoerce(cst_script$0,e)} + function select$0(e){return unsafeCoerce(cst_select$1,e)} + function style(e){return unsafeCoerce(cst_style$0,e)} + function table(e){return unsafeCoerce(cst_table$0,e)} + function tbody(e){return unsafeCoerce(cst_tbody$0,e)} + function td(e){return unsafeCoerce(cst_td$0,e)} + function textarea(e){return unsafeCoerce(cst_textarea$0,e)} + function tfoot(e){return unsafeCoerce(cst_tfoot$0,e)} + function th(e){return unsafeCoerce(cst_th$0,e)} + function thead(e){return unsafeCoerce(cst_thead$0,e)} + function title(e){return unsafeCoerce(cst_title$0,e)} + function tr(e){return unsafeCoerce(cst_tr$0,e)} + function ul(e){return unsafeCoerce(cst_ul$0,e)} + function audio(e){return unsafeCoerce(cst_audio$0,e)} + function video(e){return unsafeCoerce(cst_video$0,e)} + function unsafeCoerceEvent(constr,ev) + {if(constr !== t39 && ev instanceof constr)return ev;return no_handler} + function mouseEvent(ev){return unsafeCoerceEvent(Unsafe[1].MouseEvent,ev)} + function keyboardEvent(ev) + {return unsafeCoerceEvent(Unsafe[1].KeyboardEvent,ev)} + function wheelEvent(ev){return unsafeCoerceEvent(Unsafe[1].WheelEvent,ev)} + function mouseScrollEvent(ev) + {return unsafeCoerceEvent(Unsafe[1].MouseScrollEvent,ev)} + function popStateEvent(ev) + {return unsafeCoerceEvent(Unsafe[1].PopStateEvent,ev)} + function messageEvent(ev) + {return unsafeCoerceEvent(Unsafe[1].MessageEvent,ev)} + function eventRelatedTarget(e) + {function _f$_(param) + {var match=caml_string_of_jsstring(e.type); + if(! caml_string_notequal(match,cst_mouseout$0)) + {var _gb_=function(param){throw [0,Assert_failure,_m_]}; + return caml_call2(Optdef[8],e.toElement,_gb_)} + if(caml_string_notequal(match,cst_mouseover$0))return no_handler; + function _ga_(param){throw [0,Assert_failure,_l_]} + return caml_call2(Optdef[8],e.fromElement,_ga_)} + return caml_call2(Optdef[8],e.relatedTarget,_f$_)} + function eventAbsolutePosition(e) + {var t70=t87.body,t71=t87.documentElement; + return [0, + (e.clientX + t70.scrollLeft | 0) + t71.scrollLeft | 0, + (e.clientY + t70.scrollTop | 0) + t71.scrollTop | 0]} + function eventAbsolutePosition$0(e) + {function _f7_(x) + {function _f9_(y){return [0,x,y]} + function _f__(param){return eventAbsolutePosition(e)} + return caml_call3(Optdef[7],e.pageY,_f__,_f9_)} + function _f8_(param){return eventAbsolutePosition(e)} + return caml_call3(Optdef[7],e.pageX,_f8_,_f7_)} + function elementClientPosition(e) + {var t80=e.getBoundingClientRect(),t81=t87.body,t82=t87.documentElement; + return [0, + ((t80.left | 0) - t81.clientLeft | 0) - t82.clientLeft | 0, + ((t80.top | 0) - t81.clientTop | 0) - t82.clientTop | 0]} + function getDocumentScroll(param) + {var t88=t87.body,t89=t87.documentElement; + return [0, + t88.scrollLeft + t89.scrollLeft | 0, + t88.scrollTop + t89.scrollTop | 0]} + function buttonPressed(ev) + {function _f5_(x){return x} + function _f6_(param) + {var match=ev.button,switcher=match - 1 | 0; + if(3 >= switcher >>> 0) + switch(switcher) + {case 0:return 1;case 1:return 3;case 2:break;default:return 2} + return 0} + return caml_call3(Optdef[7],ev.which,_f6_,_f5_)} + function addMousewheelEventListenerWith(e,capture,once,passive,h) + {return addEventListenerWithOptions + (e, + wheel, + capture, + once, + passive, + handler + (function(e) + {function _f3_(param){return 0} + var + dx= + (- caml_call2(Optdef[8],e.wheelDeltaX,_f3_) | 0) / 40 | 0; + function _f4_(param){return e.wheelDelta} + var + dy= + (- caml_call2(Optdef[8],e.wheelDeltaY,_f4_) | 0) / 40 | 0; + return caml_call3(h,e,dx,dy)}))} + function addMousewheelEventListener(e,h,capt) + {return addMousewheelEventListenerWith(e,[0,capt],0,0,h)} + function f(v) + {var + match=caml_string_of_jsstring(v), + switch$0=caml_string_compare(match,cst_KeyH); + if(0 <= switch$0) + {if(0 >= switch$0)return 8; + var switch$1=caml_string_compare(match,cst_Numpad4); + if(0 <= switch$1) + {if(0 >= switch$1)return 72; + var switch$2=caml_string_compare(match,cst_PageUp); + if(0 <= switch$2) + {if(0 >= switch$2)return 98; + var switch$3=caml_string_compare(match,cst_ShiftRight); + if(0 <= switch$3) + {if(0 >= switch$3)return 91; + if(! caml_string_notequal(match,cst_Slash))return 55; + if(! caml_string_notequal(match,cst_Space))return 41; + if(! caml_string_notequal(match,cst_Tab))return 39; + if(! caml_string_notequal(match,cst_VolumeDown))return 103; + if(! caml_string_notequal(match,cst_VolumeMute))return 102; + if(! caml_string_notequal(match,cst_VolumeUp))return 104} + else + {if(! caml_string_notequal(match,cst_Pause))return 123; + if(! caml_string_notequal(match,cst_Period))return 54; + if(! caml_string_notequal(match,cst_PrintScreen))return 120; + if(! caml_string_notequal(match,cst_Quote))return 50; + if(! caml_string_notequal(match,cst_ScrollLock))return 119; + if(! caml_string_notequal(match,cst_Semicolon))return 49; + if(! caml_string_notequal(match,cst_ShiftLeft))return 90}} + else + {var switch$4=caml_string_compare(match,cst_NumpadDivide); + if(0 <= switch$4) + {if(0 >= switch$4)return 84; + if(! caml_string_notequal(match,cst_NumpadEnter))return 83; + if(! caml_string_notequal(match,cst_NumpadEqual))return 82; + if(! caml_string_notequal(match,cst_NumpadMultiply))return 78; + if(! caml_string_notequal(match,cst_NumpadSubtract))return 79; + if(! caml_string_notequal(match,cst_OSLeft))return 117; + if(! caml_string_notequal(match,cst_OSRight))return 118; + if(! caml_string_notequal(match,cst_PageDown))return 99} + else + {if(! caml_string_notequal(match,cst_Numpad5))return 73; + if(! caml_string_notequal(match,cst_Numpad6))return 74; + if(! caml_string_notequal(match,cst_Numpad7))return 75; + if(! caml_string_notequal(match,cst_Numpad8))return 76; + if(! caml_string_notequal(match,cst_Numpad9))return 77; + if(! caml_string_notequal(match,cst_NumpadAdd))return 80; + if(! caml_string_notequal(match,cst_NumpadDecimal))return 81}}} + else + {var switch$5=caml_string_compare(match,cst_KeyX); + if(0 <= switch$5) + {if(0 >= switch$5)return 24; + var switch$6=caml_string_compare(match,cst_MetaRight); + if(0 <= switch$6) + {if(0 >= switch$6)return 89; + if(! caml_string_notequal(match,cst_Minus))return 37; + if(! caml_string_notequal(match,cst_NumLock))return 85; + if(! caml_string_notequal(match,cst_Numpad0))return 68; + if(! caml_string_notequal(match,cst_Numpad1))return 69; + if(! caml_string_notequal(match,cst_Numpad2))return 70; + if(! caml_string_notequal(match,cst_Numpad3))return 71} + else + {if(! caml_string_notequal(match,cst_KeyY))return 25; + if(! caml_string_notequal(match,cst_KeyZ))return 26; + if(! caml_string_notequal(match,cst_MediaPlayPause))return 107; + if(! caml_string_notequal(match,cst_MediaStop))return 108; + if(! caml_string_notequal(match,cst_MediaTrackNext))return 106; + if(! caml_string_notequal(match,cst_MediaTrackPrevious)) + return 105; + if(! caml_string_notequal(match,cst_MetaLeft))return 88}} + else + {var switch$7=caml_string_compare(match,cst_KeyP); + if(0 <= switch$7) + {if(0 >= switch$7)return 16; + if(! caml_string_notequal(match,cst_KeyQ))return 17; + if(! caml_string_notequal(match,cst_KeyR))return 18; + if(! caml_string_notequal(match,cst_KeyS))return 19; + if(! caml_string_notequal(match,cst_KeyT))return 20; + if(! caml_string_notequal(match,cst_KeyU))return 21; + if(! caml_string_notequal(match,cst_KeyV))return 22; + if(! caml_string_notequal(match,cst_KeyW))return 23} + else + {if(! caml_string_notequal(match,cst_KeyI))return 9; + if(! caml_string_notequal(match,cst_KeyJ))return 10; + if(! caml_string_notequal(match,cst_KeyK))return 11; + if(! caml_string_notequal(match,cst_KeyL))return 12; + if(! caml_string_notequal(match,cst_KeyM))return 13; + if(! caml_string_notequal(match,cst_KeyN))return 14; + if(! caml_string_notequal(match,cst_KeyO))return 15}}}} + else + {var switch$8=caml_string_compare(match,cst_Digit6); + if(0 <= switch$8) + {if(0 >= switch$8)return 33; + var switch$9=caml_string_compare(match,cst_F6); + if(0 <= switch$9) + {if(0 >= switch$9)return 61; + var switch$10=caml_string_compare(match,cst_KeyA); + if(0 <= switch$10) + {if(0 >= switch$10)return 1; + if(! caml_string_notequal(match,cst_KeyB))return 2; + if(! caml_string_notequal(match,cst_KeyC))return 3; + if(! caml_string_notequal(match,cst_KeyD))return 4; + if(! caml_string_notequal(match,cst_KeyE))return 5; + if(! caml_string_notequal(match,cst_KeyF))return 6; + if(! caml_string_notequal(match,cst_KeyG))return 7} + else + {if(! caml_string_notequal(match,cst_F7))return 62; + if(! caml_string_notequal(match,cst_F8))return 63; + if(! caml_string_notequal(match,cst_F9))return 64; + if(! caml_string_notequal(match,cst_Home))return 100; + if(! caml_string_notequal(match,cst_Insert))return 44; + if(! caml_string_notequal(match,cst_IntlBackslash))return 121; + if(! caml_string_notequal(match,cst_IntlYen))return 122}} + else + {var switch$11=caml_string_compare(match,cst_F1); + if(0 <= switch$11) + {if(0 >= switch$11)return 56; + if(! caml_string_notequal(match,cst_F10))return 65; + if(! caml_string_notequal(match,cst_F11))return 66; + if(! caml_string_notequal(match,cst_F12))return 67; + if(! caml_string_notequal(match,cst_F2))return 57; + if(! caml_string_notequal(match,cst_F3))return 58; + if(! caml_string_notequal(match,cst_F4))return 59; + if(! caml_string_notequal(match,cst_F5))return 60} + else + {if(! caml_string_notequal(match,cst_Digit7))return 34; + if(! caml_string_notequal(match,cst_Digit8))return 35; + if(! caml_string_notequal(match,cst_Digit9))return 36; + if(! caml_string_notequal(match,cst_End))return 101; + if(! caml_string_notequal(match,cst_Enter))return 40; + if(! caml_string_notequal(match,cst_Equal))return 38; + if(! caml_string_notequal(match,cst_Escape))return 42}}} + else + {var switch$12=caml_string_compare(match,cst_BrowserRefresh); + if(0 <= switch$12) + {if(0 >= switch$12)return 113; + var switch$13=caml_string_compare(match,cst_Delete); + if(0 <= switch$13) + {if(0 >= switch$13)return 45; + if(! caml_string_notequal(match,cst_Digit0))return 27; + if(! caml_string_notequal(match,cst_Digit1))return 28; + if(! caml_string_notequal(match,cst_Digit2))return 29; + if(! caml_string_notequal(match,cst_Digit3))return 30; + if(! caml_string_notequal(match,cst_Digit4))return 31; + if(! caml_string_notequal(match,cst_Digit5))return 32} + else + {if(! caml_string_notequal(match,cst_BrowserSearch))return 110; + if(! caml_string_notequal(match,cst_BrowserStop))return 114; + if(! caml_string_notequal(match,cst_CapsLock))return 46; + if(! caml_string_notequal(match,cst_Comma))return 53; + if(! caml_string_notequal(match,cst_ContextMenu))return 109; + if(! caml_string_notequal(match,cst_ControlLeft))return 86; + if(! caml_string_notequal(match,cst_ControlRight))return 87}} + else + {var switch$14=caml_string_compare(match,cst_Backslash); + if(0 <= switch$14) + {if(0 >= switch$14)return 52; + if(! caml_string_notequal(match,cst_Backspace))return 43; + if(! caml_string_notequal(match,cst_BracketLeft))return 47; + if(! caml_string_notequal(match,cst_BracketRight))return 48; + if(! caml_string_notequal(match,cst_BrowserBack))return 116; + if(! caml_string_notequal(match,cst_BrowserFavorites)) + return 112; + if(! caml_string_notequal(match,cst_BrowserForward))return 115; + if(! caml_string_notequal(match,cst_BrowserHome))return 111} + else + {if(! caml_string_notequal(match,cst_AltLeft))return 92; + if(! caml_string_notequal(match,cst_AltRight))return 93; + if(! caml_string_notequal(match,cst_ArrowDown))return 97; + if(! caml_string_notequal(match,cst_ArrowLeft))return 94; + if(! caml_string_notequal(match,cst_ArrowRight))return 95; + if(! caml_string_notequal(match,cst_ArrowUp))return 96; + if(! caml_string_notequal(match,cst_Backquote))return 51}}}} + return 0} + function try_key_code_left(param) + {if(19 <= param) + {if(91 === param)return 88} + else + if(16 <= param) + switch(param - 16 | 0) + {case 0:return 90;case 1:return 86;default:return 92} + return 0} + function try_key_code_right(param) + {if(19 <= param) + {if(91 === param)return 89} + else + if(16 <= param) + switch(param - 16 | 0) + {case 0:return 91;case 1:return 87;default:return 93} + return 0} + function try_key_code_numpad(param) + {if(47 <= param) + {var switcher=param - 96 | 0; + if(15 >= switcher >>> 0) + switch(switcher) + {case 0:return 68; + case 1:return 69; + case 2:return 70; + case 3:return 71; + case 4:return 72; + case 5:return 73; + case 6:return 74; + case 7:return 75; + case 8:return 76; + case 9:return 77; + case 10:return 78; + case 11:return 80; + case 12:break; + case 13:return 79; + case 14:return 81; + default:return 84}} + else + if(12 <= param) + switch(param - 12 | 0) + {case 0:return 73; + case 1:return 83; + case 21:return 77; + case 22:return 71; + case 23:return 69; + case 24:return 75; + case 25:return 72; + case 26:return 76; + case 27:return 74; + case 28:return 70; + case 33:return 68; + case 34:return 81 + } + return 0} + function try_key_code_normal(param) + {var switcher=param - 8 | 0; + if(214 >= switcher >>> 0) + {var _f2_=switcher; + if(67 <= _f2_) + switch(_f2_) + {case 67:return 11; + case 68:return 12; + case 69:return 13; + case 70:return 14; + case 71:return 15; + case 72:return 16; + case 73:return 17; + case 74:return 18; + case 75:return 19; + case 76:return 20; + case 77:return 21; + case 78:return 22; + case 79:return 23; + case 80:return 24; + case 81:return 25; + case 82:return 26; + case 85:return 109; + case 104:return 56; + case 105:return 57; + case 106:return 58; + case 107:return 59; + case 108:return 60; + case 109:return 61; + case 110:return 62; + case 111:return 63; + case 112:return 64; + case 113:return 65; + case 114:return 66; + case 115:return 67; + case 137:return 119; + case 178:return 49; + case 179:return 38; + case 180:return 53; + case 181:return 37; + case 182:return 54; + case 183:return 55; + case 184:return 51; + case 211:return 47; + case 212:return 52; + case 213:return 48; + case 214:return 50 + } + else + switch(_f2_) + {case 0:return 43; + case 1:return 39; + case 5:return 40; + case 11:return 123; + case 12:return 46; + case 19:return 42; + case 24:return 41; + case 25:return 98; + case 26:return 99; + case 27:return 101; + case 28:return 100; + case 29:return 94; + case 30:return 96; + case 31:return 95; + case 32:return 97; + case 34:return 120; + case 37:return 44; + case 38:return 45; + case 40:return 27; + case 41:return 28; + case 42:return 29; + case 43:return 30; + case 44:return 31; + case 45:return 32; + case 46:return 33; + case 47:return 34; + case 48:return 35; + case 49:return 36; + case 57:return 1; + case 58:return 2; + case 59:return 3; + case 60:return 4; + case 61:return 5; + case 62:return 6; + case 63:return 7; + case 64:return 8; + case 65:return 9; + case 66:return 10 + }} + return 0} + function make_unidentified(param){return 0} + function run_next(value,f,v){return v?v:caml_call1(f,value)} + function symbol$11(x,f){return caml_call1(f,x)} + function of_event(evt) + {var _fV_=evt.keyCode; + function _fW_(_f1_){return run_next(_fV_,try_key_code_normal,_f1_)} + var match=evt.location,switcher=match - 1 | 0; + if(2 < switcher >>> 0) + var _fX_=make_unidentified; + else + switch(switcher) + {case 0: + var + _fS_=evt.keyCode, + _fX_=function(_fZ_){return run_next(_fS_,try_key_code_left,_fZ_)}; + break; + case 1: + var + _fT_=evt.keyCode, + _fX_=function(_fY_){return run_next(_fT_,try_key_code_right,_fY_)}; + break; + default: + var + _fU_=evt.keyCode, + _fX_=function(_f0_){return run_next(_fU_,try_key_code_numpad,_f0_)}} + var value=evt.code; + return symbol$11 + (symbol$11 + (symbol$11 + (0, + function(v) + {return v?v:caml_call3(Optdef[7],value,make_unidentified,f)}), + _fX_), + _fW_)} + function char_of_int(value) + {if(! caml_call2(symbol$5,0,value))return 0; + try + {var _fQ_=[0,caml_call1(Stdlib_Uchar[8],value)];return _fQ_} + catch(_fR_){return 0}} + function empty_string(param){return ""} + function none(param){return 0} + function of_event$0(evt) + {var t104=caml_call2(Optdef[8],evt.key,empty_string),match=t104.length; + return 0 === match + ?caml_call3(Optdef[7],evt.charCode,none,char_of_int) + :1 === match?char_of_int(t104.charCodeAt(0) | 0):0} + function element$1(_fP_){return _fP_} + function tagged(e) + {var t106=e.tagName,tag=caml_string_of_jsbytes(t106.toLowerCase()); + if(caml_call2(symbol$8,caml_ml_string_length(tag),0))return [61,e]; + var match=runtime.caml_string_unsafe_get(tag,0),switcher=match - 97 | 0; + if(21 >= switcher >>> 0) + switch(switcher) + {case 0: + return caml_string_notequal(tag,cst_a$1) + ?caml_string_notequal(tag,cst_area$1) + ?caml_string_notequal(tag,cst_audio$1)?[61,e]:[2,e] + :[1,e] + :[0,e]; + case 1: + return caml_string_notequal(tag,cst_base$1) + ?caml_string_notequal(tag,cst_blockquote$1) + ?caml_string_notequal(tag,cst_body$1) + ?caml_string_notequal(tag,cst_br$1) + ?caml_string_notequal(tag,cst_button$1)?[61,e]:[7,e] + :[6,e] + :[5,e] + :[4,e] + :[3,e]; + case 2: + return caml_string_notequal(tag,cst_canvas$1) + ?caml_string_notequal(tag,cst_caption$1) + ?caml_string_notequal(tag,cst_col$1) + ?caml_string_notequal(tag,cst_colgroup$1)?[61,e]:[11,e] + :[10,e] + :[9,e] + :[8,e]; + case 3: + return caml_string_notequal(tag,cst_del$1) + ?caml_string_notequal(tag,cst_div$1) + ?caml_string_notequal(tag,cst_dl$1)?[61,e]:[14,e] + :[13,e] + :[12,e]; + case 4:return caml_string_notequal(tag,cst_embed$1)?[61,e]:[15,e]; + case 5: + return caml_string_notequal(tag,cst_fieldset$1) + ?caml_string_notequal(tag,cst_form$1) + ?caml_string_notequal(tag,cst_frame$1) + ?caml_string_notequal(tag,cst_frameset$1)?[61,e]:[18,e] + :[19,e] + :[17,e] + :[16,e]; + case 7: + return caml_string_notequal(tag,cst_h1$1) + ?caml_string_notequal(tag,cst_h2$1) + ?caml_string_notequal(tag,cst_h3$1) + ?caml_string_notequal(tag,cst_h4$1) + ?caml_string_notequal(tag,cst_h5$1) + ?caml_string_notequal(tag,cst_h6$1) + ?caml_string_notequal(tag,cst_head$1) + ?caml_string_notequal(tag,cst_hr$1) + ?caml_string_notequal(tag,cst_html$1)?[61,e]:[28,e] + :[27,e] + :[26,e] + :[25,e] + :[24,e] + :[23,e] + :[22,e] + :[21,e] + :[20,e]; + case 8: + return caml_string_notequal(tag,cst_iframe$1) + ?caml_string_notequal(tag,cst_img$1) + ?caml_string_notequal(tag,cst_input$2) + ?caml_string_notequal(tag,cst_ins$1)?[61,e]:[32,e] + :[31,e] + :[30,e] + :[29,e]; + case 11: + return caml_string_notequal(tag,cst_label$1) + ?caml_string_notequal(tag,cst_legend$1) + ?caml_string_notequal(tag,cst_li$1) + ?caml_string_notequal(tag,cst_link$1)?[61,e]:[36,e] + :[35,e] + :[34,e] + :[33,e]; + case 12: + return caml_string_notequal(tag,cst_map$1) + ?caml_string_notequal(tag,cst_meta$1)?[61,e]:[38,e] + :[37,e]; + case 14: + return caml_string_notequal(tag,cst_object$1) + ?caml_string_notequal(tag,cst_ol$1) + ?caml_string_notequal(tag,cst_optgroup$1) + ?caml_string_notequal(tag,cst_option$1)?[61,e]:[42,e] + :[41,e] + :[40,e] + :[39,e]; + case 15: + return caml_string_notequal(tag,cst_p$1) + ?caml_string_notequal(tag,cst_param$1) + ?caml_string_notequal(tag,cst_pre$1)?[61,e]:[45,e] + :[44,e] + :[43,e]; + case 16:return caml_string_notequal(tag,cst_q$1)?[61,e]:[46,e]; + case 18: + return caml_string_notequal(tag,cst_script$1) + ?caml_string_notequal(tag,cst_select$2) + ?caml_string_notequal(tag,cst_style$1)?[61,e]:[49,e] + :[48,e] + :[47,e]; + case 19: + return caml_string_notequal(tag,cst_table$1) + ?caml_string_notequal(tag,cst_tbody$1) + ?caml_string_notequal(tag,cst_td$1) + ?caml_string_notequal(tag,cst_textarea$1) + ?caml_string_notequal(tag,cst_tfoot$1) + ?caml_string_notequal(tag,cst_th$1) + ?caml_string_notequal(tag,cst_thead$1) + ?caml_string_notequal(tag,cst_title$1) + ?caml_string_notequal(tag,cst_tr$1)?[61,e]:[58,e] + :[57,e] + :[56,e] + :[55,e] + :[54,e] + :[53,e] + :[52,e] + :[51,e] + :[50,e]; + case 20:return caml_string_notequal(tag,cst_ul$1)?[61,e]:[59,e]; + case 21:return caml_string_notequal(tag,cst_video$1)?[61,e]:[60,e] + } + return [61,e]} + function opt_tagged(e) + {function _fN_(e){return [0,tagged(e)]} + function _fO_(param){return 0} + return caml_call3(Opt[7],e,_fO_,_fN_)} + function taggedEvent(ev) + {function _fv_(ev){return [0,ev]} + function _fw_(param) + {function _fy_(ev){return [1,ev]} + function _fz_(param) + {function _fB_(ev){return [3,ev]} + function _fC_(param) + {function _fE_(ev){return [4,ev]} + function _fF_(param) + {function _fH_(ev){return [5,ev]} + function _fI_(param) + {function _fK_(ev){return [2,ev]} + function _fL_(param){return [6,ev]} + var _fM_=messageEvent(ev); + return caml_call3(Opt[7],_fM_,_fL_,_fK_)} + var _fJ_=popStateEvent(ev); + return caml_call3(Opt[7],_fJ_,_fI_,_fH_)} + var _fG_=mouseScrollEvent(ev); + return caml_call3(Opt[7],_fG_,_fF_,_fE_)} + var _fD_=wheelEvent(ev); + return caml_call3(Opt[7],_fD_,_fC_,_fB_)} + var _fA_=keyboardEvent(ev); + return caml_call3(Opt[7],_fA_,_fz_,_fy_)} + var _fx_=mouseEvent(ev); + return caml_call3(Opt[7],_fx_,_fw_,_fv_)} + function opt_taggedEvent(ev) + {function _ft_(ev){return [0,taggedEvent(ev)]} + function _fu_(param){return 0} + return caml_call3(Opt[7],ev,_fu_,_ft_)} + function stopPropagation(ev) + {function _fr_(param){return ev.stopPropagation()} + function _fs_(param){return ev.cancelBubble = t38} + return caml_call3(Optdef[7],ev.stopPropagation,_fs_,_fr_)} + var + requestAnimationFrame= + runtime.caml_js_pure_expr + (function(param) + {var + l= + [0, + _j_.requestAnimationFrame, + [0, + _j_.mozRequestAnimationFrame, + [0, + _j_.webkitRequestAnimationFrame, + [0, + _j_.oRequestAnimationFrame, + [0,_j_.msRequestAnimationFrame,0]]]]]; + try + {var + _fo_=function(c){return caml_call1(Optdef[5],c)}, + req=caml_call2(Stdlib_List[38],_fo_,l), + _fp_=function(callback){return req(callback)}; + return _fp_} + catch(_fq_) + {_fq_ = caml_wrap_exception(_fq_); + if(_fq_ !== Stdlib[8])throw _fq_; + var + now=function(param){var t117=new t116();return t117.getTime()}, + last=[0,now(0)]; + return function(callback) + {var + t=now(0), + dt=last[1] + 16.6666666666666679 - t, + dt$0=dt < 0.?0.:dt; + last[1] = t; + _j_.setTimeout(callback,dt$0); + return 0}}}); + function hasPushState(param) + {var t122=_j_.history;return caml_call1(Optdef[5],t122.pushState)} + function hasPlaceholder(param) + {var t123=createInput(0,0,t87); + return caml_call1(Optdef[5],t123.placeholder)} + function hasRequired(param) + {var t124=createInput(0,0,t87); + return caml_call1(Optdef[5],t124.required)} + var overflow_limit=2147483000.; + function setTimeout(callback,d) + {var id=[0,0]; + function loop(d,param) + {if(2147483000. < d) + var remain=d - 2147483000.,step=overflow_limit; + else + var remain=0.,step=d; + var + cb=remain == 0.?callback:function(_fn_){return loop(remain,_fn_)}, + t125=caml_js_wrap_callback(cb); + id[1] = [0,_j_.setTimeout(t125,step)]; + return 0} + loop(d,0); + return id} + function clearTimeout(id) + {var _fm_=id[1]; + if(! _fm_)return 0; + var x=_fm_[1]; + id[1] = 0; + return _j_.clearTimeout(x)} + function js_array_of_collection(c){return [].slice.call(c)} + var + _n_= + [0, + click, + copy$0, + cut, + paste, + dblclick, + mousedown, + mouseup, + mouseover, + mousemove, + mouseout, + keypress, + keydown, + keyup, + mousewheel, + DOMMouseScroll, + wheel, + touchstart, + touchmove, + touchend, + touchcancel, + dragstart, + dragend, + dragenter, + dragover, + dragleave, + drag, + drop, + hashchange, + change, + input, + timeupdate, + submit, + scroll, + focus, + blur, + load$0, + unload, + beforeunload, + resize, + orientationchange, + popstate, + error$0, + abort$0, + select, + online, + offline, + checking, + noupdate, + downloading, + progress$0, + updateready, + cached, + obsolete, + domContentLoaded, + animationstart, + animationend, + animationiteration, + animationcancel, + transitionrun, + transitionstart, + transitionend, + transitioncancel, + canplay, + canplaythrough, + durationchange, + emptied, + ended, + gotpointercapture, + loadeddata, + loadedmetadata, + loadstart$0, + lostpointercapture, + message$0, + pause, + play, + playing, + pointerenter, + pointercancel, + pointerdown, + pointerleave, + pointermove, + pointerout, + pointerover, + pointerup, + ratechange, + seeked, + seeking, + stalled, + suspend, + volumechange, + waiting, + make$1], + Js_of_ocaml_Dom_html= + [0, + d, + t87, + getElementById_opt, + getElementById_exn, + getElementById_coerce, + getElementById, + location_origin, + _j_, + no_handler, + handler, + full_handler, + invoke_handler, + eventTarget, + eventRelatedTarget, + _n_, + addEventListenerWithOptions, + addEventListener, + removeEventListener, + addMousewheelEventListenerWith, + addMousewheelEventListener, + createCustomEvent, + buttonPressed, + eventAbsolutePosition$0, + elementClientPosition, + getDocumentScroll, + [0,of_event,try_key_code_normal], + [0,of_event$0], + createHtml, + createHead, + createLink, + createTitle, + createMeta, + createBase, + createStyle, + createBody, + createForm, + createOptgroup, + createOption, + createSelect, + createInput, + createTextarea, + createButton, + createLabel, + createFieldset, + createLegend, + createUl, + createOl, + createDl, + createLi, + createDiv, + createEmbed, + createP, + createH1, + createH2, + createH3, + createH4, + createH5, + createH6, + createQ, + createBlockquote, + createPre, + createBr, + createHr, + createIns, + createDel, + createA, + createImg, + createObject, + createParam, + createMap, + createArea, + createScript, + createTable, + createCaption, + createCol, + createColgroup, + createThead, + createTfoot, + createTbody, + createTr, + createTh, + createTd, + createSub, + createSup, + createSpan, + createTt, + createI, + createB, + createBig, + createSmall, + createEm, + createStrong, + createCite, + createDfn, + createCode, + createSamp, + createKbd, + createVar, + createAbbr, + createDd, + createDt, + createNoscript, + createAddress, + createFrameset, + createFrame, + createIframe, + createAudio, + createVideo, + Canvas_not_available, + createCanvas, + element$1, + tagged, + opt_tagged, + taggedEvent, + opt_taggedEvent, + stopPropagation, + [0, + element$0, + a, + area, + audio, + base, + blockquote, + body, + br, + button, + canvas, + caption, + col, + colgroup, + del, + div, + embed, + dl, + fieldset, + form, + frameset, + frame, + h1, + h2, + h3, + h4, + h5, + h6, + head, + hr, + html, + iframe, + img, + input$0, + ins, + label, + legend, + li, + link, + map$2, + meta, + object, + ol, + optgroup, + option$1, + p, + param, + pre, + q, + script, + select$0, + style, + table, + tbody, + td, + textarea, + tfoot, + th, + thead, + title, + tr, + ul, + video, + mouseEvent, + keyboardEvent, + wheelEvent, + mouseScrollEvent, + popStateEvent, + messageEvent], + setTimeout, + clearTimeout, + js_array_of_collection, + requestAnimationFrame, + runtime.caml_js_html_entities, + onIE, + hasPushState, + hasPlaceholder, + hasRequired]; + caml_register_global(1669,Js_of_ocaml_Dom_html,"Js_of_ocaml__Dom_html"); + var formData=Unsafe[1].FormData,formData_form=Unsafe[1].FormData; + function filter_map$0(f,param) + {var param$0=param; + for(;;) + {if(! param$0)return 0; + var q=param$0[2],v=param$0[1],match=caml_call1(f,v); + if(match){var v$0=match[1];return [0,v$0,filter_map$0(f,q)]} + var param$0=q}} + function have_content(elt) + {var + t3=elt.name, + _fk_=caml_call2(symbol$9,t3.length,0), + _fl_=_fk_?1 - (elt.disabled | 0):_fk_; + return _fl_} + function form_elements(get,form) + {var t34=form.elements,i$2=t34.length - 1 | 0,acc=0,i=i$2; + for(;;) + {if(caml_call2(symbol$5,i,0)) + {var + _fb_= + function(v$2) + {var match$3=tagged(v$2); + switch(match$3[0]) + {case 31: + var v=match$3[1]; + if(get)var sth=get[1],get$0=sth;else var get$0=0; + if(! have_content(v))return 0; + var + name$1=caml_string_of_jsstring(v.name), + value=v.value, + t20=v.type, + match=caml_string_of_jsbytes(t20.toLowerCase()); + if(caml_string_notequal(match,cst_checkbox)) + {if(! caml_string_notequal(match,cst_file)) + {if(get$0)return [0,[0,name$1,[0,-976970511,value]],0]; + var match$0=caml_call1(Optdef[10],v.files); + if(! match$0)return 0; + var list=match$0[1]; + if(caml_call2(symbol$8,list.length,0)) + return [0,[0,name$1,[0,-976970511,""]],0]; + var match$1=caml_call1(Optdef[10],v.multiple); + if(match$1 && match$1[1]) + {var + _ff_=function(t28){return list.item(t28)}, + _fg_=caml_call2(Stdlib_Array[2],list.length,_ff_), + _fh_=caml_call1(Stdlib_Array[11],_fg_); + return filter_map$0 + (function(f) + {var match=caml_call1(Opt[10],f); + if(! match)return 0; + var file=match[1]; + return [0,[0,name$1,[0,781515420,file]]]}, + _fh_)} + var _fi_=list.item(0),match$2=caml_call1(Opt[10],_fi_); + if(! match$2)return 0; + var file=match$2[1]; + return [0,[0,name$1,[0,781515420,file]],0]} + var switch$0=0; + if(caml_string_notequal(match,cst_password)) + {if(caml_string_notequal(match,cst_radio)) + {var switch$1=0; + if + (caml_string_notequal(match,cst_reset) + && + caml_string_notequal(match,cst_submit$0)) + {if(caml_string_notequal(match,cst_text)) + return [0,[0,name$1,[0,-976970511,value]],0]; + switch$0 = 1; + switch$1 = 1} + if(! switch$1)return 0}} + else + switch$0 = 1; + if(switch$0)return [0,[0,name$1,[0,-976970511,value]],0]} + return v.checked | 0?[0,[0,name$1,[0,-976970511,value]],0]:0; + case 48: + var v$0=match$3[1]; + if(! have_content(v$0))return 0; + var name$0=caml_string_of_jsstring(v$0.name); + if(! (v$0.multiple | 0)) + return [0,[0,name$0,[0,-976970511,v$0.value]],0]; + var + _fd_= + function(i) + {var t13=v$0.options,_fj_=t13.item(i); + return caml_call1(Opt[10],_fj_)}, + t10=v$0.options, + options=caml_call2(Stdlib_Array[2],t10.length,_fd_), + _fe_=caml_call1(Stdlib_Array[11],options); + return filter_map$0 + (function(param) + {if(! param)return 0; + var e=param[1]; + return e.selected | 0 + ?[0,[0,name$0,[0,-976970511,e.value]]] + :0}, + _fe_); + case 53: + var v$1=match$3[1]; + if(! have_content(v$1))return 0; + var name=caml_string_of_jsstring(v$1.name); + return [0,[0,name,[0,-976970511,v$1.value]],0]; + default:return 0}}, + _fc_=caml_call2(Stdlib_List[19],_fb_,acc); + return caml_call1(Stdlib_List[14],_fc_)} + var t32=form.elements,_fa_=t32.item(i),match=caml_call1(Opt[10],_fa_); + if(match) + {var x=match[1],i$0=i - 1 | 0,acc$0=[0,x,acc],acc=acc$0,i=i$0; + continue} + var i$1=i - i | 0,i=i$1}} + function append(form_contents,form_elt) + {if(891486873 <= form_contents[1]) + {var list=form_contents[2];list[1] = [0,form_elt,list[1]];return 0} + var f=form_contents[2],_e__=form_elt[2],_e$_=form_elt[1]; + if(781515420 <= _e__[1]) + {var file=_e__[2],t38=caml_jsstring_of_string(_e$_); + return f.append(t38,file)} + var s=_e__[2],t35=caml_jsstring_of_string(_e$_); + return f.append(t35,s)} + function empty_form_contents(param) + {var match=caml_call1(Optdef[10],formData); + if(! match)return [0,891486873,[0,0]]; + var constr=match[1]; + return [0,808620462,new constr()]} + function post_form_contents(form) + {var contents=empty_form_contents(0),_e7_=form_elements(0,form); + function _e8_(_e9_){return append(contents,_e9_)} + caml_call2(Stdlib_List[17],_e8_,_e7_); + return contents} + function get_form_contents(form) + {var _e4_=form_elements(_o_,form); + function _e5_(param) + {var _e6_=param[2]; + if(typeof _e6_ !== "number" && -976970511 === _e6_[1]) + {var s=_e6_[2],name=param[1]; + return [0,name,caml_string_of_jsstring(s)]} + throw [0,Assert_failure,_p_]} + return caml_call2(Stdlib_List[19],_e5_,_e4_)} + var + Js_of_ocaml_Form= + [0, + formData, + formData_form, + append, + post_form_contents, + get_form_contents, + empty_form_contents, + form_elements]; + caml_register_global(1670,Js_of_ocaml_Form,"Js_of_ocaml__Form"); + var + readystatechange=caml_call1(Event[1],cst_readystatechange), + loadstart$1=caml_call1(Event[1],cst_loadstart$1), + progress$1=caml_call1(Event[1],cst_progress$1), + abort$1=caml_call1(Event[1],cst_abort$1), + error$1=caml_call1(Event[1],cst_error$1), + load$1=caml_call1(Event[1],cst_load$1), + timeout=caml_call1(Event[1],cst_timeout), + loadend$0=caml_call1(Event[1],cst_loadend$0), + Event$0= + [0, + readystatechange, + loadstart$1, + progress$1, + abort$1, + error$1, + load$1, + timeout, + loadend$0], + Js_of_ocaml_XmlHttpRequest=[0,runtime.caml_xmlhttprequest_create,Event$0]; + caml_register_global + (1671,Js_of_ocaml_XmlHttpRequest,"Js_of_ocaml__XmlHttpRequest"); + var t2=Unsafe[1].Worker; + function create(script) + {var t1=caml_jsstring_of_string(script);return new t2(t1)} + function import_scripts(scripts) + {if(Unsafe[1].importScripts === t39) + caml_call1(Stdlib[1],cst_Worker_import_scripts_is_u); + var _e1_=caml_call1(Stdlib_Array[12],scripts); + function _e2_(s){return caml_jsstring_of_string(s)} + var _e3_=caml_call2(Stdlib_Array[15],_e2_,_e1_); + return runtime.caml_js_fun_call(Unsafe[1].importScripts,_e3_)} + function set_onmessage(handler) + {if(Unsafe[1].onmessage === t39) + caml_call1(Stdlib[1],cst_Worker_onmessage_is_undefi); + function js_handler(ev){return caml_call1(handler,ev.data)} + var t7=caml_js_wrap_callback(js_handler); + return Unsafe[1].onmessage = t7} + function post_message(t10) + {if(Unsafe[1].postMessage === t39) + caml_call1(Stdlib[1],cst_Worker_onmessage_is_undefi$0); + return Unsafe[1].postMessage(t10)} + var + Js_of_ocaml_Worker= + [0,create,import_scripts,set_onmessage,post_message]; + caml_register_global(1672,Js_of_ocaml_Worker,"Js_of_ocaml__Worker"); + var webSocket=Unsafe[1].WebSocket; + function is_supported(param){return caml_call1(Optdef[5],webSocket)} + var Js_of_ocaml_WebSockets=[0,webSocket,webSocket,webSocket,is_supported]; + caml_register_global + (1673,Js_of_ocaml_WebSockets,"Js_of_ocaml__WebSockets"); + var + defaultContextAttributes= + {"alpha":t38, + "depth":t38, + "stencil":t4, + "antialias":t38, + "premultipliedAlpha":t4, + "preserveDrawingBuffer":t4, + "preferLowPowerToHighPerformance":t4, + "failIfMajorPerformanceCaveat":t4}, + webglcontextlost=caml_call1(_n_[92],cst_webglcontextlost), + webglcontextrestored=caml_call1(_n_[92],cst_webglcontextrestored), + webglcontextcreationerror= + caml_call1(_n_[92],cst_webglcontextcreationerror), + Event$1= + [0,webglcontextlost,webglcontextrestored,webglcontextcreationerror]; + function getContext(t3) + {var ctx=t3.getContext("webgl"); + return caml_call1(Opt[5],ctx)?ctx:t3.getContext("experimental-webgl")} + function getContextWithAttributes(t9,t8) + {var ctx=t9.getContext("webgl",t8); + return caml_call1(Opt[5],ctx)?ctx:t9.getContext("experimental-webgl",t8)} + var + Js_of_ocaml_WebGL= + [0,defaultContextAttributes,Event$1,getContext,getContextWithAttributes]; + caml_register_global(1674,Js_of_ocaml_WebGL,"Js_of_ocaml__WebGL"); + function regexp(s) + {var t0=caml_jsbytes_of_string(s);return new t11(t0,"g")} + function regexp_case_fold(s) + {var t3=caml_jsbytes_of_string(s);return new t11(t3,"gi")} + function regexp_with_flag(s,f) + {var + t7=caml_jsstring_of_string(caml_call2(Stdlib[28],cst_g,f)), + t6=caml_jsbytes_of_string(s); + return new t11(t6,t7)} + function blunt_str_array_get(a,i) + {function _eZ_(param){throw [0,Assert_failure,_q_]} + var _e0_=a[i]; + return caml_string_of_jsbytes(caml_call2(Optdef[8],_e0_,_eZ_))} + function string_match(r,s,i) + {r.lastIndex = i; + var + t11=caml_jsbytes_of_string(s), + _eX_=r.exec(t11), + _eY_=caml_call2(Opt[3],_eX_,match_result); + return caml_call1(Opt[10],_eY_)} + function search_forward(r,s,i) + {r.lastIndex = i; + var t15=caml_jsbytes_of_string(s); + function _eU_(t17){return [0,t17.index,t17]} + var _eV_=r.exec(t15),_eW_=caml_call2(Opt[3],_eV_,_eU_); + return caml_call1(Opt[10],_eW_)} + function matched_string(r){return blunt_str_array_get(r,0)} + function matched_group(r,i) + {var _eS_=r[i],_eT_=caml_call2(Optdef[3],_eS_,caml_string_of_jsbytes); + return caml_call1(Optdef[10],_eT_)} + var t21=new t11("[$]","g"); + function quote_repl(s) + {var t23=caml_jsbytes_of_string(s);return t23.replace(t21,"$$$$")} + function global_replace(r,s,s_by) + {r.lastIndex = 0; + var t27=quote_repl(s_by),t28=caml_jsbytes_of_string(s); + return caml_string_of_jsbytes(t28.replace(r,t27))} + function replace_first(r,s,s_by) + {var + match=r.ignoreCase | 0, + match$0=r.multiline | 0, + flags=match?match$0?"mi":"i":match$0?"m":"", + t32=r.source, + t35=new t11(t32,flags), + t36=quote_repl(s_by), + t37=caml_jsbytes_of_string(s); + return caml_string_of_jsbytes(t37.replace(t35,t36))} + function list_of_js_array(a) + {var idx$1=a.length - 1 | 0,accu=0,idx=idx$1; + for(;;) + {if(caml_call2(symbol$5,idx,0))return accu; + var + idx$0=idx - 1 | 0, + accu$0=[0,blunt_str_array_get(a,idx),accu], + accu=accu$0, + idx=idx$0}} + function split(r,s) + {r.lastIndex = 0; + var t42=caml_jsbytes_of_string(s); + return list_of_js_array(t42.split(r))} + function bounded_split(r,s,i) + {r.lastIndex = 0; + var t47=caml_jsbytes_of_string(s); + return list_of_js_array(t47.split(r,i))} + var t48=regexp(cst); + function quote(s) + {var t50=caml_jsbytes_of_string(s); + return caml_string_of_jsbytes(t50.replace(t48,"\\$&"))} + function regexp_string(s){return regexp(quote(s))} + function regexp_string_case_fold(s){return regexp_case_fold(quote(s))} + var + Js_of_ocaml_Regexp= + [0, + regexp, + regexp_case_fold, + regexp_with_flag, + quote, + regexp_string, + regexp_string_case_fold, + string_match, + search_forward, + search_forward, + matched_string, + matched_group, + global_replace, + replace_first, + split, + bounded_split]; + caml_register_global(1675,Js_of_ocaml_Regexp,"Js_of_ocaml__Regexp"); + var Local_exn=[248,cst_Js_of_ocaml_Url_Local_exn,caml_fresh_oo_id(0)]; + function interrupt(param){throw Local_exn} + var plus_re=regexp_string(cst$0),t14=new t11("\\+","g"); + function urldecode_js_string_string(s) + {t14.lastIndex = 0; + return caml_string_of_jsbytes(unescape(s.replace(t14," ")))} + function urldecode(s) + {return caml_string_of_jsbytes + (unescape + (caml_jsbytes_of_string(global_replace(plus_re,s,cst$1))))} + function urlencode(opt,s) + {if(opt)var sth=opt[1],with_plus=sth;else var with_plus=1; + if(! with_plus) + return caml_string_of_jsbytes(escape(caml_jsbytes_of_string(s))); + var s$0=caml_string_of_jsbytes(escape(caml_jsbytes_of_string(s))); + return global_replace(plus_re,s$0,cst_2B)} + var + Not_an_http_protocol= + [248,cst_Js_of_ocaml_Url_Not_an_htt,caml_fresh_oo_id(0)], + default_http_port=80, + default_https_port=443; + function path_of_path_string(s) + {var l=caml_ml_string_length(s); + function aux(i) + {try + {var _eQ_=caml_call3(String[30],s,i,47),j=_eQ_} + catch(_eR_) + {_eR_ = caml_wrap_exception(_eR_); + if(_eR_ !== Stdlib[8])throw _eR_; + var j=l} + var word=caml_call3(String[14],s,i,j - i | 0); + return caml_call2(symbol$10,j,l)?[0,word,0]:[0,word,aux(j + 1 | 0)]} + var a=aux(0); + if(a && ! caml_string_notequal(a[1],cst$2)) + {var _eP_=a[2]; + if(! _eP_)return 0; + if(! caml_string_notequal(_eP_[1],cst$3) && ! _eP_[2])return _r_} + return a} + function encode_arguments(l) + {function _eK_(param) + {var + v=param[2], + n=param[1], + _eM_=urlencode(0,v), + _eN_=caml_call2(Stdlib[28],cst$4,_eM_), + _eO_=urlencode(0,n); + return caml_call2(Stdlib[28],_eO_,_eN_)} + var _eL_=caml_call2(Stdlib_List[19],_eK_,l); + return caml_call2(String[6],cst$5,_eL_)} + function decode_arguments_js_string(s) + {var + t0=caml_jsstring_of_string(caml_call2(String[1],1,38)), + t18=s.split(t0), + len=t18.length; + function aux(acc,idx) + {var idx$0=idx; + for(;;) + {if(caml_call2(symbol$5,idx$0,0))return acc; + try + {var + _eB_=idx$0 - 1 | 0, + _eC_= + function(s) + {function _eI_(param) + {var + y=param[2], + x=param[1], + _eJ_=urldecode_js_string_string(y); + return [0,urldecode_js_string_string(x),_eJ_]} + var + t2=caml_jsstring_of_string(caml_call2(String[1],1,61)), + t5=s.indexOf(t2); + if(caml_call2(symbol$5,t5,0)) + var _eH_=t39; + else + var + t7=t5 + 1 | 0, + _eG_=s.slice(t7), + _eH_=[0,s.slice(0,t5),_eG_]; + return caml_call3(Optdef[7],_eH_,interrupt,_eI_)}, + _eD_=t18[idx$0], + _eE_=aux([0,caml_call3(Optdef[7],_eD_,interrupt,_eC_),acc],_eB_); + return _eE_} + catch(_eF_) + {_eF_ = caml_wrap_exception(_eF_); + if(_eF_ !== Local_exn)throw _eF_; + var idx$1=idx$0 - 1 | 0,idx$0=idx$1; + continue}}} + return aux(0,len - 1 | 0)} + function decode_arguments(s) + {return decode_arguments_js_string(caml_jsbytes_of_string(s))} + var + t19=caml_jsbytes_of_string(cst_Hh_Tt_Tt_Pp_Ss_0_9a_zA_Z_0), + t24=new t11(t19), + t21$0=caml_jsbytes_of_string(cst_Ff_Ii_Ll_Ee), + t26=new t11(t21$0); + function url_of_js_string(s) + {function _d$_(res) + {var + _em_=res[1], + prot_string=caml_call2(Optdef[8],_em_,interrupt), + match=caml_string_of_jsbytes(prot_string.toLowerCase()); + if + (caml_string_notequal(match,cst_file$0) + && + caml_string_notequal(match,cst_file$1)) + {var switch$0=0; + if + (caml_string_notequal(match,cst_http) + && + caml_string_notequal(match,cst_http$0)) + {var switch$1=0; + if + (caml_string_notequal(match,cst_https) + && + caml_string_notequal(match,cst_https$0)) + switch$1 = 1; + if(! switch$1){var ssl=1;switch$0 = 2}} + else + switch$0 = 1; + var switch$2=0; + switch(switch$0) + {case 1:var ssl=0;switch$2 = 1;break; + case 0:break; + default:switch$2 = 1} + if(switch$2) + {var + _en_=function(param){return caml_jsbytes_of_string(cst$7)}, + _eo_=res[6], + path_str= + urldecode_js_string_string(caml_call2(Optdef[8],_eo_,_en_)), + _ep_=function(param){return caml_jsbytes_of_string(cst$8)}, + _eq_=res[10], + _er_=urldecode_js_string_string(caml_call2(Optdef[8],_eq_,_ep_)), + _es_=function(param){return caml_jsbytes_of_string(cst$9)}, + _et_=res[8], + _eu_=decode_arguments_js_string(caml_call2(Optdef[8],_et_,_es_)), + _ev_=path_of_path_string(path_str), + _ew_=function(param){return caml_jsbytes_of_string(cst$10)}, + _ex_=res[4], + s=caml_string_of_jsbytes(caml_call2(Optdef[8],_ex_,_ew_)), + _ey_= + caml_string_notequal(s,cst$6)?caml_int_of_string(s):ssl?443:80, + _ez_=res[2], + url= + [0, + urldecode_js_string_string + (caml_call2(Optdef[8],_ez_,interrupt)), + _ey_, + _ev_, + path_str, + _eu_, + _er_], + _eA_=ssl?[1,url]:[0,url]; + return [0,_eA_]}} + throw Not_an_http_protocol} + function _ea_(param) + {function _ec_(res) + {var + _ef_=res[2], + path_str= + urldecode_js_string_string(caml_call2(Optdef[8],_ef_,interrupt)); + function _eg_(param){return caml_jsbytes_of_string(cst$11)} + var + _eh_=res[6], + _ei_=caml_string_of_jsbytes(caml_call2(Optdef[8],_eh_,_eg_)); + function _ej_(param){return caml_jsbytes_of_string(cst$12)} + var + _ek_=res[4], + _el_=decode_arguments_js_string(caml_call2(Optdef[8],_ek_,_ej_)); + return [0,[2,[0,path_of_path_string(path_str),path_str,_el_,_ei_]]]} + function _ed_(param){return 0} + var _ee_=t26.exec(s); + return caml_call3(Opt[7],_ee_,_ed_,_ec_)} + var _eb_=t24.exec(s); + return caml_call3(Opt[7],_eb_,_ea_,_d$_)} + function url_of_string(s) + {return url_of_js_string(caml_jsbytes_of_string(s))} + function string_of_url(param) + {switch(param[0]) + {case 0: + var + match=param[1], + frag=match[6], + args=match[5], + path=match[3], + port=match[2], + host=match[1]; + if(caml_string_notequal(frag,cst$13)) + var _dy_=urlencode(0,frag),_dz_=caml_call2(Stdlib[28],cst$14,_dy_); + else + var _dz_=cst$21; + if(args) + var + _dA_=encode_arguments(args), + _dB_=caml_call2(Stdlib[28],cst$15,_dA_); + else + var _dB_=cst$20; + var + _dC_=caml_call2(Stdlib[28],_dB_,_dz_), + _dD_=function(x){return urlencode(0,x)}, + _dE_=caml_call2(Stdlib_List[19],_dD_,path), + _dF_=caml_call2(String[6],cst$16,_dE_), + _dG_=caml_call2(Stdlib[28],_dF_,_dC_), + _dH_=caml_call2(Stdlib[28],cst$17,_dG_); + if(80 === port) + var _dI_=cst$18; + else + var + _dM_=caml_call1(Stdlib[33],port), + _dI_=caml_call2(Stdlib[28],cst$19,_dM_); + var + _dJ_=caml_call2(Stdlib[28],_dI_,_dH_), + _dK_=urlencode(0,host), + _dL_=caml_call2(Stdlib[28],_dK_,_dJ_); + return caml_call2(Stdlib[28],cst_http$1,_dL_); + case 1: + var + match$0=param[1], + frag$0=match$0[6], + args$0=match$0[5], + path$0=match$0[3], + port$0=match$0[2], + host$0=match$0[1]; + if(caml_string_notequal(frag$0,cst$22)) + var + _dN_=urlencode(0,frag$0), + _dO_=caml_call2(Stdlib[28],cst$23,_dN_); + else + var _dO_=cst$30; + if(args$0) + var + _dP_=encode_arguments(args$0), + _dQ_=caml_call2(Stdlib[28],cst$24,_dP_); + else + var _dQ_=cst$29; + var + _dR_=caml_call2(Stdlib[28],_dQ_,_dO_), + _dS_=function(x){return urlencode(0,x)}, + _dT_=caml_call2(Stdlib_List[19],_dS_,path$0), + _dU_=caml_call2(String[6],cst$25,_dT_), + _dV_=caml_call2(Stdlib[28],_dU_,_dR_), + _dW_=caml_call2(Stdlib[28],cst$26,_dV_); + if(443 === port$0) + var _dX_=cst$27; + else + var + _d1_=caml_call1(Stdlib[33],port$0), + _dX_=caml_call2(Stdlib[28],cst$28,_d1_); + var + _dY_=caml_call2(Stdlib[28],_dX_,_dW_), + _dZ_=urlencode(0,host$0), + _d0_=caml_call2(Stdlib[28],_dZ_,_dY_); + return caml_call2(Stdlib[28],cst_https$1,_d0_); + default: + var + match$1=param[1], + frag$1=match$1[4], + args$1=match$1[3], + path$1=match$1[1]; + if(caml_string_notequal(frag$1,cst$31)) + var + _d2_=urlencode(0,frag$1), + _d3_=caml_call2(Stdlib[28],cst$32,_d2_); + else + var _d3_=cst$36; + if(args$1) + var + _d4_=encode_arguments(args$1), + _d5_=caml_call2(Stdlib[28],cst$33,_d4_); + else + var _d5_=cst$35; + var + _d6_=caml_call2(Stdlib[28],_d5_,_d3_), + _d7_=function(x){return urlencode(0,x)}, + _d8_=caml_call2(Stdlib_List[19],_d7_,path$1), + _d9_=caml_call2(String[6],cst$34,_d8_), + _d__=caml_call2(Stdlib[28],_d9_,_d6_); + return caml_call2(Stdlib[28],cst_file$2,_d__)}} + var _s_=caml_call1(Optdef[2],_j_.location); + if(caml_call1(Optdef[5],_s_)) + var _t_=_j_.location; + else + var + t42=function(param,_dx_){return 0}, + t41=function(param,_dw_){return 0}, + t40=function(param){return 0}, + _t_= + {"href":"", + "protocol":"", + "host":"", + "hostname":"", + "port":"", + "pathname":"", + "search":"", + "hash":"", + "origin":t39, + "reload":caml_js_wrap_meth_callback(t40), + "replace":caml_js_wrap_meth_callback(t41), + "assign":caml_js_wrap_meth_callback(t42)}; + var + host=urldecode_js_string_string(_t_.hostname), + protocol=urldecode_js_string_string(_t_.protocol), + _u_=0, + port= + function(param) + {try + {var _du_=[0,caml_int_of_string(caml_string_of_jsbytes(_t_.port))]; + return _du_} + catch(_dv_) + {_dv_ = caml_wrap_exception(_dv_); + if(_dv_[1] === Stdlib[7])return 0; + throw _dv_}} + (_u_), + path_string=urldecode_js_string_string(_t_.pathname), + path=path_of_path_string(path_string), + t49=_t_.search; + if(t49.charAt(0) === "?") + var t52=_t_.search,_v_=t52.slice(1); + else + var _v_=_t_.search; + var arguments$0=decode_arguments_js_string(_v_); + function get_fragment(param) + {function _dr_(res){return caml_string_of_jsstring(res[1])} + function _ds_(param){return cst$37} + var t57=new t11("#(.*)"),t58=_t_.href,_dt_=t58.match(t57); + return caml_call3(Opt[7],_dt_,_ds_,_dr_)} + function set_fragment(s) + {var t59=caml_jsbytes_of_string(urlencode(0,s));return _t_.hash = t59} + function get$2(param){return url_of_js_string(_t_.href)} + function set$0(u) + {var t62=caml_jsbytes_of_string(string_of_url(u));return _t_.href = t62} + var + as_string=urldecode_js_string_string(_t_.href), + Js_of_ocaml_Url= + [0, + urldecode, + urlencode, + default_http_port, + default_https_port, + path_of_path_string, + encode_arguments, + decode_arguments, + url_of_string, + string_of_url, + [0, + host, + port, + protocol, + path_string, + path, + arguments$0, + get_fragment, + set_fragment, + get$2, + set$0, + as_string]]; + caml_register_global(1677,Js_of_ocaml_Url,"Js_of_ocaml__Url"); + var Js_of_ocaml_Lib_version=[0,s,git_version]; + caml_register_global + (1678,Js_of_ocaml_Lib_version,"Js_of_ocaml__Lib_version"); + function update_file(name,content) + {var oc=caml_call1(Stdlib[60],name); + caml_call2(Stdlib[66],oc,content); + return caml_call1(Stdlib[76],oc)} + function set_channel_flusher(out_channel,f) + {var + f$0= + caml_js_wrap_callback + (function(s){return caml_call1(f,caml_string_of_jsbytes(s))}); + return runtime.caml_ml_set_channel_output(out_channel,f$0)} + function set_channel_filler(in_channel,f) + {var f$0=caml_js_wrap_callback(f); + return runtime.caml_ml_set_channel_refill(in_channel,f$0)} + function mount(path,f) + {return runtime.caml_mount_autoload + (path, + caml_js_wrap_callback + (function(prefix,path){return caml_call2(f,prefix,path)}))} + function unmount(path){return runtime.caml_unmount(path)} + if(caml_call2(String[68],git_version,cst$38)) + var js_of_ocaml_version=s; + else + var + _cp_=caml_call2(Stdlib[28],cst$41,git_version), + js_of_ocaml_version=caml_call2(Stdlib[28],s,_cp_); + var + _w_=runtime.caml_create_file, + _x_=runtime.caml_read_file_content, + Js_of_ocaml_Sys_js= + [0, + set_channel_flusher, + set_channel_filler, + function(_dq_){return runtime.caml_list_mount_point(_dq_)}, + unmount, + mount, + _x_, + _w_, + update_file, + js_of_ocaml_version]; + caml_register_global(1679,Js_of_ocaml_Sys_js,"Js_of_ocaml__Sys_js"); + function empty_resize_observer_options(param){return {}} + var t2$0=Unsafe[1].ResizeObserver; + function is_supported$0(param){return caml_call1(Optdef[5],t2$0)} + function observe(node,f,box,param) + {var t1=caml_js_wrap_callback(f),t4=new t2$0(t1); + if(box) + {var box$0=box[1],t8={};t8.box = box$0;t4.observe(node,t8)} + else + t4.observe(node); + return t4} + var + Js_of_ocaml_ResizeObserver= + [0,empty_resize_observer_options,t2$0,is_supported$0,observe]; + caml_register_global + (1680,Js_of_ocaml_ResizeObserver,"Js_of_ocaml__ResizeObserver"); + var t4$1=Unsafe[1].PerformanceObserver; + function is_supported$1(param){return caml_call1(Optdef[5],t4$1)} + function observe$0(entry_types,f) + {var + _dp_= + caml_call1 + (caml_call1(Stdlib_List[19],caml_jsstring_of_string),entry_types), + t1=caml_js_from_array(caml_call1(Stdlib_Array[12],_dp_)), + t5={}; + t5.entryTypes = t1; + var t3=caml_js_wrap_callback(f),t6=new t4$1(t3); + t6.observe(t5); + return t6} + var Js_of_ocaml_PerformanceObserve=[0,t4$1,is_supported$1,observe$0]; + caml_register_global + (1681,Js_of_ocaml_PerformanceObserve,"Js_of_ocaml__PerformanceObserver"); + function empty_mutation_observer_init(param){return {}} + var t2$1=Unsafe[1].MutationObserver; + function is_supported$2(param){return caml_call1(Optdef[5],t2$1)} + function observe$1 + (node, + f, + child_list, + attributes, + character_data, + subtree, + attribute_old_value, + character_data_old_value, + attribute_filter, + param) + {function opt_iter(x,f) + {if(! x)return 0;var x$0=x[1];return caml_call1(f,x$0)} + var t1=caml_js_wrap_callback(f),t19=new t2$1(t1),t18={}; + opt_iter(child_list,function(t3){return t18.childList = t3}); + opt_iter(attributes,function(t5){return t18.attributes = t5}); + opt_iter(character_data,function(t7){return t18.characterData = t7}); + opt_iter(subtree,function(t9){return t18.subtree = t9}); + opt_iter + (attribute_old_value,function(t11){return t18.attributeOldValue = t11}); + opt_iter + (character_data_old_value, + function(t13){return t18.characterDataOldValue = t13}); + opt_iter + (attribute_filter, + function(l) + {var t15=caml_js_from_array(caml_call1(Stdlib_Array[12],l)); + return t18.attributeFilter = t15}); + t19.observe(node,t18); + return t19} + var + Js_of_ocaml_MutationObserver= + [0,empty_mutation_observer_init,t2$1,is_supported$2,observe$1]; + caml_register_global + (1682,Js_of_ocaml_MutationObserver,"Js_of_ocaml__MutationObserver"); + var t1=Unsafe[1].Object; + function create$0(param){return new t1()} + function add$0(t,k,v){return t[k.concat("_")] = v} + function remove(t,k){return delete t[k.concat("_")]} + function find(t,k){return t[k.concat("_")]} + function keys(t) + {var + t10=Unsafe[1].Object, + t11=t10.keys(t), + res=[0,0], + _dk_=t11.length - 1 | 0, + _dj_=0; + if(_dk_ >= 0) + {var i=_dj_; + for(;;) + {var + _dl_=function(param){return caml_call1(Stdlib[2],cst_Jstable_keys)}, + _dm_=t11[i], + t15=caml_call2(Optdef[8],_dm_,_dl_), + t14=t15.length - 1 | 0, + _dn_=res[1]; + res[1] = [0,t15.substring(0,t14),_dn_]; + var _do_=i + 1 | 0; + if(_dk_ !== i){var i=_do_;continue} + break}} + return caml_call1(Stdlib_List[9],res[1])} + var Js_of_ocaml_Jstable=[0,create$0,add$0,remove,find,keys]; + caml_register_global(1683,Js_of_ocaml_Jstable,"Js_of_ocaml__Jstable"); + var t11$1=Unsafe[1].JSON; + function reviver(this$0,key,value) + {if(typeof value === "string")return caml_string_of_jsbytes(value); + if + (value instanceof array_length + && + 4 + === + value.length + && + 255 + === + value[0]) + {var _dh_=value[3],_di_=value[2]; + return runtime.caml_int64_create_lo_mi_hi(value[1],_di_,_dh_)} + return value} + var t3$0=caml_js_wrap_meth_callback(reviver); + function unsafe_input(t2){return t11$1.parse(t2,t3$0)} + var mlInt64_constr=t5.constructor; + function output_reviver(key,value) + {var _dg_=Stdlib_Obj[13]; + return caml_call2(symbol$8,runtime.caml_obj_tag(value),_dg_) + ?caml_jsbytes_of_string(value) + :value instanceof mlInt64_constr + ?caml_js_from_array([0,255,value.lo,value.mi,value.hi]) + :value} + function output(t9) + {var t10=caml_js_wrap_callback(output_reviver); + return t11$1.stringify(t9,t10)} + var Js_of_ocaml_Json=[0,output,unsafe_input]; + caml_register_global(1685,Js_of_ocaml_Json,"Js_of_ocaml__Json"); + function string_of_name(param) + {var _df_=param; + if(74 <= _df_) + {if(111 <= _df_) + switch(_df_) + {case 111:return cst_palevioletred; + case 112:return cst_papayawhip; + case 113:return cst_peachpuff; + case 114:return cst_peru; + case 115:return cst_pink; + case 116:return cst_plum; + case 117:return cst_powderblue; + case 118:return cst_purple; + case 119:return cst_red; + case 120:return cst_rosybrown; + case 121:return cst_royalblue; + case 122:return cst_saddlebrown; + case 123:return cst_salmon; + case 124:return cst_sandybrown; + case 125:return cst_seagreen; + case 126:return cst_seashell; + case 127:return cst_sienna; + case 128:return cst_silver; + case 129:return cst_skyblue; + case 130:return cst_slateblue; + case 131:return cst_slategray; + case 132:return cst_slategrey; + case 133:return cst_snow; + case 134:return cst_springgreen; + case 135:return cst_steelblue; + case 136:return cst_tan; + case 137:return cst_teal; + case 138:return cst_thistle; + case 139:return cst_tomato; + case 140:return cst_turquoise; + case 141:return cst_violet; + case 142:return cst_wheat; + case 143:return cst_white; + case 144:return cst_whitesmoke; + case 145:return cst_yellow; + default:return cst_yellowgreen} + switch(_df_) + {case 74:return cst_lightpink; + case 75:return cst_lightsalmon; + case 76:return cst_lightseagreen; + case 77:return cst_lightskyblue; + case 78:return cst_lightslategray; + case 79:return cst_lightslategrey; + case 80:return cst_lightsteelblue; + case 81:return cst_lightyellow; + case 82:return cst_lime; + case 83:return cst_limegreen; + case 84:return cst_linen; + case 85:return cst_magenta; + case 86:return cst_maroon; + case 87:return cst_mediumaquamarine; + case 88:return cst_mediumblue; + case 89:return cst_mediumorchid; + case 90:return cst_mediumpurple; + case 91:return cst_mediumseagreen; + case 92:return cst_mediumslateblue; + case 93:return cst_mediumspringgreen; + case 94:return cst_mediumturquoise; + case 95:return cst_mediumvioletred; + case 96:return cst_midnightblue; + case 97:return cst_mintcream; + case 98:return cst_mistyrose; + case 99:return cst_moccasin; + case 100:return cst_navajowhite; + case 101:return cst_navy; + case 102:return cst_oldlace; + case 103:return cst_olive; + case 104:return cst_olivedrab; + case 105:return cst_orange; + case 106:return cst_orangered; + case 107:return cst_orchid; + case 108:return cst_palegoldenrod; + case 109:return cst_palegreen; + default:return cst_paleturquoise}} + if(37 <= _df_) + switch(_df_) + {case 37:return cst_darkslategrey; + case 38:return cst_darkturquoise; + case 39:return cst_darkviolet; + case 40:return cst_deeppink; + case 41:return cst_deepskyblue; + case 42:return cst_dimgray; + case 43:return cst_dimgrey; + case 44:return cst_dodgerblue; + case 45:return cst_firebrick; + case 46:return cst_floralwhite; + case 47:return cst_forestgreen; + case 48:return cst_fuchsia; + case 49:return cst_gainsboro; + case 50:return cst_ghostwhite; + case 51:return cst_gold; + case 52:return cst_goldenrod; + case 53:return cst_gray; + case 54:return cst_grey; + case 55:return cst_green; + case 56:return cst_greenyellow; + case 57:return cst_honeydew; + case 58:return cst_hotpink; + case 59:return cst_indianred; + case 60:return cst_indigo; + case 61:return cst_ivory; + case 62:return cst_khaki; + case 63:return cst_lavender; + case 64:return cst_lavenderblush; + case 65:return cst_lawngreen; + case 66:return cst_lemonchiffon; + case 67:return cst_lightblue; + case 68:return cst_lightcoral; + case 69:return cst_lightcyan; + case 70:return cst_lightgoldenrodyellow; + case 71:return cst_lightgray; + case 72:return cst_lightgreen; + default:return cst_lightgrey} + switch(_df_) + {case 0:return cst_aliceblue; + case 1:return cst_antiquewhite; + case 2:return cst_aqua; + case 3:return cst_aquamarine; + case 4:return cst_azure; + case 5:return cst_beige; + case 6:return cst_bisque; + case 7:return cst_black; + case 8:return cst_blanchedalmond; + case 9:return cst_blue; + case 10:return cst_blueviolet; + case 11:return cst_brown; + case 12:return cst_burlywood; + case 13:return cst_cadetblue; + case 14:return cst_chartreuse; + case 15:return cst_chocolate; + case 16:return cst_coral; + case 17:return cst_cornflowerblue; + case 18:return cst_cornsilk; + case 19:return cst_crimson; + case 20:return cst_cyan; + case 21:return cst_darkblue; + case 22:return cst_darkcyan; + case 23:return cst_darkgoldenrod; + case 24:return cst_darkgray; + case 25:return cst_darkgreen; + case 26:return cst_darkgrey; + case 27:return cst_darkkhaki; + case 28:return cst_darkmagenta; + case 29:return cst_darkolivegreen; + case 30:return cst_darkorange; + case 31:return cst_darkorchid; + case 32:return cst_darkred; + case 33:return cst_darksalmon; + case 34:return cst_darkseagreen; + case 35:return cst_darkslateblue; + default:return cst_darkslategray}} + function name_of_string(s) + {var switch$0=caml_string_compare(s,cst_lightgrey$0); + if(0 <= switch$0) + {if(0 >= switch$0)return 73; + var switch$1=caml_string_compare(s,cst_paleturquoise$0); + if(0 <= switch$1) + {if(0 >= switch$1)return 110; + var switch$2=caml_string_compare(s,cst_skyblue$0); + if(0 <= switch$2) + {if(0 >= switch$2)return 129; + var switch$3=caml_string_compare(s,cst_thistle$0); + if(0 <= switch$3) + {if(0 >= switch$3)return 138; + if(! caml_string_notequal(s,cst_tomato$0))return 139; + if(! caml_string_notequal(s,cst_turquoise$0))return 140; + if(! caml_string_notequal(s,cst_violet$0))return 141; + if(! caml_string_notequal(s,cst_wheat$0))return 142; + if(! caml_string_notequal(s,cst_white$0))return 143; + if(! caml_string_notequal(s,cst_whitesmoke$0))return 144; + if(! caml_string_notequal(s,cst_yellow$0))return 145; + if(! caml_string_notequal(s,cst_yellowgreen$0))return 146} + else + {if(! caml_string_notequal(s,cst_slateblue$0))return 130; + if(! caml_string_notequal(s,cst_slategray$0))return 131; + if(! caml_string_notequal(s,cst_slategrey$0))return 132; + if(! caml_string_notequal(s,cst_snow$0))return 133; + if(! caml_string_notequal(s,cst_springgreen$0))return 134; + if(! caml_string_notequal(s,cst_steelblue$0))return 135; + if(! caml_string_notequal(s,cst_tan$0))return 136; + if(! caml_string_notequal(s,cst_teal$0))return 137}} + else + {var switch$4=caml_string_compare(s,cst_rosybrown$0); + if(0 <= switch$4) + {if(0 >= switch$4)return 120; + if(! caml_string_notequal(s,cst_royalblue$0))return 121; + if(! caml_string_notequal(s,cst_saddlebrown$0))return 122; + if(! caml_string_notequal(s,cst_salmon$0))return 123; + if(! caml_string_notequal(s,cst_sandybrown$0))return 124; + if(! caml_string_notequal(s,cst_seagreen$0))return 125; + if(! caml_string_notequal(s,cst_seashell$0))return 126; + if(! caml_string_notequal(s,cst_sienna$0))return 127; + if(! caml_string_notequal(s,cst_silver$0))return 128} + else + {if(! caml_string_notequal(s,cst_palevioletred$0))return 111; + if(! caml_string_notequal(s,cst_papayawhip$0))return 112; + if(! caml_string_notequal(s,cst_peachpuff$0))return 113; + if(! caml_string_notequal(s,cst_peru$0))return 114; + if(! caml_string_notequal(s,cst_pink$0))return 115; + if(! caml_string_notequal(s,cst_plum$0))return 116; + if(! caml_string_notequal(s,cst_powderblue$0))return 117; + if(! caml_string_notequal(s,cst_purple$0))return 118; + if(! caml_string_notequal(s,cst_red$0))return 119}}} + else + {var switch$5=caml_string_compare(s,cst_mediumslateblue$0); + if(0 <= switch$5) + {if(0 >= switch$5)return 92; + var switch$6=caml_string_compare(s,cst_navy$0); + if(0 <= switch$6) + {if(0 >= switch$6)return 101; + if(! caml_string_notequal(s,cst_oldlace$0))return 102; + if(! caml_string_notequal(s,cst_olive$0))return 103; + if(! caml_string_notequal(s,cst_olivedrab$0))return 104; + if(! caml_string_notequal(s,cst_orange$0))return 105; + if(! caml_string_notequal(s,cst_orangered$0))return 106; + if(! caml_string_notequal(s,cst_orchid$0))return 107; + if(! caml_string_notequal(s,cst_palegoldenrod$0))return 108; + if(! caml_string_notequal(s,cst_palegreen$0))return 109} + else + {if(! caml_string_notequal(s,cst_mediumspringgreen$0))return 93; + if(! caml_string_notequal(s,cst_mediumturquoise$0))return 94; + if(! caml_string_notequal(s,cst_mediumvioletred$0))return 95; + if(! caml_string_notequal(s,cst_midnightblue$0))return 96; + if(! caml_string_notequal(s,cst_mintcream$0))return 97; + if(! caml_string_notequal(s,cst_mistyrose$0))return 98; + if(! caml_string_notequal(s,cst_moccasin$0))return 99; + if(! caml_string_notequal(s,cst_navajowhite$0))return 100}} + else + {var switch$7=caml_string_compare(s,cst_limegreen$0); + if(0 <= switch$7) + {if(0 >= switch$7)return 83; + if(! caml_string_notequal(s,cst_linen$0))return 84; + if(! caml_string_notequal(s,cst_magenta$0))return 85; + if(! caml_string_notequal(s,cst_maroon$0))return 86; + if(! caml_string_notequal(s,cst_mediumaquamarine$0))return 87; + if(! caml_string_notequal(s,cst_mediumblue$0))return 88; + if(! caml_string_notequal(s,cst_mediumorchid$0))return 89; + if(! caml_string_notequal(s,cst_mediumpurple$0))return 90; + if(! caml_string_notequal(s,cst_mediumseagreen$0))return 91} + else + {if(! caml_string_notequal(s,cst_lightpink$0))return 74; + if(! caml_string_notequal(s,cst_lightsalmon$0))return 75; + if(! caml_string_notequal(s,cst_lightseagreen$0))return 76; + if(! caml_string_notequal(s,cst_lightskyblue$0))return 77; + if(! caml_string_notequal(s,cst_lightslategray$0))return 78; + if(! caml_string_notequal(s,cst_lightslategrey$0))return 79; + if(! caml_string_notequal(s,cst_lightsteelblue$0))return 80; + if(! caml_string_notequal(s,cst_lightyellow$0))return 81; + if(! caml_string_notequal(s,cst_lime$0))return 82}}}} + else + {var switch$8=caml_string_compare(s,cst_darkslategray$0); + if(0 <= switch$8) + {if(0 >= switch$8)return 36; + var switch$9=caml_string_compare(s,cst_greenyellow$0); + if(0 <= switch$9) + {if(0 >= switch$9)return 56; + var switch$10=caml_string_compare(s,cst_lavenderblush$0); + if(0 <= switch$10) + {if(0 >= switch$10)return 64; + if(! caml_string_notequal(s,cst_lawngreen$0))return 65; + if(! caml_string_notequal(s,cst_lemonchiffon$0))return 66; + if(! caml_string_notequal(s,cst_lightblue$0))return 67; + if(! caml_string_notequal(s,cst_lightcoral$0))return 68; + if(! caml_string_notequal(s,cst_lightcyan$0))return 69; + if(! caml_string_notequal(s,cst_lightgoldenrodyellow$0)) + return 70; + if(! caml_string_notequal(s,cst_lightgray$0))return 71; + if(! caml_string_notequal(s,cst_lightgreen$0))return 72} + else + {if(! caml_string_notequal(s,cst_grey$0))return 54; + if(! caml_string_notequal(s,cst_honeydew$0))return 57; + if(! caml_string_notequal(s,cst_hotpink$0))return 58; + if(! caml_string_notequal(s,cst_indianred$0))return 59; + if(! caml_string_notequal(s,cst_indigo$0))return 60; + if(! caml_string_notequal(s,cst_ivory$0))return 61; + if(! caml_string_notequal(s,cst_khaki$0))return 62; + if(! caml_string_notequal(s,cst_lavender$0))return 63}} + else + {var switch$11=caml_string_compare(s,cst_floralwhite$0); + if(0 <= switch$11) + {if(0 >= switch$11)return 46; + if(! caml_string_notequal(s,cst_forestgreen$0))return 47; + if(! caml_string_notequal(s,cst_fuchsia$0))return 48; + if(! caml_string_notequal(s,cst_gainsboro$0))return 49; + if(! caml_string_notequal(s,cst_ghostwhite$0))return 50; + if(! caml_string_notequal(s,cst_gold$0))return 51; + if(! caml_string_notequal(s,cst_goldenrod$0))return 52; + if(! caml_string_notequal(s,cst_gray$0))return 53; + if(! caml_string_notequal(s,cst_green$0))return 55} + else + {if(! caml_string_notequal(s,cst_darkslategrey$0))return 37; + if(! caml_string_notequal(s,cst_darkturquoise$0))return 38; + if(! caml_string_notequal(s,cst_darkviolet$0))return 39; + if(! caml_string_notequal(s,cst_deeppink$0))return 40; + if(! caml_string_notequal(s,cst_deepskyblue$0))return 41; + if(! caml_string_notequal(s,cst_dimgray$0))return 42; + if(! caml_string_notequal(s,cst_dimgrey$0))return 43; + if(! caml_string_notequal(s,cst_dodgerblue$0))return 44; + if(! caml_string_notequal(s,cst_firebrick$0))return 45}}} + else + {var switch$12=caml_string_compare(s,cst_cornsilk$0); + if(0 <= switch$12) + {if(0 >= switch$12)return 18; + var switch$13=caml_string_compare(s,cst_darkkhaki$0); + if(0 <= switch$13) + {if(0 >= switch$13)return 27; + if(! caml_string_notequal(s,cst_darkmagenta$0))return 28; + if(! caml_string_notequal(s,cst_darkolivegreen$0))return 29; + if(! caml_string_notequal(s,cst_darkorange$0))return 30; + if(! caml_string_notequal(s,cst_darkorchid$0))return 31; + if(! caml_string_notequal(s,cst_darkred$0))return 32; + if(! caml_string_notequal(s,cst_darksalmon$0))return 33; + if(! caml_string_notequal(s,cst_darkseagreen$0))return 34; + if(! caml_string_notequal(s,cst_darkslateblue$0))return 35} + else + {if(! caml_string_notequal(s,cst_crimson$0))return 19; + if(! caml_string_notequal(s,cst_cyan$0))return 20; + if(! caml_string_notequal(s,cst_darkblue$0))return 21; + if(! caml_string_notequal(s,cst_darkcyan$0))return 22; + if(! caml_string_notequal(s,cst_darkgoldenrod$0))return 23; + if(! caml_string_notequal(s,cst_darkgray$0))return 24; + if(! caml_string_notequal(s,cst_darkgreen$0))return 25; + if(! caml_string_notequal(s,cst_darkgrey$0))return 26}} + else + {var switch$14=caml_string_compare(s,cst_blue$0); + if(0 <= switch$14) + {if(0 >= switch$14)return 9; + if(! caml_string_notequal(s,cst_blueviolet$0))return 10; + if(! caml_string_notequal(s,cst_brown$0))return 11; + if(! caml_string_notequal(s,cst_burlywood$0))return 12; + if(! caml_string_notequal(s,cst_cadetblue$0))return 13; + if(! caml_string_notequal(s,cst_chartreuse$0))return 14; + if(! caml_string_notequal(s,cst_chocolate$0))return 15; + if(! caml_string_notequal(s,cst_coral$0))return 16; + if(! caml_string_notequal(s,cst_cornflowerblue$0))return 17} + else + {if(! caml_string_notequal(s,cst_aliceblue$0))return 0; + if(! caml_string_notequal(s,cst_antiquewhite$0))return 1; + if(! caml_string_notequal(s,cst_aqua$0))return 2; + if(! caml_string_notequal(s,cst_aquamarine$0))return 3; + if(! caml_string_notequal(s,cst_azure$0))return 4; + if(! caml_string_notequal(s,cst_beige$0))return 5; + if(! caml_string_notequal(s,cst_bisque$0))return 6; + if(! caml_string_notequal(s,cst_black$0))return 7; + if(! caml_string_notequal(s,cst_blanchedalmond$0))return 8}}}} + var _de_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_color_name); + throw [0,Stdlib[6],_de_]} + function rgb_of_name(param) + {var _dd_=param; + if(74 <= _dd_) + {if(111 <= _dd_) + switch(_dd_) + {case 111:return _br_; + case 112:return _bs_; + case 113:return _bt_; + case 114:return _bu_; + case 115:return _bv_; + case 116:return _bw_; + case 117:return _bx_; + case 118:return _by_; + case 119:return _bz_; + case 120:return _bA_; + case 121:return _bB_; + case 122:return _bC_; + case 123:return _bD_; + case 124:return _bE_; + case 125:return _bF_; + case 126:return _bG_; + case 127:return _bH_; + case 128:return _bI_; + case 129:return _bJ_; + case 130:return _bK_; + case 131:return _bL_; + case 132:return _bM_; + case 133:return _bN_; + case 134:return _bO_; + case 135:return _bP_; + case 136:return _bQ_; + case 137:return _bR_; + case 138:return _bS_; + case 139:return _bT_; + case 140:return _bU_; + case 141:return _bV_; + case 142:return _bW_; + case 143:return _bX_; + case 144:return _bY_; + case 145:return _bZ_; + default:return _b0_} + switch(_dd_) + {case 74:return _aS_; + case 75:return _aT_; + case 76:return _aU_; + case 77:return _aV_; + case 78:return _aW_; + case 79:return _aX_; + case 80:return _aY_; + case 81:return _aZ_; + case 82:return _a0_; + case 83:return _a1_; + case 84:return _a2_; + case 85:return _a3_; + case 86:return _a4_; + case 87:return _a5_; + case 88:return _a6_; + case 89:return _a7_; + case 90:return _a8_; + case 91:return _a9_; + case 92:return _a__; + case 93:return _a$_; + case 94:return _ba_; + case 95:return _bb_; + case 96:return _bc_; + case 97:return _bd_; + case 98:return _be_; + case 99:return _bf_; + case 100:return _bg_; + case 101:return _bh_; + case 102:return _bi_; + case 103:return _bj_; + case 104:return _bk_; + case 105:return _bl_; + case 106:return _bm_; + case 107:return _bn_; + case 108:return _bo_; + case 109:return _bp_; + default:return _bq_}} + if(37 <= _dd_) + switch(_dd_) + {case 37:return _ah_; + case 38:return _ai_; + case 39:return _aj_; + case 40:return _ak_; + case 41:return _al_; + case 42:return _am_; + case 43:return _an_; + case 44:return _ao_; + case 45:return _ap_; + case 46:return _aq_; + case 47:return _ar_; + case 48:return _as_; + case 49:return _at_; + case 50:return _au_; + case 51:return _av_; + case 52:return _aw_; + case 53:return _ax_; + case 54:return _ay_; + case 55:return _az_; + case 56:return _aA_; + case 57:return _aB_; + case 58:return _aC_; + case 59:return _aD_; + case 60:return _aE_; + case 61:return _aF_; + case 62:return _aG_; + case 63:return _aH_; + case 64:return _aI_; + case 65:return _aJ_; + case 66:return _aK_; + case 67:return _aL_; + case 68:return _aM_; + case 69:return _aN_; + case 70:return _aO_; + case 71:return _aP_; + case 72:return _aQ_; + default:return _aR_} + switch(_dd_) + {case 0:return _y_; + case 1:return _z_; + case 2:return _A_; + case 3:return _B_; + case 4:return _C_; + case 5:return _D_; + case 6:return _E_; + case 7:return _F_; + case 8:return _G_; + case 9:return _H_; + case 10:return _I_; + case 11:return _J_; + case 12:return _K_; + case 13:return _L_; + case 14:return _M_; + case 15:return _N_; + case 16:return _O_; + case 17:return _P_; + case 18:return _Q_; + case 19:return _R_; + case 20:return _S_; + case 21:return _T_; + case 22:return _U_; + case 23:return _V_; + case 24:return _W_; + case 25:return _X_; + case 26:return _Y_; + case 27:return _Z_; + case 28:return ___; + case 29:return _$_; + case 30:return _aa_; + case 31:return _ab_; + case 32:return _ac_; + case 33:return _ad_; + case 34:return _ae_; + case 35:return _af_; + default:return _ag_}} + function rgb(a,r,g,b) + {if(! a)return [1,[0,r,g,b]];var a$0=a[1];return [3,[0,r,g,b,a$0]]} + function hsl(a,h,s,l) + {if(! a)return [5,[0,h,s,l]];var a$0=a[1];return [6,[0,h,s,l,a$0]]} + function string_of_t(param) + {switch(param[0]) + {case 0:var n=param[1];return string_of_name(n); + case 1: + var match=param[1],b=match[3],g=match[2],r=match[1]; + return caml_call4(Stdlib_Printf[4],_b1_,r,g,b); + case 2: + var match$0=param[1],b$0=match$0[3],g$0=match$0[2],r$0=match$0[1]; + return caml_call4(Stdlib_Printf[4],_b2_,r$0,g$0,b$0); + case 3: + var + match$1=param[1], + a=match$1[4], + b$1=match$1[3], + g$1=match$1[2], + r$1=match$1[1]; + return caml_call5(Stdlib_Printf[4],_b3_,r$1,g$1,b$1,a); + case 4: + var + match$2=param[1], + a$0=match$2[4], + b$2=match$2[3], + g$2=match$2[2], + r$2=match$2[1]; + return caml_call5(Stdlib_Printf[4],_b4_,r$2,g$2,b$2,a$0); + case 5: + var match$3=param[1],l=match$3[3],s=match$3[2],h=match$3[1]; + return caml_call4(Stdlib_Printf[4],_b5_,h,s,l); + default: + var + match$4=param[1], + a$1=match$4[4], + l$0=match$4[3], + s$0=match$4[2], + h$0=match$4[1]; + return caml_call5(Stdlib_Printf[4],_b6_,h$0,s$0,l$0,a$1)}} + function hex_of_rgb(param) + {var blue=param[3],green=param[2],red=param[1]; + function in_range(i) + {var + _c$_=caml_call2(symbol$5,i,0), + _da_=_c$_ || caml_call2(symbol$9,i,255); + if(! _da_)return _da_; + var + _db_=caml_call1(Stdlib[33],i), + _dc_=caml_call2(Stdlib[28],_db_,cst_is_out_of_valid_range); + throw [0,Stdlib[6],_dc_]} + in_range(red); + in_range(green); + in_range(blue); + return caml_call4(Stdlib_Printf[4],_b7_,red,green,blue)} + function js_t_of_js_string(s) + {var + t0=caml_jsbytes_of_string(cst_rgb_s_d_s_d_s_d), + t13=new t11(t0), + t2=caml_jsbytes_of_string(cst_rgb_s_d_s_d_s_d$0), + t17=new t11(t2), + t4=caml_jsbytes_of_string(cst_rgba_s_d_s_d_s_d_d_d), + t15=new t11(t4), + t6=caml_jsbytes_of_string(cst_rgba_s_d_s_d_s_d_d_d$0), + t19=new t11(t6), + t8=caml_jsbytes_of_string(cst_hsl_s_d_s_d_s_d), + t21=new t11(t8), + t10=caml_jsbytes_of_string(cst_hsla_s_d_s_d_s_d_d_d), + t23=new t11(t10); + if + (! + (t13.test(s) | 0) + && + ! + (t15.test(s) | 0) + && + ! + (t17.test(s) | 0) + && + ! + (t19.test(s) | 0) + && + ! + (t21.test(s) | 0) + && + ! + (t23.test(s) | 0)) + {var _c8_=caml_string_of_jsstring(s); + if(caml_call2(Stdlib_List[36],_c8_,_b8_))return s; + var + _c9_=caml_string_of_jsstring(s), + _c__=caml_call2(Stdlib[28],_c9_,cst_is_not_a_valid_color); + throw [0,Stdlib[6],_c__]} + return s} + function js(c) + {if(0 !== c[0])return caml_jsstring_of_string(string_of_t(c)); + var n=c[1]; + return caml_jsstring_of_string(string_of_name(n))} + function ml(c) + {var s=caml_string_of_jsstring(c); + try + {var _cV_=[0,name_of_string(s)];return _cV_} + catch(_cW_) + {_cW_ = caml_wrap_exception(_cW_); + if(_cW_[1] !== Stdlib[6])throw _cW_; + var + fail= + function(param) + {var _c7_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_color$0); + throw [0,Stdlib[6],_c7_]}, + re_rgb=regexp(cst_rgba_d_d_d_d_d), + re_rgb_pct=regexp(cst_rgba_d_d_d_d_d$0), + re_hsl=regexp(cst_hsla_d_d_d_d_d), + i_of_s_o= + function(param) + {if(! param)return fail(0); + var i=param[1]; + try + {var _c5_=caml_int_of_string(i);return _c5_} + catch(_c6_) + {_c6_ = caml_wrap_exception(_c6_); + if(_c6_[1] === Stdlib[6]) + var s=_c6_[2]; + else + {if(_c6_[1] !== Stdlib[7])throw _c6_;var s=_c6_[2]} + var + _c2_=caml_call2(Stdlib[28],cst$39,s), + _c3_=caml_call2(Stdlib[28],i,_c2_), + _c4_=caml_call2(Stdlib[28],cst_color_conversion_error,_c3_); + throw [0,Stdlib[6],_c4_]}}, + f_of_s= + function(f) + {try + {var _c0_=caml_float_of_string(f);return _c0_} + catch(_c1_) + {_c1_ = caml_wrap_exception(_c1_); + if(_c1_[1] === Stdlib[6]) + var s=_c1_[2]; + else + {if(_c1_[1] !== Stdlib[7])throw _c1_;var s=_c1_[2]} + var + _cX_=caml_call2(Stdlib[28],cst$40,s), + _cY_=caml_call2(Stdlib[28],f,_cX_), + _cZ_=caml_call2(Stdlib[28],cst_color_conversion_error$0,_cY_); + throw [0,Stdlib[6],_cZ_]}}, + match=string_match(re_rgb,s,0); + if(match) + {var + r=match[1], + red=matched_group(r,2), + green=matched_group(r,3), + blue=matched_group(r,4), + alpha=matched_group(r,5), + match$0=matched_group(r,1); + if(match$0) + {var _cD_=match$0[1]; + if(! caml_string_notequal(_cD_,cst_rgb)) + {if(alpha)return fail(0); + var _cH_=i_of_s_o(blue),_cI_=i_of_s_o(green); + return [1,[0,i_of_s_o(red),_cI_,_cH_]]} + if(! caml_string_notequal(_cD_,cst_rgba)) + {if(! alpha)return fail(0); + var + a=alpha[1], + _cE_=f_of_s(a), + _cF_=i_of_s_o(blue), + _cG_=i_of_s_o(green); + return [3,[0,i_of_s_o(red),_cG_,_cF_,_cE_]]}} + return fail(0)} + var match$1=string_match(re_rgb_pct,s,0); + if(match$1) + {var + r$0=match$1[1], + red$0=matched_group(r$0,2), + green$0=matched_group(r$0,3), + blue$0=matched_group(r$0,4), + alpha$0=matched_group(r$0,5), + match$2=matched_group(r$0,1); + if(match$2) + {var _cJ_=match$2[1]; + if(! caml_string_notequal(_cJ_,cst_rgb$0)) + {if(alpha$0)return fail(0); + var _cN_=i_of_s_o(blue$0),_cO_=i_of_s_o(green$0); + return [2,[0,i_of_s_o(red$0),_cO_,_cN_]]} + if(! caml_string_notequal(_cJ_,cst_rgba$0)) + {if(! alpha$0)return fail(0); + var + a$0=alpha$0[1], + _cK_=f_of_s(a$0), + _cL_=i_of_s_o(blue$0), + _cM_=i_of_s_o(green$0); + return [4,[0,i_of_s_o(red$0),_cM_,_cL_,_cK_]]}} + return fail(0)} + var match$3=string_match(re_hsl,s,0); + if(! match$3)return fail(0); + var + r$1=match$3[1], + red$1=matched_group(r$1,2), + green$1=matched_group(r$1,3), + blue$1=matched_group(r$1,4), + alpha$1=matched_group(r$1,5), + match$4=matched_group(r$1,1); + if(match$4) + {var _cP_=match$4[1]; + if(! caml_string_notequal(_cP_,cst_hsl)) + {if(alpha$1)return fail(0); + var _cT_=i_of_s_o(blue$1),_cU_=i_of_s_o(green$1); + return [5,[0,i_of_s_o(red$1),_cU_,_cT_]]} + if(! caml_string_notequal(_cP_,cst_hsla)) + {if(! alpha$1)return fail(0); + var + a$1=alpha$1[1], + _cQ_=f_of_s(a$1), + _cR_=i_of_s_o(blue$1), + _cS_=i_of_s_o(green$1); + return [6,[0,i_of_s_o(red$1),_cS_,_cR_,_cQ_]]}} + return fail(0)}} + function string_of_t$0(param) + {if(typeof param === "number")return cst_0; + switch(param[0]) + {case 0: + var f=param[1];return caml_call3(Stdlib_Printf[4],_b9_,f,cst_em$0); + case 1: + var f$0=param[1];return caml_call3(Stdlib_Printf[4],_b__,f$0,cst_ex); + case 2: + var f$1=param[1];return caml_call3(Stdlib_Printf[4],_b$_,f$1,cst_px); + case 3: + var f$2=param[1];return caml_call3(Stdlib_Printf[4],_ca_,f$2,cst_gd); + case 4: + var f$3=param[1]; + return caml_call3(Stdlib_Printf[4],_cb_,f$3,cst_rem); + case 5: + var f$4=param[1];return caml_call3(Stdlib_Printf[4],_cc_,f$4,cst_vw); + case 6: + var f$5=param[1];return caml_call3(Stdlib_Printf[4],_cd_,f$5,cst_vh); + case 7: + var f$6=param[1];return caml_call3(Stdlib_Printf[4],_ce_,f$6,cst_vm); + case 8: + var f$7=param[1];return caml_call3(Stdlib_Printf[4],_cf_,f$7,cst_ch); + case 9: + var f$8=param[1];return caml_call3(Stdlib_Printf[4],_cg_,f$8,cst_mm); + case 10: + var f$9=param[1];return caml_call3(Stdlib_Printf[4],_ch_,f$9,cst_cm); + case 11: + var f$10=param[1]; + return caml_call3(Stdlib_Printf[4],_ci_,f$10,cst_in); + case 12: + var f$11=param[1]; + return caml_call3(Stdlib_Printf[4],_cj_,f$11,cst_pt); + default: + var f$12=param[1]; + return caml_call3(Stdlib_Printf[4],_ck_,f$12,cst_pc)}} + function js$0(t){return caml_jsstring_of_string(string_of_t$0(t))} + function ml$0(t) + {var s=caml_string_of_jsstring(t); + if(caml_call2(String[68],s,cst_0$0))return 0; + function fail(param) + {var _cC_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_length); + throw [0,Stdlib[6],_cC_]} + var re=regexp(cst_d_d_s_S),match=string_match(re,s,0); + if(! match)return fail(0); + var r=match[1],match$0=matched_group(r,1); + if(match$0) + {var f=match$0[1]; + try + {var _cA_=caml_float_of_string(f)} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] !== Stdlib[6])throw exn; + var + s$0=exn[2], + _cz_=caml_call2(Stdlib[28],cst_length_conversion_error,s$0); + throw [0,Stdlib[6],_cz_]} + var f$0=_cA_} + else + var f$0=fail(0); + var match$1=matched_group(r,2); + if(! match$1)return fail(0); + var _cB_=match$1[1],switch$0=caml_string_compare(_cB_,cst_pc$0); + if(0 <= switch$0) + {if(0 >= switch$0)return [13,f$0]; + if(! caml_string_notequal(_cB_,cst_pt$0))return [12,f$0]; + if(! caml_string_notequal(_cB_,cst_px$0))return [2,f$0]; + if(! caml_string_notequal(_cB_,cst_rem$0))return [4,f$0]; + if(! caml_string_notequal(_cB_,cst_vh$0))return [6,f$0]; + if(! caml_string_notequal(_cB_,cst_vm$0))return [7,f$0]; + if(! caml_string_notequal(_cB_,cst_vw$0))return [5,f$0]} + else + {if(! caml_string_notequal(_cB_,cst_ch$0))return [8,f$0]; + if(! caml_string_notequal(_cB_,cst_cm$0))return [10,f$0]; + if(! caml_string_notequal(_cB_,cst_em$1))return [0,f$0]; + if(! caml_string_notequal(_cB_,cst_ex$0))return [1,f$0]; + if(! caml_string_notequal(_cB_,cst_gd$0))return [3,f$0]; + if(! caml_string_notequal(_cB_,cst_in$0))return [11,f$0]; + if(! caml_string_notequal(_cB_,cst_mm$0))return [9,f$0]} + return fail(0)} + var Length=[0,string_of_t$0,js$0,ml$0]; + function string_of_t$1(param) + {switch(param[0]) + {case 0: + var f=param[1];return caml_call3(Stdlib_Printf[4],_cl_,f,cst_deg); + case 1: + var f$0=param[1]; + return caml_call3(Stdlib_Printf[4],_cm_,f$0,cst_grad); + case 2: + var f$1=param[1]; + return caml_call3(Stdlib_Printf[4],_cn_,f$1,cst_rad); + default: + var f$2=param[1]; + return caml_call3(Stdlib_Printf[4],_co_,f$2,cst_turns)}} + function js$1(t){return caml_jsstring_of_string(string_of_t$1(t))} + function ml$1(j) + {var s=caml_string_of_jsstring(j),re=regexp(cst_d_d_deg_grad_rad_turns); + function fail(param) + {var _cy_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_length$0); + throw [0,Stdlib[6],_cy_]} + var match=string_match(re,s,0); + if(! match)return fail(0); + var r=match[1],match$0=matched_group(r,1); + if(match$0) + {var f=match$0[1]; + try + {var _cw_=caml_float_of_string(f)} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] !== Stdlib[6])throw exn; + var + s$0=exn[2], + _cv_=caml_call2(Stdlib[28],cst_length_conversion_error$0,s$0); + throw [0,Stdlib[6],_cv_]} + var f$0=_cw_} + else + var f$0=fail(0); + var match$1=matched_group(r,2); + if(match$1) + {var _cx_=match$1[1]; + if(! caml_string_notequal(_cx_,cst_deg$0))return [0,f$0]; + if(! caml_string_notequal(_cx_,cst_grad$0))return [1,f$0]; + if(! caml_string_notequal(_cx_,cst_rad$0))return [2,f$0]; + if(! caml_string_notequal(_cx_,cst_turns$0))return [3,f$0]} + return fail(0)} + var + Angle=[0,string_of_t$1,js$1,ml$1], + Js_of_ocaml_CSS= + [0, + [0, + string_of_name, + rgb_of_name, + hex_of_rgb, + rgb, + hsl, + string_of_t, + js, + ml, + js_t_of_js_string], + Length, + Angle]; + caml_register_global(1686,Js_of_ocaml_CSS,"Js_of_ocaml__CSS"); + function listen(opt,target,typ,cb) + {if(opt)var sth=opt[1],capture=sth;else var capture=0; + var _cu_=! ! capture; + return addEventListener + (target, + typ, + full_handler(function(n,e){return ! ! caml_call2(cb,n,e)}), + _cu_)} + var Js_of_ocaml_Dom_events=[0,_n_,listen,removeEventListener]; + caml_register_global + (1687,Js_of_ocaml_Dom_events,"Js_of_ocaml__Dom_events"); + var + t0="http://www.w3.org/2000/svg", + SVGError=[248,cst_Js_of_ocaml_Dom_svg_SVGErr,caml_fresh_oo_id(0)]; + function createElement$0(t2,name) + {var t1=caml_jsstring_of_string(name); + return t2.createElementNS("http://www.w3.org/2000/svg",t1)} + function unsafeCreateElement$0(doc,name){return createElement$0(doc,name)} + function createA$0(doc){return unsafeCreateElement$0(doc,cst_a$2)} + function createAltGlyph(doc) + {return unsafeCreateElement$0(doc,cst_altglyph)} + function createAltGlyphDef(doc) + {return unsafeCreateElement$0(doc,cst_altglyphdef)} + function createAltGlyphItem(doc) + {return unsafeCreateElement$0(doc,cst_altglyphitem)} + function createAnimate(doc){return unsafeCreateElement$0(doc,cst_animate)} + function createAnimateColor(doc) + {return unsafeCreateElement$0(doc,cst_animatecolor)} + function createAnimateMotion(doc) + {return unsafeCreateElement$0(doc,cst_animatemotion)} + function createAnimateTransform(doc) + {return unsafeCreateElement$0(doc,cst_animatetransform)} + function createCircle(doc){return unsafeCreateElement$0(doc,cst_circle)} + function createClipPath(doc) + {return unsafeCreateElement$0(doc,cst_clippath)} + function createCursor(doc){return unsafeCreateElement$0(doc,cst_cursor)} + function createDefs(doc){return unsafeCreateElement$0(doc,cst_defs)} + function createDesc(doc){return unsafeCreateElement$0(doc,cst_desc)} + function createEllipse(doc){return unsafeCreateElement$0(doc,cst_ellipse)} + function createFilter(doc){return unsafeCreateElement$0(doc,cst_filter)} + function createFont(doc){return unsafeCreateElement$0(doc,cst_font)} + function createFontFace(doc) + {return unsafeCreateElement$0(doc,cst_font_face)} + function createFontFaceFormat(doc) + {return unsafeCreateElement$0(doc,cst_font_face_format)} + function createFontFaceName(doc) + {return unsafeCreateElement$0(doc,cst_font_face_name)} + function createFontFaceSrc(doc) + {return unsafeCreateElement$0(doc,cst_font_face_src)} + function createFontFaceUri(doc) + {return unsafeCreateElement$0(doc,cst_font_face_uri)} + function createForeignObject(doc) + {return unsafeCreateElement$0(doc,cst_foreignObject)} + function createG(doc){return unsafeCreateElement$0(doc,cst_g$0)} + function createGlyph(doc){return unsafeCreateElement$0(doc,cst_glyph)} + function createGlyphRef(doc) + {return unsafeCreateElement$0(doc,cst_glyphref)} + function createhkern(doc){return unsafeCreateElement$0(doc,cst_hkern)} + function createImage(doc){return unsafeCreateElement$0(doc,cst_image)} + function createLineElement(doc) + {return unsafeCreateElement$0(doc,cst_line)} + function createLinearElement(doc) + {return unsafeCreateElement$0(doc,cst_lineargradient)} + function createMask(doc){return unsafeCreateElement$0(doc,cst_mask)} + function createMetaData(doc) + {return unsafeCreateElement$0(doc,cst_metadata)} + function createMissingGlyph(doc) + {return unsafeCreateElement$0(doc,cst_missing_glyph)} + function createMPath(doc){return unsafeCreateElement$0(doc,cst_mpath)} + function createPath(doc){return unsafeCreateElement$0(doc,cst_path)} + function createPattern(doc){return unsafeCreateElement$0(doc,cst_pattern)} + function createPolygon(doc){return unsafeCreateElement$0(doc,cst_polygon)} + function createPolyline(doc) + {return unsafeCreateElement$0(doc,cst_polyline)} + function createRadialgradient(doc) + {return unsafeCreateElement$0(doc,cst_radialgradient)} + function createRect(doc){return unsafeCreateElement$0(doc,cst_rect)} + function createScript$0(doc) + {return unsafeCreateElement$0(doc,cst_script$2)} + function createSet(doc){return unsafeCreateElement$0(doc,cst_set)} + function createStop(doc){return unsafeCreateElement$0(doc,cst_stop)} + function createStyle$0(doc){return unsafeCreateElement$0(doc,cst_style$2)} + function createSvg(doc){return unsafeCreateElement$0(doc,cst_svg)} + function createSwitch(doc){return unsafeCreateElement$0(doc,cst_switch)} + function createSymbol(doc){return unsafeCreateElement$0(doc,cst_symbol)} + function createTextElement(doc) + {return unsafeCreateElement$0(doc,cst_text$0)} + function createTextpath(doc) + {return unsafeCreateElement$0(doc,cst_textpath)} + function createTitle$0(doc){return unsafeCreateElement$0(doc,cst_title$2)} + function createTref(doc){return unsafeCreateElement$0(doc,cst_tref)} + function createTspan(doc){return unsafeCreateElement$0(doc,cst_tspan)} + function createUse(doc){return unsafeCreateElement$0(doc,cst_use)} + function createView(doc){return unsafeCreateElement$0(doc,cst_view)} + function createvkern(doc){return unsafeCreateElement$0(doc,cst_vkern)} + var svg_element=Unsafe[1].SVGElement,document$0=Unsafe[1].document; + function getElementById$0(id) + {function _cr_(e){if(e instanceof svg_element)return e;throw Stdlib[8]} + function _cs_(param){throw Stdlib[8]} + var + t6=caml_jsstring_of_string(id), + t7=Unsafe[1].document, + _ct_=t7.getElementById(t6); + return caml_call3(Opt[7],_ct_,_cs_,_cr_)} + function element$2(e){return e instanceof svg_element?e:no_handler} + function unsafeCoerce$0(e,tag) + {var t9=e.tagName,_cq_=caml_jsstring_of_string(tag); + return t9.toLowerCase() === _cq_?e:no_handler} + function a$0(e){return unsafeCoerce$0(e,cst_a$3)} + function altGlyph(e){return unsafeCoerce$0(e,cst_altglyph$0)} + function altGlyphDef(e){return unsafeCoerce$0(e,cst_altglyphdef$0)} + function altGlyphItem(e){return unsafeCoerce$0(e,cst_altglyphitem$0)} + function animate(e){return unsafeCoerce$0(e,cst_animate$0)} + function animateColor(e){return unsafeCoerce$0(e,cst_animatecolor$0)} + function animateMotion(e){return unsafeCoerce$0(e,cst_animatemotion$0)} + function animateTransform(e) + {return unsafeCoerce$0(e,cst_animatetransform$0)} + function circle(e){return unsafeCoerce$0(e,cst_circle$0)} + function clipPath(e){return unsafeCoerce$0(e,cst_clippath$0)} + function cursor(e){return unsafeCoerce$0(e,cst_cursor$0)} + function defs(e){return unsafeCoerce$0(e,cst_defs$0)} + function desc(e){return unsafeCoerce$0(e,cst_desc$0)} + function ellipse(e){return unsafeCoerce$0(e,cst_ellipse$0)} + function filter(e){return unsafeCoerce$0(e,cst_filter$0)} + function font(e){return unsafeCoerce$0(e,cst_font$0)} + function fontFace(e){return unsafeCoerce$0(e,cst_font_face$0)} + function fontFaceFormat(e) + {return unsafeCoerce$0(e,cst_font_face_format$0)} + function fontFaceName(e){return unsafeCoerce$0(e,cst_font_face_name$0)} + function fontFaceSrc(e){return unsafeCoerce$0(e,cst_font_face_src$0)} + function fontFaceUri(e){return unsafeCoerce$0(e,cst_font_face_uri$0)} + function foreignObject(e){return unsafeCoerce$0(e,cst_foreignobject)} + function g(e){return unsafeCoerce$0(e,cst_g$1)} + function glyph(e){return unsafeCoerce$0(e,cst_glyph$0)} + function glyphRef(e){return unsafeCoerce$0(e,cst_glyphref$0)} + function hkern(e){return unsafeCoerce$0(e,cst_hkern$0)} + function image(e){return unsafeCoerce$0(e,cst_image$0)} + function lineElement(e){return unsafeCoerce$0(e,cst_line$0)} + function linearElement(e){return unsafeCoerce$0(e,cst_lineargradient$0)} + function mask(e){return unsafeCoerce$0(e,cst_mask$0)} + function metaData(e){return unsafeCoerce$0(e,cst_metadata$0)} + function missingGlyph(e){return unsafeCoerce$0(e,cst_missing_glyph$0)} + function mPath(e){return unsafeCoerce$0(e,cst_mpath$0)} + function path$0(e){return unsafeCoerce$0(e,cst_path$0)} + function pattern(e){return unsafeCoerce$0(e,cst_pattern$0)} + function polygon(e){return unsafeCoerce$0(e,cst_polygon$0)} + function polyline(e){return unsafeCoerce$0(e,cst_polyline$0)} + function radialgradient(e){return unsafeCoerce$0(e,cst_radialgradient$0)} + function rect(e){return unsafeCoerce$0(e,cst_rect$0)} + function script$0(e){return unsafeCoerce$0(e,cst_script$3)} + function set$1(e){return unsafeCoerce$0(e,cst_set$0)} + function stop(e){return unsafeCoerce$0(e,cst_stop$0)} + function style$0(e){return unsafeCoerce$0(e,cst_style$3)} + function svg(e){return unsafeCoerce$0(e,cst_svg$0)} + function switch$0(e){return unsafeCoerce$0(e,cst_switch$0)} + function symbol$12(e){return unsafeCoerce$0(e,cst_symbol$0)} + function textElement(e){return unsafeCoerce$0(e,cst_text$1)} + function textpath(e){return unsafeCoerce$0(e,cst_textpath$0)} + function title$0(e){return unsafeCoerce$0(e,cst_title$3)} + function tref(e){return unsafeCoerce$0(e,cst_tref$0)} + function tspan(e){return unsafeCoerce$0(e,cst_tspan$0)} + function use(e){return unsafeCoerce$0(e,cst_use$0)} + function view(e){return unsafeCoerce$0(e,cst_view$0)} + function vkern(e){return unsafeCoerce$0(e,cst_vkern$0)} + var + Js_of_ocaml_Dom_svg= + [0, + t0, + SVGError, + createElement$0, + createA$0, + createAltGlyph, + createAltGlyphDef, + createAltGlyphItem, + createAnimate, + createAnimateColor, + createAnimateMotion, + createAnimateTransform, + createCircle, + createClipPath, + createCursor, + createDefs, + createDesc, + createEllipse, + createFilter, + createFont, + createFontFace, + createFontFaceFormat, + createFontFaceName, + createFontFaceSrc, + createFontFaceUri, + createForeignObject, + createG, + createGlyph, + createGlyphRef, + createhkern, + createImage, + createLineElement, + createLinearElement, + createMask, + createMetaData, + createMissingGlyph, + createMPath, + createPath, + createPattern, + createPolygon, + createPolyline, + createRadialgradient, + createRect, + createScript$0, + createSet, + createStop, + createStyle$0, + createSvg, + createSwitch, + createSymbol, + createTextElement, + createTextpath, + createTitle$0, + createTref, + createTspan, + createUse, + createView, + createvkern, + svg_element, + document$0, + getElementById$0, + [0, + element$2, + a$0, + altGlyph, + altGlyphDef, + altGlyphItem, + animate, + animateColor, + animateMotion, + animateTransform, + circle, + clipPath, + cursor, + defs, + desc, + ellipse, + filter, + font, + fontFace, + fontFaceFormat, + fontFaceName, + fontFaceSrc, + fontFaceUri, + foreignObject, + g, + glyph, + glyphRef, + hkern, + image, + lineElement, + linearElement, + mask, + metaData, + missingGlyph, + mPath, + path$0, + pattern, + polygon, + polyline, + radialgradient, + rect, + script$0, + set$1, + stop, + style$0, + svg, + switch$0, + symbol$12, + textElement, + textpath, + title$0, + tref, + tspan, + use, + view, + vkern]]; + caml_register_global(1688,Js_of_ocaml_Dom_svg,"Js_of_ocaml__Dom_svg"); + function withCredentials(b) + {var t1={},t0=! ! b;t1.withCredentials = t0;return t1} + var + eventSource=Unsafe[1].EventSource, + eventSource_options=Unsafe[1].EventSource, + Js_of_ocaml_EventSource= + [0,withCredentials,eventSource,eventSource_options,addEventListener]; + caml_register_global + (1689,Js_of_ocaml_EventSource,"Js_of_ocaml__EventSource"); + var + console=runtime.caml_js_get_console(0), + Js_of_ocaml_Firebug=[0,console]; + caml_register_global(1690,Js_of_ocaml_Firebug,"Js_of_ocaml__Firebug"); + function empty_position_options(param){return {}} + var + t1$0=Unsafe[1].navigator, + geolocation=caml_call1(Optdef[5],t1$0)?t1$0.geolocation:t1$0; + function is_supported$3(param){return caml_call1(Optdef[5],geolocation)} + var + Js_of_ocaml_Geolocation= + [0,empty_position_options,geolocation,is_supported$3]; + caml_register_global + (1691,Js_of_ocaml_Geolocation,"Js_of_ocaml__Geolocation"); + function empty_intersection_observer_op(param){return {}} + var intersectionObserver_unsafe=Unsafe[1].IntersectionObserver; + function is_supported$4(param) + {return caml_call1(Optdef[5],intersectionObserver_unsafe)} + var + Js_of_ocaml_IntersectionObserv= + [0, + empty_intersection_observer_op, + is_supported$4, + intersectionObserver_unsafe]; + caml_register_global + (1692,Js_of_ocaml_IntersectionObserv,"Js_of_ocaml__IntersectionObserver"); + function object_options(param){return {"localeMatcher":"best fit"}} + function options(param) + {return {"localeMatcher":"best fit", + "usage":"sort", + "sensitivity":"variant", + "ignorePunctuation":t4, + "numeric":t4, + "caseFirst":"false"}} + var Collator=[0,object_options,options]; + function options$0(param) + {return {"dateStyle":t39, + "timeStyle":t39, + "calendar":t39, + "dayPeriod":t39, + "numberingSystem":t39, + "localeMatcher":"best fit", + "timeZone":t39, + "hour12":t39, + "hourCycle":t39, + "formatMatcher":"best fit", + "weekday":t39, + "era":t39, + "year":t39, + "month":t39, + "day":t39, + "hour":t39, + "minute":t39, + "second":t39, + "fractionalSecondDigits":t39, + "timeZoneName":t39}} + var DateTimeFormat=[0,object_options,options$0]; + function options$1(param) + {return {"compactDisplay":t39, + "currency":t39, + "currencyDisplay":t39, + "currencySign":t39, + "localeMatcher":"best fit", + "notation":t39, + "numberingSystem":t39, + "signDisplay":t39, + "style":"decimal", + "unit":t39, + "unitDisplay":t39, + "useGrouping":t38, + "roundingMode":t39, + "roundingPriority":t39, + "roundingIncrement":t39, + "trailingZeroDisplay":t39, + "minimumIntegerDigits":t39, + "minimumFractionDigits":t39, + "maximumFractionDigits":t39, + "minimumSignificantDigits":t39, + "maximumSignificantDigits":t39}} + var NumberFormat=[0,object_options,options$1]; + function options$2(param) + {return {"localeMatcher":"best fit","type":"cardinal"}} + var + PluralRules=[0,object_options,options$2], + intl=Unsafe[1].Intl, + t52$0=Unsafe[1].Intl, + collator_constr=t52$0.Collator, + t54=Unsafe[1].Intl, + dateTimeFormat_constr=t54.DateTimeFormat, + t56=Unsafe[1].Intl, + numberFormat_constr=t56.NumberFormat, + t58=Unsafe[1].Intl, + pluralRules_constr=t58.PluralRules; + function is_supported$5(param){return caml_call1(Optdef[5],intl)} + var + Js_of_ocaml_Intl= + [0, + Collator, + DateTimeFormat, + NumberFormat, + PluralRules, + intl, + collator_constr, + dateTimeFormat_constr, + numberFormat_constr, + pluralRules_constr, + is_supported$5]; + caml_register_global(1693,Js_of_ocaml_Intl,"Js_of_ocaml__Intl"); + var Js_of_ocaml$0=[0]; + caml_register_global(1694,Js_of_ocaml$0,"Js_of_ocaml"); + return} (globalThis)); -//# 1 "../../runtimes/jsoo/.runtime_jsoo.objs/jsoo/default/runtime_jsoo.cma.js" +//# 1 "../../runtimes/jsoo/.runtime_jsoo.objs/runtime_jsoo.cma.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - -//# 16 "../../runtimes/jsoo/.runtime_jsoo.objs/jsoo/default/runtime_jsoo.cma.js" (function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_int_of_string = runtime.caml_int_of_string, - caml_js_from_array = runtime.caml_js_from_array, - caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback, - caml_jsstring_of_string = runtime.caml_jsstring_of_string, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - function caml_call7(f, a0, a1, a2, a3, a4, a5, a6){ - return (f.l >= 0 ? f.l : f.l = f.length) == 7 - ? f(a0, a1, a2, a3, a4, a5, a6) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6]); - } - var - global_data = runtime.caml_get_global_data(), - partial = [4, 0, 0, 0, [12, 46, 0]]; - global_data.CamlinternalOO; - var - Stdlib_Format = global_data.Stdlib__Format, - Js_of_ocaml_Js = global_data.Js_of_ocaml__Js, - Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, - Yojson = global_data.Yojson, - Stdlib_List = global_data.Stdlib__List, - Stdlib_Array = global_data.Stdlib__Array, - Stdlib_String = global_data.Stdlib__String, - Stdlib = global_data.Stdlib, - _a_ = + (globalThis) + {"use strict"; + var + runtime=globalThis.jsoo_runtime, + caml_int_of_string=runtime.caml_int_of_string, + caml_js_from_array=runtime.caml_js_from_array, + caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback, + caml_jsstring_of_string=runtime.caml_jsstring_of_string, + caml_register_global=runtime.caml_register_global, + caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, + caml_wrap_exception=runtime.caml_wrap_exception; + function caml_call1(f,a0) + {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} + function caml_call2(f,a0,a1) + {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} + function caml_call3(f,a0,a1,a2) + {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} + function caml_call5(f,a0,a1,a2,a3,a4) + {return f.length == 5 + ?f(a0,a1,a2,a3,a4) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} + function caml_call7(f,a0,a1,a2,a3,a4,a5,a6) + {return f.length == 7 + ?f(a0,a1,a2,a3,a4,a5,a6) + :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6])} + var + global_data=runtime.caml_get_global_data(), + partial=[4,0,0,0,[12,46,0]], + cst_No_rule_applies_in_the_giv= + caml_string_of_jsbytes + ("No rule applies in the given context to give a value to the variable"), + cst_A_conflict_happened_betwee= + caml_string_of_jsbytes + ("A conflict happened between two rules giving a value to the variable"), + cst_A_failure_happened_in_the_= + caml_string_of_jsbytes("A failure happened in the assertion"), + cst_Begin_call=caml_string_of_jsbytes("Begin call"), + cst_End_call=caml_string_of_jsbytes("End call"), + cst_Variable_definition=caml_string_of_jsbytes("Variable definition"), + cst_Decision_taken=caml_string_of_jsbytes("Decision taken"), + cst_date_of_jsoo_invalid_date= + caml_string_of_jsbytes("date_of_jsoo: invalid date"); + global_data.CamlinternalOO; + var + Stdlib_Format=global_data.Stdlib__Format, + Js_of_ocaml_Js=global_data.Js_of_ocaml__Js, + Runtime_ocaml_Runtime=global_data.Runtime_ocaml__Runtime, + Yojson=global_data.Yojson, + Stdlib_List=global_data.Stdlib__List, + Stdlib_Array=global_data.Stdlib__Array, + Stdlib_String=global_data.Stdlib__String, + Stdlib=global_data.Stdlib, + Runtime_jsoo=[0]; + caml_register_global(52,Runtime_jsoo,"Runtime_jsoo"); + var + _a_= [0, [2, 0, [11, - " in file ", + caml_string_of_jsbytes(" in file "), [2, 0, [11, - ", position ", + caml_string_of_jsbytes(", position "), [4, 0, 0, 0, [12, 58, - [4, 0, 0, 0, [11, "--", [4, 0, 0, 0, [12, 58, partial]]]]]]]]]], - "%s in file %s, position %d:%d--%d:%d."], - cst_No_rule_applies_in_the_giv = - "No rule applies in the given context to give a value to the variable", - cst_A_conflict_happened_betwee = - "A conflict happened between two rules giving a value to the variable", - cst_A_failure_happened_in_the_ = "A failure happened in the assertion", - cst_Begin_call = "Begin call", - cst_End_call = "End call", - cst_Variable_definition = "Variable definition", - cst_Decision_taken = "Decision taken", - cst_date_of_jsoo_invalid_date = "date_of_jsoo: invalid date"; - function duration_of_jsoo(t2){ - return caml_call3(Runtime_ocaml_Runtime[60], t2.years, t2.months, t2.days); - } - function duration_to_jsoo(d){ - var - match = caml_call1(Runtime_ocaml_Runtime[61], d), - days = match[3], - months = match[2], - years = match[1]; - return {years: years, months: months, days: days}; - } - function date_of_jsoo(d){ - var d$0 = runtime.caml_string_of_jsstring(d); - if(caml_call2(Stdlib_String[14], d$0, 84)) - var - _u_ = caml_call1(caml_call1(Stdlib_String[16], 84), d$0), - d$1 = caml_call1(Stdlib_List[5], _u_); - else - var d$1 = d$0; - var match = caml_call2(Stdlib_String[16], 45, d$1); - if(match){ - var _v_ = match[2]; - if(_v_){ - var _w_ = _v_[2]; - if(_w_ && ! _w_[2]){ + [4, + 0, + 0, + 0, + [11,caml_string_of_jsbytes("--"),[4,0,0,0,[12,58,partial]]]]]]]]]], + caml_string_of_jsbytes("%s in file %s, position %d:%d--%d:%d.")]; + function duration_of_jsoo(d) + {return caml_call3(Runtime_ocaml_Runtime[60],d.years,d.months,d.days)} + function duration_to_jsoo(d) + {var + match=caml_call1(Runtime_ocaml_Runtime[61],d), + days=match[3], + months=match[2], + years=match[1]; + return {"years":years,"months":months,"days":days}} + function date_of_jsoo(d) + {var d$0=runtime.caml_string_of_jsstring(d); + if(caml_call2(Stdlib_String[14],d$0,84)) var - day = _w_[1], - month = _v_[1], - year = match[1], - _x_ = caml_int_of_string(day), - _y_ = caml_int_of_string(month), - _z_ = caml_int_of_string(year); - return caml_call3(Runtime_ocaml_Runtime[57], _z_, _y_, _x_); - } - } - } - return caml_call1(Stdlib[2], cst_date_of_jsoo_invalid_date); - } - function date_to_jsoo(d){ - return caml_jsstring_of_string(caml_call1(Runtime_ocaml_Runtime[56], d)); - } - function t19(param){ - return caml_js_wrap_meth_callback - (function(param){ - var _i_ = caml_call1(Runtime_ocaml_Runtime[23], 0); - function _j_(evt){ - if(3 === evt[0]) - var - pos = evt[1], - _s_ = - caml_call2(Stdlib_List[19], caml_jsstring_of_string, pos[6]), - _t_ = caml_js_from_array(caml_call1(Stdlib_Array[12], _s_)), - _l_ = - caml_call1 - (Js_of_ocaml_Js[4], - {fileName: caml_jsstring_of_string(pos[1]), - startLine: pos[2], - endLine: pos[4], - startColumn: pos[3], - endColumn: pos[5], - lawHeadings: _t_}); - else - var _l_ = Js_of_ocaml_Js[3]; - if(2 === evt[0]) - var v = evt[2], _m_ = v; - else - var _m_ = caml_call1(Runtime_ocaml_Runtime[10], 0); - var - _n_ = caml_call1(Runtime_ocaml_Runtime[9], _m_), - _o_ = - caml_jsstring_of_string - (caml_call5(Yojson[11][5], 0, 0, 0, 0, _n_)); - if(3 === evt[0]) - var _p_ = 0; - else - var - info = evt[1], - _p_ = - caml_call2(Stdlib_List[19], caml_jsstring_of_string, info); - var - _q_ = caml_js_from_array(caml_call1(Stdlib_Array[12], _p_)); - switch(evt[0]){ - case 0: - var _r_ = cst_Begin_call; break; - case 1: - var _r_ = cst_End_call; break; - case 2: - var _r_ = cst_Variable_definition; break; - default: var _r_ = cst_Decision_taken; - } - return {eventType: caml_jsstring_of_string(_r_), - information: _q_, - loggedValueJson: _o_, - sourcePosition: _l_}; - } - var _k_ = caml_call2(Stdlib_List[19], _j_, _i_); - return caml_js_from_array(caml_call1(Stdlib_Array[12], _k_)); - }); - } - function t18(param){ - return caml_js_wrap_meth_callback - (function(param){ - var - _d_ = caml_call1(Runtime_ocaml_Runtime[23], 0), - _e_ = caml_call1(Runtime_ocaml_Runtime[24][1], _d_); - function _f_(event){ - var _h_ = caml_call1(Runtime_ocaml_Runtime[20], event); - return {data: - caml_jsstring_of_string - (caml_call5(Yojson[11][5], 0, 0, 0, 0, _h_))}; - } - var _g_ = caml_call1(caml_call1(Stdlib_List[19], _f_), _e_); - return caml_js_from_array(caml_call1(Stdlib_Array[12], _g_)); - }); - } - function t17(param){ - return caml_js_wrap_meth_callback(Runtime_ocaml_Runtime[25]); - } - var - event_manager = - {resetLog: caml_js_wrap_meth_callback(t17), - retrieveEvents: caml_js_wrap_meth_callback(t18), - retrieveRawEvents: caml_js_wrap_meth_callback(t19)}; - function execute_or_throw_error(f){ - function throw_error(descr, pos){ - var - msg = - caml_jsstring_of_string - (caml_call7 - (Stdlib_Format[133], - _a_, - descr, - pos[1], - pos[2], - pos[3], - pos[4], - pos[5])); - function t23(param){return msg;} - var - t22 = Js_of_ocaml_Js[6][1], - _c_ = - caml_call1 - (Js_of_ocaml_Js[37][9], - {name: "NoValueProvided", - message: msg, - stack: t22, - toString: caml_js_wrap_meth_callback(t23)}); - return caml_call1(Js_of_ocaml_Js[37][5], _c_); - } - try{var _b_ = caml_call1(f, 0); return _b_;} - catch(exn$0){ - var exn = caml_wrap_exception(exn$0); - if(exn[1] === Runtime_ocaml_Runtime[8]){ - var pos = exn[2]; - return throw_error(cst_No_rule_applies_in_the_giv, pos); - } - if(exn[1] === Runtime_ocaml_Runtime[4]){ - var pos$0 = exn[2]; - return throw_error(cst_A_conflict_happened_betwee, pos$0); - } - if(exn[1] !== Runtime_ocaml_Runtime[3]) - throw caml_maybe_attach_backtrace(exn, 0); - var pos$1 = exn[2]; - return throw_error(cst_A_failure_happened_in_the_, pos$1); - } - } - var - Runtime_jsoo_Runtime = + _r_=caml_call1(caml_call1(Stdlib_String[16],84),d$0), + d$1=caml_call1(Stdlib_List[5],_r_); + else + var d$1=d$0; + var match=caml_call2(Stdlib_String[16],45,d$1); + if(match) + {var _s_=match[2]; + if(_s_) + {var _t_=_s_[2]; + if(_t_ && ! _t_[2]) + {var + day=_t_[1], + month=_s_[1], + year=match[1], + _u_=caml_int_of_string(day), + _v_=caml_int_of_string(month), + _w_=caml_int_of_string(year); + return caml_call3(Runtime_ocaml_Runtime[57],_w_,_v_,_u_)}}} + return caml_call1(Stdlib[2],cst_date_of_jsoo_invalid_date)} + function date_to_jsoo(d) + {return caml_jsstring_of_string(caml_call1(Runtime_ocaml_Runtime[56],d))} + function t19(param) + {return caml_js_wrap_meth_callback + (function(param) + {var _i_=caml_call1(Runtime_ocaml_Runtime[23],0); + function _j_(evt) + {if(3 === evt[0]) + var + pos=evt[1], + _q_= + caml_call2(Stdlib_List[19],caml_jsstring_of_string,pos[6]), + t12=caml_js_from_array(caml_call1(Stdlib_Array[12],_q_)), + t7=caml_jsstring_of_string(pos[1]), + _l_= + caml_call1 + (Js_of_ocaml_Js[4], + {"fileName":t7, + "startLine":pos[2], + "endLine":pos[4], + "startColumn":pos[3], + "endColumn":pos[5], + "lawHeadings":t12}); + else + var _l_=Js_of_ocaml_Js[3]; + if(2 === evt[0]) + var v=evt[2],_m_=v; + else + var _m_=caml_call1(Runtime_ocaml_Runtime[10],0); + var + _n_=caml_call1(Runtime_ocaml_Runtime[9],_m_), + t15= + caml_jsstring_of_string + (caml_call5(Yojson[11][5],0,0,0,0,_n_)); + if(3 === evt[0]) + var _o_=0; + else + var + info=evt[1], + _o_=caml_call2(Stdlib_List[19],caml_jsstring_of_string,info); + var + t14= + caml_js_from_array(caml_call1(Stdlib_Array[12],_o_)); + switch(evt[0]) + {case 0:var _p_=cst_Begin_call;break; + case 1:var _p_=cst_End_call;break; + case 2:var _p_=cst_Variable_definition;break; + default:var _p_=cst_Decision_taken} + var t13=caml_jsstring_of_string(_p_); + return {"eventType":t13, + "information":t14, + "loggedValueJson":t15, + "sourcePosition":_l_}} + var _k_=caml_call2(Stdlib_List[19],_j_,_i_); + return caml_js_from_array(caml_call1(Stdlib_Array[12],_k_))})} + function t18(param) + {return caml_js_wrap_meth_callback + (function(param) + {var + _d_=caml_call1(Runtime_ocaml_Runtime[23],0), + _e_=caml_call1(Runtime_ocaml_Runtime[24][1],_d_); + function _f_(event) + {var + _h_=caml_call1(Runtime_ocaml_Runtime[20],event), + t6= + caml_jsstring_of_string + (caml_call5(Yojson[11][5],0,0,0,0,_h_)); + return {"data":t6}} + var _g_=caml_call1(caml_call1(Stdlib_List[19],_f_),_e_); + return caml_js_from_array(caml_call1(Stdlib_Array[12],_g_))})} + function t17(param) + {return caml_js_wrap_meth_callback(Runtime_ocaml_Runtime[25])} + var + event_manager= + {"resetLog":caml_js_wrap_meth_callback(t17), + "retrieveEvents":caml_js_wrap_meth_callback(t18), + "retrieveRawEvents":caml_js_wrap_meth_callback(t19)}; + function execute_or_throw_error(f) + {function throw_error(descr,pos) + {var + t21= + caml_jsstring_of_string + (caml_call7 + (Stdlib_Format[133],_a_,descr,pos[1],pos[2],pos[3],pos[4],pos[5])); + function t23(param){return t21} + var + _c_= + caml_call1 + (Js_of_ocaml_Js[37][9], + {"name":"NoValueProvided", + "message":t21, + "stack":Js_of_ocaml_Js[6][1], + "toString":caml_js_wrap_meth_callback(t23)}); + return caml_call1(Js_of_ocaml_Js[37][5],_c_)} + try + {var _b_=caml_call1(f,0);return _b_} + catch(exn) + {exn = caml_wrap_exception(exn); + if(exn[1] === Runtime_ocaml_Runtime[8]) + {var pos=exn[2]; + return throw_error(cst_No_rule_applies_in_the_giv,pos)} + if(exn[1] === Runtime_ocaml_Runtime[4]) + {var pos$0=exn[2]; + return throw_error(cst_A_conflict_happened_betwee,pos$0)} + if(exn[1] !== Runtime_ocaml_Runtime[3])throw exn; + var pos$1=exn[2]; + return throw_error(cst_A_failure_happened_in_the_,pos$1)}} + var + Runtime_jsoo_Runtime= [0, event_manager, duration_of_jsoo, @@ -45538,11263 +50197,54667 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ date_of_jsoo, date_to_jsoo, execute_or_throw_error]; - runtime.caml_register_global - (61, Runtime_jsoo_Runtime, "Runtime_jsoo__Runtime"); - return; - } + caml_register_global(62,Runtime_jsoo_Runtime,"Runtime_jsoo__Runtime"); + return} (globalThis)); -//# 1 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" +//# 1 "law_source/.law_source.objs/law_source.cma.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 - -//# 16 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" (function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_Arr_t_du_14_d_cembre_2020_ = - "Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations", - cst_Arr_t_du_19_avril_2022_rel = - "Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", - cst_Arr_t_du_29_juillet_2022_r = - "Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", - cst_Chapitre_5_Prestations_fam = - "Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es", - cst_Circulaire_interminist_rie = - "Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte", - cst_Code_de_la_s_curit_sociale = - "Code de la s\xc3\xa9curit\xc3\xa9 sociale", - cst_Dispositions_sp_ciales_rel = - "Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte", - cst_D_cret_n_2018_1173_du_19_d = - "D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance", - cst_D_cret_n_2019_1387_du_18_d = - "D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance", - cst_D_cret_n_2020_1598_du_16_d = - "D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance", - cst_D_cret_n_2021_1741_du_22_d = - "D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance", - cst_D_cret_n_2022_1608_du_22_d = - "D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance", - cst_D_cret_n_2002_423_du_29_ma = - "D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte", - cst_EnfantLePlus_g = "EnfantLePlus\xc3\x82g\xc3\xa9", - cst_Instruction_interministeri = - "Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte", - cst_Instruction_interminist_ri = - "Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte", - cst_Livre_5_Prestations_famili = - "Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es", - cst_Livre_7_R_gimes_divers_Dis = - "Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses", - cst_Partie_l_gislative = "Partie l\xc3\xa9gislative", - cst_Partie_r_glementaire_D_cre$0 = - "Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat", - cst_Partie_r_glementaire_D_cre = - "Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples", - cst_R_gles_diverses = "R\xc3\xa8gles diverses", - cst_Titre_1_Champ_d_applicatio = - "Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", - cst_Titre_2_Prestations_g_n_ra = - "Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien", - cst_Titre_5_Dispositions_parti = - "Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin", - cst_Titre_5_D_partements_d_out = - "Titre 5 : D\xc3\xa9partements d'outre-mer", - cst_V_rification_geInf_rieurOu = - "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80", - cst_V_rification_geSup_rieur = - "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80", - cst_ann_es_in$1 = "ann\xc3\xa9es_in", - cst_compl_ment_d_gressif = "compl\xc3\xa9ment_d\xc3\xa9gressif", - cst_conditions_hors_ge$0 = "conditions_hors_\xc3\xa2ge", - cst_enfant_le_plus_g = "enfant_le_plus_\xc3\xa2g\xc3\xa9", - cst_est_enfant_le_plus_g = "est_enfant_le_plus_\xc3\xa2g\xc3\xa9", - cst_est_inf_rieur_ou_gal$0 = "est_inf\xc3\xa9rieur_ou_\xc3\xa9gal", - cst_est_sup_rieur$0 = "est_sup\xc3\xa9rieur", - cst_i_montant_vers$0 = "i_montant_vers\xc3\xa9", - cst_le_plus_g$0 = "le_plus_\xc3\xa2g\xc3\xa9", - cst_montant_avec_garde_altern_ = - "montant_avec_garde_altern\xc3\xa9e_majoration", - cst_montant_initial_m_tropole_ = - "montant_initial_m\xc3\xa9tropole_majoration", - cst_montant_vers$0 = "montant_vers\xc3\xa9", - cst_r_gime_outre_mer_l751_1$0 = "r\xc3\xa9gime_outre_mer_l751_1", - cst_r_sidence_in$2 = "r\xc3\xa9sidence_in", - cst_pilogue = "\xc3\x89pilogue", - cst_ge_l512_3_2$0 = "\xc3\xa2ge_l512_3_2", - cst_ge_minimum_alin_a_1_l521_3$0 = - "\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3", - cst_0$67 = "0", - cst_0$68 = "0.", - cst_0_0463$1 = "0.0463", - cst_0_0588$1 = "0.0588", - cst_0_08$1 = "0.08", - cst_0_16$2 = "0.16", - cst_0_32$1 = "0.32", - cst_0_5$1 = "0.5", - cst_0_55$1 = "0.55", - cst_1$29 = "1", - cst_1$28 = "1.", - cst_12$11 = "12.", - cst_169$1 = "169.", - cst_2$17 = "2", - cst_3$3 = "3", - cst_559500$1 = "559500", - cst_562800$1 = "562800", - cst_568400$1 = "568400", - cst_577500$1 = "577500", - cst_582700$1 = "582700", - cst_AllocationFamilialesAvril2 = "AllocationFamilialesAvril2008", - cst_Allocations_familiales = "Allocations familiales", - cst_AllocationsFamiliales$0 = "AllocationsFamiliales", - cst_Annexe = "Annexe", - cst_Article_1 = "Article 1", - cst_Article_2 = "Article 2", - cst_Article_7 = "Article 7", - cst_Article_D521_1 = "Article D521-1", - cst_Article_D521_2 = "Article D521-2", - cst_Article_D521_3 = "Article D521-3", - cst_Article_D755_5 = "Article D755-5", - cst_Article_L512_3 = "Article L512-3", - cst_Article_L521_1 = "Article L521-1", - cst_Article_L521_2 = "Article L521-2", - cst_Article_L521_3 = "Article L521-3", - cst_Article_L755_12 = "Article L755-12", - cst_Article_R512_2 = "Article R512-2", - cst_Article_R521_1 = "Article R521-1", - cst_Article_R521_3 = "Article R521-3", - cst_BaseMensuelleAllocationsFa = "BaseMensuelleAllocationsFamiliales", - cst_Champs_d_applications = "Champs d'applications", - cst_Chapitre_1er_Allocations_f = "Chapitre 1er : Allocations familiales", - cst_Chapitre_2_Champ_d_applica = "Chapitre 2 : Champ d'application", - cst_Chapitre_2_Champ_d_applica$0 = "Chapitre 2 : Champ d'application.", - cst_Interface_du_programme = "Interface du programme", - cst_InterfaceAllocationsFamili = "InterfaceAllocationsFamiliales", - cst_Montant_de_la_base_mensuel = - "Montant de la base mensuelle des allocations familiales", - cst_Montant_des_plafonds_de_re = "Montant des plafonds de ressources", - cst_Montant_du_salaire_minimum = - "Montant du salaire minimum de croissance", - cst_Prestations_familiales = "Prestations familiales", - cst_PrestationsFamiliales = "PrestationsFamiliales", - cst_Prologue = "Prologue", - cst_Smic = "Smic", - cst_allocations_familiales = "allocations_familiales", - cst_bmaf = "bmaf", - cst_brut_horaire$0 = "brut_horaire", - cst_date_courante_in$5 = "date_courante_in", - cst_date_naissance_in$1 = "date_naissance_in", - cst_droit_ouvert$0 = "droit_ouvert", - cst_droit_ouvert_forfaitaire = "droit_ouvert_forfaitaire", - cst_droit_ouvert_majoration = "droit_ouvert_majoration", - cst_examples_allocations_famil$5 = - "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr", - cst_examples_allocations_famil$7 = - "examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr", - cst_examples_allocations_famil$6 = - "examples/allocations_familiales/../smic/smic.catala_fr", - cst_examples_allocations_famil$3 = - "examples/allocations_familiales/decrets_divers.catala_fr", - cst_examples_allocations_famil = - "examples/allocations_familiales/epilogue.catala_fr", - cst_examples_allocations_famil$2 = - "examples/allocations_familiales/prologue.catala_fr", - cst_examples_allocations_famil$0 = - "examples/allocations_familiales/securite_sociale_D.catala_fr", - cst_examples_allocations_famil$4 = - "examples/allocations_familiales/securite_sociale_L.catala_fr", - cst_examples_allocations_famil$1 = - "examples/allocations_familiales/securite_sociale_R.catala_fr", - cst_input0 = "input0", - cst_montant$0 = "montant", - cst_montant_initial_majoration = "montant_initial_majoration", - cst_output = "output", - cst_prestations_familiales = "prestations_familiales", - cst_prise_en_compte = "prise_en_compte", - cst_smic = "smic", - cst_version_avril_2008 = "version_avril_2008", - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - var - global_data = runtime.caml_get_global_data(), - Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, - PriseEnCharge = [0], - _kl_ = + (globalThis) + {"use strict"; + var + runtime=globalThis.jsoo_runtime, + caml_js_from_array=runtime.caml_js_from_array, + caml_js_to_array=runtime.caml_js_to_array, + caml_js_wrap_callback=runtime.caml_js_wrap_callback, + caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback, + caml_register_global=runtime.caml_register_global, + caml_string_notequal=runtime.caml_string_notequal, + caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, + caml_string_of_jsstring=runtime.caml_string_of_jsstring, + caml_wrap_exception=runtime.caml_wrap_exception; + function caml_call1(f,a0) + {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} + function caml_call2(f,a0,a1) + {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} + function caml_call3(f,a0,a1,a2) + {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} + function caml_call4(f,a0,a1,a2,a3) + {return f.length == 4 + ?f(a0,a1,a2,a3) + :runtime.caml_call_gen(f,[a0,a1,a2,a3])} + var + global_data=runtime.caml_get_global_data(), + cst_0$66=caml_string_of_jsbytes("0"), + cst_0$65=caml_string_of_jsbytes("0"), + cst_0$63=caml_string_of_jsbytes("0"), + cst_0$64=caml_string_of_jsbytes("0"), + cst_0$62=caml_string_of_jsbytes("0"), + cst_1$27=caml_string_of_jsbytes("1."), + cst_0_5$0=caml_string_of_jsbytes("0.5"), + cst_0$61=caml_string_of_jsbytes("0."), + cst_12$10=caml_string_of_jsbytes("12."), + cst_12$8=caml_string_of_jsbytes("12."), + cst_1$26=caml_string_of_jsbytes("1."), + cst_12$9=caml_string_of_jsbytes("12."), + cst_12$7=caml_string_of_jsbytes("12."), + cst_12$5=caml_string_of_jsbytes("12."), + cst_1$25=caml_string_of_jsbytes("1."), + cst_12$6=caml_string_of_jsbytes("12."), + cst_0$60=caml_string_of_jsbytes("0"), + cst_1$24=caml_string_of_jsbytes("1"), + cst_0_0369=caml_string_of_jsbytes("0.0369"), + cst_1$23=caml_string_of_jsbytes("1"), + cst_0_0567=caml_string_of_jsbytes("0.0567"), + cst_1$22=caml_string_of_jsbytes("1"), + cst_0_16$1=caml_string_of_jsbytes("0.16"), + cst_0_08$0=caml_string_of_jsbytes("0.08"), + cst_0_04=caml_string_of_jsbytes("0.04"), + cst_0$59=caml_string_of_jsbytes("0"), + cst_0$57=caml_string_of_jsbytes("0."), + cst_0$58=caml_string_of_jsbytes("0."), + cst_1$21=caml_string_of_jsbytes("1"), + cst_0_232=caml_string_of_jsbytes("0.232"), + cst_0$56=caml_string_of_jsbytes("0"), + cst_1$20=caml_string_of_jsbytes("1"), + cst_0_2379=caml_string_of_jsbytes("0.2379"), + cst_0$55=caml_string_of_jsbytes("0"), + cst_1$19=caml_string_of_jsbytes("1"), + cst_0_2437=caml_string_of_jsbytes("0.2437"), + cst_0$54=caml_string_of_jsbytes("0"), + cst_1$18=caml_string_of_jsbytes("1"), + cst_0_2496=caml_string_of_jsbytes("0.2496"), + cst_0$53=caml_string_of_jsbytes("0"), + cst_1$17=caml_string_of_jsbytes("1"), + cst_0_2555=caml_string_of_jsbytes("0.2555"), + cst_0$52=caml_string_of_jsbytes("0"), + cst_1$16=caml_string_of_jsbytes("1"), + cst_0_2613=caml_string_of_jsbytes("0.2613"), + cst_0$51=caml_string_of_jsbytes("0"), + cst_1$15=caml_string_of_jsbytes("1"), + cst_0_2672=caml_string_of_jsbytes("0.2672"), + cst_0$50=caml_string_of_jsbytes("0"), + cst_1$14=caml_string_of_jsbytes("1"), + cst_0_2804=caml_string_of_jsbytes("0.2804"), + cst_0$49=caml_string_of_jsbytes("0"), + cst_1$13=caml_string_of_jsbytes("1"), + cst_0_2936=caml_string_of_jsbytes("0.2936"), + cst_0$48=caml_string_of_jsbytes("0"), + cst_1$12=caml_string_of_jsbytes("1"), + cst_0_3068=caml_string_of_jsbytes("0.3068"), + cst_0$47=caml_string_of_jsbytes("0"), + cst_1$11=caml_string_of_jsbytes("1"), + cst_0_32$0=caml_string_of_jsbytes("0.32"), + cst_0$46=caml_string_of_jsbytes("0"), + cst_1$10=caml_string_of_jsbytes("1"), + cst_0_32=caml_string_of_jsbytes("0.32"), + cst_0$45=caml_string_of_jsbytes("0"), + cst_1$9=caml_string_of_jsbytes("1"), + cst_0_16$0=caml_string_of_jsbytes("0.16"), + cst_0$44=caml_string_of_jsbytes("0"), + cst_1$8=caml_string_of_jsbytes("1"), + cst_0_08=caml_string_of_jsbytes("0.08"), + cst_0$43=caml_string_of_jsbytes("0"), + cst_2$15=caml_string_of_jsbytes("2"), + cst_2$16=caml_string_of_jsbytes("2"), + cst_0_41=caml_string_of_jsbytes("0.41"), + cst_0$42=caml_string_of_jsbytes("0"), + cst_2$13=caml_string_of_jsbytes("2"), + cst_2$14=caml_string_of_jsbytes("2"), + cst_0_205=caml_string_of_jsbytes("0.205"), + cst_0$41=caml_string_of_jsbytes("0"), + cst_2$11=caml_string_of_jsbytes("2"), + cst_2$12=caml_string_of_jsbytes("2"), + cst_0_1025=caml_string_of_jsbytes("0.1025"), + cst_0$40=caml_string_of_jsbytes("0"), + cst_0_20234=caml_string_of_jsbytes("0.20234"), + cst_0_10117=caml_string_of_jsbytes("0.10117"), + cst_0_05059=caml_string_of_jsbytes("0.05059"), + cst_12$4=caml_string_of_jsbytes("12."), + cst_12$2=caml_string_of_jsbytes("12."), + cst_1$7=caml_string_of_jsbytes("1."), + cst_12$3=caml_string_of_jsbytes("12."), + cst_12$1=caml_string_of_jsbytes("12."), + cst_12=caml_string_of_jsbytes("12."), + cst_1$6=caml_string_of_jsbytes("1."), + cst_12$0=caml_string_of_jsbytes("12."), + cst_0$39=caml_string_of_jsbytes("0"), + cst_1$5=caml_string_of_jsbytes("1"), + cst_1$4=caml_string_of_jsbytes("1"), + cst_2$10=caml_string_of_jsbytes("2"), + cst_0$37=caml_string_of_jsbytes("0"), + cst_0_145=caml_string_of_jsbytes("0.145"), + cst_0$38=caml_string_of_jsbytes("0"), + cst_0$35=caml_string_of_jsbytes("0"), + cst_0_1393=caml_string_of_jsbytes("0.1393"), + cst_0$36=caml_string_of_jsbytes("0"), + cst_0$33=caml_string_of_jsbytes("0"), + cst_0_1335=caml_string_of_jsbytes("0.1335"), + cst_0$34=caml_string_of_jsbytes("0"), + cst_0$31=caml_string_of_jsbytes("0"), + cst_0_1278=caml_string_of_jsbytes("0.1278"), + cst_0$32=caml_string_of_jsbytes("0"), + cst_0$29=caml_string_of_jsbytes("0"), + cst_0_122=caml_string_of_jsbytes("0.122"), + cst_0$30=caml_string_of_jsbytes("0"), + cst_0$27=caml_string_of_jsbytes("0"), + cst_0_1163=caml_string_of_jsbytes("0.1163"), + cst_0$28=caml_string_of_jsbytes("0"), + cst_0$25=caml_string_of_jsbytes("0"), + cst_0_1105=caml_string_of_jsbytes("0.1105"), + cst_0$26=caml_string_of_jsbytes("0"), + cst_0$23=caml_string_of_jsbytes("0"), + cst_0_0976=caml_string_of_jsbytes("0.0976"), + cst_0$24=caml_string_of_jsbytes("0"), + cst_0$21=caml_string_of_jsbytes("0"), + cst_0_0847=caml_string_of_jsbytes("0.0847"), + cst_0$22=caml_string_of_jsbytes("0"), + cst_0$19=caml_string_of_jsbytes("0"), + cst_0_0717=caml_string_of_jsbytes("0.0717"), + cst_0$20=caml_string_of_jsbytes("0"), + cst_0$17=caml_string_of_jsbytes("0"), + cst_5728=caml_string_of_jsbytes("5728"), + cst_0$18=caml_string_of_jsbytes("0"), + cst_0$15=caml_string_of_jsbytes("0"), + cst_0_0588$0=caml_string_of_jsbytes("0.0588"), + cst_0$16=caml_string_of_jsbytes("0"), + cst_1$3=caml_string_of_jsbytes("1"), + cst_0_0588=caml_string_of_jsbytes("0.0588"), + cst_0$14=caml_string_of_jsbytes("0"), + cst_1$2=caml_string_of_jsbytes("1."), + cst_0_5=caml_string_of_jsbytes("0.5"), + cst_0$12=caml_string_of_jsbytes("0."), + cst_0$13=caml_string_of_jsbytes("0."), + cst_2$9=caml_string_of_jsbytes("2"), + cst_0_0463$0=caml_string_of_jsbytes("0.0463"), + cst_0$11=caml_string_of_jsbytes("0"), + cst_2$8=caml_string_of_jsbytes("2"), + cst_0_0539=caml_string_of_jsbytes("0.0539"), + cst_0$10=caml_string_of_jsbytes("0"), + cst_2$7=caml_string_of_jsbytes("2"), + cst_0_0615=caml_string_of_jsbytes("0.0615"), + cst_0$9=caml_string_of_jsbytes("0"), + cst_2$6=caml_string_of_jsbytes("2"), + cst_0_069=caml_string_of_jsbytes("0.069"), + cst_0$8=caml_string_of_jsbytes("0"), + cst_2$5=caml_string_of_jsbytes("2"), + cst_0_0766=caml_string_of_jsbytes("0.0766"), + cst_0$7=caml_string_of_jsbytes("0"), + cst_2$4=caml_string_of_jsbytes("2"), + cst_0_0842=caml_string_of_jsbytes("0.0842"), + cst_0$6=caml_string_of_jsbytes("0"), + cst_2$3=caml_string_of_jsbytes("2"), + cst_0_0918=caml_string_of_jsbytes("0.0918"), + cst_0$5=caml_string_of_jsbytes("0"), + cst_2$2=caml_string_of_jsbytes("2"), + cst_0_1089=caml_string_of_jsbytes("0.1089"), + cst_0$4=caml_string_of_jsbytes("0"), + cst_2$1=caml_string_of_jsbytes("2"), + cst_0_1259=caml_string_of_jsbytes("0.1259"), + cst_0$3=caml_string_of_jsbytes("0"), + cst_2$0=caml_string_of_jsbytes("2"), + cst_0_143=caml_string_of_jsbytes("0.143"), + cst_0$2=caml_string_of_jsbytes("0"), + cst_2=caml_string_of_jsbytes("2"), + cst_0_16=caml_string_of_jsbytes("0.16"), + cst_0$1=caml_string_of_jsbytes("0"), + cst_3$1=caml_string_of_jsbytes("3"), + cst_3$2=caml_string_of_jsbytes("3"), + cst_0_0463=caml_string_of_jsbytes("0.0463"), + cst_0$0=caml_string_of_jsbytes("0"), + cst_1$1=caml_string_of_jsbytes("1"), + cst_1$0=caml_string_of_jsbytes("1"), + cst_562800$0=caml_string_of_jsbytes("562800"), + cst_5628600=caml_string_of_jsbytes("5628600"), + cst_568400$0=caml_string_of_jsbytes("568400"), + cst_5684900=caml_string_of_jsbytes("5684900"), + cst_577500$0=caml_string_of_jsbytes("577500"), + cst_5775900=caml_string_of_jsbytes("5775900"), + cst_582700$0=caml_string_of_jsbytes("582700"), + cst_5827900=caml_string_of_jsbytes("5827900"), + cst_559500$0=caml_string_of_jsbytes("559500"), + cst_5595000=caml_string_of_jsbytes("5595000"), + cst_562800=caml_string_of_jsbytes("562800"), + cst_7877000=caml_string_of_jsbytes("7877000"), + cst_568400=caml_string_of_jsbytes("568400"), + cst_7955800=caml_string_of_jsbytes("7955800"), + cst_577500=caml_string_of_jsbytes("577500"), + cst_8083100=caml_string_of_jsbytes("8083100"), + cst_582700=caml_string_of_jsbytes("582700"), + cst_8155800=caml_string_of_jsbytes("8155800"), + cst_559500=caml_string_of_jsbytes("559500"), + cst_7830000=caml_string_of_jsbytes("7830000"), + cst_3$0=caml_string_of_jsbytes("3"), + cst_3=caml_string_of_jsbytes("3"), + cst_169$0=caml_string_of_jsbytes("169."), + cst_0_55$0=caml_string_of_jsbytes("0.55"), + cst_169=caml_string_of_jsbytes("169."), + cst_0_55=caml_string_of_jsbytes("0.55"), + cst_41316=caml_string_of_jsbytes("41316"), + cst_41440=caml_string_of_jsbytes("41440"), + cst_41481=caml_string_of_jsbytes("41481"), + cst_42228=caml_string_of_jsbytes("42228"), + cst_1003=caml_string_of_jsbytes("1003"), + cst_757=caml_string_of_jsbytes("757"), + cst_1015=caml_string_of_jsbytes("1015"), + cst_766=caml_string_of_jsbytes("766"), + cst_1025=caml_string_of_jsbytes("1025"), + cst_774=caml_string_of_jsbytes("774"), + cst_1057=caml_string_of_jsbytes("1057"), + cst_798=caml_string_of_jsbytes("798"), + cst_1085=caml_string_of_jsbytes("1085"), + cst_819=caml_string_of_jsbytes("819"), + cst_1107=caml_string_of_jsbytes("1107"), + cst_835=caml_string_of_jsbytes("835"), + cst_1127=caml_string_of_jsbytes("1127"), + cst_851=caml_string_of_jsbytes("851"), + cst_0=caml_string_of_jsbytes("0"), + cst_1=caml_string_of_jsbytes("-1"), + cst_i_avait_enfant_charge_avan= + caml_string_of_jsbytes + ("i_avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in"), + cst_i_personne_charge_effectiv= + caml_string_of_jsbytes + ("i_personne_charge_effective_permanente_remplit_titre_I_in"), + cst_i_personne_charge_effectiv$0= + caml_string_of_jsbytes + ("i_personne_charge_effective_permanente_est_parent_in"), + cst_i_r_sidence_in=caml_string_of_jsbytes("i_r\xc3\xa9sidence_in"), + cst_i_ressources_m_nage_in= + caml_string_of_jsbytes("i_ressources_m\xc3\xa9nage_in"), + cst_i_enfants_in=caml_string_of_jsbytes("i_enfants_in"), + cst_i_date_courante_in=caml_string_of_jsbytes("i_date_courante_in"), + cst_date_courante_in$4=caml_string_of_jsbytes("date_courante_in"), + cst_r_sidence_in$1=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_date_courante_in$3=caml_string_of_jsbytes("date_courante_in"), + cst_ann_es_in$0=caml_string_of_jsbytes("ann\xc3\xa9es_in"), + cst_date_courante_in$2=caml_string_of_jsbytes("date_courante_in"), + cst_date_naissance_in$0=caml_string_of_jsbytes("date_naissance_in"), + cst_ann_es_in=caml_string_of_jsbytes("ann\xc3\xa9es_in"), + cst_date_courante_in$1=caml_string_of_jsbytes("date_courante_in"), + cst_date_naissance_in=caml_string_of_jsbytes("date_naissance_in"), + cst_avait_enfant_charge_avant_= + caml_string_of_jsbytes + ("avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in"), + cst_enfants_charge_in= + caml_string_of_jsbytes("enfants_\xc3\xa0_charge_in"), + cst_date_courante_in$0=caml_string_of_jsbytes("date_courante_in"), + cst_r_sidence_in$0=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_ressources_m_nage_in= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_in"), + cst_personne_charge_effective_= + caml_string_of_jsbytes + ("personne_charge_effective_permanente_remplit_titre_I_in"), + cst_personne_charge_effective_$0= + caml_string_of_jsbytes + ("personne_charge_effective_permanente_est_parent_in"), + cst_enfants_in=caml_string_of_jsbytes("enfants_in"), + cst_r_sidence_in=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_prestation_courante_in= + caml_string_of_jsbytes("prestation_courante_in"), + cst_date_courante_in=caml_string_of_jsbytes("date_courante_in"), + cst_r_gime_outre_mer_l751_1= + caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"), + cst_ge_l512_3_2=caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"), + cst_conditions_hors_ge= + caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), + cst_droit_ouvert=caml_string_of_jsbytes("droit_ouvert"), + cst_le_plus_g=caml_string_of_jsbytes("le_plus_\xc3\xa2g\xc3\xa9"), + cst_b_n_ficie_titre_personnel_= + caml_string_of_jsbytes + ("b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), + cst_a_d_j_ouvert_droit_aux_all= + caml_string_of_jsbytes + ("a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), + cst_prise_en_charge=caml_string_of_jsbytes("prise_en_charge"), + cst_date_de_naissance=caml_string_of_jsbytes("date_de_naissance"), + cst_r_muneration_mensuelle= + caml_string_of_jsbytes("r\xc3\xa9muneration_mensuelle"), + cst_obligation_scolaire=caml_string_of_jsbytes("obligation_scolaire"), + cst_identifiant=caml_string_of_jsbytes("identifiant"), + cst_d_b_n_ficie_titre_personne= + caml_string_of_jsbytes + ("d_b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), + cst_d_a_d_j_ouvert_droit_aux_a= + caml_string_of_jsbytes + ("d_a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), + cst_d_prise_en_charge=caml_string_of_jsbytes("d_prise_en_charge"), + cst_d_date_de_naissance=caml_string_of_jsbytes("d_date_de_naissance"), + cst_d_r_muneration_mensuelle= + caml_string_of_jsbytes("d_r\xc3\xa9muneration_mensuelle"), + cst_d_identifiant=caml_string_of_jsbytes("d_identifiant"), + cst_i_montant_vers=caml_string_of_jsbytes("i_montant_vers\xc3\xa9"), + cst_montant=caml_string_of_jsbytes("montant"), + cst_brut_horaire=caml_string_of_jsbytes("brut_horaire"), + cst_est_sup_rieur=caml_string_of_jsbytes("est_sup\xc3\xa9rieur"), + cst_est_inf_rieur_ou_gal= + caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"), + cst_montant_vers=caml_string_of_jsbytes("montant_vers\xc3\xa9"), + cst_ge_minimum_alin_a_1_l521_3= + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + cst_Guadeloupe=caml_string_of_jsbytes("Guadeloupe"), + cst_Guyane=caml_string_of_jsbytes("Guyane"), + cst_Martinique=caml_string_of_jsbytes("Martinique"), + cst_LaR_union=caml_string_of_jsbytes("LaR\xc3\xa9union"), + cst_SaintBarth_lemy=caml_string_of_jsbytes("SaintBarth\xc3\xa9lemy"), + cst_SaintMartin=caml_string_of_jsbytes("SaintMartin"), + cst_M_tropole=caml_string_of_jsbytes("M\xc3\xa9tropole"), + cst_SaintPierreEtMiquelon=caml_string_of_jsbytes("SaintPierreEtMiquelon"), + cst_Mayotte=caml_string_of_jsbytes("Mayotte"), + cst_PrestationAccueilJeuneEnfa= + caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), + cst_AllocationsFamiliales=caml_string_of_jsbytes("AllocationsFamiliales"), + cst_Compl_mentFamilial= + caml_string_of_jsbytes("Compl\xc3\xa9mentFamilial"), + cst_AllocationLogement=caml_string_of_jsbytes("AllocationLogement"), + cst_Allocation_ducationEnfantH= + caml_string_of_jsbytes + ("Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9"), + cst_AllocationSoutienFamilial= + caml_string_of_jsbytes("AllocationSoutienFamilial"), + cst_AllocationRentr_eScolaire= + caml_string_of_jsbytes("AllocationRentr\xc3\xa9eScolaire"), + cst_AllocationJournali_rePrese= + caml_string_of_jsbytes("AllocationJournali\xc3\xa8rePresenceParentale"), + cst_Normal=caml_string_of_jsbytes("Normal"), + cst_AllocationVers_eAuxService= + caml_string_of_jsbytes("AllocationVers\xc3\xa9eAuxServicesSociaux"), + cst_Compl_te=caml_string_of_jsbytes("Compl\xc3\xa8te"), + cst_Partag_e=caml_string_of_jsbytes("Partag\xc3\xa9e"), + cst_Z_ro=caml_string_of_jsbytes("Z\xc3\xa9ro"), + cst_Avant=caml_string_of_jsbytes("Avant"), + cst_Pendant=caml_string_of_jsbytes("Pendant"), + cst_Apr_s=caml_string_of_jsbytes("Apr\xc3\xa8s"), + cst_GardeAltern_ePartageAlloca= + caml_string_of_jsbytes("GardeAltern\xc3\xa9ePartageAllocations"), + cst_GardeAltern_eAllocataireUn= + caml_string_of_jsbytes("GardeAltern\xc3\xa9eAllocataireUnique"), + cst_EffectiveEtPermanente=caml_string_of_jsbytes("EffectiveEtPermanente"), + cst_ServicesSociauxAllocationV= + caml_string_of_jsbytes + ("ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille"), + cst_ServicesSociauxAllocationV$0= + caml_string_of_jsbytes + ("ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux"), + cst_The_function_conditions_ho= + caml_string_of_jsbytes + ("The function 'conditions_hors_age' translation isn't yet supported..."), + cst_The_function_droit_ouvert_= + caml_string_of_jsbytes + ("The function 'droit_ouvert' translation isn't yet supported..."), + cst_Guadeloupe$0=caml_string_of_jsbytes("Guadeloupe"), + cst_Guyane$0=caml_string_of_jsbytes("Guyane"), + cst_LaReunion=caml_string_of_jsbytes("LaReunion"), + cst_Martinique$0=caml_string_of_jsbytes("Martinique"), + cst_Mayotte$0=caml_string_of_jsbytes("Mayotte"), + cst_Metropole=caml_string_of_jsbytes("Metropole"), + cst_SaintBarthelemy=caml_string_of_jsbytes("SaintBarthelemy"), + cst_SaintMartin$0=caml_string_of_jsbytes("SaintMartin"), + cst_SaintPierreEtMiquelon$0= + caml_string_of_jsbytes("SaintPierreEtMiquelon"), + cst_AllocationEducationEnfantH= + caml_string_of_jsbytes("AllocationEducationEnfantHandicape"), + cst_AllocationJournalierePrese= + caml_string_of_jsbytes("AllocationJournalierePresenceParentale"), + cst_AllocationLogement$0=caml_string_of_jsbytes("AllocationLogement"), + cst_AllocationRentreeScolaire= + caml_string_of_jsbytes("AllocationRentreeScolaire"), + cst_AllocationSoutienFamilial$0= + caml_string_of_jsbytes("AllocationSoutienFamilial"), + cst_AllocationsFamiliales$0= + caml_string_of_jsbytes("AllocationsFamiliales"), + cst_ComplementFamilial=caml_string_of_jsbytes("ComplementFamilial"), + cst_PrestationAccueilJeuneEnfa$0= + caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), + cst_AllocationVerseeAuxService= + caml_string_of_jsbytes("AllocationVerseeAuxServicesSociaux"), + cst_Normal$0=caml_string_of_jsbytes("Normal"), + cst_Complete=caml_string_of_jsbytes("Complete"), + cst_Partagee=caml_string_of_jsbytes("Partagee"), + cst_Zero=caml_string_of_jsbytes("Zero"), + cst_Apres=caml_string_of_jsbytes("Apres"), + cst_Avant$0=caml_string_of_jsbytes("Avant"), + cst_Pendant$0=caml_string_of_jsbytes("Pendant"), + cst_EffectiveEtPermanente$0= + caml_string_of_jsbytes("EffectiveEtPermanente"), + cst_GardeAlterneeAllocataireUn= + caml_string_of_jsbytes("GardeAlterneeAllocataireUnique"), + cst_GardeAlterneePartageAlloca= + caml_string_of_jsbytes("GardeAlterneePartageAllocations"), + cst_ServicesSociauxAllocationV$1= + caml_string_of_jsbytes("ServicesSociauxAllocationVerseeALaFamille"), + cst_ServicesSociauxAllocationV$2= + caml_string_of_jsbytes + ("ServicesSociauxAllocationVerseeAuxServicesSociaux"), + cst_AllocationsFamilialesLib= + caml_string_of_jsbytes("AllocationsFamilialesLib"), + cst_0$424=caml_string_of_jsbytes("0"), + cst_0$425=caml_string_of_jsbytes("0"), + cst_0$426=caml_string_of_jsbytes("0."), + cst_0$423=caml_string_of_jsbytes("0"), + cst_1$282=caml_string_of_jsbytes("1"), + cst_1$281=caml_string_of_jsbytes("1"), + cst_0$422=caml_string_of_jsbytes("0"), + cst_1$280=caml_string_of_jsbytes("1"), + cst_1$279=caml_string_of_jsbytes("1"), + cst_0$421=caml_string_of_jsbytes("0"), + cst_1$278=caml_string_of_jsbytes("1"), + cst_3$103=caml_string_of_jsbytes("3"), + cst_0_2$1=caml_string_of_jsbytes("0.2"), + cst_3$104=caml_string_of_jsbytes("3"), + cst_0$420=caml_string_of_jsbytes("0"), + cst_2_4=caml_string_of_jsbytes("2.4"), + cst_3$102=caml_string_of_jsbytes("3"), + cst_8$0=caml_string_of_jsbytes("8."), + cst_2026=caml_string_of_jsbytes("2026"), + cst_0$417=caml_string_of_jsbytes("0"), + cst_0$418=caml_string_of_jsbytes("0"), + cst_0$419=caml_string_of_jsbytes("0"), + cst_0$415=caml_string_of_jsbytes("0"), + cst_0$416=caml_string_of_jsbytes("0"), + cst_0$413=caml_string_of_jsbytes("0."), + cst_0$414=caml_string_of_jsbytes("0."), + cst_1_25$0=caml_string_of_jsbytes("1.25"), + cst_1_25=caml_string_of_jsbytes("1.25"), + cst_0$412=caml_string_of_jsbytes("0"), + cst_0$411=caml_string_of_jsbytes("0"), + cst_0$410=caml_string_of_jsbytes("0"), + cst_2$122=caml_string_of_jsbytes("2"), + cst_1$277=caml_string_of_jsbytes("1"), + cst_9$2=caml_string_of_jsbytes("9"), + cst_16$3=caml_string_of_jsbytes("16"), + cst_9=caml_string_of_jsbytes("9"), + cst_9$0=caml_string_of_jsbytes("9"), + cst_16=caml_string_of_jsbytes("16"), + cst_16$0=caml_string_of_jsbytes("16"), + cst_16$1=caml_string_of_jsbytes("16"), + cst_9$1=caml_string_of_jsbytes("9"), + cst_16$2=caml_string_of_jsbytes("16"), + cst_8=caml_string_of_jsbytes("8"), + cst_70=caml_string_of_jsbytes("70"), + cst_70$0=caml_string_of_jsbytes("70"), + cst_0$409=caml_string_of_jsbytes("0."), + cst_0$408=caml_string_of_jsbytes("0."), + cst_999840=caml_string_of_jsbytes("999840"), + cst_1041840=caml_string_of_jsbytes("1041840"), + cst_1083840=caml_string_of_jsbytes("1083840"), + cst_1153302=caml_string_of_jsbytes("1153302"), + cst_1100144=caml_string_of_jsbytes("1100144"), + cst_1088175=caml_string_of_jsbytes("1088175"), + cst_1$275=caml_string_of_jsbytes("1"), + cst_2$118=caml_string_of_jsbytes("2"), + cst_2$119=caml_string_of_jsbytes("2"), + cst_2$120=caml_string_of_jsbytes("2"), + cst_1$276=caml_string_of_jsbytes("1"), + cst_2$121=caml_string_of_jsbytes("2"), + cst_3000000=caml_string_of_jsbytes("3000000"), + cst_0_1$0=caml_string_of_jsbytes("0.1"), + cst_0_1=caml_string_of_jsbytes("0.1"), + cst_0_2=caml_string_of_jsbytes("0.2"), + cst_0_2$0=caml_string_of_jsbytes("0.2"), + cst_0$405=caml_string_of_jsbytes("0"), + cst_0$406=caml_string_of_jsbytes("0"), + cst_0$407=caml_string_of_jsbytes("0"), + cst_0$403=caml_string_of_jsbytes("0"), + cst_0$404=caml_string_of_jsbytes("0"), + cst_0$402=caml_string_of_jsbytes("0"), + cst_50$3=caml_string_of_jsbytes("50"), + cst_0$400=caml_string_of_jsbytes("0"), + cst_0$401=caml_string_of_jsbytes("0"), + cst_0$399=caml_string_of_jsbytes("0"), + cst_0$398=caml_string_of_jsbytes("0"), + cst_0$397=caml_string_of_jsbytes("0"), + cst_6$91=caml_string_of_jsbytes("6"), + cst_6$90=caml_string_of_jsbytes("6"), + cst_6$89=caml_string_of_jsbytes("6"), + cst_6$88=caml_string_of_jsbytes("6"), + cst_6$87=caml_string_of_jsbytes("6"), + cst_6$86=caml_string_of_jsbytes("6"), + cst_6$85=caml_string_of_jsbytes("6"), + cst_6$84=caml_string_of_jsbytes("6"), + cst_6$83=caml_string_of_jsbytes("6"), + cst_6$82=caml_string_of_jsbytes("6"), + cst_100$12=caml_string_of_jsbytes("100."), + cst_0_01$0=caml_string_of_jsbytes("0.01"), + cst_4999=caml_string_of_jsbytes("4999"), + cst_0_75$13=caml_string_of_jsbytes("0.75"), + cst_0_75$12=caml_string_of_jsbytes("0.75"), + cst_0_75$11=caml_string_of_jsbytes("0.75"), + cst_0$395=caml_string_of_jsbytes("0"), + cst_0$396=caml_string_of_jsbytes("0"), + cst_969$13=caml_string_of_jsbytes("969"), + cst_1938$4=caml_string_of_jsbytes("1938"), + cst_3767$13=caml_string_of_jsbytes("3767"), + cst_969$11=caml_string_of_jsbytes("969"), + cst_1938$2=caml_string_of_jsbytes("1938"), + cst_3767$12=caml_string_of_jsbytes("3767"), + cst_6$81=caml_string_of_jsbytes("6."), + cst_969$12=caml_string_of_jsbytes("969"), + cst_1938$3=caml_string_of_jsbytes("1938"), + cst_3767$11=caml_string_of_jsbytes("3767"), + cst_936$17=caml_string_of_jsbytes("936"), + cst_1872$5=caml_string_of_jsbytes("1872"), + cst_3640$18=caml_string_of_jsbytes("3640"), + cst_6$80=caml_string_of_jsbytes("6."), + cst_936$18=caml_string_of_jsbytes("936"), + cst_1872$6=caml_string_of_jsbytes("1872"), + cst_3640$17=caml_string_of_jsbytes("3640"), + cst_936$15=caml_string_of_jsbytes("936"), + cst_1872$3=caml_string_of_jsbytes("1872"), + cst_3640$16=caml_string_of_jsbytes("3640"), + cst_6$79=caml_string_of_jsbytes("6."), + cst_936$16=caml_string_of_jsbytes("936"), + cst_1872$4=caml_string_of_jsbytes("1872"), + cst_3640$15=caml_string_of_jsbytes("3640"), + cst_932$7=caml_string_of_jsbytes("932"), + cst_1864$1=caml_string_of_jsbytes("1864"), + cst_3625$8=caml_string_of_jsbytes("3625"), + cst_6$78=caml_string_of_jsbytes("6."), + cst_932$8=caml_string_of_jsbytes("932"), + cst_1864$2=caml_string_of_jsbytes("1864"), + cst_3625$7=caml_string_of_jsbytes("3625"), + cst_929$7=caml_string_of_jsbytes("929"), + cst_1858$1=caml_string_of_jsbytes("1858"), + cst_3614$8=caml_string_of_jsbytes("3614"), + cst_6$77=caml_string_of_jsbytes("6."), + cst_929$8=caml_string_of_jsbytes("929"), + cst_1858$2=caml_string_of_jsbytes("1858"), + cst_3614$7=caml_string_of_jsbytes("3614"), + cst_969$10=caml_string_of_jsbytes("969"), + cst_3767$10=caml_string_of_jsbytes("3767"), + cst_969$8=caml_string_of_jsbytes("969"), + cst_3767$8=caml_string_of_jsbytes("3767"), + cst_6$76=caml_string_of_jsbytes("6."), + cst_969$9=caml_string_of_jsbytes("969"), + cst_3767$9=caml_string_of_jsbytes("3767"), + cst_936$13=caml_string_of_jsbytes("936"), + cst_3640$13=caml_string_of_jsbytes("3640"), + cst_6$75=caml_string_of_jsbytes("6."), + cst_936$14=caml_string_of_jsbytes("936"), + cst_3640$14=caml_string_of_jsbytes("3640"), + cst_936$11=caml_string_of_jsbytes("936"), + cst_3640$11=caml_string_of_jsbytes("3640"), + cst_6$74=caml_string_of_jsbytes("6."), + cst_936$12=caml_string_of_jsbytes("936"), + cst_3640$12=caml_string_of_jsbytes("3640"), + cst_932$5=caml_string_of_jsbytes("932"), + cst_3625$5=caml_string_of_jsbytes("3625"), + cst_6$73=caml_string_of_jsbytes("6."), + cst_932$6=caml_string_of_jsbytes("932"), + cst_3625$6=caml_string_of_jsbytes("3625"), + cst_929$5=caml_string_of_jsbytes("929"), + cst_3614$5=caml_string_of_jsbytes("3614"), + cst_6$72=caml_string_of_jsbytes("6."), + cst_929$6=caml_string_of_jsbytes("929"), + cst_3614$6=caml_string_of_jsbytes("3614"), + cst_1272$5=caml_string_of_jsbytes("1272"), + cst_2805$1=caml_string_of_jsbytes("2805"), + cst_5612$7=caml_string_of_jsbytes("5612"), + cst_1229$5=caml_string_of_jsbytes("1229"), + cst_2710$1=caml_string_of_jsbytes("2710"), + cst_5422$7=caml_string_of_jsbytes("5422"), + cst_1224$5=caml_string_of_jsbytes("1224"), + cst_2699$1=caml_string_of_jsbytes("2699"), + cst_5399$7=caml_string_of_jsbytes("5399"), + cst_0$394=caml_string_of_jsbytes("0"), + cst_5612$5=caml_string_of_jsbytes("5612"), + cst_1272$4=caml_string_of_jsbytes("1272"), + cst_5612$6=caml_string_of_jsbytes("5612"), + cst_0$393=caml_string_of_jsbytes("0"), + cst_5422$5=caml_string_of_jsbytes("5422"), + cst_1229$4=caml_string_of_jsbytes("1229"), + cst_5422$6=caml_string_of_jsbytes("5422"), + cst_0$392=caml_string_of_jsbytes("0"), + cst_5399$5=caml_string_of_jsbytes("5399"), + cst_1224$4=caml_string_of_jsbytes("1224"), + cst_5399$6=caml_string_of_jsbytes("5399"), + cst_0$389=caml_string_of_jsbytes("0"), + cst_158700=caml_string_of_jsbytes("158700"), + cst_191300=caml_string_of_jsbytes("191300"), + cst_1$272=caml_string_of_jsbytes("1"), + cst_205500=caml_string_of_jsbytes("205500"), + cst_2$115=caml_string_of_jsbytes("2"), + cst_211300=caml_string_of_jsbytes("211300"), + cst_3$99=caml_string_of_jsbytes("3"), + cst_217100=caml_string_of_jsbytes("217100"), + cst_4$95=caml_string_of_jsbytes("4"), + cst_222900=caml_string_of_jsbytes("222900"), + cst_5$152=caml_string_of_jsbytes("5"), + cst_228000=caml_string_of_jsbytes("228000"), + cst_5$153=caml_string_of_jsbytes("5"), + cst_19800=caml_string_of_jsbytes("19800"), + cst_228000$0=caml_string_of_jsbytes("228000"), + cst_0$390=caml_string_of_jsbytes("0"), + cst_139300=caml_string_of_jsbytes("139300"), + cst_170600=caml_string_of_jsbytes("170600"), + cst_1$273=caml_string_of_jsbytes("1"), + cst_184700=caml_string_of_jsbytes("184700"), + cst_2$116=caml_string_of_jsbytes("2"), + cst_191200=caml_string_of_jsbytes("191200"), + cst_3$100=caml_string_of_jsbytes("3"), + cst_197700$0=caml_string_of_jsbytes("197700"), + cst_4$96=caml_string_of_jsbytes("4"), + cst_204200=caml_string_of_jsbytes("204200"), + cst_5$154=caml_string_of_jsbytes("5"), + cst_218700=caml_string_of_jsbytes("218700"), + cst_5$155=caml_string_of_jsbytes("5"), + cst_19100$1=caml_string_of_jsbytes("19100"), + cst_218700$0=caml_string_of_jsbytes("218700"), + cst_0$391=caml_string_of_jsbytes("0"), + cst_130600=caml_string_of_jsbytes("130600"), + cst_158400=caml_string_of_jsbytes("158400"), + cst_1$274=caml_string_of_jsbytes("1"), + cst_172600=caml_string_of_jsbytes("172600"), + cst_2$117=caml_string_of_jsbytes("2"), + cst_179800$0=caml_string_of_jsbytes("179800"), + cst_3$101=caml_string_of_jsbytes("3"), + cst_187000=caml_string_of_jsbytes("187000"), + cst_4$97=caml_string_of_jsbytes("4"), + cst_194200=caml_string_of_jsbytes("194200"), + cst_5$156=caml_string_of_jsbytes("5"), + cst_208600$0=caml_string_of_jsbytes("208600"), + cst_5$157=caml_string_of_jsbytes("5"), + cst_18200=caml_string_of_jsbytes("18200"), + cst_208600$1=caml_string_of_jsbytes("208600"), + cst_0$386=caml_string_of_jsbytes("0"), + cst_160400=caml_string_of_jsbytes("160400"), + cst_193400=caml_string_of_jsbytes("193400"), + cst_1$269=caml_string_of_jsbytes("1"), + cst_207800=caml_string_of_jsbytes("207800"), + cst_2$112=caml_string_of_jsbytes("2"), + cst_213700=caml_string_of_jsbytes("213700"), + cst_3$96=caml_string_of_jsbytes("3"), + cst_219600=caml_string_of_jsbytes("219600"), + cst_4$92=caml_string_of_jsbytes("4"), + cst_225500$0=caml_string_of_jsbytes("225500"), + cst_5$146=caml_string_of_jsbytes("5"), + cst_230500$1=caml_string_of_jsbytes("230500"), + cst_5$147=caml_string_of_jsbytes("5"), + cst_20000=caml_string_of_jsbytes("20000"), + cst_230500$2=caml_string_of_jsbytes("230500"), + cst_0$387=caml_string_of_jsbytes("0"), + cst_140800$0=caml_string_of_jsbytes("140800"), + cst_172500$0=caml_string_of_jsbytes("172500"), + cst_1$270=caml_string_of_jsbytes("1"), + cst_186700=caml_string_of_jsbytes("186700"), + cst_2$113=caml_string_of_jsbytes("2"), + cst_193300=caml_string_of_jsbytes("193300"), + cst_3$97=caml_string_of_jsbytes("3"), + cst_199900$1=caml_string_of_jsbytes("199900"), + cst_4$93=caml_string_of_jsbytes("4"), + cst_206500=caml_string_of_jsbytes("206500"), + cst_5$148=caml_string_of_jsbytes("5"), + cst_221100=caml_string_of_jsbytes("221100"), + cst_5$149=caml_string_of_jsbytes("5"), + cst_19300$0=caml_string_of_jsbytes("19300"), + cst_221100$0=caml_string_of_jsbytes("221100"), + cst_0$388=caml_string_of_jsbytes("0"), + cst_132000$0=caml_string_of_jsbytes("132000"), + cst_180100$1=caml_string_of_jsbytes("180100"), + cst_1$271=caml_string_of_jsbytes("1"), + cst_174500=caml_string_of_jsbytes("174500"), + cst_2$114=caml_string_of_jsbytes("2"), + cst_181800$0=caml_string_of_jsbytes("181800"), + cst_3$98=caml_string_of_jsbytes("3"), + cst_189100=caml_string_of_jsbytes("189100"), + cst_4$94=caml_string_of_jsbytes("4"), + cst_196400=caml_string_of_jsbytes("196400"), + cst_5$150=caml_string_of_jsbytes("5"), + cst_210900=caml_string_of_jsbytes("210900"), + cst_5$151=caml_string_of_jsbytes("5"), + cst_18400=caml_string_of_jsbytes("18400"), + cst_210900$0=caml_string_of_jsbytes("210900"), + cst_0$383=caml_string_of_jsbytes("0"), + cst_163300=caml_string_of_jsbytes("163300"), + cst_196900=caml_string_of_jsbytes("196900"), + cst_1$266=caml_string_of_jsbytes("1"), + cst_211600=caml_string_of_jsbytes("211600"), + cst_2$109=caml_string_of_jsbytes("2"), + cst_217600$0=caml_string_of_jsbytes("217600"), + cst_3$93=caml_string_of_jsbytes("3"), + cst_223600=caml_string_of_jsbytes("223600"), + cst_4$89=caml_string_of_jsbytes("4"), + cst_229600=caml_string_of_jsbytes("229600"), + cst_5$140=caml_string_of_jsbytes("5"), + cst_234600=caml_string_of_jsbytes("234600"), + cst_5$141=caml_string_of_jsbytes("5"), + cst_20400=caml_string_of_jsbytes("20400"), + cst_234600$0=caml_string_of_jsbytes("234600"), + cst_0$384=caml_string_of_jsbytes("0"), + cst_143300=caml_string_of_jsbytes("143300"), + cst_175600=caml_string_of_jsbytes("175600"), + cst_1$267=caml_string_of_jsbytes("1"), + cst_190100=caml_string_of_jsbytes("190100"), + cst_2$110=caml_string_of_jsbytes("2"), + cst_196600=caml_string_of_jsbytes("196600"), + cst_3$94=caml_string_of_jsbytes("3"), + cst_203500=caml_string_of_jsbytes("203500"), + cst_4$90=caml_string_of_jsbytes("4"), + cst_210200=caml_string_of_jsbytes("210200"), + cst_5$142=caml_string_of_jsbytes("5"), + cst_225100=caml_string_of_jsbytes("225100"), + cst_5$143=caml_string_of_jsbytes("5"), + cst_19600=caml_string_of_jsbytes("19600"), + cst_225100$0=caml_string_of_jsbytes("225100"), + cst_0$385=caml_string_of_jsbytes("0"), + cst_134400=caml_string_of_jsbytes("134400"), + cst_163000$0=caml_string_of_jsbytes("163000"), + cst_1$268=caml_string_of_jsbytes("1"), + cst_177700=caml_string_of_jsbytes("177700"), + cst_2$111=caml_string_of_jsbytes("2"), + cst_185100=caml_string_of_jsbytes("185100"), + cst_3$95=caml_string_of_jsbytes("3"), + cst_192500$0=caml_string_of_jsbytes("192500"), + cst_4$91=caml_string_of_jsbytes("4"), + cst_199900$0=caml_string_of_jsbytes("199900"), + cst_5$144=caml_string_of_jsbytes("5"), + cst_214700=caml_string_of_jsbytes("214700"), + cst_5$145=caml_string_of_jsbytes("5"), + cst_18700=caml_string_of_jsbytes("18700"), + cst_214700$0=caml_string_of_jsbytes("214700"), + cst_0$380=caml_string_of_jsbytes("0"), + cst_167200=caml_string_of_jsbytes("167200"), + cst_201600=caml_string_of_jsbytes("201600"), + cst_1$263=caml_string_of_jsbytes("1"), + cst_216700=caml_string_of_jsbytes("216700"), + cst_2$106=caml_string_of_jsbytes("2"), + cst_222800=caml_string_of_jsbytes("222800"), + cst_3$90=caml_string_of_jsbytes("3"), + cst_229000=caml_string_of_jsbytes("229000"), + cst_4$86=caml_string_of_jsbytes("4"), + cst_235100=caml_string_of_jsbytes("235100"), + cst_5$134=caml_string_of_jsbytes("5"), + cst_240200=caml_string_of_jsbytes("240200"), + cst_5$135=caml_string_of_jsbytes("5"), + cst_20900$0=caml_string_of_jsbytes("20900"), + cst_240200$0=caml_string_of_jsbytes("240200"), + cst_0$381=caml_string_of_jsbytes("0"), + cst_146700=caml_string_of_jsbytes("146700"), + cst_179800=caml_string_of_jsbytes("179800"), + cst_1$264=caml_string_of_jsbytes("1"), + cst_194700=caml_string_of_jsbytes("194700"), + cst_2$107=caml_string_of_jsbytes("2"), + cst_201500=caml_string_of_jsbytes("201500"), + cst_3$91=caml_string_of_jsbytes("3"), + cst_208400=caml_string_of_jsbytes("208400"), + cst_4$87=caml_string_of_jsbytes("4"), + cst_215200=caml_string_of_jsbytes("215200"), + cst_5$136=caml_string_of_jsbytes("5"), + cst_230500=caml_string_of_jsbytes("230500"), + cst_5$137=caml_string_of_jsbytes("5"), + cst_20100$0=caml_string_of_jsbytes("20100"), + cst_230500$0=caml_string_of_jsbytes("230500"), + cst_0$382=caml_string_of_jsbytes("0"), + cst_137600=caml_string_of_jsbytes("137600"), + cst_166900=caml_string_of_jsbytes("166900"), + cst_1$265=caml_string_of_jsbytes("1"), + cst_182000=caml_string_of_jsbytes("182000"), + cst_2$108=caml_string_of_jsbytes("2"), + cst_189500=caml_string_of_jsbytes("189500"), + cst_3$92=caml_string_of_jsbytes("3"), + cst_197100=caml_string_of_jsbytes("197100"), + cst_4$88=caml_string_of_jsbytes("4"), + cst_204700$0=caml_string_of_jsbytes("204700"), + cst_5$138=caml_string_of_jsbytes("5"), + cst_219900=caml_string_of_jsbytes("219900"), + cst_5$139=caml_string_of_jsbytes("5"), + cst_19100$0=caml_string_of_jsbytes("19100"), + cst_219900$0=caml_string_of_jsbytes("219900"), + cst_0$377=caml_string_of_jsbytes("0"), + cst_167400=caml_string_of_jsbytes("167400"), + cst_201800=caml_string_of_jsbytes("201800"), + cst_1$260=caml_string_of_jsbytes("1"), + cst_216900=caml_string_of_jsbytes("216900"), + cst_2$103=caml_string_of_jsbytes("2"), + cst_223000=caml_string_of_jsbytes("223000"), + cst_3$87=caml_string_of_jsbytes("3"), + cst_229200=caml_string_of_jsbytes("229200"), + cst_4$83=caml_string_of_jsbytes("4"), + cst_235300=caml_string_of_jsbytes("235300"), + cst_5$128=caml_string_of_jsbytes("5"), + cst_240400=caml_string_of_jsbytes("240400"), + cst_5$129=caml_string_of_jsbytes("5"), + cst_20900=caml_string_of_jsbytes("20900"), + cst_240400$0=caml_string_of_jsbytes("240400"), + cst_0$378=caml_string_of_jsbytes("0"), + cst_146800=caml_string_of_jsbytes("146800"), + cst_180000=caml_string_of_jsbytes("180000"), + cst_1$261=caml_string_of_jsbytes("1"), + cst_194900=caml_string_of_jsbytes("194900"), + cst_2$104=caml_string_of_jsbytes("2"), + cst_201700$0=caml_string_of_jsbytes("201700"), + cst_3$88=caml_string_of_jsbytes("3"), + cst_208600=caml_string_of_jsbytes("208600"), + cst_4$84=caml_string_of_jsbytes("4"), + cst_215400=caml_string_of_jsbytes("215400"), + cst_5$130=caml_string_of_jsbytes("5"), + cst_230700=caml_string_of_jsbytes("230700"), + cst_5$131=caml_string_of_jsbytes("5"), + cst_20100=caml_string_of_jsbytes("20100"), + cst_230700$0=caml_string_of_jsbytes("230700"), + cst_0$379=caml_string_of_jsbytes("0"), + cst_137700=caml_string_of_jsbytes("137700"), + cst_167100=caml_string_of_jsbytes("167100"), + cst_1$262=caml_string_of_jsbytes("1"), + cst_182200=caml_string_of_jsbytes("182200"), + cst_2$105=caml_string_of_jsbytes("2"), + cst_189700=caml_string_of_jsbytes("189700"), + cst_3$89=caml_string_of_jsbytes("3"), + cst_197300=caml_string_of_jsbytes("197300"), + cst_4$85=caml_string_of_jsbytes("4"), + cst_204900=caml_string_of_jsbytes("204900"), + cst_5$132=caml_string_of_jsbytes("5"), + cst_220100=caml_string_of_jsbytes("220100"), + cst_5$133=caml_string_of_jsbytes("5"), + cst_19100=caml_string_of_jsbytes("19100"), + cst_220100$0=caml_string_of_jsbytes("220100"), + cst_0$374=caml_string_of_jsbytes("0"), + cst_169100=caml_string_of_jsbytes("169100"), + cst_203800=caml_string_of_jsbytes("203800"), + cst_1$257=caml_string_of_jsbytes("1"), + cst_219100=caml_string_of_jsbytes("219100"), + cst_2$100=caml_string_of_jsbytes("2"), + cst_225200=caml_string_of_jsbytes("225200"), + cst_3$84=caml_string_of_jsbytes("3"), + cst_231500=caml_string_of_jsbytes("231500"), + cst_4$80=caml_string_of_jsbytes("4"), + cst_237700=caml_string_of_jsbytes("237700"), + cst_5$122=caml_string_of_jsbytes("5"), + cst_242800$1=caml_string_of_jsbytes("242800"), + cst_5$123=caml_string_of_jsbytes("5"), + cst_21100=caml_string_of_jsbytes("21100"), + cst_242800$2=caml_string_of_jsbytes("242800"), + cst_0$375=caml_string_of_jsbytes("0"), + cst_148300=caml_string_of_jsbytes("148300"), + cst_181800=caml_string_of_jsbytes("181800"), + cst_1$258=caml_string_of_jsbytes("1"), + cst_196800=caml_string_of_jsbytes("196800"), + cst_2$101=caml_string_of_jsbytes("2"), + cst_203700=caml_string_of_jsbytes("203700"), + cst_3$85=caml_string_of_jsbytes("3"), + cst_210700=caml_string_of_jsbytes("210700"), + cst_4$81=caml_string_of_jsbytes("4"), + cst_217600=caml_string_of_jsbytes("217600"), + cst_5$124=caml_string_of_jsbytes("5"), + cst_233000=caml_string_of_jsbytes("233000"), + cst_5$125=caml_string_of_jsbytes("5"), + cst_20300=caml_string_of_jsbytes("20300"), + cst_233000$0=caml_string_of_jsbytes("233000"), + cst_0$376=caml_string_of_jsbytes("0"), + cst_139100=caml_string_of_jsbytes("139100"), + cst_168800=caml_string_of_jsbytes("168800"), + cst_1$259=caml_string_of_jsbytes("1"), + cst_184000$1=caml_string_of_jsbytes("184000"), + cst_2$102=caml_string_of_jsbytes("2"), + cst_191600=caml_string_of_jsbytes("191600"), + cst_3$86=caml_string_of_jsbytes("3"), + cst_199300=caml_string_of_jsbytes("199300"), + cst_4$82=caml_string_of_jsbytes("4"), + cst_206900=caml_string_of_jsbytes("206900"), + cst_5$126=caml_string_of_jsbytes("5"), + cst_222300=caml_string_of_jsbytes("222300"), + cst_5$127=caml_string_of_jsbytes("5"), + cst_19300=caml_string_of_jsbytes("19300"), + cst_222300$0=caml_string_of_jsbytes("222300"), + cst_0$371=caml_string_of_jsbytes("0"), + cst_171100=caml_string_of_jsbytes("171100"), + cst_206200=caml_string_of_jsbytes("206200"), + cst_1$254=caml_string_of_jsbytes("1"), + cst_221700=caml_string_of_jsbytes("221700"), + cst_2$97=caml_string_of_jsbytes("2"), + cst_227900=caml_string_of_jsbytes("227900"), + cst_3$81=caml_string_of_jsbytes("3"), + cst_234300=caml_string_of_jsbytes("234300"), + cst_4$77=caml_string_of_jsbytes("4"), + cst_240600=caml_string_of_jsbytes("240600"), + cst_5$116=caml_string_of_jsbytes("5"), + cst_245700=caml_string_of_jsbytes("245700"), + cst_5$117=caml_string_of_jsbytes("5"), + cst_21400=caml_string_of_jsbytes("21400"), + cst_245700$0=caml_string_of_jsbytes("245700"), + cst_0$372=caml_string_of_jsbytes("0"), + cst_150100=caml_string_of_jsbytes("150100"), + cst_184000$0=caml_string_of_jsbytes("184000"), + cst_1$255=caml_string_of_jsbytes("1"), + cst_199200=caml_string_of_jsbytes("199200"), + cst_2$98=caml_string_of_jsbytes("2"), + cst_206100=caml_string_of_jsbytes("206100"), + cst_3$82=caml_string_of_jsbytes("3"), + cst_213200=caml_string_of_jsbytes("213200"), + cst_4$78=caml_string_of_jsbytes("4"), + cst_220200=caml_string_of_jsbytes("220200"), + cst_5$118=caml_string_of_jsbytes("5"), + cst_235800=caml_string_of_jsbytes("235800"), + cst_5$119=caml_string_of_jsbytes("5"), + cst_20500=caml_string_of_jsbytes("20500"), + cst_235800$0=caml_string_of_jsbytes("235800"), + cst_0$373=caml_string_of_jsbytes("0"), + cst_140800=caml_string_of_jsbytes("140800"), + cst_170800=caml_string_of_jsbytes("170800"), + cst_1$256=caml_string_of_jsbytes("1"), + cst_186200=caml_string_of_jsbytes("186200"), + cst_2$99=caml_string_of_jsbytes("2"), + cst_193900=caml_string_of_jsbytes("193900"), + cst_3$83=caml_string_of_jsbytes("3"), + cst_201700=caml_string_of_jsbytes("201700"), + cst_4$79=caml_string_of_jsbytes("4"), + cst_209400=caml_string_of_jsbytes("209400"), + cst_5$120=caml_string_of_jsbytes("5"), + cst_225000=caml_string_of_jsbytes("225000"), + cst_5$121=caml_string_of_jsbytes("5"), + cst_19500=caml_string_of_jsbytes("19500"), + cst_225000$0=caml_string_of_jsbytes("225000"), + cst_0$368=caml_string_of_jsbytes("0"), + cst_26084=caml_string_of_jsbytes("26084"), + cst_31435=caml_string_of_jsbytes("31435"), + cst_1$251=caml_string_of_jsbytes("1"), + cst_33798=caml_string_of_jsbytes("33798"), + cst_2$94=caml_string_of_jsbytes("2"), + cst_34743=caml_string_of_jsbytes("34743"), + cst_3$78=caml_string_of_jsbytes("3"), + cst_35719=caml_string_of_jsbytes("35719"), + cst_4$74=caml_string_of_jsbytes("4"), + cst_36679=caml_string_of_jsbytes("36679"), + cst_5$110=caml_string_of_jsbytes("5"), + cst_37457=caml_string_of_jsbytes("37457"), + cst_5$111=caml_string_of_jsbytes("5"), + cst_3262=caml_string_of_jsbytes("3262"), + cst_37457$0=caml_string_of_jsbytes("37457"), + cst_0$369=caml_string_of_jsbytes("0"), + cst_22883=caml_string_of_jsbytes("22883"), + cst_28051=caml_string_of_jsbytes("28051"), + cst_1$252=caml_string_of_jsbytes("1"), + cst_30368=caml_string_of_jsbytes("30368"), + cst_2$95=caml_string_of_jsbytes("2"), + cst_31420=caml_string_of_jsbytes("31420"), + cst_3$79=caml_string_of_jsbytes("3"), + cst_32502=caml_string_of_jsbytes("32502"), + cst_4$75=caml_string_of_jsbytes("4"), + cst_33569=caml_string_of_jsbytes("33569"), + cst_5$112=caml_string_of_jsbytes("5"), + cst_35947=caml_string_of_jsbytes("35947"), + cst_5$113=caml_string_of_jsbytes("5"), + cst_3125=caml_string_of_jsbytes("3125"), + cst_35947$0=caml_string_of_jsbytes("35947"), + cst_0$370=caml_string_of_jsbytes("0"), + cst_21465=caml_string_of_jsbytes("21465"), + cst_26038=caml_string_of_jsbytes("26038"), + cst_1$253=caml_string_of_jsbytes("1"), + cst_28386=caml_string_of_jsbytes("28386"), + cst_2$96=caml_string_of_jsbytes("2"), + cst_29560=caml_string_of_jsbytes("29560"), + cst_3$80=caml_string_of_jsbytes("3"), + cst_30749=caml_string_of_jsbytes("30749"), + cst_4$76=caml_string_of_jsbytes("4"), + cst_31923=caml_string_of_jsbytes("31923"), + cst_5$114=caml_string_of_jsbytes("5"), + cst_34301=caml_string_of_jsbytes("34301"), + cst_5$115=caml_string_of_jsbytes("5"), + cst_2973=caml_string_of_jsbytes("2973"), + cst_34301$0=caml_string_of_jsbytes("34301"), + cst_0$365=caml_string_of_jsbytes("0"), + cst_26397=caml_string_of_jsbytes("26397"), + cst_31812=caml_string_of_jsbytes("31812"), + cst_1$248=caml_string_of_jsbytes("1"), + cst_34204=caml_string_of_jsbytes("34204"), + cst_2$91=caml_string_of_jsbytes("2"), + cst_35160=caml_string_of_jsbytes("35160"), + cst_3$75=caml_string_of_jsbytes("3"), + cst_36148=caml_string_of_jsbytes("36148"), + cst_4$71=caml_string_of_jsbytes("4"), + cst_37119=caml_string_of_jsbytes("37119"), + cst_5$104=caml_string_of_jsbytes("5"), + cst_37906=caml_string_of_jsbytes("37906"), + cst_5$105=caml_string_of_jsbytes("5"), + cst_3301=caml_string_of_jsbytes("3301"), + cst_37906$0=caml_string_of_jsbytes("37906"), + cst_0$366=caml_string_of_jsbytes("0"), + cst_23158=caml_string_of_jsbytes("23158"), + cst_28388=caml_string_of_jsbytes("28388"), + cst_1$249=caml_string_of_jsbytes("1"), + cst_30732=caml_string_of_jsbytes("30732"), + cst_2$92=caml_string_of_jsbytes("2"), + cst_31797$1=caml_string_of_jsbytes("31797"), + cst_3$76=caml_string_of_jsbytes("3"), + cst_32892=caml_string_of_jsbytes("32892"), + cst_4$72=caml_string_of_jsbytes("4"), + cst_33972=caml_string_of_jsbytes("33972"), + cst_5$106=caml_string_of_jsbytes("5"), + cst_36378=caml_string_of_jsbytes("36378"), + cst_5$107=caml_string_of_jsbytes("5"), + cst_3163=caml_string_of_jsbytes("3163"), + cst_36378$0=caml_string_of_jsbytes("36378"), + cst_0$367=caml_string_of_jsbytes("0"), + cst_21723=caml_string_of_jsbytes("21723"), + cst_26350=caml_string_of_jsbytes("26350"), + cst_1$250=caml_string_of_jsbytes("1"), + cst_28727=caml_string_of_jsbytes("28727"), + cst_2$93=caml_string_of_jsbytes("2"), + cst_29915=caml_string_of_jsbytes("29915"), + cst_3$77=caml_string_of_jsbytes("3"), + cst_31118=caml_string_of_jsbytes("31118"), + cst_4$73=caml_string_of_jsbytes("4"), + cst_32306=caml_string_of_jsbytes("32306"), + cst_5$108=caml_string_of_jsbytes("5"), + cst_34713=caml_string_of_jsbytes("34713"), + cst_5$109=caml_string_of_jsbytes("5"), + cst_3009=caml_string_of_jsbytes("3009"), + cst_34713$0=caml_string_of_jsbytes("34713"), + cst_0$362=caml_string_of_jsbytes("0"), + cst_26714$0=caml_string_of_jsbytes("26714"), + cst_32194=caml_string_of_jsbytes("32194"), + cst_1$245=caml_string_of_jsbytes("1"), + cst_34614=caml_string_of_jsbytes("34614"), + cst_2$88=caml_string_of_jsbytes("2"), + cst_35582=caml_string_of_jsbytes("35582"), + cst_3$72=caml_string_of_jsbytes("3"), + cst_36582=caml_string_of_jsbytes("36582"), + cst_4$68=caml_string_of_jsbytes("4"), + cst_37564=caml_string_of_jsbytes("37564"), + cst_5$98=caml_string_of_jsbytes("5"), + cst_38361=caml_string_of_jsbytes("38361"), + cst_5$99=caml_string_of_jsbytes("5"), + cst_3341=caml_string_of_jsbytes("3341"), + cst_38361$0=caml_string_of_jsbytes("38361"), + cst_0$363=caml_string_of_jsbytes("0"), + cst_23436=caml_string_of_jsbytes("23436"), + cst_28729=caml_string_of_jsbytes("28729"), + cst_1$246=caml_string_of_jsbytes("1"), + cst_31101=caml_string_of_jsbytes("31101"), + cst_2$89=caml_string_of_jsbytes("2"), + cst_32179=caml_string_of_jsbytes("32179"), + cst_3$73=caml_string_of_jsbytes("3"), + cst_33287=caml_string_of_jsbytes("33287"), + cst_4$69=caml_string_of_jsbytes("4"), + cst_34380=caml_string_of_jsbytes("34380"), + cst_5$100=caml_string_of_jsbytes("5"), + cst_36815=caml_string_of_jsbytes("36815"), + cst_5$101=caml_string_of_jsbytes("5"), + cst_3201=caml_string_of_jsbytes("3201"), + cst_36815$0=caml_string_of_jsbytes("36815"), + cst_0$364=caml_string_of_jsbytes("0"), + cst_21984=caml_string_of_jsbytes("21984"), + cst_26666=caml_string_of_jsbytes("26666"), + cst_1$247=caml_string_of_jsbytes("1"), + cst_29072=caml_string_of_jsbytes("29072"), + cst_2$90=caml_string_of_jsbytes("2"), + cst_30274=caml_string_of_jsbytes("30274"), + cst_3$74=caml_string_of_jsbytes("3"), + cst_31491=caml_string_of_jsbytes("31491"), + cst_4$70=caml_string_of_jsbytes("4"), + cst_32694=caml_string_of_jsbytes("32694"), + cst_5$102=caml_string_of_jsbytes("5"), + cst_35130=caml_string_of_jsbytes("35130"), + cst_5$103=caml_string_of_jsbytes("5"), + cst_3045=caml_string_of_jsbytes("3045"), + cst_35130$0=caml_string_of_jsbytes("35130"), + cst_0$359=caml_string_of_jsbytes("0"), + cst_27195=caml_string_of_jsbytes("27195"), + cst_32773=caml_string_of_jsbytes("32773"), + cst_1$242=caml_string_of_jsbytes("1"), + cst_35237=caml_string_of_jsbytes("35237"), + cst_2$85=caml_string_of_jsbytes("2"), + cst_36222=caml_string_of_jsbytes("36222"), + cst_3$69=caml_string_of_jsbytes("3"), + cst_37240=caml_string_of_jsbytes("37240"), + cst_4$65=caml_string_of_jsbytes("4"), + cst_38240=caml_string_of_jsbytes("38240"), + cst_5$92=caml_string_of_jsbytes("5"), + cst_39051=caml_string_of_jsbytes("39051"), + cst_5$93=caml_string_of_jsbytes("5"), + cst_3401=caml_string_of_jsbytes("3401"), + cst_39051$0=caml_string_of_jsbytes("39051"), + cst_0$360=caml_string_of_jsbytes("0"), + cst_23858=caml_string_of_jsbytes("23858"), + cst_29246=caml_string_of_jsbytes("29246"), + cst_1$243=caml_string_of_jsbytes("1"), + cst_31661=caml_string_of_jsbytes("31661"), + cst_2$86=caml_string_of_jsbytes("2"), + cst_32758=caml_string_of_jsbytes("32758"), + cst_3$70=caml_string_of_jsbytes("3"), + cst_33886=caml_string_of_jsbytes("33886"), + cst_4$66=caml_string_of_jsbytes("4"), + cst_34999=caml_string_of_jsbytes("34999"), + cst_5$94=caml_string_of_jsbytes("5"), + cst_37478=caml_string_of_jsbytes("37478"), + cst_5$95=caml_string_of_jsbytes("5"), + cst_3259=caml_string_of_jsbytes("3259"), + cst_37478$0=caml_string_of_jsbytes("37478"), + cst_0$361=caml_string_of_jsbytes("0"), + cst_22380=caml_string_of_jsbytes("22380"), + cst_27146=caml_string_of_jsbytes("27146"), + cst_1$244=caml_string_of_jsbytes("1"), + cst_29595=caml_string_of_jsbytes("29595"), + cst_2$87=caml_string_of_jsbytes("2"), + cst_30819=caml_string_of_jsbytes("30819"), + cst_3$71=caml_string_of_jsbytes("3"), + cst_32058=caml_string_of_jsbytes("32058"), + cst_4$67=caml_string_of_jsbytes("4"), + cst_33282=caml_string_of_jsbytes("33282"), + cst_5$96=caml_string_of_jsbytes("5"), + cst_35762=caml_string_of_jsbytes("35762"), + cst_5$97=caml_string_of_jsbytes("5"), + cst_3100=caml_string_of_jsbytes("3100"), + cst_35762$0=caml_string_of_jsbytes("35762"), + cst_0$356=caml_string_of_jsbytes("0"), + cst_27956=caml_string_of_jsbytes("27956"), + cst_33691=caml_string_of_jsbytes("33691"), + cst_1$239=caml_string_of_jsbytes("1"), + cst_36224=caml_string_of_jsbytes("36224"), + cst_2$82=caml_string_of_jsbytes("2"), + cst_37236=caml_string_of_jsbytes("37236"), + cst_3$66=caml_string_of_jsbytes("3"), + cst_38283=caml_string_of_jsbytes("38283"), + cst_4$62=caml_string_of_jsbytes("4"), + cst_39311=caml_string_of_jsbytes("39311"), + cst_5$86=caml_string_of_jsbytes("5"), + cst_40144=caml_string_of_jsbytes("40144"), + cst_5$87=caml_string_of_jsbytes("5"), + cst_3496=caml_string_of_jsbytes("3496"), + cst_40144$0=caml_string_of_jsbytes("40144"), + cst_0$357=caml_string_of_jsbytes("0"), + cst_24526=caml_string_of_jsbytes("24526"), + cst_30065=caml_string_of_jsbytes("30065"), + cst_1$240=caml_string_of_jsbytes("1"), + cst_32548=caml_string_of_jsbytes("32548"), + cst_2$83=caml_string_of_jsbytes("2"), + cst_33675=caml_string_of_jsbytes("33675"), + cst_3$67=caml_string_of_jsbytes("3"), + cst_34865$0=caml_string_of_jsbytes("34865"), + cst_4$63=caml_string_of_jsbytes("4"), + cst_35979=caml_string_of_jsbytes("35979"), + cst_5$88=caml_string_of_jsbytes("5"), + cst_38527=caml_string_of_jsbytes("38527"), + cst_5$89=caml_string_of_jsbytes("5"), + cst_3350=caml_string_of_jsbytes("3350"), + cst_38527$0=caml_string_of_jsbytes("38527"), + cst_0$358=caml_string_of_jsbytes("0"), + cst_23007=caml_string_of_jsbytes("23007"), + cst_27906=caml_string_of_jsbytes("27906"), + cst_1$241=caml_string_of_jsbytes("1"), + cst_30424=caml_string_of_jsbytes("30424"), + cst_2$84=caml_string_of_jsbytes("2"), + cst_31682=caml_string_of_jsbytes("31682"), + cst_3$68=caml_string_of_jsbytes("3"), + cst_32956$0=caml_string_of_jsbytes("32956"), + cst_4$64=caml_string_of_jsbytes("4"), + cst_34214=caml_string_of_jsbytes("34214"), + cst_5$90=caml_string_of_jsbytes("5"), + cst_36733=caml_string_of_jsbytes("36733"), + cst_5$91=caml_string_of_jsbytes("5"), + cst_3187=caml_string_of_jsbytes("3187"), + cst_36733$0=caml_string_of_jsbytes("36733"), + cst_0$353=caml_string_of_jsbytes("0"), + cst_28728=caml_string_of_jsbytes("28728"), + cst_34621=caml_string_of_jsbytes("34621"), + cst_1$236=caml_string_of_jsbytes("1"), + cst_37224=caml_string_of_jsbytes("37224"), + cst_2$79=caml_string_of_jsbytes("2"), + cst_38264=caml_string_of_jsbytes("38264"), + cst_3$63=caml_string_of_jsbytes("3"), + cst_39340$0=caml_string_of_jsbytes("39340"), + cst_4$59=caml_string_of_jsbytes("4"), + cst_40396=caml_string_of_jsbytes("40396"), + cst_5$80=caml_string_of_jsbytes("5"), + cst_41252=caml_string_of_jsbytes("41252"), + cst_5$81=caml_string_of_jsbytes("5"), + cst_3592=caml_string_of_jsbytes("3592"), + cst_41252$0=caml_string_of_jsbytes("41252"), + cst_0$354=caml_string_of_jsbytes("0"), + cst_25203=caml_string_of_jsbytes("25203"), + cst_30895=caml_string_of_jsbytes("30895"), + cst_1$237=caml_string_of_jsbytes("1"), + cst_33446=caml_string_of_jsbytes("33446"), + cst_2$80=caml_string_of_jsbytes("2"), + cst_34604=caml_string_of_jsbytes("34604"), + cst_3$64=caml_string_of_jsbytes("3"), + cst_35796=caml_string_of_jsbytes("35796"), + cst_4$60=caml_string_of_jsbytes("4"), + cst_36972=caml_string_of_jsbytes("36972"), + cst_5$82=caml_string_of_jsbytes("5"), + cst_39590=caml_string_of_jsbytes("39590"), + cst_5$83=caml_string_of_jsbytes("5"), + cst_3442=caml_string_of_jsbytes("3442"), + cst_39590$0=caml_string_of_jsbytes("39590"), + cst_0$355=caml_string_of_jsbytes("0"), + cst_23642=caml_string_of_jsbytes("23642"), + cst_28676=caml_string_of_jsbytes("28676"), + cst_1$238=caml_string_of_jsbytes("1"), + cst_31264$0=caml_string_of_jsbytes("31264"), + cst_2$81=caml_string_of_jsbytes("2"), + cst_32556=caml_string_of_jsbytes("32556"), + cst_3$65=caml_string_of_jsbytes("3"), + cst_33866=caml_string_of_jsbytes("33866"), + cst_4$61=caml_string_of_jsbytes("4"), + cst_35158=caml_string_of_jsbytes("35158"), + cst_5$84=caml_string_of_jsbytes("5"), + cst_37778=caml_string_of_jsbytes("37778"), + cst_5$85=caml_string_of_jsbytes("5"), + cst_3275=caml_string_of_jsbytes("3275"), + cst_37778$0=caml_string_of_jsbytes("37778"), + cst_0$350=caml_string_of_jsbytes("0"), + cst_29575=caml_string_of_jsbytes("29575"), + cst_35642=caml_string_of_jsbytes("35642"), + cst_1$233=caml_string_of_jsbytes("1"), + cst_38322=caml_string_of_jsbytes("38322"), + cst_2$76=caml_string_of_jsbytes("2"), + cst_39393=caml_string_of_jsbytes("39393"), + cst_3$60=caml_string_of_jsbytes("3"), + cst_40501=caml_string_of_jsbytes("40501"), + cst_4$56=caml_string_of_jsbytes("4"), + cst_41588=caml_string_of_jsbytes("41588"), + cst_5$74=caml_string_of_jsbytes("5"), + cst_42469=caml_string_of_jsbytes("42469"), + cst_5$75=caml_string_of_jsbytes("5"), + cst_3698=caml_string_of_jsbytes("3698"), + cst_42469$0=caml_string_of_jsbytes("42469"), + cst_0$351=caml_string_of_jsbytes("0"), + cst_25946=caml_string_of_jsbytes("25946"), + cst_31806=caml_string_of_jsbytes("31806"), + cst_1$234=caml_string_of_jsbytes("1"), + cst_34433=caml_string_of_jsbytes("34433"), + cst_2$77=caml_string_of_jsbytes("2"), + cst_35625=caml_string_of_jsbytes("35625"), + cst_3$61=caml_string_of_jsbytes("3"), + cst_36852=caml_string_of_jsbytes("36852"), + cst_4$57=caml_string_of_jsbytes("4"), + cst_38063=caml_string_of_jsbytes("38063"), + cst_5$76=caml_string_of_jsbytes("5"), + cst_40758=caml_string_of_jsbytes("40758"), + cst_5$77=caml_string_of_jsbytes("5"), + cst_3544=caml_string_of_jsbytes("3544"), + cst_40758$0=caml_string_of_jsbytes("40758"), + cst_0$352=caml_string_of_jsbytes("0"), + cst_24339=caml_string_of_jsbytes("24339"), + cst_29522=caml_string_of_jsbytes("29522"), + cst_1$235=caml_string_of_jsbytes("1"), + cst_32186=caml_string_of_jsbytes("32186"), + cst_2$78=caml_string_of_jsbytes("2"), + cst_33516=caml_string_of_jsbytes("33516"), + cst_3$62=caml_string_of_jsbytes("3"), + cst_34865=caml_string_of_jsbytes("34865"), + cst_4$58=caml_string_of_jsbytes("4"), + cst_36195=caml_string_of_jsbytes("36195"), + cst_5$78=caml_string_of_jsbytes("5"), + cst_38892=caml_string_of_jsbytes("38892"), + cst_5$79=caml_string_of_jsbytes("5"), + cst_3372=caml_string_of_jsbytes("3372"), + cst_38892$0=caml_string_of_jsbytes("38892"), + cst_0$347=caml_string_of_jsbytes("0"), + cst_29670=caml_string_of_jsbytes("29670"), + cst_35757=caml_string_of_jsbytes("35757"), + cst_1$230=caml_string_of_jsbytes("1"), + cst_38445=caml_string_of_jsbytes("38445"), + cst_2$73=caml_string_of_jsbytes("2"), + cst_39519=caml_string_of_jsbytes("39519"), + cst_3$57=caml_string_of_jsbytes("3"), + cst_40601=caml_string_of_jsbytes("40601"), + cst_4$53=caml_string_of_jsbytes("4"), + cst_41721=caml_string_of_jsbytes("41721"), + cst_5$68=caml_string_of_jsbytes("5"), + cst_42605=caml_string_of_jsbytes("42605"), + cst_5$69=caml_string_of_jsbytes("5"), + cst_3710=caml_string_of_jsbytes("3710"), + cst_42605$0=caml_string_of_jsbytes("42605"), + cst_0$348=caml_string_of_jsbytes("0"), + cst_26029=caml_string_of_jsbytes("26029"), + cst_31908=caml_string_of_jsbytes("31908"), + cst_1$231=caml_string_of_jsbytes("1"), + cst_34643=caml_string_of_jsbytes("34643"), + cst_2$74=caml_string_of_jsbytes("2"), + cst_35739=caml_string_of_jsbytes("35739"), + cst_3$58=caml_string_of_jsbytes("3"), + cst_36970=caml_string_of_jsbytes("36970"), + cst_4$54=caml_string_of_jsbytes("4"), + cst_38185=caml_string_of_jsbytes("38185"), + cst_5$70=caml_string_of_jsbytes("5"), + cst_40888=caml_string_of_jsbytes("40888"), + cst_5$71=caml_string_of_jsbytes("5"), + cst_3555=caml_string_of_jsbytes("3555"), + cst_40888$0=caml_string_of_jsbytes("40888"), + cst_0$349=caml_string_of_jsbytes("0"), + cst_24417=caml_string_of_jsbytes("24417"), + cst_29616=caml_string_of_jsbytes("29616"), + cst_1$232=caml_string_of_jsbytes("1"), + cst_32289=caml_string_of_jsbytes("32289"), + cst_2$75=caml_string_of_jsbytes("2"), + cst_33623$0=caml_string_of_jsbytes("33623"), + cst_3$59=caml_string_of_jsbytes("3"), + cst_34977=caml_string_of_jsbytes("34977"), + cst_4$55=caml_string_of_jsbytes("4"), + cst_36311=caml_string_of_jsbytes("36311"), + cst_5$72=caml_string_of_jsbytes("5"), + cst_39016=caml_string_of_jsbytes("39016"), + cst_5$73=caml_string_of_jsbytes("5"), + cst_3383=caml_string_of_jsbytes("3383"), + cst_39016$0=caml_string_of_jsbytes("39016"), + cst_0$344=caml_string_of_jsbytes("0"), + cst_29996=caml_string_of_jsbytes("29996"), + cst_36149=caml_string_of_jsbytes("36149"), + cst_1$227=caml_string_of_jsbytes("1"), + cst_38868=caml_string_of_jsbytes("38868"), + cst_2$70=caml_string_of_jsbytes("2"), + cst_39954=caml_string_of_jsbytes("39954"), + cst_3$54=caml_string_of_jsbytes("3"), + cst_41078=caml_string_of_jsbytes("41078"), + cst_4$50=caml_string_of_jsbytes("4"), + cst_42180=caml_string_of_jsbytes("42180"), + cst_5$62=caml_string_of_jsbytes("5"), + cst_43074=caml_string_of_jsbytes("43074"), + cst_5$63=caml_string_of_jsbytes("5"), + cst_3751=caml_string_of_jsbytes("3751"), + cst_43074$0=caml_string_of_jsbytes("43074"), + cst_0$345=caml_string_of_jsbytes("0"), + cst_26315=caml_string_of_jsbytes("26315"), + cst_32259=caml_string_of_jsbytes("32259"), + cst_1$228=caml_string_of_jsbytes("1"), + cst_34923=caml_string_of_jsbytes("34923"), + cst_2$71=caml_string_of_jsbytes("2"), + cst_36132=caml_string_of_jsbytes("36132"), + cst_3$55=caml_string_of_jsbytes("3"), + cst_37373=caml_string_of_jsbytes("37373"), + cst_4$51=caml_string_of_jsbytes("4"), + cst_38605=caml_string_of_jsbytes("38605"), + cst_5$64=caml_string_of_jsbytes("5"), + cst_41338=caml_string_of_jsbytes("41338"), + cst_5$65=caml_string_of_jsbytes("5"), + cst_3594=caml_string_of_jsbytes("3594"), + cst_41338$0=caml_string_of_jsbytes("41338"), + cst_0$346=caml_string_of_jsbytes("0"), + cst_24686=caml_string_of_jsbytes("24686"), + cst_29942=caml_string_of_jsbytes("29942"), + cst_1$229=caml_string_of_jsbytes("1"), + cst_32644=caml_string_of_jsbytes("32644"), + cst_2$72=caml_string_of_jsbytes("2"), + cst_33993=caml_string_of_jsbytes("33993"), + cst_3$56=caml_string_of_jsbytes("3"), + cst_35362=caml_string_of_jsbytes("35362"), + cst_4$52=caml_string_of_jsbytes("4"), + cst_36710=caml_string_of_jsbytes("36710"), + cst_5$66=caml_string_of_jsbytes("5"), + cst_39445=caml_string_of_jsbytes("39445"), + cst_5$67=caml_string_of_jsbytes("5"), + cst_3420=caml_string_of_jsbytes("3420"), + cst_39445$0=caml_string_of_jsbytes("39445"), + cst_0$341=caml_string_of_jsbytes("0"), + cst_30296=caml_string_of_jsbytes("30296"), + cst_36510=caml_string_of_jsbytes("36510"), + cst_1$224=caml_string_of_jsbytes("1"), + cst_39257=caml_string_of_jsbytes("39257"), + cst_2$67=caml_string_of_jsbytes("2"), + cst_40354=caml_string_of_jsbytes("40354"), + cst_3$51=caml_string_of_jsbytes("3"), + cst_41489=caml_string_of_jsbytes("41489"), + cst_4$47=caml_string_of_jsbytes("4"), + cst_42602=caml_string_of_jsbytes("42602"), + cst_5$56=caml_string_of_jsbytes("5"), + cst_43505=caml_string_of_jsbytes("43505"), + cst_5$57=caml_string_of_jsbytes("5"), + cst_3789=caml_string_of_jsbytes("3789"), + cst_43505$0=caml_string_of_jsbytes("43505"), + cst_0$342=caml_string_of_jsbytes("0"), + cst_26578=caml_string_of_jsbytes("26578"), + cst_32582=caml_string_of_jsbytes("32582"), + cst_1$225=caml_string_of_jsbytes("1"), + cst_35272=caml_string_of_jsbytes("35272"), + cst_2$68=caml_string_of_jsbytes("2"), + cst_36493=caml_string_of_jsbytes("36493"), + cst_3$52=caml_string_of_jsbytes("3"), + cst_37751=caml_string_of_jsbytes("37751"), + cst_4$48=caml_string_of_jsbytes("4"), + cst_38991=caml_string_of_jsbytes("38991"), + cst_5$58=caml_string_of_jsbytes("5"), + cst_41751=caml_string_of_jsbytes("41751"), + cst_5$59=caml_string_of_jsbytes("5"), + cst_3630=caml_string_of_jsbytes("3630"), + cst_41751$0=caml_string_of_jsbytes("41751"), + cst_0$343=caml_string_of_jsbytes("0"), + cst_24933=caml_string_of_jsbytes("24933"), + cst_30241=caml_string_of_jsbytes("30241"), + cst_1$226=caml_string_of_jsbytes("1"), + cst_32970=caml_string_of_jsbytes("32970"), + cst_2$69=caml_string_of_jsbytes("2"), + cst_34333=caml_string_of_jsbytes("34333"), + cst_3$53=caml_string_of_jsbytes("3"), + cst_35716=caml_string_of_jsbytes("35716"), + cst_4$49=caml_string_of_jsbytes("4"), + cst_37077=caml_string_of_jsbytes("37077"), + cst_5$60=caml_string_of_jsbytes("5"), + cst_39839=caml_string_of_jsbytes("39839"), + cst_5$61=caml_string_of_jsbytes("5"), + cst_3454=caml_string_of_jsbytes("3454"), + cst_39839$0=caml_string_of_jsbytes("39839"), + cst_0$338=caml_string_of_jsbytes("0"), + cst_30947=caml_string_of_jsbytes("30947"), + cst_37295=caml_string_of_jsbytes("37295"), + cst_1$221=caml_string_of_jsbytes("1"), + cst_40101=caml_string_of_jsbytes("40101"), + cst_2$64=caml_string_of_jsbytes("2"), + cst_41222=caml_string_of_jsbytes("41222"), + cst_3$48=caml_string_of_jsbytes("3"), + cst_42381=caml_string_of_jsbytes("42381"), + cst_4$44=caml_string_of_jsbytes("4"), + cst_43518=caml_string_of_jsbytes("43518"), + cst_5$50=caml_string_of_jsbytes("5"), + cst_44440=caml_string_of_jsbytes("44440"), + cst_5$51=caml_string_of_jsbytes("5"), + cst_3870=caml_string_of_jsbytes("3870"), + cst_44440$0=caml_string_of_jsbytes("44440"), + cst_0$339=caml_string_of_jsbytes("0"), + cst_27149=caml_string_of_jsbytes("27149"), + cst_33283=caml_string_of_jsbytes("33283"), + cst_1$222=caml_string_of_jsbytes("1"), + cst_36030=caml_string_of_jsbytes("36030"), + cst_2$65=caml_string_of_jsbytes("2"), + cst_37278=caml_string_of_jsbytes("37278"), + cst_3$49=caml_string_of_jsbytes("3"), + cst_38563=caml_string_of_jsbytes("38563"), + cst_4$45=caml_string_of_jsbytes("4"), + cst_39829=caml_string_of_jsbytes("39829"), + cst_5$52=caml_string_of_jsbytes("5"), + cst_42649=caml_string_of_jsbytes("42649"), + cst_5$53=caml_string_of_jsbytes("5"), + cst_3708=caml_string_of_jsbytes("3708"), + cst_42659=caml_string_of_jsbytes("42659"), + cst_0$340=caml_string_of_jsbytes("0"), + cst_25469=caml_string_of_jsbytes("25469"), + cst_30891=caml_string_of_jsbytes("30891"), + cst_1$223=caml_string_of_jsbytes("1"), + cst_33679=caml_string_of_jsbytes("33679"), + cst_2$66=caml_string_of_jsbytes("2"), + cst_35071=caml_string_of_jsbytes("35071"), + cst_3$50=caml_string_of_jsbytes("3"), + cst_36484=caml_string_of_jsbytes("36484"), + cst_4$46=caml_string_of_jsbytes("4"), + cst_37874=caml_string_of_jsbytes("37874"), + cst_5$54=caml_string_of_jsbytes("5"), + cst_40696=caml_string_of_jsbytes("40696"), + cst_5$55=caml_string_of_jsbytes("5"), + cst_3528=caml_string_of_jsbytes("3528"), + cst_40696$0=caml_string_of_jsbytes("40696"), + cst_0$335=caml_string_of_jsbytes("0"), + cst_31123=caml_string_of_jsbytes("31123"), + cst_37508=caml_string_of_jsbytes("37508"), + cst_1$218=caml_string_of_jsbytes("1"), + cst_40330=caml_string_of_jsbytes("40330"), + cst_2$61=caml_string_of_jsbytes("2"), + cst_41457=caml_string_of_jsbytes("41457"), + cst_3$45=caml_string_of_jsbytes("3"), + cst_42623=caml_string_of_jsbytes("42623"), + cst_4$41=caml_string_of_jsbytes("4"), + cst_43766=caml_string_of_jsbytes("43766"), + cst_5$44=caml_string_of_jsbytes("5"), + cst_44693=caml_string_of_jsbytes("44693"), + cst_5$45=caml_string_of_jsbytes("5"), + cst_3892=caml_string_of_jsbytes("3892"), + cst_44693$0=caml_string_of_jsbytes("44693"), + cst_0$336=caml_string_of_jsbytes("0"), + cst_27304=caml_string_of_jsbytes("27304"), + cst_33473=caml_string_of_jsbytes("33473"), + cst_1$219=caml_string_of_jsbytes("1"), + cst_36235=caml_string_of_jsbytes("36235"), + cst_2$62=caml_string_of_jsbytes("2"), + cst_37490=caml_string_of_jsbytes("37490"), + cst_3$46=caml_string_of_jsbytes("3"), + cst_38783=caml_string_of_jsbytes("38783"), + cst_4$42=caml_string_of_jsbytes("4"), + cst_40056=caml_string_of_jsbytes("40056"), + cst_5$46=caml_string_of_jsbytes("5"), + cst_42892=caml_string_of_jsbytes("42892"), + cst_5$47=caml_string_of_jsbytes("5"), + cst_3729=caml_string_of_jsbytes("3729"), + cst_42892$0=caml_string_of_jsbytes("42892"), + cst_0$337=caml_string_of_jsbytes("0"), + cst_25614=caml_string_of_jsbytes("25614"), + cst_31067=caml_string_of_jsbytes("31067"), + cst_1$220=caml_string_of_jsbytes("1"), + cst_33871=caml_string_of_jsbytes("33871"), + cst_2$63=caml_string_of_jsbytes("2"), + cst_35271=caml_string_of_jsbytes("35271"), + cst_3$47=caml_string_of_jsbytes("3"), + cst_36692=caml_string_of_jsbytes("36692"), + cst_4$43=caml_string_of_jsbytes("4"), + cst_38090=caml_string_of_jsbytes("38090"), + cst_5$48=caml_string_of_jsbytes("5"), + cst_40928=caml_string_of_jsbytes("40928"), + cst_5$49=caml_string_of_jsbytes("5"), + cst_3548=caml_string_of_jsbytes("3548"), + cst_40928$0=caml_string_of_jsbytes("40928"), + cst_0$332=caml_string_of_jsbytes("0"), + cst_31148=caml_string_of_jsbytes("31148"), + cst_37538=caml_string_of_jsbytes("37538"), + cst_1$215=caml_string_of_jsbytes("1"), + cst_40362=caml_string_of_jsbytes("40362"), + cst_2$58=caml_string_of_jsbytes("2"), + cst_41490=caml_string_of_jsbytes("41490"), + cst_3$42=caml_string_of_jsbytes("3"), + cst_42657=caml_string_of_jsbytes("42657"), + cst_4$38=caml_string_of_jsbytes("4"), + cst_43801=caml_string_of_jsbytes("43801"), + cst_5$38=caml_string_of_jsbytes("5"), + cst_44729=caml_string_of_jsbytes("44729"), + cst_5$39=caml_string_of_jsbytes("5"), + cst_3895=caml_string_of_jsbytes("3895"), + cst_44729$0=caml_string_of_jsbytes("44729"), + cst_0$333=caml_string_of_jsbytes("0"), + cst_27326=caml_string_of_jsbytes("27326"), + cst_33500$0=caml_string_of_jsbytes("33500"), + cst_1$216=caml_string_of_jsbytes("1"), + cst_36264=caml_string_of_jsbytes("36264"), + cst_2$59=caml_string_of_jsbytes("2"), + cst_37520=caml_string_of_jsbytes("37520"), + cst_3$43=caml_string_of_jsbytes("3"), + cst_38814=caml_string_of_jsbytes("38814"), + cst_4$39=caml_string_of_jsbytes("4"), + cst_40088=caml_string_of_jsbytes("40088"), + cst_5$40=caml_string_of_jsbytes("5"), + cst_42926=caml_string_of_jsbytes("42926"), + cst_5$41=caml_string_of_jsbytes("5"), + cst_3732=caml_string_of_jsbytes("3732"), + cst_42926$0=caml_string_of_jsbytes("42926"), + cst_0$334=caml_string_of_jsbytes("0"), + cst_25634=caml_string_of_jsbytes("25634"), + cst_31092=caml_string_of_jsbytes("31092"), + cst_1$217=caml_string_of_jsbytes("1"), + cst_33898=caml_string_of_jsbytes("33898"), + cst_2$60=caml_string_of_jsbytes("2"), + cst_35299=caml_string_of_jsbytes("35299"), + cst_3$44=caml_string_of_jsbytes("3"), + cst_36721=caml_string_of_jsbytes("36721"), + cst_4$40=caml_string_of_jsbytes("4"), + cst_38120=caml_string_of_jsbytes("38120"), + cst_5$42=caml_string_of_jsbytes("5"), + cst_40961=caml_string_of_jsbytes("40961"), + cst_5$43=caml_string_of_jsbytes("5"), + cst_3551=caml_string_of_jsbytes("3551"), + cst_40961$0=caml_string_of_jsbytes("40961"), + cst_0$329=caml_string_of_jsbytes("0"), + cst_31382=caml_string_of_jsbytes("31382"), + cst_37820=caml_string_of_jsbytes("37820"), + cst_1$212=caml_string_of_jsbytes("1"), + cst_40665=caml_string_of_jsbytes("40665"), + cst_2$55=caml_string_of_jsbytes("2"), + cst_41801=caml_string_of_jsbytes("41801"), + cst_3$39=caml_string_of_jsbytes("3"), + cst_42977=caml_string_of_jsbytes("42977"), + cst_4$35=caml_string_of_jsbytes("4"), + cst_44130=caml_string_of_jsbytes("44130"), + cst_5$32=caml_string_of_jsbytes("5"), + cst_45064=caml_string_of_jsbytes("45064"), + cst_5$33=caml_string_of_jsbytes("5"), + cst_3924=caml_string_of_jsbytes("3924"), + cst_45064$0=caml_string_of_jsbytes("45064"), + cst_0$330=caml_string_of_jsbytes("0"), + cst_27531=caml_string_of_jsbytes("27531"), + cst_33751=caml_string_of_jsbytes("33751"), + cst_1$213=caml_string_of_jsbytes("1"), + cst_36536=caml_string_of_jsbytes("36536"), + cst_2$56=caml_string_of_jsbytes("2"), + cst_37801=caml_string_of_jsbytes("37801"), + cst_3$40=caml_string_of_jsbytes("3"), + cst_39105=caml_string_of_jsbytes("39105"), + cst_4$36=caml_string_of_jsbytes("4"), + cst_40389=caml_string_of_jsbytes("40389"), + cst_5$34=caml_string_of_jsbytes("5"), + cst_43248=caml_string_of_jsbytes("43248"), + cst_5$35=caml_string_of_jsbytes("5"), + cst_3760=caml_string_of_jsbytes("3760"), + cst_43248$0=caml_string_of_jsbytes("43248"), + cst_0$331=caml_string_of_jsbytes("0"), + cst_25826=caml_string_of_jsbytes("25826"), + cst_31325=caml_string_of_jsbytes("31325"), + cst_1$214=caml_string_of_jsbytes("1"), + cst_34152=caml_string_of_jsbytes("34152"), + cst_2$57=caml_string_of_jsbytes("2"), + cst_35564=caml_string_of_jsbytes("35564"), + cst_3$41=caml_string_of_jsbytes("3"), + cst_36996=caml_string_of_jsbytes("36996"), + cst_4$37=caml_string_of_jsbytes("4"), + cst_38406=caml_string_of_jsbytes("38406"), + cst_5$36=caml_string_of_jsbytes("5"), + cst_41268=caml_string_of_jsbytes("41268"), + cst_5$37=caml_string_of_jsbytes("5"), + cst_3578=caml_string_of_jsbytes("3578"), + cst_41268$0=caml_string_of_jsbytes("41268"), + cst_0$326=caml_string_of_jsbytes("0"), + cst_31476=caml_string_of_jsbytes("31476"), + cst_37933=caml_string_of_jsbytes("37933"), + cst_1$209=caml_string_of_jsbytes("1"), + cst_40787=caml_string_of_jsbytes("40787"), + cst_2$52=caml_string_of_jsbytes("2"), + cst_41927=caml_string_of_jsbytes("41927"), + cst_3$36=caml_string_of_jsbytes("3"), + cst_43106=caml_string_of_jsbytes("43106"), + cst_4$32=caml_string_of_jsbytes("4"), + cst_44262=caml_string_of_jsbytes("44262"), + cst_5$26=caml_string_of_jsbytes("5"), + cst_45200=caml_string_of_jsbytes("45200"), + cst_5$27=caml_string_of_jsbytes("5"), + cst_3936=caml_string_of_jsbytes("3936"), + cst_45200$0=caml_string_of_jsbytes("45200"), + cst_0$327=caml_string_of_jsbytes("0"), + cst_27614=caml_string_of_jsbytes("27614"), + cst_33853=caml_string_of_jsbytes("33853"), + cst_1$210=caml_string_of_jsbytes("1"), + cst_36646=caml_string_of_jsbytes("36646"), + cst_2$53=caml_string_of_jsbytes("2"), + cst_37915=caml_string_of_jsbytes("37915"), + cst_3$37=caml_string_of_jsbytes("3"), + cst_39222=caml_string_of_jsbytes("39222"), + cst_4$33=caml_string_of_jsbytes("4"), + cst_40510=caml_string_of_jsbytes("40510"), + cst_5$28=caml_string_of_jsbytes("5"), + cst_43378=caml_string_of_jsbytes("43378"), + cst_5$29=caml_string_of_jsbytes("5"), + cst_3771=caml_string_of_jsbytes("3771"), + cst_43378$0=caml_string_of_jsbytes("43378"), + cst_0$328=caml_string_of_jsbytes("0"), + cst_25904=caml_string_of_jsbytes("25904"), + cst_31419=caml_string_of_jsbytes("31419"), + cst_1$211=caml_string_of_jsbytes("1"), + cst_34255=caml_string_of_jsbytes("34255"), + cst_2$54=caml_string_of_jsbytes("2"), + cst_35670=caml_string_of_jsbytes("35670"), + cst_3$38=caml_string_of_jsbytes("3"), + cst_37107=caml_string_of_jsbytes("37107"), + cst_4$34=caml_string_of_jsbytes("4"), + cst_38521=caml_string_of_jsbytes("38521"), + cst_5$30=caml_string_of_jsbytes("5"), + cst_41392=caml_string_of_jsbytes("41392"), + cst_5$31=caml_string_of_jsbytes("5"), + cst_3588=caml_string_of_jsbytes("3588"), + cst_41392$0=caml_string_of_jsbytes("41392"), + cst_500$3=caml_string_of_jsbytes("500"), + cst_1000$4=caml_string_of_jsbytes("1000"), + cst_1500$1=caml_string_of_jsbytes("1500"), + cst_390000=caml_string_of_jsbytes("390000"), + cst_0_0234$1=caml_string_of_jsbytes("0.0234"), + cst_16_25$0=caml_string_of_jsbytes("16.25"), + cst_6$71=caml_string_of_jsbytes("6"), + cst_6$70=caml_string_of_jsbytes("6."), + cst_6$69=caml_string_of_jsbytes("6"), + cst_6$68=caml_string_of_jsbytes("6."), + cst_6$67=caml_string_of_jsbytes("6"), + cst_6$66=caml_string_of_jsbytes("6."), + cst_6$65=caml_string_of_jsbytes("6"), + cst_6$64=caml_string_of_jsbytes("6."), + cst_6$63=caml_string_of_jsbytes("6"), + cst_6$62=caml_string_of_jsbytes("6."), + cst_6_55957$0=caml_string_of_jsbytes("6.55957"), + cst_1$208=caml_string_of_jsbytes("1."), + cst_0$325=caml_string_of_jsbytes("0"), + cst_50$2=caml_string_of_jsbytes("50"), + cst_0$323=caml_string_of_jsbytes("0"), + cst_0$324=caml_string_of_jsbytes("0"), + cst_0$321=caml_string_of_jsbytes("0"), + cst_0$322=caml_string_of_jsbytes("0"), + cst_0$320=caml_string_of_jsbytes("0"), + cst_0$318=caml_string_of_jsbytes("0"), + cst_0$319=caml_string_of_jsbytes("0"), + cst_969$7=caml_string_of_jsbytes("969"), + cst_3767$7=caml_string_of_jsbytes("3767"), + cst_969$5=caml_string_of_jsbytes("969"), + cst_3767$5=caml_string_of_jsbytes("3767"), + cst_6$61=caml_string_of_jsbytes("6."), + cst_969$6=caml_string_of_jsbytes("969"), + cst_3767$6=caml_string_of_jsbytes("3767"), + cst_936$9=caml_string_of_jsbytes("936"), + cst_3640$9=caml_string_of_jsbytes("3640"), + cst_6$60=caml_string_of_jsbytes("6."), + cst_936$10=caml_string_of_jsbytes("936"), + cst_3640$10=caml_string_of_jsbytes("3640"), + cst_936$7=caml_string_of_jsbytes("936"), + cst_3640$7=caml_string_of_jsbytes("3640"), + cst_6$59=caml_string_of_jsbytes("6."), + cst_936$8=caml_string_of_jsbytes("936"), + cst_3640$8=caml_string_of_jsbytes("3640"), + cst_932$3=caml_string_of_jsbytes("932"), + cst_3625$3=caml_string_of_jsbytes("3625"), + cst_6$58=caml_string_of_jsbytes("6."), + cst_932$4=caml_string_of_jsbytes("932"), + cst_3625$4=caml_string_of_jsbytes("3625"), + cst_929$3=caml_string_of_jsbytes("929"), + cst_3614$3=caml_string_of_jsbytes("3614"), + cst_6$57=caml_string_of_jsbytes("6."), + cst_929$4=caml_string_of_jsbytes("929"), + cst_3614$4=caml_string_of_jsbytes("3614"), + cst_0$317=caml_string_of_jsbytes("0"), + cst_5612$3=caml_string_of_jsbytes("5612"), + cst_1272$3=caml_string_of_jsbytes("1272"), + cst_5612$4=caml_string_of_jsbytes("5612"), + cst_0$316=caml_string_of_jsbytes("0"), + cst_5422$3=caml_string_of_jsbytes("5422"), + cst_1229$3=caml_string_of_jsbytes("1229"), + cst_5422$4=caml_string_of_jsbytes("5422"), + cst_0$315=caml_string_of_jsbytes("0"), + cst_5399$3=caml_string_of_jsbytes("5399"), + cst_1224$3=caml_string_of_jsbytes("1224"), + cst_5399$4=caml_string_of_jsbytes("5399"), + cst_8708=caml_string_of_jsbytes("8708"), + cst_13559=caml_string_of_jsbytes("13559"), + cst_21362=caml_string_of_jsbytes("21362"), + cst_33196=caml_string_of_jsbytes("33196"), + cst_17607$0=caml_string_of_jsbytes("17607"), + cst_27365$0=caml_string_of_jsbytes("27365"), + cst_17607=caml_string_of_jsbytes("17607"), + cst_27365=caml_string_of_jsbytes("27365"), + cst_8414=caml_string_of_jsbytes("8414"), + cst_13100=caml_string_of_jsbytes("13100"), + cst_20640=caml_string_of_jsbytes("20640"), + cst_32073=caml_string_of_jsbytes("32073"), + cst_17012$0=caml_string_of_jsbytes("17012"), + cst_26440$0=caml_string_of_jsbytes("26440"), + cst_17012=caml_string_of_jsbytes("17012"), + cst_26440=caml_string_of_jsbytes("26440"), + cst_8379=caml_string_of_jsbytes("8379"), + cst_13045=caml_string_of_jsbytes("13045"), + cst_20554=caml_string_of_jsbytes("20554"), + cst_31939=caml_string_of_jsbytes("31939"), + cst_16941$0=caml_string_of_jsbytes("16941"), + cst_26329$0=caml_string_of_jsbytes("26329"), + cst_16941=caml_string_of_jsbytes("16941"), + cst_26329=caml_string_of_jsbytes("26329"), + cst_1000$3=caml_string_of_jsbytes("1000"), + cst_500$2=caml_string_of_jsbytes("500"), + cst_1500$0=caml_string_of_jsbytes("1500"), + cst_6$56=caml_string_of_jsbytes("6"), + cst_6$55=caml_string_of_jsbytes("6."), + cst_6$54=caml_string_of_jsbytes("6"), + cst_6$53=caml_string_of_jsbytes("6."), + cst_6$52=caml_string_of_jsbytes("6"), + cst_6$51=caml_string_of_jsbytes("6."), + cst_6$50=caml_string_of_jsbytes("6"), + cst_6$49=caml_string_of_jsbytes("6."), + cst_6$48=caml_string_of_jsbytes("6"), + cst_6$47=caml_string_of_jsbytes("6."), + cst_0$314=caml_string_of_jsbytes("0"), + cst_169$2=caml_string_of_jsbytes("169."), + cst_0_55$2=caml_string_of_jsbytes("0.55"), + cst_169$1=caml_string_of_jsbytes("169."), + cst_0_55$1=caml_string_of_jsbytes("0.55"), + cst_12$15=caml_string_of_jsbytes("12."), + cst_0$313=caml_string_of_jsbytes("0"), + cst_0$312=caml_string_of_jsbytes("0"), + cst_0$311=caml_string_of_jsbytes("0"), + cst_258900=caml_string_of_jsbytes("258900"), + cst_9500=caml_string_of_jsbytes("9500"), + cst_0$305=caml_string_of_jsbytes("0"), + cst_0$306=caml_string_of_jsbytes("0"), + cst_2$51=caml_string_of_jsbytes("2"), + cst_90100=caml_string_of_jsbytes("90100"), + cst_135000=caml_string_of_jsbytes("135000"), + cst_0$307=caml_string_of_jsbytes("0"), + cst_0$308=caml_string_of_jsbytes("0"), + cst_0$309=caml_string_of_jsbytes("0"), + cst_0$310=caml_string_of_jsbytes("0"), + cst_0$304=caml_string_of_jsbytes("0"), + cst_0$303=caml_string_of_jsbytes("0"), + cst_0$301=caml_string_of_jsbytes("0"), + cst_0$302=caml_string_of_jsbytes("0"), + cst_50$1=caml_string_of_jsbytes("50"), + cst_0$299=caml_string_of_jsbytes("0"), + cst_0$300=caml_string_of_jsbytes("0"), + cst_0_95$3=caml_string_of_jsbytes("0.95"), + cst_0_95$4=caml_string_of_jsbytes("0.95"), + cst_0$297=caml_string_of_jsbytes("0"), + cst_0$298=caml_string_of_jsbytes("0"), + cst_100$10=caml_string_of_jsbytes("100."), + cst_100$11=caml_string_of_jsbytes("100."), + cst_0_005$2=caml_string_of_jsbytes("0.005"), + cst_12$14=caml_string_of_jsbytes("12."), + cst_0$296=caml_string_of_jsbytes("0."), + cst_0_75$10=caml_string_of_jsbytes("0.75"), + cst_0_75$9=caml_string_of_jsbytes("0.75"), + cst_0_75$8=caml_string_of_jsbytes("0.75"), + cst_0$295=caml_string_of_jsbytes("0"), + cst_0_95$2=caml_string_of_jsbytes("0.95"), + cst_0$293=caml_string_of_jsbytes("0"), + cst_0$294=caml_string_of_jsbytes("0"), + cst_0$292=caml_string_of_jsbytes("0"), + cst_86900=caml_string_of_jsbytes("86900"), + cst_97100=caml_string_of_jsbytes("97100"), + cst_1$207=caml_string_of_jsbytes("1"), + cst_10200=caml_string_of_jsbytes("10200"), + cst_107300=caml_string_of_jsbytes("107300"), + cst_0$289=caml_string_of_jsbytes("0"), + cst_208500$0=caml_string_of_jsbytes("208500"), + cst_251500$0=caml_string_of_jsbytes("251500"), + cst_1$204=caml_string_of_jsbytes("1"), + cst_43000$0=caml_string_of_jsbytes("43000"), + cst_294500$0=caml_string_of_jsbytes("294500"), + cst_0$290=caml_string_of_jsbytes("0"), + cst_186000$0=caml_string_of_jsbytes("186000"), + cst_223900$0=caml_string_of_jsbytes("223900"), + cst_1$205=caml_string_of_jsbytes("1"), + cst_37900$0=caml_string_of_jsbytes("37900"), + cst_261800$0=caml_string_of_jsbytes("261800"), + cst_0$291=caml_string_of_jsbytes("0"), + cst_173600$0=caml_string_of_jsbytes("173600"), + cst_208200$0=caml_string_of_jsbytes("208200"), + cst_1$206=caml_string_of_jsbytes("1"), + cst_34600=caml_string_of_jsbytes("34600"), + cst_242800$0=caml_string_of_jsbytes("242800"), + cst_0$286=caml_string_of_jsbytes("0"), + cst_167800$0=caml_string_of_jsbytes("167800"), + cst_202500$1=caml_string_of_jsbytes("202500"), + cst_1$201=caml_string_of_jsbytes("1"), + cst_34700$0=caml_string_of_jsbytes("34700"), + cst_237200$0=caml_string_of_jsbytes("237200"), + cst_0$287=caml_string_of_jsbytes("0"), + cst_149600$0=caml_string_of_jsbytes("149600"), + cst_180100$0=caml_string_of_jsbytes("180100"), + cst_1$202=caml_string_of_jsbytes("1"), + cst_30500$2=caml_string_of_jsbytes("30500"), + cst_210600$0=caml_string_of_jsbytes("210600"), + cst_0$288=caml_string_of_jsbytes("0"), + cst_139700$0=caml_string_of_jsbytes("139700"), + cst_167600$0=caml_string_of_jsbytes("167600"), + cst_1$203=caml_string_of_jsbytes("1"), + cst_27900$0=caml_string_of_jsbytes("27900"), + cst_195500$0=caml_string_of_jsbytes("195500"), + cst_0$283=caml_string_of_jsbytes("0"), + cst_198100=caml_string_of_jsbytes("198100"), + cst_239000=caml_string_of_jsbytes("239000"), + cst_1$198=caml_string_of_jsbytes("1"), + cst_40900=caml_string_of_jsbytes("40900"), + cst_279900=caml_string_of_jsbytes("279900"), + cst_0$284=caml_string_of_jsbytes("0"), + cst_176800=caml_string_of_jsbytes("176800"), + cst_212800=caml_string_of_jsbytes("212800"), + cst_1$199=caml_string_of_jsbytes("1"), + cst_36000=caml_string_of_jsbytes("36000"), + cst_248800=caml_string_of_jsbytes("248800"), + cst_0$285=caml_string_of_jsbytes("0"), + cst_165000=caml_string_of_jsbytes("165000"), + cst_197900=caml_string_of_jsbytes("197900"), + cst_1$200=caml_string_of_jsbytes("1"), + cst_32900=caml_string_of_jsbytes("32900"), + cst_230800=caml_string_of_jsbytes("230800"), + cst_0$280=caml_string_of_jsbytes("0"), + cst_159500=caml_string_of_jsbytes("159500"), + cst_192500=caml_string_of_jsbytes("192500"), + cst_1$195=caml_string_of_jsbytes("1"), + cst_33000=caml_string_of_jsbytes("33000"), + cst_225500=caml_string_of_jsbytes("225500"), + cst_0$281=caml_string_of_jsbytes("0"), + cst_142200=caml_string_of_jsbytes("142200"), + cst_171200=caml_string_of_jsbytes("171200"), + cst_1$196=caml_string_of_jsbytes("1"), + cst_29000=caml_string_of_jsbytes("29000"), + cst_200200=caml_string_of_jsbytes("200200"), + cst_0$282=caml_string_of_jsbytes("0"), + cst_132800=caml_string_of_jsbytes("132800"), + cst_159300=caml_string_of_jsbytes("159300"), + cst_1$197=caml_string_of_jsbytes("1"), + cst_26500=caml_string_of_jsbytes("26500"), + cst_185800$0=caml_string_of_jsbytes("185800"), + cst_0$277=caml_string_of_jsbytes("0"), + cst_200100=caml_string_of_jsbytes("200100"), + cst_141400=caml_string_of_jsbytes("141400"), + cst_1$192=caml_string_of_jsbytes("1"), + cst_41300=caml_string_of_jsbytes("41300"), + cst_182700=caml_string_of_jsbytes("182700"), + cst_0$278=caml_string_of_jsbytes("0"), + cst_178600=caml_string_of_jsbytes("178600"), + cst_215000=caml_string_of_jsbytes("215000"), + cst_1$193=caml_string_of_jsbytes("1"), + cst_36400=caml_string_of_jsbytes("36400"), + cst_251400=caml_string_of_jsbytes("251400"), + cst_0$279=caml_string_of_jsbytes("0"), + cst_166700=caml_string_of_jsbytes("166700"), + cst_199900=caml_string_of_jsbytes("199900"), + cst_1$194=caml_string_of_jsbytes("1"), + cst_33200=caml_string_of_jsbytes("33200"), + cst_233100=caml_string_of_jsbytes("233100"), + cst_0$274=caml_string_of_jsbytes("0"), + cst_161100=caml_string_of_jsbytes("161100"), + cst_194400=caml_string_of_jsbytes("194400"), + cst_1$189=caml_string_of_jsbytes("1"), + cst_33300=caml_string_of_jsbytes("33300"), + cst_227700=caml_string_of_jsbytes("227700"), + cst_0$275=caml_string_of_jsbytes("0"), + cst_143600=caml_string_of_jsbytes("143600"), + cst_172900=caml_string_of_jsbytes("172900"), + cst_1$190=caml_string_of_jsbytes("1"), + cst_29300=caml_string_of_jsbytes("29300"), + cst_202200=caml_string_of_jsbytes("202200"), + cst_0$276=caml_string_of_jsbytes("0"), + cst_134100=caml_string_of_jsbytes("134100"), + cst_160900=caml_string_of_jsbytes("160900"), + cst_1$191=caml_string_of_jsbytes("1"), + cst_26800=caml_string_of_jsbytes("26800"), + cst_187700=caml_string_of_jsbytes("187700"), + cst_0$271=caml_string_of_jsbytes("0"), + cst_202500$0=caml_string_of_jsbytes("202500"), + cst_244300=caml_string_of_jsbytes("244300"), + cst_1$186=caml_string_of_jsbytes("1"), + cst_41800=caml_string_of_jsbytes("41800"), + cst_286100=caml_string_of_jsbytes("286100"), + cst_0$272=caml_string_of_jsbytes("0"), + cst_180700=caml_string_of_jsbytes("180700"), + cst_217500=caml_string_of_jsbytes("217500"), + cst_1$187=caml_string_of_jsbytes("1"), + cst_36800=caml_string_of_jsbytes("36800"), + cst_254300=caml_string_of_jsbytes("254300"), + cst_0$273=caml_string_of_jsbytes("0"), + cst_168700=caml_string_of_jsbytes("168700"), + cst_202300=caml_string_of_jsbytes("202300"), + cst_1$188=caml_string_of_jsbytes("1"), + cst_33600=caml_string_of_jsbytes("33600"), + cst_235900=caml_string_of_jsbytes("235900"), + cst_0$268=caml_string_of_jsbytes("0"), + cst_30871=caml_string_of_jsbytes("30871"), + cst_37243=caml_string_of_jsbytes("37243"), + cst_1$183=caml_string_of_jsbytes("1"), + cst_6372=caml_string_of_jsbytes("6372"), + cst_43615=caml_string_of_jsbytes("43615"), + cst_0$269=caml_string_of_jsbytes("0"), + cst_27548=caml_string_of_jsbytes("27548"), + cst_33148=caml_string_of_jsbytes("33148"), + cst_1$184=caml_string_of_jsbytes("1"), + cst_5610=caml_string_of_jsbytes("5610"), + cst_38768=caml_string_of_jsbytes("38768"), + cst_0$270=caml_string_of_jsbytes("0"), + cst_25718=caml_string_of_jsbytes("25718"), + cst_30840=caml_string_of_jsbytes("30840"), + cst_1$185=caml_string_of_jsbytes("1"), + cst_5122=caml_string_of_jsbytes("5122"), + cst_35962=caml_string_of_jsbytes("35962"), + cst_0$265=caml_string_of_jsbytes("0"), + cst_163000=caml_string_of_jsbytes("163000"), + cst_196700=caml_string_of_jsbytes("196700"), + cst_1$180=caml_string_of_jsbytes("1"), + cst_33700=caml_string_of_jsbytes("33700"), + cst_230400=caml_string_of_jsbytes("230400"), + cst_0$266=caml_string_of_jsbytes("0"), + cst_145300=caml_string_of_jsbytes("145300"), + cst_175000=caml_string_of_jsbytes("175000"), + cst_1$181=caml_string_of_jsbytes("1"), + cst_29700=caml_string_of_jsbytes("29700"), + cst_204700=caml_string_of_jsbytes("204700"), + cst_0$267=caml_string_of_jsbytes("0"), + cst_135700=caml_string_of_jsbytes("135700"), + cst_162800=caml_string_of_jsbytes("162800"), + cst_1$182=caml_string_of_jsbytes("1"), + cst_27100=caml_string_of_jsbytes("27100"), + cst_189900=caml_string_of_jsbytes("189900"), + cst_0$262=caml_string_of_jsbytes("0"), + cst_24849=caml_string_of_jsbytes("24849"), + cst_29987=caml_string_of_jsbytes("29987"), + cst_1$177=caml_string_of_jsbytes("1"), + cst_5138=caml_string_of_jsbytes("5138"), + cst_35125=caml_string_of_jsbytes("35125"), + cst_0$263=caml_string_of_jsbytes("0"), + cst_22151=caml_string_of_jsbytes("22151"), + cst_26679=caml_string_of_jsbytes("26679"), + cst_1$178=caml_string_of_jsbytes("1"), + cst_4528=caml_string_of_jsbytes("4528"), + cst_31207=caml_string_of_jsbytes("31207"), + cst_0$264=caml_string_of_jsbytes("0"), + cst_20687=caml_string_of_jsbytes("20687"), + cst_24818=caml_string_of_jsbytes("24818"), + cst_1$179=caml_string_of_jsbytes("1"), + cst_4131=caml_string_of_jsbytes("4131"), + cst_28949=caml_string_of_jsbytes("28949"), + cst_0$259=caml_string_of_jsbytes("0"), + cst_31241=caml_string_of_jsbytes("31241"), + cst_37689=caml_string_of_jsbytes("37689"), + cst_1$174=caml_string_of_jsbytes("1"), + cst_6448=caml_string_of_jsbytes("6448"), + cst_44137=caml_string_of_jsbytes("44137"), + cst_0$260=caml_string_of_jsbytes("0"), + cst_27879=caml_string_of_jsbytes("27879"), + cst_33556=caml_string_of_jsbytes("33556"), + cst_1$175=caml_string_of_jsbytes("1"), + cst_5677=caml_string_of_jsbytes("5677"), + cst_39233=caml_string_of_jsbytes("39233"), + cst_0$261=caml_string_of_jsbytes("0"), + cst_26027=caml_string_of_jsbytes("26027"), + cst_31210=caml_string_of_jsbytes("31210"), + cst_1$176=caml_string_of_jsbytes("1"), + cst_5183=caml_string_of_jsbytes("5183"), + cst_36393=caml_string_of_jsbytes("36393"), + cst_0$256=caml_string_of_jsbytes("0"), + cst_25147=caml_string_of_jsbytes("25147"), + cst_30347=caml_string_of_jsbytes("30347"), + cst_1$171=caml_string_of_jsbytes("1"), + cst_5200=caml_string_of_jsbytes("5200"), + cst_35547=caml_string_of_jsbytes("35547"), + cst_0$257=caml_string_of_jsbytes("0"), + cst_22417=caml_string_of_jsbytes("22417"), + cst_26999=caml_string_of_jsbytes("26999"), + cst_1$172=caml_string_of_jsbytes("1"), + cst_4582=caml_string_of_jsbytes("4582"), + cst_31581=caml_string_of_jsbytes("31581"), + cst_0$258=caml_string_of_jsbytes("0"), + cst_20935=caml_string_of_jsbytes("20935"), + cst_25116$0=caml_string_of_jsbytes("25116"), + cst_1$173=caml_string_of_jsbytes("1"), + cst_4181=caml_string_of_jsbytes("4181"), + cst_29297=caml_string_of_jsbytes("29297"), + cst_0$253=caml_string_of_jsbytes("0"), + cst_31616=caml_string_of_jsbytes("31616"), + cst_38141=caml_string_of_jsbytes("38141"), + cst_1$168=caml_string_of_jsbytes("1"), + cst_6525=caml_string_of_jsbytes("6525"), + cst_44666=caml_string_of_jsbytes("44666"), + cst_0$254=caml_string_of_jsbytes("0"), + cst_28214=caml_string_of_jsbytes("28214"), + cst_33959=caml_string_of_jsbytes("33959"), + cst_1$169=caml_string_of_jsbytes("1"), + cst_5745=caml_string_of_jsbytes("5745"), + cst_39704=caml_string_of_jsbytes("39704"), + cst_0$255=caml_string_of_jsbytes("0"), + cst_26339=caml_string_of_jsbytes("26339"), + cst_31584=caml_string_of_jsbytes("31584"), + cst_1$170=caml_string_of_jsbytes("1"), + cst_5245=caml_string_of_jsbytes("5245"), + cst_36829=caml_string_of_jsbytes("36829"), + cst_0$250=caml_string_of_jsbytes("0"), + cst_25449=caml_string_of_jsbytes("25449"), + cst_30711=caml_string_of_jsbytes("30711"), + cst_1$165=caml_string_of_jsbytes("1"), + cst_5262=caml_string_of_jsbytes("5262"), + cst_35973=caml_string_of_jsbytes("35973"), + cst_0$251=caml_string_of_jsbytes("0"), + cst_22686=caml_string_of_jsbytes("22686"), + cst_27323=caml_string_of_jsbytes("27323"), + cst_1$166=caml_string_of_jsbytes("1"), + cst_4637=caml_string_of_jsbytes("4637"), + cst_31960=caml_string_of_jsbytes("31960"), + cst_0$252=caml_string_of_jsbytes("0"), + cst_21186=caml_string_of_jsbytes("21186"), + cst_25417=caml_string_of_jsbytes("25417"), + cst_1$167=caml_string_of_jsbytes("1"), + cst_4231=caml_string_of_jsbytes("4231"), + cst_29648=caml_string_of_jsbytes("29648"), + cst_0$247=caml_string_of_jsbytes("0"), + cst_32185=caml_string_of_jsbytes("32185"), + cst_38827=caml_string_of_jsbytes("38827"), + cst_1$162=caml_string_of_jsbytes("1"), + cst_6642=caml_string_of_jsbytes("6642"), + cst_45469=caml_string_of_jsbytes("45469"), + cst_0$248=caml_string_of_jsbytes("0"), + cst_28722=caml_string_of_jsbytes("28722"), + cst_34570$0=caml_string_of_jsbytes("34570"), + cst_1$163=caml_string_of_jsbytes("1"), + cst_5848=caml_string_of_jsbytes("5848"), + cst_40418=caml_string_of_jsbytes("40418"), + cst_0$249=caml_string_of_jsbytes("0"), + cst_26813=caml_string_of_jsbytes("26813"), + cst_32152=caml_string_of_jsbytes("32152"), + cst_1$164=caml_string_of_jsbytes("1"), + cst_5339=caml_string_of_jsbytes("5339"), + cst_37491=caml_string_of_jsbytes("37491"), + cst_0$244=caml_string_of_jsbytes("0"), + cst_25907=caml_string_of_jsbytes("25907"), + cst_31264=caml_string_of_jsbytes("31264"), + cst_1$159=caml_string_of_jsbytes("1"), + cst_5357=caml_string_of_jsbytes("5357"), + cst_36621=caml_string_of_jsbytes("36621"), + cst_0$245=caml_string_of_jsbytes("0"), + cst_23094=caml_string_of_jsbytes("23094"), + cst_27814=caml_string_of_jsbytes("27814"), + cst_1$160=caml_string_of_jsbytes("1"), + cst_4720=caml_string_of_jsbytes("4720"), + cst_32534=caml_string_of_jsbytes("32534"), + cst_0$246=caml_string_of_jsbytes("0"), + cst_21567=caml_string_of_jsbytes("21567"), + cst_25874=caml_string_of_jsbytes("25874"), + cst_1$161=caml_string_of_jsbytes("1"), + cst_4307=caml_string_of_jsbytes("4307"), + cst_30181=caml_string_of_jsbytes("30181"), + cst_0$241=caml_string_of_jsbytes("0"), + cst_33086=caml_string_of_jsbytes("33086"), + cst_39914=caml_string_of_jsbytes("39914"), + cst_1$156=caml_string_of_jsbytes("1"), + cst_6828=caml_string_of_jsbytes("6828"), + cst_46742=caml_string_of_jsbytes("46742"), + cst_0$242=caml_string_of_jsbytes("0"), + cst_29526=caml_string_of_jsbytes("29526"), + cst_35538=caml_string_of_jsbytes("35538"), + cst_1$157=caml_string_of_jsbytes("1"), + cst_6012=caml_string_of_jsbytes("6012"), + cst_41550=caml_string_of_jsbytes("41550"), + cst_0$243=caml_string_of_jsbytes("0"), + cst_27564=caml_string_of_jsbytes("27564"), + cst_33052=caml_string_of_jsbytes("33052"), + cst_1$158=caml_string_of_jsbytes("1"), + cst_5488=caml_string_of_jsbytes("5488"), + cst_38541=caml_string_of_jsbytes("38541"), + cst_0$238=caml_string_of_jsbytes("0"), + cst_26632=caml_string_of_jsbytes("26632"), + cst_32139=caml_string_of_jsbytes("32139"), + cst_1$153=caml_string_of_jsbytes("1"), + cst_5507=caml_string_of_jsbytes("5507"), + cst_37646=caml_string_of_jsbytes("37646"), + cst_0$239=caml_string_of_jsbytes("0"), + cst_23741=caml_string_of_jsbytes("23741"), + cst_28593=caml_string_of_jsbytes("28593"), + cst_1$154=caml_string_of_jsbytes("1"), + cst_4852=caml_string_of_jsbytes("4852"), + cst_33445=caml_string_of_jsbytes("33445"), + cst_0$240=caml_string_of_jsbytes("0"), + cst_22171=caml_string_of_jsbytes("22171"), + cst_36598=caml_string_of_jsbytes("36598"), + cst_1$155=caml_string_of_jsbytes("1"), + cst_4428=caml_string_of_jsbytes("4428"), + cst_31026=caml_string_of_jsbytes("31026"), + cst_0$235=caml_string_of_jsbytes("0"), + cst_33999=caml_string_of_jsbytes("33999"), + cst_41016=caml_string_of_jsbytes("41016"), + cst_1$150=caml_string_of_jsbytes("1"), + cst_7016=caml_string_of_jsbytes("7016"), + cst_48032=caml_string_of_jsbytes("48032"), + cst_0$236=caml_string_of_jsbytes("0"), + cst_30341=caml_string_of_jsbytes("30341"), + cst_36519=caml_string_of_jsbytes("36519"), + cst_1$151=caml_string_of_jsbytes("1"), + cst_6178=caml_string_of_jsbytes("6178"), + cst_42697=caml_string_of_jsbytes("42697"), + cst_0$237=caml_string_of_jsbytes("0"), + cst_28325=caml_string_of_jsbytes("28325"), + cst_33964=caml_string_of_jsbytes("33964"), + cst_1$152=caml_string_of_jsbytes("1"), + cst_5639=caml_string_of_jsbytes("5639"), + cst_39605=caml_string_of_jsbytes("39605"), + cst_0$232=caml_string_of_jsbytes("0"), + cst_27367=caml_string_of_jsbytes("27367"), + cst_33026=caml_string_of_jsbytes("33026"), + cst_1$147=caml_string_of_jsbytes("1"), + cst_5659=caml_string_of_jsbytes("5659"), + cst_38685=caml_string_of_jsbytes("38685"), + cst_0$233=caml_string_of_jsbytes("0"), + cst_24396=caml_string_of_jsbytes("24396"), + cst_29382=caml_string_of_jsbytes("29382"), + cst_1$148=caml_string_of_jsbytes("1"), + cst_4986$0=caml_string_of_jsbytes("4986"), + cst_34368=caml_string_of_jsbytes("34368"), + cst_0$234=caml_string_of_jsbytes("0"), + cst_22783=caml_string_of_jsbytes("22783"), + cst_27332=caml_string_of_jsbytes("27332"), + cst_1$149=caml_string_of_jsbytes("1"), + cst_4550=caml_string_of_jsbytes("4550"), + cst_31882=caml_string_of_jsbytes("31882"), + cst_0$229=caml_string_of_jsbytes("0"), + cst_35002=caml_string_of_jsbytes("35002"), + cst_42226=caml_string_of_jsbytes("42226"), + cst_1$144=caml_string_of_jsbytes("1"), + cst_7223=caml_string_of_jsbytes("7223"), + cst_49449=caml_string_of_jsbytes("49449"), + cst_0$230=caml_string_of_jsbytes("0"), + cst_31236=caml_string_of_jsbytes("31236"), + cst_37596=caml_string_of_jsbytes("37596"), + cst_1$145=caml_string_of_jsbytes("1"), + cst_6360=caml_string_of_jsbytes("6360"), + cst_43957=caml_string_of_jsbytes("43957"), + cst_0$231=caml_string_of_jsbytes("0"), + cst_29161=caml_string_of_jsbytes("29161"), + cst_34966=caml_string_of_jsbytes("34966"), + cst_1$146=caml_string_of_jsbytes("1"), + cst_5805=caml_string_of_jsbytes("5805"), + cst_40773=caml_string_of_jsbytes("40773"), + cst_0$226=caml_string_of_jsbytes("0"), + cst_28174=caml_string_of_jsbytes("28174"), + cst_34000=caml_string_of_jsbytes("34000"), + cst_1$141=caml_string_of_jsbytes("1"), + cst_5826=caml_string_of_jsbytes("5826"), + cst_39826=caml_string_of_jsbytes("39826"), + cst_0$227=caml_string_of_jsbytes("0"), + cst_25116=caml_string_of_jsbytes("25116"), + cst_30249=caml_string_of_jsbytes("30249"), + cst_1$142=caml_string_of_jsbytes("1"), + cst_5133=caml_string_of_jsbytes("5133"), + cst_35382=caml_string_of_jsbytes("35382"), + cst_0$228=caml_string_of_jsbytes("0"), + cst_23455=caml_string_of_jsbytes("23455"), + cst_28138=caml_string_of_jsbytes("28138"), + cst_1$143=caml_string_of_jsbytes("1"), + cst_4684=caml_string_of_jsbytes("4684"), + cst_32823=caml_string_of_jsbytes("32823"), + cst_0$223=caml_string_of_jsbytes("0"), + cst_35114=caml_string_of_jsbytes("35114"), + cst_42361=caml_string_of_jsbytes("42361"), + cst_1$138=caml_string_of_jsbytes("1"), + cst_7246=caml_string_of_jsbytes("7246"), + cst_49607=caml_string_of_jsbytes("49607"), + cst_0$224=caml_string_of_jsbytes("0"), + cst_31336=caml_string_of_jsbytes("31336"), + cst_37716=caml_string_of_jsbytes("37716"), + cst_1$139=caml_string_of_jsbytes("1"), + cst_6380=caml_string_of_jsbytes("6380"), + cst_44098=caml_string_of_jsbytes("44098"), + cst_0$225=caml_string_of_jsbytes("0"), + cst_29254=caml_string_of_jsbytes("29254"), + cst_35078=caml_string_of_jsbytes("35078"), + cst_1$140=caml_string_of_jsbytes("1"), + cst_5824=caml_string_of_jsbytes("5824"), + cst_40903=caml_string_of_jsbytes("40903"), + cst_0$220=caml_string_of_jsbytes("0"), + cst_28264=caml_string_of_jsbytes("28264"), + cst_34109=caml_string_of_jsbytes("34109"), + cst_1$135=caml_string_of_jsbytes("1"), + cst_5845=caml_string_of_jsbytes("5845"), + cst_39953=caml_string_of_jsbytes("39953"), + cst_0$221=caml_string_of_jsbytes("0"), + cst_25196=caml_string_of_jsbytes("25196"), + cst_30346=caml_string_of_jsbytes("30346"), + cst_1$136=caml_string_of_jsbytes("1"), + cst_5149=caml_string_of_jsbytes("5149"), + cst_35495=caml_string_of_jsbytes("35495"), + cst_0$222=caml_string_of_jsbytes("0"), + cst_23530=caml_string_of_jsbytes("23530"), + cst_28228=caml_string_of_jsbytes("28228"), + cst_1$137=caml_string_of_jsbytes("1"), + cst_4699=caml_string_of_jsbytes("4699"), + cst_32928=caml_string_of_jsbytes("32928"), + cst_0$217=caml_string_of_jsbytes("0"), + cst_35500=caml_string_of_jsbytes("35500"), + cst_42827=caml_string_of_jsbytes("42827"), + cst_1$132=caml_string_of_jsbytes("1"), + cst_7326=caml_string_of_jsbytes("7326"), + cst_50153=caml_string_of_jsbytes("50153"), + cst_0$218=caml_string_of_jsbytes("0"), + cst_31681=caml_string_of_jsbytes("31681"), + cst_38131=caml_string_of_jsbytes("38131"), + cst_1$133=caml_string_of_jsbytes("1"), + cst_6450=caml_string_of_jsbytes("6450"), + cst_44583=caml_string_of_jsbytes("44583"), + cst_0$219=caml_string_of_jsbytes("0"), + cst_29576=caml_string_of_jsbytes("29576"), + cst_35464=caml_string_of_jsbytes("35464"), + cst_1$134=caml_string_of_jsbytes("1"), + cst_5888=caml_string_of_jsbytes("5888"), + cst_41353=caml_string_of_jsbytes("41353"), + cst_0$214=caml_string_of_jsbytes("0"), + cst_28575=caml_string_of_jsbytes("28575"), + cst_34484=caml_string_of_jsbytes("34484"), + cst_1$129=caml_string_of_jsbytes("1"), + cst_5909=caml_string_of_jsbytes("5909"), + cst_40392=caml_string_of_jsbytes("40392"), + cst_0$215=caml_string_of_jsbytes("0"), + cst_25473=caml_string_of_jsbytes("25473"), + cst_30680=caml_string_of_jsbytes("30680"), + cst_1$130=caml_string_of_jsbytes("1"), + cst_5206=caml_string_of_jsbytes("5206"), + cst_35885=caml_string_of_jsbytes("35885"), + cst_0$216=caml_string_of_jsbytes("0"), + cst_23789=caml_string_of_jsbytes("23789"), + cst_28539=caml_string_of_jsbytes("28539"), + cst_1$131=caml_string_of_jsbytes("1"), + cst_4751=caml_string_of_jsbytes("4751"), + cst_33290=caml_string_of_jsbytes("33290"), + cst_0$211=caml_string_of_jsbytes("0"), + cst_35855=caml_string_of_jsbytes("35855"), + cst_43255=caml_string_of_jsbytes("43255"), + cst_1$126=caml_string_of_jsbytes("1"), + cst_7399=caml_string_of_jsbytes("7399"), + cst_50655=caml_string_of_jsbytes("50655"), + cst_0$212=caml_string_of_jsbytes("0"), + cst_31998=caml_string_of_jsbytes("31998"), + cst_38512=caml_string_of_jsbytes("38512"), + cst_1$127=caml_string_of_jsbytes("1"), + cst_6515=caml_string_of_jsbytes("6515"), + cst_45029=caml_string_of_jsbytes("45029"), + cst_0$213=caml_string_of_jsbytes("0"), + cst_29872=caml_string_of_jsbytes("29872"), + cst_35819=caml_string_of_jsbytes("35819"), + cst_1$128=caml_string_of_jsbytes("1"), + cst_5947=caml_string_of_jsbytes("5947"), + cst_41767=caml_string_of_jsbytes("41767"), + cst_0$208=caml_string_of_jsbytes("0"), + cst_28861=caml_string_of_jsbytes("28861"), + cst_34829$0=caml_string_of_jsbytes("34829"), + cst_1$123=caml_string_of_jsbytes("1"), + cst_5968=caml_string_of_jsbytes("5968"), + cst_40796=caml_string_of_jsbytes("40796"), + cst_0$209=caml_string_of_jsbytes("0"), + cst_25728=caml_string_of_jsbytes("25728"), + cst_30987=caml_string_of_jsbytes("30987"), + cst_1$124=caml_string_of_jsbytes("1"), + cst_5258=caml_string_of_jsbytes("5258"), + cst_36244=caml_string_of_jsbytes("36244"), + cst_0$210=caml_string_of_jsbytes("0"), + cst_24027=caml_string_of_jsbytes("24027"), + cst_28824=caml_string_of_jsbytes("28824"), + cst_1$125=caml_string_of_jsbytes("1"), + cst_4799=caml_string_of_jsbytes("4799"), + cst_33623=caml_string_of_jsbytes("33623"), + cst_0$205=caml_string_of_jsbytes("0"), + cst_36626=caml_string_of_jsbytes("36626"), + cst_44185=caml_string_of_jsbytes("44185"), + cst_1$120=caml_string_of_jsbytes("1"), + cst_7558=caml_string_of_jsbytes("7558"), + cst_51744=caml_string_of_jsbytes("51744"), + cst_0$206=caml_string_of_jsbytes("0"), + cst_32686=caml_string_of_jsbytes("32686"), + cst_39340=caml_string_of_jsbytes("39340"), + cst_1$121=caml_string_of_jsbytes("1"), + cst_6655=caml_string_of_jsbytes("6655"), + cst_45997=caml_string_of_jsbytes("45997"), + cst_0$207=caml_string_of_jsbytes("0"), + cst_30514=caml_string_of_jsbytes("30514"), + cst_36589=caml_string_of_jsbytes("36589"), + cst_1$122=caml_string_of_jsbytes("1"), + cst_6075=caml_string_of_jsbytes("6075"), + cst_42665=caml_string_of_jsbytes("42665"), + cst_0$202=caml_string_of_jsbytes("0"), + cst_29482=caml_string_of_jsbytes("29482"), + cst_35578=caml_string_of_jsbytes("35578"), + cst_1$117=caml_string_of_jsbytes("1"), + cst_6096=caml_string_of_jsbytes("6096"), + cst_41673=caml_string_of_jsbytes("41673"), + cst_0$203=caml_string_of_jsbytes("0"), + cst_26281=caml_string_of_jsbytes("26281"), + cst_31653=caml_string_of_jsbytes("31653"), + cst_1$118=caml_string_of_jsbytes("1"), + cst_5371=caml_string_of_jsbytes("5371"), + cst_37023=caml_string_of_jsbytes("37023"), + cst_0$204=caml_string_of_jsbytes("0"), + cst_24544=caml_string_of_jsbytes("24544"), + cst_29444=caml_string_of_jsbytes("29444"), + cst_1$119=caml_string_of_jsbytes("1"), + cst_4902=caml_string_of_jsbytes("4902"), + cst_34346=caml_string_of_jsbytes("34346"), + cst_0$199=caml_string_of_jsbytes("0"), + cst_36835=caml_string_of_jsbytes("36835"), + cst_44437=caml_string_of_jsbytes("44437"), + cst_1$114=caml_string_of_jsbytes("1"), + cst_7601=caml_string_of_jsbytes("7601"), + cst_52039=caml_string_of_jsbytes("52039"), + cst_0$200=caml_string_of_jsbytes("0"), + cst_32872=caml_string_of_jsbytes("32872"), + cst_39564=caml_string_of_jsbytes("39564"), + cst_1$115=caml_string_of_jsbytes("1"), + cst_6693=caml_string_of_jsbytes("6693"), + cst_46259=caml_string_of_jsbytes("46259"), + cst_0$201=caml_string_of_jsbytes("0"), + cst_30688=caml_string_of_jsbytes("30688"), + cst_36798=caml_string_of_jsbytes("36798"), + cst_1$116=caml_string_of_jsbytes("1"), + cst_6110=caml_string_of_jsbytes("6110"), + cst_42908=caml_string_of_jsbytes("42908"), + cst_0$196=caml_string_of_jsbytes("0"), + cst_29650=caml_string_of_jsbytes("29650"), + cst_35781=caml_string_of_jsbytes("35781"), + cst_1$111=caml_string_of_jsbytes("1"), + cst_6131=caml_string_of_jsbytes("6131"), + cst_41911=caml_string_of_jsbytes("41911"), + cst_0$197=caml_string_of_jsbytes("0"), + cst_26431=caml_string_of_jsbytes("26431"), + cst_31833=caml_string_of_jsbytes("31833"), + cst_1$112=caml_string_of_jsbytes("1"), + cst_5402=caml_string_of_jsbytes("5402"), + cst_37234=caml_string_of_jsbytes("37234"), + cst_0$198=caml_string_of_jsbytes("0"), + cst_24684=caml_string_of_jsbytes("24684"), + cst_29612=caml_string_of_jsbytes("29612"), + cst_1$113=caml_string_of_jsbytes("1"), + cst_4930=caml_string_of_jsbytes("4930"), + cst_34542=caml_string_of_jsbytes("34542"), + cst_0$193=caml_string_of_jsbytes("0"), + cst_36864=caml_string_of_jsbytes("36864"), + cst_44473=caml_string_of_jsbytes("44473"), + cst_1$108=caml_string_of_jsbytes("1"), + cst_7607=caml_string_of_jsbytes("7607"), + cst_52081=caml_string_of_jsbytes("52081"), + cst_0$194=caml_string_of_jsbytes("0"), + cst_32898=caml_string_of_jsbytes("32898"), + cst_39596=caml_string_of_jsbytes("39596"), + cst_1$109=caml_string_of_jsbytes("1"), + cst_6698=caml_string_of_jsbytes("6698"), + cst_46296=caml_string_of_jsbytes("46296"), + cst_0$195=caml_string_of_jsbytes("0"), + cst_30713=caml_string_of_jsbytes("30713"), + cst_36827=caml_string_of_jsbytes("36827"), + cst_1$110=caml_string_of_jsbytes("1"), + cst_6115=caml_string_of_jsbytes("6115"), + cst_42942=caml_string_of_jsbytes("42942"), + cst_0$190=caml_string_of_jsbytes("0"), + cst_29674=caml_string_of_jsbytes("29674"), + cst_35810=caml_string_of_jsbytes("35810"), + cst_1$105=caml_string_of_jsbytes("1"), + cst_6136=caml_string_of_jsbytes("6136"), + cst_41945=caml_string_of_jsbytes("41945"), + cst_0$191=caml_string_of_jsbytes("0"), + cst_26452=caml_string_of_jsbytes("26452"), + cst_31858=caml_string_of_jsbytes("31858"), + cst_1$106=caml_string_of_jsbytes("1"), + cst_5406=caml_string_of_jsbytes("5406"), + cst_37264=caml_string_of_jsbytes("37264"), + cst_0$192=caml_string_of_jsbytes("0"), + cst_24704=caml_string_of_jsbytes("24704"), + cst_29636=caml_string_of_jsbytes("29636"), + cst_1$107=caml_string_of_jsbytes("1"), + cst_4934=caml_string_of_jsbytes("4934"), + cst_34570=caml_string_of_jsbytes("34570"), + cst_0$187=caml_string_of_jsbytes("0"), + cst_37140=caml_string_of_jsbytes("37140"), + cst_44807=caml_string_of_jsbytes("44807"), + cst_1$102=caml_string_of_jsbytes("1"), + cst_7664=caml_string_of_jsbytes("7664"), + cst_52472=caml_string_of_jsbytes("52472"), + cst_0$188=caml_string_of_jsbytes("0"), + cst_33145=caml_string_of_jsbytes("33145"), + cst_39893=caml_string_of_jsbytes("39893"), + cst_1$103=caml_string_of_jsbytes("1"), + cst_6748=caml_string_of_jsbytes("6748"), + cst_46643=caml_string_of_jsbytes("46643"), + cst_0$189=caml_string_of_jsbytes("0"), + cst_30943=caml_string_of_jsbytes("30943"), + cst_37103=caml_string_of_jsbytes("37103"), + cst_1$104=caml_string_of_jsbytes("1"), + cst_6161=caml_string_of_jsbytes("6161"), + cst_43264=caml_string_of_jsbytes("43264"), + cst_0$184=caml_string_of_jsbytes("0"), + cst_29897=caml_string_of_jsbytes("29897"), + cst_36079=caml_string_of_jsbytes("36079"), + cst_1$99=caml_string_of_jsbytes("1"), + cst_6182=caml_string_of_jsbytes("6182"), + cst_42260=caml_string_of_jsbytes("42260"), + cst_0$185=caml_string_of_jsbytes("0"), + cst_26650=caml_string_of_jsbytes("26650"), + cst_32097=caml_string_of_jsbytes("32097"), + cst_1$100=caml_string_of_jsbytes("1"), + cst_5447=caml_string_of_jsbytes("5447"), + cst_37543=caml_string_of_jsbytes("37543"), + cst_0$186=caml_string_of_jsbytes("0"), + cst_24889=caml_string_of_jsbytes("24889"), + cst_29858=caml_string_of_jsbytes("29858"), + cst_1$101=caml_string_of_jsbytes("1"), + cst_4971=caml_string_of_jsbytes("4971"), + cst_34829=caml_string_of_jsbytes("34829"), + cst_0$181=caml_string_of_jsbytes("0"), + cst_37252=caml_string_of_jsbytes("37252"), + cst_44941=caml_string_of_jsbytes("44941"), + cst_1$96=caml_string_of_jsbytes("1"), + cst_7687=caml_string_of_jsbytes("7687"), + cst_52629=caml_string_of_jsbytes("52629"), + cst_0$182=caml_string_of_jsbytes("0"), + cst_33244=caml_string_of_jsbytes("33244"), + cst_40013=caml_string_of_jsbytes("40013"), + cst_1$97=caml_string_of_jsbytes("1"), + cst_6768=caml_string_of_jsbytes("6768"), + cst_46783=caml_string_of_jsbytes("46783"), + cst_0$183=caml_string_of_jsbytes("0"), + cst_31036=caml_string_of_jsbytes("31036"), + cst_37215=caml_string_of_jsbytes("37215"), + cst_1$98=caml_string_of_jsbytes("1"), + cst_6179=caml_string_of_jsbytes("6179"), + cst_43394=caml_string_of_jsbytes("43394"), + cst_0$178=caml_string_of_jsbytes("0"), + cst_29986=caml_string_of_jsbytes("29986"), + cst_36187=caml_string_of_jsbytes("36187"), + cst_1$93=caml_string_of_jsbytes("1"), + cst_6201=caml_string_of_jsbytes("6201"), + cst_42386=caml_string_of_jsbytes("42386"), + cst_0$179=caml_string_of_jsbytes("0"), + cst_26730=caml_string_of_jsbytes("26730"), + cst_32193=caml_string_of_jsbytes("32193"), + cst_1$94=caml_string_of_jsbytes("1"), + cst_5463=caml_string_of_jsbytes("5463"), + cst_37656=caml_string_of_jsbytes("37656"), + cst_0$180=caml_string_of_jsbytes("0"), + cst_24964=caml_string_of_jsbytes("24964"), + cst_29948=caml_string_of_jsbytes("29948"), + cst_1$95=caml_string_of_jsbytes("1"), + cst_4986=caml_string_of_jsbytes("4986"), + cst_34934=caml_string_of_jsbytes("34934"), + cst_0$175=caml_string_of_jsbytes("0"), + cst_208500=caml_string_of_jsbytes("208500"), + cst_251500=caml_string_of_jsbytes("251500"), + cst_1$90=caml_string_of_jsbytes("1"), + cst_43000=caml_string_of_jsbytes("43000"), + cst_294500=caml_string_of_jsbytes("294500"), + cst_0$176=caml_string_of_jsbytes("0"), + cst_186000=caml_string_of_jsbytes("186000"), + cst_223900=caml_string_of_jsbytes("223900"), + cst_1$91=caml_string_of_jsbytes("1"), + cst_37900=caml_string_of_jsbytes("37900"), + cst_261800=caml_string_of_jsbytes("261800"), + cst_0$177=caml_string_of_jsbytes("0"), + cst_173600=caml_string_of_jsbytes("173600"), + cst_208200=caml_string_of_jsbytes("208200"), + cst_1$92=caml_string_of_jsbytes("1"), + cst_35600=caml_string_of_jsbytes("35600"), + cst_242800=caml_string_of_jsbytes("242800"), + cst_0$172=caml_string_of_jsbytes("0"), + cst_167800=caml_string_of_jsbytes("167800"), + cst_202500=caml_string_of_jsbytes("202500"), + cst_1$87=caml_string_of_jsbytes("1"), + cst_34700=caml_string_of_jsbytes("34700"), + cst_237200=caml_string_of_jsbytes("237200"), + cst_0$173=caml_string_of_jsbytes("0"), + cst_149600=caml_string_of_jsbytes("149600"), + cst_180100=caml_string_of_jsbytes("180100"), + cst_1$88=caml_string_of_jsbytes("1"), + cst_30500$1=caml_string_of_jsbytes("30500"), + cst_210600=caml_string_of_jsbytes("210600"), + cst_0$174=caml_string_of_jsbytes("0"), + cst_139700=caml_string_of_jsbytes("139700"), + cst_167600=caml_string_of_jsbytes("167600"), + cst_1$89=caml_string_of_jsbytes("1"), + cst_27900=caml_string_of_jsbytes("27900"), + cst_195500=caml_string_of_jsbytes("195500"), + cst_0$169=caml_string_of_jsbytes("0"), + cst_184000=caml_string_of_jsbytes("184000"), + cst_220000=caml_string_of_jsbytes("220000"), + cst_1$84=caml_string_of_jsbytes("1"), + cst_38000=caml_string_of_jsbytes("38000"), + cst_260000=caml_string_of_jsbytes("260000"), + cst_0$170=caml_string_of_jsbytes("0"), + cst_164200=caml_string_of_jsbytes("164200"), + cst_197700=caml_string_of_jsbytes("197700"), + cst_1$85=caml_string_of_jsbytes("1"), + cst_33500=caml_string_of_jsbytes("33500"), + cst_231200=caml_string_of_jsbytes("231200"), + cst_0$171=caml_string_of_jsbytes("0"), + cst_153200=caml_string_of_jsbytes("153200"), + cst_183700=caml_string_of_jsbytes("183700"), + cst_1$86=caml_string_of_jsbytes("1"), + cst_30500$0=caml_string_of_jsbytes("30500"), + cst_214200=caml_string_of_jsbytes("214200"), + cst_0$166=caml_string_of_jsbytes("0"), + cst_148100=caml_string_of_jsbytes("148100"), + cst_178700=caml_string_of_jsbytes("178700"), + cst_1$81=caml_string_of_jsbytes("1"), + cst_30600=caml_string_of_jsbytes("30600"), + cst_209300=caml_string_of_jsbytes("209300"), + cst_0$167=caml_string_of_jsbytes("0"), + cst_132000=caml_string_of_jsbytes("132000"), + cst_158900=caml_string_of_jsbytes("158900"), + cst_1$82=caml_string_of_jsbytes("1"), + cst_26900=caml_string_of_jsbytes("26900"), + cst_185800=caml_string_of_jsbytes("185800"), + cst_0$168=caml_string_of_jsbytes("0"), + cst_123300=caml_string_of_jsbytes("123300"), + cst_147900=caml_string_of_jsbytes("147900"), + cst_1$83=caml_string_of_jsbytes("1"), + cst_24600=caml_string_of_jsbytes("24600"), + cst_172500=caml_string_of_jsbytes("172500"), + cst_1272$2=caml_string_of_jsbytes("1272"), + cst_2805$0=caml_string_of_jsbytes("2805"), + cst_5612$2=caml_string_of_jsbytes("5612"), + cst_1229$2=caml_string_of_jsbytes("1229"), + cst_2710$0=caml_string_of_jsbytes("2710"), + cst_5422$2=caml_string_of_jsbytes("5422"), + cst_1224$2=caml_string_of_jsbytes("1224"), + cst_2699$0=caml_string_of_jsbytes("2699"), + cst_5399$2=caml_string_of_jsbytes("5399"), + cst_1272$1=caml_string_of_jsbytes("1272"), + cst_5612$1=caml_string_of_jsbytes("5612"), + cst_1229$1=caml_string_of_jsbytes("1229"), + cst_5422$1=caml_string_of_jsbytes("5422"), + cst_1224$1=caml_string_of_jsbytes("1224"), + cst_5399$1=caml_string_of_jsbytes("5399"), + cst_500$1=caml_string_of_jsbytes("500"), + cst_1000$2=caml_string_of_jsbytes("1000"), + cst_0_0226=caml_string_of_jsbytes("0.0226"), + cst_0_0234=caml_string_of_jsbytes("0.0234"), + cst_0_0172=caml_string_of_jsbytes("0.0172"), + cst_0_0226$0=caml_string_of_jsbytes("0.0226"), + cst_0_0234$0=caml_string_of_jsbytes("0.0234"), + cst_2211133=caml_string_of_jsbytes("2211133"), + cst_16_25=caml_string_of_jsbytes("16.25"), + cst_560085=caml_string_of_jsbytes("560085"), + cst_0_208$0=caml_string_of_jsbytes("0.208"), + cst_0_416=caml_string_of_jsbytes("0.416"), + cst_6_55957=caml_string_of_jsbytes("6.55957"), + cst_1$80=caml_string_of_jsbytes("1."), + cst_0$165=caml_string_of_jsbytes("0"), + cst_0$163=caml_string_of_jsbytes("0"), + cst_0$164=caml_string_of_jsbytes("0"), + cst_50$0=caml_string_of_jsbytes("50"), + cst_0$161=caml_string_of_jsbytes("0"), + cst_0$162=caml_string_of_jsbytes("0"), + cst_0_9$1=caml_string_of_jsbytes("0.9"), + cst_0_9$2=caml_string_of_jsbytes("0.9"), + cst_0_95$0=caml_string_of_jsbytes("0.95"), + cst_0_95$1=caml_string_of_jsbytes("0.95"), + cst_0$159=caml_string_of_jsbytes("0"), + cst_0$160=caml_string_of_jsbytes("0"), + cst_100$8=caml_string_of_jsbytes("100."), + cst_100$9=caml_string_of_jsbytes("100."), + cst_0_005$1=caml_string_of_jsbytes("0.005"), + cst_100$6=caml_string_of_jsbytes("100."), + cst_100$7=caml_string_of_jsbytes("100."), + cst_0_005$0=caml_string_of_jsbytes("0.005"), + cst_0$158=caml_string_of_jsbytes("0"), + cst_0_9$0=caml_string_of_jsbytes("0.9"), + cst_0$156=caml_string_of_jsbytes("0"), + cst_0$157=caml_string_of_jsbytes("0"), + cst_0_95=caml_string_of_jsbytes("0.95"), + cst_0$154=caml_string_of_jsbytes("0"), + cst_0$155=caml_string_of_jsbytes("0"), + cst_2142091=caml_string_of_jsbytes("2142091"), + cst_1339340=caml_string_of_jsbytes("1339340"), + cst_1500=caml_string_of_jsbytes("1500"), + cst_2668=caml_string_of_jsbytes("2668"), + cst_121726=caml_string_of_jsbytes("121726"), + cst_0$151=caml_string_of_jsbytes("0"), + cst_46192=caml_string_of_jsbytes("46192"), + cst_54152=caml_string_of_jsbytes("54152"), + cst_1$77=caml_string_of_jsbytes("1"), + cst_57741=caml_string_of_jsbytes("57741"), + cst_2$48=caml_string_of_jsbytes("2"), + cst_61794=caml_string_of_jsbytes("61794"), + cst_3$33=caml_string_of_jsbytes("3"), + cst_65862=caml_string_of_jsbytes("65862"), + cst_4$29=caml_string_of_jsbytes("4"), + cst_7368=caml_string_of_jsbytes("7368"), + cst_71039=caml_string_of_jsbytes("71039"), + cst_0$152=caml_string_of_jsbytes("0"), + cst_42242=caml_string_of_jsbytes("42242"), + cst_49299=caml_string_of_jsbytes("49299"), + cst_1$78=caml_string_of_jsbytes("1"), + cst_52565=caml_string_of_jsbytes("52565"), + cst_2$49=caml_string_of_jsbytes("2"), + cst_56268=caml_string_of_jsbytes("56268"), + cst_3$34=caml_string_of_jsbytes("3"), + cst_59957=caml_string_of_jsbytes("59957"), + cst_4$30=caml_string_of_jsbytes("4"), + cst_6659=caml_string_of_jsbytes("6659"), + cst_63887=caml_string_of_jsbytes("63887"), + cst_0$153=caml_string_of_jsbytes("0"), + cst_40096=caml_string_of_jsbytes("40096"), + cst_46634=caml_string_of_jsbytes("46634"), + cst_1$79=caml_string_of_jsbytes("1"), + cst_49475=caml_string_of_jsbytes("49475"), + cst_2$50=caml_string_of_jsbytes("2"), + cst_52740=caml_string_of_jsbytes("52740"), + cst_3$35=caml_string_of_jsbytes("3"), + cst_56004=caml_string_of_jsbytes("56004"), + cst_4$31=caml_string_of_jsbytes("4"), + cst_6180=caml_string_of_jsbytes("6180"), + cst_59675=caml_string_of_jsbytes("59675"), + cst_0$148=caml_string_of_jsbytes("0"), + cst_44630=caml_string_of_jsbytes("44630"), + cst_52321=caml_string_of_jsbytes("52321"), + cst_1$74=caml_string_of_jsbytes("1"), + cst_55788=caml_string_of_jsbytes("55788"), + cst_2$45=caml_string_of_jsbytes("2"), + cst_59704=caml_string_of_jsbytes("59704"), + cst_3$30=caml_string_of_jsbytes("3"), + cst_63635=caml_string_of_jsbytes("63635"), + cst_4$26=caml_string_of_jsbytes("4"), + cst_7119=caml_string_of_jsbytes("7119"), + cst_68637=caml_string_of_jsbytes("68637"), + cst_0$149=caml_string_of_jsbytes("0"), + cst_40814=caml_string_of_jsbytes("40814"), + cst_47632=caml_string_of_jsbytes("47632"), + cst_1$75=caml_string_of_jsbytes("1"), + cst_50787=caml_string_of_jsbytes("50787"), + cst_2$46=caml_string_of_jsbytes("2"), + cst_54365=caml_string_of_jsbytes("54365"), + cst_3$31=caml_string_of_jsbytes("3"), + cst_57929=caml_string_of_jsbytes("57929"), + cst_4$27=caml_string_of_jsbytes("4"), + cst_6434=caml_string_of_jsbytes("6434"), + cst_61727=caml_string_of_jsbytes("61727"), + cst_0$150=caml_string_of_jsbytes("0"), + cst_38740=caml_string_of_jsbytes("38740"), + cst_45057=caml_string_of_jsbytes("45057"), + cst_1$76=caml_string_of_jsbytes("1"), + cst_47802=caml_string_of_jsbytes("47802"), + cst_2$47=caml_string_of_jsbytes("2"), + cst_50957=caml_string_of_jsbytes("50957"), + cst_3$32=caml_string_of_jsbytes("3"), + cst_54110=caml_string_of_jsbytes("54110"), + cst_4$28=caml_string_of_jsbytes("4"), + cst_5971=caml_string_of_jsbytes("5971"), + cst_57657=caml_string_of_jsbytes("57657"), + cst_0$145=caml_string_of_jsbytes("0"), + cst_44443=caml_string_of_jsbytes("44443"), + cst_52101=caml_string_of_jsbytes("52101"), + cst_1$71=caml_string_of_jsbytes("1"), + cst_55555=caml_string_of_jsbytes("55555"), + cst_2$42=caml_string_of_jsbytes("2"), + cst_59454=caml_string_of_jsbytes("59454"), + cst_3$27=caml_string_of_jsbytes("3"), + cst_63369=caml_string_of_jsbytes("63369"), + cst_4$23=caml_string_of_jsbytes("4"), + cst_7089=caml_string_of_jsbytes("7089"), + cst_68350=caml_string_of_jsbytes("68350"), + cst_0$146=caml_string_of_jsbytes("0"), + cst_40643=caml_string_of_jsbytes("40643"), + cst_47433=caml_string_of_jsbytes("47433"), + cst_1$72=caml_string_of_jsbytes("1"), + cst_50575=caml_string_of_jsbytes("50575"), + cst_2$43=caml_string_of_jsbytes("2"), + cst_54138=caml_string_of_jsbytes("54138"), + cst_3$28=caml_string_of_jsbytes("3"), + cst_57687=caml_string_of_jsbytes("57687"), + cst_4$24=caml_string_of_jsbytes("4"), + cst_6407=caml_string_of_jsbytes("6407"), + cst_61469=caml_string_of_jsbytes("61469"), + cst_0$147=caml_string_of_jsbytes("0"), + cst_38578=caml_string_of_jsbytes("38578"), + cst_44869=caml_string_of_jsbytes("44869"), + cst_1$73=caml_string_of_jsbytes("1"), + cst_47602=caml_string_of_jsbytes("47602"), + cst_2$44=caml_string_of_jsbytes("2"), + cst_50744=caml_string_of_jsbytes("50744"), + cst_3$29=caml_string_of_jsbytes("3"), + cst_53884=caml_string_of_jsbytes("53884"), + cst_4$25=caml_string_of_jsbytes("4"), + cst_5946=caml_string_of_jsbytes("5946"), + cst_57416=caml_string_of_jsbytes("57416"), + cst_500$0=caml_string_of_jsbytes("500"), + cst_1000$1=caml_string_of_jsbytes("1000"), + cst_0$142=caml_string_of_jsbytes("0"), + cst_0$143=caml_string_of_jsbytes("0"), + cst_0$140=caml_string_of_jsbytes("0"), + cst_0$141=caml_string_of_jsbytes("0"), + cst_0$139=caml_string_of_jsbytes("0"), + cst_0$137=caml_string_of_jsbytes("0"), + cst_0$138=caml_string_of_jsbytes("0"), + cst_100000$3=caml_string_of_jsbytes("100000."), + cst_100000$4=caml_string_of_jsbytes("100000."), + cst_100000$1=caml_string_of_jsbytes("100000."), + cst_100000$2=caml_string_of_jsbytes("100000."), + cst_100000=caml_string_of_jsbytes("100000."), + cst_100000$0=caml_string_of_jsbytes("100000."), + cst_50=caml_string_of_jsbytes("50"), + cst_0$135=caml_string_of_jsbytes("0"), + cst_0$136=caml_string_of_jsbytes("0"), + cst_0_45$3=caml_string_of_jsbytes("0.45"), + cst_0$133=caml_string_of_jsbytes("0."), + cst_0_75$5=caml_string_of_jsbytes("0.75"), + cst_0_45$4=caml_string_of_jsbytes("0.45"), + cst_0_0045$5=caml_string_of_jsbytes("0.0045"), + cst_0_0045$6=caml_string_of_jsbytes("0.0045"), + cst_0_75$6=caml_string_of_jsbytes("0.75"), + cst_0_75$7=caml_string_of_jsbytes("0.75"), + cst_0_0068$1=caml_string_of_jsbytes("0.0068"), + cst_0_3$1=caml_string_of_jsbytes("0.3"), + cst_0_0045$7=caml_string_of_jsbytes("0.0045"), + cst_0$134=caml_string_of_jsbytes("0."), + cst_0_45$1=caml_string_of_jsbytes("0.45"), + cst_0$131=caml_string_of_jsbytes("0."), + cst_0_75$2=caml_string_of_jsbytes("0.75"), + cst_0_45$2=caml_string_of_jsbytes("0.45"), + cst_0_0045$2=caml_string_of_jsbytes("0.0045"), + cst_0_0045$3=caml_string_of_jsbytes("0.0045"), + cst_0_75$3=caml_string_of_jsbytes("0.75"), + cst_0_75$4=caml_string_of_jsbytes("0.75"), + cst_0_0068$0=caml_string_of_jsbytes("0.0068"), + cst_0_3$0=caml_string_of_jsbytes("0.3"), + cst_0_0045$4=caml_string_of_jsbytes("0.0045"), + cst_0$132=caml_string_of_jsbytes("0."), + cst_0_45=caml_string_of_jsbytes("0.45"), + cst_0$129=caml_string_of_jsbytes("0."), + cst_0_75=caml_string_of_jsbytes("0.75"), + cst_0_45$0=caml_string_of_jsbytes("0.45"), + cst_0_0045=caml_string_of_jsbytes("0.0045"), + cst_0_0045$0=caml_string_of_jsbytes("0.0045"), + cst_0_75$0=caml_string_of_jsbytes("0.75"), + cst_0_75$1=caml_string_of_jsbytes("0.75"), + cst_0_0068=caml_string_of_jsbytes("0.0068"), + cst_0_3=caml_string_of_jsbytes("0.3"), + cst_0_0045$1=caml_string_of_jsbytes("0.0045"), + cst_0$130=caml_string_of_jsbytes("0."), + cst_0$127=caml_string_of_jsbytes("0"), + cst_0$128=caml_string_of_jsbytes("0"), + cst_100$4=caml_string_of_jsbytes("100."), + cst_100$5=caml_string_of_jsbytes("100."), + cst_100$2=caml_string_of_jsbytes("100."), + cst_100$3=caml_string_of_jsbytes("100."), + cst_100$0=caml_string_of_jsbytes("100."), + cst_100$1=caml_string_of_jsbytes("100."), + cst_3663=caml_string_of_jsbytes("3663"), + cst_0_085$3=caml_string_of_jsbytes("0.085"), + cst_0_085$4=caml_string_of_jsbytes("0.085"), + cst_3663$0=caml_string_of_jsbytes("3663"), + cst_3539=caml_string_of_jsbytes("3539"), + cst_0_085$1=caml_string_of_jsbytes("0.085"), + cst_0_085$2=caml_string_of_jsbytes("0.085"), + cst_3539$0=caml_string_of_jsbytes("3539"), + cst_3524=caml_string_of_jsbytes("3524"), + cst_0_085=caml_string_of_jsbytes("0.085"), + cst_0_085$0=caml_string_of_jsbytes("0.085"), + cst_3524$0=caml_string_of_jsbytes("3524"), + cst_0$126=caml_string_of_jsbytes("0"), + cst_3_4=caml_string_of_jsbytes("3.4"), + cst_2_5$2=caml_string_of_jsbytes("2.5"), + cst_2_5$3=caml_string_of_jsbytes("2.5"), + cst_4$22=caml_string_of_jsbytes("4."), + cst_3_1=caml_string_of_jsbytes("3.1"), + cst_3_1$0=caml_string_of_jsbytes("3.1"), + cst_0$125=caml_string_of_jsbytes("0"), + cst_23138$0=caml_string_of_jsbytes("23138"), + cst_20165$0=caml_string_of_jsbytes("20165"), + cst_18900$0=caml_string_of_jsbytes("18900"), + cst_0$124=caml_string_of_jsbytes("0"), + cst_27905=caml_string_of_jsbytes("27905"), + cst_24683=caml_string_of_jsbytes("24683"), + cst_22911=caml_string_of_jsbytes("22911"), + cst_1$70=caml_string_of_jsbytes("1"), + cst_4576=caml_string_of_jsbytes("4576"), + cst_31539=caml_string_of_jsbytes("31539"), + cst_4043=caml_string_of_jsbytes("4043"), + cst_27774=caml_string_of_jsbytes("27774"), + cst_3682=caml_string_of_jsbytes("3682"), + cst_25689=caml_string_of_jsbytes("25689"), + cst_0$123=caml_string_of_jsbytes("0"), + cst_22355$0=caml_string_of_jsbytes("22355"), + cst_19484$0=caml_string_of_jsbytes("19484"), + cst_18261$0=caml_string_of_jsbytes("18261"), + cst_0$122=caml_string_of_jsbytes("0"), + cst_26962=caml_string_of_jsbytes("26962"), + cst_23848=caml_string_of_jsbytes("23848"), + cst_22136=caml_string_of_jsbytes("22136"), + cst_1$69=caml_string_of_jsbytes("1"), + cst_4421=caml_string_of_jsbytes("4421"), + cst_30473=caml_string_of_jsbytes("30473"), + cst_3906=caml_string_of_jsbytes("3906"), + cst_26835=caml_string_of_jsbytes("26835"), + cst_3557=caml_string_of_jsbytes("3557"), + cst_24821=caml_string_of_jsbytes("24821"), + cst_0$121=caml_string_of_jsbytes("0"), + cst_22262$0=caml_string_of_jsbytes("22262"), + cst_19402$0=caml_string_of_jsbytes("19402"), + cst_18185$0=caml_string_of_jsbytes("18185"), + cst_0$120=caml_string_of_jsbytes("0"), + cst_26849=caml_string_of_jsbytes("26849"), + cst_23748=caml_string_of_jsbytes("23748"), + cst_22044=caml_string_of_jsbytes("22044"), + cst_1$68=caml_string_of_jsbytes("1"), + cst_4403=caml_string_of_jsbytes("4403"), + cst_30345=caml_string_of_jsbytes("30345"), + cst_3890=caml_string_of_jsbytes("3890"), + cst_26723=caml_string_of_jsbytes("26723"), + cst_3542=caml_string_of_jsbytes("3542"), + cst_24717=caml_string_of_jsbytes("24717"), + cst_23138=caml_string_of_jsbytes("23138"), + cst_20165=caml_string_of_jsbytes("20165"), + cst_18900=caml_string_of_jsbytes("18900"), + cst_22355=caml_string_of_jsbytes("22355"), + cst_19484=caml_string_of_jsbytes("19484"), + cst_18261=caml_string_of_jsbytes("18261"), + cst_22262=caml_string_of_jsbytes("22262"), + cst_19402=caml_string_of_jsbytes("19402"), + cst_18185=caml_string_of_jsbytes("18185"), + cst_27765=caml_string_of_jsbytes("27765"), + cst_24198=caml_string_of_jsbytes("24198"), + cst_22680=caml_string_of_jsbytes("22680"), + cst_26826=caml_string_of_jsbytes("26826"), + cst_23380=caml_string_of_jsbytes("23380"), + cst_21913=caml_string_of_jsbytes("21913"), + cst_26714=caml_string_of_jsbytes("26714"), + cst_23282=caml_string_of_jsbytes("23282"), + cst_21821=caml_string_of_jsbytes("21821"), + cst_0$119=caml_string_of_jsbytes("0"), + cst_30850=caml_string_of_jsbytes("30850"), + cst_26887$0=caml_string_of_jsbytes("26887"), + cst_25200=caml_string_of_jsbytes("25200"), + cst_0$118=caml_string_of_jsbytes("0"), + cst_37207=caml_string_of_jsbytes("37207"), + cst_32910$0=caml_string_of_jsbytes("32910"), + cst_30548=caml_string_of_jsbytes("30548"), + cst_1$67=caml_string_of_jsbytes("1"), + cst_6101=caml_string_of_jsbytes("6101"), + cst_42052=caml_string_of_jsbytes("42052"), + cst_5390$0=caml_string_of_jsbytes("5390"), + cst_37032$0=caml_string_of_jsbytes("37032"), + cst_4909=caml_string_of_jsbytes("4909"), + cst_34252=caml_string_of_jsbytes("34252"), + cst_0$117=caml_string_of_jsbytes("0"), + cst_29807=caml_string_of_jsbytes("29807"), + cst_25978$0=caml_string_of_jsbytes("25978"), + cst_24348=caml_string_of_jsbytes("24348"), + cst_0$116=caml_string_of_jsbytes("0"), + cst_35949=caml_string_of_jsbytes("35949"), + cst_31797$0=caml_string_of_jsbytes("31797"), + cst_29515=caml_string_of_jsbytes("29515"), + cst_1$66=caml_string_of_jsbytes("1"), + cst_5895=caml_string_of_jsbytes("5895"), + cst_40630=caml_string_of_jsbytes("40630"), + cst_5208$0=caml_string_of_jsbytes("5208"), + cst_35780$0=caml_string_of_jsbytes("35780"), + cst_4743=caml_string_of_jsbytes("4743"), + cst_33094=caml_string_of_jsbytes("33094"), + cst_0$115=caml_string_of_jsbytes("0"), + cst_29682=caml_string_of_jsbytes("29682"), + cst_25859=caml_string_of_jsbytes("25859"), + cst_24246=caml_string_of_jsbytes("24246"), + cst_0$114=caml_string_of_jsbytes("0"), + cst_35799=caml_string_of_jsbytes("35799"), + cst_31664$0=caml_string_of_jsbytes("31664"), + cst_29392=caml_string_of_jsbytes("29392"), + cst_1$65=caml_string_of_jsbytes("1"), + cst_5870=caml_string_of_jsbytes("5870"), + cst_40460=caml_string_of_jsbytes("40460"), + cst_5186$0=caml_string_of_jsbytes("5186"), + cst_35630$0=caml_string_of_jsbytes("35630"), + cst_4723=caml_string_of_jsbytes("4723"), + cst_32956=caml_string_of_jsbytes("32956"), + cst_0$113=caml_string_of_jsbytes("0"), + cst_26887=caml_string_of_jsbytes("26887"), + cst_32910=caml_string_of_jsbytes("32910"), + cst_5390=caml_string_of_jsbytes("5390"), + cst_37032=caml_string_of_jsbytes("37032"), + cst_0$112=caml_string_of_jsbytes("0"), + cst_25978=caml_string_of_jsbytes("25978"), + cst_31797=caml_string_of_jsbytes("31797"), + cst_5208=caml_string_of_jsbytes("5208"), + cst_35780=caml_string_of_jsbytes("35780"), + cst_0$111=caml_string_of_jsbytes("0"), + cst_25869=caml_string_of_jsbytes("25869"), + cst_31664=caml_string_of_jsbytes("31664"), + cst_5186=caml_string_of_jsbytes("5186"), + cst_35630=caml_string_of_jsbytes("35630"), + cst_1$64=caml_string_of_jsbytes("1"), + cst_818100=caml_string_of_jsbytes("818100"), + cst_0$110=caml_string_of_jsbytes("0"), + cst_527200=caml_string_of_jsbytes("527200"), + cst_755200=caml_string_of_jsbytes("755200"), + cst_1$63=caml_string_of_jsbytes("1"), + cst_900800=caml_string_of_jsbytes("900800"), + cst_2$41=caml_string_of_jsbytes("2"), + cst_921100=caml_string_of_jsbytes("921100"), + cst_3$26=caml_string_of_jsbytes("3"), + cst_956300=caml_string_of_jsbytes("956300"), + cst_4$21=caml_string_of_jsbytes("4"), + cst_991900=caml_string_of_jsbytes("991900"), + cst_5$25=caml_string_of_jsbytes("5"), + cst_1027100=caml_string_of_jsbytes("1027100"), + cst_6$45=caml_string_of_jsbytes("6"), + cst_1062600=caml_string_of_jsbytes("1062600"), + cst_6$46=caml_string_of_jsbytes("6"), + cst_35000$0=caml_string_of_jsbytes("35000"), + cst_1062600$0=caml_string_of_jsbytes("1062600"), + cst_1$62=caml_string_of_jsbytes("1"), + cst_805100=caml_string_of_jsbytes("805100"), + cst_0$109=caml_string_of_jsbytes("0"), + cst_487000$0=caml_string_of_jsbytes("487000"), + cst_697700$0=caml_string_of_jsbytes("697700"), + cst_1$61=caml_string_of_jsbytes("1"), + cst_832200$1=caml_string_of_jsbytes("832200"), + cst_2$40=caml_string_of_jsbytes("2"), + cst_850900$0=caml_string_of_jsbytes("850900"), + cst_3$25=caml_string_of_jsbytes("3"), + cst_883400$0=caml_string_of_jsbytes("883400"), + cst_4$20=caml_string_of_jsbytes("4"), + cst_916300$0=caml_string_of_jsbytes("916300"), + cst_5$24=caml_string_of_jsbytes("5"), + cst_948800$0=caml_string_of_jsbytes("948800"), + cst_6$43=caml_string_of_jsbytes("6"), + cst_981600$1=caml_string_of_jsbytes("981600"), + cst_6$44=caml_string_of_jsbytes("6"), + cst_35000=caml_string_of_jsbytes("35000"), + cst_981600$2=caml_string_of_jsbytes("981600"), + cst_1$60=caml_string_of_jsbytes("1"), + cst_774200=caml_string_of_jsbytes("774200"), + cst_0$108=caml_string_of_jsbytes("0"), + cst_427400=caml_string_of_jsbytes("427400"), + cst_612200=caml_string_of_jsbytes("612200"), + cst_1$59=caml_string_of_jsbytes("1"), + cst_699000=caml_string_of_jsbytes("699000"), + cst_2$39=caml_string_of_jsbytes("2"), + cst_743200=caml_string_of_jsbytes("743200"), + cst_3$24=caml_string_of_jsbytes("3"), + cst_785400=caml_string_of_jsbytes("785400"), + cst_4$19=caml_string_of_jsbytes("4"), + cst_828300=caml_string_of_jsbytes("828300"), + cst_5$23=caml_string_of_jsbytes("5"), + cst_871100=caml_string_of_jsbytes("871100"), + cst_913900=caml_string_of_jsbytes("913900"), + cst_1$58=caml_string_of_jsbytes("1"), + cst_758400$1=caml_string_of_jsbytes("758400"), + cst_1$57=caml_string_of_jsbytes("1"), + cst_758400$0=caml_string_of_jsbytes("758400"), + cst_1$56=caml_string_of_jsbytes("1"), + cst_758400=caml_string_of_jsbytes("758400"), + cst_0$107=caml_string_of_jsbytes("0"), + cst_396000=caml_string_of_jsbytes("396000"), + cst_567300=caml_string_of_jsbytes("567300"), + cst_1$55=caml_string_of_jsbytes("1"), + cst_639600=caml_string_of_jsbytes("639600"), + cst_2$38=caml_string_of_jsbytes("2"), + cst_684900=caml_string_of_jsbytes("684900"), + cst_3$23=caml_string_of_jsbytes("3"), + cst_738600=caml_string_of_jsbytes("738600"), + cst_4$18=caml_string_of_jsbytes("4"), + cst_793500=caml_string_of_jsbytes("793500"), + cst_5$22=caml_string_of_jsbytes("5"), + cst_848400=caml_string_of_jsbytes("848400"), + cst_903200=caml_string_of_jsbytes("903200"), + cst_0$106=caml_string_of_jsbytes("0"), + cst_494900=caml_string_of_jsbytes("494900"), + cst_709000=caml_string_of_jsbytes("709000"), + cst_1$54=caml_string_of_jsbytes("1"), + cst_845600=caml_string_of_jsbytes("845600"), + cst_2$37=caml_string_of_jsbytes("2"), + cst_864600=caml_string_of_jsbytes("864600"), + cst_3$22=caml_string_of_jsbytes("3"), + cst_897700=caml_string_of_jsbytes("897700"), + cst_4$17=caml_string_of_jsbytes("4"), + cst_931100=caml_string_of_jsbytes("931100"), + cst_5$21=caml_string_of_jsbytes("5"), + cst_964200=caml_string_of_jsbytes("964200"), + cst_6$42=caml_string_of_jsbytes("6"), + cst_997500=caml_string_of_jsbytes("997500"), + cst_32800=caml_string_of_jsbytes("32800"), + cst_997500$0=caml_string_of_jsbytes("997500"), + cst_0$105=caml_string_of_jsbytes("0"), + cst_487000=caml_string_of_jsbytes("487000"), + cst_697700=caml_string_of_jsbytes("697700"), + cst_1$53=caml_string_of_jsbytes("1"), + cst_832200$0=caml_string_of_jsbytes("832200"), + cst_2$36=caml_string_of_jsbytes("2"), + cst_850900=caml_string_of_jsbytes("850900"), + cst_3$21=caml_string_of_jsbytes("3"), + cst_883400=caml_string_of_jsbytes("883400"), + cst_4$16=caml_string_of_jsbytes("4"), + cst_916300=caml_string_of_jsbytes("916300"), + cst_5$20=caml_string_of_jsbytes("5"), + cst_948800=caml_string_of_jsbytes("948800"), + cst_6$41=caml_string_of_jsbytes("6"), + cst_981600=caml_string_of_jsbytes("981600"), + cst_32300=caml_string_of_jsbytes("32300"), + cst_981600$0=caml_string_of_jsbytes("981600"), + cst_0$104=caml_string_of_jsbytes("0"), + cst_468300=caml_string_of_jsbytes("468300"), + cst_670900=caml_string_of_jsbytes("670900"), + cst_1$52=caml_string_of_jsbytes("1"), + cst_800200=caml_string_of_jsbytes("800200"), + cst_2$35=caml_string_of_jsbytes("2"), + cst_819200=caml_string_of_jsbytes("819200"), + cst_3$20=caml_string_of_jsbytes("3"), + cst_849500=caml_string_of_jsbytes("849500"), + cst_4$15=caml_string_of_jsbytes("4"), + cst_881100=caml_string_of_jsbytes("881100"), + cst_5$19=caml_string_of_jsbytes("5"), + cst_912400=caml_string_of_jsbytes("912400"), + cst_6$40=caml_string_of_jsbytes("6"), + cst_943900=caml_string_of_jsbytes("943900"), + cst_31100=caml_string_of_jsbytes("31100"), + cst_943900$0=caml_string_of_jsbytes("943900"), + cst_0$103=caml_string_of_jsbytes("0"), + cst_458800=caml_string_of_jsbytes("458800"), + cst_657200=caml_string_of_jsbytes("657200"), + cst_1$51=caml_string_of_jsbytes("1"), + cst_783900=caml_string_of_jsbytes("783900"), + cst_2$34=caml_string_of_jsbytes("2"), + cst_801500=caml_string_of_jsbytes("801500"), + cst_3$19=caml_string_of_jsbytes("3"), + cst_832200=caml_string_of_jsbytes("832200"), + cst_4$14=caml_string_of_jsbytes("4"), + cst_863100=caml_string_of_jsbytes("863100"), + cst_5$18=caml_string_of_jsbytes("5"), + cst_893800=caml_string_of_jsbytes("893800"), + cst_6$38=caml_string_of_jsbytes("6"), + cst_924600=caml_string_of_jsbytes("924600"), + cst_6$39=caml_string_of_jsbytes("6"), + cst_30500=caml_string_of_jsbytes("30500"), + cst_924600$0=caml_string_of_jsbytes("924600"), + cst_969$4=caml_string_of_jsbytes("969"), + cst_1938$1=caml_string_of_jsbytes("1938"), + cst_3767$4=caml_string_of_jsbytes("3767"), + cst_969$2=caml_string_of_jsbytes("969"), + cst_1938=caml_string_of_jsbytes("1938"), + cst_3767$3=caml_string_of_jsbytes("3767"), + cst_6$37=caml_string_of_jsbytes("6."), + cst_969$3=caml_string_of_jsbytes("969"), + cst_1938$0=caml_string_of_jsbytes("1938"), + cst_3767$2=caml_string_of_jsbytes("3767"), + cst_936$5=caml_string_of_jsbytes("936"), + cst_1872$1=caml_string_of_jsbytes("1872"), + cst_3640$6=caml_string_of_jsbytes("3640"), + cst_6$36=caml_string_of_jsbytes("6."), + cst_936$6=caml_string_of_jsbytes("936"), + cst_1872$2=caml_string_of_jsbytes("1872"), + cst_3640$5=caml_string_of_jsbytes("3640"), + cst_936$3=caml_string_of_jsbytes("936"), + cst_1872=caml_string_of_jsbytes("1872"), + cst_3640$4=caml_string_of_jsbytes("3640"), + cst_6$35=caml_string_of_jsbytes("6."), + cst_936$4=caml_string_of_jsbytes("936"), + cst_1872$0=caml_string_of_jsbytes("1872"), + cst_3640$3=caml_string_of_jsbytes("3640"), + cst_932$1=caml_string_of_jsbytes("932"), + cst_1864=caml_string_of_jsbytes("1864"), + cst_3625$2=caml_string_of_jsbytes("3625"), + cst_6$34=caml_string_of_jsbytes("6."), + cst_932$2=caml_string_of_jsbytes("932"), + cst_1864$0=caml_string_of_jsbytes("1864"), + cst_3625$1=caml_string_of_jsbytes("3625"), + cst_929$1=caml_string_of_jsbytes("929"), + cst_1858=caml_string_of_jsbytes("1858"), + cst_3614$2=caml_string_of_jsbytes("3614"), + cst_6$33=caml_string_of_jsbytes("6."), + cst_929$2=caml_string_of_jsbytes("929"), + cst_1858$0=caml_string_of_jsbytes("1858"), + cst_3614$1=caml_string_of_jsbytes("3614"), + cst_1272$0=caml_string_of_jsbytes("1272"), + cst_2805=caml_string_of_jsbytes("2805"), + cst_5612$0=caml_string_of_jsbytes("5612"), + cst_1229$0=caml_string_of_jsbytes("1229"), + cst_2710=caml_string_of_jsbytes("2710"), + cst_5422$0=caml_string_of_jsbytes("5422"), + cst_1224$0=caml_string_of_jsbytes("1224"), + cst_2699=caml_string_of_jsbytes("2699"), + cst_5399$0=caml_string_of_jsbytes("5399"), + cst_969$1=caml_string_of_jsbytes("969"), + cst_3767$1=caml_string_of_jsbytes("3767"), + cst_969=caml_string_of_jsbytes("969"), + cst_3767=caml_string_of_jsbytes("3767"), + cst_6$32=caml_string_of_jsbytes("6."), + cst_969$0=caml_string_of_jsbytes("969"), + cst_3767$0=caml_string_of_jsbytes("3767"), + cst_936$1=caml_string_of_jsbytes("936"), + cst_3640$1=caml_string_of_jsbytes("3640"), + cst_6$31=caml_string_of_jsbytes("6."), + cst_936$2=caml_string_of_jsbytes("936"), + cst_3640$2=caml_string_of_jsbytes("3640"), + cst_936=caml_string_of_jsbytes("936"), + cst_3640=caml_string_of_jsbytes("3640"), + cst_6$30=caml_string_of_jsbytes("6."), + cst_936$0=caml_string_of_jsbytes("936"), + cst_3640$0=caml_string_of_jsbytes("3640"), + cst_932=caml_string_of_jsbytes("932"), + cst_3625=caml_string_of_jsbytes("3625"), + cst_6$29=caml_string_of_jsbytes("6."), + cst_932$0=caml_string_of_jsbytes("932"), + cst_3625$0=caml_string_of_jsbytes("3625"), + cst_929=caml_string_of_jsbytes("929"), + cst_3614=caml_string_of_jsbytes("3614"), + cst_6$28=caml_string_of_jsbytes("6."), + cst_929$0=caml_string_of_jsbytes("929"), + cst_3614$0=caml_string_of_jsbytes("3614"), + cst_1272=caml_string_of_jsbytes("1272"), + cst_5612=caml_string_of_jsbytes("5612"), + cst_1229=caml_string_of_jsbytes("1229"), + cst_5422=caml_string_of_jsbytes("5422"), + cst_1224=caml_string_of_jsbytes("1224"), + cst_5399=caml_string_of_jsbytes("5399"), + cst_6$27=caml_string_of_jsbytes("6"), + cst_5$17=caml_string_of_jsbytes("5."), + cst_6$26=caml_string_of_jsbytes("6"), + cst_5$16=caml_string_of_jsbytes("5."), + cst_6$25=caml_string_of_jsbytes("6"), + cst_5$15=caml_string_of_jsbytes("5."), + cst_6$24=caml_string_of_jsbytes("6"), + cst_5$14=caml_string_of_jsbytes("5."), + cst_6$23=caml_string_of_jsbytes("6"), + cst_5$13=caml_string_of_jsbytes("5."), + cst_1$50=caml_string_of_jsbytes("1"), + cst_1$49=caml_string_of_jsbytes("1"), + cst_1$48=caml_string_of_jsbytes("1"), + cst_1$47=caml_string_of_jsbytes("1"), + cst_1$46=caml_string_of_jsbytes("1"), + cst_6$22=caml_string_of_jsbytes("6"), + cst_5$12=caml_string_of_jsbytes("5."), + cst_6$21=caml_string_of_jsbytes("6"), + cst_5$11=caml_string_of_jsbytes("5."), + cst_6$20=caml_string_of_jsbytes("6"), + cst_5$10=caml_string_of_jsbytes("5."), + cst_6$19=caml_string_of_jsbytes("6"), + cst_5$9=caml_string_of_jsbytes("5."), + cst_6$18=caml_string_of_jsbytes("6"), + cst_5$8=caml_string_of_jsbytes("5."), + cst_1$45=caml_string_of_jsbytes("1"), + cst_1$44=caml_string_of_jsbytes("1"), + cst_1$43=caml_string_of_jsbytes("1"), + cst_6$17=caml_string_of_jsbytes("6"), + cst_0$102=caml_string_of_jsbytes("0."), + cst_6$16=caml_string_of_jsbytes("6"), + cst_0$101=caml_string_of_jsbytes("0."), + cst_6$15=caml_string_of_jsbytes("6"), + cst_0$100=caml_string_of_jsbytes("0."), + cst_6$14=caml_string_of_jsbytes("6"), + cst_0$99=caml_string_of_jsbytes("0."), + cst_6$13=caml_string_of_jsbytes("6"), + cst_0$98=caml_string_of_jsbytes("0."), + cst_6$12=caml_string_of_jsbytes("6"), + cst_6$11=caml_string_of_jsbytes("6"), + cst_6$10=caml_string_of_jsbytes("6"), + cst_6$9=caml_string_of_jsbytes("6"), + cst_0$97=caml_string_of_jsbytes("0"), + cst_0_0281$4=caml_string_of_jsbytes("0.0281"), + cst_0_0299$4=caml_string_of_jsbytes("0.0299"), + cst_1$42=caml_string_of_jsbytes("1"), + cst_0_0238$7=caml_string_of_jsbytes("0.0238"), + cst_2$33=caml_string_of_jsbytes("2"), + cst_0_0217$4=caml_string_of_jsbytes("0.0217"), + cst_3$18=caml_string_of_jsbytes("3"), + cst_0_0194$4=caml_string_of_jsbytes("0.0194"), + cst_4$13=caml_string_of_jsbytes("4"), + cst_0_018$4=caml_string_of_jsbytes("0.018"), + cst_5$7=caml_string_of_jsbytes("5"), + cst_0_0169$4=caml_string_of_jsbytes("0.0169"), + cst_6$8=caml_string_of_jsbytes("6"), + cst_0_0162$4=caml_string_of_jsbytes("0.0162"), + cst_7=caml_string_of_jsbytes("7"), + cst_0_0167=caml_string_of_jsbytes("0.0167"), + cst_7$0=caml_string_of_jsbytes("7"), + cst_0_0006$2=caml_string_of_jsbytes("0.0006"), + cst_0_0167$0=caml_string_of_jsbytes("0.0167"), + cst_0$96=caml_string_of_jsbytes("0"), + cst_0_0281$3=caml_string_of_jsbytes("0.0281"), + cst_0_0299$3=caml_string_of_jsbytes("0.0299"), + cst_1$41=caml_string_of_jsbytes("1"), + cst_0_0238$6=caml_string_of_jsbytes("0.0238"), + cst_2$32=caml_string_of_jsbytes("2"), + cst_0_0217$3=caml_string_of_jsbytes("0.0217"), + cst_3$17=caml_string_of_jsbytes("3"), + cst_0_0194$3=caml_string_of_jsbytes("0.0194"), + cst_4$12=caml_string_of_jsbytes("4"), + cst_0_018$3=caml_string_of_jsbytes("0.018"), + cst_5$6=caml_string_of_jsbytes("5"), + cst_0_0169$3=caml_string_of_jsbytes("0.0169"), + cst_0_0162$3=caml_string_of_jsbytes("0.0162"), + cst_0$95=caml_string_of_jsbytes("0"), + cst_0_0281$2=caml_string_of_jsbytes("0.0281"), + cst_0_0299$2=caml_string_of_jsbytes("0.0299"), + cst_1$40=caml_string_of_jsbytes("1"), + cst_0_0238$5=caml_string_of_jsbytes("0.0238"), + cst_2$31=caml_string_of_jsbytes("2"), + cst_0_0217$2=caml_string_of_jsbytes("0.0217"), + cst_3$16=caml_string_of_jsbytes("3"), + cst_0_0194$2=caml_string_of_jsbytes("0.0194"), + cst_4$11=caml_string_of_jsbytes("4"), + cst_0_018$2=caml_string_of_jsbytes("0.018"), + cst_5$5=caml_string_of_jsbytes("5"), + cst_0_0169$2=caml_string_of_jsbytes("0.0169"), + cst_0_0162$2=caml_string_of_jsbytes("0.0162"), + cst_0$94=caml_string_of_jsbytes("0"), + cst_0_0281$1=caml_string_of_jsbytes("0.0281"), + cst_0_0299$1=caml_string_of_jsbytes("0.0299"), + cst_1$39=caml_string_of_jsbytes("1"), + cst_0_0238$4=caml_string_of_jsbytes("0.0238"), + cst_2$30=caml_string_of_jsbytes("2"), + cst_0_0217$1=caml_string_of_jsbytes("0.0217"), + cst_3$15=caml_string_of_jsbytes("3"), + cst_0_0194$1=caml_string_of_jsbytes("0.0194"), + cst_4$10=caml_string_of_jsbytes("4"), + cst_0_018$1=caml_string_of_jsbytes("0.018"), + cst_5$4=caml_string_of_jsbytes("5"), + cst_0_0169$1=caml_string_of_jsbytes("0.0169"), + cst_0_0162$1=caml_string_of_jsbytes("0.0162"), + cst_0$93=caml_string_of_jsbytes("0"), + cst_0_0281$0=caml_string_of_jsbytes("0.0281"), + cst_0_0299$0=caml_string_of_jsbytes("0.0299"), + cst_1$38=caml_string_of_jsbytes("1"), + cst_0_0238$3=caml_string_of_jsbytes("0.0238"), + cst_2$29=caml_string_of_jsbytes("2"), + cst_0_0217$0=caml_string_of_jsbytes("0.0217"), + cst_3$14=caml_string_of_jsbytes("3"), + cst_0_0194$0=caml_string_of_jsbytes("0.0194"), + cst_4$9=caml_string_of_jsbytes("4"), + cst_0_018$0=caml_string_of_jsbytes("0.018"), + cst_5$3=caml_string_of_jsbytes("5"), + cst_0_0169$0=caml_string_of_jsbytes("0.0169"), + cst_0_0162$0=caml_string_of_jsbytes("0.0162"), + cst_0$92=caml_string_of_jsbytes("0"), + cst_0_0281=caml_string_of_jsbytes("0.0281"), + cst_0_0299=caml_string_of_jsbytes("0.0299"), + cst_1$37=caml_string_of_jsbytes("1"), + cst_0_0238$2=caml_string_of_jsbytes("0.0238"), + cst_2$28=caml_string_of_jsbytes("2"), + cst_0_0217=caml_string_of_jsbytes("0.0217"), + cst_3$13=caml_string_of_jsbytes("3"), + cst_0_0194=caml_string_of_jsbytes("0.0194"), + cst_4$8=caml_string_of_jsbytes("4"), + cst_0_018=caml_string_of_jsbytes("0.018"), + cst_5$2=caml_string_of_jsbytes("5"), + cst_0_0169=caml_string_of_jsbytes("0.0169"), + cst_0_0162=caml_string_of_jsbytes("0.0162"), + cst_0$91=caml_string_of_jsbytes("0"), + cst_0_0283$1=caml_string_of_jsbytes("0.0283"), + cst_0_0315$1=caml_string_of_jsbytes("0.0315"), + cst_1$36=caml_string_of_jsbytes("1"), + cst_0_027$1=caml_string_of_jsbytes("0.027"), + cst_2$27=caml_string_of_jsbytes("2"), + cst_0_0238$1=caml_string_of_jsbytes("0.0238"), + cst_3$12=caml_string_of_jsbytes("3"), + cst_0_0201$1=caml_string_of_jsbytes("0.0201"), + cst_4$7=caml_string_of_jsbytes("4"), + cst_0_0185$1=caml_string_of_jsbytes("0.0185"), + cst_5$1=caml_string_of_jsbytes("5"), + cst_0_0179$1=caml_string_of_jsbytes("0.0179"), + cst_6$6=caml_string_of_jsbytes("6"), + cst_0_0173$3=caml_string_of_jsbytes("0.0173"), + cst_6$7=caml_string_of_jsbytes("6"), + cst_0_0006$1=caml_string_of_jsbytes("0.0006"), + cst_0_0173$4=caml_string_of_jsbytes("0.0173"), + cst_0$90=caml_string_of_jsbytes("0"), + cst_0_0283$0=caml_string_of_jsbytes("0.0283"), + cst_0_0315$0=caml_string_of_jsbytes("0.0315"), + cst_1$35=caml_string_of_jsbytes("1"), + cst_0_027$0=caml_string_of_jsbytes("0.027"), + cst_2$26=caml_string_of_jsbytes("2"), + cst_0_0238$0=caml_string_of_jsbytes("0.0238"), + cst_3$11=caml_string_of_jsbytes("3"), + cst_0_0201$0=caml_string_of_jsbytes("0.0201"), + cst_4$6=caml_string_of_jsbytes("4"), + cst_0_0185$0=caml_string_of_jsbytes("0.0185"), + cst_5$0=caml_string_of_jsbytes("5"), + cst_0_0179$0=caml_string_of_jsbytes("0.0179"), + cst_6$4=caml_string_of_jsbytes("6"), + cst_0_0173$1=caml_string_of_jsbytes("0.0173"), + cst_6$5=caml_string_of_jsbytes("6"), + cst_0_0006$0=caml_string_of_jsbytes("0.0006"), + cst_0_0173$2=caml_string_of_jsbytes("0.0173"), + cst_0$89=caml_string_of_jsbytes("0"), + cst_0_0283=caml_string_of_jsbytes("0.0283"), + cst_0_0315=caml_string_of_jsbytes("0.0315"), + cst_1$34=caml_string_of_jsbytes("1"), + cst_0_027=caml_string_of_jsbytes("0.027"), + cst_2$25=caml_string_of_jsbytes("2"), + cst_0_0238=caml_string_of_jsbytes("0.0238"), + cst_3$10=caml_string_of_jsbytes("3"), + cst_0_0201=caml_string_of_jsbytes("0.0201"), + cst_4$5=caml_string_of_jsbytes("4"), + cst_0_0185=caml_string_of_jsbytes("0.0185"), + cst_5=caml_string_of_jsbytes("5"), + cst_0_0179=caml_string_of_jsbytes("0.0179"), + cst_6$2=caml_string_of_jsbytes("6"), + cst_0_0173=caml_string_of_jsbytes("0.0173"), + cst_6$3=caml_string_of_jsbytes("6"), + cst_0_0006=caml_string_of_jsbytes("0.0006"), + cst_0_0173$0=caml_string_of_jsbytes("0.0173"), + cst_3$9=caml_string_of_jsbytes("3."), + cst_2$24=caml_string_of_jsbytes("2."), + cst_0$88=caml_string_of_jsbytes("0"), + cst_1000=caml_string_of_jsbytes("1000"), + cst_1000$0=caml_string_of_jsbytes("1000"), + cst_500=caml_string_of_jsbytes("500"), + cst_0_98=caml_string_of_jsbytes("0.98"), + cst_2_5$4=caml_string_of_jsbytes("2.5"), + cst_0_98$0=caml_string_of_jsbytes("0.98"), + cst_0_9=caml_string_of_jsbytes("0.9"), + cst_0$144=caml_string_of_jsbytes("0"), + cst_0$87=caml_string_of_jsbytes("0"), + cst_100=caml_string_of_jsbytes("100."), + cst_49=caml_string_of_jsbytes("49"), + cst_0_01=caml_string_of_jsbytes("0.01"), + cst_1003$0=caml_string_of_jsbytes("1003"), + cst_757$0=caml_string_of_jsbytes("757"), + cst_1015$0=caml_string_of_jsbytes("1015"), + cst_766$0=caml_string_of_jsbytes("766"), + cst_1025$0=caml_string_of_jsbytes("1025"), + cst_774$0=caml_string_of_jsbytes("774"), + cst_1057$0=caml_string_of_jsbytes("1057"), + cst_798$0=caml_string_of_jsbytes("798"), + cst_1085$0=caml_string_of_jsbytes("1085"), + cst_819$0=caml_string_of_jsbytes("819"), + cst_1107$0=caml_string_of_jsbytes("1107"), + cst_835$0=caml_string_of_jsbytes("835"), + cst_1127$0=caml_string_of_jsbytes("1127"), + cst_851$0=caml_string_of_jsbytes("851"), + cst_41316$0=caml_string_of_jsbytes("41316"), + cst_41440$0=caml_string_of_jsbytes("41440"), + cst_41481$0=caml_string_of_jsbytes("41481"), + cst_42228$0=caml_string_of_jsbytes("42228"), + cst_0$86=caml_string_of_jsbytes("0"), + cst_0$85=caml_string_of_jsbytes("0"), + cst_0$83=caml_string_of_jsbytes("0"), + cst_0$84=caml_string_of_jsbytes("0"), + cst_2$23=caml_string_of_jsbytes("2."), + cst_0$81=caml_string_of_jsbytes("0"), + cst_0$82=caml_string_of_jsbytes("0"), + cst_2$22=caml_string_of_jsbytes("2."), + cst_6$1=caml_string_of_jsbytes("6."), + cst_1$33=caml_string_of_jsbytes("1."), + cst_2$21=caml_string_of_jsbytes("2."), + cst_0$80=caml_string_of_jsbytes("0"), + cst_6$0=caml_string_of_jsbytes("6."), + cst_1$32=caml_string_of_jsbytes("1."), + cst_2$20=caml_string_of_jsbytes("2."), + cst_0$79=caml_string_of_jsbytes("0"), + cst_12$13=caml_string_of_jsbytes("12."), + cst_1952=caml_string_of_jsbytes("1952"), + cst_1953=caml_string_of_jsbytes("1953"), + cst_1954=caml_string_of_jsbytes("1954"), + cst_0$78=caml_string_of_jsbytes("0"), + cst_1_4$0=caml_string_of_jsbytes("1.4"), + cst_1_8$0=caml_string_of_jsbytes("1.8"), + cst_1$31=caml_string_of_jsbytes("1"), + cst_2_5$1=caml_string_of_jsbytes("2.5"), + cst_2$19=caml_string_of_jsbytes("2"), + cst_3$7=caml_string_of_jsbytes("3."), + cst_3$8=caml_string_of_jsbytes("3"), + cst_3_7$1=caml_string_of_jsbytes("3.7"), + cst_4$3=caml_string_of_jsbytes("4"), + cst_4_3$1=caml_string_of_jsbytes("4.3"), + cst_4$4=caml_string_of_jsbytes("4"), + cst_0_5$3=caml_string_of_jsbytes("0.5"), + cst_4_3$2=caml_string_of_jsbytes("4.3"), + cst_6=caml_string_of_jsbytes("6"), + cst_1$30=caml_string_of_jsbytes("1."), + cst_4$1=caml_string_of_jsbytes("4"), + cst_4$2=caml_string_of_jsbytes("4"), + cst_0_5$2=caml_string_of_jsbytes("0.5"), + cst_0$77=caml_string_of_jsbytes("0."), + cst_4=caml_string_of_jsbytes("4"), + cst_4$0=caml_string_of_jsbytes("4"), + cst_0_5$1=caml_string_of_jsbytes("0.5"), + cst_0$76=caml_string_of_jsbytes("0."), + cst_0$75=caml_string_of_jsbytes("0"), + cst_1_2=caml_string_of_jsbytes("1.2"), + cst_1_5=caml_string_of_jsbytes("1.5"), + cst_1$29=caml_string_of_jsbytes("1"), + cst_2_5$0=caml_string_of_jsbytes("2.5"), + cst_2$18=caml_string_of_jsbytes("2"), + cst_3$5=caml_string_of_jsbytes("3."), + cst_3$6=caml_string_of_jsbytes("3"), + cst_3_7$0=caml_string_of_jsbytes("3.7"), + cst_4_3$0=caml_string_of_jsbytes("4.3"), + cst_0$74=caml_string_of_jsbytes("0"), + cst_1_4=caml_string_of_jsbytes("1.4"), + cst_1_8=caml_string_of_jsbytes("1.8"), + cst_1$28=caml_string_of_jsbytes("1"), + cst_2_5=caml_string_of_jsbytes("2.5"), + cst_2$17=caml_string_of_jsbytes("2"), + cst_3$3=caml_string_of_jsbytes("3."), + cst_3$4=caml_string_of_jsbytes("3"), + cst_3_7=caml_string_of_jsbytes("3.7"), + cst_4_3=caml_string_of_jsbytes("4.3"), + cst_0$72=caml_string_of_jsbytes("0."), + cst_12$12=caml_string_of_jsbytes("12."), + cst_0$73=caml_string_of_jsbytes("0."), + cst_0$70=caml_string_of_jsbytes("0."), + cst_12$11=caml_string_of_jsbytes("12."), + cst_0$71=caml_string_of_jsbytes("0."), + cst_0_328=caml_string_of_jsbytes("0.328"), + cst_409505=caml_string_of_jsbytes("409505"), + cst_0_232$0=caml_string_of_jsbytes("0.232"), + cst_262985=caml_string_of_jsbytes("262985"), + cst_409505$0=caml_string_of_jsbytes("409505"), + cst_0_208=caml_string_of_jsbytes("0.208"), + cst_204761=caml_string_of_jsbytes("204761"), + cst_262985$0=caml_string_of_jsbytes("262985"), + cst_0_024=caml_string_of_jsbytes("0.024"), + cst_142303=caml_string_of_jsbytes("142303"), + cst_204761$0=caml_string_of_jsbytes("204761"), + cst_0$68=caml_string_of_jsbytes("0."), + cst_0$69=caml_string_of_jsbytes("0"), + cst_142303$0=caml_string_of_jsbytes("142303"), + cst_0_48=caml_string_of_jsbytes("0.48"), + cst_633129=caml_string_of_jsbytes("633129"), + cst_0_32$1=caml_string_of_jsbytes("0.32"), + cst_535744=caml_string_of_jsbytes("535744"), + cst_633129$0=caml_string_of_jsbytes("633129"), + cst_0_264=caml_string_of_jsbytes("0.264"), + cst_389618=caml_string_of_jsbytes("389618"), + cst_535744$0=caml_string_of_jsbytes("535744"), + cst_0_216=caml_string_of_jsbytes("0.216"), + cst_267871=caml_string_of_jsbytes("267871"), + cst_389618$0=caml_string_of_jsbytes("389618"), + cst_0_104=caml_string_of_jsbytes("0.104"), + cst_194810=caml_string_of_jsbytes("194810"), + cst_267871$0=caml_string_of_jsbytes("267871"), + cst_0_04$0=caml_string_of_jsbytes("0.04"), + cst_0$67=caml_string_of_jsbytes("0"), + cst_194810$0=caml_string_of_jsbytes("194810"), + cst_7632=caml_string_of_jsbytes("7632"), + cst_4557=caml_string_of_jsbytes("4557"), + cst_0_005=caml_string_of_jsbytes("0.005"), + cst_ge_l512_3_2_in=caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2_in"), + cst_r_sidence_in$11=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_prestation_courante_in$0= + caml_string_of_jsbytes("prestation_courante_in"), + cst_date_courante_in$26=caml_string_of_jsbytes("date_courante_in"), + cst_r_sidence_in$10=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_date_courante_in$25=caml_string_of_jsbytes("date_courante_in"), + cst_ann_es_in$2=caml_string_of_jsbytes("ann\xc3\xa9es_in"), + cst_date_courante_in$24=caml_string_of_jsbytes("date_courante_in"), + cst_date_naissance_in$2=caml_string_of_jsbytes("date_naissance_in"), + cst_ann_es_in$1=caml_string_of_jsbytes("ann\xc3\xa9es_in"), + cst_date_courante_in$23=caml_string_of_jsbytes("date_courante_in"), + cst_date_naissance_in$1=caml_string_of_jsbytes("date_naissance_in"), + cst_date_courante_in$22=caml_string_of_jsbytes("date_courante_in"), + cst_ressources_m_nage_prises_e$0= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_prises_en_compte_in"), + cst_date_courante_in$21=caml_string_of_jsbytes("date_courante_in"), + cst_demandeur_in$4=caml_string_of_jsbytes("demandeur_in"), + cst_m_nage_in$4=caml_string_of_jsbytes("m\xc3\xa9nage_in"), + cst_ressources_m_nage_prises_e= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_prises_en_compte_in"), + cst_date_courante_in$20=caml_string_of_jsbytes("date_courante_in"), + cst_demandeur_in$3=caml_string_of_jsbytes("demandeur_in"), + cst_m_nage_in$3=caml_string_of_jsbytes("m\xc3\xa9nage_in"), + cst_montant_dette_in=caml_string_of_jsbytes("montant_dette_in"), + cst_d_pense_logement_in= + caml_string_of_jsbytes("d\xc3\xa9pense_logement_in"), + cst_montant_charges_in=caml_string_of_jsbytes("montant_charges_in"), + cst_montant_apl_in=caml_string_of_jsbytes("montant_apl_in"), + cst_aide_vers_e_in=caml_string_of_jsbytes("aide_vers\xc3\xa9e_in"), + cst_mode_occupation_in$2=caml_string_of_jsbytes("mode_occupation_in"), + cst_date_naissance_assur_in= + caml_string_of_jsbytes("date_naissance_assur\xc3\xa9_in"), + cst_r_sidence_in$9=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_type_aide_in$2=caml_string_of_jsbytes("type_aide_in"), + cst_date_courante_in$19=caml_string_of_jsbytes("date_courante_in"), + cst_zone_in$6=caml_string_of_jsbytes("zone_in"), + cst_nombre_personnes_charge_in$8= + caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), + cst_situation_familiale_in$1= + caml_string_of_jsbytes("situation_familiale_in"), + cst_ressources_m_nage_sans_arr$0= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_sans_arrondi_in"), + cst_mode_occupation_in$1=caml_string_of_jsbytes("mode_occupation_in"), + cst_cat_gorie_quivalence_loyer$0= + caml_string_of_jsbytes + ("cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16_in"), + cst_date_courante_in$18=caml_string_of_jsbytes("date_courante_in"), + cst_zone_in$5=caml_string_of_jsbytes("zone_in"), + cst_situation_familiale_calcul$6= + caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), + cst_nombre_personnes_charge_in$7= + caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), + cst_ressources_m_nage_arrondie$6= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), + cst_redevance_in$0=caml_string_of_jsbytes("redevance_in"), + cst_r_sidence_in$8=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_date_conventionnement_in$0= + caml_string_of_jsbytes("date_conventionnement_in"), + cst_type_logement_foyer_in$0= + caml_string_of_jsbytes("type_logement_foyer_in"), + cst_op_rations_logement_voluti$0= + caml_string_of_jsbytes + ("op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat_in"), + cst_copropri_t_in$0= + caml_string_of_jsbytes("copropri\xc3\xa9t\xc3\xa9_in"), + cst_charges_mensuelles_pr_t_in= + caml_string_of_jsbytes("charges_mensuelles_pr\xc3\xaat_in"), + cst_date_entr_e_logement_in$0= + caml_string_of_jsbytes("date_entr\xc3\xa9e_logement_in"), + cst_local_habit_premi_re_fois_$1= + caml_string_of_jsbytes + ("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire_in"), + cst_type_travaux_logement_in$0= + caml_string_of_jsbytes("type_travaux_logement_in"), + cst_date_signature_pr_t_in$0= + caml_string_of_jsbytes("date_signature_pr\xc3\xaat_in"), + cst_situation_r822_11_13_17_in$0= + caml_string_of_jsbytes("situation_r822_11_13_17_in"), + cst_mensualit_principale_in$0= + caml_string_of_jsbytes("mensualit\xc3\xa9_principale_in"), + cst_date_courante_in$17=caml_string_of_jsbytes("date_courante_in"), + cst_r_sidence_in$7=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_zone_in$4=caml_string_of_jsbytes("zone_in"), + cst_situation_familiale_calcul$5= + caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), + cst_nombre_personnes_charge_in$6= + caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), + cst_ressources_m_nage_arrondie$5= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_base_in"), + cst_changement_logement_d842_4$0= + caml_string_of_jsbytes("changement_logement_d842_4_in"), + cst_r_sidence_in$6=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_logement_meubl_d842_2_in$0= + caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2_in"), + cst_r_duction_loyer_solidarit_$1= + caml_string_of_jsbytes("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_in"), + cst_colocation_in$0=caml_string_of_jsbytes("colocation_in"), + cst_type_aide_in$1=caml_string_of_jsbytes("type_aide_in"), + cst_g_es_ou_handicap_adultes_h$1= + caml_string_of_jsbytes + ("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers_in"), + cst_logement_est_chambre_in$0= + caml_string_of_jsbytes("logement_est_chambre_in"), + cst_zone_in$3=caml_string_of_jsbytes("zone_in"), + cst_situation_familiale_calcul$4= + caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), + cst_nombre_personnes_charge_in$5= + caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), + cst_date_courante_in$16=caml_string_of_jsbytes("date_courante_in"), + cst_b_n_ficiaire_aide_adulte_o$2= + caml_string_of_jsbytes + ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s_in"), + cst_ressources_m_nage_arrondie$4= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), + cst_loyer_principal_in=caml_string_of_jsbytes("loyer_principal_in"), + cst_r_sidence_in$5=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_date_courante_in$15=caml_string_of_jsbytes("date_courante_in"), + cst_zone_in$2=caml_string_of_jsbytes("zone_in"), + cst_nombre_personnes_charge_in$4= + caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), + cst_situation_familiale_in$0= + caml_string_of_jsbytes("situation_familiale_in"), + cst_ressources_m_nage_sans_arr= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_sans_arrondi_in"), + cst_type_aide_in$0=caml_string_of_jsbytes("type_aide_in"), + cst_mode_occupation_in$0=caml_string_of_jsbytes("mode_occupation_in"), + cst_date_courante_in$14=caml_string_of_jsbytes("date_courante_in"), + cst_anciennet_logement_in= + caml_string_of_jsbytes("anciennet\xc3\xa9_logement_in"), + cst_type_pr_t_in=caml_string_of_jsbytes("type_pr\xc3\xaat_in"), + cst_zone_in$1=caml_string_of_jsbytes("zone_in"), + cst_situation_r822_11_13_17_in= + caml_string_of_jsbytes("situation_r822_11_13_17_in"), + cst_copropri_t_in=caml_string_of_jsbytes("copropri\xc3\xa9t\xc3\xa9_in"), + cst_date_entr_e_logement_in= + caml_string_of_jsbytes("date_entr\xc3\xa9e_logement_in"), + cst_local_habit_premi_re_fois_$0= + caml_string_of_jsbytes + ("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire_in"), + cst_date_signature_pr_t_in= + caml_string_of_jsbytes("date_signature_pr\xc3\xaat_in"), + cst_type_travaux_logement_in= + caml_string_of_jsbytes("type_travaux_logement_in"), + cst_situation_familiale_calcul$3= + caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), + cst_nombre_personnes_charge_in$3= + caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), + cst_ressources_m_nage_arrondie$3= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), + cst_mensualit_principale_in= + caml_string_of_jsbytes("mensualit\xc3\xa9_principale_in"), + cst_situation_familiale_calcul$2= + caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), + cst_nombre_personnes_charge_in$2= + caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), + cst_n_nombre_parts_d832_25_in$0= + caml_string_of_jsbytes("n_nombre_parts_d832_25_in"), + cst_limitation_majoration_pers$0= + caml_string_of_jsbytes + ("limitation_majoration_personnes_\xc3\xa0_charge_in"), + cst_condition_2_du_832_25_in$1= + caml_string_of_jsbytes("condition_2_du_832_25_in"), + cst_r_sidence_in$4=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_redevance_in=caml_string_of_jsbytes("redevance_in"), + cst_date_courante_in$13=caml_string_of_jsbytes("date_courante_in"), + cst_zone_in$0=caml_string_of_jsbytes("zone_in"), + cst_situation_familiale_calcul$1= + caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), + cst_nombre_personnes_charge_in$1= + caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), + cst_ressources_m_nage_arrondie$2= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), + cst_date_conventionnement_in= + caml_string_of_jsbytes("date_conventionnement_in"), + cst_type_logement_foyer_in= + caml_string_of_jsbytes("type_logement_foyer_in"), + cst_limitation_majoration_pers= + caml_string_of_jsbytes + ("limitation_majoration_personnes_\xc3\xa0_charge_in"), + cst_r_sidence_in$3=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_situation_familiale_calcul$0= + caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), + cst_nombre_personnes_charge_in$0= + caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), + cst_condition_2_du_832_25_in$0= + caml_string_of_jsbytes("condition_2_du_832_25_in"), + cst_n_nombre_parts_d832_25_in= + caml_string_of_jsbytes("n_nombre_parts_d832_25_in"), + cst_condition_2_du_832_25_in= + caml_string_of_jsbytes("condition_2_du_832_25_in"), + cst_ressources_m_nage_arrondie$1= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), + cst_date_courante_in$12=caml_string_of_jsbytes("date_courante_in"), + cst_r_sidence_in$2=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), + cst_logement_meubl_d842_2_in= + caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2_in"), + cst_r_duction_loyer_solidarit_$0= + caml_string_of_jsbytes("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_in"), + cst_colocation_in=caml_string_of_jsbytes("colocation_in"), + cst_type_aide_in=caml_string_of_jsbytes("type_aide_in"), + cst_g_es_ou_handicap_adultes_h$0= + caml_string_of_jsbytes + ("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers_in"), + cst_logement_est_chambre_in= + caml_string_of_jsbytes("logement_est_chambre_in"), + cst_zone_in=caml_string_of_jsbytes("zone_in"), + cst_situation_familiale_calcul= + caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), + cst_nombre_personnes_charge_in= + caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), + cst_date_courante_in$11=caml_string_of_jsbytes("date_courante_in"), + cst_b_n_ficiaire_aide_adulte_o$1= + caml_string_of_jsbytes + ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s_in"), + cst_ressources_m_nage_arrondie$0= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), + cst_loyer_principal_base_in= + caml_string_of_jsbytes("loyer_principal_base_in"), + cst_date_courante_in$10=caml_string_of_jsbytes("date_courante_in"), + cst_ressources_m_nage_arrondie= + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_base_in"), + cst_paiement_logement_distinct= + caml_string_of_jsbytes("paiement_logement_distinct_professionnel_in"), + cst_date_demande_ou_reexamen_d= + caml_string_of_jsbytes("date_demande_ou_reexamen_droit_in"), + cst_demandeur_poursuit_des_tud= + caml_string_of_jsbytes("demandeur_poursuit_des_\xc3\xa9tudes_in"), + cst_condition_ge_bourse_enseig= + caml_string_of_jsbytes + ("condition_\xc3\xa2ge_bourse_enseignement_sup\xc3\xa9rieur_in"), + cst_date_courante_in$9=caml_string_of_jsbytes("date_courante_in"), + cst_mode_occupation_in=caml_string_of_jsbytes("mode_occupation_in"), + cst_situation_familiale_in= + caml_string_of_jsbytes("situation_familiale_in"), + cst_personnes_charge_in= + caml_string_of_jsbytes("personnes_\xc3\xa0_charge_in"), + cst_conjoint_exerce_activit_r_= + caml_string_of_jsbytes + ("conjoint_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in"), + cst_demandeur_exerce_activit_r= + caml_string_of_jsbytes + ("demandeur_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in"), + cst_personnes_vivant_habituell= + caml_string_of_jsbytes("personnes_vivant_habituellement_foyer_in"), + cst_ressources_conjoint_in= + caml_string_of_jsbytes("ressources_conjoint_in"), + cst_ressources_demandeur_in= + caml_string_of_jsbytes("ressources_demandeur_in"), + cst_d_penses_justifi_es_r_elle= + caml_string_of_jsbytes + ("d\xc3\xa9penses_justifi\xc3\xa9es_r\xc3\xa9ellement_engag\xc3\xa9es_in"), + cst_date_courante_in$8=caml_string_of_jsbytes("date_courante_in"), + cst_demandeur_in$2=caml_string_of_jsbytes("demandeur_in"), + cst_m_nage_in$2=caml_string_of_jsbytes("m\xc3\xa9nage_in"), + cst_date_emm_nagement_in= + caml_string_of_jsbytes("date_emm\xc3\xa9nagement_in"), + cst_informations_in=caml_string_of_jsbytes("informations_in"), + cst_b_n_ficie_aide_personnalis= + caml_string_of_jsbytes + ("b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement_in"), + cst_demandeur_in$1=caml_string_of_jsbytes("demandeur_in"), + cst_m_nage_in$1=caml_string_of_jsbytes("m\xc3\xa9nage_in"), + cst_date_courante_in$7=caml_string_of_jsbytes("date_courante_in"), + cst_date_courante_in$6=caml_string_of_jsbytes("date_courante_in"), + cst_demandeur_in$0=caml_string_of_jsbytes("demandeur_in"), + cst_m_nage_in$0=caml_string_of_jsbytes("m\xc3\xa9nage_in"), + cst_date_entr_e_vigueur_diff_r= + caml_string_of_jsbytes + ("date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch_in"), + cst_condition_logement_surface= + caml_string_of_jsbytes("condition_logement_surface_in"), + cst_condition_logement_r_siden= + caml_string_of_jsbytes + ("condition_logement_r\xc3\xa9sidence_principale_in"), + cst_date_courante_in$5=caml_string_of_jsbytes("date_courante_in"), + cst_demandeur_in=caml_string_of_jsbytes("demandeur_in"), + cst_m_nage_in=caml_string_of_jsbytes("m\xc3\xa9nage_in"), + cst_r_sidence=caml_string_of_jsbytes("r\xc3\xa9sidence"), + cst_personnes_g_es_handicap_es= + caml_string_of_jsbytes + ("personnes_\xc3\xa2g\xc3\xa9es_handicap\xc3\xa9es_foyer_r844_4"), + cst_enfant_na_tre_apr_s_quatri= + caml_string_of_jsbytes + ("enfant_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_quatri\xc3\xa8me_mois_grossesse"), + cst_condition_rattach_foyer_fi= + caml_string_of_jsbytes + ("condition_rattach\xc3\xa9_foyer_fiscal_parent_ifi"), + cst_situation_familiale=caml_string_of_jsbytes("situation_familiale"), + cst_nombre_autres_occupants_lo= + caml_string_of_jsbytes("nombre_autres_occupants_logement"), + cst_personnes_charge=caml_string_of_jsbytes("personnes_\xc3\xa0_charge"), + cst_logement=caml_string_of_jsbytes("logement"), + cst_prestations_re_ues= + caml_string_of_jsbytes("prestations_re\xc3\xa7ues"), + cst_zone=caml_string_of_jsbytes("zone"), + cst_surface_m_carr_s=caml_string_of_jsbytes("surface_m_carr\xc3\xa9s"), + cst_logement_decent_l89_462= + caml_string_of_jsbytes("logement_decent_l89_462"), + cst_usufruit=caml_string_of_jsbytes("usufruit"), + cst_lou_ou_sous_lou_des_tiers= + caml_string_of_jsbytes + ("lou\xc3\xa9_ou_sous_lou\xc3\xa9_\xc3\xa0_des_tiers"), + cst_propri_taire=caml_string_of_jsbytes("propri\xc3\xa9taire"), + cst_mode_occupation=caml_string_of_jsbytes("mode_occupation"), + cst_est_ehpad_ou_maison_autono= + caml_string_of_jsbytes("est_ehpad_ou_maison_autonomie_l313_12_asf"), + cst_r_sidence_principale= + caml_string_of_jsbytes("r\xc3\xa9sidence_principale"), + cst_condition_2_r823_4=caml_string_of_jsbytes("condition_2_r823_4"), + cst_coefficents_enfants_garde_$2= + caml_string_of_jsbytes + ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), + cst_nombre_personnes_charge_pr$1= + caml_string_of_jsbytes + ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), + cst_ligibilit$3=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), + cst_date_courante$0=caml_string_of_jsbytes("date_courante"), + cst_Locataire=caml_string_of_jsbytes("Locataire"), + cst_R_sidentLogementFoyer= + caml_string_of_jsbytes("R\xc3\xa9sidentLogementFoyer"), + cst_AccessionPropri_t_LocalUsa= + caml_string_of_jsbytes + ("AccessionPropri\xc3\xa9t\xc3\xa9LocalUsageExclusifHabitation"), + cst_SousLocataire=caml_string_of_jsbytes("SousLocataire"), + cst_LocationAccession=caml_string_of_jsbytes("LocationAccession"), + cst_Location=caml_string_of_jsbytes("Location"), + cst_AccessionPropri_t= + caml_string_of_jsbytes("AccessionPropri\xc3\xa9t\xc3\xa9"), + cst_LogementFoyer=caml_string_of_jsbytes("LogementFoyer"), + cst_Enfant_Charge=caml_string_of_jsbytes("Enfant\xc3\x80Charge"), + cst_AutrePersonne_Charge= + caml_string_of_jsbytes("AutrePersonne\xc3\x80Charge"), + cst_changement_logement_d842_4= + caml_string_of_jsbytes("changement_logement_d842_4"), + cst_logement_meubl_d842_2$0= + caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2"), + cst_g_es_ou_handicap_adultes_h= + caml_string_of_jsbytes + ("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"), + cst_colocation=caml_string_of_jsbytes("colocation"), + cst_logement_est_chambre=caml_string_of_jsbytes("logement_est_chambre"), + cst_b_n_ficiaire_aide_adulte_o$0= + caml_string_of_jsbytes + ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"), + cst_loyer_principal=caml_string_of_jsbytes("loyer_principal"), + cst_bailleur=caml_string_of_jsbytes("bailleur"), + cst_tudes_apprentissage_stage_= + caml_string_of_jsbytes + ("\xc3\xa9tudes_apprentissage_stage_formation_pro_impossibilit\xc3\xa9_travail"), + cst_situation_garde_altern_e= + caml_string_of_jsbytes("situation_garde_altern\xc3\xa9e"), + cst_obligation_scolaire$1=caml_string_of_jsbytes("obligation_scolaire"), + cst_r_muneration_mensuelle$1= + caml_string_of_jsbytes("r\xc3\xa9muneration_mensuelle"), + cst_date_de_naissance$1=caml_string_of_jsbytes("date_de_naissance"), + cst_a_d_j_ouvert_droit_aux_all$1= + caml_string_of_jsbytes + ("a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), + cst_b_n_ficie_titre_personnel_$1= + caml_string_of_jsbytes + ("b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), + cst_nationalit$0=caml_string_of_jsbytes("nationalit\xc3\xa9"), + cst_identifiant$1=caml_string_of_jsbytes("identifiant"), + cst_magistrat_fonctionnaire_ce= + caml_string_of_jsbytes + ("magistrat_fonctionnaire_centre_int\xc3\xa9r\xc3\xaats_mat\xc3\xa9riels_familiaux_hors_mayotte"), + cst_est_non_salari_agricole_l7= + caml_string_of_jsbytes + ("est_non_salari\xc3\xa9_agricole_l781_8_l_781_46_code_rural"), + cst_personne_h_berg_e_centre_s= + caml_string_of_jsbytes + ("personne_h\xc3\xa9berg\xc3\xa9e_centre_soin_l_L162_22_3_s\xc3\xa9curit\xc3\xa9_sociale"), + cst_patrimoine=caml_string_of_jsbytes("patrimoine"), + cst_nationalit=caml_string_of_jsbytes("nationalit\xc3\xa9"), + cst_date_naissance$0=caml_string_of_jsbytes("date_naissance"), + cst_r_gime_outre_mer_l751_1$0= + caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"), + cst_conditions_hors_ge$0= + caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), + cst_droit_ouvert$0=caml_string_of_jsbytes("droit_ouvert"), + cst_ge_l512_3_2$0=caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"), + cst_op_rations_logement_voluti= + caml_string_of_jsbytes + ("op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat"), + cst_pr_t=caml_string_of_jsbytes("pr\xc3\xaat"), + cst_anciennet_logement= + caml_string_of_jsbytes("anciennet\xc3\xa9_logement"), + cst_situation_r822_11_13_17= + caml_string_of_jsbytes("situation_r822_11_13_17"), + cst_copropri_t=caml_string_of_jsbytes("copropri\xc3\xa9t\xc3\xa9"), + cst_local_habit_premi_re_fois_= + caml_string_of_jsbytes + ("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire"), + cst_type_travaux_logement_r842= + caml_string_of_jsbytes("type_travaux_logement_r842_5"), + cst_type_travaux_logement_d832= + caml_string_of_jsbytes("type_travaux_logement_d832_15"), + cst_date_entr_e_logement= + caml_string_of_jsbytes("date_entr\xc3\xa9e_logement"), + cst_charges_mensuelles_pr_t= + caml_string_of_jsbytes("charges_mensuelles_pr\xc3\xaat"), + cst_mensualit_principale= + caml_string_of_jsbytes("mensualit\xc3\xa9_principale"), + cst_date_naissance_troisi_me_e= + caml_string_of_jsbytes + ("date_naissance_troisi\xc3\xa8me_enfant_ou_dernier_si_plus"), + cst_nombre_enfants_na_tre_apr_= + caml_string_of_jsbytes + ("nombre_enfants_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_troisi\xc3\xa8me_mois_grossesse"), + cst_Changement=caml_string_of_jsbytes("Changement"), + cst_PasDeChangement=caml_string_of_jsbytes("PasDeChangement"), + cst_Fran_aise=caml_string_of_jsbytes("Fran\xc3\xa7aise"), + cst_trang_re=caml_string_of_jsbytes("\xc3\x89trang\xc3\xa8re"), + cst_Non$1=caml_string_of_jsbytes("Non"), + cst_Oui$0=caml_string_of_jsbytes("Oui"), + cst_BailleurSocial=caml_string_of_jsbytes("BailleurSocial"), + cst_BailleurPriv_AvecConventio= + caml_string_of_jsbytes("BailleurPriv\xc3\xa9AvecConventionnementSocial"), + cst_BailleurPriv=caml_string_of_jsbytes("BailleurPriv\xc3\xa9"), + cst_b_n_ficie_titre_personnel_$0= + caml_string_of_jsbytes + ("b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), + cst_a_d_j_ouvert_droit_aux_all$0= + caml_string_of_jsbytes + ("a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), + cst_prise_en_charge$0=caml_string_of_jsbytes("prise_en_charge"), + cst_date_de_naissance$0=caml_string_of_jsbytes("date_de_naissance"), + cst_r_muneration_mensuelle$0= + caml_string_of_jsbytes("r\xc3\xa9muneration_mensuelle"), + cst_obligation_scolaire$0=caml_string_of_jsbytes("obligation_scolaire"), + cst_identifiant$0=caml_string_of_jsbytes("identifiant"), + cst_logement_meubl_d842_2= + caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2"), + cst_b_n_ficiaire_aide_adulte_o= + caml_string_of_jsbytes + ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"), + cst_cat_gorie_quivalence_loyer= + caml_string_of_jsbytes + ("cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16"), + cst_redevance=caml_string_of_jsbytes("redevance"), + cst_construit_application_loi_= + caml_string_of_jsbytes("construit_application_loi_1957_12_III"), + cst_date_conventionnement=caml_string_of_jsbytes("date_conventionnement"), + cst_conventionn_selon_r_gles_d= + caml_string_of_jsbytes("conventionn\xc3\xa9_selon_r\xc3\xa8gles_drom"), + cst_conventionn_livre_III_titr$1= + caml_string_of_jsbytes("conventionn\xc3\xa9_livre_III_titre_V_chap_III"), + cst_remplit_conditions_r832_21= + caml_string_of_jsbytes("remplit_conditions_r832_21"), + cst_type=caml_string_of_jsbytes("type"), + cst_accord_financement_repr_se= + caml_string_of_jsbytes + ("accord_financement_repr\xc3\xa9sentant_\xc3\x89tat_outre_mer"), + cst_titulaire_pr_t=caml_string_of_jsbytes("titulaire_pr\xc3\xaat"), + cst_date_signature=caml_string_of_jsbytes("date_signature"), + cst_type_pr_t=caml_string_of_jsbytes("type_pr\xc3\xaat"), + cst_coefficents_enfants_garde_$1= + caml_string_of_jsbytes + ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), + cst_nombre_personnes_charge_pr$0= + caml_string_of_jsbytes + ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), + cst_ligibilit$2=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), + cst_MoinsDeTroisEnfants=caml_string_of_jsbytes("MoinsDeTroisEnfants"), + cst_PlusDeTroisEnfants=caml_string_of_jsbytes("PlusDeTroisEnfants"), + cst_titulaire_allocation_perso= + caml_string_of_jsbytes + ("titulaire_allocation_personne_\xc3\xa2g\xc3\xa9e"), + cst_b_n_ficiaire_l161_19_l351_= + caml_string_of_jsbytes + ("b\xc3\xa9n\xc3\xa9ficiaire_l161_19_l351_8_l643_3_s\xc3\xa9cu"), + cst_incapacit_80_pourcent_ou_r= + caml_string_of_jsbytes + ("incapacit\xc3\xa9_80_pourcent_ou_restriction_emploi"), + cst_parent=caml_string_of_jsbytes("parent\xc3\xa9"), + cst_ascendant_descendant_colla= + caml_string_of_jsbytes + ("ascendant_descendant_collat\xc3\xa9ral_deuxi\xc3\xa8me_troisi\xc3\xa8me_degr\xc3\xa9"), + cst_ressources$0=caml_string_of_jsbytes("ressources"), + cst_date_naissance=caml_string_of_jsbytes("date_naissance"), + cst_taux$0=caml_string_of_jsbytes("taux"), + cst_bas$0=caml_string_of_jsbytes("bas"), + cst_haut$0=caml_string_of_jsbytes("haut"), + cst_taux=caml_string_of_jsbytes("taux"), + cst_bas=caml_string_of_jsbytes("bas"), + cst_haut=caml_string_of_jsbytes("haut"), + cst_Neuf=caml_string_of_jsbytes("Neuf"), + cst_Ancien=caml_string_of_jsbytes("Ancien"), + cst_brut_horaire$0=caml_string_of_jsbytes("brut_horaire"), + cst_est_sup_rieur$0=caml_string_of_jsbytes("est_sup\xc3\xa9rieur"), + cst_est_inf_rieur_ou_gal$0= + caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"), + cst_montant$2=caml_string_of_jsbytes("montant"), + cst_aide_finale=caml_string_of_jsbytes("aide_finale"), + cst_ligibilit$1=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), + cst_coefficents_enfants_garde_$0= + caml_string_of_jsbytes + ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), + cst_traitement_aide_finale$8= + caml_string_of_jsbytes("traitement_aide_finale"), + cst_aide_finale_formule$8=caml_string_of_jsbytes("aide_finale_formule"), + cst_ligibilit$0=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), + cst_montant_impay=caml_string_of_jsbytes("montant_impay\xc3\xa9"), + cst_ge_ouverture_droit= + caml_string_of_jsbytes("\xc3\xa2ge_ouverture_droit"), + cst_traitement_aide_finale$7= + caml_string_of_jsbytes("traitement_aide_finale"), + cst_aide_finale_formule$7=caml_string_of_jsbytes("aide_finale_formule"), + cst_traitement_aide_finale$6= + caml_string_of_jsbytes("traitement_aide_finale"), + cst_aide_finale_formule$6=caml_string_of_jsbytes("aide_finale_formule"), + cst_loyer_minimal=caml_string_of_jsbytes("loyer_minimal"), + cst_montant_forfaitaire_charge$0= + caml_string_of_jsbytes("montant_forfaitaire_charges"), + cst_quivalence_loyer=caml_string_of_jsbytes("\xc3\xa9quivalence_loyer"), + cst_coefficient_prise_en_charg$2= + caml_string_of_jsbytes("coefficient_prise_en_charge"), + cst_traitement_aide_finale$5= + caml_string_of_jsbytes("traitement_aide_finale"), + cst_aide_finale_formule$5=caml_string_of_jsbytes("aide_finale_formule"), + cst_coefficient_prise_en_charg$1= + caml_string_of_jsbytes("coefficient_prise_en_charge"), + cst_mensualit_minimale$0= + caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"), + cst_mensualit_ligible$0= + caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"), + cst_traitement_aide_finale$4= + caml_string_of_jsbytes("traitement_aide_finale"), + cst_aide_finale_formule$4=caml_string_of_jsbytes("aide_finale_formule"), + cst_ancienne_allocation_logeme= + caml_string_of_jsbytes("ancienne_allocation_logement"), + cst_ancien_loyer_principal= + caml_string_of_jsbytes("ancien_loyer_principal"), + cst_traitement_aide_finale$3= + caml_string_of_jsbytes("traitement_aide_finale"), + cst_aide_finale_formule$3=caml_string_of_jsbytes("aide_finale_formule"), + cst_traitement_aide_finale$2= + caml_string_of_jsbytes("traitement_aide_finale"), + cst_aide_finale_formule$2=caml_string_of_jsbytes("aide_finale_formule"), + cst_traitement_aide_finale$1= + caml_string_of_jsbytes("traitement_aide_finale"), + cst_aide_finale_formule$1=caml_string_of_jsbytes("aide_finale_formule"), + cst_coefficient_prise_en_charg$0= + caml_string_of_jsbytes("coefficient_prise_en_charge_d832_10"), + cst_mensualit_minimale= + caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"), + cst_mensualit_ligible= + caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"), + cst_n_nombre_parts_d832_11= + caml_string_of_jsbytes("n_nombre_parts_d832_11"), + cst_traitement_aide_finale$0= + caml_string_of_jsbytes("traitement_aide_finale"), + cst_aide_finale_formule$0=caml_string_of_jsbytes("aide_finale_formule"), + cst_coefficient_prise_en_charg= + caml_string_of_jsbytes("coefficient_prise_en_charge_d832_25"), + cst_quivalence_loyer_minimale= + caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_minimale"), + cst_plafond_quivalence_loyer_l= + caml_string_of_jsbytes + ("plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), + cst_quivalence_loyer_ligible= + caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), + cst_n_nombre_parts_d832_25$0= + caml_string_of_jsbytes("n_nombre_parts_d832_25"), + cst_coefficient_r_d832_25=caml_string_of_jsbytes("coefficient_r_d832_25"), + cst_coefficient_multiplicateur= + caml_string_of_jsbytes("coefficient_multiplicateur_d832_25"), + cst_n_nombre_parts_d832_25= + caml_string_of_jsbytes("n_nombre_parts_d832_25"), + cst_montant$1=caml_string_of_jsbytes("montant"), + cst_traitement_aide_finale= + caml_string_of_jsbytes("traitement_aide_finale"), + cst_aide_finale_formule=caml_string_of_jsbytes("aide_finale_formule"), + cst_participation_personnelle= + caml_string_of_jsbytes("participation_personnelle"), + cst_taux_composition_familiale= + caml_string_of_jsbytes("taux_composition_familiale"), + cst_participation_minimale= + caml_string_of_jsbytes("participation_minimale"), + cst_plafond_loyer_d823_16_2= + caml_string_of_jsbytes("plafond_loyer_d823_16_2"), + cst_montant_forfaitaire_charge= + caml_string_of_jsbytes("montant_forfaitaire_charges_d823_16"), + cst_montant$0=caml_string_of_jsbytes("montant"), + cst_ressources_prises_en_compt= + caml_string_of_jsbytes("ressources_prises_en_compte"), + cst_montant_prime_d_m_nagement= + caml_string_of_jsbytes("montant_prime_d\xc3\xa9m\xc3\xa9nagement"), + cst_coefficents_enfants_garde_= + caml_string_of_jsbytes + ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), + cst_nombre_personnes_charge_pr= + caml_string_of_jsbytes + ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), + cst_ligibilit=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), + cst_date_courante=caml_string_of_jsbytes("date_courante"), + cst_ressources=caml_string_of_jsbytes("ressources"), + cst_dur_e_r_sidence_durant_p_r= + caml_string_of_jsbytes + ("dur\xc3\xa9e_r\xc3\xa9sidence_durant_p\xc3\xa9riode_r_822_3_1_sup\xc3\xa9rieure_\xc3\xa0_6_mois"), + cst_satisfait_art_4_ordonnance= + caml_string_of_jsbytes("satisfait_art_4_ordonnance_2002_mayotte"), + cst_satisfait_conditions_l512_= + caml_string_of_jsbytes + ("satisfait_conditions_l512_2_code_s\xc3\xa9curit\xc3\xa9_sociale"), + cst_ne_produisant_pas_revenu_p= + caml_string_of_jsbytes + ("ne_produisant_pas_revenu_p\xc3\xa9riode_r822_3_3_r822_4"), + cst_produisant_revenu_p_riode_= + caml_string_of_jsbytes + ("produisant_revenu_p\xc3\xa9riode_r822_3_3_r822_4"), + cst_conforme_article_l442_1= + caml_string_of_jsbytes("conforme_article_l442_1"), + cst_date_naissance_personne_so= + caml_string_of_jsbytes("date_naissance_personne_sous_location"), + cst_conventionn_livre_III_titr$0= + caml_string_of_jsbytes + ("conventionn\xc3\xa9_livre_III_titre_II_chap_I_sec_3"), + cst_r_duction_loyer_solidarit_= + caml_string_of_jsbytes + ("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_per\xc3\xa7ue"), + cst_conventionn_livre_III_titr= + caml_string_of_jsbytes("conventionn\xc3\xa9_livre_III_titre_V_chap_III"), + cst_PrestationAccueilJeuneEnfa$1= + caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), + cst_AllocationsFamiliales$2= + caml_string_of_jsbytes("AllocationsFamiliales"), + cst_Compl_mentFamilial$1= + caml_string_of_jsbytes("Compl\xc3\xa9mentFamilial"), + cst_AllocationLogement$1=caml_string_of_jsbytes("AllocationLogement"), + cst_Allocation_ducationEnfantH$0= + caml_string_of_jsbytes + ("Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9"), + cst_AllocationSoutienFamilial$2= + caml_string_of_jsbytes("AllocationSoutienFamilial"), + cst_AllocationRentr_eScolaire$0= + caml_string_of_jsbytes("AllocationRentr\xc3\xa9eScolaire"), + cst_AllocationJournali_rePrese$0= + caml_string_of_jsbytes("AllocationJournali\xc3\xa8rePresenceParentale"), + cst_Avant$1=caml_string_of_jsbytes("Avant"), + cst_Pendant$1=caml_string_of_jsbytes("Pendant"), + cst_Apr_s$0=caml_string_of_jsbytes("Apr\xc3\xa8s"), + cst_GardeAltern_ePartageAlloca$0= + caml_string_of_jsbytes("GardeAltern\xc3\xa9ePartageAllocations"), + cst_GardeAltern_eAllocataireUn$0= + caml_string_of_jsbytes("GardeAltern\xc3\xa9eAllocataireUnique"), + cst_EffectiveEtPermanente$2= + caml_string_of_jsbytes("EffectiveEtPermanente"), + cst_ServicesSociauxAllocationV$3= + caml_string_of_jsbytes + ("ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille"), + cst_ServicesSociauxAllocationV$4= + caml_string_of_jsbytes + ("ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux"), + cst_Guadeloupe$1=caml_string_of_jsbytes("Guadeloupe"), + cst_Guyane$1=caml_string_of_jsbytes("Guyane"), + cst_Martinique$1=caml_string_of_jsbytes("Martinique"), + cst_LaR_union$0=caml_string_of_jsbytes("LaR\xc3\xa9union"), + cst_SaintBarth_lemy$0=caml_string_of_jsbytes("SaintBarth\xc3\xa9lemy"), + cst_SaintMartin$1=caml_string_of_jsbytes("SaintMartin"), + cst_M_tropole$0=caml_string_of_jsbytes("M\xc3\xa9tropole"), + cst_SaintPierreEtMiquelon$1= + caml_string_of_jsbytes("SaintPierreEtMiquelon"), + cst_Mayotte$1=caml_string_of_jsbytes("Mayotte"), + cst_PersonneSeule=caml_string_of_jsbytes("PersonneSeule"), + cst_Couple=caml_string_of_jsbytes("Couple"), + cst_tudiantLog_EnChambreCROUS= + caml_string_of_jsbytes("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUS"), + cst_tudiantLog_EnChambreCROUSR= + caml_string_of_jsbytes + ("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUSR\xc3\xa9habilit\xc3\xa9e"), + cst_Personnes_g_esSelon3DeD842= + caml_string_of_jsbytes("Personnes\xc3\x82g\xc3\xa9esSelon3DeD842_16"), + cst_AutresPersonnes=caml_string_of_jsbytes("AutresPersonnes"), + cst_LogementPersonnes_g_esOuHa= + caml_string_of_jsbytes + ("LogementPersonnes\xc3\x82g\xc3\xa9esOuHandicap\xc3\xa9es"), + cst_R_sidenceSociale=caml_string_of_jsbytes("R\xc3\xa9sidenceSociale"), + cst_FoyerJeunesTrvailleursOuMi= + caml_string_of_jsbytes + ("FoyerJeunesTrvailleursOuMigrantsConventionn\xc3\xa9L353_2Avant1995"), + cst_Autre$1=caml_string_of_jsbytes("Autre"), + cst_EffectiveEtPermanente$1= + caml_string_of_jsbytes("EffectiveEtPermanente"), + cst_R_sidenceAltern_eAllocatai= + caml_string_of_jsbytes + ("R\xc3\xa9sidenceAltern\xc3\xa9eAllocataireUnique"), + cst_R_sidenceAltern_eAllocatio= + caml_string_of_jsbytes + ("R\xc3\xa9sidenceAltern\xc3\xa9eAllocationsPartag\xc3\xa9e"), + cst_C_libataire=caml_string_of_jsbytes("C\xc3\xa9libataire"), + cst_Mari_s=caml_string_of_jsbytes("Mari\xc3\xa9s"), + cst_Pacs_s=caml_string_of_jsbytes("Pacs\xc3\xa9s"), + cst_Concubins=caml_string_of_jsbytes("Concubins"), + cst_C_libataireS_par_DeFait= + caml_string_of_jsbytes("C\xc3\xa9libataireS\xc3\xa9par\xc3\xa9DeFait"), + cst_ConcubinageDontS_par_DeFai= + caml_string_of_jsbytes("ConcubinageDontS\xc3\xa9par\xc3\xa9DeFait"), + cst_AidePersonnalis_eLogement= + caml_string_of_jsbytes("AidePersonnalis\xc3\xa9eLogement"), + cst_AllocationLogementFamilial$0= + caml_string_of_jsbytes("AllocationLogementFamiliale"), + cst_AllocationLogementSociale$0= + caml_string_of_jsbytes("AllocationLogementSociale"), + cst_Accord=caml_string_of_jsbytes("Accord"), + cst_PasdAccord=caml_string_of_jsbytes("PasdAccord"), + cst_Pas_ligible=caml_string_of_jsbytes("Pas\xc3\x89ligible"), + cst_AllocationLogementFamilial= + caml_string_of_jsbytes("AllocationLogementFamiliale"), + cst_AllocationLogementSociale= + caml_string_of_jsbytes("AllocationLogementSociale"), + cst_Impay_Loyer=caml_string_of_jsbytes("Impay\xc3\xa9Loyer"), + cst_Impay_Pr_t=caml_string_of_jsbytes("Impay\xc3\xa9Pr\xc3\xaat"), + cst_TotalAnnuel_ch_ances= + caml_string_of_jsbytes("TotalAnnuel\xc3\x89ch\xc3\xa9ances"), + cst_Mensualit=caml_string_of_jsbytes("Mensualit\xc3\xa9"), + cst_Loyer=caml_string_of_jsbytes("Loyer"), + cst_Bailleur=caml_string_of_jsbytes("Bailleur"), + cst_B_n_ficiaire=caml_string_of_jsbytes("B\xc3\xa9n\xc3\xa9ficiaire"), + cst_tablissementHabilit= + caml_string_of_jsbytes("\xc3\x89tablissementHabilit\xc3\xa9"), + cst_OuiAvecLoyerOuCharges=caml_string_of_jsbytes("OuiAvecLoyerOuCharges"), + cst_Non$0=caml_string_of_jsbytes("Non"), + cst_Zone1=caml_string_of_jsbytes("Zone1"), + cst_Zone2=caml_string_of_jsbytes("Zone2"), + cst_Zone3=caml_string_of_jsbytes("Zone3"), + cst_DateDeNaissance=caml_string_of_jsbytes("DateDeNaissance"), + cst_AvantPremierJourMoisCivilT= + caml_string_of_jsbytes + ("AvantPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse"), + cst_Apr_sPremierJourMoisCivilT= + caml_string_of_jsbytes + ("Apr\xc3\xa8sPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse"), + cst_Ascendant=caml_string_of_jsbytes("Ascendant"), + cst_Descendant=caml_string_of_jsbytes("Descendant"), + cst_Collat_ralDeuxi_meTroisi_m= + caml_string_of_jsbytes + ("Collat\xc3\xa9ralDeuxi\xc3\xa8meTroisi\xc3\xa8meDegr\xc3\xa9"), + cst_PasDeGardeAltern_e= + caml_string_of_jsbytes("PasDeGardeAltern\xc3\xa9e"), + cst_GardeAltern_eCoefficientPr= + caml_string_of_jsbytes("GardeAltern\xc3\xa9eCoefficientPriseEnCharge"), + cst_DemandeurOuConjointOuParen= + caml_string_of_jsbytes + ("DemandeurOuConjointOuParentOuViaPartsSoci\xc3\xa9t\xc3\xa9s"), + cst_Autre$0=caml_string_of_jsbytes("Autre"), + cst_AllocationsFamiliales$1= + caml_string_of_jsbytes("AllocationsFamiliales"), + cst_Compl_mentFamilial$0= + caml_string_of_jsbytes("Compl\xc3\xa9mentFamilial"), + cst_AllocationJeuneEnfant=caml_string_of_jsbytes("AllocationJeuneEnfant"), + cst_AllocationSoutienFamilial$1= + caml_string_of_jsbytes("AllocationSoutienFamilial"), + cst_AllocationSoutienEnfantHan= + caml_string_of_jsbytes("AllocationSoutienEnfantHandicap\xc3\xa9"), + cst_AllocationAdulteHandicap= + caml_string_of_jsbytes("AllocationAdulteHandicap\xc3\xa9"), + cst_Revenu$0=caml_string_of_jsbytes("Revenu"), + cst_Infini$0=caml_string_of_jsbytes("Infini"), + cst_Revenu=caml_string_of_jsbytes("Revenu"), + cst_Infini=caml_string_of_jsbytes("Infini"), + cst_Oui=caml_string_of_jsbytes("Oui"), + cst_Non=caml_string_of_jsbytes("Non"), + cst_ObjectifD_cenceLogement= + caml_string_of_jsbytes("ObjectifD\xc3\xa9cenceLogement"), + cst_Pr_vuDansListeR321_15= + caml_string_of_jsbytes("Pr\xc3\xa9vuDansListeR321_15"), + cst_AgrandirOuRendreHabitableD= + caml_string_of_jsbytes("AgrandirOuRendreHabitableD331_63"), + cst_PasDeTravaux$0=caml_string_of_jsbytes("PasDeTravaux"), + cst_TravauxPourAcquisitionD832= + caml_string_of_jsbytes("TravauxPourAcquisitionD832_15_1"), + cst_TravauxSurLogementD_j_Acqu= + caml_string_of_jsbytes + ("TravauxSurLogementD\xc3\xa9j\xc3\xa0AcquisD832_15_2"), + cst_PasDeTravaux=caml_string_of_jsbytes("PasDeTravaux"), + cst_Demandeur=caml_string_of_jsbytes("Demandeur"), + cst_VendeurQuandDemandeurACont= + caml_string_of_jsbytes("VendeurQuandDemandeurAContratLocationAccession"), + cst_D331_32=caml_string_of_jsbytes("D331_32"), + cst_D331_63_64=caml_string_of_jsbytes("D331_63_64"), + cst_D331_59_8=caml_string_of_jsbytes("D331_59_8"), + cst_D331_76_1=caml_string_of_jsbytes("D331_76_1"), + cst_Autre=caml_string_of_jsbytes("Autre"), + cst_The_function_age_l512_3_2_= + caml_string_of_jsbytes + ("The function 'age_l512_3_2_in' translation isn't yet supported..."), + cst_The_function_n_nombre_part= + caml_string_of_jsbytes + ("The function 'n_nombre_parts_d832_25_in' translation isn't yet supported..."), + cst_The_function_limitation_ma$0= + caml_string_of_jsbytes + ("The function 'limitation_majoration_personnes_a_charge_in' translation isn't yet supported..."), + cst_The_function_condition_2_d= + caml_string_of_jsbytes + ("The function 'condition_2_du_832_25_in' translation isn't yet supported..."), + cst_The_function_limitation_ma= + caml_string_of_jsbytes + ("The function 'limitation_majoration_personnes_a_charge_in' translation isn't yet supported..."), + cst_The_function_date_entree_v= + caml_string_of_jsbytes + ("The function 'date_entree_vigueur_differee_cch_in' translation isn't yet supported..."), + cst_The_function_condition_log= + caml_string_of_jsbytes + ("The function 'condition_logement_surface_in' translation isn't yet supported..."), + cst_The_function_condition_log$0= + caml_string_of_jsbytes + ("The function 'condition_logement_residence_principale_in' translation isn't yet supported..."), + cst_The_function_condition_2_r= + caml_string_of_jsbytes + ("The function 'condition_2_r823_4' translation isn't yet supported..."), + cst_AccessionProprieteLocalUsa= + caml_string_of_jsbytes("AccessionProprieteLocalUsageExclusifHabitation"), + cst_Locataire$0=caml_string_of_jsbytes("Locataire"), + cst_LocationAccession$0=caml_string_of_jsbytes("LocationAccession"), + cst_ResidentLogementFoyer=caml_string_of_jsbytes("ResidentLogementFoyer"), + cst_SousLocataire$0=caml_string_of_jsbytes("SousLocataire"), + cst_AccessionPropriete=caml_string_of_jsbytes("AccessionPropriete"), + cst_Location$0=caml_string_of_jsbytes("Location"), + cst_LogementFoyer$0=caml_string_of_jsbytes("LogementFoyer"), + cst_AutrePersonneACharge=caml_string_of_jsbytes("AutrePersonneACharge"), + cst_EnfantACharge=caml_string_of_jsbytes("EnfantACharge"), + cst_The_function_conditions_ho$0= + caml_string_of_jsbytes + ("The function 'conditions_hors_age' translation isn't yet supported..."), + cst_The_function_droit_ouvert_$0= + caml_string_of_jsbytes + ("The function 'droit_ouvert' translation isn't yet supported..."), + cst_Changement$0=caml_string_of_jsbytes("Changement"), + cst_PasDeChangement$0=caml_string_of_jsbytes("PasDeChangement"), + cst_Etrangere=caml_string_of_jsbytes("Etrangere"), + cst_Francaise=caml_string_of_jsbytes("Francaise"), + cst_Non$4=caml_string_of_jsbytes("Non"), + cst_Oui$2=caml_string_of_jsbytes("Oui"), + cst_BailleurPrive=caml_string_of_jsbytes("BailleurPrive"), + cst_BailleurPriveAvecConventio= + caml_string_of_jsbytes("BailleurPriveAvecConventionnementSocial"), + cst_BailleurSocial$0=caml_string_of_jsbytes("BailleurSocial"), + cst_MoinsDeTroisEnfants$0=caml_string_of_jsbytes("MoinsDeTroisEnfants"), + cst_PlusDeTroisEnfants$0=caml_string_of_jsbytes("PlusDeTroisEnfants"), + cst_Ancien$0=caml_string_of_jsbytes("Ancien"), + cst_Neuf$0=caml_string_of_jsbytes("Neuf"), + cst_The_function_traitement_ai$8= + caml_string_of_jsbytes + ("The function 'traitement_aide_finale' translation isn't yet supported..."), + cst_The_function_traitement_ai$7= + caml_string_of_jsbytes + ("The function 'traitement_aide_finale' translation isn't yet supported..."), + cst_The_function_traitement_ai$6= + caml_string_of_jsbytes + ("The function 'traitement_aide_finale' translation isn't yet supported..."), + cst_The_function_traitement_ai$5= + caml_string_of_jsbytes + ("The function 'traitement_aide_finale' translation isn't yet supported..."), + cst_The_function_traitement_ai$4= + caml_string_of_jsbytes + ("The function 'traitement_aide_finale' translation isn't yet supported..."), + cst_The_function_traitement_ai$3= + caml_string_of_jsbytes + ("The function 'traitement_aide_finale' translation isn't yet supported..."), + cst_The_function_traitement_ai$2= + caml_string_of_jsbytes + ("The function 'traitement_aide_finale' translation isn't yet supported..."), + cst_The_function_traitement_ai$1= + caml_string_of_jsbytes + ("The function 'traitement_aide_finale' translation isn't yet supported..."), + cst_The_function_traitement_ai$0= + caml_string_of_jsbytes + ("The function 'traitement_aide_finale' translation isn't yet supported..."), + cst_The_function_traitement_ai= + caml_string_of_jsbytes + ("The function 'traitement_aide_finale' translation isn't yet supported..."), + cst_The_function_montant_trans= + caml_string_of_jsbytes + ("The function 'montant' translation isn't yet supported..."), + cst_AllocationEducationEnfantH$0= + caml_string_of_jsbytes("AllocationEducationEnfantHandicape"), + cst_AllocationJournalierePrese$0= + caml_string_of_jsbytes("AllocationJournalierePresenceParentale"), + cst_AllocationLogement$2=caml_string_of_jsbytes("AllocationLogement"), + cst_AllocationRentreeScolaire$0= + caml_string_of_jsbytes("AllocationRentreeScolaire"), + cst_AllocationSoutienFamilial$4= + caml_string_of_jsbytes("AllocationSoutienFamilial"), + cst_AllocationsFamiliales$4= + caml_string_of_jsbytes("AllocationsFamiliales"), + cst_ComplementFamilial$1=caml_string_of_jsbytes("ComplementFamilial"), + cst_PrestationAccueilJeuneEnfa$2= + caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), + cst_Apres$0=caml_string_of_jsbytes("Apres"), + cst_Avant$2=caml_string_of_jsbytes("Avant"), + cst_Pendant$2=caml_string_of_jsbytes("Pendant"), + cst_EffectiveEtPermanente$4= + caml_string_of_jsbytes("EffectiveEtPermanente"), + cst_GardeAlterneeAllocataireUn$0= + caml_string_of_jsbytes("GardeAlterneeAllocataireUnique"), + cst_GardeAlterneePartageAlloca$0= + caml_string_of_jsbytes("GardeAlterneePartageAllocations"), + cst_ServicesSociauxAllocationV$5= + caml_string_of_jsbytes("ServicesSociauxAllocationVerseeALaFamille"), + cst_ServicesSociauxAllocationV$6= + caml_string_of_jsbytes + ("ServicesSociauxAllocationVerseeAuxServicesSociaux"), + cst_Guadeloupe$2=caml_string_of_jsbytes("Guadeloupe"), + cst_Guyane$2=caml_string_of_jsbytes("Guyane"), + cst_LaReunion$0=caml_string_of_jsbytes("LaReunion"), + cst_Martinique$2=caml_string_of_jsbytes("Martinique"), + cst_Mayotte$2=caml_string_of_jsbytes("Mayotte"), + cst_Metropole$0=caml_string_of_jsbytes("Metropole"), + cst_SaintBarthelemy$0=caml_string_of_jsbytes("SaintBarthelemy"), + cst_SaintMartin$2=caml_string_of_jsbytes("SaintMartin"), + cst_SaintPierreEtMiquelon$2= + caml_string_of_jsbytes("SaintPierreEtMiquelon"), + cst_Couple$0=caml_string_of_jsbytes("Couple"), + cst_PersonneSeule$0=caml_string_of_jsbytes("PersonneSeule"), + cst_AutresPersonnes$0=caml_string_of_jsbytes("AutresPersonnes"), + cst_EtudiantLogeEnChambreCROUS= + caml_string_of_jsbytes("EtudiantLogeEnChambreCROUS"), + cst_EtudiantLogeEnChambreCROUS$0= + caml_string_of_jsbytes("EtudiantLogeEnChambreCROUSRehabilitee"), + cst_PersonnesAgeesSelon3DeD842= + caml_string_of_jsbytes("PersonnesAgeesSelon3DeD842_16"), + cst_Autre$4=caml_string_of_jsbytes("Autre"), + cst_FoyerJeunesTrvailleursOuMi$0= + caml_string_of_jsbytes + ("FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995"), + cst_LogementPersonnesAgeesOuHa= + caml_string_of_jsbytes("LogementPersonnesAgeesOuHandicapees"), + cst_ResidenceSociale=caml_string_of_jsbytes("ResidenceSociale"), + cst_EffectiveEtPermanente$3= + caml_string_of_jsbytes("EffectiveEtPermanente"), + cst_ResidenceAlterneeAllocatai= + caml_string_of_jsbytes("ResidenceAlterneeAllocataireUnique"), + cst_ResidenceAlterneeAllocatio= + caml_string_of_jsbytes("ResidenceAlterneeAllocationsPartagee"), + cst_Celibataire=caml_string_of_jsbytes("Celibataire"), + cst_CelibataireSepareDeFait= + caml_string_of_jsbytes("CelibataireSepareDeFait"), + cst_ConcubinageDontSepareDeFai= + caml_string_of_jsbytes("ConcubinageDontSepareDeFait"), + cst_Concubins$0=caml_string_of_jsbytes("Concubins"), + cst_Maries=caml_string_of_jsbytes("Maries"), + cst_Pacses=caml_string_of_jsbytes("Pacses"), + cst_AidePersonnaliseeLogement= + caml_string_of_jsbytes("AidePersonnaliseeLogement"), + cst_AllocationLogementFamilial$2= + caml_string_of_jsbytes("AllocationLogementFamiliale"), + cst_AllocationLogementSociale$2= + caml_string_of_jsbytes("AllocationLogementSociale"), + cst_Accord$0=caml_string_of_jsbytes("Accord"), + cst_PasdAccord$0=caml_string_of_jsbytes("PasdAccord"), + cst_AllocationLogementFamilial$1= + caml_string_of_jsbytes("AllocationLogementFamiliale"), + cst_AllocationLogementSociale$1= + caml_string_of_jsbytes("AllocationLogementSociale"), + cst_PasEligible=caml_string_of_jsbytes("PasEligible"), + cst_ImpayeLoyer=caml_string_of_jsbytes("ImpayeLoyer"), + cst_ImpayePret=caml_string_of_jsbytes("ImpayePret"), + cst_Loyer$0=caml_string_of_jsbytes("Loyer"), + cst_Mensualite=caml_string_of_jsbytes("Mensualite"), + cst_TotalAnnuelEcheances=caml_string_of_jsbytes("TotalAnnuelEcheances"), + cst_Bailleur$0=caml_string_of_jsbytes("Bailleur"), + cst_Beneficiaire=caml_string_of_jsbytes("Beneficiaire"), + cst_EtablissementHabilite=caml_string_of_jsbytes("EtablissementHabilite"), + cst_Non$3=caml_string_of_jsbytes("Non"), + cst_OuiAvecLoyerOuCharges$0= + caml_string_of_jsbytes("OuiAvecLoyerOuCharges"), + cst_Zone1$0=caml_string_of_jsbytes("Zone1"), + cst_Zone2$0=caml_string_of_jsbytes("Zone2"), + cst_Zone3$0=caml_string_of_jsbytes("Zone3"), + cst_ApresPremierJourMoisCivilT= + caml_string_of_jsbytes + ("ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse"), + cst_AvantPremierJourMoisCivilT$0= + caml_string_of_jsbytes + ("AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse"), + cst_DateDeNaissance$0=caml_string_of_jsbytes("DateDeNaissance"), + cst_Ascendant$0=caml_string_of_jsbytes("Ascendant"), + cst_CollateralDeuxiemeTroisiem= + caml_string_of_jsbytes("CollateralDeuxiemeTroisiemeDegre"), + cst_Descendant$0=caml_string_of_jsbytes("Descendant"), + cst_GardeAlterneeCoefficientPr= + caml_string_of_jsbytes("GardeAlterneeCoefficientPriseEnCharge"), + cst_PasDeGardeAlternee=caml_string_of_jsbytes("PasDeGardeAlternee"), + cst_Autre$3=caml_string_of_jsbytes("Autre"), + cst_DemandeurOuConjointOuParen$0= + caml_string_of_jsbytes("DemandeurOuConjointOuParentOuViaPartsSocietes"), + cst_AllocationAdulteHandicape= + caml_string_of_jsbytes("AllocationAdulteHandicape"), + cst_AllocationJeuneEnfant$0= + caml_string_of_jsbytes("AllocationJeuneEnfant"), + cst_AllocationSoutienEnfantHan$0= + caml_string_of_jsbytes("AllocationSoutienEnfantHandicape"), + cst_AllocationSoutienFamilial$3= + caml_string_of_jsbytes("AllocationSoutienFamilial"), + cst_AllocationsFamiliales$3= + caml_string_of_jsbytes("AllocationsFamiliales"), + cst_ComplementFamilial$0=caml_string_of_jsbytes("ComplementFamilial"), + cst_Infini$2=caml_string_of_jsbytes("Infini"), + cst_Revenu$2=caml_string_of_jsbytes("Revenu"), + cst_Infini$1=caml_string_of_jsbytes("Infini"), + cst_Revenu$1=caml_string_of_jsbytes("Revenu"), + cst_Non$2=caml_string_of_jsbytes("Non"), + cst_Oui$1=caml_string_of_jsbytes("Oui"), + cst_AgrandirOuRendreHabitableD$0= + caml_string_of_jsbytes("AgrandirOuRendreHabitableD331_63"), + cst_ObjectifDecenceLogement= + caml_string_of_jsbytes("ObjectifDecenceLogement"), + cst_PasDeTravaux$2=caml_string_of_jsbytes("PasDeTravaux"), + cst_PrevuDansListeR321_15=caml_string_of_jsbytes("PrevuDansListeR321_15"), + cst_PasDeTravaux$1=caml_string_of_jsbytes("PasDeTravaux"), + cst_TravauxPourAcquisitionD832$0= + caml_string_of_jsbytes("TravauxPourAcquisitionD832_15_1"), + cst_TravauxSurLogementDejaAcqu= + caml_string_of_jsbytes("TravauxSurLogementDejaAcquisD832_15_2"), + cst_Demandeur$0=caml_string_of_jsbytes("Demandeur"), + cst_VendeurQuandDemandeurACont$0= + caml_string_of_jsbytes("VendeurQuandDemandeurAContratLocationAccession"), + cst_Autre$2=caml_string_of_jsbytes("Autre"), + cst_D331_32$0=caml_string_of_jsbytes("D331_32"), + cst_D331_59_8$0=caml_string_of_jsbytes("D331_59_8"), + cst_D331_63_64$0=caml_string_of_jsbytes("D331_63_64"), + cst_D331_76_1$0=caml_string_of_jsbytes("D331_76_1"), + cst_AidesLogementLib=caml_string_of_jsbytes("AidesLogementLib"), + Runtime_ocaml_Runtime=global_data.Runtime_ocaml__Runtime; + global_data.CamlinternalOO; + var + Stdlib_Array=global_data.Stdlib__Array, + Runtime_jsoo_Runtime=global_data.Runtime_jsoo__Runtime, + Stdlib=global_data.Stdlib, + Stdlib_Printf=global_data.Stdlib__Printf, + Js_of_ocaml_Js=global_data.Js_of_ocaml__Js, + Law_source=[0]; + caml_register_global(9726,Law_source,"Law_source"); + var + PriseEnCharge=[0], + _kl_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 90, 14, 90, 29, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _ke_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _ke_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 101, 18, 101, 64, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _kf_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _kf_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 100, 5, 100, 72, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _kd_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _kd_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 100, 5, 100, 72, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _j$_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _j$_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 87, 14, 87, 53, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _j7_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _j7_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 86, 14, 86, 50, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _j3_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _j3_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 89, 14, 89, 46, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jZ_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jZ_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 88, 14, 88, 54, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jU_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jU_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 97, 18, 97, 72, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jV_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jV_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 96, 5, 96, 80, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jT_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jT_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 96, 5, 96, 80, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jO_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jO_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 93, 18, 93, 67, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jP_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jP_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 92, 5, 92, 75, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jN_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jN_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 92, 5, 92, 75, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jJ_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jJ_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 117, 14, 117, 30, [0, - "Article L131-1", - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]]], - _jG_ = [0, 0], - _jH_ = [1, 0], - _jI_ = [2, 0], - _jK_ = + caml_string_of_jsbytes("Article L131-1"), + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]]], + _jG_=[0,0], + _jH_=[1,0], + _jI_=[2,0], + _jK_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 76, 11, 76, 27, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jF_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jF_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 76, 11, 76, 27, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jL_ = - [0, cst_InterfaceAllocationsFamili, [0, "enfants_\xc3\xa0_charge", 0]], - _jQ_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jL_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0,caml_string_of_jsbytes("enfants_\xc3\xa0_charge"),0]], + _jQ_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 92, 5, 92, 75, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jR_ = - [0, - cst_InterfaceAllocationsFamili, [0, - "allocations_familiales.personne_charge_effective_permanente_est_parent", - 0]], - _jM_ = + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jR_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("allocations_familiales.personne_charge_effective_permanente_est_parent"), + 0]], + _jM_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 92, 5, 92, 75, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jW_ = - [0, - cst_examples_allocations_famil, - 96, - 5, - 96, - 80, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _jX_ = - [0, - cst_InterfaceAllocationsFamili, [0, - "allocations_familiales.personne_charge_effective_permanente_remplit_titre_I", - 0]], - _jS_ = + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jW_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 96, 5, 96, 80, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _j0_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jX_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("allocations_familiales.personne_charge_effective_permanente_remplit_titre_I"), + 0]], + _jS_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), + 96, + 5, + 96, + 80, + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _j0_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 88, 14, 88, 54, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _j1_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _j1_= [0, - cst_InterfaceAllocationsFamili, - [0, "allocations_familiales.ressources_m\xc3\xa9nage", 0]], - _jY_ = + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("allocations_familiales.ressources_m\xc3\xa9nage"), + 0]], + _jY_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 88, 14, 88, 54, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _j4_ = - [0, - cst_examples_allocations_famil, - 89, - 14, - 89, - 46, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _j5_ = - [0, - cst_InterfaceAllocationsFamili, - [0, "allocations_familiales.r\xc3\xa9sidence", 0]], - _j2_ = - [0, - cst_examples_allocations_famil, - 89, - 14, - 89, - 46, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _j8_ = - [0, - cst_examples_allocations_famil, - 86, - 14, - 86, - 50, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _j9_ = - [0, - cst_InterfaceAllocationsFamili, - [0, "allocations_familiales.date_courante", 0]], - _j6_ = - [0, - cst_examples_allocations_famil, - 86, - 14, - 86, - 50, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _ka_ = - [0, - cst_examples_allocations_famil, - 87, - 14, - 87, - 53, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _kb_ = - [0, - cst_InterfaceAllocationsFamili, - [0, "allocations_familiales.enfants_\xc3\xa0_charge", 0]], - _j__ = - [0, - cst_examples_allocations_famil, - 87, - 14, - 87, - 53, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _kg_ = - [0, - cst_examples_allocations_famil, - 100, - 5, - 100, - 72, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _kh_ = - [0, - cst_InterfaceAllocationsFamili, [0, - "allocations_familiales.avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012", - 0]], - _kc_ = + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _j4_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), + 89, + 14, + 89, + 46, + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _j5_= + [0, + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0,caml_string_of_jsbytes("allocations_familiales.r\xc3\xa9sidence"),0]], + _j2_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), + 89, + 14, + 89, + 46, + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _j8_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), + 86, + 14, + 86, + 50, + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _j9_= + [0, + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0,caml_string_of_jsbytes("allocations_familiales.date_courante"),0]], + _j6_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), + 86, + 14, + 86, + 50, + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _ka_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), + 87, + 14, + 87, + 53, + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _kb_= + [0, + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("allocations_familiales.enfants_\xc3\xa0_charge"), + 0]], + _j__= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), + 87, + 14, + 87, + 53, + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _kg_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 100, 5, 100, 72, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _ki_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _kh_= [0, - cst_InterfaceAllocationsFamili, - [0, cst_allocations_familiales, [0, cst_AllocationsFamiliales$0, 0]]], - _kj_ = + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("allocations_familiales.avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012"), + 0]], + _kc_= [0, - cst_InterfaceAllocationsFamili, - [0, cst_allocations_familiales, [0, cst_AllocationsFamiliales$0, 0]]], - _km_ = + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), + 100, + 5, + 100, + 72, + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _ki_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0, + caml_string_of_jsbytes("allocations_familiales"), + [0,caml_string_of_jsbytes("AllocationsFamiliales"),0]]], + _kj_= + [0, + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0, + caml_string_of_jsbytes("allocations_familiales"), + [0,caml_string_of_jsbytes("AllocationsFamiliales"),0]]], + _km_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 80, 12, 80, 27, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _kk_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _kk_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 80, 12, 80, 27, - [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], - _kn_ = [0, cst_InterfaceAllocationsFamili, [0, cst_i_montant_vers$0, 0]], - _jA_ = + [0, + caml_string_of_jsbytes("Interface du programme"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _kn_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + [0,caml_string_of_jsbytes("i_montant_vers\xc3\xa9"),0]], + _jA_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 45, 14, 45, 27, - [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], - cst_0$66 = cst_0$67, - _jw_ = + [0, + caml_string_of_jsbytes("R\xc3\xa8gles diverses"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jw_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 183, 14, 183, 62, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _js_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _js_= [0, - cst_AllocationsFamiliales$0, - [0, cst_compl_ment_d_gressif, [0, cst_input0, 0]]], - _jt_ = [0, cst_AllocationsFamiliales$0, [0, cst_compl_ment_d_gressif, 0]], - _ju_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"), + [0,caml_string_of_jsbytes("input0"),0]]], + _jt_= [0, - cst_AllocationsFamiliales$0, - [0, cst_compl_ment_d_gressif, [0, cst_output, 0]]], - _jv_ = [0, cst_AllocationsFamiliales$0, [0, cst_compl_ment_d_gressif, 0]], - cst_0$65 = cst_0$67, - _jo_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"),0]], + _ju_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"), + [0,caml_string_of_jsbytes("output"),0]]], + _jv_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"),0]], + _jo_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 189, 14, 189, 61, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _jk_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _jk_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 39, 14, 39, 38, - [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], - _jg_ = + [0, + caml_string_of_jsbytes("R\xc3\xa8gles diverses"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _jg_= [0, - cst_AllocationsFamiliales$0, - [0, cst_montant_avec_garde_altern_, [0, cst_input0, 0]]], - _jh_ = - [0, cst_AllocationsFamiliales$0, [0, cst_montant_avec_garde_altern_, 0]], - _ji_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_avec_garde_altern\xc3\xa9e_majoration"), + [0,caml_string_of_jsbytes("input0"),0]]], + _jh_= [0, - cst_AllocationsFamiliales$0, - [0, cst_montant_avec_garde_altern_, [0, cst_output, 0]]], - _jj_ = - [0, cst_AllocationsFamiliales$0, [0, cst_montant_avec_garde_altern_, 0]], - cst_0$63 = cst_0$67, - cst_0$64 = cst_0$67, - _jc_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_avec_garde_altern\xc3\xa9e_majoration"), + 0]], + _ji_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_avec_garde_altern\xc3\xa9e_majoration"), + [0,caml_string_of_jsbytes("output"),0]]], + _jj_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_avec_garde_altern\xc3\xa9e_majoration"), + 0]], + _jc_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 37, 14, 37, 32, - [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], - cst_0$62 = cst_0$67, - _i__ = + [0, + caml_string_of_jsbytes("R\xc3\xa8gles diverses"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _i__= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 186, 5, 186, 43, [0, - "Article R521-4", + caml_string_of_jsbytes("Article R521-4"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _i2_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _i2_= [0, - cst_AllocationsFamiliales$0, - [0, cst_prise_en_compte, [0, cst_input0, 0]]], - _i3_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], - _i4_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("prise_en_compte"), + [0,caml_string_of_jsbytes("input0"),0]]], + _i3_= [0, - cst_AllocationsFamiliales$0, - [0, cst_prise_en_compte, [0, cst_output, 0]]], - _i5_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], - cst_1$27 = cst_1$28, - cst_0_5$0 = cst_0_5$1, - cst_0$61 = cst_0$68, - _i6_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("prise_en_compte"),0]], + _i4_= [0, - cst_AllocationsFamiliales$0, - [0, cst_montant_initial_majoration, [0, cst_input0, 0]]], - _i7_ = - [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_majoration, 0]], - _i8_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("prise_en_compte"), + [0,caml_string_of_jsbytes("output"),0]]], + _i5_= [0, - cst_AllocationsFamiliales$0, - [0, cst_montant_initial_majoration, [0, cst_output, 0]]], - _i9_ = - [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_majoration, 0]], - _i$_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("prise_en_compte"),0]], + _i6_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("montant_initial_majoration"), + [0,caml_string_of_jsbytes("input0"),0]]], + _i7_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant_initial_majoration"),0]], + _i8_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("montant_initial_majoration"), + [0,caml_string_of_jsbytes("output"),0]]], + _i9_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant_initial_majoration"),0]], + _i$_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 132, 11, 132, 49, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _i1_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _i1_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 132, 11, 132, 49, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _iY_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iY_= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 125, 14, 125, 46, [0, - cst_Article_R521_3, + caml_string_of_jsbytes("Article R521-3"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_12$10 = cst_12$11, - _iS_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _iS_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 268, 5, 270, 41, [0, - cst_Article_D521_2, + caml_string_of_jsbytes("Article D521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_12$8 = cst_12$11, - cst_1$26 = cst_1$28, - cst_12$9 = cst_12$11, - _iT_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _iT_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 142, 11, 142, 52, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - cst_12$7 = cst_12$11, - _iQ_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iQ_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 278, 5, 280, 40, [0, - cst_Article_D521_2, + caml_string_of_jsbytes("Article D521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_12$5 = cst_12$11, - cst_1$25 = cst_1$28, - cst_12$6 = cst_12$11, - _iR_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _iR_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 142, 11, 142, 52, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _iU_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iU_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 142, 11, 142, 52, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _iP_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iP_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 286, 14, 286, 55, [0, - cst_Article_D521_2, + caml_string_of_jsbytes("Article D521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0$60 = cst_0$67, - cst_1$24 = cst_1$29, - _iF_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _iF_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], - _iG_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _iH_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("input0"),0]]], + _iG_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], - _iI_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _iJ_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _iH_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("output"),0]]], + _iI_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _iJ_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 379, 5, 383, 55, [0, - cst_Article_D755_5, + caml_string_of_jsbytes("Article D755-5"), [0, - cst_Chapitre_5_Prestations_fam, + caml_string_of_jsbytes + ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Titre_5_D_partements_d_out, + caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), [0, - cst_Livre_7_R_gimes_divers_Dis, + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0_0369 = "0.0369", - _iK_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _iK_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 130, 11, 130, 37, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - cst_1$23 = cst_1$29, - _iz_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iz_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], - _iA_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _iB_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("input0"),0]]], + _iA_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], - _iC_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _iD_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _iB_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("output"),0]]], + _iC_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _iD_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 389, 5, 392, 56, [0, - cst_Article_D755_5, + caml_string_of_jsbytes("Article D755-5"), [0, - cst_Chapitre_5_Prestations_fam, + caml_string_of_jsbytes + ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Titre_5_D_partements_d_out, + caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), [0, - cst_Livre_7_R_gimes_divers_Dis, + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0_0567 = "0.0567", - _iE_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _iE_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 130, 11, 130, 37, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _iL_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iL_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 130, 11, 130, 37, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _iy_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iy_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 22, 14, 22, 40, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _iu_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _iu_= [0, - cst_AllocationsFamiliales$0, - [0, cst_montant_initial_m_tropole_, [0, cst_input0, 0]]], - _iv_ = - [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_m_tropole_, 0]], - _iw_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), + [0,caml_string_of_jsbytes("input0"),0]]], + _iv_= [0, - cst_AllocationsFamiliales$0, - [0, cst_montant_initial_m_tropole_, [0, cst_output, 0]]], - _ix_ = - [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_m_tropole_, 0]], - _iM_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), + 0]], + _iw_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), + [0,caml_string_of_jsbytes("output"),0]]], + _ix_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), + 0]], + _iM_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 130, 11, 130, 37, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _it_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _it_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 130, 11, 130, 37, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - cst_1$22 = cst_1$29, - _io_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _io_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 356, 5, 357, 69, [0, - cst_Article_D755_5, + caml_string_of_jsbytes("Article D755-5"), [0, - cst_Chapitre_5_Prestations_fam, + caml_string_of_jsbytes + ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Titre_5_D_partements_d_out, + caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), [0, - cst_Livre_7_R_gimes_divers_Dis, + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _ip_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _ip_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 104, 11, 104, 31, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _il_ = [8, 0], - _im_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _il_=[8,0], + _im_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 151, 24, 151, 44, [0, - cst_Article_7, + caml_string_of_jsbytes("Article 7"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - _in_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _in_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 104, 11, 104, 31, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _iq_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iq_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 104, 11, 104, 31, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ik_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ik_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 18, 14, 18, 34, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _ig_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _ig_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 199, 14, 199, 39, [0, - cst_Article_D521_2, + caml_string_of_jsbytes("Article D521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _ic_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _ic_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_forfaitaire, [0, cst_input0, 0]]], - _id_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_forfaitaire, 0]], - _ie_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_forfaitaire"), + [0,caml_string_of_jsbytes("input0"),0]]], + _id_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_forfaitaire, [0, cst_output, 0]]], - _if_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_forfaitaire, 0]], - _h5_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_forfaitaire"),0]], + _ie_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], - _h6_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _h7_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_forfaitaire"), + [0,caml_string_of_jsbytes("output"),0]]], + _if_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], - _h8_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _h9_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_forfaitaire"),0]], + _h5_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("input0"),0]]], + _h6_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _h7_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("output"),0]]], + _h8_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _h9_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 60, 5, 60, 38, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0_16$1 = cst_0_16$2, - _h__ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _h__= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 128, 11, 128, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hZ_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hZ_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], - _h0_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _h1_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("input0"),0]]], + _h0_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], - _h2_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _h3_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _h1_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("output"),0]]], + _h2_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _h3_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 101, 5, 101, 38, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0_08$0 = cst_0_08$1, - _h4_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _h4_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 128, 11, 128, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hT_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hT_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], - _hU_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _hV_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("input0"),0]]], + _hU_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], - _hW_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _hX_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _hV_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("output"),0]]], + _hW_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _hX_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 138, 5, 138, 38, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0_04 = "0.04", - _hY_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _hY_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 128, 11, 128, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hN_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hN_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], - _hO_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _hP_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("input0"),0]]], + _hO_= [0, - cst_AllocationsFamiliales$0, - [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], - _hQ_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _hR_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _hP_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert_majoration"), + [0,caml_string_of_jsbytes("output"),0]]], + _hQ_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _hR_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 28, 5, 28, 44, - [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], - cst_0$59 = cst_0$67, - _hS_ = + [0, + caml_string_of_jsbytes("R\xc3\xa8gles diverses"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _hS_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 128, 11, 128, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _h$_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _h$_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 128, 11, 128, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hM_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hM_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 128, 11, 128, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hJ_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hJ_= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 128, 14, 128, 41, [0, - cst_Article_R521_3, + caml_string_of_jsbytes("Article R521-3"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0$57 = cst_0$68, - cst_0$58 = cst_0$68, - _hB_ = [8, 0], - _hC_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _hB_=[8,0], + _hC_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 350, 5, 350, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$21 = cst_1$29, - cst_0_232 = "0.232", - cst_0$56 = cst_0$67, - _hD_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _hD_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hy_ = [8, 0], - _hz_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hy_=[8,0], + _hz_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 358, 5, 358, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$20 = cst_1$29, - cst_0_2379 = "0.2379", - cst_0$55 = cst_0$67, - _hA_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _hA_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hv_ = [8, 0], - _hw_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hv_=[8,0], + _hw_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 366, 5, 366, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$19 = cst_1$29, - cst_0_2437 = "0.2437", - cst_0$54 = cst_0$67, - _hx_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _hx_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hs_ = [8, 0], - _ht_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hs_=[8,0], + _ht_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 374, 5, 374, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$18 = cst_1$29, - cst_0_2496 = "0.2496", - cst_0$53 = cst_0$67, - _hu_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _hu_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hp_ = [8, 0], - _hq_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hp_=[8,0], + _hq_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 382, 5, 382, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$17 = cst_1$29, - cst_0_2555 = "0.2555", - cst_0$52 = cst_0$67, - _hr_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _hr_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hm_ = [8, 0], - _hn_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hm_=[8,0], + _hn_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 390, 5, 390, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$16 = cst_1$29, - cst_0_2613 = "0.2613", - cst_0$51 = cst_0$67, - _ho_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _ho_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hj_ = [8, 0], - _hk_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hj_=[8,0], + _hk_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 398, 5, 398, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$15 = cst_1$29, - cst_0_2672 = "0.2672", - cst_0$50 = cst_0$67, - _hl_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _hl_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hg_ = [8, 0], - _hh_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hg_=[8,0], + _hh_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 406, 5, 406, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$14 = cst_1$29, - cst_0_2804 = "0.2804", - cst_0$49 = cst_0$67, - _hi_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _hi_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hd_ = [8, 0], - _he_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hd_=[8,0], + _he_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 414, 5, 414, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$13 = cst_1$29, - cst_0_2936 = "0.2936", - cst_0$48 = cst_0$67, - _hf_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _hf_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ha_ = [8, 0], - _hb_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ha_=[8,0], + _hb_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 422, 5, 422, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$12 = cst_1$29, - cst_0_3068 = "0.3068", - cst_0$47 = cst_0$67, - _hc_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _hc_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hE_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hE_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _g__ = [8, 0], - _g$_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _g__=[8,0], + _g$_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 177, 14, 177, 50, [0, - cst_Article_7, + caml_string_of_jsbytes("Article 7"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_1$11 = cst_1$29, - cst_0_32$0 = cst_0_32$1, - cst_0$46 = cst_0$67, - _hF_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _hF_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _g7_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _g7_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 38, 14, 38, 50, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_1$10 = cst_1$29, - cst_0_32 = cst_0_32$1, - cst_0$45 = cst_0$67, - _g8_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _g8_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _g5_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _g5_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 79, 14, 79, 50, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_1$9 = cst_1$29, - cst_0_16$0 = cst_0_16$2, - cst_0$44 = cst_0$67, - _g6_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _g6_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _g3_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _g3_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 117, 14, 117, 50, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_1$8 = cst_1$29, - cst_0_08 = cst_0_08$1, - cst_0$43 = cst_0$67, - _g4_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _g4_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _g9_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _g9_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 106, 11, 106, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gY_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gY_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 43, 14, 43, 59, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_2$15 = cst_2$17, - cst_2$16 = cst_2$17, - cst_0_41 = "0.41", - cst_0$42 = cst_0$67, - _gZ_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gZ_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 107, 11, 107, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gW_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gW_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 84, 14, 84, 59, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_2$13 = cst_2$17, - cst_2$14 = cst_2$17, - cst_0_205 = "0.205", - cst_0$41 = cst_0$67, - _gX_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gX_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 107, 11, 107, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gU_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gU_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 122, 14, 122, 59, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_2$11 = cst_2$17, - cst_2$12 = cst_2$17, - cst_0_1025 = "0.1025", - cst_0$40 = cst_0$67, - _gV_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gV_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 107, 11, 107, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gP_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gP_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 221, 5, 221, 42, [0, - cst_Article_D521_2, + caml_string_of_jsbytes("Article D521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0_20234 = "0.20234", - _gQ_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gQ_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 122, 11, 122, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gN_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gN_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 235, 5, 236, 45, [0, - cst_Article_D521_2, + caml_string_of_jsbytes("Article D521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0_10117 = "0.10117", - _gO_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gO_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 122, 11, 122, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gL_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gL_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 249, 5, 249, 42, [0, - cst_Article_D521_2, + caml_string_of_jsbytes("Article D521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0_05059 = "0.05059", - _gM_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gM_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 122, 11, 122, 47, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - cst_12$4 = cst_12$11, - _gF_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gF_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 165, 5, 166, 65, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_12$2 = cst_12$11, - cst_1$7 = cst_1$28, - cst_12$3 = cst_12$11, - _gG_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gG_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 139, 11, 139, 31, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - cst_12$1 = cst_12$11, - _gD_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gD_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 174, 5, 175, 65, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_12 = cst_12$11, - cst_1$6 = cst_1$28, - cst_12$0 = cst_12$11, - _gE_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gE_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 139, 11, 139, 31, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gH_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gH_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 139, 11, 139, 31, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gC_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gC_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 181, 14, 181, 34, [0, - cst_Article_D521_1, + caml_string_of_jsbytes("Article D521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0$39 = cst_0$67, - _gI_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gI_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 139, 11, 139, 31, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gB_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gB_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 139, 11, 139, 31, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gs_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gs_= [0, - cst_AllocationsFamiliales$0, - [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_input0, 0]]], - _gt_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + [0,caml_string_of_jsbytes("input0"),0]]], + _gt_= [0, - cst_AllocationsFamiliales$0, - [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], - _gu_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + 0]], + _gu_= [0, - cst_AllocationsFamiliales$0, - [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_output, 0]]], - _gv_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + [0,caml_string_of_jsbytes("output"),0]]], + _gv_= [0, - cst_AllocationsFamiliales$0, - [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], - _gw_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + 0]], + _gw_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 315, 5, 318, 21, [0, - cst_Article_L521_3, + caml_string_of_jsbytes("Article L521-3"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _gx_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gx_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 126, 11, 126, 34, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gj_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gj_= [0, - cst_AllocationsFamiliales$0, - [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_input0, 0]]], - _gk_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + [0,caml_string_of_jsbytes("input0"),0]]], + _gk_= [0, - cst_AllocationsFamiliales$0, - [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], - _gl_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + 0]], + _gl_= [0, - cst_AllocationsFamiliales$0, - [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_output, 0]]], - _gm_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + [0,caml_string_of_jsbytes("output"),0]]], + _gm_= [0, - cst_AllocationsFamiliales$0, - [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], - _gn_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + 0]], + _gn_= [0, - cst_AllocationsFamiliales$0, - [0, cst_est_enfant_le_plus_g, [0, cst_input0, 0]]], - _go_ = [0, cst_AllocationsFamiliales$0, [0, cst_est_enfant_le_plus_g, 0]], - _gp_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"), + [0,caml_string_of_jsbytes("input0"),0]]], + _go_= [0, - cst_AllocationsFamiliales$0, - [0, cst_est_enfant_le_plus_g, [0, cst_output, 0]]], - _gq_ = [0, cst_AllocationsFamiliales$0, [0, cst_est_enfant_le_plus_g, 0]], - _gr_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"),0]], + _gp_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"), + [0,caml_string_of_jsbytes("output"),0]]], + _gq_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"),0]], + _gr_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 300, 5, 302, 21, [0, - cst_Article_L521_3, + caml_string_of_jsbytes("Article L521-3"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _gy_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gy_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 126, 11, 126, 34, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gi_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gi_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 126, 11, 126, 34, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gz_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gz_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 126, 11, 126, 34, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gh_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gh_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 126, 11, 126, 34, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - cst_1$5 = cst_1$29, - _f$_ = [8, 0], - _ga_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _f$_=[8,0], + _ga_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 159, 6, 159, 71, [0, - cst_Article_7, + caml_string_of_jsbytes("Article 7"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - _gb_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _gb_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 103, 11, 103, 28, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - cst_1$4 = cst_1$29, - _f__ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _f__= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 409, 5, 410, 72, [0, - cst_Article_L755_12, + caml_string_of_jsbytes("Article L755-12"), [0, - cst_Chapitre_5_Prestations_fam, + caml_string_of_jsbytes + ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Titre_5_Dispositions_parti, + caml_string_of_jsbytes + ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), [0, - cst_Livre_7_R_gimes_divers_Dis, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _gc_ = + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _gc_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 103, 11, 103, 28, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gd_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gd_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 103, 11, 103, 28, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - cst_2$10 = cst_2$17, - _f9_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _f9_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 101, 5, 101, 70, [0, - cst_Article_L521_1, + caml_string_of_jsbytes("Article L521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _ge_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _ge_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 103, 11, 103, 28, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _f8_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _f8_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 103, 11, 103, 28, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _f0_ = [8, 0], - _f1_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _f0_=[8,0], + _f1_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 251, 5, 252, 53, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$37 = cst_0$67, - cst_0_145 = "0.145", - cst_0$38 = cst_0$67, - _f2_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _f2_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fX_ = [8, 0], - _fY_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fX_=[8,0], + _fY_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 260, 5, 261, 53, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$35 = cst_0$67, - cst_0_1393 = "0.1393", - cst_0$36 = cst_0$67, - _fZ_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fZ_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fU_ = [8, 0], - _fV_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fU_=[8,0], + _fV_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 269, 5, 270, 53, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$33 = cst_0$67, - cst_0_1335 = "0.1335", - cst_0$34 = cst_0$67, - _fW_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fW_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fR_ = [8, 0], - _fS_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fR_=[8,0], + _fS_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 278, 5, 279, 53, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$31 = cst_0$67, - cst_0_1278 = "0.1278", - cst_0$32 = cst_0$67, - _fT_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fT_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fO_ = [8, 0], - _fP_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fO_=[8,0], + _fP_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 287, 5, 288, 53, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$29 = cst_0$67, - cst_0_122 = "0.122", - cst_0$30 = cst_0$67, - _fQ_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fQ_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fL_ = [8, 0], - _fM_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fL_=[8,0], + _fM_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 296, 5, 297, 53, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$27 = cst_0$67, - cst_0_1163 = "0.1163", - cst_0$28 = cst_0$67, - _fN_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fN_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fI_ = [8, 0], - _fJ_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fI_=[8,0], + _fJ_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 305, 5, 306, 53, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$25 = cst_0$67, - cst_0_1105 = "0.1105", - cst_0$26 = cst_0$67, - _fK_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fK_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fF_ = [8, 0], - _fG_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fF_=[8,0], + _fG_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 314, 5, 315, 53, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$23 = cst_0$67, - cst_0_0976 = "0.0976", - cst_0$24 = cst_0$67, - _fH_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fH_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fC_ = [8, 0], - _fD_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fC_=[8,0], + _fD_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 323, 5, 324, 53, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$21 = cst_0$67, - cst_0_0847 = "0.0847", - cst_0$22 = cst_0$67, - _fE_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fE_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fz_ = [8, 0], - _fA_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fz_=[8,0], + _fA_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 332, 5, 333, 53, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$19 = cst_0$67, - cst_0_0717 = "0.0717", - cst_0$20 = cst_0$67, - _fB_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fB_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fw_ = [8, 0], - _fx_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fw_=[8,0], + _fx_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 341, 5, 341, 49, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$17 = cst_0$67, - cst_5728 = "5728", - cst_0$18 = cst_0$67, - _fy_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fy_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _f3_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _f3_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fu_ = [8, 0], - _fv_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fu_=[8,0], + _fv_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 167, 14, 167, 49, [0, - cst_Article_7, + caml_string_of_jsbytes("Article 7"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_0$15 = cst_0$67, - cst_0_0588$0 = cst_0_0588$1, - cst_0$16 = cst_0$67, - _f4_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _f4_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - cst_1$3 = cst_1$29, - _fs_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fs_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 365, 5, 366, 71, [0, - cst_Article_D755_5, + caml_string_of_jsbytes("Article D755-5"), [0, - cst_Chapitre_5_Prestations_fam, + caml_string_of_jsbytes + ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Titre_5_D_partements_d_out, + caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), [0, - cst_Livre_7_R_gimes_divers_Dis, + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0_0588 = cst_0_0588$1, - _ft_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _ft_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 105, 11, 105, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fr_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fr_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 362, 29, 362, 64, [0, - cst_Article_D755_5, + caml_string_of_jsbytes("Article D755-5"), [0, - cst_Chapitre_5_Prestations_fam, + caml_string_of_jsbytes + ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Titre_5_D_partements_d_out, + caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), [0, - cst_Livre_7_R_gimes_divers_Dis, + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_0$14 = cst_0$67, - _fn_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _fn_= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 142, 14, 142, 34, [0, - cst_Article_R521_3, + caml_string_of_jsbytes("Article R521-3"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _fj_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _fj_= [0, - cst_AllocationsFamiliales$0, - [0, cst_prise_en_compte, [0, cst_input0, 0]]], - _fk_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], - _fl_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("prise_en_compte"), + [0,caml_string_of_jsbytes("input0"),0]]], + _fk_= [0, - cst_AllocationsFamiliales$0, - [0, cst_prise_en_compte, [0, cst_output, 0]]], - _fm_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], - cst_1$2 = cst_1$28, - cst_0_5 = cst_0_5$1, - cst_0$12 = cst_0$68, - cst_0$13 = cst_0$68, - _ff_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("prise_en_compte"),0]], + _fl_= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("prise_en_compte"), + [0,caml_string_of_jsbytes("output"),0]]], + _fm_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("prise_en_compte"),0]], + _ff_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 160, 14, 160, 34, [0, - cst_Article_R521_3, + caml_string_of_jsbytes("Article R521-3"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _e__ = [8, 0], - _e$_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _e__=[8,0], + _e$_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 431, 5, 431, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2$9 = cst_2$17, - cst_0_0463$0 = cst_0_0463$1, - cst_0$11 = cst_0$67, - _fa_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _fa_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _e7_ = [8, 0], - _e8_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _e7_=[8,0], + _e8_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 439, 5, 439, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2$8 = cst_2$17, - cst_0_0539 = "0.0539", - cst_0$10 = cst_0$67, - _e9_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _e9_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _e4_ = [8, 0], - _e5_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _e4_=[8,0], + _e5_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 447, 5, 447, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2$7 = cst_2$17, - cst_0_0615 = "0.0615", - cst_0$9 = cst_0$67, - _e6_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _e6_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _e1_ = [8, 0], - _e2_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _e1_=[8,0], + _e2_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 455, 5, 455, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2$6 = cst_2$17, - cst_0_069 = "0.069", - cst_0$8 = cst_0$67, - _e3_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _e3_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eY_ = [8, 0], - _eZ_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eY_=[8,0], + _eZ_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 463, 5, 463, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2$5 = cst_2$17, - cst_0_0766 = "0.0766", - cst_0$7 = cst_0$67, - _e0_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _e0_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eV_ = [8, 0], - _eW_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eV_=[8,0], + _eW_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 471, 5, 471, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2$4 = cst_2$17, - cst_0_0842 = "0.0842", - cst_0$6 = cst_0$67, - _eX_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _eX_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eS_ = [8, 0], - _eT_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eS_=[8,0], + _eT_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 479, 5, 479, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2$3 = cst_2$17, - cst_0_0918 = "0.0918", - cst_0$5 = cst_0$67, - _eU_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _eU_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eP_ = [8, 0], - _eQ_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eP_=[8,0], + _eQ_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 487, 5, 487, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2$2 = cst_2$17, - cst_0_1089 = "0.1089", - cst_0$4 = cst_0$67, - _eR_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _eR_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eM_ = [8, 0], - _eN_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eM_=[8,0], + _eN_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 495, 5, 495, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2$1 = cst_2$17, - cst_0_1259 = "0.1259", - cst_0$3 = cst_0$67, - _eO_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _eO_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eJ_ = [8, 0], - _eK_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eJ_=[8,0], + _eK_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 503, 5, 503, 67, [0, - cst_Annexe, + caml_string_of_jsbytes("Annexe"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2$0 = cst_2$17, - cst_0_143 = "0.143", - cst_0$2 = cst_0$67, - _eL_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _eL_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fb_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fb_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 116, 11, 116, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eI_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eI_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 186, 14, 186, 59, [0, - cst_Article_7, + caml_string_of_jsbytes("Article 7"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_2 = cst_2$17, - cst_0_16 = cst_0_16$2, - cst_0$1 = cst_0$67, - _eE_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _eE_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 195, 14, 195, 67, [0, - cst_Article_7, + caml_string_of_jsbytes("Article 7"), [0, - cst_D_cret_n_2002_423_du_29_ma, - [0, cst_Dispositions_sp_ciales_rel, 0]]]], - cst_3$1 = cst_3$3, - cst_3$2 = cst_3$3, - cst_0_0463 = cst_0_0463$1, - cst_0$0 = cst_0$67, - cst_1$1 = cst_1$29, - _ey_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), + [0, + caml_string_of_jsbytes + ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), + 0]]]], + _ey_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 423, 6, 424, 72, [0, - cst_Article_L755_12, + caml_string_of_jsbytes("Article L755-12"), [0, - cst_Chapitre_5_Prestations_fam, + caml_string_of_jsbytes + ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Titre_5_Dispositions_parti, + caml_string_of_jsbytes + ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), [0, - cst_Livre_7_R_gimes_divers_Dis, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _ez_ = + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _ez_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 120, 11, 120, 35, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _et_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _et_= [0, - cst_PrestationsFamiliales, - [0, cst_conditions_hors_ge$0, [0, cst_input0, 0]]], - _eu_ = [0, cst_PrestationsFamiliales, [0, cst_conditions_hors_ge$0, 0]], - _ev_ = + caml_string_of_jsbytes("PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), + [0,caml_string_of_jsbytes("input0"),0]]], + _eu_= [0, - cst_PrestationsFamiliales, - [0, cst_conditions_hors_ge$0, [0, cst_output, 0]]], - _ew_ = [0, cst_PrestationsFamiliales, [0, cst_conditions_hors_ge$0, 0]], - _ex_ = + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], + _ev_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), + [0,caml_string_of_jsbytes("output"),0]]], + _ew_= + [0, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], + _ex_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 119, 5, 126, 59, [0, - cst_Article_L521_1, + caml_string_of_jsbytes("Article L521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _eA_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _eA_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 120, 11, 120, 35, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _es_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _es_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 120, 11, 120, 35, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eB_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eB_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 120, 11, 120, 35, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _er_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _er_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 120, 11, 120, 35, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - cst_1$0 = cst_1$29, - _em_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _em_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 429, 5, 430, 71, [0, - cst_Article_L755_12, + caml_string_of_jsbytes("Article L755-12"), [0, - cst_Chapitre_5_Prestations_fam, + caml_string_of_jsbytes + ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Titre_5_Dispositions_parti, + caml_string_of_jsbytes + ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), [0, - cst_Livre_7_R_gimes_divers_Dis, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _en_ = + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _en_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 137, 11, 137, 34, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _el_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _el_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 31, 9, 31, 32, - [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], - _eo_ = + [0, + caml_string_of_jsbytes("R\xc3\xa8gles diverses"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _eo_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 137, 11, 137, 34, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ek_ = - [0, - cst_examples_allocations_famil$2, - 137, - 11, - 137, - 34, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ee_ = - [0, - cst_examples_allocations_famil$3, - 23, - 5, - 23, - 67, - [0, - cst_Circulaire_interminist_rie, - [0, cst_Montant_des_plafonds_de_re, 0]]], - cst_562800$0 = cst_562800$1, - cst_5628600 = "5628600", - _ef_ = - [0, - cst_examples_allocations_famil$2, - 157, - 11, - 157, - 27, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ec_ = - [0, - cst_examples_allocations_famil$3, - 56, - 5, - 56, - 67, - [0, - cst_Instruction_interminist_ri, - [0, cst_Montant_des_plafonds_de_re, 0]]], - cst_568400$0 = cst_568400$1, - cst_5684900 = "5684900", - _ed_ = - [0, - cst_examples_allocations_famil$2, - 157, - 11, - 157, - 27, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ea_ = - [0, - cst_examples_allocations_famil$3, - 89, - 5, - 89, - 67, - [0, - cst_Instruction_interministeri, - [0, cst_Montant_des_plafonds_de_re, 0]]], - cst_577500$0 = cst_577500$1, - cst_5775900 = "5775900", - _eb_ = - [0, - cst_examples_allocations_famil$2, - 157, - 11, - 157, - 27, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _d__ = - [0, - cst_examples_allocations_famil$3, - 116, - 5, - 116, - 67, - [0, - cst_Article_1, + caml_string_of_jsbytes("Allocations familiales"), [0, - cst_Arr_t_du_14_d_cembre_2020_, - [0, cst_Montant_des_plafonds_de_re, 0]]]], - cst_582700$0 = cst_582700$1, - cst_5827900 = "5827900", - _d$_ = + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ek_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 137, + 11, + 137, + 34, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ee_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), + 23, + 5, + 23, + 67, + [0, + caml_string_of_jsbytes + ("Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), + [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], + _ef_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 157, 11, 157, 27, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eg_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ec_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), + 56, + 5, + 56, + 67, + [0, + caml_string_of_jsbytes + ("Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), + [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], + _ed_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 157, 11, 157, 27, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _d9_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ea_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), + 89, + 5, + 89, + 67, + [0, + caml_string_of_jsbytes + ("Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), + [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], + _eb_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 157, + 11, + 157, + 27, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _d__= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), + 116, + 5, + 116, + 67, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations"), + [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]]], + _d$_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 157, + 11, + 157, + 27, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eg_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 157, + 11, + 157, + 27, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _d9_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 304, 14, 304, 30, [0, - cst_Article_D521_3, + caml_string_of_jsbytes("Article D521-3"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_559500$0 = cst_559500$1, - cst_5595000 = "5595000", - _d3_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _d3_= [0, - cst_examples_allocations_famil$3, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), 30, 5, 30, 67, [0, - cst_Circulaire_interminist_rie, - [0, cst_Montant_des_plafonds_de_re, 0]]], - cst_562800 = cst_562800$1, - cst_7877000 = "7877000", - _d4_ = + caml_string_of_jsbytes + ("Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), + [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], + _d4_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 158, 11, 158, 28, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _d1_ = - [0, - cst_examples_allocations_famil$3, - 63, - 5, - 63, - 67, - [0, - cst_Instruction_interminist_ri, - [0, cst_Montant_des_plafonds_de_re, 0]]], - cst_568400 = cst_568400$1, - cst_7955800 = "7955800", - _d2_ = - [0, - cst_examples_allocations_famil$2, - 158, - 11, - 158, - 28, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dZ_ = - [0, - cst_examples_allocations_famil$3, - 96, - 5, - 96, - 67, - [0, - cst_Instruction_interministeri, - [0, cst_Montant_des_plafonds_de_re, 0]]], - cst_577500 = cst_577500$1, - cst_8083100 = "8083100", - _d0_ = - [0, - cst_examples_allocations_famil$2, - 158, - 11, - 158, - 28, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dX_ = - [0, - cst_examples_allocations_famil$3, - 132, - 5, - 132, - 67, - [0, - cst_Article_1, + caml_string_of_jsbytes("Allocations familiales"), [0, - cst_Arr_t_du_14_d_cembre_2020_, - [0, cst_Montant_des_plafonds_de_re, 0]]]], - cst_582700 = cst_582700$1, - cst_8155800 = "8155800", - _dY_ = + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _d1_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), + 63, + 5, + 63, + 67, + [0, + caml_string_of_jsbytes + ("Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), + [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], + _d2_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 158, 11, 158, 28, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _d5_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dZ_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), + 96, + 5, + 96, + 67, + [0, + caml_string_of_jsbytes + ("Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), + [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], + _d0_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 158, 11, 158, 28, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dW_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dX_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/decrets_divers.catala_fr"), + 132, + 5, + 132, + 67, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations"), + [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]]], + _dY_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 158, + 11, + 158, + 28, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _d5_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 158, + 11, + 158, + 28, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dW_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 314, 14, 314, 31, [0, - cst_Article_D521_3, + caml_string_of_jsbytes("Article D521-3"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_559500 = cst_559500$1, - cst_7830000 = "7830000", - _dS_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _dS_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 34, 14, 34, 36, - [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], - _dT_ = + [0, + caml_string_of_jsbytes("R\xc3\xa8gles diverses"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _dT_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 155, 11, 155, 33, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dR_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dR_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 155, 11, 155, 33, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dO_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dO_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 75, 14, 75, 64, [0, - cst_Article_L512_3, + caml_string_of_jsbytes("Article L512-3"), [0, - cst_Chapitre_2_Champ_d_applica, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), [0, - cst_Titre_1_Champ_d_applicatio, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _dK_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _dK_= [0, - cst_PrestationsFamiliales, - [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], - _dL_ = [0, cst_PrestationsFamiliales, [0, cst_droit_ouvert$0, 0]], - _dM_ = + caml_string_of_jsbytes("PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("input0"),0]]], + _dL_= [0, - cst_PrestationsFamiliales, - [0, cst_droit_ouvert$0, [0, cst_output, 0]]], - _dN_ = [0, cst_PrestationsFamiliales, [0, cst_droit_ouvert$0, 0]], - _dF_ = + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _dM_= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("output"),0]]], + _dN_= + [0, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _dF_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 83, 19, 83, 67, [0, - cst_Article_R521_1, + caml_string_of_jsbytes("Article R521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _dG_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _dG_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 152, 11, 152, 38, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dE_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dE_= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 56, 14, 56, 41, [0, - cst_Article_R521_1, + caml_string_of_jsbytes("Article R521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _dH_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _dH_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 152, 11, 152, 38, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dD_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dD_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 152, 11, 152, 38, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dy_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dy_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 33, 14, 33, 40, - [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], - _ds_ = + [0, + caml_string_of_jsbytes("R\xc3\xa8gles diverses"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _ds_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 165, 14, 165, 46, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _do_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _do_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 161, 14, 161, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dn_ = [1, 0], - _dj_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dn_=[1,0], + _dj_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 163, 14, 163, 50, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dd_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dd_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 167, 14, 167, 32, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _c9_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _c9_= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 64, 14, 64, 44, [0, - cst_Article_R521_1, + caml_string_of_jsbytes("Article R521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_3$0 = cst_3$3, - _c5_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _c5_= [0, - cst_examples_allocations_famil$0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_D.catala_fr"), 294, 14, 294, 35, [0, - cst_Article_D521_2, + caml_string_of_jsbytes("Article D521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_3 = cst_3$3, - _c0_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _c0_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 259, 5, 260, 56, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cZ_ = [1, 0], - _c1_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cZ_=[1,0], + _c1_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 98, 11, 98, 20, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cU_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cU_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 270, 5, 271, 48, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cT_ = [0, 0], - _cV_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cT_=[0,0], + _cV_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 98, 11, 98, 20, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cS_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cS_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 219, 5, 219, 70, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cR_ = [0, 0], - _cW_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cR_=[0,0], + _cW_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 98, 11, 98, 20, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cQ_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cQ_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 209, 5, 209, 69, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cP_ = [0, 0], - _cX_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cP_=[0,0], + _cX_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 98, 11, 98, 20, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cO_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cO_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 189, 5, 189, 60, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cN_ = [0, 0], - _cY_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cN_=[0,0], + _cY_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 98, 11, 98, 20, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _c2_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _c2_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 98, 11, 98, 20, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cM_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cM_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 98, 11, 98, 20, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cI_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cI_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 215, 5, 215, 70, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cH_ = [1, 0], - _cJ_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cH_=[1,0], + _cJ_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 97, 11, 97, 26, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cF_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cF_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 254, 5, 255, 56, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cE_ = [2, 0], - _cG_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cE_=[2,0], + _cG_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 97, 11, 97, 26, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cA_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cA_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 264, 5, 265, 48, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cz_ = [0, 0], - _cB_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cz_=[0,0], + _cB_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 97, 11, 97, 26, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cy_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cy_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 205, 5, 205, 69, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cx_ = [0, 0], - _cC_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cx_=[0,0], + _cC_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 97, 11, 97, 26, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cw_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cw_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 185, 5, 185, 60, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cv_ = [0, 0], - _cD_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cv_=[0,0], + _cD_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 97, 11, 97, 26, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cK_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cK_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 97, 11, 97, 26, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cu_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cu_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 97, 11, 97, 26, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cL_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], - _c3_ = [0, cst_AllocationsFamiliales$0, [0, "versement", 0]], - _c6_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cL_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("prise_en_compte"),0]], + _c3_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("versement"),0]], + _c6_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 151, 11, 151, 32, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _c4_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _c4_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 151, 11, 151, 32, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _c7_ = [0, cst_AllocationsFamiliales$0, [0, "nombre_enfants_l521_1", 0]], - _c__ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _c7_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("nombre_enfants_l521_1"),0]], + _c__= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 154, 11, 154, 41, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _c8_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _c8_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 154, 11, 154, 41, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _c$_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _c$_= [0, - cst_AllocationsFamiliales$0, - [0, "nombre_enfants_alin\xc3\xa9a_2_l521_3", 0]], - _da_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("nombre_enfants_alin\xc3\xa9a_2_l521_3"),0]], + _da_= [0, - cst_AllocationsFamiliales$0, - [0, cst_version_avril_2008, [0, cst_AllocationFamilialesAvril2, 0]]], - _db_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("version_avril_2008"), + [0,caml_string_of_jsbytes("AllocationFamilialesAvril2008"),0]]], + _db_= [0, - cst_AllocationsFamiliales$0, - [0, cst_version_avril_2008, [0, cst_AllocationFamilialesAvril2, 0]]], - _de_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("version_avril_2008"), + [0,caml_string_of_jsbytes("AllocationFamilialesAvril2008"),0]]], + _de_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 167, 14, 167, 32, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _df_ = [0, cst_AllocationsFamiliales$0, [0, "bmaf.date_courante", 0]], - _dc_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _df_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("bmaf.date_courante"),0]], + _dc_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 167, 14, 167, 32, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dg_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dg_= [0, - cst_AllocationsFamiliales$0, - [0, cst_bmaf, [0, cst_BaseMensuelleAllocationsFa, 0]]], - _dh_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("bmaf"), + [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], + _dh_= [0, - cst_AllocationsFamiliales$0, - [0, cst_bmaf, [0, cst_BaseMensuelleAllocationsFa, 0]]], - _dk_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("bmaf"), + [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], + _dk_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 163, 14, 163, 50, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dl_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dl_= [0, - cst_AllocationsFamiliales$0, - [0, "prestations_familiales.date_courante", 0]], - _di_ = + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("prestations_familiales.date_courante"),0]], + _di_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 163, 14, 163, 50, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dp_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dp_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 161, 14, 161, 56, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dq_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dq_= [0, - cst_AllocationsFamiliales$0, - [0, "prestations_familiales.prestation_courante", 0]], - _dm_ = - [0, - cst_examples_allocations_famil$2, - 161, - 14, - 161, - 56, + caml_string_of_jsbytes("AllocationsFamiliales"), [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dt_ = - [0, - cst_examples_allocations_famil$2, - 165, - 14, - 165, - 46, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _du_ = - [0, - cst_AllocationsFamiliales$0, - [0, "prestations_familiales.r\xc3\xa9sidence", 0]], - _dr_ = - [0, - cst_examples_allocations_famil$2, - 165, - 14, - 165, - 46, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dv_ = - [0, - cst_AllocationsFamiliales$0, - [0, cst_prestations_familiales, [0, cst_PrestationsFamiliales, 0]]], - _dw_ = - [0, - cst_AllocationsFamiliales$0, - [0, cst_prestations_familiales, [0, cst_PrestationsFamiliales, 0]]], - _dz_ = - [0, - cst_examples_allocations_famil, - 33, - 14, - 33, - 40, - [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], - _dA_ = - [0, - cst_AllocationsFamiliales$0, - [0, "enfant_le_plus_\xc3\xa2g\xc3\xa9.enfants", 0]], - _dx_ = - [0, - cst_examples_allocations_famil, - 33, - 14, - 33, - 40, - [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], - _dB_ = - [0, - cst_AllocationsFamiliales$0, - [0, cst_enfant_le_plus_g, [0, cst_EnfantLePlus_g, 0]]], - _dC_ = - [0, - cst_AllocationsFamiliales$0, - [0, cst_enfant_le_plus_g, [0, cst_EnfantLePlus_g, 0]]], - _dI_ = - [0, - cst_AllocationsFamiliales$0, - [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], - _dP_ = - [0, - cst_examples_allocations_famil$2, - 95, - 11, - 95, - 61, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dJ_ = - [0, - cst_examples_allocations_famil$2, - 95, - 11, - 95, - 61, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dQ_ = - [0, - cst_AllocationsFamiliales$0, - [0, "enfants_\xc3\xa0_charge_droit_ouvert_prestation_familiale", 0]], - _dU_ = [0, cst_AllocationsFamiliales$0, [0, cst_est_enfant_le_plus_g, 0]], - _d6_ = - [0, - cst_examples_allocations_famil$2, - 158, - 11, - 158, - 28, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _dV_ = - [0, - cst_examples_allocations_famil$2, - 158, - 11, - 158, - 28, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _d7_ = [0, cst_AllocationsFamiliales$0, [0, "plafond_II_d521_3", 0]], - _eh_ = - [0, - cst_examples_allocations_famil$2, - 157, - 11, - 157, - 27, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _d8_ = - [0, - cst_examples_allocations_famil$2, - 157, - 11, - 157, - 27, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ei_ = [0, cst_AllocationsFamiliales$0, [0, "plafond_I_d521_3", 0]], - _ep_ = - [0, - cst_examples_allocations_famil$2, - 137, - 11, - 137, - 34, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ej_ = - [0, - cst_examples_allocations_famil$2, - 137, - 11, - 137, - 34, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eq_ = - [0, - cst_AllocationsFamiliales$0, - [0, "droit_ouvert_compl\xc3\xa9ment", 0]], - _eC_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_forfaitaire, 0]], - _eF_ = - [0, - cst_examples_allocations_famil$2, - 117, - 11, - 117, - 64, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eD_ = - [0, - cst_examples_allocations_famil$2, - 117, - 11, - 117, - 64, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eG_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_initial_base_quatri\xc3\xa8me_enfant_et_plus_mayotte", 0]], - _fc_ = - [0, - cst_examples_allocations_famil$2, - 116, - 11, - 116, - 56, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _eH_ = - [0, - cst_examples_allocations_famil$2, - 116, - 11, - 116, - 56, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fd_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_initial_base_troisi\xc3\xa8me_enfant_mayotte", 0]], - _fg_ = - [0, - cst_examples_allocations_famil$2, - 110, - 11, - 110, - 31, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fe_ = - [0, - cst_examples_allocations_famil$2, - 110, - 11, - 110, - 31, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fh_ = [0, cst_AllocationsFamiliales$0, [0, "nombre_total_enfants", 0]], - _fo_ = - [0, - cst_examples_allocations_famil$2, - 109, - 11, - 109, - 31, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fi_ = - [0, - cst_examples_allocations_famil$2, - 109, - 11, - 109, - 31, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fp_ = [0, cst_AllocationsFamiliales$0, [0, "nombre_moyen_enfants", 0]], - _f5_ = - [0, - cst_examples_allocations_famil$2, - 105, - 11, - 105, - 46, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _fq_ = - [0, - cst_examples_allocations_famil$2, - 105, - 11, - 105, - 46, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _f6_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_initial_base_premier_enfant", 0]], - _gf_ = - [0, - cst_examples_allocations_famil$2, - 103, - 11, - 103, - 28, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _f7_ = - [0, - cst_examples_allocations_famil$2, - 103, - 11, - 103, - 28, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gg_ = [0, cst_AllocationsFamiliales$0, [0, "droit_ouvert_base", 0]], - _gA_ = - [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], - _gJ_ = [0, cst_AllocationsFamiliales$0, [0, cst_compl_ment_d_gressif, 0]], - _gR_ = - [0, - cst_examples_allocations_famil$2, - 122, - 11, - 122, - 47, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gK_ = - [0, - cst_examples_allocations_famil$2, - 122, - 11, - 122, - 47, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gS_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_vers\xc3\xa9_forfaitaire_par_enfant", 0]], - _g0_ = - [0, - cst_examples_allocations_famil$2, - 107, - 11, - 107, - 56, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _gT_ = - [0, - cst_examples_allocations_famil$2, - 107, - 11, - 107, - 56, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _g1_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_initial_base_troisi\xc3\xa8me_enfant_et_plus", 0]], - _hG_ = - [0, - cst_examples_allocations_famil$2, - 106, - 11, - 106, - 47, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _g2_ = - [0, - cst_examples_allocations_famil$2, - 106, - 11, - 106, - 47, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hH_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_initial_base_deuxi\xc3\xa8me_enfant", 0]], - _hK_ = - [0, - cst_examples_allocations_famil$2, - 108, - 11, - 108, - 38, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hI_ = - [0, - cst_examples_allocations_famil$2, - 108, - 11, - 108, - 38, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _hL_ = - [0, cst_AllocationsFamiliales$0, [0, "rapport_enfants_total_moyen", 0]], - _ia_ = - [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_m_tropole_, 0]], - _ih_ = - [0, - cst_examples_allocations_famil$2, - 123, - 11, - 123, - 36, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ib_ = - [0, - cst_examples_allocations_famil$2, - 123, - 11, - 123, - 36, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ii_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_vers\xc3\xa9_forfaitaire", 0]], - _ir_ = - [0, - cst_examples_allocations_famil$2, - 104, - 11, - 104, - 31, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ij_ = - [0, - cst_examples_allocations_famil$2, - 104, - 11, - 104, - 31, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _is_ = [0, cst_AllocationsFamiliales$0, [0, "montant_initial_base", 0]], - _iN_ = - [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_majoration, 0]], - _iV_ = - [0, - cst_examples_allocations_famil$2, - 142, - 11, - 142, - 52, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _iO_ = - [0, - cst_examples_allocations_famil$2, - 142, - 11, - 142, - 52, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _iW_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_forfaitaire", 0]], - _iZ_ = - [0, - cst_examples_allocations_famil$2, - 111, - 11, - 111, - 43, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _iX_ = - [0, - cst_examples_allocations_famil$2, - 111, - 11, - 111, - 43, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _i0_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_avec_garde_altern\xc3\xa9e_base", 0]], - _ja_ = - [0, cst_AllocationsFamiliales$0, [0, cst_montant_avec_garde_altern_, 0]], - _jd_ = - [0, - cst_examples_allocations_famil$2, - 112, - 11, - 112, - 29, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _jb_ = - [0, - cst_examples_allocations_famil$2, - 112, - 11, - 112, - 29, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _je_ = - [0, cst_AllocationsFamiliales$0, [0, "montant_vers\xc3\xa9_base", 0]], - _jl_ = - [0, - cst_examples_allocations_famil$2, - 134, - 11, - 134, - 35, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _jf_ = - [0, - cst_examples_allocations_famil$2, - 134, - 11, - 134, - 35, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _jm_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_vers\xc3\xa9_majoration", 0]], - _jp_ = - [0, - cst_examples_allocations_famil$2, - 138, - 11, - 138, - 58, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _jn_ = - [0, - cst_examples_allocations_famil$2, - 138, - 11, - 138, - 58, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _jq_ = - [0, - cst_AllocationsFamiliales$0, - [0, "montant_base_compl\xc3\xa9ment_pour_base_et_majoration", 0]], - _jx_ = - [0, - cst_examples_allocations_famil$2, - 141, - 11, - 141, - 59, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _jr_ = - [0, - cst_examples_allocations_famil$2, - 141, - 11, - 141, - 59, - [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _jy_ = - [0, - cst_AllocationsFamiliales$0, - [0, - "montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_base_et_majoration", + caml_string_of_jsbytes("prestations_familiales.prestation_courante"), 0]], - _jB_ = + _dm_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 161, + 14, + 161, + 56, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dt_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 165, + 14, + 165, + 46, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _du_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("prestations_familiales.r\xc3\xa9sidence"),0]], + _dr_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 165, + 14, + 165, + 46, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dv_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("prestations_familiales"), + [0,caml_string_of_jsbytes("PrestationsFamiliales"),0]]], + _dw_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("prestations_familiales"), + [0,caml_string_of_jsbytes("PrestationsFamiliales"),0]]], + _dz_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), + 33, + 14, + 33, + 40, + [0, + caml_string_of_jsbytes("R\xc3\xa8gles diverses"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _dA_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("enfant_le_plus_\xc3\xa2g\xc3\xa9.enfants"), + 0]], + _dx_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), + 33, + 14, + 33, + 40, + [0, + caml_string_of_jsbytes("R\xc3\xa8gles diverses"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _dB_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("enfant_le_plus_\xc3\xa2g\xc3\xa9"), + [0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"),0]]], + _dC_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("enfant_le_plus_\xc3\xa2g\xc3\xa9"), + [0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"),0]]], + _dI_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + 0]], + _dP_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 95, + 11, + 95, + 61, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dJ_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 95, + 11, + 95, + 61, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dQ_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("enfants_\xc3\xa0_charge_droit_ouvert_prestation_familiale"), + 0]], + _dU_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"),0]], + _d6_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 158, + 11, + 158, + 28, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _dV_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 158, + 11, + 158, + 28, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _d7_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("plafond_II_d521_3"),0]], + _eh_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 157, + 11, + 157, + 27, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _d8_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 157, + 11, + 157, + 27, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ei_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("plafond_I_d521_3"),0]], + _ep_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 137, + 11, + 137, + 34, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ej_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 137, + 11, + 137, + 34, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eq_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_compl\xc3\xa9ment"),0]], + _eC_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_forfaitaire"),0]], + _eF_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 117, + 11, + 117, + 64, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eD_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 117, + 11, + 117, + 64, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eG_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_initial_base_quatri\xc3\xa8me_enfant_et_plus_mayotte"), + 0]], + _fc_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 116, + 11, + 116, + 56, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _eH_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 116, + 11, + 116, + 56, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fd_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_initial_base_troisi\xc3\xa8me_enfant_mayotte"), + 0]], + _fg_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 110, + 11, + 110, + 31, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fe_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 110, + 11, + 110, + 31, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fh_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("nombre_total_enfants"),0]], + _fo_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 109, + 11, + 109, + 31, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fi_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 109, + 11, + 109, + 31, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fp_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("nombre_moyen_enfants"),0]], + _f5_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 105, + 11, + 105, + 46, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _fq_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 105, + 11, + 105, + 46, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _f6_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant_initial_base_premier_enfant"),0]], + _gf_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 103, + 11, + 103, + 28, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _f7_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 103, + 11, + 103, + 28, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gg_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_base"),0]], + _gA_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], + _gJ_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"),0]], + _gR_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 122, + 11, + 122, + 47, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gK_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 122, + 11, + 122, + 47, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gS_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("montant_vers\xc3\xa9_forfaitaire_par_enfant"), + 0]], + _g0_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 107, + 11, + 107, + 56, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _gT_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 107, + 11, + 107, + 56, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _g1_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_initial_base_troisi\xc3\xa8me_enfant_et_plus"), + 0]], + _hG_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 106, + 11, + 106, + 47, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _g2_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 106, + 11, + 106, + 47, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hH_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("montant_initial_base_deuxi\xc3\xa8me_enfant"), + 0]], + _hK_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 108, + 11, + 108, + 38, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hI_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 108, + 11, + 108, + 38, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _hL_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("rapport_enfants_total_moyen"),0]], + _ia_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), + 0]], + _ih_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 123, + 11, + 123, + 36, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ib_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 123, + 11, + 123, + 36, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ii_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant_vers\xc3\xa9_forfaitaire"),0]], + _ir_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 104, + 11, + 104, + 31, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ij_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 104, + 11, + 104, + 31, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _is_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant_initial_base"),0]], + _iN_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant_initial_majoration"),0]], + _iV_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 142, + 11, + 142, + 52, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iO_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 142, + 11, + 142, + 52, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iW_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_forfaitaire"), + 0]], + _iZ_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 111, + 11, + 111, + 43, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _iX_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 111, + 11, + 111, + 43, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _i0_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant_avec_garde_altern\xc3\xa9e_base"),0]], + _ja_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_avec_garde_altern\xc3\xa9e_majoration"), + 0]], + _jd_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 112, + 11, + 112, + 29, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _jb_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 112, + 11, + 112, + 29, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _je_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant_vers\xc3\xa9_base"),0]], + _jl_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 134, + 11, + 134, + 35, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _jf_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 134, + 11, + 134, + 35, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _jm_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant_vers\xc3\xa9_majoration"),0]], + _jp_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 138, + 11, + 138, + 58, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _jn_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 138, + 11, + 138, + 58, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _jq_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_base_compl\xc3\xa9ment_pour_base_et_majoration"), + 0]], + _jx_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 141, + 11, + 141, + 59, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _jr_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), + 141, + 11, + 141, + 59, + [0, + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _jy_= + [0, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0, + caml_string_of_jsbytes + ("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_base_et_majoration"), + 0]], + _jB_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 100, 12, 100, 25, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _jz_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _jz_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 100, 12, 100, 25, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _jC_ = [0, cst_AllocationsFamiliales$0, [0, cst_montant_vers$0, 0]], - _jD_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _jC_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes("AllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant_vers\xc3\xa9"),0]], + _jD_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 231, 5, 235, 6, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _jE_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _jE_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 231, 5, 235, 6, [0, - cst_Article_L521_2, + caml_string_of_jsbytes("Article L521-2"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cp_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cp_= [0, - "examples/allocations_familiales/autres_codes.catala_fr", + caml_string_of_jsbytes + ("examples/allocations_familiales/autres_codes.catala_fr"), 24, 5, 24, 63, [0, - "Article L821-3", + caml_string_of_jsbytes("Article L821-3"), [0, - "Sous-section 1 : Aides personnelles au logement", + caml_string_of_jsbytes + ("Sous-section 1 : Aides personnelles au logement"), [0, - "Section 2 : R\xc3\xa8gles de non-cumul", + caml_string_of_jsbytes("Section 2 : R\xc3\xa8gles de non-cumul"), [0, - "Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux", + caml_string_of_jsbytes + ("Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux"), [0, - "Titre II : Dispositions communes aux aides personnelles au logement", + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), [0, - "Livre VIII : Aides personnelles au logement", + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), [0, - cst_Partie_l_gislative, - [0, "Code de la construction et de l'habitation", 0]]]]]]]]], - _cq_ = + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _cq_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 57, 12, 57, 24, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cl_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cl_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 60, 5, 62, 62, [0, - cst_Article_L512_3, + caml_string_of_jsbytes("Article L512-3"), [0, - cst_Chapitre_2_Champ_d_applica, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), [0, - cst_Titre_1_Champ_d_applicatio, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cm_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cm_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 57, 12, 57, 24, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ck_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ck_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 49, 5, 50, 50, [0, - cst_Article_L512_3, + caml_string_of_jsbytes("Article L512-3"), [0, - cst_Chapitre_2_Champ_d_applica, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), [0, - cst_Titre_1_Champ_d_applicatio, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cn_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cn_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 57, 12, 57, 24, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _co_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _co_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 57, 12, 57, 24, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cr_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cr_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 57, 12, 57, 24, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cj_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cj_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 57, 12, 57, 24, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cs_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cs_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 57, 12, 57, 24, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ci_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ci_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 57, 12, 57, 24, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _ce_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _ce_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 68, 5, 71, 56, [0, - cst_Article_L512_3, + caml_string_of_jsbytes("Article L512-3"), [0, - cst_Chapitre_2_Champ_d_applica, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), [0, - cst_Titre_1_Champ_d_applicatio, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _cf_ = + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _cf_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 58, 12, 58, 31, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cd_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cd_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 58, 12, 58, 31, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cg_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cg_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 58, 12, 58, 31, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cc_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cc_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 58, 12, 58, 31, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _b__ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _b__= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 215, 18, 215, 41, [0, - "Article R755-0-2", + caml_string_of_jsbytes("Article R755-0-2"), [0, - cst_Chapitre_5_Prestations_fam, + caml_string_of_jsbytes + ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Titre_5_D_partements_d_out, + caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), [0, - cst_Livre_7_R_gimes_divers_Dis, + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_169$0 = cst_169$1, - cst_0_55$0 = cst_0_55$1, - _b$_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _b$_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 59, 11, 59, 27, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _b9_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _b9_= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 31, 14, 31, 30, [0, - cst_Article_R512_2, + caml_string_of_jsbytes("Article R512-2"), [0, - cst_Chapitre_2_Champ_d_applica$0, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), [0, - cst_Titre_1_Champ_d_applicatio, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_169 = cst_169$1, - cst_0_55 = cst_0_55$1, - _bY_ = [5, 0], - _bZ_ = [4, 0], - _b0_ = [3, 0], - _b1_ = [2, 0], - _b2_ = [1, 0], - _b3_ = [0, 0], - _b4_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _bY_=[5,0], + _bZ_=[4,0], + _b0_=[3,0], + _b1_=[2,0], + _b2_=[1,0], + _b3_=[0,0], + _b4_= [0, - cst_examples_allocations_famil$4, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_L.catala_fr"), 357, 5, 362, 30, [0, - "Article L751-1", + caml_string_of_jsbytes("Article L751-1"), [0, - "Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", + caml_string_of_jsbytes + ("Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), [0, - cst_Titre_5_Dispositions_parti, + caml_string_of_jsbytes + ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), [0, - cst_Livre_7_R_gimes_divers_Dis, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _b5_ = + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _b5_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 61, 12, 61, 35, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bX_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bX_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 61, 12, 61, 35, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bR_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bR_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 68, 14, 68, 28, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bN_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bN_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 69, 14, 69, 32, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bJ_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bJ_= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 21, 14, 21, 26, [0, - cst_Article_R512_2, + caml_string_of_jsbytes("Article R512-2"), [0, - cst_Chapitre_2_Champ_d_applica$0, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), [0, - cst_Titre_1_Champ_d_applicatio, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _bK_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _bK_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 60, 12, 60, 24, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bI_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bI_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 60, 12, 60, 24, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bL_ = [0, cst_PrestationsFamiliales, [0, cst_ge_l512_3_2$0, 0]], - _bO_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bL_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"),0]], + _bO_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 69, 14, 69, 32, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bP_ = [0, cst_PrestationsFamiliales, [0, "smic.date_courante", 0]], - _bM_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bP_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("smic.date_courante"),0]], + _bM_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 69, 14, 69, 32, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bS_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bS_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 68, 14, 68, 28, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bT_ = [0, cst_PrestationsFamiliales, [0, "smic.r\xc3\xa9sidence", 0]], - _bQ_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bT_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("smic.r\xc3\xa9sidence"),0]], + _bQ_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 68, 14, 68, 28, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bU_ = [0, cst_PrestationsFamiliales, [0, cst_smic, [0, cst_Smic, 0]]], - _bV_ = [0, cst_PrestationsFamiliales, [0, cst_smic, [0, cst_Smic, 0]]], - _b6_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bU_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], + _bV_= + [0, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], + _b6_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 61, 12, 61, 35, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _bW_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _bW_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 61, 12, 61, 35, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _b7_ = - [0, cst_PrestationsFamiliales, [0, cst_r_gime_outre_mer_l751_1$0, 0]], - _ca_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _b7_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"),0]], + _ca_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 59, 11, 59, 27, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _b8_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _b8_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 59, 11, 59, 27, [0, - cst_Prestations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _cb_ = [0, cst_PrestationsFamiliales, [0, "plafond_l512_3_2", 0]], - _ch_ = [0, cst_PrestationsFamiliales, [0, cst_conditions_hors_ge$0, 0]], - _ct_ = [0, cst_PrestationsFamiliales, [0, cst_droit_ouvert$0, 0]], - _bC_ = + caml_string_of_jsbytes("Prestations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _cb_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("plafond_l512_3_2"),0]], + _ch_= + [0, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], + _ct_= + [0, + caml_string_of_jsbytes("PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _bC_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 32, 5, 33, 33, [0, - "Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole", - [0, cst_Montant_de_la_base_mensuel, 0]]], - cst_41316 = "41316", - _bD_ = + caml_string_of_jsbytes + ("Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole"), + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]]], + _bD_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 6, 12, 6, 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _bA_ = + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _bA_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 52, 5, 53, 33, [0, - "Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", - [0, cst_Montant_de_la_base_mensuel, 0]]], - cst_41440 = "41440", - _bB_ = + caml_string_of_jsbytes + ("Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]]], + _bB_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 6, 12, 6, 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _by_ = + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _by_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 68, 5, 69, 33, [0, - "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", - [0, cst_Montant_de_la_base_mensuel, 0]]], - cst_41481 = "41481", - _bz_ = + caml_string_of_jsbytes + ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]]], + _bz_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 6, 12, 6, 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _bw_ = + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _bw_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 86, 5, 86, 34, [0, - "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", - [0, cst_Montant_de_la_base_mensuel, 0]]], - cst_42228 = "42228", - _bx_ = + caml_string_of_jsbytes + ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]]], + _bx_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 6, 12, 6, 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _bE_ = + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _bE_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 6, 12, 6, 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _bv_ = + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _bv_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 6, 12, 6, 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _bF_ = [0, cst_BaseMensuelleAllocationsFa, [0, cst_montant$0, 0]], - _bG_ = + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _bF_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant"),0]], + _bG_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 10, 13, 10, 42, - [0, cst_Montant_de_la_base_mensuel, 0]], - _bH_ = + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _bH_= [0, - cst_examples_allocations_famil$5, + caml_string_of_jsbytes + ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), 10, 13, 10, 42, - [0, cst_Montant_de_la_base_mensuel, 0]], - _bh_ = [7, 0], - _bi_ = [5, 0], - _bj_ = [4, 0], - _bk_ = [3, 0], - _bl_ = [2, 0], - _bm_ = [1, 0], - _bn_ = [0, 0], - _bo_ = [6, 0], - _bp_ = + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _bh_=[7,0], + _bi_=[5,0], + _bj_=[4,0], + _bk_=[3,0], + _bl_=[2,0], + _bm_=[1,0], + _bn_=[0,0], + _bo_=[6,0], + _bp_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 34, 5, 43, 6, [0, - cst_Article_1, + caml_string_of_jsbytes("Article 1"), [0, - cst_D_cret_n_2018_1173_du_19_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1003 = "1003", - _bq_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _bq_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _be_ = [8, 0], - _bf_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _be_=[8,0], + _bf_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 52, 5, 54, 6, [0, - cst_Article_1, + caml_string_of_jsbytes("Article 1"), [0, - cst_D_cret_n_2018_1173_du_19_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_757 = "757", - _bg_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _bg_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _a6_ = [7, 0], - _a7_ = [5, 0], - _a8_ = [4, 0], - _a9_ = [3, 0], - _a__ = [2, 0], - _a$_ = [1, 0], - _ba_ = [0, 0], - _bb_ = [6, 0], - _bc_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _a6_=[7,0], + _a7_=[5,0], + _a8_=[4,0], + _a9_=[3,0], + _a__=[2,0], + _a$_=[1,0], + _ba_=[0,0], + _bb_=[6,0], + _bc_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 73, 5, 82, 6, [0, - cst_Article_1, + caml_string_of_jsbytes("Article 1"), [0, - cst_D_cret_n_2019_1387_du_18_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1015 = "1015", - _bd_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _bd_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _a3_ = [8, 0], - _a4_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _a3_=[8,0], + _a4_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 91, 5, 93, 6, [0, - cst_Article_1, + caml_string_of_jsbytes("Article 1"), [0, - cst_D_cret_n_2019_1387_du_18_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_766 = "766", - _a5_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _a5_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _aT_ = [7, 0], - _aU_ = [5, 0], - _aV_ = [4, 0], - _aW_ = [3, 0], - _aX_ = [2, 0], - _aY_ = [1, 0], - _aZ_ = [0, 0], - _a0_ = [6, 0], - _a1_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _aT_=[7,0], + _aU_=[5,0], + _aV_=[4,0], + _aW_=[3,0], + _aX_=[2,0], + _aY_=[1,0], + _aZ_=[0,0], + _a0_=[6,0], + _a1_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 112, 5, 121, 6, [0, - cst_Article_1, + caml_string_of_jsbytes("Article 1"), [0, - cst_D_cret_n_2020_1598_du_16_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1025 = "1025", - _a2_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _a2_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _aQ_ = [8, 0], - _aR_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _aQ_=[8,0], + _aR_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 130, 5, 132, 6, [0, - cst_Article_1, + caml_string_of_jsbytes("Article 1"), [0, - cst_D_cret_n_2020_1598_du_16_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_774 = "774", - _aS_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _aS_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _aG_ = [7, 0], - _aH_ = [5, 0], - _aI_ = [4, 0], - _aJ_ = [3, 0], - _aK_ = [2, 0], - _aL_ = [1, 0], - _aM_ = [0, 0], - _aN_ = [6, 0], - _aO_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _aG_=[7,0], + _aH_=[5,0], + _aI_=[4,0], + _aJ_=[3,0], + _aK_=[2,0], + _aL_=[1,0], + _aM_=[0,0], + _aN_=[6,0], + _aO_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 151, 5, 160, 6, [0, - cst_Article_1, + caml_string_of_jsbytes("Article 1"), [0, - cst_D_cret_n_2021_1741_du_22_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1057 = "1057", - _aP_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _aP_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _aD_ = [8, 0], - _aE_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _aD_=[8,0], + _aE_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 170, 5, 172, 6, [0, - cst_Article_1, + caml_string_of_jsbytes("Article 1"), [0, - cst_D_cret_n_2021_1741_du_22_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_798 = "798", - _aF_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _aF_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _at_ = [7, 0], - _au_ = [5, 0], - _av_ = [4, 0], - _aw_ = [3, 0], - _ax_ = [2, 0], - _ay_ = [1, 0], - _az_ = [0, 0], - _aA_ = [6, 0], - _aB_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _at_=[7,0], + _au_=[5,0], + _av_=[4,0], + _aw_=[3,0], + _ax_=[2,0], + _ay_=[1,0], + _az_=[0,0], + _aA_=[6,0], + _aB_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 191, 5, 200, 6, [0, - cst_Article_2, + caml_string_of_jsbytes("Article 2"), [0, - cst_Arr_t_du_19_avril_2022_rel, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1085 = "1085", - _aC_ = + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _aC_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _aq_ = [8, 0], - _ar_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _aq_=[8,0], + _ar_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 209, 5, 211, 6, [0, - cst_Article_2, + caml_string_of_jsbytes("Article 2"), [0, - cst_Arr_t_du_19_avril_2022_rel, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_819 = "819", - _as_ = + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _as_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _ag_ = [7, 0], - _ah_ = [5, 0], - _ai_ = [4, 0], - _aj_ = [3, 0], - _ak_ = [2, 0], - _al_ = [1, 0], - _am_ = [0, 0], - _an_ = [6, 0], - _ao_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _ag_=[7,0], + _ah_=[5,0], + _ai_=[4,0], + _aj_=[3,0], + _ak_=[2,0], + _al_=[1,0], + _am_=[0,0], + _an_=[6,0], + _ao_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 230, 5, 239, 6, [0, - cst_Article_2, + caml_string_of_jsbytes("Article 2"), [0, - cst_Arr_t_du_29_juillet_2022_r, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1107 = "1107", - _ap_ = + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _ap_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _ad_ = [8, 0], - _ae_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _ad_=[8,0], + _ae_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 248, 5, 250, 6, [0, - cst_Article_2, + caml_string_of_jsbytes("Article 2"), [0, - cst_Arr_t_du_29_juillet_2022_r, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_835 = "835", - _af_ = + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _af_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _V_ = [7, 0], - _W_ = [5, 0], - _X_ = [4, 0], - _Y_ = [3, 0], - _Z_ = [2, 0], - ___ = [1, 0], - _$_ = [0, 0], - _aa_ = [6, 0], - _ab_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _V_=[7,0], + _W_=[5,0], + _X_=[4,0], + _Y_=[3,0], + _Z_=[2,0], + ___=[1,0], + _$_=[0,0], + _aa_=[6,0], + _ab_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 270, 5, 279, 6, [0, - cst_Article_1, + caml_string_of_jsbytes("Article 1"), [0, - cst_D_cret_n_2022_1608_du_22_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1127 = "1127", - _ac_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _ac_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _S_ = [8, 0], - _T_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _S_=[8,0], + _T_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 288, 5, 290, 6, [0, - cst_Article_1, + caml_string_of_jsbytes("Article 1"), [0, - cst_D_cret_n_2022_1608_du_22_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_851 = "851", - _U_ = + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _U_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _br_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _br_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _R_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _R_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 11, 12, 11, 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _bs_ = [0, cst_Smic, [0, cst_brut_horaire$0, 0]], - _bt_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _bs_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes("Smic"), + [0,caml_string_of_jsbytes("brut_horaire"),0]], + _bt_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 16, 13, 16, 42, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _bu_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _bu_= [0, - cst_examples_allocations_famil$6, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/smic.catala_fr"), 16, 13, 16, 42, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _O_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _O_= [0, - cst_examples_allocations_famil$7, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), 36, 14, 36, 27, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _P_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _P_= [0, - cst_examples_allocations_famil$7, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), 33, 12, 33, 25, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _N_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _N_= [0, - cst_examples_allocations_famil$7, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), 33, 12, 33, 25, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _Q_ = [0, cst_V_rification_geSup_rieur, [0, cst_est_sup_rieur$0, 0]], - _K_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _Q_= [0, - cst_examples_allocations_famil$7, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + [0,caml_string_of_jsbytes("est_sup\xc3\xa9rieur"),0]], + _K_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), 25, 14, 25, 35, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _L_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _L_= [0, - cst_examples_allocations_famil$7, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), 22, 12, 22, 33, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _J_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _J_= [0, - cst_examples_allocations_famil$7, + caml_string_of_jsbytes + ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), 22, 12, 22, 33, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _M_ = - [0, cst_V_rification_geInf_rieurOu, [0, cst_est_inf_rieur_ou_gal$0, 0]], - _G_ = + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _M_= [0, - cst_examples_allocations_famil, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), + [0,caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"),0]], + _G_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/epilogue.catala_fr"), 12, 14, 12, 25, - [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], - _E_ = [2, 0], - cst_0 = cst_0$67, - _F_ = [1, 0], - cst_1 = "-1", - _H_ = + [0, + caml_string_of_jsbytes("R\xc3\xa8gles diverses"), + [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], + _E_=[2,0], + _F_=[1,0], + _H_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 80, 12, 80, 23, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _D_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _D_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 80, 12, 80, 23, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _I_ = [0, cst_EnfantLePlus_g, [0, cst_le_plus_g$0, 0]], - _A_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _I_= [0, - cst_examples_allocations_famil$1, + caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"), + [0,caml_string_of_jsbytes("le_plus_\xc3\xa2g\xc3\xa9"),0]], + _A_= + [0, + caml_string_of_jsbytes + ("examples/allocations_familiales/securite_sociale_R.catala_fr"), 78, 14, 78, 41, [0, - cst_Article_R521_1, + caml_string_of_jsbytes("Article R521-1"), [0, - cst_Chapitre_1er_Allocations_f, + caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), [0, - cst_Titre_2_Prestations_g_n_ra, + caml_string_of_jsbytes + ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), [0, - cst_Livre_5_Prestations_famili, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _B_ = + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _B_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 76, 12, 76, 39, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _z_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _z_= [0, - cst_examples_allocations_famil$2, + caml_string_of_jsbytes + ("examples/allocations_familiales/prologue.catala_fr"), 76, 12, 76, 39, [0, - cst_Allocations_familiales, - [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], - _C_ = + caml_string_of_jsbytes("Allocations familiales"), + [0, + caml_string_of_jsbytes("Champs d'applications"), + [0,caml_string_of_jsbytes("Prologue"),0]]]], + _C_= [0, - cst_AllocationFamilialesAvril2, - [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], - cst_i_avait_enfant_charge_avan = - "i_avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in", - cst_i_personne_charge_effectiv = - "i_personne_charge_effective_permanente_remplit_titre_I_in", - cst_i_personne_charge_effectiv$0 = - "i_personne_charge_effective_permanente_est_parent_in", - cst_i_r_sidence_in = "i_r\xc3\xa9sidence_in", - cst_i_ressources_m_nage_in = "i_ressources_m\xc3\xa9nage_in", - cst_i_enfants_in = "i_enfants_in", - cst_i_date_courante_in = "i_date_courante_in", - _y_ = [0, "InterfaceAllocationsFamiliales_in", 0], - cst_date_courante_in$4 = cst_date_courante_in$5, - _x_ = [0, "BaseMensuelleAllocationsFamiliales_in", 0], - cst_r_sidence_in$1 = cst_r_sidence_in$2, - cst_date_courante_in$3 = cst_date_courante_in$5, - _w_ = [0, "Smic_in", 0], - cst_ann_es_in$0 = cst_ann_es_in$1, - cst_date_courante_in$2 = cst_date_courante_in$5, - cst_date_naissance_in$0 = cst_date_naissance_in$1, - _v_ = [0, "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in", 0], - cst_ann_es_in = cst_ann_es_in$1, - cst_date_courante_in$1 = cst_date_courante_in$5, - cst_date_naissance_in = cst_date_naissance_in$1, - _u_ = + caml_string_of_jsbytes("AllocationFamilialesAvril2008"), + [0, + caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), + 0]], + _y_=[0,caml_string_of_jsbytes("InterfaceAllocationsFamiliales_in"),0], + _x_=[0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales_in"),0], + _w_=[0,caml_string_of_jsbytes("Smic_in"),0], + _v_= [0, - "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in", + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in"), 0], - cst_avait_enfant_charge_avant_ = - "avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in", - cst_enfants_charge_in = "enfants_\xc3\xa0_charge_in", - cst_date_courante_in$0 = cst_date_courante_in$5, - cst_r_sidence_in$0 = cst_r_sidence_in$2, - cst_ressources_m_nage_in = "ressources_m\xc3\xa9nage_in", - cst_personne_charge_effective_ = - "personne_charge_effective_permanente_remplit_titre_I_in", - cst_personne_charge_effective_$0 = - "personne_charge_effective_permanente_est_parent_in", - _t_ = [0, "AllocationsFamiliales_in", 0], - cst_enfants_in = "enfants_in", - _s_ = [0, "EnfantLePlus\xc3\x82g\xc3\xa9_in", 0], - cst_r_sidence_in = cst_r_sidence_in$2, - cst_prestation_courante_in = "prestation_courante_in", - cst_date_courante_in = cst_date_courante_in$5, - _r_ = [0, "PrestationsFamiliales_in", 0], - cst_r_gime_outre_mer_l751_1 = cst_r_gime_outre_mer_l751_1$0, - cst_ge_l512_3_2 = cst_ge_l512_3_2$0, - cst_conditions_hors_ge = cst_conditions_hors_ge$0, - cst_droit_ouvert = cst_droit_ouvert$0, - _q_ = [0, cst_PrestationsFamiliales, 0], - cst_le_plus_g = cst_le_plus_g$0, - _p_ = [0, cst_EnfantLePlus_g, 0], - cst_b_n_ficie_titre_personnel_ = - "b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement", - cst_a_d_j_ouvert_droit_aux_all = - "a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales", - cst_prise_en_charge = "prise_en_charge", - cst_date_de_naissance = "date_de_naissance", - cst_r_muneration_mensuelle = "r\xc3\xa9muneration_mensuelle", - cst_obligation_scolaire = "obligation_scolaire", - cst_identifiant = "identifiant", - _o_ = [0, "Enfant", 0], - cst_d_b_n_ficie_titre_personne = - "d_b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement", - cst_d_a_d_j_ouvert_droit_aux_a = - "d_a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales", - cst_d_prise_en_charge = "d_prise_en_charge", - cst_d_date_de_naissance = "d_date_de_naissance", - cst_d_r_muneration_mensuelle = "d_r\xc3\xa9muneration_mensuelle", - cst_d_identifiant = "d_identifiant", - _n_ = [0, "EnfantEntr\xc3\xa9e", 0], - cst_i_montant_vers = cst_i_montant_vers$0, - _m_ = [0, cst_InterfaceAllocationsFamili, 0], - cst_montant = cst_montant$0, - _l_ = [0, cst_BaseMensuelleAllocationsFa, 0], - cst_brut_horaire = cst_brut_horaire$0, - _k_ = [0, cst_Smic, 0], - cst_est_sup_rieur = cst_est_sup_rieur$0, - _j_ = [0, cst_V_rification_geSup_rieur, 0], - cst_est_inf_rieur_ou_gal = cst_est_inf_rieur_ou_gal$0, - _i_ = [0, cst_V_rification_geInf_rieurOu, 0], - cst_montant_vers = cst_montant_vers$0, - _h_ = [0, cst_AllocationsFamiliales$0, 0], - cst_ge_minimum_alin_a_1_l521_3 = cst_ge_minimum_alin_a_1_l521_3$0, - _g_ = [0, cst_AllocationFamilialesAvril2, 0], - cst_Guadeloupe = "Guadeloupe", - cst_Guyane = "Guyane", - cst_Martinique = "Martinique", - cst_LaR_union = "LaR\xc3\xa9union", - cst_SaintBarth_lemy = "SaintBarth\xc3\xa9lemy", - cst_SaintMartin = "SaintMartin", - cst_M_tropole = "M\xc3\xa9tropole", - cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", - cst_Mayotte = "Mayotte", - _f_ = [0, "Collectivit\xc3\xa9", 0], - cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", - cst_AllocationsFamiliales = cst_AllocationsFamiliales$0, - cst_Compl_mentFamilial = "Compl\xc3\xa9mentFamilial", - cst_AllocationLogement = "AllocationLogement", - cst_Allocation_ducationEnfantH = - "Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9", - cst_AllocationSoutienFamilial = "AllocationSoutienFamilial", - cst_AllocationRentr_eScolaire = "AllocationRentr\xc3\xa9eScolaire", - cst_AllocationJournali_rePrese = - "AllocationJournali\xc3\xa8rePresenceParentale", - _e_ = [0, "\xc3\x89l\xc3\xa9mentPrestationsFamiliales", 0], - cst_Normal = "Normal", - cst_AllocationVers_eAuxService = - "AllocationVers\xc3\xa9eAuxServicesSociaux", - _d_ = [0, "VersementAllocations", 0], - cst_Compl_te = "Compl\xc3\xa8te", - cst_Partag_e = "Partag\xc3\xa9e", - cst_Z_ro = "Z\xc3\xa9ro", - _c_ = [0, "PriseEnCompte", 0], - cst_Avant = "Avant", - cst_Pendant = "Pendant", - cst_Apr_s = "Apr\xc3\xa8s", - _b_ = [0, "SituationObligationScolaire", 0], - cst_GardeAltern_ePartageAlloca = "GardeAltern\xc3\xa9ePartageAllocations", - cst_GardeAltern_eAllocataireUn = "GardeAltern\xc3\xa9eAllocataireUnique", - cst_EffectiveEtPermanente = "EffectiveEtPermanente", - cst_ServicesSociauxAllocationV = - "ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille", - cst_ServicesSociauxAllocationV$0 = - "ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux", - _a_ = [0, "PriseEnCharge", 0]; - function embed_prise_en_charge(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _Ln_ = - [0, - cst_GardeAltern_ePartageAlloca, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _Ln_ = - [0, - cst_GardeAltern_eAllocataireUn, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _Ln_ = - [0, - cst_EffectiveEtPermanente, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - case 3: - var - x$3 = x[1], - _Ln_ = - [0, - cst_ServicesSociauxAllocationV, - caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - break; - default: - var - x$4 = x[1], - _Ln_ = - [0, - cst_ServicesSociauxAllocationV$0, - caml_call1(Runtime_ocaml_Runtime[11], x$4)]; - } - return [6, _a_, _Ln_]; - } - var SituationObligationScolaire = [0]; - function embed_situation_obligation_sco(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _Lm_ = [0, cst_Avant, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _Lm_ = [0, cst_Pendant, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _Lm_ = [0, cst_Apr_s, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _b_, _Lm_]; - } - var PriseEnCompte = [0]; - function embed_prise_en_compte(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _Ll_ = [0, cst_Compl_te, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _Ll_ = [0, cst_Partag_e, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _Ll_ = [0, cst_Z_ro, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _c_, _Ll_]; - } - var VersementAllocations = [0]; - function embed_versement_allocations(x){ - if(0 === x[0]) - var - x$0 = x[1], - _Lk_ = [0, cst_Normal, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - else - var - x$1 = x[1], - _Lk_ = - [0, - cst_AllocationVers_eAuxService, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _d_, _Lk_]; - } - var ElementPrestationsFamiliales = [0]; - function embed_element_prestations_fami(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _Lj_ = - [0, - cst_PrestationAccueilJeuneEnfa, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _Lj_ = - [0, - cst_AllocationsFamiliales, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _Lj_ = - [0, - cst_Compl_mentFamilial, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - case 3: - var - x$3 = x[1], - _Lj_ = - [0, - cst_AllocationLogement, - caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - break; - case 4: - var - x$4 = x[1], - _Lj_ = - [0, - cst_Allocation_ducationEnfantH, - caml_call1(Runtime_ocaml_Runtime[11], x$4)]; - break; - case 5: - var - x$5 = x[1], - _Lj_ = - [0, - cst_AllocationSoutienFamilial, - caml_call1(Runtime_ocaml_Runtime[11], x$5)]; - break; - case 6: - var - x$6 = x[1], - _Lj_ = - [0, - cst_AllocationRentr_eScolaire, - caml_call1(Runtime_ocaml_Runtime[11], x$6)]; - break; - default: - var - x$7 = x[1], - _Lj_ = - [0, - cst_AllocationJournali_rePrese, - caml_call1(Runtime_ocaml_Runtime[11], x$7)]; - } - return [6, _e_, _Lj_]; - } - var Collectivite = [0]; - function embed_collectivite(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _Li_ = [0, cst_Guadeloupe, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _Li_ = [0, cst_Guyane, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _Li_ = [0, cst_Martinique, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - case 3: - var - x$3 = x[1], - _Li_ = [0, cst_LaR_union, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - break; - case 4: - var - x$4 = x[1], - _Li_ = - [0, cst_SaintBarth_lemy, caml_call1(Runtime_ocaml_Runtime[11], x$4)]; - break; - case 5: - var - x$5 = x[1], - _Li_ = - [0, cst_SaintMartin, caml_call1(Runtime_ocaml_Runtime[11], x$5)]; - break; - case 6: - var - x$6 = x[1], - _Li_ = [0, cst_M_tropole, caml_call1(Runtime_ocaml_Runtime[11], x$6)]; - break; - case 7: - var - x$7 = x[1], - _Li_ = - [0, - cst_SaintPierreEtMiquelon, - caml_call1(Runtime_ocaml_Runtime[11], x$7)]; - break; - default: - var - x$8 = x[1], - _Li_ = [0, cst_Mayotte, caml_call1(Runtime_ocaml_Runtime[11], x$8)]; - } - return [6, _f_, _Li_]; - } - var AllocationFamilialesAvril2008 = [0]; - function embed_allocation_familiales_av(x){ - return [7, - _g_, - [0, - [0, - cst_ge_minimum_alin_a_1_l521_3, - caml_call1(Runtime_ocaml_Runtime[17], x[1])], - 0]]; - } - var AllocationsFamiliales = [0]; - function embed_allocations_familiales(x){ - return [7, - _h_, - [0, - [0, - cst_montant_vers, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - 0]]; - } - var VerificationAgeInferieurOuEgal = [0]; - function embed_verification_age_inferie(x){ - return [7, - _i_, - [0, - [0, - cst_est_inf_rieur_ou_gal, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - 0]]; - } - var VerificationAgeSuperieurA = [0]; - function embed_verification_age_superie(x){ - return [7, - _j_, - [0, - [0, - cst_est_sup_rieur, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - 0]]; - } - var Smic = [0]; - function embed_smic(x){ - return [7, - _k_, - [0, - [0, - cst_brut_horaire, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - 0]]; - } - var BaseMensuelleAllocationsFamili = [0]; - function embed_base_mensuelle_allocatio(x){ - return [7, - _l_, - [0, - [0, cst_montant, caml_call1(Runtime_ocaml_Runtime[13], x[1])], - 0]]; - } - var InterfaceAllocationsFamiliales = [0]; - function embed_interface_allocations_fa(x){ - return [7, - _m_, - [0, - [0, - cst_i_montant_vers, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - 0]]; - } - var EnfantEntree = [0]; - function embed_enfant_entree(x){ - var - _Ld_ = + _u_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in"), + 0], + _t_=[0,caml_string_of_jsbytes("AllocationsFamiliales_in"),0], + _s_=[0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9_in"),0], + _r_=[0,caml_string_of_jsbytes("PrestationsFamiliales_in"),0], + _q_=[0,caml_string_of_jsbytes("PrestationsFamiliales"),0], + _p_=[0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"),0], + _o_=[0,caml_string_of_jsbytes("Enfant"),0], + _n_=[0,caml_string_of_jsbytes("EnfantEntr\xc3\xa9e"),0], + _m_=[0,caml_string_of_jsbytes("InterfaceAllocationsFamiliales"),0], + _l_=[0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0], + _k_=[0,caml_string_of_jsbytes("Smic"),0], + _j_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + 0], + _i_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), + 0], + _h_=[0,caml_string_of_jsbytes("AllocationsFamiliales"),0], + _g_=[0,caml_string_of_jsbytes("AllocationFamilialesAvril2008"),0], + _f_=[0,caml_string_of_jsbytes("Collectivit\xc3\xa9"),0], + _e_= + [0, + caml_string_of_jsbytes("\xc3\x89l\xc3\xa9mentPrestationsFamiliales"), + 0], + _d_=[0,caml_string_of_jsbytes("VersementAllocations"),0], + _c_=[0,caml_string_of_jsbytes("PriseEnCompte"),0], + _b_=[0,caml_string_of_jsbytes("SituationObligationScolaire"),0], + _a_=[0,caml_string_of_jsbytes("PriseEnCharge"),0], + _kP_=[7,0], + _kQ_=[5,0], + _kR_=[4,0], + _kS_=[6,0], + _kT_=[8,0], + _kU_=[2,0], + _kV_=[3,0], + _kW_=[1,0], + _kX_=[0,0], + _kO_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'Collectivite.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'Collectivite.t'")], + _kG_=[0,0], + _kH_=[2,0], + _kI_=[1,0], + _kJ_=[5,0], + _kK_=[6,0], + _kL_=[3,0], + _kM_=[7,0], + _kN_=[4,0], + _kF_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'ElementPrestationsFamiliales.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'")], + _kD_=[0,0], + _kE_=[1,0], + _kC_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'VersementAllocations.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'VersementAllocations.t'")], + _kz_=[2,0], + _kA_=[1,0], + _kB_=[0,0], + _ky_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'PriseEnCompte.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'PriseEnCompte.t'")], + _kv_=[1,0], + _kw_=[0,0], + _kx_=[2,0], + _ku_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'SituationObligationScolaire.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'")], + _kp_=[4,0], + _kq_=[3,0], + _kr_=[0,0], + _ks_=[1,0], + _kt_=[2,0], + _ko_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'PriseEnCharge.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'")], + _acm_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/autres_sources.catala_fr"), + 283, + 14, + 283, + 25, [0, - [0, - cst_d_b_n_ficie_titre_personne, - caml_call1(Runtime_ocaml_Runtime[12], x[6])], - 0], - _Le_ = + caml_string_of_jsbytes + ("Conseil d'\xc3\x89tat, 5\xc3\xa8me - 4\xc3\xa8me chambres r\xc3\xa9unies, 21/07/2017, 398563"), + 0]], + _aci_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), [0, - [0, - cst_d_a_d_j_ouvert_droit_aux_a, - caml_call1(Runtime_ocaml_Runtime[12], x[5])], - _Ld_], - _Lf_ = [0, [0, cst_d_prise_en_charge, embed_prise_en_charge(x[4])], _Le_], - _Lg_ = + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _acj_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _ack_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), [0, - [0, - cst_d_date_de_naissance, - caml_call1(Runtime_ocaml_Runtime[16], x[3])], - _Lf_], - _Lh_ = + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _acl_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _ace_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1273, + 14, + 1273, + 63, [0, - [0, - cst_d_r_muneration_mensuelle, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _Lg_]; - return [7, - _n_, - [0, - [0, - cst_d_identifiant, - caml_call1(Runtime_ocaml_Runtime[14], x[1])], - _Lh_]]; - } - var Enfant = [0]; - function embed_enfant(x){ - var - _K9_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aca_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1304, + 14, + 1304, + 25, [0, - [0, - cst_b_n_ficie_titre_personnel_, - caml_call1(Runtime_ocaml_Runtime[12], x[7])], - 0], - _K__ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _ab6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1269, + 5, + 1269, + 70, [0, - [0, - cst_a_d_j_ouvert_droit_aux_all, - caml_call1(Runtime_ocaml_Runtime[12], x[6])], - _K9_], - _K$_ = [0, [0, cst_prise_en_charge, embed_prise_en_charge(x[5])], _K__], - _La_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _ab2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1266, + 14, + 1266, + 58, [0, - [0, - cst_date_de_naissance, - caml_call1(Runtime_ocaml_Runtime[16], x[4])], - _K$_], - _Lb_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1264, + 14, + 1264, + 54, [0, - [0, - cst_r_muneration_mensuelle, - caml_call1(Runtime_ocaml_Runtime[13], x[3])], - _La_], - _Lc_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1262, + 14, + 1262, + 51, [0, - [0, cst_obligation_scolaire, embed_situation_obligation_sco(x[2])], - _Lb_]; - return [7, - _o_, - [0, - [0, cst_identifiant, caml_call1(Runtime_ocaml_Runtime[14], x[1])], - _Lc_]]; - } - var EnfantLePlusAge = [0]; - function embed_enfant_le_plus_age(x){ - return [7, _p_, [0, [0, cst_le_plus_g, embed_enfant(x[1])], 0]]; - } - var PrestationsFamiliales = [0]; - function embed_prestations_familiales(x){ - var - _K6_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1260, + 14, + 1260, + 59, [0, - [0, - cst_r_gime_outre_mer_l751_1, - caml_call1(Runtime_ocaml_Runtime[12], x[4])], - 0], - _K7_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1258, + 14, + 1258, + 38, [0, - [0, cst_ge_l512_3_2, caml_call1(Runtime_ocaml_Runtime[17], x[3])], - _K6_], - _K8_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1256, + 14, + 1256, + 34, [0, - [0, - cst_conditions_hors_ge, - caml_call1(Runtime_ocaml_Runtime[10], x[2])], - _K7_]; - return [7, - _q_, - [0, - [0, - cst_droit_ouvert, - caml_call1(Runtime_ocaml_Runtime[10], x[1])], - _K8_]]; - } - var PrestationsFamilialesIn = [0]; - function embed_prestations_familiales_i(x){ - var - _K4_ = [0, [0, cst_r_sidence_in, embed_collectivite(x[3])], 0], - _K5_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1254, + 14, + 1254, + 31, [0, - [0, cst_prestation_courante_in, embed_element_prestations_fami(x[2])], - _K4_]; - return [7, - _r_, - [0, - [0, - cst_date_courante_in, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _K5_]]; - } - var AllocationFamilialesAvril2008I = [0]; - function embed_allocation_familiales_av$0(param){return 0;} - var EnfantLePlusAgeIn = [0]; - function embed_enfant_le_plus_age_in(x){ - return [7, - _s_, - [0, - [0, - cst_enfants_in, - caml_call2(Runtime_ocaml_Runtime[18], embed_enfant, x[1])], - 0]]; - } - var AllocationsFamilialesIn = [0]; - function embed_allocations_familiales_i(x){ - var - _KY_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aby_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1275, + 14, + 1275, + 48, [0, - [0, - cst_avait_enfant_charge_avant_, - caml_call1(Runtime_ocaml_Runtime[12], x[7])], - 0], - _KZ_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1243, + 11, + 1243, + 45, [0, - [0, - cst_enfants_charge_in, - caml_call2(Runtime_ocaml_Runtime[18], embed_enfant, x[6])], - _KY_], - _K0_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1243, + 11, + 1243, + 45, [0, - [0, - cst_date_courante_in$0, - caml_call1(Runtime_ocaml_Runtime[16], x[5])], - _KZ_], - _K1_ = [0, [0, cst_r_sidence_in$0, embed_collectivite(x[4])], _K0_], - _K2_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abA_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), [0, - [0, - cst_ressources_m_nage_in, - caml_call1(Runtime_ocaml_Runtime[13], x[3])], - _K1_], - _K3_ = + caml_string_of_jsbytes + ("m\xc3\xa9nage_sans_enfants_garde_altern\xc3\xa9e"), + 0]], + _abD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1254, + 14, + 1254, + 31, [0, - [0, - cst_personne_charge_effective_, - caml_call1(Runtime_ocaml_Runtime[12], x[2])], - _K2_]; - return [7, - _t_, - [0, - [0, - cst_personne_charge_effective_$0, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - _K3_]]; - } - var VerificationAgeInferieurOuEgal$0 = [0]; - function embed_verification_age_inferie$0(x){ - var - _KW_ = - [0, [0, cst_ann_es_in, caml_call1(Runtime_ocaml_Runtime[17], x[3])], 0], - _KX_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abE_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0,caml_string_of_jsbytes("calculette.m\xc3\xa9nage"),0]], + _abB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1254, + 14, + 1254, + 31, [0, - [0, - cst_date_courante_in$1, - caml_call1(Runtime_ocaml_Runtime[16], x[2])], - _KW_]; - return [7, - _u_, - [0, - [0, - cst_date_naissance_in, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _KX_]]; - } - var VerificationAgeSuperieurAIn = [0]; - function embed_verification_age_superie$0(x){ - var - _KU_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1256, + 14, + 1256, + 34, [0, - [0, cst_ann_es_in$0, caml_call1(Runtime_ocaml_Runtime[17], x[3])], - 0], - _KV_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abI_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0,caml_string_of_jsbytes("calculette.demandeur"),0]], + _abF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1256, + 14, + 1256, + 34, [0, - [0, - cst_date_courante_in$2, - caml_call1(Runtime_ocaml_Runtime[16], x[2])], - _KU_]; - return [7, - _v_, - [0, - [0, - cst_date_naissance_in$0, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _KV_]]; - } - var SmicIn = [0]; - function embed_smic_in(x){ - var _KT_ = [0, [0, cst_r_sidence_in$1, embed_collectivite(x[2])], 0]; - return [7, - _w_, - [0, - [0, - cst_date_courante_in$3, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _KT_]]; - } - var BaseMensuelleAllocationsFamili$0 = [0]; - function embed_base_mensuelle_allocatio$0(x){ - return [7, - _x_, - [0, - [0, - cst_date_courante_in$4, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - 0]]; - } - var InterfaceAllocationsFamiliales$0 = [0]; - function embed_interface_allocations_fa$0(x){ - var - _KN_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1258, + 14, + 1258, + 38, [0, - [0, - cst_i_avait_enfant_charge_avan, - caml_call1(Runtime_ocaml_Runtime[12], x[7])], - 0], - _KO_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abM_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0,caml_string_of_jsbytes("calculette.date_courante"),0]], + _abJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1258, + 14, + 1258, + 38, [0, - [0, - cst_i_personne_charge_effectiv, - caml_call1(Runtime_ocaml_Runtime[12], x[6])], - _KN_], - _KP_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1260, + 14, + 1260, + 59, [0, - [0, - cst_i_personne_charge_effectiv$0, - caml_call1(Runtime_ocaml_Runtime[12], x[5])], - _KO_], - _KQ_ = [0, [0, cst_i_r_sidence_in, embed_collectivite(x[4])], _KP_], - _KR_ = + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abQ_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), [0, - [0, - cst_i_ressources_m_nage_in, - caml_call1(Runtime_ocaml_Runtime[13], x[3])], - _KQ_], - _KS_ = + caml_string_of_jsbytes + ("calculette.ressources_m\xc3\xa9nage_prises_en_compte"), + 0]], + _abN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1260, + 14, + 1260, + 59, [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abR_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0, + caml_string_of_jsbytes("calculette"), + [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], + _abS_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0, + caml_string_of_jsbytes("calculette"), + [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], + _abV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1262, + 14, + 1262, + 51, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abW_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0, + caml_string_of_jsbytes + ("calculette_sans_garde_altern\xc3\xa9e.m\xc3\xa9nage"), + 0]], + _abT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1262, + 14, + 1262, + 51, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1264, + 14, + 1264, + 54, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _ab0_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0, + caml_string_of_jsbytes + ("calculette_sans_garde_altern\xc3\xa9e.demandeur"), + 0]], + _abX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1264, + 14, + 1264, + 54, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _ab3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1266, + 14, + 1266, + 58, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _ab4_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0, + caml_string_of_jsbytes + ("calculette_sans_garde_altern\xc3\xa9e.date_courante"), + 0]], + _ab1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1266, + 14, + 1266, + 58, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _ab7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1269, + 5, + 1269, + 70, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _ab8_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0, + caml_string_of_jsbytes + ("calculette_sans_garde_altern\xc3\xa9e.ressources_m\xc3\xa9nage_prises_en_compte"), + 0]], + _ab5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1269, + 5, + 1269, + 70, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _ab9_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0, + caml_string_of_jsbytes("calculette_sans_garde_altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], + _ab__= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0, + caml_string_of_jsbytes("calculette_sans_garde_altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], + _acb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1250, + 12, + 1250, + 23, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _ab$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1250, + 12, + 1250, + 23, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _acc_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], + _acf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1244, + 11, + 1244, + 60, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _acd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1244, + 11, + 1244, + 60, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _acg_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0, + caml_string_of_jsbytes + ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), + 0]], + _acn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1251, + 12, + 1251, + 23, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _ach_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1251, + 12, + 1251, + 23, + [0, + caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aco_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + [0,caml_string_of_jsbytes("aide_finale"),0]], + _abu_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1123, + 14, + 1123, + 33, + [0, + caml_string_of_jsbytes("Article L841-2"), [0, - cst_i_enfants_in, - caml_call2(Runtime_ocaml_Runtime[18], embed_enfant_entree, x[2])], - _KR_]; - return [7, - _y_, - [0, - [0, - cst_i_date_courante_in, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _KS_]]; - } - function allocation_familiales_avril200(allocation_familiales_avril200){ - try{ - var - _KJ_ = - function(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0); - }, - _KK_ = - function(param){return caml_call2(Runtime_ocaml_Runtime[29], _A_, 1);}, - _KL_ = caml_call4(Runtime_ocaml_Runtime[63], _B_, [0], _KK_, _KJ_); - } - catch(_KM_){ - var _KI_ = caml_wrap_exception(_KM_); - if(_KI_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _z_], 1); - throw caml_maybe_attach_backtrace(_KI_, 0); - } - var - age_minimum_alinea_1_l521_3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _C_, Runtime_ocaml_Runtime[17], _KL_); - return [0, age_minimum_alinea_1_l521_3]; - } - function enfant_le_plus_age(enfant_le_plus_age_in){ - var enfants = enfant_le_plus_age_in[1]; - try{ - var - _KA_ = - function(param){ - var - _KE_ = caml_call3(Runtime_ocaml_Runtime[57], 2999, 12, 31), - _KF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0), - _KG_ = - [0, - caml_call1(Runtime_ocaml_Runtime[46], cst_1), - _F_, - _KF_, - _KE_, - _E_, - 0, - 0]; - function _KH_(potentiel_plus_age_1, potentiel_plus_age_2){ - return caml_call2 - (Runtime_ocaml_Runtime[115], - potentiel_plus_age_1[4], - potentiel_plus_age_2[4]) - ? potentiel_plus_age_1 - : potentiel_plus_age_2; - } - return caml_call3(Runtime_ocaml_Runtime[88], _KH_, _KG_, enfants); - }, - _KB_ = - function(param){return caml_call2(Runtime_ocaml_Runtime[29], _G_, 1);}, - _KC_ = caml_call4(Runtime_ocaml_Runtime[63], _H_, [0], _KB_, _KA_); - } - catch(_KD_){ - var _Kz_ = caml_wrap_exception(_KD_); - if(_Kz_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _D_], 1); - throw caml_maybe_attach_backtrace(_Kz_, 0); - } - var - le_plus_age = - caml_call3(Runtime_ocaml_Runtime[28], _I_, embed_enfant, _KC_); - return [0, le_plus_age]; - } - function verification_age_inferieur_ou_(verification_age_inferieur_ou_){ - var - date_naissance = verification_age_inferieur_ou_[1], - date_courante = verification_age_inferieur_ou_[2], - annees = verification_age_inferieur_ou_[3]; - try{ - var - _Ku_ = - function(param){ - var - _Ky_ = - caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); - return caml_call2(Runtime_ocaml_Runtime[120], _Ky_, date_courante); - }, - _Kv_ = - function(param){return caml_call2(Runtime_ocaml_Runtime[29], _K_, 1);}, - _Kw_ = caml_call4(Runtime_ocaml_Runtime[63], _L_, [0], _Kv_, _Ku_); - } - catch(_Kx_){ - var _Kt_ = caml_wrap_exception(_Kx_); - if(_Kt_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _J_], 1); - throw caml_maybe_attach_backtrace(_Kt_, 0); - } - var - est_inferieur_ou_egal = - caml_call3 - (Runtime_ocaml_Runtime[28], _M_, Runtime_ocaml_Runtime[12], _Kw_); - return [0, est_inferieur_ou_egal]; - } - function verification_age_superieur_a(verification_age_superieur_a_i){ - var - date_naissance = verification_age_superieur_a_i[1], - date_courante = verification_age_superieur_a_i[2], - annees = verification_age_superieur_a_i[3]; - try{ - var - _Ko_ = - function(param){ - var - _Ks_ = - caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); - return caml_call2(Runtime_ocaml_Runtime[125], _Ks_, date_courante); - }, - _Kp_ = - function(param){return caml_call2(Runtime_ocaml_Runtime[29], _O_, 1);}, - _Kq_ = caml_call4(Runtime_ocaml_Runtime[63], _P_, [0], _Kp_, _Ko_); - } - catch(_Kr_){ - var _Kn_ = caml_wrap_exception(_Kr_); - if(_Kn_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _N_], 1); - throw caml_maybe_attach_backtrace(_Kn_, 0); - } - var - est_superieur = - caml_call3 - (Runtime_ocaml_Runtime[28], _Q_, Runtime_ocaml_Runtime[12], _Kq_); - return [0, est_superieur]; - } - function smic(smic_in){ - var date_courante = smic_in[1], residence = smic_in[2]; - try{ - var - _GD_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _GE_ = function(param){return 0;}, - _GF_ = - function(param){ - function _Kh_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_851); - } - function _Ki_(param){ - var - _Kj_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _S_), - _Kk_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _Kl_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Kk_), - _Km_ = caml_call2(Runtime_ocaml_Runtime[83], _Kl_, _Kj_); - return caml_call2(Runtime_ocaml_Runtime[29], _T_, _Km_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _U_, [0], _Ki_, _Kh_); - }, - _GG_ = - function(param){ - function _JZ_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1127); - } - function _J0_(param){ - var - _J1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _V_), - _J2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _W_), - _J3_ = caml_call2(Runtime_ocaml_Runtime[84], _J2_, _J1_), - _J4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _X_), - _J5_ = caml_call2(Runtime_ocaml_Runtime[84], _J4_, _J3_), - _J6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _Y_), - _J7_ = caml_call2(Runtime_ocaml_Runtime[84], _J6_, _J5_), - _J8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _Z_), - _J9_ = caml_call2(Runtime_ocaml_Runtime[84], _J8_, _J7_), - _J__ = caml_call2(Runtime_ocaml_Runtime[86], residence, ___), - _J$_ = caml_call2(Runtime_ocaml_Runtime[84], _J__, _J9_), - _Ka_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _$_), - _Kb_ = caml_call2(Runtime_ocaml_Runtime[84], _Ka_, _J$_), - _Kc_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aa_), - _Kd_ = caml_call2(Runtime_ocaml_Runtime[84], _Kc_, _Kb_), - _Ke_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _Kf_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ke_), - _Kg_ = caml_call2(Runtime_ocaml_Runtime[83], _Kf_, _Kd_); - return caml_call2(Runtime_ocaml_Runtime[29], _ab_, _Kg_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _ac_, [0], _J0_, _JZ_); - }, - _GH_ = - function(param){ - function _JQ_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_835); - } - function _JR_(param){ - var - _JS_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ad_), - _JT_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), - _JU_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _JT_), - _JV_ = caml_call2(Runtime_ocaml_Runtime[83], _JU_, _JS_), - _JW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), - _JX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _JW_), - _JY_ = caml_call2(Runtime_ocaml_Runtime[83], _JX_, _JV_); - return caml_call2(Runtime_ocaml_Runtime[29], _ae_, _JY_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _af_, [0], _JR_, _JQ_); - }, - _GI_ = - function(param){ - function _Jt_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1107); - } - function _Ju_(param){ - var - _Jv_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ag_), - _Jw_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ah_), - _Jx_ = caml_call2(Runtime_ocaml_Runtime[84], _Jw_, _Jv_), - _Jy_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ai_), - _Jz_ = caml_call2(Runtime_ocaml_Runtime[84], _Jy_, _Jx_), - _JA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aj_), - _JB_ = caml_call2(Runtime_ocaml_Runtime[84], _JA_, _Jz_), - _JC_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ak_), - _JD_ = caml_call2(Runtime_ocaml_Runtime[84], _JC_, _JB_), - _JE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _al_), - _JF_ = caml_call2(Runtime_ocaml_Runtime[84], _JE_, _JD_), - _JG_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _am_), - _JH_ = caml_call2(Runtime_ocaml_Runtime[84], _JG_, _JF_), - _JI_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _an_), - _JJ_ = caml_call2(Runtime_ocaml_Runtime[84], _JI_, _JH_), - _JK_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), - _JL_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _JK_), - _JM_ = caml_call2(Runtime_ocaml_Runtime[83], _JL_, _JJ_), - _JN_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), - _JO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _JN_), - _JP_ = caml_call2(Runtime_ocaml_Runtime[83], _JO_, _JM_); - return caml_call2(Runtime_ocaml_Runtime[29], _ao_, _JP_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _ap_, [0], _Ju_, _Jt_); - }, - _GJ_ = - function(param){ - function _Jk_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_819); - } - function _Jl_(param){ - var - _Jm_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aq_), - _Jn_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), - _Jo_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Jn_), - _Jp_ = caml_call2(Runtime_ocaml_Runtime[83], _Jo_, _Jm_), - _Jq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), - _Jr_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Jq_), - _Js_ = caml_call2(Runtime_ocaml_Runtime[83], _Jr_, _Jp_); - return caml_call2(Runtime_ocaml_Runtime[29], _ar_, _Js_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _as_, [0], _Jl_, _Jk_); - }, - _GK_ = - function(param){ - function _IZ_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1085); - } - function _I0_(param){ - var - _I1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _at_), - _I2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _au_), - _I3_ = caml_call2(Runtime_ocaml_Runtime[84], _I2_, _I1_), - _I4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _av_), - _I5_ = caml_call2(Runtime_ocaml_Runtime[84], _I4_, _I3_), - _I6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aw_), - _I7_ = caml_call2(Runtime_ocaml_Runtime[84], _I6_, _I5_), - _I8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ax_), - _I9_ = caml_call2(Runtime_ocaml_Runtime[84], _I8_, _I7_), - _I__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ay_), - _I$_ = caml_call2(Runtime_ocaml_Runtime[84], _I__, _I9_), - _Ja_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _az_), - _Jb_ = caml_call2(Runtime_ocaml_Runtime[84], _Ja_, _I$_), - _Jc_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aA_), - _Jd_ = caml_call2(Runtime_ocaml_Runtime[84], _Jc_, _Jb_), - _Je_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), - _Jf_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Je_), - _Jg_ = caml_call2(Runtime_ocaml_Runtime[83], _Jf_, _Jd_), - _Jh_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), - _Ji_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Jh_), - _Jj_ = caml_call2(Runtime_ocaml_Runtime[83], _Ji_, _Jg_); - return caml_call2(Runtime_ocaml_Runtime[29], _aB_, _Jj_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _aC_, [0], _I0_, _IZ_); - }, - _GL_ = - function(param){ - function _IQ_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_798); - } - function _IR_(param){ - var - _IS_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aD_), - _IT_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), - _IU_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _IT_), - _IV_ = caml_call2(Runtime_ocaml_Runtime[83], _IU_, _IS_), - _IW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _IX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _IW_), - _IY_ = caml_call2(Runtime_ocaml_Runtime[83], _IX_, _IV_); - return caml_call2(Runtime_ocaml_Runtime[29], _aE_, _IY_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _aF_, [0], _IR_, _IQ_); - }, - _GM_ = - function(param){ - function _It_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1057); - } - function _Iu_(param){ - var - _Iv_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aG_), - _Iw_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aH_), - _Ix_ = caml_call2(Runtime_ocaml_Runtime[84], _Iw_, _Iv_), - _Iy_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aI_), - _Iz_ = caml_call2(Runtime_ocaml_Runtime[84], _Iy_, _Ix_), - _IA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aJ_), - _IB_ = caml_call2(Runtime_ocaml_Runtime[84], _IA_, _Iz_), - _IC_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aK_), - _ID_ = caml_call2(Runtime_ocaml_Runtime[84], _IC_, _IB_), - _IE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aL_), - _IF_ = caml_call2(Runtime_ocaml_Runtime[84], _IE_, _ID_), - _IG_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aM_), - _IH_ = caml_call2(Runtime_ocaml_Runtime[84], _IG_, _IF_), - _II_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aN_), - _IJ_ = caml_call2(Runtime_ocaml_Runtime[84], _II_, _IH_), - _IK_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), - _IL_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _IK_), - _IM_ = caml_call2(Runtime_ocaml_Runtime[83], _IL_, _IJ_), - _IN_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _IO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _IN_), - _IP_ = caml_call2(Runtime_ocaml_Runtime[83], _IO_, _IM_); - return caml_call2(Runtime_ocaml_Runtime[29], _aO_, _IP_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _aP_, [0], _Iu_, _It_); - }, - _GN_ = - function(param){ - function _Ik_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_774); - } - function _Il_(param){ - var - _Im_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aQ_), - _In_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), - _Io_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _In_), - _Ip_ = caml_call2(Runtime_ocaml_Runtime[83], _Io_, _Im_), - _Iq_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _Ir_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Iq_), - _Is_ = caml_call2(Runtime_ocaml_Runtime[83], _Ir_, _Ip_); - return caml_call2(Runtime_ocaml_Runtime[29], _aR_, _Is_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _aS_, [0], _Il_, _Ik_); - }, - _GO_ = - function(param){ - function _HZ_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1025); - } - function _H0_(param){ - var - _H1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aT_), - _H2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aU_), - _H3_ = caml_call2(Runtime_ocaml_Runtime[84], _H2_, _H1_), - _H4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aV_), - _H5_ = caml_call2(Runtime_ocaml_Runtime[84], _H4_, _H3_), - _H6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aW_), - _H7_ = caml_call2(Runtime_ocaml_Runtime[84], _H6_, _H5_), - _H8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aX_), - _H9_ = caml_call2(Runtime_ocaml_Runtime[84], _H8_, _H7_), - _H__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aY_), - _H$_ = caml_call2(Runtime_ocaml_Runtime[84], _H__, _H9_), - _Ia_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aZ_), - _Ib_ = caml_call2(Runtime_ocaml_Runtime[84], _Ia_, _H$_), - _Ic_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a0_), - _Id_ = caml_call2(Runtime_ocaml_Runtime[84], _Ic_, _Ib_), - _Ie_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), - _If_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Ie_), - _Ig_ = caml_call2(Runtime_ocaml_Runtime[83], _If_, _Id_), - _Ih_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _Ii_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ih_), - _Ij_ = caml_call2(Runtime_ocaml_Runtime[83], _Ii_, _Ig_); - return caml_call2(Runtime_ocaml_Runtime[29], _a1_, _Ij_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _a2_, [0], _H0_, _HZ_); - }, - _GP_ = - function(param){ - function _HQ_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_766); - } - function _HR_(param){ - var - _HS_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a3_), - _HT_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), - _HU_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _HT_), - _HV_ = caml_call2(Runtime_ocaml_Runtime[83], _HU_, _HS_), - _HW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _HX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _HW_), - _HY_ = caml_call2(Runtime_ocaml_Runtime[83], _HX_, _HV_); - return caml_call2(Runtime_ocaml_Runtime[29], _a4_, _HY_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _a5_, [0], _HR_, _HQ_); - }, - _GQ_ = - function(param){ - function _Ht_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1015); - } - function _Hu_(param){ - var - _Hv_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a6_), - _Hw_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a7_), - _Hx_ = caml_call2(Runtime_ocaml_Runtime[84], _Hw_, _Hv_), - _Hy_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a8_), - _Hz_ = caml_call2(Runtime_ocaml_Runtime[84], _Hy_, _Hx_), - _HA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a9_), - _HB_ = caml_call2(Runtime_ocaml_Runtime[84], _HA_, _Hz_), - _HC_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a__), - _HD_ = caml_call2(Runtime_ocaml_Runtime[84], _HC_, _HB_), - _HE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a$_), - _HF_ = caml_call2(Runtime_ocaml_Runtime[84], _HE_, _HD_), - _HG_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ba_), - _HH_ = caml_call2(Runtime_ocaml_Runtime[84], _HG_, _HF_), - _HI_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bb_), - _HJ_ = caml_call2(Runtime_ocaml_Runtime[84], _HI_, _HH_), - _HK_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), - _HL_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _HK_), - _HM_ = caml_call2(Runtime_ocaml_Runtime[83], _HL_, _HJ_), - _HN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _HO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _HN_), - _HP_ = caml_call2(Runtime_ocaml_Runtime[83], _HO_, _HM_); - return caml_call2(Runtime_ocaml_Runtime[29], _bc_, _HP_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _bd_, [0], _Hu_, _Ht_); - }, - _GR_ = - function(param){ - function _Hk_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_757); - } - function _Hl_(param){ - var - _Hm_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _be_), - _Hn_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), - _Ho_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Hn_), - _Hp_ = caml_call2(Runtime_ocaml_Runtime[83], _Ho_, _Hm_), - _Hq_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _Hr_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Hq_), - _Hs_ = caml_call2(Runtime_ocaml_Runtime[83], _Hr_, _Hp_); - return caml_call2(Runtime_ocaml_Runtime[29], _bf_, _Hs_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _bg_, [0], _Hl_, _Hk_); - }, - _GS_ = - [0, - function(param){ - function _GZ_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1003); - } - function _G0_(param){ - var - _G1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bh_), - _G2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bi_), - _G3_ = caml_call2(Runtime_ocaml_Runtime[84], _G2_, _G1_), - _G4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bj_), - _G5_ = caml_call2(Runtime_ocaml_Runtime[84], _G4_, _G3_), - _G6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bk_), - _G7_ = caml_call2(Runtime_ocaml_Runtime[84], _G6_, _G5_), - _G8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bl_), - _G9_ = caml_call2(Runtime_ocaml_Runtime[84], _G8_, _G7_), - _G__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bm_), - _G$_ = caml_call2(Runtime_ocaml_Runtime[84], _G__, _G9_), - _Ha_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bn_), - _Hb_ = caml_call2(Runtime_ocaml_Runtime[84], _Ha_, _G$_), - _Hc_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bo_), - _Hd_ = caml_call2(Runtime_ocaml_Runtime[84], _Hc_, _Hb_), - _He_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), - _Hf_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _He_), - _Hg_ = caml_call2(Runtime_ocaml_Runtime[83], _Hf_, _Hd_), - _Hh_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _Hi_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Hh_), - _Hj_ = caml_call2(Runtime_ocaml_Runtime[83], _Hi_, _Hg_); - return caml_call2(Runtime_ocaml_Runtime[29], _bp_, _Hj_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _bq_, [0], _G0_, _GZ_); - }, - _GR_, - _GQ_, - _GP_, - _GO_, - _GN_, - _GM_, - _GL_, - _GK_, - _GJ_, - _GI_, - _GH_, - _GG_, - _GF_], - _GT_ = caml_call4(Runtime_ocaml_Runtime[63], _br_, _GS_, _GE_, _GD_); - } - catch(_GY_){ - var _GC_ = caml_wrap_exception(_GY_); - if(_GC_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _R_], 1); - throw caml_maybe_attach_backtrace(_GC_, 0); - } - var - brut_horaire = - caml_call3 - (Runtime_ocaml_Runtime[28], _bs_, Runtime_ocaml_Runtime[13], _GT_); - try{ - var - _GV_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _GW_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _GV_); - } - catch(_GX_){ - var _GU_ = caml_wrap_exception(_GX_); - if(_GU_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bt_], 1); - throw caml_maybe_attach_backtrace(_GU_, 0); - } - if(_GW_) return [0, brut_horaire]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bu_], 1); - } - function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ - var date_courante = base_mensuelle_allocations_fam[1]; - try{ - var - _F3_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _F4_ = function(param){return 0;}, - _F5_ = - function(param){ - function _Gy_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_42228); - } - function _Gz_(param){ - var - _GA_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), - _GB_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _GA_); - return caml_call2(Runtime_ocaml_Runtime[29], _bw_, _GB_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _bx_, [0], _Gz_, _Gy_); - }, - _F6_ = - function(param){ - function _Gr_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_41481); - } - function _Gs_(param){ - var - _Gt_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), - _Gu_ = caml_call2(Runtime_ocaml_Runtime[115], date_courante, _Gt_), - _Gv_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), - _Gw_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Gv_), - _Gx_ = caml_call2(Runtime_ocaml_Runtime[83], _Gw_, _Gu_); - return caml_call2(Runtime_ocaml_Runtime[29], _by_, _Gx_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _bz_, [0], _Gs_, _Gr_); - }, - _F7_ = - function(param){ - function _Gk_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_41440); - } - function _Gl_(param){ - var - _Gm_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), - _Gn_ = caml_call2(Runtime_ocaml_Runtime[115], date_courante, _Gm_), - _Go_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), - _Gp_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Go_), - _Gq_ = caml_call2(Runtime_ocaml_Runtime[83], _Gp_, _Gn_); - return caml_call2(Runtime_ocaml_Runtime[29], _bA_, _Gq_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _bB_, [0], _Gl_, _Gk_); - }, - _F8_ = - [0, - function(param){ - function _Gd_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_41316); - } - function _Ge_(param){ - var - _Gf_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), - _Gg_ = caml_call2(Runtime_ocaml_Runtime[115], date_courante, _Gf_), - _Gh_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), - _Gi_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Gh_), - _Gj_ = caml_call2(Runtime_ocaml_Runtime[83], _Gi_, _Gg_); - return caml_call2(Runtime_ocaml_Runtime[29], _bC_, _Gj_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _bD_, [0], _Ge_, _Gd_); - }, - _F7_, - _F6_, - _F5_], - _F9_ = caml_call4(Runtime_ocaml_Runtime[63], _bE_, _F8_, _F4_, _F3_); - } - catch(_Gc_){ - var _F2_ = caml_wrap_exception(_Gc_); - if(_F2_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bv_], 1); - throw caml_maybe_attach_backtrace(_F2_, 0); - } - var - montant = - caml_call3 - (Runtime_ocaml_Runtime[28], _bF_, Runtime_ocaml_Runtime[13], _F9_); - try{ - var - _F$_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), - _Ga_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _F$_); - } - catch(_Gb_){ - var _F__ = caml_wrap_exception(_Gb_); - if(_F__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bG_], 1); - throw caml_maybe_attach_backtrace(_F__, 0); - } - if(_Ga_) return [0, montant]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bH_], 1); - } - function prestations_familiales(prestations_familiales_in){ - var - date_courante = prestations_familiales_in[1], - residence = prestations_familiales_in[3]; - try{ - var - _Ez_ = - function(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 20, 0, 0); - }, - _EA_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _bJ_, 1); - }, - _EB_ = caml_call4(Runtime_ocaml_Runtime[63], _bK_, [0], _EA_, _Ez_); - } - catch(_F1_){ - var _Ey_ = caml_wrap_exception(_F1_); - if(_Ey_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bI_], 1); - throw caml_maybe_attach_backtrace(_Ey_, 0); - } - var - age_l512_3_2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _bL_, Runtime_ocaml_Runtime[17], _EB_); - try{ - var - _ED_ = function(param){return date_courante;}, - _EE_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _bN_, 1); - }, - _EF_ = caml_call4(Runtime_ocaml_Runtime[63], _bO_, [0], _EE_, _ED_), - smic_dot_date_courante = - caml_call3 - (Runtime_ocaml_Runtime[28], _bP_, Runtime_ocaml_Runtime[16], _EF_); - } - catch(_F0_){ - var _EC_ = caml_wrap_exception(_F0_); - if(_EC_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bM_], 1); - throw caml_maybe_attach_backtrace(_EC_, 0); - } - try{ - var - _EH_ = function(param){return residence;}, - _EI_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _bR_, 1); - }, - _EJ_ = caml_call4(Runtime_ocaml_Runtime[63], _bS_, [0], _EI_, _EH_), - smic_dot_residence = - caml_call3(Runtime_ocaml_Runtime[28], _bT_, embed_collectivite, _EJ_); - } - catch(_FZ_){ - var _EG_ = caml_wrap_exception(_FZ_); - if(_EG_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bQ_], 1); - throw caml_maybe_attach_backtrace(_EG_, 0); - } - var - _EK_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _bU_, smic), - [0, smic_dot_date_courante, smic_dot_residence]), - result = caml_call2(Runtime_ocaml_Runtime[27], _bV_, _EK_), - smic_dot_brut_horaire = result[1]; - try{ - var - _EM_ = function(param){return 0;}, - _EN_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _bX_, 1); - }, - _EO_ = - [0, - function(param){ - function _FM_(param){return 1;} - function _FN_(param){ - var - _FO_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bY_), - _FP_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bZ_), - _FQ_ = caml_call2(Runtime_ocaml_Runtime[84], _FP_, _FO_), - _FR_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b0_), - _FS_ = caml_call2(Runtime_ocaml_Runtime[84], _FR_, _FQ_), - _FT_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b1_), - _FU_ = caml_call2(Runtime_ocaml_Runtime[84], _FT_, _FS_), - _FV_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b2_), - _FW_ = caml_call2(Runtime_ocaml_Runtime[84], _FV_, _FU_), - _FX_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b3_), - _FY_ = caml_call2(Runtime_ocaml_Runtime[84], _FX_, _FW_); - return caml_call2(Runtime_ocaml_Runtime[29], _b4_, _FY_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _b5_, [0], _FN_, _FM_); - }], - _EP_ = caml_call4(Runtime_ocaml_Runtime[63], _b6_, _EO_, _EN_, _EM_); - } - catch(_FL_){ - var _EL_ = caml_wrap_exception(_FL_); - if(_EL_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bW_], 1); - throw caml_maybe_attach_backtrace(_EL_, 0); - } - var - regime_outre_mer_l751_1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _b7_, Runtime_ocaml_Runtime[12], _EP_); - try{ - var - _ER_ = - function(param){ - var - _FI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169), - _FJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55), - _FK_ = - caml_call2 - (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _FJ_); - return caml_call2(Runtime_ocaml_Runtime[104], _FK_, _FI_); - }, - _ES_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _b9_, 1); - }, - _ET_ = - [0, - function(param){ - function _FD_(param){ - var - _FF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169$0), - _FG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55$0), - _FH_ = - caml_call2 - (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _FG_); - return caml_call2(Runtime_ocaml_Runtime[104], _FH_, _FF_); - } - function _FE_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _b__, regime_outre_mer_l751_1); - } - return caml_call4(Runtime_ocaml_Runtime[63], _b$_, [0], _FE_, _FD_); - }], - _EU_ = caml_call4(Runtime_ocaml_Runtime[63], _ca_, _ET_, _ES_, _ER_); - } - catch(_FC_){ - var _EQ_ = caml_wrap_exception(_FC_); - if(_EQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _b8_], 1); - throw caml_maybe_attach_backtrace(_EQ_, 0); - } - var - plafond_l512_3_2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _cb_, Runtime_ocaml_Runtime[13], _EU_); - function _EV_(enfant){ - try{ - var - _Fo_ = function(param){return 0;}, - _Fp_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _cd_, 1); - }, - _Fq_ = + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), [0, - function(param){ - function _Ft_(param){return 1;} - function _Fu_(param){ - var - _Fv_ = - caml_call2 - (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2); - switch(enfant[2][0]){ - case 0: - var _Fw_ = 0; break; - case 1: - var _Fw_ = 0; break; - default: var _Fw_ = 1; - } - switch(enfant[2][0]){ - case 0: - var _Fx_ = 0; break; - case 1: - var _Fx_ = 1; break; - default: var _Fx_ = 0; - } - var _Fy_ = caml_call2(Runtime_ocaml_Runtime[84], _Fx_, _Fw_); - switch(enfant[2][0]){ - case 0: - var _Fz_ = 1; break; - case 1: - var _Fz_ = 0; break; - default: var _Fz_ = 0; - } - var - _FA_ = caml_call2(Runtime_ocaml_Runtime[84], _Fz_, _Fy_), - _FB_ = caml_call2(Runtime_ocaml_Runtime[83], _FA_, _Fv_); - return caml_call2(Runtime_ocaml_Runtime[29], _ce_, _FB_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _cf_, [0], _Fu_, _Ft_); - }], - _Fr_ = caml_call4(Runtime_ocaml_Runtime[63], _cg_, _Fq_, _Fp_, _Fo_); - return _Fr_; - } - catch(_Fs_){ - var _Fn_ = caml_wrap_exception(_Fs_); - if(_Fn_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _cc_], 1); - throw caml_maybe_attach_backtrace(_Fn_, 0); - } - } - var - conditions_hors_age = - caml_call3 - (Runtime_ocaml_Runtime[28], _ch_, Runtime_ocaml_Runtime[10], _EV_); - function _EW_(enfant){ - try{ - var - _EY_ = function(param){return 0;}, - _EZ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _cj_, 1); - }, - _E0_ = + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _abm_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _abn_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _abo_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _abp_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _abq_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _abr_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _abs_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _abt_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _abi_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1140, + 14, + 1140, + 36, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), [0, - function(param){ - function _E3_(param){ - function _E8_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _E9_(param){return 0;} - var - _E__ = + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _aba_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _abb_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _abc_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _abd_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _abe_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _abf_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _abg_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _abh_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _abj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1174, + 12, + 1174, + 34, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aa$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1174, + 12, + 1174, + 34, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aa8_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1102, + 14, + 1102, + 25, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _aa4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1224, + 14, + 1224, + 63, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1219, + 14, + 1219, + 58, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1215, + 14, + 1215, + 62, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1211, + 14, + 1211, + 53, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1205, + 5, + 1205, + 65, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1200, + 14, + 1200, + 68, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1196, + 14, + 1196, + 66, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaA_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1111, + 14, + 1111, + 58, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _aaz_=[0,0], + _aav_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1192, + 14, + 1192, + 64, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aap_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1221, + 14, + 1221, + 50, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aal_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1113, + 14, + 1113, + 50, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _aai_=[2,0], + _aaj_=[1,0], + _aak_=[2,0], + _aae_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1217, + 14, + 1217, + 54, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaa_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1213, + 14, + 1213, + 45, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1209, + 14, + 1209, + 66, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1202, + 14, + 1202, + 60, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1198, + 14, + 1198, + 58, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$W_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1194, + 14, + 1194, + 56, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$Q_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1188, + 14, + 1188, + 67, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$M_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1184, + 14, + 1184, + 63, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$I_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1180, + 14, + 1180, + 60, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$C_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1097, + 5, + 1097, + 74, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _$y_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1186, + 14, + 1186, + 55, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$u_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1182, + 14, + 1182, + 52, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$q_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1190, + 14, + 1190, + 59, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$r_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1190, + 14, + 1190, + 59, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$s_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.date_courante"), + 0]], + _$p_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1190, + 14, + 1190, + 59, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$v_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1182, + 14, + 1182, + 52, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$w_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.m\xc3\xa9nage"), + 0]], + _$t_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1182, + 14, + 1182, + 52, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$z_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1186, + 14, + 1186, + 55, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$A_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.demandeur"), + 0]], + _$x_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1186, + 14, + 1186, + 55, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$D_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1097, + 5, + 1097, + 74, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _$E_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement"), + 0]], + _$B_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1097, + 5, + 1097, + 74, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _$F_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement"), + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + 0]]], + _$G_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement"), + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + 0]]], + _$J_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1180, + 14, + 1180, + 60, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$K_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.m\xc3\xa9nage"), + 0]], + _$H_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1180, + 14, + 1180, + 60, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$N_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1184, + 14, + 1184, + 63, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$O_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.demandeur"), + 0]], + _$L_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1184, + 14, + 1184, + 63, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$R_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1188, + 14, + 1188, + 67, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$S_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.date_courante"), + 0]], + _$P_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1188, + 14, + 1188, + 67, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$T_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + 0]]], + _$U_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + 0]]], + _$X_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1194, + 14, + 1194, + 56, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$Y_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes("calcul_allocation_logement.mode_occupation"), + 0]], + _$V_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1194, + 14, + 1194, + 56, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1198, + 14, + 1198, + 58, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$2_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_allocation_logement.ressources_m\xc3\xa9nage_sans_arrondi"), + 0]], + _$Z_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1198, + 14, + 1198, + 58, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1202, + 14, + 1202, + 60, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$6_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_allocation_logement.situation_familiale"), + 0]], + _$3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1202, + 14, + 1202, + 60, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1209, + 14, + 1209, + 66, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _$__= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_allocation_logement.nombre_personnes_\xc3\xa0_charge"), + 0]], + _$7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1209, + 14, + 1209, + 66, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aab_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1213, + 14, + 1213, + 45, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aac_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0,caml_string_of_jsbytes("calcul_allocation_logement.zone"),0]], + _$$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1213, + 14, + 1213, + 45, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1217, + 14, + 1217, + 54, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aag_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes("calcul_allocation_logement.date_courante"), + 0]], + _aad_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1217, + 14, + 1217, + 54, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aam_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1113, + 14, + 1113, + 50, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _aan_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0,caml_string_of_jsbytes("calcul_allocation_logement.type_aide"),0]], + _aah_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1113, + 14, + 1113, + 50, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _aaq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1221, + 14, + 1221, + 50, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aar_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes("calcul_allocation_logement.r\xc3\xa9sidence"), + 0]], + _aao_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1221, + 14, + 1221, + 50, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aas_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes("calcul_allocation_logement"), + [0,caml_string_of_jsbytes("CalculAllocationLogement"),0]]], + _aat_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes("calcul_allocation_logement"), + [0,caml_string_of_jsbytes("CalculAllocationLogement"),0]]], + _aaw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1192, + 14, + 1192, + 64, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aax_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_aide_personnalis\xc3\xa9e_logement.mode_occupation"), + 0]], + _aau_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1192, + 14, + 1192, + 64, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaB_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1111, + 14, + 1111, + 58, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _aaC_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_aide_personnalis\xc3\xa9e_logement.type_aide"), + 0]], + _aay_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1111, + 14, + 1111, + 58, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _aaF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1196, + 14, + 1196, + 66, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaG_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_aide_personnalis\xc3\xa9e_logement.ressources_m\xc3\xa9nage_sans_arrondi"), + 0]], + _aaD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1196, + 14, + 1196, + 66, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1200, + 14, + 1200, + 68, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaK_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_aide_personnalis\xc3\xa9e_logement.situation_familiale"), + 0]], + _aaH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1200, + 14, + 1200, + 68, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1205, + 5, + 1205, + 65, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaO_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_aide_personnalis\xc3\xa9e_logement.nombre_personnes_\xc3\xa0_charge"), + 0]], + _aaL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1205, + 5, + 1205, + 65, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1211, + 14, + 1211, + 53, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaS_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_aide_personnalis\xc3\xa9e_logement.zone"), + 0]], + _aaP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1211, + 14, + 1211, + 53, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1215, + 14, + 1215, + 62, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaW_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_aide_personnalis\xc3\xa9e_logement.date_courante"), + 0]], + _aaT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1215, + 14, + 1215, + 62, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aaZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1219, + 14, + 1219, + 58, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aa0_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("calcul_aide_personnalis\xc3\xa9e_logement.r\xc3\xa9sidence"), + 0]], + _aaX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1219, + 14, + 1219, + 58, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aa1_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes("calcul_aide_personnalis\xc3\xa9e_logement"), + [0,caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"),0]]], + _aa2_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes("calcul_aide_personnalis\xc3\xa9e_logement"), + [0,caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"),0]]], + _aa5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1176, + 12, + 1176, + 61, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aa3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1176, + 12, + 1176, + 61, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aa6_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0, + caml_string_of_jsbytes + ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), + 0]], + _aa9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1172, + 12, + 1172, + 23, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aa7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1172, + 12, + 1172, + 23, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _aa__= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], + _abk_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _abv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1173, + 12, + 1173, + 31, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1173, + 12, + 1173, + 31, + [0, + caml_string_of_jsbytes("Calculette globale"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], + _abw_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogement"), + [0,caml_string_of_jsbytes("aide_finale_formule"),0]], + _$k_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1278, + 5, + 1279, + 54, + [0, + caml_string_of_jsbytes("Article L860-3"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _$l_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 402, + 12, + 402, + 23, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _$j_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 627, + 5, + 629, + 36, + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _$m_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 402, + 12, + 402, + 23, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _$i_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 402, + 12, + 402, + 23, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _$b_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 777, + 5, + 790, + 30, + [0, + caml_string_of_jsbytes("Article L831-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _$c_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 396, + 11, + 396, + 34, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _$a_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 758, + 5, + 763, + 30, + [0, + caml_string_of_jsbytes("Article L831-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _$d_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 396, + 11, + 396, + 34, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __$_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 753, + 31, + 753, + 54, + [0, + caml_string_of_jsbytes("Article L831-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _$e_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 396, + 11, + 396, + 34, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + ____= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 396, + 11, + 396, + 34, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 413, + 14, + 413, + 56, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 415, + 14, + 415, + 63, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __W_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1419, + 5, + 1422, + 30, + [0, + caml_string_of_jsbytes("Article L861-5-1"), + [0, + caml_string_of_jsbytes + ("Section 3 : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + __X_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 395, + 11, + 395, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __V_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 721, + 5, + 724, + 30, + [0, + caml_string_of_jsbytes("Article L831-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + __Y_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 395, + 11, + 395, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __P_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3690, + 5, + 3695, + 30, + [0, + caml_string_of_jsbytes("Article R832-21"), + [0, + caml_string_of_jsbytes + ("Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements \xc3\xa0 usage locatif"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + __Q_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 395, + 11, + 395, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __L_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), + [0,caml_string_of_jsbytes("input0"),0]]], + __M_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), + 0]], + __N_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), + [0,caml_string_of_jsbytes("output"),0]]], + __O_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), + 0]], + __K_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 738, + 5, + 741, + 30, + [0, + caml_string_of_jsbytes("Article L831-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + __R_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 395, + 11, + 395, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __J_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 677, + 5, + 686, + 30, + [0, + caml_string_of_jsbytes("Article L831-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + __S_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 395, + 11, + 395, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __F_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), + [0,caml_string_of_jsbytes("input0"),0]]], + __G_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), + 0]], + __H_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), + [0,caml_string_of_jsbytes("output"),0]]], + __I_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), + 0]], + __E_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 656, + 5, + 659, + 30, + [0, + caml_string_of_jsbytes("Article L831-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + __T_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 395, + 11, + 395, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __U_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 395, + 11, + 395, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __D_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 395, + 11, + 395, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __y_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4637, + 6, + 4637, + 43, + [0, + caml_string_of_jsbytes("Article 49"), + [0, + caml_string_of_jsbytes("Chapitre XI : Dispositions communes"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + __z_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 394, + 11, + 394, + 53, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __x_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 394, + 11, + 394, + 53, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __r_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5468, + 5, + 5469, + 53, + [0, + caml_string_of_jsbytes("Article R861-5"), + [0, + caml_string_of_jsbytes + ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + __s_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5467, + 14, + 5467, + 66, + [0, + caml_string_of_jsbytes("Article R861-5"), + [0, + caml_string_of_jsbytes + ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + __t_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_commune.date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch"), + 0]], + __o_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 411, + 14, + 411, + 47, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __k_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 410, + 14, + 410, + 43, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __g_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 409, + 14, + 409, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __c_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 398, + 11, + 398, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __d_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 398, + 11, + 398, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __b_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 398, + 11, + 398, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Z7_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3018, + 5, + 3021, + 41, + [0, + caml_string_of_jsbytes("Article R832-7"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Z8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 397, + 11, + 397, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Z6_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2983, + 5, + 2985, + 42, + [0, + caml_string_of_jsbytes("Article R832-5"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Z9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 397, + 11, + 397, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Z__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 397, + 11, + 397, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Z5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 397, + 11, + 397, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Z$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 397, + 11, + 397, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Z4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 397, + 11, + 397, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __a_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), + 0]], + __e_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), + 0]], + __h_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 409, + 14, + 409, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __i_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage"), + 0]], + __f_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 409, + 14, + 409, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __l_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 410, + 14, + 410, + 43, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __m_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune.demandeur"), + 0]], + __j_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 410, + 14, + 410, + 43, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __p_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 411, + 14, + 411, + 47, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __q_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_commune.date_courante"), + 0]], + __n_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 411, + 14, + 411, + 47, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __u_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + 0]]], + __v_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + 0]]], + __A_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 394, + 11, + 394, + 53, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __w_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 394, + 11, + 394, + 53, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __B_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes + ("logement_situ\xc3\xa9_commune_d\xc3\xa9s\xc3\xa9quilibre_l831_2"), + 0]], + __Z_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 395, + 11, + 395, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __C_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 395, + 11, + 395, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __0_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("condition_logement_bailleur"),0]], + __3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 404, + 12, + 404, + 61, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 404, + 12, + 404, + 61, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __4_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes + ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), + 0]], + __7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 403, + 12, + 403, + 54, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 403, + 12, + 403, + 54, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __8_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0, + caml_string_of_jsbytes + ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), + 0]], + _$f_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 396, + 11, + 396, + 34, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + __9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 396, + 11, + 396, + 34, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _$g_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("condition_logement_pr\xc3\xaat"),0]], + _$n_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 402, + 12, + 402, + 23, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _$h_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 402, + 12, + 402, + 23, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _$o_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], + _ZY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1638, + 5, + 1639, + 79, + [0, + caml_string_of_jsbytes("Article L816-8"), + [0, + caml_string_of_jsbytes("Section 4 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _ZX_=[0,0], + _ZZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 451, + 10, + 451, + 16, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ZW_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1604, + 5, + 1613, + 28, + [0, + caml_string_of_jsbytes("Article L861-6"), + [0, + caml_string_of_jsbytes("Section 4 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _ZV_=[0,0], + _Z0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 451, + 10, + 451, + 16, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ZT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1181, + 5, + 1181, + 73, + [0, + caml_string_of_jsbytes("Article L841-3"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _ZS_=[2,0], + _ZU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 451, + 10, + 451, + 16, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ZR_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1195, + 5, + 1198, + 28, + [0, + caml_string_of_jsbytes("Article L841-4"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _ZQ_=[0,0], + _Z1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 451, + 10, + 451, + 16, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ZP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1081, + 29, + 1081, + 40, + [0, + caml_string_of_jsbytes("Article L841-2"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _ZL_=[0,0], + _ZM_=[0,0], + _ZN_=[1,0], + _ZO_=[2,0], + _Zz_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1818, + 5, + 1818, + 66, + [0, + caml_string_of_jsbytes("Article L862-3"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _ZA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Zs_=[2,0], + _Zx_=[0,0], + _Zt_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Zu_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _Zv_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("output"),0]]], + _Zw_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _Zy_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1778, + 5, + 1799, + 9, + [0, + caml_string_of_jsbytes("Article L862-3"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _ZB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Zp_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1528, + 5, + 1528, + 66, + [0, + caml_string_of_jsbytes("Article L861-6"), + [0, + caml_string_of_jsbytes("Section 4 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Zq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Zi_=[2,0], + _Zn_=[0,0], + _Zj_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Zk_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _Zl_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("output"),0]]], + _Zm_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _Zo_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1486, + 5, + 1507, + 9, + [0, + caml_string_of_jsbytes("Article L861-6"), + [0, + caml_string_of_jsbytes("Section 4 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Zr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Zh_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1049, + 5, + 1054, + 29, + [0, + caml_string_of_jsbytes("Article L841-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _ZC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Zg_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1023, + 5, + 1034, + 13, + [0, + caml_string_of_jsbytes("Article L841-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _ZD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Zb_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("condition_2_r823_4"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Zc_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], + _Zd_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("condition_2_r823_4"), + [0,caml_string_of_jsbytes("output"),0]]], + _Ze_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], + _Zf_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1005, + 5, + 1007, + 9, + [0, + caml_string_of_jsbytes("Article L841-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _ZE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Y6_=[2,0], + _Y$_=[0,0], + _Y7_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Y8_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _Y9_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("output"),0]]], + _Y__= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _Za_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 965, + 5, + 991, + 29, + [0, + caml_string_of_jsbytes("Article L841-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _ZF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YZ_=[2,0], + _Y4_=[0,0], + _Y0_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Y1_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _Y2_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("output"),0]]], + _Y3_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _Y5_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 932, + 5, + 954, + 8, + [0, + caml_string_of_jsbytes("Article L841-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _ZG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YU_=[4,0], + _YV_=[3,0], + _YW_=[1,0], + _YX_=[0,0], + _YY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 909, + 5, + 915, + 6, + [0, + caml_string_of_jsbytes("Article L841-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _ZH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 877, + 14, + 877, + 25, + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _YN_=[0,0], + _YO_=[2,0], + _YJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 468, + 14, + 468, + 56, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 470, + 14, + 470, + 63, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yz_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4778, + 9, + 4778, + 55, + [0, + caml_string_of_jsbytes("Article R842-14"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _YA_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4778, + 9, + 4778, + 55, + [0, + caml_string_of_jsbytes("Article R842-14"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _YB_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_surface"), + 0]], + _Yw_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4777, + 9, + 4777, + 68, + [0, + caml_string_of_jsbytes("Article R842-14"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Yx_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4777, + 9, + 4777, + 68, + [0, + caml_string_of_jsbytes("Article R842-14"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Yy_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_r\xc3\xa9sidence_principale"), + 0]], + _Yt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 466, + 14, + 466, + 47, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 465, + 14, + 465, + 43, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 464, + 14, + 464, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4372, + 5, + 4377, + 28, + [0, + caml_string_of_jsbytes("Article R842-5"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Yd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 437, + 11, + 437, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4355, + 5, + 4360, + 28, + [0, + caml_string_of_jsbytes("Article R842-5"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ye_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 437, + 11, + 437, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ya_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4338, + 5, + 4345, + 28, + [0, + caml_string_of_jsbytes("Article R842-5"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Yf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 437, + 11, + 437, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 437, + 11, + 437, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _X$_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4308, + 5, + 4310, + 28, + [0, + caml_string_of_jsbytes("Article R842-5"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Yh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 437, + 11, + 437, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _X__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 437, + 11, + 437, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _X4_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 905, + 9, + 905, + 29, + [0, + caml_string_of_jsbytes("Article L841-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _X5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 438, + 11, + 438, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _X1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1754, + 9, + 1754, + 29, + [0, + caml_string_of_jsbytes("Article L862-3"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _X2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 438, + 11, + 438, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _X0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1448, + 9, + 1448, + 29, + [0, + caml_string_of_jsbytes("Article L861-6"), + [0, + caml_string_of_jsbytes("Section 4 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _X3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 438, + 11, + 438, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _X6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 438, + 11, + 438, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 438, + 11, + 438, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 927, + 9, + 927, + 29, + [0, + caml_string_of_jsbytes("Article L841-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _XU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 439, + 11, + 439, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1755, + 9, + 1755, + 29, + [0, + caml_string_of_jsbytes("Article L862-3"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _XR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 439, + 11, + 439, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1449, + 9, + 1449, + 29, + [0, + caml_string_of_jsbytes("Article L861-6"), + [0, + caml_string_of_jsbytes("Section 4 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _XS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 439, + 11, + 439, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 439, + 11, + 439, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 439, + 11, + 439, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XI_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1044, + 9, + 1044, + 29, + [0, + caml_string_of_jsbytes("Article L841-1"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _XJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 440, + 11, + 440, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XF_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1756, + 9, + 1756, + 29, + [0, + caml_string_of_jsbytes("Article L862-3"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _XG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 440, + 11, + 440, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XE_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1450, + 9, + 1450, + 29, + [0, + caml_string_of_jsbytes("Article L861-6"), + [0, + caml_string_of_jsbytes("Section 4 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _XH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 440, + 11, + 440, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 440, + 11, + 440, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 440, + 11, + 440, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 462, + 14, + 462, + 46, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 460, + 14, + 460, + 56, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xs_=[3,0], + _Xo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 459, + 14, + 459, + 50, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xk_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4179, + 14, + 4179, + 28, + [0, + caml_string_of_jsbytes("Article D841-1"), + [0, + caml_string_of_jsbytes("Chapitre 1 : Champ d'application"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Xl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 443, + 11, + 443, + 25, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 443, + 11, + 443, + 25, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xm_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0,caml_string_of_jsbytes("dur\xc3\xa9e_l841_1_3"),0]], + _Xp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 459, + 14, + 459, + 50, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xq_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0,caml_string_of_jsbytes("prestations_familiales.date_courante"),0]], + _Xn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 459, + 14, + 459, + 50, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 460, + 14, + 460, + 56, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xv_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes("prestations_familiales.prestation_courante"), + 0]], + _Xr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 460, + 14, + 460, + 56, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 462, + 14, + 462, + 46, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xz_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0,caml_string_of_jsbytes("prestations_familiales.r\xc3\xa9sidence"),0]], + _Xw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 462, + 14, + 462, + 46, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XA_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes("prestations_familiales"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + 0]]], + _XB_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes("prestations_familiales"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + 0]]], + _XL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 440, + 11, + 440, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 440, + 11, + 440, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XM_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0,caml_string_of_jsbytes("l_841_1_6_applicable"),0]], + _XW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 439, + 11, + 439, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 439, + 11, + 439, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XX_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0,caml_string_of_jsbytes("l_841_1_2_applicable"),0]], + _X7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 438, + 11, + 438, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _XY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 438, + 11, + 438, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _X8_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0,caml_string_of_jsbytes("l_841_1_1_applicable"),0]], + _Yi_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 437, + 11, + 437, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _X9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 437, + 11, + 437, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yj_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes("condition_accession_propri\xc3\xa9t\xc3\xa9"), + 0]], + _Ym_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 464, + 14, + 464, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yn_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage"), + 0]], + _Yk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 464, + 14, + 464, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 465, + 14, + 465, + 43, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yr_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune.demandeur"), + 0]], + _Yo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 465, + 14, + 465, + 43, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 466, + 14, + 466, + 47, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Yv_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_commune.date_courante"), + 0]], + _Ys_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 466, + 14, + 466, + 47, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YC_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + 0]]], + _YD_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + 0]]], + _YG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 453, + 12, + 453, + 61, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 453, + 12, + 453, + 61, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YH_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes + ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), + 0]], + _YK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 452, + 12, + 452, + 54, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 452, + 12, + 452, + 54, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YL_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes + ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), + 0]], + _YQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 450, + 10, + 450, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 450, + 10, + 450, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YR_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_dispositions_communes"), + 0]], + _ZI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _YS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 442, + 11, + 442, + 52, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ZJ_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0, + caml_string_of_jsbytes + ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement_familiale"), + 0]], + _Z2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 451, + 10, + 451, + 16, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ZK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 451, + 10, + 451, + 16, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Z3_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_l841_2"),0]], + _Xg_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2106, + 14, + 2106, + 40, + [0, + caml_string_of_jsbytes("Article D823-22"), + [0, + caml_string_of_jsbytes + ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _W9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5502, + 5, + 5502, + 40, + [0, + caml_string_of_jsbytes("Article D861-7"), + [0, + caml_string_of_jsbytes + ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _W__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 493, + 11, + 493, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _W8_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1889, + 5, + 1889, + 54, + [0, + caml_string_of_jsbytes("Article L863-2"), + [0, + caml_string_of_jsbytes + ("Section 2 : Dispositions communes aux aides applicables \xc3\xa0 Saint-Pierre-et-Miquelon"), + [0, + caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _W$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 493, + 11, + 493, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _W7_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1314, + 5, + 1314, + 40, + [0, + caml_string_of_jsbytes("Article L861-4"), + [0, + caml_string_of_jsbytes + ("Section 2 : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Xa_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 493, + 11, + 493, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 493, + 11, + 493, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _W6_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 599, + 5, + 602, + 42, + [0, + caml_string_of_jsbytes("Article L823-8"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Xc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 493, + 11, + 493, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _W5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 493, + 11, + 493, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _W1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4303, + 14, + 4303, + 29, + [0, + caml_string_of_jsbytes("Article 45"), + [0, + caml_string_of_jsbytes + ("Chapitre VIII : Prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _WW_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2065, + 6, + 2076, + 75, + [0, + caml_string_of_jsbytes("Article D823-20"), + [0, + caml_string_of_jsbytes + ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _WX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 492, + 11, + 492, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 492, + 11, + 492, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 506, + 14, + 506, + 43, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 505, + 14, + 505, + 39, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 504, + 14, + 504, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 508, + 14, + 508, + 65, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ww_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2056, + 5, + 2061, + 77, + [0, + caml_string_of_jsbytes("Article D823-20"), + [0, + caml_string_of_jsbytes + ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Wx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 491, + 11, + 491, + 32, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Wv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 491, + 11, + 491, + 32, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Wr_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2080, + 14, + 2080, + 47, + [0, + caml_string_of_jsbytes("Article D823-20"), + [0, + caml_string_of_jsbytes + ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ws_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 494, + 11, + 494, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Wq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 494, + 11, + 494, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Wt_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("d\xc3\xa9lai_apr\xc3\xa8s_emm\xc3\xa9nagement_l823_8_2"), + 0]], + _Wy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 491, + 11, + 491, + 32, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Wu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 491, + 11, + 491, + 32, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Wz_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0,caml_string_of_jsbytes("condition_rang_enfant"),0]], + _WC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 508, + 14, + 508, + 65, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WD_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("base_mensuelle_allocations_familiales.date_courante"), + 0]], + _WA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 508, + 14, + 508, + 65, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WE_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), + [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], + _WF_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), + [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], + _WI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 504, + 14, + 504, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WJ_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl.m\xc3\xa9nage"), + 0]], + _WG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 504, + 14, + 504, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 505, + 14, + 505, + 39, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WN_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl.demandeur"),0]], + _WK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 505, + 14, + 505, + 39, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 506, + 14, + 506, + 43, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WR_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl.date_courante"), + 0]], + _WO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 506, + 14, + 506, + 43, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WS_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + 0]]], + _WT_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + 0]]], + _WY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 492, + 11, + 492, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 492, + 11, + 492, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _WZ_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("condition_p\xc3\xa9riode_d\xc3\xa9m\xc3\xa9nagement"), + 0]], + _W2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 495, + 11, + 495, + 26, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _W0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 495, + 11, + 495, + 26, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _W3_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0,caml_string_of_jsbytes("plafond_d823_22"),0]], + _Xd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 493, + 11, + 493, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _W4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 493, + 11, + 493, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xe_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_logement"),0]], + _Xh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 501, + 12, + 501, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 501, + 12, + 501, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Xi_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + [0, + caml_string_of_jsbytes("montant_prime_d\xc3\xa9m\xc3\xa9nagement"), + 0]], + _Wm_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/autres_sources.catala_fr"), + 372, + 5, + 373, + 34, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2021-1750 du 21 d\xc3\xa9cembre 2021 portant diverses mesures sur les aides personnelles au logement et relatif aux aides personnelles au logement \xc3\xa0 Saint-Pierre-et-Miquelon"), + 0]]], + _Wn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1109, + 12, + 1109, + 31, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Wl_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1439, + 14, + 1439, + 33, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Wh_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1441, + 14, + 1441, + 36, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Wi_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1110, + 12, + 1110, + 34, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Wg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1110, + 12, + 1110, + 34, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Wc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 6410, + 24, + 6410, + 46, + [0, + caml_string_of_jsbytes("Article D863-7"), + [0, + caml_string_of_jsbytes + ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Section II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _V7_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _V8_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _V9_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _V__= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _V3_=[1,0], + _V4_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 6439, + 42, + 6439, + 45, + [0, + caml_string_of_jsbytes("Article D863-7"), + [0, + caml_string_of_jsbytes + ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Section II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _V5_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _V6_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("direct"),0]], + _V$_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 6414, + 9, + 6442, + 10, + [0, + caml_string_of_jsbytes("Article D863-7"), + [0, + caml_string_of_jsbytes + ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Section II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Wa_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _Wb_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("direct"),0]], + _Wd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1107, + 11, + 1107, + 33, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _V2_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1555, + 14, + 1555, + 36, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _VV_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _VW_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _VX_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _VY_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _VM_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _VN_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _VO_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _VP_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _VD_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _VE_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _VF_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _VG_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _VA_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1575, + 16, + 1578, + 39, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _VB_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _VC_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("direct"),0]], + _VH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1559, + 9, + 1581, + 10, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _VI_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _VJ_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("direct"),0]], + _VK_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _VL_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("direct"),0]], + _VQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1614, + 10, + 1633, + 11, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _VR_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _VS_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("direct"),0]], + _VT_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _VU_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("direct"),0]], + _VZ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1592, + 9, + 1604, + 10, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _V0_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _V1_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("direct"),0]], + _Vw_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 90, + 14, + 90, + 44, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Vq_=[0,0], + _Vr_=[1,0], + _Vs_=[1,0], + _Vt_=[1,0], + _Vu_=[0,0], + _Vv_=[1,0], + _Vm_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1972, + 14, + 1972, + 31, + [0, + caml_string_of_jsbytes("Article D823-17"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _Vi_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1428, + 14, + 1428, + 34, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Vj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1104, + 11, + 1104, + 31, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Vh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1104, + 11, + 1104, + 31, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Vk_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0,caml_string_of_jsbytes("cat\xc3\xa9gorie_calcul_apl"),0]], + _Vn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1096, + 10, + 1096, + 22, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Vl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1096, + 10, + 1096, + 22, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Vo_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0,caml_string_of_jsbytes("ressources_m\xc3\xa9nage_avec_arrondi"),0]], + _Vx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1105, + 11, + 1105, + 41, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Vp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1105, + 11, + 1105, + 41, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Vy_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0,caml_string_of_jsbytes("situation_familiale_calcul_apl"),0]], + _We_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1107, + 11, + 1107, + 33, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Vz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1107, + 11, + 1107, + 33, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Wf_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0,caml_string_of_jsbytes("sous_calcul_traitement"),0]], + _Wj_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _Wo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1109, + 12, + 1109, + 31, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Wk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1109, + 12, + 1109, + 31, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Wp_= + [0, + caml_string_of_jsbytes("CalculAllocationLogement"), + [0,caml_string_of_jsbytes("aide_finale_formule"),0]], + _U__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 357, + 14, + 357, + 56, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _U6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 359, + 14, + 359, + 63, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _U2_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1139, + 14, + 1139, + 49, + [0, + caml_string_of_jsbytes("Article R823-4"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _UY_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), + [0,caml_string_of_jsbytes("input0"),0]]], + _UZ_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), + 0]], + _U0_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), + [0,caml_string_of_jsbytes("output"),0]]], + _U1_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), + 0]], + _US_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1246, + 4, + 1252, + 48, + [0, + caml_string_of_jsbytes("Article R823-4"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _UT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 321, + 11, + 321, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _UN_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("condition_2_r823_4"), + [0,caml_string_of_jsbytes("input0"),0]]], + _UO_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], + _UP_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("condition_2_r823_4"), + [0,caml_string_of_jsbytes("output"),0]]], + _UQ_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], + _UR_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1227, + 5, + 1227, + 44, + [0, + caml_string_of_jsbytes("Article R823-4"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _UU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 321, + 11, + 321, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _UH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1844, + 5, + 1850, + 34, + [0, + caml_string_of_jsbytes("Article L862-3"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _UI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 321, + 11, + 321, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _UG_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1574, + 5, + 1580, + 34, + [0, + caml_string_of_jsbytes("Article L861-6"), + [0, + caml_string_of_jsbytes("Section 4 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _UJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 321, + 11, + 321, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _UF_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 449, + 5, + 457, + 28, + [0, + caml_string_of_jsbytes("Article L823-1"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _UK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 321, + 11, + 321, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _UL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 321, + 11, + 321, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Uy_=[2,0], + _UE_=[0,0], + _Uz_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("input0"),0]]], + _UA_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _UB_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0, + caml_string_of_jsbytes("droit_ouvert"), + [0,caml_string_of_jsbytes("output"),0]]], + _UC_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _UD_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1156, + 5, + 1178, + 44, + [0, + caml_string_of_jsbytes("Article R823-4"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _UM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 321, + 11, + 321, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ux_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 321, + 11, + 321, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _UV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 321, + 11, + 321, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Uw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 321, + 11, + 321, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Us_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 353, + 5, + 355, + 25, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ut_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 342, + 12, + 342, + 23, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ur_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 342, + 12, + 342, + 23, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ug_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1214, + 30, + 1214, + 35, + [0, + caml_string_of_jsbytes("Article R823-4"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Uh_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _Ui_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), + [0,caml_string_of_jsbytes("direct"),0]], + _Uj_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1211, + 17, + 1214, + 37, + [0, + caml_string_of_jsbytes("Article R823-4"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Uk_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _Ul_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), + [0,caml_string_of_jsbytes("direct"),0]], + _Um_=[0,0], + _Uf_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1199, + 5, + 1222, + 10, + [0, + caml_string_of_jsbytes("Article R823-4"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Un_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 346, + 12, + 346, + 30, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ue_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 346, + 12, + 346, + 30, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Uo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 346, + 12, + 346, + 30, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ud_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 346, + 12, + 346, + 30, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _T__= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 91, + 5, + 92, + 52, + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _T$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 320, + 11, + 320, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _T9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 84, + 5, + 87, + 52, + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]], + _Ua_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 320, + 11, + 320, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _T8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 320, + 11, + 320, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _T4_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 163, + 14, + 163, + 31, + [0, + caml_string_of_jsbytes("Article L351-8"), + [0, + caml_string_of_jsbytes("Section 5 : Taux et montant de la pension"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite"), + [0, + caml_string_of_jsbytes + ("Titre V : Assurance vieillesse - Assurance veuvage"), + [0, + caml_string_of_jsbytes + ("Livre III : Dispositions relatives aux assurances sociales et \xc3\xa0 diverses cat\xc3\xa9gories de personnes rattach\xc3\xa9es au r\xc3\xa9gime g\xc3\xa9n\xc3\xa9rale"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]], + _TZ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 401, + 18, + 401, + 44, + [0, + caml_string_of_jsbytes("Article L822-10"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _T0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 317, + 11, + 317, + 58, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 317, + 11, + 317, + 58, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 302, + 18, + 302, + 75, + [0, + caml_string_of_jsbytes("Article L822-5"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _TR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 334, + 11, + 334, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TN_=[5,0], + _TO_=[4,0], + _TP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 288, + 18, + 290, + 45, + [0, + caml_string_of_jsbytes("Article L822-5"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _TS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 334, + 11, + 334, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 334, + 11, + 334, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TM_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 945, + 5, + 945, + 58, + [0, + caml_string_of_jsbytes("Article R822-22"), + [0, + caml_string_of_jsbytes + ("Sous-section 4 : Prise en compte du patrimoine"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _TU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 334, + 11, + 334, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 271, + 33, + 271, + 58, + [0, + caml_string_of_jsbytes("Article L822-5"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _TH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 125, + 14, + 125, + 32, + [0, + caml_string_of_jsbytes("Article L161-17-2"), + [0, + caml_string_of_jsbytes + ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), + [0, + caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), + [0, + caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Dispositions relatives aux prestations"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), + [0, + caml_string_of_jsbytes + ("Titre III: Titre III : Dispositions communes relatives au financement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), [0, - function(param){ - function _E$_(param){return 1;} - function _Fa_(param){ - switch(enfant[2][0]){ - case 0: - var _Fk_ = 0; break; - case 1: - var _Fk_ = 1; break; - default: var _Fk_ = 0; - } - switch(enfant[2][0]){ - case 0: - var _Fl_ = 1; break; - case 1: - var _Fl_ = 0; break; - default: var _Fl_ = 0; - } - var - _Fm_ = caml_call2(Runtime_ocaml_Runtime[84], _Fl_, _Fk_); - return caml_call2(Runtime_ocaml_Runtime[29], _ck_, _Fm_); - } - var - _Fb_ = - [0, - function(param){ - function _Fc_(param){return 1;} - function _Fd_(param){ - var - _Fe_ = - caml_call3 - (Runtime_ocaml_Runtime[94], 2, enfant[4], age_l512_3_2), - _Ff_ = - caml_call2(Runtime_ocaml_Runtime[125], _Fe_, date_courante), - _Fg_ = - caml_call2 - (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2), - _Fh_ = caml_call2(Runtime_ocaml_Runtime[83], _Fg_, _Ff_); - switch(enfant[2][0]){ - case 0: - var _Fi_ = 0; break; - case 1: - var _Fi_ = 0; break; - default: var _Fi_ = 1; - } - var - _Fj_ = caml_call2(Runtime_ocaml_Runtime[83], _Fi_, _Fh_); - return caml_call2(Runtime_ocaml_Runtime[29], _cl_, _Fj_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _cm_, [0], _Fd_, _Fc_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _cn_, _Fb_, _Fa_, _E$_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _co_, _E__, _E9_, _E8_); - } - function _E4_(param){return 1;} - var - _E5_ = + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]]]], + _Tz_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5280, + 5, + 5281, + 34, + [0, + caml_string_of_jsbytes("Article R844-4"), + [0, + caml_string_of_jsbytes("Chapitre IV : Conditions de peuplement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _TA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 314, + 12, + 314, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ty_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5273, + 5, + 5275, + 58, + [0, + caml_string_of_jsbytes("Article R844-4"), + [0, + caml_string_of_jsbytes("Chapitre IV : Conditions de peuplement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _TB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 314, + 12, + 314, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Tx_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1048, + 5, + 1065, + 65, + [0, + caml_string_of_jsbytes("Article R822-25"), + [0, + caml_string_of_jsbytes + ("Section 3 : Conditions relatives au logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _TC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 314, + 12, + 314, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Tw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 314, + 12, + 314, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 314, + 12, + 314, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Tp_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 189, + 5, + 195, + 65, + [0, + caml_string_of_jsbytes("Article L822-3"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Tq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 312, + 11, + 312, + 45, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _To_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 174, + 5, + 176, + 30, + [0, + caml_string_of_jsbytes("Article L822-3"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Tr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 312, + 11, + 312, + 45, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Tn_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 143, + 5, + 149, + 33, + [0, + caml_string_of_jsbytes("Article L822-2"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Ts_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 312, + 11, + 312, + 45, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Tm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 312, + 11, + 312, + 45, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Td_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5723, + 5, + 5726, + 28, + [0, + caml_string_of_jsbytes("Article R862-2"), + [0, + caml_string_of_jsbytes + ("Section I : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Te_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5722, + 24, + 5722, + 59, + [0, + caml_string_of_jsbytes("Article R862-2"), + [0, + caml_string_of_jsbytes + ("Section I : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Tc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5628, + 6, + 5634, + 30, + [0, + caml_string_of_jsbytes("Article D861-9"), + [0, + caml_string_of_jsbytes("Section 2 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Tf_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5722, + 24, + 5722, + 59, + [0, + caml_string_of_jsbytes("Article R862-2"), + [0, + caml_string_of_jsbytes + ("Section I : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Tg_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5722, + 24, + 5722, + 59, + [0, + caml_string_of_jsbytes("Article R862-2"), + [0, + caml_string_of_jsbytes + ("Section I : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Tb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1152, + 14, + 1152, + 49, + [0, + caml_string_of_jsbytes("Article R823-4"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Th_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5722, + 24, + 5722, + 59, + [0, + caml_string_of_jsbytes("Article R862-2"), + [0, + caml_string_of_jsbytes + ("Section I : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Ti_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("prestations_familiales.\xc3\xa2ge_l512_3_2"), + 0]], + _S__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 383, + 14, + 383, + 46, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _S6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 381, + 14, + 381, + 56, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _S5_=[3,0], + _S1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 380, + 14, + 380, + 50, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 227, + 22, + 227, + 27, + [0, + caml_string_of_jsbytes("Article L822-4"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _SR_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _SS_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + [0,caml_string_of_jsbytes("direct"),0]], + _ST_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 224, + 8, + 227, + 29, + [0, + caml_string_of_jsbytes("Article L822-4"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _SU_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _SV_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + [0,caml_string_of_jsbytes("direct"),0]], + _SP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 221, + 5, + 229, + 39, + [0, + caml_string_of_jsbytes("Article L822-4"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _SW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 313, + 11, + 313, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SO_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 215, + 5, + 216, + 34, + [0, + caml_string_of_jsbytes("Article L822-4"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _SX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 313, + 11, + 313, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 313, + 11, + 313, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SI_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 329, + 5, + 330, + 34, + [0, + caml_string_of_jsbytes("Article D815-1"), + [0, + caml_string_of_jsbytes + ("Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]], + _SJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 337, + 11, + 337, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SG_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 334, + 5, + 335, + 34, + [0, + caml_string_of_jsbytes("Article D815-1"), + [0, + caml_string_of_jsbytes + ("Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]], + _SH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 337, + 11, + 337, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SE_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 339, + 5, + 340, + 34, + [0, + caml_string_of_jsbytes("Article D815-1"), + [0, + caml_string_of_jsbytes + ("Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]], + _SF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 337, + 11, + 337, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SC_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/autres_sources.catala_fr"), + 58, + 5, + 58, + 34, + [0, + caml_string_of_jsbytes + ('Circulaire de la CNAV 2023-3 du 09/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2023"'), + [0, + caml_string_of_jsbytes + ("Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), + 0]]], + _SD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 337, + 11, + 337, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SA_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/autres_sources.catala_fr"), + 89, + 5, + 90, + 33, + [0, + caml_string_of_jsbytes + ('Circulaire de la CNAV 2022-3 du 11/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2022"'), + [0, + caml_string_of_jsbytes + ("Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), + 0]]], + _SB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 337, + 11, + 337, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Sy_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/autres_sources.catala_fr"), + 122, + 5, + 123, + 33, + [0, + caml_string_of_jsbytes + ('Circulaire de la CNAV 2021-1 du 11/01/2021 "Revalorisation \xc3\xa0 compter du 1er janvier 2021"'), + [0, + caml_string_of_jsbytes + ("Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), + 0]]], + _Sz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 337, + 11, + 337, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _St_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1334, + 5, + 1334, + 40, + [0, + caml_string_of_jsbytes("Article L861-5"), + [0, + caml_string_of_jsbytes + ("Section 2 : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Su_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 310, + 11, + 310, + 32, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ss_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 125, + 14, + 125, + 35, + [0, + caml_string_of_jsbytes("Article L822-2"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _So_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 267, + 14, + 267, + 40, + [0, + caml_string_of_jsbytes("Article L822-5"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Si_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 123, + 14, + 123, + 61, + [0, + caml_string_of_jsbytes("Article L161-17-2"), + [0, + caml_string_of_jsbytes + ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), + [0, + caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), + [0, + caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Dispositions relatives aux prestations"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), + [0, + caml_string_of_jsbytes + ("Titre III: Titre III : Dispositions communes relatives au financement"), [0, - function(param){ - function _E6_(param){return 0;} - function _E7_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _cp_, enfant[7]); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _cq_, [0], _E7_, _E6_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _cr_, _E5_, _E4_, _E3_); - }], - _E1_ = caml_call4(Runtime_ocaml_Runtime[63], _cs_, _E0_, _EZ_, _EY_); - return _E1_; - } - catch(_E2_){ - var _EX_ = caml_wrap_exception(_E2_); - if(_EX_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _ci_], 1); - throw caml_maybe_attach_backtrace(_EX_, 0); - } - } - var - droit_ouvert = - caml_call3 - (Runtime_ocaml_Runtime[28], _ct_, Runtime_ocaml_Runtime[10], _EW_); - return [0, - droit_ouvert, - conditions_hors_age, - age_l512_3_2, - regime_outre_mer_l751_1]; - } - function allocations_familiales(allocations_familiales_in){ - var - personne_charge_effective_perm = allocations_familiales_in[1], - personne_charge_effective_perm$0 = allocations_familiales_in[2], - ressources_menage = allocations_familiales_in[3], - residence = allocations_familiales_in[4], - date_courante = allocations_familiales_in[5], - enfants_a_charge = allocations_familiales_in[6], - avait_enfant_a_charge_avant_1e = allocations_familiales_in[7]; - function _ls_(enfant){ - try{ - var - _Ea_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _Eb_ = function(param){return 0;}, - _Ec_ = - function(param){ - function _En_(param){return _cv_;} - function _Eo_(param){ - switch(enfant[5][0]){ - case 0: - var _Ex_ = 0; break; - case 1: - var _Ex_ = 0; break; - case 2: - var _Ex_ = 1; break; - case 3: - var _Ex_ = 0; break; - default: var _Ex_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _cw_, _Ex_); - } - var - _Ep_ = + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]]]], + _Sc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 46, + 5, + 46, + 41, + [0, + caml_string_of_jsbytes("Article L821-2"), + [0, + caml_string_of_jsbytes + ("Sous-section 1 : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Section 2 : R\xc3\xa8gles de non-cumul"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), [0, - function(param){ - function _Eq_(param){return _cx_;} - function _Er_(param){ - switch(enfant[5][0]){ - case 0: - var _Ew_ = 0; break; - case 1: - var _Ew_ = 1; break; - case 2: - var _Ew_ = 0; break; - case 3: - var _Ew_ = 0; break; - default: var _Ew_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _cy_, _Ew_); - } - var - _Es_ = - [0, - function(param){ - function _Et_(param){return _cz_;} - function _Eu_(param){ - switch(enfant[5][0]){ - case 0: - var _Ev_ = 0; break; - case 1: - var _Ev_ = 0; break; - case 2: - var _Ev_ = 0; break; - case 3: - var _Ev_ = 1; break; - default: var _Ev_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _cA_, _Ev_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _cB_, [0], _Eu_, _Et_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _cC_, _Es_, _Er_, _Eq_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _cD_, _Ep_, _Eo_, _En_); - }, - _Ed_ = - function(param){ - function _Ek_(param){return _cE_;} - function _El_(param){ - switch(enfant[5][0]){ - case 0: - var _Em_ = 0; break; - case 1: - var _Em_ = 0; break; - case 2: - var _Em_ = 0; break; - case 3: - var _Em_ = 0; break; - default: var _Em_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _cF_, _Em_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _cG_, [0], _El_, _Ek_); - }, - _Ee_ = + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _Sd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 311, + 12, + 311, + 51, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Sb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 311, + 12, + 311, + 51, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Se_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 311, + 12, + 311, + 51, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _R8_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 362, + 18, + 362, + 67, + [0, + caml_string_of_jsbytes("Article L822-8"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), [0, - function(param){ - function _Eh_(param){return _cH_;} - function _Ei_(param){ - switch(enfant[5][0]){ - case 0: - var _Ej_ = 1; break; - case 1: - var _Ej_ = 0; break; - case 2: - var _Ej_ = 0; break; - case 3: - var _Ej_ = 0; break; - default: var _Ej_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _cI_, _Ej_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _cJ_, [0], _Ei_, _Eh_); - }, - _Ed_, - _Ec_], - _Ef_ = caml_call4(Runtime_ocaml_Runtime[63], _cK_, _Ee_, _Eb_, _Ea_); - return _Ef_; - } - catch(_Eg_){ - var _D$_ = caml_wrap_exception(_Eg_); - if(_D$_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _cu_], 1); - throw caml_maybe_attach_backtrace(_D$_, 0); - } - } - var - prise_en_compte = - caml_call3 - (Runtime_ocaml_Runtime[28], _cL_, Runtime_ocaml_Runtime[10], _ls_); - function _lt_(enfant){ - try{ - var - _DN_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _DO_ = function(param){return 0;}, - _DP_ = - function(param){ - function _DW_(param){return _cN_;} - function _DX_(param){ - switch(enfant[5][0]){ - case 0: - var _D__ = 0; break; - case 1: - var _D__ = 0; break; - case 2: - var _D__ = 1; break; - case 3: - var _D__ = 0; break; - default: var _D__ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _cO_, _D__); - } - var - _DY_ = + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _R9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 315, + 11, + 315, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _R7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 315, + 11, + 315, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _R2_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 376, + 18, + 376, + 61, + [0, + caml_string_of_jsbytes("Article L822-9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _R3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 316, + 11, + 316, + 58, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _R1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 316, + 11, + 316, + 58, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RV_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 1376, + 5, + 1376, + 40, + [0, + caml_string_of_jsbytes("Article L861-5"), + [0, + caml_string_of_jsbytes + ("Section 2 : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), [0, - function(param){ - function _DZ_(param){return _cP_;} - function _D0_(param){ - switch(enfant[5][0]){ - case 0: - var _D9_ = 0; break; - case 1: - var _D9_ = 1; break; - case 2: - var _D9_ = 0; break; - case 3: - var _D9_ = 0; break; - default: var _D9_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _cQ_, _D9_); - } - var - _D1_ = - [0, - function(param){ - function _D2_(param){return _cR_;} - function _D3_(param){ - switch(enfant[5][0]){ - case 0: - var _D8_ = 1; break; - case 1: - var _D8_ = 0; break; - case 2: - var _D8_ = 0; break; - case 3: - var _D8_ = 0; break; - default: var _D8_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _cS_, _D8_); - } - var - _D4_ = - [0, - function(param){ - function _D5_(param){return _cT_;} - function _D6_(param){ - switch(enfant[5][0]){ - case 0: - var _D7_ = 0; break; - case 1: - var _D7_ = 0; break; - case 2: - var _D7_ = 0; break; - case 3: - var _D7_ = 1; break; - default: var _D7_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _cU_, _D7_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _cV_, [0], _D6_, _D5_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _cW_, _D4_, _D3_, _D2_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _cX_, _D1_, _D0_, _DZ_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _cY_, _DY_, _DX_, _DW_); - }, - _DQ_ = + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _RW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 319, + 11, + 319, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RU_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 445, + 9, + 445, + 42, + [0, + caml_string_of_jsbytes("Article L823-1"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), [0, - function(param){ - function _DT_(param){return _cZ_;} - function _DU_(param){ - switch(enfant[5][0]){ - case 0: - var _DV_ = 0; break; - case 1: - var _DV_ = 0; break; - case 2: - var _DV_ = 0; break; - case 3: - var _DV_ = 0; break; - default: var _DV_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _c0_, _DV_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _c1_, [0], _DU_, _DT_); - }, - _DP_], - _DR_ = caml_call4(Runtime_ocaml_Runtime[63], _c2_, _DQ_, _DO_, _DN_); - return _DR_; - } - catch(_DS_){ - var _DM_ = caml_wrap_exception(_DS_); - if(_DM_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _cM_], 1); - throw caml_maybe_attach_backtrace(_DM_, 0); - } - } - caml_call3 - (Runtime_ocaml_Runtime[28], _c3_, Runtime_ocaml_Runtime[10], _lt_); - try{ - var - _lv_ = - function(param){return caml_call1(Runtime_ocaml_Runtime[46], cst_3);}, - _lw_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _c5_, 1); - }, - _lx_ = caml_call4(Runtime_ocaml_Runtime[63], _c6_, [0], _lw_, _lv_); - } - catch(_DL_){ - var _lu_ = caml_wrap_exception(_DL_); - if(_lu_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _c4_], 1); - throw caml_maybe_attach_backtrace(_lu_, 0); - } - caml_call3 - (Runtime_ocaml_Runtime[28], _c7_, Runtime_ocaml_Runtime[14], _lx_); - try{ - var - _lz_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[46], cst_3$0); - }, - _lA_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _c9_, 1); - }, - _lB_ = caml_call4(Runtime_ocaml_Runtime[63], _c__, [0], _lA_, _lz_); - } - catch(_DK_){ - var _ly_ = caml_wrap_exception(_DK_); - if(_ly_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _c8_], 1); - throw caml_maybe_attach_backtrace(_ly_, 0); - } - var - nombre_enfants_alinea_2_l521_3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _c$_, Runtime_ocaml_Runtime[14], _lB_), - _lC_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _da_, allocation_familiales_avril200), - 0), - result = caml_call2(Runtime_ocaml_Runtime[27], _db_, _lC_), - version_avril_2008_dot_age_min = result[1]; - try{ - var - _lE_ = function(param){return date_courante;}, - _lF_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _dd_, 1); - }, - _lG_ = caml_call4(Runtime_ocaml_Runtime[63], _de_, [0], _lF_, _lE_), - bmaf_dot_date_courante = - caml_call3 - (Runtime_ocaml_Runtime[28], _df_, Runtime_ocaml_Runtime[16], _lG_); - } - catch(_DJ_){ - var _lD_ = caml_wrap_exception(_DJ_); - if(_lD_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _dc_], 1); - throw caml_maybe_attach_backtrace(_lD_, 0); - } - var - _lH_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _dg_, base_mensuelle_allocations_fam), - [0, bmaf_dot_date_courante]), - result$0 = caml_call2(Runtime_ocaml_Runtime[27], _dh_, _lH_), - bmaf_dot_montant = result$0[1]; - try{ - var - _lJ_ = function(param){return date_courante;}, - _lK_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _dj_, 1); - }, - _lL_ = caml_call4(Runtime_ocaml_Runtime[63], _dk_, [0], _lK_, _lJ_), - prestations_familiales_dot_dat = - caml_call3 - (Runtime_ocaml_Runtime[28], _dl_, Runtime_ocaml_Runtime[16], _lL_); - } - catch(_DI_){ - var _lI_ = caml_wrap_exception(_DI_); - if(_lI_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _di_], 1); - throw caml_maybe_attach_backtrace(_lI_, 0); - } - try{ - var - _lN_ = function(param){return _dn_;}, - _lO_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _do_, 1); - }, - _lP_ = caml_call4(Runtime_ocaml_Runtime[63], _dp_, [0], _lO_, _lN_), - prestations_familiales_dot_pre = - caml_call3 - (Runtime_ocaml_Runtime[28], - _dq_, - embed_element_prestations_fami, - _lP_); - } - catch(_DH_){ - var _lM_ = caml_wrap_exception(_DH_); - if(_lM_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _dm_], 1); - throw caml_maybe_attach_backtrace(_lM_, 0); - } - try{ - var - _lR_ = function(param){return residence;}, - _lS_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ds_, 1); - }, - _lT_ = caml_call4(Runtime_ocaml_Runtime[63], _dt_, [0], _lS_, _lR_), - prestations_familiales_dot_res = - caml_call3(Runtime_ocaml_Runtime[28], _du_, embed_collectivite, _lT_); - } - catch(_DG_){ - var _lQ_ = caml_wrap_exception(_DG_); - if(_lQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _dr_], 1); - throw caml_maybe_attach_backtrace(_lQ_, 0); - } - var - _lU_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _dv_, prestations_familiales), + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _RX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 319, + 11, + 319, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 319, + 11, + 319, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1035, + 14, + 1035, + 39, + [0, + caml_string_of_jsbytes("Article R822-25"), + [0, + caml_string_of_jsbytes + ("Section 3 : Conditions relatives au logement"), [0, - prestations_familiales_dot_dat, - prestations_familiales_dot_pre, - prestations_familiales_dot_res]), - result$1 = caml_call2(Runtime_ocaml_Runtime[27], _dw_, _lU_), - prestations_familiales_dot_dro = result$1[1], - prestations_familiales_dot_con = result$1[2], - prestations_familiales_dot_age = result$1[3], - prestations_familiales_dot_reg = result$1[4]; - try{ - var - _lW_ = function(param){return enfants_a_charge;}, - _lX_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _dy_, 1); - }, - _lY_ = caml_call4(Runtime_ocaml_Runtime[63], _dz_, [0], _lX_, _lW_), - _lZ_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), - enfant_le_plus_age_dot_enfants = - caml_call3(Runtime_ocaml_Runtime[28], _dA_, _lZ_, _lY_); - } - catch(_DF_){ - var _lV_ = caml_wrap_exception(_DF_); - if(_lV_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _dx_], 1); - throw caml_maybe_attach_backtrace(_lV_, 0); - } - var - _l0_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _dB_, enfant_le_plus_age), - [0, enfant_le_plus_age_dot_enfants]), - result$2 = caml_call2(Runtime_ocaml_Runtime[27], _dC_, _l0_), - enfant_le_plus_age_dot_le_plus = result$2[1]; - function _l1_(enfant){ - try{ - var - _Du_ = - function(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 14, 0, 0); - }, - _Dv_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _dE_, 1); - }, - _Dw_ = + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _RL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 164, + 14, + 164, + 43, + [0, + caml_string_of_jsbytes("Article L822-3"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), [0, - function(param){ - function _Dz_(param){return version_avril_2008_dot_age_min;} - function _DA_(param){ - var - _DB_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 4, 30), - _DC_ = caml_call3(Runtime_ocaml_Runtime[60], 11, 0, 0), - _DD_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _DC_), - _DE_ = caml_call2(Runtime_ocaml_Runtime[120], _DD_, _DB_); - return caml_call2(Runtime_ocaml_Runtime[29], _dF_, _DE_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _dG_, [0], _DA_, _Dz_); - }], - _Dx_ = caml_call4(Runtime_ocaml_Runtime[63], _dH_, _Dw_, _Dv_, _Du_); - return _Dx_; - } - catch(_Dy_){ - var _Dt_ = caml_wrap_exception(_Dy_); - if(_Dt_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _dD_], 1); - throw caml_maybe_attach_backtrace(_Dt_, 0); - } - } - var - age_minimum_alinea_1_l521_3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _dI_, Runtime_ocaml_Runtime[10], _l1_); - try{ - var - _l3_ = - function(param){ - function _Dp_(enfant){ - var - _Dq_ = - caml_call3(Runtime_ocaml_Runtime[28], _dK_, embed_enfant, enfant), - _Dr_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _dL_, - prestations_familiales_dot_dro), - _Dq_), - _Ds_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _dM_, - Runtime_ocaml_Runtime[12], - _Dr_); - return caml_call2(Runtime_ocaml_Runtime[27], _dN_, _Ds_); - } - return caml_call2(Runtime_ocaml_Runtime[90], _Dp_, enfants_a_charge); - }, - _l4_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _dO_, 1); - }, - _l5_ = caml_call4(Runtime_ocaml_Runtime[63], _dP_, [0], _l4_, _l3_); - } - catch(_Do_){ - var _l2_ = caml_wrap_exception(_Do_); - if(_l2_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _dJ_], 1); - throw caml_maybe_attach_backtrace(_l2_, 0); - } - var - _l6_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), - enfants_a_charge_droit_ouvert_ = - caml_call3(Runtime_ocaml_Runtime[28], _dQ_, _l6_, _l5_); - function _l7_(enfant){ - try{ - var - _Dk_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[86], - enfant_le_plus_age_dot_le_plus, - enfant); - }, - _Dl_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _dS_, 1); - }, - _Dm_ = caml_call4(Runtime_ocaml_Runtime[63], _dT_, [0], _Dl_, _Dk_); - return _Dm_; - } - catch(_Dn_){ - var _Dj_ = caml_wrap_exception(_Dn_); - if(_Dj_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _dR_], 1); - throw caml_maybe_attach_backtrace(_Dj_, 0); - } - } - var - est_enfant_le_plus_age = - caml_call3 - (Runtime_ocaml_Runtime[28], _dU_, Runtime_ocaml_Runtime[10], _l7_); - try{ - var - _l9_ = - function(param){ + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _RH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 928, + 14, + 928, + 37, + [0, + caml_string_of_jsbytes("Article R822-22"), + [0, + caml_string_of_jsbytes + ("Sous-section 4 : Prise en compte du patrimoine"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _RD_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 106, + 14, + 106, + 41, + [0, + caml_string_of_jsbytes("Article R822-1"), + [0, + caml_string_of_jsbytes + ("Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Rz_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 105, + 14, + 105, + 42, + [0, + caml_string_of_jsbytes("Article R822-1"), + [0, + caml_string_of_jsbytes + ("Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ru_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5464, + 14, + 5464, + 46, + [0, + caml_string_of_jsbytes("Article R861-5"), + [0, + caml_string_of_jsbytes + ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Rv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 325, + 12, + 325, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Rq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 318, + 11, + 318, + 48, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Rm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 309, + 11, + 309, + 25, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Rn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 309, + 11, + 309, + 25, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Rl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 309, + 11, + 309, + 25, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ro_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_pr\xc3\xaat"),0]], + _Rr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 318, + 11, + 318, + 48, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Rp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 318, + 11, + 318, + 48, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Rs_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_peuplement_logement_l822_10"),0]], + _Rw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 325, + 12, + 325, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Rt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 325, + 12, + 325, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Rx_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes + ("date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch"), + 0]], + _RA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 331, + 11, + 331, + 39, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ry_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 331, + 11, + 331, + 39, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RB_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("seuil_l822_3_parts_propri\xc3\xa9t\xc3\xa9"), + 0]], + _RE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 332, + 11, + 332, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 332, + 11, + 332, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RF_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("seuil_l822_3_parts_usufruit"),0]], + _RI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 333, + 11, + 333, + 34, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 333, + 11, + 333, + 34, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RJ_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("seuil_l822_5_patrimoine"),0]], + _RM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 330, + 11, + 330, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 330, + 11, + 330, + 40, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RN_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("usufruit_ou_propri\xc3\xa9t\xc3\xa9_famille"), + 0]], + _RQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 326, + 11, + 326, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 326, + 11, + 326, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RR_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("nombre_personnes_logement"),0]], + _RY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 319, + 11, + 319, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 319, + 11, + 319, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _RZ_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes + ("septi\xc3\xa8me_alin\xc3\xa9a_l823_1_applicable"), + 0]], + _R4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 316, + 11, + 316, + 58, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _R0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 316, + 11, + 316, + 58, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _R5_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes + ("condition_non_ouverture_l822_9_decence_logement"), + 0]], + _R__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 315, + 11, + 315, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _R6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 315, + 11, + 315, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _R$_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_non_ouverture_l822_8"),0]], + _Sf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 311, + 12, + 311, + 51, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Sa_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 311, + 12, + 311, + 51, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Sg_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes + ("condition_logement_r\xc3\xa9sidence_principale"), + 0]], + _Sj_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 123, + 14, + 123, + 61, + [0, + caml_string_of_jsbytes("Article L161-17-2"), + [0, + caml_string_of_jsbytes + ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), + [0, + caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), + [0, + caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Dispositions relatives aux prestations"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), + [0, + caml_string_of_jsbytes + ("Titre III: Titre III : Dispositions communes relatives au financement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]]]], + _Sk_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes + ("ouverture_droits_retraite.date_naissance_assur\xc3\xa9"), + 0]], + _Sh_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 123, + 14, + 123, + 61, + [0, + caml_string_of_jsbytes("Article L161-17-2"), + [0, + caml_string_of_jsbytes + ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), + [0, + caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), + [0, + caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Dispositions relatives aux prestations"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), + [0, + caml_string_of_jsbytes + ("Titre III: Titre III : Dispositions communes relatives au financement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]]]], + _Sl_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("ouverture_droits_retraite"), + [0,caml_string_of_jsbytes("OuvertureDroitsRetraite"),0]]], + _Sm_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("ouverture_droits_retraite"), + [0,caml_string_of_jsbytes("OuvertureDroitsRetraite"),0]]], + _Sp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 329, + 11, + 329, + 37, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Sn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 329, + 11, + 329, + 37, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Sq_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("patrimoine_total_demandeur"),0]], + _Sv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 310, + 11, + 310, + 32, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Sr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 310, + 11, + 310, + 32, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Sw_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_nationalit\xc3\xa9"),0]], + _SK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 337, + 11, + 337, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Sx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 337, + 11, + 337, + 41, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SL_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("plafond_individuel_l815_9_s\xc3\xa9cu"),0]], + _SY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 313, + 11, + 313, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 313, + 11, + 313, + 44, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _SZ_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_logement_location_tiers"),0]], + _S2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 380, + 14, + 380, + 50, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _S3_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("prestations_familiales.date_courante"),0]], + _S0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 380, + 14, + 380, + 50, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _S7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 381, + 14, + 381, + 56, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _S8_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("prestations_familiales.prestation_courante"), + 0]], + _S4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 381, + 14, + 381, + 56, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _S$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 383, + 14, + 383, + 46, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ta_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("prestations_familiales.r\xc3\xa9sidence"),0]], + _S9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 383, + 14, + 383, + 46, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Tj_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("prestations_familiales"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + 0]]], + _Tk_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("prestations_familiales"), + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + 0]]], + _Tt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 312, + 11, + 312, + 45, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Tl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 312, + 11, + 312, + 45, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Tu_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_logement_mode_occupation"),0]], + _TE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 314, + 12, + 314, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Tv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 314, + 12, + 314, + 38, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TF_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_logement_surface"),0]], + _TI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 336, + 11, + 336, + 29, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 336, + 11, + 336, + 29, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TJ_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("\xc3\xa2ge_l161_17_2_s\xc3\xa9cu"),0]], + _TV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 334, + 11, + 334, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 334, + 11, + 334, + 36, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TW_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("patrimoine_pris_en_compte"),0]], + _T1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 317, + 11, + 317, + 58, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _TX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 317, + 11, + 317, + 58, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _T2_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes + ("condition_ouverture_l822_10_peuplement_logement"), + 0]], + _T5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 335, + 11, + 335, + 28, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _T3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 335, + 11, + 335, + 28, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _T6_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("\xc3\xa2ge_l351_8_1_s\xc3\xa9cu"),0]], + _Ub_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 320, + 11, + 320, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _T7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 320, + 11, + 320, + 31, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Uc_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_logement"),0]], + _Up_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], + _Uu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 342, + 12, + 342, + 23, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Uq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 342, + 12, + 342, + 23, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Uv_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], + _UW_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), + 0]], + _U3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 323, + 11, + 323, + 46, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _UX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 323, + 11, + 323, + 46, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _U4_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("personnes_\xc3\xa0_charge_prises_en_compte"), + 0]], + _U7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 344, + 12, + 344, + 61, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _U5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 344, + 12, + 344, + 61, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _U8_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes + ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), + 0]], + _U$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 343, + 12, + 343, + 54, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _U9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 343, + 12, + 343, + 54, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Va_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes + ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), + 0]], + _Vb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 200, + 13, + 200, + 47, + [0, + caml_string_of_jsbytes("Article L822-3"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Vg_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 200, + 13, + 200, + 47, + [0, + caml_string_of_jsbytes("Article L822-3"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Vc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 199, + 13, + 199, + 48, + [0, + caml_string_of_jsbytes("Article L822-3"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Vf_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 199, + 13, + 199, + 48, + [0, + caml_string_of_jsbytes("Article L822-3"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Vd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 378, + 13, + 378, + 42, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ve_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 378, + 13, + 378, + 42, + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ri_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1457, + 14, + 1457, + 33, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Re_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1459, + 14, + 1459, + 36, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Rf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 832, + 12, + 832, + 34, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Rd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 832, + 12, + 832, + 34, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Q$_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 6355, + 24, + 6355, + 46, + [0, + caml_string_of_jsbytes("Article D863-7"), + [0, + caml_string_of_jsbytes + ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Section II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Q4_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Q5_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _Q6_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _Q7_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _Q1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 6395, + 42, + 6395, + 45, + [0, + caml_string_of_jsbytes("Article D863-7"), + [0, + caml_string_of_jsbytes + ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Section II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Q2_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _Q3_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("direct"),0]], + _Q8_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 6371, + 9, + 6398, + 10, + [0, + caml_string_of_jsbytes("Article D863-7"), + [0, + caml_string_of_jsbytes + ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Section II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Q9_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _Q__= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("direct"),0]], + _Ra_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 829, + 11, + 829, + 33, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Q0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1469, + 14, + 1469, + 36, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _QT_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _QU_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _QV_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _QW_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _QK_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _QL_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _QM_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _QN_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _QB_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _QC_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _QD_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale"), + [0,caml_string_of_jsbytes("output"),0]]], + _QE_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _Qy_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1488, + 16, + 1491, + 39, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Qz_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _QA_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("direct"),0]], + _QF_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1473, + 9, + 1494, + 10, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _QG_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _QH_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("direct"),0]], + _QI_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _QJ_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("direct"),0]], + _QO_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1526, + 10, + 1542, + 11, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _QP_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _QQ_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("direct"),0]], + _QR_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _QS_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("direct"),0]], + _QX_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1505, + 9, + 1515, + 10, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _QY_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _QZ_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("direct"),0]], + _Qu_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 80, + 14, + 80, + 44, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Qo_=[0,0], + _Qp_=[1,0], + _Qq_=[1,0], + _Qr_=[1,0], + _Qs_=[0,0], + _Qt_=[1,0], + _Qk_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1968, + 14, + 1968, + 31, + [0, + caml_string_of_jsbytes("Article D823-17"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _Qg_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1446, + 14, + 1446, + 34, + [0, + caml_string_of_jsbytes("Article D823-9"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Qh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 826, + 11, + 826, + 31, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Qf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 826, + 11, + 826, + 31, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Qi_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("cat\xc3\xa9gorie_calcul_apl"),0]], + _Ql_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 819, + 10, + 819, + 22, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Qj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 819, + 10, + 819, + 22, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Qm_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("ressources_m\xc3\xa9nage_avec_arrondi"),0]], + _Qv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 827, + 11, + 827, + 41, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Qn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 827, + 11, + 827, + 41, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Qw_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("situation_familiale_calcul_apl"),0]], + _Rb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 829, + 11, + 829, + 33, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Qx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 829, + 11, + 829, + 33, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Rc_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("sous_calcul_traitement"),0]], + _Rg_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _Rj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 831, + 12, + 831, + 31, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Rh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 831, + 12, + 831, + 31, + [0, + caml_string_of_jsbytes("Tous secteurs"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Rk_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), + [0,caml_string_of_jsbytes("aide_finale_formule"),0]], + _P__= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4505, + 14, + 4505, + 36, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _P6_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + [0,caml_string_of_jsbytes("input0"),0]]], + _P7_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _P8_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + [0,caml_string_of_jsbytes("output"),0]]], + _P9_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _P$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 983, + 10, + 983, + 25, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _P5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 983, + 10, + 983, + 25, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _P2_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4485, + 14, + 4485, + 36, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _PU_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _PV_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), + 0]], + _PW_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("output"),0]]], + _PX_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), + 0]], + _PY_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("montant"), + [0,caml_string_of_jsbytes("input0"),0]]], + _PZ_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _P0_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("montant"), + [0,caml_string_of_jsbytes("output"),0]]], + _P1_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _P3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 982, + 10, + 982, + 40, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _PT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 982, + 10, + 982, + 40, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _PQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4390, + 14, + 4390, + 33, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _PM_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4471, + 14, + 4471, + 36, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _PE_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + [0,caml_string_of_jsbytes("input0"),0]]], + _PF_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _PG_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + [0,caml_string_of_jsbytes("output"),0]]], + _PH_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _PI_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _PJ_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), + 0]], + _PK_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("output"),0]]], + _PL_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), + 0]], + _PN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 981, + 10, + 981, + 32, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _PD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 981, + 10, + 981, + 32, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _PA_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4423, + 14, + 4423, + 33, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Pw_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4653, + 14, + 4653, + 47, + [0, + caml_string_of_jsbytes("Article D842-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ps_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Pt_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], + _Pu_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("output"),0]]], + _Pv_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], + _Px_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 958, + 11, + 958, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Pr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 958, + 11, + 958, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Po_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4412, + 14, + 4412, + 41, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Pk_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4438, + 14, + 4438, + 33, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Pf_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4588, + 5, + 4588, + 44, + [0, + caml_string_of_jsbytes("Article D842-9"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _O9_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + [0,caml_string_of_jsbytes("input1"),0]]], + _O__= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + [0,caml_string_of_jsbytes("input0"),0]]], + _O$_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + [0,caml_string_of_jsbytes("output"),0]]], + _Pa_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + 0]], + _Pb_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + [0,caml_string_of_jsbytes("input1"),0]]], + _Pc_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Pd_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + [0,caml_string_of_jsbytes("output"),0]]], + _Pe_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + 0]], + _Pg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 945, + 11, + 945, + 36, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _O8_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4569, + 14, + 4569, + 39, + [0, + caml_string_of_jsbytes("Article D842-9"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _O4_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + [0,caml_string_of_jsbytes("input1"),0]]], + _O5_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + [0,caml_string_of_jsbytes("input0"),0]]], + _O6_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + [0,caml_string_of_jsbytes("output"),0]]], + _O7_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + 0]], + _OZ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4683, + 7, + 4683, + 26, + [0, + caml_string_of_jsbytes("Article D842-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _O0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 953, + 11, + 953, + 47, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4664, + 14, + 4664, + 50, + [0, + caml_string_of_jsbytes("Article D842-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _OQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5910, + 5, + 5913, + 28, + [0, + caml_string_of_jsbytes("Article D862-7"), + [0, + caml_string_of_jsbytes("Section III : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _OR_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5908, + 9, + 5908, + 75, + [0, + caml_string_of_jsbytes("Article D862-7"), + [0, + caml_string_of_jsbytes("Section III : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _OP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5555, + 5, + 5561, + 28, + [0, + caml_string_of_jsbytes("Article D861-8"), + [0, + caml_string_of_jsbytes("Section 2 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _OS_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5908, + 9, + 5908, + 75, + [0, + caml_string_of_jsbytes("Article D862-7"), + [0, + caml_string_of_jsbytes("Section III : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _OT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5908, + 9, + 5908, + 75, + [0, + caml_string_of_jsbytes("Article D862-7"), + [0, + caml_string_of_jsbytes("Section III : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _OU_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.limitation_majoration_personnes_\xc3\xa0_charge"), + 0]], + _OM_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4409, + 14, + 4409, + 61, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _ON_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4409, + 14, + 4409, + 61, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _OO_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.condition_2_du_832_25"), + 0]], + _OJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1006, + 14, + 1006, + 49, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 996, + 14, + 996, + 49, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1007, + 14, + 1007, + 53, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ox_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1004, + 14, + 1004, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ot_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1002, + 14, + 1002, + 70, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Op_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1000, + 14, + 1000, + 65, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ol_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 998, + 14, + 998, + 67, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Oh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 994, + 14, + 994, + 61, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Od_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 992, + 14, + 992, + 59, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Oc_=[3,0], + _N8_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4445, + 14, + 4445, + 70, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _N4_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4442, + 14, + 4442, + 69, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _N0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4443, + 14, + 4443, + 75, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _NW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1010, + 14, + 1010, + 61, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _NM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3408, + 5, + 3416, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _NI_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input1"),0]]], + _NJ_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input0"),0]]], + _NK_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("output"),0]]], + _NL_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + 0]], + _NN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 951, + 10, + 951, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _NH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2872, + 5, + 2880, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ND_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input1"),0]]], + _NE_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input0"),0]]], + _NF_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("output"),0]]], + _NG_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + 0]], + _NO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 951, + 10, + 951, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _NC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1802, + 5, + 1810, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ny_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input1"),0]]], + _Nz_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input0"),0]]], + _NA_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("output"),0]]], + _NB_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + 0]], + _NP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 951, + 10, + 951, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Nx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 683, + 5, + 691, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Nt_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input1"),0]]], + _Nu_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Nv_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("output"),0]]], + _Nw_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + 0]], + _NQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 951, + 10, + 951, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ns_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 189, + 5, + 197, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _No_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input1"),0]]], + _Np_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Nq_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("output"),0]]], + _Nr_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + 0]], + _NR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 951, + 10, + 951, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _NS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 951, + 10, + 951, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Nn_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3987, + 14, + 3987, + 46, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Nj_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input1"),0]]], + _Nk_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Nl_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("output"),0]]], + _Nm_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + 0]], + _NT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 951, + 10, + 951, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ni_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 951, + 10, + 951, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ne_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4744, + 5, + 4744, + 28, + [0, + caml_string_of_jsbytes("Article D842-12"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Nf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 924, + 10, + 924, + 15, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Nd_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4734, + 14, + 4734, + 41, + [0, + caml_string_of_jsbytes("Article D842-12"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _M$_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4641, + 15, + 4641, + 37, + [0, + caml_string_of_jsbytes("Article D842-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Na_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 956, + 11, + 956, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _M__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 956, + 11, + 956, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _M3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2609, + 5, + 2609, + 16, + [0, + caml_string_of_jsbytes("Article 37"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _MZ_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("input1"),0]]], + _M0_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("input0"),0]]], + _M1_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("output"),0]]], + _M2_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + 0]], + _M4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 950, + 10, + 950, + 26, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _MY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1533, + 5, + 1533, + 16, + [0, + caml_string_of_jsbytes("Article 37"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _MU_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("input1"),0]]], + _MV_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("input0"),0]]], + _MW_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("output"),0]]], + _MX_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + 0]], + _M5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 950, + 10, + 950, + 26, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _MT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4073, + 5, + 4073, + 16, + [0, + caml_string_of_jsbytes("Article 37"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _MP_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("input1"),0]]], + _MQ_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("input0"),0]]], + _MR_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("output"),0]]], + _MS_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + 0]], + _M6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 950, + 10, + 950, + 26, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _M7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 950, + 10, + 950, + 26, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _MO_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3981, + 14, + 3981, + 46, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _MK_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("input1"),0]]], + _ML_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("input0"),0]]], + _MM_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + [0,caml_string_of_jsbytes("output"),0]]], + _MN_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + 0]], + _M8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 950, + 10, + 950, + 26, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _MJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 950, + 10, + 950, + 26, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _MG_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4457, + 14, + 4457, + 36, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _MH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 980, + 10, + 980, + 32, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _MF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 980, + 10, + 980, + 32, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _MB_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4705, + 6, + 4711, + 6, + [0, + caml_string_of_jsbytes("Article D842-12"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _MC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 954, + 11, + 954, + 42, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mz_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4723, + 5, + 4724, + 59, + [0, + caml_string_of_jsbytes("Article D842-12"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _MA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 954, + 11, + 954, + 42, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mr_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4441, + 5, + 4449, + 16, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Chapitre IX : Calcul des allocations de logement en outre-mer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ms_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 341, + 6, + 348, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Mq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1953, + 6, + 1960, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Mn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ml_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 837, + 6, + 844, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Mo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3025, + 6, + 3032, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Mk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3561, + 6, + 3568, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Mi_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Me_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4381, + 6, + 4388, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Chapitre IX : Calcul des allocations de logement en outre-mer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Mf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 260, + 6, + 267, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Md_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _L$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1873, + 6, + 1880, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ma_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _L__= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 756, + 6, + 763, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Mb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _L8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2945, + 6, + 2952, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _L9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _L6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3481, + 6, + 3488, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _L7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _L3_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4091, + 57, + 4091, + 68, + [0, + caml_string_of_jsbytes("Article 37"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _L4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _L1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1553, + 5, + 1553, + 16, + [0, + caml_string_of_jsbytes("Article 37"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _L2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2630, + 5, + 2630, + 16, + [0, + caml_string_of_jsbytes("Article 37"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _L0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _L5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LW_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4035, + 29, + 4035, + 56, + [0, + caml_string_of_jsbytes("Article 34"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1515, + 29, + 1515, + 56, + [0, + caml_string_of_jsbytes("Article 34"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2589, + 29, + 2589, + 56, + [0, + caml_string_of_jsbytes("Article 34"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LN_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2955, + 5, + 2955, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3000, + 5, + 3000, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LJ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3045, + 5, + 3045, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3090, + 5, + 3090, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LF_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3135, + 5, + 3135, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LD_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3183, + 5, + 3183, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LB_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3231, + 5, + 3231, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Lz_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3279, + 5, + 3279, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _LA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Lx_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3326, + 5, + 3326, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ly_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Lv_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3373, + 5, + 3373, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Lw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Lt_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3420, + 5, + 3420, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Lu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Lr_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3467, + 5, + 3467, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ls_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Lp_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3514, + 5, + 3514, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Lq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ln_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3561, + 5, + 3561, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Lo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ll_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3608, + 5, + 3608, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Lm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Lj_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3655, + 5, + 3655, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Lk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Lh_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3702, + 5, + 3702, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Li_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Lf_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3749, + 5, + 3749, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Lg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ld_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3796, + 5, + 3796, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Le_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Lb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3843, + 5, + 3843, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Lc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _K$_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3890, + 5, + 3890, + 62, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _La_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _K9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 3937, + 5, + 3937, + 32, + [0, + caml_string_of_jsbytes("Article 33"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _K__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _K8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 949, + 10, + 949, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _K1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5924, + 5, + 5928, + 73, + [0, + caml_string_of_jsbytes("Article D862-7"), + [0, + caml_string_of_jsbytes("Section III : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _K2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 965, + 11, + 965, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _K0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5572, + 5, + 5579, + 73, + [0, + caml_string_of_jsbytes("Article D861-8"), + [0, + caml_string_of_jsbytes("Section 2 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _K3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 965, + 11, + 965, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _K4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 965, + 11, + 965, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KZ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4676, + 6, + 4679, + 44, + [0, + caml_string_of_jsbytes("Article D842-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _K5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 965, + 11, + 965, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 965, + 11, + 965, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KU_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4047, + 14, + 4047, + 40, + [0, + caml_string_of_jsbytes("Article 35"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _KQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4058, + 14, + 4058, + 41, + [0, + caml_string_of_jsbytes("Article 36"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _KM_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4113, + 14, + 4113, + 41, + [0, + caml_string_of_jsbytes("Article 38"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _KI_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4141, + 14, + 4141, + 41, + [0, + caml_string_of_jsbytes("Article 39"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _KE_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4121, + 14, + 4121, + 33, + [0, + caml_string_of_jsbytes("Article 38"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _KA_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4133, + 14, + 4133, + 33, + [0, + caml_string_of_jsbytes("Article 39"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Kq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3329, + 5, + 3337, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Kr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Kp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2794, + 5, + 2802, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ks_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ko_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1723, + 5, + 1731, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Kt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Kn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 604, + 5, + 612, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ku_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Km_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 111, + 5, + 119, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Kv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Kw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ki_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1512, + 14, + 1512, + 47, + [0, + caml_string_of_jsbytes("Article 34"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Kj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Kh_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4032, + 14, + 4032, + 47, + [0, + caml_string_of_jsbytes("Article 34"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul des allocations de logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Kk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Kl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Kb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1009, + 14, + 1009, + 50, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _J7_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4449, + 14, + 4449, + 64, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _J3_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4447, + 14, + 4447, + 59, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _JZ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/autres_sources.catala_fr"), + 330, + 14, + 330, + 36, + [0, + caml_string_of_jsbytes("Article premier"), + [0, + caml_string_of_jsbytes + ("R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro"), + 0]]], + _J0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 955, + 11, + 955, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _JY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 955, + 11, + 955, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _J1_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("taux_francs_vers_euros"),0]], + _J4_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4447, + 14, + 4447, + 59, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _J5_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), + 0]], + _J2_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4447, + 14, + 4447, + 59, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _J8_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4449, + 14, + 4449, + 64, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _J9_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_nombre_parts.situation_familiale_calcul_apl"), + 0]], + _J6_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4449, + 14, + 4449, + 64, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _J__= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_nombre_parts"), + [0, + caml_string_of_jsbytes + ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), + 0]]], + _J$_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_nombre_parts"), + [0, + caml_string_of_jsbytes + ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), + 0]]], + _Kc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1009, + 14, + 1009, + 50, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Kd_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], + _Ka_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1009, + 14, + 1009, + 50, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ke_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("contributions_sociales"), + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement"), + 0]]], + _Kf_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("contributions_sociales"), + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement"), + 0]]], + _Kx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Kg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 966, + 11, + 966, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ky_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("multiplicateur_majoration_charges"),0]], + _KB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 964, + 11, + 964, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Kz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 964, + 11, + 964, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KC_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("coefficient_d842_12"),0]], + _KF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 963, + 11, + 963, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 963, + 11, + 963, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KG_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("coefficient_d842_11"),0]], + _KJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 962, + 11, + 962, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 962, + 11, + 962, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KK_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("montant_forfaitaire_d842_12"),0]], + _KN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 961, + 11, + 961, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 961, + 11, + 961, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KO_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("montant_forfaitaire_d842_11"),0]], + _KR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 960, + 11, + 960, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 960, + 11, + 960, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KS_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("montant_minimal_aide_d842_6"),0]], + _KV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 952, + 11, + 952, + 37, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 952, + 11, + 952, + 37, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KW_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("montant_forfaitaire_d842_6"),0]], + _K6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 965, + 11, + 965, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _KX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 965, + 11, + 965, + 30, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _K7_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("condition_d842_11_3"),0]], + _LQ_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), + 0]], + _Mw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _LR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 942, + 11, + 942, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Mx_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("montant_forfaitaire_charges"),0]], + _MD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 954, + 11, + 954, + 42, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _My_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 954, + 11, + 954, + 42, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ME_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("seuil_minimal_ressources_m\xc3\xa9nage"),0]], + _MI_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _M9_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), + 0]], + _Nb_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], + _Ng_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 924, + 10, + 924, + 15, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Nc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 924, + 10, + 924, + 15, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Nh_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_seuil"), + 0]], + _NU_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), + 0]], + _NX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1010, + 14, + 1010, + 61, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _NY_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), + 0]], + _NV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1010, + 14, + 1010, + 61, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _N1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4443, + 14, + 4443, + 75, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _N2_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), + 0]], + _NZ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4443, + 14, + 4443, + 75, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _N5_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4442, + 14, + 4442, + 69, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _N6_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), + 0]], + _N3_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4442, + 14, + 4442, + 69, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _N9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4445, + 14, + 4445, + 70, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _N__= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), + 0]], + _N7_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4445, + 14, + 4445, + 70, + [0, + caml_string_of_jsbytes("Article D842-6"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _N$_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), + [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], + _Oa_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), + [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], + _Oe_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 992, + 14, + 992, + 59, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Of_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.type_logement_foyer"), + 0]], + _Ob_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 992, + 14, + 992, + 59, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Oi_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 994, + 14, + 994, + 61, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Oj_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.date_conventionnement"), + 0]], + _Og_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 994, + 14, + 994, + 61, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Om_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 998, + 14, + 998, + 67, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _On_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies"), + 0]], + _Ok_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 998, + 14, + 998, + 67, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Oq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1000, + 14, + 1000, + 65, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Or_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge"), + 0]], + _Oo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1000, + 14, + 1000, + 65, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ou_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1002, + 14, + 1002, + 70, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ov_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.situation_familiale_calcul_apl"), + 0]], + _Os_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1002, + 14, + 1002, + 70, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Oy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1004, + 14, + 1004, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Oz_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.zone"),0]], + _Ow_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1004, + 14, + 1004, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1007, + 14, + 1007, + 53, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OD_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.date_courante"),0]], + _OA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1007, + 14, + 1007, + 53, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 996, + 14, + 996, + 49, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OH_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.redevance"),0]], + _OE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 996, + 14, + 996, + 49, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1006, + 14, + 1006, + 49, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OL_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_apl_logement_foyer.r\xc3\xa9sidence"), + 0]], + _OI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1006, + 14, + 1006, + 49, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OV_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_apl_logement_foyer"), + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + 0]]], + _OW_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_apl_logement_foyer"), + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + 0]]], + _O1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 953, + 11, + 953, + 47, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _OX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 953, + 11, + 953, + 47, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _O2_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("seuil_minimal_d\xc3\xa9pense_nette_minimale"), + 0]], + _Ph_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 945, + 11, + 945, + 36, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _O3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 945, + 11, + 945, + 36, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Pi_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("plafond_mensualit\xc3\xa9_d842_6"),0]], + _Pl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 943, + 12, + 943, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Pj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 943, + 12, + 943, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Pm_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"),0]], + _Pp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 944, + 12, + 944, + 39, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Pn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 944, + 12, + 944, + 39, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Pq_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("coefficient_prise_en_charge"),0]], + _Py_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), + 0]], + _PB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 941, + 12, + 941, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Pz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 941, + 12, + 941, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _PC_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"),0]], + _PO_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), + 0]], + _PR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 976, + 12, + 976, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _PP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 976, + 12, + 976, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _PS_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("aide_finale_formule"),0]], + _P4_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _Qa_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], + _Qb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1015, + 13, + 1015, + 48, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Qe_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1015, + 13, + 1015, + 48, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Qc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1014, + 13, + 1014, + 42, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Qd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1014, + 13, + 1014, + 42, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _JT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4920, + 14, + 4920, + 36, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _JP_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + [0,caml_string_of_jsbytes("input0"),0]]], + _JQ_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _JR_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + [0,caml_string_of_jsbytes("output"),0]]], + _JS_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _JU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1062, + 10, + 1062, + 25, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _JO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1062, + 10, + 1062, + 25, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _JL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4899, + 14, + 4899, + 36, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _JD_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("traitement_aide_finale_redevance"), + [0,caml_string_of_jsbytes("input0"),0]]], + _JE_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale_redevance"),0]], + _JF_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("traitement_aide_finale_redevance"), + [0,caml_string_of_jsbytes("output"),0]]], + _JG_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale_redevance"),0]], + _JH_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("montant"), + [0,caml_string_of_jsbytes("input0"),0]]], + _JI_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _JJ_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("montant"), + [0,caml_string_of_jsbytes("output"),0]]], + _JK_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _JM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1061, + 10, + 1061, + 40, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _JC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1061, + 10, + 1061, + 40, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Jz_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4885, + 14, + 4885, + 36, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Jv_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Jw_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), + 0]], + _Jx_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("output"),0]]], + _Jy_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), + 0]], + _JA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1060, + 10, + 1060, + 19, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ju_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1060, + 10, + 1060, + 19, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Jr_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4867, + 14, + 4867, + 36, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Jj_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Jk_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _Jl_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + [0,caml_string_of_jsbytes("output"),0]]], + _Jm_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _Jn_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Jo_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), + 0]], + _Jp_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("output"),0]]], + _Jq_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), + 0]], + _Js_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1059, + 10, + 1059, + 32, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ji_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1059, + 10, + 1059, + 32, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Jf_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4974, + 14, + 4974, + 47, + [0, + caml_string_of_jsbytes("Article D842-17"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _I9_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _I__= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], + _I$_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("output"),0]]], + _Ja_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], + _Jb_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Jc_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], + _Jd_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), + [0,caml_string_of_jsbytes("output"),0]]], + _Je_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], + _Jg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1036, + 11, + 1036, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _I8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1036, + 11, + 1036, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _I5_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4793, + 14, + 4793, + 33, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _I1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4965, + 14, + 4965, + 36, + [0, + caml_string_of_jsbytes("Article D842-17"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _I2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1034, + 11, + 1034, + 33, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _I0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1034, + 11, + 1034, + 33, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IX_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4845, + 14, + 4845, + 27, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _IT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4853, + 14, + 4853, + 36, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _IU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1058, + 10, + 1058, + 32, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1058, + 10, + 1058, + 32, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IN_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4395, + 6, + 4402, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Chapitre IX : Calcul des allocations de logement en outre-mer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _IO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 280, + 6, + 287, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _IM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _II_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1893, + 6, + 1900, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _IJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 776, + 6, + 783, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _IK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2965, + 6, + 2972, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _IG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ID_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3501, + 6, + 3508, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _IE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IA_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4170, + 29, + 4170, + 56, + [0, + caml_string_of_jsbytes("Article 40"), + [0, + caml_string_of_jsbytes + ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _IB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Iy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1589, + 29, + 1589, + 56, + [0, + caml_string_of_jsbytes("Article 40"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Iz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Iw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2655, + 29, + 2655, + 56, + [0, + caml_string_of_jsbytes("Article 40"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ix_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Is_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4814, + 14, + 4814, + 41, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Im_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4843, + 14, + 4843, + 70, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ii_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4832, + 14, + 4832, + 69, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ie_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4833, + 14, + 4833, + 75, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ia_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1082, + 14, + 1082, + 61, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _H7_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4213, + 6, + 4213, + 79, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _H8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _H5_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4248, + 6, + 4249, + 38, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _H6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _H2_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4266, + 6, + 4267, + 24, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _H3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _H1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4230, + 6, + 4231, + 46, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _H4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1611, + 6, + 1611, + 79, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _H0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1648, + 6, + 1649, + 38, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _HY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1667, + 6, + 1668, + 24, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _HV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1629, + 6, + 1630, + 46, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _HW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2680, + 6, + 2680, + 79, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _HS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2717, + 6, + 2718, + 38, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _HQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2736, + 6, + 2737, + 24, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _HN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2698, + 6, + 2699, + 46, + [0, + caml_string_of_jsbytes("Article 43"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _HO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4195, + 14, + 4195, + 42, + [0, + caml_string_of_jsbytes("Article 42"), + [0, + caml_string_of_jsbytes + ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _HD_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4183, + 14, + 4183, + 41, + [0, + caml_string_of_jsbytes("Article 41"), + [0, + caml_string_of_jsbytes + ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Hz_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4287, + 14, + 4287, + 51, + [0, + caml_string_of_jsbytes("Article 44"), + [0, + caml_string_of_jsbytes + ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Hp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3344, + 5, + 3352, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Hq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ho_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2809, + 5, + 2817, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Hr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1738, + 5, + 1746, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Hs_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 619, + 5, + 627, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ht_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 126, + 5, + 134, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Hu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1586, + 14, + 1586, + 47, + [0, + caml_string_of_jsbytes("Article 40"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Hi_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hg_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4167, + 14, + 4167, + 47, + [0, + caml_string_of_jsbytes("Article 40"), + [0, + caml_string_of_jsbytes + ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Hj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ha_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5598, + 5, + 5604, + 28, + [0, + caml_string_of_jsbytes("Article D861-8"), + [0, + caml_string_of_jsbytes("Section 2 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Hb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5596, + 9, + 5596, + 75, + [0, + caml_string_of_jsbytes("Article D861-8"), + [0, + caml_string_of_jsbytes("Section 2 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _Hc_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.limitation_majoration_personnes_\xc3\xa0_charge"), + 0]], + _G9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4811, + 14, + 4811, + 61, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _G__= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4811, + 14, + 4811, + 61, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _G$_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.condition_2_du_832_25"), + 0]], + _G6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1078, + 14, + 1078, + 49, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _G2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1069, + 14, + 1069, + 49, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1079, + 14, + 1079, + 53, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1077, + 14, + 1077, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1075, + 14, + 1075, + 70, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1073, + 14, + 1073, + 65, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1071, + 14, + 1071, + 67, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1067, + 14, + 1067, + 61, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1065, + 14, + 1065, + 59, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Gu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1081, + 14, + 1081, + 50, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Go_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4840, + 14, + 4840, + 43, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gk_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4838, + 14, + 4838, + 64, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gg_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4836, + 14, + 4836, + 59, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4841, + 14, + 4841, + 55, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gd_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4841, + 14, + 4841, + 55, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ge_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_nombre_parts.condition_2_du_832_25"), + 0]], + _Gb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4841, + 14, + 4841, + 55, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gh_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4836, + 14, + 4836, + 59, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gi_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), + 0]], + _Gf_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4836, + 14, + 4836, + 59, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gl_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4838, + 14, + 4838, + 64, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gm_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_nombre_parts.situation_familiale_calcul_apl"), + 0]], + _Gj_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4838, + 14, + 4838, + 64, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gp_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4840, + 14, + 4840, + 43, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gq_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("calcul_nombre_parts.r\xc3\xa9sidence"),0]], + _Gn_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4840, + 14, + 4840, + 43, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Gr_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_nombre_parts"), + [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], + _Gs_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_nombre_parts"), + [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], + _Gv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1081, + 14, + 1081, + 50, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Gw_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], + _Gt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1081, + 14, + 1081, + 50, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Gx_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("contributions_sociales"), + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement"), + 0]]], + _Gy_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("contributions_sociales"), + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement"), + 0]]], + _GB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1065, + 14, + 1065, + 59, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GC_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.type_logement_foyer"), + 0]], + _Gz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1065, + 14, + 1065, + 59, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1067, + 14, + 1067, + 61, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GG_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.date_conventionnement"), + 0]], + _GD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1067, + 14, + 1067, + 61, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1071, + 14, + 1071, + 67, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GK_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies"), + 0]], + _GH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1071, + 14, + 1071, + 67, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1073, + 14, + 1073, + 65, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GO_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge"), + 0]], + _GL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1073, + 14, + 1073, + 65, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1075, + 14, + 1075, + 70, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GS_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_apl_logement_foyer.situation_familiale_calcul_apl"), + 0]], + _GP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1075, + 14, + 1075, + 70, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1077, + 14, + 1077, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GW_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.zone"),0]], + _GT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1077, + 14, + 1077, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _GZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1079, + 14, + 1079, + 53, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _G0_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.date_courante"),0]], + _GX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1079, + 14, + 1079, + 53, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _G3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1069, + 14, + 1069, + 49, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _G4_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.redevance"),0]], + _G1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1069, + 14, + 1069, + 49, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _G7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1078, + 14, + 1078, + 49, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _G8_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_apl_logement_foyer.r\xc3\xa9sidence"), + 0]], + _G5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1078, + 14, + 1078, + 49, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hd_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_apl_logement_foyer"), + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + 0]]], + _He_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_apl_logement_foyer"), + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + 0]]], + _Hw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1041, + 11, + 1041, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hx_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("multiplicateur_majoration_charges"),0]], + _HA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1040, + 11, + 1040, + 48, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Hy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1040, + 11, + 1040, + 48, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HB_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("montant_minimal_d\xc3\xa9pense_nette_d842_17"), + 0]], + _HE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1039, + 11, + 1039, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1039, + 11, + 1039, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HF_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("montant_forfaitaire_d842_15"),0]], + _HI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1038, + 11, + 1038, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1038, + 11, + 1038, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HJ_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("montant_minimal_aide_d842_15"),0]], + _H9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _HK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1043, + 12, + 1043, + 29, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _H__= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("\xc3\xa9quivalence_loyer"),0]], + _Ib_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1082, + 14, + 1082, + 61, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ic_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), + 0]], + _H$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1082, + 14, + 1082, + 61, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _If_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4833, + 14, + 4833, + 75, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ig_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), + 0]], + _Id_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4833, + 14, + 4833, + 75, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ij_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4832, + 14, + 4832, + 69, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ik_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), + 0]], + _Ih_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4832, + 14, + 4832, + 69, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _In_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4843, + 14, + 4843, + 70, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Io_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), + 0]], + _Il_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4843, + 14, + 4843, + 70, + [0, + caml_string_of_jsbytes("Article D842-15"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ip_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), + [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], + _Iq_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), + [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], + _It_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1042, + 12, + 1042, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ir_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1042, + 12, + 1042, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Iu_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("coefficient_prise_en_charge"),0]], + _IQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Iv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1044, + 12, + 1044, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IR_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("montant_forfaitaire_charges"),0]], + _IV_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _IY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1045, + 12, + 1045, + 25, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1045, + 12, + 1045, + 25, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _IZ_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("loyer_minimal"),0]], + _I3_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], + _I6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1055, + 12, + 1055, + 31, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _I4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1055, + 12, + 1055, + 31, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _I7_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("aide_finale_formule"),0]], + _Jh_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), + 0]], + _Jt_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), + 0]], + _JB_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale_redevance"),0]], + _JN_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _JV_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], + _JW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1086, + 13, + 1086, + 42, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _JX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1086, + 13, + 1086, + 42, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _F9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4281, + 24, + 4281, + 43, + [0, + caml_string_of_jsbytes("Article D842-4"), + [0, + caml_string_of_jsbytes("Section 1 : Secteur locatif ordinaire"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _F__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 874, + 12, + 874, + 31, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _F8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 913, + 14, + 913, + 33, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _F3_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4289, + 24, + 4289, + 46, + [0, + caml_string_of_jsbytes("Article D842-4"), + [0, + caml_string_of_jsbytes("Section 1 : Secteur locatif ordinaire"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _F4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 876, + 12, + 876, + 34, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _F2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 914, + 14, + 914, + 36, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FY_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"), + [0,caml_string_of_jsbytes("input0"),0]]], + _FZ_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], + _F0_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"), + [0,caml_string_of_jsbytes("output"),0]]], + _F1_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], + _F5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 876, + 12, + 876, + 34, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 876, + 12, + 876, + 34, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 910, + 14, + 910, + 42, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 908, + 14, + 908, + 55, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 906, + 14, + 906, + 59, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 904, + 14, + 904, + 43, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 902, + 14, + 902, + 42, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 898, + 5, + 899, + 63, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 895, + 14, + 895, + 53, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 893, + 14, + 893, + 37, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 891, + 14, + 891, + 63, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fi_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 889, + 14, + 889, + 58, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fe_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 887, + 14, + 887, + 46, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fa_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 884, + 14, + 884, + 78, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _E8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 882, + 14, + 882, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _E4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 880, + 14, + 880, + 48, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _E5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 880, + 14, + 880, + 48, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _E6_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("calcul_apl_locatif.loyer_principal_base"),0]], + _E3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 880, + 14, + 880, + 48, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _E9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 882, + 14, + 882, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _E__= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes + ("calcul_apl_locatif.ressources_m\xc3\xa9nage_arrondies"), + 0]], + _E7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 882, + 14, + 882, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 884, + 14, + 884, + 78, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fc_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes + ("calcul_apl_locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"), + 0]], + _E$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 884, + 14, + 884, + 78, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ff_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 887, + 14, + 887, + 46, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fg_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("calcul_apl_locatif.date_courante"),0]], + _Fd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 887, + 14, + 887, + 46, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 889, + 14, + 889, + 58, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fk_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes + ("calcul_apl_locatif.nombre_personnes_\xc3\xa0_charge"), + 0]], + _Fh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 889, + 14, + 889, + 58, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 891, + 14, + 891, + 63, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fo_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes + ("calcul_apl_locatif.situation_familiale_calcul_apl"), + 0]], + _Fl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 891, + 14, + 891, + 63, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 893, + 14, + 893, + 37, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fs_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("calcul_apl_locatif.zone"),0]], + _Fp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 893, + 14, + 893, + 37, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 895, + 14, + 895, + 53, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fw_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("calcul_apl_locatif.logement_est_chambre"),0]], + _Ft_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 895, + 14, + 895, + 53, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Fz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 898, + 5, + 899, + 63, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FA_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes + ("calcul_apl_locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"), + 0]], + _Fx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 898, + 5, + 899, + 63, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 902, + 14, + 902, + 42, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FE_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("calcul_apl_locatif.type_aide"),0]], + _FB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 902, + 14, + 902, + 42, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 904, + 14, + 904, + 43, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FI_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("calcul_apl_locatif.colocation"),0]], + _FF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 904, + 14, + 904, + 43, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 906, + 14, + 906, + 59, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FM_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes + ("calcul_apl_locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), + 0]], + _FJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 906, + 14, + 906, + 59, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 908, + 14, + 908, + 55, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FQ_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes + ("calcul_apl_locatif.logement_meubl\xc3\xa9_d842_2"), + 0]], + _FN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 908, + 14, + 908, + 55, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 910, + 14, + 910, + 42, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FU_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("calcul_apl_locatif.r\xc3\xa9sidence"),0]], + _FR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 910, + 14, + 910, + 42, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _FV_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes("calcul_apl_locatif"), + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + 0]]], + _FW_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0, + caml_string_of_jsbytes("calcul_apl_locatif"), + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + 0]]], + _F6_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], + _F$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 874, + 12, + 874, + 31, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _F7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 874, + 12, + 874, + 31, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _Ga_= + [0, + caml_string_of_jsbytes("CalculAllocationLogementLocatif"), + [0,caml_string_of_jsbytes("aide_finale_formule"),0]], + _ES_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("input"),0]]], + _ET_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + [0,caml_string_of_jsbytes("direct"),0]], + _EU_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), + 69, + 6, + 72, + 44, + [0, + caml_string_of_jsbytes("Article L512-3"), + [0, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + [0, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _EV_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + [0, + caml_string_of_jsbytes("direct"), + [0,caml_string_of_jsbytes("output"),0]]], + _EW_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + [0,caml_string_of_jsbytes("direct"),0]], + _EX_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), + 67, + 5, + 72, + 59, + [0, + caml_string_of_jsbytes("Article L512-3"), + [0, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + [0, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _EY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 47, + 12, + 47, + 24, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _ER_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), + 56, + 5, + 57, + 50, + [0, + caml_string_of_jsbytes("Article L512-3"), + [0, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + [0, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _EZ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 47, + 12, + 47, + 24, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _E0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 47, + 12, + 47, + 24, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _EQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 47, + 12, + 47, + 24, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _E1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 47, + 12, + 47, + 24, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _EP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 47, + 12, + 47, + 24, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _EL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), + 78, + 5, + 82, + 24, + [0, + caml_string_of_jsbytes("Article L512-3"), + [0, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + [0, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _EM_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 49, + 12, + 49, + 31, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _EK_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 49, + 12, + 49, + 31, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _EN_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 49, + 12, + 49, + 31, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _EJ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 49, + 12, + 49, + 31, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _EF_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr"), + 62, + 18, + 62, + 41, + [0, + caml_string_of_jsbytes("Article R755-0-2"), + [0, + caml_string_of_jsbytes + ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _EG_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 44, + 11, + 44, + 27, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _EE_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr"), + 31, + 14, + 31, + 30, + [0, + caml_string_of_jsbytes("Article R512-2"), + [0, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), + [0, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + [0, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _Et_=[5,0], + _Eu_=[4,0], + _Ev_=[3,0], + _Ew_=[2,0], + _Ex_=[1,0], + _Ey_=[0,0], + _Ez_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), + 127, + 5, + 132, + 30, + [0, + caml_string_of_jsbytes("Article L751-1"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + [0, + caml_string_of_jsbytes + ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), + [0, + caml_string_of_jsbytes + ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _EA_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 51, + 12, + 51, + 35, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Es_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 51, + 12, + 51, + 35, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Em_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 56, + 14, + 56, + 28, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Ei_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 57, + 14, + 57, + 32, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Ed_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr"), + 21, + 14, + 21, + 26, + [0, + caml_string_of_jsbytes("Article R512-2"), + [0, + caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), + [0, + caml_string_of_jsbytes + ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + [0, + caml_string_of_jsbytes + ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _Ee_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 46, + 21, + 46, + 33, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Ef_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 46, + 21, + 46, + 33, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Ec_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 46, + 21, + 46, + 33, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Eg_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"),0]], + _Ej_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 57, + 14, + 57, + 32, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Ek_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("smic.date_courante"),0]], + _Eh_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 57, + 14, + 57, + 32, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _En_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 56, + 14, + 56, + 28, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Eo_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("smic.r\xc3\xa9sidence"),0]], + _El_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 56, + 14, + 56, + 28, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Ep_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], + _Eq_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], + _EB_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 51, + 12, + 51, + 35, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _Er_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 51, + 12, + 51, + 35, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _EC_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"),0]], + _EH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 44, + 11, + 44, + 27, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _ED_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), + 44, + 11, + 44, + 27, + [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], + _EI_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("plafond_l512_3_2"),0]], + _EO_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], + _E2_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + [0,caml_string_of_jsbytes("droit_ouvert"),0]], + _D9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 409, + 14, + 409, + 32, + [0, + caml_string_of_jsbytes("Article R822-7"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Principes de neutralisation et d'abattement"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _D5_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 462, + 14, + 462, + 32, + [0, + caml_string_of_jsbytes("Article R822-8"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Principes de neutralisation et d'abattement"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _D0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 854, + 6, + 857, + 35, + [0, + caml_string_of_jsbytes("Article R822-20"), + [0, + caml_string_of_jsbytes + ("Sous-section 3 : Montant forfaitaire de ressources applicable aux \xc3\xa9tudiants"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _D1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 546, + 12, + 546, + 39, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _DZ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 124, + 14, + 124, + 41, + [0, + caml_string_of_jsbytes("Article R822-2"), + [0, + caml_string_of_jsbytes + ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _DT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 418, + 14, + 418, + 65, + [0, + caml_string_of_jsbytes("Article R822-7"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Principes de neutralisation et d'abattement"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _DP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 23, + 14, + 23, + 41, + [0, + caml_string_of_jsbytes("Article 4"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Dispositions applicables aux ressources"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _DL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 12, + 14, + 12, + 41, + [0, + caml_string_of_jsbytes("Article 3"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Dispositions applicables aux ressources"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _DH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 524, + 14, + 524, + 33, + [0, + caml_string_of_jsbytes("Article R822-10"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Principes de neutralisation et d'abattement"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _DD_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 129, + 14, + 129, + 62, + [0, + caml_string_of_jsbytes("Article R822-2"), + [0, + caml_string_of_jsbytes + ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _DE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 535, + 11, + 535, + 59, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _DC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 535, + 11, + 535, + 59, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _DF_= + [0, + caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes + ("ressources_personnes_vivant_habituellement_foyer"), + 0]], + _DI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 540, + 11, + 540, + 30, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _DG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 540, + 11, + 540, + 30, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _DJ_= + [0, + caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("abattement_r_822_10"),0]], + _DM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 539, + 11, + 539, + 38, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _DK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 539, + 11, + 539, + 38, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _DN_= + [0, + caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant_forfaitaire_r_822_7"),0]], + _DQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 537, + 11, + 537, + 38, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _DO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 537, + 11, + 537, + 38, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _DR_= + [0, + caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant_forfaitaire_r_822_8"),0]], + _DU_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 418, + 14, + 418, + 65, + [0, + caml_string_of_jsbytes("Article R822-7"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Principes de neutralisation et d'abattement"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _DV_= + [0, + caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes + ("base_mensuelle_allocations_familiales.date_courante"), + 0]], + _DS_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 418, + 14, + 418, + 65, + [0, + caml_string_of_jsbytes("Article R822-7"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Principes de neutralisation et d'abattement"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _DW_= + [0, + caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), + [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], + _DX_= + [0, + caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), + [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], + _D2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 546, + 12, + 546, + 39, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _DY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 546, + 12, + 546, + 39, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _D3_= + [0, + caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("ressources_prises_en_compte"),0]], + _D6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 536, + 11, + 536, + 29, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _D4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 536, + 11, + 536, + 29, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _D7_= + [0, + caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("abattement_r_822_8"),0]], + _D__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 538, + 11, + 538, + 29, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _D8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 538, + 11, + 538, + 29, + [0, + caml_string_of_jsbytes + ("Prise en compte des ressources pour les aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _D$_= + [0, + caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("abattement_r_822_7"),0]], + _Ea_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 142, + 13, + 143, + 74, + [0, + caml_string_of_jsbytes("Article R822-2"), + [0, + caml_string_of_jsbytes + ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _Eb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 142, + 13, + 143, + 74, + [0, + caml_string_of_jsbytes("Article R822-2"), + [0, + caml_string_of_jsbytes + ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), + [0, + caml_string_of_jsbytes + ("Section 2 : Conditions relatives aux ressources"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _Dx_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3175, + 14, + 3175, + 36, + [0, + caml_string_of_jsbytes("Article D832-10"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Dt_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Du_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _Dv_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + [0,caml_string_of_jsbytes("output"),0]]], + _Dw_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _Dy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 795, + 10, + 795, + 25, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Ds_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 795, + 10, + 795, + 25, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Dp_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3082, + 14, + 3082, + 33, + [0, + caml_string_of_jsbytes("Article D832-10"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Dl_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3155, + 14, + 3155, + 36, + [0, + caml_string_of_jsbytes("Article D832-10"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Dd_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("traitement_aide_finale_abattement"), + [0,caml_string_of_jsbytes("input0"),0]]], + _De_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], + _Df_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("traitement_aide_finale_abattement"), + [0,caml_string_of_jsbytes("output"),0]]], + _Dg_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], + _Dh_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("montant"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Di_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _Dj_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("montant"), + [0,caml_string_of_jsbytes("output"),0]]], + _Dk_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _Dm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 794, + 10, + 794, + 40, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Dc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 794, + 10, + 794, + 40, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _C$_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3210, + 14, + 3210, + 49, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _C7_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3102, + 14, + 3102, + 33, + [0, + caml_string_of_jsbytes("Article D832-10"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _C3_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3141, + 14, + 3141, + 36, + [0, + caml_string_of_jsbytes("Article D832-10"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _CV_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + [0,caml_string_of_jsbytes("input0"),0]]], + _CW_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _CX_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + [0,caml_string_of_jsbytes("output"),0]]], + _CY_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _CZ_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), + [0,caml_string_of_jsbytes("input0"),0]]], + _C0_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), + 0]], + _C1_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), + [0,caml_string_of_jsbytes("output"),0]]], + _C2_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), + 0]], + _C4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 793, + 10, + 793, + 20, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 793, + 10, + 793, + 20, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CR_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3207, + 14, + 3207, + 49, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _CM_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3423, + 5, + 3435, + 77, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _CN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 756, + 12, + 756, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CK_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3478, + 5, + 3478, + 75, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _CL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 756, + 12, + 756, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2474, + 14, + 2474, + 42, + [0, + caml_string_of_jsbytes("Article 24"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _CE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 759, + 10, + 759, + 25, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1394, + 14, + 1394, + 42, + [0, + caml_string_of_jsbytes("Article 24"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _CF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 759, + 10, + 759, + 25, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CB_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2419, + 14, + 2419, + 42, + [0, + caml_string_of_jsbytes("Article 24"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _CG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 759, + 10, + 759, + 25, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Cx_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3550, + 14, + 3550, + 55, + [0, + caml_string_of_jsbytes("Article D832-17"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ct_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"), + [0,caml_string_of_jsbytes("input0"),0]]], + _Cu_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"),0]], + _Cv_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"), + [0,caml_string_of_jsbytes("output"),0]]], + _Cw_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"),0]], + _Cy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 769, + 11, + 769, + 52, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Cs_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 769, + 11, + 769, + 52, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Cp_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3191, + 14, + 3191, + 49, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Cj_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3486, + 14, + 3486, + 70, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Cf_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3483, + 14, + 3483, + 69, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Cb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3484, + 14, + 3484, + 75, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _B9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 799, + 14, + 799, + 61, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _B4_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3363, + 5, + 3363, + 44, + [0, + caml_string_of_jsbytes("Article D832-14"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _BW_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + [0,caml_string_of_jsbytes("input0"),0]]], + _BX_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + 0]], + _BY_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + [0,caml_string_of_jsbytes("output"),0]]], + _BZ_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + 0]], + _B0_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + [0,caml_string_of_jsbytes("input0"),0]]], + _B1_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + 0]], + _B2_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + [0,caml_string_of_jsbytes("output"),0]]], + _B3_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + 0]], + _B5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 758, + 10, + 758, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _BV_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3343, + 14, + 3343, + 42, + [0, + caml_string_of_jsbytes("Article D832-14"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _BR_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + [0,caml_string_of_jsbytes("input0"),0]]], + _BS_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + 0]], + _BT_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + [0,caml_string_of_jsbytes("output"),0]]], + _BU_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + 0]], + _BM_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3528, + 5, + 3528, + 40, + [0, + caml_string_of_jsbytes("Article D832-17"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _BN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 767, + 11, + 767, + 41, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _BL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3539, + 14, + 3539, + 44, + [0, + caml_string_of_jsbytes("Article D832-17"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _BO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 767, + 11, + 767, + 41, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _BK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 767, + 11, + 767, + 41, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _BH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3127, + 14, + 3127, + 36, + [0, + caml_string_of_jsbytes("Article D832-10"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _BI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 792, + 10, + 792, + 32, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _BG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 792, + 10, + 792, + 32, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _BC_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3592, + 5, + 3592, + 28, + [0, + caml_string_of_jsbytes("Article D832-18"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _BD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 771, + 11, + 771, + 41, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _BB_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3584, + 14, + 3584, + 44, + [0, + caml_string_of_jsbytes("Article D832-18"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Bx_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3276, + 14, + 3276, + 36, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Br_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 827, + 5, + 842, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Bs_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bo_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1083, + 5, + 1087, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Bp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bm_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1116, + 5, + 1120, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Bn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bk_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1149, + 5, + 1153, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Bl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bi_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1182, + 5, + 1186, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Bj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bg_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1215, + 5, + 1219, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Bh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Be_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1248, + 5, + 1252, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Bf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1281, + 5, + 1285, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Bd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Ba_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1314, + 5, + 1318, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Bb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _A__= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1347, + 5, + 1351, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _A$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _A8_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1380, + 5, + 1384, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _A9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _A6_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1413, + 5, + 1417, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _A7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _A4_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1446, + 5, + 1450, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _A5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _A2_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1479, + 5, + 1483, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _A3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _A0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1512, + 5, + 1516, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _A1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1545, + 5, + 1549, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AW_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1578, + 5, + 1582, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AU_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1611, + 5, + 1615, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AS_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1644, + 5, + 1648, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1677, + 5, + 1681, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AO_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1710, + 5, + 1714, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AM_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1743, + 5, + 1747, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AK_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1776, + 5, + 1780, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AI_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1809, + 5, + 1813, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AG_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1842, + 5, + 1846, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AE_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1875, + 5, + 1879, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AC_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1908, + 5, + 1912, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _AA_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1941, + 5, + 1945, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _AB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Ay_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 1974, + 5, + 1978, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Az_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Aw_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2007, + 5, + 2011, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ax_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Au_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2040, + 5, + 2044, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Av_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _As_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2073, + 5, + 2077, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _At_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Aq_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2106, + 5, + 2110, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ar_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Ao_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2139, + 5, + 2143, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ap_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Am_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2172, + 5, + 2176, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _An_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Ak_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2205, + 5, + 2209, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Al_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Ai_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2238, + 5, + 2242, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Aj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Ag_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2271, + 5, + 2274, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ah_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Ae_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2303, + 5, + 2306, + 36, + [0, + caml_string_of_jsbytes("Article 18"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Af_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Ab_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 635, + 5, + 638, + 33, + [0, + caml_string_of_jsbytes("Article 17"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Ac_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _z$_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 680, + 5, + 683, + 33, + [0, + caml_string_of_jsbytes("Article 17"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _Aa_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _z9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 726, + 5, + 728, + 33, + [0, + caml_string_of_jsbytes("Article 17"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _z__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _z7_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 770, + 5, + 772, + 33, + [0, + caml_string_of_jsbytes("Article 17"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _z8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Ad_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _z6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 55, + 760, + 61, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _z5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 760, + 11, + 760, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _z0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2438, + 7, + 2438, + 18, + [0, + caml_string_of_jsbytes("Article 24"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _z1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 772, + 11, + 772, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1414, + 7, + 1414, + 18, + [0, + caml_string_of_jsbytes("Article 24"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 772, + 11, + 772, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2494, + 7, + 2494, + 18, + [0, + caml_string_of_jsbytes("Article 24"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 772, + 11, + 772, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _z2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 772, + 11, + 772, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2355, + 29, + 2355, + 64, + [0, + caml_string_of_jsbytes("Article 19"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 772, + 11, + 772, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1380, + 29, + 1380, + 64, + [0, + caml_string_of_jsbytes("Article 19"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 772, + 11, + 772, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2460, + 29, + 2460, + 64, + [0, + caml_string_of_jsbytes("Article 19"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 772, + 11, + 772, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 772, + 11, + 772, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2367, + 14, + 2367, + 41, + [0, + caml_string_of_jsbytes("Article 20"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2379, + 14, + 2379, + 42, + [0, + caml_string_of_jsbytes("Article 21"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zD_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2466, + 14, + 2466, + 50, + [0, + caml_string_of_jsbytes("Article 25"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zz_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2389, + 14, + 2389, + 48, + [0, + caml_string_of_jsbytes("Article 22"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zv_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2485, + 14, + 2485, + 48, + [0, + caml_string_of_jsbytes("Article 26"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zr_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2405, + 14, + 2405, + 47, + [0, + caml_string_of_jsbytes("Article 23"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zn_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2406, + 14, + 2406, + 47, + [0, + caml_string_of_jsbytes("Article 23"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zj_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2407, + 14, + 2407, + 47, + [0, + caml_string_of_jsbytes("Article 23"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _zd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 798, + 14, + 798, + 50, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _y9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3280, + 14, + 3280, + 64, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _y5_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3278, + 14, + 3278, + 59, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _y1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/autres_sources.catala_fr"), + 327, + 14, + 327, + 36, + [0, + caml_string_of_jsbytes("Article premier"), + [0, + caml_string_of_jsbytes + ("R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro"), + 0]]], + _y2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 781, + 11, + 781, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _y0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 781, + 11, + 781, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _y3_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("taux_francs_vers_euros"),0]], + _y6_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3278, + 14, + 3278, + 59, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _y7_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), + 0]], + _y4_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3278, + 14, + 3278, + 59, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _y__= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3280, + 14, + 3280, + 64, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _y$_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_nombre_parts.situation_familiale_calcul_apl"), + 0]], + _y8_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3280, + 14, + 3280, + 64, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _za_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_nombre_parts"), + [0, + caml_string_of_jsbytes + ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), + 0]]], + _zb_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_nombre_parts"), + [0, + caml_string_of_jsbytes + ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), + 0]]], + _ze_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 798, + 14, + 798, + 50, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zf_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], + _zc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 798, + 14, + 798, + 50, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zg_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("contributions_sociales"), + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement"), + 0]]], + _zh_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("contributions_sociales"), + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement"), + 0]]], + _zk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 780, + 11, + 780, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zi_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 780, + 11, + 780, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zl_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("taux_tranche_sup\xc3\xa9rieure_d832_15_1"), + 0]], + _zo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 779, + 11, + 779, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 779, + 11, + 779, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zp_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("taux_tranche_inf\xc3\xa9rieure_d832_15_1"), + 0]], + _zs_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 778, + 11, + 778, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 778, + 11, + 778, + 44, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zt_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("montant_limite_tranches_d832_15_1"),0]], + _zw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 777, + 11, + 777, + 45, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 777, + 11, + 777, + 45, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zx_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_18"),0]], + _zA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 776, + 11, + 776, + 45, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 776, + 11, + 776, + 45, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zB_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_11"),0]], + _zE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 775, + 11, + 775, + 47, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 775, + 11, + 775, + 47, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zF_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_17_3"),0]], + _zI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 774, + 11, + 774, + 39, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 774, + 11, + 774, + 39, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zJ_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("montant_minimal_aide_d832_10"),0]], + _zM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 773, + 11, + 773, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 773, + 11, + 773, + 38, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zN_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("montant_forfaitaire_d832_10"),0]], + _z3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 772, + 11, + 772, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _zO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 772, + 11, + 772, + 46, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _z4_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("montant_forfaitaire_charges_d832_10"),0]], + _Bv_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), + 0]], + _By_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 762, + 11, + 762, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 762, + 11, + 762, + 33, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Bz_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("n_nombre_parts_d832_11"),0]], + _BE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 771, + 11, + 771, + 41, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _BA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 771, + 11, + 771, + 41, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _BF_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("ressources_m\xc3\xa9nage_avec_d832_18"),0]], + _BJ_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _BP_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"),0]], + _B6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 758, + 10, + 758, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _BQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 758, + 10, + 758, + 14, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _B7_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("plafond_mensualit\xc3\xa9_d832_10_3_base"), + 0]], + _B__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 799, + 14, + 799, + 61, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _B$_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), + 0]], + _B8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 799, + 14, + 799, + 61, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Cc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3484, + 14, + 3484, + 75, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Cd_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), + 0]], + _Ca_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3484, + 14, + 3484, + 75, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Cg_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3483, + 14, + 3483, + 69, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ch_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), + 0]], + _Ce_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3483, + 14, + 3483, + 69, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Ck_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3486, + 14, + 3486, + 70, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Cl_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), + 0]], + _Ci_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3486, + 14, + 3486, + 70, + [0, + caml_string_of_jsbytes("Article D832-15"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _Cm_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), + [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], + _Cn_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), + [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], + _Cq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 764, + 10, + 764, + 17, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Co_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 764, + 10, + 764, + 17, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Cr_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("coefficient_prise_en_charge_d832_10_formule"), + 0]], + _Cz_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), + 0]], + _CH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 759, + 10, + 759, + 25, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 759, + 10, + 759, + 25, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CI_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("plafond_mensualit\xc3\xa9_d832_10_3_copropri\xc3\xa9taires"), + 0]], + _CO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 756, + 12, + 756, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 756, + 12, + 756, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CP_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"),0]], + _CS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 765, + 10, + 765, + 23, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 765, + 10, + 765, + 23, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _CT_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("coefficient_prise_en_charge_d832_10_coeff_arrondi"), + 0]], + _C5_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], + _C8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 755, + 12, + 755, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _C6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 755, + 12, + 755, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _C9_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"),0]], + _Da_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 766, + 10, + 766, + 15, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _C__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 766, + 10, + 766, + 15, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Db_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes("coefficient_prise_en_charge_d832_10_seuil"), + 0]], + _Dn_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _Dq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 789, + 12, + 789, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Do_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 789, + 12, + 789, + 31, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _Dr_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("aide_finale_formule"),0]], + _Dz_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], + _DA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 803, + 13, + 803, + 42, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _DB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 803, + 13, + 803, + 42, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yV_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3829, + 14, + 3829, + 36, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _yR_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + [0,caml_string_of_jsbytes("input0"),0]]], + _yS_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _yT_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + [0,caml_string_of_jsbytes("output"),0]]], + _yU_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _yW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 717, + 10, + 717, + 25, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 717, + 10, + 717, + 25, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yN_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3733, + 14, + 3733, + 33, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _yJ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3808, + 14, + 3808, + 36, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _yB_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("traitement_aide_finale_abattement"), + [0,caml_string_of_jsbytes("input0"),0]]], + _yC_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], + _yD_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("traitement_aide_finale_abattement"), + [0,caml_string_of_jsbytes("output"),0]]], + _yE_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], + _yF_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("montant"), + [0,caml_string_of_jsbytes("input0"),0]]], + _yG_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _yH_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("montant"), + [0,caml_string_of_jsbytes("output"),0]]], + _yI_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _yK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 716, + 10, + 716, + 40, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 716, + 10, + 716, + 40, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yw_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3980, + 5, + 3980, + 26, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _yx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 709, + 10, + 709, + 15, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yv_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3886, + 14, + 3886, + 49, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _yr_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3794, + 14, + 3794, + 36, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _yj_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + [0,caml_string_of_jsbytes("input0"),0]]], + _yk_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _yl_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + [0,caml_string_of_jsbytes("output"),0]]], + _ym_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _yn_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), + [0,caml_string_of_jsbytes("input0"),0]]], + _yo_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), + 0]], + _yp_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), + [0,caml_string_of_jsbytes("output"),0]]], + _yq_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), + 0]], + _ys_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 715, + 10, + 715, + 20, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yi_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 715, + 10, + 715, + 20, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ye_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3974, + 5, + 3974, + 26, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _yf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 708, + 10, + 708, + 23, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yd_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3883, + 14, + 3883, + 49, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _x$_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3766, + 14, + 3766, + 40, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _x7_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4149, + 14, + 4149, + 55, + [0, + caml_string_of_jsbytes("Article D832-27"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _x3_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"), + [0,caml_string_of_jsbytes("input0"),0]]], + _x4_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"),0]], + _x5_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"), + [0,caml_string_of_jsbytes("output"),0]]], + _x6_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"),0]], + _x8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 691, + 11, + 691, + 52, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _x2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 691, + 11, + 691, + 52, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3957, + 5, + 3957, + 26, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 707, + 10, + 707, + 17, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xX_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3862, + 14, + 3862, + 49, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xR_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3772, + 14, + 3772, + 70, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xN_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3768, + 14, + 3768, + 69, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xJ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3770, + 14, + 3770, + 75, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 721, + 14, + 721, + 61, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xB_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4145, + 14, + 4145, + 44, + [0, + caml_string_of_jsbytes("Article D832-27"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 693, + 11, + 693, + 41, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 693, + 11, + 693, + 41, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xw_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3944, + 14, + 3944, + 36, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 688, + 21, + 688, + 43, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xs_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3754, + 14, + 3754, + 40, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xo_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3780, + 14, + 3780, + 36, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 714, + 10, + 714, + 32, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 714, + 10, + 714, + 32, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xk_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2607, + 14, + 2607, + 48, + [0, + caml_string_of_jsbytes("Article 30"), + [0, + caml_string_of_jsbytes + ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _xg_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2754, + 14, + 2754, + 41, + [0, + caml_string_of_jsbytes("Article 32"), + [0, + caml_string_of_jsbytes + ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _xa_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5545, + 5, + 5545, + 45, + [0, + caml_string_of_jsbytes("Article D861-8"), + [0, + caml_string_of_jsbytes("Section 2 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _xb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5543, + 5, + 5543, + 65, + [0, + caml_string_of_jsbytes("Article D861-8"), + [0, + caml_string_of_jsbytes("Section 2 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _xc_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_nombre_parts.limitation_majoration_personnes_\xc3\xa0_charge"), + 0]], + _w9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3943, + 14, + 3943, + 43, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _w5_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3939, + 14, + 3939, + 64, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _w1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3937, + 14, + 3937, + 59, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _wX_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3941, + 14, + 3941, + 55, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _wT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2596, + 14, + 2596, + 35, + [0, + caml_string_of_jsbytes("Article 30"), + [0, + caml_string_of_jsbytes + ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _wO_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2514, + 14, + 2514, + 48, + [0, + caml_string_of_jsbytes("Article 27"), + [0, + caml_string_of_jsbytes + ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _wP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 690, + 12, + 690, + 46, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1449, + 14, + 1449, + 48, + [0, + caml_string_of_jsbytes("Article 27"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _wN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 690, + 12, + 690, + 46, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2529, + 14, + 2529, + 48, + [0, + caml_string_of_jsbytes("Article 27"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _wL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 690, + 12, + 690, + 46, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wG_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2569, + 14, + 2569, + 41, + [0, + caml_string_of_jsbytes("Article 28"), + [0, + caml_string_of_jsbytes + ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _wC_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2581, + 14, + 2581, + 42, + [0, + caml_string_of_jsbytes("Article 29"), + [0, + caml_string_of_jsbytes + ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ww_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 720, + 14, + 720, + 50, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wr_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3847, + 14, + 3847, + 35, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _ws_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 683, + 12, + 683, + 33, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 684, + 12, + 684, + 52, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 684, + 12, + 684, + 52, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 684, + 12, + 684, + 52, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 684, + 12, + 684, + 52, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wp_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("limitation_majoration_personnes_\xc3\xa0_charge"), + 0]], + _wt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 683, + 12, + 683, + 33, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 683, + 12, + 683, + 33, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wu_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("condition_2_du_832_25"),0]], + _wx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 720, + 14, + 720, + 50, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wy_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], + _wv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 720, + 14, + 720, + 50, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wz_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("contributions_sociales"), + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement"), + 0]]], + _wA_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("contributions_sociales"), + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement"), + 0]]], + _wD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 697, + 11, + 697, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 697, + 11, + 697, + 39, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wE_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("montant_minimal_aide_d823_24"),0]], + _wH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 695, + 11, + 695, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 695, + 11, + 695, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wI_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("montant_forfaitaire_d832_24"),0]], + _wQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 690, + 12, + 690, + 46, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 690, + 12, + 690, + 46, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wR_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), + 0]], + _wU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 687, + 12, + 687, + 33, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 687, + 12, + 687, + 33, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wV_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("coefficient_r_d832_25"),0]], + _wY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3941, + 14, + 3941, + 55, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _wZ_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_nombre_parts.condition_2_du_832_25"), + 0]], + _wW_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3941, + 14, + 3941, + 55, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _w2_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3937, + 14, + 3937, + 59, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _w3_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), + 0]], + _w0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3937, + 14, + 3937, + 59, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _w6_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3939, + 14, + 3939, + 64, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _w7_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_nombre_parts.situation_familiale_calcul_apl"), + 0]], + _w4_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3939, + 14, + 3939, + 64, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _w__= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3943, + 14, + 3943, + 43, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _w$_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("calcul_nombre_parts.r\xc3\xa9sidence"),0]], + _w8_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3943, + 14, + 3943, + 43, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xd_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_nombre_parts"), + [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], + _xe_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_nombre_parts"), + [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], + _xh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 696, + 11, + 696, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 696, + 11, + 696, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xi_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("montant_forfaitaire_d832_27"),0]], + _xl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 686, + 12, + 686, + 46, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 686, + 12, + 686, + 46, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xm_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_25"),0]], + _xq_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _xt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 689, + 12, + 689, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 689, + 12, + 689, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xu_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), + 0]], + _xy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 688, + 21, + 688, + 43, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 688, + 21, + 688, + 43, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xz_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("n_nombre_parts_d832_25"),0]], + _xD_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"),0]], + _xG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 721, + 14, + 721, + 61, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xH_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), + 0]], + _xE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 721, + 14, + 721, + 61, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xK_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3770, + 14, + 3770, + 75, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xL_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), + 0]], + _xI_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3770, + 14, + 3770, + 75, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xO_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3768, + 14, + 3768, + 69, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xP_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), + 0]], + _xM_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3768, + 14, + 3768, + 69, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xS_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3772, + 14, + 3772, + 70, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xT_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), + 0]], + _xQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3772, + 14, + 3772, + 70, + [0, + caml_string_of_jsbytes("Article D832-24"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _xU_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), + [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], + _xV_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), + [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], + _x0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 707, + 10, + 707, + 17, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _xW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 707, + 10, + 707, + 17, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _x1_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("coefficient_prise_en_charge_d832_25_formule"), + 0]], + _x9_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), + 0]], + _ya_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 698, + 12, + 698, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _x__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 698, + 12, + 698, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yb_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_minimale"),0]], + _yg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 708, + 10, + 708, + 23, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 708, + 10, + 708, + 23, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yh_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("coefficient_prise_en_charge_d832_25_coeff_arrondi"), + 0]], + _yt_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], + _yy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 709, + 10, + 709, + 15, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 709, + 10, + 709, + 15, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yz_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes("coefficient_prise_en_charge_d832_25_seuil"), + 0]], + _yL_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _yO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 711, + 12, + 711, + 31, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 711, + 12, + 711, + 31, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yP_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("aide_finale_formule"),0]], + _yX_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], + _yY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 725, + 13, + 725, + 42, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _yZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 725, + 13, + 725, + 42, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _v__= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1770, + 14, + 1770, + 33, + [0, + caml_string_of_jsbytes("Article D823-16"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _v6_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1913, + 14, + 1913, + 39, + [0, + caml_string_of_jsbytes("Article D823-17"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _v2_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1896, + 14, + 1896, + 36, + [0, + caml_string_of_jsbytes("Article D823-16"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _vY_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), + [0,caml_string_of_jsbytes("input0"),0]]], + _vZ_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), + 0]], + _v0_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), + [0,caml_string_of_jsbytes("output"),0]]], + _v1_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), + 0]], + _v3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 626, + 10, + 626, + 25, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 626, + 10, + 626, + 25, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vU_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1947, + 14, + 1947, + 42, + [0, + caml_string_of_jsbytes("Article D823-17"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _vQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 844, + 14, + 844, + 36, + [0, + caml_string_of_jsbytes("Article L832-3"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _vM_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + [0,caml_string_of_jsbytes("input0"),0]]], + _vN_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _vO_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + [0,caml_string_of_jsbytes("output"),0]]], + _vP_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _vR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 625, + 10, + 625, + 36, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 625, + 10, + 625, + 36, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2312, + 14, + 2312, + 33, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _vG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 594, + 10, + 594, + 22, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1232, + 14, + 1232, + 33, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _vH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 594, + 10, + 594, + 22, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vD_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 423, + 14, + 423, + 33, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _vI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 594, + 10, + 594, + 22, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vz_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1864, + 14, + 1864, + 36, + [0, + caml_string_of_jsbytes("Article D823-16"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _vr_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + [0,caml_string_of_jsbytes("input0"),0]]], + _vs_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _vt_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + [0,caml_string_of_jsbytes("output"),0]]], + _vu_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _vv_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("montant"), + [0,caml_string_of_jsbytes("input0"),0]]], + _vw_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _vx_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0, + caml_string_of_jsbytes("montant"), + [0,caml_string_of_jsbytes("output"),0]]], + _vy_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _vA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 624, + 10, + 624, + 40, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 624, + 10, + 624, + 40, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2305, + 14, + 2305, + 33, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _vl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 593, + 10, + 593, + 17, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1225, + 14, + 1225, + 33, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _vm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 593, + 10, + 593, + 17, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vi_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 416, + 14, + 416, + 33, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _vn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 593, + 10, + 593, + 17, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ve_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1847, + 14, + 1847, + 36, + [0, + caml_string_of_jsbytes("Article D823-16"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _va_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"), + [0,caml_string_of_jsbytes("input0"),0]]], + _vb_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"),0]], + _vc_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"), + [0,caml_string_of_jsbytes("output"),0]]], + _vd_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"),0]], + _vf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 623, + 10, + 623, + 32, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _u$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 623, + 10, + 623, + 32, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _u5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2281, + 14, + 2281, + 28, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _u6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 595, + 11, + 595, + 25, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _u4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1198, + 14, + 1198, + 28, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _u7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 595, + 11, + 595, + 25, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _u3_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 390, + 14, + 390, + 28, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _u8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 595, + 11, + 595, + 25, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 314, + 14, + 314, + 36, + [0, + caml_string_of_jsbytes("Article 13"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _uZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 611, + 12, + 611, + 34, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1124, + 14, + 1124, + 36, + [0, + caml_string_of_jsbytes("Article 13"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _uX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 611, + 12, + 611, + 34, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2206, + 14, + 2206, + 36, + [0, + caml_string_of_jsbytes("Article 13"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _uV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 611, + 12, + 611, + 34, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1837, + 5, + 1837, + 50, + [0, + caml_string_of_jsbytes("Article D823-16"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _uQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 622, + 10, + 622, + 17, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uO_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1823, + 14, + 1823, + 36, + [0, + caml_string_of_jsbytes("Article D823-16"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _uR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 622, + 10, + 622, + 17, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 622, + 10, + 622, + 17, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uK_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1788, + 14, + 1788, + 28, + [0, + caml_string_of_jsbytes("Article D823-16"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _uG_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 263, + 14, + 263, + 42, + [0, + caml_string_of_jsbytes("Article 10"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _uC_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 269, + 14, + 269, + 41, + [0, + caml_string_of_jsbytes("Article 10"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _uw_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 546, + 5, + 547, + 34, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ux_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uu_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 555, + 5, + 556, + 34, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _uv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _us_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 564, + 5, + 564, + 35, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ut_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1301, + 5, + 1302, + 34, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ur_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1310, + 5, + 1311, + 34, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _up_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _um_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1323, + 5, + 1323, + 35, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _un_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2379, + 5, + 2380, + 34, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ul_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ui_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2388, + 5, + 2389, + 34, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _uj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ug_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2401, + 5, + 2401, + 35, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _uh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 198, + 5, + 198, + 61, + [0, + caml_string_of_jsbytes("Article 8"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ud_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ua_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1069, + 5, + 1069, + 61, + [0, + caml_string_of_jsbytes("Article 8"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ub_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _t__= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2151, + 5, + 2151, + 61, + [0, + caml_string_of_jsbytes("Article 8"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _t$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ue_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _t7_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 191, + 14, + 191, + 37, + [0, + caml_string_of_jsbytes("Article 8"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _t8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _t5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1062, + 14, + 1062, + 37, + [0, + caml_string_of_jsbytes("Article 8"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _t6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _t3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2144, + 14, + 2144, + 37, + [0, + caml_string_of_jsbytes("Article 8"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _t4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _t9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _t0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 106, + 5, + 107, + 34, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _t1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 116, + 5, + 117, + 34, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tW_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 130, + 5, + 130, + 35, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 976, + 5, + 977, + 34, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 986, + 5, + 987, + 34, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1000, + 5, + 1000, + 35, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2059, + 5, + 2060, + 34, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2069, + 5, + 2070, + 34, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2083, + 5, + 2083, + 35, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _t2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tF_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 445, + 14, + 445, + 29, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 596, + 11, + 596, + 26, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1255, + 14, + 1255, + 29, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 596, + 11, + 596, + 26, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2335, + 14, + 2335, + 29, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 596, + 11, + 596, + 26, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tv_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4336, + 5, + 4344, + 34, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Chapitre IX : Calcul des allocations de logement en outre-mer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tt_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4583, + 5, + 4585, + 28, + [0, + caml_string_of_jsbytes("Article 47"), + [0, + caml_string_of_jsbytes + ("Chapitre IX : Calcul des allocations de logement en outre-mer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 211, + 5, + 219, + 34, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ts_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 459, + 5, + 461, + 28, + [0, + caml_string_of_jsbytes("Article 47"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 706, + 5, + 714, + 34, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _to_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3184, + 5, + 3193, + 28, + [0, + caml_string_of_jsbytes("Article 47"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 01 janvier 2021 - Arr\xc3\xaat\xc3\xa9 du 31 d\xc3\xa9cembre 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2021 NOR : LOGL2028351A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _th_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3431, + 5, + 3439, + 34, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ti_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2894, + 5, + 2902, + 34, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1824, + 5, + 1832, + 34, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _td_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3693, + 5, + 3702, + 28, + [0, + caml_string_of_jsbytes("Article 47"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _te_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ta_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 486, + 14, + 486, + 44, + [0, + caml_string_of_jsbytes("Article 15"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _tb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _s__= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 39, + 14, + 39, + 44, + [0, + caml_string_of_jsbytes("Article 15"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _s$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _s8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 533, + 14, + 533, + 44, + [0, + caml_string_of_jsbytes("Article 15"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _s9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _s6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3246, + 14, + 3246, + 44, + [0, + caml_string_of_jsbytes("Article 15"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _s7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4422, + 5, + 4430, + 15, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Chapitre IX : Calcul des allocations de logement en outre-mer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 314, + 6, + 321, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1926, + 6, + 1933, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 810, + 6, + 817, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2998, + 6, + 3005, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3534, + 6, + 3541, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _s0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 588, + 14, + 588, + 49, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1347, + 14, + 1347, + 49, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2426, + 14, + 2426, + 49, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _s1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sE_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4366, + 6, + 4373, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Chapitre IX : Calcul des allocations de logement en outre-mer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 239, + 6, + 246, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1852, + 6, + 1859, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 735, + 6, + 742, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2924, + 6, + 2931, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _su_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3460, + 6, + 3467, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _s2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sr_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 239, + 14, + 239, + 49, + [0, + caml_string_of_jsbytes("Article 9"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ss_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1110, + 14, + 1110, + 49, + [0, + caml_string_of_jsbytes("Article 9"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2192, + 14, + 2192, + 49, + [0, + caml_string_of_jsbytes("Article 9"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _so_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _st_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3300, + 5, + 3308, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _se_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sc_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2765, + 5, + 2773, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1695, + 5, + 1703, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sa_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 575, + 5, + 583, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _sh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _r$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 82, + 5, + 90, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _si_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _r4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2397, + 14, + 2397, + 63, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _r5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _r3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2078, + 14, + 2078, + 63, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _r6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _r2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1319, + 14, + 1319, + 63, + [0, + caml_string_of_jsbytes("Article 16"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _r7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _r1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 995, + 14, + 995, + 63, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _r8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _r0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 125, + 14, + 125, + 63, + [0, + caml_string_of_jsbytes("Article 7"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _r9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _r__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3365, + 5, + 3373, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2830, + 5, + 2838, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1759, + 5, + 1767, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 640, + 5, + 648, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 147, + 5, + 155, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2332, + 14, + 2332, + 55, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1252, + 14, + 1252, + 55, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rF_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 442, + 14, + 442, + 55, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3387, + 5, + 3395, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ru_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2851, + 5, + 2859, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1780, + 5, + 1788, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ry_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rs_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 662, + 5, + 670, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 168, + 5, + 176, + 35, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3242, + 14, + 3242, + 42, + [0, + caml_string_of_jsbytes("Article 15"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 529, + 14, + 529, + 42, + [0, + caml_string_of_jsbytes("Article 15"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rn_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 35, + 14, + 35, + 42, + [0, + caml_string_of_jsbytes("Article 15"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ro_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ri_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 482, + 14, + 482, + 42, + [0, + caml_string_of_jsbytes("Article 15"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rp_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 4485, + 6, + 4492, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Chapitre IX : Calcul des allocations de logement en outre-mer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _q8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3605, + 6, + 3612, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _q9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _q7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 3068, + 6, + 3075, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _q__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _q6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1996, + 6, + 2003, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _q$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _q5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 881, + 6, + 888, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _ra_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _q4_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 385, + 6, + 392, + 28, + [0, + caml_string_of_jsbytes("Article 46"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _rb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _re_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2251, + 29, + 2251, + 55, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _q0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1168, + 29, + 1168, + 55, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _q1_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qX_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 360, + 29, + 360, + 55, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _q2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _q3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4219, + 14, + 4219, + 29, + [0, + caml_string_of_jsbytes("Article D842-2"), + [0, + caml_string_of_jsbytes("Section 1 : Secteur locatif ordinaire"), + [0, + caml_string_of_jsbytes + ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), + [0, + caml_string_of_jsbytes("Titre IV : Allocations de Logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _qP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 298, + 14, + 298, + 42, + [0, + caml_string_of_jsbytes("Article 12"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _qI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 2188, + 14, + 2188, + 55, + [0, + caml_string_of_jsbytes("Article 9"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _qJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 605, + 11, + 605, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), + 1106, + 14, + 1106, + 55, + [0, + caml_string_of_jsbytes("Article 9"), + [0, + caml_string_of_jsbytes + ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), + [0, + caml_string_of_jsbytes + ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _qK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 605, + 11, + 605, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qG_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 235, + 14, + 235, + 55, + [0, + caml_string_of_jsbytes("Article 9"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _qL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 605, + 11, + 605, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qC_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 285, + 14, + 285, + 41, + [0, + caml_string_of_jsbytes("Article 11"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _qw_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 629, + 14, + 629, + 50, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qs_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1887, + 14, + 1887, + 29, + [0, + caml_string_of_jsbytes("Article D823-16"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _qt_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 597, + 11, + 597, + 26, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 597, + 11, + 597, + 26, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qu_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("fraction_l832_3"),0]], + _qx_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 629, + 14, + 629, + 50, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qy_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], + _qv_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 629, + 14, + 629, + 50, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qz_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("contributions_sociales"), + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement"), + 0]]], + _qA_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("contributions_sociales"), + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement"), + 0]]], + _qD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 600, + 11, + 600, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 600, + 11, + 600, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qE_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("montant_forfaitaire_d823_16"),0]], + _qM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 605, + 11, + 605, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 605, + 11, + 605, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qN_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("multiplicateur_majoration_charges_d823_16"), + 0]], + _qQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 601, + 11, + 601, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 601, + 11, + 601, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qR_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("montant_minimal_aide_d823_16"),0]], + _qU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 574, + 10, + 574, + 31, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 574, + 10, + 574, + 31, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qV_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("loyer_principal_avec_r\xc3\xa9duction_meubl\xc3\xa9"), + 0]], + _rf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 612, + 12, + 612, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rg_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("taux_composition_familiale"),0]], + _rC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 607, + 11, + 607, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rD_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("multiplicateur_majoration_r0"),0]], + _rX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 606, + 11, + 606, + 52, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rY_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("multiplicateur_majoration_loyer_r\xc3\xa9f\xc3\xa9rence"), + 0]], + _sk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _rZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 604, + 11, + 604, + 60, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sl_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("multiplicateur_majoration_plafond_loyer_d823_16_2"), + 0]], + _s3_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _sm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 609, + 12, + 609, + 47, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _s4_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("montant_forfaitaire_charges_d823_16"),0]], + _ty_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _s5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 602, + 11, + 602, + 41, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tz_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("abattement_forfaitaire_d823_17"),0]], + _tH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 596, + 11, + 596, + 26, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 596, + 11, + 596, + 26, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tI_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("loyer_r\xc3\xa9f\xc3\xa9rence"),0]], + _uz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _tJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 610, + 12, + 610, + 35, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uA_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("plafond_loyer_d823_16_2"),0]], + _uD_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 599, + 11, + 599, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uB_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 599, + 11, + 599, + 38, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uE_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("plafond_suppression_d823_16"),0]], + _uH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 598, + 11, + 598, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uF_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 598, + 11, + 598, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uI_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes("plafond_d\xc3\xa9gressivit\xc3\xa9_d823_16"), + 0]], + _uL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 591, + 11, + 591, + 25, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 591, + 11, + 591, + 25, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uM_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("loyer_\xc3\xa9ligible"),0]], + _uS_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"),0]], + _u0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 611, + 12, + 611, + 34, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _uT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 611, + 12, + 611, + 34, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _u1_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("participation_minimale"),0]], + _u9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 595, + 11, + 595, + 25, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _u2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 595, + 11, + 595, + 25, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _u__= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("rapport_loyers"),0]], + _vg_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_minoration_forfaitaire"), + 0]], + _vo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 593, + 10, + 593, + 17, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 593, + 10, + 593, + 17, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vp_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("taux_loyer_\xc3\xa9ligible_formule"),0]], + _vB_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_contributions_sociales_arrondi"), + 0]], + _vJ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 594, + 10, + 594, + 22, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 594, + 10, + 594, + 22, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vK_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("taux_loyer_\xc3\xa9ligible_taux_arrondi"),0]], + _vS_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0, + caml_string_of_jsbytes + ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), + 0]], + _vV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 603, + 11, + 603, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 603, + 11, + 603, + 39, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _vW_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("taux_prise_compte_ressources"),0]], + _v4_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], + _v7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 613, + 12, + 613, + 37, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _v5_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 613, + 12, + 613, + 37, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _v8_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("participation_personnelle"),0]], + _v$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 618, + 12, + 618, + 31, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _v9_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 618, + 12, + 618, + 31, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wa_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + [0,caml_string_of_jsbytes("aide_finale_formule"),0]], + _wb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1840, + 13, + 1840, + 74, + [0, + caml_string_of_jsbytes("Article D823-16"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _wk_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 1840, + 13, + 1840, + 74, + [0, + caml_string_of_jsbytes("Article D823-16"), + [0, + caml_string_of_jsbytes + ("Sous-section 2 : Calcul de l'aide en secteur locatif"), + [0, + caml_string_of_jsbytes + ("Section 1 : Calcul, liquidation et versement des aides"), + [0, + caml_string_of_jsbytes + ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _wc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 854, + 13, + 854, + 61, + [0, + caml_string_of_jsbytes("Article L832-3"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _wj_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_legislatif.catala_fr"), + 854, + 13, + 854, + 61, + [0, + caml_string_of_jsbytes("Article L832-3"), + [0, + caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _wd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 640, + 13, + 640, + 53, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wi_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 640, + 13, + 640, + 53, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _we_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 633, + 13, + 633, + 43, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 633, + 13, + 633, + 43, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wf_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 632, + 13, + 632, + 42, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _wg_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 632, + 13, + 632, + 42, + [0, + caml_string_of_jsbytes("Secteur locatif"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _qd_=[7,0], + _qe_=[5,0], + _qf_=[4,0], + _qg_=[3,0], + _qh_=[2,0], + _qi_=[1,0], + _qj_=[0,0], + _qk_=[6,0], + _ql_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 34, + 5, + 43, + 6, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _qm_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _qa_=[8,0], + _qb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 52, + 5, + 54, + 6, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _qc_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _p2_=[7,0], + _p3_=[5,0], + _p4_=[4,0], + _p5_=[3,0], + _p6_=[2,0], + _p7_=[1,0], + _p8_=[0,0], + _p9_=[6,0], + _p__= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 73, + 5, + 82, + 6, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _p$_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _pZ_=[8,0], + _p0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 91, + 5, + 93, + 6, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _p1_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _pP_=[7,0], + _pQ_=[5,0], + _pR_=[4,0], + _pS_=[3,0], + _pT_=[2,0], + _pU_=[1,0], + _pV_=[0,0], + _pW_=[6,0], + _pX_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 112, + 5, + 121, + 6, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _pY_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _pM_=[8,0], + _pN_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 130, + 5, + 132, + 6, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _pO_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _pC_=[7,0], + _pD_=[5,0], + _pE_=[4,0], + _pF_=[3,0], + _pG_=[2,0], + _pH_=[1,0], + _pI_=[0,0], + _pJ_=[6,0], + _pK_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 151, + 5, + 160, + 6, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _pL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _pz_=[8,0], + _pA_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 170, + 5, + 172, + 6, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _pB_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _pp_=[7,0], + _pq_=[5,0], + _pr_=[4,0], + _ps_=[3,0], + _pt_=[2,0], + _pu_=[1,0], + _pv_=[0,0], + _pw_=[6,0], + _px_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 191, + 5, + 200, + 6, + [0, + caml_string_of_jsbytes("Article 2"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _py_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _pm_=[8,0], + _pn_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 209, + 5, + 211, + 6, + [0, + caml_string_of_jsbytes("Article 2"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _po_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _pc_=[7,0], + _pd_=[5,0], + _pe_=[4,0], + _pf_=[3,0], + _pg_=[2,0], + _ph_=[1,0], + _pi_=[0,0], + _pj_=[6,0], + _pk_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 230, + 5, + 239, + 6, + [0, + caml_string_of_jsbytes("Article 2"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _pl_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _o$_=[8,0], + _pa_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 248, + 5, + 250, + 6, + [0, + caml_string_of_jsbytes("Article 2"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _pb_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _o1_=[7,0], + _o2_=[5,0], + _o3_=[4,0], + _o4_=[3,0], + _o5_=[2,0], + _o6_=[1,0], + _o7_=[0,0], + _o8_=[6,0], + _o9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 270, + 5, + 279, + 6, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _o__= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _oY_=[8,0], + _oZ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 288, + 5, + 290, + 6, + [0, + caml_string_of_jsbytes("Article 1"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]]], + _o0_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _qn_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _oX_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 11, + 12, + 11, + 24, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _qo_= + [0, + caml_string_of_jsbytes("Smic"), + [0,caml_string_of_jsbytes("brut_horaire"),0]], + _qp_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 16, + 13, + 16, + 42, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _qq_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), + 16, + 13, + 16, + 42, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _oU_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), + 36, + 14, + 36, + 27, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _oV_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), + 33, + 12, + 33, + 25, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _oT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), + 33, + 12, + 33, + 25, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _oW_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + [0,caml_string_of_jsbytes("est_sup\xc3\xa9rieur"),0]], + _oQ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), + 25, + 14, + 25, + 35, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _oR_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), + 22, + 12, + 22, + 33, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _oP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), + 22, + 12, + 22, + 33, + [0, + caml_string_of_jsbytes("Prologue"), + [0, + caml_string_of_jsbytes("Montant du salaire minimum de croissance"), + 0]]], + _oS_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), + [0,caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"),0]], + _oJ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 32, + 5, + 33, + 33, + [0, + caml_string_of_jsbytes + ("Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole"), + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]]], + _oK_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 6, + 12, + 6, + 19, + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _oH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 52, + 5, + 53, + 33, + [0, + caml_string_of_jsbytes + ("Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]]], + _oI_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 6, + 12, + 6, + 19, + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _oF_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 68, + 5, + 69, + 33, + [0, + caml_string_of_jsbytes + ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]]], + _oG_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 6, + 12, + 6, + 19, + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _oD_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 86, + 5, + 86, + 34, + [0, + caml_string_of_jsbytes + ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]]], + _oE_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 6, + 12, + 6, + 19, + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _oL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 6, + 12, + 6, + 19, + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _oC_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 6, + 12, + 6, + 19, + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _oM_= + [0, + caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"), + [0,caml_string_of_jsbytes("montant"),0]], + _oN_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 10, + 13, + 10, + 42, + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _oO_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + 10, + 13, + 10, + 42, + [0, + caml_string_of_jsbytes + ("Montant de la base mensuelle des allocations familiales"), + 0]], + _ox_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2242, + 14, + 2242, + 28, + [0, + caml_string_of_jsbytes("Article R824-2"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _oy_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1138, + 12, + 1138, + 26, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ow_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2179, + 14, + 2179, + 28, + [0, + caml_string_of_jsbytes("Article R824-1"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _oz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1138, + 12, + 1138, + 26, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _or_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2184, + 20, + 2184, + 55, + [0, + caml_string_of_jsbytes("Article R824-1"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _os_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1133, + 11, + 1133, + 43, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _op_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2200, + 20, + 2200, + 51, + [0, + caml_string_of_jsbytes("Article R824-1"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _oq_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1133, + 11, + 1133, + 43, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _on_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2266, + 7, + 2266, + 42, + [0, + caml_string_of_jsbytes("Article R824-2"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _oo_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1133, + 11, + 1133, + 43, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ol_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2294, + 7, + 2294, + 51, + [0, + caml_string_of_jsbytes("Article R824-2"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _om_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1133, + 11, + 1133, + 43, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _og_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2223, + 14, + 2223, + 36, + [0, + caml_string_of_jsbytes("Article R824-1"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _oh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1136, + 11, + 1136, + 33, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _oe_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2319, + 14, + 2319, + 36, + [0, + caml_string_of_jsbytes("Article R824-2"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _of_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1136, + 11, + 1136, + 33, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _n__= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2310, + 14, + 2310, + 36, + [0, + caml_string_of_jsbytes("Article R824-2"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _n$_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1135, + 11, + 1135, + 33, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _n9_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2214, + 14, + 2214, + 36, + [0, + caml_string_of_jsbytes("Article R824-1"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _oa_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1135, + 11, + 1135, + 33, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _n5_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 2342, + 14, + 2342, + 36, + [0, + caml_string_of_jsbytes("Article R824-3"), + [0, + caml_string_of_jsbytes + ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), + [0, + caml_string_of_jsbytes + ("Titre II : Dispositions communes aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _n0_=[0,0], + _n1_=[1,0], + _n2_=[1,0], + _n3_=[0,0], + _n4_=[0,0], + _n6_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1134, + 11, + 1134, + 33, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _nZ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1134, + 11, + 1134, + 33, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _n7_= + [0, + caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), + [0,caml_string_of_jsbytes("mode_occupation_impay\xc3\xa9"),0]], + _ob_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1135, + 11, + 1135, + 33, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _n8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1135, + 11, + 1135, + 33, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _oc_= + [0, + caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_logement_brute"),0]], + _oi_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1136, + 11, + 1136, + 33, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _od_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1136, + 11, + 1136, + 33, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _oj_= + [0, + caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), + [0,caml_string_of_jsbytes("d\xc3\xa9pense_logement_nette"),0]], + _ot_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1133, + 11, + 1133, + 43, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ok_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1133, + 11, + 1133, + 43, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ou_= + [0, + caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), + [0, + caml_string_of_jsbytes + ("seuil_impay\xc3\xa9_d\xc3\xa9pense_de_logement"), + 0]], + _oA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1138, + 12, + 1138, + 26, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _ov_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1138, + 12, + 1138, + 26, + [0, + caml_string_of_jsbytes + ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _oB_= + [0, + caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), + [0,caml_string_of_jsbytes("montant_impay\xc3\xa9"),0]], + _nV_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 119, + 5, + 119, + 42, + [0, + caml_string_of_jsbytes("Article L161-17-2"), + [0, + caml_string_of_jsbytes + ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), + [0, + caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), + [0, + caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Dispositions relatives aux prestations"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), + [0, + caml_string_of_jsbytes + ("Titre III: Titre III : Dispositions communes relatives au financement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]]]], + _nW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1118, + 12, + 1118, + 31, + [0, + caml_string_of_jsbytes + ("Date d'ouverture des droits \xc3\xa0 la retraite"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _nT_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 256, + 5, + 256, + 41, + [0, + caml_string_of_jsbytes("Article D161-2-1-9"), + [0, + caml_string_of_jsbytes + ("Paragraphe 2 : Ouverture du droit et liquidation."), + [0, + caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), + [0, + caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Dispositions relatives aux prestations"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), + [0, + caml_string_of_jsbytes + ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]]]], + _nU_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1118, + 12, + 1118, + 31, + [0, + caml_string_of_jsbytes + ("Date d'ouverture des droits \xc3\xa0 la retraite"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _nR_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 266, + 5, + 267, + 42, + [0, + caml_string_of_jsbytes("Article D161-2-1-9"), + [0, + caml_string_of_jsbytes + ("Paragraphe 2 : Ouverture du droit et liquidation."), + [0, + caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), + [0, + caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Dispositions relatives aux prestations"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), + [0, + caml_string_of_jsbytes + ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]]]], + _nS_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1118, + 12, + 1118, + 31, + [0, + caml_string_of_jsbytes + ("Date d'ouverture des droits \xc3\xa0 la retraite"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _nP_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 276, + 5, + 276, + 48, + [0, + caml_string_of_jsbytes("Article D161-2-1-9"), + [0, + caml_string_of_jsbytes + ("Paragraphe 2 : Ouverture du droit et liquidation."), + [0, + caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), + [0, + caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Dispositions relatives aux prestations"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), + [0, + caml_string_of_jsbytes + ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]]]], + _nQ_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1118, + 12, + 1118, + 31, + [0, + caml_string_of_jsbytes + ("Date d'ouverture des droits \xc3\xa0 la retraite"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _nN_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 285, + 5, + 285, + 48, + [0, + caml_string_of_jsbytes("Article D161-2-1-9"), + [0, + caml_string_of_jsbytes + ("Paragraphe 2 : Ouverture du droit et liquidation."), + [0, + caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), + [0, + caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Dispositions relatives aux prestations"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), + [0, + caml_string_of_jsbytes + ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]]]], + _nO_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1118, + 12, + 1118, + 31, + [0, + caml_string_of_jsbytes + ("Date d'ouverture des droits \xc3\xa0 la retraite"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _nL_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 294, + 5, + 294, + 48, + [0, + caml_string_of_jsbytes("Article D161-2-1-9"), + [0, + caml_string_of_jsbytes + ("Paragraphe 2 : Ouverture du droit et liquidation."), + [0, + caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), + [0, + caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), + [0, + caml_string_of_jsbytes + ("Chapitre 1er : Dispositions relatives aux prestations"), + [0, + caml_string_of_jsbytes + ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), + [0, + caml_string_of_jsbytes + ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), + [0, + caml_string_of_jsbytes + ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]]]]], + _nM_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1118, + 12, + 1118, + 31, + [0, + caml_string_of_jsbytes + ("Date d'ouverture des droits \xc3\xa0 la retraite"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _nX_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1118, + 12, + 1118, + 31, + [0, + caml_string_of_jsbytes + ("Date d'ouverture des droits \xc3\xa0 la retraite"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _nK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 1118, + 12, + 1118, + 31, + [0, + caml_string_of_jsbytes + ("Date d'ouverture des droits \xc3\xa0 la retraite"), + [0, + caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _nY_= + [0, + caml_string_of_jsbytes("OuvertureDroitsRetraite"), + [0,caml_string_of_jsbytes("\xc3\xa2ge_ouverture_droit"),0]], + _nH_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3257, + 14, + 3257, + 36, + [0, + caml_string_of_jsbytes("Article D832-11"), + [0, + caml_string_of_jsbytes + ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]], + _nI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 735, + 12, + 735, + 34, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nG_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 735, + 12, + 735, + 34, + [0, + caml_string_of_jsbytes + ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nJ_= + [0, + caml_string_of_jsbytes + ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), + [0,caml_string_of_jsbytes("n_nombre_parts_d832_11"),0]], + _nD_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3933, + 14, + 3933, + 36, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _nx_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 5522, + 5, + 5529, + 28, + [0, + caml_string_of_jsbytes("Article D861-8"), + [0, + caml_string_of_jsbytes("Section 2 : Allocations de logement"), + [0, + caml_string_of_jsbytes + ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]], + _ny_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 668, + 11, + 668, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nw_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4024, + 5, + 4024, + 26, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _nz_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 668, + 11, + 668, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nv_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3928, + 14, + 3928, + 47, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _nq_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4007, + 5, + 4007, + 26, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _nr_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 667, + 11, + 667, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _np_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 3913, + 14, + 3913, + 41, + [0, + caml_string_of_jsbytes("Article D832-25"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _nk_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 665, + 12, + 665, + 52, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nl_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 665, + 12, + 665, + 52, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nm_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 665, + 12, + 665, + 52, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nj_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 665, + 12, + 665, + 52, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nn_= + [0, + caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), + [0, + caml_string_of_jsbytes + ("limitation_majoration_personnes_\xc3\xa0_charge"), + 0]], + _ns_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 667, + 11, + 667, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _no_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 667, + 11, + 667, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nt_= + [0, + caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), + [0,caml_string_of_jsbytes("n_nombre_parts_d832_25_base"),0]], + _nA_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 668, + 11, + 668, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nu_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 668, + 11, + 668, + 44, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nB_= + [0, + caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), + [0,caml_string_of_jsbytes("n_nombre_parts_d832_25_majoration"),0]], + _nE_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 670, + 12, + 670, + 34, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nC_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 670, + 12, + 670, + 34, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nF_= + [0, + caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), + [0,caml_string_of_jsbytes("n_nombre_parts_d832_25"),0]], + _nf_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4097, + 5, + 4097, + 26, + [0, + caml_string_of_jsbytes("Article D832-26"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _ng_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 657, + 12, + 657, + 19, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ne_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4059, + 14, + 4059, + 21, + [0, + caml_string_of_jsbytes("Article D832-26"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _na_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_construction_reglementaire.catala_fr"), + 4046, + 14, + 4046, + 50, + [0, + caml_string_of_jsbytes("Article D832-26"), + [0, + caml_string_of_jsbytes + ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), + [0, + caml_string_of_jsbytes("Section 3 : Logements-foyers"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Titre III : Aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("Livre VIII : Aides personnelles au logement"), + [0, + caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), + [0, + caml_string_of_jsbytes + ("Code de la construction et de l'habitation"), + 0]]]]]]]]], + _m$_=[1,0], + _m6_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2684, + 5, + 2684, + 26, + [0, + caml_string_of_jsbytes("Article 31"), + [0, + caml_string_of_jsbytes + ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _m5_=[1,0], + _m7_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 652, + 11, + 652, + 35, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _m4_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2634, + 14, + 2634, + 38, + [0, + caml_string_of_jsbytes("Article 31"), + [0, + caml_string_of_jsbytes + ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _m3_=[1,0], + _mZ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/arrete_2019-09-27.catala_fr"), + 2720, + 14, + 2720, + 41, + [0, + caml_string_of_jsbytes("Article 31"), + [0, + caml_string_of_jsbytes + ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), + 0]]]], + _m0_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 655, + 11, + 655, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _mY_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 655, + 11, + 655, + 38, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _m1_= + [0, + caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), + [0,caml_string_of_jsbytes("montant_forfaitaire_d832_26"),0]], + _m8_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 652, + 11, + 652, + 35, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _m2_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 652, + 11, + 652, + 35, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _m9_= + [0, + caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), + [0,caml_string_of_jsbytes("tranches_revenus_d832_26"),0]], + _nb_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 653, + 11, + 653, + 47, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _m__= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 653, + 11, + 653, + 47, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nc_= + [0, + caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), + [0, + caml_string_of_jsbytes("tranches_revenus_d832_26_multipli\xc3\xa9es"), + 0]], + _nh_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 657, + 12, + 657, + 19, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _nd_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 657, + 12, + 657, + 19, + [0, + caml_string_of_jsbytes("Secteur logement-foyer"), + [0, + caml_string_of_jsbytes + ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], + _ni_= + [0, + caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), + [0,caml_string_of_jsbytes("montant"),0]], + _mS_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/autres_sources.catala_fr"), + 152, + 5, + 152, + 34, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Des contributions pour le remboursement de la dette sociale."), + [0, + caml_string_of_jsbytes + ("Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"), + 0]]]], + _mT_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 558, + 12, + 558, + 19, + [0, + caml_string_of_jsbytes + ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _mR_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 558, + 12, + 558, + 19, + [0, + caml_string_of_jsbytes + ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _mO_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/autres_sources.catala_fr"), + 190, + 39, + 190, + 68, + [0, + caml_string_of_jsbytes("Article 19"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Des contributions pour le remboursement de la dette sociale."), + [0, + caml_string_of_jsbytes + ("Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"), + 0]]]], + _mJ_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), + 37, + 9, + 37, + 20, + [0, + caml_string_of_jsbytes("Article L136-1-3"), + [0, + caml_string_of_jsbytes + ("Section 1 : De la contribution sociale sur les revenus d'activit\xc3\xa9 et sur les revenus de remplacement"), + [0, + caml_string_of_jsbytes + ("Chapitre 6 : Contribution sociale g\xc3\xa9n\xc3\xa9ralis\xc3\xa9e"), + [0, + caml_string_of_jsbytes + ("Titre III: Titre III : Dispositions communes relatives au financement"), + [0, + caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), + [0, + caml_string_of_jsbytes + ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), + 0]]]]]]], + _mK_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 556, + 11, + 556, + 22, + [0, + caml_string_of_jsbytes + ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _mI_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 556, + 11, + 556, + 22, + [0, + caml_string_of_jsbytes + ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _mL_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 556, + 11, + 556, + 22, + [0, + caml_string_of_jsbytes + ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _mH_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 556, + 11, + 556, + 22, + [0, + caml_string_of_jsbytes + ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _mM_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("exon\xc3\xa9r\xc3\xa9_csg"),0]], + _mP_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 555, + 11, + 555, + 20, + [0, + caml_string_of_jsbytes + ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _mN_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 555, + 11, + 555, + 20, + [0, + caml_string_of_jsbytes + ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _mQ_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("taux_crds"),0]], + _mU_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + [0,caml_string_of_jsbytes("montant"),0]], + _mX_= + [0, + caml_string_of_jsbytes + ("examples/aides_logement/autres_sources.catala_fr"), + 156, + 13, + 156, + 24, + [0, + caml_string_of_jsbytes("Article 14"), + [0, + caml_string_of_jsbytes + ("Chapitre II : Des contributions pour le remboursement de la dette sociale."), + [0, + caml_string_of_jsbytes + ("Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"), + 0]]]], + _mV_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 563, + 13, + 563, + 42, + [0, + caml_string_of_jsbytes + ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _mW_= + [0, + caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), + 563, + 13, + 563, + 42, + [0, + caml_string_of_jsbytes + ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), + [0, + caml_string_of_jsbytes + ("D\xc3\xa9clarations des champs d'application"), + [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], + _mG_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales_in"), + 0], + _mF_=[0,caml_string_of_jsbytes("Smic_in"),0], + _mE_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in"), + 0], + _mD_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in"), + 0], + _mC_= + [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales_in"),0], + _mB_= + [0, + caml_string_of_jsbytes + ("CalculetteAidesAuLogementGardeAltern\xc3\xa9e_in"), + 0], + _mA_=[0,caml_string_of_jsbytes("CalculetteAidesAuLogement_in"),0], + _mz_= + [0,caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement_in"),0], + _my_=[0,caml_string_of_jsbytes("OuvertureDroitsRetraite_in"),0], + _mx_=[0,caml_string_of_jsbytes("CalculAllocationLogement_in"),0], + _mw_=[0,caml_string_of_jsbytes("CalculAllocationLogementFoyer_in"),0], + _mv_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9_in"), + 0], + _mu_=[0,caml_string_of_jsbytes("CalculAllocationLogementLocatif_in"),0], + _mt_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement_in"), + 0], + _ms_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9_in"), + 0], + _mr_= + [0, + caml_string_of_jsbytes + ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9_in"), + 0], + _mq_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementFoyer_in"), + 0], + _mp_=[0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer_in"),0], + _mo_= + [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale_in"),0], + _mn_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementLocatif_in"), + 0], + _mm_= + [0, + caml_string_of_jsbytes + ("ContributionsSocialesAidesPersonnelleLogement_in"), + 0], + _ml_= + [0,caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement_in"),0], + _mk_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement_in"), + 0], + _mj_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AllocationLogement_in"), + 0], + _mi_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement_in"), + 0], + _mh_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement_in"), + 0], + _mg_=[0,caml_string_of_jsbytes("M\xc3\xa9nage"),0], + _mf_=[0,caml_string_of_jsbytes("Logement"),0], + _me_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), + 0], + _md_=[0,caml_string_of_jsbytes("ModeOccupation"),0], + _mc_=[0,caml_string_of_jsbytes("Cat\xc3\xa9gorieCalculAPL"),0], + _mb_=[0,caml_string_of_jsbytes("Personne\xc3\x80Charge"),0], + _ma_=[0,caml_string_of_jsbytes("Location"),0], + _l$_=[0,caml_string_of_jsbytes("Enfant\xc3\x80Charge"),0], + _l__=[0,caml_string_of_jsbytes("Demandeur"),0], + _l9_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), + 0], + _l8_=[0,caml_string_of_jsbytes("Propri\xc3\xa9taire"),0], + _l7_= + [0, + caml_string_of_jsbytes("InformationsPrimeDeD\xc3\xa9m\xc3\xa9nagement"), + 0], + _l6_=[0,caml_string_of_jsbytes("ChangementLogementD842_4"),0], + _l5_=[0,caml_string_of_jsbytes("Nationalit\xc3\xa9"),0], + _l4_= + [0, + caml_string_of_jsbytes("Lou\xc3\xa9OuSousLou\xc3\xa9\xc3\x80DesTiers"), + 0], + _l3_=[0,caml_string_of_jsbytes("TypeBailleur"),0], + _l2_=[0,caml_string_of_jsbytes("EnfantPrestationsFamiliales"),0], + _l1_=[0,caml_string_of_jsbytes("LogementFoyer"),0], + _l0_=[0,caml_string_of_jsbytes("Pr\xc3\xaat"),0], + _lZ_= + [0, + caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + 0], + _lY_= + [0, + caml_string_of_jsbytes + ("DateNaissanceTroisi\xc3\xa8meOuDernierPlusEnfant"), + 0], + _lX_=[0,caml_string_of_jsbytes("AutrePersonne\xc3\x80Charge"),0], + _lW_=[0,caml_string_of_jsbytes("TrancheRevenuD\xc3\xa9cimal"),0], + _lV_=[0,caml_string_of_jsbytes("TrancheRevenu"),0], + _lU_=[0,caml_string_of_jsbytes("NeufOuAncien"),0], + _lT_=[0,caml_string_of_jsbytes("Smic"),0], + _lS_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), + 0], + _lR_= + [0, + caml_string_of_jsbytes + ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), + 0], + _lQ_=[0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0], + _lP_= + [0, + caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), + 0], + _lO_=[0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0], + _lN_=[0,caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"),0], + _lM_=[0,caml_string_of_jsbytes("OuvertureDroitsRetraite"),0], + _lL_=[0,caml_string_of_jsbytes("CalculAllocationLogement"),0], + _lK_=[0,caml_string_of_jsbytes("CalculAllocationLogementFoyer"),0], + _lJ_= + [0, + caml_string_of_jsbytes + ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + 0], + _lI_=[0,caml_string_of_jsbytes("CalculAllocationLogementLocatif"),0], + _lH_=[0,caml_string_of_jsbytes("InfosChangementLogementD842_4"),0], + _lG_= + [0,caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"),0], + _lF_=[0,caml_string_of_jsbytes("Traitement_formule_aide_finale"),0], + _lE_= + [0, + caml_string_of_jsbytes + ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), + 0], + _lD_= + [0, + caml_string_of_jsbytes + ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), + 0], + _lC_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), + 0], + _lB_=[0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0], + _lA_= + [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0], + _lz_= + [0, + caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), + 0], + _ly_= + [0, + caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), + 0], + _lx_=[0,caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"),0], + _lw_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), + 0], + _lv_= + [0, + caml_string_of_jsbytes + ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), + 0], + _lu_=[0,caml_string_of_jsbytes("PersonneVivantHabituellementAuFoyer"),0], + _lt_=[0,caml_string_of_jsbytes("Conditions\xc3\x89trangers"),0], + _ls_=[0,caml_string_of_jsbytes("Patrimoine"),0], + _lr_=[0,caml_string_of_jsbytes("PersonneSousLocation"),0], + _lq_=[0,caml_string_of_jsbytes("ConventionANHA"),0], + _lp_=[0,caml_string_of_jsbytes("ConventionBailleurSocial"),0], + _lo_= + [0, + caml_string_of_jsbytes("\xc3\x89l\xc3\xa9mentPrestationsFamiliales"), + 0], + _ln_=[0,caml_string_of_jsbytes("SituationObligationScolaire"),0], + _lm_=[0,caml_string_of_jsbytes("PriseEnChargeEnfant"),0], + _ll_=[0,caml_string_of_jsbytes("Collectivit\xc3\xa9"),0], + _lk_=[0,caml_string_of_jsbytes("SituationFamilialeCalculAPL"),0], + _lj_= + [0, + caml_string_of_jsbytes + ("Cat\xc3\xa9gorie\xc3\x89quivalenceLoyerAllocationLogementFoyer"), + 0], + _li_=[0,caml_string_of_jsbytes("TypeLogementFoyer"),0], + _lh_=[0,caml_string_of_jsbytes("PriseEnCharge"),0], + _lg_=[0,caml_string_of_jsbytes("SituationFamiliale"),0], + _lf_=[0,caml_string_of_jsbytes("TypeAidesPersonnelleLogement"),0], + _le_= + [0, + caml_string_of_jsbytes + ("AccordFinancementRepr\xc3\xa9sentant\xc3\x89tatOutreMer"), + 0], + _ld_= + [0, + caml_string_of_jsbytes + ("Type\xc3\x89ligibilit\xc3\xa9AllocationLogement"), + 0], + _lc_=[0,caml_string_of_jsbytes("ModeOccupationImpay\xc3\xa9"),0], + _lb_=[0,caml_string_of_jsbytes("D\xc3\xa9penseLogement"),0], + _la_=[0,caml_string_of_jsbytes("Versement\xc3\x80"),0], + _k$_= + [0,caml_string_of_jsbytes("PaiementLogementDistinctProfessionnel"),0], + _k__=[0,caml_string_of_jsbytes("ZoneDHabitation"),0], + _k9_=[0,caml_string_of_jsbytes("DateDeNaissanceOuMoisDeGrossesse"),0], + _k8_=[0,caml_string_of_jsbytes("Parent\xc3\xa9"),0], + _k7_=[0,caml_string_of_jsbytes("SituationGardeAltern\xc3\xa9e"),0], + _k6_=[0,caml_string_of_jsbytes("ParentOuAutre"),0], + _k5_=[0,caml_string_of_jsbytes("PrestationRe\xc3\xa7ue"),0], + _k4_=[0,caml_string_of_jsbytes("LimiteTrancheD\xc3\xa9cimal"),0], + _k3_=[0,caml_string_of_jsbytes("LimiteTranche"),0], + _k2_=[0,caml_string_of_jsbytes("Am\xc3\xa9lior\xc3\xa9ParOccupant"),0], + _k1_=[0,caml_string_of_jsbytes("TypeTravauxLogementR842_5"),0], + _k0_=[0,caml_string_of_jsbytes("TypeTravauxLogementD832_15"),0], + _kZ_=[0,caml_string_of_jsbytes("TitulairePr\xc3\xaat"),0], + _kY_=[0,caml_string_of_jsbytes("TypePr\xc3\xaat"),0], + _aeu_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'ModeOccupation.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'ModeOccupation.t'")], + _aet_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'CategorieCalculAPL.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'CategorieCalculAPL.t'")], + _aes_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'PersonneACharge.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'PersonneACharge.t'")], + _aer_=[1,0], + _aeq_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'ChangementLogementD8424.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'ChangementLogementD8424.t'")], + _aep_=[0,0], + _aeo_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes("' kind for the enumeration 'Nationalite.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'Nationalite.t'")], + _aen_=[0,0], + _aem_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'LoueOuSousLoueADesTiers.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'LoueOuSousLoueADesTiers.t'")], + _ael_=[2,0], + _aek_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'TypeBailleur.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'TypeBailleur.t'")], + _aej_=[0,0], + _aei_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'")], + _aeh_=[0,0], + _aeg_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'NeufOuAncien.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'NeufOuAncien.t'")], + _ad__=[0,0], + _ad$_=[2,0], + _aea_=[1,0], + _aeb_=[5,0], + _aec_=[6,0], + _aed_=[3,0], + _aee_=[7,0], + _aef_=[4,0], + _ad9_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'ElementPrestationsFamiliales.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'")], + _ad6_=[1,0], + _ad7_=[0,0], + _ad8_=[2,0], + _ad5_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'SituationObligationScolaire.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'")], + _ad0_=[4,0], + _ad1_=[3,0], + _ad2_=[0,0], + _ad3_=[1,0], + _ad4_=[2,0], + _adZ_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'PriseEnChargeEnfant.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'PriseEnChargeEnfant.t'")], + _adQ_=[7,0], + _adR_=[5,0], + _adS_=[4,0], + _adT_=[6,0], + _adU_=[8,0], + _adV_=[2,0], + _adW_=[3,0], + _adX_=[1,0], + _adY_=[0,0], + _adP_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'Collectivite.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'Collectivite.t'")], + _adN_=[0,0], + _adO_=[1,0], + _adM_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'SituationFamilialeCalculAPL.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'SituationFamilialeCalculAPL.t'")], + _adI_=[2,0], + _adJ_=[1,0], + _adK_=[0,0], + _adL_=[3,0], + _adH_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'")], + _adD_=[1,0], + _adE_=[0,0], + _adF_=[2,0], + _adG_=[3,0], + _adC_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'TypeLogementFoyer.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'TypeLogementFoyer.t'")], + _adz_=[2,0], + _adA_=[1,0], + _adB_=[0,0], + _ady_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'PriseEnCharge.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'")], + _adt_=[2,0], + _adu_=[3,0], + _adv_=[5,0], + _adw_=[4,0], + _adx_=[0,0], + _ads_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'SituationFamiliale.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'SituationFamiliale.t'")], + _adp_=[2,0], + _adq_=[1,0], + _adr_=[0,0], + _ado_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'TypeAidesPersonnelleLogement.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'TypeAidesPersonnelleLogement.t'")], + _adn_=[1,0], + _adm_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'")], + _adj_=[0,0], + _adk_=[2,0], + _adl_=[1,0], + _adi_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'")], + _adg_=[1,0], + _adh_=[0,0], + _adf_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'ModeOccupationImpaye.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'ModeOccupationImpaye.t'")], + _ade_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'DepenseLogement.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'DepenseLogement.t'")], + _adb_=[2,0], + _adc_=[1,0], + _add_=[0,0], + _ada_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes("' kind for the enumeration 'VersementA.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'VersementA.t'")], + _ac$_=[1,0], + _ac__= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'")], + _ac7_=[2,0], + _ac8_=[1,0], + _ac9_=[0,0], + _ac6_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'ZoneDHabitation.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'ZoneDHabitation.t'")], + _ac4_=[1,0], + _ac5_=[2,0], + _ac3_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'")], + _ac0_=[1,0], + _ac1_=[2,0], + _ac2_=[0,0], + _acZ_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes("' kind for the enumeration 'Parente.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'Parente.t'")], + _acY_=[0,0], + _acX_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'SituationGardeAlternee.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'SituationGardeAlternee.t'")], + _acW_=[1,0], + _acV_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'ParentOuAutre.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'ParentOuAutre.t'")], + _acP_=[1,0], + _acQ_=[0,0], + _acR_=[3,0], + _acS_=[4,0], + _acT_=[2,0], + _acU_=[5,0], + _acO_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'PrestationRecue.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'PrestationRecue.t'")], + _acN_=[1,0], + _acM_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'LimiteTrancheDecimal.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'LimiteTrancheDecimal.t'")], + _acL_=[1,0], + _acK_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'LimiteTranche.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'LimiteTranche.t'")], + _acI_=[0,0], + _acJ_=[1,0], + _acH_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'AmelioreParOccupant.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'AmelioreParOccupant.t'")], + _acD_=[1,0], + _acE_=[3,0], + _acF_=[0,0], + _acG_=[2,0], + _acC_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'TypeTravauxLogementR8425.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementR8425.t'")], + _acz_=[1,0], + _acA_=[0,0], + _acB_=[2,0], + _acy_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'TypeTravauxLogementD83215.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementD83215.t'")], + _acw_=[1,0], + _acx_=[0,0], + _acv_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes + ("' kind for the enumeration 'TitulairePret.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'TitulairePret.t'")], + _acq_=[3,0], + _acr_=[1,0], + _acs_=[2,0], + _act_=[0,0], + _acu_=[4,0], + _acp_= + [0, + [11, + caml_string_of_jsbytes("Unexpected '"), + [2, + 0, + [11, + caml_string_of_jsbytes("' kind for the enumeration 'TypePret.t'"), + 0]]], + caml_string_of_jsbytes + ("Unexpected '%s' kind for the enumeration 'TypePret.t'")]; + function embed_prise_en_charge(x) + {switch(x[0]) + {case 0: var - _De_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _Df_ = caml_call1(Runtime_ocaml_Runtime[69], _De_), - _Dg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_559500), - _Dh_ = caml_call2(Runtime_ocaml_Runtime[104], _Dg_, _Df_), - _Di_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7830000); - return caml_call2(Runtime_ocaml_Runtime[93], _Di_, _Dh_); - }, - _l__ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _dW_, 1); - }, - _l$_ = - [0, - function(param){ - function _Co_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _Cp_(param){return 0;} - function _Cq_(param){ - function _C4_(param){ - var - _C$_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _Da_ = caml_call1(Runtime_ocaml_Runtime[69], _C$_), - _Db_ = caml_call1(Runtime_ocaml_Runtime[31], cst_582700), - _Dc_ = caml_call2(Runtime_ocaml_Runtime[104], _Db_, _Da_), - _Dd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_8155800); - return caml_call2(Runtime_ocaml_Runtime[93], _Dd_, _Dc_); - } - function _C5_(param){ - var - _C6_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), - _C7_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _C6_), - _C8_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _C9_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _C8_), - _C__ = caml_call2(Runtime_ocaml_Runtime[83], _C9_, _C7_); - return caml_call2(Runtime_ocaml_Runtime[29], _dX_, _C__); - } - return caml_call4(Runtime_ocaml_Runtime[63], _dY_, [0], _C5_, _C4_); - } - function _Cr_(param){ - function _CS_(param){ - var - _CZ_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _C0_ = caml_call1(Runtime_ocaml_Runtime[69], _CZ_), - _C1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_577500), - _C2_ = caml_call2(Runtime_ocaml_Runtime[104], _C1_, _C0_), - _C3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_8083100); - return caml_call2(Runtime_ocaml_Runtime[93], _C3_, _C2_); - } - function _CT_(param){ - var - _CU_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), - _CV_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _CU_), - _CW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _CX_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _CW_), - _CY_ = caml_call2(Runtime_ocaml_Runtime[83], _CX_, _CV_); - return caml_call2(Runtime_ocaml_Runtime[29], _dZ_, _CY_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _d0_, [0], _CT_, _CS_); - } - function _Cs_(param){ - function _CG_(param){ - var - _CN_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _CO_ = caml_call1(Runtime_ocaml_Runtime[69], _CN_), - _CP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_568400), - _CQ_ = caml_call2(Runtime_ocaml_Runtime[104], _CP_, _CO_), - _CR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7955800); - return caml_call2(Runtime_ocaml_Runtime[93], _CR_, _CQ_); - } - function _CH_(param){ - var - _CI_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), - _CJ_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _CI_), - _CK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _CL_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _CK_), - _CM_ = caml_call2(Runtime_ocaml_Runtime[83], _CL_, _CJ_); - return caml_call2(Runtime_ocaml_Runtime[29], _d1_, _CM_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _d2_, [0], _CH_, _CG_); - } - var - _Ct_ = - [0, - function(param){ - function _Cu_(param){ - var - _CB_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _CC_ = caml_call1(Runtime_ocaml_Runtime[69], _CB_), - _CD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_562800), - _CE_ = caml_call2(Runtime_ocaml_Runtime[104], _CD_, _CC_), - _CF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7877000); - return caml_call2(Runtime_ocaml_Runtime[93], _CF_, _CE_); - } - function _Cv_(param){ - var - _Cw_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), - _Cx_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Cw_), - _Cy_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), - _Cz_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Cy_), - _CA_ = caml_call2(Runtime_ocaml_Runtime[83], _Cz_, _Cx_); - return caml_call2(Runtime_ocaml_Runtime[29], _d3_, _CA_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _d4_, [0], _Cv_, _Cu_); - }, - _Cs_, - _Cr_, - _Cq_]; - return caml_call4(Runtime_ocaml_Runtime[63], _d5_, _Ct_, _Cp_, _Co_); - }], - _ma_ = caml_call4(Runtime_ocaml_Runtime[63], _d6_, _l$_, _l__, _l9_); - } - catch(_Cn_){ - var _l8_ = caml_wrap_exception(_Cn_); - if(_l8_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _dV_], 1); - throw caml_maybe_attach_backtrace(_l8_, 0); - } - var - plafond_i_i_d521_3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _d7_, Runtime_ocaml_Runtime[13], _ma_); - try{ - var - _mc_ = - function(param){ + x$0=x[1], + _cY5_= + [0, + cst_GardeAltern_ePartageAlloca, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: var - _Ci_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _Cj_ = caml_call1(Runtime_ocaml_Runtime[69], _Ci_), - _Ck_ = caml_call1(Runtime_ocaml_Runtime[31], cst_559500$0), - _Cl_ = caml_call2(Runtime_ocaml_Runtime[104], _Ck_, _Cj_), - _Cm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5595000); - return caml_call2(Runtime_ocaml_Runtime[93], _Cm_, _Cl_); - }, - _md_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _d9_, 1); - }, - _me_ = + x$1=x[1], + _cY5_= + [0, + cst_GardeAltern_eAllocataireUn, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cY5_= + [0, + cst_EffectiveEtPermanente, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + case 3: + var + x$3=x[1], + _cY5_= + [0, + cst_ServicesSociauxAllocationV, + caml_call1(Runtime_ocaml_Runtime[11],x$3)]; + break; + default: + var + x$4=x[1], + _cY5_= + [0, + cst_ServicesSociauxAllocationV$0, + caml_call1(Runtime_ocaml_Runtime[11],x$4)]} + return [6,_a_,_cY5_]} + var SituationObligationScolaire=[0]; + function embed_situation_obligation_sco(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cY4_=[0,cst_Avant,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cY4_=[0,cst_Pendant,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cY4_=[0,cst_Apr_s,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_b_,_cY4_]} + var PriseEnCompte=[0]; + function embed_prise_en_compte(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cY3_=[0,cst_Compl_te,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cY3_=[0,cst_Partag_e,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cY3_=[0,cst_Z_ro,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_c_,_cY3_]} + var VersementAllocations=[0]; + function embed_versement_allocations(x) + {if(0 === x[0]) + var + x$0=x[1], + _cY2_=[0,cst_Normal,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + else + var + x$1=x[1], + _cY2_= + [0, + cst_AllocationVers_eAuxService, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_d_,_cY2_]} + var ElementPrestationsFamiliales=[0]; + function embed_element_prestations_fami(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cY1_= + [0, + cst_PrestationAccueilJeuneEnfa, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cY1_= + [0, + cst_AllocationsFamiliales, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cY1_= + [0, + cst_Compl_mentFamilial, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + case 3: + var + x$3=x[1], + _cY1_= + [0, + cst_AllocationLogement, + caml_call1(Runtime_ocaml_Runtime[11],x$3)]; + break; + case 4: + var + x$4=x[1], + _cY1_= + [0, + cst_Allocation_ducationEnfantH, + caml_call1(Runtime_ocaml_Runtime[11],x$4)]; + break; + case 5: + var + x$5=x[1], + _cY1_= + [0, + cst_AllocationSoutienFamilial, + caml_call1(Runtime_ocaml_Runtime[11],x$5)]; + break; + case 6: + var + x$6=x[1], + _cY1_= + [0, + cst_AllocationRentr_eScolaire, + caml_call1(Runtime_ocaml_Runtime[11],x$6)]; + break; + default: + var + x$7=x[1], + _cY1_= + [0, + cst_AllocationJournali_rePrese, + caml_call1(Runtime_ocaml_Runtime[11],x$7)]} + return [6,_e_,_cY1_]} + var Collectivite=[0]; + function embed_collectivite(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cY0_=[0,cst_Guadeloupe,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cY0_=[0,cst_Guyane,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cY0_=[0,cst_Martinique,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + case 3: + var + x$3=x[1], + _cY0_=[0,cst_LaR_union,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; + break; + case 4: + var + x$4=x[1], + _cY0_= + [0,cst_SaintBarth_lemy,caml_call1(Runtime_ocaml_Runtime[11],x$4)]; + break; + case 5: + var + x$5=x[1], + _cY0_=[0,cst_SaintMartin,caml_call1(Runtime_ocaml_Runtime[11],x$5)]; + break; + case 6: + var + x$6=x[1], + _cY0_=[0,cst_M_tropole,caml_call1(Runtime_ocaml_Runtime[11],x$6)]; + break; + case 7: + var + x$7=x[1], + _cY0_= + [0, + cst_SaintPierreEtMiquelon, + caml_call1(Runtime_ocaml_Runtime[11],x$7)]; + break; + default: + var + x$8=x[1], + _cY0_=[0,cst_Mayotte,caml_call1(Runtime_ocaml_Runtime[11],x$8)]} + return [6,_f_,_cY0_]} + var AllocationFamilialesAvril2008=[0]; + function embed_allocation_familiales_av(x) + {return [7, + _g_, + [0, + [0, + cst_ge_minimum_alin_a_1_l521_3, + caml_call1(Runtime_ocaml_Runtime[17],x[1])], + 0]]} + var AllocationsFamiliales=[0]; + function embed_allocations_familiales(x) + {return [7, + _h_, + [0, + [0,cst_montant_vers,caml_call1(Runtime_ocaml_Runtime[13],x[1])], + 0]]} + var VerificationAgeInferieurOuEgal=[0]; + function embed_verification_age_inferie(x) + {return [7, + _i_, + [0, + [0, + cst_est_inf_rieur_ou_gal, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + 0]]} + var VerificationAgeSuperieurA=[0]; + function embed_verification_age_superie(x) + {return [7, + _j_, + [0, + [0, + cst_est_sup_rieur, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + 0]]} + var Smic=[0]; + function embed_smic(x) + {return [7, + _k_, + [0, + [0,cst_brut_horaire,caml_call1(Runtime_ocaml_Runtime[13],x[1])], + 0]]} + var BaseMensuelleAllocationsFamili=[0]; + function embed_base_mensuelle_allocatio(x) + {return [7, + _l_, + [0,[0,cst_montant,caml_call1(Runtime_ocaml_Runtime[13],x[1])],0]]} + var InterfaceAllocationsFamiliales=[0]; + function embed_interface_allocations_fa(x) + {return [7, + _m_, + [0, + [0, + cst_i_montant_vers, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + 0]]} + var EnfantEntree=[0]; + function embed_enfant_entree(x) + {var + _cYV_= [0, - function(param){ - function _Bs_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _Bt_(param){return 0;} - function _Bu_(param){ - function _B8_(param){ - var - _Cd_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _Ce_ = caml_call1(Runtime_ocaml_Runtime[69], _Cd_), - _Cf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_582700$0), - _Cg_ = caml_call2(Runtime_ocaml_Runtime[104], _Cf_, _Ce_), - _Ch_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5827900); - return caml_call2(Runtime_ocaml_Runtime[93], _Ch_, _Cg_); - } - function _B9_(param){ - var - _B__ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), - _B$_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _B__), - _Ca_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _Cb_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ca_), - _Cc_ = caml_call2(Runtime_ocaml_Runtime[83], _Cb_, _B$_); - return caml_call2(Runtime_ocaml_Runtime[29], _d__, _Cc_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _d$_, [0], _B9_, _B8_); - } - function _Bv_(param){ - function _BW_(param){ - var - _B3_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _B4_ = caml_call1(Runtime_ocaml_Runtime[69], _B3_), - _B5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_577500$0), - _B6_ = caml_call2(Runtime_ocaml_Runtime[104], _B5_, _B4_), - _B7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5775900); - return caml_call2(Runtime_ocaml_Runtime[93], _B7_, _B6_); - } - function _BX_(param){ - var - _BY_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), - _BZ_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _BY_), - _B0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _B1_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _B0_), - _B2_ = caml_call2(Runtime_ocaml_Runtime[83], _B1_, _BZ_); - return caml_call2(Runtime_ocaml_Runtime[29], _ea_, _B2_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _eb_, [0], _BX_, _BW_); - } - function _Bw_(param){ - function _BK_(param){ - var - _BR_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _BS_ = caml_call1(Runtime_ocaml_Runtime[69], _BR_), - _BT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_568400$0), - _BU_ = caml_call2(Runtime_ocaml_Runtime[104], _BT_, _BS_), - _BV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5684900); - return caml_call2(Runtime_ocaml_Runtime[93], _BV_, _BU_); - } - function _BL_(param){ - var - _BM_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), - _BN_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _BM_), - _BO_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _BP_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _BO_), - _BQ_ = caml_call2(Runtime_ocaml_Runtime[83], _BP_, _BN_); - return caml_call2(Runtime_ocaml_Runtime[29], _ec_, _BQ_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _ed_, [0], _BL_, _BK_); - } - var - _Bx_ = - [0, - function(param){ - function _By_(param){ - var - _BF_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _BG_ = caml_call1(Runtime_ocaml_Runtime[69], _BF_), - _BH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_562800$0), - _BI_ = caml_call2(Runtime_ocaml_Runtime[104], _BH_, _BG_), - _BJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5628600); - return caml_call2(Runtime_ocaml_Runtime[93], _BJ_, _BI_); - } - function _Bz_(param){ - var - _BA_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), - _BB_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _BA_), - _BC_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), - _BD_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _BC_), - _BE_ = caml_call2(Runtime_ocaml_Runtime[83], _BD_, _BB_); - return caml_call2(Runtime_ocaml_Runtime[29], _ee_, _BE_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ef_, [0], _Bz_, _By_); - }, - _Bw_, - _Bv_, - _Bu_]; - return caml_call4(Runtime_ocaml_Runtime[63], _eg_, _Bx_, _Bt_, _Bs_); - }], - _mf_ = caml_call4(Runtime_ocaml_Runtime[63], _eh_, _me_, _md_, _mc_); - } - catch(_Br_){ - var _mb_ = caml_wrap_exception(_Br_); - if(_mb_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _d8_], 1); - throw caml_maybe_attach_backtrace(_mb_, 0); - } - var - plafond_i_d521_3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _ei_, Runtime_ocaml_Runtime[13], _mf_); - try{ - var - _mh_ = function(param){return 0;}, - _mi_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ek_, 1); - }, - _mj_ = + [0, + cst_d_b_n_ficie_titre_personne, + caml_call1(Runtime_ocaml_Runtime[12],x[6])], + 0], + _cYW_= [0, - function(param){ - function _Bi_(param){return 1;} - function _Bj_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _el_, 1); - } - var - _Bk_ = - [0, - function(param){ - function _Bl_(param){return 0;} - function _Bm_(param){ - var - _Bn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$0), - _Bo_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _Bp_ = caml_call2(Runtime_ocaml_Runtime[86], _Bo_, _Bn_), - _Bq_ = + [0, + cst_d_a_d_j_ouvert_droit_aux_a, + caml_call1(Runtime_ocaml_Runtime[12],x[5])], + _cYV_], + _cYX_=[0,[0,cst_d_prise_en_charge,embed_prise_en_charge(x[4])],_cYW_], + _cYY_= + [0, + [0, + cst_d_date_de_naissance, + caml_call1(Runtime_ocaml_Runtime[16],x[3])], + _cYX_], + _cYZ_= + [0, + [0, + cst_d_r_muneration_mensuelle, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cYY_]; + return [7, + _n_, + [0, + [0, + cst_d_identifiant, + caml_call1(Runtime_ocaml_Runtime[14],x[1])], + _cYZ_]]} + var Enfant=[0]; + function embed_enfant(x) + {var + _cYP_= + [0, + [0, + cst_b_n_ficie_titre_personnel_, + caml_call1(Runtime_ocaml_Runtime[12],x[7])], + 0], + _cYQ_= + [0, + [0, + cst_a_d_j_ouvert_droit_aux_all, + caml_call1(Runtime_ocaml_Runtime[12],x[6])], + _cYP_], + _cYR_=[0,[0,cst_prise_en_charge,embed_prise_en_charge(x[5])],_cYQ_], + _cYS_= + [0, + [0,cst_date_de_naissance,caml_call1(Runtime_ocaml_Runtime[16],x[4])], + _cYR_], + _cYT_= + [0, + [0, + cst_r_muneration_mensuelle, + caml_call1(Runtime_ocaml_Runtime[13],x[3])], + _cYS_], + _cYU_= + [0, + [0,cst_obligation_scolaire,embed_situation_obligation_sco(x[2])], + _cYT_]; + return [7, + _o_, + [0, + [0,cst_identifiant,caml_call1(Runtime_ocaml_Runtime[14],x[1])], + _cYU_]]} + var EnfantLePlusAge=[0]; + function embed_enfant_le_plus_age(x) + {return [7,_p_,[0,[0,cst_le_plus_g,embed_enfant(x[1])],0]]} + var PrestationsFamiliales=[0]; + function embed_prestations_familiales(x) + {var + _cYM_= + [0, + [0, + cst_r_gime_outre_mer_l751_1, + caml_call1(Runtime_ocaml_Runtime[12],x[4])], + 0], + _cYN_= + [0, + [0,cst_ge_l512_3_2,caml_call1(Runtime_ocaml_Runtime[17],x[3])], + _cYM_], + _cYO_= + [0, + [0,cst_conditions_hors_ge,caml_call1(Runtime_ocaml_Runtime[10],x[2])], + _cYN_]; + return [7, + _q_, + [0, + [0,cst_droit_ouvert,caml_call1(Runtime_ocaml_Runtime[10],x[1])], + _cYO_]]} + var PrestationsFamilialesIn=[0]; + function embed_prestations_familiales_i(x) + {var + _cYK_=[0,[0,cst_r_sidence_in,embed_collectivite(x[3])],0], + _cYL_= + [0, + [0,cst_prestation_courante_in,embed_element_prestations_fami(x[2])], + _cYK_]; + return [7, + _r_, + [0, + [0, + cst_date_courante_in, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cYL_]]} + var AllocationFamilialesAvril2008I=[0]; + function embed_allocation_familiales_av$0(param){return 0} + var EnfantLePlusAgeIn=[0]; + function embed_enfant_le_plus_age_in(x) + {return [7, + _s_, + [0, + [0, + cst_enfants_in, + caml_call2(Runtime_ocaml_Runtime[18],embed_enfant,x[1])], + 0]]} + var AllocationsFamilialesIn=[0]; + function embed_allocations_familiales_i(x) + {var + _cYE_= + [0, + [0, + cst_avait_enfant_charge_avant_, + caml_call1(Runtime_ocaml_Runtime[12],x[7])], + 0], + _cYF_= + [0, + [0, + cst_enfants_charge_in, + caml_call2(Runtime_ocaml_Runtime[18],embed_enfant,x[6])], + _cYE_], + _cYG_= + [0, + [0,cst_date_courante_in$0,caml_call1(Runtime_ocaml_Runtime[16],x[5])], + _cYF_], + _cYH_=[0,[0,cst_r_sidence_in$0,embed_collectivite(x[4])],_cYG_], + _cYI_= + [0, + [0, + cst_ressources_m_nage_in, + caml_call1(Runtime_ocaml_Runtime[13],x[3])], + _cYH_], + _cYJ_= + [0, + [0, + cst_personne_charge_effective_, + caml_call1(Runtime_ocaml_Runtime[12],x[2])], + _cYI_]; + return [7, + _t_, + [0, + [0, + cst_personne_charge_effective_$0, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + _cYJ_]]} + var VerificationAgeInferieurOuEgal$0=[0]; + function embed_verification_age_inferie$0(x) + {var + _cYC_= + [0,[0,cst_ann_es_in,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], + _cYD_= + [0, + [0,cst_date_courante_in$1,caml_call1(Runtime_ocaml_Runtime[16],x[2])], + _cYC_]; + return [7, + _u_, + [0, + [0, + cst_date_naissance_in, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cYD_]]} + var VerificationAgeSuperieurAIn=[0]; + function embed_verification_age_superie$0(x) + {var + _cYA_= + [0,[0,cst_ann_es_in$0,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], + _cYB_= + [0, + [0,cst_date_courante_in$2,caml_call1(Runtime_ocaml_Runtime[16],x[2])], + _cYA_]; + return [7, + _v_, + [0, + [0, + cst_date_naissance_in$0, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cYB_]]} + var SmicIn=[0]; + function embed_smic_in(x) + {var _cYz_=[0,[0,cst_r_sidence_in$1,embed_collectivite(x[2])],0]; + return [7, + _w_, + [0, + [0, + cst_date_courante_in$3, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cYz_]]} + var BaseMensuelleAllocationsFamili$0=[0]; + function embed_base_mensuelle_allocatio$0(x) + {return [7, + _x_, + [0, + [0, + cst_date_courante_in$4, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + 0]]} + var InterfaceAllocationsFamiliales$0=[0]; + function embed_interface_allocations_fa$0(x) + {var + _cYt_= + [0, + [0, + cst_i_avait_enfant_charge_avan, + caml_call1(Runtime_ocaml_Runtime[12],x[7])], + 0], + _cYu_= + [0, + [0, + cst_i_personne_charge_effectiv, + caml_call1(Runtime_ocaml_Runtime[12],x[6])], + _cYt_], + _cYv_= + [0, + [0, + cst_i_personne_charge_effectiv$0, + caml_call1(Runtime_ocaml_Runtime[12],x[5])], + _cYu_], + _cYw_=[0,[0,cst_i_r_sidence_in,embed_collectivite(x[4])],_cYv_], + _cYx_= + [0, + [0, + cst_i_ressources_m_nage_in, + caml_call1(Runtime_ocaml_Runtime[13],x[3])], + _cYw_], + _cYy_= + [0, + [0, + cst_i_enfants_in, + caml_call2(Runtime_ocaml_Runtime[18],embed_enfant_entree,x[2])], + _cYx_]; + return [7, + _y_, + [0, + [0, + cst_i_date_courante_in, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cYy_]]} + function allocation_familiales_avril200(allocation_familiales_avril200) + {try + {var + _cYp_= + function(param){return caml_call3(Runtime_ocaml_Runtime[60],16,0,0)}, + _cYq_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_A_,1)}, + _cYr_=caml_call4(Runtime_ocaml_Runtime[63],_B_,[0],_cYq_,_cYp_)} + catch(_cYs_) + {_cYs_ = caml_wrap_exception(_cYs_); + if(_cYs_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_z_]; + throw _cYs_} + var + age_minimum_alinea_1_l521_3= + caml_call3 + (Runtime_ocaml_Runtime[28],_C_,Runtime_ocaml_Runtime[17],_cYr_); + return [0,age_minimum_alinea_1_l521_3]} + function enfant_le_plus_age(enfant_le_plus_age_in) + {var enfants=enfant_le_plus_age_in[1]; + try + {var + _cYh_= + function(param) + {var + _cYl_=caml_call3(Runtime_ocaml_Runtime[57],2999,12,31), + _cYm_=caml_call1(Runtime_ocaml_Runtime[31],cst_0), + _cYn_= + [0, + caml_call1(Runtime_ocaml_Runtime[46],cst_1), + _F_, + _cYm_, + _cYl_, + _E_, + 0, + 0]; + function _cYo_(potentiel_plus_age_1,potentiel_plus_age_2) + {return caml_call2 + (Runtime_ocaml_Runtime[115], + potentiel_plus_age_1[4], + potentiel_plus_age_2[4]) + ?potentiel_plus_age_1 + :potentiel_plus_age_2} + return caml_call3(Runtime_ocaml_Runtime[88],_cYo_,_cYn_,enfants)}, + _cYi_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_G_,1)}, + _cYj_=caml_call4(Runtime_ocaml_Runtime[63],_H_,[0],_cYi_,_cYh_)} + catch(_cYk_) + {_cYk_ = caml_wrap_exception(_cYk_); + if(_cYk_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_D_]; + throw _cYk_} + var + le_plus_age= + caml_call3(Runtime_ocaml_Runtime[28],_I_,embed_enfant,_cYj_); + return [0,le_plus_age]} + function verification_age_inferieur_ou_(verification_age_inferieur_ou_) + {var + date_naissance=verification_age_inferieur_ou_[1], + date_courante=verification_age_inferieur_ou_[2], + annees=verification_age_inferieur_ou_[3]; + try + {var + _cYc_= + function(param) + {var + _cYg_= + caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); + return caml_call2(Runtime_ocaml_Runtime[120],_cYg_,date_courante)}, + _cYd_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_K_,1)}, + _cYe_=caml_call4(Runtime_ocaml_Runtime[63],_L_,[0],_cYd_,_cYc_)} + catch(_cYf_) + {_cYf_ = caml_wrap_exception(_cYf_); + if(_cYf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_J_]; + throw _cYf_} + var + est_inferieur_ou_egal= + caml_call3 + (Runtime_ocaml_Runtime[28],_M_,Runtime_ocaml_Runtime[12],_cYe_); + return [0,est_inferieur_ou_egal]} + function verification_age_superieur_a(verification_age_superieur_a_i) + {var + date_naissance=verification_age_superieur_a_i[1], + date_courante=verification_age_superieur_a_i[2], + annees=verification_age_superieur_a_i[3]; + try + {var + _cX9_= + function(param) + {var + _cYb_= + caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); + return caml_call2(Runtime_ocaml_Runtime[125],_cYb_,date_courante)}, + _cX__= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_O_,1)}, + _cX$_=caml_call4(Runtime_ocaml_Runtime[63],_P_,[0],_cX__,_cX9_)} + catch(_cYa_) + {_cYa_ = caml_wrap_exception(_cYa_); + if(_cYa_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_N_]; + throw _cYa_} + var + est_superieur= + caml_call3 + (Runtime_ocaml_Runtime[28],_Q_,Runtime_ocaml_Runtime[12],_cX$_); + return [0,est_superieur]} + function smic(smic_in) + {var date_courante=smic_in[1],residence=smic_in[2]; + try + {var + _cUo_=function(param){throw Runtime_ocaml_Runtime[2]}, + _cUp_=function(param){return 0}, + _cUq_= + function(param) + {function _cX3_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_851)} + function _cX4_(param) + {var + _cX5_=caml_call2(Runtime_ocaml_Runtime[86],residence,_S_), + _cX6_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _cX7_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cX6_), + _cX8_=caml_call2(Runtime_ocaml_Runtime[83],_cX7_,_cX5_); + return caml_call2(Runtime_ocaml_Runtime[29],_T_,_cX8_)} + return caml_call4(Runtime_ocaml_Runtime[63],_U_,[0],_cX4_,_cX3_)}, + _cUr_= + function(param) + {function _cXJ_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1127)} + function _cXK_(param) + {var + _cXL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_V_), + _cXM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_W_), + _cXN_=caml_call2(Runtime_ocaml_Runtime[84],_cXM_,_cXL_), + _cXO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_X_), + _cXP_=caml_call2(Runtime_ocaml_Runtime[84],_cXO_,_cXN_), + _cXQ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Y_), + _cXR_=caml_call2(Runtime_ocaml_Runtime[84],_cXQ_,_cXP_), + _cXS_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Z_), + _cXT_=caml_call2(Runtime_ocaml_Runtime[84],_cXS_,_cXR_), + _cXU_=caml_call2(Runtime_ocaml_Runtime[86],residence,___), + _cXV_=caml_call2(Runtime_ocaml_Runtime[84],_cXU_,_cXT_), + _cXW_=caml_call2(Runtime_ocaml_Runtime[86],residence,_$_), + _cXX_=caml_call2(Runtime_ocaml_Runtime[84],_cXW_,_cXV_), + _cXY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aa_), + _cXZ_=caml_call2(Runtime_ocaml_Runtime[84],_cXY_,_cXX_), + _cX0_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _cX1_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cX0_), + _cX2_=caml_call2(Runtime_ocaml_Runtime[83],_cX1_,_cXZ_); + return caml_call2(Runtime_ocaml_Runtime[29],_ab_,_cX2_)} + return caml_call4(Runtime_ocaml_Runtime[63],_ac_,[0],_cXK_,_cXJ_)}, + _cUs_= + function(param) + {function _cXA_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_835)} + function _cXB_(param) + {var + _cXC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ad_), + _cXD_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), + _cXE_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cXD_), + _cXF_=caml_call2(Runtime_ocaml_Runtime[83],_cXE_,_cXC_), + _cXG_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), + _cXH_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cXG_), + _cXI_=caml_call2(Runtime_ocaml_Runtime[83],_cXH_,_cXF_); + return caml_call2(Runtime_ocaml_Runtime[29],_ae_,_cXI_)} + return caml_call4(Runtime_ocaml_Runtime[63],_af_,[0],_cXB_,_cXA_)}, + _cUt_= + function(param) + {function _cXd_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1107)} + function _cXe_(param) + {var + _cXf_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ag_), + _cXg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ah_), + _cXh_=caml_call2(Runtime_ocaml_Runtime[84],_cXg_,_cXf_), + _cXi_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ai_), + _cXj_=caml_call2(Runtime_ocaml_Runtime[84],_cXi_,_cXh_), + _cXk_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aj_), + _cXl_=caml_call2(Runtime_ocaml_Runtime[84],_cXk_,_cXj_), + _cXm_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ak_), + _cXn_=caml_call2(Runtime_ocaml_Runtime[84],_cXm_,_cXl_), + _cXo_=caml_call2(Runtime_ocaml_Runtime[86],residence,_al_), + _cXp_=caml_call2(Runtime_ocaml_Runtime[84],_cXo_,_cXn_), + _cXq_=caml_call2(Runtime_ocaml_Runtime[86],residence,_am_), + _cXr_=caml_call2(Runtime_ocaml_Runtime[84],_cXq_,_cXp_), + _cXs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_an_), + _cXt_=caml_call2(Runtime_ocaml_Runtime[84],_cXs_,_cXr_), + _cXu_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), + _cXv_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cXu_), + _cXw_=caml_call2(Runtime_ocaml_Runtime[83],_cXv_,_cXt_), + _cXx_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), + _cXy_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cXx_), + _cXz_=caml_call2(Runtime_ocaml_Runtime[83],_cXy_,_cXw_); + return caml_call2(Runtime_ocaml_Runtime[29],_ao_,_cXz_)} + return caml_call4(Runtime_ocaml_Runtime[63],_ap_,[0],_cXe_,_cXd_)}, + _cUu_= + function(param) + {function _cW6_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_819)} + function _cW7_(param) + {var + _cW8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aq_), + _cW9_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), + _cW__= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cW9_), + _cW$_=caml_call2(Runtime_ocaml_Runtime[83],_cW__,_cW8_), + _cXa_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), + _cXb_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cXa_), + _cXc_=caml_call2(Runtime_ocaml_Runtime[83],_cXb_,_cW$_); + return caml_call2(Runtime_ocaml_Runtime[29],_ar_,_cXc_)} + return caml_call4(Runtime_ocaml_Runtime[63],_as_,[0],_cW7_,_cW6_)}, + _cUv_= + function(param) + {function _cWJ_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1085)} + function _cWK_(param) + {var + _cWL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_at_), + _cWM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_au_), + _cWN_=caml_call2(Runtime_ocaml_Runtime[84],_cWM_,_cWL_), + _cWO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_av_), + _cWP_=caml_call2(Runtime_ocaml_Runtime[84],_cWO_,_cWN_), + _cWQ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aw_), + _cWR_=caml_call2(Runtime_ocaml_Runtime[84],_cWQ_,_cWP_), + _cWS_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ax_), + _cWT_=caml_call2(Runtime_ocaml_Runtime[84],_cWS_,_cWR_), + _cWU_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ay_), + _cWV_=caml_call2(Runtime_ocaml_Runtime[84],_cWU_,_cWT_), + _cWW_=caml_call2(Runtime_ocaml_Runtime[86],residence,_az_), + _cWX_=caml_call2(Runtime_ocaml_Runtime[84],_cWW_,_cWV_), + _cWY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aA_), + _cWZ_=caml_call2(Runtime_ocaml_Runtime[84],_cWY_,_cWX_), + _cW0_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), + _cW1_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cW0_), + _cW2_=caml_call2(Runtime_ocaml_Runtime[83],_cW1_,_cWZ_), + _cW3_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), + _cW4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cW3_), + _cW5_=caml_call2(Runtime_ocaml_Runtime[83],_cW4_,_cW2_); + return caml_call2(Runtime_ocaml_Runtime[29],_aB_,_cW5_)} + return caml_call4(Runtime_ocaml_Runtime[63],_aC_,[0],_cWK_,_cWJ_)}, + _cUw_= + function(param) + {function _cWA_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_798)} + function _cWB_(param) + {var + _cWC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aD_), + _cWD_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), + _cWE_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cWD_), + _cWF_=caml_call2(Runtime_ocaml_Runtime[83],_cWE_,_cWC_), + _cWG_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cWH_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cWG_), + _cWI_=caml_call2(Runtime_ocaml_Runtime[83],_cWH_,_cWF_); + return caml_call2(Runtime_ocaml_Runtime[29],_aE_,_cWI_)} + return caml_call4(Runtime_ocaml_Runtime[63],_aF_,[0],_cWB_,_cWA_)}, + _cUx_= + function(param) + {function _cWd_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1057)} + function _cWe_(param) + {var + _cWf_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aG_), + _cWg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aH_), + _cWh_=caml_call2(Runtime_ocaml_Runtime[84],_cWg_,_cWf_), + _cWi_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aI_), + _cWj_=caml_call2(Runtime_ocaml_Runtime[84],_cWi_,_cWh_), + _cWk_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aJ_), + _cWl_=caml_call2(Runtime_ocaml_Runtime[84],_cWk_,_cWj_), + _cWm_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aK_), + _cWn_=caml_call2(Runtime_ocaml_Runtime[84],_cWm_,_cWl_), + _cWo_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aL_), + _cWp_=caml_call2(Runtime_ocaml_Runtime[84],_cWo_,_cWn_), + _cWq_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aM_), + _cWr_=caml_call2(Runtime_ocaml_Runtime[84],_cWq_,_cWp_), + _cWs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aN_), + _cWt_=caml_call2(Runtime_ocaml_Runtime[84],_cWs_,_cWr_), + _cWu_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), + _cWv_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cWu_), + _cWw_=caml_call2(Runtime_ocaml_Runtime[83],_cWv_,_cWt_), + _cWx_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cWy_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cWx_), + _cWz_=caml_call2(Runtime_ocaml_Runtime[83],_cWy_,_cWw_); + return caml_call2(Runtime_ocaml_Runtime[29],_aO_,_cWz_)} + return caml_call4(Runtime_ocaml_Runtime[63],_aP_,[0],_cWe_,_cWd_)}, + _cUy_= + function(param) + {function _cV6_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_774)} + function _cV7_(param) + {var + _cV8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aQ_), + _cV9_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), + _cV__= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cV9_), + _cV$_=caml_call2(Runtime_ocaml_Runtime[83],_cV__,_cV8_), + _cWa_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _cWb_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cWa_), + _cWc_=caml_call2(Runtime_ocaml_Runtime[83],_cWb_,_cV$_); + return caml_call2(Runtime_ocaml_Runtime[29],_aR_,_cWc_)} + return caml_call4(Runtime_ocaml_Runtime[63],_aS_,[0],_cV7_,_cV6_)}, + _cUz_= + function(param) + {function _cVJ_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1025)} + function _cVK_(param) + {var + _cVL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aT_), + _cVM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aU_), + _cVN_=caml_call2(Runtime_ocaml_Runtime[84],_cVM_,_cVL_), + _cVO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aV_), + _cVP_=caml_call2(Runtime_ocaml_Runtime[84],_cVO_,_cVN_), + _cVQ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aW_), + _cVR_=caml_call2(Runtime_ocaml_Runtime[84],_cVQ_,_cVP_), + _cVS_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aX_), + _cVT_=caml_call2(Runtime_ocaml_Runtime[84],_cVS_,_cVR_), + _cVU_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aY_), + _cVV_=caml_call2(Runtime_ocaml_Runtime[84],_cVU_,_cVT_), + _cVW_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aZ_), + _cVX_=caml_call2(Runtime_ocaml_Runtime[84],_cVW_,_cVV_), + _cVY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a0_), + _cVZ_=caml_call2(Runtime_ocaml_Runtime[84],_cVY_,_cVX_), + _cV0_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), + _cV1_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cV0_), + _cV2_=caml_call2(Runtime_ocaml_Runtime[83],_cV1_,_cVZ_), + _cV3_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _cV4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cV3_), + _cV5_=caml_call2(Runtime_ocaml_Runtime[83],_cV4_,_cV2_); + return caml_call2(Runtime_ocaml_Runtime[29],_a1_,_cV5_)} + return caml_call4(Runtime_ocaml_Runtime[63],_a2_,[0],_cVK_,_cVJ_)}, + _cUA_= + function(param) + {function _cVA_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_766)} + function _cVB_(param) + {var + _cVC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a3_), + _cVD_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), + _cVE_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cVD_), + _cVF_=caml_call2(Runtime_ocaml_Runtime[83],_cVE_,_cVC_), + _cVG_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cVH_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cVG_), + _cVI_=caml_call2(Runtime_ocaml_Runtime[83],_cVH_,_cVF_); + return caml_call2(Runtime_ocaml_Runtime[29],_a4_,_cVI_)} + return caml_call4(Runtime_ocaml_Runtime[63],_a5_,[0],_cVB_,_cVA_)}, + _cUB_= + function(param) + {function _cVd_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1015)} + function _cVe_(param) + {var + _cVf_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a6_), + _cVg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a7_), + _cVh_=caml_call2(Runtime_ocaml_Runtime[84],_cVg_,_cVf_), + _cVi_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a8_), + _cVj_=caml_call2(Runtime_ocaml_Runtime[84],_cVi_,_cVh_), + _cVk_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a9_), + _cVl_=caml_call2(Runtime_ocaml_Runtime[84],_cVk_,_cVj_), + _cVm_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a__), + _cVn_=caml_call2(Runtime_ocaml_Runtime[84],_cVm_,_cVl_), + _cVo_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a$_), + _cVp_=caml_call2(Runtime_ocaml_Runtime[84],_cVo_,_cVn_), + _cVq_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ba_), + _cVr_=caml_call2(Runtime_ocaml_Runtime[84],_cVq_,_cVp_), + _cVs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bb_), + _cVt_=caml_call2(Runtime_ocaml_Runtime[84],_cVs_,_cVr_), + _cVu_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), + _cVv_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cVu_), + _cVw_=caml_call2(Runtime_ocaml_Runtime[83],_cVv_,_cVt_), + _cVx_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cVy_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cVx_), + _cVz_=caml_call2(Runtime_ocaml_Runtime[83],_cVy_,_cVw_); + return caml_call2(Runtime_ocaml_Runtime[29],_bc_,_cVz_)} + return caml_call4(Runtime_ocaml_Runtime[63],_bd_,[0],_cVe_,_cVd_)}, + _cUC_= + function(param) + {function _cU6_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_757)} + function _cU7_(param) + {var + _cU8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_be_), + _cU9_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), + _cU__= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cU9_), + _cU$_=caml_call2(Runtime_ocaml_Runtime[83],_cU__,_cU8_), + _cVa_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _cVb_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cVa_), + _cVc_=caml_call2(Runtime_ocaml_Runtime[83],_cVb_,_cU$_); + return caml_call2(Runtime_ocaml_Runtime[29],_bf_,_cVc_)} + return caml_call4(Runtime_ocaml_Runtime[63],_bg_,[0],_cU7_,_cU6_)}, + _cUD_= + [0, + function(param) + {function _cUJ_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1003)} + function _cUK_(param) + {var + _cUL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bh_), + _cUM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bi_), + _cUN_=caml_call2(Runtime_ocaml_Runtime[84],_cUM_,_cUL_), + _cUO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bj_), + _cUP_=caml_call2(Runtime_ocaml_Runtime[84],_cUO_,_cUN_), + _cUQ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bk_), + _cUR_=caml_call2(Runtime_ocaml_Runtime[84],_cUQ_,_cUP_), + _cUS_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bl_), + _cUT_=caml_call2(Runtime_ocaml_Runtime[84],_cUS_,_cUR_), + _cUU_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bm_), + _cUV_=caml_call2(Runtime_ocaml_Runtime[84],_cUU_,_cUT_), + _cUW_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bn_), + _cUX_=caml_call2(Runtime_ocaml_Runtime[84],_cUW_,_cUV_), + _cUY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bo_), + _cUZ_=caml_call2(Runtime_ocaml_Runtime[84],_cUY_,_cUX_), + _cU0_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), + _cU1_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cU0_), + _cU2_=caml_call2(Runtime_ocaml_Runtime[83],_cU1_,_cUZ_), + _cU3_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _cU4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cU3_), + _cU5_=caml_call2(Runtime_ocaml_Runtime[83],_cU4_,_cU2_); + return caml_call2(Runtime_ocaml_Runtime[29],_bp_,_cU5_)} + return caml_call4(Runtime_ocaml_Runtime[63],_bq_,[0],_cUK_,_cUJ_)}, + _cUC_, + _cUB_, + _cUA_, + _cUz_, + _cUy_, + _cUx_, + _cUw_, + _cUv_, + _cUu_, + _cUt_, + _cUs_, + _cUr_, + _cUq_], + _cUE_=caml_call4(Runtime_ocaml_Runtime[63],_br_,_cUD_,_cUp_,_cUo_)} + catch(_cUI_) + {_cUI_ = caml_wrap_exception(_cUI_); + if(_cUI_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_R_]; + throw _cUI_} + var + brut_horaire= + caml_call3 + (Runtime_ocaml_Runtime[28],_bs_,Runtime_ocaml_Runtime[13],_cUE_); + try + {var + _cUF_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _cUG_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cUF_)} + catch(_cUH_) + {_cUH_ = caml_wrap_exception(_cUH_); + if(_cUH_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_bt_]; + throw _cUH_} + if(_cUG_)return [0,brut_horaire]; + throw [0,Runtime_ocaml_Runtime[3],_bu_]} + function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam) + {var date_courante=base_mensuelle_allocations_fam[1]; + try + {var + _cTQ_=function(param){throw Runtime_ocaml_Runtime[2]}, + _cTR_=function(param){return 0}, + _cTS_= + function(param) + {function _cUk_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_42228)} + function _cUl_(param) + {var + _cUm_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), + _cUn_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cUm_); + return caml_call2(Runtime_ocaml_Runtime[29],_bw_,_cUn_)} + return caml_call4(Runtime_ocaml_Runtime[63],_bx_,[0],_cUl_,_cUk_)}, + _cTT_= + function(param) + {function _cUd_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_41481)} + function _cUe_(param) + {var + _cUf_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), + _cUg_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cUf_), + _cUh_=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), + _cUi_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cUh_), + _cUj_=caml_call2(Runtime_ocaml_Runtime[83],_cUi_,_cUg_); + return caml_call2(Runtime_ocaml_Runtime[29],_by_,_cUj_)} + return caml_call4(Runtime_ocaml_Runtime[63],_bz_,[0],_cUe_,_cUd_)}, + _cTU_= + function(param) + {function _cT8_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_41440)} + function _cT9_(param) + {var + _cT__=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), + _cT$_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cT__), + _cUa_=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), + _cUb_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cUa_), + _cUc_=caml_call2(Runtime_ocaml_Runtime[83],_cUb_,_cT$_); + return caml_call2(Runtime_ocaml_Runtime[29],_bA_,_cUc_)} + return caml_call4(Runtime_ocaml_Runtime[63],_bB_,[0],_cT9_,_cT8_)}, + _cTV_= + [0, + function(param) + {function _cT1_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_41316)} + function _cT2_(param) + {var + _cT3_=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), + _cT4_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cT3_), + _cT5_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), + _cT6_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cT5_), + _cT7_=caml_call2(Runtime_ocaml_Runtime[83],_cT6_,_cT4_); + return caml_call2(Runtime_ocaml_Runtime[29],_bC_,_cT7_)} + return caml_call4(Runtime_ocaml_Runtime[63],_bD_,[0],_cT2_,_cT1_)}, + _cTU_, + _cTT_, + _cTS_], + _cTW_=caml_call4(Runtime_ocaml_Runtime[63],_bE_,_cTV_,_cTR_,_cTQ_)} + catch(_cT0_) + {_cT0_ = caml_wrap_exception(_cT0_); + if(_cT0_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_bv_]; + throw _cT0_} + var + montant= + caml_call3 + (Runtime_ocaml_Runtime[28],_bF_,Runtime_ocaml_Runtime[13],_cTW_); + try + {var + _cTX_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), + _cTY_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cTX_)} + catch(_cTZ_) + {_cTZ_ = caml_wrap_exception(_cTZ_); + if(_cTZ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_bG_]; + throw _cTZ_} + if(_cTY_)return [0,montant]; + throw [0,Runtime_ocaml_Runtime[3],_bH_]} + function prestations_familiales(prestations_familiales_in) + {var + date_courante=prestations_familiales_in[1], + residence=prestations_familiales_in[3]; + try + {var + _cSt_= + function(param){return caml_call3(Runtime_ocaml_Runtime[60],20,0,0)}, + _cSu_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bJ_,1)}, + _cSv_=caml_call4(Runtime_ocaml_Runtime[63],_bK_,[0],_cSu_,_cSt_)} + catch(_cTP_) + {_cTP_ = caml_wrap_exception(_cTP_); + if(_cTP_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_bI_]; + throw _cTP_} + var + age_l512_3_2= + caml_call3 + (Runtime_ocaml_Runtime[28],_bL_,Runtime_ocaml_Runtime[17],_cSv_); + try + {var + _cSw_=function(param){return date_courante}, + _cSx_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bN_,1)}, + _cSy_=caml_call4(Runtime_ocaml_Runtime[63],_bO_,[0],_cSx_,_cSw_), + smic_dot_date_courante= + caml_call3 + (Runtime_ocaml_Runtime[28],_bP_,Runtime_ocaml_Runtime[16],_cSy_)} + catch(_cTO_) + {_cTO_ = caml_wrap_exception(_cTO_); + if(_cTO_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_bM_]; + throw _cTO_} + try + {var + _cSz_=function(param){return residence}, + _cSA_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bR_,1)}, + _cSB_=caml_call4(Runtime_ocaml_Runtime[63],_bS_,[0],_cSA_,_cSz_), + smic_dot_residence= + caml_call3(Runtime_ocaml_Runtime[28],_bT_,embed_collectivite,_cSB_)} + catch(_cTN_) + {_cTN_ = caml_wrap_exception(_cTN_); + if(_cTN_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_bQ_]; + throw _cTN_} + var + _cSC_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_bU_,smic), + [0,smic_dot_date_courante,smic_dot_residence]), + result=caml_call2(Runtime_ocaml_Runtime[27],_bV_,_cSC_), + smic_dot_brut_horaire=result[1]; + try + {var + _cSD_=function(param){return 0}, + _cSE_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bX_,1)}, + _cSF_= + [0, + function(param) + {function _cTA_(param){return 1} + function _cTB_(param) + {var + _cTC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bY_), + _cTD_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bZ_), + _cTE_=caml_call2(Runtime_ocaml_Runtime[84],_cTD_,_cTC_), + _cTF_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b0_), + _cTG_=caml_call2(Runtime_ocaml_Runtime[84],_cTF_,_cTE_), + _cTH_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b1_), + _cTI_=caml_call2(Runtime_ocaml_Runtime[84],_cTH_,_cTG_), + _cTJ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b2_), + _cTK_=caml_call2(Runtime_ocaml_Runtime[84],_cTJ_,_cTI_), + _cTL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b3_), + _cTM_=caml_call2(Runtime_ocaml_Runtime[84],_cTL_,_cTK_); + return caml_call2(Runtime_ocaml_Runtime[29],_b4_,_cTM_)} + return caml_call4(Runtime_ocaml_Runtime[63],_b5_,[0],_cTB_,_cTA_)}], + _cSG_=caml_call4(Runtime_ocaml_Runtime[63],_b6_,_cSF_,_cSE_,_cSD_)} + catch(_cTz_) + {_cTz_ = caml_wrap_exception(_cTz_); + if(_cTz_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_bW_]; + throw _cTz_} + var + regime_outre_mer_l751_1= + caml_call3 + (Runtime_ocaml_Runtime[28],_b7_,Runtime_ocaml_Runtime[12],_cSG_); + try + {var + _cSH_= + function(param) + {var + _cTw_=caml_call1(Runtime_ocaml_Runtime[39],cst_169), + _cTx_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55), + _cTy_= + caml_call2 + (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_cTx_); + return caml_call2(Runtime_ocaml_Runtime[104],_cTy_,_cTw_)}, + _cSI_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_b9_,1)}, + _cSJ_= + [0, + function(param) + {function _cTr_(param) + {var + _cTt_=caml_call1(Runtime_ocaml_Runtime[39],cst_169$0), + _cTu_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55$0), + _cTv_= + caml_call2 + (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_cTu_); + return caml_call2(Runtime_ocaml_Runtime[104],_cTv_,_cTt_)} + function _cTs_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_b__,regime_outre_mer_l751_1)} + return caml_call4(Runtime_ocaml_Runtime[63],_b$_,[0],_cTs_,_cTr_)}], + _cSK_=caml_call4(Runtime_ocaml_Runtime[63],_ca_,_cSJ_,_cSI_,_cSH_)} + catch(_cTq_) + {_cTq_ = caml_wrap_exception(_cTq_); + if(_cTq_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_b8_]; + throw _cTq_} + var + plafond_l512_3_2= + caml_call3 + (Runtime_ocaml_Runtime[28],_cb_,Runtime_ocaml_Runtime[13],_cSK_); + function _cSL_(enfant) + {try + {var + _cTc_=function(param){return 0}, + _cTd_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_cd_,1)}, + _cTe_= + [0, + function(param) + {function _cTh_(param){return 1} + function _cTi_(param) + {var + _cTj_= caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _Bp_); - return caml_call2(Runtime_ocaml_Runtime[29], _em_, _Bq_); - } + (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2); + switch(enfant[2][0]) + {case 0:var _cTk_=0;break; + case 1:var _cTk_=0;break; + default:var _cTk_=1} + switch(enfant[2][0]) + {case 0:var _cTl_=0;break; + case 1:var _cTl_=1;break; + default:var _cTl_=0} + var _cTm_=caml_call2(Runtime_ocaml_Runtime[84],_cTl_,_cTk_); + switch(enfant[2][0]) + {case 0:var _cTn_=1;break; + case 1:var _cTn_=0;break; + default:var _cTn_=0} + var + _cTo_=caml_call2(Runtime_ocaml_Runtime[84],_cTn_,_cTm_), + _cTp_=caml_call2(Runtime_ocaml_Runtime[83],_cTo_,_cTj_); + return caml_call2(Runtime_ocaml_Runtime[29],_ce_,_cTp_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _en_, [0], _Bm_, _Bl_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _eo_, _Bk_, _Bj_, _Bi_); - }], - _mk_ = caml_call4(Runtime_ocaml_Runtime[63], _ep_, _mj_, _mi_, _mh_); - } - catch(_Bh_){ - var _mg_ = caml_wrap_exception(_Bh_); - if(_mg_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _ej_], 1); - throw caml_maybe_attach_backtrace(_mg_, 0); - } - var - droit_ouvert_complement = - caml_call3 - (Runtime_ocaml_Runtime[28], _eq_, Runtime_ocaml_Runtime[12], _mk_); - function _ml_(enfant){ - try{ + (Runtime_ocaml_Runtime[63],_cf_,[0],_cTi_,_cTh_)}], + _cTf_=caml_call4(Runtime_ocaml_Runtime[63],_cg_,_cTe_,_cTd_,_cTc_); + return _cTf_} + catch(_cTg_) + {_cTg_ = caml_wrap_exception(_cTg_); + if(_cTg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_cc_]; + throw _cTg_}} var - _AS_ = function(param){return 0;}, - _AT_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _es_, 1); - }, - _AU_ = - [0, - function(param){ - function _AX_(param){return 1;} - function _AY_(param){ - var - _A6_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _et_, embed_enfant, enfant), - _A7_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _eu_, - prestations_familiales_dot_con), - _A6_), - _A8_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _ev_, - Runtime_ocaml_Runtime[12], - _A7_), - _A9_ = caml_call2(Runtime_ocaml_Runtime[27], _ew_, _A8_), - _A__ = caml_call2(Runtime_ocaml_Runtime[83], enfant[6], _A9_), - _A$_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 0, 365), - _Ba_ = - caml_call3 - (Runtime_ocaml_Runtime[94], - 2, - enfant[4], - prestations_familiales_dot_age), - _Bb_ = caml_call2(Runtime_ocaml_Runtime[99], _Ba_, date_courante), - _Bc_ = caml_call2(Runtime_ocaml_Runtime[114], _Bb_, _A$_), - _Bd_ = caml_call2(Runtime_ocaml_Runtime[83], _Bc_, _A__), - _Be_ = caml_call1(Runtime_ocaml_Runtime[68], enfants_a_charge), - _Bf_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - _Be_, - nombre_enfants_alinea_2_l521_3), - _Bg_ = caml_call2(Runtime_ocaml_Runtime[83], _Bf_, _Bd_); - return caml_call2(Runtime_ocaml_Runtime[29], _ex_, _Bg_); - } - var - _AZ_ = - [0, - function(param){ - function _A0_(param){return 0;} - function _A1_(param){ + conditions_hors_age= + caml_call3 + (Runtime_ocaml_Runtime[28],_ch_,Runtime_ocaml_Runtime[10],_cSL_); + function _cSM_(enfant) + {try + {var + _cSN_=function(param){return 0}, + _cSO_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_cj_,1)}, + _cSP_= + [0, + function(param) + {function _cSS_(param) + {function _cSX_(param){throw Runtime_ocaml_Runtime[2]} + function _cSY_(param){return 0} var - _A2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$1), - _A3_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _A4_ = caml_call2(Runtime_ocaml_Runtime[86], _A3_, _A2_), - _A5_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _A4_); - return caml_call2(Runtime_ocaml_Runtime[29], _ey_, _A5_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ez_, [0], _A1_, _A0_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _eA_, _AZ_, _AY_, _AX_); - }], - _AV_ = caml_call4(Runtime_ocaml_Runtime[63], _eB_, _AU_, _AT_, _AS_); - return _AV_; - } - catch(_AW_){ - var _AR_ = caml_wrap_exception(_AW_); - if(_AR_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _er_], 1); - throw caml_maybe_attach_backtrace(_AR_, 0); - } - } - var - droit_ouvert_forfaitaire = - caml_call3 - (Runtime_ocaml_Runtime[28], _eC_, Runtime_ocaml_Runtime[10], _ml_); - try{ - var - _mn_ = - function(param){ - var - _AJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$1), - _AK_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _AK_, _AJ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$0); - var - _AL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$2), - _AM_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _AN_ = caml_call2(Runtime_ocaml_Runtime[96], _AM_, _AL_), - _AO_ = caml_call1(Runtime_ocaml_Runtime[69], _AN_), - _AP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0463), - _AQ_ = - caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _AP_); - return caml_call2(Runtime_ocaml_Runtime[104], _AQ_, _AO_); - }, - _mo_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _eE_, 1); - }, - _mp_ = caml_call4(Runtime_ocaml_Runtime[63], _eF_, [0], _mo_, _mn_); - } - catch(_AI_){ - var _mm_ = caml_wrap_exception(_AI_); - if(_mm_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _eD_], 1); - throw caml_maybe_attach_backtrace(_mm_, 0); - } - var - montant_initial_base_quatrieme = - caml_call3 - (Runtime_ocaml_Runtime[28], _eG_, Runtime_ocaml_Runtime[13], _mp_); - try{ - var - _mr_ = - function(param){ - var - _AF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2), - _AG_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _AG_, _AF_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$1); - var _AH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_16); - return caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _AH_); - }, - _ms_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _eI_, 1); - }, - _mt_ = - [0, - function(param){ - function _yB_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _yC_(param){return 0;} - function _yD_(param){ - function _At_(param){ - var - _AC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$0), - _AD_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _AD_, _AC_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$2); - var _AE_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_143); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _AE_); - } - function _Au_(param){ - var - _Av_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), - _Aw_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Av_), - _Ax_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _Ay_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ax_), - _Az_ = caml_call2(Runtime_ocaml_Runtime[83], _Ay_, _Aw_), - _AA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eJ_), - _AB_ = caml_call2(Runtime_ocaml_Runtime[83], _AA_, _Az_); - return caml_call2(Runtime_ocaml_Runtime[29], _eK_, _AB_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _eL_, [0], _Au_, _At_); - } - function _yE_(param){ - function _Ah_(param){ - var - _Aq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$1), - _Ar_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _Ar_, _Aq_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$3); - var _As_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1259); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _As_); - } - function _Ai_(param){ - var - _Aj_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), - _Ak_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Aj_), - _Al_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _Am_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Al_), - _An_ = caml_call2(Runtime_ocaml_Runtime[83], _Am_, _Ak_), - _Ao_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eM_), - _Ap_ = caml_call2(Runtime_ocaml_Runtime[83], _Ao_, _An_); - return caml_call2(Runtime_ocaml_Runtime[29], _eN_, _Ap_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _eO_, [0], _Ai_, _Ah_); - } - function _yF_(param){ - function _z7_(param){ - var - _Ae_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$2), - _Af_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _Af_, _Ae_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$4); - var _Ag_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1089); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _Ag_); - } - function _z8_(param){ - var - _z9_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), - _z__ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _z9_), - _z$_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), - _Aa_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _z$_), - _Ab_ = caml_call2(Runtime_ocaml_Runtime[83], _Aa_, _z__), - _Ac_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eP_), - _Ad_ = caml_call2(Runtime_ocaml_Runtime[83], _Ac_, _Ab_); - return caml_call2(Runtime_ocaml_Runtime[29], _eQ_, _Ad_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _eR_, [0], _z8_, _z7_); - } - function _yG_(param){ - function _zV_(param){ - var - _z4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$3), - _z5_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _z5_, _z4_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$5); - var _z6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0918); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _z6_); - } - function _zW_(param){ - var - _zX_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), - _zY_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zX_), - _zZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 1, 1), - _z0_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zZ_), - _z1_ = caml_call2(Runtime_ocaml_Runtime[83], _z0_, _zY_), - _z2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eS_), - _z3_ = caml_call2(Runtime_ocaml_Runtime[83], _z2_, _z1_); - return caml_call2(Runtime_ocaml_Runtime[29], _eT_, _z3_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _eU_, [0], _zW_, _zV_); - } - function _yH_(param){ - function _zJ_(param){ - var - _zS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$4), - _zT_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _zT_, _zS_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$6); - var _zU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0842); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zU_); - } - function _zK_(param){ - var - _zL_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 12, 31), - _zM_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zL_), - _zN_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 1, 1), - _zO_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zN_), - _zP_ = caml_call2(Runtime_ocaml_Runtime[83], _zO_, _zM_), - _zQ_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eV_), - _zR_ = caml_call2(Runtime_ocaml_Runtime[83], _zQ_, _zP_); - return caml_call2(Runtime_ocaml_Runtime[29], _eW_, _zR_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _eX_, [0], _zK_, _zJ_); - } - function _yI_(param){ - function _zx_(param){ - var - _zG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$5), - _zH_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _zH_, _zG_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$7); - var _zI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0766); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zI_); - } - function _zy_(param){ - var - _zz_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 12, 31), - _zA_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zz_), - _zB_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 1, 1), - _zC_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zB_), - _zD_ = caml_call2(Runtime_ocaml_Runtime[83], _zC_, _zA_), - _zE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eY_), - _zF_ = caml_call2(Runtime_ocaml_Runtime[83], _zE_, _zD_); - return caml_call2(Runtime_ocaml_Runtime[29], _eZ_, _zF_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _e0_, [0], _zy_, _zx_); - } - function _yJ_(param){ - function _zl_(param){ - var - _zu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$6), - _zv_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _zv_, _zu_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$8); - var _zw_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_069); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zw_); - } - function _zm_(param){ - var - _zn_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 12, 31), - _zo_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zn_), - _zp_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 1, 1), - _zq_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zp_), - _zr_ = caml_call2(Runtime_ocaml_Runtime[83], _zq_, _zo_), - _zs_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e1_), - _zt_ = caml_call2(Runtime_ocaml_Runtime[83], _zs_, _zr_); - return caml_call2(Runtime_ocaml_Runtime[29], _e2_, _zt_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _e3_, [0], _zm_, _zl_); - } - function _yK_(param){ - function _y$_(param){ - var - _zi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$7), - _zj_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _zj_, _zi_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$9); - var _zk_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0615); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zk_); - } - function _za_(param){ - var - _zb_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 12, 31), - _zc_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zb_), - _zd_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), - _ze_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zd_), - _zf_ = caml_call2(Runtime_ocaml_Runtime[83], _ze_, _zc_), - _zg_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e4_), - _zh_ = caml_call2(Runtime_ocaml_Runtime[83], _zg_, _zf_); - return caml_call2(Runtime_ocaml_Runtime[29], _e5_, _zh_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _e6_, [0], _za_, _y$_); - } - function _yL_(param){ - function _yZ_(param){ - var - _y8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$8), - _y9_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _y9_, _y8_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$10); - var _y__ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0539); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _y__); - } - function _y0_(param){ - var - _y1_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), - _y2_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _y1_), - _y3_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), - _y4_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _y3_), - _y5_ = caml_call2(Runtime_ocaml_Runtime[83], _y4_, _y2_), - _y6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e7_), - _y7_ = caml_call2(Runtime_ocaml_Runtime[83], _y6_, _y5_); - return caml_call2(Runtime_ocaml_Runtime[29], _e8_, _y7_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _e9_, [0], _y0_, _yZ_); - } - var - _yM_ = - [0, - function(param){ - function _yN_(param){ - var - _yW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$9), - _yX_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _yX_, _yW_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$11); - var - _yY_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0463$0); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _yY_); - } - function _yO_(param){ - var - _yP_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), - _yQ_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _yP_), - _yR_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), - _yS_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _yR_), - _yT_ = caml_call2(Runtime_ocaml_Runtime[83], _yS_, _yQ_), - _yU_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e__), - _yV_ = caml_call2(Runtime_ocaml_Runtime[83], _yU_, _yT_); - return caml_call2(Runtime_ocaml_Runtime[29], _e$_, _yV_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fa_, [0], _yO_, _yN_); - }, - _yL_, - _yK_, - _yJ_, - _yI_, - _yH_, - _yG_, - _yF_, - _yE_, - _yD_]; - return caml_call4(Runtime_ocaml_Runtime[63], _fb_, _yM_, _yC_, _yB_); - }], - _mu_ = caml_call4(Runtime_ocaml_Runtime[63], _fc_, _mt_, _ms_, _mr_); - } - catch(_yA_){ - var _mq_ = caml_wrap_exception(_yA_); - if(_mq_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _eH_], 1); - throw caml_maybe_attach_backtrace(_mq_, 0); - } - var - montant_initial_base_troisieme = - caml_call3 - (Runtime_ocaml_Runtime[28], _fd_, Runtime_ocaml_Runtime[13], _mu_); - try{ - var - _mw_ = - function(param){ - var - _yz_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - return caml_call1(Runtime_ocaml_Runtime[69], _yz_); - }, - _mx_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ff_, 1); - }, - _my_ = caml_call4(Runtime_ocaml_Runtime[63], _fg_, [0], _mx_, _mw_); - } - catch(_yy_){ - var _mv_ = caml_wrap_exception(_yy_); - if(_mv_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _fe_], 1); - throw caml_maybe_attach_backtrace(_mv_, 0); - } - var - nombre_total_enfants = - caml_call3 - (Runtime_ocaml_Runtime[28], _fh_, Runtime_ocaml_Runtime[15], _my_); - try{ - var - _mA_ = - function(param){ - function _yr_(enfant){ - var - _yv_ = - caml_call3(Runtime_ocaml_Runtime[28], _fj_, embed_enfant, enfant), - _yw_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _fk_, prise_en_compte), - _yv_), - _yx_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _fl_, embed_prise_en_compte, _yw_); - switch(caml_call2(Runtime_ocaml_Runtime[27], _fm_, _yx_)[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[39], cst_1$2); - case 1: - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_5); - default: return caml_call1(Runtime_ocaml_Runtime[39], cst_0$12); - } - } - var - _ys_ = - caml_call2 - (Runtime_ocaml_Runtime[87], _yr_, enfants_a_charge_droit_ouvert_), - _yt_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$13); - function _yu_(sum1, sum2){ - return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); - } - return caml_call3(Runtime_ocaml_Runtime[88], _yu_, _yt_, _ys_); - }, - _mB_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _fn_, 1); - }, - _mC_ = caml_call4(Runtime_ocaml_Runtime[63], _fo_, [0], _mB_, _mA_); - } - catch(_yq_){ - var _mz_ = caml_wrap_exception(_yq_); - if(_mz_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _fi_], 1); - throw caml_maybe_attach_backtrace(_mz_, 0); - } - var - nombre_moyen_enfants = - caml_call3 - (Runtime_ocaml_Runtime[28], _fp_, Runtime_ocaml_Runtime[15], _mC_); - try{ - var - _mE_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$14); - }, - _mF_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _fr_, 1); - }, - _mG_ = - function(param){ - function _yj_(param){ - var _yp_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0588); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _yp_); - } - function _yk_(param){ - var - _yl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$3), - _ym_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _yn_ = caml_call2(Runtime_ocaml_Runtime[86], _ym_, _yl_), - _yo_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _yn_); - return caml_call2(Runtime_ocaml_Runtime[29], _fs_, _yo_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _ft_, [0], _yk_, _yj_); - }, - _mH_ = - [0, - function(param){ - function _vJ_(param){ - var - _yg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$15), - _yh_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _yh_, _yg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$16); - var _yi_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0588$0); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _yi_); - } - function _vK_(param){ - var _yf_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _fu_); - return caml_call2(Runtime_ocaml_Runtime[29], _fv_, _yf_); - } - var - _vL_ = - [0, - function(param){ - function _vM_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _vN_(param){return 0;} - function _vO_(param){ - function _x$_(param){ - var - _yd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$17), - _ye_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - return caml_call2(Runtime_ocaml_Runtime[121], _ye_, _yd_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_5728) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$18); - } - function _ya_(param){ - var - _yb_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _fw_), - _yc_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - _yb_, - avait_enfant_a_charge_avant_1e); - return caml_call2(Runtime_ocaml_Runtime[29], _fx_, _yc_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fy_, [0], _ya_, _x$_); - } - function _vP_(param){ - function _xX_(param){ - var - _x8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$19), - _x9_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _x9_, _x8_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$20); - var _x__ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0717); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _x__); - } - function _xY_(param){ - var - _xZ_ = - caml_call1 - (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), - _x0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), - _x1_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _x0_), - _x2_ = caml_call2(Runtime_ocaml_Runtime[83], _x1_, _xZ_), - _x3_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _x4_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _x3_), - _x5_ = caml_call2(Runtime_ocaml_Runtime[83], _x4_, _x2_), - _x6_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _fz_), - _x7_ = caml_call2(Runtime_ocaml_Runtime[83], _x6_, _x5_); - return caml_call2(Runtime_ocaml_Runtime[29], _fA_, _x7_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fB_, [0], _xY_, _xX_); - } - function _vQ_(param){ - function _xJ_(param){ - var - _xU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$21), - _xV_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _xV_, _xU_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$22); - var _xW_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0847); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xW_); - } - function _xK_(param){ - var - _xL_ = - caml_call1 - (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), - _xM_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), - _xN_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _xM_), - _xO_ = caml_call2(Runtime_ocaml_Runtime[83], _xN_, _xL_), - _xP_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _xQ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _xP_), - _xR_ = caml_call2(Runtime_ocaml_Runtime[83], _xQ_, _xO_), - _xS_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _fC_), - _xT_ = caml_call2(Runtime_ocaml_Runtime[83], _xS_, _xR_); - return caml_call2(Runtime_ocaml_Runtime[29], _fD_, _xT_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fE_, [0], _xK_, _xJ_); - } - function _vR_(param){ - function _xv_(param){ - var - _xG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$23), - _xH_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _xH_, _xG_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$24); - var _xI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0976); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xI_); - } - function _xw_(param){ - var - _xx_ = - caml_call1 - (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), - _xy_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), - _xz_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _xy_), - _xA_ = caml_call2(Runtime_ocaml_Runtime[83], _xz_, _xx_), - _xB_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), - _xC_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _xB_), - _xD_ = caml_call2(Runtime_ocaml_Runtime[83], _xC_, _xA_), - _xE_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _fF_), - _xF_ = caml_call2(Runtime_ocaml_Runtime[83], _xE_, _xD_); - return caml_call2(Runtime_ocaml_Runtime[29], _fG_, _xF_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fH_, [0], _xw_, _xv_); - } - function _vS_(param){ - function _xh_(param){ - var - _xs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$25), - _xt_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _xt_, _xs_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$26); - var _xu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1105); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xu_); - } - function _xi_(param){ - var - _xj_ = - caml_call1 - (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), - _xk_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), - _xl_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _xk_), - _xm_ = caml_call2(Runtime_ocaml_Runtime[83], _xl_, _xj_), - _xn_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 1, 1), - _xo_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _xn_), - _xp_ = caml_call2(Runtime_ocaml_Runtime[83], _xo_, _xm_), - _xq_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _fI_), - _xr_ = caml_call2(Runtime_ocaml_Runtime[83], _xq_, _xp_); - return caml_call2(Runtime_ocaml_Runtime[29], _fJ_, _xr_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fK_, [0], _xi_, _xh_); - } - function _vT_(param){ - function _w5_(param){ - var - _xe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$27), - _xf_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _xf_, _xe_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$28); - var _xg_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1163); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xg_); - } - function _w6_(param){ - var - _w7_ = - caml_call1 - (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), - _w8_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 12, 31), - _w9_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _w8_), - _w__ = caml_call2(Runtime_ocaml_Runtime[83], _w9_, _w7_), - _w$_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 1, 1), - _xa_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _w$_), - _xb_ = caml_call2(Runtime_ocaml_Runtime[83], _xa_, _w__), - _xc_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _fL_), - _xd_ = caml_call2(Runtime_ocaml_Runtime[83], _xc_, _xb_); - return caml_call2(Runtime_ocaml_Runtime[29], _fM_, _xd_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fN_, [0], _w6_, _w5_); - } - function _vU_(param){ - function _wR_(param){ - var - _w2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$29), - _w3_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _w3_, _w2_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$30); - var _w4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_122); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _w4_); - } - function _wS_(param){ - var - _wT_ = - caml_call1 - (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), - _wU_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 12, 31), - _wV_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _wU_), - _wW_ = caml_call2(Runtime_ocaml_Runtime[83], _wV_, _wT_), - _wX_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 1, 1), - _wY_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wX_), - _wZ_ = caml_call2(Runtime_ocaml_Runtime[83], _wY_, _wW_), - _w0_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _fO_), - _w1_ = caml_call2(Runtime_ocaml_Runtime[83], _w0_, _wZ_); - return caml_call2(Runtime_ocaml_Runtime[29], _fP_, _w1_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fQ_, [0], _wS_, _wR_); - } - function _vV_(param){ - function _wD_(param){ - var - _wO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$31), - _wP_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _wP_, _wO_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$32); - var _wQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1278); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wQ_); - } - function _wE_(param){ - var - _wF_ = - caml_call1 - (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), - _wG_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 12, 31), - _wH_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _wG_), - _wI_ = caml_call2(Runtime_ocaml_Runtime[83], _wH_, _wF_), - _wJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 1, 1), - _wK_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wJ_), - _wL_ = caml_call2(Runtime_ocaml_Runtime[83], _wK_, _wI_), - _wM_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _fR_), - _wN_ = caml_call2(Runtime_ocaml_Runtime[83], _wM_, _wL_); - return caml_call2(Runtime_ocaml_Runtime[29], _fS_, _wN_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fT_, [0], _wE_, _wD_); - } - function _vW_(param){ - function _wp_(param){ - var - _wA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$33), - _wB_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _wB_, _wA_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$34); - var _wC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1335); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wC_); - } - function _wq_(param){ - var - _wr_ = - caml_call1 - (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), - _ws_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 12, 31), - _wt_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _ws_), - _wu_ = caml_call2(Runtime_ocaml_Runtime[83], _wt_, _wr_), - _wv_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), - _ww_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wv_), - _wx_ = caml_call2(Runtime_ocaml_Runtime[83], _ww_, _wu_), - _wy_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _fU_), - _wz_ = caml_call2(Runtime_ocaml_Runtime[83], _wy_, _wx_); - return caml_call2(Runtime_ocaml_Runtime[29], _fV_, _wz_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fW_, [0], _wq_, _wp_); - } - function _vX_(param){ - function _wb_(param){ - var - _wm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$35), - _wn_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _wn_, _wm_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$36); - var _wo_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1393); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wo_); - } - function _wc_(param){ - var - _wd_ = - caml_call1 - (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), - _we_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), - _wf_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _we_), - _wg_ = caml_call2(Runtime_ocaml_Runtime[83], _wf_, _wd_), - _wh_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), - _wi_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wh_), - _wj_ = caml_call2(Runtime_ocaml_Runtime[83], _wi_, _wg_), - _wk_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _fX_), - _wl_ = caml_call2(Runtime_ocaml_Runtime[83], _wk_, _wj_); - return caml_call2(Runtime_ocaml_Runtime[29], _fY_, _wl_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fZ_, [0], _wc_, _wb_); - } + _cSZ_= + [0, + function(param) + {function _cS0_(param){return 1} + function _cS1_(param) + {switch(enfant[2][0]) + {case 0:var _cS$_=0;break; + case 1:var _cS$_=1;break; + default:var _cS$_=0} + switch(enfant[2][0]) + {case 0:var _cTa_=1;break; + case 1:var _cTa_=0;break; + default:var _cTa_=0} + var _cTb_=caml_call2(Runtime_ocaml_Runtime[84],_cTa_,_cS$_); + return caml_call2(Runtime_ocaml_Runtime[29],_ck_,_cTb_)} + var + _cS2_= + [0, + function(param) + {function _cS3_(param){return 1} + function _cS4_(param) + {var + _cS5_= + caml_call3 + (Runtime_ocaml_Runtime[94],2,enfant[4],age_l512_3_2), + _cS6_= + caml_call2(Runtime_ocaml_Runtime[125],_cS5_,date_courante), + _cS7_= + caml_call2 + (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2), + _cS8_=caml_call2(Runtime_ocaml_Runtime[83],_cS7_,_cS6_); + switch(enfant[2][0]) + {case 0:var _cS9_=0;break; + case 1:var _cS9_=0;break; + default:var _cS9_=1} + var _cS__=caml_call2(Runtime_ocaml_Runtime[83],_cS9_,_cS8_); + return caml_call2(Runtime_ocaml_Runtime[29],_cl_,_cS__)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_cm_,[0],_cS4_,_cS3_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_cn_,_cS2_,_cS1_,_cS0_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_co_,_cSZ_,_cSY_,_cSX_)} + function _cST_(param){return 1} var - _vY_ = - [0, - function(param){ - function _vZ_(param){ - var - _v__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$37), - _v$_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _v$_, _v__)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$38); - var _wa_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_145); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wa_); - } - function _v0_(param){ - var - _v1_ = - caml_call1 - (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), - _v2_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), - _v3_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _v2_), - _v4_ = caml_call2(Runtime_ocaml_Runtime[83], _v3_, _v1_), - _v5_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), - _v6_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _v5_), - _v7_ = caml_call2(Runtime_ocaml_Runtime[83], _v6_, _v4_), - _v8_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _f0_), - _v9_ = caml_call2(Runtime_ocaml_Runtime[83], _v8_, _v7_); - return caml_call2(Runtime_ocaml_Runtime[29], _f1_, _v9_); - } + _cSU_= + [0, + function(param) + {function _cSV_(param){return 0} + function _cSW_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_cp_,enfant[7])} return caml_call4 - (Runtime_ocaml_Runtime[63], _f2_, [0], _v0_, _vZ_); - }, - _vX_, - _vW_, - _vV_, - _vU_, - _vT_, - _vS_, - _vR_, - _vQ_, - _vP_, - _vO_]; + (Runtime_ocaml_Runtime[63],_cq_,[0],_cSW_,_cSV_)}]; return caml_call4 - (Runtime_ocaml_Runtime[63], _f3_, _vY_, _vN_, _vM_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _f4_, _vL_, _vK_, _vJ_); - }, - _mG_], - _mI_ = caml_call4(Runtime_ocaml_Runtime[63], _f5_, _mH_, _mF_, _mE_); - } - catch(_vI_){ - var _mD_ = caml_wrap_exception(_vI_); - if(_mD_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _fq_], 1); - throw caml_maybe_attach_backtrace(_mD_, 0); - } - var - montant_initial_base_premier_e = - caml_call3 - (Runtime_ocaml_Runtime[28], _f6_, Runtime_ocaml_Runtime[13], _mI_); - try{ - var - _mK_ = function(param){return 0;}, - _mL_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _f8_, 1); - }, - _mM_ = - [0, - function(param){ - function _vl_(param){return 1;} - function _vm_(param){ - var - _vF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$10), - _vG_ = + (Runtime_ocaml_Runtime[63],_cr_,_cSU_,_cST_,_cSS_)}], + _cSQ_=caml_call4(Runtime_ocaml_Runtime[63],_cs_,_cSP_,_cSO_,_cSN_); + return _cSQ_} + catch(_cSR_) + {_cSR_ = caml_wrap_exception(_cSR_); + if(_cSR_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ci_]; + throw _cSR_}} + var + droit_ouvert= + caml_call3 + (Runtime_ocaml_Runtime[28],_ct_,Runtime_ocaml_Runtime[10],_cSM_); + return [0, + droit_ouvert, + conditions_hors_age, + age_l512_3_2, + regime_outre_mer_l751_1]} + function allocations_familiales(allocations_familiales_in) + {var + personne_charge_effective_perm=allocations_familiales_in[1], + personne_charge_effective_perm$0=allocations_familiales_in[2], + ressources_menage=allocations_familiales_in[3], + residence=allocations_familiales_in[4], + date_courante=allocations_familiales_in[5], + enfants_a_charge=allocations_familiales_in[6], + avait_enfant_a_charge_avant_1e=allocations_familiales_in[7]; + function _cz2_(enfant) + {try + {var + _cR7_=function(param){throw Runtime_ocaml_Runtime[2]}, + _cR8_=function(param){return 0}, + _cR9_= + function(param) + {function _cSi_(param){return _cv_} + function _cSj_(param) + {switch(enfant[5][0]) + {case 0:var _cSs_=0;break; + case 1:var _cSs_=0;break; + case 2:var _cSs_=1;break; + case 3:var _cSs_=0;break; + default:var _cSs_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_cw_,_cSs_)} + var + _cSk_= + [0, + function(param) + {function _cSl_(param){return _cx_} + function _cSm_(param) + {switch(enfant[5][0]) + {case 0:var _cSr_=0;break; + case 1:var _cSr_=1;break; + case 2:var _cSr_=0;break; + case 3:var _cSr_=0;break; + default:var _cSr_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_cy_,_cSr_)} + var + _cSn_= + [0, + function(param) + {function _cSo_(param){return _cz_} + function _cSp_(param) + {switch(enfant[5][0]) + {case 0:var _cSq_=0;break; + case 1:var _cSq_=0;break; + case 2:var _cSq_=0;break; + case 3:var _cSq_=1;break; + default:var _cSq_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_cA_,_cSq_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_cB_,[0],_cSp_,_cSo_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_cC_,_cSn_,_cSm_,_cSl_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_cD_,_cSk_,_cSj_,_cSi_)}, + _cR__= + function(param) + {function _cSf_(param){return _cE_} + function _cSg_(param) + {switch(enfant[5][0]) + {case 0:var _cSh_=0;break; + case 1:var _cSh_=0;break; + case 2:var _cSh_=0;break; + case 3:var _cSh_=0;break; + default:var _cSh_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_cF_,_cSh_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_cG_,[0],_cSg_,_cSf_)}, + _cR$_= + [0, + function(param) + {function _cSc_(param){return _cH_} + function _cSd_(param) + {switch(enfant[5][0]) + {case 0:var _cSe_=1;break; + case 1:var _cSe_=0;break; + case 2:var _cSe_=0;break; + case 3:var _cSe_=0;break; + default:var _cSe_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_cI_,_cSe_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_cJ_,[0],_cSd_,_cSc_)}, + _cR__, + _cR9_], + _cSa_=caml_call4(Runtime_ocaml_Runtime[63],_cK_,_cR$_,_cR8_,_cR7_); + return _cSa_} + catch(_cSb_) + {_cSb_ = caml_wrap_exception(_cSb_); + if(_cSb_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_cu_]; + throw _cSb_}} + var + prise_en_compte= + caml_call3 + (Runtime_ocaml_Runtime[28],_cL_,Runtime_ocaml_Runtime[10],_cz2_); + function _cz3_(enfant) + {try + {var + _cRJ_=function(param){throw Runtime_ocaml_Runtime[2]}, + _cRK_=function(param){return 0}, + _cRL_= + function(param) + {function _cRS_(param){return _cN_} + function _cRT_(param) + {switch(enfant[5][0]) + {case 0:var _cR6_=0;break; + case 1:var _cR6_=0;break; + case 2:var _cR6_=1;break; + case 3:var _cR6_=0;break; + default:var _cR6_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_cO_,_cR6_)} + var + _cRU_= + [0, + function(param) + {function _cRV_(param){return _cP_} + function _cRW_(param) + {switch(enfant[5][0]) + {case 0:var _cR5_=0;break; + case 1:var _cR5_=1;break; + case 2:var _cR5_=0;break; + case 3:var _cR5_=0;break; + default:var _cR5_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_cQ_,_cR5_)} + var + _cRX_= + [0, + function(param) + {function _cRY_(param){return _cR_} + function _cRZ_(param) + {switch(enfant[5][0]) + {case 0:var _cR4_=1;break; + case 1:var _cR4_=0;break; + case 2:var _cR4_=0;break; + case 3:var _cR4_=0;break; + default:var _cR4_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_cS_,_cR4_)} + var + _cR0_= + [0, + function(param) + {function _cR1_(param){return _cT_} + function _cR2_(param) + {switch(enfant[5][0]) + {case 0:var _cR3_=0;break; + case 1:var _cR3_=0;break; + case 2:var _cR3_=0;break; + case 3:var _cR3_=1;break; + default:var _cR3_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_cU_,_cR3_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_cV_,[0],_cR2_,_cR1_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_cW_,_cR0_,_cRZ_,_cRY_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_cX_,_cRX_,_cRW_,_cRV_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_cY_,_cRU_,_cRT_,_cRS_)}, + _cRM_= + [0, + function(param) + {function _cRP_(param){return _cZ_} + function _cRQ_(param) + {switch(enfant[5][0]) + {case 0:var _cRR_=0;break; + case 1:var _cRR_=0;break; + case 2:var _cRR_=0;break; + case 3:var _cRR_=0;break; + default:var _cRR_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_c0_,_cRR_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_c1_,[0],_cRQ_,_cRP_)}, + _cRL_], + _cRN_=caml_call4(Runtime_ocaml_Runtime[63],_c2_,_cRM_,_cRK_,_cRJ_); + return _cRN_} + catch(_cRO_) + {_cRO_ = caml_wrap_exception(_cRO_); + if(_cRO_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_cM_]; + throw _cRO_}} + caml_call3 + (Runtime_ocaml_Runtime[28],_c3_,Runtime_ocaml_Runtime[10],_cz3_); + try + {var + _cz4_= + function(param){return caml_call1(Runtime_ocaml_Runtime[46],cst_3)}, + _cz5_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_c5_,1)}, + _cz6_=caml_call4(Runtime_ocaml_Runtime[63],_c6_,[0],_cz5_,_cz4_)} + catch(_cRI_) + {_cRI_ = caml_wrap_exception(_cRI_); + if(_cRI_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_c4_]; + throw _cRI_} + caml_call3 + (Runtime_ocaml_Runtime[28],_c7_,Runtime_ocaml_Runtime[14],_cz6_); + try + {var + _cz7_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[46],cst_3$0)}, + _cz8_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_c9_,1)}, + _cz9_=caml_call4(Runtime_ocaml_Runtime[63],_c__,[0],_cz8_,_cz7_)} + catch(_cRH_) + {_cRH_ = caml_wrap_exception(_cRH_); + if(_cRH_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_c8_]; + throw _cRH_} + var + nombre_enfants_alinea_2_l521_3= + caml_call3 + (Runtime_ocaml_Runtime[28],_c$_,Runtime_ocaml_Runtime[14],_cz9_), + _cz__= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_da_,allocation_familiales_avril200), + 0), + result=caml_call2(Runtime_ocaml_Runtime[27],_db_,_cz__), + version_avril_2008_dot_age_min=result[1]; + try + {var + _cz$_=function(param){return date_courante}, + _cAa_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dd_,1)}, + _cAb_=caml_call4(Runtime_ocaml_Runtime[63],_de_,[0],_cAa_,_cz$_), + bmaf_dot_date_courante= + caml_call3 + (Runtime_ocaml_Runtime[28],_df_,Runtime_ocaml_Runtime[16],_cAb_)} + catch(_cRG_) + {_cRG_ = caml_wrap_exception(_cRG_); + if(_cRG_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_dc_]; + throw _cRG_} + var + _cAc_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_dg_,base_mensuelle_allocations_fam), + [0,bmaf_dot_date_courante]), + result$0=caml_call2(Runtime_ocaml_Runtime[27],_dh_,_cAc_), + bmaf_dot_montant=result$0[1]; + try + {var + _cAd_=function(param){return date_courante}, + _cAe_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dj_,1)}, + _cAf_=caml_call4(Runtime_ocaml_Runtime[63],_dk_,[0],_cAe_,_cAd_), + prestations_familiales_dot_dat= + caml_call3 + (Runtime_ocaml_Runtime[28],_dl_,Runtime_ocaml_Runtime[16],_cAf_)} + catch(_cRF_) + {_cRF_ = caml_wrap_exception(_cRF_); + if(_cRF_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_di_]; + throw _cRF_} + try + {var + _cAg_=function(param){return _dn_}, + _cAh_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_do_,1)}, + _cAi_=caml_call4(Runtime_ocaml_Runtime[63],_dp_,[0],_cAh_,_cAg_), + prestations_familiales_dot_pre= + caml_call3 + (Runtime_ocaml_Runtime[28], + _dq_, + embed_element_prestations_fami, + _cAi_)} + catch(_cRE_) + {_cRE_ = caml_wrap_exception(_cRE_); + if(_cRE_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_dm_]; + throw _cRE_} + try + {var + _cAj_=function(param){return residence}, + _cAk_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ds_,1)}, + _cAl_=caml_call4(Runtime_ocaml_Runtime[63],_dt_,[0],_cAk_,_cAj_), + prestations_familiales_dot_res= + caml_call3(Runtime_ocaml_Runtime[28],_du_,embed_collectivite,_cAl_)} + catch(_cRD_) + {_cRD_ = caml_wrap_exception(_cRD_); + if(_cRD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_dr_]; + throw _cRD_} + var + _cAm_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_dv_,prestations_familiales), + [0, + prestations_familiales_dot_dat, + prestations_familiales_dot_pre, + prestations_familiales_dot_res]), + result$1=caml_call2(Runtime_ocaml_Runtime[27],_dw_,_cAm_), + prestations_familiales_dot_dro=result$1[1], + prestations_familiales_dot_con=result$1[2], + prestations_familiales_dot_age=result$1[3], + prestations_familiales_dot_reg=result$1[4]; + try + {var + _cAn_=function(param){return enfants_a_charge}, + _cAo_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dy_,1)}, + _cAp_=caml_call4(Runtime_ocaml_Runtime[63],_dz_,[0],_cAo_,_cAn_), + _cAq_=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), + enfant_le_plus_age_dot_enfants= + caml_call3(Runtime_ocaml_Runtime[28],_dA_,_cAq_,_cAp_)} + catch(_cRC_) + {_cRC_ = caml_wrap_exception(_cRC_); + if(_cRC_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_dx_]; + throw _cRC_} + var + _cAr_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_dB_,enfant_le_plus_age), + [0,enfant_le_plus_age_dot_enfants]), + result$2=caml_call2(Runtime_ocaml_Runtime[27],_dC_,_cAr_), + enfant_le_plus_age_dot_le_plus=result$2[1]; + function _cAs_(enfant) + {try + {var + _cRr_= + function(param) + {return caml_call3(Runtime_ocaml_Runtime[60],14,0,0)}, + _cRs_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_dE_,1)}, + _cRt_= + [0, + function(param) + {function _cRw_(param){return version_avril_2008_dot_age_min} + function _cRx_(param) + {var + _cRy_=caml_call3(Runtime_ocaml_Runtime[57],2008,4,30), + _cRz_=caml_call3(Runtime_ocaml_Runtime[60],11,0,0), + _cRA_= + caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cRz_), + _cRB_=caml_call2(Runtime_ocaml_Runtime[120],_cRA_,_cRy_); + return caml_call2(Runtime_ocaml_Runtime[29],_dF_,_cRB_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_dG_,[0],_cRx_,_cRw_)}], + _cRu_=caml_call4(Runtime_ocaml_Runtime[63],_dH_,_cRt_,_cRs_,_cRr_); + return _cRu_} + catch(_cRv_) + {_cRv_ = caml_wrap_exception(_cRv_); + if(_cRv_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_dD_]; + throw _cRv_}} + var + age_minimum_alinea_1_l521_3= + caml_call3 + (Runtime_ocaml_Runtime[28],_dI_,Runtime_ocaml_Runtime[10],_cAs_); + try + {var + _cAt_= + function(param) + {function _cRn_(enfant) + {var + _cRo_= + caml_call3(Runtime_ocaml_Runtime[28],_dK_,embed_enfant,enfant), + _cRp_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _dL_, + prestations_familiales_dot_dro), + _cRo_), + _cRq_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _dM_, + Runtime_ocaml_Runtime[12], + _cRp_); + return caml_call2(Runtime_ocaml_Runtime[27],_dN_,_cRq_)} + return caml_call2 + (Runtime_ocaml_Runtime[90],_cRn_,enfants_a_charge)}, + _cAu_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dO_,1)}, + _cAv_=caml_call4(Runtime_ocaml_Runtime[63],_dP_,[0],_cAu_,_cAt_)} + catch(_cRm_) + {_cRm_ = caml_wrap_exception(_cRm_); + if(_cRm_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_dJ_]; + throw _cRm_} + var + _cAw_=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), + enfants_a_charge_droit_ouvert_= + caml_call3(Runtime_ocaml_Runtime[28],_dQ_,_cAw_,_cAv_); + function _cAx_(enfant) + {try + {var + _cRi_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[86], + enfant_le_plus_age_dot_le_plus, + enfant)}, + _cRj_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_dS_,1)}, + _cRk_=caml_call4(Runtime_ocaml_Runtime[63],_dT_,[0],_cRj_,_cRi_); + return _cRk_} + catch(_cRl_) + {_cRl_ = caml_wrap_exception(_cRl_); + if(_cRl_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_dR_]; + throw _cRl_}} + var + est_enfant_le_plus_age= + caml_call3 + (Runtime_ocaml_Runtime[28],_dU_,Runtime_ocaml_Runtime[10],_cAx_); + try + {var + _cAy_= + function(param) + {var + _cRd_= caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _vH_ = caml_call2(Runtime_ocaml_Runtime[126], _vG_, _vF_); - return caml_call2(Runtime_ocaml_Runtime[29], _f9_, _vH_); - } - var - _vn_ = - [0, - function(param){ - function _vo_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _vp_(param){return 0;} + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cRe_=caml_call1(Runtime_ocaml_Runtime[69],_cRd_), + _cRf_=caml_call1(Runtime_ocaml_Runtime[31],cst_559500), + _cRg_=caml_call2(Runtime_ocaml_Runtime[104],_cRf_,_cRe_), + _cRh_=caml_call1(Runtime_ocaml_Runtime[31],cst_7830000); + return caml_call2(Runtime_ocaml_Runtime[93],_cRh_,_cRg_)}, + _cAz_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dW_,1)}, + _cAA_= + [0, + function(param) + {function _cQn_(param){throw Runtime_ocaml_Runtime[2]} + function _cQo_(param){return 0} + function _cQp_(param) + {function _cQ3_(param) + {var + _cQ__= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cQ$_=caml_call1(Runtime_ocaml_Runtime[69],_cQ__), + _cRa_=caml_call1(Runtime_ocaml_Runtime[31],cst_582700), + _cRb_=caml_call2(Runtime_ocaml_Runtime[104],_cRa_,_cQ$_), + _cRc_=caml_call1(Runtime_ocaml_Runtime[31],cst_8155800); + return caml_call2(Runtime_ocaml_Runtime[93],_cRc_,_cRb_)} + function _cQ4_(param) + {var + _cQ5_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), + _cQ6_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cQ5_), + _cQ7_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _cQ8_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cQ7_), + _cQ9_=caml_call2(Runtime_ocaml_Runtime[83],_cQ8_,_cQ6_); + return caml_call2(Runtime_ocaml_Runtime[29],_dX_,_cQ9_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_dY_,[0],_cQ4_,_cQ3_)} + function _cQq_(param) + {function _cQR_(param) + {var + _cQY_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cQZ_=caml_call1(Runtime_ocaml_Runtime[69],_cQY_), + _cQ0_=caml_call1(Runtime_ocaml_Runtime[31],cst_577500), + _cQ1_=caml_call2(Runtime_ocaml_Runtime[104],_cQ0_,_cQZ_), + _cQ2_=caml_call1(Runtime_ocaml_Runtime[31],cst_8083100); + return caml_call2(Runtime_ocaml_Runtime[93],_cQ2_,_cQ1_)} + function _cQS_(param) + {var + _cQT_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), + _cQU_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cQT_), + _cQV_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cQW_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cQV_), + _cQX_=caml_call2(Runtime_ocaml_Runtime[83],_cQW_,_cQU_); + return caml_call2(Runtime_ocaml_Runtime[29],_dZ_,_cQX_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_d0_,[0],_cQS_,_cQR_)} + function _cQr_(param) + {function _cQF_(param) + {var + _cQM_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cQN_=caml_call1(Runtime_ocaml_Runtime[69],_cQM_), + _cQO_=caml_call1(Runtime_ocaml_Runtime[31],cst_568400), + _cQP_=caml_call2(Runtime_ocaml_Runtime[104],_cQO_,_cQN_), + _cQQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_7955800); + return caml_call2(Runtime_ocaml_Runtime[93],_cQQ_,_cQP_)} + function _cQG_(param) + {var + _cQH_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), + _cQI_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cQH_), + _cQJ_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _cQK_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cQJ_), + _cQL_=caml_call2(Runtime_ocaml_Runtime[83],_cQK_,_cQI_); + return caml_call2(Runtime_ocaml_Runtime[29],_d1_,_cQL_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_d2_,[0],_cQG_,_cQF_)} + var + _cQs_= + [0, + function(param) + {function _cQt_(param) + {var + _cQA_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cQB_=caml_call1(Runtime_ocaml_Runtime[69],_cQA_), + _cQC_=caml_call1(Runtime_ocaml_Runtime[31],cst_562800), + _cQD_=caml_call2(Runtime_ocaml_Runtime[104],_cQC_,_cQB_), + _cQE_=caml_call1(Runtime_ocaml_Runtime[31],cst_7877000); + return caml_call2(Runtime_ocaml_Runtime[93],_cQE_,_cQD_)} + function _cQu_(param) + {var + _cQv_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), + _cQw_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cQv_), + _cQx_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), + _cQy_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cQx_), + _cQz_=caml_call2(Runtime_ocaml_Runtime[83],_cQy_,_cQw_); + return caml_call2(Runtime_ocaml_Runtime[29],_d3_,_cQz_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_d4_,[0],_cQu_,_cQt_)}, + _cQr_, + _cQq_, + _cQp_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_d5_,_cQs_,_cQo_,_cQn_)}], + _cAB_=caml_call4(Runtime_ocaml_Runtime[63],_d6_,_cAA_,_cAz_,_cAy_)} + catch(_cQm_) + {_cQm_ = caml_wrap_exception(_cQm_); + if(_cQm_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_dV_]; + throw _cQm_} + var + plafond_i_i_d521_3= + caml_call3 + (Runtime_ocaml_Runtime[28],_d7_,Runtime_ocaml_Runtime[13],_cAB_); + try + {var + _cAC_= + function(param) + {var + _cQh_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cQi_=caml_call1(Runtime_ocaml_Runtime[69],_cQh_), + _cQj_=caml_call1(Runtime_ocaml_Runtime[31],cst_559500$0), + _cQk_=caml_call2(Runtime_ocaml_Runtime[104],_cQj_,_cQi_), + _cQl_=caml_call1(Runtime_ocaml_Runtime[31],cst_5595000); + return caml_call2(Runtime_ocaml_Runtime[93],_cQl_,_cQk_)}, + _cAD_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_d9_,1)}, + _cAE_= + [0, + function(param) + {function _cPr_(param){throw Runtime_ocaml_Runtime[2]} + function _cPs_(param){return 0} + function _cPt_(param) + {function _cP7_(param) + {var + _cQc_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cQd_=caml_call1(Runtime_ocaml_Runtime[69],_cQc_), + _cQe_=caml_call1(Runtime_ocaml_Runtime[31],cst_582700$0), + _cQf_=caml_call2(Runtime_ocaml_Runtime[104],_cQe_,_cQd_), + _cQg_=caml_call1(Runtime_ocaml_Runtime[31],cst_5827900); + return caml_call2(Runtime_ocaml_Runtime[93],_cQg_,_cQf_)} + function _cP8_(param) + {var + _cP9_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), + _cP__= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cP9_), + _cP$_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _cQa_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cP$_), + _cQb_=caml_call2(Runtime_ocaml_Runtime[83],_cQa_,_cP__); + return caml_call2(Runtime_ocaml_Runtime[29],_d__,_cQb_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_d$_,[0],_cP8_,_cP7_)} + function _cPu_(param) + {function _cPV_(param) + {var + _cP2_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cP3_=caml_call1(Runtime_ocaml_Runtime[69],_cP2_), + _cP4_=caml_call1(Runtime_ocaml_Runtime[31],cst_577500$0), + _cP5_=caml_call2(Runtime_ocaml_Runtime[104],_cP4_,_cP3_), + _cP6_=caml_call1(Runtime_ocaml_Runtime[31],cst_5775900); + return caml_call2(Runtime_ocaml_Runtime[93],_cP6_,_cP5_)} + function _cPW_(param) + {var + _cPX_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), + _cPY_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cPX_), + _cPZ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cP0_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cPZ_), + _cP1_=caml_call2(Runtime_ocaml_Runtime[83],_cP0_,_cPY_); + return caml_call2(Runtime_ocaml_Runtime[29],_ea_,_cP1_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_eb_,[0],_cPW_,_cPV_)} + function _cPv_(param) + {function _cPJ_(param) + {var + _cPQ_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cPR_=caml_call1(Runtime_ocaml_Runtime[69],_cPQ_), + _cPS_=caml_call1(Runtime_ocaml_Runtime[31],cst_568400$0), + _cPT_=caml_call2(Runtime_ocaml_Runtime[104],_cPS_,_cPR_), + _cPU_=caml_call1(Runtime_ocaml_Runtime[31],cst_5684900); + return caml_call2(Runtime_ocaml_Runtime[93],_cPU_,_cPT_)} + function _cPK_(param) + {var + _cPL_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), + _cPM_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cPL_), + _cPN_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _cPO_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cPN_), + _cPP_=caml_call2(Runtime_ocaml_Runtime[83],_cPO_,_cPM_); + return caml_call2(Runtime_ocaml_Runtime[29],_ec_,_cPP_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ed_,[0],_cPK_,_cPJ_)} + var + _cPw_= + [0, + function(param) + {function _cPx_(param) + {var + _cPE_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cPF_=caml_call1(Runtime_ocaml_Runtime[69],_cPE_), + _cPG_=caml_call1(Runtime_ocaml_Runtime[31],cst_562800$0), + _cPH_=caml_call2(Runtime_ocaml_Runtime[104],_cPG_,_cPF_), + _cPI_=caml_call1(Runtime_ocaml_Runtime[31],cst_5628600); + return caml_call2(Runtime_ocaml_Runtime[93],_cPI_,_cPH_)} + function _cPy_(param) + {var + _cPz_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), + _cPA_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cPz_), + _cPB_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), + _cPC_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cPB_), + _cPD_=caml_call2(Runtime_ocaml_Runtime[83],_cPC_,_cPA_); + return caml_call2(Runtime_ocaml_Runtime[29],_ee_,_cPD_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ef_,[0],_cPy_,_cPx_)}, + _cPv_, + _cPu_, + _cPt_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_eg_,_cPw_,_cPs_,_cPr_)}], + _cAF_=caml_call4(Runtime_ocaml_Runtime[63],_eh_,_cAE_,_cAD_,_cAC_)} + catch(_cPq_) + {_cPq_ = caml_wrap_exception(_cPq_); + if(_cPq_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_d8_]; + throw _cPq_} + var + plafond_i_d521_3= + caml_call3 + (Runtime_ocaml_Runtime[28],_ei_,Runtime_ocaml_Runtime[13],_cAF_); + try + {var + _cAG_=function(param){return 0}, + _cAH_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ek_,1)}, + _cAI_= + [0, + function(param) + {function _cPh_(param){return 1} + function _cPi_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_el_,1)} + var + _cPj_= + [0, + function(param) + {function _cPk_(param){return 0} + function _cPl_(param) + {var + _cPm_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$0), + _cPn_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cPo_=caml_call2(Runtime_ocaml_Runtime[86],_cPn_,_cPm_), + _cPp_= + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _cPo_); + return caml_call2(Runtime_ocaml_Runtime[29],_em_,_cPp_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_en_,[0],_cPl_,_cPk_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_eo_,_cPj_,_cPi_,_cPh_)}], + _cAJ_=caml_call4(Runtime_ocaml_Runtime[63],_ep_,_cAI_,_cAH_,_cAG_)} + catch(_cPg_) + {_cPg_ = caml_wrap_exception(_cPg_); + if(_cPg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ej_]; + throw _cPg_} + var + droit_ouvert_complement= + caml_call3 + (Runtime_ocaml_Runtime[28],_eq_,Runtime_ocaml_Runtime[12],_cAJ_); + function _cAK_(enfant) + {try + {var + _cOR_=function(param){return 0}, + _cOS_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_es_,1)}, + _cOT_= + [0, + function(param) + {function _cOW_(param){return 1} + function _cOX_(param) + {var + _cO5_= + caml_call3 + (Runtime_ocaml_Runtime[28],_et_,embed_enfant,enfant), + _cO6_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _eu_, + prestations_familiales_dot_con), + _cO5_), + _cO7_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _ev_, + Runtime_ocaml_Runtime[12], + _cO6_), + _cO8_=caml_call2(Runtime_ocaml_Runtime[27],_ew_,_cO7_), + _cO9_=caml_call2(Runtime_ocaml_Runtime[83],enfant[6],_cO8_), + _cO__=caml_call3(Runtime_ocaml_Runtime[60],0,0,365), + _cO$_= + caml_call3 + (Runtime_ocaml_Runtime[94], + 2, + enfant[4], + prestations_familiales_dot_age), + _cPa_= + caml_call2(Runtime_ocaml_Runtime[99],_cO$_,date_courante), + _cPb_=caml_call2(Runtime_ocaml_Runtime[114],_cPa_,_cO__), + _cPc_=caml_call2(Runtime_ocaml_Runtime[83],_cPb_,_cO9_), + _cPd_=caml_call1(Runtime_ocaml_Runtime[68],enfants_a_charge), + _cPe_= + caml_call2 + (Runtime_ocaml_Runtime[126], + _cPd_, + nombre_enfants_alinea_2_l521_3), + _cPf_=caml_call2(Runtime_ocaml_Runtime[83],_cPe_,_cPc_); + return caml_call2(Runtime_ocaml_Runtime[29],_ex_,_cPf_)} var - _vq_ = - [0, - function(param){ - function _vr_(param){return 1;} - function _vs_(param){ - var - _vB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$4), - _vC_ = + _cOY_= + [0, + function(param) + {function _cOZ_(param){return 0} + function _cO0_(param) + {var + _cO1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$1), + _cO2_= caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _vD_ = caml_call2(Runtime_ocaml_Runtime[126], _vC_, _vB_), - _vE_ = + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cO3_=caml_call2(Runtime_ocaml_Runtime[86],_cO2_,_cO1_), + _cO4_= caml_call2 (Runtime_ocaml_Runtime[83], prestations_familiales_dot_reg, - _vD_); - return caml_call2(Runtime_ocaml_Runtime[29], _f__, _vE_); - } - var - _vt_ = - [0, - function(param){ - function _vu_(param){return 1;} - function _vv_(param){ - var - _vw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$5), - _vx_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _vy_ = caml_call2(Runtime_ocaml_Runtime[126], _vx_, _vw_), - _vz_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _f$_), - _vA_ = caml_call2(Runtime_ocaml_Runtime[83], _vz_, _vy_); - return caml_call2(Runtime_ocaml_Runtime[29], _ga_, _vA_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gb_, [0], _vv_, _vu_); - }]; + _cO3_); + return caml_call2(Runtime_ocaml_Runtime[29],_ey_,_cO4_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _gc_, _vt_, _vs_, _vr_); - }]; + (Runtime_ocaml_Runtime[63],_ez_,[0],_cO0_,_cOZ_)}]; return caml_call4 - (Runtime_ocaml_Runtime[63], _gd_, _vq_, _vp_, _vo_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _ge_, _vn_, _vm_, _vl_); - }], - _mN_ = caml_call4(Runtime_ocaml_Runtime[63], _gf_, _mM_, _mL_, _mK_); - } - catch(_vk_){ - var _mJ_ = caml_wrap_exception(_vk_); - if(_mJ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _f7_], 1); - throw caml_maybe_attach_backtrace(_mJ_, 0); - } - var - droit_ouvert_base = - caml_call3 - (Runtime_ocaml_Runtime[28], _gg_, Runtime_ocaml_Runtime[12], _mN_); - function _mO_(enfant){ - try{ + (Runtime_ocaml_Runtime[63],_eA_,_cOY_,_cOX_,_cOW_)}], + _cOU_=caml_call4(Runtime_ocaml_Runtime[63],_eB_,_cOT_,_cOS_,_cOR_); + return _cOU_} + catch(_cOV_) + {_cOV_ = caml_wrap_exception(_cOV_); + if(_cOV_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_er_]; + throw _cOV_}} var - _uR_ = function(param){return 0;}, - _uS_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _gi_, 1); - }, - _uT_ = - [0, - function(param){ - function _uW_(param){return 1;} - function _uX_(param){ + droit_ouvert_forfaitaire= + caml_call3 + (Runtime_ocaml_Runtime[28],_eC_,Runtime_ocaml_Runtime[10],_cAK_); + try + {var + _cAL_= + function(param) + {var + _cOJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$1), + _cOK_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cOK_,_cOJ_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$0); var - _u__ = - caml_call3 - (Runtime_ocaml_Runtime[28], _gj_, embed_enfant, enfant), - _u$_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _gk_, - age_minimum_alinea_1_l521_3), - _u__), - _va_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _gl_, - Runtime_ocaml_Runtime[17], - _u$_), - _vb_ = caml_call2(Runtime_ocaml_Runtime[27], _gm_, _va_), - _vc_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _vb_), - _vd_ = - caml_call2(Runtime_ocaml_Runtime[120], _vc_, date_courante), - _ve_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _gn_, embed_enfant, enfant), - _vf_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _go_, est_enfant_le_plus_age), - _ve_), - _vg_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _gp_, - Runtime_ocaml_Runtime[12], - _vf_), - _vh_ = caml_call2(Runtime_ocaml_Runtime[27], _gq_, _vg_), - _vi_ = caml_call1(Runtime_ocaml_Runtime[67], _vh_), - _vj_ = caml_call2(Runtime_ocaml_Runtime[83], _vi_, _vd_); - return caml_call2(Runtime_ocaml_Runtime[29], _gr_, _vj_); - } - var - _uY_ = - [0, - function(param){ - function _uZ_(param){return 1;} - function _u0_(param){ - var - _u1_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _gs_, embed_enfant, enfant), - _u2_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _gt_, - age_minimum_alinea_1_l521_3), - _u1_), - _u3_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _gu_, - Runtime_ocaml_Runtime[17], - _u2_), - _u4_ = caml_call2(Runtime_ocaml_Runtime[27], _gv_, _u3_), - _u5_ = - caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _u4_), - _u6_ = - caml_call2(Runtime_ocaml_Runtime[120], _u5_, date_courante), - _u7_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _u8_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - _u7_, - nombre_enfants_alinea_2_l521_3), - _u9_ = caml_call2(Runtime_ocaml_Runtime[83], _u8_, _u6_); - return caml_call2(Runtime_ocaml_Runtime[29], _gw_, _u9_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gx_, [0], _u0_, _uZ_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gy_, _uY_, _uX_, _uW_); - }], - _uU_ = caml_call4(Runtime_ocaml_Runtime[63], _gz_, _uT_, _uS_, _uR_); - return _uU_; - } - catch(_uV_){ - var _uQ_ = caml_wrap_exception(_uV_); - if(_uQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _gh_], 1); - throw caml_maybe_attach_backtrace(_uQ_, 0); - } - } - var - droit_ouvert_majoration = - caml_call3 - (Runtime_ocaml_Runtime[28], _gA_, Runtime_ocaml_Runtime[10], _mO_); - function _mP_(allocation){ - try{ + _cOL_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$2), + _cOM_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cON_=caml_call2(Runtime_ocaml_Runtime[96],_cOM_,_cOL_), + _cOO_=caml_call1(Runtime_ocaml_Runtime[69],_cON_), + _cOP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0463), + _cOQ_= + caml_call2(Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cOP_); + return caml_call2(Runtime_ocaml_Runtime[104],_cOQ_,_cOO_)}, + _cAM_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_eE_,1)}, + _cAN_=caml_call4(Runtime_ocaml_Runtime[63],_eF_,[0],_cAM_,_cAL_)} + catch(_cOI_) + {_cOI_ = caml_wrap_exception(_cOI_); + if(_cOI_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_eD_]; + throw _cOI_} var - _ud_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$39); - }, - _ue_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _gC_, 1); - }, - _uf_ = - [0, - function(param){ - function _ui_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _uj_(param){return 0;} - function _uk_(param){ - function _uB_(param){ - var - _uJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12), - _uK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$6), - _uL_ = caml_call2(Runtime_ocaml_Runtime[107], _uK_, _uJ_), - _uM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$0), - _uN_ = caml_call2(Runtime_ocaml_Runtime[104], allocation, _uM_), - _uO_ = - caml_call2 - (Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _uN_), - _uP_ = - caml_call2(Runtime_ocaml_Runtime[98], _uO_, ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104], _uP_, _uL_); - } - function _uC_(param){ - var - _uD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$1), - _uE_ = caml_call2(Runtime_ocaml_Runtime[104], allocation, _uD_), - _uF_ = - caml_call2 - (Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _uE_), - _uG_ = - caml_call2 - (Runtime_ocaml_Runtime[118], ressources_menage, _uF_), - _uH_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3), - _uI_ = caml_call2(Runtime_ocaml_Runtime[83], _uH_, _uG_); - return caml_call2(Runtime_ocaml_Runtime[29], _gD_, _uI_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gE_, [0], _uC_, _uB_); - } - var - _ul_ = - [0, - function(param){ - function _um_(param){ - var - _uu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$2), - _uv_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$7), - _uw_ = caml_call2(Runtime_ocaml_Runtime[107], _uv_, _uu_), - _ux_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$3), - _uy_ = - caml_call2(Runtime_ocaml_Runtime[104], allocation, _ux_), - _uz_ = - caml_call2 - (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _uy_), - _uA_ = - caml_call2 - (Runtime_ocaml_Runtime[98], _uz_, ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104], _uA_, _uw_); - } - function _un_(param){ - var - _uo_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$4), - _up_ = - caml_call2(Runtime_ocaml_Runtime[104], allocation, _uo_), - _uq_ = - caml_call2 - (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _up_), - _ur_ = - caml_call2 - (Runtime_ocaml_Runtime[118], ressources_menage, _uq_), - _us_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _ut_ = caml_call2(Runtime_ocaml_Runtime[83], _us_, _ur_); - return caml_call2(Runtime_ocaml_Runtime[29], _gF_, _ut_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gG_, [0], _un_, _um_); - }, - _uk_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gH_, _ul_, _uj_, _ui_); - }], - _ug_ = caml_call4(Runtime_ocaml_Runtime[63], _gI_, _uf_, _ue_, _ud_); - return _ug_; - } - catch(_uh_){ - var _uc_ = caml_wrap_exception(_uh_); - if(_uc_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _gB_], 1); - throw caml_maybe_attach_backtrace(_uc_, 0); - } - } - var - complement_degressif = - caml_call3 - (Runtime_ocaml_Runtime[28], _gJ_, Runtime_ocaml_Runtime[10], _mP_); - try{ - var - _mR_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _mS_ = function(param){return 0;}, - _mT_ = - function(param){ - function _t__(param){ - var _ub_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_05059); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _ub_); - } - function _t$_(param){ - var - _ua_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29], _gL_, _ua_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _gM_, [0], _t$_, _t__); - }, - _mU_ = - function(param){ - function _t4_(param){ - var _t9_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_10117); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _t9_); - } - function _t5_(param){ - var - _t6_ = - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _t7_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _t8_ = caml_call2(Runtime_ocaml_Runtime[83], _t7_, _t6_); - return caml_call2(Runtime_ocaml_Runtime[29], _gN_, _t8_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _gO_, [0], _t5_, _t4_); - }, - _mV_ = - [0, - function(param){ - function _t0_(param){ - var _t3_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_20234); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _t3_); - } - function _t1_(param){ - var - _t2_ = - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29], _gP_, _t2_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _gQ_, [0], _t1_, _t0_); - }, - _mU_, - _mT_], - _mW_ = caml_call4(Runtime_ocaml_Runtime[63], _gR_, _mV_, _mS_, _mR_); - } - catch(_tZ_){ - var _mQ_ = caml_wrap_exception(_tZ_); - if(_mQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _gK_], 1); - throw caml_maybe_attach_backtrace(_mQ_, 0); - } - var - montant_verse_forfaitaire_par_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _gS_, Runtime_ocaml_Runtime[13], _mW_); - try{ - var - _mY_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _mZ_ = function(param){return 0;}, - _m0_ = - function(param){ - function _tO_(param){ - var - _tR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$11), - _tS_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _tS_, _tR_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$40); - var - _tT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$12), - _tU_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _tV_ = caml_call2(Runtime_ocaml_Runtime[96], _tU_, _tT_), - _tW_ = caml_call1(Runtime_ocaml_Runtime[69], _tV_), - _tX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1025), - _tY_ = - caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _tX_); - return caml_call2(Runtime_ocaml_Runtime[104], _tY_, _tW_); - } - function _tP_(param){ - var - _tQ_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29], _gU_, _tQ_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _gV_, [0], _tP_, _tO_); - }, - _m1_ = - function(param){ - function _tB_(param){ - var - _tG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$13), - _tH_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _tH_, _tG_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$41); - var - _tI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$14), - _tJ_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _tK_ = caml_call2(Runtime_ocaml_Runtime[96], _tJ_, _tI_), - _tL_ = caml_call1(Runtime_ocaml_Runtime[69], _tK_), - _tM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_205), - _tN_ = - caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _tM_); - return caml_call2(Runtime_ocaml_Runtime[104], _tN_, _tL_); - } - function _tC_(param){ - var - _tD_ = - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _tE_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _tF_ = caml_call2(Runtime_ocaml_Runtime[83], _tE_, _tD_); - return caml_call2(Runtime_ocaml_Runtime[29], _gW_, _tF_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _gX_, [0], _tC_, _tB_); - }, - _m2_ = - [0, - function(param){ - function _tq_(param){ - var - _tt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$15), - _tu_ = + montant_initial_base_quatrieme= + caml_call3 + (Runtime_ocaml_Runtime[28],_eG_,Runtime_ocaml_Runtime[13],_cAN_); + try + {var + _cAO_= + function(param) + {var + _cOF_=caml_call1(Runtime_ocaml_Runtime[46],cst_2), + _cOG_= caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _tu_, _tt_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$42); - var - _tv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$16), - _tw_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _tx_ = caml_call2(Runtime_ocaml_Runtime[96], _tw_, _tv_), - _ty_ = caml_call1(Runtime_ocaml_Runtime[69], _tx_), - _tz_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_41), - _tA_ = - caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _tz_); - return caml_call2(Runtime_ocaml_Runtime[104], _tA_, _ty_); - } - function _tr_(param){ - var - _ts_ = - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29], _gY_, _ts_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _gZ_, [0], _tr_, _tq_); - }, - _m1_, - _m0_], - _m3_ = caml_call4(Runtime_ocaml_Runtime[63], _g0_, _m2_, _mZ_, _mY_); - } - catch(_tp_){ - var _mX_ = caml_wrap_exception(_tp_); - if(_mX_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _gT_], 1); - throw caml_maybe_attach_backtrace(_mX_, 0); - } - var - montant_initial_base_troisieme$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _g1_, Runtime_ocaml_Runtime[13], _m3_); - try{ - var - _m5_ = - function(param){ - function _s2_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _s3_(param){return 0;} - function _s4_(param){ - function _tj_(param){ - var - _tm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$8), - _tn_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _tn_, _tm_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$43); - var _to_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_08); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _to_); - } - function _tk_(param){ - var - _tl_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29], _g3_, _tl_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _g4_, [0], _tk_, _tj_); - } - function _s5_(param){ - function _tb_(param){ - var - _tg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$9), - _th_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _th_, _tg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$44); - var _ti_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_16$0); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _ti_); - } - function _tc_(param){ - var - _td_ = - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _te_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _tf_ = caml_call2(Runtime_ocaml_Runtime[83], _te_, _td_); - return caml_call2(Runtime_ocaml_Runtime[29], _g5_, _tf_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _g6_, [0], _tc_, _tb_); - } - var - _s6_ = - [0, - function(param){ - function _s7_(param){ - var - _s__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$10), - _s$_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _s$_, _s__)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$45); - var _ta_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_32); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _ta_); - } - function _s8_(param){ - var - _s9_ = - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29], _g7_, _s9_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _g8_, [0], _s8_, _s7_); - }, - _s5_, - _s4_]; - return caml_call4(Runtime_ocaml_Runtime[63], _g9_, _s6_, _s3_, _s2_); - }, - _m6_ = function(param){return 1;}, - _m7_ = - [0, - function(param){ - function _qR_(param){ - var - _sZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$11), - _s0_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _s0_, _sZ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$46); - var _s1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_32$0); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _s1_); - } - function _qS_(param){ - var _sY_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _g__); - return caml_call2(Runtime_ocaml_Runtime[29], _g$_, _sY_); - } - var - _qT_ = - [0, - function(param){ - function _qU_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _qV_(param){return 0;} - function _qW_(param){ - function _sM_(param){ - var - _sV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$12), - _sW_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _sW_, _sV_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$47); - var _sX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3068); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sX_); - } - function _sN_(param){ - var - _sO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), - _sP_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _sO_), - _sQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _sR_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _sQ_), - _sS_ = caml_call2(Runtime_ocaml_Runtime[83], _sR_, _sP_), - _sT_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _ha_), - _sU_ = caml_call2(Runtime_ocaml_Runtime[83], _sT_, _sS_); - return caml_call2(Runtime_ocaml_Runtime[29], _hb_, _sU_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hc_, [0], _sN_, _sM_); - } - function _qX_(param){ - function _sA_(param){ - var - _sJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$13), - _sK_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _sK_, _sJ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$48); - var _sL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2936); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sL_); - } - function _sB_(param){ - var - _sC_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), - _sD_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _sC_), - _sE_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _sF_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _sE_), - _sG_ = caml_call2(Runtime_ocaml_Runtime[83], _sF_, _sD_), - _sH_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _hd_), - _sI_ = caml_call2(Runtime_ocaml_Runtime[83], _sH_, _sG_); - return caml_call2(Runtime_ocaml_Runtime[29], _he_, _sI_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hf_, [0], _sB_, _sA_); - } - function _qY_(param){ - function _so_(param){ - var - _sx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$14), - _sy_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _sy_, _sx_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$49); - var _sz_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2804); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sz_); - } - function _sp_(param){ - var - _sq_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), - _sr_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _sq_), - _ss_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), - _st_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ss_), - _su_ = caml_call2(Runtime_ocaml_Runtime[83], _st_, _sr_), - _sv_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _hg_), - _sw_ = caml_call2(Runtime_ocaml_Runtime[83], _sv_, _su_); - return caml_call2(Runtime_ocaml_Runtime[29], _hh_, _sw_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hi_, [0], _sp_, _so_); - } - function _qZ_(param){ - function _sc_(param){ - var - _sl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$15), - _sm_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _sm_, _sl_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$50); - var _sn_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2672); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sn_); - } - function _sd_(param){ - var - _se_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), - _sf_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _se_), - _sg_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 1, 1), - _sh_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _sg_), - _si_ = caml_call2(Runtime_ocaml_Runtime[83], _sh_, _sf_), - _sj_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _hj_), - _sk_ = caml_call2(Runtime_ocaml_Runtime[83], _sj_, _si_); - return caml_call2(Runtime_ocaml_Runtime[29], _hk_, _sk_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hl_, [0], _sd_, _sc_); - } - function _q0_(param){ - function _r2_(param){ - var - _r$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$16), - _sa_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _sa_, _r$_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$51); - var _sb_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2613); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sb_); - } - function _r3_(param){ - var - _r4_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 12, 31), - _r5_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _r4_), - _r6_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 1, 1), - _r7_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _r6_), - _r8_ = caml_call2(Runtime_ocaml_Runtime[83], _r7_, _r5_), - _r9_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _hm_), - _r__ = caml_call2(Runtime_ocaml_Runtime[83], _r9_, _r8_); - return caml_call2(Runtime_ocaml_Runtime[29], _hn_, _r__); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ho_, [0], _r3_, _r2_); - } - function _q1_(param){ - function _rQ_(param){ - var - _rZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$17), - _r0_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _r0_, _rZ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$52); - var _r1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2555); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _r1_); - } - function _rR_(param){ - var - _rS_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 12, 31), - _rT_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _rS_), - _rU_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 1, 1), - _rV_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rU_), - _rW_ = caml_call2(Runtime_ocaml_Runtime[83], _rV_, _rT_), - _rX_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _hp_), - _rY_ = caml_call2(Runtime_ocaml_Runtime[83], _rX_, _rW_); - return caml_call2(Runtime_ocaml_Runtime[29], _hq_, _rY_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hr_, [0], _rR_, _rQ_); - } - function _q2_(param){ - function _rE_(param){ - var - _rN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$18), - _rO_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _rO_, _rN_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$53); - var _rP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2496); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rP_); - } - function _rF_(param){ - var - _rG_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 12, 31), - _rH_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _rG_), - _rI_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 1, 1), - _rJ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rI_), - _rK_ = caml_call2(Runtime_ocaml_Runtime[83], _rJ_, _rH_), - _rL_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _hs_), - _rM_ = caml_call2(Runtime_ocaml_Runtime[83], _rL_, _rK_); - return caml_call2(Runtime_ocaml_Runtime[29], _ht_, _rM_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hu_, [0], _rF_, _rE_); - } - function _q3_(param){ - function _rs_(param){ - var - _rB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$19), - _rC_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _rC_, _rB_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$54); - var _rD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2437); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rD_); - } - function _rt_(param){ - var - _ru_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 12, 31), - _rv_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _ru_), - _rw_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), - _rx_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rw_), - _ry_ = caml_call2(Runtime_ocaml_Runtime[83], _rx_, _rv_), - _rz_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _hv_), - _rA_ = caml_call2(Runtime_ocaml_Runtime[83], _rz_, _ry_); - return caml_call2(Runtime_ocaml_Runtime[29], _hw_, _rA_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hx_, [0], _rt_, _rs_); - } - function _q4_(param){ - function _rg_(param){ - var - _rp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$20), - _rq_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _rq_, _rp_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$55); - var _rr_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2379); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rr_); - } - function _rh_(param){ - var - _ri_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), - _rj_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _ri_), - _rk_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), - _rl_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rk_), - _rm_ = caml_call2(Runtime_ocaml_Runtime[83], _rl_, _rj_), - _rn_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _hy_), - _ro_ = caml_call2(Runtime_ocaml_Runtime[83], _rn_, _rm_); - return caml_call2(Runtime_ocaml_Runtime[29], _hz_, _ro_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hA_, [0], _rh_, _rg_); - } - var - _q5_ = - [0, - function(param){ - function _q6_(param){ - var - _rd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$21), - _re_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121], _re_, _rd_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$56); - var _rf_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_232); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rf_); - } - function _q7_(param){ - var - _q8_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), - _q9_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _q8_), - _q__ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), - _q$_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _q__), - _ra_ = caml_call2(Runtime_ocaml_Runtime[83], _q$_, _q9_), - _rb_ = - caml_call2(Runtime_ocaml_Runtime[86], residence, _hB_), - _rc_ = caml_call2(Runtime_ocaml_Runtime[83], _rb_, _ra_); - return caml_call2(Runtime_ocaml_Runtime[29], _hC_, _rc_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hD_, [0], _q7_, _q6_); - }, - _q4_, - _q3_, - _q2_, - _q1_, - _q0_, - _qZ_, - _qY_, - _qX_, - _qW_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _hE_, _q5_, _qV_, _qU_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _hF_, _qT_, _qS_, _qR_); - }], - _m8_ = caml_call4(Runtime_ocaml_Runtime[63], _hG_, _m7_, _m6_, _m5_); - } - catch(_qQ_){ - var _m4_ = caml_wrap_exception(_qQ_); - if(_m4_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _g2_], 1); - throw caml_maybe_attach_backtrace(_m4_, 0); - } - var - montant_initial_base_deuxieme_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _hH_, Runtime_ocaml_Runtime[13], _m8_); - try{ - var - _m__ = - function(param){ - var _qP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$57); - return caml_call2 - (Runtime_ocaml_Runtime[86], nombre_total_enfants, _qP_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0$58) - : caml_call2 - (Runtime_ocaml_Runtime[107], - nombre_moyen_enfants, - nombre_total_enfants); - }, - _m$_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _hJ_, 1); - }, - _na_ = caml_call4(Runtime_ocaml_Runtime[63], _hK_, [0], _m$_, _m__); - } - catch(_qO_){ - var _m9_ = caml_wrap_exception(_qO_); - if(_m9_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _hI_], 1); - throw caml_maybe_attach_backtrace(_m9_, 0); - } - var - rapport_enfants_total_moyen = - caml_call3 - (Runtime_ocaml_Runtime[28], _hL_, Runtime_ocaml_Runtime[15], _na_); - function _nb_(enfant){ - try{ - var - _p8_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _p9_ = function(param){return 0;}, - _p__ = - function(param){ - function _qH_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$59); - } - function _qI_(param){ - var - _qJ_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _hN_, embed_enfant, enfant), - _qK_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _hO_, droit_ouvert_majoration), - _qJ_), - _qL_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _hP_, - Runtime_ocaml_Runtime[12], - _qK_), - _qM_ = caml_call2(Runtime_ocaml_Runtime[27], _hQ_, _qL_), - _qN_ = caml_call1(Runtime_ocaml_Runtime[67], _qM_); - return caml_call2(Runtime_ocaml_Runtime[29], _hR_, _qN_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _hS_, [0], _qI_, _qH_); - }, - _p$_ = - function(param){ - function _qy_(param){ - var _qG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_04); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _qG_); - } - function _qz_(param){ - var - _qA_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _hT_, embed_enfant, enfant), - _qB_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _hU_, droit_ouvert_majoration), - _qA_), - _qC_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _hV_, - Runtime_ocaml_Runtime[12], - _qB_), - _qD_ = caml_call2(Runtime_ocaml_Runtime[27], _hW_, _qC_), - _qE_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3), - _qF_ = caml_call2(Runtime_ocaml_Runtime[83], _qE_, _qD_); - return caml_call2(Runtime_ocaml_Runtime[29], _hX_, _qF_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _hY_, [0], _qz_, _qy_); - }, - _qa_ = - function(param){ - function _qn_(param){ - var _qx_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_08$0); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _qx_); - } - function _qo_(param){ - var - _qp_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _hZ_, embed_enfant, enfant), - _qq_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _h0_, droit_ouvert_majoration), - _qp_), - _qr_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _h1_, - Runtime_ocaml_Runtime[12], - _qq_), - _qs_ = caml_call2(Runtime_ocaml_Runtime[27], _h2_, _qr_), - _qt_ = - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _qu_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _qv_ = caml_call2(Runtime_ocaml_Runtime[83], _qu_, _qt_), - _qw_ = caml_call2(Runtime_ocaml_Runtime[83], _qv_, _qs_); - return caml_call2(Runtime_ocaml_Runtime[29], _h3_, _qw_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _h4_, [0], _qo_, _qn_); - }, - _qb_ = - [0, - function(param){ - function _qe_(param){ - var _qm_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_16$1); + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cOG_,_cOF_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$1); + var _cOH_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_16); return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _qm_); - } - function _qf_(param){ - var - _qg_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _h5_, embed_enfant, enfant), - _qh_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _h6_, droit_ouvert_majoration), - _qg_), - _qi_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _h7_, - Runtime_ocaml_Runtime[12], - _qh_), - _qj_ = caml_call2(Runtime_ocaml_Runtime[27], _h8_, _qi_), - _qk_ = - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3), - _ql_ = caml_call2(Runtime_ocaml_Runtime[83], _qk_, _qj_); - return caml_call2(Runtime_ocaml_Runtime[29], _h9_, _ql_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _h__, [0], _qf_, _qe_); - }, - _qa_, - _p$_, - _p__], - _qc_ = caml_call4(Runtime_ocaml_Runtime[63], _h$_, _qb_, _p9_, _p8_); - return _qc_; - } - catch(_qd_){ - var _p7_ = caml_wrap_exception(_qd_); - if(_p7_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _hM_], 1); - throw caml_maybe_attach_backtrace(_p7_, 0); - } - } - var - montant_initial_metropole_majo = - caml_call3 - (Runtime_ocaml_Runtime[28], _ia_, Runtime_ocaml_Runtime[10], _nb_); - try{ - var - _nd_ = - function(param){ - function _p0_(enfant){ - var - _p4_ = - caml_call3(Runtime_ocaml_Runtime[28], _ic_, embed_enfant, enfant), - _p5_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _id_, droit_ouvert_forfaitaire), - _p4_), - _p6_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _ie_, - Runtime_ocaml_Runtime[12], - _p5_); - return caml_call2(Runtime_ocaml_Runtime[27], _if_, _p6_); - } - var - _p1_ = caml_call2(Runtime_ocaml_Runtime[90], _p0_, enfants_a_charge), - _p2_ = caml_call1(Runtime_ocaml_Runtime[68], _p1_), - _p3_ = caml_call1(Runtime_ocaml_Runtime[69], _p2_); - return caml_call2 - (Runtime_ocaml_Runtime[104], - montant_verse_forfaitaire_par_, - _p3_); - }, - _ne_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ig_, 1); - }, - _nf_ = caml_call4(Runtime_ocaml_Runtime[63], _ih_, [0], _ne_, _nd_); - } - catch(_pZ_){ - var _nc_ = caml_wrap_exception(_pZ_); - if(_nc_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _ib_], 1); - throw caml_maybe_attach_backtrace(_nc_, 0); - } - var - montant_verse_forfaitaire = - caml_call3 - (Runtime_ocaml_Runtime[28], _ii_, Runtime_ocaml_Runtime[13], _nf_); - try{ - var - _nh_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[93], - montant_initial_base_deuxieme_, - montant_initial_base_troisieme$0); - }, - _ni_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ik_, 1); - }, - _nj_ = - [0, - function(param){ - function _pK_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _pL_(param){return 0;} - function _pM_(param){ - function _pU_(param){ - var - _pX_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - montant_initial_base_premier_e, - montant_initial_base_deuxieme_), - _pY_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - _pX_, - montant_initial_base_troisieme); - return caml_call2 - (Runtime_ocaml_Runtime[93], - _pY_, - montant_initial_base_quatrieme); - } - function _pV_(param){ - var _pW_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _il_); - return caml_call2(Runtime_ocaml_Runtime[29], _im_, _pW_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _in_, [0], _pV_, _pU_); - } - var - _pN_ = - [0, - function(param){ - function _pO_(param){return montant_initial_base_premier_e;} - function _pP_(param){ - var - _pQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$22), - _pR_ = + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cOH_)}, + _cAP_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_eI_,1)}, + _cAQ_= + [0, + function(param) + {function _cMB_(param){throw Runtime_ocaml_Runtime[2]} + function _cMC_(param){return 0} + function _cMD_(param) + {function _cOt_(param) + {var + _cOC_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$0), + _cOD_= caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _pS_ = caml_call2(Runtime_ocaml_Runtime[86], _pR_, _pQ_), - _pT_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _pS_); - return caml_call2(Runtime_ocaml_Runtime[29], _io_, _pT_); - } + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cOD_,_cOC_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$2); + var _cOE_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_143); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cOE_)} + function _cOu_(param) + {var + _cOv_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), + _cOw_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cOv_), + _cOx_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cOy_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cOx_), + _cOz_=caml_call2(Runtime_ocaml_Runtime[83],_cOy_,_cOw_), + _cOA_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eJ_), + _cOB_=caml_call2(Runtime_ocaml_Runtime[83],_cOA_,_cOz_); + return caml_call2(Runtime_ocaml_Runtime[29],_eK_,_cOB_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _ip_, [0], _pP_, _pO_); - }, - _pM_]; - return caml_call4(Runtime_ocaml_Runtime[63], _iq_, _pN_, _pL_, _pK_); - }], - _nk_ = caml_call4(Runtime_ocaml_Runtime[63], _ir_, _nj_, _ni_, _nh_); - } - catch(_pJ_){ - var _ng_ = caml_wrap_exception(_pJ_); - if(_ng_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _ij_], 1); - throw caml_maybe_attach_backtrace(_ng_, 0); - } - var - montant_initial_base = - caml_call3 - (Runtime_ocaml_Runtime[28], _is_, Runtime_ocaml_Runtime[13], _nk_); - function _nl_(enfant){ - try{ - var - _oZ_ = - function(param){ - var - _pG_ = - caml_call3(Runtime_ocaml_Runtime[28], _iu_, embed_enfant, enfant), - _pH_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _iv_, - montant_initial_metropole_majo), - _pG_), - _pI_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _iw_, - Runtime_ocaml_Runtime[13], - _pH_); - return caml_call2(Runtime_ocaml_Runtime[27], _ix_, _pI_); - }, - _o0_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _iy_, 1); - }, - _o1_ = - [0, - function(param){ - function _o4_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _o5_(param){return 0;} - function _o6_(param){ - function _pq_(param){ - var _pF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0567); - return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _pF_); - } - function _pr_(param){ + (Runtime_ocaml_Runtime[63],_eL_,[0],_cOu_,_cOt_)} + function _cME_(param) + {function _cOh_(param) + {var + _cOq_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$1), + _cOr_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cOr_,_cOq_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$3); + var _cOs_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1259); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cOs_)} + function _cOi_(param) + {var + _cOj_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), + _cOk_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cOj_), + _cOl_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _cOm_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cOl_), + _cOn_=caml_call2(Runtime_ocaml_Runtime[83],_cOm_,_cOk_), + _cOo_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eM_), + _cOp_=caml_call2(Runtime_ocaml_Runtime[83],_cOo_,_cOn_); + return caml_call2(Runtime_ocaml_Runtime[29],_eN_,_cOp_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_eO_,[0],_cOi_,_cOh_)} + function _cMF_(param) + {function _cN7_(param) + {var + _cOe_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$2), + _cOf_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cOf_,_cOe_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$4); + var _cOg_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1089); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cOg_)} + function _cN8_(param) + {var + _cN9_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), + _cN__= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cN9_), + _cN$_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), + _cOa_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cN$_), + _cOb_=caml_call2(Runtime_ocaml_Runtime[83],_cOa_,_cN__), + _cOc_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eP_), + _cOd_=caml_call2(Runtime_ocaml_Runtime[83],_cOc_,_cOb_); + return caml_call2(Runtime_ocaml_Runtime[29],_eQ_,_cOd_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_eR_,[0],_cN8_,_cN7_)} + function _cMG_(param) + {function _cNV_(param) + {var + _cN4_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$3), + _cN5_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cN5_,_cN4_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$5); + var _cN6_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0918); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cN6_)} + function _cNW_(param) + {var + _cNX_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), + _cNY_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cNX_), + _cNZ_=caml_call3(Runtime_ocaml_Runtime[57],2017,1,1), + _cN0_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cNZ_), + _cN1_=caml_call2(Runtime_ocaml_Runtime[83],_cN0_,_cNY_), + _cN2_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eS_), + _cN3_=caml_call2(Runtime_ocaml_Runtime[83],_cN2_,_cN1_); + return caml_call2(Runtime_ocaml_Runtime[29],_eT_,_cN3_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_eU_,[0],_cNW_,_cNV_)} + function _cMH_(param) + {function _cNJ_(param) + {var + _cNS_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$4), + _cNT_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cNT_,_cNS_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$6); + var _cNU_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0842); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cNU_)} + function _cNK_(param) + {var + _cNL_=caml_call3(Runtime_ocaml_Runtime[57],2016,12,31), + _cNM_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cNL_), + _cNN_=caml_call3(Runtime_ocaml_Runtime[57],2016,1,1), + _cNO_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cNN_), + _cNP_=caml_call2(Runtime_ocaml_Runtime[83],_cNO_,_cNM_), + _cNQ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eV_), + _cNR_=caml_call2(Runtime_ocaml_Runtime[83],_cNQ_,_cNP_); + return caml_call2(Runtime_ocaml_Runtime[29],_eW_,_cNR_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_eX_,[0],_cNK_,_cNJ_)} + function _cMI_(param) + {function _cNx_(param) + {var + _cNG_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$5), + _cNH_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cNH_,_cNG_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$7); + var _cNI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0766); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cNI_)} + function _cNy_(param) + {var + _cNz_=caml_call3(Runtime_ocaml_Runtime[57],2015,12,31), + _cNA_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cNz_), + _cNB_=caml_call3(Runtime_ocaml_Runtime[57],2015,1,1), + _cNC_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cNB_), + _cND_=caml_call2(Runtime_ocaml_Runtime[83],_cNC_,_cNA_), + _cNE_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eY_), + _cNF_=caml_call2(Runtime_ocaml_Runtime[83],_cNE_,_cND_); + return caml_call2(Runtime_ocaml_Runtime[29],_eZ_,_cNF_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_e0_,[0],_cNy_,_cNx_)} + function _cMJ_(param) + {function _cNl_(param) + {var + _cNu_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$6), + _cNv_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cNv_,_cNu_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$8); + var _cNw_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_069); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cNw_)} + function _cNm_(param) + {var + _cNn_=caml_call3(Runtime_ocaml_Runtime[57],2014,12,31), + _cNo_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cNn_), + _cNp_=caml_call3(Runtime_ocaml_Runtime[57],2014,1,1), + _cNq_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cNp_), + _cNr_=caml_call2(Runtime_ocaml_Runtime[83],_cNq_,_cNo_), + _cNs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e1_), + _cNt_=caml_call2(Runtime_ocaml_Runtime[83],_cNs_,_cNr_); + return caml_call2(Runtime_ocaml_Runtime[29],_e2_,_cNt_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_e3_,[0],_cNm_,_cNl_)} + function _cMK_(param) + {function _cM$_(param) + {var + _cNi_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$7), + _cNj_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cNj_,_cNi_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$9); + var _cNk_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0615); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cNk_)} + function _cNa_(param) + {var + _cNb_=caml_call3(Runtime_ocaml_Runtime[57],2013,12,31), + _cNc_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cNb_), + _cNd_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), + _cNe_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cNd_), + _cNf_=caml_call2(Runtime_ocaml_Runtime[83],_cNe_,_cNc_), + _cNg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e4_), + _cNh_=caml_call2(Runtime_ocaml_Runtime[83],_cNg_,_cNf_); + return caml_call2(Runtime_ocaml_Runtime[29],_e5_,_cNh_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_e6_,[0],_cNa_,_cM$_)} + function _cML_(param) + {function _cMZ_(param) + {var + _cM8_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$8), + _cM9_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cM9_,_cM8_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$10); + var _cM__=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0539); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cM__)} + function _cM0_(param) + {var + _cM1_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), + _cM2_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cM1_), + _cM3_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), + _cM4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cM3_), + _cM5_=caml_call2(Runtime_ocaml_Runtime[83],_cM4_,_cM2_), + _cM6_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e7_), + _cM7_=caml_call2(Runtime_ocaml_Runtime[83],_cM6_,_cM5_); + return caml_call2(Runtime_ocaml_Runtime[29],_e8_,_cM7_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_e9_,[0],_cM0_,_cMZ_)} var - _ps_ = caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0), - _pt_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _ps_), - _pu_ = - caml_call2(Runtime_ocaml_Runtime[120], _pt_, date_courante), - _pv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$23), - _pw_ = + _cMM_= + [0, + function(param) + {function _cMN_(param) + {var + _cMW_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$9), + _cMX_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cMX_,_cMW_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$11); + var + _cMY_= + caml_call1(Runtime_ocaml_Runtime[39],cst_0_0463$0); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cMY_)} + function _cMO_(param) + {var + _cMP_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), + _cMQ_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cMP_), + _cMR_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), + _cMS_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cMR_), + _cMT_=caml_call2(Runtime_ocaml_Runtime[83],_cMS_,_cMQ_), + _cMU_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e__), + _cMV_=caml_call2(Runtime_ocaml_Runtime[83],_cMU_,_cMT_); + return caml_call2(Runtime_ocaml_Runtime[29],_e$_,_cMV_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fa_,[0],_cMO_,_cMN_)}, + _cML_, + _cMK_, + _cMJ_, + _cMI_, + _cMH_, + _cMG_, + _cMF_, + _cME_, + _cMD_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_fb_,_cMM_,_cMC_,_cMB_)}], + _cAR_=caml_call4(Runtime_ocaml_Runtime[63],_fc_,_cAQ_,_cAP_,_cAO_)} + catch(_cMA_) + {_cMA_ = caml_wrap_exception(_cMA_); + if(_cMA_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_eH_]; + throw _cMA_} + var + montant_initial_base_troisieme= + caml_call3 + (Runtime_ocaml_Runtime[28],_fd_,Runtime_ocaml_Runtime[13],_cAR_); + try + {var + _cAS_= + function(param) + {var + _cMz_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + return caml_call1(Runtime_ocaml_Runtime[69],_cMz_)}, + _cAT_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ff_,1)}, + _cAU_=caml_call4(Runtime_ocaml_Runtime[63],_fg_,[0],_cAT_,_cAS_)} + catch(_cMy_) + {_cMy_ = caml_wrap_exception(_cMy_); + if(_cMy_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_fe_]; + throw _cMy_} + var + nombre_total_enfants= + caml_call3 + (Runtime_ocaml_Runtime[28],_fh_,Runtime_ocaml_Runtime[15],_cAU_); + try + {var + _cAV_= + function(param) + {function _cMr_(enfant) + {var + _cMv_= + caml_call3(Runtime_ocaml_Runtime[28],_fj_,embed_enfant,enfant), + _cMw_= caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _px_ = caml_call2(Runtime_ocaml_Runtime[86], _pw_, _pv_), - _py_ = caml_call2(Runtime_ocaml_Runtime[83], _px_, _pu_), - _pz_ = + (caml_call2(Runtime_ocaml_Runtime[26],_fk_,prise_en_compte), + _cMv_), + _cMx_= + caml_call3 + (Runtime_ocaml_Runtime[28],_fl_,embed_prise_en_compte,_cMw_), + match=caml_call2(Runtime_ocaml_Runtime[27],_fm_,_cMx_); + switch(match[0]) + {case 0:return caml_call1(Runtime_ocaml_Runtime[39],cst_1$2); + case 1:return caml_call1(Runtime_ocaml_Runtime[39],cst_0_5); + default:return caml_call1(Runtime_ocaml_Runtime[39],cst_0$12)}} + var + _cMs_= + caml_call2 + (Runtime_ocaml_Runtime[87], + _cMr_, + enfants_a_charge_droit_ouvert_), + _cMt_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$13); + function _cMu_(sum1,sum2) + {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)} + return caml_call3(Runtime_ocaml_Runtime[88],_cMu_,_cMt_,_cMs_)}, + _cAW_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_fn_,1)}, + _cAX_=caml_call4(Runtime_ocaml_Runtime[63],_fo_,[0],_cAW_,_cAV_)} + catch(_cMq_) + {_cMq_ = caml_wrap_exception(_cMq_); + if(_cMq_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_fi_]; + throw _cMq_} + var + nombre_moyen_enfants= + caml_call3 + (Runtime_ocaml_Runtime[28],_fp_,Runtime_ocaml_Runtime[15],_cAX_); + try + {var + _cAY_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$14)}, + _cAZ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_fr_,1)}, + _cA0_= + function(param) + {function _cMj_(param) + {var _cMp_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0588); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cMp_)} + function _cMk_(param) + {var + _cMl_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$3), + _cMm_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cMn_=caml_call2(Runtime_ocaml_Runtime[86],_cMm_,_cMl_), + _cMo_= caml_call2 (Runtime_ocaml_Runtime[83], prestations_familiales_dot_reg, - _py_), - _pA_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _iz_, embed_enfant, enfant), - _pB_ = + _cMn_); + return caml_call2(Runtime_ocaml_Runtime[29],_fs_,_cMo_)} + return caml_call4(Runtime_ocaml_Runtime[63],_ft_,[0],_cMk_,_cMj_)}, + _cA1_= + [0, + function(param) + {function _cJJ_(param) + {var + _cMg_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$15), + _cMh_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cMh_,_cMg_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$16); + var _cMi_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0588$0); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cMi_)} + function _cJK_(param) + {var _cMf_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fu_); + return caml_call2(Runtime_ocaml_Runtime[29],_fv_,_cMf_)} + var + _cJL_= + [0, + function(param) + {function _cJM_(param){throw Runtime_ocaml_Runtime[2]} + function _cJN_(param){return 0} + function _cJO_(param) + {function _cL$_(param) + {var + _cMd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$17), + _cMe_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + return caml_call2(Runtime_ocaml_Runtime[121],_cMe_,_cMd_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_5728) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$18)} + function _cMa_(param) + {var + _cMb_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fw_), + _cMc_= + caml_call2 + (Runtime_ocaml_Runtime[83], + _cMb_, + avait_enfant_a_charge_avant_1e); + return caml_call2(Runtime_ocaml_Runtime[29],_fx_,_cMc_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fy_,[0],_cMa_,_cL$_)} + function _cJP_(param) + {function _cLX_(param) + {var + _cL8_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$19), + _cL9_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cL9_,_cL8_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$20); + var _cL__=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0717); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cL__)} + function _cLY_(param) + {var + _cLZ_= + caml_call1 + (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), + _cL0_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), + _cL1_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cL0_), + _cL2_=caml_call2(Runtime_ocaml_Runtime[83],_cL1_,_cLZ_), + _cL3_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cL4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cL3_), + _cL5_=caml_call2(Runtime_ocaml_Runtime[83],_cL4_,_cL2_), + _cL6_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fz_), + _cL7_=caml_call2(Runtime_ocaml_Runtime[83],_cL6_,_cL5_); + return caml_call2(Runtime_ocaml_Runtime[29],_fA_,_cL7_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fB_,[0],_cLY_,_cLX_)} + function _cJQ_(param) + {function _cLJ_(param) + {var + _cLU_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$21), + _cLV_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cLV_,_cLU_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$22); + var _cLW_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0847); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cLW_)} + function _cLK_(param) + {var + _cLL_= + caml_call1 + (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), + _cLM_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), + _cLN_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cLM_), + _cLO_=caml_call2(Runtime_ocaml_Runtime[83],_cLN_,_cLL_), + _cLP_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _cLQ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cLP_), + _cLR_=caml_call2(Runtime_ocaml_Runtime[83],_cLQ_,_cLO_), + _cLS_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fC_), + _cLT_=caml_call2(Runtime_ocaml_Runtime[83],_cLS_,_cLR_); + return caml_call2(Runtime_ocaml_Runtime[29],_fD_,_cLT_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fE_,[0],_cLK_,_cLJ_)} + function _cJR_(param) + {function _cLv_(param) + {var + _cLG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$23), + _cLH_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cLH_,_cLG_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$24); + var _cLI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0976); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cLI_)} + function _cLw_(param) + {var + _cLx_= + caml_call1 + (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), + _cLy_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), + _cLz_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cLy_), + _cLA_=caml_call2(Runtime_ocaml_Runtime[83],_cLz_,_cLx_), + _cLB_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), + _cLC_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cLB_), + _cLD_=caml_call2(Runtime_ocaml_Runtime[83],_cLC_,_cLA_), + _cLE_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fF_), + _cLF_=caml_call2(Runtime_ocaml_Runtime[83],_cLE_,_cLD_); + return caml_call2(Runtime_ocaml_Runtime[29],_fG_,_cLF_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fH_,[0],_cLw_,_cLv_)} + function _cJS_(param) + {function _cLh_(param) + {var + _cLs_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$25), + _cLt_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cLt_,_cLs_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$26); + var _cLu_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1105); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cLu_)} + function _cLi_(param) + {var + _cLj_= + caml_call1 + (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), + _cLk_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), + _cLl_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cLk_), + _cLm_=caml_call2(Runtime_ocaml_Runtime[83],_cLl_,_cLj_), + _cLn_=caml_call3(Runtime_ocaml_Runtime[57],2017,1,1), + _cLo_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cLn_), + _cLp_=caml_call2(Runtime_ocaml_Runtime[83],_cLo_,_cLm_), + _cLq_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fI_), + _cLr_=caml_call2(Runtime_ocaml_Runtime[83],_cLq_,_cLp_); + return caml_call2(Runtime_ocaml_Runtime[29],_fJ_,_cLr_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fK_,[0],_cLi_,_cLh_)} + function _cJT_(param) + {function _cK5_(param) + {var + _cLe_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$27), + _cLf_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cLf_,_cLe_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$28); + var _cLg_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1163); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cLg_)} + function _cK6_(param) + {var + _cK7_= + caml_call1 + (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), + _cK8_=caml_call3(Runtime_ocaml_Runtime[57],2016,12,31), + _cK9_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cK8_), + _cK__=caml_call2(Runtime_ocaml_Runtime[83],_cK9_,_cK7_), + _cK$_=caml_call3(Runtime_ocaml_Runtime[57],2016,1,1), + _cLa_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cK$_), + _cLb_=caml_call2(Runtime_ocaml_Runtime[83],_cLa_,_cK__), + _cLc_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fL_), + _cLd_=caml_call2(Runtime_ocaml_Runtime[83],_cLc_,_cLb_); + return caml_call2(Runtime_ocaml_Runtime[29],_fM_,_cLd_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fN_,[0],_cK6_,_cK5_)} + function _cJU_(param) + {function _cKR_(param) + {var + _cK2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$29), + _cK3_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cK3_,_cK2_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$30); + var _cK4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_122); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cK4_)} + function _cKS_(param) + {var + _cKT_= + caml_call1 + (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), + _cKU_=caml_call3(Runtime_ocaml_Runtime[57],2015,12,31), + _cKV_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cKU_), + _cKW_=caml_call2(Runtime_ocaml_Runtime[83],_cKV_,_cKT_), + _cKX_=caml_call3(Runtime_ocaml_Runtime[57],2015,1,1), + _cKY_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cKX_), + _cKZ_=caml_call2(Runtime_ocaml_Runtime[83],_cKY_,_cKW_), + _cK0_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fO_), + _cK1_=caml_call2(Runtime_ocaml_Runtime[83],_cK0_,_cKZ_); + return caml_call2(Runtime_ocaml_Runtime[29],_fP_,_cK1_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fQ_,[0],_cKS_,_cKR_)} + function _cJV_(param) + {function _cKD_(param) + {var + _cKO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$31), + _cKP_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cKP_,_cKO_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$32); + var _cKQ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1278); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cKQ_)} + function _cKE_(param) + {var + _cKF_= + caml_call1 + (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), + _cKG_=caml_call3(Runtime_ocaml_Runtime[57],2014,12,31), + _cKH_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cKG_), + _cKI_=caml_call2(Runtime_ocaml_Runtime[83],_cKH_,_cKF_), + _cKJ_=caml_call3(Runtime_ocaml_Runtime[57],2014,1,1), + _cKK_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cKJ_), + _cKL_=caml_call2(Runtime_ocaml_Runtime[83],_cKK_,_cKI_), + _cKM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fR_), + _cKN_=caml_call2(Runtime_ocaml_Runtime[83],_cKM_,_cKL_); + return caml_call2(Runtime_ocaml_Runtime[29],_fS_,_cKN_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fT_,[0],_cKE_,_cKD_)} + function _cJW_(param) + {function _cKp_(param) + {var + _cKA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$33), + _cKB_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cKB_,_cKA_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$34); + var _cKC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1335); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cKC_)} + function _cKq_(param) + {var + _cKr_= + caml_call1 + (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), + _cKs_=caml_call3(Runtime_ocaml_Runtime[57],2013,12,31), + _cKt_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cKs_), + _cKu_=caml_call2(Runtime_ocaml_Runtime[83],_cKt_,_cKr_), + _cKv_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), + _cKw_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cKv_), + _cKx_=caml_call2(Runtime_ocaml_Runtime[83],_cKw_,_cKu_), + _cKy_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fU_), + _cKz_=caml_call2(Runtime_ocaml_Runtime[83],_cKy_,_cKx_); + return caml_call2(Runtime_ocaml_Runtime[29],_fV_,_cKz_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fW_,[0],_cKq_,_cKp_)} + function _cJX_(param) + {function _cKb_(param) + {var + _cKm_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$35), + _cKn_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cKn_,_cKm_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$36); + var _cKo_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1393); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cKo_)} + function _cKc_(param) + {var + _cKd_= + caml_call1 + (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), + _cKe_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), + _cKf_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cKe_), + _cKg_=caml_call2(Runtime_ocaml_Runtime[83],_cKf_,_cKd_), + _cKh_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), + _cKi_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cKh_), + _cKj_=caml_call2(Runtime_ocaml_Runtime[83],_cKi_,_cKg_), + _cKk_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fX_), + _cKl_=caml_call2(Runtime_ocaml_Runtime[83],_cKk_,_cKj_); + return caml_call2(Runtime_ocaml_Runtime[29],_fY_,_cKl_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_fZ_,[0],_cKc_,_cKb_)} + var + _cJY_= + [0, + function(param) + {function _cJZ_(param) + {var + _cJ__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$37), + _cJ$_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cJ$_,_cJ__)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$38); + var _cKa_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_145); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cKa_)} + function _cJ0_(param) + {var + _cJ1_= + caml_call1 + (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), + _cJ2_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), + _cJ3_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cJ2_), + _cJ4_=caml_call2(Runtime_ocaml_Runtime[83],_cJ3_,_cJ1_), + _cJ5_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), + _cJ6_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cJ5_), + _cJ7_=caml_call2(Runtime_ocaml_Runtime[83],_cJ6_,_cJ4_), + _cJ8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_f0_), + _cJ9_=caml_call2(Runtime_ocaml_Runtime[83],_cJ8_,_cJ7_); + return caml_call2(Runtime_ocaml_Runtime[29],_f1_,_cJ9_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_f2_,[0],_cJ0_,_cJZ_)}, + _cJX_, + _cJW_, + _cJV_, + _cJU_, + _cJT_, + _cJS_, + _cJR_, + _cJQ_, + _cJP_, + _cJO_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_f3_,_cJY_,_cJN_,_cJM_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_f4_,_cJL_,_cJK_,_cJJ_)}, + _cA0_], + _cA2_=caml_call4(Runtime_ocaml_Runtime[63],_f5_,_cA1_,_cAZ_,_cAY_)} + catch(_cJI_) + {_cJI_ = caml_wrap_exception(_cJI_); + if(_cJI_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_fq_]; + throw _cJI_} + var + montant_initial_base_premier_e= + caml_call3 + (Runtime_ocaml_Runtime[28],_f6_,Runtime_ocaml_Runtime[13],_cA2_); + try + {var + _cA3_=function(param){return 0}, + _cA4_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_f8_,1)}, + _cA5_= + [0, + function(param) + {function _cJl_(param){return 1} + function _cJm_(param) + {var + _cJF_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$10), + _cJG_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cJH_=caml_call2(Runtime_ocaml_Runtime[126],_cJG_,_cJF_); + return caml_call2(Runtime_ocaml_Runtime[29],_f9_,_cJH_)} + var + _cJn_= + [0, + function(param) + {function _cJo_(param){throw Runtime_ocaml_Runtime[2]} + function _cJp_(param){return 0} + var + _cJq_= + [0, + function(param) + {function _cJr_(param){return 1} + function _cJs_(param) + {var + _cJB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$4), + _cJC_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cJD_=caml_call2(Runtime_ocaml_Runtime[126],_cJC_,_cJB_), + _cJE_= + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _cJD_); + return caml_call2(Runtime_ocaml_Runtime[29],_f__,_cJE_)} + var + _cJt_= + [0, + function(param) + {function _cJu_(param){return 1} + function _cJv_(param) + {var + _cJw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$5), + _cJx_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cJy_=caml_call2(Runtime_ocaml_Runtime[126],_cJx_,_cJw_), + _cJz_=caml_call2(Runtime_ocaml_Runtime[86],residence,_f$_), + _cJA_=caml_call2(Runtime_ocaml_Runtime[83],_cJz_,_cJy_); + return caml_call2(Runtime_ocaml_Runtime[29],_ga_,_cJA_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_gb_,[0],_cJv_,_cJu_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_gc_,_cJt_,_cJs_,_cJr_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_gd_,_cJq_,_cJp_,_cJo_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ge_,_cJn_,_cJm_,_cJl_)}], + _cA6_=caml_call4(Runtime_ocaml_Runtime[63],_gf_,_cA5_,_cA4_,_cA3_)} + catch(_cJk_) + {_cJk_ = caml_wrap_exception(_cJk_); + if(_cJk_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_f7_]; + throw _cJk_} + var + droit_ouvert_base= + caml_call3 + (Runtime_ocaml_Runtime[28],_gg_,Runtime_ocaml_Runtime[12],_cA6_); + function _cA7_(enfant) + {try + {var + _cIR_=function(param){return 0}, + _cIS_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_gi_,1)}, + _cIT_= + [0, + function(param) + {function _cIW_(param){return 1} + function _cIX_(param) + {var + _cI__= + caml_call3 + (Runtime_ocaml_Runtime[28],_gj_,embed_enfant,enfant), + _cI$_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_gk_,age_minimum_alinea_1_l521_3), + _cI__), + _cJa_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _gl_, + Runtime_ocaml_Runtime[17], + _cI$_), + _cJb_=caml_call2(Runtime_ocaml_Runtime[27],_gm_,_cJa_), + _cJc_= + caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cJb_), + _cJd_= + caml_call2(Runtime_ocaml_Runtime[120],_cJc_,date_courante), + _cJe_= + caml_call3 + (Runtime_ocaml_Runtime[28],_gn_,embed_enfant,enfant), + _cJf_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_go_,est_enfant_le_plus_age), + _cJe_), + _cJg_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _gp_, + Runtime_ocaml_Runtime[12], + _cJf_), + _cJh_=caml_call2(Runtime_ocaml_Runtime[27],_gq_,_cJg_), + _cJi_=caml_call1(Runtime_ocaml_Runtime[67],_cJh_), + _cJj_=caml_call2(Runtime_ocaml_Runtime[83],_cJi_,_cJd_); + return caml_call2(Runtime_ocaml_Runtime[29],_gr_,_cJj_)} + var + _cIY_= + [0, + function(param) + {function _cIZ_(param){return 1} + function _cI0_(param) + {var + _cI1_= + caml_call3 + (Runtime_ocaml_Runtime[28],_gs_,embed_enfant,enfant), + _cI2_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_gt_,age_minimum_alinea_1_l521_3), + _cI1_), + _cI3_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _gu_, + Runtime_ocaml_Runtime[17], + _cI2_), + _cI4_=caml_call2(Runtime_ocaml_Runtime[27],_gv_,_cI3_), + _cI5_= + caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cI4_), + _cI6_= + caml_call2(Runtime_ocaml_Runtime[120],_cI5_,date_courante), + _cI7_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cI8_= + caml_call2 + (Runtime_ocaml_Runtime[126], + _cI7_, + nombre_enfants_alinea_2_l521_3), + _cI9_=caml_call2(Runtime_ocaml_Runtime[83],_cI8_,_cI6_); + return caml_call2(Runtime_ocaml_Runtime[29],_gw_,_cI9_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_gx_,[0],_cI0_,_cIZ_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_gy_,_cIY_,_cIX_,_cIW_)}], + _cIU_=caml_call4(Runtime_ocaml_Runtime[63],_gz_,_cIT_,_cIS_,_cIR_); + return _cIU_} + catch(_cIV_) + {_cIV_ = caml_wrap_exception(_cIV_); + if(_cIV_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_gh_]; + throw _cIV_}} + var + droit_ouvert_majoration= + caml_call3 + (Runtime_ocaml_Runtime[28],_gA_,Runtime_ocaml_Runtime[10],_cA7_); + function _cA8_(allocation) + {try + {var + _cIe_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$39)}, + _cIf_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_gC_,1)}, + _cIg_= + [0, + function(param) + {function _cIj_(param){throw Runtime_ocaml_Runtime[2]} + function _cIk_(param){return 0} + function _cIl_(param) + {function _cIC_(param) + {var + _cIK_=caml_call1(Runtime_ocaml_Runtime[39],cst_12), + _cIL_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$6), + _cIM_=caml_call2(Runtime_ocaml_Runtime[107],_cIL_,_cIK_), + _cIN_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$0), + _cIO_= + caml_call2(Runtime_ocaml_Runtime[104],allocation,_cIN_), + _cIP_= + caml_call2 + (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cIO_), + _cIQ_= + caml_call2 + (Runtime_ocaml_Runtime[98],_cIP_,ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104],_cIQ_,_cIM_)} + function _cID_(param) + {var + _cIE_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$1), + _cIF_= + caml_call2(Runtime_ocaml_Runtime[104],allocation,_cIE_), + _cIG_= + caml_call2 + (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cIF_), + _cIH_= + caml_call2 + (Runtime_ocaml_Runtime[118],ressources_menage,_cIG_), + _cII_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3), + _cIJ_=caml_call2(Runtime_ocaml_Runtime[83],_cII_,_cIH_); + return caml_call2(Runtime_ocaml_Runtime[29],_gD_,_cIJ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_gE_,[0],_cID_,_cIC_)} + var + _cIm_= + [0, + function(param) + {function _cIn_(param) + {var + _cIv_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$2), + _cIw_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$7), + _cIx_=caml_call2(Runtime_ocaml_Runtime[107],_cIw_,_cIv_), + _cIy_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$3), + _cIz_= + caml_call2(Runtime_ocaml_Runtime[104],allocation,_cIy_), + _cIA_= + caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_cIz_), + _cIB_= + caml_call2 + (Runtime_ocaml_Runtime[98],_cIA_,ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104],_cIB_,_cIx_)} + function _cIo_(param) + {var + _cIp_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$4), + _cIq_= + caml_call2(Runtime_ocaml_Runtime[104],allocation,_cIp_), + _cIr_= + caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_cIq_), + _cIs_= + caml_call2 + (Runtime_ocaml_Runtime[118],ressources_menage,_cIr_), + _cIt_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _cIu_=caml_call2(Runtime_ocaml_Runtime[83],_cIt_,_cIs_); + return caml_call2(Runtime_ocaml_Runtime[29],_gF_,_cIu_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_gG_,[0],_cIo_,_cIn_)}, + _cIl_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_gH_,_cIm_,_cIk_,_cIj_)}], + _cIh_=caml_call4(Runtime_ocaml_Runtime[63],_gI_,_cIg_,_cIf_,_cIe_); + return _cIh_} + catch(_cIi_) + {_cIi_ = caml_wrap_exception(_cIi_); + if(_cIi_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_gB_]; + throw _cIi_}} + var + complement_degressif= + caml_call3 + (Runtime_ocaml_Runtime[28],_gJ_,Runtime_ocaml_Runtime[10],_cA8_); + try + {var + _cA9_=function(param){throw Runtime_ocaml_Runtime[2]}, + _cA__=function(param){return 0}, + _cA$_= + function(param) + {function _cIa_(param) + {var _cId_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_05059); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cId_)} + function _cIb_(param) + {var + _cIc_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29],_gL_,_cIc_)} + return caml_call4(Runtime_ocaml_Runtime[63],_gM_,[0],_cIb_,_cIa_)}, + _cBa_= + function(param) + {function _cH6_(param) + {var _cH$_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_10117); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cH$_)} + function _cH7_(param) + {var + _cH8_= + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _cH9_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _cH__=caml_call2(Runtime_ocaml_Runtime[83],_cH9_,_cH8_); + return caml_call2(Runtime_ocaml_Runtime[29],_gN_,_cH__)} + return caml_call4(Runtime_ocaml_Runtime[63],_gO_,[0],_cH7_,_cH6_)}, + _cBb_= + [0, + function(param) + {function _cH2_(param) + {var _cH5_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_20234); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cH5_)} + function _cH3_(param) + {var + _cH4_= + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29],_gP_,_cH4_)} + return caml_call4(Runtime_ocaml_Runtime[63],_gQ_,[0],_cH3_,_cH2_)}, + _cBa_, + _cA$_], + _cBc_=caml_call4(Runtime_ocaml_Runtime[63],_gR_,_cBb_,_cA__,_cA9_)} + catch(_cH1_) + {_cH1_ = caml_wrap_exception(_cH1_); + if(_cH1_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_gK_]; + throw _cH1_} + var + montant_verse_forfaitaire_par_= + caml_call3 + (Runtime_ocaml_Runtime[28],_gS_,Runtime_ocaml_Runtime[13],_cBc_); + try + {var + _cBd_=function(param){throw Runtime_ocaml_Runtime[2]}, + _cBe_=function(param){return 0}, + _cBf_= + function(param) + {function _cHQ_(param) + {var + _cHT_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$11), + _cHU_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cHU_,_cHT_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$40); + var + _cHV_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$12), + _cHW_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cHX_=caml_call2(Runtime_ocaml_Runtime[96],_cHW_,_cHV_), + _cHY_=caml_call1(Runtime_ocaml_Runtime[69],_cHX_), + _cHZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1025), + _cH0_= + caml_call2(Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHZ_); + return caml_call2(Runtime_ocaml_Runtime[104],_cH0_,_cHY_)} + function _cHR_(param) + {var + _cHS_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29],_gU_,_cHS_)} + return caml_call4(Runtime_ocaml_Runtime[63],_gV_,[0],_cHR_,_cHQ_)}, + _cBg_= + function(param) + {function _cHD_(param) + {var + _cHI_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$13), + _cHJ_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cHJ_,_cHI_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$41); + var + _cHK_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$14), + _cHL_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cHM_=caml_call2(Runtime_ocaml_Runtime[96],_cHL_,_cHK_), + _cHN_=caml_call1(Runtime_ocaml_Runtime[69],_cHM_), + _cHO_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_205), + _cHP_= + caml_call2(Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHO_); + return caml_call2(Runtime_ocaml_Runtime[104],_cHP_,_cHN_)} + function _cHE_(param) + {var + _cHF_= + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _cHG_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _cHH_=caml_call2(Runtime_ocaml_Runtime[83],_cHG_,_cHF_); + return caml_call2(Runtime_ocaml_Runtime[29],_gW_,_cHH_)} + return caml_call4(Runtime_ocaml_Runtime[63],_gX_,[0],_cHE_,_cHD_)}, + _cBh_= + [0, + function(param) + {function _cHs_(param) + {var + _cHv_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$15), + _cHw_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cHw_,_cHv_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$42); + var + _cHx_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$16), + _cHy_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cHz_=caml_call2(Runtime_ocaml_Runtime[96],_cHy_,_cHx_), + _cHA_=caml_call1(Runtime_ocaml_Runtime[69],_cHz_), + _cHB_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_41), + _cHC_= + caml_call2(Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHB_); + return caml_call2(Runtime_ocaml_Runtime[104],_cHC_,_cHA_)} + function _cHt_(param) + {var + _cHu_= + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29],_gY_,_cHu_)} + return caml_call4(Runtime_ocaml_Runtime[63],_gZ_,[0],_cHt_,_cHs_)}, + _cBg_, + _cBf_], + _cBi_=caml_call4(Runtime_ocaml_Runtime[63],_g0_,_cBh_,_cBe_,_cBd_)} + catch(_cHr_) + {_cHr_ = caml_wrap_exception(_cHr_); + if(_cHr_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_gT_]; + throw _cHr_} + var + montant_initial_base_troisieme$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_g1_,Runtime_ocaml_Runtime[13],_cBi_); + try + {var + _cBj_= + function(param) + {function _cG4_(param){throw Runtime_ocaml_Runtime[2]} + function _cG5_(param){return 0} + function _cG6_(param) + {function _cHl_(param) + {var + _cHo_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$8), + _cHp_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cHp_,_cHo_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$43); + var _cHq_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_08); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHq_)} + function _cHm_(param) + {var + _cHn_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29],_g3_,_cHn_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_g4_,[0],_cHm_,_cHl_)} + function _cG7_(param) + {function _cHd_(param) + {var + _cHi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$9), + _cHj_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cHj_,_cHi_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$44); + var _cHk_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_16$0); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHk_)} + function _cHe_(param) + {var + _cHf_= + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _cHg_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _cHh_=caml_call2(Runtime_ocaml_Runtime[83],_cHg_,_cHf_); + return caml_call2(Runtime_ocaml_Runtime[29],_g5_,_cHh_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_g6_,[0],_cHe_,_cHd_)} + var + _cG8_= + [0, + function(param) + {function _cG9_(param) + {var + _cHa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$10), + _cHb_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cHb_,_cHa_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$45); + var _cHc_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_32); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHc_)} + function _cG__(param) + {var + _cG$_= + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29],_g7_,_cG$_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_g8_,[0],_cG__,_cG9_)}, + _cG7_, + _cG6_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_g9_,_cG8_,_cG5_,_cG4_)}, + _cBk_=function(param){return 1}, + _cBl_= + [0, + function(param) + {function _cET_(param) + {var + _cG1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$11), + _cG2_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cG2_,_cG1_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$46); + var _cG3_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_32$0); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cG3_)} + function _cEU_(param) + {var _cG0_=caml_call2(Runtime_ocaml_Runtime[86],residence,_g__); + return caml_call2(Runtime_ocaml_Runtime[29],_g$_,_cG0_)} + var + _cEV_= + [0, + function(param) + {function _cEW_(param){throw Runtime_ocaml_Runtime[2]} + function _cEX_(param){return 0} + function _cEY_(param) + {function _cGO_(param) + {var + _cGX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$12), + _cGY_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cGY_,_cGX_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$47); + var _cGZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3068); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cGZ_)} + function _cGP_(param) + {var + _cGQ_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), + _cGR_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cGQ_), + _cGS_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cGT_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cGS_), + _cGU_=caml_call2(Runtime_ocaml_Runtime[83],_cGT_,_cGR_), + _cGV_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ha_), + _cGW_=caml_call2(Runtime_ocaml_Runtime[83],_cGV_,_cGU_); + return caml_call2(Runtime_ocaml_Runtime[29],_hb_,_cGW_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hc_,[0],_cGP_,_cGO_)} + function _cEZ_(param) + {function _cGC_(param) + {var + _cGL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$13), + _cGM_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cGM_,_cGL_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$48); + var _cGN_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2936); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cGN_)} + function _cGD_(param) + {var + _cGE_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), + _cGF_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cGE_), + _cGG_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _cGH_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cGG_), + _cGI_=caml_call2(Runtime_ocaml_Runtime[83],_cGH_,_cGF_), + _cGJ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hd_), + _cGK_=caml_call2(Runtime_ocaml_Runtime[83],_cGJ_,_cGI_); + return caml_call2(Runtime_ocaml_Runtime[29],_he_,_cGK_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hf_,[0],_cGD_,_cGC_)} + function _cE0_(param) + {function _cGq_(param) + {var + _cGz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$14), + _cGA_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cGA_,_cGz_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$49); + var _cGB_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2804); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cGB_)} + function _cGr_(param) + {var + _cGs_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), + _cGt_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cGs_), + _cGu_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), + _cGv_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cGu_), + _cGw_=caml_call2(Runtime_ocaml_Runtime[83],_cGv_,_cGt_), + _cGx_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hg_), + _cGy_=caml_call2(Runtime_ocaml_Runtime[83],_cGx_,_cGw_); + return caml_call2(Runtime_ocaml_Runtime[29],_hh_,_cGy_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hi_,[0],_cGr_,_cGq_)} + function _cE1_(param) + {function _cGe_(param) + {var + _cGn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$15), + _cGo_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cGo_,_cGn_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$50); + var _cGp_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2672); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cGp_)} + function _cGf_(param) + {var + _cGg_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), + _cGh_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cGg_), + _cGi_=caml_call3(Runtime_ocaml_Runtime[57],2017,1,1), + _cGj_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cGi_), + _cGk_=caml_call2(Runtime_ocaml_Runtime[83],_cGj_,_cGh_), + _cGl_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hj_), + _cGm_=caml_call2(Runtime_ocaml_Runtime[83],_cGl_,_cGk_); + return caml_call2(Runtime_ocaml_Runtime[29],_hk_,_cGm_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hl_,[0],_cGf_,_cGe_)} + function _cE2_(param) + {function _cF4_(param) + {var + _cGb_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$16), + _cGc_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cGc_,_cGb_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$51); + var _cGd_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2613); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cGd_)} + function _cF5_(param) + {var + _cF6_=caml_call3(Runtime_ocaml_Runtime[57],2016,12,31), + _cF7_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cF6_), + _cF8_=caml_call3(Runtime_ocaml_Runtime[57],2016,1,1), + _cF9_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cF8_), + _cF__=caml_call2(Runtime_ocaml_Runtime[83],_cF9_,_cF7_), + _cF$_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hm_), + _cGa_=caml_call2(Runtime_ocaml_Runtime[83],_cF$_,_cF__); + return caml_call2(Runtime_ocaml_Runtime[29],_hn_,_cGa_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ho_,[0],_cF5_,_cF4_)} + function _cE3_(param) + {function _cFS_(param) + {var + _cF1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$17), + _cF2_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cF2_,_cF1_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$52); + var _cF3_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2555); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cF3_)} + function _cFT_(param) + {var + _cFU_=caml_call3(Runtime_ocaml_Runtime[57],2015,12,31), + _cFV_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cFU_), + _cFW_=caml_call3(Runtime_ocaml_Runtime[57],2015,1,1), + _cFX_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cFW_), + _cFY_=caml_call2(Runtime_ocaml_Runtime[83],_cFX_,_cFV_), + _cFZ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hp_), + _cF0_=caml_call2(Runtime_ocaml_Runtime[83],_cFZ_,_cFY_); + return caml_call2(Runtime_ocaml_Runtime[29],_hq_,_cF0_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hr_,[0],_cFT_,_cFS_)} + function _cE4_(param) + {function _cFG_(param) + {var + _cFP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$18), + _cFQ_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cFQ_,_cFP_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$53); + var _cFR_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2496); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cFR_)} + function _cFH_(param) + {var + _cFI_=caml_call3(Runtime_ocaml_Runtime[57],2014,12,31), + _cFJ_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cFI_), + _cFK_=caml_call3(Runtime_ocaml_Runtime[57],2014,1,1), + _cFL_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cFK_), + _cFM_=caml_call2(Runtime_ocaml_Runtime[83],_cFL_,_cFJ_), + _cFN_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hs_), + _cFO_=caml_call2(Runtime_ocaml_Runtime[83],_cFN_,_cFM_); + return caml_call2(Runtime_ocaml_Runtime[29],_ht_,_cFO_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hu_,[0],_cFH_,_cFG_)} + function _cE5_(param) + {function _cFu_(param) + {var + _cFD_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$19), + _cFE_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cFE_,_cFD_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$54); + var _cFF_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2437); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cFF_)} + function _cFv_(param) + {var + _cFw_=caml_call3(Runtime_ocaml_Runtime[57],2013,12,31), + _cFx_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cFw_), + _cFy_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), + _cFz_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cFy_), + _cFA_=caml_call2(Runtime_ocaml_Runtime[83],_cFz_,_cFx_), + _cFB_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hv_), + _cFC_=caml_call2(Runtime_ocaml_Runtime[83],_cFB_,_cFA_); + return caml_call2(Runtime_ocaml_Runtime[29],_hw_,_cFC_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hx_,[0],_cFv_,_cFu_)} + function _cE6_(param) + {function _cFi_(param) + {var + _cFr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$20), + _cFs_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cFs_,_cFr_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$55); + var _cFt_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2379); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cFt_)} + function _cFj_(param) + {var + _cFk_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), + _cFl_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cFk_), + _cFm_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), + _cFn_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cFm_), + _cFo_=caml_call2(Runtime_ocaml_Runtime[83],_cFn_,_cFl_), + _cFp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hy_), + _cFq_=caml_call2(Runtime_ocaml_Runtime[83],_cFp_,_cFo_); + return caml_call2(Runtime_ocaml_Runtime[29],_hz_,_cFq_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hA_,[0],_cFj_,_cFi_)} + var + _cE7_= + [0, + function(param) + {function _cE8_(param) + {var + _cFf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$21), + _cFg_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121],_cFg_,_cFf_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$56); + var _cFh_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_232); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cFh_)} + function _cE9_(param) + {var + _cE__=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), + _cE$_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cE__), + _cFa_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), + _cFb_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cFa_), + _cFc_=caml_call2(Runtime_ocaml_Runtime[83],_cFb_,_cE$_), + _cFd_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hB_), + _cFe_=caml_call2(Runtime_ocaml_Runtime[83],_cFd_,_cFc_); + return caml_call2(Runtime_ocaml_Runtime[29],_hC_,_cFe_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hD_,[0],_cE9_,_cE8_)}, + _cE6_, + _cE5_, + _cE4_, + _cE3_, + _cE2_, + _cE1_, + _cE0_, + _cEZ_, + _cEY_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_hE_,_cE7_,_cEX_,_cEW_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_hF_,_cEV_,_cEU_,_cET_)}], + _cBm_=caml_call4(Runtime_ocaml_Runtime[63],_hG_,_cBl_,_cBk_,_cBj_)} + catch(_cES_) + {_cES_ = caml_wrap_exception(_cES_); + if(_cES_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_g2_]; + throw _cES_} + var + montant_initial_base_deuxieme_= + caml_call3 + (Runtime_ocaml_Runtime[28],_hH_,Runtime_ocaml_Runtime[13],_cBm_); + try + {var + _cBn_= + function(param) + {var _cER_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$57); + return caml_call2 + (Runtime_ocaml_Runtime[86],nombre_total_enfants,_cER_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0$58) + :caml_call2 + (Runtime_ocaml_Runtime[107], + nombre_moyen_enfants, + nombre_total_enfants)}, + _cBo_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_hJ_,1)}, + _cBp_=caml_call4(Runtime_ocaml_Runtime[63],_hK_,[0],_cBo_,_cBn_)} + catch(_cEQ_) + {_cEQ_ = caml_wrap_exception(_cEQ_); + if(_cEQ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_hI_]; + throw _cEQ_} + var + rapport_enfants_total_moyen= + caml_call3 + (Runtime_ocaml_Runtime[28],_hL_,Runtime_ocaml_Runtime[15],_cBp_); + function _cBq_(enfant) + {try + {var + _cD__=function(param){throw Runtime_ocaml_Runtime[2]}, + _cD$_=function(param){return 0}, + _cEa_= + function(param) + {function _cEJ_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$59)} + function _cEK_(param) + {var + _cEL_= + caml_call3 + (Runtime_ocaml_Runtime[28],_hN_,embed_enfant,enfant), + _cEM_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_hO_,droit_ouvert_majoration), + _cEL_), + _cEN_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _hP_, + Runtime_ocaml_Runtime[12], + _cEM_), + _cEO_=caml_call2(Runtime_ocaml_Runtime[27],_hQ_,_cEN_), + _cEP_=caml_call1(Runtime_ocaml_Runtime[67],_cEO_); + return caml_call2(Runtime_ocaml_Runtime[29],_hR_,_cEP_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hS_,[0],_cEK_,_cEJ_)}, + _cEb_= + function(param) + {function _cEA_(param) + {var _cEI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_04); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cEI_)} + function _cEB_(param) + {var + _cEC_= + caml_call3 + (Runtime_ocaml_Runtime[28],_hT_,embed_enfant,enfant), + _cED_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_hU_,droit_ouvert_majoration), + _cEC_), + _cEE_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _hV_, + Runtime_ocaml_Runtime[12], + _cED_), + _cEF_=caml_call2(Runtime_ocaml_Runtime[27],_hW_,_cEE_), + _cEG_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3), + _cEH_=caml_call2(Runtime_ocaml_Runtime[83],_cEG_,_cEF_); + return caml_call2(Runtime_ocaml_Runtime[29],_hX_,_cEH_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_hY_,[0],_cEB_,_cEA_)}, + _cEc_= + function(param) + {function _cEp_(param) + {var _cEz_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_08$0); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cEz_)} + function _cEq_(param) + {var + _cEr_= + caml_call3 + (Runtime_ocaml_Runtime[28],_hZ_,embed_enfant,enfant), + _cEs_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_h0_,droit_ouvert_majoration), + _cEr_), + _cEt_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _h1_, + Runtime_ocaml_Runtime[12], + _cEs_), + _cEu_=caml_call2(Runtime_ocaml_Runtime[27],_h2_,_cEt_), + _cEv_= + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _cEw_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _cEx_=caml_call2(Runtime_ocaml_Runtime[83],_cEw_,_cEv_), + _cEy_=caml_call2(Runtime_ocaml_Runtime[83],_cEx_,_cEu_); + return caml_call2(Runtime_ocaml_Runtime[29],_h3_,_cEy_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_h4_,[0],_cEq_,_cEp_)}, + _cEd_= + [0, + function(param) + {function _cEg_(param) + {var _cEo_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_16$1); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cEo_)} + function _cEh_(param) + {var + _cEi_= + caml_call3 + (Runtime_ocaml_Runtime[28],_h5_,embed_enfant,enfant), + _cEj_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_h6_,droit_ouvert_majoration), + _cEi_), + _cEk_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _h7_, + Runtime_ocaml_Runtime[12], + _cEj_), + _cEl_=caml_call2(Runtime_ocaml_Runtime[27],_h8_,_cEk_), + _cEm_= + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3), + _cEn_=caml_call2(Runtime_ocaml_Runtime[83],_cEm_,_cEl_); + return caml_call2(Runtime_ocaml_Runtime[29],_h9_,_cEn_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_h__,[0],_cEh_,_cEg_)}, + _cEc_, + _cEb_, + _cEa_], + _cEe_=caml_call4(Runtime_ocaml_Runtime[63],_h$_,_cEd_,_cD$_,_cD__); + return _cEe_} + catch(_cEf_) + {_cEf_ = caml_wrap_exception(_cEf_); + if(_cEf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_hM_]; + throw _cEf_}} + var + montant_initial_metropole_majo= + caml_call3 + (Runtime_ocaml_Runtime[28],_ia_,Runtime_ocaml_Runtime[10],_cBq_); + try + {var + _cBr_= + function(param) + {function _cD3_(enfant) + {var + _cD7_= + caml_call3(Runtime_ocaml_Runtime[28],_ic_,embed_enfant,enfant), + _cD8_= caml_call1 (caml_call2 - (Runtime_ocaml_Runtime[26], _iA_, droit_ouvert_majoration), - _pA_), - _pC_ = + (Runtime_ocaml_Runtime[26],_id_,droit_ouvert_forfaitaire), + _cD7_), + _cD9_= caml_call3 (Runtime_ocaml_Runtime[28], - _iB_, + _ie_, Runtime_ocaml_Runtime[12], - _pB_), - _pD_ = caml_call2(Runtime_ocaml_Runtime[27], _iC_, _pC_), - _pE_ = caml_call2(Runtime_ocaml_Runtime[83], _pD_, _pz_); - return caml_call2(Runtime_ocaml_Runtime[29], _iD_, _pE_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iE_, [0], _pr_, _pq_); - } - var - _o7_ = - [0, - function(param){ - function _o8_(param){ - var _pp_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0369); + _cD8_); + return caml_call2(Runtime_ocaml_Runtime[27],_if_,_cD9_)} + var + _cD4_= + caml_call2(Runtime_ocaml_Runtime[90],_cD3_,enfants_a_charge), + _cD5_=caml_call1(Runtime_ocaml_Runtime[68],_cD4_), + _cD6_=caml_call1(Runtime_ocaml_Runtime[69],_cD5_); + return caml_call2 + (Runtime_ocaml_Runtime[104], + montant_verse_forfaitaire_par_, + _cD6_)}, + _cBs_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ig_,1)}, + _cBt_=caml_call4(Runtime_ocaml_Runtime[63],_ih_,[0],_cBs_,_cBr_)} + catch(_cD2_) + {_cD2_ = caml_wrap_exception(_cD2_); + if(_cD2_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ib_]; + throw _cD2_} + var + montant_verse_forfaitaire= + caml_call3 + (Runtime_ocaml_Runtime[28],_ii_,Runtime_ocaml_Runtime[13],_cBt_); + try + {var + _cBu_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[93], + montant_initial_base_deuxieme_, + montant_initial_base_troisieme$0)}, + _cBv_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ik_,1)}, + _cBw_= + [0, + function(param) + {function _cDN_(param){throw Runtime_ocaml_Runtime[2]} + function _cDO_(param){return 0} + function _cDP_(param) + {function _cDX_(param) + {var + _cD0_= + caml_call2 + (Runtime_ocaml_Runtime[93], + montant_initial_base_premier_e, + montant_initial_base_deuxieme_), + _cD1_= + caml_call2 + (Runtime_ocaml_Runtime[93], + _cD0_, + montant_initial_base_troisieme); return caml_call2 - (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _pp_); - } - function _o9_(param){ - var - _o__ = caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0), - _o$_ = - caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _o__), - _pa_ = - caml_call2(Runtime_ocaml_Runtime[125], _o$_, date_courante), - _pb_ = caml_call3(Runtime_ocaml_Runtime[60], 11, 0, 0), - _pc_ = - caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _pb_), - _pd_ = - caml_call2(Runtime_ocaml_Runtime[120], _pc_, date_courante), - _pe_ = caml_call2(Runtime_ocaml_Runtime[83], _pd_, _pa_), - _pf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$24), - _pg_ = - caml_call1 - (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), - _ph_ = caml_call2(Runtime_ocaml_Runtime[86], _pg_, _pf_), - _pi_ = caml_call2(Runtime_ocaml_Runtime[83], _ph_, _pe_), - _pj_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _pi_), - _pk_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _iF_, embed_enfant, enfant), - _pl_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _iG_, droit_ouvert_majoration), - _pk_), - _pm_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _iH_, - Runtime_ocaml_Runtime[12], - _pl_), - _pn_ = caml_call2(Runtime_ocaml_Runtime[27], _iI_, _pm_), - _po_ = caml_call2(Runtime_ocaml_Runtime[83], _pn_, _pj_); - return caml_call2(Runtime_ocaml_Runtime[29], _iJ_, _po_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iK_, [0], _o9_, _o8_); - }, - _o6_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _iL_, _o7_, _o5_, _o4_); - }], - _o2_ = caml_call4(Runtime_ocaml_Runtime[63], _iM_, _o1_, _o0_, _oZ_); - return _o2_; - } - catch(_o3_){ - var _oY_ = caml_wrap_exception(_o3_); - if(_oY_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _it_], 1); - throw caml_maybe_attach_backtrace(_oY_, 0); - } - } - var - montant_initial_majoration = - caml_call3 - (Runtime_ocaml_Runtime[28], _iN_, Runtime_ocaml_Runtime[10], _nl_); - try{ - var - _nn_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$60); - }, - _no_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _iP_, 1); - }, - _np_ = - [0, - function(param){ - function _oq_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _or_(param){return 0;} - function _os_(param){ - function _oJ_(param){ - var - _oR_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$5), - _oS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$25), - _oT_ = caml_call2(Runtime_ocaml_Runtime[107], _oS_, _oR_), - _oU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$6), - _oV_ = - caml_call2 - (Runtime_ocaml_Runtime[104], montant_verse_forfaitaire, _oU_), - _oW_ = - caml_call2(Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _oV_), - _oX_ = - caml_call2(Runtime_ocaml_Runtime[98], _oW_, ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104], _oX_, _oT_); - } - function _oK_(param){ - var - _oL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$7), - _oM_ = - caml_call2 - (Runtime_ocaml_Runtime[104], montant_verse_forfaitaire, _oL_), - _oN_ = - caml_call2(Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _oM_), - _oO_ = - caml_call2(Runtime_ocaml_Runtime[118], ressources_menage, _oN_), - _oP_ = - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3), - _oQ_ = caml_call2(Runtime_ocaml_Runtime[83], _oP_, _oO_); - return caml_call2(Runtime_ocaml_Runtime[29], _iQ_, _oQ_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _iR_, [0], _oK_, _oJ_); - } - var - _ot_ = - [0, - function(param){ - function _ou_(param){ - var - _oC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$8), - _oD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$26), - _oE_ = caml_call2(Runtime_ocaml_Runtime[107], _oD_, _oC_), - _oF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$9), - _oG_ = + (Runtime_ocaml_Runtime[93], + _cD1_, + montant_initial_base_quatrieme)} + function _cDY_(param) + {var + _cDZ_= + caml_call2(Runtime_ocaml_Runtime[86],residence,_il_); + return caml_call2(Runtime_ocaml_Runtime[29],_im_,_cDZ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_in_,[0],_cDY_,_cDX_)} + var + _cDQ_= + [0, + function(param) + {function _cDR_(param){return montant_initial_base_premier_e} + function _cDS_(param) + {var + _cDT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$22), + _cDU_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cDV_=caml_call2(Runtime_ocaml_Runtime[86],_cDU_,_cDT_), + _cDW_= + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _cDV_); + return caml_call2(Runtime_ocaml_Runtime[29],_io_,_cDW_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ip_,[0],_cDS_,_cDR_)}, + _cDP_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_iq_,_cDQ_,_cDO_,_cDN_)}], + _cBx_=caml_call4(Runtime_ocaml_Runtime[63],_ir_,_cBw_,_cBv_,_cBu_)} + catch(_cDM_) + {_cDM_ = caml_wrap_exception(_cDM_); + if(_cDM_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ij_]; + throw _cDM_} + var + montant_initial_base= + caml_call3 + (Runtime_ocaml_Runtime[28],_is_,Runtime_ocaml_Runtime[13],_cBx_); + function _cBy_(enfant) + {try + {var + _cC2_= + function(param) + {var + _cDJ_= + caml_call3(Runtime_ocaml_Runtime[28],_iu_,embed_enfant,enfant), + _cDK_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _iv_, + montant_initial_metropole_majo), + _cDJ_), + _cDL_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _iw_, + Runtime_ocaml_Runtime[13], + _cDK_); + return caml_call2(Runtime_ocaml_Runtime[27],_ix_,_cDL_)}, + _cC3_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_iy_,1)}, + _cC4_= + [0, + function(param) + {function _cC7_(param){throw Runtime_ocaml_Runtime[2]} + function _cC8_(param){return 0} + function _cC9_(param) + {function _cDt_(param) + {var _cDI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0567); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cDI_)} + function _cDu_(param) + {var + _cDv_=caml_call3(Runtime_ocaml_Runtime[60],16,0,0), + _cDw_= + caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cDv_), + _cDx_= + caml_call2(Runtime_ocaml_Runtime[120],_cDw_,date_courante), + _cDy_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$23), + _cDz_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cDA_=caml_call2(Runtime_ocaml_Runtime[86],_cDz_,_cDy_), + _cDB_=caml_call2(Runtime_ocaml_Runtime[83],_cDA_,_cDx_), + _cDC_= + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _cDB_), + _cDD_= + caml_call3 + (Runtime_ocaml_Runtime[28],_iz_,embed_enfant,enfant), + _cDE_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_iA_,droit_ouvert_majoration), + _cDD_), + _cDF_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _iB_, + Runtime_ocaml_Runtime[12], + _cDE_), + _cDG_=caml_call2(Runtime_ocaml_Runtime[27],_iC_,_cDF_), + _cDH_=caml_call2(Runtime_ocaml_Runtime[83],_cDG_,_cDC_); + return caml_call2(Runtime_ocaml_Runtime[29],_iD_,_cDH_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_iE_,[0],_cDu_,_cDt_)} + var + _cC__= + [0, + function(param) + {function _cC$_(param) + {var _cDs_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0369); + return caml_call2 + (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cDs_)} + function _cDa_(param) + {var + _cDb_=caml_call3(Runtime_ocaml_Runtime[60],16,0,0), + _cDc_= + caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cDb_), + _cDd_= + caml_call2(Runtime_ocaml_Runtime[125],_cDc_,date_courante), + _cDe_=caml_call3(Runtime_ocaml_Runtime[60],11,0,0), + _cDf_= + caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cDe_), + _cDg_= + caml_call2(Runtime_ocaml_Runtime[120],_cDf_,date_courante), + _cDh_=caml_call2(Runtime_ocaml_Runtime[83],_cDg_,_cDd_), + _cDi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$24), + _cDj_= + caml_call1 + (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), + _cDk_=caml_call2(Runtime_ocaml_Runtime[86],_cDj_,_cDi_), + _cDl_=caml_call2(Runtime_ocaml_Runtime[83],_cDk_,_cDh_), + _cDm_= + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _cDl_), + _cDn_= + caml_call3 + (Runtime_ocaml_Runtime[28],_iF_,embed_enfant,enfant), + _cDo_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_iG_,droit_ouvert_majoration), + _cDn_), + _cDp_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _iH_, + Runtime_ocaml_Runtime[12], + _cDo_), + _cDq_=caml_call2(Runtime_ocaml_Runtime[27],_iI_,_cDp_), + _cDr_=caml_call2(Runtime_ocaml_Runtime[83],_cDq_,_cDm_); + return caml_call2(Runtime_ocaml_Runtime[29],_iJ_,_cDr_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_iK_,[0],_cDa_,_cC$_)}, + _cC9_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_iL_,_cC__,_cC8_,_cC7_)}], + _cC5_=caml_call4(Runtime_ocaml_Runtime[63],_iM_,_cC4_,_cC3_,_cC2_); + return _cC5_} + catch(_cC6_) + {_cC6_ = caml_wrap_exception(_cC6_); + if(_cC6_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_it_]; + throw _cC6_}} + var + montant_initial_majoration= + caml_call3 + (Runtime_ocaml_Runtime[28],_iN_,Runtime_ocaml_Runtime[10],_cBy_); + try + {var + _cBz_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$60)}, + _cBA_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_iP_,1)}, + _cBB_= + [0, + function(param) + {function _cCu_(param){throw Runtime_ocaml_Runtime[2]} + function _cCv_(param){return 0} + function _cCw_(param) + {function _cCN_(param) + {var + _cCV_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$5), + _cCW_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$25), + _cCX_=caml_call2(Runtime_ocaml_Runtime[107],_cCW_,_cCV_), + _cCY_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$6), + _cCZ_= caml_call2 - (Runtime_ocaml_Runtime[104], - montant_verse_forfaitaire, - _oF_), - _oH_ = + (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_cCY_), + _cC0_= caml_call2 - (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _oG_), - _oI_ = + (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cCZ_), + _cC1_= caml_call2 - (Runtime_ocaml_Runtime[98], _oH_, ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104], _oI_, _oE_); - } - function _ov_(param){ - var - _ow_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$10), - _ox_ = + (Runtime_ocaml_Runtime[98],_cC0_,ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104],_cC1_,_cCX_)} + function _cCO_(param) + {var + _cCP_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$7), + _cCQ_= caml_call2 - (Runtime_ocaml_Runtime[104], - montant_verse_forfaitaire, - _ow_), - _oy_ = + (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_cCP_), + _cCR_= caml_call2 - (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _ox_), - _oz_ = + (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cCQ_), + _cCS_= caml_call2 - (Runtime_ocaml_Runtime[118], ressources_menage, _oy_), - _oA_ = + (Runtime_ocaml_Runtime[118],ressources_menage,_cCR_), + _cCT_= caml_call2 (Runtime_ocaml_Runtime[123], ressources_menage, - plafond_i_d521_3), - _oB_ = caml_call2(Runtime_ocaml_Runtime[83], _oA_, _oz_); - return caml_call2(Runtime_ocaml_Runtime[29], _iS_, _oB_); - } + plafond_i_i_d521_3), + _cCU_=caml_call2(Runtime_ocaml_Runtime[83],_cCT_,_cCS_); + return caml_call2(Runtime_ocaml_Runtime[29],_iQ_,_cCU_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _iT_, [0], _ov_, _ou_); - }, - _os_]; - return caml_call4(Runtime_ocaml_Runtime[63], _iU_, _ot_, _or_, _oq_); - }], - _nq_ = caml_call4(Runtime_ocaml_Runtime[63], _iV_, _np_, _no_, _nn_); - } - catch(_op_){ - var _nm_ = caml_wrap_exception(_op_); - if(_nm_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _iO_], 1); - throw caml_maybe_attach_backtrace(_nm_, 0); - } - var - montant_verse_complement_pour_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _iW_, Runtime_ocaml_Runtime[13], _nq_); - try{ - var - _ns_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[104], - montant_initial_base, - rapport_enfants_total_moyen); - }, - _nt_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _iY_, 1); - }, - _nu_ = caml_call4(Runtime_ocaml_Runtime[63], _iZ_, [0], _nt_, _ns_); - } - catch(_oo_){ - var _nr_ = caml_wrap_exception(_oo_); - if(_nr_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _iX_], 1); - throw caml_maybe_attach_backtrace(_nr_, 0); - } - var - montant_avec_garde_alternee_ba = - caml_call3 - (Runtime_ocaml_Runtime[28], _i0_, Runtime_ocaml_Runtime[13], _nu_); - function _nv_(enfant){ - try{ + (Runtime_ocaml_Runtime[63],_iR_,[0],_cCO_,_cCN_)} + var + _cCx_= + [0, + function(param) + {function _cCy_(param) + {var + _cCG_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$8), + _cCH_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$26), + _cCI_=caml_call2(Runtime_ocaml_Runtime[107],_cCH_,_cCG_), + _cCJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$9), + _cCK_= + caml_call2 + (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_cCJ_), + _cCL_= + caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_cCK_), + _cCM_= + caml_call2 + (Runtime_ocaml_Runtime[98],_cCL_,ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104],_cCM_,_cCI_)} + function _cCz_(param) + {var + _cCA_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$10), + _cCB_= + caml_call2 + (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_cCA_), + _cCC_= + caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_cCB_), + _cCD_= + caml_call2 + (Runtime_ocaml_Runtime[118],ressources_menage,_cCC_), + _cCE_= + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _cCF_=caml_call2(Runtime_ocaml_Runtime[83],_cCE_,_cCD_); + return caml_call2(Runtime_ocaml_Runtime[29],_iS_,_cCF_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_iT_,[0],_cCz_,_cCy_)}, + _cCw_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_iU_,_cCx_,_cCv_,_cCu_)}], + _cBC_=caml_call4(Runtime_ocaml_Runtime[63],_iV_,_cBB_,_cBA_,_cBz_)} + catch(_cCt_) + {_cCt_ = caml_wrap_exception(_cCt_); + if(_cCt_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_iO_]; + throw _cCt_} var - _oc_ = - function(param){ - var - _og_ = - caml_call3(Runtime_ocaml_Runtime[28], _i2_, embed_enfant, enfant), - _oh_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _i3_, prise_en_compte), - _og_), - _oi_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _i4_, embed_prise_en_compte, _oh_); - switch(caml_call2(Runtime_ocaml_Runtime[27], _i5_, _oi_)[0]){ - case 0: - var _oj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$27); - break; - case 1: - var _oj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5$0); - break; - default: - var _oj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$61); - } - var - _ok_ = - caml_call3(Runtime_ocaml_Runtime[28], _i6_, embed_enfant, enfant), - _ol_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _i7_, montant_initial_majoration), - _ok_), - _om_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _i8_, - Runtime_ocaml_Runtime[13], - _ol_), - _on_ = caml_call2(Runtime_ocaml_Runtime[27], _i9_, _om_); - return caml_call2(Runtime_ocaml_Runtime[104], _on_, _oj_); - }, - _od_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _i__, 1); - }, - _oe_ = caml_call4(Runtime_ocaml_Runtime[63], _i$_, [0], _od_, _oc_); - return _oe_; - } - catch(_of_){ - var _ob_ = caml_wrap_exception(_of_); - if(_ob_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _i1_], 1); - throw caml_maybe_attach_backtrace(_ob_, 0); - } - } - var - montant_avec_garde_alternee_ma = - caml_call3 - (Runtime_ocaml_Runtime[28], _ja_, Runtime_ocaml_Runtime[10], _nv_); - try{ - var - _nx_ = - function(param){ - return droit_ouvert_base - ? montant_avec_garde_alternee_ba - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$62); - }, - _ny_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jc_, 1); - }, - _nz_ = caml_call4(Runtime_ocaml_Runtime[63], _jd_, [0], _ny_, _nx_); - } - catch(_oa_){ - var _nw_ = caml_wrap_exception(_oa_); - if(_nw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jb_], 1); - throw caml_maybe_attach_backtrace(_nw_, 0); - } - var - montant_verse_base = - caml_call3 - (Runtime_ocaml_Runtime[28], _je_, Runtime_ocaml_Runtime[13], _nz_); - try{ - var - _nB_ = - function(param){ - if(! droit_ouvert_base) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$64); - function _n5_(enfant){ - var - _n9_ = - caml_call3(Runtime_ocaml_Runtime[28], _jg_, embed_enfant, enfant), - _n__ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _jh_, - montant_avec_garde_alternee_ma), - _n9_), - _n$_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _ji_, - Runtime_ocaml_Runtime[13], - _n__); - return caml_call2(Runtime_ocaml_Runtime[27], _jj_, _n$_); - } - var - _n6_ = caml_call2(Runtime_ocaml_Runtime[87], _n5_, enfants_a_charge), - _n7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$63); - function _n8_(sum1, sum2){ - return caml_call2(Runtime_ocaml_Runtime[93], sum1, sum2); - } - return caml_call3(Runtime_ocaml_Runtime[88], _n8_, _n7_, _n6_); - }, - _nC_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jk_, 1); - }, - _nD_ = caml_call4(Runtime_ocaml_Runtime[63], _jl_, [0], _nC_, _nB_); - } - catch(_n4_){ - var _nA_ = caml_wrap_exception(_n4_); - if(_nA_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jf_], 1); - throw caml_maybe_attach_backtrace(_nA_, 0); - } - var - montant_verse_majoration = - caml_call3 - (Runtime_ocaml_Runtime[28], _jm_, Runtime_ocaml_Runtime[13], _nD_); - try{ - var - _nF_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[93], - montant_verse_base, - montant_verse_majoration); - }, - _nG_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jo_, 1); - }, - _nH_ = caml_call4(Runtime_ocaml_Runtime[63], _jp_, [0], _nG_, _nF_); - } - catch(_n3_){ - var _nE_ = caml_wrap_exception(_n3_); - if(_nE_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jn_], 1); - throw caml_maybe_attach_backtrace(_nE_, 0); - } - var - montant_base_complement_pour_b = - caml_call3 - (Runtime_ocaml_Runtime[28], _jq_, Runtime_ocaml_Runtime[13], _nH_); - try{ - var - _nJ_ = - function(param){ - if(! droit_ouvert_complement) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$65); - var - _n0_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _js_, - Runtime_ocaml_Runtime[13], - montant_base_complement_pour_b), - _n1_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _jt_, complement_degressif), - _n0_), - _n2_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _ju_, - Runtime_ocaml_Runtime[13], - _n1_); - return caml_call2(Runtime_ocaml_Runtime[27], _jv_, _n2_); - }, - _nK_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jw_, 1); - }, - _nL_ = caml_call4(Runtime_ocaml_Runtime[63], _jx_, [0], _nK_, _nJ_); - } - catch(_nZ_){ - var _nI_ = caml_wrap_exception(_nZ_); - if(_nI_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jr_], 1); - throw caml_maybe_attach_backtrace(_nI_, 0); - } - var - montant_verse_complement_pour_$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _jy_, Runtime_ocaml_Runtime[13], _nL_); - try{ - var - _nN_ = - function(param){ - if(! droit_ouvert_base) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$66); - var - _nW_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - montant_verse_base, - montant_verse_majoration), - _nX_ = - caml_call2 - (Runtime_ocaml_Runtime[93], _nW_, montant_verse_forfaitaire), - _nY_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - _nX_, - montant_verse_complement_pour_$0); - return caml_call2 - (Runtime_ocaml_Runtime[93], - _nY_, - montant_verse_complement_pour_); - }, - _nO_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jA_, 1); - }, - _nP_ = caml_call4(Runtime_ocaml_Runtime[63], _jB_, [0], _nO_, _nN_); - } - catch(_nV_){ - var _nM_ = caml_wrap_exception(_nV_); - if(_nM_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jz_], 1); - throw caml_maybe_attach_backtrace(_nM_, 0); - } - var - montant_verse = - caml_call3 - (Runtime_ocaml_Runtime[28], _jC_, Runtime_ocaml_Runtime[13], _nP_); - try{ - var - _nR_ = - caml_call1(Runtime_ocaml_Runtime[67], personne_charge_effective_perm), - _nS_ = - caml_call2 - (Runtime_ocaml_Runtime[83], _nR_, personne_charge_effective_perm$0), - _nT_ = - caml_call2 - (Runtime_ocaml_Runtime[84], personne_charge_effective_perm, _nS_); - } - catch(_nU_){ - var _nQ_ = caml_wrap_exception(_nU_); - if(_nQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jD_], 1); - throw caml_maybe_attach_backtrace(_nQ_, 0); - } - if(_nT_) return [0, montant_verse]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _jE_], 1); - } - function interface_allocations_familial(interface_allocations_familial){ - var - i_date_courante = interface_allocations_familial[1], - i_enfants = interface_allocations_familial[2], - i_ressources_menage = interface_allocations_familial[3], - i_residence = interface_allocations_familial[4], - i_personne_charge_effective_pe = interface_allocations_familial[5], - i_personne_charge_effective_pe$0 = interface_allocations_familial[6], - i_avait_enfant_a_charge_avant_ = interface_allocations_familial[7]; - try{ - var - _kp_ = - function(param){ - function _lh_(enfant){ - var - _li_ = enfant[6], - _lj_ = enfant[5], - _lk_ = enfant[4], - _ll_ = enfant[3], - _lm_ = enfant[2], - _ln_ = caml_call3(Runtime_ocaml_Runtime[60], 3, 0, 0), - _lo_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[3], _ln_); - if(caml_call2(Runtime_ocaml_Runtime[130], _lo_, i_date_courante)) - var _lp_ = _jG_; - else - var - _lq_ = caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0), - _lr_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[3], _lq_), - _lp_ = - caml_call2(Runtime_ocaml_Runtime[130], _lr_, i_date_courante) - ? _jH_ - : _jI_; - return [0, enfant[1], _lp_, _lm_, _ll_, _lk_, _lj_, _li_]; - } - return caml_call2(Runtime_ocaml_Runtime[87], _lh_, i_enfants); - }, - _kq_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jJ_, 1); - }, - _kr_ = caml_call4(Runtime_ocaml_Runtime[63], _jK_, [0], _kq_, _kp_); - } - catch(_lg_){ - var _ko_ = caml_wrap_exception(_lg_); - if(_ko_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jF_], 1); - throw caml_maybe_attach_backtrace(_ko_, 0); - } - var - _ks_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), - enfants_a_charge = - caml_call3(Runtime_ocaml_Runtime[28], _jL_, _ks_, _kr_); - try{ - var - _ku_ = function(param){return 0;}, - _kv_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jN_, 1); - }, - _kw_ = - [0, - function(param){ - function _le_(param){return 1;} - function _lf_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], - _jO_, - i_personne_charge_effective_pe); - } - return caml_call4(Runtime_ocaml_Runtime[63], _jP_, [0], _lf_, _le_); - }], - _kx_ = caml_call4(Runtime_ocaml_Runtime[63], _jQ_, _kw_, _kv_, _ku_), - allocations_familiales_dot_per = + montant_verse_complement_pour_= caml_call3 - (Runtime_ocaml_Runtime[28], _jR_, Runtime_ocaml_Runtime[12], _kx_); - } - catch(_ld_){ - var _kt_ = caml_wrap_exception(_ld_); - if(_kt_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jM_], 1); - throw caml_maybe_attach_backtrace(_kt_, 0); - } - try{ - var - _kz_ = function(param){return 0;}, - _kA_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jT_, 1); - }, - _kB_ = - [0, - function(param){ - function _lb_(param){return 1;} - function _lc_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], - _jU_, - i_personne_charge_effective_pe$0); - } - return caml_call4(Runtime_ocaml_Runtime[63], _jV_, [0], _lc_, _lb_); - }], - _kC_ = caml_call4(Runtime_ocaml_Runtime[63], _jW_, _kB_, _kA_, _kz_), - allocations_familiales_dot_per$0 = + (Runtime_ocaml_Runtime[28],_iW_,Runtime_ocaml_Runtime[13],_cBC_); + try + {var + _cBD_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[104], + montant_initial_base, + rapport_enfants_total_moyen)}, + _cBE_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_iY_,1)}, + _cBF_=caml_call4(Runtime_ocaml_Runtime[63],_iZ_,[0],_cBE_,_cBD_)} + catch(_cCs_) + {_cCs_ = caml_wrap_exception(_cCs_); + if(_cCs_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_iX_]; + throw _cCs_} + var + montant_avec_garde_alternee_ba= caml_call3 - (Runtime_ocaml_Runtime[28], _jX_, Runtime_ocaml_Runtime[12], _kC_); - } - catch(_la_){ - var _ky_ = caml_wrap_exception(_la_); - if(_ky_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jS_], 1); - throw caml_maybe_attach_backtrace(_ky_, 0); - } - try{ - var - _kE_ = function(param){return i_ressources_menage;}, - _kF_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jZ_, 1); - }, - _kG_ = caml_call4(Runtime_ocaml_Runtime[63], _j0_, [0], _kF_, _kE_), - allocations_familiales_dot_res = + (Runtime_ocaml_Runtime[28],_i0_,Runtime_ocaml_Runtime[13],_cBF_); + function _cBG_(enfant) + {try + {var + _cCg_= + function(param) + {var + _cCk_= + caml_call3(Runtime_ocaml_Runtime[28],_i2_,embed_enfant,enfant), + _cCl_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_i3_,prise_en_compte), + _cCk_), + _cCm_= + caml_call3 + (Runtime_ocaml_Runtime[28],_i4_,embed_prise_en_compte,_cCl_), + match=caml_call2(Runtime_ocaml_Runtime[27],_i5_,_cCm_); + switch(match[0]) + {case 0: + var _cCn_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$27); + break; + case 1: + var _cCn_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$0); + break; + default: + var _cCn_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$61)} + var + _cCo_= + caml_call3(Runtime_ocaml_Runtime[28],_i6_,embed_enfant,enfant), + _cCp_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_i7_,montant_initial_majoration), + _cCo_), + _cCq_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _i8_, + Runtime_ocaml_Runtime[13], + _cCp_), + _cCr_=caml_call2(Runtime_ocaml_Runtime[27],_i9_,_cCq_); + return caml_call2(Runtime_ocaml_Runtime[104],_cCr_,_cCn_)}, + _cCh_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_i__,1)}, + _cCi_=caml_call4(Runtime_ocaml_Runtime[63],_i$_,[0],_cCh_,_cCg_); + return _cCi_} + catch(_cCj_) + {_cCj_ = caml_wrap_exception(_cCj_); + if(_cCj_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_i1_]; + throw _cCj_}} + var + montant_avec_garde_alternee_ma= caml_call3 - (Runtime_ocaml_Runtime[28], _j1_, Runtime_ocaml_Runtime[13], _kG_); - } - catch(_k$_){ - var _kD_ = caml_wrap_exception(_k$_); - if(_kD_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jY_], 1); - throw caml_maybe_attach_backtrace(_kD_, 0); - } - try{ - var - _kI_ = function(param){return i_residence;}, - _kJ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _j3_, 1); - }, - _kK_ = caml_call4(Runtime_ocaml_Runtime[63], _j4_, [0], _kJ_, _kI_), - allocations_familiales_dot_res$0 = - caml_call3(Runtime_ocaml_Runtime[28], _j5_, embed_collectivite, _kK_); - } - catch(_k__){ - var _kH_ = caml_wrap_exception(_k__); - if(_kH_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _j2_], 1); - throw caml_maybe_attach_backtrace(_kH_, 0); - } - try{ - var - _kM_ = function(param){return i_date_courante;}, - _kN_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _j7_, 1); - }, - _kO_ = caml_call4(Runtime_ocaml_Runtime[63], _j8_, [0], _kN_, _kM_), - allocations_familiales_dot_dat = + (Runtime_ocaml_Runtime[28],_ja_,Runtime_ocaml_Runtime[10],_cBG_); + try + {var + _cBH_= + function(param) + {return droit_ouvert_base + ?montant_avec_garde_alternee_ba + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$62)}, + _cBI_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jc_,1)}, + _cBJ_=caml_call4(Runtime_ocaml_Runtime[63],_jd_,[0],_cBI_,_cBH_)} + catch(_cCf_) + {_cCf_ = caml_wrap_exception(_cCf_); + if(_cCf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_jb_]; + throw _cCf_} + var + montant_verse_base= caml_call3 - (Runtime_ocaml_Runtime[28], _j9_, Runtime_ocaml_Runtime[16], _kO_); - } - catch(_k9_){ - var _kL_ = caml_wrap_exception(_k9_); - if(_kL_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _j6_], 1); - throw caml_maybe_attach_backtrace(_kL_, 0); - } - try{ - var - _kQ_ = function(param){return enfants_a_charge;}, - _kR_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _j$_, 1); - }, - _kS_ = caml_call4(Runtime_ocaml_Runtime[63], _ka_, [0], _kR_, _kQ_), - _kT_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), - allocations_familiales_dot_enf = - caml_call3(Runtime_ocaml_Runtime[28], _kb_, _kT_, _kS_); - } - catch(_k8_){ - var _kP_ = caml_wrap_exception(_k8_); - if(_kP_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _j__], 1); - throw caml_maybe_attach_backtrace(_kP_, 0); - } - try{ - var - _kV_ = function(param){return 0;}, - _kW_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _kd_, 1); - }, - _kX_ = - [0, - function(param){ - function _k6_(param){return 1;} - function _k7_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], - _ke_, - i_avait_enfant_a_charge_avant_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _kf_, [0], _k7_, _k6_); - }], - _kY_ = caml_call4(Runtime_ocaml_Runtime[63], _kg_, _kX_, _kW_, _kV_), - allocations_familiales_dot_ava = + (Runtime_ocaml_Runtime[28],_je_,Runtime_ocaml_Runtime[13],_cBJ_); + try + {var + _cBK_= + function(param) + {if(! droit_ouvert_base) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$64); + function _cB__(enfant) + {var + _cCc_= + caml_call3(Runtime_ocaml_Runtime[28],_jg_,embed_enfant,enfant), + _cCd_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _jh_, + montant_avec_garde_alternee_ma), + _cCc_), + _cCe_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _ji_, + Runtime_ocaml_Runtime[13], + _cCd_); + return caml_call2(Runtime_ocaml_Runtime[27],_jj_,_cCe_)} + var + _cB$_= + caml_call2(Runtime_ocaml_Runtime[87],_cB__,enfants_a_charge), + _cCa_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$63); + function _cCb_(sum1,sum2) + {return caml_call2(Runtime_ocaml_Runtime[93],sum1,sum2)} + return caml_call3(Runtime_ocaml_Runtime[88],_cCb_,_cCa_,_cB$_)}, + _cBL_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jk_,1)}, + _cBM_=caml_call4(Runtime_ocaml_Runtime[63],_jl_,[0],_cBL_,_cBK_)} + catch(_cB9_) + {_cB9_ = caml_wrap_exception(_cB9_); + if(_cB9_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_jf_]; + throw _cB9_} + var + montant_verse_majoration= caml_call3 - (Runtime_ocaml_Runtime[28], _kh_, Runtime_ocaml_Runtime[12], _kY_); - } - catch(_k5_){ - var _kU_ = caml_wrap_exception(_k5_); - if(_kU_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kc_], 1); - throw caml_maybe_attach_backtrace(_kU_, 0); - } + (Runtime_ocaml_Runtime[28],_jm_,Runtime_ocaml_Runtime[13],_cBM_); + try + {var + _cBN_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[93], + montant_verse_base, + montant_verse_majoration)}, + _cBO_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jo_,1)}, + _cBP_=caml_call4(Runtime_ocaml_Runtime[63],_jp_,[0],_cBO_,_cBN_)} + catch(_cB8_) + {_cB8_ = caml_wrap_exception(_cB8_); + if(_cB8_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_jn_]; + throw _cB8_} + var + montant_base_complement_pour_b= + caml_call3 + (Runtime_ocaml_Runtime[28],_jq_,Runtime_ocaml_Runtime[13],_cBP_); + try + {var + _cBQ_= + function(param) + {if(! droit_ouvert_complement) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$65); + var + _cB5_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _js_, + Runtime_ocaml_Runtime[13], + montant_base_complement_pour_b), + _cB6_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_jt_,complement_degressif), + _cB5_), + _cB7_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _ju_, + Runtime_ocaml_Runtime[13], + _cB6_); + return caml_call2(Runtime_ocaml_Runtime[27],_jv_,_cB7_)}, + _cBR_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jw_,1)}, + _cBS_=caml_call4(Runtime_ocaml_Runtime[63],_jx_,[0],_cBR_,_cBQ_)} + catch(_cB4_) + {_cB4_ = caml_wrap_exception(_cB4_); + if(_cB4_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_jr_]; + throw _cB4_} + var + montant_verse_complement_pour_$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_jy_,Runtime_ocaml_Runtime[13],_cBS_); + try + {var + _cBT_= + function(param) + {if(! droit_ouvert_base) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$66); + var + _cB1_= + caml_call2 + (Runtime_ocaml_Runtime[93], + montant_verse_base, + montant_verse_majoration), + _cB2_= + caml_call2 + (Runtime_ocaml_Runtime[93],_cB1_,montant_verse_forfaitaire), + _cB3_= + caml_call2 + (Runtime_ocaml_Runtime[93], + _cB2_, + montant_verse_complement_pour_$0); + return caml_call2 + (Runtime_ocaml_Runtime[93], + _cB3_, + montant_verse_complement_pour_)}, + _cBU_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jA_,1)}, + _cBV_=caml_call4(Runtime_ocaml_Runtime[63],_jB_,[0],_cBU_,_cBT_)} + catch(_cB0_) + {_cB0_ = caml_wrap_exception(_cB0_); + if(_cB0_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_jz_]; + throw _cB0_} + var + montant_verse= + caml_call3 + (Runtime_ocaml_Runtime[28],_jC_,Runtime_ocaml_Runtime[13],_cBV_); + try + {var + _cBW_= + caml_call1(Runtime_ocaml_Runtime[67],personne_charge_effective_perm), + _cBX_= + caml_call2 + (Runtime_ocaml_Runtime[83],_cBW_,personne_charge_effective_perm$0), + _cBY_= + caml_call2 + (Runtime_ocaml_Runtime[84],personne_charge_effective_perm,_cBX_)} + catch(_cBZ_) + {_cBZ_ = caml_wrap_exception(_cBZ_); + if(_cBZ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_jD_]; + throw _cBZ_} + if(_cBY_)return [0,montant_verse]; + throw [0,Runtime_ocaml_Runtime[3],_jE_]} + function interface_allocations_familial(interface_allocations_familial) + {var + i_date_courante=interface_allocations_familial[1], + i_enfants=interface_allocations_familial[2], + i_ressources_menage=interface_allocations_familial[3], + i_residence=interface_allocations_familial[4], + i_personne_charge_effective_pe=interface_allocations_familial[5], + i_personne_charge_effective_pe$0=interface_allocations_familial[6], + i_avait_enfant_a_charge_avant_=interface_allocations_familial[7]; + try + {var + _cy7_= + function(param) + {function _czR_(enfant) + {var + _czS_=enfant[6], + _czT_=enfant[5], + _czU_=enfant[4], + _czV_=enfant[3], + _czW_=enfant[2], + _czX_=caml_call3(Runtime_ocaml_Runtime[60],3,0,0), + _czY_=caml_call3(Runtime_ocaml_Runtime[94],2,enfant[3],_czX_); + if(caml_call2(Runtime_ocaml_Runtime[130],_czY_,i_date_courante)) + var _czZ_=_jG_; + else + var + _cz0_=caml_call3(Runtime_ocaml_Runtime[60],16,0,0), + _cz1_=caml_call3(Runtime_ocaml_Runtime[94],2,enfant[3],_cz0_), + _czZ_= + caml_call2(Runtime_ocaml_Runtime[130],_cz1_,i_date_courante) + ?_jH_ + :_jI_; + return [0,enfant[1],_czZ_,_czW_,_czV_,_czU_,_czT_,_czS_]} + return caml_call2(Runtime_ocaml_Runtime[87],_czR_,i_enfants)}, + _cy8_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jJ_,1)}, + _cy9_=caml_call4(Runtime_ocaml_Runtime[63],_jK_,[0],_cy8_,_cy7_)} + catch(_czQ_) + {_czQ_ = caml_wrap_exception(_czQ_); + if(_czQ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_jF_]; + throw _czQ_} + var + _cy__=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), + enfants_a_charge=caml_call3(Runtime_ocaml_Runtime[28],_jL_,_cy__,_cy9_); + try + {var + _cy$_=function(param){return 0}, + _cza_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jN_,1)}, + _czb_= + [0, + function(param) + {function _czO_(param){return 1} + function _czP_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29], + _jO_, + i_personne_charge_effective_pe)} + return caml_call4(Runtime_ocaml_Runtime[63],_jP_,[0],_czP_,_czO_)}], + _czc_=caml_call4(Runtime_ocaml_Runtime[63],_jQ_,_czb_,_cza_,_cy$_), + allocations_familiales_dot_per= + caml_call3 + (Runtime_ocaml_Runtime[28],_jR_,Runtime_ocaml_Runtime[12],_czc_)} + catch(_czN_) + {_czN_ = caml_wrap_exception(_czN_); + if(_czN_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_jM_]; + throw _czN_} + try + {var + _czd_=function(param){return 0}, + _cze_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jT_,1)}, + _czf_= + [0, + function(param) + {function _czL_(param){return 1} + function _czM_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29], + _jU_, + i_personne_charge_effective_pe$0)} + return caml_call4(Runtime_ocaml_Runtime[63],_jV_,[0],_czM_,_czL_)}], + _czg_=caml_call4(Runtime_ocaml_Runtime[63],_jW_,_czf_,_cze_,_czd_), + allocations_familiales_dot_per$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_jX_,Runtime_ocaml_Runtime[12],_czg_)} + catch(_czK_) + {_czK_ = caml_wrap_exception(_czK_); + if(_czK_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_jS_]; + throw _czK_} + try + {var + _czh_=function(param){return i_ressources_menage}, + _czi_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jZ_,1)}, + _czj_=caml_call4(Runtime_ocaml_Runtime[63],_j0_,[0],_czi_,_czh_), + allocations_familiales_dot_res= + caml_call3 + (Runtime_ocaml_Runtime[28],_j1_,Runtime_ocaml_Runtime[13],_czj_)} + catch(_czJ_) + {_czJ_ = caml_wrap_exception(_czJ_); + if(_czJ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_jY_]; + throw _czJ_} + try + {var + _czk_=function(param){return i_residence}, + _czl_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_j3_,1)}, + _czm_=caml_call4(Runtime_ocaml_Runtime[63],_j4_,[0],_czl_,_czk_), + allocations_familiales_dot_res$0= + caml_call3(Runtime_ocaml_Runtime[28],_j5_,embed_collectivite,_czm_)} + catch(_czI_) + {_czI_ = caml_wrap_exception(_czI_); + if(_czI_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_j2_]; + throw _czI_} + try + {var + _czn_=function(param){return i_date_courante}, + _czo_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_j7_,1)}, + _czp_=caml_call4(Runtime_ocaml_Runtime[63],_j8_,[0],_czo_,_czn_), + allocations_familiales_dot_dat= + caml_call3 + (Runtime_ocaml_Runtime[28],_j9_,Runtime_ocaml_Runtime[16],_czp_)} + catch(_czH_) + {_czH_ = caml_wrap_exception(_czH_); + if(_czH_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_j6_]; + throw _czH_} + try + {var + _czq_=function(param){return enfants_a_charge}, + _czr_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_j$_,1)}, + _czs_=caml_call4(Runtime_ocaml_Runtime[63],_ka_,[0],_czr_,_czq_), + _czt_=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), + allocations_familiales_dot_enf= + caml_call3(Runtime_ocaml_Runtime[28],_kb_,_czt_,_czs_)} + catch(_czG_) + {_czG_ = caml_wrap_exception(_czG_); + if(_czG_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_j__]; + throw _czG_} + try + {var + _czu_=function(param){return 0}, + _czv_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_kd_,1)}, + _czw_= + [0, + function(param) + {function _czE_(param){return 1} + function _czF_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29], + _ke_, + i_avait_enfant_a_charge_avant_)} + return caml_call4(Runtime_ocaml_Runtime[63],_kf_,[0],_czF_,_czE_)}], + _czx_=caml_call4(Runtime_ocaml_Runtime[63],_kg_,_czw_,_czv_,_czu_), + allocations_familiales_dot_ava= + caml_call3 + (Runtime_ocaml_Runtime[28],_kh_,Runtime_ocaml_Runtime[12],_czx_)} + catch(_czD_) + {_czD_ = caml_wrap_exception(_czD_); + if(_czD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_kc_]; + throw _czD_} + var + _czy_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_ki_,allocations_familiales), + [0, + allocations_familiales_dot_per, + allocations_familiales_dot_per$0, + allocations_familiales_dot_res, + allocations_familiales_dot_res$0, + allocations_familiales_dot_dat, + allocations_familiales_dot_enf, + allocations_familiales_dot_ava]), + result=caml_call2(Runtime_ocaml_Runtime[27],_kj_,_czy_), + allocations_familiales_dot_mon=result[1]; + try + {var + _czz_=function(param){return allocations_familiales_dot_mon}, + _czA_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_kl_,1)}, + _czB_=caml_call4(Runtime_ocaml_Runtime[63],_km_,[0],_czA_,_czz_)} + catch(_czC_) + {_czC_ = caml_wrap_exception(_czC_); + if(_czC_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_kk_]; + throw _czC_} + var + i_montant_verse= + caml_call3 + (Runtime_ocaml_Runtime[28],_kn_,Runtime_ocaml_Runtime[13],_czB_); + return [0,i_montant_verse]} var - _kZ_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _ki_, allocations_familiales), - [0, - allocations_familiales_dot_per, - allocations_familiales_dot_per$0, - allocations_familiales_dot_res, - allocations_familiales_dot_res$0, - allocations_familiales_dot_dat, - allocations_familiales_dot_enf, - allocations_familiales_dot_ava]), - result = caml_call2(Runtime_ocaml_Runtime[27], _kj_, _kZ_), - allocations_familiales_dot_mon = result[1]; - try{ - var - _k1_ = function(param){return allocations_familiales_dot_mon;}, - _k2_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _kl_, 1); - }, - _k3_ = caml_call4(Runtime_ocaml_Runtime[63], _km_, [0], _k2_, _k1_); - } - catch(_k4_){ - var _k0_ = caml_wrap_exception(_k4_); - if(_k0_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kk_], 1); - throw caml_maybe_attach_backtrace(_k0_, 0); - } - var - i_montant_verse = - caml_call3 - (Runtime_ocaml_Runtime[28], _kn_, Runtime_ocaml_Runtime[13], _k3_); - return [0, i_montant_verse]; - } - var - Law_source_Allocations_familia = + Law_source_Allocations_familia= [0, PriseEnCharge, embed_prise_en_charge, @@ -56857,795 +104920,585 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ prestations_familiales, allocations_familiales, interface_allocations_familial]; - runtime.caml_register_global - (1028, - Law_source_Allocations_familia, - "Law_source__Allocations_familiales"); - return; - } - (globalThis)); - -//# 11333 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_AllocationEducationEnfantH = "AllocationEducationEnfantHandicape", - cst_AllocationJournalierePrese = "AllocationJournalierePresenceParentale", - cst_AllocationLogement = "AllocationLogement", - cst_AllocationRentreeScolaire = "AllocationRentreeScolaire", - cst_AllocationSoutienFamilial = "AllocationSoutienFamilial", - cst_AllocationVerseeAuxService = "AllocationVerseeAuxServicesSociaux", - cst_AllocationsFamiliales = "AllocationsFamiliales", - cst_Apres = "Apres", - cst_Avant = "Avant", - cst_ComplementFamilial = "ComplementFamilial", - cst_Complete = "Complete", - cst_EffectiveEtPermanente = "EffectiveEtPermanente", - cst_GardeAlterneeAllocataireUn = "GardeAlterneeAllocataireUnique", - cst_GardeAlterneePartageAlloca = "GardeAlterneePartageAllocations", - cst_Guadeloupe = "Guadeloupe", - cst_Guyane = "Guyane", - cst_LaReunion = "LaReunion", - cst_Martinique = "Martinique", - cst_Mayotte = "Mayotte", - cst_Metropole = "Metropole", - cst_Normal = "Normal", - cst_Partagee = "Partagee", - cst_Pendant = "Pendant", - cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", - cst_SaintBarthelemy = "SaintBarthelemy", - cst_SaintMartin = "SaintMartin", - cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", - cst_ServicesSociauxAllocationV = - "ServicesSociauxAllocationVerseeALaFamille", - cst_ServicesSociauxAllocationV$0 = - "ServicesSociauxAllocationVerseeAuxServicesSociaux", - cst_Unexpected = "Unexpected '", - cst_Zero = "Zero", - caml_js_from_array = runtime.caml_js_from_array, - caml_js_to_array = runtime.caml_js_to_array, - caml_js_wrap_callback = runtime.caml_js_wrap_callback, - caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback, - caml_string_notequal = runtime.caml_string_notequal, - caml_string_of_jsstring = runtime.caml_string_of_jsstring; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var global_data = runtime.caml_get_global_data(); - global_data.CamlinternalOO; - var - Law_source_Allocations_familia = - global_data.Law_source__Allocations_familiales, - Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, - Stdlib_Array = global_data.Stdlib__Array, - Runtime_jsoo_Runtime = global_data.Runtime_jsoo__Runtime, - Stdlib = global_data.Stdlib, - Stdlib_Printf = global_data.Stdlib__Printf, - Js_of_ocaml_Js = global_data.Js_of_ocaml__Js, - cst_The_function_conditions_ho = - "The function 'conditions_hors_age' translation isn't yet supported...", - cst_The_function_droit_ouvert_ = - "The function 'droit_ouvert' translation isn't yet supported...", - _B_ = [7, 0], - _C_ = [5, 0], - _D_ = [4, 0], - _E_ = [6, 0], - _F_ = [8, 0], - _G_ = [2, 0], - _H_ = [3, 0], - _I_ = [1, 0], - _J_ = [0, 0], - _A_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'Collectivite.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'Collectivite.t'"], - _s_ = [0, 0], - _t_ = [2, 0], - _u_ = [1, 0], - _v_ = [5, 0], - _w_ = [6, 0], - _x_ = [3, 0], - _y_ = [7, 0], - _z_ = [4, 0], - _r_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, - "' kind for the enumeration 'ElementPrestationsFamiliales.t'", - 0]]], - "Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'"], - _p_ = [0, 0], - _q_ = [1, 0], - _o_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'VersementAllocations.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'VersementAllocations.t'"], - _l_ = [2, 0], - _m_ = [1, 0], - _n_ = [0, 0], - _k_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'PriseEnCompte.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'PriseEnCompte.t'"], - _h_ = [1, 0], - _i_ = [0, 0], - _j_ = [2, 0], - _g_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, "' kind for the enumeration 'SituationObligationScolaire.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'"], - _b_ = [4, 0], - _c_ = [3, 0], - _d_ = [0, 0], - _e_ = [1, 0], - _f_ = [2, 0], - _a_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'PriseEnCharge.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'"], - cst_AllocationsFamilialesLib = "AllocationsFamilialesLib"; - function prise_en_charge_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_GardeAlterneePartageAlloca, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_GardeAlterneeAllocataireUn, payload: arg$0}; - case 2: - var arg$1 = param[1]; - return {kind: cst_EffectiveEtPermanente, payload: arg$1}; - case 3: - var arg$2 = param[1]; - return {kind: cst_ServicesSociauxAllocationV, payload: arg$2}; - default: - var arg$3 = param[1]; - return {kind: cst_ServicesSociauxAllocationV$0, payload: arg$3}; - } - } - function prise_en_charge_of_jsoo(prise_en_charge){ - var cons = caml_string_of_jsstring(prise_en_charge.kind); - if(! caml_string_notequal(cons, cst_EffectiveEtPermanente)) return _f_; - if(! caml_string_notequal(cons, cst_GardeAlterneeAllocataireUn)) - return _e_; - if(! caml_string_notequal(cons, cst_GardeAlterneePartageAlloca)) - return _d_; - if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV)) - return _c_; - if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV$0)) - return _b_; - var _bo_ = caml_call2(Stdlib_Printf[4], _a_, cons); - return caml_call1(Stdlib[2], _bo_); - } - function situation_obligation_scolaire_(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_Avant, payload: arg}; - case 1: - var arg$0 = param[1]; return {kind: cst_Pendant, payload: arg$0}; - default: var arg$1 = param[1]; return {kind: cst_Apres, payload: arg$1}; - } - } - function situation_obligation_scolaire_$0(situation_obligation_scolaire){ - var cons = caml_string_of_jsstring(situation_obligation_scolaire.kind); - if(! caml_string_notequal(cons, cst_Apres)) return _j_; - if(! caml_string_notequal(cons, cst_Avant)) return _i_; - if(! caml_string_notequal(cons, cst_Pendant)) return _h_; - var _bn_ = caml_call2(Stdlib_Printf[4], _g_, cons); - return caml_call1(Stdlib[2], _bn_); - } - function prise_en_compte_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_Complete, payload: arg}; - case 1: - var arg$0 = param[1]; return {kind: cst_Partagee, payload: arg$0}; - default: var arg$1 = param[1]; return {kind: cst_Zero, payload: arg$1}; - } - } - function prise_en_compte_of_jsoo(prise_en_compte){ - var cons = caml_string_of_jsstring(prise_en_compte.kind); - if(! caml_string_notequal(cons, cst_Complete)) return _n_; - if(! caml_string_notequal(cons, cst_Partagee)) return _m_; - if(! caml_string_notequal(cons, cst_Zero)) return _l_; - var _bm_ = caml_call2(Stdlib_Printf[4], _k_, cons); - return caml_call1(Stdlib[2], _bm_); - } - function versement_allocations_to_jsoo(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_Normal, payload: arg}; - } - var arg$0 = param[1]; - return {kind: cst_AllocationVerseeAuxService, payload: arg$0}; - } - function versement_allocations_of_jsoo(versement_allocations){ - var cons = caml_string_of_jsstring(versement_allocations.kind); - if(! caml_string_notequal(cons, cst_AllocationVerseeAuxService)) - return _q_; - if(! caml_string_notequal(cons, cst_Normal)) return _p_; - var _bl_ = caml_call2(Stdlib_Printf[4], _o_, cons); - return caml_call1(Stdlib[2], _bl_); - } - function element_prestations_familiales(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_PrestationAccueilJeuneEnfa, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_AllocationsFamiliales, payload: arg$0}; - case 2: - var arg$1 = param[1]; - return {kind: cst_ComplementFamilial, payload: arg$1}; - case 3: - var arg$2 = param[1]; - return {kind: cst_AllocationLogement, payload: arg$2}; - case 4: - var arg$3 = param[1]; - return {kind: cst_AllocationEducationEnfantH, payload: arg$3}; - case 5: - var arg$4 = param[1]; - return {kind: cst_AllocationSoutienFamilial, payload: arg$4}; - case 6: - var arg$5 = param[1]; - return {kind: cst_AllocationRentreeScolaire, payload: arg$5}; - default: - var arg$6 = param[1]; - return {kind: cst_AllocationJournalierePrese, payload: arg$6}; - } - } - function element_prestations_familiales$0(element_prestations_familiales){ - var cons = caml_string_of_jsstring(element_prestations_familiales.kind); - if(! caml_string_notequal(cons, cst_AllocationEducationEnfantH)) - return _z_; - if(! caml_string_notequal(cons, cst_AllocationJournalierePrese)) - return _y_; - if(! caml_string_notequal(cons, cst_AllocationLogement)) return _x_; - if(! caml_string_notequal(cons, cst_AllocationRentreeScolaire)) - return _w_; - if(! caml_string_notequal(cons, cst_AllocationSoutienFamilial)) - return _v_; - if(! caml_string_notequal(cons, cst_AllocationsFamiliales)) return _u_; - if(! caml_string_notequal(cons, cst_ComplementFamilial)) return _t_; - if(! caml_string_notequal(cons, cst_PrestationAccueilJeuneEnfa)) - return _s_; - var _bk_ = caml_call2(Stdlib_Printf[4], _r_, cons); - return caml_call1(Stdlib[2], _bk_); - } - function collectivite_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_Guadeloupe, payload: arg}; - case 1: - var arg$0 = param[1]; return {kind: cst_Guyane, payload: arg$0}; - case 2: - var arg$1 = param[1]; return {kind: cst_Martinique, payload: arg$1}; - case 3: - var arg$2 = param[1]; return {kind: cst_LaReunion, payload: arg$2}; - case 4: - var arg$3 = param[1]; - return {kind: cst_SaintBarthelemy, payload: arg$3}; - case 5: - var arg$4 = param[1]; return {kind: cst_SaintMartin, payload: arg$4}; - case 6: - var arg$5 = param[1]; return {kind: cst_Metropole, payload: arg$5}; - case 7: - var arg$6 = param[1]; - return {kind: cst_SaintPierreEtMiquelon, payload: arg$6}; - default: - var arg$7 = param[1]; return {kind: cst_Mayotte, payload: arg$7}; - } - } - function collectivite_of_jsoo(collectivite){ - var cons = caml_string_of_jsstring(collectivite.kind); - if(! caml_string_notequal(cons, cst_Guadeloupe)) return _J_; - if(! caml_string_notequal(cons, cst_Guyane)) return _I_; - if(! caml_string_notequal(cons, cst_LaReunion)) return _H_; - if(! caml_string_notequal(cons, cst_Martinique)) return _G_; - if(! caml_string_notequal(cons, cst_Mayotte)) return _F_; - if(! caml_string_notequal(cons, cst_Metropole)) return _E_; - if(! caml_string_notequal(cons, cst_SaintBarthelemy)) return _D_; - if(! caml_string_notequal(cons, cst_SaintMartin)) return _C_; - if(! caml_string_notequal(cons, cst_SaintPierreEtMiquelon)) return _B_; - var _bj_ = caml_call2(Stdlib_Printf[4], _A_, cons); - return caml_call1(Stdlib[2], _bj_); - } - function allocation_familiales_avril200(allocation_familiales_avril200){ - return {ageMinimumAlinea1L5213: - caml_call1 - (Runtime_jsoo_Runtime[3], allocation_familiales_avril200[1])}; - } - function allocation_familiales_avril200$0(allocation_familiales_avril200){ - return [0, - caml_call1 - (Runtime_jsoo_Runtime[2], - allocation_familiales_avril200.ageMinimumAlinea1L5213)]; - } - function allocations_familiales_to_jsoo(allocations_familiales){ - return {montantVerse: - caml_call1(Runtime_ocaml_Runtime[35], allocations_familiales[1])}; - } - function allocations_familiales_of_jsoo(allocations_familiales){ + caml_register_global + (9728, + Law_source_Allocations_familia, + "Law_source__Allocations_familiales"); + function prise_en_charge_to_jsoo(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"GardeAlterneePartageAllocations","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"GardeAlterneeAllocataireUnique","payload":arg$0}; + case 2: + var arg$1=param[1]; + return {"kind":"EffectiveEtPermanente","payload":arg$1}; + case 3: + var arg$2=param[1]; + return {"kind":"ServicesSociauxAllocationVerseeALaFamille", + "payload":arg$2}; + default: + var arg$3=param[1]; + return {"kind":"ServicesSociauxAllocationVerseeAuxServicesSociaux", + "payload":arg$3}}} + function prise_en_charge_of_jsoo(prise_en_charge) + {var cons=caml_string_of_jsstring(prise_en_charge.kind); + if(! caml_string_notequal(cons,cst_EffectiveEtPermanente$0))return _kt_; + if(! caml_string_notequal(cons,cst_GardeAlterneeAllocataireUn)) + return _ks_; + if(! caml_string_notequal(cons,cst_GardeAlterneePartageAlloca)) + return _kr_; + if(! caml_string_notequal(cons,cst_ServicesSociauxAllocationV$1)) + return _kq_; + if(! caml_string_notequal(cons,cst_ServicesSociauxAllocationV$2)) + return _kp_; + var _cy6_=caml_call2(Stdlib_Printf[4],_ko_,cons); + return caml_call1(Stdlib[2],_cy6_)} + function situation_obligation_scolaire_(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"Avant","payload":arg}; + case 1:var arg$0=param[1];return {"kind":"Pendant","payload":arg$0}; + default:var arg$1=param[1];return {"kind":"Apres","payload":arg$1}}} + function situation_obligation_scolaire_$0(situation_obligation_scolaire) + {var cons=caml_string_of_jsstring(situation_obligation_scolaire.kind); + if(! caml_string_notequal(cons,cst_Apres))return _kx_; + if(! caml_string_notequal(cons,cst_Avant$0))return _kw_; + if(! caml_string_notequal(cons,cst_Pendant$0))return _kv_; + var _cy5_=caml_call2(Stdlib_Printf[4],_ku_,cons); + return caml_call1(Stdlib[2],_cy5_)} + function prise_en_compte_to_jsoo(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"Complete","payload":arg}; + case 1:var arg$0=param[1];return {"kind":"Partagee","payload":arg$0}; + default:var arg$1=param[1];return {"kind":"Zero","payload":arg$1}}} + function prise_en_compte_of_jsoo(prise_en_compte) + {var cons=caml_string_of_jsstring(prise_en_compte.kind); + if(! caml_string_notequal(cons,cst_Complete))return _kB_; + if(! caml_string_notequal(cons,cst_Partagee))return _kA_; + if(! caml_string_notequal(cons,cst_Zero))return _kz_; + var _cy4_=caml_call2(Stdlib_Printf[4],_ky_,cons); + return caml_call1(Stdlib[2],_cy4_)} + function versement_allocations_to_jsoo(param) + {if(0 === param[0]) + {var arg=param[1];return {"kind":"Normal","payload":arg}} + var arg$0=param[1]; + return {"kind":"AllocationVerseeAuxServicesSociaux","payload":arg$0}} + function versement_allocations_of_jsoo(versement_allocations) + {var cons=caml_string_of_jsstring(versement_allocations.kind); + if(! caml_string_notequal(cons,cst_AllocationVerseeAuxService)) + return _kE_; + if(! caml_string_notequal(cons,cst_Normal$0))return _kD_; + var _cy3_=caml_call2(Stdlib_Printf[4],_kC_,cons); + return caml_call1(Stdlib[2],_cy3_)} + function element_prestations_familiales(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"PrestationAccueilJeuneEnfant","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"AllocationsFamiliales","payload":arg$0}; + case 2: + var arg$1=param[1]; + return {"kind":"ComplementFamilial","payload":arg$1}; + case 3: + var arg$2=param[1]; + return {"kind":"AllocationLogement","payload":arg$2}; + case 4: + var arg$3=param[1]; + return {"kind":"AllocationEducationEnfantHandicape","payload":arg$3}; + case 5: + var arg$4=param[1]; + return {"kind":"AllocationSoutienFamilial","payload":arg$4}; + case 6: + var arg$5=param[1]; + return {"kind":"AllocationRentreeScolaire","payload":arg$5}; + default: + var arg$6=param[1]; + return {"kind":"AllocationJournalierePresenceParentale", + "payload":arg$6}}} + function element_prestations_familiales$0(element_prestations_familiales) + {var cons=caml_string_of_jsstring(element_prestations_familiales.kind); + if(! caml_string_notequal(cons,cst_AllocationEducationEnfantH)) + return _kN_; + if(! caml_string_notequal(cons,cst_AllocationJournalierePrese)) + return _kM_; + if(! caml_string_notequal(cons,cst_AllocationLogement$0))return _kL_; + if(! caml_string_notequal(cons,cst_AllocationRentreeScolaire)) + return _kK_; + if(! caml_string_notequal(cons,cst_AllocationSoutienFamilial$0)) + return _kJ_; + if(! caml_string_notequal(cons,cst_AllocationsFamiliales$0))return _kI_; + if(! caml_string_notequal(cons,cst_ComplementFamilial))return _kH_; + if(! caml_string_notequal(cons,cst_PrestationAccueilJeuneEnfa$0)) + return _kG_; + var _cy2_=caml_call2(Stdlib_Printf[4],_kF_,cons); + return caml_call1(Stdlib[2],_cy2_)} + function collectivite_to_jsoo(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"Guadeloupe","payload":arg}; + case 1:var arg$0=param[1];return {"kind":"Guyane","payload":arg$0}; + case 2: + var arg$1=param[1];return {"kind":"Martinique","payload":arg$1}; + case 3:var arg$2=param[1];return {"kind":"LaReunion","payload":arg$2}; + case 4: + var arg$3=param[1];return {"kind":"SaintBarthelemy","payload":arg$3}; + case 5: + var arg$4=param[1];return {"kind":"SaintMartin","payload":arg$4}; + case 6:var arg$5=param[1];return {"kind":"Metropole","payload":arg$5}; + case 7: + var arg$6=param[1]; + return {"kind":"SaintPierreEtMiquelon","payload":arg$6}; + default:var arg$7=param[1];return {"kind":"Mayotte","payload":arg$7}}} + function collectivite_of_jsoo(collectivite) + {var cons=caml_string_of_jsstring(collectivite.kind); + if(! caml_string_notequal(cons,cst_Guadeloupe$0))return _kX_; + if(! caml_string_notequal(cons,cst_Guyane$0))return _kW_; + if(! caml_string_notequal(cons,cst_LaReunion))return _kV_; + if(! caml_string_notequal(cons,cst_Martinique$0))return _kU_; + if(! caml_string_notequal(cons,cst_Mayotte$0))return _kT_; + if(! caml_string_notequal(cons,cst_Metropole))return _kS_; + if(! caml_string_notequal(cons,cst_SaintBarthelemy))return _kR_; + if(! caml_string_notequal(cons,cst_SaintMartin$0))return _kQ_; + if(! caml_string_notequal(cons,cst_SaintPierreEtMiquelon$0))return _kP_; + var _cy1_=caml_call2(Stdlib_Printf[4],_kO_,cons); + return caml_call1(Stdlib[2],_cy1_)} + function allocation_familiales_avril200$0(allocation_familiales_avril200) + {var + t66= + caml_call1(Runtime_jsoo_Runtime[3],allocation_familiales_avril200[1]); + return {"ageMinimumAlinea1L5213":t66}} + function allocation_familiales_avril200$1(allocation_familiales_avril200) + {return [0, + caml_call1 + (Runtime_jsoo_Runtime[2], + allocation_familiales_avril200.ageMinimumAlinea1L5213)]} + function allocations_familiales_to_jsoo(allocations_familiales) + {var t68=caml_call1(Runtime_ocaml_Runtime[35],allocations_familiales[1]); + return {"montantVerse":t68}} + function allocations_familiales_of_jsoo(allocations_familiales) + {var + _cy0_= + caml_call1 + (Runtime_ocaml_Runtime[42],allocations_familiales.montantVerse); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_cy0_)]} + function verification_age_inferieur_ou_$0(verification_age_inferieur_ou_) + {var t70=! ! verification_age_inferieur_ou_[1]; + return {"estInferieurOuEgal":t70}} + function verification_age_inferieur_ou_$1(verification_age_inferieur_ou_) + {return [0,verification_age_inferieur_ou_.estInferieurOuEgal | 0]} + function verification_age_superieur_a_t(verification_age_superieur_a) + {var t72=! ! verification_age_superieur_a[1];return {"estSuperieur":t72}} + function verification_age_superieur_a_o(verification_age_superieur_a) + {return [0,verification_age_superieur_a.estSuperieur | 0]} + function smic_to_jsoo(smic) + {var t74=caml_call1(Runtime_ocaml_Runtime[35],smic[1]); + return {"brutHoraire":t74}} + function smic_of_jsoo(smic) + {var _cyZ_=caml_call1(Runtime_ocaml_Runtime[42],smic.brutHoraire); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_cyZ_)]} + function base_mensuelle_allocations_fam$0(base_mensuelle_allocations_fam) + {var + t76= + caml_call1 + (Runtime_ocaml_Runtime[35],base_mensuelle_allocations_fam[1]); + return {"montant":t76}} + function base_mensuelle_allocations_fam$1(base_mensuelle_allocations_fam) + {var + _cyY_= + caml_call1 + (Runtime_ocaml_Runtime[42],base_mensuelle_allocations_fam.montant); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_cyY_)]} + function interface_allocations_familial$0(interface_allocations_familial) + {var + t78= + caml_call1 + (Runtime_ocaml_Runtime[35],interface_allocations_familial[1]); + return {"iMontantVerse":t78}} + function interface_allocations_familial$1(interface_allocations_familial) + {var + _cyX_= + caml_call1 + (Runtime_ocaml_Runtime[42], + interface_allocations_familial.iMontantVerse); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_cyX_)]} + function enfant_entree_to_jsoo(enfant_entree) + {var + t85=! ! enfant_entree[6], + t84=! ! enfant_entree[5], + t83=prise_en_charge_to_jsoo(enfant_entree[4]), + t82=caml_call1(Runtime_jsoo_Runtime[5],enfant_entree[3]), + t81=caml_call1(Runtime_ocaml_Runtime[35],enfant_entree[2]), + t80=caml_call1(Runtime_ocaml_Runtime[48],enfant_entree[1]); + return {"dIdentifiant":t80, + "dRemunerationMensuelle":t81, + "dDateDeNaissance":t82, + "dPriseEnCharge":t83, + "dADejaOuvertDroitAuxAllocationsFamiliales":t84, + "dBeneficieTitrePersonnelAidePersonnelleLogement":t85}} + function enfant_entree_of_jsoo(enfant_entree) + {var + _cyR_=enfant_entree.dBeneficieTitrePersonnelAidePersonnelleLogement | 0, + _cyS_=enfant_entree.dADejaOuvertDroitAuxAllocationsFamiliales | 0, + _cyT_=prise_en_charge_of_jsoo(enfant_entree.dPriseEnCharge), + _cyU_= + caml_call1(Runtime_jsoo_Runtime[4],enfant_entree.dDateDeNaissance), + _cyV_= + caml_call1 + (Runtime_ocaml_Runtime[42],enfant_entree.dRemunerationMensuelle), + _cyW_=caml_call1(Runtime_ocaml_Runtime[33],_cyV_); + return [0, + caml_call1(Runtime_ocaml_Runtime[49],enfant_entree.dIdentifiant), + _cyW_, + _cyU_, + _cyT_, + _cyS_, + _cyR_]} + function enfant_to_jsoo(enfant) + {var + t98=! ! enfant[7], + t97=! ! enfant[6], + t96=prise_en_charge_to_jsoo(enfant[5]), + t95=caml_call1(Runtime_jsoo_Runtime[5],enfant[4]), + t94=caml_call1(Runtime_ocaml_Runtime[35],enfant[3]), + t93=situation_obligation_scolaire_(enfant[2]), + t92=caml_call1(Runtime_ocaml_Runtime[48],enfant[1]); + return {"identifiant":t92, + "obligationScolaire":t93, + "remunerationMensuelle":t94, + "dateDeNaissance":t95, + "priseEnCharge":t96, + "aDejaOuvertDroitAuxAllocationsFamiliales":t97, + "beneficieTitrePersonnelAidePersonnelleLogement":t98}} + function enfant_of_jsoo(enfant) + {var + _cyK_=enfant.beneficieTitrePersonnelAidePersonnelleLogement | 0, + _cyL_=enfant.aDejaOuvertDroitAuxAllocationsFamiliales | 0, + _cyM_=prise_en_charge_of_jsoo(enfant.priseEnCharge), + _cyN_=caml_call1(Runtime_jsoo_Runtime[4],enfant.dateDeNaissance), + _cyO_= + caml_call1(Runtime_ocaml_Runtime[42],enfant.remunerationMensuelle), + _cyP_=caml_call1(Runtime_ocaml_Runtime[33],_cyO_), + _cyQ_=situation_obligation_scolaire_$0(enfant.obligationScolaire); + return [0, + caml_call1(Runtime_ocaml_Runtime[49],enfant.identifiant), + _cyQ_, + _cyP_, + _cyN_, + _cyM_, + _cyL_, + _cyK_]} + function enfant_le_plus_age_to_jsoo(enfant_le_plus_age) + {var t106=enfant_to_jsoo(enfant_le_plus_age[1]); + return {"lePlusAge":t106}} + function enfant_le_plus_age_of_jsoo(enfant_le_plus_age) + {return [0,enfant_of_jsoo(enfant_le_plus_age.lePlusAge)]} + function prestations_familiales_to_jsoo(prestations_familiales) + {var + t111=! ! prestations_familiales[4], + t110=caml_call1(Runtime_jsoo_Runtime[3],prestations_familiales[3]); + function t109(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var _cyJ_=enfant_of_jsoo(function_input0); + return ! ! caml_call1(prestations_familiales[2],_cyJ_)})} + function t108(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var _cyI_=enfant_of_jsoo(function_input0); + return ! ! caml_call1(prestations_familiales[1],_cyI_)})} + return {"droitOuvert":caml_js_wrap_meth_callback(t108), + "conditionsHorsAge":caml_js_wrap_meth_callback(t109), + "ageL51232":t110, + "regimeOutreMerL7511":t111}} + function prestations_familiales_of_jsoo(prestations_familiales) + {var + _cyF_=prestations_familiales.regimeOutreMerL7511 | 0, + _cyG_= + caml_call1(Runtime_jsoo_Runtime[2],prestations_familiales.ageL51232), + _cyH_=caml_call1(Stdlib[2],cst_The_function_conditions_ho); + return [0, + caml_call1(Stdlib[2],cst_The_function_droit_ouvert_), + _cyH_, + _cyG_, + _cyF_]} + function prestations_familiales_in_to_j(prestations_familiales_in) + {var + t116=collectivite_to_jsoo(prestations_familiales_in[3]), + t115=element_prestations_familiales(prestations_familiales_in[2]), + t114=caml_call1(Runtime_jsoo_Runtime[5],prestations_familiales_in[1]); + return {"dateCouranteIn":t114, + "prestationCouranteIn":t115, + "residenceIn":t116}} + function prestations_familiales_in_of_j(prestations_familiales_in) + {var + _cyD_=collectivite_of_jsoo(prestations_familiales_in.residenceIn), + _cyE_= + element_prestations_familiales$0 + (prestations_familiales_in.prestationCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + prestations_familiales_in.dateCouranteIn), + _cyE_, + _cyD_]} + function allocation_familiales_avril200$2(param){return {}} + function allocation_familiales_avril200$3(param){return 0} + function enfant_le_plus_age_in_to_jsoo(enfant_le_plus_age_in) + {var _cyB_=enfant_le_plus_age_in[1]; + function _cyC_(x){return enfant_to_jsoo(x)} + var t120=caml_js_from_array(caml_call2(Stdlib_Array[15],_cyC_,_cyB_)); + return {"enfantsIn":t120}} + function enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in) + {var _cyz_=caml_js_to_array(enfant_le_plus_age_in.enfantsIn); + function _cyA_(x){return enfant_of_jsoo(x)} + return [0,caml_call1(caml_call1(Stdlib_Array[15],_cyA_),_cyz_)]} + function allocations_familiales_in_to_j(allocations_familiales_in) + {var + t128=! ! allocations_familiales_in[7], + _cyx_=allocations_familiales_in[6]; + function _cyy_(x){return enfant_to_jsoo(x)} + var + t127=caml_js_from_array(caml_call2(Stdlib_Array[15],_cyy_,_cyx_)), + t126=caml_call1(Runtime_jsoo_Runtime[5],allocations_familiales_in[5]), + t125=collectivite_to_jsoo(allocations_familiales_in[4]), + t124=caml_call1(Runtime_ocaml_Runtime[35],allocations_familiales_in[3]), + t123=! ! allocations_familiales_in[2], + t122=! ! allocations_familiales_in[1]; + return {"personneChargeEffectivePermanenteEstParentIn":t122, + "personneChargeEffectivePermanenteRemplitTitreIIn":t123, + "ressourcesMenageIn":t124, + "residenceIn":t125, + "dateCouranteIn":t126, + "enfantsAChargeIn":t127, + "avaitEnfantAChargeAvant1erJanvier2012In":t128}} + function allocations_familiales_in_of_j(allocations_familiales_in) + {var + _cyp_= + allocations_familiales_in.avaitEnfantAChargeAvant1erJanvier2012In + | + 0, + _cyq_=caml_js_to_array(allocations_familiales_in.enfantsAChargeIn); + function _cyr_(x){return enfant_of_jsoo(x)} + var + _cys_=caml_call1(caml_call1(Stdlib_Array[15],_cyr_),_cyq_), + _cyt_= + caml_call1 + (Runtime_jsoo_Runtime[4],allocations_familiales_in.dateCouranteIn), + _cyu_=collectivite_of_jsoo(allocations_familiales_in.residenceIn), + _cyv_= + caml_call1 + (Runtime_ocaml_Runtime[42], + allocations_familiales_in.ressourcesMenageIn), + _cyw_=caml_call1(Runtime_ocaml_Runtime[33],_cyv_); + return [0, + allocations_familiales_in.personneChargeEffectivePermanenteEstParentIn + | + 0, + allocations_familiales_in.personneChargeEffectivePermanenteRemplitTitreIIn + | + 0, + _cyw_, + _cyu_, + _cyt_, + _cys_, + _cyp_]} + function verification_age_inferieur_ou_$2(verification_age_inferieur_ou_) + {var + t138= + caml_call1(Runtime_jsoo_Runtime[3],verification_age_inferieur_ou_[3]), + t137= + caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[2]), + t136= + caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[1]); + return {"dateNaissanceIn":t136,"dateCouranteIn":t137,"anneesIn":t138}} + function verification_age_inferieur_ou_$3(verification_age_inferieur_ou_) + {var + _cyn_= + caml_call1 + (Runtime_jsoo_Runtime[2],verification_age_inferieur_ou_.anneesIn), + _cyo_= + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateNaissanceIn), + _cyo_, + _cyn_]} + function verification_age_superieur_a_i(verification_age_superieur_a_i) + {var + t144= + caml_call1(Runtime_jsoo_Runtime[3],verification_age_superieur_a_i[3]), + t143= + caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[2]), + t142= + caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[1]); + return {"dateNaissanceIn":t142,"dateCouranteIn":t143,"anneesIn":t144}} + function verification_age_superieur_a_i$0(verification_age_superieur_a_i) + {var + _cyl_= + caml_call1 + (Runtime_jsoo_Runtime[2],verification_age_superieur_a_i.anneesIn), + _cym_= + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateNaissanceIn), + _cym_, + _cyl_]} + function smic_in_to_jsoo(smic_in) + {var + t149=collectivite_to_jsoo(smic_in[2]), + t148=caml_call1(Runtime_jsoo_Runtime[5],smic_in[1]); + return {"dateCouranteIn":t148,"residenceIn":t149}} + function smic_in_of_jsoo(smic_in) + {var _cyk_=collectivite_of_jsoo(smic_in.residenceIn); + return [0, + caml_call1(Runtime_jsoo_Runtime[4],smic_in.dateCouranteIn), + _cyk_]} + function base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam) + {var + t152= + caml_call1(Runtime_jsoo_Runtime[5],base_mensuelle_allocations_fam[1]); + return {"dateCouranteIn":t152}} + function base_mensuelle_allocations_fam$3(base_mensuelle_allocations_fam) + {return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + base_mensuelle_allocations_fam.dateCouranteIn)]} + function interface_allocations_familial$2(interface_allocations_familial) + {var + t160=! ! interface_allocations_familial[7], + t159=! ! interface_allocations_familial[6], + t158=! ! interface_allocations_familial[5], + t157=collectivite_to_jsoo(interface_allocations_familial[4]), + t156= + caml_call1 + (Runtime_ocaml_Runtime[35],interface_allocations_familial[3]), + _cyi_=interface_allocations_familial[2]; + function _cyj_(x){return enfant_entree_to_jsoo(x)} + var + t155=caml_js_from_array(caml_call2(Stdlib_Array[15],_cyj_,_cyi_)), + t154= + caml_call1(Runtime_jsoo_Runtime[5],interface_allocations_familial[1]); + return {"iDateCouranteIn":t154, + "iEnfantsIn":t155, + "iRessourcesMenageIn":t156, + "iResidenceIn":t157, + "iPersonneChargeEffectivePermanenteEstParentIn":t158, + "iPersonneChargeEffectivePermanenteRemplitTitreIIn":t159, + "iAvaitEnfantAChargeAvant1erJanvier2012In":t160}} + function interface_allocations_familial$3(interface_allocations_familial) + {var + _cx$_= + interface_allocations_familial.iAvaitEnfantAChargeAvant1erJanvier2012In + | + 0, + _cya_= + interface_allocations_familial.iPersonneChargeEffectivePermanenteRemplitTitreIIn + | + 0, + _cyb_= + interface_allocations_familial.iPersonneChargeEffectivePermanenteEstParentIn + | + 0, + _cyc_=collectivite_of_jsoo(interface_allocations_familial.iResidenceIn), + _cyd_= + caml_call1 + (Runtime_ocaml_Runtime[42], + interface_allocations_familial.iRessourcesMenageIn), + _cye_=caml_call1(Runtime_ocaml_Runtime[33],_cyd_), + _cyf_=caml_js_to_array(interface_allocations_familial.iEnfantsIn); + function _cyg_(x){return enfant_entree_of_jsoo(x)} + var _cyh_=caml_call1(caml_call1(Stdlib_Array[15],_cyg_),_cyf_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + interface_allocations_familial.iDateCouranteIn), + _cyh_, + _cye_, + _cyc_, + _cyb_, + _cya_, + _cx$_]} + function allocation_familiales_avril200$4 + (allocation_familiales_avril200$1) + {return allocation_familiales_avril200$0 + (allocation_familiales_avril200(0))} + function enfant_le_plus_age$0(enfant_le_plus_age_in) + {return enfant_le_plus_age_to_jsoo + (enfant_le_plus_age + (enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in)))} + function verification_age_inferieur_ou_$4 + (verification_age_inferieur_ou_$1) + {return verification_age_inferieur_ou_$0 + (verification_age_inferieur_ou_ + (verification_age_inferieur_ou_$3 + (verification_age_inferieur_ou_$1)))} + function verification_age_superieur_a$0(verification_age_superieur_a_i) + {return verification_age_superieur_a_t + (verification_age_superieur_a + (verification_age_superieur_a_i$0 + (verification_age_superieur_a_i)))} + function smic$0(smic_in) + {return smic_to_jsoo(smic(smic_in_of_jsoo(smic_in)))} + function base_mensuelle_allocations_fam$4 + (base_mensuelle_allocations_fam$1) + {return base_mensuelle_allocations_fam$0 + (base_mensuelle_allocations_fam + (base_mensuelle_allocations_fam$3 + (base_mensuelle_allocations_fam$1)))} + function prestations_familiales$0(prestations_familiales_in) + {return prestations_familiales_to_jsoo + (prestations_familiales + (prestations_familiales_in_of_j(prestations_familiales_in)))} + function allocations_familiales$0(allocations_familiales_in) + {return allocations_familiales_to_jsoo + (allocations_familiales + (allocations_familiales_in_of_j(allocations_familiales_in)))} + function interface_allocations_familial$4 + (interface_allocations_familial$1) + {return interface_allocations_familial$0 + (interface_allocations_familial + (interface_allocations_familial$3 + (interface_allocations_familial$1)))} + function t176(param) + {return caml_js_wrap_callback(interface_allocations_familial$4)} + function t175(param) + {return caml_js_wrap_callback(allocations_familiales$0)} + function t174(param) + {return caml_js_wrap_callback(prestations_familiales$0)} + function t173(param) + {return caml_js_wrap_callback(base_mensuelle_allocations_fam$4)} + function t172(param){return caml_js_wrap_callback(smic$0)} + function t171(param) + {return caml_js_wrap_callback(verification_age_superieur_a$0)} + function t170(param) + {return caml_js_wrap_callback(verification_age_inferieur_ou_$4)} + function t169(param){return caml_js_wrap_callback(enfant_le_plus_age$0)} + function t168(param) + {return caml_js_wrap_callback(allocation_familiales_avril200$4)} + caml_call2 + (Js_of_ocaml_Js[50], + cst_AllocationsFamilialesLib, + {"allocationFamilialesAvril2008":caml_js_wrap_meth_callback(t168), + "enfantLePlusAge":caml_js_wrap_meth_callback(t169), + "verificationAgeInferieurOuEgalA":caml_js_wrap_meth_callback(t170), + "verificationAgeSuperieurA":caml_js_wrap_meth_callback(t171), + "smic":caml_js_wrap_meth_callback(t172), + "baseMensuelleAllocationsFamiliales":caml_js_wrap_meth_callback(t173), + "prestationsFamiliales":caml_js_wrap_meth_callback(t174), + "allocationsFamiliales":caml_js_wrap_meth_callback(t175), + "interfaceAllocationsFamiliales":caml_js_wrap_meth_callback(t176)}); var - _bi_ = - caml_call1 - (Runtime_ocaml_Runtime[42], allocations_familiales.montantVerse); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _bi_)]; - } - function verification_age_inferieur_ou_(verification_age_inferieur_ou_){return {estInferieurOuEgal: ! ! verification_age_inferieur_ou_[1]}; - } - function verification_age_inferieur_ou_$0(verification_age_inferieur_ou_){return [0, verification_age_inferieur_ou_.estInferieurOuEgal | 0]; - } - function verification_age_superieur_a_t(verification_age_superieur_a){return {estSuperieur: ! ! verification_age_superieur_a[1]}; - } - function verification_age_superieur_a_o(verification_age_superieur_a){return [0, verification_age_superieur_a.estSuperieur | 0]; - } - function smic_to_jsoo(smic){ - return {brutHoraire: caml_call1(Runtime_ocaml_Runtime[35], smic[1])}; - } - function smic_of_jsoo(smic){ - var _bh_ = caml_call1(Runtime_ocaml_Runtime[42], smic.brutHoraire); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _bh_)]; - } - function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ - return {montant: - caml_call1 - (Runtime_ocaml_Runtime[35], base_mensuelle_allocations_fam[1])}; - } - function base_mensuelle_allocations_fam$0(base_mensuelle_allocations_fam){ - var - _bg_ = - caml_call1 - (Runtime_ocaml_Runtime[42], base_mensuelle_allocations_fam.montant); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _bg_)]; - } - function interface_allocations_familial(interface_allocations_familial){ - return {iMontantVerse: - caml_call1 - (Runtime_ocaml_Runtime[35], interface_allocations_familial[1])}; - } - function interface_allocations_familial$0(interface_allocations_familial){ - var - _bf_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - interface_allocations_familial.iMontantVerse); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _bf_)]; - } - function enfant_entree_to_jsoo(enfant_entree){ - var - _ba_ = ! ! enfant_entree[6], - _bb_ = ! ! enfant_entree[5], - _bc_ = prise_en_charge_to_jsoo(enfant_entree[4]), - _bd_ = caml_call1(Runtime_jsoo_Runtime[5], enfant_entree[3]), - _be_ = caml_call1(Runtime_ocaml_Runtime[35], enfant_entree[2]); - return {dIdentifiant: - caml_call1(Runtime_ocaml_Runtime[48], enfant_entree[1]), - dRemunerationMensuelle: _be_, - dDateDeNaissance: _bd_, - dPriseEnCharge: _bc_, - dADejaOuvertDroitAuxAllocationsFamiliales: _bb_, - dBeneficieTitrePersonnelAidePersonnelleLogement: _ba_}; - } - function enfant_entree_of_jsoo(enfant_entree){ - var - _a6_ = enfant_entree.dBeneficieTitrePersonnelAidePersonnelleLogement | 0, - _a7_ = enfant_entree.dADejaOuvertDroitAuxAllocationsFamiliales | 0, - _a8_ = prise_en_charge_of_jsoo(enfant_entree.dPriseEnCharge), - _a9_ = - caml_call1(Runtime_jsoo_Runtime[4], enfant_entree.dDateDeNaissance), - _a__ = - caml_call1 - (Runtime_ocaml_Runtime[42], enfant_entree.dRemunerationMensuelle), - _a$_ = caml_call1(Runtime_ocaml_Runtime[33], _a__); - return [0, - caml_call1(Runtime_ocaml_Runtime[49], enfant_entree.dIdentifiant), - _a$_, - _a9_, - _a8_, - _a7_, - _a6_]; - } - function enfant_to_jsoo(enfant){ - var - _a0_ = ! ! enfant[7], - _a1_ = ! ! enfant[6], - _a2_ = prise_en_charge_to_jsoo(enfant[5]), - _a3_ = caml_call1(Runtime_jsoo_Runtime[5], enfant[4]), - _a4_ = caml_call1(Runtime_ocaml_Runtime[35], enfant[3]), - _a5_ = situation_obligation_scolaire_(enfant[2]); - return {identifiant: caml_call1(Runtime_ocaml_Runtime[48], enfant[1]), - obligationScolaire: _a5_, - remunerationMensuelle: _a4_, - dateDeNaissance: _a3_, - priseEnCharge: _a2_, - aDejaOuvertDroitAuxAllocationsFamiliales: _a1_, - beneficieTitrePersonnelAidePersonnelleLogement: _a0_}; - } - function enfant_of_jsoo(enfant){ - var - _aT_ = enfant.beneficieTitrePersonnelAidePersonnelleLogement | 0, - _aU_ = enfant.aDejaOuvertDroitAuxAllocationsFamiliales | 0, - _aV_ = prise_en_charge_of_jsoo(enfant.priseEnCharge), - _aW_ = caml_call1(Runtime_jsoo_Runtime[4], enfant.dateDeNaissance), - _aX_ = - caml_call1(Runtime_ocaml_Runtime[42], enfant.remunerationMensuelle), - _aY_ = caml_call1(Runtime_ocaml_Runtime[33], _aX_), - _aZ_ = situation_obligation_scolaire_$0(enfant.obligationScolaire); - return [0, - caml_call1(Runtime_ocaml_Runtime[49], enfant.identifiant), - _aZ_, - _aY_, - _aW_, - _aV_, - _aU_, - _aT_]; - } - function enfant_le_plus_age_to_jsoo(enfant_le_plus_age){ - return {lePlusAge: enfant_to_jsoo(enfant_le_plus_age[1])}; - } - function enfant_le_plus_age_of_jsoo(enfant_le_plus_age){ - return [0, enfant_of_jsoo(enfant_le_plus_age.lePlusAge)]; - } - function prestations_familiales_to_jsoo(prestations_familiales){ - var - t111 = ! ! prestations_familiales[4], - t110 = caml_call1(Runtime_jsoo_Runtime[3], prestations_familiales[3]); - function t109(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var _aS_ = enfant_of_jsoo(function_input0); - return ! ! caml_call1(prestations_familiales[2], _aS_); - }); - } - function t108(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var _aR_ = enfant_of_jsoo(function_input0); - return ! ! caml_call1(prestations_familiales[1], _aR_); - }); - } - return {droitOuvert: caml_js_wrap_meth_callback(t108), - conditionsHorsAge: caml_js_wrap_meth_callback(t109), - ageL51232: t110, - regimeOutreMerL7511: t111}; - } - function prestations_familiales_of_jsoo(prestations_familiales){ - var - _aO_ = prestations_familiales.regimeOutreMerL7511 | 0, - _aP_ = - caml_call1(Runtime_jsoo_Runtime[2], prestations_familiales.ageL51232), - _aQ_ = caml_call1(Stdlib[2], cst_The_function_conditions_ho); - return [0, - caml_call1(Stdlib[2], cst_The_function_droit_ouvert_), - _aQ_, - _aP_, - _aO_]; - } - function prestations_familiales_in_to_j(prestations_familiales_in){ - var - _aM_ = collectivite_to_jsoo(prestations_familiales_in[3]), - _aN_ = element_prestations_familiales(prestations_familiales_in[2]); - return {dateCouranteIn: - caml_call1(Runtime_jsoo_Runtime[5], prestations_familiales_in[1]), - prestationCouranteIn: _aN_, - residenceIn: _aM_}; - } - function prestations_familiales_in_of_j(prestations_familiales_in){ - var - _aK_ = collectivite_of_jsoo(prestations_familiales_in.residenceIn), - _aL_ = - element_prestations_familiales$0 - (prestations_familiales_in.prestationCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - prestations_familiales_in.dateCouranteIn), - _aL_, - _aK_]; - } - function allocation_familiales_avril200$1(param){return {};} - function allocation_familiales_avril200$2(param){return 0;} - function enfant_le_plus_age_in_to_jsoo(enfant_le_plus_age_in){ - var _aI_ = enfant_le_plus_age_in[1]; - function _aJ_(x){return enfant_to_jsoo(x);} - return {enfantsIn: - caml_js_from_array(caml_call2(Stdlib_Array[15], _aJ_, _aI_))}; - } - function enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in){ - var _aG_ = caml_js_to_array(enfant_le_plus_age_in.enfantsIn); - function _aH_(x){return enfant_of_jsoo(x);} - return [0, caml_call1(caml_call1(Stdlib_Array[15], _aH_), _aG_)]; - } - function allocations_familiales_in_to_j(allocations_familiales_in){ - var - _az_ = ! ! allocations_familiales_in[7], - _aA_ = allocations_familiales_in[6]; - function _aB_(x){return enfant_to_jsoo(x);} - var - _aC_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _aB_, _aA_)), - _aD_ = caml_call1(Runtime_jsoo_Runtime[5], allocations_familiales_in[5]), - _aE_ = collectivite_to_jsoo(allocations_familiales_in[4]), - _aF_ = - caml_call1(Runtime_ocaml_Runtime[35], allocations_familiales_in[3]); - return {personneChargeEffectivePermanenteEstParentIn: - ! - ! - allocations_familiales_in[1], - personneChargeEffectivePermanenteRemplitTitreIIn: - ! - ! - allocations_familiales_in[2], - ressourcesMenageIn: _aF_, - residenceIn: _aE_, - dateCouranteIn: _aD_, - enfantsAChargeIn: _aC_, - avaitEnfantAChargeAvant1erJanvier2012In: _az_}; - } - function allocations_familiales_in_of_j(allocations_familiales_in){ - var - _ar_ = - allocations_familiales_in.avaitEnfantAChargeAvant1erJanvier2012In | 0, - _as_ = caml_js_to_array(allocations_familiales_in.enfantsAChargeIn); - function _at_(x){return enfant_of_jsoo(x);} - var - _au_ = caml_call1(caml_call1(Stdlib_Array[15], _at_), _as_), - _av_ = - caml_call1 - (Runtime_jsoo_Runtime[4], allocations_familiales_in.dateCouranteIn), - _aw_ = collectivite_of_jsoo(allocations_familiales_in.residenceIn), - _ax_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - allocations_familiales_in.ressourcesMenageIn), - _ay_ = caml_call1(Runtime_ocaml_Runtime[33], _ax_); - return [0, - allocations_familiales_in.personneChargeEffectivePermanenteEstParentIn - | 0, - allocations_familiales_in.personneChargeEffectivePermanenteRemplitTitreIIn - | 0, - _ay_, - _aw_, - _av_, - _au_, - _ar_]; - } - function verification_age_inferieur_ou_$1(verification_age_inferieur_ou_){ - var - _ap_ = - caml_call1(Runtime_jsoo_Runtime[3], verification_age_inferieur_ou_[3]), - _aq_ = - caml_call1(Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[2]); - return {dateNaissanceIn: - caml_call1 - (Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[1]), - dateCouranteIn: _aq_, - anneesIn: _ap_}; - } - function verification_age_inferieur_ou_$2(verification_age_inferieur_ou_){ - var - _an_ = - caml_call1 - (Runtime_jsoo_Runtime[2], verification_age_inferieur_ou_.anneesIn), - _ao_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateNaissanceIn), - _ao_, - _an_]; - } - function verification_age_superieur_a_i(verification_age_superieur_a_i){ - var - _al_ = - caml_call1(Runtime_jsoo_Runtime[3], verification_age_superieur_a_i[3]), - _am_ = - caml_call1(Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[2]); - return {dateNaissanceIn: - caml_call1 - (Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[1]), - dateCouranteIn: _am_, - anneesIn: _al_}; - } - function verification_age_superieur_a_i$0(verification_age_superieur_a_i){ - var - _aj_ = - caml_call1 - (Runtime_jsoo_Runtime[2], verification_age_superieur_a_i.anneesIn), - _ak_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateNaissanceIn), - _ak_, - _aj_]; - } - function smic_in_to_jsoo(smic_in){ - var _ai_ = collectivite_to_jsoo(smic_in[2]); - return {dateCouranteIn: caml_call1(Runtime_jsoo_Runtime[5], smic_in[1]), - residenceIn: _ai_}; - } - function smic_in_of_jsoo(smic_in){ - var _ah_ = collectivite_of_jsoo(smic_in.residenceIn); - return [0, - caml_call1(Runtime_jsoo_Runtime[4], smic_in.dateCouranteIn), - _ah_]; - } - function base_mensuelle_allocations_fam$1(base_mensuelle_allocations_fam){ - return {dateCouranteIn: - caml_call1 - (Runtime_jsoo_Runtime[5], base_mensuelle_allocations_fam[1])}; - } - function base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam){ - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - base_mensuelle_allocations_fam.dateCouranteIn)]; - } - function interface_allocations_familial$1(interface_allocations_familial){ - var - _$_ = ! ! interface_allocations_familial[7], - _aa_ = ! ! interface_allocations_familial[6], - _ab_ = ! ! interface_allocations_familial[5], - _ac_ = collectivite_to_jsoo(interface_allocations_familial[4]), - _ad_ = - caml_call1 - (Runtime_ocaml_Runtime[35], interface_allocations_familial[3]), - _ae_ = interface_allocations_familial[2]; - function _af_(x){return enfant_entree_to_jsoo(x);} - var _ag_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _af_, _ae_)); - return {iDateCouranteIn: - caml_call1 - (Runtime_jsoo_Runtime[5], interface_allocations_familial[1]), - iEnfantsIn: _ag_, - iRessourcesMenageIn: _ad_, - iResidenceIn: _ac_, - iPersonneChargeEffectivePermanenteEstParentIn: _ab_, - iPersonneChargeEffectivePermanenteRemplitTitreIIn: _aa_, - iAvaitEnfantAChargeAvant1erJanvier2012In: _$_}; - } - function interface_allocations_familial$2(interface_allocations_familial){ - var - _S_ = - interface_allocations_familial.iAvaitEnfantAChargeAvant1erJanvier2012In - | 0, - _T_ = - interface_allocations_familial.iPersonneChargeEffectivePermanenteRemplitTitreIIn - | 0, - _U_ = - interface_allocations_familial.iPersonneChargeEffectivePermanenteEstParentIn - | 0, - _V_ = collectivite_of_jsoo(interface_allocations_familial.iResidenceIn), - _W_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - interface_allocations_familial.iRessourcesMenageIn), - _X_ = caml_call1(Runtime_ocaml_Runtime[33], _W_), - _Y_ = caml_js_to_array(interface_allocations_familial.iEnfantsIn); - function _Z_(x){return enfant_entree_of_jsoo(x);} - var ___ = caml_call1(caml_call1(Stdlib_Array[15], _Z_), _Y_); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - interface_allocations_familial.iDateCouranteIn), - ___, - _X_, - _V_, - _U_, - _T_, - _S_]; - } - function allocation_familiales_avril200$3(allocation_familiales_avril200$0){ - return allocation_familiales_avril200 - (caml_call1(Law_source_Allocations_familia[53], 0)); - } - function enfant_le_plus_age(enfant_le_plus_age_in){ - var _R_ = enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in); - return enfant_le_plus_age_to_jsoo - (caml_call1(Law_source_Allocations_familia[54], _R_)); - } - function verification_age_inferieur_ou_$3(verification_age_inferieur_ou_$0){ - var - _Q_ = verification_age_inferieur_ou_$2(verification_age_inferieur_ou_$0); - return verification_age_inferieur_ou_ - (caml_call1(Law_source_Allocations_familia[55], _Q_)); - } - function verification_age_superieur_a(verification_age_superieur_a_i){ - var - _P_ = verification_age_superieur_a_i$0(verification_age_superieur_a_i); - return verification_age_superieur_a_t - (caml_call1(Law_source_Allocations_familia[56], _P_)); - } - function smic(smic_in){ - var _O_ = smic_in_of_jsoo(smic_in); - return smic_to_jsoo(caml_call1(Law_source_Allocations_familia[57], _O_)); - } - function base_mensuelle_allocations_fam$3(base_mensuelle_allocations_fam$0){ - var - _N_ = base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam$0); - return base_mensuelle_allocations_fam - (caml_call1(Law_source_Allocations_familia[58], _N_)); - } - function prestations_familiales(prestations_familiales_in){ - var _M_ = prestations_familiales_in_of_j(prestations_familiales_in); - return prestations_familiales_to_jsoo - (caml_call1(Law_source_Allocations_familia[59], _M_)); - } - function allocations_familiales(allocations_familiales_in){ - var _L_ = allocations_familiales_in_of_j(allocations_familiales_in); - return allocations_familiales_to_jsoo - (caml_call1(Law_source_Allocations_familia[60], _L_)); - } - function interface_allocations_familial$3(interface_allocations_familial$0){ - var - _K_ = interface_allocations_familial$2(interface_allocations_familial$0); - return interface_allocations_familial - (caml_call1(Law_source_Allocations_familia[61], _K_)); - } - function t176(param){ - return caml_js_wrap_callback(interface_allocations_familial$3); - } - function t175(param){return caml_js_wrap_callback(allocations_familiales);} - function t174(param){return caml_js_wrap_callback(prestations_familiales);} - function t173(param){ - return caml_js_wrap_callback(base_mensuelle_allocations_fam$3); - } - function t172(param){return caml_js_wrap_callback(smic);} - function t171(param){ - return caml_js_wrap_callback(verification_age_superieur_a); - } - function t170(param){ - return caml_js_wrap_callback(verification_age_inferieur_ou_$3); - } - function t169(param){return caml_js_wrap_callback(enfant_le_plus_age);} - function t168(param){ - return caml_js_wrap_callback(allocation_familiales_avril200$3); - } - caml_call2 - (Js_of_ocaml_Js[50], - cst_AllocationsFamilialesLib, - {allocationFamilialesAvril2008: caml_js_wrap_meth_callback(t168), - enfantLePlusAge: caml_js_wrap_meth_callback(t169), - verificationAgeInferieurOuEgalA: caml_js_wrap_meth_callback(t170), - verificationAgeSuperieurA: caml_js_wrap_meth_callback(t171), - smic: caml_js_wrap_meth_callback(t172), - baseMensuelleAllocationsFamiliales: caml_js_wrap_meth_callback(t173), - prestationsFamiliales: caml_js_wrap_meth_callback(t174), - allocationsFamiliales: caml_js_wrap_meth_callback(t175), - interfaceAllocationsFamiliales: caml_js_wrap_meth_callback(t176)}); - var - Law_source_Allocations_familia$0 = + Law_source_Allocations_familia$0= [0, prise_en_charge_to_jsoo, prise_en_charge_of_jsoo, @@ -57659,20 +105512,20 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ element_prestations_familiales$0, collectivite_to_jsoo, collectivite_of_jsoo, - allocation_familiales_avril200, allocation_familiales_avril200$0, + allocation_familiales_avril200$1, allocations_familiales_to_jsoo, allocations_familiales_of_jsoo, - verification_age_inferieur_ou_, verification_age_inferieur_ou_$0, + verification_age_inferieur_ou_$1, verification_age_superieur_a_t, verification_age_superieur_a_o, smic_to_jsoo, smic_of_jsoo, - base_mensuelle_allocations_fam, base_mensuelle_allocations_fam$0, - interface_allocations_familial, + base_mensuelle_allocations_fam$1, interface_allocations_familial$0, + interface_allocations_familial$1, enfant_entree_to_jsoo, enfant_entree_of_jsoo, enfant_to_jsoo, @@ -57683,63795 +105536,25002 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ prestations_familiales_of_jsoo, prestations_familiales_in_to_j, prestations_familiales_in_of_j, - allocation_familiales_avril200$1, allocation_familiales_avril200$2, + allocation_familiales_avril200$3, enfant_le_plus_age_in_to_jsoo, enfant_le_plus_age_in_of_jsoo, allocations_familiales_in_to_j, allocations_familiales_in_of_j, - verification_age_inferieur_ou_$1, verification_age_inferieur_ou_$2, + verification_age_inferieur_ou_$3, verification_age_superieur_a_i, verification_age_superieur_a_i$0, smic_in_to_jsoo, smic_in_of_jsoo, - base_mensuelle_allocations_fam$1, base_mensuelle_allocations_fam$2, - interface_allocations_familial$1, - interface_allocations_familial$2, - allocation_familiales_avril200$3, - enfant_le_plus_age, - verification_age_inferieur_ou_$3, - verification_age_superieur_a, - smic, base_mensuelle_allocations_fam$3, - prestations_familiales, - allocations_familiales, - interface_allocations_familial$3]; - runtime.caml_register_global - (374, - Law_source_Allocations_familia$0, - "Law_source__Allocations_familiales_api_web"); - return; - } - (globalThis)); - -//# 12185 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_Archives_de_l_arr_t_du_27_ = - "Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement", - cst_Arr_t_du_19_avril_2022_rel = - "Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", - cst_Arr_t_du_27_septembre_2019 = - "Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement", - cst_Arr_t_du_29_juillet_2022_r = - "Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", - cst_Articles_en_vigueur_partir = - "Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A", - cst_Articles_en_vigueur_partir$2 = - "Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A", - cst_Articles_en_vigueur_partir$3 = - "Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A", - cst_Articles_en_vigueur_partir$1 = - "Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A", - cst_Articles_en_vigueur_partir$0 = - "Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A", - cst_AutrePersonne_Charge$0 = "AutrePersonne\xc3\x80Charge", - cst_Calcul_du_montant_de_l_aid = - "Calcul du montant de l'aide personnalis\xc3\xa9e au logement", - cst_CalculAidePersonnalis_eLog = "CalculAidePersonnalis\xc3\xa9eLogement", - cst_CalculAidePersonnalis_eLog$2 = - "CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9", - cst_CalculAidePersonnalis_eLog$1 = - "CalculAidePersonnalis\xc3\xa9eLogementFoyer", - cst_CalculAidePersonnalis_eLog$0 = - "CalculAidePersonnalis\xc3\xa9eLogementLocatif", - cst_CalculAllocationLogementAc = - "CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9", - cst_CalculNombrePartsAccession = - "CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9", - cst_Calculette_avec_garde_alte = "Calculette avec garde altern\xc3\xa9e", - cst_CalculetteAidesAuLogementG = - "CalculetteAidesAuLogementGardeAltern\xc3\xa9e", - cst_Calcul_quivalenceLoyerMini = "Calcul\xc3\x89quivalenceLoyerMinimale", - cst_Capitre_I_Guadeloupe_Guyan = - "Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte", - cst_Chapitre_2_Modalit_s_de_li = - "Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement", - cst_Chapitre_5_Allocation_de_s = - "Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es", - cst_Chapitre_II_Conditions_g_n = - "Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution", - cst_Chapitre_II_Modalit_s_de_l = - "Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement", - cst_Chapitre_II_Saint_Barth_le = - "Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin", - cst_Chapitre_III_Modalit_s_de_ = - "Chapitre III : Modalit\xc3\xa9s de liquidation et de versement", - cst_Chapitre_IV_Calcul_de_l_ai = - "Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession", - cst_Chapitre_IV_Impay_s_de_d_p = - "Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement", - cst_Chapitre_Ier_Guadeloupe_Gu = - "Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte", - cst_Chapitre_V_Calcul_de_l_aid = - "Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer", - cst_Code_de_la_s_curit_sociale = - "Code de la s\xc3\xa9curit\xc3\xa9 sociale", - cst_Compl_mentFamilial$1 = "Compl\xc3\xa9mentFamilial", - cst_Date_d_ouverture_des_droit = - "Date d'ouverture des droits \xc3\xa0 la retraite", - cst_D_clarations_des_champs_d_ = - "D\xc3\xa9clarations des champs d'application", - cst_D_cret_n_2018_1173_du_19_d = - "D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance", - cst_D_cret_n_2019_1387_du_18_d = - "D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance", - cst_D_cret_n_2020_1598_du_16_d = - "D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance", - cst_D_cret_n_2021_1741_du_22_d = - "D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance", - cst_D_cret_n_2022_1608_du_22_d = - "D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance", - cst_Enfant_Charge$0 = "Enfant\xc3\x80Charge", - cst_Impay_D_penseLogement = "Impay\xc3\xa9D\xc3\xa9penseLogement", - cst_Livre_5_Prestations_famili = - "Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es", - cst_Livre_7_R_gimes_divers_Dis = - "Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses", - cst_Livre_I_G_n_ralit_s_Dispos = - "Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base", - cst_Livre_VIII_Allocations_aux = - "Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9", - cst_Montants_revaloris_s_de_l_ = - "Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es", - cst_Ordonnance_n_96_50_du_24_j = - "Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale", - cst_Paragraphe_1_Information_e = - "Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s.", - cst_Partie_l_gislative = "Partie l\xc3\xa9gislative", - cst_Partie_r_glementaire = "Partie r\xc3\xa9glementaire", - cst_Partie_r_glementaire_D_cre$0 = - "Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat", - cst_Partie_r_glementaire_D_cre = - "Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples", - cst_Quantification_des_impay_s = - "Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement", - cst_R_glement_CE_n_2866_98_du_ = - "R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro", - cst_Secteur_accession_la_propr = - "Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9", - cst_Section_1_B_n_ficiaires = "Section 1 : B\xc3\xa9n\xc3\xa9ficiaires", - cst_Section_1_Conditions_relat = - "Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire", - cst_Section_1_Ouverture_du_dro = - "Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es", - cst_Section_1_Seuils_de_consti = - "Section 1 : Seuils de constitution d'un impay\xc3\xa9", - cst_Section_2_Accession_la_pro = - "Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9", - cst_Section_2_Prime_de_d_m_nag = - "Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement", - cst_Sous_Section_2_Conditions_ = - "Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer", - cst_Sous_section_1_Modalit_s_g = - "Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources", - cst_Sous_section_III_Modalit_s = - "Sous-section III : Modalit\xc3\xa9s de liquidation et de versement", - cst_Titre_1_Champ_d_applicatio = - "Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", - cst_Titre_I_Allocations_aux_pe = - "Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es", - cst_Titre_III_Aide_personnalis = - "Titre III : Aide personnalis\xc3\xa9e au logement", - cst_Titre_VI_Disposition_parti = - "Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer", - cst_Titre_VI_Dispositions_part = - "Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer", - cst_Titre_VI_Dispositions_rela = - "Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales", - cst_V_rification_geInf_rieurOu = - "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80", - cst_V_rification_geSup_rieur = - "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80", - cst_a_d_j_ouvert_droit_aux_all$1 = - "a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales", - cst_abattement_d_pense_nette_m = - "abattement_d\xc3\xa9pense_nette_minimale", - cst_abattement_d_pense_nette_m$0 = - "abattement_d\xc3\xa9pense_nette_minimale_d832_10", - cst_abattement_d_pense_nette_m$1 = - "abattement_d\xc3\xa9pense_nette_minimale_d832_27", - cst_ann_es_in$1 = "ann\xc3\xa9es_in", - cst_b_n_ficiaire_aide_adulte_o$4 = - "b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s", - cst_b_n_ficiaire_aide_adulte_o$3 = - "b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s_in", - cst_b_n_ficie_titre_personnel_$1 = - "b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement", - cst_calcul_aide_personnalis_e_ = - "calcul_aide_personnalis\xc3\xa9e_logement", - cst_calcul_apl_logement_foyer_ = - "calcul_apl_logement_foyer.limitation_majoration_personnes_\xc3\xa0_charge", - cst_calcul_apl_logement_foyer_$4 = - "calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge", - cst_calcul_apl_logement_foyer_$3 = - "calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies", - cst_calcul_apl_logement_foyer_$9 = - "calcul_apl_logement_foyer.r\xc3\xa9sidence", - cst_calcul_nombre_parts_nombre = - "calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge", - cst_calcul_nombre_parts_r_side = "calcul_nombre_parts.r\xc3\xa9sidence", - cst_calcul_plafond_mensualit_d$2 = - "calcul_plafond_mensualit\xc3\xa9_d832_10_3", - cst_calcul_plafond_mensualit_d$0 = - "calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9", - cst_calcul_plafond_mensualit_d = - "calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom", - cst_calcul_plafond_mensualit_d$1 = - "calcul_plafond_mensualit\xc3\xa9_d842_6_base", - cst_calcul_quivalence_loyer_mi$3 = - "calcul_\xc3\xa9quivalence_loyer_minimale", - cst_calcul_quivalence_loyer_mi$1 = - "calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25", - cst_calcul_quivalence_loyer_mi = - "calcul_\xc3\xa9quivalence_loyer_minimale.date_courante", - cst_calcul_quivalence_loyer_mi$2 = - "calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25", - cst_calcul_quivalence_loyer_mi$0 = - "calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies", - cst_calculette_sans_garde_alte = "calculette_sans_garde_altern\xc3\xa9e", - cst_caract_ristiques_pr_t_l831$0 = - "caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1", - cst_caract_ristiques_pr_t_l831 = - "caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6", - cst_cat_gorie_calcul_apl = "cat\xc3\xa9gorie_calcul_apl", - cst_coefficents_enfants_garde_$3 = - "coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte", - cst_conditions_hors_ge$0 = "conditions_hors_\xc3\xa2ge", - cst_conventionn_livre_III_titr$2 = - "conventionn\xc3\xa9_livre_III_titre_V_chap_III", - cst_copropri_t_in$1 = "copropri\xc3\xa9t\xc3\xa9_in", - cst_date_entr_e_logement_in$1 = "date_entr\xc3\xa9e_logement_in", - cst_date_signature_pr_t_in$1 = "date_signature_pr\xc3\xaat_in", - cst_d_pense_nette_minimale = "d\xc3\xa9pense_nette_minimale", - cst_d_pense_nette_minimale_d83 = "d\xc3\xa9pense_nette_minimale_d832_10", - cst_d_pense_nette_minimale_d83$0 = "d\xc3\xa9pense_nette_minimale_d832_27", - cst_est_inf_rieur_ou_gal$0 = "est_inf\xc3\xa9rieur_ou_\xc3\xa9gal", - cst_est_sup_rieur$0 = "est_sup\xc3\xa9rieur", - cst_examples_aides_logement_pr$0 = - "examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr", - cst_examples_aides_logement_pr$2 = - "examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr", - cst_examples_aides_logement_co$1 = - "examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr", - cst_limitation_majoration_pers$1 = - "limitation_majoration_personnes_\xc3\xa0_charge", - cst_limitation_majoration_pers$2 = - "limitation_majoration_personnes_\xc3\xa0_charge_in", - cst_local_habit_premi_re_fois_$2 = - "local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire_in", - cst_logement_meubl_d842_2$1 = "logement_meubl\xc3\xa9_d842_2", - cst_logement_meubl_d842_2_in$1 = "logement_meubl\xc3\xa9_d842_2_in", - cst_mensualit_minimale$1 = "mensualit\xc3\xa9_minimale", - cst_mensualit_principale_in$1 = "mensualit\xc3\xa9_principale_in", - cst_mensualit_ligible$1 = "mensualit\xc3\xa9_\xc3\xa9ligible", - cst_montant_impay$0 = "montant_impay\xc3\xa9", - cst_montant_prime_d_m_nagement$0 = - "montant_prime_d\xc3\xa9m\xc3\xa9nagement", - cst_m_nage_in$5 = "m\xc3\xa9nage_in", - cst_nationalit$1 = "nationalit\xc3\xa9", - cst_nombre_personnes_charge_in$9 = "nombre_personnes_\xc3\xa0_charge_in", - cst_nombre_personnes_charge_pr$2 = - "nombre_personnes_\xc3\xa0_charge_prises_en_compte", - cst_plafond_quivalence_loyer_l$0 = - "plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible", - cst_prestations_familiales_r_s = "prestations_familiales.r\xc3\xa9sidence", - cst_prise_en_compte_personne_c = - "prise_en_compte_personne_\xc3\xa0_charge", - cst_ressources_m_nage_arrondie$8 = - "ressources_m\xc3\xa9nage_arrondies_base_in", - cst_ressources_m_nage_arrondie$7 = "ressources_m\xc3\xa9nage_arrondies_in", - cst_ressources_m_nage_avec_arr = "ressources_m\xc3\xa9nage_avec_arrondi", - cst_ressources_m_nage_prises_e$1 = - "ressources_m\xc3\xa9nage_prises_en_compte_in", - cst_ressources_m_nage_sans_arr$1 = - "ressources_m\xc3\xa9nage_sans_arrondi_in", - cst_r_duction_loyer_solidarit_$2 = - "r\xc3\xa9duction_loyer_solidarit\xc3\xa9_in", - cst_r_gime_outre_mer_l751_1$0 = "r\xc3\xa9gime_outre_mer_l751_1", - cst_r_muneration_mensuelle$1 = "r\xc3\xa9muneration_mensuelle", - cst_r_sidence_in$9 = "r\xc3\xa9sidence_in", - cst_traitement_aide_finale_dim = "traitement_aide_finale_diminu\xc3\xa9", - cst_traitement_aide_finale_d_p = - "traitement_aide_finale_d\xc3\xa9pense_nette_minimale", - cst_traitement_aide_finale_r_d = - "traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9", - cst_ligibilit_aux_aides_person = - "\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement", - cst_ligibilit_aux_allocations_ = - "\xc3\x89ligibilit\xc3\xa9 aux allocations de logement", - cst_ligibilit_l_aide_personnal = - "\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement", - cst_ligibilit_la_prime_de_d_m_ = - "\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement", - cst_ligibilit_AidePersonnalis_ = - "\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement", - cst_ligibilit_AidesPersonnelle = - "\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement", - cst_ligibilit_AllocationLogeme = - "\xc3\x89ligibilit\xc3\xa9AllocationLogement", - cst_ligibilit_PrestationsFamil = - "\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales", - cst_ligibilit_PrimeDeD_m_nagem = - "\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement", - cst_ge_l512_3_2$0 = "\xc3\xa2ge_l512_3_2", - cst_ge_ouverture_droit$0 = "\xc3\xa2ge_ouverture_droit", - cst_g_es_ou_handicap_adultes_h$2 = - "\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers_in", - cst_ligibilit$4 = "\xc3\xa9ligibilit\xc3\xa9", - cst_ligibilit_aide_personnalis = - "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement", - cst_ligibilit_allocation_logem = - "\xc3\xa9ligibilit\xc3\xa9_allocation_logement", - cst_ligibilit_apl = "\xc3\xa9ligibilit\xc3\xa9_apl", - cst_ligibilit_commune = "\xc3\xa9ligibilit\xc3\xa9_commune", - cst_ligibilit_commune_date_cou = - "\xc3\xa9ligibilit\xc3\xa9_commune.date_courante", - cst_ligibilit_commune_demandeu = - "\xc3\xa9ligibilit\xc3\xa9_commune.demandeur", - cst_ligibilit_commune_m_nage = - "\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage", - cst_ligibilit_logement = "\xc3\xa9ligibilit\xc3\xa9_logement", - cst_quivalence_loyer$0 = "\xc3\xa9quivalence_loyer", - cst_quivalence_loyer_minimale$0 = "\xc3\xa9quivalence_loyer_minimale", - cst_quivalence_loyer_ligible$0 = - "\xc3\xa9quivalence_loyer_\xc3\xa9ligible", - cst_0$359 = "0", - cst_0$360 = "0.", - cst_0_0006$3 = "0.0006", - cst_0_0045$8 = "0.0045", - cst_0_005$3 = "0.005", - cst_0_0068$2 = "0.0068", - cst_0_01$1 = "0.01", - cst_0_0162$5 = "0.0162", - cst_0_0167$1 = "0.0167", - cst_0_0169$5 = "0.0169", - cst_0_0173$5 = "0.0173", - cst_0_0179$2 = "0.0179", - cst_0_018$5 = "0.018", - cst_0_0185$2 = "0.0185", - cst_0_0194$5 = "0.0194", - cst_0_0201$2 = "0.0201", - cst_0_0217$5 = "0.0217", - cst_0_0226$1 = "0.0226", - cst_0_0234$2 = "0.0234", - cst_0_0238$8 = "0.0238", - cst_0_027$2 = "0.027", - cst_0_0281$5 = "0.0281", - cst_0_0283$2 = "0.0283", - cst_0_0299$5 = "0.0299", - cst_0_0315$2 = "0.0315", - cst_0_085$5 = "0.085", - cst_0_1$1 = "0.1", - cst_0_2$2 = "0.2", - cst_0_208$1 = "0.208", - cst_0_3$2 = "0.3", - cst_0_45$5 = "0.45", - cst_0_5$2 = "0.5", - cst_0_55$1 = "0.55", - cst_0_75$14 = "0.75", - cst_0_9$3 = "0.9", - cst_0_95$5 = "0.95", - cst_0_98$1 = "0.98", - cst_1$254 = "1", - cst_1$255 = "1.", - cst_1_25$1 = "1.25", - cst_1_4$1 = "1.4", - cst_1_8$1 = "1.8", - cst_100$13 = "100.", - cst_1000$5 = "1000", - cst_100000$5 = "100000.", - cst_1062600$1 = "1062600", - cst_12$4 = "12.", - cst_1224$6 = "1224", - cst_1229$6 = "1229", - cst_1272$6 = "1272", - cst_132000$1 = "132000", - cst_139700$1 = "139700", - cst_140800$1 = "140800", - cst_142303$1 = "142303", - cst_149600$1 = "149600", - cst_1500$2 = "1500", - cst_16$4 = "16", - cst_16_25$1 = "16.25", - cst_163000$1 = "163000", - cst_167600$1 = "167600", - cst_167800$1 = "167800", - cst_169$1 = "169.", - cst_16941$1 = "16941", - cst_17012$1 = "17012", - cst_172500$1 = "172500", - cst_173600$1 = "173600", - cst_17607$1 = "17607", - cst_179800$1 = "179800", - cst_180100$2 = "180100", - cst_181800$1 = "181800", - cst_18185$1 = "18185", - cst_18261$1 = "18261", - cst_184000$2 = "184000", - cst_1858$3 = "1858", - cst_185800$1 = "185800", - cst_186000$1 = "186000", - cst_1864$3 = "1864", - cst_1872$7 = "1872", - cst_18900$1 = "18900", - cst_19100$2 = "19100", - cst_192500$1 = "192500", - cst_19300$1 = "19300", - cst_1938$5 = "1938", - cst_19402$1 = "19402", - cst_194810$1 = "194810", - cst_19484$1 = "19484", - cst_195500$1 = "195500", - cst_197700$1 = "197700", - cst_199900$2 = "199900", - cst_2$105 = "2", - cst_2$106 = "2.", - cst_2_5$5 = "2.5", - cst_20100$1 = "20100", - cst_20165$1 = "20165", - cst_201700$1 = "201700", - cst_202500$2 = "202500", - cst_204700$1 = "204700", - cst_204761$1 = "204761", - cst_208200$1 = "208200", - cst_208500$1 = "208500", - cst_208600$2 = "208600", - cst_20900$1 = "20900", - cst_210600$1 = "210600", - cst_210900$1 = "210900", - cst_214700$1 = "214700", - cst_217600$1 = "217600", - cst_218700$1 = "218700", - cst_219900$1 = "219900", - cst_220100$1 = "220100", - cst_221100$1 = "221100", - cst_222300$1 = "222300", - cst_22262$1 = "22262", - cst_22355$1 = "22355", - cst_223900$1 = "223900", - cst_225000$1 = "225000", - cst_225100$1 = "225100", - cst_225500$1 = "225500", - cst_228000$1 = "228000", - cst_230500$3 = "230500", - cst_230700$1 = "230700", - cst_23138$1 = "23138", - cst_233000$1 = "233000", - cst_234600$1 = "234600", - cst_235800$1 = "235800", - cst_237200$1 = "237200", - cst_240200$1 = "240200", - cst_240400$1 = "240400", - cst_242800$3 = "242800", - cst_245700$1 = "245700", - cst_25116$1 = "25116", - cst_251500$1 = "251500", - cst_25978$1 = "25978", - cst_261800$1 = "261800", - cst_262985$1 = "262985", - cst_26329$1 = "26329", - cst_26440$1 = "26440", - cst_26714$1 = "26714", - cst_267871$1 = "267871", - cst_26887$1 = "26887", - cst_2699$2 = "2699", - cst_2710$2 = "2710", - cst_27365$1 = "27365", - cst_27900$1 = "27900", - cst_2805$2 = "2805", - cst_294500$1 = "294500", - cst_3$101 = "3", - cst_3$102 = "3.", - cst_3_1$1 = "3.1", - cst_3_7$2 = "3.7", - cst_30500$3 = "30500", - cst_31264$1 = "31264", - cst_31664$1 = "31664", - cst_31797$2 = "31797", - cst_32910$1 = "32910", - cst_32956$1 = "32956", - cst_33500$1 = "33500", - cst_33623$1 = "33623", - cst_34301$1 = "34301", - cst_34570$1 = "34570", - cst_34700$1 = "34700", - cst_34713$1 = "34713", - cst_34829$1 = "34829", - cst_34865$1 = "34865", - cst_35000$1 = "35000", - cst_35130$1 = "35130", - cst_3524$1 = "3524", - cst_3539$1 = "3539", - cst_35630$1 = "35630", - cst_35762$1 = "35762", - cst_35780$1 = "35780", - cst_35947$1 = "35947", - cst_3614$9 = "3614", - cst_3625$9 = "3625", - cst_36378$1 = "36378", - cst_3640$19 = "3640", - cst_3663$1 = "3663", - cst_36733$1 = "36733", - cst_36815$1 = "36815", - cst_37032$1 = "37032", - cst_37457$1 = "37457", - cst_37478$1 = "37478", - cst_3767$14 = "3767", - cst_37778$1 = "37778", - cst_37900$1 = "37900", - cst_37906$1 = "37906", - cst_38361$1 = "38361", - cst_38527$1 = "38527", - cst_38892$1 = "38892", - cst_389618$1 = "389618", - cst_39016$1 = "39016", - cst_39051$1 = "39051", - cst_39340$1 = "39340", - cst_39445$1 = "39445", - cst_39590$1 = "39590", - cst_39839$1 = "39839", - cst_4$98 = "4", - cst_4_3$3 = "4.3", - cst_40144$1 = "40144", - cst_40696$1 = "40696", - cst_40758$1 = "40758", - cst_40888$1 = "40888", - cst_40928$1 = "40928", - cst_409505$1 = "409505", - cst_40961$1 = "40961", - cst_41252$1 = "41252", - cst_41268$1 = "41268", - cst_41338$1 = "41338", - cst_41392$1 = "41392", - cst_41751$1 = "41751", - cst_42469$1 = "42469", - cst_42605$1 = "42605", - cst_42892$1 = "42892", - cst_42926$1 = "42926", - cst_43000$1 = "43000", - cst_43074$1 = "43074", - cst_43248$1 = "43248", - cst_43378$1 = "43378", - cst_43505$1 = "43505", - cst_44440$1 = "44440", - cst_44693$1 = "44693", - cst_44729$1 = "44729", - cst_45064$1 = "45064", - cst_45200$1 = "45200", - cst_487000$1 = "487000", - cst_4986$1 = "4986", - cst_5$158 = "5", - cst_5$159 = "5.", - cst_50$4 = "50", - cst_500$4 = "500", - cst_5186$1 = "5186", - cst_5208$1 = "5208", - cst_535744$1 = "535744", - cst_5390$1 = "5390", - cst_5399$8 = "5399", - cst_5422$8 = "5422", - cst_5612$8 = "5612", - cst_6$92 = "6", - cst_6$93 = "6.", - cst_6_55957$1 = "6.55957", - cst_633129$1 = "633129", - cst_697700$1 = "697700", - cst_7$1 = "7", - cst_70$1 = "70", - cst_758400$2 = "758400", - cst_832200$2 = "832200", - cst_850900$1 = "850900", - cst_883400$1 = "883400", - cst_9$3 = "9", - cst_916300$1 = "916300", - cst_924600$1 = "924600", - cst_929$9 = "929", - cst_932$9 = "932", - cst_936$19 = "936", - cst_943900$1 = "943900", - cst_948800$1 = "948800", - cst_969$14 = "969", - cst_981600$3 = "981600", - cst_997500$1 = "997500", - cst_AllocationLogementFamilial$1 = "AllocationLogementFamiliale", - cst_AllocationLogementSociale$1 = "AllocationLogementSociale", - cst_AllocationSoutienFamilial$1 = "AllocationSoutienFamilial", - cst_AllocationsFamiliales$1 = "AllocationsFamiliales", - cst_Article_1 = "Article 1", - cst_Article_10 = "Article 10", - cst_Article_13 = "Article 13", - cst_Article_14 = "Article 14", - cst_Article_15 = "Article 15", - cst_Article_16 = "Article 16", - cst_Article_17 = "Article 17", - cst_Article_18 = "Article 18", - cst_Article_19 = "Article 19", - cst_Article_2 = "Article 2", - cst_Article_23 = "Article 23", - cst_Article_24 = "Article 24", - cst_Article_27 = "Article 27", - cst_Article_30 = "Article 30", - cst_Article_31 = "Article 31", - cst_Article_33 = "Article 33", - cst_Article_34 = "Article 34", - cst_Article_37 = "Article 37", - cst_Article_38 = "Article 38", - cst_Article_39 = "Article 39", - cst_Article_40 = "Article 40", - cst_Article_43 = "Article 43", - cst_Article_46 = "Article 46", - cst_Article_47 = "Article 47", - cst_Article_7 = "Article 7", - cst_Article_8 = "Article 8", - cst_Article_9 = "Article 9", - cst_Article_D161_2_1_9 = "Article D161-2-1-9", - cst_Article_D815_1 = "Article D815-1", - cst_Article_D823_16 = "Article D823-16", - cst_Article_D823_17 = "Article D823-17", - cst_Article_D823_20 = "Article D823-20", - cst_Article_D823_9 = "Article D823-9", - cst_Article_D832_10 = "Article D832-10", - cst_Article_D832_11 = "Article D832-11", - cst_Article_D832_14 = "Article D832-14", - cst_Article_D832_15 = "Article D832-15", - cst_Article_D832_17 = "Article D832-17", - cst_Article_D832_18 = "Article D832-18", - cst_Article_D832_24 = "Article D832-24", - cst_Article_D832_25 = "Article D832-25", - cst_Article_D832_26 = "Article D832-26", - cst_Article_D832_27 = "Article D832-27", - cst_Article_D842_11 = "Article D842-11", - cst_Article_D842_12 = "Article D842-12", - cst_Article_D842_15 = "Article D842-15", - cst_Article_D842_17 = "Article D842-17", - cst_Article_D842_4 = "Article D842-4", - cst_Article_D842_6 = "Article D842-6", - cst_Article_D842_9 = "Article D842-9", - cst_Article_D861_8 = "Article D861-8", - cst_Article_D862_7 = "Article D862-7", - cst_Article_D863_7 = "Article D863-7", - cst_Article_L161_17_2 = "Article L161-17-2", - cst_Article_L512_3 = "Article L512-3", - cst_Article_L822_2 = "Article L822-2", - cst_Article_L822_3 = "Article L822-3", - cst_Article_L822_4 = "Article L822-4", - cst_Article_L822_5 = "Article L822-5", - cst_Article_L823_1 = "Article L823-1", - cst_Article_L831_1 = "Article L831-1", - cst_Article_L831_2 = "Article L831-2", - cst_Article_L832_3 = "Article L832-3", - cst_Article_L841_1 = "Article L841-1", - cst_Article_L841_2 = "Article L841-2", - cst_Article_L861_5 = "Article L861-5", - cst_Article_L861_6 = "Article L861-6", - cst_Article_L862_3 = "Article L862-3", - cst_Article_R512_2 = "Article R512-2", - cst_Article_R822_1 = "Article R822-1", - cst_Article_R822_2 = "Article R822-2", - cst_Article_R822_22 = "Article R822-22", - cst_Article_R822_25 = "Article R822-25", - cst_Article_R822_7 = "Article R822-7", - cst_Article_R823_4 = "Article R823-4", - cst_Article_R824_1 = "Article R824-1", - cst_Article_R824_2 = "Article R824-2", - cst_Article_R842_14 = "Article R842-14", - cst_Article_R842_5 = "Article R842-5", - cst_Article_R844_4 = "Article R844-4", - cst_Article_R861_5 = "Article R861-5", - cst_Article_R862_2 = "Article R862-2", - cst_Article_premier = "Article premier", - cst_Autre$2 = "Autre", - cst_BaseMensuelleAllocationsFa = "BaseMensuelleAllocationsFamiliales", - cst_Calcul_des_contributions_s = - "Calcul des contributions sociales s'appliquant aux aides personnelles au logement", - cst_Calcul_du_montant_de_l_all = - "Calcul du montant de l'allocation logement", - cst_CalculAllocationLogement = "CalculAllocationLogement", - cst_CalculAllocationLogementFo = "CalculAllocationLogementFoyer", - cst_CalculAllocationLogementLo = "CalculAllocationLogementLocatif", - cst_CalculNombrePartLogementFo = "CalculNombrePartLogementFoyer", - cst_Calculette_globale = "Calculette globale", - cst_CalculetteAidesAuLogement = "CalculetteAidesAuLogement", - cst_Chapitre_1er_Dispositions_ = - "Chapitre 1er : Dispositions relatives aux prestations", - cst_Chapitre_2_Champ_d_applica = "Chapitre 2 : Champ d'application", - cst_Chapitre_2_Champ_d_applica$0 = "Chapitre 2 : Champ d'application.", - cst_Chapitre_II_Des_contributi = - "Chapitre II : Des contributions pour le remboursement de la dette sociale.", - cst_Chapitre_II_Dispositions_a = - "Chapitre II : Dispositions applicables aux ressources", - cst_Chapitre_III_Calcul_des_ai = - "Chapitre III : Calcul des aides personnelles au logement en secteur locatif", - cst_Chapitre_III_Saint_Pierre_ = "Chapitre III : Saint-Pierre-et-Miquelon", - cst_Chapitre_IV_Calcul_des_all = - "Chapitre IV : Calcul des allocations de logement en secteur accession", - cst_Chapitre_IV_Conditions_de_ = "Chapitre IV : Conditions de peuplement", - cst_Chapitre_IX_Calcul_des_all = - "Chapitre IX : Calcul des allocations de logement en outre-mer", - cst_Chapitre_Ier_Champ_d_appli = "Chapitre Ier : Champ d'application", - cst_Chapitre_VII_Calcul_des_al = - "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer", - cst_Code_de_la_construction_et = - "Code de la construction et de l'habitation", - cst_ContributionsSocialesAides = - "ContributionsSocialesAidesPersonnelleLogement", - cst_Demandeur$0 = "Demandeur", - cst_EffectiveEtPermanente$1 = "EffectiveEtPermanente", - cst_Infini$1 = "Infini", - cst_Livre_VIII_Aides_personnel = - "Livre VIII : Aides personnelles au logement", - cst_Location$0 = "Location", - cst_LogementFoyer$0 = "LogementFoyer", - cst_Montant_de_la_base_mensuel = - "Montant de la base mensuelle des allocations familiales", - cst_Montant_du_salaire_minimum = - "Montant du salaire minimum de croissance", - cst_Non$2 = "Non", - cst_Oui$1 = "Oui", - cst_OuvertureDroitsRetraite = "OuvertureDroitsRetraite", - cst_Paragraphe_2_Ouverture_du_ = - "Paragraphe 2 : Ouverture du droit et liquidation.", - cst_PasDeTravaux$1 = "PasDeTravaux", - cst_Prise_en_compte_des_ressou = - "Prise en compte des ressources pour les aides personnelles au logement", - cst_Prologue = "Prologue", - cst_Prologue_aides_au_logement = "Prologue : aides au logement", - cst_Prologue_prestations_famil = "Prologue : prestations familiales", - cst_RessourcesAidesPersonnelle = "RessourcesAidesPersonnelleLogement", - cst_Revenu$1 = "Revenu", - cst_Secteur_locatif = "Secteur locatif", - cst_Secteur_logement_foyer = "Secteur logement-foyer", - cst_Section_1_Calcul_liquidati = - "Section 1 : Calcul, liquidation et versement des aides", - cst_Section_1_Secteur_locatif_ = "Section 1 : Secteur locatif ordinaire", - cst_Section_2_Allocations_de_l = "Section 2 : Allocations de logement", - cst_Section_2_Conditions_relat = - "Section 2 : Conditions relatives aux ressources", - cst_Section_2_Dispositions_com = - "Section 2 : Dispositions communes aux aides personnelles au logement", - cst_Section_3_Conditions_relat = - "Section 3 : Conditions relatives au logement", - cst_Section_3_Logements_foyers = "Section 3 : Logements-foyers", - cst_Section_4_Allocations_de_l = "Section 4 : Allocations de logement", - cst_Section_I_Dispositions_com = - "Section I : Dispositions communes aux aides personnelles au logement", - cst_Section_II_Dispositions_co = - "Section II : Dispositions communes aux aides personnelles au logement", - cst_Section_III_Allocations_de = "Section III : Allocations de logement", - cst_Smic = "Smic", - cst_Sous_section_2_Calcul_de_l = - "Sous-section 2 : Calcul de l'aide en secteur locatif", - cst_Sous_section_2_Principes_d = - "Sous-section 2 : Principes de neutralisation et d'abattement", - cst_Sous_section_4_Assurance_v = "Sous-section 4 : Assurance vieillesse", - cst_Sous_section_4_Prise_en_co = - "Sous-section 4 : Prise en compte du patrimoine", - cst_Titre_II_Dispositions_comm = - "Titre II : Dispositions communes aux aides personnelles au logement", - cst_Titre_III_Titre_III_Dispos = - "Titre III: Titre III : Dispositions communes relatives au financement", - cst_Titre_IV_Allocations_de_Lo = "Titre IV : Allocations de Logement", - cst_Titre_IV_Allocations_de_lo = "Titre IV : Allocations de logement", - cst_Tous_secteurs = "Tous secteurs", - cst_aide_finale$0 = "aide_finale", - cst_aide_finale_formule$9 = "aide_finale_formule", - cst_bas$1 = "bas", - cst_base_mensuelle_allocations$0 = "base_mensuelle_allocations_familiales", - cst_base_mensuelle_allocations = - "base_mensuelle_allocations_familiales.date_courante", - cst_brut_horaire$0 = "brut_horaire", - cst_calcul_allocation_logement = "calcul_allocation_logement", - cst_calcul_apl_locatif = "calcul_apl_locatif", - cst_calcul_apl_logement_foyer = "calcul_apl_logement_foyer", - cst_calcul_apl_logement_foyer_$0 = - "calcul_apl_logement_foyer.condition_2_du_832_25", - cst_calcul_apl_logement_foyer_$2 = - "calcul_apl_logement_foyer.date_conventionnement", - cst_calcul_apl_logement_foyer_$7 = - "calcul_apl_logement_foyer.date_courante", - cst_calcul_apl_logement_foyer_$8 = "calcul_apl_logement_foyer.redevance", - cst_calcul_apl_logement_foyer_$5 = - "calcul_apl_logement_foyer.situation_familiale_calcul_apl", - cst_calcul_apl_logement_foyer_$1 = - "calcul_apl_logement_foyer.type_logement_foyer", - cst_calcul_apl_logement_foyer_$6 = "calcul_apl_logement_foyer.zone", - cst_calcul_nombre_parts = "calcul_nombre_parts", - cst_calcul_nombre_parts_condit = - "calcul_nombre_parts.condition_2_du_832_25", - cst_calcul_nombre_parts_situat = - "calcul_nombre_parts.situation_familiale_calcul_apl", - cst_calculette = "calculette", - cst_coefficient_multiplicateur$0 = "coefficient_multiplicateur_d832_25", - cst_coefficient_prise_en_charg$3 = "coefficient_prise_en_charge", - cst_coefficient_r_d832_25$0 = "coefficient_r_d832_25", - cst_colocation_in$1 = "colocation_in", - cst_condition_2_du_832_25_in$2 = "condition_2_du_832_25_in", - cst_condition_2_r823_4$0 = "condition_2_r823_4", - cst_contributions_sociales = "contributions_sociales", - cst_contributions_sociales_dat = "contributions_sociales.date_courante", - cst_date_conventionnement_in$1 = "date_conventionnement_in", - cst_date_courante$1 = "date_courante", - cst_date_courante_in$21 = "date_courante_in", - cst_date_de_naissance$1 = "date_de_naissance", - cst_date_naissance$1 = "date_naissance", - cst_date_naissance_in$1 = "date_naissance_in", - cst_demandeur_in$5 = "demandeur_in", - cst_direct = "direct", - cst_droit_ouvert$0 = "droit_ouvert", - cst_examples_aides_logement_ba = - "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr", - cst_examples_aides_logement_pr$4 = - "examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr", - cst_examples_aides_logement_pr$3 = - "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr", - cst_examples_aides_logement_pr$1 = - "examples/aides_logement/../prestations_familiales/prologue.catala_fr", - cst_examples_aides_logement_ar$0 = - "examples/aides_logement/archives.catala_fr", - cst_examples_aides_logement_ar = - "examples/aides_logement/arrete_2019-09-27.catala_fr", - cst_examples_aides_logement_au = - "examples/aides_logement/autres_sources.catala_fr", - cst_examples_aides_logement_co = - "examples/aides_logement/code_construction_legislatif.catala_fr", - cst_examples_aides_logement_co$0 = - "examples/aides_logement/code_construction_reglementaire.catala_fr", - cst_examples_aides_logement_pr = - "examples/aides_logement/prologue.catala_fr", - cst_haut$1 = "haut", - cst_identifiant$1 = "identifiant", - cst_input = "input", - cst_input0 = "input0", - cst_input1 = "input1", - cst_logement_est_chambre_in$1 = "logement_est_chambre_in", - cst_loyer_minimal$0 = "loyer_minimal", - cst_mode_occupation_in$3 = "mode_occupation_in", - cst_montant$2 = "montant", - cst_montant_forfaitaire_charge$1 = "montant_forfaitaire_charges", - cst_montant_forfaitaire_charge$2 = "montant_forfaitaire_charges_d823_16", - cst_multiplicateur_majoration_ = "multiplicateur_majoration_charges", - cst_n_nombre_parts_d832_11$0 = "n_nombre_parts_d832_11", - cst_n_nombre_parts_d832_25$1 = "n_nombre_parts_d832_25", - cst_n_nombre_parts_d832_25_in$1 = "n_nombre_parts_d832_25_in", - cst_obligation_scolaire$1 = "obligation_scolaire", - cst_output = "output", - cst_ouverture_droits_retraite = "ouverture_droits_retraite", - cst_participation_minimale$0 = "participation_minimale", - cst_participation_personnelle$0 = "participation_personnelle", - cst_plafond_loyer_d823_16_2$0 = "plafond_loyer_d823_16_2", - cst_prestations_familiales = "prestations_familiales", - cst_prestations_familiales_dat = "prestations_familiales.date_courante", - cst_prestations_familiales_pre = - "prestations_familiales.prestation_courante", - cst_redevance_in$1 = "redevance_in", - cst_ressources$1 = "ressources", - cst_ressources_prises_en_compt$0 = "ressources_prises_en_compte", - cst_situation_familiale_calcul$7 = "situation_familiale_calcul_apl", - cst_situation_familiale_calcul$8 = "situation_familiale_calcul_apl_in", - cst_situation_familiale_in$2 = "situation_familiale_in", - cst_situation_r822_11_13_17_in$1 = "situation_r822_11_13_17_in", - cst_smic = "smic", - cst_sous_calcul_traitement = "sous_calcul_traitement", - cst_taux$1 = "taux", - cst_taux_composition_familiale$0 = "taux_composition_familiale", - cst_taux_francs_vers_euros = "taux_francs_vers_euros", - cst_traitement_aide_finale$9 = "traitement_aide_finale", - cst_traitement_aide_finale_aba = "traitement_aide_finale_abattement", - cst_traitement_aide_finale_con = - "traitement_aide_finale_contributions_sociales_arrondi", - cst_traitement_aide_finale_min = - "traitement_aide_finale_minoration_forfaitaire", - cst_traitement_aide_finale_mon = "traitement_aide_finale_montant_minimal", - cst_traitement_aide_finale_red = "traitement_aide_finale_redevance", - cst_type_aide_in$3 = "type_aide_in", - cst_type_logement_foyer_in$1 = "type_logement_foyer_in", - cst_type_travaux_logement_in$1 = "type_travaux_logement_in", - cst_zone_in$7 = "zone_in", - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - var - global_data = runtime.caml_get_global_data(), - Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, - TypePret = [0], - _SK_ = - [0, - cst_examples_aides_logement_au, - 283, - 14, - 283, - 25, - [0, - "Conseil d'\xc3\x89tat, 5\xc3\xa8me - 4\xc3\xa8me chambres r\xc3\xa9unies, 21/07/2017, 398563", - 0]], - cst_0$356 = cst_0$359, - cst_0$357 = cst_0$359, - cst_0$358 = cst_0$360, - _SG_ = - [0, - cst_CalculetteAidesAuLogement, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _SH_ = - [0, cst_CalculetteAidesAuLogement, [0, cst_traitement_aide_finale$9, 0]], - _SI_ = - [0, - cst_CalculetteAidesAuLogement, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _SJ_ = - [0, cst_CalculetteAidesAuLogement, [0, cst_traitement_aide_finale$9, 0]], - _SC_ = - [0, - cst_examples_aides_logement_pr, - 1273, - 14, - 1273, - 63, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sy_ = - [0, - cst_examples_aides_logement_pr, - 1304, - 14, - 1304, - 25, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Ss_ = - [0, - cst_examples_aides_logement_pr, - 1269, - 5, - 1269, - 70, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _So_ = - [0, - cst_examples_aides_logement_pr, - 1266, - 14, - 1266, - 58, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sk_ = - [0, - cst_examples_aides_logement_pr, - 1264, - 14, - 1264, - 54, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sg_ = - [0, - cst_examples_aides_logement_pr, - 1262, - 14, - 1262, - 51, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sa_ = - [0, - cst_examples_aides_logement_pr, - 1260, - 14, - 1260, - 59, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _R8_ = - [0, - cst_examples_aides_logement_pr, - 1258, - 14, - 1258, - 38, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _R4_ = - [0, - cst_examples_aides_logement_pr, - 1256, - 14, - 1256, - 34, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _R0_ = - [0, - cst_examples_aides_logement_pr, - 1254, - 14, - 1254, - 31, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _RW_ = - [0, - cst_examples_aides_logement_pr, - 1275, - 14, - 1275, - 48, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _RX_ = - [0, - cst_examples_aides_logement_pr, - 1243, - 11, - 1243, - 45, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _RV_ = - [0, - cst_examples_aides_logement_pr, - 1243, - 11, - 1243, - 45, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _RY_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, "m\xc3\xa9nage_sans_enfants_garde_altern\xc3\xa9e", 0]], - _R1_ = - [0, - cst_examples_aides_logement_pr, - 1254, - 14, - 1254, - 31, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _R2_ = - [0, cst_CalculetteAidesAuLogementG, [0, "calculette.m\xc3\xa9nage", 0]], - _RZ_ = - [0, - cst_examples_aides_logement_pr, - 1254, - 14, - 1254, - 31, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _R5_ = - [0, - cst_examples_aides_logement_pr, - 1256, - 14, - 1256, - 34, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _R6_ = [0, cst_CalculetteAidesAuLogementG, [0, "calculette.demandeur", 0]], - _R3_ = - [0, - cst_examples_aides_logement_pr, - 1256, - 14, - 1256, - 34, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _R9_ = - [0, - cst_examples_aides_logement_pr, - 1258, - 14, - 1258, - 38, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _R__ = - [0, cst_CalculetteAidesAuLogementG, [0, "calculette.date_courante", 0]], - _R7_ = - [0, - cst_examples_aides_logement_pr, - 1258, - 14, - 1258, - 38, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sb_ = - [0, - cst_examples_aides_logement_pr, - 1260, - 14, - 1260, - 59, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sc_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, "calculette.ressources_m\xc3\xa9nage_prises_en_compte", 0]], - _R$_ = - [0, - cst_examples_aides_logement_pr, - 1260, - 14, - 1260, - 59, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sd_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, cst_calculette, [0, cst_CalculetteAidesAuLogement, 0]]], - _Se_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, cst_calculette, [0, cst_CalculetteAidesAuLogement, 0]]], - _Sh_ = - [0, - cst_examples_aides_logement_pr, - 1262, - 14, - 1262, - 51, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Si_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, "calculette_sans_garde_altern\xc3\xa9e.m\xc3\xa9nage", 0]], - _Sf_ = - [0, - cst_examples_aides_logement_pr, - 1262, - 14, - 1262, - 51, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sl_ = - [0, - cst_examples_aides_logement_pr, - 1264, - 14, - 1264, - 54, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sm_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, "calculette_sans_garde_altern\xc3\xa9e.demandeur", 0]], - _Sj_ = - [0, - cst_examples_aides_logement_pr, - 1264, - 14, - 1264, - 54, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sp_ = - [0, - cst_examples_aides_logement_pr, - 1266, - 14, - 1266, - 58, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sq_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, "calculette_sans_garde_altern\xc3\xa9e.date_courante", 0]], - _Sn_ = - [0, - cst_examples_aides_logement_pr, - 1266, - 14, - 1266, - 58, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _St_ = - [0, - cst_examples_aides_logement_pr, - 1269, - 5, - 1269, - 70, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Su_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, - "calculette_sans_garde_altern\xc3\xa9e.ressources_m\xc3\xa9nage_prises_en_compte", - 0]], - _Sr_ = - [0, - cst_examples_aides_logement_pr, - 1269, - 5, - 1269, - 70, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sv_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, - cst_calculette_sans_garde_alte, - [0, cst_CalculetteAidesAuLogement, 0]]], - _Sw_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, - cst_calculette_sans_garde_alte, - [0, cst_CalculetteAidesAuLogement, 0]]], - _Sz_ = - [0, - cst_examples_aides_logement_pr, - 1250, - 12, - 1250, - 23, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _Sx_ = - [0, - cst_examples_aides_logement_pr, - 1250, - 12, - 1250, - 23, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _SA_ = [0, cst_CalculetteAidesAuLogementG, [0, cst_ligibilit$4, 0]], - _SD_ = - [0, - cst_examples_aides_logement_pr, - 1244, - 11, - 1244, - 60, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _SB_ = - [0, - cst_examples_aides_logement_pr, - 1244, - 11, - 1244, - 60, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _SE_ = - [0, - cst_CalculetteAidesAuLogementG, - [0, cst_coefficents_enfants_garde_$3, 0]], - _SL_ = - [0, - cst_examples_aides_logement_pr, - 1251, - 12, - 1251, - 23, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _SF_ = - [0, - cst_examples_aides_logement_pr, - 1251, - 12, - 1251, - 23, - [0, - cst_Calculette_avec_garde_alte, - [0, cst_Prologue_aides_au_logement, 0]]], - _SM_ = [0, cst_CalculetteAidesAuLogementG, [0, cst_aide_finale$0, 0]], - _RS_ = - [0, - cst_examples_aides_logement_co, - 1123, - 14, - 1123, - 33, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - cst_0$355 = cst_0$359, - _RK_ = - [0, - cst_CalculAllocationLogement, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _RL_ = - [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], - _RM_ = - [0, - cst_CalculAllocationLogement, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _RN_ = - [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], - _RO_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _RP_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_traitement_aide_finale$9, 0]], - _RQ_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _RR_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_traitement_aide_finale$9, 0]], - _RG_ = - [0, - cst_examples_aides_logement_co, - 1140, - 14, - 1140, - 36, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Ry_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _Rz_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_traitement_aide_finale$9, 0]], - _RA_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _RB_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_traitement_aide_finale$9, 0]], - _RC_ = - [0, - cst_CalculAllocationLogement, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _RD_ = - [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], - _RE_ = - [0, - cst_CalculAllocationLogement, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _RF_ = - [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], - _RH_ = - [0, - cst_examples_aides_logement_pr, - 1174, - 12, - 1174, - 34, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rx_ = - [0, - cst_examples_aides_logement_pr, - 1174, - 12, - 1174, - 34, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Ru_ = - [0, - cst_examples_aides_logement_co, - 1102, - 14, - 1102, - 25, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Rq_ = - [0, - cst_examples_aides_logement_pr, - 1224, - 14, - 1224, - 63, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rk_ = - [0, - cst_examples_aides_logement_pr, - 1219, - 14, - 1219, - 58, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rg_ = - [0, - cst_examples_aides_logement_pr, - 1215, - 14, - 1215, - 62, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rc_ = - [0, - cst_examples_aides_logement_pr, - 1211, - 14, - 1211, - 53, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Q__ = - [0, - cst_examples_aides_logement_pr, - 1205, - 5, - 1205, - 65, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Q6_ = - [0, - cst_examples_aides_logement_pr, - 1200, - 14, - 1200, - 68, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Q2_ = - [0, - cst_examples_aides_logement_pr, - 1196, - 14, - 1196, - 66, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QY_ = - [0, - cst_examples_aides_logement_co, - 1111, - 14, - 1111, - 58, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _QX_ = [0, 0], - _QT_ = - [0, - cst_examples_aides_logement_pr, - 1192, - 14, - 1192, - 64, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QN_ = - [0, - cst_examples_aides_logement_pr, - 1221, - 14, - 1221, - 50, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QJ_ = - [0, - cst_examples_aides_logement_co, - 1113, - 14, - 1113, - 50, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _QG_ = [2, 0], - _QH_ = [1, 0], - _QI_ = [2, 0], - _QC_ = - [0, - cst_examples_aides_logement_pr, - 1217, - 14, - 1217, - 54, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qy_ = - [0, - cst_examples_aides_logement_pr, - 1213, - 14, - 1213, - 45, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qu_ = - [0, - cst_examples_aides_logement_pr, - 1209, - 14, - 1209, - 66, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qq_ = - [0, - cst_examples_aides_logement_pr, - 1202, - 14, - 1202, - 60, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qm_ = - [0, - cst_examples_aides_logement_pr, - 1198, - 14, - 1198, - 58, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qi_ = - [0, - cst_examples_aides_logement_pr, - 1194, - 14, - 1194, - 56, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qc_ = - [0, - cst_examples_aides_logement_pr, - 1188, - 14, - 1188, - 67, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _P__ = - [0, - cst_examples_aides_logement_pr, - 1184, - 14, - 1184, - 63, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _P6_ = - [0, - cst_examples_aides_logement_pr, - 1180, - 14, - 1180, - 60, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _P0_ = - [0, - cst_examples_aides_logement_co, - 1097, - 5, - 1097, - 74, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _PW_ = - [0, - cst_examples_aides_logement_pr, - 1186, - 14, - 1186, - 55, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _PS_ = - [0, - cst_examples_aides_logement_pr, - 1182, - 14, - 1182, - 52, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _PO_ = - [0, - cst_examples_aides_logement_pr, - 1190, - 14, - 1190, - 59, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _PP_ = - [0, - cst_examples_aides_logement_pr, - 1190, - 14, - 1190, - 59, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _PQ_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.date_courante", 0]], - _PN_ = - [0, - cst_examples_aides_logement_pr, - 1190, - 14, - 1190, - 59, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _PT_ = - [0, - cst_examples_aides_logement_pr, - 1182, - 14, - 1182, - 52, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _PU_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.m\xc3\xa9nage", 0]], - _PR_ = - [0, - cst_examples_aides_logement_pr, - 1182, - 14, - 1182, - 52, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _PX_ = - [0, - cst_examples_aides_logement_pr, - 1186, - 14, - 1186, - 55, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _PY_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.demandeur", 0]], - _PV_ = - [0, - cst_examples_aides_logement_pr, - 1186, - 14, - 1186, - 55, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _P1_ = - [0, - cst_examples_aides_logement_co, - 1097, - 5, - 1097, - 74, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _P2_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement", - 0]], - _PZ_ = - [0, - cst_examples_aides_logement_co, - 1097, - 5, - 1097, - 74, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _P3_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - cst_ligibilit_allocation_logem, - [0, cst_ligibilit_AllocationLogeme, 0]]], - _P4_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - cst_ligibilit_allocation_logem, - [0, cst_ligibilit_AllocationLogeme, 0]]], - _P7_ = - [0, - cst_examples_aides_logement_pr, - 1180, - 14, - 1180, - 60, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _P8_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.m\xc3\xa9nage", - 0]], - _P5_ = - [0, - cst_examples_aides_logement_pr, - 1180, - 14, - 1180, - 60, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _P$_ = - [0, - cst_examples_aides_logement_pr, - 1184, - 14, - 1184, - 63, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qa_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.demandeur", - 0]], - _P9_ = - [0, - cst_examples_aides_logement_pr, - 1184, - 14, - 1184, - 63, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qd_ = - [0, - cst_examples_aides_logement_pr, - 1188, - 14, - 1188, - 67, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qe_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.date_courante", - 0]], - _Qb_ = - [0, - cst_examples_aides_logement_pr, - 1188, - 14, - 1188, - 67, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qf_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - cst_ligibilit_aide_personnalis, - [0, cst_ligibilit_AidePersonnalis_, 0]]], - _Qg_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - cst_ligibilit_aide_personnalis, - [0, cst_ligibilit_AidePersonnalis_, 0]]], - _Qj_ = - [0, - cst_examples_aides_logement_pr, - 1194, - 14, - 1194, - 56, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qk_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_allocation_logement.mode_occupation", 0]], - _Qh_ = - [0, - cst_examples_aides_logement_pr, - 1194, - 14, - 1194, - 56, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qn_ = - [0, - cst_examples_aides_logement_pr, - 1198, - 14, - 1198, - 58, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qo_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - "calcul_allocation_logement.ressources_m\xc3\xa9nage_sans_arrondi", - 0]], - _Ql_ = - [0, - cst_examples_aides_logement_pr, - 1198, - 14, - 1198, - 58, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qr_ = - [0, - cst_examples_aides_logement_pr, - 1202, - 14, - 1202, - 60, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qs_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_allocation_logement.situation_familiale", 0]], - _Qp_ = - [0, - cst_examples_aides_logement_pr, - 1202, - 14, - 1202, - 60, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qv_ = - [0, - cst_examples_aides_logement_pr, - 1209, - 14, - 1209, - 66, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qw_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_allocation_logement.nombre_personnes_\xc3\xa0_charge", 0]], - _Qt_ = - [0, - cst_examples_aides_logement_pr, - 1209, - 14, - 1209, - 66, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Qz_ = - [0, - cst_examples_aides_logement_pr, - 1213, - 14, - 1213, - 45, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QA_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_allocation_logement.zone", 0]], - _Qx_ = - [0, - cst_examples_aides_logement_pr, - 1213, - 14, - 1213, - 45, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QD_ = - [0, - cst_examples_aides_logement_pr, - 1217, - 14, - 1217, - 54, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QE_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_allocation_logement.date_courante", 0]], - _QB_ = - [0, - cst_examples_aides_logement_pr, - 1217, - 14, - 1217, - 54, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QK_ = - [0, - cst_examples_aides_logement_co, - 1113, - 14, - 1113, - 50, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _QL_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_allocation_logement.type_aide", 0]], - _QF_ = - [0, - cst_examples_aides_logement_co, - 1113, - 14, - 1113, - 50, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _QO_ = - [0, - cst_examples_aides_logement_pr, - 1221, - 14, - 1221, - 50, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QP_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_allocation_logement.r\xc3\xa9sidence", 0]], - _QM_ = - [0, - cst_examples_aides_logement_pr, - 1221, - 14, - 1221, - 50, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QQ_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - cst_calcul_allocation_logement, - [0, cst_CalculAllocationLogement, 0]]], - _QR_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - cst_calcul_allocation_logement, - [0, cst_CalculAllocationLogement, 0]]], - _QU_ = - [0, - cst_examples_aides_logement_pr, - 1192, - 14, - 1192, - 64, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QV_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_aide_personnalis\xc3\xa9e_logement.mode_occupation", 0]], - _QS_ = - [0, - cst_examples_aides_logement_pr, - 1192, - 14, - 1192, - 64, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _QZ_ = - [0, - cst_examples_aides_logement_co, - 1111, - 14, - 1111, - 58, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Q0_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_aide_personnalis\xc3\xa9e_logement.type_aide", 0]], - _QW_ = - [0, - cst_examples_aides_logement_co, - 1111, - 14, - 1111, - 58, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Q3_ = - [0, - cst_examples_aides_logement_pr, - 1196, - 14, - 1196, - 66, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Q4_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - "calcul_aide_personnalis\xc3\xa9e_logement.ressources_m\xc3\xa9nage_sans_arrondi", - 0]], - _Q1_ = - [0, - cst_examples_aides_logement_pr, - 1196, - 14, - 1196, - 66, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Q7_ = - [0, - cst_examples_aides_logement_pr, - 1200, - 14, - 1200, - 68, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Q8_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_aide_personnalis\xc3\xa9e_logement.situation_familiale", 0]], - _Q5_ = - [0, - cst_examples_aides_logement_pr, - 1200, - 14, - 1200, - 68, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Q$_ = - [0, - cst_examples_aides_logement_pr, - 1205, - 5, - 1205, - 65, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Ra_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - "calcul_aide_personnalis\xc3\xa9e_logement.nombre_personnes_\xc3\xa0_charge", - 0]], - _Q9_ = - [0, - cst_examples_aides_logement_pr, - 1205, - 5, - 1205, - 65, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rd_ = - [0, - cst_examples_aides_logement_pr, - 1211, - 14, - 1211, - 53, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Re_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_aide_personnalis\xc3\xa9e_logement.zone", 0]], - _Rb_ = - [0, - cst_examples_aides_logement_pr, - 1211, - 14, - 1211, - 53, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rh_ = - [0, - cst_examples_aides_logement_pr, - 1215, - 14, - 1215, - 62, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Ri_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_aide_personnalis\xc3\xa9e_logement.date_courante", 0]], - _Rf_ = - [0, - cst_examples_aides_logement_pr, - 1215, - 14, - 1215, - 62, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rl_ = - [0, - cst_examples_aides_logement_pr, - 1219, - 14, - 1219, - 58, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rm_ = - [0, - cst_CalculetteAidesAuLogement, - [0, "calcul_aide_personnalis\xc3\xa9e_logement.r\xc3\xa9sidence", 0]], - _Rj_ = - [0, - cst_examples_aides_logement_pr, - 1219, - 14, - 1219, - 58, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rn_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - cst_calcul_aide_personnalis_e_, - [0, cst_CalculAidePersonnalis_eLog, 0]]], - _Ro_ = - [0, - cst_CalculetteAidesAuLogement, - [0, - cst_calcul_aide_personnalis_e_, - [0, cst_CalculAidePersonnalis_eLog, 0]]], - _Rr_ = - [0, - cst_examples_aides_logement_pr, - 1176, - 12, - 1176, - 61, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rp_ = - [0, - cst_examples_aides_logement_pr, - 1176, - 12, - 1176, - 61, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rs_ = - [0, - cst_CalculetteAidesAuLogement, - [0, cst_coefficents_enfants_garde_$3, 0]], - _Rv_ = - [0, - cst_examples_aides_logement_pr, - 1172, - 12, - 1172, - 23, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rt_ = - [0, - cst_examples_aides_logement_pr, - 1172, - 12, - 1172, - 23, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _Rw_ = [0, cst_CalculetteAidesAuLogement, [0, cst_ligibilit$4, 0]], - _RI_ = - [0, cst_CalculetteAidesAuLogement, [0, cst_traitement_aide_finale$9, 0]], - _RT_ = - [0, - cst_examples_aides_logement_pr, - 1173, - 12, - 1173, - 31, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _RJ_ = - [0, - cst_examples_aides_logement_pr, - 1173, - 12, - 1173, - 31, - [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], - _RU_ = - [0, cst_CalculetteAidesAuLogement, [0, cst_aide_finale_formule$9, 0]], - _PI_ = - [0, - cst_examples_aides_logement_co, - 1278, - 5, - 1279, - 54, - [0, - "Article L860-3", - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _PJ_ = - [0, - cst_examples_aides_logement_pr, - 402, - 12, - 402, - 23, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _PH_ = - [0, - cst_examples_aides_logement_co, - 627, - 5, - 629, - 36, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _PK_ = - [0, - cst_examples_aides_logement_pr, - 402, - 12, - 402, - 23, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _PG_ = - [0, - cst_examples_aides_logement_pr, - 402, - 12, - 402, - 23, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pz_ = - [0, - cst_examples_aides_logement_co, - 777, - 5, - 790, - 30, - [0, - cst_Article_L831_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _PA_ = - [0, - cst_examples_aides_logement_pr, - 396, - 11, - 396, - 34, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Py_ = - [0, - cst_examples_aides_logement_co, - 758, - 5, - 763, - 30, - [0, - cst_Article_L831_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _PB_ = - [0, - cst_examples_aides_logement_pr, - 396, - 11, - 396, - 34, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Px_ = - [0, - cst_examples_aides_logement_co, - 753, - 31, - 753, - 54, - [0, - cst_Article_L831_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _PC_ = - [0, - cst_examples_aides_logement_pr, - 396, - 11, - 396, - 34, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pw_ = - [0, - cst_examples_aides_logement_pr, - 396, - 11, - 396, - 34, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ps_ = - [0, - cst_examples_aides_logement_pr, - 413, - 14, - 413, - 56, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Po_ = - [0, - cst_examples_aides_logement_pr, - 415, - 14, - 415, - 63, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pi_ = - [0, - cst_examples_aides_logement_co, - 1419, - 5, - 1422, - 30, - [0, - "Article L861-5-1", - [0, - "Section 3 : Aide personnalis\xc3\xa9e au logement", - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Pj_ = - [0, - cst_examples_aides_logement_pr, - 395, - 11, - 395, - 38, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ph_ = - [0, - cst_examples_aides_logement_co, - 721, - 5, - 724, - 30, - [0, - cst_Article_L831_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Pk_ = - [0, - cst_examples_aides_logement_pr, - 395, - 11, - 395, - 38, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pb_ = - [0, - cst_examples_aides_logement_co$0, - 3690, - 5, - 3695, - 30, - [0, - "Article R832-21", - [0, - "Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements \xc3\xa0 usage locatif", - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _Pc_ = - [0, - cst_examples_aides_logement_pr, - 395, - 11, - 395, - 38, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _O9_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_caract_ristiques_pr_t_l831, [0, cst_input0, 0]]], - _O__ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_caract_ristiques_pr_t_l831, 0]], - _O$_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_caract_ristiques_pr_t_l831, [0, cst_output, 0]]], - _Pa_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_caract_ristiques_pr_t_l831, 0]], - _O8_ = - [0, - cst_examples_aides_logement_co, - 738, - 5, - 741, - 30, - [0, - cst_Article_L831_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Pd_ = - [0, - cst_examples_aides_logement_pr, - 395, - 11, - 395, - 38, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _O7_ = - [0, - cst_examples_aides_logement_co, - 677, - 5, - 686, - 30, - [0, - cst_Article_L831_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Pe_ = - [0, - cst_examples_aides_logement_pr, - 395, - 11, - 395, - 38, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _O3_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_caract_ristiques_pr_t_l831$0, [0, cst_input0, 0]]], - _O4_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_caract_ristiques_pr_t_l831$0, 0]], - _O5_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_caract_ristiques_pr_t_l831$0, [0, cst_output, 0]]], - _O6_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_caract_ristiques_pr_t_l831$0, 0]], - _O2_ = - [0, - cst_examples_aides_logement_co, - 656, - 5, - 659, - 30, - [0, - cst_Article_L831_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Pf_ = - [0, - cst_examples_aides_logement_pr, - 395, - 11, - 395, - 38, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pg_ = - [0, - cst_examples_aides_logement_pr, - 395, - 11, - 395, - 38, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _O1_ = - [0, - cst_examples_aides_logement_pr, - 395, - 11, - 395, - 38, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OW_ = - [0, - cst_examples_aides_logement_ar, - 4637, - 6, - 4637, - 43, - [0, - "Article 49", - [0, - "Chapitre XI : Dispositions communes", - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - _OX_ = - [0, - cst_examples_aides_logement_pr, - 394, - 11, - 394, - 53, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OV_ = - [0, - cst_examples_aides_logement_pr, - 394, - 11, - 394, - 53, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OP_ = - [0, - cst_examples_aides_logement_co$0, - 5468, - 5, - 5469, - 53, - [0, - cst_Article_R861_5, - [0, - cst_Capitre_I_Guadeloupe_Guyan, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _OQ_ = - [0, - cst_examples_aides_logement_co$0, - 5467, - 14, - 5467, - 66, - [0, - cst_Article_R861_5, - [0, - cst_Capitre_I_Guadeloupe_Guyan, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _OR_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, - "\xc3\xa9ligibilit\xc3\xa9_commune.date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch", - 0]], - _OM_ = - [0, - cst_examples_aides_logement_pr, - 411, - 14, - 411, - 47, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OI_ = - [0, - cst_examples_aides_logement_pr, - 410, - 14, - 410, - 43, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OE_ = - [0, - cst_examples_aides_logement_pr, - 409, - 14, - 409, - 40, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OA_ = - [0, - cst_examples_aides_logement_pr, - 398, - 11, - 398, - 41, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OB_ = - [0, - cst_examples_aides_logement_pr, - 398, - 11, - 398, - 41, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Oz_ = - [0, - cst_examples_aides_logement_pr, - 398, - 11, - 398, - 41, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ot_ = - [0, - cst_examples_aides_logement_co$0, - 3018, - 5, - 3021, - 41, - [0, - "Article R832-7", - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Ou_ = - [0, - cst_examples_aides_logement_pr, - 397, - 11, - 397, - 41, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Os_ = - [0, - cst_examples_aides_logement_co$0, - 2983, - 5, - 2985, - 42, - [0, - "Article R832-5", - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Ov_ = - [0, - cst_examples_aides_logement_pr, - 397, - 11, - 397, - 41, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ow_ = - [0, - cst_examples_aides_logement_pr, - 397, - 11, - 397, - 41, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Or_ = - [0, - cst_examples_aides_logement_pr, - 397, - 11, - 397, - 41, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ox_ = - [0, - cst_examples_aides_logement_pr, - 397, - 11, - 397, - 41, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Oq_ = - [0, - cst_examples_aides_logement_pr, - 397, - 11, - 397, - 41, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Oy_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_caract_ristiques_pr_t_l831$0, 0]], - _OC_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_caract_ristiques_pr_t_l831, 0]], - _OF_ = - [0, - cst_examples_aides_logement_pr, - 409, - 14, - 409, - 40, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OG_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_ligibilit_commune_m_nage, 0]], - _OD_ = - [0, - cst_examples_aides_logement_pr, - 409, - 14, - 409, - 40, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OJ_ = - [0, - cst_examples_aides_logement_pr, - 410, - 14, - 410, - 43, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OK_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_ligibilit_commune_demandeu, 0]], - _OH_ = - [0, - cst_examples_aides_logement_pr, - 410, - 14, - 410, - 43, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ON_ = - [0, - cst_examples_aides_logement_pr, - 411, - 14, - 411, - 47, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OO_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_ligibilit_commune_date_cou, 0]], - _OL_ = - [0, - cst_examples_aides_logement_pr, - 411, - 14, - 411, - 47, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OS_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], - _OT_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], - _OY_ = - [0, - cst_examples_aides_logement_pr, - 394, - 11, - 394, - 53, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OU_ = - [0, - cst_examples_aides_logement_pr, - 394, - 11, - 394, - 53, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _OZ_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, - "logement_situ\xc3\xa9_commune_d\xc3\xa9s\xc3\xa9quilibre_l831_2", - 0]], - _Pl_ = - [0, - cst_examples_aides_logement_pr, - 395, - 11, - 395, - 38, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _O0_ = - [0, - cst_examples_aides_logement_pr, - 395, - 11, - 395, - 38, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pm_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, "condition_logement_bailleur", 0]], - _Pp_ = - [0, - cst_examples_aides_logement_pr, - 404, - 12, - 404, - 61, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pn_ = - [0, - cst_examples_aides_logement_pr, - 404, - 12, - 404, - 61, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pq_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_coefficents_enfants_garde_$3, 0]], - _Pt_ = - [0, - cst_examples_aides_logement_pr, - 403, - 12, - 403, - 54, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pr_ = - [0, - cst_examples_aides_logement_pr, - 403, - 12, - 403, - 54, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pu_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, cst_nombre_personnes_charge_pr$2, 0]], - _PD_ = - [0, - cst_examples_aides_logement_pr, - 396, - 11, - 396, - 34, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Pv_ = - [0, - cst_examples_aides_logement_pr, - 396, - 11, - 396, - 34, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _PE_ = - [0, - cst_ligibilit_AidePersonnalis_, - [0, "condition_logement_pr\xc3\xaat", 0]], - _PL_ = - [0, - cst_examples_aides_logement_pr, - 402, - 12, - 402, - 23, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _PF_ = - [0, - cst_examples_aides_logement_pr, - 402, - 12, - 402, - 23, - [0, - cst_ligibilit_l_aide_personnal, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _PM_ = [0, cst_ligibilit_AidePersonnalis_, [0, cst_ligibilit$4, 0]], - _Ok_ = - [0, - cst_examples_aides_logement_co, - 1638, - 5, - 1639, - 79, - [0, - "Article L816-8", - [0, - cst_Section_4_Allocations_de_l, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Oj_ = [0, 0], - _Ol_ = - [0, - cst_examples_aides_logement_pr, - 451, - 10, - 451, - 16, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Oi_ = - [0, - cst_examples_aides_logement_co, - 1604, - 5, - 1613, - 28, - [0, - cst_Article_L861_6, - [0, - cst_Section_4_Allocations_de_l, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Oh_ = [0, 0], - _Om_ = - [0, - cst_examples_aides_logement_pr, - 451, - 10, - 451, - 16, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Of_ = - [0, - cst_examples_aides_logement_co, - 1181, - 5, - 1181, - 73, - [0, - "Article L841-3", - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Oe_ = [2, 0], - _Og_ = - [0, - cst_examples_aides_logement_pr, - 451, - 10, - 451, - 16, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Od_ = - [0, - cst_examples_aides_logement_co, - 1195, - 5, - 1198, - 28, - [0, - "Article L841-4", - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Oc_ = [0, 0], - _On_ = - [0, - cst_examples_aides_logement_pr, - 451, - 10, - 451, - 16, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ob_ = - [0, - cst_examples_aides_logement_co, - 1081, - 29, - 1081, - 40, - [0, - cst_Article_L841_2, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _N9_ = [0, 0], - _N__ = [0, 0], - _N$_ = [1, 0], - _Oa_ = [2, 0], - _NX_ = - [0, - cst_examples_aides_logement_co, - 1818, - 5, - 1818, - 66, - [0, - cst_Article_L862_3, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _NY_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _NQ_ = [2, 0], - _NV_ = [0, 0], - _NR_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], - _NS_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - _NT_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_droit_ouvert$0, [0, cst_output, 0]]], - _NU_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - cst_1$253 = cst_1$254, - _NW_ = - [0, - cst_examples_aides_logement_co, - 1778, - 5, - 1799, - 9, - [0, - cst_Article_L862_3, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _NZ_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _NN_ = - [0, - cst_examples_aides_logement_co, - 1528, - 5, - 1528, - 66, - [0, - cst_Article_L861_6, - [0, - cst_Section_4_Allocations_de_l, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _NO_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _NG_ = [2, 0], - _NL_ = [0, 0], - _NH_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], - _NI_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - _NJ_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_droit_ouvert$0, [0, cst_output, 0]]], - _NK_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - cst_1$252 = cst_1$254, - _NM_ = - [0, - cst_examples_aides_logement_co, - 1486, - 5, - 1507, - 9, - [0, - cst_Article_L861_6, - [0, - cst_Section_4_Allocations_de_l, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _NP_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_0$354 = cst_0$359, - _NF_ = - [0, - cst_examples_aides_logement_co, - 1049, - 5, - 1054, - 29, - [0, - cst_Article_L841_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _N0_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_1$251 = cst_1$254, - _NE_ = - [0, - cst_examples_aides_logement_co, - 1023, - 5, - 1034, - 13, - [0, - cst_Article_L841_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _N1_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Nz_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_condition_2_r823_4$0, [0, cst_input0, 0]]], - _NA_ = - [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], - _NB_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_condition_2_r823_4$0, [0, cst_output, 0]]], - _NC_ = - [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], - cst_1$250 = cst_1$254, - _ND_ = - [0, - cst_examples_aides_logement_co, - 1005, - 5, - 1007, - 9, - [0, - cst_Article_L841_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _N2_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ns_ = [2, 0], - _Nx_ = [0, 0], - _Nt_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], - _Nu_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - _Nv_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_droit_ouvert$0, [0, cst_output, 0]]], - _Nw_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - cst_0$353 = cst_0$359, - _Ny_ = - [0, - cst_examples_aides_logement_co, - 965, - 5, - 991, - 29, - [0, - cst_Article_L841_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _N3_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Nl_ = [2, 0], - _Nq_ = [0, 0], - _Nm_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], - _Nn_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - _No_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_droit_ouvert$0, [0, cst_output, 0]]], - _Np_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - cst_1$249 = cst_1$254, - _Nr_ = - [0, - cst_examples_aides_logement_co, - 932, - 5, - 954, - 8, - [0, - cst_Article_L841_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _N4_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ng_ = [4, 0], - _Nh_ = [3, 0], - _Ni_ = [1, 0], - _Nj_ = [0, 0], - _Nk_ = - [0, - cst_examples_aides_logement_co, - 909, - 5, - 915, - 6, - [0, - cst_Article_L841_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _N5_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Nf_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Nb_ = - [0, - cst_examples_aides_logement_co, - 877, - 14, - 877, - 25, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _M$_ = [0, 0], - _Na_ = [2, 0], - _M7_ = - [0, - cst_examples_aides_logement_pr, - 468, - 14, - 468, - 56, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _M3_ = - [0, - cst_examples_aides_logement_pr, - 470, - 14, - 470, - 63, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _MX_ = - [0, - cst_examples_aides_logement_co$0, - 4778, - 9, - 4778, - 55, - [0, - cst_Article_R842_14, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _MY_ = - [0, - cst_examples_aides_logement_co$0, - 4778, - 9, - 4778, - 55, - [0, - cst_Article_R842_14, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _MZ_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, "\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_surface", 0]], - _MU_ = - [0, - cst_examples_aides_logement_co$0, - 4777, - 9, - 4777, - 68, - [0, - cst_Article_R842_14, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _MV_ = - [0, - cst_examples_aides_logement_co$0, - 4777, - 9, - 4777, - 68, - [0, - cst_Article_R842_14, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _MW_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, - "\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_r\xc3\xa9sidence_principale", - 0]], - _MR_ = - [0, - cst_examples_aides_logement_pr, - 466, - 14, - 466, - 47, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _MN_ = - [0, - cst_examples_aides_logement_pr, - 465, - 14, - 465, - 43, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _MJ_ = - [0, - cst_examples_aides_logement_pr, - 464, - 14, - 464, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _MA_ = - [0, - cst_examples_aides_logement_co$0, - 4372, - 5, - 4377, - 28, - [0, - cst_Article_R842_5, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _MB_ = - [0, - cst_examples_aides_logement_pr, - 437, - 11, - 437, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mz_ = - [0, - cst_examples_aides_logement_co$0, - 4355, - 5, - 4360, - 28, - [0, - cst_Article_R842_5, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _MC_ = - [0, - cst_examples_aides_logement_pr, - 437, - 11, - 437, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _My_ = - [0, - cst_examples_aides_logement_co$0, - 4338, - 5, - 4345, - 28, - [0, - cst_Article_R842_5, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _MD_ = - [0, - cst_examples_aides_logement_pr, - 437, - 11, - 437, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ME_ = - [0, - cst_examples_aides_logement_pr, - 437, - 11, - 437, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mx_ = - [0, - cst_examples_aides_logement_co$0, - 4308, - 5, - 4310, - 28, - [0, - cst_Article_R842_5, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _MF_ = - [0, - cst_examples_aides_logement_pr, - 437, - 11, - 437, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mw_ = - [0, - cst_examples_aides_logement_pr, - 437, - 11, - 437, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mq_ = - [0, - cst_examples_aides_logement_co, - 905, - 9, - 905, - 29, - [0, - cst_Article_L841_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Mr_ = - [0, - cst_examples_aides_logement_pr, - 438, - 11, - 438, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mn_ = - [0, - cst_examples_aides_logement_co, - 1754, - 9, - 1754, - 29, - [0, - cst_Article_L862_3, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _Mo_ = - [0, - cst_examples_aides_logement_pr, - 438, - 11, - 438, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mm_ = - [0, - cst_examples_aides_logement_co, - 1448, - 9, - 1448, - 29, - [0, - cst_Article_L861_6, - [0, - cst_Section_4_Allocations_de_l, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Mp_ = - [0, - cst_examples_aides_logement_pr, - 438, - 11, - 438, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ms_ = - [0, - cst_examples_aides_logement_pr, - 438, - 11, - 438, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ml_ = - [0, - cst_examples_aides_logement_pr, - 438, - 11, - 438, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mf_ = - [0, - cst_examples_aides_logement_co, - 927, - 9, - 927, - 29, - [0, - cst_Article_L841_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Mg_ = - [0, - cst_examples_aides_logement_pr, - 439, - 11, - 439, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mc_ = - [0, - cst_examples_aides_logement_co, - 1755, - 9, - 1755, - 29, - [0, - cst_Article_L862_3, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _Md_ = - [0, - cst_examples_aides_logement_pr, - 439, - 11, - 439, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mb_ = - [0, - cst_examples_aides_logement_co, - 1449, - 9, - 1449, - 29, - [0, - cst_Article_L861_6, - [0, - cst_Section_4_Allocations_de_l, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Me_ = - [0, - cst_examples_aides_logement_pr, - 439, - 11, - 439, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mh_ = - [0, - cst_examples_aides_logement_pr, - 439, - 11, - 439, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ma_ = - [0, - cst_examples_aides_logement_pr, - 439, - 11, - 439, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _L6_ = - [0, - cst_examples_aides_logement_co, - 1044, - 9, - 1044, - 29, - [0, - cst_Article_L841_1, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_IV_Allocations_de_lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _L7_ = - [0, - cst_examples_aides_logement_pr, - 440, - 11, - 440, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _L3_ = - [0, - cst_examples_aides_logement_co, - 1756, - 9, - 1756, - 29, - [0, - cst_Article_L862_3, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _L4_ = - [0, - cst_examples_aides_logement_pr, - 440, - 11, - 440, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _L2_ = - [0, - cst_examples_aides_logement_co, - 1450, - 9, - 1450, - 29, - [0, - cst_Article_L861_6, - [0, - cst_Section_4_Allocations_de_l, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _L5_ = - [0, - cst_examples_aides_logement_pr, - 440, - 11, - 440, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _L8_ = - [0, - cst_examples_aides_logement_pr, - 440, - 11, - 440, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _L1_ = - [0, - cst_examples_aides_logement_pr, - 440, - 11, - 440, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LV_ = - [0, - cst_examples_aides_logement_pr, - 462, - 14, - 462, - 46, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LR_ = - [0, - cst_examples_aides_logement_pr, - 460, - 14, - 460, - 56, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LQ_ = [3, 0], - _LM_ = - [0, - cst_examples_aides_logement_pr, - 459, - 14, - 459, - 50, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LI_ = - [0, - cst_examples_aides_logement_co$0, - 4179, - 14, - 4179, - 28, - [0, - "Article D841-1", - [0, - "Chapitre 1 : Champ d'application", - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _LJ_ = - [0, - cst_examples_aides_logement_pr, - 443, - 11, - 443, - 25, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LH_ = - [0, - cst_examples_aides_logement_pr, - 443, - 11, - 443, - 25, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LK_ = - [0, cst_ligibilit_AllocationLogeme, [0, "dur\xc3\xa9e_l841_1_3", 0]], - _LN_ = - [0, - cst_examples_aides_logement_pr, - 459, - 14, - 459, - 50, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LO_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_prestations_familiales_dat, 0]], - _LL_ = - [0, - cst_examples_aides_logement_pr, - 459, - 14, - 459, - 50, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LS_ = - [0, - cst_examples_aides_logement_pr, - 460, - 14, - 460, - 56, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LT_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_prestations_familiales_pre, 0]], - _LP_ = - [0, - cst_examples_aides_logement_pr, - 460, - 14, - 460, - 56, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LW_ = - [0, - cst_examples_aides_logement_pr, - 462, - 14, - 462, - 46, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LX_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_prestations_familiales_r_s, 0]], - _LU_ = - [0, - cst_examples_aides_logement_pr, - 462, - 14, - 462, - 46, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LY_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], - _LZ_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], - _L9_ = - [0, - cst_examples_aides_logement_pr, - 440, - 11, - 440, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _L0_ = - [0, - cst_examples_aides_logement_pr, - 440, - 11, - 440, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _L__ = [0, cst_ligibilit_AllocationLogeme, [0, "l_841_1_6_applicable", 0]], - _Mi_ = - [0, - cst_examples_aides_logement_pr, - 439, - 11, - 439, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _L$_ = - [0, - cst_examples_aides_logement_pr, - 439, - 11, - 439, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mj_ = [0, cst_ligibilit_AllocationLogeme, [0, "l_841_1_2_applicable", 0]], - _Mt_ = - [0, - cst_examples_aides_logement_pr, - 438, - 11, - 438, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mk_ = - [0, - cst_examples_aides_logement_pr, - 438, - 11, - 438, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mu_ = [0, cst_ligibilit_AllocationLogeme, [0, "l_841_1_1_applicable", 0]], - _MG_ = - [0, - cst_examples_aides_logement_pr, - 437, - 11, - 437, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Mv_ = - [0, - cst_examples_aides_logement_pr, - 437, - 11, - 437, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _MH_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, "condition_accession_propri\xc3\xa9t\xc3\xa9", 0]], - _MK_ = - [0, - cst_examples_aides_logement_pr, - 464, - 14, - 464, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ML_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_ligibilit_commune_m_nage, 0]], - _MI_ = - [0, - cst_examples_aides_logement_pr, - 464, - 14, - 464, - 40, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _MO_ = - [0, - cst_examples_aides_logement_pr, - 465, - 14, - 465, - 43, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _MP_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_ligibilit_commune_demandeu, 0]], - _MM_ = - [0, - cst_examples_aides_logement_pr, - 465, - 14, - 465, - 43, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _MS_ = - [0, - cst_examples_aides_logement_pr, - 466, - 14, - 466, - 47, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _MT_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_ligibilit_commune_date_cou, 0]], - _MQ_ = - [0, - cst_examples_aides_logement_pr, - 466, - 14, - 466, - 47, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _M0_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], - _M1_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], - _M4_ = - [0, - cst_examples_aides_logement_pr, - 453, - 12, - 453, - 61, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _M2_ = - [0, - cst_examples_aides_logement_pr, - 453, - 12, - 453, - 61, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _M5_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_coefficents_enfants_garde_$3, 0]], - _M8_ = - [0, - cst_examples_aides_logement_pr, - 452, - 12, - 452, - 54, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _M6_ = - [0, - cst_examples_aides_logement_pr, - 452, - 12, - 452, - 54, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _M9_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, cst_nombre_personnes_charge_pr$2, 0]], - _Nc_ = - [0, - cst_examples_aides_logement_pr, - 450, - 10, - 450, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _M__ = - [0, - cst_examples_aides_logement_pr, - 450, - 10, - 450, - 31, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Nd_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, "\xc3\xa9ligibilit\xc3\xa9_dispositions_communes", 0]], - _N6_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ne_ = - [0, - cst_examples_aides_logement_pr, - 442, - 11, - 442, - 52, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _N7_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement_familiale", 0]], - _Oo_ = - [0, - cst_examples_aides_logement_pr, - 451, - 10, - 451, - 16, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _N8_ = - [0, - cst_examples_aides_logement_pr, - 451, - 10, - 451, - 16, - [0, - cst_ligibilit_aux_allocations_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Op_ = - [0, - cst_ligibilit_AllocationLogeme, - [0, "\xc3\xa9ligibilit\xc3\xa9_l841_2", 0]], - _LE_ = - [0, - cst_examples_aides_logement_co$0, - 2106, - 14, - 2106, - 40, - [0, - "Article D823-22", - [0, - cst_Section_2_Prime_de_d_m_nag, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Lv_ = - [0, - cst_examples_aides_logement_co$0, - 5502, - 5, - 5502, - 40, - [0, - "Article D861-7", - [0, - cst_Capitre_I_Guadeloupe_Guyan, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Lw_ = - [0, - cst_examples_aides_logement_pr, - 493, - 11, - 493, - 31, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lu_ = - [0, - cst_examples_aides_logement_co, - 1889, - 5, - 1889, - 54, - [0, - "Article L863-2", - [0, - "Section 2 : Dispositions communes aux aides applicables \xc3\xa0 Saint-Pierre-et-Miquelon", - [0, - cst_Chapitre_III_Saint_Pierre_, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Lx_ = - [0, - cst_examples_aides_logement_pr, - 493, - 11, - 493, - 31, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lt_ = - [0, - cst_examples_aides_logement_co, - 1314, - 5, - 1314, - 40, - [0, - "Article L861-4", - [0, - cst_Section_2_Dispositions_com, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Ly_ = - [0, - cst_examples_aides_logement_pr, - 493, - 11, - 493, - 31, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lz_ = - [0, - cst_examples_aides_logement_pr, - 493, - 11, - 493, - 31, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ls_ = - [0, - cst_examples_aides_logement_co, - 599, - 5, - 602, - 42, - [0, - "Article L823-8", - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _LA_ = - [0, - cst_examples_aides_logement_pr, - 493, - 11, - 493, - 31, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lr_ = - [0, - cst_examples_aides_logement_pr, - 493, - 11, - 493, - 31, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ln_ = - [0, - cst_examples_aides_logement_ar, - 4303, - 14, - 4303, - 29, - [0, - "Article 45", - [0, - "Chapitre VIII : Prime de d\xc3\xa9m\xc3\xa9nagement", - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_3$99 = cst_3$101, - cst_0_2$1 = cst_0_2$2, - cst_3$100 = cst_3$101, - cst_0$352 = cst_0$359, - cst_2_4 = "2.4", - _Li_ = - [0, - cst_examples_aides_logement_co$0, - 2065, - 6, - 2076, - 75, - [0, - cst_Article_D823_20, - [0, - cst_Section_2_Prime_de_d_m_nag, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Lj_ = - [0, - cst_examples_aides_logement_pr, - 492, - 11, - 492, - 41, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lh_ = - [0, - cst_examples_aides_logement_pr, - 492, - 11, - 492, - 41, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lb_ = - [0, - cst_examples_aides_logement_pr, - 506, - 14, - 506, - 43, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _K9_ = - [0, - cst_examples_aides_logement_pr, - 505, - 14, - 505, - 39, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _K5_ = - [0, - cst_examples_aides_logement_pr, - 504, - 14, - 504, - 36, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _KZ_ = - [0, - cst_examples_aides_logement_pr, - 508, - 14, - 508, - 65, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_3$98 = cst_3$101, - _KU_ = - [0, - cst_examples_aides_logement_co$0, - 2056, - 5, - 2061, - 77, - [0, - cst_Article_D823_20, - [0, - cst_Section_2_Prime_de_d_m_nag, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _KV_ = - [0, - cst_examples_aides_logement_pr, - 491, - 11, - 491, - 32, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _KT_ = - [0, - cst_examples_aides_logement_pr, - 491, - 11, - 491, - 32, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _KP_ = - [0, - cst_examples_aides_logement_co$0, - 2080, - 14, - 2080, - 47, - [0, - cst_Article_D823_20, - [0, - cst_Section_2_Prime_de_d_m_nag, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _KQ_ = - [0, - cst_examples_aides_logement_pr, - 494, - 11, - 494, - 44, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _KO_ = - [0, - cst_examples_aides_logement_pr, - 494, - 11, - 494, - 44, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _KR_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, "d\xc3\xa9lai_apr\xc3\xa8s_emm\xc3\xa9nagement_l823_8_2", 0]], - _KW_ = - [0, - cst_examples_aides_logement_pr, - 491, - 11, - 491, - 32, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _KS_ = - [0, - cst_examples_aides_logement_pr, - 491, - 11, - 491, - 32, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _KX_ = - [0, cst_ligibilit_PrimeDeD_m_nagem, [0, "condition_rang_enfant", 0]], - _K0_ = - [0, - cst_examples_aides_logement_pr, - 508, - 14, - 508, - 65, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _K1_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, cst_base_mensuelle_allocations, 0]], - _KY_ = - [0, - cst_examples_aides_logement_pr, - 508, - 14, - 508, - 65, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _K2_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, - cst_base_mensuelle_allocations$0, - [0, cst_BaseMensuelleAllocationsFa, 0]]], - _K3_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, - cst_base_mensuelle_allocations$0, - [0, cst_BaseMensuelleAllocationsFa, 0]]], - _K6_ = - [0, - cst_examples_aides_logement_pr, - 504, - 14, - 504, - 36, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _K7_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, "\xc3\xa9ligibilit\xc3\xa9_apl.m\xc3\xa9nage", 0]], - _K4_ = - [0, - cst_examples_aides_logement_pr, - 504, - 14, - 504, - 36, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _K__ = - [0, - cst_examples_aides_logement_pr, - 505, - 14, - 505, - 39, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _K$_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, "\xc3\xa9ligibilit\xc3\xa9_apl.demandeur", 0]], - _K8_ = - [0, - cst_examples_aides_logement_pr, - 505, - 14, - 505, - 39, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lc_ = - [0, - cst_examples_aides_logement_pr, - 506, - 14, - 506, - 43, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ld_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, "\xc3\xa9ligibilit\xc3\xa9_apl.date_courante", 0]], - _La_ = - [0, - cst_examples_aides_logement_pr, - 506, - 14, - 506, - 43, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Le_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, cst_ligibilit_apl, [0, cst_ligibilit_AidesPersonnelle, 0]]], - _Lf_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, cst_ligibilit_apl, [0, cst_ligibilit_AidesPersonnelle, 0]]], - _Lk_ = - [0, - cst_examples_aides_logement_pr, - 492, - 11, - 492, - 41, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lg_ = - [0, - cst_examples_aides_logement_pr, - 492, - 11, - 492, - 41, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ll_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, "condition_p\xc3\xa9riode_d\xc3\xa9m\xc3\xa9nagement", 0]], - _Lo_ = - [0, - cst_examples_aides_logement_pr, - 495, - 11, - 495, - 26, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lm_ = - [0, - cst_examples_aides_logement_pr, - 495, - 11, - 495, - 26, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lp_ = [0, cst_ligibilit_PrimeDeD_m_nagem, [0, "plafond_d823_22", 0]], - _LB_ = - [0, - cst_examples_aides_logement_pr, - 493, - 11, - 493, - 31, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Lq_ = - [0, - cst_examples_aides_logement_pr, - 493, - 11, - 493, - 31, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LC_ = [0, cst_ligibilit_PrimeDeD_m_nagem, [0, cst_ligibilit_logement, 0]], - _LF_ = - [0, - cst_examples_aides_logement_pr, - 501, - 12, - 501, - 38, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LD_ = - [0, - cst_examples_aides_logement_pr, - 501, - 12, - 501, - 38, - [0, - cst_ligibilit_la_prime_de_d_m_, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _LG_ = - [0, - cst_ligibilit_PrimeDeD_m_nagem, - [0, cst_montant_prime_d_m_nagement$0, 0]], - _KK_ = - [0, - cst_examples_aides_logement_au, - 372, - 5, - 373, - 34, - [0, - cst_Article_7, - [0, - "D\xc3\xa9cret n\xc2\xb0 2021-1750 du 21 d\xc3\xa9cembre 2021 portant diverses mesures sur les aides personnelles au logement et relatif aux aides personnelles au logement \xc3\xa0 Saint-Pierre-et-Miquelon", - 0]]], - cst_8$0 = "8.", - cst_2026 = "2026", - _KL_ = - [0, - cst_examples_aides_logement_pr, - 1109, - 12, - 1109, - 31, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _KJ_ = - [0, - cst_examples_aides_logement_co$0, - 1439, - 14, - 1439, - 33, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _KF_ = - [0, - cst_examples_aides_logement_co$0, - 1441, - 14, - 1441, - 36, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _KG_ = - [0, - cst_examples_aides_logement_pr, - 1110, - 12, - 1110, - 34, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _KE_ = - [0, - cst_examples_aides_logement_pr, - 1110, - 12, - 1110, - 34, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _KA_ = - [0, - cst_examples_aides_logement_co$0, - 6410, - 24, - 6410, - 46, - [0, - cst_Article_D863_7, - [0, - cst_Sous_section_III_Modalit_s, - [0, - cst_Section_II_Dispositions_co, - [0, - cst_Chapitre_III_Saint_Pierre_, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Kt_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _Ku_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_traitement_aide_finale$9, 0]], - _Kv_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _Kw_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_traitement_aide_finale$9, 0]], - cst_0$349 = cst_0$359, - cst_0$350 = cst_0$359, - _Kp_ = [1, 0], - cst_0$351 = cst_0$359, - _Kq_ = - [0, - cst_examples_aides_logement_co$0, - 6439, - 42, - 6439, - 45, - [0, - cst_Article_D863_7, - [0, - cst_Sous_section_III_Modalit_s, - [0, - cst_Section_II_Dispositions_co, - [0, - cst_Chapitre_III_Saint_Pierre_, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Kr_ = - [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_input, 0]]], - _Ks_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], - _Kx_ = - [0, - cst_examples_aides_logement_co$0, - 6414, - 9, - 6442, - 10, - [0, - cst_Article_D863_7, - [0, - cst_Sous_section_III_Modalit_s, - [0, - cst_Section_II_Dispositions_co, - [0, - cst_Chapitre_III_Saint_Pierre_, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Ky_ = - [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_output, 0]]], - _Kz_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], - _KB_ = - [0, - cst_examples_aides_logement_pr, - 1107, - 11, - 1107, - 33, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _Ko_ = - [0, - cst_examples_aides_logement_co$0, - 1555, - 14, - 1555, - 36, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Kh_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _Ki_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale$9, 0]], - _Kj_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _Kk_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale$9, 0]], - _J__ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _J$_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale$9, 0]], - _Ka_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _Kb_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale$9, 0]], - _J1_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _J2_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_traitement_aide_finale$9, 0]], - _J3_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _J4_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_traitement_aide_finale$9, 0]], - cst_0$347 = cst_0$359, - cst_0$348 = cst_0$359, - _JY_ = - [0, - cst_examples_aides_logement_co$0, - 1575, - 16, - 1578, - 39, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _JZ_ = - [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_input, 0]]], - _J0_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], - _J5_ = - [0, - cst_examples_aides_logement_co$0, - 1559, - 9, - 1581, - 10, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _J6_ = - [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_output, 0]]], - _J7_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], - _J8_ = - [0, cst_CalculAllocationLogementAc, [0, cst_direct, [0, cst_input, 0]]], - _J9_ = [0, cst_CalculAllocationLogementAc, [0, cst_direct, 0]], - _Kc_ = - [0, - cst_examples_aides_logement_co$0, - 1614, - 10, - 1633, - 11, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Kd_ = - [0, cst_CalculAllocationLogementAc, [0, cst_direct, [0, cst_output, 0]]], - _Ke_ = [0, cst_CalculAllocationLogementAc, [0, cst_direct, 0]], - _Kf_ = - [0, cst_CalculAllocationLogementFo, [0, cst_direct, [0, cst_input, 0]]], - _Kg_ = [0, cst_CalculAllocationLogementFo, [0, cst_direct, 0]], - _Kl_ = - [0, - cst_examples_aides_logement_co$0, - 1592, - 9, - 1604, - 10, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Km_ = - [0, cst_CalculAllocationLogementFo, [0, cst_direct, [0, cst_output, 0]]], - _Kn_ = [0, cst_CalculAllocationLogementFo, [0, cst_direct, 0]], - _JU_ = - [0, - cst_examples_aides_logement_ar, - 90, - 14, - 90, - 44, - [0, - cst_Article_7, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - _JO_ = [0, 0], - _JP_ = [1, 0], - _JQ_ = [1, 0], - _JR_ = [1, 0], - _JS_ = [0, 0], - _JT_ = [1, 0], - _JK_ = - [0, - cst_examples_aides_logement_co$0, - 1972, - 14, - 1972, - 31, - [0, - cst_Article_D823_17, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _JG_ = - [0, - cst_examples_aides_logement_co$0, - 1428, - 14, - 1428, - 34, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _JH_ = - [0, - cst_examples_aides_logement_pr, - 1104, - 11, - 1104, - 31, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _JF_ = - [0, - cst_examples_aides_logement_pr, - 1104, - 11, - 1104, - 31, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _JI_ = [0, cst_CalculAllocationLogement, [0, cst_cat_gorie_calcul_apl, 0]], - _JL_ = - [0, - cst_examples_aides_logement_pr, - 1096, - 10, - 1096, - 22, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _JJ_ = - [0, - cst_examples_aides_logement_pr, - 1096, - 10, - 1096, - 22, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _JM_ = - [0, - cst_CalculAllocationLogement, - [0, cst_ressources_m_nage_avec_arr, 0]], - _JV_ = - [0, - cst_examples_aides_logement_pr, - 1105, - 11, - 1105, - 41, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _JN_ = - [0, - cst_examples_aides_logement_pr, - 1105, - 11, - 1105, - 41, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _JW_ = - [0, - cst_CalculAllocationLogement, - [0, cst_situation_familiale_calcul$7, 0]], - _KC_ = - [0, - cst_examples_aides_logement_pr, - 1107, - 11, - 1107, - 33, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _JX_ = - [0, - cst_examples_aides_logement_pr, - 1107, - 11, - 1107, - 33, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _KD_ = - [0, cst_CalculAllocationLogement, [0, cst_sous_calcul_traitement, 0]], - _KH_ = - [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], - _KM_ = - [0, - cst_examples_aides_logement_pr, - 1109, - 12, - 1109, - 31, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _KI_ = - [0, - cst_examples_aides_logement_pr, - 1109, - 12, - 1109, - 31, - [0, - cst_Tous_secteurs, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _KN_ = - [0, cst_CalculAllocationLogement, [0, cst_aide_finale_formule$9, 0]], - _Jw_ = - [0, - cst_examples_aides_logement_pr, - 357, - 14, - 357, - 56, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Js_ = - [0, - cst_examples_aides_logement_pr, - 359, - 14, - 359, - 63, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_0$345 = cst_0$360, - cst_0$346 = cst_0$360, - _Jo_ = - [0, - cst_examples_aides_logement_co$0, - 1139, - 14, - 1139, - 49, - [0, - cst_Article_R823_4, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Jk_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_prise_en_compte_personne_c, [0, cst_input0, 0]]], - _Jl_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_prise_en_compte_personne_c, 0]], - _Jm_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_prise_en_compte_personne_c, [0, cst_output, 0]]], - _Jn_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_prise_en_compte_personne_c, 0]], - cst_1_25$0 = cst_1_25$1, - _Je_ = - [0, - cst_examples_aides_logement_co$0, - 1246, - 4, - 1252, - 48, - [0, - cst_Article_R823_4, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Jf_ = - [0, - cst_examples_aides_logement_pr, - 321, - 11, - 321, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _I$_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_condition_2_r823_4$0, [0, cst_input0, 0]]], - _Ja_ = - [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], - _Jb_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_condition_2_r823_4$0, [0, cst_output, 0]]], - _Jc_ = - [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], - _Jd_ = - [0, - cst_examples_aides_logement_co$0, - 1227, - 5, - 1227, - 44, - [0, - cst_Article_R823_4, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Jg_ = - [0, - cst_examples_aides_logement_pr, - 321, - 11, - 321, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _I5_ = - [0, - cst_examples_aides_logement_co, - 1844, - 5, - 1850, - 34, - [0, - cst_Article_L862_3, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _I6_ = - [0, - cst_examples_aides_logement_pr, - 321, - 11, - 321, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _I4_ = - [0, - cst_examples_aides_logement_co, - 1574, - 5, - 1580, - 34, - [0, - cst_Article_L861_6, - [0, - cst_Section_4_Allocations_de_l, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _I7_ = - [0, - cst_examples_aides_logement_pr, - 321, - 11, - 321, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _I3_ = - [0, - cst_examples_aides_logement_co, - 449, - 5, - 457, - 28, - [0, - cst_Article_L823_1, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _I8_ = - [0, - cst_examples_aides_logement_pr, - 321, - 11, - 321, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _I9_ = - [0, - cst_examples_aides_logement_pr, - 321, - 11, - 321, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IW_ = [2, 0], - _I2_ = [0, 0], - _IX_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], - _IY_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - _IZ_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_droit_ouvert$0, [0, cst_output, 0]]], - _I0_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - _I1_ = - [0, - cst_examples_aides_logement_co$0, - 1156, - 5, - 1178, - 44, - [0, - cst_Article_R823_4, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _I__ = - [0, - cst_examples_aides_logement_pr, - 321, - 11, - 321, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IV_ = - [0, - cst_examples_aides_logement_pr, - 321, - 11, - 321, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Jh_ = - [0, - cst_examples_aides_logement_pr, - 321, - 11, - 321, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IU_ = - [0, - cst_examples_aides_logement_pr, - 321, - 11, - 321, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IQ_ = - [0, - cst_examples_aides_logement_pr, - 353, - 5, - 355, - 25, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IR_ = - [0, - cst_examples_aides_logement_pr, - 342, - 12, - 342, - 23, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IP_ = - [0, - cst_examples_aides_logement_pr, - 342, - 12, - 342, - 23, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IE_ = - [0, - cst_examples_aides_logement_co$0, - 1214, - 30, - 1214, - 35, - [0, - cst_Article_R823_4, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _IF_ = - [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, [0, cst_input, 0]]], - _IG_ = [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, 0]], - _IH_ = - [0, - cst_examples_aides_logement_co$0, - 1211, - 17, - 1214, - 37, - [0, - cst_Article_R823_4, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _II_ = - [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, [0, cst_output, 0]]], - _IJ_ = [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, 0]], - cst_1_25 = cst_1_25$1, - _IK_ = [0, 0], - _ID_ = - [0, - cst_examples_aides_logement_co$0, - 1199, - 5, - 1222, - 10, - [0, - cst_Article_R823_4, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _IL_ = - [0, - cst_examples_aides_logement_pr, - 346, - 12, - 346, - 30, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IC_ = - [0, - cst_examples_aides_logement_pr, - 346, - 12, - 346, - 30, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IM_ = - [0, - cst_examples_aides_logement_pr, - 346, - 12, - 346, - 30, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IB_ = - [0, - cst_examples_aides_logement_pr, - 346, - 12, - 346, - 30, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Iw_ = - [0, - cst_examples_aides_logement_co, - 91, - 5, - 92, - 52, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _Ix_ = - [0, - cst_examples_aides_logement_pr, - 320, - 11, - 320, - 31, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Iv_ = - [0, - cst_examples_aides_logement_co, - 84, - 5, - 87, - 52, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], - _Iy_ = - [0, - cst_examples_aides_logement_pr, - 320, - 11, - 320, - 31, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Iu_ = - [0, - cst_examples_aides_logement_pr, - 320, - 11, - 320, - 31, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Iq_ = - [0, - cst_examples_aides_logement_co$1, - 163, - 14, - 163, - 31, - [0, - "Article L351-8", - [0, - "Section 5 : Taux et montant de la pension", - [0, - "Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite", - [0, - "Titre V : Assurance vieillesse - Assurance veuvage", - [0, - "Livre III : Dispositions relatives aux assurances sociales et \xc3\xa0 diverses cat\xc3\xa9gories de personnes rattach\xc3\xa9es au r\xc3\xa9gime g\xc3\xa9n\xc3\xa9rale", - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], - _Il_ = - [0, - cst_examples_aides_logement_co, - 401, - 18, - 401, - 44, - [0, - "Article L822-10", - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Im_ = - [0, - cst_examples_aides_logement_pr, - 317, - 11, - 317, - 58, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ik_ = - [0, - cst_examples_aides_logement_pr, - 317, - 11, - 317, - 58, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ic_ = - [0, - cst_examples_aides_logement_co, - 302, - 18, - 302, - 75, - [0, - cst_Article_L822_5, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - cst_0$344 = cst_0$359, - _Id_ = - [0, - cst_examples_aides_logement_pr, - 334, - 11, - 334, - 36, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _H$_ = [5, 0], - _Ia_ = [4, 0], - _Ib_ = - [0, - cst_examples_aides_logement_co, - 288, - 18, - 290, - 45, - [0, - cst_Article_L822_5, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - cst_0$343 = cst_0$359, - _Ie_ = - [0, - cst_examples_aides_logement_pr, - 334, - 11, - 334, - 36, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _If_ = - [0, - cst_examples_aides_logement_pr, - 334, - 11, - 334, - 36, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _H__ = - [0, - cst_examples_aides_logement_co$0, - 945, - 5, - 945, - 58, - [0, - cst_Article_R822_22, - [0, - cst_Sous_section_4_Prise_en_co, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _Ig_ = - [0, - cst_examples_aides_logement_pr, - 334, - 11, - 334, - 36, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _H9_ = - [0, - cst_examples_aides_logement_co, - 271, - 33, - 271, - 58, - [0, - cst_Article_L822_5, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - cst_0$342 = cst_0$359, - _H5_ = - [0, - cst_examples_aides_logement_co$1, - 125, - 14, - 125, - 32, - [0, - cst_Article_L161_17_2, - [0, - cst_Paragraphe_1_Information_e, - [0, - cst_Sous_section_4_Assurance_v, - [0, - cst_Section_1_B_n_ficiaires, - [0, - cst_Chapitre_1er_Dispositions_, - [0, - cst_Titre_VI_Dispositions_rela, - [0, - cst_Titre_III_Titre_III_Dispos, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], - cst_2$104 = cst_2$105, - _HX_ = - [0, - cst_examples_aides_logement_co$0, - 5280, - 5, - 5281, - 34, - [0, - cst_Article_R844_4, - [0, - cst_Chapitre_IV_Conditions_de_, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _HY_ = - [0, - cst_examples_aides_logement_pr, - 314, - 12, - 314, - 38, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_1$248 = cst_1$254, - cst_9$2 = cst_9$3, - cst_16$3 = cst_16$4, - _HW_ = - [0, - cst_examples_aides_logement_co$0, - 5273, - 5, - 5275, - 58, - [0, - cst_Article_R844_4, - [0, - cst_Chapitre_IV_Conditions_de_, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _HZ_ = - [0, - cst_examples_aides_logement_pr, - 314, - 12, - 314, - 38, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_9 = cst_9$3, - cst_9$0 = cst_9$3, - cst_16 = cst_16$4, - cst_16$0 = cst_16$4, - cst_16$1 = cst_16$4, - cst_9$1 = cst_9$3, - cst_16$2 = cst_16$4, - cst_8 = "8", - cst_70 = cst_70$1, - cst_70$0 = cst_70$1, - _HV_ = - [0, - cst_examples_aides_logement_co$0, - 1048, - 5, - 1065, - 65, - [0, - cst_Article_R822_25, - [0, - cst_Section_3_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _H0_ = - [0, - cst_examples_aides_logement_pr, - 314, - 12, - 314, - 38, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _HU_ = - [0, - cst_examples_aides_logement_pr, - 314, - 12, - 314, - 38, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _H1_ = - [0, - cst_examples_aides_logement_pr, - 314, - 12, - 314, - 38, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_0$341 = cst_0$360, - cst_0$340 = cst_0$360, - _HN_ = - [0, - cst_examples_aides_logement_co, - 189, - 5, - 195, - 65, - [0, - cst_Article_L822_3, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _HO_ = - [0, - cst_examples_aides_logement_pr, - 312, - 11, - 312, - 45, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _HM_ = - [0, - cst_examples_aides_logement_co, - 174, - 5, - 176, - 30, - [0, - cst_Article_L822_3, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _HP_ = - [0, - cst_examples_aides_logement_pr, - 312, - 11, - 312, - 45, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _HL_ = - [0, - cst_examples_aides_logement_co, - 143, - 5, - 149, - 33, - [0, - cst_Article_L822_2, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _HQ_ = - [0, - cst_examples_aides_logement_pr, - 312, - 11, - 312, - 45, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _HK_ = - [0, - cst_examples_aides_logement_pr, - 312, - 11, - 312, - 45, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _HB_ = - [0, - cst_examples_aides_logement_co$0, - 5723, - 5, - 5726, - 28, - [0, - cst_Article_R862_2, - [0, - cst_Section_I_Dispositions_com, - [0, - cst_Chapitre_II_Saint_Barth_le, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _HC_ = - [0, - cst_examples_aides_logement_co$0, - 5722, - 24, - 5722, - 59, - [0, - cst_Article_R862_2, - [0, - cst_Section_I_Dispositions_com, - [0, - cst_Chapitre_II_Saint_Barth_le, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _HA_ = - [0, - cst_examples_aides_logement_co$0, - 5628, - 6, - 5634, - 30, - [0, - "Article D861-9", - [0, - cst_Section_2_Allocations_de_l, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _HD_ = - [0, - cst_examples_aides_logement_co$0, - 5722, - 24, - 5722, - 59, - [0, - cst_Article_R862_2, - [0, - cst_Section_I_Dispositions_com, - [0, - cst_Chapitre_II_Saint_Barth_le, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _HE_ = - [0, - cst_examples_aides_logement_co$0, - 5722, - 24, - 5722, - 59, - [0, - cst_Article_R862_2, - [0, - cst_Section_I_Dispositions_com, - [0, - cst_Chapitre_II_Saint_Barth_le, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Hz_ = - [0, - cst_examples_aides_logement_co$0, - 1152, - 14, - 1152, - 49, - [0, - cst_Article_R823_4, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _HF_ = - [0, - cst_examples_aides_logement_co$0, - 5722, - 24, - 5722, - 59, - [0, - cst_Article_R862_2, - [0, - cst_Section_I_Dispositions_com, - [0, - cst_Chapitre_II_Saint_Barth_le, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _HG_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "prestations_familiales.\xc3\xa2ge_l512_3_2", 0]], - _Hw_ = - [0, - cst_examples_aides_logement_pr, - 383, - 14, - 383, - 46, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Hs_ = - [0, - cst_examples_aides_logement_pr, - 381, - 14, - 381, - 56, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Hr_ = [3, 0], - _Hn_ = - [0, - cst_examples_aides_logement_pr, - 380, - 14, - 380, - 50, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Hc_ = - [0, - cst_examples_aides_logement_co, - 227, - 22, - 227, - 27, - [0, - cst_Article_L822_4, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Hd_ = - [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_input, 0]]], - _He_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], - _Hf_ = - [0, - cst_examples_aides_logement_co, - 224, - 8, - 227, - 29, - [0, - cst_Article_L822_4, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Hg_ = - [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_output, 0]]], - _Hh_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], - _Hb_ = - [0, - cst_examples_aides_logement_co, - 221, - 5, - 229, - 39, - [0, - cst_Article_L822_4, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Hi_ = - [0, - cst_examples_aides_logement_pr, - 313, - 11, - 313, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ha_ = - [0, - cst_examples_aides_logement_co, - 215, - 5, - 216, - 34, - [0, - cst_Article_L822_4, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Hj_ = - [0, - cst_examples_aides_logement_pr, - 313, - 11, - 313, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _G$_ = - [0, - cst_examples_aides_logement_pr, - 313, - 11, - 313, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _G6_ = - [0, - cst_examples_aides_logement_co$1, - 329, - 5, - 330, - 34, - [0, - cst_Article_D815_1, - [0, - cst_Section_1_Ouverture_du_dro, - [0, - cst_Chapitre_5_Allocation_de_s, - [0, - cst_Titre_I_Allocations_aux_pe, - [0, - cst_Livre_VIII_Allocations_aux, - [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], - cst_999840 = "999840", - _G7_ = - [0, - cst_examples_aides_logement_pr, - 337, - 11, - 337, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _G4_ = - [0, - cst_examples_aides_logement_co$1, - 334, - 5, - 335, - 34, - [0, - cst_Article_D815_1, - [0, - cst_Section_1_Ouverture_du_dro, - [0, - cst_Chapitre_5_Allocation_de_s, - [0, - cst_Titre_I_Allocations_aux_pe, - [0, - cst_Livre_VIII_Allocations_aux, - [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], - cst_1041840 = "1041840", - _G5_ = - [0, - cst_examples_aides_logement_pr, - 337, - 11, - 337, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _G2_ = - [0, - cst_examples_aides_logement_co$1, - 339, - 5, - 340, - 34, - [0, - cst_Article_D815_1, - [0, - cst_Section_1_Ouverture_du_dro, - [0, - cst_Chapitre_5_Allocation_de_s, - [0, - cst_Titre_I_Allocations_aux_pe, - [0, - cst_Livre_VIII_Allocations_aux, - [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], - cst_1083840 = "1083840", - _G3_ = - [0, - cst_examples_aides_logement_pr, - 337, - 11, - 337, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _G0_ = - [0, - cst_examples_aides_logement_au, - 58, - 5, - 58, - 34, - [0, - 'Circulaire de la CNAV 2023-3 du 09/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2023"', - [0, cst_Montants_revaloris_s_de_l_, 0]]], - cst_1153302 = "1153302", - _G1_ = - [0, - cst_examples_aides_logement_pr, - 337, - 11, - 337, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GY_ = - [0, - cst_examples_aides_logement_au, - 89, - 5, - 90, - 33, - [0, - 'Circulaire de la CNAV 2022-3 du 11/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2022"', - [0, cst_Montants_revaloris_s_de_l_, 0]]], - cst_1100144 = "1100144", - _GZ_ = - [0, - cst_examples_aides_logement_pr, - 337, - 11, - 337, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GW_ = - [0, - cst_examples_aides_logement_au, - 122, - 5, - 123, - 33, - [0, - 'Circulaire de la CNAV 2021-1 du 11/01/2021 "Revalorisation \xc3\xa0 compter du 1er janvier 2021"', - [0, cst_Montants_revaloris_s_de_l_, 0]]], - cst_1088175 = "1088175", - _GX_ = - [0, - cst_examples_aides_logement_pr, - 337, - 11, - 337, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GR_ = - [0, - cst_examples_aides_logement_co, - 1334, - 5, - 1334, - 40, - [0, - cst_Article_L861_5, - [0, - cst_Section_2_Dispositions_com, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _GS_ = - [0, - cst_examples_aides_logement_pr, - 310, - 11, - 310, - 32, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GQ_ = - [0, - cst_examples_aides_logement_co, - 125, - 14, - 125, - 35, - [0, - cst_Article_L822_2, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _GM_ = - [0, - cst_examples_aides_logement_co, - 267, - 14, - 267, - 40, - [0, - cst_Article_L822_5, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _GG_ = - [0, - cst_examples_aides_logement_co$1, - 123, - 14, - 123, - 61, - [0, - cst_Article_L161_17_2, - [0, - cst_Paragraphe_1_Information_e, - [0, - cst_Sous_section_4_Assurance_v, - [0, - cst_Section_1_B_n_ficiaires, - [0, - cst_Chapitre_1er_Dispositions_, - [0, - cst_Titre_VI_Dispositions_rela, - [0, - cst_Titre_III_Titre_III_Dispos, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], - _GA_ = - [0, - cst_examples_aides_logement_co, - 46, - 5, - 46, - 41, - [0, - "Article L821-2", - [0, - "Sous-section 1 : Aides personnelles au logement", - [0, - "Section 2 : R\xc3\xa8gles de non-cumul", - [0, - "Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux", - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _GB_ = - [0, - cst_examples_aides_logement_pr, - 311, - 12, - 311, - 51, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gz_ = - [0, - cst_examples_aides_logement_pr, - 311, - 12, - 311, - 51, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GC_ = - [0, - cst_examples_aides_logement_pr, - 311, - 12, - 311, - 51, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gu_ = - [0, - cst_examples_aides_logement_co, - 362, - 18, - 362, - 67, - [0, - "Article L822-8", - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Gv_ = - [0, - cst_examples_aides_logement_pr, - 315, - 11, - 315, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gt_ = - [0, - cst_examples_aides_logement_pr, - 315, - 11, - 315, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Go_ = - [0, - cst_examples_aides_logement_co, - 376, - 18, - 376, - 61, - [0, - "Article L822-9", - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Gp_ = - [0, - cst_examples_aides_logement_pr, - 316, - 11, - 316, - 58, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gn_ = - [0, - cst_examples_aides_logement_pr, - 316, - 11, - 316, - 58, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gh_ = - [0, - cst_examples_aides_logement_co, - 1376, - 5, - 1376, - 40, - [0, - cst_Article_L861_5, - [0, - cst_Section_2_Dispositions_com, - [0, - cst_Chapitre_Ier_Guadeloupe_Gu, - [0, - cst_Titre_VI_Dispositions_part, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Gi_ = - [0, - cst_examples_aides_logement_pr, - 319, - 11, - 319, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gg_ = - [0, - cst_examples_aides_logement_co, - 445, - 9, - 445, - 42, - [0, - cst_Article_L823_1, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Gj_ = - [0, - cst_examples_aides_logement_pr, - 319, - 11, - 319, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gf_ = - [0, - cst_examples_aides_logement_pr, - 319, - 11, - 319, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gb_ = - [0, - cst_examples_aides_logement_co$0, - 1035, - 14, - 1035, - 39, - [0, - cst_Article_R822_25, - [0, - cst_Section_3_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_1$246 = cst_1$254, - cst_2$100 = cst_2$105, - cst_2$101 = cst_2$105, - cst_2$102 = cst_2$105, - cst_1$247 = cst_1$254, - cst_2$103 = cst_2$105, - _F9_ = - [0, - cst_examples_aides_logement_co, - 164, - 14, - 164, - 43, - [0, - cst_Article_L822_3, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _F5_ = - [0, - cst_examples_aides_logement_co$0, - 928, - 14, - 928, - 37, - [0, - cst_Article_R822_22, - [0, - cst_Sous_section_4_Prise_en_co, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_3000000 = "3000000", - _F1_ = - [0, - cst_examples_aides_logement_co$0, - 106, - 14, - 106, - 41, - [0, - cst_Article_R822_1, - [0, - cst_Section_1_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0_1$0 = cst_0_1$1, - _FX_ = - [0, - cst_examples_aides_logement_co$0, - 105, - 14, - 105, - 42, - [0, - cst_Article_R822_1, - [0, - cst_Section_1_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0_1 = cst_0_1$1, - _FS_ = - [0, - cst_examples_aides_logement_co$0, - 5464, - 14, - 5464, - 46, - [0, - cst_Article_R861_5, - [0, - cst_Capitre_I_Guadeloupe_Guyan, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _FT_ = - [0, - cst_examples_aides_logement_pr, - 325, - 12, - 325, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FO_ = - [0, - cst_examples_aides_logement_pr, - 318, - 11, - 318, - 48, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FK_ = - [0, - cst_examples_aides_logement_pr, - 309, - 11, - 309, - 25, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FL_ = - [0, - cst_examples_aides_logement_pr, - 309, - 11, - 309, - 25, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FJ_ = - [0, - cst_examples_aides_logement_pr, - 309, - 11, - 309, - 25, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FM_ = - [0, cst_ligibilit_AidesPersonnelle, [0, "condition_pr\xc3\xaat", 0]], - _FP_ = - [0, - cst_examples_aides_logement_pr, - 318, - 11, - 318, - 48, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FN_ = - [0, - cst_examples_aides_logement_pr, - 318, - 11, - 318, - 48, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FQ_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "condition_peuplement_logement_l822_10", 0]], - _FU_ = - [0, - cst_examples_aides_logement_pr, - 325, - 12, - 325, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FR_ = - [0, - cst_examples_aides_logement_pr, - 325, - 12, - 325, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FV_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch", 0]], - _FY_ = - [0, - cst_examples_aides_logement_pr, - 331, - 11, - 331, - 39, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FW_ = - [0, - cst_examples_aides_logement_pr, - 331, - 11, - 331, - 39, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FZ_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "seuil_l822_3_parts_propri\xc3\xa9t\xc3\xa9", 0]], - _F2_ = - [0, - cst_examples_aides_logement_pr, - 332, - 11, - 332, - 38, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _F0_ = - [0, - cst_examples_aides_logement_pr, - 332, - 11, - 332, - 38, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _F3_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "seuil_l822_3_parts_usufruit", 0]], - _F6_ = - [0, - cst_examples_aides_logement_pr, - 333, - 11, - 333, - 34, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _F4_ = - [0, - cst_examples_aides_logement_pr, - 333, - 11, - 333, - 34, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _F7_ = - [0, cst_ligibilit_AidesPersonnelle, [0, "seuil_l822_5_patrimoine", 0]], - _F__ = - [0, - cst_examples_aides_logement_pr, - 330, - 11, - 330, - 40, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _F8_ = - [0, - cst_examples_aides_logement_pr, - 330, - 11, - 330, - 40, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _F$_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "usufruit_ou_propri\xc3\xa9t\xc3\xa9_famille", 0]], - _Gc_ = - [0, - cst_examples_aides_logement_pr, - 326, - 11, - 326, - 36, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ga_ = - [0, - cst_examples_aides_logement_pr, - 326, - 11, - 326, - 36, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gd_ = - [0, cst_ligibilit_AidesPersonnelle, [0, "nombre_personnes_logement", 0]], - _Gk_ = - [0, - cst_examples_aides_logement_pr, - 319, - 11, - 319, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ge_ = - [0, - cst_examples_aides_logement_pr, - 319, - 11, - 319, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gl_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "septi\xc3\xa8me_alin\xc3\xa9a_l823_1_applicable", 0]], - _Gq_ = - [0, - cst_examples_aides_logement_pr, - 316, - 11, - 316, - 58, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gm_ = - [0, - cst_examples_aides_logement_pr, - 316, - 11, - 316, - 58, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gr_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "condition_non_ouverture_l822_9_decence_logement", 0]], - _Gw_ = - [0, - cst_examples_aides_logement_pr, - 315, - 11, - 315, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gs_ = - [0, - cst_examples_aides_logement_pr, - 315, - 11, - 315, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gx_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "condition_non_ouverture_l822_8", 0]], - _GD_ = - [0, - cst_examples_aides_logement_pr, - 311, - 12, - 311, - 51, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Gy_ = - [0, - cst_examples_aides_logement_pr, - 311, - 12, - 311, - 51, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GE_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "condition_logement_r\xc3\xa9sidence_principale", 0]], - _GH_ = - [0, - cst_examples_aides_logement_co$1, - 123, - 14, - 123, - 61, - [0, - cst_Article_L161_17_2, - [0, - cst_Paragraphe_1_Information_e, - [0, - cst_Sous_section_4_Assurance_v, - [0, - cst_Section_1_B_n_ficiaires, - [0, - cst_Chapitre_1er_Dispositions_, - [0, - cst_Titre_VI_Dispositions_rela, - [0, - cst_Titre_III_Titre_III_Dispos, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], - _GI_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "ouverture_droits_retraite.date_naissance_assur\xc3\xa9", 0]], - _GF_ = - [0, - cst_examples_aides_logement_co$1, - 123, - 14, - 123, - 61, - [0, - cst_Article_L161_17_2, - [0, - cst_Paragraphe_1_Information_e, - [0, - cst_Sous_section_4_Assurance_v, - [0, - cst_Section_1_B_n_ficiaires, - [0, - cst_Chapitre_1er_Dispositions_, - [0, - cst_Titre_VI_Dispositions_rela, - [0, - cst_Titre_III_Titre_III_Dispos, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], - _GJ_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_ouverture_droits_retraite, [0, cst_OuvertureDroitsRetraite, 0]]], - _GK_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_ouverture_droits_retraite, [0, cst_OuvertureDroitsRetraite, 0]]], - _GN_ = - [0, - cst_examples_aides_logement_pr, - 329, - 11, - 329, - 37, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GL_ = - [0, - cst_examples_aides_logement_pr, - 329, - 11, - 329, - 37, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GO_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "patrimoine_total_demandeur", 0]], - _GT_ = - [0, - cst_examples_aides_logement_pr, - 310, - 11, - 310, - 32, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GP_ = - [0, - cst_examples_aides_logement_pr, - 310, - 11, - 310, - 32, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GU_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "condition_nationalit\xc3\xa9", 0]], - _G8_ = - [0, - cst_examples_aides_logement_pr, - 337, - 11, - 337, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _GV_ = - [0, - cst_examples_aides_logement_pr, - 337, - 11, - 337, - 41, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _G9_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "plafond_individuel_l815_9_s\xc3\xa9cu", 0]], - _Hk_ = - [0, - cst_examples_aides_logement_pr, - 313, - 11, - 313, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _G__ = - [0, - cst_examples_aides_logement_pr, - 313, - 11, - 313, - 44, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Hl_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "condition_logement_location_tiers", 0]], - _Ho_ = - [0, - cst_examples_aides_logement_pr, - 380, - 14, - 380, - 50, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Hp_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_prestations_familiales_dat, 0]], - _Hm_ = - [0, - cst_examples_aides_logement_pr, - 380, - 14, - 380, - 50, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ht_ = - [0, - cst_examples_aides_logement_pr, - 381, - 14, - 381, - 56, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Hu_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_prestations_familiales_pre, 0]], - _Hq_ = - [0, - cst_examples_aides_logement_pr, - 381, - 14, - 381, - 56, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Hx_ = - [0, - cst_examples_aides_logement_pr, - 383, - 14, - 383, - 46, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Hy_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_prestations_familiales_r_s, 0]], - _Hv_ = - [0, - cst_examples_aides_logement_pr, - 383, - 14, - 383, - 46, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _HH_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], - _HI_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], - _HR_ = - [0, - cst_examples_aides_logement_pr, - 312, - 11, - 312, - 45, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _HJ_ = - [0, - cst_examples_aides_logement_pr, - 312, - 11, - 312, - 45, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _HS_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "condition_logement_mode_occupation", 0]], - _H2_ = - [0, - cst_examples_aides_logement_pr, - 314, - 12, - 314, - 38, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _HT_ = - [0, - cst_examples_aides_logement_pr, - 314, - 12, - 314, - 38, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _H3_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "condition_logement_surface", 0]], - _H6_ = - [0, - cst_examples_aides_logement_pr, - 336, - 11, - 336, - 29, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _H4_ = - [0, - cst_examples_aides_logement_pr, - 336, - 11, - 336, - 29, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _H7_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "\xc3\xa2ge_l161_17_2_s\xc3\xa9cu", 0]], - _Ih_ = - [0, - cst_examples_aides_logement_pr, - 334, - 11, - 334, - 36, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _H8_ = - [0, - cst_examples_aides_logement_pr, - 334, - 11, - 334, - 36, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ii_ = - [0, cst_ligibilit_AidesPersonnelle, [0, "patrimoine_pris_en_compte", 0]], - _In_ = - [0, - cst_examples_aides_logement_pr, - 317, - 11, - 317, - 58, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ij_ = - [0, - cst_examples_aides_logement_pr, - 317, - 11, - 317, - 58, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Io_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "condition_ouverture_l822_10_peuplement_logement", 0]], - _Ir_ = - [0, - cst_examples_aides_logement_pr, - 335, - 11, - 335, - 28, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ip_ = - [0, - cst_examples_aides_logement_pr, - 335, - 11, - 335, - 28, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Is_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "\xc3\xa2ge_l351_8_1_s\xc3\xa9cu", 0]], - _Iz_ = - [0, - cst_examples_aides_logement_pr, - 320, - 11, - 320, - 31, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _It_ = - [0, - cst_examples_aides_logement_pr, - 320, - 11, - 320, - 31, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IA_ = [0, cst_ligibilit_AidesPersonnelle, [0, cst_ligibilit_logement, 0]], - _IN_ = - [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], - _IS_ = - [0, - cst_examples_aides_logement_pr, - 342, - 12, - 342, - 23, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IO_ = - [0, - cst_examples_aides_logement_pr, - 342, - 12, - 342, - 23, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _IT_ = [0, cst_ligibilit_AidesPersonnelle, [0, cst_ligibilit$4, 0]], - _Ji_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_prise_en_compte_personne_c, 0]], - _Jp_ = - [0, - cst_examples_aides_logement_pr, - 323, - 11, - 323, - 46, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Jj_ = - [0, - cst_examples_aides_logement_pr, - 323, - 11, - 323, - 46, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Jq_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, "personnes_\xc3\xa0_charge_prises_en_compte", 0]], - _Jt_ = - [0, - cst_examples_aides_logement_pr, - 344, - 12, - 344, - 61, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Jr_ = - [0, - cst_examples_aides_logement_pr, - 344, - 12, - 344, - 61, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ju_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_coefficents_enfants_garde_$3, 0]], - _Jx_ = - [0, - cst_examples_aides_logement_pr, - 343, - 12, - 343, - 54, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Jv_ = - [0, - cst_examples_aides_logement_pr, - 343, - 12, - 343, - 54, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Jy_ = - [0, - cst_ligibilit_AidesPersonnelle, - [0, cst_nombre_personnes_charge_pr$2, 0]], - cst_0_2 = cst_0_2$2, - _Jz_ = - [0, - cst_examples_aides_logement_co, - 200, - 13, - 200, - 47, - [0, - cst_Article_L822_3, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _JE_ = - [0, - cst_examples_aides_logement_co, - 200, - 13, - 200, - 47, - [0, - cst_Article_L822_3, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - cst_0_2$0 = cst_0_2$2, - _JA_ = - [0, - cst_examples_aides_logement_co, - 199, - 13, - 199, - 48, - [0, - cst_Article_L822_3, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _JD_ = - [0, - cst_examples_aides_logement_co, - 199, - 13, - 199, - 48, - [0, - cst_Article_L822_3, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _JB_ = - [0, - cst_examples_aides_logement_pr, - 378, - 13, - 378, - 42, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _JC_ = - [0, - cst_examples_aides_logement_pr, - 378, - 13, - 378, - 42, - [0, - cst_ligibilit_aux_aides_person, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _FG_ = - [0, - cst_examples_aides_logement_co$0, - 1457, - 14, - 1457, - 33, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _FC_ = - [0, - cst_examples_aides_logement_co$0, - 1459, - 14, - 1459, - 36, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _FD_ = - [0, - cst_examples_aides_logement_pr, - 832, - 12, - 832, - 34, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _FB_ = - [0, - cst_examples_aides_logement_pr, - 832, - 12, - 832, - 34, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _Fx_ = - [0, - cst_examples_aides_logement_co$0, - 6355, - 24, - 6355, - 46, - [0, - cst_Article_D863_7, - [0, - cst_Sous_section_III_Modalit_s, - [0, - cst_Section_II_Dispositions_co, - [0, - cst_Chapitre_III_Saint_Pierre_, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Fq_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _Fr_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale$9, 0]], - _Fs_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _Ft_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale$9, 0]], - cst_0$337 = cst_0$359, - cst_0$338 = cst_0$359, - cst_0$339 = cst_0$359, - _Fn_ = - [0, - cst_examples_aides_logement_co$0, - 6395, - 42, - 6395, - 45, - [0, - cst_Article_D863_7, - [0, - cst_Sous_section_III_Modalit_s, - [0, - cst_Section_II_Dispositions_co, - [0, - cst_Chapitre_III_Saint_Pierre_, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Fo_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_direct, [0, cst_input, 0]]], - _Fp_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_direct, 0]], - _Fu_ = - [0, - cst_examples_aides_logement_co$0, - 6371, - 9, - 6398, - 10, - [0, - cst_Article_D863_7, - [0, - cst_Sous_section_III_Modalit_s, - [0, - cst_Section_II_Dispositions_co, - [0, - cst_Chapitre_III_Saint_Pierre_, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Fv_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_direct, [0, cst_output, 0]]], - _Fw_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_direct, 0]], - _Fy_ = - [0, - cst_examples_aides_logement_pr, - 829, - 11, - 829, - 33, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _Fm_ = - [0, - cst_examples_aides_logement_co$0, - 1469, - 14, - 1469, - 36, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Ff_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _Fg_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale$9, 0]], - _Fh_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _Fi_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale$9, 0]], - _E8_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _E9_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale$9, 0]], - _E__ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _E$_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale$9, 0]], - _EZ_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], - _E0_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale$9, 0]], - _E1_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], - _E2_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale$9, 0]], - cst_0$335 = cst_0$359, - cst_0$336 = cst_0$359, - _EW_ = - [0, - cst_examples_aides_logement_co$0, - 1488, - 16, - 1491, - 39, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _EX_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_direct, [0, cst_input, 0]]], - _EY_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_direct, 0]], - _E3_ = - [0, - cst_examples_aides_logement_co$0, - 1473, - 9, - 1494, - 10, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _E4_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_direct, [0, cst_output, 0]]], - _E5_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_direct, 0]], - _E6_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_direct, [0, cst_input, 0]]], - _E7_ = [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_direct, 0]], - _Fa_ = - [0, - cst_examples_aides_logement_co$0, - 1526, - 10, - 1542, - 11, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Fb_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_direct, [0, cst_output, 0]]], - _Fc_ = [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_direct, 0]], - _Fd_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_direct, [0, cst_input, 0]]], - _Fe_ = [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_direct, 0]], - _Fj_ = - [0, - cst_examples_aides_logement_co$0, - 1505, - 9, - 1515, - 10, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Fk_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_direct, [0, cst_output, 0]]], - _Fl_ = [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_direct, 0]], - _ES_ = - [0, - cst_examples_aides_logement_ar, - 80, - 14, - 80, - 44, - [0, - cst_Article_7, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - _EM_ = [0, 0], - _EN_ = [1, 0], - _EO_ = [1, 0], - _EP_ = [1, 0], - _EQ_ = [0, 0], - _ER_ = [1, 0], - _EI_ = - [0, - cst_examples_aides_logement_co$0, - 1968, - 14, - 1968, - 31, - [0, - cst_Article_D823_17, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _EE_ = - [0, - cst_examples_aides_logement_co$0, - 1446, - 14, - 1446, - 34, - [0, - cst_Article_D823_9, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _EF_ = - [0, - cst_examples_aides_logement_pr, - 826, - 11, - 826, - 31, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ED_ = - [0, - cst_examples_aides_logement_pr, - 826, - 11, - 826, - 31, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _EG_ = - [0, cst_CalculAidePersonnalis_eLog, [0, cst_cat_gorie_calcul_apl, 0]], - _EJ_ = - [0, - cst_examples_aides_logement_pr, - 819, - 10, - 819, - 22, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _EH_ = - [0, - cst_examples_aides_logement_pr, - 819, - 10, - 819, - 22, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _EK_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_ressources_m_nage_avec_arr, 0]], - _ET_ = - [0, - cst_examples_aides_logement_pr, - 827, - 11, - 827, - 41, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _EL_ = - [0, - cst_examples_aides_logement_pr, - 827, - 11, - 827, - 41, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _EU_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_situation_familiale_calcul$7, 0]], - _Fz_ = - [0, - cst_examples_aides_logement_pr, - 829, - 11, - 829, - 33, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _EV_ = - [0, - cst_examples_aides_logement_pr, - 829, - 11, - 829, - 33, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _FA_ = - [0, cst_CalculAidePersonnalis_eLog, [0, cst_sous_calcul_traitement, 0]], - _FE_ = - [0, - cst_CalculAidePersonnalis_eLog, - [0, cst_traitement_aide_finale$9, 0]], - _FH_ = - [0, - cst_examples_aides_logement_pr, - 831, - 12, - 831, - 31, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _FF_ = - [0, - cst_examples_aides_logement_pr, - 831, - 12, - 831, - 31, - [0, - cst_Tous_secteurs, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _FI_ = - [0, cst_CalculAidePersonnalis_eLog, [0, cst_aide_finale_formule$9, 0]], - _Ew_ = - [0, - cst_examples_aides_logement_co$0, - 4505, - 14, - 4505, - 36, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Es_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], - _Et_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_con, 0]], - _Eu_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], - _Ev_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_con, 0]], - cst_0$334 = cst_0$359, - _Ex_ = - [0, - cst_examples_aides_logement_pr, - 983, - 10, - 983, - 25, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Er_ = - [0, - cst_examples_aides_logement_pr, - 983, - 10, - 983, - 25, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Eo_ = - [0, - cst_examples_aides_logement_co$0, - 4485, - 14, - 4485, - 36, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Eg_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_d_p, [0, cst_input0, 0]]], - _Eh_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_d_p, 0]], - _Ei_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_d_p, [0, cst_output, 0]]], - _Ej_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_d_p, 0]], - _Ek_ = - [0, - cst_ContributionsSocialesAides, - [0, cst_montant$2, [0, cst_input0, 0]]], - _El_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - _Em_ = - [0, - cst_ContributionsSocialesAides, - [0, cst_montant$2, [0, cst_output, 0]]], - _En_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - cst_50$3 = cst_50$4, - cst_0$332 = cst_0$359, - cst_0$333 = cst_0$359, - _Ep_ = - [0, - cst_examples_aides_logement_pr, - 982, - 10, - 982, - 40, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ef_ = - [0, - cst_examples_aides_logement_pr, - 982, - 10, - 982, - 40, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ec_ = - [0, - cst_examples_aides_logement_co$0, - 4390, - 14, - 4390, - 33, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _D__ = - [0, - cst_examples_aides_logement_co$0, - 4471, - 14, - 4471, - 36, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _D2_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], - _D3_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_min, 0]], - _D4_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], - _D5_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_min, 0]], - _D6_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_abattement_d_pense_nette_m, [0, cst_input0, 0]]], - _D7_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_abattement_d_pense_nette_m, 0]], - _D8_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_abattement_d_pense_nette_m, [0, cst_output, 0]]], - _D9_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_abattement_d_pense_nette_m, 0]], - cst_0$331 = cst_0$359, - _D$_ = - [0, - cst_examples_aides_logement_pr, - 981, - 10, - 981, - 32, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _D1_ = - [0, - cst_examples_aides_logement_pr, - 981, - 10, - 981, - 32, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _DY_ = - [0, - cst_examples_aides_logement_co$0, - 4423, - 14, - 4423, - 33, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _DU_ = - [0, - cst_examples_aides_logement_co$0, - 4653, - 14, - 4653, - 47, - [0, - cst_Article_D842_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _DQ_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_d_pense_nette_minimale, [0, cst_input0, 0]]], - _DR_ = - [0, cst_CalculAllocationLogementAc, [0, cst_d_pense_nette_minimale, 0]], - _DS_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_d_pense_nette_minimale, [0, cst_output, 0]]], - _DT_ = - [0, cst_CalculAllocationLogementAc, [0, cst_d_pense_nette_minimale, 0]], - cst_0$330 = cst_0$359, - _DV_ = - [0, - cst_examples_aides_logement_pr, - 958, - 11, - 958, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _DP_ = - [0, - cst_examples_aides_logement_pr, - 958, - 11, - 958, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _DM_ = - [0, - cst_examples_aides_logement_co$0, - 4412, - 14, - 4412, - 41, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _DI_ = - [0, - cst_examples_aides_logement_co$0, - 4438, - 14, - 4438, - 33, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _DD_ = - [0, - cst_examples_aides_logement_co$0, - 4588, - 5, - 4588, - 44, - [0, - cst_Article_D842_9, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Dv_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, [0, cst_input1, 0]]], - _Dw_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, [0, cst_input0, 0]]], - _Dx_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, [0, cst_output, 0]]], - _Dy_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, 0]], - _Dz_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, [0, cst_input1, 0]]], - _DA_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, [0, cst_input0, 0]]], - _DB_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, [0, cst_output, 0]]], - _DC_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, 0]], - _DE_ = - [0, - cst_examples_aides_logement_pr, - 945, - 11, - 945, - 36, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Du_ = - [0, - cst_examples_aides_logement_co$0, - 4569, - 14, - 4569, - 39, - [0, - cst_Article_D842_9, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Dq_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, [0, cst_input1, 0]]], - _Dr_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, [0, cst_input0, 0]]], - _Ds_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, [0, cst_output, 0]]], - _Dt_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, 0]], - _Dl_ = - [0, - cst_examples_aides_logement_co$0, - 4683, - 7, - 4683, - 26, - [0, - cst_Article_D842_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Dm_ = - [0, - cst_examples_aides_logement_pr, - 953, - 11, - 953, - 47, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Dk_ = - [0, - cst_examples_aides_logement_co$0, - 4664, - 14, - 4664, - 50, - [0, - cst_Article_D842_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Dc_ = - [0, - cst_examples_aides_logement_co$0, - 5910, - 5, - 5913, - 28, - [0, - cst_Article_D862_7, - [0, - cst_Section_III_Allocations_de, - [0, - cst_Chapitre_II_Saint_Barth_le, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Dd_ = - [0, - cst_examples_aides_logement_co$0, - 5908, - 9, - 5908, - 75, - [0, - cst_Article_D862_7, - [0, - cst_Section_III_Allocations_de, - [0, - cst_Chapitre_II_Saint_Barth_le, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Db_ = - [0, - cst_examples_aides_logement_co$0, - 5555, - 5, - 5561, - 28, - [0, - cst_Article_D861_8, - [0, - cst_Section_2_Allocations_de_l, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _De_ = - [0, - cst_examples_aides_logement_co$0, - 5908, - 9, - 5908, - 75, - [0, - cst_Article_D862_7, - [0, - cst_Section_III_Allocations_de, - [0, - cst_Chapitre_II_Saint_Barth_le, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Df_ = - [0, - cst_examples_aides_logement_co$0, - 5908, - 9, - 5908, - 75, - [0, - cst_Article_D862_7, - [0, - cst_Section_III_Allocations_de, - [0, - cst_Chapitre_II_Saint_Barth_le, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _Dg_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_, 0]], - _C__ = - [0, - cst_examples_aides_logement_co$0, - 4409, - 14, - 4409, - 61, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _C$_ = - [0, - cst_examples_aides_logement_co$0, - 4409, - 14, - 4409, - 61, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Da_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_$0, 0]], - _C7_ = - [0, - cst_examples_aides_logement_pr, - 1006, - 14, - 1006, - 49, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _C3_ = - [0, - cst_examples_aides_logement_pr, - 996, - 14, - 996, - 49, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_0$329 = cst_0$359, - _CZ_ = - [0, - cst_examples_aides_logement_pr, - 1007, - 14, - 1007, - 53, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CV_ = - [0, - cst_examples_aides_logement_pr, - 1004, - 14, - 1004, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CR_ = - [0, - cst_examples_aides_logement_pr, - 1002, - 14, - 1002, - 70, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CN_ = - [0, - cst_examples_aides_logement_pr, - 1000, - 14, - 1000, - 65, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CJ_ = - [0, - cst_examples_aides_logement_pr, - 998, - 14, - 998, - 67, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CF_ = - [0, - cst_examples_aides_logement_pr, - 994, - 14, - 994, - 61, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CB_ = - [0, - cst_examples_aides_logement_pr, - 992, - 14, - 992, - 59, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CA_ = [3, 0], - _Cu_ = - [0, - cst_examples_aides_logement_co$0, - 4445, - 14, - 4445, - 70, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Cq_ = - [0, - cst_examples_aides_logement_co$0, - 4442, - 14, - 4442, - 69, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Cm_ = - [0, - cst_examples_aides_logement_co$0, - 4443, - 14, - 4443, - 75, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Ci_ = - [0, - cst_examples_aides_logement_pr, - 1010, - 14, - 1010, - 61, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$91 = cst_6$92, - _B__ = - [0, - cst_examples_aides_logement_ar$0, - 3409, - 5, - 3417, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$90 = cst_6$92, - _B6_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], - _B7_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], - _B8_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], - _B9_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, 0]], - _B$_ = - [0, - cst_examples_aides_logement_pr, - 951, - 10, - 951, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$89 = cst_6$92, - _B5_ = - [0, - cst_examples_aides_logement_ar$0, - 2873, - 5, - 2881, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$88 = cst_6$92, - _B1_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], - _B2_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], - _B3_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], - _B4_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, 0]], - _Ca_ = - [0, - cst_examples_aides_logement_pr, - 951, - 10, - 951, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$87 = cst_6$92, - _B0_ = - [0, - cst_examples_aides_logement_ar$0, - 1802, - 5, - 1810, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$86 = cst_6$92, - _BW_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], - _BX_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], - _BY_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], - _BZ_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, 0]], - _Cb_ = - [0, - cst_examples_aides_logement_pr, - 951, - 10, - 951, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$85 = cst_6$92, - _BV_ = - [0, - cst_examples_aides_logement_ar$0, - 683, - 5, - 691, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$84 = cst_6$92, - _BR_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], - _BS_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], - _BT_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], - _BU_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, 0]], - _Cc_ = - [0, - cst_examples_aides_logement_pr, - 951, - 10, - 951, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$83 = cst_6$92, - _BQ_ = - [0, - cst_examples_aides_logement_ar$0, - 189, - 5, - 197, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$82 = cst_6$92, - _BM_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], - _BN_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], - _BO_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], - _BP_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, 0]], - _Cd_ = - [0, - cst_examples_aides_logement_pr, - 951, - 10, - 951, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ce_ = - [0, - cst_examples_aides_logement_pr, - 951, - 10, - 951, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _BL_ = - [0, - cst_examples_aides_logement_ar, - 3987, - 14, - 3987, - 46, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - _BH_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], - _BI_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], - _BJ_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], - _BK_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, 0]], - _Cf_ = - [0, - cst_examples_aides_logement_pr, - 951, - 10, - 951, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _BG_ = - [0, - cst_examples_aides_logement_pr, - 951, - 10, - 951, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _BC_ = - [0, - cst_examples_aides_logement_co$0, - 4744, - 5, - 4744, - 28, - [0, - cst_Article_D842_12, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _BD_ = - [0, - cst_examples_aides_logement_pr, - 924, - 10, - 924, - 15, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _BB_ = - [0, - cst_examples_aides_logement_co$0, - 4734, - 14, - 4734, - 41, - [0, - cst_Article_D842_12, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_100$12 = cst_100$13, - cst_0_01$0 = cst_0_01$1, - cst_4999 = "4999", - _Bx_ = - [0, - cst_examples_aides_logement_co$0, - 4641, - 15, - 4641, - 37, - [0, - cst_Article_D842_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _By_ = - [0, - cst_examples_aides_logement_pr, - 956, - 11, - 956, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Bw_ = - [0, - cst_examples_aides_logement_pr, - 956, - 11, - 956, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Bp_ = - [0, - cst_examples_aides_logement_ar$0, - 2610, - 5, - 2610, - 16, - [0, - cst_Article_37, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0_75$13 = cst_0_75$14, - _Bl_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], - _Bm_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], - _Bn_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], - _Bo_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, 0]], - _Bq_ = - [0, - cst_examples_aides_logement_pr, - 950, - 10, - 950, - 26, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Bk_ = - [0, - cst_examples_aides_logement_ar$0, - 1533, - 5, - 1533, - 16, - [0, - cst_Article_37, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0_75$12 = cst_0_75$14, - _Bg_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], - _Bh_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], - _Bi_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], - _Bj_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, 0]], - _Br_ = - [0, - cst_examples_aides_logement_pr, - 950, - 10, - 950, - 26, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Bf_ = - [0, - cst_examples_aides_logement_ar, - 4073, - 5, - 4073, - 16, - [0, - cst_Article_37, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0_75$11 = cst_0_75$14, - _Bb_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], - _Bc_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], - _Bd_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], - _Be_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, 0]], - _Bs_ = - [0, - cst_examples_aides_logement_pr, - 950, - 10, - 950, - 26, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Bt_ = - [0, - cst_examples_aides_logement_pr, - 950, - 10, - 950, - 26, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ba_ = - [0, - cst_examples_aides_logement_ar, - 3981, - 14, - 3981, - 46, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - _A8_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], - _A9_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], - _A__ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], - _A$_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, 0]], - _Bu_ = - [0, - cst_examples_aides_logement_pr, - 950, - 10, - 950, - 26, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _A7_ = - [0, - cst_examples_aides_logement_pr, - 950, - 10, - 950, - 26, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _A4_ = - [0, - cst_examples_aides_logement_co$0, - 4457, - 14, - 4457, - 36, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0$327 = cst_0$359, - cst_0$328 = cst_0$359, - _A5_ = - [0, - cst_examples_aides_logement_pr, - 980, - 10, - 980, - 32, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _A3_ = - [0, - cst_examples_aides_logement_pr, - 980, - 10, - 980, - 32, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AZ_ = - [0, - cst_examples_aides_logement_co$0, - 4705, - 6, - 4711, - 6, - [0, - cst_Article_D842_12, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _A0_ = - [0, - cst_examples_aides_logement_pr, - 954, - 11, - 954, - 42, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AX_ = - [0, - cst_examples_aides_logement_co$0, - 4723, - 5, - 4724, - 59, - [0, - cst_Article_D842_12, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _AY_ = - [0, - cst_examples_aides_logement_pr, - 954, - 11, - 954, - 42, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AP_ = - [0, - cst_examples_aides_logement_ar, - 4441, - 5, - 4449, - 16, - [0, - cst_Article_46, - [0, - cst_Chapitre_IX_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_969$13 = cst_969$14, - cst_1938$4 = cst_1938$5, - cst_3767$13 = cst_3767$14, - _AQ_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AN_ = - [0, - cst_examples_aides_logement_ar$0, - 341, - 6, - 348, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_969$11 = cst_969$14, - cst_1938$2 = cst_1938$5, - cst_3767$12 = cst_3767$14, - cst_6$81 = cst_6$93, - cst_969$12 = cst_969$14, - cst_1938$3 = cst_1938$5, - cst_3767$11 = cst_3767$14, - _AO_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AK_ = - [0, - cst_examples_aides_logement_ar$0, - 1954, - 6, - 1961, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_936$17 = cst_936$19, - cst_1872$5 = cst_1872$7, - cst_3640$18 = cst_3640$19, - cst_6$80 = cst_6$93, - cst_936$18 = cst_936$19, - cst_1872$6 = cst_1872$7, - cst_3640$17 = cst_3640$19, - _AL_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AJ_ = - [0, - cst_examples_aides_logement_ar$0, - 837, - 6, - 844, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_936$15 = cst_936$19, - cst_1872$3 = cst_1872$7, - cst_3640$16 = cst_3640$19, - cst_6$79 = cst_6$93, - cst_936$16 = cst_936$19, - cst_1872$4 = cst_1872$7, - cst_3640$15 = cst_3640$19, - _AM_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AH_ = - [0, - cst_examples_aides_logement_ar$0, - 3026, - 6, - 3033, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_932$7 = cst_932$9, - cst_1864$1 = cst_1864$3, - cst_3625$8 = cst_3625$9, - cst_6$78 = cst_6$93, - cst_932$8 = cst_932$9, - cst_1864$2 = cst_1864$3, - cst_3625$7 = cst_3625$9, - _AI_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AF_ = - [0, - cst_examples_aides_logement_ar$0, - 3562, - 6, - 3569, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_929$7 = cst_929$9, - cst_1858$1 = cst_1858$3, - cst_3614$8 = cst_3614$9, - cst_6$77 = cst_6$93, - cst_929$8 = cst_929$9, - cst_1858$2 = cst_1858$3, - cst_3614$7 = cst_3614$9, - _AG_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AR_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AC_ = - [0, - cst_examples_aides_logement_ar, - 4381, - 6, - 4388, - 28, - [0, - cst_Article_46, - [0, - cst_Chapitre_IX_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_969$10 = cst_969$14, - cst_3767$10 = cst_3767$14, - _AD_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AA_ = - [0, - cst_examples_aides_logement_ar$0, - 260, - 6, - 267, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_969$8 = cst_969$14, - cst_3767$8 = cst_3767$14, - cst_6$76 = cst_6$93, - cst_969$9 = cst_969$14, - cst_3767$9 = cst_3767$14, - _AB_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ax_ = - [0, - cst_examples_aides_logement_ar$0, - 1874, - 6, - 1881, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_936$13 = cst_936$19, - cst_3640$13 = cst_3640$19, - cst_6$75 = cst_6$93, - cst_936$14 = cst_936$19, - cst_3640$14 = cst_3640$19, - _Ay_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Aw_ = - [0, - cst_examples_aides_logement_ar$0, - 756, - 6, - 763, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_936$11 = cst_936$19, - cst_3640$11 = cst_3640$19, - cst_6$74 = cst_6$93, - cst_936$12 = cst_936$19, - cst_3640$12 = cst_3640$19, - _Az_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Au_ = - [0, - cst_examples_aides_logement_ar$0, - 2946, - 6, - 2953, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_932$5 = cst_932$9, - cst_3625$5 = cst_3625$9, - cst_6$73 = cst_6$93, - cst_932$6 = cst_932$9, - cst_3625$6 = cst_3625$9, - _Av_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _As_ = - [0, - cst_examples_aides_logement_ar$0, - 3482, - 6, - 3489, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_929$5 = cst_929$9, - cst_3614$5 = cst_3614$9, - cst_6$72 = cst_6$93, - cst_929$6 = cst_929$9, - cst_3614$6 = cst_3614$9, - _At_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AE_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AS_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ap_ = - [0, - cst_examples_aides_logement_ar, - 4091, - 57, - 4091, - 68, - [0, - cst_Article_37, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1272$5 = cst_1272$6, - cst_2805$1 = cst_2805$2, - cst_5612$7 = cst_5612$8, - _Aq_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _An_ = - [0, - cst_examples_aides_logement_ar$0, - 1553, - 5, - 1553, - 16, - [0, - cst_Article_37, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1229$5 = cst_1229$6, - cst_2710$1 = cst_2710$2, - cst_5422$7 = cst_5422$8, - _Ao_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Al_ = - [0, - cst_examples_aides_logement_ar$0, - 2631, - 5, - 2631, - 16, - [0, - cst_Article_37, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1224$5 = cst_1224$6, - cst_2699$1 = cst_2699$2, - cst_5399$7 = cst_5399$8, - _Am_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ar_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AT_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ai_ = - [0, - cst_examples_aides_logement_ar, - 4035, - 29, - 4035, - 56, - [0, - cst_Article_34, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$326 = cst_0$359, - cst_5612$5 = cst_5612$8, - cst_1272$4 = cst_1272$6, - cst_5612$6 = cst_5612$8, - _Aj_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ag_ = - [0, - cst_examples_aides_logement_ar$0, - 1515, - 29, - 1515, - 56, - [0, - cst_Article_34, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$325 = cst_0$359, - cst_5422$5 = cst_5422$8, - cst_1229$4 = cst_1229$6, - cst_5422$6 = cst_5422$8, - _Ah_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ae_ = - [0, - cst_examples_aides_logement_ar$0, - 2590, - 29, - 2590, - 56, - [0, - cst_Article_34, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$324 = cst_0$359, - cst_5399$5 = cst_5399$8, - cst_1224$4 = cst_1224$6, - cst_5399$6 = cst_5399$8, - _Af_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ak_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _z$_ = - [0, - cst_examples_aides_logement_ar, - 2955, - 5, - 2955, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$321 = cst_0$359, - cst_158700 = "158700", - cst_191300 = "191300", - cst_1$243 = cst_1$254, - cst_205500 = "205500", - cst_2$97 = cst_2$105, - cst_211300 = "211300", - cst_3$95 = cst_3$101, - cst_217100 = "217100", - cst_4$95 = cst_4$98, - cst_222900 = "222900", - cst_5$152 = cst_5$158, - cst_228000 = cst_228000$1, - cst_5$153 = cst_5$158, - cst_19800 = "19800", - cst_228000$0 = cst_228000$1, - cst_0$322 = cst_0$359, - cst_139300 = "139300", - cst_170600 = "170600", - cst_1$244 = cst_1$254, - cst_184700 = "184700", - cst_2$98 = cst_2$105, - cst_191200 = "191200", - cst_3$96 = cst_3$101, - cst_197700$0 = cst_197700$1, - cst_4$96 = cst_4$98, - cst_204200 = "204200", - cst_5$154 = cst_5$158, - cst_218700 = cst_218700$1, - cst_5$155 = cst_5$158, - cst_19100$1 = cst_19100$2, - cst_218700$0 = cst_218700$1, - cst_0$323 = cst_0$359, - cst_130600 = "130600", - cst_158400 = "158400", - cst_1$245 = cst_1$254, - cst_172600 = "172600", - cst_2$99 = cst_2$105, - cst_179800$0 = cst_179800$1, - cst_3$97 = cst_3$101, - cst_187000 = "187000", - cst_4$97 = cst_4$98, - cst_194200 = "194200", - cst_5$156 = cst_5$158, - cst_208600$0 = cst_208600$2, - cst_5$157 = cst_5$158, - cst_18200 = "18200", - cst_208600$1 = cst_208600$2, - _Aa_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _z9_ = - [0, - cst_examples_aides_logement_ar, - 3000, - 5, - 3000, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$318 = cst_0$359, - cst_160400 = "160400", - cst_193400 = "193400", - cst_1$240 = cst_1$254, - cst_207800 = "207800", - cst_2$94 = cst_2$105, - cst_213700 = "213700", - cst_3$92 = cst_3$101, - cst_219600 = "219600", - cst_4$92 = cst_4$98, - cst_225500$0 = cst_225500$1, - cst_5$146 = cst_5$158, - cst_230500$1 = cst_230500$3, - cst_5$147 = cst_5$158, - cst_20000 = "20000", - cst_230500$2 = cst_230500$3, - cst_0$319 = cst_0$359, - cst_140800$0 = cst_140800$1, - cst_172500$0 = cst_172500$1, - cst_1$241 = cst_1$254, - cst_186700 = "186700", - cst_2$95 = cst_2$105, - cst_193300 = "193300", - cst_3$93 = cst_3$101, - cst_199900$1 = cst_199900$2, - cst_4$93 = cst_4$98, - cst_206500 = "206500", - cst_5$148 = cst_5$158, - cst_221100 = cst_221100$1, - cst_5$149 = cst_5$158, - cst_19300$0 = cst_19300$1, - cst_221100$0 = cst_221100$1, - cst_0$320 = cst_0$359, - cst_132000$0 = cst_132000$1, - cst_180100$1 = cst_180100$2, - cst_1$242 = cst_1$254, - cst_174500 = "174500", - cst_2$96 = cst_2$105, - cst_181800$0 = cst_181800$1, - cst_3$94 = cst_3$101, - cst_189100 = "189100", - cst_4$94 = cst_4$98, - cst_196400 = "196400", - cst_5$150 = cst_5$158, - cst_210900 = cst_210900$1, - cst_5$151 = cst_5$158, - cst_18400 = "18400", - cst_210900$0 = cst_210900$1, - _z__ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _z7_ = - [0, - cst_examples_aides_logement_ar, - 3045, - 5, - 3045, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$315 = cst_0$359, - cst_163300 = "163300", - cst_196900 = "196900", - cst_1$237 = cst_1$254, - cst_211600 = "211600", - cst_2$91 = cst_2$105, - cst_217600$0 = cst_217600$1, - cst_3$89 = cst_3$101, - cst_223600 = "223600", - cst_4$89 = cst_4$98, - cst_229600 = "229600", - cst_5$140 = cst_5$158, - cst_234600 = cst_234600$1, - cst_5$141 = cst_5$158, - cst_20400 = "20400", - cst_234600$0 = cst_234600$1, - cst_0$316 = cst_0$359, - cst_143300 = "143300", - cst_175600 = "175600", - cst_1$238 = cst_1$254, - cst_190100 = "190100", - cst_2$92 = cst_2$105, - cst_196600 = "196600", - cst_3$90 = cst_3$101, - cst_203500 = "203500", - cst_4$90 = cst_4$98, - cst_210200 = "210200", - cst_5$142 = cst_5$158, - cst_225100 = cst_225100$1, - cst_5$143 = cst_5$158, - cst_19600 = "19600", - cst_225100$0 = cst_225100$1, - cst_0$317 = cst_0$359, - cst_134400 = "134400", - cst_163000$0 = cst_163000$1, - cst_1$239 = cst_1$254, - cst_177700 = "177700", - cst_2$93 = cst_2$105, - cst_185100 = "185100", - cst_3$91 = cst_3$101, - cst_192500$0 = cst_192500$1, - cst_4$91 = cst_4$98, - cst_199900$0 = cst_199900$2, - cst_5$144 = cst_5$158, - cst_214700 = cst_214700$1, - cst_5$145 = cst_5$158, - cst_18700 = "18700", - cst_214700$0 = cst_214700$1, - _z8_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _z5_ = - [0, - cst_examples_aides_logement_ar, - 3090, - 5, - 3090, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$312 = cst_0$359, - cst_167200 = "167200", - cst_201600 = "201600", - cst_1$234 = cst_1$254, - cst_216700 = "216700", - cst_2$88 = cst_2$105, - cst_222800 = "222800", - cst_3$86 = cst_3$101, - cst_229000 = "229000", - cst_4$86 = cst_4$98, - cst_235100 = "235100", - cst_5$134 = cst_5$158, - cst_240200 = cst_240200$1, - cst_5$135 = cst_5$158, - cst_20900$0 = cst_20900$1, - cst_240200$0 = cst_240200$1, - cst_0$313 = cst_0$359, - cst_146700 = "146700", - cst_179800 = cst_179800$1, - cst_1$235 = cst_1$254, - cst_194700 = "194700", - cst_2$89 = cst_2$105, - cst_201500 = "201500", - cst_3$87 = cst_3$101, - cst_208400 = "208400", - cst_4$87 = cst_4$98, - cst_215200 = "215200", - cst_5$136 = cst_5$158, - cst_230500 = cst_230500$3, - cst_5$137 = cst_5$158, - cst_20100$0 = cst_20100$1, - cst_230500$0 = cst_230500$3, - cst_0$314 = cst_0$359, - cst_137600 = "137600", - cst_166900 = "166900", - cst_1$236 = cst_1$254, - cst_182000 = "182000", - cst_2$90 = cst_2$105, - cst_189500 = "189500", - cst_3$88 = cst_3$101, - cst_197100 = "197100", - cst_4$88 = cst_4$98, - cst_204700$0 = cst_204700$1, - cst_5$138 = cst_5$158, - cst_219900 = cst_219900$1, - cst_5$139 = cst_5$158, - cst_19100$0 = cst_19100$2, - cst_219900$0 = cst_219900$1, - _z6_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _z3_ = - [0, - cst_examples_aides_logement_ar, - 3135, - 5, - 3135, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$309 = cst_0$359, - cst_167400 = "167400", - cst_201800 = "201800", - cst_1$231 = cst_1$254, - cst_216900 = "216900", - cst_2$85 = cst_2$105, - cst_223000 = "223000", - cst_3$83 = cst_3$101, - cst_229200 = "229200", - cst_4$83 = cst_4$98, - cst_235300 = "235300", - cst_5$128 = cst_5$158, - cst_240400 = cst_240400$1, - cst_5$129 = cst_5$158, - cst_20900 = cst_20900$1, - cst_240400$0 = cst_240400$1, - cst_0$310 = cst_0$359, - cst_146800 = "146800", - cst_180000 = "180000", - cst_1$232 = cst_1$254, - cst_194900 = "194900", - cst_2$86 = cst_2$105, - cst_201700$0 = cst_201700$1, - cst_3$84 = cst_3$101, - cst_208600 = cst_208600$2, - cst_4$84 = cst_4$98, - cst_215400 = "215400", - cst_5$130 = cst_5$158, - cst_230700 = cst_230700$1, - cst_5$131 = cst_5$158, - cst_20100 = cst_20100$1, - cst_230700$0 = cst_230700$1, - cst_0$311 = cst_0$359, - cst_137700 = "137700", - cst_167100 = "167100", - cst_1$233 = cst_1$254, - cst_182200 = "182200", - cst_2$87 = cst_2$105, - cst_189700 = "189700", - cst_3$85 = cst_3$101, - cst_197300 = "197300", - cst_4$85 = cst_4$98, - cst_204900 = "204900", - cst_5$132 = cst_5$158, - cst_220100 = cst_220100$1, - cst_5$133 = cst_5$158, - cst_19100 = cst_19100$2, - cst_220100$0 = cst_220100$1, - _z4_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _z1_ = - [0, - cst_examples_aides_logement_ar, - 3183, - 5, - 3183, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$306 = cst_0$359, - cst_169100 = "169100", - cst_203800 = "203800", - cst_1$228 = cst_1$254, - cst_219100 = "219100", - cst_2$82 = cst_2$105, - cst_225200 = "225200", - cst_3$80 = cst_3$101, - cst_231500 = "231500", - cst_4$80 = cst_4$98, - cst_237700 = "237700", - cst_5$122 = cst_5$158, - cst_242800$1 = cst_242800$3, - cst_5$123 = cst_5$158, - cst_21100 = "21100", - cst_242800$2 = cst_242800$3, - cst_0$307 = cst_0$359, - cst_148300 = "148300", - cst_181800 = cst_181800$1, - cst_1$229 = cst_1$254, - cst_196800 = "196800", - cst_2$83 = cst_2$105, - cst_203700 = "203700", - cst_3$81 = cst_3$101, - cst_210700 = "210700", - cst_4$81 = cst_4$98, - cst_217600 = cst_217600$1, - cst_5$124 = cst_5$158, - cst_233000 = cst_233000$1, - cst_5$125 = cst_5$158, - cst_20300 = "20300", - cst_233000$0 = cst_233000$1, - cst_0$308 = cst_0$359, - cst_139100 = "139100", - cst_168800 = "168800", - cst_1$230 = cst_1$254, - cst_184000$1 = cst_184000$2, - cst_2$84 = cst_2$105, - cst_191600 = "191600", - cst_3$82 = cst_3$101, - cst_199300 = "199300", - cst_4$82 = cst_4$98, - cst_206900 = "206900", - cst_5$126 = cst_5$158, - cst_222300 = cst_222300$1, - cst_5$127 = cst_5$158, - cst_19300 = cst_19300$1, - cst_222300$0 = cst_222300$1, - _z2_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zZ_ = - [0, - cst_examples_aides_logement_ar, - 3231, - 5, - 3231, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$303 = cst_0$359, - cst_171100 = "171100", - cst_206200 = "206200", - cst_1$225 = cst_1$254, - cst_221700 = "221700", - cst_2$79 = cst_2$105, - cst_227900 = "227900", - cst_3$77 = cst_3$101, - cst_234300 = "234300", - cst_4$77 = cst_4$98, - cst_240600 = "240600", - cst_5$116 = cst_5$158, - cst_245700 = cst_245700$1, - cst_5$117 = cst_5$158, - cst_21400 = "21400", - cst_245700$0 = cst_245700$1, - cst_0$304 = cst_0$359, - cst_150100 = "150100", - cst_184000$0 = cst_184000$2, - cst_1$226 = cst_1$254, - cst_199200 = "199200", - cst_2$80 = cst_2$105, - cst_206100 = "206100", - cst_3$78 = cst_3$101, - cst_213200 = "213200", - cst_4$78 = cst_4$98, - cst_220200 = "220200", - cst_5$118 = cst_5$158, - cst_235800 = cst_235800$1, - cst_5$119 = cst_5$158, - cst_20500 = "20500", - cst_235800$0 = cst_235800$1, - cst_0$305 = cst_0$359, - cst_140800 = cst_140800$1, - cst_170800 = "170800", - cst_1$227 = cst_1$254, - cst_186200 = "186200", - cst_2$81 = cst_2$105, - cst_193900 = "193900", - cst_3$79 = cst_3$101, - cst_201700 = cst_201700$1, - cst_4$79 = cst_4$98, - cst_209400 = "209400", - cst_5$120 = cst_5$158, - cst_225000 = cst_225000$1, - cst_5$121 = cst_5$158, - cst_19500 = "19500", - cst_225000$0 = cst_225000$1, - _z0_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zX_ = - [0, - cst_examples_aides_logement_ar, - 3279, - 5, - 3279, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$300 = cst_0$359, - cst_26084 = "26084", - cst_31435 = "31435", - cst_1$222 = cst_1$254, - cst_33798 = "33798", - cst_2$76 = cst_2$105, - cst_34743 = "34743", - cst_3$74 = cst_3$101, - cst_35719 = "35719", - cst_4$74 = cst_4$98, - cst_36679 = "36679", - cst_5$110 = cst_5$158, - cst_37457 = cst_37457$1, - cst_5$111 = cst_5$158, - cst_3262 = "3262", - cst_37457$0 = cst_37457$1, - cst_0$301 = cst_0$359, - cst_22883 = "22883", - cst_28051 = "28051", - cst_1$223 = cst_1$254, - cst_30368 = "30368", - cst_2$77 = cst_2$105, - cst_31420 = "31420", - cst_3$75 = cst_3$101, - cst_32502 = "32502", - cst_4$75 = cst_4$98, - cst_33569 = "33569", - cst_5$112 = cst_5$158, - cst_35947 = cst_35947$1, - cst_5$113 = cst_5$158, - cst_3125 = "3125", - cst_35947$0 = cst_35947$1, - cst_0$302 = cst_0$359, - cst_21465 = "21465", - cst_26038 = "26038", - cst_1$224 = cst_1$254, - cst_28386 = "28386", - cst_2$78 = cst_2$105, - cst_29560 = "29560", - cst_3$76 = cst_3$101, - cst_30749 = "30749", - cst_4$76 = cst_4$98, - cst_31923 = "31923", - cst_5$114 = cst_5$158, - cst_34301 = cst_34301$1, - cst_5$115 = cst_5$158, - cst_2973 = "2973", - cst_34301$0 = cst_34301$1, - _zY_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zV_ = - [0, - cst_examples_aides_logement_ar, - 3326, - 5, - 3326, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$297 = cst_0$359, - cst_26397 = "26397", - cst_31812 = "31812", - cst_1$219 = cst_1$254, - cst_34204 = "34204", - cst_2$73 = cst_2$105, - cst_35160 = "35160", - cst_3$71 = cst_3$101, - cst_36148 = "36148", - cst_4$71 = cst_4$98, - cst_37119 = "37119", - cst_5$104 = cst_5$158, - cst_37906 = cst_37906$1, - cst_5$105 = cst_5$158, - cst_3301 = "3301", - cst_37906$0 = cst_37906$1, - cst_0$298 = cst_0$359, - cst_23158 = "23158", - cst_28388 = "28388", - cst_1$220 = cst_1$254, - cst_30732 = "30732", - cst_2$74 = cst_2$105, - cst_31797$1 = cst_31797$2, - cst_3$72 = cst_3$101, - cst_32892 = "32892", - cst_4$72 = cst_4$98, - cst_33972 = "33972", - cst_5$106 = cst_5$158, - cst_36378 = cst_36378$1, - cst_5$107 = cst_5$158, - cst_3163 = "3163", - cst_36378$0 = cst_36378$1, - cst_0$299 = cst_0$359, - cst_21723 = "21723", - cst_26350 = "26350", - cst_1$221 = cst_1$254, - cst_28727 = "28727", - cst_2$75 = cst_2$105, - cst_29915 = "29915", - cst_3$73 = cst_3$101, - cst_31118 = "31118", - cst_4$73 = cst_4$98, - cst_32306 = "32306", - cst_5$108 = cst_5$158, - cst_34713 = cst_34713$1, - cst_5$109 = cst_5$158, - cst_3009 = "3009", - cst_34713$0 = cst_34713$1, - _zW_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zT_ = - [0, - cst_examples_aides_logement_ar, - 3373, - 5, - 3373, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$294 = cst_0$359, - cst_26714$0 = cst_26714$1, - cst_32194 = "32194", - cst_1$216 = cst_1$254, - cst_34614 = "34614", - cst_2$70 = cst_2$105, - cst_35582 = "35582", - cst_3$68 = cst_3$101, - cst_36582 = "36582", - cst_4$68 = cst_4$98, - cst_37564 = "37564", - cst_5$98 = cst_5$158, - cst_38361 = cst_38361$1, - cst_5$99 = cst_5$158, - cst_3341 = "3341", - cst_38361$0 = cst_38361$1, - cst_0$295 = cst_0$359, - cst_23436 = "23436", - cst_28729 = "28729", - cst_1$217 = cst_1$254, - cst_31101 = "31101", - cst_2$71 = cst_2$105, - cst_32179 = "32179", - cst_3$69 = cst_3$101, - cst_33287 = "33287", - cst_4$69 = cst_4$98, - cst_34380 = "34380", - cst_5$100 = cst_5$158, - cst_36815 = cst_36815$1, - cst_5$101 = cst_5$158, - cst_3201 = "3201", - cst_36815$0 = cst_36815$1, - cst_0$296 = cst_0$359, - cst_21984 = "21984", - cst_26666 = "26666", - cst_1$218 = cst_1$254, - cst_29072 = "29072", - cst_2$72 = cst_2$105, - cst_30274 = "30274", - cst_3$70 = cst_3$101, - cst_31491 = "31491", - cst_4$70 = cst_4$98, - cst_32694 = "32694", - cst_5$102 = cst_5$158, - cst_35130 = cst_35130$1, - cst_5$103 = cst_5$158, - cst_3045 = "3045", - cst_35130$0 = cst_35130$1, - _zU_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zR_ = - [0, - cst_examples_aides_logement_ar, - 3420, - 5, - 3420, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$291 = cst_0$359, - cst_27195 = "27195", - cst_32773 = "32773", - cst_1$213 = cst_1$254, - cst_35237 = "35237", - cst_2$67 = cst_2$105, - cst_36222 = "36222", - cst_3$65 = cst_3$101, - cst_37240 = "37240", - cst_4$65 = cst_4$98, - cst_38240 = "38240", - cst_5$92 = cst_5$158, - cst_39051 = cst_39051$1, - cst_5$93 = cst_5$158, - cst_3401 = "3401", - cst_39051$0 = cst_39051$1, - cst_0$292 = cst_0$359, - cst_23858 = "23858", - cst_29246 = "29246", - cst_1$214 = cst_1$254, - cst_31661 = "31661", - cst_2$68 = cst_2$105, - cst_32758 = "32758", - cst_3$66 = cst_3$101, - cst_33886 = "33886", - cst_4$66 = cst_4$98, - cst_34999 = "34999", - cst_5$94 = cst_5$158, - cst_37478 = cst_37478$1, - cst_5$95 = cst_5$158, - cst_3259 = "3259", - cst_37478$0 = cst_37478$1, - cst_0$293 = cst_0$359, - cst_22380 = "22380", - cst_27146 = "27146", - cst_1$215 = cst_1$254, - cst_29595 = "29595", - cst_2$69 = cst_2$105, - cst_30819 = "30819", - cst_3$67 = cst_3$101, - cst_32058 = "32058", - cst_4$67 = cst_4$98, - cst_33282 = "33282", - cst_5$96 = cst_5$158, - cst_35762 = cst_35762$1, - cst_5$97 = cst_5$158, - cst_3100 = "3100", - cst_35762$0 = cst_35762$1, - _zS_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zP_ = - [0, - cst_examples_aides_logement_ar, - 3467, - 5, - 3467, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$288 = cst_0$359, - cst_27956 = "27956", - cst_33691 = "33691", - cst_1$210 = cst_1$254, - cst_36224 = "36224", - cst_2$64 = cst_2$105, - cst_37236 = "37236", - cst_3$62 = cst_3$101, - cst_38283 = "38283", - cst_4$62 = cst_4$98, - cst_39311 = "39311", - cst_5$86 = cst_5$158, - cst_40144 = cst_40144$1, - cst_5$87 = cst_5$158, - cst_3496 = "3496", - cst_40144$0 = cst_40144$1, - cst_0$289 = cst_0$359, - cst_24526 = "24526", - cst_30065 = "30065", - cst_1$211 = cst_1$254, - cst_32548 = "32548", - cst_2$65 = cst_2$105, - cst_33675 = "33675", - cst_3$63 = cst_3$101, - cst_34865$0 = cst_34865$1, - cst_4$63 = cst_4$98, - cst_35979 = "35979", - cst_5$88 = cst_5$158, - cst_38527 = cst_38527$1, - cst_5$89 = cst_5$158, - cst_3350 = "3350", - cst_38527$0 = cst_38527$1, - cst_0$290 = cst_0$359, - cst_23007 = "23007", - cst_27906 = "27906", - cst_1$212 = cst_1$254, - cst_30424 = "30424", - cst_2$66 = cst_2$105, - cst_31682 = "31682", - cst_3$64 = cst_3$101, - cst_32956$0 = cst_32956$1, - cst_4$64 = cst_4$98, - cst_34214 = "34214", - cst_5$90 = cst_5$158, - cst_36733 = cst_36733$1, - cst_5$91 = cst_5$158, - cst_3187 = "3187", - cst_36733$0 = cst_36733$1, - _zQ_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zN_ = - [0, - cst_examples_aides_logement_ar, - 3514, - 5, - 3514, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$285 = cst_0$359, - cst_28728 = "28728", - cst_34621 = "34621", - cst_1$207 = cst_1$254, - cst_37224 = "37224", - cst_2$61 = cst_2$105, - cst_38264 = "38264", - cst_3$59 = cst_3$101, - cst_39340$0 = cst_39340$1, - cst_4$59 = cst_4$98, - cst_40396 = "40396", - cst_5$80 = cst_5$158, - cst_41252 = cst_41252$1, - cst_5$81 = cst_5$158, - cst_3592 = "3592", - cst_41252$0 = cst_41252$1, - cst_0$286 = cst_0$359, - cst_25203 = "25203", - cst_30895 = "30895", - cst_1$208 = cst_1$254, - cst_33446 = "33446", - cst_2$62 = cst_2$105, - cst_34604 = "34604", - cst_3$60 = cst_3$101, - cst_35796 = "35796", - cst_4$60 = cst_4$98, - cst_36972 = "36972", - cst_5$82 = cst_5$158, - cst_39590 = cst_39590$1, - cst_5$83 = cst_5$158, - cst_3442 = "3442", - cst_39590$0 = cst_39590$1, - cst_0$287 = cst_0$359, - cst_23642 = "23642", - cst_28676 = "28676", - cst_1$209 = cst_1$254, - cst_31264$0 = cst_31264$1, - cst_2$63 = cst_2$105, - cst_32556 = "32556", - cst_3$61 = cst_3$101, - cst_33866 = "33866", - cst_4$61 = cst_4$98, - cst_35158 = "35158", - cst_5$84 = cst_5$158, - cst_37778 = cst_37778$1, - cst_5$85 = cst_5$158, - cst_3275 = "3275", - cst_37778$0 = cst_37778$1, - _zO_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zL_ = - [0, - cst_examples_aides_logement_ar, - 3561, - 5, - 3561, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$282 = cst_0$359, - cst_29575 = "29575", - cst_35642 = "35642", - cst_1$204 = cst_1$254, - cst_38322 = "38322", - cst_2$58 = cst_2$105, - cst_39393 = "39393", - cst_3$56 = cst_3$101, - cst_40501 = "40501", - cst_4$56 = cst_4$98, - cst_41588 = "41588", - cst_5$74 = cst_5$158, - cst_42469 = cst_42469$1, - cst_5$75 = cst_5$158, - cst_3698 = "3698", - cst_42469$0 = cst_42469$1, - cst_0$283 = cst_0$359, - cst_25946 = "25946", - cst_31806 = "31806", - cst_1$205 = cst_1$254, - cst_34433 = "34433", - cst_2$59 = cst_2$105, - cst_35625 = "35625", - cst_3$57 = cst_3$101, - cst_36852 = "36852", - cst_4$57 = cst_4$98, - cst_38063 = "38063", - cst_5$76 = cst_5$158, - cst_40758 = cst_40758$1, - cst_5$77 = cst_5$158, - cst_3544 = "3544", - cst_40758$0 = cst_40758$1, - cst_0$284 = cst_0$359, - cst_24339 = "24339", - cst_29522 = "29522", - cst_1$206 = cst_1$254, - cst_32186 = "32186", - cst_2$60 = cst_2$105, - cst_33516 = "33516", - cst_3$58 = cst_3$101, - cst_34865 = cst_34865$1, - cst_4$58 = cst_4$98, - cst_36195 = "36195", - cst_5$78 = cst_5$158, - cst_38892 = cst_38892$1, - cst_5$79 = cst_5$158, - cst_3372 = "3372", - cst_38892$0 = cst_38892$1, - _zM_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zJ_ = - [0, - cst_examples_aides_logement_ar, - 3608, - 5, - 3608, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$279 = cst_0$359, - cst_29670 = "29670", - cst_35757 = "35757", - cst_1$201 = cst_1$254, - cst_38445 = "38445", - cst_2$55 = cst_2$105, - cst_39519 = "39519", - cst_3$53 = cst_3$101, - cst_40601 = "40601", - cst_4$53 = cst_4$98, - cst_41721 = "41721", - cst_5$68 = cst_5$158, - cst_42605 = cst_42605$1, - cst_5$69 = cst_5$158, - cst_3710 = "3710", - cst_42605$0 = cst_42605$1, - cst_0$280 = cst_0$359, - cst_26029 = "26029", - cst_31908 = "31908", - cst_1$202 = cst_1$254, - cst_34643 = "34643", - cst_2$56 = cst_2$105, - cst_35739 = "35739", - cst_3$54 = cst_3$101, - cst_36970 = "36970", - cst_4$54 = cst_4$98, - cst_38185 = "38185", - cst_5$70 = cst_5$158, - cst_40888 = cst_40888$1, - cst_5$71 = cst_5$158, - cst_3555 = "3555", - cst_40888$0 = cst_40888$1, - cst_0$281 = cst_0$359, - cst_24417 = "24417", - cst_29616 = "29616", - cst_1$203 = cst_1$254, - cst_32289 = "32289", - cst_2$57 = cst_2$105, - cst_33623$0 = cst_33623$1, - cst_3$55 = cst_3$101, - cst_34977 = "34977", - cst_4$55 = cst_4$98, - cst_36311 = "36311", - cst_5$72 = cst_5$158, - cst_39016 = cst_39016$1, - cst_5$73 = cst_5$158, - cst_3383 = "3383", - cst_39016$0 = cst_39016$1, - _zK_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zH_ = - [0, - cst_examples_aides_logement_ar, - 3655, - 5, - 3655, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$276 = cst_0$359, - cst_29996 = "29996", - cst_36149 = "36149", - cst_1$198 = cst_1$254, - cst_38868 = "38868", - cst_2$52 = cst_2$105, - cst_39954 = "39954", - cst_3$50 = cst_3$101, - cst_41078 = "41078", - cst_4$50 = cst_4$98, - cst_42180 = "42180", - cst_5$62 = cst_5$158, - cst_43074 = cst_43074$1, - cst_5$63 = cst_5$158, - cst_3751 = "3751", - cst_43074$0 = cst_43074$1, - cst_0$277 = cst_0$359, - cst_26315 = "26315", - cst_32259 = "32259", - cst_1$199 = cst_1$254, - cst_34923 = "34923", - cst_2$53 = cst_2$105, - cst_36132 = "36132", - cst_3$51 = cst_3$101, - cst_37373 = "37373", - cst_4$51 = cst_4$98, - cst_38605 = "38605", - cst_5$64 = cst_5$158, - cst_41338 = cst_41338$1, - cst_5$65 = cst_5$158, - cst_3594 = "3594", - cst_41338$0 = cst_41338$1, - cst_0$278 = cst_0$359, - cst_24686 = "24686", - cst_29942 = "29942", - cst_1$200 = cst_1$254, - cst_32644 = "32644", - cst_2$54 = cst_2$105, - cst_33993 = "33993", - cst_3$52 = cst_3$101, - cst_35362 = "35362", - cst_4$52 = cst_4$98, - cst_36710 = "36710", - cst_5$66 = cst_5$158, - cst_39445 = cst_39445$1, - cst_5$67 = cst_5$158, - cst_3420 = "3420", - cst_39445$0 = cst_39445$1, - _zI_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zF_ = - [0, - cst_examples_aides_logement_ar, - 3702, - 5, - 3702, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$273 = cst_0$359, - cst_30296 = "30296", - cst_36510 = "36510", - cst_1$195 = cst_1$254, - cst_39257 = "39257", - cst_2$49 = cst_2$105, - cst_40354 = "40354", - cst_3$47 = cst_3$101, - cst_41489 = "41489", - cst_4$47 = cst_4$98, - cst_42602 = "42602", - cst_5$56 = cst_5$158, - cst_43505 = cst_43505$1, - cst_5$57 = cst_5$158, - cst_3789 = "3789", - cst_43505$0 = cst_43505$1, - cst_0$274 = cst_0$359, - cst_26578 = "26578", - cst_32582 = "32582", - cst_1$196 = cst_1$254, - cst_35272 = "35272", - cst_2$50 = cst_2$105, - cst_36493 = "36493", - cst_3$48 = cst_3$101, - cst_37751 = "37751", - cst_4$48 = cst_4$98, - cst_38991 = "38991", - cst_5$58 = cst_5$158, - cst_41751 = cst_41751$1, - cst_5$59 = cst_5$158, - cst_3630 = "3630", - cst_41751$0 = cst_41751$1, - cst_0$275 = cst_0$359, - cst_24933 = "24933", - cst_30241 = "30241", - cst_1$197 = cst_1$254, - cst_32970 = "32970", - cst_2$51 = cst_2$105, - cst_34333 = "34333", - cst_3$49 = cst_3$101, - cst_35716 = "35716", - cst_4$49 = cst_4$98, - cst_37077 = "37077", - cst_5$60 = cst_5$158, - cst_39839 = cst_39839$1, - cst_5$61 = cst_5$158, - cst_3454 = "3454", - cst_39839$0 = cst_39839$1, - _zG_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zD_ = - [0, - cst_examples_aides_logement_ar, - 3749, - 5, - 3749, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$270 = cst_0$359, - cst_30947 = "30947", - cst_37295 = "37295", - cst_1$192 = cst_1$254, - cst_40101 = "40101", - cst_2$46 = cst_2$105, - cst_41222 = "41222", - cst_3$44 = cst_3$101, - cst_42381 = "42381", - cst_4$44 = cst_4$98, - cst_43518 = "43518", - cst_5$50 = cst_5$158, - cst_44440 = cst_44440$1, - cst_5$51 = cst_5$158, - cst_3870 = "3870", - cst_44440$0 = cst_44440$1, - cst_0$271 = cst_0$359, - cst_27149 = "27149", - cst_33283 = "33283", - cst_1$193 = cst_1$254, - cst_36030 = "36030", - cst_2$47 = cst_2$105, - cst_37278 = "37278", - cst_3$45 = cst_3$101, - cst_38563 = "38563", - cst_4$45 = cst_4$98, - cst_39829 = "39829", - cst_5$52 = cst_5$158, - cst_42649 = "42649", - cst_5$53 = cst_5$158, - cst_3708 = "3708", - cst_42659 = "42659", - cst_0$272 = cst_0$359, - cst_25469 = "25469", - cst_30891 = "30891", - cst_1$194 = cst_1$254, - cst_33679 = "33679", - cst_2$48 = cst_2$105, - cst_35071 = "35071", - cst_3$46 = cst_3$101, - cst_36484 = "36484", - cst_4$46 = cst_4$98, - cst_37874 = "37874", - cst_5$54 = cst_5$158, - cst_40696 = cst_40696$1, - cst_5$55 = cst_5$158, - cst_3528 = "3528", - cst_40696$0 = cst_40696$1, - _zE_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zB_ = - [0, - cst_examples_aides_logement_ar, - 3796, - 5, - 3796, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$267 = cst_0$359, - cst_31123 = "31123", - cst_37508 = "37508", - cst_1$189 = cst_1$254, - cst_40330 = "40330", - cst_2$43 = cst_2$105, - cst_41457 = "41457", - cst_3$41 = cst_3$101, - cst_42623 = "42623", - cst_4$41 = cst_4$98, - cst_43766 = "43766", - cst_5$44 = cst_5$158, - cst_44693 = cst_44693$1, - cst_5$45 = cst_5$158, - cst_3892 = "3892", - cst_44693$0 = cst_44693$1, - cst_0$268 = cst_0$359, - cst_27304 = "27304", - cst_33473 = "33473", - cst_1$190 = cst_1$254, - cst_36235 = "36235", - cst_2$44 = cst_2$105, - cst_37490 = "37490", - cst_3$42 = cst_3$101, - cst_38783 = "38783", - cst_4$42 = cst_4$98, - cst_40056 = "40056", - cst_5$46 = cst_5$158, - cst_42892 = cst_42892$1, - cst_5$47 = cst_5$158, - cst_3729 = "3729", - cst_42892$0 = cst_42892$1, - cst_0$269 = cst_0$359, - cst_25614 = "25614", - cst_31067 = "31067", - cst_1$191 = cst_1$254, - cst_33871 = "33871", - cst_2$45 = cst_2$105, - cst_35271 = "35271", - cst_3$43 = cst_3$101, - cst_36692 = "36692", - cst_4$43 = cst_4$98, - cst_38090 = "38090", - cst_5$48 = cst_5$158, - cst_40928 = cst_40928$1, - cst_5$49 = cst_5$158, - cst_3548 = "3548", - cst_40928$0 = cst_40928$1, - _zC_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zz_ = - [0, - cst_examples_aides_logement_ar, - 3843, - 5, - 3843, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$264 = cst_0$359, - cst_31148 = "31148", - cst_37538 = "37538", - cst_1$186 = cst_1$254, - cst_40362 = "40362", - cst_2$40 = cst_2$105, - cst_41490 = "41490", - cst_3$38 = cst_3$101, - cst_42657 = "42657", - cst_4$38 = cst_4$98, - cst_43801 = "43801", - cst_5$38 = cst_5$158, - cst_44729 = cst_44729$1, - cst_5$39 = cst_5$158, - cst_3895 = "3895", - cst_44729$0 = cst_44729$1, - cst_0$265 = cst_0$359, - cst_27326 = "27326", - cst_33500$0 = cst_33500$1, - cst_1$187 = cst_1$254, - cst_36264 = "36264", - cst_2$41 = cst_2$105, - cst_37520 = "37520", - cst_3$39 = cst_3$101, - cst_38814 = "38814", - cst_4$39 = cst_4$98, - cst_40088 = "40088", - cst_5$40 = cst_5$158, - cst_42926 = cst_42926$1, - cst_5$41 = cst_5$158, - cst_3732 = "3732", - cst_42926$0 = cst_42926$1, - cst_0$266 = cst_0$359, - cst_25634 = "25634", - cst_31092 = "31092", - cst_1$188 = cst_1$254, - cst_33898 = "33898", - cst_2$42 = cst_2$105, - cst_35299 = "35299", - cst_3$40 = cst_3$101, - cst_36721 = "36721", - cst_4$40 = cst_4$98, - cst_38120 = "38120", - cst_5$42 = cst_5$158, - cst_40961 = cst_40961$1, - cst_5$43 = cst_5$158, - cst_3551 = "3551", - cst_40961$0 = cst_40961$1, - _zA_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zx_ = - [0, - cst_examples_aides_logement_ar, - 3890, - 5, - 3890, - 62, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$261 = cst_0$359, - cst_31382 = "31382", - cst_37820 = "37820", - cst_1$183 = cst_1$254, - cst_40665 = "40665", - cst_2$37 = cst_2$105, - cst_41801 = "41801", - cst_3$35 = cst_3$101, - cst_42977 = "42977", - cst_4$35 = cst_4$98, - cst_44130 = "44130", - cst_5$32 = cst_5$158, - cst_45064 = cst_45064$1, - cst_5$33 = cst_5$158, - cst_3924 = "3924", - cst_45064$0 = cst_45064$1, - cst_0$262 = cst_0$359, - cst_27531 = "27531", - cst_33751 = "33751", - cst_1$184 = cst_1$254, - cst_36536 = "36536", - cst_2$38 = cst_2$105, - cst_37801 = "37801", - cst_3$36 = cst_3$101, - cst_39105 = "39105", - cst_4$36 = cst_4$98, - cst_40389 = "40389", - cst_5$34 = cst_5$158, - cst_43248 = cst_43248$1, - cst_5$35 = cst_5$158, - cst_3760 = "3760", - cst_43248$0 = cst_43248$1, - cst_0$263 = cst_0$359, - cst_25826 = "25826", - cst_31325 = "31325", - cst_1$185 = cst_1$254, - cst_34152 = "34152", - cst_2$39 = cst_2$105, - cst_35564 = "35564", - cst_3$37 = cst_3$101, - cst_36996 = "36996", - cst_4$37 = cst_4$98, - cst_38406 = "38406", - cst_5$36 = cst_5$158, - cst_41268 = cst_41268$1, - cst_5$37 = cst_5$158, - cst_3578 = "3578", - cst_41268$0 = cst_41268$1, - _zy_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zv_ = - [0, - cst_examples_aides_logement_ar, - 3937, - 5, - 3937, - 32, - [0, - cst_Article_33, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$258 = cst_0$359, - cst_31476 = "31476", - cst_37933 = "37933", - cst_1$180 = cst_1$254, - cst_40787 = "40787", - cst_2$34 = cst_2$105, - cst_41927 = "41927", - cst_3$32 = cst_3$101, - cst_43106 = "43106", - cst_4$32 = cst_4$98, - cst_44262 = "44262", - cst_5$26 = cst_5$158, - cst_45200 = cst_45200$1, - cst_5$27 = cst_5$158, - cst_3936 = "3936", - cst_45200$0 = cst_45200$1, - cst_0$259 = cst_0$359, - cst_27614 = "27614", - cst_33853 = "33853", - cst_1$181 = cst_1$254, - cst_36646 = "36646", - cst_2$35 = cst_2$105, - cst_37915 = "37915", - cst_3$33 = cst_3$101, - cst_39222 = "39222", - cst_4$33 = cst_4$98, - cst_40510 = "40510", - cst_5$28 = cst_5$158, - cst_43378 = cst_43378$1, - cst_5$29 = cst_5$158, - cst_3771 = "3771", - cst_43378$0 = cst_43378$1, - cst_0$260 = cst_0$359, - cst_25904 = "25904", - cst_31419 = "31419", - cst_1$182 = cst_1$254, - cst_34255 = "34255", - cst_2$36 = cst_2$105, - cst_35670 = "35670", - cst_3$34 = cst_3$101, - cst_37107 = "37107", - cst_4$34 = cst_4$98, - cst_38521 = "38521", - cst_5$30 = cst_5$158, - cst_41392 = cst_41392$1, - cst_5$31 = cst_5$158, - cst_3588 = "3588", - cst_41392$0 = cst_41392$1, - _zw_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ab_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zu_ = - [0, - cst_examples_aides_logement_pr, - 949, - 10, - 949, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zn_ = - [0, - cst_examples_aides_logement_co$0, - 5924, - 5, - 5928, - 73, - [0, - cst_Article_D862_7, - [0, - cst_Section_III_Allocations_de, - [0, - cst_Chapitre_II_Saint_Barth_le, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _zo_ = - [0, - cst_examples_aides_logement_pr, - 965, - 11, - 965, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zm_ = - [0, - cst_examples_aides_logement_co$0, - 5572, - 5, - 5579, - 73, - [0, - cst_Article_D861_8, - [0, - cst_Section_2_Allocations_de_l, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _zp_ = - [0, - cst_examples_aides_logement_pr, - 965, - 11, - 965, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zq_ = - [0, - cst_examples_aides_logement_pr, - 965, - 11, - 965, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zl_ = - [0, - cst_examples_aides_logement_co$0, - 4676, - 6, - 4679, - 44, - [0, - cst_Article_D842_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _zr_ = - [0, - cst_examples_aides_logement_pr, - 965, - 11, - 965, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zk_ = - [0, - cst_examples_aides_logement_pr, - 965, - 11, - 965, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zg_ = - [0, - cst_examples_aides_logement_ar, - 4047, - 14, - 4047, - 40, - [0, - "Article 35", - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_500$3 = cst_500$4, - _zc_ = - [0, - cst_examples_aides_logement_ar, - 4058, - 14, - 4058, - 41, - [0, - "Article 36", - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1000$4 = cst_1000$5, - _y__ = - [0, - cst_examples_aides_logement_ar, - 4113, - 14, - 4113, - 41, - [0, - cst_Article_38, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1500$1 = cst_1500$2, - _y6_ = - [0, - cst_examples_aides_logement_ar, - 4141, - 14, - 4141, - 41, - [0, - cst_Article_39, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_390000 = "390000", - _y2_ = - [0, - cst_examples_aides_logement_ar, - 4121, - 14, - 4121, - 33, - [0, - cst_Article_38, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0_0234$1 = cst_0_0234$2, - _yY_ = - [0, - cst_examples_aides_logement_ar, - 4133, - 14, - 4133, - 33, - [0, - cst_Article_39, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_16_25$0 = cst_16_25$1, - cst_6$71 = cst_6$92, - _yO_ = - [0, - cst_examples_aides_logement_ar$0, - 3330, - 5, - 3338, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$70 = cst_6$93, - _yP_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$69 = cst_6$92, - _yN_ = - [0, - cst_examples_aides_logement_ar$0, - 2795, - 5, - 2803, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$68 = cst_6$93, - _yQ_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$67 = cst_6$92, - _yM_ = - [0, - cst_examples_aides_logement_ar$0, - 1723, - 5, - 1731, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$66 = cst_6$93, - _yR_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$65 = cst_6$92, - _yL_ = - [0, - cst_examples_aides_logement_ar$0, - 604, - 5, - 612, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$64 = cst_6$93, - _yS_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$63 = cst_6$92, - _yK_ = - [0, - cst_examples_aides_logement_ar$0, - 111, - 5, - 119, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$62 = cst_6$93, - _yT_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yU_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yG_ = - [0, - cst_examples_aides_logement_ar$0, - 1512, - 14, - 1512, - 47, - [0, - cst_Article_34, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - _yH_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yF_ = - [0, - cst_examples_aides_logement_ar, - 4032, - 14, - 4032, - 47, - [0, - cst_Article_34, - [0, - cst_Chapitre_IV_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - _yI_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yJ_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yz_ = - [0, - cst_examples_aides_logement_pr, - 1009, - 14, - 1009, - 50, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yt_ = - [0, - cst_examples_aides_logement_co$0, - 4449, - 14, - 4449, - 64, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _yp_ = - [0, - cst_examples_aides_logement_co$0, - 4447, - 14, - 4447, - 59, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _yl_ = - [0, - cst_examples_aides_logement_au, - 330, - 14, - 330, - 36, - [0, cst_Article_premier, [0, cst_R_glement_CE_n_2866_98_du_, 0]]], - cst_6_55957$0 = cst_6_55957$1, - cst_1$179 = cst_1$255, - _ym_ = - [0, - cst_examples_aides_logement_pr, - 955, - 11, - 955, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yk_ = - [0, - cst_examples_aides_logement_pr, - 955, - 11, - 955, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yn_ = - [0, cst_CalculAllocationLogementAc, [0, cst_taux_francs_vers_euros, 0]], - _yq_ = - [0, - cst_examples_aides_logement_co$0, - 4447, - 14, - 4447, - 59, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _yr_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_nombre_parts_nombre, 0]], - _yo_ = - [0, - cst_examples_aides_logement_co$0, - 4447, - 14, - 4447, - 59, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _yu_ = - [0, - cst_examples_aides_logement_co$0, - 4449, - 14, - 4449, - 64, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _yv_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_nombre_parts_situat, 0]], - _ys_ = - [0, - cst_examples_aides_logement_co$0, - 4449, - 14, - 4449, - 64, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _yw_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], - _yx_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], - _yA_ = - [0, - cst_examples_aides_logement_pr, - 1009, - 14, - 1009, - 50, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yB_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_contributions_sociales_dat, 0]], - _yy_ = - [0, - cst_examples_aides_logement_pr, - 1009, - 14, - 1009, - 50, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yC_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], - _yD_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], - _yV_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yE_ = - [0, - cst_examples_aides_logement_pr, - 966, - 11, - 966, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yW_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_multiplicateur_majoration_, 0]], - _yZ_ = - [0, - cst_examples_aides_logement_pr, - 964, - 11, - 964, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yX_ = - [0, - cst_examples_aides_logement_pr, - 964, - 11, - 964, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _y0_ = [0, cst_CalculAllocationLogementAc, [0, "coefficient_d842_12", 0]], - _y3_ = - [0, - cst_examples_aides_logement_pr, - 963, - 11, - 963, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _y1_ = - [0, - cst_examples_aides_logement_pr, - 963, - 11, - 963, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _y4_ = [0, cst_CalculAllocationLogementAc, [0, "coefficient_d842_11", 0]], - _y7_ = - [0, - cst_examples_aides_logement_pr, - 962, - 11, - 962, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _y5_ = - [0, - cst_examples_aides_logement_pr, - 962, - 11, - 962, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _y8_ = - [0, - cst_CalculAllocationLogementAc, - [0, "montant_forfaitaire_d842_12", 0]], - _y$_ = - [0, - cst_examples_aides_logement_pr, - 961, - 11, - 961, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _y9_ = - [0, - cst_examples_aides_logement_pr, - 961, - 11, - 961, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _za_ = - [0, - cst_CalculAllocationLogementAc, - [0, "montant_forfaitaire_d842_11", 0]], - _zd_ = - [0, - cst_examples_aides_logement_pr, - 960, - 11, - 960, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zb_ = - [0, - cst_examples_aides_logement_pr, - 960, - 11, - 960, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ze_ = - [0, - cst_CalculAllocationLogementAc, - [0, "montant_minimal_aide_d842_6", 0]], - _zh_ = - [0, - cst_examples_aides_logement_pr, - 952, - 11, - 952, - 37, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zf_ = - [0, - cst_examples_aides_logement_pr, - 952, - 11, - 952, - 37, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zi_ = - [0, - cst_CalculAllocationLogementAc, - [0, "montant_forfaitaire_d842_6", 0]], - _zs_ = - [0, - cst_examples_aides_logement_pr, - 965, - 11, - 965, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zj_ = - [0, - cst_examples_aides_logement_pr, - 965, - 11, - 965, - 30, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _zt_ = [0, cst_CalculAllocationLogementAc, [0, "condition_d842_11_3", 0]], - _Ac_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$1, 0]], - _AU_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ad_ = - [0, - cst_examples_aides_logement_pr, - 942, - 11, - 942, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AV_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_montant_forfaitaire_charge$1, 0]], - _A1_ = - [0, - cst_examples_aides_logement_pr, - 954, - 11, - 954, - 42, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _AW_ = - [0, - cst_examples_aides_logement_pr, - 954, - 11, - 954, - 42, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _A2_ = - [0, - cst_CalculAllocationLogementAc, - [0, "seuil_minimal_ressources_m\xc3\xa9nage", 0]], - _A6_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_min, 0]], - _Bv_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d$0, 0]], - _Bz_ = - [0, cst_CalculAllocationLogementAc, [0, cst_d_pense_nette_minimale, 0]], - _BE_ = - [0, - cst_examples_aides_logement_pr, - 924, - 10, - 924, - 15, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _BA_ = - [0, - cst_examples_aides_logement_pr, - 924, - 10, - 924, - 15, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _BF_ = - [0, - cst_CalculAllocationLogementAc, - [0, "ressources_m\xc3\xa9nage_arrondies_seuil", 0]], - _Cg_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_plafond_mensualit_d, 0]], - _Cj_ = - [0, - cst_examples_aides_logement_pr, - 1010, - 14, - 1010, - 61, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ck_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_quivalence_loyer_mi, 0]], - _Ch_ = - [0, - cst_examples_aides_logement_pr, - 1010, - 14, - 1010, - 61, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Cn_ = - [0, - cst_examples_aides_logement_co$0, - 4443, - 14, - 4443, - 75, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Co_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_quivalence_loyer_mi$0, 0]], - _Cl_ = - [0, - cst_examples_aides_logement_co$0, - 4443, - 14, - 4443, - 75, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Cr_ = - [0, - cst_examples_aides_logement_co$0, - 4442, - 14, - 4442, - 69, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Cs_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_quivalence_loyer_mi$1, 0]], - _Cp_ = - [0, - cst_examples_aides_logement_co$0, - 4442, - 14, - 4442, - 69, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Cv_ = - [0, - cst_examples_aides_logement_co$0, - 4445, - 14, - 4445, - 70, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Cw_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_quivalence_loyer_mi$2, 0]], - _Ct_ = - [0, - cst_examples_aides_logement_co$0, - 4445, - 14, - 4445, - 70, - [0, - cst_Article_D842_6, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _Cx_ = - [0, - cst_CalculAllocationLogementAc, - [0, - cst_calcul_quivalence_loyer_mi$3, - [0, cst_Calcul_quivalenceLoyerMini, 0]]], - _Cy_ = - [0, - cst_CalculAllocationLogementAc, - [0, - cst_calcul_quivalence_loyer_mi$3, - [0, cst_Calcul_quivalenceLoyerMini, 0]]], - _CC_ = - [0, - cst_examples_aides_logement_pr, - 992, - 14, - 992, - 59, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CD_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_$1, 0]], - _Cz_ = - [0, - cst_examples_aides_logement_pr, - 992, - 14, - 992, - 59, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CG_ = - [0, - cst_examples_aides_logement_pr, - 994, - 14, - 994, - 61, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CH_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_$2, 0]], - _CE_ = - [0, - cst_examples_aides_logement_pr, - 994, - 14, - 994, - 61, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CK_ = - [0, - cst_examples_aides_logement_pr, - 998, - 14, - 998, - 67, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CL_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_$3, 0]], - _CI_ = - [0, - cst_examples_aides_logement_pr, - 998, - 14, - 998, - 67, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CO_ = - [0, - cst_examples_aides_logement_pr, - 1000, - 14, - 1000, - 65, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CP_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_$4, 0]], - _CM_ = - [0, - cst_examples_aides_logement_pr, - 1000, - 14, - 1000, - 65, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CS_ = - [0, - cst_examples_aides_logement_pr, - 1002, - 14, - 1002, - 70, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CT_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_$5, 0]], - _CQ_ = - [0, - cst_examples_aides_logement_pr, - 1002, - 14, - 1002, - 70, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CW_ = - [0, - cst_examples_aides_logement_pr, - 1004, - 14, - 1004, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _CX_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_$6, 0]], - _CU_ = - [0, - cst_examples_aides_logement_pr, - 1004, - 14, - 1004, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _C0_ = - [0, - cst_examples_aides_logement_pr, - 1007, - 14, - 1007, - 53, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _C1_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_$7, 0]], - _CY_ = - [0, - cst_examples_aides_logement_pr, - 1007, - 14, - 1007, - 53, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _C4_ = - [0, - cst_examples_aides_logement_pr, - 996, - 14, - 996, - 49, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _C5_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_$8, 0]], - _C2_ = - [0, - cst_examples_aides_logement_pr, - 996, - 14, - 996, - 49, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _C8_ = - [0, - cst_examples_aides_logement_pr, - 1006, - 14, - 1006, - 49, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _C9_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_calcul_apl_logement_foyer_$9, 0]], - _C6_ = - [0, - cst_examples_aides_logement_pr, - 1006, - 14, - 1006, - 49, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Dh_ = - [0, - cst_CalculAllocationLogementAc, - [0, - cst_calcul_apl_logement_foyer, - [0, cst_CalculAidePersonnalis_eLog$1, 0]]], - _Di_ = - [0, - cst_CalculAllocationLogementAc, - [0, - cst_calcul_apl_logement_foyer, - [0, cst_CalculAidePersonnalis_eLog$1, 0]]], - _Dn_ = - [0, - cst_examples_aides_logement_pr, - 953, - 11, - 953, - 47, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Dj_ = - [0, - cst_examples_aides_logement_pr, - 953, - 11, - 953, - 47, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Do_ = - [0, - cst_CalculAllocationLogementAc, - [0, "seuil_minimal_d\xc3\xa9pense_nette_minimale", 0]], - _DF_ = - [0, - cst_examples_aides_logement_pr, - 945, - 11, - 945, - 36, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Dp_ = - [0, - cst_examples_aides_logement_pr, - 945, - 11, - 945, - 36, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _DG_ = - [0, - cst_CalculAllocationLogementAc, - [0, "plafond_mensualit\xc3\xa9_d842_6", 0]], - _DJ_ = - [0, - cst_examples_aides_logement_pr, - 943, - 12, - 943, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _DH_ = - [0, - cst_examples_aides_logement_pr, - 943, - 12, - 943, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _DK_ = - [0, cst_CalculAllocationLogementAc, [0, cst_mensualit_minimale$1, 0]], - _DN_ = - [0, - cst_examples_aides_logement_pr, - 944, - 12, - 944, - 39, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _DL_ = - [0, - cst_examples_aides_logement_pr, - 944, - 12, - 944, - 39, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _DO_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_coefficient_prise_en_charg$3, 0]], - _DW_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_abattement_d_pense_nette_m, 0]], - _DZ_ = - [0, - cst_examples_aides_logement_pr, - 941, - 12, - 941, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _DX_ = - [0, - cst_examples_aides_logement_pr, - 941, - 12, - 941, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _D0_ = - [0, cst_CalculAllocationLogementAc, [0, cst_mensualit_ligible$1, 0]], - _Ea_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_d_p, 0]], - _Ed_ = - [0, - cst_examples_aides_logement_pr, - 976, - 12, - 976, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Eb_ = - [0, - cst_examples_aides_logement_pr, - 976, - 12, - 976, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _Ee_ = - [0, cst_CalculAllocationLogementAc, [0, cst_aide_finale_formule$9, 0]], - _Eq_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_con, 0]], - _Ey_ = - [0, - cst_CalculAllocationLogementAc, - [0, cst_traitement_aide_finale_mon, 0]], - _Ez_ = - [0, - cst_examples_aides_logement_pr, - 1015, - 13, - 1015, - 48, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _EC_ = - [0, - cst_examples_aides_logement_pr, - 1015, - 13, - 1015, - 48, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _EA_ = - [0, - cst_examples_aides_logement_pr, - 1014, - 13, - 1014, - 42, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _EB_ = - [0, - cst_examples_aides_logement_pr, - 1014, - 13, - 1014, - 42, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yf_ = - [0, - cst_examples_aides_logement_co$0, - 4920, - 14, - 4920, - 36, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _yb_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], - _yc_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_con, 0]], - _yd_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], - _ye_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_con, 0]], - cst_0$257 = cst_0$359, - _yg_ = - [0, - cst_examples_aides_logement_pr, - 1062, - 10, - 1062, - 25, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ya_ = - [0, - cst_examples_aides_logement_pr, - 1062, - 10, - 1062, - 25, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _x9_ = - [0, - cst_examples_aides_logement_co$0, - 4899, - 14, - 4899, - 36, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _x1_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_red, [0, cst_input0, 0]]], - _x2_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_red, 0]], - _x3_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_red, [0, cst_output, 0]]], - _x4_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_red, 0]], - _x5_ = - [0, - cst_ContributionsSocialesAides, - [0, cst_montant$2, [0, cst_input0, 0]]], - _x6_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - _x7_ = - [0, - cst_ContributionsSocialesAides, - [0, cst_montant$2, [0, cst_output, 0]]], - _x8_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - cst_50$2 = cst_50$4, - cst_0$255 = cst_0$359, - cst_0$256 = cst_0$359, - _x__ = - [0, - cst_examples_aides_logement_pr, - 1061, - 10, - 1061, - 40, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _x0_ = - [0, - cst_examples_aides_logement_pr, - 1061, - 10, - 1061, - 40, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xX_ = - [0, - cst_examples_aides_logement_co$0, - 4885, - 14, - 4885, - 36, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _xT_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_d_p, [0, cst_input0, 0]]], - _xU_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_d_p, 0]], - _xV_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_d_p, [0, cst_output, 0]]], - _xW_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_d_p, 0]], - _xY_ = - [0, - cst_examples_aides_logement_pr, - 1060, - 10, - 1060, - 19, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xS_ = - [0, - cst_examples_aides_logement_pr, - 1060, - 10, - 1060, - 19, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xP_ = - [0, - cst_examples_aides_logement_co$0, - 4867, - 14, - 4867, - 36, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _xH_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], - _xI_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_min, 0]], - _xJ_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], - _xK_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_min, 0]], - _xL_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_abattement_d_pense_nette_m, [0, cst_input0, 0]]], - _xM_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_abattement_d_pense_nette_m, 0]], - _xN_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_abattement_d_pense_nette_m, [0, cst_output, 0]]], - _xO_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_abattement_d_pense_nette_m, 0]], - cst_0$253 = cst_0$359, - cst_0$254 = cst_0$359, - _xQ_ = - [0, - cst_examples_aides_logement_pr, - 1059, - 10, - 1059, - 32, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xG_ = - [0, - cst_examples_aides_logement_pr, - 1059, - 10, - 1059, - 32, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xD_ = - [0, - cst_examples_aides_logement_co$0, - 4974, - 14, - 4974, - 47, - [0, - cst_Article_D842_17, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _xv_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_d_pense_nette_minimale, [0, cst_input0, 0]]], - _xw_ = - [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], - _xx_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_d_pense_nette_minimale, [0, cst_output, 0]]], - _xy_ = - [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], - _xz_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_d_pense_nette_minimale, [0, cst_input0, 0]]], - _xA_ = - [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], - _xB_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_d_pense_nette_minimale, [0, cst_output, 0]]], - _xC_ = - [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], - cst_0$252 = cst_0$359, - _xE_ = - [0, - cst_examples_aides_logement_pr, - 1036, - 11, - 1036, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xu_ = - [0, - cst_examples_aides_logement_pr, - 1036, - 11, - 1036, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xr_ = - [0, - cst_examples_aides_logement_co$0, - 4793, - 14, - 4793, - 33, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _xn_ = - [0, - cst_examples_aides_logement_co$0, - 4965, - 14, - 4965, - 36, - [0, - cst_Article_D842_17, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _xo_ = - [0, - cst_examples_aides_logement_pr, - 1034, - 11, - 1034, - 33, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xm_ = - [0, - cst_examples_aides_logement_pr, - 1034, - 11, - 1034, - 33, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xj_ = - [0, - cst_examples_aides_logement_co$0, - 4845, - 14, - 4845, - 27, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _xf_ = - [0, - cst_examples_aides_logement_co$0, - 4853, - 14, - 4853, - 36, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0$250 = cst_0$359, - cst_0$251 = cst_0$359, - _xg_ = - [0, - cst_examples_aides_logement_pr, - 1058, - 10, - 1058, - 32, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xe_ = - [0, - cst_examples_aides_logement_pr, - 1058, - 10, - 1058, - 32, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _w$_ = - [0, - cst_examples_aides_logement_ar, - 4395, - 6, - 4402, - 28, - [0, - cst_Article_46, - [0, - cst_Chapitre_IX_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_969$7 = cst_969$14, - cst_3767$7 = cst_3767$14, - _xa_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _w9_ = - [0, - cst_examples_aides_logement_ar$0, - 280, - 6, - 287, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_969$5 = cst_969$14, - cst_3767$5 = cst_3767$14, - cst_6$61 = cst_6$93, - cst_969$6 = cst_969$14, - cst_3767$6 = cst_3767$14, - _w__ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _w6_ = - [0, - cst_examples_aides_logement_ar$0, - 1894, - 6, - 1901, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_936$9 = cst_936$19, - cst_3640$9 = cst_3640$19, - cst_6$60 = cst_6$93, - cst_936$10 = cst_936$19, - cst_3640$10 = cst_3640$19, - _w7_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _w5_ = - [0, - cst_examples_aides_logement_ar$0, - 776, - 6, - 783, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_936$7 = cst_936$19, - cst_3640$7 = cst_3640$19, - cst_6$59 = cst_6$93, - cst_936$8 = cst_936$19, - cst_3640$8 = cst_3640$19, - _w8_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _w3_ = - [0, - cst_examples_aides_logement_ar$0, - 2966, - 6, - 2973, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_932$3 = cst_932$9, - cst_3625$3 = cst_3625$9, - cst_6$58 = cst_6$93, - cst_932$4 = cst_932$9, - cst_3625$4 = cst_3625$9, - _w4_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _w1_ = - [0, - cst_examples_aides_logement_ar$0, - 3502, - 6, - 3509, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_929$3 = cst_929$9, - cst_3614$3 = cst_3614$9, - cst_6$57 = cst_6$93, - cst_929$4 = cst_929$9, - cst_3614$4 = cst_3614$9, - _w2_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xb_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wY_ = - [0, - cst_examples_aides_logement_ar, - 4170, - 29, - 4170, - 56, - [0, - cst_Article_40, - [0, - cst_Chapitre_VII_Calcul_des_al, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$249 = cst_0$359, - cst_5612$3 = cst_5612$8, - cst_1272$3 = cst_1272$6, - cst_5612$4 = cst_5612$8, - _wZ_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wW_ = - [0, - cst_examples_aides_logement_ar$0, - 1589, - 29, - 1589, - 56, - [0, - cst_Article_40, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$248 = cst_0$359, - cst_5422$3 = cst_5422$8, - cst_1229$3 = cst_1229$6, - cst_5422$4 = cst_5422$8, - _wX_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wU_ = - [0, - cst_examples_aides_logement_ar$0, - 2656, - 29, - 2656, - 56, - [0, - cst_Article_40, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$247 = cst_0$359, - cst_5399$3 = cst_5399$8, - cst_1224$3 = cst_1224$6, - cst_5399$4 = cst_5399$8, - _wV_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _w0_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wQ_ = - [0, - cst_examples_aides_logement_co$0, - 4814, - 14, - 4814, - 41, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _wK_ = - [0, - cst_examples_aides_logement_co$0, - 4843, - 14, - 4843, - 70, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _wG_ = - [0, - cst_examples_aides_logement_co$0, - 4832, - 14, - 4832, - 69, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _wC_ = - [0, - cst_examples_aides_logement_co$0, - 4833, - 14, - 4833, - 75, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _wy_ = - [0, - cst_examples_aides_logement_pr, - 1082, - 14, - 1082, - 61, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wt_ = - [0, - cst_examples_aides_logement_ar, - 4213, - 6, - 4213, - 79, - [0, - cst_Article_43, - [0, - cst_Chapitre_VII_Calcul_des_al, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_8708 = "8708", - cst_13559 = "13559", - _wu_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wr_ = - [0, - cst_examples_aides_logement_ar, - 4248, - 6, - 4249, - 38, - [0, - cst_Article_43, - [0, - cst_Chapitre_VII_Calcul_des_al, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_21362 = "21362", - cst_33196 = "33196", - _ws_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wo_ = - [0, - cst_examples_aides_logement_ar, - 4266, - 6, - 4267, - 24, - [0, - cst_Article_43, - [0, - cst_Chapitre_VII_Calcul_des_al, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_17607$0 = cst_17607$1, - cst_27365$0 = cst_27365$1, - _wp_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wn_ = - [0, - cst_examples_aides_logement_ar, - 4230, - 6, - 4231, - 46, - [0, - cst_Article_43, - [0, - cst_Chapitre_VII_Calcul_des_al, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_17607 = cst_17607$1, - cst_27365 = cst_27365$1, - _wq_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wl_ = - [0, - cst_examples_aides_logement_ar$0, - 1611, - 6, - 1611, - 79, - [0, - cst_Article_43, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_8414 = "8414", - cst_13100 = "13100", - _wm_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wj_ = - [0, - cst_examples_aides_logement_ar$0, - 1648, - 6, - 1649, - 38, - [0, - cst_Article_43, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_20640 = "20640", - cst_32073 = "32073", - _wk_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wg_ = - [0, - cst_examples_aides_logement_ar$0, - 1667, - 6, - 1668, - 24, - [0, - cst_Article_43, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_17012$0 = cst_17012$1, - cst_26440$0 = cst_26440$1, - _wh_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wf_ = - [0, - cst_examples_aides_logement_ar$0, - 1629, - 6, - 1630, - 46, - [0, - cst_Article_43, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_17012 = cst_17012$1, - cst_26440 = cst_26440$1, - _wi_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wd_ = - [0, - cst_examples_aides_logement_ar$0, - 2681, - 6, - 2681, - 79, - [0, - cst_Article_43, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_8379 = "8379", - cst_13045 = "13045", - _we_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wb_ = - [0, - cst_examples_aides_logement_ar$0, - 2718, - 6, - 2719, - 38, - [0, - cst_Article_43, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_20554 = "20554", - cst_31939 = "31939", - _wc_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _v__ = - [0, - cst_examples_aides_logement_ar$0, - 2737, - 6, - 2738, - 24, - [0, - cst_Article_43, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_16941$0 = cst_16941$1, - cst_26329$0 = cst_26329$1, - _v$_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _v9_ = - [0, - cst_examples_aides_logement_ar$0, - 2699, - 6, - 2700, - 46, - [0, - cst_Article_43, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_16941 = cst_16941$1, - cst_26329 = cst_26329$1, - _wa_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _v5_ = - [0, - cst_examples_aides_logement_ar, - 4195, - 14, - 4195, - 42, - [0, - "Article 42", - [0, - cst_Chapitre_VII_Calcul_des_al, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1000$3 = cst_1000$5, - _v1_ = - [0, - cst_examples_aides_logement_ar, - 4183, - 14, - 4183, - 41, - [0, - "Article 41", - [0, - cst_Chapitre_VII_Calcul_des_al, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_500$2 = cst_500$4, - _vX_ = - [0, - cst_examples_aides_logement_ar, - 4287, - 14, - 4287, - 51, - [0, - "Article 44", - [0, - cst_Chapitre_VII_Calcul_des_al, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1500$0 = cst_1500$2, - cst_6$56 = cst_6$92, - _vN_ = - [0, - cst_examples_aides_logement_ar$0, - 3345, - 5, - 3353, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$55 = cst_6$93, - _vO_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$54 = cst_6$92, - _vM_ = - [0, - cst_examples_aides_logement_ar$0, - 2810, - 5, - 2818, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$53 = cst_6$93, - _vP_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$52 = cst_6$92, - _vL_ = - [0, - cst_examples_aides_logement_ar$0, - 1738, - 5, - 1746, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$51 = cst_6$93, - _vQ_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$50 = cst_6$92, - _vK_ = - [0, - cst_examples_aides_logement_ar$0, - 619, - 5, - 627, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$49 = cst_6$93, - _vR_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_6$48 = cst_6$92, - _vJ_ = - [0, - cst_examples_aides_logement_ar$0, - 126, - 5, - 134, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$47 = cst_6$93, - _vS_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vT_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vF_ = - [0, - cst_examples_aides_logement_ar$0, - 1586, - 14, - 1586, - 47, - [0, - cst_Article_40, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - _vG_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vE_ = - [0, - cst_examples_aides_logement_ar, - 4167, - 14, - 4167, - 47, - [0, - cst_Article_40, - [0, - cst_Chapitre_VII_Calcul_des_al, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - _vH_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vI_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vy_ = - [0, - cst_examples_aides_logement_co$0, - 5598, - 5, - 5604, - 28, - [0, - cst_Article_D861_8, - [0, - cst_Section_2_Allocations_de_l, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _vz_ = - [0, - cst_examples_aides_logement_co$0, - 5596, - 9, - 5596, - 75, - [0, - cst_Article_D861_8, - [0, - cst_Section_2_Allocations_de_l, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _vA_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_, 0]], - _vv_ = - [0, - cst_examples_aides_logement_co$0, - 4811, - 14, - 4811, - 61, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _vw_ = - [0, - cst_examples_aides_logement_co$0, - 4811, - 14, - 4811, - 61, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _vx_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_$0, 0]], - _vs_ = - [0, - cst_examples_aides_logement_pr, - 1078, - 14, - 1078, - 49, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vo_ = - [0, - cst_examples_aides_logement_pr, - 1069, - 14, - 1069, - 49, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vk_ = - [0, - cst_examples_aides_logement_pr, - 1079, - 14, - 1079, - 53, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vg_ = - [0, - cst_examples_aides_logement_pr, - 1077, - 14, - 1077, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vc_ = - [0, - cst_examples_aides_logement_pr, - 1075, - 14, - 1075, - 70, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _u__ = - [0, - cst_examples_aides_logement_pr, - 1073, - 14, - 1073, - 65, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _u6_ = - [0, - cst_examples_aides_logement_pr, - 1071, - 14, - 1071, - 67, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _u2_ = - [0, - cst_examples_aides_logement_pr, - 1067, - 14, - 1067, - 61, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uY_ = - [0, - cst_examples_aides_logement_pr, - 1065, - 14, - 1065, - 59, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uS_ = - [0, - cst_examples_aides_logement_pr, - 1081, - 14, - 1081, - 50, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uM_ = - [0, - cst_examples_aides_logement_co$0, - 4840, - 14, - 4840, - 43, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uI_ = - [0, - cst_examples_aides_logement_co$0, - 4838, - 14, - 4838, - 64, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uE_ = - [0, - cst_examples_aides_logement_co$0, - 4836, - 14, - 4836, - 59, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uA_ = - [0, - cst_examples_aides_logement_co$0, - 4841, - 14, - 4841, - 55, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uB_ = - [0, - cst_examples_aides_logement_co$0, - 4841, - 14, - 4841, - 55, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uC_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_nombre_parts_condit, 0]], - _uz_ = - [0, - cst_examples_aides_logement_co$0, - 4841, - 14, - 4841, - 55, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uF_ = - [0, - cst_examples_aides_logement_co$0, - 4836, - 14, - 4836, - 59, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uG_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_nombre_parts_nombre, 0]], - _uD_ = - [0, - cst_examples_aides_logement_co$0, - 4836, - 14, - 4836, - 59, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uJ_ = - [0, - cst_examples_aides_logement_co$0, - 4838, - 14, - 4838, - 64, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uK_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_nombre_parts_situat, 0]], - _uH_ = - [0, - cst_examples_aides_logement_co$0, - 4838, - 14, - 4838, - 64, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uN_ = - [0, - cst_examples_aides_logement_co$0, - 4840, - 14, - 4840, - 43, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uO_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_nombre_parts_r_side, 0]], - _uL_ = - [0, - cst_examples_aides_logement_co$0, - 4840, - 14, - 4840, - 43, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uP_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], - _uQ_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], - _uT_ = - [0, - cst_examples_aides_logement_pr, - 1081, - 14, - 1081, - 50, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uU_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_contributions_sociales_dat, 0]], - _uR_ = - [0, - cst_examples_aides_logement_pr, - 1081, - 14, - 1081, - 50, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uV_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], - _uW_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], - _uZ_ = - [0, - cst_examples_aides_logement_pr, - 1065, - 14, - 1065, - 59, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _u0_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_$1, 0]], - _uX_ = - [0, - cst_examples_aides_logement_pr, - 1065, - 14, - 1065, - 59, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _u3_ = - [0, - cst_examples_aides_logement_pr, - 1067, - 14, - 1067, - 61, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _u4_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_$2, 0]], - _u1_ = - [0, - cst_examples_aides_logement_pr, - 1067, - 14, - 1067, - 61, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _u7_ = - [0, - cst_examples_aides_logement_pr, - 1071, - 14, - 1071, - 67, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _u8_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_$3, 0]], - _u5_ = - [0, - cst_examples_aides_logement_pr, - 1071, - 14, - 1071, - 67, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _u$_ = - [0, - cst_examples_aides_logement_pr, - 1073, - 14, - 1073, - 65, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _va_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_$4, 0]], - _u9_ = - [0, - cst_examples_aides_logement_pr, - 1073, - 14, - 1073, - 65, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vd_ = - [0, - cst_examples_aides_logement_pr, - 1075, - 14, - 1075, - 70, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ve_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_$5, 0]], - _vb_ = - [0, - cst_examples_aides_logement_pr, - 1075, - 14, - 1075, - 70, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vh_ = - [0, - cst_examples_aides_logement_pr, - 1077, - 14, - 1077, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vi_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_$6, 0]], - _vf_ = - [0, - cst_examples_aides_logement_pr, - 1077, - 14, - 1077, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vl_ = - [0, - cst_examples_aides_logement_pr, - 1079, - 14, - 1079, - 53, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vm_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_$7, 0]], - _vj_ = - [0, - cst_examples_aides_logement_pr, - 1079, - 14, - 1079, - 53, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vp_ = - [0, - cst_examples_aides_logement_pr, - 1069, - 14, - 1069, - 49, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vq_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_$8, 0]], - _vn_ = - [0, - cst_examples_aides_logement_pr, - 1069, - 14, - 1069, - 49, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vt_ = - [0, - cst_examples_aides_logement_pr, - 1078, - 14, - 1078, - 49, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vu_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_apl_logement_foyer_$9, 0]], - _vr_ = - [0, - cst_examples_aides_logement_pr, - 1078, - 14, - 1078, - 49, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vB_ = - [0, - cst_CalculAllocationLogementFo, - [0, - cst_calcul_apl_logement_foyer, - [0, cst_CalculAidePersonnalis_eLog$1, 0]]], - _vC_ = - [0, - cst_CalculAllocationLogementFo, - [0, - cst_calcul_apl_logement_foyer, - [0, cst_CalculAidePersonnalis_eLog$1, 0]]], - _vU_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vD_ = - [0, - cst_examples_aides_logement_pr, - 1041, - 11, - 1041, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vV_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_multiplicateur_majoration_, 0]], - _vY_ = - [0, - cst_examples_aides_logement_pr, - 1040, - 11, - 1040, - 48, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vW_ = - [0, - cst_examples_aides_logement_pr, - 1040, - 11, - 1040, - 48, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _vZ_ = - [0, - cst_CalculAllocationLogementFo, - [0, "montant_minimal_d\xc3\xa9pense_nette_d842_17", 0]], - _v2_ = - [0, - cst_examples_aides_logement_pr, - 1039, - 11, - 1039, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _v0_ = - [0, - cst_examples_aides_logement_pr, - 1039, - 11, - 1039, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _v3_ = - [0, - cst_CalculAllocationLogementFo, - [0, "montant_forfaitaire_d842_15", 0]], - _v6_ = - [0, - cst_examples_aides_logement_pr, - 1038, - 11, - 1038, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _v4_ = - [0, - cst_examples_aides_logement_pr, - 1038, - 11, - 1038, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _v7_ = - [0, - cst_CalculAllocationLogementFo, - [0, "montant_minimal_aide_d842_15", 0]], - _wv_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _v8_ = - [0, - cst_examples_aides_logement_pr, - 1043, - 12, - 1043, - 29, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ww_ = [0, cst_CalculAllocationLogementFo, [0, cst_quivalence_loyer$0, 0]], - _wz_ = - [0, - cst_examples_aides_logement_pr, - 1082, - 14, - 1082, - 61, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wA_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_quivalence_loyer_mi, 0]], - _wx_ = - [0, - cst_examples_aides_logement_pr, - 1082, - 14, - 1082, - 61, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wD_ = - [0, - cst_examples_aides_logement_co$0, - 4833, - 14, - 4833, - 75, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _wE_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_quivalence_loyer_mi$0, 0]], - _wB_ = - [0, - cst_examples_aides_logement_co$0, - 4833, - 14, - 4833, - 75, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _wH_ = - [0, - cst_examples_aides_logement_co$0, - 4832, - 14, - 4832, - 69, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _wI_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_quivalence_loyer_mi$1, 0]], - _wF_ = - [0, - cst_examples_aides_logement_co$0, - 4832, - 14, - 4832, - 69, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _wL_ = - [0, - cst_examples_aides_logement_co$0, - 4843, - 14, - 4843, - 70, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _wM_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_calcul_quivalence_loyer_mi$2, 0]], - _wJ_ = - [0, - cst_examples_aides_logement_co$0, - 4843, - 14, - 4843, - 70, - [0, - cst_Article_D842_15, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _wN_ = - [0, - cst_CalculAllocationLogementFo, - [0, - cst_calcul_quivalence_loyer_mi$3, - [0, cst_Calcul_quivalenceLoyerMini, 0]]], - _wO_ = - [0, - cst_CalculAllocationLogementFo, - [0, - cst_calcul_quivalence_loyer_mi$3, - [0, cst_Calcul_quivalenceLoyerMini, 0]]], - _wR_ = - [0, - cst_examples_aides_logement_pr, - 1042, - 12, - 1042, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wP_ = - [0, - cst_examples_aides_logement_pr, - 1042, - 12, - 1042, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wS_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_coefficient_prise_en_charg$3, 0]], - _xc_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _wT_ = - [0, - cst_examples_aides_logement_pr, - 1044, - 12, - 1044, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xd_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_montant_forfaitaire_charge$1, 0]], - _xh_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_min, 0]], - _xk_ = - [0, - cst_examples_aides_logement_pr, - 1045, - 12, - 1045, - 25, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xi_ = - [0, - cst_examples_aides_logement_pr, - 1045, - 12, - 1045, - 25, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xl_ = [0, cst_CalculAllocationLogementFo, [0, cst_loyer_minimal$0, 0]], - _xp_ = - [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], - _xs_ = - [0, - cst_examples_aides_logement_pr, - 1055, - 12, - 1055, - 31, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xq_ = - [0, - cst_examples_aides_logement_pr, - 1055, - 12, - 1055, - 31, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _xt_ = - [0, cst_CalculAllocationLogementFo, [0, cst_aide_finale_formule$9, 0]], - _xF_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_abattement_d_pense_nette_m, 0]], - _xR_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_d_p, 0]], - _xZ_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_red, 0]], - _x$_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_con, 0]], - _yh_ = - [0, - cst_CalculAllocationLogementFo, - [0, cst_traitement_aide_finale_mon, 0]], - _yi_ = - [0, - cst_examples_aides_logement_pr, - 1086, - 13, - 1086, - 42, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _yj_ = - [0, - cst_examples_aides_logement_pr, - 1086, - 13, - 1086, - 42, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uv_ = - [0, - cst_examples_aides_logement_co$0, - 4281, - 24, - 4281, - 43, - [0, - cst_Article_D842_4, - [0, - cst_Section_1_Secteur_locatif_, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0$246 = cst_0$359, - _uw_ = - [0, - cst_examples_aides_logement_pr, - 874, - 12, - 874, - 31, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uu_ = - [0, - cst_examples_aides_logement_pr, - 913, - 14, - 913, - 33, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _up_ = - [0, - cst_examples_aides_logement_co$0, - 4289, - 24, - 4289, - 46, - [0, - cst_Article_D842_4, - [0, - cst_Section_1_Secteur_locatif_, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _uq_ = - [0, - cst_examples_aides_logement_pr, - 876, - 12, - 876, - 34, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uo_ = - [0, - cst_examples_aides_logement_pr, - 914, - 14, - 914, - 36, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uk_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_mon, [0, cst_input0, 0]]], - _ul_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_mon, 0]], - _um_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_mon, [0, cst_output, 0]]], - _un_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_mon, 0]], - _ur_ = - [0, - cst_examples_aides_logement_pr, - 876, - 12, - 876, - 34, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uj_ = - [0, - cst_examples_aides_logement_pr, - 876, - 12, - 876, - 34, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ue_ = - [0, - cst_examples_aides_logement_pr, - 910, - 14, - 910, - 42, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ua_ = - [0, - cst_examples_aides_logement_pr, - 908, - 14, - 908, - 55, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _t8_ = - [0, - cst_examples_aides_logement_pr, - 906, - 14, - 906, - 59, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _t4_ = - [0, - cst_examples_aides_logement_pr, - 904, - 14, - 904, - 43, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _t0_ = - [0, - cst_examples_aides_logement_pr, - 902, - 14, - 902, - 42, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tW_ = - [0, - cst_examples_aides_logement_pr, - 898, - 5, - 899, - 63, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tS_ = - [0, - cst_examples_aides_logement_pr, - 895, - 14, - 895, - 53, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tO_ = - [0, - cst_examples_aides_logement_pr, - 893, - 14, - 893, - 37, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tK_ = - [0, - cst_examples_aides_logement_pr, - 891, - 14, - 891, - 63, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tG_ = - [0, - cst_examples_aides_logement_pr, - 889, - 14, - 889, - 58, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tC_ = - [0, - cst_examples_aides_logement_pr, - 887, - 14, - 887, - 46, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ty_ = - [0, - cst_examples_aides_logement_pr, - 884, - 14, - 884, - 78, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tu_ = - [0, - cst_examples_aides_logement_pr, - 882, - 14, - 882, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tq_ = - [0, - cst_examples_aides_logement_pr, - 880, - 14, - 880, - 48, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tr_ = - [0, - cst_examples_aides_logement_pr, - 880, - 14, - 880, - 48, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ts_ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.loyer_principal_base", 0]], - _tp_ = - [0, - cst_examples_aides_logement_pr, - 880, - 14, - 880, - 48, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tv_ = - [0, - cst_examples_aides_logement_pr, - 882, - 14, - 882, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tw_ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.ressources_m\xc3\xa9nage_arrondies", 0]], - _tt_ = - [0, - cst_examples_aides_logement_pr, - 882, - 14, - 882, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tz_ = - [0, - cst_examples_aides_logement_pr, - 884, - 14, - 884, - 78, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tA_ = - [0, - cst_CalculAllocationLogementLo, - [0, - "calcul_apl_locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s", - 0]], - _tx_ = - [0, - cst_examples_aides_logement_pr, - 884, - 14, - 884, - 78, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tD_ = - [0, - cst_examples_aides_logement_pr, - 887, - 14, - 887, - 46, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tE_ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.date_courante", 0]], - _tB_ = - [0, - cst_examples_aides_logement_pr, - 887, - 14, - 887, - 46, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tH_ = - [0, - cst_examples_aides_logement_pr, - 889, - 14, - 889, - 58, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tI_ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.nombre_personnes_\xc3\xa0_charge", 0]], - _tF_ = - [0, - cst_examples_aides_logement_pr, - 889, - 14, - 889, - 58, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tL_ = - [0, - cst_examples_aides_logement_pr, - 891, - 14, - 891, - 63, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tM_ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.situation_familiale_calcul_apl", 0]], - _tJ_ = - [0, - cst_examples_aides_logement_pr, - 891, - 14, - 891, - 63, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tP_ = - [0, - cst_examples_aides_logement_pr, - 893, - 14, - 893, - 37, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tQ_ = - [0, cst_CalculAllocationLogementLo, [0, "calcul_apl_locatif.zone", 0]], - _tN_ = - [0, - cst_examples_aides_logement_pr, - 893, - 14, - 893, - 37, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tT_ = - [0, - cst_examples_aides_logement_pr, - 895, - 14, - 895, - 53, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tU_ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.logement_est_chambre", 0]], - _tR_ = - [0, - cst_examples_aides_logement_pr, - 895, - 14, - 895, - 53, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tX_ = - [0, - cst_examples_aides_logement_pr, - 898, - 5, - 899, - 63, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _tY_ = - [0, - cst_CalculAllocationLogementLo, - [0, - "calcul_apl_locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers", - 0]], - _tV_ = - [0, - cst_examples_aides_logement_pr, - 898, - 5, - 899, - 63, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _t1_ = - [0, - cst_examples_aides_logement_pr, - 902, - 14, - 902, - 42, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _t2_ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.type_aide", 0]], - _tZ_ = - [0, - cst_examples_aides_logement_pr, - 902, - 14, - 902, - 42, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _t5_ = - [0, - cst_examples_aides_logement_pr, - 904, - 14, - 904, - 43, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _t6_ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.colocation", 0]], - _t3_ = - [0, - cst_examples_aides_logement_pr, - 904, - 14, - 904, - 43, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _t9_ = - [0, - cst_examples_aides_logement_pr, - 906, - 14, - 906, - 59, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _t__ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9", 0]], - _t7_ = - [0, - cst_examples_aides_logement_pr, - 906, - 14, - 906, - 59, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ub_ = - [0, - cst_examples_aides_logement_pr, - 908, - 14, - 908, - 55, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uc_ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.logement_meubl\xc3\xa9_d842_2", 0]], - _t$_ = - [0, - cst_examples_aides_logement_pr, - 908, - 14, - 908, - 55, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uf_ = - [0, - cst_examples_aides_logement_pr, - 910, - 14, - 910, - 42, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ug_ = - [0, - cst_CalculAllocationLogementLo, - [0, "calcul_apl_locatif.r\xc3\xa9sidence", 0]], - _ud_ = - [0, - cst_examples_aides_logement_pr, - 910, - 14, - 910, - 42, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uh_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_calcul_apl_locatif, [0, cst_CalculAidePersonnalis_eLog$0, 0]]], - _ui_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_calcul_apl_locatif, [0, cst_CalculAidePersonnalis_eLog$0, 0]]], - _us_ = - [0, - cst_CalculAllocationLogementLo, - [0, cst_traitement_aide_finale$9, 0]], - _ux_ = - [0, - cst_examples_aides_logement_pr, - 874, - 12, - 874, - 31, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ut_ = - [0, - cst_examples_aides_logement_pr, - 874, - 12, - 874, - 31, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _uy_ = - [0, cst_CalculAllocationLogementLo, [0, cst_aide_finale_formule$9, 0]], - _te_ = - [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_input, 0]]], - _tf_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], - _tg_ = - [0, - cst_examples_aides_logement_pr$0, - 69, - 6, - 72, - 44, - [0, - cst_Article_L512_3, - [0, - cst_Chapitre_2_Champ_d_applica, - [0, - cst_Titre_1_Champ_d_applicatio, - [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _th_ = - [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_output, 0]]], - _ti_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], - _tj_ = - [0, - cst_examples_aides_logement_pr$0, - 67, - 5, - 72, - 59, - [0, - cst_Article_L512_3, - [0, - cst_Chapitre_2_Champ_d_applica, - [0, - cst_Titre_1_Champ_d_applicatio, - [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _tk_ = - [0, - cst_examples_aides_logement_pr$1, - 47, - 12, - 47, - 24, - [0, cst_Prologue_prestations_famil, 0]], - _td_ = - [0, - cst_examples_aides_logement_pr$0, - 56, - 5, - 57, - 50, - [0, - cst_Article_L512_3, - [0, - cst_Chapitre_2_Champ_d_applica, - [0, - cst_Titre_1_Champ_d_applicatio, - [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _tl_ = - [0, - cst_examples_aides_logement_pr$1, - 47, - 12, - 47, - 24, - [0, cst_Prologue_prestations_famil, 0]], - _tm_ = - [0, - cst_examples_aides_logement_pr$1, - 47, - 12, - 47, - 24, - [0, cst_Prologue_prestations_famil, 0]], - _tc_ = - [0, - cst_examples_aides_logement_pr$1, - 47, - 12, - 47, - 24, - [0, cst_Prologue_prestations_famil, 0]], - _tn_ = - [0, - cst_examples_aides_logement_pr$1, - 47, - 12, - 47, - 24, - [0, cst_Prologue_prestations_famil, 0]], - _tb_ = - [0, - cst_examples_aides_logement_pr$1, - 47, - 12, - 47, - 24, - [0, cst_Prologue_prestations_famil, 0]], - _s9_ = - [0, - cst_examples_aides_logement_pr$0, - 78, - 5, - 82, - 24, - [0, - cst_Article_L512_3, - [0, - cst_Chapitre_2_Champ_d_applica, - [0, - cst_Titre_1_Champ_d_applicatio, - [0, - cst_Livre_5_Prestations_famili, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _s__ = - [0, - cst_examples_aides_logement_pr$1, - 49, - 12, - 49, - 31, - [0, cst_Prologue_prestations_famil, 0]], - _s8_ = - [0, - cst_examples_aides_logement_pr$1, - 49, - 12, - 49, - 31, - [0, cst_Prologue_prestations_famil, 0]], - _s$_ = - [0, - cst_examples_aides_logement_pr$1, - 49, - 12, - 49, - 31, - [0, cst_Prologue_prestations_famil, 0]], - _s7_ = - [0, - cst_examples_aides_logement_pr$1, - 49, - 12, - 49, - 31, - [0, cst_Prologue_prestations_famil, 0]], - _s3_ = - [0, - cst_examples_aides_logement_pr$2, - 62, - 18, - 62, - 41, - [0, - "Article R755-0-2", - [0, - "Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es", - [0, - "Titre 5 : D\xc3\xa9partements d'outre-mer", - [0, - cst_Livre_7_R_gimes_divers_Dis, - [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_169$0 = cst_169$1, - cst_0_55$0 = cst_0_55$1, - _s4_ = - [0, - cst_examples_aides_logement_pr$1, - 44, - 11, - 44, - 27, - [0, cst_Prologue_prestations_famil, 0]], - _s2_ = - [0, - cst_examples_aides_logement_pr$2, - 31, - 14, - 31, - 30, - [0, - cst_Article_R512_2, - [0, - cst_Chapitre_2_Champ_d_applica$0, - [0, - cst_Titre_1_Champ_d_applicatio, - [0, - cst_Livre_5_Prestations_famili, - [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - cst_169 = cst_169$1, - cst_0_55 = cst_0_55$1, - _sR_ = [5, 0], - _sS_ = [4, 0], - _sT_ = [3, 0], - _sU_ = [2, 0], - _sV_ = [1, 0], - _sW_ = [0, 0], - _sX_ = - [0, - cst_examples_aides_logement_pr$0, - 127, - 5, - 132, - 30, - [0, - "Article L751-1", - [0, - "Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", - [0, - "Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin", - [0, - cst_Livre_7_R_gimes_divers_Dis, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _sY_ = - [0, - cst_examples_aides_logement_pr$1, - 51, - 12, - 51, - 35, - [0, cst_Prologue_prestations_famil, 0]], - _sQ_ = - [0, - cst_examples_aides_logement_pr$1, - 51, - 12, - 51, - 35, - [0, cst_Prologue_prestations_famil, 0]], - _sK_ = - [0, - cst_examples_aides_logement_pr$1, - 56, - 14, - 56, - 28, - [0, cst_Prologue_prestations_famil, 0]], - _sG_ = - [0, - cst_examples_aides_logement_pr$1, - 57, - 14, - 57, - 32, - [0, cst_Prologue_prestations_famil, 0]], - _sB_ = - [0, - cst_examples_aides_logement_pr$2, - 21, - 14, - 21, - 26, - [0, - cst_Article_R512_2, - [0, - cst_Chapitre_2_Champ_d_applica$0, - [0, - cst_Titre_1_Champ_d_applicatio, - [0, - cst_Livre_5_Prestations_famili, - [0, - cst_Partie_r_glementaire_D_cre$0, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _sC_ = - [0, - cst_examples_aides_logement_pr$1, - 46, - 21, - 46, - 33, - [0, cst_Prologue_prestations_famil, 0]], - _sD_ = - [0, - cst_examples_aides_logement_pr$1, - 46, - 21, - 46, - 33, - [0, cst_Prologue_prestations_famil, 0]], - _sA_ = - [0, - cst_examples_aides_logement_pr$1, - 46, - 21, - 46, - 33, - [0, cst_Prologue_prestations_famil, 0]], - _sE_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_ge_l512_3_2$0, 0]], - _sH_ = - [0, - cst_examples_aides_logement_pr$1, - 57, - 14, - 57, - 32, - [0, cst_Prologue_prestations_famil, 0]], - _sI_ = [0, cst_ligibilit_PrestationsFamil, [0, "smic.date_courante", 0]], - _sF_ = - [0, - cst_examples_aides_logement_pr$1, - 57, - 14, - 57, - 32, - [0, cst_Prologue_prestations_famil, 0]], - _sL_ = - [0, - cst_examples_aides_logement_pr$1, - 56, - 14, - 56, - 28, - [0, cst_Prologue_prestations_famil, 0]], - _sM_ = - [0, cst_ligibilit_PrestationsFamil, [0, "smic.r\xc3\xa9sidence", 0]], - _sJ_ = - [0, - cst_examples_aides_logement_pr$1, - 56, - 14, - 56, - 28, - [0, cst_Prologue_prestations_famil, 0]], - _sN_ = - [0, cst_ligibilit_PrestationsFamil, [0, cst_smic, [0, cst_Smic, 0]]], - _sO_ = - [0, cst_ligibilit_PrestationsFamil, [0, cst_smic, [0, cst_Smic, 0]]], - _sZ_ = - [0, - cst_examples_aides_logement_pr$1, - 51, - 12, - 51, - 35, - [0, cst_Prologue_prestations_famil, 0]], - _sP_ = - [0, - cst_examples_aides_logement_pr$1, - 51, - 12, - 51, - 35, - [0, cst_Prologue_prestations_famil, 0]], - _s0_ = - [0, - cst_ligibilit_PrestationsFamil, - [0, cst_r_gime_outre_mer_l751_1$0, 0]], - _s5_ = - [0, - cst_examples_aides_logement_pr$1, - 44, - 11, - 44, - 27, - [0, cst_Prologue_prestations_famil, 0]], - _s1_ = - [0, - cst_examples_aides_logement_pr$1, - 44, - 11, - 44, - 27, - [0, cst_Prologue_prestations_famil, 0]], - _s6_ = [0, cst_ligibilit_PrestationsFamil, [0, "plafond_l512_3_2", 0]], - _ta_ = - [0, cst_ligibilit_PrestationsFamil, [0, cst_conditions_hors_ge$0, 0]], - _to_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], - _sv_ = - [0, - cst_examples_aides_logement_co$0, - 409, - 14, - 409, - 32, - [0, - cst_Article_R822_7, - [0, - cst_Sous_section_2_Principes_d, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_12$3 = cst_12$4, - cst_0$245 = cst_0$359, - _sr_ = - [0, - cst_examples_aides_logement_co$0, - 462, - 14, - 462, - 32, - [0, - "Article R822-8", - [0, - cst_Sous_section_2_Principes_d, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$244 = cst_0$359, - _sm_ = - [0, - cst_examples_aides_logement_co$0, - 854, - 6, - 857, - 35, - [0, - "Article R822-20", - [0, - "Sous-section 3 : Montant forfaitaire de ressources applicable aux \xc3\xa9tudiants", - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$243 = cst_0$359, - _sn_ = - [0, - cst_examples_aides_logement_pr, - 546, - 12, - 546, - 39, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _sl_ = - [0, - cst_examples_aides_logement_co$0, - 124, - 14, - 124, - 41, - [0, - cst_Article_R822_2, - [0, - cst_Sous_section_1_Modalit_s_g, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _sf_ = - [0, - cst_examples_aides_logement_co$0, - 418, - 14, - 418, - 65, - [0, - cst_Article_R822_7, - [0, - cst_Sous_section_2_Principes_d, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _sb_ = - [0, - cst_examples_aides_logement_ar, - 23, - 14, - 23, - 41, - [0, - "Article 4", - [0, - cst_Chapitre_II_Dispositions_a, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_258900 = "258900", - _r9_ = - [0, - cst_examples_aides_logement_ar, - 12, - 14, - 12, - 41, - [0, - "Article 3", - [0, - cst_Chapitre_II_Dispositions_a, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_9500 = "9500", - _r5_ = - [0, - cst_examples_aides_logement_co$0, - 524, - 14, - 524, - 33, - [0, - "Article R822-10", - [0, - cst_Sous_section_2_Principes_d, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$237 = cst_0$359, - cst_0$238 = cst_0$359, - cst_2$33 = cst_2$105, - cst_90100 = "90100", - cst_135000 = "135000", - cst_0$239 = cst_0$359, - cst_0$240 = cst_0$359, - cst_0$241 = cst_0$359, - cst_0$242 = cst_0$359, - _r1_ = - [0, - cst_examples_aides_logement_co$0, - 129, - 14, - 129, - 62, - [0, - cst_Article_R822_2, - [0, - cst_Sous_section_1_Modalit_s_g, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$236 = cst_0$359, - _r2_ = - [0, - cst_examples_aides_logement_pr, - 535, - 11, - 535, - 59, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _r0_ = - [0, - cst_examples_aides_logement_pr, - 535, - 11, - 535, - 59, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _r3_ = - [0, - cst_RessourcesAidesPersonnelle, - [0, "ressources_personnes_vivant_habituellement_foyer", 0]], - _r6_ = - [0, - cst_examples_aides_logement_pr, - 540, - 11, - 540, - 30, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _r4_ = - [0, - cst_examples_aides_logement_pr, - 540, - 11, - 540, - 30, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _r7_ = [0, cst_RessourcesAidesPersonnelle, [0, "abattement_r_822_10", 0]], - _r__ = - [0, - cst_examples_aides_logement_pr, - 539, - 11, - 539, - 38, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _r8_ = - [0, - cst_examples_aides_logement_pr, - 539, - 11, - 539, - 38, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _r$_ = - [0, - cst_RessourcesAidesPersonnelle, - [0, "montant_forfaitaire_r_822_7", 0]], - _sc_ = - [0, - cst_examples_aides_logement_pr, - 537, - 11, - 537, - 38, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _sa_ = - [0, - cst_examples_aides_logement_pr, - 537, - 11, - 537, - 38, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _sd_ = - [0, - cst_RessourcesAidesPersonnelle, - [0, "montant_forfaitaire_r_822_8", 0]], - _sg_ = - [0, - cst_examples_aides_logement_co$0, - 418, - 14, - 418, - 65, - [0, - cst_Article_R822_7, - [0, - cst_Sous_section_2_Principes_d, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _sh_ = - [0, - cst_RessourcesAidesPersonnelle, - [0, cst_base_mensuelle_allocations, 0]], - _se_ = - [0, - cst_examples_aides_logement_co$0, - 418, - 14, - 418, - 65, - [0, - cst_Article_R822_7, - [0, - cst_Sous_section_2_Principes_d, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _si_ = - [0, - cst_RessourcesAidesPersonnelle, - [0, - cst_base_mensuelle_allocations$0, - [0, cst_BaseMensuelleAllocationsFa, 0]]], - _sj_ = - [0, - cst_RessourcesAidesPersonnelle, - [0, - cst_base_mensuelle_allocations$0, - [0, cst_BaseMensuelleAllocationsFa, 0]]], - _so_ = - [0, - cst_examples_aides_logement_pr, - 546, - 12, - 546, - 39, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _sk_ = - [0, - cst_examples_aides_logement_pr, - 546, - 12, - 546, - 39, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _sp_ = - [0, - cst_RessourcesAidesPersonnelle, - [0, cst_ressources_prises_en_compt$0, 0]], - _ss_ = - [0, - cst_examples_aides_logement_pr, - 536, - 11, - 536, - 29, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _sq_ = - [0, - cst_examples_aides_logement_pr, - 536, - 11, - 536, - 29, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _st_ = [0, cst_RessourcesAidesPersonnelle, [0, "abattement_r_822_8", 0]], - _sw_ = - [0, - cst_examples_aides_logement_pr, - 538, - 11, - 538, - 29, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _su_ = - [0, - cst_examples_aides_logement_pr, - 538, - 11, - 538, - 29, - [0, - cst_Prise_en_compte_des_ressou, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _sx_ = [0, cst_RessourcesAidesPersonnelle, [0, "abattement_r_822_7", 0]], - _sy_ = - [0, - cst_examples_aides_logement_co$0, - 142, - 13, - 143, - 74, - [0, - cst_Article_R822_2, - [0, - cst_Sous_section_1_Modalit_s_g, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _sz_ = - [0, - cst_examples_aides_logement_co$0, - 142, - 13, - 143, - 74, - [0, - cst_Article_R822_2, - [0, - cst_Sous_section_1_Modalit_s_g, - [0, - cst_Section_2_Conditions_relat, - [0, - cst_Chapitre_II_Conditions_g_n, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _rV_ = - [0, - cst_examples_aides_logement_co$0, - 3175, - 14, - 3175, - 36, - [0, - cst_Article_D832_10, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _rR_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], - _rS_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_con, 0]], - _rT_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], - _rU_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_con, 0]], - cst_0$235 = cst_0$359, - _rW_ = - [0, - cst_examples_aides_logement_pr, - 795, - 10, - 795, - 25, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rQ_ = - [0, - cst_examples_aides_logement_pr, - 795, - 10, - 795, - 25, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rN_ = - [0, - cst_examples_aides_logement_co$0, - 3082, - 14, - 3082, - 33, - [0, - cst_Article_D832_10, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0$233 = cst_0$359, - cst_0$234 = cst_0$359, - _rJ_ = - [0, - cst_examples_aides_logement_co$0, - 3155, - 14, - 3155, - 36, - [0, - cst_Article_D832_10, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _rB_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_aba, [0, cst_input0, 0]]], - _rC_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_aba, 0]], - _rD_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_aba, [0, cst_output, 0]]], - _rE_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_aba, 0]], - _rF_ = - [0, - cst_ContributionsSocialesAides, - [0, cst_montant$2, [0, cst_input0, 0]]], - _rG_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - _rH_ = - [0, - cst_ContributionsSocialesAides, - [0, cst_montant$2, [0, cst_output, 0]]], - _rI_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - cst_50$1 = cst_50$4, - cst_0$231 = cst_0$359, - cst_0$232 = cst_0$359, - _rK_ = - [0, - cst_examples_aides_logement_pr, - 794, - 10, - 794, - 40, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rA_ = - [0, - cst_examples_aides_logement_pr, - 794, - 10, - 794, - 40, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rx_ = - [0, - cst_examples_aides_logement_co$0, - 3210, - 14, - 3210, - 49, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0_95$3 = cst_0_95$5, - cst_0_95$4 = cst_0_95$5, - _rt_ = - [0, - cst_examples_aides_logement_co$0, - 3102, - 14, - 3102, - 33, - [0, - cst_Article_D832_10, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _rp_ = - [0, - cst_examples_aides_logement_co$0, - 3141, - 14, - 3141, - 36, - [0, - cst_Article_D832_10, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _rh_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], - _ri_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_min, 0]], - _rj_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], - _rk_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_min, 0]], - _rl_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_abattement_d_pense_nette_m$0, [0, cst_input0, 0]]], - _rm_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_abattement_d_pense_nette_m$0, 0]], - _rn_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_abattement_d_pense_nette_m$0, [0, cst_output, 0]]], - _ro_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_abattement_d_pense_nette_m$0, 0]], - cst_0$229 = cst_0$359, - cst_0$230 = cst_0$359, - _rq_ = - [0, - cst_examples_aides_logement_pr, - 793, - 10, - 793, - 20, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rg_ = - [0, - cst_examples_aides_logement_pr, - 793, - 10, - 793, - 20, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rd_ = - [0, - cst_examples_aides_logement_co$0, - 3207, - 14, - 3207, - 49, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_100$10 = cst_100$13, - cst_100$11 = cst_100$13, - cst_0_005$2 = cst_0_005$3, - _q__ = - [0, - cst_examples_aides_logement_co$0, - 3423, - 5, - 3435, - 77, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_12$2 = cst_12$4, - cst_0$228 = cst_0$360, - _q$_ = - [0, - cst_examples_aides_logement_pr, - 756, - 12, - 756, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _q8_ = - [0, - cst_examples_aides_logement_co$0, - 3478, - 5, - 3478, - 75, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _q9_ = - [0, - cst_examples_aides_logement_pr, - 756, - 12, - 756, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _q1_ = - [0, - cst_examples_aides_logement_ar$0, - 2475, - 14, - 2475, - 42, - [0, - cst_Article_24, - [0, - cst_Article_19, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]]], - cst_0_75$10 = cst_0_75$14, - _q2_ = - [0, - cst_examples_aides_logement_pr, - 759, - 10, - 759, - 25, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _q0_ = - [0, - cst_examples_aides_logement_ar$0, - 1394, - 14, - 1394, - 42, - [0, - cst_Article_24, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0_75$9 = cst_0_75$14, - _q3_ = - [0, - cst_examples_aides_logement_pr, - 759, - 10, - 759, - 25, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qZ_ = - [0, - cst_examples_aides_logement_ar, - 2419, - 14, - 2419, - 42, - [0, - cst_Article_24, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0_75$8 = cst_0_75$14, - _q4_ = - [0, - cst_examples_aides_logement_pr, - 759, - 10, - 759, - 25, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qV_ = - [0, - cst_examples_aides_logement_co$0, - 3550, - 14, - 3550, - 55, - [0, - cst_Article_D832_17, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qR_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_d_pense_nette_minimale_d83, [0, cst_input0, 0]]], - _qS_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_d_pense_nette_minimale_d83, 0]], - _qT_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_d_pense_nette_minimale_d83, [0, cst_output, 0]]], - _qU_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_d_pense_nette_minimale_d83, 0]], - cst_0$227 = cst_0$359, - _qW_ = - [0, - cst_examples_aides_logement_pr, - 769, - 11, - 769, - 52, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qQ_ = - [0, - cst_examples_aides_logement_pr, - 769, - 11, - 769, - 52, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qN_ = - [0, - cst_examples_aides_logement_co$0, - 3191, - 14, - 3191, - 49, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0_95$2 = cst_0_95$5, - _qH_ = - [0, - cst_examples_aides_logement_co$0, - 3486, - 14, - 3486, - 70, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qD_ = - [0, - cst_examples_aides_logement_co$0, - 3483, - 14, - 3483, - 69, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qz_ = - [0, - cst_examples_aides_logement_co$0, - 3484, - 14, - 3484, - 75, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qv_ = - [0, - cst_examples_aides_logement_pr, - 799, - 14, - 799, - 61, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qq_ = - [0, - cst_examples_aides_logement_co$0, - 3363, - 5, - 3363, - 44, - [0, - cst_Article_D832_14, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qi_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, [0, cst_input0, 0]]], - _qj_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, 0]], - _qk_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, [0, cst_output, 0]]], - _ql_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, 0]], - _qm_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, [0, cst_input0, 0]]], - _qn_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, 0]], - _qo_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, [0, cst_output, 0]]], - _qp_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, 0]], - _qr_ = - [0, - cst_examples_aides_logement_pr, - 758, - 10, - 758, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qh_ = - [0, - cst_examples_aides_logement_co$0, - 3343, - 14, - 3343, - 42, - [0, - cst_Article_D832_14, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qd_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, [0, cst_input0, 0]]], - _qe_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, 0]], - _qf_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, [0, cst_output, 0]]], - _qg_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, 0]], - _p__ = - [0, - cst_examples_aides_logement_co$0, - 3528, - 5, - 3528, - 40, - [0, - cst_Article_D832_17, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _p$_ = - [0, - cst_examples_aides_logement_pr, - 767, - 11, - 767, - 41, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _p9_ = - [0, - cst_examples_aides_logement_co$0, - 3539, - 14, - 3539, - 44, - [0, - cst_Article_D832_17, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qa_ = - [0, - cst_examples_aides_logement_pr, - 767, - 11, - 767, - 41, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _p8_ = - [0, - cst_examples_aides_logement_pr, - 767, - 11, - 767, - 41, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _p5_ = - [0, - cst_examples_aides_logement_co$0, - 3127, - 14, - 3127, - 36, - [0, - cst_Article_D832_10, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0$225 = cst_0$359, - cst_0$226 = cst_0$359, - _p6_ = - [0, - cst_examples_aides_logement_pr, - 792, - 10, - 792, - 32, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _p4_ = - [0, - cst_examples_aides_logement_pr, - 792, - 10, - 792, - 32, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _p0_ = - [0, - cst_examples_aides_logement_co$0, - 3592, - 5, - 3592, - 28, - [0, - cst_Article_D832_18, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _p1_ = - [0, - cst_examples_aides_logement_pr, - 771, - 11, - 771, - 41, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pZ_ = - [0, - cst_examples_aides_logement_co$0, - 3584, - 14, - 3584, - 44, - [0, - cst_Article_D832_18, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _pV_ = - [0, - cst_examples_aides_logement_co$0, - 3276, - 14, - 3276, - 36, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _pP_ = - [0, - cst_examples_aides_logement_ar, - 827, - 5, - 842, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$224 = cst_0$359, - cst_86900 = "86900", - cst_97100 = "97100", - cst_1$178 = cst_1$254, - cst_10200 = "10200", - cst_107300 = "107300", - _pQ_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pM_ = - [0, - cst_examples_aides_logement_ar, - 1083, - 5, - 1087, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$221 = cst_0$359, - cst_208500$0 = cst_208500$1, - cst_251500$0 = cst_251500$1, - cst_1$175 = cst_1$254, - cst_43000$0 = cst_43000$1, - cst_294500$0 = cst_294500$1, - cst_0$222 = cst_0$359, - cst_186000$0 = cst_186000$1, - cst_223900$0 = cst_223900$1, - cst_1$176 = cst_1$254, - cst_37900$0 = cst_37900$1, - cst_261800$0 = cst_261800$1, - cst_0$223 = cst_0$359, - cst_173600$0 = cst_173600$1, - cst_208200$0 = cst_208200$1, - cst_1$177 = cst_1$254, - cst_34600 = "34600", - cst_242800$0 = cst_242800$3, - _pN_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pK_ = - [0, - cst_examples_aides_logement_ar, - 1116, - 5, - 1120, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$218 = cst_0$359, - cst_167800$0 = cst_167800$1, - cst_202500$1 = cst_202500$2, - cst_1$172 = cst_1$254, - cst_34700$0 = cst_34700$1, - cst_237200$0 = cst_237200$1, - cst_0$219 = cst_0$359, - cst_149600$0 = cst_149600$1, - cst_180100$0 = cst_180100$2, - cst_1$173 = cst_1$254, - cst_30500$2 = cst_30500$3, - cst_210600$0 = cst_210600$1, - cst_0$220 = cst_0$359, - cst_139700$0 = cst_139700$1, - cst_167600$0 = cst_167600$1, - cst_1$174 = cst_1$254, - cst_27900$0 = cst_27900$1, - cst_195500$0 = cst_195500$1, - _pL_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pI_ = - [0, - cst_examples_aides_logement_ar, - 1149, - 5, - 1153, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$215 = cst_0$359, - cst_198100 = "198100", - cst_239000 = "239000", - cst_1$169 = cst_1$254, - cst_40900 = "40900", - cst_279900 = "279900", - cst_0$216 = cst_0$359, - cst_176800 = "176800", - cst_212800 = "212800", - cst_1$170 = cst_1$254, - cst_36000 = "36000", - cst_248800 = "248800", - cst_0$217 = cst_0$359, - cst_165000 = "165000", - cst_197900 = "197900", - cst_1$171 = cst_1$254, - cst_32900 = "32900", - cst_230800 = "230800", - _pJ_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pG_ = - [0, - cst_examples_aides_logement_ar, - 1182, - 5, - 1186, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$212 = cst_0$359, - cst_159500 = "159500", - cst_192500 = cst_192500$1, - cst_1$166 = cst_1$254, - cst_33000 = "33000", - cst_225500 = cst_225500$1, - cst_0$213 = cst_0$359, - cst_142200 = "142200", - cst_171200 = "171200", - cst_1$167 = cst_1$254, - cst_29000 = "29000", - cst_200200 = "200200", - cst_0$214 = cst_0$359, - cst_132800 = "132800", - cst_159300 = "159300", - cst_1$168 = cst_1$254, - cst_26500 = "26500", - cst_185800$0 = cst_185800$1, - _pH_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pE_ = - [0, - cst_examples_aides_logement_ar, - 1215, - 5, - 1219, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$209 = cst_0$359, - cst_200100 = "200100", - cst_141400 = "141400", - cst_1$163 = cst_1$254, - cst_41300 = "41300", - cst_182700 = "182700", - cst_0$210 = cst_0$359, - cst_178600 = "178600", - cst_215000 = "215000", - cst_1$164 = cst_1$254, - cst_36400 = "36400", - cst_251400 = "251400", - cst_0$211 = cst_0$359, - cst_166700 = "166700", - cst_199900 = cst_199900$2, - cst_1$165 = cst_1$254, - cst_33200 = "33200", - cst_233100 = "233100", - _pF_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pC_ = - [0, - cst_examples_aides_logement_ar, - 1248, - 5, - 1252, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$206 = cst_0$359, - cst_161100 = "161100", - cst_194400 = "194400", - cst_1$160 = cst_1$254, - cst_33300 = "33300", - cst_227700 = "227700", - cst_0$207 = cst_0$359, - cst_143600 = "143600", - cst_172900 = "172900", - cst_1$161 = cst_1$254, - cst_29300 = "29300", - cst_202200 = "202200", - cst_0$208 = cst_0$359, - cst_134100 = "134100", - cst_160900 = "160900", - cst_1$162 = cst_1$254, - cst_26800 = "26800", - cst_187700 = "187700", - _pD_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pA_ = - [0, - cst_examples_aides_logement_ar, - 1281, - 5, - 1285, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$203 = cst_0$359, - cst_202500$0 = cst_202500$2, - cst_244300 = "244300", - cst_1$157 = cst_1$254, - cst_41800 = "41800", - cst_286100 = "286100", - cst_0$204 = cst_0$359, - cst_180700 = "180700", - cst_217500 = "217500", - cst_1$158 = cst_1$254, - cst_36800 = "36800", - cst_254300 = "254300", - cst_0$205 = cst_0$359, - cst_168700 = "168700", - cst_202300 = "202300", - cst_1$159 = cst_1$254, - cst_33600 = "33600", - cst_235900 = "235900", - _pB_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _py_ = - [0, - cst_examples_aides_logement_ar, - 1314, - 5, - 1318, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$200 = cst_0$359, - cst_30871 = "30871", - cst_37243 = "37243", - cst_1$154 = cst_1$254, - cst_6372 = "6372", - cst_43615 = "43615", - cst_0$201 = cst_0$359, - cst_27548 = "27548", - cst_33148 = "33148", - cst_1$155 = cst_1$254, - cst_5610 = "5610", - cst_38768 = "38768", - cst_0$202 = cst_0$359, - cst_25718 = "25718", - cst_30840 = "30840", - cst_1$156 = cst_1$254, - cst_5122 = "5122", - cst_35962 = "35962", - _pz_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pw_ = - [0, - cst_examples_aides_logement_ar, - 1347, - 5, - 1351, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$197 = cst_0$359, - cst_163000 = cst_163000$1, - cst_196700 = "196700", - cst_1$151 = cst_1$254, - cst_33700 = "33700", - cst_230400 = "230400", - cst_0$198 = cst_0$359, - cst_145300 = "145300", - cst_175000 = "175000", - cst_1$152 = cst_1$254, - cst_29700 = "29700", - cst_204700 = cst_204700$1, - cst_0$199 = cst_0$359, - cst_135700 = "135700", - cst_162800 = "162800", - cst_1$153 = cst_1$254, - cst_27100 = "27100", - cst_189900 = "189900", - _px_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pu_ = - [0, - cst_examples_aides_logement_ar, - 1380, - 5, - 1384, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$194 = cst_0$359, - cst_24849 = "24849", - cst_29987 = "29987", - cst_1$148 = cst_1$254, - cst_5138 = "5138", - cst_35125 = "35125", - cst_0$195 = cst_0$359, - cst_22151 = "22151", - cst_26679 = "26679", - cst_1$149 = cst_1$254, - cst_4528 = "4528", - cst_31207 = "31207", - cst_0$196 = cst_0$359, - cst_20687 = "20687", - cst_24818 = "24818", - cst_1$150 = cst_1$254, - cst_4131 = "4131", - cst_28949 = "28949", - _pv_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ps_ = - [0, - cst_examples_aides_logement_ar, - 1413, - 5, - 1417, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$191 = cst_0$359, - cst_31241 = "31241", - cst_37689 = "37689", - cst_1$145 = cst_1$254, - cst_6448 = "6448", - cst_44137 = "44137", - cst_0$192 = cst_0$359, - cst_27879 = "27879", - cst_33556 = "33556", - cst_1$146 = cst_1$254, - cst_5677 = "5677", - cst_39233 = "39233", - cst_0$193 = cst_0$359, - cst_26027 = "26027", - cst_31210 = "31210", - cst_1$147 = cst_1$254, - cst_5183 = "5183", - cst_36393 = "36393", - _pt_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pq_ = - [0, - cst_examples_aides_logement_ar, - 1446, - 5, - 1450, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$188 = cst_0$359, - cst_25147 = "25147", - cst_30347 = "30347", - cst_1$142 = cst_1$254, - cst_5200 = "5200", - cst_35547 = "35547", - cst_0$189 = cst_0$359, - cst_22417 = "22417", - cst_26999 = "26999", - cst_1$143 = cst_1$254, - cst_4582 = "4582", - cst_31581 = "31581", - cst_0$190 = cst_0$359, - cst_20935 = "20935", - cst_25116$0 = cst_25116$1, - cst_1$144 = cst_1$254, - cst_4181 = "4181", - cst_29297 = "29297", - _pr_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _po_ = - [0, - cst_examples_aides_logement_ar, - 1479, - 5, - 1483, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$185 = cst_0$359, - cst_31616 = "31616", - cst_38141 = "38141", - cst_1$139 = cst_1$254, - cst_6525 = "6525", - cst_44666 = "44666", - cst_0$186 = cst_0$359, - cst_28214 = "28214", - cst_33959 = "33959", - cst_1$140 = cst_1$254, - cst_5745 = "5745", - cst_39704 = "39704", - cst_0$187 = cst_0$359, - cst_26339 = "26339", - cst_31584 = "31584", - cst_1$141 = cst_1$254, - cst_5245 = "5245", - cst_36829 = "36829", - _pp_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pm_ = - [0, - cst_examples_aides_logement_ar, - 1512, - 5, - 1516, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$182 = cst_0$359, - cst_25449 = "25449", - cst_30711 = "30711", - cst_1$136 = cst_1$254, - cst_5262 = "5262", - cst_35973 = "35973", - cst_0$183 = cst_0$359, - cst_22686 = "22686", - cst_27323 = "27323", - cst_1$137 = cst_1$254, - cst_4637 = "4637", - cst_31960 = "31960", - cst_0$184 = cst_0$359, - cst_21186 = "21186", - cst_25417 = "25417", - cst_1$138 = cst_1$254, - cst_4231 = "4231", - cst_29648 = "29648", - _pn_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pk_ = - [0, - cst_examples_aides_logement_ar, - 1545, - 5, - 1549, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$179 = cst_0$359, - cst_32185 = "32185", - cst_38827 = "38827", - cst_1$133 = cst_1$254, - cst_6642 = "6642", - cst_45469 = "45469", - cst_0$180 = cst_0$359, - cst_28722 = "28722", - cst_34570$0 = cst_34570$1, - cst_1$134 = cst_1$254, - cst_5848 = "5848", - cst_40418 = "40418", - cst_0$181 = cst_0$359, - cst_26813 = "26813", - cst_32152 = "32152", - cst_1$135 = cst_1$254, - cst_5339 = "5339", - cst_37491 = "37491", - _pl_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pi_ = - [0, - cst_examples_aides_logement_ar, - 1578, - 5, - 1582, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$176 = cst_0$359, - cst_25907 = "25907", - cst_31264 = cst_31264$1, - cst_1$130 = cst_1$254, - cst_5357 = "5357", - cst_36621 = "36621", - cst_0$177 = cst_0$359, - cst_23094 = "23094", - cst_27814 = "27814", - cst_1$131 = cst_1$254, - cst_4720 = "4720", - cst_32534 = "32534", - cst_0$178 = cst_0$359, - cst_21567 = "21567", - cst_25874 = "25874", - cst_1$132 = cst_1$254, - cst_4307 = "4307", - cst_30181 = "30181", - _pj_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pg_ = - [0, - cst_examples_aides_logement_ar, - 1611, - 5, - 1615, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$173 = cst_0$359, - cst_33086 = "33086", - cst_39914 = "39914", - cst_1$127 = cst_1$254, - cst_6828 = "6828", - cst_46742 = "46742", - cst_0$174 = cst_0$359, - cst_29526 = "29526", - cst_35538 = "35538", - cst_1$128 = cst_1$254, - cst_6012 = "6012", - cst_41550 = "41550", - cst_0$175 = cst_0$359, - cst_27564 = "27564", - cst_33052 = "33052", - cst_1$129 = cst_1$254, - cst_5488 = "5488", - cst_38541 = "38541", - _ph_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pe_ = - [0, - cst_examples_aides_logement_ar, - 1644, - 5, - 1648, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$170 = cst_0$359, - cst_26632 = "26632", - cst_32139 = "32139", - cst_1$124 = cst_1$254, - cst_5507 = "5507", - cst_37646 = "37646", - cst_0$171 = cst_0$359, - cst_23741 = "23741", - cst_28593 = "28593", - cst_1$125 = cst_1$254, - cst_4852 = "4852", - cst_33445 = "33445", - cst_0$172 = cst_0$359, - cst_22171 = "22171", - cst_36598 = "36598", - cst_1$126 = cst_1$254, - cst_4428 = "4428", - cst_31026 = "31026", - _pf_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pc_ = - [0, - cst_examples_aides_logement_ar, - 1677, - 5, - 1681, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$167 = cst_0$359, - cst_33999 = "33999", - cst_41016 = "41016", - cst_1$121 = cst_1$254, - cst_7016 = "7016", - cst_48032 = "48032", - cst_0$168 = cst_0$359, - cst_30341 = "30341", - cst_36519 = "36519", - cst_1$122 = cst_1$254, - cst_6178 = "6178", - cst_42697 = "42697", - cst_0$169 = cst_0$359, - cst_28325 = "28325", - cst_33964 = "33964", - cst_1$123 = cst_1$254, - cst_5639 = "5639", - cst_39605 = "39605", - _pd_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pa_ = - [0, - cst_examples_aides_logement_ar, - 1710, - 5, - 1714, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$164 = cst_0$359, - cst_27367 = "27367", - cst_33026 = "33026", - cst_1$118 = cst_1$254, - cst_5659 = "5659", - cst_38685 = "38685", - cst_0$165 = cst_0$359, - cst_24396 = "24396", - cst_29382 = "29382", - cst_1$119 = cst_1$254, - cst_4986$0 = cst_4986$1, - cst_34368 = "34368", - cst_0$166 = cst_0$359, - cst_22783 = "22783", - cst_27332 = "27332", - cst_1$120 = cst_1$254, - cst_4550 = "4550", - cst_31882 = "31882", - _pb_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _o__ = - [0, - cst_examples_aides_logement_ar, - 1743, - 5, - 1747, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$161 = cst_0$359, - cst_35002 = "35002", - cst_42226 = "42226", - cst_1$115 = cst_1$254, - cst_7223 = "7223", - cst_49449 = "49449", - cst_0$162 = cst_0$359, - cst_31236 = "31236", - cst_37596 = "37596", - cst_1$116 = cst_1$254, - cst_6360 = "6360", - cst_43957 = "43957", - cst_0$163 = cst_0$359, - cst_29161 = "29161", - cst_34966 = "34966", - cst_1$117 = cst_1$254, - cst_5805 = "5805", - cst_40773 = "40773", - _o$_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _o8_ = - [0, - cst_examples_aides_logement_ar, - 1776, - 5, - 1780, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$158 = cst_0$359, - cst_28174 = "28174", - cst_34000 = "34000", - cst_1$112 = cst_1$254, - cst_5826 = "5826", - cst_39826 = "39826", - cst_0$159 = cst_0$359, - cst_25116 = cst_25116$1, - cst_30249 = "30249", - cst_1$113 = cst_1$254, - cst_5133 = "5133", - cst_35382 = "35382", - cst_0$160 = cst_0$359, - cst_23455 = "23455", - cst_28138 = "28138", - cst_1$114 = cst_1$254, - cst_4684 = "4684", - cst_32823 = "32823", - _o9_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _o6_ = - [0, - cst_examples_aides_logement_ar, - 1809, - 5, - 1813, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$155 = cst_0$359, - cst_35114 = "35114", - cst_42361 = "42361", - cst_1$109 = cst_1$254, - cst_7246 = "7246", - cst_49607 = "49607", - cst_0$156 = cst_0$359, - cst_31336 = "31336", - cst_37716 = "37716", - cst_1$110 = cst_1$254, - cst_6380 = "6380", - cst_44098 = "44098", - cst_0$157 = cst_0$359, - cst_29254 = "29254", - cst_35078 = "35078", - cst_1$111 = cst_1$254, - cst_5824 = "5824", - cst_40903 = "40903", - _o7_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _o4_ = - [0, - cst_examples_aides_logement_ar, - 1842, - 5, - 1846, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$152 = cst_0$359, - cst_28264 = "28264", - cst_34109 = "34109", - cst_1$106 = cst_1$254, - cst_5845 = "5845", - cst_39953 = "39953", - cst_0$153 = cst_0$359, - cst_25196 = "25196", - cst_30346 = "30346", - cst_1$107 = cst_1$254, - cst_5149 = "5149", - cst_35495 = "35495", - cst_0$154 = cst_0$359, - cst_23530 = "23530", - cst_28228 = "28228", - cst_1$108 = cst_1$254, - cst_4699 = "4699", - cst_32928 = "32928", - _o5_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _o2_ = - [0, - cst_examples_aides_logement_ar, - 1875, - 5, - 1879, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$149 = cst_0$359, - cst_35500 = "35500", - cst_42827 = "42827", - cst_1$103 = cst_1$254, - cst_7326 = "7326", - cst_50153 = "50153", - cst_0$150 = cst_0$359, - cst_31681 = "31681", - cst_38131 = "38131", - cst_1$104 = cst_1$254, - cst_6450 = "6450", - cst_44583 = "44583", - cst_0$151 = cst_0$359, - cst_29576 = "29576", - cst_35464 = "35464", - cst_1$105 = cst_1$254, - cst_5888 = "5888", - cst_41353 = "41353", - _o3_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _o0_ = - [0, - cst_examples_aides_logement_ar, - 1908, - 5, - 1912, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$146 = cst_0$359, - cst_28575 = "28575", - cst_34484 = "34484", - cst_1$100 = cst_1$254, - cst_5909 = "5909", - cst_40392 = "40392", - cst_0$147 = cst_0$359, - cst_25473 = "25473", - cst_30680 = "30680", - cst_1$101 = cst_1$254, - cst_5206 = "5206", - cst_35885 = "35885", - cst_0$148 = cst_0$359, - cst_23789 = "23789", - cst_28539 = "28539", - cst_1$102 = cst_1$254, - cst_4751 = "4751", - cst_33290 = "33290", - _o1_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oY_ = - [0, - cst_examples_aides_logement_ar, - 1941, - 5, - 1945, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$143 = cst_0$359, - cst_35855 = "35855", - cst_43255 = "43255", - cst_1$97 = cst_1$254, - cst_7399 = "7399", - cst_50655 = "50655", - cst_0$144 = cst_0$359, - cst_31998 = "31998", - cst_38512 = "38512", - cst_1$98 = cst_1$254, - cst_6515 = "6515", - cst_45029 = "45029", - cst_0$145 = cst_0$359, - cst_29872 = "29872", - cst_35819 = "35819", - cst_1$99 = cst_1$254, - cst_5947 = "5947", - cst_41767 = "41767", - _oZ_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oW_ = - [0, - cst_examples_aides_logement_ar, - 1974, - 5, - 1978, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$140 = cst_0$359, - cst_28861 = "28861", - cst_34829$0 = cst_34829$1, - cst_1$94 = cst_1$254, - cst_5968 = "5968", - cst_40796 = "40796", - cst_0$141 = cst_0$359, - cst_25728 = "25728", - cst_30987 = "30987", - cst_1$95 = cst_1$254, - cst_5258 = "5258", - cst_36244 = "36244", - cst_0$142 = cst_0$359, - cst_24027 = "24027", - cst_28824 = "28824", - cst_1$96 = cst_1$254, - cst_4799 = "4799", - cst_33623 = cst_33623$1, - _oX_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oU_ = - [0, - cst_examples_aides_logement_ar, - 2007, - 5, - 2011, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$137 = cst_0$359, - cst_36626 = "36626", - cst_44185 = "44185", - cst_1$91 = cst_1$254, - cst_7558 = "7558", - cst_51744 = "51744", - cst_0$138 = cst_0$359, - cst_32686 = "32686", - cst_39340 = cst_39340$1, - cst_1$92 = cst_1$254, - cst_6655 = "6655", - cst_45997 = "45997", - cst_0$139 = cst_0$359, - cst_30514 = "30514", - cst_36589 = "36589", - cst_1$93 = cst_1$254, - cst_6075 = "6075", - cst_42665 = "42665", - _oV_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oS_ = - [0, - cst_examples_aides_logement_ar, - 2040, - 5, - 2044, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$134 = cst_0$359, - cst_29482 = "29482", - cst_35578 = "35578", - cst_1$88 = cst_1$254, - cst_6096 = "6096", - cst_41673 = "41673", - cst_0$135 = cst_0$359, - cst_26281 = "26281", - cst_31653 = "31653", - cst_1$89 = cst_1$254, - cst_5371 = "5371", - cst_37023 = "37023", - cst_0$136 = cst_0$359, - cst_24544 = "24544", - cst_29444 = "29444", - cst_1$90 = cst_1$254, - cst_4902 = "4902", - cst_34346 = "34346", - _oT_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oQ_ = - [0, - cst_examples_aides_logement_ar, - 2073, - 5, - 2077, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$131 = cst_0$359, - cst_36835 = "36835", - cst_44437 = "44437", - cst_1$85 = cst_1$254, - cst_7601 = "7601", - cst_52039 = "52039", - cst_0$132 = cst_0$359, - cst_32872 = "32872", - cst_39564 = "39564", - cst_1$86 = cst_1$254, - cst_6693 = "6693", - cst_46259 = "46259", - cst_0$133 = cst_0$359, - cst_30688 = "30688", - cst_36798 = "36798", - cst_1$87 = cst_1$254, - cst_6110 = "6110", - cst_42908 = "42908", - _oR_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oO_ = - [0, - cst_examples_aides_logement_ar, - 2106, - 5, - 2110, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$128 = cst_0$359, - cst_29650 = "29650", - cst_35781 = "35781", - cst_1$82 = cst_1$254, - cst_6131 = "6131", - cst_41911 = "41911", - cst_0$129 = cst_0$359, - cst_26431 = "26431", - cst_31833 = "31833", - cst_1$83 = cst_1$254, - cst_5402 = "5402", - cst_37234 = "37234", - cst_0$130 = cst_0$359, - cst_24684 = "24684", - cst_29612 = "29612", - cst_1$84 = cst_1$254, - cst_4930 = "4930", - cst_34542 = "34542", - _oP_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oM_ = - [0, - cst_examples_aides_logement_ar, - 2139, - 5, - 2143, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$125 = cst_0$359, - cst_36864 = "36864", - cst_44473 = "44473", - cst_1$79 = cst_1$254, - cst_7607 = "7607", - cst_52081 = "52081", - cst_0$126 = cst_0$359, - cst_32898 = "32898", - cst_39596 = "39596", - cst_1$80 = cst_1$254, - cst_6698 = "6698", - cst_46296 = "46296", - cst_0$127 = cst_0$359, - cst_30713 = "30713", - cst_36827 = "36827", - cst_1$81 = cst_1$254, - cst_6115 = "6115", - cst_42942 = "42942", - _oN_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oK_ = - [0, - cst_examples_aides_logement_ar, - 2172, - 5, - 2176, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$122 = cst_0$359, - cst_29674 = "29674", - cst_35810 = "35810", - cst_1$76 = cst_1$254, - cst_6136 = "6136", - cst_41945 = "41945", - cst_0$123 = cst_0$359, - cst_26452 = "26452", - cst_31858 = "31858", - cst_1$77 = cst_1$254, - cst_5406 = "5406", - cst_37264 = "37264", - cst_0$124 = cst_0$359, - cst_24704 = "24704", - cst_29636 = "29636", - cst_1$78 = cst_1$254, - cst_4934 = "4934", - cst_34570 = cst_34570$1, - _oL_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oI_ = - [0, - cst_examples_aides_logement_ar, - 2205, - 5, - 2209, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$119 = cst_0$359, - cst_37140 = "37140", - cst_44807 = "44807", - cst_1$73 = cst_1$254, - cst_7664 = "7664", - cst_52472 = "52472", - cst_0$120 = cst_0$359, - cst_33145 = "33145", - cst_39893 = "39893", - cst_1$74 = cst_1$254, - cst_6748 = "6748", - cst_46643 = "46643", - cst_0$121 = cst_0$359, - cst_30943 = "30943", - cst_37103 = "37103", - cst_1$75 = cst_1$254, - cst_6161 = "6161", - cst_43264 = "43264", - _oJ_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oG_ = - [0, - cst_examples_aides_logement_ar, - 2238, - 5, - 2242, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$116 = cst_0$359, - cst_29897 = "29897", - cst_36079 = "36079", - cst_1$70 = cst_1$254, - cst_6182 = "6182", - cst_42260 = "42260", - cst_0$117 = cst_0$359, - cst_26650 = "26650", - cst_32097 = "32097", - cst_1$71 = cst_1$254, - cst_5447 = "5447", - cst_37543 = "37543", - cst_0$118 = cst_0$359, - cst_24889 = "24889", - cst_29858 = "29858", - cst_1$72 = cst_1$254, - cst_4971 = "4971", - cst_34829 = cst_34829$1, - _oH_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oE_ = - [0, - cst_examples_aides_logement_ar, - 2271, - 5, - 2274, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$113 = cst_0$359, - cst_37252 = "37252", - cst_44941 = "44941", - cst_1$67 = cst_1$254, - cst_7687 = "7687", - cst_52629 = "52629", - cst_0$114 = cst_0$359, - cst_33244 = "33244", - cst_40013 = "40013", - cst_1$68 = cst_1$254, - cst_6768 = "6768", - cst_46783 = "46783", - cst_0$115 = cst_0$359, - cst_31036 = "31036", - cst_37215 = "37215", - cst_1$69 = cst_1$254, - cst_6179 = "6179", - cst_43394 = "43394", - _oF_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oC_ = - [0, - cst_examples_aides_logement_ar, - 2303, - 5, - 2306, - 36, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], - cst_0$110 = cst_0$359, - cst_29986 = "29986", - cst_36187 = "36187", - cst_1$64 = cst_1$254, - cst_6201 = "6201", - cst_42386 = "42386", - cst_0$111 = cst_0$359, - cst_26730 = "26730", - cst_32193 = "32193", - cst_1$65 = cst_1$254, - cst_5463 = "5463", - cst_37656 = "37656", - cst_0$112 = cst_0$359, - cst_24964 = "24964", - cst_29948 = "29948", - cst_1$66 = cst_1$254, - cst_4986 = cst_4986$1, - cst_34934 = "34934", - _oD_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pO_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pR_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oz_ = - [0, - cst_examples_aides_logement_ar, - 635, - 5, - 638, - 33, - [0, - cst_Article_17, - [0, - cst_Chapitre_IV_Calcul_de_l_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$107 = cst_0$359, - cst_208500 = cst_208500$1, - cst_251500 = cst_251500$1, - cst_1$61 = cst_1$254, - cst_43000 = cst_43000$1, - cst_294500 = cst_294500$1, - cst_0$108 = cst_0$359, - cst_186000 = cst_186000$1, - cst_223900 = cst_223900$1, - cst_1$62 = cst_1$254, - cst_37900 = cst_37900$1, - cst_261800 = cst_261800$1, - cst_0$109 = cst_0$359, - cst_173600 = cst_173600$1, - cst_208200 = cst_208200$1, - cst_1$63 = cst_1$254, - cst_35600 = "35600", - cst_242800 = cst_242800$3, - _oA_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ox_ = - [0, - cst_examples_aides_logement_ar, - 680, - 5, - 683, - 33, - [0, - cst_Article_17, - [0, - cst_Chapitre_IV_Calcul_de_l_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$104 = cst_0$359, - cst_167800 = cst_167800$1, - cst_202500 = cst_202500$2, - cst_1$58 = cst_1$254, - cst_34700 = cst_34700$1, - cst_237200 = cst_237200$1, - cst_0$105 = cst_0$359, - cst_149600 = cst_149600$1, - cst_180100 = cst_180100$2, - cst_1$59 = cst_1$254, - cst_30500$1 = cst_30500$3, - cst_210600 = cst_210600$1, - cst_0$106 = cst_0$359, - cst_139700 = cst_139700$1, - cst_167600 = cst_167600$1, - cst_1$60 = cst_1$254, - cst_27900 = cst_27900$1, - cst_195500 = cst_195500$1, - _oy_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ov_ = - [0, - cst_examples_aides_logement_ar, - 726, - 5, - 728, - 33, - [0, - cst_Article_17, - [0, - cst_Chapitre_IV_Calcul_de_l_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$101 = cst_0$359, - cst_184000 = cst_184000$2, - cst_220000 = "220000", - cst_1$55 = cst_1$254, - cst_38000 = "38000", - cst_260000 = "260000", - cst_0$102 = cst_0$359, - cst_164200 = "164200", - cst_197700 = cst_197700$1, - cst_1$56 = cst_1$254, - cst_33500 = cst_33500$1, - cst_231200 = "231200", - cst_0$103 = cst_0$359, - cst_153200 = "153200", - cst_183700 = "183700", - cst_1$57 = cst_1$254, - cst_30500$0 = cst_30500$3, - cst_214200 = "214200", - _ow_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ot_ = - [0, - cst_examples_aides_logement_ar, - 770, - 5, - 772, - 33, - [0, - cst_Article_17, - [0, - cst_Chapitre_IV_Calcul_de_l_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$98 = cst_0$359, - cst_148100 = "148100", - cst_178700 = "178700", - cst_1$52 = cst_1$254, - cst_30600 = "30600", - cst_209300 = "209300", - cst_0$99 = cst_0$359, - cst_132000 = cst_132000$1, - cst_158900 = "158900", - cst_1$53 = cst_1$254, - cst_26900 = "26900", - cst_185800 = cst_185800$1, - cst_0$100 = cst_0$359, - cst_123300 = "123300", - cst_147900 = "147900", - cst_1$54 = cst_1$254, - cst_24600 = "24600", - cst_172500 = cst_172500$1, - _ou_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oB_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _os_ = - [0, - cst_examples_aides_logement_pr, - 760, - 55, - 760, - 61, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pS_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _or_ = - [0, - cst_examples_aides_logement_pr, - 760, - 11, - 760, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _om_ = - [0, - cst_examples_aides_logement_ar, - 2438, - 7, - 2438, - 18, - [0, - cst_Article_24, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1272$2 = cst_1272$6, - cst_2805$0 = cst_2805$2, - cst_5612$2 = cst_5612$8, - _on_ = - [0, - cst_examples_aides_logement_pr, - 772, - 11, - 772, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ok_ = - [0, - cst_examples_aides_logement_ar$0, - 1414, - 7, - 1414, - 18, - [0, - cst_Article_24, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1229$2 = cst_1229$6, - cst_2710$0 = cst_2710$2, - cst_5422$2 = cst_5422$8, - _ol_ = - [0, - cst_examples_aides_logement_pr, - 772, - 11, - 772, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oi_ = - [0, - cst_examples_aides_logement_ar$0, - 2495, - 7, - 2495, - 18, - [0, - cst_Article_24, - [0, - cst_Article_19, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]]], - cst_1224$2 = cst_1224$6, - cst_2699$0 = cst_2699$2, - cst_5399$2 = cst_5399$8, - _oj_ = - [0, - cst_examples_aides_logement_pr, - 772, - 11, - 772, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oo_ = - [0, - cst_examples_aides_logement_pr, - 772, - 11, - 772, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _of_ = - [0, - cst_examples_aides_logement_ar, - 2355, - 29, - 2355, - 64, - [0, - cst_Article_19, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1272$1 = cst_1272$6, - cst_5612$1 = cst_5612$8, - _og_ = - [0, - cst_examples_aides_logement_pr, - 772, - 11, - 772, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _od_ = - [0, - cst_examples_aides_logement_ar$0, - 1380, - 29, - 1380, - 64, - [0, - cst_Article_19, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1229$1 = cst_1229$6, - cst_5422$1 = cst_5422$8, - _oe_ = - [0, - cst_examples_aides_logement_pr, - 772, - 11, - 772, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ob_ = - [0, - cst_examples_aides_logement_ar$0, - 2461, - 29, - 2461, - 64, - [0, - cst_Article_19, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1224$1 = cst_1224$6, - cst_5399$1 = cst_5399$8, - _oc_ = - [0, - cst_examples_aides_logement_pr, - 772, - 11, - 772, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oh_ = - [0, - cst_examples_aides_logement_pr, - 772, - 11, - 772, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _n9_ = - [0, - cst_examples_aides_logement_ar, - 2367, - 14, - 2367, - 41, - [0, - "Article 20", - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_500$1 = cst_500$4, - _n5_ = - [0, - cst_examples_aides_logement_ar, - 2379, - 14, - 2379, - 42, - [0, - "Article 21", - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1000$2 = cst_1000$5, - _n1_ = - [0, - cst_examples_aides_logement_ar, - 2466, - 14, - 2466, - 50, - [0, - "Article 25", - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0_0226 = cst_0_0226$1, - cst_0_0234 = cst_0_0234$2, - cst_0_0172 = "0.0172", - cst_0_0226$0 = cst_0_0226$1, - cst_0_0234$0 = cst_0_0234$2, - _nX_ = - [0, - cst_examples_aides_logement_ar, - 2389, - 14, - 2389, - 48, - [0, - "Article 22", - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_2211133 = "2211133", - _nT_ = - [0, - cst_examples_aides_logement_ar, - 2485, - 14, - 2485, - 48, - [0, - "Article 26", - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_16_25 = cst_16_25$1, - _nP_ = - [0, - cst_examples_aides_logement_ar, - 2405, - 14, - 2405, - 47, - [0, - cst_Article_23, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_560085 = "560085", - _nL_ = - [0, - cst_examples_aides_logement_ar, - 2406, - 14, - 2406, - 47, - [0, - cst_Article_23, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0_208$0 = cst_0_208$1, - _nH_ = - [0, - cst_examples_aides_logement_ar, - 2407, - 14, - 2407, - 47, - [0, - cst_Article_23, - [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0_416 = "0.416", - _nB_ = - [0, - cst_examples_aides_logement_pr, - 798, - 14, - 798, - 50, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nv_ = - [0, - cst_examples_aides_logement_co$0, - 3280, - 14, - 3280, - 64, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _nr_ = - [0, - cst_examples_aides_logement_co$0, - 3278, - 14, - 3278, - 59, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _nn_ = - [0, - cst_examples_aides_logement_au, - 327, - 14, - 327, - 36, - [0, cst_Article_premier, [0, cst_R_glement_CE_n_2866_98_du_, 0]]], - cst_6_55957 = cst_6_55957$1, - cst_1$51 = cst_1$255, - _no_ = - [0, - cst_examples_aides_logement_pr, - 781, - 11, - 781, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nm_ = - [0, - cst_examples_aides_logement_pr, - 781, - 11, - 781, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _np_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_taux_francs_vers_euros, 0]], - _ns_ = - [0, - cst_examples_aides_logement_co$0, - 3278, - 14, - 3278, - 59, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _nt_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_nombre_parts_nombre, 0]], - _nq_ = - [0, - cst_examples_aides_logement_co$0, - 3278, - 14, - 3278, - 59, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _nw_ = - [0, - cst_examples_aides_logement_co$0, - 3280, - 14, - 3280, - 64, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _nx_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_nombre_parts_situat, 0]], - _nu_ = - [0, - cst_examples_aides_logement_co$0, - 3280, - 14, - 3280, - 64, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _ny_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], - _nz_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], - _nC_ = - [0, - cst_examples_aides_logement_pr, - 798, - 14, - 798, - 50, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nD_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_contributions_sociales_dat, 0]], - _nA_ = - [0, - cst_examples_aides_logement_pr, - 798, - 14, - 798, - 50, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nE_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], - _nF_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], - _nI_ = - [0, - cst_examples_aides_logement_pr, - 780, - 11, - 780, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nG_ = - [0, - cst_examples_aides_logement_pr, - 780, - 11, - 780, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nJ_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "taux_tranche_sup\xc3\xa9rieure_d832_15_1", 0]], - _nM_ = - [0, - cst_examples_aides_logement_pr, - 779, - 11, - 779, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nK_ = - [0, - cst_examples_aides_logement_pr, - 779, - 11, - 779, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nN_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "taux_tranche_inf\xc3\xa9rieure_d832_15_1", 0]], - _nQ_ = - [0, - cst_examples_aides_logement_pr, - 778, - 11, - 778, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nO_ = - [0, - cst_examples_aides_logement_pr, - 778, - 11, - 778, - 44, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nR_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "montant_limite_tranches_d832_15_1", 0]], - _nU_ = - [0, - cst_examples_aides_logement_pr, - 777, - 11, - 777, - 45, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nS_ = - [0, - cst_examples_aides_logement_pr, - 777, - 11, - 777, - 45, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nV_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "coefficient_multiplicateur_d832_18", 0]], - _nY_ = - [0, - cst_examples_aides_logement_pr, - 776, - 11, - 776, - 45, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nW_ = - [0, - cst_examples_aides_logement_pr, - 776, - 11, - 776, - 45, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nZ_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "coefficient_multiplicateur_d832_11", 0]], - _n2_ = - [0, - cst_examples_aides_logement_pr, - 775, - 11, - 775, - 47, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _n0_ = - [0, - cst_examples_aides_logement_pr, - 775, - 11, - 775, - 47, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _n3_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "coefficient_multiplicateur_d832_17_3", 0]], - _n6_ = - [0, - cst_examples_aides_logement_pr, - 774, - 11, - 774, - 39, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _n4_ = - [0, - cst_examples_aides_logement_pr, - 774, - 11, - 774, - 39, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _n7_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "montant_minimal_aide_d832_10", 0]], - _n__ = - [0, - cst_examples_aides_logement_pr, - 773, - 11, - 773, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _n8_ = - [0, - cst_examples_aides_logement_pr, - 773, - 11, - 773, - 38, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _n$_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "montant_forfaitaire_d832_10", 0]], - _op_ = - [0, - cst_examples_aides_logement_pr, - 772, - 11, - 772, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oa_ = - [0, - cst_examples_aides_logement_pr, - 772, - 11, - 772, - 46, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _oq_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "montant_forfaitaire_charges_d832_10", 0]], - _pT_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_plafond_mensualit_d$2, 0]], - _pW_ = - [0, - cst_examples_aides_logement_pr, - 762, - 11, - 762, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pU_ = - [0, - cst_examples_aides_logement_pr, - 762, - 11, - 762, - 33, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pX_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_n_nombre_parts_d832_11$0, 0]], - _p2_ = - [0, - cst_examples_aides_logement_pr, - 771, - 11, - 771, - 41, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _pY_ = - [0, - cst_examples_aides_logement_pr, - 771, - 11, - 771, - 41, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _p3_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "ressources_m\xc3\xa9nage_avec_d832_18", 0]], - _p7_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_min, 0]], - _qb_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_d_pense_nette_minimale_d83, 0]], - _qs_ = - [0, - cst_examples_aides_logement_pr, - 758, - 10, - 758, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qc_ = - [0, - cst_examples_aides_logement_pr, - 758, - 10, - 758, - 14, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qt_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "plafond_mensualit\xc3\xa9_d832_10_3_base", 0]], - _qw_ = - [0, - cst_examples_aides_logement_pr, - 799, - 14, - 799, - 61, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qx_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_quivalence_loyer_mi, 0]], - _qu_ = - [0, - cst_examples_aides_logement_pr, - 799, - 14, - 799, - 61, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qA_ = - [0, - cst_examples_aides_logement_co$0, - 3484, - 14, - 3484, - 75, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qB_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_quivalence_loyer_mi$0, 0]], - _qy_ = - [0, - cst_examples_aides_logement_co$0, - 3484, - 14, - 3484, - 75, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qE_ = - [0, - cst_examples_aides_logement_co$0, - 3483, - 14, - 3483, - 69, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qF_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_quivalence_loyer_mi$1, 0]], - _qC_ = - [0, - cst_examples_aides_logement_co$0, - 3483, - 14, - 3483, - 69, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qI_ = - [0, - cst_examples_aides_logement_co$0, - 3486, - 14, - 3486, - 70, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qJ_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_calcul_quivalence_loyer_mi$2, 0]], - _qG_ = - [0, - cst_examples_aides_logement_co$0, - 3486, - 14, - 3486, - 70, - [0, - cst_Article_D832_15, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _qK_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, - cst_calcul_quivalence_loyer_mi$3, - [0, cst_Calcul_quivalenceLoyerMini, 0]]], - _qL_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, - cst_calcul_quivalence_loyer_mi$3, - [0, cst_Calcul_quivalenceLoyerMini, 0]]], - _qO_ = - [0, - cst_examples_aides_logement_pr, - 764, - 10, - 764, - 17, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qM_ = - [0, - cst_examples_aides_logement_pr, - 764, - 10, - 764, - 17, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qP_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "coefficient_prise_en_charge_d832_10_formule", 0]], - _qX_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_abattement_d_pense_nette_m$0, 0]], - _q5_ = - [0, - cst_examples_aides_logement_pr, - 759, - 10, - 759, - 25, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _qY_ = - [0, - cst_examples_aides_logement_pr, - 759, - 10, - 759, - 25, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _q6_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "plafond_mensualit\xc3\xa9_d832_10_3_copropri\xc3\xa9taires", 0]], - _ra_ = - [0, - cst_examples_aides_logement_pr, - 756, - 12, - 756, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _q7_ = - [0, - cst_examples_aides_logement_pr, - 756, - 12, - 756, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rb_ = - [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_mensualit_minimale$1, 0]], - _re_ = - [0, - cst_examples_aides_logement_pr, - 765, - 10, - 765, - 23, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rc_ = - [0, - cst_examples_aides_logement_pr, - 765, - 10, - 765, - 23, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rf_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "coefficient_prise_en_charge_d832_10_coeff_arrondi", 0]], - _rr_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_aba, 0]], - _ru_ = - [0, - cst_examples_aides_logement_pr, - 755, - 12, - 755, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rs_ = - [0, - cst_examples_aides_logement_pr, - 755, - 12, - 755, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rv_ = - [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_mensualit_ligible$1, 0]], - _ry_ = - [0, - cst_examples_aides_logement_pr, - 766, - 10, - 766, - 15, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rw_ = - [0, - cst_examples_aides_logement_pr, - 766, - 10, - 766, - 15, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rz_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, "coefficient_prise_en_charge_d832_10_seuil", 0]], - _rL_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_con, 0]], - _rO_ = - [0, - cst_examples_aides_logement_pr, - 789, - 12, - 789, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rM_ = - [0, - cst_examples_aides_logement_pr, - 789, - 12, - 789, - 31, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rP_ = - [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_aide_finale_formule$9, 0]], - _rX_ = - [0, - cst_CalculAidePersonnalis_eLog$2, - [0, cst_traitement_aide_finale_mon, 0]], - _rY_ = - [0, - cst_examples_aides_logement_pr, - 803, - 13, - 803, - 42, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _rZ_ = - [0, - cst_examples_aides_logement_pr, - 803, - 13, - 803, - 42, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nh_ = - [0, - cst_examples_aides_logement_co$0, - 3829, - 14, - 3829, - 36, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _nd_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], - _ne_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_con, 0]], - _nf_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], - _ng_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_con, 0]], - cst_0$97 = cst_0$359, - _ni_ = - [0, - cst_examples_aides_logement_pr, - 717, - 10, - 717, - 25, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nc_ = - [0, - cst_examples_aides_logement_pr, - 717, - 10, - 717, - 25, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _m$_ = - [0, - cst_examples_aides_logement_co$0, - 3733, - 14, - 3733, - 33, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$95 = cst_0$359, - cst_0$96 = cst_0$359, - _m7_ = - [0, - cst_examples_aides_logement_co$0, - 3808, - 14, - 3808, - 36, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _mZ_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_aba, [0, cst_input0, 0]]], - _m0_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_aba, 0]], - _m1_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_aba, [0, cst_output, 0]]], - _m2_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_aba, 0]], - _m3_ = - [0, - cst_ContributionsSocialesAides, - [0, cst_montant$2, [0, cst_input0, 0]]], - _m4_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - _m5_ = - [0, - cst_ContributionsSocialesAides, - [0, cst_montant$2, [0, cst_output, 0]]], - _m6_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - cst_50$0 = cst_50$4, - cst_0$93 = cst_0$359, - cst_0$94 = cst_0$359, - _m8_ = - [0, - cst_examples_aides_logement_pr, - 716, - 10, - 716, - 40, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mY_ = - [0, - cst_examples_aides_logement_pr, - 716, - 10, - 716, - 40, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mU_ = - [0, - cst_examples_aides_logement_co$0, - 3980, - 5, - 3980, - 26, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0_9$1 = cst_0_9$3, - cst_0_9$2 = cst_0_9$3, - _mV_ = - [0, - cst_examples_aides_logement_pr, - 709, - 10, - 709, - 15, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mT_ = - [0, - cst_examples_aides_logement_co$0, - 3886, - 14, - 3886, - 49, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0_95$0 = cst_0_95$5, - cst_0_95$1 = cst_0_95$5, - _mP_ = - [0, - cst_examples_aides_logement_co$0, - 3794, - 14, - 3794, - 36, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _mH_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], - _mI_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_min, 0]], - _mJ_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], - _mK_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_min, 0]], - _mL_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_abattement_d_pense_nette_m$1, [0, cst_input0, 0]]], - _mM_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_abattement_d_pense_nette_m$1, 0]], - _mN_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_abattement_d_pense_nette_m$1, [0, cst_output, 0]]], - _mO_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_abattement_d_pense_nette_m$1, 0]], - cst_0$91 = cst_0$359, - cst_0$92 = cst_0$359, - _mQ_ = - [0, - cst_examples_aides_logement_pr, - 715, - 10, - 715, - 20, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mG_ = - [0, - cst_examples_aides_logement_pr, - 715, - 10, - 715, - 20, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mC_ = - [0, - cst_examples_aides_logement_co$0, - 3974, - 5, - 3974, - 26, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_100$8 = cst_100$13, - cst_100$9 = cst_100$13, - cst_0_005$1 = cst_0_005$3, - _mD_ = - [0, - cst_examples_aides_logement_pr, - 708, - 10, - 708, - 23, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mB_ = - [0, - cst_examples_aides_logement_co$0, - 3883, - 14, - 3883, - 49, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_100$6 = cst_100$13, - cst_100$7 = cst_100$13, - cst_0_005$0 = cst_0_005$3, - _mx_ = - [0, - cst_examples_aides_logement_co$0, - 3766, - 14, - 3766, - 40, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _mt_ = - [0, - cst_examples_aides_logement_co$0, - 4149, - 14, - 4149, - 55, - [0, - cst_Article_D832_27, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _mp_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_d_pense_nette_minimale_d83$0, [0, cst_input0, 0]]], - _mq_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_d_pense_nette_minimale_d83$0, 0]], - _mr_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_d_pense_nette_minimale_d83$0, [0, cst_output, 0]]], - _ms_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_d_pense_nette_minimale_d83$0, 0]], - cst_0$90 = cst_0$359, - _mu_ = - [0, - cst_examples_aides_logement_pr, - 691, - 11, - 691, - 52, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mo_ = - [0, - cst_examples_aides_logement_pr, - 691, - 11, - 691, - 52, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mk_ = - [0, - cst_examples_aides_logement_co$0, - 3957, - 5, - 3957, - 26, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0_9$0 = cst_0_9$3, - _ml_ = - [0, - cst_examples_aides_logement_pr, - 707, - 10, - 707, - 17, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mj_ = - [0, - cst_examples_aides_logement_co$0, - 3862, - 14, - 3862, - 49, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$88 = cst_0$359, - cst_0$89 = cst_0$359, - cst_0_95 = cst_0_95$5, - _md_ = - [0, - cst_examples_aides_logement_co$0, - 3772, - 14, - 3772, - 70, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _l$_ = - [0, - cst_examples_aides_logement_co$0, - 3768, - 14, - 3768, - 69, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _l7_ = - [0, - cst_examples_aides_logement_co$0, - 3770, - 14, - 3770, - 75, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _l3_ = - [0, - cst_examples_aides_logement_pr, - 721, - 14, - 721, - 61, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lZ_ = - [0, - cst_examples_aides_logement_co$0, - 4145, - 14, - 4145, - 44, - [0, - cst_Article_D832_27, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _l0_ = - [0, - cst_examples_aides_logement_pr, - 693, - 11, - 693, - 41, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lY_ = - [0, - cst_examples_aides_logement_pr, - 693, - 11, - 693, - 41, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lU_ = - [0, - cst_examples_aides_logement_co$0, - 3944, - 14, - 3944, - 36, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lV_ = - [0, - cst_examples_aides_logement_pr, - 688, - 21, - 688, - 43, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lQ_ = - [0, - cst_examples_aides_logement_co$0, - 3754, - 14, - 3754, - 40, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lM_ = - [0, - cst_examples_aides_logement_co$0, - 3780, - 14, - 3780, - 36, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$86 = cst_0$359, - cst_0$87 = cst_0$359, - _lN_ = - [0, - cst_examples_aides_logement_pr, - 714, - 10, - 714, - 32, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lL_ = - [0, - cst_examples_aides_logement_pr, - 714, - 10, - 714, - 32, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lI_ = - [0, - cst_examples_aides_logement_ar, - 2607, - 14, - 2607, - 48, - [0, - cst_Article_30, - [0, - cst_Chapitre_V_Calcul_de_l_aid, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_2142091 = "2142091", - cst_1339340 = "1339340", - _lE_ = - [0, - cst_examples_aides_logement_ar, - 2754, - 14, - 2754, - 41, - [0, - "Article 32", - [0, - cst_Chapitre_V_Calcul_de_l_aid, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1500 = cst_1500$2, - cst_2668 = "2668", - _ly_ = - [0, - cst_examples_aides_logement_co$0, - 5545, - 5, - 5545, - 45, - [0, - cst_Article_D861_8, - [0, - cst_Section_2_Allocations_de_l, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _lz_ = - [0, - cst_examples_aides_logement_co$0, - 5543, - 5, - 5543, - 65, - [0, - cst_Article_D861_8, - [0, - cst_Section_2_Allocations_de_l, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - _lA_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, - "calcul_nombre_parts.limitation_majoration_personnes_\xc3\xa0_charge", - 0]], - _lv_ = - [0, - cst_examples_aides_logement_co$0, - 3943, - 14, - 3943, - 43, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lr_ = - [0, - cst_examples_aides_logement_co$0, - 3939, - 14, - 3939, - 64, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _ln_ = - [0, - cst_examples_aides_logement_co$0, - 3937, - 14, - 3937, - 59, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lj_ = - [0, - cst_examples_aides_logement_co$0, - 3941, - 14, - 3941, - 55, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lf_ = - [0, - cst_examples_aides_logement_ar, - 2596, - 14, - 2596, - 35, - [0, - cst_Article_30, - [0, - cst_Chapitre_V_Calcul_de_l_aid, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_121726 = "121726", - _la_ = - [0, - cst_examples_aides_logement_ar, - 2514, - 14, - 2514, - 48, - [0, - cst_Article_27, - [0, - cst_Chapitre_V_Calcul_de_l_aid, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$83 = cst_0$359, - cst_46192 = "46192", - cst_54152 = "54152", - cst_1$48 = cst_1$254, - cst_57741 = "57741", - cst_2$30 = cst_2$105, - cst_61794 = "61794", - cst_3$29 = cst_3$101, - cst_65862 = "65862", - cst_4$29 = cst_4$98, - cst_7368 = "7368", - cst_71039 = "71039", - cst_0$84 = cst_0$359, - cst_42242 = "42242", - cst_49299 = "49299", - cst_1$49 = cst_1$254, - cst_52565 = "52565", - cst_2$31 = cst_2$105, - cst_56268 = "56268", - cst_3$30 = cst_3$101, - cst_59957 = "59957", - cst_4$30 = cst_4$98, - cst_6659 = "6659", - cst_63887 = "63887", - cst_0$85 = cst_0$359, - cst_40096 = "40096", - cst_46634 = "46634", - cst_1$50 = cst_1$254, - cst_49475 = "49475", - cst_2$32 = cst_2$105, - cst_52740 = "52740", - cst_3$31 = cst_3$101, - cst_56004 = "56004", - cst_4$31 = cst_4$98, - cst_6180 = "6180", - cst_59675 = "59675", - _lb_ = - [0, - cst_examples_aides_logement_pr, - 690, - 12, - 690, - 46, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _k__ = - [0, - cst_examples_aides_logement_ar$0, - 1449, - 14, - 1449, - 48, - [0, - cst_Article_27, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$80 = cst_0$359, - cst_44630 = "44630", - cst_52321 = "52321", - cst_1$45 = cst_1$254, - cst_55788 = "55788", - cst_2$27 = cst_2$105, - cst_59704 = "59704", - cst_3$26 = cst_3$101, - cst_63635 = "63635", - cst_4$26 = cst_4$98, - cst_7119 = "7119", - cst_68637 = "68637", - cst_0$81 = cst_0$359, - cst_40814 = "40814", - cst_47632 = "47632", - cst_1$46 = cst_1$254, - cst_50787 = "50787", - cst_2$28 = cst_2$105, - cst_54365 = "54365", - cst_3$27 = cst_3$101, - cst_57929 = "57929", - cst_4$27 = cst_4$98, - cst_6434 = "6434", - cst_61727 = "61727", - cst_0$82 = cst_0$359, - cst_38740 = "38740", - cst_45057 = "45057", - cst_1$47 = cst_1$254, - cst_47802 = "47802", - cst_2$29 = cst_2$105, - cst_50957 = "50957", - cst_3$28 = cst_3$101, - cst_54110 = "54110", - cst_4$28 = cst_4$98, - cst_5971 = "5971", - cst_57657 = "57657", - _k$_ = - [0, - cst_examples_aides_logement_pr, - 690, - 12, - 690, - 46, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _k8_ = - [0, - cst_examples_aides_logement_ar$0, - 2530, - 14, - 2530, - 48, - [0, - cst_Article_27, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$77 = cst_0$359, - cst_44443 = "44443", - cst_52101 = "52101", - cst_1$42 = cst_1$254, - cst_55555 = "55555", - cst_2$24 = cst_2$105, - cst_59454 = "59454", - cst_3$23 = cst_3$101, - cst_63369 = "63369", - cst_4$23 = cst_4$98, - cst_7089 = "7089", - cst_68350 = "68350", - cst_0$78 = cst_0$359, - cst_40643 = "40643", - cst_47433 = "47433", - cst_1$43 = cst_1$254, - cst_50575 = "50575", - cst_2$25 = cst_2$105, - cst_54138 = "54138", - cst_3$24 = cst_3$101, - cst_57687 = "57687", - cst_4$24 = cst_4$98, - cst_6407 = "6407", - cst_61469 = "61469", - cst_0$79 = cst_0$359, - cst_38578 = "38578", - cst_44869 = "44869", - cst_1$44 = cst_1$254, - cst_47602 = "47602", - cst_2$26 = cst_2$105, - cst_50744 = "50744", - cst_3$25 = cst_3$101, - cst_53884 = "53884", - cst_4$25 = cst_4$98, - cst_5946 = "5946", - cst_57416 = "57416", - _k9_ = - [0, - cst_examples_aides_logement_pr, - 690, - 12, - 690, - 46, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _k4_ = - [0, - cst_examples_aides_logement_ar, - 2569, - 14, - 2569, - 41, - [0, - "Article 28", - [0, - cst_Chapitre_V_Calcul_de_l_aid, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_500$0 = cst_500$4, - _k0_ = - [0, - cst_examples_aides_logement_ar, - 2581, - 14, - 2581, - 42, - [0, - "Article 29", - [0, - cst_Chapitre_V_Calcul_de_l_aid, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1000$1 = cst_1000$5, - _kU_ = - [0, - cst_examples_aides_logement_pr, - 720, - 14, - 720, - 50, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kP_ = - [0, - cst_examples_aides_logement_co$0, - 3847, - 14, - 3847, - 35, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _kQ_ = - [0, - cst_examples_aides_logement_pr, - 683, - 12, - 683, - 33, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kK_ = - [0, - cst_examples_aides_logement_pr, - 684, - 12, - 684, - 52, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kL_ = - [0, - cst_examples_aides_logement_pr, - 684, - 12, - 684, - 52, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kM_ = - [0, - cst_examples_aides_logement_pr, - 684, - 12, - 684, - 52, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kJ_ = - [0, - cst_examples_aides_logement_pr, - 684, - 12, - 684, - 52, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kN_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_limitation_majoration_pers$1, 0]], - _kR_ = - [0, - cst_examples_aides_logement_pr, - 683, - 12, - 683, - 33, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kO_ = - [0, - cst_examples_aides_logement_pr, - 683, - 12, - 683, - 33, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kS_ = - [0, cst_CalculAidePersonnalis_eLog$1, [0, "condition_2_du_832_25", 0]], - _kV_ = - [0, - cst_examples_aides_logement_pr, - 720, - 14, - 720, - 50, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kW_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_contributions_sociales_dat, 0]], - _kT_ = - [0, - cst_examples_aides_logement_pr, - 720, - 14, - 720, - 50, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kX_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], - _kY_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], - _k1_ = - [0, - cst_examples_aides_logement_pr, - 697, - 11, - 697, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kZ_ = - [0, - cst_examples_aides_logement_pr, - 697, - 11, - 697, - 39, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _k2_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, "montant_minimal_aide_d823_24", 0]], - _k5_ = - [0, - cst_examples_aides_logement_pr, - 695, - 11, - 695, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _k3_ = - [0, - cst_examples_aides_logement_pr, - 695, - 11, - 695, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _k6_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, "montant_forfaitaire_d832_24", 0]], - _lc_ = - [0, - cst_examples_aides_logement_pr, - 690, - 12, - 690, - 46, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _k7_ = - [0, - cst_examples_aides_logement_pr, - 690, - 12, - 690, - 46, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ld_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_plafond_quivalence_loyer_l$0, 0]], - _lg_ = - [0, - cst_examples_aides_logement_pr, - 687, - 12, - 687, - 33, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _le_ = - [0, - cst_examples_aides_logement_pr, - 687, - 12, - 687, - 33, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lh_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_coefficient_r_d832_25$0, 0]], - _lk_ = - [0, - cst_examples_aides_logement_co$0, - 3941, - 14, - 3941, - 55, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _ll_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_calcul_nombre_parts_condit, 0]], - _li_ = - [0, - cst_examples_aides_logement_co$0, - 3941, - 14, - 3941, - 55, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lo_ = - [0, - cst_examples_aides_logement_co$0, - 3937, - 14, - 3937, - 59, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lp_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_calcul_nombre_parts_nombre, 0]], - _lm_ = - [0, - cst_examples_aides_logement_co$0, - 3937, - 14, - 3937, - 59, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _ls_ = - [0, - cst_examples_aides_logement_co$0, - 3939, - 14, - 3939, - 64, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lt_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_calcul_nombre_parts_situat, 0]], - _lq_ = - [0, - cst_examples_aides_logement_co$0, - 3939, - 14, - 3939, - 64, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lw_ = - [0, - cst_examples_aides_logement_co$0, - 3943, - 14, - 3943, - 43, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lx_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_calcul_nombre_parts_r_side, 0]], - _lu_ = - [0, - cst_examples_aides_logement_co$0, - 3943, - 14, - 3943, - 43, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _lB_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], - _lC_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], - _lF_ = - [0, - cst_examples_aides_logement_pr, - 696, - 11, - 696, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lD_ = - [0, - cst_examples_aides_logement_pr, - 696, - 11, - 696, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lG_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, "montant_forfaitaire_d832_27", 0]], - _lJ_ = - [0, - cst_examples_aides_logement_pr, - 686, - 12, - 686, - 46, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lH_ = - [0, - cst_examples_aides_logement_pr, - 686, - 12, - 686, - 46, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lK_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_coefficient_multiplicateur$0, 0]], - _lO_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_min, 0]], - _lR_ = - [0, - cst_examples_aides_logement_pr, - 689, - 12, - 689, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lP_ = - [0, - cst_examples_aides_logement_pr, - 689, - 12, - 689, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lS_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_quivalence_loyer_ligible$0, 0]], - _lW_ = - [0, - cst_examples_aides_logement_pr, - 688, - 21, - 688, - 43, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lT_ = - [0, - cst_examples_aides_logement_pr, - 688, - 21, - 688, - 43, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _lX_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_n_nombre_parts_d832_25$1, 0]], - _l1_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_d_pense_nette_minimale_d83$0, 0]], - _l4_ = - [0, - cst_examples_aides_logement_pr, - 721, - 14, - 721, - 61, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _l5_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_calcul_quivalence_loyer_mi, 0]], - _l2_ = - [0, - cst_examples_aides_logement_pr, - 721, - 14, - 721, - 61, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _l8_ = - [0, - cst_examples_aides_logement_co$0, - 3770, - 14, - 3770, - 75, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _l9_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_calcul_quivalence_loyer_mi$0, 0]], - _l6_ = - [0, - cst_examples_aides_logement_co$0, - 3770, - 14, - 3770, - 75, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _ma_ = - [0, - cst_examples_aides_logement_co$0, - 3768, - 14, - 3768, - 69, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _mb_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_calcul_quivalence_loyer_mi$1, 0]], - _l__ = - [0, - cst_examples_aides_logement_co$0, - 3768, - 14, - 3768, - 69, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _me_ = - [0, - cst_examples_aides_logement_co$0, - 3772, - 14, - 3772, - 70, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _mf_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_calcul_quivalence_loyer_mi$2, 0]], - _mc_ = - [0, - cst_examples_aides_logement_co$0, - 3772, - 14, - 3772, - 70, - [0, - cst_Article_D832_24, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _mg_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, - cst_calcul_quivalence_loyer_mi$3, - [0, cst_Calcul_quivalenceLoyerMini, 0]]], - _mh_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, - cst_calcul_quivalence_loyer_mi$3, - [0, cst_Calcul_quivalenceLoyerMini, 0]]], - _mm_ = - [0, - cst_examples_aides_logement_pr, - 707, - 10, - 707, - 17, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mi_ = - [0, - cst_examples_aides_logement_pr, - 707, - 10, - 707, - 17, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mn_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, "coefficient_prise_en_charge_d832_25_formule", 0]], - _mv_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_abattement_d_pense_nette_m$1, 0]], - _my_ = - [0, - cst_examples_aides_logement_pr, - 698, - 12, - 698, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mw_ = - [0, - cst_examples_aides_logement_pr, - 698, - 12, - 698, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mz_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_quivalence_loyer_minimale$0, 0]], - _mE_ = - [0, - cst_examples_aides_logement_pr, - 708, - 10, - 708, - 23, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mA_ = - [0, - cst_examples_aides_logement_pr, - 708, - 10, - 708, - 23, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mF_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, "coefficient_prise_en_charge_d832_25_coeff_arrondi", 0]], - _mR_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_aba, 0]], - _mW_ = - [0, - cst_examples_aides_logement_pr, - 709, - 10, - 709, - 15, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mS_ = - [0, - cst_examples_aides_logement_pr, - 709, - 10, - 709, - 15, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _mX_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, "coefficient_prise_en_charge_d832_25_seuil", 0]], - _m9_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_con, 0]], - _na_ = - [0, - cst_examples_aides_logement_pr, - 711, - 12, - 711, - 31, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _m__ = - [0, - cst_examples_aides_logement_pr, - 711, - 12, - 711, - 31, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nb_ = - [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_aide_finale_formule$9, 0]], - _nj_ = - [0, - cst_CalculAidePersonnalis_eLog$1, - [0, cst_traitement_aide_finale_mon, 0]], - _nk_ = - [0, - cst_examples_aides_logement_pr, - 725, - 13, - 725, - 42, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _nl_ = - [0, - cst_examples_aides_logement_pr, - 725, - 13, - 725, - 42, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kw_ = - [0, - cst_examples_aides_logement_co$0, - 1770, - 14, - 1770, - 33, - [0, - cst_Article_D823_16, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$74 = cst_0$359, - cst_0$75 = cst_0$359, - _ks_ = - [0, - cst_examples_aides_logement_co$0, - 1913, - 14, - 1913, - 39, - [0, - cst_Article_D823_17, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$72 = cst_0$359, - cst_0$73 = cst_0$359, - _ko_ = - [0, - cst_examples_aides_logement_co$0, - 1896, - 14, - 1896, - 36, - [0, - cst_Article_D823_16, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _kk_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_r_d, [0, cst_input0, 0]]], - _kl_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_r_d, 0]], - _km_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_r_d, [0, cst_output, 0]]], - _kn_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_r_d, 0]], - cst_0$71 = cst_0$359, - _kp_ = - [0, - cst_examples_aides_logement_pr, - 626, - 10, - 626, - 25, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kj_ = - [0, - cst_examples_aides_logement_pr, - 626, - 10, - 626, - 25, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kg_ = - [0, - cst_examples_aides_logement_co$0, - 1947, - 14, - 1947, - 42, - [0, - cst_Article_D823_17, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _kc_ = - [0, - cst_examples_aides_logement_co, - 844, - 14, - 844, - 36, - [0, - cst_Article_L832_3, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _j__ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], - _j$_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_con, 0]], - _ka_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], - _kb_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_con, 0]], - cst_0$69 = cst_0$359, - cst_0$70 = cst_0$359, - _kd_ = - [0, - cst_examples_aides_logement_pr, - 625, - 10, - 625, - 36, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _j9_ = - [0, - cst_examples_aides_logement_pr, - 625, - 10, - 625, - 36, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _j3_ = - [0, - cst_examples_aides_logement_ar$0, - 2313, - 14, - 2313, - 33, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_100000$3 = cst_100000$5, - cst_100000$4 = cst_100000$5, - _j4_ = - [0, - cst_examples_aides_logement_pr, - 594, - 10, - 594, - 22, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _j2_ = - [0, - cst_examples_aides_logement_ar$0, - 1232, - 14, - 1232, - 33, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_100000$1 = cst_100000$5, - cst_100000$2 = cst_100000$5, - _j5_ = - [0, - cst_examples_aides_logement_pr, - 594, - 10, - 594, - 22, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _j1_ = - [0, - cst_examples_aides_logement_ar, - 423, - 14, - 423, - 33, - [0, - cst_Article_14, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_100000 = cst_100000$5, - cst_100000$0 = cst_100000$5, - _j6_ = - [0, - cst_examples_aides_logement_pr, - 594, - 10, - 594, - 22, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jX_ = - [0, - cst_examples_aides_logement_co$0, - 1864, - 14, - 1864, - 36, - [0, - cst_Article_D823_16, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _jP_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], - _jQ_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_min, 0]], - _jR_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], - _jS_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_min, 0]], - _jT_ = - [0, - cst_ContributionsSocialesAides, - [0, cst_montant$2, [0, cst_input0, 0]]], - _jU_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - _jV_ = - [0, - cst_ContributionsSocialesAides, - [0, cst_montant$2, [0, cst_output, 0]]], - _jW_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - cst_50 = cst_50$4, - cst_0$67 = cst_0$359, - cst_0$68 = cst_0$359, - _jY_ = - [0, - cst_examples_aides_logement_pr, - 624, - 10, - 624, - 40, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jO_ = - [0, - cst_examples_aides_logement_pr, - 624, - 10, - 624, - 40, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jI_ = - [0, - cst_examples_aides_logement_ar$0, - 2306, - 14, - 2306, - 33, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0_45$3 = cst_0_45$5, - cst_0$65 = cst_0$360, - cst_0_75$5 = cst_0_75$14, - cst_0_45$4 = cst_0_45$5, - cst_0_0045$5 = cst_0_0045$8, - cst_0_0045$6 = cst_0_0045$8, - cst_0_75$6 = cst_0_75$14, - cst_0_75$7 = cst_0_75$14, - cst_0_0068$1 = cst_0_0068$2, - cst_0_3$1 = cst_0_3$2, - cst_0_0045$7 = cst_0_0045$8, - cst_0$66 = cst_0$360, - _jJ_ = - [0, - cst_examples_aides_logement_pr, - 593, - 10, - 593, - 17, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jH_ = - [0, - cst_examples_aides_logement_ar$0, - 1225, - 14, - 1225, - 33, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0_45$1 = cst_0_45$5, - cst_0$63 = cst_0$360, - cst_0_75$2 = cst_0_75$14, - cst_0_45$2 = cst_0_45$5, - cst_0_0045$2 = cst_0_0045$8, - cst_0_0045$3 = cst_0_0045$8, - cst_0_75$3 = cst_0_75$14, - cst_0_75$4 = cst_0_75$14, - cst_0_0068$0 = cst_0_0068$2, - cst_0_3$0 = cst_0_3$2, - cst_0_0045$4 = cst_0_0045$8, - cst_0$64 = cst_0$360, - _jK_ = - [0, - cst_examples_aides_logement_pr, - 593, - 10, - 593, - 17, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jG_ = - [0, - cst_examples_aides_logement_ar, - 416, - 14, - 416, - 33, - [0, - cst_Article_14, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0_45 = cst_0_45$5, - cst_0$61 = cst_0$360, - cst_0_75 = cst_0_75$14, - cst_0_45$0 = cst_0_45$5, - cst_0_0045 = cst_0_0045$8, - cst_0_0045$0 = cst_0_0045$8, - cst_0_75$0 = cst_0_75$14, - cst_0_75$1 = cst_0_75$14, - cst_0_0068 = cst_0_0068$2, - cst_0_3 = cst_0_3$2, - cst_0_0045$1 = cst_0_0045$8, - cst_0$62 = cst_0$360, - _jL_ = - [0, - cst_examples_aides_logement_pr, - 593, - 10, - 593, - 17, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jC_ = - [0, - cst_examples_aides_logement_co$0, - 1847, - 14, - 1847, - 36, - [0, - cst_Article_D823_16, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _jy_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_dim, [0, cst_input0, 0]]], - _jz_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_dim, 0]], - _jA_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_dim, [0, cst_output, 0]]], - _jB_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_dim, 0]], - cst_0$59 = cst_0$359, - cst_0$60 = cst_0$359, - _jD_ = - [0, - cst_examples_aides_logement_pr, - 623, - 10, - 623, - 32, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jx_ = - [0, - cst_examples_aides_logement_pr, - 623, - 10, - 623, - 32, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jr_ = - [0, - cst_examples_aides_logement_ar$0, - 2282, - 14, - 2282, - 28, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_100$4 = cst_100$13, - cst_100$5 = cst_100$13, - _js_ = - [0, - cst_examples_aides_logement_pr, - 595, - 11, - 595, - 25, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jq_ = - [0, - cst_examples_aides_logement_ar$0, - 1198, - 14, - 1198, - 28, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_100$2 = cst_100$13, - cst_100$3 = cst_100$13, - _jt_ = - [0, - cst_examples_aides_logement_pr, - 595, - 11, - 595, - 25, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jp_ = - [0, - cst_examples_aides_logement_ar, - 390, - 14, - 390, - 28, - [0, - cst_Article_14, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_100$0 = cst_100$13, - cst_100$1 = cst_100$13, - _ju_ = - [0, - cst_examples_aides_logement_pr, - 595, - 11, - 595, - 25, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jk_ = - [0, - cst_examples_aides_logement_ar, - 314, - 14, - 314, - 36, - [0, - cst_Article_13, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_3663 = cst_3663$1, - cst_0_085$3 = cst_0_085$5, - cst_0_085$4 = cst_0_085$5, - cst_3663$0 = cst_3663$1, - _jl_ = - [0, - cst_examples_aides_logement_pr, - 611, - 12, - 611, - 34, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ji_ = - [0, - cst_examples_aides_logement_ar$0, - 1124, - 14, - 1124, - 36, - [0, - cst_Article_13, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_3539 = cst_3539$1, - cst_0_085$1 = cst_0_085$5, - cst_0_085$2 = cst_0_085$5, - cst_3539$0 = cst_3539$1, - _jj_ = - [0, - cst_examples_aides_logement_pr, - 611, - 12, - 611, - 34, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jg_ = - [0, - cst_examples_aides_logement_ar$0, - 2207, - 14, - 2207, - 36, - [0, - cst_Article_13, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_3524 = cst_3524$1, - cst_0_085 = cst_0_085$5, - cst_0_085$0 = cst_0_085$5, - cst_3524$0 = cst_3524$1, - _jh_ = - [0, - cst_examples_aides_logement_pr, - 611, - 12, - 611, - 34, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jb_ = - [0, - cst_examples_aides_logement_co$0, - 1837, - 5, - 1837, - 50, - [0, - cst_Article_D823_16, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _jc_ = - [0, - cst_examples_aides_logement_pr, - 622, - 10, - 622, - 17, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ja_ = - [0, - cst_examples_aides_logement_co$0, - 1823, - 14, - 1823, - 36, - [0, - cst_Article_D823_16, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$58 = cst_0$359, - _jd_ = - [0, - cst_examples_aides_logement_pr, - 622, - 10, - 622, - 17, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _i$_ = - [0, - cst_examples_aides_logement_pr, - 622, - 10, - 622, - 17, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _i8_ = - [0, - cst_examples_aides_logement_co$0, - 1788, - 14, - 1788, - 28, - [0, - cst_Article_D823_16, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _i4_ = - [0, - cst_examples_aides_logement_ar, - 263, - 14, - 263, - 42, - [0, - cst_Article_10, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_3_4 = "3.4", - cst_2_5$2 = cst_2_5$5, - cst_2_5$3 = cst_2_5$5, - _i0_ = - [0, - cst_examples_aides_logement_ar, - 269, - 14, - 269, - 41, - [0, - cst_Article_10, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_4$22 = "4.", - cst_3_1 = cst_3_1$1, - cst_3_1$0 = cst_3_1$1, - cst_0$57 = cst_0$359, - _iU_ = - [0, - cst_examples_aides_logement_ar, - 546, - 5, - 547, - 34, - [0, - cst_Article_16, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_23138$0 = cst_23138$1, - cst_20165$0 = cst_20165$1, - cst_18900$0 = cst_18900$1, - _iV_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$56 = cst_0$359, - _iS_ = - [0, - cst_examples_aides_logement_ar, - 555, - 5, - 556, - 34, - [0, - cst_Article_16, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_27905 = "27905", - cst_24683 = "24683", - cst_22911 = "22911", - _iT_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$41 = cst_1$254, - _iQ_ = - [0, - cst_examples_aides_logement_ar, - 564, - 5, - 564, - 35, - [0, - cst_Article_16, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_4576 = "4576", - cst_31539 = "31539", - cst_4043 = "4043", - cst_27774 = "27774", - cst_3682 = "3682", - cst_25689 = "25689", - _iR_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$55 = cst_0$359, - _iO_ = - [0, - cst_examples_aides_logement_ar$0, - 1301, - 5, - 1302, - 34, - [0, - cst_Article_16, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_22355$0 = cst_22355$1, - cst_19484$0 = cst_19484$1, - cst_18261$0 = cst_18261$1, - _iP_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$54 = cst_0$359, - _iM_ = - [0, - cst_examples_aides_logement_ar$0, - 1310, - 5, - 1311, - 34, - [0, - cst_Article_16, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_26962 = "26962", - cst_23848 = "23848", - cst_22136 = "22136", - _iN_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$40 = cst_1$254, - _iK_ = - [0, - cst_examples_aides_logement_ar$0, - 1323, - 5, - 1323, - 35, - [0, - cst_Article_16, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_4421 = "4421", - cst_30473 = "30473", - cst_3906 = "3906", - cst_26835 = "26835", - cst_3557 = "3557", - cst_24821 = "24821", - _iL_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$53 = cst_0$359, - _iI_ = - [0, - cst_examples_aides_logement_ar$0, - 2380, - 5, - 2381, - 34, - [0, - cst_Article_16, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_22262$0 = cst_22262$1, - cst_19402$0 = cst_19402$1, - cst_18185$0 = cst_18185$1, - _iJ_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$52 = cst_0$359, - _iG_ = - [0, - cst_examples_aides_logement_ar$0, - 2389, - 5, - 2390, - 34, - [0, - cst_Article_16, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_26849 = "26849", - cst_23748 = "23748", - cst_22044 = "22044", - _iH_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$39 = cst_1$254, - _iE_ = - [0, - cst_examples_aides_logement_ar$0, - 2402, - 5, - 2402, - 35, - [0, - cst_Article_16, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_4403 = "4403", - cst_30345 = "30345", - cst_3890 = "3890", - cst_26723 = "26723", - cst_3542 = "3542", - cst_24717 = "24717", - _iF_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _iW_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _iA_ = - [0, - cst_examples_aides_logement_ar, - 198, - 5, - 198, - 61, - [0, - cst_Article_8, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_23138 = cst_23138$1, - cst_20165 = cst_20165$1, - cst_18900 = cst_18900$1, - _iB_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _iy_ = - [0, - cst_examples_aides_logement_ar$0, - 1069, - 5, - 1069, - 61, - [0, - cst_Article_8, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_22355 = cst_22355$1, - cst_19484 = cst_19484$1, - cst_18261 = cst_18261$1, - _iz_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _iw_ = - [0, - cst_examples_aides_logement_ar$0, - 2152, - 5, - 2152, - 61, - [0, - cst_Article_8, - [0, - cst_Article_7, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]]], - cst_22262 = cst_22262$1, - cst_19402 = cst_19402$1, - cst_18185 = cst_18185$1, - _ix_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _iC_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _it_ = - [0, - cst_examples_aides_logement_ar, - 191, - 14, - 191, - 37, - [0, - cst_Article_8, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_27765 = "27765", - cst_24198 = "24198", - cst_22680 = "22680", - _iu_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ir_ = - [0, - cst_examples_aides_logement_ar$0, - 1062, - 14, - 1062, - 37, - [0, - cst_Article_8, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_26826 = "26826", - cst_23380 = "23380", - cst_21913 = "21913", - _is_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ip_ = - [0, - cst_examples_aides_logement_ar$0, - 2145, - 14, - 2145, - 37, - [0, - cst_Article_8, - [0, - cst_Article_7, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]]], - cst_26714 = cst_26714$1, - cst_23282 = "23282", - cst_21821 = "21821", - _iq_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _iv_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _iD_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$51 = cst_0$359, - _im_ = - [0, - cst_examples_aides_logement_ar, - 106, - 5, - 107, - 34, - [0, - cst_Article_7, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_30850 = "30850", - cst_26887$0 = cst_26887$1, - cst_25200 = "25200", - _in_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$50 = cst_0$359, - _ik_ = - [0, - cst_examples_aides_logement_ar, - 116, - 5, - 117, - 34, - [0, - cst_Article_7, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_37207 = "37207", - cst_32910$0 = cst_32910$1, - cst_30548 = "30548", - _il_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$38 = cst_1$254, - _ii_ = - [0, - cst_examples_aides_logement_ar, - 130, - 5, - 130, - 35, - [0, - cst_Article_7, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_6101 = "6101", - cst_42052 = "42052", - cst_5390$0 = cst_5390$1, - cst_37032$0 = cst_37032$1, - cst_4909 = "4909", - cst_34252 = "34252", - _ij_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$49 = cst_0$359, - _ig_ = - [0, - cst_examples_aides_logement_ar$0, - 976, - 5, - 977, - 34, - [0, - cst_Article_7, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_29807 = "29807", - cst_25978$0 = cst_25978$1, - cst_24348 = "24348", - _ih_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$48 = cst_0$359, - _ie_ = - [0, - cst_examples_aides_logement_ar$0, - 986, - 5, - 987, - 34, - [0, - cst_Article_7, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_35949 = "35949", - cst_31797$0 = cst_31797$2, - cst_29515 = "29515", - _if_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$37 = cst_1$254, - _ic_ = - [0, - cst_examples_aides_logement_ar$0, - 1000, - 5, - 1000, - 35, - [0, - cst_Article_7, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5895 = "5895", - cst_40630 = "40630", - cst_5208$0 = cst_5208$1, - cst_35780$0 = cst_35780$1, - cst_4743 = "4743", - cst_33094 = "33094", - _id_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$47 = cst_0$359, - _ia_ = - [0, - cst_examples_aides_logement_ar$0, - 2060, - 5, - 2061, - 34, - [0, - cst_Article_7, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_29682 = "29682", - cst_25859 = "25859", - cst_24246 = "24246", - _ib_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$46 = cst_0$359, - _h__ = - [0, - cst_examples_aides_logement_ar$0, - 2070, - 5, - 2071, - 34, - [0, - cst_Article_7, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_35799 = "35799", - cst_31664$0 = cst_31664$1, - cst_29392 = "29392", - _h$_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$36 = cst_1$254, - _h8_ = - [0, - cst_examples_aides_logement_ar$0, - 2084, - 5, - 2084, - 35, - [0, - cst_Article_7, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5870 = "5870", - cst_40460 = "40460", - cst_5186$0 = cst_5186$1, - cst_35630$0 = cst_35630$1, - cst_4723 = "4723", - cst_32956 = cst_32956$1, - _h9_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _io_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _h3_ = - [0, - cst_examples_aides_logement_ar, - 445, - 14, - 445, - 29, - [0, - cst_Article_14, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$45 = cst_0$359, - cst_26887 = cst_26887$1, - cst_32910 = cst_32910$1, - cst_5390 = cst_5390$1, - cst_37032 = cst_37032$1, - _h4_ = - [0, - cst_examples_aides_logement_pr, - 596, - 11, - 596, - 26, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _h1_ = - [0, - cst_examples_aides_logement_ar$0, - 1255, - 14, - 1255, - 29, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$44 = cst_0$359, - cst_25978 = cst_25978$1, - cst_31797 = cst_31797$2, - cst_5208 = cst_5208$1, - cst_35780 = cst_35780$1, - _h2_ = - [0, - cst_examples_aides_logement_pr, - 596, - 11, - 596, - 26, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hZ_ = - [0, - cst_examples_aides_logement_ar$0, - 2336, - 14, - 2336, - 29, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$43 = cst_0$359, - cst_25869 = "25869", - cst_31664 = cst_31664$1, - cst_5186 = cst_5186$1, - cst_35630 = cst_35630$1, - _h0_ = - [0, - cst_examples_aides_logement_pr, - 596, - 11, - 596, - 26, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$35 = cst_1$254, - _hT_ = - [0, - cst_examples_aides_logement_ar, - 4336, - 5, - 4344, - 34, - [0, - cst_Article_46, - [0, - cst_Chapitre_IX_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_818100 = "818100", - _hU_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hR_ = - [0, - cst_examples_aides_logement_ar, - 4583, - 5, - 4585, - 28, - [0, - cst_Article_47, - [0, - cst_Chapitre_IX_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$42 = cst_0$359, - cst_527200 = "527200", - cst_755200 = "755200", - cst_1$34 = cst_1$254, - cst_900800 = "900800", - cst_2$23 = cst_2$105, - cst_921100 = "921100", - cst_3$22 = cst_3$101, - cst_956300 = "956300", - cst_4$21 = cst_4$98, - cst_991900 = "991900", - cst_5$25 = cst_5$158, - cst_1027100 = "1027100", - cst_6$45 = cst_6$92, - cst_1062600 = cst_1062600$1, - cst_6$46 = cst_6$92, - cst_35000$0 = cst_35000$1, - cst_1062600$0 = cst_1062600$1, - _hS_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$33 = cst_1$254, - _hP_ = - [0, - cst_examples_aides_logement_ar$0, - 211, - 5, - 219, - 34, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_805100 = "805100", - _hQ_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hN_ = - [0, - cst_examples_aides_logement_ar$0, - 459, - 5, - 461, - 28, - [0, - cst_Article_47, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$41 = cst_0$359, - cst_487000$0 = cst_487000$1, - cst_697700$0 = cst_697700$1, - cst_1$32 = cst_1$254, - cst_832200$1 = cst_832200$2, - cst_2$22 = cst_2$105, - cst_850900$0 = cst_850900$1, - cst_3$21 = cst_3$101, - cst_883400$0 = cst_883400$1, - cst_4$20 = cst_4$98, - cst_916300$0 = cst_916300$1, - cst_5$24 = cst_5$158, - cst_948800$0 = cst_948800$1, - cst_6$43 = cst_6$92, - cst_981600$1 = cst_981600$3, - cst_6$44 = cst_6$92, - cst_35000 = cst_35000$1, - cst_981600$2 = cst_981600$3, - _hO_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$31 = cst_1$254, - _hL_ = - [0, - cst_examples_aides_logement_ar$0, - 706, - 5, - 714, - 34, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_774200 = "774200", - _hM_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hJ_ = - [0, - cst_examples_aides_logement_ar$0, - 3185, - 5, - 3194, - 28, - [0, - cst_Article_47, - [0, - "Articles en vigueur \xc3\xa0 partir du 01 janvier 2021 - Arr\xc3\xaat\xc3\xa9 du 31 d\xc3\xa9cembre 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2021 NOR : LOGL2028351A", - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$40 = cst_0$359, - cst_427400 = "427400", - cst_612200 = "612200", - cst_1$30 = cst_1$254, - cst_699000 = "699000", - cst_2$21 = cst_2$105, - cst_743200 = "743200", - cst_3$20 = cst_3$101, - cst_785400 = "785400", - cst_4$19 = cst_4$98, - cst_828300 = "828300", - cst_5$23 = cst_5$158, - cst_871100 = "871100", - cst_913900 = "913900", - _hK_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$29 = cst_1$254, - _hF_ = - [0, - cst_examples_aides_logement_ar$0, - 3432, - 5, - 3440, - 34, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_758400$1 = cst_758400$2, - _hG_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$28 = cst_1$254, - _hE_ = - [0, - cst_examples_aides_logement_ar$0, - 2895, - 5, - 2903, - 34, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_758400$0 = cst_758400$2, - _hH_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_1$27 = cst_1$254, - _hD_ = - [0, - cst_examples_aides_logement_ar$0, - 1825, - 5, - 1833, - 34, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_758400 = cst_758400$2, - _hI_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hB_ = - [0, - cst_examples_aides_logement_ar$0, - 3694, - 5, - 3703, - 28, - [0, - cst_Article_47, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$39 = cst_0$359, - cst_396000 = "396000", - cst_567300 = "567300", - cst_1$26 = cst_1$254, - cst_639600 = "639600", - cst_2$20 = cst_2$105, - cst_684900 = "684900", - cst_3$19 = cst_3$101, - cst_738600 = "738600", - cst_4$18 = cst_4$98, - cst_793500 = "793500", - cst_5$22 = cst_5$158, - cst_848400 = "848400", - cst_903200 = "903200", - _hC_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hV_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hy_ = - [0, - cst_examples_aides_logement_ar, - 486, - 14, - 486, - 44, - [0, - cst_Article_15, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$38 = cst_0$359, - cst_494900 = "494900", - cst_709000 = "709000", - cst_1$25 = cst_1$254, - cst_845600 = "845600", - cst_2$19 = cst_2$105, - cst_864600 = "864600", - cst_3$18 = cst_3$101, - cst_897700 = "897700", - cst_4$17 = cst_4$98, - cst_931100 = "931100", - cst_5$21 = cst_5$158, - cst_964200 = "964200", - cst_6$42 = cst_6$92, - cst_997500 = cst_997500$1, - cst_32800 = "32800", - cst_997500$0 = cst_997500$1, - _hz_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hw_ = - [0, - cst_examples_aides_logement_ar$0, - 39, - 14, - 39, - 44, - [0, - cst_Article_15, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$37 = cst_0$359, - cst_487000 = cst_487000$1, - cst_697700 = cst_697700$1, - cst_1$24 = cst_1$254, - cst_832200$0 = cst_832200$2, - cst_2$18 = cst_2$105, - cst_850900 = cst_850900$1, - cst_3$17 = cst_3$101, - cst_883400 = cst_883400$1, - cst_4$16 = cst_4$98, - cst_916300 = cst_916300$1, - cst_5$20 = cst_5$158, - cst_948800 = cst_948800$1, - cst_6$41 = cst_6$92, - cst_981600 = cst_981600$3, - cst_32300 = "32300", - cst_981600$0 = cst_981600$3, - _hx_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hu_ = - [0, - cst_examples_aides_logement_ar$0, - 533, - 14, - 533, - 44, - [0, - cst_Article_15, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$36 = cst_0$359, - cst_468300 = "468300", - cst_670900 = "670900", - cst_1$23 = cst_1$254, - cst_800200 = "800200", - cst_2$17 = cst_2$105, - cst_819200 = "819200", - cst_3$16 = cst_3$101, - cst_849500 = "849500", - cst_4$15 = cst_4$98, - cst_881100 = "881100", - cst_5$19 = cst_5$158, - cst_912400 = "912400", - cst_6$40 = cst_6$92, - cst_943900 = cst_943900$1, - cst_31100 = "31100", - cst_943900$0 = cst_943900$1, - _hv_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hs_ = - [0, - cst_examples_aides_logement_ar$0, - 3247, - 14, - 3247, - 44, - [0, - cst_Article_15, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$35 = cst_0$359, - cst_458800 = "458800", - cst_657200 = "657200", - cst_1$22 = cst_1$254, - cst_783900 = "783900", - cst_2$16 = cst_2$105, - cst_801500 = "801500", - cst_3$15 = cst_3$101, - cst_832200 = cst_832200$2, - cst_4$14 = cst_4$98, - cst_863100 = "863100", - cst_5$18 = cst_5$158, - cst_893800 = "893800", - cst_6$38 = cst_6$92, - cst_924600 = cst_924600$1, - cst_6$39 = cst_6$92, - cst_30500 = cst_30500$3, - cst_924600$0 = cst_924600$1, - _ht_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hA_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hk_ = - [0, - cst_examples_aides_logement_ar, - 4422, - 5, - 4430, - 15, - [0, - cst_Article_46, - [0, - cst_Chapitre_IX_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_969$4 = cst_969$14, - cst_1938$1 = cst_1938$5, - cst_3767$4 = cst_3767$14, - _hl_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hi_ = - [0, - cst_examples_aides_logement_ar$0, - 314, - 6, - 321, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_969$2 = cst_969$14, - cst_1938 = cst_1938$5, - cst_3767$3 = cst_3767$14, - cst_6$37 = cst_6$93, - cst_969$3 = cst_969$14, - cst_1938$0 = cst_1938$5, - cst_3767$2 = cst_3767$14, - _hj_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hf_ = - [0, - cst_examples_aides_logement_ar$0, - 1927, - 6, - 1934, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_936$5 = cst_936$19, - cst_1872$1 = cst_1872$7, - cst_3640$6 = cst_3640$19, - cst_6$36 = cst_6$93, - cst_936$6 = cst_936$19, - cst_1872$2 = cst_1872$7, - cst_3640$5 = cst_3640$19, - _hg_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _he_ = - [0, - cst_examples_aides_logement_ar$0, - 810, - 6, - 817, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_936$3 = cst_936$19, - cst_1872 = cst_1872$7, - cst_3640$4 = cst_3640$19, - cst_6$35 = cst_6$93, - cst_936$4 = cst_936$19, - cst_1872$0 = cst_1872$7, - cst_3640$3 = cst_3640$19, - _hh_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hc_ = - [0, - cst_examples_aides_logement_ar$0, - 2999, - 6, - 3006, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_932$1 = cst_932$9, - cst_1864 = cst_1864$3, - cst_3625$2 = cst_3625$9, - cst_6$34 = cst_6$93, - cst_932$2 = cst_932$9, - cst_1864$0 = cst_1864$3, - cst_3625$1 = cst_3625$9, - _hd_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ha_ = - [0, - cst_examples_aides_logement_ar$0, - 3535, - 6, - 3542, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_929$1 = cst_929$9, - cst_1858 = cst_1858$3, - cst_3614$2 = cst_3614$9, - cst_6$33 = cst_6$93, - cst_929$2 = cst_929$9, - cst_1858$0 = cst_1858$3, - cst_3614$1 = cst_3614$9, - _hb_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hm_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _g9_ = - [0, - cst_examples_aides_logement_ar, - 588, - 14, - 588, - 49, - [0, - cst_Article_16, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1272$0 = cst_1272$6, - cst_2805 = cst_2805$2, - cst_5612$0 = cst_5612$8, - _g__ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _g7_ = - [0, - cst_examples_aides_logement_ar$0, - 1347, - 14, - 1347, - 49, - [0, - cst_Article_16, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1229$0 = cst_1229$6, - cst_2710 = cst_2710$2, - cst_5422$0 = cst_5422$8, - _g8_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _g5_ = - [0, - cst_examples_aides_logement_ar$0, - 2427, - 14, - 2427, - 49, - [0, - cst_Article_16, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1224$0 = cst_1224$6, - cst_2699 = cst_2699$2, - cst_5399$0 = cst_5399$8, - _g6_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _g$_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hn_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _g2_ = - [0, - cst_examples_aides_logement_ar, - 4366, - 6, - 4373, - 28, - [0, - cst_Article_46, - [0, - cst_Chapitre_IX_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_969$1 = cst_969$14, - cst_3767$1 = cst_3767$14, - _g3_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _g0_ = - [0, - cst_examples_aides_logement_ar$0, - 239, - 6, - 246, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_969 = cst_969$14, - cst_3767 = cst_3767$14, - cst_6$32 = cst_6$93, - cst_969$0 = cst_969$14, - cst_3767$0 = cst_3767$14, - _g1_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gX_ = - [0, - cst_examples_aides_logement_ar$0, - 1853, - 6, - 1860, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_936$1 = cst_936$19, - cst_3640$1 = cst_3640$19, - cst_6$31 = cst_6$93, - cst_936$2 = cst_936$19, - cst_3640$2 = cst_3640$19, - _gY_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gW_ = - [0, - cst_examples_aides_logement_ar$0, - 735, - 6, - 742, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_936 = cst_936$19, - cst_3640 = cst_3640$19, - cst_6$30 = cst_6$93, - cst_936$0 = cst_936$19, - cst_3640$0 = cst_3640$19, - _gZ_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gU_ = - [0, - cst_examples_aides_logement_ar$0, - 2925, - 6, - 2932, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_932 = cst_932$9, - cst_3625 = cst_3625$9, - cst_6$29 = cst_6$93, - cst_932$0 = cst_932$9, - cst_3625$0 = cst_3625$9, - _gV_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gS_ = - [0, - cst_examples_aides_logement_ar$0, - 3461, - 6, - 3468, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_929 = cst_929$9, - cst_3614 = cst_3614$9, - cst_6$28 = cst_6$93, - cst_929$0 = cst_929$9, - cst_3614$0 = cst_3614$9, - _gT_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _g4_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ho_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gP_ = - [0, - cst_examples_aides_logement_ar, - 239, - 14, - 239, - 49, - [0, - cst_Article_9, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1272 = cst_1272$6, - cst_5612 = cst_5612$8, - _gQ_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gN_ = - [0, - cst_examples_aides_logement_ar$0, - 1110, - 14, - 1110, - 49, - [0, - cst_Article_9, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1229 = cst_1229$6, - cst_5422 = cst_5422$8, - _gO_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gL_ = - [0, - cst_examples_aides_logement_ar$0, - 2193, - 14, - 2193, - 49, - [0, - cst_Article_9, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1224 = cst_1224$6, - cst_5399 = cst_5399$8, - _gM_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gR_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$27 = cst_6$92, - _gB_ = - [0, - cst_examples_aides_logement_ar$0, - 3301, - 5, - 3309, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5$17 = cst_5$159, - _gC_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$26 = cst_6$92, - _gA_ = - [0, - cst_examples_aides_logement_ar$0, - 2766, - 5, - 2774, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5$16 = cst_5$159, - _gD_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$25 = cst_6$92, - _gz_ = - [0, - cst_examples_aides_logement_ar$0, - 1695, - 5, - 1703, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5$15 = cst_5$159, - _gE_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$24 = cst_6$92, - _gy_ = - [0, - cst_examples_aides_logement_ar$0, - 575, - 5, - 583, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5$14 = cst_5$159, - _gF_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$23 = cst_6$92, - _gx_ = - [0, - cst_examples_aides_logement_ar$0, - 82, - 5, - 90, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5$13 = cst_5$159, - _gG_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gH_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gq_ = - [0, - cst_examples_aides_logement_ar$0, - 2398, - 14, - 2398, - 63, - [0, - cst_Article_16, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1$21 = cst_1$254, - _gr_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gp_ = - [0, - cst_examples_aides_logement_ar$0, - 2079, - 14, - 2079, - 63, - [0, - cst_Article_7, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1$20 = cst_1$254, - _gs_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _go_ = - [0, - cst_examples_aides_logement_ar$0, - 1319, - 14, - 1319, - 63, - [0, - cst_Article_16, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1$19 = cst_1$254, - _gt_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gn_ = - [0, - cst_examples_aides_logement_ar$0, - 995, - 14, - 995, - 63, - [0, - cst_Article_7, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1$18 = cst_1$254, - _gu_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gm_ = - [0, - cst_examples_aides_logement_ar, - 125, - 14, - 125, - 63, - [0, - cst_Article_7, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1$17 = cst_1$254, - _gv_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gw_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$22 = cst_6$92, - _gc_ = - [0, - cst_examples_aides_logement_ar$0, - 3366, - 5, - 3374, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5$12 = cst_5$159, - _gd_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$21 = cst_6$92, - _gb_ = - [0, - cst_examples_aides_logement_ar$0, - 2831, - 5, - 2839, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5$11 = cst_5$159, - _ge_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$20 = cst_6$92, - _ga_ = - [0, - cst_examples_aides_logement_ar$0, - 1759, - 5, - 1767, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5$10 = cst_5$159, - _gf_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$19 = cst_6$92, - _f$_ = - [0, - cst_examples_aides_logement_ar$0, - 640, - 5, - 648, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5$9 = cst_5$159, - _gg_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$18 = cst_6$92, - _f__ = - [0, - cst_examples_aides_logement_ar$0, - 147, - 5, - 155, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_5$8 = cst_5$159, - _gh_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gi_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _f5_ = - [0, - cst_examples_aides_logement_ar$0, - 2333, - 14, - 2333, - 55, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1$16 = cst_1$254, - _f6_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _f4_ = - [0, - cst_examples_aides_logement_ar$0, - 1252, - 14, - 1252, - 55, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_1$15 = cst_1$254, - _f7_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _f3_ = - [0, - cst_examples_aides_logement_ar, - 442, - 14, - 442, - 55, - [0, - cst_Article_14, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_1$14 = cst_1$254, - _f8_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _f9_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$17 = cst_6$92, - _fT_ = - [0, - cst_examples_aides_logement_ar$0, - 3388, - 5, - 3396, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$34 = cst_0$360, - _fU_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$16 = cst_6$92, - _fS_ = - [0, - cst_examples_aides_logement_ar$0, - 2852, - 5, - 2860, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$33 = cst_0$360, - _fV_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$15 = cst_6$92, - _fR_ = - [0, - cst_examples_aides_logement_ar$0, - 1780, - 5, - 1788, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$32 = cst_0$360, - _fW_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$14 = cst_6$92, - _fQ_ = - [0, - cst_examples_aides_logement_ar$0, - 662, - 5, - 670, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$31 = cst_0$360, - _fX_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_6$13 = cst_6$92, - _fP_ = - [0, - cst_examples_aides_logement_ar$0, - 168, - 5, - 176, - 35, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$30 = cst_0$360, - _fY_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fZ_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fJ_ = - [0, - cst_examples_aides_logement_ar$0, - 3243, - 14, - 3243, - 42, - [0, - cst_Article_15, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$12 = cst_6$92, - _fK_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fI_ = - [0, - cst_examples_aides_logement_ar$0, - 529, - 14, - 529, - 42, - [0, - cst_Article_15, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$11 = cst_6$92, - _fL_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fH_ = - [0, - cst_examples_aides_logement_ar$0, - 35, - 14, - 35, - 42, - [0, - cst_Article_15, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_6$10 = cst_6$92, - _fM_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fG_ = - [0, - cst_examples_aides_logement_ar, - 482, - 14, - 482, - 42, - [0, - cst_Article_15, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_6$9 = cst_6$92, - _fN_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fO_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fA_ = - [0, - cst_examples_aides_logement_ar, - 4485, - 6, - 4492, - 28, - [0, - cst_Article_46, - [0, - cst_Chapitre_IX_Calcul_des_all, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$29 = cst_0$359, - cst_0_0281$4 = cst_0_0281$5, - cst_0_0299$4 = cst_0_0299$5, - cst_1$13 = cst_1$254, - cst_0_0238$7 = cst_0_0238$8, - cst_2$15 = cst_2$105, - cst_0_0217$4 = cst_0_0217$5, - cst_3$14 = cst_3$101, - cst_0_0194$4 = cst_0_0194$5, - cst_4$13 = cst_4$98, - cst_0_018$4 = cst_0_018$5, - cst_5$7 = cst_5$158, - cst_0_0169$4 = cst_0_0169$5, - cst_6$8 = cst_6$92, - cst_0_0162$4 = cst_0_0162$5, - cst_7 = cst_7$1, - cst_0_0167 = cst_0_0167$1, - cst_7$0 = cst_7$1, - cst_0_0006$2 = cst_0_0006$3, - cst_0_0167$0 = cst_0_0167$1, - _fB_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fu_ = - [0, - cst_examples_aides_logement_ar$0, - 3606, - 6, - 3613, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$28 = cst_0$359, - cst_0_0281$3 = cst_0_0281$5, - cst_0_0299$3 = cst_0_0299$5, - cst_1$12 = cst_1$254, - cst_0_0238$6 = cst_0_0238$8, - cst_2$14 = cst_2$105, - cst_0_0217$3 = cst_0_0217$5, - cst_3$13 = cst_3$101, - cst_0_0194$3 = cst_0_0194$5, - cst_4$12 = cst_4$98, - cst_0_018$3 = cst_0_018$5, - cst_5$6 = cst_5$158, - cst_0_0169$3 = cst_0_0169$5, - cst_0_0162$3 = cst_0_0162$5, - _fv_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ft_ = - [0, - cst_examples_aides_logement_ar$0, - 3069, - 6, - 3076, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$27 = cst_0$359, - cst_0_0281$2 = cst_0_0281$5, - cst_0_0299$2 = cst_0_0299$5, - cst_1$11 = cst_1$254, - cst_0_0238$5 = cst_0_0238$8, - cst_2$13 = cst_2$105, - cst_0_0217$2 = cst_0_0217$5, - cst_3$12 = cst_3$101, - cst_0_0194$2 = cst_0_0194$5, - cst_4$11 = cst_4$98, - cst_0_018$2 = cst_0_018$5, - cst_5$5 = cst_5$158, - cst_0_0169$2 = cst_0_0169$5, - cst_0_0162$2 = cst_0_0162$5, - _fw_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fs_ = - [0, - cst_examples_aides_logement_ar$0, - 1997, - 6, - 2004, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$26 = cst_0$359, - cst_0_0281$1 = cst_0_0281$5, - cst_0_0299$1 = cst_0_0299$5, - cst_1$10 = cst_1$254, - cst_0_0238$4 = cst_0_0238$8, - cst_2$12 = cst_2$105, - cst_0_0217$1 = cst_0_0217$5, - cst_3$11 = cst_3$101, - cst_0_0194$1 = cst_0_0194$5, - cst_4$10 = cst_4$98, - cst_0_018$1 = cst_0_018$5, - cst_5$4 = cst_5$158, - cst_0_0169$1 = cst_0_0169$5, - cst_0_0162$1 = cst_0_0162$5, - _fx_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fr_ = - [0, - cst_examples_aides_logement_ar$0, - 881, - 6, - 888, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$2, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$25 = cst_0$359, - cst_0_0281$0 = cst_0_0281$5, - cst_0_0299$0 = cst_0_0299$5, - cst_1$9 = cst_1$254, - cst_0_0238$3 = cst_0_0238$8, - cst_2$11 = cst_2$105, - cst_0_0217$0 = cst_0_0217$5, - cst_3$10 = cst_3$101, - cst_0_0194$0 = cst_0_0194$5, - cst_4$9 = cst_4$98, - cst_0_018$0 = cst_0_018$5, - cst_5$3 = cst_5$158, - cst_0_0169$0 = cst_0_0169$5, - cst_0_0162$0 = cst_0_0162$5, - _fy_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fq_ = - [0, - cst_examples_aides_logement_ar$0, - 385, - 6, - 392, - 28, - [0, - cst_Article_46, - [0, - cst_Articles_en_vigueur_partir$3, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$24 = cst_0$359, - cst_0_0281 = cst_0_0281$5, - cst_0_0299 = cst_0_0299$5, - cst_1$8 = cst_1$254, - cst_0_0238$2 = cst_0_0238$8, - cst_2$10 = cst_2$105, - cst_0_0217 = cst_0_0217$5, - cst_3$9 = cst_3$101, - cst_0_0194 = cst_0_0194$5, - cst_4$8 = cst_4$98, - cst_0_018 = cst_0_018$5, - cst_5$2 = cst_5$158, - cst_0_0169 = cst_0_0169$5, - cst_0_0162 = cst_0_0162$5, - _fz_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fC_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fl_ = - [0, - cst_examples_aides_logement_ar$0, - 2252, - 29, - 2252, - 55, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$23 = cst_0$359, - cst_0_0283$1 = cst_0_0283$2, - cst_0_0315$1 = cst_0_0315$2, - cst_1$7 = cst_1$254, - cst_0_027$1 = cst_0_027$2, - cst_2$9 = cst_2$105, - cst_0_0238$1 = cst_0_0238$8, - cst_3$8 = cst_3$101, - cst_0_0201$1 = cst_0_0201$2, - cst_4$7 = cst_4$98, - cst_0_0185$1 = cst_0_0185$2, - cst_5$1 = cst_5$158, - cst_0_0179$1 = cst_0_0179$2, - cst_6$6 = cst_6$92, - cst_0_0173$3 = cst_0_0173$5, - cst_6$7 = cst_6$92, - cst_0_0006$1 = cst_0_0006$3, - cst_0_0173$4 = cst_0_0173$5, - _fm_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fk_ = - [0, - cst_examples_aides_logement_ar$0, - 1168, - 29, - 1168, - 55, - [0, - cst_Article_14, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - cst_0$22 = cst_0$359, - cst_0_0283$0 = cst_0_0283$2, - cst_0_0315$0 = cst_0_0315$2, - cst_1$6 = cst_1$254, - cst_0_027$0 = cst_0_027$2, - cst_2$8 = cst_2$105, - cst_0_0238$0 = cst_0_0238$8, - cst_3$7 = cst_3$101, - cst_0_0201$0 = cst_0_0201$2, - cst_4$6 = cst_4$98, - cst_0_0185$0 = cst_0_0185$2, - cst_5$0 = cst_5$158, - cst_0_0179$0 = cst_0_0179$2, - cst_6$4 = cst_6$92, - cst_0_0173$1 = cst_0_0173$5, - cst_6$5 = cst_6$92, - cst_0_0006$0 = cst_0_0006$3, - cst_0_0173$2 = cst_0_0173$5, - _fn_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fj_ = - [0, - cst_examples_aides_logement_ar, - 360, - 29, - 360, - 55, - [0, - cst_Article_14, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$21 = cst_0$359, - cst_0_0283 = cst_0_0283$2, - cst_0_0315 = cst_0_0315$2, - cst_1$5 = cst_1$254, - cst_0_027 = cst_0_027$2, - cst_2$7 = cst_2$105, - cst_0_0238 = cst_0_0238$8, - cst_3$6 = cst_3$101, - cst_0_0201 = cst_0_0201$2, - cst_4$5 = cst_4$98, - cst_0_0185 = cst_0_0185$2, - cst_5 = cst_5$158, - cst_0_0179 = cst_0_0179$2, - cst_6$2 = cst_6$92, - cst_0_0173 = cst_0_0173$5, - cst_6$3 = cst_6$92, - cst_0_0006 = cst_0_0006$3, - cst_0_0173$0 = cst_0_0173$5, - _fo_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fp_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ff_ = - [0, - cst_examples_aides_logement_co$0, - 4219, - 14, - 4219, - 29, - [0, - "Article D842-2", - [0, - cst_Section_1_Secteur_locatif_, - [0, - cst_Chapitre_2_Modalit_s_de_li, - [0, - cst_Titre_IV_Allocations_de_Lo, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_3$5 = cst_3$102, - cst_2$6 = cst_2$106, - _fb_ = - [0, - cst_examples_aides_logement_ar, - 298, - 14, - 298, - 42, - [0, - "Article 12", - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0$20 = cst_0$359, - cst_1000 = cst_1000$5, - cst_1000$0 = cst_1000$5, - _e6_ = - [0, - cst_examples_aides_logement_ar$0, - 2189, - 14, - 2189, - 55, - [0, - cst_Article_9, - [0, - cst_Articles_en_vigueur_partir$0, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - _e7_ = - [0, - cst_examples_aides_logement_pr, - 605, - 11, - 605, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _e5_ = - [0, - cst_examples_aides_logement_ar$0, - 1106, - 14, - 1106, - 55, - [0, - cst_Article_9, - [0, - cst_Articles_en_vigueur_partir$1, - [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], - _e8_ = - [0, - cst_examples_aides_logement_pr, - 605, - 11, - 605, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _e4_ = - [0, - cst_examples_aides_logement_ar, - 235, - 14, - 235, - 55, - [0, - cst_Article_9, - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - _e9_ = - [0, - cst_examples_aides_logement_pr, - 605, - 11, - 605, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _e0_ = - [0, - cst_examples_aides_logement_ar, - 285, - 14, - 285, - 41, - [0, - "Article 11", - [0, - cst_Chapitre_III_Calcul_des_ai, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_500 = cst_500$4, - _eU_ = - [0, - cst_examples_aides_logement_pr, - 629, - 14, - 629, - 50, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _eQ_ = - [0, - cst_examples_aides_logement_co$0, - 1887, - 14, - 1887, - 29, - [0, - cst_Article_D823_16, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0_98 = cst_0_98$1, - _eR_ = - [0, - cst_examples_aides_logement_pr, - 597, - 11, - 597, - 26, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _eP_ = - [0, - cst_examples_aides_logement_pr, - 597, - 11, - 597, - 26, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _eS_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, "fraction_l832_3", 0]], - _eV_ = - [0, - cst_examples_aides_logement_pr, - 629, - 14, - 629, - 50, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _eW_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_contributions_sociales_dat, 0]], - _eT_ = - [0, - cst_examples_aides_logement_pr, - 629, - 14, - 629, - 50, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _eX_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], - _eY_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], - _e1_ = - [0, - cst_examples_aides_logement_pr, - 600, - 11, - 600, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _eZ_ = - [0, - cst_examples_aides_logement_pr, - 600, - 11, - 600, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _e2_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "montant_forfaitaire_d823_16", 0]], - _e__ = - [0, - cst_examples_aides_logement_pr, - 605, - 11, - 605, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _e3_ = - [0, - cst_examples_aides_logement_pr, - 605, - 11, - 605, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _e$_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "multiplicateur_majoration_charges_d823_16", 0]], - _fc_ = - [0, - cst_examples_aides_logement_pr, - 601, - 11, - 601, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fa_ = - [0, - cst_examples_aides_logement_pr, - 601, - 11, - 601, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fd_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "montant_minimal_aide_d823_16", 0]], - _fg_ = - [0, - cst_examples_aides_logement_pr, - 574, - 10, - 574, - 31, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fe_ = - [0, - cst_examples_aides_logement_pr, - 574, - 10, - 574, - 31, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fh_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "loyer_principal_avec_r\xc3\xa9duction_meubl\xc3\xa9", 0]], - _fD_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fi_ = - [0, - cst_examples_aides_logement_pr, - 612, - 12, - 612, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fE_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_taux_composition_familiale$0, 0]], - _f0_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _fF_ = - [0, - cst_examples_aides_logement_pr, - 607, - 11, - 607, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _f1_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "multiplicateur_majoration_r0", 0]], - _gj_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _f2_ = - [0, - cst_examples_aides_logement_pr, - 606, - 11, - 606, - 52, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gk_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "multiplicateur_majoration_loyer_r\xc3\xa9f\xc3\xa9rence", 0]], - _gI_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gl_ = - [0, - cst_examples_aides_logement_pr, - 604, - 11, - 604, - 60, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gJ_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "multiplicateur_majoration_plafond_loyer_d823_16_2", 0]], - _hp_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _gK_ = - [0, - cst_examples_aides_logement_pr, - 609, - 12, - 609, - 47, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hq_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_montant_forfaitaire_charge$2, 0]], - _hW_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hr_ = - [0, - cst_examples_aides_logement_pr, - 602, - 11, - 602, - 41, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hX_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "abattement_forfaitaire_d823_17", 0]], - _h5_ = - [0, - cst_examples_aides_logement_pr, - 596, - 11, - 596, - 26, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _hY_ = - [0, - cst_examples_aides_logement_pr, - 596, - 11, - 596, - 26, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _h6_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "loyer_r\xc3\xa9f\xc3\xa9rence", 0]], - _iX_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _h7_ = - [0, - cst_examples_aides_logement_pr, - 610, - 12, - 610, - 35, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _iY_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_plafond_loyer_d823_16_2$0, 0]], - _i1_ = - [0, - cst_examples_aides_logement_pr, - 599, - 11, - 599, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _iZ_ = - [0, - cst_examples_aides_logement_pr, - 599, - 11, - 599, - 38, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _i2_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "plafond_suppression_d823_16", 0]], - _i5_ = - [0, - cst_examples_aides_logement_pr, - 598, - 11, - 598, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _i3_ = - [0, - cst_examples_aides_logement_pr, - 598, - 11, - 598, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _i6_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "plafond_d\xc3\xa9gressivit\xc3\xa9_d823_16", 0]], - _i9_ = - [0, - cst_examples_aides_logement_pr, - 591, - 11, - 591, - 25, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _i7_ = - [0, - cst_examples_aides_logement_pr, - 591, - 11, - 591, - 25, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _i__ = - [0, cst_CalculAidePersonnalis_eLog$0, [0, "loyer_\xc3\xa9ligible", 0]], - _je_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_dim, 0]], - _jm_ = - [0, - cst_examples_aides_logement_pr, - 611, - 12, - 611, - 34, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jf_ = - [0, - cst_examples_aides_logement_pr, - 611, - 12, - 611, - 34, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jn_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_participation_minimale$0, 0]], - _jv_ = - [0, - cst_examples_aides_logement_pr, - 595, - 11, - 595, - 25, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jo_ = - [0, - cst_examples_aides_logement_pr, - 595, - 11, - 595, - 25, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jw_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, "rapport_loyers", 0]], - _jE_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_min, 0]], - _jM_ = - [0, - cst_examples_aides_logement_pr, - 593, - 10, - 593, - 17, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jF_ = - [0, - cst_examples_aides_logement_pr, - 593, - 10, - 593, - 17, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _jN_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "taux_loyer_\xc3\xa9ligible_formule", 0]], - _jZ_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_con, 0]], - _j7_ = - [0, - cst_examples_aides_logement_pr, - 594, - 10, - 594, - 22, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _j0_ = - [0, - cst_examples_aides_logement_pr, - 594, - 10, - 594, - 22, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _j8_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "taux_loyer_\xc3\xa9ligible_taux_arrondi", 0]], - _ke_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_r_d, 0]], - _kh_ = - [0, - cst_examples_aides_logement_pr, - 603, - 11, - 603, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kf_ = - [0, - cst_examples_aides_logement_pr, - 603, - 11, - 603, - 39, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ki_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, "taux_prise_compte_ressources", 0]], - _kq_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_traitement_aide_finale_mon, 0]], - _kt_ = - [0, - cst_examples_aides_logement_pr, - 613, - 12, - 613, - 37, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kr_ = - [0, - cst_examples_aides_logement_pr, - 613, - 12, - 613, - 37, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ku_ = - [0, - cst_CalculAidePersonnalis_eLog$0, - [0, cst_participation_personnelle$0, 0]], - _kx_ = - [0, - cst_examples_aides_logement_pr, - 618, - 12, - 618, - 31, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kv_ = - [0, - cst_examples_aides_logement_pr, - 618, - 12, - 618, - 31, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _ky_ = - [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_aide_finale_formule$9, 0]], - cst_2_5$4 = cst_2_5$5, - _kz_ = - [0, - cst_examples_aides_logement_co$0, - 1840, - 13, - 1840, - 74, - [0, - cst_Article_D823_16, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _kI_ = - [0, - cst_examples_aides_logement_co$0, - 1840, - 13, - 1840, - 74, - [0, - cst_Article_D823_16, - [0, - cst_Sous_section_2_Calcul_de_l, - [0, - cst_Section_1_Calcul_liquidati, - [0, - cst_Chapitre_III_Modalit_s_de_, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0_98$0 = cst_0_98$1, - cst_0_9 = cst_0_9$3, - _kA_ = - [0, - cst_examples_aides_logement_co, - 854, - 13, - 854, - 61, - [0, - cst_Article_L832_3, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _kH_ = - [0, - cst_examples_aides_logement_co, - 854, - 13, - 854, - 61, - [0, - cst_Article_L832_3, - [0, - cst_Chapitre_Ier_Champ_d_appli, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], - _kB_ = - [0, - cst_examples_aides_logement_pr, - 640, - 13, - 640, - 53, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kG_ = - [0, - cst_examples_aides_logement_pr, - 640, - 13, - 640, - 53, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$76 = cst_0$359, - _kC_ = - [0, - cst_examples_aides_logement_pr, - 633, - 13, - 633, - 43, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kF_ = - [0, - cst_examples_aides_logement_pr, - 633, - 13, - 633, - 43, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kD_ = - [0, - cst_examples_aides_logement_pr, - 632, - 13, - 632, - 42, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _kE_ = - [0, - cst_examples_aides_logement_pr, - 632, - 13, - 632, - 42, - [0, - cst_Secteur_locatif, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - cst_0$19 = cst_0$359, - cst_100 = cst_100$13, - cst_49 = "49", - cst_0_01 = cst_0_01$1, - _eB_ = [7, 0], - _eC_ = [5, 0], - _eD_ = [4, 0], - _eE_ = [3, 0], - _eF_ = [2, 0], - _eG_ = [1, 0], - _eH_ = [0, 0], - _eI_ = [6, 0], - _eJ_ = - [0, - cst_examples_aides_logement_pr$3, - 34, - 5, - 43, - 6, - [0, - cst_Article_1, - [0, - cst_D_cret_n_2018_1173_du_19_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1003 = "1003", - _eK_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _ey_ = [8, 0], - _ez_ = - [0, - cst_examples_aides_logement_pr$3, - 52, - 5, - 54, - 6, - [0, - cst_Article_1, - [0, - cst_D_cret_n_2018_1173_du_19_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_757 = "757", - _eA_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _eo_ = [7, 0], - _ep_ = [5, 0], - _eq_ = [4, 0], - _er_ = [3, 0], - _es_ = [2, 0], - _et_ = [1, 0], - _eu_ = [0, 0], - _ev_ = [6, 0], - _ew_ = - [0, - cst_examples_aides_logement_pr$3, - 73, - 5, - 82, - 6, - [0, - cst_Article_1, - [0, - cst_D_cret_n_2019_1387_du_18_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1015 = "1015", - _ex_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _el_ = [8, 0], - _em_ = - [0, - cst_examples_aides_logement_pr$3, - 91, - 5, - 93, - 6, - [0, - cst_Article_1, - [0, - cst_D_cret_n_2019_1387_du_18_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_766 = "766", - _en_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _eb_ = [7, 0], - _ec_ = [5, 0], - _ed_ = [4, 0], - _ee_ = [3, 0], - _ef_ = [2, 0], - _eg_ = [1, 0], - _eh_ = [0, 0], - _ei_ = [6, 0], - _ej_ = - [0, - cst_examples_aides_logement_pr$3, - 112, - 5, - 121, - 6, - [0, - cst_Article_1, - [0, - cst_D_cret_n_2020_1598_du_16_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1025 = "1025", - _ek_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _d__ = [8, 0], - _d$_ = - [0, - cst_examples_aides_logement_pr$3, - 130, - 5, - 132, - 6, - [0, - cst_Article_1, - [0, - cst_D_cret_n_2020_1598_du_16_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_774 = "774", - _ea_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _d0_ = [7, 0], - _d1_ = [5, 0], - _d2_ = [4, 0], - _d3_ = [3, 0], - _d4_ = [2, 0], - _d5_ = [1, 0], - _d6_ = [0, 0], - _d7_ = [6, 0], - _d8_ = - [0, - cst_examples_aides_logement_pr$3, - 151, - 5, - 160, - 6, - [0, - cst_Article_1, - [0, - cst_D_cret_n_2021_1741_du_22_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1057 = "1057", - _d9_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dX_ = [8, 0], - _dY_ = - [0, - cst_examples_aides_logement_pr$3, - 170, - 5, - 172, - 6, - [0, - cst_Article_1, - [0, - cst_D_cret_n_2021_1741_du_22_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_798 = "798", - _dZ_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dN_ = [7, 0], - _dO_ = [5, 0], - _dP_ = [4, 0], - _dQ_ = [3, 0], - _dR_ = [2, 0], - _dS_ = [1, 0], - _dT_ = [0, 0], - _dU_ = [6, 0], - _dV_ = - [0, - cst_examples_aides_logement_pr$3, - 191, - 5, - 200, - 6, - [0, - cst_Article_2, - [0, - cst_Arr_t_du_19_avril_2022_rel, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1085 = "1085", - _dW_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dK_ = [8, 0], - _dL_ = - [0, - cst_examples_aides_logement_pr$3, - 209, - 5, - 211, - 6, - [0, - cst_Article_2, - [0, - cst_Arr_t_du_19_avril_2022_rel, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_819 = "819", - _dM_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dA_ = [7, 0], - _dB_ = [5, 0], - _dC_ = [4, 0], - _dD_ = [3, 0], - _dE_ = [2, 0], - _dF_ = [1, 0], - _dG_ = [0, 0], - _dH_ = [6, 0], - _dI_ = - [0, - cst_examples_aides_logement_pr$3, - 230, - 5, - 239, - 6, - [0, - cst_Article_2, - [0, - cst_Arr_t_du_29_juillet_2022_r, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1107 = "1107", - _dJ_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dx_ = [8, 0], - _dy_ = - [0, - cst_examples_aides_logement_pr$3, - 248, - 5, - 250, - 6, - [0, - cst_Article_2, - [0, - cst_Arr_t_du_29_juillet_2022_r, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_835 = "835", - _dz_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dn_ = [7, 0], - _do_ = [5, 0], - _dp_ = [4, 0], - _dq_ = [3, 0], - _dr_ = [2, 0], - _ds_ = [1, 0], - _dt_ = [0, 0], - _du_ = [6, 0], - _dv_ = - [0, - cst_examples_aides_logement_pr$3, - 270, - 5, - 279, - 6, - [0, - cst_Article_1, - [0, - cst_D_cret_n_2022_1608_du_22_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_1127 = "1127", - _dw_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dk_ = [8, 0], - _dl_ = - [0, - cst_examples_aides_logement_pr$3, - 288, - 5, - 290, - 6, - [0, - cst_Article_1, - [0, - cst_D_cret_n_2022_1608_du_22_d, - [0, cst_Montant_du_salaire_minimum, 0]]]], - cst_851 = "851", - _dm_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _eL_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dj_ = - [0, - cst_examples_aides_logement_pr$3, - 11, - 12, - 11, - 24, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _eM_ = [0, cst_Smic, [0, cst_brut_horaire$0, 0]], - _eN_ = - [0, - cst_examples_aides_logement_pr$3, - 16, - 13, - 16, - 42, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _eO_ = - [0, - cst_examples_aides_logement_pr$3, - 16, - 13, - 16, - 42, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dg_ = - [0, - cst_examples_aides_logement_pr$4, - 36, - 14, - 36, - 27, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dh_ = - [0, - cst_examples_aides_logement_pr$4, - 33, - 12, - 33, - 25, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _df_ = - [0, - cst_examples_aides_logement_pr$4, - 33, - 12, - 33, - 25, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _di_ = [0, cst_V_rification_geSup_rieur, [0, cst_est_sup_rieur$0, 0]], - _dc_ = - [0, - cst_examples_aides_logement_pr$4, - 25, - 14, - 25, - 35, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _dd_ = - [0, - cst_examples_aides_logement_pr$4, - 22, - 12, - 22, - 33, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _db_ = - [0, - cst_examples_aides_logement_pr$4, - 22, - 12, - 22, - 33, - [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], - _de_ = - [0, cst_V_rification_geInf_rieurOu, [0, cst_est_inf_rieur_ou_gal$0, 0]], - _c7_ = - [0, - cst_examples_aides_logement_ba, - 32, - 5, - 33, - 33, - [0, - "Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole", - [0, cst_Montant_de_la_base_mensuel, 0]]], - cst_41316 = "41316", - _c8_ = - [0, - cst_examples_aides_logement_ba, - 6, - 12, - 6, - 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _c5_ = - [0, - cst_examples_aides_logement_ba, - 52, - 5, - 53, - 33, - [0, - "Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", - [0, cst_Montant_de_la_base_mensuel, 0]]], - cst_41440 = "41440", - _c6_ = - [0, - cst_examples_aides_logement_ba, - 6, - 12, - 6, - 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _c3_ = - [0, - cst_examples_aides_logement_ba, - 68, - 5, - 69, - 33, - [0, - "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", - [0, cst_Montant_de_la_base_mensuel, 0]]], - cst_41481 = "41481", - _c4_ = - [0, - cst_examples_aides_logement_ba, - 6, - 12, - 6, - 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _c1_ = - [0, - cst_examples_aides_logement_ba, - 86, - 5, - 86, - 34, - [0, - "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", - [0, cst_Montant_de_la_base_mensuel, 0]]], - cst_42228 = "42228", - _c2_ = - [0, - cst_examples_aides_logement_ba, - 6, - 12, - 6, - 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _c9_ = - [0, - cst_examples_aides_logement_ba, - 6, - 12, - 6, - 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _c0_ = - [0, - cst_examples_aides_logement_ba, - 6, - 12, - 6, - 19, - [0, cst_Montant_de_la_base_mensuel, 0]], - _c__ = [0, cst_BaseMensuelleAllocationsFa, [0, cst_montant$2, 0]], - _c$_ = - [0, - cst_examples_aides_logement_ba, - 10, - 13, - 10, - 42, - [0, cst_Montant_de_la_base_mensuel, 0]], - _da_ = - [0, - cst_examples_aides_logement_ba, - 10, - 13, - 10, - 42, - [0, cst_Montant_de_la_base_mensuel, 0]], - _cV_ = - [0, - cst_examples_aides_logement_co$0, - 2242, - 14, - 2242, - 28, - [0, - cst_Article_R824_2, - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0$18 = cst_0$359, - _cW_ = - [0, - cst_examples_aides_logement_pr, - 1138, - 12, - 1138, - 26, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cU_ = - [0, - cst_examples_aides_logement_co$0, - 2179, - 14, - 2179, - 28, - [0, - cst_Article_R824_1, - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0$17 = cst_0$359, - _cX_ = - [0, - cst_examples_aides_logement_pr, - 1138, - 12, - 1138, - 26, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cP_ = - [0, - cst_examples_aides_logement_co$0, - 2184, - 20, - 2184, - 55, - [0, - cst_Article_R824_1, - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0$15 = cst_0$359, - cst_0$16 = cst_0$359, - cst_2$5 = cst_2$106, - _cQ_ = - [0, - cst_examples_aides_logement_pr, - 1133, - 11, - 1133, - 43, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cN_ = - [0, - cst_examples_aides_logement_co$0, - 2200, - 20, - 2200, - 51, - [0, - cst_Article_R824_1, - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0$13 = cst_0$359, - cst_0$14 = cst_0$359, - cst_2$4 = cst_2$106, - _cO_ = - [0, - cst_examples_aides_logement_pr, - 1133, - 11, - 1133, - 43, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cL_ = - [0, - cst_examples_aides_logement_co$0, - 2266, - 7, - 2266, - 42, - [0, - cst_Article_R824_2, - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_6$1 = cst_6$93, - cst_1$4 = cst_1$255, - cst_2$3 = cst_2$106, - cst_0$12 = cst_0$359, - _cM_ = - [0, - cst_examples_aides_logement_pr, - 1133, - 11, - 1133, - 43, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cJ_ = - [0, - cst_examples_aides_logement_co$0, - 2294, - 7, - 2294, - 51, - [0, - cst_Article_R824_2, - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_6$0 = cst_6$93, - cst_1$3 = cst_1$255, - cst_2$2 = cst_2$106, - cst_0$11 = cst_0$359, - _cK_ = - [0, - cst_examples_aides_logement_pr, - 1133, - 11, - 1133, - 43, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cE_ = - [0, - cst_examples_aides_logement_co$0, - 2223, - 14, - 2223, - 36, - [0, - cst_Article_R824_1, - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _cF_ = - [0, - cst_examples_aides_logement_pr, - 1136, - 11, - 1136, - 33, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cC_ = - [0, - cst_examples_aides_logement_co$0, - 2319, - 14, - 2319, - 36, - [0, - cst_Article_R824_2, - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_12$1 = cst_12$4, - _cD_ = - [0, - cst_examples_aides_logement_pr, - 1136, - 11, - 1136, - 33, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cw_ = - [0, - cst_examples_aides_logement_co$0, - 2310, - 14, - 2310, - 36, - [0, - cst_Article_R824_2, - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _cx_ = - [0, - cst_examples_aides_logement_pr, - 1135, - 11, - 1135, - 33, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cv_ = - [0, - cst_examples_aides_logement_co$0, - 2214, - 14, - 2214, - 36, - [0, - cst_Article_R824_1, - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _cy_ = - [0, - cst_examples_aides_logement_pr, - 1135, - 11, - 1135, - 33, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cr_ = - [0, - cst_examples_aides_logement_co$0, - 2342, - 14, - 2342, - 36, - [0, - "Article R824-3", - [0, - cst_Section_1_Seuils_de_consti, - [0, - cst_Chapitre_IV_Impay_s_de_d_p, - [0, - cst_Titre_II_Dispositions_comm, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - _cm_ = [0, 0], - _cn_ = [1, 0], - _co_ = [1, 0], - _cp_ = [0, 0], - _cq_ = [0, 0], - _cs_ = - [0, - cst_examples_aides_logement_pr, - 1134, - 11, - 1134, - 33, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cl_ = - [0, - cst_examples_aides_logement_pr, - 1134, - 11, - 1134, - 33, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ct_ = - [0, cst_Impay_D_penseLogement, [0, "mode_occupation_impay\xc3\xa9", 0]], - _cz_ = - [0, - cst_examples_aides_logement_pr, - 1135, - 11, - 1135, - 33, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cu_ = - [0, - cst_examples_aides_logement_pr, - 1135, - 11, - 1135, - 33, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cA_ = - [0, cst_Impay_D_penseLogement, [0, "d\xc3\xa9pense_logement_brute", 0]], - _cG_ = - [0, - cst_examples_aides_logement_pr, - 1136, - 11, - 1136, - 33, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cB_ = - [0, - cst_examples_aides_logement_pr, - 1136, - 11, - 1136, - 33, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cH_ = - [0, cst_Impay_D_penseLogement, [0, "d\xc3\xa9pense_logement_nette", 0]], - _cR_ = - [0, - cst_examples_aides_logement_pr, - 1133, - 11, - 1133, - 43, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cI_ = - [0, - cst_examples_aides_logement_pr, - 1133, - 11, - 1133, - 43, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cS_ = - [0, - cst_Impay_D_penseLogement, - [0, "seuil_impay\xc3\xa9_d\xc3\xa9pense_de_logement", 0]], - _cY_ = - [0, - cst_examples_aides_logement_pr, - 1138, - 12, - 1138, - 26, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cT_ = - [0, - cst_examples_aides_logement_pr, - 1138, - 12, - 1138, - 26, - [0, - cst_Quantification_des_impay_s, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cZ_ = [0, cst_Impay_D_penseLogement, [0, cst_montant_impay$0, 0]], - _ch_ = - [0, - cst_examples_aides_logement_co$1, - 119, - 5, - 119, - 42, - [0, - cst_Article_L161_17_2, - [0, - cst_Paragraphe_1_Information_e, - [0, - cst_Sous_section_4_Assurance_v, - [0, - cst_Section_1_B_n_ficiaires, - [0, - cst_Chapitre_1er_Dispositions_, - [0, - cst_Titre_VI_Dispositions_rela, - [0, - cst_Titre_III_Titre_III_Dispos, - [0, - cst_Partie_l_gislative, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], - _ci_ = - [0, - cst_examples_aides_logement_pr, - 1118, - 12, - 1118, - 31, - [0, - cst_Date_d_ouverture_des_droit, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cf_ = - [0, - cst_examples_aides_logement_co$1, - 256, - 5, - 256, - 41, - [0, - cst_Article_D161_2_1_9, - [0, - cst_Paragraphe_2_Ouverture_du_, - [0, - cst_Sous_section_4_Assurance_v, - [0, - cst_Section_1_B_n_ficiaires, - [0, - cst_Chapitre_1er_Dispositions_, - [0, - cst_Titre_VI_Dispositions_rela, - [0, - cst_Livre_I_G_n_ralit_s_Dispos, - [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], - _cg_ = - [0, - cst_examples_aides_logement_pr, - 1118, - 12, - 1118, - 31, - [0, - cst_Date_d_ouverture_des_droit, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cd_ = - [0, - cst_examples_aides_logement_co$1, - 266, - 5, - 267, - 42, - [0, - cst_Article_D161_2_1_9, - [0, - cst_Paragraphe_2_Ouverture_du_, - [0, - cst_Sous_section_4_Assurance_v, - [0, - cst_Section_1_B_n_ficiaires, - [0, - cst_Chapitre_1er_Dispositions_, - [0, - cst_Titre_VI_Dispositions_rela, - [0, - cst_Livre_I_G_n_ralit_s_Dispos, - [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], - _ce_ = - [0, - cst_examples_aides_logement_pr, - 1118, - 12, - 1118, - 31, - [0, - cst_Date_d_ouverture_des_droit, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_1952 = "1952", - _cb_ = - [0, - cst_examples_aides_logement_co$1, - 276, - 5, - 276, - 48, - [0, - cst_Article_D161_2_1_9, - [0, - cst_Paragraphe_2_Ouverture_du_, - [0, - cst_Sous_section_4_Assurance_v, - [0, - cst_Section_1_B_n_ficiaires, - [0, - cst_Chapitre_1er_Dispositions_, - [0, - cst_Titre_VI_Dispositions_rela, - [0, - cst_Livre_I_G_n_ralit_s_Dispos, - [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], - _cc_ = - [0, - cst_examples_aides_logement_pr, - 1118, - 12, - 1118, - 31, - [0, - cst_Date_d_ouverture_des_droit, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_1953 = "1953", - _b$_ = - [0, - cst_examples_aides_logement_co$1, - 285, - 5, - 285, - 48, - [0, - cst_Article_D161_2_1_9, - [0, - cst_Paragraphe_2_Ouverture_du_, - [0, - cst_Sous_section_4_Assurance_v, - [0, - cst_Section_1_B_n_ficiaires, - [0, - cst_Chapitre_1er_Dispositions_, - [0, - cst_Titre_VI_Dispositions_rela, - [0, - cst_Livre_I_G_n_ralit_s_Dispos, - [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], - _ca_ = - [0, - cst_examples_aides_logement_pr, - 1118, - 12, - 1118, - 31, - [0, - cst_Date_d_ouverture_des_droit, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_1954 = "1954", - _b9_ = - [0, - cst_examples_aides_logement_co$1, - 294, - 5, - 294, - 48, - [0, - cst_Article_D161_2_1_9, - [0, - cst_Paragraphe_2_Ouverture_du_, - [0, - cst_Sous_section_4_Assurance_v, - [0, - cst_Section_1_B_n_ficiaires, - [0, - cst_Chapitre_1er_Dispositions_, - [0, - cst_Titre_VI_Dispositions_rela, - [0, - cst_Livre_I_G_n_ralit_s_Dispos, - [0, - cst_Partie_r_glementaire_D_cre, - [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], - _b__ = - [0, - cst_examples_aides_logement_pr, - 1118, - 12, - 1118, - 31, - [0, - cst_Date_d_ouverture_des_droit, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _cj_ = - [0, - cst_examples_aides_logement_pr, - 1118, - 12, - 1118, - 31, - [0, - cst_Date_d_ouverture_des_droit, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _b8_ = - [0, - cst_examples_aides_logement_pr, - 1118, - 12, - 1118, - 31, - [0, - cst_Date_d_ouverture_des_droit, - [0, - cst_Calcul_du_montant_de_l_all, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ck_ = [0, cst_OuvertureDroitsRetraite, [0, cst_ge_ouverture_droit$0, 0]], - _b5_ = - [0, - cst_examples_aides_logement_co$0, - 3257, - 14, - 3257, - 36, - [0, - cst_Article_D832_11, - [0, - cst_Section_2_Accession_la_pro, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]], - cst_0$10 = cst_0$359, - cst_1_4$0 = cst_1_4$1, - cst_1_8$0 = cst_1_8$1, - cst_1$2 = cst_1$254, - cst_2_5$1 = cst_2_5$5, - cst_2$1 = cst_2$105, - cst_3$3 = cst_3$102, - cst_3$4 = cst_3$101, - cst_3_7$1 = cst_3_7$2, - cst_4$3 = cst_4$98, - cst_4_3$1 = cst_4_3$3, - cst_4$4 = cst_4$98, - cst_0_5$1 = cst_0_5$2, - cst_4_3$2 = cst_4_3$3, - _b6_ = - [0, - cst_examples_aides_logement_pr, - 735, - 12, - 735, - 34, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _b4_ = - [0, - cst_examples_aides_logement_pr, - 735, - 12, - 735, - 34, - [0, - cst_Secteur_accession_la_propr, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _b7_ = - [0, - cst_CalculNombrePartsAccession, - [0, cst_n_nombre_parts_d832_11$0, 0]], - _b1_ = - [0, - cst_examples_aides_logement_co$0, - 3933, - 14, - 3933, - 36, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_6 = cst_6$92, - _bV_ = - [0, - cst_examples_aides_logement_co$0, - 5522, - 5, - 5529, - 28, - [0, - cst_Article_D861_8, - [0, - cst_Section_2_Allocations_de_l, - [0, - cst_Titre_VI_Disposition_parti, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]], - cst_1$1 = cst_1$255, - _bW_ = - [0, - cst_examples_aides_logement_pr, - 668, - 11, - 668, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bU_ = - [0, - cst_examples_aides_logement_co$0, - 4024, - 5, - 4024, - 26, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_4$1 = cst_4$98, - cst_4$2 = cst_4$98, - cst_0_5$0 = cst_0_5$2, - cst_0$9 = cst_0$360, - _bX_ = - [0, - cst_examples_aides_logement_pr, - 668, - 11, - 668, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bT_ = - [0, - cst_examples_aides_logement_co$0, - 3928, - 14, - 3928, - 47, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_4 = cst_4$98, - cst_4$0 = cst_4$98, - cst_0_5 = cst_0_5$2, - cst_0$8 = cst_0$360, - _bO_ = - [0, - cst_examples_aides_logement_co$0, - 4007, - 5, - 4007, - 26, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$7 = cst_0$359, - cst_1_2 = "1.2", - cst_1_5 = "1.5", - cst_1$0 = cst_1$254, - cst_2_5$0 = cst_2_5$5, - cst_2$0 = cst_2$105, - cst_3$1 = cst_3$102, - cst_3$2 = cst_3$101, - cst_3_7$0 = cst_3_7$2, - cst_4_3$0 = cst_4_3$3, - _bP_ = - [0, - cst_examples_aides_logement_pr, - 667, - 11, - 667, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bN_ = - [0, - cst_examples_aides_logement_co$0, - 3913, - 14, - 3913, - 41, - [0, - cst_Article_D832_25, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$6 = cst_0$359, - cst_1_4 = cst_1_4$1, - cst_1_8 = cst_1_8$1, - cst_1 = cst_1$254, - cst_2_5 = cst_2_5$5, - cst_2 = cst_2$105, - cst_3 = cst_3$102, - cst_3$0 = cst_3$101, - cst_3_7 = cst_3_7$2, - cst_4_3 = cst_4_3$3, - _bI_ = - [0, - cst_examples_aides_logement_pr, - 665, - 12, - 665, - 52, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bJ_ = - [0, - cst_examples_aides_logement_pr, - 665, - 12, - 665, - 52, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bK_ = - [0, - cst_examples_aides_logement_pr, - 665, - 12, - 665, - 52, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bH_ = - [0, - cst_examples_aides_logement_pr, - 665, - 12, - 665, - 52, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bL_ = - [0, - cst_CalculNombrePartLogementFo, - [0, cst_limitation_majoration_pers$1, 0]], - _bQ_ = - [0, - cst_examples_aides_logement_pr, - 667, - 11, - 667, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bM_ = - [0, - cst_examples_aides_logement_pr, - 667, - 11, - 667, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bR_ = - [0, - cst_CalculNombrePartLogementFo, - [0, "n_nombre_parts_d832_25_base", 0]], - _bY_ = - [0, - cst_examples_aides_logement_pr, - 668, - 11, - 668, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bS_ = - [0, - cst_examples_aides_logement_pr, - 668, - 11, - 668, - 44, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bZ_ = - [0, - cst_CalculNombrePartLogementFo, - [0, "n_nombre_parts_d832_25_majoration", 0]], - _b2_ = - [0, - cst_examples_aides_logement_pr, - 670, - 12, - 670, - 34, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _b0_ = - [0, - cst_examples_aides_logement_pr, - 670, - 12, - 670, - 34, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _b3_ = - [0, - cst_CalculNombrePartLogementFo, - [0, cst_n_nombre_parts_d832_25$1, 0]], - _bD_ = - [0, - cst_examples_aides_logement_co$0, - 4097, - 5, - 4097, - 26, - [0, - cst_Article_D832_26, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$4 = cst_0$360, - cst_12$0 = cst_12$4, - cst_0$5 = cst_0$360, - _bE_ = - [0, - cst_examples_aides_logement_pr, - 657, - 12, - 657, - 19, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bC_ = - [0, - cst_examples_aides_logement_co$0, - 4059, - 14, - 4059, - 21, - [0, - cst_Article_D832_26, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - cst_0$2 = cst_0$360, - cst_12 = cst_12$4, - cst_0$3 = cst_0$360, - _by_ = - [0, - cst_examples_aides_logement_co$0, - 4046, - 14, - 4046, - 50, - [0, - cst_Article_D832_26, - [0, - cst_Sous_Section_2_Conditions_, - [0, - cst_Section_3_Logements_foyers, - [0, - cst_Chapitre_II_Modalit_s_de_l, - [0, - cst_Titre_III_Aide_personnalis, - [0, - cst_Livre_VIII_Aides_personnel, - [0, - cst_Partie_r_glementaire, - [0, cst_Code_de_la_construction_et, 0]]]]]]]]], - _bx_ = [1, 0], - _bs_ = - [0, - cst_examples_aides_logement_ar, - 2684, - 5, - 2684, - 26, - [0, - cst_Article_31, - [0, - cst_Chapitre_V_Calcul_de_l_aid, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0_328 = "0.328", - cst_409505 = cst_409505$1, - _br_ = [1, 0], - cst_0_232 = "0.232", - cst_262985 = cst_262985$1, - cst_409505$0 = cst_409505$1, - cst_0_208 = cst_0_208$1, - cst_204761 = cst_204761$1, - cst_262985$0 = cst_262985$1, - cst_0_024 = "0.024", - cst_142303 = cst_142303$1, - cst_204761$0 = cst_204761$1, - cst_0$0 = cst_0$360, - cst_0$1 = cst_0$359, - cst_142303$0 = cst_142303$1, - _bt_ = - [0, - cst_examples_aides_logement_pr, - 652, - 11, - 652, - 35, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bq_ = - [0, - cst_examples_aides_logement_ar, - 2634, - 14, - 2634, - 38, - [0, - cst_Article_31, - [0, - cst_Chapitre_V_Calcul_de_l_aid, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_0_48 = "0.48", - cst_633129 = cst_633129$1, - _bp_ = [1, 0], - cst_0_32 = "0.32", - cst_535744 = cst_535744$1, - cst_633129$0 = cst_633129$1, - cst_0_264 = "0.264", - cst_389618 = cst_389618$1, - cst_535744$0 = cst_535744$1, - cst_0_216 = "0.216", - cst_267871 = cst_267871$1, - cst_389618$0 = cst_389618$1, - cst_0_104 = "0.104", - cst_194810 = cst_194810$1, - cst_267871$0 = cst_267871$1, - cst_0_04 = "0.04", - cst_0 = cst_0$359, - cst_194810$0 = cst_194810$1, - _bl_ = - [0, - cst_examples_aides_logement_ar, - 2720, - 14, - 2720, - 41, - [0, - cst_Article_31, - [0, - cst_Chapitre_V_Calcul_de_l_aid, - [0, cst_Arr_t_du_27_septembre_2019, 0]]]], - cst_7632 = "7632", - cst_4557 = "4557", - _bm_ = - [0, - cst_examples_aides_logement_pr, - 655, - 11, - 655, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bk_ = - [0, - cst_examples_aides_logement_pr, - 655, - 11, - 655, - 38, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bn_ = - [0, - cst_Calcul_quivalenceLoyerMini, - [0, "montant_forfaitaire_d832_26", 0]], - _bu_ = - [0, - cst_examples_aides_logement_pr, - 652, - 11, - 652, - 35, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bo_ = - [0, - cst_examples_aides_logement_pr, - 652, - 11, - 652, - 35, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bv_ = - [0, cst_Calcul_quivalenceLoyerMini, [0, "tranches_revenus_d832_26", 0]], - _bz_ = - [0, - cst_examples_aides_logement_pr, - 653, - 11, - 653, - 47, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bw_ = - [0, - cst_examples_aides_logement_pr, - 653, - 11, - 653, - 47, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bA_ = - [0, - cst_Calcul_quivalenceLoyerMini, - [0, "tranches_revenus_d832_26_multipli\xc3\xa9es", 0]], - _bF_ = - [0, - cst_examples_aides_logement_pr, - 657, - 12, - 657, - 19, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bB_ = - [0, - cst_examples_aides_logement_pr, - 657, - 12, - 657, - 19, - [0, - cst_Secteur_logement_foyer, - [0, - cst_Calcul_du_montant_de_l_aid, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]]], - _bG_ = [0, cst_Calcul_quivalenceLoyerMini, [0, cst_montant$2, 0]], - _be_ = - [0, - cst_examples_aides_logement_au, - 152, - 5, - 152, - 34, - [0, - cst_Article_14, - [0, - cst_Chapitre_II_Des_contributi, - [0, cst_Ordonnance_n_96_50_du_24_j, 0]]]], - _bf_ = - [0, - cst_examples_aides_logement_pr, - 558, - 12, - 558, - 19, - [0, - cst_Calcul_des_contributions_s, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _bd_ = - [0, - cst_examples_aides_logement_pr, - 558, - 12, - 558, - 19, - [0, - cst_Calcul_des_contributions_s, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _ba_ = - [0, - cst_examples_aides_logement_au, - 190, - 39, - 190, - 68, - [0, - cst_Article_19, - [0, - cst_Chapitre_II_Des_contributi, - [0, cst_Ordonnance_n_96_50_du_24_j, 0]]]], - cst_0_005 = cst_0_005$3, - _a7_ = - [0, - cst_examples_aides_logement_co$1, - 37, - 9, - 37, - 20, - [0, - "Article L136-1-3", - [0, - "Section 1 : De la contribution sociale sur les revenus d'activit\xc3\xa9 et sur les revenus de remplacement", - [0, - "Chapitre 6 : Contribution sociale g\xc3\xa9n\xc3\xa9ralis\xc3\xa9e", - [0, - cst_Titre_III_Titre_III_Dispos, - [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], - _a8_ = - [0, - cst_examples_aides_logement_pr, - 556, - 11, - 556, - 22, - [0, - cst_Calcul_des_contributions_s, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _a6_ = - [0, - cst_examples_aides_logement_pr, - 556, - 11, - 556, - 22, - [0, - cst_Calcul_des_contributions_s, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _a9_ = - [0, - cst_examples_aides_logement_pr, - 556, - 11, - 556, - 22, - [0, - cst_Calcul_des_contributions_s, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _a5_ = - [0, - cst_examples_aides_logement_pr, - 556, - 11, - 556, - 22, - [0, - cst_Calcul_des_contributions_s, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _a__ = - [0, cst_ContributionsSocialesAides, [0, "exon\xc3\xa9r\xc3\xa9_csg", 0]], - _bb_ = - [0, - cst_examples_aides_logement_pr, - 555, - 11, - 555, - 20, - [0, - cst_Calcul_des_contributions_s, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _a$_ = - [0, - cst_examples_aides_logement_pr, - 555, - 11, - 555, - 20, - [0, - cst_Calcul_des_contributions_s, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _bc_ = [0, cst_ContributionsSocialesAides, [0, "taux_crds", 0]], - _bg_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], - _bj_ = - [0, - cst_examples_aides_logement_au, - 156, - 13, - 156, - 24, - [0, - cst_Article_14, - [0, - cst_Chapitre_II_Des_contributi, - [0, cst_Ordonnance_n_96_50_du_24_j, 0]]]], - _bh_ = - [0, - cst_examples_aides_logement_pr, - 563, - 13, - 563, - 42, - [0, - cst_Calcul_des_contributions_s, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - _bi_ = - [0, - cst_examples_aides_logement_pr, - 563, - 13, - 563, - 42, - [0, - cst_Calcul_des_contributions_s, - [0, - cst_D_clarations_des_champs_d_, - [0, cst_Prologue_aides_au_logement, 0]]]], - cst_ge_l512_3_2_in = "\xc3\xa2ge_l512_3_2_in", - cst_r_sidence_in$8 = cst_r_sidence_in$9, - cst_prestation_courante_in = "prestation_courante_in", - cst_date_courante_in$20 = cst_date_courante_in$21, - _a4_ = [0, "\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales_in", 0], - cst_r_sidence_in$7 = cst_r_sidence_in$9, - cst_date_courante_in$19 = cst_date_courante_in$21, - _a3_ = [0, "Smic_in", 0], - cst_ann_es_in$0 = cst_ann_es_in$1, - cst_date_courante_in$18 = cst_date_courante_in$21, - cst_date_naissance_in$0 = cst_date_naissance_in$1, - _a2_ = [0, "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in", 0], - cst_ann_es_in = cst_ann_es_in$1, - cst_date_courante_in$17 = cst_date_courante_in$21, - cst_date_naissance_in = cst_date_naissance_in$1, - _a1_ = - [0, - "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in", - 0], - cst_date_courante_in$16 = cst_date_courante_in$21, - _a0_ = [0, "BaseMensuelleAllocationsFamiliales_in", 0], - cst_ressources_m_nage_prises_e$0 = cst_ressources_m_nage_prises_e$1, - cst_date_courante_in$15 = cst_date_courante_in$21, - cst_demandeur_in$4 = cst_demandeur_in$5, - cst_m_nage_in$4 = cst_m_nage_in$5, - _aZ_ = [0, "CalculetteAidesAuLogementGardeAltern\xc3\xa9e_in", 0], - cst_ressources_m_nage_prises_e = cst_ressources_m_nage_prises_e$1, - cst_date_courante_in$14 = cst_date_courante_in$21, - cst_demandeur_in$3 = cst_demandeur_in$5, - cst_m_nage_in$3 = cst_m_nage_in$5, - _aY_ = [0, "CalculetteAidesAuLogement_in", 0], - cst_montant_dette_in = "montant_dette_in", - cst_d_pense_logement_in = "d\xc3\xa9pense_logement_in", - cst_montant_charges_in = "montant_charges_in", - cst_montant_apl_in = "montant_apl_in", - cst_aide_vers_e_in = "aide_vers\xc3\xa9e_in", - cst_mode_occupation_in$2 = cst_mode_occupation_in$3, - _aX_ = [0, "Impay\xc3\xa9D\xc3\xa9penseLogement_in", 0], - cst_date_naissance_assur_in = "date_naissance_assur\xc3\xa9_in", - _aW_ = [0, "OuvertureDroitsRetraite_in", 0], - cst_r_sidence_in$6 = cst_r_sidence_in$9, - cst_type_aide_in$2 = cst_type_aide_in$3, - cst_date_courante_in$13 = cst_date_courante_in$21, - cst_zone_in$6 = cst_zone_in$7, - cst_nombre_personnes_charge_in$8 = cst_nombre_personnes_charge_in$9, - cst_situation_familiale_in$1 = cst_situation_familiale_in$2, - cst_ressources_m_nage_sans_arr$0 = cst_ressources_m_nage_sans_arr$1, - cst_mode_occupation_in$1 = cst_mode_occupation_in$3, - _aV_ = [0, "CalculAllocationLogement_in", 0], - cst_cat_gorie_quivalence_loyer$0 = - "cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16_in", - cst_date_courante_in$12 = cst_date_courante_in$21, - cst_zone_in$5 = cst_zone_in$7, - cst_situation_familiale_calcul$6 = cst_situation_familiale_calcul$8, - cst_nombre_personnes_charge_in$7 = cst_nombre_personnes_charge_in$9, - cst_ressources_m_nage_arrondie$6 = cst_ressources_m_nage_arrondie$7, - cst_redevance_in$0 = cst_redevance_in$1, - cst_r_sidence_in$5 = cst_r_sidence_in$9, - cst_date_conventionnement_in$0 = cst_date_conventionnement_in$1, - cst_type_logement_foyer_in$0 = cst_type_logement_foyer_in$1, - _aU_ = [0, "CalculAllocationLogementFoyer_in", 0], - cst_op_rations_logement_voluti$0 = - "op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat_in", - cst_copropri_t_in$0 = cst_copropri_t_in$1, - cst_charges_mensuelles_pr_t_in = "charges_mensuelles_pr\xc3\xaat_in", - cst_date_entr_e_logement_in$0 = cst_date_entr_e_logement_in$1, - cst_local_habit_premi_re_fois_$1 = cst_local_habit_premi_re_fois_$2, - cst_type_travaux_logement_in$0 = cst_type_travaux_logement_in$1, - cst_date_signature_pr_t_in$0 = cst_date_signature_pr_t_in$1, - cst_situation_r822_11_13_17_in$0 = cst_situation_r822_11_13_17_in$1, - cst_mensualit_principale_in$0 = cst_mensualit_principale_in$1, - cst_date_courante_in$11 = cst_date_courante_in$21, - cst_r_sidence_in$4 = cst_r_sidence_in$9, - cst_zone_in$4 = cst_zone_in$7, - cst_situation_familiale_calcul$5 = cst_situation_familiale_calcul$8, - cst_nombre_personnes_charge_in$6 = cst_nombre_personnes_charge_in$9, - cst_ressources_m_nage_arrondie$5 = cst_ressources_m_nage_arrondie$8, - _aT_ = - [0, "CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9_in", 0], - cst_changement_logement_d842_4$0 = "changement_logement_d842_4_in", - cst_r_sidence_in$3 = cst_r_sidence_in$9, - cst_logement_meubl_d842_2_in$0 = cst_logement_meubl_d842_2_in$1, - cst_r_duction_loyer_solidarit_$1 = cst_r_duction_loyer_solidarit_$2, - cst_colocation_in$0 = cst_colocation_in$1, - cst_type_aide_in$1 = cst_type_aide_in$3, - cst_g_es_ou_handicap_adultes_h$1 = cst_g_es_ou_handicap_adultes_h$2, - cst_logement_est_chambre_in$0 = cst_logement_est_chambre_in$1, - cst_zone_in$3 = cst_zone_in$7, - cst_situation_familiale_calcul$4 = cst_situation_familiale_calcul$8, - cst_nombre_personnes_charge_in$5 = cst_nombre_personnes_charge_in$9, - cst_date_courante_in$10 = cst_date_courante_in$21, - cst_b_n_ficiaire_aide_adulte_o$2 = cst_b_n_ficiaire_aide_adulte_o$3, - cst_ressources_m_nage_arrondie$4 = cst_ressources_m_nage_arrondie$7, - cst_loyer_principal_in = "loyer_principal_in", - _aS_ = [0, "CalculAllocationLogementLocatif_in", 0], - cst_r_sidence_in$2 = cst_r_sidence_in$9, - cst_date_courante_in$9 = cst_date_courante_in$21, - cst_zone_in$2 = cst_zone_in$7, - cst_nombre_personnes_charge_in$4 = cst_nombre_personnes_charge_in$9, - cst_situation_familiale_in$0 = cst_situation_familiale_in$2, - cst_ressources_m_nage_sans_arr = cst_ressources_m_nage_sans_arr$1, - cst_type_aide_in$0 = cst_type_aide_in$3, - cst_mode_occupation_in$0 = cst_mode_occupation_in$3, - _aR_ = [0, "CalculAidePersonnalis\xc3\xa9eLogement_in", 0], - cst_date_courante_in$8 = cst_date_courante_in$21, - cst_anciennet_logement_in = "anciennet\xc3\xa9_logement_in", - cst_type_pr_t_in = "type_pr\xc3\xaat_in", - cst_zone_in$1 = cst_zone_in$7, - cst_situation_r822_11_13_17_in = cst_situation_r822_11_13_17_in$1, - cst_copropri_t_in = cst_copropri_t_in$1, - cst_date_entr_e_logement_in = cst_date_entr_e_logement_in$1, - cst_local_habit_premi_re_fois_$0 = cst_local_habit_premi_re_fois_$2, - cst_date_signature_pr_t_in = cst_date_signature_pr_t_in$1, - cst_type_travaux_logement_in = cst_type_travaux_logement_in$1, - cst_situation_familiale_calcul$3 = cst_situation_familiale_calcul$8, - cst_nombre_personnes_charge_in$3 = cst_nombre_personnes_charge_in$9, - cst_ressources_m_nage_arrondie$3 = cst_ressources_m_nage_arrondie$7, - cst_mensualit_principale_in = cst_mensualit_principale_in$1, - _aQ_ = - [0, - "CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9_in", - 0], - cst_situation_familiale_calcul$2 = cst_situation_familiale_calcul$8, - cst_nombre_personnes_charge_in$2 = cst_nombre_personnes_charge_in$9, - _aP_ = [0, "CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9_in", 0], - cst_n_nombre_parts_d832_25_in$0 = cst_n_nombre_parts_d832_25_in$1, - cst_limitation_majoration_pers$0 = cst_limitation_majoration_pers$2, - cst_condition_2_du_832_25_in$1 = cst_condition_2_du_832_25_in$2, - cst_r_sidence_in$1 = cst_r_sidence_in$9, - cst_redevance_in = cst_redevance_in$1, - cst_date_courante_in$7 = cst_date_courante_in$21, - cst_zone_in$0 = cst_zone_in$7, - cst_situation_familiale_calcul$1 = cst_situation_familiale_calcul$8, - cst_nombre_personnes_charge_in$1 = cst_nombre_personnes_charge_in$9, - cst_ressources_m_nage_arrondie$2 = cst_ressources_m_nage_arrondie$7, - cst_date_conventionnement_in = cst_date_conventionnement_in$1, - cst_type_logement_foyer_in = cst_type_logement_foyer_in$1, - _aO_ = [0, "CalculAidePersonnalis\xc3\xa9eLogementFoyer_in", 0], - cst_limitation_majoration_pers = cst_limitation_majoration_pers$2, - cst_r_sidence_in$0 = cst_r_sidence_in$9, - cst_situation_familiale_calcul$0 = cst_situation_familiale_calcul$8, - cst_nombre_personnes_charge_in$0 = cst_nombre_personnes_charge_in$9, - cst_condition_2_du_832_25_in$0 = cst_condition_2_du_832_25_in$2, - _aN_ = [0, "CalculNombrePartLogementFoyer_in", 0], - cst_n_nombre_parts_d832_25_in = cst_n_nombre_parts_d832_25_in$1, - cst_condition_2_du_832_25_in = cst_condition_2_du_832_25_in$2, - cst_ressources_m_nage_arrondie$1 = cst_ressources_m_nage_arrondie$7, - cst_date_courante_in$6 = cst_date_courante_in$21, - _aM_ = [0, "Calcul\xc3\x89quivalenceLoyerMinimale_in", 0], - cst_r_sidence_in = cst_r_sidence_in$9, - cst_logement_meubl_d842_2_in = cst_logement_meubl_d842_2_in$1, - cst_r_duction_loyer_solidarit_$0 = cst_r_duction_loyer_solidarit_$2, - cst_colocation_in = cst_colocation_in$1, - cst_type_aide_in = cst_type_aide_in$3, - cst_g_es_ou_handicap_adultes_h$0 = cst_g_es_ou_handicap_adultes_h$2, - cst_logement_est_chambre_in = cst_logement_est_chambre_in$1, - cst_zone_in = cst_zone_in$7, - cst_situation_familiale_calcul = cst_situation_familiale_calcul$8, - cst_nombre_personnes_charge_in = cst_nombre_personnes_charge_in$9, - cst_date_courante_in$5 = cst_date_courante_in$21, - cst_b_n_ficiaire_aide_adulte_o$1 = cst_b_n_ficiaire_aide_adulte_o$3, - cst_ressources_m_nage_arrondie$0 = cst_ressources_m_nage_arrondie$7, - cst_loyer_principal_base_in = "loyer_principal_base_in", - _aL_ = [0, "CalculAidePersonnalis\xc3\xa9eLogementLocatif_in", 0], - cst_date_courante_in$4 = cst_date_courante_in$21, - _aK_ = [0, "ContributionsSocialesAidesPersonnelleLogement_in", 0], - cst_ressources_m_nage_arrondie = cst_ressources_m_nage_arrondie$8, - cst_paiement_logement_distinct = - "paiement_logement_distinct_professionnel_in", - cst_date_demande_ou_reexamen_d = "date_demande_ou_reexamen_droit_in", - cst_demandeur_poursuit_des_tud = "demandeur_poursuit_des_\xc3\xa9tudes_in", - cst_condition_ge_bourse_enseig = - "condition_\xc3\xa2ge_bourse_enseignement_sup\xc3\xa9rieur_in", - cst_date_courante_in$3 = cst_date_courante_in$21, - cst_mode_occupation_in = cst_mode_occupation_in$3, - cst_situation_familiale_in = cst_situation_familiale_in$2, - cst_personnes_charge_in = "personnes_\xc3\xa0_charge_in", - cst_conjoint_exerce_activit_r_ = - "conjoint_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in", - cst_demandeur_exerce_activit_r = - "demandeur_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in", - cst_personnes_vivant_habituell = - "personnes_vivant_habituellement_foyer_in", - cst_ressources_conjoint_in = "ressources_conjoint_in", - cst_ressources_demandeur_in = "ressources_demandeur_in", - _aJ_ = [0, "RessourcesAidesPersonnelleLogement_in", 0], - cst_d_penses_justifi_es_r_elle = - "d\xc3\xa9penses_justifi\xc3\xa9es_r\xc3\xa9ellement_engag\xc3\xa9es_in", - cst_date_courante_in$2 = cst_date_courante_in$21, - cst_demandeur_in$2 = cst_demandeur_in$5, - cst_m_nage_in$2 = cst_m_nage_in$5, - cst_date_emm_nagement_in = "date_emm\xc3\xa9nagement_in", - cst_informations_in = "informations_in", - _aI_ = - [0, "\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement_in", 0], - cst_b_n_ficie_aide_personnalis = - "b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement_in", - cst_demandeur_in$1 = cst_demandeur_in$5, - cst_m_nage_in$1 = cst_m_nage_in$5, - cst_date_courante_in$1 = cst_date_courante_in$21, - _aH_ = [0, "\xc3\x89ligibilit\xc3\xa9AllocationLogement_in", 0], - cst_date_courante_in$0 = cst_date_courante_in$21, - cst_demandeur_in$0 = cst_demandeur_in$5, - cst_m_nage_in$0 = cst_m_nage_in$5, - _aG_ = - [0, "\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement_in", 0], - cst_date_entr_e_vigueur_diff_r = - "date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch_in", - cst_condition_logement_surface = "condition_logement_surface_in", - cst_condition_logement_r_siden = - "condition_logement_r\xc3\xa9sidence_principale_in", - cst_date_courante_in = cst_date_courante_in$21, - cst_demandeur_in = cst_demandeur_in$5, - cst_m_nage_in = cst_m_nage_in$5, - _aF_ = [0, "\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement_in", 0], - cst_r_sidence = "r\xc3\xa9sidence", - cst_personnes_g_es_handicap_es = - "personnes_\xc3\xa2g\xc3\xa9es_handicap\xc3\xa9es_foyer_r844_4", - cst_enfant_na_tre_apr_s_quatri = - "enfant_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_quatri\xc3\xa8me_mois_grossesse", - cst_condition_rattach_foyer_fi = - "condition_rattach\xc3\xa9_foyer_fiscal_parent_ifi", - cst_situation_familiale = "situation_familiale", - cst_nombre_autres_occupants_lo = "nombre_autres_occupants_logement", - cst_personnes_charge = "personnes_\xc3\xa0_charge", - cst_logement = "logement", - cst_prestations_re_ues = "prestations_re\xc3\xa7ues", - _aE_ = [0, "M\xc3\xa9nage", 0], - cst_zone = "zone", - cst_surface_m_carr_s = "surface_m_carr\xc3\xa9s", - cst_logement_decent_l89_462 = "logement_decent_l89_462", - cst_usufruit = "usufruit", - cst_lou_ou_sous_lou_des_tiers = - "lou\xc3\xa9_ou_sous_lou\xc3\xa9_\xc3\xa0_des_tiers", - cst_propri_taire = "propri\xc3\xa9taire", - cst_mode_occupation = "mode_occupation", - cst_est_ehpad_ou_maison_autono = - "est_ehpad_ou_maison_autonomie_l313_12_asf", - cst_r_sidence_principale = "r\xc3\xa9sidence_principale", - _aD_ = [0, "Logement", 0], - cst_condition_2_r823_4 = cst_condition_2_r823_4$0, - cst_coefficents_enfants_garde_$2 = cst_coefficents_enfants_garde_$3, - cst_nombre_personnes_charge_pr$1 = cst_nombre_personnes_charge_pr$2, - cst_ligibilit$3 = cst_ligibilit$4, - cst_date_courante$0 = cst_date_courante$1, - _aC_ = [0, cst_ligibilit_AidesPersonnelle, 0], - cst_Locataire = "Locataire", - cst_R_sidentLogementFoyer = "R\xc3\xa9sidentLogementFoyer", - cst_AccessionPropri_t_LocalUsa = - "AccessionPropri\xc3\xa9t\xc3\xa9LocalUsageExclusifHabitation", - cst_SousLocataire = "SousLocataire", - cst_LocationAccession = "LocationAccession", - _aB_ = [0, "ModeOccupation", 0], - cst_Location = cst_Location$0, - cst_AccessionPropri_t = "AccessionPropri\xc3\xa9t\xc3\xa9", - cst_LogementFoyer = cst_LogementFoyer$0, - _aA_ = [0, "Cat\xc3\xa9gorieCalculAPL", 0], - cst_Enfant_Charge = cst_Enfant_Charge$0, - cst_AutrePersonne_Charge = cst_AutrePersonne_Charge$0, - _az_ = [0, "Personne\xc3\x80Charge", 0], - cst_changement_logement_d842_4 = "changement_logement_d842_4", - cst_logement_meubl_d842_2$0 = cst_logement_meubl_d842_2$1, - cst_g_es_ou_handicap_adultes_h = - "\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers", - cst_colocation = "colocation", - cst_logement_est_chambre = "logement_est_chambre", - cst_b_n_ficiaire_aide_adulte_o$0 = cst_b_n_ficiaire_aide_adulte_o$4, - cst_loyer_principal = "loyer_principal", - cst_bailleur = "bailleur", - _ay_ = [0, cst_Location$0, 0], - cst_tudes_apprentissage_stage_ = - "\xc3\xa9tudes_apprentissage_stage_formation_pro_impossibilit\xc3\xa9_travail", - cst_situation_garde_altern_e = "situation_garde_altern\xc3\xa9e", - cst_obligation_scolaire$0 = cst_obligation_scolaire$1, - cst_r_muneration_mensuelle$0 = cst_r_muneration_mensuelle$1, - cst_date_de_naissance$0 = cst_date_de_naissance$1, - cst_a_d_j_ouvert_droit_aux_all$0 = cst_a_d_j_ouvert_droit_aux_all$1, - cst_b_n_ficie_titre_personnel_$0 = cst_b_n_ficie_titre_personnel_$1, - cst_nationalit$0 = cst_nationalit$1, - cst_identifiant$0 = cst_identifiant$1, - _ax_ = [0, cst_Enfant_Charge$0, 0], - cst_magistrat_fonctionnaire_ce = - "magistrat_fonctionnaire_centre_int\xc3\xa9r\xc3\xaats_mat\xc3\xa9riels_familiaux_hors_mayotte", - cst_est_non_salari_agricole_l7 = - "est_non_salari\xc3\xa9_agricole_l781_8_l_781_46_code_rural", - cst_personne_h_berg_e_centre_s = - "personne_h\xc3\xa9berg\xc3\xa9e_centre_soin_l_L162_22_3_s\xc3\xa9curit\xc3\xa9_sociale", - cst_patrimoine = "patrimoine", - cst_nationalit = cst_nationalit$1, - cst_date_naissance$0 = cst_date_naissance$1, - _aw_ = [0, cst_Demandeur$0, 0], - cst_r_gime_outre_mer_l751_1 = cst_r_gime_outre_mer_l751_1$0, - cst_conditions_hors_ge = cst_conditions_hors_ge$0, - cst_droit_ouvert = cst_droit_ouvert$0, - cst_ge_l512_3_2 = cst_ge_l512_3_2$0, - _av_ = [0, cst_ligibilit_PrestationsFamil, 0], - cst_op_rations_logement_voluti = - "op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat", - cst_pr_t = "pr\xc3\xaat", - cst_anciennet_logement = "anciennet\xc3\xa9_logement", - cst_situation_r822_11_13_17 = "situation_r822_11_13_17", - cst_copropri_t = "copropri\xc3\xa9t\xc3\xa9", - cst_local_habit_premi_re_fois_ = - "local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire", - cst_type_travaux_logement_r842 = "type_travaux_logement_r842_5", - cst_type_travaux_logement_d832 = "type_travaux_logement_d832_15", - cst_date_entr_e_logement = "date_entr\xc3\xa9e_logement", - cst_charges_mensuelles_pr_t = "charges_mensuelles_pr\xc3\xaat", - cst_mensualit_principale = "mensualit\xc3\xa9_principale", - _au_ = [0, "Propri\xc3\xa9taire", 0], - cst_date_naissance_troisi_me_e = - "date_naissance_troisi\xc3\xa8me_enfant_ou_dernier_si_plus", - cst_nombre_enfants_na_tre_apr_ = - "nombre_enfants_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_troisi\xc3\xa8me_mois_grossesse", - _at_ = [0, "InformationsPrimeDeD\xc3\xa9m\xc3\xa9nagement", 0], - cst_Changement = "Changement", - cst_PasDeChangement = "PasDeChangement", - _as_ = [0, "ChangementLogementD842_4", 0], - cst_Fran_aise = "Fran\xc3\xa7aise", - cst_trang_re = "\xc3\x89trang\xc3\xa8re", - _ar_ = [0, "Nationalit\xc3\xa9", 0], - cst_Non$1 = cst_Non$2, - cst_Oui$0 = cst_Oui$1, - _aq_ = [0, "Lou\xc3\xa9OuSousLou\xc3\xa9\xc3\x80DesTiers", 0], - cst_BailleurSocial = "BailleurSocial", - cst_BailleurPriv_AvecConventio = - "BailleurPriv\xc3\xa9AvecConventionnementSocial", - cst_BailleurPriv = "BailleurPriv\xc3\xa9", - _ap_ = [0, "TypeBailleur", 0], - cst_b_n_ficie_titre_personnel_ = cst_b_n_ficie_titre_personnel_$1, - cst_a_d_j_ouvert_droit_aux_all = cst_a_d_j_ouvert_droit_aux_all$1, - cst_prise_en_charge = "prise_en_charge", - cst_date_de_naissance = cst_date_de_naissance$1, - cst_r_muneration_mensuelle = cst_r_muneration_mensuelle$1, - cst_obligation_scolaire = cst_obligation_scolaire$1, - cst_identifiant = cst_identifiant$1, - _ao_ = [0, "EnfantPrestationsFamiliales", 0], - cst_logement_meubl_d842_2 = cst_logement_meubl_d842_2$1, - cst_b_n_ficiaire_aide_adulte_o = cst_b_n_ficiaire_aide_adulte_o$4, - cst_cat_gorie_quivalence_loyer = - "cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16", - cst_redevance = "redevance", - cst_construit_application_loi_ = "construit_application_loi_1957_12_III", - cst_date_conventionnement = "date_conventionnement", - cst_conventionn_selon_r_gles_d = - "conventionn\xc3\xa9_selon_r\xc3\xa8gles_drom", - cst_conventionn_livre_III_titr$1 = cst_conventionn_livre_III_titr$2, - cst_remplit_conditions_r832_21 = "remplit_conditions_r832_21", - cst_type = "type", - _an_ = [0, cst_LogementFoyer$0, 0], - cst_accord_financement_repr_se = - "accord_financement_repr\xc3\xa9sentant_\xc3\x89tat_outre_mer", - cst_titulaire_pr_t = "titulaire_pr\xc3\xaat", - cst_date_signature = "date_signature", - cst_type_pr_t = "type_pr\xc3\xaat", - _am_ = [0, "Pr\xc3\xaat", 0], - cst_coefficents_enfants_garde_$1 = cst_coefficents_enfants_garde_$3, - cst_nombre_personnes_charge_pr$0 = cst_nombre_personnes_charge_pr$2, - cst_ligibilit$2 = cst_ligibilit$4, - _al_ = [0, cst_ligibilit_AllocationLogeme, 0], - cst_MoinsDeTroisEnfants = "MoinsDeTroisEnfants", - cst_PlusDeTroisEnfants = "PlusDeTroisEnfants", - _ak_ = [0, "DateNaissanceTroisi\xc3\xa8meOuDernierPlusEnfant", 0], - cst_titulaire_allocation_perso = - "titulaire_allocation_personne_\xc3\xa2g\xc3\xa9e", - cst_b_n_ficiaire_l161_19_l351_ = - "b\xc3\xa9n\xc3\xa9ficiaire_l161_19_l351_8_l643_3_s\xc3\xa9cu", - cst_incapacit_80_pourcent_ou_r = - "incapacit\xc3\xa9_80_pourcent_ou_restriction_emploi", - cst_parent = "parent\xc3\xa9", - cst_ascendant_descendant_colla = - "ascendant_descendant_collat\xc3\xa9ral_deuxi\xc3\xa8me_troisi\xc3\xa8me_degr\xc3\xa9", - cst_ressources$0 = cst_ressources$1, - cst_date_naissance = cst_date_naissance$1, - _aj_ = [0, cst_AutrePersonne_Charge$0, 0], - cst_taux$0 = cst_taux$1, - cst_bas$0 = cst_bas$1, - cst_haut$0 = cst_haut$1, - _ai_ = [0, "TrancheRevenuD\xc3\xa9cimal", 0], - cst_taux = cst_taux$1, - cst_bas = cst_bas$1, - cst_haut = cst_haut$1, - _ah_ = [0, "TrancheRevenu", 0], - cst_Neuf = "Neuf", - cst_Ancien = "Ancien", - _ag_ = [0, "NeufOuAncien", 0], - cst_brut_horaire = cst_brut_horaire$0, - _af_ = [0, cst_Smic, 0], - cst_est_sup_rieur = cst_est_sup_rieur$0, - _ae_ = [0, cst_V_rification_geSup_rieur, 0], - cst_est_inf_rieur_ou_gal = cst_est_inf_rieur_ou_gal$0, - _ad_ = [0, cst_V_rification_geInf_rieurOu, 0], - cst_montant$1 = cst_montant$2, - _ac_ = [0, cst_BaseMensuelleAllocationsFa, 0], - cst_aide_finale = cst_aide_finale$0, - cst_ligibilit$1 = cst_ligibilit$4, - _ab_ = [0, cst_CalculetteAidesAuLogementG, 0], - cst_coefficents_enfants_garde_$0 = cst_coefficents_enfants_garde_$3, - cst_traitement_aide_finale$8 = cst_traitement_aide_finale$9, - cst_aide_finale_formule$8 = cst_aide_finale_formule$9, - cst_ligibilit$0 = cst_ligibilit$4, - _aa_ = [0, cst_CalculetteAidesAuLogement, 0], - cst_montant_impay = cst_montant_impay$0, - _$_ = [0, cst_Impay_D_penseLogement, 0], - cst_ge_ouverture_droit = cst_ge_ouverture_droit$0, - ___ = [0, cst_OuvertureDroitsRetraite, 0], - cst_traitement_aide_finale$7 = cst_traitement_aide_finale$9, - cst_aide_finale_formule$7 = cst_aide_finale_formule$9, - _Z_ = [0, cst_CalculAllocationLogement, 0], - cst_traitement_aide_finale$6 = cst_traitement_aide_finale$9, - cst_aide_finale_formule$6 = cst_aide_finale_formule$9, - cst_loyer_minimal = cst_loyer_minimal$0, - cst_montant_forfaitaire_charge$0 = cst_montant_forfaitaire_charge$1, - cst_quivalence_loyer = cst_quivalence_loyer$0, - cst_coefficient_prise_en_charg$2 = cst_coefficient_prise_en_charg$3, - _Y_ = [0, cst_CalculAllocationLogementFo, 0], - cst_traitement_aide_finale$5 = cst_traitement_aide_finale$9, - cst_aide_finale_formule$5 = cst_aide_finale_formule$9, - cst_coefficient_prise_en_charg$1 = cst_coefficient_prise_en_charg$3, - cst_mensualit_minimale$0 = cst_mensualit_minimale$1, - cst_mensualit_ligible$0 = cst_mensualit_ligible$1, - _X_ = [0, cst_CalculAllocationLogementAc, 0], - cst_traitement_aide_finale$4 = cst_traitement_aide_finale$9, - cst_aide_finale_formule$4 = cst_aide_finale_formule$9, - _W_ = [0, cst_CalculAllocationLogementLo, 0], - cst_ancienne_allocation_logeme = "ancienne_allocation_logement", - cst_ancien_loyer_principal = "ancien_loyer_principal", - _V_ = [0, "InfosChangementLogementD842_4", 0], - cst_traitement_aide_finale$3 = cst_traitement_aide_finale$9, - cst_aide_finale_formule$3 = cst_aide_finale_formule$9, - _U_ = [0, cst_CalculAidePersonnalis_eLog, 0], - cst_traitement_aide_finale$2 = cst_traitement_aide_finale$9, - cst_aide_finale_formule$2 = cst_aide_finale_formule$9, - _T_ = [0, "Traitement_formule_aide_finale", 0], - cst_traitement_aide_finale$1 = cst_traitement_aide_finale$9, - cst_aide_finale_formule$1 = cst_aide_finale_formule$9, - cst_coefficient_prise_en_charg$0 = "coefficient_prise_en_charge_d832_10", - cst_mensualit_minimale = cst_mensualit_minimale$1, - cst_mensualit_ligible = cst_mensualit_ligible$1, - _S_ = [0, cst_CalculAidePersonnalis_eLog$2, 0], - cst_n_nombre_parts_d832_11 = cst_n_nombre_parts_d832_11$0, - _R_ = [0, cst_CalculNombrePartsAccession, 0], - cst_traitement_aide_finale$0 = cst_traitement_aide_finale$9, - cst_aide_finale_formule$0 = cst_aide_finale_formule$9, - cst_coefficient_prise_en_charg = "coefficient_prise_en_charge_d832_25", - cst_quivalence_loyer_minimale = cst_quivalence_loyer_minimale$0, - cst_plafond_quivalence_loyer_l = cst_plafond_quivalence_loyer_l$0, - cst_quivalence_loyer_ligible = cst_quivalence_loyer_ligible$0, - cst_n_nombre_parts_d832_25$0 = cst_n_nombre_parts_d832_25$1, - cst_coefficient_r_d832_25 = cst_coefficient_r_d832_25$0, - cst_coefficient_multiplicateur = cst_coefficient_multiplicateur$0, - _Q_ = [0, cst_CalculAidePersonnalis_eLog$1, 0], - cst_n_nombre_parts_d832_25 = cst_n_nombre_parts_d832_25$1, - _P_ = [0, cst_CalculNombrePartLogementFo, 0], - cst_montant$0 = cst_montant$2, - _O_ = [0, cst_Calcul_quivalenceLoyerMini, 0], - cst_traitement_aide_finale = cst_traitement_aide_finale$9, - cst_aide_finale_formule = cst_aide_finale_formule$9, - cst_participation_personnelle = cst_participation_personnelle$0, - cst_taux_composition_familiale = cst_taux_composition_familiale$0, - cst_participation_minimale = cst_participation_minimale$0, - cst_plafond_loyer_d823_16_2 = cst_plafond_loyer_d823_16_2$0, - cst_montant_forfaitaire_charge = cst_montant_forfaitaire_charge$2, - _N_ = [0, cst_CalculAidePersonnalis_eLog$0, 0], - cst_montant = cst_montant$2, - _M_ = [0, cst_ContributionsSocialesAides, 0], - cst_ressources_prises_en_compt = cst_ressources_prises_en_compt$0, - _L_ = [0, cst_RessourcesAidesPersonnelle, 0], - cst_montant_prime_d_m_nagement = cst_montant_prime_d_m_nagement$0, - _K_ = [0, cst_ligibilit_PrimeDeD_m_nagem, 0], - cst_coefficents_enfants_garde_ = cst_coefficents_enfants_garde_$3, - cst_nombre_personnes_charge_pr = cst_nombre_personnes_charge_pr$2, - cst_ligibilit = cst_ligibilit$4, - cst_date_courante = cst_date_courante$1, - _J_ = [0, cst_ligibilit_AidePersonnalis_, 0], - cst_ressources = cst_ressources$1, - cst_dur_e_r_sidence_durant_p_r = - "dur\xc3\xa9e_r\xc3\xa9sidence_durant_p\xc3\xa9riode_r_822_3_1_sup\xc3\xa9rieure_\xc3\xa0_6_mois", - _I_ = [0, "PersonneVivantHabituellementAuFoyer", 0], - cst_satisfait_art_4_ordonnance = "satisfait_art_4_ordonnance_2002_mayotte", - cst_satisfait_conditions_l512_ = - "satisfait_conditions_l512_2_code_s\xc3\xa9curit\xc3\xa9_sociale", - _H_ = [0, "Conditions\xc3\x89trangers", 0], - cst_ne_produisant_pas_revenu_p = - "ne_produisant_pas_revenu_p\xc3\xa9riode_r822_3_3_r822_4", - cst_produisant_revenu_p_riode_ = - "produisant_revenu_p\xc3\xa9riode_r822_3_3_r822_4", - _G_ = [0, "Patrimoine", 0], - cst_conforme_article_l442_1 = "conforme_article_l442_1", - cst_date_naissance_personne_so = "date_naissance_personne_sous_location", - _F_ = [0, "PersonneSousLocation", 0], - cst_conventionn_livre_III_titr$0 = - "conventionn\xc3\xa9_livre_III_titre_II_chap_I_sec_3", - _E_ = [0, "ConventionANHA", 0], - cst_r_duction_loyer_solidarit_ = - "r\xc3\xa9duction_loyer_solidarit\xc3\xa9_per\xc3\xa7ue", - cst_conventionn_livre_III_titr = cst_conventionn_livre_III_titr$2, - _D_ = [0, "ConventionBailleurSocial", 0], - cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", - cst_AllocationsFamiliales$0 = cst_AllocationsFamiliales$1, - cst_Compl_mentFamilial$0 = cst_Compl_mentFamilial$1, - cst_AllocationLogement = "AllocationLogement", - cst_Allocation_ducationEnfantH = - "Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9", - cst_AllocationSoutienFamilial$0 = cst_AllocationSoutienFamilial$1, - cst_AllocationRentr_eScolaire = "AllocationRentr\xc3\xa9eScolaire", - cst_AllocationJournali_rePrese = - "AllocationJournali\xc3\xa8rePresenceParentale", - _C_ = [0, "\xc3\x89l\xc3\xa9mentPrestationsFamiliales", 0], - cst_Avant = "Avant", - cst_Pendant = "Pendant", - cst_Apr_s = "Apr\xc3\xa8s", - _B_ = [0, "SituationObligationScolaire", 0], - cst_GardeAltern_ePartageAlloca = "GardeAltern\xc3\xa9ePartageAllocations", - cst_GardeAltern_eAllocataireUn = "GardeAltern\xc3\xa9eAllocataireUnique", - cst_EffectiveEtPermanente$0 = cst_EffectiveEtPermanente$1, - cst_ServicesSociauxAllocationV = - "ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille", - cst_ServicesSociauxAllocationV$0 = - "ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux", - _A_ = [0, "PriseEnChargeEnfant", 0], - cst_Guadeloupe = "Guadeloupe", - cst_Guyane = "Guyane", - cst_Martinique = "Martinique", - cst_LaR_union = "LaR\xc3\xa9union", - cst_SaintBarth_lemy = "SaintBarth\xc3\xa9lemy", - cst_SaintMartin = "SaintMartin", - cst_M_tropole = "M\xc3\xa9tropole", - cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", - cst_Mayotte = "Mayotte", - _z_ = [0, "Collectivit\xc3\xa9", 0], - cst_PersonneSeule = "PersonneSeule", - cst_Couple = "Couple", - _y_ = [0, "SituationFamilialeCalculAPL", 0], - cst_tudiantLog_EnChambreCROUS = "\xc3\x89tudiantLog\xc3\xa9EnChambreCROUS", - cst_tudiantLog_EnChambreCROUSR = - "\xc3\x89tudiantLog\xc3\xa9EnChambreCROUSR\xc3\xa9habilit\xc3\xa9e", - cst_Personnes_g_esSelon3DeD842 = - "Personnes\xc3\x82g\xc3\xa9esSelon3DeD842_16", - cst_AutresPersonnes = "AutresPersonnes", - _x_ = - [0, "Cat\xc3\xa9gorie\xc3\x89quivalenceLoyerAllocationLogementFoyer", 0], - cst_LogementPersonnes_g_esOuHa = - "LogementPersonnes\xc3\x82g\xc3\xa9esOuHandicap\xc3\xa9es", - cst_R_sidenceSociale = "R\xc3\xa9sidenceSociale", - cst_FoyerJeunesTrvailleursOuMi = - "FoyerJeunesTrvailleursOuMigrantsConventionn\xc3\xa9L353_2Avant1995", - cst_Autre$1 = cst_Autre$2, - _w_ = [0, "TypeLogementFoyer", 0], - cst_EffectiveEtPermanente = cst_EffectiveEtPermanente$1, - cst_R_sidenceAltern_eAllocatai = - "R\xc3\xa9sidenceAltern\xc3\xa9eAllocataireUnique", - cst_R_sidenceAltern_eAllocatio = - "R\xc3\xa9sidenceAltern\xc3\xa9eAllocationsPartag\xc3\xa9e", - _v_ = [0, "PriseEnCharge", 0], - cst_C_libataire = "C\xc3\xa9libataire", - cst_Mari_s = "Mari\xc3\xa9s", - cst_Pacs_s = "Pacs\xc3\xa9s", - cst_Concubins = "Concubins", - cst_C_libataireS_par_DeFait = - "C\xc3\xa9libataireS\xc3\xa9par\xc3\xa9DeFait", - cst_ConcubinageDontS_par_DeFai = - "ConcubinageDontS\xc3\xa9par\xc3\xa9DeFait", - _u_ = [0, "SituationFamiliale", 0], - cst_AidePersonnalis_eLogement = "AidePersonnalis\xc3\xa9eLogement", - cst_AllocationLogementFamilial$0 = cst_AllocationLogementFamilial$1, - cst_AllocationLogementSociale$0 = cst_AllocationLogementSociale$1, - _t_ = [0, "TypeAidesPersonnelleLogement", 0], - cst_Accord = "Accord", - cst_PasdAccord = "PasdAccord", - _s_ = [0, "AccordFinancementRepr\xc3\xa9sentant\xc3\x89tatOutreMer", 0], - cst_Pas_ligible = "Pas\xc3\x89ligible", - cst_AllocationLogementFamilial = cst_AllocationLogementFamilial$1, - cst_AllocationLogementSociale = cst_AllocationLogementSociale$1, - _r_ = [0, "Type\xc3\x89ligibilit\xc3\xa9AllocationLogement", 0], - cst_Impay_Loyer = "Impay\xc3\xa9Loyer", - cst_Impay_Pr_t = "Impay\xc3\xa9Pr\xc3\xaat", - _q_ = [0, "ModeOccupationImpay\xc3\xa9", 0], - cst_TotalAnnuel_ch_ances = "TotalAnnuel\xc3\x89ch\xc3\xa9ances", - cst_Mensualit = "Mensualit\xc3\xa9", - cst_Loyer = "Loyer", - _p_ = [0, "D\xc3\xa9penseLogement", 0], - cst_Bailleur = "Bailleur", - cst_B_n_ficiaire = "B\xc3\xa9n\xc3\xa9ficiaire", - cst_tablissementHabilit = "\xc3\x89tablissementHabilit\xc3\xa9", - _o_ = [0, "Versement\xc3\x80", 0], - cst_OuiAvecLoyerOuCharges = "OuiAvecLoyerOuCharges", - cst_Non$0 = cst_Non$2, - _n_ = [0, "PaiementLogementDistinctProfessionnel", 0], - cst_Zone1 = "Zone1", - cst_Zone2 = "Zone2", - cst_Zone3 = "Zone3", - _m_ = [0, "ZoneDHabitation", 0], - cst_DateDeNaissance = "DateDeNaissance", - cst_AvantPremierJourMoisCivilT = - "AvantPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse", - cst_Apr_sPremierJourMoisCivilT = - "Apr\xc3\xa8sPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse", - _l_ = [0, "DateDeNaissanceOuMoisDeGrossesse", 0], - cst_Ascendant = "Ascendant", - cst_Descendant = "Descendant", - cst_Collat_ralDeuxi_meTroisi_m = - "Collat\xc3\xa9ralDeuxi\xc3\xa8meTroisi\xc3\xa8meDegr\xc3\xa9", - _k_ = [0, "Parent\xc3\xa9", 0], - cst_PasDeGardeAltern_e = "PasDeGardeAltern\xc3\xa9e", - cst_GardeAltern_eCoefficientPr = - "GardeAltern\xc3\xa9eCoefficientPriseEnCharge", - _j_ = [0, "SituationGardeAltern\xc3\xa9e", 0], - cst_DemandeurOuConjointOuParen = - "DemandeurOuConjointOuParentOuViaPartsSoci\xc3\xa9t\xc3\xa9s", - cst_Autre$0 = cst_Autre$2, - _i_ = [0, "ParentOuAutre", 0], - cst_AllocationsFamiliales = cst_AllocationsFamiliales$1, - cst_Compl_mentFamilial = cst_Compl_mentFamilial$1, - cst_AllocationJeuneEnfant = "AllocationJeuneEnfant", - cst_AllocationSoutienFamilial = cst_AllocationSoutienFamilial$1, - cst_AllocationSoutienEnfantHan = "AllocationSoutienEnfantHandicap\xc3\xa9", - cst_AllocationAdulteHandicap = "AllocationAdulteHandicap\xc3\xa9", - _h_ = [0, "PrestationRe\xc3\xa7ue", 0], - cst_Revenu$0 = cst_Revenu$1, - cst_Infini$0 = cst_Infini$1, - _g_ = [0, "LimiteTrancheD\xc3\xa9cimal", 0], - cst_Revenu = cst_Revenu$1, - cst_Infini = cst_Infini$1, - _f_ = [0, "LimiteTranche", 0], - cst_Oui = cst_Oui$1, - cst_Non = cst_Non$2, - _e_ = [0, "Am\xc3\xa9lior\xc3\xa9ParOccupant", 0], - cst_ObjectifD_cenceLogement = "ObjectifD\xc3\xa9cenceLogement", - cst_Pr_vuDansListeR321_15 = "Pr\xc3\xa9vuDansListeR321_15", - cst_AgrandirOuRendreHabitableD = "AgrandirOuRendreHabitableD331_63", - cst_PasDeTravaux$0 = cst_PasDeTravaux$1, - _d_ = [0, "TypeTravauxLogementR842_5", 0], - cst_TravauxPourAcquisitionD832 = "TravauxPourAcquisitionD832_15_1", - cst_TravauxSurLogementD_j_Acqu = - "TravauxSurLogementD\xc3\xa9j\xc3\xa0AcquisD832_15_2", - cst_PasDeTravaux = cst_PasDeTravaux$1, - _c_ = [0, "TypeTravauxLogementD832_15", 0], - cst_Demandeur = cst_Demandeur$0, - cst_VendeurQuandDemandeurACont = - "VendeurQuandDemandeurAContratLocationAccession", - _b_ = [0, "TitulairePr\xc3\xaat", 0], - cst_D331_32 = "D331_32", - cst_D331_63_64 = "D331_63_64", - cst_D331_59_8 = "D331_59_8", - cst_D331_76_1 = "D331_76_1", - cst_Autre = cst_Autre$2, - _a_ = [0, "TypePr\xc3\xaat", 0]; - function embed_type_pret(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cix_ = [0, cst_D331_32, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cix_ = - [0, cst_D331_63_64, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _cix_ = [0, cst_D331_59_8, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - case 3: - var - x$3 = x[1], - _cix_ = [0, cst_D331_76_1, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - break; - default: - var - x$4 = x[1], - _cix_ = [0, cst_Autre, caml_call1(Runtime_ocaml_Runtime[11], x$4)]; - } - return [6, _a_, _cix_]; - } - var TitulairePret = [0]; - function embed_titulaire_pret(x){ - if(0 === x[0]) - var - x$0 = x[1], - _ciw_ = [0, cst_Demandeur, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - else - var - x$1 = x[1], - _ciw_ = - [0, - cst_VendeurQuandDemandeurACont, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _b_, _ciw_]; - } - var TypeTravauxLogementD83215 = [0]; - function embed_type_travaux_logement_d8(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _civ_ = - [0, - cst_TravauxPourAcquisitionD832, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _civ_ = - [0, - cst_TravauxSurLogementD_j_Acqu, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _civ_ = - [0, cst_PasDeTravaux, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _c_, _civ_]; - } - var TypeTravauxLogementR8425 = [0]; - function embed_type_travaux_logement_r8(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _ciu_ = - [0, - cst_ObjectifD_cenceLogement, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _ciu_ = - [0, - cst_Pr_vuDansListeR321_15, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _ciu_ = - [0, - cst_AgrandirOuRendreHabitableD, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - default: - var - x$3 = x[1], - _ciu_ = - [0, cst_PasDeTravaux$0, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - } - return [6, _d_, _ciu_]; - } - var AmelioreParOccupant = [0]; - function embed_ameliore_par_occupant(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cit_ = [0, cst_Oui, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - else - var - x$1 = x[1], - _cit_ = [0, cst_Non, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _e_, _cit_]; - } - var LimiteTranche = [0]; - function embed_limite_tranche(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cis_ = [0, cst_Revenu, caml_call1(Runtime_ocaml_Runtime[13], x$0)]; - else - var - x$1 = x[1], - _cis_ = [0, cst_Infini, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _f_, _cis_]; - } - var LimiteTrancheDecimal = [0]; - function embed_limite_tranche_decimal(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cir_ = [0, cst_Revenu$0, caml_call1(Runtime_ocaml_Runtime[15], x$0)]; - else - var - x$1 = x[1], - _cir_ = [0, cst_Infini$0, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _g_, _cir_]; - } - var PrestationRecue = [0]; - function embed_prestation_recue(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _ciq_ = - [0, - cst_AllocationsFamiliales, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _ciq_ = - [0, - cst_Compl_mentFamilial, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _ciq_ = - [0, - cst_AllocationJeuneEnfant, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - case 3: - var - x$3 = x[1], - _ciq_ = - [0, - cst_AllocationSoutienFamilial, - caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - break; - case 4: - var - x$4 = x[1], - _ciq_ = - [0, - cst_AllocationSoutienEnfantHan, - caml_call1(Runtime_ocaml_Runtime[11], x$4)]; - break; - default: - var - x$5 = x[1], - _ciq_ = - [0, - cst_AllocationAdulteHandicap, - caml_call1(Runtime_ocaml_Runtime[11], x$5)]; - } - return [6, _h_, _ciq_]; - } - var ParentOuAutre = [0]; - function embed_parent_ou_autre(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cip_ = - [0, - cst_DemandeurOuConjointOuParen, - caml_call1(Runtime_ocaml_Runtime[15], x$0)]; - else - var - x$1 = x[1], - _cip_ = [0, cst_Autre$0, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _i_, _cip_]; - } - var SituationGardeAlternee = [0]; - function embed_situation_garde_alternee(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cio_ = - [0, - cst_PasDeGardeAltern_e, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - else - var - x$1 = x[1], - _cio_ = - [0, - cst_GardeAltern_eCoefficientPr, - caml_call1(Runtime_ocaml_Runtime[15], x$1)]; - return [6, _j_, _cio_]; - } - var Parente = [0]; - function embed_parente(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cin_ = [0, cst_Ascendant, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cin_ = - [0, cst_Descendant, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _cin_ = - [0, - cst_Collat_ralDeuxi_meTroisi_m, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _k_, _cin_]; - } - var DateDeNaissanceOuMoisDeGrosses = [0]; - function embed_date_de_naissance_ou_moi(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cim_ = - [0, cst_DateDeNaissance, caml_call1(Runtime_ocaml_Runtime[16], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cim_ = - [0, - cst_AvantPremierJourMoisCivilT, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _cim_ = - [0, - cst_Apr_sPremierJourMoisCivilT, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _l_, _cim_]; - } - var ZoneDHabitation = [0]; - function embed_zone_d_habitation(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cil_ = [0, cst_Zone1, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cil_ = [0, cst_Zone2, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _cil_ = [0, cst_Zone3, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _m_, _cil_]; - } - var PaiementLogementDistinctProfes = [0]; - function embed_paiement_logement_distin(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cik_ = - [0, - cst_OuiAvecLoyerOuCharges, - caml_call1(Runtime_ocaml_Runtime[13], x$0)]; - else - var - x$1 = x[1], - _cik_ = [0, cst_Non$0, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _n_, _cik_]; - } - var VersementA = [0]; - function embed_versement_a(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cij_ = [0, cst_Bailleur, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cij_ = - [0, cst_B_n_ficiaire, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _cij_ = - [0, - cst_tablissementHabilit, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _o_, _cij_]; - } - var DepenseLogement = [0]; - function embed_depense_logement(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cii_ = - [0, - cst_TotalAnnuel_ch_ances, - caml_call1(Runtime_ocaml_Runtime[13], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cii_ = [0, cst_Mensualit, caml_call1(Runtime_ocaml_Runtime[13], x$1)]; - break; - default: - var - x$2 = x[1], - _cii_ = [0, cst_Loyer, caml_call1(Runtime_ocaml_Runtime[13], x$2)]; - } - return [6, _p_, _cii_]; - } - var ModeOccupationImpaye = [0]; - function embed_mode_occupation_impaye(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cih_ = [0, cst_Impay_Loyer, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - else - var - x$1 = x[1], - _cih_ = [0, cst_Impay_Pr_t, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _q_, _cih_]; - } - var TypeEligibiliteAllocationLogem = [0]; - function embed_type_eligibilite_allocat(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cig_ = - [0, cst_Pas_ligible, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cig_ = - [0, - cst_AllocationLogementFamilial, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _cig_ = - [0, - cst_AllocationLogementSociale, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _r_, _cig_]; - } - var AccordFinancementRepresentantE = [0]; - function embed_accord_financement_repre(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cif_ = [0, cst_Accord, caml_call1(Runtime_ocaml_Runtime[16], x$0)]; - else - var - x$1 = x[1], - _cif_ = [0, cst_PasdAccord, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _s_, _cif_]; - } - var TypeAidesPersonnelleLogement = [0]; - function embed_type_aides_personnelle_l(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cie_ = - [0, - cst_AidePersonnalis_eLogement, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cie_ = - [0, - cst_AllocationLogementFamilial$0, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _cie_ = - [0, - cst_AllocationLogementSociale$0, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _t_, _cie_]; - } - var SituationFamiliale = [0]; - function embed_situation_familiale(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cid_ = - [0, cst_C_libataire, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cid_ = [0, cst_Mari_s, caml_call1(Runtime_ocaml_Runtime[16], x$1)]; - break; - case 2: - var - x$2 = x[1], - _cid_ = [0, cst_Pacs_s, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - case 3: - var - x$3 = x[1], - _cid_ = [0, cst_Concubins, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - break; - case 4: - var - x$4 = x[1], - _cid_ = - [0, - cst_C_libataireS_par_DeFait, - caml_call1(Runtime_ocaml_Runtime[11], x$4)]; - break; - default: - var - x$5 = x[1], - _cid_ = - [0, - cst_ConcubinageDontS_par_DeFai, - caml_call1(Runtime_ocaml_Runtime[11], x$5)]; - } - return [6, _u_, _cid_]; - } - var PriseEnCharge = [0]; - function embed_prise_en_charge(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cic_ = - [0, - cst_EffectiveEtPermanente, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cic_ = - [0, - cst_R_sidenceAltern_eAllocatai, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _cic_ = - [0, - cst_R_sidenceAltern_eAllocatio, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _v_, _cic_]; - } - var TypeLogementFoyer = [0]; - function embed_type_logement_foyer(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cib_ = - [0, - cst_LogementPersonnes_g_esOuHa, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cib_ = - [0, - cst_R_sidenceSociale, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _cib_ = - [0, - cst_FoyerJeunesTrvailleursOuMi, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - default: - var - x$3 = x[1], - _cib_ = [0, cst_Autre$1, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - } - return [6, _w_, _cib_]; - } - var CategorieEquivalenceLoyerAlloc = [0]; - function embed_categorie_equivalence_lo(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cia_ = - [0, - cst_tudiantLog_EnChambreCROUS, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _cia_ = - [0, - cst_tudiantLog_EnChambreCROUSR, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _cia_ = - [0, - cst_Personnes_g_esSelon3DeD842, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - default: - var - x$3 = x[1], - _cia_ = - [0, cst_AutresPersonnes, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - } - return [6, _x_, _cia_]; - } - var SituationFamilialeCalculAPL = [0]; - function embed_situation_familiale_calc(x){ - if(0 === x[0]) - var - x$0 = x[1], - _ch$_ = - [0, cst_PersonneSeule, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - else - var - x$1 = x[1], - _ch$_ = [0, cst_Couple, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _y_, _ch$_]; - } - var Collectivite = [0]; - function embed_collectivite(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _ch__ = - [0, cst_Guadeloupe, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _ch__ = [0, cst_Guyane, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _ch__ = - [0, cst_Martinique, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - case 3: - var - x$3 = x[1], - _ch__ = [0, cst_LaR_union, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - break; - case 4: - var - x$4 = x[1], - _ch__ = - [0, cst_SaintBarth_lemy, caml_call1(Runtime_ocaml_Runtime[11], x$4)]; - break; - case 5: - var - x$5 = x[1], - _ch__ = - [0, cst_SaintMartin, caml_call1(Runtime_ocaml_Runtime[11], x$5)]; - break; - case 6: - var - x$6 = x[1], - _ch__ = [0, cst_M_tropole, caml_call1(Runtime_ocaml_Runtime[11], x$6)]; - break; - case 7: - var - x$7 = x[1], - _ch__ = - [0, - cst_SaintPierreEtMiquelon, - caml_call1(Runtime_ocaml_Runtime[11], x$7)]; - break; - default: - var - x$8 = x[1], - _ch__ = [0, cst_Mayotte, caml_call1(Runtime_ocaml_Runtime[11], x$8)]; - } - return [6, _z_, _ch__]; - } - var PriseEnChargeEnfant = [0]; - function embed_prise_en_charge_enfant(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _ch9_ = - [0, - cst_GardeAltern_ePartageAlloca, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _ch9_ = - [0, - cst_GardeAltern_eAllocataireUn, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _ch9_ = - [0, - cst_EffectiveEtPermanente$0, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - case 3: - var - x$3 = x[1], - _ch9_ = - [0, - cst_ServicesSociauxAllocationV, - caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - break; - default: - var - x$4 = x[1], - _ch9_ = - [0, - cst_ServicesSociauxAllocationV$0, - caml_call1(Runtime_ocaml_Runtime[11], x$4)]; - } - return [6, _A_, _ch9_]; - } - var SituationObligationScolaire = [0]; - function embed_situation_obligation_sco(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _ch8_ = [0, cst_Avant, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _ch8_ = [0, cst_Pendant, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - default: - var - x$2 = x[1], - _ch8_ = [0, cst_Apr_s, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _B_, _ch8_]; - } - var ElementPrestationsFamiliales = [0]; - function embed_element_prestations_fami(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _ch7_ = - [0, - cst_PrestationAccueilJeuneEnfa, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - break; - case 1: - var - x$1 = x[1], - _ch7_ = - [0, - cst_AllocationsFamiliales$0, - caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - break; - case 2: - var - x$2 = x[1], - _ch7_ = - [0, - cst_Compl_mentFamilial$0, - caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - break; - case 3: - var - x$3 = x[1], - _ch7_ = - [0, - cst_AllocationLogement, - caml_call1(Runtime_ocaml_Runtime[11], x$3)]; - break; - case 4: - var - x$4 = x[1], - _ch7_ = - [0, - cst_Allocation_ducationEnfantH, - caml_call1(Runtime_ocaml_Runtime[11], x$4)]; - break; - case 5: - var - x$5 = x[1], - _ch7_ = - [0, - cst_AllocationSoutienFamilial$0, - caml_call1(Runtime_ocaml_Runtime[11], x$5)]; - break; - case 6: - var - x$6 = x[1], - _ch7_ = - [0, - cst_AllocationRentr_eScolaire, - caml_call1(Runtime_ocaml_Runtime[11], x$6)]; - break; - default: - var - x$7 = x[1], - _ch7_ = - [0, - cst_AllocationJournali_rePrese, - caml_call1(Runtime_ocaml_Runtime[11], x$7)]; - } - return [6, _C_, _ch7_]; - } - var ConventionBailleurSocial = [0]; - function embed_convention_bailleur_soci(x){ - var - _ch6_ = - [0, - [0, - cst_r_duction_loyer_solidarit_, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - 0]; - return [7, - _D_, - [0, - [0, - cst_conventionn_livre_III_titr, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - _ch6_]]; - } - var ConventionANHA = [0]; - function embed_convention_a_n_h_a(x){ - return [7, - _E_, - [0, - [0, - cst_conventionn_livre_III_titr$0, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - 0]]; - } - var PersonneSousLocation = [0]; - function embed_personne_sous_location(x){ - var - _ch5_ = - [0, - [0, - cst_conforme_article_l442_1, - caml_call1(Runtime_ocaml_Runtime[12], x[2])], - 0]; - return [7, - _F_, - [0, - [0, - cst_date_naissance_personne_so, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _ch5_]]; - } - var Patrimoine = [0]; - function embed_patrimoine(x){ - var - _ch4_ = - [0, - [0, - cst_ne_produisant_pas_revenu_p, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - 0]; - return [7, - _G_, - [0, - [0, - cst_produisant_revenu_p_riode_, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _ch4_]]; - } - var ConditionsEtrangers = [0]; - function embed_conditions_etrangers(x){ - var - _ch3_ = - [0, - [0, - cst_satisfait_art_4_ordonnance, - caml_call1(Runtime_ocaml_Runtime[12], x[2])], - 0]; - return [7, - _H_, - [0, - [0, - cst_satisfait_conditions_l512_, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - _ch3_]]; - } - var PersonneVivantHabituellementAu = [0]; - function embed_personne_vivant_habituel(x){ - var - _ch2_ = - [0, - [0, cst_ressources, caml_call1(Runtime_ocaml_Runtime[13], x[2])], - 0]; - return [7, - _I_, - [0, - [0, - cst_dur_e_r_sidence_durant_p_r, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - _ch2_]]; - } - var EligibiliteAidePersonnaliseeLo = [0]; - function embed_eligibilite_aide_personn(x){ - var - _chZ_ = - [0, - [0, - cst_coefficents_enfants_garde_, - caml_call2 - (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[4])], - 0], - _ch0_ = - [0, - [0, - cst_nombre_personnes_charge_pr, - caml_call1(Runtime_ocaml_Runtime[14], x[3])], - _chZ_], - _ch1_ = - [0, - [0, cst_ligibilit, caml_call1(Runtime_ocaml_Runtime[12], x[2])], - _ch0_]; - return [7, - _J_, - [0, - [0, - cst_date_courante, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _ch1_]]; - } - var EligibilitePrimeDeDemenagement = [0]; - function embed_eligibilite_prime_de_dem(x){ - return [7, - _K_, - [0, - [0, - cst_montant_prime_d_m_nagement, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - 0]]; - } - var RessourcesAidesPersonnelleLoge = [0]; - function embed_ressources_aides_personn(x){ - return [7, - _L_, - [0, - [0, - cst_ressources_prises_en_compt, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - 0]]; - } - var ContributionsSocialesAidesPers = [0]; - function embed_contributions_sociales_a(x){ - return [7, - _M_, - [0, - [0, cst_montant, caml_call1(Runtime_ocaml_Runtime[10], x[1])], - 0]]; - } - var CalculAidePersonnaliseeLogemen = [0]; - function embed_calcul_aide_personnalise(x){ - var - _chT_ = - [0, - [0, - cst_traitement_aide_finale, - caml_call1(Runtime_ocaml_Runtime[10], x[7])], - 0], - _chU_ = - [0, - [0, - cst_aide_finale_formule, - caml_call1(Runtime_ocaml_Runtime[13], x[6])], - _chT_], - _chV_ = - [0, - [0, - cst_participation_personnelle, - caml_call1(Runtime_ocaml_Runtime[13], x[5])], - _chU_], - _chW_ = - [0, - [0, - cst_taux_composition_familiale, - caml_call1(Runtime_ocaml_Runtime[15], x[4])], - _chV_], - _chX_ = - [0, - [0, - cst_participation_minimale, - caml_call1(Runtime_ocaml_Runtime[13], x[3])], - _chW_], - _chY_ = - [0, - [0, - cst_plafond_loyer_d823_16_2, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _chX_]; - return [7, - _N_, - [0, - [0, - cst_montant_forfaitaire_charge, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _chY_]]; - } - var CalculEquivalenceLoyerMinimale = [0]; - function embed_calcul_equivalence_loyer(x){ - return [7, - _O_, - [0, - [0, cst_montant$0, caml_call1(Runtime_ocaml_Runtime[13], x[1])], - 0]]; - } - var CalculNombrePartLogementFoyer = [0]; - function embed_calcul_nombre_part_logem(x){ - return [7, - _P_, - [0, - [0, - cst_n_nombre_parts_d832_25, - caml_call1(Runtime_ocaml_Runtime[15], x[1])], - 0]]; - } - var CalculAidePersonnaliseeLogemen$0 = [0]; - function embed_calcul_aide_personnalise$0(x){ - var - _chL_ = - [0, - [0, - cst_traitement_aide_finale$0, - caml_call1(Runtime_ocaml_Runtime[10], x[9])], - 0], - _chM_ = - [0, - [0, - cst_aide_finale_formule$0, - caml_call1(Runtime_ocaml_Runtime[13], x[8])], - _chL_], - _chN_ = - [0, - [0, - cst_coefficient_prise_en_charg, - caml_call1(Runtime_ocaml_Runtime[15], x[7])], - _chM_], - _chO_ = - [0, - [0, - cst_quivalence_loyer_minimale, - caml_call1(Runtime_ocaml_Runtime[13], x[6])], - _chN_], - _chP_ = - [0, - [0, - cst_plafond_quivalence_loyer_l, - caml_call1(Runtime_ocaml_Runtime[13], x[5])], - _chO_], - _chQ_ = - [0, - [0, - cst_quivalence_loyer_ligible, - caml_call1(Runtime_ocaml_Runtime[13], x[4])], - _chP_], - _chR_ = - [0, - [0, - cst_n_nombre_parts_d832_25$0, - caml_call1(Runtime_ocaml_Runtime[15], x[3])], - _chQ_], - _chS_ = - [0, - [0, - cst_coefficient_r_d832_25, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _chR_]; - return [7, - _Q_, - [0, - [0, - cst_coefficient_multiplicateur, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _chS_]]; - } - var CalculNombrePartsAccessionProp = [0]; - function embed_calcul_nombre_parts_acce(x){ - return [7, - _R_, - [0, - [0, - cst_n_nombre_parts_d832_11, - caml_call1(Runtime_ocaml_Runtime[15], x[1])], - 0]]; - } - var CalculAidePersonnaliseeLogemen$1 = [0]; - function embed_calcul_aide_personnalise$1(x){ - var - _chH_ = - [0, - [0, - cst_traitement_aide_finale$1, - caml_call1(Runtime_ocaml_Runtime[10], x[5])], - 0], - _chI_ = - [0, - [0, - cst_aide_finale_formule$1, - caml_call1(Runtime_ocaml_Runtime[13], x[4])], - _chH_], - _chJ_ = - [0, - [0, - cst_coefficient_prise_en_charg$0, - caml_call1(Runtime_ocaml_Runtime[15], x[3])], - _chI_], - _chK_ = - [0, - [0, - cst_mensualit_minimale, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _chJ_]; - return [7, - _S_, - [0, - [0, - cst_mensualit_ligible, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _chK_]]; - } - var TraitementFormuleAideFinale = [0]; - function embed_traitement_formule_aide_(x){ - var - _chG_ = - [0, - [0, - cst_traitement_aide_finale$2, - caml_call1(Runtime_ocaml_Runtime[10], x[2])], - 0]; - return [7, - _T_, - [0, - [0, - cst_aide_finale_formule$2, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _chG_]]; - } - var CalculAidePersonnaliseeLogemen$2 = [0]; - function embed_calcul_aide_personnalise$2(x){ - var - _chF_ = - [0, - [0, - cst_traitement_aide_finale$3, - caml_call1(Runtime_ocaml_Runtime[10], x[2])], - 0]; - return [7, - _U_, - [0, - [0, - cst_aide_finale_formule$3, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _chF_]]; - } - var InfosChangementLogementD8424 = [0]; - function embed_infos_changement_logemen(x){ - var - _chE_ = - [0, - [0, - cst_ancienne_allocation_logeme, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - 0]; - return [7, - _V_, - [0, - [0, - cst_ancien_loyer_principal, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _chE_]]; - } - var CalculAllocationLogementLocati = [0]; - function embed_calcul_allocation_logeme(x){ - var - _chD_ = - [0, - [0, - cst_traitement_aide_finale$4, - caml_call1(Runtime_ocaml_Runtime[10], x[2])], - 0]; - return [7, - _W_, - [0, - [0, - cst_aide_finale_formule$4, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _chD_]]; - } - var CalculAllocationLogementAccess = [0]; - function embed_calcul_allocation_logeme$0(x){ - var - _chz_ = - [0, - [0, - cst_traitement_aide_finale$5, - caml_call1(Runtime_ocaml_Runtime[10], x[5])], - 0], - _chA_ = - [0, - [0, - cst_aide_finale_formule$5, - caml_call1(Runtime_ocaml_Runtime[13], x[4])], - _chz_], - _chB_ = - [0, - [0, - cst_coefficient_prise_en_charg$1, - caml_call1(Runtime_ocaml_Runtime[15], x[3])], - _chA_], - _chC_ = - [0, - [0, - cst_mensualit_minimale$0, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _chB_]; - return [7, - _X_, - [0, - [0, - cst_mensualit_ligible$0, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _chC_]]; - } - var CalculAllocationLogementFoyer = [0]; - function embed_calcul_allocation_logeme$1(x){ - var - _chu_ = - [0, - [0, - cst_traitement_aide_finale$6, - caml_call1(Runtime_ocaml_Runtime[10], x[6])], - 0], - _chv_ = - [0, - [0, - cst_aide_finale_formule$6, - caml_call1(Runtime_ocaml_Runtime[13], x[5])], - _chu_], - _chw_ = - [0, - [0, cst_loyer_minimal, caml_call1(Runtime_ocaml_Runtime[13], x[4])], - _chv_], - _chx_ = - [0, - [0, - cst_montant_forfaitaire_charge$0, - caml_call1(Runtime_ocaml_Runtime[13], x[3])], - _chw_], - _chy_ = - [0, - [0, cst_quivalence_loyer, caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _chx_]; - return [7, - _Y_, - [0, - [0, - cst_coefficient_prise_en_charg$2, - caml_call1(Runtime_ocaml_Runtime[15], x[1])], - _chy_]]; - } - var CalculAllocationLogement = [0]; - function embed_calcul_allocation_logeme$2(x){ - var - _cht_ = - [0, - [0, - cst_traitement_aide_finale$7, - caml_call1(Runtime_ocaml_Runtime[10], x[2])], - 0]; - return [7, - _Z_, - [0, - [0, - cst_aide_finale_formule$7, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _cht_]]; - } - var OuvertureDroitsRetraite = [0]; - function embed_ouverture_droits_retrait(x){ - return [7, - ___, - [0, - [0, - cst_ge_ouverture_droit, - caml_call1(Runtime_ocaml_Runtime[17], x[1])], - 0]]; - } - var ImpayeDepenseLogement = [0]; - function embed_impaye_depense_logement(x){ - return [7, - _$_, - [0, - [0, - cst_montant_impay, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - 0]]; - } - var CalculetteAidesAuLogement = [0]; - function embed_calculette_aides_au_loge(x){ - var - _chq_ = - [0, - [0, - cst_coefficents_enfants_garde_$0, - caml_call2 - (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[4])], - 0], - _chr_ = - [0, - [0, - cst_traitement_aide_finale$8, - caml_call1(Runtime_ocaml_Runtime[10], x[3])], - _chq_], - _chs_ = - [0, - [0, - cst_aide_finale_formule$8, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _chr_]; - return [7, - _aa_, - [0, - [0, cst_ligibilit$0, caml_call1(Runtime_ocaml_Runtime[12], x[1])], - _chs_]]; - } - var CalculetteAidesAuLogementGarde = [0]; - function embed_calculette_aides_au_loge$0(x){ - var - _chp_ = - [0, - [0, cst_aide_finale, caml_call1(Runtime_ocaml_Runtime[13], x[2])], - 0]; - return [7, - _ab_, - [0, - [0, cst_ligibilit$1, caml_call1(Runtime_ocaml_Runtime[12], x[1])], - _chp_]]; - } - var BaseMensuelleAllocationsFamili = [0]; - function embed_base_mensuelle_allocatio(x){ - return [7, - _ac_, - [0, - [0, cst_montant$1, caml_call1(Runtime_ocaml_Runtime[13], x[1])], - 0]]; - } - var VerificationAgeInferieurOuEgal = [0]; - function embed_verification_age_inferie(x){ - return [7, - _ad_, - [0, - [0, - cst_est_inf_rieur_ou_gal, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - 0]]; - } - var VerificationAgeSuperieurA = [0]; - function embed_verification_age_superie(x){ - return [7, - _ae_, - [0, - [0, - cst_est_sup_rieur, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - 0]]; - } - var Smic = [0]; - function embed_smic(x){ - return [7, - _af_, - [0, - [0, - cst_brut_horaire, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - 0]]; - } - var NeufOuAncien = [0]; - function embed_neuf_ou_ancien(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cho_ = [0, cst_Neuf, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - else - var - x$1 = x[1], - _cho_ = [0, cst_Ancien, embed_ameliore_par_occupant(x$1)]; - return [6, _ag_, _cho_]; - } - var TrancheRevenu = [0]; - function embed_tranche_revenu(x){ - var - _chm_ = - [0, [0, cst_taux, caml_call1(Runtime_ocaml_Runtime[15], x[3])], 0], - _chn_ = - [0, [0, cst_bas, caml_call1(Runtime_ocaml_Runtime[13], x[2])], _chm_]; - return [7, _ah_, [0, [0, cst_haut, embed_limite_tranche(x[1])], _chn_]]; - } - var TrancheRevenuDecimal = [0]; - function embed_tranche_revenu_decimal(x){ - var - _chk_ = - [0, [0, cst_taux$0, caml_call1(Runtime_ocaml_Runtime[15], x[3])], 0], - _chl_ = - [0, [0, cst_bas$0, caml_call1(Runtime_ocaml_Runtime[15], x[2])], _chk_]; - return [7, - _ai_, - [0, [0, cst_haut$0, embed_limite_tranche_decimal(x[1])], _chl_]]; - } - var AutrePersonneACharge = [0]; - function embed_autre_personne_a_charge(x){ - var - _che_ = - [0, - [0, - cst_titulaire_allocation_perso, - caml_call1(Runtime_ocaml_Runtime[12], x[7])], - 0], - _chf_ = - [0, - [0, - cst_b_n_ficiaire_l161_19_l351_, - caml_call1(Runtime_ocaml_Runtime[12], x[6])], - _che_], - _chg_ = - [0, - [0, - cst_incapacit_80_pourcent_ou_r, - caml_call1(Runtime_ocaml_Runtime[12], x[5])], - _chf_], - _chh_ = [0, [0, cst_parent, embed_parente(x[4])], _chg_], - _chi_ = - [0, - [0, - cst_ascendant_descendant_colla, - caml_call1(Runtime_ocaml_Runtime[12], x[3])], - _chh_], - _chj_ = - [0, - [0, cst_ressources$0, caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _chi_]; - return [7, - _aj_, - [0, - [0, - cst_date_naissance, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _chj_]]; - } - var DateNaissanceTroisiemeOuDernie = [0]; - function embed_date_naissance_troisieme(x){ - if(0 === x[0]) - var - x$0 = x[1], - _chd_ = - [0, - cst_MoinsDeTroisEnfants, - caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - else - var - x$1 = x[1], - _chd_ = [0, cst_PlusDeTroisEnfants, embed_date_de_naissance_ou_moi(x$1)]; - return [6, _ak_, _chd_]; - } - var EligibiliteAllocationLogement = [0]; - function embed_eligibilite_allocation_l(x){ - var - _chb_ = - [0, - [0, - cst_coefficents_enfants_garde_$1, - caml_call2 - (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[3])], - 0], - _chc_ = - [0, - [0, - cst_nombre_personnes_charge_pr$0, - caml_call1(Runtime_ocaml_Runtime[14], x[2])], - _chb_]; - return [7, - _al_, - [0, - [0, cst_ligibilit$2, embed_type_eligibilite_allocat(x[1])], - _chc_]]; - } - var Pret = [0]; - function embed_pret(x){ - var - _cg__ = - [0, - [0, - cst_accord_financement_repr_se, - embed_accord_financement_repre(x[4])], - 0], - _cg$_ = [0, [0, cst_titulaire_pr_t, embed_titulaire_pret(x[3])], _cg__], - _cha_ = - [0, - [0, cst_date_signature, caml_call1(Runtime_ocaml_Runtime[16], x[2])], - _cg$_]; - return [7, _am_, [0, [0, cst_type_pr_t, embed_type_pret(x[1])], _cha_]]; - } - var LogementFoyer = [0]; - function embed_logement_foyer(x){ - var - _cg1_ = - [0, - [0, - cst_logement_meubl_d842_2, - caml_call1(Runtime_ocaml_Runtime[12], x[10])], - 0], - _cg2_ = - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o, - caml_call1(Runtime_ocaml_Runtime[12], x[9])], - _cg1_], - _cg3_ = - [0, - [0, - cst_cat_gorie_quivalence_loyer, - embed_categorie_equivalence_lo(x[8])], - _cg2_], - _cg4_ = - [0, - [0, cst_redevance, caml_call1(Runtime_ocaml_Runtime[13], x[7])], - _cg3_], - _cg5_ = - [0, - [0, - cst_construit_application_loi_, - caml_call1(Runtime_ocaml_Runtime[12], x[6])], - _cg4_], - _cg6_ = - [0, - [0, - cst_date_conventionnement, - caml_call1(Runtime_ocaml_Runtime[16], x[5])], - _cg5_], - _cg7_ = - [0, - [0, - cst_conventionn_selon_r_gles_d, - caml_call1(Runtime_ocaml_Runtime[12], x[4])], - _cg6_], - _cg8_ = - [0, - [0, - cst_conventionn_livre_III_titr$1, - caml_call1(Runtime_ocaml_Runtime[12], x[3])], - _cg7_], - _cg9_ = - [0, - [0, - cst_remplit_conditions_r832_21, - caml_call1(Runtime_ocaml_Runtime[12], x[2])], - _cg8_]; - return [7, - _an_, - [0, [0, cst_type, embed_type_logement_foyer(x[1])], _cg9_]]; - } - var EnfantPrestationsFamiliales = [0]; - function embed_enfant_prestations_famil(x){ - var - _cgV_ = - [0, - [0, - cst_b_n_ficie_titre_personnel_, - caml_call1(Runtime_ocaml_Runtime[12], x[7])], - 0], - _cgW_ = - [0, - [0, - cst_a_d_j_ouvert_droit_aux_all, - caml_call1(Runtime_ocaml_Runtime[12], x[6])], - _cgV_], - _cgX_ = - [0, - [0, cst_prise_en_charge, embed_prise_en_charge_enfant(x[5])], - _cgW_], - _cgY_ = - [0, - [0, - cst_date_de_naissance, - caml_call1(Runtime_ocaml_Runtime[16], x[4])], - _cgX_], - _cgZ_ = - [0, - [0, - cst_r_muneration_mensuelle, - caml_call1(Runtime_ocaml_Runtime[13], x[3])], - _cgY_], - _cg0_ = - [0, - [0, cst_obligation_scolaire, embed_situation_obligation_sco(x[2])], - _cgZ_]; - return [7, - _ao_, - [0, - [0, cst_identifiant, caml_call1(Runtime_ocaml_Runtime[14], x[1])], - _cg0_]]; - } - var TypeBailleur = [0]; - function embed_type_bailleur(x){ - switch(x[0]){ - case 0: - var - x$0 = x[1], - _cgU_ = [0, cst_BailleurSocial, embed_convention_bailleur_soci(x$0)]; - break; - case 1: - var - x$1 = x[1], - _cgU_ = - [0, cst_BailleurPriv_AvecConventio, embed_convention_a_n_h_a(x$1)]; - break; - default: - var - x$2 = x[1], - _cgU_ = - [0, cst_BailleurPriv, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; - } - return [6, _ap_, _cgU_]; - } - var LoueOuSousLoueADesTiers = [0]; - function embed_loue_ou_sous_loue_a_des_(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cgT_ = [0, cst_Non$1, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - else - var - x$1 = x[1], - _cgT_ = [0, cst_Oui$0, embed_personne_sous_location(x$1)]; - return [6, _aq_, _cgT_]; - } - var Nationalite = [0]; - function embed_nationalite(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cgS_ = [0, cst_Fran_aise, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; - else - var - x$1 = x[1], - _cgS_ = [0, cst_trang_re, embed_conditions_etrangers(x$1)]; - return [6, _ar_, _cgS_]; - } - var ChangementLogementD8424 = [0]; - function embed_changement_logement_d842(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cgR_ = [0, cst_Changement, embed_infos_changement_logemen(x$0)]; - else - var - x$1 = x[1], - _cgR_ = - [0, cst_PasDeChangement, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; - return [6, _as_, _cgR_]; - } - var InformationsPrimeDeDemenagemen = [0]; - function embed_informations_prime_de_de(x){ - var - _cgQ_ = - [0, - [0, - cst_date_naissance_troisi_me_e, - embed_date_naissance_troisieme(x[2])], - 0]; - return [7, - _at_, - [0, - [0, - cst_nombre_enfants_na_tre_apr_, - caml_call1(Runtime_ocaml_Runtime[14], x[1])], - _cgQ_]]; - } - var Proprietaire = [0]; - function embed_proprietaire(x){ - var - _cgG_ = - [0, - [0, - cst_op_rations_logement_voluti, - caml_call1(Runtime_ocaml_Runtime[12], x[11])], - 0], - _cgH_ = [0, [0, cst_pr_t, embed_pret(x[10])], _cgG_], - _cgI_ = - [0, [0, cst_anciennet_logement, embed_neuf_ou_ancien(x[9])], _cgH_], - _cgJ_ = - [0, - [0, - cst_situation_r822_11_13_17, - caml_call1(Runtime_ocaml_Runtime[12], x[8])], - _cgI_], - _cgK_ = - [0, - [0, cst_copropri_t, caml_call1(Runtime_ocaml_Runtime[12], x[7])], - _cgJ_], - _cgL_ = - [0, - [0, - cst_local_habit_premi_re_fois_, - caml_call1(Runtime_ocaml_Runtime[12], x[6])], - _cgK_], - _cgM_ = - [0, - [0, - cst_type_travaux_logement_r842, - embed_type_travaux_logement_r8(x[5])], - _cgL_], - _cgN_ = - [0, - [0, - cst_type_travaux_logement_d832, - embed_type_travaux_logement_d8(x[4])], - _cgM_], - _cgO_ = - [0, - [0, - cst_date_entr_e_logement, - caml_call1(Runtime_ocaml_Runtime[16], x[3])], - _cgN_], - _cgP_ = - [0, - [0, - cst_charges_mensuelles_pr_t, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _cgO_]; - return [7, - _au_, - [0, - [0, - cst_mensualit_principale, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _cgP_]]; - } - var EligibilitePrestationsFamilial = [0]; - function embed_eligibilite_prestations_(x){ - var - _cgD_ = - [0, - [0, - cst_r_gime_outre_mer_l751_1, - caml_call1(Runtime_ocaml_Runtime[12], x[4])], - 0], - _cgE_ = - [0, - [0, - cst_conditions_hors_ge, - caml_call1(Runtime_ocaml_Runtime[10], x[3])], - _cgD_], - _cgF_ = - [0, - [0, cst_droit_ouvert, caml_call1(Runtime_ocaml_Runtime[10], x[2])], - _cgE_]; - return [7, - _av_, - [0, - [0, cst_ge_l512_3_2, caml_call1(Runtime_ocaml_Runtime[17], x[1])], - _cgF_]]; - } - var Demandeur = [0]; - function embed_demandeur(x){ - var - _cgy_ = - [0, - [0, - cst_magistrat_fonctionnaire_ce, - caml_call1(Runtime_ocaml_Runtime[12], x[6])], - 0], - _cgz_ = - [0, - [0, - cst_est_non_salari_agricole_l7, - caml_call1(Runtime_ocaml_Runtime[12], x[5])], - _cgy_], - _cgA_ = - [0, - [0, - cst_personne_h_berg_e_centre_s, - caml_call1(Runtime_ocaml_Runtime[12], x[4])], - _cgz_], - _cgB_ = [0, [0, cst_patrimoine, embed_patrimoine(x[3])], _cgA_], - _cgC_ = [0, [0, cst_nationalit, embed_nationalite(x[2])], _cgB_]; - return [7, - _aw_, - [0, - [0, - cst_date_naissance$0, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _cgC_]]; - } - var EnfantACharge = [0]; - function embed_enfant_a_charge(x){ - var - _cgq_ = - [0, - [0, - cst_tudes_apprentissage_stage_, - caml_call1(Runtime_ocaml_Runtime[12], x[9])], - 0], - _cgr_ = - [0, - [0, - cst_situation_garde_altern_e, - embed_situation_garde_alternee(x[8])], - _cgq_], - _cgs_ = - [0, - [0, cst_obligation_scolaire$0, embed_situation_obligation_sco(x[7])], - _cgr_], - _cgt_ = - [0, - [0, - cst_r_muneration_mensuelle$0, - caml_call1(Runtime_ocaml_Runtime[13], x[6])], - _cgs_], - _cgu_ = - [0, - [0, - cst_date_de_naissance$0, - caml_call1(Runtime_ocaml_Runtime[16], x[5])], - _cgt_], - _cgv_ = - [0, - [0, - cst_a_d_j_ouvert_droit_aux_all$0, - caml_call1(Runtime_ocaml_Runtime[12], x[4])], - _cgu_], - _cgw_ = - [0, - [0, - cst_b_n_ficie_titre_personnel_$0, - caml_call1(Runtime_ocaml_Runtime[12], x[3])], - _cgv_], - _cgx_ = [0, [0, cst_nationalit$0, embed_nationalite(x[2])], _cgw_]; - return [7, - _ax_, - [0, - [0, - cst_identifiant$0, - caml_call1(Runtime_ocaml_Runtime[14], x[1])], - _cgx_]]; - } - var Location = [0]; - function embed_location(x){ - var - _cgj_ = - [0, - [0, - cst_changement_logement_d842_4, - embed_changement_logement_d842(x[8])], - 0], - _cgk_ = - [0, - [0, - cst_logement_meubl_d842_2$0, - caml_call1(Runtime_ocaml_Runtime[12], x[7])], - _cgj_], - _cgl_ = - [0, - [0, - cst_g_es_ou_handicap_adultes_h, - caml_call1(Runtime_ocaml_Runtime[12], x[6])], - _cgk_], - _cgm_ = - [0, - [0, cst_colocation, caml_call1(Runtime_ocaml_Runtime[12], x[5])], - _cgl_], - _cgn_ = - [0, - [0, - cst_logement_est_chambre, - caml_call1(Runtime_ocaml_Runtime[12], x[4])], - _cgm_], - _cgo_ = - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o$0, - caml_call1(Runtime_ocaml_Runtime[12], x[3])], - _cgn_], - _cgp_ = - [0, - [0, cst_loyer_principal, caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _cgo_]; - return [7, _ay_, [0, [0, cst_bailleur, embed_type_bailleur(x[1])], _cgp_]]; - } - var PersonneACharge = [0]; - function embed_personne_a_charge(x){ - if(0 === x[0]) - var - x$0 = x[1], - _cgi_ = [0, cst_Enfant_Charge, embed_enfant_a_charge(x$0)]; - else - var - x$1 = x[1], - _cgi_ = - [0, cst_AutrePersonne_Charge, embed_autre_personne_a_charge(x$1)]; - return [6, _az_, _cgi_]; - } - var CategorieCalculAPL = [0]; - function embed_categorie_calcul_a_p_l(x){ - switch(x[0]){ - case 0: - var x$0 = x[1], _cgh_ = [0, cst_Location, embed_location(x$0)]; break; - case 1: - var - x$1 = x[1], - _cgh_ = [0, cst_AccessionPropri_t, embed_proprietaire(x$1)]; - break; - default: - var - x$2 = x[1], - _cgh_ = [0, cst_LogementFoyer, embed_logement_foyer(x$2)]; - } - return [6, _aA_, _cgh_]; - } - var ModeOccupation = [0]; - function embed_mode_occupation(x){ - switch(x[0]){ - case 0: - var x$0 = x[1], _cgg_ = [0, cst_Locataire, embed_location(x$0)]; break; - case 1: - var - x$1 = x[1], - _cgg_ = [0, cst_R_sidentLogementFoyer, embed_logement_foyer(x$1)]; - break; - case 2: - var - x$2 = x[1], - _cgg_ = [0, cst_AccessionPropri_t_LocalUsa, embed_proprietaire(x$2)]; - break; - case 3: - var x$3 = x[1], _cgg_ = [0, cst_SousLocataire, embed_location(x$3)]; - break; - default: - var - x$4 = x[1], - _cgg_ = [0, cst_LocationAccession, embed_proprietaire(x$4)]; - } - return [6, _aB_, _cgg_]; - } - var EligibiliteAidesPersonnelleLog = [0]; - function embed_eligibilite_aides_person(x){ - var - _cgc_ = - [0, - [0, - cst_condition_2_r823_4, - caml_call1(Runtime_ocaml_Runtime[10], x[5])], - 0], - _cgd_ = - [0, - [0, - cst_coefficents_enfants_garde_$2, - caml_call2 - (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[4])], - _cgc_], - _cge_ = - [0, - [0, - cst_nombre_personnes_charge_pr$1, - caml_call1(Runtime_ocaml_Runtime[14], x[3])], - _cgd_], - _cgf_ = - [0, - [0, cst_ligibilit$3, caml_call1(Runtime_ocaml_Runtime[12], x[2])], - _cge_]; - return [7, - _aC_, - [0, - [0, - cst_date_courante$0, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _cgf_]]; - } - var Logement = [0]; - function embed_logement(x){ - var - _cf6_ = [0, [0, cst_zone, embed_zone_d_habitation(x[9])], 0], - _cf7_ = - [0, - [0, cst_surface_m_carr_s, caml_call1(Runtime_ocaml_Runtime[14], x[8])], - _cf6_], - _cf8_ = - [0, - [0, - cst_logement_decent_l89_462, - caml_call1(Runtime_ocaml_Runtime[12], x[7])], - _cf7_], - _cf9_ = [0, [0, cst_usufruit, embed_parent_ou_autre(x[6])], _cf8_], - _cf__ = - [0, - [0, - cst_lou_ou_sous_lou_des_tiers, - embed_loue_ou_sous_loue_a_des_(x[5])], - _cf9_], - _cf$_ = [0, [0, cst_propri_taire, embed_parent_ou_autre(x[4])], _cf__], - _cga_ = [0, [0, cst_mode_occupation, embed_mode_occupation(x[3])], _cf$_], - _cgb_ = - [0, - [0, - cst_est_ehpad_ou_maison_autono, - caml_call1(Runtime_ocaml_Runtime[12], x[2])], - _cga_]; - return [7, - _aD_, - [0, - [0, - cst_r_sidence_principale, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - _cgb_]]; - } - var Menage = [0]; - function embed_menage(x){ - var - _cfY_ = [0, [0, cst_r_sidence, embed_collectivite(x[9])], 0], - _cfZ_ = - [0, - [0, - cst_personnes_g_es_handicap_es, - caml_call1(Runtime_ocaml_Runtime[12], x[8])], - _cfY_], - _cf0_ = - [0, - [0, - cst_enfant_na_tre_apr_s_quatri, - caml_call1(Runtime_ocaml_Runtime[12], x[7])], - _cfZ_], - _cf1_ = - [0, - [0, - cst_condition_rattach_foyer_fi, - caml_call1(Runtime_ocaml_Runtime[12], x[6])], - _cf0_], - _cf2_ = - [0, - [0, cst_situation_familiale, embed_situation_familiale(x[5])], - _cf1_], - _cf3_ = - [0, - [0, - cst_nombre_autres_occupants_lo, - caml_call1(Runtime_ocaml_Runtime[14], x[4])], - _cf2_], - _cf4_ = - [0, - [0, - cst_personnes_charge, - caml_call2(Runtime_ocaml_Runtime[18], embed_personne_a_charge, x[3])], - _cf3_], - _cf5_ = [0, [0, cst_logement, embed_logement(x[2])], _cf4_]; - return [7, - _aE_, - [0, - [0, - cst_prestations_re_ues, - caml_call2 - (Runtime_ocaml_Runtime[18], embed_prestation_recue, x[1])], - _cf5_]]; - } - var EligibiliteAidesPersonnelleLog$0 = [0]; - function embed_eligibilite_aides_person$0(x){ - var - _cfT_ = - [0, - [0, - cst_date_entr_e_vigueur_diff_r, - caml_call1(Runtime_ocaml_Runtime[10], x[6])], - 0], - _cfU_ = - [0, - [0, - cst_condition_logement_surface, - caml_call1(Runtime_ocaml_Runtime[10], x[5])], - _cfT_], - _cfV_ = - [0, - [0, - cst_condition_logement_r_siden, - caml_call1(Runtime_ocaml_Runtime[10], x[4])], - _cfU_], - _cfW_ = - [0, - [0, cst_date_courante_in, caml_call1(Runtime_ocaml_Runtime[16], x[3])], - _cfV_], - _cfX_ = [0, [0, cst_demandeur_in, embed_demandeur(x[2])], _cfW_]; - return [7, _aF_, [0, [0, cst_m_nage_in, embed_menage(x[1])], _cfX_]]; - } - var EligibiliteAidePersonnaliseeLo$0 = [0]; - function embed_eligibilite_aide_personn$0(x){ - var - _cfR_ = - [0, - [0, - cst_date_courante_in$0, - caml_call1(Runtime_ocaml_Runtime[16], x[3])], - 0], - _cfS_ = [0, [0, cst_demandeur_in$0, embed_demandeur(x[2])], _cfR_]; - return [7, _aG_, [0, [0, cst_m_nage_in$0, embed_menage(x[1])], _cfS_]]; - } - var EligibiliteAllocationLogementI = [0]; - function embed_eligibilite_allocation_l$0(x){ - var - _cfO_ = - [0, - [0, - cst_b_n_ficie_aide_personnalis, - caml_call1(Runtime_ocaml_Runtime[12], x[4])], - 0], - _cfP_ = [0, [0, cst_demandeur_in$1, embed_demandeur(x[3])], _cfO_], - _cfQ_ = [0, [0, cst_m_nage_in$1, embed_menage(x[2])], _cfP_]; - return [7, - _aH_, - [0, - [0, - cst_date_courante_in$1, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _cfQ_]]; - } - var EligibilitePrimeDeDemenagement$0 = [0]; - function embed_eligibilite_prime_de_dem$0(x){ - var - _cfJ_ = - [0, - [0, - cst_d_penses_justifi_es_r_elle, - caml_call1(Runtime_ocaml_Runtime[13], x[6])], - 0], - _cfK_ = - [0, - [0, - cst_date_courante_in$2, - caml_call1(Runtime_ocaml_Runtime[16], x[5])], - _cfJ_], - _cfL_ = [0, [0, cst_demandeur_in$2, embed_demandeur(x[4])], _cfK_], - _cfM_ = [0, [0, cst_m_nage_in$2, embed_menage(x[3])], _cfL_], - _cfN_ = - [0, - [0, - cst_date_emm_nagement_in, - caml_call1(Runtime_ocaml_Runtime[16], x[2])], - _cfM_]; - return [7, - _aI_, - [0, - [0, cst_informations_in, embed_informations_prime_de_de(x[1])], - _cfN_]]; - } - var RessourcesAidesPersonnelleLoge$0 = [0]; - function embed_ressources_aides_personn$0(x){ - var - _cfw_ = - [0, - [0, - cst_ressources_m_nage_arrondie, - caml_call1(Runtime_ocaml_Runtime[13], x[14])], - 0], - _cfx_ = - [0, - [0, - cst_paiement_logement_distinct, - embed_paiement_logement_distin(x[13])], - _cfw_], - _cfy_ = - [0, - [0, - cst_date_demande_ou_reexamen_d, - caml_call1(Runtime_ocaml_Runtime[16], x[12])], - _cfx_], - _cfz_ = - [0, - [0, - cst_demandeur_poursuit_des_tud, - caml_call1(Runtime_ocaml_Runtime[12], x[11])], - _cfy_], - _cfA_ = - [0, - [0, - cst_condition_ge_bourse_enseig, - caml_call1(Runtime_ocaml_Runtime[12], x[10])], - _cfz_], - _cfB_ = - [0, - [0, - cst_date_courante_in$3, - caml_call1(Runtime_ocaml_Runtime[16], x[9])], - _cfA_], - _cfC_ = - [0, [0, cst_mode_occupation_in, embed_mode_occupation(x[8])], _cfB_], - _cfD_ = - [0, - [0, cst_situation_familiale_in, embed_situation_familiale(x[7])], - _cfC_], - _cfE_ = - [0, - [0, - cst_personnes_charge_in, - caml_call2(Runtime_ocaml_Runtime[18], embed_personne_a_charge, x[6])], - _cfD_], - _cfF_ = - [0, - [0, - cst_conjoint_exerce_activit_r_, - caml_call1(Runtime_ocaml_Runtime[12], x[5])], - _cfE_], - _cfG_ = - [0, - [0, - cst_demandeur_exerce_activit_r, - caml_call1(Runtime_ocaml_Runtime[12], x[4])], - _cfF_], - _cfH_ = - [0, - [0, - cst_personnes_vivant_habituell, - caml_call2 - (Runtime_ocaml_Runtime[18], embed_personne_vivant_habituel, x[3])], - _cfG_], - _cfI_ = - [0, - [0, - cst_ressources_conjoint_in, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _cfH_]; - return [7, - _aJ_, - [0, - [0, - cst_ressources_demandeur_in, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _cfI_]]; - } - var ContributionsSocialesAidesPers$0 = [0]; - function embed_contributions_sociales_a$0(x){ - return [7, - _aK_, - [0, - [0, - cst_date_courante_in$4, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - 0]]; - } - var CalculAidePersonnaliseeLogemen$3 = [0]; - function embed_calcul_aide_personnalise$3(x){ - var - _cfj_ = [0, [0, cst_r_sidence_in, embed_collectivite(x[14])], 0], - _cfk_ = - [0, - [0, - cst_logement_meubl_d842_2_in, - caml_call1(Runtime_ocaml_Runtime[12], x[13])], - _cfj_], - _cfl_ = - [0, - [0, - cst_r_duction_loyer_solidarit_$0, - caml_call1(Runtime_ocaml_Runtime[13], x[12])], - _cfk_], - _cfm_ = - [0, - [0, cst_colocation_in, caml_call1(Runtime_ocaml_Runtime[12], x[11])], - _cfl_], - _cfn_ = - [0, - [0, cst_type_aide_in, embed_type_aides_personnelle_l(x[10])], - _cfm_], - _cfo_ = - [0, - [0, - cst_g_es_ou_handicap_adultes_h$0, - caml_call1(Runtime_ocaml_Runtime[12], x[9])], - _cfn_], - _cfp_ = - [0, - [0, - cst_logement_est_chambre_in, - caml_call1(Runtime_ocaml_Runtime[12], x[8])], - _cfo_], - _cfq_ = [0, [0, cst_zone_in, embed_zone_d_habitation(x[7])], _cfp_], - _cfr_ = - [0, - [0, - cst_situation_familiale_calcul, - embed_situation_familiale_calc(x[6])], - _cfq_], - _cfs_ = - [0, - [0, - cst_nombre_personnes_charge_in, - caml_call1(Runtime_ocaml_Runtime[14], x[5])], - _cfr_], - _cft_ = - [0, - [0, - cst_date_courante_in$5, - caml_call1(Runtime_ocaml_Runtime[16], x[4])], - _cfs_], - _cfu_ = - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o$1, - caml_call1(Runtime_ocaml_Runtime[12], x[3])], - _cft_], - _cfv_ = - [0, - [0, - cst_ressources_m_nage_arrondie$0, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _cfu_]; - return [7, - _aL_, - [0, - [0, - cst_loyer_principal_base_in, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _cfv_]]; - } - var CalculEquivalenceLoyerMinimale$0 = [0]; - function embed_calcul_equivalence_loyer$0(x){ - var - _cfg_ = - [0, - [0, - cst_n_nombre_parts_d832_25_in, - caml_call1(Runtime_ocaml_Runtime[15], x[4])], - 0], - _cfh_ = - [0, - [0, - cst_condition_2_du_832_25_in, - caml_call1(Runtime_ocaml_Runtime[12], x[3])], - _cfg_], - _cfi_ = - [0, - [0, - cst_ressources_m_nage_arrondie$1, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _cfh_]; - return [7, - _aM_, - [0, - [0, - cst_date_courante_in$6, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _cfi_]]; - } - var CalculNombrePartLogementFoyerI = [0]; - function embed_calcul_nombre_part_logem$0(x){ - var - _cfc_ = - [0, - [0, - cst_limitation_majoration_pers, - caml_call1(Runtime_ocaml_Runtime[10], x[5])], - 0], - _cfd_ = [0, [0, cst_r_sidence_in$0, embed_collectivite(x[4])], _cfc_], - _cfe_ = - [0, - [0, - cst_situation_familiale_calcul$0, - embed_situation_familiale_calc(x[3])], - _cfd_], - _cff_ = - [0, - [0, - cst_nombre_personnes_charge_in$0, - caml_call1(Runtime_ocaml_Runtime[14], x[2])], - _cfe_]; - return [7, - _aN_, - [0, - [0, - cst_condition_2_du_832_25_in$0, - caml_call1(Runtime_ocaml_Runtime[12], x[1])], - _cff_]]; - } - var CalculAidePersonnaliseeLogemen$4 = [0]; - function embed_calcul_aide_personnalise$4(x){ - var - _ce3_ = - [0, - [0, - cst_n_nombre_parts_d832_25_in$0, - caml_call1(Runtime_ocaml_Runtime[10], x[12])], - 0], - _ce4_ = - [0, - [0, - cst_limitation_majoration_pers$0, - caml_call1(Runtime_ocaml_Runtime[10], x[11])], - _ce3_], - _ce5_ = - [0, - [0, - cst_condition_2_du_832_25_in$1, - caml_call1(Runtime_ocaml_Runtime[10], x[10])], - _ce4_], - _ce6_ = [0, [0, cst_r_sidence_in$1, embed_collectivite(x[9])], _ce5_], - _ce7_ = - [0, - [0, cst_redevance_in, caml_call1(Runtime_ocaml_Runtime[13], x[8])], - _ce6_], - _ce8_ = - [0, - [0, - cst_date_courante_in$7, - caml_call1(Runtime_ocaml_Runtime[16], x[7])], - _ce7_], - _ce9_ = [0, [0, cst_zone_in$0, embed_zone_d_habitation(x[6])], _ce8_], - _ce__ = - [0, - [0, - cst_situation_familiale_calcul$1, - embed_situation_familiale_calc(x[5])], - _ce9_], - _ce$_ = - [0, - [0, - cst_nombre_personnes_charge_in$1, - caml_call1(Runtime_ocaml_Runtime[14], x[4])], - _ce__], - _cfa_ = - [0, - [0, - cst_ressources_m_nage_arrondie$2, - caml_call1(Runtime_ocaml_Runtime[13], x[3])], - _ce$_], - _cfb_ = - [0, - [0, - cst_date_conventionnement_in, - caml_call1(Runtime_ocaml_Runtime[16], x[2])], - _cfa_]; - return [7, - _aO_, - [0, - [0, cst_type_logement_foyer_in, embed_type_logement_foyer(x[1])], - _cfb_]]; - } - var CalculNombrePartsAccessionProp$0 = [0]; - function embed_calcul_nombre_parts_acce$0(x){ - var - _ce2_ = - [0, - [0, - cst_situation_familiale_calcul$2, - embed_situation_familiale_calc(x[2])], - 0]; - return [7, - _aP_, - [0, - [0, - cst_nombre_personnes_charge_in$2, - caml_call1(Runtime_ocaml_Runtime[14], x[1])], - _ce2_]]; - } - var CalculAidePersonnaliseeLogemen$5 = [0]; - function embed_calcul_aide_personnalise$5(x){ - var - _ceP_ = - [0, - [0, - cst_date_courante_in$8, - caml_call1(Runtime_ocaml_Runtime[16], x[14])], - 0], - _ceQ_ = - [0, [0, cst_anciennet_logement_in, embed_neuf_ou_ancien(x[13])], _ceP_], - _ceR_ = [0, [0, cst_type_pr_t_in, embed_type_pret(x[12])], _ceQ_], - _ceS_ = [0, [0, cst_zone_in$1, embed_zone_d_habitation(x[11])], _ceR_], - _ceT_ = - [0, - [0, - cst_situation_r822_11_13_17_in, - caml_call1(Runtime_ocaml_Runtime[12], x[10])], - _ceS_], - _ceU_ = - [0, - [0, cst_copropri_t_in, caml_call1(Runtime_ocaml_Runtime[12], x[9])], - _ceT_], - _ceV_ = - [0, - [0, - cst_date_entr_e_logement_in, - caml_call1(Runtime_ocaml_Runtime[16], x[8])], - _ceU_], - _ceW_ = - [0, - [0, - cst_local_habit_premi_re_fois_$0, - caml_call1(Runtime_ocaml_Runtime[12], x[7])], - _ceV_], - _ceX_ = - [0, - [0, - cst_date_signature_pr_t_in, - caml_call1(Runtime_ocaml_Runtime[16], x[6])], - _ceW_], - _ceY_ = - [0, - [0, - cst_type_travaux_logement_in, - embed_type_travaux_logement_d8(x[5])], - _ceX_], - _ceZ_ = - [0, - [0, - cst_situation_familiale_calcul$3, - embed_situation_familiale_calc(x[4])], - _ceY_], - _ce0_ = - [0, - [0, - cst_nombre_personnes_charge_in$3, - caml_call1(Runtime_ocaml_Runtime[14], x[3])], - _ceZ_], - _ce1_ = - [0, - [0, - cst_ressources_m_nage_arrondie$3, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _ce0_]; - return [7, - _aQ_, - [0, - [0, - cst_mensualit_principale_in, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _ce1_]]; - } - var CalculAidePersonnaliseeLogemen$6 = [0]; - function embed_calcul_aide_personnalise$6(x){ - var - _ceI_ = [0, [0, cst_r_sidence_in$2, embed_collectivite(x[8])], 0], - _ceJ_ = - [0, - [0, - cst_date_courante_in$9, - caml_call1(Runtime_ocaml_Runtime[16], x[7])], - _ceI_], - _ceK_ = [0, [0, cst_zone_in$2, embed_zone_d_habitation(x[6])], _ceJ_], - _ceL_ = - [0, - [0, - cst_nombre_personnes_charge_in$4, - caml_call1(Runtime_ocaml_Runtime[14], x[5])], - _ceK_], - _ceM_ = - [0, - [0, cst_situation_familiale_in$0, embed_situation_familiale(x[4])], - _ceL_], - _ceN_ = - [0, - [0, - cst_ressources_m_nage_sans_arr, - caml_call1(Runtime_ocaml_Runtime[13], x[3])], - _ceM_], - _ceO_ = - [0, - [0, cst_type_aide_in$0, embed_type_aides_personnelle_l(x[2])], - _ceN_]; - return [7, - _aR_, - [0, - [0, cst_mode_occupation_in$0, embed_mode_occupation(x[1])], - _ceO_]]; - } - var CalculAllocationLogementLocati$0 = [0]; - function embed_calcul_allocation_logeme$3(x){ - var - _ceu_ = - [0, - [0, - cst_changement_logement_d842_4$0, - embed_changement_logement_d842(x[15])], - 0], - _cev_ = [0, [0, cst_r_sidence_in$3, embed_collectivite(x[14])], _ceu_], - _cew_ = - [0, - [0, - cst_logement_meubl_d842_2_in$0, - caml_call1(Runtime_ocaml_Runtime[12], x[13])], - _cev_], - _cex_ = - [0, - [0, - cst_r_duction_loyer_solidarit_$1, - caml_call1(Runtime_ocaml_Runtime[13], x[12])], - _cew_], - _cey_ = - [0, - [0, cst_colocation_in$0, caml_call1(Runtime_ocaml_Runtime[12], x[11])], - _cex_], - _cez_ = - [0, - [0, cst_type_aide_in$1, embed_type_aides_personnelle_l(x[10])], - _cey_], - _ceA_ = - [0, - [0, - cst_g_es_ou_handicap_adultes_h$1, - caml_call1(Runtime_ocaml_Runtime[12], x[9])], - _cez_], - _ceB_ = - [0, - [0, - cst_logement_est_chambre_in$0, - caml_call1(Runtime_ocaml_Runtime[12], x[8])], - _ceA_], - _ceC_ = [0, [0, cst_zone_in$3, embed_zone_d_habitation(x[7])], _ceB_], - _ceD_ = - [0, - [0, - cst_situation_familiale_calcul$4, - embed_situation_familiale_calc(x[6])], - _ceC_], - _ceE_ = - [0, - [0, - cst_nombre_personnes_charge_in$5, - caml_call1(Runtime_ocaml_Runtime[14], x[5])], - _ceD_], - _ceF_ = - [0, - [0, - cst_date_courante_in$10, - caml_call1(Runtime_ocaml_Runtime[16], x[4])], - _ceE_], - _ceG_ = - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o$2, - caml_call1(Runtime_ocaml_Runtime[12], x[3])], - _ceF_], - _ceH_ = - [0, - [0, - cst_ressources_m_nage_arrondie$4, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _ceG_]; - return [7, - _aS_, - [0, - [0, - cst_loyer_principal_in, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _ceH_]]; - } - var CalculAllocationLogementAccess$0 = [0]; - function embed_calcul_allocation_logeme$4(x){ - var - _ceg_ = - [0, - [0, - cst_op_rations_logement_voluti$0, - caml_call1(Runtime_ocaml_Runtime[12], x[15])], - 0], - _ceh_ = - [0, - [0, cst_copropri_t_in$0, caml_call1(Runtime_ocaml_Runtime[12], x[14])], - _ceg_], - _cei_ = - [0, - [0, - cst_charges_mensuelles_pr_t_in, - caml_call1(Runtime_ocaml_Runtime[13], x[13])], - _ceh_], - _cej_ = - [0, - [0, - cst_date_entr_e_logement_in$0, - caml_call1(Runtime_ocaml_Runtime[16], x[12])], - _cei_], - _cek_ = - [0, - [0, - cst_local_habit_premi_re_fois_$1, - caml_call1(Runtime_ocaml_Runtime[12], x[11])], - _cej_], - _cel_ = - [0, - [0, - cst_type_travaux_logement_in$0, - embed_type_travaux_logement_r8(x[10])], - _cek_], - _cem_ = - [0, - [0, - cst_date_signature_pr_t_in$0, - caml_call1(Runtime_ocaml_Runtime[16], x[9])], - _cel_], - _cen_ = - [0, - [0, - cst_situation_r822_11_13_17_in$0, - caml_call1(Runtime_ocaml_Runtime[12], x[8])], - _cem_], - _ceo_ = - [0, - [0, - cst_mensualit_principale_in$0, - caml_call1(Runtime_ocaml_Runtime[13], x[7])], - _cen_], - _cep_ = - [0, - [0, - cst_date_courante_in$11, - caml_call1(Runtime_ocaml_Runtime[16], x[6])], - _ceo_], - _ceq_ = [0, [0, cst_r_sidence_in$4, embed_collectivite(x[5])], _cep_], - _cer_ = [0, [0, cst_zone_in$4, embed_zone_d_habitation(x[4])], _ceq_], - _ces_ = - [0, - [0, - cst_situation_familiale_calcul$5, - embed_situation_familiale_calc(x[3])], - _cer_], - _cet_ = - [0, - [0, - cst_nombre_personnes_charge_in$6, - caml_call1(Runtime_ocaml_Runtime[14], x[2])], - _ces_]; - return [7, - _aT_, - [0, - [0, - cst_ressources_m_nage_arrondie$5, - caml_call1(Runtime_ocaml_Runtime[13], x[1])], - _cet_]]; - } - var CalculAllocationLogementFoyerI = [0]; - function embed_calcul_allocation_logeme$5(x){ - var - _cd9_ = - [0, - [0, - cst_cat_gorie_quivalence_loyer$0, - embed_categorie_equivalence_lo(x[10])], - 0], - _cd__ = - [0, - [0, - cst_date_courante_in$12, - caml_call1(Runtime_ocaml_Runtime[16], x[9])], - _cd9_], - _cd$_ = [0, [0, cst_zone_in$5, embed_zone_d_habitation(x[8])], _cd__], - _cea_ = - [0, - [0, - cst_situation_familiale_calcul$6, - embed_situation_familiale_calc(x[7])], - _cd$_], - _ceb_ = - [0, - [0, - cst_nombre_personnes_charge_in$7, - caml_call1(Runtime_ocaml_Runtime[14], x[6])], - _cea_], - _cec_ = - [0, - [0, - cst_ressources_m_nage_arrondie$6, - caml_call1(Runtime_ocaml_Runtime[13], x[5])], - _ceb_], - _ced_ = - [0, - [0, cst_redevance_in$0, caml_call1(Runtime_ocaml_Runtime[13], x[4])], - _cec_], - _cee_ = [0, [0, cst_r_sidence_in$5, embed_collectivite(x[3])], _ced_], - _cef_ = - [0, - [0, - cst_date_conventionnement_in$0, - caml_call1(Runtime_ocaml_Runtime[16], x[2])], - _cee_]; - return [7, - _aU_, - [0, - [0, - cst_type_logement_foyer_in$0, - embed_type_logement_foyer(x[1])], - _cef_]]; - } - var CalculAllocationLogementIn = [0]; - function embed_calcul_allocation_logeme$6(x){ - var - _cd2_ = [0, [0, cst_r_sidence_in$6, embed_collectivite(x[8])], 0], - _cd3_ = - [0, - [0, cst_type_aide_in$2, embed_type_aides_personnelle_l(x[7])], - _cd2_], - _cd4_ = - [0, - [0, - cst_date_courante_in$13, - caml_call1(Runtime_ocaml_Runtime[16], x[6])], - _cd3_], - _cd5_ = [0, [0, cst_zone_in$6, embed_zone_d_habitation(x[5])], _cd4_], - _cd6_ = - [0, - [0, - cst_nombre_personnes_charge_in$8, - caml_call1(Runtime_ocaml_Runtime[14], x[4])], - _cd5_], - _cd7_ = - [0, - [0, cst_situation_familiale_in$1, embed_situation_familiale(x[3])], - _cd6_], - _cd8_ = - [0, - [0, - cst_ressources_m_nage_sans_arr$0, - caml_call1(Runtime_ocaml_Runtime[13], x[2])], - _cd7_]; - return [7, - _aV_, - [0, - [0, cst_mode_occupation_in$1, embed_mode_occupation(x[1])], - _cd8_]]; - } - var OuvertureDroitsRetraiteIn = [0]; - function embed_ouverture_droits_retrait$0(x){ - return [7, - _aW_, - [0, - [0, - cst_date_naissance_assur_in, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - 0]]; - } - var ImpayeDepenseLogementIn = [0]; - function embed_impaye_depense_logement_(x){ - var - _cdX_ = - [0, - [0, cst_montant_dette_in, caml_call1(Runtime_ocaml_Runtime[13], x[6])], - 0], - _cdY_ = - [0, [0, cst_d_pense_logement_in, embed_depense_logement(x[5])], _cdX_], - _cdZ_ = - [0, - [0, - cst_montant_charges_in, - caml_call1(Runtime_ocaml_Runtime[13], x[4])], - _cdY_], - _cd0_ = - [0, - [0, cst_montant_apl_in, caml_call1(Runtime_ocaml_Runtime[13], x[3])], - _cdZ_], - _cd1_ = [0, [0, cst_aide_vers_e_in, embed_versement_a(x[2])], _cd0_]; - return [7, - _aX_, - [0, - [0, cst_mode_occupation_in$2, embed_mode_occupation(x[1])], - _cd1_]]; - } - var CalculetteAidesAuLogementIn = [0]; - function embed_calculette_aides_au_loge$1(x){ - var - _cdU_ = - [0, - [0, - cst_ressources_m_nage_prises_e, - caml_call1(Runtime_ocaml_Runtime[13], x[4])], - 0], - _cdV_ = - [0, - [0, - cst_date_courante_in$14, - caml_call1(Runtime_ocaml_Runtime[16], x[3])], - _cdU_], - _cdW_ = [0, [0, cst_demandeur_in$3, embed_demandeur(x[2])], _cdV_]; - return [7, _aY_, [0, [0, cst_m_nage_in$3, embed_menage(x[1])], _cdW_]]; - } - var CalculetteAidesAuLogementGarde$0 = [0]; - function embed_calculette_aides_au_loge$2(x){ - var - _cdR_ = - [0, - [0, - cst_ressources_m_nage_prises_e$0, - caml_call1(Runtime_ocaml_Runtime[13], x[4])], - 0], - _cdS_ = - [0, - [0, - cst_date_courante_in$15, - caml_call1(Runtime_ocaml_Runtime[16], x[3])], - _cdR_], - _cdT_ = [0, [0, cst_demandeur_in$4, embed_demandeur(x[2])], _cdS_]; - return [7, _aZ_, [0, [0, cst_m_nage_in$4, embed_menage(x[1])], _cdT_]]; - } - var BaseMensuelleAllocationsFamili$0 = [0]; - function embed_base_mensuelle_allocatio$0(x){ - return [7, - _a0_, - [0, - [0, - cst_date_courante_in$16, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - 0]]; - } - var VerificationAgeInferieurOuEgal$0 = [0]; - function embed_verification_age_inferie$0(x){ - var - _cdP_ = - [0, [0, cst_ann_es_in, caml_call1(Runtime_ocaml_Runtime[17], x[3])], 0], - _cdQ_ = - [0, - [0, - cst_date_courante_in$17, - caml_call1(Runtime_ocaml_Runtime[16], x[2])], - _cdP_]; - return [7, - _a1_, - [0, - [0, - cst_date_naissance_in, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _cdQ_]]; - } - var VerificationAgeSuperieurAIn = [0]; - function embed_verification_age_superie$0(x){ - var - _cdN_ = - [0, - [0, cst_ann_es_in$0, caml_call1(Runtime_ocaml_Runtime[17], x[3])], - 0], - _cdO_ = - [0, - [0, - cst_date_courante_in$18, - caml_call1(Runtime_ocaml_Runtime[16], x[2])], - _cdN_]; - return [7, - _a2_, - [0, - [0, - cst_date_naissance_in$0, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _cdO_]]; - } - var SmicIn = [0]; - function embed_smic_in(x){ - var _cdM_ = [0, [0, cst_r_sidence_in$7, embed_collectivite(x[2])], 0]; - return [7, - _a3_, - [0, - [0, - cst_date_courante_in$19, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _cdM_]]; - } - var EligibilitePrestationsFamilial$0 = [0]; - function embed_eligibilite_prestations_$0(x){ - var - _cdJ_ = - [0, - [0, cst_ge_l512_3_2_in, caml_call1(Runtime_ocaml_Runtime[10], x[4])], - 0], - _cdK_ = [0, [0, cst_r_sidence_in$8, embed_collectivite(x[3])], _cdJ_], - _cdL_ = - [0, - [0, cst_prestation_courante_in, embed_element_prestations_fami(x[2])], - _cdK_]; - return [7, - _a4_, - [0, - [0, - cst_date_courante_in$20, - caml_call1(Runtime_ocaml_Runtime[16], x[1])], - _cdL_]]; - } - function contributions_sociales_aides_p(contributions_sociales_aides_p){ - var date_courante = contributions_sociales_aides_p[1]; - try{ - var - _cdj_ = function(param){return 0;}, - _cdk_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _a6_, 1); - }, - _cdl_ = - [0, - function(param){ - function _cdH_(param){return 1;} - function _cdI_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _a7_, 1); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _a8_, [0], _cdI_, _cdH_); - }], - _cdm_ = caml_call4(Runtime_ocaml_Runtime[63], _a9_, _cdl_, _cdk_, _cdj_); - } - catch(_cdG_){ - var _cdi_ = caml_wrap_exception(_cdG_); - if(_cdi_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _a5_], 1); - throw caml_maybe_attach_backtrace(_cdi_, 0); - } - var - exonere_csg = - caml_call3 - (Runtime_ocaml_Runtime[28], _a__, Runtime_ocaml_Runtime[12], _cdm_); - try{ - var - _cdo_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_005); - }, - _cdp_ = - function(param){ + interface_allocations_familial$2, + interface_allocations_familial$3, + allocation_familiales_avril200$4, + enfant_le_plus_age$0, + verification_age_inferieur_ou_$4, + verification_age_superieur_a$0, + smic$0, + base_mensuelle_allocations_fam$4, + prestations_familiales$0, + allocations_familiales$0, + interface_allocations_familial$4]; + caml_register_global + (9735, + Law_source_Allocations_familia$0, + "Law_source__Allocations_familiales_api_web"); + var TypePret=[0]; + function embed_type_pret(x) + {switch(x[0]) + {case 0: var - _cdE_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _cdF_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _cdE_); - return caml_call2(Runtime_ocaml_Runtime[29], _ba_, _cdF_); - }, - _cdq_ = caml_call4(Runtime_ocaml_Runtime[63], _bb_, [0], _cdp_, _cdo_); - } - catch(_cdD_){ - var _cdn_ = caml_wrap_exception(_cdD_); - if(_cdn_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _a$_], 1); - throw caml_maybe_attach_backtrace(_cdn_, 0); - } - var - taux_crds = - caml_call3 - (Runtime_ocaml_Runtime[28], _bc_, Runtime_ocaml_Runtime[15], _cdq_); - function _cdr_(aide_finale){ - try{ + x$0=x[1], + _cx__=[0,cst_D331_32,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cx__=[0,cst_D331_63_64,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cx__=[0,cst_D331_59_8,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + case 3: + var + x$3=x[1], + _cx__=[0,cst_D331_76_1,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; + break; + default: + var + x$4=x[1], + _cx__=[0,cst_Autre,caml_call1(Runtime_ocaml_Runtime[11],x$4)]} + return [6,_kY_,_cx__]} + var TitulairePret=[0]; + function embed_titulaire_pret(x) + {if(0 === x[0]) + var + x$0=x[1], + _cx9_=[0,cst_Demandeur,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + else + var + x$1=x[1], + _cx9_= + [0, + cst_VendeurQuandDemandeurACont, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_kZ_,_cx9_]} + var TypeTravauxLogementD83215=[0]; + function embed_type_travaux_logement_d8(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cx8_= + [0, + cst_TravauxPourAcquisitionD832, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cx8_= + [0, + cst_TravauxSurLogementD_j_Acqu, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cx8_=[0,cst_PasDeTravaux,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_k0_,_cx8_]} + var TypeTravauxLogementR8425=[0]; + function embed_type_travaux_logement_r8(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cx7_= + [0, + cst_ObjectifD_cenceLogement, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cx7_= + [0, + cst_Pr_vuDansListeR321_15, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cx7_= + [0, + cst_AgrandirOuRendreHabitableD, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + default: + var + x$3=x[1], + _cx7_= + [0,cst_PasDeTravaux$0,caml_call1(Runtime_ocaml_Runtime[11],x$3)]} + return [6,_k1_,_cx7_]} + var AmelioreParOccupant=[0]; + function embed_ameliore_par_occupant(x) + {if(0 === x[0]) + var + x$0=x[1], + _cx6_=[0,cst_Oui,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + else + var + x$1=x[1], + _cx6_=[0,cst_Non,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_k2_,_cx6_]} + var LimiteTranche=[0]; + function embed_limite_tranche(x) + {if(0 === x[0]) + var + x$0=x[1], + _cx5_=[0,cst_Revenu,caml_call1(Runtime_ocaml_Runtime[13],x$0)]; + else + var + x$1=x[1], + _cx5_=[0,cst_Infini,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_k3_,_cx5_]} + var LimiteTrancheDecimal=[0]; + function embed_limite_tranche_decimal(x) + {if(0 === x[0]) + var + x$0=x[1], + _cx4_=[0,cst_Revenu$0,caml_call1(Runtime_ocaml_Runtime[15],x$0)]; + else + var + x$1=x[1], + _cx4_=[0,cst_Infini$0,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_k4_,_cx4_]} + var PrestationRecue=[0]; + function embed_prestation_recue(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cx3_= + [0, + cst_AllocationsFamiliales$1, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cx3_= + [0, + cst_Compl_mentFamilial$0, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cx3_= + [0, + cst_AllocationJeuneEnfant, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + case 3: + var + x$3=x[1], + _cx3_= + [0, + cst_AllocationSoutienFamilial$1, + caml_call1(Runtime_ocaml_Runtime[11],x$3)]; + break; + case 4: + var + x$4=x[1], + _cx3_= + [0, + cst_AllocationSoutienEnfantHan, + caml_call1(Runtime_ocaml_Runtime[11],x$4)]; + break; + default: + var + x$5=x[1], + _cx3_= + [0, + cst_AllocationAdulteHandicap, + caml_call1(Runtime_ocaml_Runtime[11],x$5)]} + return [6,_k5_,_cx3_]} + var ParentOuAutre=[0]; + function embed_parent_ou_autre(x) + {if(0 === x[0]) + var + x$0=x[1], + _cx2_= + [0, + cst_DemandeurOuConjointOuParen, + caml_call1(Runtime_ocaml_Runtime[15],x$0)]; + else + var + x$1=x[1], + _cx2_=[0,cst_Autre$0,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_k6_,_cx2_]} + var SituationGardeAlternee=[0]; + function embed_situation_garde_alternee(x) + {if(0 === x[0]) + var + x$0=x[1], + _cx1_= + [0,cst_PasDeGardeAltern_e,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + else + var + x$1=x[1], + _cx1_= + [0, + cst_GardeAltern_eCoefficientPr, + caml_call1(Runtime_ocaml_Runtime[15],x$1)]; + return [6,_k7_,_cx1_]} + var Parente=[0]; + function embed_parente(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cx0_=[0,cst_Ascendant,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cx0_=[0,cst_Descendant,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cx0_= + [0, + cst_Collat_ralDeuxi_meTroisi_m, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_k8_,_cx0_]} + var DateDeNaissanceOuMoisDeGrosses=[0]; + function embed_date_de_naissance_ou_moi(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxZ_= + [0,cst_DateDeNaissance,caml_call1(Runtime_ocaml_Runtime[16],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxZ_= + [0, + cst_AvantPremierJourMoisCivilT, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cxZ_= + [0, + cst_Apr_sPremierJourMoisCivilT, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_k9_,_cxZ_]} + var ZoneDHabitation=[0]; + function embed_zone_d_habitation(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxY_=[0,cst_Zone1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxY_=[0,cst_Zone2,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cxY_=[0,cst_Zone3,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_k__,_cxY_]} + var PaiementLogementDistinctProfes=[0]; + function embed_paiement_logement_distin(x) + {if(0 === x[0]) + var + x$0=x[1], + _cxX_= + [0, + cst_OuiAvecLoyerOuCharges, + caml_call1(Runtime_ocaml_Runtime[13],x$0)]; + else + var + x$1=x[1], + _cxX_=[0,cst_Non$0,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_k$_,_cxX_]} + var VersementA=[0]; + function embed_versement_a(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxW_=[0,cst_Bailleur,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxW_=[0,cst_B_n_ficiaire,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cxW_= + [0, + cst_tablissementHabilit, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_la_,_cxW_]} + var DepenseLogement=[0]; + function embed_depense_logement(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxV_= + [0, + cst_TotalAnnuel_ch_ances, + caml_call1(Runtime_ocaml_Runtime[13],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxV_=[0,cst_Mensualit,caml_call1(Runtime_ocaml_Runtime[13],x$1)]; + break; + default: + var + x$2=x[1], + _cxV_=[0,cst_Loyer,caml_call1(Runtime_ocaml_Runtime[13],x$2)]} + return [6,_lb_,_cxV_]} + var ModeOccupationImpaye=[0]; + function embed_mode_occupation_impaye(x) + {if(0 === x[0]) + var + x$0=x[1], + _cxU_=[0,cst_Impay_Loyer,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + else + var + x$1=x[1], + _cxU_=[0,cst_Impay_Pr_t,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_lc_,_cxU_]} + var TypeEligibiliteAllocationLogem=[0]; + function embed_type_eligibilite_allocat(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxT_=[0,cst_Pas_ligible,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxT_= + [0, + cst_AllocationLogementFamilial, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cxT_= + [0, + cst_AllocationLogementSociale, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_ld_,_cxT_]} + var AccordFinancementRepresentantE=[0]; + function embed_accord_financement_repre(x) + {if(0 === x[0]) + var + x$0=x[1], + _cxS_=[0,cst_Accord,caml_call1(Runtime_ocaml_Runtime[16],x$0)]; + else + var + x$1=x[1], + _cxS_=[0,cst_PasdAccord,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_le_,_cxS_]} + var TypeAidesPersonnelleLogement=[0]; + function embed_type_aides_personnelle_l(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxR_= + [0, + cst_AidePersonnalis_eLogement, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxR_= + [0, + cst_AllocationLogementFamilial$0, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cxR_= + [0, + cst_AllocationLogementSociale$0, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_lf_,_cxR_]} + var SituationFamiliale=[0]; + function embed_situation_familiale(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxQ_=[0,cst_C_libataire,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxQ_=[0,cst_Mari_s,caml_call1(Runtime_ocaml_Runtime[16],x$1)]; + break; + case 2: + var + x$2=x[1], + _cxQ_=[0,cst_Pacs_s,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + case 3: + var + x$3=x[1], + _cxQ_=[0,cst_Concubins,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; + break; + case 4: + var + x$4=x[1], + _cxQ_= + [0, + cst_C_libataireS_par_DeFait, + caml_call1(Runtime_ocaml_Runtime[11],x$4)]; + break; + default: + var + x$5=x[1], + _cxQ_= + [0, + cst_ConcubinageDontS_par_DeFai, + caml_call1(Runtime_ocaml_Runtime[11],x$5)]} + return [6,_lg_,_cxQ_]} + var PriseEnCharge$0=[0]; + function embed_prise_en_charge$0(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxP_= + [0, + cst_EffectiveEtPermanente$1, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxP_= + [0, + cst_R_sidenceAltern_eAllocatai, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cxP_= + [0, + cst_R_sidenceAltern_eAllocatio, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_lh_,_cxP_]} + var TypeLogementFoyer=[0]; + function embed_type_logement_foyer(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxO_= + [0, + cst_LogementPersonnes_g_esOuHa, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxO_= + [0,cst_R_sidenceSociale,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cxO_= + [0, + cst_FoyerJeunesTrvailleursOuMi, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + default: + var + x$3=x[1], + _cxO_=[0,cst_Autre$1,caml_call1(Runtime_ocaml_Runtime[11],x$3)]} + return [6,_li_,_cxO_]} + var CategorieEquivalenceLoyerAlloc=[0]; + function embed_categorie_equivalence_lo(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxN_= + [0, + cst_tudiantLog_EnChambreCROUS, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxN_= + [0, + cst_tudiantLog_EnChambreCROUSR, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cxN_= + [0, + cst_Personnes_g_esSelon3DeD842, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + default: + var + x$3=x[1], + _cxN_= + [0,cst_AutresPersonnes,caml_call1(Runtime_ocaml_Runtime[11],x$3)]} + return [6,_lj_,_cxN_]} + var SituationFamilialeCalculAPL=[0]; + function embed_situation_familiale_calc(x) + {if(0 === x[0]) + var + x$0=x[1], + _cxM_=[0,cst_PersonneSeule,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + else + var + x$1=x[1], + _cxM_=[0,cst_Couple,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_lk_,_cxM_]} + var Collectivite$0=[0]; + function embed_collectivite$0(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxL_=[0,cst_Guadeloupe$1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxL_=[0,cst_Guyane$1,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cxL_=[0,cst_Martinique$1,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + case 3: + var + x$3=x[1], + _cxL_=[0,cst_LaR_union$0,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; + break; + case 4: + var + x$4=x[1], + _cxL_= + [0,cst_SaintBarth_lemy$0,caml_call1(Runtime_ocaml_Runtime[11],x$4)]; + break; + case 5: + var + x$5=x[1], + _cxL_= + [0,cst_SaintMartin$1,caml_call1(Runtime_ocaml_Runtime[11],x$5)]; + break; + case 6: + var + x$6=x[1], + _cxL_=[0,cst_M_tropole$0,caml_call1(Runtime_ocaml_Runtime[11],x$6)]; + break; + case 7: + var + x$7=x[1], + _cxL_= + [0, + cst_SaintPierreEtMiquelon$1, + caml_call1(Runtime_ocaml_Runtime[11],x$7)]; + break; + default: + var + x$8=x[1], + _cxL_=[0,cst_Mayotte$1,caml_call1(Runtime_ocaml_Runtime[11],x$8)]} + return [6,_ll_,_cxL_]} + var PriseEnChargeEnfant=[0]; + function embed_prise_en_charge_enfant(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxK_= + [0, + cst_GardeAltern_ePartageAlloca$0, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxK_= + [0, + cst_GardeAltern_eAllocataireUn$0, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cxK_= + [0, + cst_EffectiveEtPermanente$2, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + case 3: + var + x$3=x[1], + _cxK_= + [0, + cst_ServicesSociauxAllocationV$3, + caml_call1(Runtime_ocaml_Runtime[11],x$3)]; + break; + default: + var + x$4=x[1], + _cxK_= + [0, + cst_ServicesSociauxAllocationV$4, + caml_call1(Runtime_ocaml_Runtime[11],x$4)]} + return [6,_lm_,_cxK_]} + var SituationObligationScolaire$0=[0]; + function embed_situation_obligation_sco$0(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxJ_=[0,cst_Avant$1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxJ_=[0,cst_Pendant$1,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + default: + var + x$2=x[1], + _cxJ_=[0,cst_Apr_s$0,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_ln_,_cxJ_]} + var ElementPrestationsFamiliales$0=[0]; + function embed_element_prestations_fami$0(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cxI_= + [0, + cst_PrestationAccueilJeuneEnfa$1, + caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + break; + case 1: + var + x$1=x[1], + _cxI_= + [0, + cst_AllocationsFamiliales$2, + caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + break; + case 2: + var + x$2=x[1], + _cxI_= + [0, + cst_Compl_mentFamilial$1, + caml_call1(Runtime_ocaml_Runtime[11],x$2)]; + break; + case 3: + var + x$3=x[1], + _cxI_= + [0, + cst_AllocationLogement$1, + caml_call1(Runtime_ocaml_Runtime[11],x$3)]; + break; + case 4: + var + x$4=x[1], + _cxI_= + [0, + cst_Allocation_ducationEnfantH$0, + caml_call1(Runtime_ocaml_Runtime[11],x$4)]; + break; + case 5: + var + x$5=x[1], + _cxI_= + [0, + cst_AllocationSoutienFamilial$2, + caml_call1(Runtime_ocaml_Runtime[11],x$5)]; + break; + case 6: + var + x$6=x[1], + _cxI_= + [0, + cst_AllocationRentr_eScolaire$0, + caml_call1(Runtime_ocaml_Runtime[11],x$6)]; + break; + default: + var + x$7=x[1], + _cxI_= + [0, + cst_AllocationJournali_rePrese$0, + caml_call1(Runtime_ocaml_Runtime[11],x$7)]} + return [6,_lo_,_cxI_]} + var ConventionBailleurSocial=[0]; + function embed_convention_bailleur_soci(x) + {var + _cxH_= + [0, + [0, + cst_r_duction_loyer_solidarit_, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + 0]; + return [7, + _lp_, + [0, + [0, + cst_conventionn_livre_III_titr, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + _cxH_]]} + var ConventionANHA=[0]; + function embed_convention_a_n_h_a(x) + {return [7, + _lq_, + [0, + [0, + cst_conventionn_livre_III_titr$0, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + 0]]} + var PersonneSousLocation=[0]; + function embed_personne_sous_location(x) + {var + _cxG_= + [0, + [0, + cst_conforme_article_l442_1, + caml_call1(Runtime_ocaml_Runtime[12],x[2])], + 0]; + return [7, + _lr_, + [0, + [0, + cst_date_naissance_personne_so, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cxG_]]} + var Patrimoine=[0]; + function embed_patrimoine(x) + {var + _cxF_= + [0, + [0, + cst_ne_produisant_pas_revenu_p, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + 0]; + return [7, + _ls_, + [0, + [0, + cst_produisant_revenu_p_riode_, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cxF_]]} + var ConditionsEtrangers=[0]; + function embed_conditions_etrangers(x) + {var + _cxE_= + [0, + [0, + cst_satisfait_art_4_ordonnance, + caml_call1(Runtime_ocaml_Runtime[12],x[2])], + 0]; + return [7, + _lt_, + [0, + [0, + cst_satisfait_conditions_l512_, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + _cxE_]]} + var PersonneVivantHabituellementAu=[0]; + function embed_personne_vivant_habituel(x) + {var + _cxD_= + [0,[0,cst_ressources,caml_call1(Runtime_ocaml_Runtime[13],x[2])],0]; + return [7, + _lu_, + [0, + [0, + cst_dur_e_r_sidence_durant_p_r, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + _cxD_]]} + var EligibiliteAidePersonnaliseeLo=[0]; + function embed_eligibilite_aide_personn(x) + {var + _cxA_= + [0, + [0, + cst_coefficents_enfants_garde_, + caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[4])], + 0], + _cxB_= + [0, + [0, + cst_nombre_personnes_charge_pr, + caml_call1(Runtime_ocaml_Runtime[14],x[3])], + _cxA_], + _cxC_= + [0,[0,cst_ligibilit,caml_call1(Runtime_ocaml_Runtime[12],x[2])],_cxB_]; + return [7, + _lv_, + [0, + [0, + cst_date_courante, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cxC_]]} + var EligibilitePrimeDeDemenagement=[0]; + function embed_eligibilite_prime_de_dem(x) + {return [7, + _lw_, + [0, + [0, + cst_montant_prime_d_m_nagement, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + 0]]} + var RessourcesAidesPersonnelleLoge=[0]; + function embed_ressources_aides_personn(x) + {return [7, + _lx_, + [0, + [0, + cst_ressources_prises_en_compt, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + 0]]} + var ContributionsSocialesAidesPers=[0]; + function embed_contributions_sociales_a(x) + {return [7, + _ly_, + [0, + [0,cst_montant$0,caml_call1(Runtime_ocaml_Runtime[10],x[1])], + 0]]} + var CalculAidePersonnaliseeLogemen=[0]; + function embed_calcul_aide_personnalise(x) + {var + _cxu_= + [0, + [0, + cst_traitement_aide_finale, + caml_call1(Runtime_ocaml_Runtime[10],x[7])], + 0], + _cxv_= + [0, + [0, + cst_aide_finale_formule, + caml_call1(Runtime_ocaml_Runtime[13],x[6])], + _cxu_], + _cxw_= + [0, + [0, + cst_participation_personnelle, + caml_call1(Runtime_ocaml_Runtime[13],x[5])], + _cxv_], + _cxx_= + [0, + [0, + cst_taux_composition_familiale, + caml_call1(Runtime_ocaml_Runtime[15],x[4])], + _cxw_], + _cxy_= + [0, + [0, + cst_participation_minimale, + caml_call1(Runtime_ocaml_Runtime[13],x[3])], + _cxx_], + _cxz_= + [0, + [0, + cst_plafond_loyer_d823_16_2, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cxy_]; + return [7, + _lz_, + [0, + [0, + cst_montant_forfaitaire_charge, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cxz_]]} + var CalculEquivalenceLoyerMinimale=[0]; + function embed_calcul_equivalence_loyer(x) + {return [7, + _lA_, + [0, + [0,cst_montant$1,caml_call1(Runtime_ocaml_Runtime[13],x[1])], + 0]]} + var CalculNombrePartLogementFoyer=[0]; + function embed_calcul_nombre_part_logem(x) + {return [7, + _lB_, + [0, + [0, + cst_n_nombre_parts_d832_25, + caml_call1(Runtime_ocaml_Runtime[15],x[1])], + 0]]} + var CalculAidePersonnaliseeLogemen$0=[0]; + function embed_calcul_aide_personnalise$0(x) + {var + _cxm_= + [0, + [0, + cst_traitement_aide_finale$0, + caml_call1(Runtime_ocaml_Runtime[10],x[9])], + 0], + _cxn_= + [0, + [0, + cst_aide_finale_formule$0, + caml_call1(Runtime_ocaml_Runtime[13],x[8])], + _cxm_], + _cxo_= + [0, + [0, + cst_coefficient_prise_en_charg, + caml_call1(Runtime_ocaml_Runtime[15],x[7])], + _cxn_], + _cxp_= + [0, + [0, + cst_quivalence_loyer_minimale, + caml_call1(Runtime_ocaml_Runtime[13],x[6])], + _cxo_], + _cxq_= + [0, + [0, + cst_plafond_quivalence_loyer_l, + caml_call1(Runtime_ocaml_Runtime[13],x[5])], + _cxp_], + _cxr_= + [0, + [0, + cst_quivalence_loyer_ligible, + caml_call1(Runtime_ocaml_Runtime[13],x[4])], + _cxq_], + _cxs_= + [0, + [0, + cst_n_nombre_parts_d832_25$0, + caml_call1(Runtime_ocaml_Runtime[15],x[3])], + _cxr_], + _cxt_= + [0, + [0, + cst_coefficient_r_d832_25, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cxs_]; + return [7, + _lC_, + [0, + [0, + cst_coefficient_multiplicateur, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cxt_]]} + var CalculNombrePartsAccessionProp=[0]; + function embed_calcul_nombre_parts_acce(x) + {return [7, + _lD_, + [0, + [0, + cst_n_nombre_parts_d832_11, + caml_call1(Runtime_ocaml_Runtime[15],x[1])], + 0]]} + var CalculAidePersonnaliseeLogemen$1=[0]; + function embed_calcul_aide_personnalise$1(x) + {var + _cxi_= + [0, + [0, + cst_traitement_aide_finale$1, + caml_call1(Runtime_ocaml_Runtime[10],x[5])], + 0], + _cxj_= + [0, + [0, + cst_aide_finale_formule$1, + caml_call1(Runtime_ocaml_Runtime[13],x[4])], + _cxi_], + _cxk_= + [0, + [0, + cst_coefficient_prise_en_charg$0, + caml_call1(Runtime_ocaml_Runtime[15],x[3])], + _cxj_], + _cxl_= + [0, + [0,cst_mensualit_minimale,caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cxk_]; + return [7, + _lE_, + [0, + [0, + cst_mensualit_ligible, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cxl_]]} + var TraitementFormuleAideFinale=[0]; + function embed_traitement_formule_aide_(x) + {var + _cxh_= + [0, + [0, + cst_traitement_aide_finale$2, + caml_call1(Runtime_ocaml_Runtime[10],x[2])], + 0]; + return [7, + _lF_, + [0, + [0, + cst_aide_finale_formule$2, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cxh_]]} + var CalculAidePersonnaliseeLogemen$2=[0]; + function embed_calcul_aide_personnalise$2(x) + {var + _cxg_= + [0, + [0, + cst_traitement_aide_finale$3, + caml_call1(Runtime_ocaml_Runtime[10],x[2])], + 0]; + return [7, + _lG_, + [0, + [0, + cst_aide_finale_formule$3, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cxg_]]} + var InfosChangementLogementD8424=[0]; + function embed_infos_changement_logemen(x) + {var + _cxf_= + [0, + [0, + cst_ancienne_allocation_logeme, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + 0]; + return [7, + _lH_, + [0, + [0, + cst_ancien_loyer_principal, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cxf_]]} + var CalculAllocationLogementLocati=[0]; + function embed_calcul_allocation_logeme(x) + {var + _cxe_= + [0, + [0, + cst_traitement_aide_finale$4, + caml_call1(Runtime_ocaml_Runtime[10],x[2])], + 0]; + return [7, + _lI_, + [0, + [0, + cst_aide_finale_formule$4, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cxe_]]} + var CalculAllocationLogementAccess=[0]; + function embed_calcul_allocation_logeme$0(x) + {var + _cxa_= + [0, + [0, + cst_traitement_aide_finale$5, + caml_call1(Runtime_ocaml_Runtime[10],x[5])], + 0], + _cxb_= + [0, + [0, + cst_aide_finale_formule$5, + caml_call1(Runtime_ocaml_Runtime[13],x[4])], + _cxa_], + _cxc_= + [0, + [0, + cst_coefficient_prise_en_charg$1, + caml_call1(Runtime_ocaml_Runtime[15],x[3])], + _cxb_], + _cxd_= + [0, + [0, + cst_mensualit_minimale$0, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cxc_]; + return [7, + _lJ_, + [0, + [0, + cst_mensualit_ligible$0, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cxd_]]} + var CalculAllocationLogementFoyer=[0]; + function embed_calcul_allocation_logeme$1(x) + {var + _cw7_= + [0, + [0, + cst_traitement_aide_finale$6, + caml_call1(Runtime_ocaml_Runtime[10],x[6])], + 0], + _cw8_= + [0, + [0, + cst_aide_finale_formule$6, + caml_call1(Runtime_ocaml_Runtime[13],x[5])], + _cw7_], + _cw9_= + [0, + [0,cst_loyer_minimal,caml_call1(Runtime_ocaml_Runtime[13],x[4])], + _cw8_], + _cw__= + [0, + [0, + cst_montant_forfaitaire_charge$0, + caml_call1(Runtime_ocaml_Runtime[13],x[3])], + _cw9_], + _cw$_= + [0, + [0,cst_quivalence_loyer,caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cw__]; + return [7, + _lK_, + [0, + [0, + cst_coefficient_prise_en_charg$2, + caml_call1(Runtime_ocaml_Runtime[15],x[1])], + _cw$_]]} + var CalculAllocationLogement=[0]; + function embed_calcul_allocation_logeme$2(x) + {var + _cw6_= + [0, + [0, + cst_traitement_aide_finale$7, + caml_call1(Runtime_ocaml_Runtime[10],x[2])], + 0]; + return [7, + _lL_, + [0, + [0, + cst_aide_finale_formule$7, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cw6_]]} + var OuvertureDroitsRetraite=[0]; + function embed_ouverture_droits_retrait(x) + {return [7, + _lM_, + [0, + [0, + cst_ge_ouverture_droit, + caml_call1(Runtime_ocaml_Runtime[17],x[1])], + 0]]} + var ImpayeDepenseLogement=[0]; + function embed_impaye_depense_logement(x) + {return [7, + _lN_, + [0, + [0, + cst_montant_impay, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + 0]]} + var CalculetteAidesAuLogement=[0]; + function embed_calculette_aides_au_loge(x) + {var + _cw3_= + [0, + [0, + cst_coefficents_enfants_garde_$0, + caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[4])], + 0], + _cw4_= + [0, + [0, + cst_traitement_aide_finale$8, + caml_call1(Runtime_ocaml_Runtime[10],x[3])], + _cw3_], + _cw5_= + [0, + [0, + cst_aide_finale_formule$8, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cw4_]; + return [7, + _lO_, + [0, + [0,cst_ligibilit$0,caml_call1(Runtime_ocaml_Runtime[12],x[1])], + _cw5_]]} + var CalculetteAidesAuLogementGarde=[0]; + function embed_calculette_aides_au_loge$0(x) + {var + _cw2_= + [0,[0,cst_aide_finale,caml_call1(Runtime_ocaml_Runtime[13],x[2])],0]; + return [7, + _lP_, + [0, + [0,cst_ligibilit$1,caml_call1(Runtime_ocaml_Runtime[12],x[1])], + _cw2_]]} + var BaseMensuelleAllocationsFamili$1=[0]; + function embed_base_mensuelle_allocatio$1(x) + {return [7, + _lQ_, + [0, + [0,cst_montant$2,caml_call1(Runtime_ocaml_Runtime[13],x[1])], + 0]]} + var VerificationAgeInferieurOuEgal$1=[0]; + function embed_verification_age_inferie$1(x) + {return [7, + _lR_, + [0, + [0, + cst_est_inf_rieur_ou_gal$0, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + 0]]} + var VerificationAgeSuperieurA$0=[0]; + function embed_verification_age_superie$1(x) + {return [7, + _lS_, + [0, + [0, + cst_est_sup_rieur$0, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + 0]]} + var Smic$0=[0]; + function embed_smic$0(x) + {return [7, + _lT_, + [0, + [0, + cst_brut_horaire$0, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + 0]]} + var NeufOuAncien=[0]; + function embed_neuf_ou_ancien(x) + {if(0 === x[0]) + var + x$0=x[1], + _cw1_=[0,cst_Neuf,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + else + var x$1=x[1],_cw1_=[0,cst_Ancien,embed_ameliore_par_occupant(x$1)]; + return [6,_lU_,_cw1_]} + var TrancheRevenu=[0]; + function embed_tranche_revenu(x) + {var + _cwZ_=[0,[0,cst_taux,caml_call1(Runtime_ocaml_Runtime[15],x[3])],0], + _cw0_=[0,[0,cst_bas,caml_call1(Runtime_ocaml_Runtime[13],x[2])],_cwZ_]; + return [7,_lV_,[0,[0,cst_haut,embed_limite_tranche(x[1])],_cw0_]]} + var TrancheRevenuDecimal=[0]; + function embed_tranche_revenu_decimal(x) + {var + _cwX_=[0,[0,cst_taux$0,caml_call1(Runtime_ocaml_Runtime[15],x[3])],0], + _cwY_= + [0,[0,cst_bas$0,caml_call1(Runtime_ocaml_Runtime[15],x[2])],_cwX_]; + return [7, + _lW_, + [0,[0,cst_haut$0,embed_limite_tranche_decimal(x[1])],_cwY_]]} + var AutrePersonneACharge=[0]; + function embed_autre_personne_a_charge(x) + {var + _cwR_= + [0, + [0, + cst_titulaire_allocation_perso, + caml_call1(Runtime_ocaml_Runtime[12],x[7])], + 0], + _cwS_= + [0, + [0, + cst_b_n_ficiaire_l161_19_l351_, + caml_call1(Runtime_ocaml_Runtime[12],x[6])], + _cwR_], + _cwT_= + [0, + [0, + cst_incapacit_80_pourcent_ou_r, + caml_call1(Runtime_ocaml_Runtime[12],x[5])], + _cwS_], + _cwU_=[0,[0,cst_parent,embed_parente(x[4])],_cwT_], + _cwV_= + [0, + [0, + cst_ascendant_descendant_colla, + caml_call1(Runtime_ocaml_Runtime[12],x[3])], + _cwU_], + _cwW_= + [0, + [0,cst_ressources$0,caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cwV_]; + return [7, + _lX_, + [0, + [0, + cst_date_naissance, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cwW_]]} + var DateNaissanceTroisiemeOuDernie=[0]; + function embed_date_naissance_troisieme(x) + {if(0 === x[0]) + var + x$0=x[1], + _cwQ_= + [0,cst_MoinsDeTroisEnfants,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + else + var + x$1=x[1], + _cwQ_=[0,cst_PlusDeTroisEnfants,embed_date_de_naissance_ou_moi(x$1)]; + return [6,_lY_,_cwQ_]} + var EligibiliteAllocationLogement=[0]; + function embed_eligibilite_allocation_l(x) + {var + _cwO_= + [0, + [0, + cst_coefficents_enfants_garde_$1, + caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[3])], + 0], + _cwP_= + [0, + [0, + cst_nombre_personnes_charge_pr$0, + caml_call1(Runtime_ocaml_Runtime[14],x[2])], + _cwO_]; + return [7, + _lZ_, + [0, + [0,cst_ligibilit$2,embed_type_eligibilite_allocat(x[1])], + _cwP_]]} + var Pret=[0]; + function embed_pret(x) + {var + _cwL_= + [0, + [0, + cst_accord_financement_repr_se, + embed_accord_financement_repre(x[4])], + 0], + _cwM_=[0,[0,cst_titulaire_pr_t,embed_titulaire_pret(x[3])],_cwL_], + _cwN_= + [0, + [0,cst_date_signature,caml_call1(Runtime_ocaml_Runtime[16],x[2])], + _cwM_]; + return [7,_l0_,[0,[0,cst_type_pr_t,embed_type_pret(x[1])],_cwN_]]} + var LogementFoyer=[0]; + function embed_logement_foyer(x) + {var + _cwC_= + [0, + [0, + cst_logement_meubl_d842_2, + caml_call1(Runtime_ocaml_Runtime[12],x[10])], + 0], + _cwD_= + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o, + caml_call1(Runtime_ocaml_Runtime[12],x[9])], + _cwC_], + _cwE_= + [0, + [0, + cst_cat_gorie_quivalence_loyer, + embed_categorie_equivalence_lo(x[8])], + _cwD_], + _cwF_= + [0,[0,cst_redevance,caml_call1(Runtime_ocaml_Runtime[13],x[7])],_cwE_], + _cwG_= + [0, + [0, + cst_construit_application_loi_, + caml_call1(Runtime_ocaml_Runtime[12],x[6])], + _cwF_], + _cwH_= + [0, + [0, + cst_date_conventionnement, + caml_call1(Runtime_ocaml_Runtime[16],x[5])], + _cwG_], + _cwI_= + [0, + [0, + cst_conventionn_selon_r_gles_d, + caml_call1(Runtime_ocaml_Runtime[12],x[4])], + _cwH_], + _cwJ_= + [0, + [0, + cst_conventionn_livre_III_titr$1, + caml_call1(Runtime_ocaml_Runtime[12],x[3])], + _cwI_], + _cwK_= + [0, + [0, + cst_remplit_conditions_r832_21, + caml_call1(Runtime_ocaml_Runtime[12],x[2])], + _cwJ_]; + return [7,_l1_,[0,[0,cst_type,embed_type_logement_foyer(x[1])],_cwK_]]} + var EnfantPrestationsFamiliales=[0]; + function embed_enfant_prestations_famil(x) + {var + _cww_= + [0, + [0, + cst_b_n_ficie_titre_personnel_$0, + caml_call1(Runtime_ocaml_Runtime[12],x[7])], + 0], + _cwx_= + [0, + [0, + cst_a_d_j_ouvert_droit_aux_all$0, + caml_call1(Runtime_ocaml_Runtime[12],x[6])], + _cww_], + _cwy_= + [0,[0,cst_prise_en_charge$0,embed_prise_en_charge_enfant(x[5])],_cwx_], + _cwz_= + [0, + [0, + cst_date_de_naissance$0, + caml_call1(Runtime_ocaml_Runtime[16],x[4])], + _cwy_], + _cwA_= + [0, + [0, + cst_r_muneration_mensuelle$0, + caml_call1(Runtime_ocaml_Runtime[13],x[3])], + _cwz_], + _cwB_= + [0, + [0,cst_obligation_scolaire$0,embed_situation_obligation_sco$0(x[2])], + _cwA_]; + return [7, + _l2_, + [0, + [0, + cst_identifiant$0, + caml_call1(Runtime_ocaml_Runtime[14],x[1])], + _cwB_]]} + var TypeBailleur=[0]; + function embed_type_bailleur(x) + {switch(x[0]) + {case 0: + var + x$0=x[1], + _cwv_=[0,cst_BailleurSocial,embed_convention_bailleur_soci(x$0)]; + break; + case 1: + var + x$1=x[1], + _cwv_= + [0,cst_BailleurPriv_AvecConventio,embed_convention_a_n_h_a(x$1)]; + break; + default: + var + x$2=x[1], + _cwv_=[0,cst_BailleurPriv,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} + return [6,_l3_,_cwv_]} + var LoueOuSousLoueADesTiers=[0]; + function embed_loue_ou_sous_loue_a_des_(x) + {if(0 === x[0]) + var + x$0=x[1], + _cwu_=[0,cst_Non$1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + else + var x$1=x[1],_cwu_=[0,cst_Oui$0,embed_personne_sous_location(x$1)]; + return [6,_l4_,_cwu_]} + var Nationalite=[0]; + function embed_nationalite(x) + {if(0 === x[0]) + var + x$0=x[1], + _cwt_=[0,cst_Fran_aise,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; + else + var x$1=x[1],_cwt_=[0,cst_trang_re,embed_conditions_etrangers(x$1)]; + return [6,_l5_,_cwt_]} + var ChangementLogementD8424=[0]; + function embed_changement_logement_d842(x) + {if(0 === x[0]) + var + x$0=x[1], + _cws_=[0,cst_Changement,embed_infos_changement_logemen(x$0)]; + else + var + x$1=x[1], + _cws_= + [0,cst_PasDeChangement,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; + return [6,_l6_,_cws_]} + var InformationsPrimeDeDemenagemen=[0]; + function embed_informations_prime_de_de(x) + {var + _cwr_= + [0, + [0, + cst_date_naissance_troisi_me_e, + embed_date_naissance_troisieme(x[2])], + 0]; + return [7, + _l7_, + [0, + [0, + cst_nombre_enfants_na_tre_apr_, + caml_call1(Runtime_ocaml_Runtime[14],x[1])], + _cwr_]]} + var Proprietaire=[0]; + function embed_proprietaire(x) + {var + _cwh_= + [0, + [0, + cst_op_rations_logement_voluti, + caml_call1(Runtime_ocaml_Runtime[12],x[11])], + 0], + _cwi_=[0,[0,cst_pr_t,embed_pret(x[10])],_cwh_], + _cwj_=[0,[0,cst_anciennet_logement,embed_neuf_ou_ancien(x[9])],_cwi_], + _cwk_= + [0, + [0, + cst_situation_r822_11_13_17, + caml_call1(Runtime_ocaml_Runtime[12],x[8])], + _cwj_], + _cwl_= + [0, + [0,cst_copropri_t,caml_call1(Runtime_ocaml_Runtime[12],x[7])], + _cwk_], + _cwm_= + [0, + [0, + cst_local_habit_premi_re_fois_, + caml_call1(Runtime_ocaml_Runtime[12],x[6])], + _cwl_], + _cwn_= + [0, + [0, + cst_type_travaux_logement_r842, + embed_type_travaux_logement_r8(x[5])], + _cwm_], + _cwo_= + [0, + [0, + cst_type_travaux_logement_d832, + embed_type_travaux_logement_d8(x[4])], + _cwn_], + _cwp_= + [0, + [0, + cst_date_entr_e_logement, + caml_call1(Runtime_ocaml_Runtime[16],x[3])], + _cwo_], + _cwq_= + [0, + [0, + cst_charges_mensuelles_pr_t, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cwp_]; + return [7, + _l8_, + [0, + [0, + cst_mensualit_principale, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cwq_]]} + var EligibilitePrestationsFamilial=[0]; + function embed_eligibilite_prestations_(x) + {var + _cwe_= + [0, + [0, + cst_r_gime_outre_mer_l751_1$0, + caml_call1(Runtime_ocaml_Runtime[12],x[4])], + 0], + _cwf_= + [0, + [0, + cst_conditions_hors_ge$0, + caml_call1(Runtime_ocaml_Runtime[10],x[3])], + _cwe_], + _cwg_= + [0, + [0,cst_droit_ouvert$0,caml_call1(Runtime_ocaml_Runtime[10],x[2])], + _cwf_]; + return [7, + _l9_, + [0, + [0, + cst_ge_l512_3_2$0, + caml_call1(Runtime_ocaml_Runtime[17],x[1])], + _cwg_]]} + var Demandeur=[0]; + function embed_demandeur(x) + {var + _cv$_= + [0, + [0, + cst_magistrat_fonctionnaire_ce, + caml_call1(Runtime_ocaml_Runtime[12],x[6])], + 0], + _cwa_= + [0, + [0, + cst_est_non_salari_agricole_l7, + caml_call1(Runtime_ocaml_Runtime[12],x[5])], + _cv$_], + _cwb_= + [0, + [0, + cst_personne_h_berg_e_centre_s, + caml_call1(Runtime_ocaml_Runtime[12],x[4])], + _cwa_], + _cwc_=[0,[0,cst_patrimoine,embed_patrimoine(x[3])],_cwb_], + _cwd_=[0,[0,cst_nationalit,embed_nationalite(x[2])],_cwc_]; + return [7, + _l__, + [0, + [0, + cst_date_naissance$0, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cwd_]]} + var EnfantACharge=[0]; + function embed_enfant_a_charge(x) + {var + _cv3_= + [0, + [0, + cst_tudes_apprentissage_stage_, + caml_call1(Runtime_ocaml_Runtime[12],x[9])], + 0], + _cv4_= + [0, + [0,cst_situation_garde_altern_e,embed_situation_garde_alternee(x[8])], + _cv3_], + _cv5_= + [0, + [0,cst_obligation_scolaire$1,embed_situation_obligation_sco$0(x[7])], + _cv4_], + _cv6_= + [0, + [0, + cst_r_muneration_mensuelle$1, + caml_call1(Runtime_ocaml_Runtime[13],x[6])], + _cv5_], + _cv7_= + [0, + [0, + cst_date_de_naissance$1, + caml_call1(Runtime_ocaml_Runtime[16],x[5])], + _cv6_], + _cv8_= + [0, + [0, + cst_a_d_j_ouvert_droit_aux_all$1, + caml_call1(Runtime_ocaml_Runtime[12],x[4])], + _cv7_], + _cv9_= + [0, + [0, + cst_b_n_ficie_titre_personnel_$1, + caml_call1(Runtime_ocaml_Runtime[12],x[3])], + _cv8_], + _cv__=[0,[0,cst_nationalit$0,embed_nationalite(x[2])],_cv9_]; + return [7, + _l$_, + [0, + [0, + cst_identifiant$1, + caml_call1(Runtime_ocaml_Runtime[14],x[1])], + _cv__]]} + var Location=[0]; + function embed_location(x) + {var + _cvW_= + [0, + [0, + cst_changement_logement_d842_4, + embed_changement_logement_d842(x[8])], + 0], + _cvX_= + [0, + [0, + cst_logement_meubl_d842_2$0, + caml_call1(Runtime_ocaml_Runtime[12],x[7])], + _cvW_], + _cvY_= + [0, + [0, + cst_g_es_ou_handicap_adultes_h, + caml_call1(Runtime_ocaml_Runtime[12],x[6])], + _cvX_], + _cvZ_= + [0, + [0,cst_colocation,caml_call1(Runtime_ocaml_Runtime[12],x[5])], + _cvY_], + _cv0_= + [0, + [0, + cst_logement_est_chambre, + caml_call1(Runtime_ocaml_Runtime[12],x[4])], + _cvZ_], + _cv1_= + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o$0, + caml_call1(Runtime_ocaml_Runtime[12],x[3])], + _cv0_], + _cv2_= + [0, + [0,cst_loyer_principal,caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cv1_]; + return [7,_ma_,[0,[0,cst_bailleur,embed_type_bailleur(x[1])],_cv2_]]} + var PersonneACharge=[0]; + function embed_personne_a_charge(x) + {if(0 === x[0]) + var x$0=x[1],_cvV_=[0,cst_Enfant_Charge,embed_enfant_a_charge(x$0)]; + else + var + x$1=x[1], + _cvV_=[0,cst_AutrePersonne_Charge,embed_autre_personne_a_charge(x$1)]; + return [6,_mb_,_cvV_]} + var CategorieCalculAPL=[0]; + function embed_categorie_calcul_a_p_l(x) + {switch(x[0]) + {case 0:var x$0=x[1],_cvU_=[0,cst_Location,embed_location(x$0)];break; + case 1: + var x$1=x[1],_cvU_=[0,cst_AccessionPropri_t,embed_proprietaire(x$1)]; + break; + default: + var x$2=x[1],_cvU_=[0,cst_LogementFoyer,embed_logement_foyer(x$2)]} + return [6,_mc_,_cvU_]} + var ModeOccupation=[0]; + function embed_mode_occupation(x) + {switch(x[0]) + {case 0:var x$0=x[1],_cvT_=[0,cst_Locataire,embed_location(x$0)];break; + case 1: + var + x$1=x[1], + _cvT_=[0,cst_R_sidentLogementFoyer,embed_logement_foyer(x$1)]; + break; + case 2: + var + x$2=x[1], + _cvT_=[0,cst_AccessionPropri_t_LocalUsa,embed_proprietaire(x$2)]; + break; + case 3: + var x$3=x[1],_cvT_=[0,cst_SousLocataire,embed_location(x$3)];break; + default: + var x$4=x[1],_cvT_=[0,cst_LocationAccession,embed_proprietaire(x$4)]} + return [6,_md_,_cvT_]} + var EligibiliteAidesPersonnelleLog=[0]; + function embed_eligibilite_aides_person(x) + {var + _cvP_= + [0, + [0,cst_condition_2_r823_4,caml_call1(Runtime_ocaml_Runtime[10],x[5])], + 0], + _cvQ_= + [0, + [0, + cst_coefficents_enfants_garde_$2, + caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[4])], + _cvP_], + _cvR_= + [0, + [0, + cst_nombre_personnes_charge_pr$1, + caml_call1(Runtime_ocaml_Runtime[14],x[3])], + _cvQ_], + _cvS_= + [0, + [0,cst_ligibilit$3,caml_call1(Runtime_ocaml_Runtime[12],x[2])], + _cvR_]; + return [7, + _me_, + [0, + [0, + cst_date_courante$0, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cvS_]]} + var Logement=[0]; + function embed_logement(x) + {var + _cvH_=[0,[0,cst_zone,embed_zone_d_habitation(x[9])],0], + _cvI_= + [0, + [0,cst_surface_m_carr_s,caml_call1(Runtime_ocaml_Runtime[14],x[8])], + _cvH_], + _cvJ_= + [0, + [0, + cst_logement_decent_l89_462, + caml_call1(Runtime_ocaml_Runtime[12],x[7])], + _cvI_], + _cvK_=[0,[0,cst_usufruit,embed_parent_ou_autre(x[6])],_cvJ_], + _cvL_= + [0, + [0, + cst_lou_ou_sous_lou_des_tiers, + embed_loue_ou_sous_loue_a_des_(x[5])], + _cvK_], + _cvM_=[0,[0,cst_propri_taire,embed_parent_ou_autre(x[4])],_cvL_], + _cvN_=[0,[0,cst_mode_occupation,embed_mode_occupation(x[3])],_cvM_], + _cvO_= + [0, + [0, + cst_est_ehpad_ou_maison_autono, + caml_call1(Runtime_ocaml_Runtime[12],x[2])], + _cvN_]; + return [7, + _mf_, + [0, + [0, + cst_r_sidence_principale, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + _cvO_]]} + var Menage=[0]; + function embed_menage(x) + {var + _cvz_=[0,[0,cst_r_sidence,embed_collectivite$0(x[9])],0], + _cvA_= + [0, + [0, + cst_personnes_g_es_handicap_es, + caml_call1(Runtime_ocaml_Runtime[12],x[8])], + _cvz_], + _cvB_= + [0, + [0, + cst_enfant_na_tre_apr_s_quatri, + caml_call1(Runtime_ocaml_Runtime[12],x[7])], + _cvA_], + _cvC_= + [0, + [0, + cst_condition_rattach_foyer_fi, + caml_call1(Runtime_ocaml_Runtime[12],x[6])], + _cvB_], + _cvD_= + [0,[0,cst_situation_familiale,embed_situation_familiale(x[5])],_cvC_], + _cvE_= + [0, + [0, + cst_nombre_autres_occupants_lo, + caml_call1(Runtime_ocaml_Runtime[14],x[4])], + _cvD_], + _cvF_= + [0, + [0, + cst_personnes_charge, + caml_call2(Runtime_ocaml_Runtime[18],embed_personne_a_charge,x[3])], + _cvE_], + _cvG_=[0,[0,cst_logement,embed_logement(x[2])],_cvF_]; + return [7, + _mg_, + [0, + [0, + cst_prestations_re_ues, + caml_call2 + (Runtime_ocaml_Runtime[18],embed_prestation_recue,x[1])], + _cvG_]]} + var EligibiliteAidesPersonnelleLog$0=[0]; + function embed_eligibilite_aides_person$0(x) + {var + _cvu_= + [0, + [0, + cst_date_entr_e_vigueur_diff_r, + caml_call1(Runtime_ocaml_Runtime[10],x[6])], + 0], + _cvv_= + [0, + [0, + cst_condition_logement_surface, + caml_call1(Runtime_ocaml_Runtime[10],x[5])], + _cvu_], + _cvw_= + [0, + [0, + cst_condition_logement_r_siden, + caml_call1(Runtime_ocaml_Runtime[10],x[4])], + _cvv_], + _cvx_= + [0, + [0,cst_date_courante_in$5,caml_call1(Runtime_ocaml_Runtime[16],x[3])], + _cvw_], + _cvy_=[0,[0,cst_demandeur_in,embed_demandeur(x[2])],_cvx_]; + return [7,_mh_,[0,[0,cst_m_nage_in,embed_menage(x[1])],_cvy_]]} + var EligibiliteAidePersonnaliseeLo$0=[0]; + function embed_eligibilite_aide_personn$0(x) + {var + _cvs_= + [0, + [0,cst_date_courante_in$6,caml_call1(Runtime_ocaml_Runtime[16],x[3])], + 0], + _cvt_=[0,[0,cst_demandeur_in$0,embed_demandeur(x[2])],_cvs_]; + return [7,_mi_,[0,[0,cst_m_nage_in$0,embed_menage(x[1])],_cvt_]]} + var EligibiliteAllocationLogementI=[0]; + function embed_eligibilite_allocation_l$0(x) + {var + _cvp_= + [0, + [0, + cst_b_n_ficie_aide_personnalis, + caml_call1(Runtime_ocaml_Runtime[12],x[4])], + 0], + _cvq_=[0,[0,cst_demandeur_in$1,embed_demandeur(x[3])],_cvp_], + _cvr_=[0,[0,cst_m_nage_in$1,embed_menage(x[2])],_cvq_]; + return [7, + _mj_, + [0, + [0, + cst_date_courante_in$7, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cvr_]]} + var EligibilitePrimeDeDemenagement$0=[0]; + function embed_eligibilite_prime_de_dem$0(x) + {var + _cvk_= + [0, + [0, + cst_d_penses_justifi_es_r_elle, + caml_call1(Runtime_ocaml_Runtime[13],x[6])], + 0], + _cvl_= + [0, + [0,cst_date_courante_in$8,caml_call1(Runtime_ocaml_Runtime[16],x[5])], + _cvk_], + _cvm_=[0,[0,cst_demandeur_in$2,embed_demandeur(x[4])],_cvl_], + _cvn_=[0,[0,cst_m_nage_in$2,embed_menage(x[3])],_cvm_], + _cvo_= + [0, + [0, + cst_date_emm_nagement_in, + caml_call1(Runtime_ocaml_Runtime[16],x[2])], + _cvn_]; + return [7, + _mk_, + [0, + [0,cst_informations_in,embed_informations_prime_de_de(x[1])], + _cvo_]]} + var RessourcesAidesPersonnelleLoge$0=[0]; + function embed_ressources_aides_personn$0(x) + {var + _cu9_= + [0, + [0, + cst_ressources_m_nage_arrondie, + caml_call1(Runtime_ocaml_Runtime[13],x[14])], + 0], + _cu__= + [0, + [0, + cst_paiement_logement_distinct, + embed_paiement_logement_distin(x[13])], + _cu9_], + _cu$_= + [0, + [0, + cst_date_demande_ou_reexamen_d, + caml_call1(Runtime_ocaml_Runtime[16],x[12])], + _cu__], + _cva_= + [0, + [0, + cst_demandeur_poursuit_des_tud, + caml_call1(Runtime_ocaml_Runtime[12],x[11])], + _cu$_], + _cvb_= + [0, + [0, + cst_condition_ge_bourse_enseig, + caml_call1(Runtime_ocaml_Runtime[12],x[10])], + _cva_], + _cvc_= + [0, + [0,cst_date_courante_in$9,caml_call1(Runtime_ocaml_Runtime[16],x[9])], + _cvb_], + _cvd_=[0,[0,cst_mode_occupation_in,embed_mode_occupation(x[8])],_cvc_], + _cve_= + [0, + [0,cst_situation_familiale_in,embed_situation_familiale(x[7])], + _cvd_], + _cvf_= + [0, + [0, + cst_personnes_charge_in, + caml_call2(Runtime_ocaml_Runtime[18],embed_personne_a_charge,x[6])], + _cve_], + _cvg_= + [0, + [0, + cst_conjoint_exerce_activit_r_, + caml_call1(Runtime_ocaml_Runtime[12],x[5])], + _cvf_], + _cvh_= + [0, + [0, + cst_demandeur_exerce_activit_r, + caml_call1(Runtime_ocaml_Runtime[12],x[4])], + _cvg_], + _cvi_= + [0, + [0, + cst_personnes_vivant_habituell, + caml_call2 + (Runtime_ocaml_Runtime[18],embed_personne_vivant_habituel,x[3])], + _cvh_], + _cvj_= + [0, + [0, + cst_ressources_conjoint_in, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cvi_]; + return [7, + _ml_, + [0, + [0, + cst_ressources_demandeur_in, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cvj_]]} + var ContributionsSocialesAidesPers$0=[0]; + function embed_contributions_sociales_a$0(x) + {return [7, + _mm_, + [0, + [0, + cst_date_courante_in$10, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + 0]]} + var CalculAidePersonnaliseeLogemen$3=[0]; + function embed_calcul_aide_personnalise$3(x) + {var + _cuW_=[0,[0,cst_r_sidence_in$2,embed_collectivite$0(x[14])],0], + _cuX_= + [0, + [0, + cst_logement_meubl_d842_2_in, + caml_call1(Runtime_ocaml_Runtime[12],x[13])], + _cuW_], + _cuY_= + [0, + [0, + cst_r_duction_loyer_solidarit_$0, + caml_call1(Runtime_ocaml_Runtime[13],x[12])], + _cuX_], + _cuZ_= + [0, + [0,cst_colocation_in,caml_call1(Runtime_ocaml_Runtime[12],x[11])], + _cuY_], + _cu0_= + [0,[0,cst_type_aide_in,embed_type_aides_personnelle_l(x[10])],_cuZ_], + _cu1_= + [0, + [0, + cst_g_es_ou_handicap_adultes_h$0, + caml_call1(Runtime_ocaml_Runtime[12],x[9])], + _cu0_], + _cu2_= + [0, + [0, + cst_logement_est_chambre_in, + caml_call1(Runtime_ocaml_Runtime[12],x[8])], + _cu1_], + _cu3_=[0,[0,cst_zone_in,embed_zone_d_habitation(x[7])],_cu2_], + _cu4_= + [0, + [0, + cst_situation_familiale_calcul, + embed_situation_familiale_calc(x[6])], + _cu3_], + _cu5_= + [0, + [0, + cst_nombre_personnes_charge_in, + caml_call1(Runtime_ocaml_Runtime[14],x[5])], + _cu4_], + _cu6_= + [0, + [0, + cst_date_courante_in$11, + caml_call1(Runtime_ocaml_Runtime[16],x[4])], + _cu5_], + _cu7_= + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o$1, + caml_call1(Runtime_ocaml_Runtime[12],x[3])], + _cu6_], + _cu8_= + [0, + [0, + cst_ressources_m_nage_arrondie$0, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cu7_]; + return [7, + _mn_, + [0, + [0, + cst_loyer_principal_base_in, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cu8_]]} + var CalculEquivalenceLoyerMinimale$0=[0]; + function embed_calcul_equivalence_loyer$0(x) + {var + _cuT_= + [0, + [0, + cst_n_nombre_parts_d832_25_in, + caml_call1(Runtime_ocaml_Runtime[15],x[4])], + 0], + _cuU_= + [0, + [0, + cst_condition_2_du_832_25_in, + caml_call1(Runtime_ocaml_Runtime[12],x[3])], + _cuT_], + _cuV_= + [0, + [0, + cst_ressources_m_nage_arrondie$1, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cuU_]; + return [7, + _mo_, + [0, + [0, + cst_date_courante_in$12, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _cuV_]]} + var CalculNombrePartLogementFoyerI=[0]; + function embed_calcul_nombre_part_logem$0(x) + {var + _cuP_= + [0, + [0, + cst_limitation_majoration_pers, + caml_call1(Runtime_ocaml_Runtime[10],x[5])], + 0], + _cuQ_=[0,[0,cst_r_sidence_in$3,embed_collectivite$0(x[4])],_cuP_], + _cuR_= + [0, + [0, + cst_situation_familiale_calcul$0, + embed_situation_familiale_calc(x[3])], + _cuQ_], + _cuS_= + [0, + [0, + cst_nombre_personnes_charge_in$0, + caml_call1(Runtime_ocaml_Runtime[14],x[2])], + _cuR_]; + return [7, + _mp_, + [0, + [0, + cst_condition_2_du_832_25_in$0, + caml_call1(Runtime_ocaml_Runtime[12],x[1])], + _cuS_]]} + var CalculAidePersonnaliseeLogemen$4=[0]; + function embed_calcul_aide_personnalise$4(x) + {var + _cuE_= + [0, + [0, + cst_n_nombre_parts_d832_25_in$0, + caml_call1(Runtime_ocaml_Runtime[10],x[12])], + 0], + _cuF_= + [0, + [0, + cst_limitation_majoration_pers$0, + caml_call1(Runtime_ocaml_Runtime[10],x[11])], + _cuE_], + _cuG_= + [0, + [0, + cst_condition_2_du_832_25_in$1, + caml_call1(Runtime_ocaml_Runtime[10],x[10])], + _cuF_], + _cuH_=[0,[0,cst_r_sidence_in$4,embed_collectivite$0(x[9])],_cuG_], + _cuI_= + [0, + [0,cst_redevance_in,caml_call1(Runtime_ocaml_Runtime[13],x[8])], + _cuH_], + _cuJ_= + [0, + [0, + cst_date_courante_in$13, + caml_call1(Runtime_ocaml_Runtime[16],x[7])], + _cuI_], + _cuK_=[0,[0,cst_zone_in$0,embed_zone_d_habitation(x[6])],_cuJ_], + _cuL_= + [0, + [0, + cst_situation_familiale_calcul$1, + embed_situation_familiale_calc(x[5])], + _cuK_], + _cuM_= + [0, + [0, + cst_nombre_personnes_charge_in$1, + caml_call1(Runtime_ocaml_Runtime[14],x[4])], + _cuL_], + _cuN_= + [0, + [0, + cst_ressources_m_nage_arrondie$2, + caml_call1(Runtime_ocaml_Runtime[13],x[3])], + _cuM_], + _cuO_= + [0, + [0, + cst_date_conventionnement_in, + caml_call1(Runtime_ocaml_Runtime[16],x[2])], + _cuN_]; + return [7, + _mq_, + [0, + [0,cst_type_logement_foyer_in,embed_type_logement_foyer(x[1])], + _cuO_]]} + var CalculNombrePartsAccessionProp$0=[0]; + function embed_calcul_nombre_parts_acce$0(x) + {var + _cuD_= + [0, + [0, + cst_situation_familiale_calcul$2, + embed_situation_familiale_calc(x[2])], + 0]; + return [7, + _mr_, + [0, + [0, + cst_nombre_personnes_charge_in$2, + caml_call1(Runtime_ocaml_Runtime[14],x[1])], + _cuD_]]} + var CalculAidePersonnaliseeLogemen$5=[0]; + function embed_calcul_aide_personnalise$5(x) + {var + _cuq_= + [0, + [0, + cst_date_courante_in$14, + caml_call1(Runtime_ocaml_Runtime[16],x[14])], + 0], + _cur_= + [0,[0,cst_anciennet_logement_in,embed_neuf_ou_ancien(x[13])],_cuq_], + _cus_=[0,[0,cst_type_pr_t_in,embed_type_pret(x[12])],_cur_], + _cut_=[0,[0,cst_zone_in$1,embed_zone_d_habitation(x[11])],_cus_], + _cuu_= + [0, + [0, + cst_situation_r822_11_13_17_in, + caml_call1(Runtime_ocaml_Runtime[12],x[10])], + _cut_], + _cuv_= + [0, + [0,cst_copropri_t_in,caml_call1(Runtime_ocaml_Runtime[12],x[9])], + _cuu_], + _cuw_= + [0, + [0, + cst_date_entr_e_logement_in, + caml_call1(Runtime_ocaml_Runtime[16],x[8])], + _cuv_], + _cux_= + [0, + [0, + cst_local_habit_premi_re_fois_$0, + caml_call1(Runtime_ocaml_Runtime[12],x[7])], + _cuw_], + _cuy_= + [0, + [0, + cst_date_signature_pr_t_in, + caml_call1(Runtime_ocaml_Runtime[16],x[6])], + _cux_], + _cuz_= + [0, + [0,cst_type_travaux_logement_in,embed_type_travaux_logement_d8(x[5])], + _cuy_], + _cuA_= + [0, + [0, + cst_situation_familiale_calcul$3, + embed_situation_familiale_calc(x[4])], + _cuz_], + _cuB_= + [0, + [0, + cst_nombre_personnes_charge_in$3, + caml_call1(Runtime_ocaml_Runtime[14],x[3])], + _cuA_], + _cuC_= + [0, + [0, + cst_ressources_m_nage_arrondie$3, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cuB_]; + return [7, + _ms_, + [0, + [0, + cst_mensualit_principale_in, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cuC_]]} + var CalculAidePersonnaliseeLogemen$6=[0]; + function embed_calcul_aide_personnalise$6(x) + {var + _cuj_=[0,[0,cst_r_sidence_in$5,embed_collectivite$0(x[8])],0], + _cuk_= + [0, + [0, + cst_date_courante_in$15, + caml_call1(Runtime_ocaml_Runtime[16],x[7])], + _cuj_], + _cul_=[0,[0,cst_zone_in$2,embed_zone_d_habitation(x[6])],_cuk_], + _cum_= + [0, + [0, + cst_nombre_personnes_charge_in$4, + caml_call1(Runtime_ocaml_Runtime[14],x[5])], + _cul_], + _cun_= + [0, + [0,cst_situation_familiale_in$0,embed_situation_familiale(x[4])], + _cum_], + _cuo_= + [0, + [0, + cst_ressources_m_nage_sans_arr, + caml_call1(Runtime_ocaml_Runtime[13],x[3])], + _cun_], + _cup_= + [0,[0,cst_type_aide_in$0,embed_type_aides_personnelle_l(x[2])],_cuo_]; + return [7, + _mt_, + [0, + [0,cst_mode_occupation_in$0,embed_mode_occupation(x[1])], + _cup_]]} + var CalculAllocationLogementLocati$0=[0]; + function embed_calcul_allocation_logeme$3(x) + {var + _ct7_= + [0, + [0, + cst_changement_logement_d842_4$0, + embed_changement_logement_d842(x[15])], + 0], + _ct8_=[0,[0,cst_r_sidence_in$6,embed_collectivite$0(x[14])],_ct7_], + _ct9_= + [0, + [0, + cst_logement_meubl_d842_2_in$0, + caml_call1(Runtime_ocaml_Runtime[12],x[13])], + _ct8_], + _ct__= + [0, + [0, + cst_r_duction_loyer_solidarit_$1, + caml_call1(Runtime_ocaml_Runtime[13],x[12])], + _ct9_], + _ct$_= + [0, + [0,cst_colocation_in$0,caml_call1(Runtime_ocaml_Runtime[12],x[11])], + _ct__], + _cua_= + [0,[0,cst_type_aide_in$1,embed_type_aides_personnelle_l(x[10])],_ct$_], + _cub_= + [0, + [0, + cst_g_es_ou_handicap_adultes_h$1, + caml_call1(Runtime_ocaml_Runtime[12],x[9])], + _cua_], + _cuc_= + [0, + [0, + cst_logement_est_chambre_in$0, + caml_call1(Runtime_ocaml_Runtime[12],x[8])], + _cub_], + _cud_=[0,[0,cst_zone_in$3,embed_zone_d_habitation(x[7])],_cuc_], + _cue_= + [0, + [0, + cst_situation_familiale_calcul$4, + embed_situation_familiale_calc(x[6])], + _cud_], + _cuf_= + [0, + [0, + cst_nombre_personnes_charge_in$5, + caml_call1(Runtime_ocaml_Runtime[14],x[5])], + _cue_], + _cug_= + [0, + [0, + cst_date_courante_in$16, + caml_call1(Runtime_ocaml_Runtime[16],x[4])], + _cuf_], + _cuh_= + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o$2, + caml_call1(Runtime_ocaml_Runtime[12],x[3])], + _cug_], + _cui_= + [0, + [0, + cst_ressources_m_nage_arrondie$4, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _cuh_]; + return [7, + _mu_, + [0, + [0, + cst_loyer_principal_in, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _cui_]]} + var CalculAllocationLogementAccess$0=[0]; + function embed_calcul_allocation_logeme$4(x) + {var + _ctT_= + [0, + [0, + cst_op_rations_logement_voluti$0, + caml_call1(Runtime_ocaml_Runtime[12],x[15])], + 0], + _ctU_= + [0, + [0,cst_copropri_t_in$0,caml_call1(Runtime_ocaml_Runtime[12],x[14])], + _ctT_], + _ctV_= + [0, + [0, + cst_charges_mensuelles_pr_t_in, + caml_call1(Runtime_ocaml_Runtime[13],x[13])], + _ctU_], + _ctW_= + [0, + [0, + cst_date_entr_e_logement_in$0, + caml_call1(Runtime_ocaml_Runtime[16],x[12])], + _ctV_], + _ctX_= + [0, + [0, + cst_local_habit_premi_re_fois_$1, + caml_call1(Runtime_ocaml_Runtime[12],x[11])], + _ctW_], + _ctY_= + [0, + [0, + cst_type_travaux_logement_in$0, + embed_type_travaux_logement_r8(x[10])], + _ctX_], + _ctZ_= + [0, + [0, + cst_date_signature_pr_t_in$0, + caml_call1(Runtime_ocaml_Runtime[16],x[9])], + _ctY_], + _ct0_= + [0, + [0, + cst_situation_r822_11_13_17_in$0, + caml_call1(Runtime_ocaml_Runtime[12],x[8])], + _ctZ_], + _ct1_= + [0, + [0, + cst_mensualit_principale_in$0, + caml_call1(Runtime_ocaml_Runtime[13],x[7])], + _ct0_], + _ct2_= + [0, + [0, + cst_date_courante_in$17, + caml_call1(Runtime_ocaml_Runtime[16],x[6])], + _ct1_], + _ct3_=[0,[0,cst_r_sidence_in$7,embed_collectivite$0(x[5])],_ct2_], + _ct4_=[0,[0,cst_zone_in$4,embed_zone_d_habitation(x[4])],_ct3_], + _ct5_= + [0, + [0, + cst_situation_familiale_calcul$5, + embed_situation_familiale_calc(x[3])], + _ct4_], + _ct6_= + [0, + [0, + cst_nombre_personnes_charge_in$6, + caml_call1(Runtime_ocaml_Runtime[14],x[2])], + _ct5_]; + return [7, + _mv_, + [0, + [0, + cst_ressources_m_nage_arrondie$5, + caml_call1(Runtime_ocaml_Runtime[13],x[1])], + _ct6_]]} + var CalculAllocationLogementFoyerI=[0]; + function embed_calcul_allocation_logeme$5(x) + {var + _ctK_= + [0, + [0, + cst_cat_gorie_quivalence_loyer$0, + embed_categorie_equivalence_lo(x[10])], + 0], + _ctL_= + [0, + [0, + cst_date_courante_in$18, + caml_call1(Runtime_ocaml_Runtime[16],x[9])], + _ctK_], + _ctM_=[0,[0,cst_zone_in$5,embed_zone_d_habitation(x[8])],_ctL_], + _ctN_= + [0, + [0, + cst_situation_familiale_calcul$6, + embed_situation_familiale_calc(x[7])], + _ctM_], + _ctO_= + [0, + [0, + cst_nombre_personnes_charge_in$7, + caml_call1(Runtime_ocaml_Runtime[14],x[6])], + _ctN_], + _ctP_= + [0, + [0, + cst_ressources_m_nage_arrondie$6, + caml_call1(Runtime_ocaml_Runtime[13],x[5])], + _ctO_], + _ctQ_= + [0, + [0,cst_redevance_in$0,caml_call1(Runtime_ocaml_Runtime[13],x[4])], + _ctP_], + _ctR_=[0,[0,cst_r_sidence_in$8,embed_collectivite$0(x[3])],_ctQ_], + _ctS_= + [0, + [0, + cst_date_conventionnement_in$0, + caml_call1(Runtime_ocaml_Runtime[16],x[2])], + _ctR_]; + return [7, + _mw_, + [0, + [0, + cst_type_logement_foyer_in$0, + embed_type_logement_foyer(x[1])], + _ctS_]]} + var CalculAllocationLogementIn=[0]; + function embed_calcul_allocation_logeme$6(x) + {var + _ctD_=[0,[0,cst_r_sidence_in$9,embed_collectivite$0(x[8])],0], + _ctE_= + [0,[0,cst_type_aide_in$2,embed_type_aides_personnelle_l(x[7])],_ctD_], + _ctF_= + [0, + [0, + cst_date_courante_in$19, + caml_call1(Runtime_ocaml_Runtime[16],x[6])], + _ctE_], + _ctG_=[0,[0,cst_zone_in$6,embed_zone_d_habitation(x[5])],_ctF_], + _ctH_= + [0, + [0, + cst_nombre_personnes_charge_in$8, + caml_call1(Runtime_ocaml_Runtime[14],x[4])], + _ctG_], + _ctI_= + [0, + [0,cst_situation_familiale_in$1,embed_situation_familiale(x[3])], + _ctH_], + _ctJ_= + [0, + [0, + cst_ressources_m_nage_sans_arr$0, + caml_call1(Runtime_ocaml_Runtime[13],x[2])], + _ctI_]; + return [7, + _mx_, + [0, + [0,cst_mode_occupation_in$1,embed_mode_occupation(x[1])], + _ctJ_]]} + var OuvertureDroitsRetraiteIn=[0]; + function embed_ouverture_droits_retrait$0(x) + {return [7, + _my_, + [0, + [0, + cst_date_naissance_assur_in, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + 0]]} + var ImpayeDepenseLogementIn=[0]; + function embed_impaye_depense_logement_(x) + {var + _cty_= + [0, + [0,cst_montant_dette_in,caml_call1(Runtime_ocaml_Runtime[13],x[6])], + 0], + _ctz_= + [0,[0,cst_d_pense_logement_in,embed_depense_logement(x[5])],_cty_], + _ctA_= + [0, + [0,cst_montant_charges_in,caml_call1(Runtime_ocaml_Runtime[13],x[4])], + _ctz_], + _ctB_= + [0, + [0,cst_montant_apl_in,caml_call1(Runtime_ocaml_Runtime[13],x[3])], + _ctA_], + _ctC_=[0,[0,cst_aide_vers_e_in,embed_versement_a(x[2])],_ctB_]; + return [7, + _mz_, + [0, + [0,cst_mode_occupation_in$2,embed_mode_occupation(x[1])], + _ctC_]]} + var CalculetteAidesAuLogementIn=[0]; + function embed_calculette_aides_au_loge$1(x) + {var + _ctv_= + [0, + [0, + cst_ressources_m_nage_prises_e, + caml_call1(Runtime_ocaml_Runtime[13],x[4])], + 0], + _ctw_= + [0, + [0, + cst_date_courante_in$20, + caml_call1(Runtime_ocaml_Runtime[16],x[3])], + _ctv_], + _ctx_=[0,[0,cst_demandeur_in$3,embed_demandeur(x[2])],_ctw_]; + return [7,_mA_,[0,[0,cst_m_nage_in$3,embed_menage(x[1])],_ctx_]]} + var CalculetteAidesAuLogementGarde$0=[0]; + function embed_calculette_aides_au_loge$2(x) + {var + _cts_= + [0, + [0, + cst_ressources_m_nage_prises_e$0, + caml_call1(Runtime_ocaml_Runtime[13],x[4])], + 0], + _ctt_= + [0, + [0, + cst_date_courante_in$21, + caml_call1(Runtime_ocaml_Runtime[16],x[3])], + _cts_], + _ctu_=[0,[0,cst_demandeur_in$4,embed_demandeur(x[2])],_ctt_]; + return [7,_mB_,[0,[0,cst_m_nage_in$4,embed_menage(x[1])],_ctu_]]} + var BaseMensuelleAllocationsFamili$2=[0]; + function embed_base_mensuelle_allocatio$2(x) + {return [7, + _mC_, + [0, + [0, + cst_date_courante_in$22, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + 0]]} + var VerificationAgeInferieurOuEgal$2=[0]; + function embed_verification_age_inferie$2(x) + {var + _ctq_= + [0,[0,cst_ann_es_in$1,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], + _ctr_= + [0, + [0, + cst_date_courante_in$23, + caml_call1(Runtime_ocaml_Runtime[16],x[2])], + _ctq_]; + return [7, + _mD_, + [0, + [0, + cst_date_naissance_in$1, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _ctr_]]} + var VerificationAgeSuperieurAIn$0=[0]; + function embed_verification_age_superie$2(x) + {var + _cto_= + [0,[0,cst_ann_es_in$2,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], + _ctp_= + [0, + [0, + cst_date_courante_in$24, + caml_call1(Runtime_ocaml_Runtime[16],x[2])], + _cto_]; + return [7, + _mE_, + [0, + [0, + cst_date_naissance_in$2, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _ctp_]]} + var SmicIn$0=[0]; + function embed_smic_in$0(x) + {var _ctn_=[0,[0,cst_r_sidence_in$10,embed_collectivite$0(x[2])],0]; + return [7, + _mF_, + [0, + [0, + cst_date_courante_in$25, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _ctn_]]} + var EligibilitePrestationsFamilial$0=[0]; + function embed_eligibilite_prestations_$0(x) + {var + _ctk_= + [0, + [0,cst_ge_l512_3_2_in,caml_call1(Runtime_ocaml_Runtime[10],x[4])], + 0], + _ctl_=[0,[0,cst_r_sidence_in$11,embed_collectivite$0(x[3])],_ctk_], + _ctm_= + [0, + [0, + cst_prestation_courante_in$0, + embed_element_prestations_fami$0(x[2])], + _ctl_]; + return [7, + _mG_, + [0, + [0, + cst_date_courante_in$26, + caml_call1(Runtime_ocaml_Runtime[16],x[1])], + _ctm_]]} + function contributions_sociales_aides_p(contributions_sociales_aides_p) + {var date_courante=contributions_sociales_aides_p[1]; + try + {var + _csZ_=function(param){return 0}, + _cs0_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_mI_,1)}, + _cs1_= + [0, + function(param) + {function _cti_(param){return 1} + function _ctj_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_mJ_,1)} + return caml_call4(Runtime_ocaml_Runtime[63],_mK_,[0],_ctj_,_cti_)}], + _cs2_=caml_call4(Runtime_ocaml_Runtime[63],_mL_,_cs1_,_cs0_,_csZ_)} + catch(_cth_) + {_cth_ = caml_wrap_exception(_cth_); + if(_cth_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_mH_]; + throw _cth_} var - _cdx_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[104], aide_finale, taux_crds); - }, - _cdy_ = - function(param){ - var - _cdB_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 9, 1), - _cdC_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _cdB_); - return caml_call2(Runtime_ocaml_Runtime[29], _be_, _cdC_); - }, - _cdz_ = caml_call4(Runtime_ocaml_Runtime[63], _bf_, [0], _cdy_, _cdx_); - return _cdz_; - } - catch(_cdA_){ - var _cdw_ = caml_wrap_exception(_cdA_); - if(_cdw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bd_], 1); - throw caml_maybe_attach_backtrace(_cdw_, 0); - } - } - var - montant = - caml_call3 - (Runtime_ocaml_Runtime[28], _bg_, Runtime_ocaml_Runtime[10], _cdr_); - if(! exonere_csg) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bj_], 1); - try{ - var - _cdt_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _cdu_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _cdt_); - } - catch(_cdv_){ - var _cds_ = caml_wrap_exception(_cdv_); - if(_cds_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bh_], 1); - throw caml_maybe_attach_backtrace(_cds_, 0); - } - if(_cdu_) return [0, montant]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bi_], 1); - } - function calcul_equivalence_loyer_minim(calcul_equivalence_loyer_minim){ - var - date_courante = calcul_equivalence_loyer_minim[1], - ressources_menage_arrondies = calcul_equivalence_loyer_minim[2], - condition_2_du_832_25 = calcul_equivalence_loyer_minim[3], - n_nombre_parts_d832_25 = calcul_equivalence_loyer_minim[4]; - try{ - var - _cbK_ = - function(param){ - return condition_2_du_832_25 - ? caml_call1(Runtime_ocaml_Runtime[31], cst_7632) - : caml_call1(Runtime_ocaml_Runtime[31], cst_4557); - }, - _cbL_ = - function(param){ - var - _cdg_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _cdh_ = caml_call2(Runtime_ocaml_Runtime[125], date_courante, _cdg_); - return caml_call2(Runtime_ocaml_Runtime[29], _bl_, _cdh_); - }, - _cbM_ = caml_call4(Runtime_ocaml_Runtime[63], _bm_, [0], _cbL_, _cbK_); - } - catch(_cdf_){ - var _cbJ_ = caml_wrap_exception(_cdf_); - if(_cbJ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bk_], 1); - throw caml_maybe_attach_backtrace(_cbJ_, 0); - } - var - montant_forfaitaire_d832_26 = - caml_call3 - (Runtime_ocaml_Runtime[28], _bn_, Runtime_ocaml_Runtime[13], _cbM_); - try{ - var - _cbO_ = - function(param){ - var - _cc1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_48), - _cc2_ = - [0, - _bp_, - caml_call1(Runtime_ocaml_Runtime[31], cst_633129), - _cc1_], - _cc3_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_32), - _cc4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_535744), - _cc5_ = - [0, - [0, caml_call1(Runtime_ocaml_Runtime[31], cst_633129$0)], - _cc4_, - _cc3_], - _cc6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_264), - _cc7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_389618), - _cc8_ = - [0, - [0, caml_call1(Runtime_ocaml_Runtime[31], cst_535744$0)], - _cc7_, - _cc6_], - _cc9_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_216), - _cc__ = caml_call1(Runtime_ocaml_Runtime[31], cst_267871), - _cc$_ = - [0, - [0, caml_call1(Runtime_ocaml_Runtime[31], cst_389618$0)], - _cc__, - _cc9_], - _cda_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_104), - _cdb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194810), - _cdc_ = - [0, - [0, caml_call1(Runtime_ocaml_Runtime[31], cst_267871$0)], - _cdb_, - _cda_], - _cdd_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_04), - _cde_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0); - return [0, + exonere_csg= + caml_call3 + (Runtime_ocaml_Runtime[28],_mM_,Runtime_ocaml_Runtime[12],_cs2_); + try + {var + _cs3_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_005)}, + _cs4_= + function(param) + {var + _ctf_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _ctg_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ctf_); + return caml_call2(Runtime_ocaml_Runtime[29],_mO_,_ctg_)}, + _cs5_=caml_call4(Runtime_ocaml_Runtime[63],_mP_,[0],_cs4_,_cs3_)} + catch(_cte_) + {_cte_ = caml_wrap_exception(_cte_); + if(_cte_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_mN_]; + throw _cte_} + var + taux_crds= + caml_call3 + (Runtime_ocaml_Runtime[28],_mQ_,Runtime_ocaml_Runtime[15],_cs5_); + function _cs6_(aide_finale) + {try + {var + _cs__= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[104],aide_finale,taux_crds)}, + _cs$_= + function(param) + {var + _ctc_=caml_call3(Runtime_ocaml_Runtime[57],2018,9,1), + _ctd_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ctc_); + return caml_call2(Runtime_ocaml_Runtime[29],_mS_,_ctd_)}, + _cta_=caml_call4(Runtime_ocaml_Runtime[63],_mT_,[0],_cs$_,_cs__); + return _cta_} + catch(_ctb_) + {_ctb_ = caml_wrap_exception(_ctb_); + if(_ctb_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_mR_]; + throw _ctb_}} + var + montant= + caml_call3 + (Runtime_ocaml_Runtime[28],_mU_,Runtime_ocaml_Runtime[10],_cs6_); + if(! exonere_csg)throw [0,Runtime_ocaml_Runtime[3],_mX_]; + try + {var + _cs7_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cs8_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cs7_)} + catch(_cs9_) + {_cs9_ = caml_wrap_exception(_cs9_); + if(_cs9_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_mV_]; + throw _cs9_} + if(_cs8_)return [0,montant]; + throw [0,Runtime_ocaml_Runtime[3],_mW_]} + function calcul_equivalence_loyer_minim(calcul_equivalence_loyer_minim) + {var + date_courante=calcul_equivalence_loyer_minim[1], + ressources_menage_arrondies=calcul_equivalence_loyer_minim[2], + condition_2_du_832_25=calcul_equivalence_loyer_minim[3], + n_nombre_parts_d832_25=calcul_equivalence_loyer_minim[4]; + try + {var + _crp_= + function(param) + {return condition_2_du_832_25 + ?caml_call1(Runtime_ocaml_Runtime[31],cst_7632) + :caml_call1(Runtime_ocaml_Runtime[31],cst_4557)}, + _crq_= + function(param) + {var + _csX_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _csY_=caml_call2(Runtime_ocaml_Runtime[125],date_courante,_csX_); + return caml_call2(Runtime_ocaml_Runtime[29],_mZ_,_csY_)}, + _crr_=caml_call4(Runtime_ocaml_Runtime[63],_m0_,[0],_crq_,_crp_)} + catch(_csW_) + {_csW_ = caml_wrap_exception(_csW_); + if(_csW_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_mY_]; + throw _csW_} + var + montant_forfaitaire_d832_26= + caml_call3 + (Runtime_ocaml_Runtime[28],_m1_,Runtime_ocaml_Runtime[13],_crr_); + try + {var + _crs_= + function(param) + {var + _csG_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_48), + _csH_= + [0,_m3_,caml_call1(Runtime_ocaml_Runtime[31],cst_633129),_csG_], + _csI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_32$1), + _csJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_535744), + _csK_= + [0, + [0,caml_call1(Runtime_ocaml_Runtime[31],cst_633129$0)], + _csJ_, + _csI_], + _csL_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_264), + _csM_=caml_call1(Runtime_ocaml_Runtime[31],cst_389618), + _csN_= + [0, + [0,caml_call1(Runtime_ocaml_Runtime[31],cst_535744$0)], + _csM_, + _csL_], + _csO_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_216), + _csP_=caml_call1(Runtime_ocaml_Runtime[31],cst_267871), + _csQ_= + [0, + [0,caml_call1(Runtime_ocaml_Runtime[31],cst_389618$0)], + _csP_, + _csO_], + _csR_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_104), + _csS_=caml_call1(Runtime_ocaml_Runtime[31],cst_194810), + _csT_= + [0, + [0,caml_call1(Runtime_ocaml_Runtime[31],cst_267871$0)], + _csS_, + _csR_], + _csU_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_04$0), + _csV_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$67); + return [0, + [0, + [0,caml_call1(Runtime_ocaml_Runtime[31],cst_194810$0)], + _csV_, + _csU_], + _csT_, + _csQ_, + _csN_, + _csK_, + _csH_]}, + _crt_= + function(param) + {var + _csE_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _csF_=caml_call2(Runtime_ocaml_Runtime[125],date_courante,_csE_); + return caml_call2(Runtime_ocaml_Runtime[29],_m4_,_csF_)}, + _cru_= + [0, + function(param) + {function _csm_(param) + {var + _csr_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_328), + _css_= [0, - [0, caml_call1(Runtime_ocaml_Runtime[31], cst_194810$0)], - _cde_, - _cdd_], - _cdc_, - _cc$_, - _cc8_, - _cc5_, - _cc2_]; - }, - _cbP_ = - function(param){ - var - _ccZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _cc0_ = caml_call2(Runtime_ocaml_Runtime[125], date_courante, _ccZ_); - return caml_call2(Runtime_ocaml_Runtime[29], _bq_, _cc0_); - }, - _cbQ_ = - [0, - function(param){ - function _ccH_(param){ - var - _ccM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_328), - _ccN_ = - [0, - _br_, - caml_call1(Runtime_ocaml_Runtime[31], cst_409505), - _ccM_], - _ccO_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_232), - _ccP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_262985), - _ccQ_ = - [0, - [0, caml_call1(Runtime_ocaml_Runtime[31], cst_409505$0)], - _ccP_, - _ccO_], - _ccR_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_208), - _ccS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204761), - _ccT_ = - [0, - [0, caml_call1(Runtime_ocaml_Runtime[31], cst_262985$0)], - _ccS_, - _ccR_], - _ccU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_024), - _ccV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_142303), - _ccW_ = - [0, - [0, caml_call1(Runtime_ocaml_Runtime[31], cst_204761$0)], - _ccV_, - _ccU_], - _ccX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$0), - _ccY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$1); - return [0, - [0, - [0, caml_call1(Runtime_ocaml_Runtime[31], cst_142303$0)], - _ccY_, - _ccX_], - _ccW_, - _ccT_, - _ccQ_, - _ccN_]; - } - function _ccI_(param){ - var - _ccJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _ccK_ = - caml_call2(Runtime_ocaml_Runtime[125], date_courante, _ccJ_), - _ccL_ = - caml_call2 - (Runtime_ocaml_Runtime[83], _ccK_, condition_2_du_832_25); - return caml_call2(Runtime_ocaml_Runtime[29], _bs_, _ccL_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _bt_, [0], _ccI_, _ccH_); - }], - _cbR_ = caml_call4(Runtime_ocaml_Runtime[63], _bu_, _cbQ_, _cbP_, _cbO_); - } - catch(_ccG_){ - var _cbN_ = caml_wrap_exception(_ccG_); - if(_cbN_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bo_], 1); - throw caml_maybe_attach_backtrace(_cbN_, 0); - } - var - _cbS_ = caml_call1(Runtime_ocaml_Runtime[18], embed_tranche_revenu), - tranches_revenus_d832_26 = - caml_call3(Runtime_ocaml_Runtime[28], _bv_, _cbS_, _cbR_); - try{ - var - _cbU_ = - function(param){ - function _ccA_(tranche){ - var - _ccB_ = tranche[3], - _ccC_ = caml_call1(Runtime_ocaml_Runtime[70], tranche[2]), - _ccD_ = - caml_call2 - (Runtime_ocaml_Runtime[103], _ccC_, n_nombre_parts_d832_25), - match = tranche[1]; - if(0 === match[0]) - var - tranche_haut = match[1], - _ccE_ = caml_call1(Runtime_ocaml_Runtime[70], tranche_haut), - _ccF_ = - [0, - caml_call2 - (Runtime_ocaml_Runtime[103], _ccE_, n_nombre_parts_d832_25)]; - else - var _ccF_ = _bx_; - return [0, _ccF_, _ccD_, _ccB_]; - } - return caml_call2 - (Runtime_ocaml_Runtime[87], _ccA_, tranches_revenus_d832_26); - }, - _cbV_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _by_, 1); - }, - _cbW_ = caml_call4(Runtime_ocaml_Runtime[63], _bz_, [0], _cbV_, _cbU_); - } - catch(_ccz_){ - var _cbT_ = caml_wrap_exception(_ccz_); - if(_cbT_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bw_], 1); - throw caml_maybe_attach_backtrace(_cbT_, 0); - } - var - _cbX_ = - caml_call1(Runtime_ocaml_Runtime[18], embed_tranche_revenu_decimal), - tranches_revenus_d832_26_multi = - caml_call3(Runtime_ocaml_Runtime[28], _bA_, _cbX_, _cbW_); - try{ - var - _cbZ_ = - function(param){ - var - ressources_menage_arrondies$0 = - caml_call1(Runtime_ocaml_Runtime[70], ressources_menage_arrondies), - _ccj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12), - _cck_ = - caml_call1(Runtime_ocaml_Runtime[70], montant_forfaitaire_d832_26), - _ccl_ = - caml_call2 - (Runtime_ocaml_Runtime[103], _cck_, n_nombre_parts_d832_25); - function _ccm_(tranche){ - if - (caml_call2 - (Runtime_ocaml_Runtime[117], - ressources_menage_arrondies$0, - tranche[2])) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$2); - var match = tranche[1]; - if(0 !== match[0]){ - var - _ccx_ = tranche[3], - _ccy_ = - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103], _ccy_, _ccx_); - } - var tranche_haut = match[1]; - if - (caml_call2 - (Runtime_ocaml_Runtime[127], - ressources_menage_arrondies$0, - tranche_haut)){ - var - _cct_ = tranche[3], - _ccu_ = - caml_call2(Runtime_ocaml_Runtime[97], tranche_haut, tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103], _ccu_, _cct_); - } - var - _ccv_ = tranche[3], - _ccw_ = - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103], _ccw_, _ccv_); - } - var - _ccn_ = - caml_call2 - (Runtime_ocaml_Runtime[87], - _ccm_, - tranches_revenus_d832_26_multi), - _cco_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$3); - function _ccp_(sum1, sum2){ - return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); - } - var - _ccq_ = caml_call3(Runtime_ocaml_Runtime[88], _ccp_, _cco_, _ccn_), - _ccr_ = caml_call2(Runtime_ocaml_Runtime[92], _ccq_, _ccl_), - _ccs_ = caml_call2(Runtime_ocaml_Runtime[107], _ccr_, _ccj_); - return caml_call1(Runtime_ocaml_Runtime[71], _ccs_); - }, - _cb0_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _bC_, 1); - }, - _cb1_ = - [0, - function(param){ - function _cb4_(param){ - var - ressources_menage_arrondies$0 = + _m5_, + caml_call1(Runtime_ocaml_Runtime[31],cst_409505), + _csr_], + _cst_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_232$0), + _csu_=caml_call1(Runtime_ocaml_Runtime[31],cst_262985), + _csv_= + [0, + [0,caml_call1(Runtime_ocaml_Runtime[31],cst_409505$0)], + _csu_, + _cst_], + _csw_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_208), + _csx_=caml_call1(Runtime_ocaml_Runtime[31],cst_204761), + _csy_= + [0, + [0,caml_call1(Runtime_ocaml_Runtime[31],cst_262985$0)], + _csx_, + _csw_], + _csz_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_024), + _csA_=caml_call1(Runtime_ocaml_Runtime[31],cst_142303), + _csB_= + [0, + [0,caml_call1(Runtime_ocaml_Runtime[31],cst_204761$0)], + _csA_, + _csz_], + _csC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$68), + _csD_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$69); + return [0, + [0, + [0,caml_call1(Runtime_ocaml_Runtime[31],cst_142303$0)], + _csD_, + _csC_], + _csB_, + _csy_, + _csv_, + _css_]} + function _csn_(param) + {var + _cso_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _csp_= + caml_call2(Runtime_ocaml_Runtime[125],date_courante,_cso_), + _csq_= + caml_call2 + (Runtime_ocaml_Runtime[83],_csp_,condition_2_du_832_25); + return caml_call2(Runtime_ocaml_Runtime[29],_m6_,_csq_)} + return caml_call4(Runtime_ocaml_Runtime[63],_m7_,[0],_csn_,_csm_)}], + _crv_=caml_call4(Runtime_ocaml_Runtime[63],_m8_,_cru_,_crt_,_crs_)} + catch(_csl_) + {_csl_ = caml_wrap_exception(_csl_); + if(_csl_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_m2_]; + throw _csl_} + var + _crw_=caml_call1(Runtime_ocaml_Runtime[18],embed_tranche_revenu), + tranches_revenus_d832_26= + caml_call3(Runtime_ocaml_Runtime[28],_m9_,_crw_,_crv_); + try + {var + _crx_= + function(param) + {function _cse_(tranche) + {var + _csf_=tranche[3], + _csg_=caml_call1(Runtime_ocaml_Runtime[70],tranche[2]), + _csh_= + caml_call2 + (Runtime_ocaml_Runtime[103],_csg_,n_nombre_parts_d832_25), + _csi_=tranche[1]; + if(0 === _csi_[0]) + var + tranche_haut=_csi_[1], + _csj_=caml_call1(Runtime_ocaml_Runtime[70],tranche_haut), + _csk_= + [0, + caml_call2 + (Runtime_ocaml_Runtime[103],_csj_,n_nombre_parts_d832_25)]; + else + var _csk_=_m$_; + return [0,_csk_,_csh_,_csf_]} + return caml_call2 + (Runtime_ocaml_Runtime[87],_cse_,tranches_revenus_d832_26)}, + _cry_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_na_,1)}, + _crz_=caml_call4(Runtime_ocaml_Runtime[63],_nb_,[0],_cry_,_crx_)} + catch(_csd_) + {_csd_ = caml_wrap_exception(_csd_); + if(_csd_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_m__]; + throw _csd_} + var + _crA_= + caml_call1(Runtime_ocaml_Runtime[18],embed_tranche_revenu_decimal), + tranches_revenus_d832_26_multi= + caml_call3(Runtime_ocaml_Runtime[28],_nc_,_crA_,_crz_); + try + {var + _crB_= + function(param) + {var + ressources_menage_arrondies$0= caml_call1 - (Runtime_ocaml_Runtime[70], ressources_menage_arrondies), - _cb6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$0), - _cb7_ = + (Runtime_ocaml_Runtime[70],ressources_menage_arrondies), + _crY_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$11), + _crZ_= caml_call1 - (Runtime_ocaml_Runtime[70], montant_forfaitaire_d832_26); - function _cb8_(tranche){ - if - (caml_call2 - (Runtime_ocaml_Runtime[117], - ressources_menage_arrondies$0, - tranche[2])) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$4); - var match = tranche[1]; - if(0 !== match[0]){ - var - _cch_ = tranche[3], - _cci_ = + (Runtime_ocaml_Runtime[70],montant_forfaitaire_d832_26), + _cr0_= + caml_call2 + (Runtime_ocaml_Runtime[103],_crZ_,n_nombre_parts_d832_25); + function _cr1_(tranche) + {if + (caml_call2 + (Runtime_ocaml_Runtime[117], + ressources_menage_arrondies$0, + tranche[2])) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$70); + var _cr8_=tranche[1]; + if(0 !== _cr8_[0]) + {var + _csb_=tranche[3], + _csc_= + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103],_csc_,_csb_)} + var tranche_haut=_cr8_[1]; + if + (caml_call2 + (Runtime_ocaml_Runtime[127], + ressources_menage_arrondies$0, + tranche_haut)) + {var + _cr9_=tranche[3], + _cr__= + caml_call2 + (Runtime_ocaml_Runtime[97],tranche_haut,tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103],_cr__,_cr9_)} + var + _cr$_=tranche[3], + _csa_= caml_call2 (Runtime_ocaml_Runtime[97], ressources_menage_arrondies$0, tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103], _cci_, _cch_); - } - var tranche_haut = match[1]; - if - (caml_call2 - (Runtime_ocaml_Runtime[127], - ressources_menage_arrondies$0, - tranche_haut)){ - var - _ccd_ = tranche[3], - _cce_ = - caml_call2 - (Runtime_ocaml_Runtime[97], tranche_haut, tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103], _cce_, _ccd_); - } + return caml_call2(Runtime_ocaml_Runtime[103],_csa_,_cr$_)} var - _ccf_ = tranche[3], - _ccg_ = - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103], _ccg_, _ccf_); - } - var - _cb9_ = + _cr2_= caml_call2 (Runtime_ocaml_Runtime[87], - _cb8_, + _cr1_, tranches_revenus_d832_26_multi), - _cb__ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$5); - function _cb$_(sum1, sum2){ - return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); - } - var - _cca_ = caml_call3(Runtime_ocaml_Runtime[88], _cb$_, _cb__, _cb9_), - _ccb_ = caml_call2(Runtime_ocaml_Runtime[92], _cca_, _cb7_), - _ccc_ = caml_call2(Runtime_ocaml_Runtime[107], _ccb_, _cb6_); - return caml_call1(Runtime_ocaml_Runtime[71], _ccc_); - } - function _cb5_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _bD_, condition_2_du_832_25); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _bE_, [0], _cb5_, _cb4_); - }], - _cb2_ = caml_call4(Runtime_ocaml_Runtime[63], _bF_, _cb1_, _cb0_, _cbZ_); - } - catch(_cb3_){ - var _cbY_ = caml_wrap_exception(_cb3_); - if(_cbY_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bB_], 1); - throw caml_maybe_attach_backtrace(_cbY_, 0); - } - var - montant = - caml_call3 - (Runtime_ocaml_Runtime[28], _bG_, Runtime_ocaml_Runtime[13], _cb2_); - return [0, montant]; - } - function calcul_nombre_part_logement_fo(calcul_nombre_part_logement_fo){ - var - condition_2_du_832_25 = calcul_nombre_part_logement_fo[1], - nombre_personnes_a_charge = calcul_nombre_part_logement_fo[2], - situation_familiale_calcul_apl = calcul_nombre_part_logement_fo[3], - residence = calcul_nombre_part_logement_fo[4], - limitation_majoration_personne = calcul_nombre_part_logement_fo[5]; - try{ - var - _caU_ = - function(param){ - function _cbH_(param){return 0;} - function _cbI_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _bI_, 1); - } - return caml_call4(Runtime_ocaml_Runtime[63], _bJ_, [0], _cbI_, _cbH_); - }, - _caV_ = function(param){return 1;}, - _caW_ = - [0, - function(param){ - return caml_call1(limitation_majoration_personne, 0); - }], - _caX_ = caml_call4(Runtime_ocaml_Runtime[63], _bK_, _caW_, _caV_, _caU_); - } - catch(_cbG_){ - var _caT_ = caml_wrap_exception(_cbG_); - if(_caT_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bH_], 1); - throw caml_maybe_attach_backtrace(_caT_, 0); - } - caml_call3 - (Runtime_ocaml_Runtime[28], _bL_, Runtime_ocaml_Runtime[12], _caX_); - try{ - var - _caZ_ = - function(param){ - var _cbC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$6); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbC_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_1_4) - : caml_call1(Runtime_ocaml_Runtime[39], cst_1_8); - var _cbD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbD_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_2_5); - var _cbE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbE_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_3); - var _cbF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$0); - return caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _cbF_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_3_7) - : caml_call1(Runtime_ocaml_Runtime[39], cst_4_3); - }, - _ca0_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _bN_, 1); - }, - _ca1_ = - [0, - function(param){ - function _cbw_(param){ - var _cby_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cby_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_1_2) - : caml_call1(Runtime_ocaml_Runtime[39], cst_1_5); - var _cbz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$0); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbz_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$0); - var _cbA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$0); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbA_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_3$1); - var _cbB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$2); - return caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _cbB_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_3_7$0) - : caml_call1(Runtime_ocaml_Runtime[39], cst_4_3$0); - } - function _cbx_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _bO_, condition_2_du_832_25); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _bP_, [0], _cbx_, _cbw_); - }], - _ca2_ = caml_call4(Runtime_ocaml_Runtime[63], _bQ_, _ca1_, _ca0_, _caZ_); - } - catch(_cbv_){ - var _caY_ = caml_wrap_exception(_cbv_); - if(_caY_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bM_], 1); - throw caml_maybe_attach_backtrace(_caY_, 0); - } - var - n_nombre_parts_d832_25_base = - caml_call3 - (Runtime_ocaml_Runtime[28], _bR_, Runtime_ocaml_Runtime[15], _ca2_); - try{ - var - _ca4_ = - function(param){ - var _cbq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[121], nombre_personnes_a_charge, _cbq_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$8); - var - _cbr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$0), - _cbs_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _cbr_), - _cbt_ = caml_call1(Runtime_ocaml_Runtime[69], _cbs_), - _cbu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5); - return caml_call2(Runtime_ocaml_Runtime[103], _cbu_, _cbt_); - }, - _ca5_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _bT_, 1); - }, - _ca6_ = - [0, - function(param){ - function _cbc_(param){ - var _cbl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$1); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[121], nombre_personnes_a_charge, _cbl_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$9); - var - _cbm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$2), - _cbn_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _cbm_), - _cbo_ = caml_call1(Runtime_ocaml_Runtime[69], _cbn_), - _cbp_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5$0); - return caml_call2(Runtime_ocaml_Runtime[103], _cbp_, _cbo_); - } - function _cbd_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _bU_, condition_2_du_832_25); - } - var - _cbe_ = - [0, - function(param){ - function _cbf_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_1$1); - } - function _cbg_(param){ - switch(residence[0]){ - case 0: - var _cbh_ = 1; break; - case 1: - var _cbh_ = 1; break; - case 2: - var _cbh_ = 1; break; - case 3: - var _cbh_ = 1; break; - case 4: - var _cbh_ = 0; break; - case 5: - var _cbh_ = 0; break; - case 6: - var _cbh_ = 0; break; - case 7: - var _cbh_ = 0; break; - default: var _cbh_ = 1; - } - var - _cbi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6), - _cbj_ = - caml_call2 - (Runtime_ocaml_Runtime[121], - nombre_personnes_a_charge, - _cbi_), - _cbk_ = caml_call2(Runtime_ocaml_Runtime[83], _cbj_, _cbh_); - return caml_call2(Runtime_ocaml_Runtime[29], _bV_, _cbk_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _bW_, [0], _cbg_, _cbf_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _bX_, _cbe_, _cbd_, _cbc_); - }], - _ca7_ = caml_call4(Runtime_ocaml_Runtime[63], _bY_, _ca6_, _ca5_, _ca4_); - } - catch(_cbb_){ - var _ca3_ = caml_wrap_exception(_cbb_); - if(_ca3_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _bS_], 1); - throw caml_maybe_attach_backtrace(_ca3_, 0); - } - var - n_nombre_parts_d832_25_majorat = - caml_call3 - (Runtime_ocaml_Runtime[28], _bZ_, Runtime_ocaml_Runtime[15], _ca7_); - try{ - var - _ca9_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[92], - n_nombre_parts_d832_25_base, - n_nombre_parts_d832_25_majorat); - }, - _ca__ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _b1_, 1); - }, - _ca$_ = caml_call4(Runtime_ocaml_Runtime[63], _b2_, [0], _ca__, _ca9_); - } - catch(_cba_){ - var _ca8_ = caml_wrap_exception(_cba_); - if(_ca8_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _b0_], 1); - throw caml_maybe_attach_backtrace(_ca8_, 0); - } - var - n_nombre_parts_d832_25 = - caml_call3 - (Runtime_ocaml_Runtime[28], _b3_, Runtime_ocaml_Runtime[15], _ca$_); - return [0, n_nombre_parts_d832_25]; - } - function calcul_nombre_parts_accession_(calcul_nombre_parts_accession_){ - var - nombre_personnes_a_charge = calcul_nombre_parts_accession_[1], - situation_familiale_calcul_apl = calcul_nombre_parts_accession_[2]; - try{ - var - _caE_ = - function(param){ - var _caI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$10); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _caI_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_1_4$0) - : caml_call1(Runtime_ocaml_Runtime[39], cst_1_8$0); - var _caJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$2); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _caJ_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$1); - var _caK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$1); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _caK_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_3$3); - var _caL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$4); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _caL_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_3_7$1); - var _caM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$3); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _caM_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_4_3$1); - var - _caN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$4), - _caO_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _caN_), - _caP_ = caml_call1(Runtime_ocaml_Runtime[69], _caO_), - _caQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5$1), - _caR_ = caml_call2(Runtime_ocaml_Runtime[103], _caQ_, _caP_), - _caS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_4_3$2); - return caml_call2(Runtime_ocaml_Runtime[92], _caS_, _caR_); - }, - _caF_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _b5_, 1); - }, - _caG_ = caml_call4(Runtime_ocaml_Runtime[63], _b6_, [0], _caF_, _caE_); - } - catch(_caH_){ - var _caD_ = caml_wrap_exception(_caH_); - if(_caD_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _b4_], 1); - throw caml_maybe_attach_backtrace(_caD_, 0); - } - var - n_nombre_parts_d832_11 = - caml_call3 - (Runtime_ocaml_Runtime[28], _b7_, Runtime_ocaml_Runtime[15], _caG_); - return [0, n_nombre_parts_d832_11]; - } - function ouverture_droits_retraite(ouverture_droits_retraite_in){ - var date_naissance_assure = ouverture_droits_retraite_in[1]; - try{ - var - _b$T_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _b$U_ = function(param){return 0;}, - _b$V_ = - function(param){ - function _caw_(param){ - var - _caB_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 7, 0), - _caC_ = caml_call3(Runtime_ocaml_Runtime[60], 61, 0, 0); - return caml_call2(Runtime_ocaml_Runtime[95], _caC_, _caB_); - } - function _cax_(param){ - var - _cay_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1954), - _caz_ = - caml_call1(Runtime_ocaml_Runtime[74], date_naissance_assure), - _caA_ = caml_call2(Runtime_ocaml_Runtime[86], _caz_, _cay_); - return caml_call2(Runtime_ocaml_Runtime[29], _b9_, _caA_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _b__, [0], _cax_, _caw_); - }, - _b$W_ = - function(param){ - function _cap_(param){ - var - _cau_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 2, 0), - _cav_ = caml_call3(Runtime_ocaml_Runtime[60], 61, 0, 0); - return caml_call2(Runtime_ocaml_Runtime[95], _cav_, _cau_); - } - function _caq_(param){ - var - _car_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1953), - _cas_ = - caml_call1(Runtime_ocaml_Runtime[74], date_naissance_assure), - _cat_ = caml_call2(Runtime_ocaml_Runtime[86], _cas_, _car_); - return caml_call2(Runtime_ocaml_Runtime[29], _b$_, _cat_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _ca_, [0], _caq_, _cap_); - }, - _b$X_ = - function(param){ - function _cai_(param){ - var - _can_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 9, 0), - _cao_ = caml_call3(Runtime_ocaml_Runtime[60], 60, 0, 0); - return caml_call2(Runtime_ocaml_Runtime[95], _cao_, _can_); - } - function _caj_(param){ - var - _cak_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1952), - _cal_ = - caml_call1(Runtime_ocaml_Runtime[74], date_naissance_assure), - _cam_ = caml_call2(Runtime_ocaml_Runtime[86], _cal_, _cak_); - return caml_call2(Runtime_ocaml_Runtime[29], _cb_, _cam_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _cc_, [0], _caj_, _cai_); - }, - _b$Y_ = - function(param){ - function _b$$_(param){ - var - _cag_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 4, 0), - _cah_ = caml_call3(Runtime_ocaml_Runtime[60], 60, 0, 0); - return caml_call2(Runtime_ocaml_Runtime[95], _cah_, _cag_); - } - function _caa_(param){ - var - _cab_ = caml_call3(Runtime_ocaml_Runtime[57], 1951, 12, 31), - _cac_ = - caml_call2 - (Runtime_ocaml_Runtime[120], date_naissance_assure, _cab_), - _cad_ = caml_call3(Runtime_ocaml_Runtime[57], 1951, 7, 1), - _cae_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_naissance_assure, _cad_), - _caf_ = caml_call2(Runtime_ocaml_Runtime[83], _cae_, _cac_); - return caml_call2(Runtime_ocaml_Runtime[29], _cd_, _caf_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _ce_, [0], _caa_, _b$$_); - }, - _b$Z_ = - function(param){ - function _b$7_(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 60, 0, 0); - } - function _b$8_(param){ - var - _b$9_ = caml_call3(Runtime_ocaml_Runtime[57], 1951, 7, 1), - _b$__ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_naissance_assure, _b$9_); - return caml_call2(Runtime_ocaml_Runtime[29], _cf_, _b$__); - } - return caml_call4(Runtime_ocaml_Runtime[63], _cg_, [0], _b$8_, _b$7_); - }, - _b$0_ = - [0, - function(param){ - function _b$3_(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 62, 0, 0); - } - function _b$4_(param){ - var - _b$5_ = caml_call3(Runtime_ocaml_Runtime[57], 1955, 1, 1), - _b$6_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_naissance_assure, _b$5_); - return caml_call2(Runtime_ocaml_Runtime[29], _ch_, _b$6_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ci_, [0], _b$4_, _b$3_); - }, - _b$Z_, - _b$Y_, - _b$X_, - _b$W_, - _b$V_], - _b$1_ = caml_call4(Runtime_ocaml_Runtime[63], _cj_, _b$0_, _b$U_, _b$T_); - } - catch(_b$2_){ - var _b$S_ = caml_wrap_exception(_b$2_); - if(_b$S_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _b8_], 1); - throw caml_maybe_attach_backtrace(_b$S_, 0); - } - var - age_ouverture_droit = - caml_call3 - (Runtime_ocaml_Runtime[28], _ck_, Runtime_ocaml_Runtime[17], _b$1_); - return [0, age_ouverture_droit]; - } - function impaye_depense_logement(impaye_depense_logement_in){ - var - mode_occupation = impaye_depense_logement_in[1], - aide_versee = impaye_depense_logement_in[2], - montant_apl = impaye_depense_logement_in[3], - montant_charges = impaye_depense_logement_in[4], - depense_logement = impaye_depense_logement_in[5], - montant_dette = impaye_depense_logement_in[6]; - try{ - var - _b_w_ = - function(param){ - switch(mode_occupation[0]){ - case 0: - return _cm_; - case 1: - return _cn_; - case 2: - return _co_; - case 3: - return _cp_; - default: return _cq_; - } - }, - _b_x_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _cr_, 1); - }, - _b_y_ = caml_call4(Runtime_ocaml_Runtime[63], _cs_, [0], _b_x_, _b_w_); - } - catch(_b$R_){ - var _b_v_ = caml_wrap_exception(_b$R_); - if(_b_v_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _cl_], 1); - throw caml_maybe_attach_backtrace(_b_v_, 0); - } - var - mode_occupation_impaye = - caml_call3 - (Runtime_ocaml_Runtime[28], _ct_, embed_mode_occupation_impaye, _b_y_); - try{ - var - _b_A_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _b_B_ = function(param){return 0;}, - _b_C_ = - [0, - function(param){ - function _b$K_(param){return depense_logement;} - function _b$L_(param){ - var _b$Q_ = 0 === mode_occupation_impaye[0] ? 1 : 0; - return caml_call2(Runtime_ocaml_Runtime[29], _cv_, _b$Q_); - } - var - _b$M_ = - [0, - function(param){ - function _b$N_(param){return depense_logement;} - function _b$O_(param){ - var _b$P_ = 0 === mode_occupation_impaye[0] ? 0 : 1; - return caml_call2(Runtime_ocaml_Runtime[29], _cw_, _b$P_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _cx_, [0], _b$O_, _b$N_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _cy_, _b$M_, _b$L_, _b$K_); - }], - _b_D_ = caml_call4(Runtime_ocaml_Runtime[63], _cz_, _b_C_, _b_B_, _b_A_); - } - catch(_b$J_){ - var _b_z_ = caml_wrap_exception(_b$J_); - if(_b_z_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _cu_], 1); - throw caml_maybe_attach_backtrace(_b_z_, 0); - } - var - depense_logement_brute = - caml_call3 - (Runtime_ocaml_Runtime[28], _cA_, embed_depense_logement, _b_D_); - try{ - var - _b_F_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _b_G_ = function(param){return 0;}, - _b_H_ = - function(param){ - function _b$E_(param){ - switch(depense_logement[0]){ - case 0: - var - total_echeances = depense_logement[1], - _b$H_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$1), - _b$I_ = - caml_call2(Runtime_ocaml_Runtime[104], montant_apl, _b$H_); - return [0, - caml_call2 - (Runtime_ocaml_Runtime[98], total_echeances, _b$I_)]; - case 1: - var mensualite = depense_logement[1]; - return [1, - caml_call2 - (Runtime_ocaml_Runtime[98], mensualite, montant_apl)]; - default: var loyer = depense_logement[1]; return [2, loyer]; - } - } - function _b$F_(param){ - var _b$G_ = 0 === mode_occupation_impaye[0] ? 0 : 1; - return caml_call2(Runtime_ocaml_Runtime[29], _cC_, _b$G_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _cD_, [0], _b$F_, _b$E_); - }, - _b_I_ = - [0, - function(param){ - function _b$B_(param){ - switch(depense_logement_brute[0]){ - case 0: - var total = depense_logement_brute[1]; return [0, total]; - case 1: - var mensualite = depense_logement_brute[1]; - return [1, mensualite]; - default: - var montant_loyer = depense_logement_brute[1]; - return [2, - caml_call2 - (Runtime_ocaml_Runtime[98], montant_loyer, montant_apl)]; - } - } - function _b$C_(param){ - var _b$D_ = 0 === mode_occupation_impaye[0] ? 1 : 0; - return caml_call2(Runtime_ocaml_Runtime[29], _cE_, _b$D_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _cF_, [0], _b$C_, _b$B_); - }, - _b_H_], - _b_J_ = caml_call4(Runtime_ocaml_Runtime[63], _cG_, _b_I_, _b_G_, _b_F_); - } - catch(_b$A_){ - var _b_E_ = caml_wrap_exception(_b$A_); - if(_b_E_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _cB_], 1); - throw caml_maybe_attach_backtrace(_b_E_, 0); - } - var - depense_logement_nette = - caml_call3 - (Runtime_ocaml_Runtime[28], _cH_, embed_depense_logement, _b_J_); - try{ - var - _b_L_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _b_M_ = function(param){return 0;}, - _b_N_ = - function(param){ - function _b$r_(param){ - switch(depense_logement_nette[0]){ - case 0: - var - echeance_pret_nette = depense_logement_nette[1], - _b$w_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$0), - _b$x_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$3), - _b$y_ = caml_call2(Runtime_ocaml_Runtime[107], _b$x_, _b$w_); - return caml_call2 - (Runtime_ocaml_Runtime[104], echeance_pret_nette, _b$y_); - case 1: - var - mensualite_nette = depense_logement_nette[1], - _b$z_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$2); - return caml_call2 - (Runtime_ocaml_Runtime[104], mensualite_nette, _b$z_); - default: return caml_call1(Runtime_ocaml_Runtime[31], cst_0$11); - } - } - function _b$s_(param){ - switch(aide_versee[0]){ - case 0: - var _b$t_ = 0; break; - case 1: - var _b$t_ = 0; break; - default: var _b$t_ = 1; - } - var - _b$u_ = 0 === mode_occupation_impaye[0] ? 0 : 1, - _b$v_ = caml_call2(Runtime_ocaml_Runtime[83], _b$u_, _b$t_); - return caml_call2(Runtime_ocaml_Runtime[29], _cJ_, _b$v_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _cK_, [0], _b$s_, _b$r_); - }, - _b_O_ = - function(param){ - function _b$i_(param){ - switch(depense_logement_brute[0]){ - case 0: - var - echeance_pret_brute = depense_logement_brute[1], - _b$n_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$1), - _b$o_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$4), - _b$p_ = caml_call2(Runtime_ocaml_Runtime[107], _b$o_, _b$n_); - return caml_call2 - (Runtime_ocaml_Runtime[104], echeance_pret_brute, _b$p_); - case 1: - var - mensualite_brute = depense_logement_brute[1], - _b$q_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$3); - return caml_call2 - (Runtime_ocaml_Runtime[104], mensualite_brute, _b$q_); - default: return caml_call1(Runtime_ocaml_Runtime[31], cst_0$12); - } - } - function _b$j_(param){ - switch(aide_versee[0]){ - case 0: - var _b$k_ = 0; break; - case 1: - var _b$k_ = 1; break; - default: var _b$k_ = 0; - } - var - _b$l_ = 0 === mode_occupation_impaye[0] ? 0 : 1, - _b$m_ = caml_call2(Runtime_ocaml_Runtime[83], _b$l_, _b$k_); - return caml_call2(Runtime_ocaml_Runtime[29], _cL_, _b$m_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _cM_, [0], _b$j_, _b$i_); - }, - _b_P_ = - function(param){ - function _b$b_(param){ - switch(depense_logement_nette[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$13); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$14); - default: - var - loyer_net = depense_logement_nette[1], - _b$g_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$4), - _b$h_ = - caml_call2 - (Runtime_ocaml_Runtime[93], loyer_net, montant_charges); - return caml_call2(Runtime_ocaml_Runtime[104], _b$h_, _b$g_); - } - } - function _b$c_(param){ - switch(aide_versee[0]){ - case 0: - var _b$d_ = 1; break; - case 1: - var _b$d_ = 0; break; - default: var _b$d_ = 0; - } - var - _b$e_ = 0 === mode_occupation_impaye[0] ? 1 : 0, - _b$f_ = caml_call2(Runtime_ocaml_Runtime[83], _b$e_, _b$d_); - return caml_call2(Runtime_ocaml_Runtime[29], _cN_, _b$f_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _cO_, [0], _b$c_, _b$b_); - }, - _b_Q_ = - [0, - function(param){ - function _b_6_(param){ - switch(depense_logement_brute[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$15); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$16); - default: - var - loyer_brut = depense_logement_brute[1], - _b_$_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$5), - _b$a_ = - caml_call2 - (Runtime_ocaml_Runtime[93], loyer_brut, montant_charges); - return caml_call2(Runtime_ocaml_Runtime[104], _b$a_, _b_$_); - } - } - function _b_7_(param){ - switch(aide_versee[0]){ - case 0: - var _b_8_ = 0; break; - case 1: - var _b_8_ = 1; break; - default: var _b_8_ = 0; - } - var - _b_9_ = 0 === mode_occupation_impaye[0] ? 1 : 0, - _b___ = caml_call2(Runtime_ocaml_Runtime[83], _b_9_, _b_8_); - return caml_call2(Runtime_ocaml_Runtime[29], _cP_, _b___); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _cQ_, [0], _b_7_, _b_6_); - }, - _b_P_, - _b_O_, - _b_N_], - _b_R_ = caml_call4(Runtime_ocaml_Runtime[63], _cR_, _b_Q_, _b_M_, _b_L_); - } - catch(_b_5_){ - var _b_K_ = caml_wrap_exception(_b_5_); - if(_b_K_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _cI_], 1); - throw caml_maybe_attach_backtrace(_b_K_, 0); - } - var - seuil_impaye_depense_de_logeme = - caml_call3 - (Runtime_ocaml_Runtime[28], _cS_, Runtime_ocaml_Runtime[13], _b_R_); - try{ - var - _b_T_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _b_U_ = function(param){return 0;}, - _b_V_ = - [0, - function(param){ - function _b_Y_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[128], - montant_dette, - seuil_impaye_depense_de_logeme) - ? montant_dette - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$17); - } - function _b_Z_(param){ - var _b_4_ = 0 === mode_occupation_impaye[0] ? 1 : 0; - return caml_call2(Runtime_ocaml_Runtime[29], _cU_, _b_4_); - } - var - _b_0_ = - [0, - function(param){ - function _b_1_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[128], - montant_dette, - seuil_impaye_depense_de_logeme) - ? montant_dette - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$18); - } - function _b_2_(param){ - var _b_3_ = 0 === mode_occupation_impaye[0] ? 0 : 1; - return caml_call2(Runtime_ocaml_Runtime[29], _cV_, _b_3_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _cW_, [0], _b_2_, _b_1_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _cX_, _b_0_, _b_Z_, _b_Y_); - }], - _b_W_ = caml_call4(Runtime_ocaml_Runtime[63], _cY_, _b_V_, _b_U_, _b_T_); - } - catch(_b_X_){ - var _b_S_ = caml_wrap_exception(_b_X_); - if(_b_S_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _cT_], 1); - throw caml_maybe_attach_backtrace(_b_S_, 0); - } - var - montant_impaye = - caml_call3 - (Runtime_ocaml_Runtime[28], _cZ_, Runtime_ocaml_Runtime[13], _b_W_); - return [0, montant_impaye]; - } - function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ - var date_courante = base_mensuelle_allocations_fam[1]; - try{ - var - _b9W_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _b9X_ = function(param){return 0;}, - _b9Y_ = - function(param){ - function _b_r_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_42228); - } - function _b_s_(param){ - var - _b_t_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), - _b_u_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_t_); - return caml_call2(Runtime_ocaml_Runtime[29], _c1_, _b_u_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _c2_, [0], _b_s_, _b_r_); - }, - _b9Z_ = - function(param){ - function _b_k_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_41481); - } - function _b_l_(param){ - var - _b_m_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), - _b_n_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b_m_), - _b_o_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), - _b_p_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_o_), - _b_q_ = caml_call2(Runtime_ocaml_Runtime[83], _b_p_, _b_n_); - return caml_call2(Runtime_ocaml_Runtime[29], _c3_, _b_q_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _c4_, [0], _b_l_, _b_k_); - }, - _b90_ = - function(param){ - function _b_d_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_41440); - } - function _b_e_(param){ - var - _b_f_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), - _b_g_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b_f_), - _b_h_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), - _b_i_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_h_), - _b_j_ = caml_call2(Runtime_ocaml_Runtime[83], _b_i_, _b_g_); - return caml_call2(Runtime_ocaml_Runtime[29], _c5_, _b_j_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _c6_, [0], _b_e_, _b_d_); - }, - _b91_ = - [0, - function(param){ - function _b98_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_41316); - } - function _b99_(param){ - var - _b9__ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), - _b9$_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b9__), - _b_a_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), - _b_b_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_a_), - _b_c_ = caml_call2(Runtime_ocaml_Runtime[83], _b_b_, _b9$_); - return caml_call2(Runtime_ocaml_Runtime[29], _c7_, _b_c_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _c8_, [0], _b99_, _b98_); - }, - _b90_, - _b9Z_, - _b9Y_], - _b92_ = caml_call4(Runtime_ocaml_Runtime[63], _c9_, _b91_, _b9X_, _b9W_); - } - catch(_b97_){ - var _b9V_ = caml_wrap_exception(_b97_); - if(_b9V_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _c0_], 1); - throw caml_maybe_attach_backtrace(_b9V_, 0); - } - var - montant = - caml_call3 - (Runtime_ocaml_Runtime[28], _c__, Runtime_ocaml_Runtime[13], _b92_); - try{ - var - _b94_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), - _b95_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b94_); - } - catch(_b96_){ - var _b93_ = caml_wrap_exception(_b96_); - if(_b93_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _c$_], 1); - throw caml_maybe_attach_backtrace(_b93_, 0); - } - if(_b95_) return [0, montant]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _da_], 1); - } - function verification_age_inferieur_ou_(verification_age_inferieur_ou_){ - var - date_naissance = verification_age_inferieur_ou_[1], - date_courante = verification_age_inferieur_ou_[2], - annees = verification_age_inferieur_ou_[3]; - try{ - var - _b9Q_ = - function(param){ - var - _b9U_ = - caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); - return caml_call2(Runtime_ocaml_Runtime[120], _b9U_, date_courante); - }, - _b9R_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _dc_, 1); - }, - _b9S_ = caml_call4(Runtime_ocaml_Runtime[63], _dd_, [0], _b9R_, _b9Q_); - } - catch(_b9T_){ - var _b9P_ = caml_wrap_exception(_b9T_); - if(_b9P_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _db_], 1); - throw caml_maybe_attach_backtrace(_b9P_, 0); - } - var - est_inferieur_ou_egal = - caml_call3 - (Runtime_ocaml_Runtime[28], _de_, Runtime_ocaml_Runtime[12], _b9S_); - return [0, est_inferieur_ou_egal]; - } - function verification_age_superieur_a(verification_age_superieur_a_i){ - var - date_naissance = verification_age_superieur_a_i[1], - date_courante = verification_age_superieur_a_i[2], - annees = verification_age_superieur_a_i[3]; - try{ - var - _b9K_ = - function(param){ - var - _b9O_ = - caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); - return caml_call2(Runtime_ocaml_Runtime[125], _b9O_, date_courante); - }, - _b9L_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _dg_, 1); - }, - _b9M_ = caml_call4(Runtime_ocaml_Runtime[63], _dh_, [0], _b9L_, _b9K_); - } - catch(_b9N_){ - var _b9J_ = caml_wrap_exception(_b9N_); - if(_b9J_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _df_], 1); - throw caml_maybe_attach_backtrace(_b9J_, 0); - } - var - est_superieur = - caml_call3 - (Runtime_ocaml_Runtime[28], _di_, Runtime_ocaml_Runtime[12], _b9M_); - return [0, est_superieur]; - } - function smic(smic_in){ - var date_courante = smic_in[1], residence = smic_in[2]; - try{ - var - _b5Z_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _b50_ = function(param){return 0;}, - _b51_ = - function(param){ - function _b9D_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_851); - } - function _b9E_(param){ - var - _b9F_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dk_), - _b9G_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _b9H_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9G_), - _b9I_ = caml_call2(Runtime_ocaml_Runtime[83], _b9H_, _b9F_); - return caml_call2(Runtime_ocaml_Runtime[29], _dl_, _b9I_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _dm_, [0], _b9E_, _b9D_); - }, - _b52_ = - function(param){ - function _b9j_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1127); - } - function _b9k_(param){ - var - _b9l_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dn_), - _b9m_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _do_), - _b9n_ = caml_call2(Runtime_ocaml_Runtime[84], _b9m_, _b9l_), - _b9o_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dp_), - _b9p_ = caml_call2(Runtime_ocaml_Runtime[84], _b9o_, _b9n_), - _b9q_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dq_), - _b9r_ = caml_call2(Runtime_ocaml_Runtime[84], _b9q_, _b9p_), - _b9s_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dr_), - _b9t_ = caml_call2(Runtime_ocaml_Runtime[84], _b9s_, _b9r_), - _b9u_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ds_), - _b9v_ = caml_call2(Runtime_ocaml_Runtime[84], _b9u_, _b9t_), - _b9w_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dt_), - _b9x_ = caml_call2(Runtime_ocaml_Runtime[84], _b9w_, _b9v_), - _b9y_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _du_), - _b9z_ = caml_call2(Runtime_ocaml_Runtime[84], _b9y_, _b9x_), - _b9A_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _b9B_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9A_), - _b9C_ = caml_call2(Runtime_ocaml_Runtime[83], _b9B_, _b9z_); - return caml_call2(Runtime_ocaml_Runtime[29], _dv_, _b9C_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _dw_, [0], _b9k_, _b9j_); - }, - _b53_ = - function(param){ - function _b9a_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_835); - } - function _b9b_(param){ - var - _b9c_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dx_), - _b9d_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), - _b9e_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b9d_), - _b9f_ = caml_call2(Runtime_ocaml_Runtime[83], _b9e_, _b9c_), - _b9g_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), - _b9h_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9g_), - _b9i_ = caml_call2(Runtime_ocaml_Runtime[83], _b9h_, _b9f_); - return caml_call2(Runtime_ocaml_Runtime[29], _dy_, _b9i_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _dz_, [0], _b9b_, _b9a_); - }, - _b54_ = - function(param){ - function _b8P_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1107); - } - function _b8Q_(param){ - var - _b8R_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dA_), - _b8S_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dB_), - _b8T_ = caml_call2(Runtime_ocaml_Runtime[84], _b8S_, _b8R_), - _b8U_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dC_), - _b8V_ = caml_call2(Runtime_ocaml_Runtime[84], _b8U_, _b8T_), - _b8W_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dD_), - _b8X_ = caml_call2(Runtime_ocaml_Runtime[84], _b8W_, _b8V_), - _b8Y_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dE_), - _b8Z_ = caml_call2(Runtime_ocaml_Runtime[84], _b8Y_, _b8X_), - _b80_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dF_), - _b81_ = caml_call2(Runtime_ocaml_Runtime[84], _b80_, _b8Z_), - _b82_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dG_), - _b83_ = caml_call2(Runtime_ocaml_Runtime[84], _b82_, _b81_), - _b84_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dH_), - _b85_ = caml_call2(Runtime_ocaml_Runtime[84], _b84_, _b83_), - _b86_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), - _b87_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b86_), - _b88_ = caml_call2(Runtime_ocaml_Runtime[83], _b87_, _b85_), - _b89_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), - _b8__ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b89_), - _b8$_ = caml_call2(Runtime_ocaml_Runtime[83], _b8__, _b88_); - return caml_call2(Runtime_ocaml_Runtime[29], _dI_, _b8$_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _dJ_, [0], _b8Q_, _b8P_); - }, - _b55_ = - function(param){ - function _b8G_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_819); - } - function _b8H_(param){ - var - _b8I_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dK_), - _b8J_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), - _b8K_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8J_), - _b8L_ = caml_call2(Runtime_ocaml_Runtime[83], _b8K_, _b8I_), - _b8M_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), - _b8N_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b8M_), - _b8O_ = caml_call2(Runtime_ocaml_Runtime[83], _b8N_, _b8L_); - return caml_call2(Runtime_ocaml_Runtime[29], _dL_, _b8O_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _dM_, [0], _b8H_, _b8G_); - }, - _b56_ = - function(param){ - function _b8j_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1085); - } - function _b8k_(param){ - var - _b8l_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dN_), - _b8m_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dO_), - _b8n_ = caml_call2(Runtime_ocaml_Runtime[84], _b8m_, _b8l_), - _b8o_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dP_), - _b8p_ = caml_call2(Runtime_ocaml_Runtime[84], _b8o_, _b8n_), - _b8q_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dQ_), - _b8r_ = caml_call2(Runtime_ocaml_Runtime[84], _b8q_, _b8p_), - _b8s_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dR_), - _b8t_ = caml_call2(Runtime_ocaml_Runtime[84], _b8s_, _b8r_), - _b8u_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dS_), - _b8v_ = caml_call2(Runtime_ocaml_Runtime[84], _b8u_, _b8t_), - _b8w_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dT_), - _b8x_ = caml_call2(Runtime_ocaml_Runtime[84], _b8w_, _b8v_), - _b8y_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dU_), - _b8z_ = caml_call2(Runtime_ocaml_Runtime[84], _b8y_, _b8x_), - _b8A_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), - _b8B_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8A_), - _b8C_ = caml_call2(Runtime_ocaml_Runtime[83], _b8B_, _b8z_), - _b8D_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), - _b8E_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b8D_), - _b8F_ = caml_call2(Runtime_ocaml_Runtime[83], _b8E_, _b8C_); - return caml_call2(Runtime_ocaml_Runtime[29], _dV_, _b8F_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _dW_, [0], _b8k_, _b8j_); - }, - _b57_ = - function(param){ - function _b8a_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_798); - } - function _b8b_(param){ - var - _b8c_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dX_), - _b8d_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), - _b8e_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8d_), - _b8f_ = caml_call2(Runtime_ocaml_Runtime[83], _b8e_, _b8c_), - _b8g_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _b8h_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b8g_), - _b8i_ = caml_call2(Runtime_ocaml_Runtime[83], _b8h_, _b8f_); - return caml_call2(Runtime_ocaml_Runtime[29], _dY_, _b8i_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _dZ_, [0], _b8b_, _b8a_); - }, - _b58_ = - function(param){ - function _b7P_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1057); - } - function _b7Q_(param){ - var - _b7R_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d0_), - _b7S_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d1_), - _b7T_ = caml_call2(Runtime_ocaml_Runtime[84], _b7S_, _b7R_), - _b7U_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d2_), - _b7V_ = caml_call2(Runtime_ocaml_Runtime[84], _b7U_, _b7T_), - _b7W_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d3_), - _b7X_ = caml_call2(Runtime_ocaml_Runtime[84], _b7W_, _b7V_), - _b7Y_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d4_), - _b7Z_ = caml_call2(Runtime_ocaml_Runtime[84], _b7Y_, _b7X_), - _b70_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d5_), - _b71_ = caml_call2(Runtime_ocaml_Runtime[84], _b70_, _b7Z_), - _b72_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d6_), - _b73_ = caml_call2(Runtime_ocaml_Runtime[84], _b72_, _b71_), - _b74_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d7_), - _b75_ = caml_call2(Runtime_ocaml_Runtime[84], _b74_, _b73_), - _b76_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), - _b77_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b76_), - _b78_ = caml_call2(Runtime_ocaml_Runtime[83], _b77_, _b75_), - _b79_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _b7__ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b79_), - _b7$_ = caml_call2(Runtime_ocaml_Runtime[83], _b7__, _b78_); - return caml_call2(Runtime_ocaml_Runtime[29], _d8_, _b7$_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _d9_, [0], _b7Q_, _b7P_); - }, - _b59_ = - function(param){ - function _b7G_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_774); - } - function _b7H_(param){ - var - _b7I_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d__), - _b7J_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), - _b7K_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7J_), - _b7L_ = caml_call2(Runtime_ocaml_Runtime[83], _b7K_, _b7I_), - _b7M_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _b7N_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b7M_), - _b7O_ = caml_call2(Runtime_ocaml_Runtime[83], _b7N_, _b7L_); - return caml_call2(Runtime_ocaml_Runtime[29], _d$_, _b7O_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _ea_, [0], _b7H_, _b7G_); - }, - _b5__ = - function(param){ - function _b7j_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1025); - } - function _b7k_(param){ - var - _b7l_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eb_), - _b7m_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ec_), - _b7n_ = caml_call2(Runtime_ocaml_Runtime[84], _b7m_, _b7l_), - _b7o_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ed_), - _b7p_ = caml_call2(Runtime_ocaml_Runtime[84], _b7o_, _b7n_), - _b7q_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ee_), - _b7r_ = caml_call2(Runtime_ocaml_Runtime[84], _b7q_, _b7p_), - _b7s_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ef_), - _b7t_ = caml_call2(Runtime_ocaml_Runtime[84], _b7s_, _b7r_), - _b7u_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eg_), - _b7v_ = caml_call2(Runtime_ocaml_Runtime[84], _b7u_, _b7t_), - _b7w_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eh_), - _b7x_ = caml_call2(Runtime_ocaml_Runtime[84], _b7w_, _b7v_), - _b7y_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ei_), - _b7z_ = caml_call2(Runtime_ocaml_Runtime[84], _b7y_, _b7x_), - _b7A_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), - _b7B_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7A_), - _b7C_ = caml_call2(Runtime_ocaml_Runtime[83], _b7B_, _b7z_), - _b7D_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _b7E_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b7D_), - _b7F_ = caml_call2(Runtime_ocaml_Runtime[83], _b7E_, _b7C_); - return caml_call2(Runtime_ocaml_Runtime[29], _ej_, _b7F_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _ek_, [0], _b7k_, _b7j_); - }, - _b5$_ = - function(param){ - function _b7a_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_766); - } - function _b7b_(param){ - var - _b7c_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _el_), - _b7d_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), - _b7e_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7d_), - _b7f_ = caml_call2(Runtime_ocaml_Runtime[83], _b7e_, _b7c_), - _b7g_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _b7h_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b7g_), - _b7i_ = caml_call2(Runtime_ocaml_Runtime[83], _b7h_, _b7f_); - return caml_call2(Runtime_ocaml_Runtime[29], _em_, _b7i_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _en_, [0], _b7b_, _b7a_); - }, - _b6a_ = - function(param){ - function _b6P_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1015); - } - function _b6Q_(param){ - var - _b6R_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eo_), - _b6S_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ep_), - _b6T_ = caml_call2(Runtime_ocaml_Runtime[84], _b6S_, _b6R_), - _b6U_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eq_), - _b6V_ = caml_call2(Runtime_ocaml_Runtime[84], _b6U_, _b6T_), - _b6W_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _er_), - _b6X_ = caml_call2(Runtime_ocaml_Runtime[84], _b6W_, _b6V_), - _b6Y_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _es_), - _b6Z_ = caml_call2(Runtime_ocaml_Runtime[84], _b6Y_, _b6X_), - _b60_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _et_), - _b61_ = caml_call2(Runtime_ocaml_Runtime[84], _b60_, _b6Z_), - _b62_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eu_), - _b63_ = caml_call2(Runtime_ocaml_Runtime[84], _b62_, _b61_), - _b64_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ev_), - _b65_ = caml_call2(Runtime_ocaml_Runtime[84], _b64_, _b63_), - _b66_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), - _b67_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b66_), - _b68_ = caml_call2(Runtime_ocaml_Runtime[83], _b67_, _b65_), - _b69_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _b6__ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b69_), - _b6$_ = caml_call2(Runtime_ocaml_Runtime[83], _b6__, _b68_); - return caml_call2(Runtime_ocaml_Runtime[29], _ew_, _b6$_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _ex_, [0], _b6Q_, _b6P_); - }, - _b6b_ = - function(param){ - function _b6G_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_757); - } - function _b6H_(param){ - var - _b6I_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ey_), - _b6J_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), - _b6K_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b6J_), - _b6L_ = caml_call2(Runtime_ocaml_Runtime[83], _b6K_, _b6I_), - _b6M_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _b6N_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6M_), - _b6O_ = caml_call2(Runtime_ocaml_Runtime[83], _b6N_, _b6L_); - return caml_call2(Runtime_ocaml_Runtime[29], _ez_, _b6O_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _eA_, [0], _b6H_, _b6G_); - }, - _b6c_ = - [0, - function(param){ - function _b6j_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1003); - } - function _b6k_(param){ - var - _b6l_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eB_), - _b6m_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eC_), - _b6n_ = caml_call2(Runtime_ocaml_Runtime[84], _b6m_, _b6l_), - _b6o_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eD_), - _b6p_ = caml_call2(Runtime_ocaml_Runtime[84], _b6o_, _b6n_), - _b6q_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eE_), - _b6r_ = caml_call2(Runtime_ocaml_Runtime[84], _b6q_, _b6p_), - _b6s_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eF_), - _b6t_ = caml_call2(Runtime_ocaml_Runtime[84], _b6s_, _b6r_), - _b6u_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eG_), - _b6v_ = caml_call2(Runtime_ocaml_Runtime[84], _b6u_, _b6t_), - _b6w_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eH_), - _b6x_ = caml_call2(Runtime_ocaml_Runtime[84], _b6w_, _b6v_), - _b6y_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eI_), - _b6z_ = caml_call2(Runtime_ocaml_Runtime[84], _b6y_, _b6x_), - _b6A_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), - _b6B_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b6A_), - _b6C_ = caml_call2(Runtime_ocaml_Runtime[83], _b6B_, _b6z_), - _b6D_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _b6E_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6D_), - _b6F_ = caml_call2(Runtime_ocaml_Runtime[83], _b6E_, _b6C_); - return caml_call2(Runtime_ocaml_Runtime[29], _eJ_, _b6F_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _eK_, [0], _b6k_, _b6j_); - }, - _b6b_, - _b6a_, - _b5$_, - _b5__, - _b59_, - _b58_, - _b57_, - _b56_, - _b55_, - _b54_, - _b53_, - _b52_, - _b51_], - _b6d_ = caml_call4(Runtime_ocaml_Runtime[63], _eL_, _b6c_, _b50_, _b5Z_); - } - catch(_b6i_){ - var _b5Y_ = caml_wrap_exception(_b6i_); - if(_b5Y_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _dj_], 1); - throw caml_maybe_attach_backtrace(_b5Y_, 0); - } - var - brut_horaire = - caml_call3 - (Runtime_ocaml_Runtime[28], _eM_, Runtime_ocaml_Runtime[13], _b6d_); - try{ - var - _b6f_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _b6g_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6f_); - } - catch(_b6h_){ - var _b6e_ = caml_wrap_exception(_b6h_); - if(_b6e_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _eN_], 1); - throw caml_maybe_attach_backtrace(_b6e_, 0); - } - if(_b6g_) return [0, brut_horaire]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _eO_], 1); - } - function arrondi_centaine_superieure(ressources_menage){ - var - _b5S_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100), - _b5T_ = caml_call1(Runtime_ocaml_Runtime[31], cst_49), - _b5U_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_01), - _b5V_ = caml_call2(Runtime_ocaml_Runtime[104], ressources_menage, _b5U_), - _b5W_ = caml_call2(Runtime_ocaml_Runtime[93], _b5V_, _b5T_), - _b5X_ = caml_call1(Runtime_ocaml_Runtime[77], _b5W_); - return caml_call2(Runtime_ocaml_Runtime[104], _b5X_, _b5S_); - } - function traitement_nul_tout_le_temps(aide_finale){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$19); - } - function calcul_aide_personnalisee_loge(calcul_aide_personnalisee_loge){ - var - loyer_principal_base = calcul_aide_personnalisee_loge[1], - ressources_menage_arrondies = calcul_aide_personnalisee_loge[2], - beneficiaire_aide_adulte_ou_en = calcul_aide_personnalisee_loge[3], - date_courante = calcul_aide_personnalisee_loge[4], - nombre_personnes_a_charge = calcul_aide_personnalisee_loge[5], - situation_familiale_calcul_apl = calcul_aide_personnalisee_loge[6], - zone = calcul_aide_personnalisee_loge[7], - logement_est_chambre = calcul_aide_personnalisee_loge[8], - agees_ou_handicap_adultes_hebe = calcul_aide_personnalisee_loge[9], - type_aide = calcul_aide_personnalisee_loge[10], - colocation = calcul_aide_personnalisee_loge[11], - reduction_loyer_solidarite = calcul_aide_personnalisee_loge[12], - logement_meuble_d842_2 = calcul_aide_personnalisee_loge[13], - residence = calcul_aide_personnalisee_loge[14]; - try{ - var - _bDZ_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_98); - }, - _bD0_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _eQ_, 1); - }, - _bD1_ = caml_call4(Runtime_ocaml_Runtime[63], _eR_, [0], _bD0_, _bDZ_); - } - catch(_b5R_){ - var _bDY_ = caml_wrap_exception(_b5R_); - if(_bDY_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _eP_], 1); - throw caml_maybe_attach_backtrace(_bDY_, 0); - } - var - fraction_l832_3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _eS_, Runtime_ocaml_Runtime[15], _bD1_); - try{ - var - _bD3_ = function(param){return date_courante;}, - _bD4_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _eU_, 1); - }, - _bD5_ = caml_call4(Runtime_ocaml_Runtime[63], _eV_, [0], _bD4_, _bD3_), - contributions_sociales_dot_dat = - caml_call3 - (Runtime_ocaml_Runtime[28], _eW_, Runtime_ocaml_Runtime[16], _bD5_); - } - catch(_b5Q_){ - var _bD2_ = caml_wrap_exception(_b5Q_); - if(_bD2_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _eT_], 1); - throw caml_maybe_attach_backtrace(_bD2_, 0); - } - var - _bD6_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _eX_, contributions_sociales_aides_p), - [0, contributions_sociales_dot_dat]), - result = caml_call2(Runtime_ocaml_Runtime[27], _eY_, _bD6_), - contributions_sociales_dot_mon = result[1]; - try{ - var - _bD8_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_500); - }, - _bD9_ = - function(param){ - var - _b5O_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _b5P_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5O_); - return caml_call2(Runtime_ocaml_Runtime[29], _e0_, _b5P_); - }, - _bD__ = caml_call4(Runtime_ocaml_Runtime[63], _e1_, [0], _bD9_, _bD8_); - } - catch(_b5N_){ - var _bD7_ = caml_wrap_exception(_b5N_); - if(_bD7_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _eZ_], 1); - throw caml_maybe_attach_backtrace(_bD7_, 0); - } - var - montant_forfaitaire_d823_16 = - caml_call3 - (Runtime_ocaml_Runtime[28], _e2_, Runtime_ocaml_Runtime[13], _bD__); - try{ - var - _bEa_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _bEb_ = function(param){return 0;}, - _bEc_ = - [0, - function(param){ - function _b5t_(param){ - return caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); - } - function _b5u_(param){ - var - _b5L_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b5M_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5L_); - return caml_call2(Runtime_ocaml_Runtime[29], _e4_, _b5M_); - } - var - _b5v_ = - [0, - function(param){ - function _b5w_(param){ - return caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); - } - function _b5x_(param){ - var - _b5G_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b5H_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b5G_), - _b5I_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b5J_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5I_), - _b5K_ = caml_call2(Runtime_ocaml_Runtime[83], _b5J_, _b5H_); - return caml_call2(Runtime_ocaml_Runtime[29], _e5_, _b5K_); - } - var - _b5y_ = - [0, - function(param){ - function _b5z_(param){ - return caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); - } - function _b5A_(param){ - var - _b5B_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _b5C_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5B_), - _b5D_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b5E_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b5D_), - _b5F_ = caml_call2(Runtime_ocaml_Runtime[83], _b5E_, _b5C_); - return caml_call2(Runtime_ocaml_Runtime[29], _e6_, _b5F_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _e7_, [0], _b5A_, _b5z_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _e8_, _b5y_, _b5x_, _b5w_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _e9_, _b5v_, _b5u_, _b5t_); - }], - _bEd_ = caml_call4(Runtime_ocaml_Runtime[63], _e__, _bEc_, _bEb_, _bEa_); - } - catch(_b5s_){ - var _bD$_ = caml_wrap_exception(_b5s_); - if(_bD$_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _e3_], 1); - throw caml_maybe_attach_backtrace(_bD$_, 0); - } - var - multiplicateur_majoration_char = - caml_call3 - (Runtime_ocaml_Runtime[28], _e$_, Runtime_ocaml_Runtime[15], _bEd_); - try{ - var - _bEf_ = - function(param){ - switch(type_aide[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$20); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_1000); - default: return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$0); - } - }, - _bEg_ = - function(param){ - var - _b5q_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _b5r_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5q_); - return caml_call2(Runtime_ocaml_Runtime[29], _fb_, _b5r_); - }, - _bEh_ = caml_call4(Runtime_ocaml_Runtime[63], _fc_, [0], _bEg_, _bEf_); - } - catch(_b5p_){ - var _bEe_ = caml_wrap_exception(_b5p_); - if(_bEe_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _fa_], 1); - throw caml_maybe_attach_backtrace(_bEe_, 0); - } - var - montant_minimal_aide_d823_16 = - caml_call3 - (Runtime_ocaml_Runtime[28], _fd_, Runtime_ocaml_Runtime[13], _bEh_); - try{ - var - _bEj_ = - function(param){ - if(! logement_meuble_d842_2) return loyer_principal_base; - var - _b5m_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3$5), - _b5n_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$6), - _b5o_ = caml_call2(Runtime_ocaml_Runtime[107], _b5n_, _b5m_); - return caml_call2 - (Runtime_ocaml_Runtime[104], loyer_principal_base, _b5o_); - }, - _bEk_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ff_, 1); - }, - _bEl_ = caml_call4(Runtime_ocaml_Runtime[63], _fg_, [0], _bEk_, _bEj_); - } - catch(_b5l_){ - var _bEi_ = caml_wrap_exception(_b5l_); - if(_bEi_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _fe_], 1); - throw caml_maybe_attach_backtrace(_bEi_, 0); - } - var - loyer_principal_avec_reduction = - caml_call3 - (Runtime_ocaml_Runtime[28], _fh_, Runtime_ocaml_Runtime[13], _bEl_); - try{ - var - _bEn_ = - function(param){ - function _b4n_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _b4o_(param){return 0;} - var - _b4p_ = - [0, - function(param){ - function _b4q_(param){ - var _b4__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4__)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0283) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0315); - var _b4$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$5); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4$_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_027); - var _b5a_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b5a_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238); - var _b5b_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$6); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b5b_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0201); - var _b5c_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$5); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b5c_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0185); - var _b5d_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b5d_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0179); - var _b5e_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$2); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b5e_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173); - var - _b5f_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$3), - _b5g_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b5f_), - _b5h_ = caml_call1(Runtime_ocaml_Runtime[69], _b5g_), - _b5i_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006), - _b5j_ = caml_call2(Runtime_ocaml_Runtime[103], _b5i_, _b5h_), - _b5k_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$0); - return caml_call2(Runtime_ocaml_Runtime[97], _b5k_, _b5j_); - } - function _b4r_(param){ - var - _b48_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b49_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b48_); - return caml_call2(Runtime_ocaml_Runtime[29], _fj_, _b49_); - } - var - _b4s_ = - [0, - function(param){ - function _b4t_(param){ - var _b4V_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$22); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4V_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0283$0) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0315$0); - var _b4W_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$6); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4W_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_027$0); - var _b4X_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$8); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4X_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$0); - var _b4Y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4Y_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0201$0); - var _b4Z_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$6); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4Z_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0185$0); - var _b40_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$0); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b40_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0179$0); - var _b41_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$4); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b41_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$1); - var - _b42_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$5), - _b43_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b42_), - _b44_ = caml_call1(Runtime_ocaml_Runtime[69], _b43_), - _b45_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006$0), - _b46_ = caml_call2(Runtime_ocaml_Runtime[103], _b45_, _b44_), - _b47_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$2); - return caml_call2(Runtime_ocaml_Runtime[97], _b47_, _b46_); - } - function _b4u_(param){ - var - _b4Q_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b4R_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b4Q_), - _b4S_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b4T_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b4S_), - _b4U_ = caml_call2(Runtime_ocaml_Runtime[83], _b4T_, _b4R_); - return caml_call2(Runtime_ocaml_Runtime[29], _fk_, _b4U_); - } - var - _b4v_ = - [0, - function(param){ - function _b4w_(param){ - var _b4D_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$23); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4D_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0283$1) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0315$1); - var _b4E_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4E_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_027$1); - var _b4F_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$9); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4F_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$1); - var _b4G_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$8); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4G_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0201$1); - var _b4H_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4H_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0185$1); - var _b4I_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$1); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4I_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0179$1); - var _b4J_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$6); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4J_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$3); - var - _b4K_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$7), - _b4L_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b4K_), - _b4M_ = caml_call1(Runtime_ocaml_Runtime[69], _b4L_), - _b4N_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006$1), - _b4O_ = caml_call2(Runtime_ocaml_Runtime[103], _b4N_, _b4M_), - _b4P_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$4); - return caml_call2(Runtime_ocaml_Runtime[97], _b4P_, _b4O_); - } - function _b4x_(param){ - var - _b4y_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b4z_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b4y_), - _b4A_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _b4B_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b4A_), - _b4C_ = caml_call2(Runtime_ocaml_Runtime[83], _b4B_, _b4z_); - return caml_call2(Runtime_ocaml_Runtime[29], _fl_, _b4C_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fm_, [0], _b4x_, _b4w_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fn_, _b4v_, _b4u_, _b4t_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fo_, _b4s_, _b4r_, _b4q_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fp_, _b4p_, _b4o_, _b4n_); - }, - _bEo_ = function(param){return 1;}, - _bEp_ = - [0, - function(param){ - function _b2M_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _b2N_(param){return 0;} - function _b2O_(param){ - function _b2__(param){ - var _b4h_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$24); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b4h_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299); - var _b4i_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$8); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b4i_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$2); - var _b4j_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$10); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b4j_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217); - var _b4k_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$9); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b4k_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194); - var _b4l_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$8); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b4l_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018); - var _b4m_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$2); - return caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b4m_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162); - } - function _b2$_(param){ - switch(residence[0]){ - case 0: - var _b4a_ = 1; break; - case 1: - var _b4a_ = 0; break; - case 2: - var _b4a_ = 1; break; - case 3: - var _b4a_ = 1; break; - case 4: - var _b4a_ = 1; break; - case 5: - var _b4a_ = 1; break; - case 6: - var _b4a_ = 0; break; - case 7: - var _b4a_ = 0; break; - default: var _b4a_ = 1; - } + _cr3_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$71); + function _cr4_(sum1,sum2) + {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)} var - _b4b_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _b4c_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b4b_), - _b4d_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b4e_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b4d_), - _b4f_ = caml_call2(Runtime_ocaml_Runtime[83], _b4e_, _b4c_), - _b4g_ = caml_call2(Runtime_ocaml_Runtime[83], _b4f_, _b4a_); - return caml_call2(Runtime_ocaml_Runtime[29], _fq_, _b4g_); - } - var - _b3a_ = - [0, - function(param){ - function _b3b_(param){ - var _b36_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$25); + _cr5_=caml_call3(Runtime_ocaml_Runtime[88],_cr4_,_cr3_,_cr2_), + _cr6_=caml_call2(Runtime_ocaml_Runtime[92],_cr5_,_cr0_), + _cr7_=caml_call2(Runtime_ocaml_Runtime[107],_cr6_,_crY_); + return caml_call1(Runtime_ocaml_Runtime[71],_cr7_)}, + _crC_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ne_,1)}, + _crD_= + [0, + function(param) + {function _crG_(param) + {var + ressources_menage_arrondies$0= + caml_call1 + (Runtime_ocaml_Runtime[70],ressources_menage_arrondies), + _crI_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$12), + _crJ_= + caml_call1 + (Runtime_ocaml_Runtime[70],montant_forfaitaire_d832_26); + function _crK_(tranche) + {if + (caml_call2 + (Runtime_ocaml_Runtime[117], + ressources_menage_arrondies$0, + tranche[2])) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$72); + var _crR_=tranche[1]; + if(0 !== _crR_[0]) + {var + _crW_=tranche[3], + _crX_= + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103],_crX_,_crW_)} + var tranche_haut=_crR_[1]; if (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b36_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$0) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$0); - var _b37_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$9); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b37_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$3); - var _b38_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$11); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b38_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$0); - var _b39_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$10); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b39_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$0); - var _b3__ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$9); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3__)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$0); - var _b3$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$3); - return caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3$_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$0) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$0); - } - function _b3c_(param){ - switch(residence[0]){ - case 0: - var _b3Z_ = 1; break; - case 1: - var _b3Z_ = 0; break; - case 2: - var _b3Z_ = 1; break; - case 3: - var _b3Z_ = 1; break; - case 4: - var _b3Z_ = 1; break; - case 5: - var _b3Z_ = 1; break; - case 6: - var _b3Z_ = 0; break; - case 7: - var _b3Z_ = 0; break; - default: var _b3Z_ = 1; - } + (Runtime_ocaml_Runtime[127], + ressources_menage_arrondies$0, + tranche_haut)) + {var + _crS_=tranche[3], + _crT_= + caml_call2 + (Runtime_ocaml_Runtime[97],tranche_haut,tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103],_crT_,_crS_)} var - _b30_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b31_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b30_), - _b32_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _b33_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b32_), - _b34_ = caml_call2(Runtime_ocaml_Runtime[83], _b33_, _b31_), - _b35_ = caml_call2(Runtime_ocaml_Runtime[83], _b34_, _b3Z_); - return caml_call2(Runtime_ocaml_Runtime[29], _fr_, _b35_); - } - var - _b3d_ = + _crU_=tranche[3], + _crV_= + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103],_crV_,_crU_)} + var + _crL_= + caml_call2 + (Runtime_ocaml_Runtime[87], + _crK_, + tranches_revenus_d832_26_multi), + _crM_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$73); + function _crN_(sum1,sum2) + {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)} + var + _crO_=caml_call3(Runtime_ocaml_Runtime[88],_crN_,_crM_,_crL_), + _crP_=caml_call2(Runtime_ocaml_Runtime[92],_crO_,_crJ_), + _crQ_=caml_call2(Runtime_ocaml_Runtime[107],_crP_,_crI_); + return caml_call1(Runtime_ocaml_Runtime[71],_crQ_)} + function _crH_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_nf_,condition_2_du_832_25)} + return caml_call4(Runtime_ocaml_Runtime[63],_ng_,[0],_crH_,_crG_)}], + _crE_=caml_call4(Runtime_ocaml_Runtime[63],_nh_,_crD_,_crC_,_crB_)} + catch(_crF_) + {_crF_ = caml_wrap_exception(_crF_); + if(_crF_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_nd_]; + throw _crF_} + var + montant= + caml_call3 + (Runtime_ocaml_Runtime[28],_ni_,Runtime_ocaml_Runtime[13],_crE_); + return [0,montant]} + function calcul_nombre_part_logement_fo(calcul_nombre_part_logement_fo) + {var + condition_2_du_832_25=calcul_nombre_part_logement_fo[1], + nombre_personnes_a_charge=calcul_nombre_part_logement_fo[2], + situation_familiale_calcul_apl=calcul_nombre_part_logement_fo[3], + residence=calcul_nombre_part_logement_fo[4], + limitation_majoration_personne=calcul_nombre_part_logement_fo[5]; + try + {var + _cqD_= + function(param) + {function _crn_(param){return 0} + function _cro_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_nk_,1)} + return caml_call4(Runtime_ocaml_Runtime[63],_nl_,[0],_cro_,_crn_)}, + _cqE_=function(param){return 1}, + _cqF_= + [0, + function(param) + {return caml_call1(limitation_majoration_personne,0)}], + _cqG_=caml_call4(Runtime_ocaml_Runtime[63],_nm_,_cqF_,_cqE_,_cqD_)} + catch(_crm_) + {_crm_ = caml_wrap_exception(_crm_); + if(_crm_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_nj_]; + throw _crm_} + caml_call3 + (Runtime_ocaml_Runtime[28],_nn_,Runtime_ocaml_Runtime[12],_cqG_); + try + {var + _cqH_= + function(param) + {var _cri_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cri_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_1_4) + :caml_call1(Runtime_ocaml_Runtime[39],cst_1_8); + var _crj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crj_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_2_5); + var _crk_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$17); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crk_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_3$3); + var _crl_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$4); + return caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crl_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_3_7) + :caml_call1(Runtime_ocaml_Runtime[39],cst_4_3)}, + _cqI_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_np_,1)}, + _cqJ_= + [0, + function(param) + {function _crc_(param) + {var _cre_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cre_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_1_2) + :caml_call1(Runtime_ocaml_Runtime[39],cst_1_5); + var _crf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$29); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crf_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$0); + var _crg_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crg_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_3$5); + var _crh_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$6); + return caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crh_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_3_7$0) + :caml_call1(Runtime_ocaml_Runtime[39],cst_4_3$0)} + function _crd_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_nq_,condition_2_du_832_25)} + return caml_call4(Runtime_ocaml_Runtime[63],_nr_,[0],_crd_,_crc_)}], + _cqK_=caml_call4(Runtime_ocaml_Runtime[63],_ns_,_cqJ_,_cqI_,_cqH_)} + catch(_crb_) + {_crb_ = caml_wrap_exception(_crb_); + if(_crb_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_no_]; + throw _crb_} + var + n_nombre_parts_d832_25_base= + caml_call3 + (Runtime_ocaml_Runtime[28],_nt_,Runtime_ocaml_Runtime[15],_cqK_); + try + {var + _cqL_= + function(param) + {var _cq8_=caml_call1(Runtime_ocaml_Runtime[46],cst_4); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[121],nombre_personnes_a_charge,_cq8_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$76); + var + _cq9_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$0), + _cq__= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cq9_), + _cq$_=caml_call1(Runtime_ocaml_Runtime[69],_cq__), + _cra_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$1); + return caml_call2(Runtime_ocaml_Runtime[103],_cra_,_cq$_)}, + _cqM_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_nv_,1)}, + _cqN_= + [0, + function(param) + {function _cqU_(param) + {var _cq3_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$1); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[121],nombre_personnes_a_charge,_cq3_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$77); + var + _cq4_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$2), + _cq5_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cq4_), + _cq6_=caml_call1(Runtime_ocaml_Runtime[69],_cq5_), + _cq7_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$2); + return caml_call2(Runtime_ocaml_Runtime[103],_cq7_,_cq6_)} + function _cqV_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_nw_,condition_2_du_832_25)} + var + _cqW_= + [0, + function(param) + {function _cqX_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_1$30)} + function _cqY_(param) + {switch(residence[0]) + {case 0:var _cqZ_=1;break; + case 1:var _cqZ_=1;break; + case 2:var _cqZ_=1;break; + case 3:var _cqZ_=1;break; + case 4:var _cqZ_=0;break; + case 5:var _cqZ_=0;break; + case 6:var _cqZ_=0;break; + case 7:var _cqZ_=0;break; + default:var _cqZ_=1} + var + _cq0_=caml_call1(Runtime_ocaml_Runtime[46],cst_6), + _cq1_= + caml_call2 + (Runtime_ocaml_Runtime[121],nombre_personnes_a_charge,_cq0_), + _cq2_=caml_call2(Runtime_ocaml_Runtime[83],_cq1_,_cqZ_); + return caml_call2(Runtime_ocaml_Runtime[29],_nx_,_cq2_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ny_,[0],_cqY_,_cqX_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_nz_,_cqW_,_cqV_,_cqU_)}], + _cqO_=caml_call4(Runtime_ocaml_Runtime[63],_nA_,_cqN_,_cqM_,_cqL_)} + catch(_cqT_) + {_cqT_ = caml_wrap_exception(_cqT_); + if(_cqT_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_nu_]; + throw _cqT_} + var + n_nombre_parts_d832_25_majorat= + caml_call3 + (Runtime_ocaml_Runtime[28],_nB_,Runtime_ocaml_Runtime[15],_cqO_); + try + {var + _cqP_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[92], + n_nombre_parts_d832_25_base, + n_nombre_parts_d832_25_majorat)}, + _cqQ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_nD_,1)}, + _cqR_=caml_call4(Runtime_ocaml_Runtime[63],_nE_,[0],_cqQ_,_cqP_)} + catch(_cqS_) + {_cqS_ = caml_wrap_exception(_cqS_); + if(_cqS_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_nC_]; + throw _cqS_} + var + n_nombre_parts_d832_25= + caml_call3 + (Runtime_ocaml_Runtime[28],_nF_,Runtime_ocaml_Runtime[15],_cqR_); + return [0,n_nombre_parts_d832_25]} + function calcul_nombre_parts_accession_(calcul_nombre_parts_accession_) + {var + nombre_personnes_a_charge=calcul_nombre_parts_accession_[1], + situation_familiale_calcul_apl=calcul_nombre_parts_accession_[2]; + try + {var + _cqo_= + function(param) + {var _cqs_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cqs_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_1_4$0) + :caml_call1(Runtime_ocaml_Runtime[39],cst_1_8$0); + var _cqt_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$31); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cqt_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$1); + var _cqu_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cqu_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_3$7); + var _cqv_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cqv_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_3_7$1); + var _cqw_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$3); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cqw_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_4_3$1); + var + _cqx_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$4), + _cqy_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cqx_), + _cqz_=caml_call1(Runtime_ocaml_Runtime[69],_cqy_), + _cqA_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$3), + _cqB_=caml_call2(Runtime_ocaml_Runtime[103],_cqA_,_cqz_), + _cqC_=caml_call1(Runtime_ocaml_Runtime[39],cst_4_3$2); + return caml_call2(Runtime_ocaml_Runtime[92],_cqC_,_cqB_)}, + _cqp_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_nH_,1)}, + _cqq_=caml_call4(Runtime_ocaml_Runtime[63],_nI_,[0],_cqp_,_cqo_)} + catch(_cqr_) + {_cqr_ = caml_wrap_exception(_cqr_); + if(_cqr_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_nG_]; + throw _cqr_} + var + n_nombre_parts_d832_11= + caml_call3 + (Runtime_ocaml_Runtime[28],_nJ_,Runtime_ocaml_Runtime[15],_cqq_); + return [0,n_nombre_parts_d832_11]} + function ouverture_droits_retraite(ouverture_droits_retraite_in) + {var date_naissance_assure=ouverture_droits_retraite_in[1]; + try + {var + _cpE_=function(param){throw Runtime_ocaml_Runtime[2]}, + _cpF_=function(param){return 0}, + _cpG_= + function(param) + {function _cqh_(param) + {var + _cqm_=caml_call3(Runtime_ocaml_Runtime[60],0,7,0), + _cqn_=caml_call3(Runtime_ocaml_Runtime[60],61,0,0); + return caml_call2(Runtime_ocaml_Runtime[95],_cqn_,_cqm_)} + function _cqi_(param) + {var + _cqj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1954), + _cqk_= + caml_call1(Runtime_ocaml_Runtime[74],date_naissance_assure), + _cql_=caml_call2(Runtime_ocaml_Runtime[86],_cqk_,_cqj_); + return caml_call2(Runtime_ocaml_Runtime[29],_nL_,_cql_)} + return caml_call4(Runtime_ocaml_Runtime[63],_nM_,[0],_cqi_,_cqh_)}, + _cpH_= + function(param) + {function _cqa_(param) + {var + _cqf_=caml_call3(Runtime_ocaml_Runtime[60],0,2,0), + _cqg_=caml_call3(Runtime_ocaml_Runtime[60],61,0,0); + return caml_call2(Runtime_ocaml_Runtime[95],_cqg_,_cqf_)} + function _cqb_(param) + {var + _cqc_=caml_call1(Runtime_ocaml_Runtime[46],cst_1953), + _cqd_= + caml_call1(Runtime_ocaml_Runtime[74],date_naissance_assure), + _cqe_=caml_call2(Runtime_ocaml_Runtime[86],_cqd_,_cqc_); + return caml_call2(Runtime_ocaml_Runtime[29],_nN_,_cqe_)} + return caml_call4(Runtime_ocaml_Runtime[63],_nO_,[0],_cqb_,_cqa_)}, + _cpI_= + function(param) + {function _cp5_(param) + {var + _cp__=caml_call3(Runtime_ocaml_Runtime[60],0,9,0), + _cp$_=caml_call3(Runtime_ocaml_Runtime[60],60,0,0); + return caml_call2(Runtime_ocaml_Runtime[95],_cp$_,_cp__)} + function _cp6_(param) + {var + _cp7_=caml_call1(Runtime_ocaml_Runtime[46],cst_1952), + _cp8_= + caml_call1(Runtime_ocaml_Runtime[74],date_naissance_assure), + _cp9_=caml_call2(Runtime_ocaml_Runtime[86],_cp8_,_cp7_); + return caml_call2(Runtime_ocaml_Runtime[29],_nP_,_cp9_)} + return caml_call4(Runtime_ocaml_Runtime[63],_nQ_,[0],_cp6_,_cp5_)}, + _cpJ_= + function(param) + {function _cpW_(param) + {var + _cp3_=caml_call3(Runtime_ocaml_Runtime[60],0,4,0), + _cp4_=caml_call3(Runtime_ocaml_Runtime[60],60,0,0); + return caml_call2(Runtime_ocaml_Runtime[95],_cp4_,_cp3_)} + function _cpX_(param) + {var + _cpY_=caml_call3(Runtime_ocaml_Runtime[57],1951,12,31), + _cpZ_= + caml_call2 + (Runtime_ocaml_Runtime[120],date_naissance_assure,_cpY_), + _cp0_=caml_call3(Runtime_ocaml_Runtime[57],1951,7,1), + _cp1_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_naissance_assure,_cp0_), + _cp2_=caml_call2(Runtime_ocaml_Runtime[83],_cp1_,_cpZ_); + return caml_call2(Runtime_ocaml_Runtime[29],_nR_,_cp2_)} + return caml_call4(Runtime_ocaml_Runtime[63],_nS_,[0],_cpX_,_cpW_)}, + _cpK_= + function(param) + {function _cpS_(param) + {return caml_call3(Runtime_ocaml_Runtime[60],60,0,0)} + function _cpT_(param) + {var + _cpU_=caml_call3(Runtime_ocaml_Runtime[57],1951,7,1), + _cpV_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_naissance_assure,_cpU_); + return caml_call2(Runtime_ocaml_Runtime[29],_nT_,_cpV_)} + return caml_call4(Runtime_ocaml_Runtime[63],_nU_,[0],_cpT_,_cpS_)}, + _cpL_= + [0, + function(param) + {function _cpO_(param) + {return caml_call3(Runtime_ocaml_Runtime[60],62,0,0)} + function _cpP_(param) + {var + _cpQ_=caml_call3(Runtime_ocaml_Runtime[57],1955,1,1), + _cpR_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_naissance_assure,_cpQ_); + return caml_call2(Runtime_ocaml_Runtime[29],_nV_,_cpR_)} + return caml_call4(Runtime_ocaml_Runtime[63],_nW_,[0],_cpP_,_cpO_)}, + _cpK_, + _cpJ_, + _cpI_, + _cpH_, + _cpG_], + _cpM_=caml_call4(Runtime_ocaml_Runtime[63],_nX_,_cpL_,_cpF_,_cpE_)} + catch(_cpN_) + {_cpN_ = caml_wrap_exception(_cpN_); + if(_cpN_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_nK_]; + throw _cpN_} + var + age_ouverture_droit= + caml_call3 + (Runtime_ocaml_Runtime[28],_nY_,Runtime_ocaml_Runtime[17],_cpM_); + return [0,age_ouverture_droit]} + function impaye_depense_logement(impaye_depense_logement_in) + {var + mode_occupation=impaye_depense_logement_in[1], + aide_versee=impaye_depense_logement_in[2], + montant_apl=impaye_depense_logement_in[3], + montant_charges=impaye_depense_logement_in[4], + depense_logement=impaye_depense_logement_in[5], + montant_dette=impaye_depense_logement_in[6]; + try + {var + _com_= + function(param) + {switch(mode_occupation[0]) + {case 0:return _n0_; + case 1:return _n1_; + case 2:return _n2_; + case 3:return _n3_; + default:return _n4_}}, + _con_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_n5_,1)}, + _coo_=caml_call4(Runtime_ocaml_Runtime[63],_n6_,[0],_con_,_com_)} + catch(_cpD_) + {_cpD_ = caml_wrap_exception(_cpD_); + if(_cpD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_nZ_]; + throw _cpD_} + var + mode_occupation_impaye= + caml_call3 + (Runtime_ocaml_Runtime[28],_n7_,embed_mode_occupation_impaye,_coo_); + try + {var + _cop_=function(param){throw Runtime_ocaml_Runtime[2]}, + _coq_=function(param){return 0}, + _cor_= + [0, + function(param) + {function _cpw_(param){return depense_logement} + function _cpx_(param) + {var _cpC_=0 === mode_occupation_impaye[0]?1:0; + return caml_call2(Runtime_ocaml_Runtime[29],_n9_,_cpC_)} + var + _cpy_= + [0, + function(param) + {function _cpz_(param){return depense_logement} + function _cpA_(param) + {var _cpB_=0 === mode_occupation_impaye[0]?0:1; + return caml_call2(Runtime_ocaml_Runtime[29],_n__,_cpB_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_n$_,[0],_cpA_,_cpz_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_oa_,_cpy_,_cpx_,_cpw_)}], + _cos_=caml_call4(Runtime_ocaml_Runtime[63],_ob_,_cor_,_coq_,_cop_)} + catch(_cpv_) + {_cpv_ = caml_wrap_exception(_cpv_); + if(_cpv_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_n8_]; + throw _cpv_} + var + depense_logement_brute= + caml_call3 + (Runtime_ocaml_Runtime[28],_oc_,embed_depense_logement,_cos_); + try + {var + _cot_=function(param){throw Runtime_ocaml_Runtime[2]}, + _cou_=function(param){return 0}, + _cov_= + function(param) + {function _cpq_(param) + {switch(depense_logement[0]) + {case 0: + var + total_echeances=depense_logement[1], + _cpt_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$13), + _cpu_= + caml_call2(Runtime_ocaml_Runtime[104],montant_apl,_cpt_); + return [0, + caml_call2(Runtime_ocaml_Runtime[98],total_echeances,_cpu_)]; + case 1: + var mensualite=depense_logement[1]; + return [1, + caml_call2(Runtime_ocaml_Runtime[98],mensualite,montant_apl)]; + default:var loyer=depense_logement[1];return [2,loyer]}} + function _cpr_(param) + {var _cps_=0 === mode_occupation_impaye[0]?0:1; + return caml_call2(Runtime_ocaml_Runtime[29],_oe_,_cps_)} + return caml_call4(Runtime_ocaml_Runtime[63],_of_,[0],_cpr_,_cpq_)}, + _cow_= + [0, + function(param) + {function _cpn_(param) + {switch(depense_logement_brute[0]) + {case 0:var total=depense_logement_brute[1];return [0,total]; + case 1: + var mensualite=depense_logement_brute[1]; + return [1,mensualite]; + default: + var montant_loyer=depense_logement_brute[1]; + return [2, + caml_call2 + (Runtime_ocaml_Runtime[98],montant_loyer,montant_apl)]}} + function _cpo_(param) + {var _cpp_=0 === mode_occupation_impaye[0]?1:0; + return caml_call2(Runtime_ocaml_Runtime[29],_og_,_cpp_)} + return caml_call4(Runtime_ocaml_Runtime[63],_oh_,[0],_cpo_,_cpn_)}, + _cov_], + _cox_=caml_call4(Runtime_ocaml_Runtime[63],_oi_,_cow_,_cou_,_cot_)} + catch(_cpm_) + {_cpm_ = caml_wrap_exception(_cpm_); + if(_cpm_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_od_]; + throw _cpm_} + var + depense_logement_nette= + caml_call3 + (Runtime_ocaml_Runtime[28],_oj_,embed_depense_logement,_cox_); + try + {var + _coy_=function(param){throw Runtime_ocaml_Runtime[2]}, + _coz_=function(param){return 0}, + _coA_= + function(param) + {function _cpd_(param) + {switch(depense_logement_nette[0]) + {case 0: + var + echeance_pret_nette=depense_logement_nette[1], + _cpi_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$0), + _cpj_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$32), + _cpk_=caml_call2(Runtime_ocaml_Runtime[107],_cpj_,_cpi_); + return caml_call2 + (Runtime_ocaml_Runtime[104],echeance_pret_nette,_cpk_); + case 1: + var + mensualite_nette=depense_logement_nette[1], + _cpl_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$20); + return caml_call2 + (Runtime_ocaml_Runtime[104],mensualite_nette,_cpl_); + default:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$79)}} + function _cpe_(param) + {switch(aide_versee[0]) + {case 0:var _cpf_=0;break; + case 1:var _cpf_=0;break; + default:var _cpf_=1} + var + _cpg_=0 === mode_occupation_impaye[0]?0:1, + _cph_=caml_call2(Runtime_ocaml_Runtime[83],_cpg_,_cpf_); + return caml_call2(Runtime_ocaml_Runtime[29],_ol_,_cph_)} + return caml_call4(Runtime_ocaml_Runtime[63],_om_,[0],_cpe_,_cpd_)}, + _coB_= + function(param) + {function _co6_(param) + {switch(depense_logement_brute[0]) + {case 0: + var + echeance_pret_brute=depense_logement_brute[1], + _co$_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$1), + _cpa_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$33), + _cpb_=caml_call2(Runtime_ocaml_Runtime[107],_cpa_,_co$_); + return caml_call2 + (Runtime_ocaml_Runtime[104],echeance_pret_brute,_cpb_); + case 1: + var + mensualite_brute=depense_logement_brute[1], + _cpc_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$21); + return caml_call2 + (Runtime_ocaml_Runtime[104],mensualite_brute,_cpc_); + default:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$80)}} + function _co7_(param) + {switch(aide_versee[0]) + {case 0:var _co8_=0;break; + case 1:var _co8_=1;break; + default:var _co8_=0} + var + _co9_=0 === mode_occupation_impaye[0]?0:1, + _co__=caml_call2(Runtime_ocaml_Runtime[83],_co9_,_co8_); + return caml_call2(Runtime_ocaml_Runtime[29],_on_,_co__)} + return caml_call4(Runtime_ocaml_Runtime[63],_oo_,[0],_co7_,_co6_)}, + _coC_= + function(param) + {function _coZ_(param) + {switch(depense_logement_nette[0]) + {case 0:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$81); + case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$82); + default: + var + loyer_net=depense_logement_nette[1], + _co4_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$22), + _co5_= + caml_call2 + (Runtime_ocaml_Runtime[93],loyer_net,montant_charges); + return caml_call2(Runtime_ocaml_Runtime[104],_co5_,_co4_)}} + function _co0_(param) + {switch(aide_versee[0]) + {case 0:var _co1_=1;break; + case 1:var _co1_=0;break; + default:var _co1_=0} + var + _co2_=0 === mode_occupation_impaye[0]?1:0, + _co3_=caml_call2(Runtime_ocaml_Runtime[83],_co2_,_co1_); + return caml_call2(Runtime_ocaml_Runtime[29],_op_,_co3_)} + return caml_call4(Runtime_ocaml_Runtime[63],_oq_,[0],_co0_,_coZ_)}, + _coD_= + [0, + function(param) + {function _coS_(param) + {switch(depense_logement_brute[0]) + {case 0:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$83); + case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$84); + default: + var + loyer_brut=depense_logement_brute[1], + _coX_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$23), + _coY_= + caml_call2 + (Runtime_ocaml_Runtime[93],loyer_brut,montant_charges); + return caml_call2(Runtime_ocaml_Runtime[104],_coY_,_coX_)}} + function _coT_(param) + {switch(aide_versee[0]) + {case 0:var _coU_=0;break; + case 1:var _coU_=1;break; + default:var _coU_=0} + var + _coV_=0 === mode_occupation_impaye[0]?1:0, + _coW_=caml_call2(Runtime_ocaml_Runtime[83],_coV_,_coU_); + return caml_call2(Runtime_ocaml_Runtime[29],_or_,_coW_)} + return caml_call4(Runtime_ocaml_Runtime[63],_os_,[0],_coT_,_coS_)}, + _coC_, + _coB_, + _coA_], + _coE_=caml_call4(Runtime_ocaml_Runtime[63],_ot_,_coD_,_coz_,_coy_)} + catch(_coR_) + {_coR_ = caml_wrap_exception(_coR_); + if(_coR_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ok_]; + throw _coR_} + var + seuil_impaye_depense_de_logeme= + caml_call3 + (Runtime_ocaml_Runtime[28],_ou_,Runtime_ocaml_Runtime[13],_coE_); + try + {var + _coF_=function(param){throw Runtime_ocaml_Runtime[2]}, + _coG_=function(param){return 0}, + _coH_= + [0, + function(param) + {function _coK_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[128], + montant_dette, + seuil_impaye_depense_de_logeme) + ?montant_dette + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$85)} + function _coL_(param) + {var _coQ_=0 === mode_occupation_impaye[0]?1:0; + return caml_call2(Runtime_ocaml_Runtime[29],_ow_,_coQ_)} + var + _coM_= + [0, + function(param) + {function _coN_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[128], + montant_dette, + seuil_impaye_depense_de_logeme) + ?montant_dette + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$86)} + function _coO_(param) + {var _coP_=0 === mode_occupation_impaye[0]?0:1; + return caml_call2(Runtime_ocaml_Runtime[29],_ox_,_coP_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_oy_,[0],_coO_,_coN_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_oz_,_coM_,_coL_,_coK_)}], + _coI_=caml_call4(Runtime_ocaml_Runtime[63],_oA_,_coH_,_coG_,_coF_)} + catch(_coJ_) + {_coJ_ = caml_wrap_exception(_coJ_); + if(_coJ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ov_]; + throw _coJ_} + var + montant_impaye= + caml_call3 + (Runtime_ocaml_Runtime[28],_oB_,Runtime_ocaml_Runtime[13],_coI_); + return [0,montant_impaye]} + function base_mensuelle_allocations_fam$5(base_mensuelle_allocations_fam) + {var date_courante=base_mensuelle_allocations_fam[1]; + try + {var + _cnO_=function(param){throw Runtime_ocaml_Runtime[2]}, + _cnP_=function(param){return 0}, + _cnQ_= + function(param) + {function _coi_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_42228$0)} + function _coj_(param) + {var + _cok_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), + _col_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cok_); + return caml_call2(Runtime_ocaml_Runtime[29],_oD_,_col_)} + return caml_call4(Runtime_ocaml_Runtime[63],_oE_,[0],_coj_,_coi_)}, + _cnR_= + function(param) + {function _cob_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_41481$0)} + function _coc_(param) + {var + _cod_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), + _coe_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cod_), + _cof_=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), + _cog_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cof_), + _coh_=caml_call2(Runtime_ocaml_Runtime[83],_cog_,_coe_); + return caml_call2(Runtime_ocaml_Runtime[29],_oF_,_coh_)} + return caml_call4(Runtime_ocaml_Runtime[63],_oG_,[0],_coc_,_cob_)}, + _cnS_= + function(param) + {function _cn6_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_41440$0)} + function _cn7_(param) + {var + _cn8_=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), + _cn9_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cn8_), + _cn__=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), + _cn$_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cn__), + _coa_=caml_call2(Runtime_ocaml_Runtime[83],_cn$_,_cn9_); + return caml_call2(Runtime_ocaml_Runtime[29],_oH_,_coa_)} + return caml_call4(Runtime_ocaml_Runtime[63],_oI_,[0],_cn7_,_cn6_)}, + _cnT_= + [0, + function(param) + {function _cnZ_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_41316$0)} + function _cn0_(param) + {var + _cn1_=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), + _cn2_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cn1_), + _cn3_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), + _cn4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cn3_), + _cn5_=caml_call2(Runtime_ocaml_Runtime[83],_cn4_,_cn2_); + return caml_call2(Runtime_ocaml_Runtime[29],_oJ_,_cn5_)} + return caml_call4(Runtime_ocaml_Runtime[63],_oK_,[0],_cn0_,_cnZ_)}, + _cnS_, + _cnR_, + _cnQ_], + _cnU_=caml_call4(Runtime_ocaml_Runtime[63],_oL_,_cnT_,_cnP_,_cnO_)} + catch(_cnY_) + {_cnY_ = caml_wrap_exception(_cnY_); + if(_cnY_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_oC_]; + throw _cnY_} + var + montant= + caml_call3 + (Runtime_ocaml_Runtime[28],_oM_,Runtime_ocaml_Runtime[13],_cnU_); + try + {var + _cnV_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), + _cnW_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cnV_)} + catch(_cnX_) + {_cnX_ = caml_wrap_exception(_cnX_); + if(_cnX_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_oN_]; + throw _cnX_} + if(_cnW_)return [0,montant]; + throw [0,Runtime_ocaml_Runtime[3],_oO_]} + function verification_age_inferieur_ou_$5(verification_age_inferieur_ou_) + {var + date_naissance=verification_age_inferieur_ou_[1], + date_courante=verification_age_inferieur_ou_[2], + annees=verification_age_inferieur_ou_[3]; + try + {var + _cnJ_= + function(param) + {var + _cnN_= + caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); + return caml_call2(Runtime_ocaml_Runtime[120],_cnN_,date_courante)}, + _cnK_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_oQ_,1)}, + _cnL_=caml_call4(Runtime_ocaml_Runtime[63],_oR_,[0],_cnK_,_cnJ_)} + catch(_cnM_) + {_cnM_ = caml_wrap_exception(_cnM_); + if(_cnM_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_oP_]; + throw _cnM_} + var + est_inferieur_ou_egal= + caml_call3 + (Runtime_ocaml_Runtime[28],_oS_,Runtime_ocaml_Runtime[12],_cnL_); + return [0,est_inferieur_ou_egal]} + function verification_age_superieur_a$1(verification_age_superieur_a_i) + {var + date_naissance=verification_age_superieur_a_i[1], + date_courante=verification_age_superieur_a_i[2], + annees=verification_age_superieur_a_i[3]; + try + {var + _cnE_= + function(param) + {var + _cnI_= + caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); + return caml_call2(Runtime_ocaml_Runtime[125],_cnI_,date_courante)}, + _cnF_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_oU_,1)}, + _cnG_=caml_call4(Runtime_ocaml_Runtime[63],_oV_,[0],_cnF_,_cnE_)} + catch(_cnH_) + {_cnH_ = caml_wrap_exception(_cnH_); + if(_cnH_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_oT_]; + throw _cnH_} + var + est_superieur= + caml_call3 + (Runtime_ocaml_Runtime[28],_oW_,Runtime_ocaml_Runtime[12],_cnG_); + return [0,est_superieur]} + function smic$1(smic_in) + {var date_courante=smic_in[1],residence=smic_in[2]; + try + {var + _cjV_=function(param){throw Runtime_ocaml_Runtime[2]}, + _cjW_=function(param){return 0}, + _cjX_= + function(param) + {function _cny_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_851$0)} + function _cnz_(param) + {var + _cnA_=caml_call2(Runtime_ocaml_Runtime[86],residence,_oY_), + _cnB_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _cnC_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cnB_), + _cnD_=caml_call2(Runtime_ocaml_Runtime[83],_cnC_,_cnA_); + return caml_call2(Runtime_ocaml_Runtime[29],_oZ_,_cnD_)} + return caml_call4(Runtime_ocaml_Runtime[63],_o0_,[0],_cnz_,_cny_)}, + _cjY_= + function(param) + {function _cne_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1127$0)} + function _cnf_(param) + {var + _cng_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o1_), + _cnh_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o2_), + _cni_=caml_call2(Runtime_ocaml_Runtime[84],_cnh_,_cng_), + _cnj_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o3_), + _cnk_=caml_call2(Runtime_ocaml_Runtime[84],_cnj_,_cni_), + _cnl_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o4_), + _cnm_=caml_call2(Runtime_ocaml_Runtime[84],_cnl_,_cnk_), + _cnn_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o5_), + _cno_=caml_call2(Runtime_ocaml_Runtime[84],_cnn_,_cnm_), + _cnp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o6_), + _cnq_=caml_call2(Runtime_ocaml_Runtime[84],_cnp_,_cno_), + _cnr_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o7_), + _cns_=caml_call2(Runtime_ocaml_Runtime[84],_cnr_,_cnq_), + _cnt_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o8_), + _cnu_=caml_call2(Runtime_ocaml_Runtime[84],_cnt_,_cns_), + _cnv_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _cnw_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cnv_), + _cnx_=caml_call2(Runtime_ocaml_Runtime[83],_cnw_,_cnu_); + return caml_call2(Runtime_ocaml_Runtime[29],_o9_,_cnx_)} + return caml_call4(Runtime_ocaml_Runtime[63],_o__,[0],_cnf_,_cne_)}, + _cjZ_= + function(param) + {function _cm7_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_835$0)} + function _cm8_(param) + {var + _cm9_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o$_), + _cm__=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), + _cm$_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cm__), + _cna_=caml_call2(Runtime_ocaml_Runtime[83],_cm$_,_cm9_), + _cnb_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), + _cnc_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cnb_), + _cnd_=caml_call2(Runtime_ocaml_Runtime[83],_cnc_,_cna_); + return caml_call2(Runtime_ocaml_Runtime[29],_pa_,_cnd_)} + return caml_call4(Runtime_ocaml_Runtime[63],_pb_,[0],_cm8_,_cm7_)}, + _cj0_= + function(param) + {function _cmK_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1107$0)} + function _cmL_(param) + {var + _cmM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pc_), + _cmN_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pd_), + _cmO_=caml_call2(Runtime_ocaml_Runtime[84],_cmN_,_cmM_), + _cmP_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pe_), + _cmQ_=caml_call2(Runtime_ocaml_Runtime[84],_cmP_,_cmO_), + _cmR_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pf_), + _cmS_=caml_call2(Runtime_ocaml_Runtime[84],_cmR_,_cmQ_), + _cmT_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pg_), + _cmU_=caml_call2(Runtime_ocaml_Runtime[84],_cmT_,_cmS_), + _cmV_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ph_), + _cmW_=caml_call2(Runtime_ocaml_Runtime[84],_cmV_,_cmU_), + _cmX_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pi_), + _cmY_=caml_call2(Runtime_ocaml_Runtime[84],_cmX_,_cmW_), + _cmZ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pj_), + _cm0_=caml_call2(Runtime_ocaml_Runtime[84],_cmZ_,_cmY_), + _cm1_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), + _cm2_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cm1_), + _cm3_=caml_call2(Runtime_ocaml_Runtime[83],_cm2_,_cm0_), + _cm4_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), + _cm5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cm4_), + _cm6_=caml_call2(Runtime_ocaml_Runtime[83],_cm5_,_cm3_); + return caml_call2(Runtime_ocaml_Runtime[29],_pk_,_cm6_)} + return caml_call4(Runtime_ocaml_Runtime[63],_pl_,[0],_cmL_,_cmK_)}, + _cj1_= + function(param) + {function _cmB_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_819$0)} + function _cmC_(param) + {var + _cmD_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pm_), + _cmE_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), + _cmF_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cmE_), + _cmG_=caml_call2(Runtime_ocaml_Runtime[83],_cmF_,_cmD_), + _cmH_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), + _cmI_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cmH_), + _cmJ_=caml_call2(Runtime_ocaml_Runtime[83],_cmI_,_cmG_); + return caml_call2(Runtime_ocaml_Runtime[29],_pn_,_cmJ_)} + return caml_call4(Runtime_ocaml_Runtime[63],_po_,[0],_cmC_,_cmB_)}, + _cj2_= + function(param) + {function _cme_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1085$0)} + function _cmf_(param) + {var + _cmg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pp_), + _cmh_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pq_), + _cmi_=caml_call2(Runtime_ocaml_Runtime[84],_cmh_,_cmg_), + _cmj_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pr_), + _cmk_=caml_call2(Runtime_ocaml_Runtime[84],_cmj_,_cmi_), + _cml_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ps_), + _cmm_=caml_call2(Runtime_ocaml_Runtime[84],_cml_,_cmk_), + _cmn_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pt_), + _cmo_=caml_call2(Runtime_ocaml_Runtime[84],_cmn_,_cmm_), + _cmp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pu_), + _cmq_=caml_call2(Runtime_ocaml_Runtime[84],_cmp_,_cmo_), + _cmr_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pv_), + _cms_=caml_call2(Runtime_ocaml_Runtime[84],_cmr_,_cmq_), + _cmt_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pw_), + _cmu_=caml_call2(Runtime_ocaml_Runtime[84],_cmt_,_cms_), + _cmv_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), + _cmw_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cmv_), + _cmx_=caml_call2(Runtime_ocaml_Runtime[83],_cmw_,_cmu_), + _cmy_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), + _cmz_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cmy_), + _cmA_=caml_call2(Runtime_ocaml_Runtime[83],_cmz_,_cmx_); + return caml_call2(Runtime_ocaml_Runtime[29],_px_,_cmA_)} + return caml_call4(Runtime_ocaml_Runtime[63],_py_,[0],_cmf_,_cme_)}, + _cj3_= + function(param) + {function _cl7_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_798$0)} + function _cl8_(param) + {var + _cl9_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pz_), + _cl__=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), + _cl$_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cl__), + _cma_=caml_call2(Runtime_ocaml_Runtime[83],_cl$_,_cl9_), + _cmb_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cmc_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cmb_), + _cmd_=caml_call2(Runtime_ocaml_Runtime[83],_cmc_,_cma_); + return caml_call2(Runtime_ocaml_Runtime[29],_pA_,_cmd_)} + return caml_call4(Runtime_ocaml_Runtime[63],_pB_,[0],_cl8_,_cl7_)}, + _cj4_= + function(param) + {function _clK_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1057$0)} + function _clL_(param) + {var + _clM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pC_), + _clN_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pD_), + _clO_=caml_call2(Runtime_ocaml_Runtime[84],_clN_,_clM_), + _clP_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pE_), + _clQ_=caml_call2(Runtime_ocaml_Runtime[84],_clP_,_clO_), + _clR_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pF_), + _clS_=caml_call2(Runtime_ocaml_Runtime[84],_clR_,_clQ_), + _clT_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pG_), + _clU_=caml_call2(Runtime_ocaml_Runtime[84],_clT_,_clS_), + _clV_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pH_), + _clW_=caml_call2(Runtime_ocaml_Runtime[84],_clV_,_clU_), + _clX_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pI_), + _clY_=caml_call2(Runtime_ocaml_Runtime[84],_clX_,_clW_), + _clZ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pJ_), + _cl0_=caml_call2(Runtime_ocaml_Runtime[84],_clZ_,_clY_), + _cl1_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), + _cl2_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cl1_), + _cl3_=caml_call2(Runtime_ocaml_Runtime[83],_cl2_,_cl0_), + _cl4_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cl5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cl4_), + _cl6_=caml_call2(Runtime_ocaml_Runtime[83],_cl5_,_cl3_); + return caml_call2(Runtime_ocaml_Runtime[29],_pK_,_cl6_)} + return caml_call4(Runtime_ocaml_Runtime[63],_pL_,[0],_clL_,_clK_)}, + _cj5_= + function(param) + {function _clB_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_774$0)} + function _clC_(param) + {var + _clD_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pM_), + _clE_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), + _clF_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_clE_), + _clG_=caml_call2(Runtime_ocaml_Runtime[83],_clF_,_clD_), + _clH_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _clI_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_clH_), + _clJ_=caml_call2(Runtime_ocaml_Runtime[83],_clI_,_clG_); + return caml_call2(Runtime_ocaml_Runtime[29],_pN_,_clJ_)} + return caml_call4(Runtime_ocaml_Runtime[63],_pO_,[0],_clC_,_clB_)}, + _cj6_= + function(param) + {function _cle_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1025$0)} + function _clf_(param) + {var + _clg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pP_), + _clh_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pQ_), + _cli_=caml_call2(Runtime_ocaml_Runtime[84],_clh_,_clg_), + _clj_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pR_), + _clk_=caml_call2(Runtime_ocaml_Runtime[84],_clj_,_cli_), + _cll_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pS_), + _clm_=caml_call2(Runtime_ocaml_Runtime[84],_cll_,_clk_), + _cln_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pT_), + _clo_=caml_call2(Runtime_ocaml_Runtime[84],_cln_,_clm_), + _clp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pU_), + _clq_=caml_call2(Runtime_ocaml_Runtime[84],_clp_,_clo_), + _clr_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pV_), + _cls_=caml_call2(Runtime_ocaml_Runtime[84],_clr_,_clq_), + _clt_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pW_), + _clu_=caml_call2(Runtime_ocaml_Runtime[84],_clt_,_cls_), + _clv_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), + _clw_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_clv_), + _clx_=caml_call2(Runtime_ocaml_Runtime[83],_clw_,_clu_), + _cly_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _clz_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cly_), + _clA_=caml_call2(Runtime_ocaml_Runtime[83],_clz_,_clx_); + return caml_call2(Runtime_ocaml_Runtime[29],_pX_,_clA_)} + return caml_call4(Runtime_ocaml_Runtime[63],_pY_,[0],_clf_,_cle_)}, + _cj7_= + function(param) + {function _ck7_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_766$0)} + function _ck8_(param) + {var + _ck9_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pZ_), + _ck__=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), + _ck$_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ck__), + _cla_=caml_call2(Runtime_ocaml_Runtime[83],_ck$_,_ck9_), + _clb_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _clc_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_clb_), + _cld_=caml_call2(Runtime_ocaml_Runtime[83],_clc_,_cla_); + return caml_call2(Runtime_ocaml_Runtime[29],_p0_,_cld_)} + return caml_call4(Runtime_ocaml_Runtime[63],_p1_,[0],_ck8_,_ck7_)}, + _cj8_= + function(param) + {function _ckK_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1015$0)} + function _ckL_(param) + {var + _ckM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p2_), + _ckN_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p3_), + _ckO_=caml_call2(Runtime_ocaml_Runtime[84],_ckN_,_ckM_), + _ckP_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p4_), + _ckQ_=caml_call2(Runtime_ocaml_Runtime[84],_ckP_,_ckO_), + _ckR_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p5_), + _ckS_=caml_call2(Runtime_ocaml_Runtime[84],_ckR_,_ckQ_), + _ckT_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p6_), + _ckU_=caml_call2(Runtime_ocaml_Runtime[84],_ckT_,_ckS_), + _ckV_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p7_), + _ckW_=caml_call2(Runtime_ocaml_Runtime[84],_ckV_,_ckU_), + _ckX_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p8_), + _ckY_=caml_call2(Runtime_ocaml_Runtime[84],_ckX_,_ckW_), + _ckZ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p9_), + _ck0_=caml_call2(Runtime_ocaml_Runtime[84],_ckZ_,_ckY_), + _ck1_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), + _ck2_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ck1_), + _ck3_=caml_call2(Runtime_ocaml_Runtime[83],_ck2_,_ck0_), + _ck4_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _ck5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ck4_), + _ck6_=caml_call2(Runtime_ocaml_Runtime[83],_ck5_,_ck3_); + return caml_call2(Runtime_ocaml_Runtime[29],_p__,_ck6_)} + return caml_call4(Runtime_ocaml_Runtime[63],_p$_,[0],_ckL_,_ckK_)}, + _cj9_= + function(param) + {function _ckB_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_757$0)} + function _ckC_(param) + {var + _ckD_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qa_), + _ckE_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), + _ckF_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ckE_), + _ckG_=caml_call2(Runtime_ocaml_Runtime[83],_ckF_,_ckD_), + _ckH_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _ckI_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ckH_), + _ckJ_=caml_call2(Runtime_ocaml_Runtime[83],_ckI_,_ckG_); + return caml_call2(Runtime_ocaml_Runtime[29],_qb_,_ckJ_)} + return caml_call4(Runtime_ocaml_Runtime[63],_qc_,[0],_ckC_,_ckB_)}, + _cj__= + [0, + function(param) + {function _cke_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1003$0)} + function _ckf_(param) + {var + _ckg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qd_), + _ckh_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qe_), + _cki_=caml_call2(Runtime_ocaml_Runtime[84],_ckh_,_ckg_), + _ckj_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qf_), + _ckk_=caml_call2(Runtime_ocaml_Runtime[84],_ckj_,_cki_), + _ckl_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qg_), + _ckm_=caml_call2(Runtime_ocaml_Runtime[84],_ckl_,_ckk_), + _ckn_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qh_), + _cko_=caml_call2(Runtime_ocaml_Runtime[84],_ckn_,_ckm_), + _ckp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qi_), + _ckq_=caml_call2(Runtime_ocaml_Runtime[84],_ckp_,_cko_), + _ckr_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qj_), + _cks_=caml_call2(Runtime_ocaml_Runtime[84],_ckr_,_ckq_), + _ckt_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qk_), + _cku_=caml_call2(Runtime_ocaml_Runtime[84],_ckt_,_cks_), + _ckv_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), + _ckw_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ckv_), + _ckx_=caml_call2(Runtime_ocaml_Runtime[83],_ckw_,_cku_), + _cky_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _ckz_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cky_), + _ckA_=caml_call2(Runtime_ocaml_Runtime[83],_ckz_,_ckx_); + return caml_call2(Runtime_ocaml_Runtime[29],_ql_,_ckA_)} + return caml_call4(Runtime_ocaml_Runtime[63],_qm_,[0],_ckf_,_cke_)}, + _cj9_, + _cj8_, + _cj7_, + _cj6_, + _cj5_, + _cj4_, + _cj3_, + _cj2_, + _cj1_, + _cj0_, + _cjZ_, + _cjY_, + _cjX_], + _cj$_=caml_call4(Runtime_ocaml_Runtime[63],_qn_,_cj__,_cjW_,_cjV_)} + catch(_ckd_) + {_ckd_ = caml_wrap_exception(_ckd_); + if(_ckd_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_oX_]; + throw _ckd_} + var + brut_horaire= + caml_call3 + (Runtime_ocaml_Runtime[28],_qo_,Runtime_ocaml_Runtime[13],_cj$_); + try + {var + _cka_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _ckb_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cka_)} + catch(_ckc_) + {_ckc_ = caml_wrap_exception(_ckc_); + if(_ckc_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_qp_]; + throw _ckc_} + if(_ckb_)return [0,brut_horaire]; + throw [0,Runtime_ocaml_Runtime[3],_qq_]} + function arrondi_centaine_superieure(ressources_menage) + {var + _cjP_=caml_call1(Runtime_ocaml_Runtime[39],cst_100), + _cjQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_49), + _cjR_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_01), + _cjS_=caml_call2(Runtime_ocaml_Runtime[104],ressources_menage,_cjR_), + _cjT_=caml_call2(Runtime_ocaml_Runtime[93],_cjS_,_cjQ_), + _cjU_=caml_call1(Runtime_ocaml_Runtime[77],_cjT_); + return caml_call2(Runtime_ocaml_Runtime[104],_cjU_,_cjP_)} + function traitement_nul_tout_le_temps(aide_finale) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$87)} + function calcul_aide_personnalisee_loge(calcul_aide_personnalisee_loge) + {var + loyer_principal_base=calcul_aide_personnalisee_loge[1], + ressources_menage_arrondies=calcul_aide_personnalisee_loge[2], + beneficiaire_aide_adulte_ou_en=calcul_aide_personnalisee_loge[3], + date_courante=calcul_aide_personnalisee_loge[4], + nombre_personnes_a_charge=calcul_aide_personnalisee_loge[5], + situation_familiale_calcul_apl=calcul_aide_personnalisee_loge[6], + zone=calcul_aide_personnalisee_loge[7], + logement_est_chambre=calcul_aide_personnalisee_loge[8], + agees_ou_handicap_adultes_hebe=calcul_aide_personnalisee_loge[9], + type_aide=calcul_aide_personnalisee_loge[10], + colocation=calcul_aide_personnalisee_loge[11], + reduction_loyer_solidarite=calcul_aide_personnalisee_loge[12], + logement_meuble_d842_2=calcul_aide_personnalisee_loge[13], + residence=calcul_aide_personnalisee_loge[14]; + try + {var + _bUr_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_98)}, + _bUs_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qs_,1)}, + _bUt_=caml_call4(Runtime_ocaml_Runtime[63],_qt_,[0],_bUs_,_bUr_)} + catch(_cjO_) + {_cjO_ = caml_wrap_exception(_cjO_); + if(_cjO_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_qr_]; + throw _cjO_} + var + fraction_l832_3= + caml_call3 + (Runtime_ocaml_Runtime[28],_qu_,Runtime_ocaml_Runtime[15],_bUt_); + try + {var + _bUu_=function(param){return date_courante}, + _bUv_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qw_,1)}, + _bUw_=caml_call4(Runtime_ocaml_Runtime[63],_qx_,[0],_bUv_,_bUu_), + contributions_sociales_dot_dat= + caml_call3 + (Runtime_ocaml_Runtime[28],_qy_,Runtime_ocaml_Runtime[16],_bUw_)} + catch(_cjN_) + {_cjN_ = caml_wrap_exception(_cjN_); + if(_cjN_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_qv_]; + throw _cjN_} + var + _bUx_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_qz_,contributions_sociales_aides_p), + [0,contributions_sociales_dot_dat]), + result=caml_call2(Runtime_ocaml_Runtime[27],_qA_,_bUx_), + contributions_sociales_dot_mon=result[1]; + try + {var + _bUy_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_500)}, + _bUz_= + function(param) + {var + _cjL_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _cjM_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cjL_); + return caml_call2(Runtime_ocaml_Runtime[29],_qC_,_cjM_)}, + _bUA_=caml_call4(Runtime_ocaml_Runtime[63],_qD_,[0],_bUz_,_bUy_)} + catch(_cjK_) + {_cjK_ = caml_wrap_exception(_cjK_); + if(_cjK_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_qB_]; + throw _cjK_} + var + montant_forfaitaire_d823_16= + caml_call3 + (Runtime_ocaml_Runtime[28],_qE_,Runtime_ocaml_Runtime[13],_bUA_); + try + {var + _bUB_=function(param){throw Runtime_ocaml_Runtime[2]}, + _bUC_=function(param){return 0}, + _bUD_= + [0, + function(param) + {function _cjq_(param) + {return caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} + function _cjr_(param) + {var + _cjI_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cjJ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cjI_); + return caml_call2(Runtime_ocaml_Runtime[29],_qG_,_cjJ_)} + var + _cjs_= + [0, + function(param) + {function _cjt_(param) + {return caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} + function _cju_(param) + {var + _cjD_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cjE_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cjD_), + _cjF_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cjG_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cjF_), + _cjH_=caml_call2(Runtime_ocaml_Runtime[83],_cjG_,_cjE_); + return caml_call2(Runtime_ocaml_Runtime[29],_qH_,_cjH_)} + var + _cjv_= + [0, + function(param) + {function _cjw_(param) + {return caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} + function _cjx_(param) + {var + _cjy_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _cjz_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cjy_), + _cjA_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cjB_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cjA_), + _cjC_=caml_call2(Runtime_ocaml_Runtime[83],_cjB_,_cjz_); + return caml_call2(Runtime_ocaml_Runtime[29],_qI_,_cjC_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_qJ_,[0],_cjx_,_cjw_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_qK_,_cjv_,_cju_,_cjt_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_qL_,_cjs_,_cjr_,_cjq_)}], + _bUE_=caml_call4(Runtime_ocaml_Runtime[63],_qM_,_bUD_,_bUC_,_bUB_)} + catch(_cjp_) + {_cjp_ = caml_wrap_exception(_cjp_); + if(_cjp_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_qF_]; + throw _cjp_} + var + multiplicateur_majoration_char= + caml_call3 + (Runtime_ocaml_Runtime[28],_qN_,Runtime_ocaml_Runtime[15],_bUE_); + try + {var + _bUF_= + function(param) + {switch(type_aide[0]) + {case 0:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$88); + case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_1000); + default:return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$0)}}, + _bUG_= + function(param) + {var + _cjn_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _cjo_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cjn_); + return caml_call2(Runtime_ocaml_Runtime[29],_qP_,_cjo_)}, + _bUH_=caml_call4(Runtime_ocaml_Runtime[63],_qQ_,[0],_bUG_,_bUF_)} + catch(_cjm_) + {_cjm_ = caml_wrap_exception(_cjm_); + if(_cjm_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_qO_]; + throw _cjm_} + var + montant_minimal_aide_d823_16= + caml_call3 + (Runtime_ocaml_Runtime[28],_qR_,Runtime_ocaml_Runtime[13],_bUH_); + try + {var + _bUI_= + function(param) + {if(! logement_meuble_d842_2)return loyer_principal_base; + var + _cjj_=caml_call1(Runtime_ocaml_Runtime[39],cst_3$9), + _cjk_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$24), + _cjl_=caml_call2(Runtime_ocaml_Runtime[107],_cjk_,_cjj_); + return caml_call2 + (Runtime_ocaml_Runtime[104],loyer_principal_base,_cjl_)}, + _bUJ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qT_,1)}, + _bUK_=caml_call4(Runtime_ocaml_Runtime[63],_qU_,[0],_bUJ_,_bUI_)} + catch(_cji_) + {_cji_ = caml_wrap_exception(_cji_); + if(_cji_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_qS_]; + throw _cji_} + var + loyer_principal_avec_reduction= + caml_call3 + (Runtime_ocaml_Runtime[28],_qV_,Runtime_ocaml_Runtime[13],_bUK_); + try + {var + _bUL_= + function(param) + {function _cik_(param){throw Runtime_ocaml_Runtime[2]} + function _cil_(param){return 0} + var + _cim_= + [0, + function(param) + {function _cin_(param) + {var _ci7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$89); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ci7_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0283) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0315); + var _ci8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ci8_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_027); + var _ci9_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ci9_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238); + var _ci__=caml_call1(Runtime_ocaml_Runtime[46],cst_3$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ci__)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0201); + var _ci$_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$5); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ci$_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0185); + var _cja_=caml_call1(Runtime_ocaml_Runtime[46],cst_5); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cja_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0179); + var _cjb_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$2); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cjb_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173); + var + _cjc_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$3), + _cjd_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cjc_), + _cje_=caml_call1(Runtime_ocaml_Runtime[69],_cjd_), + _cjf_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006), + _cjg_=caml_call2(Runtime_ocaml_Runtime[103],_cjf_,_cje_), + _cjh_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$0); + return caml_call2(Runtime_ocaml_Runtime[97],_cjh_,_cjg_)} + function _cio_(param) + {var + _ci5_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _ci6_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ci5_); + return caml_call2(Runtime_ocaml_Runtime[29],_qX_,_ci6_)} + var + _cip_= [0, - function(param){ - function _b3e_(param){ - var _b3T_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$26); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3T_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$1) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$1); - var _b3U_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$10); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3U_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$4); - var _b3V_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$12); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3V_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$1); - var _b3W_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$11); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3W_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$1); - var _b3X_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$10); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3X_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$1); - var _b3Y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$4); - return caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3Y_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$1) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$1); - } - function _b3f_(param){ - switch(residence[0]){ - case 0: - var _b3M_ = 1; break; - case 1: - var _b3M_ = 0; break; - case 2: - var _b3M_ = 1; break; - case 3: - var _b3M_ = 1; break; - case 4: - var _b3M_ = 1; break; - case 5: - var _b3M_ = 1; break; - case 6: - var _b3M_ = 0; break; - case 7: - var _b3M_ = 0; break; - default: var _b3M_ = 1; - } + function(param) + {function _ciq_(param) + {var _ciS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciS_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0283$0) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0315$0); + var _ciT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciT_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_027$0); + var _ciU_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciU_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$0); + var _ciV_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciV_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0201$0); + var _ciW_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$6); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciW_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0185$0); + var _ciX_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$0); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciX_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0179$0); + var _ciY_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$4); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciY_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$1); + var + _ciZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$5), + _ci0_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ciZ_), + _ci1_=caml_call1(Runtime_ocaml_Runtime[69],_ci0_), + _ci2_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006$0), + _ci3_=caml_call2(Runtime_ocaml_Runtime[103],_ci2_,_ci1_), + _ci4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$2); + return caml_call2(Runtime_ocaml_Runtime[97],_ci4_,_ci3_)} + function _cir_(param) + {var + _ciN_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _ciO_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ciN_), + _ciP_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _ciQ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ciP_), + _ciR_=caml_call2(Runtime_ocaml_Runtime[83],_ciQ_,_ciO_); + return caml_call2(Runtime_ocaml_Runtime[29],_qY_,_ciR_)} var - _b3N_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _b3O_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b3N_), - _b3P_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b3Q_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b3P_), - _b3R_ = caml_call2(Runtime_ocaml_Runtime[83], _b3Q_, _b3O_), - _b3S_ = caml_call2(Runtime_ocaml_Runtime[83], _b3R_, _b3M_); - return caml_call2(Runtime_ocaml_Runtime[29], _fs_, _b3S_); - } - var - _b3g_ = + _cis_= [0, - function(param){ - function _b3h_(param){ - var _b3G_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$27); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3G_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$2) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$2); - var _b3H_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$11); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3H_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$5); - var _b3I_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$13); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3I_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$2); - var _b3J_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$12); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3J_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$2); - var _b3K_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$11); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3K_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$2); - var _b3L_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$5); - return caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3L_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$2) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$2); - } - function _b3i_(param){ - switch(residence[0]){ - case 0: - var _b3z_ = 1; break; - case 1: - var _b3z_ = 0; break; - case 2: - var _b3z_ = 1; break; - case 3: - var _b3z_ = 1; break; - case 4: - var _b3z_ = 1; break; - case 5: - var _b3z_ = 1; break; - case 6: - var _b3z_ = 0; break; - case 7: - var _b3z_ = 0; break; - default: var _b3z_ = 1; - } - var - _b3A_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b3B_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b3A_), - _b3C_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _b3D_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b3C_), - _b3E_ = caml_call2(Runtime_ocaml_Runtime[83], _b3D_, _b3B_), - _b3F_ = caml_call2(Runtime_ocaml_Runtime[83], _b3E_, _b3z_); - return caml_call2(Runtime_ocaml_Runtime[29], _ft_, _b3F_); - } - var - _b3j_ = - [0, - function(param){ - function _b3k_(param){ - var _b3t_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3t_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$3) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$3); - var _b3u_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$12); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3u_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$6); - var _b3v_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$14); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3v_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$3); - var _b3w_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$13); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3w_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$3); - var _b3x_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$12); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3x_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$3); - var _b3y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$6); - return caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b3y_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$3) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$3); - } - function _b3l_(param){ - switch(residence[0]){ - case 0: - var _b3m_ = 1; break; - case 1: - var _b3m_ = 0; break; - case 2: - var _b3m_ = 1; break; - case 3: - var _b3m_ = 1; break; - case 4: - var _b3m_ = 1; break; - case 5: - var _b3m_ = 1; break; - case 6: - var _b3m_ = 0; break; - case 7: - var _b3m_ = 0; break; - default: var _b3m_ = 1; - } - var - _b3n_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b3o_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b3n_), - _b3p_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _b3q_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b3p_), - _b3r_ = caml_call2(Runtime_ocaml_Runtime[83], _b3q_, _b3o_), - _b3s_ = caml_call2(Runtime_ocaml_Runtime[83], _b3r_, _b3m_); - return caml_call2(Runtime_ocaml_Runtime[29], _fu_, _b3s_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fv_, [0], _b3l_, _b3k_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fw_, _b3j_, _b3i_, _b3h_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fx_, _b3g_, _b3f_, _b3e_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fy_, _b3d_, _b3c_, _b3b_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fz_, _b3a_, _b2$_, _b2__); - } - var - _b2P_ = - [0, - function(param){ - function _b2Q_(param){ - var _b2W_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b2W_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$4) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$4); - var _b2X_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$13); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b2X_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$7); - var _b2Y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$15); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b2Y_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$4); - var _b2Z_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$14); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b2Z_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$4); - var _b20_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$13); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b20_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$4); - var _b21_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b21_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$4); - var _b22_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$8); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b22_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$4); - var _b23_ = caml_call1(Runtime_ocaml_Runtime[46], cst_7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _b23_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0167); - var - _b24_ = caml_call1(Runtime_ocaml_Runtime[46], cst_7$0), - _b25_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b24_), - _b26_ = caml_call1(Runtime_ocaml_Runtime[69], _b25_), - _b27_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006$2), - _b28_ = caml_call2(Runtime_ocaml_Runtime[103], _b27_, _b26_), - _b29_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0167$0); - return caml_call2(Runtime_ocaml_Runtime[97], _b29_, _b28_); - } - function _b2R_(param){ - switch(residence[0]){ - case 0: - var _b2S_ = 1; break; - case 1: - var _b2S_ = 0; break; - case 2: - var _b2S_ = 1; break; - case 3: - var _b2S_ = 1; break; - case 4: - var _b2S_ = 1; break; - case 5: - var _b2S_ = 1; break; - case 6: - var _b2S_ = 0; break; - case 7: - var _b2S_ = 0; break; - default: var _b2S_ = 1; - } - var - _b2T_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _b2U_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2T_), - _b2V_ = caml_call2(Runtime_ocaml_Runtime[83], _b2U_, _b2S_); - return caml_call2(Runtime_ocaml_Runtime[29], _fA_, _b2V_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fB_, [0], _b2R_, _b2Q_); - }, - _b2O_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fC_, _b2P_, _b2N_, _b2M_); - }], - _bEq_ = caml_call4(Runtime_ocaml_Runtime[63], _fD_, _bEp_, _bEo_, _bEn_); - } - catch(_b2L_){ - var _bEm_ = caml_wrap_exception(_b2L_); - if(_bEm_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _fi_], 1); - throw caml_maybe_attach_backtrace(_bEm_, 0); - } - var - taux_composition_familiale = - caml_call3 - (Runtime_ocaml_Runtime[28], _fE_, Runtime_ocaml_Runtime[15], _bEq_); - try{ - var - _bEs_ = - function(param){ - function _b1__(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _b1$_(param){return 0;} - var - _b2a_ = - [0, - function(param){ - function _b2b_(param){ - var - _b2J_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$9), - _b2K_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b2J_); - return caml_call1(Runtime_ocaml_Runtime[69], _b2K_); - } - function _b2c_(param){ - var - _b2H_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _b2I_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2H_); - return caml_call2(Runtime_ocaml_Runtime[29], _fG_, _b2I_); - } - var - _b2d_ = - [0, - function(param){ - function _b2e_(param){ - var - _b2F_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$10), - _b2G_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b2F_); - return caml_call1(Runtime_ocaml_Runtime[69], _b2G_); - } - function _b2f_(param){ - var - _b2A_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), - _b2B_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b2A_), - _b2C_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b2D_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2C_), - _b2E_ = caml_call2(Runtime_ocaml_Runtime[83], _b2D_, _b2B_); - return caml_call2(Runtime_ocaml_Runtime[29], _fH_, _b2E_); - } - var - _b2g_ = - [0, - function(param){ - function _b2h_(param){ - var - _b2y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$11), - _b2z_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b2y_); - return caml_call1(Runtime_ocaml_Runtime[69], _b2z_); - } - function _b2i_(param){ - var - _b2t_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b2u_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b2t_), - _b2v_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _b2w_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2v_), - _b2x_ = caml_call2(Runtime_ocaml_Runtime[83], _b2w_, _b2u_); - return caml_call2(Runtime_ocaml_Runtime[29], _fI_, _b2x_); - } - var - _b2j_ = - [0, - function(param){ - function _b2k_(param){ - var - _b2r_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$12), - _b2s_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b2r_); - return caml_call1(Runtime_ocaml_Runtime[69], _b2s_); - } - function _b2l_(param){ - var - _b2m_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _b2n_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2m_), - _b2o_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _b2p_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b2o_), - _b2q_ = caml_call2(Runtime_ocaml_Runtime[83], _b2p_, _b2n_); - return caml_call2(Runtime_ocaml_Runtime[29], _fJ_, _b2q_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fK_, [0], _b2l_, _b2k_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fL_, _b2j_, _b2i_, _b2h_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fM_, _b2g_, _b2f_, _b2e_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fN_, _b2d_, _b2c_, _b2b_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fO_, _b2a_, _b1$_, _b1__); - }, - _bEt_ = function(param){return 1;}, - _bEu_ = - [0, - function(param){ - function _b07_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _b08_(param){return 0;} - var - _b09_ = - [0, - function(param){ - function _b0__(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$30); - } - function _b0$_(param){ - var - _b10_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$13), - _b11_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _b10_); - switch(residence[0]){ - case 0: - var _b12_ = 1; break; - case 1: - var _b12_ = 0; break; - case 2: - var _b12_ = 1; break; - case 3: - var _b12_ = 1; break; - case 4: - var _b12_ = 1; break; - case 5: - var _b12_ = 1; break; - case 6: - var _b12_ = 0; break; - case 7: - var _b12_ = 0; break; - default: var _b12_ = 1; - } - var - _b13_ = caml_call2(Runtime_ocaml_Runtime[83], _b12_, _b11_), - _b14_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _b15_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b14_), - _b16_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b17_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b16_), - _b18_ = caml_call2(Runtime_ocaml_Runtime[83], _b17_, _b15_), - _b19_ = caml_call2(Runtime_ocaml_Runtime[83], _b18_, _b13_); - return caml_call2(Runtime_ocaml_Runtime[29], _fP_, _b19_); - } - var - _b1a_ = - [0, - function(param){ - function _b1b_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$31); - } - function _b1c_(param){ - var - _b1Q_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$14), - _b1R_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _b1Q_); - switch(residence[0]){ - case 0: - var _b1S_ = 1; break; - case 1: - var _b1S_ = 0; break; - case 2: - var _b1S_ = 1; break; - case 3: - var _b1S_ = 1; break; - case 4: - var _b1S_ = 1; break; - case 5: - var _b1S_ = 1; break; - case 6: - var _b1S_ = 0; break; - case 7: - var _b1S_ = 0; break; - default: var _b1S_ = 1; - } - var - _b1T_ = caml_call2(Runtime_ocaml_Runtime[83], _b1S_, _b1R_), - _b1U_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b1V_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1U_), - _b1W_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _b1X_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1W_), - _b1Y_ = caml_call2(Runtime_ocaml_Runtime[83], _b1X_, _b1V_), - _b1Z_ = caml_call2(Runtime_ocaml_Runtime[83], _b1Y_, _b1T_); - return caml_call2(Runtime_ocaml_Runtime[29], _fQ_, _b1Z_); - } - var - _b1d_ = - [0, - function(param){ - function _b1e_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$32); - } - function _b1f_(param){ - var - _b1G_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$15), - _b1H_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _b1G_); - switch(residence[0]){ - case 0: - var _b1I_ = 1; break; - case 1: - var _b1I_ = 0; break; - case 2: - var _b1I_ = 1; break; - case 3: - var _b1I_ = 1; break; - case 4: - var _b1I_ = 1; break; - case 5: - var _b1I_ = 1; break; - case 6: - var _b1I_ = 0; break; - case 7: - var _b1I_ = 0; break; - default: var _b1I_ = 1; - } - var - _b1J_ = caml_call2(Runtime_ocaml_Runtime[83], _b1I_, _b1H_), - _b1K_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _b1L_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1K_), - _b1M_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b1N_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1M_), - _b1O_ = caml_call2(Runtime_ocaml_Runtime[83], _b1N_, _b1L_), - _b1P_ = caml_call2(Runtime_ocaml_Runtime[83], _b1O_, _b1J_); - return caml_call2(Runtime_ocaml_Runtime[29], _fR_, _b1P_); - } - var - _b1g_ = - [0, - function(param){ - function _b1h_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$33); - } - function _b1i_(param){ - var - _b1w_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$16), - _b1x_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _b1w_); - switch(residence[0]){ - case 0: - var _b1y_ = 1; break; - case 1: - var _b1y_ = 0; break; - case 2: - var _b1y_ = 1; break; - case 3: - var _b1y_ = 1; break; - case 4: - var _b1y_ = 1; break; - case 5: - var _b1y_ = 1; break; - case 6: - var _b1y_ = 0; break; - case 7: - var _b1y_ = 0; break; - default: var _b1y_ = 1; - } - var - _b1z_ = caml_call2(Runtime_ocaml_Runtime[83], _b1y_, _b1x_), - _b1A_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b1B_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1A_), - _b1C_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _b1D_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1C_), - _b1E_ = caml_call2(Runtime_ocaml_Runtime[83], _b1D_, _b1B_), - _b1F_ = caml_call2(Runtime_ocaml_Runtime[83], _b1E_, _b1z_); - return caml_call2(Runtime_ocaml_Runtime[29], _fS_, _b1F_); - } - var - _b1j_ = - [0, - function(param){ - function _b1k_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$34); - } - function _b1l_(param){ - var - _b1m_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$17), - _b1n_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _b1m_); - switch(residence[0]){ - case 0: - var _b1o_ = 1; break; - case 1: - var _b1o_ = 0; break; - case 2: - var _b1o_ = 1; break; - case 3: - var _b1o_ = 1; break; - case 4: - var _b1o_ = 1; break; - case 5: - var _b1o_ = 1; break; - case 6: - var _b1o_ = 0; break; - case 7: - var _b1o_ = 0; break; - default: var _b1o_ = 1; - } - var - _b1p_ = caml_call2(Runtime_ocaml_Runtime[83], _b1o_, _b1n_), - _b1q_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _b1r_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1q_), - _b1s_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _b1t_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1s_), - _b1u_ = caml_call2(Runtime_ocaml_Runtime[83], _b1t_, _b1r_), - _b1v_ = caml_call2(Runtime_ocaml_Runtime[83], _b1u_, _b1p_); - return caml_call2(Runtime_ocaml_Runtime[29], _fT_, _b1v_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _fU_, [0], _b1l_, _b1k_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fV_, _b1j_, _b1i_, _b1h_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fW_, _b1g_, _b1f_, _b1e_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fX_, _b1d_, _b1c_, _b1b_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fY_, _b1a_, _b0$_, _b0__); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _fZ_, _b09_, _b08_, _b07_); - }], - _bEv_ = caml_call4(Runtime_ocaml_Runtime[63], _f0_, _bEu_, _bEt_, _bEs_); - } - catch(_b06_){ - var _bEr_ = caml_wrap_exception(_b06_); - if(_bEr_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _fF_], 1); - throw caml_maybe_attach_backtrace(_bEr_, 0); - } - var - multiplicateur_majoration_r0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _f1_, Runtime_ocaml_Runtime[15], _bEv_); - try{ - var - _bEx_ = - function(param){ - function _b0D_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _b0E_(param){return 0;} - var - _b0F_ = - [0, - function(param){ - function _b0G_(param){ - var - _b04_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$14), - _b05_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b04_); - return caml_call1(Runtime_ocaml_Runtime[69], _b05_); - } - function _b0H_(param){ - var - _b02_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b03_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b02_); - return caml_call2(Runtime_ocaml_Runtime[29], _f3_, _b03_); - } - var - _b0I_ = - [0, - function(param){ - function _b0J_(param){ - var - _b00_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$15), - _b01_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b00_); - return caml_call1(Runtime_ocaml_Runtime[69], _b01_); - } - function _b0K_(param){ - var - _b0V_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b0W_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0V_), - _b0X_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b0Y_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0X_), - _b0Z_ = caml_call2(Runtime_ocaml_Runtime[83], _b0Y_, _b0W_); - return caml_call2(Runtime_ocaml_Runtime[29], _f4_, _b0Z_); - } - var - _b0L_ = - [0, - function(param){ - function _b0M_(param){ - var - _b0T_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$16), - _b0U_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _b0T_); - return caml_call1(Runtime_ocaml_Runtime[69], _b0U_); - } - function _b0N_(param){ - var - _b0O_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b0P_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0O_), - _b0Q_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _b0R_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0Q_), - _b0S_ = caml_call2(Runtime_ocaml_Runtime[83], _b0R_, _b0P_); - return caml_call2(Runtime_ocaml_Runtime[29], _f5_, _b0S_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _f6_, [0], _b0N_, _b0M_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _f7_, _b0L_, _b0K_, _b0J_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _f8_, _b0I_, _b0H_, _b0G_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _f9_, _b0F_, _b0E_, _b0D_); - }, - _bEy_ = function(param){return 1;}, - _bEz_ = - [0, - function(param){ - function _bZA_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bZB_(param){return 0;} - var - _bZC_ = - [0, - function(param){ - function _bZD_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_5$8); - } - function _bZE_(param){ - var - _b0t_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$18), - _b0u_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _b0t_); - switch(residence[0]){ - case 0: - var _b0v_ = 1; break; - case 1: - var _b0v_ = 0; break; - case 2: - var _b0v_ = 1; break; - case 3: - var _b0v_ = 1; break; - case 4: - var _b0v_ = 1; break; - case 5: - var _b0v_ = 1; break; - case 6: - var _b0v_ = 0; break; - case 7: - var _b0v_ = 0; break; - default: var _b0v_ = 1; - } - var - _b0w_ = caml_call2(Runtime_ocaml_Runtime[83], _b0v_, _b0u_), - _b0x_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _b0y_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0x_), - _b0z_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b0A_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0z_), - _b0B_ = caml_call2(Runtime_ocaml_Runtime[83], _b0A_, _b0y_), - _b0C_ = caml_call2(Runtime_ocaml_Runtime[83], _b0B_, _b0w_); - return caml_call2(Runtime_ocaml_Runtime[29], _f__, _b0C_); - } - var - _bZF_ = - [0, - function(param){ - function _bZG_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_5$9); - } - function _bZH_(param){ - var - _b0j_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$19), - _b0k_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _b0j_); - switch(residence[0]){ - case 0: - var _b0l_ = 1; break; - case 1: - var _b0l_ = 0; break; - case 2: - var _b0l_ = 1; break; - case 3: - var _b0l_ = 1; break; - case 4: - var _b0l_ = 1; break; - case 5: - var _b0l_ = 1; break; - case 6: - var _b0l_ = 0; break; - case 7: - var _b0l_ = 0; break; - default: var _b0l_ = 1; - } - var - _b0m_ = caml_call2(Runtime_ocaml_Runtime[83], _b0l_, _b0k_), - _b0n_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _b0o_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0n_), - _b0p_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _b0q_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0p_), - _b0r_ = caml_call2(Runtime_ocaml_Runtime[83], _b0q_, _b0o_), - _b0s_ = caml_call2(Runtime_ocaml_Runtime[83], _b0r_, _b0m_); - return caml_call2(Runtime_ocaml_Runtime[29], _f$_, _b0s_); - } - var - _bZI_ = - [0, - function(param){ - function _bZJ_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_5$10); - } - function _bZK_(param){ - var - _bZ$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$20), - _b0a_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _bZ$_); - switch(residence[0]){ - case 0: - var _b0b_ = 1; break; - case 1: - var _b0b_ = 0; break; - case 2: - var _b0b_ = 1; break; - case 3: - var _b0b_ = 1; break; - case 4: - var _b0b_ = 1; break; - case 5: - var _b0b_ = 1; break; - case 6: - var _b0b_ = 0; break; - case 7: - var _b0b_ = 0; break; - default: var _b0b_ = 1; - } - var - _b0c_ = caml_call2(Runtime_ocaml_Runtime[83], _b0b_, _b0a_), - _b0d_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _b0e_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0d_), - _b0f_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _b0g_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0f_), - _b0h_ = caml_call2(Runtime_ocaml_Runtime[83], _b0g_, _b0e_), - _b0i_ = caml_call2(Runtime_ocaml_Runtime[83], _b0h_, _b0c_); - return caml_call2(Runtime_ocaml_Runtime[29], _ga_, _b0i_); - } - var - _bZL_ = - [0, - function(param){ - function _bZM_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_5$11); - } - function _bZN_(param){ - var - _bZ1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$21), - _bZ2_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _bZ1_); - switch(residence[0]){ - case 0: - var _bZ3_ = 1; break; - case 1: - var _bZ3_ = 0; break; - case 2: - var _bZ3_ = 1; break; - case 3: - var _bZ3_ = 1; break; - case 4: - var _bZ3_ = 1; break; - case 5: - var _bZ3_ = 1; break; - case 6: - var _bZ3_ = 0; break; - case 7: - var _bZ3_ = 0; break; - default: var _bZ3_ = 1; - } - var - _bZ4_ = caml_call2(Runtime_ocaml_Runtime[83], _bZ3_, _bZ2_), - _bZ5_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bZ6_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZ5_), - _bZ7_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bZ8_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZ7_), - _bZ9_ = caml_call2(Runtime_ocaml_Runtime[83], _bZ8_, _bZ6_), - _bZ__ = caml_call2(Runtime_ocaml_Runtime[83], _bZ9_, _bZ4_); - return caml_call2(Runtime_ocaml_Runtime[29], _gb_, _bZ__); - } - var - _bZO_ = - [0, - function(param){ - function _bZP_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_5$12); - } - function _bZQ_(param){ - var - _bZR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$22), - _bZS_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _bZR_); - switch(residence[0]){ - case 0: - var _bZT_ = 1; break; - case 1: - var _bZT_ = 0; break; - case 2: - var _bZT_ = 1; break; - case 3: - var _bZT_ = 1; break; - case 4: - var _bZT_ = 1; break; - case 5: - var _bZT_ = 1; break; - case 6: - var _bZT_ = 0; break; - case 7: - var _bZT_ = 0; break; - default: var _bZT_ = 1; - } - var - _bZU_ = caml_call2(Runtime_ocaml_Runtime[83], _bZT_, _bZS_), - _bZV_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bZW_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZV_), - _bZX_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _bZY_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZX_), - _bZZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bZY_, _bZW_), - _bZ0_ = caml_call2(Runtime_ocaml_Runtime[83], _bZZ_, _bZU_); - return caml_call2(Runtime_ocaml_Runtime[29], _gc_, _bZ0_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gd_, [0], _bZQ_, _bZP_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _ge_, _bZO_, _bZN_, _bZM_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gf_, _bZL_, _bZK_, _bZJ_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gg_, _bZI_, _bZH_, _bZG_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gh_, _bZF_, _bZE_, _bZD_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gi_, _bZC_, _bZB_, _bZA_); - }], - _bEA_ = caml_call4(Runtime_ocaml_Runtime[63], _gj_, _bEz_, _bEy_, _bEx_); - } - catch(_bZz_){ - var _bEw_ = caml_wrap_exception(_bZz_); - if(_bEw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _f2_], 1); - throw caml_maybe_attach_backtrace(_bEw_, 0); - } - var - multiplicateur_majoration_loye = - caml_call3 - (Runtime_ocaml_Runtime[28], _gk_, Runtime_ocaml_Runtime[15], _bEA_); - try{ - var - _bEC_ = - function(param){ - function _bYM_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bYN_(param){return 0;} - var - _bYO_ = - [0, - function(param){ - function _bYP_(param){ - var - _bZx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$17), - _bZy_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bZx_); - return caml_call1(Runtime_ocaml_Runtime[69], _bZy_); - } - function _bYQ_(param){ - var - _bZv_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bZw_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZv_); - return caml_call2(Runtime_ocaml_Runtime[29], _gm_, _bZw_); - } - var - _bYR_ = - [0, - function(param){ - function _bYS_(param){ - var - _bZt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$18), - _bZu_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bZt_); - return caml_call1(Runtime_ocaml_Runtime[69], _bZu_); - } - function _bYT_(param){ - var - _bZo_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bZp_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZo_), - _bZq_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bZr_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZq_), - _bZs_ = caml_call2(Runtime_ocaml_Runtime[83], _bZr_, _bZp_); - return caml_call2(Runtime_ocaml_Runtime[29], _gn_, _bZs_); - } - var - _bYU_ = - [0, - function(param){ - function _bYV_(param){ - var - _bZm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$19), - _bZn_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bZm_); - return caml_call1(Runtime_ocaml_Runtime[69], _bZn_); - } - function _bYW_(param){ - var - _bZg_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bZh_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZg_), - _bZi_ = - caml_call2(Runtime_ocaml_Runtime[83], _bZh_, colocation), - _bZj_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bZk_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZj_), - _bZl_ = caml_call2(Runtime_ocaml_Runtime[83], _bZk_, _bZi_); - return caml_call2(Runtime_ocaml_Runtime[29], _go_, _bZl_); - } - var - _bYX_ = - [0, - function(param){ - function _bYY_(param){ - var - _bZe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$20), - _bZf_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bZe_); - return caml_call1(Runtime_ocaml_Runtime[69], _bZf_); - } - function _bYZ_(param){ - var - _bY$_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bZa_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bY$_), - _bZb_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bZc_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZb_), - _bZd_ = caml_call2(Runtime_ocaml_Runtime[83], _bZc_, _bZa_); - return caml_call2(Runtime_ocaml_Runtime[29], _gp_, _bZd_); - } + function(param) + {function _cit_(param) + {var _ciA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$91); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciA_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0283$1) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0315$1); + var _ciB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciB_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_027$1); + var _ciC_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$27); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciC_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$1); + var _ciD_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$12); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciD_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0201$1); + var _ciE_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciE_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0185$1); + var _ciF_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$1); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciF_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0179$1); + var _ciG_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$6); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciG_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$3); var - _bY0_ = - [0, - function(param){ - function _bY1_(param){ - var - _bY9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$21), - _bY__ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bY9_); - return caml_call1(Runtime_ocaml_Runtime[69], _bY__); - } - function _bY2_(param){ - var - _bY3_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bY4_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bY3_), - _bY5_ = - caml_call2(Runtime_ocaml_Runtime[83], _bY4_, colocation), - _bY6_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bY7_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bY6_), - _bY8_ = caml_call2(Runtime_ocaml_Runtime[83], _bY7_, _bY5_); - return caml_call2(Runtime_ocaml_Runtime[29], _gq_, _bY8_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gr_, [0], _bY2_, _bY1_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gs_, _bY0_, _bYZ_, _bYY_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gt_, _bYX_, _bYW_, _bYV_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gu_, _bYU_, _bYT_, _bYS_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gv_, _bYR_, _bYQ_, _bYP_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gw_, _bYO_, _bYN_, _bYM_); - }, - _bED_ = function(param){return 1;}, - _bEE_ = - [0, - function(param){ - function _bXJ_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bXK_(param){return 0;} - var - _bXL_ = - [0, - function(param){ - function _bXM_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_5$13); - } - function _bXN_(param){ - var - _bYC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$23), - _bYD_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _bYC_); - switch(residence[0]){ - case 0: - var _bYE_ = 1; break; - case 1: - var _bYE_ = 0; break; - case 2: - var _bYE_ = 1; break; - case 3: - var _bYE_ = 1; break; - case 4: - var _bYE_ = 1; break; - case 5: - var _bYE_ = 1; break; - case 6: - var _bYE_ = 0; break; - case 7: - var _bYE_ = 0; break; - default: var _bYE_ = 1; - } - var - _bYF_ = caml_call2(Runtime_ocaml_Runtime[83], _bYE_, _bYD_), - _bYG_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _bYH_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYG_), - _bYI_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bYJ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYI_), - _bYK_ = caml_call2(Runtime_ocaml_Runtime[83], _bYJ_, _bYH_), - _bYL_ = caml_call2(Runtime_ocaml_Runtime[83], _bYK_, _bYF_); - return caml_call2(Runtime_ocaml_Runtime[29], _gx_, _bYL_); - } + _ciH_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$7), + _ciI_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ciH_), + _ciJ_=caml_call1(Runtime_ocaml_Runtime[69],_ciI_), + _ciK_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006$1), + _ciL_=caml_call2(Runtime_ocaml_Runtime[103],_ciK_,_ciJ_), + _ciM_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$4); + return caml_call2(Runtime_ocaml_Runtime[97],_ciM_,_ciL_)} + function _ciu_(param) + {var + _civ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _ciw_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_civ_), + _cix_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _ciy_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cix_), + _ciz_=caml_call2(Runtime_ocaml_Runtime[83],_ciy_,_ciw_); + return caml_call2(Runtime_ocaml_Runtime[29],_qZ_,_ciz_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_q0_,[0],_ciu_,_cit_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_q1_,_cis_,_cir_,_ciq_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_q2_,_cip_,_cio_,_cin_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_q3_,_cim_,_cil_,_cik_)}, + _bUM_=function(param){return 1}, + _bUN_= + [0, + function(param) + {function _cgJ_(param){throw Runtime_ocaml_Runtime[2]} + function _cgK_(param){return 0} + function _cgL_(param) + {function _cg7_(param) + {var _cie_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cie_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299); + var _cif_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cif_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$2); + var _cig_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cig_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217); + var _cih_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$13); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cih_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194); + var _cii_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cii_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018); + var _cij_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$2); + return caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cij_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162)} + function _cg8_(param) + {switch(residence[0]) + {case 0:var _ch9_=1;break; + case 1:var _ch9_=0;break; + case 2:var _ch9_=1;break; + case 3:var _ch9_=1;break; + case 4:var _ch9_=1;break; + case 5:var _ch9_=1;break; + case 6:var _ch9_=0;break; + case 7:var _ch9_=0;break; + default:var _ch9_=1} + var + _ch__=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _ch$_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ch__), + _cia_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cib_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cia_), + _cic_=caml_call2(Runtime_ocaml_Runtime[83],_cib_,_ch$_), + _cid_=caml_call2(Runtime_ocaml_Runtime[83],_cic_,_ch9_); + return caml_call2(Runtime_ocaml_Runtime[29],_q4_,_cid_)} var - _bXO_ = - [0, - function(param){ - function _bXP_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_5$14); - } - function _bXQ_(param){ - var - _bYs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$24), - _bYt_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _bYs_); - switch(residence[0]){ - case 0: - var _bYu_ = 1; break; - case 1: - var _bYu_ = 0; break; - case 2: - var _bYu_ = 1; break; - case 3: - var _bYu_ = 1; break; - case 4: - var _bYu_ = 1; break; - case 5: - var _bYu_ = 1; break; - case 6: - var _bYu_ = 0; break; - case 7: - var _bYu_ = 0; break; - default: var _bYu_ = 1; - } - var - _bYv_ = caml_call2(Runtime_ocaml_Runtime[83], _bYu_, _bYt_), - _bYw_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bYx_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYw_), - _bYy_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bYz_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYy_), - _bYA_ = caml_call2(Runtime_ocaml_Runtime[83], _bYz_, _bYx_), - _bYB_ = caml_call2(Runtime_ocaml_Runtime[83], _bYA_, _bYv_); - return caml_call2(Runtime_ocaml_Runtime[29], _gy_, _bYB_); - } + _cg9_= + [0, + function(param) + {function _cg__(param) + {var _ch3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$93); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch3_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$0) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$0); + var _ch4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch4_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$3); + var _ch5_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$29); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch5_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$0); + var _ch6_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$14); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch6_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$0); + var _ch7_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$9); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch7_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$0); + var _ch8_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$3); + return caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch8_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$0) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$0)} + function _cg$_(param) + {switch(residence[0]) + {case 0:var _chW_=1;break; + case 1:var _chW_=0;break; + case 2:var _chW_=1;break; + case 3:var _chW_=1;break; + case 4:var _chW_=1;break; + case 5:var _chW_=1;break; + case 6:var _chW_=0;break; + case 7:var _chW_=0;break; + default:var _chW_=1} + var + _chX_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _chY_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_chX_), + _chZ_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _ch0_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_chZ_), + _ch1_=caml_call2(Runtime_ocaml_Runtime[83],_ch0_,_chY_), + _ch2_=caml_call2(Runtime_ocaml_Runtime[83],_ch1_,_chW_); + return caml_call2(Runtime_ocaml_Runtime[29],_q5_,_ch2_)} var - _bXR_ = - [0, - function(param){ - function _bXS_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_5$15); - } - function _bXT_(param){ - var - _bYi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$25), - _bYj_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _bYi_); - switch(residence[0]){ - case 0: - var _bYk_ = 1; break; - case 1: - var _bYk_ = 0; break; - case 2: - var _bYk_ = 1; break; - case 3: - var _bYk_ = 1; break; - case 4: - var _bYk_ = 1; break; - case 5: - var _bYk_ = 1; break; - case 6: - var _bYk_ = 0; break; - case 7: - var _bYk_ = 0; break; - default: var _bYk_ = 1; - } - var - _bYl_ = caml_call2(Runtime_ocaml_Runtime[83], _bYk_, _bYj_), - _bYm_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bYn_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYm_), - _bYo_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bYp_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYo_), - _bYq_ = caml_call2(Runtime_ocaml_Runtime[83], _bYp_, _bYn_), - _bYr_ = caml_call2(Runtime_ocaml_Runtime[83], _bYq_, _bYl_); - return caml_call2(Runtime_ocaml_Runtime[29], _gz_, _bYr_); - } + _cha_= + [0, + function(param) + {function _chb_(param) + {var _chQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chQ_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$1) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$1); + var _chR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chR_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$4); + var _chS_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chS_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$1); + var _chT_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$15); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chT_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$1); + var _chU_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chU_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$1); + var _chV_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$4); + return caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chV_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$1) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$1)} + function _chc_(param) + {switch(residence[0]) + {case 0:var _chJ_=1;break; + case 1:var _chJ_=0;break; + case 2:var _chJ_=1;break; + case 3:var _chJ_=1;break; + case 4:var _chJ_=1;break; + case 5:var _chJ_=1;break; + case 6:var _chJ_=0;break; + case 7:var _chJ_=0;break; + default:var _chJ_=1} + var + _chK_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _chL_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_chK_), + _chM_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _chN_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_chM_), + _chO_=caml_call2(Runtime_ocaml_Runtime[83],_chN_,_chL_), + _chP_=caml_call2(Runtime_ocaml_Runtime[83],_chO_,_chJ_); + return caml_call2(Runtime_ocaml_Runtime[29],_q6_,_chP_)} var - _bXU_ = - [0, - function(param){ - function _bXV_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_5$16); - } - function _bXW_(param){ - var - _bX__ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$26), - _bX$_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _bX__); - switch(residence[0]){ - case 0: - var _bYa_ = 1; break; - case 1: - var _bYa_ = 0; break; - case 2: - var _bYa_ = 1; break; - case 3: - var _bYa_ = 1; break; - case 4: - var _bYa_ = 1; break; - case 5: - var _bYa_ = 1; break; - case 6: - var _bYa_ = 0; break; - case 7: - var _bYa_ = 0; break; - default: var _bYa_ = 1; - } - var - _bYb_ = caml_call2(Runtime_ocaml_Runtime[83], _bYa_, _bX$_), - _bYc_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bYd_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYc_), - _bYe_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bYf_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYe_), - _bYg_ = caml_call2(Runtime_ocaml_Runtime[83], _bYf_, _bYd_), - _bYh_ = caml_call2(Runtime_ocaml_Runtime[83], _bYg_, _bYb_); - return caml_call2(Runtime_ocaml_Runtime[29], _gA_, _bYh_); - } + _chd_= + [0, + function(param) + {function _che_(param) + {var _chD_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$95); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chD_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$2) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$2); + var _chE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chE_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$5); + var _chF_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$31); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chF_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$2); + var _chG_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$16); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chG_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$2); + var _chH_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chH_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$2); + var _chI_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$5); + return caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chI_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$2) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$2)} + function _chf_(param) + {switch(residence[0]) + {case 0:var _chw_=1;break; + case 1:var _chw_=0;break; + case 2:var _chw_=1;break; + case 3:var _chw_=1;break; + case 4:var _chw_=1;break; + case 5:var _chw_=1;break; + case 6:var _chw_=0;break; + case 7:var _chw_=0;break; + default:var _chw_=1} + var + _chx_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _chy_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_chx_), + _chz_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _chA_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_chz_), + _chB_=caml_call2(Runtime_ocaml_Runtime[83],_chA_,_chy_), + _chC_=caml_call2(Runtime_ocaml_Runtime[83],_chB_,_chw_); + return caml_call2(Runtime_ocaml_Runtime[29],_q7_,_chC_)} var - _bXX_ = - [0, - function(param){ - function _bXY_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_5$17); - } - function _bXZ_(param){ - var - _bX0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$27), - _bX1_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _bX0_); - switch(residence[0]){ - case 0: - var _bX2_ = 1; break; - case 1: - var _bX2_ = 0; break; - case 2: - var _bX2_ = 1; break; - case 3: - var _bX2_ = 1; break; - case 4: - var _bX2_ = 1; break; - case 5: - var _bX2_ = 1; break; - case 6: - var _bX2_ = 0; break; - case 7: - var _bX2_ = 0; break; - default: var _bX2_ = 1; - } - var - _bX3_ = caml_call2(Runtime_ocaml_Runtime[83], _bX2_, _bX1_), - _bX4_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bX5_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bX4_), - _bX6_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _bX7_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bX6_), - _bX8_ = caml_call2(Runtime_ocaml_Runtime[83], _bX7_, _bX5_), - _bX9_ = caml_call2(Runtime_ocaml_Runtime[83], _bX8_, _bX3_); - return caml_call2(Runtime_ocaml_Runtime[29], _gB_, _bX9_); - } + _chg_= + [0, + function(param) + {function _chh_(param) + {var _chq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chq_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$3) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$3); + var _chr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chr_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$6); + var _chs_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chs_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$3); + var _cht_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$17); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cht_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$3); + var _chu_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$12); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chu_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$3); + var _chv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$6); + return caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chv_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$3) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$3)} + function _chi_(param) + {switch(residence[0]) + {case 0:var _chj_=1;break; + case 1:var _chj_=0;break; + case 2:var _chj_=1;break; + case 3:var _chj_=1;break; + case 4:var _chj_=1;break; + case 5:var _chj_=1;break; + case 6:var _chj_=0;break; + case 7:var _chj_=0;break; + default:var _chj_=1} + var + _chk_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _chl_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_chk_), + _chm_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _chn_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_chm_), + _cho_=caml_call2(Runtime_ocaml_Runtime[83],_chn_,_chl_), + _chp_=caml_call2(Runtime_ocaml_Runtime[83],_cho_,_chj_); + return caml_call2(Runtime_ocaml_Runtime[29],_q8_,_chp_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _gC_, [0], _bXZ_, _bXY_); - }]; + (Runtime_ocaml_Runtime[63],_q9_,[0],_chi_,_chh_)}]; return caml_call4 - (Runtime_ocaml_Runtime[63], _gD_, _bXX_, _bXW_, _bXV_); - }]; + (Runtime_ocaml_Runtime[63],_q__,_chg_,_chf_,_che_)}]; return caml_call4 - (Runtime_ocaml_Runtime[63], _gE_, _bXU_, _bXT_, _bXS_); - }]; + (Runtime_ocaml_Runtime[63],_q$_,_chd_,_chc_,_chb_)}]; return caml_call4 - (Runtime_ocaml_Runtime[63], _gF_, _bXR_, _bXQ_, _bXP_); - }]; + (Runtime_ocaml_Runtime[63],_ra_,_cha_,_cg$_,_cg__)}]; return caml_call4 - (Runtime_ocaml_Runtime[63], _gG_, _bXO_, _bXN_, _bXM_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gH_, _bXL_, _bXK_, _bXJ_); - }], - _bEF_ = caml_call4(Runtime_ocaml_Runtime[63], _gI_, _bEE_, _bED_, _bEC_); - } - catch(_bXI_){ - var _bEB_ = caml_wrap_exception(_bXI_); - if(_bEB_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _gl_], 1); - throw caml_maybe_attach_backtrace(_bEB_, 0); - } - var - multiplicateur_majoration_plaf = - caml_call3 - (Runtime_ocaml_Runtime[28], _gJ_, Runtime_ocaml_Runtime[15], _bEF_); - try{ - var - _bEH_ = - function(param){ - function _bXc_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bXd_(param){return 0;} - function _bXe_(param){ - function _bXy_(param){ - var - _bXF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224), - _bXG_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bXF_, - multiplicateur_majoration_char), - _bXH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399); - return caml_call2(Runtime_ocaml_Runtime[93], _bXH_, _bXG_); - } - function _bXz_(param){ - var - _bXA_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bXB_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bXA_), - _bXC_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bXD_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bXC_), - _bXE_ = caml_call2(Runtime_ocaml_Runtime[83], _bXD_, _bXB_); - return caml_call2(Runtime_ocaml_Runtime[29], _gL_, _bXE_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gM_, [0], _bXz_, _bXy_); - } - function _bXf_(param){ - function _bXo_(param){ - var - _bXv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229), - _bXw_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bXv_, - multiplicateur_majoration_char), - _bXx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422); - return caml_call2(Runtime_ocaml_Runtime[93], _bXx_, _bXw_); - } - function _bXp_(param){ - var - _bXq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bXr_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bXq_), - _bXs_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bXt_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bXs_), - _bXu_ = caml_call2(Runtime_ocaml_Runtime[83], _bXt_, _bXr_); - return caml_call2(Runtime_ocaml_Runtime[29], _gN_, _bXu_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gO_, [0], _bXp_, _bXo_); - } - var - _bXg_ = - [0, - function(param){ - function _bXh_(param){ - var - _bXl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272), - _bXm_ = + (Runtime_ocaml_Runtime[63],_rb_,_cg9_,_cg8_,_cg7_)} + var + _cgM_= + [0, + function(param) + {function _cgN_(param) + {var _cgT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$97); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgT_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$4) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$4); + var _cgU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgU_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$7); + var _cgV_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$33); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgV_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$4); + var _cgW_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgW_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$4); + var _cgX_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$13); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgX_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$4); + var _cgY_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgY_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$4); + var _cgZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgZ_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$4); + var _cg0_=caml_call1(Runtime_ocaml_Runtime[46],cst_7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cg0_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0167); + var + _cg1_=caml_call1(Runtime_ocaml_Runtime[46],cst_7$0), + _cg2_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cg1_), + _cg3_=caml_call1(Runtime_ocaml_Runtime[69],_cg2_), + _cg4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006$2), + _cg5_=caml_call2(Runtime_ocaml_Runtime[103],_cg4_,_cg3_), + _cg6_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0167$0); + return caml_call2(Runtime_ocaml_Runtime[97],_cg6_,_cg5_)} + function _cgO_(param) + {switch(residence[0]) + {case 0:var _cgP_=1;break; + case 1:var _cgP_=0;break; + case 2:var _cgP_=1;break; + case 3:var _cgP_=1;break; + case 4:var _cgP_=1;break; + case 5:var _cgP_=1;break; + case 6:var _cgP_=0;break; + case 7:var _cgP_=0;break; + default:var _cgP_=1} + var + _cgQ_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _cgR_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cgQ_), + _cgS_=caml_call2(Runtime_ocaml_Runtime[83],_cgR_,_cgP_); + return caml_call2(Runtime_ocaml_Runtime[29],_rc_,_cgS_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_rd_,[0],_cgO_,_cgN_)}, + _cgL_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_re_,_cgM_,_cgK_,_cgJ_)}], + _bUO_=caml_call4(Runtime_ocaml_Runtime[63],_rf_,_bUN_,_bUM_,_bUL_)} + catch(_cgI_) + {_cgI_ = caml_wrap_exception(_cgI_); + if(_cgI_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_qW_]; + throw _cgI_} + var + taux_composition_familiale= + caml_call3 + (Runtime_ocaml_Runtime[28],_rg_,Runtime_ocaml_Runtime[15],_bUO_); + try + {var + _bUP_= + function(param) + {function _cf7_(param){throw Runtime_ocaml_Runtime[2]} + function _cf8_(param){return 0} + var + _cf9_= + [0, + function(param) + {function _cf__(param) + {var + _cgG_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$9), + _cgH_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cgG_); + return caml_call1(Runtime_ocaml_Runtime[69],_cgH_)} + function _cf$_(param) + {var + _cgE_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _cgF_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cgE_); + return caml_call2(Runtime_ocaml_Runtime[29],_ri_,_cgF_)} + var + _cga_= + [0, + function(param) + {function _cgb_(param) + {var + _cgC_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$10), + _cgD_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cgC_); + return caml_call1(Runtime_ocaml_Runtime[69],_cgD_)} + function _cgc_(param) + {var + _cgx_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), + _cgy_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cgx_), + _cgz_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cgA_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cgz_), + _cgB_=caml_call2(Runtime_ocaml_Runtime[83],_cgA_,_cgy_); + return caml_call2(Runtime_ocaml_Runtime[29],_rj_,_cgB_)} + var + _cgd_= + [0, + function(param) + {function _cge_(param) + {var + _cgv_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$11), + _cgw_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cgv_); + return caml_call1(Runtime_ocaml_Runtime[69],_cgw_)} + function _cgf_(param) + {var + _cgq_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cgr_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cgq_), + _cgs_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cgt_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cgs_), + _cgu_=caml_call2(Runtime_ocaml_Runtime[83],_cgt_,_cgr_); + return caml_call2(Runtime_ocaml_Runtime[29],_rk_,_cgu_)} + var + _cgg_= + [0, + function(param) + {function _cgh_(param) + {var + _cgo_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$12), + _cgp_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cgo_); + return caml_call1(Runtime_ocaml_Runtime[69],_cgp_)} + function _cgi_(param) + {var + _cgj_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cgk_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cgj_), + _cgl_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cgm_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cgl_), + _cgn_=caml_call2(Runtime_ocaml_Runtime[83],_cgm_,_cgk_); + return caml_call2(Runtime_ocaml_Runtime[29],_rl_,_cgn_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_rm_,[0],_cgi_,_cgh_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rn_,_cgg_,_cgf_,_cge_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ro_,_cgd_,_cgc_,_cgb_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rp_,_cga_,_cf$_,_cf__)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rq_,_cf9_,_cf8_,_cf7_)}, + _bUQ_=function(param){return 1}, + _bUR_= + [0, + function(param) + {function _ce4_(param){throw Runtime_ocaml_Runtime[2]} + function _ce5_(param){return 0} + var + _ce6_= + [0, + function(param) + {function _ce7_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0$98)} + function _ce8_(param) + {var + _cfX_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$13), + _cfY_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cfX_); + switch(residence[0]) + {case 0:var _cfZ_=1;break; + case 1:var _cfZ_=0;break; + case 2:var _cfZ_=1;break; + case 3:var _cfZ_=1;break; + case 4:var _cfZ_=1;break; + case 5:var _cfZ_=1;break; + case 6:var _cfZ_=0;break; + case 7:var _cfZ_=0;break; + default:var _cfZ_=1} + var + _cf0_=caml_call2(Runtime_ocaml_Runtime[83],_cfZ_,_cfY_), + _cf1_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _cf2_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cf1_), + _cf3_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cf4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cf3_), + _cf5_=caml_call2(Runtime_ocaml_Runtime[83],_cf4_,_cf2_), + _cf6_=caml_call2(Runtime_ocaml_Runtime[83],_cf5_,_cf0_); + return caml_call2(Runtime_ocaml_Runtime[29],_rr_,_cf6_)} + var + _ce9_= + [0, + function(param) + {function _ce__(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0$99)} + function _ce$_(param) + {var + _cfN_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$14), + _cfO_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cfN_); + switch(residence[0]) + {case 0:var _cfP_=1;break; + case 1:var _cfP_=0;break; + case 2:var _cfP_=1;break; + case 3:var _cfP_=1;break; + case 4:var _cfP_=1;break; + case 5:var _cfP_=1;break; + case 6:var _cfP_=0;break; + case 7:var _cfP_=0;break; + default:var _cfP_=1} + var + _cfQ_=caml_call2(Runtime_ocaml_Runtime[83],_cfP_,_cfO_), + _cfR_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cfS_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cfR_), + _cfT_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cfU_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cfT_), + _cfV_=caml_call2(Runtime_ocaml_Runtime[83],_cfU_,_cfS_), + _cfW_=caml_call2(Runtime_ocaml_Runtime[83],_cfV_,_cfQ_); + return caml_call2(Runtime_ocaml_Runtime[29],_rs_,_cfW_)} + var + _cfa_= + [0, + function(param) + {function _cfb_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0$100)} + function _cfc_(param) + {var + _cfD_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$15), + _cfE_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cfD_); + switch(residence[0]) + {case 0:var _cfF_=1;break; + case 1:var _cfF_=0;break; + case 2:var _cfF_=1;break; + case 3:var _cfF_=1;break; + case 4:var _cfF_=1;break; + case 5:var _cfF_=1;break; + case 6:var _cfF_=0;break; + case 7:var _cfF_=0;break; + default:var _cfF_=1} + var + _cfG_=caml_call2(Runtime_ocaml_Runtime[83],_cfF_,_cfE_), + _cfH_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cfI_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cfH_), + _cfJ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cfK_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cfJ_), + _cfL_=caml_call2(Runtime_ocaml_Runtime[83],_cfK_,_cfI_), + _cfM_=caml_call2(Runtime_ocaml_Runtime[83],_cfL_,_cfG_); + return caml_call2(Runtime_ocaml_Runtime[29],_rt_,_cfM_)} + var + _cfd_= + [0, + function(param) + {function _cfe_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0$101)} + function _cff_(param) + {var + _cft_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$16), + _cfu_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cft_); + switch(residence[0]) + {case 0:var _cfv_=1;break; + case 1:var _cfv_=0;break; + case 2:var _cfv_=1;break; + case 3:var _cfv_=1;break; + case 4:var _cfv_=1;break; + case 5:var _cfv_=1;break; + case 6:var _cfv_=0;break; + case 7:var _cfv_=0;break; + default:var _cfv_=1} + var + _cfw_=caml_call2(Runtime_ocaml_Runtime[83],_cfv_,_cfu_), + _cfx_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cfy_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cfx_), + _cfz_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _cfA_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cfz_), + _cfB_=caml_call2(Runtime_ocaml_Runtime[83],_cfA_,_cfy_), + _cfC_=caml_call2(Runtime_ocaml_Runtime[83],_cfB_,_cfw_); + return caml_call2(Runtime_ocaml_Runtime[29],_ru_,_cfC_)} + var + _cfg_= + [0, + function(param) + {function _cfh_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0$102)} + function _cfi_(param) + {var + _cfj_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$17), + _cfk_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cfj_); + switch(residence[0]) + {case 0:var _cfl_=1;break; + case 1:var _cfl_=0;break; + case 2:var _cfl_=1;break; + case 3:var _cfl_=1;break; + case 4:var _cfl_=1;break; + case 5:var _cfl_=1;break; + case 6:var _cfl_=0;break; + case 7:var _cfl_=0;break; + default:var _cfl_=1} + var + _cfm_=caml_call2(Runtime_ocaml_Runtime[83],_cfl_,_cfk_), + _cfn_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _cfo_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cfn_), + _cfp_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cfq_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cfp_), + _cfr_=caml_call2(Runtime_ocaml_Runtime[83],_cfq_,_cfo_), + _cfs_=caml_call2(Runtime_ocaml_Runtime[83],_cfr_,_cfm_); + return caml_call2(Runtime_ocaml_Runtime[29],_rv_,_cfs_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_rw_,[0],_cfi_,_cfh_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rx_,_cfg_,_cff_,_cfe_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ry_,_cfd_,_cfc_,_cfb_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rz_,_cfa_,_ce$_,_ce__)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rA_,_ce9_,_ce8_,_ce7_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rB_,_ce6_,_ce5_,_ce4_)}], + _bUS_=caml_call4(Runtime_ocaml_Runtime[63],_rC_,_bUR_,_bUQ_,_bUP_)} + catch(_ce3_) + {_ce3_ = caml_wrap_exception(_ce3_); + if(_ce3_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_rh_]; + throw _ce3_} + var + multiplicateur_majoration_r0= + caml_call3 + (Runtime_ocaml_Runtime[28],_rD_,Runtime_ocaml_Runtime[15],_bUS_); + try + {var + _bUT_= + function(param) + {function _ceA_(param){throw Runtime_ocaml_Runtime[2]} + function _ceB_(param){return 0} + var + _ceC_= + [0, + function(param) + {function _ceD_(param) + {var + _ce1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$43), + _ce2_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ce1_); + return caml_call1(Runtime_ocaml_Runtime[69],_ce2_)} + function _ceE_(param) + {var + _ceZ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _ce0_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ceZ_); + return caml_call2(Runtime_ocaml_Runtime[29],_rF_,_ce0_)} + var + _ceF_= + [0, + function(param) + {function _ceG_(param) + {var + _ceX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$44), + _ceY_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ceX_); + return caml_call1(Runtime_ocaml_Runtime[69],_ceY_)} + function _ceH_(param) + {var + _ceS_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _ceT_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ceS_), + _ceU_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _ceV_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ceU_), + _ceW_=caml_call2(Runtime_ocaml_Runtime[83],_ceV_,_ceT_); + return caml_call2(Runtime_ocaml_Runtime[29],_rG_,_ceW_)} + var + _ceI_= + [0, + function(param) + {function _ceJ_(param) + {var + _ceQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$45), + _ceR_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ceQ_); + return caml_call1(Runtime_ocaml_Runtime[69],_ceR_)} + function _ceK_(param) + {var + _ceL_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _ceM_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ceL_), + _ceN_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _ceO_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ceN_), + _ceP_=caml_call2(Runtime_ocaml_Runtime[83],_ceO_,_ceM_); + return caml_call2(Runtime_ocaml_Runtime[29],_rH_,_ceP_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_rI_,[0],_ceK_,_ceJ_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rJ_,_ceI_,_ceH_,_ceG_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rK_,_ceF_,_ceE_,_ceD_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rL_,_ceC_,_ceB_,_ceA_)}, + _bUU_=function(param){return 1}, + _bUV_= + [0, + function(param) + {function _cdx_(param){throw Runtime_ocaml_Runtime[2]} + function _cdy_(param){return 0} + var + _cdz_= + [0, + function(param) + {function _cdA_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$8)} + function _cdB_(param) + {var + _ceq_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$18), + _cer_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_ceq_); + switch(residence[0]) + {case 0:var _ces_=1;break; + case 1:var _ces_=0;break; + case 2:var _ces_=1;break; + case 3:var _ces_=1;break; + case 4:var _ces_=1;break; + case 5:var _ces_=1;break; + case 6:var _ces_=0;break; + case 7:var _ces_=0;break; + default:var _ces_=1} + var + _cet_=caml_call2(Runtime_ocaml_Runtime[83],_ces_,_cer_), + _ceu_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _cev_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ceu_), + _cew_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cex_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cew_), + _cey_=caml_call2(Runtime_ocaml_Runtime[83],_cex_,_cev_), + _cez_=caml_call2(Runtime_ocaml_Runtime[83],_cey_,_cet_); + return caml_call2(Runtime_ocaml_Runtime[29],_rM_,_cez_)} + var + _cdC_= + [0, + function(param) + {function _cdD_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$9)} + function _cdE_(param) + {var + _ceg_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$19), + _ceh_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_ceg_); + switch(residence[0]) + {case 0:var _cei_=1;break; + case 1:var _cei_=0;break; + case 2:var _cei_=1;break; + case 3:var _cei_=1;break; + case 4:var _cei_=1;break; + case 5:var _cei_=1;break; + case 6:var _cei_=0;break; + case 7:var _cei_=0;break; + default:var _cei_=1} + var + _cej_=caml_call2(Runtime_ocaml_Runtime[83],_cei_,_ceh_), + _cek_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cel_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cek_), + _cem_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cen_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cem_), + _ceo_=caml_call2(Runtime_ocaml_Runtime[83],_cen_,_cel_), + _cep_=caml_call2(Runtime_ocaml_Runtime[83],_ceo_,_cej_); + return caml_call2(Runtime_ocaml_Runtime[29],_rN_,_cep_)} + var + _cdF_= + [0, + function(param) + {function _cdG_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$10)} + function _cdH_(param) + {var + _cd8_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$20), + _cd9_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cd8_); + switch(residence[0]) + {case 0:var _cd__=1;break; + case 1:var _cd__=0;break; + case 2:var _cd__=1;break; + case 3:var _cd__=1;break; + case 4:var _cd__=1;break; + case 5:var _cd__=1;break; + case 6:var _cd__=0;break; + case 7:var _cd__=0;break; + default:var _cd__=1} + var + _cd$_=caml_call2(Runtime_ocaml_Runtime[83],_cd__,_cd9_), + _cea_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _ceb_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cea_), + _cec_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _ced_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cec_), + _cee_=caml_call2(Runtime_ocaml_Runtime[83],_ced_,_ceb_), + _cef_=caml_call2(Runtime_ocaml_Runtime[83],_cee_,_cd$_); + return caml_call2(Runtime_ocaml_Runtime[29],_rO_,_cef_)} + var + _cdI_= + [0, + function(param) + {function _cdJ_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$11)} + function _cdK_(param) + {var + _cdY_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$21), + _cdZ_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cdY_); + switch(residence[0]) + {case 0:var _cd0_=1;break; + case 1:var _cd0_=0;break; + case 2:var _cd0_=1;break; + case 3:var _cd0_=1;break; + case 4:var _cd0_=1;break; + case 5:var _cd0_=1;break; + case 6:var _cd0_=0;break; + case 7:var _cd0_=0;break; + default:var _cd0_=1} + var + _cd1_=caml_call2(Runtime_ocaml_Runtime[83],_cd0_,_cdZ_), + _cd2_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cd3_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cd2_), + _cd4_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _cd5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cd4_), + _cd6_=caml_call2(Runtime_ocaml_Runtime[83],_cd5_,_cd3_), + _cd7_=caml_call2(Runtime_ocaml_Runtime[83],_cd6_,_cd1_); + return caml_call2(Runtime_ocaml_Runtime[29],_rP_,_cd7_)} + var + _cdL_= + [0, + function(param) + {function _cdM_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$12)} + function _cdN_(param) + {var + _cdO_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$22), + _cdP_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cdO_); + switch(residence[0]) + {case 0:var _cdQ_=1;break; + case 1:var _cdQ_=0;break; + case 2:var _cdQ_=1;break; + case 3:var _cdQ_=1;break; + case 4:var _cdQ_=1;break; + case 5:var _cdQ_=1;break; + case 6:var _cdQ_=0;break; + case 7:var _cdQ_=0;break; + default:var _cdQ_=1} + var + _cdR_=caml_call2(Runtime_ocaml_Runtime[83],_cdQ_,_cdP_), + _cdS_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _cdT_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cdS_), + _cdU_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cdV_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cdU_), + _cdW_=caml_call2(Runtime_ocaml_Runtime[83],_cdV_,_cdT_), + _cdX_=caml_call2(Runtime_ocaml_Runtime[83],_cdW_,_cdR_); + return caml_call2(Runtime_ocaml_Runtime[29],_rQ_,_cdX_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_rR_,[0],_cdN_,_cdM_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rS_,_cdL_,_cdK_,_cdJ_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rT_,_cdI_,_cdH_,_cdG_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rU_,_cdF_,_cdE_,_cdD_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rV_,_cdC_,_cdB_,_cdA_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_rW_,_cdz_,_cdy_,_cdx_)}], + _bUW_=caml_call4(Runtime_ocaml_Runtime[63],_rX_,_bUV_,_bUU_,_bUT_)} + catch(_cdw_) + {_cdw_ = caml_wrap_exception(_cdw_); + if(_cdw_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_rE_]; + throw _cdw_} + var + multiplicateur_majoration_loye= + caml_call3 + (Runtime_ocaml_Runtime[28],_rY_,Runtime_ocaml_Runtime[15],_bUW_); + try + {var + _bUX_= + function(param) + {function _ccJ_(param){throw Runtime_ocaml_Runtime[2]} + function _ccK_(param){return 0} + var + _ccL_= + [0, + function(param) + {function _ccM_(param) + {var + _cdu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$46), + _cdv_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cdu_); + return caml_call1(Runtime_ocaml_Runtime[69],_cdv_)} + function _ccN_(param) + {var + _cds_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cdt_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cds_); + return caml_call2(Runtime_ocaml_Runtime[29],_r0_,_cdt_)} + var + _ccO_= + [0, + function(param) + {function _ccP_(param) + {var + _cdq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$47), + _cdr_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cdq_); + return caml_call1(Runtime_ocaml_Runtime[69],_cdr_)} + function _ccQ_(param) + {var + _cdl_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cdm_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cdl_), + _cdn_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cdo_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cdn_), + _cdp_=caml_call2(Runtime_ocaml_Runtime[83],_cdo_,_cdm_); + return caml_call2(Runtime_ocaml_Runtime[29],_r1_,_cdp_)} + var + _ccR_= + [0, + function(param) + {function _ccS_(param) + {var + _cdj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$48), + _cdk_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cdj_); + return caml_call1(Runtime_ocaml_Runtime[69],_cdk_)} + function _ccT_(param) + {var + _cdd_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cde_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cdd_), + _cdf_=caml_call2(Runtime_ocaml_Runtime[83],_cde_,colocation), + _cdg_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cdh_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cdg_), + _cdi_=caml_call2(Runtime_ocaml_Runtime[83],_cdh_,_cdf_); + return caml_call2(Runtime_ocaml_Runtime[29],_r2_,_cdi_)} + var + _ccU_= + [0, + function(param) + {function _ccV_(param) + {var + _cdb_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$49), + _cdc_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cdb_); + return caml_call1(Runtime_ocaml_Runtime[69],_cdc_)} + function _ccW_(param) + {var + _cc8_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _cc9_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cc8_), + _cc__=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cc$_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cc__), + _cda_=caml_call2(Runtime_ocaml_Runtime[83],_cc$_,_cc9_); + return caml_call2(Runtime_ocaml_Runtime[29],_r3_,_cda_)} + var + _ccX_= + [0, + function(param) + {function _ccY_(param) + {var + _cc6_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$50), + _cc7_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cc6_); + return caml_call1(Runtime_ocaml_Runtime[69],_cc7_)} + function _ccZ_(param) + {var + _cc0_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _cc1_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cc0_), + _cc2_=caml_call2(Runtime_ocaml_Runtime[83],_cc1_,colocation), + _cc3_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cc4_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cc3_), + _cc5_=caml_call2(Runtime_ocaml_Runtime[83],_cc4_,_cc2_); + return caml_call2(Runtime_ocaml_Runtime[29],_r4_,_cc5_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_r5_,[0],_ccZ_,_ccY_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_r6_,_ccX_,_ccW_,_ccV_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_r7_,_ccU_,_ccT_,_ccS_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_r8_,_ccR_,_ccQ_,_ccP_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_r9_,_ccO_,_ccN_,_ccM_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_r__,_ccL_,_ccK_,_ccJ_)}, + _bUY_=function(param){return 1}, + _bUZ_= + [0, + function(param) + {function _cbG_(param){throw Runtime_ocaml_Runtime[2]} + function _cbH_(param){return 0} + var + _cbI_= + [0, + function(param) + {function _cbJ_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$13)} + function _cbK_(param) + {var + _ccz_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$23), + _ccA_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_ccz_); + switch(residence[0]) + {case 0:var _ccB_=1;break; + case 1:var _ccB_=0;break; + case 2:var _ccB_=1;break; + case 3:var _ccB_=1;break; + case 4:var _ccB_=1;break; + case 5:var _ccB_=1;break; + case 6:var _ccB_=0;break; + case 7:var _ccB_=0;break; + default:var _ccB_=1} + var + _ccC_=caml_call2(Runtime_ocaml_Runtime[83],_ccB_,_ccA_), + _ccD_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _ccE_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ccD_), + _ccF_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _ccG_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ccF_), + _ccH_=caml_call2(Runtime_ocaml_Runtime[83],_ccG_,_ccE_), + _ccI_=caml_call2(Runtime_ocaml_Runtime[83],_ccH_,_ccC_); + return caml_call2(Runtime_ocaml_Runtime[29],_r$_,_ccI_)} + var + _cbL_= + [0, + function(param) + {function _cbM_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$14)} + function _cbN_(param) + {var + _ccp_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$24), + _ccq_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_ccp_); + switch(residence[0]) + {case 0:var _ccr_=1;break; + case 1:var _ccr_=0;break; + case 2:var _ccr_=1;break; + case 3:var _ccr_=1;break; + case 4:var _ccr_=1;break; + case 5:var _ccr_=1;break; + case 6:var _ccr_=0;break; + case 7:var _ccr_=0;break; + default:var _ccr_=1} + var + _ccs_=caml_call2(Runtime_ocaml_Runtime[83],_ccr_,_ccq_), + _cct_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _ccu_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cct_), + _ccv_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _ccw_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ccv_), + _ccx_=caml_call2(Runtime_ocaml_Runtime[83],_ccw_,_ccu_), + _ccy_=caml_call2(Runtime_ocaml_Runtime[83],_ccx_,_ccs_); + return caml_call2(Runtime_ocaml_Runtime[29],_sa_,_ccy_)} + var + _cbO_= + [0, + function(param) + {function _cbP_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$15)} + function _cbQ_(param) + {var + _ccf_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$25), + _ccg_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_ccf_); + switch(residence[0]) + {case 0:var _cch_=1;break; + case 1:var _cch_=0;break; + case 2:var _cch_=1;break; + case 3:var _cch_=1;break; + case 4:var _cch_=1;break; + case 5:var _cch_=1;break; + case 6:var _cch_=0;break; + case 7:var _cch_=0;break; + default:var _cch_=1} + var + _cci_=caml_call2(Runtime_ocaml_Runtime[83],_cch_,_ccg_), + _ccj_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cck_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ccj_), + _ccl_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _ccm_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ccl_), + _ccn_=caml_call2(Runtime_ocaml_Runtime[83],_ccm_,_cck_), + _cco_=caml_call2(Runtime_ocaml_Runtime[83],_ccn_,_cci_); + return caml_call2(Runtime_ocaml_Runtime[29],_sb_,_cco_)} + var + _cbR_= + [0, + function(param) + {function _cbS_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$16)} + function _cbT_(param) + {var + _cb7_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$26), + _cb8_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cb7_); + switch(residence[0]) + {case 0:var _cb9_=1;break; + case 1:var _cb9_=0;break; + case 2:var _cb9_=1;break; + case 3:var _cb9_=1;break; + case 4:var _cb9_=1;break; + case 5:var _cb9_=1;break; + case 6:var _cb9_=0;break; + case 7:var _cb9_=0;break; + default:var _cb9_=1} + var + _cb__=caml_call2(Runtime_ocaml_Runtime[83],_cb9_,_cb8_), + _cb$_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cca_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cb$_), + _ccb_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _ccc_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ccb_), + _ccd_=caml_call2(Runtime_ocaml_Runtime[83],_ccc_,_cca_), + _cce_=caml_call2(Runtime_ocaml_Runtime[83],_ccd_,_cb__); + return caml_call2(Runtime_ocaml_Runtime[29],_sc_,_cce_)} + var + _cbU_= + [0, + function(param) + {function _cbV_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$17)} + function _cbW_(param) + {var + _cbX_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$27), + _cbY_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cbX_); + switch(residence[0]) + {case 0:var _cbZ_=1;break; + case 1:var _cbZ_=0;break; + case 2:var _cbZ_=1;break; + case 3:var _cbZ_=1;break; + case 4:var _cbZ_=1;break; + case 5:var _cbZ_=1;break; + case 6:var _cbZ_=0;break; + case 7:var _cbZ_=0;break; + default:var _cbZ_=1} + var + _cb0_=caml_call2(Runtime_ocaml_Runtime[83],_cbZ_,_cbY_), + _cb1_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _cb2_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cb1_), + _cb3_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _cb4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cb3_), + _cb5_=caml_call2(Runtime_ocaml_Runtime[83],_cb4_,_cb2_), + _cb6_=caml_call2(Runtime_ocaml_Runtime[83],_cb5_,_cb0_); + return caml_call2(Runtime_ocaml_Runtime[29],_sd_,_cb6_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_se_,[0],_cbW_,_cbV_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_sf_,_cbU_,_cbT_,_cbS_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_sg_,_cbR_,_cbQ_,_cbP_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_sh_,_cbO_,_cbN_,_cbM_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_si_,_cbL_,_cbK_,_cbJ_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_sj_,_cbI_,_cbH_,_cbG_)}], + _bU0_=caml_call4(Runtime_ocaml_Runtime[63],_sk_,_bUZ_,_bUY_,_bUX_)} + catch(_cbF_) + {_cbF_ = caml_wrap_exception(_cbF_); + if(_cbF_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_rZ_]; + throw _cbF_} + var + multiplicateur_majoration_plaf= + caml_call3 + (Runtime_ocaml_Runtime[28],_sl_,Runtime_ocaml_Runtime[15],_bU0_); + try + {var + _bU1_= + function(param) + {function _ca$_(param){throw Runtime_ocaml_Runtime[2]} + function _cba_(param){return 0} + function _cbb_(param) + {function _cbv_(param) + {var + _cbC_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224), + _cbD_= caml_call2 (Runtime_ocaml_Runtime[104], - _bXl_, + _cbC_, multiplicateur_majoration_char), - _bXn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612); - return caml_call2(Runtime_ocaml_Runtime[93], _bXn_, _bXm_); - } - function _bXi_(param){ - var - _bXj_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bXk_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bXj_); - return caml_call2(Runtime_ocaml_Runtime[29], _gP_, _bXk_); - } + _cbE_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399); + return caml_call2(Runtime_ocaml_Runtime[93],_cbE_,_cbD_)} + function _cbw_(param) + {var + _cbx_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _cby_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cbx_), + _cbz_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cbA_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cbz_), + _cbB_=caml_call2(Runtime_ocaml_Runtime[83],_cbA_,_cby_); + return caml_call2(Runtime_ocaml_Runtime[29],_sn_,_cbB_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _gQ_, [0], _bXi_, _bXh_); - }, - _bXf_, - _bXe_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gR_, _bXg_, _bXd_, _bXc_); - }, - _bEI_ = function(param){return 1;}, - _bEJ_ = - [0, - function(param){ - function _bTm_(param){ - function _bVC_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bVD_(param){return 0;} - function _bVE_(param){ - function _bWX_(param){ - var - _bW6_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bW7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929), - _bW8_ = caml_call2(Runtime_ocaml_Runtime[104], _bW7_, _bW6_), - _bW9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614), - montant = caml_call2(Runtime_ocaml_Runtime[93], _bW9_, _bW8_), - _bW__ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$28), - _bW$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$0), - _bXa_ = caml_call2(Runtime_ocaml_Runtime[104], _bW$_, _bW__), - _bXb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$0), - limite = caml_call2(Runtime_ocaml_Runtime[93], _bXb_, _bXa_); - return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _bWY_(param){ - switch(residence[0]){ - case 0: - var _bWZ_ = 1; break; - case 1: - var _bWZ_ = 0; break; - case 2: - var _bWZ_ = 1; break; - case 3: - var _bWZ_ = 1; break; - case 4: - var _bWZ_ = 1; break; - case 5: - var _bWZ_ = 1; break; - case 6: - var _bWZ_ = 0; break; - case 7: - var _bWZ_ = 0; break; - default: var _bWZ_ = 1; - } - var - _bW0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bW1_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bW0_), - _bW2_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _bW3_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bW2_), - _bW4_ = caml_call2(Runtime_ocaml_Runtime[83], _bW3_, _bW1_), - _bW5_ = caml_call2(Runtime_ocaml_Runtime[83], _bW4_, _bWZ_); - return caml_call2(Runtime_ocaml_Runtime[29], _gS_, _bW5_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gT_, [0], _bWY_, _bWX_); - } - function _bVF_(param){ - function _bWG_(param){ - var - _bWP_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bWQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932), - _bWR_ = caml_call2(Runtime_ocaml_Runtime[104], _bWQ_, _bWP_), - _bWS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625), - montant = caml_call2(Runtime_ocaml_Runtime[93], _bWS_, _bWR_), - _bWT_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$29), - _bWU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$0), - _bWV_ = caml_call2(Runtime_ocaml_Runtime[104], _bWU_, _bWT_), - _bWW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$0), - limite = caml_call2(Runtime_ocaml_Runtime[93], _bWW_, _bWV_); - return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _bWH_(param){ - switch(residence[0]){ - case 0: - var _bWI_ = 1; break; - case 1: - var _bWI_ = 0; break; - case 2: - var _bWI_ = 1; break; - case 3: - var _bWI_ = 1; break; - case 4: - var _bWI_ = 1; break; - case 5: - var _bWI_ = 1; break; - case 6: - var _bWI_ = 0; break; - case 7: - var _bWI_ = 0; break; - default: var _bWI_ = 1; - } - var - _bWJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bWK_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bWJ_), - _bWL_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bWM_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bWL_), - _bWN_ = caml_call2(Runtime_ocaml_Runtime[83], _bWM_, _bWK_), - _bWO_ = caml_call2(Runtime_ocaml_Runtime[83], _bWN_, _bWI_); - return caml_call2(Runtime_ocaml_Runtime[29], _gU_, _bWO_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gV_, [0], _bWH_, _bWG_); - } - function _bVG_(param){ - function _bV9_(param){ - var - _bWy_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bWz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936), - _bWA_ = caml_call2(Runtime_ocaml_Runtime[104], _bWz_, _bWy_), - _bWB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640), - montant = caml_call2(Runtime_ocaml_Runtime[93], _bWB_, _bWA_), - _bWC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$30), - _bWD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$0), - _bWE_ = caml_call2(Runtime_ocaml_Runtime[104], _bWD_, _bWC_), - _bWF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$0), - limite = caml_call2(Runtime_ocaml_Runtime[93], _bWF_, _bWE_); - return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _bV__(param){ - switch(residence[0]){ - case 0: - var _bWr_ = 1; break; - case 1: - var _bWr_ = 0; break; - case 2: - var _bWr_ = 1; break; - case 3: - var _bWr_ = 1; break; - case 4: - var _bWr_ = 1; break; - case 5: - var _bWr_ = 1; break; - case 6: - var _bWr_ = 0; break; - case 7: - var _bWr_ = 0; break; - default: var _bWr_ = 1; - } - var - _bWs_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bWt_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bWs_), - _bWu_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bWv_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bWu_), - _bWw_ = caml_call2(Runtime_ocaml_Runtime[83], _bWv_, _bWt_), - _bWx_ = caml_call2(Runtime_ocaml_Runtime[83], _bWw_, _bWr_); - return caml_call2(Runtime_ocaml_Runtime[29], _gW_, _bWx_); - } + (Runtime_ocaml_Runtime[63],_so_,[0],_cbw_,_cbv_)} + function _cbc_(param) + {function _cbl_(param) + {var + _cbs_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229), + _cbt_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _cbs_, + multiplicateur_majoration_char), + _cbu_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422); + return caml_call2(Runtime_ocaml_Runtime[93],_cbu_,_cbt_)} + function _cbm_(param) + {var + _cbn_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cbo_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cbn_), + _cbp_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cbq_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cbp_), + _cbr_=caml_call2(Runtime_ocaml_Runtime[83],_cbq_,_cbo_); + return caml_call2(Runtime_ocaml_Runtime[29],_sp_,_cbr_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sq_,[0],_cbm_,_cbl_)} var - _bV$_ = - [0, - function(param){ - function _bWa_(param){ - var - _bWj_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bWk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$1), - _bWl_ = caml_call2(Runtime_ocaml_Runtime[104], _bWk_, _bWj_), - _bWm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$1), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _bWm_, _bWl_), - _bWn_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$31), - _bWo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$2), - _bWp_ = caml_call2(Runtime_ocaml_Runtime[104], _bWo_, _bWn_), - _bWq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$2), - limite = caml_call2(Runtime_ocaml_Runtime[93], _bWq_, _bWp_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _bWb_(param){ - switch(residence[0]){ - case 0: - var _bWc_ = 1; break; - case 1: - var _bWc_ = 0; break; - case 2: - var _bWc_ = 1; break; - case 3: - var _bWc_ = 1; break; - case 4: - var _bWc_ = 1; break; - case 5: - var _bWc_ = 1; break; - case 6: - var _bWc_ = 0; break; - case 7: - var _bWc_ = 0; break; - default: var _bWc_ = 1; - } - var - _bWd_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bWe_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bWd_), - _bWf_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bWg_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bWf_), - _bWh_ = caml_call2(Runtime_ocaml_Runtime[83], _bWg_, _bWe_), - _bWi_ = caml_call2(Runtime_ocaml_Runtime[83], _bWh_, _bWc_); - return caml_call2(Runtime_ocaml_Runtime[29], _gX_, _bWi_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _gY_, [0], _bWb_, _bWa_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _gZ_, _bV$_, _bV__, _bV9_); - } - function _bVH_(param){ - function _bVS_(param){ - var - _bV1_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bV2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969), - _bV3_ = caml_call2(Runtime_ocaml_Runtime[104], _bV2_, _bV1_), - _bV4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767), - montant = caml_call2(Runtime_ocaml_Runtime[93], _bV4_, _bV3_), - _bV5_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$32), - _bV6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$0), - _bV7_ = caml_call2(Runtime_ocaml_Runtime[104], _bV6_, _bV5_), - _bV8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$0), - limite = caml_call2(Runtime_ocaml_Runtime[93], _bV8_, _bV7_); - return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _bVT_(param){ - switch(residence[0]){ - case 0: - var _bVU_ = 1; break; - case 1: - var _bVU_ = 0; break; - case 2: - var _bVU_ = 1; break; - case 3: - var _bVU_ = 1; break; - case 4: - var _bVU_ = 1; break; - case 5: - var _bVU_ = 1; break; - case 6: - var _bVU_ = 0; break; - case 7: - var _bVU_ = 0; break; - default: var _bVU_ = 1; - } - var - _bVV_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _bVW_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bVV_), - _bVX_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bVY_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVX_), - _bVZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bVY_, _bVW_), - _bV0_ = caml_call2(Runtime_ocaml_Runtime[83], _bVZ_, _bVU_); - return caml_call2(Runtime_ocaml_Runtime[29], _g0_, _bV0_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _g1_, [0], _bVT_, _bVS_); - } - var - _bVI_ = + _cbd_= [0, - function(param){ - function _bVJ_(param){ - var - _bVP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$1), - _bVQ_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bVP_, - multiplicateur_majoration_char), - _bVR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$1); - return caml_call2(Runtime_ocaml_Runtime[93], _bVR_, _bVQ_); - } - function _bVK_(param){ - switch(residence[0]){ - case 0: - var _bVL_ = 1; break; - case 1: - var _bVL_ = 0; break; - case 2: - var _bVL_ = 1; break; - case 3: - var _bVL_ = 1; break; - case 4: - var _bVL_ = 1; break; - case 5: - var _bVL_ = 1; break; - case 6: - var _bVL_ = 0; break; - case 7: - var _bVL_ = 0; break; - default: var _bVL_ = 1; - } - var - _bVM_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _bVN_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVM_), - _bVO_ = caml_call2(Runtime_ocaml_Runtime[83], _bVN_, _bVL_); - return caml_call2(Runtime_ocaml_Runtime[29], _g2_, _bVO_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _g3_, [0], _bVK_, _bVJ_); - }, - _bVH_, - _bVG_, - _bVF_, - _bVE_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _g4_, _bVI_, _bVD_, _bVC_); - } - function _bTn_(param){return 1;} - var - _bTo_ = - [0, - function(param){ - function _bTp_(param){ - function _bU5_(param){ - throw caml_maybe_attach_backtrace - (Runtime_ocaml_Runtime[2], 1); - } - function _bU6_(param){return 0;} - function _bU7_(param){ - function _bVr_(param){ - var - _bVz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$0), - _bVA_ = + function(param) + {function _cbe_(param) + {var + _cbi_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272), + _cbj_= caml_call2 (Runtime_ocaml_Runtime[104], - _bVz_, + _cbi_, multiplicateur_majoration_char), - _bVB_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_2699) - : caml_call1(Runtime_ocaml_Runtime[31], cst_5399$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bVB_, _bVA_); - } - function _bVs_(param){ - var - _bVt_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bVu_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVt_), - _bVv_ = - caml_call2(Runtime_ocaml_Runtime[83], _bVu_, colocation), - _bVw_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bVx_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bVw_), - _bVy_ = caml_call2(Runtime_ocaml_Runtime[83], _bVx_, _bVv_); - return caml_call2(Runtime_ocaml_Runtime[29], _g5_, _bVy_); - } + _cbk_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612); + return caml_call2(Runtime_ocaml_Runtime[93],_cbk_,_cbj_)} + function _cbf_(param) + {var + _cbg_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _cbh_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cbg_); + return caml_call2(Runtime_ocaml_Runtime[29],_sr_,_cbh_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _g6_, [0], _bVs_, _bVr_); - } - function _bU8_(param){ - function _bVg_(param){ - var - _bVo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$0), - _bVp_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bVo_, - multiplicateur_majoration_char), - _bVq_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_2710) - : caml_call1(Runtime_ocaml_Runtime[31], cst_5422$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bVq_, _bVp_); - } - function _bVh_(param){ - var - _bVi_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bVj_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bVi_), - _bVk_ = - caml_call2(Runtime_ocaml_Runtime[83], _bVj_, colocation), - _bVl_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bVm_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVl_), - _bVn_ = caml_call2(Runtime_ocaml_Runtime[83], _bVm_, _bVk_); - return caml_call2(Runtime_ocaml_Runtime[29], _g7_, _bVn_); - } + (Runtime_ocaml_Runtime[63],_ss_,[0],_cbf_,_cbe_)}, + _cbc_, + _cbb_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_st_,_cbd_,_cba_,_ca$_)}, + _bU2_=function(param){return 1}, + _bU3_= + [0, + function(param) + {function _b9j_(param) + {function _b$z_(param){throw Runtime_ocaml_Runtime[2]} + function _b$A_(param){return 0} + function _b$B_(param) + {function _caU_(param) + {var + _ca3_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _ca4_=caml_call1(Runtime_ocaml_Runtime[31],cst_929), + _ca5_=caml_call2(Runtime_ocaml_Runtime[104],_ca4_,_ca3_), + _ca6_=caml_call1(Runtime_ocaml_Runtime[31],cst_3614), + montant=caml_call2(Runtime_ocaml_Runtime[93],_ca6_,_ca5_), + _ca7_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$28), + _ca8_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$0), + _ca9_=caml_call2(Runtime_ocaml_Runtime[104],_ca8_,_ca7_), + _ca__=caml_call1(Runtime_ocaml_Runtime[31],cst_3614$0), + limite=caml_call2(Runtime_ocaml_Runtime[93],_ca__,_ca9_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _caV_(param) + {switch(residence[0]) + {case 0:var _caW_=1;break; + case 1:var _caW_=0;break; + case 2:var _caW_=1;break; + case 3:var _caW_=1;break; + case 4:var _caW_=1;break; + case 5:var _caW_=1;break; + case 6:var _caW_=0;break; + case 7:var _caW_=0;break; + default:var _caW_=1} + var + _caX_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _caY_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_caX_), + _caZ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _ca0_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_caZ_), + _ca1_=caml_call2(Runtime_ocaml_Runtime[83],_ca0_,_caY_), + _ca2_=caml_call2(Runtime_ocaml_Runtime[83],_ca1_,_caW_); + return caml_call2(Runtime_ocaml_Runtime[29],_su_,_ca2_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _g8_, [0], _bVh_, _bVg_); - } - var - _bU9_ = + (Runtime_ocaml_Runtime[63],_sv_,[0],_caV_,_caU_)} + function _b$C_(param) + {function _caD_(param) + {var + _caM_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _caN_=caml_call1(Runtime_ocaml_Runtime[31],cst_932), + _caO_=caml_call2(Runtime_ocaml_Runtime[104],_caN_,_caM_), + _caP_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625), + montant=caml_call2(Runtime_ocaml_Runtime[93],_caP_,_caO_), + _caQ_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$29), + _caR_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$0), + _caS_=caml_call2(Runtime_ocaml_Runtime[104],_caR_,_caQ_), + _caT_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625$0), + limite=caml_call2(Runtime_ocaml_Runtime[93],_caT_,_caS_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _caE_(param) + {switch(residence[0]) + {case 0:var _caF_=1;break; + case 1:var _caF_=0;break; + case 2:var _caF_=1;break; + case 3:var _caF_=1;break; + case 4:var _caF_=1;break; + case 5:var _caF_=1;break; + case 6:var _caF_=0;break; + case 7:var _caF_=0;break; + default:var _caF_=1} + var + _caG_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _caH_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_caG_), + _caI_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _caJ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_caI_), + _caK_=caml_call2(Runtime_ocaml_Runtime[83],_caJ_,_caH_), + _caL_=caml_call2(Runtime_ocaml_Runtime[83],_caK_,_caF_); + return caml_call2(Runtime_ocaml_Runtime[29],_sw_,_caL_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sx_,[0],_caE_,_caD_)} + function _b$D_(param) + {function _b$6_(param) + {var + _cav_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _caw_=caml_call1(Runtime_ocaml_Runtime[31],cst_936), + _cax_=caml_call2(Runtime_ocaml_Runtime[104],_caw_,_cav_), + _cay_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640), + montant=caml_call2(Runtime_ocaml_Runtime[93],_cay_,_cax_), + _caz_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$30), + _caA_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$0), + _caB_=caml_call2(Runtime_ocaml_Runtime[104],_caA_,_caz_), + _caC_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$0), + limite=caml_call2(Runtime_ocaml_Runtime[93],_caC_,_caB_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _b$7_(param) + {switch(residence[0]) + {case 0:var _cao_=1;break; + case 1:var _cao_=0;break; + case 2:var _cao_=1;break; + case 3:var _cao_=1;break; + case 4:var _cao_=1;break; + case 5:var _cao_=1;break; + case 6:var _cao_=0;break; + case 7:var _cao_=0;break; + default:var _cao_=1} + var + _cap_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _caq_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cap_), + _car_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cas_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_car_), + _cat_=caml_call2(Runtime_ocaml_Runtime[83],_cas_,_caq_), + _cau_=caml_call2(Runtime_ocaml_Runtime[83],_cat_,_cao_); + return caml_call2(Runtime_ocaml_Runtime[29],_sy_,_cau_)} + var + _b$8_= [0, - function(param){ - function _bU__(param){ - var - _bVd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$0), - _bVe_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bVd_, - multiplicateur_majoration_char), - _bVf_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_2805) - : caml_call1(Runtime_ocaml_Runtime[31], cst_5612$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bVf_, _bVe_); - } - function _bU$_(param){ - var - _bVa_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bVb_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVa_), - _bVc_ = - caml_call2(Runtime_ocaml_Runtime[83], _bVb_, colocation); - return caml_call2(Runtime_ocaml_Runtime[29], _g9_, _bVc_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _g__, [0], _bU$_, _bU__); - }, - _bU8_, - _bU7_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _g$_, _bU9_, _bU6_, _bU5_); - } - function _bTq_(param){return 1;} + function(param) + {function _b$9_(param) + {var + _cag_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _cah_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$1), + _cai_=caml_call2(Runtime_ocaml_Runtime[104],_cah_,_cag_), + _caj_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$1), + montant=caml_call2(Runtime_ocaml_Runtime[93],_caj_,_cai_), + _cak_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$31), + _cal_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$2), + _cam_=caml_call2(Runtime_ocaml_Runtime[104],_cal_,_cak_), + _can_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$2), + limite=caml_call2(Runtime_ocaml_Runtime[93],_can_,_cam_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _b$__(param) + {switch(residence[0]) + {case 0:var _b$$_=1;break; + case 1:var _b$$_=0;break; + case 2:var _b$$_=1;break; + case 3:var _b$$_=1;break; + case 4:var _b$$_=1;break; + case 5:var _b$$_=1;break; + case 6:var _b$$_=0;break; + case 7:var _b$$_=0;break; + default:var _b$$_=1} + var + _caa_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _cab_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_caa_), + _cac_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _cad_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cac_), + _cae_=caml_call2(Runtime_ocaml_Runtime[83],_cad_,_cab_), + _caf_=caml_call2(Runtime_ocaml_Runtime[83],_cae_,_b$$_); + return caml_call2(Runtime_ocaml_Runtime[29],_sz_,_caf_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sA_,[0],_b$__,_b$9_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_sB_,_b$8_,_b$7_,_b$6_)} + function _b$E_(param) + {function _b$P_(param) + {var + _b$Y_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _b$Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_969), + _b$0_=caml_call2(Runtime_ocaml_Runtime[104],_b$Z_,_b$Y_), + _b$1_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767), + montant=caml_call2(Runtime_ocaml_Runtime[93],_b$1_,_b$0_), + _b$2_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$32), + _b$3_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$0), + _b$4_=caml_call2(Runtime_ocaml_Runtime[104],_b$3_,_b$2_), + _b$5_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$0), + limite=caml_call2(Runtime_ocaml_Runtime[93],_b$5_,_b$4_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _b$Q_(param) + {switch(residence[0]) + {case 0:var _b$R_=1;break; + case 1:var _b$R_=0;break; + case 2:var _b$R_=1;break; + case 3:var _b$R_=1;break; + case 4:var _b$R_=1;break; + case 5:var _b$R_=1;break; + case 6:var _b$R_=0;break; + case 7:var _b$R_=0;break; + default:var _b$R_=1} + var + _b$S_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _b$T_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b$S_), + _b$U_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b$V_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b$U_), + _b$W_=caml_call2(Runtime_ocaml_Runtime[83],_b$V_,_b$T_), + _b$X_=caml_call2(Runtime_ocaml_Runtime[83],_b$W_,_b$R_); + return caml_call2(Runtime_ocaml_Runtime[29],_sC_,_b$X_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sD_,[0],_b$Q_,_b$P_)} var - _bTr_ = - [0, - function(param){ - function _bTs_(param){ - throw caml_maybe_attach_backtrace - (Runtime_ocaml_Runtime[2], 1); - } - function _bTt_(param){return 0;} - function _bTu_(param){ - function _bUO_(param){ + _b$F_= + [0, + function(param) + {function _b$G_(param) + {var + _b$M_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$1), + _b$N_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b$M_, + multiplicateur_majoration_char), + _b$O_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$1); + return caml_call2(Runtime_ocaml_Runtime[93],_b$O_,_b$N_)} + function _b$H_(param) + {switch(residence[0]) + {case 0:var _b$I_=1;break; + case 1:var _b$I_=0;break; + case 2:var _b$I_=1;break; + case 3:var _b$I_=1;break; + case 4:var _b$I_=1;break; + case 5:var _b$I_=1;break; + case 6:var _b$I_=0;break; + case 7:var _b$I_=0;break; + default:var _b$I_=1} var - _bUX_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bUY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$1), - _bUZ_ = caml_call2(Runtime_ocaml_Runtime[104], _bUY_, _bUX_), - _bU0_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$2), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _bU0_, _bUZ_), - _bU1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$33), - _bU2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$2), - _bU3_ = caml_call2(Runtime_ocaml_Runtime[104], _bU2_, _bU1_), - _bU4_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$1), - limite = caml_call2(Runtime_ocaml_Runtime[93], _bU4_, _bU3_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _bUP_(param){ - switch(residence[0]){ - case 0: - var _bUQ_ = 1; break; - case 1: - var _bUQ_ = 0; break; - case 2: - var _bUQ_ = 1; break; - case 3: - var _bUQ_ = 1; break; - case 4: - var _bUQ_ = 1; break; - case 5: - var _bUQ_ = 1; break; - case 6: - var _bUQ_ = 0; break; - case 7: - var _bUQ_ = 0; break; - default: var _bUQ_ = 1; - } - var - _bUR_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bUS_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bUR_), - _bUT_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _bUU_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bUT_), - _bUV_ = caml_call2(Runtime_ocaml_Runtime[83], _bUU_, _bUS_), - _bUW_ = caml_call2(Runtime_ocaml_Runtime[83], _bUV_, _bUQ_); - return caml_call2(Runtime_ocaml_Runtime[29], _ha_, _bUW_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hb_, [0], _bUP_, _bUO_); - } - function _bTv_(param){ - function _bUx_(param){ - var - _bUG_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bUH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$1), - _bUI_ = caml_call2(Runtime_ocaml_Runtime[104], _bUH_, _bUG_), - _bUJ_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$2), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _bUJ_, _bUI_), - _bUK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$34), - _bUL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$2), - _bUM_ = caml_call2(Runtime_ocaml_Runtime[104], _bUL_, _bUK_), - _bUN_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$1), - limite = caml_call2(Runtime_ocaml_Runtime[93], _bUN_, _bUM_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _bUy_(param){ - switch(residence[0]){ - case 0: - var _bUz_ = 1; break; - case 1: - var _bUz_ = 0; break; - case 2: - var _bUz_ = 1; break; - case 3: - var _bUz_ = 1; break; - case 4: - var _bUz_ = 1; break; - case 5: - var _bUz_ = 1; break; - case 6: - var _bUz_ = 0; break; - case 7: - var _bUz_ = 0; break; - default: var _bUz_ = 1; - } - var - _bUA_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bUB_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bUA_), - _bUC_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bUD_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bUC_), - _bUE_ = caml_call2(Runtime_ocaml_Runtime[83], _bUD_, _bUB_), - _bUF_ = caml_call2(Runtime_ocaml_Runtime[83], _bUE_, _bUz_); - return caml_call2(Runtime_ocaml_Runtime[29], _hc_, _bUF_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hd_, [0], _bUy_, _bUx_); - } - function _bTw_(param){ - function _bT0_(param){ - var - _bUp_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bUq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$3), - _bUr_ = caml_call2(Runtime_ocaml_Runtime[104], _bUq_, _bUp_), - _bUs_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$4), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _bUs_, _bUr_), - _bUt_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$35), - _bUu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$4), - _bUv_ = caml_call2(Runtime_ocaml_Runtime[104], _bUu_, _bUt_), - _bUw_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$3), - limite = caml_call2(Runtime_ocaml_Runtime[93], _bUw_, _bUv_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _bT1_(param){ - switch(residence[0]){ - case 0: - var _bUi_ = 1; break; - case 1: - var _bUi_ = 0; break; - case 2: - var _bUi_ = 1; break; - case 3: - var _bUi_ = 1; break; - case 4: - var _bUi_ = 1; break; - case 5: - var _bUi_ = 1; break; - case 6: - var _bUi_ = 0; break; - case 7: - var _bUi_ = 0; break; - default: var _bUi_ = 1; - } - var - _bUj_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bUk_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bUj_), - _bUl_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bUm_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bUl_), - _bUn_ = caml_call2(Runtime_ocaml_Runtime[83], _bUm_, _bUk_), - _bUo_ = caml_call2(Runtime_ocaml_Runtime[83], _bUn_, _bUi_); - return caml_call2(Runtime_ocaml_Runtime[29], _he_, _bUo_); - } - var - _bT2_ = - [0, - function(param){ - function _bT3_(param){ - var - _bUa_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bUb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$5), - _bUc_ = caml_call2(Runtime_ocaml_Runtime[104], _bUb_, _bUa_), - _bUd_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$1) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$6), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _bUd_, _bUc_), - _bUe_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$36), - _bUf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$6), - _bUg_ = caml_call2(Runtime_ocaml_Runtime[104], _bUf_, _bUe_), - _bUh_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$2) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$5), - limite = caml_call2(Runtime_ocaml_Runtime[93], _bUh_, _bUg_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _bT4_(param){ - switch(residence[0]){ - case 0: - var _bT5_ = 1; break; - case 1: - var _bT5_ = 0; break; - case 2: - var _bT5_ = 1; break; - case 3: - var _bT5_ = 1; break; - case 4: - var _bT5_ = 1; break; - case 5: - var _bT5_ = 1; break; - case 6: - var _bT5_ = 0; break; - case 7: - var _bT5_ = 0; break; - default: var _bT5_ = 1; - } - var - _bT6_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bT7_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bT6_), - _bT8_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bT9_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bT8_), - _bT__ = caml_call2(Runtime_ocaml_Runtime[83], _bT9_, _bT7_), - _bT$_ = caml_call2(Runtime_ocaml_Runtime[83], _bT__, _bT5_); - return caml_call2(Runtime_ocaml_Runtime[29], _hf_, _bT$_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hg_, [0], _bT4_, _bT3_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _hh_, _bT2_, _bT1_, _bT0_); - } - function _bTx_(param){ - function _bTJ_(param){ - var - _bTS_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bTT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$2), - _bTU_ = caml_call2(Runtime_ocaml_Runtime[104], _bTT_, _bTS_), - _bTV_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$3), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _bTV_, _bTU_), - _bTW_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$37), - _bTX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$3), - _bTY_ = caml_call2(Runtime_ocaml_Runtime[104], _bTX_, _bTW_), - _bTZ_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$2), - limite = caml_call2(Runtime_ocaml_Runtime[93], _bTZ_, _bTY_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _bTK_(param){ - switch(residence[0]){ - case 0: - var _bTL_ = 1; break; - case 1: - var _bTL_ = 0; break; - case 2: - var _bTL_ = 1; break; - case 3: - var _bTL_ = 1; break; - case 4: - var _bTL_ = 1; break; - case 5: - var _bTL_ = 1; break; - case 6: - var _bTL_ = 0; break; - case 7: - var _bTL_ = 0; break; - default: var _bTL_ = 1; - } - var - _bTM_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _bTN_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bTM_), - _bTO_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bTP_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bTO_), - _bTQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bTP_, _bTN_), - _bTR_ = caml_call2(Runtime_ocaml_Runtime[83], _bTQ_, _bTL_); - return caml_call2(Runtime_ocaml_Runtime[29], _hi_, _bTR_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hj_, [0], _bTK_, _bTJ_); - } + _b$J_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _b$K_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b$J_), + _b$L_=caml_call2(Runtime_ocaml_Runtime[83],_b$K_,_b$I_); + return caml_call2(Runtime_ocaml_Runtime[29],_sE_,_b$L_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sF_,[0],_b$H_,_b$G_)}, + _b$E_, + _b$D_, + _b$C_, + _b$B_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_sG_,_b$F_,_b$A_,_b$z_)} + function _b9k_(param){return 1} + var + _b9l_= + [0, + function(param) + {function _b9m_(param) + {function _b_2_(param){throw Runtime_ocaml_Runtime[2]} + function _b_3_(param){return 0} + function _b_4_(param) + {function _b$o_(param) + {var + _b$w_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$0), + _b$x_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b$w_, + multiplicateur_majoration_char), + _b$y_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_2699) + :caml_call1(Runtime_ocaml_Runtime[31],cst_5399$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b$y_,_b$x_)} + function _b$p_(param) + {var + _b$q_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b$r_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b$q_), + _b$s_=caml_call2(Runtime_ocaml_Runtime[83],_b$r_,colocation), + _b$t_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b$u_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b$t_), + _b$v_=caml_call2(Runtime_ocaml_Runtime[83],_b$u_,_b$s_); + return caml_call2(Runtime_ocaml_Runtime[29],_sH_,_b$v_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sI_,[0],_b$p_,_b$o_)} + function _b_5_(param) + {function _b$d_(param) + {var + _b$l_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$0), + _b$m_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b$l_, + multiplicateur_majoration_char), + _b$n_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_2710) + :caml_call1(Runtime_ocaml_Runtime[31],cst_5422$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b$n_,_b$m_)} + function _b$e_(param) + {var + _b$f_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b$g_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b$f_), + _b$h_=caml_call2(Runtime_ocaml_Runtime[83],_b$g_,colocation), + _b$i_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b$j_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b$i_), + _b$k_=caml_call2(Runtime_ocaml_Runtime[83],_b$j_,_b$h_); + return caml_call2(Runtime_ocaml_Runtime[29],_sJ_,_b$k_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sK_,[0],_b$e_,_b$d_)} var - _bTy_ = - [0, - function(param){ - function _bTz_(param){ - var - _bTG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$4), - _bTH_ = + _b_6_= + [0, + function(param) + {function _b_7_(param) + {var + _b$a_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$0), + _b$b_= caml_call2 (Runtime_ocaml_Runtime[104], - _bTG_, + _b$a_, multiplicateur_majoration_char), - _bTI_ = + _b$c_= 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$1) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$4); - return caml_call2(Runtime_ocaml_Runtime[93], _bTI_, _bTH_); - } - function _bTA_(param){ - switch(residence[0]){ - case 0: - var _bTB_ = 1; break; - case 1: - var _bTB_ = 0; break; - case 2: - var _bTB_ = 1; break; - case 3: - var _bTB_ = 1; break; - case 4: - var _bTB_ = 1; break; - case 5: - var _bTB_ = 1; break; - case 6: - var _bTB_ = 0; break; - case 7: - var _bTB_ = 0; break; - default: var _bTB_ = 1; - } - var - _bTC_ = - caml_call2(Runtime_ocaml_Runtime[83], _bTB_, colocation), - _bTD_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _bTE_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bTD_), - _bTF_ = caml_call2(Runtime_ocaml_Runtime[83], _bTE_, _bTC_); - return caml_call2(Runtime_ocaml_Runtime[29], _hk_, _bTF_); - } + ?caml_call1(Runtime_ocaml_Runtime[31],cst_2805) + :caml_call1(Runtime_ocaml_Runtime[31],cst_5612$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b$c_,_b$b_)} + function _b_8_(param) + {var + _b_9_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b___= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_9_), + _b_$_=caml_call2(Runtime_ocaml_Runtime[83],_b___,colocation); + return caml_call2(Runtime_ocaml_Runtime[29],_sL_,_b_$_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _hl_, [0], _bTA_, _bTz_); - }, - _bTx_, - _bTw_, - _bTv_, - _bTu_]; + (Runtime_ocaml_Runtime[63],_sM_,[0],_b_8_,_b_7_)}, + _b_5_, + _b_4_]; return caml_call4 - (Runtime_ocaml_Runtime[63], _hm_, _bTy_, _bTt_, _bTs_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _hn_, _bTr_, _bTq_, _bTp_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _ho_, _bTo_, _bTn_, _bTm_); - }], - _bEK_ = caml_call4(Runtime_ocaml_Runtime[63], _hp_, _bEJ_, _bEI_, _bEH_); - } - catch(_bTl_){ - var _bEG_ = caml_wrap_exception(_bTl_); - if(_bEG_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _gK_], 1); - throw caml_maybe_attach_backtrace(_bEG_, 0); - } - var - montant_forfaitaire_charges_d8 = - caml_call3 - (Runtime_ocaml_Runtime[28], _hq_, Runtime_ocaml_Runtime[13], _bEK_); - try{ - var - _bEM_ = - function(param){ - function _bSb_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bSc_(param){return 0;} - function _bSd_(param){ - function _bS3_(param){ - var _bS__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bS__)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_458800) - : caml_call1(Runtime_ocaml_Runtime[31], cst_657200); - var _bS$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$22); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bS$_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_783900); - var _bTa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$16); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTa_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_801500); - var _bTb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$15); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTb_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_832200); - var _bTc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$14); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTc_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_863100); - var _bTd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$18); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTd_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_893800); - var _bTe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTe_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_924600); - var - _bTf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$39), - _bTg_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bTf_), - _bTh_ = caml_call1(Runtime_ocaml_Runtime[69], _bTg_), - _bTi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500), - _bTj_ = caml_call2(Runtime_ocaml_Runtime[104], _bTi_, _bTh_), - _bTk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_924600$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bTk_, _bTj_); - } - function _bS4_(param){ - var - _bS5_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _bS6_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bS5_), - _bS7_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bS8_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bS7_), - _bS9_ = caml_call2(Runtime_ocaml_Runtime[83], _bS8_, _bS6_); - return caml_call2(Runtime_ocaml_Runtime[29], _hs_, _bS9_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ht_, [0], _bS4_, _bS3_); - } - function _bSe_(param){ - function _bSM_(param){ - var _bST_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bST_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_468300) - : caml_call1(Runtime_ocaml_Runtime[31], cst_670900); - var _bSU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$23); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSU_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_800200); - var _bSV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSV_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_819200); - var _bSW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$16); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSW_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_849500); - var _bSX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$15); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSX_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_881100); - var _bSY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSY_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_912400); - var _bSZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSZ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_943900); - var - _bS0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31100), - _bS1_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bS0_, - multiplicateur_majoration_r0), - _bS2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_943900$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bS2_, _bS1_); - } - function _bSN_(param){ - var - _bSO_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bSP_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bSO_), - _bSQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bSR_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSQ_), - _bSS_ = caml_call2(Runtime_ocaml_Runtime[83], _bSR_, _bSP_); - return caml_call2(Runtime_ocaml_Runtime[29], _hu_, _bSS_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hv_, [0], _bSN_, _bSM_); - } - function _bSf_(param){ - function _bSv_(param){ - var _bSC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSC_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_487000) - : caml_call1(Runtime_ocaml_Runtime[31], cst_697700); - var _bSD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$24); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSD_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_832200$0); - var _bSE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$18); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSE_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_850900); - var _bSF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSF_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_883400); - var _bSG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$16); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSG_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_916300); - var _bSH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$20); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSH_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_948800); - var _bSI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSI_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_981600); - var - _bSJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32300), - _bSK_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bSJ_, - multiplicateur_majoration_r0), - _bSL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_981600$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bSL_, _bSK_); - } - function _bSw_(param){ - var - _bSx_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), - _bSy_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _bSx_), - _bSz_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bSA_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSz_), - _bSB_ = caml_call2(Runtime_ocaml_Runtime[83], _bSA_, _bSy_); - return caml_call2(Runtime_ocaml_Runtime[29], _hw_, _bSB_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hx_, [0], _bSw_, _bSv_); - } - var - _bSg_ = - [0, - function(param){ - function _bSh_(param){ - var _bSl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bSl_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_494900) - : caml_call1(Runtime_ocaml_Runtime[31], cst_709000); - var _bSm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$25); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bSm_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_845600); - var _bSn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bSn_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_864600); - var _bSo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$18); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bSo_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_897700); - var _bSp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bSp_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_931100); - var _bSq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bSq_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_964200); - var _bSr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bSr_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_997500); - var - _bSs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32800), - _bSt_ = + (Runtime_ocaml_Runtime[63],_sN_,_b_6_,_b_3_,_b_2_)} + function _b9n_(param){return 1} + var + _b9o_= + [0, + function(param) + {function _b9p_(param){throw Runtime_ocaml_Runtime[2]} + function _b9q_(param){return 0} + function _b9r_(param) + {function _b_L_(param) + {var + _b_U_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _b_V_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$1), + _b_W_=caml_call2(Runtime_ocaml_Runtime[104],_b_V_,_b_U_), + _b_X_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1858) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3614$2), + montant=caml_call2(Runtime_ocaml_Runtime[93],_b_X_,_b_W_), + _b_Y_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$33), + _b_Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$2), + _b_0_=caml_call2(Runtime_ocaml_Runtime[104],_b_Z_,_b_Y_), + _b_1_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1858$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3614$1), + limite=caml_call2(Runtime_ocaml_Runtime[93],_b_1_,_b_0_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _b_M_(param) + {switch(residence[0]) + {case 0:var _b_N_=1;break; + case 1:var _b_N_=0;break; + case 2:var _b_N_=1;break; + case 3:var _b_N_=1;break; + case 4:var _b_N_=1;break; + case 5:var _b_N_=1;break; + case 6:var _b_N_=0;break; + case 7:var _b_N_=0;break; + default:var _b_N_=1} + var + _b_O_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b_P_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b_O_), + _b_Q_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _b_R_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_Q_), + _b_S_=caml_call2(Runtime_ocaml_Runtime[83],_b_R_,_b_P_), + _b_T_=caml_call2(Runtime_ocaml_Runtime[83],_b_S_,_b_N_); + return caml_call2(Runtime_ocaml_Runtime[29],_sO_,_b_T_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sP_,[0],_b_M_,_b_L_)} + function _b9s_(param) + {function _b_u_(param) + {var + _b_D_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _b_E_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$1), + _b_F_=caml_call2(Runtime_ocaml_Runtime[104],_b_E_,_b_D_), + _b_G_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1864) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3625$2), + montant=caml_call2(Runtime_ocaml_Runtime[93],_b_G_,_b_F_), + _b_H_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$34), + _b_I_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$2), + _b_J_=caml_call2(Runtime_ocaml_Runtime[104],_b_I_,_b_H_), + _b_K_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1864$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3625$1), + limite=caml_call2(Runtime_ocaml_Runtime[93],_b_K_,_b_J_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _b_v_(param) + {switch(residence[0]) + {case 0:var _b_w_=1;break; + case 1:var _b_w_=0;break; + case 2:var _b_w_=1;break; + case 3:var _b_w_=1;break; + case 4:var _b_w_=1;break; + case 5:var _b_w_=1;break; + case 6:var _b_w_=0;break; + case 7:var _b_w_=0;break; + default:var _b_w_=1} + var + _b_x_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b_y_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b_x_), + _b_z_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b_A_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_z_), + _b_B_=caml_call2(Runtime_ocaml_Runtime[83],_b_A_,_b_y_), + _b_C_=caml_call2(Runtime_ocaml_Runtime[83],_b_B_,_b_w_); + return caml_call2(Runtime_ocaml_Runtime[29],_sQ_,_b_C_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sR_,[0],_b_v_,_b_u_)} + function _b9t_(param) + {function _b9X_(param) + {var + _b_m_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _b_n_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$3), + _b_o_=caml_call2(Runtime_ocaml_Runtime[104],_b_n_,_b_m_), + _b_p_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$4), + montant=caml_call2(Runtime_ocaml_Runtime[93],_b_p_,_b_o_), + _b_q_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$35), + _b_r_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$4), + _b_s_=caml_call2(Runtime_ocaml_Runtime[104],_b_r_,_b_q_), + _b_t_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$3), + limite=caml_call2(Runtime_ocaml_Runtime[93],_b_t_,_b_s_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _b9Y_(param) + {switch(residence[0]) + {case 0:var _b_f_=1;break; + case 1:var _b_f_=0;break; + case 2:var _b_f_=1;break; + case 3:var _b_f_=1;break; + case 4:var _b_f_=1;break; + case 5:var _b_f_=1;break; + case 6:var _b_f_=0;break; + case 7:var _b_f_=0;break; + default:var _b_f_=1} + var + _b_g_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b_h_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b_g_), + _b_i_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _b_j_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_i_), + _b_k_=caml_call2(Runtime_ocaml_Runtime[83],_b_j_,_b_h_), + _b_l_=caml_call2(Runtime_ocaml_Runtime[83],_b_k_,_b_f_); + return caml_call2(Runtime_ocaml_Runtime[29],_sS_,_b_l_)} + var + _b9Z_= + [0, + function(param) + {function _b90_(param) + {var + _b99_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _b9__=caml_call1(Runtime_ocaml_Runtime[31],cst_936$5), + _b9$_=caml_call2(Runtime_ocaml_Runtime[104],_b9__,_b99_), + _b_a_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$1) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$6), + montant=caml_call2(Runtime_ocaml_Runtime[93],_b_a_,_b9$_), + _b_b_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$36), + _b_c_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$6), + _b_d_=caml_call2(Runtime_ocaml_Runtime[104],_b_c_,_b_b_), + _b_e_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$2) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$5), + limite=caml_call2(Runtime_ocaml_Runtime[93],_b_e_,_b_d_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _b91_(param) + {switch(residence[0]) + {case 0:var _b92_=1;break; + case 1:var _b92_=0;break; + case 2:var _b92_=1;break; + case 3:var _b92_=1;break; + case 4:var _b92_=1;break; + case 5:var _b92_=1;break; + case 6:var _b92_=0;break; + case 7:var _b92_=0;break; + default:var _b92_=1} + var + _b93_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _b94_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b93_), + _b95_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b96_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b95_), + _b97_=caml_call2(Runtime_ocaml_Runtime[83],_b96_,_b94_), + _b98_=caml_call2(Runtime_ocaml_Runtime[83],_b97_,_b92_); + return caml_call2(Runtime_ocaml_Runtime[29],_sT_,_b98_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sU_,[0],_b91_,_b90_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_sV_,_b9Z_,_b9Y_,_b9X_)} + function _b9u_(param) + {function _b9G_(param) + {var + _b9P_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _b9Q_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$2), + _b9R_=caml_call2(Runtime_ocaml_Runtime[104],_b9Q_,_b9P_), + _b9S_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$3), + montant=caml_call2(Runtime_ocaml_Runtime[93],_b9S_,_b9R_), + _b9T_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$37), + _b9U_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$3), + _b9V_=caml_call2(Runtime_ocaml_Runtime[104],_b9U_,_b9T_), + _b9W_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$2), + limite=caml_call2(Runtime_ocaml_Runtime[93],_b9W_,_b9V_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _b9H_(param) + {switch(residence[0]) + {case 0:var _b9I_=1;break; + case 1:var _b9I_=0;break; + case 2:var _b9I_=1;break; + case 3:var _b9I_=1;break; + case 4:var _b9I_=1;break; + case 5:var _b9I_=1;break; + case 6:var _b9I_=0;break; + case 7:var _b9I_=0;break; + default:var _b9I_=1} + var + _b9J_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _b9K_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b9J_), + _b9L_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b9M_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b9L_), + _b9N_=caml_call2(Runtime_ocaml_Runtime[83],_b9M_,_b9K_), + _b9O_=caml_call2(Runtime_ocaml_Runtime[83],_b9N_,_b9I_); + return caml_call2(Runtime_ocaml_Runtime[29],_sW_,_b9O_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sX_,[0],_b9H_,_b9G_)} + var + _b9v_= + [0, + function(param) + {function _b9w_(param) + {var + _b9D_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$4), + _b9E_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b9D_, + multiplicateur_majoration_char), + _b9F_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$1) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$4); + return caml_call2(Runtime_ocaml_Runtime[93],_b9F_,_b9E_)} + function _b9x_(param) + {switch(residence[0]) + {case 0:var _b9y_=1;break; + case 1:var _b9y_=0;break; + case 2:var _b9y_=1;break; + case 3:var _b9y_=1;break; + case 4:var _b9y_=1;break; + case 5:var _b9y_=1;break; + case 6:var _b9y_=0;break; + case 7:var _b9y_=0;break; + default:var _b9y_=1} + var + _b9z_=caml_call2(Runtime_ocaml_Runtime[83],_b9y_,colocation), + _b9A_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _b9B_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b9A_), + _b9C_=caml_call2(Runtime_ocaml_Runtime[83],_b9B_,_b9z_); + return caml_call2(Runtime_ocaml_Runtime[29],_sY_,_b9C_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_sZ_,[0],_b9x_,_b9w_)}, + _b9u_, + _b9t_, + _b9s_, + _b9r_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_s0_,_b9v_,_b9q_,_b9p_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_s1_,_b9o_,_b9n_,_b9m_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_s2_,_b9l_,_b9k_,_b9j_)}], + _bU4_=caml_call4(Runtime_ocaml_Runtime[63],_s3_,_bU3_,_bU2_,_bU1_)} + catch(_b9i_) + {_b9i_ = caml_wrap_exception(_b9i_); + if(_b9i_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_sm_]; + throw _b9i_} + var + montant_forfaitaire_charges_d8= + caml_call3 + (Runtime_ocaml_Runtime[28],_s4_,Runtime_ocaml_Runtime[13],_bU4_); + try + {var + _bU5_= + function(param) + {function _b7__(param){throw Runtime_ocaml_Runtime[2]} + function _b7$_(param){return 0} + function _b8a_(param) + {function _b80_(param) + {var _b87_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$103); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b87_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_458800) + :caml_call1(Runtime_ocaml_Runtime[31],cst_657200); + var _b88_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$51); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b88_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_783900); + var _b89_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b89_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_801500); + var _b8__=caml_call1(Runtime_ocaml_Runtime[46],cst_3$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8__)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_832200); + var _b8$_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$14); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8$_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_863100); + var _b9a_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b9a_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_893800); + var _b9b_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b9b_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_924600); + var + _b9c_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$39), + _b9d_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b9c_), + _b9e_=caml_call1(Runtime_ocaml_Runtime[69],_b9d_), + _b9f_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500), + _b9g_=caml_call2(Runtime_ocaml_Runtime[104],_b9f_,_b9e_), + _b9h_=caml_call1(Runtime_ocaml_Runtime[31],cst_924600$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b9h_,_b9g_)} + function _b81_(param) + {var + _b82_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _b83_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b82_), + _b84_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _b85_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b84_), + _b86_=caml_call2(Runtime_ocaml_Runtime[83],_b85_,_b83_); + return caml_call2(Runtime_ocaml_Runtime[29],_s6_,_b86_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_s7_,[0],_b81_,_b80_)} + function _b8b_(param) + {function _b8J_(param) + {var _b8Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$104); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8Q_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_468300) + :caml_call1(Runtime_ocaml_Runtime[31],cst_670900); + var _b8R_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8R_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_800200); + var _b8S_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8S_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_819200); + var _b8T_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8T_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_849500); + var _b8U_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$15); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8U_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_881100); + var _b8V_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8V_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_912400); + var _b8W_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8W_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_943900); + var + _b8X_=caml_call1(Runtime_ocaml_Runtime[31],cst_31100), + _b8Y_= caml_call2 (Runtime_ocaml_Runtime[104], - _bSs_, + _b8X_, multiplicateur_majoration_r0), - _bSu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_997500$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bSu_, _bSt_); - } - function _bSi_(param){ - var - _bSj_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _bSk_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSj_); - return caml_call2(Runtime_ocaml_Runtime[29], _hy_, _bSk_); - } + _b8Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_943900$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b8Z_,_b8Y_)} + function _b8K_(param) + {var + _b8L_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b8M_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b8L_), + _b8N_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _b8O_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b8N_), + _b8P_=caml_call2(Runtime_ocaml_Runtime[83],_b8O_,_b8M_); + return caml_call2(Runtime_ocaml_Runtime[29],_s8_,_b8P_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _hz_, [0], _bSi_, _bSh_); - }, - _bSf_, - _bSe_, - _bSd_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _hA_, _bSg_, _bSc_, _bSb_); - }, - _bEN_ = function(param){return 1;}, - _bEO_ = - [0, - function(param){ - function _bPP_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bPQ_(param){return 0;} - function _bPR_(param){ - function _bRY_(param){ - var _bR7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bR7_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_396000) - : caml_call1(Runtime_ocaml_Runtime[31], cst_567300); - var _bR8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$26); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bR8_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_639600); - var _bR9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$20); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bR9_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_684900); - var _bR__ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bR__)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_738600); - var _bR$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$18); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bR$_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_793500); - var _bSa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$22); - return caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bSa_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_848400) - : caml_call1(Runtime_ocaml_Runtime[31], cst_903200); - } - function _bRZ_(param){ - switch(residence[0]){ - case 0: - var _bR0_ = 1; break; - case 1: - var _bR0_ = 0; break; - case 2: - var _bR0_ = 1; break; - case 3: - var _bR0_ = 1; break; - case 4: - var _bR0_ = 1; break; - case 5: - var _bR0_ = 1; break; - case 6: - var _bR0_ = 0; break; - case 7: - var _bR0_ = 0; break; - default: var _bR0_ = 1; - } - var - _bR1_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _bR2_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bR1_), - _bR3_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _bR4_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bR3_), - _bR5_ = caml_call2(Runtime_ocaml_Runtime[83], _bR4_, _bR2_), - _bR6_ = caml_call2(Runtime_ocaml_Runtime[83], _bR5_, _bR0_); - return caml_call2(Runtime_ocaml_Runtime[29], _hB_, _bR6_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hC_, [0], _bRZ_, _bRY_); - } - function _bPS_(param){ - function _bRm_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_758400); - } - function _bRn_(param){ - var - _bRO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$27), - _bRP_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRO_); - switch(residence[0]){ - case 0: - var _bRQ_ = 1; break; - case 1: - var _bRQ_ = 0; break; - case 2: - var _bRQ_ = 1; break; - case 3: - var _bRQ_ = 1; break; - case 4: - var _bRQ_ = 1; break; - case 5: - var _bRQ_ = 1; break; - case 6: - var _bRQ_ = 0; break; - case 7: - var _bRQ_ = 0; break; - default: var _bRQ_ = 1; - } - var - _bRR_ = caml_call2(Runtime_ocaml_Runtime[83], _bRQ_, _bRP_), - _bRS_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bRT_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRS_), - _bRU_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bRV_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRU_), - _bRW_ = caml_call2(Runtime_ocaml_Runtime[83], _bRV_, _bRT_), - _bRX_ = caml_call2(Runtime_ocaml_Runtime[83], _bRW_, _bRR_); - return caml_call2(Runtime_ocaml_Runtime[29], _hD_, _bRX_); - } - var - _bRo_ = - [0, - function(param){ - function _bRp_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_758400$0); - } - function _bRq_(param){ - var - _bRE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$28), - _bRF_ = - caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bRE_); - switch(residence[0]){ - case 0: - var _bRG_ = 1; break; - case 1: - var _bRG_ = 0; break; - case 2: - var _bRG_ = 1; break; - case 3: - var _bRG_ = 1; break; - case 4: - var _bRG_ = 1; break; - case 5: - var _bRG_ = 1; break; - case 6: - var _bRG_ = 0; break; - case 7: - var _bRG_ = 0; break; - default: var _bRG_ = 1; - } - var - _bRH_ = caml_call2(Runtime_ocaml_Runtime[83], _bRG_, _bRF_), - _bRI_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bRJ_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRI_), - _bRK_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bRL_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRK_), - _bRM_ = caml_call2(Runtime_ocaml_Runtime[83], _bRL_, _bRJ_), - _bRN_ = caml_call2(Runtime_ocaml_Runtime[83], _bRM_, _bRH_); - return caml_call2(Runtime_ocaml_Runtime[29], _hE_, _bRN_); - } + (Runtime_ocaml_Runtime[63],_s9_,[0],_b8K_,_b8J_)} + function _b8c_(param) + {function _b8s_(param) + {var _b8z_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$105); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8z_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_487000) + :caml_call1(Runtime_ocaml_Runtime[31],cst_697700); + var _b8A_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$53); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8A_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_832200$0); + var _b8B_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8B_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_850900); + var _b8C_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8C_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_883400); + var _b8D_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$16); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8D_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_916300); + var _b8E_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8E_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_948800); + var _b8F_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8F_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_981600); var - _bRr_ = - [0, - function(param){ - function _bRs_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_758400$1); - } - function _bRt_(param){ - var - _bRu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$29), - _bRv_ = - caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bRu_); - switch(residence[0]){ - case 0: - var _bRw_ = 1; break; - case 1: - var _bRw_ = 0; break; - case 2: - var _bRw_ = 1; break; - case 3: - var _bRw_ = 1; break; - case 4: - var _bRw_ = 1; break; - case 5: - var _bRw_ = 1; break; - case 6: - var _bRw_ = 0; break; - case 7: - var _bRw_ = 0; break; - default: var _bRw_ = 1; - } - var - _bRx_ = caml_call2(Runtime_ocaml_Runtime[83], _bRw_, _bRv_), - _bRy_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bRz_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRy_), - _bRA_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _bRB_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRA_), - _bRC_ = caml_call2(Runtime_ocaml_Runtime[83], _bRB_, _bRz_), - _bRD_ = caml_call2(Runtime_ocaml_Runtime[83], _bRC_, _bRx_); - return caml_call2(Runtime_ocaml_Runtime[29], _hF_, _bRD_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hG_, [0], _bRt_, _bRs_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _hH_, _bRr_, _bRq_, _bRp_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _hI_, _bRo_, _bRn_, _bRm_); - } - function _bPT_(param){ - function _bQ9_(param){ - var _bRg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRg_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_427400) - : caml_call1(Runtime_ocaml_Runtime[31], cst_612200); - var _bRh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$30); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRh_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_699000); - var _bRi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRi_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_743200); - var _bRj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$20); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRj_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_785400); - var _bRk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRk_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_828300); - var _bRl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$23); - return caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bRl_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_871100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_913900); - } - function _bQ__(param){ - switch(residence[0]){ - case 0: - var _bQ$_ = 1; break; - case 1: - var _bQ$_ = 0; break; - case 2: - var _bQ$_ = 1; break; - case 3: - var _bQ$_ = 1; break; - case 4: - var _bQ$_ = 1; break; - case 5: - var _bQ$_ = 1; break; - case 6: - var _bQ$_ = 0; break; - case 7: - var _bQ$_ = 0; break; - default: var _bQ$_ = 1; - } - var - _bRa_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bRb_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRa_), - _bRc_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _bRd_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRc_), - _bRe_ = caml_call2(Runtime_ocaml_Runtime[83], _bRd_, _bRb_), - _bRf_ = caml_call2(Runtime_ocaml_Runtime[83], _bRe_, _bQ$_); - return caml_call2(Runtime_ocaml_Runtime[29], _hJ_, _bRf_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hK_, [0], _bQ__, _bQ9_); - } - function _bPU_(param){ - function _bQX_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_774200); - } - function _bQY_(param){ - var - _bQZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$31), - _bQ0_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQZ_); - switch(residence[0]){ - case 0: - var _bQ1_ = 1; break; - case 1: - var _bQ1_ = 0; break; - case 2: - var _bQ1_ = 1; break; - case 3: - var _bQ1_ = 1; break; - case 4: - var _bQ1_ = 1; break; - case 5: - var _bQ1_ = 1; break; - case 6: - var _bQ1_ = 0; break; - case 7: - var _bQ1_ = 0; break; - default: var _bQ1_ = 1; - } - var - _bQ2_ = caml_call2(Runtime_ocaml_Runtime[83], _bQ1_, _bQ0_), - _bQ3_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bQ4_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bQ3_), - _bQ5_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _bQ6_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bQ5_), - _bQ7_ = caml_call2(Runtime_ocaml_Runtime[83], _bQ6_, _bQ4_), - _bQ8_ = caml_call2(Runtime_ocaml_Runtime[83], _bQ7_, _bQ2_); - return caml_call2(Runtime_ocaml_Runtime[29], _hL_, _bQ8_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hM_, [0], _bQY_, _bQX_); - } - function _bPV_(param){ - function _bQB_(param){ - var _bQK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQK_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_487000$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_697700$0); - var _bQL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQL_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_832200$1); - var _bQM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$22); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQM_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_850900$0); - var _bQN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQN_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_883400$0); - var _bQO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$20); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQO_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_916300$0); - var _bQP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$24); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQP_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_948800$0); - var _bQQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQQ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_981600$1); - var - _bQR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$44), - _bQS_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bQR_), - _bQT_ = caml_call1(Runtime_ocaml_Runtime[69], _bQS_), - _bQU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35000), - _bQV_ = caml_call2(Runtime_ocaml_Runtime[104], _bQU_, _bQT_), - _bQW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_981600$2); - return caml_call2(Runtime_ocaml_Runtime[93], _bQW_, _bQV_); - } - function _bQC_(param){ - switch(residence[0]){ - case 0: - var _bQD_ = 0; break; - case 1: - var _bQD_ = 0; break; - case 2: - var _bQD_ = 0; break; - case 3: - var _bQD_ = 0; break; - case 4: - var _bQD_ = 0; break; - case 5: - var _bQD_ = 0; break; - case 6: - var _bQD_ = 0; break; - case 7: - var _bQD_ = 1; break; - default: var _bQD_ = 0; - } - var - _bQE_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _bQF_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bQE_), - _bQG_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bQH_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bQG_), - _bQI_ = caml_call2(Runtime_ocaml_Runtime[83], _bQH_, _bQF_), - _bQJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bQI_, _bQD_); - return caml_call2(Runtime_ocaml_Runtime[29], _hN_, _bQJ_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hO_, [0], _bQC_, _bQB_); - } - function _bPW_(param){ - function _bQp_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_805100); - } - function _bQq_(param){ - var - _bQr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$33), - _bQs_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQr_); - switch(residence[0]){ - case 0: - var _bQt_ = 1; break; - case 1: - var _bQt_ = 0; break; - case 2: - var _bQt_ = 1; break; - case 3: - var _bQt_ = 1; break; - case 4: - var _bQt_ = 1; break; - case 5: - var _bQt_ = 1; break; - case 6: - var _bQt_ = 0; break; - case 7: - var _bQt_ = 0; break; - default: var _bQt_ = 1; - } - var - _bQu_ = caml_call2(Runtime_ocaml_Runtime[83], _bQt_, _bQs_), - _bQv_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _bQw_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bQv_), - _bQx_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bQy_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bQx_), - _bQz_ = caml_call2(Runtime_ocaml_Runtime[83], _bQy_, _bQw_), - _bQA_ = caml_call2(Runtime_ocaml_Runtime[83], _bQz_, _bQu_); - return caml_call2(Runtime_ocaml_Runtime[29], _hP_, _bQA_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hQ_, [0], _bQq_, _bQp_); - } - function _bPX_(param){ - function _bP8_(param){ - var _bQc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQc_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_527200) - : caml_call1(Runtime_ocaml_Runtime[31], cst_755200); - var _bQd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQd_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_900800); - var _bQe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$23); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQe_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_921100); - var _bQf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$22); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQf_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_956300); - var _bQg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_991900); - var _bQh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$25); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQh_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_1027100); - var _bQi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQi_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_1062600); - var - _bQj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$46), - _bQk_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bQj_), - _bQl_ = caml_call1(Runtime_ocaml_Runtime[69], _bQk_), - _bQm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35000$0), - _bQn_ = caml_call2(Runtime_ocaml_Runtime[104], _bQm_, _bQl_), - _bQo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1062600$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bQo_, _bQn_); - } - function _bP9_(param){ - switch(residence[0]){ - case 0: - var _bP__ = 0; break; - case 1: - var _bP__ = 0; break; - case 2: - var _bP__ = 0; break; - case 3: - var _bP__ = 0; break; - case 4: - var _bP__ = 0; break; - case 5: - var _bP__ = 0; break; - case 6: - var _bP__ = 0; break; - case 7: - var _bP__ = 1; break; - default: var _bP__ = 0; - } - var - _bP$_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _bQa_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bP$_), - _bQb_ = caml_call2(Runtime_ocaml_Runtime[83], _bQa_, _bP__); - return caml_call2(Runtime_ocaml_Runtime[29], _hR_, _bQb_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hS_, [0], _bP9_, _bP8_); - } - var - _bPY_ = - [0, - function(param){ - function _bPZ_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_818100); - } - function _bP0_(param){ - var - _bP1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$35), - _bP2_ = - caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bP1_); - switch(residence[0]){ - case 0: - var _bP3_ = 1; break; - case 1: - var _bP3_ = 0; break; - case 2: - var _bP3_ = 1; break; - case 3: - var _bP3_ = 1; break; - case 4: - var _bP3_ = 1; break; - case 5: - var _bP3_ = 1; break; - case 6: - var _bP3_ = 0; break; - case 7: - var _bP3_ = 0; break; - default: var _bP3_ = 1; - } - var - _bP4_ = caml_call2(Runtime_ocaml_Runtime[83], _bP3_, _bP2_), - _bP5_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _bP6_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bP5_), - _bP7_ = caml_call2(Runtime_ocaml_Runtime[83], _bP6_, _bP4_); - return caml_call2(Runtime_ocaml_Runtime[29], _hT_, _bP7_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _hU_, [0], _bP0_, _bPZ_); - }, - _bPX_, - _bPW_, - _bPV_, - _bPU_, - _bPT_, - _bPS_, - _bPR_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _hV_, _bPY_, _bPQ_, _bPP_); - }], - _bEP_ = caml_call4(Runtime_ocaml_Runtime[63], _hW_, _bEO_, _bEN_, _bEM_); - } - catch(_bPO_){ - var _bEL_ = caml_wrap_exception(_bPO_); - if(_bEL_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _hr_], 1); - throw caml_maybe_attach_backtrace(_bEL_, 0); - } - var - abattement_forfaitaire_d823_17 = - caml_call3 - (Runtime_ocaml_Runtime[28], _hX_, Runtime_ocaml_Runtime[13], _bEP_); - try{ - var - _bER_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _bES_ = function(param){return 0;}, - _bET_ = - function(param){ - function _bPD_(param){ - var _bPK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bPK_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25869) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31664); - var - _bPL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5186), - _bPM_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bPL_, - multiplicateur_majoration_loye), - _bPN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35630); - return caml_call2(Runtime_ocaml_Runtime[93], _bPN_, _bPM_); - } - function _bPE_(param){ - var - _bPF_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bPG_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bPF_), - _bPH_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bPI_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bPH_), - _bPJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bPI_, _bPG_); - return caml_call2(Runtime_ocaml_Runtime[29], _hZ_, _bPJ_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _h0_, [0], _bPE_, _bPD_); - }, - _bEU_ = - function(param){ - function _bPs_(param){ - var _bPz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bPz_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25978) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31797); - var - _bPA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5208), - _bPB_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bPA_, - multiplicateur_majoration_loye), - _bPC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35780); - return caml_call2(Runtime_ocaml_Runtime[93], _bPC_, _bPB_); - } - function _bPt_(param){ - var - _bPu_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bPv_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bPu_), - _bPw_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bPx_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bPw_), - _bPy_ = caml_call2(Runtime_ocaml_Runtime[83], _bPx_, _bPv_); - return caml_call2(Runtime_ocaml_Runtime[29], _h1_, _bPy_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _h2_, [0], _bPt_, _bPs_); - }, - _bEV_ = - [0, - function(param){ - function _bPk_(param){ - var _bPo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bPo_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26887) - : caml_call1(Runtime_ocaml_Runtime[31], cst_32910); - var - _bPp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5390), - _bPq_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bPp_, - multiplicateur_majoration_loye), - _bPr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37032); - return caml_call2(Runtime_ocaml_Runtime[93], _bPr_, _bPq_); - } - function _bPl_(param){ - var - _bPm_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bPn_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bPm_); - return caml_call2(Runtime_ocaml_Runtime[29], _h3_, _bPn_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _h4_, [0], _bPl_, _bPk_); - }, - _bEU_, - _bET_], - _bEW_ = caml_call4(Runtime_ocaml_Runtime[63], _h5_, _bEV_, _bES_, _bER_); - } - catch(_bPj_){ - var _bEQ_ = caml_wrap_exception(_bPj_); - if(_bEQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _hY_], 1); - throw caml_maybe_attach_backtrace(_bEQ_, 0); - } - var - loyer_reference = - caml_call3 - (Runtime_ocaml_Runtime[28], _h6_, Runtime_ocaml_Runtime[13], _bEW_); - try{ - var - _bEY_ = - function(param){ - function _bNg_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bNh_(param){return 0;} - function _bNi_(param){ - function _bO2_(param){ - switch(zone[0]){ - case 0: - var - _bPa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5870), - _bPb_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bPa_, - multiplicateur_majoration_plaf), - _bPc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40460); - return caml_call2(Runtime_ocaml_Runtime[93], _bPc_, _bPb_); - case 1: - var - _bPd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5186$0), - _bPe_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bPd_, - multiplicateur_majoration_plaf), - _bPf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35630$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bPf_, _bPe_); - default: - var - _bPg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4723), - _bPh_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bPg_, - multiplicateur_majoration_plaf), - _bPi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32956); - return caml_call2(Runtime_ocaml_Runtime[93], _bPi_, _bPh_); - } - } - function _bO3_(param){ - var - _bO4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$36), - _bO5_ = - caml_call2 - (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bO4_), - _bO6_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bO7_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bO6_), - _bO8_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bO9_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bO8_), - _bO__ = caml_call2(Runtime_ocaml_Runtime[83], _bO9_, _bO7_), - _bO$_ = caml_call2(Runtime_ocaml_Runtime[83], _bO__, _bO5_); - return caml_call2(Runtime_ocaml_Runtime[29], _h8_, _bO$_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _h9_, [0], _bO3_, _bO2_); - } - function _bNj_(param){ - function _bOQ_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_35799); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_31664$0); - default: return caml_call1(Runtime_ocaml_Runtime[31], cst_29392); - } - } - function _bOR_(param){ - var - _bOS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$46), - _bOT_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bOS_), - _bOU_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, - _bOV_ = caml_call2(Runtime_ocaml_Runtime[83], _bOU_, _bOT_), - _bOW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bOX_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOW_), - _bOY_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bOZ_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bOY_), - _bO0_ = caml_call2(Runtime_ocaml_Runtime[83], _bOZ_, _bOX_), - _bO1_ = caml_call2(Runtime_ocaml_Runtime[83], _bO0_, _bOV_); - return caml_call2(Runtime_ocaml_Runtime[29], _h__, _bO1_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _h$_, [0], _bOR_, _bOQ_); - } - function _bNk_(param){ - function _bOE_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_29682); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_25859); - default: return caml_call1(Runtime_ocaml_Runtime[31], cst_24246); - } - } - function _bOF_(param){ - var - _bOG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$47), - _bOH_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bOG_), - _bOI_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, - _bOJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bOI_, _bOH_), - _bOK_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bOL_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOK_), - _bOM_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bON_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bOM_), - _bOO_ = caml_call2(Runtime_ocaml_Runtime[83], _bON_, _bOL_), - _bOP_ = caml_call2(Runtime_ocaml_Runtime[83], _bOO_, _bOJ_); - return caml_call2(Runtime_ocaml_Runtime[29], _ia_, _bOP_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ib_, [0], _bOF_, _bOE_); - } - function _bNl_(param){ - function _bOl_(param){ - switch(zone[0]){ - case 0: - var - _bOv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5895), - _bOw_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bOv_, - multiplicateur_majoration_plaf), - _bOx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40630); - return caml_call2(Runtime_ocaml_Runtime[93], _bOx_, _bOw_); - case 1: - var - _bOy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5208$0), - _bOz_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bOy_, - multiplicateur_majoration_plaf), - _bOA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35780$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bOA_, _bOz_); - default: - var - _bOB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4743), - _bOC_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bOB_, - multiplicateur_majoration_plaf), - _bOD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33094); - return caml_call2(Runtime_ocaml_Runtime[93], _bOD_, _bOC_); - } - } - function _bOm_(param){ - var - _bOn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$37), - _bOo_ = - caml_call2 - (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bOn_), - _bOp_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bOq_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bOp_), - _bOr_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bOs_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOr_), - _bOt_ = caml_call2(Runtime_ocaml_Runtime[83], _bOs_, _bOq_), - _bOu_ = caml_call2(Runtime_ocaml_Runtime[83], _bOt_, _bOo_); - return caml_call2(Runtime_ocaml_Runtime[29], _ic_, _bOu_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _id_, [0], _bOm_, _bOl_); - } - function _bNm_(param){ - function _bN$_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_35949); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_31797$0); - default: return caml_call1(Runtime_ocaml_Runtime[31], cst_29515); - } - } - function _bOa_(param){ - var - _bOb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$48), - _bOc_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bOb_), - _bOd_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, - _bOe_ = caml_call2(Runtime_ocaml_Runtime[83], _bOd_, _bOc_), - _bOf_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bOg_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bOf_), - _bOh_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bOi_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOh_), - _bOj_ = caml_call2(Runtime_ocaml_Runtime[83], _bOi_, _bOg_), - _bOk_ = caml_call2(Runtime_ocaml_Runtime[83], _bOj_, _bOe_); - return caml_call2(Runtime_ocaml_Runtime[29], _ie_, _bOk_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _if_, [0], _bOa_, _bN$_); - } - function _bNn_(param){ - function _bNZ_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_29807); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_25978$0); - default: return caml_call1(Runtime_ocaml_Runtime[31], cst_24348); - } - } - function _bN0_(param){ - var - _bN1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$49), - _bN2_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bN1_), - _bN3_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, - _bN4_ = caml_call2(Runtime_ocaml_Runtime[83], _bN3_, _bN2_), - _bN5_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bN6_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bN5_), - _bN7_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bN8_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bN7_), - _bN9_ = caml_call2(Runtime_ocaml_Runtime[83], _bN8_, _bN6_), - _bN__ = caml_call2(Runtime_ocaml_Runtime[83], _bN9_, _bN4_); - return caml_call2(Runtime_ocaml_Runtime[29], _ig_, _bN__); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ih_, [0], _bN0_, _bNZ_); - } - function _bNo_(param){ - function _bNJ_(param){ - switch(zone[0]){ - case 0: - var - _bNQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6101), - _bNR_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bNQ_, - multiplicateur_majoration_plaf), - _bNS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42052); - return caml_call2(Runtime_ocaml_Runtime[93], _bNS_, _bNR_); - case 1: - var - _bNT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5390$0), - _bNU_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bNT_, - multiplicateur_majoration_plaf), - _bNV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37032$0); - return caml_call2(Runtime_ocaml_Runtime[93], _bNV_, _bNU_); - default: - var - _bNW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4909), - _bNX_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bNW_, - multiplicateur_majoration_plaf), - _bNY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34252); - return caml_call2(Runtime_ocaml_Runtime[93], _bNY_, _bNX_); - } - } - function _bNK_(param){ - var - _bNL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$38), - _bNM_ = - caml_call2 - (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bNL_), - _bNN_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bNO_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNN_), - _bNP_ = caml_call2(Runtime_ocaml_Runtime[83], _bNO_, _bNM_); - return caml_call2(Runtime_ocaml_Runtime[29], _ii_, _bNP_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ij_, [0], _bNK_, _bNJ_); - } - function _bNp_(param){ - function _bNA_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_37207); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_32910$0); - default: return caml_call1(Runtime_ocaml_Runtime[31], cst_30548); - } - } - function _bNB_(param){ - var - _bNC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$50), - _bND_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bNC_), - _bNE_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, - _bNF_ = caml_call2(Runtime_ocaml_Runtime[83], _bNE_, _bND_), - _bNG_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bNH_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNG_), - _bNI_ = caml_call2(Runtime_ocaml_Runtime[83], _bNH_, _bNF_); - return caml_call2(Runtime_ocaml_Runtime[29], _ik_, _bNI_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _il_, [0], _bNB_, _bNA_); - } - var - _bNq_ = - [0, - function(param){ - function _bNr_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_30850); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_26887$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_25200); - } - } - function _bNs_(param){ - var - _bNt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$51), - _bNu_ = + _b8G_=caml_call1(Runtime_ocaml_Runtime[31],cst_32300), + _b8H_= caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bNt_), - _bNv_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, - _bNw_ = caml_call2(Runtime_ocaml_Runtime[83], _bNv_, _bNu_), - _bNx_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bNy_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNx_), - _bNz_ = caml_call2(Runtime_ocaml_Runtime[83], _bNy_, _bNw_); - return caml_call2(Runtime_ocaml_Runtime[29], _im_, _bNz_); - } + (Runtime_ocaml_Runtime[104], + _b8G_, + multiplicateur_majoration_r0), + _b8I_=caml_call1(Runtime_ocaml_Runtime[31],cst_981600$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b8I_,_b8H_)} + function _b8t_(param) + {var + _b8u_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), + _b8v_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b8u_), + _b8w_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b8x_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b8w_), + _b8y_=caml_call2(Runtime_ocaml_Runtime[83],_b8x_,_b8v_); + return caml_call2(Runtime_ocaml_Runtime[29],_s__,_b8y_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _in_, [0], _bNs_, _bNr_); - }, - _bNp_, - _bNo_, - _bNn_, - _bNm_, - _bNl_, - _bNk_, - _bNj_, - _bNi_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _io_, _bNq_, _bNh_, _bNg_); - }, - _bEZ_ = function(param){return 1;}, - _bE0_ = - function(param){ - function _bMm_(param){ - function _bMS_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bMT_(param){return 0;} - function _bMU_(param){ - function _bM__(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_26714); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_23282); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_21821); - } - } - function _bM$_(param){ + (Runtime_ocaml_Runtime[63],_s$_,[0],_b8t_,_b8s_)} var - _bNa_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bNb_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNa_), - _bNc_ = - caml_call2 - (Runtime_ocaml_Runtime[83], _bNb_, logement_est_chambre), - _bNd_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bNe_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bNd_), - _bNf_ = caml_call2(Runtime_ocaml_Runtime[83], _bNe_, _bNc_); - return caml_call2(Runtime_ocaml_Runtime[29], _ip_, _bNf_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iq_, [0], _bM$_, _bM__); - } - function _bMV_(param){ - function _bM2_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_26826); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_23380); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_21913); - } - } - function _bM3_(param){ - var - _bM4_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bM5_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bM4_), - _bM6_ = - caml_call2 - (Runtime_ocaml_Runtime[83], _bM5_, logement_est_chambre), - _bM7_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bM8_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bM7_), - _bM9_ = caml_call2(Runtime_ocaml_Runtime[83], _bM8_, _bM6_); - return caml_call2(Runtime_ocaml_Runtime[29], _ir_, _bM9_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _is_, [0], _bM3_, _bM2_); - } - var - _bMW_ = - [0, - function(param){ - function _bMX_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_27765); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_24198); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_22680); - } - } - function _bMY_(param){ - var - _bMZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bM0_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMZ_), - _bM1_ = - caml_call2 - (Runtime_ocaml_Runtime[83], _bM0_, logement_est_chambre); - return caml_call2(Runtime_ocaml_Runtime[29], _it_, _bM1_); - } + _b8d_= + [0, + function(param) + {function _b8e_(param) + {var _b8i_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$106); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8i_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_494900) + :caml_call1(Runtime_ocaml_Runtime[31],cst_709000); + var _b8j_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8j_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_845600); + var _b8k_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8k_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_864600); + var _b8l_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$22); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8l_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_897700); + var _b8m_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$17); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8m_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_931100); + var _b8n_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8n_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_964200); + var _b8o_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8o_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_997500); + var + _b8p_=caml_call1(Runtime_ocaml_Runtime[31],cst_32800), + _b8q_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b8p_, + multiplicateur_majoration_r0), + _b8r_=caml_call1(Runtime_ocaml_Runtime[31],cst_997500$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b8r_,_b8q_)} + function _b8f_(param) + {var + _b8g_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _b8h_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b8g_); + return caml_call2(Runtime_ocaml_Runtime[29],_ta_,_b8h_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tb_,[0],_b8f_,_b8e_)}, + _b8c_, + _b8b_, + _b8a_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_tc_,_b8d_,_b7$_,_b7__)}, + _bU6_=function(param){return 1}, + _bU7_= + [0, + function(param) + {function _b5M_(param){throw Runtime_ocaml_Runtime[2]} + function _b5N_(param){return 0} + function _b5O_(param) + {function _b7V_(param) + {var _b74_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$107); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b74_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_396000) + :caml_call1(Runtime_ocaml_Runtime[31],cst_567300); + var _b75_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$55); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b75_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_639600); + var _b76_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b76_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_684900); + var _b77_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$23); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b77_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_738600); + var _b78_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b78_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_793500); + var _b79_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$22); + return caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b79_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_848400) + :caml_call1(Runtime_ocaml_Runtime[31],cst_903200)} + function _b7W_(param) + {switch(residence[0]) + {case 0:var _b7X_=1;break; + case 1:var _b7X_=0;break; + case 2:var _b7X_=1;break; + case 3:var _b7X_=1;break; + case 4:var _b7X_=1;break; + case 5:var _b7X_=1;break; + case 6:var _b7X_=0;break; + case 7:var _b7X_=0;break; + default:var _b7X_=1} + var + _b7Y_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _b7Z_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b7Y_), + _b70_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _b71_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b70_), + _b72_=caml_call2(Runtime_ocaml_Runtime[83],_b71_,_b7Z_), + _b73_=caml_call2(Runtime_ocaml_Runtime[83],_b72_,_b7X_); + return caml_call2(Runtime_ocaml_Runtime[29],_td_,_b73_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _iu_, [0], _bMY_, _bMX_); - }, - _bMV_, - _bMU_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _iv_, _bMW_, _bMT_, _bMS_); - } - function _bMn_(param){return 1;} - var - _bMo_ = - [0, - function(param){ - function _bMp_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bMq_(param){return 0;} - function _bMr_(param){ - function _bMJ_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_22262); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_19402); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_18185); - } - } - function _bMK_(param){ - var - _bML_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bMM_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bML_), - _bMN_ = + (Runtime_ocaml_Runtime[63],_te_,[0],_b7W_,_b7V_)} + function _b5P_(param) + {function _b7j_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_758400)} + function _b7k_(param) + {var + _b7L_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$56), + _b7M_= caml_call2 - (Runtime_ocaml_Runtime[83], _bMM_, logement_est_chambre), - _bMO_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bMP_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bMO_), - _bMQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bMP_, _bMN_), - _bMR_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - _bMQ_, - agees_ou_handicap_adultes_hebe); - return caml_call2(Runtime_ocaml_Runtime[29], _iw_, _bMR_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ix_, [0], _bMK_, _bMJ_); - } - function _bMs_(param){ - function _bMA_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_22355); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_19484); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_18261); - } - } - function _bMB_(param){ - var - _bMC_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bMD_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bMC_), - _bME_ = - caml_call2 - (Runtime_ocaml_Runtime[83], _bMD_, logement_est_chambre), - _bMF_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bMG_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMF_), - _bMH_ = caml_call2(Runtime_ocaml_Runtime[83], _bMG_, _bME_), - _bMI_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - _bMH_, - agees_ou_handicap_adultes_hebe); - return caml_call2(Runtime_ocaml_Runtime[29], _iy_, _bMI_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iz_, [0], _bMB_, _bMA_); - } - var - _bMt_ = + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7L_); + switch(residence[0]) + {case 0:var _b7N_=1;break; + case 1:var _b7N_=0;break; + case 2:var _b7N_=1;break; + case 3:var _b7N_=1;break; + case 4:var _b7N_=1;break; + case 5:var _b7N_=1;break; + case 6:var _b7N_=0;break; + case 7:var _b7N_=0;break; + default:var _b7N_=1} + var + _b7O_=caml_call2(Runtime_ocaml_Runtime[83],_b7N_,_b7M_), + _b7P_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _b7Q_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b7P_), + _b7R_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b7S_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b7R_), + _b7T_=caml_call2(Runtime_ocaml_Runtime[83],_b7S_,_b7Q_), + _b7U_=caml_call2(Runtime_ocaml_Runtime[83],_b7T_,_b7O_); + return caml_call2(Runtime_ocaml_Runtime[29],_tf_,_b7U_)} + var + _b7l_= [0, - function(param){ - function _bMu_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_23138); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_20165); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_18900); - } - } - function _bMv_(param){ + function(param) + {function _b7m_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_758400$0)} + function _b7n_(param) + {var + _b7B_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$57), + _b7C_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7B_); + switch(residence[0]) + {case 0:var _b7D_=1;break; + case 1:var _b7D_=0;break; + case 2:var _b7D_=1;break; + case 3:var _b7D_=1;break; + case 4:var _b7D_=1;break; + case 5:var _b7D_=1;break; + case 6:var _b7D_=0;break; + case 7:var _b7D_=0;break; + default:var _b7D_=1} + var + _b7E_=caml_call2(Runtime_ocaml_Runtime[83],_b7D_,_b7C_), + _b7F_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b7G_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b7F_), + _b7H_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b7I_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b7H_), + _b7J_=caml_call2(Runtime_ocaml_Runtime[83],_b7I_,_b7G_), + _b7K_=caml_call2(Runtime_ocaml_Runtime[83],_b7J_,_b7E_); + return caml_call2(Runtime_ocaml_Runtime[29],_tg_,_b7K_)} var - _bMw_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bMx_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMw_), - _bMy_ = + _b7o_= + [0, + function(param) + {function _b7p_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_758400$1)} + function _b7q_(param) + {var + _b7r_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$58), + _b7s_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7r_); + switch(residence[0]) + {case 0:var _b7t_=1;break; + case 1:var _b7t_=0;break; + case 2:var _b7t_=1;break; + case 3:var _b7t_=1;break; + case 4:var _b7t_=1;break; + case 5:var _b7t_=1;break; + case 6:var _b7t_=0;break; + case 7:var _b7t_=0;break; + default:var _b7t_=1} + var + _b7u_=caml_call2(Runtime_ocaml_Runtime[83],_b7t_,_b7s_), + _b7v_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b7w_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b7v_), + _b7x_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _b7y_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b7x_), + _b7z_=caml_call2(Runtime_ocaml_Runtime[83],_b7y_,_b7w_), + _b7A_=caml_call2(Runtime_ocaml_Runtime[83],_b7z_,_b7u_); + return caml_call2(Runtime_ocaml_Runtime[29],_th_,_b7A_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ti_,[0],_b7q_,_b7p_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_tj_,_b7o_,_b7n_,_b7m_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_tk_,_b7l_,_b7k_,_b7j_)} + function _b5Q_(param) + {function _b66_(param) + {var _b7d_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$108); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7d_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_427400) + :caml_call1(Runtime_ocaml_Runtime[31],cst_612200); + var _b7e_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$59); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7e_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_699000); + var _b7f_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7f_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_743200); + var _b7g_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7g_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_785400); + var _b7h_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7h_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_828300); + var _b7i_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$23); + return caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7i_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_871100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_913900)} + function _b67_(param) + {switch(residence[0]) + {case 0:var _b68_=1;break; + case 1:var _b68_=0;break; + case 2:var _b68_=1;break; + case 3:var _b68_=1;break; + case 4:var _b68_=1;break; + case 5:var _b68_=1;break; + case 6:var _b68_=0;break; + case 7:var _b68_=0;break; + default:var _b68_=1} + var + _b69_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _b6__= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b69_), + _b6$_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _b7a_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b6$_), + _b7b_=caml_call2(Runtime_ocaml_Runtime[83],_b7a_,_b6__), + _b7c_=caml_call2(Runtime_ocaml_Runtime[83],_b7b_,_b68_); + return caml_call2(Runtime_ocaml_Runtime[29],_tl_,_b7c_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tm_,[0],_b67_,_b66_)} + function _b5R_(param) + {function _b6U_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_774200)} + function _b6V_(param) + {var + _b6W_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$60), + _b6X_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6W_); + switch(residence[0]) + {case 0:var _b6Y_=1;break; + case 1:var _b6Y_=0;break; + case 2:var _b6Y_=1;break; + case 3:var _b6Y_=1;break; + case 4:var _b6Y_=1;break; + case 5:var _b6Y_=1;break; + case 6:var _b6Y_=0;break; + case 7:var _b6Y_=0;break; + default:var _b6Y_=1} + var + _b6Z_=caml_call2(Runtime_ocaml_Runtime[83],_b6Y_,_b6X_), + _b60_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b61_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b60_), + _b62_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _b63_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b62_), + _b64_=caml_call2(Runtime_ocaml_Runtime[83],_b63_,_b61_), + _b65_=caml_call2(Runtime_ocaml_Runtime[83],_b64_,_b6Z_); + return caml_call2(Runtime_ocaml_Runtime[29],_tn_,_b65_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_to_,[0],_b6V_,_b6U_)} + function _b5S_(param) + {function _b6y_(param) + {var _b6H_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$109); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6H_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_487000$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_697700$0); + var _b6I_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$61); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6I_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_832200$1); + var _b6J_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6J_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_850900$0); + var _b6K_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6K_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_883400$0); + var _b6L_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6L_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_916300$0); + var _b6M_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6M_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_948800$0); + var _b6N_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6N_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_981600$1); + var + _b6O_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$44), + _b6P_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b6O_), + _b6Q_=caml_call1(Runtime_ocaml_Runtime[69],_b6P_), + _b6R_=caml_call1(Runtime_ocaml_Runtime[31],cst_35000), + _b6S_=caml_call2(Runtime_ocaml_Runtime[104],_b6R_,_b6Q_), + _b6T_=caml_call1(Runtime_ocaml_Runtime[31],cst_981600$2); + return caml_call2(Runtime_ocaml_Runtime[93],_b6T_,_b6S_)} + function _b6z_(param) + {switch(residence[0]) + {case 0:var _b6A_=0;break; + case 1:var _b6A_=0;break; + case 2:var _b6A_=0;break; + case 3:var _b6A_=0;break; + case 4:var _b6A_=0;break; + case 5:var _b6A_=0;break; + case 6:var _b6A_=0;break; + case 7:var _b6A_=1;break; + default:var _b6A_=0} + var + _b6B_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _b6C_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b6B_), + _b6D_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b6E_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b6D_), + _b6F_=caml_call2(Runtime_ocaml_Runtime[83],_b6E_,_b6C_), + _b6G_=caml_call2(Runtime_ocaml_Runtime[83],_b6F_,_b6A_); + return caml_call2(Runtime_ocaml_Runtime[29],_tp_,_b6G_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tq_,[0],_b6z_,_b6y_)} + function _b5T_(param) + {function _b6m_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_805100)} + function _b6n_(param) + {var + _b6o_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$62), + _b6p_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6o_); + switch(residence[0]) + {case 0:var _b6q_=1;break; + case 1:var _b6q_=0;break; + case 2:var _b6q_=1;break; + case 3:var _b6q_=1;break; + case 4:var _b6q_=1;break; + case 5:var _b6q_=1;break; + case 6:var _b6q_=0;break; + case 7:var _b6q_=0;break; + default:var _b6q_=1} + var + _b6r_=caml_call2(Runtime_ocaml_Runtime[83],_b6q_,_b6p_), + _b6s_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _b6t_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b6s_), + _b6u_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b6v_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b6u_), + _b6w_=caml_call2(Runtime_ocaml_Runtime[83],_b6v_,_b6t_), + _b6x_=caml_call2(Runtime_ocaml_Runtime[83],_b6w_,_b6r_); + return caml_call2(Runtime_ocaml_Runtime[29],_tr_,_b6x_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ts_,[0],_b6n_,_b6m_)} + function _b5U_(param) + {function _b55_(param) + {var _b5$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$110); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b5$_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_527200) + :caml_call1(Runtime_ocaml_Runtime[31],cst_755200); + var _b6a_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$63); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6a_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_900800); + var _b6b_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6b_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_921100); + var _b6c_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6c_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_956300); + var _b6d_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6d_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_991900); + var _b6e_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6e_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_1027100); + var _b6f_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6f_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_1062600); + var + _b6g_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$46), + _b6h_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b6g_), + _b6i_=caml_call1(Runtime_ocaml_Runtime[69],_b6h_), + _b6j_=caml_call1(Runtime_ocaml_Runtime[31],cst_35000$0), + _b6k_=caml_call2(Runtime_ocaml_Runtime[104],_b6j_,_b6i_), + _b6l_=caml_call1(Runtime_ocaml_Runtime[31],cst_1062600$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b6l_,_b6k_)} + function _b56_(param) + {switch(residence[0]) + {case 0:var _b57_=0;break; + case 1:var _b57_=0;break; + case 2:var _b57_=0;break; + case 3:var _b57_=0;break; + case 4:var _b57_=0;break; + case 5:var _b57_=0;break; + case 6:var _b57_=0;break; + case 7:var _b57_=1;break; + default:var _b57_=0} + var + _b58_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _b59_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b58_), + _b5__=caml_call2(Runtime_ocaml_Runtime[83],_b59_,_b57_); + return caml_call2(Runtime_ocaml_Runtime[29],_tt_,_b5__)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tu_,[0],_b56_,_b55_)} + var + _b5V_= + [0, + function(param) + {function _b5W_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_818100)} + function _b5X_(param) + {var + _b5Y_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$64), + _b5Z_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b5Y_); + switch(residence[0]) + {case 0:var _b50_=1;break; + case 1:var _b50_=0;break; + case 2:var _b50_=1;break; + case 3:var _b50_=1;break; + case 4:var _b50_=1;break; + case 5:var _b50_=1;break; + case 6:var _b50_=0;break; + case 7:var _b50_=0;break; + default:var _b50_=1} + var + _b51_=caml_call2(Runtime_ocaml_Runtime[83],_b50_,_b5Z_), + _b52_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _b53_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b52_), + _b54_=caml_call2(Runtime_ocaml_Runtime[83],_b53_,_b51_); + return caml_call2(Runtime_ocaml_Runtime[29],_tv_,_b54_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tw_,[0],_b5X_,_b5W_)}, + _b5U_, + _b5T_, + _b5S_, + _b5R_, + _b5Q_, + _b5P_, + _b5O_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_tx_,_b5V_,_b5N_,_b5M_)}], + _bU8_=caml_call4(Runtime_ocaml_Runtime[63],_ty_,_bU7_,_bU6_,_bU5_)} + catch(_b5L_) + {_b5L_ = caml_wrap_exception(_b5L_); + if(_b5L_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_s5_]; + throw _b5L_} + var + abattement_forfaitaire_d823_17= + caml_call3 + (Runtime_ocaml_Runtime[28],_tz_,Runtime_ocaml_Runtime[13],_bU8_); + try + {var + _bU9_=function(param){throw Runtime_ocaml_Runtime[2]}, + _bU__=function(param){return 0}, + _bU$_= + function(param) + {function _b5A_(param) + {var _b5H_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$111); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b5H_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25869) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31664); + var + _b5I_=caml_call1(Runtime_ocaml_Runtime[31],cst_5186), + _b5J_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b5I_, + multiplicateur_majoration_loye), + _b5K_=caml_call1(Runtime_ocaml_Runtime[31],cst_35630); + return caml_call2(Runtime_ocaml_Runtime[93],_b5K_,_b5J_)} + function _b5B_(param) + {var + _b5C_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b5D_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b5C_), + _b5E_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b5F_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5E_), + _b5G_=caml_call2(Runtime_ocaml_Runtime[83],_b5F_,_b5D_); + return caml_call2(Runtime_ocaml_Runtime[29],_tB_,_b5G_)} + return caml_call4(Runtime_ocaml_Runtime[63],_tC_,[0],_b5B_,_b5A_)}, + _bVa_= + function(param) + {function _b5p_(param) + {var _b5w_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$112); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b5w_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25978) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31797); + var + _b5x_=caml_call1(Runtime_ocaml_Runtime[31],cst_5208), + _b5y_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b5x_, + multiplicateur_majoration_loye), + _b5z_=caml_call1(Runtime_ocaml_Runtime[31],cst_35780); + return caml_call2(Runtime_ocaml_Runtime[93],_b5z_,_b5y_)} + function _b5q_(param) + {var + _b5r_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b5s_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b5r_), + _b5t_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b5u_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5t_), + _b5v_=caml_call2(Runtime_ocaml_Runtime[83],_b5u_,_b5s_); + return caml_call2(Runtime_ocaml_Runtime[29],_tD_,_b5v_)} + return caml_call4(Runtime_ocaml_Runtime[63],_tE_,[0],_b5q_,_b5p_)}, + _bVb_= + [0, + function(param) + {function _b5h_(param) + {var _b5l_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$113); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b5l_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26887) + :caml_call1(Runtime_ocaml_Runtime[31],cst_32910); + var + _b5m_=caml_call1(Runtime_ocaml_Runtime[31],cst_5390), + _b5n_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b5m_, + multiplicateur_majoration_loye), + _b5o_=caml_call1(Runtime_ocaml_Runtime[31],cst_37032); + return caml_call2(Runtime_ocaml_Runtime[93],_b5o_,_b5n_)} + function _b5i_(param) + {var + _b5j_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b5k_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5j_); + return caml_call2(Runtime_ocaml_Runtime[29],_tF_,_b5k_)} + return caml_call4(Runtime_ocaml_Runtime[63],_tG_,[0],_b5i_,_b5h_)}, + _bVa_, + _bU$_], + _bVc_=caml_call4(Runtime_ocaml_Runtime[63],_tH_,_bVb_,_bU__,_bU9_)} + catch(_b5g_) + {_b5g_ = caml_wrap_exception(_b5g_); + if(_b5g_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_tA_]; + throw _b5g_} + var + loyer_reference= + caml_call3 + (Runtime_ocaml_Runtime[28],_tI_,Runtime_ocaml_Runtime[13],_bVc_); + try + {var + _bVd_= + function(param) + {function _b3d_(param){throw Runtime_ocaml_Runtime[2]} + function _b3e_(param){return 0} + function _b3f_(param) + {function _b4Z_(param) + {switch(zone[0]) + {case 0: + var + _b49_=caml_call1(Runtime_ocaml_Runtime[31],cst_5870), + _b4__= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b49_, + multiplicateur_majoration_plaf), + _b4$_=caml_call1(Runtime_ocaml_Runtime[31],cst_40460); + return caml_call2(Runtime_ocaml_Runtime[93],_b4$_,_b4__); + case 1: + var + _b5a_=caml_call1(Runtime_ocaml_Runtime[31],cst_5186$0), + _b5b_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b5a_, + multiplicateur_majoration_plaf), + _b5c_=caml_call1(Runtime_ocaml_Runtime[31],cst_35630$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b5c_,_b5b_); + default: + var + _b5d_=caml_call1(Runtime_ocaml_Runtime[31],cst_4723), + _b5e_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b5d_, + multiplicateur_majoration_plaf), + _b5f_=caml_call1(Runtime_ocaml_Runtime[31],cst_32956); + return caml_call2(Runtime_ocaml_Runtime[93],_b5f_,_b5e_)}} + function _b40_(param) + {var + _b41_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$65), + _b42_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b41_), + _b43_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b44_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b43_), + _b45_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b46_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b45_), + _b47_=caml_call2(Runtime_ocaml_Runtime[83],_b46_,_b44_), + _b48_=caml_call2(Runtime_ocaml_Runtime[83],_b47_,_b42_); + return caml_call2(Runtime_ocaml_Runtime[29],_tK_,_b48_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tL_,[0],_b40_,_b4Z_)} + function _b3g_(param) + {function _b4N_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_35799); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_31664$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_29392)}} + function _b4O_(param) + {var + _b4P_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$114), + _b4Q_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b4P_), + _b4R_=0 === situation_familiale_calcul_apl[0]?0:1, + _b4S_=caml_call2(Runtime_ocaml_Runtime[83],_b4R_,_b4Q_), + _b4T_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b4U_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4T_), + _b4V_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b4W_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b4V_), + _b4X_=caml_call2(Runtime_ocaml_Runtime[83],_b4W_,_b4U_), + _b4Y_=caml_call2(Runtime_ocaml_Runtime[83],_b4X_,_b4S_); + return caml_call2(Runtime_ocaml_Runtime[29],_tM_,_b4Y_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tN_,[0],_b4O_,_b4N_)} + function _b3h_(param) + {function _b4B_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_29682); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_25859); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_24246)}} + function _b4C_(param) + {var + _b4D_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$115), + _b4E_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b4D_), + _b4F_=0 === situation_familiale_calcul_apl[0]?1:0, + _b4G_=caml_call2(Runtime_ocaml_Runtime[83],_b4F_,_b4E_), + _b4H_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b4I_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4H_), + _b4J_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b4K_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b4J_), + _b4L_=caml_call2(Runtime_ocaml_Runtime[83],_b4K_,_b4I_), + _b4M_=caml_call2(Runtime_ocaml_Runtime[83],_b4L_,_b4G_); + return caml_call2(Runtime_ocaml_Runtime[29],_tO_,_b4M_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tP_,[0],_b4C_,_b4B_)} + function _b3i_(param) + {function _b4i_(param) + {switch(zone[0]) + {case 0: + var + _b4s_=caml_call1(Runtime_ocaml_Runtime[31],cst_5895), + _b4t_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b4s_, + multiplicateur_majoration_plaf), + _b4u_=caml_call1(Runtime_ocaml_Runtime[31],cst_40630); + return caml_call2(Runtime_ocaml_Runtime[93],_b4u_,_b4t_); + case 1: + var + _b4v_=caml_call1(Runtime_ocaml_Runtime[31],cst_5208$0), + _b4w_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b4v_, + multiplicateur_majoration_plaf), + _b4x_=caml_call1(Runtime_ocaml_Runtime[31],cst_35780$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b4x_,_b4w_); + default: + var + _b4y_=caml_call1(Runtime_ocaml_Runtime[31],cst_4743), + _b4z_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b4y_, + multiplicateur_majoration_plaf), + _b4A_=caml_call1(Runtime_ocaml_Runtime[31],cst_33094); + return caml_call2(Runtime_ocaml_Runtime[93],_b4A_,_b4z_)}} + function _b4j_(param) + {var + _b4k_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$66), + _b4l_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b4k_), + _b4m_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b4n_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b4m_), + _b4o_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b4p_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4o_), + _b4q_=caml_call2(Runtime_ocaml_Runtime[83],_b4p_,_b4n_), + _b4r_=caml_call2(Runtime_ocaml_Runtime[83],_b4q_,_b4l_); + return caml_call2(Runtime_ocaml_Runtime[29],_tQ_,_b4r_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tR_,[0],_b4j_,_b4i_)} + function _b3j_(param) + {function _b38_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_35949); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_31797$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_29515)}} + function _b39_(param) + {var + _b3__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$116), + _b3$_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b3__), + _b4a_=0 === situation_familiale_calcul_apl[0]?0:1, + _b4b_=caml_call2(Runtime_ocaml_Runtime[83],_b4a_,_b3$_), + _b4c_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b4d_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b4c_), + _b4e_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b4f_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4e_), + _b4g_=caml_call2(Runtime_ocaml_Runtime[83],_b4f_,_b4d_), + _b4h_=caml_call2(Runtime_ocaml_Runtime[83],_b4g_,_b4b_); + return caml_call2(Runtime_ocaml_Runtime[29],_tS_,_b4h_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tT_,[0],_b39_,_b38_)} + function _b3k_(param) + {function _b3W_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_29807); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_25978$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_24348)}} + function _b3X_(param) + {var + _b3Y_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$117), + _b3Z_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b3Y_), + _b30_=0 === situation_familiale_calcul_apl[0]?1:0, + _b31_=caml_call2(Runtime_ocaml_Runtime[83],_b30_,_b3Z_), + _b32_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b33_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b32_), + _b34_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b35_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b34_), + _b36_=caml_call2(Runtime_ocaml_Runtime[83],_b35_,_b33_), + _b37_=caml_call2(Runtime_ocaml_Runtime[83],_b36_,_b31_); + return caml_call2(Runtime_ocaml_Runtime[29],_tU_,_b37_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tV_,[0],_b3X_,_b3W_)} + function _b3l_(param) + {function _b3G_(param) + {switch(zone[0]) + {case 0: + var + _b3N_=caml_call1(Runtime_ocaml_Runtime[31],cst_6101), + _b3O_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b3N_, + multiplicateur_majoration_plaf), + _b3P_=caml_call1(Runtime_ocaml_Runtime[31],cst_42052); + return caml_call2(Runtime_ocaml_Runtime[93],_b3P_,_b3O_); + case 1: + var + _b3Q_=caml_call1(Runtime_ocaml_Runtime[31],cst_5390$0), + _b3R_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b3Q_, + multiplicateur_majoration_plaf), + _b3S_=caml_call1(Runtime_ocaml_Runtime[31],cst_37032$0); + return caml_call2(Runtime_ocaml_Runtime[93],_b3S_,_b3R_); + default: + var + _b3T_=caml_call1(Runtime_ocaml_Runtime[31],cst_4909), + _b3U_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b3T_, + multiplicateur_majoration_plaf), + _b3V_=caml_call1(Runtime_ocaml_Runtime[31],cst_34252); + return caml_call2(Runtime_ocaml_Runtime[93],_b3V_,_b3U_)}} + function _b3H_(param) + {var + _b3I_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$67), + _b3J_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b3I_), + _b3K_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b3L_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b3K_), + _b3M_=caml_call2(Runtime_ocaml_Runtime[83],_b3L_,_b3J_); + return caml_call2(Runtime_ocaml_Runtime[29],_tW_,_b3M_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tX_,[0],_b3H_,_b3G_)} + function _b3m_(param) + {function _b3x_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_37207); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_32910$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_30548)}} + function _b3y_(param) + {var + _b3z_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$118), + _b3A_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b3z_), + _b3B_=0 === situation_familiale_calcul_apl[0]?0:1, + _b3C_=caml_call2(Runtime_ocaml_Runtime[83],_b3B_,_b3A_), + _b3D_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b3E_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b3D_), + _b3F_=caml_call2(Runtime_ocaml_Runtime[83],_b3E_,_b3C_); + return caml_call2(Runtime_ocaml_Runtime[29],_tY_,_b3F_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_tZ_,[0],_b3y_,_b3x_)} + var + _b3n_= + [0, + function(param) + {function _b3o_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_30850); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_26887$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_25200)}} + function _b3p_(param) + {var + _b3q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$119), + _b3r_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b3q_), + _b3s_=0 === situation_familiale_calcul_apl[0]?1:0, + _b3t_=caml_call2(Runtime_ocaml_Runtime[83],_b3s_,_b3r_), + _b3u_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b3v_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b3u_), + _b3w_=caml_call2(Runtime_ocaml_Runtime[83],_b3v_,_b3t_); + return caml_call2(Runtime_ocaml_Runtime[29],_t0_,_b3w_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_t1_,[0],_b3p_,_b3o_)}, + _b3m_, + _b3l_, + _b3k_, + _b3j_, + _b3i_, + _b3h_, + _b3g_, + _b3f_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_t2_,_b3n_,_b3e_,_b3d_)}, + _bVe_=function(param){return 1}, + _bVf_= + function(param) + {function _b2j_(param) + {function _b2P_(param){throw Runtime_ocaml_Runtime[2]} + function _b2Q_(param){return 0} + function _b2R_(param) + {function _b27_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_26714); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_23282); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_21821)}} + function _b28_(param) + {var + _b29_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b2__= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b29_), + _b2$_= + caml_call2 + (Runtime_ocaml_Runtime[83],_b2__,logement_est_chambre), + _b3a_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b3b_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b3a_), + _b3c_=caml_call2(Runtime_ocaml_Runtime[83],_b3b_,_b2$_); + return caml_call2(Runtime_ocaml_Runtime[29],_t3_,_b3c_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_t4_,[0],_b28_,_b27_)} + function _b2S_(param) + {function _b2Z_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_26826); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_23380); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_21913)}} + function _b20_(param) + {var + _b21_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b22_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b21_), + _b23_= + caml_call2 + (Runtime_ocaml_Runtime[83],_b22_,logement_est_chambre), + _b24_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b25_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b24_), + _b26_=caml_call2(Runtime_ocaml_Runtime[83],_b25_,_b23_); + return caml_call2(Runtime_ocaml_Runtime[29],_t5_,_b26_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_t6_,[0],_b20_,_b2Z_)} + var + _b2T_= + [0, + function(param) + {function _b2U_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_27765); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_24198); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_22680)}} + function _b2V_(param) + {var + _b2W_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b2X_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2W_), + _b2Y_= caml_call2 - (Runtime_ocaml_Runtime[83], _bMx_, logement_est_chambre), - _bMz_ = + (Runtime_ocaml_Runtime[83],_b2X_,logement_est_chambre); + return caml_call2(Runtime_ocaml_Runtime[29],_t7_,_b2Y_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_t8_,[0],_b2V_,_b2U_)}, + _b2S_, + _b2R_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_t9_,_b2T_,_b2Q_,_b2P_)} + function _b2k_(param){return 1} + var + _b2l_= + [0, + function(param) + {function _b2m_(param){throw Runtime_ocaml_Runtime[2]} + function _b2n_(param){return 0} + function _b2o_(param) + {function _b2G_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_22262); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_19402); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_18185)}} + function _b2H_(param) + {var + _b2I_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b2J_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2I_), + _b2K_= + caml_call2 + (Runtime_ocaml_Runtime[83],_b2J_,logement_est_chambre), + _b2L_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b2M_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b2L_), + _b2N_=caml_call2(Runtime_ocaml_Runtime[83],_b2M_,_b2K_), + _b2O_= caml_call2 (Runtime_ocaml_Runtime[83], - _bMy_, + _b2N_, agees_ou_handicap_adultes_hebe); - return caml_call2(Runtime_ocaml_Runtime[29], _iA_, _bMz_); - } + return caml_call2(Runtime_ocaml_Runtime[29],_t__,_b2O_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _iB_, [0], _bMv_, _bMu_); - }, - _bMs_, - _bMr_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _iC_, _bMt_, _bMq_, _bMp_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _iD_, _bMo_, _bMn_, _bMm_); - }, - _bE1_ = - [0, - function(param){ - function _bKa_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bKb_(param){return 0;} - function _bKc_(param){ - function _bL4_(param){ - switch(zone[0]){ - case 0: - var - _bMd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4403), - _bMe_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bMd_, - multiplicateur_majoration_plaf), - _bMf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30345); - return caml_call2(Runtime_ocaml_Runtime[93], _bMf_, _bMe_); - case 1: - var - _bMg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3890), - _bMh_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bMg_, - multiplicateur_majoration_plaf), - _bMi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26723); - return caml_call2(Runtime_ocaml_Runtime[93], _bMi_, _bMh_); - default: - var - _bMj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3542), - _bMk_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bMj_, - multiplicateur_majoration_plaf), - _bMl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_24717); - return caml_call2(Runtime_ocaml_Runtime[93], _bMl_, _bMk_); - } - } - function _bL5_(param){ - var - _bL6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$39), - _bL7_ = - caml_call2 - (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bL6_), - _bL8_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bL9_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bL8_), - _bL__ = caml_call2(Runtime_ocaml_Runtime[83], _bL9_, colocation), - _bL$_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bMa_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bL$_), - _bMb_ = caml_call2(Runtime_ocaml_Runtime[83], _bMa_, _bL__), - _bMc_ = caml_call2(Runtime_ocaml_Runtime[83], _bMb_, _bL7_); - return caml_call2(Runtime_ocaml_Runtime[29], _iE_, _bMc_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iF_, [0], _bL5_, _bL4_); - } - function _bKd_(param){ - function _bLR_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_26849); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_23748); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_22044); - } - } - function _bLS_(param){ - var - _bLT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$52), - _bLU_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bLT_), - _bLV_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, - _bLW_ = caml_call2(Runtime_ocaml_Runtime[83], _bLV_, _bLU_), - _bLX_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bLY_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLX_), - _bLZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bLY_, colocation), - _bL0_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bL1_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bL0_), - _bL2_ = caml_call2(Runtime_ocaml_Runtime[83], _bL1_, _bLZ_), - _bL3_ = caml_call2(Runtime_ocaml_Runtime[83], _bL2_, _bLW_); - return caml_call2(Runtime_ocaml_Runtime[29], _iG_, _bL3_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iH_, [0], _bLS_, _bLR_); - } - function _bKe_(param){ - function _bLE_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_22262$0); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_19402$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_18185$0); - } - } - function _bLF_(param){ - var - _bLG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$53), - _bLH_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bLG_), - _bLI_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, - _bLJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bLI_, _bLH_), - _bLK_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bLL_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLK_), - _bLM_ = caml_call2(Runtime_ocaml_Runtime[83], _bLL_, colocation), - _bLN_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bLO_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bLN_), - _bLP_ = caml_call2(Runtime_ocaml_Runtime[83], _bLO_, _bLM_), - _bLQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bLP_, _bLJ_); - return caml_call2(Runtime_ocaml_Runtime[29], _iI_, _bLQ_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iJ_, [0], _bLF_, _bLE_); - } - function _bKf_(param){ - function _bLk_(param){ - switch(zone[0]){ - case 0: - var - _bLv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4421), - _bLw_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bLv_, - multiplicateur_majoration_plaf), - _bLx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30473); - return caml_call2(Runtime_ocaml_Runtime[93], _bLx_, _bLw_); - case 1: - var - _bLy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3906), - _bLz_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bLy_, - multiplicateur_majoration_plaf), - _bLA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26835); - return caml_call2(Runtime_ocaml_Runtime[93], _bLA_, _bLz_); - default: - var - _bLB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3557), - _bLC_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bLB_, - multiplicateur_majoration_plaf), - _bLD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_24821); - return caml_call2(Runtime_ocaml_Runtime[93], _bLD_, _bLC_); - } - } - function _bLl_(param){ - var - _bLm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$40), - _bLn_ = - caml_call2 - (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bLm_), - _bLo_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bLp_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bLo_), - _bLq_ = caml_call2(Runtime_ocaml_Runtime[83], _bLp_, colocation), - _bLr_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bLs_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLr_), - _bLt_ = caml_call2(Runtime_ocaml_Runtime[83], _bLs_, _bLq_), - _bLu_ = caml_call2(Runtime_ocaml_Runtime[83], _bLt_, _bLn_); - return caml_call2(Runtime_ocaml_Runtime[29], _iK_, _bLu_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iL_, [0], _bLl_, _bLk_); - } - function _bKg_(param){ - function _bK9_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_26962); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_23848); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_22136); - } - } - function _bK__(param){ - var - _bK$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$54), - _bLa_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bK$_), - _bLb_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, - _bLc_ = caml_call2(Runtime_ocaml_Runtime[83], _bLb_, _bLa_), - _bLd_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bLe_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bLd_), - _bLf_ = caml_call2(Runtime_ocaml_Runtime[83], _bLe_, colocation), - _bLg_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bLh_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLg_), - _bLi_ = caml_call2(Runtime_ocaml_Runtime[83], _bLh_, _bLf_), - _bLj_ = caml_call2(Runtime_ocaml_Runtime[83], _bLi_, _bLc_); - return caml_call2(Runtime_ocaml_Runtime[29], _iM_, _bLj_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iN_, [0], _bK__, _bK9_); - } - function _bKh_(param){ - function _bKW_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_22355$0); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_19484$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_18261$0); - } - } - function _bKX_(param){ - var - _bKY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$55), - _bKZ_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bKY_), - _bK0_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, - _bK1_ = caml_call2(Runtime_ocaml_Runtime[83], _bK0_, _bKZ_), - _bK2_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bK3_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bK2_), - _bK4_ = caml_call2(Runtime_ocaml_Runtime[83], _bK3_, colocation), - _bK5_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bK6_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bK5_), - _bK7_ = caml_call2(Runtime_ocaml_Runtime[83], _bK6_, _bK4_), - _bK8_ = caml_call2(Runtime_ocaml_Runtime[83], _bK7_, _bK1_); - return caml_call2(Runtime_ocaml_Runtime[29], _iO_, _bK8_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iP_, [0], _bKX_, _bKW_); - } - function _bKi_(param){ - function _bKF_(param){ - switch(zone[0]){ - case 0: - var - _bKN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4576), - _bKO_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bKN_, - multiplicateur_majoration_plaf), - _bKP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31539); - return caml_call2(Runtime_ocaml_Runtime[93], _bKP_, _bKO_); - case 1: - var - _bKQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4043), - _bKR_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bKQ_, - multiplicateur_majoration_plaf), - _bKS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27774); - return caml_call2(Runtime_ocaml_Runtime[93], _bKS_, _bKR_); - default: - var - _bKT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3682), - _bKU_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bKT_, - multiplicateur_majoration_plaf), - _bKV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_25689); - return caml_call2(Runtime_ocaml_Runtime[93], _bKV_, _bKU_); - } - } - function _bKG_(param){ - var - _bKH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$41), - _bKI_ = - caml_call2 - (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bKH_), - _bKJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bKK_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bKJ_), - _bKL_ = caml_call2(Runtime_ocaml_Runtime[83], _bKK_, colocation), - _bKM_ = caml_call2(Runtime_ocaml_Runtime[83], _bKL_, _bKI_); - return caml_call2(Runtime_ocaml_Runtime[29], _iQ_, _bKM_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iR_, [0], _bKG_, _bKF_); - } - function _bKj_(param){ - function _bKv_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_27905); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_24683); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_22911); - } - } - function _bKw_(param){ - var - _bKx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$56), - _bKy_ = - caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bKx_), - _bKz_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, - _bKA_ = caml_call2(Runtime_ocaml_Runtime[83], _bKz_, _bKy_), - _bKB_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bKC_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bKB_), - _bKD_ = caml_call2(Runtime_ocaml_Runtime[83], _bKC_, colocation), - _bKE_ = caml_call2(Runtime_ocaml_Runtime[83], _bKD_, _bKA_); - return caml_call2(Runtime_ocaml_Runtime[29], _iS_, _bKE_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _iT_, [0], _bKw_, _bKv_); - } - var - _bKk_ = - [0, - function(param){ - function _bKl_(param){ - switch(zone[0]){ - case 0: - return caml_call1(Runtime_ocaml_Runtime[31], cst_23138$0); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_20165$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31], cst_18900$0); - } - } - function _bKm_(param){ - var - _bKn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$57), - _bKo_ = + (Runtime_ocaml_Runtime[63],_t$_,[0],_b2H_,_b2G_)} + function _b2p_(param) + {function _b2x_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_22355); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_19484); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_18261)}} + function _b2y_(param) + {var + _b2z_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b2A_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b2z_), + _b2B_= + caml_call2 + (Runtime_ocaml_Runtime[83],_b2A_,logement_est_chambre), + _b2C_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b2D_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2C_), + _b2E_=caml_call2(Runtime_ocaml_Runtime[83],_b2D_,_b2B_), + _b2F_= + caml_call2 + (Runtime_ocaml_Runtime[83], + _b2E_, + agees_ou_handicap_adultes_hebe); + return caml_call2(Runtime_ocaml_Runtime[29],_ua_,_b2F_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ub_,[0],_b2y_,_b2x_)} + var + _b2q_= + [0, + function(param) + {function _b2r_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_23138); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_20165); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_18900)}} + function _b2s_(param) + {var + _b2t_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b2u_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2t_), + _b2v_= + caml_call2 + (Runtime_ocaml_Runtime[83],_b2u_,logement_est_chambre), + _b2w_= + caml_call2 + (Runtime_ocaml_Runtime[83], + _b2v_, + agees_ou_handicap_adultes_hebe); + return caml_call2(Runtime_ocaml_Runtime[29],_uc_,_b2w_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ud_,[0],_b2s_,_b2r_)}, + _b2p_, + _b2o_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ue_,_b2q_,_b2n_,_b2m_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_uf_,_b2l_,_b2k_,_b2j_)}, + _bVg_= + [0, + function(param) + {function _bZ9_(param){throw Runtime_ocaml_Runtime[2]} + function _bZ__(param){return 0} + function _bZ$_(param) + {function _b11_(param) + {switch(zone[0]) + {case 0: + var + _b2a_=caml_call1(Runtime_ocaml_Runtime[31],cst_4403), + _b2b_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b2a_, + multiplicateur_majoration_plaf), + _b2c_=caml_call1(Runtime_ocaml_Runtime[31],cst_30345); + return caml_call2(Runtime_ocaml_Runtime[93],_b2c_,_b2b_); + case 1: + var + _b2d_=caml_call1(Runtime_ocaml_Runtime[31],cst_3890), + _b2e_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b2d_, + multiplicateur_majoration_plaf), + _b2f_=caml_call1(Runtime_ocaml_Runtime[31],cst_26723); + return caml_call2(Runtime_ocaml_Runtime[93],_b2f_,_b2e_); + default: + var + _b2g_=caml_call1(Runtime_ocaml_Runtime[31],cst_3542), + _b2h_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b2g_, + multiplicateur_majoration_plaf), + _b2i_=caml_call1(Runtime_ocaml_Runtime[31],cst_24717); + return caml_call2(Runtime_ocaml_Runtime[93],_b2i_,_b2h_)}} + function _b12_(param) + {var + _b13_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$68), + _b14_= caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bKn_), - _bKp_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, - _bKq_ = caml_call2(Runtime_ocaml_Runtime[83], _bKp_, _bKo_), - _bKr_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bKs_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bKr_), - _bKt_ = - caml_call2(Runtime_ocaml_Runtime[83], _bKs_, colocation), - _bKu_ = caml_call2(Runtime_ocaml_Runtime[83], _bKt_, _bKq_); - return caml_call2(Runtime_ocaml_Runtime[29], _iU_, _bKu_); - } + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b13_), + _b15_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b16_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b15_), + _b17_=caml_call2(Runtime_ocaml_Runtime[83],_b16_,colocation), + _b18_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b19_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b18_), + _b1__=caml_call2(Runtime_ocaml_Runtime[83],_b19_,_b17_), + _b1$_=caml_call2(Runtime_ocaml_Runtime[83],_b1__,_b14_); + return caml_call2(Runtime_ocaml_Runtime[29],_ug_,_b1$_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _iV_, [0], _bKm_, _bKl_); - }, - _bKj_, - _bKi_, - _bKh_, - _bKg_, - _bKf_, - _bKe_, - _bKd_, - _bKc_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _iW_, _bKk_, _bKb_, _bKa_); - }, - _bE0_], - _bE2_ = caml_call4(Runtime_ocaml_Runtime[63], _iX_, _bE1_, _bEZ_, _bEY_); - } - catch(_bJ$_){ - var _bEX_ = caml_wrap_exception(_bJ$_); - if(_bEX_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _h7_], 1); - throw caml_maybe_attach_backtrace(_bEX_, 0); - } - var - plafond_loyer_d823_16_2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _iY_, Runtime_ocaml_Runtime[13], _bE2_); - try{ - var - _bE4_ = - function(param){ - switch(zone[0]){ - case 0: - var _bJ8_ = caml_call1(Runtime_ocaml_Runtime[39], cst_4$22); - return caml_call2 - (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJ8_); - case 1: - var _bJ9_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3_1); - return caml_call2 - (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJ9_); - default: - var _bJ__ = caml_call1(Runtime_ocaml_Runtime[39], cst_3_1$0); - return caml_call2 - (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJ__); - } - }, - _bE5_ = - function(param){ - var - _bJ6_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bJ7_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJ6_); - return caml_call2(Runtime_ocaml_Runtime[29], _i0_, _bJ7_); - }, - _bE6_ = caml_call4(Runtime_ocaml_Runtime[63], _i1_, [0], _bE5_, _bE4_); - } - catch(_bJ5_){ - var _bE3_ = caml_wrap_exception(_bJ5_); - if(_bE3_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _iZ_], 1); - throw caml_maybe_attach_backtrace(_bE3_, 0); - } - var - plafond_suppression_d823_16 = - caml_call3 - (Runtime_ocaml_Runtime[28], _i2_, Runtime_ocaml_Runtime[13], _bE6_); - try{ - var - _bE8_ = - function(param){ - switch(zone[0]){ - case 0: - var _bJ2_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3_4); - return caml_call2 - (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJ2_); - case 1: - var _bJ3_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$2); - return caml_call2 - (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJ3_); - default: - var _bJ4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$3); - return caml_call2 - (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJ4_); - } - }, - _bE9_ = - function(param){ - var - _bJ0_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bJ1_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJ0_); - return caml_call2(Runtime_ocaml_Runtime[29], _i4_, _bJ1_); - }, - _bE__ = caml_call4(Runtime_ocaml_Runtime[63], _i5_, [0], _bE9_, _bE8_); - } - catch(_bJZ_){ - var _bE7_ = caml_wrap_exception(_bJZ_); - if(_bE7_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _i3_], 1); - throw caml_maybe_attach_backtrace(_bE7_, 0); - } - var - plafond_degressivite_d823_16 = - caml_call3 - (Runtime_ocaml_Runtime[28], _i6_, Runtime_ocaml_Runtime[13], _bE__); - try{ - var - _bFa_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[123], - loyer_principal_avec_reduction, - plafond_loyer_d823_16_2) - ? plafond_loyer_d823_16_2 - : loyer_principal_avec_reduction; - }, - _bFb_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _i8_, 1); - }, - _bFc_ = caml_call4(Runtime_ocaml_Runtime[63], _i9_, [0], _bFb_, _bFa_); - } - catch(_bJY_){ - var _bE$_ = caml_wrap_exception(_bJY_); - if(_bE$_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _i7_], 1); - throw caml_maybe_attach_backtrace(_bE$_, 0); - } - var - loyer_eligible = - caml_call3 - (Runtime_ocaml_Runtime[28], _i__, Runtime_ocaml_Runtime[13], _bFc_); - function _bFd_(aide_finale){ - try{ + (Runtime_ocaml_Runtime[63],_uh_,[0],_b12_,_b11_)} + function _b0a_(param) + {function _b1O_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_26849); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_23748); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_22044)}} + function _b1P_(param) + {var + _b1Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$120), + _b1R_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b1Q_), + _b1S_=0 === situation_familiale_calcul_apl[0]?0:1, + _b1T_=caml_call2(Runtime_ocaml_Runtime[83],_b1S_,_b1R_), + _b1U_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b1V_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b1U_), + _b1W_=caml_call2(Runtime_ocaml_Runtime[83],_b1V_,colocation), + _b1X_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b1Y_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b1X_), + _b1Z_=caml_call2(Runtime_ocaml_Runtime[83],_b1Y_,_b1W_), + _b10_=caml_call2(Runtime_ocaml_Runtime[83],_b1Z_,_b1T_); + return caml_call2(Runtime_ocaml_Runtime[29],_ui_,_b10_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_uj_,[0],_b1P_,_b1O_)} + function _b0b_(param) + {function _b1B_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_22262$0); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_19402$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_18185$0)}} + function _b1C_(param) + {var + _b1D_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$121), + _b1E_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b1D_), + _b1F_=0 === situation_familiale_calcul_apl[0]?1:0, + _b1G_=caml_call2(Runtime_ocaml_Runtime[83],_b1F_,_b1E_), + _b1H_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _b1I_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b1H_), + _b1J_=caml_call2(Runtime_ocaml_Runtime[83],_b1I_,colocation), + _b1K_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b1L_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b1K_), + _b1M_=caml_call2(Runtime_ocaml_Runtime[83],_b1L_,_b1J_), + _b1N_=caml_call2(Runtime_ocaml_Runtime[83],_b1M_,_b1G_); + return caml_call2(Runtime_ocaml_Runtime[29],_uk_,_b1N_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ul_,[0],_b1C_,_b1B_)} + function _b0c_(param) + {function _b1h_(param) + {switch(zone[0]) + {case 0: + var + _b1s_=caml_call1(Runtime_ocaml_Runtime[31],cst_4421), + _b1t_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b1s_, + multiplicateur_majoration_plaf), + _b1u_=caml_call1(Runtime_ocaml_Runtime[31],cst_30473); + return caml_call2(Runtime_ocaml_Runtime[93],_b1u_,_b1t_); + case 1: + var + _b1v_=caml_call1(Runtime_ocaml_Runtime[31],cst_3906), + _b1w_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b1v_, + multiplicateur_majoration_plaf), + _b1x_=caml_call1(Runtime_ocaml_Runtime[31],cst_26835); + return caml_call2(Runtime_ocaml_Runtime[93],_b1x_,_b1w_); + default: + var + _b1y_=caml_call1(Runtime_ocaml_Runtime[31],cst_3557), + _b1z_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b1y_, + multiplicateur_majoration_plaf), + _b1A_=caml_call1(Runtime_ocaml_Runtime[31],cst_24821); + return caml_call2(Runtime_ocaml_Runtime[93],_b1A_,_b1z_)}} + function _b1i_(param) + {var + _b1j_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$69), + _b1k_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b1j_), + _b1l_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b1m_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b1l_), + _b1n_=caml_call2(Runtime_ocaml_Runtime[83],_b1m_,colocation), + _b1o_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b1p_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b1o_), + _b1q_=caml_call2(Runtime_ocaml_Runtime[83],_b1p_,_b1n_), + _b1r_=caml_call2(Runtime_ocaml_Runtime[83],_b1q_,_b1k_); + return caml_call2(Runtime_ocaml_Runtime[29],_um_,_b1r_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_un_,[0],_b1i_,_b1h_)} + function _b0d_(param) + {function _b06_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_26962); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_23848); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_22136)}} + function _b07_(param) + {var + _b08_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$122), + _b09_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b08_), + _b0__=0 === situation_familiale_calcul_apl[0]?0:1, + _b0$_=caml_call2(Runtime_ocaml_Runtime[83],_b0__,_b09_), + _b1a_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b1b_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b1a_), + _b1c_=caml_call2(Runtime_ocaml_Runtime[83],_b1b_,colocation), + _b1d_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b1e_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b1d_), + _b1f_=caml_call2(Runtime_ocaml_Runtime[83],_b1e_,_b1c_), + _b1g_=caml_call2(Runtime_ocaml_Runtime[83],_b1f_,_b0$_); + return caml_call2(Runtime_ocaml_Runtime[29],_uo_,_b1g_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_up_,[0],_b07_,_b06_)} + function _b0e_(param) + {function _b0T_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_22355$0); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_19484$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_18261$0)}} + function _b0U_(param) + {var + _b0V_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$123), + _b0W_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b0V_), + _b0X_=0 === situation_familiale_calcul_apl[0]?1:0, + _b0Y_=caml_call2(Runtime_ocaml_Runtime[83],_b0X_,_b0W_), + _b0Z_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b00_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b0Z_), + _b01_=caml_call2(Runtime_ocaml_Runtime[83],_b00_,colocation), + _b02_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _b03_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b02_), + _b04_=caml_call2(Runtime_ocaml_Runtime[83],_b03_,_b01_), + _b05_=caml_call2(Runtime_ocaml_Runtime[83],_b04_,_b0Y_); + return caml_call2(Runtime_ocaml_Runtime[29],_uq_,_b05_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ur_,[0],_b0U_,_b0T_)} + function _b0f_(param) + {function _b0C_(param) + {switch(zone[0]) + {case 0: + var + _b0K_=caml_call1(Runtime_ocaml_Runtime[31],cst_4576), + _b0L_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b0K_, + multiplicateur_majoration_plaf), + _b0M_=caml_call1(Runtime_ocaml_Runtime[31],cst_31539); + return caml_call2(Runtime_ocaml_Runtime[93],_b0M_,_b0L_); + case 1: + var + _b0N_=caml_call1(Runtime_ocaml_Runtime[31],cst_4043), + _b0O_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b0N_, + multiplicateur_majoration_plaf), + _b0P_=caml_call1(Runtime_ocaml_Runtime[31],cst_27774); + return caml_call2(Runtime_ocaml_Runtime[93],_b0P_,_b0O_); + default: + var + _b0Q_=caml_call1(Runtime_ocaml_Runtime[31],cst_3682), + _b0R_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _b0Q_, + multiplicateur_majoration_plaf), + _b0S_=caml_call1(Runtime_ocaml_Runtime[31],cst_25689); + return caml_call2(Runtime_ocaml_Runtime[93],_b0S_,_b0R_)}} + function _b0D_(param) + {var + _b0E_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$70), + _b0F_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b0E_), + _b0G_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b0H_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b0G_), + _b0I_=caml_call2(Runtime_ocaml_Runtime[83],_b0H_,colocation), + _b0J_=caml_call2(Runtime_ocaml_Runtime[83],_b0I_,_b0F_); + return caml_call2(Runtime_ocaml_Runtime[29],_us_,_b0J_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ut_,[0],_b0D_,_b0C_)} + function _b0g_(param) + {function _b0s_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_27905); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_24683); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_22911)}} + function _b0t_(param) + {var + _b0u_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$124), + _b0v_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b0u_), + _b0w_=0 === situation_familiale_calcul_apl[0]?0:1, + _b0x_=caml_call2(Runtime_ocaml_Runtime[83],_b0w_,_b0v_), + _b0y_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b0z_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b0y_), + _b0A_=caml_call2(Runtime_ocaml_Runtime[83],_b0z_,colocation), + _b0B_=caml_call2(Runtime_ocaml_Runtime[83],_b0A_,_b0x_); + return caml_call2(Runtime_ocaml_Runtime[29],_uu_,_b0B_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_uv_,[0],_b0t_,_b0s_)} + var + _b0h_= + [0, + function(param) + {function _b0i_(param) + {switch(zone[0]) + {case 0: + return caml_call1(Runtime_ocaml_Runtime[31],cst_23138$0); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31],cst_20165$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31],cst_18900$0)}} + function _b0j_(param) + {var + _b0k_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$125), + _b0l_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b0k_), + _b0m_=0 === situation_familiale_calcul_apl[0]?1:0, + _b0n_=caml_call2(Runtime_ocaml_Runtime[83],_b0m_,_b0l_), + _b0o_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _b0p_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b0o_), + _b0q_=caml_call2(Runtime_ocaml_Runtime[83],_b0p_,colocation), + _b0r_=caml_call2(Runtime_ocaml_Runtime[83],_b0q_,_b0n_); + return caml_call2(Runtime_ocaml_Runtime[29],_uw_,_b0r_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ux_,[0],_b0j_,_b0i_)}, + _b0g_, + _b0f_, + _b0e_, + _b0d_, + _b0c_, + _b0b_, + _b0a_, + _bZ$_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_uy_,_b0h_,_bZ__,_bZ9_)}, + _bVf_], + _bVh_=caml_call4(Runtime_ocaml_Runtime[63],_uz_,_bVg_,_bVe_,_bVd_)} + catch(_bZ8_) + {_bZ8_ = caml_wrap_exception(_bZ8_); + if(_bZ8_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_tJ_]; + throw _bZ8_} var - _bJN_ = - function(param){ - if - (caml_call2 - (Runtime_ocaml_Runtime[123], - loyer_principal_avec_reduction, - plafond_suppression_d823_16)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$58); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[123], - loyer_principal_avec_reduction, - plafond_degressivite_d823_16)) - return aide_finale; - var - _bJU_ = - caml_call2 - (Runtime_ocaml_Runtime[98], - plafond_suppression_d823_16, - plafond_degressivite_d823_16), - _bJV_ = - caml_call2 - (Runtime_ocaml_Runtime[98], - loyer_principal_avec_reduction, - plafond_degressivite_d823_16), - _bJW_ = caml_call2(Runtime_ocaml_Runtime[108], _bJV_, _bJU_), - _bJX_ = caml_call2(Runtime_ocaml_Runtime[104], aide_finale, _bJW_); - return caml_call2(Runtime_ocaml_Runtime[98], aide_finale, _bJX_); - }, - _bJO_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ja_, 1); - }, - _bJP_ = - [0, - function(param){ - function _bJS_(param){return aide_finale;} - function _bJT_(param){ + plafond_loyer_d823_16_2= + caml_call3 + (Runtime_ocaml_Runtime[28],_uA_,Runtime_ocaml_Runtime[13],_bVh_); + try + {var + _bVi_= + function(param) + {switch(zone[0]) + {case 0: + var _bZ5_=caml_call1(Runtime_ocaml_Runtime[39],cst_4$22); + return caml_call2 + (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZ5_); + case 1: + var _bZ6_=caml_call1(Runtime_ocaml_Runtime[39],cst_3_1); + return caml_call2 + (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZ6_); + default: + var _bZ7_=caml_call1(Runtime_ocaml_Runtime[39],cst_3_1$0); + return caml_call2 + (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZ7_)}}, + _bVj_= + function(param) + {var + _bZ3_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bZ4_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZ3_); + return caml_call2(Runtime_ocaml_Runtime[29],_uC_,_bZ4_)}, + _bVk_=caml_call4(Runtime_ocaml_Runtime[63],_uD_,[0],_bVj_,_bVi_)} + catch(_bZ2_) + {_bZ2_ = caml_wrap_exception(_bZ2_); + if(_bZ2_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_uB_]; + throw _bZ2_} + var + plafond_suppression_d823_16= + caml_call3 + (Runtime_ocaml_Runtime[28],_uE_,Runtime_ocaml_Runtime[13],_bVk_); + try + {var + _bVl_= + function(param) + {switch(zone[0]) + {case 0: + var _bZZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_3_4); + return caml_call2 + (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZZ_); + case 1: + var _bZ0_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$2); + return caml_call2 + (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZ0_); + default: + var _bZ1_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$3); + return caml_call2 + (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZ1_)}}, + _bVm_= + function(param) + {var + _bZX_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bZY_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZX_); + return caml_call2(Runtime_ocaml_Runtime[29],_uG_,_bZY_)}, + _bVn_=caml_call4(Runtime_ocaml_Runtime[63],_uH_,[0],_bVm_,_bVl_)} + catch(_bZW_) + {_bZW_ = caml_wrap_exception(_bZW_); + if(_bZW_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_uF_]; + throw _bZW_} + var + plafond_degressivite_d823_16= + caml_call3 + (Runtime_ocaml_Runtime[28],_uI_,Runtime_ocaml_Runtime[13],_bVn_); + try + {var + _bVo_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[123], + loyer_principal_avec_reduction, + plafond_loyer_d823_16_2) + ?plafond_loyer_d823_16_2 + :loyer_principal_avec_reduction}, + _bVp_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_uK_,1)}, + _bVq_=caml_call4(Runtime_ocaml_Runtime[63],_uL_,[0],_bVp_,_bVo_)} + catch(_bZV_) + {_bZV_ = caml_wrap_exception(_bZV_); + if(_bZV_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_uJ_]; + throw _bZV_} + var + loyer_eligible= + caml_call3 + (Runtime_ocaml_Runtime[28],_uM_,Runtime_ocaml_Runtime[13],_bVq_); + function _bVr_(aide_finale) + {try + {var + _bZK_= + function(param) + {if + (caml_call2 + (Runtime_ocaml_Runtime[123], + loyer_principal_avec_reduction, + plafond_suppression_d823_16)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$126); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[123], + loyer_principal_avec_reduction, + plafond_degressivite_d823_16)) + return aide_finale; + var + _bZR_= + caml_call2 + (Runtime_ocaml_Runtime[98], + plafond_suppression_d823_16, + plafond_degressivite_d823_16), + _bZS_= + caml_call2 + (Runtime_ocaml_Runtime[98], + loyer_principal_avec_reduction, + plafond_degressivite_d823_16), + _bZT_=caml_call2(Runtime_ocaml_Runtime[108],_bZS_,_bZR_), + _bZU_=caml_call2(Runtime_ocaml_Runtime[104],aide_finale,_bZT_); + return caml_call2(Runtime_ocaml_Runtime[98],aide_finale,_bZU_)}, + _bZL_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_uO_,1)}, + _bZM_= + [0, + function(param) + {function _bZP_(param){return aide_finale} + function _bZQ_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29], + _uP_, + beneficiaire_aide_adulte_ou_en)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_uQ_,[0],_bZQ_,_bZP_)}], + _bZN_=caml_call4(Runtime_ocaml_Runtime[63],_uR_,_bZM_,_bZL_,_bZK_); + return _bZN_} + catch(_bZO_) + {_bZO_ = caml_wrap_exception(_bZO_); + if(_bZO_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_uN_]; + throw _bZO_}} + var + traitement_aide_finale_diminue= + caml_call3 + (Runtime_ocaml_Runtime[28],_uS_,Runtime_ocaml_Runtime[10],_bVr_); + try + {var + _bVs_=function(param){throw Runtime_ocaml_Runtime[2]}, + _bVt_=function(param){return 0}, + _bVu_= + function(param) + {function _bZx_(param) + {var + _bZE_=caml_call1(Runtime_ocaml_Runtime[31],cst_3524), + _bZF_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085), + _bZG_= + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8), + _bZH_=caml_call2(Runtime_ocaml_Runtime[104],_bZG_,_bZF_); + if(! caml_call2(Runtime_ocaml_Runtime[128],_bZH_,_bZE_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_3524$0); + var + _bZI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$0), + _bZJ_= + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8); + return caml_call2(Runtime_ocaml_Runtime[104],_bZJ_,_bZI_)} + function _bZy_(param) + {var + _bZz_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bZA_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZz_), + _bZB_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bZC_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bZB_), + _bZD_=caml_call2(Runtime_ocaml_Runtime[83],_bZC_,_bZA_); + return caml_call2(Runtime_ocaml_Runtime[29],_uU_,_bZD_)} + return caml_call4(Runtime_ocaml_Runtime[63],_uV_,[0],_bZy_,_bZx_)}, + _bVv_= + function(param) + {function _bZk_(param) + {var + _bZr_=caml_call1(Runtime_ocaml_Runtime[31],cst_3539), + _bZs_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$1), + _bZt_= + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8), + _bZu_=caml_call2(Runtime_ocaml_Runtime[104],_bZt_,_bZs_); + if(! caml_call2(Runtime_ocaml_Runtime[128],_bZu_,_bZr_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_3539$0); + var + _bZv_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$2), + _bZw_= + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8); + return caml_call2(Runtime_ocaml_Runtime[104],_bZw_,_bZv_)} + function _bZl_(param) + {var + _bZm_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bZn_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bZm_), + _bZo_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bZp_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZo_), + _bZq_=caml_call2(Runtime_ocaml_Runtime[83],_bZp_,_bZn_); + return caml_call2(Runtime_ocaml_Runtime[29],_uW_,_bZq_)} + return caml_call4(Runtime_ocaml_Runtime[63],_uX_,[0],_bZl_,_bZk_)}, + _bVw_= + [0, + function(param) + {function _bZa_(param) + {var + _bZe_=caml_call1(Runtime_ocaml_Runtime[31],cst_3663), + _bZf_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$3), + _bZg_= + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8), + _bZh_=caml_call2(Runtime_ocaml_Runtime[104],_bZg_,_bZf_); + if(! caml_call2(Runtime_ocaml_Runtime[128],_bZh_,_bZe_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_3663$0); + var + _bZi_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$4), + _bZj_= + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8); + return caml_call2(Runtime_ocaml_Runtime[104],_bZj_,_bZi_)} + function _bZb_(param) + {var + _bZc_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bZd_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZc_); + return caml_call2(Runtime_ocaml_Runtime[29],_uY_,_bZd_)} + return caml_call4(Runtime_ocaml_Runtime[63],_uZ_,[0],_bZb_,_bZa_)}, + _bVv_, + _bVu_], + _bVx_=caml_call4(Runtime_ocaml_Runtime[63],_u0_,_bVw_,_bVt_,_bVs_)} + catch(_bY$_) + {_bY$_ = caml_wrap_exception(_bY$_); + if(_bY$_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_uT_]; + throw _bY$_} + var + participation_minimale= + caml_call3 + (Runtime_ocaml_Runtime[28],_u1_,Runtime_ocaml_Runtime[13],_bVx_); + try + {var + _bVy_=function(param){throw Runtime_ocaml_Runtime[2]}, + _bVz_=function(param){return 0}, + _bVA_= + [0, + function(param) + {function _bYC_(param) + {var + _bY6_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$0), + _bY7_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$1), + _bY8_= + caml_call2 + (Runtime_ocaml_Runtime[108],loyer_eligible,loyer_reference), + _bY9_=caml_call2(Runtime_ocaml_Runtime[103],_bY8_,_bY7_), + _bY__=caml_call1(Runtime_ocaml_Runtime[78],_bY9_); + return caml_call2(Runtime_ocaml_Runtime[107],_bY__,_bY6_)} + function _bYD_(param) + {var + _bY4_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bY5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bY4_); + return caml_call2(Runtime_ocaml_Runtime[29],_u3_,_bY5_)} + var + _bYE_= + [0, + function(param) + {function _bYF_(param) + {var + _bYZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$2), + _bY0_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$3), + _bY1_= + caml_call2 + (Runtime_ocaml_Runtime[108],loyer_eligible,loyer_reference), + _bY2_=caml_call2(Runtime_ocaml_Runtime[103],_bY1_,_bY0_), + _bY3_=caml_call1(Runtime_ocaml_Runtime[78],_bY2_); + return caml_call2(Runtime_ocaml_Runtime[107],_bY3_,_bYZ_)} + function _bYG_(param) + {var + _bYU_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bYV_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bYU_), + _bYW_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bYX_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bYW_), + _bYY_=caml_call2(Runtime_ocaml_Runtime[83],_bYX_,_bYV_); + return caml_call2(Runtime_ocaml_Runtime[29],_u4_,_bYY_)} + var + _bYH_= + [0, + function(param) + {function _bYI_(param) + {var + _bYP_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$4), + _bYQ_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$5), + _bYR_= + caml_call2 + (Runtime_ocaml_Runtime[108],loyer_eligible,loyer_reference), + _bYS_=caml_call2(Runtime_ocaml_Runtime[103],_bYR_,_bYQ_), + _bYT_=caml_call1(Runtime_ocaml_Runtime[78],_bYS_); + return caml_call2(Runtime_ocaml_Runtime[107],_bYT_,_bYP_)} + function _bYJ_(param) + {var + _bYK_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bYL_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bYK_), + _bYM_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bYN_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bYM_), + _bYO_=caml_call2(Runtime_ocaml_Runtime[83],_bYN_,_bYL_); + return caml_call2(Runtime_ocaml_Runtime[29],_u5_,_bYO_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_u6_,[0],_bYJ_,_bYI_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_u7_,_bYH_,_bYG_,_bYF_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_u8_,_bYE_,_bYD_,_bYC_)}], + _bVB_=caml_call4(Runtime_ocaml_Runtime[63],_u9_,_bVA_,_bVz_,_bVy_)} + catch(_bYB_) + {_bYB_ = caml_wrap_exception(_bYB_); + if(_bYB_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_u2_]; + throw _bYB_} + var + rapport_loyers= + caml_call3 + (Runtime_ocaml_Runtime[28],_u__,Runtime_ocaml_Runtime[15],_bVB_); + function _bVC_(aide_finale) + {try + {var + _bYs_= + function(param) + {var + _bYw_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _va_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bYx_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _vb_, + traitement_aide_finale_diminue), + _bYw_), + _bYy_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _vc_, + Runtime_ocaml_Runtime[13], + _bYx_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_vd_,_bYy_), + _bYz_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$127), + _bYA_= + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale$0, + montant_forfaitaire_d823_16); + return caml_call2(Runtime_ocaml_Runtime[128],_bYA_,_bYz_) + ?caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale$0, + montant_forfaitaire_d823_16) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$128)}, + _bYt_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_ve_,1)}, + _bYu_=caml_call4(Runtime_ocaml_Runtime[63],_vf_,[0],_bYt_,_bYs_); + return _bYu_} + catch(_bYv_) + {_bYv_ = caml_wrap_exception(_bYv_); + if(_bYv_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_u$_]; + throw _bYv_}} + var + traitement_aide_finale_minorat= + caml_call3 + (Runtime_ocaml_Runtime[28],_vg_,Runtime_ocaml_Runtime[10],_bVC_); + try + {var + _bVD_=function(param){throw Runtime_ocaml_Runtime[2]}, + _bVE_=function(param){return 0}, + _bVF_= + [0, + function(param) + {function _bXo_(param) + {var _bYc_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45); + if(caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bYc_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$129); + var + _bYd_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75), + _bYe_= + caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bYd_), + _bYf_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$0), + _bYg_= + caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bYf_); + if(caml_call2(Runtime_ocaml_Runtime[83],_bYg_,_bYe_)) + {var + _bYh_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045), + _bYi_= + caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bYh_), + _bYj_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$0); + return caml_call2(Runtime_ocaml_Runtime[103],_bYj_,_bYi_)} + var _bYk_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$0); + if + (! + caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bYk_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$130); + var + _bYl_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$1), + _bYm_= + caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bYl_), + _bYn_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0068), + _bYo_=caml_call2(Runtime_ocaml_Runtime[103],_bYn_,_bYm_), + _bYp_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3), + _bYq_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$1), + _bYr_=caml_call2(Runtime_ocaml_Runtime[103],_bYq_,_bYp_); + return caml_call2(Runtime_ocaml_Runtime[92],_bYr_,_bYo_)} + function _bXp_(param) + {var + _bYa_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bYb_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bYa_); + return caml_call2(Runtime_ocaml_Runtime[29],_vi_,_bYb_)} + var + _bXq_= + [0, + function(param) + {function _bXr_(param) + {var _bXW_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$1); + if + (caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bXW_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$131); + var + _bXX_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$2), + _bXY_= + caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bXX_), + _bXZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$2), + _bX0_= + caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bXZ_); + if(caml_call2(Runtime_ocaml_Runtime[83],_bX0_,_bXY_)) + {var + _bX1_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$2), + _bX2_= + caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bX1_), + _bX3_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$3); + return caml_call2(Runtime_ocaml_Runtime[103],_bX3_,_bX2_)} + var _bX4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$3); + if + (! + caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bX4_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$132); + var + _bX5_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$4), + _bX6_= + caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bX5_), + _bX7_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0068$0), + _bX8_=caml_call2(Runtime_ocaml_Runtime[103],_bX7_,_bX6_), + _bX9_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3$0), + _bX__=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$4), + _bX$_=caml_call2(Runtime_ocaml_Runtime[103],_bX__,_bX9_); + return caml_call2(Runtime_ocaml_Runtime[92],_bX$_,_bX8_)} + function _bXs_(param) + {var + _bXR_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bXS_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bXR_), + _bXT_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bXU_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bXT_), + _bXV_=caml_call2(Runtime_ocaml_Runtime[83],_bXU_,_bXS_); + return caml_call2(Runtime_ocaml_Runtime[29],_vj_,_bXV_)} + var + _bXt_= + [0, + function(param) + {function _bXu_(param) + {var _bXB_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$3); + if + (caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bXB_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$133); + var + _bXC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$5), + _bXD_= + caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bXC_), + _bXE_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$4), + _bXF_= + caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bXE_); + if(caml_call2(Runtime_ocaml_Runtime[83],_bXF_,_bXD_)) + {var + _bXG_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$5), + _bXH_= + caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bXG_), + _bXI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$6); + return caml_call2(Runtime_ocaml_Runtime[103],_bXI_,_bXH_)} + var _bXJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$6); + if + (! + caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bXJ_)) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$134); + var + _bXK_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$7), + _bXL_= + caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bXK_), + _bXM_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0068$1), + _bXN_=caml_call2(Runtime_ocaml_Runtime[103],_bXM_,_bXL_), + _bXO_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3$1), + _bXP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$7), + _bXQ_=caml_call2(Runtime_ocaml_Runtime[103],_bXP_,_bXO_); + return caml_call2(Runtime_ocaml_Runtime[92],_bXQ_,_bXN_)} + function _bXv_(param) + {var + _bXw_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bXx_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bXw_), + _bXy_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bXz_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bXy_), + _bXA_=caml_call2(Runtime_ocaml_Runtime[83],_bXz_,_bXx_); + return caml_call2(Runtime_ocaml_Runtime[29],_vk_,_bXA_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_vl_,[0],_bXv_,_bXu_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_vm_,_bXt_,_bXs_,_bXr_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_vn_,_bXq_,_bXp_,_bXo_)}], + _bVG_=caml_call4(Runtime_ocaml_Runtime[63],_vo_,_bVF_,_bVE_,_bVD_)} + catch(_bXn_) + {_bXn_ = caml_wrap_exception(_bXn_); + if(_bXn_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_vh_]; + throw _bXn_} + var + taux_loyer_eligible_formule= + caml_call3 + (Runtime_ocaml_Runtime[28],_vp_,Runtime_ocaml_Runtime[15],_bVG_); + function _bVH_(aide_finale) + {try + {var + _bW__= + function(param) + {var + _bXc_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _vr_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bXd_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _vs_, + traitement_aide_finale_minorat), + _bXc_), + _bXe_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _vt_, + Runtime_ocaml_Runtime[13], + _bXd_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_vu_,_bXe_), + _bXf_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _vv_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bXg_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _vw_, + contributions_sociales_dot_mon), + _bXf_), + _bXh_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _vx_, + Runtime_ocaml_Runtime[13], + _bXg_), + crds=caml_call2(Runtime_ocaml_Runtime[27],_vy_,_bXh_), + _bXi_=caml_call1(Runtime_ocaml_Runtime[31],cst_50), + _bXj_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), + _bXk_=caml_call2(Runtime_ocaml_Runtime[98],_bXj_,_bXi_), + aide_finale_moins_crds_arrondi= + caml_call1(Runtime_ocaml_Runtime[77],_bXk_), + _bXl_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$135), + _bXm_= + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128],_bXm_,_bXl_) + ?caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$136)}, + _bW$_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_vz_,1)}, + _bXa_=caml_call4(Runtime_ocaml_Runtime[63],_vA_,[0],_bW$_,_bW__); + return _bXa_} + catch(_bXb_) + {_bXb_ = caml_wrap_exception(_bXb_); + if(_bXb_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_vq_]; + throw _bXb_}} + var + traitement_aide_finale_contrib= + caml_call3 + (Runtime_ocaml_Runtime[28],_vB_,Runtime_ocaml_Runtime[10],_bVH_); + try + {var + _bVI_=function(param){throw Runtime_ocaml_Runtime[2]}, + _bVJ_=function(param){return 0}, + _bVK_= + [0, + function(param) + {function _bWE_(param) + {var + _bW6_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000), + _bW7_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$0), + _bW8_= + caml_call2 + (Runtime_ocaml_Runtime[103], + taux_loyer_eligible_formule, + _bW7_), + _bW9_=caml_call1(Runtime_ocaml_Runtime[78],_bW8_); + return caml_call2(Runtime_ocaml_Runtime[107],_bW9_,_bW6_)} + function _bWF_(param) + {var + _bW4_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bW5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bW4_); + return caml_call2(Runtime_ocaml_Runtime[29],_vD_,_bW5_)} + var + _bWG_= + [0, + function(param) + {function _bWH_(param) + {var + _bW0_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$1), + _bW1_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$2), + _bW2_= + caml_call2 + (Runtime_ocaml_Runtime[103], + taux_loyer_eligible_formule, + _bW1_), + _bW3_=caml_call1(Runtime_ocaml_Runtime[78],_bW2_); + return caml_call2(Runtime_ocaml_Runtime[107],_bW3_,_bW0_)} + function _bWI_(param) + {var + _bWV_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bWW_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bWV_), + _bWX_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bWY_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bWX_), + _bWZ_=caml_call2(Runtime_ocaml_Runtime[83],_bWY_,_bWW_); + return caml_call2(Runtime_ocaml_Runtime[29],_vE_,_bWZ_)} + var + _bWJ_= + [0, + function(param) + {function _bWK_(param) + {var + _bWR_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$3), + _bWS_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$4), + _bWT_= + caml_call2 + (Runtime_ocaml_Runtime[103], + taux_loyer_eligible_formule, + _bWS_), + _bWU_=caml_call1(Runtime_ocaml_Runtime[78],_bWT_); + return caml_call2(Runtime_ocaml_Runtime[107],_bWU_,_bWR_)} + function _bWL_(param) + {var + _bWM_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bWN_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bWM_), + _bWO_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bWP_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bWO_), + _bWQ_=caml_call2(Runtime_ocaml_Runtime[83],_bWP_,_bWN_); + return caml_call2(Runtime_ocaml_Runtime[29],_vF_,_bWQ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_vG_,[0],_bWL_,_bWK_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_vH_,_bWJ_,_bWI_,_bWH_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_vI_,_bWG_,_bWF_,_bWE_)}], + _bVL_=caml_call4(Runtime_ocaml_Runtime[63],_vJ_,_bVK_,_bVJ_,_bVI_)} + catch(_bWD_) + {_bWD_ = caml_wrap_exception(_bWD_); + if(_bWD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_vC_]; + throw _bWD_} + var + taux_loyer_eligible_taux_arron= + caml_call3 + (Runtime_ocaml_Runtime[28],_vK_,Runtime_ocaml_Runtime[15],_bVL_); + function _bVM_(aide_finale) + {try + {var + _bWs_= + function(param) + {var + _bWw_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _vM_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bWx_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _vN_, + traitement_aide_finale_contrib), + _bWw_), + _bWy_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _vO_, + Runtime_ocaml_Runtime[13], + _bWx_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_vP_,_bWy_), + _bWz_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$137), + _bWA_= + caml_call2 + (Runtime_ocaml_Runtime[104], + reduction_loyer_solidarite, + fraction_l832_3), + _bWB_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bWA_); + if(! caml_call2(Runtime_ocaml_Runtime[128],_bWB_,_bWz_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$138); + var + _bWC_= + caml_call2 + (Runtime_ocaml_Runtime[104], + reduction_loyer_solidarite, + fraction_l832_3); + return caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bWC_)}, + _bWt_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_vQ_,1)}, + _bWu_=caml_call4(Runtime_ocaml_Runtime[63],_vR_,[0],_bWt_,_bWs_); + return _bWu_} + catch(_bWv_) + {_bWv_ = caml_wrap_exception(_bWv_); + if(_bWv_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_vL_]; + throw _bWv_}} + var + traitement_aide_finale_reducti= + caml_call3 + (Runtime_ocaml_Runtime[28],_vS_,Runtime_ocaml_Runtime[10],_bVM_); + try + {var + _bVN_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[92], + taux_composition_familiale, + taux_loyer_eligible_taux_arron)}, + _bVO_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_vU_,1)}, + _bVP_=caml_call4(Runtime_ocaml_Runtime[63],_vV_,[0],_bVO_,_bVN_)} + catch(_bWr_) + {_bWr_ = caml_wrap_exception(_bWr_); + if(_bWr_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_vT_]; + throw _bWr_} + var + taux_prise_compte_ressources= + caml_call3 + (Runtime_ocaml_Runtime[28],_vW_,Runtime_ocaml_Runtime[15],_bVP_); + function _bVQ_(aide_finale) + {try + {var + _bWk_= + function(param) + {var + _bWo_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _vY_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bWp_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _vZ_, + traitement_aide_finale_reducti), + _bWo_), + _bWq_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _v0_, + Runtime_ocaml_Runtime[13], + _bWp_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_v1_,_bWq_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d823_16) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$139) + :aide_finale$0}, + _bWl_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_v2_,1)}, + _bWm_=caml_call4(Runtime_ocaml_Runtime[63],_v3_,[0],_bWl_,_bWk_); + return _bWm_} + catch(_bWn_) + {_bWn_ = caml_wrap_exception(_bWn_); + if(_bWn_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_vX_]; + throw _bWn_}} + var + traitement_aide_finale_montant= + caml_call3 + (Runtime_ocaml_Runtime[28],_v4_,Runtime_ocaml_Runtime[10],_bVQ_); + try + {var + _bVR_= + function(param) + {var + _bWi_= + caml_call2 + (Runtime_ocaml_Runtime[98], + ressources_menage_arrondies, + abattement_forfaitaire_d823_17), + participation_ressources= + caml_call2 + (Runtime_ocaml_Runtime[104],_bWi_,taux_prise_compte_ressources), + _bWj_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$140), + participation_ressources$0= + caml_call2 + (Runtime_ocaml_Runtime[113],participation_ressources,_bWj_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$141) + :participation_ressources; return caml_call2 - (Runtime_ocaml_Runtime[29], - _jb_, - beneficiaire_aide_adulte_ou_en); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _jc_, [0], _bJT_, _bJS_); - }], - _bJQ_ = - caml_call4(Runtime_ocaml_Runtime[63], _jd_, _bJP_, _bJO_, _bJN_); - return _bJQ_; - } - catch(_bJR_){ - var _bJM_ = caml_wrap_exception(_bJR_); - if(_bJM_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _i$_], 1); - throw caml_maybe_attach_backtrace(_bJM_, 0); - } - } - var - traitement_aide_finale_diminue = - caml_call3 - (Runtime_ocaml_Runtime[28], _je_, Runtime_ocaml_Runtime[10], _bFd_); - try{ - var - _bFf_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _bFg_ = function(param){return 0;}, - _bFh_ = - function(param){ - function _bJz_(param){ - var - _bJG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3524), - _bJH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085), - _bJI_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8), - _bJJ_ = caml_call2(Runtime_ocaml_Runtime[104], _bJI_, _bJH_); - if(! caml_call2(Runtime_ocaml_Runtime[128], _bJJ_, _bJG_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_3524$0); - var - _bJK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$0), - _bJL_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8); - return caml_call2(Runtime_ocaml_Runtime[104], _bJL_, _bJK_); - } - function _bJA_(param){ - var - _bJB_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bJC_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJB_), - _bJD_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bJE_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bJD_), - _bJF_ = caml_call2(Runtime_ocaml_Runtime[83], _bJE_, _bJC_); - return caml_call2(Runtime_ocaml_Runtime[29], _jg_, _bJF_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _jh_, [0], _bJA_, _bJz_); - }, - _bFi_ = - function(param){ - function _bJm_(param){ - var - _bJt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3539), - _bJu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$1), - _bJv_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8), - _bJw_ = caml_call2(Runtime_ocaml_Runtime[104], _bJv_, _bJu_); - if(! caml_call2(Runtime_ocaml_Runtime[128], _bJw_, _bJt_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_3539$0); - var - _bJx_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$2), - _bJy_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8); - return caml_call2(Runtime_ocaml_Runtime[104], _bJy_, _bJx_); - } - function _bJn_(param){ - var - _bJo_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bJp_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bJo_), - _bJq_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bJr_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJq_), - _bJs_ = caml_call2(Runtime_ocaml_Runtime[83], _bJr_, _bJp_); - return caml_call2(Runtime_ocaml_Runtime[29], _ji_, _bJs_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _jj_, [0], _bJn_, _bJm_); - }, - _bFj_ = - [0, - function(param){ - function _bJc_(param){ - var - _bJg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3663), - _bJh_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$3), - _bJi_ = + (Runtime_ocaml_Runtime[93], + participation_minimale, + participation_ressources$0)}, + _bVS_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_v6_,1)}, + _bVT_=caml_call4(Runtime_ocaml_Runtime[63],_v7_,[0],_bVS_,_bVR_)} + catch(_bWh_) + {_bWh_ = caml_wrap_exception(_bWh_); + if(_bWh_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_v5_]; + throw _bWh_} + var + participation_personnelle= + caml_call3 + (Runtime_ocaml_Runtime[28],_v8_,Runtime_ocaml_Runtime[13],_bVT_); + try + {var + _bVU_= + function(param) + {var + _bWf_= caml_call2 (Runtime_ocaml_Runtime[93], loyer_eligible, montant_forfaitaire_charges_d8), - _bJj_ = caml_call2(Runtime_ocaml_Runtime[104], _bJi_, _bJh_); - if(! caml_call2(Runtime_ocaml_Runtime[128], _bJj_, _bJg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_3663$0); - var - _bJk_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$4), - _bJl_ = + aide_finale= caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8); - return caml_call2(Runtime_ocaml_Runtime[104], _bJl_, _bJk_); - } - function _bJd_(param){ - var - _bJe_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bJf_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJe_); - return caml_call2(Runtime_ocaml_Runtime[29], _jk_, _bJf_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _jl_, [0], _bJd_, _bJc_); - }, - _bFi_, - _bFh_], - _bFk_ = caml_call4(Runtime_ocaml_Runtime[63], _jm_, _bFj_, _bFg_, _bFf_); - } - catch(_bJb_){ - var _bFe_ = caml_wrap_exception(_bJb_); - if(_bFe_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jf_], 1); - throw caml_maybe_attach_backtrace(_bFe_, 0); - } - var - participation_minimale = - caml_call3 - (Runtime_ocaml_Runtime[28], _jn_, Runtime_ocaml_Runtime[13], _bFk_); - try{ - var - _bFm_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _bFn_ = function(param){return 0;}, - _bFo_ = - [0, - function(param){ - function _bIE_(param){ - var - _bI8_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$0), - _bI9_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$1), - _bI__ = - caml_call2 - (Runtime_ocaml_Runtime[108], loyer_eligible, loyer_reference), - _bI$_ = caml_call2(Runtime_ocaml_Runtime[103], _bI__, _bI9_), - _bJa_ = caml_call1(Runtime_ocaml_Runtime[78], _bI$_); - return caml_call2(Runtime_ocaml_Runtime[107], _bJa_, _bI8_); - } - function _bIF_(param){ - var - _bI6_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bI7_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bI6_); - return caml_call2(Runtime_ocaml_Runtime[29], _jp_, _bI7_); - } - var - _bIG_ = - [0, - function(param){ - function _bIH_(param){ - var - _bI1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$2), - _bI2_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$3), - _bI3_ = - caml_call2 - (Runtime_ocaml_Runtime[108], - loyer_eligible, - loyer_reference), - _bI4_ = caml_call2(Runtime_ocaml_Runtime[103], _bI3_, _bI2_), - _bI5_ = caml_call1(Runtime_ocaml_Runtime[78], _bI4_); - return caml_call2(Runtime_ocaml_Runtime[107], _bI5_, _bI1_); - } - function _bII_(param){ - var - _bIW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bIX_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bIW_), - _bIY_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bIZ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bIY_), - _bI0_ = caml_call2(Runtime_ocaml_Runtime[83], _bIZ_, _bIX_); - return caml_call2(Runtime_ocaml_Runtime[29], _jq_, _bI0_); - } - var - _bIJ_ = - [0, - function(param){ - function _bIK_(param){ - var - _bIR_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$4), - _bIS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$5), - _bIT_ = - caml_call2 - (Runtime_ocaml_Runtime[108], - loyer_eligible, - loyer_reference), - _bIU_ = caml_call2(Runtime_ocaml_Runtime[103], _bIT_, _bIS_), - _bIV_ = caml_call1(Runtime_ocaml_Runtime[78], _bIU_); - return caml_call2(Runtime_ocaml_Runtime[107], _bIV_, _bIR_); - } - function _bIL_(param){ - var - _bIM_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bIN_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bIM_), - _bIO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bIP_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bIO_), - _bIQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bIP_, _bIN_); - return caml_call2(Runtime_ocaml_Runtime[29], _jr_, _bIQ_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _js_, [0], _bIL_, _bIK_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _jt_, _bIJ_, _bII_, _bIH_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _ju_, _bIG_, _bIF_, _bIE_); - }], - _bFp_ = caml_call4(Runtime_ocaml_Runtime[63], _jv_, _bFo_, _bFn_, _bFm_); - } - catch(_bID_){ - var _bFl_ = caml_wrap_exception(_bID_); - if(_bFl_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jo_], 1); - throw caml_maybe_attach_backtrace(_bFl_, 0); - } - var - rapport_loyers = - caml_call3 - (Runtime_ocaml_Runtime[28], _jw_, Runtime_ocaml_Runtime[15], _bFp_); - function _bFq_(aide_finale){ - try{ + (Runtime_ocaml_Runtime[98],_bWf_,participation_personnelle), + _bWg_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$142); + return caml_call2(Runtime_ocaml_Runtime[113],aide_finale,_bWg_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$143) + :aide_finale}, + _bVV_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_v__,1)}, + _bVW_=caml_call4(Runtime_ocaml_Runtime[63],_v$_,[0],_bVV_,_bVU_)} + catch(_bWe_) + {_bWe_ = caml_wrap_exception(_bWe_); + if(_bWe_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_v9_]; + throw _bWe_} var - _bIu_ = - function(param){ - var - _bIy_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _jy_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bIz_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _jz_, - traitement_aide_finale_diminue), - _bIy_), - _bIA_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _jA_, - Runtime_ocaml_Runtime[13], - _bIz_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _jB_, _bIA_), - _bIB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$59), - _bIC_ = - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale$0, - montant_forfaitaire_d823_16); - return caml_call2(Runtime_ocaml_Runtime[128], _bIC_, _bIB_) - ? caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale$0, - montant_forfaitaire_d823_16) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$60); - }, - _bIv_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jC_, 1); - }, - _bIw_ = caml_call4(Runtime_ocaml_Runtime[63], _jD_, [0], _bIv_, _bIu_); - return _bIw_; - } - catch(_bIx_){ - var _bIt_ = caml_wrap_exception(_bIx_); - if(_bIt_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jx_], 1); - throw caml_maybe_attach_backtrace(_bIt_, 0); - } - } - var - traitement_aide_finale_minorat = - caml_call3 - (Runtime_ocaml_Runtime[28], _jE_, Runtime_ocaml_Runtime[10], _bFq_); - try{ - var - _bFs_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _bFt_ = function(param){return 0;}, - _bFu_ = - [0, - function(param){ - function _bHp_(param){ - var _bId_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45); - if(caml_call2(Runtime_ocaml_Runtime[112], rapport_loyers, _bId_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$61); - var - _bIe_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75), - _bIf_ = - caml_call2(Runtime_ocaml_Runtime[112], rapport_loyers, _bIe_), - _bIg_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$0), - _bIh_ = - caml_call2(Runtime_ocaml_Runtime[127], rapport_loyers, _bIg_); - if(caml_call2(Runtime_ocaml_Runtime[83], _bIh_, _bIf_)){ - var - _bIi_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045), - _bIj_ = - caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bIi_), - _bIk_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$0); - return caml_call2(Runtime_ocaml_Runtime[103], _bIk_, _bIj_); - } - var _bIl_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$0); - if(! caml_call2(Runtime_ocaml_Runtime[127], rapport_loyers, _bIl_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$62); - var - _bIm_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$1), - _bIn_ = - caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bIm_), - _bIo_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0068), - _bIp_ = caml_call2(Runtime_ocaml_Runtime[103], _bIo_, _bIn_), - _bIq_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3), - _bIr_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$1), - _bIs_ = caml_call2(Runtime_ocaml_Runtime[103], _bIr_, _bIq_); - return caml_call2(Runtime_ocaml_Runtime[92], _bIs_, _bIp_); - } - function _bHq_(param){ - var - _bIb_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bIc_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bIb_); - return caml_call2(Runtime_ocaml_Runtime[29], _jG_, _bIc_); - } - var - _bHr_ = - [0, - function(param){ - function _bHs_(param){ - var _bHX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$1); - if - (caml_call2 - (Runtime_ocaml_Runtime[112], rapport_loyers, _bHX_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$63); - var - _bHY_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$2), - _bHZ_ = - caml_call2 - (Runtime_ocaml_Runtime[112], rapport_loyers, _bHY_), - _bH0_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$2), - _bH1_ = - caml_call2 - (Runtime_ocaml_Runtime[127], rapport_loyers, _bH0_); - if(caml_call2(Runtime_ocaml_Runtime[83], _bH1_, _bHZ_)){ + aide_finale_formule= + caml_call3 + (Runtime_ocaml_Runtime[28],_wa_,Runtime_ocaml_Runtime[13],_bVW_); + try + {var + _bVX_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$4), + _bVY_= + caml_call2(Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bVX_), + _bVZ_= + caml_call2 + (Runtime_ocaml_Runtime[128],plafond_degressivite_d823_16,_bVY_)} + catch(_bWd_) + {_bWd_ = caml_wrap_exception(_bWd_); + if(_bWd_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wb_]; + throw _bWd_} + if(! _bVZ_)throw [0,Runtime_ocaml_Runtime[3],_wk_]; + try + {var + _bV0_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_98$0), + _bV1_=caml_call2(Runtime_ocaml_Runtime[117],fraction_l832_3,_bV0_), + _bV2_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_9), + _bV3_=caml_call2(Runtime_ocaml_Runtime[127],fraction_l832_3,_bV2_), + _bV4_=caml_call2(Runtime_ocaml_Runtime[83],_bV3_,_bV1_)} + catch(_bWc_) + {_bWc_ = caml_wrap_exception(_bWc_); + if(_bWc_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wc_]; + throw _bWc_} + if(! _bV4_)throw [0,Runtime_ocaml_Runtime[3],_wj_]; + try + {var + _bV5_= + caml_call2 + (Runtime_ocaml_Runtime[83],logement_est_chambre,colocation), + _bV6_=caml_call1(Runtime_ocaml_Runtime[67],_bV5_)} + catch(_bWb_) + {_bWb_ = caml_wrap_exception(_bWb_); + if(_bWb_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wd_]; + throw _bWb_} + if(! _bV6_)throw [0,Runtime_ocaml_Runtime[3],_wi_]; + try + {var + _bV7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$144), + _bV8_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bV7_)} + catch(_bWa_) + {_bWa_ = caml_wrap_exception(_bWa_); + if(_bWa_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_we_]; + throw _bWa_} + if(! _bV8_)throw [0,Runtime_ocaml_Runtime[3],_wh_]; + try + {var + _bV9_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bV__=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bV9_)} + catch(_bV$_) + {_bV$_ = caml_wrap_exception(_bV$_); + if(_bV$_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wf_]; + throw _bV$_} + if(_bV__) + return [0, + montant_forfaitaire_charges_d8, + plafond_loyer_d823_16_2, + participation_minimale, + taux_composition_familiale, + participation_personnelle, + aide_finale_formule, + traitement_aide_finale_montant]; + throw [0,Runtime_ocaml_Runtime[3],_wg_]} + function calcul_aide_personnalisee_loge$0(calcul_aide_personnalisee_loge) + {var + type_logement_foyer=calcul_aide_personnalisee_loge[1], + date_conventionnement=calcul_aide_personnalisee_loge[2], + ressources_menage_arrondies=calcul_aide_personnalisee_loge[3], + nombre_personnes_a_charge=calcul_aide_personnalisee_loge[4], + situation_familiale_calcul_apl=calcul_aide_personnalisee_loge[5], + zone=calcul_aide_personnalisee_loge[6], + date_courante=calcul_aide_personnalisee_loge[7], + redevance=calcul_aide_personnalisee_loge[8], + residence=calcul_aide_personnalisee_loge[9], + condition_2_du_832_25=calcul_aide_personnalisee_loge[10], + limitation_majoration_personne=calcul_aide_personnalisee_loge[11], + n_nombre_parts_d832_25=calcul_aide_personnalisee_loge[12]; + try + {var + _bPk_= + function(param) + {function _bUp_(param){return 0} + function _bUq_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_wm_,1)} + return caml_call4(Runtime_ocaml_Runtime[63],_wn_,[0],_bUq_,_bUp_)}, + _bPl_=function(param){return 1}, + _bPm_= + [0, + function(param) + {return caml_call1(limitation_majoration_personne,0)}], + _bPn_=caml_call4(Runtime_ocaml_Runtime[63],_wo_,_bPm_,_bPl_,_bPk_)} + catch(_bUo_) + {_bUo_ = caml_wrap_exception(_bUo_); + if(_bUo_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wl_]; + throw _bUo_} + var + limitation_majoration_personne$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_wp_,Runtime_ocaml_Runtime[12],_bPn_); + try + {var + _bPo_= + function(param) + {function _bUk_(param) + {switch(type_logement_foyer[0]) + {case 0:return 0; + case 1: + var _bUm_=caml_call3(Runtime_ocaml_Runtime[57],1994,12,31); + return caml_call2 + (Runtime_ocaml_Runtime[130],date_conventionnement,_bUm_); + case 2: + var _bUn_=caml_call3(Runtime_ocaml_Runtime[57],1990,9,30); + return caml_call2 + (Runtime_ocaml_Runtime[130],date_conventionnement,_bUn_); + default:return 0}} + function _bUl_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_wr_,1)} + return caml_call4(Runtime_ocaml_Runtime[63],_ws_,[0],_bUl_,_bUk_)}, + _bPp_=function(param){return 1}, + _bPq_=[0,function(param){return caml_call1(condition_2_du_832_25,0)}], + _bPr_=caml_call4(Runtime_ocaml_Runtime[63],_wt_,_bPq_,_bPp_,_bPo_)} + catch(_bUj_) + {_bUj_ = caml_wrap_exception(_bUj_); + if(_bUj_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wq_]; + throw _bUj_} + var + condition_2_du_832_25$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_wu_,Runtime_ocaml_Runtime[12],_bPr_); + try + {var + _bPs_=function(param){return date_courante}, + _bPt_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ww_,1)}, + _bPu_=caml_call4(Runtime_ocaml_Runtime[63],_wx_,[0],_bPt_,_bPs_), + contributions_sociales_dot_dat= + caml_call3 + (Runtime_ocaml_Runtime[28],_wy_,Runtime_ocaml_Runtime[16],_bPu_)} + catch(_bUi_) + {_bUi_ = caml_wrap_exception(_bUi_); + if(_bUi_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wv_]; + throw _bUi_} + var + _bPv_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_wz_,contributions_sociales_aides_p), + [0,contributions_sociales_dot_dat]), + result=caml_call2(Runtime_ocaml_Runtime[27],_wA_,_bPv_), + contributions_sociales_dot_mon=result[1]; + try + {var + _bPw_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$1)}, + _bPx_= + function(param) + {var + _bUg_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bUh_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bUg_); + return caml_call2(Runtime_ocaml_Runtime[29],_wC_,_bUh_)}, + _bPy_=caml_call4(Runtime_ocaml_Runtime[63],_wD_,[0],_bPx_,_bPw_)} + catch(_bUf_) + {_bUf_ = caml_wrap_exception(_bUf_); + if(_bUf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wB_]; + throw _bUf_} + var + montant_minimal_aide_d823_24= + caml_call3 + (Runtime_ocaml_Runtime[28],_wE_,Runtime_ocaml_Runtime[13],_bPy_); + try + {var + _bPz_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$0)}, + _bPA_= + function(param) + {var + _bUd_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bUe_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bUd_); + return caml_call2(Runtime_ocaml_Runtime[29],_wG_,_bUe_)}, + _bPB_=caml_call4(Runtime_ocaml_Runtime[63],_wH_,[0],_bPA_,_bPz_)} + catch(_bUc_) + {_bUc_ = caml_wrap_exception(_bUc_); + if(_bUc_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wF_]; + throw _bUc_} + var + montant_forfaitaire_d832_24= + caml_call3 + (Runtime_ocaml_Runtime[28],_wI_,Runtime_ocaml_Runtime[13],_bPB_); + try + {var + _bPC_=function(param){throw Runtime_ocaml_Runtime[2]}, + _bPD_=function(param){return 0}, + _bPE_= + function(param) + {function _bTD_(param) + {switch(zone[0]) + {case 0: + var _bTK_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$145); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTK_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_44443) + :caml_call1(Runtime_ocaml_Runtime[31],cst_52101); + var _bTL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$71); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTL_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_55555); + var _bTM_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTM_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_59454); + var _bTN_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$27); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTN_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_63369); var - _bH2_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$2), - _bH3_ = - caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bH2_), - _bH4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$3); - return caml_call2(Runtime_ocaml_Runtime[103], _bH4_, _bH3_); - } - var _bH5_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$3); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[127], rapport_loyers, _bH5_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$64); - var - _bH6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$4), - _bH7_ = - caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bH6_), - _bH8_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0068$0), - _bH9_ = caml_call2(Runtime_ocaml_Runtime[103], _bH8_, _bH7_), - _bH__ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3$0), - _bH$_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$4), - _bIa_ = caml_call2(Runtime_ocaml_Runtime[103], _bH$_, _bH__); - return caml_call2(Runtime_ocaml_Runtime[92], _bIa_, _bH9_); - } - function _bHt_(param){ - var - _bHS_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bHT_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bHS_), - _bHU_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bHV_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bHU_), - _bHW_ = caml_call2(Runtime_ocaml_Runtime[83], _bHV_, _bHT_); - return caml_call2(Runtime_ocaml_Runtime[29], _jH_, _bHW_); - } - var - _bHu_ = - [0, - function(param){ - function _bHv_(param){ - var - _bHC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$3); - if - (caml_call2 - (Runtime_ocaml_Runtime[112], rapport_loyers, _bHC_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$65); - var - _bHD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$5), - _bHE_ = - caml_call2 - (Runtime_ocaml_Runtime[112], rapport_loyers, _bHD_), - _bHF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$4), - _bHG_ = - caml_call2 - (Runtime_ocaml_Runtime[127], rapport_loyers, _bHF_); - if(caml_call2(Runtime_ocaml_Runtime[83], _bHG_, _bHE_)){ - var - _bHH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$5), - _bHI_ = - caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bHH_), - _bHJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$6); - return caml_call2(Runtime_ocaml_Runtime[103], _bHJ_, _bHI_); - } - var - _bHK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$6); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[127], rapport_loyers, _bHK_)) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$66); - var - _bHL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$7), - _bHM_ = - caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bHL_), - _bHN_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0068$1), - _bHO_ = caml_call2(Runtime_ocaml_Runtime[103], _bHN_, _bHM_), - _bHP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3$1), - _bHQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$7), - _bHR_ = caml_call2(Runtime_ocaml_Runtime[103], _bHQ_, _bHP_); - return caml_call2(Runtime_ocaml_Runtime[92], _bHR_, _bHO_); - } - function _bHw_(param){ - var - _bHx_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bHy_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bHx_), - _bHz_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bHA_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bHz_), - _bHB_ = caml_call2(Runtime_ocaml_Runtime[83], _bHA_, _bHy_); - return caml_call2(Runtime_ocaml_Runtime[29], _jI_, _bHB_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _jJ_, [0], _bHw_, _bHv_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _jK_, _bHu_, _bHt_, _bHs_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _jL_, _bHr_, _bHq_, _bHp_); - }], - _bFv_ = caml_call4(Runtime_ocaml_Runtime[63], _jM_, _bFu_, _bFt_, _bFs_); - } - catch(_bHo_){ - var _bFr_ = caml_wrap_exception(_bHo_); - if(_bFr_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jF_], 1); - throw caml_maybe_attach_backtrace(_bFr_, 0); - } - var - taux_loyer_eligible_formule = - caml_call3 - (Runtime_ocaml_Runtime[28], _jN_, Runtime_ocaml_Runtime[15], _bFv_); - function _bFw_(aide_finale){ - try{ - var - _bG$_ = - function(param){ - var - _bHd_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _jP_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bHe_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _jQ_, - traitement_aide_finale_minorat), - _bHd_), - _bHf_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _jR_, - Runtime_ocaml_Runtime[13], - _bHe_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _jS_, _bHf_), - _bHg_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _jT_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bHh_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _jU_, - contributions_sociales_dot_mon), - _bHg_), - _bHi_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _jV_, - Runtime_ocaml_Runtime[13], - _bHh_), - crds = caml_call2(Runtime_ocaml_Runtime[27], _jW_, _bHi_), - _bHj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50), - _bHk_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), - _bHl_ = caml_call2(Runtime_ocaml_Runtime[98], _bHk_, _bHj_), - aide_finale_moins_crds_arrondi = - caml_call1(Runtime_ocaml_Runtime[77], _bHl_), - _bHm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$67), - _bHn_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128], _bHn_, _bHm_) - ? caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$68); - }, - _bHa_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _jX_, 1); - }, - _bHb_ = caml_call4(Runtime_ocaml_Runtime[63], _jY_, [0], _bHa_, _bG$_); - return _bHb_; - } - catch(_bHc_){ - var _bG__ = caml_wrap_exception(_bHc_); - if(_bG__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _jO_], 1); - throw caml_maybe_attach_backtrace(_bG__, 0); - } - } - var - traitement_aide_finale_contrib = - caml_call3 - (Runtime_ocaml_Runtime[28], _jZ_, Runtime_ocaml_Runtime[10], _bFw_); - try{ - var - _bFy_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _bFz_ = function(param){return 0;}, - _bFA_ = - [0, - function(param){ - function _bGE_(param){ - var - _bG6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000), - _bG7_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$0), - _bG8_ = - caml_call2 - (Runtime_ocaml_Runtime[103], - taux_loyer_eligible_formule, - _bG7_), - _bG9_ = caml_call1(Runtime_ocaml_Runtime[78], _bG8_); - return caml_call2(Runtime_ocaml_Runtime[107], _bG9_, _bG6_); - } - function _bGF_(param){ - var - _bG4_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bG5_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bG4_); - return caml_call2(Runtime_ocaml_Runtime[29], _j1_, _bG5_); - } - var - _bGG_ = - [0, - function(param){ - function _bGH_(param){ - var - _bG0_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$1), - _bG1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$2), - _bG2_ = + _bTO_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$23), + _bTP_= caml_call2 - (Runtime_ocaml_Runtime[103], - taux_loyer_eligible_formule, - _bG1_), - _bG3_ = caml_call1(Runtime_ocaml_Runtime[78], _bG2_); - return caml_call2(Runtime_ocaml_Runtime[107], _bG3_, _bG0_); - } - function _bGI_(param){ - var - _bGV_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bGW_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bGV_), - _bGX_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bGY_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bGX_), - _bGZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bGY_, _bGW_); - return caml_call2(Runtime_ocaml_Runtime[29], _j2_, _bGZ_); - } - var - _bGJ_ = - [0, - function(param){ - function _bGK_(param){ - var - _bGR_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$3), - _bGS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$4), - _bGT_ = - caml_call2 - (Runtime_ocaml_Runtime[103], - taux_loyer_eligible_formule, - _bGS_), - _bGU_ = caml_call1(Runtime_ocaml_Runtime[78], _bGT_); - return caml_call2(Runtime_ocaml_Runtime[107], _bGU_, _bGR_); - } - function _bGL_(param){ - var - _bGM_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bGN_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bGM_), - _bGO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bGP_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bGO_), - _bGQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bGP_, _bGN_); - return caml_call2(Runtime_ocaml_Runtime[29], _j3_, _bGQ_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _j4_, [0], _bGL_, _bGK_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _j5_, _bGJ_, _bGI_, _bGH_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _j6_, _bGG_, _bGF_, _bGE_); - }], - _bFB_ = caml_call4(Runtime_ocaml_Runtime[63], _j7_, _bFA_, _bFz_, _bFy_); - } - catch(_bGD_){ - var _bFx_ = caml_wrap_exception(_bGD_); - if(_bFx_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _j0_], 1); - throw caml_maybe_attach_backtrace(_bFx_, 0); - } - var - taux_loyer_eligible_taux_arron = - caml_call3 - (Runtime_ocaml_Runtime[28], _j8_, Runtime_ocaml_Runtime[15], _bFB_); - function _bFC_(aide_finale){ - try{ + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTO_), + _bTQ_=caml_call1(Runtime_ocaml_Runtime[69],_bTP_), + _bTR_=caml_call1(Runtime_ocaml_Runtime[31],cst_7089), + _bTS_=caml_call2(Runtime_ocaml_Runtime[104],_bTR_,_bTQ_), + _bTT_=caml_call1(Runtime_ocaml_Runtime[31],cst_68350); + return caml_call2(Runtime_ocaml_Runtime[93],_bTT_,_bTS_); + case 1: + var _bTU_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$146); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTU_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_40643) + :caml_call1(Runtime_ocaml_Runtime[31],cst_47433); + var _bTV_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTV_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_50575); + var _bTW_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTW_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_54138); + var _bTX_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTX_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_57687); + var + _bTY_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$24), + _bTZ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTY_), + _bT0_=caml_call1(Runtime_ocaml_Runtime[69],_bTZ_), + _bT1_=caml_call1(Runtime_ocaml_Runtime[31],cst_6407), + _bT2_=caml_call2(Runtime_ocaml_Runtime[104],_bT1_,_bT0_), + _bT3_=caml_call1(Runtime_ocaml_Runtime[31],cst_61469); + return caml_call2(Runtime_ocaml_Runtime[93],_bT3_,_bT2_); + default: + var _bT4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$147); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bT4_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_38578) + :caml_call1(Runtime_ocaml_Runtime[31],cst_44869); + var _bT5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$73); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bT5_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_47602); + var _bT6_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bT6_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_50744); + var _bT7_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$29); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bT7_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_53884); + var + _bT8_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$25), + _bT9_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bT8_), + _bT__=caml_call1(Runtime_ocaml_Runtime[69],_bT9_), + _bT$_=caml_call1(Runtime_ocaml_Runtime[31],cst_5946), + _bUa_=caml_call2(Runtime_ocaml_Runtime[104],_bT$_,_bT__), + _bUb_=caml_call1(Runtime_ocaml_Runtime[31],cst_57416); + return caml_call2(Runtime_ocaml_Runtime[93],_bUb_,_bUa_)}} + function _bTE_(param) + {var + _bTF_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bTG_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bTF_), + _bTH_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bTI_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bTH_), + _bTJ_=caml_call2(Runtime_ocaml_Runtime[83],_bTI_,_bTG_); + return caml_call2(Runtime_ocaml_Runtime[29],_wK_,_bTJ_)} + return caml_call4(Runtime_ocaml_Runtime[63],_wL_,[0],_bTE_,_bTD_)}, + _bPF_= + function(param) + {function _bS4_(param) + {switch(zone[0]) + {case 0: + var _bS$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$148); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bS$_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_44630) + :caml_call1(Runtime_ocaml_Runtime[31],cst_52321); + var _bTa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTa_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_55788); + var _bTb_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTb_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_59704); + var _bTc_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTc_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_63635); + var + _bTd_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$26), + _bTe_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTd_), + _bTf_=caml_call1(Runtime_ocaml_Runtime[69],_bTe_), + _bTg_=caml_call1(Runtime_ocaml_Runtime[31],cst_7119), + _bTh_=caml_call2(Runtime_ocaml_Runtime[104],_bTg_,_bTf_), + _bTi_=caml_call1(Runtime_ocaml_Runtime[31],cst_68637); + return caml_call2(Runtime_ocaml_Runtime[93],_bTi_,_bTh_); + case 1: + var _bTj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$149); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTj_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_40814) + :caml_call1(Runtime_ocaml_Runtime[31],cst_47632); + var _bTk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTk_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_50787); + var _bTl_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTl_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_54365); + var _bTm_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$31); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTm_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_57929); + var + _bTn_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$27), + _bTo_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTn_), + _bTp_=caml_call1(Runtime_ocaml_Runtime[69],_bTo_), + _bTq_=caml_call1(Runtime_ocaml_Runtime[31],cst_6434), + _bTr_=caml_call2(Runtime_ocaml_Runtime[104],_bTq_,_bTp_), + _bTs_=caml_call1(Runtime_ocaml_Runtime[31],cst_61727); + return caml_call2(Runtime_ocaml_Runtime[93],_bTs_,_bTr_); + default: + var _bTt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$150); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTt_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_38740) + :caml_call1(Runtime_ocaml_Runtime[31],cst_45057); + var _bTu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTu_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_47802); + var _bTv_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTv_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_50957); + var _bTw_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTw_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_54110); + var + _bTx_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$28), + _bTy_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTx_), + _bTz_=caml_call1(Runtime_ocaml_Runtime[69],_bTy_), + _bTA_=caml_call1(Runtime_ocaml_Runtime[31],cst_5971), + _bTB_=caml_call2(Runtime_ocaml_Runtime[104],_bTA_,_bTz_), + _bTC_=caml_call1(Runtime_ocaml_Runtime[31],cst_57657); + return caml_call2(Runtime_ocaml_Runtime[93],_bTC_,_bTB_)}} + function _bS5_(param) + {var + _bS6_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bS7_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bS6_), + _bS8_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bS9_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bS8_), + _bS__=caml_call2(Runtime_ocaml_Runtime[83],_bS9_,_bS7_); + return caml_call2(Runtime_ocaml_Runtime[29],_wM_,_bS__)} + return caml_call4(Runtime_ocaml_Runtime[63],_wN_,[0],_bS5_,_bS4_)}, + _bPG_= + [0, + function(param) + {function _bSw_(param) + {switch(zone[0]) + {case 0: + var _bSA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$151); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSA_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_46192) + :caml_call1(Runtime_ocaml_Runtime[31],cst_54152); + var _bSB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSB_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_57741); + var _bSC_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSC_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_61794); + var _bSD_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$33); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSD_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_65862); + var + _bSE_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$29), + _bSF_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bSE_), + _bSG_=caml_call1(Runtime_ocaml_Runtime[69],_bSF_), + _bSH_=caml_call1(Runtime_ocaml_Runtime[31],cst_7368), + _bSI_=caml_call2(Runtime_ocaml_Runtime[104],_bSH_,_bSG_), + _bSJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_71039); + return caml_call2(Runtime_ocaml_Runtime[93],_bSJ_,_bSI_); + case 1: + var _bSK_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$152); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSK_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_42242) + :caml_call1(Runtime_ocaml_Runtime[31],cst_49299); + var _bSL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSL_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_52565); + var _bSM_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSM_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_56268); + var _bSN_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSN_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_59957); + var + _bSO_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$30), + _bSP_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bSO_), + _bSQ_=caml_call1(Runtime_ocaml_Runtime[69],_bSP_), + _bSR_=caml_call1(Runtime_ocaml_Runtime[31],cst_6659), + _bSS_=caml_call2(Runtime_ocaml_Runtime[104],_bSR_,_bSQ_), + _bST_=caml_call1(Runtime_ocaml_Runtime[31],cst_63887); + return caml_call2(Runtime_ocaml_Runtime[93],_bST_,_bSS_); + default: + var _bSU_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$153); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSU_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_40096) + :caml_call1(Runtime_ocaml_Runtime[31],cst_46634); + var _bSV_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSV_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_49475); + var _bSW_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSW_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_52740); + var _bSX_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSX_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_56004); + var + _bSY_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$31), + _bSZ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bSY_), + _bS0_=caml_call1(Runtime_ocaml_Runtime[69],_bSZ_), + _bS1_=caml_call1(Runtime_ocaml_Runtime[31],cst_6180), + _bS2_=caml_call2(Runtime_ocaml_Runtime[104],_bS1_,_bS0_), + _bS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_59675); + return caml_call2(Runtime_ocaml_Runtime[93],_bS3_,_bS2_)}} + function _bSx_(param) + {var + _bSy_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bSz_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSy_); + return caml_call2(Runtime_ocaml_Runtime[29],_wO_,_bSz_)} + return caml_call4(Runtime_ocaml_Runtime[63],_wP_,[0],_bSx_,_bSw_)}, + _bPF_, + _bPE_], + _bPH_=caml_call4(Runtime_ocaml_Runtime[63],_wQ_,_bPG_,_bPD_,_bPC_)} + catch(_bSv_) + {_bSv_ = caml_wrap_exception(_bSv_); + if(_bSv_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wJ_]; + throw _bSv_} var - _bGs_ = - function(param){ - var - _bGw_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _j__, - Runtime_ocaml_Runtime[13], - aide_finale), - _bGx_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _j$_, - traitement_aide_finale_contrib), - _bGw_), - _bGy_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _ka_, - Runtime_ocaml_Runtime[13], - _bGx_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _kb_, _bGy_), - _bGz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$69), - _bGA_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - reduction_loyer_solidarite, - fraction_l832_3), - _bGB_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _bGA_); - if(! caml_call2(Runtime_ocaml_Runtime[128], _bGB_, _bGz_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$70); - var - _bGC_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - reduction_loyer_solidarite, - fraction_l832_3); - return caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _bGC_); - }, - _bGt_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _kc_, 1); - }, - _bGu_ = caml_call4(Runtime_ocaml_Runtime[63], _kd_, [0], _bGt_, _bGs_); - return _bGu_; - } - catch(_bGv_){ - var _bGr_ = caml_wrap_exception(_bGv_); - if(_bGr_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _j9_], 1); - throw caml_maybe_attach_backtrace(_bGr_, 0); - } - } - var - traitement_aide_finale_reducti = - caml_call3 - (Runtime_ocaml_Runtime[28], _ke_, Runtime_ocaml_Runtime[10], _bFC_); - try{ - var - _bFE_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[92], - taux_composition_familiale, - taux_loyer_eligible_taux_arron); - }, - _bFF_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _kg_, 1); - }, - _bFG_ = caml_call4(Runtime_ocaml_Runtime[63], _kh_, [0], _bFF_, _bFE_); - } - catch(_bGq_){ - var _bFD_ = caml_wrap_exception(_bGq_); - if(_bFD_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kf_], 1); - throw caml_maybe_attach_backtrace(_bFD_, 0); - } - var - taux_prise_compte_ressources = - caml_call3 - (Runtime_ocaml_Runtime[28], _ki_, Runtime_ocaml_Runtime[15], _bFG_); - function _bFH_(aide_finale){ - try{ + plafond_equivalence_loyer_elig= + caml_call3 + (Runtime_ocaml_Runtime[28],_wR_,Runtime_ocaml_Runtime[13],_bPH_); + try + {var + _bPI_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_121726)}, + _bPJ_= + function(param) + {var + _bSt_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bSu_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSt_); + return caml_call2(Runtime_ocaml_Runtime[29],_wT_,_bSu_)}, + _bPK_=caml_call4(Runtime_ocaml_Runtime[63],_wU_,[0],_bPJ_,_bPI_)} + catch(_bSs_) + {_bSs_ = caml_wrap_exception(_bSs_); + if(_bSs_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wS_]; + throw _bSs_} var - _bGj_ = - function(param){ - var - _bGn_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _kk_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bGo_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _kl_, - traitement_aide_finale_reducti), - _bGn_), - _bGp_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _km_, - Runtime_ocaml_Runtime[13], - _bGo_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _kn_, _bGp_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d823_16) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$71) - : aide_finale$0; - }, - _bGk_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ko_, 1); - }, - _bGl_ = caml_call4(Runtime_ocaml_Runtime[63], _kp_, [0], _bGk_, _bGj_); - return _bGl_; - } - catch(_bGm_){ - var _bGi_ = caml_wrap_exception(_bGm_); - if(_bGi_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kj_], 1); - throw caml_maybe_attach_backtrace(_bGi_, 0); - } - } - var - traitement_aide_finale_montant = - caml_call3 - (Runtime_ocaml_Runtime[28], _kq_, Runtime_ocaml_Runtime[10], _bFH_); - try{ - var - _bFJ_ = - function(param){ - var - _bGg_ = - caml_call2 - (Runtime_ocaml_Runtime[98], - ressources_menage_arrondies, - abattement_forfaitaire_d823_17), - participation_ressources = - caml_call2 - (Runtime_ocaml_Runtime[104], _bGg_, taux_prise_compte_ressources), - _bGh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$72), - participation_ressources$0 = - caml_call2 - (Runtime_ocaml_Runtime[113], participation_ressources, _bGh_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$73) - : participation_ressources; - return caml_call2 - (Runtime_ocaml_Runtime[93], - participation_minimale, - participation_ressources$0); - }, - _bFK_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ks_, 1); - }, - _bFL_ = caml_call4(Runtime_ocaml_Runtime[63], _kt_, [0], _bFK_, _bFJ_); - } - catch(_bGf_){ - var _bFI_ = caml_wrap_exception(_bGf_); - if(_bFI_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kr_], 1); - throw caml_maybe_attach_backtrace(_bFI_, 0); - } - var - participation_personnelle = - caml_call3 - (Runtime_ocaml_Runtime[28], _ku_, Runtime_ocaml_Runtime[13], _bFL_); - try{ - var - _bFN_ = - function(param){ - var - _bGd_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8), - aide_finale = - caml_call2 - (Runtime_ocaml_Runtime[98], _bGd_, participation_personnelle), - _bGe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$74); - return caml_call2(Runtime_ocaml_Runtime[113], aide_finale, _bGe_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$75) - : aide_finale; - }, - _bFO_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _kw_, 1); - }, - _bFP_ = caml_call4(Runtime_ocaml_Runtime[63], _kx_, [0], _bFO_, _bFN_); - } - catch(_bGc_){ - var _bFM_ = caml_wrap_exception(_bGc_); - if(_bFM_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kv_], 1); - throw caml_maybe_attach_backtrace(_bFM_, 0); - } - var - aide_finale_formule = - caml_call3 - (Runtime_ocaml_Runtime[28], _ky_, Runtime_ocaml_Runtime[13], _bFP_); - try{ - var - _bFR_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$4), - _bFS_ = - caml_call2(Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bFR_), - _bFT_ = - caml_call2 - (Runtime_ocaml_Runtime[128], plafond_degressivite_d823_16, _bFS_); - } - catch(_bGb_){ - var _bFQ_ = caml_wrap_exception(_bGb_); - if(_bFQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kz_], 1); - throw caml_maybe_attach_backtrace(_bFQ_, 0); - } - if(! _bFT_) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kI_], 1); - try{ - var - _bFV_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_98$0), - _bFW_ = caml_call2(Runtime_ocaml_Runtime[117], fraction_l832_3, _bFV_), - _bFX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_9), - _bFY_ = caml_call2(Runtime_ocaml_Runtime[127], fraction_l832_3, _bFX_), - _bFZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bFY_, _bFW_); - } - catch(_bGa_){ - var _bFU_ = caml_wrap_exception(_bGa_); - if(_bFU_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kA_], 1); - throw caml_maybe_attach_backtrace(_bFU_, 0); - } - if(! _bFZ_) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kH_], 1); - try{ - var - _bF1_ = - caml_call2 - (Runtime_ocaml_Runtime[83], logement_est_chambre, colocation), - _bF2_ = caml_call1(Runtime_ocaml_Runtime[67], _bF1_); - } - catch(_bF$_){ - var _bF0_ = caml_wrap_exception(_bF$_); - if(_bF0_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kB_], 1); - throw caml_maybe_attach_backtrace(_bF0_, 0); - } - if(! _bF2_) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kG_], 1); - try{ - var - _bF4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$76), - _bF5_ = - caml_call2 - (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bF4_); - } - catch(_bF__){ - var _bF3_ = caml_wrap_exception(_bF__); - if(_bF3_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kC_], 1); - throw caml_maybe_attach_backtrace(_bF3_, 0); - } - if(! _bF5_) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kF_], 1); - try{ - var - _bF7_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bF8_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bF7_); - } - catch(_bF9_){ - var _bF6_ = caml_wrap_exception(_bF9_); - if(_bF6_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kD_], 1); - throw caml_maybe_attach_backtrace(_bF6_, 0); - } - if(_bF8_) - return [0, - montant_forfaitaire_charges_d8, - plafond_loyer_d823_16_2, - participation_minimale, - taux_composition_familiale, - participation_personnelle, - aide_finale_formule, - traitement_aide_finale_montant]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kE_], 1); - } - function calcul_aide_personnalisee_loge$0(calcul_aide_personnalisee_loge){ - var - type_logement_foyer = calcul_aide_personnalisee_loge[1], - date_conventionnement = calcul_aide_personnalisee_loge[2], - ressources_menage_arrondies = calcul_aide_personnalisee_loge[3], - nombre_personnes_a_charge = calcul_aide_personnalisee_loge[4], - situation_familiale_calcul_apl = calcul_aide_personnalisee_loge[5], - zone = calcul_aide_personnalisee_loge[6], - date_courante = calcul_aide_personnalisee_loge[7], - redevance = calcul_aide_personnalisee_loge[8], - residence = calcul_aide_personnalisee_loge[9], - condition_2_du_832_25 = calcul_aide_personnalisee_loge[10], - limitation_majoration_personne = calcul_aide_personnalisee_loge[11], - n_nombre_parts_d832_25 = calcul_aide_personnalisee_loge[12]; - try{ - var - _byn_ = - function(param){ - function _bDW_(param){return 0;} - function _bDX_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _kK_, 1); - } - return caml_call4(Runtime_ocaml_Runtime[63], _kL_, [0], _bDX_, _bDW_); - }, - _byo_ = function(param){return 1;}, - _byp_ = - [0, - function(param){ - return caml_call1(limitation_majoration_personne, 0); - }], - _byq_ = caml_call4(Runtime_ocaml_Runtime[63], _kM_, _byp_, _byo_, _byn_); - } - catch(_bDV_){ - var _bym_ = caml_wrap_exception(_bDV_); - if(_bym_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kJ_], 1); - throw caml_maybe_attach_backtrace(_bym_, 0); - } - var - limitation_majoration_personne$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _kN_, Runtime_ocaml_Runtime[12], _byq_); - try{ - var - _bys_ = - function(param){ - function _bDR_(param){ - switch(type_logement_foyer[0]){ - case 0: - return 0; - case 1: - var _bDT_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 12, 31); - return caml_call2 - (Runtime_ocaml_Runtime[130], date_conventionnement, _bDT_); - case 2: - var _bDU_ = caml_call3(Runtime_ocaml_Runtime[57], 1990, 9, 30); - return caml_call2 - (Runtime_ocaml_Runtime[130], date_conventionnement, _bDU_); - default: return 0; - } - } - function _bDS_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _kP_, 1); - } - return caml_call4(Runtime_ocaml_Runtime[63], _kQ_, [0], _bDS_, _bDR_); - }, - _byt_ = function(param){return 1;}, - _byu_ = - [0, function(param){return caml_call1(condition_2_du_832_25, 0);}], - _byv_ = caml_call4(Runtime_ocaml_Runtime[63], _kR_, _byu_, _byt_, _bys_); - } - catch(_bDQ_){ - var _byr_ = caml_wrap_exception(_bDQ_); - if(_byr_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kO_], 1); - throw caml_maybe_attach_backtrace(_byr_, 0); - } - var - condition_2_du_832_25$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _kS_, Runtime_ocaml_Runtime[12], _byv_); - try{ - var - _byx_ = function(param){return date_courante;}, - _byy_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _kU_, 1); - }, - _byz_ = caml_call4(Runtime_ocaml_Runtime[63], _kV_, [0], _byy_, _byx_), - contributions_sociales_dot_dat = + coefficient_r_d832_25= caml_call3 - (Runtime_ocaml_Runtime[28], _kW_, Runtime_ocaml_Runtime[16], _byz_); - } - catch(_bDP_){ - var _byw_ = caml_wrap_exception(_bDP_); - if(_byw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kT_], 1); - throw caml_maybe_attach_backtrace(_byw_, 0); - } - var - _byA_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _kX_, contributions_sociales_aides_p), - [0, contributions_sociales_dot_dat]), - result = caml_call2(Runtime_ocaml_Runtime[27], _kY_, _byA_), - contributions_sociales_dot_mon = result[1]; - try{ - var - _byC_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$1); - }, - _byD_ = - function(param){ - var - _bDN_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bDO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bDN_); - return caml_call2(Runtime_ocaml_Runtime[29], _k0_, _bDO_); - }, - _byE_ = caml_call4(Runtime_ocaml_Runtime[63], _k1_, [0], _byD_, _byC_); - } - catch(_bDM_){ - var _byB_ = caml_wrap_exception(_bDM_); - if(_byB_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _kZ_], 1); - throw caml_maybe_attach_backtrace(_byB_, 0); - } - var - montant_minimal_aide_d823_24 = - caml_call3 - (Runtime_ocaml_Runtime[28], _k2_, Runtime_ocaml_Runtime[13], _byE_); - try{ - var - _byG_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_500$0); - }, - _byH_ = - function(param){ - var - _bDK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bDL_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bDK_); - return caml_call2(Runtime_ocaml_Runtime[29], _k4_, _bDL_); - }, - _byI_ = caml_call4(Runtime_ocaml_Runtime[63], _k5_, [0], _byH_, _byG_); - } - catch(_bDJ_){ - var _byF_ = caml_wrap_exception(_bDJ_); - if(_byF_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _k3_], 1); - throw caml_maybe_attach_backtrace(_byF_, 0); - } - var - montant_forfaitaire_d832_24 = - caml_call3 - (Runtime_ocaml_Runtime[28], _k6_, Runtime_ocaml_Runtime[13], _byI_); - try{ - var - _byK_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _byL_ = function(param){return 0;}, - _byM_ = - function(param){ - function _bC__(param){ - switch(zone[0]){ - case 0: - var _bDf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDf_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_44443) - : caml_call1(Runtime_ocaml_Runtime[31], cst_52101); - var _bDg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_55555); - var _bDh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$24); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDh_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_59454); - var _bDi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$23); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDi_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_63369); - var - _bDj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$23), - _bDk_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bDj_), - _bDl_ = caml_call1(Runtime_ocaml_Runtime[69], _bDk_), - _bDm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7089), - _bDn_ = caml_call2(Runtime_ocaml_Runtime[104], _bDm_, _bDl_), - _bDo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_68350); - return caml_call2(Runtime_ocaml_Runtime[93], _bDo_, _bDn_); - case 1: - var _bDp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDp_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_40643) - : caml_call1(Runtime_ocaml_Runtime[31], cst_47433); - var _bDq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDq_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_50575); - var _bDr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$25); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDr_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_54138); - var _bDs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$24); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDs_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_57687); - var - _bDt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$24), - _bDu_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bDt_), - _bDv_ = caml_call1(Runtime_ocaml_Runtime[69], _bDu_), - _bDw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6407), - _bDx_ = caml_call2(Runtime_ocaml_Runtime[104], _bDw_, _bDv_), - _bDy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_61469); - return caml_call2(Runtime_ocaml_Runtime[93], _bDy_, _bDx_); - default: - var _bDz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDz_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_38578) - : caml_call1(Runtime_ocaml_Runtime[31], cst_44869); - var _bDA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDA_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_47602); - var _bDB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$26); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDB_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_50744); - var _bDC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$25); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDC_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_53884); - var - _bDD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$25), - _bDE_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bDD_), - _bDF_ = caml_call1(Runtime_ocaml_Runtime[69], _bDE_), - _bDG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5946), - _bDH_ = caml_call2(Runtime_ocaml_Runtime[104], _bDG_, _bDF_), - _bDI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_57416); - return caml_call2(Runtime_ocaml_Runtime[93], _bDI_, _bDH_); - } - } - function _bC$_(param){ - var - _bDa_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bDb_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bDa_), - _bDc_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bDd_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bDc_), - _bDe_ = caml_call2(Runtime_ocaml_Runtime[83], _bDd_, _bDb_); - return caml_call2(Runtime_ocaml_Runtime[29], _k8_, _bDe_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _k9_, [0], _bC$_, _bC__); - }, - _byN_ = - function(param){ - function _bCz_(param){ - switch(zone[0]){ - case 0: - var _bCG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCG_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_44630) - : caml_call1(Runtime_ocaml_Runtime[31], cst_52321); - var _bCH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCH_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_55788); - var _bCI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$27); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCI_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_59704); - var _bCJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$26); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCJ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_63635); - var - _bCK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$26), - _bCL_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bCK_), - _bCM_ = caml_call1(Runtime_ocaml_Runtime[69], _bCL_), - _bCN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7119), - _bCO_ = caml_call2(Runtime_ocaml_Runtime[104], _bCN_, _bCM_), - _bCP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_68637); - return caml_call2(Runtime_ocaml_Runtime[93], _bCP_, _bCO_); - case 1: - var _bCQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCQ_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_40814) - : caml_call1(Runtime_ocaml_Runtime[31], cst_47632); - var _bCR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCR_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_50787); - var _bCS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCS_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_54365); - var _bCT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$27); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCT_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_57929); - var - _bCU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$27), - _bCV_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bCU_), - _bCW_ = caml_call1(Runtime_ocaml_Runtime[69], _bCV_), - _bCX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6434), - _bCY_ = caml_call2(Runtime_ocaml_Runtime[104], _bCX_, _bCW_), - _bCZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_61727); - return caml_call2(Runtime_ocaml_Runtime[93], _bCZ_, _bCY_); - default: - var _bC0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC0_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_38740) - : caml_call1(Runtime_ocaml_Runtime[31], cst_45057); - var _bC1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC1_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_47802); - var _bC2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC2_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_50957); - var _bC3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC3_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_54110); - var - _bC4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$28), - _bC5_ = - caml_call2 - (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bC4_), - _bC6_ = caml_call1(Runtime_ocaml_Runtime[69], _bC5_), - _bC7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5971), - _bC8_ = caml_call2(Runtime_ocaml_Runtime[104], _bC7_, _bC6_), - _bC9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_57657); - return caml_call2(Runtime_ocaml_Runtime[93], _bC9_, _bC8_); - } - } - function _bCA_(param){ - var - _bCB_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bCC_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bCB_), - _bCD_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bCE_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bCD_), - _bCF_ = caml_call2(Runtime_ocaml_Runtime[83], _bCE_, _bCC_); - return caml_call2(Runtime_ocaml_Runtime[29], _k__, _bCF_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _k$_, [0], _bCA_, _bCz_); - }, - _byO_ = - [0, - function(param){ - function _bB3_(param){ - switch(zone[0]){ - case 0: - var _bB7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bB7_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_46192) - : caml_call1(Runtime_ocaml_Runtime[31], cst_54152); - var _bB8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bB8_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_57741); - var _bB9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$30); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bB9_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_61794); - var _bB__ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bB__)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_65862); - var - _bB$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$29), - _bCa_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bB$_), - _bCb_ = caml_call1(Runtime_ocaml_Runtime[69], _bCa_), - _bCc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7368), - _bCd_ = caml_call2(Runtime_ocaml_Runtime[104], _bCc_, _bCb_), - _bCe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_71039); - return caml_call2(Runtime_ocaml_Runtime[93], _bCe_, _bCd_); - case 1: - var _bCf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCf_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_42242) - : caml_call1(Runtime_ocaml_Runtime[31], cst_49299); - var _bCg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_52565); - var _bCh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$31); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCh_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_56268); - var _bCi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$30); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCi_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_59957); - var - _bCj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$30), - _bCk_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bCj_), - _bCl_ = caml_call1(Runtime_ocaml_Runtime[69], _bCk_), - _bCm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6659), - _bCn_ = caml_call2(Runtime_ocaml_Runtime[104], _bCm_, _bCl_), - _bCo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_63887); - return caml_call2(Runtime_ocaml_Runtime[93], _bCo_, _bCn_); - default: - var _bCp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCp_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_40096) - : caml_call1(Runtime_ocaml_Runtime[31], cst_46634); - var _bCq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCq_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_49475); - var _bCr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCr_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_52740); - var _bCs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$31); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCs_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_56004); - var - _bCt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$31), - _bCu_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bCt_), - _bCv_ = caml_call1(Runtime_ocaml_Runtime[69], _bCu_), - _bCw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6180), - _bCx_ = caml_call2(Runtime_ocaml_Runtime[104], _bCw_, _bCv_), - _bCy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_59675); - return caml_call2(Runtime_ocaml_Runtime[93], _bCy_, _bCx_); - } - } - function _bB4_(param){ - var - _bB5_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bB6_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bB5_); - return caml_call2(Runtime_ocaml_Runtime[29], _la_, _bB6_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _lb_, [0], _bB4_, _bB3_); - }, - _byN_, - _byM_], - _byP_ = caml_call4(Runtime_ocaml_Runtime[63], _lc_, _byO_, _byL_, _byK_); - } - catch(_bB2_){ - var _byJ_ = caml_wrap_exception(_bB2_); - if(_byJ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _k7_], 1); - throw caml_maybe_attach_backtrace(_byJ_, 0); - } - var - plafond_equivalence_loyer_elig = - caml_call3 - (Runtime_ocaml_Runtime[28], _ld_, Runtime_ocaml_Runtime[13], _byP_); - try{ - var - _byR_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_121726); - }, - _byS_ = - function(param){ - var - _bB0_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bB1_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bB0_); - return caml_call2(Runtime_ocaml_Runtime[29], _lf_, _bB1_); - }, - _byT_ = caml_call4(Runtime_ocaml_Runtime[63], _lg_, [0], _byS_, _byR_); - } - catch(_bBZ_){ - var _byQ_ = caml_wrap_exception(_bBZ_); - if(_byQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _le_], 1); - throw caml_maybe_attach_backtrace(_byQ_, 0); - } - var - coefficient_r_d832_25 = - caml_call3 - (Runtime_ocaml_Runtime[28], _lh_, Runtime_ocaml_Runtime[13], _byT_); - try{ - var - _byV_ = function(param){return condition_2_du_832_25$0;}, - _byW_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _lj_, 1); - }, - _byX_ = caml_call4(Runtime_ocaml_Runtime[63], _lk_, [0], _byW_, _byV_), - calcul_nombre_parts_dot_condit = - caml_call3 - (Runtime_ocaml_Runtime[28], _ll_, Runtime_ocaml_Runtime[12], _byX_); - } - catch(_bBY_){ - var _byU_ = caml_wrap_exception(_bBY_); - if(_byU_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _li_], 1); - throw caml_maybe_attach_backtrace(_byU_, 0); - } - try{ - var - _byZ_ = function(param){return nombre_personnes_a_charge;}, - _by0_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ln_, 1); - }, - _by1_ = caml_call4(Runtime_ocaml_Runtime[63], _lo_, [0], _by0_, _byZ_), - calcul_nombre_parts_dot_nombre = - caml_call3 - (Runtime_ocaml_Runtime[28], _lp_, Runtime_ocaml_Runtime[14], _by1_); - } - catch(_bBX_){ - var _byY_ = caml_wrap_exception(_bBX_); - if(_byY_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _lm_], 1); - throw caml_maybe_attach_backtrace(_byY_, 0); - } - try{ - var - _by3_ = function(param){return situation_familiale_calcul_apl;}, - _by4_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _lr_, 1); - }, - _by5_ = caml_call4(Runtime_ocaml_Runtime[63], _ls_, [0], _by4_, _by3_), - calcul_nombre_parts_dot_situat = - caml_call3 - (Runtime_ocaml_Runtime[28], - _lt_, - embed_situation_familiale_calc, - _by5_); - } - catch(_bBW_){ - var _by2_ = caml_wrap_exception(_bBW_); - if(_by2_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _lq_], 1); - throw caml_maybe_attach_backtrace(_by2_, 0); - } - try{ - var - _by7_ = function(param){return residence;}, - _by8_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _lv_, 1); - }, - _by9_ = caml_call4(Runtime_ocaml_Runtime[63], _lw_, [0], _by8_, _by7_), - calcul_nombre_parts_dot_reside = - caml_call3(Runtime_ocaml_Runtime[28], _lx_, embed_collectivite, _by9_); - } - catch(_bBV_){ - var _by6_ = caml_wrap_exception(_bBV_); - if(_by6_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _lu_], 1); - throw caml_maybe_attach_backtrace(_by6_, 0); - } - function calcul_nombre_parts_dot_limita(param){ - function _bBS_(param){return 1;} - function _bBT_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], - _ly_, - limitation_majoration_personne$0); - } - var - _bBU_ = caml_call4(Runtime_ocaml_Runtime[63], _lz_, [0], _bBT_, _bBS_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _lA_, - Runtime_ocaml_Runtime[12], - _bBU_); - } - var - _by__ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _lB_, calcul_nombre_part_logement_fo), - [0, - calcul_nombre_parts_dot_condit, - calcul_nombre_parts_dot_nombre, - calcul_nombre_parts_dot_situat, - calcul_nombre_parts_dot_reside, - calcul_nombre_parts_dot_limita]), - result$0 = caml_call2(Runtime_ocaml_Runtime[27], _lC_, _by__), - calcul_nombre_parts_dot_n_nomb = result$0[1]; - try{ - var - _bza_ = - function(param){ - return condition_2_du_832_25$0 - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1500) - : caml_call1(Runtime_ocaml_Runtime[31], cst_2668); - }, - _bzb_ = - function(param){ - var - _bBQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bBR_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bBQ_); - return caml_call2(Runtime_ocaml_Runtime[29], _lE_, _bBR_); - }, - _bzc_ = caml_call4(Runtime_ocaml_Runtime[63], _lF_, [0], _bzb_, _bza_); - } - catch(_bBP_){ - var _by$_ = caml_wrap_exception(_bBP_); - if(_by$_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _lD_], 1); - throw caml_maybe_attach_backtrace(_by$_, 0); - } - var - montant_forfaitaire_d832_27 = - caml_call3 - (Runtime_ocaml_Runtime[28], _lG_, Runtime_ocaml_Runtime[13], _bzc_); - try{ - var - _bze_ = - function(param){ - return condition_2_du_832_25$0 - ? caml_call1(Runtime_ocaml_Runtime[31], cst_2142091) - : caml_call1(Runtime_ocaml_Runtime[31], cst_1339340); - }, - _bzf_ = - function(param){ - var - _bBN_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bBO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bBN_); - return caml_call2(Runtime_ocaml_Runtime[29], _lI_, _bBO_); - }, - _bzg_ = caml_call4(Runtime_ocaml_Runtime[63], _lJ_, [0], _bzf_, _bze_); - } - catch(_bBM_){ - var _bzd_ = caml_wrap_exception(_bBM_); - if(_bzd_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _lH_], 1); - throw caml_maybe_attach_backtrace(_bzd_, 0); - } - var - coefficient_multiplicateur_d83 = - caml_call3 - (Runtime_ocaml_Runtime[28], _lK_, Runtime_ocaml_Runtime[13], _bzg_); - function _bzh_(aide_finale){ - try{ + (Runtime_ocaml_Runtime[28],_wV_,Runtime_ocaml_Runtime[13],_bPK_); + try + {var + _bPL_=function(param){return condition_2_du_832_25$0}, + _bPM_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_wX_,1)}, + _bPN_=caml_call4(Runtime_ocaml_Runtime[63],_wY_,[0],_bPM_,_bPL_), + calcul_nombre_parts_dot_condit= + caml_call3 + (Runtime_ocaml_Runtime[28],_wZ_,Runtime_ocaml_Runtime[12],_bPN_)} + catch(_bSr_) + {_bSr_ = caml_wrap_exception(_bSr_); + if(_bSr_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_wW_]; + throw _bSr_} + try + {var + _bPO_=function(param){return nombre_personnes_a_charge}, + _bPP_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_w1_,1)}, + _bPQ_=caml_call4(Runtime_ocaml_Runtime[63],_w2_,[0],_bPP_,_bPO_), + calcul_nombre_parts_dot_nombre= + caml_call3 + (Runtime_ocaml_Runtime[28],_w3_,Runtime_ocaml_Runtime[14],_bPQ_)} + catch(_bSq_) + {_bSq_ = caml_wrap_exception(_bSq_); + if(_bSq_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_w0_]; + throw _bSq_} + try + {var + _bPR_=function(param){return situation_familiale_calcul_apl}, + _bPS_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_w5_,1)}, + _bPT_=caml_call4(Runtime_ocaml_Runtime[63],_w6_,[0],_bPS_,_bPR_), + calcul_nombre_parts_dot_situat= + caml_call3 + (Runtime_ocaml_Runtime[28], + _w7_, + embed_situation_familiale_calc, + _bPT_)} + catch(_bSp_) + {_bSp_ = caml_wrap_exception(_bSp_); + if(_bSp_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_w4_]; + throw _bSp_} + try + {var + _bPU_=function(param){return residence}, + _bPV_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_w9_,1)}, + _bPW_=caml_call4(Runtime_ocaml_Runtime[63],_w__,[0],_bPV_,_bPU_), + calcul_nombre_parts_dot_reside= + caml_call3 + (Runtime_ocaml_Runtime[28],_w$_,embed_collectivite$0,_bPW_)} + catch(_bSo_) + {_bSo_ = caml_wrap_exception(_bSo_); + if(_bSo_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_w8_]; + throw _bSo_} + function calcul_nombre_parts_dot_limita(param) + {function _bSl_(param){return 1} + function _bSm_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29], + _xa_, + limitation_majoration_personne$0)} + var _bSn_=caml_call4(Runtime_ocaml_Runtime[63],_xb_,[0],_bSm_,_bSl_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _xc_, + Runtime_ocaml_Runtime[12], + _bSn_)} var - _bBG_ = - function(param){ - var - _bBK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$86), - _bBL_ = - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_24); - return caml_call2(Runtime_ocaml_Runtime[128], _bBL_, _bBK_) - ? caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_24) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$87); - }, - _bBH_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _lM_, 1); - }, - _bBI_ = caml_call4(Runtime_ocaml_Runtime[63], _lN_, [0], _bBH_, _bBG_); - return _bBI_; - } - catch(_bBJ_){ - var _bBF_ = caml_wrap_exception(_bBJ_); - if(_bBF_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _lL_], 1); - throw caml_maybe_attach_backtrace(_bBF_, 0); - } - } - var - traitement_aide_finale_minorat = - caml_call3 - (Runtime_ocaml_Runtime[28], _lO_, Runtime_ocaml_Runtime[10], _bzh_); - try{ - var - _bzj_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[128], - redevance, - plafond_equivalence_loyer_elig) - ? plafond_equivalence_loyer_elig - : redevance; - }, - _bzk_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _lQ_, 1); - }, - _bzl_ = caml_call4(Runtime_ocaml_Runtime[63], _lR_, [0], _bzk_, _bzj_); - } - catch(_bBE_){ - var _bzi_ = caml_wrap_exception(_bBE_); - if(_bzi_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _lP_], 1); - throw caml_maybe_attach_backtrace(_bzi_, 0); - } - var - equivalence_loyer_eligible = - caml_call3 - (Runtime_ocaml_Runtime[28], _lS_, Runtime_ocaml_Runtime[13], _bzl_); - try{ - var - _bzn_ = - function(param){ - function _bBC_(param){return calcul_nombre_parts_dot_n_nomb;} - function _bBD_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _lU_, 1); - } - return caml_call4(Runtime_ocaml_Runtime[63], _lV_, [0], _bBD_, _bBC_); - }, - _bzo_ = function(param){return 1;}, - _bzp_ = - [0, function(param){return caml_call1(n_nombre_parts_d832_25, 0);}], - _bzq_ = caml_call4(Runtime_ocaml_Runtime[63], _lW_, _bzp_, _bzo_, _bzn_); - } - catch(_bBB_){ - var _bzm_ = caml_wrap_exception(_bBB_); - if(_bzm_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _lT_], 1); - throw caml_maybe_attach_backtrace(_bzm_, 0); - } - var - n_nombre_parts_d832_25$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _lX_, Runtime_ocaml_Runtime[15], _bzq_); - function _bzr_(allocation_mensuelle){ - try{ + _bPX_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_xd_,calcul_nombre_part_logement_fo), + [0, + calcul_nombre_parts_dot_condit, + calcul_nombre_parts_dot_nombre, + calcul_nombre_parts_dot_situat, + calcul_nombre_parts_dot_reside, + calcul_nombre_parts_dot_limita]), + result$0=caml_call2(Runtime_ocaml_Runtime[27],_xe_,_bPX_), + calcul_nombre_parts_dot_n_nomb=result$0[1]; + try + {var + _bPY_= + function(param) + {return condition_2_du_832_25$0 + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1500) + :caml_call1(Runtime_ocaml_Runtime[31],cst_2668)}, + _bPZ_= + function(param) + {var + _bSj_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bSk_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSj_); + return caml_call2(Runtime_ocaml_Runtime[29],_xg_,_bSk_)}, + _bP0_=caml_call4(Runtime_ocaml_Runtime[63],_xh_,[0],_bPZ_,_bPY_)} + catch(_bSi_) + {_bSi_ = caml_wrap_exception(_bSi_); + if(_bSi_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xf_]; + throw _bSi_} var - _bBx_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[98], - equivalence_loyer_eligible, - allocation_mensuelle); - }, - _bBy_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _lZ_, 1); - }, - _bBz_ = caml_call4(Runtime_ocaml_Runtime[63], _l0_, [0], _bBy_, _bBx_); - return _bBz_; - } - catch(_bBA_){ - var _bBw_ = caml_wrap_exception(_bBA_); - if(_bBw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _lY_], 1); - throw caml_maybe_attach_backtrace(_bBw_, 0); - } - } - var - depense_nette_minimale_d832_27 = - caml_call3 - (Runtime_ocaml_Runtime[28], _l1_, Runtime_ocaml_Runtime[10], _bzr_); - try{ - var - _bzt_ = function(param){return date_courante;}, - _bzu_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _l3_, 1); - }, - _bzv_ = caml_call4(Runtime_ocaml_Runtime[63], _l4_, [0], _bzu_, _bzt_), - calcul_equivalence_loyer_minim$0 = + montant_forfaitaire_d832_27= caml_call3 - (Runtime_ocaml_Runtime[28], _l5_, Runtime_ocaml_Runtime[16], _bzv_); - } - catch(_bBv_){ - var _bzs_ = caml_wrap_exception(_bBv_); - if(_bzs_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _l2_], 1); - throw caml_maybe_attach_backtrace(_bzs_, 0); - } - try{ - var - _bzx_ = function(param){return ressources_menage_arrondies;}, - _bzy_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _l7_, 1); - }, - _bzz_ = caml_call4(Runtime_ocaml_Runtime[63], _l8_, [0], _bzy_, _bzx_), - calcul_equivalence_loyer_minim$1 = + (Runtime_ocaml_Runtime[28],_xi_,Runtime_ocaml_Runtime[13],_bP0_); + try + {var + _bP1_= + function(param) + {return condition_2_du_832_25$0 + ?caml_call1(Runtime_ocaml_Runtime[31],cst_2142091) + :caml_call1(Runtime_ocaml_Runtime[31],cst_1339340)}, + _bP2_= + function(param) + {var + _bSg_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bSh_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSg_); + return caml_call2(Runtime_ocaml_Runtime[29],_xk_,_bSh_)}, + _bP3_=caml_call4(Runtime_ocaml_Runtime[63],_xl_,[0],_bP2_,_bP1_)} + catch(_bSf_) + {_bSf_ = caml_wrap_exception(_bSf_); + if(_bSf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xj_]; + throw _bSf_} + var + coefficient_multiplicateur_d83= caml_call3 - (Runtime_ocaml_Runtime[28], _l9_, Runtime_ocaml_Runtime[13], _bzz_); - } - catch(_bBu_){ - var _bzw_ = caml_wrap_exception(_bBu_); - if(_bzw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _l6_], 1); - throw caml_maybe_attach_backtrace(_bzw_, 0); - } - try{ - var - _bzB_ = function(param){return condition_2_du_832_25$0;}, - _bzC_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _l$_, 1); - }, - _bzD_ = caml_call4(Runtime_ocaml_Runtime[63], _ma_, [0], _bzC_, _bzB_), - calcul_equivalence_loyer_minim$2 = + (Runtime_ocaml_Runtime[28],_xm_,Runtime_ocaml_Runtime[13],_bP3_); + function _bP4_(aide_finale) + {try + {var + _bR$_= + function(param) + {var + _bSd_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$154), + _bSe_= + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_24); + return caml_call2(Runtime_ocaml_Runtime[128],_bSe_,_bSd_) + ?caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_24) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$155)}, + _bSa_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_xo_,1)}, + _bSb_=caml_call4(Runtime_ocaml_Runtime[63],_xp_,[0],_bSa_,_bR$_); + return _bSb_} + catch(_bSc_) + {_bSc_ = caml_wrap_exception(_bSc_); + if(_bSc_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xn_]; + throw _bSc_}} + var + traitement_aide_finale_minorat= caml_call3 - (Runtime_ocaml_Runtime[28], _mb_, Runtime_ocaml_Runtime[12], _bzD_); - } - catch(_bBt_){ - var _bzA_ = caml_wrap_exception(_bBt_); - if(_bzA_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _l__], 1); - throw caml_maybe_attach_backtrace(_bzA_, 0); - } - try{ - var - _bzF_ = function(param){return n_nombre_parts_d832_25$0;}, - _bzG_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _md_, 1); - }, - _bzH_ = caml_call4(Runtime_ocaml_Runtime[63], _me_, [0], _bzG_, _bzF_), - calcul_equivalence_loyer_minim$3 = + (Runtime_ocaml_Runtime[28],_xq_,Runtime_ocaml_Runtime[10],_bP4_); + try + {var + _bP5_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[128], + redevance, + plafond_equivalence_loyer_elig) + ?plafond_equivalence_loyer_elig + :redevance}, + _bP6_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xs_,1)}, + _bP7_=caml_call4(Runtime_ocaml_Runtime[63],_xt_,[0],_bP6_,_bP5_)} + catch(_bR__) + {_bR__ = caml_wrap_exception(_bR__); + if(_bR__ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xr_]; + throw _bR__} + var + equivalence_loyer_eligible= caml_call3 - (Runtime_ocaml_Runtime[28], _mf_, Runtime_ocaml_Runtime[15], _bzH_); - } - catch(_bBs_){ - var _bzE_ = caml_wrap_exception(_bBs_); - if(_bzE_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _mc_], 1); - throw caml_maybe_attach_backtrace(_bzE_, 0); - } - var - _bzI_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _mg_, calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$1 = caml_call2(Runtime_ocaml_Runtime[27], _mh_, _bzI_), - calcul_equivalence_loyer_minim$4 = result$1[1]; - try{ - var - _bzK_ = - function(param){ - var - _bBn_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - coefficient_r_d832_25, - n_nombre_parts_d832_25$0), - denominateur = - caml_call2 - (Runtime_ocaml_Runtime[98], ressources_menage_arrondies, _bBn_), - _bBo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$88), - denominateur$0 = - caml_call2(Runtime_ocaml_Runtime[113], denominateur, _bBo_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$89) - : denominateur, - _bBp_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - coefficient_multiplicateur_d83, - n_nombre_parts_d832_25$0), - _bBq_ = - caml_call2(Runtime_ocaml_Runtime[108], denominateur$0, _bBp_), - _bBr_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95); - return caml_call2(Runtime_ocaml_Runtime[97], _bBr_, _bBq_); - }, - _bzL_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _mj_, 1); - }, - _bzM_ = - [0, - function(param){ - function _bBi_(param){ - var - _bBk_ = + (Runtime_ocaml_Runtime[28],_xu_,Runtime_ocaml_Runtime[13],_bP7_); + try + {var + _bP8_= + function(param) + {function _bR8_(param){return calcul_nombre_parts_dot_n_nomb} + function _bR9_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_xw_,1)} + return caml_call4(Runtime_ocaml_Runtime[63],_xx_,[0],_bR9_,_bR8_)}, + _bP9_=function(param){return 1}, + _bP__= + [0,function(param){return caml_call1(n_nombre_parts_d832_25,0)}], + _bP$_=caml_call4(Runtime_ocaml_Runtime[63],_xy_,_bP__,_bP9_,_bP8_)} + catch(_bR7_) + {_bR7_ = caml_wrap_exception(_bR7_); + if(_bR7_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xv_]; + throw _bR7_} + var + n_nombre_parts_d832_25$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_xz_,Runtime_ocaml_Runtime[15],_bP$_); + function _bQa_(allocation_mensuelle) + {try + {var + _bR3_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[98], + equivalence_loyer_eligible, + allocation_mensuelle)}, + _bR4_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_xB_,1)}, + _bR5_=caml_call4(Runtime_ocaml_Runtime[63],_xC_,[0],_bR4_,_bR3_); + return _bR5_} + catch(_bR6_) + {_bR6_ = caml_wrap_exception(_bR6_); + if(_bR6_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xA_]; + throw _bR6_}} + var + depense_nette_minimale_d832_27= + caml_call3 + (Runtime_ocaml_Runtime[28],_xD_,Runtime_ocaml_Runtime[10],_bQa_); + try + {var + _bQb_=function(param){return date_courante}, + _bQc_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xF_,1)}, + _bQd_=caml_call4(Runtime_ocaml_Runtime[63],_xG_,[0],_bQc_,_bQb_), + calcul_equivalence_loyer_minim$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_xH_,Runtime_ocaml_Runtime[16],_bQd_)} + catch(_bR2_) + {_bR2_ = caml_wrap_exception(_bR2_); + if(_bR2_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xE_]; + throw _bR2_} + try + {var + _bQe_=function(param){return ressources_menage_arrondies}, + _bQf_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xJ_,1)}, + _bQg_=caml_call4(Runtime_ocaml_Runtime[63],_xK_,[0],_bQf_,_bQe_), + calcul_equivalence_loyer_minim$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_xL_,Runtime_ocaml_Runtime[13],_bQg_)} + catch(_bR1_) + {_bR1_ = caml_wrap_exception(_bR1_); + if(_bR1_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xI_]; + throw _bR1_} + try + {var + _bQh_=function(param){return condition_2_du_832_25$0}, + _bQi_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xN_,1)}, + _bQj_=caml_call4(Runtime_ocaml_Runtime[63],_xO_,[0],_bQi_,_bQh_), + calcul_equivalence_loyer_minim$2= + caml_call3 + (Runtime_ocaml_Runtime[28],_xP_,Runtime_ocaml_Runtime[12],_bQj_)} + catch(_bR0_) + {_bR0_ = caml_wrap_exception(_bR0_); + if(_bR0_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xM_]; + throw _bR0_} + try + {var + _bQk_=function(param){return n_nombre_parts_d832_25$0}, + _bQl_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xR_,1)}, + _bQm_=caml_call4(Runtime_ocaml_Runtime[63],_xS_,[0],_bQl_,_bQk_), + calcul_equivalence_loyer_minim$3= + caml_call3 + (Runtime_ocaml_Runtime[28],_xT_,Runtime_ocaml_Runtime[15],_bQm_)} + catch(_bRZ_) + {_bRZ_ = caml_wrap_exception(_bRZ_); + if(_bRZ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xQ_]; + throw _bRZ_} + var + _bQn_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_xU_,calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$1=caml_call2(Runtime_ocaml_Runtime[27],_xV_,_bQn_), + calcul_equivalence_loyer_minim$4=result$1[1]; + try + {var + _bQo_= + function(param) + {var + _bRU_= + caml_call2 + (Runtime_ocaml_Runtime[104], + coefficient_r_d832_25, + n_nombre_parts_d832_25$0), + denominateur= + caml_call2 + (Runtime_ocaml_Runtime[98],ressources_menage_arrondies,_bRU_), + _bRV_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$156), + denominateur$0= + caml_call2(Runtime_ocaml_Runtime[113],denominateur,_bRV_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$157) + :denominateur, + _bRW_= caml_call2 (Runtime_ocaml_Runtime[104], coefficient_multiplicateur_d83, n_nombre_parts_d832_25$0), - _bBl_ = - caml_call2 - (Runtime_ocaml_Runtime[108], - ressources_menage_arrondies, - _bBk_), - _bBm_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_9$0); - return caml_call2(Runtime_ocaml_Runtime[97], _bBm_, _bBl_); - } - function _bBj_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _mk_, condition_2_du_832_25$0); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ml_, [0], _bBj_, _bBi_); - }], - _bzN_ = caml_call4(Runtime_ocaml_Runtime[63], _mm_, _bzM_, _bzL_, _bzK_); - } - catch(_bBh_){ - var _bzJ_ = caml_wrap_exception(_bBh_); - if(_bzJ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _mi_], 1); - throw caml_maybe_attach_backtrace(_bzJ_, 0); - } - var - coefficient_prise_en_charge_d8 = - caml_call3 - (Runtime_ocaml_Runtime[28], _mn_, Runtime_ocaml_Runtime[15], _bzN_); - function _bzO_(allocation_mensuelle){ - try{ + _bRX_=caml_call2(Runtime_ocaml_Runtime[108],denominateur$0,_bRW_), + _bRY_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95); + return caml_call2(Runtime_ocaml_Runtime[97],_bRY_,_bRX_)}, + _bQp_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xX_,1)}, + _bQq_= + [0, + function(param) + {function _bRP_(param) + {var + _bRR_= + caml_call2 + (Runtime_ocaml_Runtime[104], + coefficient_multiplicateur_d83, + n_nombre_parts_d832_25$0), + _bRS_= + caml_call2 + (Runtime_ocaml_Runtime[108], + ressources_menage_arrondies, + _bRR_), + _bRT_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_9$0); + return caml_call2(Runtime_ocaml_Runtime[97],_bRT_,_bRS_)} + function _bRQ_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_xY_,condition_2_du_832_25$0)} + return caml_call4(Runtime_ocaml_Runtime[63],_xZ_,[0],_bRQ_,_bRP_)}], + _bQr_=caml_call4(Runtime_ocaml_Runtime[63],_x0_,_bQq_,_bQp_,_bQo_)} + catch(_bRO_) + {_bRO_ = caml_wrap_exception(_bRO_); + if(_bRO_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_xW_]; + throw _bRO_} var - _bBa_ = - function(param){ - var - _bBe_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _mp_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _bBf_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _mq_, - depense_nette_minimale_d832_27), - _bBe_), - _bBg_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _mr_, - Runtime_ocaml_Runtime[13], - _bBf_), - depense_nette_minimale = - caml_call2(Runtime_ocaml_Runtime[27], _ms_, _bBg_); - return caml_call2 - (Runtime_ocaml_Runtime[118], - depense_nette_minimale, - montant_forfaitaire_d832_27) - ? caml_call2 - (Runtime_ocaml_Runtime[98], - montant_forfaitaire_d832_27, - depense_nette_minimale) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$90); - }, - _bBb_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _mt_, 1); - }, - _bBc_ = caml_call4(Runtime_ocaml_Runtime[63], _mu_, [0], _bBb_, _bBa_); - return _bBc_; - } - catch(_bBd_){ - var _bA$_ = caml_wrap_exception(_bBd_); - if(_bA$_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _mo_], 1); - throw caml_maybe_attach_backtrace(_bA$_, 0); - } - } - var - abattement_depense_nette_minim = - caml_call3 - (Runtime_ocaml_Runtime[28], _mv_, Runtime_ocaml_Runtime[10], _bzO_); - try{ - var - _bzQ_ = function(param){return calcul_equivalence_loyer_minim$4;}, - _bzR_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _mx_, 1); - }, - _bzS_ = caml_call4(Runtime_ocaml_Runtime[63], _my_, [0], _bzR_, _bzQ_); - } - catch(_bA__){ - var _bzP_ = caml_wrap_exception(_bA__); - if(_bzP_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _mw_], 1); - throw caml_maybe_attach_backtrace(_bzP_, 0); - } - var - equivalence_loyer_minimale = - caml_call3 - (Runtime_ocaml_Runtime[28], _mz_, Runtime_ocaml_Runtime[13], _bzS_); - try{ - var - _bzU_ = - function(param){ - var - _bA4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$6), - _bA5_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$7), - _bA6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_005$0), - _bA7_ = - caml_call2 - (Runtime_ocaml_Runtime[97], - coefficient_prise_en_charge_d8, - _bA6_), - _bA8_ = caml_call2(Runtime_ocaml_Runtime[103], _bA7_, _bA5_), - _bA9_ = caml_call1(Runtime_ocaml_Runtime[78], _bA8_); - return caml_call2(Runtime_ocaml_Runtime[107], _bA9_, _bA4_); - }, - _bzV_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _mB_, 1); - }, - _bzW_ = - [0, - function(param){ - function _bAW_(param){ - var - _bAY_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$8), - _bAZ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$9), - _bA0_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_005$1), - _bA1_ = + coefficient_prise_en_charge_d8= + caml_call3 + (Runtime_ocaml_Runtime[28],_x1_,Runtime_ocaml_Runtime[15],_bQr_); + function _bQs_(allocation_mensuelle) + {try + {var + _bRH_= + function(param) + {var + _bRL_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _x3_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _bRM_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _x4_, + depense_nette_minimale_d832_27), + _bRL_), + _bRN_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _x5_, + Runtime_ocaml_Runtime[13], + _bRM_), + depense_nette_minimale= + caml_call2(Runtime_ocaml_Runtime[27],_x6_,_bRN_); + return caml_call2 + (Runtime_ocaml_Runtime[118], + depense_nette_minimale, + montant_forfaitaire_d832_27) + ?caml_call2 + (Runtime_ocaml_Runtime[98], + montant_forfaitaire_d832_27, + depense_nette_minimale) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$158)}, + _bRI_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_x7_,1)}, + _bRJ_=caml_call4(Runtime_ocaml_Runtime[63],_x8_,[0],_bRI_,_bRH_); + return _bRJ_} + catch(_bRK_) + {_bRK_ = caml_wrap_exception(_bRK_); + if(_bRK_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_x2_]; + throw _bRK_}} + var + abattement_depense_nette_minim= + caml_call3 + (Runtime_ocaml_Runtime[28],_x9_,Runtime_ocaml_Runtime[10],_bQs_); + try + {var + _bQt_=function(param){return calcul_equivalence_loyer_minim$4}, + _bQu_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_x$_,1)}, + _bQv_=caml_call4(Runtime_ocaml_Runtime[63],_ya_,[0],_bQu_,_bQt_)} + catch(_bRG_) + {_bRG_ = caml_wrap_exception(_bRG_); + if(_bRG_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_x__]; + throw _bRG_} + var + equivalence_loyer_minimale= + caml_call3 + (Runtime_ocaml_Runtime[28],_yb_,Runtime_ocaml_Runtime[13],_bQv_); + try + {var + _bQw_= + function(param) + {var + _bRA_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$6), + _bRB_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$7), + _bRC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_005$0), + _bRD_= caml_call2 (Runtime_ocaml_Runtime[97], coefficient_prise_en_charge_d8, - _bA0_), - _bA2_ = caml_call2(Runtime_ocaml_Runtime[103], _bA1_, _bAZ_), - _bA3_ = caml_call1(Runtime_ocaml_Runtime[78], _bA2_); - return caml_call2(Runtime_ocaml_Runtime[107], _bA3_, _bAY_); - } - function _bAX_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _mC_, condition_2_du_832_25$0); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _mD_, [0], _bAX_, _bAW_); - }], - _bzX_ = caml_call4(Runtime_ocaml_Runtime[63], _mE_, _bzW_, _bzV_, _bzU_); - } - catch(_bAV_){ - var _bzT_ = caml_wrap_exception(_bAV_); - if(_bzT_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _mA_], 1); - throw caml_maybe_attach_backtrace(_bzT_, 0); - } - var - coefficient_prise_en_charge_d8$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _mF_, Runtime_ocaml_Runtime[15], _bzX_); - function _bzY_(aide_finale){ - try{ + _bRC_), + _bRE_=caml_call2(Runtime_ocaml_Runtime[103],_bRD_,_bRB_), + _bRF_=caml_call1(Runtime_ocaml_Runtime[78],_bRE_); + return caml_call2(Runtime_ocaml_Runtime[107],_bRF_,_bRA_)}, + _bQx_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_yd_,1)}, + _bQy_= + [0, + function(param) + {function _bRs_(param) + {var + _bRu_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$8), + _bRv_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$9), + _bRw_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_005$1), + _bRx_= + caml_call2 + (Runtime_ocaml_Runtime[97], + coefficient_prise_en_charge_d8, + _bRw_), + _bRy_=caml_call2(Runtime_ocaml_Runtime[103],_bRx_,_bRv_), + _bRz_=caml_call1(Runtime_ocaml_Runtime[78],_bRy_); + return caml_call2(Runtime_ocaml_Runtime[107],_bRz_,_bRu_)} + function _bRt_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_ye_,condition_2_du_832_25$0)} + return caml_call4(Runtime_ocaml_Runtime[63],_yf_,[0],_bRt_,_bRs_)}], + _bQz_=caml_call4(Runtime_ocaml_Runtime[63],_yg_,_bQy_,_bQx_,_bQw_)} + catch(_bRr_) + {_bRr_ = caml_wrap_exception(_bRr_); + if(_bRr_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_yc_]; + throw _bRr_} var - _bAJ_ = - function(param){ - var - _bAN_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _mH_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bAO_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _mI_, - traitement_aide_finale_minorat), - _bAN_), - _bAP_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _mJ_, - Runtime_ocaml_Runtime[13], - _bAO_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _mK_, _bAP_), - _bAQ_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _mL_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bAR_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _mM_, - abattement_depense_nette_minim), - _bAQ_), - _bAS_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _mN_, - Runtime_ocaml_Runtime[13], - _bAR_), - _bAT_ = caml_call2(Runtime_ocaml_Runtime[27], _mO_, _bAS_), - aide_finale$1 = - caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _bAT_), - _bAU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$91); - return caml_call2(Runtime_ocaml_Runtime[128], aide_finale$1, _bAU_) - ? aide_finale$1 - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$92); - }, - _bAK_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _mP_, 1); - }, - _bAL_ = caml_call4(Runtime_ocaml_Runtime[63], _mQ_, [0], _bAK_, _bAJ_); - return _bAL_; - } - catch(_bAM_){ - var _bAI_ = caml_wrap_exception(_bAM_); - if(_bAI_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _mG_], 1); - throw caml_maybe_attach_backtrace(_bAI_, 0); - } - } - var - traitement_aide_finale_abattem = - caml_call3 - (Runtime_ocaml_Runtime[28], _mR_, Runtime_ocaml_Runtime[10], _bzY_); - try{ - var - _bz0_ = - function(param){ - var _bAH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$0); - return caml_call2 - (Runtime_ocaml_Runtime[127], - coefficient_prise_en_charge_d8$0, - _bAH_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$1) - : coefficient_prise_en_charge_d8$0; - }, - _bz1_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _mT_, 1); - }, - _bz2_ = - [0, - function(param){ - function _bAE_(param){ - var _bAG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_9$1); - return caml_call2 - (Runtime_ocaml_Runtime[127], - coefficient_prise_en_charge_d8$0, - _bAG_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_9$2) - : coefficient_prise_en_charge_d8$0; - } - function _bAF_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _mU_, condition_2_du_832_25$0); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _mV_, [0], _bAF_, _bAE_); - }], - _bz3_ = caml_call4(Runtime_ocaml_Runtime[63], _mW_, _bz2_, _bz1_, _bz0_); - } - catch(_bAD_){ - var _bzZ_ = caml_wrap_exception(_bAD_); - if(_bzZ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _mS_], 1); - throw caml_maybe_attach_backtrace(_bzZ_, 0); - } - var - coefficient_prise_en_charge_d8$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _mX_, Runtime_ocaml_Runtime[15], _bz3_); - function _bz4_(aide_finale){ - try{ + coefficient_prise_en_charge_d8$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_yh_,Runtime_ocaml_Runtime[15],_bQz_); + function _bQA_(aide_finale) + {try + {var + _bRf_= + function(param) + {var + _bRj_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _yj_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bRk_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _yk_, + traitement_aide_finale_minorat), + _bRj_), + _bRl_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _yl_, + Runtime_ocaml_Runtime[13], + _bRk_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_ym_,_bRl_), + _bRm_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _yn_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bRn_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _yo_, + abattement_depense_nette_minim), + _bRm_), + _bRo_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _yp_, + Runtime_ocaml_Runtime[13], + _bRn_), + _bRp_=caml_call2(Runtime_ocaml_Runtime[27],_yq_,_bRo_), + aide_finale$1= + caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bRp_), + _bRq_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$159); + return caml_call2 + (Runtime_ocaml_Runtime[128],aide_finale$1,_bRq_) + ?aide_finale$1 + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$160)}, + _bRg_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_yr_,1)}, + _bRh_=caml_call4(Runtime_ocaml_Runtime[63],_ys_,[0],_bRg_,_bRf_); + return _bRh_} + catch(_bRi_) + {_bRi_ = caml_wrap_exception(_bRi_); + if(_bRi_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_yi_]; + throw _bRi_}} var - _bAo_ = - function(param){ - var - _bAs_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _mZ_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bAt_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _m0_, - traitement_aide_finale_abattem), - _bAs_), - _bAu_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _m1_, - Runtime_ocaml_Runtime[13], - _bAt_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _m2_, _bAu_), - _bAv_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _m3_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bAw_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _m4_, - contributions_sociales_dot_mon), - _bAv_), - _bAx_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _m5_, - Runtime_ocaml_Runtime[13], - _bAw_), - crds = caml_call2(Runtime_ocaml_Runtime[27], _m6_, _bAx_), - _bAy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$0), - _bAz_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), - _bAA_ = caml_call2(Runtime_ocaml_Runtime[98], _bAz_, _bAy_), - aide_finale_moins_crds_arrondi = - caml_call1(Runtime_ocaml_Runtime[77], _bAA_), - _bAB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$93), - _bAC_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128], _bAC_, _bAB_) - ? caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$94); - }, - _bAp_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _m7_, 1); - }, - _bAq_ = caml_call4(Runtime_ocaml_Runtime[63], _m8_, [0], _bAp_, _bAo_); - return _bAq_; - } - catch(_bAr_){ - var _bAn_ = caml_wrap_exception(_bAr_); - if(_bAn_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _mY_], 1); - throw caml_maybe_attach_backtrace(_bAn_, 0); - } - } - var - traitement_aide_finale_contrib = - caml_call3 - (Runtime_ocaml_Runtime[28], _m9_, Runtime_ocaml_Runtime[10], _bz4_); - try{ - var - _bz6_ = - function(param){ - var - _bAl_ = - caml_call2 - (Runtime_ocaml_Runtime[98], - equivalence_loyer_eligible, - equivalence_loyer_minimale), - aide_finale = - caml_call2 - (Runtime_ocaml_Runtime[104], - _bAl_, - coefficient_prise_en_charge_d8$1), - _bAm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$95); - return caml_call2(Runtime_ocaml_Runtime[113], aide_finale, _bAm_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$96) - : aide_finale; - }, - _bz7_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _m$_, 1); - }, - _bz8_ = caml_call4(Runtime_ocaml_Runtime[63], _na_, [0], _bz7_, _bz6_); - } - catch(_bAk_){ - var _bz5_ = caml_wrap_exception(_bAk_); - if(_bz5_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _m__], 1); - throw caml_maybe_attach_backtrace(_bz5_, 0); - } - var - aide_finale_formule = - caml_call3 - (Runtime_ocaml_Runtime[28], _nb_, Runtime_ocaml_Runtime[13], _bz8_); - function _bz9_(aide_finale){ - try{ + traitement_aide_finale_abattem= + caml_call3 + (Runtime_ocaml_Runtime[28],_yt_,Runtime_ocaml_Runtime[10],_bQA_); + try + {var + _bQB_= + function(param) + {var _bRe_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$0); + return caml_call2 + (Runtime_ocaml_Runtime[127], + coefficient_prise_en_charge_d8$0, + _bRe_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$1) + :coefficient_prise_en_charge_d8$0}, + _bQC_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_yv_,1)}, + _bQD_= + [0, + function(param) + {function _bRb_(param) + {var _bRd_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_9$1); + return caml_call2 + (Runtime_ocaml_Runtime[127], + coefficient_prise_en_charge_d8$0, + _bRd_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_9$2) + :coefficient_prise_en_charge_d8$0} + function _bRc_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_yw_,condition_2_du_832_25$0)} + return caml_call4(Runtime_ocaml_Runtime[63],_yx_,[0],_bRc_,_bRb_)}], + _bQE_=caml_call4(Runtime_ocaml_Runtime[63],_yy_,_bQD_,_bQC_,_bQB_)} + catch(_bRa_) + {_bRa_ = caml_wrap_exception(_bRa_); + if(_bRa_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_yu_]; + throw _bRa_} var - _bAd_ = - function(param){ - var - _bAh_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _nd_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bAi_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _ne_, - traitement_aide_finale_contrib), - _bAh_), - _bAj_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _nf_, - Runtime_ocaml_Runtime[13], - _bAi_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _ng_, _bAj_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d823_24) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$97) - : aide_finale$0; - }, - _bAe_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _nh_, 1); - }, - _bAf_ = caml_call4(Runtime_ocaml_Runtime[63], _ni_, [0], _bAe_, _bAd_); - return _bAf_; - } - catch(_bAg_){ - var _bAc_ = caml_wrap_exception(_bAg_); - if(_bAc_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nc_], 1); - throw caml_maybe_attach_backtrace(_bAc_, 0); - } - } - var - traitement_aide_finale_montant = - caml_call3 - (Runtime_ocaml_Runtime[28], _nj_, Runtime_ocaml_Runtime[10], _bz9_); - try{ - var - _bz$_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bAa_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bz$_); - } - catch(_bAb_){ - var _bz__ = caml_wrap_exception(_bAb_); - if(_bz__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nk_], 1); - throw caml_maybe_attach_backtrace(_bz__, 0); - } - if(_bAa_) - return [0, - coefficient_multiplicateur_d83, - coefficient_r_d832_25, - n_nombre_parts_d832_25$0, - equivalence_loyer_eligible, - plafond_equivalence_loyer_elig, - equivalence_loyer_minimale, - coefficient_prise_en_charge_d8$1, - aide_finale_formule, - traitement_aide_finale_montant]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _nl_], 1); - } - function calcul_aide_personnalisee_loge$1(calcul_aide_personnalisee_loge){ - var - mensualite_principale = calcul_aide_personnalisee_loge[1], - ressources_menage_arrondies = calcul_aide_personnalisee_loge[2], - nombre_personnes_a_charge = calcul_aide_personnalisee_loge[3], - situation_familiale_calcul_apl = calcul_aide_personnalisee_loge[4], - type_travaux_logement = calcul_aide_personnalisee_loge[5], - date_signature_pret = calcul_aide_personnalisee_loge[6], - local_habite_premiere_fois_ben = calcul_aide_personnalisee_loge[7], - date_entree_logement = calcul_aide_personnalisee_loge[8], - copropriete = calcul_aide_personnalisee_loge[9], - situation_r822_11_13_17 = calcul_aide_personnalisee_loge[10], - zone = calcul_aide_personnalisee_loge[11], - type_pret = calcul_aide_personnalisee_loge[12], - anciennete_logement = calcul_aide_personnalisee_loge[13], - date_courante = calcul_aide_personnalisee_loge[14]; - try{ - var - _a4o_ = - function(param){ - var - _byk_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6_55957), - _byl_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$51); - return caml_call2(Runtime_ocaml_Runtime[107], _byl_, _byk_); - }, - _a4p_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _nn_, 1); - }, - _a4q_ = caml_call4(Runtime_ocaml_Runtime[63], _no_, [0], _a4p_, _a4o_); - } - catch(_byj_){ - var _a4n_ = caml_wrap_exception(_byj_); - if(_a4n_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nm_], 1); - throw caml_maybe_attach_backtrace(_a4n_, 0); - } - var - taux_francs_vers_euros = - caml_call3 - (Runtime_ocaml_Runtime[28], _np_, Runtime_ocaml_Runtime[15], _a4q_); - try{ - var - _a4s_ = function(param){return nombre_personnes_a_charge;}, - _a4t_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _nr_, 1); - }, - _a4u_ = caml_call4(Runtime_ocaml_Runtime[63], _ns_, [0], _a4t_, _a4s_), - calcul_nombre_parts_dot_nombre = + coefficient_prise_en_charge_d8$1= caml_call3 - (Runtime_ocaml_Runtime[28], _nt_, Runtime_ocaml_Runtime[14], _a4u_); - } - catch(_byi_){ - var _a4r_ = caml_wrap_exception(_byi_); - if(_a4r_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nq_], 1); - throw caml_maybe_attach_backtrace(_a4r_, 0); - } - try{ - var - _a4w_ = function(param){return situation_familiale_calcul_apl;}, - _a4x_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _nv_, 1); - }, - _a4y_ = caml_call4(Runtime_ocaml_Runtime[63], _nw_, [0], _a4x_, _a4w_), - calcul_nombre_parts_dot_situat = + (Runtime_ocaml_Runtime[28],_yz_,Runtime_ocaml_Runtime[15],_bQE_); + function _bQF_(aide_finale) + {try + {var + _bQX_= + function(param) + {var + _bQ1_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _yB_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bQ2_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _yC_, + traitement_aide_finale_abattem), + _bQ1_), + _bQ3_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _yD_, + Runtime_ocaml_Runtime[13], + _bQ2_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_yE_,_bQ3_), + _bQ4_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _yF_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bQ5_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _yG_, + contributions_sociales_dot_mon), + _bQ4_), + _bQ6_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _yH_, + Runtime_ocaml_Runtime[13], + _bQ5_), + crds=caml_call2(Runtime_ocaml_Runtime[27],_yI_,_bQ6_), + _bQ7_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$0), + _bQ8_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), + _bQ9_=caml_call2(Runtime_ocaml_Runtime[98],_bQ8_,_bQ7_), + aide_finale_moins_crds_arrondi= + caml_call1(Runtime_ocaml_Runtime[77],_bQ9_), + _bQ__=caml_call1(Runtime_ocaml_Runtime[31],cst_0$161), + _bQ$_= + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128],_bQ$_,_bQ__) + ?caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$162)}, + _bQY_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_yJ_,1)}, + _bQZ_=caml_call4(Runtime_ocaml_Runtime[63],_yK_,[0],_bQY_,_bQX_); + return _bQZ_} + catch(_bQ0_) + {_bQ0_ = caml_wrap_exception(_bQ0_); + if(_bQ0_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_yA_]; + throw _bQ0_}} + var + traitement_aide_finale_contrib= caml_call3 - (Runtime_ocaml_Runtime[28], - _nx_, - embed_situation_familiale_calc, - _a4y_); - } - catch(_byh_){ - var _a4v_ = caml_wrap_exception(_byh_); - if(_a4v_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nu_], 1); - throw caml_maybe_attach_backtrace(_a4v_, 0); - } - var - _a4z_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _ny_, calcul_nombre_parts_accession_), - [0, calcul_nombre_parts_dot_nombre, calcul_nombre_parts_dot_situat]), - result = caml_call2(Runtime_ocaml_Runtime[27], _nz_, _a4z_), - calcul_nombre_parts_dot_n_nomb = result[1]; - try{ - var - _a4B_ = function(param){return date_courante;}, - _a4C_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _nB_, 1); - }, - _a4D_ = caml_call4(Runtime_ocaml_Runtime[63], _nC_, [0], _a4C_, _a4B_), - contributions_sociales_dot_dat = + (Runtime_ocaml_Runtime[28],_yL_,Runtime_ocaml_Runtime[10],_bQF_); + try + {var + _bQG_= + function(param) + {var + _bQV_= + caml_call2 + (Runtime_ocaml_Runtime[98], + equivalence_loyer_eligible, + equivalence_loyer_minimale), + aide_finale= + caml_call2 + (Runtime_ocaml_Runtime[104], + _bQV_, + coefficient_prise_en_charge_d8$1), + _bQW_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$163); + return caml_call2(Runtime_ocaml_Runtime[113],aide_finale,_bQW_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$164) + :aide_finale}, + _bQH_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_yN_,1)}, + _bQI_=caml_call4(Runtime_ocaml_Runtime[63],_yO_,[0],_bQH_,_bQG_)} + catch(_bQU_) + {_bQU_ = caml_wrap_exception(_bQU_); + if(_bQU_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_yM_]; + throw _bQU_} + var + aide_finale_formule= caml_call3 - (Runtime_ocaml_Runtime[28], _nD_, Runtime_ocaml_Runtime[16], _a4D_); - } - catch(_byg_){ - var _a4A_ = caml_wrap_exception(_byg_); - if(_a4A_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nA_], 1); - throw caml_maybe_attach_backtrace(_a4A_, 0); - } - var - _a4E_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _nE_, contributions_sociales_aides_p), - [0, contributions_sociales_dot_dat]), - result$0 = caml_call2(Runtime_ocaml_Runtime[27], _nF_, _a4E_), - contributions_sociales_dot_mon = result$0[1]; - try{ - var - _a4G_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_416); - }, - _a4H_ = - function(param){ - var - _bye_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _byf_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bye_); - return caml_call2(Runtime_ocaml_Runtime[29], _nH_, _byf_); - }, - _a4I_ = caml_call4(Runtime_ocaml_Runtime[63], _nI_, [0], _a4H_, _a4G_); - } - catch(_byd_){ - var _a4F_ = caml_wrap_exception(_byd_); - if(_a4F_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nG_], 1); - throw caml_maybe_attach_backtrace(_a4F_, 0); - } - var - taux_tranche_superieure_d832_1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _nJ_, Runtime_ocaml_Runtime[15], _a4I_); - try{ - var - _a4K_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_208$0); - }, - _a4L_ = - function(param){ - var - _byb_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _byc_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _byb_); - return caml_call2(Runtime_ocaml_Runtime[29], _nL_, _byc_); - }, - _a4M_ = caml_call4(Runtime_ocaml_Runtime[63], _nM_, [0], _a4L_, _a4K_); - } - catch(_bya_){ - var _a4J_ = caml_wrap_exception(_bya_); - if(_a4J_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nK_], 1); - throw caml_maybe_attach_backtrace(_a4J_, 0); - } - var - taux_tranche_inferieure_d832_1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _nN_, Runtime_ocaml_Runtime[15], _a4M_); - try{ - var - _a4O_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_560085); - }, - _a4P_ = - function(param){ - var - _bx__ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bx$_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bx__); - return caml_call2(Runtime_ocaml_Runtime[29], _nP_, _bx$_); - }, - _a4Q_ = caml_call4(Runtime_ocaml_Runtime[63], _nQ_, [0], _a4P_, _a4O_); - } - catch(_bx9_){ - var _a4N_ = caml_wrap_exception(_bx9_); - if(_a4N_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nO_], 1); - throw caml_maybe_attach_backtrace(_a4N_, 0); - } - var - montant_limite_tranches_d832_1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _nR_, Runtime_ocaml_Runtime[13], _a4Q_); - try{ - var - _a4S_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_16_25); - }, - _a4T_ = - function(param){ - var - _bx7_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bx8_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bx7_); - return caml_call2(Runtime_ocaml_Runtime[29], _nT_, _bx8_); - }, - _a4U_ = caml_call4(Runtime_ocaml_Runtime[63], _nU_, [0], _a4T_, _a4S_); - } - catch(_bx6_){ - var _a4R_ = caml_wrap_exception(_bx6_); - if(_a4R_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nS_], 1); - throw caml_maybe_attach_backtrace(_a4R_, 0); - } - var - coefficient_multiplicateur_d83 = - caml_call3 - (Runtime_ocaml_Runtime[28], _nV_, Runtime_ocaml_Runtime[15], _a4U_); - try{ - var - _a4W_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_2211133); - }, - _a4X_ = - function(param){ - var - _bx4_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bx5_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bx4_); - return caml_call2(Runtime_ocaml_Runtime[29], _nX_, _bx5_); - }, - _a4Y_ = caml_call4(Runtime_ocaml_Runtime[63], _nY_, [0], _a4X_, _a4W_); - } - catch(_bx3_){ - var _a4V_ = caml_wrap_exception(_bx3_); - if(_a4V_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _nW_], 1); - throw caml_maybe_attach_backtrace(_a4V_, 0); - } - var - coefficient_multiplicateur_d83$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _nZ_, Runtime_ocaml_Runtime[13], _a4Y_); - try{ - var - _a40_ = - function(param){ - if(0 === anciennete_logement[0]){ - var _bx1_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 10, 1); - return caml_call2 - (Runtime_ocaml_Runtime[120], date_signature_pret, _bx1_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0226) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0234); - } - var ameliore_par_occupant = anciennete_logement[1]; - if(0 === ameliore_par_occupant[0]) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0172); - var _bx2_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 10, 1); - return caml_call2 - (Runtime_ocaml_Runtime[120], date_signature_pret, _bx2_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0226$0) - : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0234$0); - }, - _a41_ = - function(param){ - var - _bxZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bx0_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxZ_); - return caml_call2(Runtime_ocaml_Runtime[29], _n1_, _bx0_); - }, - _a42_ = caml_call4(Runtime_ocaml_Runtime[63], _n2_, [0], _a41_, _a40_); - } - catch(_bxY_){ - var _a4Z_ = caml_wrap_exception(_bxY_); - if(_a4Z_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _n0_], 1); - throw caml_maybe_attach_backtrace(_a4Z_, 0); - } - var - coefficient_multiplicateur_d83$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _n3_, Runtime_ocaml_Runtime[15], _a42_); - try{ - var - _a44_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$2); - }, - _a45_ = - function(param){ - var - _bxW_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bxX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxW_); - return caml_call2(Runtime_ocaml_Runtime[29], _n5_, _bxX_); - }, - _a46_ = caml_call4(Runtime_ocaml_Runtime[63], _n6_, [0], _a45_, _a44_); - } - catch(_bxV_){ - var _a43_ = caml_wrap_exception(_bxV_); - if(_a43_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _n4_], 1); - throw caml_maybe_attach_backtrace(_a43_, 0); - } - var - montant_minimal_aide_d832_10 = - caml_call3 - (Runtime_ocaml_Runtime[28], _n7_, Runtime_ocaml_Runtime[13], _a46_); - try{ - var - _a48_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_500$1); - }, - _a49_ = - function(param){ - var - _bxT_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bxU_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxT_); - return caml_call2(Runtime_ocaml_Runtime[29], _n9_, _bxU_); - }, - _a4__ = caml_call4(Runtime_ocaml_Runtime[63], _n__, [0], _a49_, _a48_); - } - catch(_bxS_){ - var _a47_ = caml_wrap_exception(_bxS_); - if(_a47_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _n8_], 1); - throw caml_maybe_attach_backtrace(_a47_, 0); - } - var - montant_forfaitaire_d832_10 = - caml_call3 - (Runtime_ocaml_Runtime[28], _n$_, Runtime_ocaml_Runtime[13], _a4__); - try{ - var - _a5a_ = - function(param){ - function _bxj_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bxk_(param){return 0;} - function _bxl_(param){ - function _bxH_(param){ - var - _bxO_ = - caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bxP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$1), - _bxQ_ = caml_call2(Runtime_ocaml_Runtime[104], _bxP_, _bxO_), - _bxR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399$1); - return caml_call2(Runtime_ocaml_Runtime[93], _bxR_, _bxQ_); - } - function _bxI_(param){ - var - _bxJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bxK_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxJ_), - _bxL_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bxM_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bxL_), - _bxN_ = caml_call2(Runtime_ocaml_Runtime[83], _bxM_, _bxK_); - return caml_call2(Runtime_ocaml_Runtime[29], _ob_, _bxN_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oc_, [0], _bxI_, _bxH_); - } - function _bxm_(param){ - function _bxw_(param){ - var - _bxD_ = - caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bxE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$1), - _bxF_ = caml_call2(Runtime_ocaml_Runtime[104], _bxE_, _bxD_), - _bxG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422$1); - return caml_call2(Runtime_ocaml_Runtime[93], _bxG_, _bxF_); - } - function _bxx_(param){ - var - _bxy_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bxz_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bxy_), - _bxA_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bxB_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxA_), - _bxC_ = caml_call2(Runtime_ocaml_Runtime[83], _bxB_, _bxz_); - return caml_call2(Runtime_ocaml_Runtime[29], _od_, _bxC_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oe_, [0], _bxx_, _bxw_); - } - var - _bxn_ = - [0, - function(param){ - function _bxo_(param){ - var - _bxs_ = + (Runtime_ocaml_Runtime[28],_yP_,Runtime_ocaml_Runtime[13],_bQI_); + function _bQJ_(aide_finale) + {try + {var + _bQN_= + function(param) + {var + _bQR_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _yR_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bQS_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _yS_, + traitement_aide_finale_contrib), + _bQR_), + _bQT_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _yT_, + Runtime_ocaml_Runtime[13], + _bQS_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_yU_,_bQT_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d823_24) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$165) + :aide_finale$0}, + _bQO_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_yV_,1)}, + _bQP_=caml_call4(Runtime_ocaml_Runtime[63],_yW_,[0],_bQO_,_bQN_); + return _bQP_} + catch(_bQQ_) + {_bQQ_ = caml_wrap_exception(_bQQ_); + if(_bQQ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_yQ_]; + throw _bQQ_}} + var + traitement_aide_finale_montant= + caml_call3 + (Runtime_ocaml_Runtime[28],_yX_,Runtime_ocaml_Runtime[10],_bQJ_); + try + {var + _bQK_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bQL_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bQK_)} + catch(_bQM_) + {_bQM_ = caml_wrap_exception(_bQM_); + if(_bQM_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_yY_]; + throw _bQM_} + if(_bQL_) + return [0, + coefficient_multiplicateur_d83, + coefficient_r_d832_25, + n_nombre_parts_d832_25$0, + equivalence_loyer_eligible, + plafond_equivalence_loyer_elig, + equivalence_loyer_minimale, + coefficient_prise_en_charge_d8$1, + aide_finale_formule, + traitement_aide_finale_montant]; + throw [0,Runtime_ocaml_Runtime[3],_yZ_]} + function calcul_aide_personnalisee_loge$1(calcul_aide_personnalisee_loge) + {var + mensualite_principale=calcul_aide_personnalisee_loge[1], + ressources_menage_arrondies=calcul_aide_personnalisee_loge[2], + nombre_personnes_a_charge=calcul_aide_personnalisee_loge[3], + situation_familiale_calcul_apl=calcul_aide_personnalisee_loge[4], + type_travaux_logement=calcul_aide_personnalisee_loge[5], + date_signature_pret=calcul_aide_personnalisee_loge[6], + local_habite_premiere_fois_ben=calcul_aide_personnalisee_loge[7], + date_entree_logement=calcul_aide_personnalisee_loge[8], + copropriete=calcul_aide_personnalisee_loge[9], + situation_r822_11_13_17=calcul_aide_personnalisee_loge[10], + zone=calcul_aide_personnalisee_loge[11], + type_pret=calcul_aide_personnalisee_loge[12], + anciennete_logement=calcul_aide_personnalisee_loge[13], + date_courante=calcul_aide_personnalisee_loge[14]; + try + {var + _bjU_= + function(param) + {var + _bPi_=caml_call1(Runtime_ocaml_Runtime[39],cst_6_55957), + _bPj_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$80); + return caml_call2(Runtime_ocaml_Runtime[107],_bPj_,_bPi_)}, + _bjV_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_y1_,1)}, + _bjW_=caml_call4(Runtime_ocaml_Runtime[63],_y2_,[0],_bjV_,_bjU_)} + catch(_bPh_) + {_bPh_ = caml_wrap_exception(_bPh_); + if(_bPh_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_y0_]; + throw _bPh_} + var + taux_francs_vers_euros= + caml_call3 + (Runtime_ocaml_Runtime[28],_y3_,Runtime_ocaml_Runtime[15],_bjW_); + try + {var + _bjX_=function(param){return nombre_personnes_a_charge}, + _bjY_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_y5_,1)}, + _bjZ_=caml_call4(Runtime_ocaml_Runtime[63],_y6_,[0],_bjY_,_bjX_), + calcul_nombre_parts_dot_nombre= + caml_call3 + (Runtime_ocaml_Runtime[28],_y7_,Runtime_ocaml_Runtime[14],_bjZ_)} + catch(_bPg_) + {_bPg_ = caml_wrap_exception(_bPg_); + if(_bPg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_y4_]; + throw _bPg_} + try + {var + _bj0_=function(param){return situation_familiale_calcul_apl}, + _bj1_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_y9_,1)}, + _bj2_=caml_call4(Runtime_ocaml_Runtime[63],_y__,[0],_bj1_,_bj0_), + calcul_nombre_parts_dot_situat= + caml_call3 + (Runtime_ocaml_Runtime[28], + _y$_, + embed_situation_familiale_calc, + _bj2_)} + catch(_bPf_) + {_bPf_ = caml_wrap_exception(_bPf_); + if(_bPf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_y8_]; + throw _bPf_} + var + _bj3_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_za_,calcul_nombre_parts_accession_), + [0,calcul_nombre_parts_dot_nombre,calcul_nombre_parts_dot_situat]), + result=caml_call2(Runtime_ocaml_Runtime[27],_zb_,_bj3_), + calcul_nombre_parts_dot_n_nomb=result[1]; + try + {var + _bj4_=function(param){return date_courante}, + _bj5_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_zd_,1)}, + _bj6_=caml_call4(Runtime_ocaml_Runtime[63],_ze_,[0],_bj5_,_bj4_), + contributions_sociales_dot_dat= + caml_call3 + (Runtime_ocaml_Runtime[28],_zf_,Runtime_ocaml_Runtime[16],_bj6_)} + catch(_bPe_) + {_bPe_ = caml_wrap_exception(_bPe_); + if(_bPe_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_zc_]; + throw _bPe_} + var + _bj7_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_zg_,contributions_sociales_aides_p), + [0,contributions_sociales_dot_dat]), + result$0=caml_call2(Runtime_ocaml_Runtime[27],_zh_,_bj7_), + contributions_sociales_dot_mon=result$0[1]; + try + {var + _bj8_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_416)}, + _bj9_= + function(param) + {var + _bPc_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bPd_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bPc_); + return caml_call2(Runtime_ocaml_Runtime[29],_zj_,_bPd_)}, + _bj__=caml_call4(Runtime_ocaml_Runtime[63],_zk_,[0],_bj9_,_bj8_)} + catch(_bPb_) + {_bPb_ = caml_wrap_exception(_bPb_); + if(_bPb_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_zi_]; + throw _bPb_} + var + taux_tranche_superieure_d832_1= + caml_call3 + (Runtime_ocaml_Runtime[28],_zl_,Runtime_ocaml_Runtime[15],_bj__); + try + {var + _bj$_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_208$0)}, + _bka_= + function(param) + {var + _bO$_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bPa_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bO$_); + return caml_call2(Runtime_ocaml_Runtime[29],_zn_,_bPa_)}, + _bkb_=caml_call4(Runtime_ocaml_Runtime[63],_zo_,[0],_bka_,_bj$_)} + catch(_bO__) + {_bO__ = caml_wrap_exception(_bO__); + if(_bO__ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_zm_]; + throw _bO__} + var + taux_tranche_inferieure_d832_1= + caml_call3 + (Runtime_ocaml_Runtime[28],_zp_,Runtime_ocaml_Runtime[15],_bkb_); + try + {var + _bkc_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_560085)}, + _bkd_= + function(param) + {var + _bO8_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bO9_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bO8_); + return caml_call2(Runtime_ocaml_Runtime[29],_zr_,_bO9_)}, + _bke_=caml_call4(Runtime_ocaml_Runtime[63],_zs_,[0],_bkd_,_bkc_)} + catch(_bO7_) + {_bO7_ = caml_wrap_exception(_bO7_); + if(_bO7_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_zq_]; + throw _bO7_} + var + montant_limite_tranches_d832_1= + caml_call3 + (Runtime_ocaml_Runtime[28],_zt_,Runtime_ocaml_Runtime[13],_bke_); + try + {var + _bkf_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_16_25)}, + _bkg_= + function(param) + {var + _bO5_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bO6_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bO5_); + return caml_call2(Runtime_ocaml_Runtime[29],_zv_,_bO6_)}, + _bkh_=caml_call4(Runtime_ocaml_Runtime[63],_zw_,[0],_bkg_,_bkf_)} + catch(_bO4_) + {_bO4_ = caml_wrap_exception(_bO4_); + if(_bO4_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_zu_]; + throw _bO4_} + var + coefficient_multiplicateur_d83= + caml_call3 + (Runtime_ocaml_Runtime[28],_zx_,Runtime_ocaml_Runtime[15],_bkh_); + try + {var + _bki_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_2211133)}, + _bkj_= + function(param) + {var + _bO2_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bO3_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bO2_); + return caml_call2(Runtime_ocaml_Runtime[29],_zz_,_bO3_)}, + _bkk_=caml_call4(Runtime_ocaml_Runtime[63],_zA_,[0],_bkj_,_bki_)} + catch(_bO1_) + {_bO1_ = caml_wrap_exception(_bO1_); + if(_bO1_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_zy_]; + throw _bO1_} + var + coefficient_multiplicateur_d83$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_zB_,Runtime_ocaml_Runtime[13],_bkk_); + try + {var + _bkl_= + function(param) + {if(0 === anciennete_logement[0]) + {var _bOZ_=caml_call3(Runtime_ocaml_Runtime[57],1998,10,1); + return caml_call2 + (Runtime_ocaml_Runtime[120],date_signature_pret,_bOZ_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0226) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0234)} + var ameliore_par_occupant=anciennete_logement[1]; + if(0 === ameliore_par_occupant[0]) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0172); + var _bO0_=caml_call3(Runtime_ocaml_Runtime[57],1998,10,1); + return caml_call2 + (Runtime_ocaml_Runtime[120],date_signature_pret,_bO0_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0226$0) + :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0234$0)}, + _bkm_= + function(param) + {var + _bOX_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bOY_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOX_); + return caml_call2(Runtime_ocaml_Runtime[29],_zD_,_bOY_)}, + _bkn_=caml_call4(Runtime_ocaml_Runtime[63],_zE_,[0],_bkm_,_bkl_)} + catch(_bOW_) + {_bOW_ = caml_wrap_exception(_bOW_); + if(_bOW_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_zC_]; + throw _bOW_} + var + coefficient_multiplicateur_d83$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_zF_,Runtime_ocaml_Runtime[15],_bkn_); + try + {var + _bko_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$2)}, + _bkp_= + function(param) + {var + _bOU_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bOV_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOU_); + return caml_call2(Runtime_ocaml_Runtime[29],_zH_,_bOV_)}, + _bkq_=caml_call4(Runtime_ocaml_Runtime[63],_zI_,[0],_bkp_,_bko_)} + catch(_bOT_) + {_bOT_ = caml_wrap_exception(_bOT_); + if(_bOT_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_zG_]; + throw _bOT_} + var + montant_minimal_aide_d832_10= + caml_call3 + (Runtime_ocaml_Runtime[28],_zJ_,Runtime_ocaml_Runtime[13],_bkq_); + try + {var + _bkr_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$1)}, + _bks_= + function(param) + {var + _bOR_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bOS_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOR_); + return caml_call2(Runtime_ocaml_Runtime[29],_zL_,_bOS_)}, + _bkt_=caml_call4(Runtime_ocaml_Runtime[63],_zM_,[0],_bks_,_bkr_)} + catch(_bOQ_) + {_bOQ_ = caml_wrap_exception(_bOQ_); + if(_bOQ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_zK_]; + throw _bOQ_} + var + montant_forfaitaire_d832_10= + caml_call3 + (Runtime_ocaml_Runtime[28],_zN_,Runtime_ocaml_Runtime[13],_bkt_); + try + {var + _bku_= + function(param) + {function _bOh_(param){throw Runtime_ocaml_Runtime[2]} + function _bOi_(param){return 0} + function _bOj_(param) + {function _bOF_(param) + {var + _bOM_= caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bxt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$1), - _bxu_ = caml_call2(Runtime_ocaml_Runtime[104], _bxt_, _bxs_), - _bxv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612$1); - return caml_call2(Runtime_ocaml_Runtime[93], _bxv_, _bxu_); - } - function _bxp_(param){ - var - _bxq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bxr_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxq_); - return caml_call2(Runtime_ocaml_Runtime[29], _of_, _bxr_); - } + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bON_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$1), + _bOO_=caml_call2(Runtime_ocaml_Runtime[104],_bON_,_bOM_), + _bOP_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399$1); + return caml_call2(Runtime_ocaml_Runtime[93],_bOP_,_bOO_)} + function _bOG_(param) + {var + _bOH_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bOI_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOH_), + _bOJ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bOK_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bOJ_), + _bOL_=caml_call2(Runtime_ocaml_Runtime[83],_bOK_,_bOI_); + return caml_call2(Runtime_ocaml_Runtime[29],_zP_,_bOL_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _og_, [0], _bxp_, _bxo_); - }, - _bxm_, - _bxl_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _oh_, _bxn_, _bxk_, _bxj_); - }, - _a5b_ = function(param){return 1;}, - _a5c_ = - [0, - function(param){ - function _bwJ_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _bwK_(param){return 0;} - function _bwL_(param){ - function _bw9_(param){ + (Runtime_ocaml_Runtime[63],_zQ_,[0],_bOG_,_bOF_)} + function _bOk_(param) + {function _bOu_(param) + {var + _bOB_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bOC_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$1), + _bOD_=caml_call2(Runtime_ocaml_Runtime[104],_bOC_,_bOB_), + _bOE_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422$1); + return caml_call2(Runtime_ocaml_Runtime[93],_bOE_,_bOD_)} + function _bOv_(param) + {var + _bOw_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bOx_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bOw_), + _bOy_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bOz_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOy_), + _bOA_=caml_call2(Runtime_ocaml_Runtime[83],_bOz_,_bOx_); + return caml_call2(Runtime_ocaml_Runtime[29],_zR_,_bOA_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_zS_,[0],_bOv_,_bOu_)} var - _bxf_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bxg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$2), - _bxh_ = caml_call2(Runtime_ocaml_Runtime[104], _bxg_, _bxf_), - _bxi_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_2699$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_5399$2); - return caml_call2(Runtime_ocaml_Runtime[93], _bxi_, _bxh_); - } - function _bw__(param){ - var - _bw$_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bxa_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bw$_), - _bxb_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bxc_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bxb_), - _bxd_ = caml_call2(Runtime_ocaml_Runtime[83], _bxc_, _bxa_), - _bxe_ = caml_call2(Runtime_ocaml_Runtime[83], _bxd_, copropriete); - return caml_call2(Runtime_ocaml_Runtime[29], _oi_, _bxe_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oj_, [0], _bw__, _bw9_); - } - function _bwM_(param){ - function _bwX_(param){ - var - _bw5_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bw6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$2), - _bw7_ = caml_call2(Runtime_ocaml_Runtime[104], _bw6_, _bw5_), - _bw8_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_2710$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_5422$2); - return caml_call2(Runtime_ocaml_Runtime[93], _bw8_, _bw7_); - } - function _bwY_(param){ - var - _bwZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bw0_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bwZ_), - _bw1_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _bw2_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bw1_), - _bw3_ = caml_call2(Runtime_ocaml_Runtime[83], _bw2_, _bw0_), - _bw4_ = caml_call2(Runtime_ocaml_Runtime[83], _bw3_, copropriete); - return caml_call2(Runtime_ocaml_Runtime[29], _ok_, _bw4_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ol_, [0], _bwY_, _bwX_); - } - var - _bwN_ = - [0, - function(param){ - function _bwO_(param){ - var - _bwT_ = + _bOl_= + [0, + function(param) + {function _bOm_(param) + {var + _bOq_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bOr_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$1), + _bOs_=caml_call2(Runtime_ocaml_Runtime[104],_bOr_,_bOq_), + _bOt_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$1); + return caml_call2(Runtime_ocaml_Runtime[93],_bOt_,_bOs_)} + function _bOn_(param) + {var + _bOo_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bOp_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOo_); + return caml_call2(Runtime_ocaml_Runtime[29],_zT_,_bOp_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_zU_,[0],_bOn_,_bOm_)}, + _bOk_, + _bOj_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_zV_,_bOl_,_bOi_,_bOh_)}, + _bkv_=function(param){return 1}, + _bkw_= + [0, + function(param) + {function _bNH_(param){throw Runtime_ocaml_Runtime[2]} + function _bNI_(param){return 0} + function _bNJ_(param) + {function _bN7_(param) + {var + _bOd_= caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _bwU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$2), - _bwV_ = caml_call2(Runtime_ocaml_Runtime[104], _bwU_, _bwT_), - _bwW_ = + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bOe_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$2), + _bOf_=caml_call2(Runtime_ocaml_Runtime[104],_bOe_,_bOd_), + _bOg_= 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_2805$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_5612$2); - return caml_call2(Runtime_ocaml_Runtime[93], _bwW_, _bwV_); - } - function _bwP_(param){ - var - _bwQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _bwR_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bwQ_), - _bwS_ = - caml_call2(Runtime_ocaml_Runtime[83], _bwR_, copropriete); - return caml_call2(Runtime_ocaml_Runtime[29], _om_, _bwS_); - } + ?caml_call1(Runtime_ocaml_Runtime[31],cst_2699$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_5399$2); + return caml_call2(Runtime_ocaml_Runtime[93],_bOg_,_bOf_)} + function _bN8_(param) + {var + _bN9_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bN__= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bN9_), + _bN$_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bOa_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bN$_), + _bOb_=caml_call2(Runtime_ocaml_Runtime[83],_bOa_,_bN__), + _bOc_= + caml_call2(Runtime_ocaml_Runtime[83],_bOb_,copropriete); + return caml_call2(Runtime_ocaml_Runtime[29],_zW_,_bOc_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _on_, [0], _bwP_, _bwO_); - }, - _bwM_, - _bwL_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _oo_, _bwN_, _bwK_, _bwJ_); - }], - _a5d_ = caml_call4(Runtime_ocaml_Runtime[63], _op_, _a5c_, _a5b_, _a5a_); - } - catch(_bwI_){ - var _a4$_ = caml_wrap_exception(_bwI_); - if(_a4$_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _oa_], 1); - throw caml_maybe_attach_backtrace(_a4$_, 0); - } - var - montant_forfaitaire_charges_d8 = - caml_call3 - (Runtime_ocaml_Runtime[28], _oq_, Runtime_ocaml_Runtime[13], _a5d_); - function _a5e_(date_signature_pret){ - try{ - var - _a8H_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _a8I_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _os_, 0); - }, - _a8J_ = - function(param){ - function _bus_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _but_(param){return 0;} - function _buu_(param){ - function _bwb_(param){ - switch(zone[0]){ - case 0: - var _bwm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$98); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bwm_)) - var - _bwn_ = + (Runtime_ocaml_Runtime[63],_zX_,[0],_bN8_,_bN7_)} + function _bNK_(param) + {function _bNV_(param) + {var + _bN3_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bN4_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$2), + _bN5_=caml_call2(Runtime_ocaml_Runtime[104],_bN4_,_bN3_), + _bN6_= 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_148100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_178700); - else - var - _bwo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$52), - _bwp_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bwo_), - _bwq_ = caml_call1(Runtime_ocaml_Runtime[69], _bwp_), - _bwr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30600), - _bws_ = caml_call2(Runtime_ocaml_Runtime[104], _bwr_, _bwq_), - _bwt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_209300), - _bwn_ = caml_call2(Runtime_ocaml_Runtime[93], _bwt_, _bws_); - break; - case 1: - var _bwu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$99); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bwu_)) - var - _bwn_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_132000) - : caml_call1(Runtime_ocaml_Runtime[31], cst_158900); - else - var - _bwv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$53), - _bww_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bwv_), - _bwx_ = caml_call1(Runtime_ocaml_Runtime[69], _bww_), - _bwy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26900), - _bwz_ = caml_call2(Runtime_ocaml_Runtime[104], _bwy_, _bwx_), - _bwA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_185800), - _bwn_ = caml_call2(Runtime_ocaml_Runtime[93], _bwA_, _bwz_); - break; - default: - var _bwB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$100); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bwB_)) - var - _bwn_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_123300) - : caml_call1(Runtime_ocaml_Runtime[31], cst_147900); - else - var - _bwC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$54), - _bwD_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bwC_), - _bwE_ = caml_call1(Runtime_ocaml_Runtime[69], _bwD_), - _bwF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_24600), - _bwG_ = caml_call2(Runtime_ocaml_Runtime[104], _bwF_, _bwE_), - _bwH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_172500), - _bwn_ = caml_call2(Runtime_ocaml_Runtime[93], _bwH_, _bwG_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _bwn_, taux_francs_vers_euros); - } - function _bwc_(param){ - switch(type_pret[0]){ - case 0: - var _bwd_ = 1; break; - case 1: - var _bwd_ = 0; break; - case 2: - var _bwd_ = 0; break; - case 3: - var _bwd_ = 0; break; - default: var _bwd_ = 0; - } - var - _bwe_ = 0 === anciennete_logement[0] ? 0 : 1, - _bwf_ = caml_call2(Runtime_ocaml_Runtime[83], _bwe_, _bwd_), - _bwg_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), - _bwh_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bwg_), - _bwi_ = caml_call2(Runtime_ocaml_Runtime[83], _bwh_, _bwf_), - _bwj_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bwk_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bwj_), - _bwl_ = caml_call2(Runtime_ocaml_Runtime[83], _bwk_, _bwi_); - return caml_call2(Runtime_ocaml_Runtime[29], _ot_, _bwl_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ou_, [0], _bwc_, _bwb_); - } - function _buv_(param){ - function _bvG_(param){ - switch(zone[0]){ - case 0: - var _bvR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$101); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bvR_)) - var - _bvS_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_184000) - : caml_call1(Runtime_ocaml_Runtime[31], cst_220000); - else - var - _bvT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$55), - _bvU_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bvT_), - _bvV_ = caml_call1(Runtime_ocaml_Runtime[69], _bvU_), - _bvW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38000), - _bvX_ = caml_call2(Runtime_ocaml_Runtime[104], _bvW_, _bvV_), - _bvY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_260000), - _bvS_ = caml_call2(Runtime_ocaml_Runtime[93], _bvY_, _bvX_); - break; - case 1: - var _bvZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$102); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bvZ_)) - var - _bvS_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_164200) - : caml_call1(Runtime_ocaml_Runtime[31], cst_197700); - else - var - _bv0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$56), - _bv1_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bv0_), - _bv2_ = caml_call1(Runtime_ocaml_Runtime[69], _bv1_), - _bv3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33500), - _bv4_ = caml_call2(Runtime_ocaml_Runtime[104], _bv3_, _bv2_), - _bv5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_231200), - _bvS_ = caml_call2(Runtime_ocaml_Runtime[93], _bv5_, _bv4_); - break; - default: - var _bv6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$103); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bv6_)) - var - _bvS_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_153200) - : caml_call1(Runtime_ocaml_Runtime[31], cst_183700); - else - var - _bv7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$57), - _bv8_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bv7_), - _bv9_ = caml_call1(Runtime_ocaml_Runtime[69], _bv8_), - _bv__ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500$0), - _bv$_ = caml_call2(Runtime_ocaml_Runtime[104], _bv__, _bv9_), - _bwa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_214200), - _bvS_ = caml_call2(Runtime_ocaml_Runtime[93], _bwa_, _bv$_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _bvS_, taux_francs_vers_euros); - } - function _bvH_(param){ - switch(type_pret[0]){ - case 0: - var _bvI_ = 1; break; - case 1: - var _bvI_ = 0; break; - case 2: - var _bvI_ = 0; break; - case 3: - var _bvI_ = 0; break; - default: var _bvI_ = 0; - } - var - _bvJ_ = 0 === anciennete_logement[0] ? 1 : 0, - _bvK_ = caml_call2(Runtime_ocaml_Runtime[83], _bvJ_, _bvI_), - _bvL_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), - _bvM_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bvL_), - _bvN_ = caml_call2(Runtime_ocaml_Runtime[83], _bvM_, _bvK_), - _bvO_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bvP_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bvO_), - _bvQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bvP_, _bvN_); - return caml_call2(Runtime_ocaml_Runtime[29], _ov_, _bvQ_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ow_, [0], _bvH_, _bvG_); - } - function _buw_(param){ - function _bu8_(param){ - switch(zone[0]){ - case 0: - var _bvk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$104); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bvk_)) - var - _bvl_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_167800) - : caml_call1(Runtime_ocaml_Runtime[31], cst_202500); - else - var - _bvm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$58), - _bvn_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bvm_), - _bvo_ = caml_call1(Runtime_ocaml_Runtime[69], _bvn_), - _bvp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34700), - _bvq_ = caml_call2(Runtime_ocaml_Runtime[104], _bvp_, _bvo_), - _bvr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_237200), - _bvl_ = caml_call2(Runtime_ocaml_Runtime[93], _bvr_, _bvq_); - break; - case 1: - var _bvs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$105); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bvs_)) - var - _bvl_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_149600) - : caml_call1(Runtime_ocaml_Runtime[31], cst_180100); - else - var - _bvt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$59), - _bvu_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bvt_), - _bvv_ = caml_call1(Runtime_ocaml_Runtime[69], _bvu_), - _bvw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500$1), - _bvx_ = caml_call2(Runtime_ocaml_Runtime[104], _bvw_, _bvv_), - _bvy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210600), - _bvl_ = caml_call2(Runtime_ocaml_Runtime[93], _bvy_, _bvx_); - break; - default: - var _bvz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$106); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bvz_)) - var - _bvl_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_139700) - : caml_call1(Runtime_ocaml_Runtime[31], cst_167600); - else - var - _bvA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$60), - _bvB_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bvA_), - _bvC_ = caml_call1(Runtime_ocaml_Runtime[69], _bvB_), - _bvD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27900), - _bvE_ = caml_call2(Runtime_ocaml_Runtime[104], _bvD_, _bvC_), - _bvF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_195500), - _bvl_ = caml_call2(Runtime_ocaml_Runtime[93], _bvF_, _bvE_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _bvl_, taux_francs_vers_euros); - } - function _bu9_(param){ - switch(type_pret[0]){ - case 0: - var _bu__ = 1; break; - case 1: - var _bu__ = 0; break; - case 2: - var _bu__ = 0; break; - case 3: - var _bu__ = 0; break; - default: var _bu__ = 0; - } - var - _bu$_ = 0 === anciennete_logement[0] ? 0 : 1, - _bva_ = caml_call2(Runtime_ocaml_Runtime[83], _bu$_, _bu__), - _bvb_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), - _bvc_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bvb_), - _bvd_ = caml_call2(Runtime_ocaml_Runtime[83], _bvc_, _bva_), - _bve_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), - _bvf_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bve_), - _bvg_ = caml_call2(Runtime_ocaml_Runtime[83], _bvf_, _bvd_), - _bvh_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bvi_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bvh_), - _bvj_ = caml_call2(Runtime_ocaml_Runtime[83], _bvi_, _bvg_); - return caml_call2(Runtime_ocaml_Runtime[29], _ox_, _bvj_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oy_, [0], _bu9_, _bu8_); - } - var - _bux_ = - [0, - function(param){ - function _buy_(param){ - switch(zone[0]){ - case 0: - var - _buM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$107); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _buM_)) - var - _buN_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_208500) - : caml_call1(Runtime_ocaml_Runtime[31], cst_251500); - else - var - _buO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$61), - _buP_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _buO_), - _buQ_ = caml_call1(Runtime_ocaml_Runtime[69], _buP_), - _buR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43000), - _buS_ = caml_call2(Runtime_ocaml_Runtime[104], _buR_, _buQ_), - _buT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_294500), - _buN_ = caml_call2(Runtime_ocaml_Runtime[93], _buT_, _buS_); - break; - case 1: - var - _buU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$108); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _buU_)) - var - _buN_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_186000) - : caml_call1(Runtime_ocaml_Runtime[31], cst_223900); - else - var - _buV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$62), - _buW_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _buV_), - _buX_ = caml_call1(Runtime_ocaml_Runtime[69], _buW_), - _buY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37900), - _buZ_ = caml_call2(Runtime_ocaml_Runtime[104], _buY_, _buX_), - _bu0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_261800), - _buN_ = caml_call2(Runtime_ocaml_Runtime[93], _bu0_, _buZ_); - break; - default: - var - _bu1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$109); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bu1_)) - var - _buN_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_173600) - : caml_call1(Runtime_ocaml_Runtime[31], cst_208200); - else - var - _bu2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$63), - _bu3_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bu2_), - _bu4_ = caml_call1(Runtime_ocaml_Runtime[69], _bu3_), - _bu5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35600), - _bu6_ = caml_call2(Runtime_ocaml_Runtime[104], _bu5_, _bu4_), - _bu7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800), - _buN_ = caml_call2(Runtime_ocaml_Runtime[93], _bu7_, _bu6_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _buN_, taux_francs_vers_euros); - } - function _buz_(param){ - switch(type_pret[0]){ - case 0: - var _buA_ = 1; break; - case 1: - var _buA_ = 0; break; - case 2: - var _buA_ = 0; break; - case 3: - var _buA_ = 0; break; - default: var _buA_ = 0; - } - var - _buB_ = 0 === anciennete_logement[0] ? 1 : 0, - _buC_ = caml_call2(Runtime_ocaml_Runtime[83], _buB_, _buA_), - _buD_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), - _buE_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _buD_), - _buF_ = caml_call2(Runtime_ocaml_Runtime[83], _buE_, _buC_), - _buG_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), - _buH_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _buG_), - _buI_ = caml_call2(Runtime_ocaml_Runtime[83], _buH_, _buF_), - _buJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _buK_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _buJ_), - _buL_ = caml_call2(Runtime_ocaml_Runtime[83], _buK_, _buI_); - return caml_call2(Runtime_ocaml_Runtime[29], _oz_, _buL_); - } + ?caml_call1(Runtime_ocaml_Runtime[31],cst_2710$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_5422$2); + return caml_call2(Runtime_ocaml_Runtime[93],_bN6_,_bN5_)} + function _bNW_(param) + {var + _bNX_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bNY_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bNX_), + _bNZ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bN0_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bNZ_), + _bN1_=caml_call2(Runtime_ocaml_Runtime[83],_bN0_,_bNY_), + _bN2_= + caml_call2(Runtime_ocaml_Runtime[83],_bN1_,copropriete); + return caml_call2(Runtime_ocaml_Runtime[29],_zY_,_bN2_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _oA_, [0], _buz_, _buy_); - }, - _buw_, - _buv_, - _buu_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _oB_, _bux_, _but_, _bus_); - }, - _a8K_ = - [0, - function(param){ - function _a8N_(param){ - function _a9e_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _a9f_(param){return 0;} - function _a9g_(param){ - function _btV_(param){ - switch(zone[0]){ - case 0: - var _bt9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$110); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bt9_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29986) - : caml_call1(Runtime_ocaml_Runtime[31], cst_36187); - var - _bt__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$64), - _bt$_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bt__), - _bua_ = caml_call1(Runtime_ocaml_Runtime[69], _bt$_), - _bub_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6201), - _buc_ = caml_call2(Runtime_ocaml_Runtime[104], _bub_, _bua_), - _bud_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42386); - return caml_call2(Runtime_ocaml_Runtime[93], _bud_, _buc_); - case 1: - var _bue_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$111); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bue_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26730) - : caml_call1(Runtime_ocaml_Runtime[31], cst_32193); - var - _buf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$65), - _bug_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _buf_), - _buh_ = caml_call1(Runtime_ocaml_Runtime[69], _bug_), - _bui_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5463), - _buj_ = caml_call2(Runtime_ocaml_Runtime[104], _bui_, _buh_), - _buk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37656); - return caml_call2(Runtime_ocaml_Runtime[93], _buk_, _buj_); - default: - var _bul_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$112); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bul_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24964) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29948); - var - _bum_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$66), - _bun_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bum_), - _buo_ = caml_call1(Runtime_ocaml_Runtime[69], _bun_), - _bup_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4986), - _buq_ = caml_call2(Runtime_ocaml_Runtime[104], _bup_, _buo_), - _bur_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34934); - return caml_call2(Runtime_ocaml_Runtime[93], _bur_, _buq_); - } - } - function _btW_(param){ - switch(type_pret[0]){ - case 0: - var _btX_ = 0; break; - case 1: - var _btX_ = 1; break; - case 2: - var _btX_ = 0; break; - case 3: - var _btX_ = 0; break; - default: var _btX_ = 0; - } - var - _btY_ = 0 === anciennete_logement[0] ? 0 : 1, - _btZ_ = caml_call2(Runtime_ocaml_Runtime[83], _btY_, _btX_), - _bt0_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), - _bt1_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bt0_), - _bt2_ = caml_call2(Runtime_ocaml_Runtime[83], _bt1_, _btZ_), - _bt3_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bt4_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bt3_), - _bt5_ = caml_call2(Runtime_ocaml_Runtime[83], _bt4_, _bt2_), - _bt6_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bt7_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bt6_), - _bt8_ = caml_call2(Runtime_ocaml_Runtime[83], _bt7_, _bt5_); - return caml_call2(Runtime_ocaml_Runtime[29], _oC_, _bt8_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oD_, [0], _btW_, _btV_); - } - function _a9h_(param){ - function _btm_(param){ - switch(zone[0]){ - case 0: - var _btA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$113); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _btA_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_37252) - : caml_call1(Runtime_ocaml_Runtime[31], cst_44941); - var - _btB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$67), - _btC_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _btB_), - _btD_ = caml_call1(Runtime_ocaml_Runtime[69], _btC_), - _btE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7687), - _btF_ = caml_call2(Runtime_ocaml_Runtime[104], _btE_, _btD_), - _btG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52629); - return caml_call2(Runtime_ocaml_Runtime[93], _btG_, _btF_); - case 1: - var _btH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$114); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _btH_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_33244) - : caml_call1(Runtime_ocaml_Runtime[31], cst_40013); - var - _btI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$68), - _btJ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _btI_), - _btK_ = caml_call1(Runtime_ocaml_Runtime[69], _btJ_), - _btL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6768), - _btM_ = caml_call2(Runtime_ocaml_Runtime[104], _btL_, _btK_), - _btN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46783); - return caml_call2(Runtime_ocaml_Runtime[93], _btN_, _btM_); - default: - var _btO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$115); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _btO_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31036) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37215); - var - _btP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$69), - _btQ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _btP_), - _btR_ = caml_call1(Runtime_ocaml_Runtime[69], _btQ_), - _btS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6179), - _btT_ = caml_call2(Runtime_ocaml_Runtime[104], _btS_, _btR_), - _btU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43394); - return caml_call2(Runtime_ocaml_Runtime[93], _btU_, _btT_); - } - } - function _btn_(param){ - switch(type_pret[0]){ - case 0: - var _bto_ = 0; break; - case 1: - var _bto_ = 1; break; - case 2: - var _bto_ = 0; break; - case 3: - var _bto_ = 0; break; - default: var _bto_ = 0; - } - var - _btp_ = 0 === anciennete_logement[0] ? 1 : 0, - _btq_ = caml_call2(Runtime_ocaml_Runtime[83], _btp_, _bto_), - _btr_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), - _bts_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _btr_), - _btt_ = caml_call2(Runtime_ocaml_Runtime[83], _bts_, _btq_), - _btu_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _btv_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _btu_), - _btw_ = caml_call2(Runtime_ocaml_Runtime[83], _btv_, _btt_), - _btx_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bty_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _btx_), - _btz_ = caml_call2(Runtime_ocaml_Runtime[83], _bty_, _btw_); - return caml_call2(Runtime_ocaml_Runtime[29], _oE_, _btz_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oF_, [0], _btn_, _btm_); - } - function _a9i_(param){ - function _bsM_(param){ - switch(zone[0]){ - case 0: - var _bs3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$116); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bs3_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29897) - : caml_call1(Runtime_ocaml_Runtime[31], cst_36079); - var - _bs4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$70), - _bs5_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bs4_), - _bs6_ = caml_call1(Runtime_ocaml_Runtime[69], _bs5_), - _bs7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6182), - _bs8_ = caml_call2(Runtime_ocaml_Runtime[104], _bs7_, _bs6_), - _bs9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42260); - return caml_call2(Runtime_ocaml_Runtime[93], _bs9_, _bs8_); - case 1: - var _bs__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$117); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bs__)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26650) - : caml_call1(Runtime_ocaml_Runtime[31], cst_32097); - var - _bs$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$71), - _bta_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bs$_), - _btb_ = caml_call1(Runtime_ocaml_Runtime[69], _bta_), - _btc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5447), - _btd_ = caml_call2(Runtime_ocaml_Runtime[104], _btc_, _btb_), - _bte_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37543); - return caml_call2(Runtime_ocaml_Runtime[93], _bte_, _btd_); - default: - var _btf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$118); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _btf_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24889) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29858); - var - _btg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$72), - _bth_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _btg_), - _bti_ = caml_call1(Runtime_ocaml_Runtime[69], _bth_), - _btj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4971), - _btk_ = caml_call2(Runtime_ocaml_Runtime[104], _btj_, _bti_), - _btl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34829); - return caml_call2(Runtime_ocaml_Runtime[93], _btl_, _btk_); - } - } - function _bsN_(param){ - switch(type_pret[0]){ - case 0: - var _bsO_ = 0; break; - case 1: - var _bsO_ = 1; break; - case 2: - var _bsO_ = 0; break; - case 3: - var _bsO_ = 0; break; - default: var _bsO_ = 0; - } - var - _bsP_ = 0 === anciennete_logement[0] ? 0 : 1, - _bsQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bsP_, _bsO_), - _bsR_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), - _bsS_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bsR_), - _bsT_ = caml_call2(Runtime_ocaml_Runtime[83], _bsS_, _bsQ_), - _bsU_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), - _bsV_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bsU_), - _bsW_ = caml_call2(Runtime_ocaml_Runtime[83], _bsV_, _bsT_), - _bsX_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bsY_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bsX_), - _bsZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bsY_, _bsW_), - _bs0_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bs1_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bs0_), - _bs2_ = caml_call2(Runtime_ocaml_Runtime[83], _bs1_, _bsZ_); - return caml_call2(Runtime_ocaml_Runtime[29], _oG_, _bs2_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oH_, [0], _bsN_, _bsM_); - } - function _a9j_(param){ - function _bsa_(param){ - switch(zone[0]){ - case 0: - var _bsr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$119); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bsr_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_37140) - : caml_call1(Runtime_ocaml_Runtime[31], cst_44807); - var - _bss_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$73), - _bst_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bss_), - _bsu_ = caml_call1(Runtime_ocaml_Runtime[69], _bst_), - _bsv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7664), - _bsw_ = caml_call2(Runtime_ocaml_Runtime[104], _bsv_, _bsu_), - _bsx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52472); - return caml_call2(Runtime_ocaml_Runtime[93], _bsx_, _bsw_); - case 1: - var _bsy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$120); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bsy_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_33145) - : caml_call1(Runtime_ocaml_Runtime[31], cst_39893); - var - _bsz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$74), - _bsA_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bsz_), - _bsB_ = caml_call1(Runtime_ocaml_Runtime[69], _bsA_), - _bsC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6748), - _bsD_ = caml_call2(Runtime_ocaml_Runtime[104], _bsC_, _bsB_), - _bsE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46643); - return caml_call2(Runtime_ocaml_Runtime[93], _bsE_, _bsD_); - default: - var _bsF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$121); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bsF_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_30943) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37103); - var - _bsG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$75), - _bsH_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bsG_), - _bsI_ = caml_call1(Runtime_ocaml_Runtime[69], _bsH_), - _bsJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6161), - _bsK_ = caml_call2(Runtime_ocaml_Runtime[104], _bsJ_, _bsI_), - _bsL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43264); - return caml_call2(Runtime_ocaml_Runtime[93], _bsL_, _bsK_); - } - } - function _bsb_(param){ - switch(type_pret[0]){ - case 0: - var _bsc_ = 0; break; - case 1: - var _bsc_ = 1; break; - case 2: - var _bsc_ = 0; break; - case 3: - var _bsc_ = 0; break; - default: var _bsc_ = 0; - } - var - _bsd_ = 0 === anciennete_logement[0] ? 1 : 0, - _bse_ = caml_call2(Runtime_ocaml_Runtime[83], _bsd_, _bsc_), - _bsf_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), - _bsg_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bsf_), - _bsh_ = caml_call2(Runtime_ocaml_Runtime[83], _bsg_, _bse_), - _bsi_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), - _bsj_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bsi_), - _bsk_ = caml_call2(Runtime_ocaml_Runtime[83], _bsj_, _bsh_), - _bsl_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bsm_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bsl_), - _bsn_ = caml_call2(Runtime_ocaml_Runtime[83], _bsm_, _bsk_), - _bso_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bsp_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bso_), - _bsq_ = caml_call2(Runtime_ocaml_Runtime[83], _bsp_, _bsn_); - return caml_call2(Runtime_ocaml_Runtime[29], _oI_, _bsq_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oJ_, [0], _bsb_, _bsa_); - } - function _a9k_(param){ - function _brA_(param){ - switch(zone[0]){ - case 0: - var _brR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$122); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _brR_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29674) - : caml_call1(Runtime_ocaml_Runtime[31], cst_35810); - var - _brS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$76), - _brT_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _brS_), - _brU_ = caml_call1(Runtime_ocaml_Runtime[69], _brT_), - _brV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6136), - _brW_ = caml_call2(Runtime_ocaml_Runtime[104], _brV_, _brU_), - _brX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41945); - return caml_call2(Runtime_ocaml_Runtime[93], _brX_, _brW_); - case 1: - var _brY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$123); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _brY_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26452) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31858); - var - _brZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$77), - _br0_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _brZ_), - _br1_ = caml_call1(Runtime_ocaml_Runtime[69], _br0_), - _br2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5406), - _br3_ = caml_call2(Runtime_ocaml_Runtime[104], _br2_, _br1_), - _br4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37264); - return caml_call2(Runtime_ocaml_Runtime[93], _br4_, _br3_); - default: - var _br5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$124); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _br5_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24704) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29636); - var - _br6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$78), - _br7_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _br6_), - _br8_ = caml_call1(Runtime_ocaml_Runtime[69], _br7_), - _br9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4934), - _br__ = caml_call2(Runtime_ocaml_Runtime[104], _br9_, _br8_), - _br$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34570); - return caml_call2(Runtime_ocaml_Runtime[93], _br$_, _br__); - } - } - function _brB_(param){ - switch(type_pret[0]){ - case 0: - var _brC_ = 0; break; - case 1: - var _brC_ = 1; break; - case 2: - var _brC_ = 0; break; - case 3: - var _brC_ = 0; break; - default: var _brC_ = 0; - } - var - _brD_ = 0 === anciennete_logement[0] ? 0 : 1, - _brE_ = caml_call2(Runtime_ocaml_Runtime[83], _brD_, _brC_), - _brF_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), - _brG_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _brF_), - _brH_ = caml_call2(Runtime_ocaml_Runtime[83], _brG_, _brE_), - _brI_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), - _brJ_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _brI_), - _brK_ = caml_call2(Runtime_ocaml_Runtime[83], _brJ_, _brH_), - _brL_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _brM_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _brL_), - _brN_ = caml_call2(Runtime_ocaml_Runtime[83], _brM_, _brK_), - _brO_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _brP_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _brO_), - _brQ_ = caml_call2(Runtime_ocaml_Runtime[83], _brP_, _brN_); - return caml_call2(Runtime_ocaml_Runtime[29], _oK_, _brQ_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oL_, [0], _brB_, _brA_); - } - function _a9l_(param){ - function _bq0_(param){ - switch(zone[0]){ - case 0: - var _brf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$125); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _brf_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_36864) - : caml_call1(Runtime_ocaml_Runtime[31], cst_44473); - var - _brg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$79), - _brh_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _brg_), - _bri_ = caml_call1(Runtime_ocaml_Runtime[69], _brh_), - _brj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7607), - _brk_ = caml_call2(Runtime_ocaml_Runtime[104], _brj_, _bri_), - _brl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52081); - return caml_call2(Runtime_ocaml_Runtime[93], _brl_, _brk_); - case 1: - var _brm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$126); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _brm_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_32898) - : caml_call1(Runtime_ocaml_Runtime[31], cst_39596); - var - _brn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$80), - _bro_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _brn_), - _brp_ = caml_call1(Runtime_ocaml_Runtime[69], _bro_), - _brq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6698), - _brr_ = caml_call2(Runtime_ocaml_Runtime[104], _brq_, _brp_), - _brs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46296); - return caml_call2(Runtime_ocaml_Runtime[93], _brs_, _brr_); - default: - var _brt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$127); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _brt_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_30713) - : caml_call1(Runtime_ocaml_Runtime[31], cst_36827); - var - _bru_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$81), - _brv_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bru_), - _brw_ = caml_call1(Runtime_ocaml_Runtime[69], _brv_), - _brx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6115), - _bry_ = caml_call2(Runtime_ocaml_Runtime[104], _brx_, _brw_), - _brz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42942); - return caml_call2(Runtime_ocaml_Runtime[93], _brz_, _bry_); - } - } - function _bq1_(param){ - switch(type_pret[0]){ - case 0: - var _bq2_ = 0; break; - case 1: - var _bq2_ = 1; break; - case 2: - var _bq2_ = 0; break; - case 3: - var _bq2_ = 0; break; - default: var _bq2_ = 0; - } - var - _bq3_ = 0 === anciennete_logement[0] ? 1 : 0, - _bq4_ = caml_call2(Runtime_ocaml_Runtime[83], _bq3_, _bq2_), - _bq5_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), - _bq6_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bq5_), - _bq7_ = caml_call2(Runtime_ocaml_Runtime[83], _bq6_, _bq4_), - _bq8_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), - _bq9_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bq8_), - _bq__ = caml_call2(Runtime_ocaml_Runtime[83], _bq9_, _bq7_), - _bq$_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bra_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bq$_), - _brb_ = caml_call2(Runtime_ocaml_Runtime[83], _bra_, _bq__), - _brc_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _brd_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _brc_), - _bre_ = caml_call2(Runtime_ocaml_Runtime[83], _brd_, _brb_); - return caml_call2(Runtime_ocaml_Runtime[29], _oM_, _bre_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oN_, [0], _bq1_, _bq0_); - } - function _a9m_(param){ - function _bqo_(param){ - switch(zone[0]){ - case 0: - var _bqF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$128); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bqF_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29650) - : caml_call1(Runtime_ocaml_Runtime[31], cst_35781); - var - _bqG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$82), - _bqH_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bqG_), - _bqI_ = caml_call1(Runtime_ocaml_Runtime[69], _bqH_), - _bqJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6131), - _bqK_ = caml_call2(Runtime_ocaml_Runtime[104], _bqJ_, _bqI_), - _bqL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41911); - return caml_call2(Runtime_ocaml_Runtime[93], _bqL_, _bqK_); - case 1: - var _bqM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$129); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bqM_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26431) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31833); - var - _bqN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$83), - _bqO_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bqN_), - _bqP_ = caml_call1(Runtime_ocaml_Runtime[69], _bqO_), - _bqQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5402), - _bqR_ = caml_call2(Runtime_ocaml_Runtime[104], _bqQ_, _bqP_), - _bqS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37234); - return caml_call2(Runtime_ocaml_Runtime[93], _bqS_, _bqR_); - default: - var _bqT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$130); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bqT_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24684) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29612); - var - _bqU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$84), - _bqV_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bqU_), - _bqW_ = caml_call1(Runtime_ocaml_Runtime[69], _bqV_), - _bqX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4930), - _bqY_ = caml_call2(Runtime_ocaml_Runtime[104], _bqX_, _bqW_), - _bqZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34542); - return caml_call2(Runtime_ocaml_Runtime[93], _bqZ_, _bqY_); - } - } - function _bqp_(param){ - switch(type_pret[0]){ - case 0: - var _bqq_ = 0; break; - case 1: - var _bqq_ = 1; break; - case 2: - var _bqq_ = 0; break; - case 3: - var _bqq_ = 0; break; - default: var _bqq_ = 0; - } - var - _bqr_ = 0 === anciennete_logement[0] ? 0 : 1, - _bqs_ = caml_call2(Runtime_ocaml_Runtime[83], _bqr_, _bqq_), - _bqt_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), - _bqu_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bqt_), - _bqv_ = caml_call2(Runtime_ocaml_Runtime[83], _bqu_, _bqs_), - _bqw_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), - _bqx_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bqw_), - _bqy_ = caml_call2(Runtime_ocaml_Runtime[83], _bqx_, _bqv_), - _bqz_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bqA_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bqz_), - _bqB_ = caml_call2(Runtime_ocaml_Runtime[83], _bqA_, _bqy_), - _bqC_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bqD_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bqC_), - _bqE_ = caml_call2(Runtime_ocaml_Runtime[83], _bqD_, _bqB_); - return caml_call2(Runtime_ocaml_Runtime[29], _oO_, _bqE_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oP_, [0], _bqp_, _bqo_); - } - function _a9n_(param){ - function _bpO_(param){ - switch(zone[0]){ - case 0: - var _bp5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$131); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bp5_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_36835) - : caml_call1(Runtime_ocaml_Runtime[31], cst_44437); - var - _bp6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$85), - _bp7_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bp6_), - _bp8_ = caml_call1(Runtime_ocaml_Runtime[69], _bp7_), - _bp9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7601), - _bp__ = caml_call2(Runtime_ocaml_Runtime[104], _bp9_, _bp8_), - _bp$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52039); - return caml_call2(Runtime_ocaml_Runtime[93], _bp$_, _bp__); - case 1: - var _bqa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$132); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bqa_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_32872) - : caml_call1(Runtime_ocaml_Runtime[31], cst_39564); - var - _bqb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$86), - _bqc_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bqb_), - _bqd_ = caml_call1(Runtime_ocaml_Runtime[69], _bqc_), - _bqe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6693), - _bqf_ = caml_call2(Runtime_ocaml_Runtime[104], _bqe_, _bqd_), - _bqg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46259); - return caml_call2(Runtime_ocaml_Runtime[93], _bqg_, _bqf_); - default: - var _bqh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$133); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bqh_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_30688) - : caml_call1(Runtime_ocaml_Runtime[31], cst_36798); - var - _bqi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$87), - _bqj_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bqi_), - _bqk_ = caml_call1(Runtime_ocaml_Runtime[69], _bqj_), - _bql_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6110), - _bqm_ = caml_call2(Runtime_ocaml_Runtime[104], _bql_, _bqk_), - _bqn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42908); - return caml_call2(Runtime_ocaml_Runtime[93], _bqn_, _bqm_); - } - } - function _bpP_(param){ - switch(type_pret[0]){ - case 0: - var _bpQ_ = 0; break; - case 1: - var _bpQ_ = 1; break; - case 2: - var _bpQ_ = 0; break; - case 3: - var _bpQ_ = 0; break; - default: var _bpQ_ = 0; - } - var - _bpR_ = 0 === anciennete_logement[0] ? 1 : 0, - _bpS_ = caml_call2(Runtime_ocaml_Runtime[83], _bpR_, _bpQ_), - _bpT_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), - _bpU_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bpT_), - _bpV_ = caml_call2(Runtime_ocaml_Runtime[83], _bpU_, _bpS_), - _bpW_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), - _bpX_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bpW_), - _bpY_ = caml_call2(Runtime_ocaml_Runtime[83], _bpX_, _bpV_), - _bpZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bp0_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bpZ_), - _bp1_ = caml_call2(Runtime_ocaml_Runtime[83], _bp0_, _bpY_), - _bp2_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bp3_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bp2_), - _bp4_ = caml_call2(Runtime_ocaml_Runtime[83], _bp3_, _bp1_); - return caml_call2(Runtime_ocaml_Runtime[29], _oQ_, _bp4_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oR_, [0], _bpP_, _bpO_); - } - function _a9o_(param){ - function _bpc_(param){ - switch(zone[0]){ - case 0: - var _bpt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$134); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bpt_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29482) - : caml_call1(Runtime_ocaml_Runtime[31], cst_35578); - var - _bpu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$88), - _bpv_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bpu_), - _bpw_ = caml_call1(Runtime_ocaml_Runtime[69], _bpv_), - _bpx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6096), - _bpy_ = caml_call2(Runtime_ocaml_Runtime[104], _bpx_, _bpw_), - _bpz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41673); - return caml_call2(Runtime_ocaml_Runtime[93], _bpz_, _bpy_); - case 1: - var _bpA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$135); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bpA_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26281) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31653); - var - _bpB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$89), - _bpC_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bpB_), - _bpD_ = caml_call1(Runtime_ocaml_Runtime[69], _bpC_), - _bpE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5371), - _bpF_ = caml_call2(Runtime_ocaml_Runtime[104], _bpE_, _bpD_), - _bpG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37023); - return caml_call2(Runtime_ocaml_Runtime[93], _bpG_, _bpF_); - default: - var _bpH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$136); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bpH_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24544) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29444); - var - _bpI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$90), - _bpJ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bpI_), - _bpK_ = caml_call1(Runtime_ocaml_Runtime[69], _bpJ_), - _bpL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4902), - _bpM_ = caml_call2(Runtime_ocaml_Runtime[104], _bpL_, _bpK_), - _bpN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34346); - return caml_call2(Runtime_ocaml_Runtime[93], _bpN_, _bpM_); - } - } - function _bpd_(param){ - switch(type_pret[0]){ - case 0: - var _bpe_ = 0; break; - case 1: - var _bpe_ = 1; break; - case 2: - var _bpe_ = 0; break; - case 3: - var _bpe_ = 0; break; - default: var _bpe_ = 0; - } - var - _bpf_ = 0 === anciennete_logement[0] ? 0 : 1, - _bpg_ = caml_call2(Runtime_ocaml_Runtime[83], _bpf_, _bpe_), - _bph_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), - _bpi_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bph_), - _bpj_ = caml_call2(Runtime_ocaml_Runtime[83], _bpi_, _bpg_), - _bpk_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), - _bpl_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bpk_), - _bpm_ = caml_call2(Runtime_ocaml_Runtime[83], _bpl_, _bpj_), - _bpn_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bpo_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bpn_), - _bpp_ = caml_call2(Runtime_ocaml_Runtime[83], _bpo_, _bpm_), - _bpq_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bpr_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bpq_), - _bps_ = caml_call2(Runtime_ocaml_Runtime[83], _bpr_, _bpp_); - return caml_call2(Runtime_ocaml_Runtime[29], _oS_, _bps_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oT_, [0], _bpd_, _bpc_); - } - function _a9p_(param){ - function _boC_(param){ - switch(zone[0]){ - case 0: - var _boT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$137); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _boT_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_36626) - : caml_call1(Runtime_ocaml_Runtime[31], cst_44185); - var - _boU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$91), - _boV_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _boU_), - _boW_ = caml_call1(Runtime_ocaml_Runtime[69], _boV_), - _boX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7558), - _boY_ = caml_call2(Runtime_ocaml_Runtime[104], _boX_, _boW_), - _boZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_51744); - return caml_call2(Runtime_ocaml_Runtime[93], _boZ_, _boY_); - case 1: - var _bo0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$138); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bo0_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_32686) - : caml_call1(Runtime_ocaml_Runtime[31], cst_39340); - var - _bo1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$92), - _bo2_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bo1_), - _bo3_ = caml_call1(Runtime_ocaml_Runtime[69], _bo2_), - _bo4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6655), - _bo5_ = caml_call2(Runtime_ocaml_Runtime[104], _bo4_, _bo3_), - _bo6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45997); - return caml_call2(Runtime_ocaml_Runtime[93], _bo6_, _bo5_); - default: - var _bo7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$139); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bo7_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_30514) - : caml_call1(Runtime_ocaml_Runtime[31], cst_36589); - var - _bo8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$93), - _bo9_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bo8_), - _bo__ = caml_call1(Runtime_ocaml_Runtime[69], _bo9_), - _bo$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6075), - _bpa_ = caml_call2(Runtime_ocaml_Runtime[104], _bo$_, _bo__), - _bpb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42665); - return caml_call2(Runtime_ocaml_Runtime[93], _bpb_, _bpa_); - } - } - function _boD_(param){ - switch(type_pret[0]){ - case 0: - var _boE_ = 0; break; - case 1: - var _boE_ = 1; break; - case 2: - var _boE_ = 0; break; - case 3: - var _boE_ = 0; break; - default: var _boE_ = 0; - } - var - _boF_ = 0 === anciennete_logement[0] ? 1 : 0, - _boG_ = caml_call2(Runtime_ocaml_Runtime[83], _boF_, _boE_), - _boH_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), - _boI_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _boH_), - _boJ_ = caml_call2(Runtime_ocaml_Runtime[83], _boI_, _boG_), - _boK_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), - _boL_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _boK_), - _boM_ = caml_call2(Runtime_ocaml_Runtime[83], _boL_, _boJ_), - _boN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _boO_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _boN_), - _boP_ = caml_call2(Runtime_ocaml_Runtime[83], _boO_, _boM_), - _boQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _boR_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _boQ_), - _boS_ = caml_call2(Runtime_ocaml_Runtime[83], _boR_, _boP_); - return caml_call2(Runtime_ocaml_Runtime[29], _oU_, _boS_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oV_, [0], _boD_, _boC_); - } - function _a9q_(param){ - function _bn2_(param){ - switch(zone[0]){ - case 0: - var _boh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$140); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _boh_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_28861) - : caml_call1(Runtime_ocaml_Runtime[31], cst_34829$0); - var - _boi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$94), - _boj_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _boi_), - _bok_ = caml_call1(Runtime_ocaml_Runtime[69], _boj_), - _bol_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5968), - _bom_ = caml_call2(Runtime_ocaml_Runtime[104], _bol_, _bok_), - _bon_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40796); - return caml_call2(Runtime_ocaml_Runtime[93], _bon_, _bom_); - case 1: - var _boo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$141); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _boo_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25728) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30987); - var - _bop_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$95), - _boq_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bop_), - _bor_ = caml_call1(Runtime_ocaml_Runtime[69], _boq_), - _bos_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5258), - _bot_ = caml_call2(Runtime_ocaml_Runtime[104], _bos_, _bor_), - _bou_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36244); - return caml_call2(Runtime_ocaml_Runtime[93], _bou_, _bot_); - default: - var _bov_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$142); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bov_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24027) - : caml_call1(Runtime_ocaml_Runtime[31], cst_28824); - var - _bow_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$96), - _box_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bow_), - _boy_ = caml_call1(Runtime_ocaml_Runtime[69], _box_), - _boz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4799), - _boA_ = caml_call2(Runtime_ocaml_Runtime[104], _boz_, _boy_), - _boB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33623); - return caml_call2(Runtime_ocaml_Runtime[93], _boB_, _boA_); - } - } - function _bn3_(param){ - switch(type_pret[0]){ - case 0: - var _bn4_ = 0; break; - case 1: - var _bn4_ = 1; break; - case 2: - var _bn4_ = 0; break; - case 3: - var _bn4_ = 0; break; - default: var _bn4_ = 0; - } - var - _bn5_ = 0 === anciennete_logement[0] ? 0 : 1, - _bn6_ = caml_call2(Runtime_ocaml_Runtime[83], _bn5_, _bn4_), - _bn7_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), - _bn8_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bn7_), - _bn9_ = caml_call2(Runtime_ocaml_Runtime[83], _bn8_, _bn6_), - _bn__ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), - _bn$_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bn__), - _boa_ = caml_call2(Runtime_ocaml_Runtime[83], _bn$_, _bn9_), - _bob_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _boc_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bob_), - _bod_ = caml_call2(Runtime_ocaml_Runtime[83], _boc_, _boa_), - _boe_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bof_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _boe_), - _bog_ = caml_call2(Runtime_ocaml_Runtime[83], _bof_, _bod_); - return caml_call2(Runtime_ocaml_Runtime[29], _oW_, _bog_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oX_, [0], _bn3_, _bn2_); - } - function _a9r_(param){ - function _bnq_(param){ - switch(zone[0]){ - case 0: - var _bnH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$143); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bnH_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_35855) - : caml_call1(Runtime_ocaml_Runtime[31], cst_43255); - var - _bnI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$97), - _bnJ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bnI_), - _bnK_ = caml_call1(Runtime_ocaml_Runtime[69], _bnJ_), - _bnL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7399), - _bnM_ = caml_call2(Runtime_ocaml_Runtime[104], _bnL_, _bnK_), - _bnN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50655); - return caml_call2(Runtime_ocaml_Runtime[93], _bnN_, _bnM_); - case 1: - var _bnO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$144); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bnO_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31998) - : caml_call1(Runtime_ocaml_Runtime[31], cst_38512); - var - _bnP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$98), - _bnQ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bnP_), - _bnR_ = caml_call1(Runtime_ocaml_Runtime[69], _bnQ_), - _bnS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6515), - _bnT_ = caml_call2(Runtime_ocaml_Runtime[104], _bnS_, _bnR_), - _bnU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45029); - return caml_call2(Runtime_ocaml_Runtime[93], _bnU_, _bnT_); - default: - var _bnV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$145); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bnV_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29872) - : caml_call1(Runtime_ocaml_Runtime[31], cst_35819); - var - _bnW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$99), - _bnX_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bnW_), - _bnY_ = caml_call1(Runtime_ocaml_Runtime[69], _bnX_), - _bnZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5947), - _bn0_ = caml_call2(Runtime_ocaml_Runtime[104], _bnZ_, _bnY_), - _bn1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41767); - return caml_call2(Runtime_ocaml_Runtime[93], _bn1_, _bn0_); - } - } - function _bnr_(param){ - switch(type_pret[0]){ - case 0: - var _bns_ = 0; break; - case 1: - var _bns_ = 1; break; - case 2: - var _bns_ = 0; break; - case 3: - var _bns_ = 0; break; - default: var _bns_ = 0; - } - var - _bnt_ = 0 === anciennete_logement[0] ? 1 : 0, - _bnu_ = caml_call2(Runtime_ocaml_Runtime[83], _bnt_, _bns_), - _bnv_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), - _bnw_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bnv_), - _bnx_ = caml_call2(Runtime_ocaml_Runtime[83], _bnw_, _bnu_), - _bny_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), - _bnz_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bny_), - _bnA_ = caml_call2(Runtime_ocaml_Runtime[83], _bnz_, _bnx_), - _bnB_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bnC_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bnB_), - _bnD_ = caml_call2(Runtime_ocaml_Runtime[83], _bnC_, _bnA_), - _bnE_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bnF_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bnE_), - _bnG_ = caml_call2(Runtime_ocaml_Runtime[83], _bnF_, _bnD_); - return caml_call2(Runtime_ocaml_Runtime[29], _oY_, _bnG_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _oZ_, [0], _bnr_, _bnq_); - } - function _a9s_(param){ - function _bmQ_(param){ - switch(zone[0]){ - case 0: - var _bm7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$146); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bm7_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_28575) - : caml_call1(Runtime_ocaml_Runtime[31], cst_34484); - var - _bm8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$100), - _bm9_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bm8_), - _bm__ = caml_call1(Runtime_ocaml_Runtime[69], _bm9_), - _bm$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5909), - _bna_ = caml_call2(Runtime_ocaml_Runtime[104], _bm$_, _bm__), - _bnb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40392); - return caml_call2(Runtime_ocaml_Runtime[93], _bnb_, _bna_); - case 1: - var _bnc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$147); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bnc_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25473) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30680); - var - _bnd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$101), - _bne_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bnd_), - _bnf_ = caml_call1(Runtime_ocaml_Runtime[69], _bne_), - _bng_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5206), - _bnh_ = caml_call2(Runtime_ocaml_Runtime[104], _bng_, _bnf_), - _bni_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35885); - return caml_call2(Runtime_ocaml_Runtime[93], _bni_, _bnh_); - default: - var _bnj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$148); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bnj_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_23789) - : caml_call1(Runtime_ocaml_Runtime[31], cst_28539); - var - _bnk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$102), - _bnl_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bnk_), - _bnm_ = caml_call1(Runtime_ocaml_Runtime[69], _bnl_), - _bnn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4751), - _bno_ = caml_call2(Runtime_ocaml_Runtime[104], _bnn_, _bnm_), - _bnp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33290); - return caml_call2(Runtime_ocaml_Runtime[93], _bnp_, _bno_); - } - } - function _bmR_(param){ - switch(type_pret[0]){ - case 0: - var _bmS_ = 0; break; - case 1: - var _bmS_ = 1; break; - case 2: - var _bmS_ = 0; break; - case 3: - var _bmS_ = 0; break; - default: var _bmS_ = 0; - } - var - _bmT_ = 0 === anciennete_logement[0] ? 0 : 1, - _bmU_ = caml_call2(Runtime_ocaml_Runtime[83], _bmT_, _bmS_), - _bmV_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), - _bmW_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bmV_), - _bmX_ = caml_call2(Runtime_ocaml_Runtime[83], _bmW_, _bmU_), - _bmY_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), - _bmZ_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bmY_), - _bm0_ = caml_call2(Runtime_ocaml_Runtime[83], _bmZ_, _bmX_), - _bm1_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bm2_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bm1_), - _bm3_ = caml_call2(Runtime_ocaml_Runtime[83], _bm2_, _bm0_), - _bm4_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bm5_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bm4_), - _bm6_ = caml_call2(Runtime_ocaml_Runtime[83], _bm5_, _bm3_); - return caml_call2(Runtime_ocaml_Runtime[29], _o0_, _bm6_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _o1_, [0], _bmR_, _bmQ_); - } - function _a9t_(param){ - function _bme_(param){ - switch(zone[0]){ - case 0: - var _bmv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$149); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bmv_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_35500) - : caml_call1(Runtime_ocaml_Runtime[31], cst_42827); - var - _bmw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$103), - _bmx_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bmw_), - _bmy_ = caml_call1(Runtime_ocaml_Runtime[69], _bmx_), - _bmz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7326), - _bmA_ = caml_call2(Runtime_ocaml_Runtime[104], _bmz_, _bmy_), - _bmB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50153); - return caml_call2(Runtime_ocaml_Runtime[93], _bmB_, _bmA_); - case 1: - var _bmC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$150); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bmC_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31681) - : caml_call1(Runtime_ocaml_Runtime[31], cst_38131); - var - _bmD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$104), - _bmE_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bmD_), - _bmF_ = caml_call1(Runtime_ocaml_Runtime[69], _bmE_), - _bmG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6450), - _bmH_ = caml_call2(Runtime_ocaml_Runtime[104], _bmG_, _bmF_), - _bmI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44583); - return caml_call2(Runtime_ocaml_Runtime[93], _bmI_, _bmH_); - default: - var _bmJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$151); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bmJ_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29576) - : caml_call1(Runtime_ocaml_Runtime[31], cst_35464); - var - _bmK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$105), - _bmL_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bmK_), - _bmM_ = caml_call1(Runtime_ocaml_Runtime[69], _bmL_), - _bmN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5888), - _bmO_ = caml_call2(Runtime_ocaml_Runtime[104], _bmN_, _bmM_), - _bmP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41353); - return caml_call2(Runtime_ocaml_Runtime[93], _bmP_, _bmO_); - } - } - function _bmf_(param){ - switch(type_pret[0]){ - case 0: - var _bmg_ = 0; break; - case 1: - var _bmg_ = 1; break; - case 2: - var _bmg_ = 0; break; - case 3: - var _bmg_ = 0; break; - default: var _bmg_ = 0; - } - var - _bmh_ = 0 === anciennete_logement[0] ? 1 : 0, - _bmi_ = caml_call2(Runtime_ocaml_Runtime[83], _bmh_, _bmg_), - _bmj_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), - _bmk_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bmj_), - _bml_ = caml_call2(Runtime_ocaml_Runtime[83], _bmk_, _bmi_), - _bmm_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), - _bmn_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bmm_), - _bmo_ = caml_call2(Runtime_ocaml_Runtime[83], _bmn_, _bml_), - _bmp_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bmq_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bmp_), - _bmr_ = caml_call2(Runtime_ocaml_Runtime[83], _bmq_, _bmo_), - _bms_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bmt_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bms_), - _bmu_ = caml_call2(Runtime_ocaml_Runtime[83], _bmt_, _bmr_); - return caml_call2(Runtime_ocaml_Runtime[29], _o2_, _bmu_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _o3_, [0], _bmf_, _bme_); - } - function _a9u_(param){ - function _blE_(param){ - switch(zone[0]){ - case 0: - var _blV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$152); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _blV_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_28264) - : caml_call1(Runtime_ocaml_Runtime[31], cst_34109); - var - _blW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$106), - _blX_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _blW_), - _blY_ = caml_call1(Runtime_ocaml_Runtime[69], _blX_), - _blZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5845), - _bl0_ = caml_call2(Runtime_ocaml_Runtime[104], _blZ_, _blY_), - _bl1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39953); - return caml_call2(Runtime_ocaml_Runtime[93], _bl1_, _bl0_); - case 1: - var _bl2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$153); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bl2_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25196) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30346); - var - _bl3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$107), - _bl4_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bl3_), - _bl5_ = caml_call1(Runtime_ocaml_Runtime[69], _bl4_), - _bl6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5149), - _bl7_ = caml_call2(Runtime_ocaml_Runtime[104], _bl6_, _bl5_), - _bl8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35495); - return caml_call2(Runtime_ocaml_Runtime[93], _bl8_, _bl7_); - default: - var _bl9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$154); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bl9_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_23530) - : caml_call1(Runtime_ocaml_Runtime[31], cst_28228); - var - _bl__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$108), - _bl$_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bl__), - _bma_ = caml_call1(Runtime_ocaml_Runtime[69], _bl$_), - _bmb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4699), - _bmc_ = caml_call2(Runtime_ocaml_Runtime[104], _bmb_, _bma_), - _bmd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32928); - return caml_call2(Runtime_ocaml_Runtime[93], _bmd_, _bmc_); - } - } - function _blF_(param){ - switch(type_pret[0]){ - case 0: - var _blG_ = 0; break; - case 1: - var _blG_ = 1; break; - case 2: - var _blG_ = 0; break; - case 3: - var _blG_ = 0; break; - default: var _blG_ = 0; - } - var - _blH_ = 0 === anciennete_logement[0] ? 0 : 1, - _blI_ = caml_call2(Runtime_ocaml_Runtime[83], _blH_, _blG_), - _blJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), - _blK_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _blJ_), - _blL_ = caml_call2(Runtime_ocaml_Runtime[83], _blK_, _blI_), - _blM_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), - _blN_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _blM_), - _blO_ = caml_call2(Runtime_ocaml_Runtime[83], _blN_, _blL_), - _blP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _blQ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _blP_), - _blR_ = caml_call2(Runtime_ocaml_Runtime[83], _blQ_, _blO_), - _blS_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _blT_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _blS_), - _blU_ = caml_call2(Runtime_ocaml_Runtime[83], _blT_, _blR_); - return caml_call2(Runtime_ocaml_Runtime[29], _o4_, _blU_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _o5_, [0], _blF_, _blE_); - } - function _a9v_(param){ - function _bk4_(param){ - switch(zone[0]){ - case 0: - var _blj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$155); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _blj_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_35114) - : caml_call1(Runtime_ocaml_Runtime[31], cst_42361); - var - _blk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$109), - _bll_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _blk_), - _blm_ = caml_call1(Runtime_ocaml_Runtime[69], _bll_), - _bln_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7246), - _blo_ = caml_call2(Runtime_ocaml_Runtime[104], _bln_, _blm_), - _blp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_49607); - return caml_call2(Runtime_ocaml_Runtime[93], _blp_, _blo_); - case 1: - var _blq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$156); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _blq_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31336) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37716); - var - _blr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$110), - _bls_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _blr_), - _blt_ = caml_call1(Runtime_ocaml_Runtime[69], _bls_), - _blu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6380), - _blv_ = caml_call2(Runtime_ocaml_Runtime[104], _blu_, _blt_), - _blw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44098); - return caml_call2(Runtime_ocaml_Runtime[93], _blw_, _blv_); - default: - var _blx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$157); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _blx_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29254) - : caml_call1(Runtime_ocaml_Runtime[31], cst_35078); - var - _bly_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$111), - _blz_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bly_), - _blA_ = caml_call1(Runtime_ocaml_Runtime[69], _blz_), - _blB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5824), - _blC_ = caml_call2(Runtime_ocaml_Runtime[104], _blB_, _blA_), - _blD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40903); - return caml_call2(Runtime_ocaml_Runtime[93], _blD_, _blC_); - } - } - function _bk5_(param){ - switch(type_pret[0]){ - case 0: - var _bk6_ = 0; break; - case 1: - var _bk6_ = 1; break; - case 2: - var _bk6_ = 0; break; - case 3: - var _bk6_ = 0; break; - default: var _bk6_ = 0; - } - var - _bk7_ = 0 === anciennete_logement[0] ? 1 : 0, - _bk8_ = caml_call2(Runtime_ocaml_Runtime[83], _bk7_, _bk6_), - _bk9_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), - _bk__ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bk9_), - _bk$_ = caml_call2(Runtime_ocaml_Runtime[83], _bk__, _bk8_), - _bla_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), - _blb_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bla_), - _blc_ = caml_call2(Runtime_ocaml_Runtime[83], _blb_, _bk$_), - _bld_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _ble_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bld_), - _blf_ = caml_call2(Runtime_ocaml_Runtime[83], _ble_, _blc_), - _blg_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _blh_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _blg_), - _bli_ = caml_call2(Runtime_ocaml_Runtime[83], _blh_, _blf_); - return caml_call2(Runtime_ocaml_Runtime[29], _o6_, _bli_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _o7_, [0], _bk5_, _bk4_); - } - function _a9w_(param){ - function _bks_(param){ - switch(zone[0]){ - case 0: - var _bkJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$158); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bkJ_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_28174) - : caml_call1(Runtime_ocaml_Runtime[31], cst_34000); - var - _bkK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$112), - _bkL_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bkK_), - _bkM_ = caml_call1(Runtime_ocaml_Runtime[69], _bkL_), - _bkN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5826), - _bkO_ = caml_call2(Runtime_ocaml_Runtime[104], _bkN_, _bkM_), - _bkP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39826); - return caml_call2(Runtime_ocaml_Runtime[93], _bkP_, _bkO_); - case 1: - var _bkQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$159); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bkQ_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25116) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30249); - var - _bkR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$113), - _bkS_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bkR_), - _bkT_ = caml_call1(Runtime_ocaml_Runtime[69], _bkS_), - _bkU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5133), - _bkV_ = caml_call2(Runtime_ocaml_Runtime[104], _bkU_, _bkT_), - _bkW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35382); - return caml_call2(Runtime_ocaml_Runtime[93], _bkW_, _bkV_); - default: - var _bkX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$160); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bkX_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_23455) - : caml_call1(Runtime_ocaml_Runtime[31], cst_28138); - var - _bkY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$114), - _bkZ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bkY_), - _bk0_ = caml_call1(Runtime_ocaml_Runtime[69], _bkZ_), - _bk1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4684), - _bk2_ = caml_call2(Runtime_ocaml_Runtime[104], _bk1_, _bk0_), - _bk3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32823); - return caml_call2(Runtime_ocaml_Runtime[93], _bk3_, _bk2_); - } - } - function _bkt_(param){ - switch(type_pret[0]){ - case 0: - var _bku_ = 0; break; - case 1: - var _bku_ = 1; break; - case 2: - var _bku_ = 0; break; - case 3: - var _bku_ = 0; break; - default: var _bku_ = 0; - } - var - _bkv_ = 0 === anciennete_logement[0] ? 0 : 1, - _bkw_ = caml_call2(Runtime_ocaml_Runtime[83], _bkv_, _bku_), - _bkx_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), - _bky_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bkx_), - _bkz_ = caml_call2(Runtime_ocaml_Runtime[83], _bky_, _bkw_), - _bkA_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), - _bkB_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bkA_), - _bkC_ = caml_call2(Runtime_ocaml_Runtime[83], _bkB_, _bkz_), - _bkD_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bkE_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bkD_), - _bkF_ = caml_call2(Runtime_ocaml_Runtime[83], _bkE_, _bkC_), - _bkG_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bkH_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bkG_), - _bkI_ = caml_call2(Runtime_ocaml_Runtime[83], _bkH_, _bkF_); - return caml_call2(Runtime_ocaml_Runtime[29], _o8_, _bkI_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _o9_, [0], _bkt_, _bks_); - } - function _a9x_(param){ - function _bjS_(param){ - switch(zone[0]){ - case 0: - var _bj9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$161); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bj9_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_35002) - : caml_call1(Runtime_ocaml_Runtime[31], cst_42226); - var - _bj__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$115), - _bj$_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bj__), - _bka_ = caml_call1(Runtime_ocaml_Runtime[69], _bj$_), - _bkb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7223), - _bkc_ = caml_call2(Runtime_ocaml_Runtime[104], _bkb_, _bka_), - _bkd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_49449); - return caml_call2(Runtime_ocaml_Runtime[93], _bkd_, _bkc_); - case 1: - var _bke_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$162); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bke_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31236) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37596); - var - _bkf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$116), - _bkg_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bkf_), - _bkh_ = caml_call1(Runtime_ocaml_Runtime[69], _bkg_), - _bki_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6360), - _bkj_ = caml_call2(Runtime_ocaml_Runtime[104], _bki_, _bkh_), - _bkk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43957); - return caml_call2(Runtime_ocaml_Runtime[93], _bkk_, _bkj_); - default: - var _bkl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$163); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bkl_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29161) - : caml_call1(Runtime_ocaml_Runtime[31], cst_34966); - var - _bkm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$117), - _bkn_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bkm_), - _bko_ = caml_call1(Runtime_ocaml_Runtime[69], _bkn_), - _bkp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5805), - _bkq_ = caml_call2(Runtime_ocaml_Runtime[104], _bkp_, _bko_), - _bkr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40773); - return caml_call2(Runtime_ocaml_Runtime[93], _bkr_, _bkq_); - } - } - function _bjT_(param){ - switch(type_pret[0]){ - case 0: - var _bjU_ = 0; break; - case 1: - var _bjU_ = 1; break; - case 2: - var _bjU_ = 0; break; - case 3: - var _bjU_ = 0; break; - default: var _bjU_ = 0; - } - var - _bjV_ = 0 === anciennete_logement[0] ? 1 : 0, - _bjW_ = caml_call2(Runtime_ocaml_Runtime[83], _bjV_, _bjU_), - _bjX_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), - _bjY_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bjX_), - _bjZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bjY_, _bjW_), - _bj0_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), - _bj1_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bj0_), - _bj2_ = caml_call2(Runtime_ocaml_Runtime[83], _bj1_, _bjZ_), - _bj3_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bj4_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bj3_), - _bj5_ = caml_call2(Runtime_ocaml_Runtime[83], _bj4_, _bj2_), - _bj6_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bj7_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bj6_), - _bj8_ = caml_call2(Runtime_ocaml_Runtime[83], _bj7_, _bj5_); - return caml_call2(Runtime_ocaml_Runtime[29], _o__, _bj8_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _o$_, [0], _bjT_, _bjS_); - } - function _a9y_(param){ - function _bjg_(param){ - switch(zone[0]){ - case 0: - var _bjx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$164); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bjx_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27367) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33026); - var - _bjy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$118), - _bjz_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bjy_), - _bjA_ = caml_call1(Runtime_ocaml_Runtime[69], _bjz_), - _bjB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5659), - _bjC_ = caml_call2(Runtime_ocaml_Runtime[104], _bjB_, _bjA_), - _bjD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38685); - return caml_call2(Runtime_ocaml_Runtime[93], _bjD_, _bjC_); - case 1: - var _bjE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$165); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bjE_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24396) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29382); - var - _bjF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$119), - _bjG_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bjF_), - _bjH_ = caml_call1(Runtime_ocaml_Runtime[69], _bjG_), - _bjI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4986$0), - _bjJ_ = caml_call2(Runtime_ocaml_Runtime[104], _bjI_, _bjH_), - _bjK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34368); - return caml_call2(Runtime_ocaml_Runtime[93], _bjK_, _bjJ_); - default: - var _bjL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$166); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bjL_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_22783) - : caml_call1(Runtime_ocaml_Runtime[31], cst_27332); - var - _bjM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$120), - _bjN_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bjM_), - _bjO_ = caml_call1(Runtime_ocaml_Runtime[69], _bjN_), - _bjP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4550), - _bjQ_ = caml_call2(Runtime_ocaml_Runtime[104], _bjP_, _bjO_), - _bjR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31882); - return caml_call2(Runtime_ocaml_Runtime[93], _bjR_, _bjQ_); - } - } - function _bjh_(param){ - switch(type_pret[0]){ - case 0: - var _bji_ = 0; break; - case 1: - var _bji_ = 1; break; - case 2: - var _bji_ = 0; break; - case 3: - var _bji_ = 0; break; - default: var _bji_ = 0; - } - var - _bjj_ = 0 === anciennete_logement[0] ? 0 : 1, - _bjk_ = caml_call2(Runtime_ocaml_Runtime[83], _bjj_, _bji_), - _bjl_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), - _bjm_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bjl_), - _bjn_ = caml_call2(Runtime_ocaml_Runtime[83], _bjm_, _bjk_), - _bjo_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), - _bjp_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bjo_), - _bjq_ = caml_call2(Runtime_ocaml_Runtime[83], _bjp_, _bjn_), - _bjr_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bjs_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bjr_), - _bjt_ = caml_call2(Runtime_ocaml_Runtime[83], _bjs_, _bjq_), - _bju_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bjv_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bju_), - _bjw_ = caml_call2(Runtime_ocaml_Runtime[83], _bjv_, _bjt_); - return caml_call2(Runtime_ocaml_Runtime[29], _pa_, _bjw_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pb_, [0], _bjh_, _bjg_); - } - function _a9z_(param){ - function _biG_(param){ - switch(zone[0]){ - case 0: - var _biX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$167); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _biX_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_33999) - : caml_call1(Runtime_ocaml_Runtime[31], cst_41016); - var - _biY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$121), - _biZ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _biY_), - _bi0_ = caml_call1(Runtime_ocaml_Runtime[69], _biZ_), - _bi1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7016), - _bi2_ = caml_call2(Runtime_ocaml_Runtime[104], _bi1_, _bi0_), - _bi3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_48032); - return caml_call2(Runtime_ocaml_Runtime[93], _bi3_, _bi2_); - case 1: - var _bi4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$168); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bi4_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_30341) - : caml_call1(Runtime_ocaml_Runtime[31], cst_36519); - var - _bi5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$122), - _bi6_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bi5_), - _bi7_ = caml_call1(Runtime_ocaml_Runtime[69], _bi6_), - _bi8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6178), - _bi9_ = caml_call2(Runtime_ocaml_Runtime[104], _bi8_, _bi7_), - _bi__ = caml_call1(Runtime_ocaml_Runtime[31], cst_42697); - return caml_call2(Runtime_ocaml_Runtime[93], _bi__, _bi9_); - default: - var _bi$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$169); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bi$_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_28325) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33964); - var - _bja_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$123), - _bjb_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bja_), - _bjc_ = caml_call1(Runtime_ocaml_Runtime[69], _bjb_), - _bjd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5639), - _bje_ = caml_call2(Runtime_ocaml_Runtime[104], _bjd_, _bjc_), - _bjf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39605); - return caml_call2(Runtime_ocaml_Runtime[93], _bjf_, _bje_); - } - } - function _biH_(param){ - switch(type_pret[0]){ - case 0: - var _biI_ = 0; break; - case 1: - var _biI_ = 1; break; - case 2: - var _biI_ = 0; break; - case 3: - var _biI_ = 0; break; - default: var _biI_ = 0; - } - var - _biJ_ = 0 === anciennete_logement[0] ? 1 : 0, - _biK_ = caml_call2(Runtime_ocaml_Runtime[83], _biJ_, _biI_), - _biL_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), - _biM_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _biL_), - _biN_ = caml_call2(Runtime_ocaml_Runtime[83], _biM_, _biK_), - _biO_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), - _biP_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _biO_), - _biQ_ = caml_call2(Runtime_ocaml_Runtime[83], _biP_, _biN_), - _biR_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _biS_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _biR_), - _biT_ = caml_call2(Runtime_ocaml_Runtime[83], _biS_, _biQ_), - _biU_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _biV_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _biU_), - _biW_ = caml_call2(Runtime_ocaml_Runtime[83], _biV_, _biT_); - return caml_call2(Runtime_ocaml_Runtime[29], _pc_, _biW_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pd_, [0], _biH_, _biG_); - } - function _a9A_(param){ - function _bh6_(param){ - switch(zone[0]){ - case 0: - var _bil_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$170); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bil_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26632) - : caml_call1(Runtime_ocaml_Runtime[31], cst_32139); - var - _bim_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$124), - _bin_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bim_), - _bio_ = caml_call1(Runtime_ocaml_Runtime[69], _bin_), - _bip_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5507), - _biq_ = caml_call2(Runtime_ocaml_Runtime[104], _bip_, _bio_), - _bir_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37646); - return caml_call2(Runtime_ocaml_Runtime[93], _bir_, _biq_); - case 1: - var _bis_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$171); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bis_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_23741) - : caml_call1(Runtime_ocaml_Runtime[31], cst_28593); - var - _bit_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$125), - _biu_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bit_), - _biv_ = caml_call1(Runtime_ocaml_Runtime[69], _biu_), - _biw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4852), - _bix_ = caml_call2(Runtime_ocaml_Runtime[104], _biw_, _biv_), - _biy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33445); - return caml_call2(Runtime_ocaml_Runtime[93], _biy_, _bix_); - default: - var _biz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$172); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _biz_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_22171) - : caml_call1(Runtime_ocaml_Runtime[31], cst_36598); - var - _biA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$126), - _biB_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _biA_), - _biC_ = caml_call1(Runtime_ocaml_Runtime[69], _biB_), - _biD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4428), - _biE_ = caml_call2(Runtime_ocaml_Runtime[104], _biD_, _biC_), - _biF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31026); - return caml_call2(Runtime_ocaml_Runtime[93], _biF_, _biE_); - } - } - function _bh7_(param){ - switch(type_pret[0]){ - case 0: - var _bh8_ = 0; break; - case 1: - var _bh8_ = 1; break; - case 2: - var _bh8_ = 0; break; - case 3: - var _bh8_ = 0; break; - default: var _bh8_ = 0; - } - var - _bh9_ = 0 === anciennete_logement[0] ? 0 : 1, - _bh__ = caml_call2(Runtime_ocaml_Runtime[83], _bh9_, _bh8_), - _bh$_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), - _bia_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bh$_), - _bib_ = caml_call2(Runtime_ocaml_Runtime[83], _bia_, _bh__), - _bic_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), - _bid_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bic_), - _bie_ = caml_call2(Runtime_ocaml_Runtime[83], _bid_, _bib_), - _bif_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _big_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bif_), - _bih_ = caml_call2(Runtime_ocaml_Runtime[83], _big_, _bie_), - _bii_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bij_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bii_), - _bik_ = caml_call2(Runtime_ocaml_Runtime[83], _bij_, _bih_); - return caml_call2(Runtime_ocaml_Runtime[29], _pe_, _bik_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pf_, [0], _bh7_, _bh6_); - } - function _a9B_(param){ - function _bhu_(param){ - switch(zone[0]){ - case 0: - var _bhL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$173); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bhL_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_33086) - : caml_call1(Runtime_ocaml_Runtime[31], cst_39914); - var - _bhM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$127), - _bhN_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bhM_), - _bhO_ = caml_call1(Runtime_ocaml_Runtime[69], _bhN_), - _bhP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6828), - _bhQ_ = caml_call2(Runtime_ocaml_Runtime[104], _bhP_, _bhO_), - _bhR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46742); - return caml_call2(Runtime_ocaml_Runtime[93], _bhR_, _bhQ_); - case 1: - var _bhS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$174); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bhS_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29526) - : caml_call1(Runtime_ocaml_Runtime[31], cst_35538); - var - _bhT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$128), - _bhU_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bhT_), - _bhV_ = caml_call1(Runtime_ocaml_Runtime[69], _bhU_), - _bhW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6012), - _bhX_ = caml_call2(Runtime_ocaml_Runtime[104], _bhW_, _bhV_), - _bhY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41550); - return caml_call2(Runtime_ocaml_Runtime[93], _bhY_, _bhX_); - default: - var _bhZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$175); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bhZ_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27564) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33052); - var - _bh0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$129), - _bh1_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bh0_), - _bh2_ = caml_call1(Runtime_ocaml_Runtime[69], _bh1_), - _bh3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5488), - _bh4_ = caml_call2(Runtime_ocaml_Runtime[104], _bh3_, _bh2_), - _bh5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38541); - return caml_call2(Runtime_ocaml_Runtime[93], _bh5_, _bh4_); - } - } - function _bhv_(param){ - switch(type_pret[0]){ - case 0: - var _bhw_ = 0; break; - case 1: - var _bhw_ = 1; break; - case 2: - var _bhw_ = 0; break; - case 3: - var _bhw_ = 0; break; - default: var _bhw_ = 0; - } - var - _bhx_ = 0 === anciennete_logement[0] ? 1 : 0, - _bhy_ = caml_call2(Runtime_ocaml_Runtime[83], _bhx_, _bhw_), - _bhz_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), - _bhA_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bhz_), - _bhB_ = caml_call2(Runtime_ocaml_Runtime[83], _bhA_, _bhy_), - _bhC_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), - _bhD_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bhC_), - _bhE_ = caml_call2(Runtime_ocaml_Runtime[83], _bhD_, _bhB_), - _bhF_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bhG_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bhF_), - _bhH_ = caml_call2(Runtime_ocaml_Runtime[83], _bhG_, _bhE_), - _bhI_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bhJ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bhI_), - _bhK_ = caml_call2(Runtime_ocaml_Runtime[83], _bhJ_, _bhH_); - return caml_call2(Runtime_ocaml_Runtime[29], _pg_, _bhK_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _ph_, [0], _bhv_, _bhu_); - } - function _a9C_(param){ - function _bgU_(param){ - switch(zone[0]){ - case 0: - var _bg$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$176); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bg$_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25907) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31264); - var - _bha_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$130), - _bhb_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bha_), - _bhc_ = caml_call1(Runtime_ocaml_Runtime[69], _bhb_), - _bhd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5357), - _bhe_ = caml_call2(Runtime_ocaml_Runtime[104], _bhd_, _bhc_), - _bhf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36621); - return caml_call2(Runtime_ocaml_Runtime[93], _bhf_, _bhe_); - case 1: - var _bhg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$177); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bhg_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_23094) - : caml_call1(Runtime_ocaml_Runtime[31], cst_27814); - var - _bhh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$131), - _bhi_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bhh_), - _bhj_ = caml_call1(Runtime_ocaml_Runtime[69], _bhi_), - _bhk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4720), - _bhl_ = caml_call2(Runtime_ocaml_Runtime[104], _bhk_, _bhj_), - _bhm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32534); - return caml_call2(Runtime_ocaml_Runtime[93], _bhm_, _bhl_); - default: - var _bhn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$178); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bhn_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_21567) - : caml_call1(Runtime_ocaml_Runtime[31], cst_25874); - var - _bho_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$132), - _bhp_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bho_), - _bhq_ = caml_call1(Runtime_ocaml_Runtime[69], _bhp_), - _bhr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4307), - _bhs_ = caml_call2(Runtime_ocaml_Runtime[104], _bhr_, _bhq_), - _bht_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30181); - return caml_call2(Runtime_ocaml_Runtime[93], _bht_, _bhs_); - } - } - function _bgV_(param){ - switch(type_pret[0]){ - case 0: - var _bgW_ = 0; break; - case 1: - var _bgW_ = 1; break; - case 2: - var _bgW_ = 0; break; - case 3: - var _bgW_ = 0; break; - default: var _bgW_ = 0; - } - var - _bgX_ = 0 === anciennete_logement[0] ? 0 : 1, - _bgY_ = caml_call2(Runtime_ocaml_Runtime[83], _bgX_, _bgW_), - _bgZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), - _bg0_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bgZ_), - _bg1_ = caml_call2(Runtime_ocaml_Runtime[83], _bg0_, _bgY_), - _bg2_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), - _bg3_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bg2_), - _bg4_ = caml_call2(Runtime_ocaml_Runtime[83], _bg3_, _bg1_), - _bg5_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bg6_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bg5_), - _bg7_ = caml_call2(Runtime_ocaml_Runtime[83], _bg6_, _bg4_), - _bg8_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bg9_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bg8_), - _bg__ = caml_call2(Runtime_ocaml_Runtime[83], _bg9_, _bg7_); - return caml_call2(Runtime_ocaml_Runtime[29], _pi_, _bg__); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pj_, [0], _bgV_, _bgU_); - } - function _a9D_(param){ - function _bgi_(param){ - switch(zone[0]){ - case 0: - var _bgz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$179); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bgz_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_32185) - : caml_call1(Runtime_ocaml_Runtime[31], cst_38827); - var - _bgA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$133), - _bgB_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bgA_), - _bgC_ = caml_call1(Runtime_ocaml_Runtime[69], _bgB_), - _bgD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6642), - _bgE_ = caml_call2(Runtime_ocaml_Runtime[104], _bgD_, _bgC_), - _bgF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45469); - return caml_call2(Runtime_ocaml_Runtime[93], _bgF_, _bgE_); - case 1: - var _bgG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$180); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bgG_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_28722) - : caml_call1(Runtime_ocaml_Runtime[31], cst_34570$0); - var - _bgH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$134), - _bgI_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bgH_), - _bgJ_ = caml_call1(Runtime_ocaml_Runtime[69], _bgI_), - _bgK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5848), - _bgL_ = caml_call2(Runtime_ocaml_Runtime[104], _bgK_, _bgJ_), - _bgM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40418); - return caml_call2(Runtime_ocaml_Runtime[93], _bgM_, _bgL_); - default: - var _bgN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$181); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bgN_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26813) - : caml_call1(Runtime_ocaml_Runtime[31], cst_32152); - var - _bgO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$135), - _bgP_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bgO_), - _bgQ_ = caml_call1(Runtime_ocaml_Runtime[69], _bgP_), - _bgR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5339), - _bgS_ = caml_call2(Runtime_ocaml_Runtime[104], _bgR_, _bgQ_), - _bgT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37491); - return caml_call2(Runtime_ocaml_Runtime[93], _bgT_, _bgS_); - } - } - function _bgj_(param){ - switch(type_pret[0]){ - case 0: - var _bgk_ = 0; break; - case 1: - var _bgk_ = 1; break; - case 2: - var _bgk_ = 0; break; - case 3: - var _bgk_ = 0; break; - default: var _bgk_ = 0; - } - var - _bgl_ = 0 === anciennete_logement[0] ? 1 : 0, - _bgm_ = caml_call2(Runtime_ocaml_Runtime[83], _bgl_, _bgk_), - _bgn_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), - _bgo_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bgn_), - _bgp_ = caml_call2(Runtime_ocaml_Runtime[83], _bgo_, _bgm_), - _bgq_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), - _bgr_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bgq_), - _bgs_ = caml_call2(Runtime_ocaml_Runtime[83], _bgr_, _bgp_), - _bgt_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bgu_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bgt_), - _bgv_ = caml_call2(Runtime_ocaml_Runtime[83], _bgu_, _bgs_), - _bgw_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bgx_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bgw_), - _bgy_ = caml_call2(Runtime_ocaml_Runtime[83], _bgx_, _bgv_); - return caml_call2(Runtime_ocaml_Runtime[29], _pk_, _bgy_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pl_, [0], _bgj_, _bgi_); - } - function _a9E_(param){ - function _bfI_(param){ - switch(zone[0]){ - case 0: - var _bfZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$182); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bfZ_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25449) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30711); - var - _bf0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$136), - _bf1_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bf0_), - _bf2_ = caml_call1(Runtime_ocaml_Runtime[69], _bf1_), - _bf3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5262), - _bf4_ = caml_call2(Runtime_ocaml_Runtime[104], _bf3_, _bf2_), - _bf5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35973); - return caml_call2(Runtime_ocaml_Runtime[93], _bf5_, _bf4_); - case 1: - var _bf6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$183); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bf6_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_22686) - : caml_call1(Runtime_ocaml_Runtime[31], cst_27323); - var - _bf7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$137), - _bf8_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bf7_), - _bf9_ = caml_call1(Runtime_ocaml_Runtime[69], _bf8_), - _bf__ = caml_call1(Runtime_ocaml_Runtime[31], cst_4637), - _bf$_ = caml_call2(Runtime_ocaml_Runtime[104], _bf__, _bf9_), - _bga_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31960); - return caml_call2(Runtime_ocaml_Runtime[93], _bga_, _bf$_); - default: - var _bgb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$184); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bgb_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_21186) - : caml_call1(Runtime_ocaml_Runtime[31], cst_25417); - var - _bgc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$138), - _bgd_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bgc_), - _bge_ = caml_call1(Runtime_ocaml_Runtime[69], _bgd_), - _bgf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4231), - _bgg_ = caml_call2(Runtime_ocaml_Runtime[104], _bgf_, _bge_), - _bgh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29648); - return caml_call2(Runtime_ocaml_Runtime[93], _bgh_, _bgg_); - } - } - function _bfJ_(param){ - switch(type_pret[0]){ - case 0: - var _bfK_ = 0; break; - case 1: - var _bfK_ = 1; break; - case 2: - var _bfK_ = 0; break; - case 3: - var _bfK_ = 0; break; - default: var _bfK_ = 0; - } - var - _bfL_ = 0 === anciennete_logement[0] ? 0 : 1, - _bfM_ = caml_call2(Runtime_ocaml_Runtime[83], _bfL_, _bfK_), - _bfN_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), - _bfO_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bfN_), - _bfP_ = caml_call2(Runtime_ocaml_Runtime[83], _bfO_, _bfM_), - _bfQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), - _bfR_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bfQ_), - _bfS_ = caml_call2(Runtime_ocaml_Runtime[83], _bfR_, _bfP_), - _bfT_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bfU_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bfT_), - _bfV_ = caml_call2(Runtime_ocaml_Runtime[83], _bfU_, _bfS_), - _bfW_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bfX_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bfW_), - _bfY_ = caml_call2(Runtime_ocaml_Runtime[83], _bfX_, _bfV_); - return caml_call2(Runtime_ocaml_Runtime[29], _pm_, _bfY_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pn_, [0], _bfJ_, _bfI_); - } - function _a9F_(param){ - function _be8_(param){ - switch(zone[0]){ - case 0: - var _bfn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$185); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bfn_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31616) - : caml_call1(Runtime_ocaml_Runtime[31], cst_38141); - var - _bfo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$139), - _bfp_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bfo_), - _bfq_ = caml_call1(Runtime_ocaml_Runtime[69], _bfp_), - _bfr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6525), - _bfs_ = caml_call2(Runtime_ocaml_Runtime[104], _bfr_, _bfq_), - _bft_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44666); - return caml_call2(Runtime_ocaml_Runtime[93], _bft_, _bfs_); - case 1: - var _bfu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$186); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bfu_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_28214) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33959); - var - _bfv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$140), - _bfw_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bfv_), - _bfx_ = caml_call1(Runtime_ocaml_Runtime[69], _bfw_), - _bfy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5745), - _bfz_ = caml_call2(Runtime_ocaml_Runtime[104], _bfy_, _bfx_), - _bfA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39704); - return caml_call2(Runtime_ocaml_Runtime[93], _bfA_, _bfz_); - default: - var _bfB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$187); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bfB_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26339) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31584); - var - _bfC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$141), - _bfD_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bfC_), - _bfE_ = caml_call1(Runtime_ocaml_Runtime[69], _bfD_), - _bfF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5245), - _bfG_ = caml_call2(Runtime_ocaml_Runtime[104], _bfF_, _bfE_), - _bfH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36829); - return caml_call2(Runtime_ocaml_Runtime[93], _bfH_, _bfG_); - } - } - function _be9_(param){ - switch(type_pret[0]){ - case 0: - var _be__ = 0; break; - case 1: - var _be__ = 1; break; - case 2: - var _be__ = 0; break; - case 3: - var _be__ = 0; break; - default: var _be__ = 0; - } - var - _be$_ = 0 === anciennete_logement[0] ? 1 : 0, - _bfa_ = caml_call2(Runtime_ocaml_Runtime[83], _be$_, _be__), - _bfb_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), - _bfc_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bfb_), - _bfd_ = caml_call2(Runtime_ocaml_Runtime[83], _bfc_, _bfa_), - _bfe_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), - _bff_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bfe_), - _bfg_ = caml_call2(Runtime_ocaml_Runtime[83], _bff_, _bfd_), - _bfh_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bfi_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bfh_), - _bfj_ = caml_call2(Runtime_ocaml_Runtime[83], _bfi_, _bfg_), - _bfk_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bfl_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bfk_), - _bfm_ = caml_call2(Runtime_ocaml_Runtime[83], _bfl_, _bfj_); - return caml_call2(Runtime_ocaml_Runtime[29], _po_, _bfm_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pp_, [0], _be9_, _be8_); - } - function _a9G_(param){ - function _bew_(param){ - switch(zone[0]){ - case 0: - var _beN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$188); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _beN_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25147) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30347); - var - _beO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$142), - _beP_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _beO_), - _beQ_ = caml_call1(Runtime_ocaml_Runtime[69], _beP_), - _beR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5200), - _beS_ = caml_call2(Runtime_ocaml_Runtime[104], _beR_, _beQ_), - _beT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35547); - return caml_call2(Runtime_ocaml_Runtime[93], _beT_, _beS_); - case 1: - var _beU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$189); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _beU_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_22417) - : caml_call1(Runtime_ocaml_Runtime[31], cst_26999); - var - _beV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$143), - _beW_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _beV_), - _beX_ = caml_call1(Runtime_ocaml_Runtime[69], _beW_), - _beY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4582), - _beZ_ = caml_call2(Runtime_ocaml_Runtime[104], _beY_, _beX_), - _be0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31581); - return caml_call2(Runtime_ocaml_Runtime[93], _be0_, _beZ_); - default: - var _be1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$190); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _be1_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_20935) - : caml_call1(Runtime_ocaml_Runtime[31], cst_25116$0); - var - _be2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$144), - _be3_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _be2_), - _be4_ = caml_call1(Runtime_ocaml_Runtime[69], _be3_), - _be5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4181), - _be6_ = caml_call2(Runtime_ocaml_Runtime[104], _be5_, _be4_), - _be7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29297); - return caml_call2(Runtime_ocaml_Runtime[93], _be7_, _be6_); - } - } - function _bex_(param){ - switch(type_pret[0]){ - case 0: - var _bey_ = 0; break; - case 1: - var _bey_ = 1; break; - case 2: - var _bey_ = 0; break; - case 3: - var _bey_ = 0; break; - default: var _bey_ = 0; - } - var - _bez_ = 0 === anciennete_logement[0] ? 0 : 1, - _beA_ = caml_call2(Runtime_ocaml_Runtime[83], _bez_, _bey_), - _beB_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), - _beC_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _beB_), - _beD_ = caml_call2(Runtime_ocaml_Runtime[83], _beC_, _beA_), - _beE_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), - _beF_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _beE_), - _beG_ = caml_call2(Runtime_ocaml_Runtime[83], _beF_, _beD_), - _beH_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _beI_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _beH_), - _beJ_ = caml_call2(Runtime_ocaml_Runtime[83], _beI_, _beG_), - _beK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _beL_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _beK_), - _beM_ = caml_call2(Runtime_ocaml_Runtime[83], _beL_, _beJ_); - return caml_call2(Runtime_ocaml_Runtime[29], _pq_, _beM_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pr_, [0], _bex_, _bew_); - } - function _a9H_(param){ - function _bdW_(param){ - switch(zone[0]){ - case 0: - var _beb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$191); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _beb_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31241) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37689); - var - _bec_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$145), - _bed_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bec_), - _bee_ = caml_call1(Runtime_ocaml_Runtime[69], _bed_), - _bef_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6448), - _beg_ = caml_call2(Runtime_ocaml_Runtime[104], _bef_, _bee_), - _beh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44137); - return caml_call2(Runtime_ocaml_Runtime[93], _beh_, _beg_); - case 1: - var _bei_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$192); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bei_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27879) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33556); - var - _bej_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$146), - _bek_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bej_), - _bel_ = caml_call1(Runtime_ocaml_Runtime[69], _bek_), - _bem_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5677), - _ben_ = caml_call2(Runtime_ocaml_Runtime[104], _bem_, _bel_), - _beo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39233); - return caml_call2(Runtime_ocaml_Runtime[93], _beo_, _ben_); - default: - var _bep_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$193); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bep_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26027) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31210); - var - _beq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$147), - _ber_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _beq_), - _bes_ = caml_call1(Runtime_ocaml_Runtime[69], _ber_), - _bet_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5183), - _beu_ = caml_call2(Runtime_ocaml_Runtime[104], _bet_, _bes_), - _bev_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36393); - return caml_call2(Runtime_ocaml_Runtime[93], _bev_, _beu_); - } - } - function _bdX_(param){ - switch(type_pret[0]){ - case 0: - var _bdY_ = 0; break; - case 1: - var _bdY_ = 1; break; - case 2: - var _bdY_ = 0; break; - case 3: - var _bdY_ = 0; break; - default: var _bdY_ = 0; - } - var - _bdZ_ = 0 === anciennete_logement[0] ? 1 : 0, - _bd0_ = caml_call2(Runtime_ocaml_Runtime[83], _bdZ_, _bdY_), - _bd1_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), - _bd2_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bd1_), - _bd3_ = caml_call2(Runtime_ocaml_Runtime[83], _bd2_, _bd0_), - _bd4_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), - _bd5_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bd4_), - _bd6_ = caml_call2(Runtime_ocaml_Runtime[83], _bd5_, _bd3_), - _bd7_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bd8_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bd7_), - _bd9_ = caml_call2(Runtime_ocaml_Runtime[83], _bd8_, _bd6_), - _bd__ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bd$_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bd__), - _bea_ = caml_call2(Runtime_ocaml_Runtime[83], _bd$_, _bd9_); - return caml_call2(Runtime_ocaml_Runtime[29], _ps_, _bea_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pt_, [0], _bdX_, _bdW_); - } - function _a9I_(param){ - function _bdk_(param){ - switch(zone[0]){ - case 0: - var _bdB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$194); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bdB_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24849) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29987); - var - _bdC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$148), - _bdD_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bdC_), - _bdE_ = caml_call1(Runtime_ocaml_Runtime[69], _bdD_), - _bdF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5138), - _bdG_ = caml_call2(Runtime_ocaml_Runtime[104], _bdF_, _bdE_), - _bdH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35125); - return caml_call2(Runtime_ocaml_Runtime[93], _bdH_, _bdG_); - case 1: - var _bdI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$195); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bdI_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_22151) - : caml_call1(Runtime_ocaml_Runtime[31], cst_26679); - var - _bdJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$149), - _bdK_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bdJ_), - _bdL_ = caml_call1(Runtime_ocaml_Runtime[69], _bdK_), - _bdM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4528), - _bdN_ = caml_call2(Runtime_ocaml_Runtime[104], _bdM_, _bdL_), - _bdO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31207); - return caml_call2(Runtime_ocaml_Runtime[93], _bdO_, _bdN_); - default: - var _bdP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$196); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bdP_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_20687) - : caml_call1(Runtime_ocaml_Runtime[31], cst_24818); - var - _bdQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$150), - _bdR_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bdQ_), - _bdS_ = caml_call1(Runtime_ocaml_Runtime[69], _bdR_), - _bdT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4131), - _bdU_ = caml_call2(Runtime_ocaml_Runtime[104], _bdT_, _bdS_), - _bdV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_28949); - return caml_call2(Runtime_ocaml_Runtime[93], _bdV_, _bdU_); - } - } - function _bdl_(param){ - switch(type_pret[0]){ - case 0: - var _bdm_ = 0; break; - case 1: - var _bdm_ = 1; break; - case 2: - var _bdm_ = 0; break; - case 3: - var _bdm_ = 0; break; - default: var _bdm_ = 0; - } - var - _bdn_ = 0 === anciennete_logement[0] ? 0 : 1, - _bdo_ = caml_call2(Runtime_ocaml_Runtime[83], _bdn_, _bdm_), - _bdp_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), - _bdq_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bdp_), - _bdr_ = caml_call2(Runtime_ocaml_Runtime[83], _bdq_, _bdo_), - _bds_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), - _bdt_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bds_), - _bdu_ = caml_call2(Runtime_ocaml_Runtime[83], _bdt_, _bdr_), - _bdv_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bdw_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bdv_), - _bdx_ = caml_call2(Runtime_ocaml_Runtime[83], _bdw_, _bdu_), - _bdy_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bdz_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bdy_), - _bdA_ = caml_call2(Runtime_ocaml_Runtime[83], _bdz_, _bdx_); - return caml_call2(Runtime_ocaml_Runtime[29], _pu_, _bdA_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pv_, [0], _bdl_, _bdk_); - } - function _a9J_(param){ - function _bcJ_(param){ - switch(zone[0]){ - case 0: - var _bc0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$197); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bc0_)) - var - _bc1_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_163000) - : caml_call1(Runtime_ocaml_Runtime[31], cst_196700); - else - var - _bc2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$151), - _bc3_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bc2_), - _bc4_ = caml_call1(Runtime_ocaml_Runtime[69], _bc3_), - _bc5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33700), - _bc6_ = caml_call2(Runtime_ocaml_Runtime[104], _bc5_, _bc4_), - _bc7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230400), - _bc1_ = caml_call2(Runtime_ocaml_Runtime[93], _bc7_, _bc6_); - break; - case 1: - var _bc8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$198); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bc8_)) - var - _bc1_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_145300) - : caml_call1(Runtime_ocaml_Runtime[31], cst_175000); - else - var - _bc9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$152), - _bc__ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bc9_), - _bc$_ = caml_call1(Runtime_ocaml_Runtime[69], _bc__), - _bda_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29700), - _bdb_ = caml_call2(Runtime_ocaml_Runtime[104], _bda_, _bc$_), - _bdc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204700), - _bc1_ = caml_call2(Runtime_ocaml_Runtime[93], _bdc_, _bdb_); - break; - default: - var _bdd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$199); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bdd_)) - var - _bc1_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_135700) - : caml_call1(Runtime_ocaml_Runtime[31], cst_162800); - else - var - _bde_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$153), - _bdf_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bde_), - _bdg_ = caml_call1(Runtime_ocaml_Runtime[69], _bdf_), - _bdh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27100), - _bdi_ = caml_call2(Runtime_ocaml_Runtime[104], _bdh_, _bdg_), - _bdj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189900), - _bc1_ = caml_call2(Runtime_ocaml_Runtime[93], _bdj_, _bdi_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _bc1_, taux_francs_vers_euros); - } - function _bcK_(param){ - switch(type_pret[0]){ - case 0: - var _bcL_ = 0; break; - case 1: - var _bcL_ = 1; break; - case 2: - var _bcL_ = 0; break; - case 3: - var _bcL_ = 0; break; - default: var _bcL_ = 0; - } - var - _bcM_ = 0 === anciennete_logement[0] ? 0 : 1, - _bcN_ = caml_call2(Runtime_ocaml_Runtime[83], _bcM_, _bcL_), - _bcO_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 12, 31), - _bcP_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bcO_), - _bcQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bcP_, _bcN_), - _bcR_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), - _bcS_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bcR_), - _bcT_ = caml_call2(Runtime_ocaml_Runtime[83], _bcS_, _bcQ_), - _bcU_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bcV_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bcU_), - _bcW_ = caml_call2(Runtime_ocaml_Runtime[83], _bcV_, _bcT_), - _bcX_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bcY_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bcX_), - _bcZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bcY_, _bcW_); - return caml_call2(Runtime_ocaml_Runtime[29], _pw_, _bcZ_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _px_, [0], _bcK_, _bcJ_); - } - function _a9K_(param){ - function _bb9_(param){ - switch(zone[0]){ - case 0: - var _bco_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$200); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bco_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_30871) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37243); - var - _bcp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$154), - _bcq_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bcp_), - _bcr_ = caml_call1(Runtime_ocaml_Runtime[69], _bcq_), - _bcs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6372), - _bct_ = caml_call2(Runtime_ocaml_Runtime[104], _bcs_, _bcr_), - _bcu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43615); - return caml_call2(Runtime_ocaml_Runtime[93], _bcu_, _bct_); - case 1: - var _bcv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$201); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bcv_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27548) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33148); - var - _bcw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$155), - _bcx_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bcw_), - _bcy_ = caml_call1(Runtime_ocaml_Runtime[69], _bcx_), - _bcz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5610), - _bcA_ = caml_call2(Runtime_ocaml_Runtime[104], _bcz_, _bcy_), - _bcB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38768); - return caml_call2(Runtime_ocaml_Runtime[93], _bcB_, _bcA_); - default: - var _bcC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$202); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bcC_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25718) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30840); - var - _bcD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$156), - _bcE_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bcD_), - _bcF_ = caml_call1(Runtime_ocaml_Runtime[69], _bcE_), - _bcG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5122), - _bcH_ = caml_call2(Runtime_ocaml_Runtime[104], _bcG_, _bcF_), - _bcI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35962); - return caml_call2(Runtime_ocaml_Runtime[93], _bcI_, _bcH_); - } - } - function _bb__(param){ - switch(type_pret[0]){ - case 0: - var _bb$_ = 0; break; - case 1: - var _bb$_ = 1; break; - case 2: - var _bb$_ = 0; break; - case 3: - var _bb$_ = 0; break; - default: var _bb$_ = 0; - } - var - _bca_ = 0 === anciennete_logement[0] ? 1 : 0, - _bcb_ = caml_call2(Runtime_ocaml_Runtime[83], _bca_, _bb$_), - _bcc_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), - _bcd_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bcc_), - _bce_ = caml_call2(Runtime_ocaml_Runtime[83], _bcd_, _bcb_), - _bcf_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), - _bcg_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bcf_), - _bch_ = caml_call2(Runtime_ocaml_Runtime[83], _bcg_, _bce_), - _bci_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bcj_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bci_), - _bck_ = caml_call2(Runtime_ocaml_Runtime[83], _bcj_, _bch_), - _bcl_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bcm_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bcl_), - _bcn_ = caml_call2(Runtime_ocaml_Runtime[83], _bcm_, _bck_); - return caml_call2(Runtime_ocaml_Runtime[29], _py_, _bcn_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pz_, [0], _bb__, _bb9_); - } - function _a9L_(param){ - function _bbw_(param){ - switch(zone[0]){ - case 0: - var _bbN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$203); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bbN_)) - var - _bbO_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_202500$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_244300); - else - var - _bbP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$157), - _bbQ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bbP_), - _bbR_ = caml_call1(Runtime_ocaml_Runtime[69], _bbQ_), - _bbS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41800), - _bbT_ = caml_call2(Runtime_ocaml_Runtime[104], _bbS_, _bbR_), - _bbU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_286100), - _bbO_ = caml_call2(Runtime_ocaml_Runtime[93], _bbU_, _bbT_); - break; - case 1: - var _bbV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$204); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bbV_)) - var - _bbO_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_180700) - : caml_call1(Runtime_ocaml_Runtime[31], cst_217500); - else - var - _bbW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$158), - _bbX_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bbW_), - _bbY_ = caml_call1(Runtime_ocaml_Runtime[69], _bbX_), - _bbZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36800), - _bb0_ = caml_call2(Runtime_ocaml_Runtime[104], _bbZ_, _bbY_), - _bb1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_254300), - _bbO_ = caml_call2(Runtime_ocaml_Runtime[93], _bb1_, _bb0_); - break; - default: - var _bb2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$205); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bb2_)) - var - _bbO_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_168700) - : caml_call1(Runtime_ocaml_Runtime[31], cst_202300); - else - var - _bb3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$159), - _bb4_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bb3_), - _bb5_ = caml_call1(Runtime_ocaml_Runtime[69], _bb4_), - _bb6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33600), - _bb7_ = caml_call2(Runtime_ocaml_Runtime[104], _bb6_, _bb5_), - _bb8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235900), - _bbO_ = caml_call2(Runtime_ocaml_Runtime[93], _bb8_, _bb7_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _bbO_, taux_francs_vers_euros); - } - function _bbx_(param){ - switch(type_pret[0]){ - case 0: - var _bby_ = 0; break; - case 1: - var _bby_ = 1; break; - case 2: - var _bby_ = 0; break; - case 3: - var _bby_ = 0; break; - default: var _bby_ = 0; - } - var - _bbz_ = 0 === anciennete_logement[0] ? 1 : 0, - _bbA_ = caml_call2(Runtime_ocaml_Runtime[83], _bbz_, _bby_), - _bbB_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 12, 31), - _bbC_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _bbB_), - _bbD_ = caml_call2(Runtime_ocaml_Runtime[83], _bbC_, _bbA_), - _bbE_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), - _bbF_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _bbE_), - _bbG_ = caml_call2(Runtime_ocaml_Runtime[83], _bbF_, _bbD_), - _bbH_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bbI_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bbH_), - _bbJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bbI_, _bbG_), - _bbK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bbL_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bbK_), - _bbM_ = caml_call2(Runtime_ocaml_Runtime[83], _bbL_, _bbJ_); - return caml_call2(Runtime_ocaml_Runtime[29], _pA_, _bbM_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pB_, [0], _bbx_, _bbw_); - } - function _a9M_(param){ - function _baV_(param){ - switch(zone[0]){ - case 0: - var _bba_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$206); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bba_)) - var - _bbb_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_161100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_194400); - else - var - _bbc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$160), - _bbd_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bbc_), - _bbe_ = caml_call1(Runtime_ocaml_Runtime[69], _bbd_), - _bbf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33300), - _bbg_ = caml_call2(Runtime_ocaml_Runtime[104], _bbf_, _bbe_), - _bbh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_227700), - _bbb_ = caml_call2(Runtime_ocaml_Runtime[93], _bbh_, _bbg_); - break; - case 1: - var _bbi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$207); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bbi_)) - var - _bbb_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_143600) - : caml_call1(Runtime_ocaml_Runtime[31], cst_172900); - else - var - _bbj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$161), - _bbk_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bbj_), - _bbl_ = caml_call1(Runtime_ocaml_Runtime[69], _bbk_), - _bbm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29300), - _bbn_ = caml_call2(Runtime_ocaml_Runtime[104], _bbm_, _bbl_), - _bbo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_202200), - _bbb_ = caml_call2(Runtime_ocaml_Runtime[93], _bbo_, _bbn_); - break; - default: - var _bbp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$208); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bbp_)) - var - _bbb_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_134100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_160900); - else - var - _bbq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$162), - _bbr_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bbq_), - _bbs_ = caml_call1(Runtime_ocaml_Runtime[69], _bbr_), - _bbt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26800), - _bbu_ = caml_call2(Runtime_ocaml_Runtime[104], _bbt_, _bbs_), - _bbv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_187700), - _bbb_ = caml_call2(Runtime_ocaml_Runtime[93], _bbv_, _bbu_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _bbb_, taux_francs_vers_euros); - } - function _baW_(param){ - switch(type_pret[0]){ - case 0: - var _baX_ = 0; break; - case 1: - var _baX_ = 1; break; - case 2: - var _baX_ = 0; break; - case 3: - var _baX_ = 0; break; - default: var _baX_ = 0; - } - var - _baY_ = 0 === anciennete_logement[0] ? 0 : 1, - _baZ_ = caml_call2(Runtime_ocaml_Runtime[83], _baY_, _baX_), - _ba0_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 6, 30), - _ba1_ = - caml_call2 - (Runtime_ocaml_Runtime[120], date_signature_pret, _ba0_), - _ba2_ = caml_call2(Runtime_ocaml_Runtime[83], _ba1_, _baZ_), - _ba3_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), - _ba4_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _ba3_), - _ba5_ = caml_call2(Runtime_ocaml_Runtime[83], _ba4_, _ba2_), - _ba6_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _ba7_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ba6_), - _ba8_ = caml_call2(Runtime_ocaml_Runtime[83], _ba7_, _ba5_), - _ba9_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _ba__ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ba9_), - _ba$_ = caml_call2(Runtime_ocaml_Runtime[83], _ba__, _ba8_); - return caml_call2(Runtime_ocaml_Runtime[29], _pC_, _ba$_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pD_, [0], _baW_, _baV_); - } - function _a9N_(param){ - function _bai_(param){ - switch(zone[0]){ - case 0: - var _baz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$209); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _baz_)) - var - _baA_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_200100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_141400); - else - var - _baB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$163), - _baC_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _baB_), - _baD_ = caml_call1(Runtime_ocaml_Runtime[69], _baC_), - _baE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41300), - _baF_ = caml_call2(Runtime_ocaml_Runtime[104], _baE_, _baD_), - _baG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_182700), - _baA_ = caml_call2(Runtime_ocaml_Runtime[93], _baG_, _baF_); - break; - case 1: - var _baH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$210); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _baH_)) - var - _baA_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_178600) - : caml_call1(Runtime_ocaml_Runtime[31], cst_215000); - else - var - _baI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$164), - _baJ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _baI_), - _baK_ = caml_call1(Runtime_ocaml_Runtime[69], _baJ_), - _baL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36400), - _baM_ = caml_call2(Runtime_ocaml_Runtime[104], _baL_, _baK_), - _baN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_251400), - _baA_ = caml_call2(Runtime_ocaml_Runtime[93], _baN_, _baM_); - break; - default: - var _baO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$211); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _baO_)) - var - _baA_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_166700) - : caml_call1(Runtime_ocaml_Runtime[31], cst_199900); - else - var - _baP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$165), - _baQ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _baP_), - _baR_ = caml_call1(Runtime_ocaml_Runtime[69], _baQ_), - _baS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33200), - _baT_ = caml_call2(Runtime_ocaml_Runtime[104], _baS_, _baR_), - _baU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_233100), - _baA_ = caml_call2(Runtime_ocaml_Runtime[93], _baU_, _baT_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _baA_, taux_francs_vers_euros); - } - function _baj_(param){ - switch(type_pret[0]){ - case 0: - var _bak_ = 0; break; - case 1: - var _bak_ = 1; break; - case 2: - var _bak_ = 0; break; - case 3: - var _bak_ = 0; break; - default: var _bak_ = 0; - } - var - _bal_ = 0 === anciennete_logement[0] ? 1 : 0, - _bam_ = caml_call2(Runtime_ocaml_Runtime[83], _bal_, _bak_), - _ban_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 6, 30), - _bao_ = - caml_call2 - (Runtime_ocaml_Runtime[120], date_signature_pret, _ban_), - _bap_ = caml_call2(Runtime_ocaml_Runtime[83], _bao_, _bam_), - _baq_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), - _bar_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _baq_), - _bas_ = caml_call2(Runtime_ocaml_Runtime[83], _bar_, _bap_), - _bat_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _bau_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bat_), - _bav_ = caml_call2(Runtime_ocaml_Runtime[83], _bau_, _bas_), - _baw_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _bax_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _baw_), - _bay_ = caml_call2(Runtime_ocaml_Runtime[83], _bax_, _bav_); - return caml_call2(Runtime_ocaml_Runtime[29], _pE_, _bay_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pF_, [0], _baj_, _bai_); - } - function _a9O_(param){ - function _a$H_(param){ - switch(zone[0]){ - case 0: - var _a$Y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$212); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a$Y_)) - var - _a$Z_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_159500) - : caml_call1(Runtime_ocaml_Runtime[31], cst_192500); - else - var - _a$0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$166), - _a$1_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a$0_), - _a$2_ = caml_call1(Runtime_ocaml_Runtime[69], _a$1_), - _a$3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33000), - _a$4_ = caml_call2(Runtime_ocaml_Runtime[104], _a$3_, _a$2_), - _a$5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225500), - _a$Z_ = caml_call2(Runtime_ocaml_Runtime[93], _a$5_, _a$4_); - break; - case 1: - var _a$6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$213); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a$6_)) - var - _a$Z_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_142200) - : caml_call1(Runtime_ocaml_Runtime[31], cst_171200); - else - var - _a$7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$167), - _a$8_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a$7_), - _a$9_ = caml_call1(Runtime_ocaml_Runtime[69], _a$8_), - _a$__ = caml_call1(Runtime_ocaml_Runtime[31], cst_29000), - _a$$_ = caml_call2(Runtime_ocaml_Runtime[104], _a$__, _a$9_), - _baa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_200200), - _a$Z_ = caml_call2(Runtime_ocaml_Runtime[93], _baa_, _a$$_); - break; - default: - var _bab_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$214); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _bab_)) - var - _a$Z_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_132800) - : caml_call1(Runtime_ocaml_Runtime[31], cst_159300); - else - var - _bac_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$168), - _bad_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _bac_), - _bae_ = caml_call1(Runtime_ocaml_Runtime[69], _bad_), - _baf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26500), - _bag_ = caml_call2(Runtime_ocaml_Runtime[104], _baf_, _bae_), - _bah_ = caml_call1(Runtime_ocaml_Runtime[31], cst_185800$0), - _a$Z_ = caml_call2(Runtime_ocaml_Runtime[93], _bah_, _bag_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _a$Z_, taux_francs_vers_euros); - } - function _a$I_(param){ - switch(type_pret[0]){ - case 0: - var _a$J_ = 0; break; - case 1: - var _a$J_ = 1; break; - case 2: - var _a$J_ = 0; break; - case 3: - var _a$J_ = 0; break; - default: var _a$J_ = 0; - } - var - _a$K_ = 0 === anciennete_logement[0] ? 0 : 1, - _a$L_ = caml_call2(Runtime_ocaml_Runtime[83], _a$K_, _a$J_), - _a$M_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), - _a$N_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _a$M_), - _a$O_ = caml_call2(Runtime_ocaml_Runtime[83], _a$N_, _a$L_), - _a$P_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), - _a$Q_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _a$P_), - _a$R_ = caml_call2(Runtime_ocaml_Runtime[83], _a$Q_, _a$O_), - _a$S_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _a$T_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a$S_), - _a$U_ = caml_call2(Runtime_ocaml_Runtime[83], _a$T_, _a$R_), - _a$V_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _a$W_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a$V_), - _a$X_ = caml_call2(Runtime_ocaml_Runtime[83], _a$W_, _a$U_); - return caml_call2(Runtime_ocaml_Runtime[29], _pG_, _a$X_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pH_, [0], _a$I_, _a$H_); - } - function _a9P_(param){ - function _a_6_(param){ - switch(zone[0]){ - case 0: - var _a$l_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$215); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a$l_)) - var - _a$m_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_198100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_239000); - else - var - _a$n_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$169), - _a$o_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a$n_), - _a$p_ = caml_call1(Runtime_ocaml_Runtime[69], _a$o_), - _a$q_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40900), - _a$r_ = caml_call2(Runtime_ocaml_Runtime[104], _a$q_, _a$p_), - _a$s_ = caml_call1(Runtime_ocaml_Runtime[31], cst_279900), - _a$m_ = caml_call2(Runtime_ocaml_Runtime[93], _a$s_, _a$r_); - break; - case 1: - var _a$t_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$216); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a$t_)) - var - _a$m_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_176800) - : caml_call1(Runtime_ocaml_Runtime[31], cst_212800); - else - var - _a$u_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$170), - _a$v_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a$u_), - _a$w_ = caml_call1(Runtime_ocaml_Runtime[69], _a$v_), - _a$x_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36000), - _a$y_ = caml_call2(Runtime_ocaml_Runtime[104], _a$x_, _a$w_), - _a$z_ = caml_call1(Runtime_ocaml_Runtime[31], cst_248800), - _a$m_ = caml_call2(Runtime_ocaml_Runtime[93], _a$z_, _a$y_); - break; - default: - var _a$A_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$217); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a$A_)) - var - _a$m_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_165000) - : caml_call1(Runtime_ocaml_Runtime[31], cst_197900); - else - var - _a$B_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$171), - _a$C_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a$B_), - _a$D_ = caml_call1(Runtime_ocaml_Runtime[69], _a$C_), - _a$E_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32900), - _a$F_ = caml_call2(Runtime_ocaml_Runtime[104], _a$E_, _a$D_), - _a$G_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230800), - _a$m_ = caml_call2(Runtime_ocaml_Runtime[93], _a$G_, _a$F_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _a$m_, taux_francs_vers_euros); - } - function _a_7_(param){ - switch(type_pret[0]){ - case 0: - var _a_8_ = 0; break; - case 1: - var _a_8_ = 1; break; - case 2: - var _a_8_ = 0; break; - case 3: - var _a_8_ = 0; break; - default: var _a_8_ = 0; - } - var - _a_9_ = 0 === anciennete_logement[0] ? 1 : 0, - _a___ = caml_call2(Runtime_ocaml_Runtime[83], _a_9_, _a_8_), - _a_$_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), - _a$a_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _a_$_), - _a$b_ = caml_call2(Runtime_ocaml_Runtime[83], _a$a_, _a___), - _a$c_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), - _a$d_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _a$c_), - _a$e_ = caml_call2(Runtime_ocaml_Runtime[83], _a$d_, _a$b_), - _a$f_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _a$g_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a$f_), - _a$h_ = caml_call2(Runtime_ocaml_Runtime[83], _a$g_, _a$e_), - _a$i_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _a$j_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a$i_), - _a$k_ = caml_call2(Runtime_ocaml_Runtime[83], _a$j_, _a$h_); - return caml_call2(Runtime_ocaml_Runtime[29], _pI_, _a$k_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pJ_, [0], _a_7_, _a_6_); - } - function _a9Q_(param){ - function _a_t_(param){ - switch(zone[0]){ - case 0: - var _a_K_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$218); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a_K_)) - var - _a_L_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_167800$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_202500$1); - else - var - _a_M_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$172), - _a_N_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a_M_), - _a_O_ = caml_call1(Runtime_ocaml_Runtime[69], _a_N_), - _a_P_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34700$0), - _a_Q_ = caml_call2(Runtime_ocaml_Runtime[104], _a_P_, _a_O_), - _a_R_ = caml_call1(Runtime_ocaml_Runtime[31], cst_237200$0), - _a_L_ = caml_call2(Runtime_ocaml_Runtime[93], _a_R_, _a_Q_); - break; - case 1: - var _a_S_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$219); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a_S_)) - var - _a_L_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_149600$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_180100$0); - else - var - _a_T_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$173), - _a_U_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a_T_), - _a_V_ = caml_call1(Runtime_ocaml_Runtime[69], _a_U_), - _a_W_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500$2), - _a_X_ = caml_call2(Runtime_ocaml_Runtime[104], _a_W_, _a_V_), - _a_Y_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210600$0), - _a_L_ = caml_call2(Runtime_ocaml_Runtime[93], _a_Y_, _a_X_); - break; - default: - var _a_Z_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$220); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a_Z_)) - var - _a_L_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_139700$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_167600$0); - else - var - _a_0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$174), - _a_1_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a_0_), - _a_2_ = caml_call1(Runtime_ocaml_Runtime[69], _a_1_), - _a_3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27900$0), - _a_4_ = caml_call2(Runtime_ocaml_Runtime[104], _a_3_, _a_2_), - _a_5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_195500$0), - _a_L_ = caml_call2(Runtime_ocaml_Runtime[93], _a_5_, _a_4_); - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _a_L_, taux_francs_vers_euros); - } - function _a_u_(param){ - switch(type_pret[0]){ - case 0: - var _a_v_ = 0; break; - case 1: - var _a_v_ = 1; break; - case 2: - var _a_v_ = 0; break; - case 3: - var _a_v_ = 0; break; - default: var _a_v_ = 0; - } - var - _a_w_ = 0 === anciennete_logement[0] ? 0 : 1, - _a_x_ = caml_call2(Runtime_ocaml_Runtime[83], _a_w_, _a_v_), - _a_y_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), - _a_z_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _a_y_), - _a_A_ = caml_call2(Runtime_ocaml_Runtime[83], _a_z_, _a_x_), - _a_B_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), - _a_C_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _a_B_), - _a_D_ = caml_call2(Runtime_ocaml_Runtime[83], _a_C_, _a_A_), - _a_E_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _a_F_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a_E_), - _a_G_ = caml_call2(Runtime_ocaml_Runtime[83], _a_F_, _a_D_), - _a_H_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _a_I_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a_H_), - _a_J_ = caml_call2(Runtime_ocaml_Runtime[83], _a_I_, _a_G_); - return caml_call2(Runtime_ocaml_Runtime[29], _pK_, _a_J_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pL_, [0], _a_u_, _a_t_); - } - var - _a9R_ = + (Runtime_ocaml_Runtime[63],_zZ_,[0],_bNW_,_bNV_)} + var + _bNL_= [0, - function(param){ - function _a9S_(param){ - switch(zone[0]){ - case 0: - var - _a99_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$221); + function(param) + {function _bNM_(param) + {var + _bNR_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bNS_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$2), + _bNT_=caml_call2(Runtime_ocaml_Runtime[104],_bNS_,_bNR_), + _bNU_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_2805$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_5612$2); + return caml_call2(Runtime_ocaml_Runtime[93],_bNU_,_bNT_)} + function _bNN_(param) + {var + _bNO_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bNP_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bNO_), + _bNQ_= + caml_call2(Runtime_ocaml_Runtime[83],_bNP_,copropriete); + return caml_call2(Runtime_ocaml_Runtime[29],_z0_,_bNQ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_z1_,[0],_bNN_,_bNM_)}, + _bNK_, + _bNJ_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_z2_,_bNL_,_bNI_,_bNH_)}], + _bkx_=caml_call4(Runtime_ocaml_Runtime[63],_z3_,_bkw_,_bkv_,_bku_)} + catch(_bNG_) + {_bNG_ = caml_wrap_exception(_bNG_); + if(_bNG_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_zO_]; + throw _bNG_} + var + montant_forfaitaire_charges_d8= + caml_call3 + (Runtime_ocaml_Runtime[28],_z4_,Runtime_ocaml_Runtime[13],_bkx_); + function _bky_(date_signature_pret) + {try + {var + _bnF_=function(param){throw Runtime_ocaml_Runtime[2]}, + _bnG_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_z6_,0)}, + _bnH_= + function(param) + {function _bLq_(param){throw Runtime_ocaml_Runtime[2]} + function _bLr_(param){return 0} + function _bLs_(param) + {function _bM$_(param) + {switch(zone[0]) + {case 0: + var _bNk_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$166); if (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a99_)) + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNk_)) var - _a9__ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_208500$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_251500$0); + _bNl_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_148100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_178700); else var - _a9$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$175), - _a_a_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a9$_), - _a_b_ = caml_call1(Runtime_ocaml_Runtime[69], _a_a_), - _a_c_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43000$0), - _a_d_ = caml_call2(Runtime_ocaml_Runtime[104], _a_c_, _a_b_), - _a_e_ = caml_call1(Runtime_ocaml_Runtime[31], cst_294500$0), - _a9__ = caml_call2(Runtime_ocaml_Runtime[93], _a_e_, _a_d_); + _bNm_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$81), + _bNn_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bNm_), + _bNo_=caml_call1(Runtime_ocaml_Runtime[69],_bNn_), + _bNp_=caml_call1(Runtime_ocaml_Runtime[31],cst_30600), + _bNq_=caml_call2(Runtime_ocaml_Runtime[104],_bNp_,_bNo_), + _bNr_=caml_call1(Runtime_ocaml_Runtime[31],cst_209300), + _bNl_=caml_call2(Runtime_ocaml_Runtime[93],_bNr_,_bNq_); break; case 1: - var - _a_f_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$222); + var _bNs_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$167); if (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a_f_)) + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNs_)) var - _a9__ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_186000$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_223900$0); + _bNl_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_132000) + :caml_call1(Runtime_ocaml_Runtime[31],cst_158900); else var - _a_g_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$176), - _a_h_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a_g_), - _a_i_ = caml_call1(Runtime_ocaml_Runtime[69], _a_h_), - _a_j_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37900$0), - _a_k_ = caml_call2(Runtime_ocaml_Runtime[104], _a_j_, _a_i_), - _a_l_ = caml_call1(Runtime_ocaml_Runtime[31], cst_261800$0), - _a9__ = caml_call2(Runtime_ocaml_Runtime[93], _a_l_, _a_k_); + _bNt_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$82), + _bNu_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bNt_), + _bNv_=caml_call1(Runtime_ocaml_Runtime[69],_bNu_), + _bNw_=caml_call1(Runtime_ocaml_Runtime[31],cst_26900), + _bNx_=caml_call2(Runtime_ocaml_Runtime[104],_bNw_,_bNv_), + _bNy_=caml_call1(Runtime_ocaml_Runtime[31],cst_185800), + _bNl_=caml_call2(Runtime_ocaml_Runtime[93],_bNy_,_bNx_); break; default: - var - _a_m_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$223); + var _bNz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$168); if (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a_m_)) + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNz_)) var - _a9__ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_173600$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_208200$0); + _bNl_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_123300) + :caml_call1(Runtime_ocaml_Runtime[31],cst_147900); else var - _a_n_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$177), - _a_o_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a_n_), - _a_p_ = caml_call1(Runtime_ocaml_Runtime[69], _a_o_), - _a_q_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34600), - _a_r_ = caml_call2(Runtime_ocaml_Runtime[104], _a_q_, _a_p_), - _a_s_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800$0), - _a9__ = caml_call2(Runtime_ocaml_Runtime[93], _a_s_, _a_r_); - } + _bNA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$83), + _bNB_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bNA_), + _bNC_=caml_call1(Runtime_ocaml_Runtime[69],_bNB_), + _bND_=caml_call1(Runtime_ocaml_Runtime[31],cst_24600), + _bNE_=caml_call2(Runtime_ocaml_Runtime[104],_bND_,_bNC_), + _bNF_=caml_call1(Runtime_ocaml_Runtime[31],cst_172500), + _bNl_=caml_call2(Runtime_ocaml_Runtime[93],_bNF_,_bNE_)} return caml_call2 - (Runtime_ocaml_Runtime[104], _a9__, taux_francs_vers_euros); - } - function _a9T_(param){ - switch(type_pret[0]){ - case 0: - var _a9U_ = 0; break; - case 1: - var _a9U_ = 1; break; - case 2: - var _a9U_ = 0; break; - case 3: - var _a9U_ = 0; break; - default: var _a9U_ = 0; - } + (Runtime_ocaml_Runtime[104],_bNl_,taux_francs_vers_euros)} + function _bNa_(param) + {switch(type_pret[0]) + {case 0:var _bNb_=1;break; + case 1:var _bNb_=0;break; + case 2:var _bNb_=0;break; + case 3:var _bNb_=0;break; + default:var _bNb_=0} var - _a9V_ = 0 === anciennete_logement[0] ? 1 : 0, - _a9W_ = caml_call2(Runtime_ocaml_Runtime[83], _a9V_, _a9U_), - _a9X_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), - _a9Y_ = - caml_call2 - (Runtime_ocaml_Runtime[115], date_signature_pret, _a9X_), - _a9Z_ = caml_call2(Runtime_ocaml_Runtime[83], _a9Y_, _a9W_), - _a90_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), - _a91_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _a90_), - _a92_ = caml_call2(Runtime_ocaml_Runtime[83], _a91_, _a9Z_), - _a93_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _a94_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a93_), - _a95_ = caml_call2(Runtime_ocaml_Runtime[83], _a94_, _a92_), - _a96_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _a97_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a96_), - _a98_ = caml_call2(Runtime_ocaml_Runtime[83], _a97_, _a95_); - return caml_call2(Runtime_ocaml_Runtime[29], _pM_, _a98_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _pN_, [0], _a9T_, _a9S_); - }, - _a9Q_, - _a9P_, - _a9O_, - _a9N_, - _a9M_, - _a9L_, - _a9K_, - _a9J_, - _a9I_, - _a9H_, - _a9G_, - _a9F_, - _a9E_, - _a9D_, - _a9C_, - _a9B_, - _a9A_, - _a9z_, - _a9y_, - _a9x_, - _a9w_, - _a9v_, - _a9u_, - _a9t_, - _a9s_, - _a9r_, - _a9q_, - _a9p_, - _a9o_, - _a9n_, - _a9m_, - _a9l_, - _a9k_, - _a9j_, - _a9i_, - _a9h_, - _a9g_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _pO_, _a9R_, _a9f_, _a9e_); - } - function _a8O_(param){return 1;} - var - _a8P_ = - [0, - function(param){ - function _a8Q_(param){ - var _a88_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$224); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _a88_)) - var - _a89_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_86900) - : caml_call1(Runtime_ocaml_Runtime[31], cst_97100); - else - var - _a8__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$178), - _a8$_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _a8__), - _a9a_ = caml_call1(Runtime_ocaml_Runtime[69], _a8$_), - _a9b_ = caml_call1(Runtime_ocaml_Runtime[31], cst_10200), - _a9c_ = caml_call2(Runtime_ocaml_Runtime[104], _a9b_, _a9a_), - _a9d_ = caml_call1(Runtime_ocaml_Runtime[31], cst_107300), - _a89_ = caml_call2(Runtime_ocaml_Runtime[93], _a9d_, _a9c_); - return caml_call2 - (Runtime_ocaml_Runtime[104], _a89_, taux_francs_vers_euros); - } - function _a8R_(param){ - switch(type_pret[0]){ - case 0: - var _a8S_ = 0; break; - case 1: - var _a8S_ = 1; break; - case 2: - var _a8S_ = 0; break; - case 3: - var _a8S_ = 0; break; - default: var _a8S_ = 0; - } - if(0 === anciennete_logement[0]) - var _a8T_ = 0; - else - var - ameliore_par_occupant = anciennete_logement[1], - _a87_ = 0 === ameliore_par_occupant[0] ? 1 : 0, - _a8T_ = _a87_; - var - _a8U_ = caml_call2(Runtime_ocaml_Runtime[83], _a8T_, _a8S_), - _a8V_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), - _a8W_ = + _bNc_=0 === anciennete_logement[0]?0:1, + _bNd_=caml_call2(Runtime_ocaml_Runtime[83],_bNc_,_bNb_), + _bNe_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), + _bNf_= caml_call2 - (Runtime_ocaml_Runtime[120], date_signature_pret, _a8V_), - _a8X_ = caml_call2(Runtime_ocaml_Runtime[83], _a8W_, _a8U_), - _a8Y_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), - _a8Z_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _a8Y_), - _a80_ = caml_call2(Runtime_ocaml_Runtime[83], _a8Z_, _a8X_), - _a81_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _a82_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a81_), - _a83_ = caml_call2(Runtime_ocaml_Runtime[83], _a82_, _a80_), - _a84_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _a85_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a84_), - _a86_ = caml_call2(Runtime_ocaml_Runtime[83], _a85_, _a83_); - return caml_call2(Runtime_ocaml_Runtime[29], _pP_, _a86_); - } + (Runtime_ocaml_Runtime[130],date_signature_pret,_bNe_), + _bNg_=caml_call2(Runtime_ocaml_Runtime[83],_bNf_,_bNd_), + _bNh_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bNi_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bNh_), + _bNj_=caml_call2(Runtime_ocaml_Runtime[83],_bNi_,_bNg_); + return caml_call2(Runtime_ocaml_Runtime[29],_z7_,_bNj_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _pQ_, [0], _a8R_, _a8Q_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _pR_, _a8P_, _a8O_, _a8N_); - }, - _a8J_], - _a8L_ = - caml_call4(Runtime_ocaml_Runtime[63], _pS_, _a8K_, _a8I_, _a8H_); - return _a8L_; - } - catch(_a8M_){ - var _a8G_ = caml_wrap_exception(_a8M_); - if(_a8G_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _or_], 1); - throw caml_maybe_attach_backtrace(_a8G_, 0); - } - } - var - calcul_plafond_mensualite_d832 = - caml_call3 - (Runtime_ocaml_Runtime[28], _pT_, Runtime_ocaml_Runtime[10], _a5e_); - try{ - var - _a5g_ = function(param){return calcul_nombre_parts_dot_n_nomb;}, - _a5h_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _pV_, 1); - }, - _a5i_ = caml_call4(Runtime_ocaml_Runtime[63], _pW_, [0], _a5h_, _a5g_); - } - catch(_a8F_){ - var _a5f_ = caml_wrap_exception(_a8F_); - if(_a5f_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _pU_], 1); - throw caml_maybe_attach_backtrace(_a5f_, 0); - } - var - n_nombre_parts_d832_11 = - caml_call3 - (Runtime_ocaml_Runtime[28], _pX_, Runtime_ocaml_Runtime[15], _a5i_); - try{ - var - _a5k_ = - function(param){ - var - _a8E_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - mensualite_principale, - coefficient_multiplicateur_d83); - return caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage_arrondies, - _a8E_) - ? caml_call2 - (Runtime_ocaml_Runtime[104], - mensualite_principale, - coefficient_multiplicateur_d83) - : ressources_menage_arrondies; - }, - _a5l_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _pZ_, 1); - }, - _a5m_ = - [0, - function(param){ - function _a8C_(param){return ressources_menage_arrondies;} - function _a8D_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _p0_, situation_r822_11_13_17); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _p1_, [0], _a8D_, _a8C_); - }], - _a5n_ = caml_call4(Runtime_ocaml_Runtime[63], _p2_, _a5m_, _a5l_, _a5k_); - } - catch(_a8B_){ - var _a5j_ = caml_wrap_exception(_a8B_); - if(_a5j_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _pY_], 1); - throw caml_maybe_attach_backtrace(_a5j_, 0); - } - var - ressources_menage_avec_d832_18 = - caml_call3 - (Runtime_ocaml_Runtime[28], _p3_, Runtime_ocaml_Runtime[13], _a5n_); - function _a5o_(aide_finale){ - try{ - var - _a8v_ = - function(param){ - var - _a8z_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$225), - _a8A_ = - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_10); - return caml_call2(Runtime_ocaml_Runtime[128], _a8A_, _a8z_) - ? caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_10) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$226); - }, - _a8w_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _p5_, 1); - }, - _a8x_ = caml_call4(Runtime_ocaml_Runtime[63], _p6_, [0], _a8w_, _a8v_); - return _a8x_; - } - catch(_a8y_){ - var _a8u_ = caml_wrap_exception(_a8y_); - if(_a8u_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _p4_], 1); - throw caml_maybe_attach_backtrace(_a8u_, 0); - } - } - var - traitement_aide_finale_minorat = - caml_call3 - (Runtime_ocaml_Runtime[28], _p7_, Runtime_ocaml_Runtime[10], _a5o_); - function _a5p_(allocation_mensuelle){ - try{ - var - _a8k_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[98], - mensualite_principale, - allocation_mensuelle); - }, - _a8l_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _p9_, 1); - }, - _a8m_ = - [0, - function(param){ - function _a8p_(param){ - var - _a8t_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - mensualite_principale, - montant_forfaitaire_charges_d8); - return caml_call2 - (Runtime_ocaml_Runtime[98], _a8t_, allocation_mensuelle); - } - function _a8q_(param){ - var - _a8r_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 6, 30), - _a8s_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _a8r_); - return caml_call2(Runtime_ocaml_Runtime[29], _p__, _a8s_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _p$_, [0], _a8q_, _a8p_); - }], - _a8n_ = - caml_call4(Runtime_ocaml_Runtime[63], _qa_, _a8m_, _a8l_, _a8k_); - return _a8n_; - } - catch(_a8o_){ - var _a8j_ = caml_wrap_exception(_a8o_); - if(_a8j_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _p8_], 1); - throw caml_maybe_attach_backtrace(_a8j_, 0); - } - } - var - depense_nette_minimale_d832_10 = - caml_call3 - (Runtime_ocaml_Runtime[28], _qb_, Runtime_ocaml_Runtime[10], _a5p_); - try{ - var - _a5r_ = - function(param){ - var - _a8g_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _qd_, - Runtime_ocaml_Runtime[16], - date_signature_pret), - _a8h_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _qe_, - calcul_plafond_mensualite_d832), - _a8g_), - _a8i_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _qf_, - Runtime_ocaml_Runtime[13], - _a8h_); - return caml_call2(Runtime_ocaml_Runtime[27], _qg_, _a8i_); - }, - _a5s_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _qh_, 1); - }, - _a5t_ = - [0, - function(param){ - function _a7__(param){ - var - _a8a_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _qi_, - Runtime_ocaml_Runtime[16], - date_signature_pret), - _a8b_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _qj_, - calcul_plafond_mensualite_d832), - _a8a_), - _a8c_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _qk_, - Runtime_ocaml_Runtime[13], - _a8b_), - plafond_signature = - caml_call2(Runtime_ocaml_Runtime[27], _ql_, _a8c_), - _a8d_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _qm_, - Runtime_ocaml_Runtime[16], - date_entree_logement), - _a8e_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _qn_, - calcul_plafond_mensualite_d832), - _a8d_), - _a8f_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _qo_, - Runtime_ocaml_Runtime[13], - _a8e_), - plafond_entree = - caml_call2(Runtime_ocaml_Runtime[27], _qp_, _a8f_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - plafond_signature, - plafond_entree) - ? plafond_entree - : plafond_signature; - } - function _a7$_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], - _qq_, - local_habite_premiere_fois_ben); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _qr_, [0], _a7$_, _a7__); - }], - _a5u_ = caml_call4(Runtime_ocaml_Runtime[63], _qs_, _a5t_, _a5s_, _a5r_); - } - catch(_a79_){ - var _a5q_ = caml_wrap_exception(_a79_); - if(_a5q_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _qc_], 1); - throw caml_maybe_attach_backtrace(_a5q_, 0); - } - var - plafond_mensualite_d832_10_3_b = - caml_call3 - (Runtime_ocaml_Runtime[28], _qt_, Runtime_ocaml_Runtime[13], _a5u_); - try{ - var - _a5w_ = function(param){return date_courante;}, - _a5x_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _qv_, 1); - }, - _a5y_ = caml_call4(Runtime_ocaml_Runtime[63], _qw_, [0], _a5x_, _a5w_), - calcul_equivalence_loyer_minim$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _qx_, Runtime_ocaml_Runtime[16], _a5y_); - } - catch(_a78_){ - var _a5v_ = caml_wrap_exception(_a78_); - if(_a5v_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _qu_], 1); - throw caml_maybe_attach_backtrace(_a5v_, 0); - } - try{ - var - _a5A_ = function(param){return ressources_menage_arrondies;}, - _a5B_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _qz_, 1); - }, - _a5C_ = caml_call4(Runtime_ocaml_Runtime[63], _qA_, [0], _a5B_, _a5A_), - calcul_equivalence_loyer_minim$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _qB_, Runtime_ocaml_Runtime[13], _a5C_); - } - catch(_a77_){ - var _a5z_ = caml_wrap_exception(_a77_); - if(_a5z_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _qy_], 1); - throw caml_maybe_attach_backtrace(_a5z_, 0); - } - try{ - var - _a5E_ = function(param){return 0;}, - _a5F_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _qD_, 1); - }, - _a5G_ = caml_call4(Runtime_ocaml_Runtime[63], _qE_, [0], _a5F_, _a5E_), - calcul_equivalence_loyer_minim$2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _qF_, Runtime_ocaml_Runtime[12], _a5G_); - } - catch(_a76_){ - var _a5D_ = caml_wrap_exception(_a76_); - if(_a5D_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _qC_], 1); - throw caml_maybe_attach_backtrace(_a5D_, 0); - } - try{ - var - _a5I_ = function(param){return n_nombre_parts_d832_11;}, - _a5J_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _qH_, 1); - }, - _a5K_ = caml_call4(Runtime_ocaml_Runtime[63], _qI_, [0], _a5J_, _a5I_), - calcul_equivalence_loyer_minim$3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _qJ_, Runtime_ocaml_Runtime[15], _a5K_); - } - catch(_a75_){ - var _a5H_ = caml_wrap_exception(_a75_); - if(_a5H_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _qG_], 1); - throw caml_maybe_attach_backtrace(_a5H_, 0); - } - var - _a5L_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _qK_, calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$1 = caml_call2(Runtime_ocaml_Runtime[27], _qL_, _a5L_), - calcul_equivalence_loyer_minim$4 = result$1[1]; - try{ - var - _a5N_ = - function(param){ - var - _a72_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - coefficient_multiplicateur_d83$0, - n_nombre_parts_d832_11), - _a73_ = - caml_call2 - (Runtime_ocaml_Runtime[108], ressources_menage_arrondies, _a72_), - _a74_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$2); - return caml_call2(Runtime_ocaml_Runtime[97], _a74_, _a73_); - }, - _a5O_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _qN_, 1); - }, - _a5P_ = caml_call4(Runtime_ocaml_Runtime[63], _qO_, [0], _a5O_, _a5N_); - } - catch(_a71_){ - var _a5M_ = caml_wrap_exception(_a71_); - if(_a5M_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _qM_], 1); - throw caml_maybe_attach_backtrace(_a5M_, 0); - } - var - coefficient_prise_en_charge_d8 = - caml_call3 - (Runtime_ocaml_Runtime[28], _qP_, Runtime_ocaml_Runtime[15], _a5P_); - function _a5Q_(allocation_mensuelle){ - try{ - var - _a7S_ = - function(param){ - var - _a7W_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _qR_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _a7X_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _qS_, - depense_nette_minimale_d832_10), - _a7W_), - _a7Y_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _qT_, - Runtime_ocaml_Runtime[13], - _a7X_), - depense_nette_minimale = - caml_call2(Runtime_ocaml_Runtime[27], _qU_, _a7Y_), - _a7Z_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - ressources_menage_avec_d832_18, - coefficient_multiplicateur_d83$1); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[118], depense_nette_minimale, _a7Z_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$227); - var - _a70_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - ressources_menage_avec_d832_18, - coefficient_multiplicateur_d83$1); - return caml_call2 - (Runtime_ocaml_Runtime[98], _a70_, depense_nette_minimale); - }, - _a7T_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _qV_, 1); - }, - _a7U_ = caml_call4(Runtime_ocaml_Runtime[63], _qW_, [0], _a7T_, _a7S_); - return _a7U_; - } - catch(_a7V_){ - var _a7R_ = caml_wrap_exception(_a7V_); - if(_a7R_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _qQ_], 1); - throw caml_maybe_attach_backtrace(_a7R_, 0); - } - } - var - abattement_depense_nette_minim = - caml_call3 - (Runtime_ocaml_Runtime[28], _qX_, Runtime_ocaml_Runtime[10], _a5Q_); - try{ - var - _a5S_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _a5T_ = function(param){return 0;}, - _a5U_ = - [0, - function(param){ - function _a7u_(param){ - if(! copropriete) return plafond_mensualite_d832_10_3_b; - var _a7Q_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$8); - return caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_mensualite_d832_10_3_b, - _a7Q_); - } - function _a7v_(param){ - var - _a7O_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _a7P_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a7O_); - return caml_call2(Runtime_ocaml_Runtime[29], _qZ_, _a7P_); - } - var - _a7w_ = - [0, - function(param){ - function _a7x_(param){ - if(! copropriete) return plafond_mensualite_d832_10_3_b; - var _a7N_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$9); - return caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_mensualite_d832_10_3_b, - _a7N_); - } - function _a7y_(param){ - var - _a7I_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _a7J_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _a7I_), - _a7K_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _a7L_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a7K_), - _a7M_ = caml_call2(Runtime_ocaml_Runtime[83], _a7L_, _a7J_); - return caml_call2(Runtime_ocaml_Runtime[29], _q0_, _a7M_); - } - var - _a7z_ = - [0, - function(param){ - function _a7A_(param){ - if(! copropriete) return plafond_mensualite_d832_10_3_b; - var - _a7H_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$10); + (Runtime_ocaml_Runtime[63],_z8_,[0],_bNa_,_bM$_)} + function _bLt_(param) + {function _bME_(param) + {switch(zone[0]) + {case 0: + var _bMP_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$169); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMP_)) + var + _bMQ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_184000) + :caml_call1(Runtime_ocaml_Runtime[31],cst_220000); + else + var + _bMR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$84), + _bMS_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bMR_), + _bMT_=caml_call1(Runtime_ocaml_Runtime[69],_bMS_), + _bMU_=caml_call1(Runtime_ocaml_Runtime[31],cst_38000), + _bMV_=caml_call2(Runtime_ocaml_Runtime[104],_bMU_,_bMT_), + _bMW_=caml_call1(Runtime_ocaml_Runtime[31],cst_260000), + _bMQ_=caml_call2(Runtime_ocaml_Runtime[93],_bMW_,_bMV_); + break; + case 1: + var _bMX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$170); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMX_)) + var + _bMQ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_164200) + :caml_call1(Runtime_ocaml_Runtime[31],cst_197700); + else + var + _bMY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$85), + _bMZ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bMY_), + _bM0_=caml_call1(Runtime_ocaml_Runtime[69],_bMZ_), + _bM1_=caml_call1(Runtime_ocaml_Runtime[31],cst_33500), + _bM2_=caml_call2(Runtime_ocaml_Runtime[104],_bM1_,_bM0_), + _bM3_=caml_call1(Runtime_ocaml_Runtime[31],cst_231200), + _bMQ_=caml_call2(Runtime_ocaml_Runtime[93],_bM3_,_bM2_); + break; + default: + var _bM4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$171); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bM4_)) + var + _bMQ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_153200) + :caml_call1(Runtime_ocaml_Runtime[31],cst_183700); + else + var + _bM5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$86), + _bM6_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bM5_), + _bM7_=caml_call1(Runtime_ocaml_Runtime[69],_bM6_), + _bM8_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500$0), + _bM9_=caml_call2(Runtime_ocaml_Runtime[104],_bM8_,_bM7_), + _bM__=caml_call1(Runtime_ocaml_Runtime[31],cst_214200), + _bMQ_=caml_call2(Runtime_ocaml_Runtime[93],_bM__,_bM9_)} + return caml_call2 + (Runtime_ocaml_Runtime[104],_bMQ_,taux_francs_vers_euros)} + function _bMF_(param) + {switch(type_pret[0]) + {case 0:var _bMG_=1;break; + case 1:var _bMG_=0;break; + case 2:var _bMG_=0;break; + case 3:var _bMG_=0;break; + default:var _bMG_=0} + var + _bMH_=0 === anciennete_logement[0]?1:0, + _bMI_=caml_call2(Runtime_ocaml_Runtime[83],_bMH_,_bMG_), + _bMJ_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), + _bMK_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bMJ_), + _bML_=caml_call2(Runtime_ocaml_Runtime[83],_bMK_,_bMI_), + _bMM_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bMN_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bMM_), + _bMO_=caml_call2(Runtime_ocaml_Runtime[83],_bMN_,_bML_); + return caml_call2(Runtime_ocaml_Runtime[29],_z9_,_bMO_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_z__,[0],_bMF_,_bME_)} + function _bLu_(param) + {function _bL6_(param) + {switch(zone[0]) + {case 0: + var _bMi_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$172); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMi_)) + var + _bMj_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_167800) + :caml_call1(Runtime_ocaml_Runtime[31],cst_202500); + else + var + _bMk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$87), + _bMl_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bMk_), + _bMm_=caml_call1(Runtime_ocaml_Runtime[69],_bMl_), + _bMn_=caml_call1(Runtime_ocaml_Runtime[31],cst_34700), + _bMo_=caml_call2(Runtime_ocaml_Runtime[104],_bMn_,_bMm_), + _bMp_=caml_call1(Runtime_ocaml_Runtime[31],cst_237200), + _bMj_=caml_call2(Runtime_ocaml_Runtime[93],_bMp_,_bMo_); + break; + case 1: + var _bMq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$173); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMq_)) + var + _bMj_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_149600) + :caml_call1(Runtime_ocaml_Runtime[31],cst_180100); + else + var + _bMr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$88), + _bMs_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bMr_), + _bMt_=caml_call1(Runtime_ocaml_Runtime[69],_bMs_), + _bMu_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500$1), + _bMv_=caml_call2(Runtime_ocaml_Runtime[104],_bMu_,_bMt_), + _bMw_=caml_call1(Runtime_ocaml_Runtime[31],cst_210600), + _bMj_=caml_call2(Runtime_ocaml_Runtime[93],_bMw_,_bMv_); + break; + default: + var _bMx_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$174); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMx_)) + var + _bMj_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_139700) + :caml_call1(Runtime_ocaml_Runtime[31],cst_167600); + else + var + _bMy_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$89), + _bMz_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bMy_), + _bMA_=caml_call1(Runtime_ocaml_Runtime[69],_bMz_), + _bMB_=caml_call1(Runtime_ocaml_Runtime[31],cst_27900), + _bMC_=caml_call2(Runtime_ocaml_Runtime[104],_bMB_,_bMA_), + _bMD_=caml_call1(Runtime_ocaml_Runtime[31],cst_195500), + _bMj_=caml_call2(Runtime_ocaml_Runtime[93],_bMD_,_bMC_)} + return caml_call2 + (Runtime_ocaml_Runtime[104],_bMj_,taux_francs_vers_euros)} + function _bL7_(param) + {switch(type_pret[0]) + {case 0:var _bL8_=1;break; + case 1:var _bL8_=0;break; + case 2:var _bL8_=0;break; + case 3:var _bL8_=0;break; + default:var _bL8_=0} + var + _bL9_=0 === anciennete_logement[0]?0:1, + _bL__=caml_call2(Runtime_ocaml_Runtime[83],_bL9_,_bL8_), + _bL$_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), + _bMa_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bL$_), + _bMb_=caml_call2(Runtime_ocaml_Runtime[83],_bMa_,_bL__), + _bMc_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), + _bMd_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bMc_), + _bMe_=caml_call2(Runtime_ocaml_Runtime[83],_bMd_,_bMb_), + _bMf_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bMg_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bMf_), + _bMh_=caml_call2(Runtime_ocaml_Runtime[83],_bMg_,_bMe_); + return caml_call2(Runtime_ocaml_Runtime[29],_z$_,_bMh_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Aa_,[0],_bL7_,_bL6_)} + var + _bLv_= + [0, + function(param) + {function _bLw_(param) + {switch(zone[0]) + {case 0: + var _bLK_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$175); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bLK_)) + var + _bLL_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_208500) + :caml_call1(Runtime_ocaml_Runtime[31],cst_251500); + else + var + _bLM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$90), + _bLN_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bLM_), + _bLO_=caml_call1(Runtime_ocaml_Runtime[69],_bLN_), + _bLP_=caml_call1(Runtime_ocaml_Runtime[31],cst_43000), + _bLQ_=caml_call2(Runtime_ocaml_Runtime[104],_bLP_,_bLO_), + _bLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_294500), + _bLL_=caml_call2(Runtime_ocaml_Runtime[93],_bLR_,_bLQ_); + break; + case 1: + var _bLS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$176); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bLS_)) + var + _bLL_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_186000) + :caml_call1(Runtime_ocaml_Runtime[31],cst_223900); + else + var + _bLT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$91), + _bLU_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bLT_), + _bLV_=caml_call1(Runtime_ocaml_Runtime[69],_bLU_), + _bLW_=caml_call1(Runtime_ocaml_Runtime[31],cst_37900), + _bLX_=caml_call2(Runtime_ocaml_Runtime[104],_bLW_,_bLV_), + _bLY_=caml_call1(Runtime_ocaml_Runtime[31],cst_261800), + _bLL_=caml_call2(Runtime_ocaml_Runtime[93],_bLY_,_bLX_); + break; + default: + var _bLZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$177); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bLZ_)) + var + _bLL_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_173600) + :caml_call1(Runtime_ocaml_Runtime[31],cst_208200); + else + var + _bL0_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$92), + _bL1_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bL0_), + _bL2_=caml_call1(Runtime_ocaml_Runtime[69],_bL1_), + _bL3_=caml_call1(Runtime_ocaml_Runtime[31],cst_35600), + _bL4_=caml_call2(Runtime_ocaml_Runtime[104],_bL3_,_bL2_), + _bL5_=caml_call1(Runtime_ocaml_Runtime[31],cst_242800), + _bLL_=caml_call2(Runtime_ocaml_Runtime[93],_bL5_,_bL4_)} return caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_mensualite_d832_10_3_b, - _a7H_); - } - function _a7B_(param){ + (Runtime_ocaml_Runtime[104],_bLL_,taux_francs_vers_euros)} + function _bLx_(param) + {switch(type_pret[0]) + {case 0:var _bLy_=1;break; + case 1:var _bLy_=0;break; + case 2:var _bLy_=0;break; + case 3:var _bLy_=0;break; + default:var _bLy_=0} var - _a7C_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _a7D_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a7C_), - _a7E_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _a7F_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _a7E_), - _a7G_ = caml_call2(Runtime_ocaml_Runtime[83], _a7F_, _a7D_); - return caml_call2(Runtime_ocaml_Runtime[29], _q1_, _a7G_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _q2_, [0], _a7B_, _a7A_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _q3_, _a7z_, _a7y_, _a7x_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _q4_, _a7w_, _a7v_, _a7u_); - }], - _a5V_ = caml_call4(Runtime_ocaml_Runtime[63], _q5_, _a5U_, _a5T_, _a5S_); - } - catch(_a7t_){ - var _a5R_ = caml_wrap_exception(_a7t_); - if(_a5R_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _qY_], 1); - throw caml_maybe_attach_backtrace(_a5R_, 0); - } - var - plafond_mensualite_d832_10_3_c = - caml_call3 - (Runtime_ocaml_Runtime[28], _q6_, Runtime_ocaml_Runtime[13], _a5V_); - try{ - var - _a5X_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _a5Y_ = function(param){return 0;}, - _a5Z_ = - function(param){ - function _a7q_(param){return calcul_equivalence_loyer_minim$4;} - function _a7r_(param){ - switch(type_travaux_logement[0]){ - case 0: - var _a7s_ = 0; break; - case 1: - var _a7s_ = 1; break; - default: var _a7s_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _q8_, _a7s_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _q9_, [0], _a7r_, _a7q_); - }, - _a50_ = - [0, - function(param){ - function _a7b_(param){ - var - ressources_menage_arrondies$0 = - caml_call1 - (Runtime_ocaml_Runtime[70], ressources_menage_arrondies), - montant_limite_tranches_d832_1$0 = - caml_call1 - (Runtime_ocaml_Runtime[70], montant_limite_tranches_d832_1), - _a7g_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$2), - _a7h_ = - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11); - if - (caml_call2 - (Runtime_ocaml_Runtime[117], - ressources_menage_arrondies$0, - _a7h_)) - var - _a7i_ = - caml_call2 - (Runtime_ocaml_Runtime[103], - ressources_menage_arrondies$0, - taux_tranche_inferieure_d832_1); - else - var - _a7p_ = - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11), - _a7i_ = - caml_call2 - (Runtime_ocaml_Runtime[103], - _a7p_, - taux_tranche_inferieure_d832_1); - var - _a7j_ = - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11); - if - (caml_call2 - (Runtime_ocaml_Runtime[127], - ressources_menage_arrondies$0, - _a7j_)) - var - _a7k_ = - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11), - _a7l_ = - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - _a7k_), - _a7m_ = - caml_call2 - (Runtime_ocaml_Runtime[103], - _a7l_, - taux_tranche_superieure_d832_1); - else - var _a7m_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$228); - var - _a7n_ = caml_call2(Runtime_ocaml_Runtime[92], _a7m_, _a7i_), - _a7o_ = caml_call2(Runtime_ocaml_Runtime[107], _a7n_, _a7g_); - return caml_call1(Runtime_ocaml_Runtime[71], _a7o_); - } - function _a7c_(param){ - switch(type_travaux_logement[0]){ - case 0: - var _a7d_ = 0; break; - case 1: - var _a7d_ = 0; break; - default: var _a7d_ = 1; - } - switch(type_travaux_logement[0]){ - case 0: - var _a7e_ = 1; break; - case 1: - var _a7e_ = 0; break; - default: var _a7e_ = 0; - } - var _a7f_ = caml_call2(Runtime_ocaml_Runtime[84], _a7e_, _a7d_); - return caml_call2(Runtime_ocaml_Runtime[29], _q__, _a7f_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _q$_, [0], _a7c_, _a7b_); - }, - _a5Z_], - _a51_ = caml_call4(Runtime_ocaml_Runtime[63], _ra_, _a50_, _a5Y_, _a5X_); - } - catch(_a7a_){ - var _a5W_ = caml_wrap_exception(_a7a_); - if(_a5W_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _q7_], 1); - throw caml_maybe_attach_backtrace(_a5W_, 0); - } - var - mensualite_minimale = - caml_call3 - (Runtime_ocaml_Runtime[28], _rb_, Runtime_ocaml_Runtime[13], _a51_); - try{ - var - _a53_ = - function(param){ - var - _a66_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$10), - _a67_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$11), - _a68_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_005$2), - _a69_ = - caml_call2 - (Runtime_ocaml_Runtime[97], - coefficient_prise_en_charge_d8, - _a68_), - _a6__ = caml_call2(Runtime_ocaml_Runtime[103], _a69_, _a67_), - _a6$_ = caml_call1(Runtime_ocaml_Runtime[78], _a6__); - return caml_call2(Runtime_ocaml_Runtime[107], _a6$_, _a66_); - }, - _a54_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _rd_, 1); - }, - _a55_ = caml_call4(Runtime_ocaml_Runtime[63], _re_, [0], _a54_, _a53_); - } - catch(_a65_){ - var _a52_ = caml_wrap_exception(_a65_); - if(_a52_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _rc_], 1); - throw caml_maybe_attach_backtrace(_a52_, 0); - } - var - coefficient_prise_en_charge_d8$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _rf_, Runtime_ocaml_Runtime[15], _a55_); - function _a56_(aide_finale){ - try{ - var - _a6T_ = - function(param){ - var - _a6X_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _rh_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a6Y_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _ri_, - traitement_aide_finale_minorat), - _a6X_), - _a6Z_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _rj_, - Runtime_ocaml_Runtime[13], - _a6Y_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _rk_, _a6Z_), - _a60_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _rl_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _a61_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _rm_, - abattement_depense_nette_minim), - _a60_), - _a62_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _rn_, - Runtime_ocaml_Runtime[13], - _a61_), - _a63_ = caml_call2(Runtime_ocaml_Runtime[27], _ro_, _a62_), - aide_finale$1 = - caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _a63_), - _a64_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$229); - return caml_call2(Runtime_ocaml_Runtime[128], aide_finale$1, _a64_) - ? aide_finale$1 - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$230); - }, - _a6U_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _rp_, 1); - }, - _a6V_ = caml_call4(Runtime_ocaml_Runtime[63], _rq_, [0], _a6U_, _a6T_); - return _a6V_; - } - catch(_a6W_){ - var _a6S_ = caml_wrap_exception(_a6W_); - if(_a6S_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _rg_], 1); - throw caml_maybe_attach_backtrace(_a6S_, 0); - } - } - var - traitement_aide_finale_abattem = - caml_call3 - (Runtime_ocaml_Runtime[28], _rr_, Runtime_ocaml_Runtime[10], _a56_); - try{ - var - _a58_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[123], - mensualite_principale, - plafond_mensualite_d832_10_3_c) - ? plafond_mensualite_d832_10_3_c - : mensualite_principale; - }, - _a59_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _rt_, 1); - }, - _a5__ = caml_call4(Runtime_ocaml_Runtime[63], _ru_, [0], _a59_, _a58_); - } - catch(_a6R_){ - var _a57_ = caml_wrap_exception(_a6R_); - if(_a57_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _rs_], 1); - throw caml_maybe_attach_backtrace(_a57_, 0); - } - var - mensualite_eligible = - caml_call3 - (Runtime_ocaml_Runtime[28], _rv_, Runtime_ocaml_Runtime[13], _a5__); - try{ - var - _a6a_ = - function(param){ - var _a6Q_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$3); - return caml_call2 - (Runtime_ocaml_Runtime[127], - coefficient_prise_en_charge_d8$0, - _a6Q_) - ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$4) - : coefficient_prise_en_charge_d8$0; - }, - _a6b_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _rx_, 1); - }, - _a6c_ = caml_call4(Runtime_ocaml_Runtime[63], _ry_, [0], _a6b_, _a6a_); - } - catch(_a6P_){ - var _a5$_ = caml_wrap_exception(_a6P_); - if(_a5$_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _rw_], 1); - throw caml_maybe_attach_backtrace(_a5$_, 0); - } - var - coefficient_prise_en_charge_d8$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _rz_, Runtime_ocaml_Runtime[15], _a6c_); - function _a6d_(aide_finale){ - try{ - var - _a6A_ = - function(param){ - var - _a6E_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _rB_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a6F_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _rC_, - traitement_aide_finale_abattem), - _a6E_), - _a6G_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _rD_, - Runtime_ocaml_Runtime[13], - _a6F_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _rE_, _a6G_), - _a6H_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _rF_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _a6I_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _rG_, - contributions_sociales_dot_mon), - _a6H_), - _a6J_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _rH_, - Runtime_ocaml_Runtime[13], - _a6I_), - crds = caml_call2(Runtime_ocaml_Runtime[27], _rI_, _a6J_), - _a6K_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$1), - _a6L_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), - _a6M_ = caml_call2(Runtime_ocaml_Runtime[98], _a6L_, _a6K_), - aide_finale_moins_crds_arrondi = - caml_call1(Runtime_ocaml_Runtime[77], _a6M_), - _a6N_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$231), - _a6O_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128], _a6O_, _a6N_) - ? caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$232); - }, - _a6B_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _rJ_, 1); - }, - _a6C_ = caml_call4(Runtime_ocaml_Runtime[63], _rK_, [0], _a6B_, _a6A_); - return _a6C_; - } - catch(_a6D_){ - var _a6z_ = caml_wrap_exception(_a6D_); - if(_a6z_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _rA_], 1); - throw caml_maybe_attach_backtrace(_a6z_, 0); - } - } - var - traitement_aide_finale_contrib = - caml_call3 - (Runtime_ocaml_Runtime[28], _rL_, Runtime_ocaml_Runtime[10], _a6d_); - try{ - var - _a6f_ = - function(param){ - var - _a6w_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - mensualite_eligible, - montant_forfaitaire_charges_d8), - _a6x_ = - caml_call2(Runtime_ocaml_Runtime[98], _a6w_, mensualite_minimale), - aide_finale = - caml_call2 - (Runtime_ocaml_Runtime[104], - _a6x_, - coefficient_prise_en_charge_d8$1), - _a6y_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$233); - return caml_call2(Runtime_ocaml_Runtime[113], aide_finale, _a6y_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$234) - : aide_finale; - }, - _a6g_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _rN_, 1); - }, - _a6h_ = caml_call4(Runtime_ocaml_Runtime[63], _rO_, [0], _a6g_, _a6f_); - } - catch(_a6v_){ - var _a6e_ = caml_wrap_exception(_a6v_); - if(_a6e_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _rM_], 1); - throw caml_maybe_attach_backtrace(_a6e_, 0); - } - var - aide_finale_formule = - caml_call3 - (Runtime_ocaml_Runtime[28], _rP_, Runtime_ocaml_Runtime[13], _a6h_); - function _a6i_(aide_finale){ - try{ - var - _a6o_ = - function(param){ - var - _a6s_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _rR_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a6t_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _rS_, - traitement_aide_finale_contrib), - _a6s_), - _a6u_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _rT_, - Runtime_ocaml_Runtime[13], - _a6t_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _rU_, _a6u_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d832_10) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$235) - : aide_finale$0; - }, - _a6p_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _rV_, 1); - }, - _a6q_ = caml_call4(Runtime_ocaml_Runtime[63], _rW_, [0], _a6p_, _a6o_); - return _a6q_; - } - catch(_a6r_){ - var _a6n_ = caml_wrap_exception(_a6r_); - if(_a6n_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _rQ_], 1); - throw caml_maybe_attach_backtrace(_a6n_, 0); - } - } - var - traitement_aide_finale_montant = - caml_call3 - (Runtime_ocaml_Runtime[28], _rX_, Runtime_ocaml_Runtime[10], _a6i_); - try{ - var - _a6k_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _a6l_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a6k_); - } - catch(_a6m_){ - var _a6j_ = caml_wrap_exception(_a6m_); - if(_a6j_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _rY_], 1); - throw caml_maybe_attach_backtrace(_a6j_, 0); - } - if(_a6l_) - return [0, - mensualite_eligible, - mensualite_minimale, - coefficient_prise_en_charge_d8$1, - aide_finale_formule, - traitement_aide_finale_montant]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _rZ_], 1); - } - function ressources_aides_personnelle_l(ressources_aides_personnelle_l){ - var - ressources_demandeur = ressources_aides_personnelle_l[1], - ressources_conjoint = ressources_aides_personnelle_l[2], - personnes_vivant_habituellemen = ressources_aides_personnelle_l[3], - demandeur_exerce_activite_remu = ressources_aides_personnelle_l[4], - conjoint_exerce_activite_remun = ressources_aides_personnelle_l[5], - personnes_a_charge = ressources_aides_personnelle_l[6], - situation_familiale = ressources_aides_personnelle_l[7], - mode_occupation = ressources_aides_personnelle_l[8], - date_courante = ressources_aides_personnelle_l[9], - condition_age_bourse_enseignem = ressources_aides_personnelle_l[10], - demandeur_poursuit_des_etudes = ressources_aides_personnelle_l[11], - date_demande_ou_reexamen_droit = ressources_aides_personnelle_l[12], - paiement_logement_distinct_pro = ressources_aides_personnelle_l[13]; - try{ - var - _a3g_ = - function(param){ - function _a4j_(personne){return personne[2];} - var - _a4k_ = - caml_call2 - (Runtime_ocaml_Runtime[87], - _a4j_, - personnes_vivant_habituellemen), - _a4l_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$236); - function _a4m_(sum1, sum2){ - return caml_call2(Runtime_ocaml_Runtime[93], sum1, sum2); - } - return caml_call3(Runtime_ocaml_Runtime[88], _a4m_, _a4l_, _a4k_); - }, - _a3h_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _r1_, 1); - }, - _a3i_ = caml_call4(Runtime_ocaml_Runtime[63], _r2_, [0], _a3h_, _a3g_); - } - catch(_a4i_){ - var _a3f_ = caml_wrap_exception(_a4i_); - if(_a3f_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _r0_], 1); - throw caml_maybe_attach_backtrace(_a3f_, 0); - } - var - ressources_personnes_vivant_ha = - caml_call3 - (Runtime_ocaml_Runtime[28], _r3_, Runtime_ocaml_Runtime[13], _a3i_); - try{ - var - _a3k_ = - function(param){ - var - _a4e_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$237), - _a4f_ = caml_call1(Runtime_ocaml_Runtime[68], personnes_a_charge); - if(caml_call2(Runtime_ocaml_Runtime[86], _a4f_, _a4e_)) - var abattement = caml_call1(Runtime_ocaml_Runtime[31], cst_0$238); - else - var - _a4g_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$33), - _a4h_ = caml_call1(Runtime_ocaml_Runtime[68], personnes_a_charge), - abattement = - caml_call2(Runtime_ocaml_Runtime[116], _a4h_, _a4g_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_90100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_135000); - switch(situation_familiale[0]){ - case 0: - return abattement; - case 1: - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$239); - case 2: - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$240); - case 3: - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$241); - case 4: - return abattement; - default: return caml_call1(Runtime_ocaml_Runtime[31], cst_0$242); - } - }, - _a3l_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _r5_, 1); - }, - _a3m_ = caml_call4(Runtime_ocaml_Runtime[63], _r6_, [0], _a3l_, _a3k_); - } - catch(_a4d_){ - var _a3j_ = caml_wrap_exception(_a4d_); - if(_a3j_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _r4_], 1); - throw caml_maybe_attach_backtrace(_a3j_, 0); - } - caml_call3 - (Runtime_ocaml_Runtime[28], _r7_, Runtime_ocaml_Runtime[13], _a3m_); - try{ - var - _a3o_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_9500); - }, - _a3p_ = - function(param){ - var - _a4b_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _a4c_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a4b_); - return caml_call2(Runtime_ocaml_Runtime[29], _r9_, _a4c_); - }, - _a3q_ = caml_call4(Runtime_ocaml_Runtime[63], _r__, [0], _a3p_, _a3o_); - } - catch(_a4a_){ - var _a3n_ = caml_wrap_exception(_a4a_); - if(_a3n_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _r8_], 1); - throw caml_maybe_attach_backtrace(_a3n_, 0); - } - var - montant_forfaitaire_r_822_7 = - caml_call3 - (Runtime_ocaml_Runtime[28], _r$_, Runtime_ocaml_Runtime[13], _a3q_); - try{ - var - _a3s_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_258900); - }, - _a3t_ = - function(param){ - var - _a3__ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _a3$_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a3__); - return caml_call2(Runtime_ocaml_Runtime[29], _sb_, _a3$_); - }, - _a3u_ = caml_call4(Runtime_ocaml_Runtime[63], _sc_, [0], _a3t_, _a3s_); - } - catch(_a39_){ - var _a3r_ = caml_wrap_exception(_a39_); - if(_a3r_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _sa_], 1); - throw caml_maybe_attach_backtrace(_a3r_, 0); - } - var - montant_forfaitaire_r_822_8 = - caml_call3 - (Runtime_ocaml_Runtime[28], _sd_, Runtime_ocaml_Runtime[13], _a3u_); - try{ - var - _a3w_ = function(param){return date_demande_ou_reexamen_droit;}, - _a3x_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _sf_, 1); - }, - _a3y_ = caml_call4(Runtime_ocaml_Runtime[63], _sg_, [0], _a3x_, _a3w_), - base_mensuelle_allocations_fam$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _sh_, Runtime_ocaml_Runtime[16], _a3y_); - } - catch(_a38_){ - var _a3v_ = caml_wrap_exception(_a38_); - if(_a3v_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _se_], 1); - throw caml_maybe_attach_backtrace(_a3v_, 0); - } - var - _a3z_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _si_, base_mensuelle_allocations_fam), - [0, base_mensuelle_allocations_fam$0]), - result = caml_call2(Runtime_ocaml_Runtime[27], _sj_, _a3z_), - base_mensuelle_allocations_fam$1 = result[1]; - try{ - var - _a3B_ = - function(param){ - var - _a37_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - ressources_demandeur, - ressources_conjoint); - return caml_call2 - (Runtime_ocaml_Runtime[93], - _a37_, - ressources_personnes_vivant_ha); - }, - _a3C_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _sl_, 1); - }, - _a3D_ = - [0, - function(param){ - function _a30_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$243); - } - function _a31_(param){ - var - _a32_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_age_bourse_enseignem, - demandeur_poursuit_des_etudes); - switch(mode_occupation[0]){ - case 0: - var _a33_ = 0; break; - case 1: - var _a33_ = 1; break; - case 2: - var _a33_ = 0; break; - case 3: - var _a33_ = 0; break; - default: var _a33_ = 0; - } - switch(mode_occupation[0]){ - case 0: - var _a34_ = 1; break; - case 1: - var _a34_ = 0; break; - case 2: - var _a34_ = 0; break; - case 3: - var _a34_ = 0; break; - default: var _a34_ = 0; - } - var - _a35_ = caml_call2(Runtime_ocaml_Runtime[84], _a34_, _a33_), - _a36_ = caml_call2(Runtime_ocaml_Runtime[83], _a35_, _a32_); - return caml_call2(Runtime_ocaml_Runtime[29], _sm_, _a36_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _sn_, [0], _a31_, _a30_); - }], - _a3E_ = caml_call4(Runtime_ocaml_Runtime[63], _so_, _a3D_, _a3C_, _a3B_); - } - catch(_a3Z_){ - var _a3A_ = caml_wrap_exception(_a3Z_); - if(_a3A_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _sk_], 1); - throw caml_maybe_attach_backtrace(_a3A_, 0); - } - var - ressources_prises_en_compte = - caml_call3 - (Runtime_ocaml_Runtime[28], _sp_, Runtime_ocaml_Runtime[13], _a3E_); - try{ - var - _a3G_ = - function(param){ - return 0 === paiement_logement_distinct_pro[0] - ? montant_forfaitaire_r_822_8 - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$244); - }, - _a3H_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _sr_, 1); - }, - _a3I_ = caml_call4(Runtime_ocaml_Runtime[63], _ss_, [0], _a3H_, _a3G_); - } - catch(_a3Y_){ - var _a3F_ = caml_wrap_exception(_a3Y_); - if(_a3F_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _sq_], 1); - throw caml_maybe_attach_backtrace(_a3F_, 0); - } - caml_call3 - (Runtime_ocaml_Runtime[28], _st_, Runtime_ocaml_Runtime[13], _a3I_); - try{ - var - _a3K_ = - function(param){ - var - _a3T_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$3), - _a3U_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - base_mensuelle_allocations_fam$1, - _a3T_), - _a3V_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - ressources_demandeur, - ressources_conjoint), - _a3W_ = caml_call2(Runtime_ocaml_Runtime[128], _a3V_, _a3U_), - _a3X_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - conjoint_exerce_activite_remun, - _a3W_); - return caml_call2 - (Runtime_ocaml_Runtime[83], - demandeur_exerce_activite_remu, - _a3X_) - ? montant_forfaitaire_r_822_7 - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$245); - }, - _a3L_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _sv_, 1); - }, - _a3M_ = caml_call4(Runtime_ocaml_Runtime[63], _sw_, [0], _a3L_, _a3K_); - } - catch(_a3S_){ - var _a3J_ = caml_wrap_exception(_a3S_); - if(_a3J_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _su_], 1); - throw caml_maybe_attach_backtrace(_a3J_, 0); - } - caml_call3 - (Runtime_ocaml_Runtime[28], _sx_, Runtime_ocaml_Runtime[13], _a3M_); - try{ - var - _a3O_ = 1, - _a3P_ = - function(acc, personne){ - return caml_call2(Runtime_ocaml_Runtime[83], acc, personne[1]); - }, - _a3Q_ = - caml_call3 - (Runtime_ocaml_Runtime[136], - _a3P_, - _a3O_, - personnes_vivant_habituellemen); - } - catch(_a3R_){ - var _a3N_ = caml_wrap_exception(_a3R_); - if(_a3N_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _sy_], 1); - throw caml_maybe_attach_backtrace(_a3N_, 0); - } - if(_a3Q_) return [0, ressources_prises_en_compte]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _sz_], 1); - } - function eligibilite_prestations_famili(eligibilite_prestations_famili){ - var - date_courante = eligibilite_prestations_famili[1], - residence = eligibilite_prestations_famili[3], - age_l512_3_2 = eligibilite_prestations_famili[4]; - try{ - var - _a1P_ = - function(param){ - function _a3d_(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 20, 0, 0); - } - function _a3e_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _sB_, 1); - } - return caml_call4(Runtime_ocaml_Runtime[63], _sC_, [0], _a3e_, _a3d_); - }, - _a1Q_ = function(param){return 1;}, - _a1R_ = [0, function(param){return caml_call1(age_l512_3_2, 0);}], - _a1S_ = caml_call4(Runtime_ocaml_Runtime[63], _sD_, _a1R_, _a1Q_, _a1P_); - } - catch(_a3c_){ - var _a1O_ = caml_wrap_exception(_a3c_); - if(_a1O_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _sA_], 1); - throw caml_maybe_attach_backtrace(_a1O_, 0); - } - var - age_l512_3_2$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _sE_, Runtime_ocaml_Runtime[17], _a1S_); - try{ - var - _a1U_ = function(param){return date_courante;}, - _a1V_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _sG_, 1); - }, - _a1W_ = caml_call4(Runtime_ocaml_Runtime[63], _sH_, [0], _a1V_, _a1U_), - smic_dot_date_courante = - caml_call3 - (Runtime_ocaml_Runtime[28], _sI_, Runtime_ocaml_Runtime[16], _a1W_); - } - catch(_a3b_){ - var _a1T_ = caml_wrap_exception(_a3b_); - if(_a1T_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _sF_], 1); - throw caml_maybe_attach_backtrace(_a1T_, 0); - } - try{ - var - _a1Y_ = function(param){return residence;}, - _a1Z_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _sK_, 1); - }, - _a10_ = caml_call4(Runtime_ocaml_Runtime[63], _sL_, [0], _a1Z_, _a1Y_), - smic_dot_residence = - caml_call3(Runtime_ocaml_Runtime[28], _sM_, embed_collectivite, _a10_); - } - catch(_a3a_){ - var _a1X_ = caml_wrap_exception(_a3a_); - if(_a1X_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _sJ_], 1); - throw caml_maybe_attach_backtrace(_a1X_, 0); - } - var - _a11_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _sN_, smic), - [0, smic_dot_date_courante, smic_dot_residence]), - result = caml_call2(Runtime_ocaml_Runtime[27], _sO_, _a11_), - smic_dot_brut_horaire = result[1]; - try{ - var - _a13_ = function(param){return 0;}, - _a14_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _sQ_, 1); - }, - _a15_ = - [0, - function(param){ - function _a2Z_(param){return 1;} - function _a20_(param){ - var - _a21_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sR_), - _a22_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sS_), - _a23_ = caml_call2(Runtime_ocaml_Runtime[84], _a22_, _a21_), - _a24_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sT_), - _a25_ = caml_call2(Runtime_ocaml_Runtime[84], _a24_, _a23_), - _a26_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sU_), - _a27_ = caml_call2(Runtime_ocaml_Runtime[84], _a26_, _a25_), - _a28_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sV_), - _a29_ = caml_call2(Runtime_ocaml_Runtime[84], _a28_, _a27_), - _a2__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sW_), - _a2$_ = caml_call2(Runtime_ocaml_Runtime[84], _a2__, _a29_); - return caml_call2(Runtime_ocaml_Runtime[29], _sX_, _a2$_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _sY_, [0], _a20_, _a2Z_); - }], - _a16_ = caml_call4(Runtime_ocaml_Runtime[63], _sZ_, _a15_, _a14_, _a13_); - } - catch(_a2Y_){ - var _a12_ = caml_wrap_exception(_a2Y_); - if(_a12_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _sP_], 1); - throw caml_maybe_attach_backtrace(_a12_, 0); - } - var - regime_outre_mer_l751_1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _s0_, Runtime_ocaml_Runtime[12], _a16_); - try{ - var - _a18_ = - function(param){ - var - _a2V_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169), - _a2W_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55), - _a2X_ = - caml_call2 - (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _a2W_); - return caml_call2(Runtime_ocaml_Runtime[104], _a2X_, _a2V_); - }, - _a19_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _s2_, 1); - }, - _a1__ = - [0, - function(param){ - function _a2Q_(param){ - var - _a2S_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169$0), - _a2T_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55$0), - _a2U_ = - caml_call2 - (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _a2T_); - return caml_call2(Runtime_ocaml_Runtime[104], _a2U_, _a2S_); - } - function _a2R_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _s3_, regime_outre_mer_l751_1); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _s4_, [0], _a2R_, _a2Q_); - }], - _a1$_ = caml_call4(Runtime_ocaml_Runtime[63], _s5_, _a1__, _a19_, _a18_); - } - catch(_a2P_){ - var _a17_ = caml_wrap_exception(_a2P_); - if(_a17_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _s1_], 1); - throw caml_maybe_attach_backtrace(_a17_, 0); - } - var - plafond_l512_3_2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _s6_, Runtime_ocaml_Runtime[13], _a1$_); - function _a2a_(enfant){ - try{ - var - _a2B_ = function(param){return 0;}, - _a2C_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _s8_, 1); - }, - _a2D_ = - [0, - function(param){ - function _a2G_(param){return 1;} - function _a2H_(param){ - var - _a2I_ = - caml_call2 - (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2); - switch(enfant[2][0]){ - case 0: - var _a2J_ = 0; break; - case 1: - var _a2J_ = 0; break; - default: var _a2J_ = 1; - } - switch(enfant[2][0]){ - case 0: - var _a2K_ = 0; break; - case 1: - var _a2K_ = 1; break; - default: var _a2K_ = 0; - } - var _a2L_ = caml_call2(Runtime_ocaml_Runtime[84], _a2K_, _a2J_); - switch(enfant[2][0]){ - case 0: - var _a2M_ = 1; break; - case 1: - var _a2M_ = 0; break; - default: var _a2M_ = 0; - } - var - _a2N_ = caml_call2(Runtime_ocaml_Runtime[84], _a2M_, _a2L_), - _a2O_ = caml_call2(Runtime_ocaml_Runtime[83], _a2N_, _a2I_); - return caml_call2(Runtime_ocaml_Runtime[29], _s9_, _a2O_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _s__, [0], _a2H_, _a2G_); - }], - _a2E_ = - caml_call4(Runtime_ocaml_Runtime[63], _s$_, _a2D_, _a2C_, _a2B_); - return _a2E_; - } - catch(_a2F_){ - var _a2A_ = caml_wrap_exception(_a2F_); - if(_a2A_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _s7_], 1); - throw caml_maybe_attach_backtrace(_a2A_, 0); - } - } - var - conditions_hors_age = - caml_call3 - (Runtime_ocaml_Runtime[28], _ta_, Runtime_ocaml_Runtime[10], _a2a_); - function _a2b_(enfant){ - try{ - var - _a2d_ = function(param){return 0;}, - _a2e_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _tc_, 1); - }, - _a2f_ = - [0, - function(param){ - function _a2i_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _a2j_(param){return 0;} - var - _a2k_ = - [0, - function(param){ - function _a2l_(param){return 1;} - function _a2m_(param){ - switch(enfant[2][0]){ - case 0: - var _a2x_ = 0; break; - case 1: - var _a2x_ = 1; break; - default: var _a2x_ = 0; - } - switch(enfant[2][0]){ - case 0: - var _a2y_ = 1; break; - case 1: - var _a2y_ = 0; break; - default: var _a2y_ = 0; - } + _bLz_=0 === anciennete_logement[0]?1:0, + _bLA_=caml_call2(Runtime_ocaml_Runtime[83],_bLz_,_bLy_), + _bLB_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), + _bLC_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bLB_), + _bLD_=caml_call2(Runtime_ocaml_Runtime[83],_bLC_,_bLA_), + _bLE_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), + _bLF_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bLE_), + _bLG_=caml_call2(Runtime_ocaml_Runtime[83],_bLF_,_bLD_), + _bLH_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bLI_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bLH_), + _bLJ_=caml_call2(Runtime_ocaml_Runtime[83],_bLI_,_bLG_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ab_,_bLJ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ac_,[0],_bLx_,_bLw_)}, + _bLu_, + _bLt_, + _bLs_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ad_,_bLv_,_bLr_,_bLq_)}, + _bnI_= + [0, + function(param) + {function _bnL_(param) + {function _boc_(param){throw Runtime_ocaml_Runtime[2]} + function _bod_(param){return 0} + function _boe_(param) + {function _bKT_(param) + {switch(zone[0]) + {case 0: + var _bK7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$178); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bK7_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29986) + :caml_call1(Runtime_ocaml_Runtime[31],cst_36187); + var + _bK8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$93), + _bK9_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bK8_), + _bK__=caml_call1(Runtime_ocaml_Runtime[69],_bK9_), + _bK$_=caml_call1(Runtime_ocaml_Runtime[31],cst_6201), + _bLa_=caml_call2(Runtime_ocaml_Runtime[104],_bK$_,_bK__), + _bLb_=caml_call1(Runtime_ocaml_Runtime[31],cst_42386); + return caml_call2(Runtime_ocaml_Runtime[93],_bLb_,_bLa_); + case 1: + var _bLc_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$179); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bLc_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26730) + :caml_call1(Runtime_ocaml_Runtime[31],cst_32193); + var + _bLd_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$94), + _bLe_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bLd_), + _bLf_=caml_call1(Runtime_ocaml_Runtime[69],_bLe_), + _bLg_=caml_call1(Runtime_ocaml_Runtime[31],cst_5463), + _bLh_=caml_call2(Runtime_ocaml_Runtime[104],_bLg_,_bLf_), + _bLi_=caml_call1(Runtime_ocaml_Runtime[31],cst_37656); + return caml_call2(Runtime_ocaml_Runtime[93],_bLi_,_bLh_); + default: + var _bLj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$180); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bLj_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24964) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29948); + var + _bLk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$95), + _bLl_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bLk_), + _bLm_=caml_call1(Runtime_ocaml_Runtime[69],_bLl_), + _bLn_=caml_call1(Runtime_ocaml_Runtime[31],cst_4986), + _bLo_=caml_call2(Runtime_ocaml_Runtime[104],_bLn_,_bLm_), + _bLp_=caml_call1(Runtime_ocaml_Runtime[31],cst_34934); + return caml_call2(Runtime_ocaml_Runtime[93],_bLp_,_bLo_)}} + function _bKU_(param) + {switch(type_pret[0]) + {case 0:var _bKV_=0;break; + case 1:var _bKV_=1;break; + case 2:var _bKV_=0;break; + case 3:var _bKV_=0;break; + default:var _bKV_=0} + var + _bKW_=0 === anciennete_logement[0]?0:1, + _bKX_=caml_call2(Runtime_ocaml_Runtime[83],_bKW_,_bKV_), + _bKY_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), + _bKZ_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bKY_), + _bK0_=caml_call2(Runtime_ocaml_Runtime[83],_bKZ_,_bKX_), + _bK1_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bK2_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bK1_), + _bK3_=caml_call2(Runtime_ocaml_Runtime[83],_bK2_,_bK0_), + _bK4_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bK5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bK4_), + _bK6_=caml_call2(Runtime_ocaml_Runtime[83],_bK5_,_bK3_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ae_,_bK6_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Af_,[0],_bKU_,_bKT_)} + function _bof_(param) + {function _bKk_(param) + {switch(zone[0]) + {case 0: + var _bKy_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$181); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bKy_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_37252) + :caml_call1(Runtime_ocaml_Runtime[31],cst_44941); + var + _bKz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$96), + _bKA_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bKz_), + _bKB_=caml_call1(Runtime_ocaml_Runtime[69],_bKA_), + _bKC_=caml_call1(Runtime_ocaml_Runtime[31],cst_7687), + _bKD_=caml_call2(Runtime_ocaml_Runtime[104],_bKC_,_bKB_), + _bKE_=caml_call1(Runtime_ocaml_Runtime[31],cst_52629); + return caml_call2(Runtime_ocaml_Runtime[93],_bKE_,_bKD_); + case 1: + var _bKF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$182); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bKF_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_33244) + :caml_call1(Runtime_ocaml_Runtime[31],cst_40013); + var + _bKG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$97), + _bKH_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bKG_), + _bKI_=caml_call1(Runtime_ocaml_Runtime[69],_bKH_), + _bKJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_6768), + _bKK_=caml_call2(Runtime_ocaml_Runtime[104],_bKJ_,_bKI_), + _bKL_=caml_call1(Runtime_ocaml_Runtime[31],cst_46783); + return caml_call2(Runtime_ocaml_Runtime[93],_bKL_,_bKK_); + default: + var _bKM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$183); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bKM_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31036) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37215); + var + _bKN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$98), + _bKO_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bKN_), + _bKP_=caml_call1(Runtime_ocaml_Runtime[69],_bKO_), + _bKQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_6179), + _bKR_=caml_call2(Runtime_ocaml_Runtime[104],_bKQ_,_bKP_), + _bKS_=caml_call1(Runtime_ocaml_Runtime[31],cst_43394); + return caml_call2(Runtime_ocaml_Runtime[93],_bKS_,_bKR_)}} + function _bKl_(param) + {switch(type_pret[0]) + {case 0:var _bKm_=0;break; + case 1:var _bKm_=1;break; + case 2:var _bKm_=0;break; + case 3:var _bKm_=0;break; + default:var _bKm_=0} + var + _bKn_=0 === anciennete_logement[0]?1:0, + _bKo_=caml_call2(Runtime_ocaml_Runtime[83],_bKn_,_bKm_), + _bKp_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), + _bKq_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bKp_), + _bKr_=caml_call2(Runtime_ocaml_Runtime[83],_bKq_,_bKo_), + _bKs_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bKt_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bKs_), + _bKu_=caml_call2(Runtime_ocaml_Runtime[83],_bKt_,_bKr_), + _bKv_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bKw_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bKv_), + _bKx_=caml_call2(Runtime_ocaml_Runtime[83],_bKw_,_bKu_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ag_,_bKx_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ah_,[0],_bKl_,_bKk_)} + function _bog_(param) + {function _bJK_(param) + {switch(zone[0]) + {case 0: + var _bJ1_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$184); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bJ1_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29897) + :caml_call1(Runtime_ocaml_Runtime[31],cst_36079); + var + _bJ2_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$99), + _bJ3_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bJ2_), + _bJ4_=caml_call1(Runtime_ocaml_Runtime[69],_bJ3_), + _bJ5_=caml_call1(Runtime_ocaml_Runtime[31],cst_6182), + _bJ6_=caml_call2(Runtime_ocaml_Runtime[104],_bJ5_,_bJ4_), + _bJ7_=caml_call1(Runtime_ocaml_Runtime[31],cst_42260); + return caml_call2(Runtime_ocaml_Runtime[93],_bJ7_,_bJ6_); + case 1: + var _bJ8_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$185); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bJ8_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26650) + :caml_call1(Runtime_ocaml_Runtime[31],cst_32097); + var + _bJ9_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$100), + _bJ__= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bJ9_), + _bJ$_=caml_call1(Runtime_ocaml_Runtime[69],_bJ__), + _bKa_=caml_call1(Runtime_ocaml_Runtime[31],cst_5447), + _bKb_=caml_call2(Runtime_ocaml_Runtime[104],_bKa_,_bJ$_), + _bKc_=caml_call1(Runtime_ocaml_Runtime[31],cst_37543); + return caml_call2(Runtime_ocaml_Runtime[93],_bKc_,_bKb_); + default: + var _bKd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$186); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bKd_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24889) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29858); + var + _bKe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$101), + _bKf_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bKe_), + _bKg_=caml_call1(Runtime_ocaml_Runtime[69],_bKf_), + _bKh_=caml_call1(Runtime_ocaml_Runtime[31],cst_4971), + _bKi_=caml_call2(Runtime_ocaml_Runtime[104],_bKh_,_bKg_), + _bKj_=caml_call1(Runtime_ocaml_Runtime[31],cst_34829); + return caml_call2(Runtime_ocaml_Runtime[93],_bKj_,_bKi_)}} + function _bJL_(param) + {switch(type_pret[0]) + {case 0:var _bJM_=0;break; + case 1:var _bJM_=1;break; + case 2:var _bJM_=0;break; + case 3:var _bJM_=0;break; + default:var _bJM_=0} + var + _bJN_=0 === anciennete_logement[0]?0:1, + _bJO_=caml_call2(Runtime_ocaml_Runtime[83],_bJN_,_bJM_), + _bJP_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), + _bJQ_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bJP_), + _bJR_=caml_call2(Runtime_ocaml_Runtime[83],_bJQ_,_bJO_), + _bJS_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), + _bJT_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bJS_), + _bJU_=caml_call2(Runtime_ocaml_Runtime[83],_bJT_,_bJR_), + _bJV_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bJW_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJV_), + _bJX_=caml_call2(Runtime_ocaml_Runtime[83],_bJW_,_bJU_), + _bJY_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bJZ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJY_), + _bJ0_=caml_call2(Runtime_ocaml_Runtime[83],_bJZ_,_bJX_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ai_,_bJ0_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Aj_,[0],_bJL_,_bJK_)} + function _boh_(param) + {function _bI__(param) + {switch(zone[0]) + {case 0: + var _bJp_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$187); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bJp_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_37140) + :caml_call1(Runtime_ocaml_Runtime[31],cst_44807); + var + _bJq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$102), + _bJr_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bJq_), + _bJs_=caml_call1(Runtime_ocaml_Runtime[69],_bJr_), + _bJt_=caml_call1(Runtime_ocaml_Runtime[31],cst_7664), + _bJu_=caml_call2(Runtime_ocaml_Runtime[104],_bJt_,_bJs_), + _bJv_=caml_call1(Runtime_ocaml_Runtime[31],cst_52472); + return caml_call2(Runtime_ocaml_Runtime[93],_bJv_,_bJu_); + case 1: + var _bJw_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$188); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bJw_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_33145) + :caml_call1(Runtime_ocaml_Runtime[31],cst_39893); + var + _bJx_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$103), + _bJy_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bJx_), + _bJz_=caml_call1(Runtime_ocaml_Runtime[69],_bJy_), + _bJA_=caml_call1(Runtime_ocaml_Runtime[31],cst_6748), + _bJB_=caml_call2(Runtime_ocaml_Runtime[104],_bJA_,_bJz_), + _bJC_=caml_call1(Runtime_ocaml_Runtime[31],cst_46643); + return caml_call2(Runtime_ocaml_Runtime[93],_bJC_,_bJB_); + default: + var _bJD_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$189); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bJD_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_30943) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37103); + var + _bJE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$104), + _bJF_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bJE_), + _bJG_=caml_call1(Runtime_ocaml_Runtime[69],_bJF_), + _bJH_=caml_call1(Runtime_ocaml_Runtime[31],cst_6161), + _bJI_=caml_call2(Runtime_ocaml_Runtime[104],_bJH_,_bJG_), + _bJJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_43264); + return caml_call2(Runtime_ocaml_Runtime[93],_bJJ_,_bJI_)}} + function _bI$_(param) + {switch(type_pret[0]) + {case 0:var _bJa_=0;break; + case 1:var _bJa_=1;break; + case 2:var _bJa_=0;break; + case 3:var _bJa_=0;break; + default:var _bJa_=0} + var + _bJb_=0 === anciennete_logement[0]?1:0, + _bJc_=caml_call2(Runtime_ocaml_Runtime[83],_bJb_,_bJa_), + _bJd_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), + _bJe_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bJd_), + _bJf_=caml_call2(Runtime_ocaml_Runtime[83],_bJe_,_bJc_), + _bJg_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), + _bJh_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bJg_), + _bJi_=caml_call2(Runtime_ocaml_Runtime[83],_bJh_,_bJf_), + _bJj_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bJk_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJj_), + _bJl_=caml_call2(Runtime_ocaml_Runtime[83],_bJk_,_bJi_), + _bJm_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bJn_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJm_), + _bJo_=caml_call2(Runtime_ocaml_Runtime[83],_bJn_,_bJl_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ak_,_bJo_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Al_,[0],_bI$_,_bI__)} + function _boi_(param) + {function _bIy_(param) + {switch(zone[0]) + {case 0: + var _bIP_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$190); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bIP_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29674) + :caml_call1(Runtime_ocaml_Runtime[31],cst_35810); + var + _bIQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$105), + _bIR_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bIQ_), + _bIS_=caml_call1(Runtime_ocaml_Runtime[69],_bIR_), + _bIT_=caml_call1(Runtime_ocaml_Runtime[31],cst_6136), + _bIU_=caml_call2(Runtime_ocaml_Runtime[104],_bIT_,_bIS_), + _bIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_41945); + return caml_call2(Runtime_ocaml_Runtime[93],_bIV_,_bIU_); + case 1: + var _bIW_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$191); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bIW_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26452) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31858); + var + _bIX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$106), + _bIY_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bIX_), + _bIZ_=caml_call1(Runtime_ocaml_Runtime[69],_bIY_), + _bI0_=caml_call1(Runtime_ocaml_Runtime[31],cst_5406), + _bI1_=caml_call2(Runtime_ocaml_Runtime[104],_bI0_,_bIZ_), + _bI2_=caml_call1(Runtime_ocaml_Runtime[31],cst_37264); + return caml_call2(Runtime_ocaml_Runtime[93],_bI2_,_bI1_); + default: + var _bI3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$192); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bI3_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24704) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29636); + var + _bI4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$107), + _bI5_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bI4_), + _bI6_=caml_call1(Runtime_ocaml_Runtime[69],_bI5_), + _bI7_=caml_call1(Runtime_ocaml_Runtime[31],cst_4934), + _bI8_=caml_call2(Runtime_ocaml_Runtime[104],_bI7_,_bI6_), + _bI9_=caml_call1(Runtime_ocaml_Runtime[31],cst_34570); + return caml_call2(Runtime_ocaml_Runtime[93],_bI9_,_bI8_)}} + function _bIz_(param) + {switch(type_pret[0]) + {case 0:var _bIA_=0;break; + case 1:var _bIA_=1;break; + case 2:var _bIA_=0;break; + case 3:var _bIA_=0;break; + default:var _bIA_=0} + var + _bIB_=0 === anciennete_logement[0]?0:1, + _bIC_=caml_call2(Runtime_ocaml_Runtime[83],_bIB_,_bIA_), + _bID_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), + _bIE_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bID_), + _bIF_=caml_call2(Runtime_ocaml_Runtime[83],_bIE_,_bIC_), + _bIG_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), + _bIH_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bIG_), + _bII_=caml_call2(Runtime_ocaml_Runtime[83],_bIH_,_bIF_), + _bIJ_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bIK_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bIJ_), + _bIL_=caml_call2(Runtime_ocaml_Runtime[83],_bIK_,_bII_), + _bIM_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bIN_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bIM_), + _bIO_=caml_call2(Runtime_ocaml_Runtime[83],_bIN_,_bIL_); + return caml_call2(Runtime_ocaml_Runtime[29],_Am_,_bIO_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_An_,[0],_bIz_,_bIy_)} + function _boj_(param) + {function _bHY_(param) + {switch(zone[0]) + {case 0: + var _bId_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$193); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bId_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_36864) + :caml_call1(Runtime_ocaml_Runtime[31],cst_44473); + var + _bIe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$108), + _bIf_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bIe_), + _bIg_=caml_call1(Runtime_ocaml_Runtime[69],_bIf_), + _bIh_=caml_call1(Runtime_ocaml_Runtime[31],cst_7607), + _bIi_=caml_call2(Runtime_ocaml_Runtime[104],_bIh_,_bIg_), + _bIj_=caml_call1(Runtime_ocaml_Runtime[31],cst_52081); + return caml_call2(Runtime_ocaml_Runtime[93],_bIj_,_bIi_); + case 1: + var _bIk_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$194); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bIk_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_32898) + :caml_call1(Runtime_ocaml_Runtime[31],cst_39596); + var + _bIl_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$109), + _bIm_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bIl_), + _bIn_=caml_call1(Runtime_ocaml_Runtime[69],_bIm_), + _bIo_=caml_call1(Runtime_ocaml_Runtime[31],cst_6698), + _bIp_=caml_call2(Runtime_ocaml_Runtime[104],_bIo_,_bIn_), + _bIq_=caml_call1(Runtime_ocaml_Runtime[31],cst_46296); + return caml_call2(Runtime_ocaml_Runtime[93],_bIq_,_bIp_); + default: + var _bIr_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$195); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bIr_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_30713) + :caml_call1(Runtime_ocaml_Runtime[31],cst_36827); + var + _bIs_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$110), + _bIt_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bIs_), + _bIu_=caml_call1(Runtime_ocaml_Runtime[69],_bIt_), + _bIv_=caml_call1(Runtime_ocaml_Runtime[31],cst_6115), + _bIw_=caml_call2(Runtime_ocaml_Runtime[104],_bIv_,_bIu_), + _bIx_=caml_call1(Runtime_ocaml_Runtime[31],cst_42942); + return caml_call2(Runtime_ocaml_Runtime[93],_bIx_,_bIw_)}} + function _bHZ_(param) + {switch(type_pret[0]) + {case 0:var _bH0_=0;break; + case 1:var _bH0_=1;break; + case 2:var _bH0_=0;break; + case 3:var _bH0_=0;break; + default:var _bH0_=0} + var + _bH1_=0 === anciennete_logement[0]?1:0, + _bH2_=caml_call2(Runtime_ocaml_Runtime[83],_bH1_,_bH0_), + _bH3_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), + _bH4_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bH3_), + _bH5_=caml_call2(Runtime_ocaml_Runtime[83],_bH4_,_bH2_), + _bH6_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), + _bH7_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bH6_), + _bH8_=caml_call2(Runtime_ocaml_Runtime[83],_bH7_,_bH5_), + _bH9_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bH__= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bH9_), + _bH$_=caml_call2(Runtime_ocaml_Runtime[83],_bH__,_bH8_), + _bIa_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bIb_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bIa_), + _bIc_=caml_call2(Runtime_ocaml_Runtime[83],_bIb_,_bH$_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ao_,_bIc_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ap_,[0],_bHZ_,_bHY_)} + function _bok_(param) + {function _bHm_(param) + {switch(zone[0]) + {case 0: + var _bHD_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$196); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bHD_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29650) + :caml_call1(Runtime_ocaml_Runtime[31],cst_35781); + var + _bHE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$111), + _bHF_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bHE_), + _bHG_=caml_call1(Runtime_ocaml_Runtime[69],_bHF_), + _bHH_=caml_call1(Runtime_ocaml_Runtime[31],cst_6131), + _bHI_=caml_call2(Runtime_ocaml_Runtime[104],_bHH_,_bHG_), + _bHJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_41911); + return caml_call2(Runtime_ocaml_Runtime[93],_bHJ_,_bHI_); + case 1: + var _bHK_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$197); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bHK_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26431) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31833); + var + _bHL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$112), + _bHM_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bHL_), + _bHN_=caml_call1(Runtime_ocaml_Runtime[69],_bHM_), + _bHO_=caml_call1(Runtime_ocaml_Runtime[31],cst_5402), + _bHP_=caml_call2(Runtime_ocaml_Runtime[104],_bHO_,_bHN_), + _bHQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_37234); + return caml_call2(Runtime_ocaml_Runtime[93],_bHQ_,_bHP_); + default: + var _bHR_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$198); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bHR_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24684) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29612); + var + _bHS_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$113), + _bHT_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bHS_), + _bHU_=caml_call1(Runtime_ocaml_Runtime[69],_bHT_), + _bHV_=caml_call1(Runtime_ocaml_Runtime[31],cst_4930), + _bHW_=caml_call2(Runtime_ocaml_Runtime[104],_bHV_,_bHU_), + _bHX_=caml_call1(Runtime_ocaml_Runtime[31],cst_34542); + return caml_call2(Runtime_ocaml_Runtime[93],_bHX_,_bHW_)}} + function _bHn_(param) + {switch(type_pret[0]) + {case 0:var _bHo_=0;break; + case 1:var _bHo_=1;break; + case 2:var _bHo_=0;break; + case 3:var _bHo_=0;break; + default:var _bHo_=0} + var + _bHp_=0 === anciennete_logement[0]?0:1, + _bHq_=caml_call2(Runtime_ocaml_Runtime[83],_bHp_,_bHo_), + _bHr_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), + _bHs_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bHr_), + _bHt_=caml_call2(Runtime_ocaml_Runtime[83],_bHs_,_bHq_), + _bHu_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), + _bHv_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bHu_), + _bHw_=caml_call2(Runtime_ocaml_Runtime[83],_bHv_,_bHt_), + _bHx_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bHy_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bHx_), + _bHz_=caml_call2(Runtime_ocaml_Runtime[83],_bHy_,_bHw_), + _bHA_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bHB_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bHA_), + _bHC_=caml_call2(Runtime_ocaml_Runtime[83],_bHB_,_bHz_); + return caml_call2(Runtime_ocaml_Runtime[29],_Aq_,_bHC_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ar_,[0],_bHn_,_bHm_)} + function _bol_(param) + {function _bGM_(param) + {switch(zone[0]) + {case 0: + var _bG3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$199); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bG3_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_36835) + :caml_call1(Runtime_ocaml_Runtime[31],cst_44437); + var + _bG4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$114), + _bG5_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bG4_), + _bG6_=caml_call1(Runtime_ocaml_Runtime[69],_bG5_), + _bG7_=caml_call1(Runtime_ocaml_Runtime[31],cst_7601), + _bG8_=caml_call2(Runtime_ocaml_Runtime[104],_bG7_,_bG6_), + _bG9_=caml_call1(Runtime_ocaml_Runtime[31],cst_52039); + return caml_call2(Runtime_ocaml_Runtime[93],_bG9_,_bG8_); + case 1: + var _bG__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$200); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bG__)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_32872) + :caml_call1(Runtime_ocaml_Runtime[31],cst_39564); + var + _bG$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$115), + _bHa_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bG$_), + _bHb_=caml_call1(Runtime_ocaml_Runtime[69],_bHa_), + _bHc_=caml_call1(Runtime_ocaml_Runtime[31],cst_6693), + _bHd_=caml_call2(Runtime_ocaml_Runtime[104],_bHc_,_bHb_), + _bHe_=caml_call1(Runtime_ocaml_Runtime[31],cst_46259); + return caml_call2(Runtime_ocaml_Runtime[93],_bHe_,_bHd_); + default: + var _bHf_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$201); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bHf_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_30688) + :caml_call1(Runtime_ocaml_Runtime[31],cst_36798); + var + _bHg_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$116), + _bHh_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bHg_), + _bHi_=caml_call1(Runtime_ocaml_Runtime[69],_bHh_), + _bHj_=caml_call1(Runtime_ocaml_Runtime[31],cst_6110), + _bHk_=caml_call2(Runtime_ocaml_Runtime[104],_bHj_,_bHi_), + _bHl_=caml_call1(Runtime_ocaml_Runtime[31],cst_42908); + return caml_call2(Runtime_ocaml_Runtime[93],_bHl_,_bHk_)}} + function _bGN_(param) + {switch(type_pret[0]) + {case 0:var _bGO_=0;break; + case 1:var _bGO_=1;break; + case 2:var _bGO_=0;break; + case 3:var _bGO_=0;break; + default:var _bGO_=0} + var + _bGP_=0 === anciennete_logement[0]?1:0, + _bGQ_=caml_call2(Runtime_ocaml_Runtime[83],_bGP_,_bGO_), + _bGR_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), + _bGS_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bGR_), + _bGT_=caml_call2(Runtime_ocaml_Runtime[83],_bGS_,_bGQ_), + _bGU_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), + _bGV_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bGU_), + _bGW_=caml_call2(Runtime_ocaml_Runtime[83],_bGV_,_bGT_), + _bGX_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bGY_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bGX_), + _bGZ_=caml_call2(Runtime_ocaml_Runtime[83],_bGY_,_bGW_), + _bG0_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bG1_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bG0_), + _bG2_=caml_call2(Runtime_ocaml_Runtime[83],_bG1_,_bGZ_); + return caml_call2(Runtime_ocaml_Runtime[29],_As_,_bG2_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_At_,[0],_bGN_,_bGM_)} + function _bom_(param) + {function _bGa_(param) + {switch(zone[0]) + {case 0: + var _bGr_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$202); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGr_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29482) + :caml_call1(Runtime_ocaml_Runtime[31],cst_35578); + var + _bGs_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$117), + _bGt_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bGs_), + _bGu_=caml_call1(Runtime_ocaml_Runtime[69],_bGt_), + _bGv_=caml_call1(Runtime_ocaml_Runtime[31],cst_6096), + _bGw_=caml_call2(Runtime_ocaml_Runtime[104],_bGv_,_bGu_), + _bGx_=caml_call1(Runtime_ocaml_Runtime[31],cst_41673); + return caml_call2(Runtime_ocaml_Runtime[93],_bGx_,_bGw_); + case 1: + var _bGy_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$203); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGy_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26281) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31653); + var + _bGz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$118), + _bGA_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bGz_), + _bGB_=caml_call1(Runtime_ocaml_Runtime[69],_bGA_), + _bGC_=caml_call1(Runtime_ocaml_Runtime[31],cst_5371), + _bGD_=caml_call2(Runtime_ocaml_Runtime[104],_bGC_,_bGB_), + _bGE_=caml_call1(Runtime_ocaml_Runtime[31],cst_37023); + return caml_call2(Runtime_ocaml_Runtime[93],_bGE_,_bGD_); + default: + var _bGF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$204); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGF_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24544) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29444); + var + _bGG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$119), + _bGH_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bGG_), + _bGI_=caml_call1(Runtime_ocaml_Runtime[69],_bGH_), + _bGJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_4902), + _bGK_=caml_call2(Runtime_ocaml_Runtime[104],_bGJ_,_bGI_), + _bGL_=caml_call1(Runtime_ocaml_Runtime[31],cst_34346); + return caml_call2(Runtime_ocaml_Runtime[93],_bGL_,_bGK_)}} + function _bGb_(param) + {switch(type_pret[0]) + {case 0:var _bGc_=0;break; + case 1:var _bGc_=1;break; + case 2:var _bGc_=0;break; + case 3:var _bGc_=0;break; + default:var _bGc_=0} + var + _bGd_=0 === anciennete_logement[0]?0:1, + _bGe_=caml_call2(Runtime_ocaml_Runtime[83],_bGd_,_bGc_), + _bGf_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), + _bGg_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bGf_), + _bGh_=caml_call2(Runtime_ocaml_Runtime[83],_bGg_,_bGe_), + _bGi_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), + _bGj_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bGi_), + _bGk_=caml_call2(Runtime_ocaml_Runtime[83],_bGj_,_bGh_), + _bGl_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bGm_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bGl_), + _bGn_=caml_call2(Runtime_ocaml_Runtime[83],_bGm_,_bGk_), + _bGo_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bGp_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bGo_), + _bGq_=caml_call2(Runtime_ocaml_Runtime[83],_bGp_,_bGn_); + return caml_call2(Runtime_ocaml_Runtime[29],_Au_,_bGq_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Av_,[0],_bGb_,_bGa_)} + function _bon_(param) + {function _bFA_(param) + {switch(zone[0]) + {case 0: + var _bFR_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$205); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFR_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_36626) + :caml_call1(Runtime_ocaml_Runtime[31],cst_44185); + var + _bFS_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$120), + _bFT_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFS_), + _bFU_=caml_call1(Runtime_ocaml_Runtime[69],_bFT_), + _bFV_=caml_call1(Runtime_ocaml_Runtime[31],cst_7558), + _bFW_=caml_call2(Runtime_ocaml_Runtime[104],_bFV_,_bFU_), + _bFX_=caml_call1(Runtime_ocaml_Runtime[31],cst_51744); + return caml_call2(Runtime_ocaml_Runtime[93],_bFX_,_bFW_); + case 1: + var _bFY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$206); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFY_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_32686) + :caml_call1(Runtime_ocaml_Runtime[31],cst_39340); + var + _bFZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$121), + _bF0_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFZ_), + _bF1_=caml_call1(Runtime_ocaml_Runtime[69],_bF0_), + _bF2_=caml_call1(Runtime_ocaml_Runtime[31],cst_6655), + _bF3_=caml_call2(Runtime_ocaml_Runtime[104],_bF2_,_bF1_), + _bF4_=caml_call1(Runtime_ocaml_Runtime[31],cst_45997); + return caml_call2(Runtime_ocaml_Runtime[93],_bF4_,_bF3_); + default: + var _bF5_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$207); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bF5_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_30514) + :caml_call1(Runtime_ocaml_Runtime[31],cst_36589); + var + _bF6_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$122), + _bF7_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bF6_), + _bF8_=caml_call1(Runtime_ocaml_Runtime[69],_bF7_), + _bF9_=caml_call1(Runtime_ocaml_Runtime[31],cst_6075), + _bF__=caml_call2(Runtime_ocaml_Runtime[104],_bF9_,_bF8_), + _bF$_=caml_call1(Runtime_ocaml_Runtime[31],cst_42665); + return caml_call2(Runtime_ocaml_Runtime[93],_bF$_,_bF__)}} + function _bFB_(param) + {switch(type_pret[0]) + {case 0:var _bFC_=0;break; + case 1:var _bFC_=1;break; + case 2:var _bFC_=0;break; + case 3:var _bFC_=0;break; + default:var _bFC_=0} + var + _bFD_=0 === anciennete_logement[0]?1:0, + _bFE_=caml_call2(Runtime_ocaml_Runtime[83],_bFD_,_bFC_), + _bFF_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), + _bFG_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bFF_), + _bFH_=caml_call2(Runtime_ocaml_Runtime[83],_bFG_,_bFE_), + _bFI_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), + _bFJ_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bFI_), + _bFK_=caml_call2(Runtime_ocaml_Runtime[83],_bFJ_,_bFH_), + _bFL_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bFM_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bFL_), + _bFN_=caml_call2(Runtime_ocaml_Runtime[83],_bFM_,_bFK_), + _bFO_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bFP_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bFO_), + _bFQ_=caml_call2(Runtime_ocaml_Runtime[83],_bFP_,_bFN_); + return caml_call2(Runtime_ocaml_Runtime[29],_Aw_,_bFQ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ax_,[0],_bFB_,_bFA_)} + function _boo_(param) + {function _bE0_(param) + {switch(zone[0]) + {case 0: + var _bFf_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$208); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFf_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_28861) + :caml_call1(Runtime_ocaml_Runtime[31],cst_34829$0); + var + _bFg_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$123), + _bFh_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFg_), + _bFi_=caml_call1(Runtime_ocaml_Runtime[69],_bFh_), + _bFj_=caml_call1(Runtime_ocaml_Runtime[31],cst_5968), + _bFk_=caml_call2(Runtime_ocaml_Runtime[104],_bFj_,_bFi_), + _bFl_=caml_call1(Runtime_ocaml_Runtime[31],cst_40796); + return caml_call2(Runtime_ocaml_Runtime[93],_bFl_,_bFk_); + case 1: + var _bFm_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$209); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFm_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25728) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30987); + var + _bFn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$124), + _bFo_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFn_), + _bFp_=caml_call1(Runtime_ocaml_Runtime[69],_bFo_), + _bFq_=caml_call1(Runtime_ocaml_Runtime[31],cst_5258), + _bFr_=caml_call2(Runtime_ocaml_Runtime[104],_bFq_,_bFp_), + _bFs_=caml_call1(Runtime_ocaml_Runtime[31],cst_36244); + return caml_call2(Runtime_ocaml_Runtime[93],_bFs_,_bFr_); + default: + var _bFt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$210); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFt_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24027) + :caml_call1(Runtime_ocaml_Runtime[31],cst_28824); + var + _bFu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$125), + _bFv_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFu_), + _bFw_=caml_call1(Runtime_ocaml_Runtime[69],_bFv_), + _bFx_=caml_call1(Runtime_ocaml_Runtime[31],cst_4799), + _bFy_=caml_call2(Runtime_ocaml_Runtime[104],_bFx_,_bFw_), + _bFz_=caml_call1(Runtime_ocaml_Runtime[31],cst_33623); + return caml_call2(Runtime_ocaml_Runtime[93],_bFz_,_bFy_)}} + function _bE1_(param) + {switch(type_pret[0]) + {case 0:var _bE2_=0;break; + case 1:var _bE2_=1;break; + case 2:var _bE2_=0;break; + case 3:var _bE2_=0;break; + default:var _bE2_=0} + var + _bE3_=0 === anciennete_logement[0]?0:1, + _bE4_=caml_call2(Runtime_ocaml_Runtime[83],_bE3_,_bE2_), + _bE5_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), + _bE6_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bE5_), + _bE7_=caml_call2(Runtime_ocaml_Runtime[83],_bE6_,_bE4_), + _bE8_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), + _bE9_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bE8_), + _bE__=caml_call2(Runtime_ocaml_Runtime[83],_bE9_,_bE7_), + _bE$_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bFa_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bE$_), + _bFb_=caml_call2(Runtime_ocaml_Runtime[83],_bFa_,_bE__), + _bFc_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bFd_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bFc_), + _bFe_=caml_call2(Runtime_ocaml_Runtime[83],_bFd_,_bFb_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ay_,_bFe_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Az_,[0],_bE1_,_bE0_)} + function _bop_(param) + {function _bEo_(param) + {switch(zone[0]) + {case 0: + var _bEF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$211); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bEF_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_35855) + :caml_call1(Runtime_ocaml_Runtime[31],cst_43255); + var + _bEG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$126), + _bEH_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bEG_), + _bEI_=caml_call1(Runtime_ocaml_Runtime[69],_bEH_), + _bEJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_7399), + _bEK_=caml_call2(Runtime_ocaml_Runtime[104],_bEJ_,_bEI_), + _bEL_=caml_call1(Runtime_ocaml_Runtime[31],cst_50655); + return caml_call2(Runtime_ocaml_Runtime[93],_bEL_,_bEK_); + case 1: + var _bEM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$212); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bEM_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31998) + :caml_call1(Runtime_ocaml_Runtime[31],cst_38512); + var + _bEN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$127), + _bEO_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bEN_), + _bEP_=caml_call1(Runtime_ocaml_Runtime[69],_bEO_), + _bEQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_6515), + _bER_=caml_call2(Runtime_ocaml_Runtime[104],_bEQ_,_bEP_), + _bES_=caml_call1(Runtime_ocaml_Runtime[31],cst_45029); + return caml_call2(Runtime_ocaml_Runtime[93],_bES_,_bER_); + default: + var _bET_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$213); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bET_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29872) + :caml_call1(Runtime_ocaml_Runtime[31],cst_35819); + var + _bEU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$128), + _bEV_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bEU_), + _bEW_=caml_call1(Runtime_ocaml_Runtime[69],_bEV_), + _bEX_=caml_call1(Runtime_ocaml_Runtime[31],cst_5947), + _bEY_=caml_call2(Runtime_ocaml_Runtime[104],_bEX_,_bEW_), + _bEZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_41767); + return caml_call2(Runtime_ocaml_Runtime[93],_bEZ_,_bEY_)}} + function _bEp_(param) + {switch(type_pret[0]) + {case 0:var _bEq_=0;break; + case 1:var _bEq_=1;break; + case 2:var _bEq_=0;break; + case 3:var _bEq_=0;break; + default:var _bEq_=0} + var + _bEr_=0 === anciennete_logement[0]?1:0, + _bEs_=caml_call2(Runtime_ocaml_Runtime[83],_bEr_,_bEq_), + _bEt_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), + _bEu_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bEt_), + _bEv_=caml_call2(Runtime_ocaml_Runtime[83],_bEu_,_bEs_), + _bEw_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), + _bEx_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bEw_), + _bEy_=caml_call2(Runtime_ocaml_Runtime[83],_bEx_,_bEv_), + _bEz_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bEA_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bEz_), + _bEB_=caml_call2(Runtime_ocaml_Runtime[83],_bEA_,_bEy_), + _bEC_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bED_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bEC_), + _bEE_=caml_call2(Runtime_ocaml_Runtime[83],_bED_,_bEB_); + return caml_call2(Runtime_ocaml_Runtime[29],_AA_,_bEE_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AB_,[0],_bEp_,_bEo_)} + function _boq_(param) + {function _bDO_(param) + {switch(zone[0]) + {case 0: + var _bD5_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$214); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bD5_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_28575) + :caml_call1(Runtime_ocaml_Runtime[31],cst_34484); + var + _bD6_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$129), + _bD7_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bD6_), + _bD8_=caml_call1(Runtime_ocaml_Runtime[69],_bD7_), + _bD9_=caml_call1(Runtime_ocaml_Runtime[31],cst_5909), + _bD__=caml_call2(Runtime_ocaml_Runtime[104],_bD9_,_bD8_), + _bD$_=caml_call1(Runtime_ocaml_Runtime[31],cst_40392); + return caml_call2(Runtime_ocaml_Runtime[93],_bD$_,_bD__); + case 1: + var _bEa_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$215); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bEa_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25473) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30680); + var + _bEb_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$130), + _bEc_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bEb_), + _bEd_=caml_call1(Runtime_ocaml_Runtime[69],_bEc_), + _bEe_=caml_call1(Runtime_ocaml_Runtime[31],cst_5206), + _bEf_=caml_call2(Runtime_ocaml_Runtime[104],_bEe_,_bEd_), + _bEg_=caml_call1(Runtime_ocaml_Runtime[31],cst_35885); + return caml_call2(Runtime_ocaml_Runtime[93],_bEg_,_bEf_); + default: + var _bEh_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$216); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bEh_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_23789) + :caml_call1(Runtime_ocaml_Runtime[31],cst_28539); + var + _bEi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$131), + _bEj_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bEi_), + _bEk_=caml_call1(Runtime_ocaml_Runtime[69],_bEj_), + _bEl_=caml_call1(Runtime_ocaml_Runtime[31],cst_4751), + _bEm_=caml_call2(Runtime_ocaml_Runtime[104],_bEl_,_bEk_), + _bEn_=caml_call1(Runtime_ocaml_Runtime[31],cst_33290); + return caml_call2(Runtime_ocaml_Runtime[93],_bEn_,_bEm_)}} + function _bDP_(param) + {switch(type_pret[0]) + {case 0:var _bDQ_=0;break; + case 1:var _bDQ_=1;break; + case 2:var _bDQ_=0;break; + case 3:var _bDQ_=0;break; + default:var _bDQ_=0} + var + _bDR_=0 === anciennete_logement[0]?0:1, + _bDS_=caml_call2(Runtime_ocaml_Runtime[83],_bDR_,_bDQ_), + _bDT_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), + _bDU_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bDT_), + _bDV_=caml_call2(Runtime_ocaml_Runtime[83],_bDU_,_bDS_), + _bDW_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), + _bDX_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bDW_), + _bDY_=caml_call2(Runtime_ocaml_Runtime[83],_bDX_,_bDV_), + _bDZ_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bD0_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bDZ_), + _bD1_=caml_call2(Runtime_ocaml_Runtime[83],_bD0_,_bDY_), + _bD2_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bD3_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bD2_), + _bD4_=caml_call2(Runtime_ocaml_Runtime[83],_bD3_,_bD1_); + return caml_call2(Runtime_ocaml_Runtime[29],_AC_,_bD4_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AD_,[0],_bDP_,_bDO_)} + function _bor_(param) + {function _bDc_(param) + {switch(zone[0]) + {case 0: + var _bDt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$217); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bDt_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_35500) + :caml_call1(Runtime_ocaml_Runtime[31],cst_42827); + var + _bDu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$132), + _bDv_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bDu_), + _bDw_=caml_call1(Runtime_ocaml_Runtime[69],_bDv_), + _bDx_=caml_call1(Runtime_ocaml_Runtime[31],cst_7326), + _bDy_=caml_call2(Runtime_ocaml_Runtime[104],_bDx_,_bDw_), + _bDz_=caml_call1(Runtime_ocaml_Runtime[31],cst_50153); + return caml_call2(Runtime_ocaml_Runtime[93],_bDz_,_bDy_); + case 1: + var _bDA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$218); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bDA_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31681) + :caml_call1(Runtime_ocaml_Runtime[31],cst_38131); + var + _bDB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$133), + _bDC_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bDB_), + _bDD_=caml_call1(Runtime_ocaml_Runtime[69],_bDC_), + _bDE_=caml_call1(Runtime_ocaml_Runtime[31],cst_6450), + _bDF_=caml_call2(Runtime_ocaml_Runtime[104],_bDE_,_bDD_), + _bDG_=caml_call1(Runtime_ocaml_Runtime[31],cst_44583); + return caml_call2(Runtime_ocaml_Runtime[93],_bDG_,_bDF_); + default: + var _bDH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$219); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bDH_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29576) + :caml_call1(Runtime_ocaml_Runtime[31],cst_35464); + var + _bDI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$134), + _bDJ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bDI_), + _bDK_=caml_call1(Runtime_ocaml_Runtime[69],_bDJ_), + _bDL_=caml_call1(Runtime_ocaml_Runtime[31],cst_5888), + _bDM_=caml_call2(Runtime_ocaml_Runtime[104],_bDL_,_bDK_), + _bDN_=caml_call1(Runtime_ocaml_Runtime[31],cst_41353); + return caml_call2(Runtime_ocaml_Runtime[93],_bDN_,_bDM_)}} + function _bDd_(param) + {switch(type_pret[0]) + {case 0:var _bDe_=0;break; + case 1:var _bDe_=1;break; + case 2:var _bDe_=0;break; + case 3:var _bDe_=0;break; + default:var _bDe_=0} + var + _bDf_=0 === anciennete_logement[0]?1:0, + _bDg_=caml_call2(Runtime_ocaml_Runtime[83],_bDf_,_bDe_), + _bDh_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), + _bDi_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bDh_), + _bDj_=caml_call2(Runtime_ocaml_Runtime[83],_bDi_,_bDg_), + _bDk_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), + _bDl_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bDk_), + _bDm_=caml_call2(Runtime_ocaml_Runtime[83],_bDl_,_bDj_), + _bDn_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bDo_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bDn_), + _bDp_=caml_call2(Runtime_ocaml_Runtime[83],_bDo_,_bDm_), + _bDq_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bDr_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bDq_), + _bDs_=caml_call2(Runtime_ocaml_Runtime[83],_bDr_,_bDp_); + return caml_call2(Runtime_ocaml_Runtime[29],_AE_,_bDs_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AF_,[0],_bDd_,_bDc_)} + function _bos_(param) + {function _bCC_(param) + {switch(zone[0]) + {case 0: + var _bCT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$220); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bCT_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_28264) + :caml_call1(Runtime_ocaml_Runtime[31],cst_34109); + var + _bCU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$135), + _bCV_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bCU_), + _bCW_=caml_call1(Runtime_ocaml_Runtime[69],_bCV_), + _bCX_=caml_call1(Runtime_ocaml_Runtime[31],cst_5845), + _bCY_=caml_call2(Runtime_ocaml_Runtime[104],_bCX_,_bCW_), + _bCZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_39953); + return caml_call2(Runtime_ocaml_Runtime[93],_bCZ_,_bCY_); + case 1: + var _bC0_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$221); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bC0_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25196) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30346); + var + _bC1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$136), + _bC2_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bC1_), + _bC3_=caml_call1(Runtime_ocaml_Runtime[69],_bC2_), + _bC4_=caml_call1(Runtime_ocaml_Runtime[31],cst_5149), + _bC5_=caml_call2(Runtime_ocaml_Runtime[104],_bC4_,_bC3_), + _bC6_=caml_call1(Runtime_ocaml_Runtime[31],cst_35495); + return caml_call2(Runtime_ocaml_Runtime[93],_bC6_,_bC5_); + default: + var _bC7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$222); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bC7_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_23530) + :caml_call1(Runtime_ocaml_Runtime[31],cst_28228); + var + _bC8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$137), + _bC9_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bC8_), + _bC__=caml_call1(Runtime_ocaml_Runtime[69],_bC9_), + _bC$_=caml_call1(Runtime_ocaml_Runtime[31],cst_4699), + _bDa_=caml_call2(Runtime_ocaml_Runtime[104],_bC$_,_bC__), + _bDb_=caml_call1(Runtime_ocaml_Runtime[31],cst_32928); + return caml_call2(Runtime_ocaml_Runtime[93],_bDb_,_bDa_)}} + function _bCD_(param) + {switch(type_pret[0]) + {case 0:var _bCE_=0;break; + case 1:var _bCE_=1;break; + case 2:var _bCE_=0;break; + case 3:var _bCE_=0;break; + default:var _bCE_=0} + var + _bCF_=0 === anciennete_logement[0]?0:1, + _bCG_=caml_call2(Runtime_ocaml_Runtime[83],_bCF_,_bCE_), + _bCH_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), + _bCI_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bCH_), + _bCJ_=caml_call2(Runtime_ocaml_Runtime[83],_bCI_,_bCG_), + _bCK_=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), + _bCL_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bCK_), + _bCM_=caml_call2(Runtime_ocaml_Runtime[83],_bCL_,_bCJ_), + _bCN_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bCO_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bCN_), + _bCP_=caml_call2(Runtime_ocaml_Runtime[83],_bCO_,_bCM_), + _bCQ_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bCR_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bCQ_), + _bCS_=caml_call2(Runtime_ocaml_Runtime[83],_bCR_,_bCP_); + return caml_call2(Runtime_ocaml_Runtime[29],_AG_,_bCS_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AH_,[0],_bCD_,_bCC_)} + function _bot_(param) + {function _bB2_(param) + {switch(zone[0]) + {case 0: + var _bCh_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$223); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bCh_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_35114) + :caml_call1(Runtime_ocaml_Runtime[31],cst_42361); + var + _bCi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$138), + _bCj_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bCi_), + _bCk_=caml_call1(Runtime_ocaml_Runtime[69],_bCj_), + _bCl_=caml_call1(Runtime_ocaml_Runtime[31],cst_7246), + _bCm_=caml_call2(Runtime_ocaml_Runtime[104],_bCl_,_bCk_), + _bCn_=caml_call1(Runtime_ocaml_Runtime[31],cst_49607); + return caml_call2(Runtime_ocaml_Runtime[93],_bCn_,_bCm_); + case 1: + var _bCo_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$224); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bCo_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31336) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37716); + var + _bCp_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$139), + _bCq_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bCp_), + _bCr_=caml_call1(Runtime_ocaml_Runtime[69],_bCq_), + _bCs_=caml_call1(Runtime_ocaml_Runtime[31],cst_6380), + _bCt_=caml_call2(Runtime_ocaml_Runtime[104],_bCs_,_bCr_), + _bCu_=caml_call1(Runtime_ocaml_Runtime[31],cst_44098); + return caml_call2(Runtime_ocaml_Runtime[93],_bCu_,_bCt_); + default: + var _bCv_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$225); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bCv_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29254) + :caml_call1(Runtime_ocaml_Runtime[31],cst_35078); + var + _bCw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$140), + _bCx_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bCw_), + _bCy_=caml_call1(Runtime_ocaml_Runtime[69],_bCx_), + _bCz_=caml_call1(Runtime_ocaml_Runtime[31],cst_5824), + _bCA_=caml_call2(Runtime_ocaml_Runtime[104],_bCz_,_bCy_), + _bCB_=caml_call1(Runtime_ocaml_Runtime[31],cst_40903); + return caml_call2(Runtime_ocaml_Runtime[93],_bCB_,_bCA_)}} + function _bB3_(param) + {switch(type_pret[0]) + {case 0:var _bB4_=0;break; + case 1:var _bB4_=1;break; + case 2:var _bB4_=0;break; + case 3:var _bB4_=0;break; + default:var _bB4_=0} + var + _bB5_=0 === anciennete_logement[0]?1:0, + _bB6_=caml_call2(Runtime_ocaml_Runtime[83],_bB5_,_bB4_), + _bB7_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), + _bB8_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bB7_), + _bB9_=caml_call2(Runtime_ocaml_Runtime[83],_bB8_,_bB6_), + _bB__=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), + _bB$_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bB__), + _bCa_=caml_call2(Runtime_ocaml_Runtime[83],_bB$_,_bB9_), + _bCb_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bCc_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bCb_), + _bCd_=caml_call2(Runtime_ocaml_Runtime[83],_bCc_,_bCa_), + _bCe_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bCf_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bCe_), + _bCg_=caml_call2(Runtime_ocaml_Runtime[83],_bCf_,_bCd_); + return caml_call2(Runtime_ocaml_Runtime[29],_AI_,_bCg_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AJ_,[0],_bB3_,_bB2_)} + function _bou_(param) + {function _bBq_(param) + {switch(zone[0]) + {case 0: + var _bBH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$226); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bBH_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_28174) + :caml_call1(Runtime_ocaml_Runtime[31],cst_34000); + var + _bBI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$141), + _bBJ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bBI_), + _bBK_=caml_call1(Runtime_ocaml_Runtime[69],_bBJ_), + _bBL_=caml_call1(Runtime_ocaml_Runtime[31],cst_5826), + _bBM_=caml_call2(Runtime_ocaml_Runtime[104],_bBL_,_bBK_), + _bBN_=caml_call1(Runtime_ocaml_Runtime[31],cst_39826); + return caml_call2(Runtime_ocaml_Runtime[93],_bBN_,_bBM_); + case 1: + var _bBO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$227); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bBO_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25116) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30249); + var + _bBP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$142), + _bBQ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bBP_), + _bBR_=caml_call1(Runtime_ocaml_Runtime[69],_bBQ_), + _bBS_=caml_call1(Runtime_ocaml_Runtime[31],cst_5133), + _bBT_=caml_call2(Runtime_ocaml_Runtime[104],_bBS_,_bBR_), + _bBU_=caml_call1(Runtime_ocaml_Runtime[31],cst_35382); + return caml_call2(Runtime_ocaml_Runtime[93],_bBU_,_bBT_); + default: + var _bBV_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$228); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bBV_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_23455) + :caml_call1(Runtime_ocaml_Runtime[31],cst_28138); + var + _bBW_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$143), + _bBX_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bBW_), + _bBY_=caml_call1(Runtime_ocaml_Runtime[69],_bBX_), + _bBZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_4684), + _bB0_=caml_call2(Runtime_ocaml_Runtime[104],_bBZ_,_bBY_), + _bB1_=caml_call1(Runtime_ocaml_Runtime[31],cst_32823); + return caml_call2(Runtime_ocaml_Runtime[93],_bB1_,_bB0_)}} + function _bBr_(param) + {switch(type_pret[0]) + {case 0:var _bBs_=0;break; + case 1:var _bBs_=1;break; + case 2:var _bBs_=0;break; + case 3:var _bBs_=0;break; + default:var _bBs_=0} + var + _bBt_=0 === anciennete_logement[0]?0:1, + _bBu_=caml_call2(Runtime_ocaml_Runtime[83],_bBt_,_bBs_), + _bBv_=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), + _bBw_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bBv_), + _bBx_=caml_call2(Runtime_ocaml_Runtime[83],_bBw_,_bBu_), + _bBy_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), + _bBz_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bBy_), + _bBA_=caml_call2(Runtime_ocaml_Runtime[83],_bBz_,_bBx_), + _bBB_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bBC_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bBB_), + _bBD_=caml_call2(Runtime_ocaml_Runtime[83],_bBC_,_bBA_), + _bBE_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bBF_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bBE_), + _bBG_=caml_call2(Runtime_ocaml_Runtime[83],_bBF_,_bBD_); + return caml_call2(Runtime_ocaml_Runtime[29],_AK_,_bBG_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AL_,[0],_bBr_,_bBq_)} + function _bov_(param) + {function _bAQ_(param) + {switch(zone[0]) + {case 0: + var _bA7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$229); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bA7_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_35002) + :caml_call1(Runtime_ocaml_Runtime[31],cst_42226); + var + _bA8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$144), + _bA9_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bA8_), + _bA__=caml_call1(Runtime_ocaml_Runtime[69],_bA9_), + _bA$_=caml_call1(Runtime_ocaml_Runtime[31],cst_7223), + _bBa_=caml_call2(Runtime_ocaml_Runtime[104],_bA$_,_bA__), + _bBb_=caml_call1(Runtime_ocaml_Runtime[31],cst_49449); + return caml_call2(Runtime_ocaml_Runtime[93],_bBb_,_bBa_); + case 1: + var _bBc_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$230); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bBc_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31236) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37596); + var + _bBd_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$145), + _bBe_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bBd_), + _bBf_=caml_call1(Runtime_ocaml_Runtime[69],_bBe_), + _bBg_=caml_call1(Runtime_ocaml_Runtime[31],cst_6360), + _bBh_=caml_call2(Runtime_ocaml_Runtime[104],_bBg_,_bBf_), + _bBi_=caml_call1(Runtime_ocaml_Runtime[31],cst_43957); + return caml_call2(Runtime_ocaml_Runtime[93],_bBi_,_bBh_); + default: + var _bBj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$231); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bBj_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29161) + :caml_call1(Runtime_ocaml_Runtime[31],cst_34966); + var + _bBk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$146), + _bBl_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bBk_), + _bBm_=caml_call1(Runtime_ocaml_Runtime[69],_bBl_), + _bBn_=caml_call1(Runtime_ocaml_Runtime[31],cst_5805), + _bBo_=caml_call2(Runtime_ocaml_Runtime[104],_bBn_,_bBm_), + _bBp_=caml_call1(Runtime_ocaml_Runtime[31],cst_40773); + return caml_call2(Runtime_ocaml_Runtime[93],_bBp_,_bBo_)}} + function _bAR_(param) + {switch(type_pret[0]) + {case 0:var _bAS_=0;break; + case 1:var _bAS_=1;break; + case 2:var _bAS_=0;break; + case 3:var _bAS_=0;break; + default:var _bAS_=0} + var + _bAT_=0 === anciennete_logement[0]?1:0, + _bAU_=caml_call2(Runtime_ocaml_Runtime[83],_bAT_,_bAS_), + _bAV_=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), + _bAW_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bAV_), + _bAX_=caml_call2(Runtime_ocaml_Runtime[83],_bAW_,_bAU_), + _bAY_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), + _bAZ_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bAY_), + _bA0_=caml_call2(Runtime_ocaml_Runtime[83],_bAZ_,_bAX_), + _bA1_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bA2_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bA1_), + _bA3_=caml_call2(Runtime_ocaml_Runtime[83],_bA2_,_bA0_), + _bA4_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bA5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bA4_), + _bA6_=caml_call2(Runtime_ocaml_Runtime[83],_bA5_,_bA3_); + return caml_call2(Runtime_ocaml_Runtime[29],_AM_,_bA6_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AN_,[0],_bAR_,_bAQ_)} + function _bow_(param) + {function _bAe_(param) + {switch(zone[0]) + {case 0: + var _bAv_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$232); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAv_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27367) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33026); + var + _bAw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$147), + _bAx_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAw_), + _bAy_=caml_call1(Runtime_ocaml_Runtime[69],_bAx_), + _bAz_=caml_call1(Runtime_ocaml_Runtime[31],cst_5659), + _bAA_=caml_call2(Runtime_ocaml_Runtime[104],_bAz_,_bAy_), + _bAB_=caml_call1(Runtime_ocaml_Runtime[31],cst_38685); + return caml_call2(Runtime_ocaml_Runtime[93],_bAB_,_bAA_); + case 1: + var _bAC_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$233); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAC_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24396) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29382); + var + _bAD_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$148), + _bAE_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAD_), + _bAF_=caml_call1(Runtime_ocaml_Runtime[69],_bAE_), + _bAG_=caml_call1(Runtime_ocaml_Runtime[31],cst_4986$0), + _bAH_=caml_call2(Runtime_ocaml_Runtime[104],_bAG_,_bAF_), + _bAI_=caml_call1(Runtime_ocaml_Runtime[31],cst_34368); + return caml_call2(Runtime_ocaml_Runtime[93],_bAI_,_bAH_); + default: + var _bAJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$234); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAJ_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_22783) + :caml_call1(Runtime_ocaml_Runtime[31],cst_27332); + var + _bAK_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$149), + _bAL_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAK_), + _bAM_=caml_call1(Runtime_ocaml_Runtime[69],_bAL_), + _bAN_=caml_call1(Runtime_ocaml_Runtime[31],cst_4550), + _bAO_=caml_call2(Runtime_ocaml_Runtime[104],_bAN_,_bAM_), + _bAP_=caml_call1(Runtime_ocaml_Runtime[31],cst_31882); + return caml_call2(Runtime_ocaml_Runtime[93],_bAP_,_bAO_)}} + function _bAf_(param) + {switch(type_pret[0]) + {case 0:var _bAg_=0;break; + case 1:var _bAg_=1;break; + case 2:var _bAg_=0;break; + case 3:var _bAg_=0;break; + default:var _bAg_=0} + var + _bAh_=0 === anciennete_logement[0]?0:1, + _bAi_=caml_call2(Runtime_ocaml_Runtime[83],_bAh_,_bAg_), + _bAj_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), + _bAk_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bAj_), + _bAl_=caml_call2(Runtime_ocaml_Runtime[83],_bAk_,_bAi_), + _bAm_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), + _bAn_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bAm_), + _bAo_=caml_call2(Runtime_ocaml_Runtime[83],_bAn_,_bAl_), + _bAp_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bAq_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bAp_), + _bAr_=caml_call2(Runtime_ocaml_Runtime[83],_bAq_,_bAo_), + _bAs_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bAt_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bAs_), + _bAu_=caml_call2(Runtime_ocaml_Runtime[83],_bAt_,_bAr_); + return caml_call2(Runtime_ocaml_Runtime[29],_AO_,_bAu_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AP_,[0],_bAf_,_bAe_)} + function _box_(param) + {function _bzE_(param) + {switch(zone[0]) + {case 0: + var _bzV_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$235); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzV_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_33999) + :caml_call1(Runtime_ocaml_Runtime[31],cst_41016); + var + _bzW_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$150), + _bzX_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzW_), + _bzY_=caml_call1(Runtime_ocaml_Runtime[69],_bzX_), + _bzZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_7016), + _bz0_=caml_call2(Runtime_ocaml_Runtime[104],_bzZ_,_bzY_), + _bz1_=caml_call1(Runtime_ocaml_Runtime[31],cst_48032); + return caml_call2(Runtime_ocaml_Runtime[93],_bz1_,_bz0_); + case 1: + var _bz2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$236); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bz2_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_30341) + :caml_call1(Runtime_ocaml_Runtime[31],cst_36519); + var + _bz3_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$151), + _bz4_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bz3_), + _bz5_=caml_call1(Runtime_ocaml_Runtime[69],_bz4_), + _bz6_=caml_call1(Runtime_ocaml_Runtime[31],cst_6178), + _bz7_=caml_call2(Runtime_ocaml_Runtime[104],_bz6_,_bz5_), + _bz8_=caml_call1(Runtime_ocaml_Runtime[31],cst_42697); + return caml_call2(Runtime_ocaml_Runtime[93],_bz8_,_bz7_); + default: + var _bz9_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$237); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bz9_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_28325) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33964); + var + _bz__=caml_call1(Runtime_ocaml_Runtime[46],cst_1$152), + _bz$_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bz__), + _bAa_=caml_call1(Runtime_ocaml_Runtime[69],_bz$_), + _bAb_=caml_call1(Runtime_ocaml_Runtime[31],cst_5639), + _bAc_=caml_call2(Runtime_ocaml_Runtime[104],_bAb_,_bAa_), + _bAd_=caml_call1(Runtime_ocaml_Runtime[31],cst_39605); + return caml_call2(Runtime_ocaml_Runtime[93],_bAd_,_bAc_)}} + function _bzF_(param) + {switch(type_pret[0]) + {case 0:var _bzG_=0;break; + case 1:var _bzG_=1;break; + case 2:var _bzG_=0;break; + case 3:var _bzG_=0;break; + default:var _bzG_=0} + var + _bzH_=0 === anciennete_logement[0]?1:0, + _bzI_=caml_call2(Runtime_ocaml_Runtime[83],_bzH_,_bzG_), + _bzJ_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), + _bzK_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bzJ_), + _bzL_=caml_call2(Runtime_ocaml_Runtime[83],_bzK_,_bzI_), + _bzM_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), + _bzN_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bzM_), + _bzO_=caml_call2(Runtime_ocaml_Runtime[83],_bzN_,_bzL_), + _bzP_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bzQ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bzP_), + _bzR_=caml_call2(Runtime_ocaml_Runtime[83],_bzQ_,_bzO_), + _bzS_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bzT_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bzS_), + _bzU_=caml_call2(Runtime_ocaml_Runtime[83],_bzT_,_bzR_); + return caml_call2(Runtime_ocaml_Runtime[29],_AQ_,_bzU_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AR_,[0],_bzF_,_bzE_)} + function _boy_(param) + {function _by4_(param) + {switch(zone[0]) + {case 0: + var _bzj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$238); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzj_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26632) + :caml_call1(Runtime_ocaml_Runtime[31],cst_32139); + var + _bzk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$153), + _bzl_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzk_), + _bzm_=caml_call1(Runtime_ocaml_Runtime[69],_bzl_), + _bzn_=caml_call1(Runtime_ocaml_Runtime[31],cst_5507), + _bzo_=caml_call2(Runtime_ocaml_Runtime[104],_bzn_,_bzm_), + _bzp_=caml_call1(Runtime_ocaml_Runtime[31],cst_37646); + return caml_call2(Runtime_ocaml_Runtime[93],_bzp_,_bzo_); + case 1: + var _bzq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$239); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzq_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_23741) + :caml_call1(Runtime_ocaml_Runtime[31],cst_28593); + var + _bzr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$154), + _bzs_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzr_), + _bzt_=caml_call1(Runtime_ocaml_Runtime[69],_bzs_), + _bzu_=caml_call1(Runtime_ocaml_Runtime[31],cst_4852), + _bzv_=caml_call2(Runtime_ocaml_Runtime[104],_bzu_,_bzt_), + _bzw_=caml_call1(Runtime_ocaml_Runtime[31],cst_33445); + return caml_call2(Runtime_ocaml_Runtime[93],_bzw_,_bzv_); + default: + var _bzx_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$240); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzx_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_22171) + :caml_call1(Runtime_ocaml_Runtime[31],cst_36598); + var + _bzy_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$155), + _bzz_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzy_), + _bzA_=caml_call1(Runtime_ocaml_Runtime[69],_bzz_), + _bzB_=caml_call1(Runtime_ocaml_Runtime[31],cst_4428), + _bzC_=caml_call2(Runtime_ocaml_Runtime[104],_bzB_,_bzA_), + _bzD_=caml_call1(Runtime_ocaml_Runtime[31],cst_31026); + return caml_call2(Runtime_ocaml_Runtime[93],_bzD_,_bzC_)}} + function _by5_(param) + {switch(type_pret[0]) + {case 0:var _by6_=0;break; + case 1:var _by6_=1;break; + case 2:var _by6_=0;break; + case 3:var _by6_=0;break; + default:var _by6_=0} + var + _by7_=0 === anciennete_logement[0]?0:1, + _by8_=caml_call2(Runtime_ocaml_Runtime[83],_by7_,_by6_), + _by9_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), + _by__= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_by9_), + _by$_=caml_call2(Runtime_ocaml_Runtime[83],_by__,_by8_), + _bza_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), + _bzb_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bza_), + _bzc_=caml_call2(Runtime_ocaml_Runtime[83],_bzb_,_by$_), + _bzd_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bze_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bzd_), + _bzf_=caml_call2(Runtime_ocaml_Runtime[83],_bze_,_bzc_), + _bzg_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bzh_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bzg_), + _bzi_=caml_call2(Runtime_ocaml_Runtime[83],_bzh_,_bzf_); + return caml_call2(Runtime_ocaml_Runtime[29],_AS_,_bzi_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AT_,[0],_by5_,_by4_)} + function _boz_(param) + {function _bys_(param) + {switch(zone[0]) + {case 0: + var _byJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$241); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byJ_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_33086) + :caml_call1(Runtime_ocaml_Runtime[31],cst_39914); + var + _byK_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$156), + _byL_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byK_), + _byM_=caml_call1(Runtime_ocaml_Runtime[69],_byL_), + _byN_=caml_call1(Runtime_ocaml_Runtime[31],cst_6828), + _byO_=caml_call2(Runtime_ocaml_Runtime[104],_byN_,_byM_), + _byP_=caml_call1(Runtime_ocaml_Runtime[31],cst_46742); + return caml_call2(Runtime_ocaml_Runtime[93],_byP_,_byO_); + case 1: + var _byQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$242); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byQ_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29526) + :caml_call1(Runtime_ocaml_Runtime[31],cst_35538); + var + _byR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$157), + _byS_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byR_), + _byT_=caml_call1(Runtime_ocaml_Runtime[69],_byS_), + _byU_=caml_call1(Runtime_ocaml_Runtime[31],cst_6012), + _byV_=caml_call2(Runtime_ocaml_Runtime[104],_byU_,_byT_), + _byW_=caml_call1(Runtime_ocaml_Runtime[31],cst_41550); + return caml_call2(Runtime_ocaml_Runtime[93],_byW_,_byV_); + default: + var _byX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$243); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byX_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27564) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33052); + var + _byY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$158), + _byZ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byY_), + _by0_=caml_call1(Runtime_ocaml_Runtime[69],_byZ_), + _by1_=caml_call1(Runtime_ocaml_Runtime[31],cst_5488), + _by2_=caml_call2(Runtime_ocaml_Runtime[104],_by1_,_by0_), + _by3_=caml_call1(Runtime_ocaml_Runtime[31],cst_38541); + return caml_call2(Runtime_ocaml_Runtime[93],_by3_,_by2_)}} + function _byt_(param) + {switch(type_pret[0]) + {case 0:var _byu_=0;break; + case 1:var _byu_=1;break; + case 2:var _byu_=0;break; + case 3:var _byu_=0;break; + default:var _byu_=0} + var + _byv_=0 === anciennete_logement[0]?1:0, + _byw_=caml_call2(Runtime_ocaml_Runtime[83],_byv_,_byu_), + _byx_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), + _byy_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_byx_), + _byz_=caml_call2(Runtime_ocaml_Runtime[83],_byy_,_byw_), + _byA_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), + _byB_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_byA_), + _byC_=caml_call2(Runtime_ocaml_Runtime[83],_byB_,_byz_), + _byD_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _byE_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_byD_), + _byF_=caml_call2(Runtime_ocaml_Runtime[83],_byE_,_byC_), + _byG_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _byH_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_byG_), + _byI_=caml_call2(Runtime_ocaml_Runtime[83],_byH_,_byF_); + return caml_call2(Runtime_ocaml_Runtime[29],_AU_,_byI_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AV_,[0],_byt_,_bys_)} + function _boA_(param) + {function _bxS_(param) + {switch(zone[0]) + {case 0: + var _bx9_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$244); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bx9_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25907) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31264); + var + _bx__=caml_call1(Runtime_ocaml_Runtime[46],cst_1$159), + _bx$_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bx__), + _bya_=caml_call1(Runtime_ocaml_Runtime[69],_bx$_), + _byb_=caml_call1(Runtime_ocaml_Runtime[31],cst_5357), + _byc_=caml_call2(Runtime_ocaml_Runtime[104],_byb_,_bya_), + _byd_=caml_call1(Runtime_ocaml_Runtime[31],cst_36621); + return caml_call2(Runtime_ocaml_Runtime[93],_byd_,_byc_); + case 1: + var _bye_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$245); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bye_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_23094) + :caml_call1(Runtime_ocaml_Runtime[31],cst_27814); + var + _byf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$160), + _byg_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byf_), + _byh_=caml_call1(Runtime_ocaml_Runtime[69],_byg_), + _byi_=caml_call1(Runtime_ocaml_Runtime[31],cst_4720), + _byj_=caml_call2(Runtime_ocaml_Runtime[104],_byi_,_byh_), + _byk_=caml_call1(Runtime_ocaml_Runtime[31],cst_32534); + return caml_call2(Runtime_ocaml_Runtime[93],_byk_,_byj_); + default: + var _byl_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$246); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byl_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_21567) + :caml_call1(Runtime_ocaml_Runtime[31],cst_25874); + var + _bym_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$161), + _byn_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bym_), + _byo_=caml_call1(Runtime_ocaml_Runtime[69],_byn_), + _byp_=caml_call1(Runtime_ocaml_Runtime[31],cst_4307), + _byq_=caml_call2(Runtime_ocaml_Runtime[104],_byp_,_byo_), + _byr_=caml_call1(Runtime_ocaml_Runtime[31],cst_30181); + return caml_call2(Runtime_ocaml_Runtime[93],_byr_,_byq_)}} + function _bxT_(param) + {switch(type_pret[0]) + {case 0:var _bxU_=0;break; + case 1:var _bxU_=1;break; + case 2:var _bxU_=0;break; + case 3:var _bxU_=0;break; + default:var _bxU_=0} + var + _bxV_=0 === anciennete_logement[0]?0:1, + _bxW_=caml_call2(Runtime_ocaml_Runtime[83],_bxV_,_bxU_), + _bxX_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), + _bxY_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bxX_), + _bxZ_=caml_call2(Runtime_ocaml_Runtime[83],_bxY_,_bxW_), + _bx0_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), + _bx1_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bx0_), + _bx2_=caml_call2(Runtime_ocaml_Runtime[83],_bx1_,_bxZ_), + _bx3_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bx4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bx3_), + _bx5_=caml_call2(Runtime_ocaml_Runtime[83],_bx4_,_bx2_), + _bx6_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bx7_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bx6_), + _bx8_=caml_call2(Runtime_ocaml_Runtime[83],_bx7_,_bx5_); + return caml_call2(Runtime_ocaml_Runtime[29],_AW_,_bx8_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AX_,[0],_bxT_,_bxS_)} + function _boB_(param) + {function _bxg_(param) + {switch(zone[0]) + {case 0: + var _bxx_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$247); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bxx_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_32185) + :caml_call1(Runtime_ocaml_Runtime[31],cst_38827); + var + _bxy_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$162), + _bxz_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxy_), + _bxA_=caml_call1(Runtime_ocaml_Runtime[69],_bxz_), + _bxB_=caml_call1(Runtime_ocaml_Runtime[31],cst_6642), + _bxC_=caml_call2(Runtime_ocaml_Runtime[104],_bxB_,_bxA_), + _bxD_=caml_call1(Runtime_ocaml_Runtime[31],cst_45469); + return caml_call2(Runtime_ocaml_Runtime[93],_bxD_,_bxC_); + case 1: + var _bxE_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$248); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bxE_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_28722) + :caml_call1(Runtime_ocaml_Runtime[31],cst_34570$0); + var + _bxF_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$163), + _bxG_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxF_), + _bxH_=caml_call1(Runtime_ocaml_Runtime[69],_bxG_), + _bxI_=caml_call1(Runtime_ocaml_Runtime[31],cst_5848), + _bxJ_=caml_call2(Runtime_ocaml_Runtime[104],_bxI_,_bxH_), + _bxK_=caml_call1(Runtime_ocaml_Runtime[31],cst_40418); + return caml_call2(Runtime_ocaml_Runtime[93],_bxK_,_bxJ_); + default: + var _bxL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$249); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bxL_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26813) + :caml_call1(Runtime_ocaml_Runtime[31],cst_32152); + var + _bxM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$164), + _bxN_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxM_), + _bxO_=caml_call1(Runtime_ocaml_Runtime[69],_bxN_), + _bxP_=caml_call1(Runtime_ocaml_Runtime[31],cst_5339), + _bxQ_=caml_call2(Runtime_ocaml_Runtime[104],_bxP_,_bxO_), + _bxR_=caml_call1(Runtime_ocaml_Runtime[31],cst_37491); + return caml_call2(Runtime_ocaml_Runtime[93],_bxR_,_bxQ_)}} + function _bxh_(param) + {switch(type_pret[0]) + {case 0:var _bxi_=0;break; + case 1:var _bxi_=1;break; + case 2:var _bxi_=0;break; + case 3:var _bxi_=0;break; + default:var _bxi_=0} + var + _bxj_=0 === anciennete_logement[0]?1:0, + _bxk_=caml_call2(Runtime_ocaml_Runtime[83],_bxj_,_bxi_), + _bxl_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), + _bxm_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bxl_), + _bxn_=caml_call2(Runtime_ocaml_Runtime[83],_bxm_,_bxk_), + _bxo_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), + _bxp_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bxo_), + _bxq_=caml_call2(Runtime_ocaml_Runtime[83],_bxp_,_bxn_), + _bxr_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bxs_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bxr_), + _bxt_=caml_call2(Runtime_ocaml_Runtime[83],_bxs_,_bxq_), + _bxu_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bxv_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bxu_), + _bxw_=caml_call2(Runtime_ocaml_Runtime[83],_bxv_,_bxt_); + return caml_call2(Runtime_ocaml_Runtime[29],_AY_,_bxw_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_AZ_,[0],_bxh_,_bxg_)} + function _boC_(param) + {function _bwG_(param) + {switch(zone[0]) + {case 0: + var _bwX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$250); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bwX_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25449) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30711); + var + _bwY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$165), + _bwZ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwY_), + _bw0_=caml_call1(Runtime_ocaml_Runtime[69],_bwZ_), + _bw1_=caml_call1(Runtime_ocaml_Runtime[31],cst_5262), + _bw2_=caml_call2(Runtime_ocaml_Runtime[104],_bw1_,_bw0_), + _bw3_=caml_call1(Runtime_ocaml_Runtime[31],cst_35973); + return caml_call2(Runtime_ocaml_Runtime[93],_bw3_,_bw2_); + case 1: + var _bw4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$251); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bw4_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_22686) + :caml_call1(Runtime_ocaml_Runtime[31],cst_27323); + var + _bw5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$166), + _bw6_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bw5_), + _bw7_=caml_call1(Runtime_ocaml_Runtime[69],_bw6_), + _bw8_=caml_call1(Runtime_ocaml_Runtime[31],cst_4637), + _bw9_=caml_call2(Runtime_ocaml_Runtime[104],_bw8_,_bw7_), + _bw__=caml_call1(Runtime_ocaml_Runtime[31],cst_31960); + return caml_call2(Runtime_ocaml_Runtime[93],_bw__,_bw9_); + default: + var _bw$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$252); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bw$_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_21186) + :caml_call1(Runtime_ocaml_Runtime[31],cst_25417); + var + _bxa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$167), + _bxb_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxa_), + _bxc_=caml_call1(Runtime_ocaml_Runtime[69],_bxb_), + _bxd_=caml_call1(Runtime_ocaml_Runtime[31],cst_4231), + _bxe_=caml_call2(Runtime_ocaml_Runtime[104],_bxd_,_bxc_), + _bxf_=caml_call1(Runtime_ocaml_Runtime[31],cst_29648); + return caml_call2(Runtime_ocaml_Runtime[93],_bxf_,_bxe_)}} + function _bwH_(param) + {switch(type_pret[0]) + {case 0:var _bwI_=0;break; + case 1:var _bwI_=1;break; + case 2:var _bwI_=0;break; + case 3:var _bwI_=0;break; + default:var _bwI_=0} + var + _bwJ_=0 === anciennete_logement[0]?0:1, + _bwK_=caml_call2(Runtime_ocaml_Runtime[83],_bwJ_,_bwI_), + _bwL_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), + _bwM_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bwL_), + _bwN_=caml_call2(Runtime_ocaml_Runtime[83],_bwM_,_bwK_), + _bwO_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), + _bwP_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bwO_), + _bwQ_=caml_call2(Runtime_ocaml_Runtime[83],_bwP_,_bwN_), + _bwR_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bwS_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bwR_), + _bwT_=caml_call2(Runtime_ocaml_Runtime[83],_bwS_,_bwQ_), + _bwU_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bwV_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bwU_), + _bwW_=caml_call2(Runtime_ocaml_Runtime[83],_bwV_,_bwT_); + return caml_call2(Runtime_ocaml_Runtime[29],_A0_,_bwW_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_A1_,[0],_bwH_,_bwG_)} + function _boD_(param) + {function _bv6_(param) + {switch(zone[0]) + {case 0: + var _bwl_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$253); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bwl_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31616) + :caml_call1(Runtime_ocaml_Runtime[31],cst_38141); + var + _bwm_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$168), + _bwn_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwm_), + _bwo_=caml_call1(Runtime_ocaml_Runtime[69],_bwn_), + _bwp_=caml_call1(Runtime_ocaml_Runtime[31],cst_6525), + _bwq_=caml_call2(Runtime_ocaml_Runtime[104],_bwp_,_bwo_), + _bwr_=caml_call1(Runtime_ocaml_Runtime[31],cst_44666); + return caml_call2(Runtime_ocaml_Runtime[93],_bwr_,_bwq_); + case 1: + var _bws_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$254); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bws_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_28214) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33959); + var + _bwt_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$169), + _bwu_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwt_), + _bwv_=caml_call1(Runtime_ocaml_Runtime[69],_bwu_), + _bww_=caml_call1(Runtime_ocaml_Runtime[31],cst_5745), + _bwx_=caml_call2(Runtime_ocaml_Runtime[104],_bww_,_bwv_), + _bwy_=caml_call1(Runtime_ocaml_Runtime[31],cst_39704); + return caml_call2(Runtime_ocaml_Runtime[93],_bwy_,_bwx_); + default: + var _bwz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$255); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bwz_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26339) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31584); + var + _bwA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$170), + _bwB_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwA_), + _bwC_=caml_call1(Runtime_ocaml_Runtime[69],_bwB_), + _bwD_=caml_call1(Runtime_ocaml_Runtime[31],cst_5245), + _bwE_=caml_call2(Runtime_ocaml_Runtime[104],_bwD_,_bwC_), + _bwF_=caml_call1(Runtime_ocaml_Runtime[31],cst_36829); + return caml_call2(Runtime_ocaml_Runtime[93],_bwF_,_bwE_)}} + function _bv7_(param) + {switch(type_pret[0]) + {case 0:var _bv8_=0;break; + case 1:var _bv8_=1;break; + case 2:var _bv8_=0;break; + case 3:var _bv8_=0;break; + default:var _bv8_=0} + var + _bv9_=0 === anciennete_logement[0]?1:0, + _bv__=caml_call2(Runtime_ocaml_Runtime[83],_bv9_,_bv8_), + _bv$_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), + _bwa_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bv$_), + _bwb_=caml_call2(Runtime_ocaml_Runtime[83],_bwa_,_bv__), + _bwc_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), + _bwd_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bwc_), + _bwe_=caml_call2(Runtime_ocaml_Runtime[83],_bwd_,_bwb_), + _bwf_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bwg_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bwf_), + _bwh_=caml_call2(Runtime_ocaml_Runtime[83],_bwg_,_bwe_), + _bwi_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bwj_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bwi_), + _bwk_=caml_call2(Runtime_ocaml_Runtime[83],_bwj_,_bwh_); + return caml_call2(Runtime_ocaml_Runtime[29],_A2_,_bwk_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_A3_,[0],_bv7_,_bv6_)} + function _boE_(param) + {function _bvu_(param) + {switch(zone[0]) + {case 0: + var _bvL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$256); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvL_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25147) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30347); + var + _bvM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$171), + _bvN_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvM_), + _bvO_=caml_call1(Runtime_ocaml_Runtime[69],_bvN_), + _bvP_=caml_call1(Runtime_ocaml_Runtime[31],cst_5200), + _bvQ_=caml_call2(Runtime_ocaml_Runtime[104],_bvP_,_bvO_), + _bvR_=caml_call1(Runtime_ocaml_Runtime[31],cst_35547); + return caml_call2(Runtime_ocaml_Runtime[93],_bvR_,_bvQ_); + case 1: + var _bvS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$257); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvS_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_22417) + :caml_call1(Runtime_ocaml_Runtime[31],cst_26999); + var + _bvT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$172), + _bvU_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvT_), + _bvV_=caml_call1(Runtime_ocaml_Runtime[69],_bvU_), + _bvW_=caml_call1(Runtime_ocaml_Runtime[31],cst_4582), + _bvX_=caml_call2(Runtime_ocaml_Runtime[104],_bvW_,_bvV_), + _bvY_=caml_call1(Runtime_ocaml_Runtime[31],cst_31581); + return caml_call2(Runtime_ocaml_Runtime[93],_bvY_,_bvX_); + default: + var _bvZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$258); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvZ_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_20935) + :caml_call1(Runtime_ocaml_Runtime[31],cst_25116$0); + var + _bv0_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$173), + _bv1_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bv0_), + _bv2_=caml_call1(Runtime_ocaml_Runtime[69],_bv1_), + _bv3_=caml_call1(Runtime_ocaml_Runtime[31],cst_4181), + _bv4_=caml_call2(Runtime_ocaml_Runtime[104],_bv3_,_bv2_), + _bv5_=caml_call1(Runtime_ocaml_Runtime[31],cst_29297); + return caml_call2(Runtime_ocaml_Runtime[93],_bv5_,_bv4_)}} + function _bvv_(param) + {switch(type_pret[0]) + {case 0:var _bvw_=0;break; + case 1:var _bvw_=1;break; + case 2:var _bvw_=0;break; + case 3:var _bvw_=0;break; + default:var _bvw_=0} + var + _bvx_=0 === anciennete_logement[0]?0:1, + _bvy_=caml_call2(Runtime_ocaml_Runtime[83],_bvx_,_bvw_), + _bvz_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), + _bvA_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bvz_), + _bvB_=caml_call2(Runtime_ocaml_Runtime[83],_bvA_,_bvy_), + _bvC_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), + _bvD_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bvC_), + _bvE_=caml_call2(Runtime_ocaml_Runtime[83],_bvD_,_bvB_), + _bvF_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bvG_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bvF_), + _bvH_=caml_call2(Runtime_ocaml_Runtime[83],_bvG_,_bvE_), + _bvI_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bvJ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bvI_), + _bvK_=caml_call2(Runtime_ocaml_Runtime[83],_bvJ_,_bvH_); + return caml_call2(Runtime_ocaml_Runtime[29],_A4_,_bvK_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_A5_,[0],_bvv_,_bvu_)} + function _boF_(param) + {function _buU_(param) + {switch(zone[0]) + {case 0: + var _bu$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$259); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bu$_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31241) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37689); + var + _bva_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$174), + _bvb_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bva_), + _bvc_=caml_call1(Runtime_ocaml_Runtime[69],_bvb_), + _bvd_=caml_call1(Runtime_ocaml_Runtime[31],cst_6448), + _bve_=caml_call2(Runtime_ocaml_Runtime[104],_bvd_,_bvc_), + _bvf_=caml_call1(Runtime_ocaml_Runtime[31],cst_44137); + return caml_call2(Runtime_ocaml_Runtime[93],_bvf_,_bve_); + case 1: + var _bvg_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$260); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvg_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27879) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33556); + var + _bvh_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$175), + _bvi_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvh_), + _bvj_=caml_call1(Runtime_ocaml_Runtime[69],_bvi_), + _bvk_=caml_call1(Runtime_ocaml_Runtime[31],cst_5677), + _bvl_=caml_call2(Runtime_ocaml_Runtime[104],_bvk_,_bvj_), + _bvm_=caml_call1(Runtime_ocaml_Runtime[31],cst_39233); + return caml_call2(Runtime_ocaml_Runtime[93],_bvm_,_bvl_); + default: + var _bvn_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$261); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvn_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26027) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31210); + var + _bvo_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$176), + _bvp_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvo_), + _bvq_=caml_call1(Runtime_ocaml_Runtime[69],_bvp_), + _bvr_=caml_call1(Runtime_ocaml_Runtime[31],cst_5183), + _bvs_=caml_call2(Runtime_ocaml_Runtime[104],_bvr_,_bvq_), + _bvt_=caml_call1(Runtime_ocaml_Runtime[31],cst_36393); + return caml_call2(Runtime_ocaml_Runtime[93],_bvt_,_bvs_)}} + function _buV_(param) + {switch(type_pret[0]) + {case 0:var _buW_=0;break; + case 1:var _buW_=1;break; + case 2:var _buW_=0;break; + case 3:var _buW_=0;break; + default:var _buW_=0} + var + _buX_=0 === anciennete_logement[0]?1:0, + _buY_=caml_call2(Runtime_ocaml_Runtime[83],_buX_,_buW_), + _buZ_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), + _bu0_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_buZ_), + _bu1_=caml_call2(Runtime_ocaml_Runtime[83],_bu0_,_buY_), + _bu2_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), + _bu3_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bu2_), + _bu4_=caml_call2(Runtime_ocaml_Runtime[83],_bu3_,_bu1_), + _bu5_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bu6_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bu5_), + _bu7_=caml_call2(Runtime_ocaml_Runtime[83],_bu6_,_bu4_), + _bu8_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bu9_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bu8_), + _bu__=caml_call2(Runtime_ocaml_Runtime[83],_bu9_,_bu7_); + return caml_call2(Runtime_ocaml_Runtime[29],_A6_,_bu__)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_A7_,[0],_buV_,_buU_)} + function _boG_(param) + {function _bui_(param) + {switch(zone[0]) + {case 0: + var _buz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$262); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_buz_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24849) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29987); + var + _buA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$177), + _buB_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buA_), + _buC_=caml_call1(Runtime_ocaml_Runtime[69],_buB_), + _buD_=caml_call1(Runtime_ocaml_Runtime[31],cst_5138), + _buE_=caml_call2(Runtime_ocaml_Runtime[104],_buD_,_buC_), + _buF_=caml_call1(Runtime_ocaml_Runtime[31],cst_35125); + return caml_call2(Runtime_ocaml_Runtime[93],_buF_,_buE_); + case 1: + var _buG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$263); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_buG_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_22151) + :caml_call1(Runtime_ocaml_Runtime[31],cst_26679); + var + _buH_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$178), + _buI_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buH_), + _buJ_=caml_call1(Runtime_ocaml_Runtime[69],_buI_), + _buK_=caml_call1(Runtime_ocaml_Runtime[31],cst_4528), + _buL_=caml_call2(Runtime_ocaml_Runtime[104],_buK_,_buJ_), + _buM_=caml_call1(Runtime_ocaml_Runtime[31],cst_31207); + return caml_call2(Runtime_ocaml_Runtime[93],_buM_,_buL_); + default: + var _buN_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$264); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_buN_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_20687) + :caml_call1(Runtime_ocaml_Runtime[31],cst_24818); + var + _buO_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$179), + _buP_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buO_), + _buQ_=caml_call1(Runtime_ocaml_Runtime[69],_buP_), + _buR_=caml_call1(Runtime_ocaml_Runtime[31],cst_4131), + _buS_=caml_call2(Runtime_ocaml_Runtime[104],_buR_,_buQ_), + _buT_=caml_call1(Runtime_ocaml_Runtime[31],cst_28949); + return caml_call2(Runtime_ocaml_Runtime[93],_buT_,_buS_)}} + function _buj_(param) + {switch(type_pret[0]) + {case 0:var _buk_=0;break; + case 1:var _buk_=1;break; + case 2:var _buk_=0;break; + case 3:var _buk_=0;break; + default:var _buk_=0} + var + _bul_=0 === anciennete_logement[0]?0:1, + _bum_=caml_call2(Runtime_ocaml_Runtime[83],_bul_,_buk_), + _bun_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), + _buo_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bun_), + _bup_=caml_call2(Runtime_ocaml_Runtime[83],_buo_,_bum_), + _buq_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), + _bur_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_buq_), + _bus_=caml_call2(Runtime_ocaml_Runtime[83],_bur_,_bup_), + _but_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _buu_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_but_), + _buv_=caml_call2(Runtime_ocaml_Runtime[83],_buu_,_bus_), + _buw_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bux_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_buw_), + _buy_=caml_call2(Runtime_ocaml_Runtime[83],_bux_,_buv_); + return caml_call2(Runtime_ocaml_Runtime[29],_A8_,_buy_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_A9_,[0],_buj_,_bui_)} + function _boH_(param) + {function _btH_(param) + {switch(zone[0]) + {case 0: + var _btY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$265); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btY_)) + var + _btZ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_163000) + :caml_call1(Runtime_ocaml_Runtime[31],cst_196700); + else + var + _bt0_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$180), + _bt1_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bt0_), + _bt2_=caml_call1(Runtime_ocaml_Runtime[69],_bt1_), + _bt3_=caml_call1(Runtime_ocaml_Runtime[31],cst_33700), + _bt4_=caml_call2(Runtime_ocaml_Runtime[104],_bt3_,_bt2_), + _bt5_=caml_call1(Runtime_ocaml_Runtime[31],cst_230400), + _btZ_=caml_call2(Runtime_ocaml_Runtime[93],_bt5_,_bt4_); + break; + case 1: + var _bt6_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$266); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bt6_)) + var + _btZ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_145300) + :caml_call1(Runtime_ocaml_Runtime[31],cst_175000); + else + var + _bt7_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$181), + _bt8_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bt7_), + _bt9_=caml_call1(Runtime_ocaml_Runtime[69],_bt8_), + _bt__=caml_call1(Runtime_ocaml_Runtime[31],cst_29700), + _bt$_=caml_call2(Runtime_ocaml_Runtime[104],_bt__,_bt9_), + _bua_=caml_call1(Runtime_ocaml_Runtime[31],cst_204700), + _btZ_=caml_call2(Runtime_ocaml_Runtime[93],_bua_,_bt$_); + break; + default: + var _bub_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$267); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bub_)) + var + _btZ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_135700) + :caml_call1(Runtime_ocaml_Runtime[31],cst_162800); + else + var + _buc_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$182), + _bud_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buc_), + _bue_=caml_call1(Runtime_ocaml_Runtime[69],_bud_), + _buf_=caml_call1(Runtime_ocaml_Runtime[31],cst_27100), + _bug_=caml_call2(Runtime_ocaml_Runtime[104],_buf_,_bue_), + _buh_=caml_call1(Runtime_ocaml_Runtime[31],cst_189900), + _btZ_=caml_call2(Runtime_ocaml_Runtime[93],_buh_,_bug_)} + return caml_call2 + (Runtime_ocaml_Runtime[104],_btZ_,taux_francs_vers_euros)} + function _btI_(param) + {switch(type_pret[0]) + {case 0:var _btJ_=0;break; + case 1:var _btJ_=1;break; + case 2:var _btJ_=0;break; + case 3:var _btJ_=0;break; + default:var _btJ_=0} + var + _btK_=0 === anciennete_logement[0]?0:1, + _btL_=caml_call2(Runtime_ocaml_Runtime[83],_btK_,_btJ_), + _btM_=caml_call3(Runtime_ocaml_Runtime[57],2001,12,31), + _btN_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_btM_), + _btO_=caml_call2(Runtime_ocaml_Runtime[83],_btN_,_btL_), + _btP_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), + _btQ_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_btP_), + _btR_=caml_call2(Runtime_ocaml_Runtime[83],_btQ_,_btO_), + _btS_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _btT_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_btS_), + _btU_=caml_call2(Runtime_ocaml_Runtime[83],_btT_,_btR_), + _btV_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _btW_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_btV_), + _btX_=caml_call2(Runtime_ocaml_Runtime[83],_btW_,_btU_); + return caml_call2(Runtime_ocaml_Runtime[29],_A__,_btX_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_A$_,[0],_btI_,_btH_)} + function _boI_(param) + {function _bs7_(param) + {switch(zone[0]) + {case 0: + var _btm_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$268); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btm_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_30871) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37243); + var + _btn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$183), + _bto_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btn_), + _btp_=caml_call1(Runtime_ocaml_Runtime[69],_bto_), + _btq_=caml_call1(Runtime_ocaml_Runtime[31],cst_6372), + _btr_=caml_call2(Runtime_ocaml_Runtime[104],_btq_,_btp_), + _bts_=caml_call1(Runtime_ocaml_Runtime[31],cst_43615); + return caml_call2(Runtime_ocaml_Runtime[93],_bts_,_btr_); + case 1: + var _btt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$269); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btt_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27548) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33148); + var + _btu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$184), + _btv_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btu_), + _btw_=caml_call1(Runtime_ocaml_Runtime[69],_btv_), + _btx_=caml_call1(Runtime_ocaml_Runtime[31],cst_5610), + _bty_=caml_call2(Runtime_ocaml_Runtime[104],_btx_,_btw_), + _btz_=caml_call1(Runtime_ocaml_Runtime[31],cst_38768); + return caml_call2(Runtime_ocaml_Runtime[93],_btz_,_bty_); + default: + var _btA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$270); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btA_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25718) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30840); + var + _btB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$185), + _btC_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btB_), + _btD_=caml_call1(Runtime_ocaml_Runtime[69],_btC_), + _btE_=caml_call1(Runtime_ocaml_Runtime[31],cst_5122), + _btF_=caml_call2(Runtime_ocaml_Runtime[104],_btE_,_btD_), + _btG_=caml_call1(Runtime_ocaml_Runtime[31],cst_35962); + return caml_call2(Runtime_ocaml_Runtime[93],_btG_,_btF_)}} + function _bs8_(param) + {switch(type_pret[0]) + {case 0:var _bs9_=0;break; + case 1:var _bs9_=1;break; + case 2:var _bs9_=0;break; + case 3:var _bs9_=0;break; + default:var _bs9_=0} + var + _bs__=0 === anciennete_logement[0]?1:0, + _bs$_=caml_call2(Runtime_ocaml_Runtime[83],_bs__,_bs9_), + _bta_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), + _btb_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bta_), + _btc_=caml_call2(Runtime_ocaml_Runtime[83],_btb_,_bs$_), + _btd_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), + _bte_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_btd_), + _btf_=caml_call2(Runtime_ocaml_Runtime[83],_bte_,_btc_), + _btg_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bth_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_btg_), + _bti_=caml_call2(Runtime_ocaml_Runtime[83],_bth_,_btf_), + _btj_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _btk_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_btj_), + _btl_=caml_call2(Runtime_ocaml_Runtime[83],_btk_,_bti_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ba_,_btl_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Bb_,[0],_bs8_,_bs7_)} + function _boJ_(param) + {function _bsu_(param) + {switch(zone[0]) + {case 0: + var _bsL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$271); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsL_)) + var + _bsM_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_202500$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_244300); + else + var + _bsN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$186), + _bsO_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsN_), + _bsP_=caml_call1(Runtime_ocaml_Runtime[69],_bsO_), + _bsQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_41800), + _bsR_=caml_call2(Runtime_ocaml_Runtime[104],_bsQ_,_bsP_), + _bsS_=caml_call1(Runtime_ocaml_Runtime[31],cst_286100), + _bsM_=caml_call2(Runtime_ocaml_Runtime[93],_bsS_,_bsR_); + break; + case 1: + var _bsT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$272); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsT_)) + var + _bsM_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_180700) + :caml_call1(Runtime_ocaml_Runtime[31],cst_217500); + else + var + _bsU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$187), + _bsV_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsU_), + _bsW_=caml_call1(Runtime_ocaml_Runtime[69],_bsV_), + _bsX_=caml_call1(Runtime_ocaml_Runtime[31],cst_36800), + _bsY_=caml_call2(Runtime_ocaml_Runtime[104],_bsX_,_bsW_), + _bsZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_254300), + _bsM_=caml_call2(Runtime_ocaml_Runtime[93],_bsZ_,_bsY_); + break; + default: + var _bs0_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$273); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bs0_)) + var + _bsM_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_168700) + :caml_call1(Runtime_ocaml_Runtime[31],cst_202300); + else + var + _bs1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$188), + _bs2_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bs1_), + _bs3_=caml_call1(Runtime_ocaml_Runtime[69],_bs2_), + _bs4_=caml_call1(Runtime_ocaml_Runtime[31],cst_33600), + _bs5_=caml_call2(Runtime_ocaml_Runtime[104],_bs4_,_bs3_), + _bs6_=caml_call1(Runtime_ocaml_Runtime[31],cst_235900), + _bsM_=caml_call2(Runtime_ocaml_Runtime[93],_bs6_,_bs5_)} + return caml_call2 + (Runtime_ocaml_Runtime[104],_bsM_,taux_francs_vers_euros)} + function _bsv_(param) + {switch(type_pret[0]) + {case 0:var _bsw_=0;break; + case 1:var _bsw_=1;break; + case 2:var _bsw_=0;break; + case 3:var _bsw_=0;break; + default:var _bsw_=0} + var + _bsx_=0 === anciennete_logement[0]?1:0, + _bsy_=caml_call2(Runtime_ocaml_Runtime[83],_bsx_,_bsw_), + _bsz_=caml_call3(Runtime_ocaml_Runtime[57],2001,12,31), + _bsA_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bsz_), + _bsB_=caml_call2(Runtime_ocaml_Runtime[83],_bsA_,_bsy_), + _bsC_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), + _bsD_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bsC_), + _bsE_=caml_call2(Runtime_ocaml_Runtime[83],_bsD_,_bsB_), + _bsF_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bsG_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bsF_), + _bsH_=caml_call2(Runtime_ocaml_Runtime[83],_bsG_,_bsE_), + _bsI_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bsJ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bsI_), + _bsK_=caml_call2(Runtime_ocaml_Runtime[83],_bsJ_,_bsH_); + return caml_call2(Runtime_ocaml_Runtime[29],_Bc_,_bsK_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Bd_,[0],_bsv_,_bsu_)} + function _boK_(param) + {function _brT_(param) + {switch(zone[0]) + {case 0: + var _br__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$274); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_br__)) + var + _br$_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_161100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_194400); + else + var + _bsa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$189), + _bsb_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsa_), + _bsc_=caml_call1(Runtime_ocaml_Runtime[69],_bsb_), + _bsd_=caml_call1(Runtime_ocaml_Runtime[31],cst_33300), + _bse_=caml_call2(Runtime_ocaml_Runtime[104],_bsd_,_bsc_), + _bsf_=caml_call1(Runtime_ocaml_Runtime[31],cst_227700), + _br$_=caml_call2(Runtime_ocaml_Runtime[93],_bsf_,_bse_); + break; + case 1: + var _bsg_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$275); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsg_)) + var + _br$_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_143600) + :caml_call1(Runtime_ocaml_Runtime[31],cst_172900); + else + var + _bsh_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$190), + _bsi_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsh_), + _bsj_=caml_call1(Runtime_ocaml_Runtime[69],_bsi_), + _bsk_=caml_call1(Runtime_ocaml_Runtime[31],cst_29300), + _bsl_=caml_call2(Runtime_ocaml_Runtime[104],_bsk_,_bsj_), + _bsm_=caml_call1(Runtime_ocaml_Runtime[31],cst_202200), + _br$_=caml_call2(Runtime_ocaml_Runtime[93],_bsm_,_bsl_); + break; + default: + var _bsn_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$276); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsn_)) + var + _br$_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_134100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_160900); + else + var + _bso_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$191), + _bsp_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bso_), + _bsq_=caml_call1(Runtime_ocaml_Runtime[69],_bsp_), + _bsr_=caml_call1(Runtime_ocaml_Runtime[31],cst_26800), + _bss_=caml_call2(Runtime_ocaml_Runtime[104],_bsr_,_bsq_), + _bst_=caml_call1(Runtime_ocaml_Runtime[31],cst_187700), + _br$_=caml_call2(Runtime_ocaml_Runtime[93],_bst_,_bss_)} + return caml_call2 + (Runtime_ocaml_Runtime[104],_br$_,taux_francs_vers_euros)} + function _brU_(param) + {switch(type_pret[0]) + {case 0:var _brV_=0;break; + case 1:var _brV_=1;break; + case 2:var _brV_=0;break; + case 3:var _brV_=0;break; + default:var _brV_=0} + var + _brW_=0 === anciennete_logement[0]?0:1, + _brX_=caml_call2(Runtime_ocaml_Runtime[83],_brW_,_brV_), + _brY_=caml_call3(Runtime_ocaml_Runtime[57],2001,6,30), + _brZ_= + caml_call2 + (Runtime_ocaml_Runtime[120],date_signature_pret,_brY_), + _br0_=caml_call2(Runtime_ocaml_Runtime[83],_brZ_,_brX_), + _br1_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), + _br2_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_br1_), + _br3_=caml_call2(Runtime_ocaml_Runtime[83],_br2_,_br0_), + _br4_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _br5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_br4_), + _br6_=caml_call2(Runtime_ocaml_Runtime[83],_br5_,_br3_), + _br7_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _br8_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_br7_), + _br9_=caml_call2(Runtime_ocaml_Runtime[83],_br8_,_br6_); + return caml_call2(Runtime_ocaml_Runtime[29],_Be_,_br9_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Bf_,[0],_brU_,_brT_)} + function _boL_(param) + {function _brg_(param) + {switch(zone[0]) + {case 0: + var _brx_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$277); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_brx_)) + var + _bry_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_200100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_141400); + else + var + _brz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$192), + _brA_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_brz_), + _brB_=caml_call1(Runtime_ocaml_Runtime[69],_brA_), + _brC_=caml_call1(Runtime_ocaml_Runtime[31],cst_41300), + _brD_=caml_call2(Runtime_ocaml_Runtime[104],_brC_,_brB_), + _brE_=caml_call1(Runtime_ocaml_Runtime[31],cst_182700), + _bry_=caml_call2(Runtime_ocaml_Runtime[93],_brE_,_brD_); + break; + case 1: + var _brF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$278); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_brF_)) + var + _bry_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_178600) + :caml_call1(Runtime_ocaml_Runtime[31],cst_215000); + else + var + _brG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$193), + _brH_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_brG_), + _brI_=caml_call1(Runtime_ocaml_Runtime[69],_brH_), + _brJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_36400), + _brK_=caml_call2(Runtime_ocaml_Runtime[104],_brJ_,_brI_), + _brL_=caml_call1(Runtime_ocaml_Runtime[31],cst_251400), + _bry_=caml_call2(Runtime_ocaml_Runtime[93],_brL_,_brK_); + break; + default: + var _brM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$279); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_brM_)) + var + _bry_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_166700) + :caml_call1(Runtime_ocaml_Runtime[31],cst_199900); + else + var + _brN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$194), + _brO_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_brN_), + _brP_=caml_call1(Runtime_ocaml_Runtime[69],_brO_), + _brQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_33200), + _brR_=caml_call2(Runtime_ocaml_Runtime[104],_brQ_,_brP_), + _brS_=caml_call1(Runtime_ocaml_Runtime[31],cst_233100), + _bry_=caml_call2(Runtime_ocaml_Runtime[93],_brS_,_brR_)} + return caml_call2 + (Runtime_ocaml_Runtime[104],_bry_,taux_francs_vers_euros)} + function _brh_(param) + {switch(type_pret[0]) + {case 0:var _bri_=0;break; + case 1:var _bri_=1;break; + case 2:var _bri_=0;break; + case 3:var _bri_=0;break; + default:var _bri_=0} + var + _brj_=0 === anciennete_logement[0]?1:0, + _brk_=caml_call2(Runtime_ocaml_Runtime[83],_brj_,_bri_), + _brl_=caml_call3(Runtime_ocaml_Runtime[57],2001,6,30), + _brm_= + caml_call2 + (Runtime_ocaml_Runtime[120],date_signature_pret,_brl_), + _brn_=caml_call2(Runtime_ocaml_Runtime[83],_brm_,_brk_), + _bro_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), + _brp_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bro_), + _brq_=caml_call2(Runtime_ocaml_Runtime[83],_brp_,_brn_), + _brr_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _brs_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_brr_), + _brt_=caml_call2(Runtime_ocaml_Runtime[83],_brs_,_brq_), + _bru_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _brv_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bru_), + _brw_=caml_call2(Runtime_ocaml_Runtime[83],_brv_,_brt_); + return caml_call2(Runtime_ocaml_Runtime[29],_Bg_,_brw_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Bh_,[0],_brh_,_brg_)} + function _boM_(param) + {function _bqF_(param) + {switch(zone[0]) + {case 0: + var _bqW_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$280); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqW_)) + var + _bqX_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_159500) + :caml_call1(Runtime_ocaml_Runtime[31],cst_192500); + else + var + _bqY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$195), + _bqZ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bqY_), + _bq0_=caml_call1(Runtime_ocaml_Runtime[69],_bqZ_), + _bq1_=caml_call1(Runtime_ocaml_Runtime[31],cst_33000), + _bq2_=caml_call2(Runtime_ocaml_Runtime[104],_bq1_,_bq0_), + _bq3_=caml_call1(Runtime_ocaml_Runtime[31],cst_225500), + _bqX_=caml_call2(Runtime_ocaml_Runtime[93],_bq3_,_bq2_); + break; + case 1: + var _bq4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$281); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bq4_)) + var + _bqX_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_142200) + :caml_call1(Runtime_ocaml_Runtime[31],cst_171200); + else + var + _bq5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$196), + _bq6_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bq5_), + _bq7_=caml_call1(Runtime_ocaml_Runtime[69],_bq6_), + _bq8_=caml_call1(Runtime_ocaml_Runtime[31],cst_29000), + _bq9_=caml_call2(Runtime_ocaml_Runtime[104],_bq8_,_bq7_), + _bq__=caml_call1(Runtime_ocaml_Runtime[31],cst_200200), + _bqX_=caml_call2(Runtime_ocaml_Runtime[93],_bq__,_bq9_); + break; + default: + var _bq$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$282); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bq$_)) + var + _bqX_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_132800) + :caml_call1(Runtime_ocaml_Runtime[31],cst_159300); + else + var + _bra_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$197), + _brb_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bra_), + _brc_=caml_call1(Runtime_ocaml_Runtime[69],_brb_), + _brd_=caml_call1(Runtime_ocaml_Runtime[31],cst_26500), + _bre_=caml_call2(Runtime_ocaml_Runtime[104],_brd_,_brc_), + _brf_=caml_call1(Runtime_ocaml_Runtime[31],cst_185800$0), + _bqX_=caml_call2(Runtime_ocaml_Runtime[93],_brf_,_bre_)} + return caml_call2 + (Runtime_ocaml_Runtime[104],_bqX_,taux_francs_vers_euros)} + function _bqG_(param) + {switch(type_pret[0]) + {case 0:var _bqH_=0;break; + case 1:var _bqH_=1;break; + case 2:var _bqH_=0;break; + case 3:var _bqH_=0;break; + default:var _bqH_=0} + var + _bqI_=0 === anciennete_logement[0]?0:1, + _bqJ_=caml_call2(Runtime_ocaml_Runtime[83],_bqI_,_bqH_), + _bqK_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), + _bqL_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bqK_), + _bqM_=caml_call2(Runtime_ocaml_Runtime[83],_bqL_,_bqJ_), + _bqN_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), + _bqO_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bqN_), + _bqP_=caml_call2(Runtime_ocaml_Runtime[83],_bqO_,_bqM_), + _bqQ_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bqR_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bqQ_), + _bqS_=caml_call2(Runtime_ocaml_Runtime[83],_bqR_,_bqP_), + _bqT_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bqU_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bqT_), + _bqV_=caml_call2(Runtime_ocaml_Runtime[83],_bqU_,_bqS_); + return caml_call2(Runtime_ocaml_Runtime[29],_Bi_,_bqV_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Bj_,[0],_bqG_,_bqF_)} + function _boN_(param) + {function _bp4_(param) + {switch(zone[0]) + {case 0: + var _bqj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$283); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqj_)) + var + _bqk_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_198100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_239000); + else + var + _bql_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$198), + _bqm_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bql_), + _bqn_=caml_call1(Runtime_ocaml_Runtime[69],_bqm_), + _bqo_=caml_call1(Runtime_ocaml_Runtime[31],cst_40900), + _bqp_=caml_call2(Runtime_ocaml_Runtime[104],_bqo_,_bqn_), + _bqq_=caml_call1(Runtime_ocaml_Runtime[31],cst_279900), + _bqk_=caml_call2(Runtime_ocaml_Runtime[93],_bqq_,_bqp_); + break; + case 1: + var _bqr_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$284); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqr_)) + var + _bqk_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_176800) + :caml_call1(Runtime_ocaml_Runtime[31],cst_212800); + else + var + _bqs_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$199), + _bqt_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bqs_), + _bqu_=caml_call1(Runtime_ocaml_Runtime[69],_bqt_), + _bqv_=caml_call1(Runtime_ocaml_Runtime[31],cst_36000), + _bqw_=caml_call2(Runtime_ocaml_Runtime[104],_bqv_,_bqu_), + _bqx_=caml_call1(Runtime_ocaml_Runtime[31],cst_248800), + _bqk_=caml_call2(Runtime_ocaml_Runtime[93],_bqx_,_bqw_); + break; + default: + var _bqy_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$285); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqy_)) + var + _bqk_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_165000) + :caml_call1(Runtime_ocaml_Runtime[31],cst_197900); + else + var + _bqz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$200), + _bqA_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bqz_), + _bqB_=caml_call1(Runtime_ocaml_Runtime[69],_bqA_), + _bqC_=caml_call1(Runtime_ocaml_Runtime[31],cst_32900), + _bqD_=caml_call2(Runtime_ocaml_Runtime[104],_bqC_,_bqB_), + _bqE_=caml_call1(Runtime_ocaml_Runtime[31],cst_230800), + _bqk_=caml_call2(Runtime_ocaml_Runtime[93],_bqE_,_bqD_)} + return caml_call2 + (Runtime_ocaml_Runtime[104],_bqk_,taux_francs_vers_euros)} + function _bp5_(param) + {switch(type_pret[0]) + {case 0:var _bp6_=0;break; + case 1:var _bp6_=1;break; + case 2:var _bp6_=0;break; + case 3:var _bp6_=0;break; + default:var _bp6_=0} + var + _bp7_=0 === anciennete_logement[0]?1:0, + _bp8_=caml_call2(Runtime_ocaml_Runtime[83],_bp7_,_bp6_), + _bp9_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), + _bp__= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bp9_), + _bp$_=caml_call2(Runtime_ocaml_Runtime[83],_bp__,_bp8_), + _bqa_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), + _bqb_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bqa_), + _bqc_=caml_call2(Runtime_ocaml_Runtime[83],_bqb_,_bp$_), + _bqd_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bqe_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bqd_), + _bqf_=caml_call2(Runtime_ocaml_Runtime[83],_bqe_,_bqc_), + _bqg_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bqh_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bqg_), + _bqi_=caml_call2(Runtime_ocaml_Runtime[83],_bqh_,_bqf_); + return caml_call2(Runtime_ocaml_Runtime[29],_Bk_,_bqi_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Bl_,[0],_bp5_,_bp4_)} + function _boO_(param) + {function _bpr_(param) + {switch(zone[0]) + {case 0: + var _bpI_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$286); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpI_)) + var + _bpJ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_167800$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_202500$1); + else + var + _bpK_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$201), + _bpL_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpK_), + _bpM_=caml_call1(Runtime_ocaml_Runtime[69],_bpL_), + _bpN_=caml_call1(Runtime_ocaml_Runtime[31],cst_34700$0), + _bpO_=caml_call2(Runtime_ocaml_Runtime[104],_bpN_,_bpM_), + _bpP_=caml_call1(Runtime_ocaml_Runtime[31],cst_237200$0), + _bpJ_=caml_call2(Runtime_ocaml_Runtime[93],_bpP_,_bpO_); + break; + case 1: + var _bpQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$287); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpQ_)) + var + _bpJ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_149600$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_180100$0); + else + var + _bpR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$202), + _bpS_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpR_), + _bpT_=caml_call1(Runtime_ocaml_Runtime[69],_bpS_), + _bpU_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500$2), + _bpV_=caml_call2(Runtime_ocaml_Runtime[104],_bpU_,_bpT_), + _bpW_=caml_call1(Runtime_ocaml_Runtime[31],cst_210600$0), + _bpJ_=caml_call2(Runtime_ocaml_Runtime[93],_bpW_,_bpV_); + break; + default: + var _bpX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$288); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpX_)) + var + _bpJ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_139700$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_167600$0); + else + var + _bpY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$203), + _bpZ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpY_), + _bp0_=caml_call1(Runtime_ocaml_Runtime[69],_bpZ_), + _bp1_=caml_call1(Runtime_ocaml_Runtime[31],cst_27900$0), + _bp2_=caml_call2(Runtime_ocaml_Runtime[104],_bp1_,_bp0_), + _bp3_=caml_call1(Runtime_ocaml_Runtime[31],cst_195500$0), + _bpJ_=caml_call2(Runtime_ocaml_Runtime[93],_bp3_,_bp2_)} + return caml_call2 + (Runtime_ocaml_Runtime[104],_bpJ_,taux_francs_vers_euros)} + function _bps_(param) + {switch(type_pret[0]) + {case 0:var _bpt_=0;break; + case 1:var _bpt_=1;break; + case 2:var _bpt_=0;break; + case 3:var _bpt_=0;break; + default:var _bpt_=0} + var + _bpu_=0 === anciennete_logement[0]?0:1, + _bpv_=caml_call2(Runtime_ocaml_Runtime[83],_bpu_,_bpt_), + _bpw_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), + _bpx_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_bpw_), + _bpy_=caml_call2(Runtime_ocaml_Runtime[83],_bpx_,_bpv_), + _bpz_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), + _bpA_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bpz_), + _bpB_=caml_call2(Runtime_ocaml_Runtime[83],_bpA_,_bpy_), + _bpC_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bpD_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bpC_), + _bpE_=caml_call2(Runtime_ocaml_Runtime[83],_bpD_,_bpB_), + _bpF_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bpG_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bpF_), + _bpH_=caml_call2(Runtime_ocaml_Runtime[83],_bpG_,_bpE_); + return caml_call2(Runtime_ocaml_Runtime[29],_Bm_,_bpH_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Bn_,[0],_bps_,_bpr_)} var - _a2z_ = caml_call2(Runtime_ocaml_Runtime[84], _a2y_, _a2x_); - return caml_call2(Runtime_ocaml_Runtime[29], _td_, _a2z_); - } - var - _a2n_ = + _boP_= [0, - function(param){ - function _a2o_(param){return 1;} - function _a2p_(param){ - var - _a2q_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _te_, - embed_verification_age_superie$0, - [0, enfant[4], date_courante, age_l512_3_2$0]), - result = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _tf_, - verification_age_superieur_a), - _a2q_), - result$0 = [0, result[1]]; - caml_call2(Runtime_ocaml_Runtime[29], _tg_, 1); - var - _a2r_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _th_, - embed_verification_age_superie, - result$0), - _a2s_ = - caml_call2(Runtime_ocaml_Runtime[27], _ti_, _a2r_)[1], - _a2t_ = - caml_call2 - (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2), - _a2u_ = caml_call2(Runtime_ocaml_Runtime[83], _a2t_, _a2s_); - switch(enfant[2][0]){ - case 0: - var _a2v_ = 0; break; - case 1: - var _a2v_ = 0; break; - default: var _a2v_ = 1; - } - var - _a2w_ = caml_call2(Runtime_ocaml_Runtime[83], _a2v_, _a2u_); - return caml_call2(Runtime_ocaml_Runtime[29], _tj_, _a2w_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _tk_, [0], _a2p_, _a2o_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _tl_, _a2n_, _a2m_, _a2l_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _tm_, _a2k_, _a2j_, _a2i_); - }], - _a2g_ = - caml_call4(Runtime_ocaml_Runtime[63], _tn_, _a2f_, _a2e_, _a2d_); - return _a2g_; - } - catch(_a2h_){ - var _a2c_ = caml_wrap_exception(_a2h_); - if(_a2c_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tb_], 1); - throw caml_maybe_attach_backtrace(_a2c_, 0); - } - } - var - droit_ouvert = - caml_call3 - (Runtime_ocaml_Runtime[28], _to_, Runtime_ocaml_Runtime[10], _a2b_); - return [0, - age_l512_3_2$0, - droit_ouvert, - conditions_hors_age, - regime_outre_mer_l751_1]; - } - function calcul_allocation_logement_loc(calcul_allocation_logement_loc){ - var - loyer_principal = calcul_allocation_logement_loc[1], - ressources_menage_arrondies = calcul_allocation_logement_loc[2], - beneficiaire_aide_adulte_ou_en = calcul_allocation_logement_loc[3], - date_courante = calcul_allocation_logement_loc[4], - nombre_personnes_a_charge = calcul_allocation_logement_loc[5], - situation_familiale_calcul_apl = calcul_allocation_logement_loc[6], - zone = calcul_allocation_logement_loc[7], - logement_est_chambre = calcul_allocation_logement_loc[8], - agees_ou_handicap_adultes_hebe = calcul_allocation_logement_loc[9], - type_aide = calcul_allocation_logement_loc[10], - colocation = calcul_allocation_logement_loc[11], - reduction_loyer_solidarite = calcul_allocation_logement_loc[12], - logement_meuble_d842_2 = calcul_allocation_logement_loc[13], - residence = calcul_allocation_logement_loc[14], - changement_logement_d842_4 = calcul_allocation_logement_loc[15]; - try{ - var - _a0l_ = function(param){return loyer_principal;}, - _a0m_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _tq_, 1); - }, - _a0n_ = caml_call4(Runtime_ocaml_Runtime[63], _tr_, [0], _a0m_, _a0l_), - calcul_apl_locatif_dot_loyer_p = - caml_call3 - (Runtime_ocaml_Runtime[28], _ts_, Runtime_ocaml_Runtime[13], _a0n_); - } - catch(_a1N_){ - var _a0k_ = caml_wrap_exception(_a1N_); - if(_a0k_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tp_], 1); - throw caml_maybe_attach_backtrace(_a0k_, 0); - } - try{ - var - _a0p_ = function(param){return ressources_menage_arrondies;}, - _a0q_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _tu_, 1); - }, - _a0r_ = caml_call4(Runtime_ocaml_Runtime[63], _tv_, [0], _a0q_, _a0p_), - calcul_apl_locatif_dot_ressour = - caml_call3 - (Runtime_ocaml_Runtime[28], _tw_, Runtime_ocaml_Runtime[13], _a0r_); - } - catch(_a1M_){ - var _a0o_ = caml_wrap_exception(_a1M_); - if(_a0o_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tt_], 1); - throw caml_maybe_attach_backtrace(_a0o_, 0); - } - try{ - var - _a0t_ = function(param){return beneficiaire_aide_adulte_ou_en;}, - _a0u_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ty_, 1); - }, - _a0v_ = caml_call4(Runtime_ocaml_Runtime[63], _tz_, [0], _a0u_, _a0t_), - calcul_apl_locatif_dot_benefic = - caml_call3 - (Runtime_ocaml_Runtime[28], _tA_, Runtime_ocaml_Runtime[12], _a0v_); - } - catch(_a1L_){ - var _a0s_ = caml_wrap_exception(_a1L_); - if(_a0s_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tx_], 1); - throw caml_maybe_attach_backtrace(_a0s_, 0); - } - try{ - var - _a0x_ = function(param){return date_courante;}, - _a0y_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _tC_, 1); - }, - _a0z_ = caml_call4(Runtime_ocaml_Runtime[63], _tD_, [0], _a0y_, _a0x_), - calcul_apl_locatif_dot_date_co = - caml_call3 - (Runtime_ocaml_Runtime[28], _tE_, Runtime_ocaml_Runtime[16], _a0z_); - } - catch(_a1K_){ - var _a0w_ = caml_wrap_exception(_a1K_); - if(_a0w_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tB_], 1); - throw caml_maybe_attach_backtrace(_a0w_, 0); - } - try{ - var - _a0B_ = function(param){return nombre_personnes_a_charge;}, - _a0C_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _tG_, 1); - }, - _a0D_ = caml_call4(Runtime_ocaml_Runtime[63], _tH_, [0], _a0C_, _a0B_), - calcul_apl_locatif_dot_nombre_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _tI_, Runtime_ocaml_Runtime[14], _a0D_); - } - catch(_a1J_){ - var _a0A_ = caml_wrap_exception(_a1J_); - if(_a0A_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tF_], 1); - throw caml_maybe_attach_backtrace(_a0A_, 0); - } - try{ - var - _a0F_ = function(param){return situation_familiale_calcul_apl;}, - _a0G_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _tK_, 1); - }, - _a0H_ = caml_call4(Runtime_ocaml_Runtime[63], _tL_, [0], _a0G_, _a0F_), - calcul_apl_locatif_dot_situati = - caml_call3 - (Runtime_ocaml_Runtime[28], - _tM_, - embed_situation_familiale_calc, - _a0H_); - } - catch(_a1I_){ - var _a0E_ = caml_wrap_exception(_a1I_); - if(_a0E_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tJ_], 1); - throw caml_maybe_attach_backtrace(_a0E_, 0); - } - try{ - var - _a0J_ = function(param){return zone;}, - _a0K_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _tO_, 1); - }, - _a0L_ = caml_call4(Runtime_ocaml_Runtime[63], _tP_, [0], _a0K_, _a0J_), - calcul_apl_locatif_dot_zone = - caml_call3 - (Runtime_ocaml_Runtime[28], _tQ_, embed_zone_d_habitation, _a0L_); - } - catch(_a1H_){ - var _a0I_ = caml_wrap_exception(_a1H_); - if(_a0I_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tN_], 1); - throw caml_maybe_attach_backtrace(_a0I_, 0); - } - try{ - var - _a0N_ = function(param){return logement_est_chambre;}, - _a0O_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _tS_, 1); - }, - _a0P_ = caml_call4(Runtime_ocaml_Runtime[63], _tT_, [0], _a0O_, _a0N_), - calcul_apl_locatif_dot_logemen = - caml_call3 - (Runtime_ocaml_Runtime[28], _tU_, Runtime_ocaml_Runtime[12], _a0P_); - } - catch(_a1G_){ - var _a0M_ = caml_wrap_exception(_a1G_); - if(_a0M_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tR_], 1); - throw caml_maybe_attach_backtrace(_a0M_, 0); - } - try{ - var - _a0R_ = function(param){return agees_ou_handicap_adultes_hebe;}, - _a0S_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _tW_, 1); - }, - _a0T_ = caml_call4(Runtime_ocaml_Runtime[63], _tX_, [0], _a0S_, _a0R_), - calcul_apl_locatif_dot_agees_o = - caml_call3 - (Runtime_ocaml_Runtime[28], _tY_, Runtime_ocaml_Runtime[12], _a0T_); - } - catch(_a1F_){ - var _a0Q_ = caml_wrap_exception(_a1F_); - if(_a0Q_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tV_], 1); - throw caml_maybe_attach_backtrace(_a0Q_, 0); - } - try{ - var - _a0V_ = function(param){return type_aide;}, - _a0W_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _t0_, 1); - }, - _a0X_ = caml_call4(Runtime_ocaml_Runtime[63], _t1_, [0], _a0W_, _a0V_), - calcul_apl_locatif_dot_type_ai = - caml_call3 - (Runtime_ocaml_Runtime[28], - _t2_, - embed_type_aides_personnelle_l, - _a0X_); - } - catch(_a1E_){ - var _a0U_ = caml_wrap_exception(_a1E_); - if(_a0U_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _tZ_], 1); - throw caml_maybe_attach_backtrace(_a0U_, 0); - } - try{ - var - _a0Z_ = function(param){return colocation;}, - _a00_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _t4_, 1); - }, - _a01_ = caml_call4(Runtime_ocaml_Runtime[63], _t5_, [0], _a00_, _a0Z_), - calcul_apl_locatif_dot_colocat = - caml_call3 - (Runtime_ocaml_Runtime[28], _t6_, Runtime_ocaml_Runtime[12], _a01_); - } - catch(_a1D_){ - var _a0Y_ = caml_wrap_exception(_a1D_); - if(_a0Y_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _t3_], 1); - throw caml_maybe_attach_backtrace(_a0Y_, 0); - } - try{ - var - _a03_ = function(param){return reduction_loyer_solidarite;}, - _a04_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _t8_, 1); - }, - _a05_ = caml_call4(Runtime_ocaml_Runtime[63], _t9_, [0], _a04_, _a03_), - calcul_apl_locatif_dot_reducti = - caml_call3 - (Runtime_ocaml_Runtime[28], _t__, Runtime_ocaml_Runtime[13], _a05_); - } - catch(_a1C_){ - var _a02_ = caml_wrap_exception(_a1C_); - if(_a02_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _t7_], 1); - throw caml_maybe_attach_backtrace(_a02_, 0); - } - try{ - var - _a07_ = function(param){return logement_meuble_d842_2;}, - _a08_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ua_, 1); - }, - _a09_ = caml_call4(Runtime_ocaml_Runtime[63], _ub_, [0], _a08_, _a07_), - calcul_apl_locatif_dot_logemen$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _uc_, Runtime_ocaml_Runtime[12], _a09_); - } - catch(_a1B_){ - var _a06_ = caml_wrap_exception(_a1B_); - if(_a06_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _t$_], 1); - throw caml_maybe_attach_backtrace(_a06_, 0); - } - try{ - var - _a0$_ = function(param){return residence;}, - _a1a_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ue_, 1); - }, - _a1b_ = caml_call4(Runtime_ocaml_Runtime[63], _uf_, [0], _a1a_, _a0$_), - calcul_apl_locatif_dot_residen = - caml_call3(Runtime_ocaml_Runtime[28], _ug_, embed_collectivite, _a1b_); - } - catch(_a1A_){ - var _a0__ = caml_wrap_exception(_a1A_); - if(_a0__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _ud_], 1); - throw caml_maybe_attach_backtrace(_a0__, 0); - } - var - _a1c_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _uh_, calcul_aide_personnalisee_loge), - [0, - calcul_apl_locatif_dot_loyer_p, - calcul_apl_locatif_dot_ressour, - calcul_apl_locatif_dot_benefic, - calcul_apl_locatif_dot_date_co, - calcul_apl_locatif_dot_nombre_, - calcul_apl_locatif_dot_situati, - calcul_apl_locatif_dot_zone, - calcul_apl_locatif_dot_logemen, - calcul_apl_locatif_dot_agees_o, - calcul_apl_locatif_dot_type_ai, - calcul_apl_locatif_dot_colocat, - calcul_apl_locatif_dot_reducti, - calcul_apl_locatif_dot_logemen$0, - calcul_apl_locatif_dot_residen]), - result = caml_call2(Runtime_ocaml_Runtime[27], _ui_, _a1c_), - calcul_apl_locatif_dot_aide_fi = result[6], - calcul_apl_locatif_dot_traitem = result[7]; - function _a1d_(aide_finale){ - try{ - var - _a1p_ = - function(param){ - var - _a1x_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _uk_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a1y_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _ul_, - calcul_apl_locatif_dot_traitem), - _a1x_), - _a1z_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _um_, - Runtime_ocaml_Runtime[13], - _a1y_); - return caml_call2(Runtime_ocaml_Runtime[27], _un_, _a1z_); - }, - _a1q_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _uo_, 1); - }, - _a1r_ = - [0, - function(param){ - function _a1u_(param){return aide_finale;} - function _a1v_(param){ - if(0 === changement_logement_d842_4[0]) - var - infos = changement_logement_d842_4[1], - _a1w_ = - caml_call2 - (Runtime_ocaml_Runtime[128], loyer_principal, infos[1]); - else - var _a1w_ = 0; - return caml_call2(Runtime_ocaml_Runtime[29], _up_, _a1w_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _uq_, [0], _a1v_, _a1u_); - }], - _a1s_ = - caml_call4(Runtime_ocaml_Runtime[63], _ur_, _a1r_, _a1q_, _a1p_); - return _a1s_; - } - catch(_a1t_){ - var _a1o_ = caml_wrap_exception(_a1t_); - if(_a1o_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _uj_], 1); - throw caml_maybe_attach_backtrace(_a1o_, 0); - } - } - var - traitement_aide_finale = - caml_call3 - (Runtime_ocaml_Runtime[28], _us_, Runtime_ocaml_Runtime[10], _a1d_); - try{ - var - _a1f_ = function(param){return calcul_apl_locatif_dot_aide_fi;}, - _a1g_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _uu_, 1); - }, - _a1h_ = - [0, - function(param){ - function _a1k_(param){ - if(0 !== changement_logement_d842_4[0]) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$246); - var - infos = changement_logement_d842_4[1], - _a1n_ = caml_call2(Runtime_ocaml_Runtime[98], infos[1], infos[2]); - return caml_call2 - (Runtime_ocaml_Runtime[98], loyer_principal, _a1n_); - } - function _a1l_(param){ - if(0 === changement_logement_d842_4[0]) - var - infos = changement_logement_d842_4[1], - _a1m_ = - caml_call2 - (Runtime_ocaml_Runtime[128], loyer_principal, infos[1]); - else - var _a1m_ = 0; - return caml_call2(Runtime_ocaml_Runtime[29], _uv_, _a1m_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _uw_, [0], _a1l_, _a1k_); - }], - _a1i_ = caml_call4(Runtime_ocaml_Runtime[63], _ux_, _a1h_, _a1g_, _a1f_); - } - catch(_a1j_){ - var _a1e_ = caml_wrap_exception(_a1j_); - if(_a1e_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _ut_], 1); - throw caml_maybe_attach_backtrace(_a1e_, 0); - } - var - aide_finale_formule = - caml_call3 - (Runtime_ocaml_Runtime[28], _uy_, Runtime_ocaml_Runtime[13], _a1i_); - return [0, aide_finale_formule, traitement_aide_finale]; - } - function calcul_allocation_logement_foy(calcul_allocation_logement_foy){ - var - type_logement_foyer = calcul_allocation_logement_foy[1], - date_conventionnement = calcul_allocation_logement_foy[2], - residence = calcul_allocation_logement_foy[3], - redevance = calcul_allocation_logement_foy[4], - ressources_menage_arrondies = calcul_allocation_logement_foy[5], - nombre_personnes_a_charge = calcul_allocation_logement_foy[6], - situation_familiale_calcul_apl = calcul_allocation_logement_foy[7], - zone = calcul_allocation_logement_foy[8], - date_courante = calcul_allocation_logement_foy[9], - categorie_equivalence_loyer_d8 = calcul_allocation_logement_foy[10]; - try{ - var - _aRv_ = function(param){return 1;}, - _aRw_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _uA_, 1); - }, - _aRx_ = caml_call4(Runtime_ocaml_Runtime[63], _uB_, [0], _aRw_, _aRv_), - calcul_nombre_parts_dot_condit = - caml_call3 - (Runtime_ocaml_Runtime[28], _uC_, Runtime_ocaml_Runtime[12], _aRx_); - } - catch(_a0j_){ - var _aRu_ = caml_wrap_exception(_a0j_); - if(_aRu_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _uz_], 1); - throw caml_maybe_attach_backtrace(_aRu_, 0); - } - try{ - var - _aRz_ = function(param){return nombre_personnes_a_charge;}, - _aRA_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _uE_, 1); - }, - _aRB_ = caml_call4(Runtime_ocaml_Runtime[63], _uF_, [0], _aRA_, _aRz_), - calcul_nombre_parts_dot_nombre = - caml_call3 - (Runtime_ocaml_Runtime[28], _uG_, Runtime_ocaml_Runtime[14], _aRB_); - } - catch(_a0i_){ - var _aRy_ = caml_wrap_exception(_a0i_); - if(_aRy_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _uD_], 1); - throw caml_maybe_attach_backtrace(_aRy_, 0); - } - try{ - var - _aRD_ = function(param){return situation_familiale_calcul_apl;}, - _aRE_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _uI_, 1); - }, - _aRF_ = caml_call4(Runtime_ocaml_Runtime[63], _uJ_, [0], _aRE_, _aRD_), - calcul_nombre_parts_dot_situat = - caml_call3 - (Runtime_ocaml_Runtime[28], - _uK_, - embed_situation_familiale_calc, - _aRF_); - } - catch(_a0h_){ - var _aRC_ = caml_wrap_exception(_a0h_); - if(_aRC_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _uH_], 1); - throw caml_maybe_attach_backtrace(_aRC_, 0); - } - try{ - var - _aRH_ = function(param){return residence;}, - _aRI_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _uM_, 1); - }, - _aRJ_ = caml_call4(Runtime_ocaml_Runtime[63], _uN_, [0], _aRI_, _aRH_), - calcul_nombre_parts_dot_reside = - caml_call3(Runtime_ocaml_Runtime[28], _uO_, embed_collectivite, _aRJ_); - } - catch(_a0g_){ - var _aRG_ = caml_wrap_exception(_a0g_); - if(_aRG_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _uL_], 1); - throw caml_maybe_attach_backtrace(_aRG_, 0); - } - function calcul_nombre_parts_dot_limita(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - var - _aRK_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _uP_, calcul_nombre_part_logement_fo), - [0, - calcul_nombre_parts_dot_condit, - calcul_nombre_parts_dot_nombre, - calcul_nombre_parts_dot_situat, - calcul_nombre_parts_dot_reside, - calcul_nombre_parts_dot_limita]), - result = caml_call2(Runtime_ocaml_Runtime[27], _uQ_, _aRK_), - calcul_nombre_parts_dot_n_nomb = result[1]; - try{ - var - _aRM_ = function(param){return date_courante;}, - _aRN_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _uS_, 1); - }, - _aRO_ = caml_call4(Runtime_ocaml_Runtime[63], _uT_, [0], _aRN_, _aRM_), - contributions_sociales_dot_dat = - caml_call3 - (Runtime_ocaml_Runtime[28], _uU_, Runtime_ocaml_Runtime[16], _aRO_); - } - catch(_a0f_){ - var _aRL_ = caml_wrap_exception(_a0f_); - if(_aRL_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _uR_], 1); - throw caml_maybe_attach_backtrace(_aRL_, 0); - } - var - _aRP_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _uV_, contributions_sociales_aides_p), - [0, contributions_sociales_dot_dat]), - result$0 = caml_call2(Runtime_ocaml_Runtime[27], _uW_, _aRP_), - contributions_sociales_dot_mon = result$0[1]; - try{ - var - _aRR_ = function(param){return type_logement_foyer;}, - _aRS_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _uY_, 1); - }, - _aRT_ = caml_call4(Runtime_ocaml_Runtime[63], _uZ_, [0], _aRS_, _aRR_), - calcul_apl_logement_foyer_dot_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _u0_, embed_type_logement_foyer, _aRT_); - } - catch(_a0e_){ - var _aRQ_ = caml_wrap_exception(_a0e_); - if(_aRQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _uX_], 1); - throw caml_maybe_attach_backtrace(_aRQ_, 0); - } - try{ - var - _aRV_ = function(param){return date_conventionnement;}, - _aRW_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _u2_, 1); - }, - _aRX_ = caml_call4(Runtime_ocaml_Runtime[63], _u3_, [0], _aRW_, _aRV_), - calcul_apl_logement_foyer_dot_$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _u4_, Runtime_ocaml_Runtime[16], _aRX_); - } - catch(_a0d_){ - var _aRU_ = caml_wrap_exception(_a0d_); - if(_aRU_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _u1_], 1); - throw caml_maybe_attach_backtrace(_aRU_, 0); - } - try{ - var - _aRZ_ = function(param){return ressources_menage_arrondies;}, - _aR0_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _u6_, 1); - }, - _aR1_ = caml_call4(Runtime_ocaml_Runtime[63], _u7_, [0], _aR0_, _aRZ_), - calcul_apl_logement_foyer_dot_$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _u8_, Runtime_ocaml_Runtime[13], _aR1_); - } - catch(_a0c_){ - var _aRY_ = caml_wrap_exception(_a0c_); - if(_aRY_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _u5_], 1); - throw caml_maybe_attach_backtrace(_aRY_, 0); - } - try{ - var - _aR3_ = function(param){return nombre_personnes_a_charge;}, - _aR4_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _u__, 1); - }, - _aR5_ = caml_call4(Runtime_ocaml_Runtime[63], _u$_, [0], _aR4_, _aR3_), - calcul_apl_logement_foyer_dot_$2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _va_, Runtime_ocaml_Runtime[14], _aR5_); - } - catch(_a0b_){ - var _aR2_ = caml_wrap_exception(_a0b_); - if(_aR2_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _u9_], 1); - throw caml_maybe_attach_backtrace(_aR2_, 0); - } - try{ - var - _aR7_ = function(param){return situation_familiale_calcul_apl;}, - _aR8_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _vc_, 1); - }, - _aR9_ = caml_call4(Runtime_ocaml_Runtime[63], _vd_, [0], _aR8_, _aR7_), - calcul_apl_logement_foyer_dot_$3 = - caml_call3 - (Runtime_ocaml_Runtime[28], - _ve_, - embed_situation_familiale_calc, - _aR9_); - } - catch(_a0a_){ - var _aR6_ = caml_wrap_exception(_a0a_); - if(_aR6_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _vb_], 1); - throw caml_maybe_attach_backtrace(_aR6_, 0); - } - try{ - var - _aR$_ = function(param){return zone;}, - _aSa_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _vg_, 1); - }, - _aSb_ = caml_call4(Runtime_ocaml_Runtime[63], _vh_, [0], _aSa_, _aR$_), - calcul_apl_logement_foyer_dot_$4 = - caml_call3 - (Runtime_ocaml_Runtime[28], _vi_, embed_zone_d_habitation, _aSb_); - } - catch(_aZ$_){ - var _aR__ = caml_wrap_exception(_aZ$_); - if(_aR__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _vf_], 1); - throw caml_maybe_attach_backtrace(_aR__, 0); - } - try{ - var - _aSd_ = function(param){return date_courante;}, - _aSe_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _vk_, 1); - }, - _aSf_ = caml_call4(Runtime_ocaml_Runtime[63], _vl_, [0], _aSe_, _aSd_), - calcul_apl_logement_foyer_dot_$5 = - caml_call3 - (Runtime_ocaml_Runtime[28], _vm_, Runtime_ocaml_Runtime[16], _aSf_); - } - catch(_aZ__){ - var _aSc_ = caml_wrap_exception(_aZ__); - if(_aSc_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _vj_], 1); - throw caml_maybe_attach_backtrace(_aSc_, 0); - } - try{ - var - _aSh_ = function(param){return redevance;}, - _aSi_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _vo_, 1); - }, - _aSj_ = caml_call4(Runtime_ocaml_Runtime[63], _vp_, [0], _aSi_, _aSh_), - calcul_apl_logement_foyer_dot_$6 = - caml_call3 - (Runtime_ocaml_Runtime[28], _vq_, Runtime_ocaml_Runtime[13], _aSj_); - } - catch(_aZ9_){ - var _aSg_ = caml_wrap_exception(_aZ9_); - if(_aSg_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _vn_], 1); - throw caml_maybe_attach_backtrace(_aSg_, 0); - } - try{ - var - _aSl_ = function(param){return residence;}, - _aSm_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _vs_, 1); - }, - _aSn_ = caml_call4(Runtime_ocaml_Runtime[63], _vt_, [0], _aSm_, _aSl_), - calcul_apl_logement_foyer_dot_$7 = - caml_call3(Runtime_ocaml_Runtime[28], _vu_, embed_collectivite, _aSn_); - } - catch(_aZ8_){ - var _aSk_ = caml_wrap_exception(_aZ8_); - if(_aSk_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _vr_], 1); - throw caml_maybe_attach_backtrace(_aSk_, 0); - } - function calcul_apl_logement_foyer_dot_$8(param){ - function _aZ5_(param){return 1;} - function _aZ6_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _vv_, 1); - } - var - _aZ7_ = caml_call4(Runtime_ocaml_Runtime[63], _vw_, [0], _aZ6_, _aZ5_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _vx_, - Runtime_ocaml_Runtime[12], - _aZ7_); - } - function calcul_apl_logement_foyer_dot_$9(param){ - function _aZ1_(param){return 1;} - function _aZ2_(param){ - switch(residence[0]){ - case 0: - var _aZ4_ = 1; break; - case 1: - var _aZ4_ = 1; break; - case 2: - var _aZ4_ = 1; break; - case 3: - var _aZ4_ = 1; break; - case 4: - var _aZ4_ = 0; break; - case 5: - var _aZ4_ = 0; break; - case 6: - var _aZ4_ = 0; break; - case 7: - var _aZ4_ = 0; break; - default: var _aZ4_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _vy_, _aZ4_); - } - var - _aZ3_ = caml_call4(Runtime_ocaml_Runtime[63], _vz_, [0], _aZ2_, _aZ1_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _vA_, - Runtime_ocaml_Runtime[12], - _aZ3_); - } - function calcul_apl_logement_foyer_dot_$10(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - var - _aSo_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _vB_, calcul_aide_personnalisee_loge$0), - [0, - calcul_apl_logement_foyer_dot_, - calcul_apl_logement_foyer_dot_$0, - calcul_apl_logement_foyer_dot_$1, - calcul_apl_logement_foyer_dot_$2, - calcul_apl_logement_foyer_dot_$3, - calcul_apl_logement_foyer_dot_$4, - calcul_apl_logement_foyer_dot_$5, - calcul_apl_logement_foyer_dot_$6, - calcul_apl_logement_foyer_dot_$7, - calcul_apl_logement_foyer_dot_$8, - calcul_apl_logement_foyer_dot_$9, - calcul_apl_logement_foyer_dot_$10]), - result$1 = caml_call2(Runtime_ocaml_Runtime[27], _vC_, _aSo_), - calcul_apl_logement_foyer_dot_$11 = result$1[7]; - try{ - var - _aSq_ = - function(param){ - function _aZM_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _aZN_(param){return 0;} - var - _aZO_ = - [0, - function(param){ - function _aZP_(param){ - return caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); - } - function _aZQ_(param){ - var - _aZZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aZ0_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZZ_); - return caml_call2(Runtime_ocaml_Runtime[29], _vE_, _aZ0_); - } - var - _aZR_ = - [0, - function(param){ - function _aZS_(param){ - return caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); - } - function _aZT_(param){ - var - _aZU_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aZV_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZU_), - _aZW_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aZX_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZW_), - _aZY_ = caml_call2(Runtime_ocaml_Runtime[83], _aZX_, _aZV_); - return caml_call2(Runtime_ocaml_Runtime[29], _vF_, _aZY_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _vG_, [0], _aZT_, _aZS_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _vH_, _aZR_, _aZQ_, _aZP_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _vI_, _aZO_, _aZN_, _aZM_); - }, - _aSr_ = function(param){return 1;}, - _aSs_ = - [0, - function(param){ - function _aYJ_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _aYK_(param){return 0;} - var - _aYL_ = - [0, - function(param){ - function _aYM_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_6$47); - } - function _aYN_(param){ - var - _aZC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$48), - _aZD_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _aZC_); - switch(residence[0]){ - case 0: - var _aZE_ = 1; break; - case 1: - var _aZE_ = 0; break; - case 2: - var _aZE_ = 1; break; - case 3: - var _aZE_ = 1; break; - case 4: - var _aZE_ = 1; break; - case 5: - var _aZE_ = 1; break; - case 6: - var _aZE_ = 0; break; - case 7: - var _aZE_ = 0; break; - default: var _aZE_ = 1; - } - var - _aZF_ = caml_call2(Runtime_ocaml_Runtime[83], _aZE_, _aZD_), - _aZG_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _aZH_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZG_), - _aZI_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aZJ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZI_), - _aZK_ = caml_call2(Runtime_ocaml_Runtime[83], _aZJ_, _aZH_), - _aZL_ = caml_call2(Runtime_ocaml_Runtime[83], _aZK_, _aZF_); - return caml_call2(Runtime_ocaml_Runtime[29], _vJ_, _aZL_); - } - var - _aYO_ = - [0, - function(param){ - function _aYP_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_6$49); - } - function _aYQ_(param){ - var - _aZs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$50), - _aZt_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _aZs_); - switch(residence[0]){ - case 0: - var _aZu_ = 1; break; - case 1: - var _aZu_ = 0; break; - case 2: - var _aZu_ = 1; break; - case 3: - var _aZu_ = 1; break; - case 4: - var _aZu_ = 1; break; - case 5: - var _aZu_ = 1; break; - case 6: - var _aZu_ = 0; break; - case 7: - var _aZu_ = 0; break; - default: var _aZu_ = 1; - } - var - _aZv_ = caml_call2(Runtime_ocaml_Runtime[83], _aZu_, _aZt_), - _aZw_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aZx_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZw_), - _aZy_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _aZz_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZy_), - _aZA_ = caml_call2(Runtime_ocaml_Runtime[83], _aZz_, _aZx_), - _aZB_ = caml_call2(Runtime_ocaml_Runtime[83], _aZA_, _aZv_); - return caml_call2(Runtime_ocaml_Runtime[29], _vK_, _aZB_); - } - var - _aYR_ = - [0, - function(param){ - function _aYS_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_6$51); - } - function _aYT_(param){ - var - _aZi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$52), - _aZj_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _aZi_); - switch(residence[0]){ - case 0: - var _aZk_ = 1; break; - case 1: - var _aZk_ = 0; break; - case 2: - var _aZk_ = 1; break; - case 3: - var _aZk_ = 1; break; - case 4: - var _aZk_ = 1; break; - case 5: - var _aZk_ = 1; break; - case 6: - var _aZk_ = 0; break; - case 7: - var _aZk_ = 0; break; - default: var _aZk_ = 1; - } - var - _aZl_ = caml_call2(Runtime_ocaml_Runtime[83], _aZk_, _aZj_), - _aZm_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _aZn_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZm_), - _aZo_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aZp_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZo_), - _aZq_ = caml_call2(Runtime_ocaml_Runtime[83], _aZp_, _aZn_), - _aZr_ = caml_call2(Runtime_ocaml_Runtime[83], _aZq_, _aZl_); - return caml_call2(Runtime_ocaml_Runtime[29], _vL_, _aZr_); - } - var - _aYU_ = - [0, - function(param){ - function _aYV_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_6$53); - } - function _aYW_(param){ - var - _aY__ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$54), - _aY$_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _aY__); - switch(residence[0]){ - case 0: - var _aZa_ = 1; break; - case 1: - var _aZa_ = 0; break; - case 2: - var _aZa_ = 1; break; - case 3: - var _aZa_ = 1; break; - case 4: - var _aZa_ = 1; break; - case 5: - var _aZa_ = 1; break; - case 6: - var _aZa_ = 0; break; - case 7: - var _aZa_ = 0; break; - default: var _aZa_ = 1; - } - var - _aZb_ = caml_call2(Runtime_ocaml_Runtime[83], _aZa_, _aY$_), - _aZc_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aZd_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZc_), - _aZe_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aZf_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZe_), - _aZg_ = caml_call2(Runtime_ocaml_Runtime[83], _aZf_, _aZd_), - _aZh_ = caml_call2(Runtime_ocaml_Runtime[83], _aZg_, _aZb_); - return caml_call2(Runtime_ocaml_Runtime[29], _vM_, _aZh_); - } - var - _aYX_ = - [0, - function(param){ - function _aYY_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_6$55); - } - function _aYZ_(param){ - var - _aY0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$56), - _aY1_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _aY0_); - switch(residence[0]){ - case 0: - var _aY2_ = 1; break; - case 1: - var _aY2_ = 0; break; - case 2: - var _aY2_ = 1; break; - case 3: - var _aY2_ = 1; break; - case 4: - var _aY2_ = 1; break; - case 5: - var _aY2_ = 1; break; - case 6: - var _aY2_ = 0; break; - case 7: - var _aY2_ = 0; break; - default: var _aY2_ = 1; - } - var - _aY3_ = caml_call2(Runtime_ocaml_Runtime[83], _aY2_, _aY1_), - _aY4_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aY5_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aY4_), - _aY6_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aY7_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aY6_), - _aY8_ = caml_call2(Runtime_ocaml_Runtime[83], _aY7_, _aY5_), - _aY9_ = caml_call2(Runtime_ocaml_Runtime[83], _aY8_, _aY3_); - return caml_call2(Runtime_ocaml_Runtime[29], _vN_, _aY9_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _vO_, [0], _aYZ_, _aYY_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _vP_, _aYX_, _aYW_, _aYV_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _vQ_, _aYU_, _aYT_, _aYS_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _vR_, _aYR_, _aYQ_, _aYP_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _vS_, _aYO_, _aYN_, _aYM_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _vT_, _aYL_, _aYK_, _aYJ_); - }], - _aSt_ = caml_call4(Runtime_ocaml_Runtime[63], _vU_, _aSs_, _aSr_, _aSq_); - } - catch(_aYI_){ - var _aSp_ = caml_wrap_exception(_aYI_); - if(_aSp_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _vD_], 1); - throw caml_maybe_attach_backtrace(_aSp_, 0); - } - var - multiplicateur_majoration_char = - caml_call3 - (Runtime_ocaml_Runtime[28], _vV_, Runtime_ocaml_Runtime[15], _aSt_); - try{ - var - _aSv_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1500$0); - }, - _aSw_ = - function(param){ - var - _aYG_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aYH_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYG_); - return caml_call2(Runtime_ocaml_Runtime[29], _vX_, _aYH_); - }, - _aSx_ = caml_call4(Runtime_ocaml_Runtime[63], _vY_, [0], _aSw_, _aSv_); - } - catch(_aYF_){ - var _aSu_ = caml_wrap_exception(_aYF_); - if(_aSu_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _vW_], 1); - throw caml_maybe_attach_backtrace(_aSu_, 0); - } - var - montant_minimal_depense_nette_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _vZ_, Runtime_ocaml_Runtime[13], _aSx_); - try{ - var - _aSz_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_500$2); - }, - _aSA_ = - function(param){ - var - _aYD_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aYE_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYD_); - return caml_call2(Runtime_ocaml_Runtime[29], _v1_, _aYE_); - }, - _aSB_ = caml_call4(Runtime_ocaml_Runtime[63], _v2_, [0], _aSA_, _aSz_); - } - catch(_aYC_){ - var _aSy_ = caml_wrap_exception(_aYC_); - if(_aSy_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _v0_], 1); - throw caml_maybe_attach_backtrace(_aSy_, 0); - } - var - montant_forfaitaire_d842_15 = - caml_call3 - (Runtime_ocaml_Runtime[28], _v3_, Runtime_ocaml_Runtime[13], _aSB_); - try{ - var - _aSD_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$3); - }, - _aSE_ = - function(param){ - var - _aYA_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aYB_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYA_); - return caml_call2(Runtime_ocaml_Runtime[29], _v5_, _aYB_); - }, - _aSF_ = caml_call4(Runtime_ocaml_Runtime[63], _v6_, [0], _aSE_, _aSD_); - } - catch(_aYz_){ - var _aSC_ = caml_wrap_exception(_aYz_); - if(_aSC_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _v4_], 1); - throw caml_maybe_attach_backtrace(_aSC_, 0); - } - var - montant_minimal_aide_d842_15 = - caml_call3 - (Runtime_ocaml_Runtime[28], _v7_, Runtime_ocaml_Runtime[13], _aSF_); - try{ - var - _aSH_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _aSI_ = function(param){return 0;}, - _aSJ_ = - function(param){ - function _aYg_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_16941) - : caml_call1(Runtime_ocaml_Runtime[31], cst_26329); - } - function _aYh_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aYs_ = 0; break; - case 1: - var _aYs_ = 1; break; - case 2: - var _aYs_ = 0; break; - default: var _aYs_ = 0; - } - var - _aYt_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aYu_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYt_), - _aYv_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aYw_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYv_), - _aYx_ = caml_call2(Runtime_ocaml_Runtime[83], _aYw_, _aYu_), - _aYy_ = caml_call2(Runtime_ocaml_Runtime[83], _aYx_, _aYs_); - return caml_call2(Runtime_ocaml_Runtime[29], _v9_, _aYy_); - } - var - _aYi_ = - [0, - function(param){ - function _aYj_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_16941$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_26329$0); - } - function _aYk_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aYl_ = 0; break; - case 1: - var _aYl_ = 0; break; - case 2: - var _aYl_ = 0; break; - default: var _aYl_ = 1; - } - var - _aYm_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aYn_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYm_), - _aYo_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aYp_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYo_), - _aYq_ = caml_call2(Runtime_ocaml_Runtime[83], _aYp_, _aYn_), - _aYr_ = caml_call2(Runtime_ocaml_Runtime[83], _aYq_, _aYl_); - return caml_call2(Runtime_ocaml_Runtime[29], _v__, _aYr_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _v$_, [0], _aYk_, _aYj_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _wa_, _aYi_, _aYh_, _aYg_); - }, - _aSK_ = - function(param){ - function _aX9_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_20554) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31939); - } - function _aX__(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aX$_ = 0; break; - case 1: - var _aX$_ = 0; break; - case 2: - var _aX$_ = 1; break; - default: var _aX$_ = 0; - } - var - _aYa_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aYb_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYa_), - _aYc_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aYd_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYc_), - _aYe_ = caml_call2(Runtime_ocaml_Runtime[83], _aYd_, _aYb_), - _aYf_ = caml_call2(Runtime_ocaml_Runtime[83], _aYe_, _aX$_); - return caml_call2(Runtime_ocaml_Runtime[29], _wb_, _aYf_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _wc_, [0], _aX__, _aX9_); - }, - _aSL_ = - function(param){ - function _aX0_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_8379) - : caml_call1(Runtime_ocaml_Runtime[31], cst_13045); - } - function _aX1_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aX2_ = 1; break; - case 1: - var _aX2_ = 0; break; - case 2: - var _aX2_ = 0; break; - default: var _aX2_ = 0; - } - var - _aX3_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aX4_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aX3_), - _aX5_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aX6_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aX5_), - _aX7_ = caml_call2(Runtime_ocaml_Runtime[83], _aX6_, _aX4_), - _aX8_ = caml_call2(Runtime_ocaml_Runtime[83], _aX7_, _aX2_); - return caml_call2(Runtime_ocaml_Runtime[29], _wd_, _aX8_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _we_, [0], _aX1_, _aX0_); - }, - _aSM_ = - function(param){ - function _aXH_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_17012) - : caml_call1(Runtime_ocaml_Runtime[31], cst_26440); - } - function _aXI_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aXT_ = 0; break; - case 1: - var _aXT_ = 1; break; - case 2: - var _aXT_ = 0; break; - default: var _aXT_ = 0; - } - var - _aXU_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aXV_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXU_), - _aXW_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aXX_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXW_), - _aXY_ = caml_call2(Runtime_ocaml_Runtime[83], _aXX_, _aXV_), - _aXZ_ = caml_call2(Runtime_ocaml_Runtime[83], _aXY_, _aXT_); - return caml_call2(Runtime_ocaml_Runtime[29], _wf_, _aXZ_); - } - var - _aXJ_ = - [0, - function(param){ - function _aXK_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_17012$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_26440$0); - } - function _aXL_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aXM_ = 0; break; - case 1: - var _aXM_ = 0; break; - case 2: - var _aXM_ = 0; break; - default: var _aXM_ = 1; - } - var - _aXN_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aXO_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXN_), - _aXP_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aXQ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXP_), - _aXR_ = caml_call2(Runtime_ocaml_Runtime[83], _aXQ_, _aXO_), - _aXS_ = caml_call2(Runtime_ocaml_Runtime[83], _aXR_, _aXM_); - return caml_call2(Runtime_ocaml_Runtime[29], _wg_, _aXS_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _wh_, [0], _aXL_, _aXK_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _wi_, _aXJ_, _aXI_, _aXH_); - }, - _aSN_ = - function(param){ - function _aXy_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_20640) - : caml_call1(Runtime_ocaml_Runtime[31], cst_32073); - } - function _aXz_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aXA_ = 0; break; - case 1: - var _aXA_ = 0; break; - case 2: - var _aXA_ = 1; break; - default: var _aXA_ = 0; - } - var - _aXB_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aXC_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXB_), - _aXD_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aXE_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXD_), - _aXF_ = caml_call2(Runtime_ocaml_Runtime[83], _aXE_, _aXC_), - _aXG_ = caml_call2(Runtime_ocaml_Runtime[83], _aXF_, _aXA_); - return caml_call2(Runtime_ocaml_Runtime[29], _wj_, _aXG_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _wk_, [0], _aXz_, _aXy_); - }, - _aSO_ = - function(param){ - function _aXp_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_8414) - : caml_call1(Runtime_ocaml_Runtime[31], cst_13100); - } - function _aXq_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aXr_ = 1; break; - case 1: - var _aXr_ = 0; break; - case 2: - var _aXr_ = 0; break; - default: var _aXr_ = 0; - } - var - _aXs_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aXt_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXs_), - _aXu_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aXv_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXu_), - _aXw_ = caml_call2(Runtime_ocaml_Runtime[83], _aXv_, _aXt_), - _aXx_ = caml_call2(Runtime_ocaml_Runtime[83], _aXw_, _aXr_); - return caml_call2(Runtime_ocaml_Runtime[29], _wl_, _aXx_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _wm_, [0], _aXq_, _aXp_); - }, - _aSP_ = - function(param){ - function _aXc_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_17607) - : caml_call1(Runtime_ocaml_Runtime[31], cst_27365); - } - function _aXd_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aXl_ = 0; break; - case 1: - var _aXl_ = 1; break; - case 2: - var _aXl_ = 0; break; - default: var _aXl_ = 0; - } - var - _aXm_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aXn_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXm_), - _aXo_ = caml_call2(Runtime_ocaml_Runtime[83], _aXn_, _aXl_); - return caml_call2(Runtime_ocaml_Runtime[29], _wn_, _aXo_); - } - var - _aXe_ = - [0, - function(param){ - function _aXf_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_17607$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_27365$0); - } - function _aXg_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aXh_ = 0; break; - case 1: - var _aXh_ = 0; break; - case 2: - var _aXh_ = 0; break; - default: var _aXh_ = 1; - } - var - _aXi_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aXj_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXi_), - _aXk_ = caml_call2(Runtime_ocaml_Runtime[83], _aXj_, _aXh_); - return caml_call2(Runtime_ocaml_Runtime[29], _wo_, _aXk_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _wp_, [0], _aXg_, _aXf_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _wq_, _aXe_, _aXd_, _aXc_); - }, - _aSQ_ = - function(param){ - function _aW8_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_21362) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33196); - } - function _aW9_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aW__ = 0; break; - case 1: - var _aW__ = 0; break; - case 2: - var _aW__ = 1; break; - default: var _aW__ = 0; - } - var - _aW$_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aXa_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aW$_), - _aXb_ = caml_call2(Runtime_ocaml_Runtime[83], _aXa_, _aW__); - return caml_call2(Runtime_ocaml_Runtime[29], _wr_, _aXb_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _ws_, [0], _aW9_, _aW8_); - }, - _aSR_ = - [0, - function(param){ - function _aW2_(param){ - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_8708) - : caml_call1(Runtime_ocaml_Runtime[31], cst_13559); - } - function _aW3_(param){ - switch(categorie_equivalence_loyer_d8[0]){ - case 0: - var _aW4_ = 1; break; - case 1: - var _aW4_ = 0; break; - case 2: - var _aW4_ = 0; break; - default: var _aW4_ = 0; - } - var - _aW5_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aW6_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aW5_), - _aW7_ = caml_call2(Runtime_ocaml_Runtime[83], _aW6_, _aW4_); - return caml_call2(Runtime_ocaml_Runtime[29], _wt_, _aW7_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _wu_, [0], _aW3_, _aW2_); - }, - _aSQ_, - _aSP_, - _aSO_, - _aSN_, - _aSM_, - _aSL_, - _aSK_, - _aSJ_], - _aSS_ = caml_call4(Runtime_ocaml_Runtime[63], _wv_, _aSR_, _aSI_, _aSH_); - } - catch(_aW1_){ - var _aSG_ = caml_wrap_exception(_aW1_); - if(_aSG_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _v8_], 1); - throw caml_maybe_attach_backtrace(_aSG_, 0); - } - var - equivalence_loyer = - caml_call3 - (Runtime_ocaml_Runtime[28], _ww_, Runtime_ocaml_Runtime[13], _aSS_); - try{ - var - _aSU_ = function(param){return date_courante;}, - _aSV_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _wy_, 1); - }, - _aSW_ = caml_call4(Runtime_ocaml_Runtime[63], _wz_, [0], _aSV_, _aSU_), - calcul_equivalence_loyer_minim$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _wA_, Runtime_ocaml_Runtime[16], _aSW_); - } - catch(_aW0_){ - var _aST_ = caml_wrap_exception(_aW0_); - if(_aST_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _wx_], 1); - throw caml_maybe_attach_backtrace(_aST_, 0); - } - try{ - var - _aSY_ = function(param){return ressources_menage_arrondies;}, - _aSZ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _wC_, 1); - }, - _aS0_ = caml_call4(Runtime_ocaml_Runtime[63], _wD_, [0], _aSZ_, _aSY_), - calcul_equivalence_loyer_minim$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _wE_, Runtime_ocaml_Runtime[13], _aS0_); - } - catch(_aWZ_){ - var _aSX_ = caml_wrap_exception(_aWZ_); - if(_aSX_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _wB_], 1); - throw caml_maybe_attach_backtrace(_aSX_, 0); - } - try{ - var - _aS2_ = function(param){return 1;}, - _aS3_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _wG_, 1); - }, - _aS4_ = caml_call4(Runtime_ocaml_Runtime[63], _wH_, [0], _aS3_, _aS2_), - calcul_equivalence_loyer_minim$2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _wI_, Runtime_ocaml_Runtime[12], _aS4_); - } - catch(_aWY_){ - var _aS1_ = caml_wrap_exception(_aWY_); - if(_aS1_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _wF_], 1); - throw caml_maybe_attach_backtrace(_aS1_, 0); - } - try{ - var - _aS6_ = function(param){return calcul_nombre_parts_dot_n_nomb;}, - _aS7_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _wK_, 1); - }, - _aS8_ = caml_call4(Runtime_ocaml_Runtime[63], _wL_, [0], _aS7_, _aS6_), - calcul_equivalence_loyer_minim$3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _wM_, Runtime_ocaml_Runtime[15], _aS8_); - } - catch(_aWX_){ - var _aS5_ = caml_wrap_exception(_aWX_); - if(_aS5_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _wJ_], 1); - throw caml_maybe_attach_backtrace(_aS5_, 0); - } - var - _aS9_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _wN_, calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$2 = caml_call2(Runtime_ocaml_Runtime[27], _wO_, _aS9_), - calcul_equivalence_loyer_minim$4 = result$2[1]; - try{ - var - _aS$_ = function(param){return calcul_apl_logement_foyer_dot_$11;}, - _aTa_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _wQ_, 1); - }, - _aTb_ = caml_call4(Runtime_ocaml_Runtime[63], _wR_, [0], _aTa_, _aS$_); - } - catch(_aWW_){ - var _aS__ = caml_wrap_exception(_aWW_); - if(_aS__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _wP_], 1); - throw caml_maybe_attach_backtrace(_aS__, 0); - } - var - coefficient_prise_en_charge = - caml_call3 - (Runtime_ocaml_Runtime[28], _wS_, Runtime_ocaml_Runtime[15], _aTb_); - try{ - var - _aTd_ = - function(param){ - function _aWm_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _aWn_(param){return 0;} - function _aWo_(param){ - function _aWK_(param){ - var _aWR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$247); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aWR_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_5399$3); - var - _aWS_ = - caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _aWT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$3), - _aWU_ = caml_call2(Runtime_ocaml_Runtime[104], _aWT_, _aWS_), - _aWV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399$4); - return caml_call2(Runtime_ocaml_Runtime[93], _aWV_, _aWU_); - } - function _aWL_(param){ - var - _aWM_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aWN_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aWM_), - _aWO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aWP_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWO_), - _aWQ_ = caml_call2(Runtime_ocaml_Runtime[83], _aWP_, _aWN_); - return caml_call2(Runtime_ocaml_Runtime[29], _wU_, _aWQ_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _wV_, [0], _aWL_, _aWK_); - } - function _aWp_(param){ - function _aWz_(param){ - var _aWG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$248); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aWG_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_5422$3); - var - _aWH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$3), - _aWI_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _aWH_, - multiplicateur_majoration_char), - _aWJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422$4); - return caml_call2(Runtime_ocaml_Runtime[93], _aWJ_, _aWI_); - } - function _aWA_(param){ - var - _aWB_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aWC_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aWB_), - _aWD_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aWE_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWD_), - _aWF_ = caml_call2(Runtime_ocaml_Runtime[83], _aWE_, _aWC_); - return caml_call2(Runtime_ocaml_Runtime[29], _wW_, _aWF_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _wX_, [0], _aWA_, _aWz_); - } - var - _aWq_ = - [0, - function(param){ - function _aWr_(param){ - var _aWv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$249); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aWv_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_5612$3); - var - _aWw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$3), - _aWx_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _aWw_, - multiplicateur_majoration_char), - _aWy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612$4); - return caml_call2(Runtime_ocaml_Runtime[93], _aWy_, _aWx_); - } - function _aWs_(param){ - var - _aWt_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aWu_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWt_); - return caml_call2(Runtime_ocaml_Runtime[29], _wY_, _aWu_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _wZ_, [0], _aWs_, _aWr_); - }, - _aWp_, - _aWo_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _w0_, _aWq_, _aWn_, _aWm_); - }, - _aTe_ = function(param){return 1;}, - _aTf_ = - [0, - function(param){ - function _aUM_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _aUN_(param){return 0;} - function _aUO_(param){ - function _aV7_(param){ - var - _aWe_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _aWf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$3), - _aWg_ = caml_call2(Runtime_ocaml_Runtime[104], _aWf_, _aWe_), - _aWh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$3), - montant = caml_call2(Runtime_ocaml_Runtime[93], _aWh_, _aWg_), - _aWi_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$57), - _aWj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$4), - _aWk_ = caml_call2(Runtime_ocaml_Runtime[104], _aWj_, _aWi_), - _aWl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$4), - limite = caml_call2(Runtime_ocaml_Runtime[93], _aWl_, _aWk_); - return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _aV8_(param){ - switch(residence[0]){ - case 0: - var _aV9_ = 1; break; - case 1: - var _aV9_ = 0; break; - case 2: - var _aV9_ = 1; break; - case 3: - var _aV9_ = 1; break; - case 4: - var _aV9_ = 1; break; - case 5: - var _aV9_ = 1; break; - case 6: - var _aV9_ = 0; break; - case 7: - var _aV9_ = 0; break; - default: var _aV9_ = 1; - } - var - _aV__ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aV$_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aV__), - _aWa_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aWb_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWa_), - _aWc_ = caml_call2(Runtime_ocaml_Runtime[83], _aWb_, _aV$_), - _aWd_ = caml_call2(Runtime_ocaml_Runtime[83], _aWc_, _aV9_); - return caml_call2(Runtime_ocaml_Runtime[29], _w1_, _aWd_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _w2_, [0], _aV8_, _aV7_); - } - function _aUP_(param){ - function _aVQ_(param){ - var - _aVZ_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _aV0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$3), - _aV1_ = caml_call2(Runtime_ocaml_Runtime[104], _aV0_, _aVZ_), - _aV2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$3), - montant = caml_call2(Runtime_ocaml_Runtime[93], _aV2_, _aV1_), - _aV3_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$58), - _aV4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$4), - _aV5_ = caml_call2(Runtime_ocaml_Runtime[104], _aV4_, _aV3_), - _aV6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$4), - limite = caml_call2(Runtime_ocaml_Runtime[93], _aV6_, _aV5_); - return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _aVR_(param){ - switch(residence[0]){ - case 0: - var _aVS_ = 1; break; - case 1: - var _aVS_ = 0; break; - case 2: - var _aVS_ = 1; break; - case 3: - var _aVS_ = 1; break; - case 4: - var _aVS_ = 1; break; - case 5: - var _aVS_ = 1; break; - case 6: - var _aVS_ = 0; break; - case 7: - var _aVS_ = 0; break; - default: var _aVS_ = 1; - } - var - _aVT_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aVU_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aVT_), - _aVV_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aVW_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aVV_), - _aVX_ = caml_call2(Runtime_ocaml_Runtime[83], _aVW_, _aVU_), - _aVY_ = caml_call2(Runtime_ocaml_Runtime[83], _aVX_, _aVS_); - return caml_call2(Runtime_ocaml_Runtime[29], _w3_, _aVY_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _w4_, [0], _aVR_, _aVQ_); - } - function _aUQ_(param){ - function _aVh_(param){ - var - _aVI_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _aVJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$7), - _aVK_ = caml_call2(Runtime_ocaml_Runtime[104], _aVJ_, _aVI_), - _aVL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$7), - montant = caml_call2(Runtime_ocaml_Runtime[93], _aVL_, _aVK_), - _aVM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$59), - _aVN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$8), - _aVO_ = caml_call2(Runtime_ocaml_Runtime[104], _aVN_, _aVM_), - _aVP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$8), - limite = caml_call2(Runtime_ocaml_Runtime[93], _aVP_, _aVO_); - return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _aVi_(param){ - switch(residence[0]){ - case 0: - var _aVB_ = 1; break; - case 1: - var _aVB_ = 0; break; - case 2: - var _aVB_ = 1; break; - case 3: - var _aVB_ = 1; break; - case 4: - var _aVB_ = 1; break; - case 5: - var _aVB_ = 1; break; - case 6: - var _aVB_ = 0; break; - case 7: - var _aVB_ = 0; break; - default: var _aVB_ = 1; - } - var - _aVC_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aVD_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aVC_), - _aVE_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _aVF_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aVE_), - _aVG_ = caml_call2(Runtime_ocaml_Runtime[83], _aVF_, _aVD_), - _aVH_ = caml_call2(Runtime_ocaml_Runtime[83], _aVG_, _aVB_); - return caml_call2(Runtime_ocaml_Runtime[29], _w5_, _aVH_); - } - var - _aVj_ = - [0, - function(param){ - function _aVk_(param){ - var - _aVt_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _aVu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$9), - _aVv_ = caml_call2(Runtime_ocaml_Runtime[104], _aVu_, _aVt_), - _aVw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$9), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _aVw_, _aVv_), - _aVx_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$60), - _aVy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$10), - _aVz_ = caml_call2(Runtime_ocaml_Runtime[104], _aVy_, _aVx_), - _aVA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$10), - limite = caml_call2(Runtime_ocaml_Runtime[93], _aVA_, _aVz_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _aVl_(param){ - switch(residence[0]){ - case 0: - var _aVm_ = 1; break; - case 1: - var _aVm_ = 0; break; - case 2: - var _aVm_ = 1; break; - case 3: - var _aVm_ = 1; break; - case 4: - var _aVm_ = 1; break; - case 5: - var _aVm_ = 1; break; - case 6: - var _aVm_ = 0; break; - case 7: - var _aVm_ = 0; break; - default: var _aVm_ = 1; - } - var - _aVn_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _aVo_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aVn_), - _aVp_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aVq_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aVp_), - _aVr_ = caml_call2(Runtime_ocaml_Runtime[83], _aVq_, _aVo_), - _aVs_ = caml_call2(Runtime_ocaml_Runtime[83], _aVr_, _aVm_); - return caml_call2(Runtime_ocaml_Runtime[29], _w6_, _aVs_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _w7_, [0], _aVl_, _aVk_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _w8_, _aVj_, _aVi_, _aVh_); - } - function _aUR_(param){ - function _aU2_(param){ - var - _aU$_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _aVa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$5), - _aVb_ = caml_call2(Runtime_ocaml_Runtime[104], _aVa_, _aU$_), - _aVc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$5), - montant = caml_call2(Runtime_ocaml_Runtime[93], _aVc_, _aVb_), - _aVd_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$61), - _aVe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$6), - _aVf_ = caml_call2(Runtime_ocaml_Runtime[104], _aVe_, _aVd_), - _aVg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$6), - limite = caml_call2(Runtime_ocaml_Runtime[93], _aVg_, _aVf_); - return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _aU3_(param){ - switch(residence[0]){ - case 0: - var _aU4_ = 1; break; - case 1: - var _aU4_ = 0; break; - case 2: - var _aU4_ = 1; break; - case 3: - var _aU4_ = 1; break; - case 4: - var _aU4_ = 1; break; - case 5: - var _aU4_ = 1; break; - case 6: - var _aU4_ = 0; break; - case 7: - var _aU4_ = 0; break; - default: var _aU4_ = 1; - } - var - _aU5_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _aU6_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aU5_), - _aU7_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aU8_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aU7_), - _aU9_ = caml_call2(Runtime_ocaml_Runtime[83], _aU8_, _aU6_), - _aU__ = caml_call2(Runtime_ocaml_Runtime[83], _aU9_, _aU4_); - return caml_call2(Runtime_ocaml_Runtime[29], _w9_, _aU__); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _w__, [0], _aU3_, _aU2_); - } - var - _aUS_ = - [0, - function(param){ - function _aUT_(param){ - var - _aUZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$7), - _aU0_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _aUZ_, - multiplicateur_majoration_char), - _aU1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$7); - return caml_call2(Runtime_ocaml_Runtime[93], _aU1_, _aU0_); - } - function _aUU_(param){ - switch(residence[0]){ - case 0: - var _aUV_ = 1; break; - case 1: - var _aUV_ = 0; break; - case 2: - var _aUV_ = 1; break; - case 3: - var _aUV_ = 1; break; - case 4: - var _aUV_ = 1; break; - case 5: - var _aUV_ = 1; break; - case 6: - var _aUV_ = 0; break; - case 7: - var _aUV_ = 0; break; - default: var _aUV_ = 1; - } - var - _aUW_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _aUX_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aUW_), - _aUY_ = caml_call2(Runtime_ocaml_Runtime[83], _aUX_, _aUV_); - return caml_call2(Runtime_ocaml_Runtime[29], _w$_, _aUY_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _xa_, [0], _aUU_, _aUT_); - }, - _aUR_, - _aUQ_, - _aUP_, - _aUO_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _xb_, _aUS_, _aUN_, _aUM_); - }], - _aTg_ = caml_call4(Runtime_ocaml_Runtime[63], _xc_, _aTf_, _aTe_, _aTd_); - } - catch(_aUL_){ - var _aTc_ = caml_wrap_exception(_aUL_); - if(_aTc_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _wT_], 1); - throw caml_maybe_attach_backtrace(_aTc_, 0); - } - var - montant_forfaitaire_charges = - caml_call3 - (Runtime_ocaml_Runtime[28], _xd_, Runtime_ocaml_Runtime[13], _aTg_); - function _aTh_(aide_finale){ - try{ - var - _aUF_ = - function(param){ - var - _aUJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$250), - _aUK_ = - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_15); - return caml_call2(Runtime_ocaml_Runtime[113], _aUK_, _aUJ_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$251) - : caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_15); - }, - _aUG_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _xf_, 1); - }, - _aUH_ = caml_call4(Runtime_ocaml_Runtime[63], _xg_, [0], _aUG_, _aUF_); - return _aUH_; - } - catch(_aUI_){ - var _aUE_ = caml_wrap_exception(_aUI_); - if(_aUE_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _xe_], 1); - throw caml_maybe_attach_backtrace(_aUE_, 0); - } - } - var - traitement_aide_finale_minorat = - caml_call3 - (Runtime_ocaml_Runtime[28], _xh_, Runtime_ocaml_Runtime[10], _aTh_); - try{ - var - _aTj_ = function(param){return calcul_equivalence_loyer_minim$4;}, - _aTk_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _xj_, 1); - }, - _aTl_ = caml_call4(Runtime_ocaml_Runtime[63], _xk_, [0], _aTk_, _aTj_); - } - catch(_aUD_){ - var _aTi_ = caml_wrap_exception(_aUD_); - if(_aTi_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _xi_], 1); - throw caml_maybe_attach_backtrace(_aTi_, 0); - } - var - loyer_minimal = - caml_call3 - (Runtime_ocaml_Runtime[28], _xl_, Runtime_ocaml_Runtime[13], _aTl_); - function _aTm_(allocation_mensuelle){ - try{ - var - _aUy_ = - function(param){ - var - _aUC_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - equivalence_loyer, - montant_forfaitaire_charges); - return caml_call2 - (Runtime_ocaml_Runtime[98], _aUC_, allocation_mensuelle); - }, - _aUz_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _xn_, 1); - }, - _aUA_ = caml_call4(Runtime_ocaml_Runtime[63], _xo_, [0], _aUz_, _aUy_); - return _aUA_; - } - catch(_aUB_){ - var _aUx_ = caml_wrap_exception(_aUB_); - if(_aUx_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _xm_], 1); - throw caml_maybe_attach_backtrace(_aUx_, 0); - } - } - var - depense_nette_minimale = - caml_call3 - (Runtime_ocaml_Runtime[28], _xp_, Runtime_ocaml_Runtime[10], _aTm_); - try{ - var - _aTo_ = - function(param){ - var - _aUv_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - equivalence_loyer, - montant_forfaitaire_charges), - _aUw_ = caml_call2(Runtime_ocaml_Runtime[98], _aUv_, loyer_minimal); - return caml_call2 - (Runtime_ocaml_Runtime[104], - _aUw_, - coefficient_prise_en_charge); - }, - _aTp_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _xr_, 1); - }, - _aTq_ = caml_call4(Runtime_ocaml_Runtime[63], _xs_, [0], _aTp_, _aTo_); - } - catch(_aUu_){ - var _aTn_ = caml_wrap_exception(_aUu_); - if(_aTn_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _xq_], 1); - throw caml_maybe_attach_backtrace(_aTn_, 0); - } - var - aide_finale_formule = - caml_call3 - (Runtime_ocaml_Runtime[28], _xt_, Runtime_ocaml_Runtime[13], _aTq_); - function _aTr_(allocation_mensuelle){ - try{ - var - _aUi_ = - function(param){ - var - _aUm_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _xv_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _aUn_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _xw_, depense_nette_minimale), - _aUm_), - _aUo_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _xx_, - Runtime_ocaml_Runtime[13], - _aUn_), - _aUp_ = caml_call2(Runtime_ocaml_Runtime[27], _xy_, _aUo_); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[113], - _aUp_, - montant_minimal_depense_nette_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$252); - var - _aUq_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _xz_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _aUr_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _xA_, depense_nette_minimale), - _aUq_), - _aUs_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _xB_, - Runtime_ocaml_Runtime[13], - _aUr_), - _aUt_ = caml_call2(Runtime_ocaml_Runtime[27], _xC_, _aUs_); - return caml_call2 - (Runtime_ocaml_Runtime[98], - montant_minimal_depense_nette_, - _aUt_); - }, - _aUj_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _xD_, 1); - }, - _aUk_ = caml_call4(Runtime_ocaml_Runtime[63], _xE_, [0], _aUj_, _aUi_); - return _aUk_; - } - catch(_aUl_){ - var _aUh_ = caml_wrap_exception(_aUl_); - if(_aUh_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _xu_], 1); - throw caml_maybe_attach_backtrace(_aUh_, 0); - } - } - var - abattement_depense_nette_minim = - caml_call3 - (Runtime_ocaml_Runtime[28], _xF_, Runtime_ocaml_Runtime[10], _aTr_); - function _aTs_(aide_finale){ - try{ - var - _aT7_ = - function(param){ - var - _aT$_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _xH_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aUa_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _xI_, - traitement_aide_finale_minorat), - _aT$_), - _aUb_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _xJ_, - Runtime_ocaml_Runtime[13], - _aUa_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _xK_, _aUb_), - _aUc_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _xL_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _aUd_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _xM_, - abattement_depense_nette_minim), - _aUc_), - _aUe_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _xN_, - Runtime_ocaml_Runtime[13], - _aUd_), - abattement = caml_call2(Runtime_ocaml_Runtime[27], _xO_, _aUe_), - _aUf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$253), - _aUg_ = - caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, abattement); - return caml_call2(Runtime_ocaml_Runtime[113], _aUg_, _aUf_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$254) - : caml_call2 - (Runtime_ocaml_Runtime[98], aide_finale$0, abattement); - }, - _aT8_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _xP_, 1); - }, - _aT9_ = caml_call4(Runtime_ocaml_Runtime[63], _xQ_, [0], _aT8_, _aT7_); - return _aT9_; - } - catch(_aT__){ - var _aT6_ = caml_wrap_exception(_aT__); - if(_aT6_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _xG_], 1); - throw caml_maybe_attach_backtrace(_aT6_, 0); - } - } - var - traitement_aide_finale_depense = - caml_call3 - (Runtime_ocaml_Runtime[28], _xR_, Runtime_ocaml_Runtime[10], _aTs_); - function _aTt_(aide_finale){ - try{ - var - _aTZ_ = - function(param){ - var - _aT3_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _xT_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aT4_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _xU_, - traitement_aide_finale_depense), - _aT3_), - _aT5_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _xV_, - Runtime_ocaml_Runtime[13], - _aT4_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _xW_, _aT5_); - return caml_call2 - (Runtime_ocaml_Runtime[123], aide_finale$0, redevance) - ? redevance - : aide_finale$0; - }, - _aT0_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _xX_, 1); - }, - _aT1_ = caml_call4(Runtime_ocaml_Runtime[63], _xY_, [0], _aT0_, _aTZ_); - return _aT1_; - } - catch(_aT2_){ - var _aTY_ = caml_wrap_exception(_aT2_); - if(_aTY_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _xS_], 1); - throw caml_maybe_attach_backtrace(_aTY_, 0); - } - } - var - traitement_aide_finale_redevan = - caml_call3 - (Runtime_ocaml_Runtime[28], _xZ_, Runtime_ocaml_Runtime[10], _aTt_); - function _aTu_(aide_finale){ - try{ - var - _aTJ_ = - function(param){ - var - _aTN_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _x1_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aTO_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _x2_, - traitement_aide_finale_redevan), - _aTN_), - _aTP_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _x3_, - Runtime_ocaml_Runtime[13], - _aTO_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _x4_, _aTP_), - _aTQ_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _x5_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _aTR_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _x6_, - contributions_sociales_dot_mon), - _aTQ_), - _aTS_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _x7_, - Runtime_ocaml_Runtime[13], - _aTR_), - crds = caml_call2(Runtime_ocaml_Runtime[27], _x8_, _aTS_), - _aTT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$2), - _aTU_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), - _aTV_ = caml_call2(Runtime_ocaml_Runtime[98], _aTU_, _aTT_), - aide_finale_moins_crds_arrondi = - caml_call1(Runtime_ocaml_Runtime[77], _aTV_), - _aTW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$255), - _aTX_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128], _aTX_, _aTW_) - ? caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$256); - }, - _aTK_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _x9_, 1); - }, - _aTL_ = caml_call4(Runtime_ocaml_Runtime[63], _x__, [0], _aTK_, _aTJ_); - return _aTL_; - } - catch(_aTM_){ - var _aTI_ = caml_wrap_exception(_aTM_); - if(_aTI_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _x0_], 1); - throw caml_maybe_attach_backtrace(_aTI_, 0); - } - } - var - traitement_aide_finale_contrib = - caml_call3 - (Runtime_ocaml_Runtime[28], _x$_, Runtime_ocaml_Runtime[10], _aTu_); - function _aTv_(aide_finale){ - try{ - var - _aTB_ = - function(param){ - var - _aTF_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _yb_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aTG_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _yc_, - traitement_aide_finale_contrib), - _aTF_), - _aTH_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _yd_, - Runtime_ocaml_Runtime[13], - _aTG_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _ye_, _aTH_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d842_15) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$257) - : aide_finale$0; - }, - _aTC_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _yf_, 1); - }, - _aTD_ = caml_call4(Runtime_ocaml_Runtime[63], _yg_, [0], _aTC_, _aTB_); - return _aTD_; - } - catch(_aTE_){ - var _aTA_ = caml_wrap_exception(_aTE_); - if(_aTA_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _ya_], 1); - throw caml_maybe_attach_backtrace(_aTA_, 0); - } - } - var - traitement_aide_finale_montant = - caml_call3 - (Runtime_ocaml_Runtime[28], _yh_, Runtime_ocaml_Runtime[10], _aTv_); - try{ - var - _aTx_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aTy_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aTx_); - } - catch(_aTz_){ - var _aTw_ = caml_wrap_exception(_aTz_); - if(_aTw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _yi_], 1); - throw caml_maybe_attach_backtrace(_aTw_, 0); - } - if(_aTy_) - return [0, - coefficient_prise_en_charge, - equivalence_loyer, - montant_forfaitaire_charges, - loyer_minimal, - aide_finale_formule, - traitement_aide_finale_montant]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _yj_], 1); - } - function calcul_allocation_logement_acc(calcul_allocation_logement_acc){ - var - ressources_menage_arrondies_ba = calcul_allocation_logement_acc[1], - nombre_personnes_a_charge = calcul_allocation_logement_acc[2], - situation_familiale_calcul_apl = calcul_allocation_logement_acc[3], - zone = calcul_allocation_logement_acc[4], - residence = calcul_allocation_logement_acc[5], - date_courante = calcul_allocation_logement_acc[6], - mensualite_principale = calcul_allocation_logement_acc[7], - situation_r822_11_13_17 = calcul_allocation_logement_acc[8], - date_signature_pret = calcul_allocation_logement_acc[9], - type_travaux_logement = calcul_allocation_logement_acc[10], - local_habite_premiere_fois_ben = calcul_allocation_logement_acc[11], - date_entree_logement = calcul_allocation_logement_acc[12], - charges_mensuelles_pret = calcul_allocation_logement_acc[13], - copropriete = calcul_allocation_logement_acc[14], - operations_logement_evolutifs_ = calcul_allocation_logement_acc[15]; - try{ - var - _anF_ = - function(param){ - var - _aRs_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6_55957$0), - _aRt_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$179); - return caml_call2(Runtime_ocaml_Runtime[107], _aRt_, _aRs_); - }, - _anG_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _yl_, 1); - }, - _anH_ = caml_call4(Runtime_ocaml_Runtime[63], _ym_, [0], _anG_, _anF_); - } - catch(_aRr_){ - var _anE_ = caml_wrap_exception(_aRr_); - if(_anE_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _yk_], 1); - throw caml_maybe_attach_backtrace(_anE_, 0); - } - var - taux_francs_vers_euros = - caml_call3 - (Runtime_ocaml_Runtime[28], _yn_, Runtime_ocaml_Runtime[15], _anH_); - try{ - var - _anJ_ = function(param){return nombre_personnes_a_charge;}, - _anK_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _yp_, 1); - }, - _anL_ = caml_call4(Runtime_ocaml_Runtime[63], _yq_, [0], _anK_, _anJ_), - calcul_nombre_parts_dot_nombre = - caml_call3 - (Runtime_ocaml_Runtime[28], _yr_, Runtime_ocaml_Runtime[14], _anL_); - } - catch(_aRq_){ - var _anI_ = caml_wrap_exception(_aRq_); - if(_anI_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _yo_], 1); - throw caml_maybe_attach_backtrace(_anI_, 0); - } - try{ - var - _anN_ = function(param){return situation_familiale_calcul_apl;}, - _anO_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _yt_, 1); - }, - _anP_ = caml_call4(Runtime_ocaml_Runtime[63], _yu_, [0], _anO_, _anN_), - calcul_nombre_parts_dot_situat = - caml_call3 - (Runtime_ocaml_Runtime[28], - _yv_, - embed_situation_familiale_calc, - _anP_); - } - catch(_aRp_){ - var _anM_ = caml_wrap_exception(_aRp_); - if(_anM_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _ys_], 1); - throw caml_maybe_attach_backtrace(_anM_, 0); - } - var - _anQ_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _yw_, calcul_nombre_parts_accession_), - [0, calcul_nombre_parts_dot_nombre, calcul_nombre_parts_dot_situat]), - result = caml_call2(Runtime_ocaml_Runtime[27], _yx_, _anQ_), - calcul_nombre_parts_dot_n_nomb = result[1]; - try{ - var - _anS_ = function(param){return date_courante;}, - _anT_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _yz_, 1); - }, - _anU_ = caml_call4(Runtime_ocaml_Runtime[63], _yA_, [0], _anT_, _anS_), - contributions_sociales_dot_dat = - caml_call3 - (Runtime_ocaml_Runtime[28], _yB_, Runtime_ocaml_Runtime[16], _anU_); - } - catch(_aRo_){ - var _anR_ = caml_wrap_exception(_aRo_); - if(_anR_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _yy_], 1); - throw caml_maybe_attach_backtrace(_anR_, 0); - } - var - _anV_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _yC_, contributions_sociales_aides_p), - [0, contributions_sociales_dot_dat]), - result$0 = caml_call2(Runtime_ocaml_Runtime[27], _yD_, _anV_), - contributions_sociales_dot_mon = result$0[1]; - try{ - var - _anX_ = - function(param){ - function _aQ$_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _aRa_(param){return 0;} - var - _aRb_ = - [0, - function(param){ - function _aRc_(param){ - return caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); - } - function _aRd_(param){ - var - _aRm_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aRn_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aRm_); - return caml_call2(Runtime_ocaml_Runtime[29], _yF_, _aRn_); - } - var - _aRe_ = - [0, - function(param){ - function _aRf_(param){ - return caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); - } - function _aRg_(param){ - var - _aRh_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aRi_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aRh_), - _aRj_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aRk_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aRj_), - _aRl_ = caml_call2(Runtime_ocaml_Runtime[83], _aRk_, _aRi_); - return caml_call2(Runtime_ocaml_Runtime[29], _yG_, _aRl_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _yH_, [0], _aRg_, _aRf_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _yI_, _aRe_, _aRd_, _aRc_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _yJ_, _aRb_, _aRa_, _aQ$_); - }, - _anY_ = function(param){return 1;}, - _anZ_ = - [0, - function(param){ - function _aP8_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _aP9_(param){return 0;} - var - _aP__ = - [0, - function(param){ - function _aP$_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_6$62); - } - function _aQa_(param){ - var - _aQ1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$63), - _aQ2_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _aQ1_); - switch(residence[0]){ - case 0: - var _aQ3_ = 1; break; - case 1: - var _aQ3_ = 0; break; - case 2: - var _aQ3_ = 1; break; - case 3: - var _aQ3_ = 1; break; - case 4: - var _aQ3_ = 1; break; - case 5: - var _aQ3_ = 1; break; - case 6: - var _aQ3_ = 0; break; - case 7: - var _aQ3_ = 0; break; - default: var _aQ3_ = 1; - } - var - _aQ4_ = caml_call2(Runtime_ocaml_Runtime[83], _aQ3_, _aQ2_), - _aQ5_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _aQ6_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQ5_), - _aQ7_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aQ8_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQ7_), - _aQ9_ = caml_call2(Runtime_ocaml_Runtime[83], _aQ8_, _aQ6_), - _aQ__ = caml_call2(Runtime_ocaml_Runtime[83], _aQ9_, _aQ4_); - return caml_call2(Runtime_ocaml_Runtime[29], _yK_, _aQ__); - } - var - _aQb_ = - [0, - function(param){ - function _aQc_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_6$64); - } - function _aQd_(param){ - var - _aQR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$65), - _aQS_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _aQR_); - switch(residence[0]){ - case 0: - var _aQT_ = 1; break; - case 1: - var _aQT_ = 0; break; - case 2: - var _aQT_ = 1; break; - case 3: - var _aQT_ = 1; break; - case 4: - var _aQT_ = 1; break; - case 5: - var _aQT_ = 1; break; - case 6: - var _aQT_ = 0; break; - case 7: - var _aQT_ = 0; break; - default: var _aQT_ = 1; - } - var - _aQU_ = caml_call2(Runtime_ocaml_Runtime[83], _aQT_, _aQS_), - _aQV_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _aQW_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQV_), - _aQX_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _aQY_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQX_), - _aQZ_ = caml_call2(Runtime_ocaml_Runtime[83], _aQY_, _aQW_), - _aQ0_ = caml_call2(Runtime_ocaml_Runtime[83], _aQZ_, _aQU_); - return caml_call2(Runtime_ocaml_Runtime[29], _yL_, _aQ0_); - } - var - _aQe_ = - [0, - function(param){ - function _aQf_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_6$66); - } - function _aQg_(param){ - var - _aQH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$67), - _aQI_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _aQH_); - switch(residence[0]){ - case 0: - var _aQJ_ = 1; break; - case 1: - var _aQJ_ = 0; break; - case 2: - var _aQJ_ = 1; break; - case 3: - var _aQJ_ = 1; break; - case 4: - var _aQJ_ = 1; break; - case 5: - var _aQJ_ = 1; break; - case 6: - var _aQJ_ = 0; break; - case 7: - var _aQJ_ = 0; break; - default: var _aQJ_ = 1; - } - var - _aQK_ = caml_call2(Runtime_ocaml_Runtime[83], _aQJ_, _aQI_), - _aQL_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _aQM_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQL_), - _aQN_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aQO_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQN_), - _aQP_ = caml_call2(Runtime_ocaml_Runtime[83], _aQO_, _aQM_), - _aQQ_ = caml_call2(Runtime_ocaml_Runtime[83], _aQP_, _aQK_); - return caml_call2(Runtime_ocaml_Runtime[29], _yM_, _aQQ_); - } - var - _aQh_ = - [0, - function(param){ - function _aQi_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_6$68); - } - function _aQj_(param){ - var - _aQx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$69), - _aQy_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _aQx_); - switch(residence[0]){ - case 0: - var _aQz_ = 1; break; - case 1: - var _aQz_ = 0; break; - case 2: - var _aQz_ = 1; break; - case 3: - var _aQz_ = 1; break; - case 4: - var _aQz_ = 1; break; - case 5: - var _aQz_ = 1; break; - case 6: - var _aQz_ = 0; break; - case 7: - var _aQz_ = 0; break; - default: var _aQz_ = 1; - } - var - _aQA_ = caml_call2(Runtime_ocaml_Runtime[83], _aQz_, _aQy_), - _aQB_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aQC_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQB_), - _aQD_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aQE_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQD_), - _aQF_ = caml_call2(Runtime_ocaml_Runtime[83], _aQE_, _aQC_), - _aQG_ = caml_call2(Runtime_ocaml_Runtime[83], _aQF_, _aQA_); - return caml_call2(Runtime_ocaml_Runtime[29], _yN_, _aQG_); - } - var - _aQk_ = - [0, - function(param){ - function _aQl_(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_6$70); - } - function _aQm_(param){ - var - _aQn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$71), - _aQo_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _aQn_); - switch(residence[0]){ - case 0: - var _aQp_ = 1; break; - case 1: - var _aQp_ = 0; break; - case 2: - var _aQp_ = 1; break; - case 3: - var _aQp_ = 1; break; - case 4: - var _aQp_ = 1; break; - case 5: - var _aQp_ = 1; break; - case 6: - var _aQp_ = 0; break; - case 7: - var _aQp_ = 0; break; - default: var _aQp_ = 1; - } - var - _aQq_ = caml_call2(Runtime_ocaml_Runtime[83], _aQp_, _aQo_), - _aQr_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _aQs_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQr_), - _aQt_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aQu_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQt_), - _aQv_ = caml_call2(Runtime_ocaml_Runtime[83], _aQu_, _aQs_), - _aQw_ = caml_call2(Runtime_ocaml_Runtime[83], _aQv_, _aQq_); - return caml_call2(Runtime_ocaml_Runtime[29], _yO_, _aQw_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _yP_, [0], _aQm_, _aQl_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _yQ_, _aQk_, _aQj_, _aQi_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _yR_, _aQh_, _aQg_, _aQf_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _yS_, _aQe_, _aQd_, _aQc_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _yT_, _aQb_, _aQa_, _aP$_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _yU_, _aP__, _aP9_, _aP8_); - }], - _an0_ = caml_call4(Runtime_ocaml_Runtime[63], _yV_, _anZ_, _anY_, _anX_); - } - catch(_aP7_){ - var _anW_ = caml_wrap_exception(_aP7_); - if(_anW_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _yE_], 1); - throw caml_maybe_attach_backtrace(_anW_, 0); - } - var - multiplicateur_majoration_char = - caml_call3 - (Runtime_ocaml_Runtime[28], _yW_, Runtime_ocaml_Runtime[15], _an0_); - try{ - var - _an2_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_16_25$0); - }, - _an3_ = - function(param){ - var - _aP5_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aP6_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aP5_); - return caml_call2(Runtime_ocaml_Runtime[29], _yY_, _aP6_); - }, - _an4_ = caml_call4(Runtime_ocaml_Runtime[63], _yZ_, [0], _an3_, _an2_); - } - catch(_aP4_){ - var _an1_ = caml_wrap_exception(_aP4_); - if(_an1_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _yX_], 1); - throw caml_maybe_attach_backtrace(_an1_, 0); - } - var - coefficient_d842_12 = - caml_call3 - (Runtime_ocaml_Runtime[28], _y0_, Runtime_ocaml_Runtime[15], _an4_); - try{ - var - _an6_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0234$1); - }, - _an7_ = - function(param){ - var - _aP2_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aP3_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aP2_); - return caml_call2(Runtime_ocaml_Runtime[29], _y2_, _aP3_); - }, - _an8_ = caml_call4(Runtime_ocaml_Runtime[63], _y3_, [0], _an7_, _an6_); - } - catch(_aP1_){ - var _an5_ = caml_wrap_exception(_aP1_); - if(_an5_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _y1_], 1); - throw caml_maybe_attach_backtrace(_an5_, 0); - } - var - coefficient_d842_11 = - caml_call3 - (Runtime_ocaml_Runtime[28], _y4_, Runtime_ocaml_Runtime[15], _an8_); - try{ - var - _an__ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_390000); - }, - _an$_ = - function(param){ - var - _aPZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aP0_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPZ_); - return caml_call2(Runtime_ocaml_Runtime[29], _y6_, _aP0_); - }, - _aoa_ = caml_call4(Runtime_ocaml_Runtime[63], _y7_, [0], _an$_, _an__); - } - catch(_aPY_){ - var _an9_ = caml_wrap_exception(_aPY_); - if(_an9_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _y5_], 1); - throw caml_maybe_attach_backtrace(_an9_, 0); - } - var - montant_forfaitaire_d842_12 = - caml_call3 - (Runtime_ocaml_Runtime[28], _y8_, Runtime_ocaml_Runtime[13], _aoa_); - try{ - var - _aoc_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1500$1); - }, - _aod_ = - function(param){ - var - _aPW_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aPX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPW_); - return caml_call2(Runtime_ocaml_Runtime[29], _y__, _aPX_); - }, - _aoe_ = caml_call4(Runtime_ocaml_Runtime[63], _y$_, [0], _aod_, _aoc_); - } - catch(_aPV_){ - var _aob_ = caml_wrap_exception(_aPV_); - if(_aob_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _y9_], 1); - throw caml_maybe_attach_backtrace(_aob_, 0); - } - var - montant_forfaitaire_d842_11 = - caml_call3 - (Runtime_ocaml_Runtime[28], _za_, Runtime_ocaml_Runtime[13], _aoe_); - try{ - var - _aog_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$4); - }, - _aoh_ = - function(param){ - var - _aPT_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aPU_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPT_); - return caml_call2(Runtime_ocaml_Runtime[29], _zc_, _aPU_); - }, - _aoi_ = caml_call4(Runtime_ocaml_Runtime[63], _zd_, [0], _aoh_, _aog_); - } - catch(_aPS_){ - var _aof_ = caml_wrap_exception(_aPS_); - if(_aof_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _zb_], 1); - throw caml_maybe_attach_backtrace(_aof_, 0); - } - var - montant_minimal_aide_d842_6 = - caml_call3 - (Runtime_ocaml_Runtime[28], _ze_, Runtime_ocaml_Runtime[13], _aoi_); - try{ - var - _aok_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_500$3); - }, - _aol_ = - function(param){ - var - _aPQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aPR_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPQ_); - return caml_call2(Runtime_ocaml_Runtime[29], _zg_, _aPR_); - }, - _aom_ = caml_call4(Runtime_ocaml_Runtime[63], _zh_, [0], _aol_, _aok_); - } - catch(_aPP_){ - var _aoj_ = caml_wrap_exception(_aPP_); - if(_aoj_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _zf_], 1); - throw caml_maybe_attach_backtrace(_aoj_, 0); - } - var - montant_forfaitaire_d842_6 = - caml_call3 - (Runtime_ocaml_Runtime[28], _zi_, Runtime_ocaml_Runtime[13], _aom_); - try{ - var - _aoo_ = function(param){return 0;}, - _aop_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _zk_, 1); - }, - _aoq_ = - [0, - function(param){ - function _aPs_(param){return 1;} - function _aPt_(param){ - var - _aPH_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 7, 1), - _aPI_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _aPH_); - switch(type_travaux_logement[0]){ - case 0: - var _aPJ_ = 0; break; - case 1: - var _aPJ_ = 0; break; - case 2: - var _aPJ_ = 1; break; - default: var _aPJ_ = 0; - } - switch(type_travaux_logement[0]){ - case 0: - var _aPK_ = 1; break; - case 1: - var _aPK_ = 0; break; - case 2: - var _aPK_ = 0; break; - default: var _aPK_ = 0; - } - var _aPL_ = caml_call2(Runtime_ocaml_Runtime[84], _aPK_, _aPJ_); - switch(type_travaux_logement[0]){ - case 0: - var _aPM_ = 0; break; - case 1: - var _aPM_ = 0; break; - case 2: - var _aPM_ = 0; break; - default: var _aPM_ = 1; - } - var - _aPN_ = caml_call2(Runtime_ocaml_Runtime[84], _aPM_, _aPL_), - _aPO_ = caml_call2(Runtime_ocaml_Runtime[83], _aPN_, _aPI_); - return caml_call2(Runtime_ocaml_Runtime[29], _zl_, _aPO_); - } - var - _aPu_ = - [0, - function(param){ - function _aPv_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _aPw_(param){return 0;} - var - _aPx_ = - [0, - function(param){ - function _aPy_(param){return 0;} - function _aPz_(param){ - switch(residence[0]){ - case 0: - var _aPF_ = 1; break; - case 1: - var _aPF_ = 1; break; - case 2: - var _aPF_ = 1; break; - case 3: - var _aPF_ = 1; break; - case 4: - var _aPF_ = 0; break; - case 5: - var _aPF_ = 0; break; - case 6: - var _aPF_ = 0; break; - case 7: - var _aPF_ = 0; break; - default: var _aPF_ = 1; - } - var - _aPG_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - _aPF_, - operations_logement_evolutifs_); - return caml_call2(Runtime_ocaml_Runtime[29], _zm_, _aPG_); - } - var - _aPA_ = - [0, - function(param){ - function _aPB_(param){return 0;} - function _aPC_(param){ - switch(residence[0]){ - case 0: - var _aPD_ = 0; break; - case 1: - var _aPD_ = 0; break; - case 2: - var _aPD_ = 0; break; - case 3: - var _aPD_ = 0; break; - case 4: - var _aPD_ = 1; break; - case 5: - var _aPD_ = 1; break; - case 6: - var _aPD_ = 0; break; - case 7: - var _aPD_ = 0; break; - default: var _aPD_ = 0; - } - var - _aPE_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - _aPD_, - operations_logement_evolutifs_); - return caml_call2(Runtime_ocaml_Runtime[29], _zn_, _aPE_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zo_, [0], _aPC_, _aPB_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _zp_, _aPA_, _aPz_, _aPy_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _zq_, _aPx_, _aPw_, _aPv_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _zr_, _aPu_, _aPt_, _aPs_); - }], - _aor_ = caml_call4(Runtime_ocaml_Runtime[63], _zs_, _aoq_, _aop_, _aoo_); - } - catch(_aPr_){ - var _aon_ = caml_wrap_exception(_aPr_); - if(_aon_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _zj_], 1); - throw caml_maybe_attach_backtrace(_aon_, 0); - } - var - condition_d842_11_3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _zt_, Runtime_ocaml_Runtime[12], _aor_); - function _aos_(date_calcul, nombre_personnes_a_charge){ - try{ - var - _ay$_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _aza_ = function(param){return 0;}, - _azb_ = - function(param){ - function _aOM_(param){ - switch(zone[0]){ - case 0: - var _aOT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$258); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOT_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31476) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37933); - var _aOU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$180); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOU_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40787); - var _aOV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOV_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41927); - var _aOW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOW_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_43106); - var _aOX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOX_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_44262); - var _aOY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$26); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOY_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_45200); - var - _aOZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$27), - _aO0_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aOZ_), - _aO1_ = caml_call1(Runtime_ocaml_Runtime[69], _aO0_), - _aO2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3936), - _aO3_ = caml_call2(Runtime_ocaml_Runtime[104], _aO2_, _aO1_), - _aO4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45200$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aO4_, _aO3_); - case 1: - var _aO5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$259); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO5_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27614) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33853); - var _aO6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$181); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO6_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36646); - var _aO7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO7_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37915); - var _aO8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$33); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO8_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39222); - var _aO9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$33); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO9_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40510); - var _aO__ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO__)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_43378); - var - _aO$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$29), - _aPa_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aO$_), - _aPb_ = caml_call1(Runtime_ocaml_Runtime[69], _aPa_), - _aPc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3771), - _aPd_ = caml_call2(Runtime_ocaml_Runtime[104], _aPc_, _aPb_), - _aPe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43378$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aPe_, _aPd_); - default: - var _aPf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$260); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPf_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25904) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31419); - var _aPg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$182); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34255); - var _aPh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPh_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35670); - var _aPi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPi_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37107); - var _aPj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPj_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38521); - var _aPk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$30); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPk_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41392); - var - _aPl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$31), - _aPm_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aPl_), - _aPn_ = caml_call1(Runtime_ocaml_Runtime[69], _aPm_), - _aPo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3588), - _aPp_ = caml_call2(Runtime_ocaml_Runtime[104], _aPo_, _aPn_), - _aPq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41392$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aPq_, _aPp_); - } - } - function _aON_(param){ - var - _aOO_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aOP_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aOO_), - _aOQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aOR_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aOQ_), - _aOS_ = caml_call2(Runtime_ocaml_Runtime[83], _aOR_, _aOP_); - return caml_call2(Runtime_ocaml_Runtime[29], _zv_, _aOS_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zw_, [0], _aON_, _aOM_); - }, - _azc_ = - function(param){ - function _aN4_(param){ - switch(zone[0]){ - case 0: - var _aOc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$261); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOc_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31382) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37820); - var _aOd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$183); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOd_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40665); - var _aOe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOe_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41801); - var _aOf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOf_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42977); - var _aOg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_44130); - var _aOh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOh_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_45064); - var - _aOi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$33), - _aOj_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aOi_), - _aOk_ = caml_call1(Runtime_ocaml_Runtime[69], _aOj_), - _aOl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3924), - _aOm_ = caml_call2(Runtime_ocaml_Runtime[104], _aOl_, _aOk_), - _aOn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45064$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aOn_, _aOm_); - case 1: - var _aOo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$262); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOo_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27531) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33751); - var _aOp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$184); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOp_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36536); - var _aOq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOq_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37801); - var _aOr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOr_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39105); - var _aOs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOs_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40389); - var _aOt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOt_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_43248); - var - _aOu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$35), - _aOv_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aOu_), - _aOw_ = caml_call1(Runtime_ocaml_Runtime[69], _aOv_), - _aOx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3760), - _aOy_ = caml_call2(Runtime_ocaml_Runtime[104], _aOx_, _aOw_), - _aOz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43248$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aOz_, _aOy_); - default: - var _aOA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$263); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOA_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25826) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31325); - var _aOB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$185); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOB_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34152); - var _aOC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOC_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35564); - var _aOD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOD_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36996); - var _aOE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOE_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38406); - var _aOF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOF_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41268); - var - _aOG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$37), - _aOH_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aOG_), - _aOI_ = caml_call1(Runtime_ocaml_Runtime[69], _aOH_), - _aOJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3578), - _aOK_ = caml_call2(Runtime_ocaml_Runtime[104], _aOJ_, _aOI_), - _aOL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41268$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aOL_, _aOK_); - } - } - function _aN5_(param){ - var - _aN6_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _aN7_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aN6_), - _aN8_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 10, 1), - _aN9_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aN8_), - _aN__ = caml_call2(Runtime_ocaml_Runtime[83], _aN9_, _aN7_), - _aN$_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aOa_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aN$_), - _aOb_ = caml_call2(Runtime_ocaml_Runtime[83], _aOa_, _aN__); - return caml_call2(Runtime_ocaml_Runtime[29], _zx_, _aOb_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zy_, [0], _aN5_, _aN4_); - }, - _azd_ = - function(param){ - function _aNk_(param){ - switch(zone[0]){ - case 0: - var _aNu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$264); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNu_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31148) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37538); - var _aNv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$186); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNv_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40362); - var _aNw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNw_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41490); - var _aNx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNx_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42657); - var _aNy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNy_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_43801); - var _aNz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNz_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_44729); - var - _aNA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$39), - _aNB_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aNA_), - _aNC_ = caml_call1(Runtime_ocaml_Runtime[69], _aNB_), - _aND_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3895), - _aNE_ = caml_call2(Runtime_ocaml_Runtime[104], _aND_, _aNC_), - _aNF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44729$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aNF_, _aNE_); - case 1: - var _aNG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$265); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNG_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27326) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33500$0); - var _aNH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$187); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNH_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36264); - var _aNI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNI_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37520); - var _aNJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNJ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38814); - var _aNK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNK_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40088); - var _aNL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNL_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42926); - var - _aNM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$41), - _aNN_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aNM_), - _aNO_ = caml_call1(Runtime_ocaml_Runtime[69], _aNN_), - _aNP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3732), - _aNQ_ = caml_call2(Runtime_ocaml_Runtime[104], _aNP_, _aNO_), - _aNR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42926$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aNR_, _aNQ_); - default: - var _aNS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$266); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNS_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25634) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31092); - var _aNT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$188); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNT_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33898); - var _aNU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNU_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35299); - var _aNV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNV_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36721); - var _aNW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNW_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38120); - var _aNX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNX_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40961); - var - _aNY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$43), - _aNZ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aNY_), - _aN0_ = caml_call1(Runtime_ocaml_Runtime[69], _aNZ_), - _aN1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3551), - _aN2_ = caml_call2(Runtime_ocaml_Runtime[104], _aN1_, _aN0_), - _aN3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40961$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aN3_, _aN2_); - } - } - function _aNl_(param){ - var - _aNm_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 10, 1), - _aNn_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aNm_), - _aNo_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 10, 1), - _aNp_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aNo_), - _aNq_ = caml_call2(Runtime_ocaml_Runtime[83], _aNp_, _aNn_), - _aNr_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aNs_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aNr_), - _aNt_ = caml_call2(Runtime_ocaml_Runtime[83], _aNs_, _aNq_); - return caml_call2(Runtime_ocaml_Runtime[29], _zz_, _aNt_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zA_, [0], _aNl_, _aNk_); - }, - _aze_ = - function(param){ - function _aMC_(param){ - switch(zone[0]){ - case 0: - var _aMM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$267); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMM_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_31123) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37508); - var _aMN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$189); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMN_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40330); - var _aMO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMO_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41457); - var _aMP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMP_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42623); - var _aMQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMQ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_43766); - var _aMR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMR_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_44693); - var - _aMS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$45), - _aMT_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aMS_), - _aMU_ = caml_call1(Runtime_ocaml_Runtime[69], _aMT_), - _aMV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3892), - _aMW_ = caml_call2(Runtime_ocaml_Runtime[104], _aMV_, _aMU_), - _aMX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44693$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aMX_, _aMW_); - case 1: - var _aMY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$268); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMY_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27304) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33473); - var _aMZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$190); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMZ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36235); - var _aM0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM0_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37490); - var _aM1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM1_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38783); - var _aM2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM2_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40056); - var _aM3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM3_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42892); - var - _aM4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$47), - _aM5_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aM4_), - _aM6_ = caml_call1(Runtime_ocaml_Runtime[69], _aM5_), - _aM7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3729), - _aM8_ = caml_call2(Runtime_ocaml_Runtime[104], _aM7_, _aM6_), - _aM9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42892$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aM9_, _aM8_); - default: - var _aM__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$269); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM__)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25614) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31067); - var _aM$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$191); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM$_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33871); - var _aNa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNa_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35271); - var _aNb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNb_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36692); - var _aNc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNc_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38090); - var _aNd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNd_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40928); - var - _aNe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$49), - _aNf_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aNe_), - _aNg_ = caml_call1(Runtime_ocaml_Runtime[69], _aNf_), - _aNh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3548), - _aNi_ = caml_call2(Runtime_ocaml_Runtime[104], _aNh_, _aNg_), - _aNj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40928$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aNj_, _aNi_); - } - } - function _aMD_(param){ - var - _aME_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 10, 1), - _aMF_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aME_), - _aMG_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 10, 1), - _aMH_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aMG_), - _aMI_ = caml_call2(Runtime_ocaml_Runtime[83], _aMH_, _aMF_), - _aMJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aMK_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aMJ_), - _aML_ = caml_call2(Runtime_ocaml_Runtime[83], _aMK_, _aMI_); - return caml_call2(Runtime_ocaml_Runtime[29], _zB_, _aML_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zC_, [0], _aMD_, _aMC_); - }, - _azf_ = - function(param){ - function _aLU_(param){ - switch(zone[0]){ - case 0: - var _aL4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$270); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL4_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_30947) - : caml_call1(Runtime_ocaml_Runtime[31], cst_37295); - var _aL5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$192); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL5_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40101); - var _aL6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL6_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41222); - var _aL7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL7_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42381); - var _aL8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL8_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_43518); - var _aL9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL9_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_44440); - var - _aL__ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$51), - _aL$_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aL__), - _aMa_ = caml_call1(Runtime_ocaml_Runtime[69], _aL$_), - _aMb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3870), - _aMc_ = caml_call2(Runtime_ocaml_Runtime[104], _aMb_, _aMa_), - _aMd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44440$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aMd_, _aMc_); - case 1: - var _aMe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$271); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMe_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27149) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33283); - var _aMf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$193); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMf_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36030); - var _aMg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37278); - var _aMh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMh_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38563); - var _aMi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMi_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39829); - var _aMj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMj_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42649); - var - _aMk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$53), - _aMl_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aMk_), - _aMm_ = caml_call1(Runtime_ocaml_Runtime[69], _aMl_), - _aMn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3708), - _aMo_ = caml_call2(Runtime_ocaml_Runtime[104], _aMn_, _aMm_), - _aMp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42659); - return caml_call2(Runtime_ocaml_Runtime[93], _aMp_, _aMo_); - default: - var _aMq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$272); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMq_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25469) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30891); - var _aMr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$194); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMr_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33679); - var _aMs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMs_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35071); - var _aMt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMt_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36484); - var _aMu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMu_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37874); - var _aMv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMv_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40696); - var - _aMw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$55), - _aMx_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aMw_), - _aMy_ = caml_call1(Runtime_ocaml_Runtime[69], _aMx_), - _aMz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3528), - _aMA_ = caml_call2(Runtime_ocaml_Runtime[104], _aMz_, _aMy_), - _aMB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40696$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aMB_, _aMA_); - } - } - function _aLV_(param){ - var - _aLW_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 10, 1), - _aLX_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aLW_), - _aLY_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), - _aLZ_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aLY_), - _aL0_ = caml_call2(Runtime_ocaml_Runtime[83], _aLZ_, _aLX_), - _aL1_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aL2_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aL1_), - _aL3_ = caml_call2(Runtime_ocaml_Runtime[83], _aL2_, _aL0_); - return caml_call2(Runtime_ocaml_Runtime[29], _zD_, _aL3_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zE_, [0], _aLV_, _aLU_); - }, - _azg_ = - function(param){ - function _aLa_(param){ - switch(zone[0]){ - case 0: - var _aLk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$273); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLk_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_30296) - : caml_call1(Runtime_ocaml_Runtime[31], cst_36510); - var _aLl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$195); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLl_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39257); - var _aLm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLm_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40354); - var _aLn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLn_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41489); - var _aLo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLo_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42602); - var _aLp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLp_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_43505); - var - _aLq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$57), - _aLr_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aLq_), - _aLs_ = caml_call1(Runtime_ocaml_Runtime[69], _aLr_), - _aLt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3789), - _aLu_ = caml_call2(Runtime_ocaml_Runtime[104], _aLt_, _aLs_), - _aLv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43505$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aLv_, _aLu_); - case 1: - var _aLw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$274); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLw_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26578) - : caml_call1(Runtime_ocaml_Runtime[31], cst_32582); - var _aLx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$196); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLx_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35272); - var _aLy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLy_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36493); - var _aLz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLz_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37751); - var _aLA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLA_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38991); - var _aLB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLB_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41751); - var - _aLC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$59), - _aLD_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aLC_), - _aLE_ = caml_call1(Runtime_ocaml_Runtime[69], _aLD_), - _aLF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3630), - _aLG_ = caml_call2(Runtime_ocaml_Runtime[104], _aLF_, _aLE_), - _aLH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41751$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aLH_, _aLG_); - default: - var _aLI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$275); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLI_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24933) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30241); - var _aLJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$197); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLJ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32970); - var _aLK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$51); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLK_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34333); - var _aLL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLL_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35716); - var _aLM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLM_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37077); - var _aLN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLN_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39839); - var - _aLO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$61), - _aLP_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aLO_), - _aLQ_ = caml_call1(Runtime_ocaml_Runtime[69], _aLP_), - _aLR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3454), - _aLS_ = caml_call2(Runtime_ocaml_Runtime[104], _aLR_, _aLQ_), - _aLT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39839$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aLT_, _aLS_); - } - } - function _aLb_(param){ - var - _aLc_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), - _aLd_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aLc_), - _aLe_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), - _aLf_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aLe_), - _aLg_ = caml_call2(Runtime_ocaml_Runtime[83], _aLf_, _aLd_), - _aLh_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aLi_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aLh_), - _aLj_ = caml_call2(Runtime_ocaml_Runtime[83], _aLi_, _aLg_); - return caml_call2(Runtime_ocaml_Runtime[29], _zF_, _aLj_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zG_, [0], _aLb_, _aLa_); - }, - _azh_ = - function(param){ - function _aKs_(param){ - switch(zone[0]){ - case 0: - var _aKC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$276); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKC_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29996) - : caml_call1(Runtime_ocaml_Runtime[31], cst_36149); - var _aKD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$198); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKD_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38868); - var _aKE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKE_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39954); - var _aKF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKF_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41078); - var _aKG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKG_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42180); - var _aKH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKH_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_43074); - var - _aKI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$63), - _aKJ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aKI_), - _aKK_ = caml_call1(Runtime_ocaml_Runtime[69], _aKJ_), - _aKL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3751), - _aKM_ = caml_call2(Runtime_ocaml_Runtime[104], _aKL_, _aKK_), - _aKN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43074$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aKN_, _aKM_); - case 1: - var _aKO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$277); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKO_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26315) - : caml_call1(Runtime_ocaml_Runtime[31], cst_32259); - var _aKP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$199); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKP_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34923); - var _aKQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKQ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36132); - var _aKR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$51); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKR_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37373); - var _aKS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$51); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKS_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38605); - var _aKT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKT_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41338); - var - _aKU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$65), - _aKV_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aKU_), - _aKW_ = caml_call1(Runtime_ocaml_Runtime[69], _aKV_), - _aKX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3594), - _aKY_ = caml_call2(Runtime_ocaml_Runtime[104], _aKX_, _aKW_), - _aKZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41338$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aKZ_, _aKY_); - default: - var _aK0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$278); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK0_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24686) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29942); - var _aK1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$200); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK1_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32644); - var _aK2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK2_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33993); - var _aK3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK3_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35362); - var _aK4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK4_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36710); - var _aK5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK5_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39445); - var - _aK6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$67), - _aK7_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aK6_), - _aK8_ = caml_call1(Runtime_ocaml_Runtime[69], _aK7_), - _aK9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3420), - _aK__ = caml_call2(Runtime_ocaml_Runtime[104], _aK9_, _aK8_), - _aK$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39445$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aK$_, _aK__); - } - } - function _aKt_(param){ - var - _aKu_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), - _aKv_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aKu_), - _aKw_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), - _aKx_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aKw_), - _aKy_ = caml_call2(Runtime_ocaml_Runtime[83], _aKx_, _aKv_), - _aKz_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aKA_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aKz_), - _aKB_ = caml_call2(Runtime_ocaml_Runtime[83], _aKA_, _aKy_); - return caml_call2(Runtime_ocaml_Runtime[29], _zH_, _aKB_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zI_, [0], _aKt_, _aKs_); - }, - _azi_ = - function(param){ - function _aJK_(param){ - switch(zone[0]){ - case 0: - var _aJU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$279); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJU_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29670) - : caml_call1(Runtime_ocaml_Runtime[31], cst_35757); - var _aJV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$201); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJV_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38445); - var _aJW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJW_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39519); - var _aJX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJX_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40601); - var _aJY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJY_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41721); - var _aJZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJZ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42605); - var - _aJ0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$69), - _aJ1_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aJ0_), - _aJ2_ = caml_call1(Runtime_ocaml_Runtime[69], _aJ1_), - _aJ3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3710), - _aJ4_ = caml_call2(Runtime_ocaml_Runtime[104], _aJ3_, _aJ2_), - _aJ5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42605$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aJ5_, _aJ4_); - case 1: - var _aJ6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$280); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ6_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26029) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31908); - var _aJ7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$202); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ7_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34643); - var _aJ8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ8_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35739); - var _aJ9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ9_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36970); - var _aJ__ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ__)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38185); - var _aJ$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ$_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40888); - var - _aKa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$71), - _aKb_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aKa_), - _aKc_ = caml_call1(Runtime_ocaml_Runtime[69], _aKb_), - _aKd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3555), - _aKe_ = caml_call2(Runtime_ocaml_Runtime[104], _aKd_, _aKc_), - _aKf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40888$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aKf_, _aKe_); - default: - var _aKg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$281); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKg_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24417) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29616); - var _aKh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$203); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKh_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32289); - var _aKi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$57); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKi_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33623$0); - var _aKj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKj_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34977); - var _aKk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKk_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36311); - var _aKl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKl_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39016); - var - _aKm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$73), - _aKn_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aKm_), - _aKo_ = caml_call1(Runtime_ocaml_Runtime[69], _aKn_), - _aKp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3383), - _aKq_ = caml_call2(Runtime_ocaml_Runtime[104], _aKp_, _aKo_), - _aKr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39016$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aKr_, _aKq_); - } - } - function _aJL_(param){ - var - _aJM_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), - _aJN_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aJM_), - _aJO_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 1, 1), - _aJP_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aJO_), - _aJQ_ = caml_call2(Runtime_ocaml_Runtime[83], _aJP_, _aJN_), - _aJR_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aJS_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aJR_), - _aJT_ = caml_call2(Runtime_ocaml_Runtime[83], _aJS_, _aJQ_); - return caml_call2(Runtime_ocaml_Runtime[29], _zJ_, _aJT_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zK_, [0], _aJL_, _aJK_); - }, - _azj_ = - function(param){ - function _aI2_(param){ - switch(zone[0]){ - case 0: - var _aJa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$282); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJa_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_29575) - : caml_call1(Runtime_ocaml_Runtime[31], cst_35642); - var _aJb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$204); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJb_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38322); - var _aJc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJc_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39393); - var _aJd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJd_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40501); - var _aJe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJe_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41588); - var _aJf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJf_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_42469); - var - _aJg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$75), - _aJh_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aJg_), - _aJi_ = caml_call1(Runtime_ocaml_Runtime[69], _aJh_), - _aJj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3698), - _aJk_ = caml_call2(Runtime_ocaml_Runtime[104], _aJj_, _aJi_), - _aJl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42469$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aJl_, _aJk_); - case 1: - var _aJm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$283); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJm_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25946) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31806); - var _aJn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$205); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJn_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34433); - var _aJo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJo_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35625); - var _aJp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$57); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJp_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36852); - var _aJq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$57); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJq_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38063); - var _aJr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJr_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40758); - var - _aJs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$77), - _aJt_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aJs_), - _aJu_ = caml_call1(Runtime_ocaml_Runtime[69], _aJt_), - _aJv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3544), - _aJw_ = caml_call2(Runtime_ocaml_Runtime[104], _aJv_, _aJu_), - _aJx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40758$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aJx_, _aJw_); - default: - var _aJy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$284); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJy_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24339) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29522); - var _aJz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$206); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJz_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32186); - var _aJA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJA_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33516); - var _aJB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJB_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34865); - var _aJC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJC_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36195); - var _aJD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJD_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38892); - var - _aJE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$79), - _aJF_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aJE_), - _aJG_ = caml_call1(Runtime_ocaml_Runtime[69], _aJF_), - _aJH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3372), - _aJI_ = caml_call2(Runtime_ocaml_Runtime[104], _aJH_, _aJG_), - _aJJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38892$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aJJ_, _aJI_); - } - } - function _aI3_(param){ - var - _aI4_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 1, 1), - _aI5_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aI4_), - _aI6_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 1, 1), - _aI7_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aI6_), - _aI8_ = caml_call2(Runtime_ocaml_Runtime[83], _aI7_, _aI5_), - _aI9_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aI__ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aI9_), - _aI$_ = caml_call2(Runtime_ocaml_Runtime[83], _aI__, _aI8_); - return caml_call2(Runtime_ocaml_Runtime[29], _zL_, _aI$_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zM_, [0], _aI3_, _aI2_); - }, - _azk_ = - function(param){ - function _aIi_(param){ - switch(zone[0]){ - case 0: - var _aIs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$285); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIs_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_28728) - : caml_call1(Runtime_ocaml_Runtime[31], cst_34621); - var _aIt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$207); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIt_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37224); - var _aIu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIu_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38264); - var _aIv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIv_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39340$0); - var _aIw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIw_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40396); - var _aIx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIx_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_41252); - var - _aIy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$81), - _aIz_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aIy_), - _aIA_ = caml_call1(Runtime_ocaml_Runtime[69], _aIz_), - _aIB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3592), - _aIC_ = caml_call2(Runtime_ocaml_Runtime[104], _aIB_, _aIA_), - _aID_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41252$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aID_, _aIC_); - case 1: - var _aIE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$286); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIE_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_25203) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30895); - var _aIF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$208); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIF_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33446); - var _aIG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIG_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34604); - var _aIH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIH_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35796); - var _aII_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aII_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36972); - var _aIJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIJ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39590); - var - _aIK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$83), - _aIL_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aIK_), - _aIM_ = caml_call1(Runtime_ocaml_Runtime[69], _aIL_), - _aIN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3442), - _aIO_ = caml_call2(Runtime_ocaml_Runtime[104], _aIN_, _aIM_), - _aIP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39590$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aIP_, _aIO_); - default: - var _aIQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$287); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIQ_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_23642) - : caml_call1(Runtime_ocaml_Runtime[31], cst_28676); - var _aIR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$209); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIR_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_31264$0); - var _aIS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIS_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32556); - var _aIT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIT_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33866); - var _aIU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIU_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35158); - var _aIV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIV_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37778); - var - _aIW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$85), - _aIX_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aIW_), - _aIY_ = caml_call1(Runtime_ocaml_Runtime[69], _aIX_), - _aIZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3275), - _aI0_ = caml_call2(Runtime_ocaml_Runtime[104], _aIZ_, _aIY_), - _aI1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37778$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aI1_, _aI0_); - } - } - function _aIj_(param){ - var - _aIk_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 1, 1), - _aIl_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aIk_), - _aIm_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 1, 1), - _aIn_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aIm_), - _aIo_ = caml_call2(Runtime_ocaml_Runtime[83], _aIn_, _aIl_), - _aIp_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aIq_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aIp_), - _aIr_ = caml_call2(Runtime_ocaml_Runtime[83], _aIq_, _aIo_); - return caml_call2(Runtime_ocaml_Runtime[29], _zN_, _aIr_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zO_, [0], _aIj_, _aIi_); - }, - _azl_ = - function(param){ - function _aHA_(param){ - switch(zone[0]){ - case 0: - var _aHK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$288); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHK_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27956) - : caml_call1(Runtime_ocaml_Runtime[31], cst_33691); - var _aHL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$210); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHL_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36224); - var _aHM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHM_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37236); - var _aHN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHN_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38283); - var _aHO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHO_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39311); - var _aHP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHP_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_40144); - var - _aHQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$87), - _aHR_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aHQ_), - _aHS_ = caml_call1(Runtime_ocaml_Runtime[69], _aHR_), - _aHT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3496), - _aHU_ = caml_call2(Runtime_ocaml_Runtime[104], _aHT_, _aHS_), - _aHV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40144$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aHV_, _aHU_); - case 1: - var _aHW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$289); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHW_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_24526) - : caml_call1(Runtime_ocaml_Runtime[31], cst_30065); - var _aHX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$211); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHX_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32548); - var _aHY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$65); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHY_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33675); - var _aHZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHZ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34865$0); - var _aH0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH0_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35979); - var _aH1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH1_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38527); - var - _aH2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$89), - _aH3_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aH2_), - _aH4_ = caml_call1(Runtime_ocaml_Runtime[69], _aH3_), - _aH5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3350), - _aH6_ = caml_call2(Runtime_ocaml_Runtime[104], _aH5_, _aH4_), - _aH7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38527$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aH7_, _aH6_); - default: - var _aH8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$290); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH8_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_23007) - : caml_call1(Runtime_ocaml_Runtime[31], cst_27906); - var _aH9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$212); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH9_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_30424); - var _aH__ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH__)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_31682); - var _aH$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH$_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32956$0); - var _aIa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIa_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34214); - var _aIb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIb_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36733); - var - _aIc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$91), - _aId_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aIc_), - _aIe_ = caml_call1(Runtime_ocaml_Runtime[69], _aId_), - _aIf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3187), - _aIg_ = caml_call2(Runtime_ocaml_Runtime[104], _aIf_, _aIe_), - _aIh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36733$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aIh_, _aIg_); - } - } - function _aHB_(param){ - var - _aHC_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 1, 1), - _aHD_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aHC_), - _aHE_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 1, 1), - _aHF_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aHE_), - _aHG_ = caml_call2(Runtime_ocaml_Runtime[83], _aHF_, _aHD_), - _aHH_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aHI_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aHH_), - _aHJ_ = caml_call2(Runtime_ocaml_Runtime[83], _aHI_, _aHG_); - return caml_call2(Runtime_ocaml_Runtime[29], _zP_, _aHJ_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zQ_, [0], _aHB_, _aHA_); - }, - _azm_ = - function(param){ - function _aGS_(param){ - switch(zone[0]){ - case 0: - var _aG2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$291); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG2_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_27195) - : caml_call1(Runtime_ocaml_Runtime[31], cst_32773); - var _aG3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$213); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG3_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35237); - var _aG4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$67); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG4_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36222); - var _aG5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$65); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG5_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37240); - var _aG6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$65); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG6_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38240); - var _aG7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG7_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_39051); - var - _aG8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$93), - _aG9_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aG8_), - _aG__ = caml_call1(Runtime_ocaml_Runtime[69], _aG9_), - _aG$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3401), - _aHa_ = caml_call2(Runtime_ocaml_Runtime[104], _aG$_, _aG__), - _aHb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39051$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aHb_, _aHa_); - case 1: - var _aHc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$292); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHc_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_23858) - : caml_call1(Runtime_ocaml_Runtime[31], cst_29246); - var _aHd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$214); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHd_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_31661); - var _aHe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHe_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32758); - var _aHf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHf_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33886); - var _aHg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34999); - var _aHh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHh_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37478); - var - _aHi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$95), - _aHj_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aHi_), - _aHk_ = caml_call1(Runtime_ocaml_Runtime[69], _aHj_), - _aHl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3259), - _aHm_ = caml_call2(Runtime_ocaml_Runtime[104], _aHl_, _aHk_), - _aHn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37478$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aHn_, _aHm_); - default: - var _aHo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$293); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHo_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_22380) - : caml_call1(Runtime_ocaml_Runtime[31], cst_27146); - var _aHp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$215); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHp_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_29595); - var _aHq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$69); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHq_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_30819); - var _aHr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$67); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHr_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32058); - var _aHs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$67); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHs_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33282); - var _aHt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHt_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35762); - var - _aHu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$97), - _aHv_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aHu_), - _aHw_ = caml_call1(Runtime_ocaml_Runtime[69], _aHv_), - _aHx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3100), - _aHy_ = caml_call2(Runtime_ocaml_Runtime[104], _aHx_, _aHw_), - _aHz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35762$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aHz_, _aHy_); - } - } - function _aGT_(param){ - var - _aGU_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 1, 1), - _aGV_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aGU_), - _aGW_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 9, 1), - _aGX_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aGW_), - _aGY_ = caml_call2(Runtime_ocaml_Runtime[83], _aGX_, _aGV_), - _aGZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aG0_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aGZ_), - _aG1_ = caml_call2(Runtime_ocaml_Runtime[83], _aG0_, _aGY_); - return caml_call2(Runtime_ocaml_Runtime[29], _zR_, _aG1_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zS_, [0], _aGT_, _aGS_); - }, - _azn_ = - function(param){ - function _aF__(param){ - switch(zone[0]){ - case 0: - var _aGi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$294); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGi_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26714$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_32194); - var _aGj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$216); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGj_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34614); - var _aGk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGk_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35582); - var _aGl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGl_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36582); - var _aGm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGm_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37564); - var _aGn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$98); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGn_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_38361); - var - _aGo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$99), - _aGp_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aGo_), - _aGq_ = caml_call1(Runtime_ocaml_Runtime[69], _aGp_), - _aGr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3341), - _aGs_ = caml_call2(Runtime_ocaml_Runtime[104], _aGr_, _aGq_), - _aGt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38361$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aGt_, _aGs_); - case 1: - var _aGu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$295); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGu_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_23436) - : caml_call1(Runtime_ocaml_Runtime[31], cst_28729); - var _aGv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$217); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGv_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_31101); - var _aGw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGw_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32179); - var _aGx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$69); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGx_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33287); - var _aGy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$69); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGy_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34380); - var _aGz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$100); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGz_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36815); - var - _aGA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$101), - _aGB_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aGA_), - _aGC_ = caml_call1(Runtime_ocaml_Runtime[69], _aGB_), - _aGD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3201), - _aGE_ = caml_call2(Runtime_ocaml_Runtime[104], _aGD_, _aGC_), - _aGF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36815$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aGF_, _aGE_); - default: - var _aGG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$296); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGG_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_21984) - : caml_call1(Runtime_ocaml_Runtime[31], cst_26666); - var _aGH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$218); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGH_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_29072); - var _aGI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGI_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_30274); - var _aGJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGJ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_31491); - var _aGK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGK_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32694); - var _aGL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$102); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGL_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35130); - var - _aGM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$103), - _aGN_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aGM_), - _aGO_ = caml_call1(Runtime_ocaml_Runtime[69], _aGN_), - _aGP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3045), - _aGQ_ = caml_call2(Runtime_ocaml_Runtime[104], _aGP_, _aGO_), - _aGR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35130$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aGR_, _aGQ_); - } - } - function _aF$_(param){ - var - _aGa_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 9, 1), - _aGb_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aGa_), - _aGc_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 7, 1), - _aGd_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aGc_), - _aGe_ = caml_call2(Runtime_ocaml_Runtime[83], _aGd_, _aGb_), - _aGf_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aGg_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aGf_), - _aGh_ = caml_call2(Runtime_ocaml_Runtime[83], _aGg_, _aGe_); - return caml_call2(Runtime_ocaml_Runtime[29], _zT_, _aGh_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zU_, [0], _aF$_, _aF__); - }, - _azo_ = - function(param){ - function _aFq_(param){ - switch(zone[0]){ - case 0: - var _aFA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$297); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFA_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26397) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31812); - var _aFB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$219); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFB_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34204); - var _aFC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFC_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35160); - var _aFD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFD_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36148); - var _aFE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFE_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37119); - var _aFF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$104); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFF_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37906); - var - _aFG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$105), - _aFH_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aFG_), - _aFI_ = caml_call1(Runtime_ocaml_Runtime[69], _aFH_), - _aFJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3301), - _aFK_ = caml_call2(Runtime_ocaml_Runtime[104], _aFJ_, _aFI_), - _aFL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37906$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aFL_, _aFK_); - case 1: - var _aFM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$298); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFM_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_23158) - : caml_call1(Runtime_ocaml_Runtime[31], cst_28388); - var _aFN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$220); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFN_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_30732); - var _aFO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFO_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_31797$1); - var _aFP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFP_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32892); - var _aFQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFQ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33972); - var _aFR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$106); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFR_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36378); - var - _aFS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$107), - _aFT_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aFS_), - _aFU_ = caml_call1(Runtime_ocaml_Runtime[69], _aFT_), - _aFV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3163), - _aFW_ = caml_call2(Runtime_ocaml_Runtime[104], _aFV_, _aFU_), - _aFX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36378$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aFX_, _aFW_); - default: - var _aFY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$299); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFY_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_21723) - : caml_call1(Runtime_ocaml_Runtime[31], cst_26350); - var _aFZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$221); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFZ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_28727); - var _aF0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aF0_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_29915); - var _aF1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aF1_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_31118); - var _aF2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aF2_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32306); - var _aF3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$108); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aF3_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34713); - var - _aF4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$109), - _aF5_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aF4_), - _aF6_ = caml_call1(Runtime_ocaml_Runtime[69], _aF5_), - _aF7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3009), - _aF8_ = caml_call2(Runtime_ocaml_Runtime[104], _aF7_, _aF6_), - _aF9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34713$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aF9_, _aF8_); - } - } - function _aFr_(param){ - var - _aFs_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 7, 1), - _aFt_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aFs_), - _aFu_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 7, 1), - _aFv_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aFu_), - _aFw_ = caml_call2(Runtime_ocaml_Runtime[83], _aFv_, _aFt_), - _aFx_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aFy_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aFx_), - _aFz_ = caml_call2(Runtime_ocaml_Runtime[83], _aFy_, _aFw_); - return caml_call2(Runtime_ocaml_Runtime[29], _zV_, _aFz_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zW_, [0], _aFr_, _aFq_); - }, - _azp_ = - function(param){ - function _aEI_(param){ - switch(zone[0]){ - case 0: - var _aES_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$300); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aES_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_26084) - : caml_call1(Runtime_ocaml_Runtime[31], cst_31435); - var _aET_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$222); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aET_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33798); - var _aEU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEU_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34743); - var _aEV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEV_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35719); - var _aEW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEW_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_36679); - var _aEX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$110); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEX_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_37457); - var - _aEY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$111), - _aEZ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aEY_), - _aE0_ = caml_call1(Runtime_ocaml_Runtime[69], _aEZ_), - _aE1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3262), - _aE2_ = caml_call2(Runtime_ocaml_Runtime[104], _aE1_, _aE0_), - _aE3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37457$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aE3_, _aE2_); - case 1: - var _aE4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$301); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE4_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_22883) - : caml_call1(Runtime_ocaml_Runtime[31], cst_28051); - var _aE5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$223); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE5_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_30368); - var _aE6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE6_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_31420); - var _aE7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE7_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_32502); - var _aE8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE8_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_33569); - var _aE9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$112); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE9_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_35947); - var - _aE__ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$113), - _aE$_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aE__), - _aFa_ = caml_call1(Runtime_ocaml_Runtime[69], _aE$_), - _aFb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3125), - _aFc_ = caml_call2(Runtime_ocaml_Runtime[104], _aFb_, _aFa_), - _aFd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35947$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aFd_, _aFc_); - default: - var _aFe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$302); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFe_)) - return 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_21465) - : caml_call1(Runtime_ocaml_Runtime[31], cst_26038); - var _aFf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$224); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFf_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_28386); - var _aFg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFg_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_29560); - var _aFh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFh_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_30749); - var _aFi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFi_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_31923); - var _aFj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$114); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFj_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_34301); - var - _aFk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$115), - _aFl_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aFk_), - _aFm_ = caml_call1(Runtime_ocaml_Runtime[69], _aFl_), - _aFn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_2973), - _aFo_ = caml_call2(Runtime_ocaml_Runtime[104], _aFn_, _aFm_), - _aFp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34301$0); - return caml_call2(Runtime_ocaml_Runtime[93], _aFp_, _aFo_); - } - } - function _aEJ_(param){ - var - _aEK_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 7, 1), - _aEL_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aEK_), - _aEM_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), - _aEN_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aEM_), - _aEO_ = caml_call2(Runtime_ocaml_Runtime[83], _aEN_, _aEL_), - _aEP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aEQ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aEP_), - _aER_ = caml_call2(Runtime_ocaml_Runtime[83], _aEQ_, _aEO_); - return caml_call2(Runtime_ocaml_Runtime[29], _zX_, _aER_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _zY_, [0], _aEJ_, _aEI_); - }, - _azq_ = - function(param){ - function _aDZ_(param){ - switch(zone[0]){ - case 0: - var _aD9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$303); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aD9_)) - var - _aD__ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_171100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_206200); - else{ - var _aD$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$225); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aD$_)) - var _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_221700); - else{ - var _aEa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEa_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_227900); - else{ - var _aEb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEb_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_234300); - else{ - var _aEc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEc_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_240600); - else{ - var - _aEd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$116); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEd_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_245700); - else - var - _aEe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$117), - _aEf_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aEe_), - _aEg_ = caml_call1(Runtime_ocaml_Runtime[69], _aEf_), - _aEh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_21400), - _aEi_ = caml_call2(Runtime_ocaml_Runtime[104], _aEh_, _aEg_), - _aEj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_245700$0), - _aD__ = caml_call2(Runtime_ocaml_Runtime[93], _aEj_, _aEi_); - } - } - } - } - } - break; - case 1: - var _aEk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$304); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEk_)) - var - _aD__ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_150100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_184000$0); - else{ - var _aEl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$226); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEl_)) - var _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_199200); - else{ - var _aEm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEm_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_206100); - else{ - var _aEn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEn_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_213200); - else{ - var _aEo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEo_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_220200); - else{ - var - _aEp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$118); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEp_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_235800); - else - var - _aEq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$119), - _aEr_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aEq_), - _aEs_ = caml_call1(Runtime_ocaml_Runtime[69], _aEr_), - _aEt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20500), - _aEu_ = caml_call2(Runtime_ocaml_Runtime[104], _aEt_, _aEs_), - _aEv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235800$0), - _aD__ = caml_call2(Runtime_ocaml_Runtime[93], _aEv_, _aEu_); - } - } - } - } - } - break; - default: - var _aEw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$305); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEw_)) - var - _aD__ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_140800) - : caml_call1(Runtime_ocaml_Runtime[31], cst_170800); - else{ - var _aEx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$227); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEx_)) - var _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_186200); - else{ - var _aEy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEy_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_193900); - else{ - var _aEz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEz_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_201700); - else{ - var _aEA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEA_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_209400); - else{ - var - _aEB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$120); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aEB_)) - var - _aD__ = caml_call1(Runtime_ocaml_Runtime[31], cst_225000); - else - var - _aEC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$121), - _aED_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aEC_), - _aEE_ = caml_call1(Runtime_ocaml_Runtime[69], _aED_), - _aEF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19500), - _aEG_ = caml_call2(Runtime_ocaml_Runtime[104], _aEF_, _aEE_), - _aEH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225000$0), - _aD__ = caml_call2(Runtime_ocaml_Runtime[93], _aEH_, _aEG_); - } - } - } - } - } - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _aD__, taux_francs_vers_euros); - } - function _aD0_(param){ - var - _aD1_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), - _aD2_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aD1_), - _aD3_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), - _aD4_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aD3_), - _aD5_ = caml_call2(Runtime_ocaml_Runtime[83], _aD4_, _aD2_), - _aD6_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aD7_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aD6_), - _aD8_ = caml_call2(Runtime_ocaml_Runtime[83], _aD7_, _aD5_); - return caml_call2(Runtime_ocaml_Runtime[29], _zZ_, _aD8_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _z0_, [0], _aD0_, _aDZ_); - }, - _azr_ = - function(param){ - function _aDe_(param){ - switch(zone[0]){ - case 0: - var _aDo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$306); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aDo_)) - var - _aDp_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_169100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_203800); - else{ - var _aDq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$228); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDq_)) - var _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219100); - else{ - var _aDr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDr_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225200); - else{ - var _aDs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDs_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_231500); - else{ - var _aDt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDt_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_237700); - else{ - var - _aDu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$122); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDu_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800$1); - else - var - _aDv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$123), - _aDw_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aDv_), - _aDx_ = caml_call1(Runtime_ocaml_Runtime[69], _aDw_), - _aDy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_21100), - _aDz_ = caml_call2(Runtime_ocaml_Runtime[104], _aDy_, _aDx_), - _aDA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800$2), - _aDp_ = caml_call2(Runtime_ocaml_Runtime[93], _aDA_, _aDz_); - } - } - } - } - } - break; - case 1: - var _aDB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$307); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aDB_)) - var - _aDp_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_148300) - : caml_call1(Runtime_ocaml_Runtime[31], cst_181800); - else{ - var _aDC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$229); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDC_)) - var _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_196800); - else{ - var _aDD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDD_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_203700); - else{ - var _aDE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDE_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210700); - else{ - var _aDF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDF_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_217600); - else{ - var - _aDG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$124); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDG_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_233000); - else - var - _aDH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$125), - _aDI_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aDH_), - _aDJ_ = caml_call1(Runtime_ocaml_Runtime[69], _aDI_), - _aDK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20300), - _aDL_ = caml_call2(Runtime_ocaml_Runtime[104], _aDK_, _aDJ_), - _aDM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_233000$0), - _aDp_ = caml_call2(Runtime_ocaml_Runtime[93], _aDM_, _aDL_); - } - } - } - } - } - break; - default: - var _aDN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$308); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aDN_)) - var - _aDp_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_139100) - : caml_call1(Runtime_ocaml_Runtime[31], cst_168800); - else{ - var _aDO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$230); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDO_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_184000$1); - else{ - var _aDP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDP_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_191600); - else{ - var _aDQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDQ_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199300); - else{ - var _aDR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDR_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_206900); - else{ - var - _aDS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$126); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aDS_)) - var - _aDp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222300); - else - var - _aDT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$127), - _aDU_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aDT_), - _aDV_ = caml_call1(Runtime_ocaml_Runtime[69], _aDU_), - _aDW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19300), - _aDX_ = caml_call2(Runtime_ocaml_Runtime[104], _aDW_, _aDV_), - _aDY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222300$0), - _aDp_ = caml_call2(Runtime_ocaml_Runtime[93], _aDY_, _aDX_); - } - } - } - } - } - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _aDp_, taux_francs_vers_euros); - } - function _aDf_(param){ - var - _aDg_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), - _aDh_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aDg_), - _aDi_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 7, 1), - _aDj_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aDi_), - _aDk_ = caml_call2(Runtime_ocaml_Runtime[83], _aDj_, _aDh_), - _aDl_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aDm_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aDl_), - _aDn_ = caml_call2(Runtime_ocaml_Runtime[83], _aDm_, _aDk_); - return caml_call2(Runtime_ocaml_Runtime[29], _z1_, _aDn_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _z2_, [0], _aDf_, _aDe_); - }, - _azs_ = - function(param){ - function _aCv_(param){ - switch(zone[0]){ - case 0: - var _aCF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$309); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aCF_)) - var - _aCG_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_167400) - : caml_call1(Runtime_ocaml_Runtime[31], cst_201800); - else{ - var _aCH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$231); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCH_)) - var _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_216900); - else{ - var _aCI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCI_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_223000); - else{ - var _aCJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCJ_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_229200); - else{ - var _aCK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCK_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235300); - else{ - var - _aCL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$128); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCL_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240400); - else - var - _aCM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$129), - _aCN_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aCM_), - _aCO_ = caml_call1(Runtime_ocaml_Runtime[69], _aCN_), - _aCP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20900), - _aCQ_ = caml_call2(Runtime_ocaml_Runtime[104], _aCP_, _aCO_), - _aCR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240400$0), - _aCG_ = caml_call2(Runtime_ocaml_Runtime[93], _aCR_, _aCQ_); - } - } - } - } - } - break; - case 1: - var _aCS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$310); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aCS_)) - var - _aCG_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_146800) - : caml_call1(Runtime_ocaml_Runtime[31], cst_180000); - else{ - var _aCT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$232); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCT_)) - var _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194900); - else{ - var _aCU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCU_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_201700$0); - else{ - var _aCV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCV_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208600); - else{ - var _aCW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCW_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_215400); - else{ - var - _aCX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$130); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCX_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230700); - else - var - _aCY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$131), - _aCZ_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aCY_), - _aC0_ = caml_call1(Runtime_ocaml_Runtime[69], _aCZ_), - _aC1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20100), - _aC2_ = caml_call2(Runtime_ocaml_Runtime[104], _aC1_, _aC0_), - _aC3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230700$0), - _aCG_ = caml_call2(Runtime_ocaml_Runtime[93], _aC3_, _aC2_); - } - } - } - } - } - break; - default: - var _aC4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$311); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aC4_)) - var - _aCG_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_137700) - : caml_call1(Runtime_ocaml_Runtime[31], cst_167100); - else{ - var _aC5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$233); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aC5_)) - var _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_182200); - else{ - var _aC6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aC6_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189700); - else{ - var _aC7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aC7_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_197300); - else{ - var _aC8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aC8_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204900); - else{ - var - _aC9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$132); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aC9_)) - var - _aCG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_220100); - else - var - _aC__ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$133), - _aC$_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aC__), - _aDa_ = caml_call1(Runtime_ocaml_Runtime[69], _aC$_), - _aDb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19100), - _aDc_ = caml_call2(Runtime_ocaml_Runtime[104], _aDb_, _aDa_), - _aDd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_220100$0), - _aCG_ = caml_call2(Runtime_ocaml_Runtime[93], _aDd_, _aDc_); - } - } - } - } - } - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _aCG_, taux_francs_vers_euros); - } - function _aCw_(param){ - var - _aCx_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 7, 1), - _aCy_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aCx_), - _aCz_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 7, 1), - _aCA_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aCz_), - _aCB_ = caml_call2(Runtime_ocaml_Runtime[83], _aCA_, _aCy_), - _aCC_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aCD_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aCC_), - _aCE_ = caml_call2(Runtime_ocaml_Runtime[83], _aCD_, _aCB_); - return caml_call2(Runtime_ocaml_Runtime[29], _z3_, _aCE_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _z4_, [0], _aCw_, _aCv_); - }, - _azt_ = - function(param){ - function _aBM_(param){ - switch(zone[0]){ - case 0: - var _aBW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$312); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aBW_)) - var - _aBX_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_167200) - : caml_call1(Runtime_ocaml_Runtime[31], cst_201600); - else{ - var _aBY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$234); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBY_)) - var _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_216700); - else{ - var _aBZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBZ_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222800); - else{ - var _aB0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aB0_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_229000); - else{ - var _aB1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aB1_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235100); - else{ - var - _aB2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$134); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aB2_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240200); - else - var - _aB3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$135), - _aB4_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aB3_), - _aB5_ = caml_call1(Runtime_ocaml_Runtime[69], _aB4_), - _aB6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20900$0), - _aB7_ = caml_call2(Runtime_ocaml_Runtime[104], _aB6_, _aB5_), - _aB8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240200$0), - _aBX_ = caml_call2(Runtime_ocaml_Runtime[93], _aB8_, _aB7_); - } - } - } - } - } - break; - case 1: - var _aB9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$313); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aB9_)) - var - _aBX_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_146700) - : caml_call1(Runtime_ocaml_Runtime[31], cst_179800); - else{ - var _aB__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$235); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aB__)) - var _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194700); - else{ - var _aB$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aB$_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_201500); - else{ - var _aCa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCa_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208400); - else{ - var _aCb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCb_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_215200); - else{ - var - _aCc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$136); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCc_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500); - else - var - _aCd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$137), - _aCe_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aCd_), - _aCf_ = caml_call1(Runtime_ocaml_Runtime[69], _aCe_), - _aCg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20100$0), - _aCh_ = caml_call2(Runtime_ocaml_Runtime[104], _aCg_, _aCf_), - _aCi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500$0), - _aBX_ = caml_call2(Runtime_ocaml_Runtime[93], _aCi_, _aCh_); - } - } - } - } - } - break; - default: - var _aCj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$314); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aCj_)) - var - _aBX_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_137600) - : caml_call1(Runtime_ocaml_Runtime[31], cst_166900); - else{ - var _aCk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$236); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCk_)) - var _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_182000); - else{ - var _aCl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCl_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189500); - else{ - var _aCm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCm_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_197100); - else{ - var _aCn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCn_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204700$0); - else{ - var - _aCo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$138); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aCo_)) - var - _aBX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219900); - else - var - _aCp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$139), - _aCq_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aCp_), - _aCr_ = caml_call1(Runtime_ocaml_Runtime[69], _aCq_), - _aCs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19100$0), - _aCt_ = caml_call2(Runtime_ocaml_Runtime[104], _aCs_, _aCr_), - _aCu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219900$0), - _aBX_ = caml_call2(Runtime_ocaml_Runtime[93], _aCu_, _aCt_); - } - } - } - } - } - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _aBX_, taux_francs_vers_euros); - } - function _aBN_(param){ - var - _aBO_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 7, 1), - _aBP_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aBO_), - _aBQ_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 7, 1), - _aBR_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aBQ_), - _aBS_ = caml_call2(Runtime_ocaml_Runtime[83], _aBR_, _aBP_), - _aBT_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aBU_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aBT_), - _aBV_ = caml_call2(Runtime_ocaml_Runtime[83], _aBU_, _aBS_); - return caml_call2(Runtime_ocaml_Runtime[29], _z5_, _aBV_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _z6_, [0], _aBN_, _aBM_); - }, - _azu_ = - function(param){ - function _aA3_(param){ - switch(zone[0]){ - case 0: - var _aBb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$315); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aBb_)) - var - _aBc_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_163300) - : caml_call1(Runtime_ocaml_Runtime[31], cst_196900); - else{ - var _aBd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$237); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBd_)) - var _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_211600); - else{ - var _aBe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBe_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_217600$0); - else{ - var _aBf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBf_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_223600); - else{ - var _aBg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBg_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_229600); - else{ - var - _aBh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$140); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBh_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_234600); - else - var - _aBi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$141), - _aBj_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aBi_), - _aBk_ = caml_call1(Runtime_ocaml_Runtime[69], _aBj_), - _aBl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20400), - _aBm_ = caml_call2(Runtime_ocaml_Runtime[104], _aBl_, _aBk_), - _aBn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_234600$0), - _aBc_ = caml_call2(Runtime_ocaml_Runtime[93], _aBn_, _aBm_); - } - } - } - } - } - break; - case 1: - var _aBo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$316); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aBo_)) - var - _aBc_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_143300) - : caml_call1(Runtime_ocaml_Runtime[31], cst_175600); - else{ - var _aBp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$238); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBp_)) - var _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_190100); - else{ - var _aBq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBq_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_196600); - else{ - var _aBr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBr_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_203500); - else{ - var _aBs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBs_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210200); - else{ - var - _aBt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$142); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBt_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225100); - else - var - _aBu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$143), - _aBv_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aBu_), - _aBw_ = caml_call1(Runtime_ocaml_Runtime[69], _aBv_), - _aBx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19600), - _aBy_ = caml_call2(Runtime_ocaml_Runtime[104], _aBx_, _aBw_), - _aBz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225100$0), - _aBc_ = caml_call2(Runtime_ocaml_Runtime[93], _aBz_, _aBy_); - } - } - } - } - } - break; - default: - var _aBA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$317); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aBA_)) - var - _aBc_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_134400) - : caml_call1(Runtime_ocaml_Runtime[31], cst_163000$0); - else{ - var _aBB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$239); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBB_)) - var _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_177700); - else{ - var _aBC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBC_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_185100); - else{ - var _aBD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBD_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_192500$0); - else{ - var _aBE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBE_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199900$0); - else{ - var - _aBF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$144); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aBF_)) - var - _aBc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_214700); - else - var - _aBG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$145), - _aBH_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aBG_), - _aBI_ = caml_call1(Runtime_ocaml_Runtime[69], _aBH_), - _aBJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_18700), - _aBK_ = caml_call2(Runtime_ocaml_Runtime[104], _aBJ_, _aBI_), - _aBL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_214700$0), - _aBc_ = caml_call2(Runtime_ocaml_Runtime[93], _aBL_, _aBK_); - } - } - } - } - } - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _aBc_, taux_francs_vers_euros); - } - function _aA4_(param){ - var - _aA5_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 7, 1), - _aA6_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aA5_), - _aA7_ = caml_call3(Runtime_ocaml_Runtime[57], 1997, 7, 1), - _aA8_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aA7_), - _aA9_ = caml_call2(Runtime_ocaml_Runtime[83], _aA8_, _aA6_), - _aA__ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aA$_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aA__), - _aBa_ = caml_call2(Runtime_ocaml_Runtime[83], _aA$_, _aA9_); - return caml_call2(Runtime_ocaml_Runtime[29], _z7_, _aBa_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _z8_, [0], _aA4_, _aA3_); - }, - _azv_ = - function(param){ - function _aAi_(param){ - switch(zone[0]){ - case 0: - var _aAs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$318); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aAs_)) - var - _aAt_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_160400) - : caml_call1(Runtime_ocaml_Runtime[31], cst_193400); - else{ - var _aAu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$240); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAu_)) - var _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_207800); - else{ - var _aAv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAv_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_213700); - else{ - var _aAw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAw_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219600); - else{ - var _aAx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAx_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225500$0); - else{ - var - _aAy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$146); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAy_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500$1); - else - var - _aAz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$147), - _aAA_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aAz_), - _aAB_ = caml_call1(Runtime_ocaml_Runtime[69], _aAA_), - _aAC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20000), - _aAD_ = caml_call2(Runtime_ocaml_Runtime[104], _aAC_, _aAB_), - _aAE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500$2), - _aAt_ = caml_call2(Runtime_ocaml_Runtime[93], _aAE_, _aAD_); - } - } - } - } - } - break; - case 1: - var _aAF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$319); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aAF_)) - var - _aAt_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_140800$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_172500$0); - else{ - var _aAG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$241); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAG_)) - var _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_186700); - else{ - var _aAH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAH_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_193300); - else{ - var _aAI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAI_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199900$1); - else{ - var _aAJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAJ_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_206500); - else{ - var - _aAK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$148); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAK_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_221100); - else - var - _aAL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$149), - _aAM_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aAL_), - _aAN_ = caml_call1(Runtime_ocaml_Runtime[69], _aAM_), - _aAO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19300$0), - _aAP_ = caml_call2(Runtime_ocaml_Runtime[104], _aAO_, _aAN_), - _aAQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_221100$0), - _aAt_ = caml_call2(Runtime_ocaml_Runtime[93], _aAQ_, _aAP_); - } - } - } - } - } - break; - default: - var _aAR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$320); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aAR_)) - var - _aAt_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_132000$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_180100$1); - else{ - var _aAS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$242); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAS_)) - var _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_174500); - else{ - var _aAT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAT_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_181800$0); - else{ - var _aAU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAU_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189100); - else{ - var _aAV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAV_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_196400); - else{ - var - _aAW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$150); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAW_)) - var - _aAt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210900); - else - var - _aAX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$151), - _aAY_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aAX_), - _aAZ_ = caml_call1(Runtime_ocaml_Runtime[69], _aAY_), - _aA0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_18400), - _aA1_ = caml_call2(Runtime_ocaml_Runtime[104], _aA0_, _aAZ_), - _aA2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210900$0), - _aAt_ = caml_call2(Runtime_ocaml_Runtime[93], _aA2_, _aA1_); - } - } - } - } - } - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _aAt_, taux_francs_vers_euros); - } - function _aAj_(param){ - var - _aAk_ = caml_call3(Runtime_ocaml_Runtime[57], 1997, 7, 1), - _aAl_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aAk_), - _aAm_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 7, 1), - _aAn_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aAm_), - _aAo_ = caml_call2(Runtime_ocaml_Runtime[83], _aAn_, _aAl_), - _aAp_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _aAq_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aAp_), - _aAr_ = caml_call2(Runtime_ocaml_Runtime[83], _aAq_, _aAo_); - return caml_call2(Runtime_ocaml_Runtime[29], _z9_, _aAr_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _z__, [0], _aAj_, _aAi_); - }, - _azw_ = - [0, - function(param){ - function _azz_(param){ - switch(zone[0]){ - case 0: - var _azJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$321); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _azJ_)) - var - _azK_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_158700) - : caml_call1(Runtime_ocaml_Runtime[31], cst_191300); - else{ - var _azL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$243); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _azL_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_205500); - else{ - var _azM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$97); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _azM_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_211300); - else{ - var _azN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _azN_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_217100); - else{ - var _azO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _azO_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222900); - else{ - var - _azP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$152); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _azP_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_228000); - else - var - _azQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$153), - _azR_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _azQ_), - _azS_ = caml_call1(Runtime_ocaml_Runtime[69], _azR_), - _azT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19800), - _azU_ = caml_call2(Runtime_ocaml_Runtime[104], _azT_, _azS_), - _azV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_228000$0), - _azK_ = caml_call2(Runtime_ocaml_Runtime[93], _azV_, _azU_); - } - } - } - } - } - break; - case 1: - var _azW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$322); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _azW_)) - var - _azK_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_139300) - : caml_call1(Runtime_ocaml_Runtime[31], cst_170600); - else{ - var _azX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$244); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _azX_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_184700); - else{ - var _azY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$98); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _azY_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_191200); - else{ - var _azZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _azZ_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_197700$0); - else{ - var _az0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _az0_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204200); - else{ - var - _az1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$154); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _az1_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_218700); - else - var - _az2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$155), - _az3_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _az2_), - _az4_ = caml_call1(Runtime_ocaml_Runtime[69], _az3_), - _az5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19100$1), - _az6_ = caml_call2(Runtime_ocaml_Runtime[104], _az5_, _az4_), - _az7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_218700$0), - _azK_ = caml_call2(Runtime_ocaml_Runtime[93], _az7_, _az6_); - } - } - } - } - } - break; - default: - var _az8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$323); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _az8_)) - var - _azK_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_130600) - : caml_call1(Runtime_ocaml_Runtime[31], cst_158400); - else{ - var _az9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$245); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _az9_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_172600); - else{ - var _az__ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$99); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _az__)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_179800$0); - else{ - var _az$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$97); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _az$_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_187000); - else{ - var _aAa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$97); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAa_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194200); - else{ - var - _aAb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$156); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _aAb_)) - var - _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208600$0); - else - var - _aAc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$157), - _aAd_ = - caml_call2 - (Runtime_ocaml_Runtime[96], - nombre_personnes_a_charge, - _aAc_), - _aAe_ = caml_call1(Runtime_ocaml_Runtime[69], _aAd_), - _aAf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_18200), - _aAg_ = caml_call2(Runtime_ocaml_Runtime[104], _aAf_, _aAe_), - _aAh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208600$1), - _azK_ = caml_call2(Runtime_ocaml_Runtime[93], _aAh_, _aAg_); - } - } - } - } - } - } - return caml_call2 - (Runtime_ocaml_Runtime[104], _azK_, taux_francs_vers_euros); - } - function _azA_(param){ - var - _azB_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 7, 1), - _azC_ = - caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _azB_), - _azD_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 7, 1), - _azE_ = - caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _azD_), - _azF_ = caml_call2(Runtime_ocaml_Runtime[83], _azE_, _azC_), - _azG_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _azH_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _azG_), - _azI_ = caml_call2(Runtime_ocaml_Runtime[83], _azH_, _azF_); - return caml_call2(Runtime_ocaml_Runtime[29], _z$_, _azI_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Aa_, [0], _azA_, _azz_); - }, - _azv_, - _azu_, - _azt_, - _azs_, - _azr_, - _azq_, - _azp_, - _azo_, - _azn_, - _azm_, - _azl_, - _azk_, - _azj_, - _azi_, - _azh_, - _azg_, - _azf_, - _aze_, - _azd_, - _azc_, - _azb_], - _azx_ = - caml_call4(Runtime_ocaml_Runtime[63], _Ab_, _azw_, _aza_, _ay$_); - return _azx_; - } - catch(_azy_){ - var _ay__ = caml_wrap_exception(_azy_); - if(_ay__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _zu_], 1); - throw caml_maybe_attach_backtrace(_ay__, 0); - } - } - var - calcul_plafond_mensualite_d842 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Ac_, Runtime_ocaml_Runtime[10], _aos_); - try{ - var - _aou_ = - function(param){ - function _ayA_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _ayB_(param){return 0;} - function _ayC_(param){ - function _ayY_(param){ - var _ay5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$324); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _ay5_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_5399$5); - var - _ay6_ = - caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _ay7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$4), - _ay8_ = caml_call2(Runtime_ocaml_Runtime[104], _ay7_, _ay6_), - _ay9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399$6); - return caml_call2(Runtime_ocaml_Runtime[93], _ay9_, _ay8_); - } - function _ayZ_(param){ - var - _ay0_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _ay1_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ay0_), - _ay2_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _ay3_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ay2_), - _ay4_ = caml_call2(Runtime_ocaml_Runtime[83], _ay3_, _ay1_); - return caml_call2(Runtime_ocaml_Runtime[29], _Ae_, _ay4_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Af_, [0], _ayZ_, _ayY_); - } - function _ayD_(param){ - function _ayN_(param){ - var _ayU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$325); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _ayU_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_5422$5); - var - _ayV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$4), - _ayW_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _ayV_, - multiplicateur_majoration_char), - _ayX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422$6); - return caml_call2(Runtime_ocaml_Runtime[93], _ayX_, _ayW_); - } - function _ayO_(param){ - var - _ayP_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _ayQ_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ayP_), - _ayR_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _ayS_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ayR_), - _ayT_ = caml_call2(Runtime_ocaml_Runtime[83], _ayS_, _ayQ_); - return caml_call2(Runtime_ocaml_Runtime[29], _Ag_, _ayT_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ah_, [0], _ayO_, _ayN_); - } - var - _ayE_ = - [0, - function(param){ - function _ayF_(param){ - var _ayJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$326); - if - (caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_a_charge, - _ayJ_)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_5612$5); - var - _ayK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$4), - _ayL_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _ayK_, - multiplicateur_majoration_char), - _ayM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612$6); - return caml_call2(Runtime_ocaml_Runtime[93], _ayM_, _ayL_); - } - function _ayG_(param){ - var - _ayH_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _ayI_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ayH_); - return caml_call2(Runtime_ocaml_Runtime[29], _Ai_, _ayI_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Aj_, [0], _ayG_, _ayF_); - }, - _ayD_, - _ayC_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ak_, _ayE_, _ayB_, _ayA_); - }, - _aov_ = function(param){return 1;}, - _aow_ = - [0, - function(param){ - function _auI_(param){ - function _ax1_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _ax2_(param){return 0;} - function _ax3_(param){ - function _ayo_(param){ - var - _ayw_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _ayx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$5), - _ayy_ = caml_call2(Runtime_ocaml_Runtime[104], _ayx_, _ayw_), - _ayz_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_2699$1) - : caml_call1(Runtime_ocaml_Runtime[31], cst_5399$7); - return caml_call2(Runtime_ocaml_Runtime[93], _ayz_, _ayy_); - } - function _ayp_(param){ - var - _ayq_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _ayr_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ayq_), - _ays_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _ayt_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ays_), - _ayu_ = caml_call2(Runtime_ocaml_Runtime[83], _ayt_, _ayr_), - _ayv_ = - caml_call2(Runtime_ocaml_Runtime[83], _ayu_, copropriete); - return caml_call2(Runtime_ocaml_Runtime[29], _Al_, _ayv_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Am_, [0], _ayp_, _ayo_); - } - function _ax4_(param){ - function _ayc_(param){ - var - _ayk_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _ayl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$5), - _aym_ = caml_call2(Runtime_ocaml_Runtime[104], _ayl_, _ayk_), - _ayn_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_2710$1) - : caml_call1(Runtime_ocaml_Runtime[31], cst_5422$7); - return caml_call2(Runtime_ocaml_Runtime[93], _ayn_, _aym_); - } - function _ayd_(param){ - var - _aye_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _ayf_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aye_), - _ayg_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _ayh_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ayg_), - _ayi_ = caml_call2(Runtime_ocaml_Runtime[83], _ayh_, _ayf_), - _ayj_ = - caml_call2(Runtime_ocaml_Runtime[83], _ayi_, copropriete); - return caml_call2(Runtime_ocaml_Runtime[29], _An_, _ayj_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ao_, [0], _ayd_, _ayc_); - } - var - _ax5_ = - [0, - function(param){ - function _ax6_(param){ - var - _ax$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$5), - _aya_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _ax$_, - multiplicateur_majoration_char), - _ayb_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_2805$1) - : caml_call1(Runtime_ocaml_Runtime[31], cst_5612$7); - return caml_call2(Runtime_ocaml_Runtime[93], _ayb_, _aya_); - } - function _ax7_(param){ - var - _ax8_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _ax9_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ax8_), - _ax__ = - caml_call2(Runtime_ocaml_Runtime[83], _ax9_, copropriete); - return caml_call2(Runtime_ocaml_Runtime[29], _Ap_, _ax__); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Aq_, [0], _ax7_, _ax6_); - }, - _ax4_, - _ax3_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ar_, _ax5_, _ax2_, _ax1_); - } - function _auJ_(param){return 1;} - var - _auK_ = - [0, - function(param){ - function _auL_(param){ - function _awp_(param){ - throw caml_maybe_attach_backtrace - (Runtime_ocaml_Runtime[2], 1); - } - function _awq_(param){return 0;} - function _awr_(param){ - function _axK_(param){ - var - _axT_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _axU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$5), - _axV_ = caml_call2(Runtime_ocaml_Runtime[104], _axU_, _axT_), - _axW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$5), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _axW_, _axV_), - _axX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$72), - _axY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$6), - _axZ_ = caml_call2(Runtime_ocaml_Runtime[104], _axY_, _axX_), - _ax0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$6), - limite = caml_call2(Runtime_ocaml_Runtime[93], _ax0_, _axZ_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _axL_(param){ - switch(residence[0]){ - case 0: - var _axM_ = 1; break; - case 1: - var _axM_ = 0; break; - case 2: - var _axM_ = 1; break; - case 3: - var _axM_ = 1; break; - case 4: - var _axM_ = 1; break; - case 5: - var _axM_ = 1; break; - case 6: - var _axM_ = 0; break; - case 7: - var _axM_ = 0; break; - default: var _axM_ = 1; - } - var - _axN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _axO_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _axN_), - _axP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _axQ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _axP_), - _axR_ = caml_call2(Runtime_ocaml_Runtime[83], _axQ_, _axO_), - _axS_ = caml_call2(Runtime_ocaml_Runtime[83], _axR_, _axM_); - return caml_call2(Runtime_ocaml_Runtime[29], _As_, _axS_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _At_, [0], _axL_, _axK_); - } - function _aws_(param){ - function _axt_(param){ - var - _axC_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _axD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$5), - _axE_ = caml_call2(Runtime_ocaml_Runtime[104], _axD_, _axC_), - _axF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$5), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _axF_, _axE_), - _axG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$73), - _axH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$6), - _axI_ = caml_call2(Runtime_ocaml_Runtime[104], _axH_, _axG_), - _axJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$6), - limite = caml_call2(Runtime_ocaml_Runtime[93], _axJ_, _axI_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _axu_(param){ - switch(residence[0]){ - case 0: - var _axv_ = 1; break; - case 1: - var _axv_ = 0; break; - case 2: - var _axv_ = 1; break; - case 3: - var _axv_ = 1; break; - case 4: - var _axv_ = 1; break; - case 5: - var _axv_ = 1; break; - case 6: - var _axv_ = 0; break; - case 7: - var _axv_ = 0; break; - default: var _axv_ = 1; - } - var - _axw_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _axx_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _axw_), - _axy_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _axz_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _axy_), - _axA_ = caml_call2(Runtime_ocaml_Runtime[83], _axz_, _axx_), - _axB_ = caml_call2(Runtime_ocaml_Runtime[83], _axA_, _axv_); - return caml_call2(Runtime_ocaml_Runtime[29], _Au_, _axB_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Av_, [0], _axu_, _axt_); - } - function _awt_(param){ - function _awW_(param){ - var - _axl_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _axm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$11), - _axn_ = caml_call2(Runtime_ocaml_Runtime[104], _axm_, _axl_), - _axo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$11), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _axo_, _axn_), - _axp_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$74), - _axq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$12), - _axr_ = caml_call2(Runtime_ocaml_Runtime[104], _axq_, _axp_), - _axs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$12), - limite = caml_call2(Runtime_ocaml_Runtime[93], _axs_, _axr_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _awX_(param){ - switch(residence[0]){ - case 0: - var _axe_ = 1; break; - case 1: - var _axe_ = 0; break; - case 2: - var _axe_ = 1; break; - case 3: - var _axe_ = 1; break; - case 4: - var _axe_ = 1; break; - case 5: - var _axe_ = 1; break; - case 6: - var _axe_ = 0; break; - case 7: - var _axe_ = 0; break; - default: var _axe_ = 1; - } - var - _axf_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _axg_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _axf_), - _axh_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _axi_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _axh_), - _axj_ = caml_call2(Runtime_ocaml_Runtime[83], _axi_, _axg_), - _axk_ = caml_call2(Runtime_ocaml_Runtime[83], _axj_, _axe_); - return caml_call2(Runtime_ocaml_Runtime[29], _Aw_, _axk_); - } - var - _awY_ = - [0, - function(param){ - function _awZ_(param){ - var - _aw8_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _aw9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$13), - _aw__ = caml_call2(Runtime_ocaml_Runtime[104], _aw9_, _aw8_), - _aw$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$13), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _aw$_, _aw__), - _axa_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$75), - _axb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$14), - _axc_ = caml_call2(Runtime_ocaml_Runtime[104], _axb_, _axa_), - _axd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$14), - limite = caml_call2(Runtime_ocaml_Runtime[93], _axd_, _axc_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _aw0_(param){ - switch(residence[0]){ - case 0: - var _aw1_ = 1; break; - case 1: - var _aw1_ = 0; break; - case 2: - var _aw1_ = 1; break; - case 3: - var _aw1_ = 1; break; - case 4: - var _aw1_ = 1; break; - case 5: - var _aw1_ = 1; break; - case 6: - var _aw1_ = 0; break; - case 7: - var _aw1_ = 0; break; - default: var _aw1_ = 1; - } - var - _aw2_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _aw3_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aw2_), - _aw4_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aw5_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aw4_), - _aw6_ = caml_call2(Runtime_ocaml_Runtime[83], _aw5_, _aw3_), - _aw7_ = caml_call2(Runtime_ocaml_Runtime[83], _aw6_, _aw1_); - return caml_call2(Runtime_ocaml_Runtime[29], _Ax_, _aw7_); - } + function(param) + {function _boQ_(param) + {switch(zone[0]) + {case 0: + var _bo7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$289); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bo7_)) + var + _bo8_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_208500$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_251500$0); + else + var + _bo9_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$204), + _bo__= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bo9_), + _bo$_=caml_call1(Runtime_ocaml_Runtime[69],_bo__), + _bpa_=caml_call1(Runtime_ocaml_Runtime[31],cst_43000$0), + _bpb_=caml_call2(Runtime_ocaml_Runtime[104],_bpa_,_bo$_), + _bpc_=caml_call1(Runtime_ocaml_Runtime[31],cst_294500$0), + _bo8_=caml_call2(Runtime_ocaml_Runtime[93],_bpc_,_bpb_); + break; + case 1: + var _bpd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$290); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpd_)) + var + _bo8_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_186000$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_223900$0); + else + var + _bpe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$205), + _bpf_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpe_), + _bpg_=caml_call1(Runtime_ocaml_Runtime[69],_bpf_), + _bph_=caml_call1(Runtime_ocaml_Runtime[31],cst_37900$0), + _bpi_=caml_call2(Runtime_ocaml_Runtime[104],_bph_,_bpg_), + _bpj_=caml_call1(Runtime_ocaml_Runtime[31],cst_261800$0), + _bo8_=caml_call2(Runtime_ocaml_Runtime[93],_bpj_,_bpi_); + break; + default: + var _bpk_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$291); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpk_)) + var + _bo8_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_173600$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_208200$0); + else + var + _bpl_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$206), + _bpm_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpl_), + _bpn_=caml_call1(Runtime_ocaml_Runtime[69],_bpm_), + _bpo_=caml_call1(Runtime_ocaml_Runtime[31],cst_34600), + _bpp_=caml_call2(Runtime_ocaml_Runtime[104],_bpo_,_bpn_), + _bpq_=caml_call1(Runtime_ocaml_Runtime[31],cst_242800$0), + _bo8_=caml_call2(Runtime_ocaml_Runtime[93],_bpq_,_bpp_)} + return caml_call2 + (Runtime_ocaml_Runtime[104],_bo8_,taux_francs_vers_euros)} + function _boR_(param) + {switch(type_pret[0]) + {case 0:var _boS_=0;break; + case 1:var _boS_=1;break; + case 2:var _boS_=0;break; + case 3:var _boS_=0;break; + default:var _boS_=0} + var + _boT_=0 === anciennete_logement[0]?1:0, + _boU_=caml_call2(Runtime_ocaml_Runtime[83],_boT_,_boS_), + _boV_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), + _boW_= + caml_call2 + (Runtime_ocaml_Runtime[115],date_signature_pret,_boV_), + _boX_=caml_call2(Runtime_ocaml_Runtime[83],_boW_,_boU_), + _boY_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), + _boZ_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_boY_), + _bo0_=caml_call2(Runtime_ocaml_Runtime[83],_boZ_,_boX_), + _bo1_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bo2_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bo1_), + _bo3_=caml_call2(Runtime_ocaml_Runtime[83],_bo2_,_bo0_), + _bo4_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bo5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bo4_), + _bo6_=caml_call2(Runtime_ocaml_Runtime[83],_bo5_,_bo3_); + return caml_call2(Runtime_ocaml_Runtime[29],_Bo_,_bo6_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _Ay_, [0], _aw0_, _awZ_); - }]; + (Runtime_ocaml_Runtime[63],_Bp_,[0],_boR_,_boQ_)}, + _boO_, + _boN_, + _boM_, + _boL_, + _boK_, + _boJ_, + _boI_, + _boH_, + _boG_, + _boF_, + _boE_, + _boD_, + _boC_, + _boB_, + _boA_, + _boz_, + _boy_, + _box_, + _bow_, + _bov_, + _bou_, + _bot_, + _bos_, + _bor_, + _boq_, + _bop_, + _boo_, + _bon_, + _bom_, + _bol_, + _bok_, + _boj_, + _boi_, + _boh_, + _bog_, + _bof_, + _boe_]; return caml_call4 - (Runtime_ocaml_Runtime[63], _Az_, _awY_, _awX_, _awW_); - } - function _awu_(param){ - function _awF_(param){ - var - _awO_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _awP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$8), - _awQ_ = caml_call2(Runtime_ocaml_Runtime[104], _awP_, _awO_), - _awR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$8), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _awR_, _awQ_), - _awS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$76), - _awT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$9), - _awU_ = caml_call2(Runtime_ocaml_Runtime[104], _awT_, _awS_), - _awV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$9), - limite = caml_call2(Runtime_ocaml_Runtime[93], _awV_, _awU_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _awG_(param){ - switch(residence[0]){ - case 0: - var _awH_ = 1; break; - case 1: - var _awH_ = 0; break; - case 2: - var _awH_ = 1; break; - case 3: - var _awH_ = 1; break; - case 4: - var _awH_ = 1; break; - case 5: - var _awH_ = 1; break; - case 6: - var _awH_ = 0; break; - case 7: - var _awH_ = 0; break; - default: var _awH_ = 1; - } - var - _awI_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _awJ_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _awI_), - _awK_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _awL_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _awK_), - _awM_ = caml_call2(Runtime_ocaml_Runtime[83], _awL_, _awJ_), - _awN_ = caml_call2(Runtime_ocaml_Runtime[83], _awM_, _awH_); - return caml_call2(Runtime_ocaml_Runtime[29], _AA_, _awN_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _AB_, [0], _awG_, _awF_); - } - var - _awv_ = - [0, - function(param){ - function _aww_(param){ - var - _awC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$10), - _awD_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _awC_, - multiplicateur_majoration_char), - _awE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$10); - return caml_call2(Runtime_ocaml_Runtime[93], _awE_, _awD_); - } - function _awx_(param){ - switch(residence[0]){ - case 0: - var _awy_ = 1; break; - case 1: - var _awy_ = 0; break; - case 2: - var _awy_ = 1; break; - case 3: - var _awy_ = 1; break; - case 4: - var _awy_ = 1; break; - case 5: - var _awy_ = 1; break; - case 6: - var _awy_ = 0; break; - case 7: - var _awy_ = 0; break; - default: var _awy_ = 1; - } - var - _awz_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _awA_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _awz_), - _awB_ = caml_call2(Runtime_ocaml_Runtime[83], _awA_, _awy_); - return caml_call2(Runtime_ocaml_Runtime[29], _AC_, _awB_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _AD_, [0], _awx_, _aww_); - }, - _awu_, - _awt_, - _aws_, - _awr_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _AE_, _awv_, _awq_, _awp_); - } - function _auM_(param){return 1;} + (Runtime_ocaml_Runtime[63],_Bq_,_boP_,_bod_,_boc_)} + function _bnM_(param){return 1} var - _auN_ = - [0, - function(param){ - function _auO_(param){ - throw caml_maybe_attach_backtrace - (Runtime_ocaml_Runtime[2], 1); - } - function _auP_(param){return 0;} - function _auQ_(param){ - function _av__(param){ - var - _awh_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _awi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$7), - _awj_ = caml_call2(Runtime_ocaml_Runtime[104], _awi_, _awh_), - _awk_ = + _bnN_= + [0, + function(param) + {function _bnO_(param) + {var _bn6_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$292); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bn6_)) + var + _bn7_= 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858$1) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$8), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _awk_, _awj_), - _awl_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$77), - _awm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$8), - _awn_ = caml_call2(Runtime_ocaml_Runtime[104], _awm_, _awl_), - _awo_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858$2) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$7), - limite = caml_call2(Runtime_ocaml_Runtime[93], _awo_, _awn_); + ?caml_call1(Runtime_ocaml_Runtime[31],cst_86900) + :caml_call1(Runtime_ocaml_Runtime[31],cst_97100); + else + var + _bn8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$207), + _bn9_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bn8_), + _bn__=caml_call1(Runtime_ocaml_Runtime[69],_bn9_), + _bn$_=caml_call1(Runtime_ocaml_Runtime[31],cst_10200), + _boa_=caml_call2(Runtime_ocaml_Runtime[104],_bn$_,_bn__), + _bob_=caml_call1(Runtime_ocaml_Runtime[31],cst_107300), + _bn7_=caml_call2(Runtime_ocaml_Runtime[93],_bob_,_boa_); return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _av$_(param){ - switch(residence[0]){ - case 0: - var _awa_ = 1; break; - case 1: - var _awa_ = 0; break; - case 2: - var _awa_ = 1; break; - case 3: - var _awa_ = 1; break; - case 4: - var _awa_ = 1; break; - case 5: - var _awa_ = 1; break; - case 6: - var _awa_ = 0; break; - case 7: - var _awa_ = 0; break; - default: var _awa_ = 1; - } + (Runtime_ocaml_Runtime[104],_bn7_,taux_francs_vers_euros)} + function _bnP_(param) + {switch(type_pret[0]) + {case 0:var _bnQ_=0;break; + case 1:var _bnQ_=1;break; + case 2:var _bnQ_=0;break; + case 3:var _bnQ_=0;break; + default:var _bnQ_=0} + if(0 === anciennete_logement[0]) + var _bnR_=0; + else + var + ameliore_par_occupant=anciennete_logement[1], + _bn5_=0 === ameliore_par_occupant[0]?1:0, + _bnR_=_bn5_; var - _awb_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _awc_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _awb_), - _awd_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _awe_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _awd_), - _awf_ = caml_call2(Runtime_ocaml_Runtime[83], _awe_, _awc_), - _awg_ = caml_call2(Runtime_ocaml_Runtime[83], _awf_, _awa_); - return caml_call2(Runtime_ocaml_Runtime[29], _AF_, _awg_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _AG_, [0], _av$_, _av__); - } - function _auR_(param){ - function _avT_(param){ - var - _av2_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _av3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$7), - _av4_ = caml_call2(Runtime_ocaml_Runtime[104], _av3_, _av2_), - _av5_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864$1) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$8), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _av5_, _av4_), - _av6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$78), - _av7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$8), - _av8_ = caml_call2(Runtime_ocaml_Runtime[104], _av7_, _av6_), - _av9_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864$2) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$7), - limite = caml_call2(Runtime_ocaml_Runtime[93], _av9_, _av8_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _avU_(param){ - switch(residence[0]){ - case 0: - var _avV_ = 1; break; - case 1: - var _avV_ = 0; break; - case 2: - var _avV_ = 1; break; - case 3: - var _avV_ = 1; break; - case 4: - var _avV_ = 1; break; - case 5: - var _avV_ = 1; break; - case 6: - var _avV_ = 0; break; - case 7: - var _avV_ = 0; break; - default: var _avV_ = 1; - } - var - _avW_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _avX_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _avW_), - _avY_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _avZ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _avY_), - _av0_ = caml_call2(Runtime_ocaml_Runtime[83], _avZ_, _avX_), - _av1_ = caml_call2(Runtime_ocaml_Runtime[83], _av0_, _avV_); - return caml_call2(Runtime_ocaml_Runtime[29], _AH_, _av1_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _AI_, [0], _avU_, _avT_); - } - function _auS_(param){ - function _avk_(param){ - var - _avL_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _avM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$15), - _avN_ = caml_call2(Runtime_ocaml_Runtime[104], _avM_, _avL_), - _avO_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$3) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$16), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _avO_, _avN_), - _avP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$79), - _avQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$16), - _avR_ = caml_call2(Runtime_ocaml_Runtime[104], _avQ_, _avP_), - _avS_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$4) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$15), - limite = caml_call2(Runtime_ocaml_Runtime[93], _avS_, _avR_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _avl_(param){ - switch(residence[0]){ - case 0: - var _avE_ = 1; break; - case 1: - var _avE_ = 0; break; - case 2: - var _avE_ = 1; break; - case 3: - var _avE_ = 1; break; - case 4: - var _avE_ = 1; break; - case 5: - var _avE_ = 1; break; - case 6: - var _avE_ = 0; break; - case 7: - var _avE_ = 0; break; - default: var _avE_ = 1; - } - var - _avF_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _avG_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _avF_), - _avH_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _avI_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _avH_), - _avJ_ = caml_call2(Runtime_ocaml_Runtime[83], _avI_, _avG_), - _avK_ = caml_call2(Runtime_ocaml_Runtime[83], _avJ_, _avE_); - return caml_call2(Runtime_ocaml_Runtime[29], _AJ_, _avK_); - } - var - _avm_ = - [0, - function(param){ - function _avn_(param){ - var - _avw_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _avx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$17), - _avy_ = caml_call2(Runtime_ocaml_Runtime[104], _avx_, _avw_), - _avz_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$5) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$18), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _avz_, _avy_), - _avA_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$80), - _avB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$18), - _avC_ = caml_call2(Runtime_ocaml_Runtime[104], _avB_, _avA_), - _avD_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$6) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$17), - limite = caml_call2(Runtime_ocaml_Runtime[93], _avD_, _avC_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _avo_(param){ - switch(residence[0]){ - case 0: - var _avp_ = 1; break; - case 1: - var _avp_ = 0; break; - case 2: - var _avp_ = 1; break; - case 3: - var _avp_ = 1; break; - case 4: - var _avp_ = 1; break; - case 5: - var _avp_ = 1; break; - case 6: - var _avp_ = 0; break; - case 7: - var _avp_ = 0; break; - default: var _avp_ = 1; - } - var - _avq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _avr_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _avq_), - _avs_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _avt_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _avs_), - _avu_ = caml_call2(Runtime_ocaml_Runtime[83], _avt_, _avr_), - _avv_ = caml_call2(Runtime_ocaml_Runtime[83], _avu_, _avp_); - return caml_call2(Runtime_ocaml_Runtime[29], _AK_, _avv_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _AL_, [0], _avo_, _avn_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _AM_, _avm_, _avl_, _avk_); - } - function _auT_(param){ - function _au5_(param){ - var - _avc_ = - caml_call1 - (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), - _avd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$11), - _ave_ = caml_call2(Runtime_ocaml_Runtime[104], _avd_, _avc_), - _avf_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$2) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$12), - montant = - caml_call2(Runtime_ocaml_Runtime[93], _avf_, _ave_), - _avg_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$81), - _avh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$12), - _avi_ = caml_call2(Runtime_ocaml_Runtime[104], _avh_, _avg_), - _avj_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$3) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$11), - limite = caml_call2(Runtime_ocaml_Runtime[93], _avj_, _avi_); - return caml_call2 - (Runtime_ocaml_Runtime[123], montant, limite) - ? limite - : montant; - } - function _au6_(param){ - switch(residence[0]){ - case 0: - var _au7_ = 1; break; - case 1: - var _au7_ = 0; break; - case 2: - var _au7_ = 1; break; - case 3: - var _au7_ = 1; break; - case 4: - var _au7_ = 1; break; - case 5: - var _au7_ = 1; break; - case 6: - var _au7_ = 0; break; - case 7: - var _au7_ = 0; break; - default: var _au7_ = 1; - } - var - _au8_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _au9_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _au8_), - _au__ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _au$_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _au__), - _ava_ = caml_call2(Runtime_ocaml_Runtime[83], _au$_, _au9_), - _avb_ = caml_call2(Runtime_ocaml_Runtime[83], _ava_, _au7_); - return caml_call2(Runtime_ocaml_Runtime[29], _AN_, _avb_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _AO_, [0], _au6_, _au5_); - } - var - _auU_ = - [0, - function(param){ - function _auV_(param){ - var - _au2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$13), - _au3_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - _au2_, - multiplicateur_majoration_char), - _au4_ = - 0 === situation_familiale_calcul_apl[0] - ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$4) - : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$13); - return caml_call2(Runtime_ocaml_Runtime[93], _au4_, _au3_); - } - function _auW_(param){ - switch(residence[0]){ - case 0: - var _auX_ = 1; break; - case 1: - var _auX_ = 0; break; - case 2: - var _auX_ = 1; break; - case 3: - var _auX_ = 1; break; - case 4: - var _auX_ = 1; break; - case 5: - var _auX_ = 1; break; - case 6: - var _auX_ = 0; break; - case 7: - var _auX_ = 0; break; - default: var _auX_ = 1; - } - var - _auY_ = - caml_call2(Runtime_ocaml_Runtime[83], _auX_, copropriete), - _auZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _au0_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _auZ_), - _au1_ = caml_call2(Runtime_ocaml_Runtime[83], _au0_, _auY_); - return caml_call2(Runtime_ocaml_Runtime[29], _AP_, _au1_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _AQ_, [0], _auW_, _auV_); - }, - _auT_, - _auS_, - _auR_, - _auQ_]; + _bnS_=caml_call2(Runtime_ocaml_Runtime[83],_bnR_,_bnQ_), + _bnT_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), + _bnU_= + caml_call2 + (Runtime_ocaml_Runtime[120],date_signature_pret,_bnT_), + _bnV_=caml_call2(Runtime_ocaml_Runtime[83],_bnU_,_bnS_), + _bnW_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), + _bnX_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bnW_), + _bnY_=caml_call2(Runtime_ocaml_Runtime[83],_bnX_,_bnV_), + _bnZ_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _bn0_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bnZ_), + _bn1_=caml_call2(Runtime_ocaml_Runtime[83],_bn0_,_bnY_), + _bn2_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bn3_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bn2_), + _bn4_=caml_call2(Runtime_ocaml_Runtime[83],_bn3_,_bn1_); + return caml_call2(Runtime_ocaml_Runtime[29],_Br_,_bn4_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _AR_, _auU_, _auP_, _auO_); - }]; + (Runtime_ocaml_Runtime[63],_Bs_,[0],_bnP_,_bnO_)}]; return caml_call4 - (Runtime_ocaml_Runtime[63], _AS_, _auN_, _auM_, _auL_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _AT_, _auK_, _auJ_, _auI_); - }], - _aox_ = caml_call4(Runtime_ocaml_Runtime[63], _AU_, _aow_, _aov_, _aou_); - } - catch(_auH_){ - var _aot_ = caml_wrap_exception(_auH_); - if(_aot_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ad_], 1); - throw caml_maybe_attach_backtrace(_aot_, 0); - } - var - montant_forfaitaire_charges = - caml_call3 - (Runtime_ocaml_Runtime[28], _AV_, Runtime_ocaml_Runtime[13], _aox_); - try{ - var - _aoz_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _aoA_ = function(param){return 0;}, - _aoB_ = - function(param){ - function _auB_(param){return montant_forfaitaire_d842_12;} - function _auC_(param){ - switch(type_travaux_logement[0]){ - case 0: - var _auD_ = 0; break; - case 1: - var _auD_ = 1; break; - case 2: - var _auD_ = 0; break; - default: var _auD_ = 0; - } - var - _auE_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 9, 30), - _auF_ = - caml_call2 - (Runtime_ocaml_Runtime[125], date_signature_pret, _auE_), - _auG_ = caml_call2(Runtime_ocaml_Runtime[83], _auF_, _auD_); - return caml_call2(Runtime_ocaml_Runtime[29], _AX_, _auG_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _AY_, [0], _auC_, _auB_); - }, - _aoC_ = - [0, - function(param){ - function _aul_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[104], - mensualite_principale, - coefficient_d842_12); - } - function _aum_(param){ - switch(type_travaux_logement[0]){ - case 0: - var _aun_ = 0; break; - case 1: - var _aun_ = 0; break; - case 2: - var _aun_ = 1; break; - default: var _aun_ = 0; - } - switch(type_travaux_logement[0]){ - case 0: - var _auo_ = 1; break; - case 1: - var _auo_ = 0; break; - case 2: - var _auo_ = 0; break; - default: var _auo_ = 0; - } - var _aup_ = caml_call2(Runtime_ocaml_Runtime[84], _auo_, _aun_); - switch(type_travaux_logement[0]){ - case 0: - var _auq_ = 0; break; - case 1: - var _auq_ = 0; break; - case 2: - var _auq_ = 0; break; - default: var _auq_ = 1; - } - var - _aur_ = caml_call2(Runtime_ocaml_Runtime[84], _auq_, _aup_), - _aus_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 9, 30), - _aut_ = + (Runtime_ocaml_Runtime[63],_Bt_,_bnN_,_bnM_,_bnL_)}, + _bnH_], + _bnJ_=caml_call4(Runtime_ocaml_Runtime[63],_Bu_,_bnI_,_bnG_,_bnF_); + return _bnJ_} + catch(_bnK_) + {_bnK_ = caml_wrap_exception(_bnK_); + if(_bnK_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_z5_]; + throw _bnK_}} + var + calcul_plafond_mensualite_d832= + caml_call3 + (Runtime_ocaml_Runtime[28],_Bv_,Runtime_ocaml_Runtime[10],_bky_); + try + {var + _bkz_=function(param){return calcul_nombre_parts_dot_n_nomb}, + _bkA_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Bx_,1)}, + _bkB_=caml_call4(Runtime_ocaml_Runtime[63],_By_,[0],_bkA_,_bkz_)} + catch(_bnE_) + {_bnE_ = caml_wrap_exception(_bnE_); + if(_bnE_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Bw_]; + throw _bnE_} + var + n_nombre_parts_d832_11= + caml_call3 + (Runtime_ocaml_Runtime[28],_Bz_,Runtime_ocaml_Runtime[15],_bkB_); + try + {var + _bkC_= + function(param) + {var + _bnD_= caml_call2 - (Runtime_ocaml_Runtime[125], date_signature_pret, _aus_), - _auu_ = caml_call2(Runtime_ocaml_Runtime[83], _aut_, _aur_), - _auv_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 9, 30), - _auw_ = - caml_call2 - (Runtime_ocaml_Runtime[120], date_signature_pret, _auv_), - _aux_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 9, 30), - _auy_ = - caml_call2 - (Runtime_ocaml_Runtime[130], date_signature_pret, _aux_), - _auz_ = caml_call2(Runtime_ocaml_Runtime[83], _auy_, _auw_), - _auA_ = caml_call2(Runtime_ocaml_Runtime[84], _auz_, _auu_); - return caml_call2(Runtime_ocaml_Runtime[29], _AZ_, _auA_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _A0_, [0], _aum_, _aul_); - }, - _aoB_], - _aoD_ = caml_call4(Runtime_ocaml_Runtime[63], _A1_, _aoC_, _aoA_, _aoz_); - } - catch(_auk_){ - var _aoy_ = caml_wrap_exception(_auk_); - if(_aoy_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _AW_], 1); - throw caml_maybe_attach_backtrace(_aoy_, 0); - } - var - seuil_minimal_ressources_menag = - caml_call3 - (Runtime_ocaml_Runtime[28], _A2_, Runtime_ocaml_Runtime[13], _aoD_); - function _aoE_(aide_finale){ - try{ + (Runtime_ocaml_Runtime[104], + mensualite_principale, + coefficient_multiplicateur_d83); + return caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage_arrondies, + _bnD_) + ?caml_call2 + (Runtime_ocaml_Runtime[104], + mensualite_principale, + coefficient_multiplicateur_d83) + :ressources_menage_arrondies}, + _bkD_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_BB_,1)}, + _bkE_= + [0, + function(param) + {function _bnB_(param){return ressources_menage_arrondies} + function _bnC_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_BC_,situation_r822_11_13_17)} + return caml_call4(Runtime_ocaml_Runtime[63],_BD_,[0],_bnC_,_bnB_)}], + _bkF_=caml_call4(Runtime_ocaml_Runtime[63],_BE_,_bkE_,_bkD_,_bkC_)} + catch(_bnA_) + {_bnA_ = caml_wrap_exception(_bnA_); + if(_bnA_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_BA_]; + throw _bnA_} var - _aue_ = - function(param){ - var - _aui_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$327), - _auj_ = - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_6); - return caml_call2(Runtime_ocaml_Runtime[113], _auj_, _aui_) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$328) - : caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_6); - }, - _auf_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _A4_, 1); - }, - _aug_ = caml_call4(Runtime_ocaml_Runtime[63], _A5_, [0], _auf_, _aue_); - return _aug_; - } - catch(_auh_){ - var _aud_ = caml_wrap_exception(_auh_); - if(_aud_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _A3_], 1); - throw caml_maybe_attach_backtrace(_aud_, 0); - } - } - var - traitement_aide_finale_minorat = - caml_call3 - (Runtime_ocaml_Runtime[28], _A6_, Runtime_ocaml_Runtime[10], _aoE_); - function _aoF_(date_calcul, nombre_personnes_a_charge){ - try{ + ressources_menage_avec_d832_18= + caml_call3 + (Runtime_ocaml_Runtime[28],_BF_,Runtime_ocaml_Runtime[13],_bkF_); + function _bkG_(aide_finale) + {try + {var + _bnu_= + function(param) + {var + _bny_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$293), + _bnz_= + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_10); + return caml_call2(Runtime_ocaml_Runtime[128],_bnz_,_bny_) + ?caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_10) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$294)}, + _bnv_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_BH_,1)}, + _bnw_=caml_call4(Runtime_ocaml_Runtime[63],_BI_,[0],_bnv_,_bnu_); + return _bnw_} + catch(_bnx_) + {_bnx_ = caml_wrap_exception(_bnx_); + if(_bnx_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_BG_]; + throw _bnx_}} var - _atq_ = - function(param){ - var - _aua_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _A8_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aub_ = - caml_call2 - (calcul_plafond_mensualite_d842, - caml_call3 - (Runtime_ocaml_Runtime[28], - _A9_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aua_), - _auc_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _A__, - Runtime_ocaml_Runtime[13], - _aub_); - return caml_call2(Runtime_ocaml_Runtime[27], _A$_, _auc_); - }, - _atr_ = - function(param){ - var - _at__ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _at$_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _at__); - return caml_call2(Runtime_ocaml_Runtime[29], _Ba_, _at$_); - }, - _ats_ = - [0, - function(param){ - function _atv_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _atw_(param){return 0;} - var - _atx_ = - [0, - function(param){ - function _aty_(param){ - var - _at5_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$11), - _at6_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bb_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _at7_ = - caml_call2 - (calcul_plafond_mensualite_d842, - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bc_, - Runtime_ocaml_Runtime[16], - date_calcul), - _at6_), - _at8_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bd_, - Runtime_ocaml_Runtime[13], - _at7_), - _at9_ = caml_call2(Runtime_ocaml_Runtime[27], _Be_, _at8_); - return caml_call2(Runtime_ocaml_Runtime[104], _at9_, _at5_); - } - function _atz_(param){ - var - _at2_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _at3_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _at2_), - _at4_ = - caml_call2(Runtime_ocaml_Runtime[83], _at3_, copropriete); - return caml_call2(Runtime_ocaml_Runtime[29], _Bf_, _at4_); - } - var - _atA_ = - [0, - function(param){ - function _atB_(param){ - var - _atX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$12), - _atY_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bg_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _atZ_ = - caml_call2 - (calcul_plafond_mensualite_d842, - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bh_, - Runtime_ocaml_Runtime[16], - date_calcul), - _atY_), - _at0_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bi_, - Runtime_ocaml_Runtime[13], - _atZ_), - _at1_ = caml_call2(Runtime_ocaml_Runtime[27], _Bj_, _at0_); - return caml_call2(Runtime_ocaml_Runtime[104], _at1_, _atX_); - } - function _atC_(param){ - var - _atR_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _atS_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _atR_), - _atT_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _atU_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _atT_), - _atV_ = caml_call2(Runtime_ocaml_Runtime[83], _atU_, _atS_), - _atW_ = - caml_call2(Runtime_ocaml_Runtime[83], _atV_, copropriete); - return caml_call2(Runtime_ocaml_Runtime[29], _Bk_, _atW_); - } - var - _atD_ = - [0, - function(param){ - function _atE_(param){ - var - _atM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$13), - _atN_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bl_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _atO_ = - caml_call2 - (calcul_plafond_mensualite_d842, - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bm_, - Runtime_ocaml_Runtime[16], - date_calcul), - _atN_), - _atP_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bn_, - Runtime_ocaml_Runtime[13], - _atO_), - _atQ_ = caml_call2(Runtime_ocaml_Runtime[27], _Bo_, _atP_); - return caml_call2(Runtime_ocaml_Runtime[104], _atQ_, _atM_); - } - function _atF_(param){ - var - _atG_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _atH_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _atG_), - _atI_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _atJ_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _atI_), - _atK_ = caml_call2(Runtime_ocaml_Runtime[83], _atJ_, _atH_), - _atL_ = - caml_call2(Runtime_ocaml_Runtime[83], _atK_, copropriete); - return caml_call2(Runtime_ocaml_Runtime[29], _Bp_, _atL_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Bq_, [0], _atF_, _atE_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Br_, _atD_, _atC_, _atB_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Bs_, _atA_, _atz_, _aty_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Bt_, _atx_, _atw_, _atv_); - }], - _att_ = - caml_call4(Runtime_ocaml_Runtime[63], _Bu_, _ats_, _atr_, _atq_); - return _att_; - } - catch(_atu_){ - var _atp_ = caml_wrap_exception(_atu_); - if(_atp_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _A7_], 1); - throw caml_maybe_attach_backtrace(_atp_, 0); - } - } - var - calcul_plafond_mensualite_d842$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Bv_, Runtime_ocaml_Runtime[10], _aoF_); - function _aoG_(allocation_mensuelle){ - try{ - var - _atk_ = - function(param){ - var - _ato_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - charges_mensuelles_pret, - montant_forfaitaire_charges); - return caml_call2 - (Runtime_ocaml_Runtime[98], _ato_, allocation_mensuelle); - }, - _atl_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Bx_, 1); - }, - _atm_ = caml_call4(Runtime_ocaml_Runtime[63], _By_, [0], _atl_, _atk_); - return _atm_; - } - catch(_atn_){ - var _atj_ = caml_wrap_exception(_atn_); - if(_atj_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Bw_], 1); - throw caml_maybe_attach_backtrace(_atj_, 0); - } - } - var - depense_nette_minimale = - caml_call3 - (Runtime_ocaml_Runtime[28], _Bz_, Runtime_ocaml_Runtime[10], _aoG_); - try{ - var - _aoI_ = - function(param){ - if - (! - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage_arrondies_ba, - seuil_minimal_ressources_menag)) - return ressources_menage_arrondies_ba; - var - _atd_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$12), - _ate_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_01$0), - _atf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4999), - _atg_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - seuil_minimal_ressources_menag, - _atf_), - _ath_ = caml_call2(Runtime_ocaml_Runtime[104], _atg_, _ate_), - _ati_ = caml_call1(Runtime_ocaml_Runtime[77], _ath_); - return caml_call2(Runtime_ocaml_Runtime[104], _ati_, _atd_); - }, - _aoJ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _BB_, 1); - }, - _aoK_ = - [0, - function(param){ - function _atb_(param){return ressources_menage_arrondies_ba;} - function _atc_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _BC_, situation_r822_11_13_17); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _BD_, [0], _atc_, _atb_); - }], - _aoL_ = caml_call4(Runtime_ocaml_Runtime[63], _BE_, _aoK_, _aoJ_, _aoI_); - } - catch(_ata_){ - var _aoH_ = caml_wrap_exception(_ata_); - if(_aoH_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _BA_], 1); - throw caml_maybe_attach_backtrace(_aoH_, 0); - } - var - ressources_menage_arrondies_se = - caml_call3 - (Runtime_ocaml_Runtime[28], _BF_, Runtime_ocaml_Runtime[13], _aoL_); - function _aoM_(date_calcul, nombre_personnes_a_charge){ - try{ - var - _arF_ = - function(param){ - var - _as9_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _BH_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _as__ = - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _BI_, - Runtime_ocaml_Runtime[16], - date_calcul), - _as9_), - _as$_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _BJ_, - Runtime_ocaml_Runtime[13], - _as__); - return caml_call2(Runtime_ocaml_Runtime[27], _BK_, _as$_); - }, - _arG_ = - function(param){ - var - _as7_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _as8_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _as7_); - return caml_call2(Runtime_ocaml_Runtime[29], _BL_, _as8_); - }, - _arH_ = - [0, - function(param){ - function _arK_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _arL_(param){return 0;} - var - _arM_ = - [0, - function(param){ - function _arN_(param){ - var - _as3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$82), - _as4_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _BM_, - Runtime_ocaml_Runtime[14], - _as3_), - _as5_ = - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _BN_, - Runtime_ocaml_Runtime[16], - date_calcul), - _as4_), - _as6_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _BO_, - Runtime_ocaml_Runtime[13], - _as5_); - return caml_call2(Runtime_ocaml_Runtime[27], _BP_, _as6_); - } - function _arO_(param){ - switch(residence[0]){ - case 0: - var _asT_ = 1; break; - case 1: - var _asT_ = 0; break; - case 2: - var _asT_ = 1; break; - case 3: - var _asT_ = 1; break; - case 4: - var _asT_ = 1; break; - case 5: - var _asT_ = 1; break; - case 6: - var _asT_ = 0; break; - case 7: - var _asT_ = 0; break; - default: var _asT_ = 1; - } - var - _asU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$83), - _asV_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _asU_), - _asW_ = caml_call2(Runtime_ocaml_Runtime[83], _asV_, _asT_), - _asX_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _asY_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _asX_), - _asZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _as0_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _asZ_), - _as1_ = caml_call2(Runtime_ocaml_Runtime[83], _as0_, _asY_), - _as2_ = caml_call2(Runtime_ocaml_Runtime[83], _as1_, _asW_); - return caml_call2(Runtime_ocaml_Runtime[29], _BQ_, _as2_); - } - var - _arP_ = - [0, - function(param){ - function _arQ_(param){ - var - _asP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$84), - _asQ_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _BR_, - Runtime_ocaml_Runtime[14], - _asP_), - _asR_ = - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _BS_, - Runtime_ocaml_Runtime[16], - date_calcul), - _asQ_), - _asS_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _BT_, - Runtime_ocaml_Runtime[13], - _asR_); - return caml_call2(Runtime_ocaml_Runtime[27], _BU_, _asS_); - } - function _arR_(param){ - switch(residence[0]){ - case 0: - var _asF_ = 1; break; - case 1: - var _asF_ = 0; break; - case 2: - var _asF_ = 1; break; - case 3: - var _asF_ = 1; break; - case 4: - var _asF_ = 1; break; - case 5: - var _asF_ = 1; break; - case 6: - var _asF_ = 0; break; - case 7: - var _asF_ = 0; break; - default: var _asF_ = 1; - } - var - _asG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$85), - _asH_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _asG_), - _asI_ = caml_call2(Runtime_ocaml_Runtime[83], _asH_, _asF_), - _asJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), - _asK_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _asJ_), - _asL_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _asM_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _asL_), - _asN_ = caml_call2(Runtime_ocaml_Runtime[83], _asM_, _asK_), - _asO_ = caml_call2(Runtime_ocaml_Runtime[83], _asN_, _asI_); - return caml_call2(Runtime_ocaml_Runtime[29], _BV_, _asO_); - } - var - _arS_ = - [0, - function(param){ - function _arT_(param){ - var - _asB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$86), - _asC_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _BW_, - Runtime_ocaml_Runtime[14], - _asB_), - _asD_ = - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _BX_, - Runtime_ocaml_Runtime[16], - date_calcul), - _asC_), - _asE_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _BY_, - Runtime_ocaml_Runtime[13], - _asD_); - return caml_call2(Runtime_ocaml_Runtime[27], _BZ_, _asE_); - } - function _arU_(param){ - switch(residence[0]){ - case 0: - var _asr_ = 1; break; - case 1: - var _asr_ = 0; break; - case 2: - var _asr_ = 1; break; - case 3: - var _asr_ = 1; break; - case 4: - var _asr_ = 1; break; - case 5: - var _asr_ = 1; break; - case 6: - var _asr_ = 0; break; - case 7: - var _asr_ = 0; break; - default: var _asr_ = 1; - } - var - _ass_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$87), - _ast_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _ass_), - _asu_ = caml_call2(Runtime_ocaml_Runtime[83], _ast_, _asr_), - _asv_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _asw_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _asv_), - _asx_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _asy_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _asx_), - _asz_ = caml_call2(Runtime_ocaml_Runtime[83], _asy_, _asw_), - _asA_ = caml_call2(Runtime_ocaml_Runtime[83], _asz_, _asu_); - return caml_call2(Runtime_ocaml_Runtime[29], _B0_, _asA_); - } - var - _arV_ = - [0, - function(param){ - function _arW_(param){ - var - _asn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$88), - _aso_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _B1_, - Runtime_ocaml_Runtime[14], - _asn_), - _asp_ = - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _B2_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aso_), - _asq_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _B3_, - Runtime_ocaml_Runtime[13], - _asp_); - return caml_call2(Runtime_ocaml_Runtime[27], _B4_, _asq_); - } - function _arX_(param){ - switch(residence[0]){ - case 0: - var _asd_ = 1; break; - case 1: - var _asd_ = 0; break; - case 2: - var _asd_ = 1; break; - case 3: - var _asd_ = 1; break; - case 4: - var _asd_ = 1; break; - case 5: - var _asd_ = 1; break; - case 6: - var _asd_ = 0; break; - case 7: - var _asd_ = 0; break; - default: var _asd_ = 1; - } - var - _ase_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$89), - _asf_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _ase_), - _asg_ = caml_call2(Runtime_ocaml_Runtime[83], _asf_, _asd_), - _ash_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _asi_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ash_), - _asj_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _ask_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _asj_), - _asl_ = caml_call2(Runtime_ocaml_Runtime[83], _ask_, _asi_), - _asm_ = caml_call2(Runtime_ocaml_Runtime[83], _asl_, _asg_); - return caml_call2(Runtime_ocaml_Runtime[29], _B5_, _asm_); - } - var - _arY_ = - [0, - function(param){ - function _arZ_(param){ - var - _ar$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$90), - _asa_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _B6_, - Runtime_ocaml_Runtime[14], - _ar$_), - _asb_ = - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _B7_, - Runtime_ocaml_Runtime[16], - date_calcul), - _asa_), - _asc_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _B8_, - Runtime_ocaml_Runtime[13], - _asb_); - return caml_call2(Runtime_ocaml_Runtime[27], _B9_, _asc_); - } - function _ar0_(param){ - switch(residence[0]){ - case 0: - var _ar1_ = 1; break; - case 1: - var _ar1_ = 0; break; - case 2: - var _ar1_ = 1; break; - case 3: - var _ar1_ = 1; break; - case 4: - var _ar1_ = 1; break; - case 5: - var _ar1_ = 1; break; - case 6: - var _ar1_ = 0; break; - case 7: - var _ar1_ = 0; break; - default: var _ar1_ = 1; - } - var - _ar2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$91), - _ar3_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_a_charge, - _ar2_), - _ar4_ = caml_call2(Runtime_ocaml_Runtime[83], _ar3_, _ar1_), - _ar5_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), - _ar6_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ar5_), - _ar7_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _ar8_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ar7_), - _ar9_ = caml_call2(Runtime_ocaml_Runtime[83], _ar8_, _ar6_), - _ar__ = caml_call2(Runtime_ocaml_Runtime[83], _ar9_, _ar4_); - return caml_call2(Runtime_ocaml_Runtime[29], _B__, _ar__); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _B$_, [0], _ar0_, _arZ_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ca_, _arY_, _arX_, _arW_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Cb_, _arV_, _arU_, _arT_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Cc_, _arS_, _arR_, _arQ_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Cd_, _arP_, _arO_, _arN_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ce_, _arM_, _arL_, _arK_); - }], - _arI_ = - caml_call4(Runtime_ocaml_Runtime[63], _Cf_, _arH_, _arG_, _arF_); - return _arI_; - } - catch(_arJ_){ - var _arE_ = caml_wrap_exception(_arJ_); - if(_arE_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _BG_], 1); - throw caml_maybe_attach_backtrace(_arE_, 0); - } - } - var - calcul_plafond_mensualite_d842$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Cg_, Runtime_ocaml_Runtime[10], _aoM_); - try{ - var - _aoO_ = function(param){return date_courante;}, - _aoP_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ci_, 1); - }, - _aoQ_ = caml_call4(Runtime_ocaml_Runtime[63], _Cj_, [0], _aoP_, _aoO_), - calcul_equivalence_loyer_minim$0 = + traitement_aide_finale_minorat= caml_call3 - (Runtime_ocaml_Runtime[28], _Ck_, Runtime_ocaml_Runtime[16], _aoQ_); - } - catch(_arD_){ - var _aoN_ = caml_wrap_exception(_arD_); - if(_aoN_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ch_], 1); - throw caml_maybe_attach_backtrace(_aoN_, 0); - } - try{ - var - _aoS_ = function(param){return ressources_menage_arrondies_se;}, - _aoT_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Cm_, 1); - }, - _aoU_ = caml_call4(Runtime_ocaml_Runtime[63], _Cn_, [0], _aoT_, _aoS_), - calcul_equivalence_loyer_minim$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Co_, Runtime_ocaml_Runtime[13], _aoU_); - } - catch(_arC_){ - var _aoR_ = caml_wrap_exception(_arC_); - if(_aoR_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Cl_], 1); - throw caml_maybe_attach_backtrace(_aoR_, 0); - } - try{ - var - _aoW_ = function(param){return 1;}, - _aoX_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Cq_, 1); - }, - _aoY_ = caml_call4(Runtime_ocaml_Runtime[63], _Cr_, [0], _aoX_, _aoW_), - calcul_equivalence_loyer_minim$2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Cs_, Runtime_ocaml_Runtime[12], _aoY_); - } - catch(_arB_){ - var _aoV_ = caml_wrap_exception(_arB_); - if(_aoV_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Cp_], 1); - throw caml_maybe_attach_backtrace(_aoV_, 0); - } - try{ - var - _ao0_ = function(param){return calcul_nombre_parts_dot_n_nomb;}, - _ao1_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Cu_, 1); - }, - _ao2_ = caml_call4(Runtime_ocaml_Runtime[63], _Cv_, [0], _ao1_, _ao0_), - calcul_equivalence_loyer_minim$3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Cw_, Runtime_ocaml_Runtime[15], _ao2_); - } - catch(_arA_){ - var _aoZ_ = caml_wrap_exception(_arA_); - if(_aoZ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ct_], 1); - throw caml_maybe_attach_backtrace(_aoZ_, 0); - } - var - _ao3_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _Cx_, calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$1 = caml_call2(Runtime_ocaml_Runtime[27], _Cy_, _ao3_), - calcul_equivalence_loyer_minim$4 = result$1[1]; - try{ - var - _ao5_ = function(param){return _CA_;}, - _ao6_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _CB_, 1); - }, - _ao7_ = caml_call4(Runtime_ocaml_Runtime[63], _CC_, [0], _ao6_, _ao5_), - calcul_apl_logement_foyer_dot_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _CD_, embed_type_logement_foyer, _ao7_); - } - catch(_arz_){ - var _ao4_ = caml_wrap_exception(_arz_); - if(_ao4_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Cz_], 1); - throw caml_maybe_attach_backtrace(_ao4_, 0); - } - try{ - var - _ao9_ = - function(param){ - return caml_call3(Runtime_ocaml_Runtime[57], 1970, 1, 1); - }, - _ao__ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _CF_, 1); - }, - _ao$_ = caml_call4(Runtime_ocaml_Runtime[63], _CG_, [0], _ao__, _ao9_), - calcul_apl_logement_foyer_dot_$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _CH_, Runtime_ocaml_Runtime[16], _ao$_); - } - catch(_ary_){ - var _ao8_ = caml_wrap_exception(_ary_); - if(_ao8_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _CE_], 1); - throw caml_maybe_attach_backtrace(_ao8_, 0); - } - try{ - var - _apb_ = function(param){return ressources_menage_arrondies_se;}, - _apc_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _CJ_, 1); - }, - _apd_ = caml_call4(Runtime_ocaml_Runtime[63], _CK_, [0], _apc_, _apb_), - calcul_apl_logement_foyer_dot_$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _CL_, Runtime_ocaml_Runtime[13], _apd_); - } - catch(_arx_){ - var _apa_ = caml_wrap_exception(_arx_); - if(_apa_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _CI_], 1); - throw caml_maybe_attach_backtrace(_apa_, 0); - } - try{ - var - _apf_ = function(param){return nombre_personnes_a_charge;}, - _apg_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _CN_, 1); - }, - _aph_ = caml_call4(Runtime_ocaml_Runtime[63], _CO_, [0], _apg_, _apf_), - calcul_apl_logement_foyer_dot_$2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _CP_, Runtime_ocaml_Runtime[14], _aph_); - } - catch(_arw_){ - var _ape_ = caml_wrap_exception(_arw_); - if(_ape_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _CM_], 1); - throw caml_maybe_attach_backtrace(_ape_, 0); - } - try{ - var - _apj_ = function(param){return situation_familiale_calcul_apl;}, - _apk_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _CR_, 1); - }, - _apl_ = caml_call4(Runtime_ocaml_Runtime[63], _CS_, [0], _apk_, _apj_), - calcul_apl_logement_foyer_dot_$3 = - caml_call3 - (Runtime_ocaml_Runtime[28], - _CT_, - embed_situation_familiale_calc, - _apl_); - } - catch(_arv_){ - var _api_ = caml_wrap_exception(_arv_); - if(_api_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _CQ_], 1); - throw caml_maybe_attach_backtrace(_api_, 0); - } - try{ - var - _apn_ = function(param){return zone;}, - _apo_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _CV_, 1); - }, - _app_ = caml_call4(Runtime_ocaml_Runtime[63], _CW_, [0], _apo_, _apn_), - calcul_apl_logement_foyer_dot_$4 = - caml_call3 - (Runtime_ocaml_Runtime[28], _CX_, embed_zone_d_habitation, _app_); - } - catch(_aru_){ - var _apm_ = caml_wrap_exception(_aru_); - if(_apm_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _CU_], 1); - throw caml_maybe_attach_backtrace(_apm_, 0); - } - try{ - var - _apr_ = function(param){return date_courante;}, - _aps_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _CZ_, 1); - }, - _apt_ = caml_call4(Runtime_ocaml_Runtime[63], _C0_, [0], _aps_, _apr_), - calcul_apl_logement_foyer_dot_$5 = - caml_call3 - (Runtime_ocaml_Runtime[28], _C1_, Runtime_ocaml_Runtime[16], _apt_); - } - catch(_art_){ - var _apq_ = caml_wrap_exception(_art_); - if(_apq_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _CY_], 1); - throw caml_maybe_attach_backtrace(_apq_, 0); - } - try{ - var - _apv_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$329); - }, - _apw_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _C3_, 1); - }, - _apx_ = caml_call4(Runtime_ocaml_Runtime[63], _C4_, [0], _apw_, _apv_), - calcul_apl_logement_foyer_dot_$6 = - caml_call3 - (Runtime_ocaml_Runtime[28], _C5_, Runtime_ocaml_Runtime[13], _apx_); - } - catch(_ars_){ - var _apu_ = caml_wrap_exception(_ars_); - if(_apu_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _C2_], 1); - throw caml_maybe_attach_backtrace(_apu_, 0); - } - try{ - var - _apz_ = function(param){return residence;}, - _apA_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _C7_, 1); - }, - _apB_ = caml_call4(Runtime_ocaml_Runtime[63], _C8_, [0], _apA_, _apz_), - calcul_apl_logement_foyer_dot_$7 = - caml_call3(Runtime_ocaml_Runtime[28], _C9_, embed_collectivite, _apB_); - } - catch(_arr_){ - var _apy_ = caml_wrap_exception(_arr_); - if(_apy_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _C6_], 1); - throw caml_maybe_attach_backtrace(_apy_, 0); - } - function calcul_apl_logement_foyer_dot_$8(param){ - function _aro_(param){return 1;} - function _arp_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _C__, 1); - } - var - _arq_ = caml_call4(Runtime_ocaml_Runtime[63], _C$_, [0], _arp_, _aro_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _Da_, - Runtime_ocaml_Runtime[12], - _arq_); - } - function calcul_apl_logement_foyer_dot_$9(param){ - function _ard_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _are_(param){return 0;} - var - _arf_ = - [0, - function(param){ - function _arh_(param){return 1;} - function _ari_(param){ - switch(residence[0]){ - case 0: - var _arn_ = 1; break; - case 1: - var _arn_ = 1; break; - case 2: - var _arn_ = 1; break; - case 3: - var _arn_ = 1; break; - case 4: - var _arn_ = 0; break; - case 5: - var _arn_ = 0; break; - case 6: - var _arn_ = 0; break; - case 7: - var _arn_ = 0; break; - default: var _arn_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Db_, _arn_); - } - var - _arj_ = - [0, - function(param){ - function _ark_(param){return 1;} - function _arl_(param){ - switch(residence[0]){ - case 0: - var _arm_ = 0; break; - case 1: - var _arm_ = 0; break; - case 2: - var _arm_ = 0; break; - case 3: - var _arm_ = 0; break; - case 4: - var _arm_ = 1; break; - case 5: - var _arm_ = 1; break; - case 6: - var _arm_ = 0; break; - case 7: - var _arm_ = 0; break; - default: var _arm_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Dc_, _arm_); - } + (Runtime_ocaml_Runtime[28],_BJ_,Runtime_ocaml_Runtime[10],_bkG_); + function _bkH_(allocation_mensuelle) + {try + {var + _bnk_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[98], + mensualite_principale, + allocation_mensuelle)}, + _bnl_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_BL_,1)}, + _bnm_= + [0, + function(param) + {function _bnp_(param) + {var + _bnt_= + caml_call2 + (Runtime_ocaml_Runtime[93], + mensualite_principale, + montant_forfaitaire_charges_d8); + return caml_call2 + (Runtime_ocaml_Runtime[98],_bnt_,allocation_mensuelle)} + function _bnq_(param) + {var + _bnr_=caml_call3(Runtime_ocaml_Runtime[57],1999,6,30), + _bns_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_bnr_); + return caml_call2(Runtime_ocaml_Runtime[29],_BM_,_bns_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _Dd_, [0], _arl_, _ark_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _De_, _arj_, _ari_, _arh_); - }], - _arg_ = caml_call4(Runtime_ocaml_Runtime[63], _Df_, _arf_, _are_, _ard_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _Dg_, - Runtime_ocaml_Runtime[12], - _arg_); - } - function calcul_apl_logement_foyer_dot_$10(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - var - _apC_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _Dh_, calcul_aide_personnalisee_loge$0), - [0, - calcul_apl_logement_foyer_dot_, - calcul_apl_logement_foyer_dot_$0, - calcul_apl_logement_foyer_dot_$1, - calcul_apl_logement_foyer_dot_$2, - calcul_apl_logement_foyer_dot_$3, - calcul_apl_logement_foyer_dot_$4, - calcul_apl_logement_foyer_dot_$5, - calcul_apl_logement_foyer_dot_$6, - calcul_apl_logement_foyer_dot_$7, - calcul_apl_logement_foyer_dot_$8, - calcul_apl_logement_foyer_dot_$9, - calcul_apl_logement_foyer_dot_$10]), - result$2 = caml_call2(Runtime_ocaml_Runtime[27], _Di_, _apC_), - calcul_apl_logement_foyer_dot_$11 = result$2[7]; - try{ - var - _apE_ = function(param){return montant_forfaitaire_d842_11;}, - _apF_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Dk_, 1); - }, - _apG_ = - [0, - function(param){ - function _arb_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[104], - ressources_menage_arrondies_se, - coefficient_d842_11); - } - function _arc_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _Dl_, condition_d842_11_3); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Dm_, [0], _arc_, _arb_); - }], - _apH_ = caml_call4(Runtime_ocaml_Runtime[63], _Dn_, _apG_, _apF_, _apE_); - } - catch(_ara_){ - var _apD_ = caml_wrap_exception(_ara_); - if(_apD_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Dj_], 1); - throw caml_maybe_attach_backtrace(_apD_, 0); - } - var - seuil_minimal_depense_nette_mi = - caml_call3 - (Runtime_ocaml_Runtime[28], _Do_, Runtime_ocaml_Runtime[13], _apH_); - try{ - var - _apJ_ = - function(param){ - var - _aq9_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dq_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aq__ = - caml_call2 - (calcul_plafond_mensualite_d842$1, + (Runtime_ocaml_Runtime[63],_BN_,[0],_bnq_,_bnp_)}], + _bnn_=caml_call4(Runtime_ocaml_Runtime[63],_BO_,_bnm_,_bnl_,_bnk_); + return _bnn_} + catch(_bno_) + {_bno_ = caml_wrap_exception(_bno_); + if(_bno_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_BK_]; + throw _bno_}} + var + depense_nette_minimale_d832_10= + caml_call3 + (Runtime_ocaml_Runtime[28],_BP_,Runtime_ocaml_Runtime[10],_bkH_); + try + {var + _bkI_= + function(param) + {var + _bnh_= caml_call3 (Runtime_ocaml_Runtime[28], - _Dr_, + _BR_, Runtime_ocaml_Runtime[16], date_signature_pret), - _aq9_), - _aq$_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ds_, - Runtime_ocaml_Runtime[13], - _aq__); - return caml_call2(Runtime_ocaml_Runtime[27], _Dt_, _aq$_); - }, - _apK_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Du_, 1); - }, - _apL_ = - [0, - function(param){ - function _aq1_(param){ - var - _aq3_ = + _bni_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _BS_, + calcul_plafond_mensualite_d832), + _bnh_), + _bnj_= caml_call3 (Runtime_ocaml_Runtime[28], - _Dv_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aq4_ = - caml_call2 - (calcul_plafond_mensualite_d842$1, - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dw_, - Runtime_ocaml_Runtime[16], - date_signature_pret), - _aq3_), - _aq5_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dx_, + _BT_, Runtime_ocaml_Runtime[13], - _aq4_), - plafond_signature = - caml_call2(Runtime_ocaml_Runtime[27], _Dy_, _aq5_), - _aq6_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dz_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aq7_ = - caml_call2 - (calcul_plafond_mensualite_d842$1, - caml_call3 - (Runtime_ocaml_Runtime[28], - _DA_, - Runtime_ocaml_Runtime[16], - date_entree_logement), - _aq6_), - _aq8_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _DB_, - Runtime_ocaml_Runtime[13], - _aq7_), - plafond_entree = - caml_call2(Runtime_ocaml_Runtime[27], _DC_, _aq8_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - plafond_signature, - plafond_entree) - ? plafond_entree - : plafond_signature; - } - function _aq2_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], - _DD_, - local_habite_premiere_fois_ben); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _DE_, [0], _aq2_, _aq1_); - }], - _apM_ = caml_call4(Runtime_ocaml_Runtime[63], _DF_, _apL_, _apK_, _apJ_); - } - catch(_aq0_){ - var _apI_ = caml_wrap_exception(_aq0_); - if(_apI_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Dp_], 1); - throw caml_maybe_attach_backtrace(_apI_, 0); - } - var - plafond_mensualite_d842_6 = - caml_call3 - (Runtime_ocaml_Runtime[28], _DG_, Runtime_ocaml_Runtime[13], _apM_); - try{ - var - _apO_ = function(param){return calcul_equivalence_loyer_minim$4;}, - _apP_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _DI_, 1); - }, - _apQ_ = caml_call4(Runtime_ocaml_Runtime[63], _DJ_, [0], _apP_, _apO_); - } - catch(_aqZ_){ - var _apN_ = caml_wrap_exception(_aqZ_); - if(_apN_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _DH_], 1); - throw caml_maybe_attach_backtrace(_apN_, 0); - } - var - mensualite_minimale = - caml_call3 - (Runtime_ocaml_Runtime[28], _DK_, Runtime_ocaml_Runtime[13], _apQ_); - try{ - var - _apS_ = function(param){return calcul_apl_logement_foyer_dot_$11;}, - _apT_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _DM_, 1); - }, - _apU_ = caml_call4(Runtime_ocaml_Runtime[63], _DN_, [0], _apT_, _apS_); - } - catch(_aqY_){ - var _apR_ = caml_wrap_exception(_aqY_); - if(_apR_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _DL_], 1); - throw caml_maybe_attach_backtrace(_apR_, 0); - } - var - coefficient_prise_en_charge = - caml_call3 - (Runtime_ocaml_Runtime[28], _DO_, Runtime_ocaml_Runtime[15], _apU_); - function _apV_(allocation_mensuelle){ - try{ - var - _aqR_ = - function(param){ - var - _aqV_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _DQ_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _aqW_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _DR_, depense_nette_minimale), - _aqV_), - _aqX_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _DS_, - Runtime_ocaml_Runtime[13], - _aqW_), - depense_nette_minimale$0 = - caml_call2(Runtime_ocaml_Runtime[27], _DT_, _aqX_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - depense_nette_minimale$0, - seuil_minimal_depense_nette_mi) - ? caml_call2 - (Runtime_ocaml_Runtime[98], - seuil_minimal_depense_nette_mi, - depense_nette_minimale$0) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$330); - }, - _aqS_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _DU_, 1); - }, - _aqT_ = caml_call4(Runtime_ocaml_Runtime[63], _DV_, [0], _aqS_, _aqR_); - return _aqT_; - } - catch(_aqU_){ - var _aqQ_ = caml_wrap_exception(_aqU_); - if(_aqQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _DP_], 1); - throw caml_maybe_attach_backtrace(_aqQ_, 0); - } - } - var - abattement_depense_nette_minim = - caml_call3 - (Runtime_ocaml_Runtime[28], _DW_, Runtime_ocaml_Runtime[10], _apV_); - try{ - var - _apX_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[123], - mensualite_principale, - plafond_mensualite_d842_6) - ? plafond_mensualite_d842_6 - : mensualite_principale; - }, - _apY_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _DY_, 1); - }, - _apZ_ = caml_call4(Runtime_ocaml_Runtime[63], _DZ_, [0], _apY_, _apX_); - } - catch(_aqP_){ - var _apW_ = caml_wrap_exception(_aqP_); - if(_apW_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _DX_], 1); - throw caml_maybe_attach_backtrace(_apW_, 0); - } - var - mensualite_eligible = - caml_call3 - (Runtime_ocaml_Runtime[28], _D0_, Runtime_ocaml_Runtime[13], _apZ_); - function _ap0_(aide_finale){ - try{ - var - _aqF_ = - function(param){ - var - _aqJ_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _D2_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aqK_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _D3_, - traitement_aide_finale_minorat), - _aqJ_), - _aqL_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _D4_, - Runtime_ocaml_Runtime[13], - _aqK_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _D5_, _aqL_), - _aqM_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _D6_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _aqN_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _D7_, - abattement_depense_nette_minim), - _aqM_), - _aqO_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _D8_, - Runtime_ocaml_Runtime[13], - _aqN_), - abattement = caml_call2(Runtime_ocaml_Runtime[27], _D9_, _aqO_); - return caml_call2 - (Runtime_ocaml_Runtime[113], aide_finale$0, abattement) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$331) - : caml_call2 - (Runtime_ocaml_Runtime[98], aide_finale$0, abattement); - }, - _aqG_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _D__, 1); - }, - _aqH_ = caml_call4(Runtime_ocaml_Runtime[63], _D$_, [0], _aqG_, _aqF_); - return _aqH_; - } - catch(_aqI_){ - var _aqE_ = caml_wrap_exception(_aqI_); - if(_aqE_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _D1_], 1); - throw caml_maybe_attach_backtrace(_aqE_, 0); - } - } - var - traitement_aide_finale_depense = - caml_call3 - (Runtime_ocaml_Runtime[28], _Ea_, Runtime_ocaml_Runtime[10], _ap0_); - try{ - var - _ap2_ = - function(param){ - var - _aqC_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - mensualite_eligible, - montant_forfaitaire_charges), - _aqD_ = - caml_call2(Runtime_ocaml_Runtime[98], _aqC_, mensualite_minimale); - return caml_call2 - (Runtime_ocaml_Runtime[104], - _aqD_, - coefficient_prise_en_charge); - }, - _ap3_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ec_, 1); - }, - _ap4_ = caml_call4(Runtime_ocaml_Runtime[63], _Ed_, [0], _ap3_, _ap2_); - } - catch(_aqB_){ - var _ap1_ = caml_wrap_exception(_aqB_); - if(_ap1_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Eb_], 1); - throw caml_maybe_attach_backtrace(_ap1_, 0); - } - var - aide_finale_formule = - caml_call3 - (Runtime_ocaml_Runtime[28], _Ee_, Runtime_ocaml_Runtime[13], _ap4_); - function _ap5_(aide_finale){ - try{ - var - _aqm_ = - function(param){ - var - _aqq_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Eg_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aqr_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Eh_, - traitement_aide_finale_depense), - _aqq_), - _aqs_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ei_, - Runtime_ocaml_Runtime[13], - _aqr_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _Ej_, _aqs_), - _aqt_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ek_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _aqu_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _El_, - contributions_sociales_dot_mon), - _aqt_), - _aqv_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Em_, - Runtime_ocaml_Runtime[13], - _aqu_), - crds = caml_call2(Runtime_ocaml_Runtime[27], _En_, _aqv_), - _aqw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$3), - _aqx_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), - _aqy_ = caml_call2(Runtime_ocaml_Runtime[98], _aqx_, _aqw_), - aide_finale_moins_crds_arrondi = - caml_call1(Runtime_ocaml_Runtime[77], _aqy_), - _aqz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$332), - _aqA_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128], _aqA_, _aqz_) - ? caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$333); - }, - _aqn_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Eo_, 1); - }, - _aqo_ = caml_call4(Runtime_ocaml_Runtime[63], _Ep_, [0], _aqn_, _aqm_); - return _aqo_; - } - catch(_aqp_){ - var _aql_ = caml_wrap_exception(_aqp_); - if(_aql_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ef_], 1); - throw caml_maybe_attach_backtrace(_aql_, 0); - } - } - var - traitement_aide_finale_contrib = - caml_call3 - (Runtime_ocaml_Runtime[28], _Eq_, Runtime_ocaml_Runtime[10], _ap5_); - function _ap6_(aide_finale){ - try{ - var - _aqe_ = - function(param){ - var - _aqi_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Es_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aqj_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Et_, - traitement_aide_finale_contrib), - _aqi_), - _aqk_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Eu_, - Runtime_ocaml_Runtime[13], - _aqj_), - aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _Ev_, _aqk_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d842_6) - ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$334) - : aide_finale$0; - }, - _aqf_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ew_, 1); - }, - _aqg_ = caml_call4(Runtime_ocaml_Runtime[63], _Ex_, [0], _aqf_, _aqe_); - return _aqg_; - } - catch(_aqh_){ - var _aqd_ = caml_wrap_exception(_aqh_); - if(_aqd_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Er_], 1); - throw caml_maybe_attach_backtrace(_aqd_, 0); - } - } - var - traitement_aide_finale_montant = - caml_call3 - (Runtime_ocaml_Runtime[28], _Ey_, Runtime_ocaml_Runtime[10], _ap6_); - try{ - var - _ap8_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 9, 30), - _ap9_ = - caml_call2(Runtime_ocaml_Runtime[130], date_signature_pret, _ap8_); - } - catch(_aqc_){ - var _ap7_ = caml_wrap_exception(_aqc_); - if(_ap7_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ez_], 1); - throw caml_maybe_attach_backtrace(_ap7_, 0); - } - if(! _ap9_) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _EC_], 1); - try{ - var - _ap$_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), - _aqa_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ap$_); - } - catch(_aqb_){ - var _ap__ = caml_wrap_exception(_aqb_); - if(_ap__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _EA_], 1); - throw caml_maybe_attach_backtrace(_ap__, 0); - } - if(_aqa_) - return [0, - mensualite_eligible, - mensualite_minimale, - coefficient_prise_en_charge, - aide_finale_formule, - traitement_aide_finale_montant]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _EB_], 1); - } - function calcul_aide_personnalisee_loge$2(calcul_aide_personnalisee_loge$2){ - var - mode_occupation = calcul_aide_personnalisee_loge$2[1], - type_aide = calcul_aide_personnalisee_loge$2[2], - ressources_menage_sans_arrondi = calcul_aide_personnalisee_loge$2[3], - situation_familiale = calcul_aide_personnalisee_loge$2[4], - nombre_personnes_a_charge = calcul_aide_personnalisee_loge$2[5], - zone = calcul_aide_personnalisee_loge$2[6], - date_courante = calcul_aide_personnalisee_loge$2[7], - residence = calcul_aide_personnalisee_loge$2[8]; - try{ - var - _amx_ = - function(param){ - switch(mode_occupation[0]){ - case 0: - var location = mode_occupation[1]; return [0, location]; - case 1: - var logementfoyer = mode_occupation[1]; return [2, logementfoyer]; - case 2: - var proprietaire = mode_occupation[1]; return [1, proprietaire]; - case 3: - var location$0 = mode_occupation[1]; return [0, location$0]; - default: - var proprietaire$0 = mode_occupation[1]; - return [1, proprietaire$0]; - } - }, - _amy_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _EE_, 1); - }, - _amz_ = caml_call4(Runtime_ocaml_Runtime[63], _EF_, [0], _amy_, _amx_); - } - catch(_anD_){ - var _amw_ = caml_wrap_exception(_anD_); - if(_amw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _ED_], 1); - throw caml_maybe_attach_backtrace(_amw_, 0); - } - var - categorie_calcul_apl = - caml_call3 - (Runtime_ocaml_Runtime[28], _EG_, embed_categorie_calcul_a_p_l, _amz_); - try{ - var - _amB_ = - function(param){ - return arrondi_centaine_superieure(ressources_menage_sans_arrondi); - }, - _amC_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _EI_, 1); - }, - _amD_ = caml_call4(Runtime_ocaml_Runtime[63], _EJ_, [0], _amC_, _amB_); - } - catch(_anC_){ - var _amA_ = caml_wrap_exception(_anC_); - if(_amA_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _EH_], 1); - throw caml_maybe_attach_backtrace(_amA_, 0); - } - var - ressources_menage_avec_arrondi = - caml_call3 - (Runtime_ocaml_Runtime[28], _EK_, Runtime_ocaml_Runtime[13], _amD_); - try{ - var - _amF_ = - function(param){ - switch(situation_familiale[0]){ - case 0: - return _EM_; - case 1: - return _EN_; - case 2: - return _EO_; - case 3: - return _EP_; - case 4: - return _EQ_; - default: return _ER_; - } - }, - _amG_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _ES_, 1); - }, - _amH_ = caml_call4(Runtime_ocaml_Runtime[63], _ET_, [0], _amG_, _amF_); - } - catch(_anB_){ - var _amE_ = caml_wrap_exception(_anB_); - if(_amE_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _EL_], 1); - throw caml_maybe_attach_backtrace(_amE_, 0); - } - var - situation_familiale_calcul_apl = - caml_call3 - (Runtime_ocaml_Runtime[28], - _EU_, - embed_situation_familiale_calc, - _amH_); - try{ - var - _amJ_ = - function(param){ - switch(categorie_calcul_apl[0]){ - case 0: - var location = categorie_calcul_apl[1], _anc_ = location[7]; - try{ - var match = location[1]; - switch(match[0]){ - case 0: - var bailleur = match[1], _ane_ = bailleur[2]; break; - case 1: - var _ane_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$335); - break; - default: - var _ane_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$336); - } - } - catch(_anx_){ - var _and_ = caml_wrap_exception(_anx_); - if(_and_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _EW_], 1); - throw caml_maybe_attach_backtrace(_and_, 0); - } - var - _anf_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _EX_, - embed_calcul_aide_personnalise$3, - [0, - location[2], - ressources_menage_avec_arrondi, - location[3], - date_courante, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - location[4], - location[6], - type_aide, - location[5], - _ane_, - _anc_, - residence]), - result = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _EY_, - calcul_aide_personnalisee_loge), - _anf_), - _ang_ = - function(param0){ - var - _anu_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _EZ_, - Runtime_ocaml_Runtime[13], - param0), - _anv_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _E0_, result[7]), - _anu_), - _anw_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _E1_, - Runtime_ocaml_Runtime[13], - _anv_); - return caml_call2(Runtime_ocaml_Runtime[27], _E2_, _anw_); - }, - result$0 = - [0, - result[1], - result[2], - result[3], - result[4], - result[5], - result[6], - _ang_]; - caml_call2(Runtime_ocaml_Runtime[29], _E3_, 1); - var - _anh_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _E4_, - embed_calcul_aide_personnalise, - result$0), - traitement_formule = - caml_call2(Runtime_ocaml_Runtime[27], _E5_, _anh_); - return [0, traitement_formule[6], traitement_formule[7]]; - case 1: - var - proprietaire = categorie_calcul_apl[1], - _ani_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _E6_, - embed_calcul_aide_personnalise$5, - [0, - proprietaire[1], - ressources_menage_avec_arrondi, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - proprietaire[4], - proprietaire[10][2], - proprietaire[6], - proprietaire[3], - proprietaire[7], - proprietaire[8], - zone, - proprietaire[10][1], - proprietaire[9], - date_courante]), - result$1 = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _E7_, - calcul_aide_personnalisee_loge$1), - _ani_), - _anj_ = - function(param0){ - var - _anr_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _E8_, - Runtime_ocaml_Runtime[13], - param0), - _ans_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _E9_, result$1[5]), - _anr_), - _ant_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _E__, - Runtime_ocaml_Runtime[13], - _ans_); - return caml_call2(Runtime_ocaml_Runtime[27], _E$_, _ant_); - }, - result$2 = - [0, result$1[1], result$1[2], result$1[3], result$1[4], _anj_]; - caml_call2(Runtime_ocaml_Runtime[29], _Fa_, 1); - var - _ank_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Fb_, - embed_calcul_aide_personnalise$1, - result$2), - traitement_formule$0 = - caml_call2(Runtime_ocaml_Runtime[27], _Fc_, _ank_); - return [0, traitement_formule$0[4], traitement_formule$0[5]]; - default: - var - logement_foyer = categorie_calcul_apl[1], - _anl_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _anm_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _ann_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _ano_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Fd_, - embed_calcul_aide_personnalise$4, - [0, - logement_foyer[1], - logement_foyer[5], - ressources_menage_avec_arrondi, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - date_courante, - logement_foyer[7], - residence, - _ann_, - _anm_, - _anl_]), - result$3 = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Fe_, - calcul_aide_personnalisee_loge$0), - _ano_), - _anp_ = - function(param0){ - var - _any_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ff_, - Runtime_ocaml_Runtime[13], - param0), - _anz_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _Fg_, result$3[9]), - _any_), - _anA_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Fh_, - Runtime_ocaml_Runtime[13], - _anz_); - return caml_call2(Runtime_ocaml_Runtime[27], _Fi_, _anA_); - }, - result$4 = - [0, - result$3[1], - result$3[2], - result$3[3], - result$3[4], - result$3[5], - result$3[6], - result$3[7], - result$3[8], - _anp_]; - caml_call2(Runtime_ocaml_Runtime[29], _Fj_, 1); - var - _anq_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Fk_, - embed_calcul_aide_personnalise$0, - result$4), - traitement_formule$1 = - caml_call2(Runtime_ocaml_Runtime[27], _Fl_, _anq_); - return [0, traitement_formule$1[8], traitement_formule$1[9]]; - } - }, - _amK_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Fm_, 1); - }, - _amL_ = - [0, - function(param){ - function _amZ_(param){ - switch(categorie_calcul_apl[0]){ - case 0: - return [0, - caml_call1(Runtime_ocaml_Runtime[31], cst_0$337), - traitement_nul_tout_le_temps]; - case 1: - return [0, - caml_call1(Runtime_ocaml_Runtime[31], cst_0$338), - traitement_nul_tout_le_temps]; - default: - var - logement_foyer = categorie_calcul_apl[1], - _am4_ = logement_foyer[10]; - try{ - var _am6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$339); - } - catch(_anb_){ - var _am5_ = caml_wrap_exception(_anb_); - if(_am5_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Fn_], 1); - throw caml_maybe_attach_backtrace(_am5_, 0); - } - var - _am7_ = + _bni_); + return caml_call2(Runtime_ocaml_Runtime[27],_BU_,_bnj_)}, + _bkJ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_BV_,1)}, + _bkK_= + [0, + function(param) + {function _bm$_(param) + {var + _bnb_= caml_call3 (Runtime_ocaml_Runtime[28], - _Fo_, + _BW_, + Runtime_ocaml_Runtime[16], + date_signature_pret), + _bnc_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _BX_, + calcul_plafond_mensualite_d832), + _bnb_), + _bnd_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _BY_, + Runtime_ocaml_Runtime[13], + _bnc_), + plafond_signature= + caml_call2(Runtime_ocaml_Runtime[27],_BZ_,_bnd_), + _bne_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _B0_, + Runtime_ocaml_Runtime[16], + date_entree_logement), + _bnf_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _B1_, + calcul_plafond_mensualite_d832), + _bne_), + _bng_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _B2_, + Runtime_ocaml_Runtime[13], + _bnf_), + plafond_entree= + caml_call2(Runtime_ocaml_Runtime[27],_B3_,_bng_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + plafond_signature, + plafond_entree) + ?plafond_entree + :plafond_signature} + function _bna_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29], + _B4_, + local_habite_premiere_fois_ben)} + return caml_call4(Runtime_ocaml_Runtime[63],_B5_,[0],_bna_,_bm$_)}], + _bkL_=caml_call4(Runtime_ocaml_Runtime[63],_B6_,_bkK_,_bkJ_,_bkI_)} + catch(_bm__) + {_bm__ = caml_wrap_exception(_bm__); + if(_bm__ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_BQ_]; + throw _bm__} + var + plafond_mensualite_d832_10_3_b= + caml_call3 + (Runtime_ocaml_Runtime[28],_B7_,Runtime_ocaml_Runtime[13],_bkL_); + try + {var + _bkM_=function(param){return date_courante}, + _bkN_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_B9_,1)}, + _bkO_=caml_call4(Runtime_ocaml_Runtime[63],_B__,[0],_bkN_,_bkM_), + calcul_equivalence_loyer_minim$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_B$_,Runtime_ocaml_Runtime[16],_bkO_)} + catch(_bm9_) + {_bm9_ = caml_wrap_exception(_bm9_); + if(_bm9_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_B8_]; + throw _bm9_} + try + {var + _bkP_=function(param){return ressources_menage_arrondies}, + _bkQ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Cb_,1)}, + _bkR_=caml_call4(Runtime_ocaml_Runtime[63],_Cc_,[0],_bkQ_,_bkP_), + calcul_equivalence_loyer_minim$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_Cd_,Runtime_ocaml_Runtime[13],_bkR_)} + catch(_bm8_) + {_bm8_ = caml_wrap_exception(_bm8_); + if(_bm8_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ca_]; + throw _bm8_} + try + {var + _bkS_=function(param){return 0}, + _bkT_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Cf_,1)}, + _bkU_=caml_call4(Runtime_ocaml_Runtime[63],_Cg_,[0],_bkT_,_bkS_), + calcul_equivalence_loyer_minim$2= + caml_call3 + (Runtime_ocaml_Runtime[28],_Ch_,Runtime_ocaml_Runtime[12],_bkU_)} + catch(_bm7_) + {_bm7_ = caml_wrap_exception(_bm7_); + if(_bm7_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ce_]; + throw _bm7_} + try + {var + _bkV_=function(param){return n_nombre_parts_d832_11}, + _bkW_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Cj_,1)}, + _bkX_=caml_call4(Runtime_ocaml_Runtime[63],_Ck_,[0],_bkW_,_bkV_), + calcul_equivalence_loyer_minim$3= + caml_call3 + (Runtime_ocaml_Runtime[28],_Cl_,Runtime_ocaml_Runtime[15],_bkX_)} + catch(_bm6_) + {_bm6_ = caml_wrap_exception(_bm6_); + if(_bm6_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ci_]; + throw _bm6_} + var + _bkY_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_Cm_,calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$1=caml_call2(Runtime_ocaml_Runtime[27],_Cn_,_bkY_), + calcul_equivalence_loyer_minim$4=result$1[1]; + try + {var + _bkZ_= + function(param) + {var + _bm3_= + caml_call2 + (Runtime_ocaml_Runtime[104], + coefficient_multiplicateur_d83$0, + n_nombre_parts_d832_11), + _bm4_= + caml_call2 + (Runtime_ocaml_Runtime[108],ressources_menage_arrondies,_bm3_), + _bm5_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$2); + return caml_call2(Runtime_ocaml_Runtime[97],_bm5_,_bm4_)}, + _bk0_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Cp_,1)}, + _bk1_=caml_call4(Runtime_ocaml_Runtime[63],_Cq_,[0],_bk0_,_bkZ_)} + catch(_bm2_) + {_bm2_ = caml_wrap_exception(_bm2_); + if(_bm2_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Co_]; + throw _bm2_} + var + coefficient_prise_en_charge_d8= + caml_call3 + (Runtime_ocaml_Runtime[28],_Cr_,Runtime_ocaml_Runtime[15],_bk1_); + function _bk2_(allocation_mensuelle) + {try + {var + _bmT_= + function(param) + {var + _bmX_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ct_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _bmY_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Cu_, + depense_nette_minimale_d832_10), + _bmX_), + _bmZ_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cv_, + Runtime_ocaml_Runtime[13], + _bmY_), + depense_nette_minimale= + caml_call2(Runtime_ocaml_Runtime[27],_Cw_,_bmZ_), + _bm0_= + caml_call2 + (Runtime_ocaml_Runtime[104], + ressources_menage_avec_d832_18, + coefficient_multiplicateur_d83$1); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[118],depense_nette_minimale,_bm0_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$295); + var + _bm1_= + caml_call2 + (Runtime_ocaml_Runtime[104], + ressources_menage_avec_d832_18, + coefficient_multiplicateur_d83$1); + return caml_call2 + (Runtime_ocaml_Runtime[98],_bm1_,depense_nette_minimale)}, + _bmU_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Cx_,1)}, + _bmV_=caml_call4(Runtime_ocaml_Runtime[63],_Cy_,[0],_bmU_,_bmT_); + return _bmV_} + catch(_bmW_) + {_bmW_ = caml_wrap_exception(_bmW_); + if(_bmW_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Cs_]; + throw _bmW_}} + var + abattement_depense_nette_minim= + caml_call3 + (Runtime_ocaml_Runtime[28],_Cz_,Runtime_ocaml_Runtime[10],_bk2_); + try + {var + _bk3_=function(param){throw Runtime_ocaml_Runtime[2]}, + _bk4_=function(param){return 0}, + _bk5_= + [0, + function(param) + {function _bmw_(param) + {if(! copropriete)return plafond_mensualite_d832_10_3_b; + var _bmS_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$8); + return caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_mensualite_d832_10_3_b, + _bmS_)} + function _bmx_(param) + {var + _bmQ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bmR_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bmQ_); + return caml_call2(Runtime_ocaml_Runtime[29],_CB_,_bmR_)} + var + _bmy_= + [0, + function(param) + {function _bmz_(param) + {if(! copropriete)return plafond_mensualite_d832_10_3_b; + var _bmP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$9); + return caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_mensualite_d832_10_3_b, + _bmP_)} + function _bmA_(param) + {var + _bmK_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bmL_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bmK_), + _bmM_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bmN_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bmM_), + _bmO_=caml_call2(Runtime_ocaml_Runtime[83],_bmN_,_bmL_); + return caml_call2(Runtime_ocaml_Runtime[29],_CC_,_bmO_)} + var + _bmB_= + [0, + function(param) + {function _bmC_(param) + {if(! copropriete)return plafond_mensualite_d832_10_3_b; + var _bmJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$10); + return caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_mensualite_d832_10_3_b, + _bmJ_)} + function _bmD_(param) + {var + _bmE_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bmF_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bmE_), + _bmG_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bmH_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bmG_), + _bmI_=caml_call2(Runtime_ocaml_Runtime[83],_bmH_,_bmF_); + return caml_call2(Runtime_ocaml_Runtime[29],_CD_,_bmI_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_CE_,[0],_bmD_,_bmC_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_CF_,_bmB_,_bmA_,_bmz_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_CG_,_bmy_,_bmx_,_bmw_)}], + _bk6_=caml_call4(Runtime_ocaml_Runtime[63],_CH_,_bk5_,_bk4_,_bk3_)} + catch(_bmv_) + {_bmv_ = caml_wrap_exception(_bmv_); + if(_bmv_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_CA_]; + throw _bmv_} + var + plafond_mensualite_d832_10_3_c= + caml_call3 + (Runtime_ocaml_Runtime[28],_CI_,Runtime_ocaml_Runtime[13],_bk6_); + try + {var + _bk7_=function(param){throw Runtime_ocaml_Runtime[2]}, + _bk8_=function(param){return 0}, + _bk9_= + function(param) + {function _bms_(param){return calcul_equivalence_loyer_minim$4} + function _bmt_(param) + {switch(type_travaux_logement[0]) + {case 0:var _bmu_=0;break; + case 1:var _bmu_=1;break; + default:var _bmu_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_CK_,_bmu_)} + return caml_call4(Runtime_ocaml_Runtime[63],_CL_,[0],_bmt_,_bms_)}, + _bk__= + [0, + function(param) + {function _bmd_(param) + {var + ressources_menage_arrondies$0= + caml_call1 + (Runtime_ocaml_Runtime[70],ressources_menage_arrondies), + montant_limite_tranches_d832_1$0= + caml_call1 + (Runtime_ocaml_Runtime[70],montant_limite_tranches_d832_1), + _bmi_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$14), + _bmj_= + caml_call2 + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11); + if + (caml_call2 + (Runtime_ocaml_Runtime[117], + ressources_menage_arrondies$0, + _bmj_)) + var + _bmk_= + caml_call2 + (Runtime_ocaml_Runtime[103], + ressources_menage_arrondies$0, + taux_tranche_inferieure_d832_1); + else + var + _bmr_= + caml_call2 + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11), + _bmk_= + caml_call2 + (Runtime_ocaml_Runtime[103], + _bmr_, + taux_tranche_inferieure_d832_1); + var + _bml_= + caml_call2 + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11); + if + (caml_call2 + (Runtime_ocaml_Runtime[127], + ressources_menage_arrondies$0, + _bml_)) + var + _bmm_= + caml_call2 + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11), + _bmn_= + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + _bmm_), + _bmo_= + caml_call2 + (Runtime_ocaml_Runtime[103], + _bmn_, + taux_tranche_superieure_d832_1); + else + var _bmo_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$296); + var + _bmp_=caml_call2(Runtime_ocaml_Runtime[92],_bmo_,_bmk_), + _bmq_=caml_call2(Runtime_ocaml_Runtime[107],_bmp_,_bmi_); + return caml_call1(Runtime_ocaml_Runtime[71],_bmq_)} + function _bme_(param) + {switch(type_travaux_logement[0]) + {case 0:var _bmf_=0;break; + case 1:var _bmf_=0;break; + default:var _bmf_=1} + switch(type_travaux_logement[0]) + {case 0:var _bmg_=1;break; + case 1:var _bmg_=0;break; + default:var _bmg_=0} + var _bmh_=caml_call2(Runtime_ocaml_Runtime[84],_bmg_,_bmf_); + return caml_call2(Runtime_ocaml_Runtime[29],_CM_,_bmh_)} + return caml_call4(Runtime_ocaml_Runtime[63],_CN_,[0],_bme_,_bmd_)}, + _bk9_], + _bk$_=caml_call4(Runtime_ocaml_Runtime[63],_CO_,_bk__,_bk8_,_bk7_)} + catch(_bmc_) + {_bmc_ = caml_wrap_exception(_bmc_); + if(_bmc_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_CJ_]; + throw _bmc_} + var + mensualite_minimale= + caml_call3 + (Runtime_ocaml_Runtime[28],_CP_,Runtime_ocaml_Runtime[13],_bk$_); + try + {var + _bla_= + function(param) + {var + _bl8_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$10), + _bl9_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$11), + _bl__=caml_call1(Runtime_ocaml_Runtime[39],cst_0_005$2), + _bl$_= + caml_call2 + (Runtime_ocaml_Runtime[97], + coefficient_prise_en_charge_d8, + _bl__), + _bma_=caml_call2(Runtime_ocaml_Runtime[103],_bl$_,_bl9_), + _bmb_=caml_call1(Runtime_ocaml_Runtime[78],_bma_); + return caml_call2(Runtime_ocaml_Runtime[107],_bmb_,_bl8_)}, + _blb_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_CR_,1)}, + _blc_=caml_call4(Runtime_ocaml_Runtime[63],_CS_,[0],_blb_,_bla_)} + catch(_bl7_) + {_bl7_ = caml_wrap_exception(_bl7_); + if(_bl7_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_CQ_]; + throw _bl7_} + var + coefficient_prise_en_charge_d8$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_CT_,Runtime_ocaml_Runtime[15],_blc_); + function _bld_(aide_finale) + {try + {var + _blV_= + function(param) + {var + _blZ_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _CV_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bl0_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _CW_, + traitement_aide_finale_minorat), + _blZ_), + _bl1_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _CX_, + Runtime_ocaml_Runtime[13], + _bl0_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_CY_,_bl1_), + _bl2_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _CZ_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bl3_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _C0_, + abattement_depense_nette_minim), + _bl2_), + _bl4_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _C1_, + Runtime_ocaml_Runtime[13], + _bl3_), + _bl5_=caml_call2(Runtime_ocaml_Runtime[27],_C2_,_bl4_), + aide_finale$1= + caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bl5_), + _bl6_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$297); + return caml_call2 + (Runtime_ocaml_Runtime[128],aide_finale$1,_bl6_) + ?aide_finale$1 + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$298)}, + _blW_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_C3_,1)}, + _blX_=caml_call4(Runtime_ocaml_Runtime[63],_C4_,[0],_blW_,_blV_); + return _blX_} + catch(_blY_) + {_blY_ = caml_wrap_exception(_blY_); + if(_blY_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_CU_]; + throw _blY_}} + var + traitement_aide_finale_abattem= + caml_call3 + (Runtime_ocaml_Runtime[28],_C5_,Runtime_ocaml_Runtime[10],_bld_); + try + {var + _ble_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[123], + mensualite_principale, + plafond_mensualite_d832_10_3_c) + ?plafond_mensualite_d832_10_3_c + :mensualite_principale}, + _blf_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_C7_,1)}, + _blg_=caml_call4(Runtime_ocaml_Runtime[63],_C8_,[0],_blf_,_ble_)} + catch(_blU_) + {_blU_ = caml_wrap_exception(_blU_); + if(_blU_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_C6_]; + throw _blU_} + var + mensualite_eligible= + caml_call3 + (Runtime_ocaml_Runtime[28],_C9_,Runtime_ocaml_Runtime[13],_blg_); + try + {var + _blh_= + function(param) + {var _blT_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$3); + return caml_call2 + (Runtime_ocaml_Runtime[127], + coefficient_prise_en_charge_d8$0, + _blT_) + ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$4) + :coefficient_prise_en_charge_d8$0}, + _bli_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_C$_,1)}, + _blj_=caml_call4(Runtime_ocaml_Runtime[63],_Da_,[0],_bli_,_blh_)} + catch(_blS_) + {_blS_ = caml_wrap_exception(_blS_); + if(_blS_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_C__]; + throw _blS_} + var + coefficient_prise_en_charge_d8$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_Db_,Runtime_ocaml_Runtime[15],_blj_); + function _blk_(aide_finale) + {try + {var + _blD_= + function(param) + {var + _blH_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Dd_, + Runtime_ocaml_Runtime[13], + aide_finale), + _blI_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _De_, + traitement_aide_finale_abattem), + _blH_), + _blJ_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Df_, + Runtime_ocaml_Runtime[13], + _blI_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Dg_,_blJ_), + _blK_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Dh_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _blL_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Di_, + contributions_sociales_dot_mon), + _blK_), + _blM_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Dj_, + Runtime_ocaml_Runtime[13], + _blL_), + crds=caml_call2(Runtime_ocaml_Runtime[27],_Dk_,_blM_), + _blN_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$1), + _blO_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), + _blP_=caml_call2(Runtime_ocaml_Runtime[98],_blO_,_blN_), + aide_finale_moins_crds_arrondi= + caml_call1(Runtime_ocaml_Runtime[77],_blP_), + _blQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$299), + _blR_= + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128],_blR_,_blQ_) + ?caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$300)}, + _blE_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Dl_,1)}, + _blF_=caml_call4(Runtime_ocaml_Runtime[63],_Dm_,[0],_blE_,_blD_); + return _blF_} + catch(_blG_) + {_blG_ = caml_wrap_exception(_blG_); + if(_blG_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Dc_]; + throw _blG_}} + var + traitement_aide_finale_contrib= + caml_call3 + (Runtime_ocaml_Runtime[28],_Dn_,Runtime_ocaml_Runtime[10],_blk_); + try + {var + _bll_= + function(param) + {var + _blA_= + caml_call2 + (Runtime_ocaml_Runtime[93], + mensualite_eligible, + montant_forfaitaire_charges_d8), + _blB_= + caml_call2(Runtime_ocaml_Runtime[98],_blA_,mensualite_minimale), + aide_finale= + caml_call2 + (Runtime_ocaml_Runtime[104], + _blB_, + coefficient_prise_en_charge_d8$1), + _blC_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$301); + return caml_call2(Runtime_ocaml_Runtime[113],aide_finale,_blC_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$302) + :aide_finale}, + _blm_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Dp_,1)}, + _bln_=caml_call4(Runtime_ocaml_Runtime[63],_Dq_,[0],_blm_,_bll_)} + catch(_blz_) + {_blz_ = caml_wrap_exception(_blz_); + if(_blz_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Do_]; + throw _blz_} + var + aide_finale_formule= + caml_call3 + (Runtime_ocaml_Runtime[28],_Dr_,Runtime_ocaml_Runtime[13],_bln_); + function _blo_(aide_finale) + {try + {var + _bls_= + function(param) + {var + _blw_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Dt_, + Runtime_ocaml_Runtime[13], + aide_finale), + _blx_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Du_, + traitement_aide_finale_contrib), + _blw_), + _bly_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Dv_, + Runtime_ocaml_Runtime[13], + _blx_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Dw_,_bly_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d832_10) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$303) + :aide_finale$0}, + _blt_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Dx_,1)}, + _blu_=caml_call4(Runtime_ocaml_Runtime[63],_Dy_,[0],_blt_,_bls_); + return _blu_} + catch(_blv_) + {_blv_ = caml_wrap_exception(_blv_); + if(_blv_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ds_]; + throw _blv_}} + var + traitement_aide_finale_montant= + caml_call3 + (Runtime_ocaml_Runtime[28],_Dz_,Runtime_ocaml_Runtime[10],_blo_); + try + {var + _blp_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _blq_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_blp_)} + catch(_blr_) + {_blr_ = caml_wrap_exception(_blr_); + if(_blr_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_DA_]; + throw _blr_} + if(_blq_) + return [0, + mensualite_eligible, + mensualite_minimale, + coefficient_prise_en_charge_d8$1, + aide_finale_formule, + traitement_aide_finale_montant]; + throw [0,Runtime_ocaml_Runtime[3],_DB_]} + function ressources_aides_personnelle_l(ressources_aides_personnelle_l) + {var + ressources_demandeur=ressources_aides_personnelle_l[1], + ressources_conjoint=ressources_aides_personnelle_l[2], + personnes_vivant_habituellemen=ressources_aides_personnelle_l[3], + demandeur_exerce_activite_remu=ressources_aides_personnelle_l[4], + conjoint_exerce_activite_remun=ressources_aides_personnelle_l[5], + personnes_a_charge=ressources_aides_personnelle_l[6], + situation_familiale=ressources_aides_personnelle_l[7], + mode_occupation=ressources_aides_personnelle_l[8], + date_courante=ressources_aides_personnelle_l[9], + condition_age_bourse_enseignem=ressources_aides_personnelle_l[10], + demandeur_poursuit_des_etudes=ressources_aides_personnelle_l[11], + date_demande_ou_reexamen_droit=ressources_aides_personnelle_l[12], + paiement_logement_distinct_pro=ressources_aides_personnelle_l[13]; + try + {var + _biV_= + function(param) + {function _bjQ_(personne){return personne[2]} + var + _bjR_= + caml_call2 + (Runtime_ocaml_Runtime[87], + _bjQ_, + personnes_vivant_habituellemen), + _bjS_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$304); + function _bjT_(sum1,sum2) + {return caml_call2(Runtime_ocaml_Runtime[93],sum1,sum2)} + return caml_call3(Runtime_ocaml_Runtime[88],_bjT_,_bjS_,_bjR_)}, + _biW_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DD_,1)}, + _biX_=caml_call4(Runtime_ocaml_Runtime[63],_DE_,[0],_biW_,_biV_)} + catch(_bjP_) + {_bjP_ = caml_wrap_exception(_bjP_); + if(_bjP_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_DC_]; + throw _bjP_} + var + ressources_personnes_vivant_ha= + caml_call3 + (Runtime_ocaml_Runtime[28],_DF_,Runtime_ocaml_Runtime[13],_biX_); + try + {var + _biY_= + function(param) + {var + _bjL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$305), + _bjM_=caml_call1(Runtime_ocaml_Runtime[68],personnes_a_charge); + if(caml_call2(Runtime_ocaml_Runtime[86],_bjM_,_bjL_)) + var abattement=caml_call1(Runtime_ocaml_Runtime[31],cst_0$306); + else + var + _bjN_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$51), + _bjO_=caml_call1(Runtime_ocaml_Runtime[68],personnes_a_charge), + abattement= + caml_call2(Runtime_ocaml_Runtime[116],_bjO_,_bjN_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_90100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_135000); + switch(situation_familiale[0]) + {case 0:return abattement; + case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$307); + case 2:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$308); + case 3:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$309); + case 4:return abattement; + default:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$310)}}, + _biZ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DH_,1)}, + _bi0_=caml_call4(Runtime_ocaml_Runtime[63],_DI_,[0],_biZ_,_biY_)} + catch(_bjK_) + {_bjK_ = caml_wrap_exception(_bjK_); + if(_bjK_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_DG_]; + throw _bjK_} + caml_call3 + (Runtime_ocaml_Runtime[28],_DJ_,Runtime_ocaml_Runtime[13],_bi0_); + try + {var + _bi1_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_9500)}, + _bi2_= + function(param) + {var + _bjI_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bjJ_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bjI_); + return caml_call2(Runtime_ocaml_Runtime[29],_DL_,_bjJ_)}, + _bi3_=caml_call4(Runtime_ocaml_Runtime[63],_DM_,[0],_bi2_,_bi1_)} + catch(_bjH_) + {_bjH_ = caml_wrap_exception(_bjH_); + if(_bjH_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_DK_]; + throw _bjH_} + var + montant_forfaitaire_r_822_7= + caml_call3 + (Runtime_ocaml_Runtime[28],_DN_,Runtime_ocaml_Runtime[13],_bi3_); + try + {var + _bi4_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_258900)}, + _bi5_= + function(param) + {var + _bjF_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _bjG_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bjF_); + return caml_call2(Runtime_ocaml_Runtime[29],_DP_,_bjG_)}, + _bi6_=caml_call4(Runtime_ocaml_Runtime[63],_DQ_,[0],_bi5_,_bi4_)} + catch(_bjE_) + {_bjE_ = caml_wrap_exception(_bjE_); + if(_bjE_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_DO_]; + throw _bjE_} + var + montant_forfaitaire_r_822_8= + caml_call3 + (Runtime_ocaml_Runtime[28],_DR_,Runtime_ocaml_Runtime[13],_bi6_); + try + {var + _bi7_=function(param){return date_demande_ou_reexamen_droit}, + _bi8_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DT_,1)}, + _bi9_=caml_call4(Runtime_ocaml_Runtime[63],_DU_,[0],_bi8_,_bi7_), + base_mensuelle_allocations_fam= + caml_call3 + (Runtime_ocaml_Runtime[28],_DV_,Runtime_ocaml_Runtime[16],_bi9_)} + catch(_bjD_) + {_bjD_ = caml_wrap_exception(_bjD_); + if(_bjD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_DS_]; + throw _bjD_} + var + _bi__= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_DW_,base_mensuelle_allocations_fam$5), + [0,base_mensuelle_allocations_fam]), + result=caml_call2(Runtime_ocaml_Runtime[27],_DX_,_bi__), + base_mensuelle_allocations_fam$0=result[1]; + try + {var + _bi$_= + function(param) + {var + _bjC_= + caml_call2 + (Runtime_ocaml_Runtime[93], + ressources_demandeur, + ressources_conjoint); + return caml_call2 + (Runtime_ocaml_Runtime[93], + _bjC_, + ressources_personnes_vivant_ha)}, + _bja_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DZ_,1)}, + _bjb_= + [0, + function(param) + {function _bjv_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$311)} + function _bjw_(param) + {var + _bjx_= + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_age_bourse_enseignem, + demandeur_poursuit_des_etudes); + switch(mode_occupation[0]) + {case 0:var _bjy_=0;break; + case 1:var _bjy_=1;break; + case 2:var _bjy_=0;break; + case 3:var _bjy_=0;break; + default:var _bjy_=0} + switch(mode_occupation[0]) + {case 0:var _bjz_=1;break; + case 1:var _bjz_=0;break; + case 2:var _bjz_=0;break; + case 3:var _bjz_=0;break; + default:var _bjz_=0} + var + _bjA_=caml_call2(Runtime_ocaml_Runtime[84],_bjz_,_bjy_), + _bjB_=caml_call2(Runtime_ocaml_Runtime[83],_bjA_,_bjx_); + return caml_call2(Runtime_ocaml_Runtime[29],_D0_,_bjB_)} + return caml_call4(Runtime_ocaml_Runtime[63],_D1_,[0],_bjw_,_bjv_)}], + _bjc_=caml_call4(Runtime_ocaml_Runtime[63],_D2_,_bjb_,_bja_,_bi$_)} + catch(_bju_) + {_bju_ = caml_wrap_exception(_bju_); + if(_bju_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_DY_]; + throw _bju_} + var + ressources_prises_en_compte= + caml_call3 + (Runtime_ocaml_Runtime[28],_D3_,Runtime_ocaml_Runtime[13],_bjc_); + try + {var + _bjd_= + function(param) + {return 0 === paiement_logement_distinct_pro[0] + ?montant_forfaitaire_r_822_8 + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$312)}, + _bje_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_D5_,1)}, + _bjf_=caml_call4(Runtime_ocaml_Runtime[63],_D6_,[0],_bje_,_bjd_)} + catch(_bjt_) + {_bjt_ = caml_wrap_exception(_bjt_); + if(_bjt_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_D4_]; + throw _bjt_} + caml_call3 + (Runtime_ocaml_Runtime[28],_D7_,Runtime_ocaml_Runtime[13],_bjf_); + try + {var + _bjg_= + function(param) + {var + _bjo_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$15), + _bjp_= + caml_call2 + (Runtime_ocaml_Runtime[104], + base_mensuelle_allocations_fam$0, + _bjo_), + _bjq_= + caml_call2 + (Runtime_ocaml_Runtime[93], + ressources_demandeur, + ressources_conjoint), + _bjr_=caml_call2(Runtime_ocaml_Runtime[128],_bjq_,_bjp_), + _bjs_= + caml_call2 + (Runtime_ocaml_Runtime[83], + conjoint_exerce_activite_remun, + _bjr_); + return caml_call2 + (Runtime_ocaml_Runtime[83], + demandeur_exerce_activite_remu, + _bjs_) + ?montant_forfaitaire_r_822_7 + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$313)}, + _bjh_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_D9_,1)}, + _bji_=caml_call4(Runtime_ocaml_Runtime[63],_D__,[0],_bjh_,_bjg_)} + catch(_bjn_) + {_bjn_ = caml_wrap_exception(_bjn_); + if(_bjn_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_D8_]; + throw _bjn_} + caml_call3 + (Runtime_ocaml_Runtime[28],_D$_,Runtime_ocaml_Runtime[13],_bji_); + try + {var + _bjj_=1, + _bjk_= + function(acc,personne) + {return caml_call2(Runtime_ocaml_Runtime[83],acc,personne[1])}, + _bjl_= + caml_call3 + (Runtime_ocaml_Runtime[136], + _bjk_, + _bjj_, + personnes_vivant_habituellemen)} + catch(_bjm_) + {_bjm_ = caml_wrap_exception(_bjm_); + if(_bjm_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ea_]; + throw _bjm_} + if(_bjl_)return [0,ressources_prises_en_compte]; + throw [0,Runtime_ocaml_Runtime[3],_Eb_]} + function eligibilite_prestations_famili(eligibilite_prestations_famili) + {var + date_courante=eligibilite_prestations_famili[1], + residence=eligibilite_prestations_famili[3], + age_l512_3_2=eligibilite_prestations_famili[4]; + try + {var + _bhz_= + function(param) + {function _biT_(param) + {return caml_call3(Runtime_ocaml_Runtime[60],20,0,0)} + function _biU_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Ed_,1)} + return caml_call4(Runtime_ocaml_Runtime[63],_Ee_,[0],_biU_,_biT_)}, + _bhA_=function(param){return 1}, + _bhB_=[0,function(param){return caml_call1(age_l512_3_2,0)}], + _bhC_=caml_call4(Runtime_ocaml_Runtime[63],_Ef_,_bhB_,_bhA_,_bhz_)} + catch(_biS_) + {_biS_ = caml_wrap_exception(_biS_); + if(_biS_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ec_]; + throw _biS_} + var + age_l512_3_2$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_Eg_,Runtime_ocaml_Runtime[17],_bhC_); + try + {var + _bhD_=function(param){return date_courante}, + _bhE_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ei_,1)}, + _bhF_=caml_call4(Runtime_ocaml_Runtime[63],_Ej_,[0],_bhE_,_bhD_), + smic_dot_date_courante= + caml_call3 + (Runtime_ocaml_Runtime[28],_Ek_,Runtime_ocaml_Runtime[16],_bhF_)} + catch(_biR_) + {_biR_ = caml_wrap_exception(_biR_); + if(_biR_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Eh_]; + throw _biR_} + try + {var + _bhG_=function(param){return residence}, + _bhH_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Em_,1)}, + _bhI_=caml_call4(Runtime_ocaml_Runtime[63],_En_,[0],_bhH_,_bhG_), + smic_dot_residence= + caml_call3 + (Runtime_ocaml_Runtime[28],_Eo_,embed_collectivite$0,_bhI_)} + catch(_biQ_) + {_biQ_ = caml_wrap_exception(_biQ_); + if(_biQ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_El_]; + throw _biQ_} + var + _bhJ_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_Ep_,smic$1), + [0,smic_dot_date_courante,smic_dot_residence]), + result=caml_call2(Runtime_ocaml_Runtime[27],_Eq_,_bhJ_), + smic_dot_brut_horaire=result[1]; + try + {var + _bhK_=function(param){return 0}, + _bhL_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Es_,1)}, + _bhM_= + [0, + function(param) + {function _biD_(param){return 1} + function _biE_(param) + {var + _biF_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Et_), + _biG_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Eu_), + _biH_=caml_call2(Runtime_ocaml_Runtime[84],_biG_,_biF_), + _biI_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Ev_), + _biJ_=caml_call2(Runtime_ocaml_Runtime[84],_biI_,_biH_), + _biK_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Ew_), + _biL_=caml_call2(Runtime_ocaml_Runtime[84],_biK_,_biJ_), + _biM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Ex_), + _biN_=caml_call2(Runtime_ocaml_Runtime[84],_biM_,_biL_), + _biO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Ey_), + _biP_=caml_call2(Runtime_ocaml_Runtime[84],_biO_,_biN_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ez_,_biP_)} + return caml_call4(Runtime_ocaml_Runtime[63],_EA_,[0],_biE_,_biD_)}], + _bhN_=caml_call4(Runtime_ocaml_Runtime[63],_EB_,_bhM_,_bhL_,_bhK_)} + catch(_biC_) + {_biC_ = caml_wrap_exception(_biC_); + if(_biC_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Er_]; + throw _biC_} + var + regime_outre_mer_l751_1= + caml_call3 + (Runtime_ocaml_Runtime[28],_EC_,Runtime_ocaml_Runtime[12],_bhN_); + try + {var + _bhO_= + function(param) + {var + _biz_=caml_call1(Runtime_ocaml_Runtime[39],cst_169$1), + _biA_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55$1), + _biB_= + caml_call2 + (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_biA_); + return caml_call2(Runtime_ocaml_Runtime[104],_biB_,_biz_)}, + _bhP_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_EE_,1)}, + _bhQ_= + [0, + function(param) + {function _biu_(param) + {var + _biw_=caml_call1(Runtime_ocaml_Runtime[39],cst_169$2), + _bix_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55$2), + _biy_= + caml_call2 + (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_bix_); + return caml_call2(Runtime_ocaml_Runtime[104],_biy_,_biw_)} + function _biv_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_EF_,regime_outre_mer_l751_1)} + return caml_call4(Runtime_ocaml_Runtime[63],_EG_,[0],_biv_,_biu_)}], + _bhR_=caml_call4(Runtime_ocaml_Runtime[63],_EH_,_bhQ_,_bhP_,_bhO_)} + catch(_bit_) + {_bit_ = caml_wrap_exception(_bit_); + if(_bit_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ED_]; + throw _bit_} + var + plafond_l512_3_2= + caml_call3 + (Runtime_ocaml_Runtime[28],_EI_,Runtime_ocaml_Runtime[13],_bhR_); + function _bhS_(enfant) + {try + {var + _bif_=function(param){return 0}, + _big_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_EK_,1)}, + _bih_= + [0, + function(param) + {function _bik_(param){return 1} + function _bil_(param) + {var + _bim_= + caml_call2 + (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2); + switch(enfant[2][0]) + {case 0:var _bin_=0;break; + case 1:var _bin_=0;break; + default:var _bin_=1} + switch(enfant[2][0]) + {case 0:var _bio_=0;break; + case 1:var _bio_=1;break; + default:var _bio_=0} + var _bip_=caml_call2(Runtime_ocaml_Runtime[84],_bio_,_bin_); + switch(enfant[2][0]) + {case 0:var _biq_=1;break; + case 1:var _biq_=0;break; + default:var _biq_=0} + var + _bir_=caml_call2(Runtime_ocaml_Runtime[84],_biq_,_bip_), + _bis_=caml_call2(Runtime_ocaml_Runtime[83],_bir_,_bim_); + return caml_call2(Runtime_ocaml_Runtime[29],_EL_,_bis_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_EM_,[0],_bil_,_bik_)}], + _bii_=caml_call4(Runtime_ocaml_Runtime[63],_EN_,_bih_,_big_,_bif_); + return _bii_} + catch(_bij_) + {_bij_ = caml_wrap_exception(_bij_); + if(_bij_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_EJ_]; + throw _bij_}} + var + conditions_hors_age= + caml_call3 + (Runtime_ocaml_Runtime[28],_EO_,Runtime_ocaml_Runtime[10],_bhS_); + function _bhT_(enfant) + {try + {var + _bhU_=function(param){return 0}, + _bhV_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_EQ_,1)}, + _bhW_= + [0, + function(param) + {function _bhZ_(param){throw Runtime_ocaml_Runtime[2]} + function _bh0_(param){return 0} + var + _bh1_= + [0, + function(param) + {function _bh2_(param){return 1} + function _bh3_(param) + {switch(enfant[2][0]) + {case 0:var _bic_=0;break; + case 1:var _bic_=1;break; + default:var _bic_=0} + switch(enfant[2][0]) + {case 0:var _bid_=1;break; + case 1:var _bid_=0;break; + default:var _bid_=0} + var _bie_=caml_call2(Runtime_ocaml_Runtime[84],_bid_,_bic_); + return caml_call2(Runtime_ocaml_Runtime[29],_ER_,_bie_)} + var + _bh4_= + [0, + function(param) + {function _bh5_(param){return 1} + function _bh6_(param) + {var + _bh7_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _ES_, + embed_verification_age_superie$2, + [0,enfant[4],date_courante,age_l512_3_2$0]), + result= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _ET_, + verification_age_superieur_a$1), + _bh7_), + result$0=[0,result[1]]; + caml_call2(Runtime_ocaml_Runtime[29],_EU_,1); + var + _bh8_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _EV_, + embed_verification_age_superie$1, + result$0), + _bh9_=caml_call2(Runtime_ocaml_Runtime[27],_EW_,_bh8_)[1], + _bh__= + caml_call2 + (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2), + _bh$_=caml_call2(Runtime_ocaml_Runtime[83],_bh__,_bh9_); + switch(enfant[2][0]) + {case 0:var _bia_=0;break; + case 1:var _bia_=0;break; + default:var _bia_=1} + var _bib_=caml_call2(Runtime_ocaml_Runtime[83],_bia_,_bh$_); + return caml_call2(Runtime_ocaml_Runtime[29],_EX_,_bib_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_EY_,[0],_bh6_,_bh5_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_EZ_,_bh4_,_bh3_,_bh2_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_E0_,_bh1_,_bh0_,_bhZ_)}], + _bhX_=caml_call4(Runtime_ocaml_Runtime[63],_E1_,_bhW_,_bhV_,_bhU_); + return _bhX_} + catch(_bhY_) + {_bhY_ = caml_wrap_exception(_bhY_); + if(_bhY_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_EP_]; + throw _bhY_}} + var + droit_ouvert= + caml_call3 + (Runtime_ocaml_Runtime[28],_E2_,Runtime_ocaml_Runtime[10],_bhT_); + return [0, + age_l512_3_2$0, + droit_ouvert, + conditions_hors_age, + regime_outre_mer_l751_1]} + function calcul_allocation_logement_loc(calcul_allocation_logement_loc) + {var + loyer_principal=calcul_allocation_logement_loc[1], + ressources_menage_arrondies=calcul_allocation_logement_loc[2], + beneficiaire_aide_adulte_ou_en=calcul_allocation_logement_loc[3], + date_courante=calcul_allocation_logement_loc[4], + nombre_personnes_a_charge=calcul_allocation_logement_loc[5], + situation_familiale_calcul_apl=calcul_allocation_logement_loc[6], + zone=calcul_allocation_logement_loc[7], + logement_est_chambre=calcul_allocation_logement_loc[8], + agees_ou_handicap_adultes_hebe=calcul_allocation_logement_loc[9], + type_aide=calcul_allocation_logement_loc[10], + colocation=calcul_allocation_logement_loc[11], + reduction_loyer_solidarite=calcul_allocation_logement_loc[12], + logement_meuble_d842_2=calcul_allocation_logement_loc[13], + residence=calcul_allocation_logement_loc[14], + changement_logement_d842_4=calcul_allocation_logement_loc[15]; + try + {var + _bgl_=function(param){return loyer_principal}, + _bgm_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_E4_,1)}, + _bgn_=caml_call4(Runtime_ocaml_Runtime[63],_E5_,[0],_bgm_,_bgl_), + calcul_apl_locatif_dot_loyer_p= + caml_call3 + (Runtime_ocaml_Runtime[28],_E6_,Runtime_ocaml_Runtime[13],_bgn_)} + catch(_bhy_) + {_bhy_ = caml_wrap_exception(_bhy_); + if(_bhy_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_E3_]; + throw _bhy_} + try + {var + _bgo_=function(param){return ressources_menage_arrondies}, + _bgp_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_E8_,1)}, + _bgq_=caml_call4(Runtime_ocaml_Runtime[63],_E9_,[0],_bgp_,_bgo_), + calcul_apl_locatif_dot_ressour= + caml_call3 + (Runtime_ocaml_Runtime[28],_E__,Runtime_ocaml_Runtime[13],_bgq_)} + catch(_bhx_) + {_bhx_ = caml_wrap_exception(_bhx_); + if(_bhx_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_E7_]; + throw _bhx_} + try + {var + _bgr_=function(param){return beneficiaire_aide_adulte_ou_en}, + _bgs_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fa_,1)}, + _bgt_=caml_call4(Runtime_ocaml_Runtime[63],_Fb_,[0],_bgs_,_bgr_), + calcul_apl_locatif_dot_benefic= + caml_call3 + (Runtime_ocaml_Runtime[28],_Fc_,Runtime_ocaml_Runtime[12],_bgt_)} + catch(_bhw_) + {_bhw_ = caml_wrap_exception(_bhw_); + if(_bhw_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_E$_]; + throw _bhw_} + try + {var + _bgu_=function(param){return date_courante}, + _bgv_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fe_,1)}, + _bgw_=caml_call4(Runtime_ocaml_Runtime[63],_Ff_,[0],_bgv_,_bgu_), + calcul_apl_locatif_dot_date_co= + caml_call3 + (Runtime_ocaml_Runtime[28],_Fg_,Runtime_ocaml_Runtime[16],_bgw_)} + catch(_bhv_) + {_bhv_ = caml_wrap_exception(_bhv_); + if(_bhv_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Fd_]; + throw _bhv_} + try + {var + _bgx_=function(param){return nombre_personnes_a_charge}, + _bgy_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fi_,1)}, + _bgz_=caml_call4(Runtime_ocaml_Runtime[63],_Fj_,[0],_bgy_,_bgx_), + calcul_apl_locatif_dot_nombre_= + caml_call3 + (Runtime_ocaml_Runtime[28],_Fk_,Runtime_ocaml_Runtime[14],_bgz_)} + catch(_bhu_) + {_bhu_ = caml_wrap_exception(_bhu_); + if(_bhu_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Fh_]; + throw _bhu_} + try + {var + _bgA_=function(param){return situation_familiale_calcul_apl}, + _bgB_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fm_,1)}, + _bgC_=caml_call4(Runtime_ocaml_Runtime[63],_Fn_,[0],_bgB_,_bgA_), + calcul_apl_locatif_dot_situati= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Fo_, + embed_situation_familiale_calc, + _bgC_)} + catch(_bht_) + {_bht_ = caml_wrap_exception(_bht_); + if(_bht_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Fl_]; + throw _bht_} + try + {var + _bgD_=function(param){return zone}, + _bgE_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fq_,1)}, + _bgF_=caml_call4(Runtime_ocaml_Runtime[63],_Fr_,[0],_bgE_,_bgD_), + calcul_apl_locatif_dot_zone= + caml_call3 + (Runtime_ocaml_Runtime[28],_Fs_,embed_zone_d_habitation,_bgF_)} + catch(_bhs_) + {_bhs_ = caml_wrap_exception(_bhs_); + if(_bhs_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Fp_]; + throw _bhs_} + try + {var + _bgG_=function(param){return logement_est_chambre}, + _bgH_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fu_,1)}, + _bgI_=caml_call4(Runtime_ocaml_Runtime[63],_Fv_,[0],_bgH_,_bgG_), + calcul_apl_locatif_dot_logemen= + caml_call3 + (Runtime_ocaml_Runtime[28],_Fw_,Runtime_ocaml_Runtime[12],_bgI_)} + catch(_bhr_) + {_bhr_ = caml_wrap_exception(_bhr_); + if(_bhr_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ft_]; + throw _bhr_} + try + {var + _bgJ_=function(param){return agees_ou_handicap_adultes_hebe}, + _bgK_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fy_,1)}, + _bgL_=caml_call4(Runtime_ocaml_Runtime[63],_Fz_,[0],_bgK_,_bgJ_), + calcul_apl_locatif_dot_agees_o= + caml_call3 + (Runtime_ocaml_Runtime[28],_FA_,Runtime_ocaml_Runtime[12],_bgL_)} + catch(_bhq_) + {_bhq_ = caml_wrap_exception(_bhq_); + if(_bhq_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Fx_]; + throw _bhq_} + try + {var + _bgM_=function(param){return type_aide}, + _bgN_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FC_,1)}, + _bgO_=caml_call4(Runtime_ocaml_Runtime[63],_FD_,[0],_bgN_,_bgM_), + calcul_apl_locatif_dot_type_ai= + caml_call3 + (Runtime_ocaml_Runtime[28], + _FE_, + embed_type_aides_personnelle_l, + _bgO_)} + catch(_bhp_) + {_bhp_ = caml_wrap_exception(_bhp_); + if(_bhp_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_FB_]; + throw _bhp_} + try + {var + _bgP_=function(param){return colocation}, + _bgQ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FG_,1)}, + _bgR_=caml_call4(Runtime_ocaml_Runtime[63],_FH_,[0],_bgQ_,_bgP_), + calcul_apl_locatif_dot_colocat= + caml_call3 + (Runtime_ocaml_Runtime[28],_FI_,Runtime_ocaml_Runtime[12],_bgR_)} + catch(_bho_) + {_bho_ = caml_wrap_exception(_bho_); + if(_bho_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_FF_]; + throw _bho_} + try + {var + _bgS_=function(param){return reduction_loyer_solidarite}, + _bgT_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FK_,1)}, + _bgU_=caml_call4(Runtime_ocaml_Runtime[63],_FL_,[0],_bgT_,_bgS_), + calcul_apl_locatif_dot_reducti= + caml_call3 + (Runtime_ocaml_Runtime[28],_FM_,Runtime_ocaml_Runtime[13],_bgU_)} + catch(_bhn_) + {_bhn_ = caml_wrap_exception(_bhn_); + if(_bhn_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_FJ_]; + throw _bhn_} + try + {var + _bgV_=function(param){return logement_meuble_d842_2}, + _bgW_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FO_,1)}, + _bgX_=caml_call4(Runtime_ocaml_Runtime[63],_FP_,[0],_bgW_,_bgV_), + calcul_apl_locatif_dot_logemen$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_FQ_,Runtime_ocaml_Runtime[12],_bgX_)} + catch(_bhm_) + {_bhm_ = caml_wrap_exception(_bhm_); + if(_bhm_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_FN_]; + throw _bhm_} + try + {var + _bgY_=function(param){return residence}, + _bgZ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FS_,1)}, + _bg0_=caml_call4(Runtime_ocaml_Runtime[63],_FT_,[0],_bgZ_,_bgY_), + calcul_apl_locatif_dot_residen= + caml_call3 + (Runtime_ocaml_Runtime[28],_FU_,embed_collectivite$0,_bg0_)} + catch(_bhl_) + {_bhl_ = caml_wrap_exception(_bhl_); + if(_bhl_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_FR_]; + throw _bhl_} + var + _bg1_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_FV_,calcul_aide_personnalisee_loge), + [0, + calcul_apl_locatif_dot_loyer_p, + calcul_apl_locatif_dot_ressour, + calcul_apl_locatif_dot_benefic, + calcul_apl_locatif_dot_date_co, + calcul_apl_locatif_dot_nombre_, + calcul_apl_locatif_dot_situati, + calcul_apl_locatif_dot_zone, + calcul_apl_locatif_dot_logemen, + calcul_apl_locatif_dot_agees_o, + calcul_apl_locatif_dot_type_ai, + calcul_apl_locatif_dot_colocat, + calcul_apl_locatif_dot_reducti, + calcul_apl_locatif_dot_logemen$0, + calcul_apl_locatif_dot_residen]), + result=caml_call2(Runtime_ocaml_Runtime[27],_FW_,_bg1_), + calcul_apl_locatif_dot_aide_fi=result[6], + calcul_apl_locatif_dot_traitem=result[7]; + function _bg2_(aide_finale) + {try + {var + _bha_= + function(param) + {var + _bhi_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _FY_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bhj_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _FZ_, + calcul_apl_locatif_dot_traitem), + _bhi_), + _bhk_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _F0_, + Runtime_ocaml_Runtime[13], + _bhj_); + return caml_call2(Runtime_ocaml_Runtime[27],_F1_,_bhk_)}, + _bhb_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_F2_,1)}, + _bhc_= + [0, + function(param) + {function _bhf_(param){return aide_finale} + function _bhg_(param) + {if(0 === changement_logement_d842_4[0]) + var + infos=changement_logement_d842_4[1], + _bhh_= + caml_call2 + (Runtime_ocaml_Runtime[128],loyer_principal,infos[1]); + else + var _bhh_=0; + return caml_call2(Runtime_ocaml_Runtime[29],_F3_,_bhh_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_F4_,[0],_bhg_,_bhf_)}], + _bhd_=caml_call4(Runtime_ocaml_Runtime[63],_F5_,_bhc_,_bhb_,_bha_); + return _bhd_} + catch(_bhe_) + {_bhe_ = caml_wrap_exception(_bhe_); + if(_bhe_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_FX_]; + throw _bhe_}} + var + traitement_aide_finale= + caml_call3 + (Runtime_ocaml_Runtime[28],_F6_,Runtime_ocaml_Runtime[10],_bg2_); + try + {var + _bg3_=function(param){return calcul_apl_locatif_dot_aide_fi}, + _bg4_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_F8_,1)}, + _bg5_= + [0, + function(param) + {function _bg8_(param) + {if(0 !== changement_logement_d842_4[0]) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$314); + var + infos=changement_logement_d842_4[1], + _bg$_=caml_call2(Runtime_ocaml_Runtime[98],infos[1],infos[2]); + return caml_call2 + (Runtime_ocaml_Runtime[98],loyer_principal,_bg$_)} + function _bg9_(param) + {if(0 === changement_logement_d842_4[0]) + var + infos=changement_logement_d842_4[1], + _bg__= + caml_call2 + (Runtime_ocaml_Runtime[128],loyer_principal,infos[1]); + else + var _bg__=0; + return caml_call2(Runtime_ocaml_Runtime[29],_F9_,_bg__)} + return caml_call4(Runtime_ocaml_Runtime[63],_F__,[0],_bg9_,_bg8_)}], + _bg6_=caml_call4(Runtime_ocaml_Runtime[63],_F$_,_bg5_,_bg4_,_bg3_)} + catch(_bg7_) + {_bg7_ = caml_wrap_exception(_bg7_); + if(_bg7_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_F7_]; + throw _bg7_} + var + aide_finale_formule= + caml_call3 + (Runtime_ocaml_Runtime[28],_Ga_,Runtime_ocaml_Runtime[13],_bg6_); + return [0,aide_finale_formule,traitement_aide_finale]} + function calcul_allocation_logement_foy(calcul_allocation_logement_foy) + {var + type_logement_foyer=calcul_allocation_logement_foy[1], + date_conventionnement=calcul_allocation_logement_foy[2], + residence=calcul_allocation_logement_foy[3], + redevance=calcul_allocation_logement_foy[4], + ressources_menage_arrondies=calcul_allocation_logement_foy[5], + nombre_personnes_a_charge=calcul_allocation_logement_foy[6], + situation_familiale_calcul_apl=calcul_allocation_logement_foy[7], + zone=calcul_allocation_logement_foy[8], + date_courante=calcul_allocation_logement_foy[9], + categorie_equivalence_loyer_d8=calcul_allocation_logement_foy[10]; + try + {var + _a94_=function(param){return 1}, + _a95_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Gc_,1)}, + _a96_=caml_call4(Runtime_ocaml_Runtime[63],_Gd_,[0],_a95_,_a94_), + calcul_nombre_parts_dot_condit= + caml_call3 + (Runtime_ocaml_Runtime[28],_Ge_,Runtime_ocaml_Runtime[12],_a96_)} + catch(_bgk_) + {_bgk_ = caml_wrap_exception(_bgk_); + if(_bgk_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Gb_]; + throw _bgk_} + try + {var + _a97_=function(param){return nombre_personnes_a_charge}, + _a98_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Gg_,1)}, + _a99_=caml_call4(Runtime_ocaml_Runtime[63],_Gh_,[0],_a98_,_a97_), + calcul_nombre_parts_dot_nombre= + caml_call3 + (Runtime_ocaml_Runtime[28],_Gi_,Runtime_ocaml_Runtime[14],_a99_)} + catch(_bgj_) + {_bgj_ = caml_wrap_exception(_bgj_); + if(_bgj_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Gf_]; + throw _bgj_} + try + {var + _a9__=function(param){return situation_familiale_calcul_apl}, + _a9$_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Gk_,1)}, + _a_a_=caml_call4(Runtime_ocaml_Runtime[63],_Gl_,[0],_a9$_,_a9__), + calcul_nombre_parts_dot_situat= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Gm_, + embed_situation_familiale_calc, + _a_a_)} + catch(_bgi_) + {_bgi_ = caml_wrap_exception(_bgi_); + if(_bgi_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Gj_]; + throw _bgi_} + try + {var + _a_b_=function(param){return residence}, + _a_c_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Go_,1)}, + _a_d_=caml_call4(Runtime_ocaml_Runtime[63],_Gp_,[0],_a_c_,_a_b_), + calcul_nombre_parts_dot_reside= + caml_call3 + (Runtime_ocaml_Runtime[28],_Gq_,embed_collectivite$0,_a_d_)} + catch(_bgh_) + {_bgh_ = caml_wrap_exception(_bgh_); + if(_bgh_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Gn_]; + throw _bgh_} + function calcul_nombre_parts_dot_limita(param) + {throw Runtime_ocaml_Runtime[2]} + var + _a_e_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_Gr_,calcul_nombre_part_logement_fo), + [0, + calcul_nombre_parts_dot_condit, + calcul_nombre_parts_dot_nombre, + calcul_nombre_parts_dot_situat, + calcul_nombre_parts_dot_reside, + calcul_nombre_parts_dot_limita]), + result=caml_call2(Runtime_ocaml_Runtime[27],_Gs_,_a_e_), + calcul_nombre_parts_dot_n_nomb=result[1]; + try + {var + _a_f_=function(param){return date_courante}, + _a_g_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Gu_,1)}, + _a_h_=caml_call4(Runtime_ocaml_Runtime[63],_Gv_,[0],_a_g_,_a_f_), + contributions_sociales_dot_dat= + caml_call3 + (Runtime_ocaml_Runtime[28],_Gw_,Runtime_ocaml_Runtime[16],_a_h_)} + catch(_bgg_) + {_bgg_ = caml_wrap_exception(_bgg_); + if(_bgg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Gt_]; + throw _bgg_} + var + _a_i_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_Gx_,contributions_sociales_aides_p), + [0,contributions_sociales_dot_dat]), + result$0=caml_call2(Runtime_ocaml_Runtime[27],_Gy_,_a_i_), + contributions_sociales_dot_mon=result$0[1]; + try + {var + _a_j_=function(param){return type_logement_foyer}, + _a_k_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GA_,1)}, + _a_l_=caml_call4(Runtime_ocaml_Runtime[63],_GB_,[0],_a_k_,_a_j_), + calcul_apl_logement_foyer_dot_= + caml_call3 + (Runtime_ocaml_Runtime[28],_GC_,embed_type_logement_foyer,_a_l_)} + catch(_bgf_) + {_bgf_ = caml_wrap_exception(_bgf_); + if(_bgf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Gz_]; + throw _bgf_} + try + {var + _a_m_=function(param){return date_conventionnement}, + _a_n_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GE_,1)}, + _a_o_=caml_call4(Runtime_ocaml_Runtime[63],_GF_,[0],_a_n_,_a_m_), + calcul_apl_logement_foyer_dot_$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_GG_,Runtime_ocaml_Runtime[16],_a_o_)} + catch(_bge_) + {_bge_ = caml_wrap_exception(_bge_); + if(_bge_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_GD_]; + throw _bge_} + try + {var + _a_p_=function(param){return ressources_menage_arrondies}, + _a_q_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GI_,1)}, + _a_r_=caml_call4(Runtime_ocaml_Runtime[63],_GJ_,[0],_a_q_,_a_p_), + calcul_apl_logement_foyer_dot_$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_GK_,Runtime_ocaml_Runtime[13],_a_r_)} + catch(_bgd_) + {_bgd_ = caml_wrap_exception(_bgd_); + if(_bgd_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_GH_]; + throw _bgd_} + try + {var + _a_s_=function(param){return nombre_personnes_a_charge}, + _a_t_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GM_,1)}, + _a_u_=caml_call4(Runtime_ocaml_Runtime[63],_GN_,[0],_a_t_,_a_s_), + calcul_apl_logement_foyer_dot_$2= + caml_call3 + (Runtime_ocaml_Runtime[28],_GO_,Runtime_ocaml_Runtime[14],_a_u_)} + catch(_bgc_) + {_bgc_ = caml_wrap_exception(_bgc_); + if(_bgc_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_GL_]; + throw _bgc_} + try + {var + _a_v_=function(param){return situation_familiale_calcul_apl}, + _a_w_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GQ_,1)}, + _a_x_=caml_call4(Runtime_ocaml_Runtime[63],_GR_,[0],_a_w_,_a_v_), + calcul_apl_logement_foyer_dot_$3= + caml_call3 + (Runtime_ocaml_Runtime[28], + _GS_, + embed_situation_familiale_calc, + _a_x_)} + catch(_bgb_) + {_bgb_ = caml_wrap_exception(_bgb_); + if(_bgb_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_GP_]; + throw _bgb_} + try + {var + _a_y_=function(param){return zone}, + _a_z_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GU_,1)}, + _a_A_=caml_call4(Runtime_ocaml_Runtime[63],_GV_,[0],_a_z_,_a_y_), + calcul_apl_logement_foyer_dot_$4= + caml_call3 + (Runtime_ocaml_Runtime[28],_GW_,embed_zone_d_habitation,_a_A_)} + catch(_bga_) + {_bga_ = caml_wrap_exception(_bga_); + if(_bga_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_GT_]; + throw _bga_} + try + {var + _a_B_=function(param){return date_courante}, + _a_C_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GY_,1)}, + _a_D_=caml_call4(Runtime_ocaml_Runtime[63],_GZ_,[0],_a_C_,_a_B_), + calcul_apl_logement_foyer_dot_$5= + caml_call3 + (Runtime_ocaml_Runtime[28],_G0_,Runtime_ocaml_Runtime[16],_a_D_)} + catch(_bf$_) + {_bf$_ = caml_wrap_exception(_bf$_); + if(_bf$_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_GX_]; + throw _bf$_} + try + {var + _a_E_=function(param){return redevance}, + _a_F_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_G2_,1)}, + _a_G_=caml_call4(Runtime_ocaml_Runtime[63],_G3_,[0],_a_F_,_a_E_), + calcul_apl_logement_foyer_dot_$6= + caml_call3 + (Runtime_ocaml_Runtime[28],_G4_,Runtime_ocaml_Runtime[13],_a_G_)} + catch(_bf__) + {_bf__ = caml_wrap_exception(_bf__); + if(_bf__ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_G1_]; + throw _bf__} + try + {var + _a_H_=function(param){return residence}, + _a_I_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_G6_,1)}, + _a_J_=caml_call4(Runtime_ocaml_Runtime[63],_G7_,[0],_a_I_,_a_H_), + calcul_apl_logement_foyer_dot_$7= + caml_call3 + (Runtime_ocaml_Runtime[28],_G8_,embed_collectivite$0,_a_J_)} + catch(_bf9_) + {_bf9_ = caml_wrap_exception(_bf9_); + if(_bf9_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_G5_]; + throw _bf9_} + function calcul_apl_logement_foyer_dot_$8(param) + {function _bf6_(param){return 1} + function _bf7_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_G9_,1)} + var _bf8_=caml_call4(Runtime_ocaml_Runtime[63],_G__,[0],_bf7_,_bf6_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _G$_, + Runtime_ocaml_Runtime[12], + _bf8_)} + function calcul_apl_logement_foyer_dot_$9(param) + {function _bf2_(param){return 1} + function _bf3_(param) + {switch(residence[0]) + {case 0:var _bf5_=1;break; + case 1:var _bf5_=1;break; + case 2:var _bf5_=1;break; + case 3:var _bf5_=1;break; + case 4:var _bf5_=0;break; + case 5:var _bf5_=0;break; + case 6:var _bf5_=0;break; + case 7:var _bf5_=0;break; + default:var _bf5_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_Ha_,_bf5_)} + var _bf4_=caml_call4(Runtime_ocaml_Runtime[63],_Hb_,[0],_bf3_,_bf2_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _Hc_, + Runtime_ocaml_Runtime[12], + _bf4_)} + function calcul_apl_logement_foyer_dot_$10(param) + {throw Runtime_ocaml_Runtime[2]} + var + _a_K_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_Hd_,calcul_aide_personnalisee_loge$0), + [0, + calcul_apl_logement_foyer_dot_, + calcul_apl_logement_foyer_dot_$0, + calcul_apl_logement_foyer_dot_$1, + calcul_apl_logement_foyer_dot_$2, + calcul_apl_logement_foyer_dot_$3, + calcul_apl_logement_foyer_dot_$4, + calcul_apl_logement_foyer_dot_$5, + calcul_apl_logement_foyer_dot_$6, + calcul_apl_logement_foyer_dot_$7, + calcul_apl_logement_foyer_dot_$8, + calcul_apl_logement_foyer_dot_$9, + calcul_apl_logement_foyer_dot_$10]), + result$1=caml_call2(Runtime_ocaml_Runtime[27],_He_,_a_K_), + calcul_apl_logement_foyer_dot_$11=result$1[7]; + try + {var + _a_L_= + function(param) + {function _bfN_(param){throw Runtime_ocaml_Runtime[2]} + function _bfO_(param){return 0} + var + _bfP_= + [0, + function(param) + {function _bfQ_(param) + {return caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} + function _bfR_(param) + {var + _bf0_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bf1_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bf0_); + return caml_call2(Runtime_ocaml_Runtime[29],_Hg_,_bf1_)} + var + _bfS_= + [0, + function(param) + {function _bfT_(param) + {return caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} + function _bfU_(param) + {var + _bfV_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bfW_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bfV_), + _bfX_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bfY_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bfX_), + _bfZ_=caml_call2(Runtime_ocaml_Runtime[83],_bfY_,_bfW_); + return caml_call2(Runtime_ocaml_Runtime[29],_Hh_,_bfZ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Hi_,[0],_bfU_,_bfT_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Hj_,_bfS_,_bfR_,_bfQ_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Hk_,_bfP_,_bfO_,_bfN_)}, + _a_M_=function(param){return 1}, + _a_N_= + [0, + function(param) + {function _beK_(param){throw Runtime_ocaml_Runtime[2]} + function _beL_(param){return 0} + var + _beM_= + [0, + function(param) + {function _beN_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$47)} + function _beO_(param) + {var + _bfD_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$48), + _bfE_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bfD_); + switch(residence[0]) + {case 0:var _bfF_=1;break; + case 1:var _bfF_=0;break; + case 2:var _bfF_=1;break; + case 3:var _bfF_=1;break; + case 4:var _bfF_=1;break; + case 5:var _bfF_=1;break; + case 6:var _bfF_=0;break; + case 7:var _bfF_=0;break; + default:var _bfF_=1} + var + _bfG_=caml_call2(Runtime_ocaml_Runtime[83],_bfF_,_bfE_), + _bfH_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _bfI_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bfH_), + _bfJ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bfK_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bfJ_), + _bfL_=caml_call2(Runtime_ocaml_Runtime[83],_bfK_,_bfI_), + _bfM_=caml_call2(Runtime_ocaml_Runtime[83],_bfL_,_bfG_); + return caml_call2(Runtime_ocaml_Runtime[29],_Hl_,_bfM_)} + var + _beP_= + [0, + function(param) + {function _beQ_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$49)} + function _beR_(param) + {var + _bft_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$50), + _bfu_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bft_); + switch(residence[0]) + {case 0:var _bfv_=1;break; + case 1:var _bfv_=0;break; + case 2:var _bfv_=1;break; + case 3:var _bfv_=1;break; + case 4:var _bfv_=1;break; + case 5:var _bfv_=1;break; + case 6:var _bfv_=0;break; + case 7:var _bfv_=0;break; + default:var _bfv_=1} + var + _bfw_=caml_call2(Runtime_ocaml_Runtime[83],_bfv_,_bfu_), + _bfx_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bfy_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bfx_), + _bfz_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _bfA_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bfz_), + _bfB_=caml_call2(Runtime_ocaml_Runtime[83],_bfA_,_bfy_), + _bfC_=caml_call2(Runtime_ocaml_Runtime[83],_bfB_,_bfw_); + return caml_call2(Runtime_ocaml_Runtime[29],_Hm_,_bfC_)} + var + _beS_= + [0, + function(param) + {function _beT_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$51)} + function _beU_(param) + {var + _bfj_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$52), + _bfk_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bfj_); + switch(residence[0]) + {case 0:var _bfl_=1;break; + case 1:var _bfl_=0;break; + case 2:var _bfl_=1;break; + case 3:var _bfl_=1;break; + case 4:var _bfl_=1;break; + case 5:var _bfl_=1;break; + case 6:var _bfl_=0;break; + case 7:var _bfl_=0;break; + default:var _bfl_=1} + var + _bfm_=caml_call2(Runtime_ocaml_Runtime[83],_bfl_,_bfk_), + _bfn_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _bfo_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bfn_), + _bfp_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bfq_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bfp_), + _bfr_=caml_call2(Runtime_ocaml_Runtime[83],_bfq_,_bfo_), + _bfs_=caml_call2(Runtime_ocaml_Runtime[83],_bfr_,_bfm_); + return caml_call2(Runtime_ocaml_Runtime[29],_Hn_,_bfs_)} + var + _beV_= + [0, + function(param) + {function _beW_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$53)} + function _beX_(param) + {var + _be$_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$54), + _bfa_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_be$_); + switch(residence[0]) + {case 0:var _bfb_=1;break; + case 1:var _bfb_=0;break; + case 2:var _bfb_=1;break; + case 3:var _bfb_=1;break; + case 4:var _bfb_=1;break; + case 5:var _bfb_=1;break; + case 6:var _bfb_=0;break; + case 7:var _bfb_=0;break; + default:var _bfb_=1} + var + _bfc_=caml_call2(Runtime_ocaml_Runtime[83],_bfb_,_bfa_), + _bfd_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bfe_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bfd_), + _bff_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bfg_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bff_), + _bfh_=caml_call2(Runtime_ocaml_Runtime[83],_bfg_,_bfe_), + _bfi_=caml_call2(Runtime_ocaml_Runtime[83],_bfh_,_bfc_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ho_,_bfi_)} + var + _beY_= + [0, + function(param) + {function _beZ_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$55)} + function _be0_(param) + {var + _be1_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$56), + _be2_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_be1_); + switch(residence[0]) + {case 0:var _be3_=1;break; + case 1:var _be3_=0;break; + case 2:var _be3_=1;break; + case 3:var _be3_=1;break; + case 4:var _be3_=1;break; + case 5:var _be3_=1;break; + case 6:var _be3_=0;break; + case 7:var _be3_=0;break; + default:var _be3_=1} + var + _be4_=caml_call2(Runtime_ocaml_Runtime[83],_be3_,_be2_), + _be5_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _be6_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_be5_), + _be7_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _be8_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_be7_), + _be9_=caml_call2(Runtime_ocaml_Runtime[83],_be8_,_be6_), + _be__=caml_call2(Runtime_ocaml_Runtime[83],_be9_,_be4_); + return caml_call2(Runtime_ocaml_Runtime[29],_Hp_,_be__)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Hq_,[0],_be0_,_beZ_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Hr_,_beY_,_beX_,_beW_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Hs_,_beV_,_beU_,_beT_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ht_,_beS_,_beR_,_beQ_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Hu_,_beP_,_beO_,_beN_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Hv_,_beM_,_beL_,_beK_)}], + _a_O_=caml_call4(Runtime_ocaml_Runtime[63],_Hw_,_a_N_,_a_M_,_a_L_)} + catch(_beJ_) + {_beJ_ = caml_wrap_exception(_beJ_); + if(_beJ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Hf_]; + throw _beJ_} + var + multiplicateur_majoration_char= + caml_call3 + (Runtime_ocaml_Runtime[28],_Hx_,Runtime_ocaml_Runtime[15],_a_O_); + try + {var + _a_P_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1500$0)}, + _a_Q_= + function(param) + {var + _beH_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _beI_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_beH_); + return caml_call2(Runtime_ocaml_Runtime[29],_Hz_,_beI_)}, + _a_R_=caml_call4(Runtime_ocaml_Runtime[63],_HA_,[0],_a_Q_,_a_P_)} + catch(_beG_) + {_beG_ = caml_wrap_exception(_beG_); + if(_beG_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Hy_]; + throw _beG_} + var + montant_minimal_depense_nette_= + caml_call3 + (Runtime_ocaml_Runtime[28],_HB_,Runtime_ocaml_Runtime[13],_a_R_); + try + {var + _a_S_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$2)}, + _a_T_= + function(param) + {var + _beE_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _beF_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_beE_); + return caml_call2(Runtime_ocaml_Runtime[29],_HD_,_beF_)}, + _a_U_=caml_call4(Runtime_ocaml_Runtime[63],_HE_,[0],_a_T_,_a_S_)} + catch(_beD_) + {_beD_ = caml_wrap_exception(_beD_); + if(_beD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_HC_]; + throw _beD_} + var + montant_forfaitaire_d842_15= + caml_call3 + (Runtime_ocaml_Runtime[28],_HF_,Runtime_ocaml_Runtime[13],_a_U_); + try + {var + _a_V_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$3)}, + _a_W_= + function(param) + {var + _beB_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _beC_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_beB_); + return caml_call2(Runtime_ocaml_Runtime[29],_HH_,_beC_)}, + _a_X_=caml_call4(Runtime_ocaml_Runtime[63],_HI_,[0],_a_W_,_a_V_)} + catch(_beA_) + {_beA_ = caml_wrap_exception(_beA_); + if(_beA_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_HG_]; + throw _beA_} + var + montant_minimal_aide_d842_15= + caml_call3 + (Runtime_ocaml_Runtime[28],_HJ_,Runtime_ocaml_Runtime[13],_a_X_); + try + {var + _a_Y_=function(param){throw Runtime_ocaml_Runtime[2]}, + _a_Z_=function(param){return 0}, + _a_0_= + function(param) + {function _beh_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_16941) + :caml_call1(Runtime_ocaml_Runtime[31],cst_26329)} + function _bei_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bet_=0;break; + case 1:var _bet_=1;break; + case 2:var _bet_=0;break; + default:var _bet_=0} + var + _beu_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bev_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_beu_), + _bew_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bex_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bew_), + _bey_=caml_call2(Runtime_ocaml_Runtime[83],_bex_,_bev_), + _bez_=caml_call2(Runtime_ocaml_Runtime[83],_bey_,_bet_); + return caml_call2(Runtime_ocaml_Runtime[29],_HL_,_bez_)} + var + _bej_= + [0, + function(param) + {function _bek_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_16941$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_26329$0)} + function _bel_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bem_=0;break; + case 1:var _bem_=0;break; + case 2:var _bem_=0;break; + default:var _bem_=1} + var + _ben_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _beo_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ben_), + _bep_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _beq_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bep_), + _ber_=caml_call2(Runtime_ocaml_Runtime[83],_beq_,_beo_), + _bes_=caml_call2(Runtime_ocaml_Runtime[83],_ber_,_bem_); + return caml_call2(Runtime_ocaml_Runtime[29],_HM_,_bes_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_HN_,[0],_bel_,_bek_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_HO_,_bej_,_bei_,_beh_)}, + _a_1_= + function(param) + {function _bd__(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_20554) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31939)} + function _bd$_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bea_=0;break; + case 1:var _bea_=0;break; + case 2:var _bea_=1;break; + default:var _bea_=0} + var + _beb_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bec_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_beb_), + _bed_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bee_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bed_), + _bef_=caml_call2(Runtime_ocaml_Runtime[83],_bee_,_bec_), + _beg_=caml_call2(Runtime_ocaml_Runtime[83],_bef_,_bea_); + return caml_call2(Runtime_ocaml_Runtime[29],_HP_,_beg_)} + return caml_call4(Runtime_ocaml_Runtime[63],_HQ_,[0],_bd$_,_bd__)}, + _a_2_= + function(param) + {function _bd1_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_8379) + :caml_call1(Runtime_ocaml_Runtime[31],cst_13045)} + function _bd2_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bd3_=1;break; + case 1:var _bd3_=0;break; + case 2:var _bd3_=0;break; + default:var _bd3_=0} + var + _bd4_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bd5_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bd4_), + _bd6_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bd7_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bd6_), + _bd8_=caml_call2(Runtime_ocaml_Runtime[83],_bd7_,_bd5_), + _bd9_=caml_call2(Runtime_ocaml_Runtime[83],_bd8_,_bd3_); + return caml_call2(Runtime_ocaml_Runtime[29],_HR_,_bd9_)} + return caml_call4(Runtime_ocaml_Runtime[63],_HS_,[0],_bd2_,_bd1_)}, + _a_3_= + function(param) + {function _bdI_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_17012) + :caml_call1(Runtime_ocaml_Runtime[31],cst_26440)} + function _bdJ_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bdU_=0;break; + case 1:var _bdU_=1;break; + case 2:var _bdU_=0;break; + default:var _bdU_=0} + var + _bdV_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bdW_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bdV_), + _bdX_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bdY_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdX_), + _bdZ_=caml_call2(Runtime_ocaml_Runtime[83],_bdY_,_bdW_), + _bd0_=caml_call2(Runtime_ocaml_Runtime[83],_bdZ_,_bdU_); + return caml_call2(Runtime_ocaml_Runtime[29],_HT_,_bd0_)} + var + _bdK_= + [0, + function(param) + {function _bdL_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_17012$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_26440$0)} + function _bdM_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bdN_=0;break; + case 1:var _bdN_=0;break; + case 2:var _bdN_=0;break; + default:var _bdN_=1} + var + _bdO_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bdP_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bdO_), + _bdQ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bdR_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdQ_), + _bdS_=caml_call2(Runtime_ocaml_Runtime[83],_bdR_,_bdP_), + _bdT_=caml_call2(Runtime_ocaml_Runtime[83],_bdS_,_bdN_); + return caml_call2(Runtime_ocaml_Runtime[29],_HU_,_bdT_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_HV_,[0],_bdM_,_bdL_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_HW_,_bdK_,_bdJ_,_bdI_)}, + _a_4_= + function(param) + {function _bdz_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_20640) + :caml_call1(Runtime_ocaml_Runtime[31],cst_32073)} + function _bdA_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bdB_=0;break; + case 1:var _bdB_=0;break; + case 2:var _bdB_=1;break; + default:var _bdB_=0} + var + _bdC_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bdD_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bdC_), + _bdE_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bdF_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdE_), + _bdG_=caml_call2(Runtime_ocaml_Runtime[83],_bdF_,_bdD_), + _bdH_=caml_call2(Runtime_ocaml_Runtime[83],_bdG_,_bdB_); + return caml_call2(Runtime_ocaml_Runtime[29],_HX_,_bdH_)} + return caml_call4(Runtime_ocaml_Runtime[63],_HY_,[0],_bdA_,_bdz_)}, + _a_5_= + function(param) + {function _bdq_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_8414) + :caml_call1(Runtime_ocaml_Runtime[31],cst_13100)} + function _bdr_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bds_=1;break; + case 1:var _bds_=0;break; + case 2:var _bds_=0;break; + default:var _bds_=0} + var + _bdt_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bdu_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bdt_), + _bdv_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bdw_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdv_), + _bdx_=caml_call2(Runtime_ocaml_Runtime[83],_bdw_,_bdu_), + _bdy_=caml_call2(Runtime_ocaml_Runtime[83],_bdx_,_bds_); + return caml_call2(Runtime_ocaml_Runtime[29],_HZ_,_bdy_)} + return caml_call4(Runtime_ocaml_Runtime[63],_H0_,[0],_bdr_,_bdq_)}, + _a_6_= + function(param) + {function _bdd_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_17607) + :caml_call1(Runtime_ocaml_Runtime[31],cst_27365)} + function _bde_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bdm_=0;break; + case 1:var _bdm_=1;break; + case 2:var _bdm_=0;break; + default:var _bdm_=0} + var + _bdn_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bdo_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdn_), + _bdp_=caml_call2(Runtime_ocaml_Runtime[83],_bdo_,_bdm_); + return caml_call2(Runtime_ocaml_Runtime[29],_H1_,_bdp_)} + var + _bdf_= + [0, + function(param) + {function _bdg_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_17607$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_27365$0)} + function _bdh_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bdi_=0;break; + case 1:var _bdi_=0;break; + case 2:var _bdi_=0;break; + default:var _bdi_=1} + var + _bdj_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bdk_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdj_), + _bdl_=caml_call2(Runtime_ocaml_Runtime[83],_bdk_,_bdi_); + return caml_call2(Runtime_ocaml_Runtime[29],_H2_,_bdl_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_H3_,[0],_bdh_,_bdg_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_H4_,_bdf_,_bde_,_bdd_)}, + _a_7_= + function(param) + {function _bc9_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_21362) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33196)} + function _bc__(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bc$_=0;break; + case 1:var _bc$_=0;break; + case 2:var _bc$_=1;break; + default:var _bc$_=0} + var + _bda_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bdb_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bda_), + _bdc_=caml_call2(Runtime_ocaml_Runtime[83],_bdb_,_bc$_); + return caml_call2(Runtime_ocaml_Runtime[29],_H5_,_bdc_)} + return caml_call4(Runtime_ocaml_Runtime[63],_H6_,[0],_bc__,_bc9_)}, + _a_8_= + [0, + function(param) + {function _bc3_(param) + {return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_8708) + :caml_call1(Runtime_ocaml_Runtime[31],cst_13559)} + function _bc4_(param) + {switch(categorie_equivalence_loyer_d8[0]) + {case 0:var _bc5_=1;break; + case 1:var _bc5_=0;break; + case 2:var _bc5_=0;break; + default:var _bc5_=0} + var + _bc6_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bc7_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bc6_), + _bc8_=caml_call2(Runtime_ocaml_Runtime[83],_bc7_,_bc5_); + return caml_call2(Runtime_ocaml_Runtime[29],_H7_,_bc8_)} + return caml_call4(Runtime_ocaml_Runtime[63],_H8_,[0],_bc4_,_bc3_)}, + _a_7_, + _a_6_, + _a_5_, + _a_4_, + _a_3_, + _a_2_, + _a_1_, + _a_0_], + _a_9_=caml_call4(Runtime_ocaml_Runtime[63],_H9_,_a_8_,_a_Z_,_a_Y_)} + catch(_bc2_) + {_bc2_ = caml_wrap_exception(_bc2_); + if(_bc2_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_HK_]; + throw _bc2_} + var + equivalence_loyer= + caml_call3 + (Runtime_ocaml_Runtime[28],_H__,Runtime_ocaml_Runtime[13],_a_9_); + try + {var + _a___=function(param){return date_courante}, + _a_$_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ia_,1)}, + _a$a_=caml_call4(Runtime_ocaml_Runtime[63],_Ib_,[0],_a_$_,_a___), + calcul_equivalence_loyer_minim$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_Ic_,Runtime_ocaml_Runtime[16],_a$a_)} + catch(_bc1_) + {_bc1_ = caml_wrap_exception(_bc1_); + if(_bc1_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_H$_]; + throw _bc1_} + try + {var + _a$b_=function(param){return ressources_menage_arrondies}, + _a$c_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ie_,1)}, + _a$d_=caml_call4(Runtime_ocaml_Runtime[63],_If_,[0],_a$c_,_a$b_), + calcul_equivalence_loyer_minim$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_Ig_,Runtime_ocaml_Runtime[13],_a$d_)} + catch(_bc0_) + {_bc0_ = caml_wrap_exception(_bc0_); + if(_bc0_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Id_]; + throw _bc0_} + try + {var + _a$e_=function(param){return 1}, + _a$f_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ii_,1)}, + _a$g_=caml_call4(Runtime_ocaml_Runtime[63],_Ij_,[0],_a$f_,_a$e_), + calcul_equivalence_loyer_minim$2= + caml_call3 + (Runtime_ocaml_Runtime[28],_Ik_,Runtime_ocaml_Runtime[12],_a$g_)} + catch(_bcZ_) + {_bcZ_ = caml_wrap_exception(_bcZ_); + if(_bcZ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ih_]; + throw _bcZ_} + try + {var + _a$h_=function(param){return calcul_nombre_parts_dot_n_nomb}, + _a$i_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Im_,1)}, + _a$j_=caml_call4(Runtime_ocaml_Runtime[63],_In_,[0],_a$i_,_a$h_), + calcul_equivalence_loyer_minim$3= + caml_call3 + (Runtime_ocaml_Runtime[28],_Io_,Runtime_ocaml_Runtime[15],_a$j_)} + catch(_bcY_) + {_bcY_ = caml_wrap_exception(_bcY_); + if(_bcY_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Il_]; + throw _bcY_} + var + _a$k_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_Ip_,calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$2=caml_call2(Runtime_ocaml_Runtime[27],_Iq_,_a$k_), + calcul_equivalence_loyer_minim$4=result$2[1]; + try + {var + _a$l_=function(param){return calcul_apl_logement_foyer_dot_$11}, + _a$m_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Is_,1)}, + _a$n_=caml_call4(Runtime_ocaml_Runtime[63],_It_,[0],_a$m_,_a$l_)} + catch(_bcX_) + {_bcX_ = caml_wrap_exception(_bcX_); + if(_bcX_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ir_]; + throw _bcX_} + var + coefficient_prise_en_charge= + caml_call3 + (Runtime_ocaml_Runtime[28],_Iu_,Runtime_ocaml_Runtime[15],_a$n_); + try + {var + _a$o_= + function(param) + {function _bcn_(param){throw Runtime_ocaml_Runtime[2]} + function _bco_(param){return 0} + function _bcp_(param) + {function _bcL_(param) + {var _bcS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$315); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bcS_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_5399$3); + var + _bcT_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bcU_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$3), + _bcV_=caml_call2(Runtime_ocaml_Runtime[104],_bcU_,_bcT_), + _bcW_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399$4); + return caml_call2(Runtime_ocaml_Runtime[93],_bcW_,_bcV_)} + function _bcM_(param) + {var + _bcN_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bcO_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bcN_), + _bcP_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bcQ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bcP_), + _bcR_=caml_call2(Runtime_ocaml_Runtime[83],_bcQ_,_bcO_); + return caml_call2(Runtime_ocaml_Runtime[29],_Iw_,_bcR_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ix_,[0],_bcM_,_bcL_)} + function _bcq_(param) + {function _bcA_(param) + {var _bcH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$316); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bcH_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_5422$3); + var + _bcI_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$3), + _bcJ_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _bcI_, + multiplicateur_majoration_char), + _bcK_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422$4); + return caml_call2(Runtime_ocaml_Runtime[93],_bcK_,_bcJ_)} + function _bcB_(param) + {var + _bcC_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bcD_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bcC_), + _bcE_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bcF_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bcE_), + _bcG_=caml_call2(Runtime_ocaml_Runtime[83],_bcF_,_bcD_); + return caml_call2(Runtime_ocaml_Runtime[29],_Iy_,_bcG_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Iz_,[0],_bcB_,_bcA_)} + var + _bcr_= + [0, + function(param) + {function _bcs_(param) + {var _bcw_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$317); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bcw_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_5612$3); + var + _bcx_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$3), + _bcy_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _bcx_, + multiplicateur_majoration_char), + _bcz_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$4); + return caml_call2(Runtime_ocaml_Runtime[93],_bcz_,_bcy_)} + function _bct_(param) + {var + _bcu_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bcv_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bcu_); + return caml_call2(Runtime_ocaml_Runtime[29],_IA_,_bcv_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_IB_,[0],_bct_,_bcs_)}, + _bcq_, + _bcp_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_IC_,_bcr_,_bco_,_bcn_)}, + _a$p_=function(param){return 1}, + _a$q_= + [0, + function(param) + {function _baN_(param){throw Runtime_ocaml_Runtime[2]} + function _baO_(param){return 0} + function _baP_(param) + {function _bb8_(param) + {var + _bcf_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bcg_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$3), + _bch_=caml_call2(Runtime_ocaml_Runtime[104],_bcg_,_bcf_), + _bci_=caml_call1(Runtime_ocaml_Runtime[31],cst_3614$3), + montant=caml_call2(Runtime_ocaml_Runtime[93],_bci_,_bch_), + _bcj_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$57), + _bck_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$4), + _bcl_=caml_call2(Runtime_ocaml_Runtime[104],_bck_,_bcj_), + _bcm_=caml_call1(Runtime_ocaml_Runtime[31],cst_3614$4), + limite=caml_call2(Runtime_ocaml_Runtime[93],_bcm_,_bcl_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _bb9_(param) + {switch(residence[0]) + {case 0:var _bb__=1;break; + case 1:var _bb__=0;break; + case 2:var _bb__=1;break; + case 3:var _bb__=1;break; + case 4:var _bb__=1;break; + case 5:var _bb__=1;break; + case 6:var _bb__=0;break; + case 7:var _bb__=0;break; + default:var _bb__=1} + var + _bb$_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bca_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bb$_), + _bcb_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _bcc_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bcb_), + _bcd_=caml_call2(Runtime_ocaml_Runtime[83],_bcc_,_bca_), + _bce_=caml_call2(Runtime_ocaml_Runtime[83],_bcd_,_bb__); + return caml_call2(Runtime_ocaml_Runtime[29],_ID_,_bce_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_IE_,[0],_bb9_,_bb8_)} + function _baQ_(param) + {function _bbR_(param) + {var + _bb0_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bb1_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$3), + _bb2_=caml_call2(Runtime_ocaml_Runtime[104],_bb1_,_bb0_), + _bb3_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625$3), + montant=caml_call2(Runtime_ocaml_Runtime[93],_bb3_,_bb2_), + _bb4_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$58), + _bb5_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$4), + _bb6_=caml_call2(Runtime_ocaml_Runtime[104],_bb5_,_bb4_), + _bb7_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625$4), + limite=caml_call2(Runtime_ocaml_Runtime[93],_bb7_,_bb6_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _bbS_(param) + {switch(residence[0]) + {case 0:var _bbT_=1;break; + case 1:var _bbT_=0;break; + case 2:var _bbT_=1;break; + case 3:var _bbT_=1;break; + case 4:var _bbT_=1;break; + case 5:var _bbT_=1;break; + case 6:var _bbT_=0;break; + case 7:var _bbT_=0;break; + default:var _bbT_=1} + var + _bbU_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bbV_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bbU_), + _bbW_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _bbX_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bbW_), + _bbY_=caml_call2(Runtime_ocaml_Runtime[83],_bbX_,_bbV_), + _bbZ_=caml_call2(Runtime_ocaml_Runtime[83],_bbY_,_bbT_); + return caml_call2(Runtime_ocaml_Runtime[29],_IF_,_bbZ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_IG_,[0],_bbS_,_bbR_)} + function _baR_(param) + {function _bbi_(param) + {var + _bbJ_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bbK_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$7), + _bbL_=caml_call2(Runtime_ocaml_Runtime[104],_bbK_,_bbJ_), + _bbM_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$7), + montant=caml_call2(Runtime_ocaml_Runtime[93],_bbM_,_bbL_), + _bbN_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$59), + _bbO_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$8), + _bbP_=caml_call2(Runtime_ocaml_Runtime[104],_bbO_,_bbN_), + _bbQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$8), + limite=caml_call2(Runtime_ocaml_Runtime[93],_bbQ_,_bbP_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _bbj_(param) + {switch(residence[0]) + {case 0:var _bbC_=1;break; + case 1:var _bbC_=0;break; + case 2:var _bbC_=1;break; + case 3:var _bbC_=1;break; + case 4:var _bbC_=1;break; + case 5:var _bbC_=1;break; + case 6:var _bbC_=0;break; + case 7:var _bbC_=0;break; + default:var _bbC_=1} + var + _bbD_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _bbE_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bbD_), + _bbF_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _bbG_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bbF_), + _bbH_=caml_call2(Runtime_ocaml_Runtime[83],_bbG_,_bbE_), + _bbI_=caml_call2(Runtime_ocaml_Runtime[83],_bbH_,_bbC_); + return caml_call2(Runtime_ocaml_Runtime[29],_IH_,_bbI_)} + var + _bbk_= + [0, + function(param) + {function _bbl_(param) + {var + _bbu_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bbv_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$9), + _bbw_=caml_call2(Runtime_ocaml_Runtime[104],_bbv_,_bbu_), + _bbx_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$9), + montant=caml_call2(Runtime_ocaml_Runtime[93],_bbx_,_bbw_), + _bby_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$60), + _bbz_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$10), + _bbA_=caml_call2(Runtime_ocaml_Runtime[104],_bbz_,_bby_), + _bbB_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$10), + limite=caml_call2(Runtime_ocaml_Runtime[93],_bbB_,_bbA_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _bbm_(param) + {switch(residence[0]) + {case 0:var _bbn_=1;break; + case 1:var _bbn_=0;break; + case 2:var _bbn_=1;break; + case 3:var _bbn_=1;break; + case 4:var _bbn_=1;break; + case 5:var _bbn_=1;break; + case 6:var _bbn_=0;break; + case 7:var _bbn_=0;break; + default:var _bbn_=1} + var + _bbo_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _bbp_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bbo_), + _bbq_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _bbr_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bbq_), + _bbs_=caml_call2(Runtime_ocaml_Runtime[83],_bbr_,_bbp_), + _bbt_=caml_call2(Runtime_ocaml_Runtime[83],_bbs_,_bbn_); + return caml_call2(Runtime_ocaml_Runtime[29],_II_,_bbt_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_IJ_,[0],_bbm_,_bbl_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_IK_,_bbk_,_bbj_,_bbi_)} + function _baS_(param) + {function _ba3_(param) + {var + _bba_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _bbb_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$5), + _bbc_=caml_call2(Runtime_ocaml_Runtime[104],_bbb_,_bba_), + _bbd_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$5), + montant=caml_call2(Runtime_ocaml_Runtime[93],_bbd_,_bbc_), + _bbe_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$61), + _bbf_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$6), + _bbg_=caml_call2(Runtime_ocaml_Runtime[104],_bbf_,_bbe_), + _bbh_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$6), + limite=caml_call2(Runtime_ocaml_Runtime[93],_bbh_,_bbg_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _ba4_(param) + {switch(residence[0]) + {case 0:var _ba5_=1;break; + case 1:var _ba5_=0;break; + case 2:var _ba5_=1;break; + case 3:var _ba5_=1;break; + case 4:var _ba5_=1;break; + case 5:var _ba5_=1;break; + case 6:var _ba5_=0;break; + case 7:var _ba5_=0;break; + default:var _ba5_=1} + var + _ba6_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _ba7_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ba6_), + _ba8_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _ba9_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ba8_), + _ba__=caml_call2(Runtime_ocaml_Runtime[83],_ba9_,_ba7_), + _ba$_=caml_call2(Runtime_ocaml_Runtime[83],_ba__,_ba5_); + return caml_call2(Runtime_ocaml_Runtime[29],_IL_,_ba$_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_IM_,[0],_ba4_,_ba3_)} + var + _baT_= + [0, + function(param) + {function _baU_(param) + {var + _ba0_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$7), + _ba1_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _ba0_, + multiplicateur_majoration_char), + _ba2_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$7); + return caml_call2(Runtime_ocaml_Runtime[93],_ba2_,_ba1_)} + function _baV_(param) + {switch(residence[0]) + {case 0:var _baW_=1;break; + case 1:var _baW_=0;break; + case 2:var _baW_=1;break; + case 3:var _baW_=1;break; + case 4:var _baW_=1;break; + case 5:var _baW_=1;break; + case 6:var _baW_=0;break; + case 7:var _baW_=0;break; + default:var _baW_=1} + var + _baX_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _baY_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_baX_), + _baZ_=caml_call2(Runtime_ocaml_Runtime[83],_baY_,_baW_); + return caml_call2(Runtime_ocaml_Runtime[29],_IN_,_baZ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_IO_,[0],_baV_,_baU_)}, + _baS_, + _baR_, + _baQ_, + _baP_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_IP_,_baT_,_baO_,_baN_)}], + _a$r_=caml_call4(Runtime_ocaml_Runtime[63],_IQ_,_a$q_,_a$p_,_a$o_)} + catch(_baM_) + {_baM_ = caml_wrap_exception(_baM_); + if(_baM_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Iv_]; + throw _baM_} + var + montant_forfaitaire_charges= + caml_call3 + (Runtime_ocaml_Runtime[28],_IR_,Runtime_ocaml_Runtime[13],_a$r_); + function _a$s_(aide_finale) + {try + {var + _baG_= + function(param) + {var + _baK_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$318), + _baL_= + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_15); + return caml_call2(Runtime_ocaml_Runtime[113],_baL_,_baK_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$319) + :caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_15)}, + _baH_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_IT_,1)}, + _baI_=caml_call4(Runtime_ocaml_Runtime[63],_IU_,[0],_baH_,_baG_); + return _baI_} + catch(_baJ_) + {_baJ_ = caml_wrap_exception(_baJ_); + if(_baJ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_IS_]; + throw _baJ_}} + var + traitement_aide_finale_minorat= + caml_call3 + (Runtime_ocaml_Runtime[28],_IV_,Runtime_ocaml_Runtime[10],_a$s_); + try + {var + _a$t_=function(param){return calcul_equivalence_loyer_minim$4}, + _a$u_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_IX_,1)}, + _a$v_=caml_call4(Runtime_ocaml_Runtime[63],_IY_,[0],_a$u_,_a$t_)} + catch(_baF_) + {_baF_ = caml_wrap_exception(_baF_); + if(_baF_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_IW_]; + throw _baF_} + var + loyer_minimal= + caml_call3 + (Runtime_ocaml_Runtime[28],_IZ_,Runtime_ocaml_Runtime[13],_a$v_); + function _a$w_(allocation_mensuelle) + {try + {var + _baA_= + function(param) + {var + _baE_= + caml_call2 + (Runtime_ocaml_Runtime[93], + equivalence_loyer, + montant_forfaitaire_charges); + return caml_call2 + (Runtime_ocaml_Runtime[98],_baE_,allocation_mensuelle)}, + _baB_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_I1_,1)}, + _baC_=caml_call4(Runtime_ocaml_Runtime[63],_I2_,[0],_baB_,_baA_); + return _baC_} + catch(_baD_) + {_baD_ = caml_wrap_exception(_baD_); + if(_baD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_I0_]; + throw _baD_}} + var + depense_nette_minimale= + caml_call3 + (Runtime_ocaml_Runtime[28],_I3_,Runtime_ocaml_Runtime[10],_a$w_); + try + {var + _a$x_= + function(param) + {var + _bay_= + caml_call2 + (Runtime_ocaml_Runtime[93], + equivalence_loyer, + montant_forfaitaire_charges), + _baz_=caml_call2(Runtime_ocaml_Runtime[98],_bay_,loyer_minimal); + return caml_call2 + (Runtime_ocaml_Runtime[104], + _baz_, + coefficient_prise_en_charge)}, + _a$y_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_I5_,1)}, + _a$z_=caml_call4(Runtime_ocaml_Runtime[63],_I6_,[0],_a$y_,_a$x_)} + catch(_bax_) + {_bax_ = caml_wrap_exception(_bax_); + if(_bax_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_I4_]; + throw _bax_} + var + aide_finale_formule= + caml_call3 + (Runtime_ocaml_Runtime[28],_I7_,Runtime_ocaml_Runtime[13],_a$z_); + function _a$A_(allocation_mensuelle) + {try + {var + _bal_= + function(param) + {var + _bap_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _I9_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _baq_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_I__,depense_nette_minimale), + _bap_), + _bar_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _I$_, + Runtime_ocaml_Runtime[13], + _baq_), + _bas_=caml_call2(Runtime_ocaml_Runtime[27],_Ja_,_bar_); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[113], + _bas_, + montant_minimal_depense_nette_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$320); + var + _bat_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jb_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _bau_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_Jc_,depense_nette_minimale), + _bat_), + _bav_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jd_, + Runtime_ocaml_Runtime[13], + _bau_), + _baw_=caml_call2(Runtime_ocaml_Runtime[27],_Je_,_bav_); + return caml_call2 + (Runtime_ocaml_Runtime[98], + montant_minimal_depense_nette_, + _baw_)}, + _bam_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Jf_,1)}, + _ban_=caml_call4(Runtime_ocaml_Runtime[63],_Jg_,[0],_bam_,_bal_); + return _ban_} + catch(_bao_) + {_bao_ = caml_wrap_exception(_bao_); + if(_bao_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_I8_]; + throw _bao_}} + var + abattement_depense_nette_minim= + caml_call3 + (Runtime_ocaml_Runtime[28],_Jh_,Runtime_ocaml_Runtime[10],_a$A_); + function _a$B_(aide_finale) + {try + {var + _a$$_= + function(param) + {var + _bad_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jj_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bae_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Jk_, + traitement_aide_finale_minorat), + _bad_), + _baf_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jl_, + Runtime_ocaml_Runtime[13], + _bae_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Jm_,_baf_), + _bag_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jn_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bah_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Jo_, + abattement_depense_nette_minim), + _bag_), + _bai_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jp_, + Runtime_ocaml_Runtime[13], + _bah_), + abattement=caml_call2(Runtime_ocaml_Runtime[27],_Jq_,_bai_), + _baj_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$321), + _bak_= + caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,abattement); + return caml_call2(Runtime_ocaml_Runtime[113],_bak_,_baj_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$322) + :caml_call2 + (Runtime_ocaml_Runtime[98],aide_finale$0,abattement)}, + _baa_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Jr_,1)}, + _bab_=caml_call4(Runtime_ocaml_Runtime[63],_Js_,[0],_baa_,_a$$_); + return _bab_} + catch(_bac_) + {_bac_ = caml_wrap_exception(_bac_); + if(_bac_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ji_]; + throw _bac_}} + var + traitement_aide_finale_depense= + caml_call3 + (Runtime_ocaml_Runtime[28],_Jt_,Runtime_ocaml_Runtime[10],_a$B_); + function _a$C_(aide_finale) + {try + {var + _a$4_= + function(param) + {var + _a$8_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jv_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a$9_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Jw_, + traitement_aide_finale_depense), + _a$8_), + _a$__= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jx_, + Runtime_ocaml_Runtime[13], + _a$9_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Jy_,_a$__); + return caml_call2 + (Runtime_ocaml_Runtime[123],aide_finale$0,redevance) + ?redevance + :aide_finale$0}, + _a$5_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Jz_,1)}, + _a$6_=caml_call4(Runtime_ocaml_Runtime[63],_JA_,[0],_a$5_,_a$4_); + return _a$6_} + catch(_a$7_) + {_a$7_ = caml_wrap_exception(_a$7_); + if(_a$7_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ju_]; + throw _a$7_}} + var + traitement_aide_finale_redevan= + caml_call3 + (Runtime_ocaml_Runtime[28],_JB_,Runtime_ocaml_Runtime[10],_a$C_); + function _a$D_(aide_finale) + {try + {var + _a$P_= + function(param) + {var + _a$T_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _JD_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a$U_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _JE_, + traitement_aide_finale_redevan), + _a$T_), + _a$V_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _JF_, + Runtime_ocaml_Runtime[13], + _a$U_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_JG_,_a$V_), + _a$W_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _JH_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _a$X_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _JI_, + contributions_sociales_dot_mon), + _a$W_), + _a$Y_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _JJ_, + Runtime_ocaml_Runtime[13], + _a$X_), + crds=caml_call2(Runtime_ocaml_Runtime[27],_JK_,_a$Y_), + _a$Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$2), + _a$0_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), + _a$1_=caml_call2(Runtime_ocaml_Runtime[98],_a$0_,_a$Z_), + aide_finale_moins_crds_arrondi= + caml_call1(Runtime_ocaml_Runtime[77],_a$1_), + _a$2_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$323), + _a$3_= + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128],_a$3_,_a$2_) + ?caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$324)}, + _a$Q_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_JL_,1)}, + _a$R_=caml_call4(Runtime_ocaml_Runtime[63],_JM_,[0],_a$Q_,_a$P_); + return _a$R_} + catch(_a$S_) + {_a$S_ = caml_wrap_exception(_a$S_); + if(_a$S_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_JC_]; + throw _a$S_}} + var + traitement_aide_finale_contrib= + caml_call3 + (Runtime_ocaml_Runtime[28],_JN_,Runtime_ocaml_Runtime[10],_a$D_); + function _a$E_(aide_finale) + {try + {var + _a$I_= + function(param) + {var + _a$M_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _JP_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a$N_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _JQ_, + traitement_aide_finale_contrib), + _a$M_), + _a$O_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _JR_, + Runtime_ocaml_Runtime[13], + _a$N_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_JS_,_a$O_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d842_15) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$325) + :aide_finale$0}, + _a$J_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_JT_,1)}, + _a$K_=caml_call4(Runtime_ocaml_Runtime[63],_JU_,[0],_a$J_,_a$I_); + return _a$K_} + catch(_a$L_) + {_a$L_ = caml_wrap_exception(_a$L_); + if(_a$L_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_JO_]; + throw _a$L_}} + var + traitement_aide_finale_montant= + caml_call3 + (Runtime_ocaml_Runtime[28],_JV_,Runtime_ocaml_Runtime[10],_a$E_); + try + {var + _a$F_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _a$G_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a$F_)} + catch(_a$H_) + {_a$H_ = caml_wrap_exception(_a$H_); + if(_a$H_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_JW_]; + throw _a$H_} + if(_a$G_) + return [0, + coefficient_prise_en_charge, + equivalence_loyer, + montant_forfaitaire_charges, + loyer_minimal, + aide_finale_formule, + traitement_aide_finale_montant]; + throw [0,Runtime_ocaml_Runtime[3],_JX_]} + function calcul_allocation_logement_acc(calcul_allocation_logement_acc) + {var + ressources_menage_arrondies_ba=calcul_allocation_logement_acc[1], + nombre_personnes_a_charge=calcul_allocation_logement_acc[2], + situation_familiale_calcul_apl=calcul_allocation_logement_acc[3], + zone=calcul_allocation_logement_acc[4], + residence=calcul_allocation_logement_acc[5], + date_courante=calcul_allocation_logement_acc[6], + mensualite_principale=calcul_allocation_logement_acc[7], + situation_r822_11_13_17=calcul_allocation_logement_acc[8], + date_signature_pret=calcul_allocation_logement_acc[9], + type_travaux_logement=calcul_allocation_logement_acc[10], + local_habite_premiere_fois_ben=calcul_allocation_logement_acc[11], + date_entree_logement=calcul_allocation_logement_acc[12], + charges_mensuelles_pret=calcul_allocation_logement_acc[13], + copropriete=calcul_allocation_logement_acc[14], + operations_logement_evolutifs_=calcul_allocation_logement_acc[15]; + try + {var + _aGV_= + function(param) + {var + _a92_=caml_call1(Runtime_ocaml_Runtime[39],cst_6_55957$0), + _a93_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$208); + return caml_call2(Runtime_ocaml_Runtime[107],_a93_,_a92_)}, + _aGW_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_JZ_,1)}, + _aGX_=caml_call4(Runtime_ocaml_Runtime[63],_J0_,[0],_aGW_,_aGV_)} + catch(_a91_) + {_a91_ = caml_wrap_exception(_a91_); + if(_a91_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_JY_]; + throw _a91_} + var + taux_francs_vers_euros= + caml_call3 + (Runtime_ocaml_Runtime[28],_J1_,Runtime_ocaml_Runtime[15],_aGX_); + try + {var + _aGY_=function(param){return nombre_personnes_a_charge}, + _aGZ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_J3_,1)}, + _aG0_=caml_call4(Runtime_ocaml_Runtime[63],_J4_,[0],_aGZ_,_aGY_), + calcul_nombre_parts_dot_nombre= + caml_call3 + (Runtime_ocaml_Runtime[28],_J5_,Runtime_ocaml_Runtime[14],_aG0_)} + catch(_a90_) + {_a90_ = caml_wrap_exception(_a90_); + if(_a90_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_J2_]; + throw _a90_} + try + {var + _aG1_=function(param){return situation_familiale_calcul_apl}, + _aG2_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_J7_,1)}, + _aG3_=caml_call4(Runtime_ocaml_Runtime[63],_J8_,[0],_aG2_,_aG1_), + calcul_nombre_parts_dot_situat= + caml_call3 + (Runtime_ocaml_Runtime[28], + _J9_, + embed_situation_familiale_calc, + _aG3_)} + catch(_a9Z_) + {_a9Z_ = caml_wrap_exception(_a9Z_); + if(_a9Z_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_J6_]; + throw _a9Z_} + var + _aG4_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_J__,calcul_nombre_parts_accession_), + [0,calcul_nombre_parts_dot_nombre,calcul_nombre_parts_dot_situat]), + result=caml_call2(Runtime_ocaml_Runtime[27],_J$_,_aG4_), + calcul_nombre_parts_dot_n_nomb=result[1]; + try + {var + _aG5_=function(param){return date_courante}, + _aG6_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Kb_,1)}, + _aG7_=caml_call4(Runtime_ocaml_Runtime[63],_Kc_,[0],_aG6_,_aG5_), + contributions_sociales_dot_dat= + caml_call3 + (Runtime_ocaml_Runtime[28],_Kd_,Runtime_ocaml_Runtime[16],_aG7_)} + catch(_a9Y_) + {_a9Y_ = caml_wrap_exception(_a9Y_); + if(_a9Y_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ka_]; + throw _a9Y_} + var + _aG8_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_Ke_,contributions_sociales_aides_p), + [0,contributions_sociales_dot_dat]), + result$0=caml_call2(Runtime_ocaml_Runtime[27],_Kf_,_aG8_), + contributions_sociales_dot_mon=result$0[1]; + try + {var + _aG9_= + function(param) + {function _a9J_(param){throw Runtime_ocaml_Runtime[2]} + function _a9K_(param){return 0} + var + _a9L_= + [0, + function(param) + {function _a9M_(param) + {return caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} + function _a9N_(param) + {var + _a9W_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _a9X_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9W_); + return caml_call2(Runtime_ocaml_Runtime[29],_Kh_,_a9X_)} + var + _a9O_= + [0, + function(param) + {function _a9P_(param) + {return caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} + function _a9Q_(param) + {var + _a9R_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _a9S_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a9R_), + _a9T_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _a9U_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9T_), + _a9V_=caml_call2(Runtime_ocaml_Runtime[83],_a9U_,_a9S_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ki_,_a9V_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Kj_,[0],_a9Q_,_a9P_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Kk_,_a9O_,_a9N_,_a9M_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Kl_,_a9L_,_a9K_,_a9J_)}, + _aG__=function(param){return 1}, + _aG$_= + [0, + function(param) + {function _a8G_(param){throw Runtime_ocaml_Runtime[2]} + function _a8H_(param){return 0} + var + _a8I_= + [0, + function(param) + {function _a8J_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$62)} + function _a8K_(param) + {var + _a9z_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$63), + _a9A_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_a9z_); + switch(residence[0]) + {case 0:var _a9B_=1;break; + case 1:var _a9B_=0;break; + case 2:var _a9B_=1;break; + case 3:var _a9B_=1;break; + case 4:var _a9B_=1;break; + case 5:var _a9B_=1;break; + case 6:var _a9B_=0;break; + case 7:var _a9B_=0;break; + default:var _a9B_=1} + var + _a9C_=caml_call2(Runtime_ocaml_Runtime[83],_a9B_,_a9A_), + _a9D_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _a9E_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a9D_), + _a9F_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _a9G_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9F_), + _a9H_=caml_call2(Runtime_ocaml_Runtime[83],_a9G_,_a9E_), + _a9I_=caml_call2(Runtime_ocaml_Runtime[83],_a9H_,_a9C_); + return caml_call2(Runtime_ocaml_Runtime[29],_Km_,_a9I_)} + var + _a8L_= + [0, + function(param) + {function _a8M_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$64)} + function _a8N_(param) + {var + _a9p_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$65), + _a9q_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_a9p_); + switch(residence[0]) + {case 0:var _a9r_=1;break; + case 1:var _a9r_=0;break; + case 2:var _a9r_=1;break; + case 3:var _a9r_=1;break; + case 4:var _a9r_=1;break; + case 5:var _a9r_=1;break; + case 6:var _a9r_=0;break; + case 7:var _a9r_=0;break; + default:var _a9r_=1} + var + _a9s_=caml_call2(Runtime_ocaml_Runtime[83],_a9r_,_a9q_), + _a9t_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _a9u_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a9t_), + _a9v_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _a9w_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9v_), + _a9x_=caml_call2(Runtime_ocaml_Runtime[83],_a9w_,_a9u_), + _a9y_=caml_call2(Runtime_ocaml_Runtime[83],_a9x_,_a9s_); + return caml_call2(Runtime_ocaml_Runtime[29],_Kn_,_a9y_)} + var + _a8O_= + [0, + function(param) + {function _a8P_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$66)} + function _a8Q_(param) + {var + _a9f_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$67), + _a9g_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_a9f_); + switch(residence[0]) + {case 0:var _a9h_=1;break; + case 1:var _a9h_=0;break; + case 2:var _a9h_=1;break; + case 3:var _a9h_=1;break; + case 4:var _a9h_=1;break; + case 5:var _a9h_=1;break; + case 6:var _a9h_=0;break; + case 7:var _a9h_=0;break; + default:var _a9h_=1} + var + _a9i_=caml_call2(Runtime_ocaml_Runtime[83],_a9h_,_a9g_), + _a9j_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _a9k_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a9j_), + _a9l_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _a9m_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9l_), + _a9n_=caml_call2(Runtime_ocaml_Runtime[83],_a9m_,_a9k_), + _a9o_=caml_call2(Runtime_ocaml_Runtime[83],_a9n_,_a9i_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ko_,_a9o_)} + var + _a8R_= + [0, + function(param) + {function _a8S_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$68)} + function _a8T_(param) + {var + _a87_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$69), + _a88_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_a87_); + switch(residence[0]) + {case 0:var _a89_=1;break; + case 1:var _a89_=0;break; + case 2:var _a89_=1;break; + case 3:var _a89_=1;break; + case 4:var _a89_=1;break; + case 5:var _a89_=1;break; + case 6:var _a89_=0;break; + case 7:var _a89_=0;break; + default:var _a89_=1} + var + _a8__=caml_call2(Runtime_ocaml_Runtime[83],_a89_,_a88_), + _a8$_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _a9a_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a8$_), + _a9b_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _a9c_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9b_), + _a9d_=caml_call2(Runtime_ocaml_Runtime[83],_a9c_,_a9a_), + _a9e_=caml_call2(Runtime_ocaml_Runtime[83],_a9d_,_a8__); + return caml_call2(Runtime_ocaml_Runtime[29],_Kp_,_a9e_)} + var + _a8U_= + [0, + function(param) + {function _a8V_(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$70)} + function _a8W_(param) + {var + _a8X_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$71), + _a8Y_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_a8X_); + switch(residence[0]) + {case 0:var _a8Z_=1;break; + case 1:var _a8Z_=0;break; + case 2:var _a8Z_=1;break; + case 3:var _a8Z_=1;break; + case 4:var _a8Z_=1;break; + case 5:var _a8Z_=1;break; + case 6:var _a8Z_=0;break; + case 7:var _a8Z_=0;break; + default:var _a8Z_=1} + var + _a80_=caml_call2(Runtime_ocaml_Runtime[83],_a8Z_,_a8Y_), + _a81_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _a82_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a81_), + _a83_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a84_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a83_), + _a85_=caml_call2(Runtime_ocaml_Runtime[83],_a84_,_a82_), + _a86_=caml_call2(Runtime_ocaml_Runtime[83],_a85_,_a80_); + return caml_call2(Runtime_ocaml_Runtime[29],_Kq_,_a86_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Kr_,[0],_a8W_,_a8V_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ks_,_a8U_,_a8T_,_a8S_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Kt_,_a8R_,_a8Q_,_a8P_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ku_,_a8O_,_a8N_,_a8M_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Kv_,_a8L_,_a8K_,_a8J_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Kw_,_a8I_,_a8H_,_a8G_)}], + _aHa_=caml_call4(Runtime_ocaml_Runtime[63],_Kx_,_aG$_,_aG__,_aG9_)} + catch(_a8F_) + {_a8F_ = caml_wrap_exception(_a8F_); + if(_a8F_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Kg_]; + throw _a8F_} + var + multiplicateur_majoration_char= + caml_call3 + (Runtime_ocaml_Runtime[28],_Ky_,Runtime_ocaml_Runtime[15],_aHa_); + try + {var + _aHb_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_16_25$0)}, + _aHc_= + function(param) + {var + _a8D_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _a8E_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8D_); + return caml_call2(Runtime_ocaml_Runtime[29],_KA_,_a8E_)}, + _aHd_=caml_call4(Runtime_ocaml_Runtime[63],_KB_,[0],_aHc_,_aHb_)} + catch(_a8C_) + {_a8C_ = caml_wrap_exception(_a8C_); + if(_a8C_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Kz_]; + throw _a8C_} + var + coefficient_d842_12= + caml_call3 + (Runtime_ocaml_Runtime[28],_KC_,Runtime_ocaml_Runtime[15],_aHd_); + try + {var + _aHe_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0234$1)}, + _aHf_= + function(param) + {var + _a8A_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _a8B_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8A_); + return caml_call2(Runtime_ocaml_Runtime[29],_KE_,_a8B_)}, + _aHg_=caml_call4(Runtime_ocaml_Runtime[63],_KF_,[0],_aHf_,_aHe_)} + catch(_a8z_) + {_a8z_ = caml_wrap_exception(_a8z_); + if(_a8z_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_KD_]; + throw _a8z_} + var + coefficient_d842_11= + caml_call3 + (Runtime_ocaml_Runtime[28],_KG_,Runtime_ocaml_Runtime[15],_aHg_); + try + {var + _aHh_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_390000)}, + _aHi_= + function(param) + {var + _a8x_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _a8y_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8x_); + return caml_call2(Runtime_ocaml_Runtime[29],_KI_,_a8y_)}, + _aHj_=caml_call4(Runtime_ocaml_Runtime[63],_KJ_,[0],_aHi_,_aHh_)} + catch(_a8w_) + {_a8w_ = caml_wrap_exception(_a8w_); + if(_a8w_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_KH_]; + throw _a8w_} + var + montant_forfaitaire_d842_12= + caml_call3 + (Runtime_ocaml_Runtime[28],_KK_,Runtime_ocaml_Runtime[13],_aHj_); + try + {var + _aHk_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1500$1)}, + _aHl_= + function(param) + {var + _a8u_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _a8v_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8u_); + return caml_call2(Runtime_ocaml_Runtime[29],_KM_,_a8v_)}, + _aHm_=caml_call4(Runtime_ocaml_Runtime[63],_KN_,[0],_aHl_,_aHk_)} + catch(_a8t_) + {_a8t_ = caml_wrap_exception(_a8t_); + if(_a8t_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_KL_]; + throw _a8t_} + var + montant_forfaitaire_d842_11= + caml_call3 + (Runtime_ocaml_Runtime[28],_KO_,Runtime_ocaml_Runtime[13],_aHm_); + try + {var + _aHn_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$4)}, + _aHo_= + function(param) + {var + _a8r_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _a8s_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8r_); + return caml_call2(Runtime_ocaml_Runtime[29],_KQ_,_a8s_)}, + _aHp_=caml_call4(Runtime_ocaml_Runtime[63],_KR_,[0],_aHo_,_aHn_)} + catch(_a8q_) + {_a8q_ = caml_wrap_exception(_a8q_); + if(_a8q_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_KP_]; + throw _a8q_} + var + montant_minimal_aide_d842_6= + caml_call3 + (Runtime_ocaml_Runtime[28],_KS_,Runtime_ocaml_Runtime[13],_aHp_); + try + {var + _aHq_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$3)}, + _aHr_= + function(param) + {var + _a8o_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _a8p_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8o_); + return caml_call2(Runtime_ocaml_Runtime[29],_KU_,_a8p_)}, + _aHs_=caml_call4(Runtime_ocaml_Runtime[63],_KV_,[0],_aHr_,_aHq_)} + catch(_a8n_) + {_a8n_ = caml_wrap_exception(_a8n_); + if(_a8n_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_KT_]; + throw _a8n_} + var + montant_forfaitaire_d842_6= + caml_call3 + (Runtime_ocaml_Runtime[28],_KW_,Runtime_ocaml_Runtime[13],_aHs_); + try + {var + _aHt_=function(param){return 0}, + _aHu_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_KY_,1)}, + _aHv_= + [0, + function(param) + {function _a72_(param){return 1} + function _a73_(param) + {var + _a8f_=caml_call3(Runtime_ocaml_Runtime[57],1999,7,1), + _a8g_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_a8f_); + switch(type_travaux_logement[0]) + {case 0:var _a8h_=0;break; + case 1:var _a8h_=0;break; + case 2:var _a8h_=1;break; + default:var _a8h_=0} + switch(type_travaux_logement[0]) + {case 0:var _a8i_=1;break; + case 1:var _a8i_=0;break; + case 2:var _a8i_=0;break; + default:var _a8i_=0} + var _a8j_=caml_call2(Runtime_ocaml_Runtime[84],_a8i_,_a8h_); + switch(type_travaux_logement[0]) + {case 0:var _a8k_=0;break; + case 1:var _a8k_=0;break; + case 2:var _a8k_=0;break; + default:var _a8k_=1} + var + _a8l_=caml_call2(Runtime_ocaml_Runtime[84],_a8k_,_a8j_), + _a8m_=caml_call2(Runtime_ocaml_Runtime[83],_a8l_,_a8g_); + return caml_call2(Runtime_ocaml_Runtime[29],_KZ_,_a8m_)} + var + _a74_= + [0, + function(param) + {function _a75_(param){throw Runtime_ocaml_Runtime[2]} + function _a76_(param){return 0} + var + _a77_= + [0, + function(param) + {function _a78_(param){return 0} + function _a79_(param) + {switch(residence[0]) + {case 0:var _a8d_=1;break; + case 1:var _a8d_=1;break; + case 2:var _a8d_=1;break; + case 3:var _a8d_=1;break; + case 4:var _a8d_=0;break; + case 5:var _a8d_=0;break; + case 6:var _a8d_=0;break; + case 7:var _a8d_=0;break; + default:var _a8d_=1} + var + _a8e_= + caml_call2 + (Runtime_ocaml_Runtime[83], + _a8d_, + operations_logement_evolutifs_); + return caml_call2(Runtime_ocaml_Runtime[29],_K0_,_a8e_)} + var + _a7__= + [0, + function(param) + {function _a7$_(param){return 0} + function _a8a_(param) + {switch(residence[0]) + {case 0:var _a8b_=0;break; + case 1:var _a8b_=0;break; + case 2:var _a8b_=0;break; + case 3:var _a8b_=0;break; + case 4:var _a8b_=1;break; + case 5:var _a8b_=1;break; + case 6:var _a8b_=0;break; + case 7:var _a8b_=0;break; + default:var _a8b_=0} + var + _a8c_= + caml_call2 + (Runtime_ocaml_Runtime[83], + _a8b_, + operations_logement_evolutifs_); + return caml_call2(Runtime_ocaml_Runtime[29],_K1_,_a8c_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_K2_,[0],_a8a_,_a7$_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_K3_,_a7__,_a79_,_a78_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_K4_,_a77_,_a76_,_a75_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_K5_,_a74_,_a73_,_a72_)}], + _aHw_=caml_call4(Runtime_ocaml_Runtime[63],_K6_,_aHv_,_aHu_,_aHt_)} + catch(_a71_) + {_a71_ = caml_wrap_exception(_a71_); + if(_a71_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_KX_]; + throw _a71_} + var + condition_d842_11_3= + caml_call3 + (Runtime_ocaml_Runtime[28],_K7_,Runtime_ocaml_Runtime[12],_aHw_); + function _aHx_(date_calcul,nombre_personnes_a_charge) + {try + {var + _aRJ_=function(param){throw Runtime_ocaml_Runtime[2]}, + _aRK_=function(param){return 0}, + _aRL_= + function(param) + {function _a7k_(param) + {switch(zone[0]) + {case 0: + var _a7r_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$326); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7r_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31476) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37933); + var _a7s_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$209); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7s_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40787); + var _a7t_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7t_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41927); + var _a7u_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7u_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_43106); + var _a7v_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7v_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_44262); + var _a7w_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7w_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_45200); + var + _a7x_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$27), + _a7y_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a7x_), + _a7z_=caml_call1(Runtime_ocaml_Runtime[69],_a7y_), + _a7A_=caml_call1(Runtime_ocaml_Runtime[31],cst_3936), + _a7B_=caml_call2(Runtime_ocaml_Runtime[104],_a7A_,_a7z_), + _a7C_=caml_call1(Runtime_ocaml_Runtime[31],cst_45200$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a7C_,_a7B_); + case 1: + var _a7D_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$327); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7D_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27614) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33853); + var _a7E_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$210); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7E_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36646); + var _a7F_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$53); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7F_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37915); + var _a7G_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7G_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39222); + var _a7H_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$33); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7H_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40510); + var _a7I_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7I_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_43378); + var + _a7J_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$29), + _a7K_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a7J_), + _a7L_=caml_call1(Runtime_ocaml_Runtime[69],_a7K_), + _a7M_=caml_call1(Runtime_ocaml_Runtime[31],cst_3771), + _a7N_=caml_call2(Runtime_ocaml_Runtime[104],_a7M_,_a7L_), + _a7O_=caml_call1(Runtime_ocaml_Runtime[31],cst_43378$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a7O_,_a7N_); + default: + var _a7P_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$328); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7P_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25904) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31419); + var _a7Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$211); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7Q_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34255); + var _a7R_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7R_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35670); + var _a7S_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7S_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37107); + var _a7T_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7T_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38521); + var _a7U_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7U_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41392); + var + _a7V_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$31), + _a7W_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a7V_), + _a7X_=caml_call1(Runtime_ocaml_Runtime[69],_a7W_), + _a7Y_=caml_call1(Runtime_ocaml_Runtime[31],cst_3588), + _a7Z_=caml_call2(Runtime_ocaml_Runtime[104],_a7Y_,_a7X_), + _a70_=caml_call1(Runtime_ocaml_Runtime[31],cst_41392$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a70_,_a7Z_)}} + function _a7l_(param) + {var + _a7m_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _a7n_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a7m_), + _a7o_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a7p_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a7o_), + _a7q_=caml_call2(Runtime_ocaml_Runtime[83],_a7p_,_a7n_); + return caml_call2(Runtime_ocaml_Runtime[29],_K9_,_a7q_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_K__,[0],_a7l_,_a7k_)}, + _aRM_= + function(param) + {function _a6C_(param) + {switch(zone[0]) + {case 0: + var _a6M_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$329); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6M_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31382) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37820); + var _a6N_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$212); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6N_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40665); + var _a6O_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$55); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6O_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41801); + var _a6P_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6P_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42977); + var _a6Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6Q_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_44130); + var _a6R_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6R_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_45064); + var + _a6S_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$33), + _a6T_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a6S_), + _a6U_=caml_call1(Runtime_ocaml_Runtime[69],_a6T_), + _a6V_=caml_call1(Runtime_ocaml_Runtime[31],cst_3924), + _a6W_=caml_call2(Runtime_ocaml_Runtime[104],_a6V_,_a6U_), + _a6X_=caml_call1(Runtime_ocaml_Runtime[31],cst_45064$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a6X_,_a6W_); + case 1: + var _a6Y_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$330); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6Y_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27531) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33751); + var _a6Z_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$213); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6Z_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36536); + var _a60_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a60_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37801); + var _a61_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a61_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39105); + var _a62_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a62_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40389); + var _a63_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a63_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_43248); + var + _a64_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$35), + _a65_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a64_), + _a66_=caml_call1(Runtime_ocaml_Runtime[69],_a65_), + _a67_=caml_call1(Runtime_ocaml_Runtime[31],cst_3760), + _a68_=caml_call2(Runtime_ocaml_Runtime[104],_a67_,_a66_), + _a69_=caml_call1(Runtime_ocaml_Runtime[31],cst_43248$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a69_,_a68_); + default: + var _a6__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$331); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6__)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25826) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31325); + var _a6$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$214); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6$_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34152); + var _a7a_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$57); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7a_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35564); + var _a7b_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7b_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36996); + var _a7c_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7c_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38406); + var _a7d_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7d_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41268); + var + _a7e_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$37), + _a7f_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a7e_), + _a7g_=caml_call1(Runtime_ocaml_Runtime[69],_a7f_), + _a7h_=caml_call1(Runtime_ocaml_Runtime[31],cst_3578), + _a7i_=caml_call2(Runtime_ocaml_Runtime[104],_a7h_,_a7g_), + _a7j_=caml_call1(Runtime_ocaml_Runtime[31],cst_41268$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a7j_,_a7i_)}} + function _a6D_(param) + {var + _a6E_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _a6F_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a6E_), + _a6G_=caml_call3(Runtime_ocaml_Runtime[57],2017,10,1), + _a6H_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a6G_), + _a6I_=caml_call2(Runtime_ocaml_Runtime[83],_a6H_,_a6F_), + _a6J_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a6K_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a6J_), + _a6L_=caml_call2(Runtime_ocaml_Runtime[83],_a6K_,_a6I_); + return caml_call2(Runtime_ocaml_Runtime[29],_K$_,_a6L_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_La_,[0],_a6D_,_a6C_)}, + _aRN_= + function(param) + {function _a5U_(param) + {switch(zone[0]) + {case 0: + var _a54_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$332); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a54_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31148) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37538); + var _a55_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$215); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a55_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40362); + var _a56_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a56_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41490); + var _a57_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a57_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42657); + var _a58_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a58_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_43801); + var _a59_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a59_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_44729); + var + _a5__=caml_call1(Runtime_ocaml_Runtime[46],cst_5$39), + _a5$_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a5__), + _a6a_=caml_call1(Runtime_ocaml_Runtime[69],_a5$_), + _a6b_=caml_call1(Runtime_ocaml_Runtime[31],cst_3895), + _a6c_=caml_call2(Runtime_ocaml_Runtime[104],_a6b_,_a6a_), + _a6d_=caml_call1(Runtime_ocaml_Runtime[31],cst_44729$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a6d_,_a6c_); + case 1: + var _a6e_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$333); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6e_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27326) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33500$0); + var _a6f_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$216); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6f_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36264); + var _a6g_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$59); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6g_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37520); + var _a6h_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6h_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38814); + var _a6i_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6i_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40088); + var _a6j_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6j_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42926); + var + _a6k_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$41), + _a6l_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a6k_), + _a6m_=caml_call1(Runtime_ocaml_Runtime[69],_a6l_), + _a6n_=caml_call1(Runtime_ocaml_Runtime[31],cst_3732), + _a6o_=caml_call2(Runtime_ocaml_Runtime[104],_a6n_,_a6m_), + _a6p_=caml_call1(Runtime_ocaml_Runtime[31],cst_42926$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a6p_,_a6o_); + default: + var _a6q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$334); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6q_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25634) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31092); + var _a6r_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$217); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6r_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33898); + var _a6s_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6s_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35299); + var _a6t_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6t_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36721); + var _a6u_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6u_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38120); + var _a6v_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6v_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40961); + var + _a6w_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$43), + _a6x_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a6w_), + _a6y_=caml_call1(Runtime_ocaml_Runtime[69],_a6x_), + _a6z_=caml_call1(Runtime_ocaml_Runtime[31],cst_3551), + _a6A_=caml_call2(Runtime_ocaml_Runtime[104],_a6z_,_a6y_), + _a6B_=caml_call1(Runtime_ocaml_Runtime[31],cst_40961$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a6B_,_a6A_)}} + function _a5V_(param) + {var + _a5W_=caml_call3(Runtime_ocaml_Runtime[57],2017,10,1), + _a5X_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a5W_), + _a5Y_=caml_call3(Runtime_ocaml_Runtime[57],2015,10,1), + _a5Z_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a5Y_), + _a50_=caml_call2(Runtime_ocaml_Runtime[83],_a5Z_,_a5X_), + _a51_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a52_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a51_), + _a53_=caml_call2(Runtime_ocaml_Runtime[83],_a52_,_a50_); + return caml_call2(Runtime_ocaml_Runtime[29],_Lb_,_a53_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Lc_,[0],_a5V_,_a5U_)}, + _aRO_= + function(param) + {function _a5a_(param) + {switch(zone[0]) + {case 0: + var _a5k_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$335); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5k_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_31123) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37508); + var _a5l_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$218); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5l_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40330); + var _a5m_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$61); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5m_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41457); + var _a5n_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5n_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42623); + var _a5o_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5o_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_43766); + var _a5p_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5p_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_44693); + var + _a5q_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$45), + _a5r_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a5q_), + _a5s_=caml_call1(Runtime_ocaml_Runtime[69],_a5r_), + _a5t_=caml_call1(Runtime_ocaml_Runtime[31],cst_3892), + _a5u_=caml_call2(Runtime_ocaml_Runtime[104],_a5t_,_a5s_), + _a5v_=caml_call1(Runtime_ocaml_Runtime[31],cst_44693$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a5v_,_a5u_); + case 1: + var _a5w_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$336); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5w_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27304) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33473); + var _a5x_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$219); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5x_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36235); + var _a5y_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5y_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37490); + var _a5z_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5z_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38783); + var _a5A_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5A_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40056); + var _a5B_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5B_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42892); + var + _a5C_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$47), + _a5D_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a5C_), + _a5E_=caml_call1(Runtime_ocaml_Runtime[69],_a5D_), + _a5F_=caml_call1(Runtime_ocaml_Runtime[31],cst_3729), + _a5G_=caml_call2(Runtime_ocaml_Runtime[104],_a5F_,_a5E_), + _a5H_=caml_call1(Runtime_ocaml_Runtime[31],cst_42892$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a5H_,_a5G_); + default: + var _a5I_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$337); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5I_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25614) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31067); + var _a5J_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$220); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5J_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33871); + var _a5K_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$63); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5K_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35271); + var _a5L_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5L_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36692); + var _a5M_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5M_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38090); + var _a5N_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5N_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40928); + var + _a5O_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$49), + _a5P_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a5O_), + _a5Q_=caml_call1(Runtime_ocaml_Runtime[69],_a5P_), + _a5R_=caml_call1(Runtime_ocaml_Runtime[31],cst_3548), + _a5S_=caml_call2(Runtime_ocaml_Runtime[104],_a5R_,_a5Q_), + _a5T_=caml_call1(Runtime_ocaml_Runtime[31],cst_40928$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a5T_,_a5S_)}} + function _a5b_(param) + {var + _a5c_=caml_call3(Runtime_ocaml_Runtime[57],2015,10,1), + _a5d_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a5c_), + _a5e_=caml_call3(Runtime_ocaml_Runtime[57],2014,10,1), + _a5f_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a5e_), + _a5g_=caml_call2(Runtime_ocaml_Runtime[83],_a5f_,_a5d_), + _a5h_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a5i_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a5h_), + _a5j_=caml_call2(Runtime_ocaml_Runtime[83],_a5i_,_a5g_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ld_,_a5j_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Le_,[0],_a5b_,_a5a_)}, + _aRP_= + function(param) + {function _a4s_(param) + {switch(zone[0]) + {case 0: + var _a4C_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$338); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4C_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_30947) + :caml_call1(Runtime_ocaml_Runtime[31],cst_37295); + var _a4D_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$221); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4D_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40101); + var _a4E_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4E_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41222); + var _a4F_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4F_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42381); + var _a4G_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4G_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_43518); + var _a4H_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4H_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_44440); + var + _a4I_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$51), + _a4J_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a4I_), + _a4K_=caml_call1(Runtime_ocaml_Runtime[69],_a4J_), + _a4L_=caml_call1(Runtime_ocaml_Runtime[31],cst_3870), + _a4M_=caml_call2(Runtime_ocaml_Runtime[104],_a4L_,_a4K_), + _a4N_=caml_call1(Runtime_ocaml_Runtime[31],cst_44440$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a4N_,_a4M_); + case 1: + var _a4O_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$339); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4O_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27149) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33283); + var _a4P_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$222); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4P_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36030); + var _a4Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$65); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4Q_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37278); + var _a4R_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4R_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38563); + var _a4S_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4S_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39829); + var _a4T_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4T_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42649); + var + _a4U_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$53), + _a4V_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a4U_), + _a4W_=caml_call1(Runtime_ocaml_Runtime[69],_a4V_), + _a4X_=caml_call1(Runtime_ocaml_Runtime[31],cst_3708), + _a4Y_=caml_call2(Runtime_ocaml_Runtime[104],_a4X_,_a4W_), + _a4Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_42659); + return caml_call2(Runtime_ocaml_Runtime[93],_a4Z_,_a4Y_); + default: + var _a40_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$340); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a40_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25469) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30891); + var _a41_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$223); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a41_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33679); + var _a42_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a42_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35071); + var _a43_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a43_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36484); + var _a44_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a44_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37874); + var _a45_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a45_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40696); + var + _a46_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$55), + _a47_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a46_), + _a48_=caml_call1(Runtime_ocaml_Runtime[69],_a47_), + _a49_=caml_call1(Runtime_ocaml_Runtime[31],cst_3528), + _a4__=caml_call2(Runtime_ocaml_Runtime[104],_a49_,_a48_), + _a4$_=caml_call1(Runtime_ocaml_Runtime[31],cst_40696$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a4$_,_a4__)}} + function _a4t_(param) + {var + _a4u_=caml_call3(Runtime_ocaml_Runtime[57],2014,10,1), + _a4v_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a4u_), + _a4w_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), + _a4x_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a4w_), + _a4y_=caml_call2(Runtime_ocaml_Runtime[83],_a4x_,_a4v_), + _a4z_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a4A_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a4z_), + _a4B_=caml_call2(Runtime_ocaml_Runtime[83],_a4A_,_a4y_); + return caml_call2(Runtime_ocaml_Runtime[29],_Lf_,_a4B_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Lg_,[0],_a4t_,_a4s_)}, + _aRQ_= + function(param) + {function _a3K_(param) + {switch(zone[0]) + {case 0: + var _a3U_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$341); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3U_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_30296) + :caml_call1(Runtime_ocaml_Runtime[31],cst_36510); + var _a3V_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$224); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3V_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39257); + var _a3W_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$67); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3W_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40354); + var _a3X_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$51); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3X_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41489); + var _a3Y_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3Y_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42602); + var _a3Z_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3Z_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_43505); + var + _a30_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$57), + _a31_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a30_), + _a32_=caml_call1(Runtime_ocaml_Runtime[69],_a31_), + _a33_=caml_call1(Runtime_ocaml_Runtime[31],cst_3789), + _a34_=caml_call2(Runtime_ocaml_Runtime[104],_a33_,_a32_), + _a35_=caml_call1(Runtime_ocaml_Runtime[31],cst_43505$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a35_,_a34_); + case 1: + var _a36_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$342); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a36_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26578) + :caml_call1(Runtime_ocaml_Runtime[31],cst_32582); + var _a37_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$225); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a37_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35272); + var _a38_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a38_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36493); + var _a39_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a39_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37751); + var _a3__=caml_call1(Runtime_ocaml_Runtime[46],cst_4$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3__)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38991); + var _a3$_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3$_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41751); + var + _a4a_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$59), + _a4b_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a4a_), + _a4c_=caml_call1(Runtime_ocaml_Runtime[69],_a4b_), + _a4d_=caml_call1(Runtime_ocaml_Runtime[31],cst_3630), + _a4e_=caml_call2(Runtime_ocaml_Runtime[104],_a4d_,_a4c_), + _a4f_=caml_call1(Runtime_ocaml_Runtime[31],cst_41751$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a4f_,_a4e_); + default: + var _a4g_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$343); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4g_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24933) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30241); + var _a4h_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$226); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4h_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32970); + var _a4i_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$69); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4i_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34333); + var _a4j_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$53); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4j_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35716); + var _a4k_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4k_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37077); + var _a4l_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4l_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39839); + var + _a4m_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$61), + _a4n_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a4m_), + _a4o_=caml_call1(Runtime_ocaml_Runtime[69],_a4n_), + _a4p_=caml_call1(Runtime_ocaml_Runtime[31],cst_3454), + _a4q_=caml_call2(Runtime_ocaml_Runtime[104],_a4p_,_a4o_), + _a4r_=caml_call1(Runtime_ocaml_Runtime[31],cst_39839$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a4r_,_a4q_)}} + function _a3L_(param) + {var + _a3M_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), + _a3N_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a3M_), + _a3O_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), + _a3P_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a3O_), + _a3Q_=caml_call2(Runtime_ocaml_Runtime[83],_a3P_,_a3N_), + _a3R_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a3S_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a3R_), + _a3T_=caml_call2(Runtime_ocaml_Runtime[83],_a3S_,_a3Q_); + return caml_call2(Runtime_ocaml_Runtime[29],_Lh_,_a3T_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Li_,[0],_a3L_,_a3K_)}, + _aRR_= + function(param) + {function _a22_(param) + {switch(zone[0]) + {case 0: + var _a3a_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$344); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3a_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29996) + :caml_call1(Runtime_ocaml_Runtime[31],cst_36149); + var _a3b_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$227); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3b_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38868); + var _a3c_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3c_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39954); + var _a3d_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3d_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41078); + var _a3e_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3e_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42180); + var _a3f_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3f_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_43074); + var + _a3g_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$63), + _a3h_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a3g_), + _a3i_=caml_call1(Runtime_ocaml_Runtime[69],_a3h_), + _a3j_=caml_call1(Runtime_ocaml_Runtime[31],cst_3751), + _a3k_=caml_call2(Runtime_ocaml_Runtime[104],_a3j_,_a3i_), + _a3l_=caml_call1(Runtime_ocaml_Runtime[31],cst_43074$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a3l_,_a3k_); + case 1: + var _a3m_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$345); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3m_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26315) + :caml_call1(Runtime_ocaml_Runtime[31],cst_32259); + var _a3n_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$228); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3n_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34923); + var _a3o_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$71); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3o_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36132); + var _a3p_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$55); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3p_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37373); + var _a3q_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$51); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3q_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38605); + var _a3r_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3r_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41338); + var + _a3s_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$65), + _a3t_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a3s_), + _a3u_=caml_call1(Runtime_ocaml_Runtime[69],_a3t_), + _a3v_=caml_call1(Runtime_ocaml_Runtime[31],cst_3594), + _a3w_=caml_call2(Runtime_ocaml_Runtime[104],_a3v_,_a3u_), + _a3x_=caml_call1(Runtime_ocaml_Runtime[31],cst_41338$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a3x_,_a3w_); + default: + var _a3y_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$346); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3y_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24686) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29942); + var _a3z_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$229); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3z_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32644); + var _a3A_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3A_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33993); + var _a3B_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3B_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35362); + var _a3C_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3C_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36710); + var _a3D_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3D_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39445); + var + _a3E_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$67), + _a3F_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a3E_), + _a3G_=caml_call1(Runtime_ocaml_Runtime[69],_a3F_), + _a3H_=caml_call1(Runtime_ocaml_Runtime[31],cst_3420), + _a3I_=caml_call2(Runtime_ocaml_Runtime[104],_a3H_,_a3G_), + _a3J_=caml_call1(Runtime_ocaml_Runtime[31],cst_39445$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a3J_,_a3I_)}} + function _a23_(param) + {var + _a24_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), + _a25_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a24_), + _a26_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), + _a27_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a26_), + _a28_=caml_call2(Runtime_ocaml_Runtime[83],_a27_,_a25_), + _a29_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a2__= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a29_), + _a2$_=caml_call2(Runtime_ocaml_Runtime[83],_a2__,_a28_); + return caml_call2(Runtime_ocaml_Runtime[29],_Lj_,_a2$_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Lk_,[0],_a23_,_a22_)}, + _aRS_= + function(param) + {function _a2i_(param) + {switch(zone[0]) + {case 0: + var _a2s_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$347); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2s_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29670) + :caml_call1(Runtime_ocaml_Runtime[31],cst_35757); + var _a2t_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$230); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2t_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38445); + var _a2u_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$73); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2u_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39519); + var _a2v_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$57); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2v_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40601); + var _a2w_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$53); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2w_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41721); + var _a2x_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2x_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42605); + var + _a2y_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$69), + _a2z_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a2y_), + _a2A_=caml_call1(Runtime_ocaml_Runtime[69],_a2z_), + _a2B_=caml_call1(Runtime_ocaml_Runtime[31],cst_3710), + _a2C_=caml_call2(Runtime_ocaml_Runtime[104],_a2B_,_a2A_), + _a2D_=caml_call1(Runtime_ocaml_Runtime[31],cst_42605$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a2D_,_a2C_); + case 1: + var _a2E_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$348); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2E_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26029) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31908); + var _a2F_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$231); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2F_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34643); + var _a2G_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2G_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35739); + var _a2H_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2H_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36970); + var _a2I_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2I_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38185); + var _a2J_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2J_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40888); + var + _a2K_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$71), + _a2L_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a2K_), + _a2M_=caml_call1(Runtime_ocaml_Runtime[69],_a2L_), + _a2N_=caml_call1(Runtime_ocaml_Runtime[31],cst_3555), + _a2O_=caml_call2(Runtime_ocaml_Runtime[104],_a2N_,_a2M_), + _a2P_=caml_call1(Runtime_ocaml_Runtime[31],cst_40888$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a2P_,_a2O_); + default: + var _a2Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$349); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2Q_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24417) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29616); + var _a2R_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$232); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2R_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32289); + var _a2S_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2S_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33623$0); + var _a2T_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$59); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2T_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34977); + var _a2U_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$55); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2U_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36311); + var _a2V_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2V_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39016); + var + _a2W_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$73), + _a2X_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a2W_), + _a2Y_=caml_call1(Runtime_ocaml_Runtime[69],_a2X_), + _a2Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_3383), + _a20_=caml_call2(Runtime_ocaml_Runtime[104],_a2Z_,_a2Y_), + _a21_=caml_call1(Runtime_ocaml_Runtime[31],cst_39016$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a21_,_a20_)}} + function _a2j_(param) + {var + _a2k_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), + _a2l_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a2k_), + _a2m_=caml_call3(Runtime_ocaml_Runtime[57],2010,1,1), + _a2n_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a2m_), + _a2o_=caml_call2(Runtime_ocaml_Runtime[83],_a2n_,_a2l_), + _a2p_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a2q_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a2p_), + _a2r_=caml_call2(Runtime_ocaml_Runtime[83],_a2q_,_a2o_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ll_,_a2r_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Lm_,[0],_a2j_,_a2i_)}, + _aRT_= + function(param) + {function _a1A_(param) + {switch(zone[0]) + {case 0: + var _a1K_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$350); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1K_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_29575) + :caml_call1(Runtime_ocaml_Runtime[31],cst_35642); + var _a1L_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$233); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1L_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38322); + var _a1M_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1M_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39393); + var _a1N_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1N_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40501); + var _a1O_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1O_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41588); + var _a1P_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1P_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_42469); + var + _a1Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$75), + _a1R_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a1Q_), + _a1S_=caml_call1(Runtime_ocaml_Runtime[69],_a1R_), + _a1T_=caml_call1(Runtime_ocaml_Runtime[31],cst_3698), + _a1U_=caml_call2(Runtime_ocaml_Runtime[104],_a1T_,_a1S_), + _a1V_=caml_call1(Runtime_ocaml_Runtime[31],cst_42469$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a1V_,_a1U_); + case 1: + var _a1W_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$351); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1W_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25946) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31806); + var _a1X_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$234); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1X_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34433); + var _a1Y_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1Y_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35625); + var _a1Z_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$61); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1Z_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36852); + var _a10_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$57); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a10_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38063); + var _a11_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a11_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40758); + var + _a12_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$77), + _a13_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a12_), + _a14_=caml_call1(Runtime_ocaml_Runtime[69],_a13_), + _a15_=caml_call1(Runtime_ocaml_Runtime[31],cst_3544), + _a16_=caml_call2(Runtime_ocaml_Runtime[104],_a15_,_a14_), + _a17_=caml_call1(Runtime_ocaml_Runtime[31],cst_40758$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a17_,_a16_); + default: + var _a18_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$352); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a18_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24339) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29522); + var _a19_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$235); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a19_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32186); + var _a1__=caml_call1(Runtime_ocaml_Runtime[46],cst_2$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1__)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33516); + var _a1$_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1$_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34865); + var _a2a_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2a_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36195); + var _a2b_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2b_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38892); + var + _a2c_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$79), + _a2d_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a2c_), + _a2e_=caml_call1(Runtime_ocaml_Runtime[69],_a2d_), + _a2f_=caml_call1(Runtime_ocaml_Runtime[31],cst_3372), + _a2g_=caml_call2(Runtime_ocaml_Runtime[104],_a2f_,_a2e_), + _a2h_=caml_call1(Runtime_ocaml_Runtime[31],cst_38892$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a2h_,_a2g_)}} + function _a1B_(param) + {var + _a1C_=caml_call3(Runtime_ocaml_Runtime[57],2010,1,1), + _a1D_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a1C_), + _a1E_=caml_call3(Runtime_ocaml_Runtime[57],2009,1,1), + _a1F_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a1E_), + _a1G_=caml_call2(Runtime_ocaml_Runtime[83],_a1F_,_a1D_), + _a1H_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a1I_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a1H_), + _a1J_=caml_call2(Runtime_ocaml_Runtime[83],_a1I_,_a1G_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ln_,_a1J_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Lo_,[0],_a1B_,_a1A_)}, + _aRU_= + function(param) + {function _a0S_(param) + {switch(zone[0]) + {case 0: + var _a02_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$353); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a02_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_28728) + :caml_call1(Runtime_ocaml_Runtime[31],cst_34621); + var _a03_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$236); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a03_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37224); + var _a04_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a04_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38264); + var _a05_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$63); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a05_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39340$0); + var _a06_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$59); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a06_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40396); + var _a07_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a07_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_41252); + var + _a08_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$81), + _a09_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a08_), + _a0__=caml_call1(Runtime_ocaml_Runtime[69],_a09_), + _a0$_=caml_call1(Runtime_ocaml_Runtime[31],cst_3592), + _a1a_=caml_call2(Runtime_ocaml_Runtime[104],_a0$_,_a0__), + _a1b_=caml_call1(Runtime_ocaml_Runtime[31],cst_41252$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a1b_,_a1a_); + case 1: + var _a1c_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$354); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1c_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_25203) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30895); + var _a1d_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$237); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1d_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33446); + var _a1e_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1e_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34604); + var _a1f_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1f_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35796); + var _a1g_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1g_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36972); + var _a1h_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1h_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39590); + var + _a1i_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$83), + _a1j_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a1i_), + _a1k_=caml_call1(Runtime_ocaml_Runtime[69],_a1j_), + _a1l_=caml_call1(Runtime_ocaml_Runtime[31],cst_3442), + _a1m_=caml_call2(Runtime_ocaml_Runtime[104],_a1l_,_a1k_), + _a1n_=caml_call1(Runtime_ocaml_Runtime[31],cst_39590$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a1n_,_a1m_); + default: + var _a1o_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$355); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1o_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_23642) + :caml_call1(Runtime_ocaml_Runtime[31],cst_28676); + var _a1p_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$238); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1p_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_31264$0); + var _a1q_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1q_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32556); + var _a1r_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$65); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1r_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33866); + var _a1s_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$61); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1s_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35158); + var _a1t_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1t_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37778); + var + _a1u_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$85), + _a1v_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a1u_), + _a1w_=caml_call1(Runtime_ocaml_Runtime[69],_a1v_), + _a1x_=caml_call1(Runtime_ocaml_Runtime[31],cst_3275), + _a1y_=caml_call2(Runtime_ocaml_Runtime[104],_a1x_,_a1w_), + _a1z_=caml_call1(Runtime_ocaml_Runtime[31],cst_37778$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a1z_,_a1y_)}} + function _a0T_(param) + {var + _a0U_=caml_call3(Runtime_ocaml_Runtime[57],2009,1,1), + _a0V_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a0U_), + _a0W_=caml_call3(Runtime_ocaml_Runtime[57],2008,1,1), + _a0X_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a0W_), + _a0Y_=caml_call2(Runtime_ocaml_Runtime[83],_a0X_,_a0V_), + _a0Z_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a00_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a0Z_), + _a01_=caml_call2(Runtime_ocaml_Runtime[83],_a00_,_a0Y_); + return caml_call2(Runtime_ocaml_Runtime[29],_Lp_,_a01_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Lq_,[0],_a0T_,_a0S_)}, + _aRV_= + function(param) + {function _aZ__(param) + {switch(zone[0]) + {case 0: + var _a0i_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$356); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0i_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27956) + :caml_call1(Runtime_ocaml_Runtime[31],cst_33691); + var _a0j_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$239); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0j_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36224); + var _a0k_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0k_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37236); + var _a0l_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0l_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38283); + var _a0m_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0m_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39311); + var _a0n_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0n_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_40144); + var + _a0o_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$87), + _a0p_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a0o_), + _a0q_=caml_call1(Runtime_ocaml_Runtime[69],_a0p_), + _a0r_=caml_call1(Runtime_ocaml_Runtime[31],cst_3496), + _a0s_=caml_call2(Runtime_ocaml_Runtime[104],_a0r_,_a0q_), + _a0t_=caml_call1(Runtime_ocaml_Runtime[31],cst_40144$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a0t_,_a0s_); + case 1: + var _a0u_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$357); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0u_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_24526) + :caml_call1(Runtime_ocaml_Runtime[31],cst_30065); + var _a0v_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$240); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0v_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32548); + var _a0w_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0w_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33675); + var _a0x_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$67); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0x_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34865$0); + var _a0y_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$63); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0y_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35979); + var _a0z_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0z_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38527); + var + _a0A_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$89), + _a0B_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a0A_), + _a0C_=caml_call1(Runtime_ocaml_Runtime[69],_a0B_), + _a0D_=caml_call1(Runtime_ocaml_Runtime[31],cst_3350), + _a0E_=caml_call2(Runtime_ocaml_Runtime[104],_a0D_,_a0C_), + _a0F_=caml_call1(Runtime_ocaml_Runtime[31],cst_38527$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a0F_,_a0E_); + default: + var _a0G_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$358); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0G_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_23007) + :caml_call1(Runtime_ocaml_Runtime[31],cst_27906); + var _a0H_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$241); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0H_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_30424); + var _a0I_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0I_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_31682); + var _a0J_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0J_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32956$0); + var _a0K_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0K_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34214); + var _a0L_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0L_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36733); + var + _a0M_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$91), + _a0N_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a0M_), + _a0O_=caml_call1(Runtime_ocaml_Runtime[69],_a0N_), + _a0P_=caml_call1(Runtime_ocaml_Runtime[31],cst_3187), + _a0Q_=caml_call2(Runtime_ocaml_Runtime[104],_a0P_,_a0O_), + _a0R_=caml_call1(Runtime_ocaml_Runtime[31],cst_36733$0); + return caml_call2(Runtime_ocaml_Runtime[93],_a0R_,_a0Q_)}} + function _aZ$_(param) + {var + _a0a_=caml_call3(Runtime_ocaml_Runtime[57],2008,1,1), + _a0b_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a0a_), + _a0c_=caml_call3(Runtime_ocaml_Runtime[57],2007,1,1), + _a0d_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a0c_), + _a0e_=caml_call2(Runtime_ocaml_Runtime[83],_a0d_,_a0b_), + _a0f_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _a0g_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a0f_), + _a0h_=caml_call2(Runtime_ocaml_Runtime[83],_a0g_,_a0e_); + return caml_call2(Runtime_ocaml_Runtime[29],_Lr_,_a0h_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ls_,[0],_aZ$_,_aZ__)}, + _aRW_= + function(param) + {function _aZq_(param) + {switch(zone[0]) + {case 0: + var _aZA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$359); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZA_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_27195) + :caml_call1(Runtime_ocaml_Runtime[31],cst_32773); + var _aZB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$242); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZB_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35237); + var _aZC_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZC_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36222); + var _aZD_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$69); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZD_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37240); + var _aZE_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$65); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZE_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38240); + var _aZF_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZF_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_39051); + var + _aZG_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$93), + _aZH_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aZG_), + _aZI_=caml_call1(Runtime_ocaml_Runtime[69],_aZH_), + _aZJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_3401), + _aZK_=caml_call2(Runtime_ocaml_Runtime[104],_aZJ_,_aZI_), + _aZL_=caml_call1(Runtime_ocaml_Runtime[31],cst_39051$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aZL_,_aZK_); + case 1: + var _aZM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$360); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZM_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_23858) + :caml_call1(Runtime_ocaml_Runtime[31],cst_29246); + var _aZN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$243); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZN_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_31661); + var _aZO_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZO_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32758); + var _aZP_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZP_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33886); + var _aZQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZQ_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34999); + var _aZR_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZR_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37478); + var + _aZS_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$95), + _aZT_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aZS_), + _aZU_=caml_call1(Runtime_ocaml_Runtime[69],_aZT_), + _aZV_=caml_call1(Runtime_ocaml_Runtime[31],cst_3259), + _aZW_=caml_call2(Runtime_ocaml_Runtime[104],_aZV_,_aZU_), + _aZX_=caml_call1(Runtime_ocaml_Runtime[31],cst_37478$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aZX_,_aZW_); + default: + var _aZY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$361); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZY_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_22380) + :caml_call1(Runtime_ocaml_Runtime[31],cst_27146); + var _aZZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$244); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZZ_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_29595); + var _aZ0_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$87); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZ0_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_30819); + var _aZ1_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$71); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZ1_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32058); + var _aZ2_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$67); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZ2_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33282); + var _aZ3_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZ3_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35762); + var + _aZ4_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$97), + _aZ5_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aZ4_), + _aZ6_=caml_call1(Runtime_ocaml_Runtime[69],_aZ5_), + _aZ7_=caml_call1(Runtime_ocaml_Runtime[31],cst_3100), + _aZ8_=caml_call2(Runtime_ocaml_Runtime[104],_aZ7_,_aZ6_), + _aZ9_=caml_call1(Runtime_ocaml_Runtime[31],cst_35762$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aZ9_,_aZ8_)}} + function _aZr_(param) + {var + _aZs_=caml_call3(Runtime_ocaml_Runtime[57],2007,1,1), + _aZt_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aZs_), + _aZu_=caml_call3(Runtime_ocaml_Runtime[57],2005,9,1), + _aZv_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aZu_), + _aZw_=caml_call2(Runtime_ocaml_Runtime[83],_aZv_,_aZt_), + _aZx_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aZy_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aZx_), + _aZz_=caml_call2(Runtime_ocaml_Runtime[83],_aZy_,_aZw_); + return caml_call2(Runtime_ocaml_Runtime[29],_Lt_,_aZz_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Lu_,[0],_aZr_,_aZq_)}, + _aRX_= + function(param) + {function _aYI_(param) + {switch(zone[0]) + {case 0: + var _aYS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$362); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYS_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26714$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_32194); + var _aYT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$245); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYT_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34614); + var _aYU_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYU_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35582); + var _aYV_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYV_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36582); + var _aYW_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYW_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37564); + var _aYX_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$98); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYX_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_38361); + var + _aYY_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$99), + _aYZ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aYY_), + _aY0_=caml_call1(Runtime_ocaml_Runtime[69],_aYZ_), + _aY1_=caml_call1(Runtime_ocaml_Runtime[31],cst_3341), + _aY2_=caml_call2(Runtime_ocaml_Runtime[104],_aY1_,_aY0_), + _aY3_=caml_call1(Runtime_ocaml_Runtime[31],cst_38361$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aY3_,_aY2_); + case 1: + var _aY4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$363); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY4_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_23436) + :caml_call1(Runtime_ocaml_Runtime[31],cst_28729); + var _aY5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$246); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY5_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_31101); + var _aY6_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$89); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY6_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32179); + var _aY7_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$73); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY7_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33287); + var _aY8_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$69); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY8_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34380); + var _aY9_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$100); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY9_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36815); + var + _aY__=caml_call1(Runtime_ocaml_Runtime[46],cst_5$101), + _aY$_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aY__), + _aZa_=caml_call1(Runtime_ocaml_Runtime[69],_aY$_), + _aZb_=caml_call1(Runtime_ocaml_Runtime[31],cst_3201), + _aZc_=caml_call2(Runtime_ocaml_Runtime[104],_aZb_,_aZa_), + _aZd_=caml_call1(Runtime_ocaml_Runtime[31],cst_36815$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aZd_,_aZc_); + default: + var _aZe_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$364); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZe_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_21984) + :caml_call1(Runtime_ocaml_Runtime[31],cst_26666); + var _aZf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$247); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZf_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_29072); + var _aZg_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZg_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_30274); + var _aZh_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZh_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_31491); + var _aZi_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZi_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32694); + var _aZj_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$102); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZj_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35130); + var + _aZk_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$103), + _aZl_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aZk_), + _aZm_=caml_call1(Runtime_ocaml_Runtime[69],_aZl_), + _aZn_=caml_call1(Runtime_ocaml_Runtime[31],cst_3045), + _aZo_=caml_call2(Runtime_ocaml_Runtime[104],_aZn_,_aZm_), + _aZp_=caml_call1(Runtime_ocaml_Runtime[31],cst_35130$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aZp_,_aZo_)}} + function _aYJ_(param) + {var + _aYK_=caml_call3(Runtime_ocaml_Runtime[57],2005,9,1), + _aYL_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aYK_), + _aYM_=caml_call3(Runtime_ocaml_Runtime[57],2003,7,1), + _aYN_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aYM_), + _aYO_=caml_call2(Runtime_ocaml_Runtime[83],_aYN_,_aYL_), + _aYP_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aYQ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aYP_), + _aYR_=caml_call2(Runtime_ocaml_Runtime[83],_aYQ_,_aYO_); + return caml_call2(Runtime_ocaml_Runtime[29],_Lv_,_aYR_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Lw_,[0],_aYJ_,_aYI_)}, + _aRY_= + function(param) + {function _aX0_(param) + {switch(zone[0]) + {case 0: + var _aX__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$365); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aX__)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26397) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31812); + var _aX$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$248); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aX$_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34204); + var _aYa_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$91); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYa_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35160); + var _aYb_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYb_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36148); + var _aYc_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$71); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYc_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37119); + var _aYd_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$104); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYd_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37906); + var + _aYe_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$105), + _aYf_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aYe_), + _aYg_=caml_call1(Runtime_ocaml_Runtime[69],_aYf_), + _aYh_=caml_call1(Runtime_ocaml_Runtime[31],cst_3301), + _aYi_=caml_call2(Runtime_ocaml_Runtime[104],_aYh_,_aYg_), + _aYj_=caml_call1(Runtime_ocaml_Runtime[31],cst_37906$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aYj_,_aYi_); + case 1: + var _aYk_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$366); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYk_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_23158) + :caml_call1(Runtime_ocaml_Runtime[31],cst_28388); + var _aYl_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$249); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYl_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_30732); + var _aYm_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYm_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_31797$1); + var _aYn_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYn_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32892); + var _aYo_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYo_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33972); + var _aYp_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$106); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYp_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36378); + var + _aYq_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$107), + _aYr_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aYq_), + _aYs_=caml_call1(Runtime_ocaml_Runtime[69],_aYr_), + _aYt_=caml_call1(Runtime_ocaml_Runtime[31],cst_3163), + _aYu_=caml_call2(Runtime_ocaml_Runtime[104],_aYt_,_aYs_), + _aYv_=caml_call1(Runtime_ocaml_Runtime[31],cst_36378$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aYv_,_aYu_); + default: + var _aYw_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$367); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYw_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_21723) + :caml_call1(Runtime_ocaml_Runtime[31],cst_26350); + var _aYx_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$250); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYx_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_28727); + var _aYy_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$93); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYy_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_29915); + var _aYz_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYz_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_31118); + var _aYA_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$73); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYA_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32306); + var _aYB_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$108); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYB_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34713); + var + _aYC_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$109), + _aYD_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aYC_), + _aYE_=caml_call1(Runtime_ocaml_Runtime[69],_aYD_), + _aYF_=caml_call1(Runtime_ocaml_Runtime[31],cst_3009), + _aYG_=caml_call2(Runtime_ocaml_Runtime[104],_aYF_,_aYE_), + _aYH_=caml_call1(Runtime_ocaml_Runtime[31],cst_34713$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aYH_,_aYG_)}} + function _aX1_(param) + {var + _aX2_=caml_call3(Runtime_ocaml_Runtime[57],2003,7,1), + _aX3_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aX2_), + _aX4_=caml_call3(Runtime_ocaml_Runtime[57],2002,7,1), + _aX5_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aX4_), + _aX6_=caml_call2(Runtime_ocaml_Runtime[83],_aX5_,_aX3_), + _aX7_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aX8_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aX7_), + _aX9_=caml_call2(Runtime_ocaml_Runtime[83],_aX8_,_aX6_); + return caml_call2(Runtime_ocaml_Runtime[29],_Lx_,_aX9_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ly_,[0],_aX1_,_aX0_)}, + _aRZ_= + function(param) + {function _aXg_(param) + {switch(zone[0]) + {case 0: + var _aXq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$368); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXq_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_26084) + :caml_call1(Runtime_ocaml_Runtime[31],cst_31435); + var _aXr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$251); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXr_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33798); + var _aXs_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXs_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34743); + var _aXt_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXt_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35719); + var _aXu_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXu_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_36679); + var _aXv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$110); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXv_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_37457); + var + _aXw_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$111), + _aXx_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXw_), + _aXy_=caml_call1(Runtime_ocaml_Runtime[69],_aXx_), + _aXz_=caml_call1(Runtime_ocaml_Runtime[31],cst_3262), + _aXA_=caml_call2(Runtime_ocaml_Runtime[104],_aXz_,_aXy_), + _aXB_=caml_call1(Runtime_ocaml_Runtime[31],cst_37457$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aXB_,_aXA_); + case 1: + var _aXC_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$369); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXC_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_22883) + :caml_call1(Runtime_ocaml_Runtime[31],cst_28051); + var _aXD_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$252); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXD_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_30368); + var _aXE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$95); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXE_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_31420); + var _aXF_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXF_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_32502); + var _aXG_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXG_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_33569); + var _aXH_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$112); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXH_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_35947); + var + _aXI_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$113), + _aXJ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXI_), + _aXK_=caml_call1(Runtime_ocaml_Runtime[69],_aXJ_), + _aXL_=caml_call1(Runtime_ocaml_Runtime[31],cst_3125), + _aXM_=caml_call2(Runtime_ocaml_Runtime[104],_aXL_,_aXK_), + _aXN_=caml_call1(Runtime_ocaml_Runtime[31],cst_35947$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aXN_,_aXM_); + default: + var _aXO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$370); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXO_)) + return 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_21465) + :caml_call1(Runtime_ocaml_Runtime[31],cst_26038); + var _aXP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$253); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXP_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_28386); + var _aXQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXQ_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_29560); + var _aXR_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXR_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_30749); + var _aXS_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXS_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_31923); + var _aXT_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$114); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXT_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_34301); + var + _aXU_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$115), + _aXV_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXU_), + _aXW_=caml_call1(Runtime_ocaml_Runtime[69],_aXV_), + _aXX_=caml_call1(Runtime_ocaml_Runtime[31],cst_2973), + _aXY_=caml_call2(Runtime_ocaml_Runtime[104],_aXX_,_aXW_), + _aXZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_34301$0); + return caml_call2(Runtime_ocaml_Runtime[93],_aXZ_,_aXY_)}} + function _aXh_(param) + {var + _aXi_=caml_call3(Runtime_ocaml_Runtime[57],2002,7,1), + _aXj_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aXi_), + _aXk_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), + _aXl_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aXk_), + _aXm_=caml_call2(Runtime_ocaml_Runtime[83],_aXl_,_aXj_), + _aXn_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aXo_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aXn_), + _aXp_=caml_call2(Runtime_ocaml_Runtime[83],_aXo_,_aXm_); + return caml_call2(Runtime_ocaml_Runtime[29],_Lz_,_aXp_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LA_,[0],_aXh_,_aXg_)}, + _aR0_= + function(param) + {function _aWx_(param) + {switch(zone[0]) + {case 0: + var _aWH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$371); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWH_)) + var + _aWI_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_171100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_206200); + else + {var _aWJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$254); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWJ_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_221700); + else + {var _aWK_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$97); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWK_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_227900); + else + {var _aWL_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWL_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_234300); + else + {var _aWM_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWM_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_240600); + else + {var _aWN_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$116); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWN_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_245700); + else + var + _aWO_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$117), + _aWP_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aWO_), + _aWQ_=caml_call1(Runtime_ocaml_Runtime[69],_aWP_), + _aWR_=caml_call1(Runtime_ocaml_Runtime[31],cst_21400), + _aWS_=caml_call2(Runtime_ocaml_Runtime[104],_aWR_,_aWQ_), + _aWT_=caml_call1(Runtime_ocaml_Runtime[31],cst_245700$0), + _aWI_=caml_call2(Runtime_ocaml_Runtime[93],_aWT_,_aWS_)}}}}} + break; + case 1: + var _aWU_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$372); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWU_)) + var + _aWI_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_150100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_184000$0); + else + {var _aWV_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$255); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWV_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_199200); + else + {var _aWW_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$98); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWW_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_206100); + else + {var _aWX_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWX_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_213200); + else + {var _aWY_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWY_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_220200); + else + {var _aWZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$118); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWZ_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_235800); + else + var + _aW0_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$119), + _aW1_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aW0_), + _aW2_=caml_call1(Runtime_ocaml_Runtime[69],_aW1_), + _aW3_=caml_call1(Runtime_ocaml_Runtime[31],cst_20500), + _aW4_=caml_call2(Runtime_ocaml_Runtime[104],_aW3_,_aW2_), + _aW5_=caml_call1(Runtime_ocaml_Runtime[31],cst_235800$0), + _aWI_=caml_call2(Runtime_ocaml_Runtime[93],_aW5_,_aW4_)}}}}} + break; + default: + var _aW6_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$373); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW6_)) + var + _aWI_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_140800) + :caml_call1(Runtime_ocaml_Runtime[31],cst_170800); + else + {var _aW7_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$256); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW7_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_186200); + else + {var _aW8_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$99); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW8_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_193900); + else + {var _aW9_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW9_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_201700); + else + {var _aW__=caml_call1(Runtime_ocaml_Runtime[46],cst_4$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW__)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_209400); + else + {var _aW$_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$120); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW$_)) + var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_225000); + else + var + _aXa_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$121), + _aXb_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXa_), + _aXc_=caml_call1(Runtime_ocaml_Runtime[69],_aXb_), + _aXd_=caml_call1(Runtime_ocaml_Runtime[31],cst_19500), + _aXe_=caml_call2(Runtime_ocaml_Runtime[104],_aXd_,_aXc_), + _aXf_=caml_call1(Runtime_ocaml_Runtime[31],cst_225000$0), + _aWI_=caml_call2(Runtime_ocaml_Runtime[93],_aXf_,_aXe_)}}}}}} + return caml_call2 + (Runtime_ocaml_Runtime[104],_aWI_,taux_francs_vers_euros)} + function _aWy_(param) + {var + _aWz_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), + _aWA_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aWz_), + _aWB_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), + _aWC_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aWB_), + _aWD_=caml_call2(Runtime_ocaml_Runtime[83],_aWC_,_aWA_), + _aWE_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aWF_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aWE_), + _aWG_=caml_call2(Runtime_ocaml_Runtime[83],_aWF_,_aWD_); + return caml_call2(Runtime_ocaml_Runtime[29],_LB_,_aWG_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LC_,[0],_aWy_,_aWx_)}, + _aR1_= + function(param) + {function _aVO_(param) + {switch(zone[0]) + {case 0: + var _aVY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$374); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVY_)) + var + _aVZ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_169100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_203800); + else + {var _aV0_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$257); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV0_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_219100); + else + {var _aV1_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$100); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV1_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_225200); + else + {var _aV2_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV2_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_231500); + else + {var _aV3_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV3_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_237700); + else + {var _aV4_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$122); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV4_)) + var + _aVZ_= + caml_call1(Runtime_ocaml_Runtime[31],cst_242800$1); + else + var + _aV5_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$123), + _aV6_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aV5_), + _aV7_=caml_call1(Runtime_ocaml_Runtime[69],_aV6_), + _aV8_=caml_call1(Runtime_ocaml_Runtime[31],cst_21100), + _aV9_=caml_call2(Runtime_ocaml_Runtime[104],_aV8_,_aV7_), + _aV__=caml_call1(Runtime_ocaml_Runtime[31],cst_242800$2), + _aVZ_=caml_call2(Runtime_ocaml_Runtime[93],_aV__,_aV9_)}}}}} + break; + case 1: + var _aV$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$375); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV$_)) + var + _aVZ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_148300) + :caml_call1(Runtime_ocaml_Runtime[31],cst_181800); + else + {var _aWa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$258); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWa_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_196800); + else + {var _aWb_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$101); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWb_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_203700); + else + {var _aWc_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWc_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_210700); + else + {var _aWd_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWd_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_217600); + else + {var _aWe_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$124); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWe_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_233000); + else + var + _aWf_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$125), + _aWg_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aWf_), + _aWh_=caml_call1(Runtime_ocaml_Runtime[69],_aWg_), + _aWi_=caml_call1(Runtime_ocaml_Runtime[31],cst_20300), + _aWj_=caml_call2(Runtime_ocaml_Runtime[104],_aWi_,_aWh_), + _aWk_=caml_call1(Runtime_ocaml_Runtime[31],cst_233000$0), + _aVZ_=caml_call2(Runtime_ocaml_Runtime[93],_aWk_,_aWj_)}}}}} + break; + default: + var _aWl_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$376); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWl_)) + var + _aVZ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_139100) + :caml_call1(Runtime_ocaml_Runtime[31],cst_168800); + else + {var _aWm_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$259); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWm_)) + var + _aVZ_= + caml_call1(Runtime_ocaml_Runtime[31],cst_184000$1); + else + {var _aWn_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$102); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWn_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_191600); + else + {var _aWo_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWo_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_199300); + else + {var _aWp_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWp_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_206900); + else + {var _aWq_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$126); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWq_)) + var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_222300); + else + var + _aWr_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$127), + _aWs_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aWr_), + _aWt_=caml_call1(Runtime_ocaml_Runtime[69],_aWs_), + _aWu_=caml_call1(Runtime_ocaml_Runtime[31],cst_19300), + _aWv_=caml_call2(Runtime_ocaml_Runtime[104],_aWu_,_aWt_), + _aWw_=caml_call1(Runtime_ocaml_Runtime[31],cst_222300$0), + _aVZ_=caml_call2(Runtime_ocaml_Runtime[93],_aWw_,_aWv_)}}}}}} + return caml_call2 + (Runtime_ocaml_Runtime[104],_aVZ_,taux_francs_vers_euros)} + function _aVP_(param) + {var + _aVQ_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), + _aVR_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aVQ_), + _aVS_=caml_call3(Runtime_ocaml_Runtime[57],2000,7,1), + _aVT_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aVS_), + _aVU_=caml_call2(Runtime_ocaml_Runtime[83],_aVT_,_aVR_), + _aVV_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aVW_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aVV_), + _aVX_=caml_call2(Runtime_ocaml_Runtime[83],_aVW_,_aVU_); + return caml_call2(Runtime_ocaml_Runtime[29],_LD_,_aVX_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LE_,[0],_aVP_,_aVO_)}, + _aR2_= + function(param) + {function _aU5_(param) + {switch(zone[0]) + {case 0: + var _aVd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$377); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVd_)) + var + _aVe_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_167400) + :caml_call1(Runtime_ocaml_Runtime[31],cst_201800); + else + {var _aVf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$260); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVf_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_216900); + else + {var _aVg_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$103); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVg_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_223000); + else + {var _aVh_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$87); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVh_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_229200); + else + {var _aVi_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVi_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_235300); + else + {var _aVj_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$128); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVj_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_240400); + else + var + _aVk_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$129), + _aVl_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aVk_), + _aVm_=caml_call1(Runtime_ocaml_Runtime[69],_aVl_), + _aVn_=caml_call1(Runtime_ocaml_Runtime[31],cst_20900), + _aVo_=caml_call2(Runtime_ocaml_Runtime[104],_aVn_,_aVm_), + _aVp_=caml_call1(Runtime_ocaml_Runtime[31],cst_240400$0), + _aVe_=caml_call2(Runtime_ocaml_Runtime[93],_aVp_,_aVo_)}}}}} + break; + case 1: + var _aVq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$378); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVq_)) + var + _aVe_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_146800) + :caml_call1(Runtime_ocaml_Runtime[31],cst_180000); + else + {var _aVr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$261); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVr_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_194900); + else + {var _aVs_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$104); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVs_)) + var + _aVe_= + caml_call1(Runtime_ocaml_Runtime[31],cst_201700$0); + else + {var _aVt_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVt_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_208600); + else + {var _aVu_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVu_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_215400); + else + {var _aVv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$130); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVv_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_230700); + else + var + _aVw_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$131), + _aVx_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aVw_), + _aVy_=caml_call1(Runtime_ocaml_Runtime[69],_aVx_), + _aVz_=caml_call1(Runtime_ocaml_Runtime[31],cst_20100), + _aVA_=caml_call2(Runtime_ocaml_Runtime[104],_aVz_,_aVy_), + _aVB_=caml_call1(Runtime_ocaml_Runtime[31],cst_230700$0), + _aVe_=caml_call2(Runtime_ocaml_Runtime[93],_aVB_,_aVA_)}}}}} + break; + default: + var _aVC_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$379); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVC_)) + var + _aVe_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_137700) + :caml_call1(Runtime_ocaml_Runtime[31],cst_167100); + else + {var _aVD_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$262); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVD_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_182200); + else + {var _aVE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$105); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVE_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_189700); + else + {var _aVF_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$89); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVF_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_197300); + else + {var _aVG_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVG_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_204900); + else + {var _aVH_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$132); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVH_)) + var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_220100); + else + var + _aVI_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$133), + _aVJ_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aVI_), + _aVK_=caml_call1(Runtime_ocaml_Runtime[69],_aVJ_), + _aVL_=caml_call1(Runtime_ocaml_Runtime[31],cst_19100), + _aVM_=caml_call2(Runtime_ocaml_Runtime[104],_aVL_,_aVK_), + _aVN_=caml_call1(Runtime_ocaml_Runtime[31],cst_220100$0), + _aVe_=caml_call2(Runtime_ocaml_Runtime[93],_aVN_,_aVM_)}}}}}} + return caml_call2 + (Runtime_ocaml_Runtime[104],_aVe_,taux_francs_vers_euros)} + function _aU6_(param) + {var + _aU7_=caml_call3(Runtime_ocaml_Runtime[57],2000,7,1), + _aU8_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aU7_), + _aU9_=caml_call3(Runtime_ocaml_Runtime[57],1999,7,1), + _aU__= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aU9_), + _aU$_=caml_call2(Runtime_ocaml_Runtime[83],_aU__,_aU8_), + _aVa_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aVb_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aVa_), + _aVc_=caml_call2(Runtime_ocaml_Runtime[83],_aVb_,_aU$_); + return caml_call2(Runtime_ocaml_Runtime[29],_LF_,_aVc_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LG_,[0],_aU6_,_aU5_)}, + _aR3_= + function(param) + {function _aUk_(param) + {switch(zone[0]) + {case 0: + var _aUu_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$380); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUu_)) + var + _aUv_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_167200) + :caml_call1(Runtime_ocaml_Runtime[31],cst_201600); + else + {var _aUw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$263); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUw_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_216700); + else + {var _aUx_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$106); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUx_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_222800); + else + {var _aUy_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUy_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_229000); + else + {var _aUz_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUz_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_235100); + else + {var _aUA_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$134); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUA_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_240200); + else + var + _aUB_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$135), + _aUC_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUB_), + _aUD_=caml_call1(Runtime_ocaml_Runtime[69],_aUC_), + _aUE_=caml_call1(Runtime_ocaml_Runtime[31],cst_20900$0), + _aUF_=caml_call2(Runtime_ocaml_Runtime[104],_aUE_,_aUD_), + _aUG_=caml_call1(Runtime_ocaml_Runtime[31],cst_240200$0), + _aUv_=caml_call2(Runtime_ocaml_Runtime[93],_aUG_,_aUF_)}}}}} + break; + case 1: + var _aUH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$381); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUH_)) + var + _aUv_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_146700) + :caml_call1(Runtime_ocaml_Runtime[31],cst_179800); + else + {var _aUI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$264); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUI_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_194700); + else + {var _aUJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$107); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUJ_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_201500); + else + {var _aUK_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$91); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUK_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_208400); + else + {var _aUL_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$87); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUL_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_215200); + else + {var _aUM_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$136); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUM_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_230500); + else + var + _aUN_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$137), + _aUO_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUN_), + _aUP_=caml_call1(Runtime_ocaml_Runtime[69],_aUO_), + _aUQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_20100$0), + _aUR_=caml_call2(Runtime_ocaml_Runtime[104],_aUQ_,_aUP_), + _aUS_=caml_call1(Runtime_ocaml_Runtime[31],cst_230500$0), + _aUv_=caml_call2(Runtime_ocaml_Runtime[93],_aUS_,_aUR_)}}}}} + break; + default: + var _aUT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$382); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUT_)) + var + _aUv_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_137600) + :caml_call1(Runtime_ocaml_Runtime[31],cst_166900); + else + {var _aUU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$265); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUU_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_182000); + else + {var _aUV_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$108); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUV_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_189500); + else + {var _aUW_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUW_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_197100); + else + {var _aUX_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUX_)) + var + _aUv_= + caml_call1(Runtime_ocaml_Runtime[31],cst_204700$0); + else + {var _aUY_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$138); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUY_)) + var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_219900); + else + var + _aUZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$139), + _aU0_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUZ_), + _aU1_=caml_call1(Runtime_ocaml_Runtime[69],_aU0_), + _aU2_=caml_call1(Runtime_ocaml_Runtime[31],cst_19100$0), + _aU3_=caml_call2(Runtime_ocaml_Runtime[104],_aU2_,_aU1_), + _aU4_=caml_call1(Runtime_ocaml_Runtime[31],cst_219900$0), + _aUv_=caml_call2(Runtime_ocaml_Runtime[93],_aU4_,_aU3_)}}}}}} + return caml_call2 + (Runtime_ocaml_Runtime[104],_aUv_,taux_francs_vers_euros)} + function _aUl_(param) + {var + _aUm_=caml_call3(Runtime_ocaml_Runtime[57],1999,7,1), + _aUn_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aUm_), + _aUo_=caml_call3(Runtime_ocaml_Runtime[57],1998,7,1), + _aUp_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aUo_), + _aUq_=caml_call2(Runtime_ocaml_Runtime[83],_aUp_,_aUn_), + _aUr_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aUs_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aUr_), + _aUt_=caml_call2(Runtime_ocaml_Runtime[83],_aUs_,_aUq_); + return caml_call2(Runtime_ocaml_Runtime[29],_LH_,_aUt_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LI_,[0],_aUl_,_aUk_)}, + _aR4_= + function(param) + {function _aTB_(param) + {switch(zone[0]) + {case 0: + var _aTL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$383); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTL_)) + var + _aTM_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_163300) + :caml_call1(Runtime_ocaml_Runtime[31],cst_196900); + else + {var _aTN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$266); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTN_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_211600); + else + {var _aTO_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$109); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTO_)) + var + _aTM_= + caml_call1(Runtime_ocaml_Runtime[31],cst_217600$0); + else + {var _aTP_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$93); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTP_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_223600); + else + {var _aTQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$89); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTQ_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_229600); + else + {var _aTR_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$140); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTR_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_234600); + else + var + _aTS_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$141), + _aTT_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aTS_), + _aTU_=caml_call1(Runtime_ocaml_Runtime[69],_aTT_), + _aTV_=caml_call1(Runtime_ocaml_Runtime[31],cst_20400), + _aTW_=caml_call2(Runtime_ocaml_Runtime[104],_aTV_,_aTU_), + _aTX_=caml_call1(Runtime_ocaml_Runtime[31],cst_234600$0), + _aTM_=caml_call2(Runtime_ocaml_Runtime[93],_aTX_,_aTW_)}}}}} + break; + case 1: + var _aTY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$384); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTY_)) + var + _aTM_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_143300) + :caml_call1(Runtime_ocaml_Runtime[31],cst_175600); + else + {var _aTZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$267); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTZ_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_190100); + else + {var _aT0_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$110); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT0_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_196600); + else + {var _aT1_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT1_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_203500); + else + {var _aT2_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT2_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_210200); + else + {var _aT3_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$142); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT3_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_225100); + else + var + _aT4_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$143), + _aT5_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aT4_), + _aT6_=caml_call1(Runtime_ocaml_Runtime[69],_aT5_), + _aT7_=caml_call1(Runtime_ocaml_Runtime[31],cst_19600), + _aT8_=caml_call2(Runtime_ocaml_Runtime[104],_aT7_,_aT6_), + _aT9_=caml_call1(Runtime_ocaml_Runtime[31],cst_225100$0), + _aTM_=caml_call2(Runtime_ocaml_Runtime[93],_aT9_,_aT8_)}}}}} + break; + default: + var _aT__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$385); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT__)) + var + _aTM_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_134400) + :caml_call1(Runtime_ocaml_Runtime[31],cst_163000$0); + else + {var _aT$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$268); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT$_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_177700); + else + {var _aUa_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$111); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUa_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_185100); + else + {var _aUb_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$95); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUb_)) + var + _aTM_= + caml_call1(Runtime_ocaml_Runtime[31],cst_192500$0); + else + {var _aUc_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$91); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUc_)) + var + _aTM_= + caml_call1(Runtime_ocaml_Runtime[31],cst_199900$0); + else + {var _aUd_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$144); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUd_)) + var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_214700); + else + var + _aUe_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$145), + _aUf_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUe_), + _aUg_=caml_call1(Runtime_ocaml_Runtime[69],_aUf_), + _aUh_=caml_call1(Runtime_ocaml_Runtime[31],cst_18700), + _aUi_=caml_call2(Runtime_ocaml_Runtime[104],_aUh_,_aUg_), + _aUj_=caml_call1(Runtime_ocaml_Runtime[31],cst_214700$0), + _aTM_=caml_call2(Runtime_ocaml_Runtime[93],_aUj_,_aUi_)}}}}}} + return caml_call2 + (Runtime_ocaml_Runtime[104],_aTM_,taux_francs_vers_euros)} + function _aTC_(param) + {var + _aTD_=caml_call3(Runtime_ocaml_Runtime[57],1998,7,1), + _aTE_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aTD_), + _aTF_=caml_call3(Runtime_ocaml_Runtime[57],1997,7,1), + _aTG_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aTF_), + _aTH_=caml_call2(Runtime_ocaml_Runtime[83],_aTG_,_aTE_), + _aTI_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aTJ_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aTI_), + _aTK_=caml_call2(Runtime_ocaml_Runtime[83],_aTJ_,_aTH_); + return caml_call2(Runtime_ocaml_Runtime[29],_LJ_,_aTK_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LK_,[0],_aTC_,_aTB_)}, + _aR5_= + function(param) + {function _aSS_(param) + {switch(zone[0]) + {case 0: + var _aS2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$386); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS2_)) + var + _aS3_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_160400) + :caml_call1(Runtime_ocaml_Runtime[31],cst_193400); + else + {var _aS4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$269); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS4_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_207800); + else + {var _aS5_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$112); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS5_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_213700); + else + {var _aS6_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS6_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_219600); + else + {var _aS7_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS7_)) + var + _aS3_= + caml_call1(Runtime_ocaml_Runtime[31],cst_225500$0); + else + {var _aS8_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$146); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS8_)) + var + _aS3_= + caml_call1(Runtime_ocaml_Runtime[31],cst_230500$1); + else + var + _aS9_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$147), + _aS__= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aS9_), + _aS$_=caml_call1(Runtime_ocaml_Runtime[69],_aS__), + _aTa_=caml_call1(Runtime_ocaml_Runtime[31],cst_20000), + _aTb_=caml_call2(Runtime_ocaml_Runtime[104],_aTa_,_aS$_), + _aTc_=caml_call1(Runtime_ocaml_Runtime[31],cst_230500$2), + _aS3_=caml_call2(Runtime_ocaml_Runtime[93],_aTc_,_aTb_)}}}}} + break; + case 1: + var _aTd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$387); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTd_)) + var + _aS3_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_140800$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_172500$0); + else + {var _aTe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$270); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTe_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_186700); + else + {var _aTf_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$113); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTf_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_193300); + else + {var _aTg_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$97); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTg_)) + var + _aS3_= + caml_call1(Runtime_ocaml_Runtime[31],cst_199900$1); + else + {var _aTh_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$93); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTh_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_206500); + else + {var _aTi_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$148); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTi_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_221100); + else + var + _aTj_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$149), + _aTk_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aTj_), + _aTl_=caml_call1(Runtime_ocaml_Runtime[69],_aTk_), + _aTm_=caml_call1(Runtime_ocaml_Runtime[31],cst_19300$0), + _aTn_=caml_call2(Runtime_ocaml_Runtime[104],_aTm_,_aTl_), + _aTo_=caml_call1(Runtime_ocaml_Runtime[31],cst_221100$0), + _aS3_=caml_call2(Runtime_ocaml_Runtime[93],_aTo_,_aTn_)}}}}} + break; + default: + var _aTp_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$388); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTp_)) + var + _aS3_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_132000$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_180100$1); + else + {var _aTq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$271); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTq_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_174500); + else + {var _aTr_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$114); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTr_)) + var + _aS3_= + caml_call1(Runtime_ocaml_Runtime[31],cst_181800$0); + else + {var _aTs_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$98); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTs_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_189100); + else + {var _aTt_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTt_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_196400); + else + {var _aTu_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$150); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTu_)) + var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_210900); + else + var + _aTv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$151), + _aTw_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aTv_), + _aTx_=caml_call1(Runtime_ocaml_Runtime[69],_aTw_), + _aTy_=caml_call1(Runtime_ocaml_Runtime[31],cst_18400), + _aTz_=caml_call2(Runtime_ocaml_Runtime[104],_aTy_,_aTx_), + _aTA_=caml_call1(Runtime_ocaml_Runtime[31],cst_210900$0), + _aS3_=caml_call2(Runtime_ocaml_Runtime[93],_aTA_,_aTz_)}}}}}} + return caml_call2 + (Runtime_ocaml_Runtime[104],_aS3_,taux_francs_vers_euros)} + function _aST_(param) + {var + _aSU_=caml_call3(Runtime_ocaml_Runtime[57],1997,7,1), + _aSV_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aSU_), + _aSW_=caml_call3(Runtime_ocaml_Runtime[57],1994,7,1), + _aSX_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aSW_), + _aSY_=caml_call2(Runtime_ocaml_Runtime[83],_aSX_,_aSV_), + _aSZ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aS0_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aSZ_), + _aS1_=caml_call2(Runtime_ocaml_Runtime[83],_aS0_,_aSY_); + return caml_call2(Runtime_ocaml_Runtime[29],_LL_,_aS1_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LM_,[0],_aST_,_aSS_)}, + _aR6_= + [0, + function(param) + {function _aR9_(param) + {switch(zone[0]) + {case 0: + var _aSh_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$389); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSh_)) + var + _aSi_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_158700) + :caml_call1(Runtime_ocaml_Runtime[31],cst_191300); + else + {var _aSj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$272); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSj_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_205500); + else + {var _aSk_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$115); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSk_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_211300); + else + {var _aSl_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$99); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSl_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_217100); + else + {var _aSm_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$95); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSm_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_222900); + else + {var _aSn_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$152); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSn_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_228000); + else + var + _aSo_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$153), + _aSp_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aSo_), + _aSq_=caml_call1(Runtime_ocaml_Runtime[69],_aSp_), + _aSr_=caml_call1(Runtime_ocaml_Runtime[31],cst_19800), + _aSs_=caml_call2(Runtime_ocaml_Runtime[104],_aSr_,_aSq_), + _aSt_=caml_call1(Runtime_ocaml_Runtime[31],cst_228000$0), + _aSi_=caml_call2(Runtime_ocaml_Runtime[93],_aSt_,_aSs_)}}}}} + break; + case 1: + var _aSu_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$390); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSu_)) + var + _aSi_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_139300) + :caml_call1(Runtime_ocaml_Runtime[31],cst_170600); + else + {var _aSv_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$273); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSv_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_184700); + else + {var _aSw_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$116); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSw_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_191200); + else + {var _aSx_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$100); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSx_)) + var + _aSi_= + caml_call1(Runtime_ocaml_Runtime[31],cst_197700$0); + else + {var _aSy_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSy_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_204200); + else + {var _aSz_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$154); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSz_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_218700); + else + var + _aSA_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$155), + _aSB_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aSA_), + _aSC_=caml_call1(Runtime_ocaml_Runtime[69],_aSB_), + _aSD_=caml_call1(Runtime_ocaml_Runtime[31],cst_19100$1), + _aSE_=caml_call2(Runtime_ocaml_Runtime[104],_aSD_,_aSC_), + _aSF_=caml_call1(Runtime_ocaml_Runtime[31],cst_218700$0), + _aSi_=caml_call2(Runtime_ocaml_Runtime[93],_aSF_,_aSE_)}}}}} + break; + default: + var _aSG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$391); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSG_)) + var + _aSi_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_130600) + :caml_call1(Runtime_ocaml_Runtime[31],cst_158400); + else + {var _aSH_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$274); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSH_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_172600); + else + {var _aSI_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$117); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSI_)) + var + _aSi_= + caml_call1(Runtime_ocaml_Runtime[31],cst_179800$0); + else + {var _aSJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$101); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSJ_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_187000); + else + {var _aSK_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$97); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSK_)) + var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_194200); + else + {var _aSL_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$156); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSL_)) + var + _aSi_= + caml_call1(Runtime_ocaml_Runtime[31],cst_208600$0); + else + var + _aSM_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$157), + _aSN_= + caml_call2 + (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aSM_), + _aSO_=caml_call1(Runtime_ocaml_Runtime[69],_aSN_), + _aSP_=caml_call1(Runtime_ocaml_Runtime[31],cst_18200), + _aSQ_=caml_call2(Runtime_ocaml_Runtime[104],_aSP_,_aSO_), + _aSR_=caml_call1(Runtime_ocaml_Runtime[31],cst_208600$1), + _aSi_=caml_call2(Runtime_ocaml_Runtime[93],_aSR_,_aSQ_)}}}}}} + return caml_call2 + (Runtime_ocaml_Runtime[104],_aSi_,taux_francs_vers_euros)} + function _aR__(param) + {var + _aR$_=caml_call3(Runtime_ocaml_Runtime[57],1994,7,1), + _aSa_= + caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aR$_), + _aSb_=caml_call3(Runtime_ocaml_Runtime[57],1992,7,1), + _aSc_= + caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aSb_), + _aSd_=caml_call2(Runtime_ocaml_Runtime[83],_aSc_,_aSa_), + _aSe_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aSf_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aSe_), + _aSg_=caml_call2(Runtime_ocaml_Runtime[83],_aSf_,_aSd_); + return caml_call2(Runtime_ocaml_Runtime[29],_LN_,_aSg_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LO_,[0],_aR__,_aR9_)}, + _aR5_, + _aR4_, + _aR3_, + _aR2_, + _aR1_, + _aR0_, + _aRZ_, + _aRY_, + _aRX_, + _aRW_, + _aRV_, + _aRU_, + _aRT_, + _aRS_, + _aRR_, + _aRQ_, + _aRP_, + _aRO_, + _aRN_, + _aRM_, + _aRL_], + _aR7_=caml_call4(Runtime_ocaml_Runtime[63],_LP_,_aR6_,_aRK_,_aRJ_); + return _aR7_} + catch(_aR8_) + {_aR8_ = caml_wrap_exception(_aR8_); + if(_aR8_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_K8_]; + throw _aR8_}} + var + calcul_plafond_mensualite_d842= + caml_call3 + (Runtime_ocaml_Runtime[28],_LQ_,Runtime_ocaml_Runtime[10],_aHx_); + try + {var + _aHy_= + function(param) + {function _aQ$_(param){throw Runtime_ocaml_Runtime[2]} + function _aRa_(param){return 0} + function _aRb_(param) + {function _aRx_(param) + {var _aRE_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$392); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRE_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_5399$5); + var + _aRF_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aRG_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$4), + _aRH_=caml_call2(Runtime_ocaml_Runtime[104],_aRG_,_aRF_), + _aRI_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399$6); + return caml_call2(Runtime_ocaml_Runtime[93],_aRI_,_aRH_)} + function _aRy_(param) + {var + _aRz_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aRA_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aRz_), + _aRB_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _aRC_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aRB_), + _aRD_=caml_call2(Runtime_ocaml_Runtime[83],_aRC_,_aRA_); + return caml_call2(Runtime_ocaml_Runtime[29],_LS_,_aRD_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LT_,[0],_aRy_,_aRx_)} + function _aRc_(param) + {function _aRm_(param) + {var _aRt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$393); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRt_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_5422$5); + var + _aRu_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$4), + _aRv_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _aRu_, + multiplicateur_majoration_char), + _aRw_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422$6); + return caml_call2(Runtime_ocaml_Runtime[93],_aRw_,_aRv_)} + function _aRn_(param) + {var + _aRo_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aRp_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aRo_), + _aRq_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aRr_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aRq_), + _aRs_=caml_call2(Runtime_ocaml_Runtime[83],_aRr_,_aRp_); + return caml_call2(Runtime_ocaml_Runtime[29],_LU_,_aRs_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LV_,[0],_aRn_,_aRm_)} + var + _aRd_= + [0, + function(param) + {function _aRe_(param) + {var _aRi_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$394); + if + (caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRi_)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_5612$5); + var + _aRj_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$4), + _aRk_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _aRj_, + multiplicateur_majoration_char), + _aRl_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$6); + return caml_call2(Runtime_ocaml_Runtime[93],_aRl_,_aRk_)} + function _aRf_(param) + {var + _aRg_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aRh_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aRg_); + return caml_call2(Runtime_ocaml_Runtime[29],_LW_,_aRh_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_LX_,[0],_aRf_,_aRe_)}, + _aRc_, + _aRb_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_LY_,_aRd_,_aRa_,_aQ$_)}, + _aHz_=function(param){return 1}, + _aHA_= + [0, + function(param) + {function _aNh_(param) + {function _aQA_(param){throw Runtime_ocaml_Runtime[2]} + function _aQB_(param){return 0} + function _aQC_(param) + {function _aQZ_(param) + {var + _aQ7_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aQ8_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$5), + _aQ9_=caml_call2(Runtime_ocaml_Runtime[104],_aQ8_,_aQ7_), + _aQ__= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_2699$1) + :caml_call1(Runtime_ocaml_Runtime[31],cst_5399$7); + return caml_call2(Runtime_ocaml_Runtime[93],_aQ__,_aQ9_)} + function _aQ0_(param) + {var + _aQ1_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aQ2_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aQ1_), + _aQ3_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _aQ4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aQ3_), + _aQ5_=caml_call2(Runtime_ocaml_Runtime[83],_aQ4_,_aQ2_), + _aQ6_= + caml_call2(Runtime_ocaml_Runtime[83],_aQ5_,copropriete); + return caml_call2(Runtime_ocaml_Runtime[29],_LZ_,_aQ6_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_L0_,[0],_aQ0_,_aQZ_)} + function _aQD_(param) + {function _aQN_(param) + {var + _aQV_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aQW_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$5), + _aQX_=caml_call2(Runtime_ocaml_Runtime[104],_aQW_,_aQV_), + _aQY_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_2710$1) + :caml_call1(Runtime_ocaml_Runtime[31],cst_5422$7); + return caml_call2(Runtime_ocaml_Runtime[93],_aQY_,_aQX_)} + function _aQO_(param) + {var + _aQP_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aQQ_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aQP_), + _aQR_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aQS_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aQR_), + _aQT_=caml_call2(Runtime_ocaml_Runtime[83],_aQS_,_aQQ_), + _aQU_= + caml_call2(Runtime_ocaml_Runtime[83],_aQT_,copropriete); + return caml_call2(Runtime_ocaml_Runtime[29],_L1_,_aQU_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_L2_,[0],_aQO_,_aQN_)} + var + _aQE_= + [0, + function(param) + {function _aQF_(param) + {var + _aQK_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$5), + _aQL_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _aQK_, + multiplicateur_majoration_char), + _aQM_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_2805$1) + :caml_call1(Runtime_ocaml_Runtime[31],cst_5612$7); + return caml_call2(Runtime_ocaml_Runtime[93],_aQM_,_aQL_)} + function _aQG_(param) + {var + _aQH_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aQI_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aQH_), + _aQJ_= + caml_call2(Runtime_ocaml_Runtime[83],_aQI_,copropriete); + return caml_call2(Runtime_ocaml_Runtime[29],_L3_,_aQJ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_L4_,[0],_aQG_,_aQF_)}, + _aQD_, + _aQC_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_L5_,_aQE_,_aQB_,_aQA_)} + function _aNi_(param){return 1} + var + _aNj_= + [0, + function(param) + {function _aNk_(param) + {function _aO0_(param){throw Runtime_ocaml_Runtime[2]} + function _aO1_(param){return 0} + function _aO2_(param) + {function _aQj_(param) + {var + _aQs_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aQt_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$5), + _aQu_=caml_call2(Runtime_ocaml_Runtime[104],_aQt_,_aQs_), + _aQv_=caml_call1(Runtime_ocaml_Runtime[31],cst_3614$5), + montant=caml_call2(Runtime_ocaml_Runtime[93],_aQv_,_aQu_), + _aQw_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$72), + _aQx_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$6), + _aQy_=caml_call2(Runtime_ocaml_Runtime[104],_aQx_,_aQw_), + _aQz_=caml_call1(Runtime_ocaml_Runtime[31],cst_3614$6), + limite=caml_call2(Runtime_ocaml_Runtime[93],_aQz_,_aQy_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _aQk_(param) + {switch(residence[0]) + {case 0:var _aQl_=1;break; + case 1:var _aQl_=0;break; + case 2:var _aQl_=1;break; + case 3:var _aQl_=1;break; + case 4:var _aQl_=1;break; + case 5:var _aQl_=1;break; + case 6:var _aQl_=0;break; + case 7:var _aQl_=0;break; + default:var _aQl_=1} + var + _aQm_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _aQn_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aQm_), + _aQo_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aQp_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aQo_), + _aQq_=caml_call2(Runtime_ocaml_Runtime[83],_aQp_,_aQn_), + _aQr_=caml_call2(Runtime_ocaml_Runtime[83],_aQq_,_aQl_); + return caml_call2(Runtime_ocaml_Runtime[29],_L6_,_aQr_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_L7_,[0],_aQk_,_aQj_)} + function _aO3_(param) + {function _aP4_(param) + {var + _aQb_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aQc_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$5), + _aQd_=caml_call2(Runtime_ocaml_Runtime[104],_aQc_,_aQb_), + _aQe_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625$5), + montant=caml_call2(Runtime_ocaml_Runtime[93],_aQe_,_aQd_), + _aQf_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$73), + _aQg_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$6), + _aQh_=caml_call2(Runtime_ocaml_Runtime[104],_aQg_,_aQf_), + _aQi_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625$6), + limite=caml_call2(Runtime_ocaml_Runtime[93],_aQi_,_aQh_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _aP5_(param) + {switch(residence[0]) + {case 0:var _aP6_=1;break; + case 1:var _aP6_=0;break; + case 2:var _aP6_=1;break; + case 3:var _aP6_=1;break; + case 4:var _aP6_=1;break; + case 5:var _aP6_=1;break; + case 6:var _aP6_=0;break; + case 7:var _aP6_=0;break; + default:var _aP6_=1} + var + _aP7_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aP8_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aP7_), + _aP9_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _aP__= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aP9_), + _aP$_=caml_call2(Runtime_ocaml_Runtime[83],_aP__,_aP8_), + _aQa_=caml_call2(Runtime_ocaml_Runtime[83],_aP$_,_aP6_); + return caml_call2(Runtime_ocaml_Runtime[29],_L8_,_aQa_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_L9_,[0],_aP5_,_aP4_)} + function _aO4_(param) + {function _aPv_(param) + {var + _aPW_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aPX_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$11), + _aPY_=caml_call2(Runtime_ocaml_Runtime[104],_aPX_,_aPW_), + _aPZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$11), + montant=caml_call2(Runtime_ocaml_Runtime[93],_aPZ_,_aPY_), + _aP0_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$74), + _aP1_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$12), + _aP2_=caml_call2(Runtime_ocaml_Runtime[104],_aP1_,_aP0_), + _aP3_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$12), + limite=caml_call2(Runtime_ocaml_Runtime[93],_aP3_,_aP2_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _aPw_(param) + {switch(residence[0]) + {case 0:var _aPP_=1;break; + case 1:var _aPP_=0;break; + case 2:var _aPP_=1;break; + case 3:var _aPP_=1;break; + case 4:var _aPP_=1;break; + case 5:var _aPP_=1;break; + case 6:var _aPP_=0;break; + case 7:var _aPP_=0;break; + default:var _aPP_=1} + var + _aPQ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aPR_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aPQ_), + _aPS_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _aPT_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aPS_), + _aPU_=caml_call2(Runtime_ocaml_Runtime[83],_aPT_,_aPR_), + _aPV_=caml_call2(Runtime_ocaml_Runtime[83],_aPU_,_aPP_); + return caml_call2(Runtime_ocaml_Runtime[29],_L__,_aPV_)} + var + _aPx_= + [0, + function(param) + {function _aPy_(param) + {var + _aPH_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aPI_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$13), + _aPJ_=caml_call2(Runtime_ocaml_Runtime[104],_aPI_,_aPH_), + _aPK_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$13), + montant=caml_call2(Runtime_ocaml_Runtime[93],_aPK_,_aPJ_), + _aPL_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$75), + _aPM_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$14), + _aPN_=caml_call2(Runtime_ocaml_Runtime[104],_aPM_,_aPL_), + _aPO_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$14), + limite=caml_call2(Runtime_ocaml_Runtime[93],_aPO_,_aPN_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _aPz_(param) + {switch(residence[0]) + {case 0:var _aPA_=1;break; + case 1:var _aPA_=0;break; + case 2:var _aPA_=1;break; + case 3:var _aPA_=1;break; + case 4:var _aPA_=1;break; + case 5:var _aPA_=1;break; + case 6:var _aPA_=0;break; + case 7:var _aPA_=0;break; + default:var _aPA_=1} + var + _aPB_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _aPC_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aPB_), + _aPD_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aPE_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aPD_), + _aPF_=caml_call2(Runtime_ocaml_Runtime[83],_aPE_,_aPC_), + _aPG_=caml_call2(Runtime_ocaml_Runtime[83],_aPF_,_aPA_); + return caml_call2(Runtime_ocaml_Runtime[29],_L$_,_aPG_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ma_,[0],_aPz_,_aPy_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mb_,_aPx_,_aPw_,_aPv_)} + function _aO5_(param) + {function _aPe_(param) + {var + _aPn_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aPo_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$8), + _aPp_=caml_call2(Runtime_ocaml_Runtime[104],_aPo_,_aPn_), + _aPq_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$8), + montant=caml_call2(Runtime_ocaml_Runtime[93],_aPq_,_aPp_), + _aPr_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$76), + _aPs_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$9), + _aPt_=caml_call2(Runtime_ocaml_Runtime[104],_aPs_,_aPr_), + _aPu_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$9), + limite=caml_call2(Runtime_ocaml_Runtime[93],_aPu_,_aPt_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _aPf_(param) + {switch(residence[0]) + {case 0:var _aPg_=1;break; + case 1:var _aPg_=0;break; + case 2:var _aPg_=1;break; + case 3:var _aPg_=1;break; + case 4:var _aPg_=1;break; + case 5:var _aPg_=1;break; + case 6:var _aPg_=0;break; + case 7:var _aPg_=0;break; + default:var _aPg_=1} + var + _aPh_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _aPi_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aPh_), + _aPj_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aPk_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aPj_), + _aPl_=caml_call2(Runtime_ocaml_Runtime[83],_aPk_,_aPi_), + _aPm_=caml_call2(Runtime_ocaml_Runtime[83],_aPl_,_aPg_); + return caml_call2(Runtime_ocaml_Runtime[29],_Mc_,_aPm_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Md_,[0],_aPf_,_aPe_)} + var + _aO6_= + [0, + function(param) + {function _aO7_(param) + {var + _aPb_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$10), + _aPc_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _aPb_, + multiplicateur_majoration_char), + _aPd_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$10); + return caml_call2(Runtime_ocaml_Runtime[93],_aPd_,_aPc_)} + function _aO8_(param) + {switch(residence[0]) + {case 0:var _aO9_=1;break; + case 1:var _aO9_=0;break; + case 2:var _aO9_=1;break; + case 3:var _aO9_=1;break; + case 4:var _aO9_=1;break; + case 5:var _aO9_=1;break; + case 6:var _aO9_=0;break; + case 7:var _aO9_=0;break; + default:var _aO9_=1} + var + _aO__=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _aO$_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aO__), + _aPa_=caml_call2(Runtime_ocaml_Runtime[83],_aO$_,_aO9_); + return caml_call2(Runtime_ocaml_Runtime[29],_Me_,_aPa_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mf_,[0],_aO8_,_aO7_)}, + _aO5_, + _aO4_, + _aO3_, + _aO2_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mg_,_aO6_,_aO1_,_aO0_)} + function _aNl_(param){return 1} + var + _aNm_= + [0, + function(param) + {function _aNn_(param){throw Runtime_ocaml_Runtime[2]} + function _aNo_(param){return 0} + function _aNp_(param) + {function _aOJ_(param) + {var + _aOS_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aOT_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$7), + _aOU_=caml_call2(Runtime_ocaml_Runtime[104],_aOT_,_aOS_), + _aOV_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1858$1) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3614$8), + montant=caml_call2(Runtime_ocaml_Runtime[93],_aOV_,_aOU_), + _aOW_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$77), + _aOX_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$8), + _aOY_=caml_call2(Runtime_ocaml_Runtime[104],_aOX_,_aOW_), + _aOZ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1858$2) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3614$7), + limite=caml_call2(Runtime_ocaml_Runtime[93],_aOZ_,_aOY_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _aOK_(param) + {switch(residence[0]) + {case 0:var _aOL_=1;break; + case 1:var _aOL_=0;break; + case 2:var _aOL_=1;break; + case 3:var _aOL_=1;break; + case 4:var _aOL_=1;break; + case 5:var _aOL_=1;break; + case 6:var _aOL_=0;break; + case 7:var _aOL_=0;break; + default:var _aOL_=1} + var + _aOM_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _aON_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aOM_), + _aOO_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aOP_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aOO_), + _aOQ_=caml_call2(Runtime_ocaml_Runtime[83],_aOP_,_aON_), + _aOR_=caml_call2(Runtime_ocaml_Runtime[83],_aOQ_,_aOL_); + return caml_call2(Runtime_ocaml_Runtime[29],_Mh_,_aOR_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mi_,[0],_aOK_,_aOJ_)} + function _aNq_(param) + {function _aOs_(param) + {var + _aOB_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aOC_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$7), + _aOD_=caml_call2(Runtime_ocaml_Runtime[104],_aOC_,_aOB_), + _aOE_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1864$1) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3625$8), + montant=caml_call2(Runtime_ocaml_Runtime[93],_aOE_,_aOD_), + _aOF_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$78), + _aOG_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$8), + _aOH_=caml_call2(Runtime_ocaml_Runtime[104],_aOG_,_aOF_), + _aOI_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1864$2) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3625$7), + limite=caml_call2(Runtime_ocaml_Runtime[93],_aOI_,_aOH_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _aOt_(param) + {switch(residence[0]) + {case 0:var _aOu_=1;break; + case 1:var _aOu_=0;break; + case 2:var _aOu_=1;break; + case 3:var _aOu_=1;break; + case 4:var _aOu_=1;break; + case 5:var _aOu_=1;break; + case 6:var _aOu_=0;break; + case 7:var _aOu_=0;break; + default:var _aOu_=1} + var + _aOv_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aOw_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aOv_), + _aOx_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _aOy_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aOx_), + _aOz_=caml_call2(Runtime_ocaml_Runtime[83],_aOy_,_aOw_), + _aOA_=caml_call2(Runtime_ocaml_Runtime[83],_aOz_,_aOu_); + return caml_call2(Runtime_ocaml_Runtime[29],_Mj_,_aOA_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mk_,[0],_aOt_,_aOs_)} + function _aNr_(param) + {function _aNV_(param) + {var + _aOk_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aOl_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$15), + _aOm_=caml_call2(Runtime_ocaml_Runtime[104],_aOl_,_aOk_), + _aOn_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$3) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$16), + montant=caml_call2(Runtime_ocaml_Runtime[93],_aOn_,_aOm_), + _aOo_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$79), + _aOp_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$16), + _aOq_=caml_call2(Runtime_ocaml_Runtime[104],_aOp_,_aOo_), + _aOr_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$4) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$15), + limite=caml_call2(Runtime_ocaml_Runtime[93],_aOr_,_aOq_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _aNW_(param) + {switch(residence[0]) + {case 0:var _aOd_=1;break; + case 1:var _aOd_=0;break; + case 2:var _aOd_=1;break; + case 3:var _aOd_=1;break; + case 4:var _aOd_=1;break; + case 5:var _aOd_=1;break; + case 6:var _aOd_=0;break; + case 7:var _aOd_=0;break; + default:var _aOd_=1} + var + _aOe_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aOf_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aOe_), + _aOg_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _aOh_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aOg_), + _aOi_=caml_call2(Runtime_ocaml_Runtime[83],_aOh_,_aOf_), + _aOj_=caml_call2(Runtime_ocaml_Runtime[83],_aOi_,_aOd_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ml_,_aOj_)} + var + _aNX_= + [0, + function(param) + {function _aNY_(param) + {var + _aN7_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aN8_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$17), + _aN9_=caml_call2(Runtime_ocaml_Runtime[104],_aN8_,_aN7_), + _aN__= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$5) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$18), + montant=caml_call2(Runtime_ocaml_Runtime[93],_aN__,_aN9_), + _aN$_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$80), + _aOa_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$18), + _aOb_=caml_call2(Runtime_ocaml_Runtime[104],_aOa_,_aN$_), + _aOc_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$6) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$17), + limite=caml_call2(Runtime_ocaml_Runtime[93],_aOc_,_aOb_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _aNZ_(param) + {switch(residence[0]) + {case 0:var _aN0_=1;break; + case 1:var _aN0_=0;break; + case 2:var _aN0_=1;break; + case 3:var _aN0_=1;break; + case 4:var _aN0_=1;break; + case 5:var _aN0_=1;break; + case 6:var _aN0_=0;break; + case 7:var _aN0_=0;break; + default:var _aN0_=1} + var + _aN1_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _aN2_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aN1_), + _aN3_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aN4_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aN3_), + _aN5_=caml_call2(Runtime_ocaml_Runtime[83],_aN4_,_aN2_), + _aN6_=caml_call2(Runtime_ocaml_Runtime[83],_aN5_,_aN0_); + return caml_call2(Runtime_ocaml_Runtime[29],_Mm_,_aN6_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mn_,[0],_aNZ_,_aNY_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mo_,_aNX_,_aNW_,_aNV_)} + function _aNs_(param) + {function _aNE_(param) + {var + _aNN_= + caml_call1 + (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), + _aNO_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$11), + _aNP_=caml_call2(Runtime_ocaml_Runtime[104],_aNO_,_aNN_), + _aNQ_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$2) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$12), + montant=caml_call2(Runtime_ocaml_Runtime[93],_aNQ_,_aNP_), + _aNR_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$81), + _aNS_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$12), + _aNT_=caml_call2(Runtime_ocaml_Runtime[104],_aNS_,_aNR_), + _aNU_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$3) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$11), + limite=caml_call2(Runtime_ocaml_Runtime[93],_aNU_,_aNT_); + return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) + ?limite + :montant} + function _aNF_(param) + {switch(residence[0]) + {case 0:var _aNG_=1;break; + case 1:var _aNG_=0;break; + case 2:var _aNG_=1;break; + case 3:var _aNG_=1;break; + case 4:var _aNG_=1;break; + case 5:var _aNG_=1;break; + case 6:var _aNG_=0;break; + case 7:var _aNG_=0;break; + default:var _aNG_=1} + var + _aNH_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _aNI_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aNH_), + _aNJ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aNK_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aNJ_), + _aNL_=caml_call2(Runtime_ocaml_Runtime[83],_aNK_,_aNI_), + _aNM_=caml_call2(Runtime_ocaml_Runtime[83],_aNL_,_aNG_); + return caml_call2(Runtime_ocaml_Runtime[29],_Mp_,_aNM_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mq_,[0],_aNF_,_aNE_)} + var + _aNt_= + [0, + function(param) + {function _aNu_(param) + {var + _aNB_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$13), + _aNC_= + caml_call2 + (Runtime_ocaml_Runtime[104], + _aNB_, + multiplicateur_majoration_char), + _aND_= + 0 === situation_familiale_calcul_apl[0] + ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$4) + :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$13); + return caml_call2(Runtime_ocaml_Runtime[93],_aND_,_aNC_)} + function _aNv_(param) + {switch(residence[0]) + {case 0:var _aNw_=1;break; + case 1:var _aNw_=0;break; + case 2:var _aNw_=1;break; + case 3:var _aNw_=1;break; + case 4:var _aNw_=1;break; + case 5:var _aNw_=1;break; + case 6:var _aNw_=0;break; + case 7:var _aNw_=0;break; + default:var _aNw_=1} + var + _aNx_= + caml_call2(Runtime_ocaml_Runtime[83],_aNw_,copropriete), + _aNy_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _aNz_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aNy_), + _aNA_=caml_call2(Runtime_ocaml_Runtime[83],_aNz_,_aNx_); + return caml_call2(Runtime_ocaml_Runtime[29],_Mr_,_aNA_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ms_,[0],_aNv_,_aNu_)}, + _aNs_, + _aNr_, + _aNq_, + _aNp_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mt_,_aNt_,_aNo_,_aNn_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mu_,_aNm_,_aNl_,_aNk_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Mv_,_aNj_,_aNi_,_aNh_)}], + _aHB_=caml_call4(Runtime_ocaml_Runtime[63],_Mw_,_aHA_,_aHz_,_aHy_)} + catch(_aNg_) + {_aNg_ = caml_wrap_exception(_aNg_); + if(_aNg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_LR_]; + throw _aNg_} + var + montant_forfaitaire_charges= + caml_call3 + (Runtime_ocaml_Runtime[28],_Mx_,Runtime_ocaml_Runtime[13],_aHB_); + try + {var + _aHC_=function(param){throw Runtime_ocaml_Runtime[2]}, + _aHD_=function(param){return 0}, + _aHE_= + function(param) + {function _aNa_(param){return montant_forfaitaire_d842_12} + function _aNb_(param) + {switch(type_travaux_logement[0]) + {case 0:var _aNc_=0;break; + case 1:var _aNc_=1;break; + case 2:var _aNc_=0;break; + default:var _aNc_=0} + var + _aNd_=caml_call3(Runtime_ocaml_Runtime[57],1994,9,30), + _aNe_= + caml_call2 + (Runtime_ocaml_Runtime[125],date_signature_pret,_aNd_), + _aNf_=caml_call2(Runtime_ocaml_Runtime[83],_aNe_,_aNc_); + return caml_call2(Runtime_ocaml_Runtime[29],_Mz_,_aNf_)} + return caml_call4(Runtime_ocaml_Runtime[63],_MA_,[0],_aNb_,_aNa_)}, + _aHF_= + [0, + function(param) + {function _aMW_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[104], + mensualite_principale, + coefficient_d842_12)} + function _aMX_(param) + {switch(type_travaux_logement[0]) + {case 0:var _aMY_=0;break; + case 1:var _aMY_=0;break; + case 2:var _aMY_=1;break; + default:var _aMY_=0} + switch(type_travaux_logement[0]) + {case 0:var _aMZ_=1;break; + case 1:var _aMZ_=0;break; + case 2:var _aMZ_=0;break; + default:var _aMZ_=0} + var _aM0_=caml_call2(Runtime_ocaml_Runtime[84],_aMZ_,_aMY_); + switch(type_travaux_logement[0]) + {case 0:var _aM1_=0;break; + case 1:var _aM1_=0;break; + case 2:var _aM1_=0;break; + default:var _aM1_=1} + var + _aM2_=caml_call2(Runtime_ocaml_Runtime[84],_aM1_,_aM0_), + _aM3_=caml_call3(Runtime_ocaml_Runtime[57],1994,9,30), + _aM4_= + caml_call2 + (Runtime_ocaml_Runtime[125],date_signature_pret,_aM3_), + _aM5_=caml_call2(Runtime_ocaml_Runtime[83],_aM4_,_aM2_), + _aM6_=caml_call3(Runtime_ocaml_Runtime[57],1994,9,30), + _aM7_= + caml_call2 + (Runtime_ocaml_Runtime[120],date_signature_pret,_aM6_), + _aM8_=caml_call3(Runtime_ocaml_Runtime[57],1992,9,30), + _aM9_= + caml_call2 + (Runtime_ocaml_Runtime[130],date_signature_pret,_aM8_), + _aM__=caml_call2(Runtime_ocaml_Runtime[83],_aM9_,_aM7_), + _aM$_=caml_call2(Runtime_ocaml_Runtime[84],_aM__,_aM5_); + return caml_call2(Runtime_ocaml_Runtime[29],_MB_,_aM$_)} + return caml_call4(Runtime_ocaml_Runtime[63],_MC_,[0],_aMX_,_aMW_)}, + _aHE_], + _aHG_=caml_call4(Runtime_ocaml_Runtime[63],_MD_,_aHF_,_aHD_,_aHC_)} + catch(_aMV_) + {_aMV_ = caml_wrap_exception(_aMV_); + if(_aMV_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_My_]; + throw _aMV_} + var + seuil_minimal_ressources_menag= + caml_call3 + (Runtime_ocaml_Runtime[28],_ME_,Runtime_ocaml_Runtime[13],_aHG_); + function _aHH_(aide_finale) + {try + {var + _aMP_= + function(param) + {var + _aMT_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$395), + _aMU_= + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_6); + return caml_call2(Runtime_ocaml_Runtime[113],_aMU_,_aMT_) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$396) + :caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_6)}, + _aMQ_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_MG_,1)}, + _aMR_=caml_call4(Runtime_ocaml_Runtime[63],_MH_,[0],_aMQ_,_aMP_); + return _aMR_} + catch(_aMS_) + {_aMS_ = caml_wrap_exception(_aMS_); + if(_aMS_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_MF_]; + throw _aMS_}} + var + traitement_aide_finale_minorat= + caml_call3 + (Runtime_ocaml_Runtime[28],_MI_,Runtime_ocaml_Runtime[10],_aHH_); + function _aHI_(date_calcul,nombre_personnes_a_charge) + {try + {var + _aL2_= + function(param) + {var + _aMM_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _MK_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aMN_= + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _ML_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aMM_), + _aMO_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _MM_, + Runtime_ocaml_Runtime[13], + _aMN_); + return caml_call2(Runtime_ocaml_Runtime[27],_MN_,_aMO_)}, + _aL3_= + function(param) + {var + _aMK_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aML_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aMK_); + return caml_call2(Runtime_ocaml_Runtime[29],_MO_,_aML_)}, + _aL4_= + [0, + function(param) + {function _aL7_(param){throw Runtime_ocaml_Runtime[2]} + function _aL8_(param){return 0} + var + _aL9_= + [0, + function(param) + {function _aL__(param) + {var + _aMF_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$11), + _aMG_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _MP_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aMH_= + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _MQ_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aMG_), + _aMI_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _MR_, + Runtime_ocaml_Runtime[13], + _aMH_), + _aMJ_=caml_call2(Runtime_ocaml_Runtime[27],_MS_,_aMI_); + return caml_call2(Runtime_ocaml_Runtime[104],_aMJ_,_aMF_)} + function _aL$_(param) + {var + _aMC_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aMD_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aMC_), + _aME_= + caml_call2(Runtime_ocaml_Runtime[83],_aMD_,copropriete); + return caml_call2(Runtime_ocaml_Runtime[29],_MT_,_aME_)} + var + _aMa_= + [0, + function(param) + {function _aMb_(param) + {var + _aMx_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$12), + _aMy_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _MU_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aMz_= + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _MV_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aMy_), + _aMA_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _MW_, + Runtime_ocaml_Runtime[13], + _aMz_), + _aMB_=caml_call2(Runtime_ocaml_Runtime[27],_MX_,_aMA_); + return caml_call2(Runtime_ocaml_Runtime[104],_aMB_,_aMx_)} + function _aMc_(param) + {var + _aMr_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aMs_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aMr_), + _aMt_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aMu_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aMt_), + _aMv_=caml_call2(Runtime_ocaml_Runtime[83],_aMu_,_aMs_), + _aMw_= + caml_call2(Runtime_ocaml_Runtime[83],_aMv_,copropriete); + return caml_call2(Runtime_ocaml_Runtime[29],_MY_,_aMw_)} + var + _aMd_= + [0, + function(param) + {function _aMe_(param) + {var + _aMm_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$13), + _aMn_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _MZ_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aMo_= + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _M0_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aMn_), + _aMp_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _M1_, + Runtime_ocaml_Runtime[13], + _aMo_), + _aMq_=caml_call2(Runtime_ocaml_Runtime[27],_M2_,_aMp_); + return caml_call2(Runtime_ocaml_Runtime[104],_aMq_,_aMm_)} + function _aMf_(param) + {var + _aMg_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aMh_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aMg_), + _aMi_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _aMj_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aMi_), + _aMk_=caml_call2(Runtime_ocaml_Runtime[83],_aMj_,_aMh_), + _aMl_= + caml_call2(Runtime_ocaml_Runtime[83],_aMk_,copropriete); + return caml_call2(Runtime_ocaml_Runtime[29],_M3_,_aMl_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_M4_,[0],_aMf_,_aMe_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_M5_,_aMd_,_aMc_,_aMb_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_M6_,_aMa_,_aL$_,_aL__)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_M7_,_aL9_,_aL8_,_aL7_)}], + _aL5_=caml_call4(Runtime_ocaml_Runtime[63],_M8_,_aL4_,_aL3_,_aL2_); + return _aL5_} + catch(_aL6_) + {_aL6_ = caml_wrap_exception(_aL6_); + if(_aL6_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_MJ_]; + throw _aL6_}} + var + calcul_plafond_mensualite_d842$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_M9_,Runtime_ocaml_Runtime[10],_aHI_); + function _aHJ_(allocation_mensuelle) + {try + {var + _aLX_= + function(param) + {var + _aL1_= + caml_call2 + (Runtime_ocaml_Runtime[93], + charges_mensuelles_pret, + montant_forfaitaire_charges); + return caml_call2 + (Runtime_ocaml_Runtime[98],_aL1_,allocation_mensuelle)}, + _aLY_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_M$_,1)}, + _aLZ_=caml_call4(Runtime_ocaml_Runtime[63],_Na_,[0],_aLY_,_aLX_); + return _aLZ_} + catch(_aL0_) + {_aL0_ = caml_wrap_exception(_aL0_); + if(_aL0_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_M__]; + throw _aL0_}} + var + depense_nette_minimale= + caml_call3 + (Runtime_ocaml_Runtime[28],_Nb_,Runtime_ocaml_Runtime[10],_aHJ_); + try + {var + _aHK_= + function(param) + {if + (! + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage_arrondies_ba, + seuil_minimal_ressources_menag)) + return ressources_menage_arrondies_ba; + var + _aLR_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$12), + _aLS_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_01$0), + _aLT_=caml_call1(Runtime_ocaml_Runtime[31],cst_4999), + _aLU_= + caml_call2 + (Runtime_ocaml_Runtime[93], + seuil_minimal_ressources_menag, + _aLT_), + _aLV_=caml_call2(Runtime_ocaml_Runtime[104],_aLU_,_aLS_), + _aLW_=caml_call1(Runtime_ocaml_Runtime[77],_aLV_); + return caml_call2(Runtime_ocaml_Runtime[104],_aLW_,_aLR_)}, + _aHL_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Nd_,1)}, + _aHM_= + [0, + function(param) + {function _aLP_(param){return ressources_menage_arrondies_ba} + function _aLQ_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_Ne_,situation_r822_11_13_17)} + return caml_call4(Runtime_ocaml_Runtime[63],_Nf_,[0],_aLQ_,_aLP_)}], + _aHN_=caml_call4(Runtime_ocaml_Runtime[63],_Ng_,_aHM_,_aHL_,_aHK_)} + catch(_aLO_) + {_aLO_ = caml_wrap_exception(_aLO_); + if(_aLO_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Nc_]; + throw _aLO_} + var + ressources_menage_arrondies_se= + caml_call3 + (Runtime_ocaml_Runtime[28],_Nh_,Runtime_ocaml_Runtime[13],_aHN_); + function _aHO_(date_calcul,nombre_personnes_a_charge) + {try + {var + _aKh_= + function(param) + {var + _aLL_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nj_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aLM_= + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nk_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aLL_), + _aLN_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nl_, + Runtime_ocaml_Runtime[13], + _aLM_); + return caml_call2(Runtime_ocaml_Runtime[27],_Nm_,_aLN_)}, + _aKi_= + function(param) + {var + _aLJ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aLK_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aLJ_); + return caml_call2(Runtime_ocaml_Runtime[29],_Nn_,_aLK_)}, + _aKj_= + [0, + function(param) + {function _aKm_(param){throw Runtime_ocaml_Runtime[2]} + function _aKn_(param){return 0} + var + _aKo_= + [0, + function(param) + {function _aKp_(param) + {var + _aLF_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$82), + _aLG_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _No_, + Runtime_ocaml_Runtime[14], + _aLF_), + _aLH_= + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Np_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aLG_), + _aLI_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nq_, + Runtime_ocaml_Runtime[13], + _aLH_); + return caml_call2(Runtime_ocaml_Runtime[27],_Nr_,_aLI_)} + function _aKq_(param) + {switch(residence[0]) + {case 0:var _aLv_=1;break; + case 1:var _aLv_=0;break; + case 2:var _aLv_=1;break; + case 3:var _aLv_=1;break; + case 4:var _aLv_=1;break; + case 5:var _aLv_=1;break; + case 6:var _aLv_=0;break; + case 7:var _aLv_=0;break; + default:var _aLv_=1} + var + _aLw_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$83), + _aLx_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_aLw_), + _aLy_=caml_call2(Runtime_ocaml_Runtime[83],_aLx_,_aLv_), + _aLz_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _aLA_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aLz_), + _aLB_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aLC_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aLB_), + _aLD_=caml_call2(Runtime_ocaml_Runtime[83],_aLC_,_aLA_), + _aLE_=caml_call2(Runtime_ocaml_Runtime[83],_aLD_,_aLy_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ns_,_aLE_)} + var + _aKr_= + [0, + function(param) + {function _aKs_(param) + {var + _aLr_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$84), + _aLs_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nt_, + Runtime_ocaml_Runtime[14], + _aLr_), + _aLt_= + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nu_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aLs_), + _aLu_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nv_, + Runtime_ocaml_Runtime[13], + _aLt_); + return caml_call2(Runtime_ocaml_Runtime[27],_Nw_,_aLu_)} + function _aKt_(param) + {switch(residence[0]) + {case 0:var _aLh_=1;break; + case 1:var _aLh_=0;break; + case 2:var _aLh_=1;break; + case 3:var _aLh_=1;break; + case 4:var _aLh_=1;break; + case 5:var _aLh_=1;break; + case 6:var _aLh_=0;break; + case 7:var _aLh_=0;break; + default:var _aLh_=1} + var + _aLi_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$85), + _aLj_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_aLi_), + _aLk_=caml_call2(Runtime_ocaml_Runtime[83],_aLj_,_aLh_), + _aLl_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), + _aLm_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aLl_), + _aLn_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _aLo_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aLn_), + _aLp_=caml_call2(Runtime_ocaml_Runtime[83],_aLo_,_aLm_), + _aLq_=caml_call2(Runtime_ocaml_Runtime[83],_aLp_,_aLk_); + return caml_call2(Runtime_ocaml_Runtime[29],_Nx_,_aLq_)} + var + _aKu_= + [0, + function(param) + {function _aKv_(param) + {var + _aLd_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$86), + _aLe_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ny_, + Runtime_ocaml_Runtime[14], + _aLd_), + _aLf_= + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nz_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aLe_), + _aLg_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _NA_, + Runtime_ocaml_Runtime[13], + _aLf_); + return caml_call2(Runtime_ocaml_Runtime[27],_NB_,_aLg_)} + function _aKw_(param) + {switch(residence[0]) + {case 0:var _aK5_=1;break; + case 1:var _aK5_=0;break; + case 2:var _aK5_=1;break; + case 3:var _aK5_=1;break; + case 4:var _aK5_=1;break; + case 5:var _aK5_=1;break; + case 6:var _aK5_=0;break; + case 7:var _aK5_=0;break; + default:var _aK5_=1} + var + _aK6_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$87), + _aK7_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_aK6_), + _aK8_=caml_call2(Runtime_ocaml_Runtime[83],_aK7_,_aK5_), + _aK9_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _aK__= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aK9_), + _aK$_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aLa_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aK$_), + _aLb_=caml_call2(Runtime_ocaml_Runtime[83],_aLa_,_aK__), + _aLc_=caml_call2(Runtime_ocaml_Runtime[83],_aLb_,_aK8_); + return caml_call2(Runtime_ocaml_Runtime[29],_NC_,_aLc_)} + var + _aKx_= + [0, + function(param) + {function _aKy_(param) + {var + _aK1_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$88), + _aK2_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _ND_, + Runtime_ocaml_Runtime[14], + _aK1_), + _aK3_= + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _NE_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aK2_), + _aK4_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _NF_, + Runtime_ocaml_Runtime[13], + _aK3_); + return caml_call2(Runtime_ocaml_Runtime[27],_NG_,_aK4_)} + function _aKz_(param) + {switch(residence[0]) + {case 0:var _aKR_=1;break; + case 1:var _aKR_=0;break; + case 2:var _aKR_=1;break; + case 3:var _aKR_=1;break; + case 4:var _aKR_=1;break; + case 5:var _aKR_=1;break; + case 6:var _aKR_=0;break; + case 7:var _aKR_=0;break; + default:var _aKR_=1} + var + _aKS_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$89), + _aKT_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_aKS_), + _aKU_=caml_call2(Runtime_ocaml_Runtime[83],_aKT_,_aKR_), + _aKV_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aKW_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aKV_), + _aKX_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _aKY_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aKX_), + _aKZ_=caml_call2(Runtime_ocaml_Runtime[83],_aKY_,_aKW_), + _aK0_=caml_call2(Runtime_ocaml_Runtime[83],_aKZ_,_aKU_); + return caml_call2(Runtime_ocaml_Runtime[29],_NH_,_aK0_)} + var + _aKA_= + [0, + function(param) + {function _aKB_(param) + {var + _aKN_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$90), + _aKO_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _NI_, + Runtime_ocaml_Runtime[14], + _aKN_), + _aKP_= + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _NJ_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aKO_), + _aKQ_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _NK_, + Runtime_ocaml_Runtime[13], + _aKP_); + return caml_call2(Runtime_ocaml_Runtime[27],_NL_,_aKQ_)} + function _aKC_(param) + {switch(residence[0]) + {case 0:var _aKD_=1;break; + case 1:var _aKD_=0;break; + case 2:var _aKD_=1;break; + case 3:var _aKD_=1;break; + case 4:var _aKD_=1;break; + case 5:var _aKD_=1;break; + case 6:var _aKD_=0;break; + case 7:var _aKD_=0;break; + default:var _aKD_=1} + var + _aKE_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$91), + _aKF_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_aKE_), + _aKG_=caml_call2(Runtime_ocaml_Runtime[83],_aKF_,_aKD_), + _aKH_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), + _aKI_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aKH_), + _aKJ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aKK_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aKJ_), + _aKL_=caml_call2(Runtime_ocaml_Runtime[83],_aKK_,_aKI_), + _aKM_=caml_call2(Runtime_ocaml_Runtime[83],_aKL_,_aKG_); + return caml_call2(Runtime_ocaml_Runtime[29],_NM_,_aKM_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_NN_,[0],_aKC_,_aKB_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_NO_,_aKA_,_aKz_,_aKy_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_NP_,_aKx_,_aKw_,_aKv_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_NQ_,_aKu_,_aKt_,_aKs_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_NR_,_aKr_,_aKq_,_aKp_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_NS_,_aKo_,_aKn_,_aKm_)}], + _aKk_=caml_call4(Runtime_ocaml_Runtime[63],_NT_,_aKj_,_aKi_,_aKh_); + return _aKk_} + catch(_aKl_) + {_aKl_ = caml_wrap_exception(_aKl_); + if(_aKl_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ni_]; + throw _aKl_}} + var + calcul_plafond_mensualite_d842$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_NU_,Runtime_ocaml_Runtime[10],_aHO_); + try + {var + _aHP_=function(param){return date_courante}, + _aHQ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_NW_,1)}, + _aHR_=caml_call4(Runtime_ocaml_Runtime[63],_NX_,[0],_aHQ_,_aHP_), + calcul_equivalence_loyer_minim$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_NY_,Runtime_ocaml_Runtime[16],_aHR_)} + catch(_aKg_) + {_aKg_ = caml_wrap_exception(_aKg_); + if(_aKg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_NV_]; + throw _aKg_} + try + {var + _aHS_=function(param){return ressources_menage_arrondies_se}, + _aHT_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_N0_,1)}, + _aHU_=caml_call4(Runtime_ocaml_Runtime[63],_N1_,[0],_aHT_,_aHS_), + calcul_equivalence_loyer_minim$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_N2_,Runtime_ocaml_Runtime[13],_aHU_)} + catch(_aKf_) + {_aKf_ = caml_wrap_exception(_aKf_); + if(_aKf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_NZ_]; + throw _aKf_} + try + {var + _aHV_=function(param){return 1}, + _aHW_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_N4_,1)}, + _aHX_=caml_call4(Runtime_ocaml_Runtime[63],_N5_,[0],_aHW_,_aHV_), + calcul_equivalence_loyer_minim$2= + caml_call3 + (Runtime_ocaml_Runtime[28],_N6_,Runtime_ocaml_Runtime[12],_aHX_)} + catch(_aKe_) + {_aKe_ = caml_wrap_exception(_aKe_); + if(_aKe_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_N3_]; + throw _aKe_} + try + {var + _aHY_=function(param){return calcul_nombre_parts_dot_n_nomb}, + _aHZ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_N8_,1)}, + _aH0_=caml_call4(Runtime_ocaml_Runtime[63],_N9_,[0],_aHZ_,_aHY_), + calcul_equivalence_loyer_minim$3= + caml_call3 + (Runtime_ocaml_Runtime[28],_N__,Runtime_ocaml_Runtime[15],_aH0_)} + catch(_aKd_) + {_aKd_ = caml_wrap_exception(_aKd_); + if(_aKd_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_N7_]; + throw _aKd_} + var + _aH1_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_N$_,calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$1=caml_call2(Runtime_ocaml_Runtime[27],_Oa_,_aH1_), + calcul_equivalence_loyer_minim$4=result$1[1]; + try + {var + _aH2_=function(param){return _Oc_}, + _aH3_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Od_,1)}, + _aH4_=caml_call4(Runtime_ocaml_Runtime[63],_Oe_,[0],_aH3_,_aH2_), + calcul_apl_logement_foyer_dot_= + caml_call3 + (Runtime_ocaml_Runtime[28],_Of_,embed_type_logement_foyer,_aH4_)} + catch(_aKc_) + {_aKc_ = caml_wrap_exception(_aKc_); + if(_aKc_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ob_]; + throw _aKc_} + try + {var + _aH5_= + function(param) + {return caml_call3(Runtime_ocaml_Runtime[57],1970,1,1)}, + _aH6_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Oh_,1)}, + _aH7_=caml_call4(Runtime_ocaml_Runtime[63],_Oi_,[0],_aH6_,_aH5_), + calcul_apl_logement_foyer_dot_$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_Oj_,Runtime_ocaml_Runtime[16],_aH7_)} + catch(_aKb_) + {_aKb_ = caml_wrap_exception(_aKb_); + if(_aKb_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Og_]; + throw _aKb_} + try + {var + _aH8_=function(param){return ressources_menage_arrondies_se}, + _aH9_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ol_,1)}, + _aH__=caml_call4(Runtime_ocaml_Runtime[63],_Om_,[0],_aH9_,_aH8_), + calcul_apl_logement_foyer_dot_$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_On_,Runtime_ocaml_Runtime[13],_aH__)} + catch(_aKa_) + {_aKa_ = caml_wrap_exception(_aKa_); + if(_aKa_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ok_]; + throw _aKa_} + try + {var + _aH$_=function(param){return nombre_personnes_a_charge}, + _aIa_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Op_,1)}, + _aIb_=caml_call4(Runtime_ocaml_Runtime[63],_Oq_,[0],_aIa_,_aH$_), + calcul_apl_logement_foyer_dot_$2= + caml_call3 + (Runtime_ocaml_Runtime[28],_Or_,Runtime_ocaml_Runtime[14],_aIb_)} + catch(_aJ$_) + {_aJ$_ = caml_wrap_exception(_aJ$_); + if(_aJ$_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Oo_]; + throw _aJ$_} + try + {var + _aIc_=function(param){return situation_familiale_calcul_apl}, + _aId_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ot_,1)}, + _aIe_=caml_call4(Runtime_ocaml_Runtime[63],_Ou_,[0],_aId_,_aIc_), + calcul_apl_logement_foyer_dot_$3= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ov_, + embed_situation_familiale_calc, + _aIe_)} + catch(_aJ__) + {_aJ__ = caml_wrap_exception(_aJ__); + if(_aJ__ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Os_]; + throw _aJ__} + try + {var + _aIf_=function(param){return zone}, + _aIg_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ox_,1)}, + _aIh_=caml_call4(Runtime_ocaml_Runtime[63],_Oy_,[0],_aIg_,_aIf_), + calcul_apl_logement_foyer_dot_$4= + caml_call3 + (Runtime_ocaml_Runtime[28],_Oz_,embed_zone_d_habitation,_aIh_)} + catch(_aJ9_) + {_aJ9_ = caml_wrap_exception(_aJ9_); + if(_aJ9_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ow_]; + throw _aJ9_} + try + {var + _aIi_=function(param){return date_courante}, + _aIj_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OB_,1)}, + _aIk_=caml_call4(Runtime_ocaml_Runtime[63],_OC_,[0],_aIj_,_aIi_), + calcul_apl_logement_foyer_dot_$5= + caml_call3 + (Runtime_ocaml_Runtime[28],_OD_,Runtime_ocaml_Runtime[16],_aIk_)} + catch(_aJ8_) + {_aJ8_ = caml_wrap_exception(_aJ8_); + if(_aJ8_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_OA_]; + throw _aJ8_} + try + {var + _aIl_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$397)}, + _aIm_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OF_,1)}, + _aIn_=caml_call4(Runtime_ocaml_Runtime[63],_OG_,[0],_aIm_,_aIl_), + calcul_apl_logement_foyer_dot_$6= + caml_call3 + (Runtime_ocaml_Runtime[28],_OH_,Runtime_ocaml_Runtime[13],_aIn_)} + catch(_aJ7_) + {_aJ7_ = caml_wrap_exception(_aJ7_); + if(_aJ7_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_OE_]; + throw _aJ7_} + try + {var + _aIo_=function(param){return residence}, + _aIp_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OJ_,1)}, + _aIq_=caml_call4(Runtime_ocaml_Runtime[63],_OK_,[0],_aIp_,_aIo_), + calcul_apl_logement_foyer_dot_$7= + caml_call3 + (Runtime_ocaml_Runtime[28],_OL_,embed_collectivite$0,_aIq_)} + catch(_aJ6_) + {_aJ6_ = caml_wrap_exception(_aJ6_); + if(_aJ6_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_OI_]; + throw _aJ6_} + function calcul_apl_logement_foyer_dot_$8(param) + {function _aJ3_(param){return 1} + function _aJ4_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_OM_,1)} + var _aJ5_=caml_call4(Runtime_ocaml_Runtime[63],_ON_,[0],_aJ4_,_aJ3_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _OO_, + Runtime_ocaml_Runtime[12], + _aJ5_)} + function calcul_apl_logement_foyer_dot_$9(param) + {function _aJS_(param){throw Runtime_ocaml_Runtime[2]} + function _aJT_(param){return 0} + var + _aJU_= + [0, + function(param) + {function _aJW_(param){return 1} + function _aJX_(param) + {switch(residence[0]) + {case 0:var _aJ2_=1;break; + case 1:var _aJ2_=1;break; + case 2:var _aJ2_=1;break; + case 3:var _aJ2_=1;break; + case 4:var _aJ2_=0;break; + case 5:var _aJ2_=0;break; + case 6:var _aJ2_=0;break; + case 7:var _aJ2_=0;break; + default:var _aJ2_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_OP_,_aJ2_)} + var + _aJY_= + [0, + function(param) + {function _aJZ_(param){return 1} + function _aJ0_(param) + {switch(residence[0]) + {case 0:var _aJ1_=0;break; + case 1:var _aJ1_=0;break; + case 2:var _aJ1_=0;break; + case 3:var _aJ1_=0;break; + case 4:var _aJ1_=1;break; + case 5:var _aJ1_=1;break; + case 6:var _aJ1_=0;break; + case 7:var _aJ1_=0;break; + default:var _aJ1_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_OQ_,_aJ1_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_OR_,[0],_aJ0_,_aJZ_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_OS_,_aJY_,_aJX_,_aJW_)}], + _aJV_=caml_call4(Runtime_ocaml_Runtime[63],_OT_,_aJU_,_aJT_,_aJS_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _OU_, + Runtime_ocaml_Runtime[12], + _aJV_)} + function calcul_apl_logement_foyer_dot_$10(param) + {throw Runtime_ocaml_Runtime[2]} + var + _aIr_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_OV_,calcul_aide_personnalisee_loge$0), + [0, + calcul_apl_logement_foyer_dot_, + calcul_apl_logement_foyer_dot_$0, + calcul_apl_logement_foyer_dot_$1, + calcul_apl_logement_foyer_dot_$2, + calcul_apl_logement_foyer_dot_$3, + calcul_apl_logement_foyer_dot_$4, + calcul_apl_logement_foyer_dot_$5, + calcul_apl_logement_foyer_dot_$6, + calcul_apl_logement_foyer_dot_$7, + calcul_apl_logement_foyer_dot_$8, + calcul_apl_logement_foyer_dot_$9, + calcul_apl_logement_foyer_dot_$10]), + result$2=caml_call2(Runtime_ocaml_Runtime[27],_OW_,_aIr_), + calcul_apl_logement_foyer_dot_$11=result$2[7]; + try + {var + _aIs_=function(param){return montant_forfaitaire_d842_11}, + _aIt_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OY_,1)}, + _aIu_= + [0, + function(param) + {function _aJQ_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[104], + ressources_menage_arrondies_se, + coefficient_d842_11)} + function _aJR_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_OZ_,condition_d842_11_3)} + return caml_call4(Runtime_ocaml_Runtime[63],_O0_,[0],_aJR_,_aJQ_)}], + _aIv_=caml_call4(Runtime_ocaml_Runtime[63],_O1_,_aIu_,_aIt_,_aIs_)} + catch(_aJP_) + {_aJP_ = caml_wrap_exception(_aJP_); + if(_aJP_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_OX_]; + throw _aJP_} + var + seuil_minimal_depense_nette_mi= + caml_call3 + (Runtime_ocaml_Runtime[28],_O2_,Runtime_ocaml_Runtime[13],_aIv_); + try + {var + _aIw_= + function(param) + {var + _aJM_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _O4_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aJN_= + caml_call2 + (calcul_plafond_mensualite_d842$1, + caml_call3 + (Runtime_ocaml_Runtime[28], + _O5_, + Runtime_ocaml_Runtime[16], + date_signature_pret), + _aJM_), + _aJO_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _O6_, + Runtime_ocaml_Runtime[13], + _aJN_); + return caml_call2(Runtime_ocaml_Runtime[27],_O7_,_aJO_)}, + _aIx_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_O8_,1)}, + _aIy_= + [0, + function(param) + {function _aJE_(param) + {var + _aJG_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _O9_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aJH_= + caml_call2 + (calcul_plafond_mensualite_d842$1, + caml_call3 + (Runtime_ocaml_Runtime[28], + _O__, + Runtime_ocaml_Runtime[16], + date_signature_pret), + _aJG_), + _aJI_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _O$_, + Runtime_ocaml_Runtime[13], + _aJH_), + plafond_signature= + caml_call2(Runtime_ocaml_Runtime[27],_Pa_,_aJI_), + _aJJ_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Pb_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aJK_= + caml_call2 + (calcul_plafond_mensualite_d842$1, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Pc_, + Runtime_ocaml_Runtime[16], + date_entree_logement), + _aJJ_), + _aJL_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Pd_, + Runtime_ocaml_Runtime[13], + _aJK_), + plafond_entree= + caml_call2(Runtime_ocaml_Runtime[27],_Pe_,_aJL_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + plafond_signature, + plafond_entree) + ?plafond_entree + :plafond_signature} + function _aJF_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29], + _Pf_, + local_habite_premiere_fois_ben)} + return caml_call4(Runtime_ocaml_Runtime[63],_Pg_,[0],_aJF_,_aJE_)}], + _aIz_=caml_call4(Runtime_ocaml_Runtime[63],_Ph_,_aIy_,_aIx_,_aIw_)} + catch(_aJD_) + {_aJD_ = caml_wrap_exception(_aJD_); + if(_aJD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_O3_]; + throw _aJD_} + var + plafond_mensualite_d842_6= + caml_call3 + (Runtime_ocaml_Runtime[28],_Pi_,Runtime_ocaml_Runtime[13],_aIz_); + try + {var + _aIA_=function(param){return calcul_equivalence_loyer_minim$4}, + _aIB_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Pk_,1)}, + _aIC_=caml_call4(Runtime_ocaml_Runtime[63],_Pl_,[0],_aIB_,_aIA_)} + catch(_aJC_) + {_aJC_ = caml_wrap_exception(_aJC_); + if(_aJC_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Pj_]; + throw _aJC_} + var + mensualite_minimale= + caml_call3 + (Runtime_ocaml_Runtime[28],_Pm_,Runtime_ocaml_Runtime[13],_aIC_); + try + {var + _aID_=function(param){return calcul_apl_logement_foyer_dot_$11}, + _aIE_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Po_,1)}, + _aIF_=caml_call4(Runtime_ocaml_Runtime[63],_Pp_,[0],_aIE_,_aID_)} + catch(_aJB_) + {_aJB_ = caml_wrap_exception(_aJB_); + if(_aJB_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Pn_]; + throw _aJB_} + var + coefficient_prise_en_charge= + caml_call3 + (Runtime_ocaml_Runtime[28],_Pq_,Runtime_ocaml_Runtime[15],_aIF_); + function _aIG_(allocation_mensuelle) + {try + {var + _aJu_= + function(param) + {var + _aJy_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ps_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _aJz_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_Pt_,depense_nette_minimale), + _aJy_), + _aJA_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Pu_, + Runtime_ocaml_Runtime[13], + _aJz_), + depense_nette_minimale$0= + caml_call2(Runtime_ocaml_Runtime[27],_Pv_,_aJA_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + depense_nette_minimale$0, + seuil_minimal_depense_nette_mi) + ?caml_call2 + (Runtime_ocaml_Runtime[98], + seuil_minimal_depense_nette_mi, + depense_nette_minimale$0) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$398)}, + _aJv_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Pw_,1)}, + _aJw_=caml_call4(Runtime_ocaml_Runtime[63],_Px_,[0],_aJv_,_aJu_); + return _aJw_} + catch(_aJx_) + {_aJx_ = caml_wrap_exception(_aJx_); + if(_aJx_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Pr_]; + throw _aJx_}} + var + abattement_depense_nette_minim= + caml_call3 + (Runtime_ocaml_Runtime[28],_Py_,Runtime_ocaml_Runtime[10],_aIG_); + try + {var + _aIH_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[123], + mensualite_principale, + plafond_mensualite_d842_6) + ?plafond_mensualite_d842_6 + :mensualite_principale}, + _aII_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_PA_,1)}, + _aIJ_=caml_call4(Runtime_ocaml_Runtime[63],_PB_,[0],_aII_,_aIH_)} + catch(_aJt_) + {_aJt_ = caml_wrap_exception(_aJt_); + if(_aJt_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Pz_]; + throw _aJt_} + var + mensualite_eligible= + caml_call3 + (Runtime_ocaml_Runtime[28],_PC_,Runtime_ocaml_Runtime[13],_aIJ_); + function _aIK_(aide_finale) + {try + {var + _aJj_= + function(param) + {var + _aJn_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _PE_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aJo_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _PF_, + traitement_aide_finale_minorat), + _aJn_), + _aJp_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _PG_, + Runtime_ocaml_Runtime[13], + _aJo_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_PH_,_aJp_), + _aJq_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _PI_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _aJr_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _PJ_, + abattement_depense_nette_minim), + _aJq_), + _aJs_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _PK_, + Runtime_ocaml_Runtime[13], + _aJr_), + abattement=caml_call2(Runtime_ocaml_Runtime[27],_PL_,_aJs_); + return caml_call2 + (Runtime_ocaml_Runtime[113],aide_finale$0,abattement) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$399) + :caml_call2 + (Runtime_ocaml_Runtime[98],aide_finale$0,abattement)}, + _aJk_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_PM_,1)}, + _aJl_=caml_call4(Runtime_ocaml_Runtime[63],_PN_,[0],_aJk_,_aJj_); + return _aJl_} + catch(_aJm_) + {_aJm_ = caml_wrap_exception(_aJm_); + if(_aJm_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_PD_]; + throw _aJm_}} + var + traitement_aide_finale_depense= + caml_call3 + (Runtime_ocaml_Runtime[28],_PO_,Runtime_ocaml_Runtime[10],_aIK_); + try + {var + _aIL_= + function(param) + {var + _aJh_= + caml_call2 + (Runtime_ocaml_Runtime[93], + mensualite_eligible, + montant_forfaitaire_charges), + _aJi_= + caml_call2(Runtime_ocaml_Runtime[98],_aJh_,mensualite_minimale); + return caml_call2 + (Runtime_ocaml_Runtime[104], + _aJi_, + coefficient_prise_en_charge)}, + _aIM_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_PQ_,1)}, + _aIN_=caml_call4(Runtime_ocaml_Runtime[63],_PR_,[0],_aIM_,_aIL_)} + catch(_aJg_) + {_aJg_ = caml_wrap_exception(_aJg_); + if(_aJg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_PP_]; + throw _aJg_} + var + aide_finale_formule= + caml_call3 + (Runtime_ocaml_Runtime[28],_PS_,Runtime_ocaml_Runtime[13],_aIN_); + function _aIO_(aide_finale) + {try + {var + _aI3_= + function(param) + {var + _aI7_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _PU_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aI8_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _PV_, + traitement_aide_finale_depense), + _aI7_), + _aI9_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _PW_, + Runtime_ocaml_Runtime[13], + _aI8_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_PX_,_aI9_), + _aI__= + caml_call3 + (Runtime_ocaml_Runtime[28], + _PY_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _aI$_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _PZ_, + contributions_sociales_dot_mon), + _aI__), + _aJa_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _P0_, + Runtime_ocaml_Runtime[13], + _aI$_), + crds=caml_call2(Runtime_ocaml_Runtime[27],_P1_,_aJa_), + _aJb_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$3), + _aJc_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), + _aJd_=caml_call2(Runtime_ocaml_Runtime[98],_aJc_,_aJb_), + aide_finale_moins_crds_arrondi= + caml_call1(Runtime_ocaml_Runtime[77],_aJd_), + _aJe_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$400), + _aJf_= + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128],_aJf_,_aJe_) + ?caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$401)}, + _aI4_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_P2_,1)}, + _aI5_=caml_call4(Runtime_ocaml_Runtime[63],_P3_,[0],_aI4_,_aI3_); + return _aI5_} + catch(_aI6_) + {_aI6_ = caml_wrap_exception(_aI6_); + if(_aI6_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_PT_]; + throw _aI6_}} + var + traitement_aide_finale_contrib= + caml_call3 + (Runtime_ocaml_Runtime[28],_P4_,Runtime_ocaml_Runtime[10],_aIO_); + function _aIP_(aide_finale) + {try + {var + _aIW_= + function(param) + {var + _aI0_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _P6_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aI1_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _P7_, + traitement_aide_finale_contrib), + _aI0_), + _aI2_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _P8_, + Runtime_ocaml_Runtime[13], + _aI1_), + aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_P9_,_aI2_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d842_6) + ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$402) + :aide_finale$0}, + _aIX_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_P__,1)}, + _aIY_=caml_call4(Runtime_ocaml_Runtime[63],_P$_,[0],_aIX_,_aIW_); + return _aIY_} + catch(_aIZ_) + {_aIZ_ = caml_wrap_exception(_aIZ_); + if(_aIZ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_P5_]; + throw _aIZ_}} + var + traitement_aide_finale_montant= + caml_call3 + (Runtime_ocaml_Runtime[28],_Qa_,Runtime_ocaml_Runtime[10],_aIP_); + try + {var + _aIQ_=caml_call3(Runtime_ocaml_Runtime[57],1992,9,30), + _aIR_= + caml_call2(Runtime_ocaml_Runtime[130],date_signature_pret,_aIQ_)} + catch(_aIV_) + {_aIV_ = caml_wrap_exception(_aIV_); + if(_aIV_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Qb_]; + throw _aIV_} + if(! _aIR_)throw [0,Runtime_ocaml_Runtime[3],_Qe_]; + try + {var + _aIS_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), + _aIT_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aIS_)} + catch(_aIU_) + {_aIU_ = caml_wrap_exception(_aIU_); + if(_aIU_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Qc_]; + throw _aIU_} + if(_aIT_) + return [0, + mensualite_eligible, + mensualite_minimale, + coefficient_prise_en_charge, + aide_finale_formule, + traitement_aide_finale_montant]; + throw [0,Runtime_ocaml_Runtime[3],_Qd_]} + function calcul_aide_personnalisee_loge$2 + (calcul_aide_personnalisee_loge$2) + {var + mode_occupation=calcul_aide_personnalisee_loge$2[1], + type_aide=calcul_aide_personnalisee_loge$2[2], + ressources_menage_sans_arrondi=calcul_aide_personnalisee_loge$2[3], + situation_familiale=calcul_aide_personnalisee_loge$2[4], + nombre_personnes_a_charge=calcul_aide_personnalisee_loge$2[5], + zone=calcul_aide_personnalisee_loge$2[6], + date_courante=calcul_aide_personnalisee_loge$2[7], + residence=calcul_aide_personnalisee_loge$2[8]; + try + {var + _aFU_= + function(param) + {switch(mode_occupation[0]) + {case 0:var location=mode_occupation[1];return [0,location]; + case 1: + var logementfoyer=mode_occupation[1];return [2,logementfoyer]; + case 2: + var proprietaire=mode_occupation[1];return [1,proprietaire]; + case 3:var location$0=mode_occupation[1];return [0,location$0]; + default: + var proprietaire$0=mode_occupation[1];return [1,proprietaire$0]}}, + _aFV_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Qg_,1)}, + _aFW_=caml_call4(Runtime_ocaml_Runtime[63],_Qh_,[0],_aFV_,_aFU_)} + catch(_aGU_) + {_aGU_ = caml_wrap_exception(_aGU_); + if(_aGU_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Qf_]; + throw _aGU_} + var + categorie_calcul_apl= + caml_call3 + (Runtime_ocaml_Runtime[28],_Qi_,embed_categorie_calcul_a_p_l,_aFW_); + try + {var + _aFX_= + function(param) + {return arrondi_centaine_superieure(ressources_menage_sans_arrondi)}, + _aFY_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Qk_,1)}, + _aFZ_=caml_call4(Runtime_ocaml_Runtime[63],_Ql_,[0],_aFY_,_aFX_)} + catch(_aGT_) + {_aGT_ = caml_wrap_exception(_aGT_); + if(_aGT_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Qj_]; + throw _aGT_} + var + ressources_menage_avec_arrondi= + caml_call3 + (Runtime_ocaml_Runtime[28],_Qm_,Runtime_ocaml_Runtime[13],_aFZ_); + try + {var + _aF0_= + function(param) + {switch(situation_familiale[0]) + {case 0:return _Qo_; + case 1:return _Qp_; + case 2:return _Qq_; + case 3:return _Qr_; + case 4:return _Qs_; + default:return _Qt_}}, + _aF1_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Qu_,1)}, + _aF2_=caml_call4(Runtime_ocaml_Runtime[63],_Qv_,[0],_aF1_,_aF0_)} + catch(_aGS_) + {_aGS_ = caml_wrap_exception(_aGS_); + if(_aGS_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Qn_]; + throw _aGS_} + var + situation_familiale_calcul_apl= + caml_call3 + (Runtime_ocaml_Runtime[28],_Qw_,embed_situation_familiale_calc,_aF2_); + try + {var + _aF3_= + function(param) + {switch(categorie_calcul_apl[0]) + {case 0: + var location=categorie_calcul_apl[1],_aGt_=location[7]; + try + {var _aGu_=location[1]; + switch(_aGu_[0]) + {case 0:var bailleur=_aGu_[1],_aGv_=bailleur[2];break; + case 1: + var _aGv_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$403); + break; + default: + var _aGv_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$404)}} + catch(_aGO_) + {_aGO_ = caml_wrap_exception(_aGO_); + if(_aGO_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Qy_]; + throw _aGO_} + var + _aGw_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Qz_, embed_calcul_aide_personnalise$3, [0, - logement_foyer[7], + location[2], ressources_menage_avec_arrondi, - logement_foyer[9], + location[3], date_courante, nombre_personnes_a_charge, situation_familiale_calcul_apl, zone, - 1, - 0, + location[4], + location[6], type_aide, - 0, - _am6_, - _am4_, + location[5], + _aGv_, + _aGt_, residence]), - result = + result= caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _Fp_, + _QA_, calcul_aide_personnalisee_loge), - _am7_), - _am8_ = - function(param0){ - var - _am__ = + _aGw_), + _aGx_= + function(param0) + {var + _aGL_= caml_call3 (Runtime_ocaml_Runtime[28], - _Fq_, + _QB_, Runtime_ocaml_Runtime[13], param0), - _am$_ = + _aGM_= caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _Fr_, result[7]), - _am__), - _ana_ = + (caml_call2(Runtime_ocaml_Runtime[26],_QC_,result[7]),_aGL_), + _aGN_= caml_call3 (Runtime_ocaml_Runtime[28], - _Fs_, + _QD_, Runtime_ocaml_Runtime[13], - _am$_); - return caml_call2(Runtime_ocaml_Runtime[27], _Ft_, _ana_); - }, - result$0 = + _aGM_); + return caml_call2(Runtime_ocaml_Runtime[27],_QE_,_aGN_)}, + result$0= [0, result[1], result[2], @@ -121479,6376 +130539,5261 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ result[4], result[5], result[6], - _am8_]; - caml_call2(Runtime_ocaml_Runtime[29], _Fu_, 1); - var - _am9_ = + _aGx_]; + caml_call2(Runtime_ocaml_Runtime[29],_QF_,1); + var + _aGy_= caml_call3 (Runtime_ocaml_Runtime[28], - _Fv_, + _QG_, embed_calcul_aide_personnalise, result$0), - traitement_formule = - caml_call2(Runtime_ocaml_Runtime[27], _Fw_, _am9_); - return [0, traitement_formule[6], traitement_formule[7]]; - } - } - function _am0_(param){ - switch(categorie_calcul_apl[0]){ - case 0: - var _am1_ = 0; break; - case 1: - var _am1_ = 0; break; - default: var _am1_ = 1; - } - switch(residence[0]){ - case 0: - var _am2_ = 0; break; - case 1: - var _am2_ = 0; break; - case 2: - var _am2_ = 0; break; - case 3: - var _am2_ = 0; break; - case 4: - var _am2_ = 0; break; - case 5: - var _am2_ = 0; break; - case 6: - var _am2_ = 0; break; - case 7: - var _am2_ = 1; break; - default: var _am2_ = 0; - } - var _am3_ = caml_call2(Runtime_ocaml_Runtime[83], _am2_, _am1_); - return caml_call2(Runtime_ocaml_Runtime[29], _Fx_, _am3_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Fy_, [0], _am0_, _amZ_); - }], - _amM_ = caml_call4(Runtime_ocaml_Runtime[63], _Fz_, _amL_, _amK_, _amJ_); - } - catch(_amY_){ - var _amI_ = caml_wrap_exception(_amY_); - if(_amI_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _EV_], 1); - throw caml_maybe_attach_backtrace(_amI_, 0); - } - var - sous_calcul_traitement = - caml_call3 - (Runtime_ocaml_Runtime[28], - _FA_, - embed_traitement_formule_aide_, - _amM_); - function _amN_(arg){ - try{ - var - _amU_ = - function(param){return caml_call1(sous_calcul_traitement[2], arg);}, - _amV_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _FC_, 1); - }, - _amW_ = caml_call4(Runtime_ocaml_Runtime[63], _FD_, [0], _amV_, _amU_); - return _amW_; - } - catch(_amX_){ - var _amT_ = caml_wrap_exception(_amX_); - if(_amT_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _FB_], 1); - throw caml_maybe_attach_backtrace(_amT_, 0); - } - } - var - traitement_aide_finale = - caml_call3 - (Runtime_ocaml_Runtime[28], _FE_, Runtime_ocaml_Runtime[10], _amN_); - try{ - var - _amP_ = function(param){return sous_calcul_traitement[1];}, - _amQ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _FG_, 1); - }, - _amR_ = caml_call4(Runtime_ocaml_Runtime[63], _FH_, [0], _amQ_, _amP_); - } - catch(_amS_){ - var _amO_ = caml_wrap_exception(_amS_); - if(_amO_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _FF_], 1); - throw caml_maybe_attach_backtrace(_amO_, 0); - } - var - aide_finale_formule = - caml_call3 - (Runtime_ocaml_Runtime[28], _FI_, Runtime_ocaml_Runtime[13], _amR_); - return [0, aide_finale_formule, traitement_aide_finale]; - } - function eligibilite_aides_personnelle_(eligibilite_aides_personnelle_){ - var - menage = eligibilite_aides_personnelle_[1], - demandeur = eligibilite_aides_personnelle_[2], - date_courante = eligibilite_aides_personnelle_[3], - condition_logement_residence_p = eligibilite_aides_personnelle_[4], - condition_logement_surface = eligibilite_aides_personnelle_[5], - date_entree_vigueur_differee_c = eligibilite_aides_personnelle_[6]; - function _afh_(pret){ - try{ - var - _ams_ = function(param){return 0;}, - _amt_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _FK_, 1); - }, - _amu_ = caml_call4(Runtime_ocaml_Runtime[63], _FL_, [0], _amt_, _ams_); - return _amu_; - } - catch(_amv_){ - var _amr_ = caml_wrap_exception(_amv_); - if(_amr_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _FJ_], 1); - throw caml_maybe_attach_backtrace(_amr_, 0); - } - } - caml_call3 - (Runtime_ocaml_Runtime[28], _FM_, Runtime_ocaml_Runtime[10], _afh_); - try{ - var - _afj_ = function(param){return 0;}, - _afk_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _FO_, 1); - }, - _afl_ = caml_call4(Runtime_ocaml_Runtime[63], _FP_, [0], _afk_, _afj_); - } - catch(_amq_){ - var _afi_ = caml_wrap_exception(_amq_); - if(_afi_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _FN_], 1); - throw caml_maybe_attach_backtrace(_afi_, 0); - } - caml_call3 - (Runtime_ocaml_Runtime[28], _FQ_, Runtime_ocaml_Runtime[12], _afl_); - try{ - var - _afn_ = - function(param){ - function _amo_(param){ - return caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1); - } - function _amp_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _FS_, 1); - } - return caml_call4(Runtime_ocaml_Runtime[63], _FT_, [0], _amp_, _amo_); - }, - _afo_ = function(param){return 1;}, - _afp_ = - [0, - function(param){ - return caml_call1(date_entree_vigueur_differee_c, 0); - }], - _afq_ = caml_call4(Runtime_ocaml_Runtime[63], _FU_, _afp_, _afo_, _afn_); - } - catch(_amn_){ - var _afm_ = caml_wrap_exception(_amn_); - if(_afm_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _FR_], 1); - throw caml_maybe_attach_backtrace(_afm_, 0); - } - var - date_entree_vigueur_differee_c$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _FV_, Runtime_ocaml_Runtime[16], _afq_); - try{ - var - _afs_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_1); - }, - _aft_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _FX_, 1); - }, - _afu_ = caml_call4(Runtime_ocaml_Runtime[63], _FY_, [0], _aft_, _afs_); - } - catch(_amm_){ - var _afr_ = caml_wrap_exception(_amm_); - if(_afr_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _FW_], 1); - throw caml_maybe_attach_backtrace(_afr_, 0); - } - var - seuil_l822_3_parts_propriete = - caml_call3 - (Runtime_ocaml_Runtime[28], _FZ_, Runtime_ocaml_Runtime[15], _afu_); - try{ - var - _afw_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[39], cst_0_1$0); - }, - _afx_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _F1_, 1); - }, - _afy_ = caml_call4(Runtime_ocaml_Runtime[63], _F2_, [0], _afx_, _afw_); - } - catch(_aml_){ - var _afv_ = caml_wrap_exception(_aml_); - if(_afv_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _F0_], 1); - throw caml_maybe_attach_backtrace(_afv_, 0); - } - var - seuil_l822_3_parts_usufruit = - caml_call3 - (Runtime_ocaml_Runtime[28], _F3_, Runtime_ocaml_Runtime[15], _afy_); - try{ - var - _afA_ = - function(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_3000000); - }, - _afB_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _F5_, 1); - }, - _afC_ = caml_call4(Runtime_ocaml_Runtime[63], _F6_, [0], _afB_, _afA_); - } - catch(_amk_){ - var _afz_ = caml_wrap_exception(_amk_); - if(_afz_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _F4_], 1); - throw caml_maybe_attach_backtrace(_afz_, 0); - } - var - seuil_l822_5_patrimoine = - caml_call3 - (Runtime_ocaml_Runtime[28], _F7_, Runtime_ocaml_Runtime[13], _afC_); - try{ - var - _afE_ = - function(param){ - var - _ami_ = 0 === menage[2][6][0] ? 1 : 0, - _amj_ = 0 === menage[2][4][0] ? 1 : 0; - return caml_call2(Runtime_ocaml_Runtime[84], _amj_, _ami_); - }, - _afF_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _F9_, 1); - }, - _afG_ = caml_call4(Runtime_ocaml_Runtime[63], _F__, [0], _afF_, _afE_); - } - catch(_amh_){ - var _afD_ = caml_wrap_exception(_amh_); - if(_afD_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _F8_], 1); - throw caml_maybe_attach_backtrace(_afD_, 0); - } - var - usufruit_ou_propriete_famille = - caml_call3 - (Runtime_ocaml_Runtime[28], _F$_, Runtime_ocaml_Runtime[12], _afG_); - try{ - var - _afI_ = - function(param){ - var - _amd_ = caml_call1(Runtime_ocaml_Runtime[68], menage[3]), - _ame_ = menage[4]; - switch(menage[5][0]){ - case 0: - var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$246); - break; - case 1: - var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$100); - break; - case 2: - var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$101); - break; - case 3: - var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$102); - break; - case 4: - var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$247); - break; - default: - var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$103); - } - var _amg_ = caml_call2(Runtime_ocaml_Runtime[91], _amf_, _ame_); - return caml_call2(Runtime_ocaml_Runtime[91], _amg_, _amd_); - }, - _afJ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Gb_, 1); - }, - _afK_ = caml_call4(Runtime_ocaml_Runtime[63], _Gc_, [0], _afJ_, _afI_); - } - catch(_amc_){ - var _afH_ = caml_wrap_exception(_amc_); - if(_afH_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ga_], 1); - throw caml_maybe_attach_backtrace(_afH_, 0); - } - var - nombre_personnes_logement = - caml_call3 - (Runtime_ocaml_Runtime[28], _Gd_, Runtime_ocaml_Runtime[14], _afK_); - try{ - var - _afM_ = function(param){return 0;}, - _afN_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Gf_, 1); - }, - _afO_ = - [0, - function(param){ - function _al8_(param){return 1;} - function _al9_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Gg_, 1); - } - var - _al__ = - [0, - function(param){ - function _al$_(param){return 0;} - function _ama_(param){ - switch(menage[9][0]){ - case 0: - var _amb_ = 0; break; - case 1: - var _amb_ = 0; break; - case 2: - var _amb_ = 0; break; - case 3: - var _amb_ = 0; break; - case 4: - var _amb_ = 0; break; - case 5: - var _amb_ = 0; break; - case 6: - var _amb_ = 0; break; - case 7: - var _amb_ = 0; break; - default: var _amb_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Gh_, _amb_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Gi_, [0], _ama_, _al$_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Gj_, _al__, _al9_, _al8_); - }], - _afP_ = caml_call4(Runtime_ocaml_Runtime[63], _Gk_, _afO_, _afN_, _afM_); - } - catch(_al7_){ - var _afL_ = caml_wrap_exception(_al7_); - if(_afL_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ge_], 1); - throw caml_maybe_attach_backtrace(_afL_, 0); - } - var - septieme_alinea_l823_1_applica = - caml_call3 - (Runtime_ocaml_Runtime[28], _Gl_, Runtime_ocaml_Runtime[12], _afP_); - try{ - var - _afR_ = function(param){return 0;}, - _afS_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Gn_, 1); - }, - _afT_ = - [0, - function(param){ - function _al4_(param){return 1;} - function _al5_(param){ - var _al6_ = caml_call1(Runtime_ocaml_Runtime[67], menage[2][7]); - return caml_call2(Runtime_ocaml_Runtime[29], _Go_, _al6_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Gp_, [0], _al5_, _al4_); - }], - _afU_ = caml_call4(Runtime_ocaml_Runtime[63], _Gq_, _afT_, _afS_, _afR_); - } - catch(_al3_){ - var _afQ_ = caml_wrap_exception(_al3_); - if(_afQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Gm_], 1); - throw caml_maybe_attach_backtrace(_afQ_, 0); - } - var - condition_non_ouverture_l822_9 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Gr_, Runtime_ocaml_Runtime[12], _afU_); - try{ - var - _afW_ = function(param){return 0;}, - _afX_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Gt_, 1); - }, - _afY_ = - [0, - function(param){ - function _al1_(param){return 1;} - function _al2_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Gu_, menage[6]); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Gv_, [0], _al2_, _al1_); - }], - _afZ_ = caml_call4(Runtime_ocaml_Runtime[63], _Gw_, _afY_, _afX_, _afW_); - } - catch(_al0_){ - var _afV_ = caml_wrap_exception(_al0_); - if(_afV_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Gs_], 1); - throw caml_maybe_attach_backtrace(_afV_, 0); - } - var - condition_non_ouverture_l822_8 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Gx_, Runtime_ocaml_Runtime[12], _afZ_); - try{ - var - _af1_ = - function(param){ - function _alV_(param){return 0;} - function _alW_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Gz_, 1); - } - var - _alX_ = - [0, - function(param){ - function _alY_(param){return 1;} - function _alZ_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _GA_, menage[2][1]); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _GB_, [0], _alZ_, _alY_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _GC_, _alX_, _alW_, _alV_); - }, - _af2_ = function(param){return 1;}, - _af3_ = - [0, - function(param){ - return caml_call1(condition_logement_residence_p, 0); - }], - _af4_ = caml_call4(Runtime_ocaml_Runtime[63], _GD_, _af3_, _af2_, _af1_); - } - catch(_alU_){ - var _af0_ = caml_wrap_exception(_alU_); - if(_af0_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Gy_], 1); - throw caml_maybe_attach_backtrace(_af0_, 0); - } - var - condition_logement_residence_p$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _GE_, Runtime_ocaml_Runtime[12], _af4_); - try{ - var - _af6_ = function(param){return demandeur[1];}, - _af7_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _GG_, 1); - }, - _af8_ = caml_call4(Runtime_ocaml_Runtime[63], _GH_, [0], _af7_, _af6_), - ouverture_droits_retraite_dot_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _GI_, Runtime_ocaml_Runtime[16], _af8_); - } - catch(_alT_){ - var _af5_ = caml_wrap_exception(_alT_); - if(_af5_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _GF_], 1); - throw caml_maybe_attach_backtrace(_af5_, 0); - } - var - _af9_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _GJ_, ouverture_droits_retraite), - [0, ouverture_droits_retraite_dot_]), - result = caml_call2(Runtime_ocaml_Runtime[27], _GK_, _af9_), - ouverture_droits_retraite_dot_$0 = result[1]; - try{ - var - _af$_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[93], demandeur[3][1], demandeur[3][2]); - }, - _aga_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _GM_, 1); - }, - _agb_ = caml_call4(Runtime_ocaml_Runtime[63], _GN_, [0], _aga_, _af$_); - } - catch(_alS_){ - var _af__ = caml_wrap_exception(_alS_); - if(_af__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _GL_], 1); - throw caml_maybe_attach_backtrace(_af__, 0); - } - var - patrimoine_total_demandeur = - caml_call3 - (Runtime_ocaml_Runtime[28], _GO_, Runtime_ocaml_Runtime[13], _agb_); - try{ - var - _agd_ = - function(param){ - var match = demandeur[2]; - if(0 === match[0]) return 1; - var conditions = match[1]; - return conditions[1]; - }, - _age_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _GQ_, 1); - }, - _agf_ = - [0, - function(param){ - function _alP_(param){ - var match = demandeur[2]; - if(0 === match[0]) return 0; - var conditions = match[1]; - return conditions[2]; - } - function _alQ_(param){ - switch(menage[9][0]){ - case 0: - var _alR_ = 0; break; - case 1: - var _alR_ = 0; break; - case 2: - var _alR_ = 0; break; - case 3: - var _alR_ = 0; break; - case 4: - var _alR_ = 0; break; - case 5: - var _alR_ = 0; break; - case 6: - var _alR_ = 0; break; - case 7: - var _alR_ = 0; break; - default: var _alR_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _GR_, _alR_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _GS_, [0], _alQ_, _alP_); - }], - _agg_ = caml_call4(Runtime_ocaml_Runtime[63], _GT_, _agf_, _age_, _agd_); - } - catch(_alO_){ - var _agc_ = caml_wrap_exception(_alO_); - if(_agc_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _GP_], 1); - throw caml_maybe_attach_backtrace(_agc_, 0); - } - var - condition_nationalite = - caml_call3 - (Runtime_ocaml_Runtime[28], _GU_, Runtime_ocaml_Runtime[12], _agg_); - try{ - var - _agi_ = - function(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - }, - _agj_ = function(param){return 0;}, - _agk_ = - function(param){ - function _alH_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1088175); - } - function _alI_(param){ - var - _alJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _alK_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alJ_), - _alL_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _alM_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alL_), - _alN_ = caml_call2(Runtime_ocaml_Runtime[83], _alM_, _alK_); - return caml_call2(Runtime_ocaml_Runtime[29], _GW_, _alN_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _GX_, [0], _alI_, _alH_); - }, - _agl_ = - function(param){ - function _alA_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1100144); - } - function _alB_(param){ - var - _alC_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _alD_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alC_), - _alE_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _alF_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alE_), - _alG_ = caml_call2(Runtime_ocaml_Runtime[83], _alF_, _alD_); - return caml_call2(Runtime_ocaml_Runtime[29], _GY_, _alG_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _GZ_, [0], _alB_, _alA_); - }, - _agm_ = - function(param){ - function _alw_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1153302); - } - function _alx_(param){ - var - _aly_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), - _alz_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aly_); - return caml_call2(Runtime_ocaml_Runtime[29], _G0_, _alz_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _G1_, [0], _alx_, _alw_); - }, - _agn_ = - function(param){ - function _alp_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1083840); - } - function _alq_(param){ - var - _alr_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _als_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alr_), - _alt_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _alu_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alt_), - _alv_ = caml_call2(Runtime_ocaml_Runtime[83], _alu_, _als_); - return caml_call2(Runtime_ocaml_Runtime[29], _G2_, _alv_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _G3_, [0], _alq_, _alp_); - }, - _ago_ = - function(param){ - function _ali_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_1041840); - } - function _alj_(param){ - var - _alk_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _all_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alk_), - _alm_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _aln_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alm_), - _alo_ = caml_call2(Runtime_ocaml_Runtime[83], _aln_, _all_); - return caml_call2(Runtime_ocaml_Runtime[29], _G4_, _alo_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _G5_, [0], _alj_, _ali_); - }, - _agp_ = - [0, - function(param){ - function _alb_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_999840); - } - function _alc_(param){ - var - _ald_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), - _ale_ = - caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ald_), - _alf_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 4, 1), - _alg_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alf_), - _alh_ = caml_call2(Runtime_ocaml_Runtime[83], _alg_, _ale_); - return caml_call2(Runtime_ocaml_Runtime[29], _G6_, _alh_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _G7_, [0], _alc_, _alb_); - }, - _ago_, - _agn_, - _agm_, - _agl_, - _agk_], - _agq_ = caml_call4(Runtime_ocaml_Runtime[63], _G8_, _agp_, _agj_, _agi_); - } - catch(_ala_){ - var _agh_ = caml_wrap_exception(_ala_); - if(_agh_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _GV_], 1); - throw caml_maybe_attach_backtrace(_agh_, 0); - } - var - plafond_individuel_l815_9_secu = - caml_call3 - (Runtime_ocaml_Runtime[28], _G9_, Runtime_ocaml_Runtime[13], _agq_); - try{ - var - _ags_ = function(param){return 0;}, - _agt_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _G$_, 1); - }, - _agu_ = - [0, - function(param){ - function _akY_(param){return 0;} - function _akZ_(param){ - var _ak$_ = 0 === menage[2][5][0] ? 1 : 0; - return caml_call2(Runtime_ocaml_Runtime[29], _Ha_, _ak$_); - } - var - _ak0_ = - [0, - function(param){ - function _ak1_(param){return 1;} - function _ak2_(param){ - var match = menage[2][5]; - if(0 === match[0]) - var _ak3_ = 1; - else{ - var personne = match[1], _ak4_ = personne[2]; - try{ - var _ak6_ = caml_call3(Runtime_ocaml_Runtime[60], 30, 0, 0); - } - catch(_ak__){ - var _ak5_ = caml_wrap_exception(_ak__); - if(_ak5_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Hc_], 1); - throw caml_maybe_attach_backtrace(_ak5_, 0); - } - var - _ak7_ = + traitement_formule= + caml_call2(Runtime_ocaml_Runtime[27],_QH_,_aGy_); + return [0,traitement_formule[6],traitement_formule[7]]; + case 1: + var + proprietaire=categorie_calcul_apl[1], + _aGz_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _QI_, + embed_calcul_aide_personnalise$5, + [0, + proprietaire[1], + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + proprietaire[4], + proprietaire[10][2], + proprietaire[6], + proprietaire[3], + proprietaire[7], + proprietaire[8], + zone, + proprietaire[10][1], + proprietaire[9], + date_courante]), + result$1= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _QJ_, + calcul_aide_personnalisee_loge$1), + _aGz_), + _aGA_= + function(param0) + {var + _aGI_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _QK_, + Runtime_ocaml_Runtime[13], + param0), + _aGJ_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_QL_,result$1[5]), + _aGI_), + _aGK_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _QM_, + Runtime_ocaml_Runtime[13], + _aGJ_); + return caml_call2(Runtime_ocaml_Runtime[27],_QN_,_aGK_)}, + result$2= + [0,result$1[1],result$1[2],result$1[3],result$1[4],_aGA_]; + caml_call2(Runtime_ocaml_Runtime[29],_QO_,1); + var + _aGB_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _QP_, + embed_calcul_aide_personnalise$1, + result$2), + traitement_formule$0= + caml_call2(Runtime_ocaml_Runtime[27],_QQ_,_aGB_); + return [0,traitement_formule$0[4],traitement_formule$0[5]]; + default: + var + logement_foyer=categorie_calcul_apl[1], + _aGC_=function(param){throw Runtime_ocaml_Runtime[2]}, + _aGD_=function(param){throw Runtime_ocaml_Runtime[2]}, + _aGE_=function(param){throw Runtime_ocaml_Runtime[2]}, + _aGF_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _QR_, + embed_calcul_aide_personnalise$4, + [0, + logement_foyer[1], + logement_foyer[5], + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + date_courante, + logement_foyer[7], + residence, + _aGE_, + _aGD_, + _aGC_]), + result$3= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _QS_, + calcul_aide_personnalisee_loge$0), + _aGF_), + _aGG_= + function(param0) + {var + _aGP_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _QT_, + Runtime_ocaml_Runtime[13], + param0), + _aGQ_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_QU_,result$3[9]), + _aGP_), + _aGR_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _QV_, + Runtime_ocaml_Runtime[13], + _aGQ_); + return caml_call2(Runtime_ocaml_Runtime[27],_QW_,_aGR_)}, + result$4= + [0, + result$3[1], + result$3[2], + result$3[3], + result$3[4], + result$3[5], + result$3[6], + result$3[7], + result$3[8], + _aGG_]; + caml_call2(Runtime_ocaml_Runtime[29],_QX_,1); + var + _aGH_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _QY_, + embed_calcul_aide_personnalise$0, + result$4), + traitement_formule$1= + caml_call2(Runtime_ocaml_Runtime[27],_QZ_,_aGH_); + return [0,traitement_formule$1[8],traitement_formule$1[9]]}}, + _aF4_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Q0_,1)}, + _aF5_= + [0, + function(param) + {function _aGf_(param) + {switch(categorie_calcul_apl[0]) + {case 0: + return [0, + caml_call1(Runtime_ocaml_Runtime[31],cst_0$405), + traitement_nul_tout_le_temps]; + case 1: + return [0, + caml_call1(Runtime_ocaml_Runtime[31],cst_0$406), + traitement_nul_tout_le_temps]; + default: + var + logement_foyer=categorie_calcul_apl[1], + _aGk_=logement_foyer[10]; + try + {var _aGl_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$407)} + catch(_aGs_) + {_aGs_ = caml_wrap_exception(_aGs_); + if(_aGs_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Q1_]; + throw _aGs_} + var + _aGm_= caml_call3 (Runtime_ocaml_Runtime[28], - _Hd_, - embed_verification_age_superie$0, - [0, personne[1], date_courante, _ak6_]), - result = + _Q2_, + embed_calcul_aide_personnalise$3, + [0, + logement_foyer[7], + ressources_menage_avec_arrondi, + logement_foyer[9], + date_courante, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + 1, + 0, + type_aide, + 0, + _aGl_, + _aGk_, + residence]), + result= caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _He_, - verification_age_superieur_a), - _ak7_), - result$0 = [0, result[1]]; - caml_call2(Runtime_ocaml_Runtime[29], _Hf_, 1); - var - _ak8_ = + _Q3_, + calcul_aide_personnalisee_loge), + _aGm_), + _aGn_= + function(param0) + {var + _aGp_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Q4_, + Runtime_ocaml_Runtime[13], + param0), + _aGq_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_Q5_,result[7]),_aGp_), + _aGr_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Q6_, + Runtime_ocaml_Runtime[13], + _aGq_); + return caml_call2(Runtime_ocaml_Runtime[27],_Q7_,_aGr_)}, + result$0= + [0, + result[1], + result[2], + result[3], + result[4], + result[5], + result[6], + _aGn_]; + caml_call2(Runtime_ocaml_Runtime[29],_Q8_,1); + var + _aGo_= caml_call3 (Runtime_ocaml_Runtime[28], - _Hg_, - embed_verification_age_superie, + _Q9_, + embed_calcul_aide_personnalise, result$0), - _ak9_ = - caml_call2(Runtime_ocaml_Runtime[27], _Hh_, _ak8_)[1], - _ak3_ = caml_call2(Runtime_ocaml_Runtime[84], _ak9_, _ak4_); - } - return caml_call2(Runtime_ocaml_Runtime[29], _Hb_, _ak3_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Hi_, [0], _ak2_, _ak1_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Hj_, _ak0_, _akZ_, _akY_); - }], - _agv_ = caml_call4(Runtime_ocaml_Runtime[63], _Hk_, _agu_, _agt_, _ags_); - } - catch(_akX_){ - var _agr_ = caml_wrap_exception(_akX_); - if(_agr_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _G__], 1); - throw caml_maybe_attach_backtrace(_agr_, 0); - } - var - condition_logement_location_ti = - caml_call3 - (Runtime_ocaml_Runtime[28], _Hl_, Runtime_ocaml_Runtime[12], _agv_); - try{ - var - _agx_ = function(param){return date_courante;}, - _agy_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Hn_, 1); - }, - _agz_ = caml_call4(Runtime_ocaml_Runtime[63], _Ho_, [0], _agy_, _agx_), - prestations_familiales_dot_dat = - caml_call3 - (Runtime_ocaml_Runtime[28], _Hp_, Runtime_ocaml_Runtime[16], _agz_); - } - catch(_akW_){ - var _agw_ = caml_wrap_exception(_akW_); - if(_agw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Hm_], 1); - throw caml_maybe_attach_backtrace(_agw_, 0); - } - try{ - var - _agB_ = function(param){return _Hr_;}, - _agC_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Hs_, 1); - }, - _agD_ = caml_call4(Runtime_ocaml_Runtime[63], _Ht_, [0], _agC_, _agB_), - prestations_familiales_dot_pre = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Hu_, - embed_element_prestations_fami, - _agD_); - } - catch(_akV_){ - var _agA_ = caml_wrap_exception(_akV_); - if(_agA_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Hq_], 1); - throw caml_maybe_attach_backtrace(_agA_, 0); - } - try{ - var - _agF_ = function(param){return menage[9];}, - _agG_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Hw_, 1); - }, - _agH_ = caml_call4(Runtime_ocaml_Runtime[63], _Hx_, [0], _agG_, _agF_), - prestations_familiales_dot_res = - caml_call3(Runtime_ocaml_Runtime[28], _Hy_, embed_collectivite, _agH_); - } - catch(_akU_){ - var _agE_ = caml_wrap_exception(_akU_); - if(_agE_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Hv_], 1); - throw caml_maybe_attach_backtrace(_agE_, 0); - } - function prestations_familiales_dot_age(param){ - function _akE_(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 21, 0, 0); - } - function _akF_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Hz_, 1); - } - var - _akG_ = - [0, - function(param){ - function _akI_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _akJ_(param){return 0;} - var - _akK_ = - [0, - function(param){ - function _akL_(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 22, 0, 0); - } - function _akM_(param){ - switch(menage[9][0]){ - case 0: - var _akT_ = 1; break; - case 1: - var _akT_ = 1; break; - case 2: - var _akT_ = 1; break; - case 3: - var _akT_ = 1; break; - case 4: - var _akT_ = 0; break; - case 5: - var _akT_ = 0; break; - case 6: - var _akT_ = 0; break; - case 7: - var _akT_ = 0; break; - default: var _akT_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _HA_, _akT_); - } - var - _akN_ = - [0, - function(param){ - function _akO_(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 22, 0, 0); - } - function _akP_(param){ - switch(menage[9][0]){ - case 0: - var _akQ_ = 0; break; - case 1: - var _akQ_ = 0; break; - case 2: - var _akQ_ = 0; break; - case 3: - var _akQ_ = 0; break; - case 4: - var _akQ_ = 1; break; - case 5: - var _akQ_ = 1; break; - case 6: - var _akQ_ = 0; break; - case 7: - var _akQ_ = 0; break; - default: var _akQ_ = 0; - } - var - _akR_ = - caml_call2 - (Runtime_ocaml_Runtime[130], - date_courante, - date_entree_vigueur_differee_c$0), - _akS_ = caml_call2(Runtime_ocaml_Runtime[83], _akR_, _akQ_); - return caml_call2(Runtime_ocaml_Runtime[29], _HB_, _akS_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _HC_, [0], _akP_, _akO_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _HD_, _akN_, _akM_, _akL_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _HE_, _akK_, _akJ_, _akI_); - }], - _akH_ = caml_call4(Runtime_ocaml_Runtime[63], _HF_, _akG_, _akF_, _akE_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _HG_, - Runtime_ocaml_Runtime[17], - _akH_); - } - var - _agI_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _HH_, eligibilite_prestations_famili), - [0, - prestations_familiales_dot_dat, - prestations_familiales_dot_pre, - prestations_familiales_dot_res, - prestations_familiales_dot_age]), - result$0 = caml_call2(Runtime_ocaml_Runtime[27], _HI_, _agI_), - prestations_familiales_dot_age$0 = result$0[1], - prestations_familiales_dot_dro = result$0[2]; - try{ - var - _agK_ = function(param){return 0;}, - _agL_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _HK_, 1); - }, - _agM_ = - [0, - function(param){ - function _akr_(param){return 1;} - function _aks_(param){ - switch(menage[2][3][0]){ - case 0: - var _akD_ = 1; break; - case 1: - var _akD_ = 1; break; - case 2: - var _akD_ = menage[2][1]; break; - case 3: - var _akD_ = 1; break; - default: var _akD_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _HL_, _akD_); - } - var - _akt_ = - [0, - function(param){ - function _aku_(param){return 0;} - function _akv_(param){ - switch(menage[2][3][0]){ - case 0: - var - usufruit_ou_propriete_famille$0 = usufruit_ou_propriete_famille; - break; - case 1: - var usufruit_ou_propriete_famille$0 = 0; break; - case 2: - var usufruit_ou_propriete_famille$0 = 0; break; - case 3: - var usufruit_ou_propriete_famille$0 = 0; break; - default: var usufruit_ou_propriete_famille$0 = 0; - } - return caml_call2 - (Runtime_ocaml_Runtime[29], - _HM_, - usufruit_ou_propriete_famille$0); - } - var - _akw_ = - [0, - function(param){ - function _akx_(param){return 1;} - function _aky_(param){ - var match = menage[2][6]; - if(0 === match[0]) - var parts = match[1], parts$0 = parts; - else - var - parts$0 = caml_call1(Runtime_ocaml_Runtime[39], cst_0$341); - var - _akz_ = - caml_call2 - (Runtime_ocaml_Runtime[112], - parts$0, - seuil_l822_3_parts_usufruit), - match$0 = menage[2][4]; - if(0 === match$0[0]) - var parts$1 = match$0[1], parts$2 = parts$1; - else - var - parts$2 = caml_call1(Runtime_ocaml_Runtime[39], cst_0$340); - var - _akA_ = - caml_call2 - (Runtime_ocaml_Runtime[112], - parts$2, - seuil_l822_3_parts_propriete), - _akB_ = caml_call2(Runtime_ocaml_Runtime[83], _akA_, _akz_), - _akC_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - usufruit_ou_propriete_famille, - _akB_); - return caml_call2(Runtime_ocaml_Runtime[29], _HN_, _akC_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _HO_, [0], _aky_, _akx_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _HP_, _akw_, _akv_, _aku_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _HQ_, _akt_, _aks_, _akr_); - }], - _agN_ = caml_call4(Runtime_ocaml_Runtime[63], _HR_, _agM_, _agL_, _agK_); - } - catch(_akq_){ - var _agJ_ = caml_wrap_exception(_akq_); - if(_agJ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _HJ_], 1); - throw caml_maybe_attach_backtrace(_agJ_, 0); - } - var - condition_logement_mode_occupa = - caml_call3 - (Runtime_ocaml_Runtime[28], _HS_, Runtime_ocaml_Runtime[12], _agN_); - try{ - var - _agP_ = - function(param){ - function _ajZ_(param){return 0;} - function _aj0_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _HU_, 1); - } - var - _aj1_ = - [0, - function(param){ - function _aj2_(param){return 1;} - function _aj3_(param){ - var - _akf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_9), - _akg_ = caml_call1(Runtime_ocaml_Runtime[68], menage[3]), - _akh_ = - caml_call2(Runtime_ocaml_Runtime[91], menage[4], _akg_), - _aki_ = caml_call2(Runtime_ocaml_Runtime[102], _akh_, _akf_); - switch(menage[5][0]){ - case 0: - var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_9$0); - break; - case 1: - var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16); - break; - case 2: - var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16$0); - break; - case 3: - var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16$1); - break; - case 4: - var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_9$1); - break; - default: - var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16$2); - } - var - condition_logement_surface_min = - caml_call2(Runtime_ocaml_Runtime[91], _akj_, _aki_), - _akk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_8), - _akl_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - nombre_personnes_logement, - _akk_), - _akm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_70), - _akn_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - condition_logement_surface_min, - _akm_); - if(caml_call2(Runtime_ocaml_Runtime[83], _akn_, _akl_)) - var - _ako_ = caml_call1(Runtime_ocaml_Runtime[46], cst_70$0), - _akp_ = - caml_call2(Runtime_ocaml_Runtime[126], menage[2][8], _ako_); - else - var - _akp_ = - caml_call2 - (Runtime_ocaml_Runtime[126], - menage[2][8], - condition_logement_surface_min); - return caml_call2(Runtime_ocaml_Runtime[29], _HV_, _akp_); - } - var - _aj4_ = - [0, - function(param){ - function _aj5_(param){return 1;} - function _aj6_(param){ - var - _akb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$248), - _akc_ = - caml_call2 - (Runtime_ocaml_Runtime[86], - nombre_personnes_logement, - _akb_) - ? caml_call1(Runtime_ocaml_Runtime[46], cst_9$2) - : caml_call1(Runtime_ocaml_Runtime[46], cst_16$3), - _akd_ = - caml_call2(Runtime_ocaml_Runtime[126], menage[2][8], _akc_), - _ake_ = - caml_call2(Runtime_ocaml_Runtime[83], menage[8], _akd_); - return caml_call2(Runtime_ocaml_Runtime[29], _HW_, _ake_); - } - var - _aj7_ = - [0, - function(param){ - function _aj8_(param){return 0;} - function _aj9_(param){ - var - _aj__ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$104), - _aj$_ = - caml_call2 - (Runtime_ocaml_Runtime[121], - nombre_personnes_logement, - _aj__), - _aka_ = - caml_call2(Runtime_ocaml_Runtime[83], menage[8], _aj$_); - return caml_call2(Runtime_ocaml_Runtime[29], _HX_, _aka_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _HY_, [0], _aj9_, _aj8_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _HZ_, _aj7_, _aj6_, _aj5_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _H0_, _aj4_, _aj3_, _aj2_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _H1_, _aj1_, _aj0_, _ajZ_); - }, - _agQ_ = function(param){return 1;}, - _agR_ = - [0, - function(param){return caml_call1(condition_logement_surface, 0);}], - _agS_ = caml_call4(Runtime_ocaml_Runtime[63], _H2_, _agR_, _agQ_, _agP_); - } - catch(_ajY_){ - var _agO_ = caml_wrap_exception(_ajY_); - if(_agO_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _HT_], 1); - throw caml_maybe_attach_backtrace(_agO_, 0); - } - var - condition_logement_surface$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _H3_, Runtime_ocaml_Runtime[12], _agS_); - try{ - var - _agU_ = function(param){return ouverture_droits_retraite_dot_$0;}, - _agV_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _H5_, 1); - }, - _agW_ = caml_call4(Runtime_ocaml_Runtime[63], _H6_, [0], _agV_, _agU_); - } - catch(_ajX_){ - var _agT_ = caml_wrap_exception(_ajX_); - if(_agT_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _H4_], 1); - throw caml_maybe_attach_backtrace(_agT_, 0); - } - var - age_l161_17_2_secu = - caml_call3 - (Runtime_ocaml_Runtime[28], _H7_, Runtime_ocaml_Runtime[17], _agW_); - try{ - var - _agY_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[123], - patrimoine_total_demandeur, - seuil_l822_5_patrimoine) - ? patrimoine_total_demandeur - : caml_call1(Runtime_ocaml_Runtime[31], cst_0$342); - }, - _agZ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _H9_, 1); - }, - _ag0_ = - [0, - function(param){ - function _ajE_(param){return demandeur[3][2];} - function _ajF_(param){ - var - _ajW_ = - caml_call2 - (Runtime_ocaml_Runtime[128], - patrimoine_total_demandeur, - seuil_l822_5_patrimoine); - return caml_call2(Runtime_ocaml_Runtime[29], _H__, _ajW_); - } - var - _ajG_ = - [0, - function(param){ - function _ajH_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _ajI_(param){return 0;} - var - _ajJ_ = - [0, - function(param){ - function _ajK_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$343); - } - function _ajL_(param){ - var _ajP_ = menage[1], _ajQ_ = 0; - function _ajR_(acc, prestation){ - var - _ajT_ = - caml_call2(Runtime_ocaml_Runtime[86], prestation, _H$_), - _ajU_ = - caml_call2(Runtime_ocaml_Runtime[86], prestation, _Ia_), - _ajV_ = caml_call2(Runtime_ocaml_Runtime[84], _ajU_, _ajT_); - return caml_call2(Runtime_ocaml_Runtime[84], acc, _ajV_); - } - var - _ajS_ = - caml_call3(Runtime_ocaml_Runtime[136], _ajR_, _ajQ_, _ajP_); - return caml_call2(Runtime_ocaml_Runtime[29], _Ib_, _ajS_); - } - var - _ajM_ = - [0, - function(param){ - function _ajN_(param){ - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$344); - } - function _ajO_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], _Ic_, menage[2][2]); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Id_, [0], _ajO_, _ajN_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ie_, _ajM_, _ajL_, _ajK_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _If_, _ajJ_, _ajI_, _ajH_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ig_, _ajG_, _ajF_, _ajE_); - }], - _ag1_ = caml_call4(Runtime_ocaml_Runtime[63], _Ih_, _ag0_, _agZ_, _agY_); - } - catch(_ajD_){ - var _agX_ = caml_wrap_exception(_ajD_); - if(_agX_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _H8_], 1); - throw caml_maybe_attach_backtrace(_agX_, 0); - } - caml_call3 - (Runtime_ocaml_Runtime[28], _Ii_, Runtime_ocaml_Runtime[13], _ag1_); - try{ - var - _ag3_ = function(param){return 0;}, - _ag4_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ik_, 1); - }, - _ag5_ = - [0, - function(param){ - function _ajB_(param){return 1;} - function _ajC_(param){ - return caml_call2 - (Runtime_ocaml_Runtime[29], - _Il_, - condition_logement_surface$0); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Im_, [0], _ajC_, _ajB_); - }], - _ag6_ = caml_call4(Runtime_ocaml_Runtime[63], _In_, _ag5_, _ag4_, _ag3_); - } - catch(_ajA_){ - var _ag2_ = caml_wrap_exception(_ajA_); - if(_ag2_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ij_], 1); - throw caml_maybe_attach_backtrace(_ag2_, 0); - } - var - condition_ouverture_l822_10_pe = - caml_call3 - (Runtime_ocaml_Runtime[28], _Io_, Runtime_ocaml_Runtime[12], _ag6_); - try{ - var - _ag8_ = - function(param){ - var _ajz_ = caml_call3(Runtime_ocaml_Runtime[60], 5, 0, 0); - return caml_call2 - (Runtime_ocaml_Runtime[95], age_l161_17_2_secu, _ajz_); - }, - _ag9_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Iq_, 1); - }, - _ag__ = caml_call4(Runtime_ocaml_Runtime[63], _Ir_, [0], _ag9_, _ag8_); - } - catch(_ajy_){ - var _ag7_ = caml_wrap_exception(_ajy_); - if(_ag7_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ip_], 1); - throw caml_maybe_attach_backtrace(_ag7_, 0); - } - var - age_l351_8_1_secu = - caml_call3 - (Runtime_ocaml_Runtime[28], _Is_, Runtime_ocaml_Runtime[17], _ag__); - try{ - var - _aha_ = function(param){return 0;}, - _ahb_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Iu_, 1); - }, - _ahc_ = - [0, - function(param){ - function _ajp_(param){return 1;} - function _ajq_(param){ - var - _ajv_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_location_ti, - condition_ouverture_l822_10_pe), - _ajw_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_mode_occupa, - _ajv_), - _ajx_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_residence_p$0, - _ajw_); - return caml_call2(Runtime_ocaml_Runtime[29], _Iv_, _ajx_); - } - var - _ajr_ = - [0, - function(param){ - function _ajs_(param){return 0;} - function _ajt_(param){ - var - _aju_ = - caml_call2 - (Runtime_ocaml_Runtime[84], - condition_non_ouverture_l822_8, - condition_non_ouverture_l822_9); - return caml_call2(Runtime_ocaml_Runtime[29], _Iw_, _aju_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ix_, [0], _ajt_, _ajs_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Iy_, _ajr_, _ajq_, _ajp_); - }], - _ahd_ = caml_call4(Runtime_ocaml_Runtime[63], _Iz_, _ahc_, _ahb_, _aha_); - } - catch(_ajo_){ - var _ag$_ = caml_wrap_exception(_ajo_); - if(_ag$_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _It_], 1); - throw caml_maybe_attach_backtrace(_ag$_, 0); - } - var - eligibilite_logement = - caml_call3 - (Runtime_ocaml_Runtime[28], _IA_, Runtime_ocaml_Runtime[12], _ahd_); - function _ahe_(personne_a_charge){ - try{ + traitement_formule= + caml_call2(Runtime_ocaml_Runtime[27],_Q__,_aGo_); + return [0,traitement_formule[6],traitement_formule[7]]}} + function _aGg_(param) + {switch(categorie_calcul_apl[0]) + {case 0:var _aGh_=0;break; + case 1:var _aGh_=0;break; + default:var _aGh_=1} + switch(residence[0]) + {case 0:var _aGi_=0;break; + case 1:var _aGi_=0;break; + case 2:var _aGi_=0;break; + case 3:var _aGi_=0;break; + case 4:var _aGi_=0;break; + case 5:var _aGi_=0;break; + case 6:var _aGi_=0;break; + case 7:var _aGi_=1;break; + default:var _aGi_=0} + var _aGj_=caml_call2(Runtime_ocaml_Runtime[83],_aGi_,_aGh_); + return caml_call2(Runtime_ocaml_Runtime[29],_Q$_,_aGj_)} + return caml_call4(Runtime_ocaml_Runtime[63],_Ra_,[0],_aGg_,_aGf_)}], + _aF6_=caml_call4(Runtime_ocaml_Runtime[63],_Rb_,_aF5_,_aF4_,_aF3_)} + catch(_aGe_) + {_aGe_ = caml_wrap_exception(_aGe_); + if(_aGe_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Qx_]; + throw _aGe_} var - _aiY_ = function(param){return 0;}, - _aiZ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _IC_, 1); - }, - _ai0_ = - [0, - function(param){ - function _ai3_(param){return 1;} - function _ai4_(param){ - if(0 === personne_a_charge[0]) - var _ai5_ = 0; - else{ - var - parent = personne_a_charge[1], - _ai6_ = parent[6], - _ai7_ = - caml_call3 - (Runtime_ocaml_Runtime[94], 2, parent[1], age_l161_17_2_secu), - _ai8_ = - caml_call2(Runtime_ocaml_Runtime[120], _ai7_, date_courante), - _ai9_ = caml_call2(Runtime_ocaml_Runtime[83], _ai8_, _ai6_); - try{var _ai$_ = caml_call3(Runtime_ocaml_Runtime[60], 65, 0, 0);} - catch(_ajn_){ - var _ai__ = caml_wrap_exception(_ajn_); - if(_ai__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _IE_], 1); - throw caml_maybe_attach_backtrace(_ai__, 0); - } - var - _aja_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _IF_, - embed_verification_age_inferie$0, - [0, parent[1], date_courante, _ai$_]), - result = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _IG_, - verification_age_inferieur_ou_), - _aja_), - result$0 = [0, result[1]]; - caml_call2(Runtime_ocaml_Runtime[29], _IH_, 1); - var - _ajb_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _II_, - embed_verification_age_inferie, - result$0), - _ajc_ = caml_call2(Runtime_ocaml_Runtime[27], _IJ_, _ajb_)[1], - _ajd_ = caml_call2(Runtime_ocaml_Runtime[83], parent[7], _ajc_), - _aje_ = - caml_call3 - (Runtime_ocaml_Runtime[94], 2, parent[1], age_l351_8_1_secu), - _ajf_ = - caml_call2(Runtime_ocaml_Runtime[120], _aje_, date_courante), - _ajg_ = caml_call2(Runtime_ocaml_Runtime[84], _ajf_, _ajd_), - _ajh_ = caml_call2(Runtime_ocaml_Runtime[84], _ajg_, _ai9_), - _aji_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1_25), - _ajj_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_individuel_l815_9_secu, - _aji_), - _ajk_ = caml_call2(Runtime_ocaml_Runtime[118], parent[2], _ajj_), - _ajl_ = caml_call2(Runtime_ocaml_Runtime[83], _ajk_, _ajh_), - _ajm_ = caml_call2(Runtime_ocaml_Runtime[86], parent[4], _IK_), - _ai5_ = caml_call2(Runtime_ocaml_Runtime[83], _ajm_, _ajl_); - } - return caml_call2(Runtime_ocaml_Runtime[29], _ID_, _ai5_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _IL_, [0], _ai4_, _ai3_); - }], - _ai1_ = - caml_call4(Runtime_ocaml_Runtime[63], _IM_, _ai0_, _aiZ_, _aiY_); - return _ai1_; - } - catch(_ai2_){ - var _aiX_ = caml_wrap_exception(_ai2_); - if(_aiX_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _IB_], 1); - throw caml_maybe_attach_backtrace(_aiX_, 0); - } - } - var - condition_2_r823_4 = - caml_call3 - (Runtime_ocaml_Runtime[28], _IN_, Runtime_ocaml_Runtime[10], _ahe_); - try{ - var - _ahg_ = function(param){return 0;}, - _ahh_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _IP_, 1); - }, - _ahi_ = - [0, - function(param){ - function _aiT_(param){return 1;} - function _aiU_(param){ - var - _aiV_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_mode_occupa, - eligibilite_logement), - _aiW_ = - caml_call2 - (Runtime_ocaml_Runtime[83], condition_nationalite, _aiV_); - return caml_call2(Runtime_ocaml_Runtime[29], _IQ_, _aiW_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _IR_, [0], _aiU_, _aiT_); - }], - _ahj_ = caml_call4(Runtime_ocaml_Runtime[63], _IS_, _ahi_, _ahh_, _ahg_); - } - catch(_aiS_){ - var _ahf_ = caml_wrap_exception(_aiS_); - if(_ahf_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _IO_], 1); - throw caml_maybe_attach_backtrace(_ahf_, 0); - } - var - eligibilite = - caml_call3 - (Runtime_ocaml_Runtime[28], _IT_, Runtime_ocaml_Runtime[12], _ahj_); - function _ahk_(personne_a_charge){ - try{ + sous_calcul_traitement= + caml_call3 + (Runtime_ocaml_Runtime[28],_Rc_,embed_traitement_formule_aide_,_aF6_); + function _aF7_(arg) + {try + {var + _aGa_= + function(param){return caml_call1(sous_calcul_traitement[2],arg)}, + _aGb_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Re_,1)}, + _aGc_=caml_call4(Runtime_ocaml_Runtime[63],_Rf_,[0],_aGb_,_aGa_); + return _aGc_} + catch(_aGd_) + {_aGd_ = caml_wrap_exception(_aGd_); + if(_aGd_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Rd_]; + throw _aGd_}} var - _ahX_ = function(param){return 0;}, - _ahY_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _IV_, 1); - }, - _ahZ_ = - function(param){ - function _aie_(param){return 1;} - function _aif_(param){ - if(0 === personne_a_charge[0]) + traitement_aide_finale= + caml_call3 + (Runtime_ocaml_Runtime[28],_Rg_,Runtime_ocaml_Runtime[10],_aF7_); + try + {var + _aF8_=function(param){return sous_calcul_traitement[1]}, + _aF9_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ri_,1)}, + _aF__=caml_call4(Runtime_ocaml_Runtime[63],_Rj_,[0],_aF9_,_aF8_)} + catch(_aF$_) + {_aF$_ = caml_wrap_exception(_aF$_); + if(_aF$_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Rh_]; + throw _aF$_} + var + aide_finale_formule= + caml_call3 + (Runtime_ocaml_Runtime[28],_Rk_,Runtime_ocaml_Runtime[13],_aF__); + return [0,aide_finale_formule,traitement_aide_finale]} + function eligibilite_aides_personnelle_(eligibilite_aides_personnelle_) + {var + menage=eligibilite_aides_personnelle_[1], + demandeur=eligibilite_aides_personnelle_[2], + date_courante=eligibilite_aides_personnelle_[3], + condition_logement_residence_p=eligibilite_aides_personnelle_[4], + condition_logement_surface=eligibilite_aides_personnelle_[5], + date_entree_vigueur_differee_c=eligibilite_aides_personnelle_[6]; + function _ay__(pret) + {try + {var + _aFQ_=function(param){return 0}, + _aFR_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Rm_,1)}, + _aFS_=caml_call4(Runtime_ocaml_Runtime[63],_Rn_,[0],_aFR_,_aFQ_); + return _aFS_} + catch(_aFT_) + {_aFT_ = caml_wrap_exception(_aFT_); + if(_aFT_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Rl_]; + throw _aFT_}} + caml_call3 + (Runtime_ocaml_Runtime[28],_Ro_,Runtime_ocaml_Runtime[10],_ay__); + try + {var + _ay$_=function(param){return 0}, + _aza_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Rq_,1)}, + _azb_=caml_call4(Runtime_ocaml_Runtime[63],_Rr_,[0],_aza_,_ay$_)} + catch(_aFP_) + {_aFP_ = caml_wrap_exception(_aFP_); + if(_aFP_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Rp_]; + throw _aFP_} + caml_call3 + (Runtime_ocaml_Runtime[28],_Rs_,Runtime_ocaml_Runtime[12],_azb_); + try + {var + _azc_= + function(param) + {function _aFN_(param) + {return caml_call3(Runtime_ocaml_Runtime[57],2021,1,1)} + function _aFO_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Ru_,1)} + return caml_call4(Runtime_ocaml_Runtime[63],_Rv_,[0],_aFO_,_aFN_)}, + _azd_=function(param){return 1}, + _aze_= + [0, + function(param) + {return caml_call1(date_entree_vigueur_differee_c,0)}], + _azf_=caml_call4(Runtime_ocaml_Runtime[63],_Rw_,_aze_,_azd_,_azc_)} + catch(_aFM_) + {_aFM_ = caml_wrap_exception(_aFM_); + if(_aFM_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Rt_]; + throw _aFM_} + var + date_entree_vigueur_differee_c$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_Rx_,Runtime_ocaml_Runtime[16],_azf_); + try + {var + _azg_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_1)}, + _azh_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Rz_,1)}, + _azi_=caml_call4(Runtime_ocaml_Runtime[63],_RA_,[0],_azh_,_azg_)} + catch(_aFL_) + {_aFL_ = caml_wrap_exception(_aFL_); + if(_aFL_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ry_]; + throw _aFL_} + var + seuil_l822_3_parts_propriete= + caml_call3 + (Runtime_ocaml_Runtime[28],_RB_,Runtime_ocaml_Runtime[15],_azi_); + try + {var + _azj_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_1$0)}, + _azk_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_RD_,1)}, + _azl_=caml_call4(Runtime_ocaml_Runtime[63],_RE_,[0],_azk_,_azj_)} + catch(_aFK_) + {_aFK_ = caml_wrap_exception(_aFK_); + if(_aFK_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_RC_]; + throw _aFK_} + var + seuil_l822_3_parts_usufruit= + caml_call3 + (Runtime_ocaml_Runtime[28],_RF_,Runtime_ocaml_Runtime[15],_azl_); + try + {var + _azm_= + function(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_3000000)}, + _azn_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_RH_,1)}, + _azo_=caml_call4(Runtime_ocaml_Runtime[63],_RI_,[0],_azn_,_azm_)} + catch(_aFJ_) + {_aFJ_ = caml_wrap_exception(_aFJ_); + if(_aFJ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_RG_]; + throw _aFJ_} + var + seuil_l822_5_patrimoine= + caml_call3 + (Runtime_ocaml_Runtime[28],_RJ_,Runtime_ocaml_Runtime[13],_azo_); + try + {var + _azp_= + function(param) + {var + _aFH_=0 === menage[2][6][0]?1:0, + _aFI_=0 === menage[2][4][0]?1:0; + return caml_call2(Runtime_ocaml_Runtime[84],_aFI_,_aFH_)}, + _azq_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_RL_,1)}, + _azr_=caml_call4(Runtime_ocaml_Runtime[63],_RM_,[0],_azq_,_azp_)} + catch(_aFG_) + {_aFG_ = caml_wrap_exception(_aFG_); + if(_aFG_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_RK_]; + throw _aFG_} + var + usufruit_ou_propriete_famille= + caml_call3 + (Runtime_ocaml_Runtime[28],_RN_,Runtime_ocaml_Runtime[12],_azr_); + try + {var + _azs_= + function(param) + {var + _aFC_=caml_call1(Runtime_ocaml_Runtime[68],menage[3]), + _aFD_=menage[4]; + switch(menage[5][0]) + {case 0: + var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$275); + break; + case 1: + var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$118); + break; + case 2: + var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$119); + break; + case 3: + var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$120); + break; + case 4: + var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$276); + break; + default: + var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$121)} + var _aFF_=caml_call2(Runtime_ocaml_Runtime[91],_aFE_,_aFD_); + return caml_call2(Runtime_ocaml_Runtime[91],_aFF_,_aFC_)}, + _azt_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_RP_,1)}, + _azu_=caml_call4(Runtime_ocaml_Runtime[63],_RQ_,[0],_azt_,_azs_)} + catch(_aFB_) + {_aFB_ = caml_wrap_exception(_aFB_); + if(_aFB_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_RO_]; + throw _aFB_} + var + nombre_personnes_logement= + caml_call3 + (Runtime_ocaml_Runtime[28],_RR_,Runtime_ocaml_Runtime[14],_azu_); + try + {var + _azv_=function(param){return 0}, + _azw_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_RT_,1)}, + _azx_= + [0, + function(param) + {function _aFv_(param){return 1} + function _aFw_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_RU_,1)} + var + _aFx_= + [0, + function(param) + {function _aFy_(param){return 0} + function _aFz_(param) + {switch(menage[9][0]) + {case 0:var _aFA_=0;break; + case 1:var _aFA_=0;break; + case 2:var _aFA_=0;break; + case 3:var _aFA_=0;break; + case 4:var _aFA_=0;break; + case 5:var _aFA_=0;break; + case 6:var _aFA_=0;break; + case 7:var _aFA_=0;break; + default:var _aFA_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_RV_,_aFA_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_RW_,[0],_aFz_,_aFy_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_RX_,_aFx_,_aFw_,_aFv_)}], + _azy_=caml_call4(Runtime_ocaml_Runtime[63],_RY_,_azx_,_azw_,_azv_)} + catch(_aFu_) + {_aFu_ = caml_wrap_exception(_aFu_); + if(_aFu_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_RS_]; + throw _aFu_} + var + septieme_alinea_l823_1_applica= + caml_call3 + (Runtime_ocaml_Runtime[28],_RZ_,Runtime_ocaml_Runtime[12],_azy_); + try + {var + _azz_=function(param){return 0}, + _azA_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_R1_,1)}, + _azB_= + [0, + function(param) + {function _aFr_(param){return 1} + function _aFs_(param) + {var _aFt_=caml_call1(Runtime_ocaml_Runtime[67],menage[2][7]); + return caml_call2(Runtime_ocaml_Runtime[29],_R2_,_aFt_)} + return caml_call4(Runtime_ocaml_Runtime[63],_R3_,[0],_aFs_,_aFr_)}], + _azC_=caml_call4(Runtime_ocaml_Runtime[63],_R4_,_azB_,_azA_,_azz_)} + catch(_aFq_) + {_aFq_ = caml_wrap_exception(_aFq_); + if(_aFq_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_R0_]; + throw _aFq_} + var + condition_non_ouverture_l822_9= + caml_call3 + (Runtime_ocaml_Runtime[28],_R5_,Runtime_ocaml_Runtime[12],_azC_); + try + {var + _azD_=function(param){return 0}, + _azE_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_R7_,1)}, + _azF_= + [0, + function(param) + {function _aFo_(param){return 1} + function _aFp_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_R8_,menage[6])} + return caml_call4(Runtime_ocaml_Runtime[63],_R9_,[0],_aFp_,_aFo_)}], + _azG_=caml_call4(Runtime_ocaml_Runtime[63],_R__,_azF_,_azE_,_azD_)} + catch(_aFn_) + {_aFn_ = caml_wrap_exception(_aFn_); + if(_aFn_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_R6_]; + throw _aFn_} + var + condition_non_ouverture_l822_8= + caml_call3 + (Runtime_ocaml_Runtime[28],_R$_,Runtime_ocaml_Runtime[12],_azG_); + try + {var + _azH_= + function(param) + {function _aFi_(param){return 0} + function _aFj_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Sb_,1)} var - enfant = personne_a_charge[1], - _aiL_ = enfant[3], - _aiM_ = enfant[4], - _aiN_ = 0 === enfant[8][0] ? _IW_ : _I2_, - _aiO_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _IX_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _aiN_, - _aiM_, - _aiL_]), - _aiP_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _IY_, - prestations_familiales_dot_dro), - _aiO_), - _aiQ_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _IZ_, - Runtime_ocaml_Runtime[12], - _aiP_), - _aiR_ = caml_call2(Runtime_ocaml_Runtime[27], _I0_, _aiQ_); - else - var _aiR_ = 0; - return caml_call2(Runtime_ocaml_Runtime[29], _I1_, _aiR_); - } - var - _aig_ = - [0, - function(param){ - function _aih_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _aii_(param){return 0;} - var - _aij_ = - [0, - function(param){ - function _aik_(param){return 0;} - function _ail_(param){ - if(0 === personne_a_charge[0]){ - var enfant = personne_a_charge[1], match = enfant[2]; - if(0 === match[0]) - var _aiI_ = 0; - else - var - conditions = match[1], - _aiI_ = caml_call1(Runtime_ocaml_Runtime[67], conditions[1]); - var _aiJ_ = _aiI_; - } - else - var _aiJ_ = 0; - var - _aiK_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - septieme_alinea_l823_1_applica, - _aiJ_); - return caml_call2(Runtime_ocaml_Runtime[29], _I3_, _aiK_); - } - var - _aim_ = - [0, - function(param){ - function _ain_(param){return 0;} - function _aio_(param){ - if(0 === personne_a_charge[0]){ - var - enfant = personne_a_charge[1], - _aiA_ = enfant[9], - _aiB_ = - caml_call3 - (Runtime_ocaml_Runtime[94], - 2, - enfant[5], - prestations_familiales_dot_age$0), - _aiC_ = - caml_call2(Runtime_ocaml_Runtime[125], _aiB_, date_courante), - _aiD_ = caml_call2(Runtime_ocaml_Runtime[83], _aiC_, _aiA_); - switch(enfant[7][0]){ - case 0: - var _aiE_ = 0; break; - case 1: - var _aiE_ = 0; break; - default: var _aiE_ = 1; - } - var - _aiF_ = caml_call2(Runtime_ocaml_Runtime[83], _aiE_, _aiD_); - } - else - var _aiF_ = 0; - switch(menage[9][0]){ - case 0: - var _aiG_ = 1; break; - case 1: - var _aiG_ = 1; break; - case 2: - var _aiG_ = 1; break; - case 3: - var _aiG_ = 1; break; - case 4: - var _aiG_ = 0; break; - case 5: - var _aiG_ = 0; break; - case 6: - var _aiG_ = 0; break; - case 7: - var _aiG_ = 0; break; - default: var _aiG_ = 1; - } - var - _aiH_ = caml_call2(Runtime_ocaml_Runtime[83], _aiG_, _aiF_); - return caml_call2(Runtime_ocaml_Runtime[29], _I4_, _aiH_); - } + _aFk_= + [0, + function(param) + {function _aFl_(param){return 1} + function _aFm_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_Sc_,menage[2][1])} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Sd_,[0],_aFm_,_aFl_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Se_,_aFk_,_aFj_,_aFi_)}, + _azI_=function(param){return 1}, + _azJ_= + [0, + function(param) + {return caml_call1(condition_logement_residence_p,0)}], + _azK_=caml_call4(Runtime_ocaml_Runtime[63],_Sf_,_azJ_,_azI_,_azH_)} + catch(_aFh_) + {_aFh_ = caml_wrap_exception(_aFh_); + if(_aFh_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Sa_]; + throw _aFh_} + var + condition_logement_residence_p$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_Sg_,Runtime_ocaml_Runtime[12],_azK_); + try + {var + _azL_=function(param){return demandeur[1]}, + _azM_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Si_,1)}, + _azN_=caml_call4(Runtime_ocaml_Runtime[63],_Sj_,[0],_azM_,_azL_), + ouverture_droits_retraite_dot_= + caml_call3 + (Runtime_ocaml_Runtime[28],_Sk_,Runtime_ocaml_Runtime[16],_azN_)} + catch(_aFg_) + {_aFg_ = caml_wrap_exception(_aFg_); + if(_aFg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Sh_]; + throw _aFg_} + var + _azO_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_Sl_,ouverture_droits_retraite), + [0,ouverture_droits_retraite_dot_]), + result=caml_call2(Runtime_ocaml_Runtime[27],_Sm_,_azO_), + ouverture_droits_retraite_dot_$0=result[1]; + try + {var + _azP_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[93],demandeur[3][1],demandeur[3][2])}, + _azQ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_So_,1)}, + _azR_=caml_call4(Runtime_ocaml_Runtime[63],_Sp_,[0],_azQ_,_azP_)} + catch(_aFf_) + {_aFf_ = caml_wrap_exception(_aFf_); + if(_aFf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Sn_]; + throw _aFf_} + var + patrimoine_total_demandeur= + caml_call3 + (Runtime_ocaml_Runtime[28],_Sq_,Runtime_ocaml_Runtime[13],_azR_); + try + {var + _azS_= + function(param) + {var _aFe_=demandeur[2]; + if(0 === _aFe_[0])return 1; + var conditions=_aFe_[1]; + return conditions[1]}, + _azT_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ss_,1)}, + _azU_= + [0, + function(param) + {function _aFa_(param) + {var _aFd_=demandeur[2]; + if(0 === _aFd_[0])return 0; + var conditions=_aFd_[1]; + return conditions[2]} + function _aFb_(param) + {switch(menage[9][0]) + {case 0:var _aFc_=0;break; + case 1:var _aFc_=0;break; + case 2:var _aFc_=0;break; + case 3:var _aFc_=0;break; + case 4:var _aFc_=0;break; + case 5:var _aFc_=0;break; + case 6:var _aFc_=0;break; + case 7:var _aFc_=0;break; + default:var _aFc_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_St_,_aFc_)} + return caml_call4(Runtime_ocaml_Runtime[63],_Su_,[0],_aFb_,_aFa_)}], + _azV_=caml_call4(Runtime_ocaml_Runtime[63],_Sv_,_azU_,_azT_,_azS_)} + catch(_aE$_) + {_aE$_ = caml_wrap_exception(_aE$_); + if(_aE$_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Sr_]; + throw _aE$_} + var + condition_nationalite= + caml_call3 + (Runtime_ocaml_Runtime[28],_Sw_,Runtime_ocaml_Runtime[12],_azV_); + try + {var + _azW_=function(param){throw Runtime_ocaml_Runtime[2]}, + _azX_=function(param){return 0}, + _azY_= + function(param) + {function _aE4_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1088175)} + function _aE5_(param) + {var + _aE6_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _aE7_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aE6_), + _aE8_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _aE9_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aE8_), + _aE__=caml_call2(Runtime_ocaml_Runtime[83],_aE9_,_aE7_); + return caml_call2(Runtime_ocaml_Runtime[29],_Sy_,_aE__)} + return caml_call4(Runtime_ocaml_Runtime[63],_Sz_,[0],_aE5_,_aE4_)}, + _azZ_= + function(param) + {function _aEX_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1100144)} + function _aEY_(param) + {var + _aEZ_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _aE0_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aEZ_), + _aE1_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _aE2_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aE1_), + _aE3_=caml_call2(Runtime_ocaml_Runtime[83],_aE2_,_aE0_); + return caml_call2(Runtime_ocaml_Runtime[29],_SA_,_aE3_)} + return caml_call4(Runtime_ocaml_Runtime[63],_SB_,[0],_aEY_,_aEX_)}, + _az0_= + function(param) + {function _aET_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1153302)} + function _aEU_(param) + {var + _aEV_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), + _aEW_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aEV_); + return caml_call2(Runtime_ocaml_Runtime[29],_SC_,_aEW_)} + return caml_call4(Runtime_ocaml_Runtime[63],_SD_,[0],_aEU_,_aET_)}, + _az1_= + function(param) + {function _aEM_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1083840)} + function _aEN_(param) + {var + _aEO_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _aEP_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aEO_), + _aEQ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aER_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aEQ_), + _aES_=caml_call2(Runtime_ocaml_Runtime[83],_aER_,_aEP_); + return caml_call2(Runtime_ocaml_Runtime[29],_SE_,_aES_)} + return caml_call4(Runtime_ocaml_Runtime[63],_SF_,[0],_aEN_,_aEM_)}, + _az2_= + function(param) + {function _aEF_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_1041840)} + function _aEG_(param) + {var + _aEH_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _aEI_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aEH_), + _aEJ_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _aEK_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aEJ_), + _aEL_=caml_call2(Runtime_ocaml_Runtime[83],_aEK_,_aEI_); + return caml_call2(Runtime_ocaml_Runtime[29],_SG_,_aEL_)} + return caml_call4(Runtime_ocaml_Runtime[63],_SH_,[0],_aEG_,_aEF_)}, + _az3_= + [0, + function(param) + {function _aEy_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_999840)} + function _aEz_(param) + {var + _aEA_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), + _aEB_= + caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aEA_), + _aEC_=caml_call3(Runtime_ocaml_Runtime[57],2018,4,1), + _aED_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aEC_), + _aEE_=caml_call2(Runtime_ocaml_Runtime[83],_aED_,_aEB_); + return caml_call2(Runtime_ocaml_Runtime[29],_SI_,_aEE_)} + return caml_call4(Runtime_ocaml_Runtime[63],_SJ_,[0],_aEz_,_aEy_)}, + _az2_, + _az1_, + _az0_, + _azZ_, + _azY_], + _az4_=caml_call4(Runtime_ocaml_Runtime[63],_SK_,_az3_,_azX_,_azW_)} + catch(_aEx_) + {_aEx_ = caml_wrap_exception(_aEx_); + if(_aEx_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Sx_]; + throw _aEx_} + var + plafond_individuel_l815_9_secu= + caml_call3 + (Runtime_ocaml_Runtime[28],_SL_,Runtime_ocaml_Runtime[13],_az4_); + try + {var + _az5_=function(param){return 0}, + _az6_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_SN_,1)}, + _az7_= + [0, + function(param) + {function _aEj_(param){return 0} + function _aEk_(param) + {var _aEw_=0 === menage[2][5][0]?1:0; + return caml_call2(Runtime_ocaml_Runtime[29],_SO_,_aEw_)} + var + _aEl_= + [0, + function(param) + {function _aEm_(param){return 1} + function _aEn_(param) + {var _aEo_=menage[2][5]; + if(0 === _aEo_[0]) + var _aEp_=1; + else + {var personne=_aEo_[1],_aEq_=personne[2]; + try + {var _aEr_=caml_call3(Runtime_ocaml_Runtime[60],30,0,0)} + catch(_aEv_) + {_aEv_ = caml_wrap_exception(_aEv_); + if(_aEv_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_SQ_]; + throw _aEv_} + var + _aEs_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _SR_, + embed_verification_age_superie$2, + [0,personne[1],date_courante,_aEr_]), + result= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _SS_, + verification_age_superieur_a$1), + _aEs_), + result$0=[0,result[1]]; + caml_call2(Runtime_ocaml_Runtime[29],_ST_,1); + var + _aEt_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _SU_, + embed_verification_age_superie$1, + result$0), + _aEu_=caml_call2(Runtime_ocaml_Runtime[27],_SV_,_aEt_)[1], + _aEp_=caml_call2(Runtime_ocaml_Runtime[84],_aEu_,_aEq_)} + return caml_call2(Runtime_ocaml_Runtime[29],_SP_,_aEp_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_SW_,[0],_aEn_,_aEm_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_SX_,_aEl_,_aEk_,_aEj_)}], + _az8_=caml_call4(Runtime_ocaml_Runtime[63],_SY_,_az7_,_az6_,_az5_)} + catch(_aEi_) + {_aEi_ = caml_wrap_exception(_aEi_); + if(_aEi_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_SM_]; + throw _aEi_} + var + condition_logement_location_ti= + caml_call3 + (Runtime_ocaml_Runtime[28],_SZ_,Runtime_ocaml_Runtime[12],_az8_); + try + {var + _az9_=function(param){return date_courante}, + _az__= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_S1_,1)}, + _az$_=caml_call4(Runtime_ocaml_Runtime[63],_S2_,[0],_az__,_az9_), + prestations_familiales_dot_dat= + caml_call3 + (Runtime_ocaml_Runtime[28],_S3_,Runtime_ocaml_Runtime[16],_az$_)} + catch(_aEh_) + {_aEh_ = caml_wrap_exception(_aEh_); + if(_aEh_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_S0_]; + throw _aEh_} + try + {var + _aAa_=function(param){return _S5_}, + _aAb_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_S6_,1)}, + _aAc_=caml_call4(Runtime_ocaml_Runtime[63],_S7_,[0],_aAb_,_aAa_), + prestations_familiales_dot_pre= + caml_call3 + (Runtime_ocaml_Runtime[28], + _S8_, + embed_element_prestations_fami$0, + _aAc_)} + catch(_aEg_) + {_aEg_ = caml_wrap_exception(_aEg_); + if(_aEg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_S4_]; + throw _aEg_} + try + {var + _aAd_=function(param){return menage[9]}, + _aAe_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_S__,1)}, + _aAf_=caml_call4(Runtime_ocaml_Runtime[63],_S$_,[0],_aAe_,_aAd_), + prestations_familiales_dot_res= + caml_call3 + (Runtime_ocaml_Runtime[28],_Ta_,embed_collectivite$0,_aAf_)} + catch(_aEf_) + {_aEf_ = caml_wrap_exception(_aEf_); + if(_aEf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_S9_]; + throw _aEf_} + function prestations_familiales_dot_age(param) + {function _aD1_(param) + {return caml_call3(Runtime_ocaml_Runtime[60],21,0,0)} + function _aD2_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Tb_,1)} + var + _aD3_= + [0, + function(param) + {function _aD5_(param){throw Runtime_ocaml_Runtime[2]} + function _aD6_(param){return 0} + var + _aD7_= + [0, + function(param) + {function _aD8_(param) + {return caml_call3(Runtime_ocaml_Runtime[60],22,0,0)} + function _aD9_(param) + {switch(menage[9][0]) + {case 0:var _aEe_=1;break; + case 1:var _aEe_=1;break; + case 2:var _aEe_=1;break; + case 3:var _aEe_=1;break; + case 4:var _aEe_=0;break; + case 5:var _aEe_=0;break; + case 6:var _aEe_=0;break; + case 7:var _aEe_=0;break; + default:var _aEe_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_Tc_,_aEe_)} + var + _aD__= + [0, + function(param) + {function _aD$_(param) + {return caml_call3(Runtime_ocaml_Runtime[60],22,0,0)} + function _aEa_(param) + {switch(menage[9][0]) + {case 0:var _aEb_=0;break; + case 1:var _aEb_=0;break; + case 2:var _aEb_=0;break; + case 3:var _aEb_=0;break; + case 4:var _aEb_=1;break; + case 5:var _aEb_=1;break; + case 6:var _aEb_=0;break; + case 7:var _aEb_=0;break; + default:var _aEb_=0} var - _aip_ = - [0, - function(param){ - function _aiq_(param){return 0;} - function _air_(param){ - if(0 === personne_a_charge[0]){ - var - enfant = personne_a_charge[1], - _ais_ = enfant[9], - _ait_ = + _aEc_= + caml_call2 + (Runtime_ocaml_Runtime[130], + date_courante, + date_entree_vigueur_differee_c$0), + _aEd_=caml_call2(Runtime_ocaml_Runtime[83],_aEc_,_aEb_); + return caml_call2(Runtime_ocaml_Runtime[29],_Td_,_aEd_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Te_,[0],_aEa_,_aD$_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Tf_,_aD__,_aD9_,_aD8_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Tg_,_aD7_,_aD6_,_aD5_)}], + _aD4_=caml_call4(Runtime_ocaml_Runtime[63],_Th_,_aD3_,_aD2_,_aD1_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _Ti_, + Runtime_ocaml_Runtime[17], + _aD4_)} + var + _aAg_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_Tj_,eligibilite_prestations_famili), + [0, + prestations_familiales_dot_dat, + prestations_familiales_dot_pre, + prestations_familiales_dot_res, + prestations_familiales_dot_age]), + result$0=caml_call2(Runtime_ocaml_Runtime[27],_Tk_,_aAg_), + prestations_familiales_dot_age$0=result$0[1], + prestations_familiales_dot_dro=result$0[2]; + try + {var + _aAh_=function(param){return 0}, + _aAi_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Tm_,1)}, + _aAj_= + [0, + function(param) + {function _aDM_(param){return 1} + function _aDN_(param) + {switch(menage[2][3][0]) + {case 0:var _aD0_=1;break; + case 1:var _aD0_=1;break; + case 2:var _aD0_=menage[2][1];break; + case 3:var _aD0_=1;break; + default:var _aD0_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_Tn_,_aD0_)} + var + _aDO_= + [0, + function(param) + {function _aDP_(param){return 0} + function _aDQ_(param) + {switch(menage[2][3][0]) + {case 0: + var + usufruit_ou_propriete_famille$0= + usufruit_ou_propriete_famille; + break; + case 1:var usufruit_ou_propriete_famille$0=0;break; + case 2:var usufruit_ou_propriete_famille$0=0;break; + case 3:var usufruit_ou_propriete_famille$0=0;break; + default:var usufruit_ou_propriete_famille$0=0} + return caml_call2 + (Runtime_ocaml_Runtime[29], + _To_, + usufruit_ou_propriete_famille$0)} + var + _aDR_= + [0, + function(param) + {function _aDS_(param){return 1} + function _aDT_(param) + {var _aDU_=menage[2][6]; + if(0 === _aDU_[0]) + var parts=_aDU_[1],parts$0=parts; + else + var parts$0=caml_call1(Runtime_ocaml_Runtime[39],cst_0$409); + var + _aDV_= + caml_call2 + (Runtime_ocaml_Runtime[112], + parts$0, + seuil_l822_3_parts_usufruit), + _aDW_=menage[2][4]; + if(0 === _aDW_[0]) + var parts$1=_aDW_[1],parts$2=parts$1; + else + var parts$2=caml_call1(Runtime_ocaml_Runtime[39],cst_0$408); + var + _aDX_= + caml_call2 + (Runtime_ocaml_Runtime[112], + parts$2, + seuil_l822_3_parts_propriete), + _aDY_=caml_call2(Runtime_ocaml_Runtime[83],_aDX_,_aDV_), + _aDZ_= + caml_call2 + (Runtime_ocaml_Runtime[83], + usufruit_ou_propriete_famille, + _aDY_); + return caml_call2(Runtime_ocaml_Runtime[29],_Tp_,_aDZ_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Tq_,[0],_aDT_,_aDS_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Tr_,_aDR_,_aDQ_,_aDP_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ts_,_aDO_,_aDN_,_aDM_)}], + _aAk_=caml_call4(Runtime_ocaml_Runtime[63],_Tt_,_aAj_,_aAi_,_aAh_)} + catch(_aDL_) + {_aDL_ = caml_wrap_exception(_aDL_); + if(_aDL_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Tl_]; + throw _aDL_} + var + condition_logement_mode_occupa= + caml_call3 + (Runtime_ocaml_Runtime[28],_Tu_,Runtime_ocaml_Runtime[12],_aAk_); + try + {var + _aAl_= + function(param) + {function _aDi_(param){return 0} + function _aDj_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Tw_,1)} + var + _aDk_= + [0, + function(param) + {function _aDl_(param){return 1} + function _aDm_(param) + {var + _aDA_=caml_call1(Runtime_ocaml_Runtime[46],cst_9), + _aDB_=caml_call1(Runtime_ocaml_Runtime[68],menage[3]), + _aDC_=caml_call2(Runtime_ocaml_Runtime[91],menage[4],_aDB_), + _aDD_=caml_call2(Runtime_ocaml_Runtime[102],_aDC_,_aDA_); + switch(menage[5][0]) + {case 0: + var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_9$0); + break; + case 1: + var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_16); + break; + case 2: + var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_16$0); + break; + case 3: + var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_16$1); + break; + case 4: + var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_9$1); + break; + default: + var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_16$2)} + var + condition_logement_surface_min= + caml_call2(Runtime_ocaml_Runtime[91],_aDE_,_aDD_), + _aDF_=caml_call1(Runtime_ocaml_Runtime[46],cst_8), + _aDG_= + caml_call2 + (Runtime_ocaml_Runtime[126],nombre_personnes_logement,_aDF_), + _aDH_=caml_call1(Runtime_ocaml_Runtime[46],cst_70), + _aDI_= + caml_call2 + (Runtime_ocaml_Runtime[126], + condition_logement_surface_min, + _aDH_); + if(caml_call2(Runtime_ocaml_Runtime[83],_aDI_,_aDG_)) + var + _aDJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_70$0), + _aDK_= + caml_call2(Runtime_ocaml_Runtime[126],menage[2][8],_aDJ_); + else + var + _aDK_= + caml_call2 + (Runtime_ocaml_Runtime[126], + menage[2][8], + condition_logement_surface_min); + return caml_call2(Runtime_ocaml_Runtime[29],_Tx_,_aDK_)} + var + _aDn_= + [0, + function(param) + {function _aDo_(param){return 1} + function _aDp_(param) + {var + _aDw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$277), + _aDx_= + caml_call2 + (Runtime_ocaml_Runtime[86],nombre_personnes_logement,_aDw_) + ?caml_call1(Runtime_ocaml_Runtime[46],cst_9$2) + :caml_call1(Runtime_ocaml_Runtime[46],cst_16$3), + _aDy_= + caml_call2(Runtime_ocaml_Runtime[126],menage[2][8],_aDx_), + _aDz_=caml_call2(Runtime_ocaml_Runtime[83],menage[8],_aDy_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ty_,_aDz_)} + var + _aDq_= + [0, + function(param) + {function _aDr_(param){return 0} + function _aDs_(param) + {var + _aDt_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$122), + _aDu_= + caml_call2 + (Runtime_ocaml_Runtime[121],nombre_personnes_logement,_aDt_), + _aDv_=caml_call2(Runtime_ocaml_Runtime[83],menage[8],_aDu_); + return caml_call2(Runtime_ocaml_Runtime[29],_Tz_,_aDv_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_TA_,[0],_aDs_,_aDr_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_TB_,_aDq_,_aDp_,_aDo_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_TC_,_aDn_,_aDm_,_aDl_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_TD_,_aDk_,_aDj_,_aDi_)}, + _aAm_=function(param){return 1}, + _aAn_= + [0,function(param){return caml_call1(condition_logement_surface,0)}], + _aAo_=caml_call4(Runtime_ocaml_Runtime[63],_TE_,_aAn_,_aAm_,_aAl_)} + catch(_aDh_) + {_aDh_ = caml_wrap_exception(_aDh_); + if(_aDh_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Tv_]; + throw _aDh_} + var + condition_logement_surface$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_TF_,Runtime_ocaml_Runtime[12],_aAo_); + try + {var + _aAp_=function(param){return ouverture_droits_retraite_dot_$0}, + _aAq_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TH_,1)}, + _aAr_=caml_call4(Runtime_ocaml_Runtime[63],_TI_,[0],_aAq_,_aAp_)} + catch(_aDg_) + {_aDg_ = caml_wrap_exception(_aDg_); + if(_aDg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_TG_]; + throw _aDg_} + var + age_l161_17_2_secu= + caml_call3 + (Runtime_ocaml_Runtime[28],_TJ_,Runtime_ocaml_Runtime[17],_aAr_); + try + {var + _aAs_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[123], + patrimoine_total_demandeur, + seuil_l822_5_patrimoine) + ?patrimoine_total_demandeur + :caml_call1(Runtime_ocaml_Runtime[31],cst_0$410)}, + _aAt_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TL_,1)}, + _aAu_= + [0, + function(param) + {function _aCZ_(param){return demandeur[3][2]} + function _aC0_(param) + {var + _aDf_= + caml_call2 + (Runtime_ocaml_Runtime[128], + patrimoine_total_demandeur, + seuil_l822_5_patrimoine); + return caml_call2(Runtime_ocaml_Runtime[29],_TM_,_aDf_)} + var + _aC1_= + [0, + function(param) + {function _aC2_(param){throw Runtime_ocaml_Runtime[2]} + function _aC3_(param){return 0} + var + _aC4_= + [0, + function(param) + {function _aC5_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$411)} + function _aC6_(param) + {var _aC__=menage[1],_aC$_=0; + function _aDa_(acc,prestation) + {var + _aDc_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_TN_), + _aDd_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_TO_), + _aDe_=caml_call2(Runtime_ocaml_Runtime[84],_aDd_,_aDc_); + return caml_call2(Runtime_ocaml_Runtime[84],acc,_aDe_)} + var + _aDb_= + caml_call3(Runtime_ocaml_Runtime[136],_aDa_,_aC$_,_aC__); + return caml_call2(Runtime_ocaml_Runtime[29],_TP_,_aDb_)} + var + _aC7_= + [0, + function(param) + {function _aC8_(param) + {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$412)} + function _aC9_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_TQ_,menage[2][2])} + return caml_call4 + (Runtime_ocaml_Runtime[63],_TR_,[0],_aC9_,_aC8_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_TS_,_aC7_,_aC6_,_aC5_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_TT_,_aC4_,_aC3_,_aC2_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_TU_,_aC1_,_aC0_,_aCZ_)}], + _aAv_=caml_call4(Runtime_ocaml_Runtime[63],_TV_,_aAu_,_aAt_,_aAs_)} + catch(_aCY_) + {_aCY_ = caml_wrap_exception(_aCY_); + if(_aCY_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_TK_]; + throw _aCY_} + caml_call3 + (Runtime_ocaml_Runtime[28],_TW_,Runtime_ocaml_Runtime[13],_aAv_); + try + {var + _aAw_=function(param){return 0}, + _aAx_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TY_,1)}, + _aAy_= + [0, + function(param) + {function _aCW_(param){return 1} + function _aCX_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29], + _TZ_, + condition_logement_surface$0)} + return caml_call4(Runtime_ocaml_Runtime[63],_T0_,[0],_aCX_,_aCW_)}], + _aAz_=caml_call4(Runtime_ocaml_Runtime[63],_T1_,_aAy_,_aAx_,_aAw_)} + catch(_aCV_) + {_aCV_ = caml_wrap_exception(_aCV_); + if(_aCV_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_TX_]; + throw _aCV_} + var + condition_ouverture_l822_10_pe= + caml_call3 + (Runtime_ocaml_Runtime[28],_T2_,Runtime_ocaml_Runtime[12],_aAz_); + try + {var + _aAA_= + function(param) + {var _aCU_=caml_call3(Runtime_ocaml_Runtime[60],5,0,0); + return caml_call2 + (Runtime_ocaml_Runtime[95],age_l161_17_2_secu,_aCU_)}, + _aAB_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_T4_,1)}, + _aAC_=caml_call4(Runtime_ocaml_Runtime[63],_T5_,[0],_aAB_,_aAA_)} + catch(_aCT_) + {_aCT_ = caml_wrap_exception(_aCT_); + if(_aCT_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_T3_]; + throw _aCT_} + var + age_l351_8_1_secu= + caml_call3 + (Runtime_ocaml_Runtime[28],_T6_,Runtime_ocaml_Runtime[17],_aAC_); + try + {var + _aAD_=function(param){return 0}, + _aAE_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_T8_,1)}, + _aAF_= + [0, + function(param) + {function _aCK_(param){return 1} + function _aCL_(param) + {var + _aCQ_= + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_location_ti, + condition_ouverture_l822_10_pe), + _aCR_= + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_mode_occupa, + _aCQ_), + _aCS_= + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_residence_p$0, + _aCR_); + return caml_call2(Runtime_ocaml_Runtime[29],_T9_,_aCS_)} + var + _aCM_= + [0, + function(param) + {function _aCN_(param){return 0} + function _aCO_(param) + {var + _aCP_= + caml_call2 + (Runtime_ocaml_Runtime[84], + condition_non_ouverture_l822_8, + condition_non_ouverture_l822_9); + return caml_call2(Runtime_ocaml_Runtime[29],_T__,_aCP_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_T$_,[0],_aCO_,_aCN_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ua_,_aCM_,_aCL_,_aCK_)}], + _aAG_=caml_call4(Runtime_ocaml_Runtime[63],_Ub_,_aAF_,_aAE_,_aAD_)} + catch(_aCJ_) + {_aCJ_ = caml_wrap_exception(_aCJ_); + if(_aCJ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_T7_]; + throw _aCJ_} + var + eligibilite_logement= + caml_call3 + (Runtime_ocaml_Runtime[28],_Uc_,Runtime_ocaml_Runtime[12],_aAG_); + function _aAH_(personne_a_charge) + {try + {var + _aCi_=function(param){return 0}, + _aCj_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Ue_,1)}, + _aCk_= + [0, + function(param) + {function _aCn_(param){return 1} + function _aCo_(param) + {if(0 === personne_a_charge[0]) + var _aCp_=0; + else + {var + parent=personne_a_charge[1], + _aCq_=parent[6], + _aCr_= + caml_call3 + (Runtime_ocaml_Runtime[94],2,parent[1],age_l161_17_2_secu), + _aCs_= + caml_call2(Runtime_ocaml_Runtime[120],_aCr_,date_courante), + _aCt_=caml_call2(Runtime_ocaml_Runtime[83],_aCs_,_aCq_); + try + {var _aCu_=caml_call3(Runtime_ocaml_Runtime[60],65,0,0)} + catch(_aCI_) + {_aCI_ = caml_wrap_exception(_aCI_); + if(_aCI_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ug_]; + throw _aCI_} + var + _aCv_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Uh_, + embed_verification_age_inferie$2, + [0,parent[1],date_courante,_aCu_]), + result= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Ui_, + verification_age_inferieur_ou_$5), + _aCv_), + result$0=[0,result[1]]; + caml_call2(Runtime_ocaml_Runtime[29],_Uj_,1); + var + _aCw_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Uk_, + embed_verification_age_inferie$1, + result$0), + _aCx_=caml_call2(Runtime_ocaml_Runtime[27],_Ul_,_aCw_)[1], + _aCy_=caml_call2(Runtime_ocaml_Runtime[83],parent[7],_aCx_), + _aCz_= + caml_call3 + (Runtime_ocaml_Runtime[94],2,parent[1],age_l351_8_1_secu), + _aCA_= + caml_call2(Runtime_ocaml_Runtime[120],_aCz_,date_courante), + _aCB_=caml_call2(Runtime_ocaml_Runtime[84],_aCA_,_aCy_), + _aCC_=caml_call2(Runtime_ocaml_Runtime[84],_aCB_,_aCt_), + _aCD_=caml_call1(Runtime_ocaml_Runtime[39],cst_1_25), + _aCE_= + caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_individuel_l815_9_secu, + _aCD_), + _aCF_=caml_call2(Runtime_ocaml_Runtime[118],parent[2],_aCE_), + _aCG_=caml_call2(Runtime_ocaml_Runtime[83],_aCF_,_aCC_), + _aCH_=caml_call2(Runtime_ocaml_Runtime[86],parent[4],_Um_), + _aCp_=caml_call2(Runtime_ocaml_Runtime[83],_aCH_,_aCG_)} + return caml_call2(Runtime_ocaml_Runtime[29],_Uf_,_aCp_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Un_,[0],_aCo_,_aCn_)}], + _aCl_=caml_call4(Runtime_ocaml_Runtime[63],_Uo_,_aCk_,_aCj_,_aCi_); + return _aCl_} + catch(_aCm_) + {_aCm_ = caml_wrap_exception(_aCm_); + if(_aCm_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ud_]; + throw _aCm_}} + var + condition_2_r823_4= + caml_call3 + (Runtime_ocaml_Runtime[28],_Up_,Runtime_ocaml_Runtime[10],_aAH_); + try + {var + _aAI_=function(param){return 0}, + _aAJ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ur_,1)}, + _aAK_= + [0, + function(param) + {function _aCe_(param){return 1} + function _aCf_(param) + {var + _aCg_= + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_mode_occupa, + eligibilite_logement), + _aCh_= + caml_call2 + (Runtime_ocaml_Runtime[83],condition_nationalite,_aCg_); + return caml_call2(Runtime_ocaml_Runtime[29],_Us_,_aCh_)} + return caml_call4(Runtime_ocaml_Runtime[63],_Ut_,[0],_aCf_,_aCe_)}], + _aAL_=caml_call4(Runtime_ocaml_Runtime[63],_Uu_,_aAK_,_aAJ_,_aAI_)} + catch(_aCd_) + {_aCd_ = caml_wrap_exception(_aCd_); + if(_aCd_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Uq_]; + throw _aCd_} + var + eligibilite= + caml_call3 + (Runtime_ocaml_Runtime[28],_Uv_,Runtime_ocaml_Runtime[12],_aAL_); + function _aAM_(personne_a_charge) + {try + {var + _aBh_=function(param){return 0}, + _aBi_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Ux_,1)}, + _aBj_= + function(param) + {function _aBA_(param){return 1} + function _aBB_(param) + {if(0 === personne_a_charge[0]) + var + enfant=personne_a_charge[1], + _aB8_=enfant[3], + _aB9_=enfant[4], + _aB__=0 === enfant[8][0]?_Uy_:_UE_, + _aB$_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Uz_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _aB__, + _aB9_, + _aB8_]), + _aCa_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _UA_, + prestations_familiales_dot_dro), + _aB$_), + _aCb_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _UB_, + Runtime_ocaml_Runtime[12], + _aCa_), + _aCc_=caml_call2(Runtime_ocaml_Runtime[27],_UC_,_aCb_); + else + var _aCc_=0; + return caml_call2(Runtime_ocaml_Runtime[29],_UD_,_aCc_)} + var + _aBC_= + [0, + function(param) + {function _aBD_(param){throw Runtime_ocaml_Runtime[2]} + function _aBE_(param){return 0} + var + _aBF_= + [0, + function(param) + {function _aBG_(param){return 0} + function _aBH_(param) + {if(0 === personne_a_charge[0]) + {var enfant=personne_a_charge[1],_aB4_=enfant[2]; + if(0 === _aB4_[0]) + var _aB5_=0; + else + var + conditions=_aB4_[1], + _aB5_=caml_call1(Runtime_ocaml_Runtime[67],conditions[1]); + var _aB6_=_aB5_} + else + var _aB6_=0; + var + _aB7_= + caml_call2 + (Runtime_ocaml_Runtime[83], + septieme_alinea_l823_1_applica, + _aB6_); + return caml_call2(Runtime_ocaml_Runtime[29],_UF_,_aB7_)} + var + _aBI_= + [0, + function(param) + {function _aBJ_(param){return 0} + function _aBK_(param) + {if(0 === personne_a_charge[0]) + {var + enfant=personne_a_charge[1], + _aBW_=enfant[9], + _aBX_= caml_call3 (Runtime_ocaml_Runtime[94], 2, enfant[5], prestations_familiales_dot_age$0), - _aiu_ = - caml_call2(Runtime_ocaml_Runtime[125], _ait_, date_courante), - _aiv_ = caml_call2(Runtime_ocaml_Runtime[83], _aiu_, _ais_); - switch(enfant[7][0]){ - case 0: - var _aiw_ = 0; break; - case 1: - var _aiw_ = 0; break; - default: var _aiw_ = 1; - } - var - _aix_ = caml_call2(Runtime_ocaml_Runtime[83], _aiw_, _aiv_); - } + _aBY_= + caml_call2(Runtime_ocaml_Runtime[125],_aBX_,date_courante), + _aBZ_=caml_call2(Runtime_ocaml_Runtime[83],_aBY_,_aBW_); + switch(enfant[7][0]) + {case 0:var _aB0_=0;break; + case 1:var _aB0_=0;break; + default:var _aB0_=1} + var _aB1_=caml_call2(Runtime_ocaml_Runtime[83],_aB0_,_aBZ_)} else - var _aix_ = 0; - switch(menage[9][0]){ - case 0: - var _aiy_ = 0; break; - case 1: - var _aiy_ = 0; break; - case 2: - var _aiy_ = 0; break; - case 3: - var _aiy_ = 0; break; - case 4: - var _aiy_ = 1; break; - case 5: - var _aiy_ = 1; break; - case 6: - var _aiy_ = 0; break; - case 7: - var _aiy_ = 0; break; - default: var _aiy_ = 0; - } - var - _aiz_ = caml_call2(Runtime_ocaml_Runtime[83], _aiy_, _aix_); - return caml_call2(Runtime_ocaml_Runtime[29], _I5_, _aiz_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _I6_, [0], _air_, _aiq_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _I7_, _aip_, _aio_, _ain_); - }]; + var _aB1_=0; + switch(menage[9][0]) + {case 0:var _aB2_=1;break; + case 1:var _aB2_=1;break; + case 2:var _aB2_=1;break; + case 3:var _aB2_=1;break; + case 4:var _aB2_=0;break; + case 5:var _aB2_=0;break; + case 6:var _aB2_=0;break; + case 7:var _aB2_=0;break; + default:var _aB2_=1} + var _aB3_=caml_call2(Runtime_ocaml_Runtime[83],_aB2_,_aB1_); + return caml_call2(Runtime_ocaml_Runtime[29],_UG_,_aB3_)} + var + _aBL_= + [0, + function(param) + {function _aBM_(param){return 0} + function _aBN_(param) + {if(0 === personne_a_charge[0]) + {var + enfant=personne_a_charge[1], + _aBO_=enfant[9], + _aBP_= + caml_call3 + (Runtime_ocaml_Runtime[94], + 2, + enfant[5], + prestations_familiales_dot_age$0), + _aBQ_= + caml_call2(Runtime_ocaml_Runtime[125],_aBP_,date_courante), + _aBR_=caml_call2(Runtime_ocaml_Runtime[83],_aBQ_,_aBO_); + switch(enfant[7][0]) + {case 0:var _aBS_=0;break; + case 1:var _aBS_=0;break; + default:var _aBS_=1} + var _aBT_=caml_call2(Runtime_ocaml_Runtime[83],_aBS_,_aBR_)} + else + var _aBT_=0; + switch(menage[9][0]) + {case 0:var _aBU_=0;break; + case 1:var _aBU_=0;break; + case 2:var _aBU_=0;break; + case 3:var _aBU_=0;break; + case 4:var _aBU_=1;break; + case 5:var _aBU_=1;break; + case 6:var _aBU_=0;break; + case 7:var _aBU_=0;break; + default:var _aBU_=0} + var _aBV_=caml_call2(Runtime_ocaml_Runtime[83],_aBU_,_aBT_); + return caml_call2(Runtime_ocaml_Runtime[29],_UH_,_aBV_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_UI_,[0],_aBN_,_aBM_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_UJ_,_aBL_,_aBK_,_aBJ_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_UK_,_aBI_,_aBH_,_aBG_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_UL_,_aBF_,_aBE_,_aBD_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_UM_,_aBC_,_aBB_,_aBA_)}, + _aBk_= + [0, + function(param) + {function _aBn_(param){return 1} + function _aBo_(param) + {var + _aBw_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _UN_, + embed_personne_a_charge, + personne_a_charge), + _aBx_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_UO_,condition_2_r823_4), + _aBw_), + _aBy_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _UP_, + Runtime_ocaml_Runtime[12], + _aBx_), + _aBz_=caml_call2(Runtime_ocaml_Runtime[27],_UQ_,_aBy_); + return caml_call2(Runtime_ocaml_Runtime[29],_UR_,_aBz_)} + var + _aBp_= + [0, + function(param) + {function _aBq_(param){return 1} + function _aBr_(param) + {if(0 === personne_a_charge[0]) + var _aBs_=0; + else + var + parent=personne_a_charge[1], + _aBt_=caml_call1(Runtime_ocaml_Runtime[39],cst_1_25$0), + _aBu_= + caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_individuel_l815_9_secu, + _aBt_), + _aBv_=caml_call2(Runtime_ocaml_Runtime[118],parent[2],_aBu_), + _aBs_=caml_call2(Runtime_ocaml_Runtime[83],parent[5],_aBv_); + return caml_call2(Runtime_ocaml_Runtime[29],_US_,_aBs_)} return caml_call4 - (Runtime_ocaml_Runtime[63], _I8_, _aim_, _ail_, _aik_); - }]; + (Runtime_ocaml_Runtime[63],_UT_,[0],_aBr_,_aBq_)}]; return caml_call4 - (Runtime_ocaml_Runtime[63], _I9_, _aij_, _aii_, _aih_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _I__, _aig_, _aif_, _aie_); - }, - _ah0_ = - [0, - function(param){ - function _ah3_(param){return 1;} - function _ah4_(param){ + (Runtime_ocaml_Runtime[63],_UU_,_aBp_,_aBo_,_aBn_)}, + _aBj_], + _aBl_=caml_call4(Runtime_ocaml_Runtime[63],_UV_,_aBk_,_aBi_,_aBh_); + return _aBl_} + catch(_aBm_) + {_aBm_ = caml_wrap_exception(_aBm_); + if(_aBm_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Uw_]; + throw _aBm_}} + var + prise_en_compte_personne_a_cha= + caml_call3 + (Runtime_ocaml_Runtime[28],_UW_,Runtime_ocaml_Runtime[10],_aAM_); + try + {var + _aAN_= + function(param) + {var _aBc_=menage[3]; + function _aBd_(personne_a_charge) + {var + _aBe_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _UY_, + embed_personne_a_charge, + personne_a_charge), + _aBf_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _UZ_, + prise_en_compte_personne_a_cha), + _aBe_), + _aBg_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _U0_, + Runtime_ocaml_Runtime[12], + _aBf_); + return caml_call2(Runtime_ocaml_Runtime[27],_U1_,_aBg_)} + return caml_call2(Runtime_ocaml_Runtime[90],_aBd_,_aBc_)}, + _aAO_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_U2_,1)}, + _aAP_=caml_call4(Runtime_ocaml_Runtime[63],_U3_,[0],_aAO_,_aAN_)} + catch(_aBb_) + {_aBb_ = caml_wrap_exception(_aBb_); + if(_aBb_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_UX_]; + throw _aBb_} + var + _aAQ_=caml_call1(Runtime_ocaml_Runtime[18],embed_personne_a_charge), + personnes_a_charge_prises_en_c= + caml_call3(Runtime_ocaml_Runtime[28],_U4_,_aAQ_,_aAP_); + try + {var + _aAR_= + function(param) + {function _aA9_(personne_a_charge) + {if(0 !== personne_a_charge[0])return 0; + var enfant=personne_a_charge[1]; + return 0 === enfant[8][0]?0:1} var - _aia_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _I$_, - embed_personne_a_charge, - personne_a_charge), - _aib_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _Ja_, condition_2_r823_4), - _aia_), - _aic_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jb_, - Runtime_ocaml_Runtime[12], - _aib_), - _aid_ = caml_call2(Runtime_ocaml_Runtime[27], _Jc_, _aic_); - return caml_call2(Runtime_ocaml_Runtime[29], _Jd_, _aid_); - } - var - _ah5_ = - [0, - function(param){ - function _ah6_(param){return 1;} - function _ah7_(param){ - if(0 === personne_a_charge[0]) - var _ah8_ = 0; - else - var - parent = personne_a_charge[1], - _ah9_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1_25$0), - _ah__ = - caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_individuel_l815_9_secu, - _ah9_), - _ah$_ = - caml_call2(Runtime_ocaml_Runtime[118], parent[2], _ah__), - _ah8_ = - caml_call2(Runtime_ocaml_Runtime[83], parent[5], _ah$_); - return caml_call2(Runtime_ocaml_Runtime[29], _Je_, _ah8_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Jf_, [0], _ah7_, _ah6_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Jg_, _ah5_, _ah4_, _ah3_); - }, - _ahZ_], - _ah1_ = - caml_call4(Runtime_ocaml_Runtime[63], _Jh_, _ah0_, _ahY_, _ahX_); - return _ah1_; - } - catch(_ah2_){ - var _ahW_ = caml_wrap_exception(_ah2_); - if(_ahW_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _IU_], 1); - throw caml_maybe_attach_backtrace(_ahW_, 0); - } - } - var - prise_en_compte_personne_a_cha = - caml_call3 - (Runtime_ocaml_Runtime[28], _Ji_, Runtime_ocaml_Runtime[10], _ahk_); - try{ - var - _ahm_ = - function(param){ - var _ahR_ = menage[3]; - function _ahS_(personne_a_charge){ - var - _ahT_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jk_, - embed_personne_a_charge, - personne_a_charge), - _ahU_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Jl_, - prise_en_compte_personne_a_cha), - _ahT_), - _ahV_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jm_, - Runtime_ocaml_Runtime[12], - _ahU_); - return caml_call2(Runtime_ocaml_Runtime[27], _Jn_, _ahV_); - } - return caml_call2(Runtime_ocaml_Runtime[90], _ahS_, _ahR_); - }, - _ahn_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Jo_, 1); - }, - _aho_ = caml_call4(Runtime_ocaml_Runtime[63], _Jp_, [0], _ahn_, _ahm_); - } - catch(_ahQ_){ - var _ahl_ = caml_wrap_exception(_ahQ_); - if(_ahl_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Jj_], 1); - throw caml_maybe_attach_backtrace(_ahl_, 0); - } - var - _ahp_ = caml_call1(Runtime_ocaml_Runtime[18], embed_personne_a_charge), - personnes_a_charge_prises_en_c = - caml_call3(Runtime_ocaml_Runtime[28], _Jq_, _ahp_, _aho_); - try{ - var - _ahr_ = - function(param){ - function _ahN_(personne_a_charge){ - if(0 !== personne_a_charge[0]) return 0; - var enfant = personne_a_charge[1]; - return 0 === enfant[8][0] ? 0 : 1; - } - var - _ahO_ = - caml_call2 - (Runtime_ocaml_Runtime[90], - _ahN_, - personnes_a_charge_prises_en_c); - function _ahP_(personne_a_charge){ - if(0 !== personne_a_charge[0]) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$346); - var enfant = personne_a_charge[1], match = enfant[8]; - if(0 === match[0]) - return caml_call1(Runtime_ocaml_Runtime[39], cst_0$345); - var coeff = match[1]; - return coeff; - } - return caml_call2(Runtime_ocaml_Runtime[87], _ahP_, _ahO_); - }, - _ahs_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Js_, 1); - }, - _aht_ = caml_call4(Runtime_ocaml_Runtime[63], _Jt_, [0], _ahs_, _ahr_); - } - catch(_ahM_){ - var _ahq_ = caml_wrap_exception(_ahM_); - if(_ahq_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Jr_], 1); - throw caml_maybe_attach_backtrace(_ahq_, 0); - } - var - _ahu_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte = - caml_call3(Runtime_ocaml_Runtime[28], _Ju_, _ahu_, _aht_); - try{ - var - _ahw_ = - function(param){ - return caml_call1 - (Runtime_ocaml_Runtime[68], personnes_a_charge_prises_en_c); - }, - _ahx_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Jw_, 1); - }, - _ahy_ = caml_call4(Runtime_ocaml_Runtime[63], _Jx_, [0], _ahx_, _ahw_); - } - catch(_ahL_){ - var _ahv_ = caml_wrap_exception(_ahL_); - if(_ahv_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Jv_], 1); - throw caml_maybe_attach_backtrace(_ahv_, 0); - } - var - nombre_personnes_a_charge_pris = - caml_call3 - (Runtime_ocaml_Runtime[28], _Jy_, Runtime_ocaml_Runtime[14], _ahy_); - try{ - var - _ahA_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2), - _ahB_ = - caml_call2 - (Runtime_ocaml_Runtime[112], seuil_l822_3_parts_usufruit, _ahA_); - } - catch(_ahK_){ - var _ahz_ = caml_wrap_exception(_ahK_); - if(_ahz_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Jz_], 1); - throw caml_maybe_attach_backtrace(_ahz_, 0); - } - if(! _ahB_) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _JE_], 1); - try{ - var - _ahD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2$0), - _ahE_ = - caml_call2 - (Runtime_ocaml_Runtime[112], seuil_l822_3_parts_propriete, _ahD_); - } - catch(_ahJ_){ - var _ahC_ = caml_wrap_exception(_ahJ_); - if(_ahC_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _JA_], 1); - throw caml_maybe_attach_backtrace(_ahC_, 0); - } - if(! _ahE_) - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _JD_], 1); - try{ - var - _ahG_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 4, 1), - _ahH_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ahG_); - } - catch(_ahI_){ - var _ahF_ = caml_wrap_exception(_ahI_); - if(_ahF_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _JB_], 1); - throw caml_maybe_attach_backtrace(_ahF_, 0); - } - if(_ahH_) - return [0, - date_courante, - eligibilite, - nombre_personnes_a_charge_pris, - coefficents_enfants_garde_alte, - condition_2_r823_4]; - throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _JC_], 1); - } - function calcul_allocation_logement(calcul_allocation_logement_in){ - var - mode_occupation = calcul_allocation_logement_in[1], - ressources_menage_sans_arrondi = calcul_allocation_logement_in[2], - situation_familiale = calcul_allocation_logement_in[3], - nombre_personnes_a_charge = calcul_allocation_logement_in[4], - zone = calcul_allocation_logement_in[5], - date_courante = calcul_allocation_logement_in[6], - type_aide = calcul_allocation_logement_in[7], - residence = calcul_allocation_logement_in[8]; - try{ - var - _ad3_ = - function(param){ - switch(mode_occupation[0]){ - case 0: - var location = mode_occupation[1]; return [0, location]; - case 1: - var logementfoyer = mode_occupation[1]; return [2, logementfoyer]; - case 2: - var proprietaire = mode_occupation[1]; return [1, proprietaire]; - case 3: - var location$0 = mode_occupation[1]; return [0, location$0]; - default: - var proprietaire$0 = mode_occupation[1]; - return [1, proprietaire$0]; - } - }, - _ad4_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _JG_, 1); - }, - _ad5_ = caml_call4(Runtime_ocaml_Runtime[63], _JH_, [0], _ad4_, _ad3_); - } - catch(_afg_){ - var _ad2_ = caml_wrap_exception(_afg_); - if(_ad2_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _JF_], 1); - throw caml_maybe_attach_backtrace(_ad2_, 0); - } - var - categorie_calcul_apl = - caml_call3 - (Runtime_ocaml_Runtime[28], _JI_, embed_categorie_calcul_a_p_l, _ad5_); - try{ - var - _ad7_ = - function(param){ - return arrondi_centaine_superieure(ressources_menage_sans_arrondi); - }, - _ad8_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _JK_, 1); - }, - _ad9_ = caml_call4(Runtime_ocaml_Runtime[63], _JL_, [0], _ad8_, _ad7_); - } - catch(_aff_){ - var _ad6_ = caml_wrap_exception(_aff_); - if(_ad6_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _JJ_], 1); - throw caml_maybe_attach_backtrace(_ad6_, 0); - } - var - ressources_menage_avec_arrondi = - caml_call3 - (Runtime_ocaml_Runtime[28], _JM_, Runtime_ocaml_Runtime[13], _ad9_); - try{ - var - _ad$_ = - function(param){ - switch(situation_familiale[0]){ - case 0: - return _JO_; - case 1: - return _JP_; - case 2: - return _JQ_; - case 3: - return _JR_; - case 4: - return _JS_; - default: return _JT_; - } - }, - _aea_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _JU_, 1); - }, - _aeb_ = caml_call4(Runtime_ocaml_Runtime[63], _JV_, [0], _aea_, _ad$_); - } - catch(_afe_){ - var _ad__ = caml_wrap_exception(_afe_); - if(_ad__ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _JN_], 1); - throw caml_maybe_attach_backtrace(_ad__, 0); - } - var - situation_familiale_calcul_apl = - caml_call3 - (Runtime_ocaml_Runtime[28], - _JW_, - embed_situation_familiale_calc, - _aeb_); - try{ - var - _aed_ = - function(param){ - switch(categorie_calcul_apl[0]){ - case 0: - var - location = categorie_calcul_apl[1], - _aeT_ = location[8], - _aeU_ = location[7]; - try{ - var match = location[1]; - switch(match[0]){ - case 0: - var bailleur = match[1], _aeW_ = bailleur[2]; break; - case 1: - var _aeW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$347); - break; - default: - var _aeW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$348); - } - } - catch(_afa_){ - var _aeV_ = caml_wrap_exception(_afa_); - if(_aeV_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _JY_], 1); - throw caml_maybe_attach_backtrace(_aeV_, 0); - } - var - _aeX_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _JZ_, - embed_calcul_allocation_logeme$3, - [0, - location[2], - ressources_menage_avec_arrondi, - location[3], - date_courante, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - location[4], - location[6], - type_aide, - location[5], - _aeW_, - _aeU_, - residence, - _aeT_]), - result = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _J0_, - calcul_allocation_logement_loc), - _aeX_), - _aeY_ = - function(param0){ - var - _ae9_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _J1_, - Runtime_ocaml_Runtime[13], - param0), - _ae__ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _J2_, result[2]), - _ae9_), - _ae$_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _J3_, - Runtime_ocaml_Runtime[13], - _ae__); - return caml_call2(Runtime_ocaml_Runtime[27], _J4_, _ae$_); - }, - result$0 = [0, result[1], _aeY_]; - caml_call2(Runtime_ocaml_Runtime[29], _J5_, 1); - var - _aeZ_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _J6_, - embed_calcul_allocation_logeme, - result$0), - traitement_formule = - caml_call2(Runtime_ocaml_Runtime[27], _J7_, _aeZ_); - return [0, traitement_formule[1], traitement_formule[2]]; - case 1: - var - proprietaire = categorie_calcul_apl[1], - _ae0_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _J8_, - embed_calcul_allocation_logeme$4, - [0, - ressources_menage_avec_arrondi, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - residence, - date_courante, - proprietaire[1], - proprietaire[8], - proprietaire[10][2], - proprietaire[5], - proprietaire[6], - proprietaire[3], - proprietaire[2], - proprietaire[7], - proprietaire[11]]), - result$1 = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _J9_, - calcul_allocation_logement_acc), - _ae0_), - _ae1_ = - function(param0){ - var - _ae6_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _J__, - Runtime_ocaml_Runtime[13], - param0), - _ae7_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _J$_, result$1[5]), - _ae6_), - _ae8_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ka_, - Runtime_ocaml_Runtime[13], - _ae7_); - return caml_call2(Runtime_ocaml_Runtime[27], _Kb_, _ae8_); - }, - result$2 = - [0, result$1[1], result$1[2], result$1[3], result$1[4], _ae1_]; - caml_call2(Runtime_ocaml_Runtime[29], _Kc_, 1); - var - _ae2_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kd_, - embed_calcul_allocation_logeme$0, - result$2), - traitement_formule$0 = - caml_call2(Runtime_ocaml_Runtime[27], _Ke_, _ae2_); - return [0, traitement_formule$0[4], traitement_formule$0[5]]; - default: - var - logement_foyer = categorie_calcul_apl[1], - _ae3_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kf_, - embed_calcul_allocation_logeme$5, - [0, - logement_foyer[1], - logement_foyer[5], - residence, - logement_foyer[7], - ressources_menage_avec_arrondi, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - date_courante, - logement_foyer[8]]), - result$3 = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Kg_, - calcul_allocation_logement_foy), - _ae3_), - _ae4_ = - function(param0){ - var - _afb_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kh_, - Runtime_ocaml_Runtime[13], - param0), - _afc_ = - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _Ki_, result$3[6]), - _afb_), - _afd_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kj_, - Runtime_ocaml_Runtime[13], - _afc_); - return caml_call2(Runtime_ocaml_Runtime[27], _Kk_, _afd_); - }, - result$4 = - [0, - result$3[1], - result$3[2], - result$3[3], - result$3[4], - result$3[5], - _ae4_]; - caml_call2(Runtime_ocaml_Runtime[29], _Kl_, 1); - var - _ae5_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Km_, - embed_calcul_allocation_logeme$1, - result$4), - traitement_formule$1 = - caml_call2(Runtime_ocaml_Runtime[27], _Kn_, _ae5_); - return [0, traitement_formule$1[5], traitement_formule$1[6]]; - } - }, - _aee_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ko_, 1); - }, - _aef_ = - [0, - function(param){ - function _aeG_(param){ - switch(categorie_calcul_apl[0]){ - case 0: - return [0, - caml_call1(Runtime_ocaml_Runtime[31], cst_0$349), - traitement_nul_tout_le_temps]; - case 1: - return [0, - caml_call1(Runtime_ocaml_Runtime[31], cst_0$350), - traitement_nul_tout_le_temps]; - default: - var - logement_foyer = categorie_calcul_apl[1], - _aeJ_ = logement_foyer[10]; - try{ - var _aeL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$351); - } - catch(_aeS_){ - var _aeK_ = caml_wrap_exception(_aeS_); - if(_aeK_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Kq_], 1); - throw caml_maybe_attach_backtrace(_aeK_, 0); - } - var - _aeM_ = + _aA__= + caml_call2 + (Runtime_ocaml_Runtime[90], + _aA9_, + personnes_a_charge_prises_en_c); + function _aA$_(personne_a_charge) + {if(0 !== personne_a_charge[0]) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$414); + var enfant=personne_a_charge[1],_aBa_=enfant[8]; + if(0 === _aBa_[0]) + return caml_call1(Runtime_ocaml_Runtime[39],cst_0$413); + var coeff=_aBa_[1]; + return coeff} + return caml_call2(Runtime_ocaml_Runtime[87],_aA$_,_aA__)}, + _aAS_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_U6_,1)}, + _aAT_=caml_call4(Runtime_ocaml_Runtime[63],_U7_,[0],_aAS_,_aAR_)} + catch(_aA8_) + {_aA8_ = caml_wrap_exception(_aA8_); + if(_aA8_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_U5_]; + throw _aA8_} + var + _aAU_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte= + caml_call3(Runtime_ocaml_Runtime[28],_U8_,_aAU_,_aAT_); + try + {var + _aAV_= + function(param) + {return caml_call1 + (Runtime_ocaml_Runtime[68],personnes_a_charge_prises_en_c)}, + _aAW_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_U__,1)}, + _aAX_=caml_call4(Runtime_ocaml_Runtime[63],_U$_,[0],_aAW_,_aAV_)} + catch(_aA7_) + {_aA7_ = caml_wrap_exception(_aA7_); + if(_aA7_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_U9_]; + throw _aA7_} + var + nombre_personnes_a_charge_pris= + caml_call3 + (Runtime_ocaml_Runtime[28],_Va_,Runtime_ocaml_Runtime[14],_aAX_); + try + {var + _aAY_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2), + _aAZ_= + caml_call2 + (Runtime_ocaml_Runtime[112],seuil_l822_3_parts_usufruit,_aAY_)} + catch(_aA6_) + {_aA6_ = caml_wrap_exception(_aA6_); + if(_aA6_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Vb_]; + throw _aA6_} + if(! _aAZ_)throw [0,Runtime_ocaml_Runtime[3],_Vg_]; + try + {var + _aA0_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2$0), + _aA1_= + caml_call2 + (Runtime_ocaml_Runtime[112],seuil_l822_3_parts_propriete,_aA0_)} + catch(_aA5_) + {_aA5_ = caml_wrap_exception(_aA5_); + if(_aA5_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Vc_]; + throw _aA5_} + if(! _aA1_)throw [0,Runtime_ocaml_Runtime[3],_Vf_]; + try + {var + _aA2_=caml_call3(Runtime_ocaml_Runtime[57],2018,4,1), + _aA3_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aA2_)} + catch(_aA4_) + {_aA4_ = caml_wrap_exception(_aA4_); + if(_aA4_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Vd_]; + throw _aA4_} + if(_aA3_) + return [0, + date_courante, + eligibilite, + nombre_personnes_a_charge_pris, + coefficents_enfants_garde_alte, + condition_2_r823_4]; + throw [0,Runtime_ocaml_Runtime[3],_Ve_]} + function calcul_allocation_logement(calcul_allocation_logement_in) + {var + mode_occupation=calcul_allocation_logement_in[1], + ressources_menage_sans_arrondi=calcul_allocation_logement_in[2], + situation_familiale=calcul_allocation_logement_in[3], + nombre_personnes_a_charge=calcul_allocation_logement_in[4], + zone=calcul_allocation_logement_in[5], + date_courante=calcul_allocation_logement_in[6], + type_aide=calcul_allocation_logement_in[7], + residence=calcul_allocation_logement_in[8]; + try + {var + _ax0_= + function(param) + {switch(mode_occupation[0]) + {case 0:var location=mode_occupation[1];return [0,location]; + case 1: + var logementfoyer=mode_occupation[1];return [2,logementfoyer]; + case 2: + var proprietaire=mode_occupation[1];return [1,proprietaire]; + case 3:var location$0=mode_occupation[1];return [0,location$0]; + default: + var proprietaire$0=mode_occupation[1];return [1,proprietaire$0]}}, + _ax1_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Vi_,1)}, + _ax2_=caml_call4(Runtime_ocaml_Runtime[63],_Vj_,[0],_ax1_,_ax0_)} + catch(_ay9_) + {_ay9_ = caml_wrap_exception(_ay9_); + if(_ay9_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Vh_]; + throw _ay9_} + var + categorie_calcul_apl= + caml_call3 + (Runtime_ocaml_Runtime[28],_Vk_,embed_categorie_calcul_a_p_l,_ax2_); + try + {var + _ax3_= + function(param) + {return arrondi_centaine_superieure(ressources_menage_sans_arrondi)}, + _ax4_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Vm_,1)}, + _ax5_=caml_call4(Runtime_ocaml_Runtime[63],_Vn_,[0],_ax4_,_ax3_)} + catch(_ay8_) + {_ay8_ = caml_wrap_exception(_ay8_); + if(_ay8_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Vl_]; + throw _ay8_} + var + ressources_menage_avec_arrondi= + caml_call3 + (Runtime_ocaml_Runtime[28],_Vo_,Runtime_ocaml_Runtime[13],_ax5_); + try + {var + _ax6_= + function(param) + {switch(situation_familiale[0]) + {case 0:return _Vq_; + case 1:return _Vr_; + case 2:return _Vs_; + case 3:return _Vt_; + case 4:return _Vu_; + default:return _Vv_}}, + _ax7_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Vw_,1)}, + _ax8_=caml_call4(Runtime_ocaml_Runtime[63],_Vx_,[0],_ax7_,_ax6_)} + catch(_ay7_) + {_ay7_ = caml_wrap_exception(_ay7_); + if(_ay7_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Vp_]; + throw _ay7_} + var + situation_familiale_calcul_apl= + caml_call3 + (Runtime_ocaml_Runtime[28],_Vy_,embed_situation_familiale_calc,_ax8_); + try + {var + _ax9_= + function(param) + {switch(categorie_calcul_apl[0]) + {case 0: + var + location=categorie_calcul_apl[1], + _ayK_=location[8], + _ayL_=location[7]; + try + {var _ayM_=location[1]; + switch(_ayM_[0]) + {case 0:var bailleur=_ayM_[1],_ayN_=bailleur[2];break; + case 1: + var _ayN_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$415); + break; + default: + var _ayN_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$416)}} + catch(_ay3_) + {_ay3_ = caml_wrap_exception(_ay3_); + if(_ay3_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_VA_]; + throw _ay3_} + var + _ayO_= caml_call3 (Runtime_ocaml_Runtime[28], - _Kr_, + _VB_, embed_calcul_allocation_logeme$3, [0, - logement_foyer[7], + location[2], ressources_menage_avec_arrondi, - logement_foyer[9], + location[3], date_courante, nombre_personnes_a_charge, situation_familiale_calcul_apl, zone, - 1, - 0, + location[4], + location[6], type_aide, - 0, - _aeL_, - _aeJ_, + location[5], + _ayN_, + _ayL_, residence, - _Kp_]), - result = + _ayK_]), + result= caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _Ks_, + _VC_, calcul_allocation_logement_loc), - _aeM_), - _aeN_ = - function(param0){ - var - _aeP_ = + _ayO_), + _ayP_= + function(param0) + {var + _ay0_= caml_call3 (Runtime_ocaml_Runtime[28], - _Kt_, + _VD_, Runtime_ocaml_Runtime[13], param0), - _aeQ_ = + _ay1_= caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26], _Ku_, result[2]), - _aeP_), - _aeR_ = + (caml_call2(Runtime_ocaml_Runtime[26],_VE_,result[2]),_ay0_), + _ay2_= caml_call3 (Runtime_ocaml_Runtime[28], - _Kv_, + _VF_, Runtime_ocaml_Runtime[13], - _aeQ_); - return caml_call2(Runtime_ocaml_Runtime[27], _Kw_, _aeR_); - }, - result$0 = [0, result[1], _aeN_]; - caml_call2(Runtime_ocaml_Runtime[29], _Kx_, 1); - var - _aeO_ = + _ay1_); + return caml_call2(Runtime_ocaml_Runtime[27],_VG_,_ay2_)}, + result$0=[0,result[1],_ayP_]; + caml_call2(Runtime_ocaml_Runtime[29],_VH_,1); + var + _ayQ_= caml_call3 (Runtime_ocaml_Runtime[28], - _Ky_, + _VI_, embed_calcul_allocation_logeme, result$0), - traitement_formule = - caml_call2(Runtime_ocaml_Runtime[27], _Kz_, _aeO_); - return [0, traitement_formule[1], traitement_formule[2]]; - } - } - function _aeH_(param){ - switch(residence[0]){ - case 0: - var _aeI_ = 0; break; - case 1: - var _aeI_ = 0; break; - case 2: - var _aeI_ = 0; break; - case 3: - var _aeI_ = 0; break; - case 4: - var _aeI_ = 0; break; - case 5: - var _aeI_ = 0; break; - case 6: - var _aeI_ = 0; break; - case 7: - var _aeI_ = 1; break; - default: var _aeI_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _KA_, _aeI_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _KB_, [0], _aeH_, _aeG_); - }], - _aeg_ = caml_call4(Runtime_ocaml_Runtime[63], _KC_, _aef_, _aee_, _aed_); - } - catch(_aeF_){ - var _aec_ = caml_wrap_exception(_aeF_); - if(_aec_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _JX_], 1); - throw caml_maybe_attach_backtrace(_aec_, 0); - } - var - sous_calcul_traitement = - caml_call3 - (Runtime_ocaml_Runtime[28], - _KD_, - embed_traitement_formule_aide_, - _aeg_); - function _aeh_(arg){ - try{ - var - _aeB_ = - function(param){return caml_call1(sous_calcul_traitement[2], arg);}, - _aeC_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _KF_, 1); - }, - _aeD_ = caml_call4(Runtime_ocaml_Runtime[63], _KG_, [0], _aeC_, _aeB_); - return _aeD_; - } - catch(_aeE_){ - var _aeA_ = caml_wrap_exception(_aeE_); - if(_aeA_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _KE_], 1); - throw caml_maybe_attach_backtrace(_aeA_, 0); - } - } - var - traitement_aide_finale = - caml_call3 - (Runtime_ocaml_Runtime[28], _KH_, Runtime_ocaml_Runtime[10], _aeh_); - try{ - var - _aej_ = function(param){return sous_calcul_traitement[1];}, - _aek_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _KJ_, 1); - }, - _ael_ = - [0, - function(param){ - function _aeo_(param){ - var - _aeu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_8$0), - _aev_ = caml_call1(Runtime_ocaml_Runtime[74], date_courante), - _aew_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2026), - _aex_ = caml_call2(Runtime_ocaml_Runtime[96], _aew_, _aev_), - _aey_ = caml_call1(Runtime_ocaml_Runtime[69], _aex_), - _aez_ = caml_call2(Runtime_ocaml_Runtime[107], _aey_, _aeu_); - return caml_call2 - (Runtime_ocaml_Runtime[104], - sous_calcul_traitement[1], - _aez_); - } - function _aep_(param){ - var - _aeq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _aer_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aeq_); - switch(residence[0]){ - case 0: - var _aes_ = 0; break; - case 1: - var _aes_ = 0; break; - case 2: - var _aes_ = 0; break; - case 3: - var _aes_ = 0; break; - case 4: - var _aes_ = 0; break; - case 5: - var _aes_ = 0; break; - case 6: - var _aes_ = 0; break; - case 7: - var _aes_ = 1; break; - default: var _aes_ = 0; - } - var _aet_ = caml_call2(Runtime_ocaml_Runtime[83], _aes_, _aer_); - return caml_call2(Runtime_ocaml_Runtime[29], _KK_, _aet_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _KL_, [0], _aep_, _aeo_); - }], - _aem_ = caml_call4(Runtime_ocaml_Runtime[63], _KM_, _ael_, _aek_, _aej_); - } - catch(_aen_){ - var _aei_ = caml_wrap_exception(_aen_); - if(_aei_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _KI_], 1); - throw caml_maybe_attach_backtrace(_aei_, 0); - } - var - aide_finale_formule = - caml_call3 - (Runtime_ocaml_Runtime[28], _KN_, Runtime_ocaml_Runtime[13], _aem_); - return [0, aide_finale_formule, traitement_aide_finale]; - } - function eligibilite_prime_de_demenagem(eligibilite_prime_de_demenagem){ - var - informations = eligibilite_prime_de_demenagem[1], - date_emmenagement = eligibilite_prime_de_demenagem[2], - menage = eligibilite_prime_de_demenagem[3], - demandeur = eligibilite_prime_de_demenagem[4], - date_courante = eligibilite_prime_de_demenagem[5], - depenses_justifiees_reellement = eligibilite_prime_de_demenagem[6]; - try{ - var - _ab__ = - function(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 0, 6, 0); - }, - _ab$_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _KP_, 1); - }, - _aca_ = caml_call4(Runtime_ocaml_Runtime[63], _KQ_, [0], _ab$_, _ab__); - } - catch(_ad1_){ - var _ab9_ = caml_wrap_exception(_ad1_); - if(_ab9_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _KO_], 1); - throw caml_maybe_attach_backtrace(_ab9_, 0); - } - var - delai_apres_emmenagement_l823_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _KR_, Runtime_ocaml_Runtime[17], _aca_); - try{ - var - _acc_ = function(param){return 0;}, - _acd_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _KT_, 1); - }, - _ace_ = - [0, - function(param){ - function _adR_(param){return 1;} - function _adS_(param){ - var - _adT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$98), - _adU_ = informations[1], - _adV_ = menage[3]; - function _adW_(personne_a_charge){ - return 0 === personne_a_charge[0] ? 1 : 0; - } - var - _adX_ = caml_call2(Runtime_ocaml_Runtime[90], _adW_, _adV_), - _adY_ = caml_call1(Runtime_ocaml_Runtime[68], _adX_), - _adZ_ = caml_call2(Runtime_ocaml_Runtime[91], _adY_, _adU_), - _ad0_ = caml_call2(Runtime_ocaml_Runtime[126], _adZ_, _adT_); - return caml_call2(Runtime_ocaml_Runtime[29], _KU_, _ad0_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _KV_, [0], _adS_, _adR_); - }], - _acf_ = caml_call4(Runtime_ocaml_Runtime[63], _KW_, _ace_, _acd_, _acc_); - } - catch(_adQ_){ - var _acb_ = caml_wrap_exception(_adQ_); - if(_acb_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _KS_], 1); - throw caml_maybe_attach_backtrace(_acb_, 0); - } - var - condition_rang_enfant = - caml_call3 - (Runtime_ocaml_Runtime[28], _KX_, Runtime_ocaml_Runtime[12], _acf_); - try{ - var - _ach_ = function(param){return date_courante;}, - _aci_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _KZ_, 1); - }, - _acj_ = caml_call4(Runtime_ocaml_Runtime[63], _K0_, [0], _aci_, _ach_), - base_mensuelle_allocations_fam$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _K1_, Runtime_ocaml_Runtime[16], _acj_); - } - catch(_adP_){ - var _acg_ = caml_wrap_exception(_adP_); - if(_acg_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _KY_], 1); - throw caml_maybe_attach_backtrace(_acg_, 0); - } - var - _ack_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _K2_, base_mensuelle_allocations_fam), - [0, base_mensuelle_allocations_fam$0]), - result = caml_call2(Runtime_ocaml_Runtime[27], _K3_, _ack_), - base_mensuelle_allocations_fam$1 = result[1]; - try{ - var - _acm_ = function(param){return menage;}, - _acn_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _K5_, 1); - }, - _aco_ = caml_call4(Runtime_ocaml_Runtime[63], _K6_, [0], _acn_, _acm_), - eligibilite_apl_dot_menage = - caml_call3(Runtime_ocaml_Runtime[28], _K7_, embed_menage, _aco_); - } - catch(_adO_){ - var _acl_ = caml_wrap_exception(_adO_); - if(_acl_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _K4_], 1); - throw caml_maybe_attach_backtrace(_acl_, 0); - } - try{ - var - _acq_ = function(param){return demandeur;}, - _acr_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _K9_, 1); - }, - _acs_ = caml_call4(Runtime_ocaml_Runtime[63], _K__, [0], _acr_, _acq_), - eligibilite_apl_dot_demandeur = - caml_call3(Runtime_ocaml_Runtime[28], _K$_, embed_demandeur, _acs_); - } - catch(_adN_){ - var _acp_ = caml_wrap_exception(_adN_); - if(_acp_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _K8_], 1); - throw caml_maybe_attach_backtrace(_acp_, 0); - } - try{ - var - _acu_ = function(param){return date_courante;}, - _acv_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Lb_, 1); - }, - _acw_ = caml_call4(Runtime_ocaml_Runtime[63], _Lc_, [0], _acv_, _acu_), - eligibilite_apl_dot_date_coura = - caml_call3 - (Runtime_ocaml_Runtime[28], _Ld_, Runtime_ocaml_Runtime[16], _acw_); - } - catch(_adM_){ - var _act_ = caml_wrap_exception(_adM_); - if(_act_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _La_], 1); - throw caml_maybe_attach_backtrace(_act_, 0); - } - function eligibilite_apl_dot_condition_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function eligibilite_apl_dot_condition_$0(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function eligibilite_apl_dot_date_entre(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - var - _acx_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _Le_, eligibilite_aides_personnelle_), - [0, - eligibilite_apl_dot_menage, - eligibilite_apl_dot_demandeur, - eligibilite_apl_dot_date_coura, - eligibilite_apl_dot_condition_, - eligibilite_apl_dot_condition_$0, - eligibilite_apl_dot_date_entre]), - result$0 = caml_call2(Runtime_ocaml_Runtime[27], _Lf_, _acx_), - eligibilite_apl_dot_date_coura$0 = result$0[1], - eligibilite_apl_dot_eligibilit = result$0[2]; - try{ - var - _acz_ = function(param){return 0;}, - _acA_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Lh_, 1); - }, - _acB_ = - [0, - function(param){ - function _adD_(param){return 1;} - function _adE_(param){ - var match = informations[2]; - if(0 === match[0]) - var _adF_ = 0; - else{ - var date_naissance_ou_grossesse = match[1]; - switch(date_naissance_ou_grossesse[0]){ - case 0: + traitement_formule= + caml_call2(Runtime_ocaml_Runtime[27],_VJ_,_ayQ_); + return [0,traitement_formule[1],traitement_formule[2]]; + case 1: var - date_naissance = date_naissance_ou_grossesse[1], - _adG_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 0, -1), - _adH_ = caml_call3(Runtime_ocaml_Runtime[60], 2, 0, 0), - _adI_ = - caml_call3 - (Runtime_ocaml_Runtime[94], 2, date_naissance, _adH_), - _adJ_ = caml_call1(Runtime_ocaml_Runtime[75], _adI_), - _adK_ = caml_call3(Runtime_ocaml_Runtime[94], 2, _adJ_, _adG_), - _adL_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _adK_); - break; - case 1: - var _adL_ = 0; break; - default: var _adL_ = 1; - } - var _adF_ = _adL_; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Li_, _adF_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Lj_, [0], _adE_, _adD_); - }], - _acC_ = caml_call4(Runtime_ocaml_Runtime[63], _Lk_, _acB_, _acA_, _acz_); - } - catch(_adC_){ - var _acy_ = caml_wrap_exception(_adC_); - if(_acy_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Lg_], 1); - throw caml_maybe_attach_backtrace(_acy_, 0); - } - var - condition_periode_demenagement = - caml_call3 - (Runtime_ocaml_Runtime[28], _Ll_, Runtime_ocaml_Runtime[12], _acC_); - try{ - var - _acE_ = - function(param){ - var - _adl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$99), - _adm_ = menage[3]; - function _adn_(personne_a_charge){ - return 0 === personne_a_charge[0] ? 1 : 0; - } - var - _ado_ = caml_call2(Runtime_ocaml_Runtime[90], _adn_, _adm_), - _adp_ = caml_call1(Runtime_ocaml_Runtime[68], _ado_); - if(caml_call2(Runtime_ocaml_Runtime[121], _adp_, _adl_)) - var - _adq_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2$1), - _adr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$100), - _ads_ = menage[3], - _adt_ = - function(personne_a_charge){ - return 0 === personne_a_charge[0] ? 1 : 0; - }, - _adu_ = caml_call2(Runtime_ocaml_Runtime[90], _adt_, _ads_), - _adv_ = caml_call1(Runtime_ocaml_Runtime[68], _adu_), - _adw_ = caml_call2(Runtime_ocaml_Runtime[96], _adv_, _adr_), - _adx_ = caml_call1(Runtime_ocaml_Runtime[69], _adw_), - _ady_ = caml_call2(Runtime_ocaml_Runtime[103], _adx_, _adq_), - _adz_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - base_mensuelle_allocations_fam$1, - _ady_); - else - var _adz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$352); - var - _adA_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_4), - _adB_ = - caml_call2 - (Runtime_ocaml_Runtime[104], - base_mensuelle_allocations_fam$1, - _adA_); - return caml_call2(Runtime_ocaml_Runtime[93], _adB_, _adz_); - }, - _acF_ = - function(param){ - var - _adj_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _adk_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _adj_); - return caml_call2(Runtime_ocaml_Runtime[29], _Ln_, _adk_); - }, - _acG_ = caml_call4(Runtime_ocaml_Runtime[63], _Lo_, [0], _acF_, _acE_); - } - catch(_adi_){ - var _acD_ = caml_wrap_exception(_adi_); - if(_acD_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Lm_], 1); - throw caml_maybe_attach_backtrace(_acD_, 0); - } - var - plafond_d823_22 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Lp_, Runtime_ocaml_Runtime[13], _acG_); - try{ - var - _acI_ = function(param){return 0;}, - _acJ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Lr_, 1); - }, - _acK_ = - [0, - function(param){ - function _acS_(param){return 1;} - function _acT_(param){ - var - _add_ = - caml_call2 - (Runtime_ocaml_Runtime[99], - eligibilite_apl_dot_date_coura$0, - date_emmenagement), - _ade_ = - caml_call2 - (Runtime_ocaml_Runtime[119], - _add_, - delai_apres_emmenagement_l823_), - _adf_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_periode_demenagement, - _ade_), - _adg_ = - caml_call2 - (Runtime_ocaml_Runtime[83], condition_rang_enfant, _adf_), - _adh_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - eligibilite_apl_dot_eligibilit, - _adg_); - return caml_call2(Runtime_ocaml_Runtime[29], _Ls_, _adh_); - } - var - _acU_ = - [0, - function(param){ - function _acV_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _acW_(param){return 0;} + proprietaire=categorie_calcul_apl[1], + _ayR_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _VK_, + embed_calcul_allocation_logeme$4, + [0, + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + residence, + date_courante, + proprietaire[1], + proprietaire[8], + proprietaire[10][2], + proprietaire[5], + proprietaire[6], + proprietaire[3], + proprietaire[2], + proprietaire[7], + proprietaire[11]]), + result$1= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _VL_, + calcul_allocation_logement_acc), + _ayR_), + _ayS_= + function(param0) + {var + _ayX_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _VM_, + Runtime_ocaml_Runtime[13], + param0), + _ayY_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_VN_,result$1[5]), + _ayX_), + _ayZ_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _VO_, + Runtime_ocaml_Runtime[13], + _ayY_); + return caml_call2(Runtime_ocaml_Runtime[27],_VP_,_ayZ_)}, + result$2= + [0,result$1[1],result$1[2],result$1[3],result$1[4],_ayS_]; + caml_call2(Runtime_ocaml_Runtime[29],_VQ_,1); var - _acX_ = - [0, - function(param){ - function _acY_(param){return 0;} - function _acZ_(param){ - switch(menage[9][0]){ - case 0: - var _adc_ = 0; break; - case 1: - var _adc_ = 0; break; - case 2: - var _adc_ = 0; break; - case 3: - var _adc_ = 0; break; - case 4: - var _adc_ = 0; break; - case 5: - var _adc_ = 0; break; - case 6: - var _adc_ = 0; break; - case 7: - var _adc_ = 0; break; - default: var _adc_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Lt_, _adc_); - } - var - _ac0_ = - [0, - function(param){ - function _ac1_(param){return 0;} - function _ac2_(param){ - switch(menage[9][0]){ - case 0: - var _ac__ = 0; break; - case 1: - var _ac__ = 0; break; - case 2: - var _ac__ = 0; break; - case 3: - var _ac__ = 0; break; - case 4: - var _ac__ = 0; break; - case 5: - var _ac__ = 0; break; - case 6: - var _ac__ = 0; break; - case 7: - var _ac__ = 1; break; - default: var _ac__ = 0; - } - var - _ac$_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _ada_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ac$_), - _adb_ = caml_call2(Runtime_ocaml_Runtime[83], _ada_, _ac__); - return caml_call2(Runtime_ocaml_Runtime[29], _Lu_, _adb_); - } - var - _ac3_ = - [0, - function(param){ - function _ac4_(param){return 0;} - function _ac5_(param){ - switch(menage[9][0]){ - case 0: - var _ac6_ = 0; break; - case 1: - var _ac6_ = 0; break; - case 2: - var _ac6_ = 0; break; - case 3: - var _ac6_ = 0; break; - case 4: - var _ac6_ = 0; break; - case 5: - var _ac6_ = 0; break; - case 6: - var _ac6_ = 0; break; - case 7: - var _ac6_ = 0; break; - default: var _ac6_ = 1; - } - var - _ac7_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), - _ac8_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ac7_), - _ac9_ = caml_call2(Runtime_ocaml_Runtime[83], _ac8_, _ac6_); - return caml_call2(Runtime_ocaml_Runtime[29], _Lv_, _ac9_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Lw_, [0], _ac5_, _ac4_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Lx_, _ac3_, _ac2_, _ac1_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ly_, _ac0_, _acZ_, _acY_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Lz_, _acX_, _acW_, _acV_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _LA_, _acU_, _acT_, _acS_); - }], - _acL_ = caml_call4(Runtime_ocaml_Runtime[63], _LB_, _acK_, _acJ_, _acI_); - } - catch(_acR_){ - var _acH_ = caml_wrap_exception(_acR_); - if(_acH_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Lq_], 1); - throw caml_maybe_attach_backtrace(_acH_, 0); - } - caml_call3 - (Runtime_ocaml_Runtime[28], _LC_, Runtime_ocaml_Runtime[12], _acL_); - try{ - var - _acN_ = - function(param){ - return caml_call2 - (Runtime_ocaml_Runtime[118], - depenses_justifiees_reellement, - plafond_d823_22) - ? depenses_justifiees_reellement - : plafond_d823_22; - }, - _acO_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _LE_, 1); - }, - _acP_ = caml_call4(Runtime_ocaml_Runtime[63], _LF_, [0], _acO_, _acN_); - } - catch(_acQ_){ - var _acM_ = caml_wrap_exception(_acQ_); - if(_acM_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _LD_], 1); - throw caml_maybe_attach_backtrace(_acM_, 0); - } - var - montant_prime_demenagement = - caml_call3 - (Runtime_ocaml_Runtime[28], _LG_, Runtime_ocaml_Runtime[13], _acP_); - return [0, montant_prime_demenagement]; - } - function eligibilite_allocation_logemen(eligibilite_allocation_logemen){ - var - date_courante = eligibilite_allocation_logemen[1], - menage = eligibilite_allocation_logemen[2], - demandeur = eligibilite_allocation_logemen[3], - beneficie_aide_personnalisee_l = eligibilite_allocation_logemen[4]; - try{ - var - _Zc_ = - function(param){ - return caml_call3(Runtime_ocaml_Runtime[60], 5, 0, 0); - }, - _Zd_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _LI_, 1); - }, - _Ze_ = caml_call4(Runtime_ocaml_Runtime[63], _LJ_, [0], _Zd_, _Zc_); - } - catch(_ab8_){ - var _Zb_ = caml_wrap_exception(_ab8_); - if(_Zb_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _LH_], 1); - throw caml_maybe_attach_backtrace(_Zb_, 0); - } - var - duree_l841_1_3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _LK_, Runtime_ocaml_Runtime[17], _Ze_); - try{ - var - _Zg_ = function(param){return date_courante;}, - _Zh_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _LM_, 1); - }, - _Zi_ = caml_call4(Runtime_ocaml_Runtime[63], _LN_, [0], _Zh_, _Zg_), - prestations_familiales_dot_dat = - caml_call3 - (Runtime_ocaml_Runtime[28], _LO_, Runtime_ocaml_Runtime[16], _Zi_); - } - catch(_ab7_){ - var _Zf_ = caml_wrap_exception(_ab7_); - if(_Zf_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _LL_], 1); - throw caml_maybe_attach_backtrace(_Zf_, 0); - } - try{ - var - _Zk_ = function(param){return _LQ_;}, - _Zl_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _LR_, 1); - }, - _Zm_ = caml_call4(Runtime_ocaml_Runtime[63], _LS_, [0], _Zl_, _Zk_), - prestations_familiales_dot_pre = - caml_call3 - (Runtime_ocaml_Runtime[28], - _LT_, - embed_element_prestations_fami, - _Zm_); - } - catch(_ab6_){ - var _Zj_ = caml_wrap_exception(_ab6_); - if(_Zj_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _LP_], 1); - throw caml_maybe_attach_backtrace(_Zj_, 0); - } - try{ - var - _Zo_ = function(param){return menage[9];}, - _Zp_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _LV_, 1); - }, - _Zq_ = caml_call4(Runtime_ocaml_Runtime[63], _LW_, [0], _Zp_, _Zo_), - prestations_familiales_dot_res = - caml_call3(Runtime_ocaml_Runtime[28], _LX_, embed_collectivite, _Zq_); - } - catch(_ab5_){ - var _Zn_ = caml_wrap_exception(_ab5_); - if(_Zn_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _LU_], 1); - throw caml_maybe_attach_backtrace(_Zn_, 0); - } - function prestations_familiales_dot_age(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - var - _Zr_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _LY_, eligibilite_prestations_famili), - [0, - prestations_familiales_dot_dat, - prestations_familiales_dot_pre, - prestations_familiales_dot_res, - prestations_familiales_dot_age]), - result = caml_call2(Runtime_ocaml_Runtime[27], _LZ_, _Zr_), - prestations_familiales_dot_dro = result[2]; - try{ - var - _Zt_ = function(param){return 0;}, - _Zu_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _L1_, 1); - }, - _Zv_ = - [0, - function(param){ - function _abS_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _abT_(param){return 0;} - function _abU_(param){ - function _abY_(param){return 0;} - function _abZ_(param){ - switch(menage[9][0]){ - case 0: - var _ab4_ = 1; break; - case 1: - var _ab4_ = 1; break; - case 2: - var _ab4_ = 1; break; - case 3: - var _ab4_ = 1; break; - case 4: - var _ab4_ = 0; break; - case 5: - var _ab4_ = 0; break; - case 6: - var _ab4_ = 0; break; - case 7: - var _ab4_ = 0; break; - default: var _ab4_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _L2_, _ab4_); - } - var - _ab0_ = - [0, - function(param){ - function _ab1_(param){return 0;} - function _ab2_(param){ - switch(menage[9][0]){ - case 0: - var _ab3_ = 0; break; - case 1: - var _ab3_ = 0; break; - case 2: - var _ab3_ = 0; break; - case 3: - var _ab3_ = 0; break; - case 4: - var _ab3_ = 1; break; - case 5: - var _ab3_ = 1; break; - case 6: - var _ab3_ = 0; break; - case 7: - var _ab3_ = 0; break; - default: var _ab3_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _L3_, _ab3_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _L4_, [0], _ab2_, _ab1_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _L5_, _ab0_, _abZ_, _abY_); - } - var - _abV_ = - [0, - function(param){ - function _abW_(param){return 1;} - function _abX_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _L6_, 1); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _L7_, [0], _abX_, _abW_); - }, - _abU_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _L8_, _abV_, _abT_, _abS_); - }], - _Zw_ = caml_call4(Runtime_ocaml_Runtime[63], _L9_, _Zv_, _Zu_, _Zt_); - } - catch(_abR_){ - var _Zs_ = caml_wrap_exception(_abR_); - if(_Zs_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _L0_], 1); - throw caml_maybe_attach_backtrace(_Zs_, 0); - } - var - l_841_1_6_applicable = - caml_call3 - (Runtime_ocaml_Runtime[28], _L__, Runtime_ocaml_Runtime[12], _Zw_); - try{ - var - _Zy_ = function(param){return 0;}, - _Zz_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ma_, 1); - }, - _ZA_ = - [0, - function(param){ - function _abE_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _abF_(param){return 0;} - function _abG_(param){ - function _abK_(param){return 0;} - function _abL_(param){ - switch(menage[9][0]){ - case 0: - var _abQ_ = 1; break; - case 1: - var _abQ_ = 1; break; - case 2: - var _abQ_ = 1; break; - case 3: - var _abQ_ = 1; break; - case 4: - var _abQ_ = 0; break; - case 5: - var _abQ_ = 0; break; - case 6: - var _abQ_ = 0; break; - case 7: - var _abQ_ = 0; break; - default: var _abQ_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Mb_, _abQ_); - } - var - _abM_ = - [0, - function(param){ - function _abN_(param){return 0;} - function _abO_(param){ - switch(menage[9][0]){ - case 0: - var _abP_ = 0; break; - case 1: - var _abP_ = 0; break; - case 2: - var _abP_ = 0; break; - case 3: - var _abP_ = 0; break; - case 4: - var _abP_ = 1; break; - case 5: - var _abP_ = 1; break; - case 6: - var _abP_ = 0; break; - case 7: - var _abP_ = 0; break; - default: var _abP_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Mc_, _abP_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Md_, [0], _abO_, _abN_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Me_, _abM_, _abL_, _abK_); - } - var - _abH_ = - [0, - function(param){ - function _abI_(param){return 1;} - function _abJ_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Mf_, 1); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Mg_, [0], _abJ_, _abI_); - }, - _abG_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Mh_, _abH_, _abF_, _abE_); - }], - _ZB_ = caml_call4(Runtime_ocaml_Runtime[63], _Mi_, _ZA_, _Zz_, _Zy_); - } - catch(_abD_){ - var _Zx_ = caml_wrap_exception(_abD_); - if(_Zx_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _L$_], 1); - throw caml_maybe_attach_backtrace(_Zx_, 0); - } - var - l_841_1_2_applicable = - caml_call3 - (Runtime_ocaml_Runtime[28], _Mj_, Runtime_ocaml_Runtime[12], _ZB_); - try{ - var - _ZD_ = function(param){return 0;}, - _ZE_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ml_, 1); - }, - _ZF_ = - [0, - function(param){ - function _abq_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _abr_(param){return 0;} - function _abs_(param){ - function _abw_(param){return 0;} - function _abx_(param){ - switch(menage[9][0]){ - case 0: - var _abC_ = 1; break; - case 1: - var _abC_ = 1; break; - case 2: - var _abC_ = 1; break; - case 3: - var _abC_ = 1; break; - case 4: - var _abC_ = 0; break; - case 5: - var _abC_ = 0; break; - case 6: - var _abC_ = 0; break; - case 7: - var _abC_ = 0; break; - default: var _abC_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Mm_, _abC_); - } - var - _aby_ = - [0, - function(param){ - function _abz_(param){return 0;} - function _abA_(param){ - switch(menage[9][0]){ - case 0: - var _abB_ = 0; break; - case 1: - var _abB_ = 0; break; - case 2: - var _abB_ = 0; break; - case 3: - var _abB_ = 0; break; - case 4: - var _abB_ = 1; break; - case 5: - var _abB_ = 1; break; - case 6: - var _abB_ = 0; break; - case 7: - var _abB_ = 0; break; - default: var _abB_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Mn_, _abB_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Mo_, [0], _abA_, _abz_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Mp_, _aby_, _abx_, _abw_); - } - var - _abt_ = - [0, - function(param){ - function _abu_(param){return 1;} - function _abv_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Mq_, 1); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Mr_, [0], _abv_, _abu_); - }, - _abs_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ms_, _abt_, _abr_, _abq_); - }], - _ZG_ = caml_call4(Runtime_ocaml_Runtime[63], _Mt_, _ZF_, _ZE_, _ZD_); - } - catch(_abp_){ - var _ZC_ = caml_wrap_exception(_abp_); - if(_ZC_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Mk_], 1); - throw caml_maybe_attach_backtrace(_ZC_, 0); - } - var - l_841_1_1_applicable = - caml_call3 - (Runtime_ocaml_Runtime[28], _Mu_, Runtime_ocaml_Runtime[12], _ZG_); - try{ - var - _ZI_ = function(param){return 0;}, - _ZJ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Mw_, 1); - }, - _ZK_ = - [0, - function(param){ - function _aa1_(param){return 1;} - function _aa2_(param){ - switch(menage[2][3][0]){ - case 0: - var _abo_ = 1; break; - case 1: - var _abo_ = 1; break; - case 2: - var _abo_ = 0; break; - case 3: - var _abo_ = 1; break; - default: var _abo_ = 1; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Mx_, _abo_); - } - var - _aa3_ = - [0, - function(param){ - function _aa4_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _aa5_(param){return 0;} + _ayT_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _VR_, + embed_calcul_allocation_logeme$0, + result$2), + traitement_formule$0= + caml_call2(Runtime_ocaml_Runtime[27],_VS_,_ayT_); + return [0,traitement_formule$0[4],traitement_formule$0[5]]; + default: var - _aa6_ = - [0, - function(param){ - function _aa7_(param){return 1;} - function _aa8_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _abj_ = 0; break; - case 1: - var _abj_ = 0; break; - case 2: - var proprietaire = match[1]; - switch(proprietaire[5][0]){ - case 0: - var _abk_ = 1; break; - case 1: - var _abk_ = 0; break; - case 2: - var _abk_ = 0; break; - default: var _abk_ = 0; - } - switch(proprietaire[5][0]){ - case 0: - var _abl_ = 0; break; - case 1: - var _abl_ = 0; break; - case 2: - var _abl_ = 0; break; - default: var _abl_ = 1; - } - var - _abm_ = caml_call2(Runtime_ocaml_Runtime[84], _abl_, _abk_), - _abn_ = 0 === proprietaire[10][3][0] ? 1 : 0, - _abj_ = caml_call2(Runtime_ocaml_Runtime[83], _abn_, _abm_); - break; - case 3: - var _abj_ = 0; break; - default: var _abj_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _My_, _abj_); - } - var - _aa9_ = - [0, - function(param){ - function _aa__(param){return 1;} - function _aa$_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _abg_ = 0; break; - case 1: - var _abg_ = 0; break; - case 2: - var proprietaire = match[1]; - switch(proprietaire[5][0]){ - case 0: - var _abh_ = 0; break; - case 1: - var _abh_ = 1; break; - case 2: - var _abh_ = 0; break; - default: var _abh_ = 0; - } - var - _abi_ = 0 === proprietaire[10][3][0] ? 1 : 0, - _abg_ = caml_call2(Runtime_ocaml_Runtime[83], _abi_, _abh_); - break; - case 3: - var _abg_ = 0; break; - default: var _abg_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Mz_, _abg_); - } - var - _aba_ = - [0, - function(param){ - function _abb_(param){return 1;} - function _abc_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _abd_ = 0; break; - case 1: - var _abd_ = 0; break; - case 2: - var proprietaire = match[1]; - switch(proprietaire[5][0]){ - case 0: - var _abe_ = 0; break; - case 1: - var _abe_ = 0; break; - case 2: - var _abe_ = 1; break; - default: var _abe_ = 0; - } - var - _abf_ = 0 === proprietaire[10][3][0] ? 1 : 0, - _abd_ = caml_call2(Runtime_ocaml_Runtime[83], _abf_, _abe_); - break; - case 3: - var _abd_ = 0; break; - default: var _abd_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _MA_, _abd_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _MB_, [0], _abc_, _abb_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _MC_, _aba_, _aa$_, _aa__); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _MD_, _aa9_, _aa8_, _aa7_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _ME_, _aa6_, _aa5_, _aa4_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _MF_, _aa3_, _aa2_, _aa1_); - }], - _ZL_ = caml_call4(Runtime_ocaml_Runtime[63], _MG_, _ZK_, _ZJ_, _ZI_); - } - catch(_aa0_){ - var _ZH_ = caml_wrap_exception(_aa0_); - if(_ZH_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Mv_], 1); - throw caml_maybe_attach_backtrace(_ZH_, 0); - } - var - condition_accession_propriete = - caml_call3 - (Runtime_ocaml_Runtime[28], _MH_, Runtime_ocaml_Runtime[12], _ZL_); - try{ - var - _ZN_ = function(param){return menage;}, - _ZO_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _MJ_, 1); - }, - _ZP_ = caml_call4(Runtime_ocaml_Runtime[63], _MK_, [0], _ZO_, _ZN_), - eligibilite_commune_dot_menage = - caml_call3(Runtime_ocaml_Runtime[28], _ML_, embed_menage, _ZP_); - } - catch(_aaZ_){ - var _ZM_ = caml_wrap_exception(_aaZ_); - if(_ZM_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _MI_], 1); - throw caml_maybe_attach_backtrace(_ZM_, 0); - } - try{ - var - _ZR_ = function(param){return demandeur;}, - _ZS_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _MN_, 1); - }, - _ZT_ = caml_call4(Runtime_ocaml_Runtime[63], _MO_, [0], _ZS_, _ZR_), - eligibilite_commune_dot_demand = - caml_call3(Runtime_ocaml_Runtime[28], _MP_, embed_demandeur, _ZT_); - } - catch(_aaY_){ - var _ZQ_ = caml_wrap_exception(_aaY_); - if(_ZQ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _MM_], 1); - throw caml_maybe_attach_backtrace(_ZQ_, 0); - } - try{ - var - _ZV_ = function(param){return date_courante;}, - _ZW_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _MR_, 1); - }, - _ZX_ = caml_call4(Runtime_ocaml_Runtime[63], _MS_, [0], _ZW_, _ZV_), - eligibilite_commune_dot_date_c = - caml_call3 - (Runtime_ocaml_Runtime[28], _MT_, Runtime_ocaml_Runtime[16], _ZX_); - } - catch(_aaX_){ - var _ZU_ = caml_wrap_exception(_aaX_); - if(_ZU_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _MQ_], 1); - throw caml_maybe_attach_backtrace(_ZU_, 0); - } - function eligibilite_commune_dot_condit(param){ - function _aaT_(param){return 1;} - function _aaU_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _aaW_ = 0; break; - case 1: - var logement_foyer = match[1], _aaW_ = logement_foyer[6]; break; - case 2: - var _aaW_ = 0; break; - case 3: - var _aaW_ = 0; break; - default: var _aaW_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _MU_, _aaW_); - } - var - _aaV_ = caml_call4(Runtime_ocaml_Runtime[63], _MV_, [0], _aaU_, _aaT_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _MW_, - Runtime_ocaml_Runtime[12], - _aaV_); - } - function eligibilite_commune_dot_condit$0(param){ - function _aaP_(param){return 1;} - function _aaQ_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _aaS_ = 0; break; - case 1: - var logement_foyer = match[1], _aaS_ = logement_foyer[6]; break; - case 2: - var _aaS_ = 0; break; - case 3: - var _aaS_ = 0; break; - default: var _aaS_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _MX_, _aaS_); - } - var - _aaR_ = caml_call4(Runtime_ocaml_Runtime[63], _MY_, [0], _aaQ_, _aaP_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _MZ_, - Runtime_ocaml_Runtime[12], - _aaR_); - } - function eligibilite_commune_dot_date_e(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - var - _ZY_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _M0_, eligibilite_aides_personnelle_), - [0, - eligibilite_commune_dot_menage, - eligibilite_commune_dot_demand, - eligibilite_commune_dot_date_c, - eligibilite_commune_dot_condit, - eligibilite_commune_dot_condit$0, - eligibilite_commune_dot_date_e]), - result$0 = caml_call2(Runtime_ocaml_Runtime[27], _M1_, _ZY_), - eligibilite_commune_dot_eligib = result$0[2], - eligibilite_commune_dot_nombre = result$0[3], - eligibilite_commune_dot_coeffi = result$0[4], - eligibilite_commune_dot_condit$1 = result$0[5]; - try{ - var - _Z0_ = function(param){return eligibilite_commune_dot_coeffi;}, - _Z1_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _M3_, 1); - }, - _Z2_ = caml_call4(Runtime_ocaml_Runtime[63], _M4_, [0], _Z1_, _Z0_); - } - catch(_aaO_){ - var _ZZ_ = caml_wrap_exception(_aaO_); - if(_ZZ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _M2_], 1); - throw caml_maybe_attach_backtrace(_ZZ_, 0); - } - var - _Z3_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte = - caml_call3(Runtime_ocaml_Runtime[28], _M5_, _Z3_, _Z2_); - try{ - var - _Z5_ = function(param){return eligibilite_commune_dot_nombre;}, - _Z6_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _M7_, 1); - }, - _Z7_ = caml_call4(Runtime_ocaml_Runtime[63], _M8_, [0], _Z6_, _Z5_); - } - catch(_aaN_){ - var _Z4_ = caml_wrap_exception(_aaN_); - if(_Z4_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _M6_], 1); - throw caml_maybe_attach_backtrace(_Z4_, 0); - } - var - nombre_personnes_a_charge_pris = - caml_call3 - (Runtime_ocaml_Runtime[28], _M9_, Runtime_ocaml_Runtime[14], _Z7_); - try{ - var - _Z9_ = - function(param){ - var - _aaL_ = - caml_call1 - (Runtime_ocaml_Runtime[67], condition_accession_propriete), - _aaM_ = - caml_call1 - (Runtime_ocaml_Runtime[67], eligibilite_commune_dot_eligib); - return caml_call2(Runtime_ocaml_Runtime[84], _aaM_, _aaL_) - ? _M$_ - : _Na_; - }, - _Z__ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Nb_, 1); - }, - _Z$_ = caml_call4(Runtime_ocaml_Runtime[63], _Nc_, [0], _Z__, _Z9_); - } - catch(_aaK_){ - var _Z8_ = caml_wrap_exception(_aaK_); - if(_Z8_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _M__], 1); - throw caml_maybe_attach_backtrace(_Z8_, 0); - } - var - eligibilite_dispositions_commu = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nd_, - embed_type_eligibilite_allocat, - _Z$_); - try{ - var - __b_ = function(param){return 0;}, - __c_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Nf_, 1); - }, - __d_ = - [0, - function(param){ - function __N_(param){return 1;} - function __O_(param){ - var _aay_ = menage[1], _aaz_ = 0; - function _aaA_(acc, prestation){ - var - _aaD_ = caml_call2(Runtime_ocaml_Runtime[86], prestation, _Ng_), - _aaE_ = caml_call2(Runtime_ocaml_Runtime[86], prestation, _Nh_), - _aaF_ = caml_call2(Runtime_ocaml_Runtime[84], _aaE_, _aaD_), - _aaG_ = caml_call2(Runtime_ocaml_Runtime[86], prestation, _Ni_), - _aaH_ = caml_call2(Runtime_ocaml_Runtime[84], _aaG_, _aaF_), - _aaI_ = caml_call2(Runtime_ocaml_Runtime[86], prestation, _Nj_), - _aaJ_ = caml_call2(Runtime_ocaml_Runtime[84], _aaI_, _aaH_); - return caml_call2(Runtime_ocaml_Runtime[84], acc, _aaJ_); - } - var - _aaB_ = - caml_call3(Runtime_ocaml_Runtime[136], _aaA_, _aaz_, _aay_), - _aaC_ = - caml_call2 - (Runtime_ocaml_Runtime[83], l_841_1_1_applicable, _aaB_); - return caml_call2(Runtime_ocaml_Runtime[29], _Nk_, _aaC_); - } - var - __P_ = - [0, - function(param){ - function __Q_(param){return 1;} - function __R_(param){ - var - _aal_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$249), - _aam_ = menage[3]; - function _aan_(personne_a_charge){ - if(0 !== personne_a_charge[0]) return 0; - var - enfant = personne_a_charge[1], - _aas_ = enfant[3], - _aat_ = enfant[4], - _aau_ = 0 === enfant[8][0] ? _Nl_ : _Nq_, - _aav_ = + logement_foyer=categorie_calcul_apl[1], + _ayU_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _VT_, + embed_calcul_allocation_logeme$5, + [0, + logement_foyer[1], + logement_foyer[5], + residence, + logement_foyer[7], + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + date_courante, + logement_foyer[8]]), + result$3= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _VU_, + calcul_allocation_logement_foy), + _ayU_), + _ayV_= + function(param0) + {var + _ay4_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _VV_, + Runtime_ocaml_Runtime[13], + param0), + _ay5_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_VW_,result$3[6]), + _ay4_), + _ay6_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _VX_, + Runtime_ocaml_Runtime[13], + _ay5_); + return caml_call2(Runtime_ocaml_Runtime[27],_VY_,_ay6_)}, + result$4= + [0, + result$3[1], + result$3[2], + result$3[3], + result$3[4], + result$3[5], + _ayV_]; + caml_call2(Runtime_ocaml_Runtime[29],_VZ_,1); + var + _ayW_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _V0_, + embed_calcul_allocation_logeme$1, + result$4), + traitement_formule$1= + caml_call2(Runtime_ocaml_Runtime[27],_V1_,_ayW_); + return [0,traitement_formule$1[5],traitement_formule$1[6]]}}, + _ax__= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_V2_,1)}, + _ax$_= + [0, + function(param) + {function _ayy_(param) + {switch(categorie_calcul_apl[0]) + {case 0: + return [0, + caml_call1(Runtime_ocaml_Runtime[31],cst_0$417), + traitement_nul_tout_le_temps]; + case 1: + return [0, + caml_call1(Runtime_ocaml_Runtime[31],cst_0$418), + traitement_nul_tout_le_temps]; + default: + var + logement_foyer=categorie_calcul_apl[1], + _ayB_=logement_foyer[10]; + try + {var _ayC_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$419)} + catch(_ayJ_) + {_ayJ_ = caml_wrap_exception(_ayJ_); + if(_ayJ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_V4_]; + throw _ayJ_} + var + _ayD_= caml_call3 (Runtime_ocaml_Runtime[28], - _Nm_, - embed_enfant_prestations_famil, + _V5_, + embed_calcul_allocation_logeme$3, [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _aau_, - _aat_, - _aas_]), - _aaw_ = + logement_foyer[7], + ressources_menage_avec_arrondi, + logement_foyer[9], + date_courante, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + 1, + 0, + type_aide, + 0, + _ayC_, + _ayB_, + residence, + _V3_]), + result= caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _Nn_, - prestations_familiales_dot_dro), - _aav_), - _aax_ = + _V6_, + calcul_allocation_logement_loc), + _ayD_), + _ayE_= + function(param0) + {var + _ayG_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _V7_, + Runtime_ocaml_Runtime[13], + param0), + _ayH_= + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26],_V8_,result[2]),_ayG_), + _ayI_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _V9_, + Runtime_ocaml_Runtime[13], + _ayH_); + return caml_call2(Runtime_ocaml_Runtime[27],_V__,_ayI_)}, + result$0=[0,result[1],_ayE_]; + caml_call2(Runtime_ocaml_Runtime[29],_V$_,1); + var + _ayF_= caml_call3 (Runtime_ocaml_Runtime[28], - _No_, - Runtime_ocaml_Runtime[12], - _aaw_); - return caml_call2(Runtime_ocaml_Runtime[27], _Np_, _aax_); - } - var - _aao_ = caml_call2(Runtime_ocaml_Runtime[90], _aan_, _aam_), - _aap_ = caml_call1(Runtime_ocaml_Runtime[68], _aao_), - _aaq_ = caml_call2(Runtime_ocaml_Runtime[86], _aap_, _aal_), - _aar_ = - caml_call2 - (Runtime_ocaml_Runtime[83], l_841_1_2_applicable, _aaq_); - return caml_call2(Runtime_ocaml_Runtime[29], _Nr_, _aar_); - } - var - __S_ = - [0, - function(param){ - function __T_(param){return 1;} - function __U_(param){ - var match = menage[5]; - switch(match[0]){ - case 0: - var _$7_ = 0; break; - case 1: - var - date_mariage = match[1], - _aad_ = - caml_call3 - (Runtime_ocaml_Runtime[94], 2, date_mariage, duree_l841_1_3), - _$7_ = - caml_call2(Runtime_ocaml_Runtime[120], date_courante, _aad_); - break; - case 2: - var _$7_ = 0; break; - case 3: - var _$7_ = 0; break; - case 4: - var _$7_ = 0; break; - default: var _$7_ = 0; - } - var - _$8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$353), - _$9_ = menage[3]; - function _$__(personne_a_charge){ - if(0 !== personne_a_charge[0]) return 0; - var - enfant = personne_a_charge[1], - _aae_ = enfant[3], - _aaf_ = enfant[4], - _aag_ = 0 === enfant[8][0] ? _Ns_ : _Nx_, - _aah_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nt_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _aag_, - _aaf_, - _aae_]), - _aai_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Nu_, - prestations_familiales_dot_dro), - _aah_), - _aaj_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nv_, - Runtime_ocaml_Runtime[12], - _aai_), - _aak_ = caml_call2(Runtime_ocaml_Runtime[27], _Nw_, _aaj_); - return caml_call1(Runtime_ocaml_Runtime[67], _aak_); - } - var - _$$_ = caml_call2(Runtime_ocaml_Runtime[90], _$__, _$9_), - _aaa_ = caml_call1(Runtime_ocaml_Runtime[68], _$$_), - _aab_ = caml_call2(Runtime_ocaml_Runtime[86], _aaa_, _$8_), - _aac_ = caml_call2(Runtime_ocaml_Runtime[83], _aab_, _$7_); - return caml_call2(Runtime_ocaml_Runtime[29], _Ny_, _aac_); - } - var - __V_ = - [0, - function(param){ - function __W_(param){return 1;} - function __X_(param){ - var - _$Y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$250), - _$Z_ = menage[3]; - function _$0_(personne_a_charge){ - var - _$4_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nz_, - embed_personne_a_charge, - personne_a_charge), - _$5_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _NA_, - eligibilite_commune_dot_condit$1), - _$4_), - _$6_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _NB_, - Runtime_ocaml_Runtime[12], - _$5_); - return caml_call2(Runtime_ocaml_Runtime[27], _NC_, _$6_); - } - var - _$1_ = caml_call2(Runtime_ocaml_Runtime[90], _$0_, _$Z_), - _$2_ = caml_call1(Runtime_ocaml_Runtime[68], _$1_), - _$3_ = caml_call2(Runtime_ocaml_Runtime[126], _$2_, _$Y_); - return caml_call2(Runtime_ocaml_Runtime[29], _ND_, _$3_); - } - var - __Y_ = - [0, - function(param){ - function __Z_(param){return 1;} - function __0_(param){ - var - _$S_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$251), - _$T_ = menage[3]; - function _$U_(personne_a_charge){ - if(0 === personne_a_charge[0]) return 0; - var parent = personne_a_charge[1]; - return caml_call2 - (Runtime_ocaml_Runtime[83], parent[3], parent[5]); - } - var - _$V_ = caml_call2(Runtime_ocaml_Runtime[90], _$U_, _$T_), - _$W_ = caml_call1(Runtime_ocaml_Runtime[68], _$V_), - _$X_ = caml_call2(Runtime_ocaml_Runtime[126], _$W_, _$S_); - return caml_call2(Runtime_ocaml_Runtime[29], _NE_, _$X_); - } - var - __1_ = - [0, - function(param){ - function __2_(param){return 1;} - function __3_(param){ - switch(menage[5][0]){ - case 0: - var - _$M_ = menage[7], - _$N_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$354), - _$O_ = caml_call1(Runtime_ocaml_Runtime[68], menage[3]), - _$P_ = caml_call2(Runtime_ocaml_Runtime[86], _$O_, _$N_), - _$Q_ = caml_call2(Runtime_ocaml_Runtime[83], _$P_, _$M_); - break; - case 1: - var _$Q_ = 0; break; - case 2: - var _$Q_ = 0; break; - case 3: - var _$Q_ = 0; break; - case 4: - var _$Q_ = 0; break; - default: var _$Q_ = 0; - } - var - _$R_ = - caml_call2 - (Runtime_ocaml_Runtime[83], l_841_1_6_applicable, _$Q_); - return caml_call2(Runtime_ocaml_Runtime[29], _NF_, _$R_); - } - function __4_(param){ - function _$q_(param){return 1;} - function _$r_(param){ - var - _$y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$252), - _$z_ = menage[3]; - function _$A_(personne_a_charge){ - if(0 !== personne_a_charge[0]) return 0; - var - enfant = personne_a_charge[1], - _$G_ = enfant[3], - _$H_ = enfant[4], - _$I_ = 0 === enfant[8][0] ? _NG_ : _NL_, - _$J_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _NH_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _$I_, - _$H_, - _$G_]), - _$K_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _NI_, - prestations_familiales_dot_dro), - _$J_), - _$L_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _NJ_, - Runtime_ocaml_Runtime[12], - _$K_); - return caml_call2(Runtime_ocaml_Runtime[27], _NK_, _$L_); - } - var - _$B_ = caml_call2(Runtime_ocaml_Runtime[90], _$A_, _$z_), - _$C_ = caml_call1(Runtime_ocaml_Runtime[68], _$B_), - _$D_ = caml_call2(Runtime_ocaml_Runtime[126], _$C_, _$y_); - switch(menage[9][0]){ - case 0: - var _$E_ = 1; break; - case 1: - var _$E_ = 1; break; - case 2: - var _$E_ = 1; break; - case 3: - var _$E_ = 1; break; - case 4: - var _$E_ = 0; break; - case 5: - var _$E_ = 0; break; - case 6: - var _$E_ = 0; break; - case 7: - var _$E_ = 0; break; - default: var _$E_ = 1; - } - var - _$F_ = caml_call2(Runtime_ocaml_Runtime[83], _$E_, _$D_); - return caml_call2(Runtime_ocaml_Runtime[29], _NM_, _$F_); - } - var - _$s_ = - [0, - function(param){ - function _$t_(param){return 1;} - function _$u_(param){ - var _$v_ = demandeur[5]; - switch(menage[9][0]){ - case 0: - var _$w_ = 1; break; - case 1: - var _$w_ = 1; break; - case 2: - var _$w_ = 1; break; - case 3: - var _$w_ = 1; break; - case 4: - var _$w_ = 0; break; - case 5: - var _$w_ = 0; break; - case 6: - var _$w_ = 0; break; - case 7: - var _$w_ = 0; break; - default: var _$w_ = 1; - } - var - _$x_ = caml_call2(Runtime_ocaml_Runtime[83], _$w_, _$v_); - return caml_call2(Runtime_ocaml_Runtime[29], _NN_, _$x_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _NO_, [0], _$u_, _$t_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _NP_, _$s_, _$r_, _$q_); - } - var - __5_ = - [0, - function(param){ - function __6_(param){return 1;} - function __7_(param){ - var - _$c_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$253), - _$d_ = menage[3]; - function _$e_(personne_a_charge){ - if(0 !== personne_a_charge[0]) return 0; - var - enfant = personne_a_charge[1], - _$k_ = enfant[3], - _$l_ = enfant[4], - _$m_ = 0 === enfant[8][0] ? _NQ_ : _NV_, - _$n_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _NR_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _$m_, - _$l_, - _$k_]), - _$o_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _NS_, - prestations_familiales_dot_dro), - _$n_), - _$p_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _NT_, - Runtime_ocaml_Runtime[12], - _$o_); - return caml_call2(Runtime_ocaml_Runtime[27], _NU_, _$p_); - } - var - _$f_ = caml_call2(Runtime_ocaml_Runtime[90], _$e_, _$d_), - _$g_ = caml_call1(Runtime_ocaml_Runtime[68], _$f_), - _$h_ = caml_call2(Runtime_ocaml_Runtime[126], _$g_, _$c_); - switch(menage[9][0]){ - case 0: - var _$i_ = 0; break; - case 1: - var _$i_ = 0; break; - case 2: - var _$i_ = 0; break; - case 3: - var _$i_ = 0; break; - case 4: - var _$i_ = 1; break; - case 5: - var _$i_ = 1; break; - case 6: - var _$i_ = 0; break; - case 7: - var _$i_ = 0; break; - default: var _$i_ = 0; - } - var - _$j_ = caml_call2(Runtime_ocaml_Runtime[83], _$i_, _$h_); - return caml_call2(Runtime_ocaml_Runtime[29], _NW_, _$j_); - } - var - __8_ = - [0, - function(param){ - function __9_(param){return 1;} - function ____(param){ - var __$_ = demandeur[5]; - switch(menage[9][0]){ - case 0: - var _$a_ = 0; break; - case 1: - var _$a_ = 0; break; - case 2: - var _$a_ = 0; break; - case 3: - var _$a_ = 0; break; - case 4: - var _$a_ = 1; break; - case 5: - var _$a_ = 1; break; - case 6: - var _$a_ = 0; break; - case 7: - var _$a_ = 0; break; - default: var _$a_ = 0; - } - var - _$b_ = caml_call2(Runtime_ocaml_Runtime[83], _$a_, __$_); - return caml_call2(Runtime_ocaml_Runtime[29], _NX_, _$b_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _NY_, [0], ____, __9_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _NZ_, __8_, __7_, __6_); - }, - __4_]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _N0_, __5_, __3_, __2_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _N1_, __1_, __0_, __Z_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _N2_, __Y_, __X_, __W_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _N3_, __V_, __U_, __T_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _N4_, __S_, __R_, __Q_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _N5_, __P_, __O_, __N_); - }], - __e_ = caml_call4(Runtime_ocaml_Runtime[63], _N6_, __d_, __c_, __b_); - } - catch(__M_){ - var __a_ = caml_wrap_exception(__M_); - if(__a_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ne_], 1); - throw caml_maybe_attach_backtrace(__a_, 0); - } - var - eligibilite_allocation_logemen$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _N7_, Runtime_ocaml_Runtime[12], __e_); - try{ - var - __g_ = - function(param){ - var - __L_ = - caml_call2 - (Runtime_ocaml_Runtime[86], eligibilite_dispositions_commu, _N9_); - return caml_call2 - (Runtime_ocaml_Runtime[84], - __L_, - beneficie_aide_personnalisee_l) - ? _N__ - : eligibilite_allocation_logemen$0 ? _N$_ : _Oa_; - }, - __h_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ob_, 1); - }, - __i_ = - [0, - function(param){ - function __l_(param){return _Oc_;} - function __m_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var __J_ = 0; break; - case 1: - var __J_ = 0; break; - case 2: - var - proprietaire = match[1], - __K_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), - __J_ = - caml_call2 - (Runtime_ocaml_Runtime[125], proprietaire[10][2], __K_); - break; - case 3: - var __J_ = 0; break; - default: var __J_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Od_, __J_); - } - function __n_(param){ - function __H_(param){return _Oe_;} - function __I_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Of_, demandeur[4]); - } - return caml_call4(Runtime_ocaml_Runtime[63], _Og_, [0], __I_, __H_); - } - var - __o_ = - [0, - function(param){ - function __p_(param){return _Oh_;} - function __q_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var __x_ = 0; break; - case 1: - var __x_ = 0; break; - case 2: - var proprietaire = match[1], match$0 = proprietaire[10][4]; - if(0 === match$0[0]) - var - date_accord = match$0[1], - __A_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), - __B_ = - caml_call2(Runtime_ocaml_Runtime[120], date_accord, __A_); - else - var __B_ = 0; - var - __C_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), - __D_ = - caml_call2 - (Runtime_ocaml_Runtime[125], proprietaire[10][2], __C_), - __E_ = caml_call2(Runtime_ocaml_Runtime[83], __D_, __B_), - __F_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), - __G_ = - caml_call2 - (Runtime_ocaml_Runtime[125], proprietaire[10][2], __F_), - __x_ = caml_call2(Runtime_ocaml_Runtime[84], __G_, __E_); - break; - case 3: - var __x_ = 0; break; - default: var __x_ = 0; - } - switch(menage[9][0]){ - case 0: - var __y_ = 1; break; - case 1: - var __y_ = 1; break; - case 2: - var __y_ = 1; break; - case 3: - var __y_ = 1; break; - case 4: - var __y_ = 0; break; - case 5: - var __y_ = 0; break; - case 6: - var __y_ = 0; break; - case 7: - var __y_ = 0; break; - default: var __y_ = 1; - } - var __z_ = caml_call2(Runtime_ocaml_Runtime[83], __y_, __x_); - return caml_call2(Runtime_ocaml_Runtime[29], _Oi_, __z_); - } - var - __r_ = - [0, - function(param){ - function __s_(param){return _Oj_;} - function __t_(param){ - var __u_ = demandeur[6]; - switch(menage[9][0]){ - case 0: - var __v_ = 0; break; - case 1: - var __v_ = 0; break; - case 2: - var __v_ = 0; break; - case 3: - var __v_ = 0; break; - case 4: - var __v_ = 0; break; - case 5: - var __v_ = 0; break; - case 6: - var __v_ = 0; break; - case 7: - var __v_ = 0; break; - default: var __v_ = 1; - } - var - __w_ = caml_call2(Runtime_ocaml_Runtime[83], __v_, __u_); - return caml_call2(Runtime_ocaml_Runtime[29], _Ok_, __w_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ol_, [0], __t_, __s_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Om_, __r_, __q_, __p_); - }, - __n_]; - return caml_call4(Runtime_ocaml_Runtime[63], _On_, __o_, __m_, __l_); - }], - __j_ = caml_call4(Runtime_ocaml_Runtime[63], _Oo_, __i_, __h_, __g_); - } - catch(__k_){ - var __f_ = caml_wrap_exception(__k_); - if(__f_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _N8_], 1); - throw caml_maybe_attach_backtrace(__f_, 0); - } - var - eligibilite_l841_2 = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Op_, - embed_type_eligibilite_allocat, - __j_); - return [0, - eligibilite_l841_2, - nombre_personnes_a_charge_pris, - coefficents_enfants_garde_alte]; - } - function eligibilite_aide_personnalisee(eligibilite_aide_personnalisee){ - var - menage = eligibilite_aide_personnalisee[1], - demandeur = eligibilite_aide_personnalisee[2], - date_courante = eligibilite_aide_personnalisee[3]; - function _WD_(pret){ - try{ + _Wa_, + embed_calcul_allocation_logeme, + result$0), + traitement_formule= + caml_call2(Runtime_ocaml_Runtime[27],_Wb_,_ayF_); + return [0,traitement_formule[1],traitement_formule[2]]}} + function _ayz_(param) + {switch(residence[0]) + {case 0:var _ayA_=0;break; + case 1:var _ayA_=0;break; + case 2:var _ayA_=0;break; + case 3:var _ayA_=0;break; + case 4:var _ayA_=0;break; + case 5:var _ayA_=0;break; + case 6:var _ayA_=0;break; + case 7:var _ayA_=1;break; + default:var _ayA_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_Wc_,_ayA_)} + return caml_call4(Runtime_ocaml_Runtime[63],_Wd_,[0],_ayz_,_ayy_)}], + _aya_=caml_call4(Runtime_ocaml_Runtime[63],_We_,_ax$_,_ax__,_ax9_)} + catch(_ayx_) + {_ayx_ = caml_wrap_exception(_ayx_); + if(_ayx_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Vz_]; + throw _ayx_} var - _YQ_ = function(param){return 0;}, - _YR_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Or_, 1); - }, - _YS_ = - [0, - function(param){ - function _YV_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _YW_(param){return 0;} - var - _YX_ = - [0, - function(param){ - function _YY_(param){return 1;} - function _YZ_(param){ - switch(pret[1][0]){ - case 0: - var _Y8_ = 0; break; - case 1: - var _Y8_ = 1; break; - case 2: - var _Y8_ = 0; break; - case 3: - var _Y8_ = 0; break; - default: var _Y8_ = 0; - } - switch(pret[1][0]){ - case 0: - var _Y9_ = 1; break; - case 1: - var _Y9_ = 0; break; - case 2: - var _Y9_ = 0; break; - case 3: - var _Y9_ = 0; break; - default: var _Y9_ = 0; - } - var - _Y__ = caml_call2(Runtime_ocaml_Runtime[84], _Y9_, _Y8_), - _Y$_ = 0 === pret[3][0] ? 1 : 0, - _Za_ = caml_call2(Runtime_ocaml_Runtime[83], _Y$_, _Y__); - return caml_call2(Runtime_ocaml_Runtime[29], _Os_, _Za_); - } - var - _Y0_ = - [0, - function(param){ - function _Y1_(param){return 1;} - function _Y2_(param){ - switch(pret[1][0]){ - case 0: - var _Y3_ = 0; break; - case 1: - var _Y3_ = 0; break; - case 2: - var _Y3_ = 0; break; - case 3: - var _Y3_ = 1; break; - default: var _Y3_ = 0; - } - switch(pret[1][0]){ - case 0: - var _Y4_ = 0; break; - case 1: - var _Y4_ = 0; break; - case 2: - var _Y4_ = 1; break; - case 3: - var _Y4_ = 0; break; - default: var _Y4_ = 0; - } - var - _Y5_ = caml_call2(Runtime_ocaml_Runtime[84], _Y4_, _Y3_), - _Y6_ = 0 === pret[3][0] ? 0 : 1, - _Y7_ = caml_call2(Runtime_ocaml_Runtime[83], _Y6_, _Y5_); - return caml_call2(Runtime_ocaml_Runtime[29], _Ot_, _Y7_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ou_, [0], _Y2_, _Y1_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ov_, _Y0_, _YZ_, _YY_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Ow_, _YX_, _YW_, _YV_); - }], - _YT_ = caml_call4(Runtime_ocaml_Runtime[63], _Ox_, _YS_, _YR_, _YQ_); - return _YT_; - } - catch(_YU_){ - var _YP_ = caml_wrap_exception(_YU_); - if(_YP_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Oq_], 1); - throw caml_maybe_attach_backtrace(_YP_, 0); - } - } - var - caracteristiques_pret_l831_1_1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Oy_, Runtime_ocaml_Runtime[10], _WD_); - function _WE_(pret){ - try{ - var - _YL_ = function(param){return 0;}, - _YM_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _OA_, 1); - }, - _YN_ = caml_call4(Runtime_ocaml_Runtime[63], _OB_, [0], _YM_, _YL_); - return _YN_; - } - catch(_YO_){ - var _YK_ = caml_wrap_exception(_YO_); - if(_YK_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Oz_], 1); - throw caml_maybe_attach_backtrace(_YK_, 0); - } - } - var - caracteristiques_pret_l831_1_6 = - caml_call3 - (Runtime_ocaml_Runtime[28], _OC_, Runtime_ocaml_Runtime[10], _WE_); - try{ - var - _WG_ = function(param){return menage;}, - _WH_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _OE_, 1); - }, - _WI_ = caml_call4(Runtime_ocaml_Runtime[63], _OF_, [0], _WH_, _WG_), - eligibilite_commune_dot_menage = - caml_call3(Runtime_ocaml_Runtime[28], _OG_, embed_menage, _WI_); - } - catch(_YJ_){ - var _WF_ = caml_wrap_exception(_YJ_); - if(_WF_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _OD_], 1); - throw caml_maybe_attach_backtrace(_WF_, 0); - } - try{ - var - _WK_ = function(param){return demandeur;}, - _WL_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _OI_, 1); - }, - _WM_ = caml_call4(Runtime_ocaml_Runtime[63], _OJ_, [0], _WL_, _WK_), - eligibilite_commune_dot_demand = - caml_call3(Runtime_ocaml_Runtime[28], _OK_, embed_demandeur, _WM_); - } - catch(_YI_){ - var _WJ_ = caml_wrap_exception(_YI_); - if(_WJ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _OH_], 1); - throw caml_maybe_attach_backtrace(_WJ_, 0); - } - try{ - var - _WO_ = function(param){return date_courante;}, - _WP_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _OM_, 1); - }, - _WQ_ = caml_call4(Runtime_ocaml_Runtime[63], _ON_, [0], _WP_, _WO_), - eligibilite_commune_dot_date_c = + sous_calcul_traitement= caml_call3 - (Runtime_ocaml_Runtime[28], _OO_, Runtime_ocaml_Runtime[16], _WQ_); - } - catch(_YH_){ - var _WN_ = caml_wrap_exception(_YH_); - if(_WN_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _OL_], 1); - throw caml_maybe_attach_backtrace(_WN_, 0); - } - function eligibilite_commune_dot_condit(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function eligibilite_commune_dot_condit$0(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function eligibilite_commune_dot_date_e(param){ - function _YD_(param){ - return caml_call3(Runtime_ocaml_Runtime[57], 2021, 5, 1); - } - function _YE_(param){ - switch(menage[2][3][0]){ - case 0: - var _YG_ = 0; break; - case 1: - var _YG_ = 0; break; - case 2: - var _YG_ = 1; break; - case 3: - var _YG_ = 0; break; - default: var _YG_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _OP_, _YG_); - } - var _YF_ = caml_call4(Runtime_ocaml_Runtime[63], _OQ_, [0], _YE_, _YD_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _OR_, - Runtime_ocaml_Runtime[16], - _YF_); - } - var - _WR_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _OS_, eligibilite_aides_personnelle_), - [0, - eligibilite_commune_dot_menage, - eligibilite_commune_dot_demand, - eligibilite_commune_dot_date_c, - eligibilite_commune_dot_condit, - eligibilite_commune_dot_condit$0, - eligibilite_commune_dot_date_e]), - result = caml_call2(Runtime_ocaml_Runtime[27], _OT_, _WR_), - eligibilite_commune_dot_eligib = result[2], - eligibilite_commune_dot_nombre = result[3], - eligibilite_commune_dot_coeffi = result[4]; - try{ - var - _WT_ = function(param){return 0;}, - _WU_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _OV_, 1); - }, - _WV_ = - [0, - function(param){ - function _Yx_(param){return 1;} - function _Yy_(param){ - switch(menage[2][9][0]){ - case 0: - var _Yz_ = 0; break; - case 1: - var _Yz_ = 0; break; - default: var _Yz_ = 1; - } - var - _YA_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), - _YB_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _YA_), - _YC_ = caml_call2(Runtime_ocaml_Runtime[83], _YB_, _Yz_); - return caml_call2(Runtime_ocaml_Runtime[29], _OW_, _YC_); - } - return caml_call4(Runtime_ocaml_Runtime[63], _OX_, [0], _Yy_, _Yx_); - }], - _WW_ = caml_call4(Runtime_ocaml_Runtime[63], _OY_, _WV_, _WU_, _WT_); - } - catch(_Yw_){ - var _WS_ = caml_wrap_exception(_Yw_); - if(_WS_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _OU_], 1); - throw caml_maybe_attach_backtrace(_WS_, 0); - } - var - logement_situe_commune_desequi = - caml_call3 - (Runtime_ocaml_Runtime[28], _OZ_, Runtime_ocaml_Runtime[12], _WW_); - try{ - var - _WY_ = function(param){return 0;}, - _WZ_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _O1_, 1); - }, - _W0_ = - function(param){ - function _X9_(param){ - throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); - } - function _X__(param){return 0;} - var - _X$_ = - [0, - function(param){ - function _Ya_(param){return 1;} - function _Yb_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _Ys_ = 0; break; - case 1: - var _Ys_ = 0; break; + (Runtime_ocaml_Runtime[28],_Wf_,embed_traitement_formule_aide_,_aya_); + function _ayb_(arg) + {try + {var + _ayt_= + function(param){return caml_call1(sous_calcul_traitement[2],arg)}, + _ayu_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Wh_,1)}, + _ayv_=caml_call4(Runtime_ocaml_Runtime[63],_Wi_,[0],_ayu_,_ayt_); + return _ayv_} + catch(_ayw_) + {_ayw_ = caml_wrap_exception(_ayw_); + if(_ayw_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Wg_]; + throw _ayw_}} + var + traitement_aide_finale= + caml_call3 + (Runtime_ocaml_Runtime[28],_Wj_,Runtime_ocaml_Runtime[10],_ayb_); + try + {var + _ayc_=function(param){return sous_calcul_traitement[1]}, + _ayd_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Wl_,1)}, + _aye_= + [0, + function(param) + {function _ayh_(param) + {var + _ayn_=caml_call1(Runtime_ocaml_Runtime[39],cst_8$0), + _ayo_=caml_call1(Runtime_ocaml_Runtime[74],date_courante), + _ayp_=caml_call1(Runtime_ocaml_Runtime[46],cst_2026), + _ayq_=caml_call2(Runtime_ocaml_Runtime[96],_ayp_,_ayo_), + _ayr_=caml_call1(Runtime_ocaml_Runtime[69],_ayq_), + _ays_=caml_call2(Runtime_ocaml_Runtime[107],_ayr_,_ayn_); + return caml_call2 + (Runtime_ocaml_Runtime[104],sous_calcul_traitement[1],_ays_)} + function _ayi_(param) + {var + _ayj_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _ayk_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ayj_); + switch(residence[0]) + {case 0:var _ayl_=0;break; + case 1:var _ayl_=0;break; + case 2:var _ayl_=0;break; + case 3:var _ayl_=0;break; + case 4:var _ayl_=0;break; + case 5:var _ayl_=0;break; + case 6:var _ayl_=0;break; + case 7:var _ayl_=1;break; + default:var _ayl_=0} + var _aym_=caml_call2(Runtime_ocaml_Runtime[83],_ayl_,_ayk_); + return caml_call2(Runtime_ocaml_Runtime[29],_Wm_,_aym_)} + return caml_call4(Runtime_ocaml_Runtime[63],_Wn_,[0],_ayi_,_ayh_)}], + _ayf_=caml_call4(Runtime_ocaml_Runtime[63],_Wo_,_aye_,_ayd_,_ayc_)} + catch(_ayg_) + {_ayg_ = caml_wrap_exception(_ayg_); + if(_ayg_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Wk_]; + throw _ayg_} + var + aide_finale_formule= + caml_call3 + (Runtime_ocaml_Runtime[28],_Wp_,Runtime_ocaml_Runtime[13],_ayf_); + return [0,aide_finale_formule,traitement_aide_finale]} + function eligibilite_prime_de_demenagem(eligibilite_prime_de_demenagem) + {var + informations=eligibilite_prime_de_demenagem[1], + date_emmenagement=eligibilite_prime_de_demenagem[2], + menage=eligibilite_prime_de_demenagem[3], + demandeur=eligibilite_prime_de_demenagem[4], + date_courante=eligibilite_prime_de_demenagem[5], + depenses_justifiees_reellement=eligibilite_prime_de_demenagem[6]; + try + {var + _awe_= + function(param){return caml_call3(Runtime_ocaml_Runtime[60],0,6,0)}, + _awf_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Wr_,1)}, + _awg_=caml_call4(Runtime_ocaml_Runtime[63],_Ws_,[0],_awf_,_awe_)} + catch(_axZ_) + {_axZ_ = caml_wrap_exception(_axZ_); + if(_axZ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Wq_]; + throw _axZ_} + var + delai_apres_emmenagement_l823_= + caml_call3 + (Runtime_ocaml_Runtime[28],_Wt_,Runtime_ocaml_Runtime[17],_awg_); + try + {var + _awh_=function(param){return 0}, + _awi_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Wv_,1)}, + _awj_= + [0, + function(param) + {function _axP_(param){return 1} + function _axQ_(param) + {var + _axR_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$102), + _axS_=informations[1], + _axT_=menage[3]; + function _axU_(personne_a_charge) + {return 0 === personne_a_charge[0]?1:0} + var + _axV_=caml_call2(Runtime_ocaml_Runtime[90],_axU_,_axT_), + _axW_=caml_call1(Runtime_ocaml_Runtime[68],_axV_), + _axX_=caml_call2(Runtime_ocaml_Runtime[91],_axW_,_axS_), + _axY_=caml_call2(Runtime_ocaml_Runtime[126],_axX_,_axR_); + return caml_call2(Runtime_ocaml_Runtime[29],_Ww_,_axY_)} + return caml_call4(Runtime_ocaml_Runtime[63],_Wx_,[0],_axQ_,_axP_)}], + _awk_=caml_call4(Runtime_ocaml_Runtime[63],_Wy_,_awj_,_awi_,_awh_)} + catch(_axO_) + {_axO_ = caml_wrap_exception(_axO_); + if(_axO_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Wu_]; + throw _axO_} + var + condition_rang_enfant= + caml_call3 + (Runtime_ocaml_Runtime[28],_Wz_,Runtime_ocaml_Runtime[12],_awk_); + try + {var + _awl_=function(param){return date_courante}, + _awm_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WB_,1)}, + _awn_=caml_call4(Runtime_ocaml_Runtime[63],_WC_,[0],_awm_,_awl_), + base_mensuelle_allocations_fam= + caml_call3 + (Runtime_ocaml_Runtime[28],_WD_,Runtime_ocaml_Runtime[16],_awn_)} + catch(_axN_) + {_axN_ = caml_wrap_exception(_axN_); + if(_axN_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_WA_]; + throw _axN_} + var + _awo_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_WE_,base_mensuelle_allocations_fam$5), + [0,base_mensuelle_allocations_fam]), + result=caml_call2(Runtime_ocaml_Runtime[27],_WF_,_awo_), + base_mensuelle_allocations_fam$0=result[1]; + try + {var + _awp_=function(param){return menage}, + _awq_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WH_,1)}, + _awr_=caml_call4(Runtime_ocaml_Runtime[63],_WI_,[0],_awq_,_awp_), + eligibilite_apl_dot_menage= + caml_call3(Runtime_ocaml_Runtime[28],_WJ_,embed_menage,_awr_)} + catch(_axM_) + {_axM_ = caml_wrap_exception(_axM_); + if(_axM_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_WG_]; + throw _axM_} + try + {var + _aws_=function(param){return demandeur}, + _awt_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WL_,1)}, + _awu_=caml_call4(Runtime_ocaml_Runtime[63],_WM_,[0],_awt_,_aws_), + eligibilite_apl_dot_demandeur= + caml_call3(Runtime_ocaml_Runtime[28],_WN_,embed_demandeur,_awu_)} + catch(_axL_) + {_axL_ = caml_wrap_exception(_axL_); + if(_axL_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_WK_]; + throw _axL_} + try + {var + _awv_=function(param){return date_courante}, + _aww_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WP_,1)}, + _awx_=caml_call4(Runtime_ocaml_Runtime[63],_WQ_,[0],_aww_,_awv_), + eligibilite_apl_dot_date_coura= + caml_call3 + (Runtime_ocaml_Runtime[28],_WR_,Runtime_ocaml_Runtime[16],_awx_)} + catch(_axK_) + {_axK_ = caml_wrap_exception(_axK_); + if(_axK_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_WO_]; + throw _axK_} + function eligibilite_apl_dot_condition_(param) + {throw Runtime_ocaml_Runtime[2]} + function eligibilite_apl_dot_condition_$0(param) + {throw Runtime_ocaml_Runtime[2]} + function eligibilite_apl_dot_date_entre(param) + {throw Runtime_ocaml_Runtime[2]} + var + _awy_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_WS_,eligibilite_aides_personnelle_), + [0, + eligibilite_apl_dot_menage, + eligibilite_apl_dot_demandeur, + eligibilite_apl_dot_date_coura, + eligibilite_apl_dot_condition_, + eligibilite_apl_dot_condition_$0, + eligibilite_apl_dot_date_entre]), + result$0=caml_call2(Runtime_ocaml_Runtime[27],_WT_,_awy_), + eligibilite_apl_dot_date_coura$0=result$0[1], + eligibilite_apl_dot_eligibilit=result$0[2]; + try + {var + _awz_=function(param){return 0}, + _awA_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WV_,1)}, + _awB_= + [0, + function(param) + {function _axA_(param){return 1} + function _axB_(param) + {var _axC_=informations[2]; + if(0 === _axC_[0]) + var _axD_=0; + else + {var date_naissance_ou_grossesse=_axC_[1]; + switch(date_naissance_ou_grossesse[0]) + {case 0: + var + date_naissance=date_naissance_ou_grossesse[1], + _axE_=caml_call3(Runtime_ocaml_Runtime[60],0,0,-1), + _axF_=caml_call3(Runtime_ocaml_Runtime[60],2,0,0), + _axG_= + caml_call3(Runtime_ocaml_Runtime[94],2,date_naissance,_axF_), + _axH_=caml_call1(Runtime_ocaml_Runtime[75],_axG_), + _axI_=caml_call3(Runtime_ocaml_Runtime[94],2,_axH_,_axE_), + _axJ_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_axI_); + break; + case 1:var _axJ_=0;break; + default:var _axJ_=1} + var _axD_=_axJ_} + return caml_call2(Runtime_ocaml_Runtime[29],_WW_,_axD_)} + return caml_call4(Runtime_ocaml_Runtime[63],_WX_,[0],_axB_,_axA_)}], + _awC_=caml_call4(Runtime_ocaml_Runtime[63],_WY_,_awB_,_awA_,_awz_)} + catch(_axz_) + {_axz_ = caml_wrap_exception(_axz_); + if(_axz_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_WU_]; + throw _axz_} + var + condition_periode_demenagement= + caml_call3 + (Runtime_ocaml_Runtime[28],_WZ_,Runtime_ocaml_Runtime[12],_awC_); + try + {var + _awD_= + function(param) + {var + _axi_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$103), + _axj_=menage[3]; + function _axk_(personne_a_charge) + {return 0 === personne_a_charge[0]?1:0} + var + _axl_=caml_call2(Runtime_ocaml_Runtime[90],_axk_,_axj_), + _axm_=caml_call1(Runtime_ocaml_Runtime[68],_axl_); + if(caml_call2(Runtime_ocaml_Runtime[121],_axm_,_axi_)) + var + _axn_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2$1), + _axo_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$104), + _axp_=menage[3], + _axq_= + function(personne_a_charge) + {return 0 === personne_a_charge[0]?1:0}, + _axr_=caml_call2(Runtime_ocaml_Runtime[90],_axq_,_axp_), + _axs_=caml_call1(Runtime_ocaml_Runtime[68],_axr_), + _axt_=caml_call2(Runtime_ocaml_Runtime[96],_axs_,_axo_), + _axu_=caml_call1(Runtime_ocaml_Runtime[69],_axt_), + _axv_=caml_call2(Runtime_ocaml_Runtime[103],_axu_,_axn_), + _axw_= + caml_call2 + (Runtime_ocaml_Runtime[104], + base_mensuelle_allocations_fam$0, + _axv_); + else + var _axw_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$420); + var + _axx_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_4), + _axy_= + caml_call2 + (Runtime_ocaml_Runtime[104], + base_mensuelle_allocations_fam$0, + _axx_); + return caml_call2(Runtime_ocaml_Runtime[93],_axy_,_axw_)}, + _awE_= + function(param) + {var + _axg_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _axh_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_axg_); + return caml_call2(Runtime_ocaml_Runtime[29],_W1_,_axh_)}, + _awF_=caml_call4(Runtime_ocaml_Runtime[63],_W2_,[0],_awE_,_awD_)} + catch(_axf_) + {_axf_ = caml_wrap_exception(_axf_); + if(_axf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_W0_]; + throw _axf_} + var + plafond_d823_22= + caml_call3 + (Runtime_ocaml_Runtime[28],_W3_,Runtime_ocaml_Runtime[13],_awF_); + try + {var + _awG_=function(param){return 0}, + _awH_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_W5_,1)}, + _awI_= + [0, + function(param) + {function _awP_(param){return 1} + function _awQ_(param) + {var + _axa_= + caml_call2 + (Runtime_ocaml_Runtime[99], + eligibilite_apl_dot_date_coura$0, + date_emmenagement), + _axb_= + caml_call2 + (Runtime_ocaml_Runtime[119], + _axa_, + delai_apres_emmenagement_l823_), + _axc_= + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_periode_demenagement, + _axb_), + _axd_= + caml_call2 + (Runtime_ocaml_Runtime[83],condition_rang_enfant,_axc_), + _axe_= + caml_call2 + (Runtime_ocaml_Runtime[83], + eligibilite_apl_dot_eligibilit, + _axd_); + return caml_call2(Runtime_ocaml_Runtime[29],_W6_,_axe_)} + var + _awR_= + [0, + function(param) + {function _awS_(param){throw Runtime_ocaml_Runtime[2]} + function _awT_(param){return 0} + var + _awU_= + [0, + function(param) + {function _awV_(param){return 0} + function _awW_(param) + {switch(menage[9][0]) + {case 0:var _aw$_=0;break; + case 1:var _aw$_=0;break; + case 2:var _aw$_=0;break; + case 3:var _aw$_=0;break; + case 4:var _aw$_=0;break; + case 5:var _aw$_=0;break; + case 6:var _aw$_=0;break; + case 7:var _aw$_=0;break; + default:var _aw$_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_W7_,_aw$_)} + var + _awX_= + [0, + function(param) + {function _awY_(param){return 0} + function _awZ_(param) + {switch(menage[9][0]) + {case 0:var _aw7_=0;break; + case 1:var _aw7_=0;break; + case 2:var _aw7_=0;break; + case 3:var _aw7_=0;break; + case 4:var _aw7_=0;break; + case 5:var _aw7_=0;break; + case 6:var _aw7_=0;break; + case 7:var _aw7_=1;break; + default:var _aw7_=0} + var + _aw8_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _aw9_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aw8_), + _aw__=caml_call2(Runtime_ocaml_Runtime[83],_aw9_,_aw7_); + return caml_call2(Runtime_ocaml_Runtime[29],_W8_,_aw__)} + var + _aw0_= + [0, + function(param) + {function _aw1_(param){return 0} + function _aw2_(param) + {switch(menage[9][0]) + {case 0:var _aw3_=0;break; + case 1:var _aw3_=0;break; + case 2:var _aw3_=0;break; + case 3:var _aw3_=0;break; + case 4:var _aw3_=0;break; + case 5:var _aw3_=0;break; + case 6:var _aw3_=0;break; + case 7:var _aw3_=0;break; + default:var _aw3_=1} + var + _aw4_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), + _aw5_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aw4_), + _aw6_=caml_call2(Runtime_ocaml_Runtime[83],_aw5_,_aw3_); + return caml_call2(Runtime_ocaml_Runtime[29],_W9_,_aw6_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_W__,[0],_aw2_,_aw1_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_W$_,_aw0_,_awZ_,_awY_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Xa_,_awX_,_awW_,_awV_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Xb_,_awU_,_awT_,_awS_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Xc_,_awR_,_awQ_,_awP_)}], + _awJ_=caml_call4(Runtime_ocaml_Runtime[63],_Xd_,_awI_,_awH_,_awG_)} + catch(_awO_) + {_awO_ = caml_wrap_exception(_awO_); + if(_awO_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_W4_]; + throw _awO_} + caml_call3 + (Runtime_ocaml_Runtime[28],_Xe_,Runtime_ocaml_Runtime[12],_awJ_); + try + {var + _awK_= + function(param) + {return caml_call2 + (Runtime_ocaml_Runtime[118], + depenses_justifiees_reellement, + plafond_d823_22) + ?depenses_justifiees_reellement + :plafond_d823_22}, + _awL_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xg_,1)}, + _awM_=caml_call4(Runtime_ocaml_Runtime[63],_Xh_,[0],_awL_,_awK_)} + catch(_awN_) + {_awN_ = caml_wrap_exception(_awN_); + if(_awN_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Xf_]; + throw _awN_} + var + montant_prime_demenagement= + caml_call3 + (Runtime_ocaml_Runtime[28],_Xi_,Runtime_ocaml_Runtime[13],_awM_); + return [0,montant_prime_demenagement]} + function eligibilite_allocation_logemen(eligibilite_allocation_logemen) + {var + date_courante=eligibilite_allocation_logemen[1], + menage=eligibilite_allocation_logemen[2], + demandeur=eligibilite_allocation_logemen[3], + beneficie_aide_personnalisee_l=eligibilite_allocation_logemen[4]; + try + {var + _arp_= + function(param){return caml_call3(Runtime_ocaml_Runtime[60],5,0,0)}, + _arq_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xk_,1)}, + _arr_=caml_call4(Runtime_ocaml_Runtime[63],_Xl_,[0],_arq_,_arp_)} + catch(_awd_) + {_awd_ = caml_wrap_exception(_awd_); + if(_awd_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Xj_]; + throw _awd_} + var + duree_l841_1_3= + caml_call3 + (Runtime_ocaml_Runtime[28],_Xm_,Runtime_ocaml_Runtime[17],_arr_); + try + {var + _ars_=function(param){return date_courante}, + _art_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xo_,1)}, + _aru_=caml_call4(Runtime_ocaml_Runtime[63],_Xp_,[0],_art_,_ars_), + prestations_familiales_dot_dat= + caml_call3 + (Runtime_ocaml_Runtime[28],_Xq_,Runtime_ocaml_Runtime[16],_aru_)} + catch(_awc_) + {_awc_ = caml_wrap_exception(_awc_); + if(_awc_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Xn_]; + throw _awc_} + try + {var + _arv_=function(param){return _Xs_}, + _arw_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xt_,1)}, + _arx_=caml_call4(Runtime_ocaml_Runtime[63],_Xu_,[0],_arw_,_arv_), + prestations_familiales_dot_pre= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Xv_, + embed_element_prestations_fami$0, + _arx_)} + catch(_awb_) + {_awb_ = caml_wrap_exception(_awb_); + if(_awb_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Xr_]; + throw _awb_} + try + {var + _ary_=function(param){return menage[9]}, + _arz_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xx_,1)}, + _arA_=caml_call4(Runtime_ocaml_Runtime[63],_Xy_,[0],_arz_,_ary_), + prestations_familiales_dot_res= + caml_call3 + (Runtime_ocaml_Runtime[28],_Xz_,embed_collectivite$0,_arA_)} + catch(_awa_) + {_awa_ = caml_wrap_exception(_awa_); + if(_awa_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Xw_]; + throw _awa_} + function prestations_familiales_dot_age(param) + {throw Runtime_ocaml_Runtime[2]} + var + _arB_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_XA_,eligibilite_prestations_famili), + [0, + prestations_familiales_dot_dat, + prestations_familiales_dot_pre, + prestations_familiales_dot_res, + prestations_familiales_dot_age]), + result=caml_call2(Runtime_ocaml_Runtime[27],_XB_,_arB_), + prestations_familiales_dot_dro=result[2]; + try + {var + _arC_=function(param){return 0}, + _arD_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_XD_,1)}, + _arE_= + [0, + function(param) + {function _avZ_(param){throw Runtime_ocaml_Runtime[2]} + function _av0_(param){return 0} + function _av1_(param) + {function _av5_(param){return 0} + function _av6_(param) + {switch(menage[9][0]) + {case 0:var _av$_=1;break; + case 1:var _av$_=1;break; + case 2:var _av$_=1;break; + case 3:var _av$_=1;break; + case 4:var _av$_=0;break; + case 5:var _av$_=0;break; + case 6:var _av$_=0;break; + case 7:var _av$_=0;break; + default:var _av$_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_XE_,_av$_)} + var + _av7_= + [0, + function(param) + {function _av8_(param){return 0} + function _av9_(param) + {switch(menage[9][0]) + {case 0:var _av__=0;break; + case 1:var _av__=0;break; + case 2:var _av__=0;break; + case 3:var _av__=0;break; + case 4:var _av__=1;break; + case 5:var _av__=1;break; + case 6:var _av__=0;break; + case 7:var _av__=0;break; + default:var _av__=0} + return caml_call2(Runtime_ocaml_Runtime[29],_XF_,_av__)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_XG_,[0],_av9_,_av8_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_XH_,_av7_,_av6_,_av5_)} + var + _av2_= + [0, + function(param) + {function _av3_(param){return 1} + function _av4_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_XI_,1)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_XJ_,[0],_av4_,_av3_)}, + _av1_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_XK_,_av2_,_av0_,_avZ_)}], + _arF_=caml_call4(Runtime_ocaml_Runtime[63],_XL_,_arE_,_arD_,_arC_)} + catch(_avY_) + {_avY_ = caml_wrap_exception(_avY_); + if(_avY_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_XC_]; + throw _avY_} + var + l_841_1_6_applicable= + caml_call3 + (Runtime_ocaml_Runtime[28],_XM_,Runtime_ocaml_Runtime[12],_arF_); + try + {var + _arG_=function(param){return 0}, + _arH_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_XO_,1)}, + _arI_= + [0, + function(param) + {function _avL_(param){throw Runtime_ocaml_Runtime[2]} + function _avM_(param){return 0} + function _avN_(param) + {function _avR_(param){return 0} + function _avS_(param) + {switch(menage[9][0]) + {case 0:var _avX_=1;break; + case 1:var _avX_=1;break; + case 2:var _avX_=1;break; + case 3:var _avX_=1;break; + case 4:var _avX_=0;break; + case 5:var _avX_=0;break; + case 6:var _avX_=0;break; + case 7:var _avX_=0;break; + default:var _avX_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_XP_,_avX_)} + var + _avT_= + [0, + function(param) + {function _avU_(param){return 0} + function _avV_(param) + {switch(menage[9][0]) + {case 0:var _avW_=0;break; + case 1:var _avW_=0;break; + case 2:var _avW_=0;break; + case 3:var _avW_=0;break; + case 4:var _avW_=1;break; + case 5:var _avW_=1;break; + case 6:var _avW_=0;break; + case 7:var _avW_=0;break; + default:var _avW_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_XQ_,_avW_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_XR_,[0],_avV_,_avU_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_XS_,_avT_,_avS_,_avR_)} + var + _avO_= + [0, + function(param) + {function _avP_(param){return 1} + function _avQ_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_XT_,1)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_XU_,[0],_avQ_,_avP_)}, + _avN_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_XV_,_avO_,_avM_,_avL_)}], + _arJ_=caml_call4(Runtime_ocaml_Runtime[63],_XW_,_arI_,_arH_,_arG_)} + catch(_avK_) + {_avK_ = caml_wrap_exception(_avK_); + if(_avK_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_XN_]; + throw _avK_} + var + l_841_1_2_applicable= + caml_call3 + (Runtime_ocaml_Runtime[28],_XX_,Runtime_ocaml_Runtime[12],_arJ_); + try + {var + _arK_=function(param){return 0}, + _arL_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_XZ_,1)}, + _arM_= + [0, + function(param) + {function _avx_(param){throw Runtime_ocaml_Runtime[2]} + function _avy_(param){return 0} + function _avz_(param) + {function _avD_(param){return 0} + function _avE_(param) + {switch(menage[9][0]) + {case 0:var _avJ_=1;break; + case 1:var _avJ_=1;break; + case 2:var _avJ_=1;break; + case 3:var _avJ_=1;break; + case 4:var _avJ_=0;break; + case 5:var _avJ_=0;break; + case 6:var _avJ_=0;break; + case 7:var _avJ_=0;break; + default:var _avJ_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_X0_,_avJ_)} + var + _avF_= + [0, + function(param) + {function _avG_(param){return 0} + function _avH_(param) + {switch(menage[9][0]) + {case 0:var _avI_=0;break; + case 1:var _avI_=0;break; + case 2:var _avI_=0;break; + case 3:var _avI_=0;break; + case 4:var _avI_=1;break; + case 5:var _avI_=1;break; + case 6:var _avI_=0;break; + case 7:var _avI_=0;break; + default:var _avI_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_X1_,_avI_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_X2_,[0],_avH_,_avG_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_X3_,_avF_,_avE_,_avD_)} + var + _avA_= + [0, + function(param) + {function _avB_(param){return 1} + function _avC_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_X4_,1)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_X5_,[0],_avC_,_avB_)}, + _avz_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_X6_,_avA_,_avy_,_avx_)}], + _arN_=caml_call4(Runtime_ocaml_Runtime[63],_X7_,_arM_,_arL_,_arK_)} + catch(_avw_) + {_avw_ = caml_wrap_exception(_avw_); + if(_avw_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_XY_]; + throw _avw_} + var + l_841_1_1_applicable= + caml_call3 + (Runtime_ocaml_Runtime[28],_X8_,Runtime_ocaml_Runtime[12],_arN_); + try + {var + _arO_=function(param){return 0}, + _arP_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_X__,1)}, + _arQ_= + [0, + function(param) + {function _au5_(param){return 1} + function _au6_(param) + {switch(menage[2][3][0]) + {case 0:var _avv_=1;break; + case 1:var _avv_=1;break; + case 2:var _avv_=0;break; + case 3:var _avv_=1;break; + default:var _avv_=1} + return caml_call2(Runtime_ocaml_Runtime[29],_X$_,_avv_)} + var + _au7_= + [0, + function(param) + {function _au8_(param){throw Runtime_ocaml_Runtime[2]} + function _au9_(param){return 0} + var + _au__= + [0, + function(param) + {function _au$_(param){return 1} + function _ava_(param) + {var _avp_=menage[2][3]; + switch(_avp_[0]) + {case 0:var _avq_=0;break; + case 1:var _avq_=0;break; + case 2: + var proprietaire=_avp_[1]; + switch(proprietaire[5][0]) + {case 0:var _avr_=1;break; + case 1:var _avr_=0;break; + case 2:var _avr_=0;break; + default:var _avr_=0} + switch(proprietaire[5][0]) + {case 0:var _avs_=0;break; + case 1:var _avs_=0;break; + case 2:var _avs_=0;break; + default:var _avs_=1} + var + _avt_=caml_call2(Runtime_ocaml_Runtime[84],_avs_,_avr_), + _avu_=0 === proprietaire[10][3][0]?1:0, + _avq_=caml_call2(Runtime_ocaml_Runtime[83],_avu_,_avt_); + break; + case 3:var _avq_=0;break; + default:var _avq_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_Ya_,_avq_)} + var + _avb_= + [0, + function(param) + {function _avc_(param){return 1} + function _avd_(param) + {var _avl_=menage[2][3]; + switch(_avl_[0]) + {case 0:var _avm_=0;break; + case 1:var _avm_=0;break; + case 2: + var proprietaire=_avl_[1]; + switch(proprietaire[5][0]) + {case 0:var _avn_=0;break; + case 1:var _avn_=1;break; + case 2:var _avn_=0;break; + default:var _avn_=0} + var + _avo_=0 === proprietaire[10][3][0]?1:0, + _avm_=caml_call2(Runtime_ocaml_Runtime[83],_avo_,_avn_); + break; + case 3:var _avm_=0;break; + default:var _avm_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_Yb_,_avm_)} + var + _ave_= + [0, + function(param) + {function _avf_(param){return 1} + function _avg_(param) + {var _avh_=menage[2][3]; + switch(_avh_[0]) + {case 0:var _avi_=0;break; + case 1:var _avi_=0;break; + case 2: + var proprietaire=_avh_[1]; + switch(proprietaire[5][0]) + {case 0:var _avj_=0;break; + case 1:var _avj_=0;break; + case 2:var _avj_=1;break; + default:var _avj_=0} + var + _avk_=0 === proprietaire[10][3][0]?1:0, + _avi_=caml_call2(Runtime_ocaml_Runtime[83],_avk_,_avj_); + break; + case 3:var _avi_=0;break; + default:var _avi_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_Yc_,_avi_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Yd_,[0],_avg_,_avf_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Ye_,_ave_,_avd_,_avc_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Yf_,_avb_,_ava_,_au$_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Yg_,_au__,_au9_,_au8_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Yh_,_au7_,_au6_,_au5_)}], + _arR_=caml_call4(Runtime_ocaml_Runtime[63],_Yi_,_arQ_,_arP_,_arO_)} + catch(_au4_) + {_au4_ = caml_wrap_exception(_au4_); + if(_au4_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_X9_]; + throw _au4_} + var + condition_accession_propriete= + caml_call3 + (Runtime_ocaml_Runtime[28],_Yj_,Runtime_ocaml_Runtime[12],_arR_); + try + {var + _arS_=function(param){return menage}, + _arT_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Yl_,1)}, + _arU_=caml_call4(Runtime_ocaml_Runtime[63],_Ym_,[0],_arT_,_arS_), + eligibilite_commune_dot_menage= + caml_call3(Runtime_ocaml_Runtime[28],_Yn_,embed_menage,_arU_)} + catch(_au3_) + {_au3_ = caml_wrap_exception(_au3_); + if(_au3_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Yk_]; + throw _au3_} + try + {var + _arV_=function(param){return demandeur}, + _arW_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Yp_,1)}, + _arX_=caml_call4(Runtime_ocaml_Runtime[63],_Yq_,[0],_arW_,_arV_), + eligibilite_commune_dot_demand= + caml_call3(Runtime_ocaml_Runtime[28],_Yr_,embed_demandeur,_arX_)} + catch(_au2_) + {_au2_ = caml_wrap_exception(_au2_); + if(_au2_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Yo_]; + throw _au2_} + try + {var + _arY_=function(param){return date_courante}, + _arZ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Yt_,1)}, + _ar0_=caml_call4(Runtime_ocaml_Runtime[63],_Yu_,[0],_arZ_,_arY_), + eligibilite_commune_dot_date_c= + caml_call3 + (Runtime_ocaml_Runtime[28],_Yv_,Runtime_ocaml_Runtime[16],_ar0_)} + catch(_au1_) + {_au1_ = caml_wrap_exception(_au1_); + if(_au1_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Ys_]; + throw _au1_} + function eligibilite_commune_dot_condit(param) + {function _auW_(param){return 1} + function _auX_(param) + {var _auZ_=menage[2][3]; + switch(_auZ_[0]) + {case 0:var _au0_=0;break; + case 1:var logement_foyer=_auZ_[1],_au0_=logement_foyer[6];break; + case 2:var _au0_=0;break; + case 3:var _au0_=0;break; + default:var _au0_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_Yw_,_au0_)} + var _auY_=caml_call4(Runtime_ocaml_Runtime[63],_Yx_,[0],_auX_,_auW_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _Yy_, + Runtime_ocaml_Runtime[12], + _auY_)} + function eligibilite_commune_dot_condit$0(param) + {function _auR_(param){return 1} + function _auS_(param) + {var _auU_=menage[2][3]; + switch(_auU_[0]) + {case 0:var _auV_=0;break; + case 1:var logement_foyer=_auU_[1],_auV_=logement_foyer[6];break; + case 2:var _auV_=0;break; + case 3:var _auV_=0;break; + default:var _auV_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_Yz_,_auV_)} + var _auT_=caml_call4(Runtime_ocaml_Runtime[63],_YA_,[0],_auS_,_auR_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _YB_, + Runtime_ocaml_Runtime[12], + _auT_)} + function eligibilite_commune_dot_date_e(param) + {throw Runtime_ocaml_Runtime[2]} + var + _ar1_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_YC_,eligibilite_aides_personnelle_), + [0, + eligibilite_commune_dot_menage, + eligibilite_commune_dot_demand, + eligibilite_commune_dot_date_c, + eligibilite_commune_dot_condit, + eligibilite_commune_dot_condit$0, + eligibilite_commune_dot_date_e]), + result$0=caml_call2(Runtime_ocaml_Runtime[27],_YD_,_ar1_), + eligibilite_commune_dot_eligib=result$0[2], + eligibilite_commune_dot_nombre=result$0[3], + eligibilite_commune_dot_coeffi=result$0[4], + eligibilite_commune_dot_condit$1=result$0[5]; + try + {var + _ar2_=function(param){return eligibilite_commune_dot_coeffi}, + _ar3_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YF_,1)}, + _ar4_=caml_call4(Runtime_ocaml_Runtime[63],_YG_,[0],_ar3_,_ar2_)} + catch(_auQ_) + {_auQ_ = caml_wrap_exception(_auQ_); + if(_auQ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_YE_]; + throw _auQ_} + var + _ar5_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte= + caml_call3(Runtime_ocaml_Runtime[28],_YH_,_ar5_,_ar4_); + try + {var + _ar6_=function(param){return eligibilite_commune_dot_nombre}, + _ar7_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YJ_,1)}, + _ar8_=caml_call4(Runtime_ocaml_Runtime[63],_YK_,[0],_ar7_,_ar6_)} + catch(_auP_) + {_auP_ = caml_wrap_exception(_auP_); + if(_auP_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_YI_]; + throw _auP_} + var + nombre_personnes_a_charge_pris= + caml_call3 + (Runtime_ocaml_Runtime[28],_YL_,Runtime_ocaml_Runtime[14],_ar8_); + try + {var + _ar9_= + function(param) + {var + _auN_= + caml_call1 + (Runtime_ocaml_Runtime[67],condition_accession_propriete), + _auO_= + caml_call1 + (Runtime_ocaml_Runtime[67],eligibilite_commune_dot_eligib); + return caml_call2(Runtime_ocaml_Runtime[84],_auO_,_auN_)?_YN_:_YO_}, + _ar__= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YP_,1)}, + _ar$_=caml_call4(Runtime_ocaml_Runtime[63],_YQ_,[0],_ar__,_ar9_)} + catch(_auM_) + {_auM_ = caml_wrap_exception(_auM_); + if(_auM_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_YM_]; + throw _auM_} + var + eligibilite_dispositions_commu= + caml_call3 + (Runtime_ocaml_Runtime[28],_YR_,embed_type_eligibilite_allocat,_ar$_); + try + {var + _asa_=function(param){return 0}, + _asb_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YT_,1)}, + _asc_= + [0, + function(param) + {function _asO_(param){return 1} + function _asP_(param) + {var _auA_=menage[1],_auB_=0; + function _auC_(acc,prestation) + {var + _auF_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_YU_), + _auG_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_YV_), + _auH_=caml_call2(Runtime_ocaml_Runtime[84],_auG_,_auF_), + _auI_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_YW_), + _auJ_=caml_call2(Runtime_ocaml_Runtime[84],_auI_,_auH_), + _auK_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_YX_), + _auL_=caml_call2(Runtime_ocaml_Runtime[84],_auK_,_auJ_); + return caml_call2(Runtime_ocaml_Runtime[84],acc,_auL_)} + var + _auD_=caml_call3(Runtime_ocaml_Runtime[136],_auC_,_auB_,_auA_), + _auE_= + caml_call2 + (Runtime_ocaml_Runtime[83],l_841_1_1_applicable,_auD_); + return caml_call2(Runtime_ocaml_Runtime[29],_YY_,_auE_)} + var + _asQ_= + [0, + function(param) + {function _asR_(param){return 1} + function _asS_(param) + {var + _aun_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$278), + _auo_=menage[3]; + function _aup_(personne_a_charge) + {if(0 !== personne_a_charge[0])return 0; + var + enfant=personne_a_charge[1], + _auu_=enfant[3], + _auv_=enfant[4], + _auw_=0 === enfant[8][0]?_YZ_:_Y4_, + _aux_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Y0_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _auw_, + _auv_, + _auu_]), + _auy_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Y1_, + prestations_familiales_dot_dro), + _aux_), + _auz_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Y2_, + Runtime_ocaml_Runtime[12], + _auy_); + return caml_call2(Runtime_ocaml_Runtime[27],_Y3_,_auz_)} + var + _auq_=caml_call2(Runtime_ocaml_Runtime[90],_aup_,_auo_), + _aur_=caml_call1(Runtime_ocaml_Runtime[68],_auq_), + _aus_=caml_call2(Runtime_ocaml_Runtime[86],_aur_,_aun_), + _aut_= + caml_call2 + (Runtime_ocaml_Runtime[83],l_841_1_2_applicable,_aus_); + return caml_call2(Runtime_ocaml_Runtime[29],_Y5_,_aut_)} + var + _asT_= + [0, + function(param) + {function _asU_(param){return 1} + function _asV_(param) + {var _at8_=menage[5]; + switch(_at8_[0]) + {case 0:var _at9_=0;break; + case 1: + var + date_mariage=_at8_[1], + _auf_= + caml_call3 + (Runtime_ocaml_Runtime[94],2,date_mariage,duree_l841_1_3), + _at9_= + caml_call2(Runtime_ocaml_Runtime[120],date_courante,_auf_); + break; + case 2:var _at9_=0;break; + case 3:var _at9_=0;break; + case 4:var _at9_=0;break; + default:var _at9_=0} + var + _at__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$421), + _at$_=menage[3]; + function _aua_(personne_a_charge) + {if(0 !== personne_a_charge[0])return 0; + var + enfant=personne_a_charge[1], + _aug_=enfant[3], + _auh_=enfant[4], + _aui_=0 === enfant[8][0]?_Y6_:_Y$_, + _auj_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Y7_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _aui_, + _auh_, + _aug_]), + _auk_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Y8_, + prestations_familiales_dot_dro), + _auj_), + _aul_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Y9_, + Runtime_ocaml_Runtime[12], + _auk_), + _aum_=caml_call2(Runtime_ocaml_Runtime[27],_Y__,_aul_); + return caml_call1(Runtime_ocaml_Runtime[67],_aum_)} + var + _aub_=caml_call2(Runtime_ocaml_Runtime[90],_aua_,_at$_), + _auc_=caml_call1(Runtime_ocaml_Runtime[68],_aub_), + _aud_=caml_call2(Runtime_ocaml_Runtime[86],_auc_,_at__), + _aue_=caml_call2(Runtime_ocaml_Runtime[83],_aud_,_at9_); + return caml_call2(Runtime_ocaml_Runtime[29],_Za_,_aue_)} + var + _asW_= + [0, + function(param) + {function _asX_(param){return 1} + function _asY_(param) + {var + _atZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$279), + _at0_=menage[3]; + function _at1_(personne_a_charge) + {var + _at5_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Zb_, + embed_personne_a_charge, + personne_a_charge), + _at6_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Zc_, + eligibilite_commune_dot_condit$1), + _at5_), + _at7_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Zd_, + Runtime_ocaml_Runtime[12], + _at6_); + return caml_call2(Runtime_ocaml_Runtime[27],_Ze_,_at7_)} + var + _at2_=caml_call2(Runtime_ocaml_Runtime[90],_at1_,_at0_), + _at3_=caml_call1(Runtime_ocaml_Runtime[68],_at2_), + _at4_=caml_call2(Runtime_ocaml_Runtime[126],_at3_,_atZ_); + return caml_call2(Runtime_ocaml_Runtime[29],_Zf_,_at4_)} + var + _asZ_= + [0, + function(param) + {function _as0_(param){return 1} + function _as1_(param) + {var + _atT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$280), + _atU_=menage[3]; + function _atV_(personne_a_charge) + {if(0 === personne_a_charge[0])return 0; + var parent=personne_a_charge[1]; + return caml_call2 + (Runtime_ocaml_Runtime[83],parent[3],parent[5])} + var + _atW_=caml_call2(Runtime_ocaml_Runtime[90],_atV_,_atU_), + _atX_=caml_call1(Runtime_ocaml_Runtime[68],_atW_), + _atY_=caml_call2(Runtime_ocaml_Runtime[126],_atX_,_atT_); + return caml_call2(Runtime_ocaml_Runtime[29],_Zg_,_atY_)} + var + _as2_= + [0, + function(param) + {function _as3_(param){return 1} + function _as4_(param) + {switch(menage[5][0]) + {case 0: + var + _atN_=menage[7], + _atO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$422), + _atP_=caml_call1(Runtime_ocaml_Runtime[68],menage[3]), + _atQ_=caml_call2(Runtime_ocaml_Runtime[86],_atP_,_atO_), + _atR_=caml_call2(Runtime_ocaml_Runtime[83],_atQ_,_atN_); + break; + case 1:var _atR_=0;break; + case 2:var _atR_=0;break; + case 3:var _atR_=0;break; + case 4:var _atR_=0;break; + default:var _atR_=0} + var + _atS_= + caml_call2 + (Runtime_ocaml_Runtime[83],l_841_1_6_applicable,_atR_); + return caml_call2(Runtime_ocaml_Runtime[29],_Zh_,_atS_)} + function _as5_(param) + {function _atr_(param){return 1} + function _ats_(param) + {var + _atz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$281), + _atA_=menage[3]; + function _atB_(personne_a_charge) + {if(0 !== personne_a_charge[0])return 0; + var + enfant=personne_a_charge[1], + _atH_=enfant[3], + _atI_=enfant[4], + _atJ_=0 === enfant[8][0]?_Zi_:_Zn_, + _atK_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Zj_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _atJ_, + _atI_, + _atH_]), + _atL_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Zk_, + prestations_familiales_dot_dro), + _atK_), + _atM_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Zl_, + Runtime_ocaml_Runtime[12], + _atL_); + return caml_call2(Runtime_ocaml_Runtime[27],_Zm_,_atM_)} + var + _atC_=caml_call2(Runtime_ocaml_Runtime[90],_atB_,_atA_), + _atD_=caml_call1(Runtime_ocaml_Runtime[68],_atC_), + _atE_=caml_call2(Runtime_ocaml_Runtime[126],_atD_,_atz_); + switch(menage[9][0]) + {case 0:var _atF_=1;break; + case 1:var _atF_=1;break; + case 2:var _atF_=1;break; + case 3:var _atF_=1;break; + case 4:var _atF_=0;break; + case 5:var _atF_=0;break; + case 6:var _atF_=0;break; + case 7:var _atF_=0;break; + default:var _atF_=1} + var _atG_=caml_call2(Runtime_ocaml_Runtime[83],_atF_,_atE_); + return caml_call2(Runtime_ocaml_Runtime[29],_Zo_,_atG_)} + var + _att_= + [0, + function(param) + {function _atu_(param){return 1} + function _atv_(param) + {var _atw_=demandeur[5]; + switch(menage[9][0]) + {case 0:var _atx_=1;break; + case 1:var _atx_=1;break; + case 2:var _atx_=1;break; + case 3:var _atx_=1;break; + case 4:var _atx_=0;break; + case 5:var _atx_=0;break; + case 6:var _atx_=0;break; + case 7:var _atx_=0;break; + default:var _atx_=1} + var _aty_=caml_call2(Runtime_ocaml_Runtime[83],_atx_,_atw_); + return caml_call2(Runtime_ocaml_Runtime[29],_Zp_,_aty_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Zq_,[0],_atv_,_atu_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Zr_,_att_,_ats_,_atr_)} + var + _as6_= + [0, + function(param) + {function _as7_(param){return 1} + function _as8_(param) + {var + _atd_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$282), + _ate_=menage[3]; + function _atf_(personne_a_charge) + {if(0 !== personne_a_charge[0])return 0; + var + enfant=personne_a_charge[1], + _atl_=enfant[3], + _atm_=enfant[4], + _atn_=0 === enfant[8][0]?_Zs_:_Zx_, + _ato_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Zt_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _atn_, + _atm_, + _atl_]), + _atp_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Zu_, + prestations_familiales_dot_dro), + _ato_), + _atq_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _Zv_, + Runtime_ocaml_Runtime[12], + _atp_); + return caml_call2(Runtime_ocaml_Runtime[27],_Zw_,_atq_)} + var + _atg_=caml_call2(Runtime_ocaml_Runtime[90],_atf_,_ate_), + _ath_=caml_call1(Runtime_ocaml_Runtime[68],_atg_), + _ati_=caml_call2(Runtime_ocaml_Runtime[126],_ath_,_atd_); + switch(menage[9][0]) + {case 0:var _atj_=0;break; + case 1:var _atj_=0;break; + case 2:var _atj_=0;break; + case 3:var _atj_=0;break; + case 4:var _atj_=1;break; + case 5:var _atj_=1;break; + case 6:var _atj_=0;break; + case 7:var _atj_=0;break; + default:var _atj_=0} + var _atk_=caml_call2(Runtime_ocaml_Runtime[83],_atj_,_ati_); + return caml_call2(Runtime_ocaml_Runtime[29],_Zy_,_atk_)} + var + _as9_= + [0, + function(param) + {function _as__(param){return 1} + function _as$_(param) + {var _ata_=demandeur[5]; + switch(menage[9][0]) + {case 0:var _atb_=0;break; + case 1:var _atb_=0;break; + case 2:var _atb_=0;break; + case 3:var _atb_=0;break; + case 4:var _atb_=1;break; + case 5:var _atb_=1;break; + case 6:var _atb_=0;break; + case 7:var _atb_=0;break; + default:var _atb_=0} + var _atc_=caml_call2(Runtime_ocaml_Runtime[83],_atb_,_ata_); + return caml_call2(Runtime_ocaml_Runtime[29],_Zz_,_atc_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ZA_,[0],_as$_,_as__)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ZB_,_as9_,_as8_,_as7_)}, + _as5_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ZC_,_as6_,_as4_,_as3_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ZD_,_as2_,_as1_,_as0_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ZE_,_asZ_,_asY_,_asX_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ZF_,_asW_,_asV_,_asU_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ZG_,_asT_,_asS_,_asR_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_ZH_,_asQ_,_asP_,_asO_)}], + _asd_=caml_call4(Runtime_ocaml_Runtime[63],_ZI_,_asc_,_asb_,_asa_)} + catch(_asN_) + {_asN_ = caml_wrap_exception(_asN_); + if(_asN_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_YS_]; + throw _asN_} + var + eligibilite_allocation_logemen$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_ZJ_,Runtime_ocaml_Runtime[12],_asd_); + try + {var + _ase_= + function(param) + {var + _asM_= + caml_call2 + (Runtime_ocaml_Runtime[86],eligibilite_dispositions_commu,_ZL_); + return caml_call2 + (Runtime_ocaml_Runtime[84], + _asM_, + beneficie_aide_personnalisee_l) + ?_ZM_ + :eligibilite_allocation_logemen$0?_ZN_:_ZO_}, + _asf_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ZP_,1)}, + _asg_= + [0, + function(param) + {function _asj_(param){return _ZQ_} + function _ask_(param) + {var _asJ_=menage[2][3]; + switch(_asJ_[0]) + {case 0:var _asK_=0;break; + case 1:var _asK_=0;break; case 2: var - propriete = match[1], - _Yt_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _O3_, embed_pret, propriete[10]), - _Yu_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _O4_, - caracteristiques_pret_l831_1_1), - _Yt_), - _Yv_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _O5_, - Runtime_ocaml_Runtime[12], - _Yu_), - _Ys_ = caml_call2(Runtime_ocaml_Runtime[27], _O6_, _Yv_); + proprietaire=_asJ_[1], + _asL_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), + _asK_= + caml_call2 + (Runtime_ocaml_Runtime[125],proprietaire[10][2],_asL_); break; - case 3: - var _Ys_ = 0; break; - default: var _Ys_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _O2_, _Ys_); - } - var - _Yc_ = - [0, - function(param){ - function _Yd_(param){return 1;} - function _Ye_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var location = match[1], match$0 = location[1]; - switch(match$0[0]){ - case 0: - var convention = match$0[1], _Yq_ = convention[1]; break; - case 1: - var convention$0 = match$0[1], _Yq_ = convention$0[1]; - break; - default: var _Yq_ = 0; - } - var _Yr_ = _Yq_; - break; - case 1: - var _Yr_ = 0; break; + case 3:var _asK_=0;break; + default:var _asK_=0} + return caml_call2(Runtime_ocaml_Runtime[29],_ZR_,_asK_)} + function _asl_(param) + {function _asH_(param){return _ZS_} + function _asI_(param) + {return caml_call2 + (Runtime_ocaml_Runtime[29],_ZT_,demandeur[4])} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ZU_,[0],_asI_,_asH_)} + var + _asm_= + [0, + function(param) + {function _asn_(param){return _ZV_} + function _aso_(param) + {var _asv_=menage[2][3]; + switch(_asv_[0]) + {case 0:var _asw_=0;break; + case 1:var _asw_=0;break; case 2: - var _Yr_ = 0; break; - case 3: - var _Yr_ = 0; break; - default: var _Yr_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _O7_, _Yr_); - } - var - _Yf_ = + var proprietaire=_asv_[1],_asz_=proprietaire[10][4]; + if(0 === _asz_[0]) + var + date_accord=_asz_[1], + _asA_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), + _asB_= + caml_call2(Runtime_ocaml_Runtime[120],date_accord,_asA_); + else + var _asB_=0; + var + _asC_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), + _asD_= + caml_call2 + (Runtime_ocaml_Runtime[125],proprietaire[10][2],_asC_), + _asE_=caml_call2(Runtime_ocaml_Runtime[83],_asD_,_asB_), + _asF_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), + _asG_= + caml_call2 + (Runtime_ocaml_Runtime[125],proprietaire[10][2],_asF_), + _asw_=caml_call2(Runtime_ocaml_Runtime[84],_asG_,_asE_); + break; + case 3:var _asw_=0;break; + default:var _asw_=0} + switch(menage[9][0]) + {case 0:var _asx_=1;break; + case 1:var _asx_=1;break; + case 2:var _asx_=1;break; + case 3:var _asx_=1;break; + case 4:var _asx_=0;break; + case 5:var _asx_=0;break; + case 6:var _asx_=0;break; + case 7:var _asx_=0;break; + default:var _asx_=1} + var _asy_=caml_call2(Runtime_ocaml_Runtime[83],_asx_,_asw_); + return caml_call2(Runtime_ocaml_Runtime[29],_ZW_,_asy_)} + var + _asp_= + [0, + function(param) + {function _asq_(param){return _ZX_} + function _asr_(param) + {var _ass_=demandeur[6]; + switch(menage[9][0]) + {case 0:var _ast_=0;break; + case 1:var _ast_=0;break; + case 2:var _ast_=0;break; + case 3:var _ast_=0;break; + case 4:var _ast_=0;break; + case 5:var _ast_=0;break; + case 6:var _ast_=0;break; + case 7:var _ast_=0;break; + default:var _ast_=1} + var _asu_=caml_call2(Runtime_ocaml_Runtime[83],_ast_,_ass_); + return caml_call2(Runtime_ocaml_Runtime[29],_ZY_,_asu_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_ZZ_,[0],_asr_,_asq_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Z0_,_asp_,_aso_,_asn_)}, + _asl_]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Z1_,_asm_,_ask_,_asj_)}], + _ash_=caml_call4(Runtime_ocaml_Runtime[63],_Z2_,_asg_,_asf_,_ase_)} + catch(_asi_) + {_asi_ = caml_wrap_exception(_asi_); + if(_asi_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ZK_]; + throw _asi_} + var + eligibilite_l841_2= + caml_call3 + (Runtime_ocaml_Runtime[28],_Z3_,embed_type_eligibilite_allocat,_ash_); + return [0, + eligibilite_l841_2, + nombre_personnes_a_charge_pris, + coefficents_enfants_garde_alte]} + function eligibilite_aide_personnalisee(eligibilite_aide_personnalisee) + {var + menage=eligibilite_aide_personnalisee[1], + demandeur=eligibilite_aide_personnalisee[2], + date_courante=eligibilite_aide_personnalisee[3]; + function _aoT_(pret) + {try + {var + _aq4_=function(param){return 0}, + _aq5_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_Z5_,1)}, + _aq6_= + [0, + function(param) + {function _aq9_(param){throw Runtime_ocaml_Runtime[2]} + function _aq__(param){return 0} + var + _aq$_= + [0, + function(param) + {function _ara_(param){return 1} + function _arb_(param) + {switch(pret[1][0]) + {case 0:var _ark_=0;break; + case 1:var _ark_=1;break; + case 2:var _ark_=0;break; + case 3:var _ark_=0;break; + default:var _ark_=0} + switch(pret[1][0]) + {case 0:var _arl_=1;break; + case 1:var _arl_=0;break; + case 2:var _arl_=0;break; + case 3:var _arl_=0;break; + default:var _arl_=0} + var + _arm_=caml_call2(Runtime_ocaml_Runtime[84],_arl_,_ark_), + _arn_=0 === pret[3][0]?1:0, + _aro_=caml_call2(Runtime_ocaml_Runtime[83],_arn_,_arm_); + return caml_call2(Runtime_ocaml_Runtime[29],_Z6_,_aro_)} + var + _arc_= [0, - function(param){ - function _Yg_(param){return 1;} - function _Yh_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _Ym_ = 0; break; - case 1: - var _Ym_ = 0; break; + function(param) + {function _ard_(param){return 1} + function _are_(param) + {switch(pret[1][0]) + {case 0:var _arf_=0;break; + case 1:var _arf_=0;break; + case 2:var _arf_=0;break; + case 3:var _arf_=1;break; + default:var _arf_=0} + switch(pret[1][0]) + {case 0:var _arg_=0;break; + case 1:var _arg_=0;break; + case 2:var _arg_=1;break; + case 3:var _arg_=0;break; + default:var _arg_=0} + var + _arh_=caml_call2(Runtime_ocaml_Runtime[84],_arg_,_arf_), + _ari_=0 === pret[3][0]?0:1, + _arj_=caml_call2(Runtime_ocaml_Runtime[83],_ari_,_arh_); + return caml_call2(Runtime_ocaml_Runtime[29],_Z7_,_arj_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_Z8_,[0],_are_,_ard_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Z9_,_arc_,_arb_,_ara_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_Z__,_aq$_,_aq__,_aq9_)}], + _aq7_=caml_call4(Runtime_ocaml_Runtime[63],_Z$_,_aq6_,_aq5_,_aq4_); + return _aq7_} + catch(_aq8_) + {_aq8_ = caml_wrap_exception(_aq8_); + if(_aq8_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_Z4_]; + throw _aq8_}} + var + caracteristiques_pret_l831_1_1= + caml_call3 + (Runtime_ocaml_Runtime[28],__a_,Runtime_ocaml_Runtime[10],_aoT_); + function _aoU_(pret) + {try + {var + _aq0_=function(param){return 0}, + _aq1_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],__c_,1)}, + _aq2_=caml_call4(Runtime_ocaml_Runtime[63],__d_,[0],_aq1_,_aq0_); + return _aq2_} + catch(_aq3_) + {_aq3_ = caml_wrap_exception(_aq3_); + if(_aq3_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],__b_]; + throw _aq3_}} + var + caracteristiques_pret_l831_1_6= + caml_call3 + (Runtime_ocaml_Runtime[28],__e_,Runtime_ocaml_Runtime[10],_aoU_); + try + {var + _aoV_=function(param){return menage}, + _aoW_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],__g_,1)}, + _aoX_=caml_call4(Runtime_ocaml_Runtime[63],__h_,[0],_aoW_,_aoV_), + eligibilite_commune_dot_menage= + caml_call3(Runtime_ocaml_Runtime[28],__i_,embed_menage,_aoX_)} + catch(_aqZ_) + {_aqZ_ = caml_wrap_exception(_aqZ_); + if(_aqZ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],__f_]; + throw _aqZ_} + try + {var + _aoY_=function(param){return demandeur}, + _aoZ_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],__k_,1)}, + _ao0_=caml_call4(Runtime_ocaml_Runtime[63],__l_,[0],_aoZ_,_aoY_), + eligibilite_commune_dot_demand= + caml_call3(Runtime_ocaml_Runtime[28],__m_,embed_demandeur,_ao0_)} + catch(_aqY_) + {_aqY_ = caml_wrap_exception(_aqY_); + if(_aqY_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],__j_]; + throw _aqY_} + try + {var + _ao1_=function(param){return date_courante}, + _ao2_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],__o_,1)}, + _ao3_=caml_call4(Runtime_ocaml_Runtime[63],__p_,[0],_ao2_,_ao1_), + eligibilite_commune_dot_date_c= + caml_call3 + (Runtime_ocaml_Runtime[28],__q_,Runtime_ocaml_Runtime[16],_ao3_)} + catch(_aqX_) + {_aqX_ = caml_wrap_exception(_aqX_); + if(_aqX_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],__n_]; + throw _aqX_} + function eligibilite_commune_dot_condit(param) + {throw Runtime_ocaml_Runtime[2]} + function eligibilite_commune_dot_condit$0(param) + {throw Runtime_ocaml_Runtime[2]} + function eligibilite_commune_dot_date_e(param) + {function _aqT_(param) + {return caml_call3(Runtime_ocaml_Runtime[57],2021,5,1)} + function _aqU_(param) + {switch(menage[2][3][0]) + {case 0:var _aqW_=0;break; + case 1:var _aqW_=0;break; + case 2:var _aqW_=1;break; + case 3:var _aqW_=0;break; + default:var _aqW_=0} + return caml_call2(Runtime_ocaml_Runtime[29],__r_,_aqW_)} + var _aqV_=caml_call4(Runtime_ocaml_Runtime[63],__s_,[0],_aqU_,_aqT_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + __t_, + Runtime_ocaml_Runtime[16], + _aqV_)} + var + _ao4_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],__u_,eligibilite_aides_personnelle_), + [0, + eligibilite_commune_dot_menage, + eligibilite_commune_dot_demand, + eligibilite_commune_dot_date_c, + eligibilite_commune_dot_condit, + eligibilite_commune_dot_condit$0, + eligibilite_commune_dot_date_e]), + result=caml_call2(Runtime_ocaml_Runtime[27],__v_,_ao4_), + eligibilite_commune_dot_eligib=result[2], + eligibilite_commune_dot_nombre=result[3], + eligibilite_commune_dot_coeffi=result[4]; + try + {var + _ao5_=function(param){return 0}, + _ao6_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],__x_,1)}, + _ao7_= + [0, + function(param) + {function _aqN_(param){return 1} + function _aqO_(param) + {switch(menage[2][9][0]) + {case 0:var _aqP_=0;break; + case 1:var _aqP_=0;break; + default:var _aqP_=1} + var + _aqQ_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), + _aqR_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aqQ_), + _aqS_=caml_call2(Runtime_ocaml_Runtime[83],_aqR_,_aqP_); + return caml_call2(Runtime_ocaml_Runtime[29],__y_,_aqS_)} + return caml_call4(Runtime_ocaml_Runtime[63],__z_,[0],_aqO_,_aqN_)}], + _ao8_=caml_call4(Runtime_ocaml_Runtime[63],__A_,_ao7_,_ao6_,_ao5_)} + catch(_aqM_) + {_aqM_ = caml_wrap_exception(_aqM_); + if(_aqM_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],__w_]; + throw _aqM_} + var + logement_situe_commune_desequi= + caml_call3 + (Runtime_ocaml_Runtime[28],__B_,Runtime_ocaml_Runtime[12],_ao8_); + try + {var + _ao9_=function(param){return 0}, + _ao__= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],__D_,1)}, + _ao$_= + function(param) + {function _aqi_(param){throw Runtime_ocaml_Runtime[2]} + function _aqj_(param){return 0} + var + _aqk_= + [0, + function(param) + {function _aql_(param){return 1} + function _aqm_(param) + {var _aqH_=menage[2][3]; + switch(_aqH_[0]) + {case 0:var _aqI_=0;break; + case 1:var _aqI_=0;break; + case 2: + var + propriete=_aqH_[1], + _aqJ_= + caml_call3 + (Runtime_ocaml_Runtime[28],__F_,embed_pret,propriete[10]), + _aqK_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + __G_, + caracteristiques_pret_l831_1_1), + _aqJ_), + _aqL_= + caml_call3 + (Runtime_ocaml_Runtime[28], + __H_, + Runtime_ocaml_Runtime[12], + _aqK_), + _aqI_=caml_call2(Runtime_ocaml_Runtime[27],__I_,_aqL_); + break; + case 3:var _aqI_=0;break; + default:var _aqI_=0} + return caml_call2(Runtime_ocaml_Runtime[29],__E_,_aqI_)} + var + _aqn_= + [0, + function(param) + {function _aqo_(param){return 1} + function _aqp_(param) + {var _aqD_=menage[2][3]; + switch(_aqD_[0]) + {case 0: + var location=_aqD_[1],_aqE_=location[1]; + switch(_aqE_[0]) + {case 0:var convention=_aqE_[1],_aqF_=convention[1];break; + case 1: + var convention$0=_aqE_[1],_aqF_=convention$0[1];break; + default:var _aqF_=0} + var _aqG_=_aqF_; + break; + case 1:var _aqG_=0;break; + case 2:var _aqG_=0;break; + case 3:var _aqG_=0;break; + default:var _aqG_=0} + return caml_call2(Runtime_ocaml_Runtime[29],__J_,_aqG_)} + var + _aqq_= + [0, + function(param) + {function _aqr_(param){return 1} + function _aqs_(param) + {var _aqy_=menage[2][3]; + switch(_aqy_[0]) + {case 0:var _aqz_=0;break; + case 1:var _aqz_=0;break; + case 2:var _aqz_=0;break; + case 3:var _aqz_=0;break; + default: + var + propriete=_aqy_[1], + _aqA_= + caml_call3 + (Runtime_ocaml_Runtime[28],__L_,embed_pret,propriete[10]), + _aqB_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + __M_, + caracteristiques_pret_l831_1_6), + _aqA_), + _aqC_= + caml_call3 + (Runtime_ocaml_Runtime[28], + __N_, + Runtime_ocaml_Runtime[12], + _aqB_), + _aqz_=caml_call2(Runtime_ocaml_Runtime[27],__O_,_aqC_)} + return caml_call2(Runtime_ocaml_Runtime[29],__K_,_aqz_)} + var + _aqt_= + [0, + function(param) + {function _aqu_(param){return 1} + function _aqv_(param) + {var _aqw_=menage[2][3]; + switch(_aqw_[0]) + {case 0:var _aqx_=0;break; + case 1: + var logement_foyer=_aqw_[1],_aqx_=logement_foyer[2];break; + case 2:var _aqx_=0;break; + case 3:var _aqx_=0;break; + default:var _aqx_=0} + return caml_call2(Runtime_ocaml_Runtime[29],__P_,_aqx_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],__Q_,[0],_aqv_,_aqu_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],__R_,_aqt_,_aqs_,_aqr_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],__S_,_aqq_,_aqp_,_aqo_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],__T_,_aqn_,_aqm_,_aql_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],__U_,_aqk_,_aqj_,_aqi_)}, + _apa_= + [0, + function(param) + {function _ap9_(param){return 1} + function _ap__(param) + {var _aqg_=menage[2][3]; + switch(_aqg_[0]) + {case 0:var _aqh_=0;break; + case 1:var location=_aqg_[1],_aqh_=location[3];break; + case 2:var _aqh_=0;break; + case 3:var _aqh_=0;break; + default:var _aqh_=0} + return caml_call2(Runtime_ocaml_Runtime[29],__V_,_aqh_)} + var + _ap$_= + [0, + function(param) + {function _aqa_(param){return 1} + function _aqb_(param) + {var _aqc_=menage[2][3]; + switch(_aqc_[0]) + {case 0:var _aqd_=0;break; + case 1:var location=_aqc_[1],_aqd_=location[4];break; + case 2:var _aqd_=0;break; + case 3:var _aqd_=0;break; + default:var _aqd_=0} + switch(menage[9][0]) + {case 0:var _aqe_=1;break; + case 1:var _aqe_=1;break; + case 2:var _aqe_=1;break; + case 3:var _aqe_=1;break; + case 4:var _aqe_=0;break; + case 5:var _aqe_=0;break; + case 6:var _aqe_=0;break; + case 7:var _aqe_=0;break; + default:var _aqe_=1} + var _aqf_=caml_call2(Runtime_ocaml_Runtime[83],_aqe_,_aqd_); + return caml_call2(Runtime_ocaml_Runtime[29],__W_,_aqf_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],__X_,[0],_aqb_,_aqa_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],__Y_,_ap$_,_ap__,_ap9_)}, + _ao$_], + _apb_=caml_call4(Runtime_ocaml_Runtime[63],__Z_,_apa_,_ao__,_ao9_)} + catch(_ap8_) + {_ap8_ = caml_wrap_exception(_ap8_); + if(_ap8_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],__C_]; + throw _ap8_} + var + condition_logement_bailleur= + caml_call3 + (Runtime_ocaml_Runtime[28],__0_,Runtime_ocaml_Runtime[12],_apb_); + try + {var + _apc_=function(param){return eligibilite_commune_dot_coeffi}, + _apd_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],__2_,1)}, + _ape_=caml_call4(Runtime_ocaml_Runtime[63],__3_,[0],_apd_,_apc_)} + catch(_ap7_) + {_ap7_ = caml_wrap_exception(_ap7_); + if(_ap7_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],__1_]; + throw _ap7_} + var + _apf_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte= + caml_call3(Runtime_ocaml_Runtime[28],__4_,_apf_,_ape_); + try + {var + _apg_=function(param){return eligibilite_commune_dot_nombre}, + _aph_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],__6_,1)}, + _api_=caml_call4(Runtime_ocaml_Runtime[63],__7_,[0],_aph_,_apg_)} + catch(_ap6_) + {_ap6_ = caml_wrap_exception(_ap6_); + if(_ap6_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],__5_]; + throw _ap6_} + var + nombre_personnes_a_charge_pris= + caml_call3 + (Runtime_ocaml_Runtime[28],__8_,Runtime_ocaml_Runtime[14],_api_); + try + {var + _apj_=function(param){return 0}, + _apk_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],____,1)}, + _apl_= + [0, + function(param) + {function _apE_(param){return 1} + function _apF_(param) + {return caml_call2(Runtime_ocaml_Runtime[29],__$_,1)} + var + _apG_= + [0, + function(param) + {function _apH_(param){return 0} + function _apI_(param) + {var _ap2_=menage[2][3]; + switch(_ap2_[0]) + {case 0:var _ap3_=0;break; + case 1:var _ap3_=0;break; + case 2: + var + propriete=_ap2_[1], + _ap4_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), + _ap3_= + caml_call2 + (Runtime_ocaml_Runtime[130],propriete[10][2],_ap4_); + break; + case 3:var _ap3_=0;break; + default: + var + propriete$0=_ap2_[1], + _ap5_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), + _ap3_= + caml_call2 + (Runtime_ocaml_Runtime[130],propriete$0[10][2],_ap5_)} + return caml_call2(Runtime_ocaml_Runtime[29],_$a_,_ap3_)} + var + _apJ_= + [0, + function(param) + {function _apK_(param){return 1} + function _apL_(param) + {var _apM_=menage[2][3]; + switch(_apM_[0]) + {case 0:var _apN_=0;break; + case 1:var _apN_=0;break; case 2: - var _Ym_ = 0; break; - case 3: - var _Ym_ = 0; break; + var + propriete=_apM_[1], + _apO_=0 === propriete[9][0]?0:1, + _apP_= + caml_call2 + (Runtime_ocaml_Runtime[83], + _apO_, + logement_situe_commune_desequi), + _apQ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _apR_= + caml_call2 + (Runtime_ocaml_Runtime[115],propriete[10][2],_apQ_), + _apS_=caml_call2(Runtime_ocaml_Runtime[83],_apR_,_apP_), + _apT_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), + _apU_= + caml_call2 + (Runtime_ocaml_Runtime[130],propriete[10][2],_apT_), + _apN_=caml_call2(Runtime_ocaml_Runtime[83],_apU_,_apS_); + break; + case 3:var _apN_=0;break; default: var - propriete = match[1], - _Yn_ = - caml_call3 - (Runtime_ocaml_Runtime[28], _O9_, embed_pret, propriete[10]), - _Yo_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _O__, - caracteristiques_pret_l831_1_6), - _Yn_), - _Yp_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _O$_, - Runtime_ocaml_Runtime[12], - _Yo_), - _Ym_ = caml_call2(Runtime_ocaml_Runtime[27], _Pa_, _Yp_); - } - return caml_call2(Runtime_ocaml_Runtime[29], _O8_, _Ym_); - } - var - _Yi_ = - [0, - function(param){ - function _Yj_(param){return 1;} - function _Yk_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _Yl_ = 0; break; - case 1: - var logement_foyer = match[1], _Yl_ = logement_foyer[2]; - break; - case 2: - var _Yl_ = 0; break; - case 3: - var _Yl_ = 0; break; - default: var _Yl_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Pb_, _Yl_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Pc_, [0], _Yk_, _Yj_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Pd_, _Yi_, _Yh_, _Yg_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Pe_, _Yf_, _Ye_, _Yd_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _Pf_, _Yc_, _Yb_, _Ya_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _Pg_, _X$_, _X__, _X9_); - }, - _W1_ = - [0, - function(param){ - function _X0_(param){return 1;} - function _X1_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _X8_ = 0; break; - case 1: - var location = match[1], _X8_ = location[3]; break; - case 2: - var _X8_ = 0; break; - case 3: - var _X8_ = 0; break; - default: var _X8_ = 0; - } - return caml_call2(Runtime_ocaml_Runtime[29], _Ph_, _X8_); - } - var - _X2_ = - [0, - function(param){ - function _X3_(param){return 1;} - function _X4_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _X5_ = 0; break; - case 1: - var location = match[1], _X5_ = location[4]; break; - case 2: - var _X5_ = 0; break; - case 3: - var _X5_ = 0; break; - default: var _X5_ = 0; - } - switch(menage[9][0]){ - case 0: - var _X6_ = 1; break; - case 1: - var _X6_ = 1; break; - case 2: - var _X6_ = 1; break; - case 3: - var _X6_ = 1; break; - case 4: - var _X6_ = 0; break; - case 5: - var _X6_ = 0; break; - case 6: - var _X6_ = 0; break; - case 7: - var _X6_ = 0; break; - default: var _X6_ = 1; - } - var _X7_ = caml_call2(Runtime_ocaml_Runtime[83], _X6_, _X5_); - return caml_call2(Runtime_ocaml_Runtime[29], _Pi_, _X7_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _Pj_, [0], _X4_, _X3_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _Pk_, _X2_, _X1_, _X0_); - }, - _W0_], - _W2_ = caml_call4(Runtime_ocaml_Runtime[63], _Pl_, _W1_, _WZ_, _WY_); - } - catch(_XZ_){ - var _WX_ = caml_wrap_exception(_XZ_); - if(_WX_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _O0_], 1); - throw caml_maybe_attach_backtrace(_WX_, 0); - } - var - condition_logement_bailleur = - caml_call3 - (Runtime_ocaml_Runtime[28], _Pm_, Runtime_ocaml_Runtime[12], _W2_); - try{ - var - _W4_ = function(param){return eligibilite_commune_dot_coeffi;}, - _W5_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Po_, 1); - }, - _W6_ = caml_call4(Runtime_ocaml_Runtime[63], _Pp_, [0], _W5_, _W4_); - } - catch(_XY_){ - var _W3_ = caml_wrap_exception(_XY_); - if(_W3_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Pn_], 1); - throw caml_maybe_attach_backtrace(_W3_, 0); - } - var - _W7_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte = - caml_call3(Runtime_ocaml_Runtime[28], _Pq_, _W7_, _W6_); - try{ - var - _W9_ = function(param){return eligibilite_commune_dot_nombre;}, - _W__ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ps_, 1); - }, - _W$_ = caml_call4(Runtime_ocaml_Runtime[63], _Pt_, [0], _W__, _W9_); - } - catch(_XX_){ - var _W8_ = caml_wrap_exception(_XX_); - if(_W8_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Pr_], 1); - throw caml_maybe_attach_backtrace(_W8_, 0); - } - var - nombre_personnes_a_charge_pris = - caml_call3 - (Runtime_ocaml_Runtime[28], _Pu_, Runtime_ocaml_Runtime[14], _W$_); - try{ - var - _Xb_ = function(param){return 0;}, - _Xc_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Pw_, 1); - }, - _Xd_ = - [0, - function(param){ - function _Xx_(param){return 1;} - function _Xy_(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Px_, 1); - } - var - _Xz_ = - [0, - function(param){ - function _XA_(param){return 0;} - function _XB_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _XU_ = 0; break; - case 1: - var _XU_ = 0; break; - case 2: - var - propriete = match[1], - _XV_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), - _XU_ = - caml_call2 - (Runtime_ocaml_Runtime[130], propriete[10][2], _XV_); - break; - case 3: - var _XU_ = 0; break; - default: - var - propriete$0 = match[1], - _XW_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), - _XU_ = - caml_call2 - (Runtime_ocaml_Runtime[130], propriete$0[10][2], _XW_); - } - return caml_call2(Runtime_ocaml_Runtime[29], _Py_, _XU_); - } - var - _XC_ = - [0, - function(param){ - function _XD_(param){return 1;} - function _XE_(param){ - var match = menage[2][3]; - switch(match[0]){ - case 0: - var _XF_ = 0; break; - case 1: - var _XF_ = 0; break; - case 2: - var - propriete = match[1], - _XG_ = 0 === propriete[9][0] ? 0 : 1, - _XH_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - _XG_, - logement_situe_commune_desequi), - _XI_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _XJ_ = - caml_call2 - (Runtime_ocaml_Runtime[115], propriete[10][2], _XI_), - _XK_ = caml_call2(Runtime_ocaml_Runtime[83], _XJ_, _XH_), - _XL_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), - _XM_ = - caml_call2 - (Runtime_ocaml_Runtime[130], propriete[10][2], _XL_), - _XF_ = caml_call2(Runtime_ocaml_Runtime[83], _XM_, _XK_); - break; - case 3: - var _XF_ = 0; break; - default: - var - propriete$0 = match[1], - _XN_ = 0 === propriete$0[9][0] ? 0 : 1, - _XO_ = - caml_call2 - (Runtime_ocaml_Runtime[83], - _XN_, - logement_situe_commune_desequi), - _XP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), - _XQ_ = - caml_call2 - (Runtime_ocaml_Runtime[115], propriete$0[10][2], _XP_), - _XR_ = caml_call2(Runtime_ocaml_Runtime[83], _XQ_, _XO_), - _XS_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), - _XT_ = - caml_call2 - (Runtime_ocaml_Runtime[130], propriete$0[10][2], _XS_), - _XF_ = caml_call2(Runtime_ocaml_Runtime[83], _XT_, _XR_); - } - return caml_call2(Runtime_ocaml_Runtime[29], _Pz_, _XF_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _PA_, [0], _XE_, _XD_); - }]; - return caml_call4 - (Runtime_ocaml_Runtime[63], _PB_, _XC_, _XB_, _XA_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _PC_, _Xz_, _Xy_, _Xx_); - }], - _Xe_ = caml_call4(Runtime_ocaml_Runtime[63], _PD_, _Xd_, _Xc_, _Xb_); - } - catch(_Xw_){ - var _Xa_ = caml_wrap_exception(_Xw_); - if(_Xa_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Pv_], 1); - throw caml_maybe_attach_backtrace(_Xa_, 0); - } - var - condition_logement_pret = - caml_call3 - (Runtime_ocaml_Runtime[28], _PE_, Runtime_ocaml_Runtime[12], _Xe_); - try{ - var - _Xg_ = function(param){return 0;}, - _Xh_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _PG_, 1); - }, - _Xi_ = - [0, - function(param){ - function _Xl_(param){return 1;} - function _Xm_(param){ - var - _Xu_ = + propriete$0=_apM_[1], + _apV_=0 === propriete$0[9][0]?0:1, + _apW_= + caml_call2 + (Runtime_ocaml_Runtime[83], + _apV_, + logement_situe_commune_desequi), + _apX_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), + _apY_= + caml_call2 + (Runtime_ocaml_Runtime[115],propriete$0[10][2],_apX_), + _apZ_=caml_call2(Runtime_ocaml_Runtime[83],_apY_,_apW_), + _ap0_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), + _ap1_= + caml_call2 + (Runtime_ocaml_Runtime[130],propriete$0[10][2],_ap0_), + _apN_=caml_call2(Runtime_ocaml_Runtime[83],_ap1_,_apZ_)} + return caml_call2(Runtime_ocaml_Runtime[29],_$b_,_apN_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_$c_,[0],_apL_,_apK_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_$d_,_apJ_,_apI_,_apH_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_$e_,_apG_,_apF_,_apE_)}], + _apm_=caml_call4(Runtime_ocaml_Runtime[63],_$f_,_apl_,_apk_,_apj_)} + catch(_apD_) + {_apD_ = caml_wrap_exception(_apD_); + if(_apD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],__9_]; + throw _apD_} + var + condition_logement_pret= + caml_call3 + (Runtime_ocaml_Runtime[28],_$g_,Runtime_ocaml_Runtime[12],_apm_); + try + {var + _apn_=function(param){return 0}, + _apo_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$i_,1)}, + _app_= + [0, + function(param) + {function _aps_(param){return 1} + function _apt_(param) + {var + _apB_= + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_pret, + eligibilite_commune_dot_eligib), + _apC_= + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_bailleur, + _apB_); + return caml_call2(Runtime_ocaml_Runtime[29],_$j_,_apC_)} + var + _apu_= + [0, + function(param) + {function _apv_(param){return 0} + function _apw_(param) + {switch(menage[9][0]) + {case 0:var _apx_=0;break; + case 1:var _apx_=0;break; + case 2:var _apx_=0;break; + case 3:var _apx_=0;break; + case 4:var _apx_=0;break; + case 5:var _apx_=0;break; + case 6:var _apx_=0;break; + case 7:var _apx_=1;break; + default:var _apx_=0} + var + _apy_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), + _apz_= + caml_call2(Runtime_ocaml_Runtime[130],date_courante,_apy_), + _apA_=caml_call2(Runtime_ocaml_Runtime[83],_apz_,_apx_); + return caml_call2(Runtime_ocaml_Runtime[29],_$k_,_apA_)} + return caml_call4 + (Runtime_ocaml_Runtime[63],_$l_,[0],_apw_,_apv_)}]; + return caml_call4 + (Runtime_ocaml_Runtime[63],_$m_,_apu_,_apt_,_aps_)}], + _apq_=caml_call4(Runtime_ocaml_Runtime[63],_$n_,_app_,_apo_,_apn_)} + catch(_apr_) + {_apr_ = caml_wrap_exception(_apr_); + if(_apr_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$h_]; + throw _apr_} + var + eligibilite= + caml_call3 + (Runtime_ocaml_Runtime[28],_$o_,Runtime_ocaml_Runtime[12],_apq_); + return [0, + date_courante, + eligibilite, + nombre_personnes_a_charge_pris, + coefficents_enfants_garde_alte]} + function calculette_aides_au_logement(calculette_aides_au_logement_i) + {var + menage=calculette_aides_au_logement_i[1], + demandeur=calculette_aides_au_logement_i[2], + date_courante=calculette_aides_au_logement_i[3], + ressources_menage_prises_en_co=calculette_aides_au_logement_i[4]; + try + {var + _amO_=function(param){return date_courante}, + _amP_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$q_,1)}, + _amQ_=caml_call4(Runtime_ocaml_Runtime[63],_$r_,[0],_amP_,_amO_), + eligibilite_allocation_logemen$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_$s_,Runtime_ocaml_Runtime[16],_amQ_)} + catch(_aoS_) + {_aoS_ = caml_wrap_exception(_aoS_); + if(_aoS_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$p_]; + throw _aoS_} + try + {var + _amR_=function(param){return menage}, + _amS_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$u_,1)}, + _amT_=caml_call4(Runtime_ocaml_Runtime[63],_$v_,[0],_amS_,_amR_), + eligibilite_allocation_logemen$1= + caml_call3(Runtime_ocaml_Runtime[28],_$w_,embed_menage,_amT_)} + catch(_aoR_) + {_aoR_ = caml_wrap_exception(_aoR_); + if(_aoR_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$t_]; + throw _aoR_} + try + {var + _amU_=function(param){return demandeur}, + _amV_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$y_,1)}, + _amW_=caml_call4(Runtime_ocaml_Runtime[63],_$z_,[0],_amV_,_amU_), + eligibilite_allocation_logemen$2= + caml_call3(Runtime_ocaml_Runtime[28],_$A_,embed_demandeur,_amW_)} + catch(_aoQ_) + {_aoQ_ = caml_wrap_exception(_aoQ_); + if(_aoQ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$x_]; + throw _aoQ_} + try + {var + _amX_=function(param){return 0}, + _amY_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$C_,1)}, + _amZ_=caml_call4(Runtime_ocaml_Runtime[63],_$D_,[0],_amY_,_amX_), + eligibilite_allocation_logemen$3= + caml_call3 + (Runtime_ocaml_Runtime[28],_$E_,Runtime_ocaml_Runtime[12],_amZ_)} + catch(_aoP_) + {_aoP_ = caml_wrap_exception(_aoP_); + if(_aoP_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$B_]; + throw _aoP_} + var + _am0_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_$F_,eligibilite_allocation_logemen), + [0, + eligibilite_allocation_logemen$0, + eligibilite_allocation_logemen$1, + eligibilite_allocation_logemen$2, + eligibilite_allocation_logemen$3]), + result=caml_call2(Runtime_ocaml_Runtime[27],_$G_,_am0_), + eligibilite_allocation_logemen$4=result[1], + eligibilite_allocation_logemen$5=result[2]; + try + {var + _am1_=function(param){return menage}, + _am2_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$I_,1)}, + _am3_=caml_call4(Runtime_ocaml_Runtime[63],_$J_,[0],_am2_,_am1_), + eligibilite_aide_personnalisee$0= + caml_call3(Runtime_ocaml_Runtime[28],_$K_,embed_menage,_am3_)} + catch(_aoO_) + {_aoO_ = caml_wrap_exception(_aoO_); + if(_aoO_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$H_]; + throw _aoO_} + try + {var + _am4_=function(param){return demandeur}, + _am5_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$M_,1)}, + _am6_=caml_call4(Runtime_ocaml_Runtime[63],_$N_,[0],_am5_,_am4_), + eligibilite_aide_personnalisee$1= + caml_call3(Runtime_ocaml_Runtime[28],_$O_,embed_demandeur,_am6_)} + catch(_aoN_) + {_aoN_ = caml_wrap_exception(_aoN_); + if(_aoN_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$L_]; + throw _aoN_} + try + {var + _am7_=function(param){return date_courante}, + _am8_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$Q_,1)}, + _am9_=caml_call4(Runtime_ocaml_Runtime[63],_$R_,[0],_am8_,_am7_), + eligibilite_aide_personnalisee$2= + caml_call3 + (Runtime_ocaml_Runtime[28],_$S_,Runtime_ocaml_Runtime[16],_am9_)} + catch(_aoM_) + {_aoM_ = caml_wrap_exception(_aoM_); + if(_aoM_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$P_]; + throw _aoM_} + var + _am__= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_$T_,eligibilite_aide_personnalisee), + [0, + eligibilite_aide_personnalisee$0, + eligibilite_aide_personnalisee$1, + eligibilite_aide_personnalisee$2]), + result$0=caml_call2(Runtime_ocaml_Runtime[27],_$U_,_am__), + eligibilite_aide_personnalisee$3=result$0[2], + eligibilite_aide_personnalisee$4=result$0[3], + eligibilite_aide_personnalisee$5=result$0[4]; + try + {var + _am$_=function(param){return menage[2][3]}, + _ana_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$W_,1)}, + _anb_=caml_call4(Runtime_ocaml_Runtime[63],_$X_,[0],_ana_,_am$_), + calcul_allocation_logement_dot= + caml_call3 + (Runtime_ocaml_Runtime[28],_$Y_,embed_mode_occupation,_anb_)} + catch(_aoL_) + {_aoL_ = caml_wrap_exception(_aoL_); + if(_aoL_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$V_]; + throw _aoL_} + try + {var + _anc_=function(param){return ressources_menage_prises_en_co}, + _and_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$0_,1)}, + _ane_=caml_call4(Runtime_ocaml_Runtime[63],_$1_,[0],_and_,_anc_), + calcul_allocation_logement_dot$0= + caml_call3 + (Runtime_ocaml_Runtime[28],_$2_,Runtime_ocaml_Runtime[13],_ane_)} + catch(_aoK_) + {_aoK_ = caml_wrap_exception(_aoK_); + if(_aoK_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$Z_]; + throw _aoK_} + try + {var + _anf_=function(param){return menage[5]}, + _ang_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$4_,1)}, + _anh_=caml_call4(Runtime_ocaml_Runtime[63],_$5_,[0],_ang_,_anf_), + calcul_allocation_logement_dot$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_$6_,embed_situation_familiale,_anh_)} + catch(_aoJ_) + {_aoJ_ = caml_wrap_exception(_aoJ_); + if(_aoJ_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$3_]; + throw _aoJ_} + try + {var + _ani_=function(param){return eligibilite_allocation_logemen$5}, + _anj_= + function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$8_,1)}, + _ank_=caml_call4(Runtime_ocaml_Runtime[63],_$9_,[0],_anj_,_ani_), + calcul_allocation_logement_dot$2= + caml_call3 + (Runtime_ocaml_Runtime[28],_$__,Runtime_ocaml_Runtime[14],_ank_)} + catch(_aoI_) + {_aoI_ = caml_wrap_exception(_aoI_); + if(_aoI_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$7_]; + throw _aoI_} + try + {var + _anl_=function(param){return menage[2][9]}, + _anm_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aaa_,1)}, + _ann_=caml_call4(Runtime_ocaml_Runtime[63],_aab_,[0],_anm_,_anl_), + calcul_allocation_logement_dot$3= + caml_call3 + (Runtime_ocaml_Runtime[28],_aac_,embed_zone_d_habitation,_ann_)} + catch(_aoH_) + {_aoH_ = caml_wrap_exception(_aoH_); + if(_aoH_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_$$_]; + throw _aoH_} + try + {var + _ano_=function(param){return date_courante}, + _anp_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aae_,1)}, + _anq_=caml_call4(Runtime_ocaml_Runtime[63],_aaf_,[0],_anp_,_ano_), + calcul_allocation_logement_dot$4= + caml_call3 + (Runtime_ocaml_Runtime[28],_aag_,Runtime_ocaml_Runtime[16],_anq_)} + catch(_aoG_) + {_aoG_ = caml_wrap_exception(_aoG_); + if(_aoG_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aad_]; + throw _aoG_} + try + {var + _anr_= + function(param) + {switch(eligibilite_allocation_logemen$4[0]) + {case 0:return _aai_;case 1:return _aaj_;default:return _aak_}}, + _ans_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aal_,1)}, + _ant_=caml_call4(Runtime_ocaml_Runtime[63],_aam_,[0],_ans_,_anr_), + calcul_allocation_logement_dot$5= + caml_call3 + (Runtime_ocaml_Runtime[28], + _aan_, + embed_type_aides_personnelle_l, + _ant_)} + catch(_aoF_) + {_aoF_ = caml_wrap_exception(_aoF_); + if(_aoF_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aah_]; + throw _aoF_} + try + {var + _anu_=function(param){return menage[9]}, + _anv_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aap_,1)}, + _anw_=caml_call4(Runtime_ocaml_Runtime[63],_aaq_,[0],_anv_,_anu_), + calcul_allocation_logement_dot$6= + caml_call3 + (Runtime_ocaml_Runtime[28],_aar_,embed_collectivite$0,_anw_)} + catch(_aoE_) + {_aoE_ = caml_wrap_exception(_aoE_); + if(_aoE_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aao_]; + throw _aoE_} + var + _anx_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_aas_,calcul_allocation_logement), + [0, + calcul_allocation_logement_dot, + calcul_allocation_logement_dot$0, + calcul_allocation_logement_dot$1, + calcul_allocation_logement_dot$2, + calcul_allocation_logement_dot$3, + calcul_allocation_logement_dot$4, + calcul_allocation_logement_dot$5, + calcul_allocation_logement_dot$6]), + result$1=caml_call2(Runtime_ocaml_Runtime[27],_aat_,_anx_), + calcul_allocation_logement_dot$7=result$1[1], + calcul_allocation_logement_dot$8=result$1[2]; + try + {var + _any_=function(param){return menage[2][3]}, + _anz_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aav_,1)}, + _anA_=caml_call4(Runtime_ocaml_Runtime[63],_aaw_,[0],_anz_,_any_), + calcul_aide_personnalisee_loge= + caml_call3 + (Runtime_ocaml_Runtime[28],_aax_,embed_mode_occupation,_anA_)} + catch(_aoD_) + {_aoD_ = caml_wrap_exception(_aoD_); + if(_aoD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aau_]; + throw _aoD_} + try + {var + _anB_=function(param){return _aaz_}, + _anC_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aaA_,1)}, + _anD_=caml_call4(Runtime_ocaml_Runtime[63],_aaB_,[0],_anC_,_anB_), + calcul_aide_personnalisee_loge$0= + caml_call3 + (Runtime_ocaml_Runtime[28], + _aaC_, + embed_type_aides_personnelle_l, + _anD_)} + catch(_aoC_) + {_aoC_ = caml_wrap_exception(_aoC_); + if(_aoC_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aay_]; + throw _aoC_} + try + {var + _anE_=function(param){return ressources_menage_prises_en_co}, + _anF_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aaE_,1)}, + _anG_=caml_call4(Runtime_ocaml_Runtime[63],_aaF_,[0],_anF_,_anE_), + calcul_aide_personnalisee_loge$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_aaG_,Runtime_ocaml_Runtime[13],_anG_)} + catch(_aoB_) + {_aoB_ = caml_wrap_exception(_aoB_); + if(_aoB_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aaD_]; + throw _aoB_} + try + {var + _anH_=function(param){return menage[5]}, + _anI_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aaI_,1)}, + _anJ_=caml_call4(Runtime_ocaml_Runtime[63],_aaJ_,[0],_anI_,_anH_), + calcul_aide_personnalisee_loge$3= + caml_call3 + (Runtime_ocaml_Runtime[28],_aaK_,embed_situation_familiale,_anJ_)} + catch(_aoA_) + {_aoA_ = caml_wrap_exception(_aoA_); + if(_aoA_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aaH_]; + throw _aoA_} + try + {var + _anK_=function(param){return eligibilite_aide_personnalisee$4}, + _anL_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aaM_,1)}, + _anM_=caml_call4(Runtime_ocaml_Runtime[63],_aaN_,[0],_anL_,_anK_), + calcul_aide_personnalisee_loge$4= + caml_call3 + (Runtime_ocaml_Runtime[28],_aaO_,Runtime_ocaml_Runtime[14],_anM_)} + catch(_aoz_) + {_aoz_ = caml_wrap_exception(_aoz_); + if(_aoz_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aaL_]; + throw _aoz_} + try + {var + _anN_=function(param){return menage[2][9]}, + _anO_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aaQ_,1)}, + _anP_=caml_call4(Runtime_ocaml_Runtime[63],_aaR_,[0],_anO_,_anN_), + calcul_aide_personnalisee_loge$5= + caml_call3 + (Runtime_ocaml_Runtime[28],_aaS_,embed_zone_d_habitation,_anP_)} + catch(_aoy_) + {_aoy_ = caml_wrap_exception(_aoy_); + if(_aoy_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aaP_]; + throw _aoy_} + try + {var + _anQ_=function(param){return date_courante}, + _anR_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aaU_,1)}, + _anS_=caml_call4(Runtime_ocaml_Runtime[63],_aaV_,[0],_anR_,_anQ_), + calcul_aide_personnalisee_loge$6= + caml_call3 + (Runtime_ocaml_Runtime[28],_aaW_,Runtime_ocaml_Runtime[16],_anS_)} + catch(_aox_) + {_aox_ = caml_wrap_exception(_aox_); + if(_aox_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aaT_]; + throw _aox_} + try + {var + _anT_=function(param){return menage[9]}, + _anU_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aaY_,1)}, + _anV_=caml_call4(Runtime_ocaml_Runtime[63],_aaZ_,[0],_anU_,_anT_), + calcul_aide_personnalisee_loge$7= + caml_call3 + (Runtime_ocaml_Runtime[28],_aa0_,embed_collectivite$0,_anV_)} + catch(_aow_) + {_aow_ = caml_wrap_exception(_aow_); + if(_aow_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aaX_]; + throw _aow_} + var + _anW_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_aa1_,calcul_aide_personnalisee_loge$2), + [0, + calcul_aide_personnalisee_loge, + calcul_aide_personnalisee_loge$0, + calcul_aide_personnalisee_loge$1, + calcul_aide_personnalisee_loge$3, + calcul_aide_personnalisee_loge$4, + calcul_aide_personnalisee_loge$5, + calcul_aide_personnalisee_loge$6, + calcul_aide_personnalisee_loge$7]), + result$2=caml_call2(Runtime_ocaml_Runtime[27],_aa2_,_anW_), + calcul_aide_personnalisee_loge$8=result$2[1], + calcul_aide_personnalisee_loge$9=result$2[2]; + try + {var + _anX_=function(param){return eligibilite_aide_personnalisee$5}, + _anY_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aa4_,1)}, + _anZ_=caml_call4(Runtime_ocaml_Runtime[63],_aa5_,[0],_anY_,_anX_)} + catch(_aov_) + {_aov_ = caml_wrap_exception(_aov_); + if(_aov_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aa3_]; + throw _aov_} + var + _an0_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte= + caml_call3(Runtime_ocaml_Runtime[28],_aa6_,_an0_,_anZ_); + try + {var + _an1_= + function(param) + {switch(eligibilite_allocation_logemen$4[0]) + {case 0:var _aou_=0;break; + case 1:var _aou_=1;break; + default:var _aou_=1} + return caml_call2 + (Runtime_ocaml_Runtime[84], + eligibilite_aide_personnalisee$3, + _aou_)}, + _an2_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aa8_,1)}, + _an3_=caml_call4(Runtime_ocaml_Runtime[63],_aa9_,[0],_an2_,_an1_)} + catch(_aot_) + {_aot_ = caml_wrap_exception(_aot_); + if(_aot_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aa7_]; + throw _aot_} + var + eligibilite= + caml_call3 + (Runtime_ocaml_Runtime[28],_aa__,Runtime_ocaml_Runtime[12],_an3_); + function _an4_(aide_finale) + {try + {var + _aoh_= + function(param) + {var + _aol_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _aba_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aom_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _abb_, + calcul_aide_personnalisee_loge$9), + _aol_), + _aon_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _abc_, + Runtime_ocaml_Runtime[13], + _aom_), + aide_finale_apl= + caml_call2(Runtime_ocaml_Runtime[27],_abd_,_aon_), + _aoo_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _abe_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aop_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _abf_, + calcul_allocation_logement_dot$8), + _aoo_), + _aoq_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _abg_, + Runtime_ocaml_Runtime[13], + _aop_), + aide_finale_al= + caml_call2(Runtime_ocaml_Runtime[27],_abh_,_aoq_); + if(caml_call1(Runtime_ocaml_Runtime[67],eligibilite)) + return aide_finale; + switch(eligibilite_allocation_logemen$4[0]) + {case 0:var _aor_=1;break; + case 1:var _aor_=0;break; + default:var _aor_=0} + var _aos_=caml_call1(Runtime_ocaml_Runtime[67],_aor_); + return caml_call2 + (Runtime_ocaml_Runtime[83], + eligibilite_aide_personnalisee$3, + _aos_) + ?caml_call2 + (Runtime_ocaml_Runtime[123],aide_finale_apl,aide_finale_al) + ?aide_finale_apl + :aide_finale_al + :eligibilite_aide_personnalisee$3 + ?aide_finale_apl + :aide_finale_al}, + _aoi_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_abi_,1)}, + _aoj_=caml_call4(Runtime_ocaml_Runtime[63],_abj_,[0],_aoi_,_aoh_); + return _aoj_} + catch(_aok_) + {_aok_ = caml_wrap_exception(_aok_); + if(_aok_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_aa$_]; + throw _aok_}} + var + traitement_aide_finale= + caml_call3 + (Runtime_ocaml_Runtime[28],_abk_,Runtime_ocaml_Runtime[10],_an4_); + try + {var + _an5_= + function(param) + {if(caml_call1(Runtime_ocaml_Runtime[67],eligibilite)) + return caml_call1(Runtime_ocaml_Runtime[31],cst_0$423); + switch(eligibilite_allocation_logemen$4[0]) + {case 0:var _an9_=1;break; + case 1:var _an9_=0;break; + default:var _an9_=0} + var _an__=caml_call1(Runtime_ocaml_Runtime[67],_an9_); + if + (! caml_call2 (Runtime_ocaml_Runtime[83], - condition_logement_pret, - eligibilite_commune_dot_eligib), - _Xv_ = - caml_call2 - (Runtime_ocaml_Runtime[83], condition_logement_bailleur, _Xu_); - return caml_call2(Runtime_ocaml_Runtime[29], _PH_, _Xv_); - } - var - _Xn_ = - [0, - function(param){ - function _Xo_(param){return 0;} - function _Xp_(param){ - switch(menage[9][0]){ - case 0: - var _Xq_ = 0; break; - case 1: - var _Xq_ = 0; break; - case 2: - var _Xq_ = 0; break; - case 3: - var _Xq_ = 0; break; - case 4: - var _Xq_ = 0; break; - case 5: - var _Xq_ = 0; break; - case 6: - var _Xq_ = 0; break; - case 7: - var _Xq_ = 1; break; - default: var _Xq_ = 0; - } - var - _Xr_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), - _Xs_ = - caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Xr_), - _Xt_ = caml_call2(Runtime_ocaml_Runtime[83], _Xs_, _Xq_); - return caml_call2(Runtime_ocaml_Runtime[29], _PI_, _Xt_); - } - return caml_call4 - (Runtime_ocaml_Runtime[63], _PJ_, [0], _Xp_, _Xo_); - }]; - return caml_call4(Runtime_ocaml_Runtime[63], _PK_, _Xn_, _Xm_, _Xl_); - }], - _Xj_ = caml_call4(Runtime_ocaml_Runtime[63], _PL_, _Xi_, _Xh_, _Xg_); - } - catch(_Xk_){ - var _Xf_ = caml_wrap_exception(_Xk_); - if(_Xf_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _PF_], 1); - throw caml_maybe_attach_backtrace(_Xf_, 0); - } - var - eligibilite = - caml_call3 - (Runtime_ocaml_Runtime[28], _PM_, Runtime_ocaml_Runtime[12], _Xj_); - return [0, - date_courante, - eligibilite, - nombre_personnes_a_charge_pris, - coefficents_enfants_garde_alte]; - } - function calculette_aides_au_logement(calculette_aides_au_logement_i){ - var - menage = calculette_aides_au_logement_i[1], - demandeur = calculette_aides_au_logement_i[2], - date_courante = calculette_aides_au_logement_i[3], - ressources_menage_prises_en_co = calculette_aides_au_logement_i[4]; - try{ - var - _T__ = function(param){return date_courante;}, - _T$_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _PO_, 1); - }, - _Ua_ = caml_call4(Runtime_ocaml_Runtime[63], _PP_, [0], _T$_, _T__), - eligibilite_allocation_logemen$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _PQ_, Runtime_ocaml_Runtime[16], _Ua_); - } - catch(_WC_){ - var _T9_ = caml_wrap_exception(_WC_); - if(_T9_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _PN_], 1); - throw caml_maybe_attach_backtrace(_T9_, 0); - } - try{ - var - _Uc_ = function(param){return menage;}, - _Ud_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _PS_, 1); - }, - _Ue_ = caml_call4(Runtime_ocaml_Runtime[63], _PT_, [0], _Ud_, _Uc_), - eligibilite_allocation_logemen$1 = - caml_call3(Runtime_ocaml_Runtime[28], _PU_, embed_menage, _Ue_); - } - catch(_WB_){ - var _Ub_ = caml_wrap_exception(_WB_); - if(_Ub_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _PR_], 1); - throw caml_maybe_attach_backtrace(_Ub_, 0); - } - try{ - var - _Ug_ = function(param){return demandeur;}, - _Uh_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _PW_, 1); - }, - _Ui_ = caml_call4(Runtime_ocaml_Runtime[63], _PX_, [0], _Uh_, _Ug_), - eligibilite_allocation_logemen$2 = - caml_call3(Runtime_ocaml_Runtime[28], _PY_, embed_demandeur, _Ui_); - } - catch(_WA_){ - var _Uf_ = caml_wrap_exception(_WA_); - if(_Uf_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _PV_], 1); - throw caml_maybe_attach_backtrace(_Uf_, 0); - } - try{ - var - _Uk_ = function(param){return 0;}, - _Ul_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _P0_, 1); - }, - _Um_ = caml_call4(Runtime_ocaml_Runtime[63], _P1_, [0], _Ul_, _Uk_), - eligibilite_allocation_logemen$3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _P2_, Runtime_ocaml_Runtime[12], _Um_); - } - catch(_Wz_){ - var _Uj_ = caml_wrap_exception(_Wz_); - if(_Uj_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _PZ_], 1); - throw caml_maybe_attach_backtrace(_Uj_, 0); - } - var - _Un_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _P3_, eligibilite_allocation_logemen), - [0, - eligibilite_allocation_logemen$0, - eligibilite_allocation_logemen$1, - eligibilite_allocation_logemen$2, - eligibilite_allocation_logemen$3]), - result = caml_call2(Runtime_ocaml_Runtime[27], _P4_, _Un_), - eligibilite_allocation_logemen$4 = result[1], - eligibilite_allocation_logemen$5 = result[2]; - try{ - var - _Up_ = function(param){return menage;}, - _Uq_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _P6_, 1); - }, - _Ur_ = caml_call4(Runtime_ocaml_Runtime[63], _P7_, [0], _Uq_, _Up_), - eligibilite_aide_personnalisee$0 = - caml_call3(Runtime_ocaml_Runtime[28], _P8_, embed_menage, _Ur_); - } - catch(_Wy_){ - var _Uo_ = caml_wrap_exception(_Wy_); - if(_Uo_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _P5_], 1); - throw caml_maybe_attach_backtrace(_Uo_, 0); - } - try{ - var - _Ut_ = function(param){return demandeur;}, - _Uu_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _P__, 1); - }, - _Uv_ = caml_call4(Runtime_ocaml_Runtime[63], _P$_, [0], _Uu_, _Ut_), - eligibilite_aide_personnalisee$1 = - caml_call3(Runtime_ocaml_Runtime[28], _Qa_, embed_demandeur, _Uv_); - } - catch(_Wx_){ - var _Us_ = caml_wrap_exception(_Wx_); - if(_Us_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _P9_], 1); - throw caml_maybe_attach_backtrace(_Us_, 0); - } - try{ - var - _Ux_ = function(param){return date_courante;}, - _Uy_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Qc_, 1); - }, - _Uz_ = caml_call4(Runtime_ocaml_Runtime[63], _Qd_, [0], _Uy_, _Ux_), - eligibilite_aide_personnalisee$2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Qe_, Runtime_ocaml_Runtime[16], _Uz_); - } - catch(_Ww_){ - var _Uw_ = caml_wrap_exception(_Ww_); - if(_Uw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Qb_], 1); - throw caml_maybe_attach_backtrace(_Uw_, 0); - } - var - _UA_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _Qf_, eligibilite_aide_personnalisee), - [0, - eligibilite_aide_personnalisee$0, - eligibilite_aide_personnalisee$1, - eligibilite_aide_personnalisee$2]), - result$0 = caml_call2(Runtime_ocaml_Runtime[27], _Qg_, _UA_), - eligibilite_aide_personnalisee$3 = result$0[2], - eligibilite_aide_personnalisee$4 = result$0[3], - eligibilite_aide_personnalisee$5 = result$0[4]; - try{ - var - _UC_ = function(param){return menage[2][3];}, - _UD_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Qi_, 1); - }, - _UE_ = caml_call4(Runtime_ocaml_Runtime[63], _Qj_, [0], _UD_, _UC_), - calcul_allocation_logement_dot = - caml_call3 - (Runtime_ocaml_Runtime[28], _Qk_, embed_mode_occupation, _UE_); - } - catch(_Wv_){ - var _UB_ = caml_wrap_exception(_Wv_); - if(_UB_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Qh_], 1); - throw caml_maybe_attach_backtrace(_UB_, 0); - } - try{ - var - _UG_ = function(param){return ressources_menage_prises_en_co;}, - _UH_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Qm_, 1); - }, - _UI_ = caml_call4(Runtime_ocaml_Runtime[63], _Qn_, [0], _UH_, _UG_), - calcul_allocation_logement_dot$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Qo_, Runtime_ocaml_Runtime[13], _UI_); - } - catch(_Wu_){ - var _UF_ = caml_wrap_exception(_Wu_); - if(_UF_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Ql_], 1); - throw caml_maybe_attach_backtrace(_UF_, 0); - } - try{ - var - _UK_ = function(param){return menage[5];}, - _UL_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Qq_, 1); - }, - _UM_ = caml_call4(Runtime_ocaml_Runtime[63], _Qr_, [0], _UL_, _UK_), - calcul_allocation_logement_dot$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Qs_, embed_situation_familiale, _UM_); - } - catch(_Wt_){ - var _UJ_ = caml_wrap_exception(_Wt_); - if(_UJ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Qp_], 1); - throw caml_maybe_attach_backtrace(_UJ_, 0); - } - try{ - var - _UO_ = function(param){return eligibilite_allocation_logemen$5;}, - _UP_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Qu_, 1); - }, - _UQ_ = caml_call4(Runtime_ocaml_Runtime[63], _Qv_, [0], _UP_, _UO_), - calcul_allocation_logement_dot$2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Qw_, Runtime_ocaml_Runtime[14], _UQ_); - } - catch(_Ws_){ - var _UN_ = caml_wrap_exception(_Ws_); - if(_UN_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Qt_], 1); - throw caml_maybe_attach_backtrace(_UN_, 0); - } - try{ - var - _US_ = function(param){return menage[2][9];}, - _UT_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Qy_, 1); - }, - _UU_ = caml_call4(Runtime_ocaml_Runtime[63], _Qz_, [0], _UT_, _US_), - calcul_allocation_logement_dot$3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _QA_, embed_zone_d_habitation, _UU_); - } - catch(_Wr_){ - var _UR_ = caml_wrap_exception(_Wr_); - if(_UR_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Qx_], 1); - throw caml_maybe_attach_backtrace(_UR_, 0); - } - try{ - var - _UW_ = function(param){return date_courante;}, - _UX_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _QC_, 1); - }, - _UY_ = caml_call4(Runtime_ocaml_Runtime[63], _QD_, [0], _UX_, _UW_), - calcul_allocation_logement_dot$4 = - caml_call3 - (Runtime_ocaml_Runtime[28], _QE_, Runtime_ocaml_Runtime[16], _UY_); - } - catch(_Wq_){ - var _UV_ = caml_wrap_exception(_Wq_); - if(_UV_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _QB_], 1); - throw caml_maybe_attach_backtrace(_UV_, 0); - } - try{ - var - _U0_ = - function(param){ - switch(eligibilite_allocation_logemen$4[0]){ - case 0: - return _QG_; - case 1: - return _QH_; - default: return _QI_; - } - }, - _U1_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _QJ_, 1); - }, - _U2_ = caml_call4(Runtime_ocaml_Runtime[63], _QK_, [0], _U1_, _U0_), - calcul_allocation_logement_dot$5 = - caml_call3 - (Runtime_ocaml_Runtime[28], - _QL_, - embed_type_aides_personnelle_l, - _U2_); - } - catch(_Wp_){ - var _UZ_ = caml_wrap_exception(_Wp_); - if(_UZ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _QF_], 1); - throw caml_maybe_attach_backtrace(_UZ_, 0); - } - try{ - var - _U4_ = function(param){return menage[9];}, - _U5_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _QN_, 1); - }, - _U6_ = caml_call4(Runtime_ocaml_Runtime[63], _QO_, [0], _U5_, _U4_), - calcul_allocation_logement_dot$6 = - caml_call3(Runtime_ocaml_Runtime[28], _QP_, embed_collectivite, _U6_); - } - catch(_Wo_){ - var _U3_ = caml_wrap_exception(_Wo_); - if(_U3_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _QM_], 1); - throw caml_maybe_attach_backtrace(_U3_, 0); - } - var - _U7_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _QQ_, calcul_allocation_logement), - [0, - calcul_allocation_logement_dot, - calcul_allocation_logement_dot$0, - calcul_allocation_logement_dot$1, - calcul_allocation_logement_dot$2, - calcul_allocation_logement_dot$3, - calcul_allocation_logement_dot$4, - calcul_allocation_logement_dot$5, - calcul_allocation_logement_dot$6]), - result$1 = caml_call2(Runtime_ocaml_Runtime[27], _QR_, _U7_), - calcul_allocation_logement_dot$7 = result$1[1], - calcul_allocation_logement_dot$8 = result$1[2]; - try{ - var - _U9_ = function(param){return menage[2][3];}, - _U__ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _QT_, 1); - }, - _U$_ = caml_call4(Runtime_ocaml_Runtime[63], _QU_, [0], _U__, _U9_), - calcul_aide_personnalisee_loge = - caml_call3 - (Runtime_ocaml_Runtime[28], _QV_, embed_mode_occupation, _U$_); - } - catch(_Wn_){ - var _U8_ = caml_wrap_exception(_Wn_); - if(_U8_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _QS_], 1); - throw caml_maybe_attach_backtrace(_U8_, 0); - } - try{ - var - _Vb_ = function(param){return _QX_;}, - _Vc_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _QY_, 1); - }, - _Vd_ = caml_call4(Runtime_ocaml_Runtime[63], _QZ_, [0], _Vc_, _Vb_), - calcul_aide_personnalisee_loge$0 = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Q0_, - embed_type_aides_personnelle_l, - _Vd_); - } - catch(_Wm_){ - var _Va_ = caml_wrap_exception(_Wm_); - if(_Va_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _QW_], 1); - throw caml_maybe_attach_backtrace(_Va_, 0); - } - try{ - var - _Vf_ = function(param){return ressources_menage_prises_en_co;}, - _Vg_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Q2_, 1); - }, - _Vh_ = caml_call4(Runtime_ocaml_Runtime[63], _Q3_, [0], _Vg_, _Vf_), - calcul_aide_personnalisee_loge$1 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Q4_, Runtime_ocaml_Runtime[13], _Vh_); - } - catch(_Wl_){ - var _Ve_ = caml_wrap_exception(_Wl_); - if(_Ve_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Q1_], 1); - throw caml_maybe_attach_backtrace(_Ve_, 0); - } - try{ - var - _Vj_ = function(param){return menage[5];}, - _Vk_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Q6_, 1); - }, - _Vl_ = caml_call4(Runtime_ocaml_Runtime[63], _Q7_, [0], _Vk_, _Vj_), - calcul_aide_personnalisee_loge$3 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Q8_, embed_situation_familiale, _Vl_); - } - catch(_Wk_){ - var _Vi_ = caml_wrap_exception(_Wk_); - if(_Vi_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Q5_], 1); - throw caml_maybe_attach_backtrace(_Vi_, 0); - } - try{ - var - _Vn_ = function(param){return eligibilite_aide_personnalisee$4;}, - _Vo_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Q__, 1); - }, - _Vp_ = caml_call4(Runtime_ocaml_Runtime[63], _Q$_, [0], _Vo_, _Vn_), - calcul_aide_personnalisee_loge$4 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Ra_, Runtime_ocaml_Runtime[14], _Vp_); - } - catch(_Wj_){ - var _Vm_ = caml_wrap_exception(_Wj_); - if(_Vm_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Q9_], 1); - throw caml_maybe_attach_backtrace(_Vm_, 0); - } - try{ - var - _Vr_ = function(param){return menage[2][9];}, - _Vs_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Rc_, 1); - }, - _Vt_ = caml_call4(Runtime_ocaml_Runtime[63], _Rd_, [0], _Vs_, _Vr_), - calcul_aide_personnalisee_loge$5 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Re_, embed_zone_d_habitation, _Vt_); - } - catch(_Wi_){ - var _Vq_ = caml_wrap_exception(_Wi_); - if(_Vq_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Rb_], 1); - throw caml_maybe_attach_backtrace(_Vq_, 0); - } - try{ - var - _Vv_ = function(param){return date_courante;}, - _Vw_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Rg_, 1); - }, - _Vx_ = caml_call4(Runtime_ocaml_Runtime[63], _Rh_, [0], _Vw_, _Vv_), - calcul_aide_personnalisee_loge$6 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Ri_, Runtime_ocaml_Runtime[16], _Vx_); - } - catch(_Wh_){ - var _Vu_ = caml_wrap_exception(_Wh_); - if(_Vu_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Rf_], 1); - throw caml_maybe_attach_backtrace(_Vu_, 0); - } - try{ - var - _Vz_ = function(param){return menage[9];}, - _VA_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Rk_, 1); - }, - _VB_ = caml_call4(Runtime_ocaml_Runtime[63], _Rl_, [0], _VA_, _Vz_), - calcul_aide_personnalisee_loge$7 = - caml_call3(Runtime_ocaml_Runtime[28], _Rm_, embed_collectivite, _VB_); - } - catch(_Wg_){ - var _Vy_ = caml_wrap_exception(_Wg_); - if(_Vy_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Rj_], 1); - throw caml_maybe_attach_backtrace(_Vy_, 0); - } - var - _VC_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _Rn_, calcul_aide_personnalisee_loge$2), - [0, - calcul_aide_personnalisee_loge, - calcul_aide_personnalisee_loge$0, - calcul_aide_personnalisee_loge$1, - calcul_aide_personnalisee_loge$3, - calcul_aide_personnalisee_loge$4, - calcul_aide_personnalisee_loge$5, - calcul_aide_personnalisee_loge$6, - calcul_aide_personnalisee_loge$7]), - result$2 = caml_call2(Runtime_ocaml_Runtime[27], _Ro_, _VC_), - calcul_aide_personnalisee_loge$8 = result$2[1], - calcul_aide_personnalisee_loge$9 = result$2[2]; - try{ - var - _VE_ = function(param){return eligibilite_aide_personnalisee$5;}, - _VF_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Rq_, 1); - }, - _VG_ = caml_call4(Runtime_ocaml_Runtime[63], _Rr_, [0], _VF_, _VE_); - } - catch(_Wf_){ - var _VD_ = caml_wrap_exception(_Wf_); - if(_VD_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Rp_], 1); - throw caml_maybe_attach_backtrace(_VD_, 0); - } - var - _VH_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte = - caml_call3(Runtime_ocaml_Runtime[28], _Rs_, _VH_, _VG_); - try{ - var - _VJ_ = - function(param){ - switch(eligibilite_allocation_logemen$4[0]){ - case 0: - var _We_ = 0; break; - case 1: - var _We_ = 1; break; - default: var _We_ = 1; - } - return caml_call2 - (Runtime_ocaml_Runtime[84], - eligibilite_aide_personnalisee$3, - _We_); - }, - _VK_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ru_, 1); - }, - _VL_ = caml_call4(Runtime_ocaml_Runtime[63], _Rv_, [0], _VK_, _VJ_); - } - catch(_Wd_){ - var _VI_ = caml_wrap_exception(_Wd_); - if(_VI_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Rt_], 1); - throw caml_maybe_attach_backtrace(_VI_, 0); - } - var - eligibilite = - caml_call3 - (Runtime_ocaml_Runtime[28], _Rw_, Runtime_ocaml_Runtime[12], _VL_); - function _VM_(aide_finale){ - try{ + eligibilite_aide_personnalisee$3, + _an__)) + return eligibilite_aide_personnalisee$3 + ?calcul_aide_personnalisee_loge$8 + :calcul_allocation_logement_dot$7; + var + _an$_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _abm_, + Runtime_ocaml_Runtime[13], + calcul_allocation_logement_dot$7), + _aoa_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _abn_, + calcul_allocation_logement_dot$8), + _an$_), + _aob_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _abo_, + Runtime_ocaml_Runtime[13], + _aoa_), + _aoc_=caml_call2(Runtime_ocaml_Runtime[27],_abp_,_aob_), + _aod_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _abq_, + Runtime_ocaml_Runtime[13], + calcul_aide_personnalisee_loge$8), + _aoe_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _abr_, + calcul_aide_personnalisee_loge$9), + _aod_), + _aof_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _abs_, + Runtime_ocaml_Runtime[13], + _aoe_), + _aog_=caml_call2(Runtime_ocaml_Runtime[27],_abt_,_aof_); + return caml_call2(Runtime_ocaml_Runtime[123],_aog_,_aoc_) + ?calcul_aide_personnalisee_loge$8 + :calcul_allocation_logement_dot$7}, + _an6_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_abu_,1)}, + _an7_=caml_call4(Runtime_ocaml_Runtime[63],_abv_,[0],_an6_,_an5_)} + catch(_an8_) + {_an8_ = caml_wrap_exception(_an8_); + if(_an8_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_abl_]; + throw _an8_} var - _V3_ = - function(param){ - var - _V7_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ry_, - Runtime_ocaml_Runtime[13], - aide_finale), - _V8_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Rz_, - calcul_aide_personnalisee_loge$9), - _V7_), - _V9_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _RA_, - Runtime_ocaml_Runtime[13], - _V8_), - aide_finale_apl = caml_call2(Runtime_ocaml_Runtime[27], _RB_, _V9_), - _V__ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _RC_, - Runtime_ocaml_Runtime[13], - aide_finale), - _V$_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _RD_, - calcul_allocation_logement_dot$8), - _V__), - _Wa_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _RE_, - Runtime_ocaml_Runtime[13], - _V$_), - aide_finale_al = caml_call2(Runtime_ocaml_Runtime[27], _RF_, _Wa_); - if(caml_call1(Runtime_ocaml_Runtime[67], eligibilite)) - return aide_finale; - switch(eligibilite_allocation_logemen$4[0]){ - case 0: - var _Wb_ = 1; break; - case 1: - var _Wb_ = 0; break; - default: var _Wb_ = 0; - } - var _Wc_ = caml_call1(Runtime_ocaml_Runtime[67], _Wb_); - return caml_call2 - (Runtime_ocaml_Runtime[83], - eligibilite_aide_personnalisee$3, - _Wc_) - ? caml_call2 - (Runtime_ocaml_Runtime[123], - aide_finale_apl, - aide_finale_al) - ? aide_finale_apl - : aide_finale_al - : eligibilite_aide_personnalisee$3 - ? aide_finale_apl - : aide_finale_al; - }, - _V4_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _RG_, 1); - }, - _V5_ = caml_call4(Runtime_ocaml_Runtime[63], _RH_, [0], _V4_, _V3_); - return _V5_; - } - catch(_V6_){ - var _V2_ = caml_wrap_exception(_V6_); - if(_V2_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Rx_], 1); - throw caml_maybe_attach_backtrace(_V2_, 0); - } - } - var - traitement_aide_finale = - caml_call3 - (Runtime_ocaml_Runtime[28], _RI_, Runtime_ocaml_Runtime[10], _VM_); - try{ - var - _VO_ = - function(param){ - if(caml_call1(Runtime_ocaml_Runtime[67], eligibilite)) - return caml_call1(Runtime_ocaml_Runtime[31], cst_0$355); - switch(eligibilite_allocation_logemen$4[0]){ - case 0: - var _VS_ = 1; break; - case 1: - var _VS_ = 0; break; - default: var _VS_ = 0; - } - var _VT_ = caml_call1(Runtime_ocaml_Runtime[67], _VS_); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[83], - eligibilite_aide_personnalisee$3, - _VT_)) - return eligibilite_aide_personnalisee$3 - ? calcul_aide_personnalisee_loge$8 - : calcul_allocation_logement_dot$7; - var - _VU_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _RK_, - Runtime_ocaml_Runtime[13], - calcul_allocation_logement_dot$7), - _VV_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _RL_, - calcul_allocation_logement_dot$8), - _VU_), - _VW_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _RM_, - Runtime_ocaml_Runtime[13], - _VV_), - _VX_ = caml_call2(Runtime_ocaml_Runtime[27], _RN_, _VW_), - _VY_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _RO_, - Runtime_ocaml_Runtime[13], - calcul_aide_personnalisee_loge$8), - _VZ_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _RP_, - calcul_aide_personnalisee_loge$9), - _VY_), - _V0_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _RQ_, - Runtime_ocaml_Runtime[13], - _VZ_), - _V1_ = caml_call2(Runtime_ocaml_Runtime[27], _RR_, _V0_); - return caml_call2(Runtime_ocaml_Runtime[123], _V1_, _VX_) - ? calcul_aide_personnalisee_loge$8 - : calcul_allocation_logement_dot$7; - }, - _VP_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _RS_, 1); - }, - _VQ_ = caml_call4(Runtime_ocaml_Runtime[63], _RT_, [0], _VP_, _VO_); - } - catch(_VR_){ - var _VN_ = caml_wrap_exception(_VR_); - if(_VN_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _RJ_], 1); - throw caml_maybe_attach_backtrace(_VN_, 0); - } - var - aide_finale_formule = - caml_call3 - (Runtime_ocaml_Runtime[28], _RU_, Runtime_ocaml_Runtime[13], _VQ_); - return [0, - eligibilite, - aide_finale_formule, - traitement_aide_finale, - coefficents_enfants_garde_alte]; - } - function calculette_aides_au_logement_g(calculette_aides_au_logement_g){ - var - menage = calculette_aides_au_logement_g[1], - demandeur = calculette_aides_au_logement_g[2], - date_courante = calculette_aides_au_logement_g[3], - ressources_menage_prises_en_co = calculette_aides_au_logement_g[4]; - try{ - var - _SO_ = - function(param){ - var - _T0_ = menage[9], - _T1_ = menage[8], - _T2_ = menage[7], - _T3_ = menage[6], - _T4_ = menage[5], - _T5_ = menage[4], - _T6_ = menage[3]; - function _T7_(personne_a_charge){ - if(0 !== personne_a_charge[0]) return 1; - var enfant = personne_a_charge[1]; - return 0 === enfant[8][0] ? 1 : 0; - } - var _T8_ = caml_call2(Runtime_ocaml_Runtime[90], _T7_, _T6_); - return [0, - menage[1], - menage[2], - _T8_, - _T5_, - _T4_, - _T3_, - _T2_, - _T1_, - _T0_]; - }, - _SP_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _RW_, 1); - }, - _SQ_ = caml_call4(Runtime_ocaml_Runtime[63], _RX_, [0], _SP_, _SO_); - } - catch(_TZ_){ - var _SN_ = caml_wrap_exception(_TZ_); - if(_SN_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _RV_], 1); - throw caml_maybe_attach_backtrace(_SN_, 0); - } - var - menage_sans_enfants_garde_alte = - caml_call3(Runtime_ocaml_Runtime[28], _RY_, embed_menage, _SQ_); - try{ - var - _SS_ = function(param){return menage;}, - _ST_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _R0_, 1); - }, - _SU_ = caml_call4(Runtime_ocaml_Runtime[63], _R1_, [0], _ST_, _SS_), - calculette_dot_menage = - caml_call3(Runtime_ocaml_Runtime[28], _R2_, embed_menage, _SU_); - } - catch(_TY_){ - var _SR_ = caml_wrap_exception(_TY_); - if(_SR_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _RZ_], 1); - throw caml_maybe_attach_backtrace(_SR_, 0); - } - try{ - var - _SW_ = function(param){return demandeur;}, - _SX_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _R4_, 1); - }, - _SY_ = caml_call4(Runtime_ocaml_Runtime[63], _R5_, [0], _SX_, _SW_), - calculette_dot_demandeur = - caml_call3(Runtime_ocaml_Runtime[28], _R6_, embed_demandeur, _SY_); - } - catch(_TX_){ - var _SV_ = caml_wrap_exception(_TX_); - if(_SV_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _R3_], 1); - throw caml_maybe_attach_backtrace(_SV_, 0); - } - try{ - var - _S0_ = function(param){return date_courante;}, - _S1_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _R8_, 1); - }, - _S2_ = caml_call4(Runtime_ocaml_Runtime[63], _R9_, [0], _S1_, _S0_), - calculette_dot_date_courante = + aide_finale_formule= caml_call3 - (Runtime_ocaml_Runtime[28], _R__, Runtime_ocaml_Runtime[16], _S2_); - } - catch(_TW_){ - var _SZ_ = caml_wrap_exception(_TW_); - if(_SZ_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _R7_], 1); - throw caml_maybe_attach_backtrace(_SZ_, 0); - } - try{ - var - _S4_ = function(param){return ressources_menage_prises_en_co;}, - _S5_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Sa_, 1); - }, - _S6_ = caml_call4(Runtime_ocaml_Runtime[63], _Sb_, [0], _S5_, _S4_), - calculette_dot_ressources_mena = + (Runtime_ocaml_Runtime[28],_abw_,Runtime_ocaml_Runtime[13],_an7_); + return [0, + eligibilite, + aide_finale_formule, + traitement_aide_finale, + coefficents_enfants_garde_alte]} + function calculette_aides_au_logement_g(calculette_aides_au_logement_g) + {var + menage=calculette_aides_au_logement_g[1], + demandeur=calculette_aides_au_logement_g[2], + date_courante=calculette_aides_au_logement_g[3], + ressources_menage_prises_en_co=calculette_aides_au_logement_g[4]; + try + {var + _alE_= + function(param) + {var + _amF_=menage[9], + _amG_=menage[8], + _amH_=menage[7], + _amI_=menage[6], + _amJ_=menage[5], + _amK_=menage[4], + _amL_=menage[3]; + function _amM_(personne_a_charge) + {if(0 !== personne_a_charge[0])return 1; + var enfant=personne_a_charge[1]; + return 0 === enfant[8][0]?1:0} + var _amN_=caml_call2(Runtime_ocaml_Runtime[90],_amM_,_amL_); + return [0, + menage[1], + menage[2], + _amN_, + _amK_, + _amJ_, + _amI_, + _amH_, + _amG_, + _amF_]}, + _alF_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aby_,1)}, + _alG_=caml_call4(Runtime_ocaml_Runtime[63],_abz_,[0],_alF_,_alE_)} + catch(_amE_) + {_amE_ = caml_wrap_exception(_amE_); + if(_amE_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_abx_]; + throw _amE_} + var + menage_sans_enfants_garde_alte= + caml_call3(Runtime_ocaml_Runtime[28],_abA_,embed_menage,_alG_); + try + {var + _alH_=function(param){return menage}, + _alI_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_abC_,1)}, + _alJ_=caml_call4(Runtime_ocaml_Runtime[63],_abD_,[0],_alI_,_alH_), + calculette_dot_menage= + caml_call3(Runtime_ocaml_Runtime[28],_abE_,embed_menage,_alJ_)} + catch(_amD_) + {_amD_ = caml_wrap_exception(_amD_); + if(_amD_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_abB_]; + throw _amD_} + try + {var + _alK_=function(param){return demandeur}, + _alL_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_abG_,1)}, + _alM_=caml_call4(Runtime_ocaml_Runtime[63],_abH_,[0],_alL_,_alK_), + calculette_dot_demandeur= + caml_call3(Runtime_ocaml_Runtime[28],_abI_,embed_demandeur,_alM_)} + catch(_amC_) + {_amC_ = caml_wrap_exception(_amC_); + if(_amC_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_abF_]; + throw _amC_} + try + {var + _alN_=function(param){return date_courante}, + _alO_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_abK_,1)}, + _alP_=caml_call4(Runtime_ocaml_Runtime[63],_abL_,[0],_alO_,_alN_), + calculette_dot_date_courante= + caml_call3 + (Runtime_ocaml_Runtime[28],_abM_,Runtime_ocaml_Runtime[16],_alP_)} + catch(_amB_) + {_amB_ = caml_wrap_exception(_amB_); + if(_amB_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_abJ_]; + throw _amB_} + try + {var + _alQ_=function(param){return ressources_menage_prises_en_co}, + _alR_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_abO_,1)}, + _alS_=caml_call4(Runtime_ocaml_Runtime[63],_abP_,[0],_alR_,_alQ_), + calculette_dot_ressources_mena= + caml_call3 + (Runtime_ocaml_Runtime[28],_abQ_,Runtime_ocaml_Runtime[13],_alS_)} + catch(_amA_) + {_amA_ = caml_wrap_exception(_amA_); + if(_amA_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_abN_]; + throw _amA_} + var + _alT_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_abR_,calculette_aides_au_logement), + [0, + calculette_dot_menage, + calculette_dot_demandeur, + calculette_dot_date_courante, + calculette_dot_ressources_mena]), + result=caml_call2(Runtime_ocaml_Runtime[27],_abS_,_alT_), + calculette_dot_eligibilite=result[1], + calculette_dot_aide_finale_for=result[2], + calculette_dot_traitement_aide=result[3], + calculette_dot_coefficents_enf=result[4]; + try + {var + _alU_=function(param){return menage_sans_enfants_garde_alte}, + _alV_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_abU_,1)}, + _alW_=caml_call4(Runtime_ocaml_Runtime[63],_abV_,[0],_alV_,_alU_), + calculette_sans_garde_alternee= + caml_call3(Runtime_ocaml_Runtime[28],_abW_,embed_menage,_alW_)} + catch(_amz_) + {_amz_ = caml_wrap_exception(_amz_); + if(_amz_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_abT_]; + throw _amz_} + try + {var + _alX_=function(param){return demandeur}, + _alY_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_abY_,1)}, + _alZ_=caml_call4(Runtime_ocaml_Runtime[63],_abZ_,[0],_alY_,_alX_), + calculette_sans_garde_alternee$0= + caml_call3(Runtime_ocaml_Runtime[28],_ab0_,embed_demandeur,_alZ_)} + catch(_amy_) + {_amy_ = caml_wrap_exception(_amy_); + if(_amy_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_abX_]; + throw _amy_} + try + {var + _al0_=function(param){return date_courante}, + _al1_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_ab2_,1)}, + _al2_=caml_call4(Runtime_ocaml_Runtime[63],_ab3_,[0],_al1_,_al0_), + calculette_sans_garde_alternee$1= + caml_call3 + (Runtime_ocaml_Runtime[28],_ab4_,Runtime_ocaml_Runtime[16],_al2_)} + catch(_amx_) + {_amx_ = caml_wrap_exception(_amx_); + if(_amx_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ab1_]; + throw _amx_} + try + {var + _al3_=function(param){return ressources_menage_prises_en_co}, + _al4_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_ab6_,1)}, + _al5_=caml_call4(Runtime_ocaml_Runtime[63],_ab7_,[0],_al4_,_al3_), + calculette_sans_garde_alternee$2= + caml_call3 + (Runtime_ocaml_Runtime[28],_ab8_,Runtime_ocaml_Runtime[13],_al5_)} + catch(_amw_) + {_amw_ = caml_wrap_exception(_amw_); + if(_amw_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ab5_]; + throw _amw_} + var + _al6_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26],_ab9_,calculette_aides_au_logement), + [0, + calculette_sans_garde_alternee, + calculette_sans_garde_alternee$0, + calculette_sans_garde_alternee$1, + calculette_sans_garde_alternee$2]), + result$0=caml_call2(Runtime_ocaml_Runtime[27],_ab__,_al6_), + calculette_sans_garde_alternee$3=result$0[2]; + try + {var + _al7_=function(param){return calculette_dot_eligibilite}, + _al8_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_aca_,1)}, + _al9_=caml_call4(Runtime_ocaml_Runtime[63],_acb_,[0],_al8_,_al7_)} + catch(_amv_) + {_amv_ = caml_wrap_exception(_amv_); + if(_amv_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ab$_]; + throw _amv_} + var + eligibilite= caml_call3 - (Runtime_ocaml_Runtime[28], _Sc_, Runtime_ocaml_Runtime[13], _S6_); - } - catch(_TV_){ - var _S3_ = caml_wrap_exception(_TV_); - if(_S3_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _R$_], 1); - throw caml_maybe_attach_backtrace(_S3_, 0); - } - var - _S7_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _Sd_, calculette_aides_au_logement), - [0, - calculette_dot_menage, - calculette_dot_demandeur, - calculette_dot_date_courante, - calculette_dot_ressources_mena]), - result = caml_call2(Runtime_ocaml_Runtime[27], _Se_, _S7_), - calculette_dot_eligibilite = result[1], - calculette_dot_aide_finale_for = result[2], - calculette_dot_traitement_aide = result[3], - calculette_dot_coefficents_enf = result[4]; - try{ - var - _S9_ = function(param){return menage_sans_enfants_garde_alte;}, - _S__ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Sg_, 1); - }, - _S$_ = caml_call4(Runtime_ocaml_Runtime[63], _Sh_, [0], _S__, _S9_), - calculette_sans_garde_alternee = - caml_call3(Runtime_ocaml_Runtime[28], _Si_, embed_menage, _S$_); - } - catch(_TU_){ - var _S8_ = caml_wrap_exception(_TU_); - if(_S8_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Sf_], 1); - throw caml_maybe_attach_backtrace(_S8_, 0); - } - try{ - var - _Tb_ = function(param){return demandeur;}, - _Tc_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Sk_, 1); - }, - _Td_ = caml_call4(Runtime_ocaml_Runtime[63], _Sl_, [0], _Tc_, _Tb_), - calculette_sans_garde_alternee$0 = - caml_call3(Runtime_ocaml_Runtime[28], _Sm_, embed_demandeur, _Td_); - } - catch(_TT_){ - var _Ta_ = caml_wrap_exception(_TT_); - if(_Ta_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Sj_], 1); - throw caml_maybe_attach_backtrace(_Ta_, 0); - } - try{ - var - _Tf_ = function(param){return date_courante;}, - _Tg_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _So_, 1); - }, - _Th_ = caml_call4(Runtime_ocaml_Runtime[63], _Sp_, [0], _Tg_, _Tf_), - calculette_sans_garde_alternee$1 = + (Runtime_ocaml_Runtime[28],_acc_,Runtime_ocaml_Runtime[12],_al9_); + try + {var + _al__=function(param){return calculette_dot_coefficents_enf}, + _al$_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_ace_,1)}, + _ama_=caml_call4(Runtime_ocaml_Runtime[63],_acf_,[0],_al$_,_al__)} + catch(_amu_) + {_amu_ = caml_wrap_exception(_amu_); + if(_amu_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_acd_]; + throw _amu_} + var + _amb_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte= + caml_call3(Runtime_ocaml_Runtime[28],_acg_,_amb_,_ama_); + try + {var + _amc_= + function(param) + {var + _amg_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$424), + _amh_= + caml_call1 + (Runtime_ocaml_Runtime[68],coefficents_enfants_garde_alte); + if(caml_call2(Runtime_ocaml_Runtime[86],_amh_,_amg_)) + var _ami_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$425); + else + var + _amn_= + caml_call1 + (Runtime_ocaml_Runtime[68],coefficents_enfants_garde_alte), + _amo_=caml_call1(Runtime_ocaml_Runtime[69],_amn_), + _amp_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$426), + _amq_= + function(sum1,sum2) + {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)}, + _amr_= + caml_call3 + (Runtime_ocaml_Runtime[88], + _amq_, + _amp_, + coefficents_enfants_garde_alte), + _ams_=caml_call2(Runtime_ocaml_Runtime[107],_amr_,_amo_), + _amt_= + caml_call2 + (Runtime_ocaml_Runtime[98], + calculette_dot_aide_finale_for, + calculette_sans_garde_alternee$3), + _ami_=caml_call2(Runtime_ocaml_Runtime[104],_amt_,_ams_); + var + _amj_= + caml_call2 + (Runtime_ocaml_Runtime[93], + calculette_sans_garde_alternee$3, + _ami_), + _amk_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _aci_, + Runtime_ocaml_Runtime[13], + _amj_), + _aml_= + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _acj_, + calculette_dot_traitement_aide), + _amk_), + _amm_= + caml_call3 + (Runtime_ocaml_Runtime[28], + _ack_, + Runtime_ocaml_Runtime[13], + _aml_); + return caml_call2(Runtime_ocaml_Runtime[27],_acl_,_amm_)}, + _amd_= + function(param) + {return caml_call2(Runtime_ocaml_Runtime[29],_acm_,1)}, + _ame_=caml_call4(Runtime_ocaml_Runtime[63],_acn_,[0],_amd_,_amc_)} + catch(_amf_) + {_amf_ = caml_wrap_exception(_amf_); + if(_amf_ === Runtime_ocaml_Runtime[2]) + throw [0,Runtime_ocaml_Runtime[8],_ach_]; + throw _amf_} + var + aide_finale= caml_call3 - (Runtime_ocaml_Runtime[28], _Sq_, Runtime_ocaml_Runtime[16], _Th_); - } - catch(_TS_){ - var _Te_ = caml_wrap_exception(_TS_); - if(_Te_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Sn_], 1); - throw caml_maybe_attach_backtrace(_Te_, 0); - } - try{ - var - _Tj_ = function(param){return ressources_menage_prises_en_co;}, - _Tk_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Ss_, 1); - }, - _Tl_ = caml_call4(Runtime_ocaml_Runtime[63], _St_, [0], _Tk_, _Tj_), - calculette_sans_garde_alternee$2 = - caml_call3 - (Runtime_ocaml_Runtime[28], _Su_, Runtime_ocaml_Runtime[13], _Tl_); - } - catch(_TR_){ - var _Ti_ = caml_wrap_exception(_TR_); - if(_Ti_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Sr_], 1); - throw caml_maybe_attach_backtrace(_Ti_, 0); - } + (Runtime_ocaml_Runtime[28],_aco_,Runtime_ocaml_Runtime[13],_ame_); + return [0,eligibilite,aide_finale]} var - _Tm_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], _Sv_, calculette_aides_au_logement), - [0, - calculette_sans_garde_alternee, - calculette_sans_garde_alternee$0, - calculette_sans_garde_alternee$1, - calculette_sans_garde_alternee$2]), - result$0 = caml_call2(Runtime_ocaml_Runtime[27], _Sw_, _Tm_), - calculette_sans_garde_alternee$3 = result$0[2]; - try{ - var - _To_ = function(param){return calculette_dot_eligibilite;}, - _Tp_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _Sy_, 1); - }, - _Tq_ = caml_call4(Runtime_ocaml_Runtime[63], _Sz_, [0], _Tp_, _To_); - } - catch(_TQ_){ - var _Tn_ = caml_wrap_exception(_TQ_); - if(_Tn_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _Sx_], 1); - throw caml_maybe_attach_backtrace(_Tn_, 0); - } - var - eligibilite = - caml_call3 - (Runtime_ocaml_Runtime[28], _SA_, Runtime_ocaml_Runtime[12], _Tq_); - try{ - var - _Ts_ = function(param){return calculette_dot_coefficents_enf;}, - _Tt_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _SC_, 1); - }, - _Tu_ = caml_call4(Runtime_ocaml_Runtime[63], _SD_, [0], _Tt_, _Ts_); - } - catch(_TP_){ - var _Tr_ = caml_wrap_exception(_TP_); - if(_Tr_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _SB_], 1); - throw caml_maybe_attach_backtrace(_Tr_, 0); - } - var - _Tv_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte = - caml_call3(Runtime_ocaml_Runtime[28], _SE_, _Tv_, _Tu_); - try{ - var - _Tx_ = - function(param){ - var - _TB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$356), - _TC_ = - caml_call1 - (Runtime_ocaml_Runtime[68], coefficents_enfants_garde_alte); - if(caml_call2(Runtime_ocaml_Runtime[86], _TC_, _TB_)) - var _TD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$357); - else - var - _TI_ = - caml_call1 - (Runtime_ocaml_Runtime[68], coefficents_enfants_garde_alte), - _TJ_ = caml_call1(Runtime_ocaml_Runtime[69], _TI_), - _TK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$358), - _TL_ = - function(sum1, sum2){ - return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); - }, - _TM_ = - caml_call3 - (Runtime_ocaml_Runtime[88], - _TL_, - _TK_, - coefficents_enfants_garde_alte), - _TN_ = caml_call2(Runtime_ocaml_Runtime[107], _TM_, _TJ_), - _TO_ = - caml_call2 - (Runtime_ocaml_Runtime[98], - calculette_dot_aide_finale_for, - calculette_sans_garde_alternee$3), - _TD_ = caml_call2(Runtime_ocaml_Runtime[104], _TO_, _TN_); - var - _TE_ = - caml_call2 - (Runtime_ocaml_Runtime[93], - calculette_sans_garde_alternee$3, - _TD_), - _TF_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _SG_, - Runtime_ocaml_Runtime[13], - _TE_), - _TG_ = - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _SH_, - calculette_dot_traitement_aide), - _TF_), - _TH_ = - caml_call3 - (Runtime_ocaml_Runtime[28], - _SI_, - Runtime_ocaml_Runtime[13], - _TG_); - return caml_call2(Runtime_ocaml_Runtime[27], _SJ_, _TH_); - }, - _Ty_ = - function(param){ - return caml_call2(Runtime_ocaml_Runtime[29], _SK_, 1); - }, - _Tz_ = caml_call4(Runtime_ocaml_Runtime[63], _SL_, [0], _Ty_, _Tx_); - } - catch(_TA_){ - var _Tw_ = caml_wrap_exception(_TA_); - if(_Tw_ === Runtime_ocaml_Runtime[2]) - throw caml_maybe_attach_backtrace - ([0, Runtime_ocaml_Runtime[8], _SF_], 1); - throw caml_maybe_attach_backtrace(_Tw_, 0); - } - var - aide_finale = - caml_call3 - (Runtime_ocaml_Runtime[28], _SM_, Runtime_ocaml_Runtime[13], _Tz_); - return [0, eligibilite, aide_finale]; - } - var - Law_source_Aides_logement = + Law_source_Aides_logement= [0, TypePret, embed_type_pret, @@ -127892,22 +135837,22 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ embed_type_aides_personnelle_l, SituationFamiliale, embed_situation_familiale, - PriseEnCharge, - embed_prise_en_charge, + PriseEnCharge$0, + embed_prise_en_charge$0, TypeLogementFoyer, embed_type_logement_foyer, CategorieEquivalenceLoyerAlloc, embed_categorie_equivalence_lo, SituationFamilialeCalculAPL, embed_situation_familiale_calc, - Collectivite, - embed_collectivite, + Collectivite$0, + embed_collectivite$0, PriseEnChargeEnfant, embed_prise_en_charge_enfant, - SituationObligationScolaire, - embed_situation_obligation_sco, - ElementPrestationsFamiliales, - embed_element_prestations_fami, + SituationObligationScolaire$0, + embed_situation_obligation_sco$0, + ElementPrestationsFamiliales$0, + embed_element_prestations_fami$0, ConventionBailleurSocial, embed_convention_bailleur_soci, ConventionANHA, @@ -127962,14 +135907,14 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ embed_calculette_aides_au_loge, CalculetteAidesAuLogementGarde, embed_calculette_aides_au_loge$0, - BaseMensuelleAllocationsFamili, - embed_base_mensuelle_allocatio, - VerificationAgeInferieurOuEgal, - embed_verification_age_inferie, - VerificationAgeSuperieurA, - embed_verification_age_superie, - Smic, - embed_smic, + BaseMensuelleAllocationsFamili$1, + embed_base_mensuelle_allocatio$1, + VerificationAgeInferieurOuEgal$1, + embed_verification_age_inferie$1, + VerificationAgeSuperieurA$0, + embed_verification_age_superie$1, + Smic$0, + embed_smic$0, NeufOuAncien, embed_neuf_ou_ancien, TrancheRevenu, @@ -128062,14 +136007,14 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ embed_calculette_aides_au_loge$1, CalculetteAidesAuLogementGarde$0, embed_calculette_aides_au_loge$2, - BaseMensuelleAllocationsFamili$0, - embed_base_mensuelle_allocatio$0, - VerificationAgeInferieurOuEgal$0, - embed_verification_age_inferie$0, - VerificationAgeSuperieurAIn, - embed_verification_age_superie$0, - SmicIn, - embed_smic_in, + BaseMensuelleAllocationsFamili$2, + embed_base_mensuelle_allocatio$2, + VerificationAgeInferieurOuEgal$2, + embed_verification_age_inferie$2, + VerificationAgeSuperieurAIn$0, + embed_verification_age_superie$2, + SmicIn$0, + embed_smic_in$0, EligibilitePrestationsFamilial$0, embed_eligibilite_prestations_$0, contributions_sociales_aides_p, @@ -128078,10 +136023,10 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ calcul_nombre_parts_accession_, ouverture_droits_retraite, impaye_depense_logement, - base_mensuelle_allocations_fam, - verification_age_inferieur_ou_, - verification_age_superieur_a, - smic, + base_mensuelle_allocations_fam$5, + verification_age_inferieur_ou_$5, + verification_age_superieur_a$1, + smic$1, arrondi_centaine_superieure, traitement_nul_tout_le_temps, calcul_aide_personnalisee_loge, @@ -128100,4432 +136045,3584 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ eligibilite_aide_personnalisee, calculette_aides_au_logement, calculette_aides_au_logement_g]; - runtime.caml_register_global - (6597, Law_source_Aides_logement, "Law_source__Aides_logement"); - return; - } - (globalThis)); - -//# 82576 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_AccessionPropriete = "AccessionPropriete", - cst_AccessionProprieteLocalUsa = - "AccessionProprieteLocalUsageExclusifHabitation", - cst_Accord = "Accord", - cst_AgrandirOuRendreHabitableD = "AgrandirOuRendreHabitableD331_63", - cst_AidePersonnaliseeLogement = "AidePersonnaliseeLogement", - cst_AllocationAdulteHandicape = "AllocationAdulteHandicape", - cst_AllocationEducationEnfantH = "AllocationEducationEnfantHandicape", - cst_AllocationJeuneEnfant = "AllocationJeuneEnfant", - cst_AllocationJournalierePrese = "AllocationJournalierePresenceParentale", - cst_AllocationLogement = "AllocationLogement", - cst_AllocationLogementFamilial = "AllocationLogementFamiliale", - cst_AllocationLogementSociale = "AllocationLogementSociale", - cst_AllocationRentreeScolaire = "AllocationRentreeScolaire", - cst_AllocationSoutienEnfantHan = "AllocationSoutienEnfantHandicape", - cst_AllocationSoutienFamilial = "AllocationSoutienFamilial", - cst_AllocationsFamiliales = "AllocationsFamiliales", - cst_Ancien = "Ancien", - cst_Apres = "Apres", - cst_ApresPremierJourMoisCivilT = - "ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse", - cst_Ascendant = "Ascendant", - cst_Autre = "Autre", - cst_AutrePersonneACharge = "AutrePersonneACharge", - cst_AutresPersonnes = "AutresPersonnes", - cst_Avant = "Avant", - cst_AvantPremierJourMoisCivilT = - "AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse", - cst_Bailleur = "Bailleur", - cst_BailleurPrive = "BailleurPrive", - cst_BailleurPriveAvecConventio = "BailleurPriveAvecConventionnementSocial", - cst_BailleurSocial = "BailleurSocial", - cst_Beneficiaire = "Beneficiaire", - cst_Celibataire = "Celibataire", - cst_CelibataireSepareDeFait = "CelibataireSepareDeFait", - cst_Changement = "Changement", - cst_CollateralDeuxiemeTroisiem = "CollateralDeuxiemeTroisiemeDegre", - cst_ComplementFamilial = "ComplementFamilial", - cst_ConcubinageDontSepareDeFai = "ConcubinageDontSepareDeFait", - cst_Concubins = "Concubins", - cst_Couple = "Couple", - cst_D331_32 = "D331_32", - cst_D331_59_8 = "D331_59_8", - cst_D331_63_64 = "D331_63_64", - cst_D331_76_1 = "D331_76_1", - cst_DateDeNaissance = "DateDeNaissance", - cst_Demandeur = "Demandeur", - cst_DemandeurOuConjointOuParen = - "DemandeurOuConjointOuParentOuViaPartsSocietes", - cst_Descendant = "Descendant", - cst_EffectiveEtPermanente = "EffectiveEtPermanente", - cst_EnfantACharge = "EnfantACharge", - cst_EtablissementHabilite = "EtablissementHabilite", - cst_Etrangere = "Etrangere", - cst_EtudiantLogeEnChambreCROUS = "EtudiantLogeEnChambreCROUS", - cst_EtudiantLogeEnChambreCROUS$0 = "EtudiantLogeEnChambreCROUSRehabilitee", - cst_FoyerJeunesTrvailleursOuMi = - "FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995", - cst_Francaise = "Francaise", - cst_GardeAlterneeAllocataireUn = "GardeAlterneeAllocataireUnique", - cst_GardeAlterneeCoefficientPr = "GardeAlterneeCoefficientPriseEnCharge", - cst_GardeAlterneePartageAlloca = "GardeAlterneePartageAllocations", - cst_Guadeloupe = "Guadeloupe", - cst_Guyane = "Guyane", - cst_ImpayeLoyer = "ImpayeLoyer", - cst_ImpayePret = "ImpayePret", - cst_Infini = "Infini", - cst_LaReunion = "LaReunion", - cst_Locataire = "Locataire", - cst_Location = "Location", - cst_LocationAccession = "LocationAccession", - cst_LogementFoyer = "LogementFoyer", - cst_LogementPersonnesAgeesOuHa = "LogementPersonnesAgeesOuHandicapees", - cst_Loyer = "Loyer", - cst_Maries = "Maries", - cst_Martinique = "Martinique", - cst_Mayotte = "Mayotte", - cst_Mensualite = "Mensualite", - cst_Metropole = "Metropole", - cst_MoinsDeTroisEnfants = "MoinsDeTroisEnfants", - cst_Neuf = "Neuf", - cst_Non = "Non", - cst_ObjectifDecenceLogement = "ObjectifDecenceLogement", - cst_Oui = "Oui", - cst_OuiAvecLoyerOuCharges = "OuiAvecLoyerOuCharges", - cst_Pacses = "Pacses", - cst_PasDeChangement = "PasDeChangement", - cst_PasDeGardeAlternee = "PasDeGardeAlternee", - cst_PasDeTravaux = "PasDeTravaux", - cst_PasEligible = "PasEligible", - cst_PasdAccord = "PasdAccord", - cst_Pendant = "Pendant", - cst_PersonneSeule = "PersonneSeule", - cst_PersonnesAgeesSelon3DeD842 = "PersonnesAgeesSelon3DeD842_16", - cst_PlusDeTroisEnfants = "PlusDeTroisEnfants", - cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", - cst_PrevuDansListeR321_15 = "PrevuDansListeR321_15", - cst_ResidenceAlterneeAllocatai = "ResidenceAlterneeAllocataireUnique", - cst_ResidenceAlterneeAllocatio = "ResidenceAlterneeAllocationsPartagee", - cst_ResidenceSociale = "ResidenceSociale", - cst_ResidentLogementFoyer = "ResidentLogementFoyer", - cst_Revenu = "Revenu", - cst_SaintBarthelemy = "SaintBarthelemy", - cst_SaintMartin = "SaintMartin", - cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", - cst_ServicesSociauxAllocationV = - "ServicesSociauxAllocationVerseeALaFamille", - cst_ServicesSociauxAllocationV$0 = - "ServicesSociauxAllocationVerseeAuxServicesSociaux", - cst_SousLocataire = "SousLocataire", - cst_The_function_limitation_ma$1 = - "The function 'limitation_majoration_personnes_a_charge_in' translation isn't yet supported...", - cst_The_function_traitement_ai$9 = - "The function 'traitement_aide_finale' translation isn't yet supported...", - cst_TotalAnnuelEcheances = "TotalAnnuelEcheances", - cst_TravauxPourAcquisitionD832 = "TravauxPourAcquisitionD832_15_1", - cst_TravauxSurLogementDejaAcqu = "TravauxSurLogementDejaAcquisD832_15_2", - cst_Unexpected = "Unexpected '", - cst_VendeurQuandDemandeurACont = - "VendeurQuandDemandeurAContratLocationAccession", - cst_Zone1 = "Zone1", - cst_Zone2 = "Zone2", - cst_Zone3 = "Zone3", - caml_js_from_array = runtime.caml_js_from_array, - caml_js_to_array = runtime.caml_js_to_array, - caml_js_wrap_callback = runtime.caml_js_wrap_callback, - caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback, - caml_string_notequal = runtime.caml_string_notequal, - caml_string_of_jsstring = runtime.caml_string_of_jsstring; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var global_data = runtime.caml_get_global_data(); - global_data.CamlinternalOO; - var - Law_source_Aides_logement = global_data.Law_source__Aides_logement, - Stdlib = global_data.Stdlib, - Runtime_jsoo_Runtime = global_data.Runtime_jsoo__Runtime, - Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, - Stdlib_Array = global_data.Stdlib__Array, - Stdlib_Printf = global_data.Stdlib__Printf, - Js_of_ocaml_Js = global_data.Js_of_ocaml__Js, - cst_The_function_age_l512_3_2_ = - "The function 'age_l512_3_2_in' translation isn't yet supported...", - cst_The_function_n_nombre_part = - "The function 'n_nombre_parts_d832_25_in' translation isn't yet supported...", - cst_The_function_limitation_ma$0 = cst_The_function_limitation_ma$1, - cst_The_function_condition_2_d = - "The function 'condition_2_du_832_25_in' translation isn't yet supported...", - cst_The_function_limitation_ma = cst_The_function_limitation_ma$1, - cst_The_function_date_entree_v = - "The function 'date_entree_vigueur_differee_cch_in' translation isn't yet supported...", - cst_The_function_condition_log = - "The function 'condition_logement_surface_in' translation isn't yet supported...", - cst_The_function_condition_log$0 = - "The function 'condition_logement_residence_principale_in' translation isn't yet supported...", - cst_The_function_condition_2_r = - "The function 'condition_2_r823_4' translation isn't yet supported...", - _bp_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'ModeOccupation.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'ModeOccupation.t'"], - _bo_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'CategorieCalculAPL.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'CategorieCalculAPL.t'"], - _bn_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'PersonneACharge.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'PersonneACharge.t'"], - cst_The_function_conditions_ho = - "The function 'conditions_hors_age' translation isn't yet supported...", - cst_The_function_droit_ouvert_ = - "The function 'droit_ouvert' translation isn't yet supported...", - _bm_ = [1, 0], - _bl_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, "' kind for the enumeration 'ChangementLogementD8424.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'ChangementLogementD8424.t'"], - _bk_ = [0, 0], - _bj_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'Nationalite.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'Nationalite.t'"], - _bi_ = [0, 0], - _bh_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, "' kind for the enumeration 'LoueOuSousLoueADesTiers.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'LoueOuSousLoueADesTiers.t'"], - _bg_ = [2, 0], - _bf_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'TypeBailleur.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'TypeBailleur.t'"], - _be_ = [0, 0], - _bd_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, - "' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'", - 0]]], - "Unexpected '%s' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'"], - _bc_ = [0, 0], - _bb_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'NeufOuAncien.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'NeufOuAncien.t'"], - cst_The_function_traitement_ai$8 = cst_The_function_traitement_ai$9, - cst_The_function_traitement_ai$7 = cst_The_function_traitement_ai$9, - cst_The_function_traitement_ai$6 = cst_The_function_traitement_ai$9, - cst_The_function_traitement_ai$5 = cst_The_function_traitement_ai$9, - cst_The_function_traitement_ai$4 = cst_The_function_traitement_ai$9, - cst_The_function_traitement_ai$3 = cst_The_function_traitement_ai$9, - cst_The_function_traitement_ai$2 = cst_The_function_traitement_ai$9, - cst_The_function_traitement_ai$1 = cst_The_function_traitement_ai$9, - cst_The_function_traitement_ai$0 = cst_The_function_traitement_ai$9, - cst_The_function_traitement_ai = cst_The_function_traitement_ai$9, - cst_The_function_montant_trans = - "The function 'montant' translation isn't yet supported...", - _a5_ = [0, 0], - _a6_ = [2, 0], - _a7_ = [1, 0], - _a8_ = [5, 0], - _a9_ = [6, 0], - _a__ = [3, 0], - _a$_ = [7, 0], - _ba_ = [4, 0], - _a4_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, - "' kind for the enumeration 'ElementPrestationsFamiliales.t'", - 0]]], - "Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'"], - _a1_ = [1, 0], - _a2_ = [0, 0], - _a3_ = [2, 0], - _a0_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, "' kind for the enumeration 'SituationObligationScolaire.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'"], - _aV_ = [4, 0], - _aW_ = [3, 0], - _aX_ = [0, 0], - _aY_ = [1, 0], - _aZ_ = [2, 0], - _aU_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'PriseEnChargeEnfant.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'PriseEnChargeEnfant.t'"], - _aL_ = [7, 0], - _aM_ = [5, 0], - _aN_ = [4, 0], - _aO_ = [6, 0], - _aP_ = [8, 0], - _aQ_ = [2, 0], - _aR_ = [3, 0], - _aS_ = [1, 0], - _aT_ = [0, 0], - _aK_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'Collectivite.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'Collectivite.t'"], - _aI_ = [0, 0], - _aJ_ = [1, 0], - _aH_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, "' kind for the enumeration 'SituationFamilialeCalculAPL.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'SituationFamilialeCalculAPL.t'"], - _aD_ = [2, 0], - _aE_ = [1, 0], - _aF_ = [0, 0], - _aG_ = [3, 0], - _aC_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, - "' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'", - 0]]], - "Unexpected '%s' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'"], - _ay_ = [1, 0], - _az_ = [0, 0], - _aA_ = [2, 0], - _aB_ = [3, 0], - _ax_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'TypeLogementFoyer.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'TypeLogementFoyer.t'"], - _au_ = [2, 0], - _av_ = [1, 0], - _aw_ = [0, 0], - _at_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'PriseEnCharge.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'"], - _ao_ = [2, 0], - _ap_ = [3, 0], - _aq_ = [5, 0], - _ar_ = [4, 0], - _as_ = [0, 0], - _an_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'SituationFamiliale.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'SituationFamiliale.t'"], - _ak_ = [2, 0], - _al_ = [1, 0], - _am_ = [0, 0], - _aj_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, - "' kind for the enumeration 'TypeAidesPersonnelleLogement.t'", - 0]]], - "Unexpected '%s' kind for the enumeration 'TypeAidesPersonnelleLogement.t'"], - _ai_ = [1, 0], - _ah_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, - "' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'", - 0]]], - "Unexpected '%s' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'"], - _ae_ = [0, 0], - _af_ = [2, 0], - _ag_ = [1, 0], - _ad_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, - "' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'", - 0]]], - "Unexpected '%s' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'"], - _ab_ = [1, 0], - _ac_ = [0, 0], - _aa_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'ModeOccupationImpaye.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'ModeOccupationImpaye.t'"], - _$_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'DepenseLogement.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'DepenseLogement.t'"], - _Y_ = [2, 0], - _Z_ = [1, 0], - ___ = [0, 0], - _X_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'VersementA.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'VersementA.t'"], - _W_ = [1, 0], - _V_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, - "' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'", - 0]]], - "Unexpected '%s' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'"], - _S_ = [2, 0], - _T_ = [1, 0], - _U_ = [0, 0], - _R_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'ZoneDHabitation.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'ZoneDHabitation.t'"], - _P_ = [1, 0], - _Q_ = [2, 0], - _O_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, - "' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'", - 0]]], - "Unexpected '%s' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'"], - _L_ = [1, 0], - _M_ = [2, 0], - _N_ = [0, 0], - _K_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'Parente.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'Parente.t'"], - _J_ = [0, 0], - _I_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, "' kind for the enumeration 'SituationGardeAlternee.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'SituationGardeAlternee.t'"], - _H_ = [1, 0], - _G_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'ParentOuAutre.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'ParentOuAutre.t'"], - _A_ = [1, 0], - _B_ = [0, 0], - _C_ = [3, 0], - _D_ = [4, 0], - _E_ = [2, 0], - _F_ = [5, 0], - _z_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'PrestationRecue.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'PrestationRecue.t'"], - _y_ = [1, 0], - _x_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'LimiteTrancheDecimal.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'LimiteTrancheDecimal.t'"], - _w_ = [1, 0], - _v_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'LimiteTranche.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'LimiteTranche.t'"], - _t_ = [0, 0], - _u_ = [1, 0], - _s_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'AmelioreParOccupant.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'AmelioreParOccupant.t'"], - _o_ = [1, 0], - _p_ = [3, 0], - _q_ = [0, 0], - _r_ = [2, 0], - _n_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, "' kind for the enumeration 'TypeTravauxLogementR8425.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'TypeTravauxLogementR8425.t'"], - _k_ = [1, 0], - _l_ = [0, 0], - _m_ = [2, 0], - _j_ = - [0, - [11, - cst_Unexpected, - [2, - 0, - [11, "' kind for the enumeration 'TypeTravauxLogementD83215.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'TypeTravauxLogementD83215.t'"], - _h_ = [1, 0], - _i_ = [0, 0], - _g_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'TitulairePret.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'TitulairePret.t'"], - _b_ = [3, 0], - _c_ = [1, 0], - _d_ = [2, 0], - _e_ = [0, 0], - _f_ = [4, 0], - _a_ = - [0, - [11, - cst_Unexpected, - [2, 0, [11, "' kind for the enumeration 'TypePret.t'", 0]]], - "Unexpected '%s' kind for the enumeration 'TypePret.t'"], - cst_AidesLogementLib = "AidesLogementLib"; - function type_pret_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_D331_32, payload: arg}; - case 1: - var arg$0 = param[1]; return {kind: cst_D331_63_64, payload: arg$0}; - case 2: - var arg$1 = param[1]; return {kind: cst_D331_59_8, payload: arg$1}; - case 3: - var arg$2 = param[1]; return {kind: cst_D331_76_1, payload: arg$2}; - default: var arg$3 = param[1]; return {kind: cst_Autre, payload: arg$3}; - } - } - function type_pret_of_jsoo(type_pret){ - var cons = caml_string_of_jsstring(type_pret.kind); - if(! caml_string_notequal(cons, cst_Autre)) return _f_; - if(! caml_string_notequal(cons, cst_D331_32)) return _e_; - if(! caml_string_notequal(cons, cst_D331_59_8)) return _d_; - if(! caml_string_notequal(cons, cst_D331_63_64)) return _c_; - if(! caml_string_notequal(cons, cst_D331_76_1)) return _b_; - var _l$_ = caml_call2(Stdlib_Printf[4], _a_, cons); - return caml_call1(Stdlib[2], _l$_); - } - function titulaire_pret_to_jsoo(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_Demandeur, payload: arg}; - } - var arg$0 = param[1]; - return {kind: cst_VendeurQuandDemandeurACont, payload: arg$0}; - } - function titulaire_pret_of_jsoo(titulaire_pret){ - var cons = caml_string_of_jsstring(titulaire_pret.kind); - if(! caml_string_notequal(cons, cst_Demandeur)) return _i_; - if(! caml_string_notequal(cons, cst_VendeurQuandDemandeurACont)) - return _h_; - var _l__ = caml_call2(Stdlib_Printf[4], _g_, cons); - return caml_call1(Stdlib[2], _l__); - } - function type_travaux_logement_d832_15_(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_TravauxPourAcquisitionD832, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_TravauxSurLogementDejaAcqu, payload: arg$0}; - default: - var arg$1 = param[1]; return {kind: cst_PasDeTravaux, payload: arg$1}; - } - } - function type_travaux_logement_d832_15_$0(type_travaux_logement_d832_15){ - var cons = caml_string_of_jsstring(type_travaux_logement_d832_15.kind); - if(! caml_string_notequal(cons, cst_PasDeTravaux)) return _m_; - if(! caml_string_notequal(cons, cst_TravauxPourAcquisitionD832)) - return _l_; - if(! caml_string_notequal(cons, cst_TravauxSurLogementDejaAcqu)) - return _k_; - var _l9_ = caml_call2(Stdlib_Printf[4], _j_, cons); - return caml_call1(Stdlib[2], _l9_); - } - function type_travaux_logement_r842_5_t(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_ObjectifDecenceLogement, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_PrevuDansListeR321_15, payload: arg$0}; - case 2: - var arg$1 = param[1]; - return {kind: cst_AgrandirOuRendreHabitableD, payload: arg$1}; - default: - var arg$2 = param[1]; return {kind: cst_PasDeTravaux, payload: arg$2}; - } - } - function type_travaux_logement_r842_5_o(type_travaux_logement_r842_5){ - var cons = caml_string_of_jsstring(type_travaux_logement_r842_5.kind); - if(! caml_string_notequal(cons, cst_AgrandirOuRendreHabitableD)) - return _r_; - if(! caml_string_notequal(cons, cst_ObjectifDecenceLogement)) return _q_; - if(! caml_string_notequal(cons, cst_PasDeTravaux)) return _p_; - if(! caml_string_notequal(cons, cst_PrevuDansListeR321_15)) return _o_; - var _l8_ = caml_call2(Stdlib_Printf[4], _n_, cons); - return caml_call1(Stdlib[2], _l8_); - } - function ameliore_par_occupant_to_jsoo(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_Oui, payload: arg}; - } - var arg$0 = param[1]; - return {kind: cst_Non, payload: arg$0}; - } - function ameliore_par_occupant_of_jsoo(ameliore_par_occupant){ - var cons = caml_string_of_jsstring(ameliore_par_occupant.kind); - if(! caml_string_notequal(cons, cst_Non)) return _u_; - if(! caml_string_notequal(cons, cst_Oui)) return _t_; - var _l7_ = caml_call2(Stdlib_Printf[4], _s_, cons); - return caml_call1(Stdlib[2], _l7_); - } - function limite_tranche_to_jsoo(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_Revenu, - payload: caml_call1(Runtime_ocaml_Runtime[35], arg)}; - } - var arg$0 = param[1]; - return {kind: cst_Infini, payload: arg$0}; - } - function limite_tranche_of_jsoo(limite_tranche){ - var cons = caml_string_of_jsstring(limite_tranche.kind); - if(! caml_string_notequal(cons, cst_Infini)) return _w_; - if(caml_string_notequal(cons, cst_Revenu)){ - var _l5_ = caml_call2(Stdlib_Printf[4], _v_, cons); - return caml_call1(Stdlib[2], _l5_); - } - var _l6_ = caml_call1(Runtime_ocaml_Runtime[42], limite_tranche.payload); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _l6_)]; - } - function limite_tranche_decimal_to_jsoo(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_Revenu, - payload: caml_call1(Runtime_ocaml_Runtime[43], arg)}; - } - var arg$0 = param[1]; - return {kind: cst_Infini, payload: arg$0}; - } - function limite_tranche_decimal_of_jsoo(limite_tranche_decimal){ - var cons = caml_string_of_jsstring(limite_tranche_decimal.kind); - if(! caml_string_notequal(cons, cst_Infini)) return _y_; - if(! caml_string_notequal(cons, cst_Revenu)) - return [0, - caml_call1 - (Runtime_ocaml_Runtime[42], limite_tranche_decimal.payload)]; - var _l4_ = caml_call2(Stdlib_Printf[4], _x_, cons); - return caml_call1(Stdlib[2], _l4_); - } - function prestation_recue_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_AllocationsFamiliales, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_ComplementFamilial, payload: arg$0}; - case 2: - var arg$1 = param[1]; - return {kind: cst_AllocationJeuneEnfant, payload: arg$1}; - case 3: - var arg$2 = param[1]; - return {kind: cst_AllocationSoutienFamilial, payload: arg$2}; - case 4: - var arg$3 = param[1]; - return {kind: cst_AllocationSoutienEnfantHan, payload: arg$3}; - default: - var arg$4 = param[1]; - return {kind: cst_AllocationAdulteHandicape, payload: arg$4}; - } - } - function prestation_recue_of_jsoo(prestation_recue){ - var cons = caml_string_of_jsstring(prestation_recue.kind); - if(! caml_string_notequal(cons, cst_AllocationAdulteHandicape)) - return _F_; - if(! caml_string_notequal(cons, cst_AllocationJeuneEnfant)) return _E_; - if(! caml_string_notequal(cons, cst_AllocationSoutienEnfantHan)) - return _D_; - if(! caml_string_notequal(cons, cst_AllocationSoutienFamilial)) - return _C_; - if(! caml_string_notequal(cons, cst_AllocationsFamiliales)) return _B_; - if(! caml_string_notequal(cons, cst_ComplementFamilial)) return _A_; - var _l3_ = caml_call2(Stdlib_Printf[4], _z_, cons); - return caml_call1(Stdlib[2], _l3_); - } - function parent_ou_autre_to_jsoo(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_DemandeurOuConjointOuParen, - payload: caml_call1(Runtime_ocaml_Runtime[43], arg)}; - } - var arg$0 = param[1]; - return {kind: cst_Autre, payload: arg$0}; - } - function parent_ou_autre_of_jsoo(parent_ou_autre){ - var cons = caml_string_of_jsstring(parent_ou_autre.kind); - if(! caml_string_notequal(cons, cst_Autre)) return _H_; - if(! caml_string_notequal(cons, cst_DemandeurOuConjointOuParen)) - return [0, - caml_call1(Runtime_ocaml_Runtime[42], parent_ou_autre.payload)]; - var _l2_ = caml_call2(Stdlib_Printf[4], _G_, cons); - return caml_call1(Stdlib[2], _l2_); - } - function situation_garde_alternee_to_js(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_PasDeGardeAlternee, payload: arg}; - } - var arg$0 = param[1]; - return {kind: cst_GardeAlterneeCoefficientPr, - payload: caml_call1(Runtime_ocaml_Runtime[43], arg$0)}; - } - function situation_garde_alternee_of_js(situation_garde_alternee){ - var cons = caml_string_of_jsstring(situation_garde_alternee.kind); - if(! caml_string_notequal(cons, cst_GardeAlterneeCoefficientPr)) - return [1, - caml_call1 - (Runtime_ocaml_Runtime[42], situation_garde_alternee.payload)]; - if(! caml_string_notequal(cons, cst_PasDeGardeAlternee)) return _J_; - var _l1_ = caml_call2(Stdlib_Printf[4], _I_, cons); - return caml_call1(Stdlib[2], _l1_); - } - function parente_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_Ascendant, payload: arg}; - case 1: - var arg$0 = param[1]; return {kind: cst_Descendant, payload: arg$0}; - default: - var arg$1 = param[1]; - return {kind: cst_CollateralDeuxiemeTroisiem, payload: arg$1}; - } - } - function parente_of_jsoo(parente){ - var cons = caml_string_of_jsstring(parente.kind); - if(! caml_string_notequal(cons, cst_Ascendant)) return _N_; - if(! caml_string_notequal(cons, cst_CollateralDeuxiemeTroisiem)) - return _M_; - if(! caml_string_notequal(cons, cst_Descendant)) return _L_; - var _l0_ = caml_call2(Stdlib_Printf[4], _K_, cons); - return caml_call1(Stdlib[2], _l0_); - } - function date_de_naissance_ou_mois_de_g(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_DateDeNaissance, - payload: caml_call1(Runtime_jsoo_Runtime[5], arg)}; - case 1: - var arg$0 = param[1]; - return {kind: cst_AvantPremierJourMoisCivilT, payload: arg$0}; - default: - var arg$1 = param[1]; - return {kind: cst_ApresPremierJourMoisCivilT, payload: arg$1}; - } - } - function date_de_naissance_ou_mois_de_g$0(date_de_naissance_ou_mois_de_g){ - var cons = caml_string_of_jsstring(date_de_naissance_ou_mois_de_g.kind); - if(! caml_string_notequal(cons, cst_ApresPremierJourMoisCivilT)) - return _Q_; - if(! caml_string_notequal(cons, cst_AvantPremierJourMoisCivilT)) - return _P_; - if(! caml_string_notequal(cons, cst_DateDeNaissance)) - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - date_de_naissance_ou_mois_de_g.payload)]; - var _lZ_ = caml_call2(Stdlib_Printf[4], _O_, cons); - return caml_call1(Stdlib[2], _lZ_); - } - function zone_d_habitation_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_Zone1, payload: arg}; - case 1: - var arg$0 = param[1]; return {kind: cst_Zone2, payload: arg$0}; - default: var arg$1 = param[1]; return {kind: cst_Zone3, payload: arg$1}; - } - } - function zone_d_habitation_of_jsoo(zone_d_habitation){ - var cons = caml_string_of_jsstring(zone_d_habitation.kind); - if(! caml_string_notequal(cons, cst_Zone1)) return _U_; - if(! caml_string_notequal(cons, cst_Zone2)) return _T_; - if(! caml_string_notequal(cons, cst_Zone3)) return _S_; - var _lY_ = caml_call2(Stdlib_Printf[4], _R_, cons); - return caml_call1(Stdlib[2], _lY_); - } - function paiement_logement_distinct_pro(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_OuiAvecLoyerOuCharges, - payload: caml_call1(Runtime_ocaml_Runtime[35], arg)}; - } - var arg$0 = param[1]; - return {kind: cst_Non, payload: arg$0}; - } - function paiement_logement_distinct_pro$0(paiement_logement_distinct_pro){ - var cons = caml_string_of_jsstring(paiement_logement_distinct_pro.kind); - if(! caml_string_notequal(cons, cst_Non)) return _W_; - if(caml_string_notequal(cons, cst_OuiAvecLoyerOuCharges)){ - var _lW_ = caml_call2(Stdlib_Printf[4], _V_, cons); - return caml_call1(Stdlib[2], _lW_); - } - var - _lX_ = - caml_call1 - (Runtime_ocaml_Runtime[42], paiement_logement_distinct_pro.payload); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _lX_)]; - } - function versement_a_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_Bailleur, payload: arg}; - case 1: - var arg$0 = param[1]; return {kind: cst_Beneficiaire, payload: arg$0}; - default: - var arg$1 = param[1]; - return {kind: cst_EtablissementHabilite, payload: arg$1}; - } - } - function versement_a_of_jsoo(versement_a){ - var cons = caml_string_of_jsstring(versement_a.kind); - if(! caml_string_notequal(cons, cst_Bailleur)) return ___; - if(! caml_string_notequal(cons, cst_Beneficiaire)) return _Z_; - if(! caml_string_notequal(cons, cst_EtablissementHabilite)) return _Y_; - var _lV_ = caml_call2(Stdlib_Printf[4], _X_, cons); - return caml_call1(Stdlib[2], _lV_); - } - function depense_logement_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_TotalAnnuelEcheances, - payload: caml_call1(Runtime_ocaml_Runtime[35], arg)}; - case 1: - var arg$0 = param[1]; - return {kind: cst_Mensualite, - payload: caml_call1(Runtime_ocaml_Runtime[35], arg$0)}; - default: - var arg$1 = param[1]; - return {kind: cst_Loyer, - payload: caml_call1(Runtime_ocaml_Runtime[35], arg$1)}; - } - } - function depense_logement_of_jsoo(depense_logement){ - var cons = caml_string_of_jsstring(depense_logement.kind); - if(! caml_string_notequal(cons, cst_Loyer)){ - var - _lU_ = caml_call1(Runtime_ocaml_Runtime[42], depense_logement.payload); - return [2, caml_call1(Runtime_ocaml_Runtime[33], _lU_)]; - } - if(! caml_string_notequal(cons, cst_Mensualite)){ - var - _lT_ = caml_call1(Runtime_ocaml_Runtime[42], depense_logement.payload); - return [1, caml_call1(Runtime_ocaml_Runtime[33], _lT_)]; - } - if(caml_string_notequal(cons, cst_TotalAnnuelEcheances)){ - var _lR_ = caml_call2(Stdlib_Printf[4], _$_, cons); - return caml_call1(Stdlib[2], _lR_); - } - var - _lS_ = caml_call1(Runtime_ocaml_Runtime[42], depense_logement.payload); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _lS_)]; - } - function mode_occupation_impaye_to_jsoo(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_ImpayeLoyer, payload: arg}; - } - var arg$0 = param[1]; - return {kind: cst_ImpayePret, payload: arg$0}; - } - function mode_occupation_impaye_of_jsoo(mode_occupation_impaye){ - var cons = caml_string_of_jsstring(mode_occupation_impaye.kind); - if(! caml_string_notequal(cons, cst_ImpayeLoyer)) return _ac_; - if(! caml_string_notequal(cons, cst_ImpayePret)) return _ab_; - var _lQ_ = caml_call2(Stdlib_Printf[4], _aa_, cons); - return caml_call1(Stdlib[2], _lQ_); - } - function type_eligibilite_allocation_lo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_PasEligible, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_AllocationLogementFamilial, payload: arg$0}; - default: - var arg$1 = param[1]; - return {kind: cst_AllocationLogementSociale, payload: arg$1}; - } - } - function type_eligibilite_allocation_lo$0(type_eligibilite_allocation_lo){ - var cons = caml_string_of_jsstring(type_eligibilite_allocation_lo.kind); - if(! caml_string_notequal(cons, cst_AllocationLogementFamilial)) - return _ag_; - if(! caml_string_notequal(cons, cst_AllocationLogementSociale)) - return _af_; - if(! caml_string_notequal(cons, cst_PasEligible)) return _ae_; - var _lP_ = caml_call2(Stdlib_Printf[4], _ad_, cons); - return caml_call1(Stdlib[2], _lP_); - } - function accord_financement_representan(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_Accord, - payload: caml_call1(Runtime_jsoo_Runtime[5], arg)}; - } - var arg$0 = param[1]; - return {kind: cst_PasdAccord, payload: arg$0}; - } - function accord_financement_representan$0(accord_financement_representan){ - var cons = caml_string_of_jsstring(accord_financement_representan.kind); - if(! caml_string_notequal(cons, cst_Accord)) - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - accord_financement_representan.payload)]; - if(! caml_string_notequal(cons, cst_PasdAccord)) return _ai_; - var _lO_ = caml_call2(Stdlib_Printf[4], _ah_, cons); - return caml_call1(Stdlib[2], _lO_); - } - function type_aides_personnelle_logemen(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_AidePersonnaliseeLogement, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_AllocationLogementFamilial, payload: arg$0}; - default: - var arg$1 = param[1]; - return {kind: cst_AllocationLogementSociale, payload: arg$1}; - } - } - function type_aides_personnelle_logemen$0(type_aides_personnelle_logemen){ - var cons = caml_string_of_jsstring(type_aides_personnelle_logemen.kind); - if(! caml_string_notequal(cons, cst_AidePersonnaliseeLogement)) - return _am_; - if(! caml_string_notequal(cons, cst_AllocationLogementFamilial)) - return _al_; - if(! caml_string_notequal(cons, cst_AllocationLogementSociale)) - return _ak_; - var _lN_ = caml_call2(Stdlib_Printf[4], _aj_, cons); - return caml_call1(Stdlib[2], _lN_); - } - function situation_familiale_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_Celibataire, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_Maries, - payload: caml_call1(Runtime_jsoo_Runtime[5], arg$0)}; - case 2: - var arg$1 = param[1]; return {kind: cst_Pacses, payload: arg$1}; - case 3: - var arg$2 = param[1]; return {kind: cst_Concubins, payload: arg$2}; - case 4: - var arg$3 = param[1]; - return {kind: cst_CelibataireSepareDeFait, payload: arg$3}; - default: - var arg$4 = param[1]; - return {kind: cst_ConcubinageDontSepareDeFai, payload: arg$4}; - } - } - function situation_familiale_of_jsoo(situation_familiale){ - var cons = caml_string_of_jsstring(situation_familiale.kind); - if(! caml_string_notequal(cons, cst_Celibataire)) return _as_; - if(! caml_string_notequal(cons, cst_CelibataireSepareDeFait)) return _ar_; - if(! caml_string_notequal(cons, cst_ConcubinageDontSepareDeFai)) - return _aq_; - if(! caml_string_notequal(cons, cst_Concubins)) return _ap_; - if(! caml_string_notequal(cons, cst_Maries)) - return [1, - caml_call1(Runtime_jsoo_Runtime[4], situation_familiale.payload)]; - if(! caml_string_notequal(cons, cst_Pacses)) return _ao_; - var _lM_ = caml_call2(Stdlib_Printf[4], _an_, cons); - return caml_call1(Stdlib[2], _lM_); - } - function prise_en_charge_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_EffectiveEtPermanente, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_ResidenceAlterneeAllocatai, payload: arg$0}; - default: - var arg$1 = param[1]; - return {kind: cst_ResidenceAlterneeAllocatio, payload: arg$1}; - } - } - function prise_en_charge_of_jsoo(prise_en_charge){ - var cons = caml_string_of_jsstring(prise_en_charge.kind); - if(! caml_string_notequal(cons, cst_EffectiveEtPermanente)) return _aw_; - if(! caml_string_notequal(cons, cst_ResidenceAlterneeAllocatai)) - return _av_; - if(! caml_string_notequal(cons, cst_ResidenceAlterneeAllocatio)) - return _au_; - var _lL_ = caml_call2(Stdlib_Printf[4], _at_, cons); - return caml_call1(Stdlib[2], _lL_); - } - function type_logement_foyer_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_LogementPersonnesAgeesOuHa, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_ResidenceSociale, payload: arg$0}; - case 2: - var arg$1 = param[1]; - return {kind: cst_FoyerJeunesTrvailleursOuMi, payload: arg$1}; - default: var arg$2 = param[1]; return {kind: cst_Autre, payload: arg$2}; - } - } - function type_logement_foyer_of_jsoo(type_logement_foyer){ - var cons = caml_string_of_jsstring(type_logement_foyer.kind); - if(! caml_string_notequal(cons, cst_Autre)) return _aB_; - if(! caml_string_notequal(cons, cst_FoyerJeunesTrvailleursOuMi)) - return _aA_; - if(! caml_string_notequal(cons, cst_LogementPersonnesAgeesOuHa)) - return _az_; - if(! caml_string_notequal(cons, cst_ResidenceSociale)) return _ay_; - var _lK_ = caml_call2(Stdlib_Printf[4], _ax_, cons); - return caml_call1(Stdlib[2], _lK_); - } - function categorie_equivalence_loyer_al(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_EtudiantLogeEnChambreCROUS, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_EtudiantLogeEnChambreCROUS$0, payload: arg$0}; - case 2: - var arg$1 = param[1]; - return {kind: cst_PersonnesAgeesSelon3DeD842, payload: arg$1}; - default: - var arg$2 = param[1]; - return {kind: cst_AutresPersonnes, payload: arg$2}; - } - } - function categorie_equivalence_loyer_al$0(categorie_equivalence_loyer_al){ - var cons = caml_string_of_jsstring(categorie_equivalence_loyer_al.kind); - if(! caml_string_notequal(cons, cst_AutresPersonnes)) return _aG_; - if(! caml_string_notequal(cons, cst_EtudiantLogeEnChambreCROUS)) - return _aF_; - if(! caml_string_notequal(cons, cst_EtudiantLogeEnChambreCROUS$0)) - return _aE_; - if(! caml_string_notequal(cons, cst_PersonnesAgeesSelon3DeD842)) - return _aD_; - var _lJ_ = caml_call2(Stdlib_Printf[4], _aC_, cons); - return caml_call1(Stdlib[2], _lJ_); - } - function situation_familiale_calcul_a_p(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_PersonneSeule, payload: arg}; - } - var arg$0 = param[1]; - return {kind: cst_Couple, payload: arg$0}; - } - function situation_familiale_calcul_a_p$0(situation_familiale_calcul_a_p){ - var cons = caml_string_of_jsstring(situation_familiale_calcul_a_p.kind); - if(! caml_string_notequal(cons, cst_Couple)) return _aJ_; - if(! caml_string_notequal(cons, cst_PersonneSeule)) return _aI_; - var _lI_ = caml_call2(Stdlib_Printf[4], _aH_, cons); - return caml_call1(Stdlib[2], _lI_); - } - function collectivite_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_Guadeloupe, payload: arg}; - case 1: - var arg$0 = param[1]; return {kind: cst_Guyane, payload: arg$0}; - case 2: - var arg$1 = param[1]; return {kind: cst_Martinique, payload: arg$1}; - case 3: - var arg$2 = param[1]; return {kind: cst_LaReunion, payload: arg$2}; - case 4: - var arg$3 = param[1]; - return {kind: cst_SaintBarthelemy, payload: arg$3}; - case 5: - var arg$4 = param[1]; return {kind: cst_SaintMartin, payload: arg$4}; - case 6: - var arg$5 = param[1]; return {kind: cst_Metropole, payload: arg$5}; - case 7: - var arg$6 = param[1]; - return {kind: cst_SaintPierreEtMiquelon, payload: arg$6}; - default: - var arg$7 = param[1]; return {kind: cst_Mayotte, payload: arg$7}; - } - } - function collectivite_of_jsoo(collectivite){ - var cons = caml_string_of_jsstring(collectivite.kind); - if(! caml_string_notequal(cons, cst_Guadeloupe)) return _aT_; - if(! caml_string_notequal(cons, cst_Guyane)) return _aS_; - if(! caml_string_notequal(cons, cst_LaReunion)) return _aR_; - if(! caml_string_notequal(cons, cst_Martinique)) return _aQ_; - if(! caml_string_notequal(cons, cst_Mayotte)) return _aP_; - if(! caml_string_notequal(cons, cst_Metropole)) return _aO_; - if(! caml_string_notequal(cons, cst_SaintBarthelemy)) return _aN_; - if(! caml_string_notequal(cons, cst_SaintMartin)) return _aM_; - if(! caml_string_notequal(cons, cst_SaintPierreEtMiquelon)) return _aL_; - var _lH_ = caml_call2(Stdlib_Printf[4], _aK_, cons); - return caml_call1(Stdlib[2], _lH_); - } - function prise_en_charge_enfant_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_GardeAlterneePartageAlloca, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_GardeAlterneeAllocataireUn, payload: arg$0}; - case 2: - var arg$1 = param[1]; - return {kind: cst_EffectiveEtPermanente, payload: arg$1}; - case 3: - var arg$2 = param[1]; - return {kind: cst_ServicesSociauxAllocationV, payload: arg$2}; - default: - var arg$3 = param[1]; - return {kind: cst_ServicesSociauxAllocationV$0, payload: arg$3}; - } - } - function prise_en_charge_enfant_of_jsoo(prise_en_charge_enfant){ - var cons = caml_string_of_jsstring(prise_en_charge_enfant.kind); - if(! caml_string_notequal(cons, cst_EffectiveEtPermanente)) return _aZ_; - if(! caml_string_notequal(cons, cst_GardeAlterneeAllocataireUn)) - return _aY_; - if(! caml_string_notequal(cons, cst_GardeAlterneePartageAlloca)) - return _aX_; - if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV)) - return _aW_; - if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV$0)) - return _aV_; - var _lG_ = caml_call2(Stdlib_Printf[4], _aU_, cons); - return caml_call1(Stdlib[2], _lG_); - } - function situation_obligation_scolaire_(param){ - switch(param[0]){ - case 0: - var arg = param[1]; return {kind: cst_Avant, payload: arg}; - case 1: - var arg$0 = param[1]; return {kind: cst_Pendant, payload: arg$0}; - default: var arg$1 = param[1]; return {kind: cst_Apres, payload: arg$1}; - } - } - function situation_obligation_scolaire_$0(situation_obligation_scolaire){ - var cons = caml_string_of_jsstring(situation_obligation_scolaire.kind); - if(! caml_string_notequal(cons, cst_Apres)) return _a3_; - if(! caml_string_notequal(cons, cst_Avant)) return _a2_; - if(! caml_string_notequal(cons, cst_Pendant)) return _a1_; - var _lF_ = caml_call2(Stdlib_Printf[4], _a0_, cons); - return caml_call1(Stdlib[2], _lF_); - } - function element_prestations_familiales(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_PrestationAccueilJeuneEnfa, payload: arg}; - case 1: - var arg$0 = param[1]; - return {kind: cst_AllocationsFamiliales, payload: arg$0}; - case 2: - var arg$1 = param[1]; - return {kind: cst_ComplementFamilial, payload: arg$1}; - case 3: - var arg$2 = param[1]; - return {kind: cst_AllocationLogement, payload: arg$2}; - case 4: - var arg$3 = param[1]; - return {kind: cst_AllocationEducationEnfantH, payload: arg$3}; - case 5: - var arg$4 = param[1]; - return {kind: cst_AllocationSoutienFamilial, payload: arg$4}; - case 6: - var arg$5 = param[1]; - return {kind: cst_AllocationRentreeScolaire, payload: arg$5}; - default: - var arg$6 = param[1]; - return {kind: cst_AllocationJournalierePrese, payload: arg$6}; - } - } - function element_prestations_familiales$0(element_prestations_familiales){ - var cons = caml_string_of_jsstring(element_prestations_familiales.kind); - if(! caml_string_notequal(cons, cst_AllocationEducationEnfantH)) - return _ba_; - if(! caml_string_notequal(cons, cst_AllocationJournalierePrese)) - return _a$_; - if(! caml_string_notequal(cons, cst_AllocationLogement)) return _a__; - if(! caml_string_notequal(cons, cst_AllocationRentreeScolaire)) - return _a9_; - if(! caml_string_notequal(cons, cst_AllocationSoutienFamilial)) - return _a8_; - if(! caml_string_notequal(cons, cst_AllocationsFamiliales)) return _a7_; - if(! caml_string_notequal(cons, cst_ComplementFamilial)) return _a6_; - if(! caml_string_notequal(cons, cst_PrestationAccueilJeuneEnfa)) - return _a5_; - var _lE_ = caml_call2(Stdlib_Printf[4], _a4_, cons); - return caml_call1(Stdlib[2], _lE_); - } - function convention_bailleur_social_to_(convention_bailleur_social){ - var - _lD_ = - caml_call1(Runtime_ocaml_Runtime[35], convention_bailleur_social[2]); - return {conventionneLivreIIITitreVChapIII: - ! - ! - convention_bailleur_social[1], - reductionLoyerSolidaritePercue: _lD_}; - } - function convention_bailleur_social_of_(convention_bailleur_social){ - var - _lB_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - convention_bailleur_social.reductionLoyerSolidaritePercue), - _lC_ = caml_call1(Runtime_ocaml_Runtime[33], _lB_); - return [0, - convention_bailleur_social.conventionneLivreIIITitreVChapIII | 0, - _lC_]; - } - function convention_a_n_h_a_to_jsoo(convention_a_n_h_a){ - return {conventionneLivreIIITitreIIChapISec3: ! ! convention_a_n_h_a[1]}; - } - function convention_a_n_h_a_of_jsoo(convention_a_n_h_a){ - return [0, convention_a_n_h_a.conventionneLivreIIITitreIIChapISec3 | 0]; - } - function personne_sous_location_to_jsoo(personne_sous_location){ - var _lA_ = ! ! personne_sous_location[2]; - return {dateNaissancePersonneSousLocation: - caml_call1(Runtime_jsoo_Runtime[5], personne_sous_location[1]), - conformeArticleL4421: _lA_}; - } - function personne_sous_location_of_jsoo(personne_sous_location){ - var _lz_ = personne_sous_location.conformeArticleL4421 | 0; - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - personne_sous_location.dateNaissancePersonneSousLocation), - _lz_]; - } - function patrimoine_to_jsoo(patrimoine){ - var _ly_ = caml_call1(Runtime_ocaml_Runtime[35], patrimoine[2]); - return {produisantRevenuPeriodeR82233R8224: - caml_call1(Runtime_ocaml_Runtime[35], patrimoine[1]), - neProduisantPasRevenuPeriodeR82233R8224: _ly_}; - } - function patrimoine_of_jsoo(patrimoine){ - var - _lv_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - patrimoine.neProduisantPasRevenuPeriodeR82233R8224), - _lw_ = caml_call1(Runtime_ocaml_Runtime[33], _lv_), - _lx_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - patrimoine.produisantRevenuPeriodeR82233R8224); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _lx_), _lw_]; - } - function conditions_etrangers_to_jsoo(conditions_etrangers){ - return {satisfaitConditionsL5122CodeSecuriteSociale: - ! - ! - conditions_etrangers[1], - satisfaitArt4Ordonnance2002Mayotte: ! ! conditions_etrangers[2]}; - } - function conditions_etrangers_of_jsoo(conditions_etrangers){ - return [0, - conditions_etrangers.satisfaitConditionsL5122CodeSecuriteSociale - | 0, - conditions_etrangers.satisfaitArt4Ordonnance2002Mayotte | 0]; - } - function personne_vivant_habituellement(personne_vivant_habituellement){ - var - _lu_ = - caml_call1 - (Runtime_ocaml_Runtime[35], personne_vivant_habituellement[2]); - return {dureeResidenceDurantPeriodeR82231SuperieureA6Mois: - ! - ! - personne_vivant_habituellement[1], - ressources: _lu_}; - } - function personne_vivant_habituellement$0(personne_vivant_habituellement){ - var - _ls_ = - caml_call1 - (Runtime_ocaml_Runtime[42], personne_vivant_habituellement.ressources), - _lt_ = caml_call1(Runtime_ocaml_Runtime[33], _ls_); - return [0, - personne_vivant_habituellement.dureeResidenceDurantPeriodeR82231SuperieureA6Mois - | 0, - _lt_]; - } - function eligibilite_aide_personnalisee(eligibilite_aide_personnalisee){ - var _ln_ = eligibilite_aide_personnalisee[4]; - function _lo_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} - var - _lp_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _lo_, _ln_)), - _lq_ = - caml_call1 - (Runtime_ocaml_Runtime[48], eligibilite_aide_personnalisee[3]), - _lr_ = ! ! eligibilite_aide_personnalisee[2]; - return {dateCourante: - caml_call1 - (Runtime_jsoo_Runtime[5], eligibilite_aide_personnalisee[1]), - eligibilite: _lr_, - nombrePersonnesAChargePrisesEnCompte: _lq_, - coefficentsEnfantsGardeAlterneePrisEnCompte: _lp_}; - } - function eligibilite_aide_personnalisee$0(eligibilite_aide_personnalisee){ - var - _li_ = - caml_js_to_array - (eligibilite_aide_personnalisee.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _lj_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} - var - _lk_ = caml_call1(caml_call1(Stdlib_Array[15], _lj_), _li_), - _ll_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - eligibilite_aide_personnalisee.nombrePersonnesAChargePrisesEnCompte), - _lm_ = eligibilite_aide_personnalisee.eligibilite | 0; - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aide_personnalisee.dateCourante), - _lm_, - _ll_, - _lk_]; - } - function eligibilite_prime_de_demenagem(eligibilite_prime_de_demenagem){ - return {montantPrimeDemenagement: - caml_call1 - (Runtime_ocaml_Runtime[35], eligibilite_prime_de_demenagem[1])}; - } - function eligibilite_prime_de_demenagem$0(eligibilite_prime_de_demenagem){ - var - _lh_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - eligibilite_prime_de_demenagem.montantPrimeDemenagement); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _lh_)]; - } - function ressources_aides_personnelle_l(ressources_aides_personnelle_l){ - return {ressourcesPrisesEnCompte: - caml_call1 - (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[1])}; - } - function ressources_aides_personnelle_l$0(ressources_aides_personnelle_l){ - var - _lg_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesPrisesEnCompte); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _lg_)]; - } - function contributions_sociales_aides_p(contributions_sociales_aides_p){ - function t276(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _ld_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _le_ = caml_call1(Runtime_ocaml_Runtime[33], _ld_), - _lf_ = caml_call1(contributions_sociales_aides_p[1], _le_); - return caml_call1(Runtime_ocaml_Runtime[35], _lf_); - }); - } - return {montant: caml_js_wrap_meth_callback(t276)}; - } - function contributions_sociales_aides_p$0(contributions_sociales_aides_p){return [0, caml_call1(Stdlib[2], cst_The_function_montant_trans)]; - } - function calcul_aide_personnalisee_loge(calcul_aide_personnalisee_loge){ - function t283(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _la_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _lb_ = caml_call1(Runtime_ocaml_Runtime[33], _la_), - _lc_ = caml_call1(calcul_aide_personnalisee_loge[7], _lb_); - return caml_call1(Runtime_ocaml_Runtime[35], _lc_); - }); - } - var - t282 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[6]), - t281 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[5]), - t280 = - caml_call1 - (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[4]), - t279 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[3]), - t278 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]), - t277 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); - return {montantForfaitaireChargesD82316: t277, - plafondLoyerD823162: t278, - participationMinimale: t279, - tauxCompositionFamiliale: t280, - participationPersonnelle: t281, - aideFinaleFormule: t282, - traitementAideFinale: caml_js_wrap_meth_callback(t283)}; - } - function calcul_aide_personnalisee_loge$0(calcul_aide_personnalisee_loge){ - var - _k1_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai), - _k2_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule), - _k3_ = caml_call1(Runtime_ocaml_Runtime[33], _k2_), - _k4_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.participationPersonnelle), - _k5_ = caml_call1(Runtime_ocaml_Runtime[33], _k4_), - _k6_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.tauxCompositionFamiliale), - _k7_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.participationMinimale), - _k8_ = caml_call1(Runtime_ocaml_Runtime[33], _k7_), - _k9_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.plafondLoyerD823162), - _k__ = caml_call1(Runtime_ocaml_Runtime[33], _k9_), - _k$_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.montantForfaitaireChargesD82316); - return [0, - caml_call1(Runtime_ocaml_Runtime[33], _k$_), - _k__, - _k8_, - _k6_, - _k5_, - _k3_, - _k1_]; - } - function calcul_equivalence_loyer_minim(calcul_equivalence_loyer_minim){ - return {montant: - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_equivalence_loyer_minim[1])}; - } - function calcul_equivalence_loyer_minim$0(calcul_equivalence_loyer_minim){ - var - _k0_ = - caml_call1 - (Runtime_ocaml_Runtime[42], calcul_equivalence_loyer_minim.montant); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _k0_)]; - } - function calcul_nombre_part_logement_fo(calcul_nombre_part_logement_fo){ - return {nNombrePartsD83225: - caml_call1 - (Runtime_ocaml_Runtime[43], calcul_nombre_part_logement_fo[1])}; - } - function calcul_nombre_part_logement_fo$0(calcul_nombre_part_logement_fo){ - return [0, - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_nombre_part_logement_fo.nNombrePartsD83225)]; - } - function calcul_aide_personnalisee_loge$1(calcul_aide_personnalisee_loge){ - function t302(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _kX_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _kY_ = caml_call1(Runtime_ocaml_Runtime[33], _kX_), - _kZ_ = caml_call1(calcul_aide_personnalisee_loge[9], _kY_); - return caml_call1(Runtime_ocaml_Runtime[35], _kZ_); - }); - } - var - t301 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[8]), - t300 = - caml_call1 - (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[7]), - t299 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[6]), - t298 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[5]), - t297 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[4]), - t296 = - caml_call1 - (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[3]), - t295 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]), - t294 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); - return {coefficientMultiplicateurD83225: t294, - coefficientRD83225: t295, - nNombrePartsD83225: t296, - equivalenceLoyerEligible: t297, - plafondEquivalenceLoyerEligible: t298, - equivalenceLoyerMinimale: t299, - coefficientPriseEnChargeD83225: t300, - aideFinaleFormule: t301, - traitementAideFinale: caml_js_wrap_meth_callback(t302)}; - } - function calcul_aide_personnalisee_loge$2(calcul_aide_personnalisee_loge){ - var - _kJ_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$0), - _kK_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule), - _kL_ = caml_call1(Runtime_ocaml_Runtime[33], _kK_), - _kM_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83225), - _kN_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.equivalenceLoyerMinimale), - _kO_ = caml_call1(Runtime_ocaml_Runtime[33], _kN_), - _kP_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.plafondEquivalenceLoyerEligible), - _kQ_ = caml_call1(Runtime_ocaml_Runtime[33], _kP_), - _kR_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.equivalenceLoyerEligible), - _kS_ = caml_call1(Runtime_ocaml_Runtime[33], _kR_), - _kT_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.nNombrePartsD83225), - _kU_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientRD83225), - _kV_ = caml_call1(Runtime_ocaml_Runtime[33], _kU_), - _kW_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientMultiplicateurD83225); - return [0, - caml_call1(Runtime_ocaml_Runtime[33], _kW_), - _kV_, - _kT_, - _kS_, - _kQ_, - _kO_, - _kM_, - _kL_, - _kJ_]; - } - function calcul_nombre_parts_accession_(calcul_nombre_parts_accession_){ - return {nNombrePartsD83211: - caml_call1 - (Runtime_ocaml_Runtime[43], calcul_nombre_parts_accession_[1])}; - } - function calcul_nombre_parts_accession_$0(calcul_nombre_parts_accession_){ - return [0, - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_nombre_parts_accession_.nNombrePartsD83211)]; - } - function calcul_aide_personnalisee_loge$3(calcul_aide_personnalisee_loge){ - function t317(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _kG_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _kH_ = caml_call1(Runtime_ocaml_Runtime[33], _kG_), - _kI_ = caml_call1(calcul_aide_personnalisee_loge[5], _kH_); - return caml_call1(Runtime_ocaml_Runtime[35], _kI_); - }); - } - var - t316 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[4]), - t315 = - caml_call1 - (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[3]), - t314 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]), - t313 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); - return {mensualiteEligible: t313, - mensualiteMinimale: t314, - coefficientPriseEnChargeD83210: t315, - aideFinaleFormule: t316, - traitementAideFinale: caml_js_wrap_meth_callback(t317)}; - } - function calcul_aide_personnalisee_loge$4(calcul_aide_personnalisee_loge){ - var - _kz_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$1), - _kA_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule), - _kB_ = caml_call1(Runtime_ocaml_Runtime[33], _kA_), - _kC_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83210), - _kD_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.mensualiteMinimale), - _kE_ = caml_call1(Runtime_ocaml_Runtime[33], _kD_), - _kF_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.mensualiteEligible); - return [0, - caml_call1(Runtime_ocaml_Runtime[33], _kF_), - _kE_, - _kC_, - _kB_, - _kz_]; - } - function traitement_formule_aide_finale(traitement_formule_aide_finale){ - function t323(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _kw_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _kx_ = caml_call1(Runtime_ocaml_Runtime[33], _kw_), - _ky_ = caml_call1(traitement_formule_aide_finale[2], _kx_); - return caml_call1(Runtime_ocaml_Runtime[35], _ky_); - }); - } - var - t322 = - caml_call1 - (Runtime_ocaml_Runtime[35], traitement_formule_aide_finale[1]); - return {aideFinaleFormule: t322, - traitementAideFinale: caml_js_wrap_meth_callback(t323)}; - } - function traitement_formule_aide_finale$0(traitement_formule_aide_finale){ - var - _ku_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$2), - _kv_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - traitement_formule_aide_finale.aideFinaleFormule); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _kv_), _ku_]; - } - function calcul_aide_personnalisee_loge$5(calcul_aide_personnalisee_loge){ - function t326(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _kr_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _ks_ = caml_call1(Runtime_ocaml_Runtime[33], _kr_), - _kt_ = caml_call1(calcul_aide_personnalisee_loge[2], _ks_); - return caml_call1(Runtime_ocaml_Runtime[35], _kt_); - }); - } - var - t325 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); - return {aideFinaleFormule: t325, - traitementAideFinale: caml_js_wrap_meth_callback(t326)}; - } - function calcul_aide_personnalisee_loge$6(calcul_aide_personnalisee_loge){ - var - _kp_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$3), - _kq_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _kq_), _kp_]; - } - function infos_changement_logement_d842(infos_changement_logement_d842){ - var - _ko_ = - caml_call1 - (Runtime_ocaml_Runtime[35], infos_changement_logement_d842[2]); - return {ancienLoyerPrincipal: - caml_call1 - (Runtime_ocaml_Runtime[35], infos_changement_logement_d842[1]), - ancienneAllocationLogement: _ko_}; - } - function infos_changement_logement_d842$0(infos_changement_logement_d842){ - var - _kl_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - infos_changement_logement_d842.ancienneAllocationLogement), - _km_ = caml_call1(Runtime_ocaml_Runtime[33], _kl_), - _kn_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - infos_changement_logement_d842.ancienLoyerPrincipal); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _kn_), _km_]; - } - function calcul_allocation_logement_loc(calcul_allocation_logement_loc){ - function t333(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _ki_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _kj_ = caml_call1(Runtime_ocaml_Runtime[33], _ki_), - _kk_ = caml_call1(calcul_allocation_logement_loc[2], _kj_); - return caml_call1(Runtime_ocaml_Runtime[35], _kk_); - }); - } - var - t332 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[1]); - return {aideFinaleFormule: t332, - traitementAideFinale: caml_js_wrap_meth_callback(t333)}; - } - function calcul_allocation_logement_loc$0(calcul_allocation_logement_loc){ - var - _kg_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$4), - _kh_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.aideFinaleFormule); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _kh_), _kg_]; - } - function calcul_allocation_logement_acc(calcul_allocation_logement_acc){ - function t339(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _kd_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _ke_ = caml_call1(Runtime_ocaml_Runtime[33], _kd_), - _kf_ = caml_call1(calcul_allocation_logement_acc[5], _ke_); - return caml_call1(Runtime_ocaml_Runtime[35], _kf_); - }); - } - var - t338 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[4]), - t337 = - caml_call1 - (Runtime_ocaml_Runtime[43], calcul_allocation_logement_acc[3]), - t336 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[2]), - t335 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[1]); - return {mensualiteEligible: t335, - mensualiteMinimale: t336, - coefficientPriseEnCharge: t337, - aideFinaleFormule: t338, - traitementAideFinale: caml_js_wrap_meth_callback(t339)}; - } - function calcul_allocation_logement_acc$0(calcul_allocation_logement_acc){ - var - _j8_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$5), - _j9_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.aideFinaleFormule), - _j__ = caml_call1(Runtime_ocaml_Runtime[33], _j9_), - _j$_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.coefficientPriseEnCharge), - _ka_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.mensualiteMinimale), - _kb_ = caml_call1(Runtime_ocaml_Runtime[33], _ka_), - _kc_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.mensualiteEligible); - return [0, - caml_call1(Runtime_ocaml_Runtime[33], _kc_), - _kb_, - _j$_, - _j__, - _j8_]; - } - function calcul_allocation_logement_foy(calcul_allocation_logement_foy){ - function t349(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _j5_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _j6_ = caml_call1(Runtime_ocaml_Runtime[33], _j5_), - _j7_ = caml_call1(calcul_allocation_logement_foy[6], _j6_); - return caml_call1(Runtime_ocaml_Runtime[35], _j7_); - }); - } - var - t348 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[5]), - t347 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[4]), - t346 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[3]), - t345 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[2]), - t344 = - caml_call1 - (Runtime_ocaml_Runtime[43], calcul_allocation_logement_foy[1]); - return {coefficientPriseEnCharge: t344, - equivalenceLoyer: t345, - montantForfaitaireCharges: t346, - loyerMinimal: t347, - aideFinaleFormule: t348, - traitementAideFinale: caml_js_wrap_meth_callback(t349)}; - } - function calcul_allocation_logement_foy$0(calcul_allocation_logement_foy){ - var - _jW_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$6), - _jX_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.aideFinaleFormule), - _jY_ = caml_call1(Runtime_ocaml_Runtime[33], _jX_), - _jZ_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.loyerMinimal), - _j0_ = caml_call1(Runtime_ocaml_Runtime[33], _jZ_), - _j1_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.montantForfaitaireCharges), - _j2_ = caml_call1(Runtime_ocaml_Runtime[33], _j1_), - _j3_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.equivalenceLoyer), - _j4_ = caml_call1(Runtime_ocaml_Runtime[33], _j3_); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.coefficientPriseEnCharge), - _j4_, - _j2_, - _j0_, - _jY_, - _jW_]; - } - function calcul_allocation_logement_to_(calcul_allocation_logement){ - function t356(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _jT_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _jU_ = caml_call1(Runtime_ocaml_Runtime[33], _jT_), - _jV_ = caml_call1(calcul_allocation_logement[2], _jU_); - return caml_call1(Runtime_ocaml_Runtime[35], _jV_); - }); - } - var - t355 = - caml_call1(Runtime_ocaml_Runtime[35], calcul_allocation_logement[1]); - return {aideFinaleFormule: t355, - traitementAideFinale: caml_js_wrap_meth_callback(t356)}; - } - function calcul_allocation_logement_of_(calcul_allocation_logement){ - var - _jR_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$7), - _jS_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement.aideFinaleFormule); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _jS_), _jR_]; - } - function ouverture_droits_retraite_to_j(ouverture_droits_retraite){ - return {ageOuvertureDroit: - caml_call1(Runtime_jsoo_Runtime[3], ouverture_droits_retraite[1])}; - } - function ouverture_droits_retraite_of_j(ouverture_droits_retraite){ - return [0, - caml_call1 - (Runtime_jsoo_Runtime[2], - ouverture_droits_retraite.ageOuvertureDroit)]; - } - function impaye_depense_logement_to_jso(impaye_depense_logement){ - return {montantImpaye: - caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement[1])}; - } - function impaye_depense_logement_of_jso(impaye_depense_logement){ - var - _jQ_ = - caml_call1 - (Runtime_ocaml_Runtime[42], impaye_depense_logement.montantImpaye); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _jQ_)]; - } - function calculette_aides_au_logement_t(calculette_aides_au_logement){ - var _jL_ = calculette_aides_au_logement[4]; - function _jM_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} - var t365 = caml_js_from_array(caml_call2(Stdlib_Array[15], _jM_, _jL_)); - function t364(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _jN_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), - _jO_ = caml_call1(Runtime_ocaml_Runtime[33], _jN_), - _jP_ = caml_call1(calculette_aides_au_logement[3], _jO_); - return caml_call1(Runtime_ocaml_Runtime[35], _jP_); - }); - } - var - t363 = - caml_call1(Runtime_ocaml_Runtime[35], calculette_aides_au_logement[2]), - t362 = ! ! calculette_aides_au_logement[1]; - return {eligibilite: t362, - aideFinaleFormule: t363, - traitementAideFinale: caml_js_wrap_meth_callback(t364), - coefficentsEnfantsGardeAlterneePrisEnCompte: t365}; - } - function calculette_aides_au_logement_o(calculette_aides_au_logement){ - var - _jF_ = - caml_js_to_array - (calculette_aides_au_logement.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _jG_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} - var - _jH_ = caml_call1(caml_call1(Stdlib_Array[15], _jG_), _jF_), - _jI_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$8), - _jJ_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calculette_aides_au_logement.aideFinaleFormule), - _jK_ = caml_call1(Runtime_ocaml_Runtime[33], _jJ_); - return [0, calculette_aides_au_logement.eligibilite | 0, _jK_, _jI_, _jH_]; - } - function calculette_aides_au_logement_g(calculette_aides_au_logement_g){ - var - _jE_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calculette_aides_au_logement_g[2]); - return {eligibilite: ! ! calculette_aides_au_logement_g[1], - aideFinale: _jE_}; - } - function calculette_aides_au_logement_g$0(calculette_aides_au_logement_g){ - var - _jC_ = - caml_call1 - (Runtime_ocaml_Runtime[42], calculette_aides_au_logement_g.aideFinale), - _jD_ = caml_call1(Runtime_ocaml_Runtime[33], _jC_); - return [0, calculette_aides_au_logement_g.eligibilite | 0, _jD_]; - } - function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ - return {montant: - caml_call1 - (Runtime_ocaml_Runtime[35], base_mensuelle_allocations_fam[1])}; - } - function base_mensuelle_allocations_fam$0(base_mensuelle_allocations_fam){ - var - _jB_ = - caml_call1 - (Runtime_ocaml_Runtime[42], base_mensuelle_allocations_fam.montant); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _jB_)]; - } - function verification_age_inferieur_ou_(verification_age_inferieur_ou_){return {estInferieurOuEgal: ! ! verification_age_inferieur_ou_[1]}; - } - function verification_age_inferieur_ou_$0(verification_age_inferieur_ou_){return [0, verification_age_inferieur_ou_.estInferieurOuEgal | 0]; - } - function verification_age_superieur_a_t(verification_age_superieur_a){return {estSuperieur: ! ! verification_age_superieur_a[1]}; - } - function verification_age_superieur_a_o(verification_age_superieur_a){return [0, verification_age_superieur_a.estSuperieur | 0]; - } - function smic_to_jsoo(smic){ - return {brutHoraire: caml_call1(Runtime_ocaml_Runtime[35], smic[1])}; - } - function smic_of_jsoo(smic){ - var _jA_ = caml_call1(Runtime_ocaml_Runtime[42], smic.brutHoraire); - return [0, caml_call1(Runtime_ocaml_Runtime[33], _jA_)]; - } - function neuf_ou_ancien_to_jsoo(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_Neuf, payload: arg}; - } - var arg$0 = param[1]; - return {kind: cst_Ancien, payload: ameliore_par_occupant_to_jsoo(arg$0)}; - } - function neuf_ou_ancien_of_jsoo(neuf_ou_ancien){ - var cons = caml_string_of_jsstring(neuf_ou_ancien.kind); - if(! caml_string_notequal(cons, cst_Ancien)) - return [1, ameliore_par_occupant_of_jsoo(neuf_ou_ancien.payload)]; - if(! caml_string_notequal(cons, cst_Neuf)) return _bc_; - var _jz_ = caml_call2(Stdlib_Printf[4], _bb_, cons); - return caml_call1(Stdlib[2], _jz_); - } - function tranche_revenu_to_jsoo(tranche_revenu){ - var - _jx_ = caml_call1(Runtime_ocaml_Runtime[43], tranche_revenu[3]), - _jy_ = caml_call1(Runtime_ocaml_Runtime[35], tranche_revenu[2]); - return {haut: limite_tranche_to_jsoo(tranche_revenu[1]), - bas: _jy_, - taux: _jx_}; - } - function tranche_revenu_of_jsoo(tranche_revenu){ - var - _ju_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu.taux), - _jv_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu.bas), - _jw_ = caml_call1(Runtime_ocaml_Runtime[33], _jv_); - return [0, limite_tranche_of_jsoo(tranche_revenu.haut), _jw_, _ju_]; - } - function tranche_revenu_decimal_to_jsoo(tranche_revenu_decimal){ - var - _js_ = caml_call1(Runtime_ocaml_Runtime[43], tranche_revenu_decimal[3]), - _jt_ = caml_call1(Runtime_ocaml_Runtime[43], tranche_revenu_decimal[2]); - return {haut: limite_tranche_decimal_to_jsoo(tranche_revenu_decimal[1]), - bas: _jt_, - taux: _js_}; - } - function tranche_revenu_decimal_of_jsoo(tranche_revenu_decimal){ - var - _jq_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu_decimal.taux), - _jr_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu_decimal.bas); - return [0, - limite_tranche_decimal_of_jsoo(tranche_revenu_decimal.haut), - _jr_, - _jq_]; - } - function autre_personne_a_charge_to_jso(autre_personne_a_charge){ - var - _jk_ = ! ! autre_personne_a_charge[7], - _jl_ = ! ! autre_personne_a_charge[6], - _jm_ = ! ! autre_personne_a_charge[5], - _jn_ = parente_to_jsoo(autre_personne_a_charge[4]), - _jo_ = ! ! autre_personne_a_charge[3], - _jp_ = caml_call1(Runtime_ocaml_Runtime[35], autre_personne_a_charge[2]); - return {dateNaissance: - caml_call1(Runtime_jsoo_Runtime[5], autre_personne_a_charge[1]), - ressources: _jp_, - ascendantDescendantCollateralDeuxiemeTroisiemeDegre: _jo_, - parente: _jn_, - incapacite80PourcentOuRestrictionEmploi: _jm_, - beneficiaireL16119L3518L6433Secu: _jl_, - titulaireAllocationPersonneAgee: _jk_}; - } - function autre_personne_a_charge_of_jso(autre_personne_a_charge){ - var - _jd_ = autre_personne_a_charge.titulaireAllocationPersonneAgee | 0, - _je_ = autre_personne_a_charge.beneficiaireL16119L3518L6433Secu | 0, - _jf_ = - autre_personne_a_charge.incapacite80PourcentOuRestrictionEmploi | 0, - _jg_ = parente_of_jsoo(autre_personne_a_charge.parente), - _jh_ = - autre_personne_a_charge.ascendantDescendantCollateralDeuxiemeTroisiemeDegre - | 0, - _ji_ = - caml_call1 - (Runtime_ocaml_Runtime[42], autre_personne_a_charge.ressources), - _jj_ = caml_call1(Runtime_ocaml_Runtime[33], _ji_); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], autre_personne_a_charge.dateNaissance), - _jj_, - _jh_, - _jg_, - _jf_, - _je_, - _jd_]; - } - function date_naissance_troisieme_ou_de(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_MoinsDeTroisEnfants, payload: arg}; - } - var arg$0 = param[1]; - return {kind: cst_PlusDeTroisEnfants, - payload: date_de_naissance_ou_mois_de_g(arg$0)}; - } - function date_naissance_troisieme_ou_de$0(date_naissance_troisieme_ou_de){ - var cons = caml_string_of_jsstring(date_naissance_troisieme_ou_de.kind); - if(! caml_string_notequal(cons, cst_MoinsDeTroisEnfants)) return _be_; - if(! caml_string_notequal(cons, cst_PlusDeTroisEnfants)) - return [1, - date_de_naissance_ou_mois_de_g$0 - (date_naissance_troisieme_ou_de.payload)]; - var _jc_ = caml_call2(Stdlib_Printf[4], _bd_, cons); - return caml_call1(Stdlib[2], _jc_); - } - function eligibilite_allocation_logemen(eligibilite_allocation_logemen){ - var _i__ = eligibilite_allocation_logemen[3]; - function _i$_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} - var - _ja_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _i$_, _i__)), - _jb_ = - caml_call1 - (Runtime_ocaml_Runtime[48], eligibilite_allocation_logemen[2]); - return {eligibilite: - type_eligibilite_allocation_lo(eligibilite_allocation_logemen[1]), - nombrePersonnesAChargePrisesEnCompte: _jb_, - coefficentsEnfantsGardeAlterneePrisEnCompte: _ja_}; - } - function eligibilite_allocation_logemen$0(eligibilite_allocation_logemen){ - var - _i6_ = - caml_js_to_array - (eligibilite_allocation_logemen.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _i7_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} - var - _i8_ = caml_call1(caml_call1(Stdlib_Array[15], _i7_), _i6_), - _i9_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - eligibilite_allocation_logemen.nombrePersonnesAChargePrisesEnCompte); - return [0, - type_eligibilite_allocation_lo$0 - (eligibilite_allocation_logemen.eligibilite), - _i9_, - _i8_]; - } - function pret_to_jsoo(pret){ - var - _i3_ = accord_financement_representan(pret[4]), - _i4_ = titulaire_pret_to_jsoo(pret[3]), - _i5_ = caml_call1(Runtime_jsoo_Runtime[5], pret[2]); - return {typePret: type_pret_to_jsoo(pret[1]), - dateSignature: _i5_, - titulairePret: _i4_, - accordFinancementRepresentantEtatOutreMer: _i3_}; - } - function pret_of_jsoo(pret){ - var - _i0_ = - accord_financement_representan$0 - (pret.accordFinancementRepresentantEtatOutreMer), - _i1_ = titulaire_pret_of_jsoo(pret.titulairePret), - _i2_ = caml_call1(Runtime_jsoo_Runtime[4], pret.dateSignature); - return [0, type_pret_of_jsoo(pret.typePret), _i2_, _i1_, _i0_]; - } - function logement_foyer_to_jsoo(logement_foyer){ - var - _iR_ = ! ! logement_foyer[10], - _iS_ = ! ! logement_foyer[9], - _iT_ = categorie_equivalence_loyer_al(logement_foyer[8]), - _iU_ = caml_call1(Runtime_ocaml_Runtime[35], logement_foyer[7]), - _iV_ = ! ! logement_foyer[6], - _iW_ = caml_call1(Runtime_jsoo_Runtime[5], logement_foyer[5]), - _iX_ = ! ! logement_foyer[4], - _iY_ = ! ! logement_foyer[3], - _iZ_ = ! ! logement_foyer[2]; - return {typeUser: type_logement_foyer_to_jsoo(logement_foyer[1]), - remplitConditionsR83221: _iZ_, - conventionneLivreIIITitreVChapIII: _iY_, - conventionneSelonReglesDrom: _iX_, - dateConventionnement: _iW_, - construitApplicationLoi195712III: _iV_, - redevance: _iU_, - categorieEquivalenceLoyerD84216: _iT_, - beneficiaireAideAdulteOuEnfantHandicapes: _iS_, - logementMeubleD8422: _iR_}; - } - function logement_foyer_of_jsoo(logement_foyer){ - var - _iH_ = logement_foyer.logementMeubleD8422 | 0, - _iI_ = logement_foyer.beneficiaireAideAdulteOuEnfantHandicapes | 0, - _iJ_ = - categorie_equivalence_loyer_al$0 - (logement_foyer.categorieEquivalenceLoyerD84216), - _iK_ = caml_call1(Runtime_ocaml_Runtime[42], logement_foyer.redevance), - _iL_ = caml_call1(Runtime_ocaml_Runtime[33], _iK_), - _iM_ = logement_foyer.construitApplicationLoi195712III | 0, - _iN_ = - caml_call1 - (Runtime_jsoo_Runtime[4], logement_foyer.dateConventionnement), - _iO_ = logement_foyer.conventionneSelonReglesDrom | 0, - _iP_ = logement_foyer.conventionneLivreIIITitreVChapIII | 0, - _iQ_ = logement_foyer.remplitConditionsR83221 | 0; - return [0, - type_logement_foyer_of_jsoo(logement_foyer.typeUser), - _iQ_, - _iP_, - _iO_, - _iN_, - _iM_, - _iL_, - _iJ_, - _iI_, - _iH_]; - } - function enfant_prestations_familiales_(enfant_prestations_familiales){ - var - _iB_ = ! ! enfant_prestations_familiales[7], - _iC_ = ! ! enfant_prestations_familiales[6], - _iD_ = prise_en_charge_enfant_to_jsoo(enfant_prestations_familiales[5]), - _iE_ = - caml_call1(Runtime_jsoo_Runtime[5], enfant_prestations_familiales[4]), - _iF_ = - caml_call1(Runtime_ocaml_Runtime[35], enfant_prestations_familiales[3]), - _iG_ = situation_obligation_scolaire_(enfant_prestations_familiales[2]); - return {identifiant: - caml_call1 - (Runtime_ocaml_Runtime[48], enfant_prestations_familiales[1]), - obligationScolaire: _iG_, - remunerationMensuelle: _iF_, - dateDeNaissance: _iE_, - priseEnCharge: _iD_, - aDejaOuvertDroitAuxAllocationsFamiliales: _iC_, - beneficieTitrePersonnelAidePersonnelleLogement: _iB_}; - } - function enfant_prestations_familiales_$0(enfant_prestations_familiales){ - var - _iu_ = - enfant_prestations_familiales.beneficieTitrePersonnelAidePersonnelleLogement - | 0, - _iv_ = - enfant_prestations_familiales.aDejaOuvertDroitAuxAllocationsFamiliales - | 0, - _iw_ = - prise_en_charge_enfant_of_jsoo - (enfant_prestations_familiales.priseEnCharge), - _ix_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - enfant_prestations_familiales.dateDeNaissance), - _iy_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - enfant_prestations_familiales.remunerationMensuelle), - _iz_ = caml_call1(Runtime_ocaml_Runtime[33], _iy_), - _iA_ = - situation_obligation_scolaire_$0 - (enfant_prestations_familiales.obligationScolaire); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49], - enfant_prestations_familiales.identifiant), - _iA_, - _iz_, - _ix_, - _iw_, - _iv_, - _iu_]; - } - function type_bailleur_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_BailleurSocial, - payload: convention_bailleur_social_to_(arg)}; - case 1: - var arg$0 = param[1]; - return {kind: cst_BailleurPriveAvecConventio, - payload: convention_a_n_h_a_to_jsoo(arg$0)}; - default: - var arg$1 = param[1]; return {kind: cst_BailleurPrive, payload: arg$1}; - } - } - function type_bailleur_of_jsoo(type_bailleur){ - var cons = caml_string_of_jsstring(type_bailleur.kind); - if(! caml_string_notequal(cons, cst_BailleurPrive)) return _bg_; - if(! caml_string_notequal(cons, cst_BailleurPriveAvecConventio)) - return [1, convention_a_n_h_a_of_jsoo(type_bailleur.payload)]; - if(! caml_string_notequal(cons, cst_BailleurSocial)) - return [0, convention_bailleur_social_of_(type_bailleur.payload)]; - var _it_ = caml_call2(Stdlib_Printf[4], _bf_, cons); - return caml_call1(Stdlib[2], _it_); - } - function loue_ou_sous_loue_a_des_tiers_(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_Non, payload: arg}; - } - var arg$0 = param[1]; - return {kind: cst_Oui, payload: personne_sous_location_to_jsoo(arg$0)}; - } - function loue_ou_sous_loue_a_des_tiers_$0(loue_ou_sous_loue_a_des_tiers){ - var cons = caml_string_of_jsstring(loue_ou_sous_loue_a_des_tiers.kind); - if(! caml_string_notequal(cons, cst_Non)) return _bi_; - if(! caml_string_notequal(cons, cst_Oui)) - return [1, - personne_sous_location_of_jsoo - (loue_ou_sous_loue_a_des_tiers.payload)]; - var _is_ = caml_call2(Stdlib_Printf[4], _bh_, cons); - return caml_call1(Stdlib[2], _is_); - } - function nationalite_to_jsoo(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_Francaise, payload: arg}; - } - var arg$0 = param[1]; - return {kind: cst_Etrangere, payload: conditions_etrangers_to_jsoo(arg$0)}; - } - function nationalite_of_jsoo(nationalite){ - var cons = caml_string_of_jsstring(nationalite.kind); - if(! caml_string_notequal(cons, cst_Etrangere)) - return [1, conditions_etrangers_of_jsoo(nationalite.payload)]; - if(! caml_string_notequal(cons, cst_Francaise)) return _bk_; - var _ir_ = caml_call2(Stdlib_Printf[4], _bj_, cons); - return caml_call1(Stdlib[2], _ir_); - } - function changement_logement_d842_4_to_(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_Changement, - payload: infos_changement_logement_d842(arg)}; - } - var arg$0 = param[1]; - return {kind: cst_PasDeChangement, payload: arg$0}; - } - function changement_logement_d842_4_of_(changement_logement_d842_4){ - var cons = caml_string_of_jsstring(changement_logement_d842_4.kind); - if(! caml_string_notequal(cons, cst_Changement)) - return [0, - infos_changement_logement_d842$0 - (changement_logement_d842_4.payload)]; - if(! caml_string_notequal(cons, cst_PasDeChangement)) return _bm_; - var _iq_ = caml_call2(Stdlib_Printf[4], _bl_, cons); - return caml_call1(Stdlib[2], _iq_); - } - function informations_prime_de_demenage(informations_prime_de_demenage){ - var - _ip_ = date_naissance_troisieme_ou_de(informations_prime_de_demenage[2]); - return {nombreEnfantsANaitreApresTroisiemeMoisGrossesse: - caml_call1 - (Runtime_ocaml_Runtime[48], informations_prime_de_demenage[1]), - dateNaissanceTroisiemeEnfantOuDernierSiPlus: _ip_}; - } - function informations_prime_de_demenage$0(informations_prime_de_demenage){ - var - _io_ = - date_naissance_troisieme_ou_de$0 - (informations_prime_de_demenage.dateNaissanceTroisiemeEnfantOuDernierSiPlus); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49], - informations_prime_de_demenage.nombreEnfantsANaitreApresTroisiemeMoisGrossesse), - _io_]; - } - function proprietaire_to_jsoo(proprietaire){ - var - _ie_ = ! ! proprietaire[11], - _if_ = pret_to_jsoo(proprietaire[10]), - _ig_ = neuf_ou_ancien_to_jsoo(proprietaire[9]), - _ih_ = ! ! proprietaire[8], - _ii_ = ! ! proprietaire[7], - _ij_ = ! ! proprietaire[6], - _ik_ = type_travaux_logement_r842_5_t(proprietaire[5]), - _il_ = type_travaux_logement_d832_15_(proprietaire[4]), - _im_ = caml_call1(Runtime_jsoo_Runtime[5], proprietaire[3]), - _in_ = caml_call1(Runtime_ocaml_Runtime[35], proprietaire[2]); - return {mensualitePrincipale: - caml_call1(Runtime_ocaml_Runtime[35], proprietaire[1]), - chargesMensuellesPret: _in_, - dateEntreeLogement: _im_, - typeTravauxLogementD83215: _il_, - typeTravauxLogementR8425: _ik_, - localHabitePremiereFoisBeneficiaire: _ij_, - copropriete: _ii_, - situationR822111317: _ih_, - ancienneteLogement: _ig_, - pret: _if_, - operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat: - _ie_}; - } - function proprietaire_of_jsoo(proprietaire){ - var - _h4_ = - proprietaire.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat - | 0, - _h5_ = pret_of_jsoo(proprietaire.pret), - _h6_ = neuf_ou_ancien_of_jsoo(proprietaire.ancienneteLogement), - _h7_ = proprietaire.situationR822111317 | 0, - _h8_ = proprietaire.copropriete | 0, - _h9_ = proprietaire.localHabitePremiereFoisBeneficiaire | 0, - _h__ = - type_travaux_logement_r842_5_o(proprietaire.typeTravauxLogementR8425), - _h$_ = - type_travaux_logement_d832_15_$0 - (proprietaire.typeTravauxLogementD83215), - _ia_ = - caml_call1(Runtime_jsoo_Runtime[4], proprietaire.dateEntreeLogement), - _ib_ = - caml_call1 - (Runtime_ocaml_Runtime[42], proprietaire.chargesMensuellesPret), - _ic_ = caml_call1(Runtime_ocaml_Runtime[33], _ib_), - _id_ = - caml_call1 - (Runtime_ocaml_Runtime[42], proprietaire.mensualitePrincipale); - return [0, - caml_call1(Runtime_ocaml_Runtime[33], _id_), - _ic_, - _ia_, - _h$_, - _h__, - _h9_, - _h8_, - _h7_, - _h6_, - _h5_, - _h4_]; - } - function eligibilite_prestations_famili(eligibilite_prestations_famili){ - var t523 = ! ! eligibilite_prestations_famili[4]; - function t522(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var _h3_ = enfant_prestations_familiales_$0(function_input0); - return ! ! caml_call1(eligibilite_prestations_famili[3], _h3_); - }); - } - function t521(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var _h2_ = enfant_prestations_familiales_$0(function_input0); - return ! ! caml_call1(eligibilite_prestations_famili[2], _h2_); - }); - } - var - t520 = - caml_call1(Runtime_jsoo_Runtime[3], eligibilite_prestations_famili[1]); - return {ageL51232: t520, - droitOuvert: caml_js_wrap_meth_callback(t521), - conditionsHorsAge: caml_js_wrap_meth_callback(t522), - regimeOutreMerL7511: t523}; - } - function eligibilite_prestations_famili$0(eligibilite_prestations_famili){ - var - _hZ_ = eligibilite_prestations_famili.regimeOutreMerL7511 | 0, - _h0_ = caml_call1(Stdlib[2], cst_The_function_conditions_ho), - _h1_ = caml_call1(Stdlib[2], cst_The_function_droit_ouvert_); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[2], - eligibilite_prestations_famili.ageL51232), - _h1_, - _h0_, - _hZ_]; - } - function demandeur_to_jsoo(demandeur){ - var - _hU_ = ! ! demandeur[6], - _hV_ = ! ! demandeur[5], - _hW_ = ! ! demandeur[4], - _hX_ = patrimoine_to_jsoo(demandeur[3]), - _hY_ = nationalite_to_jsoo(demandeur[2]); - return {dateNaissance: caml_call1(Runtime_jsoo_Runtime[5], demandeur[1]), - nationalite: _hY_, - patrimoine: _hX_, - personneHebergeeCentreSoinLL162223SecuriteSociale: _hW_, - estNonSalarieAgricoleL7818L78146CodeRural: _hV_, - magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte: - _hU_}; - } - function demandeur_of_jsoo(demandeur){ - var - _hP_ = - demandeur.magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte - | 0, - _hQ_ = demandeur.estNonSalarieAgricoleL7818L78146CodeRural | 0, - _hR_ = demandeur.personneHebergeeCentreSoinLL162223SecuriteSociale | 0, - _hS_ = patrimoine_of_jsoo(demandeur.patrimoine), - _hT_ = nationalite_of_jsoo(demandeur.nationalite); - return [0, - caml_call1(Runtime_jsoo_Runtime[4], demandeur.dateNaissance), - _hT_, - _hS_, - _hR_, - _hQ_, - _hP_]; - } - function enfant_a_charge_to_jsoo(enfant_a_charge){ - var - _hH_ = ! ! enfant_a_charge[9], - _hI_ = situation_garde_alternee_to_js(enfant_a_charge[8]), - _hJ_ = situation_obligation_scolaire_(enfant_a_charge[7]), - _hK_ = caml_call1(Runtime_ocaml_Runtime[35], enfant_a_charge[6]), - _hL_ = caml_call1(Runtime_jsoo_Runtime[5], enfant_a_charge[5]), - _hM_ = ! ! enfant_a_charge[4], - _hN_ = ! ! enfant_a_charge[3], - _hO_ = nationalite_to_jsoo(enfant_a_charge[2]); - return {identifiant: - caml_call1(Runtime_ocaml_Runtime[48], enfant_a_charge[1]), - nationalite: _hO_, - beneficieTitrePersonnelAidePersonnelleLogement: _hN_, - aDejaOuvertDroitAuxAllocationsFamiliales: _hM_, - dateDeNaissance: _hL_, - remunerationMensuelle: _hK_, - obligationScolaire: _hJ_, - situationGardeAlternee: _hI_, - etudesApprentissageStageFormationProImpossibiliteTravail: _hH_}; - } - function enfant_a_charge_of_jsoo(enfant_a_charge){ - var - _hy_ = - enfant_a_charge.etudesApprentissageStageFormationProImpossibiliteTravail - | 0, - _hz_ = - situation_garde_alternee_of_js(enfant_a_charge.situationGardeAlternee), - _hA_ = - situation_obligation_scolaire_$0(enfant_a_charge.obligationScolaire), - _hB_ = - caml_call1 - (Runtime_ocaml_Runtime[42], enfant_a_charge.remunerationMensuelle), - _hC_ = caml_call1(Runtime_ocaml_Runtime[33], _hB_), - _hD_ = - caml_call1(Runtime_jsoo_Runtime[4], enfant_a_charge.dateDeNaissance), - _hE_ = enfant_a_charge.aDejaOuvertDroitAuxAllocationsFamiliales | 0, - _hF_ = enfant_a_charge.beneficieTitrePersonnelAidePersonnelleLogement | 0, - _hG_ = nationalite_of_jsoo(enfant_a_charge.nationalite); - return [0, - caml_call1(Runtime_ocaml_Runtime[49], enfant_a_charge.identifiant), - _hG_, - _hF_, - _hE_, - _hD_, - _hC_, - _hA_, - _hz_, - _hy_]; - } - function location_to_jsoo(location){ - var - _hr_ = changement_logement_d842_4_to_(location[8]), - _hs_ = ! ! location[7], - _ht_ = ! ! location[6], - _hu_ = ! ! location[5], - _hv_ = ! ! location[4], - _hw_ = ! ! location[3], - _hx_ = caml_call1(Runtime_ocaml_Runtime[35], location[2]); - return {bailleur: type_bailleur_to_jsoo(location[1]), - loyerPrincipal: _hx_, - beneficiaireAideAdulteOuEnfantHandicapes: _hw_, - logementEstChambre: _hv_, - colocation: _hu_, - ageesOuHandicapAdultesHebergeesOnereuxParticuliers: _ht_, - logementMeubleD8422: _hs_, - changementLogementD8424: _hr_}; - } - function location_of_jsoo(location){ - var - _hj_ = changement_logement_d842_4_of_(location.changementLogementD8424), - _hk_ = location.logementMeubleD8422 | 0, - _hl_ = location.ageesOuHandicapAdultesHebergeesOnereuxParticuliers | 0, - _hm_ = location.colocation | 0, - _hn_ = location.logementEstChambre | 0, - _ho_ = location.beneficiaireAideAdulteOuEnfantHandicapes | 0, - _hp_ = caml_call1(Runtime_ocaml_Runtime[42], location.loyerPrincipal), - _hq_ = caml_call1(Runtime_ocaml_Runtime[33], _hp_); - return [0, - type_bailleur_of_jsoo(location.bailleur), - _hq_, - _ho_, - _hn_, - _hm_, - _hl_, - _hk_, - _hj_]; - } - function personne_a_charge_to_jsoo(param){ - if(0 === param[0]){ - var arg = param[1]; - return {kind: cst_EnfantACharge, payload: enfant_a_charge_to_jsoo(arg)}; - } - var arg$0 = param[1]; - return {kind: cst_AutrePersonneACharge, - payload: autre_personne_a_charge_to_jso(arg$0)}; - } - function personne_a_charge_of_jsoo(personne_a_charge){ - var cons = caml_string_of_jsstring(personne_a_charge.kind); - if(! caml_string_notequal(cons, cst_AutrePersonneACharge)) - return [1, autre_personne_a_charge_of_jso(personne_a_charge.payload)]; - if(! caml_string_notequal(cons, cst_EnfantACharge)) - return [0, enfant_a_charge_of_jsoo(personne_a_charge.payload)]; - var _hi_ = caml_call2(Stdlib_Printf[4], _bn_, cons); - return caml_call1(Stdlib[2], _hi_); - } - function categorie_calcul_a_p_l_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_Location, payload: location_to_jsoo(arg)}; - case 1: - var arg$0 = param[1]; - return {kind: cst_AccessionPropriete, - payload: proprietaire_to_jsoo(arg$0)}; - default: - var arg$1 = param[1]; - return {kind: cst_LogementFoyer, - payload: logement_foyer_to_jsoo(arg$1)}; - } - } - function categorie_calcul_a_p_l_of_jsoo(categorie_calcul_a_p_l){ - var cons = caml_string_of_jsstring(categorie_calcul_a_p_l.kind); - if(! caml_string_notequal(cons, cst_AccessionPropriete)) - return [1, proprietaire_of_jsoo(categorie_calcul_a_p_l.payload)]; - if(! caml_string_notequal(cons, cst_Location)) - return [0, location_of_jsoo(categorie_calcul_a_p_l.payload)]; - if(! caml_string_notequal(cons, cst_LogementFoyer)) - return [2, logement_foyer_of_jsoo(categorie_calcul_a_p_l.payload)]; - var _hh_ = caml_call2(Stdlib_Printf[4], _bo_, cons); - return caml_call1(Stdlib[2], _hh_); - } - function mode_occupation_to_jsoo(param){ - switch(param[0]){ - case 0: - var arg = param[1]; - return {kind: cst_Locataire, payload: location_to_jsoo(arg)}; - case 1: - var arg$0 = param[1]; - return {kind: cst_ResidentLogementFoyer, - payload: logement_foyer_to_jsoo(arg$0)}; - case 2: - var arg$1 = param[1]; - return {kind: cst_AccessionProprieteLocalUsa, - payload: proprietaire_to_jsoo(arg$1)}; - case 3: - var arg$2 = param[1]; - return {kind: cst_SousLocataire, payload: location_to_jsoo(arg$2)}; - default: - var arg$3 = param[1]; - return {kind: cst_LocationAccession, - payload: proprietaire_to_jsoo(arg$3)}; - } - } - function mode_occupation_of_jsoo(mode_occupation){ - var cons = caml_string_of_jsstring(mode_occupation.kind); - if(! caml_string_notequal(cons, cst_AccessionProprieteLocalUsa)) - return [2, proprietaire_of_jsoo(mode_occupation.payload)]; - if(! caml_string_notequal(cons, cst_Locataire)) - return [0, location_of_jsoo(mode_occupation.payload)]; - if(! caml_string_notequal(cons, cst_LocationAccession)) - return [4, proprietaire_of_jsoo(mode_occupation.payload)]; - if(! caml_string_notequal(cons, cst_ResidentLogementFoyer)) - return [1, logement_foyer_of_jsoo(mode_occupation.payload)]; - if(! caml_string_notequal(cons, cst_SousLocataire)) - return [3, location_of_jsoo(mode_occupation.payload)]; - var _hg_ = caml_call2(Stdlib_Printf[4], _bp_, cons); - return caml_call1(Stdlib[2], _hg_); - } - function eligibilite_aides_personnelle_(eligibilite_aides_personnelle_){ - function t609(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var _hf_ = personne_a_charge_of_jsoo(function_input0); - return ! ! caml_call1(eligibilite_aides_personnelle_[5], _hf_); - }); - } - var _hd_ = eligibilite_aides_personnelle_[4]; - function _he_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} - var - t608 = caml_js_from_array(caml_call2(Stdlib_Array[15], _he_, _hd_)), - t607 = - caml_call1 - (Runtime_ocaml_Runtime[48], eligibilite_aides_personnelle_[3]), - t606 = ! ! eligibilite_aides_personnelle_[2], - t605 = - caml_call1(Runtime_jsoo_Runtime[5], eligibilite_aides_personnelle_[1]); - return {dateCourante: t605, - eligibilite: t606, - nombrePersonnesAChargePrisesEnCompte: t607, - coefficentsEnfantsGardeAlterneePrisEnCompte: t608, - condition2R8234: caml_js_wrap_meth_callback(t609)}; - } - function eligibilite_aides_personnelle_$0(eligibilite_aides_personnelle_){ - var - _g9_ = caml_call1(Stdlib[2], cst_The_function_condition_2_r), - _g__ = - caml_js_to_array - (eligibilite_aides_personnelle_.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _g$_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} - var - _ha_ = caml_call1(caml_call1(Stdlib_Array[15], _g$_), _g__), - _hb_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - eligibilite_aides_personnelle_.nombrePersonnesAChargePrisesEnCompte), - _hc_ = eligibilite_aides_personnelle_.eligibilite | 0; - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aides_personnelle_.dateCourante), - _hc_, - _hb_, - _ha_, - _g9_]; - } - function logement_to_jsoo(logement){ - var - _g2_ = zone_d_habitation_to_jsoo(logement[9]), - _g3_ = caml_call1(Runtime_ocaml_Runtime[48], logement[8]), - _g4_ = ! ! logement[7], - _g5_ = parent_ou_autre_to_jsoo(logement[6]), - _g6_ = loue_ou_sous_loue_a_des_tiers_(logement[5]), - _g7_ = parent_ou_autre_to_jsoo(logement[4]), - _g8_ = mode_occupation_to_jsoo(logement[3]); - return {residencePrincipale: ! ! logement[1], - estEhpadOuMaisonAutonomieL31312Asf: ! ! logement[2], - modeOccupation: _g8_, - proprietaire: _g7_, - loueOuSousLoueADesTiers: _g6_, - usufruit: _g5_, - logementDecentL89462: _g4_, - surfaceMCarres: _g3_, - zone: _g2_}; - } - function logement_of_jsoo(logement){ - var - _gV_ = zone_d_habitation_of_jsoo(logement.zone), - _gW_ = caml_call1(Runtime_ocaml_Runtime[49], logement.surfaceMCarres), - _gX_ = logement.logementDecentL89462 | 0, - _gY_ = parent_ou_autre_of_jsoo(logement.usufruit), - _gZ_ = loue_ou_sous_loue_a_des_tiers_$0(logement.loueOuSousLoueADesTiers), - _g0_ = parent_ou_autre_of_jsoo(logement.proprietaire), - _g1_ = mode_occupation_of_jsoo(logement.modeOccupation); - return [0, - logement.residencePrincipale | 0, - logement.estEhpadOuMaisonAutonomieL31312Asf | 0, - _g1_, - _g0_, - _gZ_, - _gY_, - _gX_, - _gW_, - _gV_]; - } - function menage_to_jsoo(menage){ - var - _gJ_ = collectivite_to_jsoo(menage[9]), - _gK_ = ! ! menage[8], - _gL_ = ! ! menage[7], - _gM_ = ! ! menage[6], - _gN_ = situation_familiale_to_jsoo(menage[5]), - _gO_ = caml_call1(Runtime_ocaml_Runtime[48], menage[4]), - _gP_ = menage[3]; - function _gQ_(x){return personne_a_charge_to_jsoo(x);} - var - _gR_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _gQ_, _gP_)), - _gS_ = logement_to_jsoo(menage[2]), - _gT_ = menage[1]; - function _gU_(x){return prestation_recue_to_jsoo(x);} - return {prestationsRecues: - caml_js_from_array(caml_call2(Stdlib_Array[15], _gU_, _gT_)), - logement: _gS_, - personnesACharge: _gR_, - nombreAutresOccupantsLogement: _gO_, - situationFamiliale: _gN_, - conditionRattacheFoyerFiscalParentIfi: _gM_, - enfantANaitreApresQuatriemeMoisGrossesse: _gL_, - personnesAgeesHandicapeesFoyerR8444: _gK_, - residence: _gJ_}; - } - function menage_of_jsoo(menage){ - var - _gx_ = collectivite_of_jsoo(menage.residence), - _gy_ = menage.personnesAgeesHandicapeesFoyerR8444 | 0, - _gz_ = menage.enfantANaitreApresQuatriemeMoisGrossesse | 0, - _gA_ = menage.conditionRattacheFoyerFiscalParentIfi | 0, - _gB_ = situation_familiale_of_jsoo(menage.situationFamiliale), - _gC_ = - caml_call1 - (Runtime_ocaml_Runtime[49], menage.nombreAutresOccupantsLogement), - _gD_ = caml_js_to_array(menage.personnesACharge); - function _gE_(x){return personne_a_charge_of_jsoo(x);} - var - _gF_ = caml_call1(caml_call1(Stdlib_Array[15], _gE_), _gD_), - _gG_ = logement_of_jsoo(menage.logement), - _gH_ = caml_js_to_array(menage.prestationsRecues); - function _gI_(x){return prestation_recue_of_jsoo(x);} - return [0, - caml_call1(caml_call1(Stdlib_Array[15], _gI_), _gH_), - _gG_, - _gF_, - _gC_, - _gB_, - _gA_, - _gz_, - _gy_, - _gx_]; - } - function eligibilite_aides_personnelle_$1(eligibilite_aides_personnelle_){ - function t655(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _gw_ = - caml_call1 - (eligibilite_aides_personnelle_[6], function_input0); - return caml_call1(Runtime_jsoo_Runtime[5], _gw_); - }); - } - function t654(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - return ! - ! - caml_call1 - (eligibilite_aides_personnelle_[5], function_input0); - }); - } - function t653(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - return ! - ! - caml_call1 - (eligibilite_aides_personnelle_[4], function_input0); - }); - } - var - t652 = - caml_call1(Runtime_jsoo_Runtime[5], eligibilite_aides_personnelle_[3]), - t651 = demandeur_to_jsoo(eligibilite_aides_personnelle_[2]), - t650 = menage_to_jsoo(eligibilite_aides_personnelle_[1]); - return {menageIn: t650, - demandeurIn: t651, - dateCouranteIn: t652, - conditionLogementResidencePrincipaleIn: - caml_js_wrap_meth_callback(t653), - conditionLogementSurfaceIn: caml_js_wrap_meth_callback(t654), - dateEntreeVigueurDiffereeCchIn: caml_js_wrap_meth_callback(t655)}; - } - function eligibilite_aides_personnelle_$2(eligibilite_aides_personnelle_){ - var - _gr_ = caml_call1(Stdlib[2], cst_The_function_date_entree_v), - _gs_ = caml_call1(Stdlib[2], cst_The_function_condition_log), - _gt_ = caml_call1(Stdlib[2], cst_The_function_condition_log$0), - _gu_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aides_personnelle_.dateCouranteIn), - _gv_ = demandeur_of_jsoo(eligibilite_aides_personnelle_.demandeurIn); - return [0, - menage_of_jsoo(eligibilite_aides_personnelle_.menageIn), - _gv_, - _gu_, - _gt_, - _gs_, - _gr_]; - } - function eligibilite_aide_personnalisee$1(eligibilite_aide_personnalisee){ - var - _gp_ = - caml_call1(Runtime_jsoo_Runtime[5], eligibilite_aide_personnalisee[3]), - _gq_ = demandeur_to_jsoo(eligibilite_aide_personnalisee[2]); - return {menageIn: menage_to_jsoo(eligibilite_aide_personnalisee[1]), - demandeurIn: _gq_, - dateCouranteIn: _gp_}; - } - function eligibilite_aide_personnalisee$2(eligibilite_aide_personnalisee){ - var - _gn_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aide_personnalisee.dateCouranteIn), - _go_ = demandeur_of_jsoo(eligibilite_aide_personnalisee.demandeurIn); - return [0, - menage_of_jsoo(eligibilite_aide_personnalisee.menageIn), - _go_, - _gn_]; - } - function eligibilite_allocation_logemen$1(eligibilite_allocation_logemen){ - var - _gk_ = ! ! eligibilite_allocation_logemen[4], - _gl_ = demandeur_to_jsoo(eligibilite_allocation_logemen[3]), - _gm_ = menage_to_jsoo(eligibilite_allocation_logemen[2]); - return {dateCouranteIn: - caml_call1 - (Runtime_jsoo_Runtime[5], eligibilite_allocation_logemen[1]), - menageIn: _gm_, - demandeurIn: _gl_, - beneficieAidePersonnaliseeLogementIn: _gk_}; - } - function eligibilite_allocation_logemen$2(eligibilite_allocation_logemen){ - var - _gh_ = - eligibilite_allocation_logemen.beneficieAidePersonnaliseeLogementIn | 0, - _gi_ = demandeur_of_jsoo(eligibilite_allocation_logemen.demandeurIn), - _gj_ = menage_of_jsoo(eligibilite_allocation_logemen.menageIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_allocation_logemen.dateCouranteIn), - _gj_, - _gi_, - _gh_]; - } - function eligibilite_prime_de_demenagem$1(eligibilite_prime_de_demenagem){ - var - _gc_ = - caml_call1 - (Runtime_ocaml_Runtime[35], eligibilite_prime_de_demenagem[6]), - _gd_ = - caml_call1(Runtime_jsoo_Runtime[5], eligibilite_prime_de_demenagem[5]), - _ge_ = demandeur_to_jsoo(eligibilite_prime_de_demenagem[4]), - _gf_ = menage_to_jsoo(eligibilite_prime_de_demenagem[3]), - _gg_ = - caml_call1(Runtime_jsoo_Runtime[5], eligibilite_prime_de_demenagem[2]); - return {informationsIn: - informations_prime_de_demenage(eligibilite_prime_de_demenagem[1]), - dateEmmenagementIn: _gg_, - menageIn: _gf_, - demandeurIn: _ge_, - dateCouranteIn: _gd_, - depensesJustifieesReellementEngageesIn: _gc_}; - } - function eligibilite_prime_de_demenagem$2(eligibilite_prime_de_demenagem){ - var - _f8_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - eligibilite_prime_de_demenagem.depensesJustifieesReellementEngageesIn), - _f9_ = caml_call1(Runtime_ocaml_Runtime[33], _f8_), - _f__ = - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_prime_de_demenagem.dateCouranteIn), - _f$_ = demandeur_of_jsoo(eligibilite_prime_de_demenagem.demandeurIn), - _ga_ = menage_of_jsoo(eligibilite_prime_de_demenagem.menageIn), - _gb_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_prime_de_demenagem.dateEmmenagementIn); - return [0, - informations_prime_de_demenage$0 - (eligibilite_prime_de_demenagem.informationsIn), - _gb_, - _ga_, - _f$_, - _f__, - _f9_]; - } - function ressources_aides_personnelle_l$1(ressources_aides_personnelle_l){ - var - _fR_ = - caml_call1 - (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[14]), - _fS_ = paiement_logement_distinct_pro(ressources_aides_personnelle_l[13]), - _fT_ = - caml_call1(Runtime_jsoo_Runtime[5], ressources_aides_personnelle_l[12]), - _fU_ = ! ! ressources_aides_personnelle_l[11], - _fV_ = ! ! ressources_aides_personnelle_l[10], - _fW_ = - caml_call1(Runtime_jsoo_Runtime[5], ressources_aides_personnelle_l[9]), - _fX_ = mode_occupation_to_jsoo(ressources_aides_personnelle_l[8]), - _fY_ = situation_familiale_to_jsoo(ressources_aides_personnelle_l[7]), - _fZ_ = ressources_aides_personnelle_l[6]; - function _f0_(x){return personne_a_charge_to_jsoo(x);} - var - _f1_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _f0_, _fZ_)), - _f2_ = ! ! ressources_aides_personnelle_l[5], - _f3_ = ! ! ressources_aides_personnelle_l[4], - _f4_ = ressources_aides_personnelle_l[3]; - function _f5_(x){return personne_vivant_habituellement(x);} - var - _f6_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _f5_, _f4_)), - _f7_ = - caml_call1 - (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[2]); - return {ressourcesDemandeurIn: - caml_call1 - (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[1]), - ressourcesConjointIn: _f7_, - personnesVivantHabituellementFoyerIn: _f6_, - demandeurExerceActiviteRemunereeIn: _f3_, - conjointExerceActiviteRemunereeIn: _f2_, - personnesAChargeIn: _f1_, - situationFamilialeIn: _fY_, - modeOccupationIn: _fX_, - dateCouranteIn: _fW_, - conditionAgeBourseEnseignementSuperieurIn: _fV_, - demandeurPoursuitDesEtudesIn: _fU_, - dateDemandeOuReexamenDroitIn: _fT_, - paiementLogementDistinctProfessionnelIn: _fS_, - ressourcesMenageArrondiesBaseIn: _fR_}; - } - function ressources_aides_personnelle_l$2(ressources_aides_personnelle_l){ - var - _fx_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesMenageArrondiesBaseIn), - _fy_ = caml_call1(Runtime_ocaml_Runtime[33], _fx_), - _fz_ = - paiement_logement_distinct_pro$0 - (ressources_aides_personnelle_l.paiementLogementDistinctProfessionnelIn), - _fA_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - ressources_aides_personnelle_l.dateDemandeOuReexamenDroitIn), - _fB_ = ressources_aides_personnelle_l.demandeurPoursuitDesEtudesIn | 0, - _fC_ = - ressources_aides_personnelle_l.conditionAgeBourseEnseignementSuperieurIn - | 0, - _fD_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - ressources_aides_personnelle_l.dateCouranteIn), - _fE_ = - mode_occupation_of_jsoo - (ressources_aides_personnelle_l.modeOccupationIn), - _fF_ = - situation_familiale_of_jsoo - (ressources_aides_personnelle_l.situationFamilialeIn), - _fG_ = - caml_js_to_array(ressources_aides_personnelle_l.personnesAChargeIn); - function _fH_(x){return personne_a_charge_of_jsoo(x);} - var - _fI_ = caml_call1(caml_call1(Stdlib_Array[15], _fH_), _fG_), - _fJ_ = - ressources_aides_personnelle_l.conjointExerceActiviteRemunereeIn | 0, - _fK_ = - ressources_aides_personnelle_l.demandeurExerceActiviteRemunereeIn | 0, - _fL_ = - caml_js_to_array - (ressources_aides_personnelle_l.personnesVivantHabituellementFoyerIn); - function _fM_(x){return personne_vivant_habituellement$0(x);} - var - _fN_ = caml_call1(caml_call1(Stdlib_Array[15], _fM_), _fL_), - _fO_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesConjointIn), - _fP_ = caml_call1(Runtime_ocaml_Runtime[33], _fO_), - _fQ_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesDemandeurIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33], _fQ_), - _fP_, - _fN_, - _fK_, - _fJ_, - _fI_, - _fF_, - _fE_, - _fD_, - _fC_, - _fB_, - _fA_, - _fz_, - _fy_]; - } - function contributions_sociales_aides_p$1(contributions_sociales_aides_p){ - return {dateCouranteIn: - caml_call1 - (Runtime_jsoo_Runtime[5], contributions_sociales_aides_p[1])}; - } - function contributions_sociales_aides_p$2(contributions_sociales_aides_p){ - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - contributions_sociales_aides_p.dateCouranteIn)]; - } - function calcul_aide_personnalisee_loge$7(calcul_aide_personnalisee_loge){ - var - _fk_ = collectivite_to_jsoo(calcul_aide_personnalisee_loge[14]), - _fl_ = ! ! calcul_aide_personnalisee_loge[13], - _fm_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[12]), - _fn_ = ! ! calcul_aide_personnalisee_loge[11], - _fo_ = type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[10]), - _fp_ = ! ! calcul_aide_personnalisee_loge[9], - _fq_ = ! ! calcul_aide_personnalisee_loge[8], - _fr_ = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[7]), - _fs_ = situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[6]), - _ft_ = - caml_call1 - (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[5]), - _fu_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[4]), - _fv_ = ! ! calcul_aide_personnalisee_loge[3], - _fw_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]); - return {loyerPrincipalBaseIn: - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]), - ressourcesMenageArrondiesIn: _fw_, - beneficiaireAideAdulteOuEnfantHandicapesIn: _fv_, - dateCouranteIn: _fu_, - nombrePersonnesAChargeIn: _ft_, - situationFamilialeCalculAplIn: _fs_, - zoneIn: _fr_, - logementEstChambreIn: _fq_, - ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn: _fp_, - typeAideIn: _fo_, - colocationIn: _fn_, - reductionLoyerSolidariteIn: _fm_, - logementMeubleD8422In: _fl_, - residenceIn: _fk_}; - } - function calcul_aide_personnalisee_loge$8(calcul_aide_personnalisee_loge){ - var - _e6_ = collectivite_of_jsoo(calcul_aide_personnalisee_loge.residenceIn), - _e7_ = calcul_aide_personnalisee_loge.logementMeubleD8422In | 0, - _e8_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.reductionLoyerSolidariteIn), - _e9_ = caml_call1(Runtime_ocaml_Runtime[33], _e8_), - _e__ = calcul_aide_personnalisee_loge.colocationIn | 0, - _e$_ = - type_aides_personnelle_logemen$0 - (calcul_aide_personnalisee_loge.typeAideIn), - _fa_ = - calcul_aide_personnalisee_loge.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn - | 0, - _fb_ = calcul_aide_personnalisee_loge.logementEstChambreIn | 0, - _fc_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _fd_ = - situation_familiale_calcul_a_p$0 - (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), - _fe_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _ff_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _fg_ = - calcul_aide_personnalisee_loge.beneficiaireAideAdulteOuEnfantHandicapesIn - | 0, - _fh_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), - _fi_ = caml_call1(Runtime_ocaml_Runtime[33], _fh_), - _fj_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.loyerPrincipalBaseIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33], _fj_), - _fi_, - _fg_, - _ff_, - _fe_, - _fd_, - _fc_, - _fb_, - _fa_, - _e$_, - _e__, - _e9_, - _e7_, - _e6_]; - } - function calcul_equivalence_loyer_minim$1(calcul_equivalence_loyer_minim){ - var - _e3_ = - caml_call1 - (Runtime_ocaml_Runtime[43], calcul_equivalence_loyer_minim[4]), - _e4_ = ! ! calcul_equivalence_loyer_minim[3], - _e5_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_equivalence_loyer_minim[2]); - return {dateCouranteIn: - caml_call1 - (Runtime_jsoo_Runtime[5], calcul_equivalence_loyer_minim[1]), - ressourcesMenageArrondiesIn: _e5_, - condition2Du83225In: _e4_, - nNombrePartsD83225In: _e3_}; - } - function calcul_equivalence_loyer_minim$2(calcul_equivalence_loyer_minim){ - var - _eZ_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_equivalence_loyer_minim.nNombrePartsD83225In), - _e0_ = calcul_equivalence_loyer_minim.condition2Du83225In | 0, - _e1_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_equivalence_loyer_minim.ressourcesMenageArrondiesIn), - _e2_ = caml_call1(Runtime_ocaml_Runtime[33], _e1_); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_equivalence_loyer_minim.dateCouranteIn), - _e2_, - _e0_, - _eZ_]; - } - function calcul_nombre_part_logement_fo$1(calcul_nombre_part_logement_fo){ - function t755(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - return ! - ! - caml_call1 - (calcul_nombre_part_logement_fo[5], function_input0); - }); - } - var - t754 = collectivite_to_jsoo(calcul_nombre_part_logement_fo[4]), - t753 = situation_familiale_calcul_a_p(calcul_nombre_part_logement_fo[3]), - t752 = - caml_call1 - (Runtime_ocaml_Runtime[48], calcul_nombre_part_logement_fo[2]), - t751 = ! ! calcul_nombre_part_logement_fo[1]; - return {condition2Du83225In: t751, - nombrePersonnesAChargeIn: t752, - situationFamilialeCalculAplIn: t753, - residenceIn: t754, - limitationMajorationPersonnesAChargeIn: - caml_js_wrap_meth_callback(t755)}; - } - function calcul_nombre_part_logement_fo$2(calcul_nombre_part_logement_fo){ - var - _eV_ = caml_call1(Stdlib[2], cst_The_function_limitation_ma), - _eW_ = collectivite_of_jsoo(calcul_nombre_part_logement_fo.residenceIn), - _eX_ = - situation_familiale_calcul_a_p$0 - (calcul_nombre_part_logement_fo.situationFamilialeCalculAplIn), - _eY_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_nombre_part_logement_fo.nombrePersonnesAChargeIn); - return [0, - calcul_nombre_part_logement_fo.condition2Du83225In | 0, - _eY_, - _eX_, - _eW_, - _eV_]; - } - function calcul_aide_personnalisee_loge$9(calcul_aide_personnalisee_loge){ - function t771(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _eU_ = - caml_call1 - (calcul_aide_personnalisee_loge[12], function_input0); - return caml_call1(Runtime_ocaml_Runtime[43], _eU_); - }); - } - function t770(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - return ! - ! - caml_call1 - (calcul_aide_personnalisee_loge[11], function_input0); - }); - } - function t769(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - return ! - ! - caml_call1 - (calcul_aide_personnalisee_loge[10], function_input0); - }); - } - var - t768 = collectivite_to_jsoo(calcul_aide_personnalisee_loge[9]), - t767 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[8]), - t766 = - caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[7]), - t765 = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), - t764 = situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[5]), - t763 = - caml_call1 - (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[4]), - t762 = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[3]), - t761 = - caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[2]), - t760 = type_logement_foyer_to_jsoo(calcul_aide_personnalisee_loge[1]); - return {typeLogementFoyerIn: t760, - dateConventionnementIn: t761, - ressourcesMenageArrondiesIn: t762, - nombrePersonnesAChargeIn: t763, - situationFamilialeCalculAplIn: t764, - zoneIn: t765, - dateCouranteIn: t766, - redevanceIn: t767, - residenceIn: t768, - condition2Du83225In: caml_js_wrap_meth_callback(t769), - limitationMajorationPersonnesAChargeIn: - caml_js_wrap_meth_callback(t770), - nNombrePartsD83225In: caml_js_wrap_meth_callback(t771)}; - } - function calcul_aide_personnalisee_loge$10(calcul_aide_personnalisee_loge){ - var - _eH_ = caml_call1(Stdlib[2], cst_The_function_n_nombre_part), - _eI_ = caml_call1(Stdlib[2], cst_The_function_limitation_ma$0), - _eJ_ = caml_call1(Stdlib[2], cst_The_function_condition_2_d), - _eK_ = collectivite_of_jsoo(calcul_aide_personnalisee_loge.residenceIn), - _eL_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.redevanceIn), - _eM_ = caml_call1(Runtime_ocaml_Runtime[33], _eL_), - _eN_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _eO_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _eP_ = - situation_familiale_calcul_a_p$0 - (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), - _eQ_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _eR_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), - _eS_ = caml_call1(Runtime_ocaml_Runtime[33], _eR_), - _eT_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateConventionnementIn); - return [0, - type_logement_foyer_of_jsoo - (calcul_aide_personnalisee_loge.typeLogementFoyerIn), - _eT_, - _eS_, - _eQ_, - _eP_, - _eO_, - _eN_, - _eM_, - _eK_, - _eJ_, - _eI_, - _eH_]; - } - function calcul_nombre_parts_accession_$1(calcul_nombre_parts_accession_){ - var - _eG_ = situation_familiale_calcul_a_p(calcul_nombre_parts_accession_[2]); - return {nombrePersonnesAChargeIn: - caml_call1 - (Runtime_ocaml_Runtime[48], calcul_nombre_parts_accession_[1]), - situationFamilialeCalculAplIn: _eG_}; - } - function calcul_nombre_parts_accession_$2(calcul_nombre_parts_accession_){ - var - _eF_ = - situation_familiale_calcul_a_p$0 - (calcul_nombre_parts_accession_.situationFamilialeCalculAplIn); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_nombre_parts_accession_.nombrePersonnesAChargeIn), - _eF_]; - } - function calcul_aide_personnalisee_loge$11(calcul_aide_personnalisee_loge){ - var - _es_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[14]), - _et_ = neuf_ou_ancien_to_jsoo(calcul_aide_personnalisee_loge[13]), - _eu_ = type_pret_to_jsoo(calcul_aide_personnalisee_loge[12]), - _ev_ = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[11]), - _ew_ = ! ! calcul_aide_personnalisee_loge[10], - _ex_ = ! ! calcul_aide_personnalisee_loge[9], - _ey_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[8]), - _ez_ = ! ! calcul_aide_personnalisee_loge[7], - _eA_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[6]), - _eB_ = type_travaux_logement_d832_15_(calcul_aide_personnalisee_loge[5]), - _eC_ = situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[4]), - _eD_ = - caml_call1 - (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[3]), - _eE_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]); - return {mensualitePrincipaleIn: - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]), - ressourcesMenageArrondiesIn: _eE_, - nombrePersonnesAChargeIn: _eD_, - situationFamilialeCalculAplIn: _eC_, - typeTravauxLogementIn: _eB_, - dateSignaturePretIn: _eA_, - localHabitePremiereFoisBeneficiaireIn: _ez_, - dateEntreeLogementIn: _ey_, - coproprieteIn: _ex_, - situationR822111317In: _ew_, - zoneIn: _ev_, - typePretIn: _eu_, - ancienneteLogementIn: _et_, - dateCouranteIn: _es_}; - } - function calcul_aide_personnalisee_loge$12(calcul_aide_personnalisee_loge){ - var - _ed_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _ee_ = - neuf_ou_ancien_of_jsoo - (calcul_aide_personnalisee_loge.ancienneteLogementIn), - _ef_ = type_pret_of_jsoo(calcul_aide_personnalisee_loge.typePretIn), - _eg_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _eh_ = calcul_aide_personnalisee_loge.situationR822111317In | 0, - _ei_ = calcul_aide_personnalisee_loge.coproprieteIn | 0, - _ej_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateEntreeLogementIn), - _ek_ = - calcul_aide_personnalisee_loge.localHabitePremiereFoisBeneficiaireIn - | 0, - _el_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateSignaturePretIn), - _em_ = - type_travaux_logement_d832_15_$0 - (calcul_aide_personnalisee_loge.typeTravauxLogementIn), - _en_ = - situation_familiale_calcul_a_p$0 - (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), - _eo_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _ep_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), - _eq_ = caml_call1(Runtime_ocaml_Runtime[33], _ep_), - _er_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.mensualitePrincipaleIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33], _er_), - _eq_, - _eo_, - _en_, - _em_, - _el_, - _ek_, - _ej_, - _ei_, - _eh_, - _eg_, - _ef_, - _ee_, - _ed_]; - } - function calcul_aide_personnalisee_loge$13(calcul_aide_personnalisee_loge){ - var - _d8_ = collectivite_to_jsoo(calcul_aide_personnalisee_loge[8]), - _d9_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[7]), - _d__ = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), - _d$_ = - caml_call1 - (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[5]), - _ea_ = situation_familiale_to_jsoo(calcul_aide_personnalisee_loge[4]), - _eb_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[3]), - _ec_ = type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[2]); - return {modeOccupationIn: - mode_occupation_to_jsoo(calcul_aide_personnalisee_loge[1]), - typeAideIn: _ec_, - ressourcesMenageSansArrondiIn: _eb_, - situationFamilialeIn: _ea_, - nombrePersonnesAChargeIn: _d$_, - zoneIn: _d__, - dateCouranteIn: _d9_, - residenceIn: _d8_}; - } - function calcul_aide_personnalisee_loge$14(calcul_aide_personnalisee_loge){ - var - _d0_ = collectivite_of_jsoo(calcul_aide_personnalisee_loge.residenceIn), - _d1_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _d2_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _d3_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _d4_ = - situation_familiale_of_jsoo - (calcul_aide_personnalisee_loge.situationFamilialeIn), - _d5_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageSansArrondiIn), - _d6_ = caml_call1(Runtime_ocaml_Runtime[33], _d5_), - _d7_ = - type_aides_personnelle_logemen$0 - (calcul_aide_personnalisee_loge.typeAideIn); - return [0, - mode_occupation_of_jsoo - (calcul_aide_personnalisee_loge.modeOccupationIn), - _d7_, - _d6_, - _d4_, - _d3_, - _d2_, - _d1_, - _d0_]; - } - function calcul_allocation_logement_loc$1(calcul_allocation_logement_loc){ - var - _dM_ = changement_logement_d842_4_to_(calcul_allocation_logement_loc[15]), - _dN_ = collectivite_to_jsoo(calcul_allocation_logement_loc[14]), - _dO_ = ! ! calcul_allocation_logement_loc[13], - _dP_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[12]), - _dQ_ = ! ! calcul_allocation_logement_loc[11], - _dR_ = type_aides_personnelle_logemen(calcul_allocation_logement_loc[10]), - _dS_ = ! ! calcul_allocation_logement_loc[9], - _dT_ = ! ! calcul_allocation_logement_loc[8], - _dU_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_loc[7]), - _dV_ = situation_familiale_calcul_a_p(calcul_allocation_logement_loc[6]), - _dW_ = - caml_call1 - (Runtime_ocaml_Runtime[48], calcul_allocation_logement_loc[5]), - _dX_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_loc[4]), - _dY_ = ! ! calcul_allocation_logement_loc[3], - _dZ_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[2]); - return {loyerPrincipalIn: - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[1]), - ressourcesMenageArrondiesIn: _dZ_, - beneficiaireAideAdulteOuEnfantHandicapesIn: _dY_, - dateCouranteIn: _dX_, - nombrePersonnesAChargeIn: _dW_, - situationFamilialeCalculAplIn: _dV_, - zoneIn: _dU_, - logementEstChambreIn: _dT_, - ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn: _dS_, - typeAideIn: _dR_, - colocationIn: _dQ_, - reductionLoyerSolidariteIn: _dP_, - logementMeubleD8422In: _dO_, - residenceIn: _dN_, - changementLogementD8424In: _dM_}; - } - function calcul_allocation_logement_loc$2(calcul_allocation_logement_loc){ - var - _dv_ = - changement_logement_d842_4_of_ - (calcul_allocation_logement_loc.changementLogementD8424In), - _dw_ = collectivite_of_jsoo(calcul_allocation_logement_loc.residenceIn), - _dx_ = calcul_allocation_logement_loc.logementMeubleD8422In | 0, - _dy_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.reductionLoyerSolidariteIn), - _dz_ = caml_call1(Runtime_ocaml_Runtime[33], _dy_), - _dA_ = calcul_allocation_logement_loc.colocationIn | 0, - _dB_ = - type_aides_personnelle_logemen$0 - (calcul_allocation_logement_loc.typeAideIn), - _dC_ = - calcul_allocation_logement_loc.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn - | 0, - _dD_ = calcul_allocation_logement_loc.logementEstChambreIn | 0, - _dE_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_loc.zoneIn), - _dF_ = - situation_familiale_calcul_a_p$0 - (calcul_allocation_logement_loc.situationFamilialeCalculAplIn), - _dG_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_loc.nombrePersonnesAChargeIn), - _dH_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_loc.dateCouranteIn), - _dI_ = - calcul_allocation_logement_loc.beneficiaireAideAdulteOuEnfantHandicapesIn - | 0, - _dJ_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.ressourcesMenageArrondiesIn), - _dK_ = caml_call1(Runtime_ocaml_Runtime[33], _dJ_), - _dL_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.loyerPrincipalIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33], _dL_), - _dK_, - _dI_, - _dH_, - _dG_, - _dF_, - _dE_, - _dD_, - _dC_, - _dB_, - _dA_, - _dz_, - _dx_, - _dw_, - _dv_]; - } - function calcul_allocation_logement_acc$1(calcul_allocation_logement_acc){ - var - _dh_ = ! ! calcul_allocation_logement_acc[15], - _di_ = ! ! calcul_allocation_logement_acc[14], - _dj_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[13]), - _dk_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_acc[12]), - _dl_ = ! ! calcul_allocation_logement_acc[11], - _dm_ = type_travaux_logement_r842_5_t(calcul_allocation_logement_acc[10]), - _dn_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_acc[9]), - _do_ = ! ! calcul_allocation_logement_acc[8], - _dp_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[7]), - _dq_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_acc[6]), - _dr_ = collectivite_to_jsoo(calcul_allocation_logement_acc[5]), - _ds_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_acc[4]), - _dt_ = situation_familiale_calcul_a_p(calcul_allocation_logement_acc[3]), - _du_ = - caml_call1 - (Runtime_ocaml_Runtime[48], calcul_allocation_logement_acc[2]); - return {ressourcesMenageArrondiesBaseIn: - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[1]), - nombrePersonnesAChargeIn: _du_, - situationFamilialeCalculAplIn: _dt_, - zoneIn: _ds_, - residenceIn: _dr_, - dateCouranteIn: _dq_, - mensualitePrincipaleIn: _dp_, - situationR822111317In: _do_, - dateSignaturePretIn: _dn_, - typeTravauxLogementIn: _dm_, - localHabitePremiereFoisBeneficiaireIn: _dl_, - dateEntreeLogementIn: _dk_, - chargesMensuellesPretIn: _dj_, - coproprieteIn: _di_, - operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn: - _dh_}; - } - function calcul_allocation_logement_acc$2(calcul_allocation_logement_acc){ - var - _c2_ = - calcul_allocation_logement_acc.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn - | 0, - _c3_ = calcul_allocation_logement_acc.coproprieteIn | 0, - _c4_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.chargesMensuellesPretIn), - _c5_ = caml_call1(Runtime_ocaml_Runtime[33], _c4_), - _c6_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_acc.dateEntreeLogementIn), - _c7_ = - calcul_allocation_logement_acc.localHabitePremiereFoisBeneficiaireIn - | 0, - _c8_ = - type_travaux_logement_r842_5_o - (calcul_allocation_logement_acc.typeTravauxLogementIn), - _c9_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_acc.dateSignaturePretIn), - _c__ = calcul_allocation_logement_acc.situationR822111317In | 0, - _c$_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.mensualitePrincipaleIn), - _da_ = caml_call1(Runtime_ocaml_Runtime[33], _c$_), - _db_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_acc.dateCouranteIn), - _dc_ = collectivite_of_jsoo(calcul_allocation_logement_acc.residenceIn), - _dd_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_acc.zoneIn), - _de_ = - situation_familiale_calcul_a_p$0 - (calcul_allocation_logement_acc.situationFamilialeCalculAplIn), - _df_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_acc.nombrePersonnesAChargeIn), - _dg_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.ressourcesMenageArrondiesBaseIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33], _dg_), - _df_, - _de_, - _dd_, - _dc_, - _db_, - _da_, - _c__, - _c9_, - _c8_, - _c7_, - _c6_, - _c5_, - _c3_, - _c2_]; - } - function calcul_allocation_logement_foy$1(calcul_allocation_logement_foy){ - var - _cT_ = categorie_equivalence_loyer_al(calcul_allocation_logement_foy[10]), - _cU_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_foy[9]), - _cV_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_foy[8]), - _cW_ = situation_familiale_calcul_a_p(calcul_allocation_logement_foy[7]), - _cX_ = - caml_call1 - (Runtime_ocaml_Runtime[48], calcul_allocation_logement_foy[6]), - _cY_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[5]), - _cZ_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[4]), - _c0_ = collectivite_to_jsoo(calcul_allocation_logement_foy[3]), - _c1_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_foy[2]); - return {typeLogementFoyerIn: - type_logement_foyer_to_jsoo(calcul_allocation_logement_foy[1]), - dateConventionnementIn: _c1_, - residenceIn: _c0_, - redevanceIn: _cZ_, - ressourcesMenageArrondiesIn: _cY_, - nombrePersonnesAChargeIn: _cX_, - situationFamilialeCalculAplIn: _cW_, - zoneIn: _cV_, - dateCouranteIn: _cU_, - categorieEquivalenceLoyerD84216In: _cT_}; - } - function calcul_allocation_logement_foy$2(calcul_allocation_logement_foy){ - var - _cI_ = - categorie_equivalence_loyer_al$0 - (calcul_allocation_logement_foy.categorieEquivalenceLoyerD84216In), - _cJ_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_foy.dateCouranteIn), - _cK_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_foy.zoneIn), - _cL_ = - situation_familiale_calcul_a_p$0 - (calcul_allocation_logement_foy.situationFamilialeCalculAplIn), - _cM_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_foy.nombrePersonnesAChargeIn), - _cN_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.ressourcesMenageArrondiesIn), - _cO_ = caml_call1(Runtime_ocaml_Runtime[33], _cN_), - _cP_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.redevanceIn), - _cQ_ = caml_call1(Runtime_ocaml_Runtime[33], _cP_), - _cR_ = collectivite_of_jsoo(calcul_allocation_logement_foy.residenceIn), - _cS_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_foy.dateConventionnementIn); - return [0, - type_logement_foyer_of_jsoo - (calcul_allocation_logement_foy.typeLogementFoyerIn), - _cS_, - _cR_, - _cQ_, - _cO_, - _cM_, - _cL_, - _cK_, - _cJ_, - _cI_]; - } - function calcul_allocation_logement_in_(calcul_allocation_logement_in){ - var - _cB_ = collectivite_to_jsoo(calcul_allocation_logement_in[8]), - _cC_ = type_aides_personnelle_logemen(calcul_allocation_logement_in[7]), - _cD_ = - caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_in[6]), - _cE_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_in[5]), - _cF_ = - caml_call1(Runtime_ocaml_Runtime[48], calcul_allocation_logement_in[4]), - _cG_ = situation_familiale_to_jsoo(calcul_allocation_logement_in[3]), - _cH_ = - caml_call1(Runtime_ocaml_Runtime[35], calcul_allocation_logement_in[2]); - return {modeOccupationIn: - mode_occupation_to_jsoo(calcul_allocation_logement_in[1]), - ressourcesMenageSansArrondiIn: _cH_, - situationFamilialeIn: _cG_, - nombrePersonnesAChargeIn: _cF_, - zoneIn: _cE_, - dateCouranteIn: _cD_, - typeAideIn: _cC_, - residenceIn: _cB_}; - } - function calcul_allocation_logement_in_$0(calcul_allocation_logement_in){ - var - _ct_ = collectivite_of_jsoo(calcul_allocation_logement_in.residenceIn), - _cu_ = - type_aides_personnelle_logemen$0 - (calcul_allocation_logement_in.typeAideIn), - _cv_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_in.dateCouranteIn), - _cw_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_in.zoneIn), - _cx_ = - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_in.nombrePersonnesAChargeIn), - _cy_ = - situation_familiale_of_jsoo - (calcul_allocation_logement_in.situationFamilialeIn), - _cz_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_in.ressourcesMenageSansArrondiIn), - _cA_ = caml_call1(Runtime_ocaml_Runtime[33], _cz_); - return [0, - mode_occupation_of_jsoo - (calcul_allocation_logement_in.modeOccupationIn), - _cA_, - _cy_, - _cx_, - _cw_, - _cv_, - _cu_, - _ct_]; - } - function ouverture_droits_retraite_in_t(ouverture_droits_retraite_in){ - return {dateNaissanceAssureIn: - caml_call1 - (Runtime_jsoo_Runtime[5], ouverture_droits_retraite_in[1])}; - } - function ouverture_droits_retraite_in_o(ouverture_droits_retraite_in){ - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - ouverture_droits_retraite_in.dateNaissanceAssureIn)]; - } - function impaye_depense_logement_in_to_(impaye_depense_logement_in){ - var - _co_ = - caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement_in[6]), - _cp_ = depense_logement_to_jsoo(impaye_depense_logement_in[5]), - _cq_ = - caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement_in[4]), - _cr_ = - caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement_in[3]), - _cs_ = versement_a_to_jsoo(impaye_depense_logement_in[2]); - return {modeOccupationIn: - mode_occupation_to_jsoo(impaye_depense_logement_in[1]), - aideVerseeIn: _cs_, - montantAplIn: _cr_, - montantChargesIn: _cq_, - depenseLogementIn: _cp_, - montantDetteIn: _co_}; - } - function impaye_depense_logement_in_of_(impaye_depense_logement_in){ - var - _cg_ = - caml_call1 - (Runtime_ocaml_Runtime[42], impaye_depense_logement_in.montantDetteIn), - _ch_ = caml_call1(Runtime_ocaml_Runtime[33], _cg_), - _ci_ = - depense_logement_of_jsoo(impaye_depense_logement_in.depenseLogementIn), - _cj_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - impaye_depense_logement_in.montantChargesIn), - _ck_ = caml_call1(Runtime_ocaml_Runtime[33], _cj_), - _cl_ = - caml_call1 - (Runtime_ocaml_Runtime[42], impaye_depense_logement_in.montantAplIn), - _cm_ = caml_call1(Runtime_ocaml_Runtime[33], _cl_), - _cn_ = versement_a_of_jsoo(impaye_depense_logement_in.aideVerseeIn); - return [0, - mode_occupation_of_jsoo - (impaye_depense_logement_in.modeOccupationIn), - _cn_, - _cm_, - _ck_, - _ci_, - _ch_]; - } - function calculette_aides_au_logement_i(calculette_aides_au_logement_i){ - var - _cd_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calculette_aides_au_logement_i[4]), - _ce_ = - caml_call1(Runtime_jsoo_Runtime[5], calculette_aides_au_logement_i[3]), - _cf_ = demandeur_to_jsoo(calculette_aides_au_logement_i[2]); - return {menageIn: menage_to_jsoo(calculette_aides_au_logement_i[1]), - demandeurIn: _cf_, - dateCouranteIn: _ce_, - ressourcesMenagePrisesEnCompteIn: _cd_}; - } - function calculette_aides_au_logement_i$0(calculette_aides_au_logement_i){ - var - _b$_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calculette_aides_au_logement_i.ressourcesMenagePrisesEnCompteIn), - _ca_ = caml_call1(Runtime_ocaml_Runtime[33], _b$_), - _cb_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calculette_aides_au_logement_i.dateCouranteIn), - _cc_ = demandeur_of_jsoo(calculette_aides_au_logement_i.demandeurIn); - return [0, - menage_of_jsoo(calculette_aides_au_logement_i.menageIn), - _cc_, - _cb_, - _ca_]; - } - function calculette_aides_au_logement_g$1(calculette_aides_au_logement_g){ - var - _b8_ = - caml_call1 - (Runtime_ocaml_Runtime[35], calculette_aides_au_logement_g[4]), - _b9_ = - caml_call1(Runtime_jsoo_Runtime[5], calculette_aides_au_logement_g[3]), - _b__ = demandeur_to_jsoo(calculette_aides_au_logement_g[2]); - return {menageIn: menage_to_jsoo(calculette_aides_au_logement_g[1]), - demandeurIn: _b__, - dateCouranteIn: _b9_, - ressourcesMenagePrisesEnCompteIn: _b8_}; - } - function calculette_aides_au_logement_g$2(calculette_aides_au_logement_g){ - var - _b4_ = - caml_call1 - (Runtime_ocaml_Runtime[42], - calculette_aides_au_logement_g.ressourcesMenagePrisesEnCompteIn), - _b5_ = caml_call1(Runtime_ocaml_Runtime[33], _b4_), - _b6_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - calculette_aides_au_logement_g.dateCouranteIn), - _b7_ = demandeur_of_jsoo(calculette_aides_au_logement_g.demandeurIn); - return [0, - menage_of_jsoo(calculette_aides_au_logement_g.menageIn), - _b7_, - _b6_, - _b5_]; - } - function base_mensuelle_allocations_fam$1(base_mensuelle_allocations_fam){ - return {dateCouranteIn: - caml_call1 - (Runtime_jsoo_Runtime[5], base_mensuelle_allocations_fam[1])}; - } - function base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam){ - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - base_mensuelle_allocations_fam.dateCouranteIn)]; - } - function verification_age_inferieur_ou_$1(verification_age_inferieur_ou_){ - var - _b2_ = - caml_call1(Runtime_jsoo_Runtime[3], verification_age_inferieur_ou_[3]), - _b3_ = - caml_call1(Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[2]); - return {dateNaissanceIn: - caml_call1 - (Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[1]), - dateCouranteIn: _b3_, - anneesIn: _b2_}; - } - function verification_age_inferieur_ou_$2(verification_age_inferieur_ou_){ - var - _b0_ = - caml_call1 - (Runtime_jsoo_Runtime[2], verification_age_inferieur_ou_.anneesIn), - _b1_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateNaissanceIn), - _b1_, - _b0_]; - } - function verification_age_superieur_a_i(verification_age_superieur_a_i){ - var - _bY_ = - caml_call1(Runtime_jsoo_Runtime[3], verification_age_superieur_a_i[3]), - _bZ_ = - caml_call1(Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[2]); - return {dateNaissanceIn: - caml_call1 - (Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[1]), - dateCouranteIn: _bZ_, - anneesIn: _bY_}; - } - function verification_age_superieur_a_i$0(verification_age_superieur_a_i){ - var - _bW_ = - caml_call1 - (Runtime_jsoo_Runtime[2], verification_age_superieur_a_i.anneesIn), - _bX_ = - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateNaissanceIn), - _bX_, - _bW_]; - } - function smic_in_to_jsoo(smic_in){ - var _bV_ = collectivite_to_jsoo(smic_in[2]); - return {dateCouranteIn: caml_call1(Runtime_jsoo_Runtime[5], smic_in[1]), - residenceIn: _bV_}; - } - function smic_in_of_jsoo(smic_in){ - var _bU_ = collectivite_of_jsoo(smic_in.residenceIn); - return [0, - caml_call1(Runtime_jsoo_Runtime[4], smic_in.dateCouranteIn), - _bU_]; - } - function eligibilite_prestations_famili$1(eligibilite_prestations_famili){ - function t976(param){ - return caml_js_wrap_meth_callback - (function(param, function_input0){ - var - _bT_ = - caml_call1 - (eligibilite_prestations_famili[4], function_input0); - return caml_call1(Runtime_jsoo_Runtime[3], _bT_); - }); - } - var - t975 = collectivite_to_jsoo(eligibilite_prestations_famili[3]), - t974 = element_prestations_familiales(eligibilite_prestations_famili[2]), - t973 = - caml_call1(Runtime_jsoo_Runtime[5], eligibilite_prestations_famili[1]); - return {dateCouranteIn: t973, - prestationCouranteIn: t974, - residenceIn: t975, - ageL51232In: caml_js_wrap_meth_callback(t976)}; - } - function eligibilite_prestations_famili$2(eligibilite_prestations_famili){ - var - _bQ_ = caml_call1(Stdlib[2], cst_The_function_age_l512_3_2_), - _bR_ = collectivite_of_jsoo(eligibilite_prestations_famili.residenceIn), - _bS_ = - element_prestations_familiales$0 - (eligibilite_prestations_famili.prestationCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_prestations_famili.dateCouranteIn), - _bS_, - _bR_, - _bQ_]; - } - function contributions_sociales_aides_p$3(contributions_sociales_aides_p$0){ - var - _bP_ = contributions_sociales_aides_p$2(contributions_sociales_aides_p$0); - return contributions_sociales_aides_p - (caml_call1(Law_source_Aides_logement[223], _bP_)); - } - function calcul_equivalence_loyer_minim$3(calcul_equivalence_loyer_minim$0){ - var - _bO_ = calcul_equivalence_loyer_minim$2(calcul_equivalence_loyer_minim$0); - return calcul_equivalence_loyer_minim - (caml_call1(Law_source_Aides_logement[224], _bO_)); - } - function calcul_nombre_part_logement_fo$3(calcul_nombre_part_logement_fo$0){ - var - _bN_ = calcul_nombre_part_logement_fo$2(calcul_nombre_part_logement_fo$0); - return calcul_nombre_part_logement_fo - (caml_call1(Law_source_Aides_logement[225], _bN_)); - } - function calcul_nombre_parts_accession_$3(calcul_nombre_parts_accession_$0){ - var - _bM_ = calcul_nombre_parts_accession_$2(calcul_nombre_parts_accession_$0); - return calcul_nombre_parts_accession_ - (caml_call1(Law_source_Aides_logement[226], _bM_)); - } - function ouverture_droits_retraite(ouverture_droits_retraite_in){ - var _bL_ = ouverture_droits_retraite_in_o(ouverture_droits_retraite_in); - return ouverture_droits_retraite_to_j - (caml_call1(Law_source_Aides_logement[227], _bL_)); - } - function impaye_depense_logement(impaye_depense_logement_in){ - var _bK_ = impaye_depense_logement_in_of_(impaye_depense_logement_in); - return impaye_depense_logement_to_jso - (caml_call1(Law_source_Aides_logement[228], _bK_)); - } - function base_mensuelle_allocations_fam$3(base_mensuelle_allocations_fam$0){ - var - _bJ_ = base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam$0); - return base_mensuelle_allocations_fam - (caml_call1(Law_source_Aides_logement[229], _bJ_)); - } - function verification_age_inferieur_ou_$3(verification_age_inferieur_ou_$0){ - var - _bI_ = verification_age_inferieur_ou_$2(verification_age_inferieur_ou_$0); - return verification_age_inferieur_ou_ - (caml_call1(Law_source_Aides_logement[230], _bI_)); - } - function verification_age_superieur_a(verification_age_superieur_a_i){ - var - _bH_ = verification_age_superieur_a_i$0(verification_age_superieur_a_i); - return verification_age_superieur_a_t - (caml_call1(Law_source_Aides_logement[231], _bH_)); - } - function smic(smic_in){ - var _bG_ = smic_in_of_jsoo(smic_in); - return smic_to_jsoo(caml_call1(Law_source_Aides_logement[232], _bG_)); - } - function calcul_aide_personnalisee_loge$15 - (calcul_aide_personnalisee_loge$0){ - var - _bF_ = calcul_aide_personnalisee_loge$8(calcul_aide_personnalisee_loge$0); - return calcul_aide_personnalisee_loge - (caml_call1(Law_source_Aides_logement[235], _bF_)); - } - function calcul_aide_personnalisee_loge$16(calcul_aide_personnalisee_loge){ - var - _bE_ = calcul_aide_personnalisee_loge$10(calcul_aide_personnalisee_loge); - return calcul_aide_personnalisee_loge$1 - (caml_call1(Law_source_Aides_logement[236], _bE_)); - } - function calcul_aide_personnalisee_loge$17(calcul_aide_personnalisee_loge){ - var - _bD_ = calcul_aide_personnalisee_loge$12(calcul_aide_personnalisee_loge); - return calcul_aide_personnalisee_loge$3 - (caml_call1(Law_source_Aides_logement[237], _bD_)); - } - function ressources_aides_personnelle_l$3(ressources_aides_personnelle_l$0){ - var - _bC_ = ressources_aides_personnelle_l$2(ressources_aides_personnelle_l$0); - return ressources_aides_personnelle_l - (caml_call1(Law_source_Aides_logement[238], _bC_)); - } - function eligibilite_prestations_famili$3(eligibilite_prestations_famili$0){ - var - _bB_ = eligibilite_prestations_famili$2(eligibilite_prestations_famili$0); - return eligibilite_prestations_famili - (caml_call1(Law_source_Aides_logement[239], _bB_)); - } - function calcul_allocation_logement_loc$3(calcul_allocation_logement_loc$0){ - var - _bA_ = calcul_allocation_logement_loc$2(calcul_allocation_logement_loc$0); - return calcul_allocation_logement_loc - (caml_call1(Law_source_Aides_logement[240], _bA_)); - } - function calcul_allocation_logement_foy$3(calcul_allocation_logement_foy$0){ - var - _bz_ = calcul_allocation_logement_foy$2(calcul_allocation_logement_foy$0); - return calcul_allocation_logement_foy - (caml_call1(Law_source_Aides_logement[241], _bz_)); - } - function calcul_allocation_logement_acc$3(calcul_allocation_logement_acc$0){ - var - _by_ = calcul_allocation_logement_acc$2(calcul_allocation_logement_acc$0); - return calcul_allocation_logement_acc - (caml_call1(Law_source_Aides_logement[242], _by_)); - } - function calcul_aide_personnalisee_loge$18(calcul_aide_personnalisee_loge){ - var - _bx_ = calcul_aide_personnalisee_loge$14(calcul_aide_personnalisee_loge); - return calcul_aide_personnalisee_loge$5 - (caml_call1(Law_source_Aides_logement[243], _bx_)); - } - function eligibilite_aides_personnelle_$3(eligibilite_aides_personnelle_$0){ - var - _bw_ = eligibilite_aides_personnelle_$2(eligibilite_aides_personnelle_$0); - return eligibilite_aides_personnelle_ - (caml_call1(Law_source_Aides_logement[244], _bw_)); - } - function calcul_allocation_logement(calcul_allocation_logement_in){ - var - _bv_ = calcul_allocation_logement_in_$0(calcul_allocation_logement_in); - return calcul_allocation_logement_to_ - (caml_call1(Law_source_Aides_logement[245], _bv_)); - } - function eligibilite_prime_de_demenagem$3(eligibilite_prime_de_demenagem$0){ - var - _bu_ = eligibilite_prime_de_demenagem$2(eligibilite_prime_de_demenagem$0); - return eligibilite_prime_de_demenagem - (caml_call1(Law_source_Aides_logement[246], _bu_)); - } - function eligibilite_allocation_logemen$3(eligibilite_allocation_logemen$0){ - var - _bt_ = eligibilite_allocation_logemen$2(eligibilite_allocation_logemen$0); - return eligibilite_allocation_logemen - (caml_call1(Law_source_Aides_logement[247], _bt_)); - } - function eligibilite_aide_personnalisee$3(eligibilite_aide_personnalisee$0){ - var - _bs_ = eligibilite_aide_personnalisee$2(eligibilite_aide_personnalisee$0); - return eligibilite_aide_personnalisee - (caml_call1(Law_source_Aides_logement[248], _bs_)); - } - function calculette_aides_au_logement(calculette_aides_au_logement_i){ - var - _br_ = calculette_aides_au_logement_i$0(calculette_aides_au_logement_i); - return calculette_aides_au_logement_t - (caml_call1(Law_source_Aides_logement[249], _br_)); - } - function calculette_aides_au_logement_g$3(calculette_aides_au_logement_g$0){ - var - _bq_ = calculette_aides_au_logement_g$2(calculette_aides_au_logement_g$0); - return calculette_aides_au_logement_g - (caml_call1(Law_source_Aides_logement[250], _bq_)); - } - function t1005(param){ - return caml_js_wrap_callback(calculette_aides_au_logement_g$3); - } - function t1004(param){ - return caml_js_wrap_callback(calculette_aides_au_logement); - } - function t1003(param){ - return caml_js_wrap_callback(eligibilite_aide_personnalisee$3); - } - function t1002(param){ - return caml_js_wrap_callback(eligibilite_allocation_logemen$3); - } - function t1001(param){ - return caml_js_wrap_callback(eligibilite_prime_de_demenagem$3); - } - function t1000(param){ - return caml_js_wrap_callback(calcul_allocation_logement); - } - function t999(param){ - return caml_js_wrap_callback(eligibilite_aides_personnelle_$3); - } - function t998(param){ - return caml_js_wrap_callback(calcul_aide_personnalisee_loge$18); - } - function t997(param){ - return caml_js_wrap_callback(calcul_allocation_logement_acc$3); - } - function t996(param){ - return caml_js_wrap_callback(calcul_allocation_logement_foy$3); - } - function t995(param){ - return caml_js_wrap_callback(calcul_allocation_logement_loc$3); - } - function t994(param){ - return caml_js_wrap_callback(eligibilite_prestations_famili$3); - } - function t993(param){ - return caml_js_wrap_callback(ressources_aides_personnelle_l$3); - } - function t992(param){ - return caml_js_wrap_callback(calcul_aide_personnalisee_loge$17); - } - function t991(param){ - return caml_js_wrap_callback(calcul_aide_personnalisee_loge$16); - } - function t990(param){ - return caml_js_wrap_callback(calcul_aide_personnalisee_loge$15); - } - function t989(param){return caml_js_wrap_callback(smic);} - function t988(param){ - return caml_js_wrap_callback(verification_age_superieur_a); - } - function t987(param){ - return caml_js_wrap_callback(verification_age_inferieur_ou_$3); - } - function t986(param){ - return caml_js_wrap_callback(base_mensuelle_allocations_fam$3); - } - function t985(param){ - return caml_js_wrap_callback(impaye_depense_logement); - } - function t984(param){ - return caml_js_wrap_callback(ouverture_droits_retraite); - } - function t983(param){ - return caml_js_wrap_callback(calcul_nombre_parts_accession_$3); - } - function t982(param){ - return caml_js_wrap_callback(calcul_nombre_part_logement_fo$3); - } - function t981(param){ - return caml_js_wrap_callback(calcul_equivalence_loyer_minim$3); - } - function t980(param){ - return caml_js_wrap_callback(contributions_sociales_aides_p$3); - } - caml_call2 - (Js_of_ocaml_Js[50], - cst_AidesLogementLib, - {contributionsSocialesAidesPersonnelleLogement: - caml_js_wrap_meth_callback(t980), - calculEquivalenceLoyerMinimale: caml_js_wrap_meth_callback(t981), - calculNombrePartLogementFoyer: caml_js_wrap_meth_callback(t982), - calculNombrePartsAccessionPropriete: caml_js_wrap_meth_callback(t983), - ouvertureDroitsRetraite: caml_js_wrap_meth_callback(t984), - impayeDepenseLogement: caml_js_wrap_meth_callback(t985), - baseMensuelleAllocationsFamiliales: caml_js_wrap_meth_callback(t986), - verificationAgeInferieurOuEgalA: caml_js_wrap_meth_callback(t987), - verificationAgeSuperieurA: caml_js_wrap_meth_callback(t988), - smic: caml_js_wrap_meth_callback(t989), - calculAidePersonnaliseeLogementLocatif: caml_js_wrap_meth_callback(t990), - calculAidePersonnaliseeLogementFoyer: caml_js_wrap_meth_callback(t991), - calculAidePersonnaliseeLogementAccessionPropriete: - caml_js_wrap_meth_callback(t992), - ressourcesAidesPersonnelleLogement: caml_js_wrap_meth_callback(t993), - eligibilitePrestationsFamiliales: caml_js_wrap_meth_callback(t994), - calculAllocationLogementLocatif: caml_js_wrap_meth_callback(t995), - calculAllocationLogementFoyer: caml_js_wrap_meth_callback(t996), - calculAllocationLogementAccessionPropriete: - caml_js_wrap_meth_callback(t997), - calculAidePersonnaliseeLogement: caml_js_wrap_meth_callback(t998), - eligibiliteAidesPersonnelleLogement: caml_js_wrap_meth_callback(t999), - calculAllocationLogement: caml_js_wrap_meth_callback(t1000), - eligibilitePrimeDeDemenagement: caml_js_wrap_meth_callback(t1001), - eligibiliteAllocationLogement: caml_js_wrap_meth_callback(t1002), - eligibiliteAidePersonnaliseeLogement: caml_js_wrap_meth_callback(t1003), - calculetteAidesAuLogement: caml_js_wrap_meth_callback(t1004), - calculetteAidesAuLogementGardeAlternee: - caml_js_wrap_meth_callback(t1005)}); - var - Law_source_Aides_logement_api_ = + caml_register_global + (9736,Law_source_Aides_logement,"Law_source__Aides_logement"); + function type_pret_to_jsoo(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"D331_32","payload":arg}; + case 1: + var arg$0=param[1];return {"kind":"D331_63_64","payload":arg$0}; + case 2:var arg$1=param[1];return {"kind":"D331_59_8","payload":arg$1}; + case 3:var arg$2=param[1];return {"kind":"D331_76_1","payload":arg$2}; + default:var arg$3=param[1];return {"kind":"Autre","payload":arg$3}}} + function type_pret_of_jsoo(type_pret) + {var cons=caml_string_of_jsstring(type_pret.kind); + if(! caml_string_notequal(cons,cst_Autre$2))return _acu_; + if(! caml_string_notequal(cons,cst_D331_32$0))return _act_; + if(! caml_string_notequal(cons,cst_D331_59_8$0))return _acs_; + if(! caml_string_notequal(cons,cst_D331_63_64$0))return _acr_; + if(! caml_string_notequal(cons,cst_D331_76_1$0))return _acq_; + var _alD_=caml_call2(Stdlib_Printf[4],_acp_,cons); + return caml_call1(Stdlib[2],_alD_)} + function titulaire_pret_to_jsoo(param) + {if(0 === param[0]) + {var arg=param[1];return {"kind":"Demandeur","payload":arg}} + var arg$0=param[1]; + return {"kind":"VendeurQuandDemandeurAContratLocationAccession", + "payload":arg$0}} + function titulaire_pret_of_jsoo(titulaire_pret) + {var cons=caml_string_of_jsstring(titulaire_pret.kind); + if(! caml_string_notequal(cons,cst_Demandeur$0))return _acx_; + if(! caml_string_notequal(cons,cst_VendeurQuandDemandeurACont$0)) + return _acw_; + var _alC_=caml_call2(Stdlib_Printf[4],_acv_,cons); + return caml_call1(Stdlib[2],_alC_)} + function type_travaux_logement_d832_15_(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"TravauxPourAcquisitionD832_15_1","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"TravauxSurLogementDejaAcquisD832_15_2", + "payload":arg$0}; + default: + var arg$1=param[1];return {"kind":"PasDeTravaux","payload":arg$1}}} + function type_travaux_logement_d832_15_$0(type_travaux_logement_d832_15) + {var cons=caml_string_of_jsstring(type_travaux_logement_d832_15.kind); + if(! caml_string_notequal(cons,cst_PasDeTravaux$1))return _acB_; + if(! caml_string_notequal(cons,cst_TravauxPourAcquisitionD832$0)) + return _acA_; + if(! caml_string_notequal(cons,cst_TravauxSurLogementDejaAcqu)) + return _acz_; + var _alB_=caml_call2(Stdlib_Printf[4],_acy_,cons); + return caml_call1(Stdlib[2],_alB_)} + function type_travaux_logement_r842_5_t(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"ObjectifDecenceLogement","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"PrevuDansListeR321_15","payload":arg$0}; + case 2: + var arg$1=param[1]; + return {"kind":"AgrandirOuRendreHabitableD331_63","payload":arg$1}; + default: + var arg$2=param[1];return {"kind":"PasDeTravaux","payload":arg$2}}} + function type_travaux_logement_r842_5_o(type_travaux_logement_r842_5) + {var cons=caml_string_of_jsstring(type_travaux_logement_r842_5.kind); + if(! caml_string_notequal(cons,cst_AgrandirOuRendreHabitableD$0)) + return _acG_; + if(! caml_string_notequal(cons,cst_ObjectifDecenceLogement)) + return _acF_; + if(! caml_string_notequal(cons,cst_PasDeTravaux$2))return _acE_; + if(! caml_string_notequal(cons,cst_PrevuDansListeR321_15))return _acD_; + var _alA_=caml_call2(Stdlib_Printf[4],_acC_,cons); + return caml_call1(Stdlib[2],_alA_)} + function ameliore_par_occupant_to_jsoo(param) + {if(0 === param[0]){var arg=param[1];return {"kind":"Oui","payload":arg}} + var arg$0=param[1]; + return {"kind":"Non","payload":arg$0}} + function ameliore_par_occupant_of_jsoo(ameliore_par_occupant) + {var cons=caml_string_of_jsstring(ameliore_par_occupant.kind); + if(! caml_string_notequal(cons,cst_Non$2))return _acJ_; + if(! caml_string_notequal(cons,cst_Oui$1))return _acI_; + var _alz_=caml_call2(Stdlib_Printf[4],_acH_,cons); + return caml_call1(Stdlib[2],_alz_)} + function limite_tranche_to_jsoo(param) + {if(0 === param[0]) + {var arg=param[1],t38=caml_call1(Runtime_ocaml_Runtime[35],arg); + return {"kind":"Revenu","payload":t38}} + var arg$0=param[1]; + return {"kind":"Infini","payload":arg$0}} + function limite_tranche_of_jsoo(limite_tranche) + {var cons=caml_string_of_jsstring(limite_tranche.kind); + if(! caml_string_notequal(cons,cst_Infini$1))return _acL_; + if(caml_string_notequal(cons,cst_Revenu$1)) + {var _alx_=caml_call2(Stdlib_Printf[4],_acK_,cons); + return caml_call1(Stdlib[2],_alx_)} + var _aly_=caml_call1(Runtime_ocaml_Runtime[42],limite_tranche.payload); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_aly_)]} + function limite_tranche_decimal_to_jsoo(param) + {if(0 === param[0]) + {var arg=param[1],t44=caml_call1(Runtime_ocaml_Runtime[43],arg); + return {"kind":"Revenu","payload":t44}} + var arg$0=param[1]; + return {"kind":"Infini","payload":arg$0}} + function limite_tranche_decimal_of_jsoo(limite_tranche_decimal) + {var cons=caml_string_of_jsstring(limite_tranche_decimal.kind); + if(! caml_string_notequal(cons,cst_Infini$2))return _acN_; + if(! caml_string_notequal(cons,cst_Revenu$2)) + return [0, + caml_call1 + (Runtime_ocaml_Runtime[42],limite_tranche_decimal.payload)]; + var _alw_=caml_call2(Stdlib_Printf[4],_acM_,cons); + return caml_call1(Stdlib[2],_alw_)} + function prestation_recue_to_jsoo(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"AllocationsFamiliales","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"ComplementFamilial","payload":arg$0}; + case 2: + var arg$1=param[1]; + return {"kind":"AllocationJeuneEnfant","payload":arg$1}; + case 3: + var arg$2=param[1]; + return {"kind":"AllocationSoutienFamilial","payload":arg$2}; + case 4: + var arg$3=param[1]; + return {"kind":"AllocationSoutienEnfantHandicape","payload":arg$3}; + default: + var arg$4=param[1]; + return {"kind":"AllocationAdulteHandicape","payload":arg$4}}} + function prestation_recue_of_jsoo(prestation_recue) + {var cons=caml_string_of_jsstring(prestation_recue.kind); + if(! caml_string_notequal(cons,cst_AllocationAdulteHandicape)) + return _acU_; + if(! caml_string_notequal(cons,cst_AllocationJeuneEnfant$0)) + return _acT_; + if(! caml_string_notequal(cons,cst_AllocationSoutienEnfantHan$0)) + return _acS_; + if(! caml_string_notequal(cons,cst_AllocationSoutienFamilial$3)) + return _acR_; + if(! caml_string_notequal(cons,cst_AllocationsFamiliales$3)) + return _acQ_; + if(! caml_string_notequal(cons,cst_ComplementFamilial$0))return _acP_; + var _alv_=caml_call2(Stdlib_Printf[4],_acO_,cons); + return caml_call1(Stdlib[2],_alv_)} + function parent_ou_autre_to_jsoo(param) + {if(0 === param[0]) + {var arg=param[1],t63=caml_call1(Runtime_ocaml_Runtime[43],arg); + return {"kind":"DemandeurOuConjointOuParentOuViaPartsSocietes", + "payload":t63}} + var arg$0=param[1]; + return {"kind":"Autre","payload":arg$0}} + function parent_ou_autre_of_jsoo(parent_ou_autre) + {var cons=caml_string_of_jsstring(parent_ou_autre.kind); + if(! caml_string_notequal(cons,cst_Autre$3))return _acW_; + if(! caml_string_notequal(cons,cst_DemandeurOuConjointOuParen$0)) + return [0, + caml_call1(Runtime_ocaml_Runtime[42],parent_ou_autre.payload)]; + var _alu_=caml_call2(Stdlib_Printf[4],_acV_,cons); + return caml_call1(Stdlib[2],_alu_)} + function situation_garde_alternee_to_js(param) + {if(0 === param[0]) + {var arg=param[1];return {"kind":"PasDeGardeAlternee","payload":arg}} + var arg$0=param[1],t71=caml_call1(Runtime_ocaml_Runtime[43],arg$0); + return {"kind":"GardeAlterneeCoefficientPriseEnCharge","payload":t71}} + function situation_garde_alternee_of_js(situation_garde_alternee) + {var cons=caml_string_of_jsstring(situation_garde_alternee.kind); + if(! caml_string_notequal(cons,cst_GardeAlterneeCoefficientPr)) + return [1, + caml_call1 + (Runtime_ocaml_Runtime[42],situation_garde_alternee.payload)]; + if(! caml_string_notequal(cons,cst_PasDeGardeAlternee))return _acY_; + var _alt_=caml_call2(Stdlib_Printf[4],_acX_,cons); + return caml_call1(Stdlib[2],_alt_)} + function parente_to_jsoo(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"Ascendant","payload":arg}; + case 1: + var arg$0=param[1];return {"kind":"Descendant","payload":arg$0}; + default: + var arg$1=param[1]; + return {"kind":"CollateralDeuxiemeTroisiemeDegre","payload":arg$1}}} + function parente_of_jsoo(parente) + {var cons=caml_string_of_jsstring(parente.kind); + if(! caml_string_notequal(cons,cst_Ascendant$0))return _ac2_; + if(! caml_string_notequal(cons,cst_CollateralDeuxiemeTroisiem)) + return _ac1_; + if(! caml_string_notequal(cons,cst_Descendant$0))return _ac0_; + var _als_=caml_call2(Stdlib_Printf[4],_acZ_,cons); + return caml_call1(Stdlib[2],_als_)} + function date_de_naissance_ou_mois_de_g(param) + {switch(param[0]) + {case 0: + var arg=param[1],t82=caml_call1(Runtime_jsoo_Runtime[5],arg); + return {"kind":"DateDeNaissance","payload":t82}; + case 1: + var arg$0=param[1]; + return {"kind":"AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse", + "payload":arg$0}; + default: + var arg$1=param[1]; + return {"kind":"ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse", + "payload":arg$1}}} + function date_de_naissance_ou_mois_de_g$0(date_de_naissance_ou_mois_de_g) + {var cons=caml_string_of_jsstring(date_de_naissance_ou_mois_de_g.kind); + if(! caml_string_notequal(cons,cst_ApresPremierJourMoisCivilT)) + return _ac5_; + if(! caml_string_notequal(cons,cst_AvantPremierJourMoisCivilT$0)) + return _ac4_; + if(! caml_string_notequal(cons,cst_DateDeNaissance$0)) + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + date_de_naissance_ou_mois_de_g.payload)]; + var _alr_=caml_call2(Stdlib_Printf[4],_ac3_,cons); + return caml_call1(Stdlib[2],_alr_)} + function zone_d_habitation_to_jsoo(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"Zone1","payload":arg}; + case 1:var arg$0=param[1];return {"kind":"Zone2","payload":arg$0}; + default:var arg$1=param[1];return {"kind":"Zone3","payload":arg$1}}} + function zone_d_habitation_of_jsoo(zone_d_habitation) + {var cons=caml_string_of_jsstring(zone_d_habitation.kind); + if(! caml_string_notequal(cons,cst_Zone1$0))return _ac9_; + if(! caml_string_notequal(cons,cst_Zone2$0))return _ac8_; + if(! caml_string_notequal(cons,cst_Zone3$0))return _ac7_; + var _alq_=caml_call2(Stdlib_Printf[4],_ac6_,cons); + return caml_call1(Stdlib[2],_alq_)} + function paiement_logement_distinct_pro(param) + {if(0 === param[0]) + {var arg=param[1],t97=caml_call1(Runtime_ocaml_Runtime[35],arg); + return {"kind":"OuiAvecLoyerOuCharges","payload":t97}} + var arg$0=param[1]; + return {"kind":"Non","payload":arg$0}} + function paiement_logement_distinct_pro$0(paiement_logement_distinct_pro) + {var cons=caml_string_of_jsstring(paiement_logement_distinct_pro.kind); + if(! caml_string_notequal(cons,cst_Non$3))return _ac$_; + if(caml_string_notequal(cons,cst_OuiAvecLoyerOuCharges$0)) + {var _alo_=caml_call2(Stdlib_Printf[4],_ac__,cons); + return caml_call1(Stdlib[2],_alo_)} + var + _alp_= + caml_call1 + (Runtime_ocaml_Runtime[42],paiement_logement_distinct_pro.payload); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_alp_)]} + function versement_a_to_jsoo(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"Bailleur","payload":arg}; + case 1: + var arg$0=param[1];return {"kind":"Beneficiaire","payload":arg$0}; + default: + var arg$1=param[1]; + return {"kind":"EtablissementHabilite","payload":arg$1}}} + function versement_a_of_jsoo(versement_a) + {var cons=caml_string_of_jsstring(versement_a.kind); + if(! caml_string_notequal(cons,cst_Bailleur$0))return _add_; + if(! caml_string_notequal(cons,cst_Beneficiaire))return _adc_; + if(! caml_string_notequal(cons,cst_EtablissementHabilite))return _adb_; + var _aln_=caml_call2(Stdlib_Printf[4],_ada_,cons); + return caml_call1(Stdlib[2],_aln_)} + function depense_logement_to_jsoo(param) + {switch(param[0]) + {case 0: + var arg=param[1],t110=caml_call1(Runtime_ocaml_Runtime[35],arg); + return {"kind":"TotalAnnuelEcheances","payload":t110}; + case 1: + var arg$0=param[1],t112=caml_call1(Runtime_ocaml_Runtime[35],arg$0); + return {"kind":"Mensualite","payload":t112}; + default: + var arg$1=param[1],t114=caml_call1(Runtime_ocaml_Runtime[35],arg$1); + return {"kind":"Loyer","payload":t114}}} + function depense_logement_of_jsoo(depense_logement) + {var cons=caml_string_of_jsstring(depense_logement.kind); + if(! caml_string_notequal(cons,cst_Loyer$0)) + {var + _alm_= + caml_call1(Runtime_ocaml_Runtime[42],depense_logement.payload); + return [2,caml_call1(Runtime_ocaml_Runtime[33],_alm_)]} + if(! caml_string_notequal(cons,cst_Mensualite)) + {var + _all_= + caml_call1(Runtime_ocaml_Runtime[42],depense_logement.payload); + return [1,caml_call1(Runtime_ocaml_Runtime[33],_all_)]} + if(caml_string_notequal(cons,cst_TotalAnnuelEcheances)) + {var _alj_=caml_call2(Stdlib_Printf[4],_ade_,cons); + return caml_call1(Stdlib[2],_alj_)} + var + _alk_= + caml_call1(Runtime_ocaml_Runtime[42],depense_logement.payload); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_alk_)]} + function mode_occupation_impaye_to_jsoo(param) + {if(0 === param[0]) + {var arg=param[1];return {"kind":"ImpayeLoyer","payload":arg}} + var arg$0=param[1]; + return {"kind":"ImpayePret","payload":arg$0}} + function mode_occupation_impaye_of_jsoo(mode_occupation_impaye) + {var cons=caml_string_of_jsstring(mode_occupation_impaye.kind); + if(! caml_string_notequal(cons,cst_ImpayeLoyer))return _adh_; + if(! caml_string_notequal(cons,cst_ImpayePret))return _adg_; + var _ali_=caml_call2(Stdlib_Printf[4],_adf_,cons); + return caml_call1(Stdlib[2],_ali_)} + function type_eligibilite_allocation_lo(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"PasEligible","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"AllocationLogementFamiliale","payload":arg$0}; + default: + var arg$1=param[1]; + return {"kind":"AllocationLogementSociale","payload":arg$1}}} + function type_eligibilite_allocation_lo$0(type_eligibilite_allocation_lo) + {var cons=caml_string_of_jsstring(type_eligibilite_allocation_lo.kind); + if(! caml_string_notequal(cons,cst_AllocationLogementFamilial$1)) + return _adl_; + if(! caml_string_notequal(cons,cst_AllocationLogementSociale$1)) + return _adk_; + if(! caml_string_notequal(cons,cst_PasEligible))return _adj_; + var _alh_=caml_call2(Stdlib_Printf[4],_adi_,cons); + return caml_call1(Stdlib[2],_alh_)} + function accord_financement_representan(param) + {if(0 === param[0]) + {var arg=param[1],t132=caml_call1(Runtime_jsoo_Runtime[5],arg); + return {"kind":"Accord","payload":t132}} + var arg$0=param[1]; + return {"kind":"PasdAccord","payload":arg$0}} + function accord_financement_representan$0(accord_financement_representan) + {var cons=caml_string_of_jsstring(accord_financement_representan.kind); + if(! caml_string_notequal(cons,cst_Accord$0)) + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + accord_financement_representan.payload)]; + if(! caml_string_notequal(cons,cst_PasdAccord$0))return _adn_; + var _alg_=caml_call2(Stdlib_Printf[4],_adm_,cons); + return caml_call1(Stdlib[2],_alg_)} + function type_aides_personnelle_logemen(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"AidePersonnaliseeLogement","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"AllocationLogementFamiliale","payload":arg$0}; + default: + var arg$1=param[1]; + return {"kind":"AllocationLogementSociale","payload":arg$1}}} + function type_aides_personnelle_logemen$0(type_aides_personnelle_logemen) + {var cons=caml_string_of_jsstring(type_aides_personnelle_logemen.kind); + if(! caml_string_notequal(cons,cst_AidePersonnaliseeLogement)) + return _adr_; + if(! caml_string_notequal(cons,cst_AllocationLogementFamilial$2)) + return _adq_; + if(! caml_string_notequal(cons,cst_AllocationLogementSociale$2)) + return _adp_; + var _alf_=caml_call2(Stdlib_Printf[4],_ado_,cons); + return caml_call1(Stdlib[2],_alf_)} + function situation_familiale_to_jsoo(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"Celibataire","payload":arg}; + case 1: + var arg$0=param[1],t147=caml_call1(Runtime_jsoo_Runtime[5],arg$0); + return {"kind":"Maries","payload":t147}; + case 2:var arg$1=param[1];return {"kind":"Pacses","payload":arg$1}; + case 3:var arg$2=param[1];return {"kind":"Concubins","payload":arg$2}; + case 4: + var arg$3=param[1]; + return {"kind":"CelibataireSepareDeFait","payload":arg$3}; + default: + var arg$4=param[1]; + return {"kind":"ConcubinageDontSepareDeFait","payload":arg$4}}} + function situation_familiale_of_jsoo(situation_familiale) + {var cons=caml_string_of_jsstring(situation_familiale.kind); + if(! caml_string_notequal(cons,cst_Celibataire))return _adx_; + if(! caml_string_notequal(cons,cst_CelibataireSepareDeFait)) + return _adw_; + if(! caml_string_notequal(cons,cst_ConcubinageDontSepareDeFai)) + return _adv_; + if(! caml_string_notequal(cons,cst_Concubins$0))return _adu_; + if(! caml_string_notequal(cons,cst_Maries)) + return [1, + caml_call1(Runtime_jsoo_Runtime[4],situation_familiale.payload)]; + if(! caml_string_notequal(cons,cst_Pacses))return _adt_; + var _ale_=caml_call2(Stdlib_Printf[4],_ads_,cons); + return caml_call1(Stdlib[2],_ale_)} + function prise_en_charge_to_jsoo$0(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"EffectiveEtPermanente","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"ResidenceAlterneeAllocataireUnique","payload":arg$0}; + default: + var arg$1=param[1]; + return {"kind":"ResidenceAlterneeAllocationsPartagee", + "payload":arg$1}}} + function prise_en_charge_of_jsoo$0(prise_en_charge) + {var cons=caml_string_of_jsstring(prise_en_charge.kind); + if(! caml_string_notequal(cons,cst_EffectiveEtPermanente$3)) + return _adB_; + if(! caml_string_notequal(cons,cst_ResidenceAlterneeAllocatai)) + return _adA_; + if(! caml_string_notequal(cons,cst_ResidenceAlterneeAllocatio)) + return _adz_; + var _ald_=caml_call2(Stdlib_Printf[4],_ady_,cons); + return caml_call1(Stdlib[2],_ald_)} + function type_logement_foyer_to_jsoo(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"LogementPersonnesAgeesOuHandicapees","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"ResidenceSociale","payload":arg$0}; + case 2: + var arg$1=param[1]; + return {"kind": + "FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995", + "payload":arg$1}; + default:var arg$2=param[1];return {"kind":"Autre","payload":arg$2}}} + function type_logement_foyer_of_jsoo(type_logement_foyer) + {var cons=caml_string_of_jsstring(type_logement_foyer.kind); + if(! caml_string_notequal(cons,cst_Autre$4))return _adG_; + if(! caml_string_notequal(cons,cst_FoyerJeunesTrvailleursOuMi$0)) + return _adF_; + if(! caml_string_notequal(cons,cst_LogementPersonnesAgeesOuHa)) + return _adE_; + if(! caml_string_notequal(cons,cst_ResidenceSociale))return _adD_; + var _alc_=caml_call2(Stdlib_Printf[4],_adC_,cons); + return caml_call1(Stdlib[2],_alc_)} + function categorie_equivalence_loyer_al(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"EtudiantLogeEnChambreCROUS","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"EtudiantLogeEnChambreCROUSRehabilitee", + "payload":arg$0}; + case 2: + var arg$1=param[1]; + return {"kind":"PersonnesAgeesSelon3DeD842_16","payload":arg$1}; + default: + var arg$2=param[1];return {"kind":"AutresPersonnes","payload":arg$2}}} + function categorie_equivalence_loyer_al$0(categorie_equivalence_loyer_al) + {var cons=caml_string_of_jsstring(categorie_equivalence_loyer_al.kind); + if(! caml_string_notequal(cons,cst_AutresPersonnes$0))return _adL_; + if(! caml_string_notequal(cons,cst_EtudiantLogeEnChambreCROUS)) + return _adK_; + if(! caml_string_notequal(cons,cst_EtudiantLogeEnChambreCROUS$0)) + return _adJ_; + if(! caml_string_notequal(cons,cst_PersonnesAgeesSelon3DeD842)) + return _adI_; + var _alb_=caml_call2(Stdlib_Printf[4],_adH_,cons); + return caml_call1(Stdlib[2],_alb_)} + function situation_familiale_calcul_a_p(param) + {if(0 === param[0]) + {var arg=param[1];return {"kind":"PersonneSeule","payload":arg}} + var arg$0=param[1]; + return {"kind":"Couple","payload":arg$0}} + function situation_familiale_calcul_a_p$0(situation_familiale_calcul_a_p) + {var cons=caml_string_of_jsstring(situation_familiale_calcul_a_p.kind); + if(! caml_string_notequal(cons,cst_Couple$0))return _adO_; + if(! caml_string_notequal(cons,cst_PersonneSeule$0))return _adN_; + var _ala_=caml_call2(Stdlib_Printf[4],_adM_,cons); + return caml_call1(Stdlib[2],_ala_)} + function collectivite_to_jsoo$0(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"Guadeloupe","payload":arg}; + case 1:var arg$0=param[1];return {"kind":"Guyane","payload":arg$0}; + case 2: + var arg$1=param[1];return {"kind":"Martinique","payload":arg$1}; + case 3:var arg$2=param[1];return {"kind":"LaReunion","payload":arg$2}; + case 4: + var arg$3=param[1];return {"kind":"SaintBarthelemy","payload":arg$3}; + case 5: + var arg$4=param[1];return {"kind":"SaintMartin","payload":arg$4}; + case 6:var arg$5=param[1];return {"kind":"Metropole","payload":arg$5}; + case 7: + var arg$6=param[1]; + return {"kind":"SaintPierreEtMiquelon","payload":arg$6}; + default:var arg$7=param[1];return {"kind":"Mayotte","payload":arg$7}}} + function collectivite_of_jsoo$0(collectivite) + {var cons=caml_string_of_jsstring(collectivite.kind); + if(! caml_string_notequal(cons,cst_Guadeloupe$2))return _adY_; + if(! caml_string_notequal(cons,cst_Guyane$2))return _adX_; + if(! caml_string_notequal(cons,cst_LaReunion$0))return _adW_; + if(! caml_string_notequal(cons,cst_Martinique$2))return _adV_; + if(! caml_string_notequal(cons,cst_Mayotte$2))return _adU_; + if(! caml_string_notequal(cons,cst_Metropole$0))return _adT_; + if(! caml_string_notequal(cons,cst_SaintBarthelemy$0))return _adS_; + if(! caml_string_notequal(cons,cst_SaintMartin$2))return _adR_; + if(! caml_string_notequal(cons,cst_SaintPierreEtMiquelon$2)) + return _adQ_; + var _ak$_=caml_call2(Stdlib_Printf[4],_adP_,cons); + return caml_call1(Stdlib[2],_ak$_)} + function prise_en_charge_enfant_to_jsoo(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"GardeAlterneePartageAllocations","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"GardeAlterneeAllocataireUnique","payload":arg$0}; + case 2: + var arg$1=param[1]; + return {"kind":"EffectiveEtPermanente","payload":arg$1}; + case 3: + var arg$2=param[1]; + return {"kind":"ServicesSociauxAllocationVerseeALaFamille", + "payload":arg$2}; + default: + var arg$3=param[1]; + return {"kind":"ServicesSociauxAllocationVerseeAuxServicesSociaux", + "payload":arg$3}}} + function prise_en_charge_enfant_of_jsoo(prise_en_charge_enfant) + {var cons=caml_string_of_jsstring(prise_en_charge_enfant.kind); + if(! caml_string_notequal(cons,cst_EffectiveEtPermanente$4)) + return _ad4_; + if(! caml_string_notequal(cons,cst_GardeAlterneeAllocataireUn$0)) + return _ad3_; + if(! caml_string_notequal(cons,cst_GardeAlterneePartageAlloca$0)) + return _ad2_; + if(! caml_string_notequal(cons,cst_ServicesSociauxAllocationV$5)) + return _ad1_; + if(! caml_string_notequal(cons,cst_ServicesSociauxAllocationV$6)) + return _ad0_; + var _ak__=caml_call2(Stdlib_Printf[4],_adZ_,cons); + return caml_call1(Stdlib[2],_ak__)} + function situation_obligation_scolaire_$1(param) + {switch(param[0]) + {case 0:var arg=param[1];return {"kind":"Avant","payload":arg}; + case 1:var arg$0=param[1];return {"kind":"Pendant","payload":arg$0}; + default:var arg$1=param[1];return {"kind":"Apres","payload":arg$1}}} + function situation_obligation_scolaire_$2(situation_obligation_scolaire) + {var cons=caml_string_of_jsstring(situation_obligation_scolaire.kind); + if(! caml_string_notequal(cons,cst_Apres$0))return _ad8_; + if(! caml_string_notequal(cons,cst_Avant$2))return _ad7_; + if(! caml_string_notequal(cons,cst_Pendant$2))return _ad6_; + var _ak9_=caml_call2(Stdlib_Printf[4],_ad5_,cons); + return caml_call1(Stdlib[2],_ak9_)} + function element_prestations_familiales$1(param) + {switch(param[0]) + {case 0: + var arg=param[1]; + return {"kind":"PrestationAccueilJeuneEnfant","payload":arg}; + case 1: + var arg$0=param[1]; + return {"kind":"AllocationsFamiliales","payload":arg$0}; + case 2: + var arg$1=param[1]; + return {"kind":"ComplementFamilial","payload":arg$1}; + case 3: + var arg$2=param[1]; + return {"kind":"AllocationLogement","payload":arg$2}; + case 4: + var arg$3=param[1]; + return {"kind":"AllocationEducationEnfantHandicape","payload":arg$3}; + case 5: + var arg$4=param[1]; + return {"kind":"AllocationSoutienFamilial","payload":arg$4}; + case 6: + var arg$5=param[1]; + return {"kind":"AllocationRentreeScolaire","payload":arg$5}; + default: + var arg$6=param[1]; + return {"kind":"AllocationJournalierePresenceParentale", + "payload":arg$6}}} + function element_prestations_familiales$2(element_prestations_familiales) + {var cons=caml_string_of_jsstring(element_prestations_familiales.kind); + if(! caml_string_notequal(cons,cst_AllocationEducationEnfantH$0)) + return _aef_; + if(! caml_string_notequal(cons,cst_AllocationJournalierePrese$0)) + return _aee_; + if(! caml_string_notequal(cons,cst_AllocationLogement$2))return _aed_; + if(! caml_string_notequal(cons,cst_AllocationRentreeScolaire$0)) + return _aec_; + if(! caml_string_notequal(cons,cst_AllocationSoutienFamilial$4)) + return _aeb_; + if(! caml_string_notequal(cons,cst_AllocationsFamiliales$4)) + return _aea_; + if(! caml_string_notequal(cons,cst_ComplementFamilial$1))return _ad$_; + if(! caml_string_notequal(cons,cst_PrestationAccueilJeuneEnfa$2)) + return _ad__; + var _ak8_=caml_call2(Stdlib_Printf[4],_ad9_,cons); + return caml_call1(Stdlib[2],_ak8_)} + function convention_bailleur_social_to_(convention_bailleur_social) + {var + t243= + caml_call1(Runtime_ocaml_Runtime[35],convention_bailleur_social[2]), + t242=! ! convention_bailleur_social[1]; + return {"conventionneLivreIIITitreVChapIII":t242, + "reductionLoyerSolidaritePercue":t243}} + function convention_bailleur_social_of_(convention_bailleur_social) + {var + _ak6_= + caml_call1 + (Runtime_ocaml_Runtime[42], + convention_bailleur_social.reductionLoyerSolidaritePercue), + _ak7_=caml_call1(Runtime_ocaml_Runtime[33],_ak6_); + return [0, + convention_bailleur_social.conventionneLivreIIITitreVChapIII | 0, + _ak7_]} + function convention_a_n_h_a_to_jsoo(convention_a_n_h_a) + {var t246=! ! convention_a_n_h_a[1]; + return {"conventionneLivreIIITitreIIChapISec3":t246}} + function convention_a_n_h_a_of_jsoo(convention_a_n_h_a) + {return [0,convention_a_n_h_a.conventionneLivreIIITitreIIChapISec3 | 0]} + function personne_sous_location_to_jsoo(personne_sous_location) + {var + t249=! ! personne_sous_location[2], + t248=caml_call1(Runtime_jsoo_Runtime[5],personne_sous_location[1]); + return {"dateNaissancePersonneSousLocation":t248, + "conformeArticleL4421":t249}} + function personne_sous_location_of_jsoo(personne_sous_location) + {var _ak5_=personne_sous_location.conformeArticleL4421 | 0; + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + personne_sous_location.dateNaissancePersonneSousLocation), + _ak5_]} + function patrimoine_to_jsoo(patrimoine) + {var + t253=caml_call1(Runtime_ocaml_Runtime[35],patrimoine[2]), + t252=caml_call1(Runtime_ocaml_Runtime[35],patrimoine[1]); + return {"produisantRevenuPeriodeR82233R8224":t252, + "neProduisantPasRevenuPeriodeR82233R8224":t253}} + function patrimoine_of_jsoo(patrimoine) + {var + _ak2_= + caml_call1 + (Runtime_ocaml_Runtime[42], + patrimoine.neProduisantPasRevenuPeriodeR82233R8224), + _ak3_=caml_call1(Runtime_ocaml_Runtime[33],_ak2_), + _ak4_= + caml_call1 + (Runtime_ocaml_Runtime[42], + patrimoine.produisantRevenuPeriodeR82233R8224); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_ak4_),_ak3_]} + function conditions_etrangers_to_jsoo(conditions_etrangers) + {var t257=! ! conditions_etrangers[2],t256=! ! conditions_etrangers[1]; + return {"satisfaitConditionsL5122CodeSecuriteSociale":t256, + "satisfaitArt4Ordonnance2002Mayotte":t257}} + function conditions_etrangers_of_jsoo(conditions_etrangers) + {return [0, + conditions_etrangers.satisfaitConditionsL5122CodeSecuriteSociale + | + 0, + conditions_etrangers.satisfaitArt4Ordonnance2002Mayotte | 0]} + function personne_vivant_habituellement(personne_vivant_habituellement) + {var + t261= + caml_call1 + (Runtime_ocaml_Runtime[35],personne_vivant_habituellement[2]), + t260=! ! personne_vivant_habituellement[1]; + return {"dureeResidenceDurantPeriodeR82231SuperieureA6Mois":t260, + "ressources":t261}} + function personne_vivant_habituellement$0(personne_vivant_habituellement) + {var + _ak0_= + caml_call1 + (Runtime_ocaml_Runtime[42],personne_vivant_habituellement.ressources), + _ak1_=caml_call1(Runtime_ocaml_Runtime[33],_ak0_); + return [0, + personne_vivant_habituellement.dureeResidenceDurantPeriodeR82231SuperieureA6Mois + | + 0, + _ak1_]} + function eligibilite_aide_personnalisee$0(eligibilite_aide_personnalisee) + {var _akY_=eligibilite_aide_personnalisee[4]; + function _akZ_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} + var + t267=caml_js_from_array(caml_call2(Stdlib_Array[15],_akZ_,_akY_)), + t266= + caml_call1 + (Runtime_ocaml_Runtime[48],eligibilite_aide_personnalisee[3]), + t265=! ! eligibilite_aide_personnalisee[2], + t264= + caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aide_personnalisee[1]); + return {"dateCourante":t264, + "eligibilite":t265, + "nombrePersonnesAChargePrisesEnCompte":t266, + "coefficentsEnfantsGardeAlterneePrisEnCompte":t267}} + function eligibilite_aide_personnalisee$1(eligibilite_aide_personnalisee) + {var + _akT_= + caml_js_to_array + (eligibilite_aide_personnalisee.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _akU_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} + var + _akV_=caml_call1(caml_call1(Stdlib_Array[15],_akU_),_akT_), + _akW_= + caml_call1 + (Runtime_ocaml_Runtime[49], + eligibilite_aide_personnalisee.nombrePersonnesAChargePrisesEnCompte), + _akX_=eligibilite_aide_personnalisee.eligibilite | 0; + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aide_personnalisee.dateCourante), + _akX_, + _akW_, + _akV_]} + function eligibilite_prime_de_demenagem$0(eligibilite_prime_de_demenagem) + {var + t272= + caml_call1 + (Runtime_ocaml_Runtime[35],eligibilite_prime_de_demenagem[1]); + return {"montantPrimeDemenagement":t272}} + function eligibilite_prime_de_demenagem$1(eligibilite_prime_de_demenagem) + {var + _akS_= + caml_call1 + (Runtime_ocaml_Runtime[42], + eligibilite_prime_de_demenagem.montantPrimeDemenagement); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_akS_)]} + function ressources_aides_personnelle_l$0(ressources_aides_personnelle_l) + {var + t274= + caml_call1 + (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[1]); + return {"ressourcesPrisesEnCompte":t274}} + function ressources_aides_personnelle_l$1(ressources_aides_personnelle_l) + {var + _akR_= + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesPrisesEnCompte); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_akR_)]} + function contributions_sociales_aides_p$0(contributions_sociales_aides_p) + {function t276(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _akO_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _akP_=caml_call1(Runtime_ocaml_Runtime[33],_akO_), + _akQ_=caml_call1(contributions_sociales_aides_p[1],_akP_); + return caml_call1(Runtime_ocaml_Runtime[35],_akQ_)})} + return {"montant":caml_js_wrap_meth_callback(t276)}} + function contributions_sociales_aides_p$1(contributions_sociales_aides_p) + {return [0,caml_call1(Stdlib[2],cst_The_function_montant_trans)]} + function calcul_aide_personnalisee_loge$3(calcul_aide_personnalisee_loge) + {function t283(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _akL_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _akM_=caml_call1(Runtime_ocaml_Runtime[33],_akL_), + _akN_=caml_call1(calcul_aide_personnalisee_loge[7],_akM_); + return caml_call1(Runtime_ocaml_Runtime[35],_akN_)})} + var + t282= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[6]), + t281= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[5]), + t280= + caml_call1 + (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[4]), + t279= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[3]), + t278= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), + t277= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); + return {"montantForfaitaireChargesD82316":t277, + "plafondLoyerD823162":t278, + "participationMinimale":t279, + "tauxCompositionFamiliale":t280, + "participationPersonnelle":t281, + "aideFinaleFormule":t282, + "traitementAideFinale":caml_js_wrap_meth_callback(t283)}} + function calcul_aide_personnalisee_loge$4(calcul_aide_personnalisee_loge) + {var + _akA_=caml_call1(Stdlib[2],cst_The_function_traitement_ai), + _akB_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule), + _akC_=caml_call1(Runtime_ocaml_Runtime[33],_akB_), + _akD_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.participationPersonnelle), + _akE_=caml_call1(Runtime_ocaml_Runtime[33],_akD_), + _akF_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.tauxCompositionFamiliale), + _akG_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.participationMinimale), + _akH_=caml_call1(Runtime_ocaml_Runtime[33],_akG_), + _akI_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.plafondLoyerD823162), + _akJ_=caml_call1(Runtime_ocaml_Runtime[33],_akI_), + _akK_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.montantForfaitaireChargesD82316); + return [0, + caml_call1(Runtime_ocaml_Runtime[33],_akK_), + _akJ_, + _akH_, + _akF_, + _akE_, + _akC_, + _akA_]} + function calcul_equivalence_loyer_minim$0(calcul_equivalence_loyer_minim) + {var + t290= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_equivalence_loyer_minim[1]); + return {"montant":t290}} + function calcul_equivalence_loyer_minim$1(calcul_equivalence_loyer_minim) + {var + _akz_= + caml_call1 + (Runtime_ocaml_Runtime[42],calcul_equivalence_loyer_minim.montant); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_akz_)]} + function calcul_nombre_part_logement_fo$0(calcul_nombre_part_logement_fo) + {var + t292= + caml_call1 + (Runtime_ocaml_Runtime[43],calcul_nombre_part_logement_fo[1]); + return {"nNombrePartsD83225":t292}} + function calcul_nombre_part_logement_fo$1(calcul_nombre_part_logement_fo) + {return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_nombre_part_logement_fo.nNombrePartsD83225)]} + function calcul_aide_personnalisee_loge$5(calcul_aide_personnalisee_loge) + {function t302(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _akw_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _akx_=caml_call1(Runtime_ocaml_Runtime[33],_akw_), + _aky_=caml_call1(calcul_aide_personnalisee_loge[9],_akx_); + return caml_call1(Runtime_ocaml_Runtime[35],_aky_)})} + var + t301= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[8]), + t300= + caml_call1 + (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[7]), + t299= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[6]), + t298= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[5]), + t297= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[4]), + t296= + caml_call1 + (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[3]), + t295= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), + t294= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); + return {"coefficientMultiplicateurD83225":t294, + "coefficientRD83225":t295, + "nNombrePartsD83225":t296, + "equivalenceLoyerEligible":t297, + "plafondEquivalenceLoyerEligible":t298, + "equivalenceLoyerMinimale":t299, + "coefficientPriseEnChargeD83225":t300, + "aideFinaleFormule":t301, + "traitementAideFinale":caml_js_wrap_meth_callback(t302)}} + function calcul_aide_personnalisee_loge$6(calcul_aide_personnalisee_loge) + {var + _aki_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$0), + _akj_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule), + _akk_=caml_call1(Runtime_ocaml_Runtime[33],_akj_), + _akl_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83225), + _akm_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.equivalenceLoyerMinimale), + _akn_=caml_call1(Runtime_ocaml_Runtime[33],_akm_), + _ako_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.plafondEquivalenceLoyerEligible), + _akp_=caml_call1(Runtime_ocaml_Runtime[33],_ako_), + _akq_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.equivalenceLoyerEligible), + _akr_=caml_call1(Runtime_ocaml_Runtime[33],_akq_), + _aks_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.nNombrePartsD83225), + _akt_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientRD83225), + _aku_=caml_call1(Runtime_ocaml_Runtime[33],_akt_), + _akv_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientMultiplicateurD83225); + return [0, + caml_call1(Runtime_ocaml_Runtime[33],_akv_), + _aku_, + _aks_, + _akr_, + _akp_, + _akn_, + _akl_, + _akk_, + _aki_]} + function calcul_nombre_parts_accession_$0(calcul_nombre_parts_accession_) + {var + t311= + caml_call1 + (Runtime_ocaml_Runtime[43],calcul_nombre_parts_accession_[1]); + return {"nNombrePartsD83211":t311}} + function calcul_nombre_parts_accession_$1(calcul_nombre_parts_accession_) + {return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_nombre_parts_accession_.nNombrePartsD83211)]} + function calcul_aide_personnalisee_loge$7(calcul_aide_personnalisee_loge) + {function t317(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _akf_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _akg_=caml_call1(Runtime_ocaml_Runtime[33],_akf_), + _akh_=caml_call1(calcul_aide_personnalisee_loge[5],_akg_); + return caml_call1(Runtime_ocaml_Runtime[35],_akh_)})} + var + t316= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[4]), + t315= + caml_call1 + (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[3]), + t314= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), + t313= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); + return {"mensualiteEligible":t313, + "mensualiteMinimale":t314, + "coefficientPriseEnChargeD83210":t315, + "aideFinaleFormule":t316, + "traitementAideFinale":caml_js_wrap_meth_callback(t317)}} + function calcul_aide_personnalisee_loge$8(calcul_aide_personnalisee_loge) + {var + _aj__=caml_call1(Stdlib[2],cst_The_function_traitement_ai$1), + _aj$_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule), + _aka_=caml_call1(Runtime_ocaml_Runtime[33],_aj$_), + _akb_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83210), + _akc_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.mensualiteMinimale), + _akd_=caml_call1(Runtime_ocaml_Runtime[33],_akc_), + _ake_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.mensualiteEligible); + return [0, + caml_call1(Runtime_ocaml_Runtime[33],_ake_), + _akd_, + _akb_, + _aka_, + _aj__]} + function traitement_formule_aide_finale(traitement_formule_aide_finale) + {function t323(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _aj7_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _aj8_=caml_call1(Runtime_ocaml_Runtime[33],_aj7_), + _aj9_=caml_call1(traitement_formule_aide_finale[2],_aj8_); + return caml_call1(Runtime_ocaml_Runtime[35],_aj9_)})} + var + t322= + caml_call1 + (Runtime_ocaml_Runtime[35],traitement_formule_aide_finale[1]); + return {"aideFinaleFormule":t322, + "traitementAideFinale":caml_js_wrap_meth_callback(t323)}} + function traitement_formule_aide_finale$0(traitement_formule_aide_finale) + {var + _aj5_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$2), + _aj6_= + caml_call1 + (Runtime_ocaml_Runtime[42], + traitement_formule_aide_finale.aideFinaleFormule); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_aj6_),_aj5_]} + function calcul_aide_personnalisee_loge$9(calcul_aide_personnalisee_loge) + {function t326(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _aj2_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _aj3_=caml_call1(Runtime_ocaml_Runtime[33],_aj2_), + _aj4_=caml_call1(calcul_aide_personnalisee_loge[2],_aj3_); + return caml_call1(Runtime_ocaml_Runtime[35],_aj4_)})} + var + t325= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); + return {"aideFinaleFormule":t325, + "traitementAideFinale":caml_js_wrap_meth_callback(t326)}} + function calcul_aide_personnalisee_loge$10(calcul_aide_personnalisee_loge) + {var + _aj0_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$3), + _aj1_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_aj1_),_aj0_]} + function infos_changement_logement_d842(infos_changement_logement_d842) + {var + t329= + caml_call1 + (Runtime_ocaml_Runtime[35],infos_changement_logement_d842[2]), + t328= + caml_call1 + (Runtime_ocaml_Runtime[35],infos_changement_logement_d842[1]); + return {"ancienLoyerPrincipal":t328,"ancienneAllocationLogement":t329}} + function infos_changement_logement_d842$0(infos_changement_logement_d842) + {var + _ajX_= + caml_call1 + (Runtime_ocaml_Runtime[42], + infos_changement_logement_d842.ancienneAllocationLogement), + _ajY_=caml_call1(Runtime_ocaml_Runtime[33],_ajX_), + _ajZ_= + caml_call1 + (Runtime_ocaml_Runtime[42], + infos_changement_logement_d842.ancienLoyerPrincipal); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajZ_),_ajY_]} + function calcul_allocation_logement_loc$0(calcul_allocation_logement_loc) + {function t333(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _ajU_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _ajV_=caml_call1(Runtime_ocaml_Runtime[33],_ajU_), + _ajW_=caml_call1(calcul_allocation_logement_loc[2],_ajV_); + return caml_call1(Runtime_ocaml_Runtime[35],_ajW_)})} + var + t332= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[1]); + return {"aideFinaleFormule":t332, + "traitementAideFinale":caml_js_wrap_meth_callback(t333)}} + function calcul_allocation_logement_loc$1(calcul_allocation_logement_loc) + {var + _ajS_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$4), + _ajT_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.aideFinaleFormule); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajT_),_ajS_]} + function calcul_allocation_logement_acc$0(calcul_allocation_logement_acc) + {function t339(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _ajP_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _ajQ_=caml_call1(Runtime_ocaml_Runtime[33],_ajP_), + _ajR_=caml_call1(calcul_allocation_logement_acc[5],_ajQ_); + return caml_call1(Runtime_ocaml_Runtime[35],_ajR_)})} + var + t338= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[4]), + t337= + caml_call1 + (Runtime_ocaml_Runtime[43],calcul_allocation_logement_acc[3]), + t336= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[2]), + t335= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[1]); + return {"mensualiteEligible":t335, + "mensualiteMinimale":t336, + "coefficientPriseEnCharge":t337, + "aideFinaleFormule":t338, + "traitementAideFinale":caml_js_wrap_meth_callback(t339)}} + function calcul_allocation_logement_acc$1(calcul_allocation_logement_acc) + {var + _ajI_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$5), + _ajJ_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.aideFinaleFormule), + _ajK_=caml_call1(Runtime_ocaml_Runtime[33],_ajJ_), + _ajL_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.coefficientPriseEnCharge), + _ajM_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.mensualiteMinimale), + _ajN_=caml_call1(Runtime_ocaml_Runtime[33],_ajM_), + _ajO_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.mensualiteEligible); + return [0, + caml_call1(Runtime_ocaml_Runtime[33],_ajO_), + _ajN_, + _ajL_, + _ajK_, + _ajI_]} + function calcul_allocation_logement_foy$0(calcul_allocation_logement_foy) + {function t349(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _ajF_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _ajG_=caml_call1(Runtime_ocaml_Runtime[33],_ajF_), + _ajH_=caml_call1(calcul_allocation_logement_foy[6],_ajG_); + return caml_call1(Runtime_ocaml_Runtime[35],_ajH_)})} + var + t348= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[5]), + t347= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[4]), + t346= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[3]), + t345= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[2]), + t344= + caml_call1 + (Runtime_ocaml_Runtime[43],calcul_allocation_logement_foy[1]); + return {"coefficientPriseEnCharge":t344, + "equivalenceLoyer":t345, + "montantForfaitaireCharges":t346, + "loyerMinimal":t347, + "aideFinaleFormule":t348, + "traitementAideFinale":caml_js_wrap_meth_callback(t349)}} + function calcul_allocation_logement_foy$1(calcul_allocation_logement_foy) + {var + _ajw_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$6), + _ajx_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.aideFinaleFormule), + _ajy_=caml_call1(Runtime_ocaml_Runtime[33],_ajx_), + _ajz_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.loyerMinimal), + _ajA_=caml_call1(Runtime_ocaml_Runtime[33],_ajz_), + _ajB_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.montantForfaitaireCharges), + _ajC_=caml_call1(Runtime_ocaml_Runtime[33],_ajB_), + _ajD_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.equivalenceLoyer), + _ajE_=caml_call1(Runtime_ocaml_Runtime[33],_ajD_); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.coefficientPriseEnCharge), + _ajE_, + _ajC_, + _ajA_, + _ajy_, + _ajw_]} + function calcul_allocation_logement_to_(calcul_allocation_logement) + {function t356(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _ajt_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _aju_=caml_call1(Runtime_ocaml_Runtime[33],_ajt_), + _ajv_=caml_call1(calcul_allocation_logement[2],_aju_); + return caml_call1(Runtime_ocaml_Runtime[35],_ajv_)})} + var + t355= + caml_call1(Runtime_ocaml_Runtime[35],calcul_allocation_logement[1]); + return {"aideFinaleFormule":t355, + "traitementAideFinale":caml_js_wrap_meth_callback(t356)}} + function calcul_allocation_logement_of_(calcul_allocation_logement) + {var + _ajr_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$7), + _ajs_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement.aideFinaleFormule); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajs_),_ajr_]} + function ouverture_droits_retraite_to_j(ouverture_droits_retraite) + {var + t358= + caml_call1(Runtime_jsoo_Runtime[3],ouverture_droits_retraite[1]); + return {"ageOuvertureDroit":t358}} + function ouverture_droits_retraite_of_j(ouverture_droits_retraite) + {return [0, + caml_call1 + (Runtime_jsoo_Runtime[2], + ouverture_droits_retraite.ageOuvertureDroit)]} + function impaye_depense_logement_to_jso(impaye_depense_logement) + {var + t360= + caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement[1]); + return {"montantImpaye":t360}} + function impaye_depense_logement_of_jso(impaye_depense_logement) + {var + _ajq_= + caml_call1 + (Runtime_ocaml_Runtime[42],impaye_depense_logement.montantImpaye); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajq_)]} + function calculette_aides_au_logement_t(calculette_aides_au_logement) + {var _ajl_=calculette_aides_au_logement[4]; + function _ajm_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} + var t365=caml_js_from_array(caml_call2(Stdlib_Array[15],_ajm_,_ajl_)); + function t364(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _ajn_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), + _ajo_=caml_call1(Runtime_ocaml_Runtime[33],_ajn_), + _ajp_=caml_call1(calculette_aides_au_logement[3],_ajo_); + return caml_call1(Runtime_ocaml_Runtime[35],_ajp_)})} + var + t363= + caml_call1(Runtime_ocaml_Runtime[35],calculette_aides_au_logement[2]), + t362=! ! calculette_aides_au_logement[1]; + return {"eligibilite":t362, + "aideFinaleFormule":t363, + "traitementAideFinale":caml_js_wrap_meth_callback(t364), + "coefficentsEnfantsGardeAlterneePrisEnCompte":t365}} + function calculette_aides_au_logement_o(calculette_aides_au_logement) + {var + _ajf_= + caml_js_to_array + (calculette_aides_au_logement.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _ajg_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} + var + _ajh_=caml_call1(caml_call1(Stdlib_Array[15],_ajg_),_ajf_), + _aji_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$8), + _ajj_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calculette_aides_au_logement.aideFinaleFormule), + _ajk_=caml_call1(Runtime_ocaml_Runtime[33],_ajj_); + return [0, + calculette_aides_au_logement.eligibilite | 0, + _ajk_, + _aji_, + _ajh_]} + function calculette_aides_au_logement_g$0(calculette_aides_au_logement_g) + {var + t370= + caml_call1 + (Runtime_ocaml_Runtime[35],calculette_aides_au_logement_g[2]), + t369=! ! calculette_aides_au_logement_g[1]; + return {"eligibilite":t369,"aideFinale":t370}} + function calculette_aides_au_logement_g$1(calculette_aides_au_logement_g) + {var + _ajd_= + caml_call1 + (Runtime_ocaml_Runtime[42],calculette_aides_au_logement_g.aideFinale), + _aje_=caml_call1(Runtime_ocaml_Runtime[33],_ajd_); + return [0,calculette_aides_au_logement_g.eligibilite | 0,_aje_]} + function base_mensuelle_allocations_fam$6(base_mensuelle_allocations_fam) + {var + t373= + caml_call1 + (Runtime_ocaml_Runtime[35],base_mensuelle_allocations_fam[1]); + return {"montant":t373}} + function base_mensuelle_allocations_fam$7(base_mensuelle_allocations_fam) + {var + _ajc_= + caml_call1 + (Runtime_ocaml_Runtime[42],base_mensuelle_allocations_fam.montant); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajc_)]} + function verification_age_inferieur_ou_$6(verification_age_inferieur_ou_) + {var t375=! ! verification_age_inferieur_ou_[1]; + return {"estInferieurOuEgal":t375}} + function verification_age_inferieur_ou_$7(verification_age_inferieur_ou_) + {return [0,verification_age_inferieur_ou_.estInferieurOuEgal | 0]} + function verification_age_superieur_a_t$0(verification_age_superieur_a) + {var t377=! ! verification_age_superieur_a[1]; + return {"estSuperieur":t377}} + function verification_age_superieur_a_o$0(verification_age_superieur_a) + {return [0,verification_age_superieur_a.estSuperieur | 0]} + function smic_to_jsoo$0(smic) + {var t379=caml_call1(Runtime_ocaml_Runtime[35],smic[1]); + return {"brutHoraire":t379}} + function smic_of_jsoo$0(smic) + {var _ajb_=caml_call1(Runtime_ocaml_Runtime[42],smic.brutHoraire); + return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajb_)]} + function neuf_ou_ancien_to_jsoo(param) + {if(0 === param[0]) + {var arg=param[1];return {"kind":"Neuf","payload":arg}} + var arg$0=param[1],t384=ameliore_par_occupant_to_jsoo(arg$0); + return {"kind":"Ancien","payload":t384}} + function neuf_ou_ancien_of_jsoo(neuf_ou_ancien) + {var cons=caml_string_of_jsstring(neuf_ou_ancien.kind); + if(! caml_string_notequal(cons,cst_Ancien$0)) + return [1,ameliore_par_occupant_of_jsoo(neuf_ou_ancien.payload)]; + if(! caml_string_notequal(cons,cst_Neuf$0))return _aeh_; + var _aja_=caml_call2(Stdlib_Printf[4],_aeg_,cons); + return caml_call1(Stdlib[2],_aja_)} + function tranche_revenu_to_jsoo(tranche_revenu) + {var + t389=caml_call1(Runtime_ocaml_Runtime[43],tranche_revenu[3]), + t388=caml_call1(Runtime_ocaml_Runtime[35],tranche_revenu[2]), + t387=limite_tranche_to_jsoo(tranche_revenu[1]); + return {"haut":t387,"bas":t388,"taux":t389}} + function tranche_revenu_of_jsoo(tranche_revenu) + {var + _ai9_=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu.taux), + _ai__=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu.bas), + _ai$_=caml_call1(Runtime_ocaml_Runtime[33],_ai__); + return [0,limite_tranche_of_jsoo(tranche_revenu.haut),_ai$_,_ai9_]} + function tranche_revenu_decimal_to_jsoo(tranche_revenu_decimal) + {var + t395=caml_call1(Runtime_ocaml_Runtime[43],tranche_revenu_decimal[3]), + t394=caml_call1(Runtime_ocaml_Runtime[43],tranche_revenu_decimal[2]), + t393=limite_tranche_decimal_to_jsoo(tranche_revenu_decimal[1]); + return {"haut":t393,"bas":t394,"taux":t395}} + function tranche_revenu_decimal_of_jsoo(tranche_revenu_decimal) + {var + _ai7_=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu_decimal.taux), + _ai8_=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu_decimal.bas); + return [0, + limite_tranche_decimal_of_jsoo(tranche_revenu_decimal.haut), + _ai8_, + _ai7_]} + function autre_personne_a_charge_to_jso(autre_personne_a_charge) + {var + t405=! ! autre_personne_a_charge[7], + t404=! ! autre_personne_a_charge[6], + t403=! ! autre_personne_a_charge[5], + t402=parente_to_jsoo(autre_personne_a_charge[4]), + t401=! ! autre_personne_a_charge[3], + t400=caml_call1(Runtime_ocaml_Runtime[35],autre_personne_a_charge[2]), + t399=caml_call1(Runtime_jsoo_Runtime[5],autre_personne_a_charge[1]); + return {"dateNaissance":t399, + "ressources":t400, + "ascendantDescendantCollateralDeuxiemeTroisiemeDegre":t401, + "parente":t402, + "incapacite80PourcentOuRestrictionEmploi":t403, + "beneficiaireL16119L3518L6433Secu":t404, + "titulaireAllocationPersonneAgee":t405}} + function autre_personne_a_charge_of_jso(autre_personne_a_charge) + {var + _ai0_=autre_personne_a_charge.titulaireAllocationPersonneAgee | 0, + _ai1_=autre_personne_a_charge.beneficiaireL16119L3518L6433Secu | 0, + _ai2_= + autre_personne_a_charge.incapacite80PourcentOuRestrictionEmploi + | + 0, + _ai3_=parente_of_jsoo(autre_personne_a_charge.parente), + _ai4_= + autre_personne_a_charge.ascendantDescendantCollateralDeuxiemeTroisiemeDegre + | + 0, + _ai5_= + caml_call1 + (Runtime_ocaml_Runtime[42],autre_personne_a_charge.ressources), + _ai6_=caml_call1(Runtime_ocaml_Runtime[33],_ai5_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4],autre_personne_a_charge.dateNaissance), + _ai6_, + _ai4_, + _ai3_, + _ai2_, + _ai1_, + _ai0_]} + function date_naissance_troisieme_ou_de(param) + {if(0 === param[0]) + {var arg=param[1];return {"kind":"MoinsDeTroisEnfants","payload":arg}} + var arg$0=param[1],t416=date_de_naissance_ou_mois_de_g(arg$0); + return {"kind":"PlusDeTroisEnfants","payload":t416}} + function date_naissance_troisieme_ou_de$0(date_naissance_troisieme_ou_de) + {var cons=caml_string_of_jsstring(date_naissance_troisieme_ou_de.kind); + if(! caml_string_notequal(cons,cst_MoinsDeTroisEnfants$0))return _aej_; + if(! caml_string_notequal(cons,cst_PlusDeTroisEnfants$0)) + return [1, + date_de_naissance_ou_mois_de_g$0 + (date_naissance_troisieme_ou_de.payload)]; + var _aiZ_=caml_call2(Stdlib_Printf[4],_aei_,cons); + return caml_call1(Stdlib[2],_aiZ_)} + function eligibilite_allocation_logemen$0(eligibilite_allocation_logemen) + {var _aiX_=eligibilite_allocation_logemen[3]; + function _aiY_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} + var + t421=caml_js_from_array(caml_call2(Stdlib_Array[15],_aiY_,_aiX_)), + t420= + caml_call1 + (Runtime_ocaml_Runtime[48],eligibilite_allocation_logemen[2]), + t419=type_eligibilite_allocation_lo(eligibilite_allocation_logemen[1]); + return {"eligibilite":t419, + "nombrePersonnesAChargePrisesEnCompte":t420, + "coefficentsEnfantsGardeAlterneePrisEnCompte":t421}} + function eligibilite_allocation_logemen$1(eligibilite_allocation_logemen) + {var + _aiT_= + caml_js_to_array + (eligibilite_allocation_logemen.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _aiU_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} + var + _aiV_=caml_call1(caml_call1(Stdlib_Array[15],_aiU_),_aiT_), + _aiW_= + caml_call1 + (Runtime_ocaml_Runtime[49], + eligibilite_allocation_logemen.nombrePersonnesAChargePrisesEnCompte); + return [0, + type_eligibilite_allocation_lo$0 + (eligibilite_allocation_logemen.eligibilite), + _aiW_, + _aiV_]} + function pret_to_jsoo(pret) + {var + t428=accord_financement_representan(pret[4]), + t427=titulaire_pret_to_jsoo(pret[3]), + t426=caml_call1(Runtime_jsoo_Runtime[5],pret[2]), + t425=type_pret_to_jsoo(pret[1]); + return {"typePret":t425, + "dateSignature":t426, + "titulairePret":t427, + "accordFinancementRepresentantEtatOutreMer":t428}} + function pret_of_jsoo(pret) + {var + _aiQ_= + accord_financement_representan$0 + (pret.accordFinancementRepresentantEtatOutreMer), + _aiR_=titulaire_pret_of_jsoo(pret.titulairePret), + _aiS_=caml_call1(Runtime_jsoo_Runtime[4],pret.dateSignature); + return [0,type_pret_of_jsoo(pret.typePret),_aiS_,_aiR_,_aiQ_]} + function logement_foyer_to_jsoo(logement_foyer) + {var + t442=! ! logement_foyer[10], + t441=! ! logement_foyer[9], + t440=categorie_equivalence_loyer_al(logement_foyer[8]), + t439=caml_call1(Runtime_ocaml_Runtime[35],logement_foyer[7]), + t438=! ! logement_foyer[6], + t437=caml_call1(Runtime_jsoo_Runtime[5],logement_foyer[5]), + t436=! ! logement_foyer[4], + t435=! ! logement_foyer[3], + t434=! ! logement_foyer[2], + t433=type_logement_foyer_to_jsoo(logement_foyer[1]); + return {"typeUser":t433, + "remplitConditionsR83221":t434, + "conventionneLivreIIITitreVChapIII":t435, + "conventionneSelonReglesDrom":t436, + "dateConventionnement":t437, + "construitApplicationLoi195712III":t438, + "redevance":t439, + "categorieEquivalenceLoyerD84216":t440, + "beneficiaireAideAdulteOuEnfantHandicapes":t441, + "logementMeubleD8422":t442}} + function logement_foyer_of_jsoo(logement_foyer) + {var + _aiG_=logement_foyer.logementMeubleD8422 | 0, + _aiH_=logement_foyer.beneficiaireAideAdulteOuEnfantHandicapes | 0, + _aiI_= + categorie_equivalence_loyer_al$0 + (logement_foyer.categorieEquivalenceLoyerD84216), + _aiJ_=caml_call1(Runtime_ocaml_Runtime[42],logement_foyer.redevance), + _aiK_=caml_call1(Runtime_ocaml_Runtime[33],_aiJ_), + _aiL_=logement_foyer.construitApplicationLoi195712III | 0, + _aiM_= + caml_call1 + (Runtime_jsoo_Runtime[4],logement_foyer.dateConventionnement), + _aiN_=logement_foyer.conventionneSelonReglesDrom | 0, + _aiO_=logement_foyer.conventionneLivreIIITitreVChapIII | 0, + _aiP_=logement_foyer.remplitConditionsR83221 | 0; + return [0, + type_logement_foyer_of_jsoo(logement_foyer.typeUser), + _aiP_, + _aiO_, + _aiN_, + _aiM_, + _aiL_, + _aiK_, + _aiI_, + _aiH_, + _aiG_]} + function enfant_prestations_familiales_(enfant_prestations_familiales) + {var + t459=! ! enfant_prestations_familiales[7], + t458=! ! enfant_prestations_familiales[6], + t457=prise_en_charge_enfant_to_jsoo(enfant_prestations_familiales[5]), + t456= + caml_call1(Runtime_jsoo_Runtime[5],enfant_prestations_familiales[4]), + t455= + caml_call1(Runtime_ocaml_Runtime[35],enfant_prestations_familiales[3]), + t454=situation_obligation_scolaire_$1(enfant_prestations_familiales[2]), + t453= + caml_call1(Runtime_ocaml_Runtime[48],enfant_prestations_familiales[1]); + return {"identifiant":t453, + "obligationScolaire":t454, + "remunerationMensuelle":t455, + "dateDeNaissance":t456, + "priseEnCharge":t457, + "aDejaOuvertDroitAuxAllocationsFamiliales":t458, + "beneficieTitrePersonnelAidePersonnelleLogement":t459}} + function enfant_prestations_familiales_$0(enfant_prestations_familiales) + {var + _aiz_= + enfant_prestations_familiales.beneficieTitrePersonnelAidePersonnelleLogement + | + 0, + _aiA_= + enfant_prestations_familiales.aDejaOuvertDroitAuxAllocationsFamiliales + | + 0, + _aiB_= + prise_en_charge_enfant_of_jsoo + (enfant_prestations_familiales.priseEnCharge), + _aiC_= + caml_call1 + (Runtime_jsoo_Runtime[4], + enfant_prestations_familiales.dateDeNaissance), + _aiD_= + caml_call1 + (Runtime_ocaml_Runtime[42], + enfant_prestations_familiales.remunerationMensuelle), + _aiE_=caml_call1(Runtime_ocaml_Runtime[33],_aiD_), + _aiF_= + situation_obligation_scolaire_$2 + (enfant_prestations_familiales.obligationScolaire); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[49], + enfant_prestations_familiales.identifiant), + _aiF_, + _aiE_, + _aiC_, + _aiB_, + _aiA_, + _aiz_]} + function type_bailleur_to_jsoo(param) + {switch(param[0]) + {case 0: + var arg=param[1],t468=convention_bailleur_social_to_(arg); + return {"kind":"BailleurSocial","payload":t468}; + case 1: + var arg$0=param[1],t470=convention_a_n_h_a_to_jsoo(arg$0); + return {"kind":"BailleurPriveAvecConventionnementSocial", + "payload":t470}; + default: + var arg$1=param[1];return {"kind":"BailleurPrive","payload":arg$1}}} + function type_bailleur_of_jsoo(type_bailleur) + {var cons=caml_string_of_jsstring(type_bailleur.kind); + if(! caml_string_notequal(cons,cst_BailleurPrive))return _ael_; + if(! caml_string_notequal(cons,cst_BailleurPriveAvecConventio)) + return [1,convention_a_n_h_a_of_jsoo(type_bailleur.payload)]; + if(! caml_string_notequal(cons,cst_BailleurSocial$0)) + return [0,convention_bailleur_social_of_(type_bailleur.payload)]; + var _aiy_=caml_call2(Stdlib_Printf[4],_aek_,cons); + return caml_call1(Stdlib[2],_aiy_)} + function loue_ou_sous_loue_a_des_tiers_(param) + {if(0 === param[0]){var arg=param[1];return {"kind":"Non","payload":arg}} + var arg$0=param[1],t479=personne_sous_location_to_jsoo(arg$0); + return {"kind":"Oui","payload":t479}} + function loue_ou_sous_loue_a_des_tiers_$0(loue_ou_sous_loue_a_des_tiers) + {var cons=caml_string_of_jsstring(loue_ou_sous_loue_a_des_tiers.kind); + if(! caml_string_notequal(cons,cst_Non$4))return _aen_; + if(! caml_string_notequal(cons,cst_Oui$2)) + return [1, + personne_sous_location_of_jsoo + (loue_ou_sous_loue_a_des_tiers.payload)]; + var _aix_=caml_call2(Stdlib_Printf[4],_aem_,cons); + return caml_call1(Stdlib[2],_aix_)} + function nationalite_to_jsoo(param) + {if(0 === param[0]) + {var arg=param[1];return {"kind":"Francaise","payload":arg}} + var arg$0=param[1],t485=conditions_etrangers_to_jsoo(arg$0); + return {"kind":"Etrangere","payload":t485}} + function nationalite_of_jsoo(nationalite) + {var cons=caml_string_of_jsstring(nationalite.kind); + if(! caml_string_notequal(cons,cst_Etrangere)) + return [1,conditions_etrangers_of_jsoo(nationalite.payload)]; + if(! caml_string_notequal(cons,cst_Francaise))return _aep_; + var _aiw_=caml_call2(Stdlib_Printf[4],_aeo_,cons); + return caml_call1(Stdlib[2],_aiw_)} + function changement_logement_d842_4_to_(param) + {if(0 === param[0]) + {var arg=param[1],t489=infos_changement_logement_d842(arg); + return {"kind":"Changement","payload":t489}} + var arg$0=param[1]; + return {"kind":"PasDeChangement","payload":arg$0}} + function changement_logement_d842_4_of_(changement_logement_d842_4) + {var cons=caml_string_of_jsstring(changement_logement_d842_4.kind); + if(! caml_string_notequal(cons,cst_Changement$0)) + return [0, + infos_changement_logement_d842$0 + (changement_logement_d842_4.payload)]; + if(! caml_string_notequal(cons,cst_PasDeChangement$0))return _aer_; + var _aiv_=caml_call2(Stdlib_Printf[4],_aeq_,cons); + return caml_call1(Stdlib[2],_aiv_)} + function informations_prime_de_demenage(informations_prime_de_demenage) + {var + t495=date_naissance_troisieme_ou_de(informations_prime_de_demenage[2]), + t494= + caml_call1 + (Runtime_ocaml_Runtime[48],informations_prime_de_demenage[1]); + return {"nombreEnfantsANaitreApresTroisiemeMoisGrossesse":t494, + "dateNaissanceTroisiemeEnfantOuDernierSiPlus":t495}} + function informations_prime_de_demenage$0(informations_prime_de_demenage) + {var + _aiu_= + date_naissance_troisieme_ou_de$0 + (informations_prime_de_demenage.dateNaissanceTroisiemeEnfantOuDernierSiPlus); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[49], + informations_prime_de_demenage.nombreEnfantsANaitreApresTroisiemeMoisGrossesse), + _aiu_]} + function proprietaire_to_jsoo(proprietaire) + {var + t508=! ! proprietaire[11], + t507=pret_to_jsoo(proprietaire[10]), + t506=neuf_ou_ancien_to_jsoo(proprietaire[9]), + t505=! ! proprietaire[8], + t504=! ! proprietaire[7], + t503=! ! proprietaire[6], + t502=type_travaux_logement_r842_5_t(proprietaire[5]), + t501=type_travaux_logement_d832_15_(proprietaire[4]), + t500=caml_call1(Runtime_jsoo_Runtime[5],proprietaire[3]), + t499=caml_call1(Runtime_ocaml_Runtime[35],proprietaire[2]), + t498=caml_call1(Runtime_ocaml_Runtime[35],proprietaire[1]); + return {"mensualitePrincipale":t498, + "chargesMensuellesPret":t499, + "dateEntreeLogement":t500, + "typeTravauxLogementD83215":t501, + "typeTravauxLogementR8425":t502, + "localHabitePremiereFoisBeneficiaire":t503, + "copropriete":t504, + "situationR822111317":t505, + "ancienneteLogement":t506, + "pret":t507, + "operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat": + t508}} + function proprietaire_of_jsoo(proprietaire) + {var + _aii_= + proprietaire.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat + | + 0, + _aij_=pret_of_jsoo(proprietaire.pret), + _aik_=neuf_ou_ancien_of_jsoo(proprietaire.ancienneteLogement), + _ail_=proprietaire.situationR822111317 | 0, + _aim_=proprietaire.copropriete | 0, + _ain_=proprietaire.localHabitePremiereFoisBeneficiaire | 0, + _aio_= + type_travaux_logement_r842_5_o(proprietaire.typeTravauxLogementR8425), + _aip_= + type_travaux_logement_d832_15_$0 + (proprietaire.typeTravauxLogementD83215), + _aiq_= + caml_call1(Runtime_jsoo_Runtime[4],proprietaire.dateEntreeLogement), + _air_= + caml_call1 + (Runtime_ocaml_Runtime[42],proprietaire.chargesMensuellesPret), + _ais_=caml_call1(Runtime_ocaml_Runtime[33],_air_), + _ait_= + caml_call1 + (Runtime_ocaml_Runtime[42],proprietaire.mensualitePrincipale); + return [0, + caml_call1(Runtime_ocaml_Runtime[33],_ait_), + _ais_, + _aiq_, + _aip_, + _aio_, + _ain_, + _aim_, + _ail_, + _aik_, + _aij_, + _aii_]} + function eligibilite_prestations_famili$0(eligibilite_prestations_famili) + {var t523=! ! eligibilite_prestations_famili[4]; + function t522(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _aih_= + enfant_prestations_familiales_$0(function_input0); + return ! + ! + caml_call1(eligibilite_prestations_famili[3],_aih_)})} + function t521(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _aig_= + enfant_prestations_familiales_$0(function_input0); + return ! + ! + caml_call1(eligibilite_prestations_famili[2],_aig_)})} + var + t520= + caml_call1(Runtime_jsoo_Runtime[3],eligibilite_prestations_famili[1]); + return {"ageL51232":t520, + "droitOuvert":caml_js_wrap_meth_callback(t521), + "conditionsHorsAge":caml_js_wrap_meth_callback(t522), + "regimeOutreMerL7511":t523}} + function eligibilite_prestations_famili$1(eligibilite_prestations_famili) + {var + _aid_=eligibilite_prestations_famili.regimeOutreMerL7511 | 0, + _aie_=caml_call1(Stdlib[2],cst_The_function_conditions_ho$0), + _aif_=caml_call1(Stdlib[2],cst_The_function_droit_ouvert_$0); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[2], + eligibilite_prestations_famili.ageL51232), + _aif_, + _aie_, + _aid_]} + function demandeur_to_jsoo(demandeur) + {var + t531=! ! demandeur[6], + t530=! ! demandeur[5], + t529=! ! demandeur[4], + t528=patrimoine_to_jsoo(demandeur[3]), + t527=nationalite_to_jsoo(demandeur[2]), + t526=caml_call1(Runtime_jsoo_Runtime[5],demandeur[1]); + return {"dateNaissance":t526, + "nationalite":t527, + "patrimoine":t528, + "personneHebergeeCentreSoinLL162223SecuriteSociale":t529, + "estNonSalarieAgricoleL7818L78146CodeRural":t530, + "magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte": + t531}} + function demandeur_of_jsoo(demandeur) + {var + _ah__= + demandeur.magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte + | + 0, + _ah$_=demandeur.estNonSalarieAgricoleL7818L78146CodeRural | 0, + _aia_=demandeur.personneHebergeeCentreSoinLL162223SecuriteSociale | 0, + _aib_=patrimoine_of_jsoo(demandeur.patrimoine), + _aic_=nationalite_of_jsoo(demandeur.nationalite); + return [0, + caml_call1(Runtime_jsoo_Runtime[4],demandeur.dateNaissance), + _aic_, + _aib_, + _aia_, + _ah$_, + _ah__]} + function enfant_a_charge_to_jsoo(enfant_a_charge) + {var + t546=! ! enfant_a_charge[9], + t545=situation_garde_alternee_to_js(enfant_a_charge[8]), + t544=situation_obligation_scolaire_$1(enfant_a_charge[7]), + t543=caml_call1(Runtime_ocaml_Runtime[35],enfant_a_charge[6]), + t542=caml_call1(Runtime_jsoo_Runtime[5],enfant_a_charge[5]), + t541=! ! enfant_a_charge[4], + t540=! ! enfant_a_charge[3], + t539=nationalite_to_jsoo(enfant_a_charge[2]), + t538=caml_call1(Runtime_ocaml_Runtime[48],enfant_a_charge[1]); + return {"identifiant":t538, + "nationalite":t539, + "beneficieTitrePersonnelAidePersonnelleLogement":t540, + "aDejaOuvertDroitAuxAllocationsFamiliales":t541, + "dateDeNaissance":t542, + "remunerationMensuelle":t543, + "obligationScolaire":t544, + "situationGardeAlternee":t545, + "etudesApprentissageStageFormationProImpossibiliteTravail":t546}} + function enfant_a_charge_of_jsoo(enfant_a_charge) + {var + _ah1_= + enfant_a_charge.etudesApprentissageStageFormationProImpossibiliteTravail + | + 0, + _ah2_= + situation_garde_alternee_of_js(enfant_a_charge.situationGardeAlternee), + _ah3_= + situation_obligation_scolaire_$2(enfant_a_charge.obligationScolaire), + _ah4_= + caml_call1 + (Runtime_ocaml_Runtime[42],enfant_a_charge.remunerationMensuelle), + _ah5_=caml_call1(Runtime_ocaml_Runtime[33],_ah4_), + _ah6_= + caml_call1(Runtime_jsoo_Runtime[4],enfant_a_charge.dateDeNaissance), + _ah7_=enfant_a_charge.aDejaOuvertDroitAuxAllocationsFamiliales | 0, + _ah8_= + enfant_a_charge.beneficieTitrePersonnelAidePersonnelleLogement + | + 0, + _ah9_=nationalite_of_jsoo(enfant_a_charge.nationalite); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[49],enfant_a_charge.identifiant), + _ah9_, + _ah8_, + _ah7_, + _ah6_, + _ah5_, + _ah3_, + _ah2_, + _ah1_]} + function location_to_jsoo(location) + {var + t563=changement_logement_d842_4_to_(location[8]), + t562=! ! location[7], + t561=! ! location[6], + t560=! ! location[5], + t559=! ! location[4], + t558=! ! location[3], + t557=caml_call1(Runtime_ocaml_Runtime[35],location[2]), + t556=type_bailleur_to_jsoo(location[1]); + return {"bailleur":t556, + "loyerPrincipal":t557, + "beneficiaireAideAdulteOuEnfantHandicapes":t558, + "logementEstChambre":t559, + "colocation":t560, + "ageesOuHandicapAdultesHebergeesOnereuxParticuliers":t561, + "logementMeubleD8422":t562, + "changementLogementD8424":t563}} + function location_of_jsoo(location) + {var + _ahT_=changement_logement_d842_4_of_(location.changementLogementD8424), + _ahU_=location.logementMeubleD8422 | 0, + _ahV_=location.ageesOuHandicapAdultesHebergeesOnereuxParticuliers | 0, + _ahW_=location.colocation | 0, + _ahX_=location.logementEstChambre | 0, + _ahY_=location.beneficiaireAideAdulteOuEnfantHandicapes | 0, + _ahZ_=caml_call1(Runtime_ocaml_Runtime[42],location.loyerPrincipal), + _ah0_=caml_call1(Runtime_ocaml_Runtime[33],_ahZ_); + return [0, + type_bailleur_of_jsoo(location.bailleur), + _ah0_, + _ahY_, + _ahX_, + _ahW_, + _ahV_, + _ahU_, + _ahT_]} + function personne_a_charge_to_jsoo(param) + {if(0 === param[0]) + {var arg=param[1],t573=enfant_a_charge_to_jsoo(arg); + return {"kind":"EnfantACharge","payload":t573}} + var arg$0=param[1],t575=autre_personne_a_charge_to_jso(arg$0); + return {"kind":"AutrePersonneACharge","payload":t575}} + function personne_a_charge_of_jsoo(personne_a_charge) + {var cons=caml_string_of_jsstring(personne_a_charge.kind); + if(! caml_string_notequal(cons,cst_AutrePersonneACharge)) + return [1,autre_personne_a_charge_of_jso(personne_a_charge.payload)]; + if(! caml_string_notequal(cons,cst_EnfantACharge)) + return [0,enfant_a_charge_of_jsoo(personne_a_charge.payload)]; + var _ahS_=caml_call2(Stdlib_Printf[4],_aes_,cons); + return caml_call1(Stdlib[2],_ahS_)} + function categorie_calcul_a_p_l_to_jsoo(param) + {switch(param[0]) + {case 0: + var arg=param[1],t580=location_to_jsoo(arg); + return {"kind":"Location","payload":t580}; + case 1: + var arg$0=param[1],t582=proprietaire_to_jsoo(arg$0); + return {"kind":"AccessionPropriete","payload":t582}; + default: + var arg$1=param[1],t584=logement_foyer_to_jsoo(arg$1); + return {"kind":"LogementFoyer","payload":t584}}} + function categorie_calcul_a_p_l_of_jsoo(categorie_calcul_a_p_l) + {var cons=caml_string_of_jsstring(categorie_calcul_a_p_l.kind); + if(! caml_string_notequal(cons,cst_AccessionPropriete)) + return [1,proprietaire_of_jsoo(categorie_calcul_a_p_l.payload)]; + if(! caml_string_notequal(cons,cst_Location$0)) + return [0,location_of_jsoo(categorie_calcul_a_p_l.payload)]; + if(! caml_string_notequal(cons,cst_LogementFoyer$0)) + return [2,logement_foyer_of_jsoo(categorie_calcul_a_p_l.payload)]; + var _ahR_=caml_call2(Stdlib_Printf[4],_aet_,cons); + return caml_call1(Stdlib[2],_ahR_)} + function mode_occupation_to_jsoo(param) + {switch(param[0]) + {case 0: + var arg=param[1],t590=location_to_jsoo(arg); + return {"kind":"Locataire","payload":t590}; + case 1: + var arg$0=param[1],t592=logement_foyer_to_jsoo(arg$0); + return {"kind":"ResidentLogementFoyer","payload":t592}; + case 2: + var arg$1=param[1],t594=proprietaire_to_jsoo(arg$1); + return {"kind":"AccessionProprieteLocalUsageExclusifHabitation", + "payload":t594}; + case 3: + var arg$2=param[1],t596=location_to_jsoo(arg$2); + return {"kind":"SousLocataire","payload":t596}; + default: + var arg$3=param[1],t598=proprietaire_to_jsoo(arg$3); + return {"kind":"LocationAccession","payload":t598}}} + function mode_occupation_of_jsoo(mode_occupation) + {var cons=caml_string_of_jsstring(mode_occupation.kind); + if(! caml_string_notequal(cons,cst_AccessionProprieteLocalUsa)) + return [2,proprietaire_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons,cst_Locataire$0)) + return [0,location_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons,cst_LocationAccession$0)) + return [4,proprietaire_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons,cst_ResidentLogementFoyer)) + return [1,logement_foyer_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons,cst_SousLocataire$0)) + return [3,location_of_jsoo(mode_occupation.payload)]; + var _ahQ_=caml_call2(Stdlib_Printf[4],_aeu_,cons); + return caml_call1(Stdlib[2],_ahQ_)} + function eligibilite_aides_personnelle_$0(eligibilite_aides_personnelle_) + {function t609(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var _ahP_=personne_a_charge_of_jsoo(function_input0); + return ! + ! + caml_call1(eligibilite_aides_personnelle_[5],_ahP_)})} + var _ahN_=eligibilite_aides_personnelle_[4]; + function _ahO_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} + var + t608=caml_js_from_array(caml_call2(Stdlib_Array[15],_ahO_,_ahN_)), + t607= + caml_call1 + (Runtime_ocaml_Runtime[48],eligibilite_aides_personnelle_[3]), + t606=! ! eligibilite_aides_personnelle_[2], + t605= + caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aides_personnelle_[1]); + return {"dateCourante":t605, + "eligibilite":t606, + "nombrePersonnesAChargePrisesEnCompte":t607, + "coefficentsEnfantsGardeAlterneePrisEnCompte":t608, + "condition2R8234":caml_js_wrap_meth_callback(t609)}} + function eligibilite_aides_personnelle_$1(eligibilite_aides_personnelle_) + {var + _ahH_=caml_call1(Stdlib[2],cst_The_function_condition_2_r), + _ahI_= + caml_js_to_array + (eligibilite_aides_personnelle_.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _ahJ_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} + var + _ahK_=caml_call1(caml_call1(Stdlib_Array[15],_ahJ_),_ahI_), + _ahL_= + caml_call1 + (Runtime_ocaml_Runtime[49], + eligibilite_aides_personnelle_.nombrePersonnesAChargePrisesEnCompte), + _ahM_=eligibilite_aides_personnelle_.eligibilite | 0; + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aides_personnelle_.dateCourante), + _ahM_, + _ahL_, + _ahK_, + _ahH_]} + function logement_to_jsoo(logement) + {var + t622=zone_d_habitation_to_jsoo(logement[9]), + t621=caml_call1(Runtime_ocaml_Runtime[48],logement[8]), + t620=! ! logement[7], + t619=parent_ou_autre_to_jsoo(logement[6]), + t618=loue_ou_sous_loue_a_des_tiers_(logement[5]), + t617=parent_ou_autre_to_jsoo(logement[4]), + t616=mode_occupation_to_jsoo(logement[3]), + t615=! ! logement[2], + t614=! ! logement[1]; + return {"residencePrincipale":t614, + "estEhpadOuMaisonAutonomieL31312Asf":t615, + "modeOccupation":t616, + "proprietaire":t617, + "loueOuSousLoueADesTiers":t618, + "usufruit":t619, + "logementDecentL89462":t620, + "surfaceMCarres":t621, + "zone":t622}} + function logement_of_jsoo(logement) + {var + _ahA_=zone_d_habitation_of_jsoo(logement.zone), + _ahB_=caml_call1(Runtime_ocaml_Runtime[49],logement.surfaceMCarres), + _ahC_=logement.logementDecentL89462 | 0, + _ahD_=parent_ou_autre_of_jsoo(logement.usufruit), + _ahE_= + loue_ou_sous_loue_a_des_tiers_$0(logement.loueOuSousLoueADesTiers), + _ahF_=parent_ou_autre_of_jsoo(logement.proprietaire), + _ahG_=mode_occupation_of_jsoo(logement.modeOccupation); + return [0, + logement.residencePrincipale | 0, + logement.estEhpadOuMaisonAutonomieL31312Asf | 0, + _ahG_, + _ahF_, + _ahE_, + _ahD_, + _ahC_, + _ahB_, + _ahA_]} + function menage_to_jsoo(menage) + {var + t640=collectivite_to_jsoo$0(menage[9]), + t639=! ! menage[8], + t638=! ! menage[7], + t637=! ! menage[6], + t636=situation_familiale_to_jsoo(menage[5]), + t635=caml_call1(Runtime_ocaml_Runtime[48],menage[4]), + _ahw_=menage[3]; + function _ahx_(x){return personne_a_charge_to_jsoo(x)} + var + t634=caml_js_from_array(caml_call2(Stdlib_Array[15],_ahx_,_ahw_)), + t633=logement_to_jsoo(menage[2]), + _ahy_=menage[1]; + function _ahz_(x){return prestation_recue_to_jsoo(x)} + var t632=caml_js_from_array(caml_call2(Stdlib_Array[15],_ahz_,_ahy_)); + return {"prestationsRecues":t632, + "logement":t633, + "personnesACharge":t634, + "nombreAutresOccupantsLogement":t635, + "situationFamiliale":t636, + "conditionRattacheFoyerFiscalParentIfi":t637, + "enfantANaitreApresQuatriemeMoisGrossesse":t638, + "personnesAgeesHandicapeesFoyerR8444":t639, + "residence":t640}} + function menage_of_jsoo(menage) + {var + _ahk_=collectivite_of_jsoo$0(menage.residence), + _ahl_=menage.personnesAgeesHandicapeesFoyerR8444 | 0, + _ahm_=menage.enfantANaitreApresQuatriemeMoisGrossesse | 0, + _ahn_=menage.conditionRattacheFoyerFiscalParentIfi | 0, + _aho_=situation_familiale_of_jsoo(menage.situationFamiliale), + _ahp_= + caml_call1 + (Runtime_ocaml_Runtime[49],menage.nombreAutresOccupantsLogement), + _ahq_=caml_js_to_array(menage.personnesACharge); + function _ahr_(x){return personne_a_charge_of_jsoo(x)} + var + _ahs_=caml_call1(caml_call1(Stdlib_Array[15],_ahr_),_ahq_), + _aht_=logement_of_jsoo(menage.logement), + _ahu_=caml_js_to_array(menage.prestationsRecues); + function _ahv_(x){return prestation_recue_of_jsoo(x)} + return [0, + caml_call1(caml_call1(Stdlib_Array[15],_ahv_),_ahu_), + _aht_, + _ahs_, + _ahp_, + _aho_, + _ahn_, + _ahm_, + _ahl_, + _ahk_]} + function eligibilite_aides_personnelle_$2(eligibilite_aides_personnelle_) + {function t655(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _ahj_= + caml_call1 + (eligibilite_aides_personnelle_[6],function_input0); + return caml_call1(Runtime_jsoo_Runtime[5],_ahj_)})} + function t654(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {return ! + ! + caml_call1 + (eligibilite_aides_personnelle_[5],function_input0)})} + function t653(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {return ! + ! + caml_call1 + (eligibilite_aides_personnelle_[4],function_input0)})} + var + t652= + caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aides_personnelle_[3]), + t651=demandeur_to_jsoo(eligibilite_aides_personnelle_[2]), + t650=menage_to_jsoo(eligibilite_aides_personnelle_[1]); + return {"menageIn":t650, + "demandeurIn":t651, + "dateCouranteIn":t652, + "conditionLogementResidencePrincipaleIn": + caml_js_wrap_meth_callback(t653), + "conditionLogementSurfaceIn":caml_js_wrap_meth_callback(t654), + "dateEntreeVigueurDiffereeCchIn": + caml_js_wrap_meth_callback(t655)}} + function eligibilite_aides_personnelle_$3(eligibilite_aides_personnelle_) + {var + _ahe_=caml_call1(Stdlib[2],cst_The_function_date_entree_v), + _ahf_=caml_call1(Stdlib[2],cst_The_function_condition_log), + _ahg_=caml_call1(Stdlib[2],cst_The_function_condition_log$0), + _ahh_= + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aides_personnelle_.dateCouranteIn), + _ahi_=demandeur_of_jsoo(eligibilite_aides_personnelle_.demandeurIn); + return [0, + menage_of_jsoo(eligibilite_aides_personnelle_.menageIn), + _ahi_, + _ahh_, + _ahg_, + _ahf_, + _ahe_]} + function eligibilite_aide_personnalisee$2(eligibilite_aide_personnalisee) + {var + t661= + caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aide_personnalisee[3]), + t660=demandeur_to_jsoo(eligibilite_aide_personnalisee[2]), + t659=menage_to_jsoo(eligibilite_aide_personnalisee[1]); + return {"menageIn":t659,"demandeurIn":t660,"dateCouranteIn":t661}} + function eligibilite_aide_personnalisee$3(eligibilite_aide_personnalisee) + {var + _ahc_= + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aide_personnalisee.dateCouranteIn), + _ahd_=demandeur_of_jsoo(eligibilite_aide_personnalisee.demandeurIn); + return [0, + menage_of_jsoo(eligibilite_aide_personnalisee.menageIn), + _ahd_, + _ahc_]} + function eligibilite_allocation_logemen$2(eligibilite_allocation_logemen) + {var + t668=! ! eligibilite_allocation_logemen[4], + t667=demandeur_to_jsoo(eligibilite_allocation_logemen[3]), + t666=menage_to_jsoo(eligibilite_allocation_logemen[2]), + t665= + caml_call1(Runtime_jsoo_Runtime[5],eligibilite_allocation_logemen[1]); + return {"dateCouranteIn":t665, + "menageIn":t666, + "demandeurIn":t667, + "beneficieAidePersonnaliseeLogementIn":t668}} + function eligibilite_allocation_logemen$3(eligibilite_allocation_logemen) + {var + _ag$_= + eligibilite_allocation_logemen.beneficieAidePersonnaliseeLogementIn + | + 0, + _aha_=demandeur_of_jsoo(eligibilite_allocation_logemen.demandeurIn), + _ahb_=menage_of_jsoo(eligibilite_allocation_logemen.menageIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_allocation_logemen.dateCouranteIn), + _ahb_, + _aha_, + _ag$_]} + function eligibilite_prime_de_demenagem$2(eligibilite_prime_de_demenagem) + {var + t678= + caml_call1 + (Runtime_ocaml_Runtime[35],eligibilite_prime_de_demenagem[6]), + t677= + caml_call1(Runtime_jsoo_Runtime[5],eligibilite_prime_de_demenagem[5]), + t676=demandeur_to_jsoo(eligibilite_prime_de_demenagem[4]), + t675=menage_to_jsoo(eligibilite_prime_de_demenagem[3]), + t674= + caml_call1(Runtime_jsoo_Runtime[5],eligibilite_prime_de_demenagem[2]), + t673=informations_prime_de_demenage(eligibilite_prime_de_demenagem[1]); + return {"informationsIn":t673, + "dateEmmenagementIn":t674, + "menageIn":t675, + "demandeurIn":t676, + "dateCouranteIn":t677, + "depensesJustifieesReellementEngageesIn":t678}} + function eligibilite_prime_de_demenagem$3(eligibilite_prime_de_demenagem) + {var + _ag5_= + caml_call1 + (Runtime_ocaml_Runtime[42], + eligibilite_prime_de_demenagem.depensesJustifieesReellementEngageesIn), + _ag6_=caml_call1(Runtime_ocaml_Runtime[33],_ag5_), + _ag7_= + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_prime_de_demenagem.dateCouranteIn), + _ag8_=demandeur_of_jsoo(eligibilite_prime_de_demenagem.demandeurIn), + _ag9_=menage_of_jsoo(eligibilite_prime_de_demenagem.menageIn), + _ag__= + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_prime_de_demenagem.dateEmmenagementIn); + return [0, + informations_prime_de_demenage$0 + (eligibilite_prime_de_demenagem.informationsIn), + _ag__, + _ag9_, + _ag8_, + _ag7_, + _ag6_]} + function ressources_aides_personnelle_l$2(ressources_aides_personnelle_l) + {var + t698= + caml_call1 + (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[14]), + t697=paiement_logement_distinct_pro(ressources_aides_personnelle_l[13]), + t696= + caml_call1(Runtime_jsoo_Runtime[5],ressources_aides_personnelle_l[12]), + t695=! ! ressources_aides_personnelle_l[11], + t694=! ! ressources_aides_personnelle_l[10], + t693= + caml_call1(Runtime_jsoo_Runtime[5],ressources_aides_personnelle_l[9]), + t692=mode_occupation_to_jsoo(ressources_aides_personnelle_l[8]), + t691=situation_familiale_to_jsoo(ressources_aides_personnelle_l[7]), + _ag1_=ressources_aides_personnelle_l[6]; + function _ag2_(x){return personne_a_charge_to_jsoo(x)} + var + t690=caml_js_from_array(caml_call2(Stdlib_Array[15],_ag2_,_ag1_)), + t689=! ! ressources_aides_personnelle_l[5], + t688=! ! ressources_aides_personnelle_l[4], + _ag3_=ressources_aides_personnelle_l[3]; + function _ag4_(x){return personne_vivant_habituellement(x)} + var + t687=caml_js_from_array(caml_call2(Stdlib_Array[15],_ag4_,_ag3_)), + t686= + caml_call1 + (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[2]), + t685= + caml_call1 + (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[1]); + return {"ressourcesDemandeurIn":t685, + "ressourcesConjointIn":t686, + "personnesVivantHabituellementFoyerIn":t687, + "demandeurExerceActiviteRemunereeIn":t688, + "conjointExerceActiviteRemunereeIn":t689, + "personnesAChargeIn":t690, + "situationFamilialeIn":t691, + "modeOccupationIn":t692, + "dateCouranteIn":t693, + "conditionAgeBourseEnseignementSuperieurIn":t694, + "demandeurPoursuitDesEtudesIn":t695, + "dateDemandeOuReexamenDroitIn":t696, + "paiementLogementDistinctProfessionnelIn":t697, + "ressourcesMenageArrondiesBaseIn":t698}} + function ressources_aides_personnelle_l$3(ressources_aides_personnelle_l) + {var + _agH_= + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesMenageArrondiesBaseIn), + _agI_=caml_call1(Runtime_ocaml_Runtime[33],_agH_), + _agJ_= + paiement_logement_distinct_pro$0 + (ressources_aides_personnelle_l.paiementLogementDistinctProfessionnelIn), + _agK_= + caml_call1 + (Runtime_jsoo_Runtime[4], + ressources_aides_personnelle_l.dateDemandeOuReexamenDroitIn), + _agL_=ressources_aides_personnelle_l.demandeurPoursuitDesEtudesIn | 0, + _agM_= + ressources_aides_personnelle_l.conditionAgeBourseEnseignementSuperieurIn + | + 0, + _agN_= + caml_call1 + (Runtime_jsoo_Runtime[4], + ressources_aides_personnelle_l.dateCouranteIn), + _agO_= + mode_occupation_of_jsoo + (ressources_aides_personnelle_l.modeOccupationIn), + _agP_= + situation_familiale_of_jsoo + (ressources_aides_personnelle_l.situationFamilialeIn), + _agQ_= + caml_js_to_array(ressources_aides_personnelle_l.personnesAChargeIn); + function _agR_(x){return personne_a_charge_of_jsoo(x)} + var + _agS_=caml_call1(caml_call1(Stdlib_Array[15],_agR_),_agQ_), + _agT_= + ressources_aides_personnelle_l.conjointExerceActiviteRemunereeIn + | + 0, + _agU_= + ressources_aides_personnelle_l.demandeurExerceActiviteRemunereeIn + | + 0, + _agV_= + caml_js_to_array + (ressources_aides_personnelle_l.personnesVivantHabituellementFoyerIn); + function _agW_(x){return personne_vivant_habituellement$0(x)} + var + _agX_=caml_call1(caml_call1(Stdlib_Array[15],_agW_),_agV_), + _agY_= + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesConjointIn), + _agZ_=caml_call1(Runtime_ocaml_Runtime[33],_agY_), + _ag0_= + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesDemandeurIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33],_ag0_), + _agZ_, + _agX_, + _agU_, + _agT_, + _agS_, + _agP_, + _agO_, + _agN_, + _agM_, + _agL_, + _agK_, + _agJ_, + _agI_]} + function contributions_sociales_aides_p$2(contributions_sociales_aides_p) + {var + t713= + caml_call1(Runtime_jsoo_Runtime[5],contributions_sociales_aides_p[1]); + return {"dateCouranteIn":t713}} + function contributions_sociales_aides_p$3(contributions_sociales_aides_p) + {return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + contributions_sociales_aides_p.dateCouranteIn)]} + function calcul_aide_personnalisee_loge$11(calcul_aide_personnalisee_loge) + {var + t728=collectivite_to_jsoo$0(calcul_aide_personnalisee_loge[14]), + t727=! ! calcul_aide_personnalisee_loge[13], + t726= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[12]), + t725=! ! calcul_aide_personnalisee_loge[11], + t724=type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[10]), + t723=! ! calcul_aide_personnalisee_loge[9], + t722=! ! calcul_aide_personnalisee_loge[8], + t721=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[7]), + t720=situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[6]), + t719= + caml_call1 + (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[5]), + t718= + caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[4]), + t717=! ! calcul_aide_personnalisee_loge[3], + t716= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), + t715= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); + return {"loyerPrincipalBaseIn":t715, + "ressourcesMenageArrondiesIn":t716, + "beneficiaireAideAdulteOuEnfantHandicapesIn":t717, + "dateCouranteIn":t718, + "nombrePersonnesAChargeIn":t719, + "situationFamilialeCalculAplIn":t720, + "zoneIn":t721, + "logementEstChambreIn":t722, + "ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn":t723, + "typeAideIn":t724, + "colocationIn":t725, + "reductionLoyerSolidariteIn":t726, + "logementMeubleD8422In":t727, + "residenceIn":t728}} + function calcul_aide_personnalisee_loge$12(calcul_aide_personnalisee_loge) + {var + _agr_= + collectivite_of_jsoo$0(calcul_aide_personnalisee_loge.residenceIn), + _ags_=calcul_aide_personnalisee_loge.logementMeubleD8422In | 0, + _agt_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.reductionLoyerSolidariteIn), + _agu_=caml_call1(Runtime_ocaml_Runtime[33],_agt_), + _agv_=calcul_aide_personnalisee_loge.colocationIn | 0, + _agw_= + type_aides_personnelle_logemen$0 + (calcul_aide_personnalisee_loge.typeAideIn), + _agx_= + calcul_aide_personnalisee_loge.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn + | + 0, + _agy_=calcul_aide_personnalisee_loge.logementEstChambreIn | 0, + _agz_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _agA_= + situation_familiale_calcul_a_p$0 + (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), + _agB_= + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _agC_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _agD_= + calcul_aide_personnalisee_loge.beneficiaireAideAdulteOuEnfantHandicapesIn + | + 0, + _agE_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), + _agF_=caml_call1(Runtime_ocaml_Runtime[33],_agE_), + _agG_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.loyerPrincipalBaseIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33],_agG_), + _agF_, + _agD_, + _agC_, + _agB_, + _agA_, + _agz_, + _agy_, + _agx_, + _agw_, + _agv_, + _agu_, + _ags_, + _agr_]} + function calcul_equivalence_loyer_minim$2(calcul_equivalence_loyer_minim) + {var + t746= + caml_call1 + (Runtime_ocaml_Runtime[43],calcul_equivalence_loyer_minim[4]), + t745=! ! calcul_equivalence_loyer_minim[3], + t744= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_equivalence_loyer_minim[2]), + t743= + caml_call1(Runtime_jsoo_Runtime[5],calcul_equivalence_loyer_minim[1]); + return {"dateCouranteIn":t743, + "ressourcesMenageArrondiesIn":t744, + "condition2Du83225In":t745, + "nNombrePartsD83225In":t746}} + function calcul_equivalence_loyer_minim$3(calcul_equivalence_loyer_minim) + {var + _agn_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_equivalence_loyer_minim.nNombrePartsD83225In), + _ago_=calcul_equivalence_loyer_minim.condition2Du83225In | 0, + _agp_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_equivalence_loyer_minim.ressourcesMenageArrondiesIn), + _agq_=caml_call1(Runtime_ocaml_Runtime[33],_agp_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_equivalence_loyer_minim.dateCouranteIn), + _agq_, + _ago_, + _agn_]} + function calcul_nombre_part_logement_fo$2(calcul_nombre_part_logement_fo) + {function t755(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {return ! + ! + caml_call1 + (calcul_nombre_part_logement_fo[5],function_input0)})} + var + t754=collectivite_to_jsoo$0(calcul_nombre_part_logement_fo[4]), + t753=situation_familiale_calcul_a_p(calcul_nombre_part_logement_fo[3]), + t752= + caml_call1 + (Runtime_ocaml_Runtime[48],calcul_nombre_part_logement_fo[2]), + t751=! ! calcul_nombre_part_logement_fo[1]; + return {"condition2Du83225In":t751, + "nombrePersonnesAChargeIn":t752, + "situationFamilialeCalculAplIn":t753, + "residenceIn":t754, + "limitationMajorationPersonnesAChargeIn": + caml_js_wrap_meth_callback(t755)}} + function calcul_nombre_part_logement_fo$3(calcul_nombre_part_logement_fo) + {var + _agj_=caml_call1(Stdlib[2],cst_The_function_limitation_ma), + _agk_= + collectivite_of_jsoo$0(calcul_nombre_part_logement_fo.residenceIn), + _agl_= + situation_familiale_calcul_a_p$0 + (calcul_nombre_part_logement_fo.situationFamilialeCalculAplIn), + _agm_= + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_nombre_part_logement_fo.nombrePersonnesAChargeIn); + return [0, + calcul_nombre_part_logement_fo.condition2Du83225In | 0, + _agm_, + _agl_, + _agk_, + _agj_]} + function calcul_aide_personnalisee_loge$13(calcul_aide_personnalisee_loge) + {function t771(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _agi_= + caml_call1 + (calcul_aide_personnalisee_loge[12],function_input0); + return caml_call1(Runtime_ocaml_Runtime[43],_agi_)})} + function t770(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {return ! + ! + caml_call1 + (calcul_aide_personnalisee_loge[11],function_input0)})} + function t769(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {return ! + ! + caml_call1 + (calcul_aide_personnalisee_loge[10],function_input0)})} + var + t768=collectivite_to_jsoo$0(calcul_aide_personnalisee_loge[9]), + t767= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[8]), + t766= + caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[7]), + t765=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), + t764=situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[5]), + t763= + caml_call1 + (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[4]), + t762= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[3]), + t761= + caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[2]), + t760=type_logement_foyer_to_jsoo(calcul_aide_personnalisee_loge[1]); + return {"typeLogementFoyerIn":t760, + "dateConventionnementIn":t761, + "ressourcesMenageArrondiesIn":t762, + "nombrePersonnesAChargeIn":t763, + "situationFamilialeCalculAplIn":t764, + "zoneIn":t765, + "dateCouranteIn":t766, + "redevanceIn":t767, + "residenceIn":t768, + "condition2Du83225In":caml_js_wrap_meth_callback(t769), + "limitationMajorationPersonnesAChargeIn": + caml_js_wrap_meth_callback(t770), + "nNombrePartsD83225In":caml_js_wrap_meth_callback(t771)}} + function calcul_aide_personnalisee_loge$14(calcul_aide_personnalisee_loge) + {var + _af7_=caml_call1(Stdlib[2],cst_The_function_n_nombre_part), + _af8_=caml_call1(Stdlib[2],cst_The_function_limitation_ma$0), + _af9_=caml_call1(Stdlib[2],cst_The_function_condition_2_d), + _af__= + collectivite_of_jsoo$0(calcul_aide_personnalisee_loge.residenceIn), + _af$_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.redevanceIn), + _aga_=caml_call1(Runtime_ocaml_Runtime[33],_af$_), + _agb_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _agc_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _agd_= + situation_familiale_calcul_a_p$0 + (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), + _age_= + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _agf_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), + _agg_=caml_call1(Runtime_ocaml_Runtime[33],_agf_), + _agh_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateConventionnementIn); + return [0, + type_logement_foyer_of_jsoo + (calcul_aide_personnalisee_loge.typeLogementFoyerIn), + _agh_, + _agg_, + _age_, + _agd_, + _agc_, + _agb_, + _aga_, + _af__, + _af9_, + _af8_, + _af7_]} + function calcul_nombre_parts_accession_$2(calcul_nombre_parts_accession_) + {var + t782=situation_familiale_calcul_a_p(calcul_nombre_parts_accession_[2]), + t781= + caml_call1 + (Runtime_ocaml_Runtime[48],calcul_nombre_parts_accession_[1]); + return {"nombrePersonnesAChargeIn":t781, + "situationFamilialeCalculAplIn":t782}} + function calcul_nombre_parts_accession_$3(calcul_nombre_parts_accession_) + {var + _af6_= + situation_familiale_calcul_a_p$0 + (calcul_nombre_parts_accession_.situationFamilialeCalculAplIn); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_nombre_parts_accession_.nombrePersonnesAChargeIn), + _af6_]} + function calcul_aide_personnalisee_loge$15(calcul_aide_personnalisee_loge) + {var + t798= + caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[14]), + t797=neuf_ou_ancien_to_jsoo(calcul_aide_personnalisee_loge[13]), + t796=type_pret_to_jsoo(calcul_aide_personnalisee_loge[12]), + t795=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[11]), + t794=! ! calcul_aide_personnalisee_loge[10], + t793=! ! calcul_aide_personnalisee_loge[9], + t792= + caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[8]), + t791=! ! calcul_aide_personnalisee_loge[7], + t790= + caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[6]), + t789=type_travaux_logement_d832_15_(calcul_aide_personnalisee_loge[5]), + t788=situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[4]), + t787= + caml_call1 + (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[3]), + t786= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), + t785= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); + return {"mensualitePrincipaleIn":t785, + "ressourcesMenageArrondiesIn":t786, + "nombrePersonnesAChargeIn":t787, + "situationFamilialeCalculAplIn":t788, + "typeTravauxLogementIn":t789, + "dateSignaturePretIn":t790, + "localHabitePremiereFoisBeneficiaireIn":t791, + "dateEntreeLogementIn":t792, + "coproprieteIn":t793, + "situationR822111317In":t794, + "zoneIn":t795, + "typePretIn":t796, + "ancienneteLogementIn":t797, + "dateCouranteIn":t798}} + function calcul_aide_personnalisee_loge$16(calcul_aide_personnalisee_loge) + {var + _afR_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _afS_= + neuf_ou_ancien_of_jsoo + (calcul_aide_personnalisee_loge.ancienneteLogementIn), + _afT_=type_pret_of_jsoo(calcul_aide_personnalisee_loge.typePretIn), + _afU_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _afV_=calcul_aide_personnalisee_loge.situationR822111317In | 0, + _afW_=calcul_aide_personnalisee_loge.coproprieteIn | 0, + _afX_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateEntreeLogementIn), + _afY_= + calcul_aide_personnalisee_loge.localHabitePremiereFoisBeneficiaireIn + | + 0, + _afZ_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateSignaturePretIn), + _af0_= + type_travaux_logement_d832_15_$0 + (calcul_aide_personnalisee_loge.typeTravauxLogementIn), + _af1_= + situation_familiale_calcul_a_p$0 + (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), + _af2_= + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _af3_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), + _af4_=caml_call1(Runtime_ocaml_Runtime[33],_af3_), + _af5_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.mensualitePrincipaleIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33],_af5_), + _af4_, + _af2_, + _af1_, + _af0_, + _afZ_, + _afY_, + _afX_, + _afW_, + _afV_, + _afU_, + _afT_, + _afS_, + _afR_]} + function calcul_aide_personnalisee_loge$17(calcul_aide_personnalisee_loge) + {var + t820=collectivite_to_jsoo$0(calcul_aide_personnalisee_loge[8]), + t819= + caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[7]), + t818=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), + t817= + caml_call1 + (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[5]), + t816=situation_familiale_to_jsoo(calcul_aide_personnalisee_loge[4]), + t815= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[3]), + t814=type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[2]), + t813=mode_occupation_to_jsoo(calcul_aide_personnalisee_loge[1]); + return {"modeOccupationIn":t813, + "typeAideIn":t814, + "ressourcesMenageSansArrondiIn":t815, + "situationFamilialeIn":t816, + "nombrePersonnesAChargeIn":t817, + "zoneIn":t818, + "dateCouranteIn":t819, + "residenceIn":t820}} + function calcul_aide_personnalisee_loge$18(calcul_aide_personnalisee_loge) + {var + _afJ_= + collectivite_of_jsoo$0(calcul_aide_personnalisee_loge.residenceIn), + _afK_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _afL_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _afM_= + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _afN_= + situation_familiale_of_jsoo + (calcul_aide_personnalisee_loge.situationFamilialeIn), + _afO_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageSansArrondiIn), + _afP_=caml_call1(Runtime_ocaml_Runtime[33],_afO_), + _afQ_= + type_aides_personnelle_logemen$0 + (calcul_aide_personnalisee_loge.typeAideIn); + return [0, + mode_occupation_of_jsoo + (calcul_aide_personnalisee_loge.modeOccupationIn), + _afQ_, + _afP_, + _afN_, + _afM_, + _afL_, + _afK_, + _afJ_]} + function calcul_allocation_logement_loc$2(calcul_allocation_logement_loc) + {var + t843=changement_logement_d842_4_to_(calcul_allocation_logement_loc[15]), + t842=collectivite_to_jsoo$0(calcul_allocation_logement_loc[14]), + t841=! ! calcul_allocation_logement_loc[13], + t840= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[12]), + t839=! ! calcul_allocation_logement_loc[11], + t838=type_aides_personnelle_logemen(calcul_allocation_logement_loc[10]), + t837=! ! calcul_allocation_logement_loc[9], + t836=! ! calcul_allocation_logement_loc[8], + t835=zone_d_habitation_to_jsoo(calcul_allocation_logement_loc[7]), + t834=situation_familiale_calcul_a_p(calcul_allocation_logement_loc[6]), + t833= + caml_call1 + (Runtime_ocaml_Runtime[48],calcul_allocation_logement_loc[5]), + t832= + caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_loc[4]), + t831=! ! calcul_allocation_logement_loc[3], + t830= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[2]), + t829= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[1]); + return {"loyerPrincipalIn":t829, + "ressourcesMenageArrondiesIn":t830, + "beneficiaireAideAdulteOuEnfantHandicapesIn":t831, + "dateCouranteIn":t832, + "nombrePersonnesAChargeIn":t833, + "situationFamilialeCalculAplIn":t834, + "zoneIn":t835, + "logementEstChambreIn":t836, + "ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn":t837, + "typeAideIn":t838, + "colocationIn":t839, + "reductionLoyerSolidariteIn":t840, + "logementMeubleD8422In":t841, + "residenceIn":t842, + "changementLogementD8424In":t843}} + function calcul_allocation_logement_loc$3(calcul_allocation_logement_loc) + {var + _afs_= + changement_logement_d842_4_of_ + (calcul_allocation_logement_loc.changementLogementD8424In), + _aft_= + collectivite_of_jsoo$0(calcul_allocation_logement_loc.residenceIn), + _afu_=calcul_allocation_logement_loc.logementMeubleD8422In | 0, + _afv_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.reductionLoyerSolidariteIn), + _afw_=caml_call1(Runtime_ocaml_Runtime[33],_afv_), + _afx_=calcul_allocation_logement_loc.colocationIn | 0, + _afy_= + type_aides_personnelle_logemen$0 + (calcul_allocation_logement_loc.typeAideIn), + _afz_= + calcul_allocation_logement_loc.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn + | + 0, + _afA_=calcul_allocation_logement_loc.logementEstChambreIn | 0, + _afB_=zone_d_habitation_of_jsoo(calcul_allocation_logement_loc.zoneIn), + _afC_= + situation_familiale_calcul_a_p$0 + (calcul_allocation_logement_loc.situationFamilialeCalculAplIn), + _afD_= + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_loc.nombrePersonnesAChargeIn), + _afE_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_loc.dateCouranteIn), + _afF_= + calcul_allocation_logement_loc.beneficiaireAideAdulteOuEnfantHandicapesIn + | + 0, + _afG_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.ressourcesMenageArrondiesIn), + _afH_=caml_call1(Runtime_ocaml_Runtime[33],_afG_), + _afI_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.loyerPrincipalIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33],_afI_), + _afH_, + _afF_, + _afE_, + _afD_, + _afC_, + _afB_, + _afA_, + _afz_, + _afy_, + _afx_, + _afw_, + _afu_, + _aft_, + _afs_]} + function calcul_allocation_logement_acc$2(calcul_allocation_logement_acc) + {var + t873=! ! calcul_allocation_logement_acc[15], + t872=! ! calcul_allocation_logement_acc[14], + t871= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[13]), + t870= + caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_acc[12]), + t869=! ! calcul_allocation_logement_acc[11], + t868=type_travaux_logement_r842_5_t(calcul_allocation_logement_acc[10]), + t867= + caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_acc[9]), + t866=! ! calcul_allocation_logement_acc[8], + t865= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[7]), + t864= + caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_acc[6]), + t863=collectivite_to_jsoo$0(calcul_allocation_logement_acc[5]), + t862=zone_d_habitation_to_jsoo(calcul_allocation_logement_acc[4]), + t861=situation_familiale_calcul_a_p(calcul_allocation_logement_acc[3]), + t860= + caml_call1 + (Runtime_ocaml_Runtime[48],calcul_allocation_logement_acc[2]), + t859= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[1]); + return {"ressourcesMenageArrondiesBaseIn":t859, + "nombrePersonnesAChargeIn":t860, + "situationFamilialeCalculAplIn":t861, + "zoneIn":t862, + "residenceIn":t863, + "dateCouranteIn":t864, + "mensualitePrincipaleIn":t865, + "situationR822111317In":t866, + "dateSignaturePretIn":t867, + "typeTravauxLogementIn":t868, + "localHabitePremiereFoisBeneficiaireIn":t869, + "dateEntreeLogementIn":t870, + "chargesMensuellesPretIn":t871, + "coproprieteIn":t872, + "operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn": + t873}} + function calcul_allocation_logement_acc$3(calcul_allocation_logement_acc) + {var + _afb_= + calcul_allocation_logement_acc.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn + | + 0, + _afc_=calcul_allocation_logement_acc.coproprieteIn | 0, + _afd_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.chargesMensuellesPretIn), + _afe_=caml_call1(Runtime_ocaml_Runtime[33],_afd_), + _aff_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_acc.dateEntreeLogementIn), + _afg_= + calcul_allocation_logement_acc.localHabitePremiereFoisBeneficiaireIn + | + 0, + _afh_= + type_travaux_logement_r842_5_o + (calcul_allocation_logement_acc.typeTravauxLogementIn), + _afi_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_acc.dateSignaturePretIn), + _afj_=calcul_allocation_logement_acc.situationR822111317In | 0, + _afk_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.mensualitePrincipaleIn), + _afl_=caml_call1(Runtime_ocaml_Runtime[33],_afk_), + _afm_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_acc.dateCouranteIn), + _afn_= + collectivite_of_jsoo$0(calcul_allocation_logement_acc.residenceIn), + _afo_=zone_d_habitation_of_jsoo(calcul_allocation_logement_acc.zoneIn), + _afp_= + situation_familiale_calcul_a_p$0 + (calcul_allocation_logement_acc.situationFamilialeCalculAplIn), + _afq_= + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_acc.nombrePersonnesAChargeIn), + _afr_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.ressourcesMenageArrondiesBaseIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33],_afr_), + _afq_, + _afp_, + _afo_, + _afn_, + _afm_, + _afl_, + _afj_, + _afi_, + _afh_, + _afg_, + _aff_, + _afe_, + _afc_, + _afb_]} + function calcul_allocation_logement_foy$2(calcul_allocation_logement_foy) + {var + t898=categorie_equivalence_loyer_al(calcul_allocation_logement_foy[10]), + t897= + caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_foy[9]), + t896=zone_d_habitation_to_jsoo(calcul_allocation_logement_foy[8]), + t895=situation_familiale_calcul_a_p(calcul_allocation_logement_foy[7]), + t894= + caml_call1 + (Runtime_ocaml_Runtime[48],calcul_allocation_logement_foy[6]), + t893= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[5]), + t892= + caml_call1 + (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[4]), + t891=collectivite_to_jsoo$0(calcul_allocation_logement_foy[3]), + t890= + caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_foy[2]), + t889=type_logement_foyer_to_jsoo(calcul_allocation_logement_foy[1]); + return {"typeLogementFoyerIn":t889, + "dateConventionnementIn":t890, + "residenceIn":t891, + "redevanceIn":t892, + "ressourcesMenageArrondiesIn":t893, + "nombrePersonnesAChargeIn":t894, + "situationFamilialeCalculAplIn":t895, + "zoneIn":t896, + "dateCouranteIn":t897, + "categorieEquivalenceLoyerD84216In":t898}} + function calcul_allocation_logement_foy$3(calcul_allocation_logement_foy) + {var + _ae2_= + categorie_equivalence_loyer_al$0 + (calcul_allocation_logement_foy.categorieEquivalenceLoyerD84216In), + _ae3_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_foy.dateCouranteIn), + _ae4_=zone_d_habitation_of_jsoo(calcul_allocation_logement_foy.zoneIn), + _ae5_= + situation_familiale_calcul_a_p$0 + (calcul_allocation_logement_foy.situationFamilialeCalculAplIn), + _ae6_= + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_foy.nombrePersonnesAChargeIn), + _ae7_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.ressourcesMenageArrondiesIn), + _ae8_=caml_call1(Runtime_ocaml_Runtime[33],_ae7_), + _ae9_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.redevanceIn), + _ae__=caml_call1(Runtime_ocaml_Runtime[33],_ae9_), + _ae$_= + collectivite_of_jsoo$0(calcul_allocation_logement_foy.residenceIn), + _afa_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_foy.dateConventionnementIn); + return [0, + type_logement_foyer_of_jsoo + (calcul_allocation_logement_foy.typeLogementFoyerIn), + _afa_, + _ae$_, + _ae__, + _ae8_, + _ae6_, + _ae5_, + _ae4_, + _ae3_, + _ae2_]} + function calcul_allocation_logement_in_(calcul_allocation_logement_in) + {var + t916=collectivite_to_jsoo$0(calcul_allocation_logement_in[8]), + t915=type_aides_personnelle_logemen(calcul_allocation_logement_in[7]), + t914= + caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_in[6]), + t913=zone_d_habitation_to_jsoo(calcul_allocation_logement_in[5]), + t912= + caml_call1(Runtime_ocaml_Runtime[48],calcul_allocation_logement_in[4]), + t911=situation_familiale_to_jsoo(calcul_allocation_logement_in[3]), + t910= + caml_call1(Runtime_ocaml_Runtime[35],calcul_allocation_logement_in[2]), + t909=mode_occupation_to_jsoo(calcul_allocation_logement_in[1]); + return {"modeOccupationIn":t909, + "ressourcesMenageSansArrondiIn":t910, + "situationFamilialeIn":t911, + "nombrePersonnesAChargeIn":t912, + "zoneIn":t913, + "dateCouranteIn":t914, + "typeAideIn":t915, + "residenceIn":t916}} + function calcul_allocation_logement_in_$0(calcul_allocation_logement_in) + {var + _aeU_=collectivite_of_jsoo$0(calcul_allocation_logement_in.residenceIn), + _aeV_= + type_aides_personnelle_logemen$0 + (calcul_allocation_logement_in.typeAideIn), + _aeW_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_in.dateCouranteIn), + _aeX_=zone_d_habitation_of_jsoo(calcul_allocation_logement_in.zoneIn), + _aeY_= + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_in.nombrePersonnesAChargeIn), + _aeZ_= + situation_familiale_of_jsoo + (calcul_allocation_logement_in.situationFamilialeIn), + _ae0_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_in.ressourcesMenageSansArrondiIn), + _ae1_=caml_call1(Runtime_ocaml_Runtime[33],_ae0_); + return [0, + mode_occupation_of_jsoo + (calcul_allocation_logement_in.modeOccupationIn), + _ae1_, + _aeZ_, + _aeY_, + _aeX_, + _aeW_, + _aeV_, + _aeU_]} + function ouverture_droits_retraite_in_t(ouverture_droits_retraite_in) + {var + t925= + caml_call1(Runtime_jsoo_Runtime[5],ouverture_droits_retraite_in[1]); + return {"dateNaissanceAssureIn":t925}} + function ouverture_droits_retraite_in_o(ouverture_droits_retraite_in) + {return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + ouverture_droits_retraite_in.dateNaissanceAssureIn)]} + function impaye_depense_logement_in_to_(impaye_depense_logement_in) + {var + t932= + caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement_in[6]), + t931=depense_logement_to_jsoo(impaye_depense_logement_in[5]), + t930= + caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement_in[4]), + t929= + caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement_in[3]), + t928=versement_a_to_jsoo(impaye_depense_logement_in[2]), + t927=mode_occupation_to_jsoo(impaye_depense_logement_in[1]); + return {"modeOccupationIn":t927, + "aideVerseeIn":t928, + "montantAplIn":t929, + "montantChargesIn":t930, + "depenseLogementIn":t931, + "montantDetteIn":t932}} + function impaye_depense_logement_in_of_(impaye_depense_logement_in) + {var + _aeM_= + caml_call1 + (Runtime_ocaml_Runtime[42],impaye_depense_logement_in.montantDetteIn), + _aeN_=caml_call1(Runtime_ocaml_Runtime[33],_aeM_), + _aeO_= + depense_logement_of_jsoo(impaye_depense_logement_in.depenseLogementIn), + _aeP_= + caml_call1 + (Runtime_ocaml_Runtime[42], + impaye_depense_logement_in.montantChargesIn), + _aeQ_=caml_call1(Runtime_ocaml_Runtime[33],_aeP_), + _aeR_= + caml_call1 + (Runtime_ocaml_Runtime[42],impaye_depense_logement_in.montantAplIn), + _aeS_=caml_call1(Runtime_ocaml_Runtime[33],_aeR_), + _aeT_=versement_a_of_jsoo(impaye_depense_logement_in.aideVerseeIn); + return [0, + mode_occupation_of_jsoo + (impaye_depense_logement_in.modeOccupationIn), + _aeT_, + _aeS_, + _aeQ_, + _aeO_, + _aeN_]} + function calculette_aides_au_logement_i(calculette_aides_au_logement_i) + {var + t942= + caml_call1 + (Runtime_ocaml_Runtime[35],calculette_aides_au_logement_i[4]), + t941= + caml_call1(Runtime_jsoo_Runtime[5],calculette_aides_au_logement_i[3]), + t940=demandeur_to_jsoo(calculette_aides_au_logement_i[2]), + t939=menage_to_jsoo(calculette_aides_au_logement_i[1]); + return {"menageIn":t939, + "demandeurIn":t940, + "dateCouranteIn":t941, + "ressourcesMenagePrisesEnCompteIn":t942}} + function calculette_aides_au_logement_i$0(calculette_aides_au_logement_i) + {var + _aeI_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calculette_aides_au_logement_i.ressourcesMenagePrisesEnCompteIn), + _aeJ_=caml_call1(Runtime_ocaml_Runtime[33],_aeI_), + _aeK_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calculette_aides_au_logement_i.dateCouranteIn), + _aeL_=demandeur_of_jsoo(calculette_aides_au_logement_i.demandeurIn); + return [0, + menage_of_jsoo(calculette_aides_au_logement_i.menageIn), + _aeL_, + _aeK_, + _aeJ_]} + function calculette_aides_au_logement_g$2(calculette_aides_au_logement_g) + {var + t950= + caml_call1 + (Runtime_ocaml_Runtime[35],calculette_aides_au_logement_g[4]), + t949= + caml_call1(Runtime_jsoo_Runtime[5],calculette_aides_au_logement_g[3]), + t948=demandeur_to_jsoo(calculette_aides_au_logement_g[2]), + t947=menage_to_jsoo(calculette_aides_au_logement_g[1]); + return {"menageIn":t947, + "demandeurIn":t948, + "dateCouranteIn":t949, + "ressourcesMenagePrisesEnCompteIn":t950}} + function calculette_aides_au_logement_g$3(calculette_aides_au_logement_g) + {var + _aeE_= + caml_call1 + (Runtime_ocaml_Runtime[42], + calculette_aides_au_logement_g.ressourcesMenagePrisesEnCompteIn), + _aeF_=caml_call1(Runtime_ocaml_Runtime[33],_aeE_), + _aeG_= + caml_call1 + (Runtime_jsoo_Runtime[4], + calculette_aides_au_logement_g.dateCouranteIn), + _aeH_=demandeur_of_jsoo(calculette_aides_au_logement_g.demandeurIn); + return [0, + menage_of_jsoo(calculette_aides_au_logement_g.menageIn), + _aeH_, + _aeG_, + _aeF_]} + function base_mensuelle_allocations_fam$8(base_mensuelle_allocations_fam) + {var + t955= + caml_call1(Runtime_jsoo_Runtime[5],base_mensuelle_allocations_fam[1]); + return {"dateCouranteIn":t955}} + function base_mensuelle_allocations_fam$9(base_mensuelle_allocations_fam) + {return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + base_mensuelle_allocations_fam.dateCouranteIn)]} + function verification_age_inferieur_ou_$8(verification_age_inferieur_ou_) + {var + t959= + caml_call1(Runtime_jsoo_Runtime[3],verification_age_inferieur_ou_[3]), + t958= + caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[2]), + t957= + caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[1]); + return {"dateNaissanceIn":t957,"dateCouranteIn":t958,"anneesIn":t959}} + function verification_age_inferieur_ou_$9(verification_age_inferieur_ou_) + {var + _aeC_= + caml_call1 + (Runtime_jsoo_Runtime[2],verification_age_inferieur_ou_.anneesIn), + _aeD_= + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateNaissanceIn), + _aeD_, + _aeC_]} + function verification_age_superieur_a_i$1(verification_age_superieur_a_i) + {var + t965= + caml_call1(Runtime_jsoo_Runtime[3],verification_age_superieur_a_i[3]), + t964= + caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[2]), + t963= + caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[1]); + return {"dateNaissanceIn":t963,"dateCouranteIn":t964,"anneesIn":t965}} + function verification_age_superieur_a_i$2(verification_age_superieur_a_i) + {var + _aeA_= + caml_call1 + (Runtime_jsoo_Runtime[2],verification_age_superieur_a_i.anneesIn), + _aeB_= + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateNaissanceIn), + _aeB_, + _aeA_]} + function smic_in_to_jsoo$0(smic_in) + {var + t970=collectivite_to_jsoo$0(smic_in[2]), + t969=caml_call1(Runtime_jsoo_Runtime[5],smic_in[1]); + return {"dateCouranteIn":t969,"residenceIn":t970}} + function smic_in_of_jsoo$0(smic_in) + {var _aez_=collectivite_of_jsoo$0(smic_in.residenceIn); + return [0, + caml_call1(Runtime_jsoo_Runtime[4],smic_in.dateCouranteIn), + _aez_]} + function eligibilite_prestations_famili$2(eligibilite_prestations_famili) + {function t976(param) + {return caml_js_wrap_meth_callback + (function(param,function_input0) + {var + _aey_= + caml_call1 + (eligibilite_prestations_famili[4],function_input0); + return caml_call1(Runtime_jsoo_Runtime[3],_aey_)})} + var + t975=collectivite_to_jsoo$0(eligibilite_prestations_famili[3]), + t974= + element_prestations_familiales$1(eligibilite_prestations_famili[2]), + t973= + caml_call1(Runtime_jsoo_Runtime[5],eligibilite_prestations_famili[1]); + return {"dateCouranteIn":t973, + "prestationCouranteIn":t974, + "residenceIn":t975, + "ageL51232In":caml_js_wrap_meth_callback(t976)}} + function eligibilite_prestations_famili$3(eligibilite_prestations_famili) + {var + _aev_=caml_call1(Stdlib[2],cst_The_function_age_l512_3_2_), + _aew_= + collectivite_of_jsoo$0(eligibilite_prestations_famili.residenceIn), + _aex_= + element_prestations_familiales$2 + (eligibilite_prestations_famili.prestationCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_prestations_famili.dateCouranteIn), + _aex_, + _aew_, + _aev_]} + function contributions_sociales_aides_p$4 + (contributions_sociales_aides_p$1) + {return contributions_sociales_aides_p$0 + (contributions_sociales_aides_p + (contributions_sociales_aides_p$3 + (contributions_sociales_aides_p$1)))} + function calcul_equivalence_loyer_minim$4 + (calcul_equivalence_loyer_minim$1) + {return calcul_equivalence_loyer_minim$0 + (calcul_equivalence_loyer_minim + (calcul_equivalence_loyer_minim$3 + (calcul_equivalence_loyer_minim$1)))} + function calcul_nombre_part_logement_fo$4 + (calcul_nombre_part_logement_fo$1) + {return calcul_nombre_part_logement_fo$0 + (calcul_nombre_part_logement_fo + (calcul_nombre_part_logement_fo$3 + (calcul_nombre_part_logement_fo$1)))} + function calcul_nombre_parts_accession_$4 + (calcul_nombre_parts_accession_$1) + {return calcul_nombre_parts_accession_$0 + (calcul_nombre_parts_accession_ + (calcul_nombre_parts_accession_$3 + (calcul_nombre_parts_accession_$1)))} + function ouverture_droits_retraite$0(ouverture_droits_retraite_in) + {return ouverture_droits_retraite_to_j + (ouverture_droits_retraite + (ouverture_droits_retraite_in_o(ouverture_droits_retraite_in)))} + function impaye_depense_logement$0(impaye_depense_logement_in) + {return impaye_depense_logement_to_jso + (impaye_depense_logement + (impaye_depense_logement_in_of_(impaye_depense_logement_in)))} + function base_mensuelle_allocations_fam$10(base_mensuelle_allocations_fam) + {return base_mensuelle_allocations_fam$6 + (base_mensuelle_allocations_fam$5 + (base_mensuelle_allocations_fam$9 + (base_mensuelle_allocations_fam)))} + function verification_age_inferieur_ou_$10(verification_age_inferieur_ou_) + {return verification_age_inferieur_ou_$6 + (verification_age_inferieur_ou_$5 + (verification_age_inferieur_ou_$9 + (verification_age_inferieur_ou_)))} + function verification_age_superieur_a$2(verification_age_superieur_a_i) + {return verification_age_superieur_a_t$0 + (verification_age_superieur_a$1 + (verification_age_superieur_a_i$2 + (verification_age_superieur_a_i)))} + function smic$2(smic_in) + {return smic_to_jsoo$0(smic$1(smic_in_of_jsoo$0(smic_in)))} + function calcul_aide_personnalisee_loge$19 + (calcul_aide_personnalisee_loge$0) + {return calcul_aide_personnalisee_loge$3 + (calcul_aide_personnalisee_loge + (calcul_aide_personnalisee_loge$12 + (calcul_aide_personnalisee_loge$0)))} + function calcul_aide_personnalisee_loge$20(calcul_aide_personnalisee_loge) + {return calcul_aide_personnalisee_loge$5 + (calcul_aide_personnalisee_loge$0 + (calcul_aide_personnalisee_loge$14 + (calcul_aide_personnalisee_loge)))} + function calcul_aide_personnalisee_loge$21(calcul_aide_personnalisee_loge) + {return calcul_aide_personnalisee_loge$7 + (calcul_aide_personnalisee_loge$1 + (calcul_aide_personnalisee_loge$16 + (calcul_aide_personnalisee_loge)))} + function ressources_aides_personnelle_l$4 + (ressources_aides_personnelle_l$1) + {return ressources_aides_personnelle_l$0 + (ressources_aides_personnelle_l + (ressources_aides_personnelle_l$3 + (ressources_aides_personnelle_l$1)))} + function eligibilite_prestations_famili$4 + (eligibilite_prestations_famili$1) + {return eligibilite_prestations_famili$0 + (eligibilite_prestations_famili + (eligibilite_prestations_famili$3 + (eligibilite_prestations_famili$1)))} + function calcul_allocation_logement_loc$4 + (calcul_allocation_logement_loc$1) + {return calcul_allocation_logement_loc$0 + (calcul_allocation_logement_loc + (calcul_allocation_logement_loc$3 + (calcul_allocation_logement_loc$1)))} + function calcul_allocation_logement_foy$4 + (calcul_allocation_logement_foy$1) + {return calcul_allocation_logement_foy$0 + (calcul_allocation_logement_foy + (calcul_allocation_logement_foy$3 + (calcul_allocation_logement_foy$1)))} + function calcul_allocation_logement_acc$4 + (calcul_allocation_logement_acc$1) + {return calcul_allocation_logement_acc$0 + (calcul_allocation_logement_acc + (calcul_allocation_logement_acc$3 + (calcul_allocation_logement_acc$1)))} + function calcul_aide_personnalisee_loge$22(calcul_aide_personnalisee_loge) + {return calcul_aide_personnalisee_loge$9 + (calcul_aide_personnalisee_loge$2 + (calcul_aide_personnalisee_loge$18 + (calcul_aide_personnalisee_loge)))} + function eligibilite_aides_personnelle_$4 + (eligibilite_aides_personnelle_$1) + {return eligibilite_aides_personnelle_$0 + (eligibilite_aides_personnelle_ + (eligibilite_aides_personnelle_$3 + (eligibilite_aides_personnelle_$1)))} + function calcul_allocation_logement$0(calcul_allocation_logement_in) + {return calcul_allocation_logement_to_ + (calcul_allocation_logement + (calcul_allocation_logement_in_$0 + (calcul_allocation_logement_in)))} + function eligibilite_prime_de_demenagem$4 + (eligibilite_prime_de_demenagem$1) + {return eligibilite_prime_de_demenagem$0 + (eligibilite_prime_de_demenagem + (eligibilite_prime_de_demenagem$3 + (eligibilite_prime_de_demenagem$1)))} + function eligibilite_allocation_logemen$4 + (eligibilite_allocation_logemen$1) + {return eligibilite_allocation_logemen$0 + (eligibilite_allocation_logemen + (eligibilite_allocation_logemen$3 + (eligibilite_allocation_logemen$1)))} + function eligibilite_aide_personnalisee$4 + (eligibilite_aide_personnalisee$1) + {return eligibilite_aide_personnalisee$0 + (eligibilite_aide_personnalisee + (eligibilite_aide_personnalisee$3 + (eligibilite_aide_personnalisee$1)))} + function calculette_aides_au_logement$0(calculette_aides_au_logement_i) + {return calculette_aides_au_logement_t + (calculette_aides_au_logement + (calculette_aides_au_logement_i$0 + (calculette_aides_au_logement_i)))} + function calculette_aides_au_logement_g$4 + (calculette_aides_au_logement_g$1) + {return calculette_aides_au_logement_g$0 + (calculette_aides_au_logement_g + (calculette_aides_au_logement_g$3 + (calculette_aides_au_logement_g$1)))} + function t1005(param) + {return caml_js_wrap_callback(calculette_aides_au_logement_g$4)} + function t1004(param) + {return caml_js_wrap_callback(calculette_aides_au_logement$0)} + function t1003(param) + {return caml_js_wrap_callback(eligibilite_aide_personnalisee$4)} + function t1002(param) + {return caml_js_wrap_callback(eligibilite_allocation_logemen$4)} + function t1001(param) + {return caml_js_wrap_callback(eligibilite_prime_de_demenagem$4)} + function t1000(param) + {return caml_js_wrap_callback(calcul_allocation_logement$0)} + function t999(param) + {return caml_js_wrap_callback(eligibilite_aides_personnelle_$4)} + function t998(param) + {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$22)} + function t997(param) + {return caml_js_wrap_callback(calcul_allocation_logement_acc$4)} + function t996(param) + {return caml_js_wrap_callback(calcul_allocation_logement_foy$4)} + function t995(param) + {return caml_js_wrap_callback(calcul_allocation_logement_loc$4)} + function t994(param) + {return caml_js_wrap_callback(eligibilite_prestations_famili$4)} + function t993(param) + {return caml_js_wrap_callback(ressources_aides_personnelle_l$4)} + function t992(param) + {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$21)} + function t991(param) + {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$20)} + function t990(param) + {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$19)} + function t989(param){return caml_js_wrap_callback(smic$2)} + function t988(param) + {return caml_js_wrap_callback(verification_age_superieur_a$2)} + function t987(param) + {return caml_js_wrap_callback(verification_age_inferieur_ou_$10)} + function t986(param) + {return caml_js_wrap_callback(base_mensuelle_allocations_fam$10)} + function t985(param) + {return caml_js_wrap_callback(impaye_depense_logement$0)} + function t984(param) + {return caml_js_wrap_callback(ouverture_droits_retraite$0)} + function t983(param) + {return caml_js_wrap_callback(calcul_nombre_parts_accession_$4)} + function t982(param) + {return caml_js_wrap_callback(calcul_nombre_part_logement_fo$4)} + function t981(param) + {return caml_js_wrap_callback(calcul_equivalence_loyer_minim$4)} + function t980(param) + {return caml_js_wrap_callback(contributions_sociales_aides_p$4)} + caml_call2 + (Js_of_ocaml_Js[50], + cst_AidesLogementLib, + {"contributionsSocialesAidesPersonnelleLogement": + caml_js_wrap_meth_callback(t980), + "calculEquivalenceLoyerMinimale":caml_js_wrap_meth_callback(t981), + "calculNombrePartLogementFoyer":caml_js_wrap_meth_callback(t982), + "calculNombrePartsAccessionPropriete":caml_js_wrap_meth_callback(t983), + "ouvertureDroitsRetraite":caml_js_wrap_meth_callback(t984), + "impayeDepenseLogement":caml_js_wrap_meth_callback(t985), + "baseMensuelleAllocationsFamiliales":caml_js_wrap_meth_callback(t986), + "verificationAgeInferieurOuEgalA":caml_js_wrap_meth_callback(t987), + "verificationAgeSuperieurA":caml_js_wrap_meth_callback(t988), + "smic":caml_js_wrap_meth_callback(t989), + "calculAidePersonnaliseeLogementLocatif": + caml_js_wrap_meth_callback(t990), + "calculAidePersonnaliseeLogementFoyer":caml_js_wrap_meth_callback(t991), + "calculAidePersonnaliseeLogementAccessionPropriete": + caml_js_wrap_meth_callback(t992), + "ressourcesAidesPersonnelleLogement":caml_js_wrap_meth_callback(t993), + "eligibilitePrestationsFamiliales":caml_js_wrap_meth_callback(t994), + "calculAllocationLogementLocatif":caml_js_wrap_meth_callback(t995), + "calculAllocationLogementFoyer":caml_js_wrap_meth_callback(t996), + "calculAllocationLogementAccessionPropriete": + caml_js_wrap_meth_callback(t997), + "calculAidePersonnaliseeLogement":caml_js_wrap_meth_callback(t998), + "eligibiliteAidesPersonnelleLogement":caml_js_wrap_meth_callback(t999), + "calculAllocationLogement":caml_js_wrap_meth_callback(t1000), + "eligibilitePrimeDeDemenagement":caml_js_wrap_meth_callback(t1001), + "eligibiliteAllocationLogement":caml_js_wrap_meth_callback(t1002), + "eligibiliteAidePersonnaliseeLogement": + caml_js_wrap_meth_callback(t1003), + "calculetteAidesAuLogement":caml_js_wrap_meth_callback(t1004), + "calculetteAidesAuLogementGardeAlternee": + caml_js_wrap_meth_callback(t1005)}); + var + Law_source_Aides_logement_api_= [0, type_pret_to_jsoo, type_pret_of_jsoo, @@ -132569,22 +139666,22 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ type_aides_personnelle_logemen$0, situation_familiale_to_jsoo, situation_familiale_of_jsoo, - prise_en_charge_to_jsoo, - prise_en_charge_of_jsoo, + prise_en_charge_to_jsoo$0, + prise_en_charge_of_jsoo$0, type_logement_foyer_to_jsoo, type_logement_foyer_of_jsoo, categorie_equivalence_loyer_al, categorie_equivalence_loyer_al$0, situation_familiale_calcul_a_p, situation_familiale_calcul_a_p$0, - collectivite_to_jsoo, - collectivite_of_jsoo, + collectivite_to_jsoo$0, + collectivite_of_jsoo$0, prise_en_charge_enfant_to_jsoo, prise_en_charge_enfant_of_jsoo, - situation_obligation_scolaire_, - situation_obligation_scolaire_$0, - element_prestations_familiales, - element_prestations_familiales$0, + situation_obligation_scolaire_$1, + situation_obligation_scolaire_$2, + element_prestations_familiales$1, + element_prestations_familiales$2, convention_bailleur_social_to_, convention_bailleur_social_of_, convention_a_n_h_a_to_jsoo, @@ -132597,38 +139694,38 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ conditions_etrangers_of_jsoo, personne_vivant_habituellement, personne_vivant_habituellement$0, - eligibilite_aide_personnalisee, eligibilite_aide_personnalisee$0, - eligibilite_prime_de_demenagem, + eligibilite_aide_personnalisee$1, eligibilite_prime_de_demenagem$0, - ressources_aides_personnelle_l, + eligibilite_prime_de_demenagem$1, ressources_aides_personnelle_l$0, - contributions_sociales_aides_p, + ressources_aides_personnelle_l$1, contributions_sociales_aides_p$0, - calcul_aide_personnalisee_loge, - calcul_aide_personnalisee_loge$0, - calcul_equivalence_loyer_minim, - calcul_equivalence_loyer_minim$0, - calcul_nombre_part_logement_fo, - calcul_nombre_part_logement_fo$0, - calcul_aide_personnalisee_loge$1, - calcul_aide_personnalisee_loge$2, - calcul_nombre_parts_accession_, - calcul_nombre_parts_accession_$0, + contributions_sociales_aides_p$1, calcul_aide_personnalisee_loge$3, calcul_aide_personnalisee_loge$4, - traitement_formule_aide_finale, - traitement_formule_aide_finale$0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_nombre_part_logement_fo$0, + calcul_nombre_part_logement_fo$1, calcul_aide_personnalisee_loge$5, calcul_aide_personnalisee_loge$6, + calcul_nombre_parts_accession_$0, + calcul_nombre_parts_accession_$1, + calcul_aide_personnalisee_loge$7, + calcul_aide_personnalisee_loge$8, + traitement_formule_aide_finale, + traitement_formule_aide_finale$0, + calcul_aide_personnalisee_loge$9, + calcul_aide_personnalisee_loge$10, infos_changement_logement_d842, infos_changement_logement_d842$0, - calcul_allocation_logement_loc, calcul_allocation_logement_loc$0, - calcul_allocation_logement_acc, + calcul_allocation_logement_loc$1, calcul_allocation_logement_acc$0, - calcul_allocation_logement_foy, + calcul_allocation_logement_acc$1, calcul_allocation_logement_foy$0, + calcul_allocation_logement_foy$1, calcul_allocation_logement_to_, calcul_allocation_logement_of_, ouverture_droits_retraite_to_j, @@ -132637,16 +139734,16 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ impaye_depense_logement_of_jso, calculette_aides_au_logement_t, calculette_aides_au_logement_o, - calculette_aides_au_logement_g, calculette_aides_au_logement_g$0, - base_mensuelle_allocations_fam, - base_mensuelle_allocations_fam$0, - verification_age_inferieur_ou_, - verification_age_inferieur_ou_$0, - verification_age_superieur_a_t, - verification_age_superieur_a_o, - smic_to_jsoo, - smic_of_jsoo, + calculette_aides_au_logement_g$1, + base_mensuelle_allocations_fam$6, + base_mensuelle_allocations_fam$7, + verification_age_inferieur_ou_$6, + verification_age_inferieur_ou_$7, + verification_age_superieur_a_t$0, + verification_age_superieur_a_o$0, + smic_to_jsoo$0, + smic_of_jsoo$0, neuf_ou_ancien_to_jsoo, neuf_ou_ancien_of_jsoo, tranche_revenu_to_jsoo, @@ -132657,8 +139754,8 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ autre_personne_a_charge_of_jso, date_naissance_troisieme_ou_de, date_naissance_troisieme_ou_de$0, - eligibilite_allocation_logemen, eligibilite_allocation_logemen$0, + eligibilite_allocation_logemen$1, pret_to_jsoo, pret_of_jsoo, logement_foyer_to_jsoo, @@ -132677,8 +139774,8 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ informations_prime_de_demenage$0, proprietaire_to_jsoo, proprietaire_of_jsoo, - eligibilite_prestations_famili, eligibilite_prestations_famili$0, + eligibilite_prestations_famili$1, demandeur_to_jsoo, demandeur_of_jsoo, enfant_a_charge_to_jsoo, @@ -132691,44 +139788,44 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ categorie_calcul_a_p_l_of_jsoo, mode_occupation_to_jsoo, mode_occupation_of_jsoo, - eligibilite_aides_personnelle_, eligibilite_aides_personnelle_$0, + eligibilite_aides_personnelle_$1, logement_to_jsoo, logement_of_jsoo, menage_to_jsoo, menage_of_jsoo, - eligibilite_aides_personnelle_$1, eligibilite_aides_personnelle_$2, - eligibilite_aide_personnalisee$1, + eligibilite_aides_personnelle_$3, eligibilite_aide_personnalisee$2, - eligibilite_allocation_logemen$1, + eligibilite_aide_personnalisee$3, eligibilite_allocation_logemen$2, - eligibilite_prime_de_demenagem$1, + eligibilite_allocation_logemen$3, eligibilite_prime_de_demenagem$2, - ressources_aides_personnelle_l$1, + eligibilite_prime_de_demenagem$3, ressources_aides_personnelle_l$2, - contributions_sociales_aides_p$1, + ressources_aides_personnelle_l$3, contributions_sociales_aides_p$2, - calcul_aide_personnalisee_loge$7, - calcul_aide_personnalisee_loge$8, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_nombre_part_logement_fo$1, - calcul_nombre_part_logement_fo$2, - calcul_aide_personnalisee_loge$9, - calcul_aide_personnalisee_loge$10, - calcul_nombre_parts_accession_$1, - calcul_nombre_parts_accession_$2, + contributions_sociales_aides_p$3, calcul_aide_personnalisee_loge$11, calcul_aide_personnalisee_loge$12, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3, + calcul_nombre_part_logement_fo$2, + calcul_nombre_part_logement_fo$3, calcul_aide_personnalisee_loge$13, calcul_aide_personnalisee_loge$14, - calcul_allocation_logement_loc$1, + calcul_nombre_parts_accession_$2, + calcul_nombre_parts_accession_$3, + calcul_aide_personnalisee_loge$15, + calcul_aide_personnalisee_loge$16, + calcul_aide_personnalisee_loge$17, + calcul_aide_personnalisee_loge$18, calcul_allocation_logement_loc$2, - calcul_allocation_logement_acc$1, + calcul_allocation_logement_loc$3, calcul_allocation_logement_acc$2, - calcul_allocation_logement_foy$1, + calcul_allocation_logement_acc$3, calcul_allocation_logement_foy$2, + calcul_allocation_logement_foy$3, calcul_allocation_logement_in_, calcul_allocation_logement_in_$0, ouverture_droits_retraite_in_t, @@ -132737,143 +139834,119 @@ bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[ impaye_depense_logement_in_of_, calculette_aides_au_logement_i, calculette_aides_au_logement_i$0, - calculette_aides_au_logement_g$1, calculette_aides_au_logement_g$2, - base_mensuelle_allocations_fam$1, - base_mensuelle_allocations_fam$2, - verification_age_inferieur_ou_$1, - verification_age_inferieur_ou_$2, - verification_age_superieur_a_i, - verification_age_superieur_a_i$0, - smic_in_to_jsoo, - smic_in_of_jsoo, - eligibilite_prestations_famili$1, + calculette_aides_au_logement_g$3, + base_mensuelle_allocations_fam$8, + base_mensuelle_allocations_fam$9, + verification_age_inferieur_ou_$8, + verification_age_inferieur_ou_$9, + verification_age_superieur_a_i$1, + verification_age_superieur_a_i$2, + smic_in_to_jsoo$0, + smic_in_of_jsoo$0, eligibilite_prestations_famili$2, - contributions_sociales_aides_p$3, - calcul_equivalence_loyer_minim$3, - calcul_nombre_part_logement_fo$3, - calcul_nombre_parts_accession_$3, - ouverture_droits_retraite, - impaye_depense_logement, - base_mensuelle_allocations_fam$3, - verification_age_inferieur_ou_$3, - verification_age_superieur_a, - smic, - calcul_aide_personnalisee_loge$15, - calcul_aide_personnalisee_loge$16, - calcul_aide_personnalisee_loge$17, - ressources_aides_personnelle_l$3, eligibilite_prestations_famili$3, - calcul_allocation_logement_loc$3, - calcul_allocation_logement_foy$3, - calcul_allocation_logement_acc$3, - calcul_aide_personnalisee_loge$18, - eligibilite_aides_personnelle_$3, - calcul_allocation_logement, - eligibilite_prime_de_demenagem$3, - eligibilite_allocation_logemen$3, - eligibilite_aide_personnalisee$3, - calculette_aides_au_logement, - calculette_aides_au_logement_g$3]; - runtime.caml_register_global - (1745, - Law_source_Aides_logement_api_, - "Law_source__Aides_logement_api_web"); - return; - } + contributions_sociales_aides_p$4, + calcul_equivalence_loyer_minim$4, + calcul_nombre_part_logement_fo$4, + calcul_nombre_parts_accession_$4, + ouverture_droits_retraite$0, + impaye_depense_logement$0, + base_mensuelle_allocations_fam$10, + verification_age_inferieur_ou_$10, + verification_age_superieur_a$2, + smic$2, + calcul_aide_personnalisee_loge$19, + calcul_aide_personnalisee_loge$20, + calcul_aide_personnalisee_loge$21, + ressources_aides_personnelle_l$4, + eligibilite_prestations_famili$4, + calcul_allocation_logement_loc$4, + calcul_allocation_logement_foy$4, + calcul_allocation_logement_acc$4, + calcul_aide_personnalisee_loge$22, + eligibilite_aides_personnelle_$4, + calcul_allocation_logement$0, + eligibilite_prime_de_demenagem$4, + eligibilite_allocation_logemen$4, + eligibilite_aide_personnalisee$4, + calculette_aides_au_logement$0, + calculette_aides_au_logement_g$4]; + caml_register_global + (9737, + Law_source_Aides_logement_api_, + "Law_source__Aides_logement_api_web"); + return} (globalThis)); -//# 1 ".api_web.eobjs/jsoo/dune__exe__Api_web.cmo.js" +//# 1 ".api_web.eobjs/byte/dune__exe__Api_web.cmo.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cmo, use-js-string=true, version=5.1.1 - -//# 6 ".api_web.eobjs/jsoo/dune__exe__Api_web.cmo.js" (function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_js_wrap_callback = runtime.caml_js_wrap_callback, - caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - Law_source_Allocations_familia = + (globalThis) + {"use strict"; + var + runtime=globalThis.jsoo_runtime, + caml_js_wrap_callback=runtime.caml_js_wrap_callback, + caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback; + function caml_call1(f,a0) + {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} + var + global_data=runtime.caml_get_global_data(), + Law_source_Allocations_familia= global_data.Law_source__Allocations_familiales_api_web, - Runtime_jsoo_Runtime = global_data.Runtime_jsoo__Runtime, - Law_source_Aides_logement_api_ = + Runtime_jsoo_Runtime=global_data.Runtime_jsoo__Runtime, + Law_source_Aides_logement_api_= global_data.Law_source__Aides_logement_api_web; - global_data.CamlinternalOO; - var Js_of_ocaml_Js = global_data.Js_of_ocaml__Js; - function t4(param){ - return caml_js_wrap_callback - (function(calculette_aides_au_logement_g){ - function _b_(param){ - var - result = - caml_call1 - (Law_source_Aides_logement_api_[248], - calculette_aides_au_logement_g); - return result.aideFinale; - } - return caml_call1(Runtime_jsoo_Runtime[6], _b_); - }); - } - function t3(param){ - return caml_js_wrap_callback - (function(interface_allocations_familial){ - function _a_(param){ - var - result = - caml_call1 - (Law_source_Allocations_familia[61], - interface_allocations_familial); - return result.iMontantVerse; - } - return caml_call1(Runtime_jsoo_Runtime[6], _a_); - }); - } - var t2 = Runtime_jsoo_Runtime[1]; - caml_call1 - (Js_of_ocaml_Js[51], - {eventsManager: t2, - computeAllocationsFamiliales: caml_js_wrap_meth_callback(t3), - computeAidesAuLogement: caml_js_wrap_meth_callback(t4)}); - var Dune_exe_Api_web = [0]; - runtime.caml_register_global(12, Dune_exe_Api_web, "Dune__exe__Api_web"); - return; - } + global_data.CamlinternalOO; + var Js_of_ocaml_Js=global_data.Js_of_ocaml__Js; + function t4(param) + {return caml_js_wrap_callback + (function(calculette_aides_au_logement_g) + {function _b_(param) + {var + t1= + caml_call1 + (Law_source_Aides_logement_api_[248], + calculette_aides_au_logement_g); + return t1.aideFinale} + return caml_call1(Runtime_jsoo_Runtime[6],_b_)})} + function t3(param) + {return caml_js_wrap_callback + (function(interface_allocations_familial) + {function _a_(param) + {var + t0= + caml_call1 + (Law_source_Allocations_familia[61], + interface_allocations_familial); + return t0.iMontantVerse} + return caml_call1(Runtime_jsoo_Runtime[6],_a_)})} + caml_call1 + (Js_of_ocaml_Js[51], + {"eventsManager":Runtime_jsoo_Runtime[1], + "computeAllocationsFamiliales":caml_js_wrap_meth_callback(t3), + "computeAidesAuLogement":caml_js_wrap_meth_callback(t4)}); + var Dune_exe_Api_web=[0]; + runtime.caml_register_global(12,Dune_exe_Api_web,"Dune__exe__Api_web"); + return} (globalThis)); -//# 1 "../../.js/default/stdlib/std_exit.cmo.js" +//# 1 "../../.js/stdlib/std_exit.cmo.js" // Generated by js_of_ocaml -//# buildInfo:effects=false, kind=cmo, use-js-string=true, version=5.1.1 - -//# 6 "../../.js/default/stdlib/std_exit.cmo.js" (function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib; - caml_call1(Stdlib[103], 0); - var Std_exit = [0]; - runtime.caml_register_global(1, Std_exit, "Std_exit"); - return; - } + (globalThis) + {"use strict"; + var runtime=globalThis.jsoo_runtime; + function caml_call1(f,a0) + {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} + var global_data=runtime.caml_get_global_data(),Stdlib=global_data.Stdlib; + caml_call1(Stdlib[103],0); + var Std_exit=[0]; + runtime.caml_register_global(1,Std_exit,"Std_exit"); + return} (globalThis)); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJhcGlfd2ViLmJjLmpzIiwic291cmNlUm9vdCI6IiIsIm5hbWVzIjpbImNhbWxfaW50NjRfaXNfemVybyIsIngiLCJjYW1sX3N0cl9yZXBlYXQiLCJuIiwicyIsInIiLCJsIiwiY2FtbF9pbnQ2NF9vZmZzZXQiLCJNYXRoIiwiY2FtbF9yYWlzZV9jb25zdGFudCIsInRhZyIsImNhbWxfZ2xvYmFsX2RhdGEiLCJjYW1sX3JhaXNlX3plcm9fZGl2aWRlIiwiTWxJbnQ2NCIsImxvIiwibWkiLCJoaSIsInRoaXMiLCJ4aGkiLCJoIiwic2lnbiIsIm9mZnNldCIsIm1vZHVsdXMiLCJkaXZpc29yIiwicXVvdGllbnQiLCJ5IiwicSIsImNhbWxfaW50NjRfb2ZfaW50MzIiLCJjYW1sX2ludDY0X3RvX2ludDMyIiwiY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSIsImNhbWxfaW50NjRfbmVnIiwiY2FtbF9qc2J5dGVzX29mX3N0cmluZyIsImpzb29fc3lzX2dldGVudiIsInByb2Nlc3MiLCJnbG9iYWxUaGlzIiwidW5kZWZpbmVkIiwiY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWciLCJpIiwiY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2UiLCJleG4iLCJmb3JjZSIsImNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZSIsImNhbWxfcmFpc2Vfd2l0aF9hcmciLCJhcmciLCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzIiwiY2FtbF9yYWlzZV93aXRoX3N0cmluZyIsIm1zZyIsImNhbWxfaW52YWxpZF9hcmd1bWVudCIsImNhbWxfcGFyc2VfZm9ybWF0IiwiZm10IiwibGVuIiwiZiIsImMiLCJjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nIiwicmF3YnVmZmVyIiwiYnVmZmVyIiwiY2FtbF9pbnQ2NF9mb3JtYXQiLCJ3YmFzZSIsImN2dGJsIiwicCIsImNhbWxfZXhwbTFfZmxvYXQiLCJjYW1sX21sX2NvbmRpdGlvbl9icm9hZGNhc3QiLCJ0IiwianNvb19pc19hc2NpaSIsImNhbWxfdXRmMTZfb2ZfdXRmOCIsImIiLCJjMSIsImMyIiwidiIsImoiLCJTdHJpbmciLCJjYW1sX2pzc3RyaW5nX29mX3N0cmluZyIsImZzX25vZGVfc3VwcG9ydGVkIiwibWFrZV9wYXRoX2lzX2Fic29sdXRlIiwicG9zaXgiLCJwYXRoIiwid2luMzIiLCJzcGxpdERldmljZVJlIiwicmVzdWx0IiwiZGV2aWNlIiwiaXNVbmMiLCJCb29sZWFuIiwicm9vdCIsInNlcCIsInBhdGhfaXNfYWJzb2x1dGUiLCJjYW1sX3RyYWlsaW5nX3NsYXNoIiwibmFtZSIsImNhbWxfY3VycmVudF9kaXIiLCJjYW1sX21ha2VfcGF0aCIsImNvbXAwIiwiY29tcCIsIm5jb21wIiwiY2FtbF91dGY4X29mX3V0ZjE2IiwiZCIsImNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIiwidW5peF9lcnJvciIsIm1ha2VfdW5peF9lcnJfYXJncyIsImNvZGUiLCJzeXNjYWxsIiwiZXJybm8iLCJ2YXJpYW50IiwibnVsbCIsImFyZ3MiLCJjYW1sX25hbWVkX3ZhbHVlcyIsImNhbWxfbmFtZWRfdmFsdWUiLCJubSIsImNhbWxfcmFpc2Vfd2l0aF9hcmdzIiwiY2FtbF9zdWJhcnJheV90b19qc2J5dGVzIiwiYSIsImNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMiLCJNbEJ5dGVzIiwiY29udGVudHMiLCJsZW5ndGgiLCJjb250ZW50IiwiY2FtbF9pc19tbF9ieXRlcyIsImNhbWxfaXNfbWxfc3RyaW5nIiwiY2FtbF9ieXRlc19vZl9hcnJheSIsIlVpbnQ4QXJyYXkiLCJjYW1sX2J5dGVzX29mX2pzYnl0ZXMiLCJjYW1sX2J5dGVzX29mX3N0cmluZyIsImNhbWxfcmFpc2Vfc3lzX2Vycm9yIiwiY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUiLCJjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkiLCJjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzIiwiY2FtbF9jcmVhdGVfYnl0ZXMiLCJjYW1sX21sX2J5dGVzX2xlbmd0aCIsImNhbWxfYmxpdF9ieXRlcyIsInMxIiwiaTEiLCJzMiIsImkyIiwiTWxGaWxlIiwiTWxGYWtlRmlsZSIsIm9sZCIsImJ1ZiIsInBvcyIsImNsZW4iLCJuZXdfc3RyIiwib2xkX2RhdGEiLCJkYXRhIiwiTWxGYWtlRmQiLCJmaWxlIiwiZmxhZ3MiLCJNbEZha2VEZXZpY2UiLCJyZXMiLCJTeW1ib2wiLCJuYW1lX3NsYXNoIiwibW9kZSIsInJhaXNlX3VuaXgiLCJwYXJlbnQiLCJSZWdFeHAiLCJzZWVuIiwibSIsImVudHJ5Iiwib2siLCJBcnJheSIsImJ5dGVzIiwiY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIiwiY2FtbF9zdHJpbmdfdW5zYWZlX2dldCIsImNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9ieXRlc19ib3VuZF9lcnJvciIsImNhbWxfYnl0ZXNfdW5zYWZlX3NldCIsImNhbWxfYnl0ZXNfc2V0IiwiTWxOb2RlRmQiLCJmZCIsInJlcXVpcmUiLCJlcnIiLCJidWZfb2Zmc2V0IiwicmVhZCIsIk1sTm9kZURldmljZSIsImNvbnN0cyIsImtleSIsImlzQ2hhcmFjdGVyRGV2aWNlIiwibyIsImpzX3N0YXRzIiwidG9fZGlyIiwidGFyZ2V0IiwibGluayIsImZpbGVfa2luZCIsImNhbWxfZ2V0X3Jvb3QiLCJjYW1sX2ZhaWx3aXRoIiwiY2FtbF9yb290IiwianNvb19tb3VudF9wb2ludCIsInJlc29sdmVfZnNfZGV2aWNlIiwiY2FtbF9zeXNfaXNfZGlyZWN0b3J5IiwiY2FtbF9yYWlzZV9ub3RfZm91bmQiLCJjYW1sX3N5c19nZXRlbnYiLCJzaGlmdF9yaWdodF9uYXQiLCJuYXQxIiwib2ZzMSIsImxlbjEiLCJuYXQyIiwib2ZzMiIsIm5iaXRzIiwid3JhcCIsImNhbWxfZ3Jfc3RhdGUiLCJjYW1sX2dyX3N0YXRlX2dldCIsImNhbWxfZ3JfcG9pbnRfY29sb3IiLCJpbSIsImNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZXNvbHZlIiwiTWxPYmplY3RUYWJsZSIsIk5haXZlTG9va3VwIiwib2JqcyIsImNhbWxfc3lzX3JlbmFtZSIsIm9fcm9vdCIsIm5fcm9vdCIsImNhbWxfbG9nMTBfZmxvYXQiLCJjYW1sX3J1bnRpbWVfd2FybmluZ3MiLCJjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIiwiYm9vbCIsImNhbWxfY2xhc3NpZnlfZmxvYXQiLCJpc0Zpbml0ZSIsImlzTmFOIiwiY2FtbF9tbF9jaGFubmVscyIsImNhbWxfcmVmaWxsIiwiY2hhbiIsInN0ciIsInN0cl9hIiwibnJlYWQiLCJjYW1sX2FycmF5X2JvdW5kX2Vycm9yIiwiY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmUiLCJjaGFuaWQiLCJwcmV2X21heCIsImNhbWxfZ2NfbWlub3IiLCJ1bml0IiwiYmlnSW50IiwiQkFTRSIsIkxPR19CQVNFIiwiTUFYX0lOVCIsIk1BWF9JTlRfQVJSIiwic21hbGxUb0FycmF5IiwiREVGQVVMVF9BTFBIQUJFVCIsIkJpZ0ludCIsImpvb19nbG9iYWxfb2JqZWN0Iiwic3VwcG9ydHNOYXRpdmVCaWdJbnQiLCJJbnRlZ2VyIiwicmFkaXgiLCJhbHBoYWJldCIsImNhc2VTZW5zaXRpdmUiLCJwYXJzZVZhbHVlIiwicGFyc2VCYXNlIiwiQmlnSW50ZWdlciIsInZhbHVlIiwiT2JqZWN0IiwiU21hbGxJbnRlZ2VyIiwiTmF0aXZlQmlnSW50IiwiaXNQcmVjaXNlIiwiYXJyYXlUb1NtYWxsIiwiYXJyIiwidHJpbSIsImNvbXBhcmVBYnMiLCJjcmVhdGVBcnJheSIsInRydW5jYXRlIiwiYWRkIiwibF9hIiwibF9iIiwiY2FycnkiLCJiYXNlIiwic3VtIiwiYWRkQW55IiwiYWRkU21hbGwiLCJzdWJ0cmFjdCIsImFfbCIsImJfbCIsImJvcnJvdyIsImRpZmZlcmVuY2UiLCJzdWJ0cmFjdEFueSIsInN1YnRyYWN0U21hbGwiLCJzbWFsbCIsIm11bHRpcGx5TG9uZyIsInByb2R1Y3QiLCJhX2kiLCJiX2oiLCJtdWx0aXBseVNtYWxsIiwic2hpZnRMZWZ0IiwibXVsdGlwbHlLYXJhdHN1YmEiLCJhYyIsImJkIiwiYWJjZCIsInVzZUthcmF0c3ViYSIsImwxIiwibDIiLCJhYnMiLCJtdWx0aXBseVNtYWxsQW5kQXJyYXkiLCJzcXVhcmUiLCJhX2oiLCJkaXZNb2QxIiwiZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0IiwibGFtYmRhIiwicmVtYWluZGVyIiwicXVvdGllbnREaWdpdCIsInNoaWZ0IiwiZGl2TW9kU21hbGwiLCJkaXZNb2QyIiwicGFydCIsImd1ZXNzIiwieGxlbiIsImhpZ2h4IiwiaGlnaHkiLCJjaGVjayIsImRpdk1vZEFueSIsInNlbGYiLCJFcnJvciIsImNvbXBhcmlzb24iLCJxU2lnbiIsIm1vZCIsIm1TaWduIiwiXzAiLCJfMSIsIl8yIiwiZXhwIiwiSW5maW5pdHkiLCJpc0Jhc2ljUHJpbWUiLCJtaWxsZXJSYWJpblRlc3QiLCJuUHJldiIsInN0cmljdCIsImlzUHJpbWUiLCJiaXRzIiwibG9nTiIsIml0ZXJhdGlvbnMiLCJuZXdUIiwibmV3UiIsImxhc3RUIiwibGFzdFIiLCJwb3dlcnNPZlR3byIsInBvd2VyczJMZW5ndGgiLCJoaWdoZXN0UG93ZXIyIiwic2hpZnRfaXNTbWFsbCIsInJlbVF1byIsImJpdHdpc2UiLCJmbiIsInhTaWduIiwieVNpZ24iLCJ4UmVtIiwieVJlbSIsInhEaWdpdCIsInlEaWdpdCIsInhEaXZNb2QiLCJ5RGl2TW9kIiwiTE9CTUFTS19JIiwiTE9CTUFTS19CSSIsInJvdWdoTE9CIiwiaW50ZWdlckxvZ2FyaXRobSIsInRtcCIsImUiLCJtYXgiLCJtaW4iLCJnY2QiLCJsY20iLCJyYW5kQmV0d2VlbiIsImxvdyIsImhpZ2giLCJyYW5nZSIsImRpZ2l0cyIsInRvQmFzZSIsInJlc3RyaWN0ZWQiLCJ0b3AiLCJkaWdpdCIsInRleHQiLCJhYnNCYXNlIiwiYWxwaGFiZXRWYWx1ZXMiLCJpc05lZ2F0aXZlIiwic3RhcnQiLCJwYXJzZUJhc2VGcm9tQXJyYXkiLCJ2YWwiLCJwb3ciLCJzdHJpbmdpZnkiLCJuZWciLCJOdW1iZXIiLCJvdXQiLCJsZWZ0IiwiZGl2bW9kIiwidG9CYXNlU3RyaW5nIiwiemVyb3MiLCJwYXJzZUludCIsInBhcnNlU3RyaW5nVmFsdWUiLCJzcGxpdCIsImRlY2ltYWxQbGFjZSIsImlzVmFsaWQiLCJwYXJzZU51bWJlclZhbHVlIiwibWxfel9ub3JtYWxpemUiLCJtbF96X3BvdyIsInoxIiwibWxfel9yb290IiwieiIsInplcm8iLCJvbmUiLCJlbmQiLCJhbnMiLCJ0d28iLCJtaWQiLCJwbyIsIm1sX3pfcm9vdHJlbSIsImNhbWxfbWxfY29uZGl0aW9uX25ldyIsImNhbWxfaW50NjRfb2ZfYnl0ZXMiLCJjYW1sX2JhX3VpbnQ4X2dldDY0IiwiYmEiLCJpMCIsIm9mcyIsImIxIiwiYjIiLCJiMyIsImI0IiwiYjUiLCJiNiIsImI3IiwiYjgiLCJjYW1sX2ludDY0X3RvX2J5dGVzIiwiY2FtbF9pbnQ2NF9tYXJzaGFsIiwid3JpdGVyIiwic2l6ZXMiLCJjYW1sX2JhX251bV9kaW1zIiwiY2FtbF93cmFwX2V4Y2VwdGlvbiIsImNhbWxfY3JlYXRlX2ZpbGUiLCJqc29vX2NyZWF0ZV9maWxlIiwiY2FtbF9mc19pbml0IiwiY2FtbF9nZXRfY29udGludWF0aW9uX2NhbGxzdGFjayIsImNhbWxfcGFyc2VyX3RyYWNlIiwiY2FtbF9zZXRfcGFyc2VyX3RyYWNlIiwib2xkZmxhZyIsImNhbWxfbGlzdF9vZl9qc19hcnJheSIsImNhbWxfbXVsIiwiY2FtbF9oYXNoX21peF9pbnQiLCJudW1fZGlnaXRzX25hdCIsIm5hdCIsImNhbWxfaGFzaF9uYXQiLCJjYW1sX2NhbGxfZ2VuIiwiYXJnc0xlbiIsImciLCJuYXJncyIsImV4dHJhX2FyZ3MiLCJhcmd1bWVudHMiLCJjYW1sX2NhbGxiYWNrIiwiY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50cyIsImNhbWxfc3lzX2NoZGlyIiwiZGlyIiwiY2FtbF9vYmpfdGFnIiwiRnVuY3Rpb24iLCJjYW1sX29ial91cGRhdGVfdGFnIiwiY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuXyIsImNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbiIsImNhbWxfbGF6eV91cGRhdGVfdG9fZm9yY2luZyIsImZpZWxkMCIsImNhbWxfZ2NfY291bnRlcnMiLCJtbF96X2RpdiIsInoyIiwibWxfel9zaWduIiwibWxfel9hZGQiLCJtbF96X2NkaXYiLCJ6MV9wb3MiLCJ6Ml9wb3MiLCJjYW1sX2dyX3N5bmNocm9uaXplIiwiY2FtbF91bml4X2Nsb3NlZGlyIiwiZGlyX2hhbmRsZSIsImNhbWxfdW5peF9vcGVuZGlyIiwiY2FtbF91bml4X3Jld2luZGRpciIsIm5ld19kaXJfaGFuZGxlIiwiY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSIsImNhbWxfdW5peF9yZWFkZGlyIiwiY2FtbF91bml4X2ZpbmRmaXJzdCIsInBhdGhfanMiLCJmaXJzdF9lbnRyeSIsImNhbWxfaXNfY29udGludWF0aW9uX3RhZyIsImxvZzJfb2siLCJqc29vX2Zsb29yX2xvZzIiLCJjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQiLCJmbG9hdDMyYSIsIkZsb2F0MzJBcnJheSIsImludDMyYSIsIkludDMyQXJyYXkiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSIsImNhbWxfaW50NjRfYml0c19vZl9mbG9hdCIsImsiLCJyMyIsInIyIiwicjEiLCJjYW1sX2JhX3NlcmlhbGl6ZSIsInN6IiwiY29tcGxleCIsImNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQiLCJraW5kIiwiY2FtbF9iYV9jcmVhdGVfYnVmZmVyIiwic2l6ZSIsInZpZXciLCJGbG9hdDY0QXJyYXkiLCJJbnQ4QXJyYXkiLCJJbnQxNkFycmF5IiwiVWludDE2QXJyYXkiLCJjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMiLCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMiLCJOYU4iLCJjYW1sX2JhX2dldF9zaXplIiwiZGltcyIsIm5fZGltcyIsImNhbWxfaW50NjRfY3JlYXRlX2xvX2hpIiwiY2FtbF9pbnQ2NF9oaTMyIiwiY2FtbF9pbnQ2NF9sbzMyIiwiY2FtbF9iYV9jdXN0b21fbmFtZSIsIk1sX0JpZ2FycmF5IiwibGF5b3V0IiwicmUiLCJ0b3RhbCIsImsxIiwiazIiLCJNbF9CaWdhcnJheV9jXzFfMSIsImNhbWxfYmFfY3JlYXRlX3Vuc2FmZSIsInNpemVfcGVyX2VsZW1lbnQiLCJjYW1sX2JhX2Rlc2VyaWFsaXplIiwicmVhZGVyIiwibnVtX2RpbXMiLCJzaXplX2RpbSIsInNpemVfZGltX2hpIiwic2l6ZV9kaW1fbG8iLCJzaXh0eSIsImludDY0IiwiY2FtbF9iYV9jb21wYXJlIiwiY2FtbF9oYXNoX21peF9pbnQ2NCIsImNhbWxfaGFzaF9taXhfZmxvYXQiLCJ2MCIsImNhbWxfYmFfaGFzaCIsIm51bV9lbHRzIiwidyIsImNhbWxfaW50MzJfdW5tYXJzaGFsIiwiY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsIiwiY2FtbF9pbnQ2NF91bm1hcnNoYWwiLCJjYW1sX2ludDY0X2NvbXBhcmUiLCJjYW1sX2ludDY0X2hhc2giLCJjYW1sX2N1c3RvbV9vcHMiLCJjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20iLCJjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b20iLCJudW0iLCJjdXN0b20iLCJzd2FwIiwiY2FtbF9jb21wYXJlX3ZhbF90YWciLCJjYW1sX2ludF9jb21wYXJlIiwiY2FtbF9zdHJpbmdfY29tcGFyZSIsImNhbWxfYnl0ZXNfY29tcGFyZSIsImNhbWxfY29tcGFyZV92YWwiLCJzdGFjayIsInRhZ19hIiwidGFnX2IiLCJjYW1sX2dyZWF0ZXJ0aGFuIiwiZGl2X2hlbHBlciIsImRpdl9kaWdpdF9uYXQiLCJuYXRxIiwib2ZzcSIsIm5hdHIiLCJvZnNyIiwicmVtIiwibnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0Iiwic2hpZnRfbGVmdF9uYXQiLCJNbE5hdCIsImNyZWF0ZV9uYXQiLCJzZXRfdG9femVyb19uYXQiLCJpbmNyX25hdCIsImNhcnJ5X2luIiwiYWRkX25hdCIsImxlbjIiLCJuYXRfb2ZfYXJyYXkiLCJtdWx0X2RpZ2l0X25hdCIsIm5hdDMiLCJvZnMzIiwieDEiLCJ4MiIsIngzIiwiZGVjcl9uYXQiLCJzdWJfbmF0IiwiY29tcGFyZV9uYXQiLCJkaXZfbmF0IiwicXVvIiwiY2FtbF9iYV9ibGl0Iiwic3JjIiwiZHN0IiwiaXNfZGlnaXRfaW50IiwiY2FtbF9pbnQ2NF9kaXYiLCJjYW1sX2pzX2h0bWxfZW50aXRpZXMiLCJlbnRpdHkiLCJ0ZW1wIiwiZG9jdW1lbnQiLCJjYW1sX3N0cmluZ191bnNhZmVfc2V0IiwiY2FtbF9pbnQ2NF9vZl9mbG9hdCIsImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0IiwiY2FtbF9iYV9zZXRfMiIsIm1sX3pfa3JvbmVja2VyIiwibWxfel9vZl9pbnQ2NCIsImk2NCIsImNhbWxfYXJndiIsIm1haW4iLCJhcmd2IiwiYXJnczIiLCJjYW1sX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfanNfZXZhbF9zdHJpbmciLCJldmFsIiwic2VyaWFsaXplX25hdCIsImNhbWxfbWVtcHJvZl9zZXQiLCJfY29udHJvbCIsIm1sX3pfbmVnIiwiY2FtbF9zeXNfZXhpdCIsImNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yIiwiY2FtbF9qc19mcm9tX2FycmF5IiwiY2FtbF9iYV9yZXNoYXBlIiwidmluZCIsIm5ld19kaW0iLCJjYW1sX29vX2xhc3RfaWQiLCJjYW1sX3NldF9vb19pZCIsImNhbWxfZ3JfZmlsbF9yZWN0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmEiLCJzdHIxIiwicG9zMSIsImJhMiIsInBvczIiLCJzbGljZSIsImNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZSIsImpzbmFtZSIsImNhbWxfZ2V0X2dsb2JhbF9kYXRhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCIsImNhbWxfYmFfdWludDhfZ2V0MTYiLCJtbF96X29mX2ludDMyIiwiY2FtbF9jb21wYXJlIiwiY2FtbF9NRDVUcmFuc2Zvcm0iLCJ4eCIsImZmIiwiZ2ciLCJoaCIsImlpIiwiY2FtbF9NRDVVcGRhdGUiLCJjdHgiLCJpbnB1dCIsImlucHV0X2xlbiIsImluX2J1ZiIsImlucHV0X3BvcyIsIm1pc3NpbmciLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3JlYWRfcG9sbCIsImN1cnNvciIsImNhbGxiYWNrcyIsImNhbWxfZnJlc2hfb29faWQiLCJjYW1sX2ludDY0X3RvX2Zsb2F0IiwiY2FtbF9iYV9nZXRfMSIsImNhbWxfYmlnc3RyaW5nX21lbWNtcCIsImNhbWxfbmV3X3N0cmluZyIsImNhbWxfZXJmX2Zsb2F0IiwiYTEiLCJhMiIsImEzIiwiYTQiLCJhNSIsImNhbWxfYmFfdWludDhfZ2V0MzIiLCJjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoIiwibWxfel9zaGlmdF9yaWdodCIsImFtdCIsImNhbWxfc3RyX2luaXRpYWxpemUiLCJjYW1sX29ial9ibG9jayIsImNhbWxfZ3JfY2xlYXJfZ3JhcGgiLCJiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyIiwiYnMiLCJjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkIiwiX3VuaXQiLCJseG9yX2RpZ2l0X25hdCIsImNhbWxfb2JqX2FkZF9vZmZzZXQiLCJjYW1sX2ZpbmFsX3JlbGVhc2UiLCJjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUiLCJjYW1sX2pzX3RvX2FycmF5IiwibWxfel9sb2dvciIsImNhbWxfc3lzX2lzX3JlZ3VsYXJfZmlsZSIsImNhbWxfZ3JfcGxvdCIsImNvbG9yIiwiY2FtbF9ieXRlc19zZXQ2NCIsImNhbWxfc3RyaW5nX3NldDE2IiwiaTE2IiwiY2FtbF9pbnQ2NF9ic3dhcCIsIm1sX3pfZml0c19pbnQiLCJtbF96X2ZpdHNfaW50MzIiLCJjYW1sX2djX21ham9yIiwibWxfel9zaGlmdF9sZWZ0IiwiY2FtbF9sZXhfYXJyYXkiLCJjYW1sX2xleF9lbmdpbmUiLCJ0YmwiLCJzdGFydF9zdGF0ZSIsImxleGJ1ZiIsImxleF9idWZmZXIiLCJsZXhfYnVmZmVyX2xlbiIsImxleF9zdGFydF9wb3MiLCJsZXhfY3Vycl9wb3MiLCJsZXhfbGFzdF9wb3MiLCJsZXhfbGFzdF9hY3Rpb24iLCJsZXhfZW9mX3JlYWNoZWQiLCJsZXhfYmFzZSIsImxleF9iYWNrdHJrIiwibGV4X2RlZmF1bHQiLCJsZXhfdHJhbnMiLCJsZXhfY2hlY2siLCJzdGF0ZSIsImJhY2t0cmsiLCJjYW1sX3N5c19maWxlX2V4aXN0cyIsImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2FycmF5X3N1YiIsImNhbWxfYnl0ZXNfZXF1YWwiLCJjYW1sX2dyX3NpemVfeCIsImNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXMiLCJjYW1sX2F0b21pY19mZXRjaF9hZGQiLCJyZWYiLCJvc190eXBlIiwiY2FtbF9zeXNfY29uc3Rfb3N0eXBlX2N5Z3dpbiIsImNhbWxfY29zaF9mbG9hdCIsIk1sTXV0ZXgiLCJjYW1sX21sX211dGV4X25ldyIsImNhbWxfZXBoZV9rZXlfb2Zmc2V0IiwiY2FtbF9lcGhlX2NoZWNrX2tleSIsIndlYWsiLCJjYW1sX2hhc2hfbWl4X2ZpbmFsIiwiY2FtbF9ncl90ZXh0X3NpemUiLCJ0eHQiLCJjYW1sX2xleF9ydW5fbWVtIiwibWVtIiwiY3Vycl9wb3MiLCJjYW1sX2xleF9ydW5fdGFnIiwiY2FtbF9uZXdfbGV4X2VuZ2luZSIsImxleF9tZW0iLCJsZXhfYmFzZV9jb2RlIiwibGV4X2JhY2t0cmtfY29kZSIsImxleF9kZWZhdWx0X2NvZGUiLCJsZXhfdHJhbnNfY29kZSIsImxleF9jaGVja19jb2RlIiwibGV4X2NvZGUiLCJwY19vZmYiLCJwc3RhdGUiLCJiYXNlX2NvZGUiLCJjYW1sX2JhX3VpbnQ4X3NldDY0IiwibWxfel9wb3Bjb3VudCIsImNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfbGVzc2VxdWFsIiwiY2FtbF9hY29zaF9mbG9hdCIsImNhbWxfTUQ1SW5pdCIsIkFycmF5QnVmZmVyIiwiYjMyIiwiVWludDMyQXJyYXkiLCJjYW1sX21sX2ZsdXNoIiwiY2FtbF9zZWVrX291dCIsImNhbWxfbWxfc2Vla19vdXRfNjQiLCJjb21wYXJlX25hdF9yZWFsIiwiY2FtbF9nY19zZXQiLCJjYW1sX2pzX2dldCIsImNhbWxfdW5peF9pc2F0dHkiLCJmaWxlRGVzY3JpcHRvciIsInR0eSIsImNhbWxfbWxfc2V0X2J1ZmZlcmVkIiwiY2FtbF9nY19jb21wYWN0aW9uIiwiY2FtbF9lcGhlX2dldF9rZXkiLCJjYW1sX3VuaXhfbG9jYWx0aW1lIiwiRGF0ZSIsImRfbnVtIiwiamFudWFyeWZpcnN0IiwiZG95IiwiamFuIiwianVsIiwic3RkVGltZXpvbmVPZmZzZXQiLCJjYW1sX3VuaXhfbWt0aW1lIiwidG0iLCJ0bTIiLCJqc29vX3pfb2ZfanNfc3RyaW5nX2Jhc2UiLCJiYyIsIm1sX3pfb2Zfc3Vic3RyaW5nX2Jhc2UiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2J5dGVzX3RvX2JhIiwiY2FtbF9zeXNfZmRzIiwiY2FtbF9zeXNfY2xvc2UiLCJjYW1sX21sX2Nsb3NlX2NoYW5uZWwiLCJjYW1sX2F0b21pY19leGNoYW5nZSIsImNhbWxfc3lzX2lzYXR0eSIsIl9jaGFuIiwiaXNfZGlnaXRfemVybyIsImNhbWxfdW5peF9sc3RhdCIsImNhbWxfdW5peF9sc3RhdF82NCIsImNhbWxfanNfc2V0IiwibWxfel9nY2RleHRfaW50ZXJuIiwibGFzdHgiLCJsYXN0eSIsIm1sX3pfdGVzdGJpdCIsImNhbWxfYXJyYXlfZ2V0IiwiYXJyYXkiLCJpbmRleCIsImNhbWxfY29udGludWF0aW9uX3VzZV9ub2V4YyIsImNvbnQiLCJjYW1sX3VuaXhfcm1kaXIiLCJjYW1sX2xvZzJfZmxvYXQiLCJjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnQiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3Jlc3VtZSIsIm1sX3pfY29uZ3J1ZW50IiwiY2FtbF9zcGFjZXRpbWVfb25seV93b3Jrc19mb3JfbmF0aXZlX2NvZGUiLCJjYW1sX2ludDY0X3N1YiIsImNhbWxfc2Vla19pbiIsImNhbWxfbWxfc2Vla19pbl82NCIsImNhbWxfZG9tYWluX2lkIiwiY2FtbF9tbF9tdXRleF91bmxvY2siLCJjYW1sX2RvbWFpbl9sYXRlc3RfaWR4IiwiY2FtbF9kb21haW5fc3Bhd24iLCJtdXRleCIsImlkIiwiY2FtbF91bml4X21rZGlyIiwicGVybSIsImNhbWxfaW50NjRfc2hpZnRfbGVmdCIsImNhbWxfbm90ZXF1YWwiLCJtbF96X2FicyIsImNhbWxfc3lzX2NvbnN0X2ludF9zaXplIiwiY2FtbF9qc193cmFwX2NhbGxiYWNrIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2siLCJjYW1sX2lzX2pzIiwiY2FtbF9sYXp5X3VwZGF0ZV90b19mb3J3YXJkIiwiY2FtbF9iYV9kaW0iLCJjYW1sX2JhX2RpbV8xIiwibWxfel9zcXJ0IiwiY2FtbF9qc19tZXRoX2NhbGwiLCJtbF96X2x1Y251bSIsImNhbWxfZXBoZV9kYXRhX29mZnNldCIsImNhbWxfd2Vha19jcmVhdGUiLCJjYW1sX2VwaGVfY3JlYXRlIiwiY2FtbF9qc190b19ieXRlX3N0cmluZyIsIm1sX3pfcHJvYmFiX3ByaW1lIiwiY2FtbF90cmFtcG9saW5lIiwiY2FtbF9tYXliZV9wcmludF9zdGF0cyIsImNhbWxfYnl0ZXNfdW5zYWZlX2dldCIsImNhbWxfYnl0ZXNfZ2V0NjQiLCJjYW1sX2N1c3RvbV9ldmVudF9pbmRleCIsImNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZWdpc3RlciIsImV2ZW50X25hbWUiLCJldmVudF90YWciLCJldmVudF90eXBlIiwiY2FtbF91bml4X2hhc19zeW1saW5rIiwibWxfel9yZW0iLCJjYW1sX2VwaGVfc2V0X2tleSIsImNhbWxfZXBoZV91bnNldF9rZXkiLCJjb3VudCIsImNhbWxfd2Vha19zZXQiLCJjYW1sX3N5c19yZW1vdmUiLCJjYW1sX3N0cmluZ19ib3VuZF9lcnJvciIsImNhbWxfc3RyaW5nX2dldDMyIiwiY2FtbF9ieXRlc19nZXQiLCJjYW1sX2h5cG90X2Zsb2F0IiwibWxfel9mYWNNIiwiY3VycmVudCIsImNhbWxfanNfY2FsbCIsImNhbWxfc3lzX2NvbnN0X21heF93b3NpemUiLCJjYW1sX3VuaXhfaW5ldF9hZGRyX29mX3N0cmluZyIsIm1sX3pfdG9faW50IiwibWxfel9tdWxfb3ZlcmZsb3dzIiwiY2FtbF9oYXNoX21peF9ieXRlc19hcnIiLCJjYW1sX2hhc2hfbWl4X2pzYnl0ZXMiLCJjYW1sX21sX2J5dGVzX2NvbnRlbnQiLCJjYW1sX2hhc2hfbWl4X2J5dGVzIiwiY2FtbF9ieXRlc19sZXNzdGhhbiIsImNhbWxfZXJmY19mbG9hdCIsImNhbWxfZ3JfZmlsbF9wb2x5IiwiYXIiLCJjYW1sX2djX3F1aWNrX3N0YXQiLCJtbF96X2ZhYyIsImNhbWxfbWxfaW5wdXRfY2hhciIsImNhbWxfbWxfaW5wdXRfaW50IiwiY2FtbF9ncl9kaXNwbGF5X21vZGUiLCJtbF96X2RpdmlzaWJsZSIsImNhbWxfb2JqX3JlYWNoYWJsZV93b3JkcyIsIm50aF9kaWdpdF9uYXQiLCJjYW1sX2FycmF5X2JsaXQiLCJjYW1sX2Zsb2F0X29mX3N0cmluZyIsIm0zIiwibWFudGlzc2EiLCJleHBvbmVudCIsImNhbWxfc3lzX2dldGN3ZCIsImNhbWxfaW50NjRfYWRkIiwiY2FtbF9pbnQ2NF9tdWwiLCJjYW1sX2ludDY0X3VsdCIsImNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSIsImNhbWxfcGFyc2VfZGlnaXQiLCJjYW1sX2ludDY0X29mX3N0cmluZyIsImJhc2U2NCIsInRocmVzaG9sZCIsImNhbWxfYmFfc2V0XzEiLCJjYW1sX2ludDY0X3hvciIsImNhbWxfaW50NjRfb3IiLCJjYW1sX2x4bV9uZXh0Iiwic2hpZnRfbCIsInNoaWZ0X3IiLCJvciIsInhvciIsIm11bCIsInJvdGwiLCJnZXQiLCJzZXQiLCJNIiwiZGFiYSIsInEwIiwicTEiLCJzdCIsIngwIiwiY2FtbF9zeXNfY29uc3RfYmlnX2VuZGlhbiIsImNhbWxfbGlzdF90b19qc19hcnJheSIsImNhbWxfb3V0cHV0X3ZhbCIsIldyaXRlciIsIm5vX3NoYXJpbmciLCJjbG9zdXJlcyIsImNvbnNvbGUiLCJpbnRlcm5fb2JqX3RhYmxlIiwibWVtbyIsImV4aXN0aW5nX29mZnNldCIsImV4dGVybl9yZWMiLCJvcHMiLCJzel8zMl82NCIsImhlYWRlcl9wb3MiLCJvbGRfcG9zIiwidHlwZV9vZl92IiwiY2FtbF9zdHJpbmdfb2ZfYXJyYXkiLCJjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmciLCJjYW1sX3JhaXNlX25vdF9hX2RpciIsImNhbWxfc3lzX3N5c3RlbV9jb21tYW5kIiwiY21kIiwiY2hpbGRfcHJvY2VzcyIsImNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uIiwiY2FtbF91bml4X2dldHVpZCIsImRlc2VyaWFsaXplX25hdCIsImluaXRpYWxpemVfbmF0IiwibWxfel9zdWNjIiwiY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZyIsImNhbWxfZ3Jfb3Blbl9zdWJ3aW5kb3ciLCJVSW50OEFycmF5UmVhZGVyIiwiY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSIsInJlYWR2bHEiLCJvdmVyZmxvdyIsIm43IiwiaGVhZGVyX2xlbiIsImRhdGFfbGVuIiwiTWxTdHJpbmdSZWFkZXIiLCJ6c3RkX2RlY29tcHJlc3MiLCJhYiIsInU4IiwidTE2IiwidTMyIiwiaTMyIiwic2xjIiwiZmlsbCIsImNwdyIsImVjIiwiaW5kIiwibnQiLCJyYiIsInJ6ZmgiLCJkYXQiLCJuMyIsImZsZyIsInNzIiwiY2MiLCJkZiIsImZjZiIsImJ0IiwiZGIiLCJkaSIsImZzYiIsImZzcyIsIndzIiwid2IiLCJtc2IiLCJyZnNlIiwibWFsIiwidHBvcyIsImFsIiwicHJvYnMiLCJzeW0iLCJodCIsImZyZXEiLCJkc3RhdGUiLCJuc3RhdGUiLCJiYjEiLCJzeW1zIiwiY2J0IiwibXNrIiwibXNrMWZiIiwibXN2Iiwic3ZhbCIsInJidCIsInN5bXBvcyIsInNzdGVwIiwic21hc2siLCJzZiIsIm5zIiwibmIiLCJyaHUiLCJ3YyIsImhiIiwiaHciLCJyYyIsInJpIiwiX2EiLCJlYnQiLCJmZHQiLCJlcG9zIiwibGIiLCJzdDEiLCJzdDIiLCJidHIxIiwiYnRyMiIsImZwb3MiLCJieXRlIiwid2VzIiwid3QiLCJtYiIsInRzIiwiaGJ1ZiIsInB2IiwiZGxsdCIsImRtbHQiLCJkb2N0IiwiYjJibCIsImJsIiwibGxiIiwibGxibCIsIm1sYiIsIm1sYmwiLCJkaHUiLCJodSIsImViIiwiYnRyIiwiZGh1NCIsInN6MSIsInN6MiIsInN6MyIsInJ6YiIsImIwIiwiYnR5cGUiLCJsYnQiLCJsc3MiLCJsY3MiLCJzNCIsInNwbCIsImh1ZCIsInNjbSIsImR0cyIsIm1kIiwicmJ1ZiIsIl9iIiwibWx0Iiwib2N0IiwibGx0Iiwic3BvcyIsIm91YnQiLCJsc3QiLCJvc3QiLCJtc3QiLCJsbGMiLCJsYnRyIiwibWxjIiwibWJ0ciIsIm9mYyIsIm9idHIiLCJvZnAiLCJvZmYiLCJtbCIsImxsIiwiaWR4Iiwic3RpbiIsImNjdCIsImJ1ZnMiLCJvbCIsImNoayIsImJsayIsImNhbWxfZmxvYXRfb2ZfYnl0ZXMiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyIiwibWFnaWMiLCJjb21wcmVzc2VkIiwidW5jb21wcmVzc2VkX2RhdGFfbGVuIiwibnVtX29iamVjdHMiLCJfc2l6ZV8zMiIsIl9zaXplXzY0Iiwib2JqX2NvdW50ZXIiLCJpbnRlcm5fcmVjIiwiaGVhZGVyIiwiZXhwZWN0ZWRfc2l6ZSIsImNhbWxfc3RyaW5nX29mX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZSIsImJsb2NrIiwiY2FtbF9pbnB1dF92YWx1ZV90b19vdXRzaWRlX2hlYXAiLCJjYW1sX2F0b21pY19jYXMiLCJjYW1sX2NvcHlzaWduX2Zsb2F0IiwiY2FtbF9ncl9zZXRfdGV4dF9zaXplIiwiY2FtbF9hdG9taWNfbG9hZCIsImNhbWxfTUQ1RmluYWwiLCJjYW1sX21kNV9ieXRlcyIsImNhbWxfYmFfc2V0X2dlbmVyaWMiLCJjYW1sX21sX2NvbmRpdGlvbl93YWl0IiwibXV0ZXh0IiwiY2FtbF9zdHJpbmdfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsIiwiY2FtbF9uZXh0YWZ0ZXJfZmxvYXQiLCJjYW1sX2dyX3NpemVfeSIsIm1sX3pfZmFjMiIsImNhbWxfcG9zX2luIiwiY2FtbF9tbF9wb3NfaW4iLCJjYW1sX2ludDY0X2FuZCIsImNhbWxfc3lzX2NvbnN0X3dvcmRfc2l6ZSIsIm1sX3pfYmluIiwiY29lZmYiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3BhdXNlIiwiY2FtbF91bml4X3VubGluayIsImNhbWxfc3lzX29wZW5fZm9yX25vZGUiLCJmcyIsImZkMiIsIk1sRmFrZUZkX291dCIsImNhbWxfc3lzX29wZW5faW50ZXJuYWwiLCJjYW1sX3N5c19vcGVuIiwiX3Blcm1zIiwibWxfel9nY2QiLCJtbF96X2hhbWRpc3QiLCJtbF96X211bCIsImNhbWxfc3RyaW5nX2dldCIsInJlX21hdGNoIiwicmVfd29yZF9sZXR0ZXJzIiwib3Bjb2RlcyIsImlzX3dvcmRfbGV0dGVyIiwiaW5fYml0c2V0IiwicmVfbWF0Y2hfaW1wbCIsInBhcnRpYWwiLCJwcm9nIiwiY3Bvb2wiLCJub3JtdGFibGUiLCJudW1ncm91cHMiLCJudW1yZWdpc3RlcnMiLCJzdGFydGNoYXJzIiwicGMiLCJxdWl0IiwiZ3JvdXBzIiwicmVfcmVnaXN0ZXIiLCJiYWNrdHJhY2siLCJpdGVtIiwicHVzaCIsImFjY2VwdCIsInByZWZpeF9tYXRjaCIsIm9wIiwic2FyZyIsInVhcmciLCJncm91cCIsInJlX3NlYXJjaF9iYWNrd2FyZCIsIm1sX3pfbG9nYW5kIiwiY2FtbF9qc19mcm9tX3N0cmluZyIsImNhbWxfYmFfc3ViIiwiY2hhbmdlZF9kaW0iLCJuZXdfZGltcyIsIm5ld19kYXRhIiwiY2FtbF9nY19mdWxsX21ham9yIiwiY2FtbF9tbF9tdXRleF90cnlfbG9jayIsImNhbWxfYnl0ZXNfc2V0MzIiLCJjYW1sX2dyX3NpZ2lvX3NpZ25hbCIsImNhbWxfYmFfdWludDhfc2V0MzIiLCJtbF96X2Rpdl9yZW0iLCJjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCIsImNhbWxfdW5peF9nbXRpbWUiLCJjYW1sX3NpZ25iaXRfZmxvYXQiLCJjYW1sX2dyX2N1cnJlbnRfeCIsImNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgiLCJjYW1sX2dyX3NldF9mb250IiwiY2FtbF9ncl9zZXRfY29sb3IiLCJjb252ZXJ0IiwibnVtYmVyIiwiY19zdHIiLCJjYW1sX2dyX21vdmV0byIsImNhbWxfZ3JfcmVzaXplX3dpbmRvdyIsImNhbWxfZ3Jfc3RhdGVfaW5pdCIsImNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheSIsInRhIiwiY2FtbF9iYV9mcm9tX3R5cGVkX2FycmF5IiwiY2FtbF9tbF9zZWVrX291dCIsImNhbWxfanNfdHlwZW9mIiwiY2FtbF9oYXNoX21peF9zdHJpbmciLCJjYW1sX3N0cmluZ19oYXNoIiwiY2FtbF9yZXN0b3JlX3Jhd19iYWNrdHJhY2UiLCJjYW1sX2dyX2xpbmV0byIsImNhbWxfanNfZnVuY3Rpb25fYXJpdHkiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2RpbV8zIiwiY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbiIsImNhbWxfZm9ybWF0X2V4Y2VwdGlvbiIsImJ1Y2tldCIsImNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uIiwiaGFuZGxlciIsImF0X2V4aXQiLCJjYW1sX2VwaGVfY2hlY2tfZGF0YSIsImNhbWxfYnl0ZXNfZ2V0MTYiLCJjYW1sX29ial9tYWtlX2ZvcndhcmQiLCJjYW1sX2pzX2Zyb21fYm9vbCIsImNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZSIsImNhbWxfZXhwMl9mbG9hdCIsImNhbWxfZ3JfY2xvc2VfZ3JhcGgiLCJjYW1sX21sX2RvbWFpbl9jcHVfcmVsYXgiLCJjYW1sX2NyZWF0ZV9zdHJpbmciLCJjYW1sX21sX2lucHV0X2Jsb2NrIiwiYXZhaWwiLCJjYW1sX21kNV9jaGFuIiwidG9yZWFkIiwiY2FtbF9hdGFuaF9mbG9hdCIsImNhbWxfbWxfY29uZGl0aW9uX3NpZ25hbCIsImNhbWxfdW5peF9maW5kbmV4dCIsImNhbWxfbWxfb3V0cHV0X2J5dGVzIiwiY2FtbF9tbF9vdXRwdXQiLCJjYW1sX21sX2RvbWFpbl9pZCIsImNhbWxfZXBoZV9nZXRfZGF0YSIsImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlIiwiY2FtbF90cmFtcG9saW5lX3JldHVybiIsImNhbWxfbWxfaXNfYnVmZmVyZWQiLCJjYW1sX2FycmF5X2FwcGVuZCIsImNhbWxfdW5peF9nZXR0aW1lb2ZkYXkiLCJjYW1sX3VuaXhfdGltZSIsImNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsIiwibWxfel9uZXh0cHJpbWUiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX2NyZWF0ZV9jdXJzb3IiLCJjYW1sX2ZpbGxfYnl0ZXMiLCJjYW1sX2pzX2V4cHIiLCJjYW1sX21sX3J1bnRpbWVfd2FybmluZ3NfZW5hYmxlZCIsIm1sX3pfc3ViIiwibWxfel9mZGl2IiwibWxfel90b19iaXRzIiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXMiLCJjYW1sX2V2ZW50bG9nX3Jlc3VtZSIsImNhbWxfbWQ1X3N0cmluZyIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9zdHJpbmdfZXF1YWwiLCJjYW1sX2pzb29fZmxhZ3NfdXNlX2pzX3N0cmluZyIsIm1sX3pfZGl2ZXhhY3QiLCJjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXIiLCJyZV9yZXBsYWNlbWVudF90ZXh0IiwicmVwbCIsIm9yaWciLCJjdXIiLCJjYW1sX3B1cmVfanNfZXhwciIsImNhbWxfYmxpdF9zdHJpbmciLCJibGl0X25hdCIsImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXMiLCJiYTEiLCJieXRlczIiLCJjYW1sX3VuaXhfc3RhdCIsImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUiLCJqc29vX2NyZWF0ZV9maWxlX2V4dGVybiIsImNhbWxfdW5peF9zdGF0XzY0IiwiY2FtbF90b19qc19zdHJpbmciLCJjYW1sX21sX211dGV4X2xvY2siLCJyZV9zZWFyY2hfZm9yd2FyZCIsImNhbWxfbWFrZV92ZWN0IiwiaW5pdCIsImNhbWxfbWxfc2Vla19pbiIsImNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5IiwiY2FtbF9tbF9vdXRwdXRfY2hhciIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiIsImNhbWxfb2JqX2lzX2Jsb2NrIiwiY2FtbF9vYmpfc2V0X3Jhd19maWVsZCIsImNhbWxfanNfdmFyIiwiY2FtbF90cnVuY19mbG9hdCIsImNhbWxfemFyaXRoX21hcnNoYWwiLCJjYW1sX2VwaGVfdW5zZXRfZGF0YSIsImNhbWxfZXBoZV9zZXRfZGF0YSIsImNhbWxfZXBoZV9ibGl0X2RhdGEiLCJjYW1sX2lzX3ByaW50YWJsZSIsImNhbWxfYnl0ZXNfbGVzc2VxdWFsIiwiY2FtbF9hcnJheV9vZl9ieXRlcyIsImNhbWxfZXF1YWwiLCJyZV9wYXJ0aWFsX21hdGNoIiwiY2FtbF9zeXNfcmFuZG9tX3NlZWQiLCJidWZmIiwibm93IiwiYWxsX2ZpbmFsaXplcnMiLCJjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlIiwiY2IiLCJjYW1sX2JhX2dldF8yIiwiY2FtbF9iYV91aW50OF9zZXQxNiIsImNhbWxfbGF6eV9yZXNldF90b19sYXp5IiwiY2FtbF9qc19kZWxldGUiLCJjYW1sX2ludF9vZl9zdHJpbmciLCJjYW1sX2xpc3RfbW91bnRfcG9pbnQiLCJwcmV2IiwiY2FtbF9tYXJzaGFsX2NvbnN0YW50cyIsImNhbWxfb2JqX3Jhd19maWVsZCIsImNhbWxfanNfZXF1YWxzIiwiY2FtbF9vYmpfY29tcGFyZV9hbmRfc3dhcCIsImJpZ3N0cmluZ190b190eXBlZF9hcnJheSIsIm1sX3pfZml0c19uYXRpdmVpbnQiLCJjYW1sX2dyX2FyY19hdXgiLCJjeCIsImN5IiwicnkiLCJyeCIsInJvdCIsInhQb3MiLCJ5UG9zIiwieFBvc19wcmV2IiwieVBvc19wcmV2Iiwic3BhY2UiLCJkZWx0YSIsImNhbWxfZ3JfZmlsbF9hcmMiLCJjYW1sX2JhX3NsaWNlIiwibnVtX2luZHMiLCJzdWJfZGltcyIsIm1sX3pfb2ZfbmF0aXZlaW50IiwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3Vuc2FmZSIsImNhbWxfYmFfa2luZCIsImNhbWxfYWxsb2NfZHVtbXlfaW5maXgiLCJjYW1sX2pzX2Z1bl9jYWxsIiwiY2FtbF9nY19tYWpvcl9zbGljZSIsIndvcmsiLCJtbF96X2ludmVydCIsIm1sX3pfcG93bSIsInozIiwiaW52IiwibWxfel9wb3dtX3NlYyIsImNhbWxfanNfcHVyZV9leHByIiwiY29tcGFyZV9kaWdpdHNfbmF0IiwiY2FtbF9tbF9pbnB1dCIsImNhbWxfZ3Jfd2FpdF9ldmVudCIsIl9ldmwiLCJjYW1sX2dyX3NpZ2lvX2hhbmRsZXIiLCJjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyIsImNhbWxfcmVjb3JkX2JhY2t0cmFjZSIsImNhbWxfdW5peF9jbGVhbnVwIiwiY2FtbF9zeXNfZ2V0X2NvbmZpZyIsImNhbWxfc3lzX2NvbnN0X2JhY2tlbmRfdHlwZSIsImNhbWxfb2JqX2lzX3NoYXJlZCIsImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QiLCJjYW1sX2FzaW5oX2Zsb2F0IiwibWxfel9oYXNoIiwiYWNjIiwiY2FtbF9wb3Nfb3V0IiwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciIsImNhbWxfbW9kIiwiY2FtbF9iYV9pbml0IiwiY2FtbF91bml4X2ZpbGVkZXNjcl9vZl9mZCIsInJlX3N0cmluZ19tYXRjaCIsIkJpZ1N0cmluZ1JlYWRlciIsImNhbWxfZ3JfZHVtcF9pbWFnZSIsImNhbWxfYmFfZ2V0X2dlbmVyaWMiLCJjYW1sX3VuaXhfc3RhcnR1cCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9iYWNrdHJhY2UiLCJjYW1sX2Zvcm1hdF9mbG9hdCIsInRvRml4ZWQiLCJkcCIsInByZWMiLCJjYW1sX21vdW50X2F1dG9sb2FkIiwibWxfel9maXRzX2ludDY0IiwibWxfel9lcXVhbCIsIm1sX3pfc3FydF9yZW0iLCJkaWZmIiwiY2FtbF9zdHJpbmdfbGVzc3RoYW4iLCJjYW1sX3N0cmluZ19ncmVhdGVydGhhbiIsImNhbWxfZGl2IiwiY2FtbF9vYmpfZHVwIiwiY2FtbF9lcGhlX2dldF9kYXRhX2NvcHkiLCJjYW1sX21lbXByb2Zfc3RhcnQiLCJyYXRlIiwic3RhY2tfc2l6ZSIsInRyYWNrZXIiLCJtbF96X3BlcmZlY3Rfc3F1YXJlIiwiY2FtbF9zeXNfZ2V0X2FyZ3YiLCJjYW1sX21sX2RvbWFpbl9zZXRfbmFtZSIsIl9uYW1lIiwiY2FtbF9qc190b19ib29sIiwiY2FtbF9ncl9jcmVhdGVfaW1hZ2UiLCJjYW1sX2VwaGVfZ2V0X2tleV9jb3B5IiwiY2FtbF9sZXNzdGhhbiIsImNhbWxfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3QiLCJtbF96X3RvX25hdGl2ZWludCIsImNhbWxfYnVpbGRfc3ltYm9scyIsInRvYyIsInN5bWIiLCJjYW1sX3JlZ2lzdGVyX2dsb2JhbCIsIm5hbWVfb3B0IiwibmlkIiwibXVsdF9uYXQiLCJsZW4zIiwic3F1YXJlX25hdCIsImNhbWxfanNfZnJvbV9mbG9hdCIsImNhbWxfZmxvYXRhcnJheV9jcmVhdGUiLCJjYW1sX2djX3N0YXQiLCJjYW1sX2dldF9tYWpvcl9jcmVkaXQiLCJjYW1sX3N5c19tb2RpZnlfYXJndiIsImNhbWxfbWV0aG9kX2NhY2hlIiwiY2FtbF9nZXRfcHVibGljX21ldGhvZCIsIm9iaiIsImNhY2hlaWQiLCJtZXRocyIsImxpIiwiY2FtbF9qc19nZXRfY29uc29sZSIsImNhbWxfc3lzX3Vuc2FmZV9nZXRlbnYiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pbiIsInJlZmlsbCIsImNoYW5uZWwiLCJiaWdzdHJpbmdfb2ZfdHlwZWRfYXJyYXkiLCJjYW1sX3JvdW5kX2Zsb2F0IiwibWxfel9vZl9iaXRzIiwiYmFzZTEiLCJjYW1sX29qc19uZXdfYXJyIiwiRiIsImNvbXBsZW1lbnRfbmF0IiwibWxfel9sb2d4b3IiLCJjYW1sX2RvbWFpbl9kbHMiLCJjYW1sX2RvbWFpbl9kbHNfc2V0IiwiY2FtbF9sYXp5X3JlYWRfcmVzdWx0IiwiY2FtbF9qc19yZWdleHBzIiwiY2FtbF9qc19odG1sX2VzY2FwZSIsImNhbWxfYmFfZGltXzIiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMiLCJjYW1sX3NpbmhfZmxvYXQiLCJjYW1sX2xkZXhwX2Zsb2F0IiwiY2FtbF9ncl9zdGF0ZV9zZXQiLCJjYW1sX3phcml0aF91bm1hcnNoYWwiLCJuZWdhdGUiLCJtbF96X3RyYWlsaW5nX3plcm9zIiwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdCIsImFyaXR5IiwiY2FtbF9nY19taW5vcl93b3JkcyIsImNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrIiwibGFuZF9kaWdpdF9uYXQiLCJjYW1sX2ludDY0X21vZCIsImNhbWxfb2JqX3NldF90YWciLCJjYW1sX2ludDMyX2Jzd2FwIiwiY2FtbF9iYV9zZXRfMyIsIm1sX3pfamFjb2JpIiwibjEiLCJtbF96X2xlZ2VuZHJlIiwiY2FtbF9qc19pbnN0YW5jZW9mIiwiY2FtbF9nZXRfbWFqb3JfYnVja2V0IiwibnRoX2RpZ2l0X25hdF9uYXRpdmUiLCJzZXRfZGlnaXRfbmF0X25hdGl2ZSIsImNhbWxfc3RyaW5nX3NldDY0IiwiY2FtbF9ncl9zdGF0ZV9jcmVhdGUiLCJjYW52YXMiLCJjb250ZXh0IiwiY2FtbF9ncl9kcmF3X2FyYyIsImNhbWxfYmFfbWFwX2ZpbGUiLCJ2ZmQiLCJzaGFyZWQiLCJjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlIiwiYXJnbiIsImNhbWxfYmFfY3JlYXRlX2Zyb20iLCJkYXRhMSIsImRhdGEyIiwianN0eXAiLCJjYW1sX3RhbmhfZmxvYXQiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3N0YXJ0IiwiY2FtbF9ncl9kcmF3X3N0ciIsImR4IiwiY2FtbF9ncl9kcmF3X3N0cmluZyIsIm1sX3pfcHJpbW9yaWFsIiwiY2FtbF9ncl9kcmF3X2NoYXIiLCJjYW1sX3VubW91bnQiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhIiwibWxfel9maWIiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fc3RyaW5nIiwiY2FtbF9tbF9wb3NfaW5fNjQiLCJjYW1sX2dyX2RyYXdfaW1hZ2UiLCJpbWFnZSIsImNhbWxfcmVnaXN0ZXJfY2hhbm5lbF9mb3Jfc3BhY2V0aW1lIiwiX2NoYW5uZWwiLCJjYW1sX3N0cmluZ19zZXQiLCJjYW1sX3N5c19ybWRpciIsImNhbWxfdW5peF9zeW1saW5rIiwic3JjX3Jvb3QiLCJkc3Rfcm9vdCIsImNhbWxfbWxfcG9zX291dCIsImNhbWxfc3BhY2V0aW1lX2VuYWJsZWQiLCJjYW1sX2J5dGVzX25vdGVxdWFsIiwiY2FtbF9ydW50aW1lX3BhcmFtZXRlcnMiLCJjYW1sX2pzX29iamVjdCIsImNhbWxfYmFfY3JlYXRlIiwiZGltc19tbCIsImNhbWxfZ3JfcmVtZW1iZXJfbW9kZSIsImNhbWxfZm1hX2Zsb2F0IiwiU1BMSVQiLCJNSU5fVkFMVUUiLCJFUFNJTE9OIiwiQyIsIkEiLCJCIiwibXVsdGlwbHkiLCJhdCIsImFoaSIsImFsbyIsImJoaSIsImJsbyIsImFkanVzdCIsInNjYWxlIiwieHMiLCJ5cyIsInpzIiwieHkiLCJ1IiwiY2FtbF9yZWNvbW1lbmRlZF9kb21haW5fY291bnQiLCJjYW1sX2Jzd2FwMTYiLCJjYW1sX21sX3NldF9iaW5hcnlfbW9kZSIsImNhbWxfZmluYWxfcmVnaXN0ZXIiLCJjYW1sX2dyX2RyYXdfcmVjdCIsImNhbWxfc3RyaW5nX2dldDE2IiwiY2FtbF9vdXRwdXRfdmFsdWUiLCJjYW1sX2JhX2dldF8zIiwiY2FtbF9lcGhlX2JsaXRfa2V5IiwibWxfel90b19pbnQzMiIsImNhbWxfaW5pdGlhbF90aW1lIiwiY2FtbF9zeXNfdGltZSIsImNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlbiIsImNhbWxfY2hlY2tfYm91bmQiLCJjYW1sX3VuaXhfZ2V0cHd1aWQiLCJtbF96X2NvbXBhcmUiLCJjYW1sX2hhc2giLCJsaW1pdCIsInNlZWQiLCJxdWV1ZSIsInJkIiwid3IiLCJjYW1sX2JhX3RvX3R5cGVkX2FycmF5IiwiY2FtbF9kb21haW5fZGxzX2dldCIsImNhbWxfYnl0ZXNfZ2V0MzIiLCJjYW1sX2ZyZXhwX2Zsb2F0IiwibWxfel9wcmVkIiwiY2FtbF9zdHJpbmdfZ2V0NjQiLCJjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb24iLCJjYW1sX21sX3Bvc19vdXRfNjQiLCJtbF96X3JlbW92ZSIsIm1sX3pfZXh0cmFjdCIsIm1sX3pfb2ZfZmxvYXQiLCJmMSIsIm1sX3pfbG9nbm90IiwiY2FtbF91bml4X2ZpbmRjbG9zZSIsImNhbWxfZ3JfY2xvc2Vfc3Vid2luZG93IiwiY2FtbF9mbG9hdGFycmF5X2JsaXQiLCJjYW1sX2dldF9taW5vcl9mcmVlIiwiY2FtbF9zZXRfc3RhdGljX2VudiIsImNhbWxfYmFfY2hhbmdlX2xheW91dCIsImNhbWxfanNfbmV3IiwiY2FtbF9ncl9jdXJyZW50X3kiLCJjYW1sX2Zvcm1hdF9pbnQiLCJqc29vX2VmZmVjdF9ub3Rfc3VwcG9ydGVkIiwiY2FtbF9jb250aW51YXRpb25fdXNlX2FuZF91cGRhdGVfaGFuZGxlcl9ub2V4YyIsImh2YWwiLCJoZXhuIiwiaGVmZiIsImNhbWxfb2JqX3RydW5jYXRlIiwiY2FtbF9qc190b19zdHJpbmciLCJpc19kaWdpdF9vZGQiLCJjYW1sX3J1bnRpbWVfdmFyaWFudCIsImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dCIsImJ1ZmZlcmVkIiwiY2FtbF9hcnJheV9jb25jYXQiLCJjYW1sX2dyX29wZW5fZ3JhcGgiLCJpbmZvIiwic3BlY3MiLCJzdGF0dXMiLCJ3aW4iLCJkb2MiLCJ0aXRsZSIsImJvZHkiLCJjYW1sX21ha2VfZmxvYXRfdmVjdCIsImNhbWxfY2JydF9mbG9hdCIsImNhbWxfZXZlbnRsb2dfcGF1c2UiLCJjYW1sX21lbXByb2Zfc3RvcCIsImNhbWxfZ3JlYXRlcmVxdWFsIiwibWxfel9udW1iaXRzIiwidXBwZXJCb3VuZCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlIiwiY2FtbF9sb2cxcF9mbG9hdCIsImNhbWxfcnVudGltZV9ldmVudHNfZnJlZV9jdXJzb3IiLCJjYW1sX2xhenlfbWFrZV9mb3J3YXJkIiwibG9yX2RpZ2l0X25hdCIsImNhbWxfZ3JfYmxpdF9pbWFnZSIsImltMiIsImNhbWxfZ3Jfd2luZG93X2lkIiwiY2FtbF9qc19vbl9pZSIsInVhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCIsImNhbWxfYmFfbGF5b3V0IiwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2UiLCJjYW1sX2FycmF5X3NldCIsIm5ld3ZhbCIsImNhbWxfYWxsb2Nfc3RhY2siLCJodiIsImh4IiwiaGYiLCJjYW1sX2J5dGVzX2dyZWF0ZXJlcXVhbCIsIm1sX3pfcGVyZmVjdF9wb3dlciIsImxvZzJ6IiwienAiLCJzZXRfZGlnaXRfbmF0IiwibWxfel9pbml0IiwiY2FtbF9ieXRlc19zZXQxNiIsImNhbWxfZ3JfZG9jX29mX3N0YXRlIiwiY2FtbF9tbF9vdXRwdXRfaW50IiwiY2FtbF9vYmpfd2l0aF90YWciLCJjYW1sX21sX2NoYW5uZWxfc2l6ZSIsImNhbWxfcmF3X2JhY2t0cmFjZV9zbG90IiwiY2FtbF9oZXhzdHJpbmdfb2ZfZmxvYXQiLCJzdHlsZSIsImV4cF9zaWduIiwic2lnbl9zdHIiLCJjc3QiLCJ4X3N0ciIsImNhbWxfcnVudGltZV9ldmVudHNfdXNlcl93cml0ZSIsImV2ZW50IiwiZXZlbnRfY29udGVudCIsImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdCIsIm1sX3pfZm9ybWF0IiwiY2FzIiwid2lkdGgiLCJhbHQiLCJwYWQiLCJwcmVmaXgiLCJwcmUiLCJtbF96X3NpemUiLCJtbF96X3RvX2ludDY0IiwibWFzayIsImNhbWxfdW5peF9yZWFkbGluayIsImNhbWxfYmFja3RyYWNlX3N0YXR1cyIsImNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciIsImNhbWxfc3lzX2FyZ3YiLCJjYW1sX2JhX2ZpbGwiLCJjYW1sX21vZGZfZmxvYXQiLCJjYW1sX2djX2dldCIsImNhbWxfZmxvYXRfY29tcGFyZSIsIm1sX3pfc2hpZnRfcmlnaHRfdHJ1bmMiLCJjYW1sX3N0cmluZ19zZXQzMiIsImNhbWxfcGFyc2VfZW5naW5lIiwidGFibGVzIiwiZW52IiwiRVJSQ09ERSIsImxvb3AiLCJ0ZXN0c2hpZnQiLCJzaGlmdF9yZWNvdmVyIiwicmVkdWNlIiwiUkVBRF9UT0tFTiIsIlJBSVNFX1BBUlNFX0VSUk9SIiwiR1JPV19TVEFDS1NfMSIsIkdST1dfU1RBQ0tTXzIiLCJDT01QVVRFX1NFTUFOVElDX0FDVElPTiIsIkNBTExfRVJST1JfRlVOQ1RJT04iLCJlbnZfc19zdGFjayIsImVudl92X3N0YWNrIiwiZW52X3N5bWJfc3RhcnRfc3RhY2siLCJlbnZfc3ltYl9lbmRfc3RhY2siLCJlbnZfc3RhY2tzaXplIiwiZW52X3N0YWNrYmFzZSIsImVudl9jdXJyX2NoYXIiLCJlbnZfbHZhbCIsImVudl9zeW1iX3N0YXJ0IiwiZW52X3N5bWJfZW5kIiwiZW52X2FzcCIsImVudl9ydWxlX2xlbiIsImVudl9ydWxlX251bWJlciIsImVudl9zcCIsImVudl9zdGF0ZSIsImVudl9lcnJmbGFnIiwidGJsX3RyYW5zbF9jb25zdCIsInRibF90cmFuc2xfYmxvY2siLCJ0YmxfbGhzIiwidGJsX2xlbiIsInRibF9kZWZyZWQiLCJ0YmxfZGdvdG8iLCJ0Ymxfc2luZGV4IiwidGJsX3JpbmRleCIsInRibF9naW5kZXgiLCJ0YmxfdGFibGVzaXplIiwidGJsX3RhYmxlIiwidGJsX2NoZWNrIiwidGJsX25hbWVzX2NvbnN0IiwidGJsX25hbWVzX2Jsb2NrIiwibG9nIiwidG9rZW5fbmFtZSIsIm5hbWVzIiwicHJpbnRfdG9rZW4iLCJ0b2siLCJ0b2tlbiIsIm4yIiwic3RhdGUxIiwic3AiLCJlcnJmbGFnIiwiYXNwIiwiY2FtbF9qc29vX2ZsYWdzX2VmZmVjdHMiLCJjYW1sX3VwZGF0ZV9kdW1teSIsImNhbWxfYXJyYXlfZmlsbCIsImNhbWxfc3lzX21rZGlyIiwiY2FtbF9zdHJpbmdfbm90ZXF1YWwiLCJjYW1sX2J5dGVzX2dyZWF0ZXJ0aGFuIiwiY2FtbF9ncl9tYWtlX2ltYWdlIiwiY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXQiLCJjYW1sX3JlYWRfZmlsZV9jb250ZW50IiwiY2FtbF9qc190b19mbG9hdCIsImNhbWxfc2V0dXBfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJvcmlnaW4iLCJlcmFzZV9yZWwiLCJyZXN0IiwicmVzdCQwIiwicmVzdCQxIiwicmVzdCQyIiwicmVzdCQzIiwicmVzdCQ0IiwicmVzdCQ1IiwicmVzdCQ2IiwicmVzdCQ3IiwidHkiLCJyZXN0JDgiLCJ0eTEiLCJyZXN0JDkiLCJyZXN0JDEwIiwicmVzdCQxMSIsInJlc3QkMTIiLCJyZXN0JDEzIiwiY29uY2F0X2ZtdHR5IiwiZm10dHkxIiwiZm10dHkyIiwidHkyIiwiY29uY2F0X2ZtdCIsImZtdDEiLCJmbXQyIiwicGFkIiwicGFkJDAiLCJwcmVjIiwicGFkJDEiLCJpY29udiIsInByZWMkMCIsInBhZCQyIiwiaWNvbnYkMCIsInByZWMkMSIsInBhZCQzIiwiaWNvbnYkMSIsInByZWMkMiIsInBhZCQ0IiwiaWNvbnYkMiIsInByZWMkMyIsInBhZCQ1IiwiZmNvbnYiLCJwYWQkNiIsInN0ciIsImNociIsImZtdHR5IiwicGFkJDciLCJmbXR0eSQwIiwicGFkJDgiLCJyZXN0JDE0IiwicmVzdCQxNSIsInJlc3QkMTYiLCJmbXRpbmdfbGl0IiwicmVzdCQxNyIsImZtdGluZ19nZW4iLCJyZXN0JDE4IiwicmVzdCQxOSIsImNoYXJfc2V0Iiwid2lkdGhfb3B0IiwicmVzdCQyMCIsImNvdW50ZXIiLCJyZXN0JDIxIiwicmVzdCQyMiIsImlnbiIsInJlc3QkMjMiLCJmIiwiYXJpdHkiLCJtYWtlIiwidiIsImdldCIsInIiLCJzZXQiLCJleGNoYW5nZSIsImN1ciIsImNvbXBhcmVfYW5kX3NldCIsInNlZW4iLCJmZXRjaF9hbmRfYWRkIiwibiIsImluY3IiLCJkZWNyIiwiZmFpbHdpdGgiLCJzIiwiaW52YWxpZF9hcmciLCJtaW4iLCJ4IiwieSIsIm1heCIsImFicyIsImxub3QiLCJpbmZpbml0eSIsIm5lZ19pbmZpbml0eSIsIm5hbiIsIm1heF9mbG9hdCIsIm1pbl9mbG9hdCIsImVwc2lsb25fZmxvYXQiLCJtYXhfaW50IiwibWluX2ludCIsInN5bWJvbCIsInMxIiwiczIiLCJsMSIsImwyIiwiY2hhcl9vZl9pbnQiLCJzdHJpbmdfb2ZfYm9vbCIsImIiLCJib29sX29mX3N0cmluZyIsImJvb2xfb2Zfc3RyaW5nX29wdCIsInN0cmluZ19vZl9pbnQiLCJpbnRfb2Zfc3RyaW5nX29wdCIsInZhbGlkX2Zsb2F0X2xleGVtIiwibCIsImkiLCJpJDAiLCJzdHJpbmdfb2ZfZmxvYXQiLCJmbG9hdF9vZl9zdHJpbmdfb3B0Iiwic3ltYm9sJDAiLCJ0bCIsImhkIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJvcGVuX291dF9nZW4iLCJtb2RlIiwicGVybSIsIm5hbWUiLCJjIiwib3Blbl9vdXQiLCJvcGVuX291dF9iaW4iLCJmbHVzaF9hbGwiLCJhIiwib3V0cHV0X2J5dGVzIiwib2MiLCJvdXRwdXRfc3RyaW5nIiwib3V0cHV0Iiwib2ZzIiwibGVuIiwib3V0cHV0X3N1YnN0cmluZyIsIm91dHB1dF92YWx1ZSIsImNoYW4iLCJjbG9zZV9vdXQiLCJjbG9zZV9vdXRfbm9lcnIiLCJvcGVuX2luX2dlbiIsIm9wZW5faW4iLCJvcGVuX2luX2JpbiIsImlucHV0IiwiaWMiLCJ1bnNhZmVfcmVhbGx5X2lucHV0Iiwib2ZzJDAiLCJsZW4kMCIsImxlbiQxIiwib2ZzJDEiLCJyZWFsbHlfaW5wdXQiLCJyZWFsbHlfaW5wdXRfc3RyaW5nIiwiaW5wdXRfbGluZSIsImJ1aWxkX3Jlc3VsdCIsImJ1ZiIsInBvcyQwIiwiYWNjdSIsImJlZyIsImFjY3UkMCIsInJlcyIsImNsb3NlX2luX25vZXJyIiwicHJpbnRfY2hhciIsInByaW50X3N0cmluZyIsInByaW50X2J5dGVzIiwicHJpbnRfaW50IiwicHJpbnRfZmxvYXQiLCJwcmludF9lbmRsaW5lIiwicHJpbnRfbmV3bGluZSIsInByZXJyX2NoYXIiLCJwcmVycl9zdHJpbmciLCJwcmVycl9ieXRlcyIsInByZXJyX2ludCIsInByZXJyX2Zsb2F0IiwicHJlcnJfZW5kbGluZSIsInByZXJyX25ld2xpbmUiLCJyZWFkX2xpbmUiLCJyZWFkX2ludCIsInJlYWRfaW50X29wdCIsInJlYWRfZmxvYXQiLCJyZWFkX2Zsb2F0X29wdCIsInN0cmluZ19vZl9mb3JtYXQiLCJzeW1ib2wkMSIsInN0cjIiLCJzdHIxIiwiZXhpdF9mdW5jdGlvbiIsImF0X2V4aXQiLCJmX3lldF90b19ydW4iLCJvbGRfZXhpdCIsIm5ld19leGl0JDAiLCJuZXdfZXhpdCIsInN1Y2Nlc3MiLCJkb19hdF9leGl0IiwiZXhpdCIsInJldGNvZGUiLCJmbHVzaCIsIm91dHB1dF9jaGFyIiwib3V0cHV0X2J5dGUiLCJvdXRwdXRfYmluYXJ5X2ludCIsInNlZWtfb3V0IiwicG9zX291dCIsIm91dF9jaGFubmVsX2xlbmd0aCIsInNldF9iaW5hcnlfbW9kZV9vdXQiLCJpbnB1dF9jaGFyIiwiaW5wdXRfYnl0ZSIsImlucHV0X2JpbmFyeV9pbnQiLCJpbnB1dF92YWx1ZSIsInNlZWtfaW4iLCJwb3NfaW4iLCJpbl9jaGFubmVsX2xlbmd0aCIsImNsb3NlX2luIiwic2V0X2JpbmFyeV9tb2RlX2luIiwibGVmdCIsInJpZ2h0IiwiaXNfbGVmdCIsImlzX3JpZ2h0IiwiZmluZF9sZWZ0IiwiZmluZF9yaWdodCIsIm1hcF9sZWZ0IiwiZSIsIm1hcF9yaWdodCIsIm1hcCIsInYkMCIsImZvbGQiLCJlcXVhbCIsImUxIiwiZTIiLCJ2MSIsInYyIiwidjEkMCIsInYyJDAiLCJjb21wYXJlIiwiaXNfYmxvY2siLCJkb3VibGVfZmllbGQiLCJzZXRfZG91YmxlX2ZpZWxkIiwiZmlyc3Rfbm9uX2NvbnN0YW50X2NvbnN0cnVjdG9yIiwibGFzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3JfIiwibGF6eV90YWciLCJjbG9zdXJlX3RhZyIsIm9iamVjdF90YWciLCJpbmZpeF90YWciLCJmb3J3YXJkX3RhZyIsIm5vX3NjYW5fdGFnIiwiYWJzdHJhY3RfdGFnIiwic3RyaW5nX3RhZyIsImRvdWJsZV90YWciLCJkb3VibGVfYXJyYXlfdGFnIiwiY3VzdG9tX3RhZyIsImludF90YWciLCJvdXRfb2ZfaGVhcF90YWciLCJ1bmFsaWduZWRfdGFnIiwiaW5mbyIsIm9iaiIsInN0YXJ0X2VudiIsIm9mX3ZhbCIsInNsb3QiLCJpZCIsImV4dGVuc2lvbl9jb25zdHJ1Y3RvciIsImV4dGVuc2lvbl9uYW1lIiwiZXh0ZW5zaW9uX2lkIiwibWF4X2VwaGVfbGVuZ3RoIiwiY3JlYXRlIiwibGVuZ3RoIiwicmFpc2VfaWZfaW52YWxpZF9vZmZzZXQiLCJvIiwibXNnIiwiZ2V0X2tleSIsImdldF9rZXlfY29weSIsInNldF9rZXkiLCJ1bnNldF9rZXkiLCJjaGVja19rZXkiLCJibGl0X2tleSIsIm8xIiwibzIiLCJyYWlzZV91bmRlZmluZWQiLCJmb3JjZV9sYXp5X2Jsb2NrIiwiYmxrIiwiY2xvc3VyZSIsInJlc3VsdCIsImUkMCIsImZvcmNlX3ZhbF9sYXp5X2Jsb2NrIiwiZm9yY2UiLCJsenYiLCJ0IiwiZm9yY2VfdmFsIiwiZnJvbV9mdW4iLCJmcm9tX3ZhbCIsImlzX3ZhbCIsIm1hcF92YWwiLCJlbXB0eSIsInJldHVybiQwIiwiY29ucyIsIm5leHQiLCJhcHBlbmQiLCJzZXExIiwic2VxMiIsInNlcSIsImZpbHRlcl9tYXAiLCJzZXEkMCIsImZpbHRlciIsImNvbmNhdCIsImZsYXRfbWFwIiwiZm9sZF9sZWZ0IiwiYWNjIiwiYWNjJDAiLCJhY2MkMSIsIml0ZXIiLCJ1bmZvbGQiLCJ1IiwidSQwIiwiaXNfZW1wdHkiLCJ4cyIsInVuY29ucyIsInhzJDAiLCJ4cyQxIiwiaXRlcmkiLCJmb2xkX2xlZnRpIiwiYWNjdSQxIiwiZm9yX2FsbCIsInAiLCJleGlzdHMiLCJmaW5kIiwiZmluZF9tYXAiLCJpdGVyMiIsInlzIiwieXMkMCIsInlzJDEiLCJmb2xkX2xlZnQyIiwiZm9yX2FsbDIiLCJleGlzdHMyIiwiZXEiLCJjbXAiLCJpbml0X2F1eCIsImoiLCJpbml0IiwicmVwZWF0IiwiZm9yZXZlciIsImN5Y2xlX25vbmVtcHR5IiwiY3ljbGUiLCJpdGVyYXRlMSIsIml0ZXJhdGUiLCJtYXBpX2F1eCIsIm1hcGkiLCJ0YWlsX3NjYW4iLCJzJDAiLCJzY2FuIiwidGFrZV9hdXgiLCJ0YWtlIiwiZHJvcCIsIm4kMCIsIm4kMSIsInRha2Vfd2hpbGUiLCJkcm9wX3doaWxlIiwibm9kZSIsImdyb3VwIiwidG9fbGF6eSIsImZhaWx1cmUiLCJtZW1vaXplIiwib25jZSIsImFjdGlvbiIsInppcCIsIm1hcDIiLCJpbnRlcmxlYXZlIiwic29ydGVkX21lcmdlMSIsInNvcnRlZF9tZXJnZSIsIm1hcF9mc3QiLCJ4eXMiLCJ4eXMkMCIsIm1hcF9zbmQiLCJ1bnppcCIsImZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCIsImZpbHRlcl9tYXBfZmluZF9yaWdodF9tYXAiLCJ6IiwicGFydGl0aW9uX21hcCIsInBhcnRpdGlvbiIsInBlZWwiLCJ4c3MiLCJ0cmFuc3Bvc2UiLCJ0YWlscyIsImhlYWRzIiwicmVtYWluZGVycyIsInhzcyQwIiwidGFpbHMkMCIsImhlYWRzJDAiLCJtYXBfcHJvZHVjdCIsInByb2R1Y3QiLCJvZl9kaXNwZW5zZXIiLCJpdCIsInRvX2Rpc3BlbnNlciIsImludHMiLCJub25lIiwic29tZSIsInZhbHVlIiwiZGVmYXVsdCQwIiwiYmluZCIsImpvaW4iLCJpc19ub25lIiwiaXNfc29tZSIsIm8wIiwidjAiLCJ0b19yZXN1bHQiLCJ0b19saXN0IiwidG9fc2VxIiwib2siLCJlcnJvciIsImdldF9vayIsImdldF9lcnJvciIsIm1hcF9lcnJvciIsIml0ZXJfZXJyb3IiLCJpc19vayIsImlzX2Vycm9yIiwicjAiLCJyMSIsImUwIiwidG9fb3B0aW9uIiwidG9fZmxvYXQiLCJ0b19zdHJpbmciLCJlc2NhcGVkIiwibG93ZXJjYXNlIiwidXBwZXJjYXNlIiwibG93ZXJjYXNlX2FzY2lpIiwidXBwZXJjYXNlX2FzY2lpIiwiYzEiLCJjMiIsImVycl9ub19wcmVkIiwiZXJyX25vX3N1Y2MiLCJsb19ib3VuZCIsImhpX2JvdW5kIiwiYm9tIiwicmVwIiwic3VjYyIsInByZWQiLCJpc192YWxpZCIsIm9mX2ludCIsImlzX2NoYXIiLCJvZl9jaGFyIiwidG9fY2hhciIsInVuc2FmZV90b19jaGFyIiwiaGFzaCIsInV0Zl9kZWNvZGVfaXNfdmFsaWQiLCJkIiwidXRmX2RlY29kZV9sZW5ndGgiLCJ1dGZfZGVjb2RlX3VjaGFyIiwidXRmX2RlY29kZSIsInV0Zl9kZWNvZGVfaW52YWxpZCIsInV0Zl84X2J5dGVfbGVuZ3RoIiwidXRmXzE2X2J5dGVfbGVuZ3RoIiwibCQwIiwibnRoIiwibCQxIiwibnRoX29wdCIsInJldl9hcHBlbmQiLCJsMSQwIiwibDIkMCIsImwxJDEiLCJsMiQxIiwicmV2IiwicmV2X2luaXRfdGhyZXNob2xkIiwiZmxhdHRlbiIsInJldl9tYXAiLCJmb2xkX3JpZ2h0IiwiYTIiLCJhMSIsInJldl9tYXAyIiwiZm9sZF9yaWdodDIiLCJtZW0iLCJtZW1xIiwiYXNzb2MiLCJhc3NvY19vcHQiLCJhc3NxIiwiYXNzcV9vcHQiLCJtZW1fYXNzb2MiLCJtZW1fYXNzcSIsInJlbW92ZV9hc3NvYyIsInBhaXIiLCJyZW1vdmVfYXNzcSIsImZpbmRfb3B0IiwiZmluZF9hbGwiLCJmaWx0ZXJpIiwiY29uY2F0X21hcCIsImZvbGRfbGVmdF9tYXAiLCJsX2FjY3UiLCJ4JDAiLCJ5ZXMiLCJubyIsInNwbGl0IiwicnkiLCJyeCIsImNvbWJpbmUiLCJtZXJnZSIsInQyIiwiaDIiLCJ0MSIsImgxIiwic3RhYmxlX3NvcnQiLCJzb3J0IiwieDIiLCJ4MSIsInRsJDEiLCJ4MyIsIngyJDAiLCJ4MSQwIiwibjEiLCJuMiIsInJldl9zb3J0IiwidGwkMCIsInNvcnRfdW5pcSIsImMkMCIsImMkMSIsImMkMiIsImMkMyIsImMkNCIsImMkNSIsImMkNiIsImFjY3UkMiIsImNvbXBhcmVfbGVuZ3RocyIsImNvbXBhcmVfbGVuZ3RoX3dpdGgiLCJhdXgiLCJ0YWlsIiwib2Zfc2VxIiwiZGlyZWN0IiwiZGVwdGgiLCJ6ZXJvIiwib25lIiwibWludXNfb25lIiwibG9nbm90IiwiY29weSIsIm9mX3N0cmluZyIsInN1YiIsInN1Yl9zdHJpbmciLCJleHRlbmQiLCJkc3RvZmYiLCJzcmNvZmYiLCJjcHlsZW4iLCJmaWxsIiwiYmxpdCIsIm9mczEiLCJvZnMyIiwiYmxpdF9zdHJpbmciLCJzZXAiLCJzZXBsZW4iLCJkc3QiLCJwb3MiLCJoZCQwIiwiY2F0IiwiaXNfc3BhY2UiLCJ0cmltIiwiYXBwbHkxIiwiY2FwaXRhbGl6ZV9hc2NpaSIsInVuY2FwaXRhbGl6ZV9hc2NpaSIsInN0YXJ0c193aXRoIiwicHJlZml4IiwibGVuX3MiLCJsZW5fcHJlIiwiZW5kc193aXRoIiwic3VmZml4IiwibGVuX3N1ZiIsImRpZmYiLCJpbmRleF9yZWMiLCJsaW0iLCJpJDEiLCJpbmRleCIsImluZGV4X3JlY19vcHQiLCJpbmRleF9vcHQiLCJpbmRleF9mcm9tIiwiaW5kZXhfZnJvbV9vcHQiLCJyaW5kZXhfcmVjIiwicmluZGV4IiwicmluZGV4X2Zyb20iLCJyaW5kZXhfcmVjX29wdCIsInJpbmRleF9vcHQiLCJyaW5kZXhfZnJvbV9vcHQiLCJjb250YWluc19mcm9tIiwiY29udGFpbnMiLCJyY29udGFpbnNfZnJvbSIsInNwbGl0X29uX2NoYXIiLCJjYXBpdGFsaXplIiwidW5jYXBpdGFsaXplIiwidG9fc2VxaSIsIm5ld19sZW4iLCJuZXdfYnVmIiwidW5zYWZlX2dldF91aW50MTZfbGUiLCJ1bnNhZmVfZ2V0X3VpbnQxNl9iZSIsImdldF9pbnQ4IiwiZ2V0X3VpbnQxNl9sZSIsImdldF91aW50MTZfYmUiLCJnZXRfaW50MTZfbmUiLCJnZXRfaW50MTZfbGUiLCJnZXRfaW50MTZfYmUiLCJnZXRfaW50MzJfbGUiLCJnZXRfaW50MzJfYmUiLCJnZXRfaW50NjRfbGUiLCJnZXRfaW50NjRfYmUiLCJ1bnNhZmVfc2V0X3VpbnQxNl9sZSIsInVuc2FmZV9zZXRfdWludDE2X2JlIiwic2V0X2ludDE2X2xlIiwic2V0X2ludDE2X2JlIiwic2V0X2ludDMyX2xlIiwic2V0X2ludDMyX2JlIiwic2V0X2ludDY0X2xlIiwic2V0X2ludDY0X2JlIiwic2V0X3VpbnQ4Iiwic2V0X3VpbnQxNl9uZSIsImRlY19pbnZhbGlkIiwiZGVjX3JldCIsIm5vdF9pbl94ODBfdG9feEJGIiwibm90X2luX3hBMF90b194QkYiLCJub3RfaW5feDgwX3RvX3g5RiIsIm5vdF9pbl94OTBfdG9feEJGIiwibm90X2luX3g4MF90b194OEYiLCJ1dGZfOF91Y2hhcl8zIiwiYjAiLCJiMSIsImIyIiwidXRmXzhfdWNoYXJfNCIsImIzIiwiZ2V0X3V0Zl84X3VjaGFyIiwiaSQ0IiwiYjEkMSIsImkkNSIsImIyJDEiLCJpJDYiLCJpJDEwIiwiYjEkMyIsImkkMTEiLCJiMiQzIiwiaSQxMiIsImIzJDEiLCJpJDciLCJiMSQyIiwiaSQ4IiwiYjIkMiIsImkkOSIsImIzJDAiLCJpJDEzIiwiYjEkNCIsImkkMTQiLCJiMiQ0IiwiaSQyIiwiYjEkMCIsImkkMyIsImIyJDAiLCJpJDE1IiwiYjEkNSIsInNldF91dGZfOF91Y2hhciIsImxhc3QkMSIsImxhc3QkMCIsImxhc3QiLCJpc192YWxpZF91dGZfOCIsImxhc3QkMyIsImxhc3QkMiIsImxhc3QkNCIsImxhc3QkNSIsImdldF91dGZfMTZiZV91Y2hhciIsImhpIiwibG8iLCJzZXRfdXRmXzE2YmVfdWNoYXIiLCJ1JDEiLCJpc192YWxpZF91dGZfMTZiZSIsImdldF91dGZfMTZsZV91Y2hhciIsInNldF91dGZfMTZsZV91Y2hhciIsImlzX3ZhbGlkX3V0Zl8xNmxlIiwiYnRzIiwiYm9zIiwib2ZfYnl0ZXMiLCJ0b19ieXRlcyIsImciLCJ0b19idWZmZXIiLCJidWZmIiwiZmxhZ3MiLCJoZWFkZXJfc2l6ZSIsImRhdGFfc2l6ZSIsInRvdGFsX3NpemUiLCJmcm9tX2J5dGVzIiwiZnJvbV9zdHJpbmciLCJtYWtlX2Zsb2F0IiwibWFrZV9tYXRyaXgiLCJzeCIsInN5IiwibGEiLCJsYiIsInJlcyQwIiwibGlzdF9sZW5ndGgiLCJvZl9saXN0IiwiaW5wdXRfYXJyYXkiLCJlbHQiLCJvdXRwdXRfYXJyYXkiLCJlbHQkMCIsImFjYyQyIiwiYTAiLCJiaSIsImFpIiwibmEiLCJuYiIsIm1heHNvbiIsImkzMSIsImUkMSIsImokMCIsImZhdGhlciIsInNyYzFvZnMiLCJzcmMxbGVuIiwic3JjMiIsInNyYzJvZnMiLCJzcmMybGVuIiwiZHN0b2ZzIiwic3JjMXIiLCJzcmMyciIsInMyJDEiLCJzMSQxIiwiaTEiLCJpMiIsImkyJDAiLCJkJDAiLCJzMiQwIiwiaTEkMCIsImQkMSIsInMxJDAiLCJpc29ydHRvIiwic3Jjb2ZzIiwic29ydHRvIiwiaXNfZmluaXRlIiwiaXNfaW5maW5pdGUiLCJpc19uYW4iLCJlcHNpbG9uIiwib2Zfc3RyaW5nX29wdCIsInBpIiwiaXNfaW50ZWdlciIsIm1pbl9tYXgiLCJtaW5fbnVtIiwibWF4X251bSIsIm1pbl9tYXhfbnVtIiwidW5zYWZlX2ZpbGwiLCJjaGVjayIsImhsZW4iLCJzcmMiLCJzb2ZzIiwiZG9mcyIsImgiLCJtZW1faWVlZSIsIm1hcF90b19hcnJheSIsIm1hcF9mcm9tX2FycmF5IiwibWF4X2ludCQwIiwidW5zaWduZWRfdG9faW50IiwidW5zaWduZWRfY29tcGFyZSIsIm0iLCJ1bnNpZ25lZF9kaXYiLCJxIiwidW5zaWduZWRfcmVtIiwic2l6ZSIsImR1bW15X3BvcyIsInplcm9fcG9zIiwiZW5naW5lIiwidGJsIiwic3RhdGUiLCJuZXdfZW5naW5lIiwiZnJvbV9mdW5jdGlvbiIsIm9wdCIsInJlYWRfZnVuIiwic3RoIiwid2l0aF9wb3NpdGlvbnMiLCJhdXhfYnVmZmVyIiwibGV4YnVmIiwicmVhZCIsIm5ld2xlbiIsIm5ld2J1ZiIsImZyb21fY2hhbm5lbCIsInNldF9wb3NpdGlvbiIsInBvc2l0aW9uIiwic2V0X2ZpbGVuYW1lIiwiZm5hbWUiLCJsZXhlbWUiLCJzdWJfbGV4ZW1lIiwic3ViX2xleGVtZV9vcHQiLCJzdWJfbGV4ZW1lX2NoYXIiLCJzdWJfbGV4ZW1lX2NoYXJfb3B0IiwibGV4ZW1lX2NoYXIiLCJsZXhlbWVfc3RhcnQiLCJsZXhlbWVfZW5kIiwibGV4ZW1lX3N0YXJ0X3AiLCJsZXhlbWVfZW5kX3AiLCJuZXdfbGluZSIsImxjcCIsImZsdXNoX2lucHV0IiwiZW52IiwiZ3Jvd19zdGFja3MiLCJvbGRzaXplIiwibmV3c2l6ZSIsIm5ld19zIiwibmV3X3YiLCJuZXdfc3RhcnQiLCJuZXdfZW5kIiwiY2xlYXJfcGFyc2VyIiwiY3VycmVudF9sb29rYWhlYWRfZnVuIiwieXlwYXJzZSIsInRhYmxlcyIsInN0YXJ0IiwibGV4ZXIiLCJpbml0X2FzcCIsImluaXRfc3AiLCJpbml0X3N0YWNrYmFzZSIsImluaXRfc3RhdGUiLCJpbml0X2N1cnJfY2hhciIsImluaXRfbHZhbCIsImluaXRfZXJyZmxhZyIsImNtZCIsImFyZyIsImFyZyQwIiwiZXhuJDAiLCJleG4iLCJjdXJyX2NoYXIiLCJ0b2siLCJwZWVrX3ZhbCIsInN5bWJvbF9zdGFydF9wb3MiLCJzdCIsImVuIiwic3ltYm9sX2VuZF9wb3MiLCJyaHNfc3RhcnRfcG9zIiwicmhzX2VuZF9wb3MiLCJzeW1ib2xfc3RhcnQiLCJzeW1ib2xfZW5kIiwicmhzX3N0YXJ0IiwicmhzX2VuZCIsImlzX2N1cnJlbnRfbG9va2FoZWFkIiwicGFyc2VfZXJyb3IiLCJoZWlnaHQiLCJobCIsImgkMCIsImhyIiwiYmFsIiwibHIiLCJsdiIsImxsIiwibHJyIiwibHJ2IiwibHJsIiwicnIiLCJydiIsInJsIiwicmxyIiwicmx2IiwicmxsIiwiYWRkIiwic2luZ2xldG9uIiwiYWRkX21pbl9lbGVtZW50IiwiYWRkX21heF9lbGVtZW50IiwicmgiLCJsaCIsIm1pbl9lbHQiLCJtaW5fZWx0X29wdCIsIm1heF9lbHQiLCJtYXhfZWx0X29wdCIsInJlbW92ZV9taW5fZWx0IiwiciQwIiwicHJlcyIsInByZXMkMCIsInJlbW92ZSIsInVuaW9uIiwicjIiLCJyMiQwIiwicjEkMCIsImludGVyIiwic3BsaXRfYmlzIiwiZGlzam9pbnQiLCJjb25zX2VudW0iLCJlMiQyIiwiZTEkMiIsImUyJDAiLCJlMSQwIiwiZTIkMSIsImUxJDEiLCJzdWJzZXQiLCJwdiIsImxmIiwibHQiLCJyZiIsInJ0IiwiY2FyZGluYWwiLCJlbGVtZW50c19hdXgiLCJlbGVtZW50cyIsImZpbmRfZmlyc3QiLCJ2MCQxIiwidjAkMCIsImZpbmRfZmlyc3Rfb3B0IiwiZmluZF9sYXN0IiwiZmluZF9sYXN0X29wdCIsInRyeV9qb2luIiwidiQxIiwieDAiLCJsJDMiLCJsJDQiLCJ4MCQwIiwibCQ1IiwieDAkMSIsIm5sIiwibWlkIiwibCQyIiwieDQiLCJhZGRfc2VxIiwic2VxX29mX2VudW0iLCJzbm9jX2VudW0iLCJyZXZfc2VxX29mX2VudW0iLCJ0b19yZXZfc2VxIiwidG9fc2VxX2Zyb20iLCJsb3ciLCJsZCIsImxyZCIsInJkIiwicmxkIiwiZGF0YSIsImQwJDEiLCJkMCIsImQwJDAiLCJtaW5fYmluZGluZyIsIm1pbl9iaW5kaW5nX29wdCIsIm1heF9iaW5kaW5nIiwibWF4X2JpbmRpbmdfb3B0IiwicmVtb3ZlX21pbl9iaW5kaW5nIiwidXBkYXRlIiwiZGF0YSQwIiwibSQwIiwiYWRkX21pbl9iaW5kaW5nIiwiayIsImFkZF9tYXhfYmluZGluZyIsImNvbmNhdF9vcl9qb2luIiwiZDEiLCJkMiIsImQyJDAiLCJkMSQwIiwiZDIkMSIsImQxJDEiLCJwdmQiLCJmdmQiLCJtMSIsIm0yIiwiYmluZGluZ3NfYXV4IiwiYmluZGluZ3MiLCJjbGVhciIsInB1c2giLCJwb3AiLCJwb3Bfb3B0IiwidG9wIiwidG9wX29wdCIsImNlbGwiLCJtYXRjaCIsInBlZWsiLCJjb250ZW50IiwicGVla19vcHQiLCJ0YWtlX29wdCIsImNlbGwkMCIsInFfcmVzIiwicHJldiIsInByZXYkMCIsInRyYW5zZmVyIiwicTEiLCJxMiIsImNvdW50IiwiZmlsbF9idWZmIiwiZ2V0X2RhdGEiLCJkMTEiLCJhJDAiLCJhJDEiLCJwZWVrX2RhdGEiLCJqdW5rX2RhdGEiLCJqdW5rIiwibmdldF9kYXRhIiwiYWwiLCJucGVlayIsInN0cm0iLCJmcm9tIiwib2ZfY2hhbm5lbCIsImlhcHAiLCJpY29ucyIsImlzaW5nIiwibGFwcCIsImxjb25zIiwibHNpbmciLCJzZW1wdHkiLCJzbGF6eSIsImR1bXAiLCJkdW1wX2RhdGEiLCJjb250ZW50cyIsInJlc2V0IiwicmVzaXplIiwibW9yZSIsIm9sZF9wb3MiLCJvbGRfbGVuIiwibmV3X2J1ZmZlciIsImFkZF9jaGFyIiwidWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4IiwidWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heCIsImFkZF91dGZfOF91Y2hhciIsImFkZF91dGZfMTZiZV91Y2hhciIsImFkZF91dGZfMTZsZV91Y2hhciIsImFkZF9zdWJzdHJpbmciLCJvZmZzZXQiLCJuZXdfcG9zaXRpb24iLCJhZGRfc3ViYnl0ZXMiLCJhZGRfc3RyaW5nIiwiYWRkX2J5dGVzIiwiYWRkX2J1ZmZlciIsImJzIiwiYWRkX2NoYW5uZWwiLCJ0b19yZWFkJDEiLCJhbHJlYWR5X3JlYWQiLCJ0b19yZWFkIiwiYWxyZWFkeV9yZWFkJDAiLCJ0b19yZWFkJDAiLCJvdXRwdXRfYnVmZmVyIiwiYWRkX3N1YnN0aXR1dGUiLCJsaW0kMSIsInByZXZpb3VzIiwicHJldmlvdXMkMCIsInN0YXJ0JDAiLCJvcGVuaW5nIiwibGltJDAiLCJzdG9wJDAiLCJrJDIiLCJjbG9zaW5nIiwic3RvcCIsImskMCIsImskMSIsIm5leHRfaSIsImlkZW50IiwidHJ1bmNhdGUiLCJhZGRfaW50OCIsImFkZF9pbnQxNl9uZSIsImFkZF9pbnQzMl9uZSIsImFkZF9pbnQ2NF9uZSIsImFkZF9pbnQxNl9sZSIsImFkZF9pbnQxNl9iZSIsImFkZF9pbnQzMl9sZSIsImFkZF9pbnQzMl9iZSIsImFkZF9pbnQ2NF9sZSIsImFkZF9pbnQ2NF9iZSIsInN1Yl9mb3JtYXQiLCJmb3JtYXR0aW5nX2xpdCIsImNyZWF0ZV9jaGFyX3NldCIsImFkZF9pbl9jaGFyX3NldCIsInN0cl9pbmQiLCJtYXNrIiwiZnJlZXplX2NoYXJfc2V0IiwicmV2X2NoYXJfc2V0IiwiY2hhcl9zZXQkMCIsImlzX2luX2NoYXJfc2V0IiwicGFkX29mX3BhZF9vcHQiLCJwYWRfb3B0Iiwid2lkdGgiLCJwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQiLCJmbXQiLCJwYWRfb3B0JDAiLCJwYWRfb3B0JDEiLCJwYWRfb3B0JDIiLCJwYWRfb3B0JDMiLCJwYWRfb3B0JDQiLCJwcmVjX29wdCIsInBhZF9vcHQkNSIsIm5kZWMiLCJwYWRfb3B0JDYiLCJwYWRfb3B0JDciLCJwYWRfb3B0JDgiLCJkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiIsImJ1ZmZlcl9jcmVhdGUiLCJpbml0X3NpemUiLCJidWZmZXJfY2hlY2tfc2l6ZSIsIm92ZXJoZWFkIiwibWluX2xlbiIsIm5ld19zdHIiLCJidWZmZXJfYWRkX2NoYXIiLCJidWZmZXJfYWRkX3N0cmluZyIsInN0cl9sZW4iLCJidWZmZXJfY29udGVudHMiLCJjaGFyX29mX2ljb252IiwiY2hhcl9vZl9mY29udiIsImNGIiwiYnByaW50X3BhZHR5IiwicGFkdHkiLCJicHJpbnRfaWdub3JlZF9mbGFnIiwiaWduX2ZsYWciLCJicHJpbnRfcGFkX29wdCIsImJwcmludF9wYWRkaW5nIiwicGFkdHkkMCIsImJwcmludF9wcmVjaXNpb24iLCJicHJpbnRfaWNvbnZfZmxhZyIsImJwcmludF9hbHRpbnRfZm10IiwiYnByaW50X2Zjb252X2ZsYWciLCJzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQiLCJzdHIkMCIsImJwcmludF9jaGFyX2xpdGVyYWwiLCJicHJpbnRfc3RyaW5nX2xpdGVyYWwiLCJicHJpbnRfZm10dHkiLCJmbXR0eSQxIiwiZm10dHkkMiIsImZtdHR5JDMiLCJmbXR0eSQ0IiwiZm10dHkkNSIsImZtdHR5JDYiLCJmbXR0eSQ3IiwiZm10dHkkOCIsImZtdHR5JDkiLCJzdWJfZm10dHkiLCJmbXR0eSQxMCIsInN1Yl9mbXR0eSQwIiwiZm10dHkkMTEiLCJmbXR0eSQxMiIsImZtdHR5JDEzIiwiZm10dHkkMTQiLCJmbXR0eSQxNSIsImludF9vZl9jdXN0b21fYXJpdHkiLCJzdHJpbmdfb2ZfZm10IiwiZm10aXRlciIsImZtdCQwIiwiaWduX2ZsYWckMCIsInN0ciQxIiwiaXNfYWxvbmUkMCIsImlzX2Fsb25lIiwiYWZ0ZXIiLCJiZWZvcmUiLCJqJDEiLCJmbXQkMSIsInN5bW0iLCJmbXR0eV9yZWxfZGV0IiwiZGUiLCJlZCIsImFmIiwiZmEiLCJkZSQwIiwiZWQkMCIsImFmJDAiLCJmYSQwIiwiZGUkMSIsImVkJDEiLCJhZiQxIiwiZmEkMSIsImRlJDIiLCJlZCQyIiwiYWYkMiIsImZhJDIiLCJkZSQzIiwiZWQkMyIsImFmJDMiLCJmYSQzIiwiZGUkNCIsImVkJDQiLCJhZiQ0IiwiZmEkNCIsImRlJDUiLCJlZCQ1IiwiYWYkNSIsImZhJDUiLCJkZSQ2IiwiZWQkNiIsImFmJDYiLCJmYSQ2IiwiZGUkNyIsImVkJDciLCJhZiQ3IiwiZmEkNyIsImRlJDgiLCJlZCQ4IiwiYWYkOCIsImZhJDgiLCJ0cmFucyIsImpkIiwiZGoiLCJnYSIsImFnIiwiZGUkOSIsImVkJDkiLCJhZiQ5IiwiZmEkOSIsImRlJDEwIiwiZWQkMTAiLCJhZiQxMCIsImZhJDEwIiwiZGUkMTEiLCJlZCQxMSIsImFmJDExIiwiZmEkMTEiLCJkZSQxMiIsImVkJDEyIiwiYWYkMTIiLCJmYSQxMiIsImRlJDEzIiwiZWQkMTMiLCJhZiQxMyIsImZhJDEzIiwicmVzdDEiLCJyZXN0MiIsInJlc3QxJDAiLCJyZXN0MiQwIiwicmVzdDEkMSIsInJlc3QyJDEiLCJyZXN0MSQyIiwicmVzdDIkMiIsInJlc3QxJDMiLCJyZXN0MiQzIiwicmVzdDEkNCIsInJlc3QyJDQiLCJyZXN0MSQ1IiwicmVzdDIkNSIsInJlc3QxJDYiLCJyZXN0MiQ2IiwicmVzdDEkNyIsInR5MSQwIiwicmVzdDIkNyIsInR5MiQwIiwicmVzdDEkOCIsInR5MTIiLCJ0eTExIiwicmVzdDIkOCIsInR5MjIiLCJ0eTIxIiwiZjQiLCJmMiIsInJlc3QxJDkiLCJyZXN0MiQ5IiwicmVzdDEkMTAiLCJyZXN0MiQxMCIsInJlc3QxJDExIiwicmVzdDIkMTEiLCJyZXN0MSQxMiIsInJlc3QyJDEyIiwicmVzdDEkMTMiLCJyZXN0MiQxMyIsImZtdHR5X29mX3BhZGRpbmdfZm10dHkiLCJmbXR0eV9vZl9jdXN0b20iLCJhcml0eSQwIiwiZm10dHlfb2ZfZm10IiwidHlfcmVzdCIsInByZWNfdHkiLCJmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkiLCJ0eV9yZXN0JDAiLCJwcmVjX3R5JDAiLCJ0eV9yZXN0JDEiLCJwcmVjX3R5JDEiLCJ0eV9yZXN0JDIiLCJwcmVjX3R5JDIiLCJ0eV9yZXN0JDMiLCJwcmVjX3R5JDMiLCJ0eSQwIiwiZm9ybWF0dGluZ19nZW4iLCJ0eXBlX3BhZGRpbmciLCJ3IiwidHlwZV9wYWRwcmVjIiwidHlwZV9mb3JtYXQiLCJ0eXBlX2Zvcm1hdF9nZW4iLCJ0eXBlX2lnbm9yZWRfcGFyYW1fb25lIiwiZm10dHkwIiwiZm10dHlfcmVzdCIsImZtdF9yZXN0IiwiZm10dHlfcmVzdCQwIiwiZm10X3Jlc3QkMCIsImZtdF9yZXN0JDEiLCJmbXR0eV9yZXN0JDEiLCJmbXQkMiIsImZtdF9yZXN0JDIiLCJmbXR0eV9yZXN0JDIiLCJmbXQkMyIsImZtdF9yZXN0JDMiLCJmbXR0eV9yZXN0JDMiLCJmbXQkNCIsImZtdF9yZXN0JDQiLCJmbXR0eV9yZXN0JDQiLCJmbXQkNSIsImZtdF9yZXN0JDUiLCJmbXR0eV9yZXN0JDUiLCJwcmVjJDQiLCJmbXQkNiIsImZtdF9yZXN0JDYiLCJwcmVjJDUiLCJwYWQkOSIsInBhZCQxMCIsImZtdHR5X3Jlc3QkNiIsInByZWMkNiIsImZtdCQ3IiwiZm10X3Jlc3QkNyIsInByZWMkNyIsInBhZCQxMSIsInBhZCQxMiIsImZtdHR5X3Jlc3QkNyIsInByZWMkOCIsImZtdCQ4IiwiZm10X3Jlc3QkOCIsInBhZCQxMyIsInBhZCQxNCIsImZtdHR5X3Jlc3QkOCIsImZtdCQ5IiwiZm10X3Jlc3QkOSIsImZtdCQxMCIsImZtdF9yZXN0JDEwIiwiZm10JDExIiwiZm10X3Jlc3QkMTEiLCJmbXQkMTIiLCJmbXR0eV9yZXN0JDkiLCJmbXRfcmVzdCQxMiIsImZtdCQxMyIsImZtdHR5X3Jlc3QkMTAiLCJzdWJfZm10dHkxIiwiZm10X3Jlc3QkMTMiLCJzdWJfZm10dHkkMSIsImZtdCQxNCIsImZtdHR5X3Jlc3QkMTEiLCJmbXRfcmVzdCQxNCIsImZtdCQxNSIsImZtdHR5X3Jlc3QkMTIiLCJmbXRfcmVzdCQxNSIsImZtdCQxNiIsImZtdF9yZXN0JDE2IiwiZm10dHkkMTYiLCJmbXQkMTciLCJmbXRfcmVzdCQxNyIsImZtdHR5MyIsImZtdDMiLCJmbXQxJDAiLCJmbXR0eTIkMCIsImZtdDIkMCIsImZtdHR5MyQwIiwiZm10MyQwIiwiZm10dHlfcmVzdCQxMyIsImZtdF9yZXN0JDE4IiwiZm10dHkkMTciLCJmbXQkMTgiLCJmbXR0eV9yZXN0JDE0IiwiZm10X3Jlc3QkMTkiLCJmbXR0eSQxOCIsImZtdCQxOSIsImZtdHR5X3Jlc3QkMTUiLCJmbXRfcmVzdCQyMCIsImZtdHR5JDE5IiwiZm10JDIwIiwic3ViX2ZtdHR5JDIiLCJzdWJfZm10dHkkMyIsInR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aSIsImZtdHR5JDIxIiwiZm10JDIyIiwic3ViX2ZtdHR5JDQiLCJmbXR0eV9yZXN0JDE2IiwiZm10dHkkMjAiLCJmbXQkMjEiLCJzdWJfZm10dHlfcmVzdCIsInN1Yl9mbXR0eV9yZXN0JDAiLCJzdWJfZm10dHlfcmVzdCQxIiwic3ViX2ZtdHR5X3Jlc3QkMiIsInN1Yl9mbXR0eV9yZXN0JDMiLCJzdWJfZm10dHlfcmVzdCQ0Iiwic3ViX2ZtdHR5X3Jlc3QkNSIsInN1Yl9mbXR0eV9yZXN0JDYiLCJzdWJfZm10dHlfcmVzdCQ3Iiwic3ViX2ZtdHR5X3Jlc3QkOCIsInN1Yl9mbXR0eV9yZXN0JDkiLCJzdWJfZm10dHlfcmVzdCQxMCIsInN1Yl9mbXR0eV9yZXN0JDExIiwic3ViX2ZtdHR5X3Jlc3QkMTIiLCJzdWJfZm10dHlfcmVzdCQxMyIsInN1Yl9mbXR0eV9yZXN0JDE0Iiwic3ViMl9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE1Iiwic3ViMl9mbXR0eSQwIiwic3ViX2ZtdHR5X3Jlc3QkMTYiLCJzdWIyX2ZtdHR5JDEiLCJzdWIxX2ZtdHR5Iiwic3ViX2ZtdHR5X3Jlc3QkMTciLCJzdWIyX2ZtdHR5JDIiLCJzdWIxX2ZtdHR5JDAiLCJzdWJfZm10dHlfcmVzdCQxOCIsInN1Yl9mbXR0eV9yZXN0JDE5Iiwic3ViX2ZtdHR5X3Jlc3QkMjAiLCJzdWJfZm10dHlfcmVzdCQyMSIsInN1Yl9mbXR0eV9yZXN0JDIyIiwic3ViX2ZtdHR5X3Jlc3QkMjMiLCJzdWJfZm10dHlfcmVzdCQyNCIsInN1Yl9mbXR0eV9yZXN0JDI1Iiwic3ViX2ZtdHR5X3Jlc3QkMjYiLCJyZWNhc3QiLCJmaXhfcGFkZGluZyIsIndpZHRoJDAiLCJmaXhfaW50X3ByZWNpc2lvbiIsInJlcyQxIiwic3RyaW5nX3RvX2NhbWxfc3RyaW5nIiwiZm9ybWF0X29mX2Zjb252Iiwic3ltYiIsInRyYW5zZm9ybV9pbnRfYWx0IiwiZGlnaXRzIiwicHV0IiwiY29udmVydF9pbnQiLCJjb252ZXJ0X2ludDMyIiwiY29udmVydF9uYXRpdmVpbnQiLCJjb252ZXJ0X2ludDY0IiwiY29udmVydF9mbG9hdCIsImhleCIsInNpZ24iLCJjYW1sX3NwZWNpYWxfdmFsIiwic3RyaW5nX29mX2ZtdHR5IiwibWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24iLCJtYWtlX3ByaW50ZiIsInAkMCIsInAkMSIsIm1ha2VfcGFkZGluZyIsIm5ld19hY2MiLCJtYWtlX3ByaW50ZiQwIiwiYWNjJDMiLCJhY2MkNCIsImskMyIsImthY2MiLCJrJDQiLCJtYWtlX2lnbm9yZWRfcGFyYW0kMCIsIm1ha2VfY3VzdG9tJDAiLCJtYWtlX2ludmFsaWRfYXJnIiwibWFrZV9mcm9tX2ZtdHR5JDAiLCJtYWtlX2Zyb21fZm10dHkiLCJtYWtlX2N1c3RvbSIsIm1ha2VfaWdub3JlZF9wYXJhbSIsImZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9pcHJpbnRmIiwibWFrZV9pcHJpbnRmJDAiLCJrb2MiLCJyZXN0JDI0IiwicmVzdCQyNSIsInJlc3QkMjYiLCJyZXN0JDI3IiwicmVzdCQyOCIsInJlc3QkMjkiLCJmbl9vZl9jdXN0b21fYXJpdHkkMCIsImZuX29mX2N1c3RvbV9hcml0eSIsIm91dHB1dF9hY2MiLCJwJDMiLCJwJDQiLCJwJDUiLCJwJDIiLCJidWZwdXRfYWNjIiwic3RycHV0X2FjYyIsImZhaWx3aXRoX21lc3NhZ2UiLCJvcGVuX2JveF9vZl9zdHJpbmciLCJpbnZhbGlkX2JveCIsInBhcnNlX3NwYWNlcyIsIndzdGFydCIsIndlbmQiLCJib3hfbmFtZSIsIm5zdGFydCIsIm5lbmQiLCJpbmRlbnQiLCJleHBfZW5kIiwiYm94X3R5cGUiLCJtYWtlX3BhZGRpbmdfZm10X2ViYiIsIm1ha2VfcGFkcHJlY19mbXRfZWJiIiwiZm10X2ViYl9vZl9zdHJpbmciLCJsZWdhY3lfYmVoYXZpb3IiLCJmbGFnIiwibGVnYWN5X2JlaGF2aW9yJDAiLCJpbnZhbGlkX2Zvcm1hdF9tZXNzYWdlIiwidW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IiwiZW5kX2luZCIsImludmFsaWRfZm9ybWF0X3dpdGhvdXQiLCJleHBlY3RlZF9jaGFyYWN0ZXIiLCJleHBlY3RlZCIsImFkZF9saXRlcmFsIiwibGl0X3N0YXJ0IiwicGFyc2UiLCJzdHJfaW5kJDIiLCJwYXJzZV9mbGFncyIsInN0cl9pbmQkMSIsInN0cl9pbmQkMCIsInBhcnNlX3RhZyIsInN0cl9pbmQkMyIsInN0cl9pbmRfMSIsInBhcnNlX2ludGVnZXIiLCJzdHJfaW5kXzIiLCJzdHJfaW5kXzMiLCJmb3JtYXR0aW5nX2xpdCQwIiwibmV4dF9pbmQiLCJzdHJfaW5kXzQiLCJzdHJfaW5kXzUiLCJzdHJfaW5kJDQiLCJzdHJfaW5kXzEkMCIsInN0cl9pbmRfMiQwIiwic3RyX2luZF8zJDAiLCJzJDEiLCJmb3JtYXR0aW5nX2xpdCQxIiwibmV4dF9pbmQkMCIsInBhcnNlX2NvbnZlcnNpb24iLCJwY3RfaW5kIiwicGx1cyIsInNwYWNlIiwicGFkcHJlYyIsInBsdXNfdXNlZCIsImhhc2hfdXNlZCIsInNwYWNlX3VzZWQiLCJpZ25fdXNlZCIsInBhZF91c2VkIiwicHJlY191c2VkIiwiZ2V0X3BsdXMiLCJnZXRfaGFzaCIsImdldF9zcGFjZSIsImdldF9pZ24iLCJnZXRfcGFkIiwiZ2V0X3ByZWMiLCJnZXRfcGFkcHJlYyIsImdldF9pbnRfcGFkIiwiaW5jb21wYXRpYmxlX2ZsYWciLCJjaGVja19ub18wIiwib3B0X29mX3BhZCIsIndpZHRoJDEiLCJnZXRfcGFkX29wdCIsImdldF9wYWRwcmVjX29wdCIsImZtdF9yZXN1bHQiLCJzdWJfZW5kIiwic2VhcmNoX3N1YmZvcm1hdF9lbmQiLCJzdWJfZm10IiwiaWdub3JlZCQyIiwiY291bnRlciQwIiwiaWdub3JlZCQ2IiwiaWdub3JlZCQ3IiwiYWRkX3JhbmdlIiwiZmFpbF9zaW5nbGVfcGVyY2VudCIsInBhcnNlX2NoYXJfc2V0X2NvbnRlbnQiLCJwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyJDAiLCJwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIiwicmV2ZXJzZSIsImNoYXJfc2V0JDEiLCJpZ25vcmVkJDkiLCJjaGFyX2Zvcm1hdCIsImZtdF9yZXN0JDIxIiwiZm10X3Jlc3QkMjIiLCJmbXRfcmVzdCQyMyIsImlnbm9yZWQkMTAiLCJmbXRfcmVzdCQyNCIsImZtdF9yZXN0JDI1Iiwic3ViX2VuZCQwIiwic3ViX2ZtdCQwIiwiZm10X3Jlc3QkMjYiLCJpZ25vcmVkJDExIiwiaWdub3JlZCQzIiwic3ltYiQwIiwiaWdub3JlZCQ1IiwiY29tcHV0ZV9pbnRfY29udiIsImlnbm9yZWQkOCIsInNwYWNlJDEiLCJoYXNoJDEiLCJwbHVzJDIiLCJraW5kIiwiaWdub3JlZCQ0IiwiaWdub3JlZCIsImlnbm9yZWQkMCIsImlnbm9yZWQkMSIsInBsdXMkMCIsImhhc2gkMCIsInNwYWNlJDAiLCJwbHVzJDEiLCJpZ24kMCIsInBhcnNlX2FmdGVyX3ByZWNpc2lvbiIsIm1pbnVzIiwicGFyc2VfY29udiIsInBhcnNlX2FmdGVyX3BhZGRpbmciLCJwYXJzZV9saXRlcmFsIiwicGFyc2VfcG9zaXRpdmUiLCJuZXdfaW5kIiwibWludXMkMCIsInNldF9mbGFnIiwic3RyX2luZCQ1IiwiemVybyQwIiwiaXNfb3Blbl90YWciLCJpbmQiLCJzdWJfc3RyIiwic3ViX2Zvcm1hdCQwIiwiZm9ybWF0dGluZyQwIiwiZm9ybWF0dGluZyIsInN0cl9pbmQkNyIsInN1Yl9lbmQkMSIsInN1Yl9lbmQkMiIsInN0cl9pbmQkNiIsIm9wdGlvbiIsInN1YmZtdCIsImZvcm1hdF9vZl9zdHJpbmdfZm10dHkiLCJmb3JtYXRfb2Zfc3RyaW5nX2Zvcm1hdCIsImtmcHJpbnRmIiwia2JwcmludGYiLCJpa2ZwcmludGYiLCJmcHJpbnRmIiwiYnByaW50ZiIsImlmcHJpbnRmIiwiaWJwcmludGYiLCJwcmludGYiLCJlcHJpbnRmIiwia3NwcmludGYiLCJzcHJpbnRmIiwiYXNzb2MzIiwieTIiLCJ5MSIsIm1ha2Vfc3ltbGlzdCIsImhlbHBfYWN0aW9uIiwiYWRkX2hlbHAiLCJzcGVjbGlzdCIsImFkZDEiLCJhZGQyIiwidXNhZ2VfYiIsImVycm1zZyIsImRvYyIsInNwZWMiLCJrZXkiLCJ1c2FnZV9zdHJpbmciLCJ1c2FnZSIsImN1cnJlbnQiLCJwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY18iLCJhbGxvd19leHBhbmQiLCJhcmd2IiwiYW5vbmZ1biIsImluaXRwb3MiLCJjb252ZXJ0X2Vycm9yIiwicHJvZ25hbWUiLCJmb2xsb3ckMCIsImtleXdvcmQiLCJub19hcmckMCIsImZvbGxvdyIsIm5vX2FyZyIsImdldF9hcmckMCIsImdldF9hcmciLCJjb25zdW1lX2FyZyQwIiwiY29uc3VtZV9hcmciLCJ0cmVhdF9hY3Rpb24kMCIsInRyZWF0X2FjdGlvbiIsImYkMCIsImYkMSIsInIkMSIsImYkMiIsImFyZyQxIiwiciQyIiwiYXJnJDIiLCJmJDMiLCJhcmckMyIsIngkMSIsInIkMyIsImFyZyQ0IiwieCQyIiwic3BlY3MiLCJmJDQiLCJhcmckNSIsImYkNSIsImYkNiIsImYkNyIsImFyZyQ2IiwibmV3YXJnIiwicGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWMiLCJwYXJzZV9hcmd2X2R5bmFtaWMiLCJjdXJyZW50JDAiLCJwYXJzZV9hcmd2IiwibXNnJDAiLCJtc2ckMSIsInBhcnNlX2R5bmFtaWMiLCJwYXJzZV9leHBhbmQiLCJzZWNvbmRfd29yZCIsImxvb3AiLCJtYXhfYXJnX2xlbiIsImt3ZCIsInJlcGxhY2VfbGVhZGluZ190YWIiLCJhbGlnbiIsImxpbWl0IiwiY29tcGxldGVkIiwia3NkIiwiY3V0Y29sJDAiLCJzcGFjZXMkMCIsInNwZWMkMCIsImN1dGNvbCIsImt3ZF9sZW4iLCJzcGFjZXMiLCJyZWFkX2F1eCIsImZpbGUiLCJ3b3JkcyIsInN0YXNoIiwid29yZCIsIndvcmQkMCIsInJlYWRfYXJnIiwicmVhZF9hcmcwIiwid3JpdGVfYXV4IiwiYXJncyIsIndyaXRlX2FyZyIsIndyaXRlX2FyZzAiLCJsb2NmbXQiLCJwcmludGVycyIsImZpZWxkIiwib3RoZXJfZmllbGRzIiwidXNlX3ByaW50ZXJzIiwidG9fc3RyaW5nX2RlZmF1bHQiLCJjaGFyJDAiLCJsaW5lIiwiY2hhciQxIiwibGluZSQwIiwiZmlsZSQwIiwiY2hhciQyIiwibGluZSQxIiwiZmlsZSQxIiwiY29uc3RydWN0b3IiLCJwcmludCIsImZjdCIsImNhdGNoJDAiLCJyYXdfYmFja3RyYWNlX2VudHJpZXMiLCJidCIsImNvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImZvcm1hdF9iYWNrdHJhY2Vfc2xvdCIsImlzX3JhaXNlIiwicHJpbnRfcmF3X2JhY2t0cmFjZSIsIm91dGNoYW4iLCJyYXdfYmFja3RyYWNlIiwiYmFja3RyYWNlIiwicHJpbnRfYmFja3RyYWNlIiwicmF3X2JhY2t0cmFjZV90b19zdHJpbmciLCJiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSIsInBhcmFtIiwiYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lIiwiYmFja3RyYWNlX3Nsb3RfbG9jYXRpb24iLCJiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lIiwiYmFja3RyYWNlX3Nsb3RzIiwiYmFja3RyYWNlX3Nsb3RzX29mX3Jhd19lbnRyeSIsImVudHJ5IiwicmF3X2JhY2t0cmFjZV9sZW5ndGgiLCJnZXRfYmFja3RyYWNlIiwicmVnaXN0ZXJfcHJpbnRlciIsImZuIiwib2xkX3ByaW50ZXJzIiwibmV3X3ByaW50ZXJzIiwiZXhuX3Nsb3QiLCJleG5fc2xvdF9pZCIsImV4bl9zbG90X25hbWUiLCJlcnJvcnMiLCJkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW4iLCJzdGF0dXMiLCJ1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsInNldF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsImVtcHR5X2JhY2t0cmFjZSIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24iLCJkZWJ1Z2dlcl9pbl91c2UiLCJleG4kMSIsInJhd19iYWNrdHJhY2UkMCIsImNvbnN0JDAiLCJmbGlwIiwibmVnYXRlIiwicHJvdGVjdCIsImZpbmFsbHkkMCIsIndvcmsiLCJmaW5hbGx5X25vX2V4biIsIndvcmtfZXhuJDAiLCJ3b3JrX2V4biIsIndvcmtfYnQiLCJwcmludF9zdGF0IiwiYWxsb2NhdGVkX2J5dGVzIiwibWEiLCJwcm8iLCJtaSIsImNyZWF0ZV9hbGFybSIsImRlbGV0ZV9hbGFybSIsIm51bGxfdHJhY2tlciIsInNhbXBsaW5nX3JhdGUiLCJ0cmFja2VyIiwiY2FsbHN0YWNrX3NpemUiLCJzdHJpbmciLCJieXRlcyIsInN1YnN0cmluZyIsInN1YmJ5dGVzIiwiZmlsZW5hbWUiLCJkaWdlc3QiLCJjaGFyX2hleCIsInRvX2hleCIsImZyb21faGV4IiwiZGlnaXQiLCJuZXdfc3RhdGUiLCJhc3NpZ24iLCJzdDEiLCJzdDIiLCJmdWxsX2luaXQiLCJzZWVkIiwic2VlZCQwIiwibWFrZV9zZWxmX2luaXQiLCJiaXRzIiwiY3VydmFsIiwibmV3dmFsIiwibmV3dmFsMzAiLCJpbnRhdXgiLCJpbnQkMCIsImJvdW5kIiwiZnVsbF9pbnQiLCJtYXhfaW50XzMyIiwiYnBvcyIsImludDMyIiwiaW50NjQiLCJuYXRpdmVpbnQiLCJmbG9hdCQwIiwiYm9vbCIsImJpdHMzMiIsImJpdHM2NCIsIm5hdGl2ZWJpdHMiLCJiaXRzJDAiLCJpbnQkMSIsImZ1bGxfaW50JDAiLCJpbnQzMiQwIiwibmF0aXZlaW50JDAiLCJpbnQ2NCQwIiwiZmxvYXQkMSIsInNjYWxlIiwiYm9vbCQwIiwiYml0czMyJDAiLCJiaXRzNjQkMCIsIm5hdGl2ZWJpdHMkMCIsImZ1bGxfaW5pdCQwIiwic2VsZl9pbml0IiwiZ2V0X3N0YXRlIiwic2V0X3N0YXRlIiwib25nb2luZ190cmF2ZXJzYWwiLCJmbGlwX29uZ29pbmdfdHJhdmVyc2FsIiwicGFyYW1zIiwicmFuZG9taXplZF9kZWZhdWx0IiwicmFuZG9taXplZCIsInJhbmRvbWl6ZSIsImlzX3JhbmRvbWl6ZWQiLCJwcm5nIiwicG93ZXJfMl9hYm92ZSIsImluaXRpYWxfc2l6ZSIsInJhbmRvbSIsImNvcHlfYnVja2V0bGlzdCIsImtleSQwIiwibmV4dCQwIiwiaW5zZXJ0X2FsbF9idWNrZXRzIiwiaW5kZXhmdW4iLCJpbnBsYWNlIiwib2RhdGEiLCJuZGF0YSIsIm5zaXplIiwibmRhdGFfdGFpbCIsIm5pZHgiLCJtYXRjaCQwIiwib3NpemUiLCJvbGRfdHJhdiIsImZpbHRlcl9tYXBfaW5wbGFjZSIsImIkMCIsImJ1Y2tldF9sZW5ndGgiLCJzdGF0cyIsIm1ibCIsImhpc3RvIiwidGJsX2RhdGEiLCJidWNrIiwiYnVjayQwIiwiYnVjayQxIiwidG9fc2VxX2tleXMiLCJ0b19zZXFfdmFsdWVzIiwia2V5X2luZGV4IiwiYnVja2V0IiwiazEiLCJuZXh0MSIsImsyIiwibmV4dDIiLCJrMyIsImQzIiwibmV4dDMiLCJmaW5kX2luX2J1Y2tldCIsInJlcGxhY2UiLCJyZXBsYWNlX3NlcSIsInN6IiwiaGFzaF9wYXJhbSIsInNlZWRlZF9oYXNoIiwicmVidWlsZCIsImdldF9jb3B5IiwiYXIiLCJlbXB0eWJ1Y2tldCIsImdldF9pbmRleCIsImNyZWF0ZSQwIiwic3okMCIsInN6JDEiLCJjb3VudF9idWNrZXQiLCJhZGRfYXV4Iiwic2V0dGVyIiwiYnVja2V0JDAiLCJoYXNoZXMiLCJuZXdzeiIsIm5ld2J1Y2tldCQwIiwibmV3aGFzaGVzIiwiaGJ1Y2tldCIsInByZXZfbGVuIiwibGl2ZSIsImokMiIsIm5ld2J1Y2tldCIsIm9sZGxlbiIsIm5ld3QiLCJvYiIsIm9pIiwib2giLCJzZXR0ZXIkMCIsIm5pIiwiZmluZF9vciIsImlmbm90Zm91bmQiLCJmaW5kX3NoYWRvdyIsImlmZm91bmQiLCJsZW5zIiwidG90bGVuIiwidW5rbm93biIsInBwX2VucXVldWUiLCJ0b2tlbiIsInBwX2luZmluaXR5IiwicHBfb3V0cHV0X3N0cmluZyIsInBwX291dHB1dF9uZXdsaW5lIiwiZm9ybWF0X3BwX3RleHQiLCJ0ZXh0IiwiZm9ybWF0X3N0cmluZyIsImJyZWFrX25ld19saW5lIiwicmVhbF9pbmRlbnQiLCJicmVha19saW5lIiwiYnJlYWtfc2FtZV9saW5lIiwiZm9ybWF0X3BwX3Rva2VuIiwic2l6ZSQwIiwidGFicyIsImFkZF90YWIiLCJscyIsInRhZ19uYW1lIiwibWFya2VyIiwiYnJlYWtzIiwiZml0cyIsIm9mZiIsImJveF90eXBlJDAiLCJvZmYkMCIsImluc2VydGlvbl9wb2ludCIsInRhYnMkMCIsImZpcnN0IiwiaGVhZCIsInRhYiIsIm9mZiQxIiwiaW5zZXJ0aW9uX3BvaW50JDAiLCJ3aWR0aCQyIiwiYm94X3R5cGUkMSIsInRib3giLCJ0YWdfbmFtZSQwIiwibWFya2VyJDAiLCJhZHZhbmNlX2xlZnQiLCJwZW5kaW5nX2NvdW50IiwiZW5xdWV1ZV9hZHZhbmNlIiwiZW5xdWV1ZV9zdHJpbmdfYXMiLCJpbml0aWFsaXplX3NjYW5fc3RhY2siLCJzdGFjayIsInF1ZXVlX2VsZW0iLCJzZXRfc2l6ZSIsImxlZnRfdG90YWwiLCJzY2FuX3B1c2giLCJlbGVtIiwicHBfb3Blbl9ib3hfZ2VuIiwiYnJfdHkiLCJwcF9jbG9zZV9ib3giLCJwcF9vcGVuX3N0YWciLCJwcF9jbG9zZV9zdGFnIiwicHBfb3Blbl90YWciLCJwcF9jbG9zZV90YWciLCJwcF9zZXRfcHJpbnRfdGFncyIsInBwX3NldF9tYXJrX3RhZ3MiLCJwcF9nZXRfcHJpbnRfdGFncyIsInBwX2dldF9tYXJrX3RhZ3MiLCJwcF9zZXRfdGFncyIsInBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBjdCIsInBvdCIsIm1jdCIsIm1vdCIsInBwX3Jpbml0IiwicHBfZmx1c2hfcXVldWUiLCJwcF9wcmludF9hc19zaXplIiwicHBfcHJpbnRfYXMiLCJpc2l6ZSIsInBwX3ByaW50X3N0cmluZyIsInBwX3ByaW50X2J5dGVzIiwicHBfcHJpbnRfaW50IiwicHBfcHJpbnRfZmxvYXQiLCJwcF9wcmludF9ib29sIiwicHBfcHJpbnRfY2hhciIsInBwX29wZW5faGJveCIsInBwX29wZW5fdmJveCIsInBwX29wZW5faHZib3giLCJwcF9vcGVuX2hvdmJveCIsInBwX29wZW5fYm94IiwicHBfcHJpbnRfbmV3bGluZSIsInBwX3ByaW50X2ZsdXNoIiwicHBfZm9yY2VfbmV3bGluZSIsInBwX3ByaW50X2lmX25ld2xpbmUiLCJwcF9wcmludF9jdXN0b21fYnJlYWsiLCJwcF9wcmludF9icmVhayIsInBwX3ByaW50X3NwYWNlIiwicHBfcHJpbnRfY3V0IiwicHBfb3Blbl90Ym94IiwicHBfY2xvc2VfdGJveCIsInBwX3ByaW50X3RicmVhayIsInBwX3ByaW50X3RhYiIsInBwX3NldF90YWIiLCJwcF9zZXRfbWF4X2JveGVzIiwicHBfZ2V0X21heF9ib3hlcyIsInBwX292ZXJfbWF4X2JveGVzIiwicHBfc2V0X2VsbGlwc2lzX3RleHQiLCJwcF9nZXRfZWxsaXBzaXNfdGV4dCIsInBwX2xpbWl0IiwicHBfc2V0X21heF9pbmRlbnQiLCJwcF9nZXRfbWF4X2luZGVudCIsInBwX3NldF9tYXJnaW4iLCJuZXdfbWF4X2luZGVudCIsInZhbGlkYXRlX2dlb21ldHJ5IiwibWFyZ2luIiwibWF4X2luZGVudCIsImNoZWNrX2dlb21ldHJ5IiwiZ2VvbWV0cnkiLCJwcF9nZXRfbWFyZ2luIiwicHBfc2V0X2Z1bGxfZ2VvbWV0cnkiLCJwcF9zZXRfZ2VvbWV0cnkiLCJwcF9zYWZlX3NldF9nZW9tZXRyeSIsInBwX2dldF9nZW9tZXRyeSIsInBwX3VwZGF0ZV9nZW9tZXRyeSIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsInBwX2dldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsImRpc3BsYXlfbmV3bGluZSIsImJsYW5rX2xpbmUiLCJkaXNwbGF5X2JsYW5rcyIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwiLCJkZWZhdWx0X3BwX21hcmtfb3Blbl90YWciLCJkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnIiwiZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnIiwicHBfbWFrZV9mb3JtYXR0ZXIiLCJwcF9xdWV1ZSIsInN5c190b2siLCJzY2FuX3N0YWNrIiwiZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMiLCJvdXRfZnVucyIsIm1ha2VfZm9ybWF0dGVyIiwicHBmIiwiZm9ybWF0dGVyX29mX291dF9jaGFubmVsIiwiZm9ybWF0dGVyX29mX2J1ZmZlciIsInBwX2J1ZmZlcl9zaXplIiwicHBfbWFrZV9idWZmZXIiLCJzdGRidWYiLCJzdGRfZm9ybWF0dGVyIiwiZXJyX2Zvcm1hdHRlciIsInN0cl9mb3JtYXR0ZXIiLCJmbHVzaF9idWZmZXJfZm9ybWF0dGVyIiwiZmx1c2hfc3RyX2Zvcm1hdHRlciIsIm1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJzb2IiLCJnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJpdGVtcyIsImFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSIsIml0ZW0iLCJmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2IiLCJvcGVuX2hib3giLCJvcGVuX3Zib3giLCJvcGVuX2h2Ym94Iiwib3Blbl9ob3Zib3giLCJvcGVuX2JveCIsImNsb3NlX2JveCIsIm9wZW5fdGFnIiwiY2xvc2VfdGFnIiwib3Blbl9zdGFnIiwiY2xvc2Vfc3RhZyIsInByaW50X2FzIiwicHJpbnRfYm9vbCIsInByaW50X2JyZWFrIiwicHJpbnRfY3V0IiwicHJpbnRfc3BhY2UiLCJmb3JjZV9uZXdsaW5lIiwicHJpbnRfZmx1c2giLCJwcmludF9pZl9uZXdsaW5lIiwib3Blbl90Ym94IiwiY2xvc2VfdGJveCIsInByaW50X3RicmVhayIsInNldF90YWIiLCJwcmludF90YWIiLCJzZXRfbWFyZ2luIiwiZ2V0X21hcmdpbiIsInNldF9tYXhfaW5kZW50IiwiZ2V0X21heF9pbmRlbnQiLCJzZXRfZ2VvbWV0cnkiLCJzYWZlX3NldF9nZW9tZXRyeSIsImdldF9nZW9tZXRyeSIsInVwZGF0ZV9nZW9tZXRyeSIsInNldF9tYXhfYm94ZXMiLCJnZXRfbWF4X2JveGVzIiwib3Zlcl9tYXhfYm94ZXMiLCJzZXRfZWxsaXBzaXNfdGV4dCIsImdldF9lbGxpcHNpc190ZXh0Iiwic2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCIsInNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwic2V0X3ByaW50X3RhZ3MiLCJnZXRfcHJpbnRfdGFncyIsInNldF9tYXJrX3RhZ3MiLCJnZXRfbWFya190YWdzIiwic2V0X3RhZ3MiLCJwcF9wcmludF9saXN0IiwicHBfdiIsIm9wdCQwIiwicHBfc2VwIiwib3B0JDEiLCJwcF9wcmludF9zZXEiLCJzZXEkMSIsInNlcSQyIiwicHBfcHJpbnRfdGV4dCIsInBwX3ByaW50X29wdGlvbiIsInBwX3ByaW50X3Jlc3VsdCIsInBwX3ByaW50X2VpdGhlciIsImNvbXB1dGVfdGFnIiwidGFnX2FjYyIsIm91dHB1dF9mb3JtYXR0aW5nX2xpdCIsImJ0eSIsInAkNiIsInAkNyIsInNpemUkMSIsInAkOCIsImtkcHJpbnRmIiwiZHByaW50ZiIsImthc3ByaW50ZiIsImFzcHJpbnRmIiwiZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVycyIsInBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInNldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsImdldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsInBwX3NldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsInN0cmluZ2lmeSIsInBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImZ1bnMiLCJtYXJrX29wZW5fdGFnIiwibWFya19jbG9zZV90YWciLCJwcmludF9vcGVuX3RhZyIsInByaW50X2Nsb3NlX3RhZyIsInNldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsIm51bGxfY2hhciIsIm5leHRfY2hhciIsImliIiwicGVla19jaGFyIiwiY2hlY2tlZF9wZWVrX2NoYXIiLCJlbmRfb2ZfaW5wdXQiLCJiZWdpbm5pbmdfb2ZfaW5wdXQiLCJuYW1lX29mX2lucHV0IiwiY2hhcl9jb3VudCIsImludmFsaWRhdGVfY3VycmVudF9jaGFyIiwidG9rZW5fc3RyaW5nIiwidG9rZW5fYnVmZmVyIiwic2tpcF9jaGFyIiwiaWdub3JlX2NoYXIiLCJzdG9yZV9jaGFyIiwiZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZSIsImluYW1lIiwic2Nhbl9jbG9zZV9hdF9lbmQiLCJzY2FuX3JhaXNlX2F0X2VuZCIsImZyb21faWMiLCJzY2FuX2Nsb3NlX2ljIiwiZW9mIiwib3Blbl9pbl9maWxlIiwiaWMkMCIsIm1lbW8iLCJtZW1vX2Zyb21fY2hhbm5lbCIsImJhZF9pbnB1dCIsImJhZF9pbnB1dF9lc2NhcGUiLCJiYWRfdG9rZW5fbGVuZ3RoIiwibWVzc2FnZSIsImJhZF9mbG9hdCIsImJhZF9oZXhfZmxvYXQiLCJjaGFyYWN0ZXJfbWlzbWF0Y2giLCJjaSIsImNoZWNrX3RoaXNfY2hhciIsImNoZWNrX2NoYXIiLCJ0b2tlbl9jaGFyIiwidG9rZW5fYm9vbCIsImludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIiwidG9rZW5faW50X2xpdGVyYWwiLCJjb252IiwidG9rZW5fZmxvYXQiLCJzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciIsInNjYW5fZGVjaW1hbF9kaWdpdF9wbHVzIiwic2Nhbl9kaWdpdF9wbHVzIiwiYmFzaXMiLCJkaWdpdHAiLCJ3aWR0aCQzIiwiaXNfYmluYXJ5X2RpZ2l0Iiwic2Nhbl9iaW5hcnlfaW50IiwiaXNfb2N0YWxfZGlnaXQiLCJzY2FuX29jdGFsX2ludCIsImlzX2hleGFfZGlnaXQiLCJzY2FuX2hleGFkZWNpbWFsX2ludCIsInNjYW5fc2lnbiIsInNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbCIsInNjYW5faW50X2NvbnZlcnNpb24iLCJzY2FuX2ZyYWN0aW9uYWxfcGFydCIsInNjYW5fZXhwb25lbnRfcGFydCIsInNjYW5fZmxvYXQiLCJwcmVjaXNpb24iLCJwcmVjaXNpb24kMCIsImNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIiwic2Nhbl9oZXhfZmxvYXQiLCJ3aWR0aCQ0Iiwid2lkdGgkNSIsIndpZHRoJDYiLCJ3aWR0aCQxMCIsIndpZHRoJDciLCJ3aWR0aCQ4Iiwid2lkdGgkOSIsInNjYW5fY2FtbF9mbG9hdF9yZXN0Iiwid2lkdGhfcHJlY2lzaW9uIiwiZnJhY193aWR0aCIsInNjYW5fY2FtbF9mbG9hdCIsInNjYW5fc3RyaW5nIiwic3RwIiwiaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoZWNrX25leHRfY2hhciIsImNoZWNrX25leHRfY2hhcl9mb3JfY2hhciIsImNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIiwic2Nhbl9iYWNrc2xhc2hfY2hhciIsImMwIiwiZ2V0X2RpZ2l0IiwiZ2V0X2RpZ2l0JDAiLCJjMSQwIiwiYzIkMCIsInNjYW5fY2FtbF9zdHJpbmciLCJmaW5kX3N0b3AkMCIsInNraXBfc3BhY2VzIiwiZmluZF9zdG9wIiwic2Nhbl9jaGFyc19pbl9jaGFyX3NldCIsInNjYW5faW5kaWMiLCJzY2FuX2NoYXJzIiwic2NhbmZfYmFkX2lucHV0Iiwid2lkdGhfb2ZfcGFkX29wdCIsInN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQiLCJmbXRpbmciLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzJDAiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzJDAiLCJyZWFkZXIiLCJuZXdfayIsInJlYWRlcnNfcmVzdCIsInRha2VfZm9ybWF0X3JlYWRlcnMiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIiwicGFkX3ByZWNfc2NhbmYiLCJyZWFkZXJzIiwibWFrZV9zY2FuZiIsInNjYW4kMCIsInN0cl9yZXN0Iiwic2NhbiQxIiwic2NhbiQyIiwic2NhbiQzIiwic2NhbiQ0IiwiY29udiQwIiwic2NhbiQ1IiwiY29udiQxIiwic2NhbiQ2IiwiY29udiQyIiwic2NhbiQ3Iiwic2NhbiQ4IiwiZm10aW5nX2xpdCQwIiwic3RwJDAiLCJzJDIiLCJzdHJfcmVzdCQwIiwiYXJnX3Jlc3QiLCJrc2NhbmYiLCJlZiIsImV4YyQwIiwiZXhjIiwiYXJncyQxIiwiYXJncyQwIiwiYnNjYW5mIiwia3NzY2FuZiIsInNzY2FuZiIsInNjYW5mIiwiYnNjYW5mX2Zvcm1hdCIsImZvcm1hdCIsInNzY2FuZl9mb3JtYXQiLCJmb3JtYXRfZnJvbV9zdHJpbmciLCJ1bmVzY2FwZWQiLCJrZnNjYW5mIiwiZnNjYW5mIiwicmVnaXN0ZXIiLCJyZWdpc3Rlcl9leGNlcHRpb24iLCJvJDAiLCJpbml0aWFsX29iamVjdF9zaXplIiwiZHVtbXlfaXRlbSIsInB1YmxpY19tZXRob2RfbGFiZWwiLCJ0YWciLCJjb21wYXJlJDAiLCJjb21wYXJlJDEiLCJkdW1teV90YWJsZSIsInRhYmxlX2NvdW50IiwiZHVtbXlfbWV0IiwiZml0X3NpemUiLCJuZXdfdGFibGUiLCJwdWJfbGFiZWxzIiwibWV0aG9kcyIsImFycmF5IiwibmV3X3NpemUiLCJvbGRfc2l6ZSIsIm5ld19idWNrIiwibWV0aG9kX2NvdW50IiwiaW5zdF92YXJfY291bnQiLCJuZXdfbWV0aG9kIiwidGFibGUiLCJnZXRfbWV0aG9kX2xhYmVsIiwibGFiZWwiLCJnZXRfbWV0aG9kX2xhYmVscyIsIm5hbWVzIiwic2V0X21ldGhvZCIsImVsZW1lbnQiLCJnZXRfbWV0aG9kIiwiYXJyIiwibmFycm93IiwidmFycyIsInZpcnRfbWV0aHMiLCJjb25jcl9tZXRocyIsInZhcnMkMCIsInZpcnRfbWV0aHMkMCIsImNvbmNyX21ldGhzJDAiLCJ2aXJ0X21ldGhfbGFicyIsImNvbmNyX21ldGhfbGFicyIsImxhYiIsInR2YXJzIiwiYnlfbmFtZSIsImJ5X2xhYmVsIiwibWV0IiwiaG0iLCJ3aWRlbiIsInNhdmVkX3ZhcnMiLCJzYXZlZF9oaWRkZW5fbWV0aHMiLCJuZXdfdmFyaWFibGUiLCJ0b19hcnJheSIsIm5ld19tZXRob2RzX3ZhcmlhYmxlcyIsIm1ldGhzIiwidmFscyIsIm1ldGhzJDAiLCJubWV0aHMiLCJudmFscyIsImdldF92YXJpYWJsZSIsImdldF92YXJpYWJsZXMiLCJhZGRfaW5pdGlhbGl6ZXIiLCJjcmVhdGVfdGFibGUiLCJwdWJsaWNfbWV0aG9kcyIsInRhZ3MiLCJpbml0X2NsYXNzIiwiaW5oZXJpdHMiLCJjbGEiLCJzdXBlciQwIiwibm0iLCJtYWtlX2NsYXNzIiwicHViX21ldGhzIiwiY2xhc3NfaW5pdCIsImVudl9pbml0IiwibWFrZV9jbGFzc19zdG9yZSIsImluaXRfdGFibGUiLCJkdW1teV9jbGFzcyIsImxvYyIsInVuZGVmIiwiY3JlYXRlX29iamVjdCIsImNyZWF0ZV9vYmplY3Rfb3B0Iiwib2JqXzAiLCJpdGVyX2YiLCJydW5faW5pdGlhbGl6ZXJzIiwiaW5pdHMiLCJydW5faW5pdGlhbGl6ZXJzX29wdCIsImNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaSIsImJ1aWxkX3BhdGgiLCJrZXlzIiwibG9va3VwX3RhYmxlcyIsInJvb3QiLCJyb290X2RhdGEiLCJ0YWJsZXMkMCIsInRhYmxlcyQxIiwidGFibGVzX2RhdGEiLCJuZXdfY2FjaGUiLCJzZXRfbWV0aG9kcyIsImNsbyIsImNsbyQwIiwibiQyIiwibiQzIiwibiQ0IiwibiQ1IiwibiQ2IiwieCQzIiwibiQ3IiwieCQ0IiwibiQ4IiwibiQ5IiwieCQ1IiwiZiQ4IiwiZSQyIiwibiQxMCIsIngkNiIsImYkOSIsIm4kMTEiLCJ4JDciLCJuJDEyIiwieCQ4IiwibiQxMyIsIm4kMTQiLCJlJDMiLCJuJDE1IiwibSQxIiwibSQyIiwieCQ5IiwibSQzIiwibiQxNiIsIm0kNCIsImUkNCIsIm4kMTciLCJtJDUiLCJuJDE4IiwiaW5pdF9tb2RfYmxvY2siLCJjb21wcyQwIiwibW9kdSIsInNoYXBlIiwiZm4kMCIsImNvbXBzIiwiaW5pdF9tb2QiLCJ1cGRhdGVfbW9kX2Jsb2NrIiwiY2wiLCJ1cGRhdGVfbW9kIiwiaW5pdGlhbF9idWZmZXIiLCJidWZmZXIiLCJidWZwb3MiLCJyZXNldF9idWZmZXIiLCJzdG9yZSIsIm5ld2J1ZmZlciIsImdldF9zdHJpbmciLCJtYWtlX2xleGVyIiwia2V5d29yZHMiLCJrd2RfdGFibGUiLCJpZGVudF9vcl9rZXl3b3JkIiwia2V5d29yZF9vcl9lcnJvciIsImVuZF9leHBvbmVudF9wYXJ0IiwiZXhwb25lbnRfcGFydCIsIm51bWJlciIsImlkZW50MiIsIm5leHRfdG9rZW4iLCJlc2NhcGUiLCJjb21tZW50IiwiYzMiLCJoa2V5IiwiY2xlYW4iLCJkb19idWNrZXQiLCJpbnNlcnRfYnVja2V0IiwiY29udGFpbmVyIiwicmVtb3ZlX2J1Y2tldCIsImhrIiwibmV3X2QiLCJidWNrZXRfbGVuZ3RoX2FsaXZlIiwic3RhdHNfYWxpdmUiLCJnZXRfZGF0YV9jb3B5Iiwic2V0X2RhdGEiLCJ1bnNldF9kYXRhIiwiY2hlY2tfZGF0YSIsImJsaXRfZGF0YSIsImVwaCIsInF1ZXJ5Iiwic2V0X2tleV9kYXRhIiwibWFrZSQwIiwidGVzdF9rZXkiLCJ0JDAiLCJnZXRfa2V5MSIsImdldF9rZXkxX2NvcHkiLCJzZXRfa2V5MSIsInVuc2V0X2tleTEiLCJjaGVja19rZXkxIiwiZ2V0X2tleTIiLCJnZXRfa2V5Ml9jb3B5Iiwic2V0X2tleTIiLCJ1bnNldF9rZXkyIiwiY2hlY2tfa2V5MiIsImJsaXRfa2V5MSIsImJsaXRfa2V5MiIsImJsaXRfa2V5MTIiLCJnZXRfZGF0YSQwIiwiZ2V0X2RhdGFfY29weSQwIiwic2V0X2RhdGEkMCIsInVuc2V0X2RhdGEkMCIsImNoZWNrX2RhdGEkMCIsImJsaXRfZGF0YSQwIiwibWFrZSQxIiwia2V5MSIsImtleTIiLCJxdWVyeSQwIiwiazIkMCIsImsxJDAiLCJlcXVhbCQwIiwibWFrZSQyIiwiYWRkJDAiLCJ0ZXN0X2tleXMiLCJyZW1vdmUkMCIsImZpbmQkMCIsImxlbmd0aCQwIiwiY2xlYXIkMCIsImNyZWF0ZSQxIiwibGVuZ3RoJDEiLCJnZXRfa2V5JDAiLCJnZXRfa2V5X2NvcHkkMCIsInNldF9rZXkkMCIsInVuc2V0X2tleSQwIiwiY2hlY2tfa2V5JDAiLCJibGl0X2tleSQwIiwiZ2V0X2RhdGEkMSIsImdldF9kYXRhX2NvcHkkMSIsInNldF9kYXRhJDEiLCJ1bnNldF9kYXRhJDEiLCJjaGVja19kYXRhJDEiLCJibGl0X2RhdGEkMSIsIm1ha2UkMyIsInF1ZXJ5JDEiLCJraSIsImswIiwibWFrZSQ0IiwiYWRkJDEiLCJ0ZXN0X2tleXMkMCIsInJlbW92ZSQxIiwiZmluZCQxIiwibGVuZ3RoJDIiLCJjbGVhciQxIiwibnVsbCQwIiwiY3VycmVudF9kaXJfbmFtZSIsInBhcmVudF9kaXJfbmFtZSIsImRpcl9zZXAiLCJxdW90ZXF1b3RlIiwibnVsbCQxIiwiY3VycmVudF9kaXJfbmFtZSQwIiwicGFyZW50X2Rpcl9uYW1lJDAiLCJkaXJfc2VwJDAiLCJudWxsJDIiLCJjdXJyZW50X2Rpcl9uYW1lJDEiLCJwYXJlbnRfZGlyX25hbWUkMSIsImRpcl9zZXAkMSIsImdlbmVyaWNfYmFzZW5hbWUiLCJpc19kaXJfc2VwIiwiZ2VuZXJpY19kaXJuYW1lIiwiaXNfcmVsYXRpdmUiLCJpc19pbXBsaWNpdCIsImNoZWNrX3N1ZmZpeCIsInN1ZmYiLCJjaG9wX3N1ZmZpeF9vcHQiLCJsZW5fZiIsInRlbXBfZGlyX25hbWUiLCJxdW90ZSIsInF1b3RlX2NvbW1hbmQiLCJiYXNlbmFtZSIsImRpcm5hbWUiLCJpc19kaXJfc2VwJDAiLCJpc19yZWxhdGl2ZSQwIiwiaXNfaW1wbGljaXQkMCIsImNoZWNrX3N1ZmZpeCQwIiwiY2hvcF9zdWZmaXhfb3B0JDAiLCJ0ZW1wX2Rpcl9uYW1lJDAiLCJxdW90ZSQwIiwiYWRkX2JzIiwibG9vcCQwIiwibG9vcF9icyIsInF1b3RlX2NtZF9maWxlbmFtZSIsInF1b3RlX2NvbW1hbmQkMCIsImRyaXZlX2FuZF9wYXRoIiwiZGlybmFtZSQwIiwicGF0aCIsImRyaXZlIiwiZGlyIiwiYmFzZW5hbWUkMCIsImJhc2VuYW1lJDEiLCJkaXJuYW1lJDEiLCJudWxsJDMiLCJjdXJyZW50X2Rpcl9uYW1lJDIiLCJwYXJlbnRfZGlyX25hbWUkMiIsImRpcl9zZXAkMiIsImlzX2Rpcl9zZXAkMSIsImlzX3JlbGF0aXZlJDEiLCJpc19pbXBsaWNpdCQxIiwiY2hlY2tfc3VmZml4JDEiLCJjaG9wX3N1ZmZpeF9vcHQkMSIsInRlbXBfZGlyX25hbWUkMSIsInF1b3RlJDEiLCJxdW90ZV9jb21tYW5kJDEiLCJiYXNlbmFtZSQyIiwiZGlybmFtZSQyIiwiY2hvcF9zdWZmaXgiLCJleHRlbnNpb25fbGVuIiwiaTAiLCJleHRlbnNpb24iLCJjaG9wX2V4dGVuc2lvbiIsInJlbW92ZV9leHRlbnNpb24iLCJ0ZW1wX2ZpbGVfbmFtZSIsInRlbXBfZGlyIiwicm5kIiwiY3VycmVudF90ZW1wX2Rpcl9uYW1lIiwic2V0X3RlbXBfZGlyX25hbWUiLCJnZXRfdGVtcF9kaXJfbmFtZSIsInRlbXBfZmlsZSIsIm9wZW5fdGVtcF9maWxlIiwic3RoJDAiLCJwZXJtcyIsInN0aCQxIiwibmVnIiwiY29uaiIsIm11bCIsImRpdiIsImludiIsIm5vcm0yIiwibm9ybSIsInEkMCIsInBvbGFyIiwic3FydCIsInckMCIsImV4cCIsImxvZyIsInBvdyIsImZsb2F0MzIiLCJmbG9hdDY0IiwiaW50OF9zaWduZWQiLCJpbnQ4X3Vuc2lnbmVkIiwiaW50MTZfc2lnbmVkIiwiaW50MTZfdW5zaWduZWQiLCJjb21wbGV4MzIiLCJjb21wbGV4NjQiLCJraW5kX3NpemVfaW5fYnl0ZXMiLCJjX2xheW91dCIsImZvcnRyYW5fbGF5b3V0IiwiY2xvb3AiLCJpZHgiLCJjb2wiLCJmbG9vcCIsImxheW91dCIsImRpbXMiLCJzaXplX2luX2J5dGVzIiwic2l6ZV9pbl9ieXRlcyQwIiwib2ZfdmFsdWUiLCJkaW0iLCJzaXplX2luX2J5dGVzJDEiLCJzbGljZSIsImluaXQkMCIsIm9mX2FycmF5IiwiYmEiLCJkaW0xIiwiZGltMiIsInNpemVfaW5fYnl0ZXMkMiIsInNsaWNlX2xlZnQiLCJzbGljZV9yaWdodCIsImluaXQkMSIsIm9mX2FycmF5JDAiLCJyb3ciLCJjcmVhdGUkMiIsImRpbTMiLCJzaXplX2luX2J5dGVzJDMiLCJzbGljZV9sZWZ0XzEiLCJzbGljZV9yaWdodF8xIiwic2xpY2VfbGVmdF8yIiwic2xpY2VfcmlnaHRfMiIsImluaXQkMiIsIm9mX2FycmF5JDEiLCJhcnJheTBfb2ZfZ2VuYXJyYXkiLCJhcnJheTFfb2ZfZ2VuYXJyYXkiLCJhcnJheTJfb2ZfZ2VuYXJyYXkiLCJhcnJheTNfb2ZfZ2VuYXJyYXkiLCJyZXNoYXBlXzAiLCJyZXNoYXBlXzEiLCJyZXNoYXBlXzIiLCJyZXNoYXBlXzMiLCJvcGVuX2JpbiIsIm9wZW5fdGV4dCIsIm9wZW5fZ2VuIiwid2l0aF9vcGVuIiwib3BlbmZ1biIsIndpdGhfb3Blbl9iaW4iLCJ3aXRoX29wZW5fdGV4dCIsIndpdGhfb3Blbl9nZW4iLCJzZWVrIiwiY2xvc2UiLCJjbG9zZV9ub2VyciIsInJlYWRfdXB0byIsImVuc3VyZSIsIm5ld19sZW4kMCIsIm5ld19sZW4kMSIsImlucHV0X2FsbCIsImNodW5rX3NpemUiLCJpbml0aWFsX3NpemUkMCIsImluaXRpYWxfc2l6ZSQxIiwibnJlYWQiLCJidWYkMiIsImJ1ZiQwIiwiYnVmJDEiLCJyZW0iLCJzZXRfYmluYXJ5X21vZGUiLCJmb3JtYXRfcGVyaW9kIiwiZm10IiwicCIsIm1ha2VfcGVyaW9kIiwieWVhcnMiLCJtb250aHMiLCJkYXlzIiwiYWRkX3BlcmlvZHMiLCJkMSIsImQyIiwic3ViX3BlcmlvZHMiLCJtdWxfcGVyaW9kIiwibSIsInBlcmlvZF90b19kYXlzIiwiaXNfbGVhcF95ZWFyIiwieWVhciIsImRheXNfaW5fbW9udGgiLCJtb250aCIsImlzX3ZhbGlkX2RhdGUiLCJkIiwibWFrZV9kYXRlIiwiZGF5IiwiYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kIiwieWVhciQwIiwibW9udGhzJDAiLCJuZXdfbW9udGgiLCJtb250aHMkMSIsInllYXIkMSIsIm1vbnRocyQyIiwieWVhciQyIiwiYWRkX2RhdGVzIiwib3B0Iiwic3RoIiwicm91bmQiLCJuZXdfbW9udGgkMCIsIm5ld195ZWFyJDAiLCJuZXdfZGF0ZSIsImQkMCIsIm5ld195ZWFyIiwiZGF5cyQyIiwiZCQxIiwiZGF5c19pbl9kX21vbnRoIiwibmV3X2RheSIsIm5ld19tb250aCQxIiwibmV3X3llYXIkMSIsImRheXMkMCIsImQkMiIsIm5ld19tb250aCQyIiwibmV3X3llYXIkMiIsImRheXMkMSIsImQkMyIsImNvbXBhcmVfZGF0ZXMiLCJmb3JtYXRfZGF0ZSIsImZpcnN0X2RheV9vZl9tb250aCIsImxhc3RfZGF5X29mX21vbnRoIiwiZGF5c19tb250aCIsIm5lZ19wZXJpb2QiLCJzdWJfZGF0ZXMiLCJjbXAiLCJuZXdfZDJfbW9udGgiLCJuZXdfZDJfeWVhciIsIm5ld19kMiIsImRhdGVfdG9feW1kIiwicGVyaW9kX3RvX3ltZHMiLCJzdHJlYW0kMSIsInN0cmVhbSQwIiwic3RyZWFtIiwidmVyc2lvbiIsIm9jYW1sX2xleF90YWJsZXMiLCJvY2FtbF9sZXhfdGFibGVzJDAiLCJvY2FtbF9sZXhfdGFibGVzJDEiLCJqc29uX2Vycm9yIiwicyIsInV0Zjhfb2ZfY29kZSIsImJ1ZiIsIngiLCJhZGQiLCJtYXhiaXRzIiwibiIsInV0Zjhfb2Zfc3Vycm9nYXRlX3BhaXIiLCJpIiwiaiIsImhpZ2gxMCIsImxvdzEwIiwiaW5pdF9sZXhlciIsImZuYW1lIiwib3B0Iiwic3RoIiwibG51bSIsImJ1ZiQwIiwiYnVmJDEiLCJoZXgiLCJ3cml0ZV9zcGVjaWFsIiwic3JjIiwic3RhcnQiLCJzdG9wIiwib2IiLCJzdHIiLCJ3cml0ZV9zdHJpbmciLCJjIiwiZXhjJDAiLCJleGMiLCJqc29uX3N0cmluZ19vZl9zdHJpbmciLCJ3cml0ZV9udWxsIiwid3JpdGVfYm9vbCIsIndyaXRlX2RpZ2l0cyIsImQiLCJ3cml0ZV9pbnQiLCJmbG9hdF9uZWVkc19wZXJpb2QiLCJ3cml0ZV9mbG9hdCIsInMxIiwid3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMiLCJzaWduaWZpY2FudF9maWd1cmVzIiwid3JpdGVfZmxvYXRfcHJlYyIsIndyaXRlX3N0ZF9mbG9hdCIsIndyaXRlX3N0ZF9mbG9hdF9wcmVjIiwid3JpdGVfaW50bGl0Iiwid3JpdGVfZmxvYXRsaXQiLCJ3cml0ZV9zdHJpbmdsaXQiLCJpdGVyMiIsImZfZWx0IiwiZl9zZXAiLCJsJDAiLCJ5JDAiLCJsIiwieSIsIndyaXRlX3ZhcmlhbnQiLCJvIiwid3JpdGVfanNvbiIsIndyaXRlX3R1cGxlIiwid3JpdGVfbGlzdCIsIndyaXRlX2Fzc29jIiwibCQxIiwicyQwIiwiYiIsInMkMSIsImYiLCJzJDIiLCJzJDMiLCJ3cml0ZV9zdGRfdmFyaWFudCIsIndyaXRlX3N0ZF9qc29uIiwid3JpdGVfc3RkX3R1cGxlIiwidG9fYnVmZmVyIiwic3VmIiwic3RoJDAiLCJzdGQiLCJ0b19zdHJpbmciLCJsZW4iLCJvYiQwIiwidG9fY2hhbm5lbCIsIm9jIiwidG9fb3V0cHV0Iiwib3V0IiwidG9fZmlsZSIsImZpbGUiLCJlJDAiLCJlIiwic2VxX3RvX2J1ZmZlciIsInN0Iiwic2VxX3RvX3N0cmluZyIsInNlcV90b19jaGFubmVsIiwic2VxIiwianNvbiIsInNlcV90b19maWxlIiwic29ydCIsInYiLCJrIiwiYSIsInYkMCIsImwkMiIsInBwIiwiZm10IiwidHVwIiwic2VwIiwidmFsdWUiLCJuYW1lIiwieCQxIiwieHMiLCJrZXkiLCJ4cyQwIiwieCQwIiwieCQyIiwieCQzIiwieCQ0IiwieCQ1IiwieCQ2Iiwic2hvdyIsImVxdWFsIiwiYSQwIiwiYiQwIiwiYiQxIiwiYSQxIiwieXMiLCJjb21wYXJlX2tleXMiLCJrZXkkMCIsInlzJDAiLCJ2YWx1ZSQwIiwicmVzdWx0IiwieXMkMSIsInhzJDEiLCJiJDIiLCJhJDIiLCJuYW1lJDAiLCJyZXN1bHQkMCIsImIkMyIsImEkMyIsImIkNCIsImEkNCIsImIkNSIsImEkNSIsImIkNiIsImEkNiIsImIkNyIsImEkNyIsInBwX2xpc3QiLCJwcHgiLCJwcF9zZXAiLCJpc19hdG9tIiwiZm9ybWF0IiwiaW5zaWRlX2JveCIsInMkNCIsInJlcHJlc2VudGF0aW9uIiwib3AiLCJyZXByZXNlbnRhdGlvbiQwIiwicHAkMCIsInByZXR0eV9wcmludCIsInByZXR0eV90b19zdHJpbmciLCJwcmV0dHlfdG9fY2hhbm5lbCIsImhleCQwIiwid3JpdGVfc3BlY2lhbCQwIiwid3JpdGVfc3RyaW5nJDAiLCJqc29uX3N0cmluZ19vZl9zdHJpbmckMCIsIndyaXRlX251bGwkMCIsIndyaXRlX2Jvb2wkMCIsIndyaXRlX2RpZ2l0cyQwIiwid3JpdGVfaW50JDAiLCJmbG9hdF9uZWVkc19wZXJpb2QkMCIsIndyaXRlX2Zsb2F0JDAiLCJ3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyQwIiwid3JpdGVfZmxvYXRfcHJlYyQwIiwid3JpdGVfc3RkX2Zsb2F0JDAiLCJ3cml0ZV9zdGRfZmxvYXRfcHJlYyQwIiwiaXRlcjIkMCIsImZfc2VwJDAiLCJ3cml0ZV9saXN0JDAiLCJ3cml0ZV9qc29uJDAiLCJ3cml0ZV9hc3NvYyQwIiwid3JpdGVfc3RkX2pzb24kMCIsInRvX2J1ZmZlciQwIiwidG9fc3RyaW5nJDAiLCJ0b19jaGFubmVsJDAiLCJ0b19vdXRwdXQkMCIsInRvX2ZpbGUkMCIsInNlcV90b19idWZmZXIkMCIsInNlcV90b19zdHJpbmckMCIsInNlcV90b19jaGFubmVsJDAiLCJzZXFfdG9fZmlsZSQwIiwic29ydCQwIiwicHBfbGlzdCQwIiwiaXNfYXRvbSQwIiwiZm9ybWF0JDAiLCJwcCQxIiwicHAkMiIsInNob3ckMCIsImVxdWFsJDAiLCJwcmV0dHlfcHJpbnQkMCIsInByZXR0eV90b19zdHJpbmckMCIsInByZXR0eV90b19jaGFubmVsJDAiLCJoZXgkMSIsImN1c3RvbV9lcnJvciIsImRlc2NyIiwibGV4YnVmIiwib2ZmcyIsImJvbCIsInBvczEiLCJwb3MyIiwiZmlsZV9saW5lIiwiYnl0ZXMiLCJtc2ciLCJsZXhlcl9lcnJvciIsInJlYWRfanVuayIsImxvbmdfZXJyb3IiLCJqdW5rIiwiZXh0cmFfanVuayIsIm1pbjEwIiwibWF4MTAiLCJleHRyYWN0X3Bvc2l0aXZlX2ludCIsImV4dHJhY3RfbmVnYXRpdmVfaW50IiwibmV3bGluZSIsImFkZF9sZXhlbWUiLCJyZWFkX2pzb24iLCJvY2FtbF9sZXhfc3RhdGUiLCJvY2FtbF9sZXhfc3RhdGUkMCIsImZpbmlzaF9zdHJpbmciLCJhY2MiLCJyZWFkX3NwYWNlIiwicmVhZF9vYmplY3RfZW5kIiwiZmllbGRfbmFtZSIsInJlYWRfaWRlbnQiLCJyZWFkX2NvbG9uIiwicmVhZF9vYmplY3Rfc2VwIiwiZmllbGRfbmFtZSQwIiwiYWNjJDAiLCJyZWFkX2FycmF5X2VuZCIsInJlYWRfYXJyYXlfc2VwIiwiZmluaXNoX2NvbW1lbnQiLCJmaW5pc2hfZXNjYXBlZF9jaGFyIiwibWFwX3N0cmluZyIsImMkMCIsIm9jYW1sX2xleF9zdGF0ZSQxIiwib2NhbWxfbGV4X3N0YXRlJDIiLCJjJDEiLCJkJDAiLCJmaW5pc2hfc3RyaW5nbGl0IiwiZmluaXNoX3ZhcmlhbnQiLCJyZWFkX2d0IiwicmVhZF9sdCIsInJlYWRfY29tbWEiLCJzdGFydF9hbnlfdmFyaWFudCIsInJlYWRfZW9mIiwicmVhZF9udWxsIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlIiwicmVhZF9ib29sIiwicmVhZF9pbnQiLCJyZWFkX2ludDMyIiwicmVhZF9pbnQ2NCIsInJlYWRfbnVtYmVyIiwicmVhZF9zdHJpbmciLCJtYXBfaWRlbnQiLCJyZWFkX3NlcXVlbmNlIiwicmVhZF9jZWxsIiwiaW5pdF9hY2MiLCJyZWFkX2xpc3RfcmV2IiwicmVhZF90dXBsZSIsInJlYWRfdHVwbGVfZW5kIiwicmVhZF90dXBsZV9lbmQyIiwicmVhZF90dXBsZV9zZXAiLCJyZWFkX3R1cGxlX3NlcDIiLCJyZWFkX2Fic3RyYWN0X2ZpZWxkcyIsInJlYWRfa2V5IiwicmVhZF9maWVsZCIsInJlYWRfbGN1cmwiLCJzdGFydF9hbnlfdHVwbGUiLCJyZWFkX2xwYXIiLCJyZWFkX3JwYXIiLCJyZWFkX2xiciIsInJlYWRfcmJyIiwiZmluaXNoX3NraXBfc3RyaW5nbGl0Iiwic2tpcF9qc29uIiwic2tpcF9pZGVudCIsImZpbmlzaF9za2lwX3ZhcmlhbnQiLCJmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCIsImJ1ZmZlcl9qc29uIiwiYnVmZmVyX3NwYWNlIiwiYnVmZmVyX2lkZW50IiwiYnVmZmVyX2NvbG9uIiwib2NhbWxfbGV4X3N0YXRlJDMiLCJvY2FtbF9sZXhfc3RhdGUkNCIsIm9jYW1sX2xleF9zdGF0ZSQ1Iiwib2NhbWxfbGV4X3N0YXRlJDYiLCJvY2FtbF9sZXhfc3RhdGUkNyIsIm9jYW1sX2xleF9zdGF0ZSQ4IiwiZmluaXNoX2J1ZmZlcl9jb21tZW50IiwicmVhZF9pbnQ4IiwicmVhZF9saXN0IiwicmVhZF9hcnJheSIsInRsIiwiciIsInJlYWRfZmllbGRzIiwiZnJvbV9sZXhidWYiLCJmcm9tX3N0cmluZyQwIiwiZnJvbV9jaGFubmVsJDAiLCJpYyIsImZyb21fZmlsZSIsInNlcV9mcm9tX2xleGJ1ZiIsImZpbiIsImZpbl9lJDAiLCJmaW5fZSIsInNlcV9mcm9tX3N0cmluZyIsInNlcV9mcm9tX2NoYW5uZWwiLCJzZXFfZnJvbV9maWxlIiwiZm5hbWUkMCIsImxpbmVzZXFfZnJvbV9jaGFubmVsIiwibG51bTAiLCJsaW5lIiwibGluZXNlcV9mcm9tX2ZpbGUiLCJwcmV0dGlmeSIsImNvbXBhY3QiLCJ0eXBlcnIiLCJqcyIsIm1lbWJlciIsIm9iaiIsImluZGV4Iiwid3JhcHBlZF9pbmRleCIsIm1hcCIsInRvX2Fzc29jIiwidG9fb3B0aW9uIiwidG9fYm9vbCIsInRvX2Jvb2xfb3B0aW9uIiwidG9fbnVtYmVyIiwidG9fbnVtYmVyX29wdGlvbiIsInRvX2Zsb2F0IiwidG9fZmxvYXRfb3B0aW9uIiwidG9faW50IiwidG9faW50X29wdGlvbiIsInRvX2xpc3QiLCJ0b19zdHJpbmckMSIsInRvX3N0cmluZ19vcHRpb24iLCJjb252ZXJ0X2VhY2giLCJmaWx0ZXJfbWFwIiwiZmxhdHRlbiIsImwyIiwiZmlsdGVyX2luZGV4IiwiZmlsdGVyX2xpc3QiLCJmaWx0ZXJfbWVtYmVyIiwiZmlsdGVyX2Fzc29jIiwiZmlsdGVyX2Jvb2wiLCJmaWx0ZXJfaW50IiwiZmlsdGVyX2Zsb2F0IiwiZmlsdGVyX251bWJlciIsImZpbHRlcl9zdHJpbmciLCJrZXlzIiwidmFsdWVzIiwiY29tYmluZSIsImZpcnN0Iiwic2Vjb25kIiwidG9fYmFzaWMiLCJoZXgkMiIsIndyaXRlX3NwZWNpYWwkMSIsIndyaXRlX3N0cmluZyQxIiwianNvbl9zdHJpbmdfb2Zfc3RyaW5nJDEiLCJ3cml0ZV9udWxsJDEiLCJ3cml0ZV9ib29sJDEiLCJ3cml0ZV9kaWdpdHMkMSIsIndyaXRlX2ludCQxIiwiZmxvYXRfbmVlZHNfcGVyaW9kJDEiLCJ3cml0ZV9mbG9hdCQxIiwid3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2Zsb2F0X3ByZWMkMSIsIndyaXRlX3N0ZF9mbG9hdCQxIiwid3JpdGVfc3RkX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2ludGxpdCQwIiwiaXRlcjIkMSIsImZfc2VwJDEiLCJ3cml0ZV92YXJpYW50JDAiLCJ3cml0ZV9qc29uJDEiLCJ3cml0ZV90dXBsZSQwIiwid3JpdGVfbGlzdCQxIiwid3JpdGVfYXNzb2MkMSIsIndyaXRlX3N0ZF92YXJpYW50JDAiLCJ3cml0ZV9zdGRfanNvbiQxIiwid3JpdGVfc3RkX3R1cGxlJDAiLCJ0b19idWZmZXIkMSIsInRvX3N0cmluZyQyIiwidG9fY2hhbm5lbCQxIiwidG9fb3V0cHV0JDEiLCJ0b19maWxlJDEiLCJzZXFfdG9fYnVmZmVyJDEiLCJzZXFfdG9fc3RyaW5nJDEiLCJzZXFfdG9fY2hhbm5lbCQxIiwic2VxX3RvX2ZpbGUkMSIsInNvcnQkMSIsInBwX2xpc3QkMSIsImlzX2F0b20kMSIsImZvcm1hdCQxIiwicHAkMyIsInBwJDQiLCJzaG93JDEiLCJlcXVhbCQxIiwicHJldHR5X3ByaW50JDEiLCJwcmV0dHlfdG9fc3RyaW5nJDEiLCJwcmV0dHlfdG9fY2hhbm5lbCQxIiwiaGV4JDMiLCJjdXN0b21fZXJyb3IkMCIsImxleGVyX2Vycm9yJDAiLCJyZWFkX2p1bmskMCIsImxvbmdfZXJyb3IkMCIsIm1pbjEwJDAiLCJtYXgxMCQwIiwiZXh0cmFjdF9wb3NpdGl2ZV9pbnQkMCIsImV4dHJhY3RfbmVnYXRpdmVfaW50JDAiLCJuZXdsaW5lJDAiLCJhZGRfbGV4ZW1lJDAiLCJyZWFkX2pzb24kMCIsImZpbmlzaF9zdHJpbmckMCIsInJlYWRfc3BhY2UkMCIsInJlYWRfb2JqZWN0X2VuZCQwIiwicmVhZF9pZGVudCQwIiwicmVhZF9jb2xvbiQwIiwicmVhZF9vYmplY3Rfc2VwJDAiLCJyZWFkX2FycmF5X2VuZCQwIiwicmVhZF9hcnJheV9zZXAkMCIsImFjYyQxIiwicmVhZF90dXBsZV9lbmQkMCIsInJlYWRfdHVwbGVfc2VwJDAiLCJjb25zIiwiZmluaXNoX3ZhcmlhbnQkMCIsImZpbmlzaF9jb21tZW50JDAiLCJmaW5pc2hfZXNjYXBlZF9jaGFyJDAiLCJtYXBfc3RyaW5nJDAiLCJmaW5pc2hfc3RyaW5nbGl0JDAiLCJyZWFkX2d0JDAiLCJyZWFkX2x0JDAiLCJyZWFkX2NvbW1hJDAiLCJzdGFydF9hbnlfdmFyaWFudCQwIiwicmVhZF9lb2YkMCIsInJlYWRfbnVsbCQwIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlJDAiLCJyZWFkX2Jvb2wkMCIsInJlYWRfaW50JDAiLCJyZWFkX2ludDMyJDAiLCJyZWFkX2ludDY0JDAiLCJyZWFkX251bWJlciQwIiwicmVhZF9zdHJpbmckMCIsIm1hcF9pZGVudCQwIiwicmVhZF9zZXF1ZW5jZSQwIiwicmVhZF9saXN0X3JldiQwIiwicmVhZF90dXBsZSQwIiwicG9zIiwicmVhZF90dXBsZV9lbmQyJDAiLCJyZWFkX3R1cGxlX3NlcDIkMCIsInJlYWRfYWJzdHJhY3RfZmllbGRzJDAiLCJyZWFkX2xjdXJsJDAiLCJzdGFydF9hbnlfdHVwbGUkMCIsInJlYWRfbHBhciQwIiwicmVhZF9ycGFyJDAiLCJyZWFkX2xiciQwIiwicmVhZF9yYnIkMCIsImZpbmlzaF9za2lwX3ZhcmlhbnQkMCIsInNraXBfanNvbiQwIiwiZmluaXNoX3NraXBfc3RyaW5nbGl0JDAiLCJza2lwX2lkZW50JDAiLCJmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCQwIiwiYnVmZmVyX2pzb24kMCIsImJ1ZmZlcl9zcGFjZSQwIiwiYnVmZmVyX2lkZW50JDAiLCJidWZmZXJfY29sb24kMCIsIm9jYW1sX2xleF9zdGF0ZSQ5Iiwib2NhbWxfbGV4X3N0YXRlJDEwIiwib2NhbWxfbGV4X3N0YXRlJDExIiwib2NhbWxfbGV4X3N0YXRlJDEyIiwib2NhbWxfbGV4X3N0YXRlJDEzIiwib2NhbWxfbGV4X3N0YXRlJDE0Iiwib2NhbWxfbGV4X3N0YXRlJDE1Iiwib2NhbWxfbGV4X3N0YXRlJDE2IiwiZmluaXNoX2J1ZmZlcl9jb21tZW50JDAiLCJqdW5rJDAiLCJyZWFkX2ludDgkMCIsInJlYWRfbGlzdCQwIiwicmVhZF9hcnJheSQwIiwicmVhZF9maWVsZHMkMCIsImZyb21fbGV4YnVmJDAiLCJmcm9tX3N0cmluZyQyIiwiZnJvbV9jaGFubmVsJDIiLCJmcm9tX2ZpbGUkMCIsInNlcV9mcm9tX2xleGJ1ZiQwIiwic2VxX2Zyb21fc3RyaW5nJDAiLCJzZXFfZnJvbV9jaGFubmVsJDAiLCJzZXFfZnJvbV9maWxlJDAiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCQwIiwibGluZXNlcV9mcm9tX2ZpbGUkMCIsInByZXR0aWZ5JDAiLCJjb21wYWN0JDAiLCJ0eXBlcnIkMCIsIm1lbWJlciQwIiwiaW5kZXgkMCIsIm1hcCQwIiwidG9fYXNzb2MkMCIsInRvX29wdGlvbiQwIiwidG9fYm9vbCQwIiwidG9fYm9vbF9vcHRpb24kMCIsInRvX251bWJlciQwIiwidG9fbnVtYmVyX29wdGlvbiQwIiwidG9fZmxvYXQkMCIsInRvX2Zsb2F0X29wdGlvbiQwIiwidG9faW50JDAiLCJ0b19pbnRfb3B0aW9uJDAiLCJ0b19saXN0JDAiLCJ0b19zdHJpbmckMyIsInRvX3N0cmluZ19vcHRpb24kMCIsImNvbnZlcnRfZWFjaCQwIiwiZmlsdGVyX21hcCQwIiwiZmxhdHRlbiQwIiwiZmlsdGVyX2luZGV4JDAiLCJmaWx0ZXJfbGlzdCQwIiwiZmlsdGVyX21lbWJlciQwIiwiZmlsdGVyX2Fzc29jJDAiLCJmaWx0ZXJfYm9vbCQwIiwiZmlsdGVyX2ludCQwIiwiZmlsdGVyX2Zsb2F0JDAiLCJmaWx0ZXJfbnVtYmVyJDAiLCJmaWx0ZXJfc3RyaW5nJDAiLCJrZXlzJDAiLCJ2YWx1ZXMkMCIsImNvbWJpbmUkMCIsImhleCQ0Iiwid3JpdGVfc3BlY2lhbCQyIiwid3JpdGVfc3RyaW5nJDIiLCJqc29uX3N0cmluZ19vZl9zdHJpbmckMiIsIndyaXRlX251bGwkMiIsIndyaXRlX2Jvb2wkMiIsIndyaXRlX2ludGxpdCQxIiwid3JpdGVfZmxvYXRsaXQkMCIsIndyaXRlX3N0cmluZ2xpdCQwIiwiaXRlcjIkMiIsImZfc2VwJDIiLCJ3cml0ZV92YXJpYW50JDEiLCJ3cml0ZV9qc29uJDIiLCJ3cml0ZV90dXBsZSQxIiwid3JpdGVfbGlzdCQyIiwid3JpdGVfYXNzb2MkMiIsIndyaXRlX3N0ZF92YXJpYW50JDEiLCJ3cml0ZV9zdGRfanNvbiQyIiwid3JpdGVfc3RkX3R1cGxlJDEiLCJ0b19idWZmZXIkMiIsInRvX3N0cmluZyQ0IiwidG9fY2hhbm5lbCQyIiwidG9fb3V0cHV0JDIiLCJ0b19maWxlJDIiLCJzZXFfdG9fYnVmZmVyJDIiLCJzZXFfdG9fc3RyaW5nJDIiLCJzZXFfdG9fY2hhbm5lbCQyIiwic2VxX3RvX2ZpbGUkMiIsInNvcnQkMiIsInBwX2xpc3QkMiIsImlzX2F0b20kMiIsImZvcm1hdCQyIiwicHAkNSIsInBwJDYiLCJzaG93JDIiLCJlcXVhbCQyIiwicHJldHR5X3ByaW50JDIiLCJwcmV0dHlfdG9fc3RyaW5nJDIiLCJwcmV0dHlfdG9fY2hhbm5lbCQyIiwiaGV4JDUiLCJjdXN0b21fZXJyb3IkMSIsImxleGVyX2Vycm9yJDEiLCJyZWFkX2p1bmskMSIsImxvbmdfZXJyb3IkMSIsIm1pbjEwJDEiLCJtYXgxMCQxIiwibmV3bGluZSQxIiwiYWRkX2xleGVtZSQxIiwicmVhZF9qc29uJDEiLCJmaW5pc2hfc3RyaW5nbGl0JDEiLCJyZWFkX3NwYWNlJDEiLCJyZWFkX29iamVjdF9lbmQkMSIsInJlYWRfaWRlbnQkMSIsInJlYWRfY29sb24kMSIsInJlYWRfb2JqZWN0X3NlcCQxIiwicmVhZF9hcnJheV9lbmQkMSIsInJlYWRfYXJyYXlfc2VwJDEiLCJyZWFkX3R1cGxlX2VuZCQxIiwicmVhZF90dXBsZV9zZXAkMSIsImZpbmlzaF92YXJpYW50JDEiLCJmaW5pc2hfY29tbWVudCQxIiwiZmluaXNoX3N0cmluZyQxIiwiZmluaXNoX2VzY2FwZWRfY2hhciQxIiwibWFwX3N0cmluZyQxIiwicmVhZF9ndCQxIiwicmVhZF9sdCQxIiwicmVhZF9jb21tYSQxIiwic3RhcnRfYW55X3ZhcmlhbnQkMSIsInJlYWRfZW9mJDEiLCJyZWFkX251bGwkMSIsInJlYWRfbnVsbF9pZl9wb3NzaWJsZSQxIiwicmVhZF9ib29sJDEiLCJyZWFkX2ludCQxIiwic3RhcnQkMCIsInN0b3AkMCIsIm4kMCIsImkkMCIsInJlYWRfaW50MzIkMSIsInJlYWRfaW50NjQkMSIsInJlYWRfbnVtYmVyJDEiLCJyZWFkX3N0cmluZyQxIiwibWFwX2lkZW50JDEiLCJyZWFkX3NlcXVlbmNlJDEiLCJyZWFkX2xpc3RfcmV2JDEiLCJyZWFkX3R1cGxlJDEiLCJyZWFkX3R1cGxlX2VuZDIkMSIsInJlYWRfdHVwbGVfc2VwMiQxIiwicmVhZF9hYnN0cmFjdF9maWVsZHMkMSIsInJlYWRfbGN1cmwkMSIsInN0YXJ0X2FueV90dXBsZSQxIiwicmVhZF9scGFyJDEiLCJyZWFkX3JwYXIkMSIsInJlYWRfbGJyJDEiLCJyZWFkX3JiciQxIiwiZmluaXNoX3NraXBfdmFyaWFudCQxIiwic2tpcF9qc29uJDEiLCJmaW5pc2hfc2tpcF9zdHJpbmdsaXQkMSIsInNraXBfaWRlbnQkMSIsImZpbmlzaF9idWZmZXJfc3RyaW5nbGl0JDEiLCJidWZmZXJfanNvbiQxIiwiYnVmZmVyX3NwYWNlJDEiLCJidWZmZXJfaWRlbnQkMSIsImJ1ZmZlcl9jb2xvbiQxIiwiZmluaXNoX2J1ZmZlcl9jb21tZW50JDEiLCJqdW5rJDEiLCJyZWFkX2ludDgkMSIsInJlYWRfbGlzdCQxIiwicmVhZF9hcnJheSQxIiwicmVhZF9maWVsZHMkMSIsImZyb21fbGV4YnVmJDEiLCJmcm9tX3N0cmluZyQ0IiwiZnJvbV9jaGFubmVsJDQiLCJmcm9tX2ZpbGUkMSIsInNlcV9mcm9tX2xleGJ1ZiQxIiwic2VxX2Zyb21fc3RyaW5nJDEiLCJzZXFfZnJvbV9jaGFubmVsJDEiLCJzZXFfZnJvbV9maWxlJDEiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCQxIiwibGluZXNlcV9mcm9tX2ZpbGUkMSIsInByZXR0aWZ5JDEiLCJjb21wYWN0JDEiLCJ5b2pzb25fb2ZfdW5pdCIsInlvanNvbl9vZl9ib29sIiwiYiIsInlvanNvbl9vZl9zdHJpbmciLCJzdHIiLCJ5b2pzb25fb2ZfYnl0ZXMiLCJieXRlcyIsInlvanNvbl9vZl9jaGFyIiwiYyIsInlvanNvbl9vZl9pbnQiLCJuIiwieW9qc29uX29mX2Zsb2F0IiwieW9qc29uX29mX2ludDMyIiwieW9qc29uX29mX2ludDY0IiwieW9qc29uX29mX25hdGl2ZWludCIsInlvanNvbl9vZl9yZWYiLCJ5b2pzb25fb2ZfYSIsInJmIiwieW9qc29uX29mX2xhenlfdCIsImx2IiwieW9qc29uX29mX29wdGlvbiIsIngiLCJ5b2pzb25fb2ZfcGFpciIsInlvanNvbl9vZl9iIiwiYSIsInlvanNvbl9vZl90cmlwbGUiLCJ5b2pzb25fb2ZfYyIsInlvanNvbl9vZl9saXN0IiwibHN0IiwieW9qc29uX29mX2FycmF5IiwiYXIiLCJsc3RfcmVmIiwiaSIsInlvanNvbl9vZl9oYXNodGJsIiwieW9qc29uX29mX2tleSIsInlvanNvbl9vZl92YWwiLCJodGJsIiwiY29sbCIsImsiLCJ2IiwiYWNjIiwieW9qc29uX29mX29wYXF1ZSIsInlvanNvbl9vZl9mdW4iLCJyZWNvcmRfY2hlY2tfZXh0cmFfZmllbGRzIiwib2ZfeW9qc29uX2Vycm9yX2V4biIsImV4YyIsInlvanNvbiIsIm9mX3lvanNvbl9lcnJvciIsIndoYXQiLCJ1bml0X29mX3lvanNvbiIsImJvb2xfb2ZfeW9qc29uIiwic3RyaW5nX29mX3lvanNvbiIsImJ5dGVzX29mX3lvanNvbiIsImNoYXJfb2ZfeW9qc29uIiwiaW50X29mX3lvanNvbiIsImZsb2F0X29mX3lvanNvbiIsImludDMyX29mX3lvanNvbiIsImludDY0X29mX3lvanNvbiIsIm5hdGl2ZWludF9vZl95b2pzb24iLCJyZWZfb2ZfeW9qc29uIiwiYV9vZl95b2pzb24iLCJsYXp5X3Rfb2ZfeW9qc29uIiwib3B0aW9uX29mX3lvanNvbiIsInBhaXJfb2ZfeW9qc29uIiwiYl9vZl95b2pzb24iLCJiX3lvanNvbiIsImFfeW9qc29uIiwidHJpcGxlX29mX3lvanNvbiIsImNfb2ZfeW9qc29uIiwiY195b2pzb24iLCJsaXN0X29mX3lvanNvbiIsInJldl9sc3QiLCJhcnJheV9vZl95b2pzb24iLCJ0IiwiaCIsImxlbiIsInJlcyIsInQkMCIsImgkMCIsImhhc2h0Ymxfb2ZfeW9qc29uIiwia2V5X29mX3lvanNvbiIsInZhbF9vZl95b2pzb24iLCJhY3QiLCJ2X3lvanNvbiIsImtfeW9qc29uIiwib3BhcXVlX29mX3lvanNvbiIsImZ1bl9vZl95b2pzb24iLCJzcHJpbnRmIiwidHVwbGVfb2Zfc2l6ZV9uX2V4cGVjdGVkIiwibG9jIiwic3RhZ19ub19hcmdzIiwic3RhZ19pbmNvcnJlY3Rfbl9hcmdzIiwidGFnIiwibXNnIiwic3RhZ190YWtlc19hcmdzIiwibmVzdGVkX2xpc3RfaW52YWxpZF9zdW0iLCJlbXB0eV9saXN0X2ludmFsaWRfc3VtIiwidW5leHBlY3RlZF9zdGFnIiwicmVjb3JkX3N1cGVyZmx1b3VzX2ZpZWxkcyIsInJldl9mbGRfbmFtZXMiLCJmbGRfbmFtZXNfc3RyIiwicmVjb3JkX2R1cGxpY2F0ZV9maWVsZHMiLCJyZWNvcmRfZXh0cmFfZmllbGRzIiwicmVjb3JkX2dldF91bmRlZmluZWRfbG9vcCIsImZpZWxkcyQwIiwicmVzdCIsImZpZWxkIiwicmVzdCQwIiwicmVjb3JkX3VuZGVmaW5lZF9lbGVtZW50cyIsInVuZGVmaW5lZCQwIiwicmVjb3JkX2xpc3RfaW5zdGVhZF9hdG9tIiwicmVjb3JkX3BvbHlfZmllbGRfdmFsdWUiLCJub192YXJpYW50X21hdGNoIiwibm9fbWF0Y2hpbmdfdmFyaWFudF9mb3VuZCIsInB0YWdfbm9fYXJncyIsInB0YWdfaW5jb3JyZWN0X25fYXJncyIsImNuc3RyIiwicHRhZ190YWtlc19hcmdzIiwibmVzdGVkX2xpc3RfaW52YWxpZF9wb2x5X3ZhciIsImVtcHR5X2xpc3RfaW52YWxpZF9wb2x5X3ZhciIsImVtcHR5X3R5cGUiLCJzeW1ib2wiLCJ5b2pzb25fb2Zfc291cmNlX3Bvc2l0aW9uIiwidl9sYXdfaGVhZGluZ3MiLCJ2X2VuZF9jb2x1bW4iLCJ2X2VuZF9saW5lIiwidl9zdGFydF9jb2x1bW4iLCJ2X3N0YXJ0X2xpbmUiLCJ2X2ZpbGVuYW1lIiwiYXJnIiwiYm5kcyIsImFyZyQwIiwiYm5kcyQwIiwiYXJnJDEiLCJibmRzJDEiLCJhcmckMiIsImJuZHMkMiIsImFyZyQzIiwiYm5kcyQzIiwiYXJnJDQiLCJibmRzJDQiLCJtb25leV9vZl9jZW50c19zdHJpbmciLCJjZW50cyIsIm1vbmV5X29mX3VuaXRzX2ludCIsInVuaXRzIiwibW9uZXlfb2ZfY2VudHNfaW50ZWdlciIsIm1vbmV5X3RvX2Zsb2F0IiwibSIsIm1vbmV5X29mX2RlY2ltYWwiLCJkIiwibW9uZXlfdG9fc3RyaW5nIiwibW9uZXlfdG9fY2VudHMiLCJtb25leV9yb3VuZCIsImRlY2ltYWxfb2Zfc3RyaW5nIiwiZGVjaW1hbF90b19mbG9hdCIsImRlY2ltYWxfb2ZfZmxvYXQiLCJkZWNpbWFsX29mX2ludGVnZXIiLCJkZWNpbWFsX3RvX3N0cmluZyIsIm1heF9wcmVjX2RpZ2l0cyIsImkiLCJzaWduIiwibiIsImludF9wYXJ0IiwibiQwIiwiZGlnaXRzIiwibGVhZGluZ196ZXJvZXMiLCJkaWdpdCIsIm51bV9sZWFkaW5nX3plcm9lcyIsImkkMCIsImZtdCIsImRlY2ltYWxfcm91bmQiLCJxIiwiZGVjaW1hbF9vZl9tb25leSIsImludGVnZXJfb2Zfc3RyaW5nIiwicyIsImludGVnZXJfdG9fc3RyaW5nIiwiaW50ZWdlcl90b19pbnQiLCJpbnRlZ2VyX29mX2ludCIsImludGVnZXJfZXhwb25lbnRpYXRpb24iLCJlIiwiaW50ZWdlcl9sb2cyIiwieWVhcl9vZl9kYXRlIiwieSIsIm1vbnRoX251bWJlcl9vZl9kYXRlIiwiaXNfbGVhcF95ZWFyIiwieSQwIiwiZGF5X29mX21vbnRoX29mX2RhdGUiLCJkJDAiLCJkYXRlX29mX251bWJlcnMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJkYXRlX3RvX3N0cmluZyIsImZpcnN0X2RheV9vZl9tb250aCIsImxhc3RfZGF5X29mX21vbnRoIiwiZHVyYXRpb25fb2ZfbnVtYmVycyIsImR1cmF0aW9uX3RvX3N0cmluZyIsImR1cmF0aW9uX3RvX3llYXJzX21vbnRoc19kYXlzIiwieW9qc29uX29mX3J1bnRpbWVfdmFsdWUiLCJ2MCQ0IiwidjAkNSIsInYwJDYiLCJ2MCIsInYwJDciLCJ2MCQwIiwidjAkOCIsInYwJDEiLCJ2MCQ5IiwidjAkMiIsInYwJDEwIiwidjAkMyIsInYxIiwidjAkMTEiLCJ2MCQxMiIsInYxJDAiLCJ2MCQxMyIsInYwJDE0IiwidjEkMSIsInYxJDIiLCJ2MSQzIiwidjAkMTUiLCJ2MCQxNiIsInYxJDQiLCJ2MCQxNyIsInYwJDE4IiwidW5lbWJlZGRhYmxlIiwiZW1iZWRfdW5pdCIsImVtYmVkX2Jvb2wiLCJ4IiwiZW1iZWRfbW9uZXkiLCJlbWJlZF9pbnRlZ2VyIiwiZW1iZWRfZGVjaW1hbCIsImVtYmVkX2RhdGUiLCJlbWJlZF9kdXJhdGlvbiIsImVtYmVkX2FycmF5IiwiZiIsInlvanNvbl9vZl9pbmZvcm1hdGlvbiIsInYiLCJ5b2pzb25fb2ZfZXZlbnQiLCJ5b2pzb25fb2ZfdmFyX2RlZiIsInlvanNvbl9vZl9mdW5fY2FsbCIsInZfYm9keSIsInZfaW5wdXRzIiwidl9uYW1lIiwidl9mdW5fY2FsbHMiLCJ2X3ZhbHVlIiwidl9wb3MiLCJ2X291dHB1dCIsInZfZnVuX2lucHV0cyIsInZfZnVuX25hbWUiLCJsb2dfcmVmIiwicmVzZXRfbG9nIiwicmV0cmlldmVfbG9nIiwibG9nX2JlZ2luX2NhbGwiLCJpbmZvIiwibG9nX2VuZF9jYWxsIiwibG9nX3ZhcmlhYmxlX2RlZmluaXRpb24iLCJlbWJlZCIsImxvZ19kZWNpc2lvbl90YWtlbiIsInBvcyIsInBwX2V2ZW50cyIsIm9wdCIsInBwZiIsImV2ZW50cyIsInN0aCIsImlzX2ZpcnN0X2NhbGwiLCJmb3JtYXRfdmFyX2RlZiIsInZhciQwIiwiZm9ybWF0X3Bvc19vcHQiLCJmb3JtYXRfdmFsdWUiLCJmb3JtYXRfdmFyX2RlZnMiLCJmb3JtYXRfdmFyX2RlZl93aXRoX2Z1bl9jYWxscyIsInZhcl93aXRoX2Z1biIsImZ1bl9jYWxscyIsImZ1bl9jYWxsIiwiZm9ybWF0X2V2ZW50IiwieCQwIiwieCQxIiwieCQyIiwieCQzIiwieCQ0IiwibmFtZSIsImF0dHJzIiwibmFtZSQwIiwidmFsdWUiLCJlbHRzIiwidmFyX2RlZl93aXRoX2Z1biIsIm91dHB1dCIsImJvZHkiLCJmdW5faW5wdXRzIiwiZnVuX25hbWUiLCJib2R5JDAiLCJpbnB1dHMiLCJlbXB0eSIsImVtcHR5X2N0eCIsInJhd19ldmVudF90b19zdHJpbmciLCJuYW1lJDEiLCJ0YWtlX3doaWxlIiwicCIsImwiLCJ0IiwiaCIsInJlc3QiLCJ0JDAiLCJwYXJzZV9yYXdfZXZlbnRzIiwicmF3X2V2ZW50cyIsIm5iX3Jhd19ldmVudHMiLCJpc19mdW5jdGlvbl9jYWxsIiwiaW5mb3MiLCJpc192YXJfZGVmIiwicGFyc2VfZXZlbnRzIiwiY3R4IiwiY3R4JDAiLCJldmVudCIsInZhcl9uYW1lIiwiYm9keV9jdHgiLCJtYXAiLCJscyQwIiwiY3R4JDEiLCJyZXN0JDAiLCJyZXN0JDEiLCJjdHgkMiIsImluZm9zJDAiLCJwYXJzZV9mdW5fY2FsbCIsInJlc3QkMiIsImN0eCQzIiwicmVzdCQzIiwidmFyX2RvdF9zdWJzY29wZV92YXJfbmFtZSIsInZhcl9uYW1lJDAiLCJtYXAkMCIsImxzIiwiY3R4JDQiLCJpbmZvcyQxIiwicmF3X2V2ZW50cyQxIiwiaW5mb3MkMiIsImZ1bl9jYWxsJDAiLCJyYXdfZXZlbnRzJDAiLCJmdW5fY2FsbHMkMCIsImZ1bl9jYWxscyQxIiwiZXZlbnQkMCIsInJlc3QkNSIsInZhbHVlJDAiLCJ2YXJfY29tcCIsInJlc3QkNCIsInZhcl9jb21wJDAiLCJyZXN0JDYiLCJjdHgkNiIsImN0eCQ1IiwiYm9keV9yZXYiLCJ2YXJfZGVmIiwib3V0cHV0JDAiLCJtc2ciLCJoYW5kbGVfZGVmYXVsdCIsImV4Y2VwdGlvbnMiLCJqdXN0IiwiY29ucyIsImFjYyIsImV4Y2VwdCIsIm5ld192YWwiLCJoYW5kbGVfZGVmYXVsdF9vcHQiLCJiIiwibm9faW5wdXQiLCJjb21wYXJlX3BlcmlvZHMiLCJwMSIsInAyIiwicDFfZGF5cyIsInAyX2RheXMiLCJvX25vdCIsIm9fbGVuZ3RoIiwiYSIsIm9fbWludXNfaW50IiwiaTEiLCJvX21pbnVzX3JhdCIsIm9fbWludXNfbW9uIiwibTEiLCJvX21pbnVzX2R1ciIsIm9fYW5kIiwib19vciIsIm9feG9yIiwib19lcSIsIm9fbWFwIiwib19yZWR1Y2UiLCJkZnQiLCJsZW4iLCJyIiwib19jb25jYXQiLCJvX2ZpbHRlciIsIm9fYWRkX2ludF9pbnQiLCJpMiIsIm9fYWRkX3JhdF9yYXQiLCJvX2FkZF9tb25fbW9uIiwibTIiLCJvX2FkZF9kYXRfZHVyIiwiZGEiLCJkdSIsIm9fYWRkX2R1cl9kdXIiLCJvX3N1Yl9pbnRfaW50Iiwib19zdWJfcmF0X3JhdCIsIm9fc3ViX21vbl9tb24iLCJvX3N1Yl9kYXRfZGF0Iiwib19zdWJfZGF0X2R1ciIsImRhdCIsImR1ciIsIm9fc3ViX2R1cl9kdXIiLCJvX211bHRfaW50X2ludCIsIm9fbXVsdF9yYXRfcmF0Iiwib19tdWx0X21vbl9yYXQiLCJpMV9hYnMiLCJpMl9hYnMiLCJzaWduX2ludCIsInJhdF9yZXN1bHQiLCJyZW1haW5kZXIiLCJyZXMiLCJvX211bHRfZHVyX2ludCIsIm9fZGl2X2ludF9pbnQiLCJvX2Rpdl9yYXRfcmF0Iiwib19kaXZfbW9uX21vbiIsIm9fZGl2X21vbl9yYXQiLCJyMSIsIm9fZGl2X2R1cl9kdXIiLCJkMSIsImQyIiwib19sdF9pbnRfaW50Iiwib19sdF9yYXRfcmF0Iiwib19sdF9tb25fbW9uIiwib19sdF9kdXJfZHVyIiwib19sdF9kYXRfZGF0Iiwib19sdGVfaW50X2ludCIsIm9fbHRlX3JhdF9yYXQiLCJvX2x0ZV9tb25fbW9uIiwib19sdGVfZHVyX2R1ciIsIm9fbHRlX2RhdF9kYXQiLCJvX2d0X2ludF9pbnQiLCJvX2d0X3JhdF9yYXQiLCJvX2d0X21vbl9tb24iLCJvX2d0X2R1cl9kdXIiLCJvX2d0X2RhdF9kYXQiLCJvX2d0ZV9pbnRfaW50Iiwib19ndGVfcmF0X3JhdCIsIm9fZ3RlX21vbl9tb24iLCJvX2d0ZV9kdXJfZHVyIiwib19ndGVfZGF0X2RhdCIsIm9fZXFfaW50X2ludCIsIm9fZXFfcmF0X3JhdCIsIm9fZXFfbW9uX21vbiIsIm9fZXFfZHVyX2R1ciIsIm9fZXFfZGF0X2RhdCIsIm9fZm9sZCIsIm9fbm90JDAiLCJvX2xlbmd0aCQwIiwib190b3JhdF9pbnQiLCJvX3RvcmF0X21vbiIsIm9fdG9tb25leV9yYXQiLCJvX2dldERheSIsIm9fZ2V0TW9udGgiLCJvX2dldFllYXIiLCJvX2ZpcnN0RGF5T2ZNb250aCIsIm9fbGFzdERheU9mTW9udGgiLCJvX3JvdW5kX21vbiIsIm9fcm91bmRfcmF0Iiwib19taW51c19pbnQkMCIsIm9fbWludXNfcmF0JDAiLCJvX21pbnVzX21vbiQwIiwib19taW51c19kdXIkMCIsIm9fYW5kJDAiLCJvX29yJDAiLCJvX3hvciQwIiwib19lcSQwIiwib19tYXAkMCIsIm9fcmVkdWNlJDAiLCJvX2NvbmNhdCQwIiwib19maWx0ZXIkMCIsIm9fYWRkX2ludF9pbnQkMCIsIm9fYWRkX3JhdF9yYXQkMCIsIm9fYWRkX21vbl9tb24kMCIsIm9fYWRkX2RhdF9kdXIkMCIsIm9fYWRkX2R1cl9kdXIkMCIsIm9fc3ViX2ludF9pbnQkMCIsIm9fc3ViX3JhdF9yYXQkMCIsIm9fc3ViX21vbl9tb24kMCIsIm9fc3ViX2RhdF9kYXQkMCIsIm9fc3ViX2RhdF9kdXIkMCIsIm9fc3ViX2R1cl9kdXIkMCIsIm9fbXVsdF9pbnRfaW50JDAiLCJvX211bHRfcmF0X3JhdCQwIiwib19tdWx0X21vbl9yYXQkMCIsIm9fbXVsdF9kdXJfaW50JDAiLCJvX2Rpdl9pbnRfaW50JDAiLCJvX2Rpdl9yYXRfcmF0JDAiLCJvX2Rpdl9tb25fbW9uJDAiLCJvX2Rpdl9tb25fcmF0JDAiLCJvX2Rpdl9kdXJfZHVyJDAiLCJvX2x0X2ludF9pbnQkMCIsIm9fbHRfcmF0X3JhdCQwIiwib19sdF9tb25fbW9uJDAiLCJvX2x0X2R1cl9kdXIkMCIsIm9fbHRfZGF0X2RhdCQwIiwib19sdGVfaW50X2ludCQwIiwib19sdGVfcmF0X3JhdCQwIiwib19sdGVfbW9uX21vbiQwIiwib19sdGVfZHVyX2R1ciQwIiwib19sdGVfZGF0X2RhdCQwIiwib19ndF9pbnRfaW50JDAiLCJvX2d0X3JhdF9yYXQkMCIsIm9fZ3RfbW9uX21vbiQwIiwib19ndF9kdXJfZHVyJDAiLCJvX2d0X2RhdF9kYXQkMCIsIm9fZ3RlX2ludF9pbnQkMCIsIm9fZ3RlX3JhdF9yYXQkMCIsIm9fZ3RlX21vbl9tb24kMCIsIm9fZ3RlX2R1cl9kdXIkMCIsIm9fZ3RlX2RhdF9kYXQkMCIsIm9fZXFfaW50X2ludCQwIiwib19lcV9yYXRfcmF0JDAiLCJvX2VxX21vbl9tb24kMCIsIm9fZXFfZHVyX2R1ciQwIiwib19lcV9kYXRfZGF0JDAiLCJvX2ZvbGQkMCIsInZlcnNpb24iLCJnaXRfdmVyc2lvbiIsInJhaXNlIiwibWF4IiwieCIsInkiLCJtaW4iLCJlcXVhbCIsImVxdWFsJDAiLCJtYXgkMCIsIm1pbiQwIiwiZ2xvYmFsIiwibnVsbCQwIiwidW5kZWZpbmVkJDAiLCJyZXR1cm4kMCIsIm1hcCIsImYiLCJiaW5kIiwidGVzdCIsIml0ZXIiLCJjYXNlJDAiLCJnIiwiZ2V0Iiwib3B0aW9uIiwieCQwIiwidG9fb3B0aW9uIiwicmV0dXJuJDEiLCJtYXAkMCIsImJpbmQkMCIsInRlc3QkMCIsIml0ZXIkMCIsImNhc2UkMSIsImdldCQwIiwib3B0aW9uJDAiLCJ0b19vcHRpb24kMCIsImNvZXJjZSIsImNvZXJjZV9vcHQiLCJ0cnVlJDAiLCJmYWxzZSQwIiwibmZjIiwibmZkIiwibmZrYyIsIm5ma2QiLCJzdHJpbmdfY29uc3RyIiwicmVnRXhwIiwib2JqZWN0X2NvbnN0cnVjdG9yIiwib2JqZWN0X2tleXMiLCJvIiwiYXJyYXlfY29uc3RydWN0b3IiLCJhcnJheV9nZXQiLCJhcnJheV9zZXQiLCJhcnJheV9tYXAiLCJhIiwiaWR4IiwiYXJyYXlfbWFwaSIsInN0cl9hcnJheSIsIm1hdGNoX3Jlc3VsdCIsImRhdGVfY29uc3RyIiwibWF0aCIsImVycm9yX2NvbnN0ciIsImV4bl93aXRoX2pzX2JhY2t0cmFjZSIsIm5hbWUiLCJtZXNzYWdlIiwic3RhY2siLCJ0b19zdHJpbmciLCJlIiwicmFpc2VfanNfZXJyb3IiLCJzdHJpbmdfb2ZfZXJyb3IiLCJKU09OIiwiZGVjb2RlVVJJIiwicyIsImRlY29kZVVSSUNvbXBvbmVudCIsImVuY29kZVVSSSIsImVuY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsInVuZXNjYXBlIiwiaXNOYU4iLCJpIiwicGFyc2VJbnQiLCJzJDAiLCJwYXJzZUZsb2F0IiwiZXhwb3J0X2pzIiwiZmllbGQiLCJleHBvcnQkMCIsImV4cG9ydF9hbGwiLCJvYmoiLCJrZXlzIiwia2V5IiwibGlzdF9vZl9ub2RlTGlzdCIsImxlbmd0aCIsImFjYyIsImkkMCIsImFjYyQwIiwiaSQxIiwiZGlzY29ubmVjdGVkIiwicHJlY2VkaW5nIiwiZm9sbG93aW5nIiwiY29udGFpbnMiLCJjb250YWluZWRfYnkiLCJpbXBsZW1lbnRhdGlvbl9zcGVjaWZpYyIsImhhcyIsInQiLCJtYXNrIiwiYWRkIiwiYXBwZW5kQ2hpbGQiLCJwIiwibiIsInJlbW92ZUNoaWxkIiwicmVwbGFjZUNoaWxkIiwiaW5zZXJ0QmVmb3JlIiwibm9kZVR5cGUiLCJ0MTMiLCJjYXN0IiwidDE0IiwiZWxlbWVudCIsInRleHQiLCJhdHRyIiwibm9faGFuZGxlciIsImhhbmRsZXIiLCJyZXMiLCJmdWxsX2hhbmRsZXIiLCJ0aGlzJDAiLCJpbnZva2VfaGFuZGxlciIsImV2ZW50IiwiZXZlbnRUYXJnZXQiLCJtYWtlIiwiYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIiwidDI4IiwidHlwIiwiY2FwdHVyZSIsIm9uY2UiLCJwYXNzaXZlIiwiaCIsImV2IiwiY2FsbGJhY2siLCJiIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNhcHQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaWQiLCJwcmV2ZW50RGVmYXVsdCIsImNyZWF0ZUN1c3RvbUV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJkZXRhaWwiLCJvcHRfaXRlciIsImNvbnN0ciIsImFycmF5QnVmZmVyIiwiaW50OEFycmF5IiwidWludDhBcnJheSIsImludDE2QXJyYXkiLCJ1aW50MTZBcnJheSIsImludDMyQXJyYXkiLCJ1aW50MzJBcnJheSIsImZsb2F0MzJBcnJheSIsImZsb2F0NjRBcnJheSIsInNldCIsInYiLCJ1bnNhZmVfZ2V0IiwiZGF0YVZpZXciLCJvZl9hcnJheUJ1ZmZlciIsImFiIiwidWludDgiLCJibG9iX2NvbnN0ciIsImZpbHRlcl9tYXAiLCJxIiwidiQwIiwiYmxvYl9yYXciLCJjb250ZW50VHlwZSIsImVuZGluZ3MiLCJvcHRpb25zIiwib3B0aW9ucyQwIiwiYmxvYl9mcm9tX3N0cmluZyIsImJsb2JfZnJvbV9hbnkiLCJsIiwiYSQwIiwibCQwIiwiZmlsZW5hbWUiLCJuYW1lJDAiLCJkb2NfY29uc3RyIiwiZG9jdW1lbnQiLCJibG9iIiwic3RyaW5nIiwibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsImxvYWRlbmQiLCJmaWxlUmVhZGVyIiwib25JRSIsImNsaWNrIiwiY29weSIsImN1dCIsInBhc3RlIiwiZGJsY2xpY2siLCJtb3VzZWRvd24iLCJtb3VzZXVwIiwibW91c2VvdmVyIiwibW91c2Vtb3ZlIiwibW91c2VvdXQiLCJrZXlwcmVzcyIsImtleWRvd24iLCJrZXl1cCIsIm1vdXNld2hlZWwiLCJ3aGVlbCIsIkRPTU1vdXNlU2Nyb2xsIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIiwidG91Y2hjYW5jZWwiLCJkcmFnc3RhcnQiLCJkcmFnZW5kIiwiZHJhZ2VudGVyIiwiZHJhZ292ZXIiLCJkcmFnbGVhdmUiLCJkcmFnIiwiZHJvcCIsImhhc2hjaGFuZ2UiLCJjaGFuZ2UiLCJpbnB1dCIsInRpbWV1cGRhdGUiLCJzdWJtaXQiLCJzY3JvbGwiLCJmb2N1cyIsImJsdXIiLCJ1bmxvYWQiLCJiZWZvcmV1bmxvYWQiLCJyZXNpemUiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBvcHN0YXRlIiwic2VsZWN0Iiwib25saW5lIiwib2ZmbGluZSIsImNoZWNraW5nIiwibm91cGRhdGUiLCJkb3dubG9hZGluZyIsInVwZGF0ZXJlYWR5IiwiY2FjaGVkIiwib2Jzb2xldGUiLCJkb21Db250ZW50TG9hZGVkIiwiYW5pbWF0aW9uc3RhcnQiLCJhbmltYXRpb25lbmQiLCJhbmltYXRpb25pdGVyYXRpb24iLCJhbmltYXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0IiwidHJhbnNpdGlvbmVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJjYW5wbGF5IiwiY2FucGxheXRocm91Z2giLCJkdXJhdGlvbmNoYW5nZSIsImVtcHRpZWQiLCJlbmRlZCIsImdvdHBvaW50ZXJjYXB0dXJlIiwibG9hZGVkZGF0YSIsImxvYWRlZG1ldGFkYXRhIiwibG9zdHBvaW50ZXJjYXB0dXJlIiwicGF1c2UiLCJwbGF5IiwicGxheWluZyIsInBvaW50ZXJlbnRlciIsInBvaW50ZXJjYW5jZWwiLCJwb2ludGVyZG93biIsInBvaW50ZXJsZWF2ZSIsInBvaW50ZXJtb3ZlIiwicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIiwicG9pbnRlcnVwIiwicmF0ZWNoYW5nZSIsInNlZWtlZCIsInNlZWtpbmciLCJzdGFsbGVkIiwic3VzcGVuZCIsInZvbHVtZWNoYW5nZSIsIndhaXRpbmciLCJkIiwibG9jYXRpb25fb3JpZ2luIiwib3JpZ2luIiwid2luZG93IiwiZ2V0RWxlbWVudEJ5SWQiLCJwbm9kZSIsImdldEVsZW1lbnRCeUlkX2V4biIsImdldEVsZW1lbnRCeUlkX29wdCIsImdldEVsZW1lbnRCeUlkX2NvZXJjZSIsImNyZWF0ZUVsZW1lbnQiLCJkb2MiLCJ1bnNhZmVDcmVhdGVFbGVtZW50IiwiY3JlYXRlRWxlbWVudFN5bnRheCIsInVuc2FmZUNyZWF0ZUVsZW1lbnRFeCIsInR5cGUiLCJlbHQiLCJjcmVhdGVIdG1sIiwiY3JlYXRlSGVhZCIsImNyZWF0ZUxpbmsiLCJjcmVhdGVUaXRsZSIsImNyZWF0ZU1ldGEiLCJjcmVhdGVCYXNlIiwiY3JlYXRlU3R5bGUiLCJjcmVhdGVCb2R5IiwiY3JlYXRlRm9ybSIsImNyZWF0ZU9wdGdyb3VwIiwiY3JlYXRlT3B0aW9uIiwiY3JlYXRlU2VsZWN0IiwiY3JlYXRlSW5wdXQiLCJjcmVhdGVUZXh0YXJlYSIsImNyZWF0ZUJ1dHRvbiIsImNyZWF0ZUxhYmVsIiwiY3JlYXRlRmllbGRzZXQiLCJjcmVhdGVMZWdlbmQiLCJjcmVhdGVVbCIsImNyZWF0ZU9sIiwiY3JlYXRlRGwiLCJjcmVhdGVMaSIsImNyZWF0ZURpdiIsImNyZWF0ZUVtYmVkIiwiY3JlYXRlUCIsImNyZWF0ZUgxIiwiY3JlYXRlSDIiLCJjcmVhdGVIMyIsImNyZWF0ZUg0IiwiY3JlYXRlSDUiLCJjcmVhdGVINiIsImNyZWF0ZVEiLCJjcmVhdGVCbG9ja3F1b3RlIiwiY3JlYXRlUHJlIiwiY3JlYXRlQnIiLCJjcmVhdGVIciIsImNyZWF0ZUlucyIsImNyZWF0ZURlbCIsImNyZWF0ZUEiLCJjcmVhdGVJbWciLCJjcmVhdGVPYmplY3QiLCJjcmVhdGVQYXJhbSIsImNyZWF0ZU1hcCIsImNyZWF0ZUFyZWEiLCJjcmVhdGVTY3JpcHQiLCJjcmVhdGVUYWJsZSIsImNyZWF0ZUNhcHRpb24iLCJjcmVhdGVDb2wiLCJjcmVhdGVDb2xncm91cCIsImNyZWF0ZVRoZWFkIiwiY3JlYXRlVGZvb3QiLCJjcmVhdGVUYm9keSIsImNyZWF0ZVRyIiwiY3JlYXRlVGgiLCJjcmVhdGVUZCIsImNyZWF0ZVN1YiIsImNyZWF0ZVN1cCIsImNyZWF0ZVNwYW4iLCJjcmVhdGVUdCIsImNyZWF0ZUkiLCJjcmVhdGVCIiwiY3JlYXRlQmlnIiwiY3JlYXRlU21hbGwiLCJjcmVhdGVFbSIsImNyZWF0ZVN0cm9uZyIsImNyZWF0ZUNpdGUiLCJjcmVhdGVEZm4iLCJjcmVhdGVDb2RlIiwiY3JlYXRlU2FtcCIsImNyZWF0ZUtiZCIsImNyZWF0ZVZhciIsImNyZWF0ZUFiYnIiLCJjcmVhdGVEZCIsImNyZWF0ZUR0IiwiY3JlYXRlTm9zY3JpcHQiLCJjcmVhdGVBZGRyZXNzIiwiY3JlYXRlRnJhbWVzZXQiLCJjcmVhdGVGcmFtZSIsImNyZWF0ZUlmcmFtZSIsImNyZWF0ZUF1ZGlvIiwiY3JlYXRlVmlkZW8iLCJjcmVhdGVDYW52YXMiLCJodG1sX2VsZW1lbnQiLCJ0NTQiLCJ1bnNhZmVDb2VyY2UiLCJ0YWciLCJ0NTUiLCJhcmVhIiwiYmFzZSIsImJsb2NrcXVvdGUiLCJib2R5IiwiYnIiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0aW9uIiwiY29sIiwiY29sZ3JvdXAiLCJkZWwiLCJkaXYiLCJkbCIsImZpZWxkc2V0IiwiZW1iZWQiLCJmb3JtIiwiZnJhbWVzZXQiLCJmcmFtZSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJociIsImh0bWwiLCJpZnJhbWUiLCJpbWciLCJpbnB1dCQwIiwiaW5zIiwibGFiZWwiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtZXRhIiwib2JqZWN0Iiwib2wiLCJvcHRncm91cCIsInBhcmFtIiwicHJlIiwic2NyaXB0Iiwic2VsZWN0JDAiLCJzdHlsZSIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRleHRhcmVhIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInVsIiwiYXVkaW8iLCJ2aWRlbyIsInVuc2FmZUNvZXJjZUV2ZW50IiwibW91c2VFdmVudCIsImtleWJvYXJkRXZlbnQiLCJ3aGVlbEV2ZW50IiwibW91c2VTY3JvbGxFdmVudCIsInBvcFN0YXRlRXZlbnQiLCJtZXNzYWdlRXZlbnQiLCJldmVudFJlbGF0ZWRUYXJnZXQiLCJldmVudEFic29sdXRlUG9zaXRpb24iLCJldmVudEFic29sdXRlUG9zaXRpb24kMCIsImVsZW1lbnRDbGllbnRQb3NpdGlvbiIsImdldERvY3VtZW50U2Nyb2xsIiwiYnV0dG9uUHJlc3NlZCIsImFkZE1vdXNld2hlZWxFdmVudExpc3RlbmVyV2l0aCIsImR4IiwiZHkiLCJhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lciIsInRyeV9jb2RlIiwidHJ5X2tleV9jb2RlX2xlZnQiLCJ0cnlfa2V5X2NvZGVfcmlnaHQiLCJ0cnlfa2V5X2NvZGVfbnVtcGFkIiwidHJ5X2tleV9jb2RlX25vcm1hbCIsIm1ha2VfdW5pZGVudGlmaWVkIiwicnVuX25leHQiLCJ2YWx1ZSIsInN5bWJvbCIsIm9mX2V2ZW50IiwiY2hhcl9vZl9pbnQiLCJlbXB0eV9zdHJpbmciLCJub25lIiwib2ZfZXZlbnQkMCIsImVsZW1lbnQkMCIsInRhZ2dlZCIsInQxMDUiLCJvcHRfdGFnZ2VkIiwidGFnZ2VkRXZlbnQiLCJvcHRfdGFnZ2VkRXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjIiwicmVxIiwibm93IiwibGFzdCIsImR0IiwiZHQkMCIsImhhc1B1c2hTdGF0ZSIsImhhc1BsYWNlaG9sZGVyIiwiaGFzUmVxdWlyZWQiLCJvdmVyZmxvd19saW1pdCIsInNldFRpbWVvdXQiLCJsb29wIiwicmVtYWluIiwic3RlcCIsImNiIiwiY2xlYXJUaW1lb3V0IiwianNfYXJyYXlfb2ZfY29sbGVjdGlvbiIsImZvcm1EYXRhIiwiZm9ybURhdGFfZm9ybSIsImhhdmVfY29udGVudCIsImZvcm1fZWxlbWVudHMiLCJpJDIiLCJzdGgiLCJuYW1lJDEiLCJsaXN0IiwiZmlsZSIsImFwcGVuZCIsImZvcm1fY29udGVudHMiLCJmb3JtX2VsdCIsImVtcHR5X2Zvcm1fY29udGVudHMiLCJwb3N0X2Zvcm1fY29udGVudHMiLCJjb250ZW50cyIsImdldF9mb3JtX2NvbnRlbnRzIiwicmVhZHlzdGF0ZWNoYW5nZSIsInRpbWVvdXQiLCJ3b3JrZXIiLCJjcmVhdGUiLCJpbXBvcnRfc2NyaXB0cyIsInNjcmlwdHMiLCJzZXRfb25tZXNzYWdlIiwianNfaGFuZGxlciIsInBvc3RfbWVzc2FnZSIsIm1zZyIsIndlYlNvY2tldCIsImlzX3N1cHBvcnRlZCIsImRlZmF1bHRDb250ZXh0QXR0cmlidXRlcyIsIndlYmdsY29udGV4dGxvc3QiLCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsIndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IiLCJnZXRDb250ZXh0IiwiY3R4IiwiZ2V0Q29udGV4dFdpdGhBdHRyaWJ1dGVzIiwiYXR0cmlicyIsInJlZ2V4cCIsInJlZ2V4cF9jYXNlX2ZvbGQiLCJyZWdleHBfd2l0aF9mbGFnIiwiYmx1bnRfc3RyX2FycmF5X2dldCIsInN0cmluZ19tYXRjaCIsInNlYXJjaCIsInJlc19wcmUiLCJtYXRjaGVkX3N0cmluZyIsInIiLCJtYXRjaGVkX2dyb3VwIiwicXVvdGVfcmVwbF9yZSIsInF1b3RlX3JlcGwiLCJnbG9iYWxfcmVwbGFjZSIsInNfYnkiLCJyZXBsYWNlX2ZpcnN0IiwidDI5IiwiZmxhZ3MiLCJsaXN0X29mX2pzX2FycmF5IiwiaWR4JDEiLCJhY2N1IiwiaWR4JDAiLCJhY2N1JDAiLCJzcGxpdCIsImJvdW5kZWRfc3BsaXQiLCJxdW90ZV9yZSIsInF1b3RlIiwicmVnZXhwX3N0cmluZyIsInJlZ2V4cF9zdHJpbmdfY2FzZV9mb2xkIiwiaW50ZXJydXB0IiwicGx1c19yZSIsInVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIiwidXJsZGVjb2RlIiwidXJsZW5jb2RlIiwib3B0Iiwid2l0aF9wbHVzIiwiZGVmYXVsdF9odHRwX3BvcnQiLCJkZWZhdWx0X2h0dHBzX3BvcnQiLCJwYXRoX29mX3BhdGhfc3RyaW5nIiwiYXV4IiwiaiIsIndvcmQiLCJlbmNvZGVfYXJndW1lbnRzIiwiZGVjb2RlX2FyZ3VtZW50c19qc19zdHJpbmciLCJsZW4iLCJpbmRleCIsImRlY29kZV9hcmd1bWVudHMiLCJ1cmxfcmUiLCJmaWxlX3JlIiwidXJsX29mX2pzX3N0cmluZyIsImhhbmRsZSIsInByb3Rfc3RyaW5nIiwic3NsIiwicGF0aF9zdHIiLCJ1cmwiLCJ1cmxfb2Zfc3RyaW5nIiwic3RyaW5nX29mX3VybCIsImZyYWciLCJhcmdzIiwicGF0aCIsInBvcnQiLCJob3N0IiwiZnJhZyQwIiwiYXJncyQwIiwicGF0aCQwIiwicG9ydCQwIiwiaG9zdCQwIiwiZnJhZyQxIiwiYXJncyQxIiwicGF0aCQxIiwicHJvdG9jb2wiLCJwYXRoX3N0cmluZyIsImFyZ3VtZW50cyQwIiwiZ2V0X2ZyYWdtZW50IiwicmVzJDAiLCJzZXRfZnJhZ21lbnQiLCJ1IiwiYXNfc3RyaW5nIiwidXBkYXRlX2ZpbGUiLCJjb250ZW50Iiwib2MiLCJzZXRfY2hhbm5lbF9mbHVzaGVyIiwib3V0X2NoYW5uZWwiLCJmJDAiLCJzZXRfY2hhbm5lbF9maWxsZXIiLCJpbl9jaGFubmVsIiwibW91bnQiLCJwcmVmaXgiLCJ1bm1vdW50IiwianNfb2Zfb2NhbWxfdmVyc2lvbiIsImVtcHR5X3Jlc2l6ZV9vYnNlcnZlcl9vcHRpb25zIiwicmVzaXplT2JzZXJ2ZXIiLCJvYnNlcnZlIiwibm9kZSIsImJveCIsIm9icyIsInBlcmZvcm1hbmNlT2JzZXJ2ZXIiLCJlbnRyeV90eXBlcyIsImVtcHR5X211dGF0aW9uX29ic2VydmVyX2luaXQiLCJtdXRhdGlvbk9ic2VydmVyIiwiY2hpbGRfbGlzdCIsImF0dHJpYnV0ZXMiLCJjaGFyYWN0ZXJfZGF0YSIsInN1YnRyZWUiLCJhdHRyaWJ1dGVfb2xkX3ZhbHVlIiwiY2hhcmFjdGVyX2RhdGFfb2xkX3ZhbHVlIiwiYXR0cmlidXRlX2ZpbHRlciIsImsiLCJyZW1vdmUiLCJmaW5kIiwianNvbiIsInJldml2ZXIiLCJpbnB1dF9yZXZpdmVyIiwidW5zYWZlX2lucHV0IiwibWxJbnQ2NF9jb25zdHIiLCJvdXRwdXRfcmV2aXZlciIsIm91dHB1dCIsInN0cmluZ19vZl9uYW1lIiwibmFtZV9vZl9zdHJpbmciLCJyZ2Jfb2ZfbmFtZSIsInJnYiIsImhzbCIsInN0cmluZ19vZl90IiwiYiQwIiwiZyQwIiwiciQwIiwiYiQxIiwiZyQxIiwiciQxIiwiYiQyIiwiZyQyIiwiciQyIiwiYSQxIiwiaCQwIiwiaGV4X29mX3JnYiIsImJsdWUiLCJncmVlbiIsInJlZCIsImluX3JhbmdlIiwianNfdF9vZl9qc19zdHJpbmciLCJyZ2JfcmUiLCJyZ2JfcGN0X3JlIiwicmdiYV9yZSIsInJnYmFfcGN0X3JlIiwiaHNsX3JlIiwiaHNsYV9yZSIsImpzIiwiY24iLCJtbCIsImZhaWwiLCJyZV9yZ2IiLCJyZV9yZ2JfcGN0IiwicmVfaHNsIiwiaV9vZl9zX28iLCJmX29mX3MiLCJhbHBoYSIsInJlZCQwIiwiZ3JlZW4kMCIsImJsdWUkMCIsImFscGhhJDAiLCJyZWQkMSIsImdyZWVuJDEiLCJibHVlJDEiLCJhbHBoYSQxIiwic3RyaW5nX29mX3QkMCIsImYkMSIsImYkMiIsImYkMyIsImYkNCIsImYkNSIsImYkNiIsImYkNyIsImYkOCIsImYkOSIsImYkMTAiLCJmJDExIiwiZiQxMiIsImpzJDAiLCJtbCQwIiwicmUiLCJzdHJpbmdfb2ZfdCQxIiwianMkMSIsIm1sJDEiLCJsaXN0ZW4iLCJ0YXJnZXQiLCJzdG9wX2xpc3RlbiIsInhtbG5zIiwiY3JlYXRlQWx0R2x5cGgiLCJjcmVhdGVBbHRHbHlwaERlZiIsImNyZWF0ZUFsdEdseXBoSXRlbSIsImNyZWF0ZUFuaW1hdGUiLCJjcmVhdGVBbmltYXRlQ29sb3IiLCJjcmVhdGVBbmltYXRlTW90aW9uIiwiY3JlYXRlQW5pbWF0ZVRyYW5zZm9ybSIsImNyZWF0ZUNpcmNsZSIsImNyZWF0ZUNsaXBQYXRoIiwiY3JlYXRlQ3Vyc29yIiwiY3JlYXRlRGVmcyIsImNyZWF0ZURlc2MiLCJjcmVhdGVFbGxpcHNlIiwiY3JlYXRlRmlsdGVyIiwiY3JlYXRlRm9udCIsImNyZWF0ZUZvbnRGYWNlIiwiY3JlYXRlRm9udEZhY2VGb3JtYXQiLCJjcmVhdGVGb250RmFjZU5hbWUiLCJjcmVhdGVGb250RmFjZVNyYyIsImNyZWF0ZUZvbnRGYWNlVXJpIiwiY3JlYXRlRm9yZWlnbk9iamVjdCIsImNyZWF0ZUciLCJjcmVhdGVHbHlwaCIsImNyZWF0ZUdseXBoUmVmIiwiY3JlYXRlaGtlcm4iLCJjcmVhdGVJbWFnZSIsImNyZWF0ZUxpbmVFbGVtZW50IiwiY3JlYXRlTGluZWFyRWxlbWVudCIsImNyZWF0ZU1hc2siLCJjcmVhdGVNZXRhRGF0YSIsImNyZWF0ZU1pc3NpbmdHbHlwaCIsImNyZWF0ZU1QYXRoIiwiY3JlYXRlUGF0aCIsImNyZWF0ZVBhdHRlcm4iLCJjcmVhdGVQb2x5Z29uIiwiY3JlYXRlUG9seWxpbmUiLCJjcmVhdGVSYWRpYWxncmFkaWVudCIsImNyZWF0ZVJlY3QiLCJjcmVhdGVTZXQiLCJjcmVhdGVTdG9wIiwiY3JlYXRlU3ZnIiwiY3JlYXRlU3dpdGNoIiwiY3JlYXRlU3ltYm9sIiwiY3JlYXRlVGV4dEVsZW1lbnQiLCJjcmVhdGVUZXh0cGF0aCIsImNyZWF0ZVRyZWYiLCJjcmVhdGVUc3BhbiIsImNyZWF0ZVVzZSIsImNyZWF0ZVZpZXciLCJjcmVhdGV2a2VybiIsInN2Z19lbGVtZW50IiwidDgiLCJhbHRHbHlwaCIsImFsdEdseXBoRGVmIiwiYWx0R2x5cGhJdGVtIiwiYW5pbWF0ZSIsImFuaW1hdGVDb2xvciIsImFuaW1hdGVNb3Rpb24iLCJhbmltYXRlVHJhbnNmb3JtIiwiY2lyY2xlIiwiY2xpcFBhdGgiLCJjdXJzb3IiLCJkZWZzIiwiZGVzYyIsImVsbGlwc2UiLCJmaWx0ZXIiLCJmb250IiwiZm9udEZhY2UiLCJmb250RmFjZUZvcm1hdCIsImZvbnRGYWNlTmFtZSIsImZvbnRGYWNlU3JjIiwiZm9udEZhY2VVcmkiLCJmb3JlaWduT2JqZWN0IiwiZ2x5cGgiLCJnbHlwaFJlZiIsImhrZXJuIiwiaW1hZ2UiLCJsaW5lRWxlbWVudCIsImxpbmVhckVsZW1lbnQiLCJtZXRhRGF0YSIsIm1pc3NpbmdHbHlwaCIsIm1QYXRoIiwicGF0dGVybiIsInBvbHlnb24iLCJwb2x5bGluZSIsInJhZGlhbGdyYWRpZW50IiwicmVjdCIsInN0b3AiLCJzdmciLCJzd2l0Y2gkMCIsInRleHRFbGVtZW50IiwidGV4dHBhdGgiLCJ0cmVmIiwidHNwYW4iLCJ1c2UiLCJ2aWV3Iiwidmtlcm4iLCJ3aXRoQ3JlZGVudGlhbHMiLCJldmVudFNvdXJjZSIsImV2ZW50U291cmNlX29wdGlvbnMiLCJjb25zb2xlIiwiZW1wdHlfcG9zaXRpb25fb3B0aW9ucyIsImdlb2xvY2F0aW9uIiwiZW1wdHlfaW50ZXJzZWN0aW9uX29ic2VydmVyX29wIiwiaW50ZXJzZWN0aW9uT2JzZXJ2ZXJfdW5zYWZlIiwib2JqZWN0X29wdGlvbnMiLCJvcHRpb25zJDEiLCJvcHRpb25zJDIiLCJpbnRsIiwiY29sbGF0b3JfY29uc3RyIiwiZGF0ZVRpbWVGb3JtYXRfY29uc3RyIiwibnVtYmVyRm9ybWF0X2NvbnN0ciIsInBsdXJhbFJ1bGVzX2NvbnN0ciIsImR1cmF0aW9uX29mX2pzb28iLCJkdXJhdGlvbl90b19qc29vIiwiZCIsImRheXMiLCJtb250aHMiLCJ5ZWFycyIsImRhdGVfb2ZfanNvbyIsImQkMCIsImQkMSIsImRheSIsIm1vbnRoIiwieWVhciIsImRhdGVfdG9fanNvbyIsImV2dCIsInBvcyIsInYiLCJpbmZvIiwiZXZlbnQiLCJldmVudF9tYW5hZ2VyIiwiZXhlY3V0ZV9vcl90aHJvd19lcnJvciIsImYiLCJ0aHJvd19lcnJvciIsImRlc2NyIiwicG9zJDAiLCJwb3MkMSIsImVtYmVkX3ByaXNlX2VuX2NoYXJnZSIsIngiLCJ4JDAiLCJ4JDEiLCJ4JDIiLCJ4JDMiLCJ4JDQiLCJlbWJlZF9zaXR1YXRpb25fb2JsaWdhdGlvbl9zY28iLCJlbWJlZF9wcmlzZV9lbl9jb21wdGUiLCJlbWJlZF92ZXJzZW1lbnRfYWxsb2NhdGlvbnMiLCJlbWJlZF9lbGVtZW50X3ByZXN0YXRpb25zX2ZhbWkiLCJ4JDUiLCJ4JDYiLCJ4JDciLCJlbWJlZF9jb2xsZWN0aXZpdGUiLCJ4JDgiLCJlbWJlZF9hbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXYiLCJlbWJlZF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmllIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmllIiwiZW1iZWRfc21pYyIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyIsImVtYmVkX2ludGVyZmFjZV9hbGxvY2F0aW9uc19mYSIsImVtYmVkX2VuZmFudF9lbnRyZWUiLCJlbWJlZF9lbmZhbnQiLCJlbWJlZF9lbmZhbnRfbGVfcGx1c19hZ2UiLCJlbWJlZF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIiwiZW1iZWRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pIiwiZW1iZWRfYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2JDAiLCJlbWJlZF9lbmZhbnRfbGVfcGx1c19hZ2VfaW4iLCJlbWJlZF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2kiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWUkMCIsImVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZSQwIiwiZW1iZWRfc21pY19pbiIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyQwIiwiZW1iZWRfaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhJDAiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAiLCJhZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzMiLCJlbmZhbnRfbGVfcGx1c19hZ2UiLCJlbmZhbnRfbGVfcGx1c19hZ2VfaW4iLCJlbmZhbnRzIiwicG90ZW50aWVsX3BsdXNfYWdlXzEiLCJwb3RlbnRpZWxfcGx1c19hZ2VfMiIsImxlX3BsdXNfYWdlIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfIiwiZGF0ZV9uYWlzc2FuY2UiLCJkYXRlX2NvdXJhbnRlIiwiYW5uZWVzIiwiZXN0X2luZmVyaWV1cl9vdV9lZ2FsIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaSIsImVzdF9zdXBlcmlldXIiLCJzbWljIiwic21pY19pbiIsInJlc2lkZW5jZSIsImJydXRfaG9yYWlyZSIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSIsIm1vbnRhbnQiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiIsImFnZV9sNTEyXzNfMiIsInNtaWNfZG90X2RhdGVfY291cmFudGUiLCJzbWljX2RvdF9yZXNpZGVuY2UiLCJyZXN1bHQiLCJzbWljX2RvdF9icnV0X2hvcmFpcmUiLCJyZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSIsInBsYWZvbmRfbDUxMl8zXzIiLCJlbmZhbnQiLCJjb25kaXRpb25zX2hvcnNfYWdlIiwiZHJvaXRfb3V2ZXJ0IiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4iLCJwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm0iLCJwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm0kMCIsInJlc3NvdXJjZXNfbWVuYWdlIiwiZW5mYW50c19hX2NoYXJnZSIsImF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZSIsInByaXNlX2VuX2NvbXB0ZSIsIm5vbWJyZV9lbmZhbnRzX2FsaW5lYV8yX2w1MjFfMyIsInZlcnNpb25fYXZyaWxfMjAwOF9kb3RfYWdlX21pbiIsImJtYWZfZG90X2RhdGVfY291cmFudGUiLCJyZXN1bHQkMCIsImJtYWZfZG90X21vbnRhbnQiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXQiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9wcmUiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXMiLCJyZXN1bHQkMSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RybyIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2NvbiIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZyIsImVuZmFudF9sZV9wbHVzX2FnZV9kb3RfZW5mYW50cyIsInJlc3VsdCQyIiwiZW5mYW50X2xlX3BsdXNfYWdlX2RvdF9sZV9wbHVzIiwiZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfIiwiZXN0X2VuZmFudF9sZV9wbHVzX2FnZSIsInBsYWZvbmRfaV9pX2Q1MjFfMyIsInBsYWZvbmRfaV9kNTIxXzMiLCJkcm9pdF9vdXZlcnRfY29tcGxlbWVudCIsImRyb2l0X291dmVydF9mb3JmYWl0YWlyZSIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3F1YXRyaWVtZSIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzaWVtZSIsIm5vbWJyZV90b3RhbF9lbmZhbnRzIiwic3VtMSIsInN1bTIiLCJub21icmVfbW95ZW5fZW5mYW50cyIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3ByZW1pZXJfZSIsImRyb2l0X291dmVydF9iYXNlIiwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb24iLCJhbGxvY2F0aW9uIiwiY29tcGxlbWVudF9kZWdyZXNzaWYiLCJtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlX3Bhcl8iLCJtb250YW50X2luaXRpYWxfYmFzZV90cm9pc2llbWUkMCIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX2RldXhpZW1lXyIsInJhcHBvcnRfZW5mYW50c190b3RhbF9tb3llbiIsIm1vbnRhbnRfaW5pdGlhbF9tZXRyb3BvbGVfbWFqbyIsIm1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmUiLCJtb250YW50X2luaXRpYWxfYmFzZSIsIm1vbnRhbnRfaW5pdGlhbF9tYWpvcmF0aW9uIiwibW9udGFudF92ZXJzZV9jb21wbGVtZW50X3BvdXJfIiwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybmVlX2JhIiwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybmVlX21hIiwibW9udGFudF92ZXJzZV9iYXNlIiwibW9udGFudF92ZXJzZV9tYWpvcmF0aW9uIiwibW9udGFudF9iYXNlX2NvbXBsZW1lbnRfcG91cl9iIiwibW9udGFudF92ZXJzZV9jb21wbGVtZW50X3BvdXJfJDAiLCJtb250YW50X3ZlcnNlIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsIiwiaV9kYXRlX2NvdXJhbnRlIiwiaV9lbmZhbnRzIiwiaV9yZXNzb3VyY2VzX21lbmFnZSIsImlfcmVzaWRlbmNlIiwiaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3BlIiwiaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3BlJDAiLCJpX2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8iLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9wZXIiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9wZXIkMCIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlcyIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlcyQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0IiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfZW5mIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfYXZhIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9uIiwiaV9tb250YW50X3ZlcnNlIiwicHJpc2VfZW5fY2hhcmdlX3RvX2pzb28iLCJhcmciLCJhcmckMCIsImFyZyQxIiwiYXJnJDIiLCJhcmckMyIsInByaXNlX2VuX2NoYXJnZV9vZl9qc29vIiwiY29ucyIsInNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXyIsInNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXyQwIiwicHJpc2VfZW5fY29tcHRlX3RvX2pzb28iLCJwcmlzZV9lbl9jb21wdGVfb2ZfanNvbyIsInZlcnNlbWVudF9hbGxvY2F0aW9uc190b19qc29vIiwidmVyc2VtZW50X2FsbG9jYXRpb25zX29mX2pzb28iLCJlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJhcmckNCIsImFyZyQ1IiwiYXJnJDYiLCJlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMkMCIsImNvbGxlY3Rpdml0ZV90b19qc29vIiwiYXJnJDciLCJjb2xsZWN0aXZpdGVfb2ZfanNvbyIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDAiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX3QiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX28iLCJzbWljX3RvX2pzb28iLCJzbWljX29mX2pzb28iLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMCIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCQwIiwiZW5mYW50X2VudHJlZV90b19qc29vIiwiZW5mYW50X2VudHJlZSIsImVuZmFudF9lbnRyZWVfb2ZfanNvbyIsImVuZmFudF90b19qc29vIiwiZW5mYW50X29mX2pzb28iLCJlbmZhbnRfbGVfcGx1c19hZ2VfdG9fanNvbyIsImVuZmFudF9sZV9wbHVzX2FnZV9vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiZnVuY3Rpb25faW5wdXQwIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qIiwiYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwJDEiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAkMiIsImVuZmFudF9sZV9wbHVzX2FnZV9pbl90b19qc29vIiwiZW5mYW50X2xlX3BsdXNfYWdlX2luX29mX2pzb28iLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2oiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2oiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMSIsInZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291XyQyIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pJDAiLCJzbWljX2luX3RvX2pzb28iLCJzbWljX2luX29mX2pzb28iLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMSIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQyIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsJDEiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwkMiIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQzIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDMiLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMyIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCQzIiwiZW1iZWRfdHlwZV9wcmV0IiwiZW1iZWRfdGl0dWxhaXJlX3ByZXQiLCJlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgiLCJlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjgiLCJlbWJlZF9hbWVsaW9yZV9wYXJfb2NjdXBhbnQiLCJlbWJlZF9saW1pdGVfdHJhbmNoZSIsImVtYmVkX2xpbWl0ZV90cmFuY2hlX2RlY2ltYWwiLCJlbWJlZF9wcmVzdGF0aW9uX3JlY3VlIiwiZW1iZWRfcGFyZW50X291X2F1dHJlIiwiZW1iZWRfc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlIiwiZW1iZWRfcGFyZW50ZSIsImVtYmVkX2RhdGVfZGVfbmFpc3NhbmNlX291X21vaSIsImVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uIiwiZW1iZWRfcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluIiwiZW1iZWRfdmVyc2VtZW50X2EiLCJlbWJlZF9kZXBlbnNlX2xvZ2VtZW50IiwiZW1iZWRfbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZSIsImVtYmVkX3R5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdCIsImVtYmVkX2FjY29yZF9maW5hbmNlbWVudF9yZXByZSIsImVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbCIsImVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGUiLCJlbWJlZF90eXBlX2xvZ2VtZW50X2ZveWVyIiwiZW1iZWRfY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xvIiwiZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjIiwiZW1iZWRfcHJpc2VfZW5fY2hhcmdlX2VuZmFudCIsImVtYmVkX2NvbnZlbnRpb25fYmFpbGxldXJfc29jaSIsImVtYmVkX2NvbnZlbnRpb25fYV9uX2hfYSIsImVtYmVkX3BlcnNvbm5lX3NvdXNfbG9jYXRpb24iLCJlbWJlZF9wYXRyaW1vaW5lIiwiZW1iZWRfY29uZGl0aW9uc19ldHJhbmdlcnMiLCJlbWJlZF9wZXJzb25uZV92aXZhbnRfaGFiaXR1ZWwiLCJlbWJlZF9lbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm4iLCJlbWJlZF9lbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW0iLCJlbWJlZF9yZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm4iLCJlbWJlZF9jb250cmlidXRpb25zX3NvY2lhbGVzX2EiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UiLCJlbWJlZF9jYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXIiLCJlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW0iLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkMCIsImVtYmVkX2NhbGN1bF9ub21icmVfcGFydHNfYWNjZSIsImVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZSQxIiwiZW1iZWRfdHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDIiLCJlbWJlZF9pbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW4iLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkMCIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQxIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDIiLCJlbWJlZF9vdXZlcnR1cmVfZHJvaXRzX3JldHJhaXQiLCJlbWJlZF9pbXBheWVfZGVwZW5zZV9sb2dlbWVudCIsImVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZSIsImVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZSQwIiwiZW1iZWRfbmV1Zl9vdV9hbmNpZW4iLCJlbWJlZF90cmFuY2hlX3JldmVudSIsImVtYmVkX3RyYW5jaGVfcmV2ZW51X2RlY2ltYWwiLCJlbWJlZF9hdXRyZV9wZXJzb25uZV9hX2NoYXJnZSIsImVtYmVkX2RhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZSIsImVtYmVkX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbCIsImVtYmVkX3ByZXQiLCJlbWJlZF9sb2dlbWVudF9mb3llciIsImVtYmVkX2VuZmFudF9wcmVzdGF0aW9uc19mYW1pbCIsImVtYmVkX3R5cGVfYmFpbGxldXIiLCJlbWJlZF9sb3VlX291X3NvdXNfbG91ZV9hX2Rlc18iLCJlbWJlZF9uYXRpb25hbGl0ZSIsImVtYmVkX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiIsImVtYmVkX2luZm9ybWF0aW9uc19wcmltZV9kZV9kZSIsImVtYmVkX3Byb3ByaWV0YWlyZSIsImVtYmVkX2VsaWdpYmlsaXRlX3ByZXN0YXRpb25zXyIsImVtYmVkX2RlbWFuZGV1ciIsImVtYmVkX2VuZmFudF9hX2NoYXJnZSIsImVtYmVkX2xvY2F0aW9uIiwiZW1iZWRfcGVyc29ubmVfYV9jaGFyZ2UiLCJlbWJlZF9jYXRlZ29yaWVfY2FsY3VsX2FfcF9sIiwiZW1iZWRfbW9kZV9vY2N1cGF0aW9uIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29uIiwiZW1iZWRfbG9nZW1lbnQiLCJlbWJlZF9tZW5hZ2UiLCJlbWJlZF9lbGlnaWJpbGl0ZV9haWRlc19wZXJzb24kMCIsImVtYmVkX2VsaWdpYmlsaXRlX2FpZGVfcGVyc29ubiQwIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sJDAiLCJlbWJlZF9lbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW0kMCIsImVtYmVkX3Jlc3NvdXJjZXNfYWlkZXNfcGVyc29ubiQwIiwiZW1iZWRfY29udHJpYnV0aW9uc19zb2NpYWxlc19hJDAiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkMyIsImVtYmVkX2NhbGN1bF9lcXVpdmFsZW5jZV9sb3llciQwIiwiZW1iZWRfY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtJDAiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkNCIsImVtYmVkX2NhbGN1bF9ub21icmVfcGFydHNfYWNjZSQwIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDUiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkNiIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQzIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDQiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkNSIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQ2IiwiZW1iZWRfb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0JDAiLCJlbWJlZF9pbXBheWVfZGVwZW5zZV9sb2dlbWVudF8iLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UkMSIsImVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZSQyIiwiZW1iZWRfZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfJDAiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AiLCJleG9uZXJlX2NzZyIsInRhdXhfY3JkcyIsImFpZGVfZmluYWxlIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltIiwicmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzIiwiY29uZGl0aW9uXzJfZHVfODMyXzI1Iiwibl9ub21icmVfcGFydHNfZDgzMl8yNSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNiIsInRyYW5jaGVzX3JldmVudXNfZDgzMl8yNiIsInRyYW5jaGUiLCJ0cmFuY2hlX2hhdXQiLCJ0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZfbXVsdGkiLCJyZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXMkMCIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyIsIm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2UiLCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGwiLCJsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmUiLCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X2Jhc2UiLCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X21ham9yYXQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8iLCJuX25vbWJyZV9wYXJ0c19kODMyXzExIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4iLCJkYXRlX25haXNzYW5jZV9hc3N1cmUiLCJhZ2Vfb3V2ZXJ0dXJlX2Ryb2l0IiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQiLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiIsIm1vZGVfb2NjdXBhdGlvbiIsImFpZGVfdmVyc2VlIiwibW9udGFudF9hcGwiLCJtb250YW50X2NoYXJnZXMiLCJkZXBlbnNlX2xvZ2VtZW50IiwibW9udGFudF9kZXR0ZSIsIm1vZGVfb2NjdXBhdGlvbl9pbXBheWUiLCJkZXBlbnNlX2xvZ2VtZW50X2JydXRlIiwidG90YWxfZWNoZWFuY2VzIiwibWVuc3VhbGl0ZSIsImxveWVyIiwidG90YWwiLCJtb250YW50X2xveWVyIiwiZGVwZW5zZV9sb2dlbWVudF9uZXR0ZSIsImVjaGVhbmNlX3ByZXRfbmV0dGUiLCJtZW5zdWFsaXRlX25ldHRlIiwiZWNoZWFuY2VfcHJldF9icnV0ZSIsIm1lbnN1YWxpdGVfYnJ1dGUiLCJsb3llcl9uZXQiLCJsb3llcl9icnV0Iiwic2V1aWxfaW1wYXllX2RlcGVuc2VfZGVfbG9nZW1lIiwibW9udGFudF9pbXBheWUiLCJhcnJvbmRpX2NlbnRhaW5lX3N1cGVyaWV1cmUiLCJ0cmFpdGVtZW50X251bF90b3V0X2xlX3RlbXBzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlIiwibG95ZXJfcHJpbmNpcGFsX2Jhc2UiLCJiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW4iLCJ6b25lIiwibG9nZW1lbnRfZXN0X2NoYW1icmUiLCJhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmUiLCJ0eXBlX2FpZGUiLCJjb2xvY2F0aW9uIiwicmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGUiLCJsb2dlbWVudF9tZXVibGVfZDg0Ml8yIiwiZnJhY3Rpb25fbDgzMl8zIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0IiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfbW9uIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODIzXzE2IiwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyIiwibW9udGFudF9taW5pbWFsX2FpZGVfZDgyM18xNiIsImxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbiIsInRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlIiwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9yMCIsIm11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fbG95ZSIsIm11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZiIsImxpbWl0ZSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kOCIsImFiYXR0ZW1lbnRfZm9yZmFpdGFpcmVfZDgyM18xNyIsImxveWVyX3JlZmVyZW5jZSIsInBsYWZvbmRfbG95ZXJfZDgyM18xNl8yIiwicGxhZm9uZF9zdXBwcmVzc2lvbl9kODIzXzE2IiwicGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNiIsImxveWVyX2VsaWdpYmxlIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kaW1pbnVlIiwicGFydGljaXBhdGlvbl9taW5pbWFsZSIsInJhcHBvcnRfbG95ZXJzIiwiYWlkZV9maW5hbGUkMCIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdCIsInRhdXhfbG95ZXJfZWxpZ2libGVfZm9ybXVsZSIsImNyZHMiLCJhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGkiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWIiLCJ0YXV4X2xveWVyX2VsaWdpYmxlX3RhdXhfYXJyb24iLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZHVjdGkiLCJ0YXV4X3ByaXNlX2NvbXB0ZV9yZXNzb3VyY2VzIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50IiwicGFydGljaXBhdGlvbl9yZXNzb3VyY2VzIiwicGFydGljaXBhdGlvbl9yZXNzb3VyY2VzJDAiLCJwYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlIiwiYWlkZV9maW5hbGVfZm9ybXVsZSIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQwIiwidHlwZV9sb2dlbWVudF9mb3llciIsImRhdGVfY29udmVudGlvbm5lbWVudCIsInJlZGV2YW5jZSIsImxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZSQwIiwiY29uZGl0aW9uXzJfZHVfODMyXzI1JDAiLCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzI0IiwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI0IiwicGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnIiwiY29lZmZpY2llbnRfcl9kODMyXzI1IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfY29uZGl0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbm9tYnJlIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfcmVzaWRlIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfbGltaXRhIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21iIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI3IiwiY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzIiwiZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUiLCJuX25vbWJyZV9wYXJ0c19kODMyXzI1JDAiLCJhbGxvY2F0aW9uX21lbnN1ZWxsZSIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yNyIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSQwIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDEiLCJjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW0kMiIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSQzIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDQiLCJkZW5vbWluYXRldXIiLCJkZW5vbWluYXRldXIkMCIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kOCIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGUiLCJhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW0iLCJlcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kOCQwIiwiYWlkZV9maW5hbGUkMSIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbSIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kOCQxIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDEiLCJtZW5zdWFsaXRlX3ByaW5jaXBhbGUiLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnQiLCJkYXRlX3NpZ25hdHVyZV9wcmV0IiwibG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuIiwiZGF0ZV9lbnRyZWVfbG9nZW1lbnQiLCJjb3Byb3ByaWV0ZSIsInNpdHVhdGlvbl9yODIyXzExXzEzXzE3IiwidHlwZV9wcmV0IiwiYW5jaWVubmV0ZV9sb2dlbWVudCIsInRhdXhfZnJhbmNzX3ZlcnNfZXVyb3MiLCJ0YXV4X3RyYW5jaGVfc3VwZXJpZXVyZV9kODMyXzEiLCJ0YXV4X3RyYW5jaGVfaW5mZXJpZXVyZV9kODMyXzEiLCJtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzEiLCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMkMCIsImFtZWxpb3JlX3Bhcl9vY2N1cGFudCIsImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MyQxIiwibW9udGFudF9taW5pbWFsX2FpZGVfZDgzMl8xMCIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8xMCIsImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDgzMiIsInJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfZDgzMl8xOCIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMCIsInBsYWZvbmRfc2lnbmF0dXJlIiwicGxhZm9uZF9lbnRyZWUiLCJwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2IiLCJwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2MiLCJtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzEkMCIsIm1lbnN1YWxpdGVfbWluaW1hbGUiLCJtZW5zdWFsaXRlX2VsaWdpYmxlIiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sIiwicmVzc291cmNlc19kZW1hbmRldXIiLCJyZXNzb3VyY2VzX2NvbmpvaW50IiwicGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVuIiwiZGVtYW5kZXVyX2V4ZXJjZV9hY3Rpdml0ZV9yZW11IiwiY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuIiwicGVyc29ubmVzX2FfY2hhcmdlIiwic2l0dWF0aW9uX2ZhbWlsaWFsZSIsImNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbSIsImRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzIiwiZGF0ZV9kZW1hbmRlX291X3JlZXhhbWVuX2Ryb2l0IiwicGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvIiwicGVyc29ubmUiLCJyZXNzb3VyY2VzX3BlcnNvbm5lc192aXZhbnRfaGEiLCJhYmF0dGVtZW50IiwibW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl83IiwibW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl84IiwicmVzc291cmNlc19wcmlzZXNfZW5fY29tcHRlIiwiYWNjIiwiZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpIiwiYWdlX2w1MTJfM18yJDAiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2MiLCJsb3llcl9wcmluY2lwYWwiLCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG95ZXJfcCIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVzc291ciIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYmVuZWZpYyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfZGF0ZV9jbyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfbm9tYnJlXyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfc2l0dWF0aSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfem9uZSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG9nZW1lbiIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYWdlZXNfbyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfdHlwZV9haSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfY29sb2NhdCIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVkdWN0aSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG9nZW1lbiQwIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZXNpZGVuIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9haWRlX2ZpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90cmFpdGVtIiwiaW5mb3MiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95IiwiY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDAiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMSIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQyIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDMiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kNCIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ1IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDYiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kNyIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ4IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDkiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMTAiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMTEiLCJtb250YW50X21pbmltYWxfZGVwZW5zZV9uZXR0ZV8iLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTUiLCJtb250YW50X21pbmltYWxfYWlkZV9kODQyXzE1IiwiZXF1aXZhbGVuY2VfbG95ZXIiLCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2UiLCJtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXMiLCJsb3llcl9taW5pbWFsIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kZXBlbnNlIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjIiwicmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2JhIiwiY2hhcmdlc19tZW5zdWVsbGVzX3ByZXQiLCJvcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc18iLCJjb2VmZmljaWVudF9kODQyXzEyIiwiY29lZmZpY2llbnRfZDg0Ml8xMSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xMiIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xMSIsIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4NDJfNiIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml82IiwiY29uZGl0aW9uX2Q4NDJfMTFfMyIsImRhdGVfY2FsY3VsIiwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyIiwic2V1aWxfbWluaW1hbF9yZXNzb3VyY2VzX21lbmFnIiwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyJDAiLCJyZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfc2UiLCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDIkMSIsInNldWlsX21pbmltYWxfZGVwZW5zZV9uZXR0ZV9taSIsInBsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzYiLCJkZXBlbnNlX25ldHRlX21pbmltYWxlJDAiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMiIsInJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaSIsImxvY2F0aW9uIiwibG9nZW1lbnRmb3llciIsInByb3ByaWV0YWlyZSIsImxvY2F0aW9uJDAiLCJwcm9wcmlldGFpcmUkMCIsImNhdGVnb3JpZV9jYWxjdWxfYXBsIiwicmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpIiwiYmFpbGxldXIiLCJwYXJhbTAiLCJ0cmFpdGVtZW50X2Zvcm11bGUiLCJ0cmFpdGVtZW50X2Zvcm11bGUkMCIsImxvZ2VtZW50X2ZveWVyIiwicmVzdWx0JDMiLCJyZXN1bHQkNCIsInRyYWl0ZW1lbnRfZm9ybXVsZSQxIiwic291c19jYWxjdWxfdHJhaXRlbWVudCIsImVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlXyIsIm1lbmFnZSIsImRlbWFuZGV1ciIsImNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcCIsImNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlIiwiZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jIiwicHJldCIsImRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfYyQwIiwic2V1aWxfbDgyMl8zX3BhcnRzX3Byb3ByaWV0ZSIsInNldWlsX2w4MjJfM19wYXJ0c191c3VmcnVpdCIsInNldWlsX2w4MjJfNV9wYXRyaW1vaW5lIiwidXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGUiLCJub21icmVfcGVyc29ubmVzX2xvZ2VtZW50Iiwic2VwdGllbWVfYWxpbmVhX2w4MjNfMV9hcHBsaWNhIiwiY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl85IiwiY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl84IiwiY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wJDAiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF8iLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF8kMCIsInBhdHJpbW9pbmVfdG90YWxfZGVtYW5kZXVyIiwiY29uZGl0aW9ucyIsImNvbmRpdGlvbl9uYXRpb25hbGl0ZSIsInBsYWZvbmRfaW5kaXZpZHVlbF9sODE1Xzlfc2VjdSIsImNvbmRpdGlvbl9sb2dlbWVudF9sb2NhdGlvbl90aSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZSQwIiwidXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGUkMCIsInBhcnRzIiwicGFydHMkMCIsInBhcnRzJDEiLCJwYXJ0cyQyIiwiY29uZGl0aW9uX2xvZ2VtZW50X21vZGVfb2NjdXBhIiwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfbWluIiwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2UkMCIsImFnZV9sMTYxXzE3XzJfc2VjdSIsInByZXN0YXRpb24iLCJjb25kaXRpb25fb3V2ZXJ0dXJlX2w4MjJfMTBfcGUiLCJhZ2VfbDM1MV84XzFfc2VjdSIsImVsaWdpYmlsaXRlX2xvZ2VtZW50IiwicGVyc29ubmVfYV9jaGFyZ2UiLCJwYXJlbnQiLCJjb25kaXRpb25fMl9yODIzXzQiLCJlbGlnaWJpbGl0ZSIsInByaXNlX2VuX2NvbXB0ZV9wZXJzb25uZV9hX2NoYSIsInBlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fYyIsImNvZWZmIiwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlIiwibm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSIsImluZm9ybWF0aW9ucyIsImRhdGVfZW1tZW5hZ2VtZW50IiwiZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50IiwiZGVsYWlfYXByZXNfZW1tZW5hZ2VtZW50X2w4MjNfIiwiY29uZGl0aW9uX3JhbmdfZW5mYW50IiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9tZW5hZ2UiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2RlbWFuZGV1ciIsImVsaWdpYmlsaXRlX2FwbF9kb3RfZGF0ZV9jb3VyYSIsImVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uXyIsImVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uXyQwIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2VudHJlIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhJDAiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2VsaWdpYmlsaXQiLCJkYXRlX25haXNzYW5jZV9vdV9ncm9zc2Vzc2UiLCJjb25kaXRpb25fcGVyaW9kZV9kZW1lbmFnZW1lbnQiLCJwbGFmb25kX2Q4MjNfMjIiLCJtb250YW50X3ByaW1lX2RlbWVuYWdlbWVudCIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiIsImJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbCIsImR1cmVlX2w4NDFfMV8zIiwibF84NDFfMV82X2FwcGxpY2FibGUiLCJsXzg0MV8xXzJfYXBwbGljYWJsZSIsImxfODQxXzFfMV9hcHBsaWNhYmxlIiwiY29uZGl0aW9uX2FjY2Vzc2lvbl9wcm9wcmlldGUiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9tZW5hZ2UiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kZW1hbmQiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kYXRlX2MiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXQiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXQkMCIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2VsaWdpYiIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X25vbWJyZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvZWZmaSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdCQxIiwiZWxpZ2liaWxpdGVfZGlzcG9zaXRpb25zX2NvbW11IiwiZGF0ZV9tYXJpYWdlIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDAiLCJkYXRlX2FjY29yZCIsImVsaWdpYmlsaXRlX2w4NDFfMiIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSIsImNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfMSIsImNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfNiIsImxvZ2VtZW50X3NpdHVlX2NvbW11bmVfZGVzZXF1aSIsInByb3ByaWV0ZSIsImNvbnZlbnRpb24iLCJjb252ZW50aW9uJDAiLCJjb25kaXRpb25fbG9nZW1lbnRfYmFpbGxldXIiLCJwcm9wcmlldGUkMCIsImNvbmRpdGlvbl9sb2dlbWVudF9wcmV0IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaSIsInJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jbyIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiQxIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDIiLCJlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW4kMyIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiQ0IiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDUiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkMCIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQxIiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDIiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkMyIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQ0IiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQxIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDIiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkMyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQ0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkNiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQ3IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDgiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ0IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDUiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkNiIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ3IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDgiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkOSIsImFpZGVfZmluYWxlX2FwbCIsImFpZGVfZmluYWxlX2FsIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nIiwibWVuYWdlX3NhbnNfZW5mYW50c19nYXJkZV9hbHRlIiwiY2FsY3VsZXR0ZV9kb3RfbWVuYWdlIiwiY2FsY3VsZXR0ZV9kb3RfZGVtYW5kZXVyIiwiY2FsY3VsZXR0ZV9kb3RfZGF0ZV9jb3VyYW50ZSIsImNhbGN1bGV0dGVfZG90X3Jlc3NvdXJjZXNfbWVuYSIsImNhbGN1bGV0dGVfZG90X2VsaWdpYmlsaXRlIiwiY2FsY3VsZXR0ZV9kb3RfYWlkZV9maW5hbGVfZm9yIiwiY2FsY3VsZXR0ZV9kb3RfdHJhaXRlbWVudF9haWRlIiwiY2FsY3VsZXR0ZV9kb3RfY29lZmZpY2VudHNfZW5mIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlJDAiLCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWUkMSIsImNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZSQyIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlJDMiLCJ0eXBlX3ByZXRfdG9fanNvbyIsInR5cGVfcHJldF9vZl9qc29vIiwidGl0dWxhaXJlX3ByZXRfdG9fanNvbyIsInRpdHVsYWlyZV9wcmV0X29mX2pzb28iLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNV8iLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNV8kMCIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfdCIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfbyIsImFtZWxpb3JlX3Bhcl9vY2N1cGFudF90b19qc29vIiwiYW1lbGlvcmVfcGFyX29jY3VwYW50X29mX2pzb28iLCJsaW1pdGVfdHJhbmNoZV90b19qc29vIiwibGltaXRlX3RyYW5jaGVfb2ZfanNvbyIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfdG9fanNvbyIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfb2ZfanNvbyIsInByZXN0YXRpb25fcmVjdWVfdG9fanNvbyIsInByZXN0YXRpb25fcmVjdWVfb2ZfanNvbyIsInBhcmVudF9vdV9hdXRyZV90b19qc29vIiwicGFyZW50X291X2F1dHJlX29mX2pzb28iLCJzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfdG9fanMiLCJzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfb2ZfanMiLCJwYXJlbnRlX3RvX2pzb28iLCJwYXJlbnRlX29mX2pzb28iLCJkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2ciLCJkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2ckMCIsInpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28iLCJ6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vIiwicGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvJDAiLCJ2ZXJzZW1lbnRfYV90b19qc29vIiwidmVyc2VtZW50X2Ffb2ZfanNvbyIsImRlcGVuc2VfbG9nZW1lbnRfdG9fanNvbyIsImRlcGVuc2VfbG9nZW1lbnRfb2ZfanNvbyIsIm1vZGVfb2NjdXBhdGlvbl9pbXBheWVfdG9fanNvbyIsIm1vZGVfb2NjdXBhdGlvbl9pbXBheWVfb2ZfanNvbyIsInR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sbyIsInR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sbyQwIiwiYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFuIiwiYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFuJDAiLCJ0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW4iLCJ0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW4kMCIsInNpdHVhdGlvbl9mYW1pbGlhbGVfdG9fanNvbyIsInNpdHVhdGlvbl9mYW1pbGlhbGVfb2ZfanNvbyIsInR5cGVfbG9nZW1lbnRfZm95ZXJfdG9fanNvbyIsInR5cGVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvbyIsImNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbCIsImNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbCQwIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wJDAiLCJwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X3RvX2pzb28iLCJwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X29mX2pzb28iLCJjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbF90b18iLCJjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCIsImNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX29mXyIsImNvbnZlbnRpb25fYV9uX2hfYV90b19qc29vIiwiY29udmVudGlvbl9hX25faF9hIiwiY29udmVudGlvbl9hX25faF9hX29mX2pzb28iLCJwZXJzb25uZV9zb3VzX2xvY2F0aW9uX3RvX2pzb28iLCJwZXJzb25uZV9zb3VzX2xvY2F0aW9uIiwicGVyc29ubmVfc291c19sb2NhdGlvbl9vZl9qc29vIiwicGF0cmltb2luZV90b19qc29vIiwicGF0cmltb2luZSIsInBhdHJpbW9pbmVfb2ZfanNvbyIsImNvbmRpdGlvbnNfZXRyYW5nZXJzX3RvX2pzb28iLCJjb25kaXRpb25zX2V0cmFuZ2VycyIsImNvbmRpdGlvbnNfZXRyYW5nZXJzX29mX2pzb28iLCJwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnQiLCJwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnQkMCIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQwIiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sJDAiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMCIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQwIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fJDAiLCJ0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUiLCJ0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUkMCIsImluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiIsImluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDAiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveSQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV90b19qIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9vZl9qIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfdG9fanNvIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfb2ZfanNvIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF90IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9vIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDAiLCJuZXVmX291X2FuY2llbl90b19qc29vIiwibmV1Zl9vdV9hbmNpZW5fb2ZfanNvbyIsInRyYW5jaGVfcmV2ZW51X3RvX2pzb28iLCJ0cmFuY2hlX3JldmVudSIsInRyYW5jaGVfcmV2ZW51X29mX2pzb28iLCJ0cmFuY2hlX3JldmVudV9kZWNpbWFsX3RvX2pzb28iLCJ0cmFuY2hlX3JldmVudV9kZWNpbWFsIiwidHJhbmNoZV9yZXZlbnVfZGVjaW1hbF9vZl9qc29vIiwiYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvIiwiYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UiLCJhdXRyZV9wZXJzb25uZV9hX2NoYXJnZV9vZl9qc28iLCJkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGUiLCJkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGUkMCIsInByZXRfdG9fanNvbyIsInByZXRfb2ZfanNvbyIsImxvZ2VtZW50X2ZveWVyX3RvX2pzb28iLCJsb2dlbWVudF9mb3llcl9vZl9qc29vIiwiZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfIiwiZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc18kMCIsInR5cGVfYmFpbGxldXJfdG9fanNvbyIsInR5cGVfYmFpbGxldXJfb2ZfanNvbyIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXyIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXyQwIiwibmF0aW9uYWxpdGVfdG9fanNvbyIsIm5hdGlvbmFsaXRlX29mX2pzb28iLCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF90b18iLCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl8iLCJpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2UiLCJpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2UkMCIsInByb3ByaWV0YWlyZV90b19qc29vIiwicHJvcHJpZXRhaXJlX29mX2pzb28iLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMCIsImRlbWFuZGV1cl90b19qc29vIiwiZGVtYW5kZXVyX29mX2pzb28iLCJlbmZhbnRfYV9jaGFyZ2VfdG9fanNvbyIsImVuZmFudF9hX2NoYXJnZSIsImVuZmFudF9hX2NoYXJnZV9vZl9qc29vIiwibG9jYXRpb25fdG9fanNvbyIsImxvY2F0aW9uX29mX2pzb28iLCJwZXJzb25uZV9hX2NoYXJnZV90b19qc29vIiwicGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfdG9fanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfb2ZfanNvbyIsIm1vZGVfb2NjdXBhdGlvbl90b19qc29vIiwibW9kZV9vY2N1cGF0aW9uX29mX2pzb28iLCJlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV8kMCIsImxvZ2VtZW50X3RvX2pzb28iLCJsb2dlbWVudCIsImxvZ2VtZW50X29mX2pzb28iLCJtZW5hZ2VfdG9fanNvbyIsIm1lbmFnZV9vZl9qc29vIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDEiLCJlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV8kMiIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQxIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDIiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wkMSIsInJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbCQyIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wJDEiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMiIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQxIiwiY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZvJDIiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTAiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8kMSIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQyIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDExIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDEyIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDEzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDEiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2MkMiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQxIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjJDIiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkMSIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveSQyIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fJDAiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX3QiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX28iLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl90b18iLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl9vZl8iLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2kkMCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyQxIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDIiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMSIsImVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaSQyIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wJDMiLCJjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm8kMyIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE1IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE2IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE3IiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sJDMiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvYyQzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95JDMiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MkMyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxOCIsImVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlXyQzIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDMiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ckMyIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCJdLCJzb3VyY2VzIjpbIi9idWlsdGluLytpbnQ2NC5qcyIsIi9idWlsdGluLyttbEJ5dGVzLmpzIiwiL2J1aWx0aW4vK2ZhaWwuanMiLCIvYnVpbHRpbi8rc3RkbGliLmpzIiwiL2J1aWx0aW4vK3N5cy5qcyIsIi9idWlsdGluLytiYWNrdHJhY2UuanMiLCIvYnVpbHRpbi8ranNsaWIuanMiLCIvYnVpbHRpbi8rZm9ybWF0LmpzIiwiL2J1aWx0aW4vK2llZWVfNzU0LmpzIiwiL2J1aWx0aW4vK2VmZmVjdC5qcyIsIi9idWlsdGluLytmc19ub2RlLmpzIiwiL2J1aWx0aW4vK2ZzLmpzIiwiL2J1aWx0aW4vK3VuaXguanMiLCIvYnVpbHRpbi8rZnNfZmFrZS5qcyIsIi9idWlsdGluLytuYXQuanMiLCIvYnVpbHRpbi8rZ3JhcGhpY3MuanMiLCIvYnVpbHRpbi8rcnVudGltZV9ldmVudHMuanMiLCIvYnVpbHRpbi8rbWFyc2hhbC5qcyIsIi9idWlsdGluLytpby5qcyIsIi9idWlsdGluLytnYy5qcyIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvemFyaXRoX3N0dWJzX2pzL2JpZ2ludGVnZXIuanMiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL3phcml0aF9zdHVic19qcy9ydW50aW1lLmpzIiwiL2J1aWx0aW4vK2JpZ2FycmF5LmpzIiwiL2J1aWx0aW4vK3BhcnNpbmcuanMiLCIvYnVpbHRpbi8raW50cy5qcyIsIi9idWlsdGluLytoYXNoLmpzIiwiL2J1aWx0aW4vK29iai5qcyIsIi9idWlsdGluLytkb21haW4uanMiLCIvYnVpbHRpbi8rY29tcGFyZS5qcyIsIi9idWlsdGluLytqc2xpYl9qc19vZl9vY2FtbC5qcyIsIi9idWlsdGluLytiaWdzdHJpbmcuanMiLCIvYnVpbHRpbi8rbWQ1LmpzIiwiL2J1aWx0aW4vK3N0ci5qcyIsIi9idWlsdGluLytsZXhpbmcuanMiLCIvYnVpbHRpbi8rYXJyYXkuanMiLCIvYnVpbHRpbi8rc3luYy5qcyIsIi9idWlsdGluLyt3ZWFrLmpzIiwiL2J1aWx0aW4vK3BybmcuanMiLCIvYnVpbHRpbi8renN0ZC5qcyIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FtbGludGVybmFsRm9ybWF0QmFzaWNzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxBdG9taWMubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0ZGxpYi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcGVydmFzaXZlcy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZWl0aGVyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9vYmoubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbExhenkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2xhenkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3NlcS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvb3B0aW9uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9yZXN1bHQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2Jvb2wubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NoYXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3VjaGFyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9saXN0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9pbnQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2J5dGVzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zdHJpbmcubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3VuaXQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL21hcnNoYWwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2FycmF5Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9mbG9hdC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaW50MzIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2ludDY0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9uYXRpdmVpbnQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2xleGluZy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcGFyc2luZy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc2V0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9tYXAubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0YWNrLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9xdWV1ZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc3RyZWFtLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9idWZmZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcHJpbnRmLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9hcmcubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3ByaW50ZXhjLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9mdW4ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2djLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9kaWdlc3QubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3JhbmRvbS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaGFzaHRibC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvd2Vhay5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZm9ybWF0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zY2FuZi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FsbGJhY2subWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbE9PLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxNb2QubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2dlbmxleC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZXBoZW1lcm9uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9maWxlbmFtZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY29tcGxleC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvYmlnYXJyYXkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2luX2NoYW5uZWwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL291dF9jaGFubmVsLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9kYXRlc19jYWxjL2RhdGVzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi95b2pzb24veW9qc29uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9wcHhfeW9qc29uX2NvbnZfbGliL3lvanNvbl9jb252Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9wcHhfeW9qc29uX2NvbnZfbGliL3lvanNvbl9jb252X2Vycm9yLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9wcHhfeW9qc29uX2NvbnZfbGliL3BweF95b2pzb25fY29udl9saWIubWwiLCIvd29ya3NwYWNlX3Jvb3QvcnVudGltZXMvb2NhbWwvcnVudGltZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwtY29tcGlsZXIvcnVudGltZS9qc29vX3J1bnRpbWVfXy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwtY29tcGlsZXIvcnVudGltZS9qc29vX3J1bnRpbWUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzX29mX29jYW1sX18ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ltcG9ydC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvanMubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvdHlwZWRfYXJyYXkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ZpbGUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbV9odG1sLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9mb3JtLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC94bWxIdHRwUmVxdWVzdC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvd29ya2VyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC93ZWJTb2NrZXRzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC93ZWJHTC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvcmVnZXhwLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC91cmwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3N5c19qcy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvcmVzaXplT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3BlcmZvcm1hbmNlT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL211dGF0aW9uT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzdGFibGUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzb24ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2NTUy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZG9tX2V2ZW50cy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZG9tX3N2Zy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZXZlbnRTb3VyY2UubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ZpcmVidWcubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2dlb2xvY2F0aW9uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9pbnRlcnNlY3Rpb25PYnNlcnZlci5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvaW50bC5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9ydW50aW1lcy9qc29vL3J1bnRpbWUubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfYXBpX3dlYi5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9mcmVuY2hfbGF3L29jYW1sL2xhd19zb3VyY2UvYWlkZXNfbG9nZW1lbnQubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FpZGVzX2xvZ2VtZW50X2FwaV93ZWIubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9hcGlfd2ViLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zdGRfZXhpdC5tbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBPQSxTQUFTQSxtQkFBbUJDLEdBQUssU0FBUUEsV0FBWTtHQ3pMckQsU0FBU0MsZ0JBQWdCQyxHQUFHQztJQUMxQixHQUFHRCxRQUFRO0lBQ1gsR0FBSUMsVUFBVSxPQUFRQSxTQUFTRDtJQUMvQixJQUFJRSxRQUFRQztJQUNaLE9BQVE7S0FDTixHQUFJSCxPQUFPRSxLQUFLRDtLQUNoQkQ7S0FDQSxHQUFJQSxRQUFRLE9BQU9FO0tBQ25CRCxLQUFLQTtLQUNMRTtLQUNBLEdBQUlBLFFBQ0ZGOztHQUtOO0dEN0NzQixJQUFsQkcsb0JBQW9CQztHRUF4QixTQUFTQyxvQkFBcUJDLEtBQU8sTUFBTUEsSUFBSztHQzRIM0IsSUFBakJDO0dEckZKLFNBQVNDO0lBQ1BILG9CQUFvQkU7R0FDdEI7R0ZyQ0EsU0FBU0UsUUFBU0MsSUFBR0MsSUFBR0M7SUFDdEJDLFVBQVVIO0lBQ1ZHLFVBQVVGO0lBQ1ZFLFVBQVVEO0dBQ1o7R0FDQUg7R0FDQUE7ZUFDRSxXQUFXQSxRQUFRSSxTQUFRQSxTQUFRQSxTQURaO0dBSXpCSjthQUF1Q1o7S0FDckMsR0FBSWdCLFVBQVVoQixNQUFNO0tBQ3BCLEdBQUlnQixVQUFVaEIsTUFBTTtLQUNwQixHQUFJZ0IsVUFBVWhCLE1BQU07S0FDcEIsR0FBSWdCLFVBQVVoQixNQUFNO0tBQ3BCLEdBQUlnQixVQUFVaEIsTUFBTTtLQUNwQixHQUFJZ0IsVUFBVWhCLE1BQU07S0FDcEI7SUFQMkI7R0FTN0JZO2FBQXNDWjtLQUNwQyxJQUFJZSxLQUFLQyxlQUNMQyxNQUFNakI7S0FDVixHQUFJ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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0NHQzs7Ozs7OztJQXduQ1FDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTFuQ0pHO0lBZ0tBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUE5Sko7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dHT21COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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OEVBQztPQXlCQUM7T0FnREFDO09Bb0JBQztPQThCQUM7T0FNQUM7T0FpQkFDO09BZ0JBQztPQTZCQXROO09BWUF1TjtPQXFCQUM7T0FjQUM7T0F1QkFwckI7T0FRQUM7T0FnQkFOO09BWUFDO09Bb0JBako7T0FXQWtKO09BZ0JBQztPQUtBQztPQWVBc3JCO09Ba0JBQztPQW1CRkM7T0FTQWpkO09BU0FrZDtPQVNBQztPQVNBeGpCO09BU0FJO09BU0EvSDtPQVNBRDtPQVNBM0o7T0FTQUc7T0FLQTYwQjtPQVNBQztPQVNBQztPQVNBQztPQVNBQztPQVNBQztPQVNBQztPQVNBQztPQVNBQztPQVNBQztPQVNBN1I7T0FTQThSO09BU0FyTztPQVNBTTtPQVNBWDtPQVNBMk87Ozs7OztFSjE2Skw7Ozs7Ozs7Ozs7Ozs7Ozs7R0lBQTs7Ozs7Ozs7Ozs7Ozs7O0lDNENVO3NCQUFzQkM7O2VBR1o7Ozs7b0JBSFlBOztjQU1LO2NBTEE7YUFLQztHQUFDOztJQWpCN0I7c0JBQXNCQzs7ZUFHWjs7OztvQkFIWUE7O2NBTVE7Y0FMSDthQUtJO0dBQUM7O0dBWnZDOzs7Ozs7OztFRDNCSDs7Ozs7Ozs7Ozs7OztHQ0FBOzs7Ozs7OztHQ2tCUzs7OztFRGxCVCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29mZnNldFxudmFyIGNhbWxfaW50NjRfb2Zmc2V0ID0gTWF0aC5wb3coMiwgLTI0KTtcblxuLy9Qcm92aWRlczogTWxJbnQ2NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZmZzZXQsIGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbmZ1bmN0aW9uIE1sSW50NjQgKGxvLG1pLGhpKSB7XG4gIHRoaXMubG8gPSBsbyAmIDB4ZmZmZmZmO1xuICB0aGlzLm1pID0gbWkgJiAweGZmZmZmZjtcbiAgdGhpcy5oaSA9IGhpICYgMHhmZmZmO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuY2FtbF9jdXN0b20gPSBcIl9qXCJcbk1sSW50NjQucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvLHRoaXMubWksdGhpcy5oaSk7XG59XG5cbk1sSW50NjQucHJvdG90eXBlLnVjb21wYXJlID0gZnVuY3Rpb24gKHgpIHtcbiAgaWYgKHRoaXMuaGkgPiB4LmhpKSByZXR1cm4gMTtcbiAgaWYgKHRoaXMuaGkgPCB4LmhpKSByZXR1cm4gLTE7XG4gIGlmICh0aGlzLm1pID4geC5taSkgcmV0dXJuIDE7XG4gIGlmICh0aGlzLm1pIDwgeC5taSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5sbyA+IHgubG8pIHJldHVybiAxO1xuICBpZiAodGhpcy5sbyA8IHgubG8pIHJldHVybiAtMTtcbiAgcmV0dXJuIDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIGhpID0gdGhpcy5oaSA8PCAxNjtcbiAgdmFyIHhoaSA9IHguaGkgPDwgMTY7XG4gIGlmIChoaSA+IHhoaSkgcmV0dXJuIDE7XG4gIGlmIChoaSA8IHhoaSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5taSA+IHgubWkpIHJldHVybiAxO1xuICBpZiAodGhpcy5taSA8IHgubWkpIHJldHVybiAtMTtcbiAgaWYgKHRoaXMubG8gPiB4LmxvKSByZXR1cm4gMTtcbiAgaWYgKHRoaXMubG8gPCB4LmxvKSByZXR1cm4gLTE7XG4gIHJldHVybiAwO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubmVnID0gZnVuY3Rpb24gKCkge1xuICB2YXIgbG8gPSAtIHRoaXMubG87XG4gIHZhciBtaSA9IC0gdGhpcy5taSArIChsbyA+PiAyNCk7XG4gIHZhciBoaSA9IC0gdGhpcy5oaSArIChtaSA+PiAyNCk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChsbywgbWksIGhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBsbyA9IHRoaXMubG8gKyB4LmxvO1xuICB2YXIgbWkgPSB0aGlzLm1pICsgeC5taSArIChsbyA+PiAyNCk7XG4gIHZhciBoaSA9IHRoaXMuaGkgKyB4LmhpICsgKG1pID4+IDI0KTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KGxvLCBtaSwgaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuc3ViID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIGxvID0gdGhpcy5sbyAtIHgubG87XG4gIHZhciBtaSA9IHRoaXMubWkgLSB4Lm1pICsgKGxvID4+IDI0KTtcbiAgdmFyIGhpID0gdGhpcy5oaSAtIHguaGkgKyAobWkgPj4gMjQpO1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5tdWwgPSBmdW5jdGlvbiAoeCkge1xuICB2YXIgbG8gPSB0aGlzLmxvICogeC5sbztcbiAgdmFyIG1pID0gKChsbyAqIGNhbWxfaW50NjRfb2Zmc2V0KSB8IDApICsgdGhpcy5taSAqIHgubG8gKyB0aGlzLmxvICogeC5taTtcbiAgdmFyIGhpID0gKChtaSAqIGNhbWxfaW50NjRfb2Zmc2V0KSB8IDApICsgdGhpcy5oaSAqIHgubG8gKyB0aGlzLm1pICogeC5taSArIHRoaXMubG8gKiB4LmhpO1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5pc1plcm8gPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAodGhpcy5sb3x0aGlzLm1pfHRoaXMuaGkpID09IDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5pc05lZyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICh0aGlzLmhpIDw8IDE2KSA8IDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5hbmQgPSBmdW5jdGlvbiAoeCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQodGhpcy5sbyAmIHgubG8sIHRoaXMubWkgJiB4Lm1pLCB0aGlzLmhpICYgeC5oaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5vciA9IGZ1bmN0aW9uICh4KSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvfHgubG8sIHRoaXMubWl8eC5taSwgdGhpcy5oaXx4LmhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnhvciA9IGZ1bmN0aW9uICh4KSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvXngubG8sIHRoaXMubWleeC5taSwgdGhpcy5oaV54LmhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnNoaWZ0X2xlZnQgPSBmdW5jdGlvbiAocykge1xuICBzID0gcyAmIDYzO1xuICBpZiAocyA9PSAwKSByZXR1cm4gdGhpcztcbiAgaWYgKHMgPCAyNCkge1xuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAodGhpcy5sbyA8PCBzLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMubWkgPDwgcykgfCAodGhpcy5sbyA+PiAoMjQgLSBzKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5oaSA8PCBzKSB8ICh0aGlzLm1pID4+ICgyNCAtIHMpKSk7XG4gIH1cbiAgaWYgKHMgPCA0OClcbiAgICByZXR1cm4gbmV3IE1sSW50NjQgKDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvIDw8IChzIC0gMjQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMubWkgPDwgKHMgLSAyNCkpIHwgKHRoaXMubG8gPj4gKDQ4IC0gcykpKTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KDAsIDAsIHRoaXMubG8gPDwgKHMgLSA0OCkpXG59XG5NbEludDY0LnByb3RvdHlwZS5zaGlmdF9yaWdodF91bnNpZ25lZCA9IGZ1bmN0aW9uIChzKSB7XG4gIHMgPSBzICYgNjM7XG4gIGlmIChzID09IDApIHJldHVybiB0aGlzO1xuICBpZiAocyA8IDI0KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5sbyA+PiBzKSB8ICh0aGlzLm1pIDw8ICgyNCAtIHMpKSxcbiAgICAgICh0aGlzLm1pID4+IHMpIHwgKHRoaXMuaGkgPDwgKDI0IC0gcykpLFxuICAgICAgKHRoaXMuaGkgPj4gcykpO1xuICBpZiAocyA8IDQ4KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5taSA+PiAocyAtIDI0KSkgfCAodGhpcy5oaSA8PCAoNDggLSBzKSksXG4gICAgICAodGhpcy5oaSA+PiAocyAtIDI0KSksXG4gICAgICAwKTtcbiAgcmV0dXJuIG5ldyBNbEludDY0ICh0aGlzLmhpID4+IChzIC0gNDgpLCAwLCAwKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnNoaWZ0X3JpZ2h0ID0gZnVuY3Rpb24gKHMpIHtcbiAgcyA9IHMgJiA2MztcbiAgaWYgKHMgPT0gMCkgcmV0dXJuIHRoaXM7XG4gIHZhciBoID0gKHRoaXMuaGkgPDwgMTYpID4+IDE2O1xuICBpZiAocyA8IDI0KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5sbyA+PiBzKSB8ICh0aGlzLm1pIDw8ICgyNCAtIHMpKSxcbiAgICAgICh0aGlzLm1pID4+IHMpIHwgKGggPDwgKDI0IC0gcykpLFxuICAgICAgKCh0aGlzLmhpIDw8IDE2KSA+PiBzKSA+Pj4gMTYpO1xuICB2YXIgc2lnbiA9ICh0aGlzLmhpIDw8IDE2KSA+PiAzMTtcbiAgaWYgKHMgPCA0OClcbiAgICByZXR1cm4gbmV3IE1sSW50NjQgKFxuICAgICAgKHRoaXMubWkgPj4gKHMgLSAyNCkpIHwgKHRoaXMuaGkgPDwgKDQ4IC0gcykpLFxuICAgICAgKHRoaXMuaGkgPDwgMTYpID4+IChzIC0gMjQpID4+IDE2LFxuICAgICAgc2lnbiAmIDB4ZmZmZik7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCAoKHRoaXMuaGkgPDwgMTYpID4+IChzIC0gMzIpLCBzaWduLCBzaWduKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmxzbDEgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuaGkgPSAodGhpcy5oaSA8PCAxKSB8ICh0aGlzLm1pID4+IDIzKTtcbiAgdGhpcy5taSA9ICgodGhpcy5taSA8PCAxKSB8ICh0aGlzLmxvID4+IDIzKSkgJiAweGZmZmZmZjtcbiAgdGhpcy5sbyA9ICh0aGlzLmxvIDw8IDEpICYgMHhmZmZmZmY7XG59XG5NbEludDY0LnByb3RvdHlwZS5sc3IxID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmxvID0gKCh0aGlzLmxvID4+PiAxKSB8ICh0aGlzLm1pIDw8IDIzKSkgJiAweGZmZmZmZjtcbiAgdGhpcy5taSA9ICgodGhpcy5taSA+Pj4gMSkgfCAodGhpcy5oaSA8PCAyMykpICYgMHhmZmZmZmY7XG4gIHRoaXMuaGkgPSB0aGlzLmhpID4+PiAxO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUudWRpdm1vZCA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBvZmZzZXQgPSAwO1xuICB2YXIgbW9kdWx1cyA9IHRoaXMuY29weSgpO1xuICB2YXIgZGl2aXNvciA9IHguY29weSgpO1xuICB2YXIgcXVvdGllbnQgPSBuZXcgTWxJbnQ2NCgwLDAsMCk7XG4gIHdoaWxlIChtb2R1bHVzLnVjb21wYXJlKGRpdmlzb3IpID4gMCkge1xuICAgIG9mZnNldCsrO1xuICAgIGRpdmlzb3IubHNsMSgpO1xuICB9XG4gIHdoaWxlIChvZmZzZXQgPj0gMCkge1xuICAgIG9mZnNldCAtLTtcbiAgICBxdW90aWVudC5sc2wxKCk7XG4gICAgaWYgKG1vZHVsdXMudWNvbXBhcmUoZGl2aXNvcikgPj0gMCkge1xuICAgICAgcXVvdGllbnQubG8gKys7XG4gICAgICBtb2R1bHVzID0gbW9kdWx1cy5zdWIoZGl2aXNvcik7XG4gICAgfVxuICAgIGRpdmlzb3IubHNyMSgpO1xuICB9XG4gIHJldHVybiB7IHF1b3RpZW50IDogcXVvdGllbnQsIG1vZHVsdXMgOiBtb2R1bHVzIH07XG59XG5NbEludDY0LnByb3RvdHlwZS5kaXYgPSBmdW5jdGlvbiAoeSlcbntcbiAgdmFyIHggPSB0aGlzO1xuICBpZiAoeS5pc1plcm8oKSkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgdmFyIHNpZ24gPSB4LmhpIF4geS5oaTtcbiAgaWYgKHguaGkgJiAweDgwMDApIHggPSB4Lm5lZygpO1xuICBpZiAoeS5oaSAmIDB4ODAwMCkgeSA9IHkubmVnKCk7XG4gIHZhciBxID0geC51ZGl2bW9kKHkpLnF1b3RpZW50O1xuICBpZiAoc2lnbiAmIDB4ODAwMCkgcSA9IHEubmVnKCk7XG4gIHJldHVybiBxO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubW9kID0gZnVuY3Rpb24gKHkpXG57XG4gIHZhciB4ID0gdGhpcztcbiAgaWYgKHkuaXNaZXJvKCkpIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCk7XG4gIHZhciBzaWduID0geC5oaTtcbiAgaWYgKHguaGkgJiAweDgwMDApIHggPSB4Lm5lZygpO1xuICBpZiAoeS5oaSAmIDB4ODAwMCkgeSA9IHkubmVnKCk7XG4gIHZhciByID0geC51ZGl2bW9kKHkpLm1vZHVsdXM7XG4gIGlmIChzaWduICYgMHg4MDAwKSByID0gci5uZWcoKTtcbiAgcmV0dXJuIHI7XG59XG5NbEludDY0LnByb3RvdHlwZS50b0ludCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMubG8gfCAodGhpcy5taSA8PCAyNCk7XG59XG5NbEludDY0LnByb3RvdHlwZS50b0Zsb2F0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gKCh0aGlzLmhpIDw8IDE2KSAqIE1hdGgucG93KDIsIDMyKSArIHRoaXMubWkgKiBNYXRoLnBvdygyLCAyNCkpICsgdGhpcy5sbztcbn1cbk1sSW50NjQucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBbdGhpcy5oaSA+PiA4LFxuICAgICAgICAgIHRoaXMuaGkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubWkgPj4gMTYsXG4gICAgICAgICAgKHRoaXMubWkgPj4gOCkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubWkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubG8gPj4gMTYsXG4gICAgICAgICAgKHRoaXMubG8gPj4gOCkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubG8gJiAweGZmXTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmxvMzIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmxvIHwgKCh0aGlzLm1pICYgMHhmZikgPDwgMjQpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuaGkzMiA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICgodGhpcy5taSA+Pj4gOCkgJiAweGZmZmYpIHwgKHRoaXMuaGkgPDwgMTYpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3VsdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF91bHQoeCx5KSB7IHJldHVybiB4LnVjb21wYXJlKHkpIDwgMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2NvbXBhcmUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfY29tcGFyZSh4LHksIHRvdGFsKSB7IHJldHVybiB4LmNvbXBhcmUoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X25lZyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9uZWcgKHgpIHsgcmV0dXJuIHgubmVnKCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2FkZCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9hZGQgKHgsIHkpIHsgcmV0dXJuIHguYWRkKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9zdWIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfc3ViICh4LCB5KSB7IHJldHVybiB4LnN1Yih5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbXVsIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mZnNldFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9tdWwoeCx5KSB7IHJldHVybiB4Lm11bCh5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfaXNfemVybyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9pc196ZXJvKHgpIHsgcmV0dXJuICt4LmlzWmVybygpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfaXNfbmVnYXRpdmUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfaXNfbmVnYXRpdmUoeCkgeyByZXR1cm4gK3guaXNOZWcoKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2FuZCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9hbmQgKHgsIHkpIHsgcmV0dXJuIHguYW5kKHkpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb3IgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfb3IgKHgsIHkpIHsgcmV0dXJuIHgub3IoeSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF94b3IgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfeG9yICh4LCB5KSB7IHJldHVybiB4Lnhvcih5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfc2hpZnRfbGVmdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0ICh4LCBzKSB7IHJldHVybiB4LnNoaWZ0X2xlZnQocykgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkICh4LCBzKSB7IHJldHVybiB4LnNoaWZ0X3JpZ2h0X3Vuc2lnbmVkKHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCAoeCwgcykgeyByZXR1cm4geC5zaGlmdF9yaWdodChzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfZGl2IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2RpdiAoeCwgeSkgeyByZXR1cm4geC5kaXYoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X21vZCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9tb2QgKHgsIHkpIHsgcmV0dXJuIHgubW9kKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZl9pbnQzMiBjb25zdFxuLy9SZXF1aXJlczogTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9pbnQzMiAoeCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQoeCAmIDB4ZmZmZmZmLCAoeCA+PiAyNCkgJiAweGZmZmZmZiwgKHggPj4gMzEpICYgMHhmZmZmKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3RvX2ludDMyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3RvX2ludDMyICh4KSB7IHJldHVybiB4LnRvSW50KCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3RvX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3RvX2Zsb2F0ICh4KSB7IHJldHVybiB4LnRvRmxvYXQgKCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29mX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mZnNldCwgTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9mbG9hdCAoeCkge1xuICBpZiAoeCA8IDApIHggPSBNYXRoLmNlaWwoeCk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChcbiAgICB4ICYgMHhmZmZmZmYsXG4gICAgTWF0aC5mbG9vcih4ICogY2FtbF9pbnQ2NF9vZmZzZXQpICYgMHhmZmZmZmYsXG4gICAgTWF0aC5mbG9vcih4ICogY2FtbF9pbnQ2NF9vZmZzZXQgKiBjYW1sX2ludDY0X29mZnNldCkgJiAweGZmZmYpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2Zvcm1hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9wYXJzZV9mb3JtYXQsIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfaXNfbmVnYXRpdmUsIGNhbWxfaW50NjRfbmVnXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2ludDMyLCBjYW1sX2ludDY0X3RvX2ludDMyXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2lzX3plcm8sIGNhbWxfc3RyX3JlcGVhdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9mb3JtYXQgKGZtdCwgeCkge1xuICB2YXIgZiA9IGNhbWxfcGFyc2VfZm9ybWF0KGZtdCk7XG4gIGlmIChmLnNpZ25lZGNvbnYgJiYgY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSh4KSkge1xuICAgIGYuc2lnbiA9IC0xOyB4ID0gY2FtbF9pbnQ2NF9uZWcoeCk7XG4gIH1cbiAgdmFyIGJ1ZmZlciA9IFwiXCI7XG4gIHZhciB3YmFzZSA9IGNhbWxfaW50NjRfb2ZfaW50MzIoZi5iYXNlKTtcbiAgdmFyIGN2dGJsID0gXCIwMTIzNDU2Nzg5YWJjZGVmXCI7XG4gIGRvIHtcbiAgICB2YXIgcCA9IHgudWRpdm1vZCh3YmFzZSk7XG4gICAgeCA9IHAucXVvdGllbnQ7XG4gICAgYnVmZmVyID0gY3Z0YmwuY2hhckF0KGNhbWxfaW50NjRfdG9faW50MzIocC5tb2R1bHVzKSkgKyBidWZmZXI7XG4gIH0gd2hpbGUgKCEgY2FtbF9pbnQ2NF9pc196ZXJvKHgpKTtcbiAgaWYgKGYucHJlYyA+PSAwKSB7XG4gICAgZi5maWxsZXIgPSAnICc7XG4gICAgdmFyIG4gPSBmLnByZWMgLSBidWZmZXIubGVuZ3RoO1xuICAgIGlmIChuID4gMCkgYnVmZmVyID0gY2FtbF9zdHJfcmVwZWF0IChuLCAnMCcpICsgYnVmZmVyO1xuICB9XG4gIHJldHVybiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nKGYsIGJ1ZmZlcik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UsIGNhbWxfZmFpbHdpdGgsIGNhbWxfcGFyc2VfZGlnaXRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfaW50MzIsIGNhbWxfaW50NjRfdWx0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2FkZCwgY2FtbF9pbnQ2NF9tdWwsIGNhbWxfaW50NjRfbmVnXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGgsY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9zdHJpbmcocykge1xuICB2YXIgciA9IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSAocyk7XG4gIHZhciBpID0gclswXSwgc2lnbiA9IHJbMV0sIGJhc2UgPSByWzJdO1xuICB2YXIgYmFzZTY0ID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihiYXNlKTtcbiAgdmFyIHRocmVzaG9sZCA9XG4gICAgICBuZXcgTWxJbnQ2NCgweGZmZmZmZiwgMHhmZmZmZmZmLCAweGZmZmYpLnVkaXZtb2QoYmFzZTY0KS5xdW90aWVudDtcbiAgdmFyIGMgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpO1xuICB2YXIgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gIGlmIChkIDwgMCB8fCBkID49IGJhc2UpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB2YXIgcmVzID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihkKTtcbiAgZm9yICg7Oykge1xuICAgIGkrKztcbiAgICBjID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKTtcbiAgICBpZiAoYyA9PSA5NSkgY29udGludWU7XG4gICAgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gICAgaWYgKGQgPCAwIHx8IGQgPj0gYmFzZSkgYnJlYWs7XG4gICAgLyogRGV0ZWN0IG92ZXJmbG93IGluIG11bHRpcGxpY2F0aW9uIGJhc2UgKiByZXMgKi9cbiAgICBpZiAoY2FtbF9pbnQ2NF91bHQodGhyZXNob2xkLCByZXMpKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgICBkID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihkKTtcbiAgICByZXMgPSBjYW1sX2ludDY0X2FkZChjYW1sX2ludDY0X211bChiYXNlNjQsIHJlcyksIGQpO1xuICAgIC8qIERldGVjdCBvdmVyZmxvdyBpbiBhZGRpdGlvbiAoYmFzZSAqIHJlcykgKyBkICovXG4gICAgaWYgKGNhbWxfaW50NjRfdWx0KHJlcywgZCkpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB9XG4gIGlmIChpICE9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIGlmIChiYXNlID09IDEwICYmIGNhbWxfaW50NjRfdWx0KG5ldyBNbEludDY0KDAsIDAsIDB4ODAwMCksIHJlcykpXG4gICAgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIGlmIChzaWduIDwgMCkgcmVzID0gY2FtbF9pbnQ2NF9uZWcocmVzKTtcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkgY29uc3Rcbi8vUmVxdWlyZXM6IE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKGxvLCBtaSwgaGkpe1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSlcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaShsbywgaGkpe1xuICByZXR1cm4gbmV3IE1sSW50NjQgKFxuICAgIGxvICYgMHhmZmZmZmYsXG4gICAgKChsbyA+Pj4gMjQpICYgMHhmZikgfCAoKGhpICYgMHhmZmZmKSA8PCA4KSxcbiAgICAoaGkgPj4+IDE2KSAmIDB4ZmZmZik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2xvMzIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfbG8zMih2KXsgcmV0dXJuIHYubG8zMigpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9oaTMyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2hpMzIodil7IHJldHVybiB2LmhpMzIoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXMgY29uc3Rcbi8vUmVxdWlyZXM6IE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfb2ZfYnl0ZXMoYSkge1xuICByZXR1cm4gbmV3IE1sSW50NjQoYVs3XSA8PCAwIHwgKGFbNl0gPDwgOCkgfCAoYVs1XSA8PCAxNiksXG4gICAgICAgICAgICAgICAgICAgICBhWzRdIDw8IDAgfCAoYVszXSA8PCA4KSB8IChhWzJdIDw8IDE2KSxcbiAgICAgICAgICAgICAgICAgICAgIGFbMV0gPDwgMCB8IChhWzBdIDw8IDgpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXMgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfdG9fYnl0ZXMoeCkgeyByZXR1cm4geC50b0FycmF5KCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2hhc2ggY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfaGFzaCh2KXtcbiAgcmV0dXJuICh2LmxvMzIoKSkgXiAodi5oaTMyKCkpXG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLyBBbiBPQ2FtbCBzdHJpbmcgaXMgYW4gb2JqZWN0IHdpdGggdGhyZWUgZmllbGRzOlxuLy8gLSB0YWcgJ3QnXG4vLyAtIGxlbmd0aCAnbCdcbi8vIC0gY29udGVudHMgJ2MnXG4vL1xuLy8gVGhlIGNvbnRlbnRzIG9mIHRoZSBzdHJpbmcgY2FuIGJlIGVpdGhlciBhIEphdmFTY3JpcHQgYXJyYXkgb3Jcbi8vIGEgSmF2YVNjcmlwdCBzdHJpbmcuIFRoZSBsZW5ndGggb2YgdGhpcyBzdHJpbmcgY2FuIGJlIGxlc3MgdGhhbiB0aGVcbi8vIGxlbmd0aCBvZiB0aGUgT0NhbWwgc3RyaW5nLiBJbiB0aGlzIGNhc2UsIHJlbWFpbmluZyBieXRlcyBhcmVcbi8vIGFzc3VtZWQgdG8gYmUgemVyb2VzLiBBcnJheXMgYXJlIG11dGFibGUgYnV0IGNvbnN1bWVzIG1vcmUgbWVtb3J5XG4vLyB0aGFuIHN0cmluZ3MuIEEgY29tbW9uIHBhdHRlcm4gaXMgdG8gc3RhcnQgZnJvbSBhbiBlbXB0eSBzdHJpbmcgYW5kXG4vLyBwcm9ncmVzc2l2ZWx5IGZpbGwgaXQgZnJvbSB0aGUgc3RhcnQuIFBhcnRpYWwgc3RyaW5ncyBtYWtlcyBpdFxuLy8gcG9zc2libGUgdG8gaW1wbGVtZW50IHRoaXMgZWZmaWNpZW50bHkuXG4vL1xuLy8gV2hlbiBjb252ZXJ0aW5nIHRvIGFuZCBmcm9tIFVURi0xNiwgd2Uga2VlcCB0cmFjayBvZiB3aGV0aGVyIHRoZVxuLy8gc3RyaW5nIGlzIGNvbXBvc2VkIG9ubHkgb2YgQVNDSUkgY2hhcmFjdGVycyAoaW4gd2hpY2ggY2FzZSwgbm9cbi8vIGNvbnZlcnNpb24gbmVlZHMgdG8gYmUgcGVyZm9ybWVkKSBvciBub3QuXG4vL1xuLy8gVGhlIHN0cmluZyB0YWcgY2FuIHRodXMgdGFrZSB0aGUgZm9sbG93aW5nIHZhbHVlczpcbi8vICAgZnVsbCBzdHJpbmcgICAgIEJZVEUgfCBVTktOT1dOOiAgICAgIDBcbi8vICAgICAgICAgICAgICAgICAgIEJZVEUgfCBBU0NJSTogICAgICAgIDlcbi8vICAgICAgICAgICAgICAgICAgIEJZVEUgfCBOT1RfQVNDSUk6ICAgIDhcbi8vICAgc3RyaW5nIHByZWZpeCAgIFBBUlRJQUw6ICAgICAgICAgICAgIDJcbi8vICAgYXJyYXkgICAgICAgICAgIEFSUkFZOiAgICAgICAgICAgICAgIDRcbi8vXG4vLyBPbmUgY2FuIHVzZSBiaXQgbWFza2luZyB0byBkaXNjcmltaW5hdGUgdGhlc2UgZGlmZmVyZW50IGNhc2VzOlxuLy8gICBrbm93bl9lbmNvZGluZyh4KSA9IHgmOFxuLy8gICBpc19hc2NpaSh4KSA9ICAgICAgIHgmMVxuLy8gICBraW5kKHgpID0gICAgICAgICAgIHgmNlxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cl9yZXBlYXRcbmZ1bmN0aW9uIGNhbWxfc3RyX3JlcGVhdChuLCBzKSB7XG4gIGlmKG4gPT0gMCkgcmV0dXJuIFwiXCI7XG4gIGlmIChzLnJlcGVhdCkge3JldHVybiBzLnJlcGVhdChuKTt9IC8vIEVDTUFzY3JpcHQgNiBhbmQgRmlyZWZveCAyNCtcbiAgdmFyIHIgPSBcIlwiLCBsID0gMDtcbiAgZm9yKDs7KSB7XG4gICAgaWYgKG4gJiAxKSByICs9IHM7XG4gICAgbiA+Pj0gMTtcbiAgICBpZiAobiA9PSAwKSByZXR1cm4gcjtcbiAgICBzICs9IHM7XG4gICAgbCsrO1xuICAgIGlmIChsID09IDkpIHtcbiAgICAgIHMuc2xpY2UoMCwxKTsgLy8gZmxhdHRlbiB0aGUgc3RyaW5nXG4gICAgICAvLyB0aGVuLCB0aGUgZmxhdHRlbmluZyBvZiB0aGUgd2hvbGUgc3RyaW5nIHdpbGwgYmUgZmFzdGVyLFxuICAgICAgLy8gYXMgaXQgd2lsbCBiZSBjb21wb3NlZCBvZiBsYXJnZXIgcGllY2VzXG4gICAgfVxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlc1xuLy9XZWFrZGVmXG4vLyBQcmUgRUNNQVNjcmlwdCA1LCBbYXBwbHldIHdvdWxkIG5vdCBzdXBwb3J0IGFycmF5LWxpa2Ugb2JqZWN0LlxuLy8gSW4gc3VjaCBzZXR1cCwgVHlwZWRfYXJyYXkgd291bGQgYmUgaW1wbGVtZW50ZWQgYXMgcG9seWZpbGwsIGFuZCBbZi5hcHBseV0gd291bGRcbi8vIGZhaWwgaGVyZS4gTWFyayB0aGUgcHJpbWl0aXZlIGFzIFdlYWtkZWYsIHNvIHRoYXQgcGVvcGxlIGNhbiBvdmVycmlkZSBpdCBlYXNpbHkuXG5mdW5jdGlvbiBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMgKGEsIGksIGxlbikge1xuICB2YXIgZiA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG4gIGlmIChpID09IDAgJiYgbGVuIDw9IDQwOTYgJiYgbGVuID09IGEubGVuZ3RoKSByZXR1cm4gZi5hcHBseSAobnVsbCwgYSk7XG4gIHZhciBzID0gXCJcIjtcbiAgZm9yICg7IDAgPCBsZW47IGkgKz0gMTAyNCxsZW4tPTEwMjQpXG4gICAgcyArPSBmLmFwcGx5IChudWxsLCBhLnNsaWNlKGksaSArIE1hdGgubWluKGxlbiwgMTAyNCkpKTtcbiAgcmV0dXJuIHM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdXRmOF9vZl91dGYxNlxuZnVuY3Rpb24gY2FtbF91dGY4X29mX3V0ZjE2KHMpIHtcbiAgZm9yICh2YXIgYiA9IFwiXCIsIHQgPSBiLCBjLCBkLCBpID0gMCwgbCA9IHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgYyA9IHMuY2hhckNvZGVBdChpKTtcbiAgICBpZiAoYyA8IDB4ODApIHtcbiAgICAgIGZvciAodmFyIGogPSBpICsgMTsgKGogPCBsKSAmJiAoYyA9IHMuY2hhckNvZGVBdChqKSkgPCAweDgwOyBqKyspO1xuICAgICAgaWYgKGogLSBpID4gNTEyKSB7IHQuc3Vic3RyKDAsIDEpOyBiICs9IHQ7IHQgPSBcIlwiOyBiICs9IHMuc2xpY2UoaSwgaikgfVxuICAgICAgZWxzZSB0ICs9IHMuc2xpY2UoaSwgaik7XG4gICAgICBpZiAoaiA9PSBsKSBicmVhaztcbiAgICAgIGkgPSBqO1xuICAgIH1cbiAgICBpZiAoYyA8IDB4ODAwKSB7XG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhjMCB8IChjID4+IDYpKTtcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweDgwIHwgKGMgJiAweDNmKSk7XG4gICAgfSBlbHNlIGlmIChjIDwgMHhkODAwIHx8IGMgPj0gMHhkZmZmKSB7XG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhlMCB8IChjID4+IDEyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKChjID4+IDYpICYgMHgzZiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCB8IChjICYgMHgzZikpO1xuICAgIH0gZWxzZSBpZiAoYyA+PSAweGRiZmYgfHwgaSArIDEgPT0gbCB8fFxuICAgICAgICAgICAgICAgKGQgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBkID4gMHhkZmZmKSB7XG4gICAgICAvLyBVbm1hdGNoZWQgc3Vycm9nYXRlIHBhaXIsIHJlcGxhY2VkIGJ5IFxcdWZmZmQgKHJlcGxhY2VtZW50IGNoYXJhY3RlcilcbiAgICAgIHQgKz0gXCJcXHhlZlxceGJmXFx4YmRcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgaSsrO1xuICAgICAgYyA9IChjIDw8IDEwKSArIGQgLSAweDM1ZmRjMDA7XG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhmMCB8IChjID4+IDE4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKChjID4+IDEyKSAmIDB4M2YpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAgfCAoKGMgPj4gNikgJiAweDNmKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKGMgJiAweDNmKSk7XG4gICAgfVxuICAgIGlmICh0Lmxlbmd0aCA+IDEwMjQpIHt0LnN1YnN0cigwLCAxKTsgYiArPSB0OyB0ID0gXCJcIjt9XG4gIH1cbiAgcmV0dXJuIGIrdDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91dGYxNl9vZl91dGY4XG5mdW5jdGlvbiBjYW1sX3V0ZjE2X29mX3V0Zjgocykge1xuICBmb3IgKHZhciBiID0gXCJcIiwgdCA9IFwiXCIsIGMsIGMxLCBjMiwgdiwgaSA9IDAsIGwgPSBzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGMxID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIGlmIChjMSA8IDB4ODApIHtcbiAgICAgIGZvciAodmFyIGogPSBpICsgMTsgKGogPCBsKSAmJiAoYzEgPSBzLmNoYXJDb2RlQXQoaikpIDwgMHg4MDsgaisrKTtcbiAgICAgIGlmIChqIC0gaSA+IDUxMikgeyB0LnN1YnN0cigwLCAxKTsgYiArPSB0OyB0ID0gXCJcIjsgYiArPSBzLnNsaWNlKGksIGopIH1cbiAgICAgIGVsc2UgdCArPSBzLnNsaWNlKGksIGopO1xuICAgICAgaWYgKGogPT0gbCkgYnJlYWs7XG4gICAgICBpID0gajtcbiAgICB9XG4gICAgdiA9IDE7XG4gICAgaWYgKCgrK2kgPCBsKSAmJiAoKChjMiA9IHMuY2hhckNvZGVBdChpKSkgJiAtNjQpID09IDEyOCkpIHtcbiAgICAgIGMgPSBjMiArIChjMSA8PCA2KTtcbiAgICAgIGlmIChjMSA8IDB4ZTApIHtcbiAgICAgICAgdiA9IGMgLSAweDMwODA7XG4gICAgICAgIGlmICh2IDwgMHg4MCkgdiA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ID0gMjtcbiAgICAgICAgaWYgKCgrK2kgPCBsKSAmJiAoKChjMiA9IHMuY2hhckNvZGVBdChpKSkgJiAtNjQpID09IDEyOCkpIHtcbiAgICAgICAgICBjID0gYzIgKyAoYyA8PCA2KTtcbiAgICAgICAgICBpZiAoYzEgPCAweGYwKSB7XG4gICAgICAgICAgICB2ID0gYyAtIDB4ZTIwODA7XG4gICAgICAgICAgICBpZiAoKHYgPCAweDgwMCkgfHwgKCh2ID49IDB4ZDdmZikgJiYgKHYgPCAweGUwMDApKSkgdiA9IDI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHYgPSAzO1xuICAgICAgICAgICAgaWYgKCgrK2kgPCBsKSAmJiAoKChjMiA9IHMuY2hhckNvZGVBdChpKSkgJiAtNjQpID09IDEyOCkgJiZcbiAgICAgICAgICAgICAgICAoYzEgPCAweGY1KSkge1xuICAgICAgICAgICAgICB2ID0gYzIgLSAweDNjODIwODAgKyAoYyA8PCA2KTtcbiAgICAgICAgICAgICAgaWYgKHYgPCAweDEwMDAwIHx8IHYgPiAweDEwZmZmZikgdiA9IDM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2IDwgNCkgeyAvLyBJbnZhbGlkIHNlcXVlbmNlXG4gICAgICBpIC09IHY7XG4gICAgICB0ICs9IFwiXFx1ZmZmZFwiO1xuICAgIH0gZWxzZSBpZiAodiA+IDB4ZmZmZilcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGQ3YzAgKyAodiA+PiAxMCksIDB4ZGMwMCArICh2ICYgMHgzRkYpKVxuICAgIGVsc2VcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh2KTtcbiAgICBpZiAodC5sZW5ndGggPiAxMDI0KSB7dC5zdWJzdHIoMCwgMSk7IGIgKz0gdDsgdCA9IFwiXCI7fVxuICB9XG4gIHJldHVybiBiK3Q7XG59XG5cbi8vUHJvdmlkZXM6IGpzb29faXNfYXNjaWlcbmZ1bmN0aW9uIGpzb29faXNfYXNjaWkgKHMpIHtcbiAgLy8gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBnZXRzIGJldHRlciBhdCBhcm91bmQgdGhpcyBwb2ludCBmb3IgYWxsIGJyb3dzZXJzXG4gIGlmIChzLmxlbmd0aCA8IDI0KSB7XG4gICAgLy8gU3BpZGVybW9ua2V5IGdldHMgbXVjaCBzbG93ZXIgd2hlbiBzLmxlbmd0aCA+PSAyNCAob24gNjQgYml0IGFyY2hzKVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcy5sZW5ndGg7IGkrKykgaWYgKHMuY2hhckNvZGVBdChpKSA+IDEyNykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2VcbiAgICByZXR1cm4gIS9bXlxceDAwLVxceDdmXS8udGVzdChzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc191bnNhZmVfZ2V0IG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSkge1xuICBzd2l0Y2ggKHMudCAmIDYpIHtcbiAgZGVmYXVsdDogLyogUEFSVElBTCAqL1xuICAgIGlmIChpID49IHMuYy5sZW5ndGgpIHJldHVybiAwO1xuICBjYXNlIDA6IC8qIEJZVEVTICovXG4gICAgcmV0dXJuIHMuYy5jaGFyQ29kZUF0KGkpO1xuICBjYXNlIDQ6IC8qIEFSUkFZICovXG4gICAgcmV0dXJuIHMuY1tpXVxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG5mdW5jdGlvbiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGksIGMpIHtcbiAgLy8gVGhlIE9DYW1sIGNvbXBpbGVyIHVzZXMgQ2hhci51bnNhZmVfY2hyIG9uIGludGVnZXJzIGxhcmdlciB0aGFuIDI1NSFcbiAgYyAmPSAweGZmO1xuICBpZiAocy50ICE9IDQgLyogQVJSQVkgKi8pIHtcbiAgICBpZiAoaSA9PSBzLmMubGVuZ3RoKSB7XG4gICAgICBzLmMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSAoYyk7XG4gICAgICBpZiAoaSArIDEgPT0gcy5sKSBzLnQgPSAwOyAvKkJZVEVTIHwgVU5LT1dOKi9cbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkgKHMpO1xuICB9XG4gIHMuY1tpXSA9IGM7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ib3VuZF9lcnJvciAoKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJpbmRleCBvdXQgb2YgYm91bmRzXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IgKCkge1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19ib3VuZF9lcnJvciwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldFxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19nZXQgKHMsIGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dldDE2XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19nZXQxNihzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIC0gMSkgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSksXG4gICAgICBiMiA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkgKyAxKTtcbiAgcmV0dXJuIChiMiA8PCA4IHwgYjEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQsIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0MTYocyxpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDEpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpKSxcbiAgICAgIGIyID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgMSk7XG4gIHJldHVybiAoYjIgPDwgOCB8IGIxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dldDMyKHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykgLSAzKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKSxcbiAgICAgIGIyID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIDEpLFxuICAgICAgYjMgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpICsgMiksXG4gICAgICBiNCA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkgKyAzKTtcbiAgcmV0dXJuIChiNCA8PCAyNCB8IGIzIDw8IDE2IHwgYjIgPDwgOCB8IGIxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19nZXQzMlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc191bnNhZmVfZ2V0LCBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dldDMyKHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwgLSAzKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSksXG4gICAgICBiMiA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSArIDEpLFxuICAgICAgYjMgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkgKyAyKSxcbiAgICAgIGI0ID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgMyk7XG4gIHJldHVybiAoYjQgPDwgMjQgfCBiMyA8PCAxNiB8IGIyIDw8IDggfCBiMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dldDY0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19nZXQ2NChzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIC0gNykgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGEgPSBuZXcgQXJyYXkoOCk7XG4gIGZvcih2YXIgaiA9IDA7IGogPCA4OyBqKyspe1xuICAgIGFbNyAtIGpdID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIGopO1xuICB9XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzKGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQsIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0NjQocyxpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDcpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGEgPSBuZXcgQXJyYXkoOCk7XG4gIGZvcih2YXIgaiA9IDA7IGogPCA4OyBqKyspe1xuICAgIGFbNyAtIGpdID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgaik7XG4gIH1cbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMoYSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yLCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0IChzLCBpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCkgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldCAocywgaSwgYykge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfc2V0XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXQsIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQgKHMsIGksIGMpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfdW5zYWZlX3NldCAocywgaSwgYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfc2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuZnVuY3Rpb24gY2FtbF9ieXRlc19zZXQxNihzLGksaTE2KXtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gMSkgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjIgPSAweEZGICYgaTE2ID4+IDgsXG4gICAgICBiMSA9IDB4RkYgJiBpMTY7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDAsIGIxKTtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMSwgYjIpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQxNlxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQxNihzLGksaTE2KXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3RyaW5nX3NldDE2XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQxNlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19zZXQxNlxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0MTYocyxpLGkxNil7XG4gIHJldHVybiBjYW1sX2J5dGVzX3NldDE2KHMsaSxpMTYpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yLCBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfc2V0MzIocyxpLGkzMil7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDMpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGI0ID0gMHhGRiAmIGkzMiA+PiAyNCxcbiAgICAgIGIzID0gMHhGRiAmIGkzMiA+PiAxNixcbiAgICAgIGIyID0gMHhGRiAmIGkzMiA+PiA4LFxuICAgICAgYjEgPSAweEZGICYgaTMyO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAwLCBiMSk7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDEsIGIyKTtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMiwgYjMpO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAzLCBiNCk7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDMyKHMsaSxpMzIpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfc2V0MzJcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3NldDMyXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQzMihzLGksaTMyKXtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfc2V0MzIocyxpLGkzMik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfc2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19zZXQ2NChzLGksaTY0KXtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gNykgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYSA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoaTY0KTtcbiAgZm9yKHZhciBqID0gMDsgaiA8IDg7IGorKykge1xuICAgIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDcgLSBqLCBhW2pdKTtcbiAgfVxuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQ2NChzLGksaTY0KXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3RyaW5nX3NldDY0XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19zZXQ2NFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0NjQocyxpLGk2NCl7XG4gIHJldHVybiBjYW1sX2J5dGVzX3NldDY0KHMsaSxpNjQpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3NldFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19ib3VuZF9lcnJvciwgY2FtbF9ieXRlc191bnNhZmVfc2V0XG5mdW5jdGlvbiBjYW1sX2J5dGVzX3NldCAocywgaSwgYykge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSwgYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2ZfdXRmMTZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGpzb29faXNfYXNjaWksIGNhbWxfdXRmOF9vZl91dGYxNiwgTWxCeXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZyAocykge1xuICB2YXIgdGFnID0gOSAvKiBCWVRFUyB8IEFTQ0lJICovO1xuICBpZiAoIWpzb29faXNfYXNjaWkocykpXG4gICAgdGFnID0gOCAvKiBCWVRFUyB8IE5PVF9BU0NJSSAqLywgcyA9IGNhbWxfdXRmOF9vZl91dGYxNihzKTtcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKHRhZywgcywgcy5sZW5ndGgpO1xufVxuXG5cbi8vUHJvdmlkZXM6IE1sQnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMsIGpzb29faXNfYXNjaWksIGNhbWxfdXRmMTZfb2ZfdXRmOFxuZnVuY3Rpb24gTWxCeXRlcyAodGFnLCBjb250ZW50cywgbGVuZ3RoKSB7XG4gIHRoaXMudD10YWc7IHRoaXMuYz1jb250ZW50czsgdGhpcy5sPWxlbmd0aDtcbn1cbk1sQnl0ZXMucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKXtcbiAgc3dpdGNoICh0aGlzLnQpIHtcbiAgY2FzZSA5OiAvKkJZVEVTIHwgQVNDSUkqL1xuICAgIHJldHVybiB0aGlzLmM7XG4gIGRlZmF1bHQ6XG4gICAgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyh0aGlzKTtcbiAgY2FzZSAwOiAvKkJZVEVTIHwgVU5LT1dOKi9cbiAgICBpZiAoanNvb19pc19hc2NpaSh0aGlzLmMpKSB7XG4gICAgICB0aGlzLnQgPSA5OyAvKkJZVEVTIHwgQVNDSUkqL1xuICAgICAgcmV0dXJuIHRoaXMuYztcbiAgICB9XG4gICAgdGhpcy50ID0gODsgLypCWVRFUyB8IE5PVF9BU0NJSSovXG4gIGNhc2UgODogLypCWVRFUyB8IE5PVF9BU0NJSSovXG4gICAgcmV0dXJuIHRoaXMuYztcbiAgfVxufTtcbk1sQnl0ZXMucHJvdG90eXBlLnRvVXRmMTYgPSBmdW5jdGlvbiAoKXtcbiAgdmFyIHIgPSB0aGlzLnRvU3RyaW5nKCk7XG4gIGlmKHRoaXMudCA9PSA5KSByZXR1cm4gclxuICByZXR1cm4gY2FtbF91dGYxNl9vZl91dGY4KHIpO1xufVxuTWxCeXRlcy5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbiAoKXtcbiAgdmFyIGNvbnRlbnQgPSB0aGlzLnQgPT0gNCA/IHRoaXMuYy5zbGljZSgpIDogdGhpcy5jO1xuICByZXR1cm4gbmV3IE1sQnl0ZXModGhpcy50LGNvbnRlbnQsdGhpcy5sKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9zdHJfcmVwZWF0LCBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMgKHMpIHtcbiAgLyogQXNzdW1lcyBub3QgQllURVMgKi9cbiAgaWYgKHMudCA9PSAyIC8qIFBBUlRJQUwgKi8pXG4gICAgcy5jICs9IGNhbWxfc3RyX3JlcGVhdChzLmwgLSBzLmMubGVuZ3RoLCAnXFwwJylcbiAgZWxzZVxuICAgIHMuYyA9IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyAocy5jLCAwLCBzLmMubGVuZ3RoKTtcbiAgcy50ID0gMDsgLypCWVRFUyB8IFVOS09XTiovXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuZnVuY3Rpb24gY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IChzKSB7XG4gIC8qIEFzc3VtZXMgbm90IEFSUkFZICovXG4gIHZhciBhID0gbmV3IFVpbnQ4QXJyYXkocy5sKTtcbiAgdmFyIGIgPSBzLmMsIGwgPSBiLmxlbmd0aCwgaSA9IDA7XG4gIGZvciAoOyBpIDwgbDsgaSsrKSBhW2ldID0gYi5jaGFyQ29kZUF0KGkpO1xuICBmb3IgKGwgPSBzLmw7IGkgPCBsOyBpKyspIGFbaV0gPSAwO1xuICBzLmMgPSBhO1xuICBzLnQgPSA0OyAvKiBBUlJBWSAqL1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMgKHMpIHtcbiAgaWYgKHMudCAhPSA0IC8qIEFSUkFZICovKSBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkocyk7XG4gIHJldHVybiBzLmM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0XG5mdW5jdGlvbiBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyAocykge1xuICB2YXIgbCA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKTtcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIHZhciBpID0gMDtcbiAgZm9yICg7IGkgPCBsOyBpKyspIGFbaV0gPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsaSk7XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NyZWF0ZV9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IE1sQnl0ZXMsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9jcmVhdGVfc3RyaW5nKGxlbikge1xuICBpZihsZW4gPCAwKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHJpbmcuY3JlYXRlXCIpO1xuICByZXR1cm4gbmV3IE1sQnl0ZXMobGVuPzI6OSxcIlwiLGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3JlYXRlX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfY3JlYXRlX3N0cmluZyhsZW4pIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyaW5nLmNyZWF0ZVwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jcmVhdGVfYnl0ZXMgY29uc3Rcbi8vUmVxdWlyZXM6IE1sQnl0ZXMsY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2NyZWF0ZV9ieXRlcyhsZW4pIHtcbiAgaWYgKGxlbiA8IDApIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJ5dGVzLmNyZWF0ZVwiKTtcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKGxlbj8yOjksXCJcIixsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9zdWJhcnJheV90b19qc2J5dGVzLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9hcnJheSAoYSkge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMoYSwwLGEubGVuZ3RoKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2ZfYXJyYXkgKGEpIHtcbiAgaWYoISAoYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKSB7XG4gICAgYSA9IG5ldyBVaW50OEFycmF5KGEpO1xuICB9XG4gIHJldHVybiBuZXcgTWxCeXRlcyg0LGEsYS5sZW5ndGgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2NvbXBhcmUgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19jb21wYXJlKHMxLCBzMikge1xuICAoczEudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczEpO1xuICAoczIudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczIpO1xuICByZXR1cm4gKHMxLmMgPCBzMi5jKT8tMTooczEuYyA+IHMyLmMpPzE6MDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2VxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZXF1YWwoczEsIHMyKSB7XG4gIGlmKHMxID09PSBzMikgcmV0dXJuIDE7XG4gIChzMS50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMSk7XG4gIChzMi50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMik7XG4gIHJldHVybiAoczEuYyA9PSBzMi5jKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX25vdGVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2VxdWFsXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ub3RlcXVhbChzMSwgczIpIHsgcmV0dXJuIDEtY2FtbF9zdHJpbmdfZXF1YWwoczEsIHMyKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX25vdGVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfZXF1YWxcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfbm90ZXF1YWwoczEsIHMyKSB7IHJldHVybiAxLWNhbWxfYnl0ZXNfZXF1YWwoczEsIHMyKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2xlc3NlcXVhbCBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2xlc3NlcXVhbChzMSwgczIpIHtcbiAgKHMxLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMxKTtcbiAgKHMyLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMyKTtcbiAgcmV0dXJuIChzMS5jIDw9IHMyLmMpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19sZXNzdGhhbiBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2xlc3N0aGFuKHMxLCBzMikge1xuICAoczEudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczEpO1xuICAoczIudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczIpO1xuICByZXR1cm4gKHMxLmMgPCBzMi5jKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dyZWF0ZXJlcXVhbFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfbGVzc2VxdWFsXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ncmVhdGVyZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19sZXNzZXF1YWwoczIsczEpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19ncmVhdGVyZXF1YWxcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfbGVzc2VxdWFsXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dyZWF0ZXJlcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfbGVzc2VxdWFsKHMyLHMxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ3JlYXRlcnRoYW5cbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2xlc3N0aGFuXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ncmVhdGVydGhhbihzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX2xlc3N0aGFuKHMyLCBzMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW5cbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfbGVzc3RoYW5cbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW4oczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2xlc3N0aGFuKHMyLCBzMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmlsbF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9zdHJfcmVwZWF0LCBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbi8vQWxpYXM6IGNhbWxfZmlsbF9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZmlsbF9ieXRlcyhzLCBpLCBsLCBjKSB7XG4gIGlmIChsID4gMCkge1xuICAgIGlmIChpID09IDAgJiYgKGwgPj0gcy5sIHx8IChzLnQgPT0gMiAvKiBQQVJUSUFMICovICYmIGwgPj0gcy5jLmxlbmd0aCkpKSB7XG4gICAgICBpZiAoYyA9PSAwKSB7XG4gICAgICAgIHMuYyA9IFwiXCI7XG4gICAgICAgIHMudCA9IDI7IC8qIFBBUlRJQUwgKi9cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMuYyA9IGNhbWxfc3RyX3JlcGVhdCAobCwgU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7XG4gICAgICAgIHMudCA9IChsID09IHMubCk/MCAvKiBCWVRFUyB8IFVOS09XTiAqLyA6MjsgLyogUEFSVElBTCAqL1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocy50ICE9IDQgLyogQVJSQVkgKi8pIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheShzKTtcbiAgICAgIGZvciAobCArPSBpOyBpIDwgbDsgaSsrKSBzLmNbaV0gPSBjO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ibGl0X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMsIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuZnVuY3Rpb24gY2FtbF9ibGl0X2J5dGVzKHMxLCBpMSwgczIsIGkyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgaWYgKChpMiA9PSAwKSAmJlxuICAgICAgKGxlbiA+PSBzMi5sIHx8IChzMi50ID09IDIgLyogUEFSVElBTCAqLyAmJiBsZW4gPj0gczIuYy5sZW5ndGgpKSkge1xuICAgIHMyLmMgPSAoczEudCA9PSA0IC8qIEFSUkFZICovKT9cbiAgICAgIGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyhzMS5jLCBpMSwgbGVuKTpcbiAgICAgIChpMSA9PSAwICYmIHMxLmMubGVuZ3RoID09IGxlbik/czEuYzpzMS5jLnN1YnN0cihpMSwgbGVuKTtcbiAgICBzMi50ID0gKHMyLmMubGVuZ3RoID09IHMyLmwpPzAgLyogQllURVMgfCBVTktPV04gKi8gOjI7IC8qIFBBUlRJQUwgKi9cbiAgfSBlbHNlIGlmIChzMi50ID09IDIgLyogUEFSVElBTCAqLyAmJiBpMiA9PSBzMi5jLmxlbmd0aCkge1xuICAgIHMyLmMgKz0gKHMxLnQgPT0gNCAvKiBBUlJBWSAqLyk/XG4gICAgICBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMoczEuYywgaTEsIGxlbik6XG4gICAgICAoaTEgPT0gMCAmJiBzMS5jLmxlbmd0aCA9PSBsZW4pP3MxLmM6czEuYy5zdWJzdHIoaTEsIGxlbik7XG4gICAgczIudCA9IChzMi5jLmxlbmd0aCA9PSBzMi5sKT8wIC8qIEJZVEVTIHwgVU5LT1dOICovIDoyOyAvKiBQQVJUSUFMICovXG4gIH0gZWxzZSB7XG4gICAgaWYgKHMyLnQgIT0gNCAvKiBBUlJBWSAqLykgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5KHMyKTtcbiAgICB2YXIgYzEgPSBzMS5jLCBjMiA9IHMyLmM7XG4gICAgaWYgKHMxLnQgPT0gNCAvKiBBUlJBWSAqLykge1xuICAgICAgaWYgKGkyIDw9IGkxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGMyIFtpMiArIGldID0gYzEgW2kxICsgaV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKHZhciBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIGMyIFtpMiArIGldID0gYzEgW2kxICsgaV07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBsID0gTWF0aC5taW4gKGxlbiwgYzEubGVuZ3RoIC0gaTEpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsOyBpKyspIGMyIFtpMiArIGldID0gYzEuY2hhckNvZGVBdChpMSArIGkpO1xuICAgICAgZm9yICg7IGkgPCBsZW47IGkrKykgYzIgW2kyICsgaV0gPSAwO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ibGl0X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ibGl0X2J5dGVzLCBjYW1sX2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ibGl0X3N0cmluZyhhLGIsYyxkLGUpIHtcbiAgY2FtbF9ibGl0X2J5dGVzKGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKGEpLGIsYyxkLGUpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aCBjb25zdFxuZnVuY3Rpb24gY2FtbF9tbF9ieXRlc19sZW5ndGgocykgeyByZXR1cm4gcy5sIH1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKSB7XG4gIHJldHVybiBzLmNoYXJDb2RlQXQoaSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfdW5zYWZlX3NldCAocywgaSwgYykge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfdW5zYWZlX3NldFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSB7XG4gIHJldHVybiBzLmxlbmd0aFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19jb21wYXJlIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2NvbXBhcmUoczEsIHMyKSB7XG4gIHJldHVybiAoczEgPCBzMik/LTE6KHMxID4gczIpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZXF1YWwgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZXF1YWwoczEsIHMyKSB7XG4gIGlmKHMxID09PSBzMikgcmV0dXJuIDE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19sZXNzZXF1YWwgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbGVzc2VxdWFsKHMxLCBzMikge1xuICByZXR1cm4gKHMxIDw9IHMyKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2xlc3N0aGFuIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2xlc3N0aGFuKHMxLCBzMikge1xuICByZXR1cm4gKHMxIDwgczIpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfYnl0ZXMocykge1xuICAocy50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzKTtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocy5jKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2ZfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX3N0cmluZyhzKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyh4KSB7IHJldHVybiB4IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZyBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHgpIHsgcmV0dXJuIHggfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczoganNvb19pc19hc2NpaSwgY2FtbF91dGYxNl9vZl91dGY4XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpIHtcbiAgaWYoanNvb19pc19hc2NpaShzKSlcbiAgICByZXR1cm4gcztcbiAgcmV0dXJuIGNhbWxfdXRmMTZfb2ZfdXRmOChzKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczoganNvb19pc19hc2NpaSwgY2FtbF91dGY4X29mX3V0ZjE2LCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChzKSB7XG4gIGlmIChqc29vX2lzX2FzY2lpKHMpKVxuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpXG4gIGVsc2UgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoY2FtbF91dGY4X29mX3V0ZjE2KHMpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl9qc2J5dGVzIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMocykgeyByZXR1cm4gbmV3IE1sQnl0ZXMoMCxzLHMubGVuZ3RoKTsgfVxuXG5cbi8vIFRoZSBzZWN0aW9uIGJlbG93IHNob3VsZCBiZSB1c2VkIHdoZW4gdXNlLWpzLXN0cmluZz1mYWxzZVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfdW5zYWZlX2dldChzLGkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ191bnNhZmVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXQgKHMsIGksIGMpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfdW5zYWZlX3NldChzLGksYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19sZW5ndGhcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSB7XG4gIHJldHVybiBjYW1sX21sX2J5dGVzX2xlbmd0aChzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19jb21wYXJlXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2NvbXBhcmVcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2NvbXBhcmUoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2NvbXBhcmUoczEsczIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2VxdWFsXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2VxdWFsXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19lcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfZXF1YWwoczEsczIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2xlc3NlcXVhbFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19sZXNzZXF1YWxcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2xlc3NlcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfbGVzc2VxdWFsKHMxLHMyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19sZXNzdGhhblxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19sZXNzdGhhblxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbGVzc3RoYW4oczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2xlc3N0aGFuKHMxLHMyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9ieXRlc1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfYnl0ZXMocykgeyByZXR1cm4gcyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2Zfc3RyaW5nIGNvbnN0XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX3N0cmluZyhzKSB7IHJldHVybiBzIH1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl9qc2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpIHsgcmV0dXJuIGNhbWxfYnl0ZXNfb2ZfanNieXRlcyhzKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpIHtcbiAgKHMudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMocyk7XG4gIHJldHVybiBzLmMgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyBtdXRhYmxlIChjb25zdClcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpe1xuICByZXR1cm4gcy50b1V0ZjE2KClcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2ZfdXRmMTZfanNzdHJpbmdcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChzKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nKHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX21sX2J5dGVzXG4vL1JlcXVpcmVzOiBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX2lzX21sX2J5dGVzKHMpIHtcbiAgcmV0dXJuIChzIGluc3RhbmNlb2YgTWxCeXRlcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfYnl0ZXNfY29udGVudFxuLy9SZXF1aXJlczogTWxCeXRlcywgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9tbF9ieXRlc19jb250ZW50KHMpIHtcbiAgc3dpdGNoIChzLnQgJiA2KSB7XG4gIGRlZmF1bHQ6IC8qIFBBUlRJQUwgKi9cbiAgICBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMpO1xuICBjYXNlIDA6IC8qIEJZVEVTICovXG4gICAgcmV0dXJuIHMuYztcbiAgY2FzZSA0OlxuICAgIHJldHVybiBzLmNcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX21sX3N0cmluZ1xuLy9SZXF1aXJlczoganNvb19pc19hc2NpaVxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2lzX21sX3N0cmluZyhzKSB7XG4gIHJldHVybiAodHlwZW9mIHMgPT09IFwic3RyaW5nXCIgJiYgIS9bXlxceDAwLVxceGZmXS8udGVzdChzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfbWxfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2lzX21sX3N0cmluZyhzKSB7XG4gIHJldHVybiBjYW1sX2lzX21sX2J5dGVzKHMpO1xufVxuXG4vLyBUaGUgZnVuY3Rpb25zIGJlbG93IGFyZSBkZXByZWNhdGVkXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fYnl0ZV9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfanNfdG9fYnl0ZV9zdHJpbmcocykgeyByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmV3X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9uZXdfc3RyaW5nIChzKSB7IHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19mcm9tX3N0cmluZyBtdXRhYmxlIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX2Zyb21fc3RyaW5nKHMpIHtcbiAgcmV0dXJuIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdG9fanNfc3RyaW5nIG11dGFibGUgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfdG9fanNfc3RyaW5nKHMpIHtcbiAgcmV0dXJuIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc190b19zdHJpbmcgKHMpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKHMpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9hcnJheV9vZl9zdHJpbmcoeCkgeyByZXR1cm4gY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmcoeCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2FycmF5X29mX2J5dGVzKHgpIHsgcmV0dXJuIGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMoeCkgfVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9SYWlzZSBleGNlcHRpb25cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9jb25zdGFudCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3JhaXNlX2NvbnN0YW50ICh0YWcpIHsgdGhyb3cgdGFnOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfd2l0aF9hcmcgKGNvbnN0LCBtdXRhYmxlKVxuLy9SZXF1aXJlczogY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3dpdGhfYXJnICh0YWcsIGFyZykgeyB0aHJvdyBjYW1sX21heWJlX2F0dGFjaF9iYWNrdHJhY2UoWzAsIHRhZywgYXJnXSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV93aXRoX2FyZ3MgKGNvbnN0LCBtdXRhYmxlKVxuLy9SZXF1aXJlczogY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3dpdGhfYXJncyAodGFnLCBhcmdzKSB7IHRocm93IGNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZShbMCwgdGFnXS5jb25jYXQoYXJncykpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfd2l0aF9hcmcsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcgKHRhZywgbXNnKSB7XG4gIGNhbWxfcmFpc2Vfd2l0aF9hcmcgKHRhZywgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhtc2cpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mYWlsd2l0aCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nLCBjYW1sX2dsb2JhbF9kYXRhLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ZhaWx3aXRoIChtc2cpIHtcbiAgaWYoIWNhbWxfZ2xvYmFsX2RhdGEuRmFpbHVyZSlcbiAgICBjYW1sX2dsb2JhbF9kYXRhLkZhaWx1cmU9WzI0OCxjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiRmFpbHVyZVwiKSwtM107XG4gIGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcoY2FtbF9nbG9iYWxfZGF0YS5GYWlsdXJlLCBtc2cpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nLCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX2ludmFsaWRfYXJndW1lbnQgKG1zZykge1xuICBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nKGNhbWxfZ2xvYmFsX2RhdGEuSW52YWxpZF9hcmd1bWVudCwgbXNnKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSAoKSB7XG4gIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9nbG9iYWxfZGF0YS5FbmRfb2ZfZmlsZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCkge1xuICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfZ2xvYmFsX2RhdGEuRGl2aXNpb25fYnlfemVybyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3JhaXNlX25vdF9mb3VuZCAoKSB7XG4gIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9nbG9iYWxfZGF0YS5Ob3RfZm91bmQpOyB9XG5cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yICgpIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NhbGxfZ2VuIChjb25zdCwgc2hhbGxvdylcbi8vSWY6ICFlZmZlY3RzXG4vL1dlYWtkZWZcbmZ1bmN0aW9uIGNhbWxfY2FsbF9nZW4oZiwgYXJncykge1xuICB2YXIgbiA9IChmLmwgPj0gMCk/Zi5sOihmLmwgPSBmLmxlbmd0aCk7XG4gIHZhciBhcmdzTGVuID0gYXJncy5sZW5ndGg7XG4gIHZhciBkID0gbiAtIGFyZ3NMZW47XG4gIGlmIChkID09IDApXG4gICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgYXJncyk7XG4gIGVsc2UgaWYgKGQgPCAwKSB7XG4gICAgdmFyIGcgPSBmLmFwcGx5KG51bGwsYXJncy5zbGljZSgwLG4pKTtcbiAgICBpZih0eXBlb2YgZyAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gZztcbiAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihnLGFyZ3Muc2xpY2UobikpO1xuICB9XG4gIGVsc2Uge1xuICAgIHN3aXRjaCAoZCkge1xuICAgIGNhc2UgMToge1xuICAgICAgdmFyIGcgPSBmdW5jdGlvbiAoeCl7XG4gICAgICAgIHZhciBuYXJncyA9IG5ldyBBcnJheShhcmdzTGVuICsgMSk7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzTGVuOyBpKysgKSBuYXJnc1tpXSA9IGFyZ3NbaV07XG4gICAgICAgIG5hcmdzW2FyZ3NMZW5dID0geDtcbiAgICAgICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgbmFyZ3MpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgMjoge1xuICAgICAgdmFyIGcgPSBmdW5jdGlvbiAoeCwgeSl7XG4gICAgICAgIHZhciBuYXJncyA9IG5ldyBBcnJheShhcmdzTGVuICsgMik7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzTGVuOyBpKysgKSBuYXJnc1tpXSA9IGFyZ3NbaV07XG4gICAgICAgIG5hcmdzW2FyZ3NMZW5dID0geDtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbiArIDFdID0geTtcbiAgICAgICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgbmFyZ3MpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHZhciBnID0gZnVuY3Rpb24gKCl7XG4gICAgICAgIHZhciBleHRyYV9hcmdzID0gKGFyZ3VtZW50cy5sZW5ndGggPT0gMCk/MTphcmd1bWVudHMubGVuZ3RoO1xuICAgICAgICB2YXIgbmFyZ3MgPSBuZXcgQXJyYXkoYXJncy5sZW5ndGgrZXh0cmFfYXJncyk7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrICkgbmFyZ3NbaV0gPSBhcmdzW2ldO1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrICkgbmFyZ3NbYXJncy5sZW5ndGgraV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsIG5hcmdzKVxuICAgICAgfTtcbiAgICB9fVxuICAgIGcubCA9IGQ7XG4gICAgcmV0dXJuIGc7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9jYWxsX2dlbiAoY29uc3QsIHNoYWxsb3cpXG4vL0lmOiBlZmZlY3RzXG4vL1dlYWtkZWZcbmZ1bmN0aW9uIGNhbWxfY2FsbF9nZW4oZiwgYXJncykge1xuICB2YXIgbiA9IChmLmwgPj0gMCk/Zi5sOihmLmwgPSBmLmxlbmd0aCk7XG4gIHZhciBhcmdzTGVuID0gYXJncy5sZW5ndGg7XG4gIHZhciBkID0gbiAtIGFyZ3NMZW47XG4gIGlmIChkID09IDApIHtcbiAgICByZXR1cm4gZi5hcHBseShudWxsLCBhcmdzKTtcbiAgfSBlbHNlIGlmIChkIDwgMCkge1xuICAgIHZhciByZXN0ID0gYXJncy5zbGljZShuIC0gMSk7XG4gICAgdmFyIGsgPSBhcmdzIFthcmdzTGVuIC0gMV07XG4gICAgYXJncyA9IGFyZ3Muc2xpY2UoMCwgbik7XG4gICAgYXJnc1tuIC0gMV0gPSBmdW5jdGlvbiAoZykge1xuICAgICAgaWYgKHR5cGVvZiBnICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBrKGcpO1xuICAgICAgdmFyIGFyZ3MgPSByZXN0LnNsaWNlKCk7XG4gICAgICBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPSBrO1xuICAgICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZywgYXJncyk7IH07XG4gICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgYXJnc0xlbi0tO1xuICAgIHZhciBrID0gYXJncyBbYXJnc0xlbl07XG4gICAgc3dpdGNoIChkKSB7XG4gICAgY2FzZSAxOiB7XG4gICAgICB2YXIgZyA9IGZ1bmN0aW9uICh4LCB5KXtcbiAgICAgICAgdmFyIG5hcmdzID0gbmV3IEFycmF5KGFyZ3NMZW4gKyAyKTtcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3NMZW47IGkrKyApIG5hcmdzW2ldID0gYXJnc1tpXTtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbl0gPSB4O1xuICAgICAgICBuYXJnc1thcmdzTGVuICsgMV0gPSB5O1xuICAgICAgICByZXR1cm4gZi5hcHBseShudWxsLCBuYXJncylcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAyOiB7XG4gICAgICB2YXIgZyA9IGZ1bmN0aW9uICh4LCB5LCB6KXtcbiAgICAgICAgdmFyIG5hcmdzID0gbmV3IEFycmF5KGFyZ3NMZW4gKyAzKTtcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3NMZW47IGkrKyApIG5hcmdzW2ldID0gYXJnc1tpXTtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbl0gPSB4O1xuICAgICAgICBuYXJnc1thcmdzTGVuICsgMV0gPSB5O1xuICAgICAgICBuYXJnc1thcmdzTGVuICsgMl0gPSB6O1xuICAgICAgICByZXR1cm4gZi5hcHBseShudWxsLCBuYXJncylcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgdmFyIGcgPSBmdW5jdGlvbiAoKXtcbiAgICAgICAgdmFyIGV4dHJhX2FyZ3MgPSAoYXJndW1lbnRzLmxlbmd0aCA9PSAwKT8xOmFyZ3VtZW50cy5sZW5ndGg7XG4gICAgICAgIHZhciBuYXJncyA9IG5ldyBBcnJheShhcmdzTGVuICsgZXh0cmFfYXJncyk7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzTGVuOyBpKysgKSBuYXJnc1tpXSA9IGFyZ3NbaV07XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKysgKVxuICAgICAgICAgIG5hcmdzW2FyZ3NMZW4gKyBpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZiwgbmFyZ3MpXG4gICAgICB9O1xuICAgIH19XG4gICAgZy5sID0gZCArIDE7XG4gICAgcmV0dXJuIGsoZyk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9uYW1lZF92YWx1ZXNcbnZhciBjYW1sX25hbWVkX3ZhbHVlcyA9IHt9O1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlIChjb25zdCxtdXRhYmxlKVxuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUobm0sdikge1xuICBjYW1sX25hbWVkX3ZhbHVlc1tjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5tKV0gPSB2O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9uYW1lZF92YWx1ZVxuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZXNcbmZ1bmN0aW9uIGNhbWxfbmFtZWRfdmFsdWUobm0pIHtcbiAgcmV0dXJuIGNhbWxfbmFtZWRfdmFsdWVzW25tXVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dsb2JhbF9kYXRhXG52YXIgY2FtbF9nbG9iYWxfZGF0YSA9IFswXTtcblxuLy9Qcm92aWRlczogY2FtbF9idWlsZF9zeW1ib2xzXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9idWlsZF9zeW1ib2xzKHRvYykge1xuICB2YXIgc3ltYjtcbiAgd2hpbGUodG9jKSB7XG4gICAgaWYoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcodG9jWzFdWzFdKSA9PSBcIlNZSlNcIikge1xuICAgICAgc3ltYiA9IHRvY1sxXVsyXTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBlbHNlIHRvYyA9IHRvY1syXVxuICB9XG4gIHZhciByID0ge307XG4gIGlmKHN5bWIpIHtcbiAgICBmb3IodmFyIGkgPSAxOyBpIDwgc3ltYi5sZW5ndGg7IGkrKyl7XG4gICAgICByW2NhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHN5bWJbaV1bMV0pXSA9IHN5bWJbaV1bMl1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVnaXN0ZXJfZ2xvYmFsIChjb25zdCwgc2hhbGxvdywgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhLCBjYW1sX2NhbGxiYWNrLCBjYW1sX2J1aWxkX3N5bWJvbHNcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfcmVnaXN0ZXJfZ2xvYmFsIChuLCB2LCBuYW1lX29wdCkge1xuICBpZiAobmFtZV9vcHQpIHtcbiAgICB2YXIgbmFtZSA9IG5hbWVfb3B0O1xuICAgIGlmKGdsb2JhbFRoaXMudG9wbGV2ZWxSZWxvYykge1xuICAgICAgbiA9IGNhbWxfY2FsbGJhY2soZ2xvYmFsVGhpcy50b3BsZXZlbFJlbG9jLCBbbmFtZV0pO1xuICAgIH1cbiAgICBlbHNlIGlmIChjYW1sX2dsb2JhbF9kYXRhLnRvYykge1xuICAgICAgaWYoIWNhbWxfZ2xvYmFsX2RhdGEuc3ltYm9scykge1xuICAgICAgICBjYW1sX2dsb2JhbF9kYXRhLnN5bWJvbHMgPSBjYW1sX2J1aWxkX3N5bWJvbHMoY2FtbF9nbG9iYWxfZGF0YS50b2MpXG4gICAgICB9XG4gICAgICB2YXIgbmlkID0gY2FtbF9nbG9iYWxfZGF0YS5zeW1ib2xzW25hbWVdXG4gICAgICBpZihuaWQgPj0gMClcbiAgICAgICAgbiA9IG5pZFxuICAgICAgZWxzZSB7XG4gICAgICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3JlZ2lzdGVyX2dsb2JhbDogY2Fubm90IGxvY2F0ZSBcIiArIG5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjYW1sX2dsb2JhbF9kYXRhW24gKyAxXSA9IHY7XG4gIGlmKG5hbWVfb3B0KSBjYW1sX2dsb2JhbF9kYXRhW25hbWVfb3B0XSA9IHY7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2dsb2JhbF9kYXRhIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfZ2V0X2dsb2JhbF9kYXRhICgpIHsgcmV0dXJuIGNhbWxfZ2xvYmFsX2RhdGE7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pc19wcmludGFibGUgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9pc19wcmludGFibGUoYykgeyByZXR1cm4gKyhjID4gMzEgJiYgYyA8IDEyNyk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9tYXliZV9wcmludF9zdGF0c1xuZnVuY3Rpb24gY2FtbF9tYXliZV9wcmludF9zdGF0cyh1bml0KSB7IHJldHVybiAwIH1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gU3lzXG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfc3lzX2Vycm9yIChtc2cpIHtcbiAgY2FtbF9yYWlzZV93aXRoX3N0cmluZyhjYW1sX2dsb2JhbF9kYXRhLlN5c19lcnJvciwgbXNnKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZXhpdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3N5c19leGl0IChjb2RlKSB7XG4gIGlmKGdsb2JhbFRoaXMucXVpdCkgZ2xvYmFsVGhpcy5xdWl0KGNvZGUpO1xuICAvL25vZGVqc1xuICBpZihnbG9iYWxUaGlzLnByb2Nlc3MgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzLmV4aXQpXG4gICAgZ2xvYmFsVGhpcy5wcm9jZXNzLmV4aXQoY29kZSk7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkZ1bmN0aW9uICdleGl0JyBub3QgaW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb24oZXhuKXtcbiAgc3dpdGNoKGV4blsyXSkge1xuICBjYXNlIC04OiAvLyBNYXRjaF9mYWlsdXJlXG4gIGNhc2UgLTExOiAvLyBBc3NlcnRfZmFpbHVyZVxuICBjYXNlIC0xMjogLy8gVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGVcbiAgICByZXR1cm4gMTtcbiAgZGVmYXVsdDpcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zvcm1hdF9leGNlcHRpb25cbi8vUmVxdWlyZXM6IE1sQnl0ZXMsIGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfZm9ybWF0X2V4Y2VwdGlvbihleG4pe1xuICB2YXIgciA9IFwiXCI7XG4gIGlmKGV4blswXSA9PSAwKSB7XG4gICAgciArPSBleG5bMV1bMV07XG4gICAgaWYoZXhuLmxlbmd0aCA9PSAzICYmIGV4blsyXVswXSA9PSAwICYmIGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb24oZXhuWzFdKSkge1xuXG4gICAgICB2YXIgYnVja2V0ID0gZXhuWzJdO1xuICAgICAgdmFyIHN0YXJ0ID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHN0YXJ0ID0gMlxuICAgICAgdmFyIGJ1Y2tldCA9IGV4bjtcbiAgICB9XG4gICAgciArPSBcIihcIjtcbiAgICBmb3IodmFyIGkgPSBzdGFydDsgaSA8IGJ1Y2tldC5sZW5ndGg7IGkgKyspe1xuICAgICAgaWYoaSA+IHN0YXJ0KSByKz1cIiwgXCI7XG4gICAgICB2YXIgdiA9IGJ1Y2tldFtpXVxuICAgICAgaWYodHlwZW9mIHYgPT0gXCJudW1iZXJcIilcbiAgICAgICAgcis9IHYudG9TdHJpbmcoKTtcbiAgICAgIGVsc2UgaWYodiBpbnN0YW5jZW9mIE1sQnl0ZXMpe1xuICAgICAgICByKz0gJ1wiJyArIHYudG9TdHJpbmcoKSArICdcIic7XG4gICAgICB9XG4gICAgICBlbHNlIGlmKHR5cGVvZiB2ID09IFwic3RyaW5nXCIpe1xuICAgICAgICByKz0gJ1wiJyArIHYudG9TdHJpbmcoKSArICdcIic7XG4gICAgICB9XG4gICAgICBlbHNlIHIgKz0gXCJfXCI7XG4gICAgfVxuICAgIHIgKz0gXCIpXCJcbiAgfSBlbHNlIGlmIChleG5bMF0gPT0gMjQ4KXtcbiAgICByICs9IGV4blsxXVxuICB9XG4gIHJldHVybiByXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX2Zvcm1hdF9leGNlcHRpb24sIGNhbWxfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uKGVycil7XG4gIGlmKGVyciBpbnN0YW5jZW9mIEFycmF5ICYmIChlcnJbMF0gPT0gMCB8fCBlcnJbMF0gPT0gMjQ4KSkge1xuICAgIHZhciBoYW5kbGVyID0gY2FtbF9uYW1lZF92YWx1ZShcIlByaW50ZXhjLmhhbmRsZV91bmNhdWdodF9leGNlcHRpb25cIik7XG4gICAgaWYoaGFuZGxlcikgY2FtbF9jYWxsYmFjayhoYW5kbGVyLCBbZXJyLGZhbHNlXSk7XG4gICAgZWxzZSB7XG4gICAgICB2YXIgbXNnID0gY2FtbF9mb3JtYXRfZXhjZXB0aW9uKGVycik7XG4gICAgICB2YXIgYXRfZXhpdCA9IGNhbWxfbmFtZWRfdmFsdWUoXCJQZXJ2YXNpdmVzLmRvX2F0X2V4aXRcIik7XG4gICAgICBpZihhdF9leGl0KSBjYW1sX2NhbGxiYWNrKGF0X2V4aXQsIFswXSk7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbiBcIiArIG1zZyArIFwiXFxuXCIpO1xuICAgICAgaWYoZXJyLmpzX2Vycm9yKSB0aHJvdyBlcnIuanNfZXJyb3I7XG4gICAgfVxuICB9XG4gIGVsc2Uge1xuICAgIHRocm93IGVyclxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2V0X3N0YXRpY19lbnZcbmZ1bmN0aW9uIGNhbWxfc2V0X3N0YXRpY19lbnYoayx2KXtcbiAgaWYoIWdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52KVxuICAgIGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52ID0ge31cbiAgZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnZba10gPSB2O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczoganNvb19zeXNfZ2V0ZW52IChjb25zdClcbmZ1bmN0aW9uIGpzb29fc3lzX2dldGVudihuKSB7XG4gIHZhciBwcm9jZXNzID0gZ2xvYmFsVGhpcy5wcm9jZXNzO1xuICAvL25vZGVqcyBlbnZcbiAgaWYocHJvY2Vzc1xuICAgICAmJiBwcm9jZXNzLmVudlxuICAgICAmJiBwcm9jZXNzLmVudltuXSAhPSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIHByb2Nlc3MuZW52W25dO1xuICBpZihnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudlxuICAgICAmJiBnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudltuXSlcbiAgICByZXR1cm4gZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnZbbl1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZ2V0ZW52IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGpzb29fc3lzX2dldGVudlxuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0ZW52IChuYW1lKSB7XG4gIHZhciByID0ganNvb19zeXNfZ2V0ZW52KGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKG5hbWUpKTtcbiAgaWYociA9PT0gdW5kZWZpbmVkKVxuICAgIGNhbWxfcmFpc2Vfbm90X2ZvdW5kICgpO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcocilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfdW5zYWZlX2dldGVudlxuLy9SZXF1aXJlczogY2FtbF9zeXNfZ2V0ZW52XG5mdW5jdGlvbiBjYW1sX3N5c191bnNhZmVfZ2V0ZW52KG5hbWUpe1xuICByZXR1cm4gY2FtbF9zeXNfZ2V0ZW52IChuYW1lKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcmd2XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xudmFyIGNhbWxfYXJndiA9ICgoZnVuY3Rpb24gKCkge1xuICB2YXIgcHJvY2VzcyA9IGdsb2JhbFRoaXMucHJvY2VzcztcbiAgdmFyIG1haW4gPSBcImEub3V0XCI7XG4gIHZhciBhcmdzID0gW11cblxuICBpZihwcm9jZXNzXG4gICAgICYmIHByb2Nlc3MuYXJndlxuICAgICAmJiBwcm9jZXNzLmFyZ3YubGVuZ3RoID4gMSkge1xuICAgIHZhciBhcmd2ID0gcHJvY2Vzcy5hcmd2XG4gICAgLy9ub2RlanNcbiAgICBtYWluID0gYXJndlsxXTtcbiAgICBhcmdzID0gYXJndi5zbGljZSgyKTtcbiAgfVxuXG4gIHZhciBwID0gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcobWFpbik7XG4gIHZhciBhcmdzMiA9IFswLCBwXTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspXG4gICAgYXJnczIucHVzaChjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhhcmdzW2ldKSk7XG4gIHJldHVybiBhcmdzMjtcbn0pKCkpXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXhlY3V0YWJsZV9uYW1lXG4vL1JlcXVpcmVzOiBjYW1sX2FyZ3ZcbnZhciBjYW1sX2V4ZWN1dGFibGVfbmFtZSA9IGNhbWxfYXJndlsxXVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19nZXRfYXJndlxuLy9SZXF1aXJlczogY2FtbF9hcmd2XG5mdW5jdGlvbiBjYW1sX3N5c19nZXRfYXJndiAoYSkge1xuICByZXR1cm4gWzAsIGNhbWxfYXJndlsxXSwgY2FtbF9hcmd2XTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfYXJndlxuLy9SZXF1aXJlczogY2FtbF9hcmd2XG5mdW5jdGlvbiBjYW1sX3N5c19hcmd2IChhKSB7XG4gIHJldHVybiBjYW1sX2FyZ3Y7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX21vZGlmeV9hcmd2XG4vL1JlcXVpcmVzOiBjYW1sX2FyZ3ZcbmZ1bmN0aW9uIGNhbWxfc3lzX21vZGlmeV9hcmd2KGFyZyl7XG4gIGNhbWxfYXJndiA9IGFyZztcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZSBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9leGVjdXRhYmxlX25hbWVcbmZ1bmN0aW9uIGNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZShhKXtcbiAgcmV0dXJuIGNhbWxfZXhlY3V0YWJsZV9uYW1lXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3N5c3RlbV9jb21tYW5kXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zeXNfc3lzdGVtX2NvbW1hbmQoY21kKXtcbiAgdmFyIGNtZCA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKGNtZCk7XG4gIGlmICh0eXBlb2YgcmVxdWlyZSAhPSBcInVuZGVmaW5lZFwiKXtcbiAgICB2YXIgY2hpbGRfcHJvY2VzcyA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKTtcbiAgICBpZihjaGlsZF9wcm9jZXNzICYmIGNoaWxkX3Byb2Nlc3MuZXhlY1N5bmMpXG4gICAgICB0cnkge1xuICAgICAgICBjaGlsZF9wcm9jZXNzLmV4ZWNTeW5jKGNtZCx7c3RkaW86ICdpbmhlcml0J30pO1xuICAgICAgICByZXR1cm4gMFxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gMVxuICAgICAgfVxuICB9XG4gIGVsc2UgcmV0dXJuIDEyNztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfc3lzdGVtX2NvbW1hbmRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBjYW1sX3N5c19zeXN0ZW1fY29tbWFuZChjbWQpe1xuICByZXR1cm4gMTI3O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c190aW1lIG11dGFibGVcbnZhciBjYW1sX2luaXRpYWxfdGltZSA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgKiAwLjAwMTtcbmZ1bmN0aW9uIGNhbWxfc3lzX3RpbWUgKCkge1xuICB2YXIgbm93ID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcbiAgcmV0dXJuIG5vdyAqIDAuMDAxIC0gY2FtbF9pbml0aWFsX3RpbWU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlblxuLy9SZXF1aXJlczogY2FtbF9zeXNfdGltZVxuZnVuY3Rpb24gY2FtbF9zeXNfdGltZV9pbmNsdWRlX2NoaWxkcmVuKGIpIHtcbiAgcmV0dXJuIGNhbWxfc3lzX3RpbWUoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcmFuZG9tX3NlZWQgbXV0YWJsZVxuLy9UaGUgZnVuY3Rpb24gbmVlZHMgdG8gcmV0dXJuIGFuIGFycmF5IHNpbmNlIE9DYW1sIDQuMC4uLlxuZnVuY3Rpb24gY2FtbF9zeXNfcmFuZG9tX3NlZWQgKCkge1xuICBpZihnbG9iYWxUaGlzLmNyeXB0bykge1xuICAgIGlmKHR5cGVvZiBnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMgPT09ICdmdW5jdGlvbicpe1xuICAgICAgLy8gV2ViYnJvd3NlcnNcbiAgICAgIHZhciBhID0gbmV3IFVpbnQzMkFycmF5KDEpO1xuICAgICAgZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpO1xuICAgICAgcmV0dXJuIFswLGFbMF1dO1xuICAgIH0gZWxzZSBpZihnbG9iYWxUaGlzLmNyeXB0by5yYW5kb21CeXRlcyA9PT0gJ2Z1bmN0aW9uJyl7XG4gICAgICAvLyBOb2RlanNcbiAgICAgIHZhciBidWZmID0gZ2xvYmFsVGhpcy5jcnlwdG8ucmFuZG9tQnl0ZXMoNCk7XG4gICAgICB2YXIgYSA9IG5ldyBVaW50MzJBcnJheShidWZmKTtcbiAgICAgIHJldHVybiBbMCxhWzBdXTtcbiAgICB9XG4gIH1cbiAgdmFyIG5vdyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gIHZhciB4ID0gbm93XjB4ZmZmZmZmZmYqTWF0aC5yYW5kb20oKTtcbiAgcmV0dXJuIFswLHhdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9iaWdfZW5kaWFuIGNvbnN0XG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9iaWdfZW5kaWFuICgpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3Rfd29yZF9zaXplIGNvbnN0XG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF93b3JkX3NpemUgKCkgeyByZXR1cm4gMzI7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfaW50X3NpemUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X2ludF9zaXplICgpIHsgcmV0dXJuIDMyOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X21heF93b3NpemUgY29uc3Rcbi8vIG1heF9pbnQgLyA0IHNvIHRoYXQgdGhlIGZvbGxvd2luZyBkb2VzIG5vdCBvdmVyZmxvd1xuLy9sZXQgbWF4X3N0cmluZ19sZW5ndGggPSB3b3JkX3NpemUgLyA4ICogbWF4X2FycmF5X2xlbmd0aCAtIDE7O1xuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfbWF4X3dvc2l6ZSAoKSB7IHJldHVybiAoMHg3RkZGRkZGRi80KSB8IDA7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCBjb25zdFxuLy9SZXF1aXJlczogb3NfdHlwZVxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3VuaXggKCkgeyByZXR1cm4gb3NfdHlwZSA9PSBcIlVuaXhcIiA/IDEgOiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9vc3R5cGVfd2luMzIgY29uc3Rcbi8vUmVxdWlyZXM6IG9zX3R5cGVcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiAoKSB7IHJldHVybiBvc190eXBlID09IFwiV2luMzJcIiA/IDEgOiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9vc3R5cGVfY3lnd2luIGNvbnN0XG4vL1JlcXVpcmVzOiBvc190eXBlXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9vc3R5cGVfY3lnd2luICgpIHsgcmV0dXJuIG9zX3R5cGUgPT0gXCJDeWd3aW5cIiA/IDEgOiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X2JhY2tlbmRfdHlwZSBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlICgpIHtcbiAgcmV0dXJuIFswLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwianNfb2Zfb2NhbWxcIildO1xufVxuXG4vL1Byb3ZpZGVzOiBvc190eXBlXG52YXIgb3NfdHlwZSA9IChnbG9iYWxUaGlzLnByb2Nlc3MgJiZcbiAgICAgICAgICAgICAgIGdsb2JhbFRoaXMucHJvY2Vzcy5wbGF0Zm9ybSAmJlxuICAgICAgICAgICAgICAgZ2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtID09IFwid2luMzJcIikgPyBcIkN5Z3dpblwiIDogXCJVbml4XCI7XG5cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZ2V0X2NvbmZpZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgb3NfdHlwZVxuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0X2NvbmZpZyAoKSB7XG4gIHJldHVybiBbMCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhvc190eXBlKSwgMzIsIDBdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19pc2F0dHlcbmZ1bmN0aW9uIGNhbWxfc3lzX2lzYXR0eShfY2hhbikge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX3ZhcmlhbnRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV92YXJpYW50KF91bml0KSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX3BhcmFtZXRlcnNcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9wYXJhbWV0ZXJzKF91bml0KSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2luc3RhbGxfc2lnbmFsX2hhbmRsZXIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlcigpe3JldHVybiAwfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfd2FybmluZ3NcbnZhciBjYW1sX3J1bnRpbWVfd2FybmluZ3MgPSAwO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzXG4vL1JlcXVpcmVzOiBjYW1sX3J1bnRpbWVfd2FybmluZ3NcbmZ1bmN0aW9uIGNhbWxfbWxfZW5hYmxlX3J1bnRpbWVfd2FybmluZ3MgKGJvb2wpIHtcbiAgY2FtbF9ydW50aW1lX3dhcm5pbmdzID0gYm9vbDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcnVudGltZV93YXJuaW5nc19lbmFibGVkXG4vL1JlcXVpcmVzOiBjYW1sX3J1bnRpbWVfd2FybmluZ3NcbmZ1bmN0aW9uIGNhbWxfbWxfcnVudGltZV93YXJuaW5nc19lbmFibGVkIChfdW5pdCkge1xuICByZXR1cm4gY2FtbF9ydW50aW1lX3dhcm5pbmdzO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3BhY2V0aW1lX2VuYWJsZWQgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9zcGFjZXRpbWVfZW5hYmxlZChfdW5pdCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkKF91bml0KSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlZ2lzdGVyX2NoYW5uZWxfZm9yX3NwYWNldGltZSBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3JlZ2lzdGVyX2NoYW5uZWxfZm9yX3NwYWNldGltZShfY2hhbm5lbCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zcGFjZXRpbWVfb25seV93b3Jrc19mb3JfbmF0aXZlX2NvZGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfc3BhY2V0aW1lX29ubHlfd29ya3NfZm9yX25hdGl2ZV9jb2RlKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiU3BhY2V0aW1lIHByb2ZpbGluZyBvbmx5IHdvcmtzIGZvciBuYXRpdmUgY29kZVwiKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19pc19yZWd1bGFyX2ZpbGVcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19pc19yZWd1bGFyX2ZpbGUobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICByZXR1cm4gcm9vdC5kZXZpY2UuaXNGaWxlKHJvb3QucmVzdCk7XG59XG4vL0Fsd2F5c1xuLy9SZXF1aXJlczogY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfc2V0dXBfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIoKSB7XG4gIHZhciBwcm9jZXNzID0gZ2xvYmFsVGhpcy5wcm9jZXNzO1xuICBpZihwcm9jZXNzICYmIHByb2Nlc3Mub24pIHtcbiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIGZ1bmN0aW9uIChlcnIsIG9yaWdpbikge1xuICAgICAgY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24oZXJyKTtcbiAgICAgIHByb2Nlc3MuZXhpdCAoMik7XG4gICAgfSlcbiAgfVxuICBlbHNlIGlmKGdsb2JhbFRoaXMuYWRkRXZlbnRMaXN0ZW5lcil7XG4gICAgZ2xvYmFsVGhpcy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uKGV2ZW50KXtcbiAgICAgIGlmKGV2ZW50LmVycm9yKXtcbiAgICAgICAgY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24oZXZlbnQuZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5jYW1sX3NldHVwX3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyKCk7XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnXG4vL1JlcXVpcmVzOiBqc29vX3N5c19nZXRlbnZcbnZhciBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZyA9IEZMQUcoXCJ3aXRoLWpzLWVycm9yXCIpO1xuXG4oZnVuY3Rpb24gKCkge1xuICB2YXIgciA9IGpzb29fc3lzX2dldGVudihcIk9DQU1MUlVOUEFSQU1cIilcbiAgaWYociAhPT0gdW5kZWZpbmVkKXtcbiAgICB2YXIgbCA9IHIuc3BsaXQoXCIsXCIpO1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBsLmxlbmd0aDsgaSsrKXtcbiAgICAgIGlmKGxbaV0gPT0gXCJiXCIpIHsgY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWcgPSAxOyBicmVhayB9XG4gICAgICBlbHNlIGlmIChsW2ldLnN0YXJ0c1dpdGgoXCJiPVwiKSkge1xuICAgICAgICBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZyA9ICsobFtpXS5zbGljZSgyKSl9XG4gICAgICBlbHNlIGNvbnRpbnVlO1xuICAgIH1cbiAgfVxufSkgKClcblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzIGNvbnN0XG5mdW5jdGlvbiBjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzICgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfYmFja3RyYWNlX3N0YXR1c1xuLy9SZXF1aXJlczogY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWdcbmZ1bmN0aW9uIGNhbWxfYmFja3RyYWNlX3N0YXR1cyAoX3VuaXQpIHsgcmV0dXJuIGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnID8gMSA6IDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2V4Y2VwdGlvbl9iYWNrdHJhY2UgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZ2V0X2V4Y2VwdGlvbl9iYWNrdHJhY2UgKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9nZXRfZXhjZXB0aW9uX3Jhd19iYWNrdHJhY2UgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlICgpIHsgcmV0dXJuIFswXTsgfVxuLy9Qcm92aWRlczogY2FtbF9yZWNvcmRfYmFja3RyYWNlXG4vL1JlcXVpcmVzOiBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZ1xuZnVuY3Rpb24gY2FtbF9yZWNvcmRfYmFja3RyYWNlIChiKSB7IGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnID0gYjsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSAoKSB7IHJldHVybiBbMF07IH1cbi8vUHJvdmlkZXM6IGNhbWxfcmF3X2JhY2t0cmFjZV9sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfcmF3X2JhY2t0cmFjZV9sZW5ndGgoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90XG5mdW5jdGlvbiBjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90KCkgeyByZXR1cm4gMCB9XG4vL1Byb3ZpZGVzOiBjYW1sX3Jhd19iYWNrdHJhY2Vfc2xvdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3Jhd19iYWNrdHJhY2Vfc2xvdCAoKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlByaW50ZXhjLmdldF9yYXdfYmFja3RyYWNlX3Nsb3Q6IGluZGV4IG91dCBvZiBib3VuZHNcIik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZVxuZnVuY3Rpb24gY2FtbF9yZXN0b3JlX3Jhd19iYWNrdHJhY2UoZXhuLCBidCkgeyByZXR1cm4gMCB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9jdXJyZW50X2NhbGxzdGFjayBjb25zdFxuZnVuY3Rpb24gY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2sgKCkgeyByZXR1cm4gWzBdOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3Rcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3QoKXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3RcIik7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBsaWJyYXJ5XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gSnNsaWJcblxuLy9Qcm92aWRlczogY2FtbF9qc19wdXJlX2V4cHIgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfanNfcHVyZV9leHByIChmKSB7IHJldHVybiBjYW1sX2NhbGxiYWNrKGYsIFswXSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19zZXQgKG11dGFibGUsIGNvbnN0LCBtdXRhYmxlKVxuZnVuY3Rpb24gY2FtbF9qc19zZXQobyxmLHYpIHsgb1tmXT12O3JldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9qc19nZXQgKG11dGFibGUsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19nZXQobyxmKSB7IHJldHVybiBvW2ZdOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2RlbGV0ZSAobXV0YWJsZSwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2RlbGV0ZShvLGYpIHsgZGVsZXRlIG9bZl07IHJldHVybiAwfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2luc3RhbmNlb2YgKGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfaW5zdGFuY2VvZihvLGMpIHsgcmV0dXJuIChvIGluc3RhbmNlb2YgYykgPyAxIDogMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3R5cGVvZiAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX3R5cGVvZihvKSB7IHJldHVybiB0eXBlb2YgbzsgfVxuXG4vL1Byb3ZpZGVzOmNhbWxfdHJhbXBvbGluZVxuZnVuY3Rpb24gY2FtbF90cmFtcG9saW5lKHJlcykge1xuICB2YXIgYyA9IDE7XG4gIHdoaWxlKHJlcyAmJiByZXMuam9vX3RyYW1wKXtcbiAgICByZXMgPSByZXMuam9vX3RyYW1wLmFwcGx5KG51bGwsIHJlcy5qb29fYXJncyk7XG4gICAgYysrO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6Y2FtbF90cmFtcG9saW5lX3JldHVyblxuZnVuY3Rpb24gY2FtbF90cmFtcG9saW5lX3JldHVybihmLGFyZ3MpIHtcbiAgcmV0dXJuIHtqb29fdHJhbXA6Zixqb29fYXJnczphcmdzfTtcbn1cblxuLy9Qcm92aWRlczpjYW1sX3N0YWNrX2RlcHRoXG4vL0lmOiBlZmZlY3RzXG52YXIgY2FtbF9zdGFja19kZXB0aCA9IDA7XG5cbi8vUHJvdmlkZXM6Y2FtbF9zdGFja19jaGVja19kZXB0aFxuLy9JZjogZWZmZWN0c1xuLy9SZXF1aXJlczpjYW1sX3N0YWNrX2RlcHRoXG5mdW5jdGlvbiBjYW1sX3N0YWNrX2NoZWNrX2RlcHRoKCkge1xuICAgIHJldHVybiAtLWNhbWxfc3RhY2tfZGVwdGggPiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NhbGxiYWNrXG4vL0lmOiAhZWZmZWN0c1xuLy9SZXF1aXJlczpjYW1sX2NhbGxfZ2VuXG52YXIgY2FtbF9jYWxsYmFjayA9IGNhbWxfY2FsbF9nZW47XG5cbi8vUHJvdmlkZXM6IGNhbWxfY2FsbGJhY2tcbi8vSWY6IGVmZmVjdHNcbi8vUmVxdWlyZXM6Y2FtbF9zdGFja19kZXB0aCwgY2FtbF9jYWxsX2dlbiwgY2FtbF9leG5fc3RhY2ssIGNhbWxfZmliZXJfc3RhY2ssIGNhbWxfd3JhcF9leGNlcHRpb24sIGNhbWxfcmVzdW1lX3N0YWNrLCBjYW1sX2ZyZXNoX29vX2lkLCBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3JhaXNlX3dpdGhfYXJnLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2NvbnN0YW50XG5mdW5jdGlvbiBjYW1sX2NhbGxiYWNrKGYsYXJncykge1xuICBmdW5jdGlvbiB1bmNhdWdodF9lZmZlY3RfaGFuZGxlcihlZmYsayxtcykge1xuICAgIC8vIFJlc3VtZXMgdGhlIGNvbnRpbnVhdGlvbiBrIGJ5IHJhaXNpbmcgZXhjZXB0aW9uIFVuaGFuZGxlZC5cbiAgICBjYW1sX3Jlc3VtZV9zdGFjayhrWzFdLG1zKTtcbiAgICB2YXIgZXhuID0gY2FtbF9uYW1lZF92YWx1ZShcIkVmZmVjdC5VbmhhbmRsZWRcIik7XG4gICAgaWYoZXhuKSBjYW1sX3JhaXNlX3dpdGhfYXJnKGV4biwgZWZmKTtcbiAgICBlbHNlIHtcbiAgICAgIGV4biA9IFsyNDgsY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIkVmZmVjdC5VbmhhbmRsZWRcIiksIGNhbWxfZnJlc2hfb29faWQoMCldO1xuICAgICAgY2FtbF9yYWlzZV9jb25zdGFudChleG4pO1xuICAgIH1cbiAgfVxuICB2YXIgc2F2ZWRfc3RhY2tfZGVwdGggPSBjYW1sX3N0YWNrX2RlcHRoO1xuICB2YXIgc2F2ZWRfZXhuX3N0YWNrID0gY2FtbF9leG5fc3RhY2s7XG4gIHZhciBzYXZlZF9maWJlcl9zdGFjayA9IGNhbWxfZmliZXJfc3RhY2s7XG4gIHRyeSB7XG4gICAgY2FtbF9leG5fc3RhY2sgPSAwO1xuICAgIGNhbWxfZmliZXJfc3RhY2sgPVxuICAgICAge2g6WzAsIDAsIDAsIHVuY2F1Z2h0X2VmZmVjdF9oYW5kbGVyXSwgcjp7azowLCB4OjAsIGU6MH19O1xuICAgIHZhciByZXMgPSB7am9vX3RyYW1wOiBmLFxuICAgICAgICAgICAgICAgam9vX2FyZ3M6IGFyZ3MuY29uY2F0KGZ1bmN0aW9uICh4KXtyZXR1cm4geDt9KX07XG4gICAgZG8ge1xuICAgICAgY2FtbF9zdGFja19kZXB0aCA9IDQwO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmVzID0gY2FtbF9jYWxsX2dlbihyZXMuam9vX3RyYW1wLCByZXMuam9vX2FyZ3MpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvKiBIYW5kbGUgZXhjZXB0aW9uIGNvbWluZyBmcm9tIEphdmFTY3JpcHQgb3IgZnJvbSB0aGUgcnVudGltZS4gKi9cbiAgICAgICAgaWYgKCFjYW1sX2V4bl9zdGFjaykgdGhyb3cgZTtcbiAgICAgICAgdmFyIGhhbmRsZXIgPSBjYW1sX2V4bl9zdGFja1sxXTtcbiAgICAgICAgY2FtbF9leG5fc3RhY2sgPSBjYW1sX2V4bl9zdGFja1syXTtcbiAgICAgICAgcmVzID0ge2pvb190cmFtcDogaGFuZGxlcixcbiAgICAgICAgICAgICAgIGpvb19hcmdzOiBbY2FtbF93cmFwX2V4Y2VwdGlvbihlKV19O1xuICAgICAgfVxuICAgIH0gd2hpbGUocmVzICYmIHJlcy5qb29fYXJncylcbiAgfSBmaW5hbGx5IHtcbiAgICBjYW1sX3N0YWNrX2RlcHRoID0gc2F2ZWRfc3RhY2tfZGVwdGg7XG4gICAgY2FtbF9leG5fc3RhY2sgPSBzYXZlZF9leG5fc3RhY2s7XG4gICAgY2FtbF9maWJlcl9zdGFjayA9IHNhdmVkX2ZpYmVyX3N0YWNrO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfanNcbmZ1bmN0aW9uIGNhbWxfaXNfanMoKSB7XG4gIHJldHVybiAxO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzb29fZmxhZ3NfdXNlX2pzX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc29vX2ZsYWdzX3VzZV9qc19zdHJpbmcodW5pdCl7XG4gIHJldHVybiBGTEFHKFwidXNlLWpzLXN0cmluZ1wiKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzb29fZmxhZ3NfZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9qc29vX2ZsYWdzX2VmZmVjdHModW5pdCl7XG4gIHJldHVybiBGTEFHKFwiZWZmZWN0c1wiKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3dyYXBfZXhjZXB0aW9uIGNvbnN0IChtdXRhYmxlKVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YSxjYW1sX3N0cmluZ19vZl9qc3N0cmluZyxjYW1sX25hbWVkX3ZhbHVlXG5mdW5jdGlvbiBjYW1sX3dyYXBfZXhjZXB0aW9uKGUpIHtcbiAgaWYgKEZMQUcoXCJleGN3cmFwXCIpKSB7XG4gICAgaWYoZSBpbnN0YW5jZW9mIEFycmF5KSByZXR1cm4gZTtcbiAgICB2YXIgZXhuO1xuICAgIC8vU3RhY2tfb3ZlcmZsb3c6IGNocm9tZSwgc2FmYXJpXG4gICAgaWYoZ2xvYmFsVGhpcy5SYW5nZUVycm9yXG4gICAgICAgJiYgZSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuUmFuZ2VFcnJvclxuICAgICAgICYmIGUubWVzc2FnZVxuICAgICAgICYmIGUubWVzc2FnZS5tYXRjaCgvbWF4aW11bSBjYWxsIHN0YWNrL2kpKVxuICAgICAgZXhuID0gY2FtbF9nbG9iYWxfZGF0YS5TdGFja19vdmVyZmxvdztcbiAgICAvL1N0YWNrX292ZXJmbG93OiBmaXJlZm94XG4gICAgZWxzZSBpZihnbG9iYWxUaGlzLkludGVybmFsRXJyb3JcbiAgICAgICAmJiBlIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5JbnRlcm5hbEVycm9yXG4gICAgICAgJiYgZS5tZXNzYWdlXG4gICAgICAgJiYgZS5tZXNzYWdlLm1hdGNoKC90b28gbXVjaCByZWN1cnNpb24vaSkpXG4gICAgICBleG4gPSBjYW1sX2dsb2JhbF9kYXRhLlN0YWNrX292ZXJmbG93O1xuICAgIC8vV3JhcCBFcnJvciBpbiBKcy5FcnJvciBleGNlcHRpb25cbiAgICBlbHNlIGlmKGUgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkVycm9yICYmIGNhbWxfbmFtZWRfdmFsdWUoXCJqc0Vycm9yXCIpKVxuICAgICAgZXhuID0gWzAsY2FtbF9uYW1lZF92YWx1ZShcImpzRXJyb3JcIiksZV07XG4gICAgZWxzZVxuICAgICAgLy9mYWxsYmFjazogd3JhcHBlZCBpbiBGYWlsdXJlXG4gICAgICBleG4gPSBbMCxjYW1sX2dsb2JhbF9kYXRhLkZhaWx1cmUsY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKFN0cmluZyhlKSldO1xuICAgIC8vIFdlIGFscmVhZHkgaGF2ZSBhbiBlcnJvciBhdCBoYW5kLCBsZXQncyB1c2UgaXQuXG4gICAgaWYgKGUgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkVycm9yKVxuICAgICAgZXhuLmpzX2Vycm9yID0gZTtcbiAgICByZXR1cm4gZXhuO1xuICB9IGVsc2VcbiAgICByZXR1cm4gZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlXG4vL1JlcXVpcmVzOiBjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZVxuLy9SZXF1aXJlczogY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWdcbmZ1bmN0aW9uIGNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZShleG4sIGZvcmNlKSB7XG4gIGlmKGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnKVxuICAgIHJldHVybiBjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZShleG4sIGZvcmNlKTtcbiAgZWxzZSByZXR1cm4gZXhuXG59XG5cbi8vIEV4cGVyaW1lbnRhbFxuLy9Qcm92aWRlczogY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfZXhuX3dpdGhfanNfYmFja3RyYWNlKGV4biwgZm9yY2UpIHtcbiAgLy9uZXZlciByZXJhaXNlIGZvciBjb25zdGFudCBleG5cbiAgaWYoIWV4bi5qc19lcnJvciB8fCBmb3JjZSB8fCBleG5bMF0gPT0gMjQ4KSBleG4uanNfZXJyb3IgPSBuZXcgZ2xvYmFsVGhpcy5FcnJvcihcIkpzIGV4Y2VwdGlvbiBjb250YWluaW5nIGJhY2t0cmFjZVwiKTtcbiAgcmV0dXJuIGV4bjtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfanNfZXJyb3Jfb3B0aW9uX29mX2V4Y2VwdGlvbihleG4pIHtcbiAgaWYoZXhuLmpzX2Vycm9yKSB7IHJldHVybiBbMCwgZXhuLmpzX2Vycm9yXTsgfVxuICByZXR1cm4gMDtcbn1cblxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnJvbV9ib29sIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9ib29sKHgpIHsgcmV0dXJuICEheDsgfVxuLy9Qcm92aWRlczogY2FtbF9qc190b19ib29sIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfdG9fYm9vbCh4KSB7IHJldHVybiAreDsgfVxuLy9Qcm92aWRlczogY2FtbF9qc19mcm9tX2Zsb2F0IGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9mbG9hdCh4KSB7IHJldHVybiB4OyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX2Zsb2F0IGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfdG9fZmxvYXQoeCkgeyByZXR1cm4geDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Zyb21fYXJyYXkgbXV0YWJsZSAoc2hhbGxvdylcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9hcnJheShhKSB7XG4gIHJldHVybiBhLnNsaWNlKDEpO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc190b19hcnJheSBtdXRhYmxlIChzaGFsbG93KVxuZnVuY3Rpb24gY2FtbF9qc190b19hcnJheShhKSB7XG4gIHZhciBsZW4gPSBhLmxlbmd0aDtcbiAgdmFyIGIgPSBuZXcgQXJyYXkobGVuKzEpO1xuICBiWzBdID0gMDtcbiAgZm9yKHZhciBpPTA7aTxsZW47aSsrKSBiW2krMV0gPSBhW2ldO1xuICByZXR1cm4gYjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9saXN0X29mX2pzX2FycmF5IGNvbnN0IChtdXRhYmxlKVxuZnVuY3Rpb24gY2FtbF9saXN0X29mX2pzX2FycmF5KGEpe1xuICB2YXIgbCA9IDA7XG4gIGZvcih2YXIgaT1hLmxlbmd0aCAtIDE7IGk+PTA7IGktLSl7XG4gICAgdmFyIGUgPSBhW2ldO1xuICAgIGwgPSBbMCxlLGxdO1xuICB9XG4gIHJldHVybiBsXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGlzdF90b19qc19hcnJheSBjb25zdCAobXV0YWJsZSlcbmZ1bmN0aW9uIGNhbWxfbGlzdF90b19qc19hcnJheShsKXtcbiAgdmFyIGEgPSBbXTtcbiAgZm9yKDsgbCAhPT0gMDsgbCA9IGxbMl0pIHtcbiAgICBhLnB1c2gobFsxXSk7XG4gIH1cbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdmFyIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX3Zhcih4KSB7XG4gIHZhciB4ID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoeCk7XG4gIC8vQ2hlY2tzIHRoYXQgeCBoYXMgdGhlIGZvcm0gaWRlbnRbLmlkZW50XSpcbiAgaWYoIXgubWF0Y2goL15bYS16QS1aXyRdW2EtekEtWl8kMC05XSooXFwuW2EtekEtWl8kXVthLXpBLVpfJDAtOV0qKSokLykpe1xuICAgIGNvbnNvbGUuZXJyb3IoXCJjYW1sX2pzX3ZhcjogXFxcIlwiICsgeCArIFwiXFxcIiBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IHZhcmlhYmxlLiBjb250aW51aW5nIC4uXCIpO1xuICAgIC8vY29uc29sZS5lcnJvcihcIkpzLlVuc2FmZS5ldmFsX3N0cmluZ1wiKVxuICB9XG4gIHJldHVybiBldmFsKHgpO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc19jYWxsIChjb25zdCwgbXV0YWJsZSwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9qc19jYWxsKGYsIG8sIGFyZ3MpIHsgcmV0dXJuIGYuYXBwbHkobywgY2FtbF9qc19mcm9tX2FycmF5KGFyZ3MpKTsgfVxuLy9Qcm92aWRlczogY2FtbF9qc19mdW5fY2FsbCAoY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfZnVuX2NhbGwoZiwgYSkge1xuICBzd2l0Y2ggKGEubGVuZ3RoKSB7XG4gIGNhc2UgMTogcmV0dXJuIGYoKTtcbiAgY2FzZSAyOiByZXR1cm4gZiAoYVsxXSk7XG4gIGNhc2UgMzogcmV0dXJuIGYgKGFbMV0sYVsyXSk7XG4gIGNhc2UgNDogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdKTtcbiAgY2FzZSA1OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10sYVs0XSk7XG4gIGNhc2UgNjogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSk7XG4gIGNhc2UgNzogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdKTtcbiAgY2FzZSA4OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0sYVs3XSk7XG4gIH1cbiAgcmV0dXJuIGYuYXBwbHkobnVsbCwgY2FtbF9qc19mcm9tX2FycmF5KGEpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfbWV0aF9jYWxsIChtdXRhYmxlLCBjb25zdCwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfbWV0aF9jYWxsKG8sIGYsIGFyZ3MpIHtcbiAgcmV0dXJuIG9bY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoZildLmFwcGx5KG8sIGNhbWxfanNfZnJvbV9hcnJheShhcmdzKSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX25ldyAoY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfbmV3KGMsIGEpIHtcbiAgc3dpdGNoIChhLmxlbmd0aCkge1xuICBjYXNlIDE6IHJldHVybiBuZXcgYztcbiAgY2FzZSAyOiByZXR1cm4gbmV3IGMgKGFbMV0pO1xuICBjYXNlIDM6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdKTtcbiAgY2FzZSA0OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdKTtcbiAgY2FzZSA1OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0pO1xuICBjYXNlIDY6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdKTtcbiAgY2FzZSA3OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdKTtcbiAgY2FzZSA4OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdLGFbN10pO1xuICB9XG4gIGZ1bmN0aW9uIEYoKSB7IHJldHVybiBjLmFwcGx5KHRoaXMsIGNhbWxfanNfZnJvbV9hcnJheShhKSk7IH1cbiAgRi5wcm90b3R5cGUgPSBjLnByb3RvdHlwZTtcbiAgcmV0dXJuIG5ldyBGO1xufVxuLy9Qcm92aWRlczogY2FtbF9vanNfbmV3X2FyciAoY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfb2pzX25ld19hcnIoYywgYSkge1xuICBzd2l0Y2ggKGEubGVuZ3RoKSB7XG4gIGNhc2UgMDogcmV0dXJuIG5ldyBjO1xuICBjYXNlIDE6IHJldHVybiBuZXcgYyAoYVswXSk7XG4gIGNhc2UgMjogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0pO1xuICBjYXNlIDM6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0pO1xuICBjYXNlIDQ6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSk7XG4gIGNhc2UgNTogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSxhWzNdLGFbNF0pO1xuICBjYXNlIDY6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0pO1xuICBjYXNlIDc6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSk7XG4gIH1cbiAgZnVuY3Rpb24gRigpIHsgcmV0dXJuIGMuYXBwbHkodGhpcywgYSk7IH1cbiAgRi5wcm90b3R5cGUgPSBjLnByb3RvdHlwZTtcbiAgcmV0dXJuIG5ldyBGO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX2NhbGxiYWNrIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9jYWxsYmFjayhmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgaWYobGVuID4gMCl7XG4gICAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4pO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJncyA9IFt1bmRlZmluZWRdO1xuICAgIH1cbiAgICB2YXIgcmVzID0gY2FtbF9jYWxsYmFjayhmLCBhcmdzKTtcbiAgICByZXR1cm4gKHJlcyBpbnN0YW5jZW9mIEZ1bmN0aW9uKT9jYW1sX2pzX3dyYXBfY2FsbGJhY2socmVzKTpyZXM7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50c1xuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50cyhmKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbGJhY2soZiwgW2FyZ3NdKTtcbiAgfVxufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdChhcml0eSwgZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcml0eSk7XG4gICAgdmFyIGxlbiA9IE1hdGgubWluKGFyZ3VtZW50cy5sZW5ndGgsIGFyaXR5KVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbGJhY2soZiwgYXJncyk7XG4gIH07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfdW5zYWZlIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2ssIGNhbWxfanNfZnVuY3Rpb25fYXJpdHlcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9jYWxsYmFja191bnNhZmUoZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZW4gPSBjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5KGYpO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsYmFjayhmLCBhcmdzKTsgfVxufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2sgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFjaywgY2FtbF9qc193cmFwX2NhbGxiYWNrXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFjayhmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuICsgMSk7XG4gICAgYXJnc1swXSA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpKzFdID0gYXJndW1lbnRzW2ldO1xuICAgIHZhciByZXMgPSBjYW1sX2NhbGxiYWNrKGYsYXJncyk7XG4gICAgcmV0dXJuIChyZXMgaW5zdGFuY2VvZiBGdW5jdGlvbik/Y2FtbF9qc193cmFwX2NhbGxiYWNrKHJlcyk6cmVzO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbGJhY2soZixbdGhpcyxhcmdzXSk7XG4gIH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0KGFyaXR5LCBmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJpdHkgKyAxKTtcbiAgICB2YXIgbGVuID0gTWF0aC5taW4oYXJndW1lbnRzLmxlbmd0aCwgYXJpdHkpXG4gICAgYXJnc1swXSA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpKzFdID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxiYWNrKGYsIGFyZ3MpO1xuICB9O1xufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfdW5zYWZlIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2ssIGNhbWxfanNfZnVuY3Rpb25fYXJpdHlcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3Vuc2FmZShmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGNhbWxfanNfZnVuY3Rpb25fYXJpdHkoZikgLSAxO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbiArIDEpO1xuICAgIGFyZ3NbMF0gPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaSsxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsYmFjayhmLCBhcmdzKTsgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5XG4vL0lmOiAhZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9qc19mdW5jdGlvbl9hcml0eShmKSB7XG4gIHJldHVybiAoZi5sID49IDApP2YubDooZi5sID0gZi5sZW5ndGgpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnVuY3Rpb25fYXJpdHlcbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfanNfZnVuY3Rpb25fYXJpdHkoZikge1xuICAvLyBGdW5jdGlvbnMgaGF2ZSBhbiBhZGRpdGlvbmFsIGNvbnRpbnVhdGlvbiBwYXJhbWV0ZXIuIFRoaXMgc2hvdWxkXG4gIC8vIG5vdCBiZSB2aXNpYmxlIHdoZW4gY2FsbGluZyB0aGVtIGZyb20gSmF2YVNjcmlwdFxuICByZXR1cm4gKChmLmwgPj0gMCk/Zi5sOihmLmwgPSBmLmxlbmd0aCkpIC0gMVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2VxdWFscyBtdXRhYmxlIChjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2VxdWFscyAoeCwgeSkgeyByZXR1cm4gKyh4ID09IHkpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXZhbF9zdHJpbmcgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfZXZhbF9zdHJpbmcgKHMpIHtyZXR1cm4gZXZhbChjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKSk7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2V4cHIgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfZXhwcihzKSB7XG4gIGNvbnNvbGUuZXJyb3IoXCJjYW1sX2pzX2V4cHI6IGZhbGxiYWNrIHRvIHJ1bnRpbWUgZXZhbHVhdGlvblxcblwiKTtcbiAgcmV0dXJuIGV2YWwoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocykpO31cblxuLy9Qcm92aWRlczogY2FtbF9wdXJlX2pzX2V4cHIgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfcHVyZV9qc19leHByIChzKXtcbiAgY29uc29sZS5lcnJvcihcImNhbWxfcHVyZV9qc19leHByOiBmYWxsYmFjayB0byBydW50aW1lIGV2YWx1YXRpb25cXG5cIik7XG4gIHJldHVybiBldmFsKGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpKTt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfb2JqZWN0IChvYmplY3RfbGl0ZXJhbClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX29iamVjdCAoYSkge1xuICB2YXIgbyA9IHt9O1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcCA9IGFbaV07XG4gICAgb1tjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhwWzFdKV0gPSBwWzJdO1xuICB9XG4gIHJldHVybiBvO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBGb3JtYXRcblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZV9mb3JtYXRcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9wYXJzZV9mb3JtYXQgKGZtdCkge1xuICBmbXQgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGZtdCk7XG4gIHZhciBsZW4gPSBmbXQubGVuZ3RoO1xuICBpZiAobGVuID4gMzEpIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImZvcm1hdF9pbnQ6IGZvcm1hdCB0b28gbG9uZ1wiKTtcbiAgdmFyIGYgPVxuICAgICAgeyBqdXN0aWZ5OicrJywgc2lnbnN0eWxlOictJywgZmlsbGVyOicgJywgYWx0ZXJuYXRlOmZhbHNlLFxuICAgICAgICBiYXNlOjAsIHNpZ25lZGNvbnY6ZmFsc2UsIHdpZHRoOjAsIHVwcGVyY2FzZTpmYWxzZSxcbiAgICAgICAgc2lnbjoxLCBwcmVjOi0xLCBjb252OidmJyB9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIGMgPSBmbXQuY2hhckF0KGkpO1xuICAgIHN3aXRjaCAoYykge1xuICAgIGNhc2UgJy0nOlxuICAgICAgZi5qdXN0aWZ5ID0gJy0nOyBicmVhaztcbiAgICBjYXNlICcrJzogY2FzZSAnICc6XG4gICAgICBmLnNpZ25zdHlsZSA9IGM7IGJyZWFrO1xuICAgIGNhc2UgJzAnOlxuICAgICAgZi5maWxsZXIgPSAnMCc7IGJyZWFrO1xuICAgIGNhc2UgJyMnOlxuICAgICAgZi5hbHRlcm5hdGUgPSB0cnVlOyBicmVhaztcbiAgICBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOiBjYXNlICc0JzogY2FzZSAnNSc6XG4gICAgY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4JzogY2FzZSAnOSc6XG4gICAgICBmLndpZHRoID0gMDtcbiAgICAgIHdoaWxlIChjPWZtdC5jaGFyQ29kZUF0KGkpIC0gNDgsIGMgPj0gMCAmJiBjIDw9IDkpIHtcbiAgICAgICAgZi53aWR0aCA9IGYud2lkdGggKiAxMCArIGM7IGkrK1xuICAgICAgfVxuICAgICAgaS0tO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnLic6XG4gICAgICBmLnByZWMgPSAwO1xuICAgICAgaSsrO1xuICAgICAgd2hpbGUgKGM9Zm10LmNoYXJDb2RlQXQoaSkgLSA0OCwgYyA+PSAwICYmIGMgPD0gOSkge1xuICAgICAgICBmLnByZWMgPSBmLnByZWMgKiAxMCArIGM7IGkrK1xuICAgICAgfVxuICAgICAgaS0tO1xuICAgIGNhc2UgJ2QnOiBjYXNlICdpJzpcbiAgICAgIGYuc2lnbmVkY29udiA9IHRydWU7IC8qIGZhbGx0aHJvdWdoICovXG4gICAgY2FzZSAndSc6XG4gICAgICBmLmJhc2UgPSAxMDsgYnJlYWs7XG4gICAgY2FzZSAneCc6XG4gICAgICBmLmJhc2UgPSAxNjsgYnJlYWs7XG4gICAgY2FzZSAnWCc6XG4gICAgICBmLmJhc2UgPSAxNjsgZi51cHBlcmNhc2UgPSB0cnVlOyBicmVhaztcbiAgICBjYXNlICdvJzpcbiAgICAgIGYuYmFzZSA9IDg7IGJyZWFrO1xuICAgIGNhc2UgJ2UnOiBjYXNlICdmJzogY2FzZSAnZyc6XG4gICAgICBmLnNpZ25lZGNvbnYgPSB0cnVlOyBmLmNvbnYgPSBjOyBicmVhaztcbiAgICBjYXNlICdFJzogY2FzZSAnRic6IGNhc2UgJ0cnOlxuICAgICAgZi5zaWduZWRjb252ID0gdHJ1ZTsgZi51cHBlcmNhc2UgPSB0cnVlO1xuICAgICAgZi5jb252ID0gYy50b0xvd2VyQ2FzZSAoKTsgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBmO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nKGYsIHJhd2J1ZmZlcikge1xuICBpZiAoZi51cHBlcmNhc2UpIHJhd2J1ZmZlciA9IHJhd2J1ZmZlci50b1VwcGVyQ2FzZSgpO1xuICB2YXIgbGVuID0gcmF3YnVmZmVyLmxlbmd0aDtcbiAgLyogQWRqdXN0IGxlbiB0byByZWZsZWN0IGFkZGl0aW9uYWwgY2hhcnMgKHNpZ24sIGV0YykgKi9cbiAgaWYgKGYuc2lnbmVkY29udiAmJiAoZi5zaWduIDwgMCB8fCBmLnNpZ25zdHlsZSAhPSAnLScpKSBsZW4rKztcbiAgaWYgKGYuYWx0ZXJuYXRlKSB7XG4gICAgaWYgKGYuYmFzZSA9PSA4KSBsZW4gKz0gMTtcbiAgICBpZiAoZi5iYXNlID09IDE2KSBsZW4gKz0gMjtcbiAgfVxuICAvKiBEbyB0aGUgZm9ybWF0dGluZyAqL1xuICB2YXIgYnVmZmVyID0gXCJcIjtcbiAgaWYgKGYuanVzdGlmeSA9PSAnKycgJiYgZi5maWxsZXIgPT0gJyAnKVxuICAgIGZvciAodmFyIGkgPSBsZW47IGkgPCBmLndpZHRoOyBpKyspIGJ1ZmZlciArPSAnICc7XG4gIGlmIChmLnNpZ25lZGNvbnYpIHtcbiAgICBpZiAoZi5zaWduIDwgMCkgYnVmZmVyICs9ICctJztcbiAgICBlbHNlIGlmIChmLnNpZ25zdHlsZSAhPSAnLScpIGJ1ZmZlciArPSBmLnNpZ25zdHlsZTtcbiAgfVxuICBpZiAoZi5hbHRlcm5hdGUgJiYgZi5iYXNlID09IDgpIGJ1ZmZlciArPSAnMCc7XG4gIGlmIChmLmFsdGVybmF0ZSAmJiBmLmJhc2UgPT0gMTYpIGJ1ZmZlciArPSBmLnVwcGVyY2FzZT9cIjBYXCI6XCIweFwiO1xuICBpZiAoZi5qdXN0aWZ5ID09ICcrJyAmJiBmLmZpbGxlciA9PSAnMCcpXG4gICAgZm9yICh2YXIgaSA9IGxlbjsgaSA8IGYud2lkdGg7IGkrKykgYnVmZmVyICs9ICcwJztcbiAgYnVmZmVyICs9IHJhd2J1ZmZlcjtcbiAgaWYgKGYuanVzdGlmeSA9PSAnLScpXG4gICAgZm9yICh2YXIgaSA9IGxlbjsgaSA8IGYud2lkdGg7IGkrKykgYnVmZmVyICs9ICcgJztcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoYnVmZmVyKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBqc29vX2Zsb29yX2xvZzJcbnZhciBsb2cyX29rID0gTWF0aC5sb2cyICYmIE1hdGgubG9nMigxLjEyMzU1ODIwOTI4ODk0NzRFKzMwNykgPT0gMTAyMFxuZnVuY3Rpb24ganNvb19mbG9vcl9sb2cyKHgpIHtcbiAgaWYobG9nMl9vaykgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5sb2cyKHgpKVxuICB2YXIgaSA9IDA7XG4gIGlmICh4ID09IDApIHJldHVybiAtSW5maW5pdHk7XG4gIGlmKHg+PTEpIHt3aGlsZSAoeD49Mikge3gvPTI7IGkrK30gfVxuICBlbHNlIHt3aGlsZSAoeCA8IDEpIHt4Kj0yOyBpLS19IH07XG4gIHJldHVybiBpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29fZmxvb3JfbG9nMiwgY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGlcbmZ1bmN0aW9uIGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCAoeCkge1xuICBpZiAoIWlzRmluaXRlKHgpKSB7XG4gICAgaWYgKGlzTmFOKHgpKVxuICAgICAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKDEsIDAsIDB4N2ZmMCk7XG4gICAgaWYgKHggPiAwKVxuICAgICAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKDAsIDAsIDB4N2ZmMClcbiAgICBlbHNlXG4gICAgICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkoMCwgMCwgMHhmZmYwKVxuICB9XG4gIHZhciBzaWduID0gKHg9PTAgJiYgMS94ID09IC1JbmZpbml0eSk/MHg4MDAwOih4Pj0wKT8wOjB4ODAwMDtcbiAgaWYgKHNpZ24pIHggPSAteDtcbiAgLy8gSW50NjQuYml0c19vZl9mbG9hdCAxLjEyMzU1ODIwOTI4ODk0NzRFKzMwNyA9IDB4N2ZiMDAwMDAwMDAwMDAwMExcbiAgLy8gdXNpbmcgTWF0aC5MT0cyRSpNYXRoLmxvZyh4KSBpbiBwbGFjZSBvZiBNYXRoLmxvZzIgcmVzdWx0IGluIHByZWNpc2lvbiBsb3N0XG4gIHZhciBleHAgPSBqc29vX2Zsb29yX2xvZzIoeCkgKyAxMDIzO1xuICBpZiAoZXhwIDw9IDApIHtcbiAgICBleHAgPSAwO1xuICAgIHggLz0gTWF0aC5wb3coMiwtMTAyNik7XG4gIH0gZWxzZSB7XG4gICAgeCAvPSBNYXRoLnBvdygyLGV4cC0xMDI3KTtcbiAgICBpZiAoeCA8IDE2KSB7XG4gICAgICB4ICo9IDI7IGV4cCAtPTE7IH1cbiAgICBpZiAoZXhwID09IDApIHtcbiAgICAgIHggLz0gMjsgfVxuICB9XG4gIHZhciBrID0gTWF0aC5wb3coMiwyNCk7XG4gIHZhciByMyA9IHh8MDtcbiAgeCA9ICh4IC0gcjMpICogaztcbiAgdmFyIHIyID0geHwwO1xuICB4ID0gKHggLSByMikgKiBrO1xuICB2YXIgcjEgPSB4fDA7XG4gIHIzID0gKHIzICYweGYpIHwgc2lnbiB8IGV4cCA8PCA0O1xuICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkocjEsIHIyLCByMyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50MzJfYml0c19vZl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczoganNvb19mbG9vcl9sb2cyXG5mdW5jdGlvbiBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQgKHgpIHtcbiAgdmFyIGZsb2F0MzJhID0gbmV3IEZsb2F0MzJBcnJheSgxKTtcbiAgZmxvYXQzMmFbMF0gPSB4O1xuICB2YXIgaW50MzJhID0gbmV3IEludDMyQXJyYXkoZmxvYXQzMmEuYnVmZmVyKTtcbiAgcmV0dXJuIGludDMyYVswXSB8IDA7XG59XG5cbi8vRlAgbGl0ZXJhbHMgY2FuIGJlIHdyaXR0ZW4gdXNpbmcgdGhlIGhleGFkZWNpbWFsXG4vL25vdGF0aW9uIDB4PG1hbnRpc3NhIGluIGhleD5wPGV4cG9uZW50PiBmcm9tIElTTyBDOTkuXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9kYW5rb2dhaS9qcy1oZXhmbG9hdC9ibG9iL21hc3Rlci9oZXhmbG9hdC5qc1xuLy9Qcm92aWRlczogY2FtbF9oZXhzdHJpbmdfb2ZfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nLCBjYW1sX3N0cl9yZXBlYXRcbmZ1bmN0aW9uIGNhbWxfaGV4c3RyaW5nX29mX2Zsb2F0ICh4LCBwcmVjLCBzdHlsZSkge1xuICBpZiAoIWlzRmluaXRlKHgpKSB7XG4gICAgaWYgKGlzTmFOKHgpKSByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoXCJuYW5cIik7XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nICgoeCA+IDApP1wiaW5maW5pdHlcIjpcIi1pbmZpbml0eVwiKTtcbiAgfVxuICB2YXIgc2lnbiA9ICh4PT0wICYmIDEveCA9PSAtSW5maW5pdHkpPzE6KHg+PTApPzA6MTtcbiAgaWYoc2lnbikgeCA9IC14O1xuICB2YXIgZXhwID0gMDtcbiAgaWYgKHggPT0gMCkgeyB9XG4gIGVsc2UgaWYgKHggPCAxKSB7XG4gICAgd2hpbGUgKHggPCAxICYmIGV4cCA+IC0xMDIyKSAgeyB4ICo9IDI7IGV4cC0tIH1cbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoeCA+PSAyKSB7IHggLz0gMjsgZXhwKysgfVxuICB9XG4gIHZhciBleHBfc2lnbiA9IGV4cCA8IDAgPyAnJyA6ICcrJztcbiAgdmFyIHNpZ25fc3RyID0gJyc7XG4gIGlmIChzaWduKSBzaWduX3N0ciA9ICctJ1xuICBlbHNlIHtcbiAgICBzd2l0Y2goc3R5bGUpe1xuICAgIGNhc2UgNDMgLyogJysnICovOiBzaWduX3N0ciA9ICcrJzsgYnJlYWs7XG4gICAgY2FzZSAzMiAvKiAnICcgKi86IHNpZ25fc3RyID0gJyAnOyBicmVhaztcbiAgICBkZWZhdWx0OiBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKHByZWMgPj0gMCAmJiBwcmVjIDwgMTMpIHtcbiAgICAvKiBJZiBhIHByZWNpc2lvbiBpcyBnaXZlbiwgYW5kIGlzIHNtYWxsLCByb3VuZCBtYW50aXNzYSBhY2NvcmRpbmdseSAqL1xuICAgIHZhciBjc3QgPSBNYXRoLnBvdygyLHByZWMgKiA0KTtcbiAgICB4ID0gTWF0aC5yb3VuZCh4ICogY3N0KSAvIGNzdDtcbiAgfVxuICB2YXIgeF9zdHIgPSB4LnRvU3RyaW5nKDE2KTtcbiAgaWYocHJlYyA+PSAwKXtcbiAgICB2YXIgaWR4ID0geF9zdHIuaW5kZXhPZignLicpO1xuICAgIGlmKGlkeDwwKSB7XG4gICAgICB4X3N0ciArPSAnLicgKyBjYW1sX3N0cl9yZXBlYXQocHJlYywgJzAnKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB2YXIgc2l6ZSA9IGlkeCsxK3ByZWM7XG4gICAgICBpZih4X3N0ci5sZW5ndGggPCBzaXplKVxuICAgICAgICB4X3N0ciArPSBjYW1sX3N0cl9yZXBlYXQoc2l6ZSAtIHhfc3RyLmxlbmd0aCwgJzAnKTtcbiAgICAgIGVsc2VcbiAgICAgICAgeF9zdHIgPSB4X3N0ci5zdWJzdHIoMCxzaXplKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChzaWduX3N0ciArICcweCcgKyB4X3N0ciArICdwJyArIGV4cF9zaWduICsgZXhwLnRvU3RyaW5nKDEwKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzICh4KSB7XG4gIHZhciBsbyA9IHgubG87XG4gIHZhciBtaSA9IHgubWk7XG4gIHZhciBoaSA9IHguaGk7XG4gIHZhciBleHAgPSAoaGkgJiAweDdmZmYpID4+IDQ7XG4gIGlmIChleHAgPT0gMjA0Nykge1xuICAgIGlmICgobG98bWl8KGhpJjB4ZikpID09IDApXG4gICAgICByZXR1cm4gKGhpICYgMHg4MDAwKT8oLUluZmluaXR5KTpJbmZpbml0eTtcbiAgICBlbHNlXG4gICAgICByZXR1cm4gTmFOO1xuICB9XG4gIHZhciBrID0gTWF0aC5wb3coMiwtMjQpO1xuICB2YXIgcmVzID0gKGxvKmsrbWkpKmsrKGhpJjB4Zik7XG4gIGlmIChleHAgPiAwKSB7XG4gICAgcmVzICs9IDE2O1xuICAgIHJlcyAqPSBNYXRoLnBvdygyLGV4cC0xMDI3KTtcbiAgfSBlbHNlXG4gICAgcmVzICo9IE1hdGgucG93KDIsLTEwMjYpO1xuICBpZiAoaGkgJiAweDgwMDApIHJlcyA9IC0gcmVzO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25leHRhZnRlcl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzLCBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfaW50NjRfYWRkLCBjYW1sX2ludDY0X3N1YixjYW1sX2ludDY0X29mX2ludDMyXG5mdW5jdGlvbiBjYW1sX25leHRhZnRlcl9mbG9hdCAoeCx5KSB7XG4gIGlmKGlzTmFOKHgpIHx8IGlzTmFOKHkpKSByZXR1cm4gTmFOO1xuICBpZih4PT15KSByZXR1cm4geTtcbiAgaWYoeD09MCl7XG4gICAgaWYoeSA8IDApXG4gICAgICByZXR1cm4gLU1hdGgucG93KDIsIC0xMDc0KVxuICAgIGVsc2VcbiAgICAgIHJldHVybiBNYXRoLnBvdygyLCAtMTA3NClcbiAgfVxuICB2YXIgYml0cyA9IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCh4KTtcbiAgdmFyIG9uZSA9IGNhbWxfaW50NjRfb2ZfaW50MzIoMSk7XG4gIGlmICgoeDx5KSA9PSAoeD4wKSlcbiAgICBiaXRzID0gY2FtbF9pbnQ2NF9hZGQoYml0cywgb25lKVxuICBlbHNlXG4gICAgYml0cyA9IGNhbWxfaW50NjRfc3ViKGJpdHMsIG9uZSlcbiAgcmV0dXJuIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyhiaXRzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF90cnVuY19mbG9hdFxuZnVuY3Rpb24gY2FtbF90cnVuY19mbG9hdCh4KXtcbiAgcmV0dXJuIE1hdGgudHJ1bmMoeCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzICh4KSB7XG4gIHZhciBpbnQzMmEgPSBuZXcgSW50MzJBcnJheSgxKTtcbiAgaW50MzJhWzBdID0geDtcbiAgdmFyIGZsb2F0MzJhID0gbmV3IEZsb2F0MzJBcnJheShpbnQzMmEuYnVmZmVyKTtcbiAgcmV0dXJuIGZsb2F0MzJhWzBdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NsYXNzaWZ5X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2NsYXNzaWZ5X2Zsb2F0ICh4KSB7XG4gIGlmIChpc0Zpbml0ZSAoeCkpIHtcbiAgICBpZiAoTWF0aC5hYnMoeCkgPj0gMi4yMjUwNzM4NTg1MDcyMDE0ZS0zMDgpIHJldHVybiAwO1xuICAgIGlmICh4ICE9IDApIHJldHVybiAxO1xuICAgIHJldHVybiAyO1xuICB9XG4gIHJldHVybiBpc05hTih4KT80OjM7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX21vZGZfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbW9kZl9mbG9hdCAoeCkge1xuICBpZiAoaXNGaW5pdGUgKHgpKSB7XG4gICAgdmFyIG5lZyA9ICgxL3gpIDwgMDtcbiAgICB4ID0gTWF0aC5hYnMoeCk7XG4gICAgdmFyIGkgPSBNYXRoLmZsb29yICh4KTtcbiAgICB2YXIgZiA9IHggLSBpO1xuICAgIGlmIChuZWcpIHsgaSA9IC1pOyBmID0gLWY7IH1cbiAgICByZXR1cm4gWzAsIGYsIGldO1xuICB9XG4gIGlmIChpc05hTiAoeCkpIHJldHVybiBbMCwgTmFOLCBOYU5dO1xuICByZXR1cm4gWzAsIDEveCwgeF07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2xkZXhwX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xkZXhwX2Zsb2F0ICh4LGV4cCkge1xuICBleHAgfD0gMDtcbiAgaWYgKGV4cCA+IDEwMjMpIHtcbiAgICBleHAgLT0gMTAyMztcbiAgICB4ICo9IE1hdGgucG93KDIsIDEwMjMpO1xuICAgIGlmIChleHAgPiAxMDIzKSB7ICAvLyBpbiBjYXNlIHggaXMgc3Vibm9ybWFsXG4gICAgICBleHAgLT0gMTAyMztcbiAgICAgIHggKj0gTWF0aC5wb3coMiwgMTAyMyk7XG4gICAgfVxuICB9XG4gIGlmIChleHAgPCAtMTAyMykge1xuICAgIGV4cCArPSAxMDIzO1xuICAgIHggKj0gTWF0aC5wb3coMiwgLTEwMjMpO1xuICB9XG4gIHggKj0gTWF0aC5wb3coMiwgZXhwKTtcbiAgcmV0dXJuIHg7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ZyZXhwX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2Zsb29yX2xvZzJcbmZ1bmN0aW9uIGNhbWxfZnJleHBfZmxvYXQgKHgpIHtcbiAgaWYgKCh4ID09IDApIHx8ICFpc0Zpbml0ZSh4KSkgcmV0dXJuIFswLCB4LCAwXTtcbiAgdmFyIG5lZyA9IHggPCAwO1xuICBpZiAobmVnKSB4ID0gLSB4O1xuICB2YXIgZXhwID0gTWF0aC5tYXgoLTEwMjMsIGpzb29fZmxvb3JfbG9nMih4KSArIDEpO1xuICB4ICo9IE1hdGgucG93KDIsLWV4cCk7XG4gIHdoaWxlICh4IDwgMC41KSB7XG4gICAgeCAqPSAyO1xuICAgIGV4cC0tO1xuICB9XG4gIHdoaWxlICh4ID49IDEpIHtcbiAgICB4ICo9IDAuNTtcbiAgICBleHArKztcbiAgfVxuICBpZiAobmVnKSB4ID0gLSB4O1xuICByZXR1cm4gWzAsIHgsIGV4cF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRfY29tcGFyZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9mbG9hdF9jb21wYXJlICh4LCB5KSB7XG4gIGlmICh4ID09PSB5KSByZXR1cm4gMDtcbiAgaWYgKHggPCB5KSByZXR1cm4gLTE7XG4gIGlmICh4ID4geSkgcmV0dXJuIDE7XG4gIGlmICh4ID09PSB4KSByZXR1cm4gMTtcbiAgaWYgKHkgPT09IHkpIHJldHVybiAtMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29weXNpZ25fZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY29weXNpZ25fZmxvYXQgKHgsIHkpIHtcbiAgaWYgKHkgPT0gMCkgeSA9IDEgLyB5O1xuICB4ID0gTWF0aC5hYnMoeCk7XG4gIHJldHVybiAoeSA8IDApPygteCk6eDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zaWduYml0X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX3NpZ25iaXRfZmxvYXQoeCkge1xuICBpZiAoeCA9PSAwKSB4ID0gMSAvIHg7XG4gIHJldHVybiAoeCA8IDApPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9leHBtMV9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9leHBtMV9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5leHBtMSh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9leHAyX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2V4cDJfZmxvYXQoeCkgeyByZXR1cm4gTWF0aC5wb3coMiwgeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbG9nMXBfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbG9nMXBfZmxvYXQoeCkgeyByZXR1cm4gTWF0aC5sb2cxcCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9sb2cyX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xvZzJfZmxvYXQoeCkgeyByZXR1cm4gTWF0aC5sb2cyKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2h5cG90X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2h5cG90X2Zsb2F0ICh4LCB5KSB7IHJldHVybiBNYXRoLmh5cG90KHgsIHkpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xvZzEwX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xvZzEwX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmxvZzEwKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2Nvc2hfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY29zaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5jb3NoKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2Fjb3NoX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2Fjb3NoX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmFjb3NoKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3NpbmhfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfc2luaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5zaW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2FzaW5oX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2FzaW5oX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmFzaW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3RhbmhfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfdGFuaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC50YW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2F0YW5oX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2F0YW5oX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmF0YW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3JvdW5kX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX3JvdW5kX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLnJvdW5kKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2NicnRfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY2JydF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5jYnJ0KHgpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXJmX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2VyZl9mbG9hdCh4KSB7XG4gIHZhciBhMSA9IDAuMjU0ODI5NTkyO1xuICB2YXIgYTIgPSAtMC4yODQ0OTY3MzY7XG4gIHZhciBhMyA9IDEuNDIxNDEzNzQxO1xuICB2YXIgYTQgPSAtMS40NTMxNTIwMjc7XG4gIHZhciBhNSA9IDEuMDYxNDA1NDI5O1xuICB2YXIgcCA9IDAuMzI3NTkxMTtcblxuICB2YXIgc2lnbiA9IDE7XG4gIGlmICh4IDwgMCkge1xuICAgIHNpZ24gPSAtMTtcbiAgfVxuICB4ID0gTWF0aC5hYnMoeCk7XG4gIHZhciB0ID0gMS4wIC8gKDEuMCArIHAgKiB4KTtcbiAgdmFyIHkgPSAxLjAgLSAoKCgoYTUgKiB0ICsgYTQpICogdCArIGEzKSAqIHQgKyBhMikgKiB0ICsgYTEpICogdCAqIE1hdGguZXhwKC14ICogeCk7XG5cbiAgcmV0dXJuIHNpZ24gKiB5O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VyZmNfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfZXJmX2Zsb2F0XG5mdW5jdGlvbiBjYW1sX2VyZmNfZmxvYXQoeCkge1xuICByZXR1cm4gMSAtIGNhbWxfZXJmX2Zsb2F0KHgpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZm1hX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ZtYV9mbG9hdCh4LCB5LCB6KSB7XG4gIHZhciBTUExJVCA9IE1hdGgucG93KDIsIDI3KSArIDE7XG4gIHZhciBNSU5fVkFMVUUgPSBNYXRoLnBvdygyLCAtMTAyMik7XG4gIHZhciBFUFNJTE9OID0gTWF0aC5wb3coMiwgLTUyKTtcbiAgdmFyIEMgPSA0MTY7XG4gIHZhciBBID0gTWF0aC5wb3coMiwgK0MpO1xuICB2YXIgQiA9IE1hdGgucG93KDIsIC1DKTtcblxuICBmdW5jdGlvbiBtdWx0aXBseSAoYSwgYikge1xuICAgIHZhciBhdCA9IFNQTElUICogYTtcbiAgICB2YXIgYWhpID0gYXQgLSAoYXQgLSBhKTtcbiAgICB2YXIgYWxvID0gYSAtIGFoaTtcbiAgICB2YXIgYnQgPSBTUExJVCAqIGI7XG4gICAgdmFyIGJoaSA9IGJ0IC0gKGJ0IC0gYik7XG4gICAgdmFyIGJsbyA9IGIgLSBiaGk7XG4gICAgdmFyIHAgPSBhICogYjtcbiAgICB2YXIgZSA9ICgoYWhpICogYmhpIC0gcCkgKyBhaGkgKiBibG8gKyBhbG8gKiBiaGkpICsgYWxvICogYmxvO1xuICAgIHJldHVybiB7XG4gICAgICBwOiBwLFxuICAgICAgZTogZVxuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gYWRkIChhLCBiKSB7XG4gICAgdmFyIHMgPSBhICsgYjtcbiAgICB2YXIgdiA9IHMgLSBhO1xuICAgIHZhciBlID0gKGEgLSAocyAtIHYpKSArIChiIC0gdik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHM6IHMsXG4gICAgICBlOiBlXG4gICAgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBhZGp1c3QgKHgsIHkpIHtcbiAgICByZXR1cm4geCAhPT0gMCAmJiB5ICE9PSAwICYmIFNQTElUICogeCAtIChTUExJVCAqIHggLSB4KSA9PT0geCA/IHggKiAoMSArICh4IDwgMCA/IC0xIDogKzEpICogKHkgPCAwID8gLTEgOiArMSkgKiBFUFNJTE9OKSA6IHg7XG4gIH07XG5cbiAgaWYgKHggPT09IDAgfHwgeCAhPT0geCB8fCB4ID09PSArMSAvIDAgfHwgeCA9PT0gLTEgLyAwIHx8XG4gICAgICB5ID09PSAwIHx8IHkgIT09IHkgfHwgeSA9PT0gKzEgLyAwIHx8IHkgPT09IC0xIC8gMCkge1xuICAgIHJldHVybiB4ICogeSArIHo7XG4gIH1cbiAgaWYgKHogPT09IDApIHtcbiAgICByZXR1cm4geCAqIHk7XG4gIH1cbiAgaWYgKHogIT09IHogfHwgeiA9PT0gKzEgLyAwIHx8IHogPT09IC0xIC8gMCkge1xuICAgIHJldHVybiB6O1xuICB9XG5cbiAgdmFyIHNjYWxlID0gMTtcbiAgd2hpbGUgKE1hdGguYWJzKHgpID4gQSkge1xuICAgIHNjYWxlICo9IEE7XG4gICAgeCAqPSBCO1xuICB9XG4gIHdoaWxlIChNYXRoLmFicyh5KSA+IEEpIHtcbiAgICBzY2FsZSAqPSBBO1xuICAgIHkgKj0gQjtcbiAgfVxuICBpZiAoc2NhbGUgPT09IDEgLyAwKSB7XG4gICAgcmV0dXJuIHggKiB5ICogc2NhbGU7XG4gIH1cbiAgd2hpbGUgKE1hdGguYWJzKHgpIDwgQikge1xuICAgIHNjYWxlICo9IEI7XG4gICAgeCAqPSBBO1xuICB9XG4gIHdoaWxlIChNYXRoLmFicyh5KSA8IEIpIHtcbiAgICBzY2FsZSAqPSBCO1xuICAgIHkgKj0gQTtcbiAgfVxuICBpZiAoc2NhbGUgPT09IDApIHtcbiAgICByZXR1cm4gejtcbiAgfVxuXG4gIHZhciB4cyA9IHg7XG4gIHZhciB5cyA9IHk7XG4gIHZhciB6cyA9IHogLyBzY2FsZTtcblxuICBpZiAoTWF0aC5hYnMoenMpID4gTWF0aC5hYnMoeHMgKiB5cykgKiA0IC8gRVBTSUxPTikge1xuICAgIHJldHVybiB6O1xuICB9XG4gIGlmIChNYXRoLmFicyh6cykgPCBNYXRoLmFicyh4cyAqIHlzKSAqIEVQU0lMT04gLyA0ICogRVBTSUxPTiAvIDQpIHtcbiAgICB6cyA9ICh6IDwgMCA/IC0xIDogKzEpICogTUlOX1ZBTFVFO1xuICB9XG5cbiAgdmFyIHh5ID0gbXVsdGlwbHkoeHMsIHlzKTtcbiAgdmFyIHMgPSBhZGQoeHkucCwgenMpO1xuICB2YXIgdSA9IGFkZCh4eS5lLCBzLmUpO1xuICB2YXIgaSA9IGFkZChzLnMsIHUucyk7XG5cbiAgdmFyIGYgPSBpLnMgKyBhZGp1c3QoaS5lLCB1LmUpO1xuICBpZiAoZiA9PT0gMCkge1xuICAgIHJldHVybiBmO1xuICB9XG5cbiAgdmFyIGZzID0gZiAqIHNjYWxlO1xuICBpZiAoTWF0aC5hYnMoZnMpID4gTUlOX1ZBTFVFKSB7XG4gICAgcmV0dXJuIGZzO1xuICB9XG5cbiAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB0aGVyZSB3YXMgZXh0cmEgcm91bmRpbmcgZm9yIGEgZGVub3JtYWxpemVkIHZhbHVlLlxuICByZXR1cm4gZnMgKyBhZGp1c3QoZiAtIGZzIC8gc2NhbGUsIGkuZSkgKiBzY2FsZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mb3JtYXRfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2VfZm9ybWF0LCBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nXG5mdW5jdGlvbiBjYW1sX2Zvcm1hdF9mbG9hdCAoZm10LCB4KSB7XG4gIGZ1bmN0aW9uIHRvRml4ZWQoeCxkcCkge1xuICAgIGlmIChNYXRoLmFicyh4KSA8IDEuMCkge1xuICAgICAgcmV0dXJuIHgudG9GaXhlZChkcCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBlID0gcGFyc2VJbnQoeC50b1N0cmluZygpLnNwbGl0KCcrJylbMV0pO1xuICAgICAgaWYgKGUgPiAyMCkge1xuICAgICAgICBlIC09IDIwO1xuICAgICAgICB4IC89IE1hdGgucG93KDEwLGUpO1xuICAgICAgICB4ICs9IChuZXcgQXJyYXkoZSsxKSkuam9pbignMCcpO1xuICAgICAgICBpZihkcCA+IDApIHtcbiAgICAgICAgICB4ID0geCArICcuJyArIChuZXcgQXJyYXkoZHArMSkpLmpvaW4oJzAnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geDtcbiAgICAgIH1cbiAgICAgIGVsc2UgcmV0dXJuIHgudG9GaXhlZChkcClcbiAgICB9XG4gIH1cbiAgdmFyIHMsIGYgPSBjYW1sX3BhcnNlX2Zvcm1hdChmbXQpO1xuICB2YXIgcHJlYyA9IChmLnByZWMgPCAwKT82OmYucHJlYztcbiAgaWYgKHggPCAwIHx8ICh4ID09IDAgJiYgMS94ID09IC1JbmZpbml0eSkpIHsgZi5zaWduID0gLTE7IHggPSAteDsgfVxuICBpZiAoaXNOYU4oeCkpIHsgcyA9IFwibmFuXCI7IGYuZmlsbGVyID0gJyAnOyB9XG4gIGVsc2UgaWYgKCFpc0Zpbml0ZSh4KSkgeyBzID0gXCJpbmZcIjsgZi5maWxsZXIgPSAnICc7IH1cbiAgZWxzZVxuICAgIHN3aXRjaCAoZi5jb252KSB7XG4gICAgY2FzZSAnZSc6XG4gICAgICB2YXIgcyA9IHgudG9FeHBvbmVudGlhbChwcmVjKTtcbiAgICAgIC8vIGV4cG9uZW50IHNob3VsZCBiZSBhdCBsZWFzdCB0d28gZGlnaXRzXG4gICAgICB2YXIgaSA9IHMubGVuZ3RoO1xuICAgICAgaWYgKHMuY2hhckF0KGkgLSAzKSA9PSAnZScpXG4gICAgICAgIHMgPSBzLnNsaWNlICgwLCBpIC0gMSkgKyAnMCcgKyBzLnNsaWNlIChpIC0gMSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdmJzpcbiAgICAgIHMgPSB0b0ZpeGVkKHgsIHByZWMpOyBicmVhaztcbiAgICBjYXNlICdnJzpcbiAgICAgIHByZWMgPSBwcmVjP3ByZWM6MTtcbiAgICAgIHMgPSB4LnRvRXhwb25lbnRpYWwocHJlYyAtIDEpO1xuICAgICAgdmFyIGogPSBzLmluZGV4T2YoJ2UnKTtcbiAgICAgIHZhciBleHAgPSArcy5zbGljZShqICsgMSk7XG4gICAgICBpZiAoZXhwIDwgLTQgfHwgeCA+PSAxZTIxIHx8IHgudG9GaXhlZCgwKS5sZW5ndGggPiBwcmVjKSB7XG4gICAgICAgIC8vIHJlbW92ZSB0cmFpbGluZyB6ZXJvZXNcbiAgICAgICAgdmFyIGkgPSBqIC0gMTsgd2hpbGUgKHMuY2hhckF0KGkpID09ICcwJykgaS0tO1xuICAgICAgICBpZiAocy5jaGFyQXQoaSkgPT0gJy4nKSBpLS07XG4gICAgICAgIHMgPSBzLnNsaWNlKDAsIGkgKyAxKSArIHMuc2xpY2Uoaik7XG4gICAgICAgIGkgPSBzLmxlbmd0aDtcbiAgICAgICAgaWYgKHMuY2hhckF0KGkgLSAzKSA9PSAnZScpXG4gICAgICAgICAgcyA9IHMuc2xpY2UgKDAsIGkgLSAxKSArICcwJyArIHMuc2xpY2UgKGkgLSAxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcCA9IHByZWM7XG4gICAgICAgIGlmIChleHAgPCAwKSB7IHAgLT0gZXhwICsgMTsgcyA9IHgudG9GaXhlZChwKTsgfVxuICAgICAgICBlbHNlIHdoaWxlIChzID0geC50b0ZpeGVkKHApLCBzLmxlbmd0aCA+IHByZWMgKyAxKSBwLS07XG4gICAgICAgIGlmIChwKSB7XG4gICAgICAgICAgLy8gcmVtb3ZlIHRyYWlsaW5nIHplcm9lc1xuICAgICAgICAgIHZhciBpID0gcy5sZW5ndGggLSAxOyB3aGlsZSAocy5jaGFyQXQoaSkgPT0gJzAnKSBpLS07XG4gICAgICAgICAgaWYgKHMuY2hhckF0KGkpID09ICcuJykgaS0tO1xuICAgICAgICAgIHMgPSBzLnNsaWNlKDAsIGkgKyAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICByZXR1cm4gY2FtbF9maW5pc2hfZm9ybWF0dGluZyhmLCBzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mbG9hdF9vZl9zdHJpbmcgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9mbG9hdF9vZl9zdHJpbmcocykge1xuICB2YXIgcmVzO1xuICBzID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKVxuICByZXMgPSArcztcbiAgaWYgKChzLmxlbmd0aCA+IDApICYmIChyZXMgPT09IHJlcykpIHJldHVybiByZXM7XG4gIHMgPSBzLnJlcGxhY2UoL18vZyxcIlwiKTtcbiAgcmVzID0gK3M7XG4gIGlmICgoKHMubGVuZ3RoID4gMCkgJiYgKHJlcyA9PT0gcmVzKSkgfHwgL15bKy1dP25hbiQvaS50ZXN0KHMpKSByZXR1cm4gcmVzO1xuICB2YXIgbSA9IC9eICooWystXT8pMHgoWzAtOWEtZl0rKVxcLj8oWzAtOWEtZl0qKShwKFsrLV0/WzAtOV0rKSk/L2kuZXhlYyhzKTtcbiAgLy8gICAgICAgICAgMSAgICAgICAgMiAgICAgICAgICAgICAzICAgICAgICAgICA1XG4gIGlmKG0pe1xuICAgIHZhciBtMyA9IG1bM10ucmVwbGFjZSgvMCskLywnJyk7XG4gICAgdmFyIG1hbnRpc3NhID0gcGFyc2VJbnQobVsxXSArIG1bMl0gKyBtMywgMTYpO1xuICAgIHZhciBleHBvbmVudCA9IChtWzVdfDApIC0gNCptMy5sZW5ndGg7XG4gICAgcmVzID0gbWFudGlzc2EgKiBNYXRoLnBvdygyLCBleHBvbmVudCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBpZigvXlxcKz9pbmYoaW5pdHkpPyQvaS50ZXN0KHMpKSByZXR1cm4gSW5maW5pdHk7XG4gIGlmKC9eLWluZihpbml0eSk/JC9pLnRlc3QocykpIHJldHVybiAtSW5maW5pdHk7XG4gIGNhbWxfZmFpbHdpdGgoXCJmbG9hdF9vZl9zdHJpbmdcIik7XG59XG4iLCIvKlxuVG8gZGVhbCB3aXRoIGVmZmVjdHMsIHRoZSBleGVjdXRpb24gY29udGV4dCBpcyBpbnR1aXRpdmVseSBjb21wb3NlZCBvZlxuYSBzdGFjayBvZiBmaWJlcnMuIEVhY2ggZmliZXIgaGFzIGEgY3VycmVudCBsb3ctbGV2ZWwgY29udGludWF0aW9uXG4ob25lLWFyZ3VtZW50IEphdmFTY3JpcHQgZnVuY3Rpb24pLCBhIHN0YWNrIG9mIGV4Y2VwdGlvbiBoYW5kbGVycyBhbmRcbmEgdHJpcGxlIG9mIGhhbmRsZXJzLCB3aGljaCBhcmUgaW52b2tlZCB3aGVuIHRoZSBmaWJlciB0ZXJtaW5hdGVzXG4oZWl0aGVyIHdpdGggYSB2YWx1ZSBvciBhbiBleGNlcHRpb24pIG9yIHdoZW4gYW4gZWZmZWN0IGlzIHBlcmZvcm1lZC5cblRoZSBsb3ctbGV2ZWwgY29udGludWF0aW9uIG9mIHRoZSB0b3Btb3N0IGZpYmVyICh3aGljaCBpcyBjdXJyZW50bHlcbmV4ZWN1dGluZykgaXMgcGFzc2VkIGZyb20gZnVuY3Rpb24gdG8gZnVuY3Rpb24gYXMgYW4gYWRkaXRpb25hbFxuYXJndW1lbnQuIEl0cyBzdGFjayBvZiBleGNlcHRpb24gaGFuZGxlcnMgaXMgc3RvcmVkIGluXG5bY2FtbF9leG5fc3RhY2tdLiBFeGNlcHRpb24gaGFuZGxlcnMgYXJlIHB1c2hlZCBpbnRvIHRoaXMgc3RhY2sgd2hlblxuZW50ZXJpbmcgYSBbdHJ5IC4uLiB3aXRoIC4uLl0gYW5kIHBvcHBlZCBvbiBleGl0LiBUaGVuLCBoYW5kbGVycyBhbmRcbnRoZSByZW1haW5pbmcgZmliZXJzIGFyZSBzdG9yZWQgaW4gW2NhbWxfZmliZXJfc3RhY2tdLiBUbyBpbnN0YWxsIGFuXG5lZmZlY3QgaGFuZGxlciwgd2UgcHVzaCBhIG5ldyBmaWJlciBpbnRvIHRoZSBleGVjdXRpb24gY29udGV4dC5cblxuV2UgaGF2ZSBiYXNpY2FsbHkgdGhlIGZvbGxvd2luZyB0eXBlIGZvciByZWlmaWVkIGNvbnRpbnVhdGlvbnMgKHR5cGVcbltjb250aW51YXRpb25dIGluIG1vZHVsZSBbRWZmZWN0XSBvZiB0aGUgc3RhbmRhcmQgbGlicmFyeSk6XG5cbiAgdHlwZSAoJ2EsICdiKSBjb250aW51YXRpb24gPSAoJ2EsICdiKSBzdGFjayByZWZcblxuICBhbmQgKF8sIF8pIHN0YWNrID1cbiAgICAgIENvbnMgOiAoJ2IgLT4gdW5pdCkgKiAgICAgICAgICAgICAoKiBsb3ctbGV2ZWwgY29udGludWF0aW9uICopXG4gICAgICAgICAgICAgKGV4biAtPiB1bml0KSBsaXN0ICogICAgICAgKCogZXhjZXB0aW9uIGhhbmRsZXJzICopXG4gICAgICAgICAgICAgKCdiLCAnYykgaGFuZGxlciAqXG4gICAgICAgICAgICAgKCdhLCAnYikgc3RhY2tcbiAgICAgICAgICAgICAtPiAoJ2EsICdjKSBzdGFja1xuICAgIHwgRW1wdHkgOiAoJ2EsICdhKSBzdGFja1xuXG4gIGFuZCAoJ2EsJ2IpIGhhbmRsZXIgPSAgICgqIEFzIGluIG1vZHVsZSBFZmZlY3QgZnJvbSB0aGUgc3RhbmRhcmQgbGlicmFyeSAqKVxuICAgIHsgcmV0YzogJ2EgLT4gJ2I7XG4gICAgICBleG5jOiBleG4gLT4gJ2I7XG4gICAgICBlZmZjOiAnYy4nYyBFZmZlY3QudCAtPiAoKCdjLCdiKSBjb250aW51YXRpb24gLT4gJ2IpIG9wdGlvbiB9XG5cbkNvbnRpbnVhdGlvbnMgYXJlIG9uZS1zaG90LiBBIGNvbnRpbnVhdGlvbiBbcmVmIEVtcHR5XSBoYXMgYWxyZWFkeVxuYmVlbiByZXN1bWVkLlxuXG5BIGNvbnRpbnVhdGlvbiBpcyBiYXNpY2FsbHkgY29tcG9zZWQgb2YgYSBsaXN0IG9mIGZpYmVycywgd2hpY2ggZWFjaFxuaGFzIGl0cyBsb3ctbGV2ZWwgY29udGludWF0aW9uLCBpdHMgc3RhY2sgb2YgZXhjZXB0aW9uIGhhbmRsZXJzIGFuZCBhXG50cmlwbGUgb2YgaGFuZGxlcnMgdG8gZGVhbCB3aXRoIHdoZW4gdGhlIGZpYmVyIHRlcm1pbmF0ZXMgb3IgYW5cbmVmZmVjdCBpcyBwZXJmb3JtZWQuIFdoZW4gcmVzdW1pbmcgYSBjb250aW51YXRpb24sIHRoZSBpbm5lcm1vc3QgZmliZXJcbmlzIHJlc3VtZWQgZmlyc3QuXG5cblRoZSBoYW5kbGVycyBhcmUgQ1BTLXRyYW5zZm9ybWVkIGZ1bmN0aW9uczogdGhleSBhY3R1YWxseSB0YWtlIGFuXG5hZGRpdGlvbmFsIHBhcmFtZXRlciB3aGljaCBpcyB0aGUgY3VycmVudCBsb3ctbGV2ZWwgY29udGludWF0aW9uLlxuKi9cblxuLy9Qcm92aWRlczogY2FtbF9leG5fc3RhY2tcbi8vSWY6IGVmZmVjdHNcbi8vIFRoaXMgaXMgYW4gT0NhbWwgbGlzdCBvZiBleGNlcHRpb24gaGFuZGxlcnNcbnZhciBjYW1sX2V4bl9zdGFjayA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfcHVzaF90cmFwXG4vL1JlcXVpcmVzOiBjYW1sX2V4bl9zdGFja1xuLy9JZjogZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9wdXNoX3RyYXAoaGFuZGxlcikge1xuICBjYW1sX2V4bl9zdGFjaz1bMCxoYW5kbGVyLGNhbWxfZXhuX3N0YWNrXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wb3BfdHJhcFxuLy9SZXF1aXJlczogY2FtbF9leG5fc3RhY2tcbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfcG9wX3RyYXAoKSB7XG4gIGlmICghY2FtbF9leG5fc3RhY2spIHJldHVybiBmdW5jdGlvbih4KXt0aHJvdyB4O31cbiAgdmFyIGggPSBjYW1sX2V4bl9zdGFja1sxXTtcbiAgY2FtbF9leG5fc3RhY2s9Y2FtbF9leG5fc3RhY2tbMl07XG4gIHJldHVybiBoXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmliZXJfc3RhY2tcbi8vSWY6IGVmZmVjdHNcbi8vIFRoaXMgaGFzIHRoZSBzaGFwZSB7aCwgcjp7aywgeCwgZX19IHdoZXJlIGggaXMgYSB0cmlwbGUgb2YgaGFuZGxlcnNcbi8vIChzZWUgZWZmZWN0LmpzKSBhbmQgaywgeCBhbmQgZSBhcmUgdGhlIHNhdmVkIGNvbnRpbnVhdGlvbixcbi8vIGV4Y2VwdGlvbiBzdGFjayBhbmQgZmliZXIgc3RhY2sgb2YgdGhlIHBhcmVudCBmaWJlci5cbnZhciBjYW1sX2ZpYmVyX3N0YWNrO1xuXG4vL1Byb3ZpZGVzOmNhbWxfcmVzdW1lX3N0YWNrXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX2V4bl9zdGFjaywgY2FtbF9maWJlcl9zdGFja1xuLy9JZjogZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9yZXN1bWVfc3RhY2soc3RhY2ssIGspIHtcbiAgaWYgKCFzdGFjaykgY2FtbF9yYWlzZV9jb25zdGFudFxuICAgICAgICAgICAgICAgICAoY2FtbF9uYW1lZF92YWx1ZShcIkVmZmVjdC5Db250aW51YXRpb25fYWxyZWFkeV9yZXN1bWVkXCIpKTtcbiAgLy8gVXBkYXRlIHRoZSBleGVjdXRpb24gY29udGV4dCB3aXRoIHRoZSBzdGFjayBvZiBmaWJlcnMgaW4gW3N0YWNrXSBpblxuICAvLyBvcmRlciB0byByZXN1bWUgdGhlIGNvbnRpbnVhdGlvblxuICBkbyB7XG4gICAgY2FtbF9maWJlcl9zdGFjayA9XG4gICAgICB7aDpzdGFja1szXSwgcjp7azprLCB4OmNhbWxfZXhuX3N0YWNrLCBlOmNhbWxfZmliZXJfc3RhY2t9fTtcbiAgICBrID0gc3RhY2tbMV07XG4gICAgY2FtbF9leG5fc3RhY2sgPSBzdGFja1syXTtcbiAgICBzdGFjayA9IHN0YWNrWzRdO1xuICB9IHdoaWxlIChzdGFjaylcbiAgcmV0dXJuIGs7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcG9wX2ZpYmVyXG4vL1JlcXVpcmVzOiBjYW1sX2V4bl9zdGFjaywgY2FtbF9maWJlcl9zdGFja1xuLy9JZjogZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9wb3BfZmliZXIoKSB7XG4gIC8vIE1vdmUgdG8gdGhlIHBhcmVudCBmaWJlciwgcmV0dXJuaW5nIHRoZSBwYXJlbnQncyBsb3ctbGV2ZWwgY29udGludWF0aW9uXG4gIHZhciByZW0gPSBjYW1sX2ZpYmVyX3N0YWNrLnI7XG4gIGNhbWxfZXhuX3N0YWNrID0gcmVtLng7XG4gIGNhbWxfZmliZXJfc3RhY2sgPSByZW0uZTtcbiAgcmV0dXJuIHJlbS5rO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3BlcmZvcm1fZWZmZWN0XG4vL1JlcXVpcmVzOiBjYW1sX3BvcF9maWJlciwgY2FtbF9zdGFja19jaGVja19kZXB0aCwgY2FtbF90cmFtcG9saW5lX3JldHVybiwgY2FtbF9leG5fc3RhY2ssIGNhbWxfZmliZXJfc3RhY2tcbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfcGVyZm9ybV9lZmZlY3QoZWZmLCBjb250LCBrMCkge1xuICAvLyBBbGxvY2F0ZSBhIGNvbnRpbnVhdGlvbiBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgb25lXG4gIGlmICghY29udCkgY29udCA9IFsyNDUgLypjb250aW51YXRpb24qLywgMF07XG4gIC8vIEdldCBjdXJyZW50IGVmZmVjdCBoYW5kbGVyXG4gIHZhciBoYW5kbGVyID0gY2FtbF9maWJlcl9zdGFjay5oWzNdO1xuICAvLyBDb25zIHRoZSBjdXJyZW50IGZpYmVyIG9udG8gdGhlIGNvbnRpbnVhdGlvbjpcbiAgLy8gICBjb250IDo9IENvbnMgKGssIGV4bl9zdGFjaywgaGFuZGxlcnMsICFjb250KVxuICBjb250WzFdID0gWzAsazAsY2FtbF9leG5fc3RhY2ssY2FtbF9maWJlcl9zdGFjay5oLGNvbnRbMV1dO1xuICAvLyBNb3ZlIHRvIHBhcmVudCBmaWJlciBhbmQgZXhlY3V0ZSB0aGUgZWZmZWN0IGhhbmRsZXIgdGhlcmVcbiAgLy8gVGhlIGhhbmRsZXIgaXMgZGVmaW5lZCBpbiBTdGRsaWIuRWZmZWN0LCBzbyB3ZSBrbm93IHRoYXQgdGhlIGFyaXR5IG1hdGNoZXNcbiAgdmFyIGsxID0gY2FtbF9wb3BfZmliZXIoKTtcbiAgcmV0dXJuIGNhbWxfc3RhY2tfY2hlY2tfZGVwdGgoKT9oYW5kbGVyKGVmZixjb250LGsxLGsxKVxuICAgICAgICAgOmNhbWxfdHJhbXBvbGluZV9yZXR1cm4oaGFuZGxlcixbZWZmLGNvbnQsazEsazFdKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hbGxvY19zdGFja1xuLy9SZXF1aXJlczogY2FtbF9wb3BfZmliZXIsIGNhbWxfZmliZXJfc3RhY2ssIGNhbWxfY2FsbF9nZW4sIGNhbWxfc3RhY2tfY2hlY2tfZGVwdGgsIGNhbWxfdHJhbXBvbGluZV9yZXR1cm5cbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfYWxsb2Nfc3RhY2soaHYsIGh4LCBoZikge1xuICBmdW5jdGlvbiBjYWxsKGksIHgpIHtcbiAgICB2YXIgZj1jYW1sX2ZpYmVyX3N0YWNrLmhbaV07XG4gICAgdmFyIGFyZ3MgPSBbeCwgY2FtbF9wb3BfZmliZXIoKV07XG4gICAgcmV0dXJuIGNhbWxfc3RhY2tfY2hlY2tfZGVwdGgoKT9jYW1sX2NhbGxfZ2VuKGYsYXJncylcbiAgICAgICAgICAgOmNhbWxfdHJhbXBvbGluZV9yZXR1cm4oZixhcmdzKTtcbiAgfVxuICBmdW5jdGlvbiBodmFsKHgpIHtcbiAgICAvLyBDYWxsIFtodl0gaW4gdGhlIHBhcmVudCBmaWJlclxuICAgIHJldHVybiBjYWxsKDEsIHgpO1xuICB9XG4gIGZ1bmN0aW9uIGhleG4oZSkge1xuICAgIC8vIENhbGwgW2h4XSBpbiB0aGUgcGFyZW50IGZpYmVyXG4gICAgcmV0dXJuIGNhbGwoMiwgZSk7XG4gIH1cbiAgcmV0dXJuIFswLCBodmFsLCBbMCwgaGV4biwgMF0sIFswLCBodiwgaHgsIGhmXSwgMF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYWxsb2Nfc3RhY2tcbi8vSWY6ICFlZmZlY3RzXG5mdW5jdGlvbiBjYW1sX2FsbG9jX3N0YWNrKGh2LCBoeCwgaGYpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udGludWF0aW9uX3VzZV9ub2V4Y1xuZnVuY3Rpb24gY2FtbF9jb250aW51YXRpb25fdXNlX25vZXhjKGNvbnQpIHtcbiAgdmFyIHN0YWNrPWNvbnRbMV07XG4gIGNvbnRbMV09MDtcbiAgcmV0dXJuIHN0YWNrO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnRpbnVhdGlvbl91c2VfYW5kX3VwZGF0ZV9oYW5kbGVyX25vZXhjXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnRpbnVhdGlvbl91c2Vfbm9leGNcbmZ1bmN0aW9uIGNhbWxfY29udGludWF0aW9uX3VzZV9hbmRfdXBkYXRlX2hhbmRsZXJfbm9leGMoY29udCwgaHZhbCwgaGV4biwgaGVmZikge1xuICB2YXIgc3RhY2sgPSBjYW1sX2NvbnRpbnVhdGlvbl91c2Vfbm9leGMoY29udCk7XG4gIHN0YWNrWzNdID0gWzAsIGh2YWwsIGhleG4sIGhlZmZdO1xuICByZXR1cm4gc3RhY2s7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2NvbnRpbnVhdGlvbl9jYWxsc3RhY2tcbmZ1bmN0aW9uIGNhbWxfZ2V0X2NvbnRpbnVhdGlvbl9jYWxsc3RhY2sgKCkgeyByZXR1cm4gWzBdOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY29uZGl0aW9uX25ld1xuZnVuY3Rpb24gY2FtbF9tbF9jb25kaXRpb25fbmV3KHVuaXQpe1xuICAgIHJldHVybiB7Y29uZGl0aW9uOjF9O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NvbmRpdGlvbl93YWl0XG5mdW5jdGlvbiBjYW1sX21sX2NvbmRpdGlvbl93YWl0KHQsbXV0ZXh0KXtcbiAgICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jb25kaXRpb25fYnJvYWRjYXN0XG5mdW5jdGlvbiBjYW1sX21sX2NvbmRpdGlvbl9icm9hZGNhc3QodCl7XG4gICAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY29uZGl0aW9uX3NpZ25hbFxuZnVuY3Rpb24gY2FtbF9tbF9jb25kaXRpb25fc2lnbmFsKHQpe1xuICAgIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBqc29vX2VmZmVjdF9ub3Rfc3VwcG9ydGVkXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vLyFJZjogZWZmZWN0c1xuZnVuY3Rpb24ganNvb19lZmZlY3Rfbm90X3N1cHBvcnRlZCgpe1xuICBjYW1sX2ZhaWx3aXRoKFwiRWZmZWN0IGhhbmRsZXJzIGFyZSBub3Qgc3VwcG9ydGVkXCIpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogZnNfbm9kZV9zdXBwb3J0ZWRcbmZ1bmN0aW9uIGZzX25vZGVfc3VwcG9ydGVkICgpIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzICE9PSAndW5kZWZpbmVkJ1xuICAgICAgJiYgdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcy52ZXJzaW9ucyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICYmIHR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3MudmVyc2lvbnMubm9kZSAhPT0gJ3VuZGVmaW5lZCcpXG59XG4vL1Byb3ZpZGVzOiBmc19ub2RlX3N1cHBvcnRlZFxuLy9JZjogYnJvd3NlclxuZnVuY3Rpb24gZnNfbm9kZV9zdXBwb3J0ZWQgKCkge1xuICByZXR1cm4gZmFsc2Vcbn1cblxuXG4vL1Byb3ZpZGVzOiBNbE5vZGVEZXZpY2Vcbi8vUmVxdWlyZXM6IE1sTm9kZUZkLCBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9yYWlzZV93aXRoX2FyZ3Ncbi8vUmVxdWlyZXM6IG1ha2VfdW5peF9lcnJfYXJncywgY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbmZ1bmN0aW9uIE1sTm9kZURldmljZShyb290KSB7XG4gIHRoaXMuZnMgPSByZXF1aXJlKCdmcycpO1xuICB0aGlzLnJvb3QgPSByb290O1xufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5ubSA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgcmV0dXJuICh0aGlzLnJvb3QgKyBuYW1lKTtcbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuZXhpc3RzID0gZnVuY3Rpb24obmFtZSkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLmV4aXN0c1N5bmModGhpcy5ubShuYW1lKSk/MTowO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5pc0ZpbGUgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMuc3RhdFN5bmModGhpcy5ubShuYW1lKSkuaXNGaWxlKCk/MTowO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUubWtkaXIgPSBmdW5jdGlvbihuYW1lLCBtb2RlLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5ta2RpclN5bmModGhpcy5ubShuYW1lKSx7bW9kZTptb2RlfSk7XG4gICAgcmV0dXJuIDBcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5ybWRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLnJtZGlyU3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gMFxuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJlYWRkaXIgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMucmVhZGRpclN5bmModGhpcy5ubShuYW1lKSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuaXNfZGlyID0gZnVuY3Rpb24obmFtZSkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLnN0YXRTeW5jKHRoaXMubm0obmFtZSkpLmlzRGlyZWN0b3J5KCk/MTowO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUudW5saW5rID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHZhciBiID0gdGhpcy5mcy5leGlzdHNTeW5jKHRoaXMubm0obmFtZSkpPzE6MDtcbiAgICB0aGlzLmZzLnVubGlua1N5bmModGhpcy5ubShuYW1lKSk7XG4gICAgcmV0dXJuIGI7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uKG5hbWUsIGYsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIGNvbnN0cyA9IHJlcXVpcmUoJ2NvbnN0YW50cycpO1xuICB2YXIgcmVzID0gMDtcbiAgZm9yKHZhciBrZXkgaW4gZil7XG4gICAgc3dpdGNoKGtleSl7XG4gICAgY2FzZSBcInJkb25seVwiICA6IHJlcyB8PSBjb25zdHMuT19SRE9OTFk7IGJyZWFrO1xuICAgIGNhc2UgXCJ3cm9ubHlcIiAgOiByZXMgfD0gY29uc3RzLk9fV1JPTkxZOyBicmVhaztcbiAgICBjYXNlIFwiYXBwZW5kXCIgIDpcbiAgICAgIHJlcyB8PSBjb25zdHMuT19XUk9OTFkgfCBjb25zdHMuT19BUFBFTkQ7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiY3JlYXRlXCIgICA6IHJlcyB8PSBjb25zdHMuT19DUkVBVDsgICAgYnJlYWs7XG4gICAgY2FzZSBcInRydW5jYXRlXCIgOiByZXMgfD0gY29uc3RzLk9fVFJVTkM7ICAgIGJyZWFrO1xuICAgIGNhc2UgXCJleGNsXCIgICAgIDogcmVzIHw9IGNvbnN0cy5PX0VYQ0w7ICAgICBicmVhaztcbiAgICBjYXNlIFwiYmluYXJ5XCIgICA6IHJlcyB8PSBjb25zdHMuT19CSU5BUlk7ICAgYnJlYWs7XG4gICAgY2FzZSBcInRleHRcIiAgICAgOiByZXMgfD0gY29uc3RzLk9fVEVYVDsgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJub25ibG9ja1wiIDogcmVzIHw9IGNvbnN0cy5PX05PTkJMT0NLOyBicmVhaztcbiAgICB9XG4gIH1cbiAgdHJ5IHtcbiAgICB2YXIgZmQgPSB0aGlzLmZzLm9wZW5TeW5jKHRoaXMubm0obmFtZSksIHJlcyk7XG4gICAgdmFyIGlzQ2hhcmFjdGVyRGV2aWNlID0gdGhpcy5mcy5sc3RhdFN5bmModGhpcy5ubShuYW1lKSkuaXNDaGFyYWN0ZXJEZXZpY2UoKTtcbiAgICBmLmlzQ2hhcmFjdGVyRGV2aWNlID0gaXNDaGFyYWN0ZXJEZXZpY2U7XG4gICAgcmV0dXJuIG5ldyBNbE5vZGVGZChmZCwgZik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cblxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5yZW5hbWUgPSBmdW5jdGlvbihvLCBuLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5yZW5hbWVTeW5jKHRoaXMubm0obyksIHRoaXMubm0obikpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnN0YXQgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdmFyIGpzX3N0YXRzID0gdGhpcy5mcy5zdGF0U3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0c19mcm9tX2pzKGpzX3N0YXRzKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5sc3RhdCA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB2YXIganNfc3RhdHMgPSB0aGlzLmZzLmxzdGF0U3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0c19mcm9tX2pzKGpzX3N0YXRzKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5zeW1saW5rID0gZnVuY3Rpb24odG9fZGlyLCB0YXJnZXQsIHBhdGgsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLnN5bWxpbmtTeW5jKHRoaXMubm0odGFyZ2V0KSwgdGhpcy5ubShwYXRoKSwgdG9fZGlyID8gJ2RpcicgOiAnZmlsZScpO1xuICAgIHJldHVybiAwO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJlYWRsaW5rID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHZhciBsaW5rID0gdGhpcy5mcy5yZWFkbGlua1N5bmModGhpcy5ubShuYW1lKSwgJ3V0ZjgnKTtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcobGluayk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUub3BlbmRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5vcGVuZGlyU3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5yYWlzZV9ub2RlanNfZXJyb3IgPSBmdW5jdGlvbihlcnIsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIHVuaXhfZXJyb3IgPSBjYW1sX25hbWVkX3ZhbHVlKFwiVW5peC5Vbml4X2Vycm9yXCIpO1xuICBpZiAocmFpc2VfdW5peCAmJiB1bml4X2Vycm9yKSB7XG4gICAgdmFyIGFyZ3MgPSBtYWtlX3VuaXhfZXJyX2FyZ3MoZXJyLmNvZGUsIGVyci5zeXNjYWxsLCBlcnIucGF0aCwgZXJyLmVycm5vKTtcbiAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuc3RhdHNfZnJvbV9qcyA9IGZ1bmN0aW9uKGpzX3N0YXRzKSB7XG4gIC8qID09PVVuaXguZmlsZV9raW5kPT09XG4gICAqIHR5cGUgZmlsZV9raW5kID1cbiAgICogICAgIFNfUkVHICAgICAgICAgICAgICAgICAgICAgICAoKiogUmVndWxhciBmaWxlICopXG4gICAqICAgfCBTX0RJUiAgICAgICAgICAgICAgICAgICAgICAgKCoqIERpcmVjdG9yeSAqKVxuICAgKiAgIHwgU19DSFIgICAgICAgICAgICAgICAgICAgICAgICgqKiBDaGFyYWN0ZXIgZGV2aWNlICopXG4gICAqICAgfCBTX0JMSyAgICAgICAgICAgICAgICAgICAgICAgKCoqIEJsb2NrIGRldmljZSAqKVxuICAgKiAgIHwgU19MTksgICAgICAgICAgICAgICAgICAgICAgICgqKiBTeW1ib2xpYyBsaW5rICopXG4gICAqICAgfCBTX0ZJRk8gICAgICAgICAgICAgICAgICAgICAgKCoqIE5hbWVkIHBpcGUgKilcbiAgICogICB8IFNfU09DSyAgICAgICAgICAgICAgICAgICAgICAoKiogU29ja2V0ICopXG4gICAqL1xuICB2YXIgZmlsZV9raW5kO1xuICBpZiAoanNfc3RhdHMuaXNGaWxlKCkpIHtcbiAgICBmaWxlX2tpbmQgPSAwO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICBmaWxlX2tpbmQgPSAxO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzQ2hhcmFjdGVyRGV2aWNlKCkpIHtcbiAgICBmaWxlX2tpbmQgPSAyO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzQmxvY2tEZXZpY2UoKSkge1xuICAgIGZpbGVfa2luZCA9IDM7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgIGZpbGVfa2luZCA9IDQ7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNGSUZPKCkpIHtcbiAgICBmaWxlX2tpbmQgPSA1O1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzU29ja2V0KCkpIHtcbiAgICBmaWxlX2tpbmQgPSA2O1xuICB9XG4gIC8qID09PVVuaXguc3RhdHM9PT1cbiAgICogdHlwZSBzdGF0cyA9XG4gICAqICB7IHN0X2RldiA6IGludDsgICAgICAgICAgICAgICAoKiogRGV2aWNlIG51bWJlciAqKVxuICAgKiAgICBzdF9pbm8gOiBpbnQ7ICAgICAgICAgICAgICAgKCoqIElub2RlIG51bWJlciAqKVxuICAgKiAgICBzdF9raW5kIDogZmlsZV9raW5kOyAgICAgICAgKCoqIEtpbmQgb2YgdGhlIGZpbGUgKilcbiAgICogICAgc3RfcGVybSA6IGZpbGVfcGVybTsgICAgICAgICgqKiBBY2Nlc3MgcmlnaHRzICopXG4gICAqICAgIHN0X25saW5rIDogaW50OyAgICAgICAgICAgICAoKiogTnVtYmVyIG9mIGxpbmtzICopXG4gICAqICAgIHN0X3VpZCA6IGludDsgICAgICAgICAgICAgICAoKiogVXNlciBpZCBvZiB0aGUgb3duZXIgKilcbiAgICogICAgc3RfZ2lkIDogaW50OyAgICAgICAgICAgICAgICgqKiBHcm91cCBJRCBvZiB0aGUgZmlsZSdzIGdyb3VwICopXG4gICAqICAgIHN0X3JkZXYgOiBpbnQ7ICAgICAgICAgICAgICAoKiogRGV2aWNlIElEIChpZiBzcGVjaWFsIGZpbGUpICopXG4gICAqICAgIHN0X3NpemUgOiBpbnQ7ICAgICAgICAgICAgICAoKiogU2l6ZSBpbiBieXRlcyAqKVxuICAgKiAgICBzdF9hdGltZSA6IGZsb2F0OyAgICAgICAgICAgKCoqIExhc3QgYWNjZXNzIHRpbWUgKilcbiAgICogICAgc3RfbXRpbWUgOiBmbG9hdDsgICAgICAgICAgICgqKiBMYXN0IG1vZGlmaWNhdGlvbiB0aW1lICopXG4gICAqICAgIHN0X2N0aW1lIDogZmxvYXQ7ICAgICAgICAgICAoKiogTGFzdCBzdGF0dXMgY2hhbmdlIHRpbWUgKilcbiAgICogIH1cbiAgICovXG4gIHJldHVybiBCTE9DSyhcbiAgICAwLFxuICAgIGpzX3N0YXRzLmRldixcbiAgICBqc19zdGF0cy5pbm8sXG4gICAgZmlsZV9raW5kLFxuICAgIGpzX3N0YXRzLm1vZGUsXG4gICAganNfc3RhdHMubmxpbmssXG4gICAganNfc3RhdHMudWlkLFxuICAgIGpzX3N0YXRzLmdpZCxcbiAgICBqc19zdGF0cy5yZGV2LFxuICAgIGpzX3N0YXRzLnNpemUsXG4gICAganNfc3RhdHMuYXRpbWVNcyxcbiAgICBqc19zdGF0cy5tdGltZU1zLFxuICAgIGpzX3N0YXRzLmN0aW1lTXNcbiAgKTtcbn1cblxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1sTm9kZURldmljZVxuXG4vL1Byb3ZpZGVzOiBNbE5vZGVEZXZpY2Vcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIE1sTm9kZURldmljZSgpIHtcbn1cblxuLy9Qcm92aWRlczogTWxOb2RlRmRcbi8vUmVxdWlyZXM6IE1sRmlsZSwgY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmcsIGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMsIGNhbWxfYnl0ZXNfc2V0LCBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gTWxOb2RlRmQoZmQsIGZsYWdzKXtcbiAgdGhpcy5mcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gIHRoaXMuZmQgPSBmZDtcbiAgdGhpcy5mbGFncyA9IGZsYWdzO1xufVxuTWxOb2RlRmQucHJvdG90eXBlID0gbmV3IE1sRmlsZSAoKTtcbk1sTm9kZUZkLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1sTm9kZUZkO1xuXG5NbE5vZGVGZC5wcm90b3R5cGUudHJ1bmNhdGUgPSBmdW5jdGlvbihsZW4pe1xuICB0cnkge1xuICAgIHRoaXMuZnMuZnRydW5jYXRlU3luYyh0aGlzLmZkLGxlbnwwKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVGZC5wcm90b3R5cGUubGVuZ3RoID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLmZzdGF0U3luYyh0aGlzLmZkKS5zaXplO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZUZkLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKG9mZnNldCxidWYsYnVmX29mZnNldCxsZW4pe1xuICB0cnkge1xuICAgIGlmKHRoaXMuZmxhZ3MuaXNDaGFyYWN0ZXJEZXZpY2UpXG4gICAgICB0aGlzLmZzLndyaXRlU3luYyh0aGlzLmZkLCBidWYsIGJ1Zl9vZmZzZXQsIGxlbik7XG4gICAgZWxzZVxuICAgICAgdGhpcy5mcy53cml0ZVN5bmModGhpcy5mZCwgYnVmLCBidWZfb2Zmc2V0LCBsZW4sIG9mZnNldCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxuICByZXR1cm4gMDtcbn1cbk1sTm9kZUZkLnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24ob2Zmc2V0LGEsYnVmX29mZnNldCxsZW4pe1xuICB0cnkge1xuICAgIGlmKHRoaXMuZmxhZ3MuaXNDaGFyYWN0ZXJEZXZpY2UpXG4gICAgICB2YXIgcmVhZCA9IHRoaXMuZnMucmVhZFN5bmModGhpcy5mZCwgYSwgYnVmX29mZnNldCwgbGVuKTtcbiAgICBlbHNlXG4gICAgICB2YXIgcmVhZCA9IHRoaXMuZnMucmVhZFN5bmModGhpcy5mZCwgYSwgYnVmX29mZnNldCwgbGVuLCBvZmZzZXQpO1xuICAgIHJldHVybiByZWFkO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZUZkLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uKCl7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5jbG9zZVN5bmModGhpcy5mZCk7XG4gICAgcmV0dXJuIDBcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5cblxuLy9Qcm92aWRlczogTWxOb2RlRmRcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIE1sTm9kZUZkKCl7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfb3Blbl9mb3Jfbm9kZVxuLy9SZXF1aXJlczogTWxOb2RlRmRcbmZ1bmN0aW9uIGNhbWxfc3lzX29wZW5fZm9yX25vZGUoZmQsIGZsYWdzKXtcbiAgaWYoZmxhZ3MubmFtZSkge1xuICAgIHRyeSB7XG4gICAgICB2YXIgZnMgPSByZXF1aXJlKFwiZnNcIik7XG4gICAgICB2YXIgZmQyID0gZnMub3BlblN5bmMoZmxhZ3MubmFtZSwgXCJyc1wiKTtcbiAgICAgIHJldHVybiBuZXcgTWxOb2RlRmQoZmQyLCBmbGFncyk7XG4gICAgfSBjYXRjaChlKSB7ICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBNbE5vZGVGZChmZCwgZmxhZ3MpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19vcGVuX2Zvcl9ub2RlXG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBjYW1sX3N5c19vcGVuX2Zvcl9ub2RlKGZkLCBmbGFncyl7XG4gIHJldHVybiBudWxsO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBEdW1teSBmaWxlc3lzdGVtXG5cbi8vUHJvdmlkZXM6IGNhbWxfdHJhaWxpbmdfc2xhc2hcbmZ1bmN0aW9uIGNhbWxfdHJhaWxpbmdfc2xhc2gobmFtZSl7XG4gIHJldHVybiAobmFtZS5zbGljZSgtMSkgIT09IFwiL1wiKSA/IChuYW1lICsgXCIvXCIpIDogbmFtZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jdXJyZW50X2RpclxuLy9SZXF1aXJlczogY2FtbF90cmFpbGluZ19zbGFzaCwgZnNfbm9kZV9zdXBwb3J0ZWRcbmlmKGZzX25vZGVfc3VwcG9ydGVkICgpICYmIGdsb2JhbFRoaXMucHJvY2VzcyAmJiBnbG9iYWxUaGlzLnByb2Nlc3MuY3dkKVxuICB2YXIgY2FtbF9jdXJyZW50X2RpciA9IGdsb2JhbFRoaXMucHJvY2Vzcy5jd2QoKS5yZXBsYWNlKC9cXFxcL2csJy8nKTtcbmVsc2VcbiAgdmFyIGNhbWxfY3VycmVudF9kaXIgPSAgXCIvc3RhdGljXCI7XG5jYW1sX2N1cnJlbnRfZGlyID0gY2FtbF90cmFpbGluZ19zbGFzaChjYW1sX2N1cnJlbnRfZGlyKTtcblxuLy9Qcm92aWRlczogY2FtbF9nZXRfcm9vdFxuLy9SZXF1aXJlczogcGF0aF9pc19hYnNvbHV0ZVxuZnVuY3Rpb24gY2FtbF9nZXRfcm9vdChwYXRoKXtcbiAgdmFyIHggPSBwYXRoX2lzX2Fic29sdXRlKHBhdGgpO1xuICBpZiAoIXgpIHJldHVybjtcbiAgcmV0dXJuIHhbMF0gKyBcIi9cIn1cblxuLy9Qcm92aWRlczogY2FtbF9yb290XG4vL1JlcXVpcmVzOiBjYW1sX2dldF9yb290LCBjYW1sX2N1cnJlbnRfZGlyLCBjYW1sX2ZhaWx3aXRoXG52YXIgY2FtbF9yb290ID0gY2FtbF9nZXRfcm9vdChjYW1sX2N1cnJlbnRfZGlyKSB8fCBjYW1sX2ZhaWx3aXRoKFwidW5hYmxlIHRvIGNvbXB1dGUgY2FtbF9yb290XCIpO1xuXG5cbi8vUHJvdmlkZXM6IE1sRmlsZVxuZnVuY3Rpb24gTWxGaWxlKCl7ICB9XG5cbi8vUHJvdmlkZXM6IHBhdGhfaXNfYWJzb2x1dGVcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkXG5mdW5jdGlvbiBtYWtlX3BhdGhfaXNfYWJzb2x1dGUoKSB7XG4gIGZ1bmN0aW9uIHBvc2l4KHBhdGgpIHtcbiAgICBpZiAocGF0aC5jaGFyQXQoMCkgPT09ICcvJykgcmV0dXJuIFtcIlwiLCBwYXRoLnN1YnN0cmluZygxKV07XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZnVuY3Rpb24gd2luMzIocGF0aCkge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iL2IzZmNjMjQ1ZmIyNTUzOTkwOWVmMWQ1ZWFhMDFkYmY5MmUxNjg2MzMvbGliL3BhdGguanMjTDU2XG4gICAgdmFyIHNwbGl0RGV2aWNlUmUgPSAvXihbYS16QS1aXTp8W1xcXFwvXXsyfVteXFxcXC9dK1tcXFxcL10rW15cXFxcL10rKT8oW1xcXFwvXSk/KFtcXHNcXFNdKj8pJC87XG4gICAgdmFyIHJlc3VsdCA9IHNwbGl0RGV2aWNlUmUuZXhlYyhwYXRoKTtcbiAgICB2YXIgZGV2aWNlID0gcmVzdWx0WzFdIHx8ICcnO1xuICAgIHZhciBpc1VuYyA9IEJvb2xlYW4oZGV2aWNlICYmIGRldmljZS5jaGFyQXQoMSkgIT09ICc6Jyk7XG5cbiAgICAvLyBVTkMgcGF0aHMgYXJlIGFsd2F5cyBhYnNvbHV0ZVxuICAgIGlmIChCb29sZWFuKHJlc3VsdFsyXSB8fCBpc1VuYykpIHtcbiAgICAgIHZhciByb290ID0gKHJlc3VsdFsxXSB8fCAnJyk7XG4gICAgICB2YXIgc2VwID0gKHJlc3VsdFsyXSB8fCAnJyk7XG4gICAgICByZXR1cm4gW3Jvb3QsIHBhdGguc3Vic3RyaW5nKHJvb3QubGVuZ3RoICsgc2VwLmxlbmd0aCldXG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuICBpZihmc19ub2RlX3N1cHBvcnRlZCAoKSAmJiBnbG9iYWxUaGlzLnByb2Nlc3MgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtKSB7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMucHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IHdpbjMyIDogcG9zaXg7XG4gIH1cbiAgZWxzZSByZXR1cm4gcG9zaXhcbn1cbnZhciBwYXRoX2lzX2Fic29sdXRlID0gbWFrZV9wYXRoX2lzX2Fic29sdXRlKCk7XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFrZV9wYXRoXG4vL1JlcXVpcmVzOiBjYW1sX2N1cnJlbnRfZGlyXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZywgcGF0aF9pc19hYnNvbHV0ZVxuZnVuY3Rpb24gY2FtbF9tYWtlX3BhdGggKG5hbWUpIHtcbiAgbmFtZT1jYW1sX2pzc3RyaW5nX29mX3N0cmluZyhuYW1lKTtcbiAgaWYoICFwYXRoX2lzX2Fic29sdXRlKG5hbWUpIClcbiAgICBuYW1lID0gY2FtbF9jdXJyZW50X2RpciArIG5hbWU7XG4gIHZhciBjb21wMCA9IHBhdGhfaXNfYWJzb2x1dGUobmFtZSk7XG4gIHZhciBjb21wID0gY29tcDBbMV0uc3BsaXQoXCIvXCIpO1xuICB2YXIgbmNvbXAgPSBbXVxuICBmb3IodmFyIGkgPSAwOyBpPGNvbXAubGVuZ3RoOyBpKyspe1xuICAgIHN3aXRjaChjb21wW2ldKXtcbiAgICBjYXNlIFwiLi5cIjogaWYobmNvbXAubGVuZ3RoPjEpIG5jb21wLnBvcCgpOyBicmVhaztcbiAgICBjYXNlIFwiLlwiOiBicmVhaztcbiAgICBjYXNlIFwiXCI6IGJyZWFrO1xuICAgIGRlZmF1bHQ6IG5jb21wLnB1c2goY29tcFtpXSk7YnJlYWtcbiAgICB9XG4gIH1cbiAgbmNvbXAudW5zaGlmdChjb21wMFswXSk7XG4gIG5jb21wLm9yaWcgPSBuYW1lO1xuICByZXR1cm4gbmNvbXA7XG59XG5cbi8vUHJvdmlkZXM6anNvb19tb3VudF9wb2ludFxuLy9SZXF1aXJlczogTWxGYWtlRGV2aWNlLCBNbE5vZGVEZXZpY2UsIGNhbWxfcm9vdCwgZnNfbm9kZV9zdXBwb3J0ZWRcbnZhciBqc29vX21vdW50X3BvaW50ID0gW11cbmlmIChmc19ub2RlX3N1cHBvcnRlZCgpKSB7XG4gIGpzb29fbW91bnRfcG9pbnQucHVzaCh7cGF0aDpjYW1sX3Jvb3QsZGV2aWNlOm5ldyBNbE5vZGVEZXZpY2UoY2FtbF9yb290KX0pO1xufSBlbHNlIHtcbiAganNvb19tb3VudF9wb2ludC5wdXNoKHtwYXRoOmNhbWxfcm9vdCxkZXZpY2U6bmV3IE1sRmFrZURldmljZShjYW1sX3Jvb3QpfSk7XG59XG5qc29vX21vdW50X3BvaW50LnB1c2goe3BhdGg6XCIvc3RhdGljL1wiLCBkZXZpY2U6bmV3IE1sRmFrZURldmljZShcIi9zdGF0aWMvXCIpfSk7XG5cbi8vUHJvdmlkZXM6Y2FtbF9saXN0X21vdW50X3BvaW50XG4vL1JlcXVpcmVzOiBqc29vX21vdW50X3BvaW50LCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2xpc3RfbW91bnRfcG9pbnQoKXtcbiAgdmFyIHByZXYgPSAwXG4gIGZvcih2YXIgaSA9IDA7IGkgPCBqc29vX21vdW50X3BvaW50Lmxlbmd0aDsgaSsrKXtcbiAgICB2YXIgb2xkID0gcHJldjtcbiAgICBwcmV2ID0gWzAsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoanNvb19tb3VudF9wb2ludFtpXS5wYXRoKSwgb2xkXVxuICB9XG4gIHJldHVybiBwcmV2O1xufVxuXG4vL1Byb3ZpZGVzOiByZXNvbHZlX2ZzX2RldmljZVxuLy9SZXF1aXJlczogY2FtbF9tYWtlX3BhdGgsIGpzb29fbW91bnRfcG9pbnQsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX2dldF9yb290LCBNbE5vZGVEZXZpY2UsIGNhbWxfdHJhaWxpbmdfc2xhc2gsIGZzX25vZGVfc3VwcG9ydGVkXG5mdW5jdGlvbiByZXNvbHZlX2ZzX2RldmljZShuYW1lKXtcbiAgdmFyIHBhdGggPSBjYW1sX21ha2VfcGF0aChuYW1lKTtcbiAgdmFyIG5hbWUgPSBwYXRoLmpvaW4oXCIvXCIpO1xuICB2YXIgbmFtZV9zbGFzaCA9IGNhbWxfdHJhaWxpbmdfc2xhc2gobmFtZSk7XG4gIHZhciByZXM7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBqc29vX21vdW50X3BvaW50Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG0gPSBqc29vX21vdW50X3BvaW50W2ldO1xuICAgIGlmKG5hbWVfc2xhc2guc2VhcmNoKG0ucGF0aCkgPT0gMFxuICAgICAgICYmICghcmVzIHx8IHJlcy5wYXRoLmxlbmd0aCA8IG0ucGF0aC5sZW5ndGgpKVxuICAgICAgcmVzID0ge3BhdGg6bS5wYXRoLGRldmljZTptLmRldmljZSxyZXN0Om5hbWUuc3Vic3RyaW5nKG0ucGF0aC5sZW5ndGgsbmFtZS5sZW5ndGgpfTtcbiAgfVxuICBpZiggIXJlcyAmJiBmc19ub2RlX3N1cHBvcnRlZCgpKSB7XG4gICAgdmFyIHJvb3QgPSBjYW1sX2dldF9yb290KG5hbWUpO1xuICAgIGlmIChyb290ICYmIHJvb3QubWF0Y2goL15bYS16QS1aXTpcXC8kLykpe1xuICAgICAgdmFyIG0gPSB7cGF0aDpyb290LGRldmljZTpuZXcgTWxOb2RlRGV2aWNlKHJvb3QpfTtcbiAgICAgIGpzb29fbW91bnRfcG9pbnQucHVzaChtKTtcbiAgICAgIHJlcyA9IHtwYXRoOm0ucGF0aCxkZXZpY2U6bS5kZXZpY2UscmVzdDpuYW1lLnN1YnN0cmluZyhtLnBhdGgubGVuZ3RoLG5hbWUubGVuZ3RoKX07XG4gICAgfVxuICB9XG4gIGlmKCByZXMgKSByZXR1cm4gcmVzO1xuICBjYW1sX3JhaXNlX3N5c19lcnJvcihcIm5vIGRldmljZSBmb3VuZCBmb3IgXCIgKyBuYW1lX3NsYXNoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tb3VudF9hdXRvbG9hZFxuLy9SZXF1aXJlczogTWxGYWtlRGV2aWNlLCBjYW1sX21ha2VfcGF0aCwganNvb19tb3VudF9wb2ludCwgY2FtbF90cmFpbGluZ19zbGFzaFxuZnVuY3Rpb24gY2FtbF9tb3VudF9hdXRvbG9hZChuYW1lLGYpe1xuICB2YXIgcGF0aCA9IGNhbWxfbWFrZV9wYXRoKG5hbWUpO1xuICB2YXIgbmFtZSA9IGNhbWxfdHJhaWxpbmdfc2xhc2gocGF0aC5qb2luKFwiL1wiKSk7XG4gIGpzb29fbW91bnRfcG9pbnQucHVzaCh7cGF0aDpuYW1lLGRldmljZTpuZXcgTWxGYWtlRGV2aWNlKG5hbWUsZil9KVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bm1vdW50XG4vL1JlcXVpcmVzOiBqc29vX21vdW50X3BvaW50LCBjYW1sX21ha2VfcGF0aCwgY2FtbF90cmFpbGluZ19zbGFzaFxuZnVuY3Rpb24gY2FtbF91bm1vdW50KG5hbWUpe1xuICB2YXIgcGF0aCA9IGNhbWxfbWFrZV9wYXRoKG5hbWUpO1xuICB2YXIgbmFtZSA9IGNhbWxfdHJhaWxpbmdfc2xhc2gocGF0aC5qb2luKFwiL1wiKSk7XG4gIHZhciBpZHggPSAtMTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGpzb29fbW91bnRfcG9pbnQubGVuZ3RoOyBpKyspXG4gICAgaWYoanNvb19tb3VudF9wb2ludFtpXS5wYXRoID09IG5hbWUpIGlkeCA9IGk7XG4gIGlmKGlkeCA+IC0xKSBqc29vX21vdW50X3BvaW50LnNwbGljZShpZHgsMSk7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2dldGN3ZFxuLy9SZXF1aXJlczogY2FtbF9jdXJyZW50X2RpciwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0Y3dkKCkge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhjYW1sX2N1cnJlbnRfZGlyKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY2hkaXJcbi8vUmVxdWlyZXM6IGNhbWxfY3VycmVudF9kaXIsIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlLCByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF90cmFpbGluZ19zbGFzaCwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zeXNfY2hkaXIoZGlyKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UoZGlyKTtcbiAgaWYocm9vdC5kZXZpY2UuZXhpc3RzKHJvb3QucmVzdCkpIHtcbiAgICBpZihyb290LnJlc3QpIGNhbWxfY3VycmVudF9kaXIgPSBjYW1sX3RyYWlsaW5nX3NsYXNoKHJvb3QucGF0aCArIHJvb3QucmVzdCk7XG4gICAgZWxzZSBjYW1sX2N1cnJlbnRfZGlyID0gcm9vdC5wYXRoO1xuICAgIHJldHVybiAwO1xuICB9XG4gIGVsc2Uge1xuICAgIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlKGNhbWxfanNieXRlc19vZl9zdHJpbmcoZGlyKSk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZShuYW1lKXtcbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IgKG5hbWUgKyBcIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9ub3RfYV9kaXJcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBjYW1sX3JhaXNlX25vdF9hX2RpcihuYW1lKXtcbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IgKG5hbWUgKyBcIjogTm90IGEgZGlyZWN0b3J5XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19maWxlX2V4aXN0c1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX2ZpbGVfZXhpc3RzIChuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHJldHVybiByb290LmRldmljZS5leGlzdHMocm9vdC5yZXN0KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcmVhZF9kaXJlY3Rvcnlcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2FfZGlyLCByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9zeXNfcmVhZF9kaXJlY3RvcnkobmFtZSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHZhciBhID0gcm9vdC5kZXZpY2UucmVhZGRpcihyb290LnJlc3QpO1xuICB2YXIgbCA9IG5ldyBBcnJheShhLmxlbmd0aCArIDEpO1xuICBsWzBdID0gMDtcbiAgZm9yKHZhciBpPTA7aTxhLmxlbmd0aDtpKyspXG4gICAgbFtpKzFdID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhhW2ldKTtcbiAgcmV0dXJuIGw7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JlbW92ZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUsIHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N5c19yZW1vdmUobmFtZSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHZhciBvayA9IHJvb3QuZGV2aWNlLnVubGluayhyb290LnJlc3QpO1xuICBpZihvayA9PSAwKSBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZShjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5hbWUpKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2lzX2RpcmVjdG9yeVxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX2lzX2RpcmVjdG9yeShuYW1lKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgdmFyIGEgPSByb290LmRldmljZS5pc19kaXIocm9vdC5yZXN0KTtcbiAgcmV0dXJuIGE/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19yZW5hbWVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19yZW5hbWUobyxuKXtcbiAgdmFyIG9fcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG8pO1xuICB2YXIgbl9yb290ID0gcmVzb2x2ZV9mc19kZXZpY2Uobik7XG4gIGlmKG9fcm9vdC5kZXZpY2UgIT0gbl9yb290LmRldmljZSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zeXNfcmVuYW1lOiBjYW5ub3QgbW92ZSBmaWxlIGJldHdlZW4gdHdvIGZpbGVzeXN0ZW1cIik7XG4gIGlmKCFvX3Jvb3QuZGV2aWNlLnJlbmFtZSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zeXNfcmVuYW1lOiBubyBpbXBsZW1lbnRlZFwiKTtcbiAgb19yb290LmRldmljZS5yZW5hbWUob19yb290LnJlc3QsIG5fcm9vdC5yZXN0KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfbWtkaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gY2FtbF9zeXNfbWtkaXIobmFtZSwgcGVybSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHJvb3QuZGV2aWNlLm1rZGlyKHJvb3QucmVzdCxwZXJtKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JtZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfcmFpc2Vfbm90X2FfZGlyXG5mdW5jdGlvbiBjYW1sX3N5c19ybWRpcihuYW1lKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgcm9vdC5kZXZpY2Uucm1kaXIocm9vdC5yZXN0KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfbWFwX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfYmFfbWFwX2ZpbGUodmZkLCBraW5kLCBsYXlvdXQsIHNoYXJlZCwgZGltcywgcG9zKSB7XG4gIC8vIHZhciBkYXRhID0gY2FtbF9zeXNfZmRzW3ZmZF07XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2JhX21hcF9maWxlIG5vdCBpbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9tYXBfZmlsZV9ieXRlY29kZVxuLy9SZXF1aXJlczogY2FtbF9iYV9tYXBfZmlsZVxuZnVuY3Rpb24gY2FtbF9iYV9tYXBfZmlsZV9ieXRlY29kZShhcmd2LGFyZ24pe1xuICByZXR1cm4gY2FtbF9iYV9tYXBfZmlsZShhcmd2WzBdLGFyZ3ZbMV0sYXJndlsyXSxhcmd2WzNdLGFyZ3ZbNF0sYXJndls1XSk7XG59XG5cbi8vUHJvdmlkZXM6IGpzb29fY3JlYXRlX2ZpbGVfZXh0ZXJuXG5mdW5jdGlvbiBqc29vX2NyZWF0ZV9maWxlX2V4dGVybihuYW1lLGNvbnRlbnQpe1xuICBpZihnbG9iYWxUaGlzLmpzb29fY3JlYXRlX2ZpbGUpXG4gICAgZ2xvYmFsVGhpcy5qc29vX2NyZWF0ZV9maWxlKG5hbWUsY29udGVudCk7XG4gIGVsc2Uge1xuICAgIGlmKCFnbG9iYWxUaGlzLmNhbWxfZnNfdG1wKSBnbG9iYWxUaGlzLmNhbWxfZnNfdG1wID0gW107XG4gICAgZ2xvYmFsVGhpcy5jYW1sX2ZzX3RtcC5wdXNoKHtuYW1lOm5hbWUsY29udGVudDpjb250ZW50fSk7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZnNfaW5pdFxuLy9SZXF1aXJlczoganNvb19jcmVhdGVfZmlsZVxuZnVuY3Rpb24gY2FtbF9mc19pbml0ICgpe1xuICB2YXIgdG1wPWdsb2JhbFRoaXMuY2FtbF9mc190bXBcbiAgaWYodG1wKXtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgdG1wLmxlbmd0aDsgaSsrKXtcbiAgICAgIGpzb29fY3JlYXRlX2ZpbGUodG1wW2ldLm5hbWUsdG1wW2ldLmNvbnRlbnQpO1xuICAgIH1cbiAgfVxuICBnbG9iYWxUaGlzLmpzb29fY3JlYXRlX2ZpbGUgPSBqc29vX2NyZWF0ZV9maWxlO1xuICBnbG9iYWxUaGlzLmNhbWxfZnNfdG1wID0gW107XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NyZWF0ZV9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9jcmVhdGVfZmlsZShuYW1lLGNvbnRlbnQpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYoISByb290LmRldmljZS5yZWdpc3RlcikgY2FtbF9mYWlsd2l0aChcImNhbm5vdCByZWdpc3RlciBmaWxlXCIpO1xuICByb290LmRldmljZS5yZWdpc3Rlcihyb290LnJlc3QsY29udGVudCk7XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IGpzb29fY3JlYXRlX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfY3JlYXRlX2ZpbGUsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGpzb29fY3JlYXRlX2ZpbGUobmFtZSxjb250ZW50KSB7XG4gIHZhciBuYW1lID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhuYW1lKTtcbiAgdmFyIGNvbnRlbnQgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGNvbnRlbnQpO1xuICByZXR1cm4gY2FtbF9jcmVhdGVfZmlsZShuYW1lLCBjb250ZW50KTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlYWRfZmlsZV9jb250ZW50XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUsIGNhbWxfc3RyaW5nX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3JlYWRfZmlsZV9jb250ZW50IChuYW1lKSB7XG4gIHZhciBuYW1lID0gKHR5cGVvZiBuYW1lID09IFwic3RyaW5nXCIpP2NhbWxfc3RyaW5nX29mX2pzYnl0ZXMobmFtZSk6bmFtZTtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYocm9vdC5kZXZpY2UuZXhpc3RzKHJvb3QucmVzdCkpIHtcbiAgICB2YXIgZmlsZSA9IHJvb3QuZGV2aWNlLm9wZW4ocm9vdC5yZXN0LHtyZG9ubHk6MX0pO1xuICAgIHZhciBsZW4gID0gZmlsZS5sZW5ndGgoKTtcbiAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgICBmaWxlLnJlYWQoMCxidWYsMCxsZW4pO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9hcnJheShidWYpXG4gIH1cbiAgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhuYW1lKSk7XG59XG4iLCIvL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZ2V0dGltZW9mZGF5XG4vL0FsaWFzOiB1bml4X2dldHRpbWVvZmRheVxuZnVuY3Rpb24gY2FtbF91bml4X2dldHRpbWVvZmRheSAoKSB7XG4gIHJldHVybiAobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3RpbWVcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9nZXR0aW1lb2ZkYXlcbi8vQWxpYXM6IHVuaXhfdGltZVxuZnVuY3Rpb24gY2FtbF91bml4X3RpbWUgKCkge1xuICByZXR1cm4gTWF0aC5mbG9vcihjYW1sX3VuaXhfZ2V0dGltZW9mZGF5ICgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2dtdGltZVxuLy9BbGlhczogdW5peF9nbXRpbWVcbmZ1bmN0aW9uIGNhbWxfdW5peF9nbXRpbWUgKHQpIHtcbiAgdmFyIGQgPSBuZXcgRGF0ZSAodCAqIDEwMDApO1xuICB2YXIgZF9udW0gPSBkLmdldFRpbWUoKTtcbiAgdmFyIGphbnVhcnlmaXJzdCA9IChuZXcgRGF0ZShEYXRlLlVUQyhkLmdldFVUQ0Z1bGxZZWFyKCksIDAsIDEpKSkuZ2V0VGltZSgpO1xuICB2YXIgZG95ID0gTWF0aC5mbG9vcigoZF9udW0gLSBqYW51YXJ5Zmlyc3QpIC8gODY0MDAwMDApO1xuICByZXR1cm4gQkxPQ0soMCwgZC5nZXRVVENTZWNvbmRzKCksIGQuZ2V0VVRDTWludXRlcygpLCBkLmdldFVUQ0hvdXJzKCksXG4gICAgICAgICAgICAgICBkLmdldFVUQ0RhdGUoKSwgZC5nZXRVVENNb250aCgpLCBkLmdldFVUQ0Z1bGxZZWFyKCkgLSAxOTAwLFxuICAgICAgICAgICAgICAgZC5nZXRVVENEYXkoKSwgZG95LFxuICAgICAgICAgICAgICAgZmFsc2UgfCAwIC8qIGZvciBVVEMgZGF5bGlnaHQgc2F2aW5ncyB0aW1lIGlzIGZhbHNlICovKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfbG9jYWx0aW1lXG4vL0FsaWFzOiB1bml4X2xvY2FsdGltZVxuZnVuY3Rpb24gY2FtbF91bml4X2xvY2FsdGltZSAodCkge1xuICB2YXIgZCA9IG5ldyBEYXRlICh0ICogMTAwMCk7XG4gIHZhciBkX251bSA9IGQuZ2V0VGltZSgpO1xuICB2YXIgamFudWFyeWZpcnN0ID0gKG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgMCwgMSkpLmdldFRpbWUoKTtcbiAgdmFyIGRveSA9IE1hdGguZmxvb3IoKGRfbnVtIC0gamFudWFyeWZpcnN0KSAvIDg2NDAwMDAwKTtcbiAgdmFyIGphbiA9IG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgMCwgMSk7XG4gIHZhciBqdWwgPSBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIDYsIDEpO1xuICB2YXIgc3RkVGltZXpvbmVPZmZzZXQgPSBNYXRoLm1heChqYW4uZ2V0VGltZXpvbmVPZmZzZXQoKSwganVsLmdldFRpbWV6b25lT2Zmc2V0KCkpO1xuICByZXR1cm4gQkxPQ0soMCwgZC5nZXRTZWNvbmRzKCksIGQuZ2V0TWludXRlcygpLCBkLmdldEhvdXJzKCksXG4gICAgICAgICAgICAgICBkLmdldERhdGUoKSwgZC5nZXRNb250aCgpLCBkLmdldEZ1bGxZZWFyKCkgLSAxOTAwLFxuICAgICAgICAgICAgICAgZC5nZXREYXkoKSwgZG95LFxuICAgICAgICAgICAgICAgKGQuZ2V0VGltZXpvbmVPZmZzZXQoKSA8IHN0ZFRpbWV6b25lT2Zmc2V0KSB8IDAgLyogZGF5bGlnaHQgc2F2aW5ncyB0aW1lICBmaWVsZC4gKi8pXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9ta3RpbWVcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9sb2NhbHRpbWVcbi8vQWxpYXM6IHVuaXhfbWt0aW1lXG5mdW5jdGlvbiBjYW1sX3VuaXhfbWt0aW1lKHRtKXtcbiAgdmFyIGQgPSAobmV3IERhdGUodG1bNl0rMTkwMCx0bVs1XSx0bVs0XSx0bVszXSx0bVsyXSx0bVsxXSkpLmdldFRpbWUoKTtcbiAgdmFyIHQgPSBNYXRoLmZsb29yKGQgLyAxMDAwKTtcbiAgdmFyIHRtMiA9IGNhbWxfdW5peF9sb2NhbHRpbWUodCk7XG4gIHJldHVybiBCTE9DSygwLHQsdG0yKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9zdGFydHVwIGNvbnN0XG4vL0FsaWFzOiB3aW5fc3RhcnR1cFxuZnVuY3Rpb24gY2FtbF91bml4X3N0YXJ0dXAoKSB7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfY2xlYW51cCBjb25zdFxuLy9BbGlhczogd2luX2NsZWFudXBcbmZ1bmN0aW9uIGNhbWxfdW5peF9jbGVhbnVwKCkge31cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2ZpbGVkZXNjcl9vZl9mZCBjb25zdFxuLy9BbGlhczogd2luX2hhbmRsZV9mZFxuZnVuY3Rpb24gY2FtbF91bml4X2ZpbGVkZXNjcl9vZl9mZCh4KSB7cmV0dXJuIHg7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfaXNhdHR5XG4vL1JlcXVpcmVzOiBmc19ub2RlX3N1cHBvcnRlZFxuLy9BbGlhczogdW5peF9pc2F0dHlcbmZ1bmN0aW9uIGNhbWxfdW5peF9pc2F0dHkoZmlsZURlc2NyaXB0b3IpIHtcbiAgaWYoZnNfbm9kZV9zdXBwb3J0ZWQoKSkge1xuICAgIHZhciB0dHkgPSByZXF1aXJlKCd0dHknKTtcbiAgICByZXR1cm4gdHR5LmlzYXR0eShmaWxlRGVzY3JpcHRvcik/MTowO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAwO1xuICB9XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2lzYXR0eVxuLy9BbGlhczogdW5peF9pc2F0dHlcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIGNhbWxfdW5peF9pc2F0dHkoZmlsZURlc2NyaXB0b3IpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IG1ha2VfdW5peF9lcnJfYXJnc1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbnZhciB1bml4X2Vycm9yID0gW1xuICAvKiA9PT1Vbml4LmVycm9yPT09XG4gICAqXG4gICAqIFRoaXMgYXJyYXkgaXMgaW4gb3JkZXIgb2YgdGhlIHZhcmlhbnQgaW4gT0NhbWxcbiAgICovXG4gIFwiRTJCSUdcIiwgXCJFQUNDRVNcIiwgXCJFQUdBSU5cIiwgXCJFQkFERlwiLCBcIkVCVVNZXCIsIFwiRUNISUxEXCIsIFwiRURFQURMS1wiLCBcIkVET01cIixcbiAgXCJFRVhJU1RcIiwgXCJFRkFVTFRcIiwgXCJFRkJJR1wiLCBcIkVJTlRSXCIsIFwiRUlOVkFMXCIsIFwiRUlPXCIsIFwiRUlTRElSXCIsIFwiRU1GSUxFXCIsXG4gIFwiRU1MSU5LXCIsIFwiRU5BTUVUT09MT05HXCIsIFwiRU5GSUxFXCIsIFwiRU5PREVWXCIsIFwiRU5PRU5UXCIsIFwiRU5PRVhFQ1wiLCBcIkVOT0xDS1wiLFxuICBcIkVOT01FTVwiLCBcIkVOT1NQQ1wiLCBcIkVOT1NZU1wiLCBcIkVOT1RESVJcIiwgXCJFTk9URU1QVFlcIiwgXCJFTk9UVFlcIiwgXCJFTlhJT1wiLFxuICBcIkVQRVJNXCIsIFwiRVBJUEVcIiwgXCJFUkFOR0VcIiwgXCJFUk9GU1wiLCBcIkVTUElQRVwiLCBcIkVTUkNIXCIsIFwiRVhERVZcIiwgXCJFV09VTERCTE9DS1wiLFxuICBcIkVJTlBST0dSRVNTXCIsIFwiRUFMUkVBRFlcIiwgXCJFTk9UU09DS1wiLCBcIkVERVNUQUREUlJFUVwiLCBcIkVNU0dTSVpFXCIsXG4gIFwiRVBST1RPVFlQRVwiLCBcIkVOT1BST1RPT1BUXCIsIFwiRVBST1RPTk9TVVBQT1JUXCIsIFwiRVNPQ0tUTk9TVVBQT1JUXCIsXG4gIFwiRU9QTk9UU1VQUFwiLCBcIkVQRk5PU1VQUE9SVFwiLCBcIkVBRk5PU1VQUE9SVFwiLCBcIkVBRERSSU5VU0VcIiwgXCJFQUREUk5PVEFWQUlMXCIsXG4gIFwiRU5FVERPV05cIiwgXCJFTkVUVU5SRUFDSFwiLCBcIkVORVRSRVNFVFwiLCBcIkVDT05OQUJPUlRFRFwiLCBcIkVDT05OUkVTRVRcIiwgXCJFTk9CVUZTXCIsXG4gIFwiRUlTQ09OTlwiLCBcIkVOT1RDT05OXCIsIFwiRVNIVVRET1dOXCIsIFwiRVRPT01BTllSRUZTXCIsIFwiRVRJTUVET1VUXCIsIFwiRUNPTk5SRUZVU0VEXCIsXG4gIFwiRUhPU1RET1dOXCIsIFwiRUhPU1RVTlJFQUNIXCIsIFwiRUxPT1BcIiwgXCJFT1ZFUkZMT1dcIlxuXTtcbmZ1bmN0aW9uIG1ha2VfdW5peF9lcnJfYXJncyhjb2RlLCBzeXNjYWxsLCBwYXRoLCBlcnJubykge1xuICB2YXIgdmFyaWFudCA9IHVuaXhfZXJyb3IuaW5kZXhPZihjb2RlKTtcbiAgaWYgKHZhcmlhbnQgPCAwKSB7XG4gICAgLy8gRGVmYXVsdCBpZiB1bmRlZmluZWRcbiAgICBpZiAoZXJybm8gPT0gbnVsbCkge1xuICAgICAgZXJybm8gPSAtOTk5OVxuICAgIH1cbiAgICAvLyBJZiBub25lIG9mIHRoZSBhYm92ZSB2YXJpYW50cywgZmFsbGJhY2sgdG8gRVVOS05PV05FUlIoaW50KVxuICAgIHZhcmlhbnQgPSBCTE9DSygwLCBlcnJubyk7XG4gIH1cbiAgdmFyIGFyZ3MgPSBbXG4gICAgdmFyaWFudCxcbiAgICBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhzeXNjYWxsIHx8IFwiXCIpLFxuICAgIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKHBhdGggfHwgXCJcIilcbiAgXTtcbiAgcmV0dXJuIGFyZ3M7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9zdGF0XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF9zdGF0XG5mdW5jdGlvbiBjYW1sX3VuaXhfc3RhdChuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2Uuc3RhdCkge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfc3RhdDogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5zdGF0KHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3N0YXRfNjRcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9zdGF0LCBjYW1sX2ludDY0X29mX2ludDMyXG4vL0FsaWFzOiB1bml4X3N0YXRfNjRcbmZ1bmN0aW9uIGNhbWxfdW5peF9zdGF0XzY0KG5hbWUpIHtcbiAgdmFyIHIgPSBjYW1sX3VuaXhfc3RhdChuYW1lKTtcbiAgcls5XSA9IGNhbWxfaW50NjRfb2ZfaW50MzIocls5XSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9sc3RhdFxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfbHN0YXRcbmZ1bmN0aW9uIGNhbWxfdW5peF9sc3RhdChuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2UubHN0YXQpIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X2xzdGF0OiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLmxzdGF0KHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2xzdGF0XzY0XG4vL1JlcXVpcmVzOiBjYW1sX3VuaXhfbHN0YXQsIGNhbWxfaW50NjRfb2ZfaW50MzJcbi8vQWxpYXM6IHVuaXhfbHN0YXRfNjRcbmZ1bmN0aW9uIGNhbWxfdW5peF9sc3RhdF82NChuYW1lKSB7XG4gIHZhciByID0gY2FtbF91bml4X2xzdGF0KG5hbWUpO1xuICByWzldID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihyWzldKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X21rZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF9ta2RpclxuZnVuY3Rpb24gY2FtbF91bml4X21rZGlyKG5hbWUsIHBlcm0pIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5ta2Rpcikge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfbWtkaXI6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2UubWtkaXIocm9vdC5yZXN0LCBwZXJtLCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfcm1kaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG4vL0FsaWFzOiB1bml4X3JtZGlyXG5mdW5jdGlvbiBjYW1sX3VuaXhfcm1kaXIobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLnJtZGlyKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9ybWRpcjogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5ybWRpcihyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9zeW1saW5rXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF9zeW1saW5rXG5mdW5jdGlvbiBjYW1sX3VuaXhfc3ltbGluayh0b19kaXIsIHNyYywgZHN0KSB7XG4gIHZhciBzcmNfcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKHNyYyk7XG4gIHZhciBkc3Rfcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKGRzdCk7XG4gIGlmKHNyY19yb290LmRldmljZSAhPSBkc3Rfcm9vdC5kZXZpY2UpXG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9zeW1saW5rOiBjYW5ub3Qgc3ltbGluayBiZXR3ZWVuIHR3byBmaWxlc3lzdGVtc1wiKTtcbiAgaWYgKCFzcmNfcm9vdC5kZXZpY2Uuc3ltbGluaykge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfc3ltbGluazogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiBzcmNfcm9vdC5kZXZpY2Uuc3ltbGluayh0b19kaXIsIHNyY19yb290LnJlc3QsIGRzdF9yb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9yZWFkbGlua1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfcmVhZGxpbmtcbmZ1bmN0aW9uIGNhbWxfdW5peF9yZWFkbGluayhuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2UucmVhZGxpbmspIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X3JlYWRsaW5rOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLnJlYWRsaW5rKHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3VubGlua1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfdW5saW5rXG5mdW5jdGlvbiBjYW1sX3VuaXhfdW5saW5rKG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS51bmxpbmspIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X3VubGluazogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS51bmxpbmsocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZ2V0dWlkXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vdF9mb3VuZFxuLy9BbGlhczogdW5peF9nZXR1aWRcbmZ1bmN0aW9uIGNhbWxfdW5peF9nZXR1aWQodW5pdCkge1xuICBpZihnbG9iYWxUaGlzLnByb2Nlc3MgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzLmdldHVpZCl7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMucHJvY2Vzcy5nZXR1aWQoKTtcbiAgfVxuICBjYW1sX3JhaXNlX25vdF9mb3VuZCgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZ2V0cHd1aWRcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG4vL0FsaWFzOiB1bml4X2dldHB3dWlkXG5mdW5jdGlvbiBjYW1sX3VuaXhfZ2V0cHd1aWQodW5pdCkge1xuICBjYW1sX3JhaXNlX25vdF9mb3VuZCgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfaGFzX3N5bWxpbmtcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkXG4vL0FsaWFzOiB1bml4X2hhc19zeW1saW5rXG5mdW5jdGlvbiBjYW1sX3VuaXhfaGFzX3N5bWxpbmsodW5pdCkge1xuICByZXR1cm4gZnNfbm9kZV9zdXBwb3J0ZWQoKT8xOjBcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X29wZW5kaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG4vL0FsaWFzOiB1bml4X29wZW5kaXJcbmZ1bmN0aW9uIGNhbWxfdW5peF9vcGVuZGlyKHBhdGgpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShwYXRoKTtcbiAgaWYgKCFyb290LmRldmljZS5vcGVuZGlyKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9vcGVuZGlyOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgdmFyIGRpcl9oYW5kbGUgPSByb290LmRldmljZS5vcGVuZGlyKHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbiAgcmV0dXJuIHsgcG9pbnRlciA6IGRpcl9oYW5kbGUsIHBhdGg6IHBhdGggfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfcmVhZGRpclxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IG1ha2VfdW5peF9lcnJfYXJncywgY2FtbF9yYWlzZV93aXRoX2FyZ3MsIGNhbWxfbmFtZWRfdmFsdWVcbi8vQWxpYXM6IHVuaXhfcmVhZGRpclxuZnVuY3Rpb24gY2FtbF91bml4X3JlYWRkaXIoZGlyX2hhbmRsZSkge1xuICB2YXIgZW50cnk7XG4gIHRyeSB7XG4gICAgICBlbnRyeSA9IGRpcl9oYW5kbGUucG9pbnRlci5yZWFkU3luYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgICB2YXIgdW5peF9lcnJvciA9IGNhbWxfbmFtZWRfdmFsdWUoJ1VuaXguVW5peF9lcnJvcicpO1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRUJBREZcIiwgXCJyZWFkZGlyXCIsIGRpcl9oYW5kbGUucGF0aCkpO1xuICB9XG4gIGlmIChlbnRyeSA9PT0gbnVsbCkge1xuICAgICAgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGVudHJ5Lm5hbWUpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9jbG9zZWRpclxuLy9SZXF1aXJlczogbWFrZV91bml4X2Vycl9hcmdzLCBjYW1sX3JhaXNlX3dpdGhfYXJncywgY2FtbF9uYW1lZF92YWx1ZVxuLy9BbGlhczogdW5peF9jbG9zZWRpclxuZnVuY3Rpb24gY2FtbF91bml4X2Nsb3NlZGlyKGRpcl9oYW5kbGUpIHtcbiAgdHJ5IHtcbiAgICAgIGRpcl9oYW5kbGUucG9pbnRlci5jbG9zZVN5bmMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgICAgdmFyIHVuaXhfZXJyb3IgPSBjYW1sX25hbWVkX3ZhbHVlKCdVbml4LlVuaXhfZXJyb3InKTtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVCQURGXCIsIFwiY2xvc2VkaXJcIiwgZGlyX2hhbmRsZS5wYXRoKSk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3Jld2luZGRpclxuLy9SZXF1aXJlczogY2FtbF91bml4X2Nsb3NlZGlyLCBjYW1sX3VuaXhfb3BlbmRpclxuLy9BbGlhczogdW5peF9yZXdpbmRkaXJcbmZ1bmN0aW9uIGNhbWxfdW5peF9yZXdpbmRkaXIoZGlyX2hhbmRsZSkge1xuICBjYW1sX3VuaXhfY2xvc2VkaXIoZGlyX2hhbmRsZSk7XG4gIHZhciBuZXdfZGlyX2hhbmRsZSA9IGNhbWxfdW5peF9vcGVuZGlyKGRpcl9oYW5kbGUucGF0aCk7XG4gIGRpcl9oYW5kbGUucG9pbnRlciA9IG5ld19kaXJfaGFuZGxlLnBvaW50ZXI7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZmluZGZpcnN0XG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZywgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9vcGVuZGlyLCBjYW1sX3VuaXhfcmVhZGRpclxuLy9BbGlhczogd2luX2ZpbmRmaXJzdFxuZnVuY3Rpb24gY2FtbF91bml4X2ZpbmRmaXJzdChwYXRoKSB7XG4gIC8vIFRoZSBXaW5kb3dzIGNvZGUgYWRkcyB0aGlzIGdsb2IgdG8gdGhlIHBhdGgsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIGl0XG4gIHZhciBwYXRoX2pzID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocGF0aCk7XG4gIHBhdGhfanMgPSBwYXRoX2pzLnJlcGxhY2UoLyhefFtcXFxcXFwvXSlcXCpcXC5cXCokLywgXCJcIik7XG4gIHBhdGggPSBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhwYXRoX2pzKTtcbiAgLy8gKi4qIGlzIG5vdyBzdHJpcHBlZFxuICB2YXIgZGlyX2hhbmRsZSA9IGNhbWxfdW5peF9vcGVuZGlyKHBhdGgpO1xuICB2YXIgZmlyc3RfZW50cnkgPSBjYW1sX3VuaXhfcmVhZGRpcihkaXJfaGFuZGxlKTtcbiAgLy8gVGhlIFdpbmRvd3MgYmluZGluZ3MgdHlwZSBkaXJfaGFuZGxlIGFzIGFuIGBpbnRgIGJ1dCBpdCdzIG5vdCBpbiBKU1xuICByZXR1cm4gWzAsIGZpcnN0X2VudHJ5LCBkaXJfaGFuZGxlXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2ZpbmRuZXh0XG4vL1JlcXVpcmVzOiBjYW1sX3VuaXhfcmVhZGRpclxuLy9BbGlhczogd2luX2ZpbmRuZXh0XG5mdW5jdGlvbiBjYW1sX3VuaXhfZmluZG5leHQoZGlyX2hhbmRsZSkge1xuICByZXR1cm4gY2FtbF91bml4X3JlYWRkaXIoZGlyX2hhbmRsZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9maW5kY2xvc2Vcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9jbG9zZWRpclxuLy9BbGlhczogd2luX2ZpbmRjbG9zZVxuZnVuY3Rpb24gY2FtbF91bml4X2ZpbmRjbG9zZShkaXJfaGFuZGxlKSB7XG4gIHJldHVybiBjYW1sX3VuaXhfY2xvc2VkaXIoZGlyX2hhbmRsZSk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2luZXRfYWRkcl9vZl9zdHJpbmdcbi8vQWxpYXM6IHVuaXhfaW5ldF9hZGRyX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF91bml4X2luZXRfYWRkcl9vZl9zdHJpbmcgKCkge3JldHVybiAwO31cblxuXG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZFxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBNbEZha2VEZXZpY2Vcbi8vUmVxdWlyZXM6IE1sRmFrZUZpbGUsIE1sRmFrZUZkLCBjYW1sX2NyZWF0ZV9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl9hcnJheSwgY2FtbF9ieXRlc19vZl9zdHJpbmcsIGNhbWxfYnl0ZXNfb2ZfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pc19tbF9ieXRlcywgY2FtbF9pc19tbF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfcmFpc2Vfd2l0aF9hcmdzLCBjYW1sX25hbWVkX3ZhbHVlc1xuLy9SZXF1aXJlczogbWFrZV91bml4X2Vycl9hcmdzXG5mdW5jdGlvbiBNbEZha2VEZXZpY2UgKHJvb3QsIGYpIHtcbiAgdGhpcy5jb250ZW50PXt9O1xuICB0aGlzLnJvb3QgPSByb290O1xuICB0aGlzLmxvb2t1cEZ1biA9IGY7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLm5tID0gZnVuY3Rpb24obmFtZSkge1xuICByZXR1cm4gKHRoaXMucm9vdCArIG5hbWUpO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5jcmVhdGVfZGlyX2lmX25lZWRlZCA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIGNvbXAgPSBuYW1lLnNwbGl0KFwiL1wiKTtcbiAgdmFyIHJlcyA9IFwiXCI7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBjb21wLmxlbmd0aCAtIDE7IGkrKyl7XG4gICAgcmVzICs9IGNvbXBbaV0gKyBcIi9cIjtcbiAgICBpZih0aGlzLmNvbnRlbnRbcmVzXSkgY29udGludWU7XG4gICAgdGhpcy5jb250ZW50W3Jlc10gPSBTeW1ib2woXCJkaXJlY3RvcnlcIik7XG4gIH1cbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuc2xhc2ggPSBmdW5jdGlvbihuYW1lKXtcbiAgcmV0dXJuIC9cXC8kLy50ZXN0KG5hbWUpP25hbWU6KG5hbWUgKyBcIi9cIik7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmxvb2t1cCA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgaWYoIXRoaXMuY29udGVudFtuYW1lXSAmJiB0aGlzLmxvb2t1cEZ1bikge1xuICAgIHZhciByZXMgPSB0aGlzLmxvb2t1cEZ1bihjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHRoaXMucm9vdCksIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMobmFtZSkpO1xuICAgIGlmKHJlcyAhPT0gMCkge1xuICAgICAgdGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZChuYW1lKTtcbiAgICAgIHRoaXMuY29udGVudFtuYW1lXT1uZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX3N0cmluZyhyZXNbMV0pKTtcbiAgICB9XG4gIH1cbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuZXhpc3RzID0gZnVuY3Rpb24obmFtZSkge1xuICAvLyBUaGUgcm9vdCBvZiB0aGUgZGV2aWNlIGV4aXN0c1xuICBpZihuYW1lID09IFwiXCIpIHJldHVybiAxO1xuICAvLyBDaGVjayBpZiBhIGRpcmVjdG9yeSBleGlzdHNcbiAgdmFyIG5hbWVfc2xhc2ggPSB0aGlzLnNsYXNoKG5hbWUpO1xuICBpZih0aGlzLmNvbnRlbnRbbmFtZV9zbGFzaF0pIHJldHVybiAxO1xuICAvLyBDaGVjayBpZiBhIGZpbGUgZXhpc3RzXG4gIHRoaXMubG9va3VwKG5hbWUpO1xuICByZXR1cm4gdGhpcy5jb250ZW50W25hbWVdPzE6MDtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuaXNGaWxlID0gZnVuY3Rpb24obmFtZSkge1xuICBpZih0aGlzLmV4aXN0cyhuYW1lKSAmJiAhdGhpcy5pc19kaXIobmFtZSkpIHtcbiAgICByZXR1cm4gMVxuICB9XG4gIGVsc2Uge1xuICAgIHJldHVybiAwXG4gIH1cbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUubWtkaXIgPSBmdW5jdGlvbihuYW1lLG1vZGUsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIHVuaXhfZXJyb3IgPSByYWlzZV91bml4ICYmIGNhbWxfbmFtZWRfdmFsdWUoJ1VuaXguVW5peF9lcnJvcicpO1xuICBpZih0aGlzLmV4aXN0cyhuYW1lKSkge1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFRVhJU1RcIiwgXCJta2RpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBGaWxlIGV4aXN0c1wiKTtcbiAgICB9XG4gIH1cbiAgdmFyIHBhcmVudCA9IC9eKC4qKVxcL1teL10rLy5leGVjKG5hbWUpO1xuICBwYXJlbnQgPSAocGFyZW50ICYmIHBhcmVudFsxXSkgfHwgJyc7XG4gIGlmKCF0aGlzLmV4aXN0cyhwYXJlbnQpKXtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PRU5UXCIsIFwibWtkaXJcIiwgdGhpcy5ubShwYXJlbnQpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IocGFyZW50ICsgXCI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnlcIik7XG4gICAgfVxuICB9XG4gIGlmKCF0aGlzLmlzX2RpcihwYXJlbnQpKXtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PVERJUlwiLCBcIm1rZGlyXCIsIHRoaXMubm0ocGFyZW50KSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHBhcmVudCArIFwiOiBOb3QgYSBkaXJlY3RvcnlcIik7XG4gICAgfVxuICB9XG4gIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQodGhpcy5zbGFzaChuYW1lKSk7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnJtZGlyID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB2YXIgdW5peF9lcnJvciA9IHJhaXNlX3VuaXggJiYgY2FtbF9uYW1lZF92YWx1ZSgnVW5peC5Vbml4X2Vycm9yJyk7XG4gIHZhciBuYW1lX3NsYXNoID0gKG5hbWUgPT0gXCJcIik/XCJcIjoodGhpcy5zbGFzaChuYW1lKSk7XG4gIHZhciByID0gbmV3IFJlZ0V4cChcIl5cIiArIG5hbWVfc2xhc2ggKyBcIihbXi9dKylcIik7XG4gIGlmKCF0aGlzLmV4aXN0cyhuYW1lKSkge1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9FTlRcIiwgXCJybWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgfVxuICBpZighdGhpcy5pc19kaXIobmFtZSkpIHtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PVERJUlwiLCBcInJtZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IE5vdCBhIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gIH1cbiAgZm9yKHZhciBuIGluIHRoaXMuY29udGVudCkge1xuICAgIGlmKG4ubWF0Y2gocikpIHtcbiAgICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT1RFTVBUWVwiLCBcInJtZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIjogRGlyZWN0b3J5IG5vdCBlbXB0eVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZGVsZXRlIHRoaXMuY29udGVudFtuYW1lX3NsYXNoXTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUucmVhZGRpciA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIG5hbWVfc2xhc2ggPSAobmFtZSA9PSBcIlwiKT9cIlwiOih0aGlzLnNsYXNoKG5hbWUpKTtcbiAgaWYoIXRoaXMuZXhpc3RzKG5hbWUpKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCIpO1xuICB9XG4gIGlmKCF0aGlzLmlzX2RpcihuYW1lKSkge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogTm90IGEgZGlyZWN0b3J5XCIpO1xuICB9XG4gIHZhciByID0gbmV3IFJlZ0V4cChcIl5cIiArIG5hbWVfc2xhc2ggKyBcIihbXi9dKylcIik7XG4gIHZhciBzZWVuID0ge31cbiAgdmFyIGEgPSBbXTtcbiAgZm9yKHZhciBuIGluIHRoaXMuY29udGVudCkge1xuICAgIHZhciBtID0gbi5tYXRjaChyKTtcbiAgICBpZihtICYmICFzZWVuW21bMV1dKSB7c2VlblttWzFdXSA9IHRydWU7IGEucHVzaChtWzFdKX1cbiAgfVxuICByZXR1cm4gYTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUub3BlbmRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIHVuaXhfZXJyb3IgPSByYWlzZV91bml4ICYmIGNhbWxfbmFtZWRfdmFsdWUoJ1VuaXguVW5peF9lcnJvcicpO1xuXG4gIHZhciBhID0gdGhpcy5yZWFkZGlyKG5hbWUpO1xuICB2YXIgYyA9IGZhbHNlO1xuICB2YXIgaSA9IDA7XG4gIHJldHVybiB7IHJlYWRTeW5jIDogKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoYykge1xuICAgICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRUJBREZcIiwgXCJjbG9zZWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBjbG9zZWRpciBmYWlsZWRcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmKGkgPT0gYS5sZW5ndGgpIHJldHVybiBudWxsO1xuICAgIHZhciBlbnRyeSA9IGFbaV07XG4gICAgaSsrO1xuICAgIHJldHVybiB7IG5hbWU6IGVudHJ5IH1cbiAgfSlcbiAgICAsIGNsb3NlU3luYzogKGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChjKSB7XG4gICAgICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRUJBREZcIiwgXCJjbG9zZWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBjbG9zZWRpciBmYWlsZWRcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGMgPSB0cnVlO1xuICAgICAgYSA9IFtdO1xuICAgIH0pXG4gIH1cbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuaXNfZGlyID0gZnVuY3Rpb24obmFtZSkge1xuICBpZihuYW1lID09IFwiXCIpICByZXR1cm4gdHJ1ZTtcbiAgdmFyIG5hbWVfc2xhc2ggPSB0aGlzLnNsYXNoKG5hbWUpO1xuICByZXR1cm4gdGhpcy5jb250ZW50W25hbWVfc2xhc2hdPzE6MDtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUudW5saW5rID0gZnVuY3Rpb24obmFtZSkge1xuICB2YXIgb2sgPSB0aGlzLmNvbnRlbnRbbmFtZV0/dHJ1ZTpmYWxzZTtcbiAgZGVsZXRlIHRoaXMuY29udGVudFtuYW1lXTtcbiAgcmV0dXJuIG9rO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24obmFtZSwgZikge1xuICB2YXIgZmlsZTtcbiAgaWYoZi5yZG9ubHkgJiYgZi53cm9ubHkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl9yZG9ubHkgYW5kIE9wZW5fd3Jvbmx5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgaWYoZi50ZXh0ICYmIGYuYmluYXJ5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fdGV4dCBhbmQgT3Blbl9iaW5hcnkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICB0aGlzLmxvb2t1cChuYW1lKTtcbiAgaWYgKHRoaXMuY29udGVudFtuYW1lXSkge1xuICAgIGlmICh0aGlzLmlzX2RpcihuYW1lKSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogaXMgYSBkaXJlY3RvcnlcIik7XG4gICAgaWYgKGYuY3JlYXRlICYmIGYuZXhjbCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmlsZSBhbHJlYWR5IGV4aXN0c1wiKTtcbiAgICBmaWxlID0gdGhpcy5jb250ZW50W25hbWVdO1xuICAgIGlmKGYudHJ1bmNhdGUpIGZpbGUudHJ1bmNhdGUoKTtcbiAgfSBlbHNlIGlmIChmLmNyZWF0ZSkge1xuICAgIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQobmFtZSk7XG4gICAgdGhpcy5jb250ZW50W25hbWVdID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9jcmVhdGVfYnl0ZXMoMCkpO1xuICAgIGZpbGUgPSB0aGlzLmNvbnRlbnRbbmFtZV07XG4gIH0gZWxzZSB7XG4gICAgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUgKHRoaXMubm0obmFtZSkpO1xuICB9XG4gIHJldHVybiBuZXcgTWxGYWtlRmQodGhpcy5ubShuYW1lKSwgZmlsZSwgZik7XG59XG5cbk1sRmFrZURldmljZS5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uKG5hbWUsIGYpIHtcbiAgdmFyIGZpbGU7XG4gIGlmKGYucmRvbmx5ICYmIGYud3Jvbmx5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fcmRvbmx5IGFuZCBPcGVuX3dyb25seSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIGlmKGYudGV4dCAmJiBmLmJpbmFyeSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3RleHQgYW5kIE9wZW5fYmluYXJ5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgdGhpcy5sb29rdXAobmFtZSk7XG4gIGlmICh0aGlzLmNvbnRlbnRbbmFtZV0pIHtcbiAgICBpZiAodGhpcy5pc19kaXIobmFtZSkpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGlzIGEgZGlyZWN0b3J5XCIpO1xuICAgIGlmIChmLmNyZWF0ZSAmJiBmLmV4Y2wpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZpbGUgYWxyZWFkeSBleGlzdHNcIik7XG4gICAgZmlsZSA9IHRoaXMuY29udGVudFtuYW1lXTtcbiAgICBpZihmLnRydW5jYXRlKSBmaWxlLnRydW5jYXRlKCk7XG4gIH0gZWxzZSBpZiAoZi5jcmVhdGUpIHtcbiAgICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKG5hbWUpO1xuICAgIHRoaXMuY29udGVudFtuYW1lXSA9IG5ldyBNbEZha2VGaWxlKGNhbWxfY3JlYXRlX2J5dGVzKDApKTtcbiAgICBmaWxlID0gdGhpcy5jb250ZW50W25hbWVdO1xuICB9IGVsc2Uge1xuICAgIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlICh0aGlzLm5tKG5hbWUpKTtcbiAgfVxuICByZXR1cm4gbmV3IE1sRmFrZUZkKHRoaXMubm0obmFtZSksIGZpbGUsIGYpO1xufVxuXG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnJlZ2lzdGVyPSBmdW5jdGlvbiAobmFtZSxjb250ZW50KXtcbiAgdmFyIGZpbGU7XG4gIGlmKHRoaXMuY29udGVudFtuYW1lXSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmlsZSBhbHJlYWR5IGV4aXN0c1wiKTtcbiAgaWYoY2FtbF9pc19tbF9ieXRlcyhjb250ZW50KSlcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoY29udGVudCk7XG4gIGlmKGNhbWxfaXNfbWxfc3RyaW5nKGNvbnRlbnQpKVxuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX3N0cmluZyhjb250ZW50KSk7XG4gIGVsc2UgaWYoY29udGVudCBpbnN0YW5jZW9mIEFycmF5KVxuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX2FycmF5KGNvbnRlbnQpKTtcbiAgZWxzZSBpZih0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIilcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9ieXRlc19vZl9qc2J5dGVzKGNvbnRlbnQpKTtcbiAgZWxzZSBpZihjb250ZW50LnRvU3RyaW5nKSB7XG4gICAgdmFyIGJ5dGVzID0gY2FtbF9ieXRlc19vZl9zdHJpbmcoY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoY29udGVudC50b1N0cmluZygpKSk7XG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGJ5dGVzKTtcbiAgfVxuICBpZihmaWxlKXtcbiAgICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKG5hbWUpO1xuICAgIHRoaXMuY29udGVudFtuYW1lXSA9IGZpbGU7XG4gIH1cbiAgZWxzZSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiByZWdpc3RlcmluZyBmaWxlIHdpdGggaW52YWxpZCBjb250ZW50IHR5cGVcIik7XG59XG5cbk1sRmFrZURldmljZS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBNbEZha2VEZXZpY2VcblxuLy9Qcm92aWRlczogTWxGYWtlRmlsZVxuLy9SZXF1aXJlczogTWxGaWxlXG4vL1JlcXVpcmVzOiBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9tbF9ieXRlc19sZW5ndGgsIGNhbWxfYmxpdF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcywgY2FtbF9ieXRlc19vZl9hcnJheVxuZnVuY3Rpb24gTWxGYWtlRmlsZShjb250ZW50KXtcbiAgdGhpcy5kYXRhID0gY29udGVudDtcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlID0gbmV3IE1sRmlsZSAoKTtcbk1sRmFrZUZpbGUucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTWxGYWtlRmlsZVxuTWxGYWtlRmlsZS5wcm90b3R5cGUudHJ1bmNhdGUgPSBmdW5jdGlvbihsZW4pe1xuICB2YXIgb2xkID0gdGhpcy5kYXRhO1xuICB0aGlzLmRhdGEgPSBjYW1sX2NyZWF0ZV9ieXRlcyhsZW58MCk7XG4gIGNhbWxfYmxpdF9ieXRlcyhvbGQsIDAsIHRoaXMuZGF0YSwgMCwgbGVuKTtcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlLmxlbmd0aCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHRoaXMuZGF0YSk7XG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKG9mZnNldCxidWYscG9zLGxlbil7XG4gIHZhciBjbGVuID0gdGhpcy5sZW5ndGgoKTtcbiAgaWYob2Zmc2V0ICsgbGVuID49IGNsZW4pIHtcbiAgICB2YXIgbmV3X3N0ciA9IGNhbWxfY3JlYXRlX2J5dGVzKG9mZnNldCArIGxlbik7XG4gICAgdmFyIG9sZF9kYXRhID0gdGhpcy5kYXRhO1xuICAgIHRoaXMuZGF0YSA9IG5ld19zdHI7XG4gICAgY2FtbF9ibGl0X2J5dGVzKG9sZF9kYXRhLCAwLCB0aGlzLmRhdGEsIDAsIGNsZW4pO1xuICB9XG4gIGNhbWxfYmxpdF9ieXRlcyhjYW1sX2J5dGVzX29mX2FycmF5KGJ1ZiksIHBvcywgdGhpcy5kYXRhLCBvZmZzZXQsIGxlbik7XG4gIHJldHVybiAwXG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24ob2Zmc2V0LGJ1Zixwb3MsbGVuKXtcbiAgdmFyIGNsZW4gPSB0aGlzLmxlbmd0aCgpO1xuICBpZihvZmZzZXQgKyBsZW4gPj0gY2xlbikge1xuICAgIGxlbiA9IGNsZW4gLSBvZmZzZXQ7XG4gIH1cbiAgaWYobGVuKSB7XG4gICAgdmFyIGRhdGEgPSBjYW1sX2NyZWF0ZV9ieXRlcyhsZW58MCk7XG4gICAgY2FtbF9ibGl0X2J5dGVzKHRoaXMuZGF0YSwgb2Zmc2V0LCBkYXRhLCAwLCBsZW4pO1xuICAgIGJ1Zi5zZXQoY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhkYXRhKSwgcG9zKTtcbiAgfVxuICByZXR1cm4gbGVuXG59XG5cblxuLy9Qcm92aWRlczogTWxGYWtlRmRfb3V0XG4vL1JlcXVpcmVzOiBNbEZha2VGaWxlLCBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9ibGl0X2J5dGVzLCBjYW1sX2J5dGVzX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gTWxGYWtlRmRfb3V0KGZkLGZsYWdzKSB7XG4gIE1sRmFrZUZpbGUuY2FsbCh0aGlzLCBjYW1sX2NyZWF0ZV9ieXRlcygwKSk7XG4gIHRoaXMubG9nID0gKGZ1bmN0aW9uIChzKSB7IHJldHVybiAwIH0pO1xuICBpZihmZCA9PSAxICYmIHR5cGVvZiBjb25zb2xlLmxvZyA9PSBcImZ1bmN0aW9uXCIpXG4gICAgdGhpcy5sb2cgPSBjb25zb2xlLmxvZztcbiAgZWxzZSBpZihmZCA9PSAyICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09IFwiZnVuY3Rpb25cIilcbiAgICB0aGlzLmxvZyA9IGNvbnNvbGUuZXJyb3I7XG4gIGVsc2UgaWYodHlwZW9mIGNvbnNvbGUubG9nID09IFwiZnVuY3Rpb25cIilcbiAgICB0aGlzLmxvZyA9IGNvbnNvbGUubG9nXG4gIHRoaXMuZmxhZ3MgPSBmbGFncztcbn1cbk1sRmFrZUZkX291dC5wcm90b3R5cGUubGVuZ3RoID0gZnVuY3Rpb24oKSB7IHJldHVybiAwIH1cbk1sRmFrZUZkX291dC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAob2Zmc2V0LGJ1Zixwb3MsbGVuKSB7XG4gIGlmKHRoaXMubG9nKSB7XG4gICAgaWYobGVuID4gMFxuICAgICAgICYmIHBvcyA+PSAwXG4gICAgICAgJiYgcG9zK2xlbiA8PSBidWYubGVuZ3RoXG4gICAgICAgJiYgYnVmW3BvcytsZW4tMV0gPT0gMTApXG4gICAgICBsZW4gLS07XG4gICAgLy8gRG8gbm90IG91dHB1dCB0aGUgbGFzdCBcXG4gaWYgcHJlc2VudFxuICAgIC8vIGFzIGNvbnNvbGUgbG9nZ2luZyBkaXNwbGF5IGEgbmV3bGluZSBhdCB0aGUgZW5kXG4gICAgdmFyIHNyYyA9IGNhbWxfY3JlYXRlX2J5dGVzKGxlbik7XG4gICAgY2FtbF9ibGl0X2J5dGVzKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoYnVmKSwgcG9zLCBzcmMsIDAsIGxlbik7XG4gICAgdGhpcy5sb2coc3JjLnRvVXRmMTYoKSk7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5mZCAgKyBcIjogZmlsZSBkZXNjcmlwdG9yIGFscmVhZHkgY2xvc2VkXCIpO1xufVxuTWxGYWtlRmRfb3V0LnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24gKG9mZnNldCwgYnVmLCBwb3MsIGxlbikge1xuICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLmZkICArIFwiOiBmaWxlIGRlc2NyaXB0b3IgaXMgd3JpdGUgb25seVwiKTtcbn1cbk1sRmFrZUZkX291dC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMubG9nID0gdW5kZWZpbmVkO1xufVxuXG5cbi8vUHJvdmlkZXM6IE1sRmFrZUZkXG4vL1JlcXVpcmVzOiBNbEZha2VGaWxlXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gTWxGYWtlRmQobmFtZSwgZmlsZSxmbGFncykge1xuICB0aGlzLmZpbGUgPSBmaWxlO1xuICB0aGlzLm5hbWUgPSBuYW1lO1xuICB0aGlzLmZsYWdzID0gZmxhZ3M7XG59XG5cbk1sRmFrZUZkLnByb3RvdHlwZS5lcnJfY2xvc2VkID0gZnVuY3Rpb24gKCkge1xuICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5hbWUgICsgXCI6IGZpbGUgZGVzY3JpcHRvciBhbHJlYWR5IGNsb3NlZFwiKTtcbn1cbk1sRmFrZUZkLnByb3RvdHlwZS5sZW5ndGggPSBmdW5jdGlvbigpIHtcbiAgaWYodGhpcy5maWxlKSByZXR1cm4gdGhpcy5maWxlLmxlbmd0aCAoKVxuICB0aGlzLmVycl9jbG9zZWQoKTtcbn1cbk1sRmFrZUZkLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIChvZmZzZXQsYnVmLHBvcyxsZW4pIHtcbiAgaWYodGhpcy5maWxlKSByZXR1cm4gdGhpcy5maWxlLndyaXRlKG9mZnNldCxidWYscG9zLGxlbilcbiAgdGhpcy5lcnJfY2xvc2VkKCk7XG59XG5NbEZha2VGZC5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uIChvZmZzZXQsIGJ1ZiwgcG9zLCBsZW4pIHtcbiAgaWYodGhpcy5maWxlKSByZXR1cm4gdGhpcy5maWxlLnJlYWQob2Zmc2V0LCBidWYsIHBvcywgbGVuKVxuICB0aGlzLmVycl9jbG9zZWQoKTtcbn1cbk1sRmFrZUZkLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5maWxlID0gdW5kZWZpbmVkO1xufVxuIiwiLy9Qcm92aWRlczogaW5pdGlhbGl6ZV9uYXRcbi8vUmVxdWlyZXM6IGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogc2VyaWFsaXplX25hdCwgZGVzZXJpYWxpemVfbmF0LCBjYW1sX2hhc2hfbmF0XG5mdW5jdGlvbiBpbml0aWFsaXplX25hdCgpIHtcbiAgY2FtbF9jdXN0b21fb3BzW1wiX25hdFwiXSA9XG4gICAgeyBkZXNlcmlhbGl6ZSA6IGRlc2VyaWFsaXplX25hdCxcbiAgICAgIHNlcmlhbGl6ZSA6IHNlcmlhbGl6ZV9uYXQsXG4gICAgICBoYXNoIDogY2FtbF9oYXNoX25hdFxuICAgIH1cbn1cblxuLy9Qcm92aWRlczogTWxOYXRcbmZ1bmN0aW9uIE1sTmF0KHgpe1xuICB0aGlzLmRhdGEgPSBuZXcgSW50MzJBcnJheSh4KTtcbiAgLy8gbGVuZ3RoX25hdCBpc24ndCBleHRlcm5hbCwgc28gd2UgaGF2ZSB0byBtYWtlIHRoZSBPYmouc2l6ZVxuICAvLyB3b3JrIG91dCByaWdodC4gVGhlICsyIHRvIGFycmF5IGxlbmd0aCBzZWVtcyB0byB3b3JrLlxuICB0aGlzLmxlbmd0aCA9IHRoaXMuZGF0YS5sZW5ndGggKyAyXG59XG5cbk1sTmF0LnByb3RvdHlwZS5jYW1sX2N1c3RvbSA9IFwiX25hdFwiO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbmF0XG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludCwgbnVtX2RpZ2l0c19uYXRcbmZ1bmN0aW9uIGNhbWxfaGFzaF9uYXQoeCkge1xuICB2YXIgbGVuID0gbnVtX2RpZ2l0c19uYXQoeCwgMCwgeC5kYXRhLmxlbmd0aCk7XG4gIHZhciBoID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB4LmRhdGFbaV0pO1xuICB9XG4gIHJldHVybiBoO1xufVxuXG5cbi8vUHJvdmlkZXM6IG5hdF9vZl9hcnJheVxuLy9SZXF1aXJlczogTWxOYXRcbmZ1bmN0aW9uIG5hdF9vZl9hcnJheShsKXtcbiAgcmV0dXJuIG5ldyBNbE5hdChsKTtcbn1cblxuLy9Qcm92aWRlczogY3JlYXRlX25hdFxuLy9SZXF1aXJlczogTWxOYXRcbmZ1bmN0aW9uIGNyZWF0ZV9uYXQoc2l6ZSkge1xuICB2YXIgYXJyID0gbmV3IE1sTmF0KHNpemUpO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgYXJyLmRhdGFbaV0gPSAtMTtcbiAgfVxuICByZXR1cm4gYXJyO1xufVxuXG4vL1Byb3ZpZGVzOiBzZXRfdG9femVyb19uYXRcbmZ1bmN0aW9uIHNldF90b196ZXJvX25hdChuYXQsIG9mcywgbGVuKSB7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIG5hdC5kYXRhW29mcytpXSA9IDA7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGJsaXRfbmF0XG5mdW5jdGlvbiBibGl0X25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyLCBsZW4pIHtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgbmF0MS5kYXRhW29mczEraV0gPSBuYXQyLmRhdGFbb2ZzMitpXTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogc2V0X2RpZ2l0X25hdFxuZnVuY3Rpb24gc2V0X2RpZ2l0X25hdChuYXQsIG9mcywgZGlnaXQpIHtcbiAgbmF0LmRhdGFbb2ZzXSA9IGRpZ2l0O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbnRoX2RpZ2l0X25hdFxuZnVuY3Rpb24gbnRoX2RpZ2l0X25hdChuYXQsIG9mcykge1xuICByZXR1cm4gbmF0LmRhdGFbb2ZzXTtcbn1cblxuLy9Qcm92aWRlczogc2V0X2RpZ2l0X25hdF9uYXRpdmVcbmZ1bmN0aW9uIHNldF9kaWdpdF9uYXRfbmF0aXZlKG5hdCwgb2ZzLCBkaWdpdCkge1xuICBuYXQuZGF0YVtvZnNdID0gZGlnaXQ7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBudGhfZGlnaXRfbmF0X25hdGl2ZVxuZnVuY3Rpb24gbnRoX2RpZ2l0X25hdF9uYXRpdmUobmF0LCBvZnMpIHtcbiAgcmV0dXJuIG5hdC5kYXRhW29mc107XG59XG5cbi8vUHJvdmlkZXM6IG51bV9kaWdpdHNfbmF0XG5mdW5jdGlvbiBudW1fZGlnaXRzX25hdChuYXQsIG9mcywgbGVuKSB7XG4gIGZvcih2YXIgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYobmF0LmRhdGFbb2ZzK2ldICE9IDApIHJldHVybiBpKzE7XG4gIH1cbiAgcmV0dXJuIDE7IC8vIDAgY291bnRzIGFzIDEgZGlnaXRcbn1cblxuLy9Qcm92aWRlczogbnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0XG5mdW5jdGlvbiBudW1fbGVhZGluZ196ZXJvX2JpdHNfaW5fZGlnaXQobmF0LCBvZnMpIHtcbiAgdmFyIGEgPSBuYXQuZGF0YVtvZnNdO1xuICB2YXIgYiA9IDA7XG4gIGlmKGEgJiAweEZGRkYwMDAwKSB7IGIgKz0xNjsgYSA+Pj49MTY7IH1cbiAgaWYoYSAmIDB4RkYwMCkgICAgIHsgYiArPSA4OyBhID4+Pj0gODsgfVxuICBpZihhICYgMHhGMCkgICAgICAgeyBiICs9IDQ7IGEgPj4+PSA0OyB9XG4gIGlmKGEgJiAxMikgICAgICAgICB7IGIgKz0gMjsgYSA+Pj49IDI7IH1cbiAgaWYoYSAmIDIpICAgICAgICAgIHsgYiArPSAxOyBhID4+Pj0gMTsgfVxuICBpZihhICYgMSkgICAgICAgICAgeyBiICs9IDE7IH1cbiAgcmV0dXJuIDMyIC0gYjtcbn1cblxuLy9Qcm92aWRlczogaXNfZGlnaXRfaW50XG5mdW5jdGlvbiBpc19kaWdpdF9pbnQobmF0LCBvZnMpIHtcbiAgaWYgKG5hdC5kYXRhW29mc10gPj0gMCkgcmV0dXJuIDFcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGlzX2RpZ2l0X3plcm9cbmZ1bmN0aW9uIGlzX2RpZ2l0X3plcm8obmF0LCBvZnMpIHtcbiAgaWYobmF0LmRhdGFbb2ZzXSA9PSAwKSByZXR1cm4gMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGlzX2RpZ2l0X29kZFxuZnVuY3Rpb24gaXNfZGlnaXRfb2RkKG5hdCwgb2ZzKSB7XG4gIGlmKG5hdC5kYXRhW29mc10gJiAxKSByZXR1cm4gMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGluY3JfbmF0XG5mdW5jdGlvbiBpbmNyX25hdChuYXQsIG9mcywgbGVuLCBjYXJyeV9pbikge1xuICB2YXIgY2FycnkgPSBjYXJyeV9pbjtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIHggPSAobmF0LmRhdGFbb2ZzK2ldID4+PiAwKSArIGNhcnJ5O1xuICAgIG5hdC5kYXRhW29mcytpXSA9ICh4IHwgMCk7XG4gICAgaWYoeCA9PSAoeCA+Pj4gMCkpIHtcbiAgICAgIGNhcnJ5ID0gMDtcbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXJyeSA9IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiBjYXJyeTtcbn1cblxuLy8gbGVuMSA+PSBsZW4yXG4vL1Byb3ZpZGVzOiBhZGRfbmF0XG4vL1JlcXVpcmVzOiBpbmNyX25hdFxuZnVuY3Rpb24gYWRkX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yLCBjYXJyeV9pbikge1xuICB2YXIgY2FycnkgPSBjYXJyeV9pbjtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjI7IGkrKykge1xuICAgIHZhciB4ID0gKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSArIChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkgKyBjYXJyeTtcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IHhcbiAgICBpZih4ID09ICh4ID4+PiAwKSkge1xuICAgICAgY2FycnkgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXJyeSA9IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiBpbmNyX25hdChuYXQxLCBvZnMxK2xlbjIsIGxlbjEtbGVuMiwgY2FycnkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjb21wbGVtZW50X25hdFxuZnVuY3Rpb24gY29tcGxlbWVudF9uYXQobmF0LCBvZnMsIGxlbikge1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBuYXQuZGF0YVtvZnMraV0gPSAoLTEgPj4+IDApIC0gKG5hdC5kYXRhW29mcytpXSA+Pj4gMCk7XG4gIH1cbn1cblxuLy8gb2NhbWwgZmxpcHMgY2FycnlfaW5cbi8vUHJvdmlkZXM6IGRlY3JfbmF0XG5mdW5jdGlvbiBkZWNyX25hdChuYXQsIG9mcywgbGVuLCBjYXJyeV9pbikge1xuICB2YXIgYm9ycm93ID0gKGNhcnJ5X2luID09IDEpID8gMCA6IDE7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciB4ID0gKG5hdC5kYXRhW29mcytpXSA+Pj4wKSAtIGJvcnJvdztcbiAgICBuYXQuZGF0YVtvZnMraV0gPSB4O1xuICAgIGlmICh4ID49IDApIHtcbiAgICAgIGJvcnJvdyA9IDA7XG4gICAgICBicmVhaztcbiAgICB9IGVsc2Uge1xuICAgICAgYm9ycm93ID0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIChib3Jyb3cgPT0gMSkgPyAwIDogMTtcbn1cblxuLy8gb2NhbWwgZmxpcHMgY2FycnlfaW5cbi8vIGxlbjEgPj0gbGVuMlxuLy9Qcm92aWRlczogc3ViX25hdFxuLy9SZXF1aXJlczogZGVjcl9uYXRcbmZ1bmN0aW9uIHN1Yl9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMiwgY2FycnlfaW4pIHtcbiAgdmFyIGJvcnJvdyA9IChjYXJyeV9pbiA9PSAxKSA/IDAgOiAxO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMjsgaSsrKSB7XG4gICAgdmFyIHggPSAobmF0MS5kYXRhW29mczEraV0gPj4+IDApIC0gKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSAtIGJvcnJvdztcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IHg7XG4gICAgaWYgKHggPj0gMCkge1xuICAgICAgYm9ycm93ID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgYm9ycm93ID0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRlY3JfbmF0KG5hdDEsIG9mczErbGVuMiwgbGVuMS1sZW4yLCAoYm9ycm93PT0xKT8wOjEpO1xufVxuXG4vLyBuYXQxICs9IG5hdDIgKiBuYXQzW29mczNdXG4vLyBsZW4xID49IGxlbjJcbi8vUHJvdmlkZXM6IG11bHRfZGlnaXRfbmF0XG4vL1JlcXVpcmVzOiBhZGRfbmF0LCBuYXRfb2ZfYXJyYXlcbmZ1bmN0aW9uIG11bHRfZGlnaXRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIG5hdDMsIG9mczMpIHtcbiAgdmFyIGNhcnJ5ID0gMDtcbiAgdmFyIGEgPSAobmF0My5kYXRhW29mczNdID4+PiAwKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjI7IGkrKykge1xuICAgIHZhciB4MSA9IChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgKyAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApICogKGEgJiAweDAwMDBGRkZGKSArIGNhcnJ5O1xuICAgIHZhciB4MiA9IChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkgKiAoYSA+Pj4gMTYpO1xuICAgIGNhcnJ5ID0gTWF0aC5mbG9vcih4Mi82NTUzNik7XG4gICAgdmFyIHgzID0geDEgKyAoeDIgJSA2NTUzNikgKiA2NTUzNjtcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IHgzO1xuICAgIGNhcnJ5ICs9IE1hdGguZmxvb3IoeDMvNDI5NDk2NzI5Nik7XG4gIH1cblxuICBpZihsZW4yIDwgbGVuMSAmJiBjYXJyeSkge1xuICAgIHJldHVybiBhZGRfbmF0KG5hdDEsIG9mczErbGVuMiwgbGVuMS1sZW4yLCBuYXRfb2ZfYXJyYXkoW2NhcnJ5XSksIDAsIDEsIDApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjYXJyeTtcbiAgfVxufVxuXG4vLyBuYXQxICs9IG5hdDIgKiBuYXQzXG4vLyBsZW4xID49IGxlbjIgKyBsZW4zLlxuLy9Qcm92aWRlczogbXVsdF9uYXRcbi8vUmVxdWlyZXM6IG11bHRfZGlnaXRfbmF0XG5mdW5jdGlvbiBtdWx0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yLCBuYXQzLCBvZnMzLCBsZW4zKSB7XG4gIHZhciBjYXJyeSA9IDA7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW4zOyBpKyspIHtcbiAgICBjYXJyeSArPSBtdWx0X2RpZ2l0X25hdChuYXQxLCBvZnMxK2ksIGxlbjEtaSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0Mywgb2ZzMytpKTtcbiAgfVxuICByZXR1cm4gY2Fycnk7XG59XG5cbi8vIG5hdDEgPSAyICogbmF0MSArIG5hdDIgKiBuYXQyXG4vLyBsZW4xID49IDIgKiBsZW4yXG4vL1Byb3ZpZGVzOiBzcXVhcmVfbmF0XG4vL1JlcXVpcmVzOiBtdWx0X25hdCwgYWRkX25hdFxuZnVuY3Rpb24gc3F1YXJlX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yKSB7XG4gIHZhciBjYXJyeSA9IDA7XG4gIGNhcnJ5ICs9IGFkZF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0MSwgb2ZzMSwgbGVuMSwgMCk7XG4gIGNhcnJ5ICs9IG11bHRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIG5hdDIsIG9mczIsIGxlbjIpO1xuICByZXR1cm4gY2Fycnk7XG59XG5cblxuLy8gMCA8PSBzaGlmdCA8IDMyXG4vL1Byb3ZpZGVzOiBzaGlmdF9sZWZ0X25hdFxuZnVuY3Rpb24gc2hpZnRfbGVmdF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbmJpdHMpIHtcbiAgaWYobmJpdHMgPT0gMCkge1xuICAgIG5hdDIuZGF0YVtvZnMyXSA9IDA7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgdmFyIHdyYXAgPSAwO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMTsgaSsrKSB7XG4gICAgdmFyIGEgPSAobmF0MS5kYXRhW29mczEraV0gPj4+IDApO1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gKGEgPDwgbmJpdHMpIHwgd3JhcDtcbiAgICB3cmFwID0gYSA+Pj4gKDMyIC0gbmJpdHMpO1xuICB9XG4gIG5hdDIuZGF0YVtvZnMyXSA9IHdyYXA7XG4gIHJldHVybiAwO1xufVxuXG4vLyBBc3N1bWluZyBjID4gYSwgcmV0dXJucyBbcXVvdGllbnQsIHJlbWFpbmRlcl0gb2YgKGE8PDMyICsgYikvY1xuLy9Qcm92aWRlczogZGl2X2hlbHBlclxuZnVuY3Rpb24gZGl2X2hlbHBlcihhLCBiLCBjKSB7XG4gIHZhciB4ID0gYSAqIDY1NTM2ICsgKGI+Pj4xNik7XG4gIHZhciB5ID0gTWF0aC5mbG9vcih4L2MpICogNjU1MzY7XG4gIHZhciB6ID0gKHggJSBjKSAqIDY1NTM2O1xuICB2YXIgdyA9IHogKyAoYiAmIDB4MDAwMEZGRkYpO1xuICByZXR1cm4gW3kgKyBNYXRoLmZsb29yKHcvYyksIHcgJSBjXTtcbn1cblxuLy8gbmF0MVtvZnMxK2xlbl0gPCBuYXQyW29mczJdXG4vL1Byb3ZpZGVzOiBkaXZfZGlnaXRfbmF0XG4vL1JlcXVpcmVzOiBkaXZfaGVscGVyXG5mdW5jdGlvbiBkaXZfZGlnaXRfbmF0KG5hdHEsIG9mc3EsIG5hdHIsIG9mc3IsIG5hdDEsIG9mczEsIGxlbiwgbmF0Miwgb2ZzMikge1xuICB2YXIgcmVtID0gKG5hdDEuZGF0YVtvZnMxK2xlbi0xXSA+Pj4wKTtcbiAgLy8gbmF0cVtvZnNxK2xlbi0xXSBpcyBndWFyYW50ZWVkIHRvIGJlIHplcm8gKGR1ZSB0byB0aGUgTVNEIHJlcXVpcmVtZW50KSxcbiAgLy8gYW5kIHNob3VsZCBub3QgYmUgd3JpdHRlbiB0by5cbiAgZm9yKHZhciBpID0gbGVuLTI7IGkgPj0gMDsgaS0tKSB7XG4gICAgdmFyIHggPSBkaXZfaGVscGVyKHJlbSwgKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSwgKG5hdDIuZGF0YVtvZnMyXSA+Pj4gMCkpO1xuICAgIG5hdHEuZGF0YVtvZnNxK2ldID0geFswXTtcbiAgICByZW0gPSB4WzFdO1xuICB9XG4gIG5hdHIuZGF0YVtvZnNyXSA9IHJlbTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vIG5hdDFbbmF0MjpdIDo9IG5hdDEgLyBuYXQyXG4vLyBuYXQxWzpuYXQyXSA6PSBuYXQxICUgbmF0MlxuLy8gbGVuMSA+IGxlbjIsIG5hdDJbb2ZzMitsZW4yLTFdID4gbmF0MVtvZnMxK2xlbjEtMV1cbi8vUHJvdmlkZXM6IGRpdl9uYXRcbi8vUmVxdWlyZXM6IGRpdl9kaWdpdF9uYXQsIGRpdl9oZWxwZXIsIG51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdCwgc2hpZnRfbGVmdF9uYXQsIHNoaWZ0X3JpZ2h0X25hdCwgY3JlYXRlX25hdCwgc2V0X3RvX3plcm9fbmF0LCBtdWx0X2RpZ2l0X25hdCwgc3ViX25hdCwgY29tcGFyZV9uYXQsIG5hdF9vZl9hcnJheVxuZnVuY3Rpb24gZGl2X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yKSB7XG4gIGlmKGxlbjIgPT0gMSkge1xuICAgIGRpdl9kaWdpdF9uYXQobmF0MSwgb2ZzMSsxLCBuYXQxLCBvZnMxLCBuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyKTtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHZhciBzID0gbnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0KG5hdDIsIG9mczIrbGVuMi0xKTtcbiAgc2hpZnRfbGVmdF9uYXQobmF0Miwgb2ZzMiwgbGVuMiwgbmF0X29mX2FycmF5KFswXSksIDAsIHMpO1xuICBzaGlmdF9sZWZ0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXRfb2ZfYXJyYXkoWzBdKSwgMCwgcyk7XG5cbiAgdmFyIGQgPSAobmF0Mi5kYXRhW29mczIrbGVuMi0xXSA+Pj4gMCkgKyAxO1xuICB2YXIgYSA9IGNyZWF0ZV9uYXQobGVuMisxKTtcbiAgZm9yICh2YXIgaSA9IGxlbjEgLSAxOyBpID49IGxlbjI7IGktLSkge1xuICAgIC8vIERlY2VudCBsb3dlciBib3VuZCBvbiBxdW9cbiAgICB2YXIgcXVvID0gZCA9PSA0Mjk0OTY3Mjk2ID8gKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSA6IGRpdl9oZWxwZXIoKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSwgKG5hdDEuZGF0YVtvZnMxK2ktMV0gPj4+MCksIGQpWzBdO1xuICAgIHNldF90b196ZXJvX25hdChhLCAwLCBsZW4yKzEpO1xuICAgIG11bHRfZGlnaXRfbmF0KGEsIDAsIGxlbjIrMSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0X29mX2FycmF5KFtxdW9dKSwgMCk7XG4gICAgc3ViX25hdChuYXQxLCBvZnMxK2ktbGVuMiwgbGVuMisxLCBhLCAwLCBsZW4yKzEsIDEpO1xuXG4gICAgd2hpbGUgKG5hdDEuZGF0YVtvZnMxK2ldICE9IDAgfHwgY29tcGFyZV9uYXQobmF0MSwgb2ZzMStpLWxlbjIsIGxlbjIsIG5hdDIsIG9mczIsIGxlbjIpID49IDApIHtcbiAgICAgIHF1byA9IHF1byArIDE7XG4gICAgICBzdWJfbmF0KG5hdDEsIG9mczEraS1sZW4yLCBsZW4yKzEsIG5hdDIsIG9mczIsIGxlbjIsIDEpO1xuICAgIH1cblxuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gcXVvO1xuICB9XG5cbiAgc2hpZnRfcmlnaHRfbmF0KG5hdDEsIG9mczEsIGxlbjIsIG5hdF9vZl9hcnJheShbMF0pLCAwLCBzKTsgLy8gc2hpZnQgcmVtYWluZGVyXG4gIHNoaWZ0X3JpZ2h0X25hdChuYXQyLCBvZnMyLCBsZW4yLCBuYXRfb2ZfYXJyYXkoWzBdKSwgMCwgcyk7IC8vIHJlc3RvcmVcbiAgcmV0dXJuIDA7XG59XG5cblxuLy8gMCA8PSBzaGlmdCA8IDMyXG4vL1Byb3ZpZGVzOiBzaGlmdF9yaWdodF9uYXRcbmZ1bmN0aW9uIHNoaWZ0X3JpZ2h0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBuYml0cykge1xuICBpZihuYml0cyA9PSAwKSB7XG4gICAgbmF0Mi5kYXRhW29mczJdID0gMDtcbiAgICByZXR1cm4gMDtcbiAgfVxuICB2YXIgd3JhcCA9IDA7XG4gIGZvcih2YXIgaSA9IGxlbjEtMTsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIgYSA9IG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwO1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gKGEgPj4+IG5iaXRzKSB8IHdyYXA7XG4gICAgd3JhcCA9IGEgPDwgKDMyIC0gbmJpdHMpO1xuICB9XG4gIG5hdDIuZGF0YVtvZnMyXSA9IHdyYXA7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjb21wYXJlX2RpZ2l0c19uYXRcbmZ1bmN0aW9uIGNvbXBhcmVfZGlnaXRzX25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyKSB7XG4gIGlmKG5hdDEuZGF0YVtvZnMxXSA+IG5hdDIuZGF0YVtvZnMyXSkgcmV0dXJuIDE7XG4gIGlmKG5hdDEuZGF0YVtvZnMxXSA8IG5hdDIuZGF0YVtvZnMyXSkgcmV0dXJuIC0xO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY29tcGFyZV9uYXRcbi8vUmVxdWlyZXM6IG51bV9kaWdpdHNfbmF0XG5mdW5jdGlvbiBjb21wYXJlX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yKSB7XG4gIHZhciBhID0gbnVtX2RpZ2l0c19uYXQobmF0MSwgb2ZzMSwgbGVuMSk7XG4gIHZhciBiID0gbnVtX2RpZ2l0c19uYXQobmF0Miwgb2ZzMiwgbGVuMik7XG4gIGlmKGEgPiBiKSByZXR1cm4gMTtcbiAgaWYoYSA8IGIpIHJldHVybiAtMTtcbiAgZm9yKHZhciBpID0gbGVuMSAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYgKChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgPiAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApKSByZXR1cm4gMTtcbiAgICBpZiAoKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSA8IChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkpIHJldHVybiAtMTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY29tcGFyZV9uYXRfcmVhbFxuLy9SZXF1aXJlczogY29tcGFyZV9uYXRcbmZ1bmN0aW9uIGNvbXBhcmVfbmF0X3JlYWwobmF0MSxuYXQyKXtcbiAgcmV0dXJuIGNvbXBhcmVfbmF0KG5hdDEsMCxuYXQxLmRhdGEubGVuZ3RoLG5hdDIsMCxuYXQyLmRhdGEubGVuZ3RoKTtcbn1cblxuLy9Qcm92aWRlczogbGFuZF9kaWdpdF9uYXRcbmZ1bmN0aW9uIGxhbmRfZGlnaXRfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIpIHtcbiAgbmF0MS5kYXRhW29mczFdICY9IG5hdDIuZGF0YVtvZnMyXTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGxvcl9kaWdpdF9uYXRcbmZ1bmN0aW9uIGxvcl9kaWdpdF9uYXQobmF0MSwgb2ZzMSwgbmF0Miwgb2ZzMikge1xuICBuYXQxLmRhdGFbb2ZzMV0gfD0gbmF0Mi5kYXRhW29mczJdO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbHhvcl9kaWdpdF9uYXRcbmZ1bmN0aW9uIGx4b3JfZGlnaXRfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIpIHtcbiAgbmF0MS5kYXRhW29mczFdIF49IG5hdDIuZGF0YVtvZnMyXTtcbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczogc2VyaWFsaXplX25hdFxuZnVuY3Rpb24gc2VyaWFsaXplX25hdCh3cml0ZXIsIG5hdCwgc3ope1xuICB2YXIgbGVuID0gbmF0LmRhdGEubGVuZ3RoO1xuICB3cml0ZXIud3JpdGUoMzIsIGxlbik7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKyl7XG4gICAgd3JpdGVyLndyaXRlKDMyLCBuYXQuZGF0YVtpXSk7XG4gIH1cbiAgc3pbMF0gPSBsZW4gKiA0O1xuICBzelsxXSA9IGxlbiAqIDg7XG59XG5cbi8vUHJvdmlkZXM6IGRlc2VyaWFsaXplX25hdFxuLy9SZXF1aXJlczogTWxOYXRcbmZ1bmN0aW9uIGRlc2VyaWFsaXplX25hdChyZWFkZXIsIHN6KXtcbiAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIHZhciBuYXQgPSBuZXcgTWxOYXQobGVuKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKXtcbiAgICBuYXQuZGF0YVtpXSA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIH1cbiAgc3pbMF0gPSBsZW4gKiA0O1xuICByZXR1cm4gbmF0O1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IEh1Z28gSGV1emFyZFxuXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblxuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZVxudmFyIGNhbWxfZ3Jfc3RhdGU7XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21heWJlX2F0dGFjaF9iYWNrdHJhY2VcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3RhdGVfZ2V0KCkge1xuICBpZihjYW1sX2dyX3N0YXRlKSB7XG4gICAgcmV0dXJuIGNhbWxfZ3Jfc3RhdGU7XG4gIH1cbiAgdGhyb3cgY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlKFswLGNhbWxfbmFtZWRfdmFsdWUoXCJHcmFwaGljcy5HcmFwaGljX2ZhaWx1cmVcIiksIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJOb3QgaW5pdGlhbGl6ZWRcIildKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlLGNhbWxfZ3Jfc3RhdGVfaW5pdFxuZnVuY3Rpb24gY2FtbF9ncl9zdGF0ZV9zZXQoY3R4KSB7XG4gIGNhbWxfZ3Jfc3RhdGU9Y3R4O1xuICBjYW1sX2dyX3N0YXRlX2luaXQoKVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9vcGVuX2dyYXBoXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX29wZW5fZ3JhcGgoaW5mbyl7XG4gIHZhciBpbmZvID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoaW5mbyk7XG4gIGZ1bmN0aW9uIGdldChuYW1lKXtcbiAgICB2YXIgcmVzID0gaW5mby5tYXRjaChcIihefCwpICpcIituYW1lK1wiICo9ICooW2EtekEtWjAtOV9dKykgKigsfCQpXCIpO1xuICAgIGlmKHJlcykgcmV0dXJuIHJlc1syXTtcbiAgfVxuICB2YXIgc3BlY3MgPSBbXTtcbiAgaWYoIShpbmZvPT1cIlwiKSkgc3BlY3MucHVzaChpbmZvKTtcbiAgdmFyIHRhcmdldCA9IGdldChcInRhcmdldFwiKTtcbiAgaWYoIXRhcmdldCkgdGFyZ2V0PVwiXCI7XG4gIHZhciBzdGF0dXMgPSBnZXQoXCJzdGF0dXNcIik7XG4gIGlmKCFzdGF0dXMpIHNwZWNzLnB1c2goXCJzdGF0dXM9MVwiKVxuXG4gIHZhciB3ID0gZ2V0KFwid2lkdGhcIik7XG4gIHcgPSB3P3BhcnNlSW50KHcpOjIwMDtcbiAgc3BlY3MucHVzaChcIndpZHRoPVwiK3cpO1xuXG4gIHZhciBoID0gZ2V0KFwiaGVpZ2h0XCIpO1xuICBoID0gaD9wYXJzZUludChoKToyMDA7XG4gIHNwZWNzLnB1c2goXCJoZWlnaHQ9XCIraCk7XG5cbiAgdmFyIHdpbiA9IGdsb2JhbFRoaXMub3BlbihcImFib3V0OmJsYW5rXCIsdGFyZ2V0LHNwZWNzLmpvaW4oXCIsXCIpKTtcbiAgaWYoIXdpbikge2NhbWxfZmFpbHdpdGgoXCJHcmFwaGljcy5vcGVuX2dyYXBoOiBjYW5ub3Qgb3BlbiB0aGUgd2luZG93XCIpfVxuICB2YXIgZG9jID0gd2luLmRvY3VtZW50O1xuICB2YXIgY2FudmFzID0gZG9jLmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gIGNhbnZhcy53aWR0aCA9IHc7XG4gIGNhbnZhcy5oZWlnaHQgPSBoO1xuICB2YXIgY3R4ID0gY2FtbF9ncl9zdGF0ZV9jcmVhdGUoY2FudmFzLHcsaCk7XG4gIGN0eC5zZXRfdGl0bGUgPSBmdW5jdGlvbiAodGl0bGUpIHtcbiAgICBkb2MudGl0bGUgPSB0aXRsZTtcbiAgfTtcbiAgY2FtbF9ncl9zdGF0ZV9zZXQoY3R4KTtcbiAgdmFyIGJvZHkgPSBkb2MuYm9keTtcbiAgYm9keS5zdHlsZS5tYXJnaW4gPSBcIjBweFwiO1xuICBib2R5LmFwcGVuZENoaWxkKGNhbnZhcyk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlX2luaXRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc2V0X2NvbG9yLGNhbWxfZ3JfbW92ZXRvLGNhbWxfZ3JfcmVzaXplX3dpbmRvd1xuLy9SZXF1aXJlczogY2FtbF9ncl9zZXRfbGluZV93aWR0aCxjYW1sX2dyX3NldF90ZXh0X3NpemUsY2FtbF9ncl9zZXRfZm9udFxuLy9SZXF1aXJlczogY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlXG5mdW5jdGlvbiBjYW1sX2dyX3N0YXRlX2luaXQoKXtcbiAgY2FtbF9ncl9tb3ZldG8oY2FtbF9ncl9zdGF0ZS54LGNhbWxfZ3Jfc3RhdGUueSk7XG4gIGNhbWxfZ3JfcmVzaXplX3dpbmRvdyhjYW1sX2dyX3N0YXRlLndpZHRoLGNhbWxfZ3Jfc3RhdGUuaGVpZ2h0KTtcbiAgY2FtbF9ncl9zZXRfbGluZV93aWR0aChjYW1sX2dyX3N0YXRlLmxpbmVfd2lkdGgpO1xuICBjYW1sX2dyX3NldF90ZXh0X3NpemUoY2FtbF9ncl9zdGF0ZS50ZXh0X3NpemUpO1xuICBjYW1sX2dyX3NldF9mb250KGNhbWxfZ3Jfc3RhdGUuZm9udCk7XG4gIGNhbWxfZ3Jfc2V0X2NvbG9yKGNhbWxfZ3Jfc3RhdGUuY29sb3IpO1xuICBjYW1sX2dyX3NldF93aW5kb3dfdGl0bGUoY2FtbF9ncl9zdGF0ZS50aXRsZSk7XG4gIC8vY2FtbF9ncl9yZXNpemVfd2luZG93IG1pZ2h0IHJlc2V0IHNvbWUgY2FudmFzJyBwcm9wZXJ0aWVzXG4gIGNhbWxfZ3Jfc3RhdGUuY29udGV4dC50ZXh0QmFzZWxpbmUgPSAnYm90dG9tJztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZV9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3RhdGVfY3JlYXRlKGNhbnZhcyx3LGgpe1xuICB2YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KFwiMmRcIik7XG4gIHJldHVybiB7XG4gICAgY29udGV4dDogY29udGV4dCxcbiAgICBjYW52YXMgOiBjYW52YXMsXG4gICAgeCA6IDAsXG4gICAgeSA6IDAsXG4gICAgd2lkdGggOiB3LFxuICAgIGhlaWdodCA6IGgsXG4gICAgbGluZV93aWR0aCA6IDEsXG4gICAgZm9udCA6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJmaXhlZFwiKSxcbiAgICB0ZXh0X3NpemUgOiAyNixcbiAgICBjb2xvciA6IDB4MDAwMDAwLFxuICAgIHRpdGxlIDogY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiKVxuICB9O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RvY19vZl9zdGF0ZVxuZnVuY3Rpb24gY2FtbF9ncl9kb2Nfb2Zfc3RhdGUoc3RhdGUpIHtcbiAgaWYoc3RhdGUuY2FudmFzLm93bmVyRG9jdW1lbnQpXG4gICAgcmV0dXJuIHN0YXRlLmNhbnZhcy5vd25lckRvY3VtZW50O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2Nsb3NlX2dyYXBoXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jbG9zZV9ncmFwaCgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY2FudmFzLndpZHRoID0gMDtcbiAgcy5jYW52YXMuaGVpZ2h0ID0gMDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX3NldF93aW5kb3dfdGl0bGUobmFtZSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy50aXRsZSA9IG5hbWU7XG4gIHZhciBqc25hbWUgPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhuYW1lKTtcbiAgaWYocy5zZXRfdGl0bGUpIHMuc2V0X3RpdGxlKGpzbmFtZSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3Jlc2l6ZV93aW5kb3dcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3Jlc2l6ZV93aW5kb3codyxoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpXG4gIHMud2lkdGggPSB3O1xuICBzLmhlaWdodCA9IGg7XG4gIHMuY2FudmFzLndpZHRoID0gdztcbiAgcy5jYW52YXMuaGVpZ2h0ID0gaDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY2xlYXJfZ3JhcGhcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2NsZWFyX2dyYXBoKCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jYW52YXMud2lkdGggPSBzLndpZHRoO1xuICBzLmNhbnZhcy5oZWlnaHQgPSBzLmhlaWdodDtcbiAgLy8gIHMuY29udGV4dC5zdHJva2VSZWN0ICgwLiwgMC4sIHMud2lkdGgsIHMuaGVpZ2h0KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2l6ZV94XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9zaXplX3goKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy53aWR0aDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2l6ZV95XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9zaXplX3koKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy5oZWlnaHQ7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfY29sb3Jcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3NldF9jb2xvcihjb2xvcil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgZnVuY3Rpb24gY29udmVydChudW1iZXIpIHtcbiAgICB2YXIgc3RyID0gJycgKyBudW1iZXIudG9TdHJpbmcoMTYpO1xuICAgIHdoaWxlIChzdHIubGVuZ3RoIDwgMikgc3RyID0gJzAnICsgc3RyO1xuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgdmFyXG4gIHIgPSAoY29sb3IgPj4gMTYpICYgMHhmZixcbiAgZyA9IChjb2xvciA+PiA4KSAgJiAweGZmLFxuICBiID0gKGNvbG9yID4+IDApICAmIDB4ZmY7XG4gIHMuY29sb3I9Y29sb3I7XG4gIHZhciBjX3N0ciA9ICcjJyArIGNvbnZlcnQocikgKyBjb252ZXJ0KGcpICsgY29udmVydChiKTtcbiAgcy5jb250ZXh0LmZpbGxTdHlsZSA9ICAgY19zdHI7XG4gIHMuY29udGV4dC5zdHJva2VTdHlsZSA9IGNfc3RyO1xuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfcGxvdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfcGxvdCh4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBpbT1zLmNvbnRleHQuY3JlYXRlSW1hZ2VEYXRhKDEsMSk7XG4gIHZhciBkID0gaW0uZGF0YTtcbiAgdmFyIGNvbG9yID0gcy5jb2xvcjtcbiAgZFswXSA9IChjb2xvciA+PiAxNikgJiAweGZmOyAvL3JcbiAgZFsxXSA9IChjb2xvciA+PiA4KSAgJiAweGZmLCAvL2dcbiAgZFsyXSA9IChjb2xvciA+PiAwKSAgJiAweGZmOyAvL2JcbiAgZFszXSA9IDB4RkY7IC8vYVxuICBzLng9eDtcbiAgcy55PXk7XG4gIHMuY29udGV4dC5wdXRJbWFnZURhdGEoaW0seCxzLmhlaWdodCAtIHkpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9wb2ludF9jb2xvclxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfcG9pbnRfY29sb3IoeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgaW09cy5jb250ZXh0LmdldEltYWdlRGF0YSh4LHMuaGVpZ2h0IC0geSwxLDEpO1xuICB2YXIgZCA9IGltLmRhdGE7XG4gIHJldHVybiAoZFswXSA8PCAxNikgKyAoZFsxXSA8PCA4KSArIGRbMl07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX21vdmV0b1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfbW92ZXRvKHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy54PXg7XG4gIHMueT15O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9jdXJyZW50X3hcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2N1cnJlbnRfeCgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLnhcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY3VycmVudF95XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jdXJyZW50X3koKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy55XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2xpbmV0b1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfbGluZXRvKHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmJlZ2luUGF0aCgpO1xuICBzLmNvbnRleHQubW92ZVRvKHMueCxzLmhlaWdodCAtIHMueSk7XG4gIHMuY29udGV4dC5saW5lVG8oeCxzLmhlaWdodCAtIHkpO1xuICBzLmNvbnRleHQuc3Ryb2tlKCk7XG4gIHMueD14O1xuICBzLnk9eTtcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfcmVjdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19yZWN0KHgseSx3LGgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5zdHJva2VSZWN0KHgscy5oZWlnaHQgLSB5LHcsLWgpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9hcmNfYXV4XG5mdW5jdGlvbiBjYW1sX2dyX2FyY19hdXgoY3R4LGN4LGN5LHJ5LHJ4LGExLGEyKXtcbiAgd2hpbGUoYTE+YTIpIGEyKz0zNjA7XG4gIGExIC89IDE4MDtcbiAgYTIgLz0gMTgwO1xuICB2YXIgcm90ID0gMCx4UG9zLHlQb3MseFBvc19wcmV2LHlQb3NfcHJldjtcbiAgdmFyIHNwYWNlID0gMjtcbiAgdmFyIG51bSA9ICgoKGEyIC0gYTEpICogTWF0aC5QSSAqICgocngrcnkpLzIpKSAvIHNwYWNlKSB8IDA7XG4gIHZhciBkZWx0YSA9IChhMiAtIGExKSAqIE1hdGguUEkgLyBudW07XG4gIHZhciBpID0gYTEgKiBNYXRoLlBJO1xuICBmb3IgKHZhciBqPTA7ajw9bnVtO2orKyl7XG4gICAgeFBvcyA9IGN4IC0gKHJ4ICogTWF0aC5zaW4oaSkpICogTWF0aC5zaW4ocm90ICogTWF0aC5QSSkgKyAocnkgKiBNYXRoLmNvcyhpKSkgKiBNYXRoLmNvcyhyb3QgKiBNYXRoLlBJKTtcbiAgICB4UG9zID0geFBvcy50b0ZpeGVkKDIpO1xuICAgIHlQb3MgPSBjeSArIChyeSAqIE1hdGguY29zKGkpKSAqIE1hdGguc2luKHJvdCAqIE1hdGguUEkpICsgKHJ4ICogTWF0aC5zaW4oaSkpICogTWF0aC5jb3Mocm90ICogTWF0aC5QSSk7XG4gICAgeVBvcyA9IHlQb3MudG9GaXhlZCgyKTtcbiAgICBpZiAoaj09MCkge1xuICAgICAgY3R4Lm1vdmVUbyh4UG9zLCB5UG9zKTtcbiAgICB9IGVsc2UgaWYgKHhQb3NfcHJldiE9eFBvcyB8fCB5UG9zX3ByZXYhPXlQb3Mpe1xuICAgICAgY3R4LmxpbmVUbyh4UG9zLCB5UG9zKTtcbiAgICB9XG4gICAgeFBvc19wcmV2PXhQb3M7XG4gICAgeVBvc19wcmV2PXlQb3M7XG4gICAgaS09IGRlbHRhOy8vY2N3XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X2FyY1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXQsIGNhbWxfZ3JfYXJjX2F1eFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X2FyYyh4LHkscngscnksYTEsYTIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5iZWdpblBhdGgoKTtcbiAgY2FtbF9ncl9hcmNfYXV4KHMuY29udGV4dCx4LHMuaGVpZ2h0IC0geSxyeCxyeSxhMSxhMik7XG4gIHMuY29udGV4dC5zdHJva2UoKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGhcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3NldF9saW5lX3dpZHRoKHcpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMubGluZV93aWR0aCA9IHc7XG4gIHMuY29udGV4dC5saW5lV2lkdGggPSB3XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2ZpbGxfcmVjdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZmlsbF9yZWN0KHgseSx3LGgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5maWxsUmVjdCh4LHMuaGVpZ2h0IC0geSx3LC1oKTtcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2ZpbGxfcG9seVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZmlsbF9wb2x5KGFyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIHMuY29udGV4dC5tb3ZlVG8oYXJbMV1bMV0scy5oZWlnaHQgLSBhclsxXVsyXSk7XG4gIGZvcih2YXIgaSA9IDI7IGkgPCBhci5sZW5ndGg7IGkrKylcbiAgICBzLmNvbnRleHQubGluZVRvKGFyW2ldWzFdLHMuaGVpZ2h0IC0gYXJbaV1bMl0pO1xuICBzLmNvbnRleHQubGluZVRvKGFyWzFdWzFdLHMuaGVpZ2h0IC0gYXJbMV1bMl0pO1xuICBzLmNvbnRleHQuZmlsbCgpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9maWxsX2FyY1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXQsIGNhbWxfZ3JfYXJjX2F1eFxuZnVuY3Rpb24gY2FtbF9ncl9maWxsX2FyYyh4LHkscngscnksYTEsYTIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5iZWdpblBhdGgoKTtcbiAgY2FtbF9ncl9hcmNfYXV4KHMuY29udGV4dCx4LHMuaGVpZ2h0IC0geSxyeCxyeSxhMSxhMik7XG4gIHMuY29udGV4dC5maWxsKCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfc3RyXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X3N0cihzdHIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBtID0gcy5jb250ZXh0Lm1lYXN1cmVUZXh0KHN0cik7XG4gIHZhciBkeCA9IG0ud2lkdGg7XG4gIHMuY29udGV4dC5maWxsVGV4dChzdHIscy54LHMuaGVpZ2h0IC0gcy55KTtcbiAgcy54ICs9IGR4IHwgMDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19jaGFyXG4vL1JlcXVpcmVzOiBjYW1sX2dyX2RyYXdfc3RyXG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfY2hhcihjKXtcbiAgY2FtbF9ncl9kcmF3X3N0cihTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfZ3JfZHJhd19zdHJcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfc3RyaW5nKHN0cil7XG4gIGNhbWxfZ3JfZHJhd19zdHIoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoc3RyKSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF9mb250XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X2ZvbnQoZil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5mb250ID0gZjtcbiAgcy5jb250ZXh0LmZvbnQgPSBzLnRleHRfc2l6ZSArIFwicHggXCIgKyBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzLmZvbnQpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfdGV4dF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X3RleHRfc2l6ZShzaXplKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLnRleHRfc2l6ZSA9IHNpemU7XG4gIHMuY29udGV4dC5mb250ID0gcy50ZXh0X3NpemUgKyBcInB4IFwiICsgY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocy5mb250KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfdGV4dF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3JfdGV4dF9zaXplKHR4dCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIHcgPSBzLmNvbnRleHQubWVhc3VyZVRleHQoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcodHh0KSkud2lkdGg7XG4gIHJldHVybiBbMCx3LHMudGV4dF9zaXplXTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX21ha2VfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX21ha2VfaW1hZ2UoYXJyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgaCA9IGFyci5sZW5ndGggLSAxIDtcbiAgdmFyIHcgPSBhcnJbMV0ubGVuZ3RoIC0gMTtcbiAgdmFyIGltID0gcy5jb250ZXh0LmNyZWF0ZUltYWdlRGF0YSh3LGgpO1xuICBmb3IodmFyIGk9MDtpPGg7aSsrKXtcbiAgICBmb3IodmFyIGo9MDtqPHc7aisrKXtcbiAgICAgIHZhciBjID0gYXJyW2krMV1baisxXTtcbiAgICAgIHZhciBvID0gaSoodyo0KSArIChqICogNCk7XG4gICAgICBpZihjID09IC0xKSB7XG4gICAgICAgIGltLmRhdGFbbyArIDBdID0gMDtcbiAgICAgICAgaW0uZGF0YVtvICsgMV0gPSAwO1xuICAgICAgICBpbS5kYXRhW28gKyAyXSA9IDA7XG4gICAgICAgIGltLmRhdGFbbyArIDNdID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGltLmRhdGFbbyArIDBdID0gYyA+PiAxNiAmIDB4ZmY7XG4gICAgICAgIGltLmRhdGFbbyArIDFdID0gYyA+PiAgOCAmIDB4ZmY7XG4gICAgICAgIGltLmRhdGFbbyArIDJdID0gYyA+PiAgMCAmIDBYZmY7XG4gICAgICAgIGltLmRhdGFbbyArIDNdID0gMHhmZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGltXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2R1bXBfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2R1bXBfaW1hZ2UoaW0pe1xuICB2YXIgZGF0YSA9IFswXVxuICBmb3IodmFyIGk9MDsgaTxpbS5oZWlnaHQ7aSsrKXtcbiAgICBkYXRhW2krMV0gPSBbMF1cbiAgICBmb3IodmFyIGo9MDsgajxpbS53aWR0aDtqKyspe1xuICAgICAgdmFyIG8gPSBpKihpbS53aWR0aCo0KSArIChqICogNCksXG4gICAgICAgICAgciA9IGltLmRhdGFbbyswXSxcbiAgICAgICAgICBnID0gaW0uZGF0YVtvKzFdLFxuICAgICAgICAgIGIgPSBpbS5kYXRhW28rMl07XG4gICAgICBkYXRhW2krMV1baisxXSA9IChyIDw8IDE2KSArIChnIDw8IDgpICsgYlxuICAgIH1cbiAgfVxuICByZXR1cm4gZGF0YVxufVxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X2ltYWdlKGltLHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgaWYoIWltLmltYWdlKSB7XG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgY2FudmFzLndpZHRoID0gcy53aWR0aDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gcy5oZWlnaHQ7XG4gICAgY2FudmFzLmdldENvbnRleHQoXCIyZFwiKS5wdXRJbWFnZURhdGEoaW0sMCwwKTtcbiAgICB2YXIgaW1hZ2UgPSBuZXcgZ2xvYmFsVGhpcy5JbWFnZSgpO1xuICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHMuY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UseCxzLmhlaWdodCAtIGltLmhlaWdodCAtIHkpO1xuICAgICAgaW0uaW1hZ2UgPSBpbWFnZTtcbiAgICB9XG4gICAgaW1hZ2Uuc3JjID0gY2FudmFzLnRvRGF0YVVSTChcImltYWdlL3BuZ1wiKTtcbiAgfSBlbHNlIHtcbiAgICBzLmNvbnRleHQuZHJhd0ltYWdlKGltLmltYWdlLHgscy5oZWlnaHQgLSBpbS5oZWlnaHQgLSB5KTtcbiAgfVxuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY3JlYXRlX2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jcmVhdGVfaW1hZ2UoeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy5jb250ZXh0LmNyZWF0ZUltYWdlRGF0YSh4LHkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9ibGl0X2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9ibGl0X2ltYWdlKGltLHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIGltMiA9IHMuY29udGV4dC5nZXRJbWFnZURhdGEoeCxzLmhlaWdodCAtIGltLmhlaWdodCAtIHksaW0ud2lkdGgsaW0uaGVpZ2h0KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbTIuZGF0YS5sZW5ndGg7IGkrPTQpe1xuICAgIGltLmRhdGFbaV0gPSBpbTIuZGF0YVtpXTtcbiAgICBpbS5kYXRhW2krMV0gPSBpbTIuZGF0YVtpKzFdO1xuICAgIGltLmRhdGFbaSsyXSA9IGltMi5kYXRhW2krMl07XG4gICAgaW0uZGF0YVtpKzNdID0gaW0yLmRhdGFbaSszXTtcbiAgfVxuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2lnaW9faGFuZGxlclxuZnVuY3Rpb24gY2FtbF9ncl9zaWdpb19oYW5kbGVyKCl7cmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NpZ2lvX3NpZ25hbFxuZnVuY3Rpb24gY2FtbF9ncl9zaWdpb19zaWduYWwoKXtyZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfd2FpdF9ldmVudFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl93YWl0X2V2ZW50KF9ldmwpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl93YWl0X2V2ZW50IG5vdCBJbXBsZW1lbnRlZDogdXNlIEdyYXBoaWNzX2pzIGluc3RlYWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3luY2hyb25pemVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3luY2hyb25pemUgKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9zeW5jaHJvbml6ZSBub3QgSW1wbGVtZW50ZWRcIik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3JlbWVtYmVyX21vZGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3JfcmVtZW1iZXJfbW9kZSAoKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX3JlbWVtYmVyX21vZGUgbm90IEltcGxlbWVudGVkXCIpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9kaXNwbGF5X21vZGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3JfZGlzcGxheV9tb2RlKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9kaXNwbGF5X21vZGUgbm90IEltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3dpbmRvd19pZFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl93aW5kb3dfaWQoYSkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl93aW5kb3dfaWQgbm90IEltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX29wZW5fc3Vid2luZG93XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX29wZW5fc3Vid2luZG93KGEsYixjLGQpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3Jfb3Blbl9zdWJ3aW5kb3cgbm90IEltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2Nsb3NlX3N1YndpbmRvd1xuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9jbG9zZV9zdWJ3aW5kb3coYSkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9jbG9zZV9zdWJ3aW5kb3cgbm90IEltcGxlbWVudGVkXCIpO1xufVxuIiwiXG4vL1Byb3ZpZGVzOiBjYW1sX2N1c3RvbV9ldmVudF9pbmRleFxudmFyIGNhbWxfY3VzdG9tX2V2ZW50X2luZGV4ID0gMDtcblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c191c2VyX3JlZ2lzdGVyXG4vL1JlcXVpcmVzOiBjYW1sX2N1c3RvbV9ldmVudF9pbmRleFxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c191c2VyX3JlZ2lzdGVyKGV2ZW50X25hbWUsIGV2ZW50X3RhZywgZXZlbnRfdHlwZSkge1xuICBjYW1sX2N1c3RvbV9ldmVudF9pbmRleCArPSAxO1xuICByZXR1cm4gWzAsIGNhbWxfY3VzdG9tX2V2ZW50X2luZGV4LCBldmVudF9uYW1lLCBldmVudF90eXBlLCBldmVudF90YWddO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX3VzZXJfd3JpdGVcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfdXNlcl93cml0ZShldmVudCwgZXZlbnRfY29udGVudCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c191c2VyX3Jlc29sdmVcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZXNvbHZlKCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c19zdGFydFxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c19zdGFydCgpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9ldmVudHNfcGF1c2VcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfcGF1c2UoKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX3Jlc3VtZVxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c19yZXN1bWUoKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX2NyZWF0ZV9jdXJzb3JcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfY3JlYXRlX2N1cnNvcih0YXJnZXQpIHtcbiAgcmV0dXJuIHt9O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX2ZyZWVfY3Vyc29yXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfZXZlbnRzX2ZyZWVfY3Vyc29yKGN1cnNvcikge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c19yZWFkX3BvbGxcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfcmVhZF9wb2xsKGN1cnNvciwgY2FsbGJhY2tzLCBudW0pIHtcbiAgcmV0dXJuIDA7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9tYXJzaGFsX2NvbnN0YW50c1xudmFyIGNhbWxfbWFyc2hhbF9jb25zdGFudHMgPSB7XG4gIFBSRUZJWF9TTUFMTF9CTE9DSzogICAgICAgICAweDgwLFxuICBQUkVGSVhfU01BTExfSU5UOiAgICAgICAgICAgMHg0MCxcbiAgUFJFRklYX1NNQUxMX1NUUklORzogICAgICAgIDB4MjAsXG4gIENPREVfSU5UODogICAgICAgICAgICAgICAgICAweDAwLFxuICBDT0RFX0lOVDE2OiAgICAgICAgICAgICAgICAgMHgwMSxcbiAgQ09ERV9JTlQzMjogICAgICAgICAgICAgICAgIDB4MDIsXG4gIENPREVfSU5UNjQ6ICAgICAgICAgICAgICAgICAweDAzLFxuICBDT0RFX1NIQVJFRDg6ICAgICAgICAgICAgICAgMHgwNCxcbiAgQ09ERV9TSEFSRUQxNjogICAgICAgICAgICAgIDB4MDUsXG4gIENPREVfU0hBUkVEMzI6ICAgICAgICAgICAgICAweDA2LFxuICBDT0RFX0JMT0NLMzI6ICAgICAgICAgICAgICAgMHgwOCxcbiAgQ09ERV9CTE9DSzY0OiAgICAgICAgICAgICAgIDB4MTMsXG4gIENPREVfU1RSSU5HODogICAgICAgICAgICAgICAweDA5LFxuICBDT0RFX1NUUklORzMyOiAgICAgICAgICAgICAgMHgwQSxcbiAgQ09ERV9ET1VCTEVfQklHOiAgICAgICAgICAgIDB4MEIsXG4gIENPREVfRE9VQkxFX0xJVFRMRTogICAgICAgICAweDBDLFxuICBDT0RFX0RPVUJMRV9BUlJBWThfQklHOiAgICAgMHgwRCxcbiAgQ09ERV9ET1VCTEVfQVJSQVk4X0xJVFRMRTogIDB4MEUsXG4gIENPREVfRE9VQkxFX0FSUkFZMzJfQklHOiAgICAweDBGLFxuICBDT0RFX0RPVUJMRV9BUlJBWTMyX0xJVFRMRTogMHgwNyxcbiAgQ09ERV9DT0RFUE9JTlRFUjogICAgICAgICAgIDB4MTAsXG4gIENPREVfSU5GSVhQT0lOVEVSOiAgICAgICAgICAweDExLFxuICBDT0RFX0NVU1RPTTogICAgICAgICAgICAgICAgMHgxMixcbiAgQ09ERV9DVVNUT01fTEVOOiAgICAgICAgICAgIDB4MTgsXG4gIENPREVfQ1VTVE9NX0ZJWEVEOiAgICAgICAgICAweDE5XG59XG5cblxuLy9Qcm92aWRlczogVUludDhBcnJheVJlYWRlclxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXksIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIFVJbnQ4QXJyYXlSZWFkZXIgKHMsIGkpIHsgdGhpcy5zID0gczsgdGhpcy5pID0gaTsgfVxuVUludDhBcnJheVJlYWRlci5wcm90b3R5cGUgPSB7XG4gIHJlYWQ4dTpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnNbdGhpcy5pKytdOyB9LFxuICByZWFkOHM6ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5zW3RoaXMuaSsrXSA8PCAyNCA+PiAyNDsgfSxcbiAgcmVhZDE2dTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChzW2ldIDw8IDgpIHwgc1tpICsgMV1cbiAgfSxcbiAgcmVhZDE2czpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChzW2ldIDw8IDI0ID4+IDE2KSB8IHNbaSArIDFdO1xuICB9LFxuICByZWFkMzJ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKChzW2ldIDw8IDI0KSB8IChzW2krMV0gPDwgMTYpIHxcbiAgICAgICAgICAgIChzW2krMl0gPDwgOCkgfCBzW2krM10pID4+PiAwO1xuICB9LFxuICByZWFkMzJzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKHNbaV0gPDwgMjQpIHwgKHNbaSsxXSA8PCAxNikgfFxuICAgICAgKHNbaSsyXSA8PCA4KSB8IHNbaSszXTtcbiAgfSxcbiAgcmVhZHN0cjpmdW5jdGlvbiAobGVuKSB7XG4gICAgdmFyIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkodGhpcy5zLnN1YmFycmF5KGksIGkgKyBsZW4pKTtcbiAgfSxcbiAgcmVhZHVpbnQ4YXJyYXk6ZnVuY3Rpb24gKGxlbikge1xuICAgIHZhciBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIHRoaXMucy5zdWJhcnJheShpLCBpICsgbGVuKTtcbiAgfVxufVxuXG5cbi8vUHJvdmlkZXM6IE1sU3RyaW5nUmVhZGVyXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBNbFN0cmluZ1JlYWRlciAocywgaSkgeyB0aGlzLnMgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpOyB0aGlzLmkgPSBpOyB9XG5NbFN0cmluZ1JlYWRlci5wcm90b3R5cGUgPSB7XG4gIHJlYWQ4dTpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnMuY2hhckNvZGVBdCh0aGlzLmkrKyk7IH0sXG4gIHJlYWQ4czpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnMuY2hhckNvZGVBdCh0aGlzLmkrKykgPDwgMjQgPj4gMjQ7IH0sXG4gIHJlYWQxNnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAocy5jaGFyQ29kZUF0KGkpIDw8IDgpIHwgcy5jaGFyQ29kZUF0KGkgKyAxKVxuICB9LFxuICByZWFkMTZzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKHMuY2hhckNvZGVBdChpKSA8PCAyNCA+PiAxNikgfCBzLmNoYXJDb2RlQXQoaSArIDEpO1xuICB9LFxuICByZWFkMzJ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKChzLmNoYXJDb2RlQXQoaSkgPDwgMjQpIHwgKHMuY2hhckNvZGVBdChpKzEpIDw8IDE2KSB8XG4gICAgICAgICAgICAocy5jaGFyQ29kZUF0KGkrMikgPDwgOCkgfCBzLmNoYXJDb2RlQXQoaSszKSkgPj4+IDA7XG4gIH0sXG4gIHJlYWQzMnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAocy5jaGFyQ29kZUF0KGkpIDw8IDI0KSB8IChzLmNoYXJDb2RlQXQoaSsxKSA8PCAxNikgfFxuICAgICAgKHMuY2hhckNvZGVBdChpKzIpIDw8IDgpIHwgcy5jaGFyQ29kZUF0KGkrMyk7XG4gIH0sXG4gIHJlYWRzdHI6ZnVuY3Rpb24gKGxlbikge1xuICAgIHZhciBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXModGhpcy5zLnN1YnN0cmluZyhpLCBpICsgbGVuKSk7XG4gIH0sXG4gIHJlYWR1aW50OGFycmF5OmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgYiA9IG5ldyBVaW50OEFycmF5KGxlbik7XG4gICAgdmFyIHMgPSB0aGlzLnM7XG4gICAgdmFyIGkgPSB0aGlzLmk7XG4gICAgZm9yKHZhciBqID0gMDsgaiA8IGxlbjsgaisrKSB7XG4gICAgICBiW2pdID0gcy5jaGFyQ29kZUF0KGkgKyBqKTtcbiAgICB9XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gYjtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBCaWdTdHJpbmdSZWFkZXJcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5LCBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBCaWdTdHJpbmdSZWFkZXIgKGJzLCBpKSB7IHRoaXMucyA9IGJzOyB0aGlzLmkgPSBpOyB9XG5CaWdTdHJpbmdSZWFkZXIucHJvdG90eXBlID0ge1xuICByZWFkOHU6ZnVuY3Rpb24gKCkgeyByZXR1cm4gY2FtbF9iYV9nZXRfMSh0aGlzLnMsdGhpcy5pKyspOyB9LFxuICByZWFkOHM6ZnVuY3Rpb24gKCkgeyByZXR1cm4gY2FtbF9iYV9nZXRfMSh0aGlzLnMsdGhpcy5pKyspIDw8IDI0ID4+IDI0OyB9LFxuICByZWFkMTZ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKGNhbWxfYmFfZ2V0XzEocyxpKSA8PCA4KSB8IGNhbWxfYmFfZ2V0XzEocyxpICsgMSlcbiAgfSxcbiAgcmVhZDE2czpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChjYW1sX2JhX2dldF8xKHMsaSkgPDwgMjQgPj4gMTYpIHwgY2FtbF9iYV9nZXRfMShzLGkgKyAxKTtcbiAgfSxcbiAgcmVhZDMydTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuICgoY2FtbF9iYV9nZXRfMShzLGkpICAgPDwgMjQpIHwgKGNhbWxfYmFfZ2V0XzEocyxpKzEpIDw8IDE2KSB8XG4gICAgICAgICAgICAoY2FtbF9iYV9nZXRfMShzLGkrMikgPDwgOCkgIHwgY2FtbF9iYV9nZXRfMShzLGkrMykgICAgICAgICApID4+PiAwO1xuICB9LFxuICByZWFkMzJzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKGNhbWxfYmFfZ2V0XzEocyxpKSAgIDw8IDI0KSB8IChjYW1sX2JhX2dldF8xKHMsaSsxKSA8PCAxNikgfFxuICAgICAgKGNhbWxfYmFfZ2V0XzEocyxpKzIpIDw8IDgpICB8IGNhbWxfYmFfZ2V0XzEocyxpKzMpO1xuICB9LFxuICByZWFkc3RyOmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgaSA9IHRoaXMuaTtcbiAgICB2YXIgYXJyID0gbmV3IEFycmF5KGxlbilcbiAgICBmb3IodmFyIGogPSAwOyBqIDwgbGVuOyBqKyspe1xuICAgICAgYXJyW2pdID0gY2FtbF9iYV9nZXRfMSh0aGlzLnMsIGkraik7XG4gICAgfVxuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5KGFycik7XG4gIH0sXG4gIHJlYWR1aW50OGFycmF5OmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgaSA9IHRoaXMuaTtcbiAgICB2YXIgb2Zmc2V0ID0gdGhpcy5vZmZzZXQoaSk7XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gdGhpcy5zLmRhdGEuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBsZW4pO1xuICB9XG59XG5cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMsIGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKGEpIHtcbiAgcmV0dXJuIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyAoY2FtbF9pbnQ2NF9vZl9ieXRlcyAoYSkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fc3RyaW5nIG11dGFibGVcbi8vUmVxdWlyZXM6IE1sU3RyaW5nUmVhZGVyLCBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fc3RyaW5nKHMsb2ZzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcgTWxTdHJpbmdSZWFkZXIgKHMsIHR5cGVvZiBvZnM9PVwibnVtYmVyXCI/b2ZzOm9mc1swXSk7XG4gIHJldHVybiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyKHJlYWRlciwgb2ZzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMgbXV0YWJsZVxuLy9SZXF1aXJlczogTWxTdHJpbmdSZWFkZXIsIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIsIGNhbWxfc3RyaW5nX29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMocyxvZnMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBNbFN0cmluZ1JlYWRlciAoY2FtbF9zdHJpbmdfb2ZfYnl0ZXMocyksIHR5cGVvZiBvZnM9PVwibnVtYmVyXCI/b2ZzOm9mc1swXSk7XG4gIHJldHVybiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyKHJlYWRlciwgb2ZzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3VubWFyc2hhbFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9pbnQ2NF91bm1hcnNoYWwocmVhZGVyLCBzaXplKXtcbiAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gIHNpemVbMF0gPSA4O1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9ieXRlcyAodCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbWFyc2hhbFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9pbnQ2NF9tYXJzaGFsKHdyaXRlciwgdiwgc2l6ZXMpIHtcbiAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzICh2KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspIHdyaXRlci53cml0ZSAoOCwgYltpXSk7XG4gIHNpemVzWzBdID0gODsgc2l6ZXNbMV0gPSA4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDMyX3VubWFyc2hhbFxuZnVuY3Rpb24gY2FtbF9pbnQzMl91bm1hcnNoYWwocmVhZGVyLCBzaXplKXtcbiAgc2l6ZVswXSA9IDQ7XG4gIHJldHVybiByZWFkZXIucmVhZDMycyAoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX25hdGl2ZWludF91bm1hcnNoYWwocmVhZGVyLCBzaXplKXtcbiAgc3dpdGNoIChyZWFkZXIucmVhZDh1ICgpKSB7XG4gIGNhc2UgMTpcbiAgICBzaXplWzBdID0gNDtcbiAgICByZXR1cm4gcmVhZGVyLnJlYWQzMnMgKCk7XG4gIGNhc2UgMjpcbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IG5hdGl2ZSBpbnRlZ2VyIHZhbHVlIHRvbyBsYXJnZVwiKTtcbiAgZGVmYXVsdDogY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBpbGwtZm9ybWVkIG5hdGl2ZSBpbnRlZ2VyXCIpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF91bm1hcnNoYWwsIGNhbWxfaW50NjRfbWFyc2hhbCwgY2FtbF9pbnQ2NF9jb21wYXJlLCBjYW1sX2ludDY0X2hhc2hcbi8vUmVxdWlyZXM6IGNhbWxfaW50MzJfdW5tYXJzaGFsLCBjYW1sX25hdGl2ZWludF91bm1hcnNoYWxcbi8vUmVxdWlyZXM6IGNhbWxfYmFfc2VyaWFsaXplLCBjYW1sX2JhX2Rlc2VyaWFsaXplLCBjYW1sX2JhX2NvbXBhcmUsIGNhbWxfYmFfaGFzaFxudmFyIGNhbWxfY3VzdG9tX29wcyA9XG4gICAge1wiX2pcIjoge1xuICAgICAgZGVzZXJpYWxpemUgOiBjYW1sX2ludDY0X3VubWFyc2hhbCxcbiAgICAgIHNlcmlhbGl6ZSAgOiBjYW1sX2ludDY0X21hcnNoYWwsXG4gICAgICBmaXhlZF9sZW5ndGggOiA4LFxuICAgICAgY29tcGFyZSA6IGNhbWxfaW50NjRfY29tcGFyZSxcbiAgICAgIGhhc2ggOiBjYW1sX2ludDY0X2hhc2hcbiAgICB9LFxuICAgICBcIl9pXCI6IHtcbiAgICAgICBkZXNlcmlhbGl6ZSA6IGNhbWxfaW50MzJfdW5tYXJzaGFsLFxuICAgICAgIGZpeGVkX2xlbmd0aCA6IDQsXG4gICAgIH0sXG4gICAgIFwiX25cIjoge1xuICAgICAgIGRlc2VyaWFsaXplIDogY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsLFxuICAgICAgIGZpeGVkX2xlbmd0aCA6IDQsXG4gICAgIH0sXG4gICAgIFwiX2JpZ2FycmF5XCI6e1xuICAgICAgIGRlc2VyaWFsaXplIDogKGZ1bmN0aW9uIChyZWFkZXIsIHN6KSB7cmV0dXJuIGNhbWxfYmFfZGVzZXJpYWxpemUgKHJlYWRlcixzeixcIl9iaWdhcnJheVwiKX0pLFxuICAgICAgIHNlcmlhbGl6ZSA6IGNhbWxfYmFfc2VyaWFsaXplLFxuICAgICAgIGNvbXBhcmUgOiBjYW1sX2JhX2NvbXBhcmUsXG4gICAgICAgaGFzaDogY2FtbF9iYV9oYXNoLFxuICAgICB9LFxuICAgICBcIl9iaWdhcnIwMlwiOntcbiAgICAgICBkZXNlcmlhbGl6ZSA6IChmdW5jdGlvbiAocmVhZGVyLCBzeikge3JldHVybiBjYW1sX2JhX2Rlc2VyaWFsaXplIChyZWFkZXIsc3osXCJfYmlnYXJyMDJcIil9KSxcbiAgICAgICBzZXJpYWxpemUgOiBjYW1sX2JhX3NlcmlhbGl6ZSxcbiAgICAgICBjb21wYXJlIDogY2FtbF9iYV9jb21wYXJlLFxuICAgICAgIGhhc2g6IGNhbWxfYmFfaGFzaCxcbiAgICAgfVxuICAgIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlciBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL1JlcXVpcmVzOiBjYW1sX2Zsb2F0X29mX2J5dGVzLCBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IHpzdGRfZGVjb21wcmVzc1xuLy9SZXF1aXJlczogVUludDhBcnJheVJlYWRlclxuZnVuY3Rpb24gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcihyZWFkZXIsIG9mcykge1xuICBmdW5jdGlvbiByZWFkdmxxKG92ZXJmbG93KSB7XG4gICAgdmFyIGMgPSByZWFkZXIucmVhZDh1KCk7XG4gICAgdmFyIG4gPSBjICYgMHg3RjtcbiAgICB3aGlsZSAoKGMgJiAweDgwKSAhPSAwKSB7XG4gICAgICBjID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIG43ID0gbiA8PCA3O1xuICAgICAgaWYgKG4gIT0gbjcgPj4gNykgb3ZlcmZsb3dbMF0gPSB0cnVlO1xuICAgICAgbiA9IG43IHwgKGMgJiAweDdGKTtcbiAgICB9XG4gICAgcmV0dXJuIG47XG4gIH1cbiAgdmFyIG1hZ2ljID0gcmVhZGVyLnJlYWQzMnUgKClcbiAgc3dpdGNoKG1hZ2ljKXtcbiAgY2FzZSAweDg0OTVBNkJFOiAvKiBJbnRleHRfbWFnaWNfbnVtYmVyX3NtYWxsICovXG4gICAgdmFyIGhlYWRlcl9sZW4gPSAyMDtcbiAgICB2YXIgY29tcHJlc3NlZCA9IDA7XG4gICAgdmFyIGRhdGFfbGVuID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgdmFyIHVuY29tcHJlc3NlZF9kYXRhX2xlbiA9IGRhdGFfbGVuO1xuICAgIHZhciBudW1fb2JqZWN0cyA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgIHZhciBfc2l6ZV8zMiA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgIHZhciBfc2l6ZV82NCA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgIGJyZWFrXG4gIGNhc2UgMHg4NDk1QTZCRDogLyogSW50ZXh0X21hZ2ljX251bWJlcl9jb21wcmVzc2VkICovXG4gICAgdmFyIGhlYWRlcl9sZW4gPSByZWFkZXIucmVhZDh1KCkgJiAweDNGO1xuICAgIHZhciBjb21wcmVzc2VkID0gMTtcbiAgICB2YXIgb3ZlcmZsb3cgPSBbZmFsc2VdO1xuICAgIHZhciBkYXRhX2xlbiA9IHJlYWR2bHEob3ZlcmZsb3cpO1xuICAgIHZhciB1bmNvbXByZXNzZWRfZGF0YV9sZW4gPSByZWFkdmxxKG92ZXJmbG93KTtcbiAgICB2YXIgbnVtX29iamVjdHMgPSByZWFkdmxxKG92ZXJmbG93KTtcbiAgICB2YXIgX3NpemVfMzIgPSByZWFkdmxxIChvdmVyZmxvdyk7XG4gICAgdmFyIF9zaXplXzY0ID0gcmVhZHZscSAob3ZlcmZsb3cpO1xuICAgIGlmKG92ZXJmbG93WzBdKXtcbiAgICAgICAgY2FtbF9mYWlsd2l0aChcImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXI6IG9iamVjdCB0b28gbGFyZ2UgdG8gYmUgcmVhZCBiYWNrIG9uIHRoaXMgcGxhdGZvcm1cIik7XG4gICAgfVxuICAgIGJyZWFrXG4gIGNhc2UgMHg4NDk1QTZCRjogLyogSW50ZXh0X21hZ2ljX251bWJlcl9iaWcgKi9cbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcjogb2JqZWN0IHRvbyBsYXJnZSB0byBiZSByZWFkIGJhY2sgb24gYSAzMi1iaXQgcGxhdGZvcm1cIik7XG4gICAgYnJlYWtcbiAgZGVmYXVsdDpcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcjogYmFkIG9iamVjdFwiKTtcbiAgICBicmVhaztcbiAgfVxuICB2YXIgc3RhY2sgPSBbXTtcbiAgdmFyIGludGVybl9vYmpfdGFibGUgPSAobnVtX29iamVjdHMgPiAwKT9bXTpudWxsO1xuICB2YXIgb2JqX2NvdW50ZXIgPSAwO1xuICBmdW5jdGlvbiBpbnRlcm5fcmVjIChyZWFkZXIpIHtcbiAgICB2YXIgY29kZSA9IHJlYWRlci5yZWFkOHUgKCk7XG4gICAgaWYgKGNvZGUgPj0gMHg0MCAvKmNzdC5QUkVGSVhfU01BTExfSU5UKi8pIHtcbiAgICAgIGlmIChjb2RlID49IDB4ODAgLypjc3QuUFJFRklYX1NNQUxMX0JMT0NLKi8pIHtcbiAgICAgICAgdmFyIHRhZyA9IGNvZGUgJiAweEY7XG4gICAgICAgIHZhciBzaXplID0gKGNvZGUgPj4gNCkgJiAweDc7XG4gICAgICAgIHZhciB2ID0gW3RhZ107XG4gICAgICAgIGlmIChzaXplID09IDApIHJldHVybiB2O1xuICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgIHN0YWNrLnB1c2godiwgc2l6ZSk7XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfSBlbHNlXG4gICAgICAgIHJldHVybiAoY29kZSAmIDB4M0YpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29kZSA+PSAweDIwLypjc3QuUFJFRklYX1NNQUxMX1NUUklORyAqLykge1xuICAgICAgICB2YXIgbGVuID0gY29kZSAmIDB4MUY7XG4gICAgICAgIHZhciB2ID0gcmVhZGVyLnJlYWRzdHIgKGxlbik7XG4gICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2goY29kZSkge1xuICAgICAgICBjYXNlIDB4MDA6IC8vY3N0LkNPREVfSU5UODpcbiAgICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWQ4cyAoKTtcbiAgICAgICAgY2FzZSAweDAxOiAvL2NzdC5DT0RFX0lOVDE2OlxuICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZDE2cyAoKTtcbiAgICAgICAgY2FzZSAweDAyOiAvL2NzdC5DT0RFX0lOVDMyOlxuICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZDMycyAoKTtcbiAgICAgICAgY2FzZSAweDAzOiAvL2NzdC5DT0RFX0lOVDY0OlxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogaW50ZWdlciB0b28gbGFyZ2VcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMHgwNDogLy9jc3QuQ09ERV9TSEFSRUQ4OlxuICAgICAgICAgIHZhciBvZmZzZXQgPSByZWFkZXIucmVhZDh1ICgpO1xuICAgICAgICAgIGlmKGNvbXByZXNzZWQgPT0gMCkgb2Zmc2V0ID0gb2JqX2NvdW50ZXIgLSBvZmZzZXQ7XG4gICAgICAgICAgcmV0dXJuIGludGVybl9vYmpfdGFibGVbb2Zmc2V0XTtcbiAgICAgICAgY2FzZSAweDA1OiAvL2NzdC5DT0RFX1NIQVJFRDE2OlxuICAgICAgICAgIHZhciBvZmZzZXQgPSByZWFkZXIucmVhZDE2dSAoKTtcbiAgICAgICAgICBpZihjb21wcmVzc2VkID09IDApIG9mZnNldCA9IG9ial9jb3VudGVyIC0gb2Zmc2V0O1xuICAgICAgICAgIHJldHVybiBpbnRlcm5fb2JqX3RhYmxlW29mZnNldF07XG4gICAgICAgIGNhc2UgMHgwNjogLy9jc3QuQ09ERV9TSEFSRUQzMjpcbiAgICAgICAgICB2YXIgb2Zmc2V0ID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgICAgICAgaWYoY29tcHJlc3NlZCA9PSAwKSBvZmZzZXQgPSBvYmpfY291bnRlciAtIG9mZnNldDtcbiAgICAgICAgICByZXR1cm4gaW50ZXJuX29ial90YWJsZVtvZmZzZXRdO1xuICAgICAgICBjYXNlIDB4MDg6IC8vY3N0LkNPREVfQkxPQ0szMjpcbiAgICAgICAgICB2YXIgaGVhZGVyID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgICAgICAgdmFyIHRhZyA9IGhlYWRlciAmIDB4RkY7XG4gICAgICAgICAgdmFyIHNpemUgPSBoZWFkZXIgPj4gMTA7XG4gICAgICAgICAgdmFyIHYgPSBbdGFnXTtcbiAgICAgICAgICBpZiAoc2l6ZSA9PSAwKSByZXR1cm4gdjtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgc3RhY2sucHVzaCh2LCBzaXplKTtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDEzOiAvL2NzdC5DT0RFX0JMT0NLNjQ6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aCAoXCJpbnB1dF92YWx1ZTogZGF0YSBibG9jayB0b28gbGFyZ2VcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMHgwOTogLy9jc3QuQ09ERV9TVFJJTkc4OlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgdmFyIHYgPSByZWFkZXIucmVhZHN0ciAobGVuKTtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwQTogLy9jc3QuQ09ERV9TVFJJTkczMjpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgICB2YXIgdiA9IHJlYWRlci5yZWFkc3RyIChsZW4pO1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBDOiAvL2NzdC5DT0RFX0RPVUJMRV9MSVRUTEU6XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwO2kgPCA4O2krKykgdFs3IC0gaV0gPSByZWFkZXIucmVhZDh1ICgpO1xuICAgICAgICAgIHZhciB2ID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEI6IC8vY3N0LkNPREVfRE9VQkxFX0JJRzpcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7aSA8IDg7aSsrKSB0W2ldID0gcmVhZGVyLnJlYWQ4dSAoKTtcbiAgICAgICAgICB2YXIgdiA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBFOiAvL2NzdC5DT0RFX0RPVUJMRV9BUlJBWThfTElUVExFOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgdmFyIHYgPSBuZXcgQXJyYXkobGVuKzEpO1xuICAgICAgICAgIHZbMF0gPSAyNTQ7XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFs3IC0gal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgICB2W2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEQ6IC8vY3N0LkNPREVfRE9VQkxFX0FSUkFZOF9CSUc6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICB2YXIgdiA9IG5ldyBBcnJheShsZW4rMSk7XG4gICAgICAgICAgdlswXSA9IDI1NDtcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAxO2kgPD0gbGVuO2krKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgICAgdiBbaV0gPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwNzogLy9jc3QuQ09ERV9ET1VCTEVfQVJSQVkzMl9MSVRUTEU6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgICAgdmFyIHYgPSBuZXcgQXJyYXkobGVuKzEpO1xuICAgICAgICAgIHZbMF0gPSAyNTQ7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFs3IC0gal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgICB2W2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEY6IC8vY3N0LkNPREVfRE9VQkxFX0FSUkFZMzJfQklHOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICAgIHZhciB2ID0gbmV3IEFycmF5KGxlbisxKTtcbiAgICAgICAgICB2WzBdID0gMjU0O1xuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICAgIHYgW2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MTA6IC8vY3N0LkNPREVfQ09ERVBPSU5URVI6XG4gICAgICAgIGNhc2UgMHgxMTogLy9jc3QuQ09ERV9JTkZJWFBPSU5URVI6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aCAoXCJpbnB1dF92YWx1ZTogY29kZSBwb2ludGVyXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDB4MTI6IC8vY3N0LkNPREVfQ1VTVE9NOlxuICAgICAgICBjYXNlIDB4MTg6IC8vY3N0LkNPREVfQ1VTVE9NX0xFTjpcbiAgICAgICAgY2FzZSAweDE5OiAvL2NzdC5DT0RFX0NVU1RPTV9GSVhFRDpcbiAgICAgICAgICB2YXIgYywgcyA9IFwiXCI7XG4gICAgICAgICAgd2hpbGUgKChjID0gcmVhZGVyLnJlYWQ4dSAoKSkgIT0gMCkgcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlIChjKTtcbiAgICAgICAgICB2YXIgb3BzID0gY2FtbF9jdXN0b21fb3BzW3NdO1xuICAgICAgICAgIHZhciBleHBlY3RlZF9zaXplO1xuICAgICAgICAgIGlmKCFvcHMpXG4gICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IHVua25vd24gY3VzdG9tIGJsb2NrIGlkZW50aWZpZXJcIik7XG4gICAgICAgICAgc3dpdGNoKGNvZGUpe1xuICAgICAgICAgIGNhc2UgMHgxMjogLy8gY3N0LkNPREVfQ1VTVE9NIChkZXByZWNhdGVkKVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAweDE5OiAvLyBjc3QuQ09ERV9DVVNUT01fRklYRURcbiAgICAgICAgICAgIGlmKCFvcHMuZml4ZWRfbGVuZ3RoKVxuICAgICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGV4cGVjdGVkIGEgZml4ZWQtc2l6ZSBjdXN0b20gYmxvY2tcIik7XG4gICAgICAgICAgICBleHBlY3RlZF9zaXplID0gb3BzLmZpeGVkX2xlbmd0aDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMHgxODogLy8gY3N0LkNPREVfQ1VTVE9NX0xFTlxuICAgICAgICAgICAgZXhwZWN0ZWRfc2l6ZSA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgICAgICAgICAgLy8gU2tpcCBzaXplNjRcbiAgICAgICAgICAgIHJlYWRlci5yZWFkMzJzKCk7IHJlYWRlci5yZWFkMzJzKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIG9sZF9wb3MgPSByZWFkZXIuaTtcbiAgICAgICAgICB2YXIgc2l6ZSA9IFswXTtcbiAgICAgICAgICB2YXIgdiA9IG9wcy5kZXNlcmlhbGl6ZShyZWFkZXIsIHNpemUpO1xuICAgICAgICAgIGlmKGV4cGVjdGVkX3NpemUgIT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgIGlmKGV4cGVjdGVkX3NpemUgIT0gc2l6ZVswXSlcbiAgICAgICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBpbmNvcnJlY3QgbGVuZ3RoIG9mIHNlcmlhbGl6ZWQgY3VzdG9tIGJsb2NrXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aCAoXCJpbnB1dF92YWx1ZTogaWxsLWZvcm1lZCBtZXNzYWdlXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmKGNvbXByZXNzZWQpIHtcbiAgICB2YXIgZGF0YSA9IHJlYWRlci5yZWFkdWludDhhcnJheShkYXRhX2xlbik7XG4gICAgdmFyIHJlcyA9IG5ldyBVaW50OEFycmF5KHVuY29tcHJlc3NlZF9kYXRhX2xlbik7XG4gICAgdmFyIHJlcyA9IHpzdGRfZGVjb21wcmVzcyhkYXRhLCByZXMpO1xuICAgIHZhciByZWFkZXIgPSBuZXcgVUludDhBcnJheVJlYWRlcihyZXMsIDApO1xuICB9XG4gIHZhciByZXMgPSBpbnRlcm5fcmVjIChyZWFkZXIpO1xuICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMCkge1xuICAgIHZhciBzaXplID0gc3RhY2sucG9wKCk7XG4gICAgdmFyIHYgPSBzdGFjay5wb3AoKTtcbiAgICB2YXIgZCA9IHYubGVuZ3RoO1xuICAgIGlmIChkIDwgc2l6ZSkgc3RhY2sucHVzaCh2LCBzaXplKTtcbiAgICB2W2RdID0gaW50ZXJuX3JlYyAocmVhZGVyKTtcbiAgfVxuICBpZiAodHlwZW9mIG9mcyE9XCJudW1iZXJcIikgb2ZzWzBdID0gcmVhZGVyLmk7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZVxuLy9WZXJzaW9uOiA8IDUuMS4wXG52YXIgY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplID0gMjBcblxuLy9Qcm92aWRlczogY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplXG4vL1ZlcnNpb246ID49IDUuMS4wXG52YXIgY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplID0gMTZcblxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFyc2hhbF9kYXRhX3NpemUgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9ieXRlc191bnNhZmVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBVSW50OEFycmF5UmVhZGVyXG4vL1JlcXVpcmVzOiBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemVcbmZ1bmN0aW9uIGNhbWxfbWFyc2hhbF9kYXRhX3NpemUgKHMsIG9mcykge1xuICB2YXIgciA9IG5ldyBVSW50OEFycmF5UmVhZGVyKGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMocyksIG9mcyk7XG4gIGZ1bmN0aW9uIHJlYWR2bHEob3ZlcmZsb3cpIHtcbiAgICB2YXIgYyA9IHIucmVhZDh1KCk7XG4gICAgdmFyIG4gPSBjICYgMHg3RjtcbiAgICB3aGlsZSAoKGMgJiAweDgwKSAhPSAwKSB7XG4gICAgICBjID0gci5yZWFkOHUoKTtcbiAgICAgIHZhciBuNyA9IG4gPDwgNztcbiAgICAgIGlmIChuICE9IG43ID4+IDcpIG92ZXJmbG93WzBdID0gdHJ1ZTtcbiAgICAgIG4gPSBuNyB8IChjICYgMHg3Rik7XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9XG5cbiAgc3dpdGNoKHIucmVhZDMydSgpKXtcbiAgY2FzZSAweDg0OTVBNkJFOiAvKiBJbnRleHRfbWFnaWNfbnVtYmVyX3NtYWxsICovXG4gICAgdmFyIGhlYWRlcl9sZW4gPSAyMDtcbiAgICB2YXIgZGF0YV9sZW4gPSByLnJlYWQzMnUoKTtcbiAgICBicmVhaztcbiAgY2FzZSAweDg0OTVBNkJEOiAvKiBJbnRleHRfbWFnaWNfbnVtYmVyX2NvbXByZXNzZWQgKi9cbiAgICB2YXIgaGVhZGVyX2xlbiA9IHIucmVhZDh1KCkgJiAweDNGO1xuICAgIHZhciBvdmVyZmxvdyA9IFtmYWxzZV07XG4gICAgdmFyIGRhdGFfbGVuID0gcmVhZHZscShvdmVyZmxvdyk7XG4gICAgaWYob3ZlcmZsb3dbMF0pe1xuICAgICAgY2FtbF9mYWlsd2l0aChcIk1hcnNoYWwuZGF0YV9zaXplOiBvYmplY3QgdG9vIGxhcmdlIHRvIGJlIHJlYWQgYmFjayBvbiB0aGlzIHBsYXRmb3JtXCIpO1xuICAgIH1cbiAgICBicmVha1xuICBjYXNlIDB4ODQ5NUE2QkY6IC8qIEludGV4dF9tYWdpY19udW1iZXJfYmlnICovXG4gIGRlZmF1bHQ6XG4gICAgY2FtbF9mYWlsd2l0aChcIk1hcnNoYWwuZGF0YV9zaXplOiBiYWQgb2JqZWN0XCIpO1xuICAgIGJyZWFrXG4gIH1cbiAgcmV0dXJuIGhlYWRlcl9sZW4gLSBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUgKyBkYXRhX2xlbjtcbn1cblxuLy9Qcm92aWRlczogTWxPYmplY3RUYWJsZVxudmFyIE1sT2JqZWN0VGFibGU7XG5pZiAodHlwZW9mIGdsb2JhbFRoaXMuV2Vha01hcCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgTWxPYmplY3RUYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgIC8qIHBvbHlmaWxsICh1c2luZyBsaW5lYXIgc2VhcmNoKSAqL1xuICAgIGZ1bmN0aW9uIE5haXZlTG9va3VwKG9ianMpIHsgdGhpcy5vYmpzID0gb2JqczsgfVxuICAgIE5haXZlTG9va3VwLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbih2KSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub2Jqcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAodGhpcy5vYmpzW2ldID09PSB2KSByZXR1cm4gaTtcbiAgICAgIH1cbiAgICB9O1xuICAgIE5haXZlTG9va3VwLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbigpIHtcbiAgICAgIC8vIERvIG5vdGhpbmcgaGVyZS4gW01sT2JqZWN0VGFibGUuc3RvcmVdIHdpbGwgcHVzaCB0byBbdGhpcy5vYmpzXSBkaXJlY3RseS5cbiAgICB9O1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIE1sT2JqZWN0VGFibGUoKSB7XG4gICAgICB0aGlzLm9ianMgPSBbXTsgdGhpcy5sb29rdXAgPSBuZXcgTmFpdmVMb29rdXAodGhpcy5vYmpzKTtcbiAgICB9O1xuICB9KCk7XG59XG5lbHNlIHtcbiAgTWxPYmplY3RUYWJsZSA9IGZ1bmN0aW9uIE1sT2JqZWN0VGFibGUoKSB7XG4gICAgdGhpcy5vYmpzID0gW107IHRoaXMubG9va3VwID0gbmV3IGdsb2JhbFRoaXMuV2Vha01hcCgpO1xuICB9O1xufVxuXG5NbE9iamVjdFRhYmxlLnByb3RvdHlwZS5zdG9yZSA9IGZ1bmN0aW9uKHYpIHtcbiAgdGhpcy5sb29rdXAuc2V0KHYsIHRoaXMub2Jqcy5sZW5ndGgpO1xuICB0aGlzLm9ianMucHVzaCh2KTtcbn1cblxuTWxPYmplY3RUYWJsZS5wcm90b3R5cGUucmVjYWxsID0gZnVuY3Rpb24odikge1xuICB2YXIgaSA9IHRoaXMubG9va3VwLmdldCh2KTtcbiAgcmV0dXJuIChpID09PSB1bmRlZmluZWQpXG4gICAgPyB1bmRlZmluZWQgOiB0aGlzLm9ianMubGVuZ3RoIC0gaTsgICAvKiBpbmRleCBpcyByZWxhdGl2ZSAqL1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX291dHB1dF92YWxcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXMsIGNhbWxfZmFpbHdpdGhcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdFxuLy9SZXF1aXJlczogY2FtbF9pc19tbF9ieXRlcywgY2FtbF9tbF9ieXRlc19sZW5ndGgsIGNhbWxfYnl0ZXNfdW5zYWZlX2dldFxuLy9SZXF1aXJlczogY2FtbF9pc19tbF9zdHJpbmcsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldFxuLy9SZXF1aXJlczogTWxPYmplY3RUYWJsZSwgY2FtbF9saXN0X3RvX2pzX2FycmF5LCBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCxjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWdcbnZhciBjYW1sX291dHB1dF92YWwgPSBmdW5jdGlvbiAoKXtcbiAgZnVuY3Rpb24gV3JpdGVyICgpIHsgdGhpcy5jaHVuayA9IFtdOyB9XG4gIFdyaXRlci5wcm90b3R5cGUgPSB7XG4gICAgY2h1bmtfaWR4OjIwLCBibG9ja19sZW46MCwgb2JqX2NvdW50ZXI6MCwgc2l6ZV8zMjowLCBzaXplXzY0OjAsXG4gICAgd3JpdGU6ZnVuY3Rpb24gKHNpemUsIHZhbHVlKSB7XG4gICAgICBmb3IgKHZhciBpID0gc2l6ZSAtIDg7aSA+PSAwO2kgLT0gOClcbiAgICAgICAgdGhpcy5jaHVua1t0aGlzLmNodW5rX2lkeCsrXSA9ICh2YWx1ZSA+PiBpKSAmIDB4RkY7XG4gICAgfSxcbiAgICB3cml0ZV9hdDpmdW5jdGlvbiAocG9zLCBzaXplLCB2YWx1ZSkge1xuICAgICAgdmFyIHBvcyA9IHBvcztcbiAgICAgIGZvciAodmFyIGkgPSBzaXplIC0gODtpID49IDA7aSAtPSA4KVxuICAgICAgICB0aGlzLmNodW5rW3BvcysrXSA9ICh2YWx1ZSA+PiBpKSAmIDB4RkY7XG4gICAgfSxcbiAgICB3cml0ZV9jb2RlOmZ1bmN0aW9uIChzaXplLCBjb2RlLCB2YWx1ZSkge1xuICAgICAgdGhpcy5jaHVua1t0aGlzLmNodW5rX2lkeCsrXSA9IGNvZGU7XG4gICAgICBmb3IgKHZhciBpID0gc2l6ZSAtIDg7aSA+PSAwO2kgLT0gOClcbiAgICAgICAgdGhpcy5jaHVua1t0aGlzLmNodW5rX2lkeCsrXSA9ICh2YWx1ZSA+PiBpKSAmIDB4RkY7XG4gICAgfSxcbiAgICB3cml0ZV9zaGFyZWQ6ZnVuY3Rpb24gKG9mZnNldCkge1xuICAgICAgaWYgKG9mZnNldCA8ICgxIDw8IDgpKSB0aGlzLndyaXRlX2NvZGUoOCwgMHgwNCAvKmNzdC5DT0RFX1NIQVJFRDgqLywgb2Zmc2V0KTtcbiAgICAgIGVsc2UgaWYgKG9mZnNldCA8ICgxIDw8IDE2KSkgdGhpcy53cml0ZV9jb2RlKDE2LCAweDA1IC8qY3N0LkNPREVfU0hBUkVEMTYqLywgb2Zmc2V0KTtcbiAgICAgIGVsc2UgdGhpcy53cml0ZV9jb2RlKDMyLCAweDA2IC8qY3N0LkNPREVfU0hBUkVEMzIqLywgb2Zmc2V0KTtcbiAgICB9LFxuICAgIHBvczpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLmNodW5rX2lkeCB9LFxuICAgIGZpbmFsaXplOmZ1bmN0aW9uICgpIHtcbiAgICAgIHRoaXMuYmxvY2tfbGVuID0gdGhpcy5jaHVua19pZHggLSAyMDtcbiAgICAgIHRoaXMuY2h1bmtfaWR4ID0gMDtcbiAgICAgIHRoaXMud3JpdGUgKDMyLCAweDg0OTVBNkJFKTtcbiAgICAgIHRoaXMud3JpdGUgKDMyLCB0aGlzLmJsb2NrX2xlbik7XG4gICAgICB0aGlzLndyaXRlICgzMiwgdGhpcy5vYmpfY291bnRlcik7XG4gICAgICB0aGlzLndyaXRlICgzMiwgdGhpcy5zaXplXzMyKTtcbiAgICAgIHRoaXMud3JpdGUgKDMyLCB0aGlzLnNpemVfNjQpO1xuICAgICAgcmV0dXJuIHRoaXMuY2h1bms7XG4gICAgfVxuICB9XG4gIHJldHVybiBmdW5jdGlvbiAodiwgZmxhZ3MpIHtcbiAgICBmbGFncyA9IGNhbWxfbGlzdF90b19qc19hcnJheShmbGFncyk7XG5cbiAgICB2YXIgbm9fc2hhcmluZyA9IChmbGFncy5pbmRleE9mKDAgLypNYXJzaGFsLk5vX3NoYXJpbmcqLykgIT09IC0xKSxcbiAgICAgICAgY2xvc3VyZXMgPSAgKGZsYWdzLmluZGV4T2YoMSAvKk1hcnNoYWwuQ2xvc3VyZXMqLykgIT09IC0xKTtcbiAgICAvKiBNYXJzaGFsLkNvbXBhdF8zMiBpcyByZWR1bmRhbnQgc2luY2UgaW50ZWdlcnMgYXJlIDMyLWJpdCBhbnl3YXkgKi9cblxuICAgIGlmIChjbG9zdXJlcylcbiAgICAgIGNvbnNvbGUud2FybihcImluIGNhbWxfb3V0cHV0X3ZhbDogZmxhZyBNYXJzaGFsLkNsb3N1cmVzIGlzIG5vdCBzdXBwb3J0ZWQuXCIpO1xuXG4gICAgdmFyIHdyaXRlciA9IG5ldyBXcml0ZXIgKCk7XG4gICAgdmFyIHN0YWNrID0gW107XG4gICAgdmFyIGludGVybl9vYmpfdGFibGUgPSBub19zaGFyaW5nID8gbnVsbCA6IG5ldyBNbE9iamVjdFRhYmxlKCk7XG5cbiAgICBmdW5jdGlvbiBtZW1vKHYpIHtcbiAgICAgIGlmIChub19zaGFyaW5nKSByZXR1cm4gZmFsc2U7XG4gICAgICB2YXIgZXhpc3Rpbmdfb2Zmc2V0ID0gaW50ZXJuX29ial90YWJsZS5yZWNhbGwodik7XG4gICAgICBpZiAoZXhpc3Rpbmdfb2Zmc2V0KSB7IHdyaXRlci53cml0ZV9zaGFyZWQoZXhpc3Rpbmdfb2Zmc2V0KTsgcmV0dXJuIHRydWU7IH1cbiAgICAgIGVsc2UgeyBpbnRlcm5fb2JqX3RhYmxlLnN0b3JlKHYpOyByZXR1cm4gZmFsc2U7IH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBleHRlcm5fcmVjICh2KSB7XG4gICAgICBpZiAodi5jYW1sX2N1c3RvbSkge1xuICAgICAgICBpZiAobWVtbyh2KSkgcmV0dXJuO1xuICAgICAgICB2YXIgbmFtZSA9IHYuY2FtbF9jdXN0b207XG4gICAgICAgIHZhciBvcHMgPSBjYW1sX2N1c3RvbV9vcHNbbmFtZV07XG4gICAgICAgIHZhciBzel8zMl82NCA9IFswLDBdO1xuICAgICAgICBpZighb3BzLnNlcmlhbGl6ZSlcbiAgICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJvdXRwdXRfdmFsdWU6IGFic3RyYWN0IHZhbHVlIChDdXN0b20pXCIpO1xuICAgICAgICBpZihvcHMuZml4ZWRfbGVuZ3RoID09IHVuZGVmaW5lZCl7XG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDE4IC8qY3N0LkNPREVfQ1VTVE9NX0xFTiovKTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIG5hbWUuY2hhckNvZGVBdChpKSk7XG4gICAgICAgICAgd3JpdGVyLndyaXRlKDgsIDApO1xuICAgICAgICAgIHZhciBoZWFkZXJfcG9zID0gd3JpdGVyLnBvcyAoKTtcbiAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlKDgsIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvcHMuc2VyaWFsaXplKHdyaXRlciwgdiwgc3pfMzJfNjQpO1xuICAgICAgICAgIHdyaXRlci53cml0ZV9hdChoZWFkZXJfcG9zLCAzMiwgc3pfMzJfNjRbMF0pO1xuICAgICAgICAgIHdyaXRlci53cml0ZV9hdChoZWFkZXJfcG9zICsgNCwgMzIsIDApOyAvLyB6ZXJvXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2F0KGhlYWRlcl9wb3MgKyA4LCAzMiwgc3pfMzJfNjRbMV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgxOSAvKmNzdC5DT0RFX0NVU1RPTV9GSVhFRCovKTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIG5hbWUuY2hhckNvZGVBdChpKSk7XG4gICAgICAgICAgd3JpdGVyLndyaXRlKDgsIDApO1xuICAgICAgICAgIHZhciBvbGRfcG9zID0gd3JpdGVyLnBvcygpO1xuICAgICAgICAgIG9wcy5zZXJpYWxpemUod3JpdGVyLCB2LCBzel8zMl82NCk7XG4gICAgICAgICAgaWYgKG9wcy5maXhlZF9sZW5ndGggIT0gd3JpdGVyLnBvcygpIC0gb2xkX3BvcylcbiAgICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJvdXRwdXRfdmFsdWU6IGluY29ycmVjdCBmaXhlZCBzaXplcyBzcGVjaWZpZWQgYnkgXCIgKyBuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICB3cml0ZXIuc2l6ZV8zMiArPSAyICsgKChzel8zMl82NFswXSArIDMpID4+IDIpO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSAyICsgKChzel8zMl82NFsxXSArIDcpID4+IDMpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodiBpbnN0YW5jZW9mIEFycmF5ICYmIHZbMF0gPT09ICh2WzBdfDApKSB7XG4gICAgICAgIGlmICh2WzBdID09IDI1MSkge1xuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJvdXRwdXRfdmFsdWU6IGFic3RyYWN0IHZhbHVlIChBYnN0cmFjdClcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhbWxfaXNfY29udGludWF0aW9uX3RhZyh2WzBdKSlcbiAgICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJvdXRwdXRfdmFsdWU6IGNvbnRpbnVhdGlvbiB2YWx1ZVwiKTtcbiAgICAgICAgaWYgKHYubGVuZ3RoID4gMSAmJiBtZW1vKHYpKSByZXR1cm47XG4gICAgICAgIGlmICh2WzBdIDwgMTYgJiYgdi5sZW5ndGggLSAxIDwgOClcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4ODAgLypjc3QuUFJFRklYX1NNQUxMX0JMT0NLKi8gKyB2WzBdICsgKCh2Lmxlbmd0aCAtIDEpPDw0KSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSgzMiwgMHgwOCAvKmNzdC5DT0RFX0JMT0NLMzIqLywgKCh2Lmxlbmd0aC0xKSA8PCAxMCkgfCB2WzBdKTtcbiAgICAgICAgd3JpdGVyLnNpemVfMzIgKz0gdi5sZW5ndGg7XG4gICAgICAgIHdyaXRlci5zaXplXzY0ICs9IHYubGVuZ3RoO1xuICAgICAgICBpZiAodi5sZW5ndGggPiAxKSBzdGFjay5wdXNoICh2LCAxKTtcbiAgICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9ieXRlcyh2KSkge1xuICAgICAgICBpZighKGNhbWxfaXNfbWxfYnl0ZXMoY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiKSkpKSB7XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIm91dHB1dF92YWx1ZTogW0J5dGVzLnRdIGNhbm5vdCBzYWZlbHkgYmUgbWFyc2hhbGVkIHdpdGggWy0tZW5hYmxlIHVzZS1qcy1zdHJpbmddXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtZW1vKHYpKSByZXR1cm47XG4gICAgICAgIHZhciBsZW4gPSBjYW1sX21sX2J5dGVzX2xlbmd0aCh2KTtcbiAgICAgICAgaWYgKGxlbiA8IDB4MjApXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDIwIC8qY3N0LlBSRUZJWF9TTUFMTF9TVFJJTkcqLyArIGxlbik7XG4gICAgICAgIGVsc2UgaWYgKGxlbiA8IDB4MTAwKVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlICg4LCAweDA5Lypjc3QuQ09ERV9TVFJJTkc4Ki8sIGxlbik7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSAoMzIsIDB4MEEgLypjc3QuQ09ERV9TVFJJTkczMiovLCBsZW4pO1xuICAgICAgICBmb3IgKHZhciBpID0gMDtpIDwgbGVuO2krKylcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIGNhbWxfYnl0ZXNfdW5zYWZlX2dldCh2LGkpKTtcbiAgICAgICAgd3JpdGVyLnNpemVfMzIgKz0gMSArICgoKGxlbiArIDQpIC8gNCl8MCk7XG4gICAgICAgIHdyaXRlci5zaXplXzY0ICs9IDEgKyAoKChsZW4gKyA4KSAvIDgpfDApO1xuICAgICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyh2KSkge1xuICAgICAgICB2YXIgbGVuID0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHYpO1xuICAgICAgICBpZiAobGVuIDwgMHgyMClcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MjAgLypjc3QuUFJFRklYX1NNQUxMX1NUUklORyovICsgbGVuKTtcbiAgICAgICAgZWxzZSBpZiAobGVuIDwgMHgxMDApXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUgKDgsIDB4MDkvKmNzdC5DT0RFX1NUUklORzgqLywgbGVuKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlICgzMiwgMHgwQSAvKmNzdC5DT0RFX1NUUklORzMyKi8sIGxlbik7XG4gICAgICAgIGZvciAodmFyIGkgPSAwO2kgPCBsZW47aSsrKVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldCh2LGkpKTtcbiAgICAgICAgd3JpdGVyLnNpemVfMzIgKz0gMSArICgoKGxlbiArIDQpIC8gNCl8MCk7XG4gICAgICAgIHdyaXRlci5zaXplXzY0ICs9IDEgKyAoKChsZW4gKyA4KSAvIDgpfDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHYgIT0gKHZ8MCkpe1xuICAgICAgICAgIHZhciB0eXBlX29mX3YgPSB0eXBlb2YgdjtcbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIElmIGEgZmxvYXQgaGFwcGVucyB0byBiZSBhbiBpbnRlZ2VyIGl0IGlzIHNlcmlhbGl6ZWQgYXMgYW4gaW50ZWdlclxuICAgICAgICAgIC8vIChKc19vZl9vY2FtbCBjYW5ub3QgdGVsbCB3aGV0aGVyIHRoZSB0eXBlIG9mIGFuIGludGVnZXIgbnVtYmVyIGlzXG4gICAgICAgICAgLy8gZmxvYXQgb3IgaW50ZWdlci4pIFRoaXMgY2FuIHJlc3VsdCBpbiB1bmV4cGVjdGVkIGNyYXNoZXMgd2hlblxuICAgICAgICAgIC8vIHVubWFyc2hhbGxpbmcgdXNpbmcgdGhlIHN0YW5kYXJkIHJ1bnRpbWUuIEl0IHNlZW1zIGJldHRlciB0b1xuICAgICAgICAgIC8vIHN5c3RlbWF0aWNhbGx5IGZhaWwgb24gbWFyc2hhbGxpbmcuXG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyAgICAgICAgICBpZih0eXBlX29mX3YgIT0gXCJudW1iZXJcIilcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwib3V0cHV0X3ZhbHVlOiBhYnN0cmFjdCB2YWx1ZSAoXCIrdHlwZV9vZl92K1wiKVwiKTtcbiAgICAgICAgICAvLyAgICAgICAgICB2YXIgdCA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KHYpKTtcbiAgICAgICAgICAvLyAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MEIgLypjc3QuQ09ERV9ET1VCTEVfQklHKi8pO1xuICAgICAgICAgIC8vICAgICAgICAgIGZvcih2YXIgaSA9IDA7IGk8ODsgaSsrKXt3cml0ZXIud3JpdGUoOCx0W2ldKX1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2ID49IDAgJiYgdiA8IDB4NDApIHtcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDBYNDAgLypjc3QuUFJFRklYX1NNQUxMX0lOVCovICsgdik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHYgPj0gLSgxIDw8IDcpICYmIHYgPCAoMSA8PCA3KSlcbiAgICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlKDgsIDB4MDAgLypjc3QuQ09ERV9JTlQ4Ki8sIHYpO1xuICAgICAgICAgIGVsc2UgaWYgKHYgPj0gLSgxIDw8IDE1KSAmJiB2IDwgKDEgPDwgMTUpKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUoMTYsIDB4MDEgLypjc3QuQ09ERV9JTlQxNiovLCB2KTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSgzMiwgMHgwMiAvKmNzdC5DT0RFX0lOVDMyKi8sIHYpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGV4dGVybl9yZWMgKHYpO1xuICAgIHdoaWxlIChzdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICB2YXIgaSA9IHN0YWNrLnBvcCAoKTtcbiAgICAgIHZhciB2ID0gc3RhY2sucG9wICgpO1xuICAgICAgaWYgKGkgKyAxIDwgdi5sZW5ndGgpIHN0YWNrLnB1c2ggKHYsIGkgKyAxKTtcbiAgICAgIGV4dGVybl9yZWMgKHZbaV0pO1xuICAgIH1cbiAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgd3JpdGVyLm9ial9jb3VudGVyID0gaW50ZXJuX29ial90YWJsZS5vYmpzLmxlbmd0aDtcbiAgICB3cml0ZXIuZmluYWxpemUoKTtcbiAgICByZXR1cm4gd3JpdGVyLmNodW5rO1xuICB9XG59ICgpO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmcgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9vdXRwdXRfdmFsLCBjYW1sX3N0cmluZ19vZl9hcnJheVxuZnVuY3Rpb24gY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nICh2LCBmbGFncykge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkgKGNhbWxfb3V0cHV0X3ZhbCAodiwgZmxhZ3MpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXMgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9vdXRwdXRfdmFsLCBjYW1sX2J5dGVzX29mX2FycmF5XG5mdW5jdGlvbiBjYW1sX291dHB1dF92YWx1ZV90b19ieXRlcyAodiwgZmxhZ3MpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfb2ZfYXJyYXkgKGNhbWxfb3V0cHV0X3ZhbCAodiwgZmxhZ3MpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnVmZmVyXG4vL1JlcXVpcmVzOiBjYW1sX291dHB1dF92YWwsIGNhbWxfZmFpbHdpdGgsIGNhbWxfYmxpdF9ieXRlc1xuZnVuY3Rpb24gY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnVmZmVyIChzLCBvZnMsIGxlbiwgdiwgZmxhZ3MpIHtcbiAgdmFyIHQgPSBjYW1sX291dHB1dF92YWwgKHYsIGZsYWdzKTtcbiAgaWYgKHQubGVuZ3RoID4gbGVuKSBjYW1sX2ZhaWx3aXRoIChcIk1hcnNoYWwudG9fYnVmZmVyOiBidWZmZXIgb3ZlcmZsb3dcIik7XG4gIGNhbWxfYmxpdF9ieXRlcyh0LCAwLCBzLCBvZnMsIHQubGVuZ3RoKTtcbiAgcmV0dXJuIDA7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZFxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIElvXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2Zkc1xudmFyIGNhbWxfc3lzX2ZkcyA9IG5ldyBBcnJheSgzKTtcblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY2xvc2Vcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX2Zkc1xuZnVuY3Rpb24gY2FtbF9zeXNfY2xvc2UoZmQpIHtcbiAgdmFyIGZpbGUgPSBjYW1sX3N5c19mZHNbZmRdO1xuICBpZihmaWxlKSBmaWxlLmNsb3NlKCk7XG4gIGRlbGV0ZSBjYW1sX3N5c19mZHNbZmRdO1xuICByZXR1cm4gMDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19vcGVuXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuLy9SZXF1aXJlczogTWxGYWtlRmRfb3V0XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZVxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuLy9SZXF1aXJlczogZnNfbm9kZV9zdXBwb3J0ZWRcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX2Zkc1xuLy9SZXF1aXJlczogY2FtbF9zeXNfb3Blbl9mb3Jfbm9kZVxuZnVuY3Rpb24gY2FtbF9zeXNfb3Blbl9pbnRlcm5hbChmaWxlLGlkeCkge1xuICBpZihpZHggPT0gdW5kZWZpbmVkKXtcbiAgICBpZHggPSBjYW1sX3N5c19mZHMubGVuZ3RoO1xuICB9XG4gIGNhbWxfc3lzX2Zkc1tpZHhdID0gZmlsZTtcbiAgcmV0dXJuIGlkeCB8IDA7XG59XG5mdW5jdGlvbiBjYW1sX3N5c19vcGVuIChuYW1lLCBmbGFncywgX3Blcm1zKSB7XG4gIHZhciBmID0ge307XG4gIHdoaWxlKGZsYWdzKXtcbiAgICBzd2l0Y2goZmxhZ3NbMV0pe1xuICAgIGNhc2UgMDogZi5yZG9ubHkgPSAxO2JyZWFrO1xuICAgIGNhc2UgMTogZi53cm9ubHkgPSAxO2JyZWFrO1xuICAgIGNhc2UgMjogZi5hcHBlbmQgPSAxO2JyZWFrO1xuICAgIGNhc2UgMzogZi5jcmVhdGUgPSAxO2JyZWFrO1xuICAgIGNhc2UgNDogZi50cnVuY2F0ZSA9IDE7YnJlYWs7XG4gICAgY2FzZSA1OiBmLmV4Y2wgPSAxOyBicmVhaztcbiAgICBjYXNlIDY6IGYuYmluYXJ5ID0gMTticmVhaztcbiAgICBjYXNlIDc6IGYudGV4dCA9IDE7YnJlYWs7XG4gICAgY2FzZSA4OiBmLm5vbmJsb2NrID0gMTticmVhaztcbiAgICB9XG4gICAgZmxhZ3M9ZmxhZ3NbMl07XG4gIH1cbiAgaWYoZi5yZG9ubHkgJiYgZi53cm9ubHkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl9yZG9ubHkgYW5kIE9wZW5fd3Jvbmx5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgaWYoZi50ZXh0ICYmIGYuYmluYXJ5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGNhbWxfanNieXRlc19vZl9zdHJpbmcobmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fdGV4dCBhbmQgT3Blbl9iaW5hcnkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICB2YXIgZmlsZSA9IHJvb3QuZGV2aWNlLm9wZW4ocm9vdC5yZXN0LGYpO1xuICByZXR1cm4gY2FtbF9zeXNfb3Blbl9pbnRlcm5hbCAoZmlsZSwgdW5kZWZpbmVkKTtcbn1cbihmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIGZpbGUoZmQsIGZsYWdzKSB7XG4gICAgaWYoZnNfbm9kZV9zdXBwb3J0ZWQoKSkge1xuICAgICAgcmV0dXJuIGNhbWxfc3lzX29wZW5fZm9yX25vZGUoZmQsIGZsYWdzKTtcbiAgICB9XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIG5ldyBNbEZha2VGZF9vdXQoZmQsIGZsYWdzKVxuICB9XG4gIGNhbWxfc3lzX29wZW5faW50ZXJuYWwoZmlsZSgwLHtyZG9ubHk6MSxhbHRuYW1lOlwiL2Rldi9zdGRpblwiLGlzQ2hhcmFjdGVyRGV2aWNlOnRydWV9KSwgMCk7XG4gIGNhbWxfc3lzX29wZW5faW50ZXJuYWwoZmlsZSgxLHtidWZmZXJlZDoyLHdyb25seToxLGlzQ2hhcmFjdGVyRGV2aWNlOnRydWV9KSwgMSk7XG4gIGNhbWxfc3lzX29wZW5faW50ZXJuYWwoZmlsZSgyLHtidWZmZXJlZDoyLHdyb25seToxLGlzQ2hhcmFjdGVyRGV2aWNlOnRydWV9KSwgMik7XG59KSgpXG5cblxuLy8gb2NhbWwgQ2hhbm5lbHNcblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX3NldF9jaGFubmVsX25hbWUoY2hhbmlkLCBuYW1lKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjaGFuLm5hbWUgPSBuYW1lO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jaGFubmVsc1xudmFyIGNhbWxfbWxfY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTtcblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRfY2hhbm5lbHNfbGlzdFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRfY2hhbm5lbHNfbGlzdCAoKSB7XG4gIHZhciBsID0gMDtcbiAgZm9yKHZhciBjID0gMDsgYyA8IGNhbWxfbWxfY2hhbm5lbHMubGVuZ3RoOyBjKyspe1xuICAgIGlmKGNhbWxfbWxfY2hhbm5lbHNbY10gJiYgY2FtbF9tbF9jaGFubmVsc1tjXS5vcGVuZWQgJiYgY2FtbF9tbF9jaGFubmVsc1tjXS5vdXQpXG4gICAgICBsPVswLGNhbWxfbWxfY2hhbm5lbHNbY10uZmQsbF07XG4gIH1cbiAgcmV0dXJuIGw7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3Jfb3V0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX3N5c19mZHNcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX3N5c19vcGVuXG5mdW5jdGlvbiBjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXQgKGZkKSB7XG4gIHZhciBmaWxlID0gY2FtbF9zeXNfZmRzW2ZkXTtcbiAgaWYoZmlsZS5mbGFncy5yZG9ubHkpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiZmQgXCIrIGZkICsgXCIgaXMgcmVhZG9ubHlcIik7XG4gIHZhciBidWZmZXJlZCA9IChmaWxlLmZsYWdzLmJ1ZmZlcmVkICE9PSB1bmRlZmluZWQpID8gZmlsZS5mbGFncy5idWZmZXJlZCA6IDE7XG4gIHZhciBjaGFubmVsID0ge1xuICAgIGZpbGU6ZmlsZSxcbiAgICBvZmZzZXQ6ZmlsZS5mbGFncy5hcHBlbmQ/ZmlsZS5sZW5ndGgoKTowLFxuICAgIGZkOmZkLFxuICAgIG9wZW5lZDp0cnVlLFxuICAgIG91dDp0cnVlLFxuICAgIGJ1ZmZlcl9jdXJyOjAsXG4gICAgYnVmZmVyOm5ldyBVaW50OEFycmF5KDY1NTM2KSxcbiAgICBidWZmZXJlZDpidWZmZXJlZFxuICB9O1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5uZWwuZmRdPWNoYW5uZWw7XG4gIHJldHVybiBjaGFubmVsLmZkO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pblxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9zeXNfZmRzXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuLy9SZXF1aXJlczogY2FtbF9zeXNfb3BlblxuZnVuY3Rpb24gY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3JfaW4gKGZkKSAge1xuICB2YXIgZmlsZSA9IGNhbWxfc3lzX2Zkc1tmZF07XG4gIGlmKGZpbGUuZmxhZ3Mud3Jvbmx5KSBjYW1sX3JhaXNlX3N5c19lcnJvcihcImZkIFwiKyBmZCArIFwiIGlzIHdyaXRlb25seVwiKTtcbiAgdmFyIHJlZmlsbCA9IG51bGw7XG4gIHZhciBjaGFubmVsID0ge1xuICAgIGZpbGU6ZmlsZSxcbiAgICBvZmZzZXQ6ZmlsZS5mbGFncy5hcHBlbmQ/ZmlsZS5sZW5ndGgoKTowLFxuICAgIGZkOmZkLFxuICAgIG9wZW5lZDp0cnVlLFxuICAgIG91dDogZmFsc2UsXG4gICAgYnVmZmVyX2N1cnI6MCxcbiAgICBidWZmZXJfbWF4OjAsXG4gICAgYnVmZmVyOm5ldyBVaW50OEFycmF5KDY1NTM2KSxcbiAgICByZWZpbGw6cmVmaWxsXG4gIH07XG4gIGNhbWxfbWxfY2hhbm5lbHNbY2hhbm5lbC5mZF09Y2hhbm5lbDtcbiAgcmV0dXJuIGNoYW5uZWwuZmQ7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9jaGFubmVsX2Rlc2NyaXB0b3Jcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbi8vQWxpYXM6IHdpbl9maWxlZGVzY3Jfb2ZfY2hhbm5lbFxuZnVuY3Rpb24gY2FtbF9jaGFubmVsX2Rlc2NyaXB0b3IoY2hhbmlkKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHJldHVybiBjaGFuLmZkO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NldF9iaW5hcnlfbW9kZVxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9zZXRfYmluYXJ5X21vZGUoY2hhbmlkLG1vZGUpe1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgY2hhbi5maWxlLmZsYWdzLnRleHQgPSAhbW9kZVxuICBjaGFuLmZpbGUuZmxhZ3MuYmluYXJ5ID0gbW9kZVxuICByZXR1cm4gMDtcbn1cblxuLy9JbnB1dCBmcm9tIGluX2NoYW5uZWxcblxuLy9Qcm92aWRlczogY2FtbF9tbF9jbG9zZV9jaGFubmVsXG4vL1JlcXVpcmVzOiBjYW1sX21sX2ZsdXNoLCBjYW1sX21sX2NoYW5uZWxzXG4vL1JlcXVpcmVzOiBjYW1sX3N5c19jbG9zZVxuZnVuY3Rpb24gY2FtbF9tbF9jbG9zZV9jaGFubmVsIChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGNoYW4ub3BlbmVkID0gZmFsc2U7XG4gIGNhbWxfc3lzX2Nsb3NlKGNoYW4uZmQpXG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NoYW5uZWxfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9jaGFubmVsX3NpemUoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2hhbi5maWxlLmxlbmd0aCgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NoYW5uZWxfc2l6ZV82NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9mbG9hdCxjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2NoYW5uZWxfc2l6ZV82NChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2Zsb2F0KGNoYW4uZmlsZS5sZW5ndGggKCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NldF9jaGFubmVsX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXQoY2hhbmlkLGYpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGNoYW4ub3V0cHV0ID0gKGZ1bmN0aW9uIChzKSB7ZihzKX0pO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfY2hhbm5lbF9yZWZpbGxcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsKGNoYW5pZCxmKSB7XG4gIGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5yZWZpbGwgPSBmO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yZWZpbGxcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfcmVmaWxsIChjaGFuKSB7XG4gIGlmKGNoYW4ucmVmaWxsICE9IG51bGwpe1xuICAgIHZhciBzdHIgPSBjaGFuLnJlZmlsbCgpO1xuICAgIHZhciBzdHJfYSA9IGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nKHN0cik7XG4gICAgaWYgKHN0cl9hLmxlbmd0aCA9PSAwKSB7XG4gICAgICBjaGFuLnJlZmlsbCA9IG51bGxcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpZihjaGFuLmJ1ZmZlci5sZW5ndGggPCBjaGFuLmJ1ZmZlcl9tYXggKyBzdHJfYS5sZW5ndGgpe1xuICAgICAgICB2YXIgYiA9IG5ldyBVaW50OEFycmF5KGNoYW4uYnVmZmVyX21heCArIHN0cl9hLmxlbmd0aCk7XG4gICAgICAgIGIuc2V0KGNoYW4uYnVmZmVyKTtcbiAgICAgICAgY2hhbi5idWZmZXIgPSBiO1xuICAgICAgfVxuICAgICAgY2hhbi5idWZmZXIuc2V0KHN0cl9hLGNoYW4uYnVmZmVyX21heCk7XG4gICAgICBjaGFuLm9mZnNldCArPSBzdHJfYS5sZW5ndGg7XG4gICAgICBjaGFuLmJ1ZmZlcl9tYXggKz0gc3RyX2EubGVuZ3RoO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgbnJlYWQgPSBjaGFuLmZpbGUucmVhZChjaGFuLm9mZnNldCwgY2hhbi5idWZmZXIsIGNoYW4uYnVmZmVyX21heCwgY2hhbi5idWZmZXIubGVuZ3RoIC0gY2hhbi5idWZmZXJfbWF4KTtcbiAgICBjaGFuLm9mZnNldCArPSBucmVhZDtcbiAgICBjaGFuLmJ1ZmZlcl9tYXggKz0gbnJlYWQ7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pbnB1dFxuLy9SZXF1aXJlczogY2FtbF9tbF9pbnB1dF9ibG9ja1xuLy9SZXF1aXJlczogY2FtbF91aW50OF9hcnJheV9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dCAoY2hhbmlkLCBiLCBpLCBsKSB7XG4gIHZhciBiYSA9IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMoYik7XG4gIHJldHVybiBjYW1sX21sX2lucHV0X2Jsb2NrKGNoYW5pZCwgYmEsIGksIGwpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRfYmxvY2tcbi8vUmVxdWlyZXM6IGNhbWxfcmVmaWxsLCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2lucHV0X2Jsb2NrIChjaGFuaWQsIGJhLCBpLCBsKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICB2YXIgbiA9IGw7XG4gIHZhciBhdmFpbCA9IGNoYW4uYnVmZmVyX21heCAtIGNoYW4uYnVmZmVyX2N1cnI7XG4gIGlmKGwgPD0gYXZhaWwpIHtcbiAgICBiYS5zZXQoY2hhbi5idWZmZXIuc3ViYXJyYXkoY2hhbi5idWZmZXJfY3VycixjaGFuLmJ1ZmZlcl9jdXJyICsgbCksIGkpO1xuICAgIGNoYW4uYnVmZmVyX2N1cnIgKz0gbDtcbiAgfVxuICBlbHNlIGlmKGF2YWlsID4gMCkge1xuICAgIGJhLnNldChjaGFuLmJ1ZmZlci5zdWJhcnJheShjaGFuLmJ1ZmZlcl9jdXJyLGNoYW4uYnVmZmVyX2N1cnIgKyBhdmFpbCksIGkpO1xuICAgIGNoYW4uYnVmZmVyX2N1cnIgKz0gYXZhaWw7XG4gICAgbiA9IGF2YWlsO1xuICB9IGVsc2Uge1xuICAgIGNoYW4uYnVmZmVyX2N1cnIgPSAwO1xuICAgIGNoYW4uYnVmZmVyX21heCA9IDA7XG4gICAgY2FtbF9yZWZpbGwoY2hhbik7XG4gICAgdmFyIGF2YWlsID0gY2hhbi5idWZmZXJfbWF4IC0gY2hhbi5idWZmZXJfY3VycjtcbiAgICBpZihuID4gYXZhaWwpIG4gPSBhdmFpbDtcbiAgICBiYS5zZXQoY2hhbi5idWZmZXIuc3ViYXJyYXkoY2hhbi5idWZmZXJfY3VycixjaGFuLmJ1ZmZlcl9jdXJyICsgbiksIGkpO1xuICAgIGNoYW4uYnVmZmVyX2N1cnIgKz0gbjtcbiAgfVxuICByZXR1cm4gbiB8IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5wdXRfdmFsdWVcbi8vUmVxdWlyZXM6IGNhbWxfbWFyc2hhbF9kYXRhX3NpemUsIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlcywgY2FtbF9jcmVhdGVfYnl0ZXMsIGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfYnl0ZXNfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfcmVmaWxsLCBjYW1sX2ZhaWx3aXRoLCBjYW1sX3JhaXNlX2VuZF9vZl9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemVcbmZ1bmN0aW9uIGNhbWxfaW5wdXRfdmFsdWUgKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIGhlYWRlciA9IG5ldyBVaW50OEFycmF5KGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZSk7XG4gIGZ1bmN0aW9uIGJsb2NrKGJ1ZmZlciwgb2Zmc2V0LCBuKSB7XG4gICAgdmFyIHIgPSAwO1xuICAgIHdoaWxlKHIgPCBuKXtcbiAgICAgIGlmKGNoYW4uYnVmZmVyX2N1cnIgPj0gY2hhbi5idWZmZXJfbWF4KXtcbiAgICAgICAgY2hhbi5idWZmZXJfY3VyciA9IDA7XG4gICAgICAgIGNoYW4uYnVmZmVyX21heCA9IDA7XG4gICAgICAgIGNhbWxfcmVmaWxsKGNoYW4pO1xuICAgICAgfVxuICAgICAgaWYgKGNoYW4uYnVmZmVyX2N1cnIgPj0gY2hhbi5idWZmZXJfbWF4KVxuICAgICAgICBicmVhaztcbiAgICAgIGJ1ZmZlcltvZmZzZXQrcl0gPSBjaGFuLmJ1ZmZlcltjaGFuLmJ1ZmZlcl9jdXJyXTtcbiAgICAgIGNoYW4uYnVmZmVyX2N1cnIrKztcbiAgICAgIHIrKztcbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH1cbiAgdmFyIHIgPSBibG9jayhoZWFkZXIsIDAsIGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZSk7XG4gIGlmKHIgPT0gMClcbiAgICBjYW1sX3JhaXNlX2VuZF9vZl9maWxlKCk7XG4gIGVsc2UgaWYgKHIgPCBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUpXG4gICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiB0cnVuY2F0ZWQgb2JqZWN0XCIpO1xuICB2YXIgbGVuID0gY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSAoY2FtbF9ieXRlc19vZl9hcnJheShoZWFkZXIpLCAwKTtcbiAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KGxlbiArIGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZSk7XG4gIGJ1Zi5zZXQoaGVhZGVyLDApO1xuICB2YXIgciA9IGJsb2NrKGJ1ZiwgY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplLCBsZW4pXG4gIGlmKHIgPCBsZW4pXG4gICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiB0cnVuY2F0ZWQgb2JqZWN0IFwiICsgciArIFwiICBcIiArIGxlbik7XG4gIHZhciBvZmZzZXQgPSBbMF07XG4gIHZhciByZXMgPSBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMoY2FtbF9ieXRlc19vZl9hcnJheShidWYpLCBvZmZzZXQpO1xuICBjaGFuLm9mZnNldCA9IGNoYW4ub2Zmc2V0ICsgb2Zmc2V0WzBdO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlX3RvX291dHNpZGVfaGVhcFxuLy9SZXF1aXJlczogY2FtbF9pbnB1dF92YWx1ZVxuZnVuY3Rpb24gY2FtbF9pbnB1dF92YWx1ZV90b19vdXRzaWRlX2hlYXAoYykge1xuICByZXR1cm4gY2FtbF9pbnB1dF92YWx1ZShjKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pbnB1dF9jaGFyXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlLCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX3JlZmlsbFxuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dF9jaGFyIChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGlmKGNoYW4uYnVmZmVyX2N1cnIgPj0gY2hhbi5idWZmZXJfbWF4KXtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyID0gMDtcbiAgICBjaGFuLmJ1ZmZlcl9tYXggPSAwO1xuICAgIGNhbWxfcmVmaWxsKGNoYW4pO1xuICB9XG4gIGlmIChjaGFuLmJ1ZmZlcl9jdXJyID49IGNoYW4uYnVmZmVyX21heClcbiAgICBjYW1sX3JhaXNlX2VuZF9vZl9maWxlKCk7XG4gIHZhciByZXMgPSBjaGFuLmJ1ZmZlcltjaGFuLmJ1ZmZlcl9jdXJyXTtcbiAgY2hhbi5idWZmZXJfY3VycisrO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0X2ludFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9tbF9pbnB1dF9jaGFyLCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2lucHV0X2ludCAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICB2YXIgcmVzID0gMDtcbiAgZm9yKHZhciBpID0gMDsgaSA8IDQ7IGkrKyl7XG4gICAgcmVzID0gKHJlcyA8PCA4KSArIGNhbWxfbWxfaW5wdXRfY2hhcihjaGFuaWQpIHwgMDtcbiAgfVxuICByZXR1cm4gcmVzIHwgMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zZWVrX2luXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9zZWVrX2luKGNoYW5pZCwgcG9zKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZiAoY2hhbi5yZWZpbGwgIT0gbnVsbCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJJbGxlZ2FsIHNlZWtcIik7XG4gIGlmKHBvcyA+PSBjaGFuLm9mZnNldCAtIGNoYW4uYnVmZmVyX21heFxuICAgICAmJiBwb3MgPD0gY2hhbi5vZmZzZXRcbiAgICAgJiYgY2hhbi5maWxlLmZsYWdzLmJpbmFyeSkge1xuICAgIGNoYW4uYnVmZmVyX2N1cnIgPSBjaGFuLmJ1ZmZlcl9tYXggLSAoY2hhbi5vZmZzZXQgLSBwb3MpO1xuICB9IGVsc2Uge1xuICAgIGNoYW4ub2Zmc2V0ID0gcG9zO1xuICAgIGNoYW4uYnVmZmVyX2N1cnIgPSAwO1xuICAgIGNoYW4uYnVmZmVyX21heCA9IDA7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2Vla19pblxuLy9SZXF1aXJlczogY2FtbF9zZWVrX2luXG5mdW5jdGlvbiBjYW1sX21sX3NlZWtfaW4oY2hhbmlkLHBvcyl7XG4gIHJldHVybiBjYW1sX3NlZWtfaW4oY2hhbmlkLHBvcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2Vla19pbl82NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19mbG9hdCwgY2FtbF9zZWVrX2luXG5mdW5jdGlvbiBjYW1sX21sX3NlZWtfaW5fNjQoY2hhbmlkLHBvcyl7XG4gIHZhciBwb3MgPSBjYW1sX2ludDY0X3RvX2Zsb2F0KHBvcyk7XG4gIHJldHVybiBjYW1sX3NlZWtfaW4oY2hhbmlkLCBwb3MpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3Bvc19pblxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9wb3NfaW4oY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2hhbi5vZmZzZXQgLSAoY2hhbi5idWZmZXJfbWF4IC0gY2hhbi5idWZmZXJfY3VycikgfCAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3Bvc19pblxuLy9SZXF1aXJlczogY2FtbF9wb3NfaW5cbmZ1bmN0aW9uIGNhbWxfbWxfcG9zX2luKGNoYW5pZCkge1xuICByZXR1cm4gY2FtbF9wb3NfaW4oY2hhbmlkKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9wb3NfaW5fNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfZmxvYXQsIGNhbWxfcG9zX2luXG5mdW5jdGlvbiBjYW1sX21sX3Bvc19pbl82NChjaGFuaWQpIHtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfZmxvYXQoY2FtbF9wb3NfaW4oY2hhbmlkKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX3JlZmlsbFxuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmUoY2hhbmlkKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHZhciBwID0gY2hhbi5idWZmZXJfY3VycjtcbiAgZG8ge1xuICAgIGlmKHAgPj0gY2hhbi5idWZmZXJfbWF4KSB7XG4gICAgICBpZihjaGFuLmJ1ZmZlcl9jdXJyID4gMCkge1xuICAgICAgICBjaGFuLmJ1ZmZlci5zZXQoY2hhbi5idWZmZXIuc3ViYXJyYXkoY2hhbi5idWZmZXJfY3VyciksMCk7XG4gICAgICAgIHAgLT0gY2hhbi5idWZmZXJfY3VycjtcbiAgICAgICAgY2hhbi5idWZmZXJfbWF4IC09IGNoYW4uYnVmZmVyX2N1cnI7XG4gICAgICAgIGNoYW4uYnVmZmVyX2N1cnIgPSAwO1xuICAgICAgfVxuICAgICAgaWYoY2hhbi5idWZmZXJfbWF4ID49IGNoYW4uYnVmZmVyLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gLShjaGFuLmJ1ZmZlcl9tYXgpIHwgMDtcbiAgICAgIH1cbiAgICAgIHZhciBwcmV2X21heCA9IGNoYW4uYnVmZmVyX21heDtcbiAgICAgIGNhbWxfcmVmaWxsIChjaGFuKTtcbiAgICAgIGlmKHByZXZfbWF4ID09IGNoYW4uYnVmZmVyX21heCkge1xuICAgICAgICByZXR1cm4gLShjaGFuLmJ1ZmZlcl9tYXgpIHwgMDtcbiAgICAgIH1cbiAgICB9XG4gIH0gd2hpbGUgKGNoYW4uYnVmZmVyW3ArK10gIT0gMTApO1xuICByZXR1cm4gKHAgLSBjaGFuLmJ1ZmZlcl9jdXJyKSB8IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZmx1c2hcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX21sX2NoYW5uZWxzXG4vL1JlcXVpcmVzOiBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWxfZmx1c2ggKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgaWYoISBjaGFuLm9wZW5lZCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJDYW5ub3QgZmx1c2ggYSBjbG9zZWQgY2hhbm5lbFwiKTtcbiAgaWYoIWNoYW4uYnVmZmVyIHx8IGNoYW4uYnVmZmVyX2N1cnIgPT0gMCkgcmV0dXJuIDA7XG4gIGlmKGNoYW4ub3V0cHV0KSB7XG4gICAgY2hhbi5vdXRwdXQoY2FtbF9zdWJhcnJheV90b19qc2J5dGVzKGNoYW4uYnVmZmVyLCAwLCBjaGFuLmJ1ZmZlcl9jdXJyKSk7XG4gIH0gZWxzZSB7XG4gICAgY2hhbi5maWxlLndyaXRlKGNoYW4ub2Zmc2V0LCBjaGFuLmJ1ZmZlciwgMCwgY2hhbi5idWZmZXJfY3Vycik7XG4gIH1cbiAgY2hhbi5vZmZzZXQgKz0gY2hhbi5idWZmZXJfY3VycjtcbiAgY2hhbi5idWZmZXJfY3VyciA9IDA7XG4gIHJldHVybiAwO1xufVxuXG4vL291dHB1dCB0byBvdXRfY2hhbm5lbFxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dHB1dF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9mbHVzaCxjYW1sX21sX2J5dGVzX2xlbmd0aFxuLy9SZXF1aXJlczogY2FtbF9jcmVhdGVfYnl0ZXMsIGNhbWxfYmxpdF9ieXRlcywgY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfc3RyaW5nX29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX21sX291dHB1dF9ieXRlcyhjaGFuaWQsYnVmZmVyLG9mZnNldCxsZW4pIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGlmKCEgY2hhbi5vcGVuZWQpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiQ2Fubm90IG91dHB1dCB0byBhIGNsb3NlZCBjaGFubmVsXCIpO1xuICB2YXIgYnVmZmVyID0gY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhidWZmZXIpO1xuICBidWZmZXIgPSBidWZmZXIuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBsZW4pO1xuICBpZihjaGFuLmJ1ZmZlcl9jdXJyICsgYnVmZmVyLmxlbmd0aCA+IGNoYW4uYnVmZmVyLmxlbmd0aCkge1xuICAgIHZhciBiID0gbmV3IFVpbnQ4QXJyYXkoY2hhbi5idWZmZXJfY3VyciArIGJ1ZmZlci5sZW5ndGgpO1xuICAgIGIuc2V0KGNoYW4uYnVmZmVyKTtcbiAgICBjaGFuLmJ1ZmZlciA9IGJcbiAgfVxuICBzd2l0Y2goY2hhbi5idWZmZXJlZCl7XG4gIGNhc2UgMDogLy8gVW5idWZmZXJlZFxuICAgIGNoYW4uYnVmZmVyLnNldChidWZmZXIsIGNoYW4uYnVmZmVyX2N1cnIpO1xuICAgIGNoYW4uYnVmZmVyX2N1cnIgKz0gYnVmZmVyLmxlbmd0aDtcbiAgICBjYW1sX21sX2ZsdXNoIChjaGFuaWQpO1xuICAgIGJyZWFrXG4gIGNhc2UgMTogLy8gQnVmZmVyZWQgKHRoZSBkZWZhdWx0KVxuICAgIGNoYW4uYnVmZmVyLnNldChidWZmZXIsIGNoYW4uYnVmZmVyX2N1cnIpO1xuICAgIGNoYW4uYnVmZmVyX2N1cnIgKz0gYnVmZmVyLmxlbmd0aDtcbiAgICBpZihjaGFuLmJ1ZmZlcl9jdXJyID49IGNoYW4uYnVmZmVyLmxlbmd0aClcbiAgICAgIGNhbWxfbWxfZmx1c2ggKGNoYW5pZCk7XG4gICAgYnJlYWs7XG4gIGNhc2UgMjogLy8gQnVmZmVyZWQgKG9ubHkgZm9yIHN0ZG91dCBhbmQgc3RkZXJyKVxuICAgIHZhciBpZCA9IGJ1ZmZlci5sYXN0SW5kZXhPZigxMClcbiAgICBpZihpZCA8IDApIHtcbiAgICAgIGNoYW4uYnVmZmVyLnNldChidWZmZXIsIGNoYW4uYnVmZmVyX2N1cnIpO1xuICAgICAgY2hhbi5idWZmZXJfY3VyciArPSBidWZmZXIubGVuZ3RoO1xuICAgICAgaWYoY2hhbi5idWZmZXJfY3VyciA+PSBjaGFuLmJ1ZmZlci5sZW5ndGgpXG4gICAgICAgIGNhbWxfbWxfZmx1c2ggKGNoYW5pZCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2hhbi5idWZmZXIuc2V0KGJ1ZmZlci5zdWJhcnJheSgwLCBpZCArIDEpLCBjaGFuLmJ1ZmZlcl9jdXJyKTtcbiAgICAgIGNoYW4uYnVmZmVyX2N1cnIgKz0gaWQgKyAxO1xuICAgICAgY2FtbF9tbF9mbHVzaCAoY2hhbmlkKTtcbiAgICAgIGNoYW4uYnVmZmVyLnNldChidWZmZXIuc3ViYXJyYXkoaWQgKyAxKSwgY2hhbi5idWZmZXJfY3Vycik7XG4gICAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGJ1ZmZlci5sZW5ndGggLSBpZCAtIDE7XG4gICAgfVxuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9tbF9vdXRwdXRfYnl0ZXMsIGNhbWxfYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX21sX291dHB1dChjaGFuaWQsYnVmZmVyLG9mZnNldCxsZW4pe1xuICByZXR1cm4gY2FtbF9tbF9vdXRwdXRfYnl0ZXMoY2hhbmlkLGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKGJ1ZmZlciksb2Zmc2V0LGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0cHV0X2NoYXJcbi8vUmVxdWlyZXM6IGNhbWxfbWxfb3V0cHV0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX21sX291dHB1dF9jaGFyIChjaGFuaWQsYykge1xuICB2YXIgcyA9IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7XG4gIGNhbWxfbWxfb3V0cHV0KGNoYW5pZCxzLDAsMSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX291dHB1dF92YWx1ZVxuLy9SZXF1aXJlczogY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nLCBjYW1sX21sX291dHB1dCxjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfb3V0cHV0X3ZhbHVlIChjaGFuaWQsdixmbGFncykge1xuICB2YXIgcyA9IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZyh2LCBmbGFncyk7XG4gIGNhbWxfbWxfb3V0cHV0KGNoYW5pZCxzLDAsY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKTtcbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9zZWVrX291dFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9tbF9mbHVzaFxuZnVuY3Rpb24gY2FtbF9zZWVrX291dChjaGFuaWQsIHBvcyl7XG4gIGNhbWxfbWxfZmx1c2goY2hhbmlkKTtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGNoYW4ub2Zmc2V0ID0gcG9zO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZWVrX291dFxuLy9SZXF1aXJlczogY2FtbF9zZWVrX291dFxuZnVuY3Rpb24gY2FtbF9tbF9zZWVrX291dChjaGFuaWQscG9zKXtcbiAgcmV0dXJuIGNhbWxfc2Vla19vdXQoY2hhbmlkLCBwb3MpO1xufVxuLy9Qcm92aWRlczogY2FtbF9tbF9zZWVrX291dF82NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19mbG9hdCwgY2FtbF9zZWVrX291dFxuZnVuY3Rpb24gY2FtbF9tbF9zZWVrX291dF82NChjaGFuaWQscG9zKXtcbiAgdmFyIHBvcyA9IGNhbWxfaW50NjRfdG9fZmxvYXQocG9zKTtcbiAgcmV0dXJuIGNhbWxfc2Vla19vdXQoY2hhbmlkLCBwb3MpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3Bvc19vdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfbWxfZmx1c2hcbmZ1bmN0aW9uIGNhbWxfcG9zX291dChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHJldHVybiBjaGFuLm9mZnNldCArIGNoYW4uYnVmZmVyX2N1cnJcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9wb3Nfb3V0XG4vL1JlcXVpcmVzOiBjYW1sX3Bvc19vdXRcbmZ1bmN0aW9uIGNhbWxfbWxfcG9zX291dChjaGFuaWQpIHtcbiAgcmV0dXJuIGNhbWxfcG9zX291dChjaGFuaWQpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3Bvc19vdXRfNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfZmxvYXQsIGNhbWxfcG9zX291dFxuZnVuY3Rpb24gY2FtbF9tbF9wb3Nfb3V0XzY0KGNoYW5pZCkge1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9mbG9hdCAoY2FtbF9wb3Nfb3V0KGNoYW5pZCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dHB1dF9pbnRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfb3V0cHV0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9hcnJheVxuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXRfaW50IChjaGFuaWQsaSkge1xuICB2YXIgYXJyID0gWyhpPj4yNCkgJiAweEZGLChpPj4xNikgJiAweEZGLChpPj44KSAmIDB4RkYsaSAmIDB4RkYgXTtcbiAgdmFyIHMgPSBjYW1sX3N0cmluZ19vZl9hcnJheShhcnIpO1xuICBjYW1sX21sX291dHB1dChjaGFuaWQscywwLDQpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lzX2J1ZmZlcmVkXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2lzX2J1ZmZlcmVkKGNoYW5pZCkge1xuICByZXR1cm4gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdLmJ1ZmZlcmVkID8gMSA6IDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfYnVmZmVyZWRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfbWxfZmx1c2hcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2J1ZmZlcmVkKGNoYW5pZCx2KSB7XG4gIGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5idWZmZXJlZCA9IHY7XG4gIGlmKCF2KSBjYW1sX21sX2ZsdXNoKGNoYW5pZCk7XG4gIHJldHVybiAwXG59XG4iLCJcblxuLy9Qcm92aWRlczogY2FtbF9nY19taW5vclxuZnVuY3Rpb24gY2FtbF9nY19taW5vcih1bml0KXtcbiAgLy9hdmFpbGFibGUgd2l0aCBbbm9kZSAtLWV4cG9zZS1nY11cbiAgaWYodHlwZW9mIGdsb2JhbFRoaXMuZ2MgPT0gJ2Z1bmN0aW9uJykgZ2xvYmFsVGhpcy5nYyh0cnVlKTtcbiAgcmV0dXJuIDBcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfbWFqb3JcbmZ1bmN0aW9uIGNhbWxfZ2NfbWFqb3IodW5pdCl7XG4gIC8vYXZhaWxhYmxlIHdpdGggW25vZGUgLS1leHBvc2UtZ2NdXG4gIGlmKHR5cGVvZiBnbG9iYWxUaGlzLmdjID09ICdmdW5jdGlvbicpIGdsb2JhbFRoaXMuZ2MoKTtcbiAgcmV0dXJuIDBcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfZnVsbF9tYWpvclxuZnVuY3Rpb24gY2FtbF9nY19mdWxsX21ham9yKHVuaXQpe1xuICAvL2F2YWlsYWJsZSB3aXRoIFtub2RlIC0tZXhwb3NlLWdjXVxuICBpZih0eXBlb2YgZ2xvYmFsVGhpcy5nYyA9PSAnZnVuY3Rpb24nKSBnbG9iYWxUaGlzLmdjKCk7XG4gIHJldHVybiAwXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2djX2NvbXBhY3Rpb25cbmZ1bmN0aW9uIGNhbWxfZ2NfY29tcGFjdGlvbigpeyByZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfY291bnRlcnNcbmZ1bmN0aW9uIGNhbWxfZ2NfY291bnRlcnMoKSB7IHJldHVybiBbMjU0LDAsMCwwXSB9XG4vL1Byb3ZpZGVzOiBjYW1sX2djX3F1aWNrX3N0YXRcbmZ1bmN0aW9uIGNhbWxfZ2NfcXVpY2tfc3RhdCgpe1xuICByZXR1cm4gWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ2Nfc3RhdFxuZnVuY3Rpb24gY2FtbF9nY19zdGF0KCkge1xuICByZXR1cm4gWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9nY19zZXRcbmZ1bmN0aW9uIGNhbWxfZ2Nfc2V0KF9jb250cm9sKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX2dldFxuZnVuY3Rpb24gY2FtbF9nY19nZXQoKXtcbiAgcmV0dXJuIFswLDAsMCwwLDAsMCwwLDAsMF1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9tZW1wcm9mX3NldFxuZnVuY3Rpb24gY2FtbF9tZW1wcm9mX3NldChfY29udHJvbCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9maW5hbF9yZWdpc3RlciBjb25zdFxuZnVuY3Rpb24gY2FtbF9maW5hbF9yZWdpc3RlciAoKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmluYWxfcmVnaXN0ZXJfY2FsbGVkX3dpdGhvdXRfdmFsdWVcbnZhciBhbGxfZmluYWxpemVycyA9IG5ldyBnbG9iYWxUaGlzLlNldCgpXG5mdW5jdGlvbiBjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlIChjYiwgYSkge1xuICBpZihnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5ICYmIGEgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICB2YXIgeCA9IG5ldyBnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uICh4KXthbGxfZmluYWxpemVycy5kZWxldGUoeCk7IGNiKDApOyByZXR1cm47fSk7XG4gICAgeC5yZWdpc3RlcihhLHgpO1xuICAgIGFsbF9maW5hbGl6ZXJzLmFkZCh4KTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9maW5hbF9yZWxlYXNlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ZpbmFsX3JlbGVhc2UgKCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21lbXByb2Zfc3RhcnRcbmZ1bmN0aW9uIGNhbWxfbWVtcHJvZl9zdGFydChyYXRlLHN0YWNrX3NpemUsdHJhY2tlcil7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21lbXByb2Zfc3RvcFxuZnVuY3Rpb24gY2FtbF9tZW1wcm9mX3N0b3AodW5pdCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ldmVudGxvZ19yZXN1bWVcbmZ1bmN0aW9uIGNhbWxfZXZlbnRsb2dfcmVzdW1lKHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9ldmVudGxvZ19wYXVzZVxuZnVuY3Rpb24gY2FtbF9ldmVudGxvZ19wYXVzZSh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfaHVnZV9mYWxsYmFja19jb3VudFxuZnVuY3Rpb24gY2FtbF9nY19odWdlX2ZhbGxiYWNrX2NvdW50KHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nY19tYWpvcl9zbGljZVxuZnVuY3Rpb24gY2FtbF9nY19tYWpvcl9zbGljZSh3b3JrKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfbWlub3Jfd29yZHNcbmZ1bmN0aW9uIGNhbWxfZ2NfbWlub3Jfd29yZHModW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9taW5vcl9mcmVlXG5mdW5jdGlvbiBjYW1sX2dldF9taW5vcl9mcmVlKHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfbWFqb3JfYnVja2V0XG5mdW5jdGlvbiBjYW1sX2dldF9tYWpvcl9idWNrZXQobikgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9tYWpvcl9jcmVkaXRcbmZ1bmN0aW9uIGNhbWxfZ2V0X21ham9yX2NyZWRpdChuKSB7IHJldHVybiAwOyB9XG4iLCIvL0ltcG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3BldGVyb2xzb24vQmlnSW50ZWdlci5qcyM0ZTk5YjE1Yjc5NTEzMzhmMTY0NzI4Mzc3YzkwNmNhYWU1YTc4MjAyXG5cbi8vUHJvdmlkZXM6IGJpZ0ludCBjb25zdFxudmFyIGJpZ0ludCA9IChmdW5jdGlvbiAodW5kZWZpbmVkKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgICB2YXIgQkFTRSA9IDFlNyxcbiAgICAgICAgTE9HX0JBU0UgPSA3LFxuICAgICAgICBNQVhfSU5UID0gOTAwNzE5OTI1NDc0MDk5MixcbiAgICAgICAgTUFYX0lOVF9BUlIgPSBzbWFsbFRvQXJyYXkoTUFYX0lOVCksXG4gICAgICAgIERFRkFVTFRfQUxQSEFCRVQgPSBcIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5elwiO1xuXG4gICAgdmFyIEJpZ0ludCA9IGpvb19nbG9iYWxfb2JqZWN0LkJpZ0ludDtcblxuICAgIHZhciBzdXBwb3J0c05hdGl2ZUJpZ0ludCA9IHR5cGVvZiBCaWdJbnQgPT09IFwiZnVuY3Rpb25cIjtcblxuICAgIGZ1bmN0aW9uIEludGVnZXIodiwgcmFkaXgsIGFscGhhYmV0LCBjYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdiA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIEludGVnZXJbMF07XG4gICAgICAgIGlmICh0eXBlb2YgcmFkaXggIT09IFwidW5kZWZpbmVkXCIpIHJldHVybiArcmFkaXggPT09IDEwICYmICFhbHBoYWJldCA/IHBhcnNlVmFsdWUodikgOiBwYXJzZUJhc2UodiwgcmFkaXgsIGFscGhhYmV0LCBjYXNlU2Vuc2l0aXZlKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlVmFsdWUodik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gQmlnSW50ZWdlcih2YWx1ZSwgc2lnbikge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2lnbiA9IHNpZ247XG4gICAgICAgIHRoaXMuaXNTbWFsbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhbWxfY3VzdG9tID0gJ196JztcbiAgICB9XG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEludGVnZXIucHJvdG90eXBlKTtcblxuICAgIGZ1bmN0aW9uIFNtYWxsSW50ZWdlcih2YWx1ZSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2lnbiA9IHZhbHVlIDwgMDtcbiAgICAgICAgdGhpcy5pc1NtYWxsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jYW1sX2N1c3RvbSA9ICdfeic7XG4gICAgfVxuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEludGVnZXIucHJvdG90eXBlKTtcblxuICAgIGZ1bmN0aW9uIE5hdGl2ZUJpZ0ludCh2YWx1ZSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2FtbF9jdXN0b20gPSAnX3onO1xuICAgIH1cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJbnRlZ2VyLnByb3RvdHlwZSk7XG5cbiAgICBmdW5jdGlvbiBpc1ByZWNpc2Uobikge1xuICAgICAgICByZXR1cm4gLU1BWF9JTlQgPCBuICYmIG4gPCBNQVhfSU5UO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNtYWxsVG9BcnJheShuKSB7IC8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zIGRvZXNuJ3QgcmVmZXJlbmNlIEJBU0UsIG5lZWQgdG8gY2hhbmdlIHRoaXMgZnVuY3Rpb24gaWYgQkFTRSBjaGFuZ2VzXG4gICAgICAgIGlmIChuIDwgMWU3KVxuICAgICAgICAgICAgcmV0dXJuIFtuXTtcbiAgICAgICAgaWYgKG4gPCAxZTE0KVxuICAgICAgICAgICAgcmV0dXJuIFtuICUgMWU3LCBNYXRoLmZsb29yKG4gLyAxZTcpXTtcbiAgICAgICAgcmV0dXJuIFtuICUgMWU3LCBNYXRoLmZsb29yKG4gLyAxZTcpICUgMWU3LCBNYXRoLmZsb29yKG4gLyAxZTE0KV07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXJyYXlUb1NtYWxsKGFycikgeyAvLyBJZiBCQVNFIGNoYW5nZXMgdGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBjaGFuZ2VcbiAgICAgICAgdHJpbShhcnIpO1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJyLmxlbmd0aDtcbiAgICAgICAgaWYgKGxlbmd0aCA8IDQgJiYgY29tcGFyZUFicyhhcnIsIE1BWF9JTlRfQVJSKSA8IDApIHtcbiAgICAgICAgICAgIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICBjYXNlIDE6IHJldHVybiBhcnJbMF07XG4gICAgICAgICAgICAgICAgY2FzZSAyOiByZXR1cm4gYXJyWzBdICsgYXJyWzFdICogQkFTRTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gYXJyWzBdICsgKGFyclsxXSArIGFyclsyXSAqIEJBU0UpICogQkFTRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXJyO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyaW0odikge1xuICAgICAgICB2YXIgaSA9IHYubGVuZ3RoO1xuICAgICAgICB3aGlsZSAodlstLWldID09PSAwKTtcbiAgICAgICAgdi5sZW5ndGggPSBpICsgMTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVBcnJheShsZW5ndGgpIHsgLy8gZnVuY3Rpb24gc2hhbWVsZXNzbHkgc3RvbGVuIGZyb20gWWFmZmxlJ3MgbGlicmFyeSBodHRwczovL2dpdGh1Yi5jb20vWWFmZmxlL0JpZ0ludGVnZXJcbiAgICAgICAgdmFyIHggPSBuZXcgQXJyYXkobGVuZ3RoKTtcbiAgICAgICAgdmFyIGkgPSAtMTtcbiAgICAgICAgd2hpbGUgKCsraSA8IGxlbmd0aCkge1xuICAgICAgICAgICAgeFtpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJ1bmNhdGUobikge1xuICAgICAgICBpZiAobiA+IDApIHJldHVybiBNYXRoLmZsb29yKG4pO1xuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKG4pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZChhLCBiKSB7IC8vIGFzc3VtZXMgYSBhbmQgYiBhcmUgYXJyYXlzIHdpdGggYS5sZW5ndGggPj0gYi5sZW5ndGhcbiAgICAgICAgdmFyIGxfYSA9IGEubGVuZ3RoLFxuICAgICAgICAgICAgbF9iID0gYi5sZW5ndGgsXG4gICAgICAgICAgICByID0gbmV3IEFycmF5KGxfYSksXG4gICAgICAgICAgICBjYXJyeSA9IDAsXG4gICAgICAgICAgICBiYXNlID0gQkFTRSxcbiAgICAgICAgICAgIHN1bSwgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxfYjsgaSsrKSB7XG4gICAgICAgICAgICBzdW0gPSBhW2ldICsgYltpXSArIGNhcnJ5O1xuICAgICAgICAgICAgY2FycnkgPSBzdW0gPj0gYmFzZSA/IDEgOiAwO1xuICAgICAgICAgICAgcltpXSA9IHN1bSAtIGNhcnJ5ICogYmFzZTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaSA8IGxfYSkge1xuICAgICAgICAgICAgc3VtID0gYVtpXSArIGNhcnJ5O1xuICAgICAgICAgICAgY2FycnkgPSBzdW0gPT09IGJhc2UgPyAxIDogMDtcbiAgICAgICAgICAgIHJbaSsrXSA9IHN1bSAtIGNhcnJ5ICogYmFzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FycnkgPiAwKSByLnB1c2goY2FycnkpO1xuICAgICAgICByZXR1cm4gcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRBbnkoYSwgYikge1xuICAgICAgICBpZiAoYS5sZW5ndGggPj0gYi5sZW5ndGgpIHJldHVybiBhZGQoYSwgYik7XG4gICAgICAgIHJldHVybiBhZGQoYiwgYSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkU21hbGwoYSwgY2FycnkpIHsgLy8gYXNzdW1lcyBhIGlzIGFycmF5LCBjYXJyeSBpcyBudW1iZXIgd2l0aCAwIDw9IGNhcnJ5IDwgTUFYX0lOVFxuICAgICAgICB2YXIgbCA9IGEubGVuZ3RoLFxuICAgICAgICAgICAgciA9IG5ldyBBcnJheShsKSxcbiAgICAgICAgICAgIGJhc2UgPSBCQVNFLFxuICAgICAgICAgICAgc3VtLCBpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICBzdW0gPSBhW2ldIC0gYmFzZSArIGNhcnJ5O1xuICAgICAgICAgICAgY2FycnkgPSBNYXRoLmZsb29yKHN1bSAvIGJhc2UpO1xuICAgICAgICAgICAgcltpXSA9IHN1bSAtIGNhcnJ5ICogYmFzZTtcbiAgICAgICAgICAgIGNhcnJ5ICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGNhcnJ5ID4gMCkge1xuICAgICAgICAgICAgcltpKytdID0gY2FycnkgJSBiYXNlO1xuICAgICAgICAgICAgY2FycnkgPSBNYXRoLmZsb29yKGNhcnJ5IC8gYmFzZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpO1xuICAgICAgICBpZiAodGhpcy5zaWduICE9PSBuLnNpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN1YnRyYWN0KG4ubmVnYXRlKCkpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBhID0gdGhpcy52YWx1ZSwgYiA9IG4udmFsdWU7XG4gICAgICAgIGlmIChuLmlzU21hbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihhZGRTbWFsbChhLCBNYXRoLmFicyhiKSksIHRoaXMuc2lnbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKGFkZEFueShhLCBiKSwgdGhpcy5zaWduKTtcbiAgICB9O1xuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnBsdXMgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hZGQ7XG5cbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KTtcbiAgICAgICAgdmFyIGEgPSB0aGlzLnZhbHVlO1xuICAgICAgICBpZiAoYSA8IDAgIT09IG4uc2lnbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3VidHJhY3Qobi5uZWdhdGUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGIgPSBuLnZhbHVlO1xuICAgICAgICBpZiAobi5pc1NtYWxsKSB7XG4gICAgICAgICAgICBpZiAoaXNQcmVjaXNlKGEgKyBiKSkgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIoYSArIGIpO1xuICAgICAgICAgICAgYiA9IHNtYWxsVG9BcnJheShNYXRoLmFicyhiKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKGFkZFNtYWxsKGIsIE1hdGguYWJzKGEpKSwgYSA8IDApO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5wbHVzID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5hZGQ7XG5cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KHRoaXMudmFsdWUgKyBwYXJzZVZhbHVlKHYpLnZhbHVlKTtcbiAgICB9XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5wbHVzID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5hZGQ7XG5cbiAgICBmdW5jdGlvbiBzdWJ0cmFjdChhLCBiKSB7IC8vIGFzc3VtZXMgYSBhbmQgYiBhcmUgYXJyYXlzIHdpdGggYSA+PSBiXG4gICAgICAgIHZhciBhX2wgPSBhLmxlbmd0aCxcbiAgICAgICAgICAgIGJfbCA9IGIubGVuZ3RoLFxuICAgICAgICAgICAgciA9IG5ldyBBcnJheShhX2wpLFxuICAgICAgICAgICAgYm9ycm93ID0gMCxcbiAgICAgICAgICAgIGJhc2UgPSBCQVNFLFxuICAgICAgICAgICAgaSwgZGlmZmVyZW5jZTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGJfbDsgaSsrKSB7XG4gICAgICAgICAgICBkaWZmZXJlbmNlID0gYVtpXSAtIGJvcnJvdyAtIGJbaV07XG4gICAgICAgICAgICBpZiAoZGlmZmVyZW5jZSA8IDApIHtcbiAgICAgICAgICAgICAgICBkaWZmZXJlbmNlICs9IGJhc2U7XG4gICAgICAgICAgICAgICAgYm9ycm93ID0gMTtcbiAgICAgICAgICAgIH0gZWxzZSBib3Jyb3cgPSAwO1xuICAgICAgICAgICAgcltpXSA9IGRpZmZlcmVuY2U7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gYl9sOyBpIDwgYV9sOyBpKyspIHtcbiAgICAgICAgICAgIGRpZmZlcmVuY2UgPSBhW2ldIC0gYm9ycm93O1xuICAgICAgICAgICAgaWYgKGRpZmZlcmVuY2UgPCAwKSBkaWZmZXJlbmNlICs9IGJhc2U7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByW2krK10gPSBkaWZmZXJlbmNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcltpXSA9IGRpZmZlcmVuY2U7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICg7IGkgPCBhX2w7IGkrKykge1xuICAgICAgICAgICAgcltpXSA9IGFbaV07XG4gICAgICAgIH1cbiAgICAgICAgdHJpbShyKTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3VidHJhY3RBbnkoYSwgYiwgc2lnbikge1xuICAgICAgICB2YXIgdmFsdWU7XG4gICAgICAgIGlmIChjb21wYXJlQWJzKGEsIGIpID49IDApIHtcbiAgICAgICAgICAgIHZhbHVlID0gc3VidHJhY3QoYSwgYik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHN1YnRyYWN0KGIsIGEpO1xuICAgICAgICAgICAgc2lnbiA9ICFzaWduO1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlID0gYXJyYXlUb1NtYWxsKHZhbHVlKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHNpZ24pIHZhbHVlID0gLXZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcih2YWx1ZSwgc2lnbik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3VidHJhY3RTbWFsbChhLCBiLCBzaWduKSB7IC8vIGFzc3VtZXMgYSBpcyBhcnJheSwgYiBpcyBudW1iZXIgd2l0aCAwIDw9IGIgPCBNQVhfSU5UXG4gICAgICAgIHZhciBsID0gYS5sZW5ndGgsXG4gICAgICAgICAgICByID0gbmV3IEFycmF5KGwpLFxuICAgICAgICAgICAgY2FycnkgPSAtYixcbiAgICAgICAgICAgIGJhc2UgPSBCQVNFLFxuICAgICAgICAgICAgaSwgZGlmZmVyZW5jZTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgZGlmZmVyZW5jZSA9IGFbaV0gKyBjYXJyeTtcbiAgICAgICAgICAgIGNhcnJ5ID0gTWF0aC5mbG9vcihkaWZmZXJlbmNlIC8gYmFzZSk7XG4gICAgICAgICAgICBkaWZmZXJlbmNlICU9IGJhc2U7XG4gICAgICAgICAgICByW2ldID0gZGlmZmVyZW5jZSA8IDAgPyBkaWZmZXJlbmNlICsgYmFzZSA6IGRpZmZlcmVuY2U7XG4gICAgICAgIH1cbiAgICAgICAgciA9IGFycmF5VG9TbWFsbChyKTtcbiAgICAgICAgaWYgKHR5cGVvZiByID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBpZiAoc2lnbikgciA9IC1yO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIocik7XG4gICAgICAgIH0gcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKHIsIHNpZ24pO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnN1YnRyYWN0ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpO1xuICAgICAgICBpZiAodGhpcy5zaWduICE9PSBuLnNpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZChuLm5lZ2F0ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYSA9IHRoaXMudmFsdWUsIGIgPSBuLnZhbHVlO1xuICAgICAgICBpZiAobi5pc1NtYWxsKVxuICAgICAgICAgICAgcmV0dXJuIHN1YnRyYWN0U21hbGwoYSwgTWF0aC5hYnMoYiksIHRoaXMuc2lnbik7XG4gICAgICAgIHJldHVybiBzdWJ0cmFjdEFueShhLCBiLCB0aGlzLnNpZ24pO1xuICAgIH07XG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubWludXMgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zdWJ0cmFjdDtcblxuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuc3VidHJhY3QgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodik7XG4gICAgICAgIHZhciBhID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKGEgPCAwICE9PSBuLnNpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZChuLm5lZ2F0ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYiA9IG4udmFsdWU7XG4gICAgICAgIGlmIChuLmlzU21hbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKGEgLSBiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VidHJhY3RTbWFsbChiLCBNYXRoLmFicyhhKSwgYSA+PSAwKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUubWludXMgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLnN1YnRyYWN0O1xuXG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5zdWJ0cmFjdCA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KHRoaXMudmFsdWUgLSBwYXJzZVZhbHVlKHYpLnZhbHVlKTtcbiAgICB9XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5taW51cyA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuc3VidHJhY3Q7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5uZWdhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcih0aGlzLnZhbHVlLCAhdGhpcy5zaWduKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUubmVnYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgc2lnbiA9IHRoaXMuc2lnbjtcbiAgICAgICAgdmFyIHNtYWxsID0gbmV3IFNtYWxsSW50ZWdlcigtdGhpcy52YWx1ZSk7XG4gICAgICAgIHNtYWxsLnNpZ24gPSAhc2lnbjtcbiAgICAgICAgcmV0dXJuIHNtYWxsO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5uZWdhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KC10aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hYnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcih0aGlzLnZhbHVlLCBmYWxzZSk7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmFicyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIoTWF0aC5hYnModGhpcy52YWx1ZSkpO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5hYnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KHRoaXMudmFsdWUgPj0gMCA/IHRoaXMudmFsdWUgOiAtdGhpcy52YWx1ZSk7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBtdWx0aXBseUxvbmcoYSwgYikge1xuICAgICAgICB2YXIgYV9sID0gYS5sZW5ndGgsXG4gICAgICAgICAgICBiX2wgPSBiLmxlbmd0aCxcbiAgICAgICAgICAgIGwgPSBhX2wgKyBiX2wsXG4gICAgICAgICAgICByID0gY3JlYXRlQXJyYXkobCksXG4gICAgICAgICAgICBiYXNlID0gQkFTRSxcbiAgICAgICAgICAgIHByb2R1Y3QsIGNhcnJ5LCBpLCBhX2ksIGJfajtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGFfbDsgKytpKSB7XG4gICAgICAgICAgICBhX2kgPSBhW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiX2w7ICsraikge1xuICAgICAgICAgICAgICAgIGJfaiA9IGJbal07XG4gICAgICAgICAgICAgICAgcHJvZHVjdCA9IGFfaSAqIGJfaiArIHJbaSArIGpdO1xuICAgICAgICAgICAgICAgIGNhcnJ5ID0gTWF0aC5mbG9vcihwcm9kdWN0IC8gYmFzZSk7XG4gICAgICAgICAgICAgICAgcltpICsgal0gPSBwcm9kdWN0IC0gY2FycnkgKiBiYXNlO1xuICAgICAgICAgICAgICAgIHJbaSArIGogKyAxXSArPSBjYXJyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0cmltKHIpO1xuICAgICAgICByZXR1cm4gcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtdWx0aXBseVNtYWxsKGEsIGIpIHsgLy8gYXNzdW1lcyBhIGlzIGFycmF5LCBiIGlzIG51bWJlciB3aXRoIHxifCA8IEJBU0VcbiAgICAgICAgdmFyIGwgPSBhLmxlbmd0aCxcbiAgICAgICAgICAgIHIgPSBuZXcgQXJyYXkobCksXG4gICAgICAgICAgICBiYXNlID0gQkFTRSxcbiAgICAgICAgICAgIGNhcnJ5ID0gMCxcbiAgICAgICAgICAgIHByb2R1Y3QsIGk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgIHByb2R1Y3QgPSBhW2ldICogYiArIGNhcnJ5O1xuICAgICAgICAgICAgY2FycnkgPSBNYXRoLmZsb29yKHByb2R1Y3QgLyBiYXNlKTtcbiAgICAgICAgICAgIHJbaV0gPSBwcm9kdWN0IC0gY2FycnkgKiBiYXNlO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChjYXJyeSA+IDApIHtcbiAgICAgICAgICAgIHJbaSsrXSA9IGNhcnJ5ICUgYmFzZTtcbiAgICAgICAgICAgIGNhcnJ5ID0gTWF0aC5mbG9vcihjYXJyeSAvIGJhc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNoaWZ0TGVmdCh4LCBuKSB7XG4gICAgICAgIHZhciByID0gW107XG4gICAgICAgIHdoaWxlIChuLS0gPiAwKSByLnB1c2goMCk7XG4gICAgICAgIHJldHVybiByLmNvbmNhdCh4KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtdWx0aXBseUthcmF0c3ViYSh4LCB5KSB7XG4gICAgICAgIHZhciBuID0gTWF0aC5tYXgoeC5sZW5ndGgsIHkubGVuZ3RoKTtcblxuICAgICAgICBpZiAobiA8PSAzMCkgcmV0dXJuIG11bHRpcGx5TG9uZyh4LCB5KTtcbiAgICAgICAgbiA9IE1hdGguY2VpbChuIC8gMik7XG5cbiAgICAgICAgdmFyIGIgPSB4LnNsaWNlKG4pLFxuICAgICAgICAgICAgYSA9IHguc2xpY2UoMCwgbiksXG4gICAgICAgICAgICBkID0geS5zbGljZShuKSxcbiAgICAgICAgICAgIGMgPSB5LnNsaWNlKDAsIG4pO1xuXG4gICAgICAgIHZhciBhYyA9IG11bHRpcGx5S2FyYXRzdWJhKGEsIGMpLFxuICAgICAgICAgICAgYmQgPSBtdWx0aXBseUthcmF0c3ViYShiLCBkKSxcbiAgICAgICAgICAgIGFiY2QgPSBtdWx0aXBseUthcmF0c3ViYShhZGRBbnkoYSwgYiksIGFkZEFueShjLCBkKSk7XG5cbiAgICAgICAgdmFyIHByb2R1Y3QgPSBhZGRBbnkoYWRkQW55KGFjLCBzaGlmdExlZnQoc3VidHJhY3Qoc3VidHJhY3QoYWJjZCwgYWMpLCBiZCksIG4pKSwgc2hpZnRMZWZ0KGJkLCAyICogbikpO1xuICAgICAgICB0cmltKHByb2R1Y3QpO1xuICAgICAgICByZXR1cm4gcHJvZHVjdDtcbiAgICB9XG5cbiAgICAvLyBUaGUgZm9sbG93aW5nIGZ1bmN0aW9uIGlzIGRlcml2ZWQgZnJvbSBhIHN1cmZhY2UgZml0IG9mIGEgZ3JhcGggcGxvdHRpbmcgdGhlIHBlcmZvcm1hbmNlIGRpZmZlcmVuY2VcbiAgICAvLyBiZXR3ZWVuIGxvbmcgbXVsdGlwbGljYXRpb24gYW5kIGthcmF0c3ViYSBtdWx0aXBsaWNhdGlvbiB2ZXJzdXMgdGhlIGxlbmd0aHMgb2YgdGhlIHR3byBhcnJheXMuXG4gICAgZnVuY3Rpb24gdXNlS2FyYXRzdWJhKGwxLCBsMikge1xuICAgICAgICByZXR1cm4gLTAuMDEyICogbDEgLSAwLjAxMiAqIGwyICsgMC4wMDAwMTUgKiBsMSAqIGwyID4gMDtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tdWx0aXBseSA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KSxcbiAgICAgICAgICAgIGEgPSB0aGlzLnZhbHVlLCBiID0gbi52YWx1ZSxcbiAgICAgICAgICAgIHNpZ24gPSB0aGlzLnNpZ24gIT09IG4uc2lnbixcbiAgICAgICAgICAgIGFicztcbiAgICAgICAgaWYgKG4uaXNTbWFsbCkge1xuICAgICAgICAgICAgaWYgKGIgPT09IDApIHJldHVybiBJbnRlZ2VyWzBdO1xuICAgICAgICAgICAgaWYgKGIgPT09IDEpIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgaWYgKGIgPT09IC0xKSByZXR1cm4gdGhpcy5uZWdhdGUoKTtcbiAgICAgICAgICAgIGFicyA9IE1hdGguYWJzKGIpO1xuICAgICAgICAgICAgaWYgKGFicyA8IEJBU0UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIobXVsdGlwbHlTbWFsbChhLCBhYnMpLCBzaWduKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGIgPSBzbWFsbFRvQXJyYXkoYWJzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlS2FyYXRzdWJhKGEubGVuZ3RoLCBiLmxlbmd0aCkpIC8vIEthcmF0c3ViYSBpcyBvbmx5IGZhc3RlciBmb3IgY2VydGFpbiBhcnJheSBzaXplc1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKG11bHRpcGx5S2FyYXRzdWJhKGEsIGIpLCBzaWduKTtcbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKG11bHRpcGx5TG9uZyhhLCBiKSwgc2lnbik7XG4gICAgfTtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnRpbWVzID0gQmlnSW50ZWdlci5wcm90b3R5cGUubXVsdGlwbHk7XG5cbiAgICBmdW5jdGlvbiBtdWx0aXBseVNtYWxsQW5kQXJyYXkoYSwgYiwgc2lnbikgeyAvLyBhID49IDBcbiAgICAgICAgaWYgKGEgPCBCQVNFKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIobXVsdGlwbHlTbWFsbChiLCBhKSwgc2lnbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKG11bHRpcGx5TG9uZyhiLCBzbWFsbFRvQXJyYXkoYSkpLCBzaWduKTtcbiAgICB9XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5fbXVsdGlwbHlCeVNtYWxsID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgaWYgKGlzUHJlY2lzZShhLnZhbHVlICogdGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKGEudmFsdWUgKiB0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbXVsdGlwbHlTbWFsbEFuZEFycmF5KE1hdGguYWJzKGEudmFsdWUpLCBzbWFsbFRvQXJyYXkoTWF0aC5hYnModGhpcy52YWx1ZSkpLCB0aGlzLnNpZ24gIT09IGEuc2lnbik7XG4gICAgfTtcbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5fbXVsdGlwbHlCeVNtYWxsID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgaWYgKGEudmFsdWUgPT09IDApIHJldHVybiBJbnRlZ2VyWzBdO1xuICAgICAgICBpZiAoYS52YWx1ZSA9PT0gMSkgcmV0dXJuIHRoaXM7XG4gICAgICAgIGlmIChhLnZhbHVlID09PSAtMSkgcmV0dXJuIHRoaXMubmVnYXRlKCk7XG4gICAgICAgIHJldHVybiBtdWx0aXBseVNtYWxsQW5kQXJyYXkoTWF0aC5hYnMoYS52YWx1ZSksIHRoaXMudmFsdWUsIHRoaXMuc2lnbiAhPT0gYS5zaWduKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUubXVsdGlwbHkgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gcGFyc2VWYWx1ZSh2KS5fbXVsdGlwbHlCeVNtYWxsKHRoaXMpO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS50aW1lcyA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubXVsdGlwbHk7XG5cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm11bHRpcGx5ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQodGhpcy52YWx1ZSAqIHBhcnNlVmFsdWUodikudmFsdWUpO1xuICAgIH1cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnRpbWVzID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5tdWx0aXBseTtcblxuICAgIGZ1bmN0aW9uIHNxdWFyZShhKSB7XG4gICAgICAgIC8vY29uc29sZS5hc3NlcnQoMiAqIEJBU0UgKiBCQVNFIDwgTUFYX0lOVCk7XG4gICAgICAgIHZhciBsID0gYS5sZW5ndGgsXG4gICAgICAgICAgICByID0gY3JlYXRlQXJyYXkobCArIGwpLFxuICAgICAgICAgICAgYmFzZSA9IEJBU0UsXG4gICAgICAgICAgICBwcm9kdWN0LCBjYXJyeSwgaSwgYV9pLCBhX2o7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgIGFfaSA9IGFbaV07XG4gICAgICAgICAgICBjYXJyeSA9IDAgLSBhX2kgKiBhX2k7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gaTsgaiA8IGw7IGorKykge1xuICAgICAgICAgICAgICAgIGFfaiA9IGFbal07XG4gICAgICAgICAgICAgICAgcHJvZHVjdCA9IDIgKiAoYV9pICogYV9qKSArIHJbaSArIGpdICsgY2Fycnk7XG4gICAgICAgICAgICAgICAgY2FycnkgPSBNYXRoLmZsb29yKHByb2R1Y3QgLyBiYXNlKTtcbiAgICAgICAgICAgICAgICByW2kgKyBqXSA9IHByb2R1Y3QgLSBjYXJyeSAqIGJhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByW2kgKyBsXSA9IGNhcnJ5O1xuICAgICAgICB9XG4gICAgICAgIHRyaW0ocik7XG4gICAgICAgIHJldHVybiByO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnNxdWFyZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKHNxdWFyZSh0aGlzLnZhbHVlKSwgZmFsc2UpO1xuICAgIH07XG5cbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnNxdWFyZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gdGhpcy52YWx1ZSAqIHRoaXMudmFsdWU7XG4gICAgICAgIGlmIChpc1ByZWNpc2UodmFsdWUpKSByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcih2YWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihzcXVhcmUoc21hbGxUb0FycmF5KE1hdGguYWJzKHRoaXMudmFsdWUpKSksIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5zcXVhcmUgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCh0aGlzLnZhbHVlICogdGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGl2TW9kMShhLCBiKSB7IC8vIExlZnQgb3ZlciBmcm9tIHByZXZpb3VzIHZlcnNpb24uIFBlcmZvcm1zIGZhc3RlciB0aGFuIGRpdk1vZDIgb24gc21hbGxlciBpbnB1dCBzaXplcy5cbiAgICAgICAgdmFyIGFfbCA9IGEubGVuZ3RoLFxuICAgICAgICAgICAgYl9sID0gYi5sZW5ndGgsXG4gICAgICAgICAgICBiYXNlID0gQkFTRSxcbiAgICAgICAgICAgIHJlc3VsdCA9IGNyZWF0ZUFycmF5KGIubGVuZ3RoKSxcbiAgICAgICAgICAgIGRpdmlzb3JNb3N0U2lnbmlmaWNhbnREaWdpdCA9IGJbYl9sIC0gMV0sXG4gICAgICAgICAgICAvLyBub3JtYWxpemF0aW9uXG4gICAgICAgICAgICBsYW1iZGEgPSBNYXRoLmNlaWwoYmFzZSAvICgyICogZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0KSksXG4gICAgICAgICAgICByZW1haW5kZXIgPSBtdWx0aXBseVNtYWxsKGEsIGxhbWJkYSksXG4gICAgICAgICAgICBkaXZpc29yID0gbXVsdGlwbHlTbWFsbChiLCBsYW1iZGEpLFxuICAgICAgICAgICAgcXVvdGllbnREaWdpdCwgc2hpZnQsIGNhcnJ5LCBib3Jyb3csIGksIGwsIHE7XG4gICAgICAgIGlmIChyZW1haW5kZXIubGVuZ3RoIDw9IGFfbCkgcmVtYWluZGVyLnB1c2goMCk7XG4gICAgICAgIGRpdmlzb3IucHVzaCgwKTtcbiAgICAgICAgZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0ID0gZGl2aXNvcltiX2wgLSAxXTtcbiAgICAgICAgZm9yIChzaGlmdCA9IGFfbCAtIGJfbDsgc2hpZnQgPj0gMDsgc2hpZnQtLSkge1xuICAgICAgICAgICAgcXVvdGllbnREaWdpdCA9IGJhc2UgLSAxO1xuICAgICAgICAgICAgaWYgKHJlbWFpbmRlcltzaGlmdCArIGJfbF0gIT09IGRpdmlzb3JNb3N0U2lnbmlmaWNhbnREaWdpdCkge1xuICAgICAgICAgICAgICAgIHF1b3RpZW50RGlnaXQgPSBNYXRoLmZsb29yKChyZW1haW5kZXJbc2hpZnQgKyBiX2xdICogYmFzZSArIHJlbWFpbmRlcltzaGlmdCArIGJfbCAtIDFdKSAvIGRpdmlzb3JNb3N0U2lnbmlmaWNhbnREaWdpdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBxdW90aWVudERpZ2l0IDw9IGJhc2UgLSAxXG4gICAgICAgICAgICBjYXJyeSA9IDA7XG4gICAgICAgICAgICBib3Jyb3cgPSAwO1xuICAgICAgICAgICAgbCA9IGRpdmlzb3IubGVuZ3RoO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgIGNhcnJ5ICs9IHF1b3RpZW50RGlnaXQgKiBkaXZpc29yW2ldO1xuICAgICAgICAgICAgICAgIHEgPSBNYXRoLmZsb29yKGNhcnJ5IC8gYmFzZSk7XG4gICAgICAgICAgICAgICAgYm9ycm93ICs9IHJlbWFpbmRlcltzaGlmdCArIGldIC0gKGNhcnJ5IC0gcSAqIGJhc2UpO1xuICAgICAgICAgICAgICAgIGNhcnJ5ID0gcTtcbiAgICAgICAgICAgICAgICBpZiAoYm9ycm93IDwgMCkge1xuICAgICAgICAgICAgICAgICAgICByZW1haW5kZXJbc2hpZnQgKyBpXSA9IGJvcnJvdyArIGJhc2U7XG4gICAgICAgICAgICAgICAgICAgIGJvcnJvdyA9IC0xO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbWFpbmRlcltzaGlmdCArIGldID0gYm9ycm93O1xuICAgICAgICAgICAgICAgICAgICBib3Jyb3cgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlIChib3Jyb3cgIT09IDApIHtcbiAgICAgICAgICAgICAgICBxdW90aWVudERpZ2l0IC09IDE7XG4gICAgICAgICAgICAgICAgY2FycnkgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY2FycnkgKz0gcmVtYWluZGVyW3NoaWZ0ICsgaV0gLSBiYXNlICsgZGl2aXNvcltpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhcnJ5IDwgMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyW3NoaWZ0ICsgaV0gPSBjYXJyeSArIGJhc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXJyeSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW1haW5kZXJbc2hpZnQgKyBpXSA9IGNhcnJ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FycnkgPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJvcnJvdyArPSBjYXJyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdFtzaGlmdF0gPSBxdW90aWVudERpZ2l0O1xuICAgICAgICB9XG4gICAgICAgIC8vIGRlbm9ybWFsaXphdGlvblxuICAgICAgICByZW1haW5kZXIgPSBkaXZNb2RTbWFsbChyZW1haW5kZXIsIGxhbWJkYSlbMF07XG4gICAgICAgIHJldHVybiBbYXJyYXlUb1NtYWxsKHJlc3VsdCksIGFycmF5VG9TbWFsbChyZW1haW5kZXIpXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkaXZNb2QyKGEsIGIpIHsgLy8gSW1wbGVtZW50YXRpb24gaWRlYSBzaGFtZWxlc3NseSBzdG9sZW4gZnJvbSBTaWxlbnQgTWF0dCdzIGxpYnJhcnkgaHR0cDovL3NpbGVudG1hdHQuY29tL2JpZ2ludGVnZXIvXG4gICAgICAgIC8vIFBlcmZvcm1zIGZhc3RlciB0aGFuIGRpdk1vZDEgb24gbGFyZ2VyIGlucHV0IHNpemVzLlxuICAgICAgICB2YXIgYV9sID0gYS5sZW5ndGgsXG4gICAgICAgICAgICBiX2wgPSBiLmxlbmd0aCxcbiAgICAgICAgICAgIHJlc3VsdCA9IFtdLFxuICAgICAgICAgICAgcGFydCA9IFtdLFxuICAgICAgICAgICAgYmFzZSA9IEJBU0UsXG4gICAgICAgICAgICBndWVzcywgeGxlbiwgaGlnaHgsIGhpZ2h5LCBjaGVjaztcbiAgICAgICAgd2hpbGUgKGFfbCkge1xuICAgICAgICAgICAgcGFydC51bnNoaWZ0KGFbLS1hX2xdKTtcbiAgICAgICAgICAgIHRyaW0ocGFydCk7XG4gICAgICAgICAgICBpZiAoY29tcGFyZUFicyhwYXJ0LCBiKSA8IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCgwKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHhsZW4gPSBwYXJ0Lmxlbmd0aDtcbiAgICAgICAgICAgIGhpZ2h4ID0gcGFydFt4bGVuIC0gMV0gKiBiYXNlICsgcGFydFt4bGVuIC0gMl07XG4gICAgICAgICAgICBoaWdoeSA9IGJbYl9sIC0gMV0gKiBiYXNlICsgYltiX2wgLSAyXTtcbiAgICAgICAgICAgIGlmICh4bGVuID4gYl9sKSB7XG4gICAgICAgICAgICAgICAgaGlnaHggPSAoaGlnaHggKyAxKSAqIGJhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBndWVzcyA9IE1hdGguY2VpbChoaWdoeCAvIGhpZ2h5KTtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBjaGVjayA9IG11bHRpcGx5U21hbGwoYiwgZ3Vlc3MpO1xuICAgICAgICAgICAgICAgIGlmIChjb21wYXJlQWJzKGNoZWNrLCBwYXJ0KSA8PSAwKSBicmVhaztcbiAgICAgICAgICAgICAgICBndWVzcy0tO1xuICAgICAgICAgICAgfSB3aGlsZSAoZ3Vlc3MpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZ3Vlc3MpO1xuICAgICAgICAgICAgcGFydCA9IHN1YnRyYWN0KHBhcnQsIGNoZWNrKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucmV2ZXJzZSgpO1xuICAgICAgICByZXR1cm4gW2FycmF5VG9TbWFsbChyZXN1bHQpLCBhcnJheVRvU21hbGwocGFydCldO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRpdk1vZFNtYWxsKHZhbHVlLCBsYW1iZGEpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IHZhbHVlLmxlbmd0aCxcbiAgICAgICAgICAgIHF1b3RpZW50ID0gY3JlYXRlQXJyYXkobGVuZ3RoKSxcbiAgICAgICAgICAgIGJhc2UgPSBCQVNFLFxuICAgICAgICAgICAgaSwgcSwgcmVtYWluZGVyLCBkaXZpc29yO1xuICAgICAgICByZW1haW5kZXIgPSAwO1xuICAgICAgICBmb3IgKGkgPSBsZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgZGl2aXNvciA9IHJlbWFpbmRlciAqIGJhc2UgKyB2YWx1ZVtpXTtcbiAgICAgICAgICAgIHEgPSB0cnVuY2F0ZShkaXZpc29yIC8gbGFtYmRhKTtcbiAgICAgICAgICAgIHJlbWFpbmRlciA9IGRpdmlzb3IgLSBxICogbGFtYmRhO1xuICAgICAgICAgICAgcXVvdGllbnRbaV0gPSBxIHwgMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3F1b3RpZW50LCByZW1haW5kZXIgfCAwXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkaXZNb2RBbnkoc2VsZiwgdikge1xuICAgICAgICB2YXIgdmFsdWUsIG4gPSBwYXJzZVZhbHVlKHYpO1xuICAgICAgICBpZiAoc3VwcG9ydHNOYXRpdmVCaWdJbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBbbmV3IE5hdGl2ZUJpZ0ludChzZWxmLnZhbHVlIC8gbi52YWx1ZSksIG5ldyBOYXRpdmVCaWdJbnQoc2VsZi52YWx1ZSAlIG4udmFsdWUpXTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYSA9IHNlbGYudmFsdWUsIGIgPSBuLnZhbHVlO1xuICAgICAgICB2YXIgcXVvdGllbnQ7XG4gICAgICAgIGlmIChiID09PSAwKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgZGl2aWRlIGJ5IHplcm9cIik7XG4gICAgICAgIGlmIChzZWxmLmlzU21hbGwpIHtcbiAgICAgICAgICAgIGlmIChuLmlzU21hbGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW25ldyBTbWFsbEludGVnZXIodHJ1bmNhdGUoYSAvIGIpKSwgbmV3IFNtYWxsSW50ZWdlcihhICUgYildO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFtJbnRlZ2VyWzBdLCBzZWxmXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobi5pc1NtYWxsKSB7XG4gICAgICAgICAgICBpZiAoYiA9PT0gMSkgcmV0dXJuIFtzZWxmLCBJbnRlZ2VyWzBdXTtcbiAgICAgICAgICAgIGlmIChiID09IC0xKSByZXR1cm4gW3NlbGYubmVnYXRlKCksIEludGVnZXJbMF1dO1xuICAgICAgICAgICAgdmFyIGFicyA9IE1hdGguYWJzKGIpO1xuICAgICAgICAgICAgaWYgKGFicyA8IEJBU0UpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGRpdk1vZFNtYWxsKGEsIGFicyk7XG4gICAgICAgICAgICAgICAgcXVvdGllbnQgPSBhcnJheVRvU21hbGwodmFsdWVbMF0pO1xuICAgICAgICAgICAgICAgIHZhciByZW1haW5kZXIgPSB2YWx1ZVsxXTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5zaWduKSByZW1haW5kZXIgPSAtcmVtYWluZGVyO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcXVvdGllbnQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuc2lnbiAhPT0gbi5zaWduKSBxdW90aWVudCA9IC1xdW90aWVudDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtuZXcgU21hbGxJbnRlZ2VyKHF1b3RpZW50KSwgbmV3IFNtYWxsSW50ZWdlcihyZW1haW5kZXIpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtuZXcgQmlnSW50ZWdlcihxdW90aWVudCwgc2VsZi5zaWduICE9PSBuLnNpZ24pLCBuZXcgU21hbGxJbnRlZ2VyKHJlbWFpbmRlcildO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYiA9IHNtYWxsVG9BcnJheShhYnMpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjb21wYXJpc29uID0gY29tcGFyZUFicyhhLCBiKTtcbiAgICAgICAgaWYgKGNvbXBhcmlzb24gPT09IC0xKSByZXR1cm4gW0ludGVnZXJbMF0sIHNlbGZdO1xuICAgICAgICBpZiAoY29tcGFyaXNvbiA9PT0gMCkgcmV0dXJuIFtJbnRlZ2VyW3NlbGYuc2lnbiA9PT0gbi5zaWduID8gMSA6IC0xXSwgSW50ZWdlclswXV07XG5cbiAgICAgICAgLy8gZGl2TW9kMSBpcyBmYXN0ZXIgb24gc21hbGxlciBpbnB1dCBzaXplc1xuICAgICAgICBpZiAoYS5sZW5ndGggKyBiLmxlbmd0aCA8PSAyMDApXG4gICAgICAgICAgICB2YWx1ZSA9IGRpdk1vZDEoYSwgYik7XG4gICAgICAgIGVsc2UgdmFsdWUgPSBkaXZNb2QyKGEsIGIpO1xuXG4gICAgICAgIHF1b3RpZW50ID0gdmFsdWVbMF07XG4gICAgICAgIHZhciBxU2lnbiA9IHNlbGYuc2lnbiAhPT0gbi5zaWduLFxuICAgICAgICAgICAgbW9kID0gdmFsdWVbMV0sXG4gICAgICAgICAgICBtU2lnbiA9IHNlbGYuc2lnbjtcbiAgICAgICAgaWYgKHR5cGVvZiBxdW90aWVudCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHFTaWduKSBxdW90aWVudCA9IC1xdW90aWVudDtcbiAgICAgICAgICAgIHF1b3RpZW50ID0gbmV3IFNtYWxsSW50ZWdlcihxdW90aWVudCk7XG4gICAgICAgIH0gZWxzZSBxdW90aWVudCA9IG5ldyBCaWdJbnRlZ2VyKHF1b3RpZW50LCBxU2lnbik7XG4gICAgICAgIGlmICh0eXBlb2YgbW9kID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBpZiAobVNpZ24pIG1vZCA9IC1tb2Q7XG4gICAgICAgICAgICBtb2QgPSBuZXcgU21hbGxJbnRlZ2VyKG1vZCk7XG4gICAgICAgIH0gZWxzZSBtb2QgPSBuZXcgQmlnSW50ZWdlcihtb2QsIG1TaWduKTtcbiAgICAgICAgcmV0dXJuIFtxdW90aWVudCwgbW9kXTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kaXZtb2QgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgcmVzdWx0ID0gZGl2TW9kQW55KHRoaXMsIHYpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcXVvdGllbnQ6IHJlc3VsdFswXSxcbiAgICAgICAgICAgIHJlbWFpbmRlcjogcmVzdWx0WzFdXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmRpdm1vZCA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuZGl2bW9kID0gQmlnSW50ZWdlci5wcm90b3R5cGUuZGl2bW9kO1xuXG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kaXZpZGUgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gZGl2TW9kQW55KHRoaXMsIHYpWzBdO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5vdmVyID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5kaXZpZGUgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCh0aGlzLnZhbHVlIC8gcGFyc2VWYWx1ZSh2KS52YWx1ZSk7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLm92ZXIgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmRpdmlkZSA9IEJpZ0ludGVnZXIucHJvdG90eXBlLm92ZXIgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kaXZpZGU7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tb2QgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gZGl2TW9kQW55KHRoaXMsIHYpWzFdO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5tb2QgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnJlbWFpbmRlciA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KHRoaXMudmFsdWUgJSBwYXJzZVZhbHVlKHYpLnZhbHVlKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUucmVtYWluZGVyID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5tb2QgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5yZW1haW5kZXIgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tb2Q7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5wb3cgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodiksXG4gICAgICAgICAgICBhID0gdGhpcy52YWx1ZSxcbiAgICAgICAgICAgIGIgPSBuLnZhbHVlLFxuICAgICAgICAgICAgdmFsdWUsIHgsIHk7XG4gICAgICAgIGlmIChiID09PSAwKSByZXR1cm4gSW50ZWdlclsxXTtcbiAgICAgICAgaWYgKGEgPT09IDApIHJldHVybiBJbnRlZ2VyWzBdO1xuICAgICAgICBpZiAoYSA9PT0gMSkgcmV0dXJuIEludGVnZXJbMV07XG4gICAgICAgIGlmIChhID09PSAtMSkgcmV0dXJuIG4uaXNFdmVuKCkgPyBJbnRlZ2VyWzFdIDogSW50ZWdlclstMV07XG4gICAgICAgIGlmIChuLnNpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyWzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbi5pc1NtYWxsKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZXhwb25lbnQgXCIgKyBuLnRvU3RyaW5nKCkgKyBcIiBpcyB0b28gbGFyZ2UuXCIpO1xuICAgICAgICBpZiAodGhpcy5pc1NtYWxsKSB7XG4gICAgICAgICAgICBpZiAoaXNQcmVjaXNlKHZhbHVlID0gTWF0aC5wb3coYSwgYikpKVxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKHRydW5jYXRlKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgeCA9IHRoaXM7XG4gICAgICAgIHkgPSBJbnRlZ2VyWzFdO1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgaWYgKGIgJiAxID09PSAxKSB7XG4gICAgICAgICAgICAgICAgeSA9IHkudGltZXMoeCk7XG4gICAgICAgICAgICAgICAgLS1iO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGIgPT09IDApIGJyZWFrO1xuICAgICAgICAgICAgYiAvPSAyO1xuICAgICAgICAgICAgeCA9IHguc3F1YXJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHk7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnBvdyA9IEJpZ0ludGVnZXIucHJvdG90eXBlLnBvdztcblxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUucG93ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpO1xuICAgICAgICB2YXIgYSA9IHRoaXMudmFsdWUsIGIgPSBuLnZhbHVlO1xuICAgICAgICB2YXIgXzAgPSBCaWdJbnQoMCksIF8xID0gQmlnSW50KDEpLCBfMiA9IEJpZ0ludCgyKTtcbiAgICAgICAgaWYgKGIgPT09IF8wKSByZXR1cm4gSW50ZWdlclsxXTtcbiAgICAgICAgaWYgKGEgPT09IF8wKSByZXR1cm4gSW50ZWdlclswXTtcbiAgICAgICAgaWYgKGEgPT09IF8xKSByZXR1cm4gSW50ZWdlclsxXTtcbiAgICAgICAgaWYgKGEgPT09IEJpZ0ludCgtMSkpIHJldHVybiBuLmlzRXZlbigpID8gSW50ZWdlclsxXSA6IEludGVnZXJbLTFdO1xuICAgICAgICBpZiAobi5pc05lZ2F0aXZlKCkpIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KF8wKTtcbiAgICAgICAgdmFyIHggPSB0aGlzO1xuICAgICAgICB2YXIgeSA9IEludGVnZXJbMV07XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBpZiAoKGIgJiBfMSkgPT09IF8xKSB7XG4gICAgICAgICAgICAgICAgeSA9IHkudGltZXMoeCk7XG4gICAgICAgICAgICAgICAgLS1iO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGIgPT09IF8wKSBicmVhaztcbiAgICAgICAgICAgIGIgLz0gXzI7XG4gICAgICAgICAgICB4ID0geC5zcXVhcmUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tb2RQb3cgPSBmdW5jdGlvbiAoZXhwLCBtb2QpIHtcbiAgICAgICAgZXhwID0gcGFyc2VWYWx1ZShleHApO1xuICAgICAgICBtb2QgPSBwYXJzZVZhbHVlKG1vZCk7XG4gICAgICAgIGlmIChtb2QuaXNaZXJvKCkpIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCB0YWtlIG1vZFBvdyB3aXRoIG1vZHVsdXMgMFwiKTtcbiAgICAgICAgdmFyIHIgPSBJbnRlZ2VyWzFdLFxuICAgICAgICAgICAgYmFzZSA9IHRoaXMubW9kKG1vZCk7XG4gICAgICAgIGlmIChleHAuaXNOZWdhdGl2ZSgpKSB7XG4gICAgICAgICAgICBleHAgPSBleHAubXVsdGlwbHkoSW50ZWdlclstMV0pO1xuICAgICAgICAgICAgYmFzZSA9IGJhc2UubW9kSW52KG1vZCk7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGV4cC5pc1Bvc2l0aXZlKCkpIHtcbiAgICAgICAgICAgIGlmIChiYXNlLmlzWmVybygpKSByZXR1cm4gSW50ZWdlclswXTtcbiAgICAgICAgICAgIGlmIChleHAuaXNPZGQoKSkgciA9IHIubXVsdGlwbHkoYmFzZSkubW9kKG1vZCk7XG4gICAgICAgICAgICBleHAgPSBleHAuZGl2aWRlKDIpO1xuICAgICAgICAgICAgYmFzZSA9IGJhc2Uuc3F1YXJlKCkubW9kKG1vZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm1vZFBvdyA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubW9kUG93ID0gQmlnSW50ZWdlci5wcm90b3R5cGUubW9kUG93O1xuXG4gICAgZnVuY3Rpb24gY29tcGFyZUFicyhhLCBiKSB7XG4gICAgICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBhLmxlbmd0aCA+IGIubGVuZ3RoID8gMSA6IC0xO1xuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGkgPSBhLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAoYVtpXSAhPT0gYltpXSkgcmV0dXJuIGFbaV0gPiBiW2ldID8gMSA6IC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmNvbXBhcmVBYnMgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodiksXG4gICAgICAgICAgICBhID0gdGhpcy52YWx1ZSxcbiAgICAgICAgICAgIGIgPSBuLnZhbHVlO1xuICAgICAgICBpZiAobi5pc1NtYWxsKSByZXR1cm4gMTtcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVBYnMoYSwgYik7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmNvbXBhcmVBYnMgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodiksXG4gICAgICAgICAgICBhID0gTWF0aC5hYnModGhpcy52YWx1ZSksXG4gICAgICAgICAgICBiID0gbi52YWx1ZTtcbiAgICAgICAgaWYgKG4uaXNTbWFsbCkge1xuICAgICAgICAgICAgYiA9IE1hdGguYWJzKGIpO1xuICAgICAgICAgICAgcmV0dXJuIGEgPT09IGIgPyAwIDogYSA+IGIgPyAxIDogLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5jb21wYXJlQWJzID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIGEgPSB0aGlzLnZhbHVlO1xuICAgICAgICB2YXIgYiA9IHBhcnNlVmFsdWUodikudmFsdWU7XG4gICAgICAgIGEgPSBhID49IDAgPyBhIDogLWE7XG4gICAgICAgIGIgPSBiID49IDAgPyBiIDogLWI7XG4gICAgICAgIHJldHVybiBhID09PSBiID8gMCA6IGEgPiBiID8gMSA6IC0xO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiAodikge1xuICAgICAgICAvLyBTZWUgZGlzY3Vzc2lvbiBhYm91dCBjb21wYXJpc29uIHdpdGggSW5maW5pdHk6XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wZXRlcm9sc29uL0JpZ0ludGVnZXIuanMvaXNzdWVzLzYxXG4gICAgICAgIGlmICh2ID09PSBJbmZpbml0eSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2ID09PSAtSW5maW5pdHkpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpLFxuICAgICAgICAgICAgYSA9IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBiID0gbi52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuc2lnbiAhPT0gbi5zaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gbi5zaWduID8gMSA6IC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuLmlzU21hbGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNpZ24gPyAtMSA6IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbXBhcmVBYnMoYSwgYikgKiAodGhpcy5zaWduID8gLTEgOiAxKTtcbiAgICB9O1xuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmNvbXBhcmVUbyA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmNvbXBhcmU7XG5cbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiAodikge1xuICAgICAgICBpZiAodiA9PT0gSW5maW5pdHkpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodiA9PT0gLUluZmluaXR5KSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KSxcbiAgICAgICAgICAgIGEgPSB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgYiA9IG4udmFsdWU7XG4gICAgICAgIGlmIChuLmlzU21hbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBhID09IGIgPyAwIDogYSA+IGIgPyAxIDogLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGEgPCAwICE9PSBuLnNpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiBhIDwgMCA/IC0xIDogMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYSA8IDAgPyAxIDogLTE7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmNvbXBhcmVUbyA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuY29tcGFyZTtcblxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIGlmICh2ID09PSBJbmZpbml0eSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2ID09PSAtSW5maW5pdHkpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIHZhciBhID0gdGhpcy52YWx1ZTtcbiAgICAgICAgdmFyIGIgPSBwYXJzZVZhbHVlKHYpLnZhbHVlO1xuICAgICAgICByZXR1cm4gYSA9PT0gYiA/IDAgOiBhID4gYiA/IDEgOiAtMTtcbiAgICB9XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5jb21wYXJlVG8gPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmNvbXBhcmU7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKHYpID09PSAwO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5lcSA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuZXF1YWxzID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5lcSA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuZXF1YWxzID0gQmlnSW50ZWdlci5wcm90b3R5cGUuZXEgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5lcXVhbHM7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ub3RFcXVhbHMgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKHYpICE9PSAwO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5uZXEgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm5vdEVxdWFscyA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubmVxID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5ub3RFcXVhbHMgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5uZXEgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ub3RFcXVhbHM7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ncmVhdGVyID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZSh2KSA+IDA7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmd0ID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5ncmVhdGVyID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5ndCA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuZ3JlYXRlciA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmd0ID0gQmlnSW50ZWdlci5wcm90b3R5cGUuZ3JlYXRlcjtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmxlc3NlciA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUodikgPCAwO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5sdCA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubGVzc2VyID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5sdCA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubGVzc2VyID0gQmlnSW50ZWdlci5wcm90b3R5cGUubHQgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5sZXNzZXI7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ncmVhdGVyT3JFcXVhbHMgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKHYpID49IDA7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmdlcSA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuZ3JlYXRlck9yRXF1YWxzID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5nZXEgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmdyZWF0ZXJPckVxdWFscyA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmdlcSA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmdyZWF0ZXJPckVxdWFscztcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmxlc3Nlck9yRXF1YWxzID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZSh2KSA8PSAwO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5sZXEgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmxlc3Nlck9yRXF1YWxzID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5sZXEgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmxlc3Nlck9yRXF1YWxzID0gQmlnSW50ZWdlci5wcm90b3R5cGUubGVxID0gQmlnSW50ZWdlci5wcm90b3R5cGUubGVzc2VyT3JFcXVhbHM7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc0V2ZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy52YWx1ZVswXSAmIDEpID09PSAwO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc0V2ZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy52YWx1ZSAmIDEpID09PSAwO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5pc0V2ZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy52YWx1ZSAmIEJpZ0ludCgxKSkgPT09IEJpZ0ludCgwKTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc09kZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlWzBdICYgMSkgPT09IDE7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzT2RkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMudmFsdWUgJiAxKSA9PT0gMTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuaXNPZGQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy52YWx1ZSAmIEJpZ0ludCgxKSkgPT09IEJpZ0ludCgxKTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc1Bvc2l0aXZlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuc2lnbjtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNQb3NpdGl2ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPiAwO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5pc1Bvc2l0aXZlID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc1Bvc2l0aXZlO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNOZWdhdGl2ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2lnbjtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNOZWdhdGl2ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPCAwO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5pc05lZ2F0aXZlID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc05lZ2F0aXZlO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNVbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzVW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIE1hdGguYWJzKHRoaXMudmFsdWUpID09PSAxO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5pc1VuaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFicygpLnZhbHVlID09PSBCaWdJbnQoMSk7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNaZXJvID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzWmVybyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IDA7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmlzWmVybyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IEJpZ0ludCgwKTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc0RpdmlzaWJsZUJ5ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpO1xuICAgICAgICBpZiAobi5pc1plcm8oKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAobi5pc1VuaXQoKSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChuLmNvbXBhcmVBYnMoMikgPT09IDApIHJldHVybiB0aGlzLmlzRXZlbigpO1xuICAgICAgICByZXR1cm4gdGhpcy5tb2QobikuaXNaZXJvKCk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmlzRGl2aXNpYmxlQnkgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzRGl2aXNpYmxlQnkgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc0RpdmlzaWJsZUJ5O1xuXG4gICAgZnVuY3Rpb24gaXNCYXNpY1ByaW1lKHYpIHtcbiAgICAgICAgdmFyIG4gPSB2LmFicygpO1xuICAgICAgICBpZiAobi5pc1VuaXQoKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAobi5lcXVhbHMoMikgfHwgbi5lcXVhbHMoMykgfHwgbi5lcXVhbHMoNSkpIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAobi5pc0V2ZW4oKSB8fCBuLmlzRGl2aXNpYmxlQnkoMykgfHwgbi5pc0RpdmlzaWJsZUJ5KDUpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChuLmxlc3Nlcig0OSkpIHJldHVybiB0cnVlO1xuICAgICAgICAvLyB3ZSBkb24ndCBrbm93IGlmIGl0J3MgcHJpbWU6IGxldCB0aGUgb3RoZXIgZnVuY3Rpb25zIGZpZ3VyZSBpdCBvdXRcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtaWxsZXJSYWJpblRlc3QobiwgYSkge1xuICAgICAgICB2YXIgblByZXYgPSBuLnByZXYoKSxcbiAgICAgICAgICAgIGIgPSBuUHJldixcbiAgICAgICAgICAgIHIgPSAwLFxuICAgICAgICAgICAgZCwgdCwgaSwgeDtcbiAgICAgICAgd2hpbGUgKGIuaXNFdmVuKCkpIGIgPSBiLmRpdmlkZSgyKSwgcisrO1xuICAgICAgICBuZXh0OiBmb3IgKGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKG4ubGVzc2VyKGFbaV0pKSBjb250aW51ZTtcbiAgICAgICAgICAgIHggPSBiaWdJbnQoYVtpXSkubW9kUG93KGIsIG4pO1xuICAgICAgICAgICAgaWYgKHguaXNVbml0KCkgfHwgeC5lcXVhbHMoblByZXYpKSBjb250aW51ZTtcbiAgICAgICAgICAgIGZvciAoZCA9IHIgLSAxOyBkICE9IDA7IGQtLSkge1xuICAgICAgICAgICAgICAgIHggPSB4LnNxdWFyZSgpLm1vZChuKTtcbiAgICAgICAgICAgICAgICBpZiAoeC5pc1VuaXQoKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmICh4LmVxdWFscyhuUHJldikpIGNvbnRpbnVlIG5leHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gU2V0IFwic3RyaWN0XCIgdG8gdHJ1ZSB0byBmb3JjZSBHUkgtc3VwcG9ydGVkIGxvd2VyIGJvdW5kIG9mIDIqbG9nKE4pXjJcbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc1ByaW1lID0gZnVuY3Rpb24gKHN0cmljdCkge1xuICAgICAgICB2YXIgaXNQcmltZSA9IGlzQmFzaWNQcmltZSh0aGlzKTtcbiAgICAgICAgaWYgKGlzUHJpbWUgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGlzUHJpbWU7XG4gICAgICAgIHZhciBuID0gdGhpcy5hYnMoKTtcbiAgICAgICAgdmFyIGJpdHMgPSBuLmJpdExlbmd0aCgpO1xuICAgICAgICBpZiAoYml0cyA8PSA2NClcbiAgICAgICAgICAgIHJldHVybiBtaWxsZXJSYWJpblRlc3QobiwgWzIsIDMsIDUsIDcsIDExLCAxMywgMTcsIDE5LCAyMywgMjksIDMxLCAzN10pO1xuICAgICAgICB2YXIgbG9nTiA9IE1hdGgubG9nKDIpICogYml0cy50b0pTTnVtYmVyKCk7XG4gICAgICAgIHZhciB0ID0gTWF0aC5jZWlsKChzdHJpY3QgPT09IHRydWUpID8gKDIgKiBNYXRoLnBvdyhsb2dOLCAyKSkgOiBsb2dOKTtcbiAgICAgICAgZm9yICh2YXIgYSA9IFtdLCBpID0gMDsgaSA8IHQ7IGkrKykge1xuICAgICAgICAgICAgYS5wdXNoKGJpZ0ludChpICsgMikpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtaWxsZXJSYWJpblRlc3QobiwgYSk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmlzUHJpbWUgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzUHJpbWUgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc1ByaW1lO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNQcm9iYWJsZVByaW1lID0gZnVuY3Rpb24gKGl0ZXJhdGlvbnMpIHtcbiAgICAgICAgdmFyIGlzUHJpbWUgPSBpc0Jhc2ljUHJpbWUodGhpcyk7XG4gICAgICAgIGlmIChpc1ByaW1lICE9PSB1bmRlZmluZWQpIHJldHVybiBpc1ByaW1lO1xuICAgICAgICB2YXIgbiA9IHRoaXMuYWJzKCk7XG4gICAgICAgIHZhciB0ID0gaXRlcmF0aW9ucyA9PT0gdW5kZWZpbmVkID8gNSA6IGl0ZXJhdGlvbnM7XG4gICAgICAgIGZvciAodmFyIGEgPSBbXSwgaSA9IDA7IGkgPCB0OyBpKyspIHtcbiAgICAgICAgICAgIGEucHVzaChiaWdJbnQucmFuZEJldHdlZW4oMiwgbi5taW51cygyKSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtaWxsZXJSYWJpblRlc3QobiwgYSk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmlzUHJvYmFibGVQcmltZSA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNQcm9iYWJsZVByaW1lID0gQmlnSW50ZWdlci5wcm90b3R5cGUuaXNQcm9iYWJsZVByaW1lO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubW9kSW52ID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgdmFyIHQgPSBiaWdJbnQuemVybywgbmV3VCA9IGJpZ0ludC5vbmUsIHIgPSBwYXJzZVZhbHVlKG4pLCBuZXdSID0gdGhpcy5hYnMoKSwgcSwgbGFzdFQsIGxhc3RSO1xuICAgICAgICB3aGlsZSAoIW5ld1IuaXNaZXJvKCkpIHtcbiAgICAgICAgICAgIHEgPSByLmRpdmlkZShuZXdSKTtcbiAgICAgICAgICAgIGxhc3RUID0gdDtcbiAgICAgICAgICAgIGxhc3RSID0gcjtcbiAgICAgICAgICAgIHQgPSBuZXdUO1xuICAgICAgICAgICAgciA9IG5ld1I7XG4gICAgICAgICAgICBuZXdUID0gbGFzdFQuc3VidHJhY3QocS5tdWx0aXBseShuZXdUKSk7XG4gICAgICAgICAgICBuZXdSID0gbGFzdFIuc3VidHJhY3QocS5tdWx0aXBseShuZXdSKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyLmlzVW5pdCgpKSB0aHJvdyBuZXcgRXJyb3IodGhpcy50b1N0cmluZygpICsgXCIgYW5kIFwiICsgbi50b1N0cmluZygpICsgXCIgYXJlIG5vdCBjby1wcmltZVwiKTtcbiAgICAgICAgaWYgKHQuY29tcGFyZSgwKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHQgPSB0LmFkZChuKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0Lm5lZ2F0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG5cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm1vZEludiA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubW9kSW52ID0gQmlnSW50ZWdlci5wcm90b3R5cGUubW9kSW52O1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuc2lnbikge1xuICAgICAgICAgICAgcmV0dXJuIHN1YnRyYWN0U21hbGwodmFsdWUsIDEsIHRoaXMuc2lnbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKGFkZFNtYWxsKHZhbHVlLCAxKSwgdGhpcy5zaWduKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlICsgMSA8IE1BWF9JTlQpIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKHZhbHVlICsgMSk7XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihNQVhfSU5UX0FSUiwgZmFsc2UpO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCh0aGlzLnZhbHVlICsgQmlnSW50KDEpKTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICBpZiAodGhpcy5zaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoYWRkU21hbGwodmFsdWUsIDEpLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VidHJhY3RTbWFsbCh2YWx1ZSwgMSwgdGhpcy5zaWduKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUucHJldiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlIC0gMSA+IC1NQVhfSU5UKSByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcih2YWx1ZSAtIDEpO1xuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoTUFYX0lOVF9BUlIsIHRydWUpO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCh0aGlzLnZhbHVlIC0gQmlnSW50KDEpKTtcbiAgICB9XG5cbiAgICB2YXIgcG93ZXJzT2ZUd28gPSBbMV07XG4gICAgd2hpbGUgKDIgKiBwb3dlcnNPZlR3b1twb3dlcnNPZlR3by5sZW5ndGggLSAxXSA8PSBCQVNFKSBwb3dlcnNPZlR3by5wdXNoKDIgKiBwb3dlcnNPZlR3b1twb3dlcnNPZlR3by5sZW5ndGggLSAxXSk7XG4gICAgdmFyIHBvd2VyczJMZW5ndGggPSBwb3dlcnNPZlR3by5sZW5ndGgsIGhpZ2hlc3RQb3dlcjIgPSBwb3dlcnNPZlR3b1twb3dlcnMyTGVuZ3RoIC0gMV07XG5cbiAgICBmdW5jdGlvbiBzaGlmdF9pc1NtYWxsKG4pIHtcbiAgICAgICAgcmV0dXJuIE1hdGguYWJzKG4pIDw9IEJBU0U7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuc2hpZnRMZWZ0ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpLnRvSlNOdW1iZXIoKTtcbiAgICAgICAgaWYgKCFzaGlmdF9pc1NtYWxsKG4pKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoU3RyaW5nKG4pICsgXCIgaXMgdG9vIGxhcmdlIGZvciBzaGlmdGluZy5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG4gPCAwKSByZXR1cm4gdGhpcy5zaGlmdFJpZ2h0KC1uKTtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXM7XG4gICAgICAgIGlmIChyZXN1bHQuaXNaZXJvKCkpIHJldHVybiByZXN1bHQ7XG4gICAgICAgIHdoaWxlIChuID49IHBvd2VyczJMZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5tdWx0aXBseShoaWdoZXN0UG93ZXIyKTtcbiAgICAgICAgICAgIG4gLT0gcG93ZXJzMkxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdC5tdWx0aXBseShwb3dlcnNPZlR3b1tuXSk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnNoaWZ0TGVmdCA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuc2hpZnRMZWZ0ID0gQmlnSW50ZWdlci5wcm90b3R5cGUuc2hpZnRMZWZ0O1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuc2hpZnRSaWdodCA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciByZW1RdW87XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KS50b0pTTnVtYmVyKCk7XG4gICAgICAgIGlmICghc2hpZnRfaXNTbWFsbChuKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFN0cmluZyhuKSArIFwiIGlzIHRvbyBsYXJnZSBmb3Igc2hpZnRpbmcuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuIDwgMCkgcmV0dXJuIHRoaXMuc2hpZnRMZWZ0KC1uKTtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXM7XG4gICAgICAgIHdoaWxlIChuID49IHBvd2VyczJMZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQuaXNaZXJvKCkgfHwgKHJlc3VsdC5pc05lZ2F0aXZlKCkgJiYgcmVzdWx0LmlzVW5pdCgpKSkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIHJlbVF1byA9IGRpdk1vZEFueShyZXN1bHQsIGhpZ2hlc3RQb3dlcjIpO1xuICAgICAgICAgICAgcmVzdWx0ID0gcmVtUXVvWzFdLmlzTmVnYXRpdmUoKSA/IHJlbVF1b1swXS5wcmV2KCkgOiByZW1RdW9bMF07XG4gICAgICAgICAgICBuIC09IHBvd2VyczJMZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJlbVF1byA9IGRpdk1vZEFueShyZXN1bHQsIHBvd2Vyc09mVHdvW25dKTtcbiAgICAgICAgcmV0dXJuIHJlbVF1b1sxXS5pc05lZ2F0aXZlKCkgPyByZW1RdW9bMF0ucHJldigpIDogcmVtUXVvWzBdO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5zaGlmdFJpZ2h0ID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5zaGlmdFJpZ2h0ID0gQmlnSW50ZWdlci5wcm90b3R5cGUuc2hpZnRSaWdodDtcblxuICAgIGZ1bmN0aW9uIGJpdHdpc2UoeCwgeSwgZm4pIHtcbiAgICAgICAgeSA9IHBhcnNlVmFsdWUoeSk7XG4gICAgICAgIHZhciB4U2lnbiA9IHguaXNOZWdhdGl2ZSgpLCB5U2lnbiA9IHkuaXNOZWdhdGl2ZSgpO1xuICAgICAgICB2YXIgeFJlbSA9IHhTaWduID8geC5ub3QoKSA6IHgsXG4gICAgICAgICAgICB5UmVtID0geVNpZ24gPyB5Lm5vdCgpIDogeTtcbiAgICAgICAgdmFyIHhEaWdpdCA9IDAsIHlEaWdpdCA9IDA7XG4gICAgICAgIHZhciB4RGl2TW9kID0gbnVsbCwgeURpdk1vZCA9IG51bGw7XG4gICAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgICAgd2hpbGUgKCF4UmVtLmlzWmVybygpIHx8ICF5UmVtLmlzWmVybygpKSB7XG4gICAgICAgICAgICB4RGl2TW9kID0gZGl2TW9kQW55KHhSZW0sIGhpZ2hlc3RQb3dlcjIpO1xuICAgICAgICAgICAgeERpZ2l0ID0geERpdk1vZFsxXS50b0pTTnVtYmVyKCk7XG4gICAgICAgICAgICBpZiAoeFNpZ24pIHtcbiAgICAgICAgICAgICAgICB4RGlnaXQgPSBoaWdoZXN0UG93ZXIyIC0gMSAtIHhEaWdpdDsgLy8gdHdvJ3MgY29tcGxlbWVudCBmb3IgbmVnYXRpdmUgbnVtYmVyc1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB5RGl2TW9kID0gZGl2TW9kQW55KHlSZW0sIGhpZ2hlc3RQb3dlcjIpO1xuICAgICAgICAgICAgeURpZ2l0ID0geURpdk1vZFsxXS50b0pTTnVtYmVyKCk7XG4gICAgICAgICAgICBpZiAoeVNpZ24pIHtcbiAgICAgICAgICAgICAgICB5RGlnaXQgPSBoaWdoZXN0UG93ZXIyIC0gMSAtIHlEaWdpdDsgLy8gdHdvJ3MgY29tcGxlbWVudCBmb3IgbmVnYXRpdmUgbnVtYmVyc1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB4UmVtID0geERpdk1vZFswXTtcbiAgICAgICAgICAgIHlSZW0gPSB5RGl2TW9kWzBdO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZm4oeERpZ2l0LCB5RGlnaXQpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3VtID0gZm4oeFNpZ24gPyAxIDogMCwgeVNpZ24gPyAxIDogMCkgIT09IDAgPyBiaWdJbnQoLTEpIDogYmlnSW50KDApO1xuICAgICAgICBmb3IgKHZhciBpID0gcmVzdWx0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7XG4gICAgICAgICAgICBzdW0gPSBzdW0ubXVsdGlwbHkoaGlnaGVzdFBvd2VyMikuYWRkKGJpZ0ludChyZXN1bHRbaV0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VtO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLm5vdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmVnYXRlKCkucHJldigpO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5ub3QgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLm5vdCA9IEJpZ0ludGVnZXIucHJvdG90eXBlLm5vdDtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmFuZCA9IGZ1bmN0aW9uIChuKSB7XG4gICAgICAgIHJldHVybiBiaXR3aXNlKHRoaXMsIG4sIGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhICYgYjsgfSk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmFuZCA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuYW5kID0gQmlnSW50ZWdlci5wcm90b3R5cGUuYW5kO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUub3IgPSBmdW5jdGlvbiAobikge1xuICAgICAgICByZXR1cm4gYml0d2lzZSh0aGlzLCBuLCBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSB8IGI7IH0pO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5vciA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUub3IgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5vcjtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnhvciA9IGZ1bmN0aW9uIChuKSB7XG4gICAgICAgIHJldHVybiBiaXR3aXNlKHRoaXMsIG4sIGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhIF4gYjsgfSk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnhvciA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUueG9yID0gQmlnSW50ZWdlci5wcm90b3R5cGUueG9yO1xuXG4gICAgdmFyIExPQk1BU0tfSSA9IDEgPDwgMzAsIExPQk1BU0tfQkkgPSAoQkFTRSAmIC1CQVNFKSAqIChCQVNFICYgLUJBU0UpIHwgTE9CTUFTS19JO1xuICAgIGZ1bmN0aW9uIHJvdWdoTE9CKG4pIHsgLy8gZ2V0IGxvd2VzdE9uZUJpdCAocm91Z2gpXG4gICAgICAgIC8vIFNtYWxsSW50ZWdlcjogcmV0dXJuIE1pbihsb3dlc3RPbmVCaXQobiksIDEgPDwgMzApXG4gICAgICAgIC8vIEJpZ0ludGVnZXI6IHJldHVybiBNaW4obG93ZXN0T25lQml0KG4pLCAxIDw8IDE0KSBbQkFTRT0xZTddXG4gICAgICAgIHZhciB2ID0gbi52YWx1ZSxcbiAgICAgICAgICAgIHggPSB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiA/IHYgfCBMT0JNQVNLX0kgOlxuICAgICAgICAgICAgICAgIHR5cGVvZiB2ID09PSBcImJpZ2ludFwiID8gdiB8IEJpZ0ludChMT0JNQVNLX0kpIDpcbiAgICAgICAgICAgICAgICAgICAgdlswXSArIHZbMV0gKiBCQVNFIHwgTE9CTUFTS19CSTtcbiAgICAgICAgcmV0dXJuIHggJiAteDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbnRlZ2VyTG9nYXJpdGhtKHZhbHVlLCBiYXNlKSB7XG4gICAgICAgIGlmIChiYXNlLmNvbXBhcmVUbyh2YWx1ZSkgPD0gMCkge1xuICAgICAgICAgICAgdmFyIHRtcCA9IGludGVnZXJMb2dhcml0aG0odmFsdWUsIGJhc2Uuc3F1YXJlKGJhc2UpKTtcbiAgICAgICAgICAgIHZhciBwID0gdG1wLnA7XG4gICAgICAgICAgICB2YXIgZSA9IHRtcC5lO1xuICAgICAgICAgICAgdmFyIHQgPSBwLm11bHRpcGx5KGJhc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHQuY29tcGFyZVRvKHZhbHVlKSA8PSAwID8geyBwOiB0LCBlOiBlICogMiArIDEgfSA6IHsgcDogcCwgZTogZSAqIDIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBwOiBiaWdJbnQoMSksIGU6IDAgfTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5iaXRMZW5ndGggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcztcbiAgICAgICAgaWYgKG4uY29tcGFyZVRvKGJpZ0ludCgwKSkgPCAwKSB7XG4gICAgICAgICAgICBuID0gbi5uZWdhdGUoKS5zdWJ0cmFjdChiaWdJbnQoMSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuLmNvbXBhcmVUbyhiaWdJbnQoMCkpID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gYmlnSW50KDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBiaWdJbnQoaW50ZWdlckxvZ2FyaXRobShuLCBiaWdJbnQoMikpLmUpLmFkZChiaWdJbnQoMSkpO1xuICAgIH1cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmJpdExlbmd0aCA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuYml0TGVuZ3RoID0gQmlnSW50ZWdlci5wcm90b3R5cGUuYml0TGVuZ3RoO1xuXG4gICAgZnVuY3Rpb24gbWF4KGEsIGIpIHtcbiAgICAgICAgYSA9IHBhcnNlVmFsdWUoYSk7XG4gICAgICAgIGIgPSBwYXJzZVZhbHVlKGIpO1xuICAgICAgICByZXR1cm4gYS5ncmVhdGVyKGIpID8gYSA6IGI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1pbihhLCBiKSB7XG4gICAgICAgIGEgPSBwYXJzZVZhbHVlKGEpO1xuICAgICAgICBiID0gcGFyc2VWYWx1ZShiKTtcbiAgICAgICAgcmV0dXJuIGEubGVzc2VyKGIpID8gYSA6IGI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdjZChhLCBiKSB7XG4gICAgICAgIGEgPSBwYXJzZVZhbHVlKGEpLmFicygpO1xuICAgICAgICBiID0gcGFyc2VWYWx1ZShiKS5hYnMoKTtcbiAgICAgICAgaWYgKGEuZXF1YWxzKGIpKSByZXR1cm4gYTtcbiAgICAgICAgaWYgKGEuaXNaZXJvKCkpIHJldHVybiBiO1xuICAgICAgICBpZiAoYi5pc1plcm8oKSkgcmV0dXJuIGE7XG4gICAgICAgIHZhciBjID0gSW50ZWdlclsxXSwgZCwgdDtcbiAgICAgICAgd2hpbGUgKGEuaXNFdmVuKCkgJiYgYi5pc0V2ZW4oKSkge1xuICAgICAgICAgICAgZCA9IG1pbihyb3VnaExPQihhKSwgcm91Z2hMT0IoYikpO1xuICAgICAgICAgICAgYSA9IGEuZGl2aWRlKGQpO1xuICAgICAgICAgICAgYiA9IGIuZGl2aWRlKGQpO1xuICAgICAgICAgICAgYyA9IGMubXVsdGlwbHkoZCk7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGEuaXNFdmVuKCkpIHtcbiAgICAgICAgICAgIGEgPSBhLmRpdmlkZShyb3VnaExPQihhKSk7XG4gICAgICAgIH1cbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgd2hpbGUgKGIuaXNFdmVuKCkpIHtcbiAgICAgICAgICAgICAgICBiID0gYi5kaXZpZGUocm91Z2hMT0IoYikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGEuZ3JlYXRlcihiKSkge1xuICAgICAgICAgICAgICAgIHQgPSBiOyBiID0gYTsgYSA9IHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiID0gYi5zdWJ0cmFjdChhKTtcbiAgICAgICAgfSB3aGlsZSAoIWIuaXNaZXJvKCkpO1xuICAgICAgICByZXR1cm4gYy5pc1VuaXQoKSA/IGEgOiBhLm11bHRpcGx5KGMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsY20oYSwgYikge1xuICAgICAgICBhID0gcGFyc2VWYWx1ZShhKS5hYnMoKTtcbiAgICAgICAgYiA9IHBhcnNlVmFsdWUoYikuYWJzKCk7XG4gICAgICAgIHJldHVybiBhLmRpdmlkZShnY2QoYSwgYikpLm11bHRpcGx5KGIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByYW5kQmV0d2VlbihhLCBiKSB7XG4gICAgICAgIGEgPSBwYXJzZVZhbHVlKGEpO1xuICAgICAgICBiID0gcGFyc2VWYWx1ZShiKTtcbiAgICAgICAgdmFyIGxvdyA9IG1pbihhLCBiKSwgaGlnaCA9IG1heChhLCBiKTtcbiAgICAgICAgdmFyIHJhbmdlID0gaGlnaC5zdWJ0cmFjdChsb3cpLmFkZCgxKTtcbiAgICAgICAgaWYgKHJhbmdlLmlzU21hbGwpIHJldHVybiBsb3cuYWRkKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHJhbmdlKSk7XG4gICAgICAgIHZhciBkaWdpdHMgPSB0b0Jhc2UocmFuZ2UsIEJBU0UpLnZhbHVlO1xuICAgICAgICB2YXIgcmVzdWx0ID0gW10sIHJlc3RyaWN0ZWQgPSB0cnVlO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpZ2l0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIHRvcCA9IHJlc3RyaWN0ZWQgPyBkaWdpdHNbaV0gOiBCQVNFO1xuICAgICAgICAgICAgdmFyIGRpZ2l0ID0gdHJ1bmNhdGUoTWF0aC5yYW5kb20oKSAqIHRvcCk7XG4gICAgICAgICAgICByZXN1bHQucHVzaChkaWdpdCk7XG4gICAgICAgICAgICBpZiAoZGlnaXQgPCB0b3ApIHJlc3RyaWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG93LmFkZChJbnRlZ2VyLmZyb21BcnJheShyZXN1bHQsIEJBU0UsIGZhbHNlKSk7XG4gICAgfVxuXG4gICAgdmFyIHBhcnNlQmFzZSA9IGZ1bmN0aW9uICh0ZXh0LCBiYXNlLCBhbHBoYWJldCwgY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICBhbHBoYWJldCA9IGFscGhhYmV0IHx8IERFRkFVTFRfQUxQSEFCRVQ7XG4gICAgICAgIHRleHQgPSBTdHJpbmcodGV4dCk7XG4gICAgICAgIGlmICghY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICAgICAgdGV4dCA9IHRleHQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGFscGhhYmV0ID0gYWxwaGFiZXQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbGVuZ3RoID0gdGV4dC5sZW5ndGg7XG4gICAgICAgIHZhciBpO1xuICAgICAgICB2YXIgYWJzQmFzZSA9IE1hdGguYWJzKGJhc2UpO1xuICAgICAgICB2YXIgYWxwaGFiZXRWYWx1ZXMgPSB7fTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGFscGhhYmV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhbHBoYWJldFZhbHVlc1thbHBoYWJldFtpXV0gPSBpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGMgPSB0ZXh0W2ldO1xuICAgICAgICAgICAgaWYgKGMgPT09IFwiLVwiKSBjb250aW51ZTtcbiAgICAgICAgICAgIGlmIChjIGluIGFscGhhYmV0VmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFscGhhYmV0VmFsdWVzW2NdID49IGFic0Jhc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT09IFwiMVwiICYmIGFic0Jhc2UgPT09IDEpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYyArIFwiIGlzIG5vdCBhIHZhbGlkIGRpZ2l0IGluIGJhc2UgXCIgKyBiYXNlICsgXCIuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBiYXNlID0gcGFyc2VWYWx1ZShiYXNlKTtcbiAgICAgICAgdmFyIGRpZ2l0cyA9IFtdO1xuICAgICAgICB2YXIgaXNOZWdhdGl2ZSA9IHRleHRbMF0gPT09IFwiLVwiO1xuICAgICAgICBmb3IgKGkgPSBpc05lZ2F0aXZlID8gMSA6IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHRleHRbaV07XG4gICAgICAgICAgICBpZiAoYyBpbiBhbHBoYWJldFZhbHVlcykgZGlnaXRzLnB1c2gocGFyc2VWYWx1ZShhbHBoYWJldFZhbHVlc1tjXSkpO1xuICAgICAgICAgICAgZWxzZSBpZiAoYyA9PT0gXCI8XCIpIHtcbiAgICAgICAgICAgICAgICB2YXIgc3RhcnQgPSBpO1xuICAgICAgICAgICAgICAgIGRvIHsgaSsrOyB9IHdoaWxlICh0ZXh0W2ldICE9PSBcIj5cIiAmJiBpIDwgdGV4dC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGRpZ2l0cy5wdXNoKHBhcnNlVmFsdWUodGV4dC5zbGljZShzdGFydCArIDEsIGkpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHRocm93IG5ldyBFcnJvcihjICsgXCIgaXMgbm90IGEgdmFsaWQgY2hhcmFjdGVyXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJzZUJhc2VGcm9tQXJyYXkoZGlnaXRzLCBiYXNlLCBpc05lZ2F0aXZlKTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcGFyc2VCYXNlRnJvbUFycmF5KGRpZ2l0cywgYmFzZSwgaXNOZWdhdGl2ZSkge1xuICAgICAgICB2YXIgdmFsID0gSW50ZWdlclswXSwgcG93ID0gSW50ZWdlclsxXSwgaTtcbiAgICAgICAgZm9yIChpID0gZGlnaXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICB2YWwgPSB2YWwuYWRkKGRpZ2l0c1tpXS50aW1lcyhwb3cpKTtcbiAgICAgICAgICAgIHBvdyA9IHBvdy50aW1lcyhiYXNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNOZWdhdGl2ZSA/IHZhbC5uZWdhdGUoKSA6IHZhbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdHJpbmdpZnkoZGlnaXQsIGFscGhhYmV0KSB7XG4gICAgICAgIGFscGhhYmV0ID0gYWxwaGFiZXQgfHwgREVGQVVMVF9BTFBIQUJFVDtcbiAgICAgICAgaWYgKGRpZ2l0IDwgYWxwaGFiZXQubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxwaGFiZXRbZGlnaXRdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcIjxcIiArIGRpZ2l0ICsgXCI+XCI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9CYXNlKG4sIGJhc2UpIHtcbiAgICAgICAgYmFzZSA9IGJpZ0ludChiYXNlKTtcbiAgICAgICAgaWYgKGJhc2UuaXNaZXJvKCkpIHtcbiAgICAgICAgICAgIGlmIChuLmlzWmVybygpKSByZXR1cm4geyB2YWx1ZTogWzBdLCBpc05lZ2F0aXZlOiBmYWxzZSB9O1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNvbnZlcnQgbm9uemVybyBudW1iZXJzIHRvIGJhc2UgMC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJhc2UuZXF1YWxzKC0xKSkge1xuICAgICAgICAgICAgaWYgKG4uaXNaZXJvKCkpIHJldHVybiB7IHZhbHVlOiBbMF0sIGlzTmVnYXRpdmU6IGZhbHNlIH07XG4gICAgICAgICAgICBpZiAobi5pc05lZ2F0aXZlKCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFtdLmNvbmNhdC5hcHBseShbXSwgQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkoLW4udG9KU051bWJlcigpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoQXJyYXkucHJvdG90eXBlLnZhbHVlT2YsIFsxLCAwXSlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgaXNOZWdhdGl2ZTogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB2YXIgYXJyID0gQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkobi50b0pTTnVtYmVyKCkgLSAxKSlcbiAgICAgICAgICAgICAgICAubWFwKEFycmF5LnByb3RvdHlwZS52YWx1ZU9mLCBbMCwgMV0pO1xuICAgICAgICAgICAgYXJyLnVuc2hpZnQoWzFdKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtdLmNvbmNhdC5hcHBseShbXSwgYXJyKSxcbiAgICAgICAgICAgICAgICBpc05lZ2F0aXZlOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuZWcgPSBmYWxzZTtcbiAgICAgICAgaWYgKG4uaXNOZWdhdGl2ZSgpICYmIGJhc2UuaXNQb3NpdGl2ZSgpKSB7XG4gICAgICAgICAgICBuZWcgPSB0cnVlO1xuICAgICAgICAgICAgbiA9IG4uYWJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJhc2UuaXNVbml0KCkpIHtcbiAgICAgICAgICAgIGlmIChuLmlzWmVybygpKSByZXR1cm4geyB2YWx1ZTogWzBdLCBpc05lZ2F0aXZlOiBmYWxzZSB9O1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBBcnJheS5hcHBseShudWxsLCBBcnJheShuLnRvSlNOdW1iZXIoKSkpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoTnVtYmVyLnByb3RvdHlwZS52YWx1ZU9mLCAxKSxcbiAgICAgICAgICAgICAgICBpc05lZ2F0aXZlOiBuZWdcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG91dCA9IFtdO1xuICAgICAgICB2YXIgbGVmdCA9IG4sIGRpdm1vZDtcbiAgICAgICAgd2hpbGUgKGxlZnQuaXNOZWdhdGl2ZSgpIHx8IGxlZnQuY29tcGFyZUFicyhiYXNlKSA+PSAwKSB7XG4gICAgICAgICAgICBkaXZtb2QgPSBsZWZ0LmRpdm1vZChiYXNlKTtcbiAgICAgICAgICAgIGxlZnQgPSBkaXZtb2QucXVvdGllbnQ7XG4gICAgICAgICAgICB2YXIgZGlnaXQgPSBkaXZtb2QucmVtYWluZGVyO1xuICAgICAgICAgICAgaWYgKGRpZ2l0LmlzTmVnYXRpdmUoKSkge1xuICAgICAgICAgICAgICAgIGRpZ2l0ID0gYmFzZS5taW51cyhkaWdpdCkuYWJzKCk7XG4gICAgICAgICAgICAgICAgbGVmdCA9IGxlZnQubmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0LnB1c2goZGlnaXQudG9KU051bWJlcigpKTtcbiAgICAgICAgfVxuICAgICAgICBvdXQucHVzaChsZWZ0LnRvSlNOdW1iZXIoKSk7XG4gICAgICAgIHJldHVybiB7IHZhbHVlOiBvdXQucmV2ZXJzZSgpLCBpc05lZ2F0aXZlOiBuZWcgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0Jhc2VTdHJpbmcobiwgYmFzZSwgYWxwaGFiZXQpIHtcbiAgICAgICAgdmFyIGFyciA9IHRvQmFzZShuLCBiYXNlKTtcbiAgICAgICAgcmV0dXJuIChhcnIuaXNOZWdhdGl2ZSA/IFwiLVwiIDogXCJcIikgKyBhcnIudmFsdWUubWFwKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5naWZ5KHgsIGFscGhhYmV0KTtcbiAgICAgICAgfSkuam9pbignJyk7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uIChyYWRpeCkge1xuICAgICAgICByZXR1cm4gdG9CYXNlKHRoaXMsIHJhZGl4KTtcbiAgICB9O1xuXG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24gKHJhZGl4KSB7XG4gICAgICAgIHJldHVybiB0b0Jhc2UodGhpcywgcmFkaXgpO1xuICAgIH07XG5cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiAocmFkaXgpIHtcbiAgICAgICAgcmV0dXJuIHRvQmFzZSh0aGlzLCByYWRpeCk7XG4gICAgfTtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKHJhZGl4LCBhbHBoYWJldCkge1xuICAgICAgICBpZiAocmFkaXggPT09IHVuZGVmaW5lZCkgcmFkaXggPSAxMDtcbiAgICAgICAgaWYgKHJhZGl4ICE9PSAxMCkgcmV0dXJuIHRvQmFzZVN0cmluZyh0aGlzLCByYWRpeCwgYWxwaGFiZXQpO1xuICAgICAgICB2YXIgdiA9IHRoaXMudmFsdWUsIGwgPSB2Lmxlbmd0aCwgc3RyID0gU3RyaW5nKHZbLS1sXSksIHplcm9zID0gXCIwMDAwMDAwXCIsIGRpZ2l0O1xuICAgICAgICB3aGlsZSAoLS1sID49IDApIHtcbiAgICAgICAgICAgIGRpZ2l0ID0gU3RyaW5nKHZbbF0pO1xuICAgICAgICAgICAgc3RyICs9IHplcm9zLnNsaWNlKGRpZ2l0Lmxlbmd0aCkgKyBkaWdpdDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2lnbiA9IHRoaXMuc2lnbiA/IFwiLVwiIDogXCJcIjtcbiAgICAgICAgcmV0dXJuIHNpZ24gKyBzdHI7XG4gICAgfTtcblxuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAocmFkaXgsIGFscGhhYmV0KSB7XG4gICAgICAgIGlmIChyYWRpeCA9PT0gdW5kZWZpbmVkKSByYWRpeCA9IDEwO1xuICAgICAgICBpZiAocmFkaXggIT0gMTApIHJldHVybiB0b0Jhc2VTdHJpbmcodGhpcywgcmFkaXgsIGFscGhhYmV0KTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKTtcbiAgICB9O1xuXG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS50b1N0cmluZyA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUudG9TdHJpbmc7XG5cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnRvSlNPTiA9IEJpZ0ludGVnZXIucHJvdG90eXBlLnRvSlNPTiA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy50b1N0cmluZygpOyB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS52YWx1ZU9mID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQodGhpcy50b1N0cmluZygpLCAxMCk7XG4gICAgfTtcbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS50b0pTTnVtYmVyID0gQmlnSW50ZWdlci5wcm90b3R5cGUudmFsdWVPZjtcblxuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUudmFsdWVPZiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnRvSlNOdW1iZXIgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLnZhbHVlT2Y7XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS52YWx1ZU9mID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS50b0pTTnVtYmVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQodGhpcy50b1N0cmluZygpLCAxMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VTdHJpbmdWYWx1ZSh2KSB7XG4gICAgICAgIGlmIChpc1ByZWNpc2UoK3YpKSB7XG4gICAgICAgICAgICB2YXIgeCA9ICt2O1xuICAgICAgICAgICAgaWYgKHggPT09IHRydW5jYXRlKHgpKVxuICAgICAgICAgICAgICAgIHJldHVybiBzdXBwb3J0c05hdGl2ZUJpZ0ludCA/IG5ldyBOYXRpdmVCaWdJbnQoQmlnSW50KHgpKSA6IG5ldyBTbWFsbEludGVnZXIoeCk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGludGVnZXI6IFwiICsgdik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNpZ24gPSB2WzBdID09PSBcIi1cIjtcbiAgICAgICAgaWYgKHNpZ24pIHYgPSB2LnNsaWNlKDEpO1xuICAgICAgICB2YXIgc3BsaXQgPSB2LnNwbGl0KC9lL2kpO1xuICAgICAgICBpZiAoc3BsaXQubGVuZ3RoID4gMikgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBpbnRlZ2VyOiBcIiArIHNwbGl0LmpvaW4oXCJlXCIpKTtcbiAgICAgICAgaWYgKHNwbGl0Lmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgdmFyIGV4cCA9IHNwbGl0WzFdO1xuICAgICAgICAgICAgaWYgKGV4cFswXSA9PT0gXCIrXCIpIGV4cCA9IGV4cC5zbGljZSgxKTtcbiAgICAgICAgICAgIGV4cCA9ICtleHA7XG4gICAgICAgICAgICBpZiAoZXhwICE9PSB0cnVuY2F0ZShleHApIHx8ICFpc1ByZWNpc2UoZXhwKSkgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBpbnRlZ2VyOiBcIiArIGV4cCArIFwiIGlzIG5vdCBhIHZhbGlkIGV4cG9uZW50LlwiKTtcbiAgICAgICAgICAgIHZhciB0ZXh0ID0gc3BsaXRbMF07XG4gICAgICAgICAgICB2YXIgZGVjaW1hbFBsYWNlID0gdGV4dC5pbmRleE9mKFwiLlwiKTtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsUGxhY2UgPj0gMCkge1xuICAgICAgICAgICAgICAgIGV4cCAtPSB0ZXh0Lmxlbmd0aCAtIGRlY2ltYWxQbGFjZSAtIDE7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuc2xpY2UoMCwgZGVjaW1hbFBsYWNlKSArIHRleHQuc2xpY2UoZGVjaW1hbFBsYWNlICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXhwIDwgMCkgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGluY2x1ZGUgbmVnYXRpdmUgZXhwb25lbnQgcGFydCBmb3IgaW50ZWdlcnNcIik7XG4gICAgICAgICAgICB0ZXh0ICs9IChuZXcgQXJyYXkoZXhwICsgMSkpLmpvaW4oXCIwXCIpO1xuICAgICAgICAgICAgdiA9IHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlzVmFsaWQgPSAvXihbMC05XVswLTldKikkLy50ZXN0KHYpO1xuICAgICAgICBpZiAoIWlzVmFsaWQpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgaW50ZWdlcjogXCIgKyB2KTtcbiAgICAgICAgaWYgKHN1cHBvcnRzTmF0aXZlQmlnSW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludChCaWdJbnQoc2lnbiA/IFwiLVwiICsgdiA6IHYpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgciA9IFtdLCBtYXggPSB2Lmxlbmd0aCwgbCA9IExPR19CQVNFLCBtaW4gPSBtYXggLSBsO1xuICAgICAgICB3aGlsZSAobWF4ID4gMCkge1xuICAgICAgICAgICAgci5wdXNoKCt2LnNsaWNlKG1pbiwgbWF4KSk7XG4gICAgICAgICAgICBtaW4gLT0gbDtcbiAgICAgICAgICAgIGlmIChtaW4gPCAwKSBtaW4gPSAwO1xuICAgICAgICAgICAgbWF4IC09IGw7XG4gICAgICAgIH1cbiAgICAgICAgdHJpbShyKTtcbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKHIsIHNpZ24pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTnVtYmVyVmFsdWUodikge1xuICAgICAgICBpZiAoc3VwcG9ydHNOYXRpdmVCaWdJbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KEJpZ0ludCh2KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzUHJlY2lzZSh2KSkge1xuICAgICAgICAgICAgaWYgKHYgIT09IHRydW5jYXRlKHYpKSB0aHJvdyBuZXcgRXJyb3IodiArIFwiIGlzIG5vdCBhbiBpbnRlZ2VyLlwiKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKHYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJzZVN0cmluZ1ZhbHVlKHYudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VWYWx1ZSh2KSB7XG4gICAgICAgIGlmICh0eXBlb2YgdiA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlTnVtYmVyVmFsdWUodik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VTdHJpbmdWYWx1ZSh2KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHYgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KHYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cbiAgICAvLyBQcmUtZGVmaW5lIG51bWJlcnMgaW4gcmFuZ2UgWy05OTksOTk5XVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKSB7XG4gICAgICAgIEludGVnZXJbaV0gPSBwYXJzZVZhbHVlKGkpO1xuICAgICAgICBpZiAoaSA+IDApIEludGVnZXJbLWldID0gcGFyc2VWYWx1ZSgtaSk7XG4gICAgfVxuICAgIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgSW50ZWdlci5vbmUgPSBJbnRlZ2VyWzFdO1xuICAgIEludGVnZXIuemVybyA9IEludGVnZXJbMF07XG4gICAgSW50ZWdlci5taW51c09uZSA9IEludGVnZXJbLTFdO1xuICAgIEludGVnZXIubWF4ID0gbWF4O1xuICAgIEludGVnZXIubWluID0gbWluO1xuICAgIEludGVnZXIuZ2NkID0gZ2NkO1xuICAgIEludGVnZXIubGNtID0gbGNtO1xuICAgIEludGVnZXIuaXNJbnN0YW5jZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4IGluc3RhbmNlb2YgQmlnSW50ZWdlciB8fCB4IGluc3RhbmNlb2YgU21hbGxJbnRlZ2VyIHx8IHggaW5zdGFuY2VvZiBOYXRpdmVCaWdJbnQ7IH07XG4gICAgSW50ZWdlci5yYW5kQmV0d2VlbiA9IHJhbmRCZXR3ZWVuO1xuXG4gICAgSW50ZWdlci5mcm9tQXJyYXkgPSBmdW5jdGlvbiAoZGlnaXRzLCBiYXNlLCBpc05lZ2F0aXZlKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUJhc2VGcm9tQXJyYXkoZGlnaXRzLm1hcChwYXJzZVZhbHVlKSwgcGFyc2VWYWx1ZShiYXNlIHx8IDEwKSwgaXNOZWdhdGl2ZSk7XG4gICAgfTtcblxuICAgIHJldHVybiBJbnRlZ2VyO1xufSkoKTtcbiIsIi8qIGdsb2JhbCBiaWdJbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5cbi8vIFdlIHJlcHJlc2VudCBhIFtaLnRdIGFzIGEgamF2YXNjcmlwdCAzMmJpdCBpbnRlZ2VycyBpZiBpdCBmaXRzIG9yIGFzIGEgYmlnSW50LlxuXG4vL1Byb3ZpZGVzOiBtbF96X25vcm1hbGl6ZVxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X25vcm1hbGl6ZSh4KXtcbiAgdmFyIHkgPSB4LnRvSlNOdW1iZXIgKCkgfCAwO1xuICBpZih4LmVxdWFscyhiaWdJbnQoeSkpKSByZXR1cm4geTtcbiAgcmV0dXJuIHg7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfbXVsX292ZXJmbG93c1xuZnVuY3Rpb24gbWxfel9tdWxfb3ZlcmZsb3dzKHgseSl7XG4gIHZhciB6ID0geCp5O1xuICByZXR1cm4geiAhPSAoenwwKTtcbn1cblxuLy9leHRlcm5hbCBpbml0OiB1bml0IC0+IHVuaXRcbi8vUHJvdmlkZXM6IG1sX3pfaW5pdFxuLy9SZXF1aXJlczogY2FtbF96YXJpdGhfbWFyc2hhbCwgY2FtbF96YXJpdGhfdW5tYXJzaGFsLCBjYW1sX2N1c3RvbV9vcHMsIG1sX3pfaGFzaCwgbWxfel9jb21wYXJlXG5mdW5jdGlvbiBtbF96X2luaXQodW5pdCkge1xuICBjYW1sX2N1c3RvbV9vcHNbJ196J10gPVxuICAgIHsgc2VyaWFsaXplIDogY2FtbF96YXJpdGhfbWFyc2hhbCxcbiAgICAgIGRlc2VyaWFsaXplIDogY2FtbF96YXJpdGhfdW5tYXJzaGFsLFxuICAgICAgaGFzaCA6IG1sX3pfaGFzaCxcbiAgICAgIGNvbXBhcmUgOiBtbF96X2NvbXBhcmUsXG4gICAgfTtcbiAgcmV0dXJuIDAgfVxuXG4vL2V4dGVybmFsIG5lZzogdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X25lZyBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9uZWcoejEpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkubmVnYXRlKCkpO1xufVxuXG4vL2V4dGVybmFsIGFkZDogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfYWRkIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2FkZCh6MSwgejIpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkuYWRkKGJpZ0ludCh6MikpKTtcbn1cblxuLy9leHRlcm5hbCBzdWI6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3N1YiBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9zdWIoejEsIHoyKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLnN1YnRyYWN0KGJpZ0ludCh6MikpKTtcbn1cblxuLy9leHRlcm5hbCBtdWw6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X211bCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9tdWwoejEsIHoyKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLm11bHRpcGx5KGJpZ0ludCh6MikpKTtcbn1cblxuLy9leHRlcm5hbCBkaXY6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2RpdlxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX3JhaXNlX3plcm9fZGl2aWRlLCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9kaXYoejEsIHoyKSB7XG4gIHoyID0gYmlnSW50KHoyKVxuICBpZih6Mi5lcXVhbHMoYmlnSW50KDApKSkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSgpO1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5kaXZpZGUoYmlnSW50KHoyKSkpXG59XG5cbi8vZXh0ZXJuYWwgY2RpdjogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfY2RpdlxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X2RpdiwgbWxfel9zaWduLCBtbF96X2FkZFxuZnVuY3Rpb24gbWxfel9jZGl2KHoxLCB6Mikge1xuICB2YXIgejFfcG9zID0gbWxfel9zaWduKHoxKTtcbiAgdmFyIHoyX3BvcyA9IG1sX3pfc2lnbih6Mik7XG4gIGlmICh6MV9wb3MgKiB6Ml9wb3MgPiAwKSAvKiBNdWx0aXBsaWNhdGlvbiBpcyBsaWtlIGEgc2lnbndpc2UgeG9yICovIHtcbiAgICBpZiAoIWJpZ0ludCh6MSkubW9kKGJpZ0ludCh6MikpLmVxdWFscyhiaWdJbnQoMCkpKSB7XG4gICAgICByZXR1cm4gbWxfel9hZGQobWxfel9kaXYoejEsIHoyKSwgYmlnSW50KDEpKSA7XG4gICAgfVxuICB9XG4gIHJldHVybiBtbF96X2Rpdih6MSwgejIpO1xufVxuXG4vL2V4dGVybmFsIGZkaXY6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2ZkaXZcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9kaXYsIG1sX3pfc2lnbiwgbWxfel9zdWJcbmZ1bmN0aW9uIG1sX3pfZmRpdih6MSwgejIpIHtcbiAgdmFyIHoxX3BvcyA9IG1sX3pfc2lnbih6MSk7XG4gIHZhciB6Ml9wb3MgPSBtbF96X3NpZ24oejIpO1xuICBpZiAoejFfcG9zICogejJfcG9zIDwgMCkgLyogTXVsdGlwbGljYXRpb24gaXMgbGlrZSBhIHNpZ253aXNlIHhvciAqLyB7XG4gICAgaWYgKCFiaWdJbnQoejEpLm1vZChiaWdJbnQoejIpKS5lcXVhbHMoYmlnSW50KDApKSkge1xuICAgICAgcmV0dXJuIG1sX3pfc3ViKG1sX3pfZGl2KHoxLCB6MiksIGJpZ0ludCgxKSkgO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWxfel9kaXYoejEsIHoyKTtcbn1cblxuLy9leHRlcm5hbCByZW06IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3JlbVxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX3JhaXNlX3plcm9fZGl2aWRlLCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9yZW0oejEsIHoyKSB7XG4gIHoyID0gYmlnSW50KHoyKTtcbiAgaWYgKHoyLmVxdWFscyhiaWdJbnQoMCkpKSB7XG4gICAgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSgpO1xuICB9XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLm1vZCh6MikpO1xufVxuXG4vL2V4dGVybmFsIGRpdl9yZW06IHQgLT4gdCAtPiAodCAqIHQpXG4vL1Byb3ZpZGVzOiBtbF96X2Rpdl9yZW1cbi8vUmVxdWlyZXM6IG1sX3pfZGl2LCBtbF96X3JlbVxuZnVuY3Rpb24gbWxfel9kaXZfcmVtKHoxLCB6Mikge1xuICByZXR1cm4gWzAsIG1sX3pfZGl2KHoxLHoyKSwgbWxfel9yZW0oejEsIHoyKV1cbn1cbi8vZXh0ZXJuYWwgc3VjYzogdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3N1Y2MgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfc3VjYyh6MSkge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5uZXh0KCkpO1xufVxuXG4vL2V4dGVybmFsIHByZWQ6IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9wcmVkIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X3ByZWQoejEpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkucHJldigpKTtcbn1cblxuLy9leHRlcm5hbCBhYnM6IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9hYnMgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfYWJzKHoxKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLmFicygpKTtcbn1cblxuLy9leHRlcm5hbCBsb2dhbmQ6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2xvZ2FuZCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9sb2dhbmQoejEsIHoyKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLmFuZChiaWdJbnQoejIpKSk7XG59XG5cbi8vZXh0ZXJuYWwgbG9nb3I6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2xvZ29yIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2xvZ29yKHoxLCB6Mikge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5vcihiaWdJbnQoejIpKSk7XG59XG5cbi8vZXh0ZXJuYWwgbG9neG9yOiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9sb2d4b3IgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfbG9neG9yKHoxLCB6Mikge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS54b3IoYmlnSW50KHoyKSkpO1xufVxuXG4vL2V4dGVybmFsIGxvZ25vdDogdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2xvZ25vdCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2xvZ25vdCh6MSkge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5ub3QoKSk7XG59XG5cbi8vZXh0ZXJuYWwgc2hpZnRfbGVmdDogdCAtPiBpbnQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9zaGlmdF9sZWZ0IGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X3NoaWZ0X2xlZnQoejEsIGFtdCkge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5zaGlmdExlZnQoYW10KSk7XG59XG5cbi8vZXh0ZXJuYWwgc2hpZnRfcmlnaHQ6IHQgLT4gaW50IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfc2hpZnRfcmlnaHQgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfc2hpZnRfcmlnaHQoejEsIGFtdCkge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5zaGlmdFJpZ2h0KGFtdCkpO1xufVxuXG4vL2V4dGVybmFsIHNoaWZ0X3JpZ2h0X3RydW5jOiB0IC0+IGludCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3NoaWZ0X3JpZ2h0X3RydW5jIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfZGl2XG5mdW5jdGlvbiBtbF96X3NoaWZ0X3JpZ2h0X3RydW5jKHoxLCB6Mikge1xuICByZXR1cm4gbWxfel9kaXYoYmlnSW50KHoxKSwgYmlnSW50KDIpLnBvdyh6MikpXG59XG5cbi8vZXh0ZXJuYWwgb2ZfaW50MzI6IGludDMyIC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfb2ZfaW50MzIgY29uc3RcbmZ1bmN0aW9uIG1sX3pfb2ZfaW50MzIoaSkge1xuICByZXR1cm4gaSB8IDA7XG59XG5cbi8vZXh0ZXJuYWwgb2ZfbmF0aXZlaW50OiBuYXRpdmVpbnQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9vZl9uYXRpdmVpbnQgY29uc3RcbmZ1bmN0aW9uIG1sX3pfb2ZfbmF0aXZlaW50KGkpIHtcbiAgcmV0dXJuIGkgfCAwO1xufVxuXG4vL2V4dGVybmFsIG9mX2ludDY0OiBpbnQ2NCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X29mX2ludDY0IGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfaW50NjRfY29tcGFyZSwgY2FtbF9pbnQ2NF9uZWcsIG1sX3pfbm9ybWFsaXplXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSxjYW1sX2ludDY0X2hpMzIsY2FtbF9pbnQ2NF9sbzMyXG5mdW5jdGlvbiBtbF96X29mX2ludDY0KGk2NCkge1xuICB2YXIgbmVnID0gZmFsc2U7XG4gIGlmKGNhbWxfaW50NjRfY29tcGFyZShpNjQsIGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpKDAsMCkpIDwgMCkge1xuICAgIG5lZyA9IHRydWU7XG4gICAgaTY0ID0gY2FtbF9pbnQ2NF9uZWcoaTY0KVxuICB9XG4gIHZhciBsbyA9IGNhbWxfaW50NjRfbG8zMihpNjQpID4+PiAwO1xuICB2YXIgaGkgPSBjYW1sX2ludDY0X2hpMzIoaTY0KSA+Pj4gMDtcbiAgdmFyIHggPSBiaWdJbnQobG8pLmFkZChiaWdJbnQoaGkpLnNoaWZ0TGVmdCgzMikpO1xuICBpZihuZWcpIHsgeCA9IHgubmVnYXRlKCkgfTtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHgpXG59XG5cbi8vZXh0ZXJuYWwgb2ZfZmxvYXQ6IGZsb2F0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfb2ZfZmxvYXRcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9uYW1lZF92YWx1ZSwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfb2ZfZmxvYXQoZjEpIHtcbiAgaWYoZjEgPT0gSW5maW5pdHkgfHwgZjEgPT0gLUluZmluaXR5IHx8IGYxICE9IGYxKVxuICAgIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9uYW1lZF92YWx1ZShcIm1sX3pfb3ZlcmZsb3dcIikpO1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KGYxPDA/TWF0aC5jZWlsKGYxKTpNYXRoLmZsb29yKGYxKSkpO1xufVxuXG4vL2V4dGVybmFsIHRvX2ludDogdCAtPiBpbnRcbi8vUHJvdmlkZXM6IG1sX3pfdG9faW50XG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfbmFtZWRfdmFsdWVcbmZ1bmN0aW9uIG1sX3pfdG9faW50KHoxKSB7XG4gIGlmICh6MSA9PSAoejEgfCAwKSkgcmV0dXJuIHoxIHwgMDtcbiAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX25hbWVkX3ZhbHVlKFwibWxfel9vdmVyZmxvd1wiKSk7XG59XG5cbi8vZXh0ZXJuYWwgdG9faW50MzI6IHQgLT4gaW50MzJcbi8vUHJvdmlkZXM6IG1sX3pfdG9faW50MzJcbi8vUmVxdWlyZXM6IG1sX3pfdG9faW50XG5mdW5jdGlvbiBtbF96X3RvX2ludDMyKHoxKSB7IHJldHVybiBtbF96X3RvX2ludCh6MSkgfVxuXG4vL2V4dGVybmFsIHRvX2ludDY0OiB0IC0+IGludDY0XG4vL1Byb3ZpZGVzOiBtbF96X3RvX2ludDY0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfZml0c19pbnQ2NCwgY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9uYW1lZF92YWx1ZVxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGlcbmZ1bmN0aW9uIG1sX3pfdG9faW50NjQoejEpIHtcbiAgejEgPSBiaWdJbnQoejEpXG4gIGlmKCFtbF96X2ZpdHNfaW50NjQoejEpKSB7XG4gICAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX25hbWVkX3ZhbHVlKFwibWxfel9vdmVyZmxvd1wiKSk7XG4gIH1cbiAgdmFyIG1hc2sgPSBiaWdJbnQoMHhmZmZmZmZmZilcbiAgdmFyIGxvID0gejEuYW5kKG1hc2spLnRvSlNOdW1iZXIoKTtcbiAgdmFyIGhpID0gejEuc2hpZnRSaWdodCgzMikuYW5kKG1hc2spLnRvSlNOdW1iZXIoKTtcbiAgdmFyIHggPSBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaShsbywgaGkpO1xuICByZXR1cm4geDtcbn1cblxuLy9leHRlcm5hbCB0ZXN0Yml0OiB0IC0+IGJvb2xcbi8vUHJvdmlkZXM6IG1sX3pfdGVzdGJpdFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X3Rlc3RiaXQoeixwb3Mpe1xuICB6ID0gYmlnSW50KHopO1xuICByZXR1cm4gKHouc2hpZnRSaWdodChwb3MpLmFuZChiaWdJbnQoMSkpLnRvSlNOdW1iZXIoKSl8MDtcbn1cblxuLy9leHRlcm5hbCB0b19uYXRpdmVpbnQ6IHQgLT4gbmF0aXZlaW50XG4vL1Byb3ZpZGVzOiBtbF96X3RvX25hdGl2ZWludFxuLy9SZXF1aXJlczogbWxfel90b19pbnRcbmZ1bmN0aW9uIG1sX3pfdG9fbmF0aXZlaW50KHoxKSB7IHJldHVybiBtbF96X3RvX2ludCh6MSkgfVxuXG4vL2V4dGVybmFsIGZvcm1hdDogc3RyaW5nIC0+IHQgLT4gc3RyaW5nXG4vL1Byb3ZpZGVzOiBtbF96X2Zvcm1hdCBcbi8vUmVxdWlyZXM6IGJpZ0ludFxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF9mYWlsd2l0aCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfZm9ybWF0KGZtdCwgejEpIHtcbiAgejEgPSBiaWdJbnQoejEpO1xuICB2YXIgZm10ID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhmbXQpO1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvWmFyaXRoL2Jsb2IvZDA1NTVkNDUxY2UyOTVjNDQ5N2YyNGE4ZDk5OTNmOGRkMjMwOTdkZi96Lm1saXAjTDI5N1xuICB2YXIgYmFzZSA9IDEwO1xuICB2YXIgY2FzID0gMDtcbiAgdmFyIHdpZHRoID0gMDtcbiAgdmFyIGFsdCA9IDA7XG4gIHZhciBkaXIgPSAwO1xuICB2YXIgc2lnbiA9ICcnO1xuICB2YXIgcGFkID0gJyAnO1xuICB2YXIgaWR4ID0gMDtcbiAgdmFyIHByZWZpeD1cIlwiO1xuICB3aGlsZShmbXRbaWR4XSA9PSAnJScpIGlkeCsrO1xuICBmb3IoOzsgaWR4KyspIHtcbiAgICBpZihmbXRbaWR4XSA9PSAnIycpIGFsdCA9IDE7XG4gICAgZWxzZSBpZiAoZm10W2lkeF0gPT0gJzAnKSBwYWQgPSAnMCc7XG4gICAgZWxzZSBpZiAoZm10W2lkeF0gPT0gJy0nKSBkaXIgPSAxO1xuICAgIGVsc2UgaWYgKGZtdFtpZHhdID09ICcgJyB8fCBmbXRbaWR4XSA9PSAnKycpIHNpZ24gPSBmbXRbaWR4XTtcbiAgICBlbHNlIGJyZWFrO1xuICB9XG4gIGlmKHoxLmx0KGJpZ0ludCgwKSkpe3NpZ24gPSAnLSc7ejEgPSB6MS5uZWdhdGUoKX07XG4gIGZvcig7Zm10W2lkeF0+PScwJyAmJiBmbXRbaWR4XSA8PSc5JztpZHgrKylcbiAgICB3aWR0aD0xMCp3aWR0aCArICgrZm10W2lkeF0pO1xuICBzd2l0Y2goZm10W2lkeF0pe1xuICBjYXNlICdpJzogY2FzZSAnZCc6IGNhc2UgJ3UnOiBicmVhaztcbiAgY2FzZSAnYic6IGJhc2UgPSAyOyBpZihhbHQpIHByZWZpeCA9IFwiMGJcIjsgYnJlYWs7XG4gIGNhc2UgJ28nOiBiYXNlID0gODsgaWYoYWx0KSBwcmVmaXggPSBcIjBvXCI7IGJyZWFrO1xuICBjYXNlICd4JzogYmFzZSA9IDE2OyBpZihhbHQpIHByZWZpeCA9IFwiMHhcIjsgYnJlYWs7XG4gIGNhc2UgJ1gnOiBiYXNlID0gMTY7IGlmKGFsdCkgcHJlZml4ID0gXCIwWFwiOyBjYXMgPSAxOyBicmVhaztcbiAgZGVmYXVsdDpcbiAgICBjYW1sX2ZhaWx3aXRoKFwiVW5zdXBwb3J0ZWQgZm9ybWF0ICdcIiArIGZtdCArIFwiJ1wiKTtcbiAgfVxuICBpZiAoZGlyKSBwYWQgPSAnICc7XG4gIHZhciByZXMgPSB6MS50b1N0cmluZyhiYXNlKTtcbiAgaWYgKGNhcyA9PT0gMSkge1xuICAgIHJlcyA9IHJlcy50b1VwcGVyQ2FzZSgpO1xuICB9XG4gIHZhciBzaXplID0gcmVzLmxlbmd0aDtcbiAgaWYgKHBhZCA9PSAnICcpIHtcbiAgICBpZihkaXIpIHtcbiAgICAgIHJlcyA9IHNpZ24gKyBwcmVmaXggKyByZXM7XG4gICAgICBmb3IoO3Jlcy5sZW5ndGg8d2lkdGg7KSByZXMgPSByZXMgKyBwYWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IHNpZ24gKyBwcmVmaXggKyByZXM7XG4gICAgICBmb3IoO3Jlcy5sZW5ndGg8d2lkdGg7KSByZXMgPSBwYWQgKyByZXM7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBwcmUgPSBzaWduICsgcHJlZml4O1xuICAgIGZvcig7cmVzLmxlbmd0aCtwcmUubGVuZ3RoPHdpZHRoOykgcmVzID0gcGFkICsgcmVzO1xuICAgIHJlcyA9IHByZSArIHJlcztcbiAgfVxuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhyZXMpO1xufVxuXG4vL1Byb3ZpZGVzOiBqc29vX3pfb2ZfanNfc3RyaW5nX2Jhc2Vcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24ganNvb196X29mX2pzX3N0cmluZ19iYXNlKGJhc2UsIHMpIHtcbiAgaWYgKGJhc2UgPT0gMCkgeyAvLyBodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvWmFyaXRoL2Jsb2IvYjhkYmFmNDhhNzkyNzA2MWRmNjk5YWQ3Y2U2NDJiYjRmMWZlNTMwOC9jYW1sX3ouYyNMNTk4XG4gICAgYmFzZSA9IDEwO1xuICAgIHZhciBwID0gMDtcbiAgICB2YXIgc2lnbiA9IDE7XG4gICAgaWYoc1twXSA9PSAnLScpIHsgc2lnbiA9IC0xOyBwKysgfVxuICAgIGVsc2UgaWYgKHNbcF0gPT0gJysnKSB7IHArKyB9XG4gICAgaWYgKHNbcF0gPT0gJzAnKSB7XG4gICAgICBwICsrO1xuICAgICAgaWYgKHMubGVuZ3RoID09IHApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgYmMgPSBzW3BdO1xuICAgICAgICBpZiAoYmMgPT0gJ28nIHx8IGJjID09ICdPJykge1xuICAgICAgICAgIGJhc2UgPSA4O1xuICAgICAgICB9IGVsc2UgaWYgKGJjID09ICd4JyB8fCBiYyA9PSAnWCcpIHtcbiAgICAgICAgICBiYXNlID0gMTY7XG4gICAgICAgIH0gZWxzZSBpZiAoYmMgPT0gJ2InIHx8IGJjID09ICdCJykge1xuICAgICAgICAgIGJhc2UgPSAyO1xuICAgICAgICB9IFxuICAgICAgICBpZihiYXNlICE9IDEwKSB7XG4gICAgICAgICAgcyA9IHMuc3Vic3RyaW5nKHArMSk7XG4gICAgICAgICAgaWYoc2lnbiA9PSAtMSkgcyA9IFwiLVwiICsgcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgZnVuY3Rpb24gZGlnaXQoY29kZSl7XG4gICAgaWYoY29kZSA+PSA0OCAmJiBjb2RlIDw9IDU3KSByZXR1cm4gY29kZSAtIDQ4O1xuICAgIGlmKGNvZGUgPj0gOTcgJiYgY29kZSA8PSAxMDIpIHJldHVybiBjb2RlIC0gOTcgKyAxMDtcbiAgICBpZihjb2RlID49IDY1ICYmIGNvZGUgPD0gNzApIHJldHVybiBjb2RlIC0gNjUgKyAxMDtcbiAgfVxuICB2YXIgaSA9IDA7XG4gIGlmIChzW2ldID09ICcrJykge1xuICAgIC8vcmVtb3ZlIGxlYWRpbmcgJysnXG4gICAgcyA9IHMuc3Vic3RyaW5nKDEpO1xuICB9XG4gIGVsc2UgaWYoc1tpXSA9PSAnLScpIGkrKztcbiAgaWYoc1tpXSA9PSAnXycpIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIloub2Zfc3Vic3RyaW5nX2Jhc2U6IGludmFsaWQgZGlnaXRcIik7XG4gIHMgPSBzLnJlcGxhY2UoL18vZywnJyk7XG4gIC8vbm9ybWFsaXplIFwiZW1wdHlcIiBudW1iZXJzXG4gIGlmKHMgPT0gJy0nIHx8IHMgPT0gJycpIHMgPSAnMCc7XG4gIGZvciggOyBpIDwgcy5sZW5ndGggOyBpKyspe1xuICAgIHZhciBjID0gZGlnaXQocy5jaGFyQ29kZUF0KGkpKTtcbiAgICBpZihjID09IHVuZGVmaW5lZCB8fCBjID49IGJhc2UpXG4gICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLm9mX3N1YnN0cmluZ19iYXNlOiBpbnZhbGlkIGRpZ2l0XCIpO1xuICB9XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQocywgYmFzZSkpO1xuICBcbn1cblxuLy9leHRlcm5hbCBvZl9zdWJzdHJpbmdfYmFzZTogaW50IC0+IHN0cmluZyAtPiBwb3M6aW50IC0+IGxlbjppbnQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9vZl9zdWJzdHJpbmdfYmFzZVxuLy9SZXF1aXJlczoganNvb196X29mX2pzX3N0cmluZ19iYXNlLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gbWxfel9vZl9zdWJzdHJpbmdfYmFzZShiYXNlLCBzLCBwb3MsIGxlbikge1xuICBzID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKTtcbiAgaWYocG9zICE9IDAgfHwgbGVuICE9IHMubGVuZ3RoKSB7XG4gICAgaWYgKHMubGVuZ3RoIC0gcG9zIDwgbGVuKSB7XG4gICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLm9mX3N1YnN0cmluZ19iYXNlOiBpbnZhbGlkIG9mZnNldCBvciBsZW5ndGhcIik7XG4gICAgfVxuICAgIHMgPSBzLnNsaWNlKHBvcyxwb3MrbGVuKTtcbiAgfVxuICByZXR1cm4ganNvb196X29mX2pzX3N0cmluZ19iYXNlKGJhc2UsIHMpO1xufVxuXG4vL2V4dGVybmFsIGNvbXBhcmU6IHQgLT4gdCAtPiBpbnRcbi8vUHJvdmlkZXM6IG1sX3pfY29tcGFyZSBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X2NvbXBhcmUoejEsIHoyKSB7XG4gIHJldHVybiBiaWdJbnQoejEpLmNvbXBhcmUoYmlnSW50KHoyKSk7XG59XG5cbi8vZXh0ZXJuYWwgZXF1YWw6IHQgLT4gdCAtPiBib29sXG4vL1Byb3ZpZGVzOiBtbF96X2VxdWFsIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfZXF1YWwoejEsIHoyKSB7XG4gIHJldHVybiBiaWdJbnQoejEpLmVxdWFscyhiaWdJbnQoejIpKSA/IDEgOiAwO1xufVxuXG4vL2V4dGVybmFsIHNpZ246IHQgLT4gaW50XG4vL1Byb3ZpZGVzOiBtbF96X3NpZ24gY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9zaWduKHoxKSB7XG4gIHJldHVybiBiaWdJbnQoejEpLmNvbXBhcmUoYmlnSW50Lnplcm8pO1xufVxuXG4vL2V4dGVybmFsIGdjZDogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfZ2NkXG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2djZCh6MSwgejIpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludC5nY2QoYmlnSW50KHoxKSwgYmlnSW50KHoyKSkuYWJzKCkpO1xufVxuXG4vL2V4dGVybmFsIG51bWJpdHM6IHQgLT4gaW50XG4vL1Byb3ZpZGVzOiBtbF96X251bWJpdHMgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9udW1iaXRzKHoxKSB7XG4gIHoxID0gYmlnSW50KHoxKS5hYnMoKTtcbiAgdmFyIG4gPSAwO1xuICB2YXIgdXBwZXJCb3VuZCA9IGJpZ0ludC5vbmU7XG4gIHdoaWxlICh1cHBlckJvdW5kLmxlcSh6MSkpIHtcbiAgICBuICs9IDE7XG4gICAgdXBwZXJCb3VuZCA9IHVwcGVyQm91bmQubXVsdGlwbHkoMik7XG4gIH1cbiAgcmV0dXJuIG47IC8vIDJee24tMX0gPD0gfHh8IDwgMl5uXG59XG5cbi8vZXh0ZXJuYWwgZml0c19pbnQ6IHQgLT4gYm9vbFxuLy9Qcm92aWRlczogbWxfel9maXRzX2ludCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X2ZpdHNfaW50KHoxKSB7XG4gIGlmKHoxID09ICh6MSB8IDApKSByZXR1cm4gMTtcbiAgZWxzZSByZXR1cm4gMDtcbn1cblxuLy9leHRlcm5hbCBmaXRzX2ludDMyOiB0IC0+IGJvb2xcbi8vUHJvdmlkZXM6IG1sX3pfZml0c19pbnQzMlxuLy9SZXF1aXJlczogbWxfel9maXRzX2ludFxuZnVuY3Rpb24gbWxfel9maXRzX2ludDMyKHoxKSB7XG4gIHJldHVybiBtbF96X2ZpdHNfaW50KHoxKTtcbn1cblxuLy9leHRlcm5hbCBmaXRzX2ludDY0OiB0IC0+IGJvb2xcbi8vUHJvdmlkZXM6IG1sX3pfZml0c19pbnQ2NFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X2ZpdHNfaW50NjQoejEpIHtcbiAgejEgPSBiaWdJbnQoejEpXG4gIGlmICh6MS5jb21wYXJlKGJpZ0ludChcIjkyMjMzNzIwMzY4NTQ3NzU4MDdcIikpIDw9IDAgJiYgejEuY29tcGFyZShiaWdJbnQoXCItOTIyMzM3MjAzNjg1NDc3NTgwOFwiKSkgPj0gMClcbiAgICByZXR1cm4gMVxuICBlbHNlXG4gICAgcmV0dXJuIDBcbn1cblxuLy9leHRlcm5hbCBmaXRzX25hdGl2ZWludDogdCAtPiBib29sXG4vL1Byb3ZpZGVzOiBtbF96X2ZpdHNfbmF0aXZlaW50XG4vL1JlcXVpcmVzOiBtbF96X2ZpdHNfaW50XG5mdW5jdGlvbiBtbF96X2ZpdHNfbmF0aXZlaW50KHoxKSB7XG4gIHJldHVybiBtbF96X2ZpdHNfaW50KHoxKTtcbn1cblxuLy9leHRlcm5hbCBwb3dtOiB0IC0+IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3Bvd21cbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemUsIG1sX3pfaW52ZXJ0LCBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBtbF96X3Bvd20oejEsIHoyLCB6Mykge1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcbiAgejEgPSBiaWdJbnQoejEpO1xuICB6MiA9IGJpZ0ludCh6Mik7XG4gIHozID0gYmlnSW50KHozKTtcbiAgaWYoejMuZXF1YWxzKHplcm8pKSBjYW1sX3JhaXNlX3plcm9fZGl2aWRlKCk7XG4gIGlmKHozLmFicygpLmVxdWFscyhvbmUpKSByZXR1cm4gMDtcbiAgaWYoejIuZXF1YWxzKHplcm8pKSByZXR1cm4gMTtcbiAgaWYoejIubHQoMCkpIHtcbiAgICB2YXIgaW52ID0gYmlnSW50KG1sX3pfaW52ZXJ0KHoxLCB6MykpO1xuICAgIHZhciByID0gaW52Lm1vZFBvdyh6Mi5uZWdhdGUoKSwgejMpO1xuICAgIGlmKHIubHQoemVybykpIHIgPSByLmFkZCh6My5hYnMoKSk7XG4gICAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHIpO1xuICB9IGVsc2Uge1xuICAgIHZhciByID0gYmlnSW50KHoxKS5tb2RQb3coejIsIHozKTtcbiAgICBpZihyLmx0KHplcm8pKSByID0gci5hZGQoejMuYWJzKCkpO1xuICAgIHJldHVybiBtbF96X25vcm1hbGl6ZShyKTtcbiAgfVxufVxuXG4vL2V4dGVybmFsIHBvd246IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3Bvd1xuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX2ZhaWx3aXRoLCBtbF96X25vcm1hbGl6ZSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBtbF96X3Bvdyh6MSwgaTEpIHtcbiAgaTEgPSBiaWdJbnQoaTEpO1xuICBpZiAoaTEubHQoYmlnSW50KDApKSkge1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIloucG93OiBleHBvbmVudCBtdXN0IGJlIG5vbm5lZ2F0aXZlXCIpO1xuICB9XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLnBvdyhpMSkpO1xufVxuXG4vL2V4dGVybmFsIGhhc2g6IHQgLT4gaW50XG4vL1Byb3ZpZGVzOiBtbF96X2hhc2ggY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9oYXNoX21peF9pbnRcbmZ1bmN0aW9uIG1sX3pfaGFzaCh6MSkge1xuICB2YXIgYSA9IGJpZ0ludCh6MSkudG9BcnJheShNYXRoLnBvdygyLCAzMikpO1xuICB2YXIgYWNjID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLnZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgYWNjID0gY2FtbF9oYXNoX21peF9pbnQoYWNjLCBhLnZhbHVlW2ldKTtcbiAgfVxuICBpZihhLnZhbHVlLmxlbmd0aCAlIDIgIT0gMCkge1xuICAgIGFjYyA9IGNhbWxfaGFzaF9taXhfaW50KGFjYywgMCk7XG4gIH1cbiAgaWYoYS5pc05lZ2F0aXZlKXtcbiAgICBhY2MgPSBhY2MgKyAxXG4gIH1cbiAgcmV0dXJuIGFjYyB8IDBcbn1cblxuLy9leHRlcm5hbCB0b19iaXRzOiB0IC0+IHN0cmluZ1xuLy9Qcm92aWRlczogbWxfel90b19iaXRzIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX3N0cl9yZXBlYXQsIGJpZ0ludFxuZnVuY3Rpb24gbWxfel90b19iaXRzKHoxKSB7XG4gIHoxID0gYmlnSW50KHoxKS5hYnMoKTtcbiAgdmFyIHJlcyA9IFwiXCI7XG4gIHdoaWxlKCF6MS5lcXVhbHMoYmlnSW50KDApKSl7XG4gICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoejEubW9kKGJpZ0ludCgyNTYpKSk7XG4gICAgejEgPSB6MS5kaXZpZGUoYmlnSW50KDI1NikpO1xuICB9XG4gIHdoaWxlKHJlcy5sZW5ndGggJSA0ICE9IDApe1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDApO1xuICB9XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHJlcyk7XG59XG5cbi8vZXh0ZXJuYWwgb2ZfYml0czogc3RyaW5nIC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfb2ZfYml0cyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X29mX2JpdHMoejEpIHtcbiAgdmFyIHIgPSBiaWdJbnQuemVyb1xuICB2YXIgYmFzZTEgPSBiaWdJbnQoMjU2KTtcbiAgdmFyIGJhc2UgPSBiaWdJbnQub25lO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHoxKTsgaSsrKXtcbiAgICB2YXIgZCA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQoejEsaSk7XG4gICAgciA9IGJpZ0ludChiYXNlKS5tdWx0aXBseShkKS5hZGQocik7XG4gICAgYmFzZSA9IGJpZ0ludChiYXNlKS5tdWx0aXBseShiYXNlMSk7XG4gIH1cbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHIpO1xufVxuXG4vL2V4dGVybmFsIHBvd21fc2VjOiB0IC0+IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3Bvd21fc2VjXG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfZmFpbHdpdGgsIG1sX3pfcG93bSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBtbF96X3Bvd21fc2VjKHoxLCB6MiwgejMpIHtcbiAgejMgPSBiaWdJbnQoejMpLmFicygpO1xuICAvLyBwb3dtX3NlYyByZXF1aXJlcyB0aGF0IHRoZSBleHBvbmVudCBiZSBwb3NpdGl2ZVxuICB2YXIgb25lID0gYmlnSW50KDEpO1xuICBpZiAoYmlnSW50KHoyKS5sdChvbmUpKSB7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5wb3dtX3NlYzogZXhwb25lbnQgbXVzdCBiZSBwb3NpdGl2ZVwiKTtcbiAgfVxuICBpZiAoIWJpZ0ludCh6MykuYW5kKG9uZSkuZXF1YWxzKG9uZSkpIHtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLnBvd21fc2VjOiBtb2R1bHVzIG11c3QgYmUgb2RkXCIpO1xuICB9XG4gIHJldHVybiBtbF96X3Bvd20oejEsIHoyLCB6Mylcbn1cblxuLy9leHRlcm5hbCByb290OiB0IC0+IGludCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3Jvb3Rcbi8vUmVxdWlyZXM6IG1sX3pfcG93LCAgYmlnSW50LCBtbF96X25vcm1hbGl6ZSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBtbF96X3Jvb3QoeiwgaSkge1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcbiAgeiA9IGJpZ0ludCh6KTtcblxuICBpZiAoaSAlIDIgPT09IDAgJiYgei5sdCh6ZXJvKSkge1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIloucm9vdDogZXZlbiByb290IG9mIGEgbmVnYXRpdmUgbnVtYmVyXCIpO1xuICB9XG5cbiAgaWYgKHouZXF1YWxzKHplcm8pIHx8IHouZXF1YWxzKG9uZSkpIHtcbiAgICByZXR1cm4gbWxfel9ub3JtYWxpemUoeik7XG4gIH1cblxuICB2YXIgc3RhcnQgPSB6ZXJvO1xuICB2YXIgZW5kID0gejtcbiAgdmFyIGFucyA9IG51bGw7XG5cbiAgdmFyIHR3byA9IGJpZ0ludCgyKTtcblxuICB3aGlsZSAoc3RhcnQubGVxKGVuZCkpXG4gIHtcbiAgICB2YXIgbWlkID0gc3RhcnQuYWRkKGVuZCkuZGl2aWRlKHR3byk7XG4gICAgdmFyIHBvID0gbWlkLnBvdyhpKTtcbiAgICBpZiAocG8uZXF1YWxzKHopKSB7XG4gICAgICByZXR1cm4gbWxfel9ub3JtYWxpemUobWlkKTtcbiAgICB9IGVsc2UgaWYgKHBvLmx0KHopKSB7XG4gICAgICBzdGFydCA9IG1pZC5uZXh0KCk7XG4gICAgICBhbnMgPSBtaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVuZCA9IG1pZC5wcmV2KCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShhbnMpO1xufVxuXG4vL2V4dGVybmFsIHJvb3RyZW06IHQgLT4gaW50IC0+IHQgKiB0XG4vL1Byb3ZpZGVzOiBtbF96X3Jvb3RyZW1cbi8vUmVxdWlyZXM6IG1sX3pfcG93LCAgYmlnSW50LCBtbF96X25vcm1hbGl6ZSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBtbF96X3Jvb3RyZW0oeiwgaSkge1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcbiAgeiA9IGJpZ0ludCh6KTtcblxuICBpZiAoaSAlIDIgPT09IDAgJiYgei5sdCh6ZXJvKSkge1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIloucm9vdHJlbTogZXZlbiByb290IG9mIGEgbmVnYXRpdmUgbnVtYmVyXCIpO1xuICB9XG5cbiAgaWYgKHouZXF1YWxzKHplcm8pIHx8IHouZXF1YWxzKG9uZSkpIHtcbiAgICByZXR1cm4gWzAsIG1sX3pfbm9ybWFsaXplKHopLCB6ZXJvXTtcbiAgfVxuXG4gIHZhciBzdGFydCA9IHplcm87XG4gIHZhciBlbmQgPSB6O1xuICB2YXIgYW5zID0gbnVsbDtcblxuICB2YXIgdHdvID0gYmlnSW50KDIpO1xuXG4gIHdoaWxlIChzdGFydC5sZXEoZW5kKSlcbiAge1xuICAgIHZhciBtaWQgPSBzdGFydC5hZGQoZW5kKS5kaXZpZGUodHdvKTtcbiAgICB2YXIgcG8gPSBtaWQucG93KGkpO1xuICAgIGlmIChwby5lcXVhbHMoeikpIHtcbiAgICAgIHJldHVybiBbMCwgbWxfel9ub3JtYWxpemUobWlkKSwgemVyb107XG4gICAgfSBlbHNlIGlmIChwby5sdCh6KSkge1xuICAgICAgc3RhcnQgPSBtaWQubmV4dCgpO1xuICAgICAgYW5zID0gbWlkO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmQgPSBtaWQucHJldigpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gWzAsIG1sX3pfbm9ybWFsaXplKGFucyksIG1sX3pfbm9ybWFsaXplKHoubWludXMoYW5zLnBvdyhpKSkpXTtcbn1cblxuLy9leHRlcm5hbCBpbnZlcnQ6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2ludmVydFxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX3JhaXNlX3plcm9fZGl2aWRlLCBtbF96X2djZGV4dF9pbnRlcm4sIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2ludmVydChhLCBuKSB7XG4gIC8vIEJlY2F1c2UgW2EubW9kSW52KG4pXSBwcm9kdWNlcyBkaWZmZXJlbnQgcmVzdWx0cyBmb3IgZWRnZSBjYXNlcyxcbiAgLy8gd2Ugd3JvdGUgb3VyIG93biBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiBnY2RleHRfaW50ZXJuLlxuICBhID0gYmlnSW50KGEpO1xuICBuID0gYmlnSW50KG4pO1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcbiAgaWYobi5hYnMoKS5lcXVhbHMob25lKSlcbiAgICByZXR1cm4gMDtcbiAgaWYgKG4uZXF1YWxzKHplcm8pICYmIGEuYWJzKCkuZXF1YWxzKG9uZSkpIHtcbiAgICByZXR1cm4gYTtcbiAgfVxuICBpZiAobi5lcXVhbHMoemVybykgfHwgYS5lcXVhbHMoemVybykpIHtcbiAgICBjYW1sX3JhaXNlX3plcm9fZGl2aWRlKCk7XG4gIH1cbiAgdmFyIHggPSBtbF96X2djZGV4dF9pbnRlcm4oYSwgbik7XG4gIHZhciByID0gYmlnSW50KHhbMl0pO1xuICB2YXIgdG1wID0gYmlnSW50KGEpLm11bHRpcGx5KHIpLm1vZChuKTtcbiAgaWYodG1wLmx0KHplcm8pKSB0bXAgPSB0bXAuYWRkKG4uYWJzKCkpO1xuICBpZihyLmx0KHplcm8pKSByID0gci5hZGQobi5hYnMoKSk7XG4gIGlmKHRtcC5lcXVhbHMob25lKSkge1xuICAgIHJldHVybiBtbF96X25vcm1hbGl6ZShyKTtcbiAgfVxuICBjYW1sX3JhaXNlX3plcm9fZGl2aWRlKCk7XG59XG5cbi8vZXh0ZXJuYWwgcGVyZmVjdF9wb3dlcjogdCAtPiBib29sXG4vL1Byb3ZpZGVzOiBtbF96X3BlcmZlY3RfcG93ZXJcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9mYWlsd2l0aCwgbWxfel9udW1iaXRzLCBtbF96X3Jvb3QsIG1sX3pfcG93XG5mdW5jdGlvbiBtbF96X3BlcmZlY3RfcG93ZXIoeikge1xuICAvLyBSZXR1cm4gdHJ1ZSBpZiBvcCBpcyBhIHBlcmZlY3QgcG93ZXIsIGkuZS4sIGlmIHRoZXJlIGV4aXN0IGludGVnZXJzIGEgYW5kXG4gIC8vIGIsIHdpdGggYiA+IDEsIHN1Y2ggdGhhdCBvcCA9IGFeYi5cbiAgLy8gT3RoZXJ3aXNlIGZhbHNlLlxuICB6ID0gYmlnSW50KHopO1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcblxuICBpZiAoei5lcXVhbHMoemVybykgfHwgei5lcXVhbHMob25lKSB8fCB6LmVxdWFscyhvbmUubmVnYXRlKCkpKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgdmFyIGxvZzJ6ID0gbWxfel9udW1iaXRzKHouYWJzKCkpO1xuICBmb3IgKHZhciBiID0gMjsgYiA8PSBsb2cyejsgYisrKSB7XG4gICAgaWYoei5sdCh6ZXJvKSAmJiBiICUgMiA9PSAwKSBjb250aW51ZTtcbiAgICB2YXIgenAgPSB6LmFicygpO1xuICAgIHZhciBwID0gYmlnSW50KG1sX3pfcm9vdCh6cCwgYikpO1xuICAgIGlmKHoubHQoemVybykpIHAgPSBwLm5lZ2F0ZSgpO1xuICAgIHZhciByID0gYmlnSW50KG1sX3pfcG93KHAsIGIpKTtcbiAgICBpZiAoei5lcXVhbHMocikpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9leHRlcm5hbCBwZXJmZWN0X3NxdWFyZTogdCAtPiBib29sXG4vL1Byb3ZpZGVzOiBtbF96X3BlcmZlY3Rfc3F1YXJlXG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfcm9vdFxuZnVuY3Rpb24gbWxfel9wZXJmZWN0X3NxdWFyZSh6KSB7XG4gIHogPSBiaWdJbnQoeik7XG4gIGlmICh6Lmx0KGJpZ0ludCgwKSkpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICB2YXIgcm9vdCA9IGJpZ0ludChtbF96X3Jvb3QoeiwgMikpO1xuICBpZiAocm9vdC5tdWx0aXBseShyb290KS5lcSh6KSkge1xuICAgIHJldHVybiAxO1xuICB9XG4gIGVsc2Uge1xuICAgIHJldHVybiAwXG4gIH07XG59XG5cbi8vZXh0ZXJuYWwgcHJvYmFiX3ByaW1lOiB0IC0+IGludCAtPiBpbnRcbi8vUHJvdmlkZXM6IG1sX3pfcHJvYmFiX3ByaW1lIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfcHJvYmFiX3ByaW1lKHosIGkpIHtcbiAgaWYgKGJpZ0ludCh6KS5pc1Byb2JhYmxlUHJpbWUoaSkpIHtcbiAgICByZXR1cm4gMTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuXG4vL2V4dGVybmFsIG5leHRwcmltZTogdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X25leHRwcmltZSBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9uZXh0cHJpbWUoejEpIHtcbiAgLy8gSW50ZXJlc3RpbmdseSwgdGhlIHphcml0aCBuZXh0X3ByaW1lIG9ubHkgcmV0dXJucyBcbiAgLy8gcHJvYmFiYWxpc3RpYyBwcmltZXMuICBXZSBkbyB0aGUgc2FtZSwgd2l0aCB0aGUgXG4gIC8vIHNhbWUgcHJvYmFibGlzdGljIHBhcmFtZXRlciBvZiAyNS5cbiAgLy8gaHR0cHM6Ly9mb3NzaWVzLm9yZy9kb3gvZ21wLTYuMS4yL21wel8ybmV4dHByaW1lXzhjX3NvdXJjZS5odG1sXG4gIFxuICB6MSA9IGJpZ0ludCh6MSlcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcbiAgdmFyIHR3byA9IGJpZ0ludCgyKTtcblxuICBpZiAoejEubHQob25lKSB8fCB6MS5lcXVhbHMob25lKSkge1xuICAgIHJldHVybiAyO1xuICB9XG5cbiAgaWYgKHoxLmFuZChvbmUpLmVxdWFscyhvbmUpKSB7XG4gICAgejEgPSB6MS5hZGQodHdvKTtcbiAgfSBlbHNlIHtcbiAgICB6MSA9IHoxLmFkZChvbmUpO1xuICB9XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBpZiAoejEuaXNQcm9iYWJsZVByaW1lKDI1KSkge1xuICAgICAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHoxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgejEgPSB6MS5hZGQodHdvKVxuICAgIH1cbiAgfVxufVxuXG4vL2V4dGVybmFsIGV4dHJhY3Q6IHQgLT4gaW50IC0+IGludCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2V4dHJhY3Rcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfZXh0cmFjdCh6MSwgcG9zLCBsZW4pIHtcbiAgejEgPSBiaWdJbnQoejEpO1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoejEuc2hpZnRSaWdodChwb3MpLmFuZChiaWdJbnQoMikucG93KGxlbikuc3VidHJhY3QoMSkpKTtcbn1cblxuLy9leHRlcm5hbCBnY2RleHRfaW50ZXJuOiB0IC0+IHQgLT4gKHQgKiB0ICogYm9vbClcbi8vUHJvdmlkZXM6IG1sX3pfZ2NkZXh0X2ludGVyblxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX3JhaXNlX3plcm9fZGl2aWRlLCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9nY2RleHRfaW50ZXJuKHoxLCB6Mikge1xuICB6MSA9IGJpZ0ludCh6MSk7XG4gIHoyID0gYmlnSW50KHoyKTtcbiAgdmFyIGdjZCA9IGJpZ0ludC5nY2QoejEsejIpO1xuICB2YXIgYSA9IHoxO1xuICB2YXIgYiA9IHoyO1xuICB2YXIgeCA9IGJpZ0ludCgwKTtcbiAgdmFyIGxhc3R4ID0gYmlnSW50KDEpO1xuICB2YXIgeSA9IGJpZ0ludCgxKTtcbiAgdmFyIGxhc3R5ID0gYmlnSW50KDEpO1xuICB2YXIgcSwgdCwgcjtcbiAgaWYoejEuZXF1YWxzKGJpZ0ludCgwKSkpIHtcbiAgICBjYW1sX3JhaXNlX3plcm9fZGl2aWRlKCk7XG4gIH1cbiAgd2hpbGUoIWIuZXF1YWxzKGJpZ0ludCgwKSkpIHtcbiAgICBxID0gYS5kaXZpZGUoYik7XG4gICAgciA9IGEuc3VidHJhY3QocS5tdWx0aXBseShiKSk7XG4gICAgdCA9IHg7XG4gICAgeCA9IGxhc3R4LnN1YnRyYWN0KHEubXVsdGlwbHkoeCkpO1xuICAgIGxhc3R4ID0gdDtcbiAgICB0ID0geTtcbiAgICB5ID0gbGFzdHkuc3VidHJhY3QocS5tdWx0aXBseSh5KSk7XG4gICAgbGFzdHkgPSB0O1xuICAgIGEgPSBiO1xuICAgIGIgPSByO1xuICB9XG4gIGlmKGEubHQoYmlnSW50KDApKSlcbiAgICByZXR1cm4gWzAsbWxfel9ub3JtYWxpemUoYS5uZWdhdGUoKSksbWxfel9ub3JtYWxpemUobGFzdHgubmVnYXRlKCkpLDFdXG4gIGVsc2VcbiAgICByZXR1cm4gWzAsbWxfel9ub3JtYWxpemUoYSksbWxfel9ub3JtYWxpemUobGFzdHgpLDFdXG59XG5cbi8vZXh0ZXJuYWwgc3FydDogdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3NxcnRcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9yb290LCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIG1sX3pfc3FydCh6MSkge1xuICB2YXIgeiA9IGJpZ0ludCh6MSk7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICBpZiAoei5sdCh6ZXJvKSkge1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlouc3FydDogc3F1YXJlIHJvb3Qgb2YgYSBuZWdhdGl2ZSBudW1iZXJcIik7XG4gIH1cbiAgcmV0dXJuIG1sX3pfcm9vdCh6LCAyKTtcbn1cblxuLy9leHRlcm5hbCBzcXJ0X3JlbTogdCAtPiAodCAqIHQpXG4vL1Byb3ZpZGVzOiBtbF96X3NxcnRfcmVtXG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfcm9vdCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9zcXJ0X3JlbSh6KSB7XG4gIHogPSBiaWdJbnQoeik7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICBpZiAoei5sdCh6ZXJvKSkge1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlouc3FydF9yZW06IHNxdWFyZSByb290IG9mIGEgbmVnYXRpdmUgbnVtYmVyXCIpO1xuICB9XG4gIHZhciByb290ID0gYmlnSW50KG1sX3pfcm9vdCh6LCAyKSk7XG4gIHZhciBtdWwgPSByb290Lm11bHRpcGx5KHJvb3QpO1xuICB2YXIgZGlmZiA9IHouc3VidHJhY3QobXVsKTtcbiAgcmV0dXJuIFswLCBtbF96X25vcm1hbGl6ZShyb290KSwgbWxfel9ub3JtYWxpemUoZGlmZildXG59XG5cbi8vZXh0ZXJuYWwgdHJhaWxpbmdfemVyb3M6IHQgLT4gaW50XG4vL1Byb3ZpZGVzOiBtbF96X3RyYWlsaW5nX3plcm9zIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfdHJhaWxpbmdfemVyb3Moeikge1xuICB6ID0gYmlnSW50KHopLmFicygpO1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcbiAgaWYgKHouZXF1YWxzKHplcm8pKSB7XG4gICAgLy8gbWF4X2ludCBpbiAzMmJpdFxuICAgIHJldHVybiAweDdmZmZmZmZmO1xuICB9XG4gIHZhciBpID0gMFxuICB6ID0gei54b3Ioei5wcmV2KCkpLnNoaWZ0UmlnaHQoMSk7XG4gIGZvciAoaSA9IDA7ICF6LmVxdWFscyhiaWdJbnQuemVybyk7IGkrKykge1xuICAgIHogPSB6LnNoaWZ0UmlnaHQoMSk7XG4gIH1cbiAgcmV0dXJuIGk7XG59XG5cbi8vZXh0ZXJuYWwgcG9wY291bnQ6IHQgLT4gaW50XG4vL1Byb3ZpZGVzOiBtbF96X3BvcGNvdW50XG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfbmFtZWRfdmFsdWVcbmZ1bmN0aW9uIG1sX3pfcG9wY291bnQoeikge1xuICB6ID0gYmlnSW50KHopO1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcbiAgaWYgKHoubHQoemVybykpIHtcbiAgICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfbmFtZWRfdmFsdWUoXCJtbF96X292ZXJmbG93XCIpKTtcbiAgfVxuICB2YXIgaTtcbiAgZm9yIChpID0gMDsgIXouZXF1YWxzKHplcm8pOyBpKyspIHtcbiAgICB6ID0gei5hbmQoei5wcmV2KCkpO1xuICB9XG4gIGlmKGkgIT0gKGl8MCkpIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9uYW1lZF92YWx1ZShcIm1sX3pfb3ZlcmZsb3dcIikpO1xuICByZXR1cm4gaXwwO1xufVxuXG4vL2V4dGVybmFsIGhhbWRpc3Q6IHQgLT4gdCAtPiBpbnRcbi8vUHJvdmlkZXM6IG1sX3pfaGFtZGlzdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X3BvcGNvdW50LCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfbmFtZWRfdmFsdWVcbmZ1bmN0aW9uIG1sX3pfaGFtZGlzdCh6MSwgejIpIHtcbiAgaWYoYmlnSW50KHoxKS5pc05lZ2F0aXZlKCkgIT0gYmlnSW50KHoyKS5pc05lZ2F0aXZlICgpKXtcbiAgICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfbmFtZWRfdmFsdWUoXCJtbF96X292ZXJmbG93XCIpKTtcbiAgfVxuICBpZigoejEgIT0gKHoxIHwgMCkgfHwgejIgIT0gKHoyIHwgMCkpICYmIChiaWdJbnQoejEpLmlzTmVnYXRpdmUoKSB8fCBiaWdJbnQoejIpLmlzTmVnYXRpdmUgKCkpKXtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLmhhbWRpc3Q6IG5lZ2F0aXZlIGFyZ3VtZW50c1wiKTtcbiAgfVxuICByZXR1cm4gbWxfel9wb3Bjb3VudChiaWdJbnQoejEpLnhvcihiaWdJbnQoejIpKSk7XG59XG5cbi8vZXh0ZXJuYWwgc2l6ZTogdCAtPiBpbnRcbi8vUHJvdmlkZXM6IG1sX3pfc2l6ZSBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X3NpemUoejEpIHtcbiAgLy8gQ2xhaW0gdG8gYmUgYSAzMi1iaXQgYXJjaGl0ZWN0dXJlLlxuICByZXR1cm4gYmlnSW50KHoxKS50b0FycmF5KE1hdGgucG93KDIsIDMyKSkudmFsdWUubGVuZ3RoO1xufVxuXG4vL2V4dGVybmFsIGRpdmV4YWN0OiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9kaXZleGFjdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X2RpdlxuZnVuY3Rpb24gbWxfel9kaXZleGFjdCh6MSwgejIpIHtcbiAgcmV0dXJuIG1sX3pfZGl2KHoxLCB6Mik7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF96YXJpdGhfbWFyc2hhbFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBjYW1sX3phcml0aF9tYXJzaGFsKHdyaXRlciwgdiwgc3opIHtcbiAgdiA9IGJpZ0ludCh2KTtcbiAgdmFyIGJpdHMgPSB2LnRvQXJyYXkoTWF0aC5wb3coMiwgMzIpKTtcbiAgd3JpdGVyLndyaXRlKDgsIGJpdHMuaXNOZWdhdGl2ZSA/MSA6IDApO1xuICB2YXIgYmxvY2sgPSBiaXRzLnZhbHVlLmxlbmd0aDtcbiAgdmFyIGxlbiA9IGJsb2NrICogNDtcbiAgd3JpdGVyLndyaXRlKDMyLCBsZW4pO1xuICBmb3IodmFyIGkgPSBibG9jayAtIDE7IGkgPj0gMDsgaSAtLSl7XG4gICAgd3JpdGVyLndyaXRlKDgsIChiaXRzLnZhbHVlW2ldID4+PiAwICkgJiAweGZmKTtcbiAgICB3cml0ZXIud3JpdGUoOCwgKGJpdHMudmFsdWVbaV0gPj4+IDggKSAmIDB4ZmYpO1xuICAgIHdyaXRlci53cml0ZSg4LCAoYml0cy52YWx1ZVtpXSA+Pj4gMTYpICYgMHhmZik7XG4gICAgd3JpdGVyLndyaXRlKDgsIChiaXRzLnZhbHVlW2ldID4+PiAyNCkgJiAweGZmKTtcbiAgfVxuICBzelswXSA9IDQgKiAoMSArICgoKGxlbiArIDMpIC8gNCkgfCAwKSk7XG4gIHN6WzFdID0gOCAqICgxICsgKCgobGVuICsgNykgLyA4KSB8IDApKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF96YXJpdGhfdW5tYXJzaGFsXG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfZmFpbHdpdGgsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBjYW1sX3phcml0aF91bm1hcnNoYWwocmVhZGVyLCBzeikge1xuICB2YXIgbmVnYXRlO1xuICBzd2l0Y2gocmVhZGVyLnJlYWQ4dSAoKSkge1xuICBjYXNlIDE6IG5lZ2F0ZSA9IHRydWU7IGJyZWFrO1xuICBjYXNlIDA6IG5lZ2F0ZSA9IGZhbHNlOyBicmVhaztcbiAgZGVmYXVsdDogY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiB6IChtYWxmb3JtZWQgaW5wdXQpXCIpO1xuICB9XG4gIHZhciBsZW4gPSByZWFkZXIucmVhZDMydSgpO1xuICB2YXIgeCA9IGJpZ0ludCgwKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbiAvIDQ7IGkrKyl7XG4gICAgdmFyIHkgPSBiaWdJbnQocmVhZGVyLnJlYWQ4dSgpKTtcbiAgICB5ID0geS5hZGQoKHJlYWRlci5yZWFkOHUoKSkgPDwgOCk7XG4gICAgeSA9IHkuYWRkKChyZWFkZXIucmVhZDh1KCkpIDw8IDE2KTtcbiAgICB5ID0geS5hZGQoKChyZWFkZXIucmVhZDh1KCkpIDw8IDI0KSA+Pj4gMCk7XG4gICAgeCA9IHkuc2hpZnRMZWZ0KGkgKiAzMikuYWRkKHgpO1xuICB9XG4gIGlmKG5lZ2F0ZSkgeCA9IHgubmVnYXRlKCk7XG4gIHN6WzBdID0gbGVuICsgNDtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHgpXG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfZGl2aXNpYmxlXG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfZGl2aXNpYmxlKGEsIGIpe1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgYSA9IGJpZ0ludChhKTtcbiAgYiA9IGJpZ0ludChiKTtcbiAgaWYoYS5lcXVhbHMoemVybykgJiYgYi5lcXVhbHMoemVybykpIHJldHVybiAxO1xuICByZXR1cm4gYS5pc0RpdmlzaWJsZUJ5KGIpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogbWxfel9jb25ncnVlbnRcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9jb25ncnVlbnQoYSxiLGMpe1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgYSA9IGJpZ0ludChhKTtcbiAgYiA9IGJpZ0ludChiKTtcbiAgYyA9IGJpZ0ludChjKTtcbiAgaWYoYy5lcXVhbHMoemVybykgJiYgYS5lcXVhbHMoYikpIHJldHVybiAxO1xuICByZXR1cm4gYS5taW51cyhiKS5pc0RpdmlzaWJsZUJ5KGMpID8gMSA6IDA7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfcmVtb3ZlXG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplLCBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBtbF96X3JlbW92ZShhLGIpe1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcbiAgYSA9IGJpZ0ludChhKTtcbiAgYiA9IGJpZ0ludChiKTtcbiAgaWYoYi5lcXVhbHMoemVybykpIGNhbWxfcmFpc2VfemVyb19kaXZpZGUoKTtcbiAgaWYoYS5lcXVhbHMoemVybykgfHwgYi5hYnMoKS5lcXVhbHMob25lKSkgcmV0dXJuIFswLCBhLCAwXTtcbiAgdmFyIGkgPSAwO1xuICB3aGlsZShhLmlzRGl2aXNpYmxlQnkoYikpe1xuICAgIGEgPSBhLmRpdmlkZShiKTtcbiAgICBpKys7XG4gIH1cbiAgcmV0dXJuIFswLCBtbF96X25vcm1hbGl6ZShhKSwgaV07XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfZmFjXG4vL1JlcXVpcmVzOiBtbF96X2ZhY00sIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gbWxfel9mYWMoaSl7XG4gIGlmKGk8PTApIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlouZmFjdDogbmVnYXRpdmUgYXJndW1lbnRzXCIpO1xuICByZXR1cm4gbWxfel9mYWNNKGksMSk7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfZmFjMlxuLy9SZXF1aXJlczogbWxfel9mYWNNLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIG1sX3pfZmFjMihpKXtcbiAgaWYoaTw9MCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5mYWN0MjogbmVnYXRpdmUgYXJndW1lbnRzXCIpO1xuICByZXR1cm4gbWxfel9mYWNNKGksMik7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfZmFjTVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2ZhY00oaSwgbSl7XG4gIGlmKGk8PTB8fG08PTApIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlouZmFjdE06IG5lZ2F0aXZlIGFyZ3VtZW50c1wiKTtcbiAgbSA9IGJpZ0ludChtKTtcbiAgdmFyIGN1cnJlbnQgPSBiaWdJbnQoaSk7XG4gIHZhciByZXMgPSBiaWdJbnQoMSk7XG4gIHdoaWxlKGN1cnJlbnQuaXNQb3NpdGl2ZSgpKXtcbiAgICByZXMgPSByZXMubXVsdGlwbHkoY3VycmVudCk7XG4gICAgY3VycmVudCA9IGN1cnJlbnQubWludXMobSk7XG4gIH1cbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHJlcyk7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfZmliXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIG1sX3pfbm9ybWFsaXplLCBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfZmliKGkpe1xuICBpZihpIDwgMCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5maWI6IG5lZ2F0aXZlIGFyZ3VtZW50c1wiKTtcbiAgaWYoaSA9PSAwIHx8IGkgPT0gMSkgcmV0dXJuIGk7XG4gIHZhciBhID0gYmlnSW50KDApLCBiID0gYmlnSW50KDEpO1xuICBmb3IodmFyIGsgPSAxOyBrIDwgaTsgaysrKXtcbiAgICB2YXIgYjIgPSBiO1xuICAgIGIgPSBhLmFkZChiKTtcbiAgICBhID0gYjI7XG4gIH1cbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGIpO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2x1Y251bVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBtbF96X25vcm1hbGl6ZSwgYmlnSW50XG5mdW5jdGlvbiBtbF96X2x1Y251bShpKXtcbiAgaWYoaSA8IDApIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIloubHVjbnVtOiBuZWdhdGl2ZSBhcmd1bWVudHNcIik7XG4gIGlmKGkgPT0gMCkgcmV0dXJuIDI7XG4gIGlmKGkgPT0gMSkgcmV0dXJuIDE7XG4gIHZhciBhID0gYmlnSW50KDIpLCBiID0gYmlnSW50KDEpO1xuICBmb3IodmFyIGsgPSAxOyBrIDwgaTsgaysrKXtcbiAgICB2YXIgYjIgPSBiO1xuICAgIGIgPSBhLmFkZChiKTtcbiAgICBhID0gYjI7XG4gIH1cbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGIpO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2phY29iaVxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIG1sX3pfamFjb2JpKG4sIGspe1xuICBuID0gYmlnSW50KG4pO1xuICBrID0gYmlnSW50KGspO1xuICAvL2Fzc2VydChrID4gMCBhbmQgayAlIDIgPT0gMSlcbiAgaWYoay5sZXEoYmlnSW50KDApKSB8fCBrLm1vZChiaWdJbnQoMikpLm5lcShiaWdJbnQoMSkpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlouamFjb2JpOiBzZWNvbmQgYXJndW1lbnQgaXMgbmVnYXRpdmUgb3IgZXZlblwiKTtcbiAgbiA9IG4ubW9kKGspO1xuICBpZihuLmx0KGJpZ0ludCgwKSkpIG4gPSBuLmFkZChrKTtcbiAgdmFyIHQgPSAxO1xuICB3aGlsZSAoISBuLmVxdWFscyhiaWdJbnQoMCkpKXtcbiAgICB3aGlsZSAobi5pc0RpdmlzaWJsZUJ5KGJpZ0ludCgyKSkpIHtcbiAgICAgIG4gPSBuLmRpdmlkZShiaWdJbnQoMikpXG4gICAgICB2YXIgciA9IGsubW9kKGJpZ0ludCg4KSlcbiAgICAgIGlmIChyLmVxdWFscyhiaWdJbnQoMykpIHx8IHIuZXF1YWxzKGJpZ0ludCg1KSkpe1xuICAgICAgICB0ID0gLXRcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIG4xID0gbiwgazEgPSBrO1xuICAgIG4gPSBrMTtcbiAgICBrID0gbjE7XG4gICAgaWYgKG4ubW9kKGJpZ0ludCg0KSkuZXF1YWxzKGJpZ0ludCgzKSkgJiYgIGsubW9kKGJpZ0ludCg0KSkuZXF1YWxzKGJpZ0ludCgzKSkpIHtcbiAgICAgIHQgPSAtdFxuICAgIH1cbiAgICBuID0gbi5tb2QoaylcbiAgfVxuICBpZihrLmVxdWFscyhiaWdJbnQoMSkpKVxuICAgIHJldHVybiB0XG4gIGVsc2VcbiAgICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2xlZ2VuZHJlXG4vL1JlcXVpcmVzOiBtbF96X2phY29iaVxuZnVuY3Rpb24gbWxfel9sZWdlbmRyZShhLGIpe1xuICByZXR1cm4gbWxfel9qYWNvYmkoYSxiKTtcbn1cblxuLy9Qcm92aWRlczogbWxfel9rcm9uZWNrZXJcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIG1sX3pfa3JvbmVja2VyKG4sayl7XG4gIGNhbWxfZmFpbHdpdGgoXCJtbF96X2tyb25lY2tlciBpcyBub3QgaW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfcHJpbW9yaWFsXG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X3ByaW1vcmlhbChhKXtcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcbiAgdmFyIHR3byA9IGJpZ0ludCgyKTtcbiAgdmFyIHoxID0gb25lO1xuICB2YXIgcmVzID0gb25lO1xuICBhID0gYmlnSW50KGEpO1xuICB3aGlsZSAoejEubGVxKGEpKSB7XG4gICAgaWYgKHoxLmlzUHJvYmFibGVQcmltZSgyNSkpIHtcbiAgICAgIHJlcyA9IHJlcy5tdWx0aXBseSh6MSk7XG4gICAgfVxuICAgIGlmKHoxLmVxdWFscyhvbmUpIHx8IHoxLmVxdWFscyh0d28pKSB6MSA9IHoxLmFkZChvbmUpO1xuICAgIGVsc2UgejEgPSB6MS5hZGQodHdvKVxuICB9XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShyZXMpO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2JpblxuLy9SZXF1aXJlczogbWxfel9ub3JtYWxpemUsIGJpZ0ludCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBtbF96X2JpbihuLCBrKXtcbiAgdmFyIG4gPSBiaWdJbnQobik7XG4gIHZhciBrID0gYmlnSW50KGspO1xuICB2YXIgY29lZmYgPSBiaWdJbnQoMSk7XG4gIGZvciAodmFyIHggPSBuLm1pbnVzKGspLmFkZChiaWdJbnQoMSkpOyB4LmxlcShuKTsgeCA9IHguYWRkKGJpZ0ludCgxKSkpIGNvZWZmID0gY29lZmYubXVsdGlwbHkoeCk7XG4gIGZvciAoeCA9IGJpZ0ludCgxKTsgeC5sZXEoayk7IHggPSB4LmFkZChiaWdJbnQoMSkpKSBjb2VmZiA9IGNvZWZmLmRpdmlkZSh4KTtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGNvZWZmKTtcblxufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmQsIEFuZHkgUmF5XG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4vL1xuLy8gQmlnYXJyYXkuXG4vL1xuLy8gLSBhbGwgYmlnYXJyYXkgdHlwZXMgaW5jbHVkaW5nIEludDY0IGFuZCBDb21wbGV4LlxuLy8gLSBmb3J0cmFuICsgYyBsYXlvdXRzXG4vLyAtIHN1Yi9zbGljZS9yZXNoYXBlXG4vLyAtIHJldGFpbiBmYXN0IHBhdGggZm9yIDFkIGFycmF5IGFjY2Vzc1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2luaXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfYmFfaW5pdCgpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfc2l6ZShkaW1zKSB7XG4gIHZhciBuX2RpbXMgPSBkaW1zLmxlbmd0aDtcbiAgdmFyIHNpemUgPSAxO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG5fZGltczsgaSsrKSB7XG4gICAgaWYgKGRpbXNbaV0gPCAwKVxuICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuY3JlYXRlOiBuZWdhdGl2ZSBkaW1lbnNpb25cIik7XG4gICAgc2l6ZSA9IHNpemUgKiBkaW1zW2ldO1xuICB9XG4gIHJldHVybiBzaXplO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGtpbmQpe1xuICBzd2l0Y2goa2luZCl7XG4gIGNhc2UgNzogY2FzZSAxMDogY2FzZSAxMTogcmV0dXJuIDI7XG4gIGRlZmF1bHQ6IHJldHVybiAxO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3JlYXRlX2J1ZmZlclxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2NyZWF0ZV9idWZmZXIoa2luZCwgc2l6ZSl7XG4gIHZhciB2aWV3O1xuICBzd2l0Y2goa2luZCl7XG4gIGNhc2UgMDogIHZpZXcgPSBGbG9hdDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDE6ICB2aWV3ID0gRmxvYXQ2NEFycmF5OyBicmVhaztcbiAgY2FzZSAyOiAgdmlldyA9IEludDhBcnJheTsgYnJlYWs7XG4gIGNhc2UgMzogIHZpZXcgPSBVaW50OEFycmF5OyBicmVhaztcbiAgY2FzZSA0OiAgdmlldyA9IEludDE2QXJyYXk7IGJyZWFrO1xuICBjYXNlIDU6ICB2aWV3ID0gVWludDE2QXJyYXk7IGJyZWFrO1xuICBjYXNlIDY6ICB2aWV3ID0gSW50MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgNzogIHZpZXcgPSBJbnQzMkFycmF5OyBicmVhaztcbiAgY2FzZSA4OiAgdmlldyA9IEludDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDk6ICB2aWV3ID0gSW50MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgMTA6IHZpZXcgPSBGbG9hdDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDExOiB2aWV3ID0gRmxvYXQ2NEFycmF5OyBicmVhaztcbiAgY2FzZSAxMjogdmlldyA9IFVpbnQ4QXJyYXk7IGJyZWFrO1xuICB9XG4gIGlmICghdmlldykgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuY3JlYXRlOiB1bnN1cHBvcnRlZCBraW5kXCIpO1xuICB2YXIgZGF0YSA9IG5ldyB2aWV3KHNpemUgKiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGtpbmQpKTtcbiAgcmV0dXJuIGRhdGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3VzdG9tX25hbWVcbi8vVmVyc2lvbjogPCA0LjExXG52YXIgY2FtbF9iYV9jdXN0b21fbmFtZSA9IFwiX2JpZ2FycmF5XCJcblxuLy9Qcm92aWRlczogY2FtbF9iYV9jdXN0b21fbmFtZVxuLy9WZXJzaW9uOiA+PSA0LjExXG52YXIgY2FtbF9iYV9jdXN0b21fbmFtZSA9IFwiX2JpZ2FycjAyXCJcblxuLy9Qcm92aWRlczogTWxfQmlnYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9jdXN0b21fbmFtZVxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGksIGNhbWxfaW50NjRfaGkzMiwgY2FtbF9pbnQ2NF9sbzMyXG5mdW5jdGlvbiBNbF9CaWdhcnJheSAoa2luZCwgbGF5b3V0LCBkaW1zLCBidWZmZXIpIHtcblxuICB0aGlzLmtpbmQgICA9IGtpbmQgO1xuICB0aGlzLmxheW91dCA9IGxheW91dDtcbiAgdGhpcy5kaW1zICAgPSBkaW1zO1xuICB0aGlzLmRhdGEgPSBidWZmZXI7XG59XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5jYW1sX2N1c3RvbSA9IGNhbWxfYmFfY3VzdG9tX25hbWU7XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5vZmZzZXQgPSBmdW5jdGlvbiAoYXJnKSB7XG4gIHZhciBvZnMgPSAwO1xuICBpZih0eXBlb2YgYXJnID09PSBcIm51bWJlclwiKSBhcmcgPSBbYXJnXTtcbiAgaWYgKCEgKGFyZyBpbnN0YW5jZW9mIEFycmF5KSkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiYmlnYXJyYXkuanM6IGludmFsaWQgb2Zmc2V0XCIpO1xuICBpZiAodGhpcy5kaW1zLmxlbmd0aCAhPSBhcmcubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmdldC9zZXQ6IGJhZCBudW1iZXIgb2YgZGltZW5zaW9uc1wiKTtcbiAgaWYodGhpcy5sYXlvdXQgPT0gMCAvKiBjX2xheW91dCAqLykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kaW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYXJnW2ldIDwgMCB8fCBhcmdbaV0gPj0gdGhpcy5kaW1zW2ldKVxuICAgICAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gICAgICBvZnMgPSAob2ZzICogdGhpcy5kaW1zW2ldKSArIGFyZ1tpXTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMuZGltcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKGFyZ1tpXSA8IDEgfHwgYXJnW2ldID4gdGhpcy5kaW1zW2ldKXtcbiAgICAgICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICAgICAgfVxuICAgICAgb2ZzID0gKG9mcyAqIHRoaXMuZGltc1tpXSkgKyAoYXJnW2ldIC0gMSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvZnM7XG59XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAob2ZzKSB7XG4gIHN3aXRjaCh0aGlzLmtpbmQpe1xuICBjYXNlIDc6XG4gICAgLy8gSW50NjRcbiAgICB2YXIgbCA9IHRoaXMuZGF0YVtvZnMgKiAyICsgMF07XG4gICAgdmFyIGggPSB0aGlzLmRhdGFbb2ZzICogMiArIDFdO1xuICAgIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaShsLGgpO1xuICBjYXNlIDEwOiBjYXNlIDExOlxuICAgIC8vIENvbXBsZXgzMiwgQ29tcGxleDY0XG4gICAgdmFyIHIgPSB0aGlzLmRhdGFbb2ZzICogMiArIDBdO1xuICAgIHZhciBpID0gdGhpcy5kYXRhW29mcyAqIDIgKyAxXTtcbiAgICByZXR1cm4gWzI1NCwgciwgaV07XG4gIGRlZmF1bHQ6XG4gICAgcmV0dXJuIHRoaXMuZGF0YVtvZnNdXG4gIH1cbn1cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChvZnMsdikge1xuICBzd2l0Y2godGhpcy5raW5kKXtcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAwXSA9IGNhbWxfaW50NjRfbG8zMih2KTtcbiAgICB0aGlzLmRhdGFbb2ZzICogMiArIDFdID0gY2FtbF9pbnQ2NF9oaTMyKHYpO1xuICAgIGJyZWFrO1xuICBjYXNlIDEwOiBjYXNlIDExOlxuICAgIC8vIENvbXBsZXgzMiwgQ29tcGxleDY0XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAwXSA9IHZbMV07XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAxXSA9IHZbMl07XG4gICAgYnJlYWs7XG4gIGRlZmF1bHQ6XG4gICAgdGhpcy5kYXRhW29mc10gPSB2O1xuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiAwXG59XG5cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiAodikge1xuICBzd2l0Y2godGhpcy5raW5kKXtcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgdmFyIGEgPSBjYW1sX2ludDY0X2xvMzIodik7XG4gICAgdmFyIGIgPSBjYW1sX2ludDY0X2hpMzIodik7XG4gICAgaWYoYSA9PSBiKXtcbiAgICAgIHRoaXMuZGF0YS5maWxsKGEpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGZvcih2YXIgaSA9IDA7IGk8dGhpcy5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdGhpcy5kYXRhW2ldID0gKGklMiA9PSAwKSA/IGEgOiBiO1xuICAgICAgfVxuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMDogY2FzZSAxMTpcbiAgICAvLyBDb21wbGV4MzIsIENvbXBsZXg2NFxuICAgIHZhciBpbSA9IHZbMV07XG4gICAgdmFyIHJlID0gdlsyXTtcbiAgICBpZihpbSA9PSByZSl7XG4gICAgICB0aGlzLmRhdGEuZmlsbChpbSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgZm9yKHZhciBpID0gMDsgaTx0aGlzLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgICB0aGlzLmRhdGFbaV0gPSAoaSUyID09IDApID8gaW0gOiByZTtcbiAgICAgIH1cbiAgICB9XG4gICAgYnJlYWs7XG4gIGRlZmF1bHQ6XG4gICAgdGhpcy5kYXRhLmZpbGwodik7XG4gICAgYnJlYWs7XG4gIH1cbn1cblxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIChiLCB0b3RhbCkge1xuICBpZiAodGhpcy5sYXlvdXQgIT0gYi5sYXlvdXQgfHwgdGhpcy5raW5kICE9IGIua2luZCkge1xuICAgIHZhciBrMSA9IHRoaXMua2luZCB8ICh0aGlzLmxheW91dCA8PCA4KTtcbiAgICB2YXIgazIgPSAgICBiLmtpbmQgfCAoYi5sYXlvdXQgPDwgOCk7XG4gICAgcmV0dXJuIGsyIC0gazE7XG4gIH1cbiAgaWYgKHRoaXMuZGltcy5sZW5ndGggIT0gYi5kaW1zLmxlbmd0aCkge1xuICAgIHJldHVybiBiLmRpbXMubGVuZ3RoIC0gdGhpcy5kaW1zLmxlbmd0aDtcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGltcy5sZW5ndGg7IGkrKylcbiAgICBpZiAodGhpcy5kaW1zW2ldICE9IGIuZGltc1tpXSlcbiAgICAgIHJldHVybiAodGhpcy5kaW1zW2ldIDwgYi5kaW1zW2ldKSA/IC0xIDogMTtcbiAgc3dpdGNoICh0aGlzLmtpbmQpIHtcbiAgY2FzZSAwOlxuICBjYXNlIDE6XG4gIGNhc2UgMTA6XG4gIGNhc2UgMTE6XG4gICAgLy8gRmxvYXRzXG4gICAgdmFyIHgsIHk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIHggPSB0aGlzLmRhdGFbaV07XG4gICAgICB5ID0gYi5kYXRhW2ldO1xuICAgICAgaWYgKHggPCB5KVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAoeCA+IHkpXG4gICAgICAgIHJldHVybiAxO1xuICAgICAgaWYgKHggIT0geSkge1xuICAgICAgICBpZiAoIXRvdGFsKSByZXR1cm4gTmFOO1xuICAgICAgICBpZiAoeCA9PSB4KSByZXR1cm4gMTtcbiAgICAgICAgaWYgKHkgPT0geSkgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKz0yKSB7XG4gICAgICAvLyBDaGVjayBoaWdoZXN0IGJpdHMgZmlyc3RcbiAgICAgIGlmICh0aGlzLmRhdGFbaSsxXSA8IGIuZGF0YVtpKzFdKVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAodGhpcy5kYXRhW2krMV0gPiBiLmRhdGFbaSsxXSlcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICBpZiAoKHRoaXMuZGF0YVtpXSA+Pj4gMCkgPCAoYi5kYXRhW2ldID4+PiAwKSlcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgaWYgKCh0aGlzLmRhdGFbaV0gPj4+IDApID4gKGIuZGF0YVtpXSA+Pj4gMCkpXG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAyOlxuICBjYXNlIDM6XG4gIGNhc2UgNDpcbiAgY2FzZSA1OlxuICBjYXNlIDY6XG4gIGNhc2UgODpcbiAgY2FzZSA5OlxuICBjYXNlIDEyOlxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5kYXRhW2ldIDwgYi5kYXRhW2ldKVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAodGhpcy5kYXRhW2ldID4gYi5kYXRhW2ldKVxuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IE1sX0JpZ2FycmF5X2NfMV8xXG4vL1JlcXVpcmVzOiBNbF9CaWdhcnJheSwgY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBNbF9CaWdhcnJheV9jXzFfMShraW5kLCBsYXlvdXQsIGRpbXMsIGJ1ZmZlcikge1xuICB0aGlzLmtpbmQgICA9IGtpbmQgO1xuICB0aGlzLmxheW91dCA9IGxheW91dDtcbiAgdGhpcy5kaW1zICAgPSBkaW1zO1xuICB0aGlzLmRhdGEgICA9IGJ1ZmZlcjtcbn1cblxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlID0gbmV3IE1sX0JpZ2FycmF5KClcbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZS5vZmZzZXQgPSBmdW5jdGlvbiAoYXJnKSB7XG4gIGlmKHR5cGVvZiBhcmcgIT09IFwibnVtYmVyXCIpe1xuICAgIGlmKChhcmcgaW5zdGFuY2VvZiBBcnJheSkgJiYgYXJnLmxlbmd0aCA9PSAxKVxuICAgICAgYXJnID0gYXJnWzBdO1xuICAgIGVsc2UgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiTWxfQmlnYXJyYXlfY18xXzEub2Zmc2V0XCIpO1xuICB9XG4gIGlmIChhcmcgPCAwIHx8IGFyZyA+PSB0aGlzLmRpbXNbMF0pXG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gYXJnO1xufVxuXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKG9mcykge1xuICByZXR1cm4gdGhpcy5kYXRhW29mc107XG59XG5cbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAob2ZzLHYpIHtcbiAgdGhpcy5kYXRhW29mc10gPSB2O1xuICByZXR1cm4gMFxufVxuXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uICh2KSB7XG4gIHRoaXMuZGF0YS5maWxsKHYpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NvbXBhcmVcbmZ1bmN0aW9uIGNhbWxfYmFfY29tcGFyZShhLGIsdG90YWwpe1xuICByZXR1cm4gYS5jb21wYXJlKGIsdG90YWwpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuLy9SZXF1aXJlczogTWxfQmlnYXJyYXksIE1sX0JpZ2FycmF5X2NfMV8xLCBjYW1sX2JhX2dldF9zaXplLCBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpe1xuICB2YXIgc2l6ZV9wZXJfZWxlbWVudCA9IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoa2luZCk7XG4gIGlmKGNhbWxfYmFfZ2V0X3NpemUoZGltcykgKiBzaXplX3Blcl9lbGVtZW50ICE9IGRhdGEubGVuZ3RoKSB7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwibGVuZ3RoIGRvZXNuJ3QgbWF0Y2ggZGltc1wiKTtcbiAgfVxuICBpZihsYXlvdXQgPT0gMCAmJiAvLyBjX2xheW91dFxuICAgICBkaW1zLmxlbmd0aCA9PSAxICYmIC8vIEFycmF5MVxuICAgICBzaXplX3Blcl9lbGVtZW50ID09IDEpIC8vIDEtdG8tMSBtYXBwaW5nXG4gICAgcmV0dXJuIG5ldyBNbF9CaWdhcnJheV9jXzFfMShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xuICByZXR1cm4gbmV3IE1sX0JpZ2FycmF5KGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG5cbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplLCBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX2J1ZmZlclxuZnVuY3Rpb24gY2FtbF9iYV9jcmVhdGUoa2luZCwgbGF5b3V0LCBkaW1zX21sKSB7XG4gIHZhciBkaW1zID0gY2FtbF9qc19mcm9tX2FycmF5KGRpbXNfbWwpO1xuICB2YXIgZGF0YSA9IGNhbWxfYmFfY3JlYXRlX2J1ZmZlcihraW5kLCBjYW1sX2JhX2dldF9zaXplKGRpbXMpKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NoYW5nZV9sYXlvdXRcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuZnVuY3Rpb24gY2FtbF9iYV9jaGFuZ2VfbGF5b3V0KGJhLCBsYXlvdXQpIHtcbiAgaWYoYmEubGF5b3V0ID09IGxheW91dCkgcmV0dXJuIGJhO1xuICB2YXIgbmV3X2RpbXMgPSBbXVxuICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKykgbmV3X2RpbXNbaV0gPSBiYS5kaW1zW2JhLmRpbXMubGVuZ3RoIC0gaSAtIDFdO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGxheW91dCwgbmV3X2RpbXMsIGJhLmRhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2tpbmRcbmZ1bmN0aW9uIGNhbWxfYmFfa2luZChiYSkge1xuICByZXR1cm4gYmEua2luZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9sYXlvdXRcbmZ1bmN0aW9uIGNhbWxfYmFfbGF5b3V0KGJhKSB7XG4gIHJldHVybiBiYS5sYXlvdXQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfbnVtX2RpbXNcbmZ1bmN0aW9uIGNhbWxfYmFfbnVtX2RpbXMoYmEpIHtcbiAgcmV0dXJuIGJhLmRpbXMubGVuZ3RoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2RpbShiYSwgaSkge1xuICBpZiAoaSA8IDAgfHwgaSA+PSBiYS5kaW1zLmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5kaW1cIik7XG4gIHJldHVybiBiYS5kaW1zW2ldO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbV8xXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2RpbVxuZnVuY3Rpb24gY2FtbF9iYV9kaW1fMShiYSkge1xuICByZXR1cm4gY2FtbF9iYV9kaW0oYmEsIDApO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbV8yXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2RpbVxuZnVuY3Rpb24gY2FtbF9iYV9kaW1fMihiYSkge1xuICByZXR1cm4gY2FtbF9iYV9kaW0oYmEsIDEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbV8zXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2RpbVxuZnVuY3Rpb24gY2FtbF9iYV9kaW1fMyhiYSkge1xuICByZXR1cm4gY2FtbF9iYV9kaW0oYmEsIDIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF9nZW5lcmljXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0X2dlbmVyaWMoYmEsIGkpIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChjYW1sX2pzX2Zyb21fYXJyYXkoaSkpO1xuICByZXR1cm4gYmEuZ2V0KG9mcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfZ2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfZ2V0MTYoYmEsIGkwKSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyAxID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGJhLmdldChvZnMpO1xuICB2YXIgYjIgPSBiYS5nZXQob2ZzICsgMSk7XG4gIHJldHVybiAoYjEgfCAoYjIgPDwgOCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X2dldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X2dldDMyKGJhLCBpMCkge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgMyA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBiYS5nZXQob2ZzKzApO1xuICB2YXIgYjIgPSBiYS5nZXQob2ZzKzEpO1xuICB2YXIgYjMgPSBiYS5nZXQob2ZzKzIpO1xuICB2YXIgYjQgPSBiYS5nZXQob2ZzKzMpO1xuICByZXR1cm4gKCAoYjEgPDwgMCkgIHxcbiAgICAgICAgICAgKGIyIDw8IDgpICB8XG4gICAgICAgICAgIChiMyA8PCAxNikgfFxuICAgICAgICAgICAoYjQgPDwgMjQpICk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfZ2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfZ2V0NjQoYmEsIGkwKSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyA3ID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGJhLmdldChvZnMrMCk7XG4gIHZhciBiMiA9IGJhLmdldChvZnMrMSk7XG4gIHZhciBiMyA9IGJhLmdldChvZnMrMik7XG4gIHZhciBiNCA9IGJhLmdldChvZnMrMyk7XG4gIHZhciBiNSA9IGJhLmdldChvZnMrNCk7XG4gIHZhciBiNiA9IGJhLmdldChvZnMrNSk7XG4gIHZhciBiNyA9IGJhLmdldChvZnMrNik7XG4gIHZhciBiOCA9IGJhLmdldChvZnMrNyk7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzKFtiOCxiNyxiNixiNSxiNCxiMyxiMixiMV0pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBjYW1sX2JhX2dldF8xKGJhLCBpMCkge1xuICByZXR1cm4gYmEuZ2V0KGJhLm9mZnNldChpMCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF8yXG5mdW5jdGlvbiBjYW1sX2JhX2dldF8yKGJhLCBpMCwgaTEpIHtcbiAgcmV0dXJuIGJhLmdldChiYS5vZmZzZXQoW2kwLGkxXSkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF8zXG5mdW5jdGlvbiBjYW1sX2JhX2dldF8zKGJhLCBpMCwgaTEsIGkyKSB7XG4gIHJldHVybiBiYS5nZXQoYmEub2Zmc2V0KFtpMCxpMSxpMl0pKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXRfZ2VuZXJpY1xuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2JhX3NldF9nZW5lcmljKGJhLCBpLCB2KSB7XG4gIGJhLnNldChiYS5vZmZzZXQoY2FtbF9qc19mcm9tX2FycmF5KGkpKSwgdik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfc2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfc2V0MTYoYmEsIGkwLCB2KSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyAxID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIGJhLnNldChvZnMrMCwgIHYgICAgICAgICYgMHhmZik7XG4gIGJhLnNldChvZnMrMSwgKHYgPj4+IDgpICYgMHhmZik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X3NldDMyKGJhLCBpMCwgdikge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgMyA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICBiYS5zZXQob2ZzKzAsICB2ICAgICAgICAgJiAweGZmKTtcbiAgYmEuc2V0KG9mcysxLCAodiA+Pj4gOCkgICYgMHhmZik7XG4gIGJhLnNldChvZnMrMiwgKHYgPj4+IDE2KSAmIDB4ZmYpO1xuICBiYS5zZXQob2ZzKzMsICh2ID4+PiAyNCkgJiAweGZmKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfc2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW50NjRfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfc2V0NjQoYmEsIGkwLCB2KSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyA3ID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciB2ID0gY2FtbF9pbnQ2NF90b19ieXRlcyh2KTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IDg7IGkrKykgYmEuc2V0KG9mcytpLCB2WzctaV0pXG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NldF8xXG5mdW5jdGlvbiBjYW1sX2JhX3NldF8xKGJhLCBpMCwgdikge1xuICBiYS5zZXQoYmEub2Zmc2V0KGkwKSwgdik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2V0XzJcbmZ1bmN0aW9uIGNhbWxfYmFfc2V0XzIoYmEsIGkwLCBpMSwgdikge1xuICBiYS5zZXQoYmEub2Zmc2V0KFtpMCxpMV0pLCB2KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2V0XzNcbmZ1bmN0aW9uIGNhbWxfYmFfc2V0XzMoYmEsIGkwLCBpMSwgaTIsIHYpIHtcbiAgYmEuc2V0KGJhLm9mZnNldChbaTAsaTEsaTJdKSwgdik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2ZpbGxcbmZ1bmN0aW9uIGNhbWxfYmFfZmlsbChiYSwgdikge1xuICBiYS5maWxsKHYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9ibGl0XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfYmxpdChzcmMsIGRzdCkge1xuICBpZiAoZHN0LmRpbXMubGVuZ3RoICE9IHNyYy5kaW1zLmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5ibGl0OiBkaW1lbnNpb24gbWlzbWF0Y2hcIik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZHN0LmRpbXMubGVuZ3RoOyBpKyspXG4gICAgaWYgKGRzdC5kaW1zW2ldICE9IHNyYy5kaW1zW2ldKVxuICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuYmxpdDogZGltZW5zaW9uIG1pc21hdGNoXCIpO1xuICBkc3QuZGF0YS5zZXQoc3JjLmRhdGEpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zdWJcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2JhX2dldF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG5mdW5jdGlvbiBjYW1sX2JhX3N1YihiYSwgb2ZzLCBsZW4pIHtcbiAgdmFyIGNoYW5nZWRfZGltO1xuICB2YXIgbXVsID0gMTtcbiAgaWYgKGJhLmxheW91dCA9PSAwKSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKVxuICAgICAgbXVsID0gbXVsICogYmEuZGltc1tpXTtcbiAgICBjaGFuZ2VkX2RpbSA9IDA7XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAoYmEuZGltcy5sZW5ndGggLSAxKTsgaSsrKVxuICAgICAgbXVsID0gbXVsICogYmEuZGltc1tpXTtcbiAgICBjaGFuZ2VkX2RpbSA9IGJhLmRpbXMubGVuZ3RoIC0gMTtcbiAgICBvZnMgPSBvZnMgLSAxO1xuICB9XG4gIGlmIChvZnMgPCAwIHx8IGxlbiA8IDAgfHwgKG9mcyArIGxlbikgPiBiYS5kaW1zW2NoYW5nZWRfZGltXSl7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuc3ViOiBiYWQgc3ViLWFycmF5XCIpO1xuICB9XG4gIHZhciBuZXdfZGltcyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspXG4gICAgbmV3X2RpbXNbaV0gPSBiYS5kaW1zW2ldO1xuICBuZXdfZGltc1tjaGFuZ2VkX2RpbV0gPSBsZW47XG4gIG11bCAqPSBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGJhLmtpbmQpO1xuICB2YXIgbmV3X2RhdGEgPSBiYS5kYXRhLnN1YmFycmF5KG9mcyAqIG11bCwgKG9mcyArIGxlbikgKiBtdWwpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGJhLmxheW91dCwgbmV3X2RpbXMsIG5ld19kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zbGljZVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5LCBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9nZXRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuZnVuY3Rpb24gY2FtbF9iYV9zbGljZShiYSwgdmluZCkge1xuICB2aW5kID0gY2FtbF9qc19mcm9tX2FycmF5KHZpbmQpO1xuICB2YXIgbnVtX2luZHMgPSB2aW5kLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gW107XG4gIHZhciBzdWJfZGltcyA9IFtdO1xuICB2YXIgb2ZzO1xuXG4gIGlmIChudW1faW5kcyA+IGJhLmRpbXMubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnNsaWNlOiB0b28gbWFueSBpbmRpY2VzXCIpO1xuXG4gIC8vIENvbXB1dGUgb2Zmc2V0IGFuZCBjaGVjayBib3VuZHNcbiAgaWYgKGJhLmxheW91dCA9PSAwKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1faW5kczsgaSsrKVxuICAgICAgaW5kZXhbaV0gPSB2aW5kW2ldO1xuICAgIGZvciAoOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKylcbiAgICAgIGluZGV4W2ldID0gMDtcbiAgICBzdWJfZGltcyA9IGJhLmRpbXMuc2xpY2UobnVtX2luZHMpO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2luZHM7IGkrKylcbiAgICAgIGluZGV4W2JhLmRpbXMubGVuZ3RoIC0gbnVtX2luZHMgKyBpXSA9IHZpbmRbaV07XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aCAtIG51bV9pbmRzOyBpKyspXG4gICAgICBpbmRleFtpXSA9IDE7XG4gICAgc3ViX2RpbXMgPSBiYS5kaW1zLnNsaWNlKDAsIGJhLmRpbXMubGVuZ3RoIC0gbnVtX2luZHMpO1xuICB9XG4gIG9mcyA9IGJhLm9mZnNldChpbmRleCk7XG4gIHZhciBzaXplID0gY2FtbF9iYV9nZXRfc2l6ZShzdWJfZGltcyk7XG4gIHZhciBzaXplX3Blcl9lbGVtZW50ID0gY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChiYS5raW5kKTtcbiAgdmFyIG5ld19kYXRhID0gYmEuZGF0YS5zdWJhcnJheShvZnMgKiBzaXplX3Blcl9lbGVtZW50LCAob2ZzICsgc2l6ZSkgKiBzaXplX3Blcl9lbGVtZW50KTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShiYS5raW5kLCBiYS5sYXlvdXQsIHN1Yl9kaW1zLCBuZXdfZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfcmVzaGFwZVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5LCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9iYV9nZXRfc2l6ZVxuZnVuY3Rpb24gY2FtbF9iYV9yZXNoYXBlKGJhLCB2aW5kKSB7XG4gIHZpbmQgPSBjYW1sX2pzX2Zyb21fYXJyYXkodmluZCk7XG4gIHZhciBuZXdfZGltID0gW107XG4gIHZhciBudW1fZGltcyA9IHZpbmQubGVuZ3RoO1xuXG4gIGlmIChudW1fZGltcyA8IDAgfHwgbnVtX2RpbXMgPiAxNil7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkucmVzaGFwZTogYmFkIG51bWJlciBvZiBkaW1lbnNpb25zXCIpO1xuICB9XG4gIHZhciBudW1fZWx0cyA9IDE7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2RpbXM7IGkrKykge1xuICAgIG5ld19kaW1baV0gPSB2aW5kW2ldO1xuICAgIGlmIChuZXdfZGltW2ldIDwgMClcbiAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnJlc2hhcGU6IG5lZ2F0aXZlIGRpbWVuc2lvblwiKTtcbiAgICBudW1fZWx0cyA9IG51bV9lbHRzICogbmV3X2RpbVtpXTtcbiAgfVxuXG4gIHZhciBzaXplID0gY2FtbF9iYV9nZXRfc2l6ZShiYS5kaW1zKTtcbiAgLy8gQ2hlY2sgdGhhdCBzaXplcyBhZ3JlZVxuICBpZiAobnVtX2VsdHMgIT0gc2l6ZSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5yZXNoYXBlOiBzaXplIG1pc21hdGNoXCIpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGJhLmxheW91dCwgbmV3X2RpbSwgYmEuZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2VyaWFsaXplXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfaW50NjRfdG9fYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaW50MzJfYml0c19vZl9mbG9hdFxuZnVuY3Rpb24gY2FtbF9iYV9zZXJpYWxpemUod3JpdGVyLCBiYSwgc3opIHtcbiAgd3JpdGVyLndyaXRlKDMyLCBiYS5kaW1zLmxlbmd0aCk7XG4gIHdyaXRlci53cml0ZSgzMiwgKGJhLmtpbmQgfCAoYmEubGF5b3V0IDw8IDgpKSk7XG4gIGlmKGJhLmNhbWxfY3VzdG9tID09IFwiX2JpZ2FycjAyXCIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmKGJhLmRpbXNbaV0gPCAweGZmZmYpXG4gICAgICAgIHdyaXRlci53cml0ZSgxNiwgYmEuZGltc1tpXSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgd3JpdGVyLndyaXRlKDE2LCAweGZmZmYpO1xuICAgICAgICB3cml0ZXIud3JpdGUoMzIsIDApO1xuICAgICAgICB3cml0ZXIud3JpdGUoMzIsIGJhLmRpbXNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgZWxzZVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKSB3cml0ZXIud3JpdGUoMzIsYmEuZGltc1tpXSlcbiAgc3dpdGNoKGJhLmtpbmQpe1xuICBjYXNlIDI6ICAvL0ludDhBcnJheVxuICBjYXNlIDM6ICAvL1VpbnQ4QXJyYXlcbiAgY2FzZSAxMjogLy9VaW50OEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgd3JpdGVyLndyaXRlKDgsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA0OiAgLy8gSW50MTZBcnJheVxuICBjYXNlIDU6ICAvLyBVaW50MTZBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHdyaXRlci53cml0ZSgxNiwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDY6ICAvLyBJbnQzMkFycmF5IChpbnQzMilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA4OiAgLy8gSW50MzJBcnJheSAoaW50KVxuICBjYXNlIDk6ICAvLyBJbnQzMkFycmF5IChuYXRpdmVpbnQpXG4gICAgd3JpdGVyLndyaXRlKDgsMCk7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNzogIC8vIEludDMyQXJyYXkgKGludDY0KVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aCAvIDI7IGkrKyl7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoYmEuZ2V0KGkpKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxOiAgLy8gRmxvYXQ2NEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdChiYS5nZXQoaSkpKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAwOiAgLy8gRmxvYXQzMkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQoYmEuZ2V0KGkpKTtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgYik7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDEwOiAvLyBGbG9hdDMyQXJyYXkgKGNvbXBsZXgzMilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGggLyAyOyBpKyspe1xuICAgICAgdmFyIGogPSBiYS5nZXQoaSk7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGNhbWxfaW50MzJfYml0c19vZl9mbG9hdChqWzFdKSk7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGNhbWxfaW50MzJfYml0c19vZl9mbG9hdChqWzJdKSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDExOiAvLyBGbG9hdDY0QXJyYXkgKGNvbXBsZXg2NClcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGggLyAyOyBpKyspe1xuICAgICAgdmFyIGNvbXBsZXggPSBiYS5nZXQoaSk7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KGNvbXBsZXhbMV0pKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdChjb21wbGV4WzJdKSk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDg7IGorKykgd3JpdGVyLndyaXRlICg4LCBiW2pdKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIH1cbiAgc3pbMF0gPSAoNCArIGJhLmRpbXMubGVuZ3RoKSAqIDQ7XG4gIHN6WzFdID0gKDQgKyBiYS5kaW1zLmxlbmd0aCkgKiA4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2Rlc2VyaWFsaXplXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfZmFpbHdpdGhcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXMsIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c1xuLy9SZXF1aXJlczogY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV9idWZmZXJcbmZ1bmN0aW9uIGNhbWxfYmFfZGVzZXJpYWxpemUocmVhZGVyLCBzeiwgbmFtZSl7XG4gIHZhciBudW1fZGltcyA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIGlmIChudW1fZGltcyA8IDAgfHwgbnVtX2RpbXMgPiAxNilcbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IHdyb25nIG51bWJlciBvZiBiaWdhcnJheSBkaW1lbnNpb25zXCIpO1xuICB2YXIgdGFnID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgdmFyIGtpbmQgPSB0YWcgJiAweGZmXG4gIHZhciBsYXlvdXQgPSAodGFnID4+IDgpICYgMTtcbiAgdmFyIGRpbXMgPSBbXVxuICBpZihuYW1lID09IFwiX2JpZ2FycjAyXCIpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZGltczsgaSsrKSB7XG4gICAgICB2YXIgc2l6ZV9kaW0gPSByZWFkZXIucmVhZDE2dSgpO1xuICAgICAgaWYoc2l6ZV9kaW0gPT0gMHhmZmZmKXtcbiAgICAgICAgdmFyIHNpemVfZGltX2hpID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgdmFyIHNpemVfZGltX2xvID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgaWYoc2l6ZV9kaW1faGkgIT0gMClcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGJpZ2FycmF5IGRpbWVuc2lvbiBvdmVyZmxvdyBpbiAzMmJpdFwiKTtcbiAgICAgICAgc2l6ZV9kaW0gPSBzaXplX2RpbV9sbztcbiAgICAgIH1cbiAgICAgIGRpbXMucHVzaChzaXplX2RpbSk7XG4gICAgfVxuICBlbHNlXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZGltczsgaSsrKSBkaW1zLnB1c2gocmVhZGVyLnJlYWQzMnUoKSk7XG4gIHZhciBzaXplID0gY2FtbF9iYV9nZXRfc2l6ZShkaW1zKTtcbiAgdmFyIGRhdGEgPSBjYW1sX2JhX2NyZWF0ZV9idWZmZXIoa2luZCwgc2l6ZSk7XG4gIHZhciBiYSA9IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xuICBzd2l0Y2goa2luZCl7XG4gIGNhc2UgMjogIC8vSW50OEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQ4cygpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAzOiAgLy9VaW50OEFycmF5XG4gIGNhc2UgMTI6IC8vVWludDhBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNDogIC8vIEludDE2QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDE2cygpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA1OiAgLy8gVWludDE2QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDE2dSgpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA2OiAgLy8gSW50MzJBcnJheSAoaW50MzIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgODogIC8vIEludDMyQXJyYXkgKGludClcbiAgY2FzZSA5OiAgLy8gSW50MzJBcnJheSAobmF0aXZlaW50KVxuICAgIHZhciBzaXh0eSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICBpZihzaXh0eSkgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBjYW5ub3QgcmVhZCBiaWdhcnJheSB3aXRoIDY0LWJpdCBPQ2FtbCBpbnRzXCIpO1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkMzJzKCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDc6IC8vIChpbnQ2NClcbiAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICB2YXIgaW50NjQgPSBjYW1sX2ludDY0X29mX2J5dGVzKHQpO1xuICAgICAgYmEuc2V0KGksaW50NjQpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxOiAgLy8gRmxvYXQ2NEFycmF5XG4gICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIGYgPSBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMoY2FtbF9pbnQ2NF9vZl9ieXRlcyh0KSk7XG4gICAgICBiYS5zZXQoaSxmKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMDogIC8vIEZsb2F0MzJBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgdmFyIGYgPSBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMocmVhZGVyLnJlYWQzMnMoKSk7XG4gICAgICBiYS5zZXQoaSxmKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IC8vIEZsb2F0MzJBcnJheSAoY29tcGxleDMyKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgdmFyIHJlID0gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzKHJlYWRlci5yZWFkMzJzKCkpO1xuICAgICAgdmFyIGltID0gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzKHJlYWRlci5yZWFkMzJzKCkpO1xuICAgICAgYmEuc2V0KGksWzI1NCxyZSxpbV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMTogLy8gRmxvYXQ2NEFycmF5IChjb21wbGV4NjQpXG4gICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIHJlID0gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzKGNhbWxfaW50NjRfb2ZfYnl0ZXModCkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIGltID0gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzKGNhbWxfaW50NjRfb2ZfYnl0ZXModCkpO1xuICAgICAgYmEuc2V0KGksWzI1NCxyZSxpbV0pO1xuICAgIH1cbiAgICBicmVha1xuICB9XG4gIHN6WzBdID0gKDQgKyBudW1fZGltcykgKiA0O1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG59XG5cbi8vRGVwcmVjYXRlZFxuLy9Qcm92aWRlczogY2FtbF9iYV9jcmVhdGVfZnJvbVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfY3JlYXRlX2Zyb20oZGF0YTEsIGRhdGEyLCBqc3R5cCwga2luZCwgbGF5b3V0LCBkaW1zKXtcbiAgaWYoZGF0YTIgfHwgY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChraW5kKSA9PSAyKXtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JhX2NyZWF0ZV9mcm9tOiB1c2UgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVwiKTtcbiAgfVxuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YTEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2hhc2ggY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemUsIGNhbWxfaGFzaF9taXhfaW50LCBjYW1sX2hhc2hfbWl4X2Zsb2F0XG5mdW5jdGlvbiBjYW1sX2JhX2hhc2goYmEpe1xuICB2YXIgbnVtX2VsdHMgPSBjYW1sX2JhX2dldF9zaXplKGJhLmRpbXMpO1xuICB2YXIgaCA9IDA7XG4gIHN3aXRjaChiYS5raW5kKXtcbiAgY2FzZSAyOiAgLy9JbnQ4QXJyYXlcbiAgY2FzZSAzOiAgLy9VaW50OEFycmF5XG4gIGNhc2UgMTI6IC8vVWludDhBcnJheVxuICAgIGlmKG51bV9lbHRzID4gMjU2KSBudW1fZWx0cyA9IDI1NjtcbiAgICB2YXIgdyA9IDAsIGkgPTA7XG4gICAgZm9yKGkgPSAwOyBpICsgNCA8PSBiYS5kYXRhLmxlbmd0aDsgaSs9NCl7XG4gICAgICB3ID0gYmEuZGF0YVtpKzBdIHwgKGJhLmRhdGFbaSsxXSA8PCA4KSB8IChiYS5kYXRhW2krMl0gPDwgMTYpIHwgKGJhLmRhdGFbaSszXSA8PCAyNCk7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCx3KTtcbiAgICB9XG4gICAgdyA9IDA7XG4gICAgc3dpdGNoIChudW1fZWx0cyAmIDMpIHtcbiAgICBjYXNlIDM6IHcgID0gYmEuZGF0YVtpKzJdIDw8IDE2OyAgICAvKiBmYWxsdGhyb3VnaCAqL1xuICAgIGNhc2UgMjogdyB8PSBiYS5kYXRhW2krMV0gPDwgODsgICAgIC8qIGZhbGx0aHJvdWdoICovXG4gICAgY2FzZSAxOiB3IHw9IGJhLmRhdGFbaSswXTtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNDogIC8vIEludDE2QXJyYXlcbiAgY2FzZSA1OiAgLy8gVWludDE2QXJyYXlcbiAgICBpZihudW1fZWx0cyA+IDEyOCkgbnVtX2VsdHMgPSAxMjg7XG4gICAgdmFyIHcgPSAwLCBpID0wO1xuICAgIGZvcihpID0gMDsgaSArIDIgPD0gYmEuZGF0YS5sZW5ndGg7IGkrPTIpe1xuICAgICAgdyA9IGJhLmRhdGFbaSswXSB8IChiYS5kYXRhW2krMV0gPDwgMTYpO1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsdyk7XG4gICAgfVxuICAgIGlmICgobnVtX2VsdHMgJiAxKSAhPSAwKVxuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICBjYXNlIDY6ICAvLyBJbnQzMkFycmF5IChpbnQzMilcbiAgICBpZiAobnVtX2VsdHMgPiA2NCkgbnVtX2VsdHMgPSA2NDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgY2FzZSA4OiAgLy8gSW50MzJBcnJheSAoaW50KVxuICBjYXNlIDk6ICAvLyBJbnQzMkFycmF5IChuYXRpdmVpbnQpXG4gICAgaWYgKG51bV9lbHRzID4gNjQpIG51bV9lbHRzID0gNjQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIGNhc2UgNzogIC8vIEludDMyQXJyYXkgKGludDY0KVxuICAgIGlmIChudW1fZWx0cyA+IDMyKSBudW1fZWx0cyA9IDMyO1xuICAgIG51bV9lbHRzICo9IDJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIHtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IC8vIEZsb2F0MzJBcnJheSAoY29tcGxleDMyKVxuICAgIG51bV9lbHRzICo9MjsgLyogZmFsbHRocm91Z2ggKi9cbiAgY2FzZSAwOiAgLy8gRmxvYXQzMkFycmF5XG4gICAgaWYgKG51bV9lbHRzID4gNjQpIG51bV9lbHRzID0gNjQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSBoID0gY2FtbF9oYXNoX21peF9mbG9hdChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgY2FzZSAxMTogLy8gRmxvYXQ2NEFycmF5IChjb21wbGV4NjQpXG4gICAgbnVtX2VsdHMgKj0yOyAvKiBmYWxsdGhyb3VnaCAqL1xuICBjYXNlIDE6ICAvLyBGbG9hdDY0QXJyYXlcbiAgICBpZiAobnVtX2VsdHMgPiAzMikgbnVtX2VsdHMgPSAzMjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIGggPSBjYW1sX2hhc2hfbWl4X2Zsb2F0KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3RvX3R5cGVkX2FycmF5IG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYmFfdG9fdHlwZWRfYXJyYXkoYmEpe1xuICByZXR1cm4gYmEuZGF0YTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5IG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5KHRhKXtcbiAgdmFyIGtpbmQ7XG4gIGlmICAgICAgKHRhIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSBraW5kID0gMDtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpIGtpbmQgPSAxO1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIEludDhBcnJheSkga2luZCA9IDI7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgVWludDhBcnJheSkga2luZCA9IDM7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgSW50MTZBcnJheSkga2luZCA9IDQ7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgVWludDE2QXJyYXkpIGtpbmQgPSA1O1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIEludDMyQXJyYXkpIGtpbmQgPSA2O1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIFVpbnQzMkFycmF5KSBraW5kID0gNjtcbiAgZWxzZSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXk6IHVuc3VwcG9ydGVkIGtpbmRcIik7XG4gIHJldHVybiBraW5kO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbmZ1bmN0aW9uIGNhbWxfYmFfZnJvbV90eXBlZF9hcnJheSh0YSl7XG4gIHZhciBraW5kID0gY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5KHRhKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCAwLCBbdGEubGVuZ3RoXSwgdGEpO1xufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RpdmUgQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAqL1xuLyogIGVuIEF1dG9tYXRpcXVlLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCAgICAqL1xuLyogIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB3aXRoICAgICAqL1xuLyogIHRoZSBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiBmaWxlIC4uL0xJQ0VOU0UuICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiAkSWQ6IHBhcnNpbmcuYyA4OTgzIDIwMDgtMDgtMDYgMDk6Mzg6MjVaIHhsZXJveSAkICovXG5cbi8qIFRoZSBQREEgYXV0b21hdG9uIGZvciBwYXJzZXJzIGdlbmVyYXRlZCBieSBjYW1seWFjYyAqL1xuXG4vKiBUaGUgcHVzaGRvd24gYXV0b21hdGEgKi9cblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZXJfdHJhY2VcbnZhciBjYW1sX3BhcnNlcl90cmFjZSA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2VfZW5naW5lXG4vL1JlcXVpcmVzOiBjYW1sX2xleF9hcnJheSwgY2FtbF9wYXJzZXJfdHJhY2UsY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfbWxfb3V0cHV0LCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcGFyc2VfZW5naW5lKHRhYmxlcywgZW52LCBjbWQsIGFyZylcbntcbiAgdmFyIEVSUkNPREUgPSAyNTY7XG5cbiAgLy92YXIgU1RBUlQgPSAwO1xuICAvL3ZhciBUT0tFTl9SRUFEID0gMTtcbiAgLy92YXIgU1RBQ0tTX0dST1dOXzEgPSAyO1xuICAvL3ZhciBTVEFDS1NfR1JPV05fMiA9IDM7XG4gIC8vdmFyIFNFTUFOVElDX0FDVElPTl9DT01QVVRFRCA9IDQ7XG4gIC8vdmFyIEVSUk9SX0RFVEVDVEVEID0gNTtcbiAgdmFyIGxvb3AgPSA2O1xuICB2YXIgdGVzdHNoaWZ0ID0gNztcbiAgdmFyIHNoaWZ0ID0gODtcbiAgdmFyIHNoaWZ0X3JlY292ZXIgPSA5O1xuICB2YXIgcmVkdWNlID0gMTA7XG5cbiAgdmFyIFJFQURfVE9LRU4gPSAwO1xuICB2YXIgUkFJU0VfUEFSU0VfRVJST1IgPSAxO1xuICB2YXIgR1JPV19TVEFDS1NfMSA9IDI7XG4gIHZhciBHUk9XX1NUQUNLU18yID0gMztcbiAgdmFyIENPTVBVVEVfU0VNQU5USUNfQUNUSU9OID0gNDtcbiAgdmFyIENBTExfRVJST1JfRlVOQ1RJT04gPSA1O1xuXG4gIHZhciBlbnZfc19zdGFjayA9IDE7XG4gIHZhciBlbnZfdl9zdGFjayA9IDI7XG4gIHZhciBlbnZfc3ltYl9zdGFydF9zdGFjayA9IDM7XG4gIHZhciBlbnZfc3ltYl9lbmRfc3RhY2sgPSA0O1xuICB2YXIgZW52X3N0YWNrc2l6ZSA9IDU7XG4gIHZhciBlbnZfc3RhY2tiYXNlID0gNjtcbiAgdmFyIGVudl9jdXJyX2NoYXIgPSA3O1xuICB2YXIgZW52X2x2YWwgPSA4O1xuICB2YXIgZW52X3N5bWJfc3RhcnQgPSA5O1xuICB2YXIgZW52X3N5bWJfZW5kID0gMTA7XG4gIHZhciBlbnZfYXNwID0gMTE7XG4gIHZhciBlbnZfcnVsZV9sZW4gPSAxMjtcbiAgdmFyIGVudl9ydWxlX251bWJlciA9IDEzO1xuICB2YXIgZW52X3NwID0gMTQ7XG4gIHZhciBlbnZfc3RhdGUgPSAxNTtcbiAgdmFyIGVudl9lcnJmbGFnID0gMTY7XG5cbiAgLy8gdmFyIF90YmxfYWN0aW9ucyA9IDE7XG4gIHZhciB0YmxfdHJhbnNsX2NvbnN0ID0gMjtcbiAgdmFyIHRibF90cmFuc2xfYmxvY2sgPSAzO1xuICB2YXIgdGJsX2xocyA9IDQ7XG4gIHZhciB0YmxfbGVuID0gNTtcbiAgdmFyIHRibF9kZWZyZWQgPSA2O1xuICB2YXIgdGJsX2Rnb3RvID0gNztcbiAgdmFyIHRibF9zaW5kZXggPSA4O1xuICB2YXIgdGJsX3JpbmRleCA9IDk7XG4gIHZhciB0YmxfZ2luZGV4ID0gMTA7XG4gIHZhciB0YmxfdGFibGVzaXplID0gMTE7XG4gIHZhciB0YmxfdGFibGUgPSAxMjtcbiAgdmFyIHRibF9jaGVjayA9IDEzO1xuICAvLyB2YXIgX3RibF9lcnJvcl9mdW5jdGlvbiA9IDE0O1xuICB2YXIgdGJsX25hbWVzX2NvbnN0ID0gMTU7XG4gIHZhciB0YmxfbmFtZXNfYmxvY2sgPSAxNjtcblxuXG4gIGZ1bmN0aW9uIGxvZyh4KSB7XG4gICAgdmFyIHMgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHggKyBcIlxcblwiKTtcbiAgICBjYW1sX21sX291dHB1dCgyLCBzLCAwLCBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpO1xuICB9XG5cbiAgZnVuY3Rpb24gdG9rZW5fbmFtZShuYW1lcywgbnVtYmVyKVxuICB7XG4gICAgdmFyIHN0ciA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKG5hbWVzKTtcbiAgICBpZiAoc3RyWzBdID09ICdcXHgwMCcpXG4gICAgICByZXR1cm4gXCI8dW5rbm93biB0b2tlbj5cIjtcbiAgICByZXR1cm4gc3RyLnNwbGl0KCdcXHgwMCcpW251bWJlcl07XG4gIH1cblxuICBmdW5jdGlvbiBwcmludF90b2tlbihzdGF0ZSwgdG9rKVxuICB7XG4gICAgdmFyIHRva2VuLCBraW5kO1xuICAgIGlmICh0b2sgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgdG9rZW4gPSB0b2tlbl9uYW1lKHRhYmxlc1t0YmxfbmFtZXNfYmxvY2tdLCB0b2tbMF0pO1xuICAgICAgaWYgKHR5cGVvZiB0b2tbMV0gPT0gXCJudW1iZXJcIilcbiAgICAgICAga2luZCA9IFwiXCIgKyB0b2tbMV07XG4gICAgICBlbHNlIGlmICh0eXBlb2YgdG9rWzFdID09IFwic3RyaW5nXCIpXG4gICAgICAgIGtpbmQgPSB0b2tbMV1cbiAgICAgIGVsc2UgaWYgKHRva1sxXSBpbnN0YW5jZW9mIE1sQnl0ZXMpXG4gICAgICAgIGtpbmQgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHRva1sxXSlcbiAgICAgIGVsc2VcbiAgICAgICAga2luZCA9IFwiX1wiXG4gICAgICBsb2coXCJTdGF0ZSBcIiArIHN0YXRlICsgXCI6IHJlYWQgdG9rZW4gXCIgKyB0b2tlbiArIFwiKFwiICsga2luZCArIFwiKVwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdG9rZW4gPSB0b2tlbl9uYW1lKHRhYmxlc1t0YmxfbmFtZXNfY29uc3RdLCB0b2spO1xuICAgICAgbG9nKFwiU3RhdGUgXCIgKyBzdGF0ZSArIFwiOiByZWFkIHRva2VuIFwiICsgdG9rZW4pO1xuICAgIH1cbiAgfVxuXG4gIGlmICghdGFibGVzLmRnb3RvKSB7XG4gICAgdGFibGVzLmRlZnJlZCA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2RlZnJlZF0pO1xuICAgIHRhYmxlcy5zaW5kZXggPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9zaW5kZXhdKTtcbiAgICB0YWJsZXMuY2hlY2sgID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfY2hlY2tdKTtcbiAgICB0YWJsZXMucmluZGV4ID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfcmluZGV4XSk7XG4gICAgdGFibGVzLnRhYmxlICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX3RhYmxlXSk7XG4gICAgdGFibGVzLmxlbiAgICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2xlbl0pO1xuICAgIHRhYmxlcy5saHMgICAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9saHNdKTtcbiAgICB0YWJsZXMuZ2luZGV4ID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfZ2luZGV4XSk7XG4gICAgdGFibGVzLmRnb3RvICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2Rnb3RvXSk7XG4gIH1cblxuICB2YXIgcmVzID0gMCwgbiwgbjEsIG4yLCBzdGF0ZTE7XG5cbiAgLy8gUkVTVE9SRVxuICB2YXIgc3AgPSBlbnZbZW52X3NwXTtcbiAgdmFyIHN0YXRlID0gZW52W2Vudl9zdGF0ZV07XG4gIHZhciBlcnJmbGFnID0gZW52W2Vudl9lcnJmbGFnXTtcblxuICBleGl0OmZvciAoOzspIHtcbiAgICBuZXh0OnN3aXRjaChjbWQpIHtcbiAgICBjYXNlIDA6Ly9TVEFSVDpcbiAgICAgIHN0YXRlID0gMDtcbiAgICAgIGVycmZsYWcgPSAwO1xuICAgICAgLy8gRmFsbCB0aHJvdWdoXG5cbiAgICBjYXNlIDY6Ly9sb29wOlxuICAgICAgbiA9IHRhYmxlcy5kZWZyZWRbc3RhdGVdO1xuICAgICAgaWYgKG4gIT0gMCkgeyBjbWQgPSByZWR1Y2U7IGJyZWFrOyB9XG4gICAgICBpZiAoZW52W2Vudl9jdXJyX2NoYXJdID49IDApIHsgY21kID0gdGVzdHNoaWZ0OyBicmVhazsgfVxuICAgICAgcmVzID0gUkVBRF9UT0tFTjtcbiAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICAvKiBUaGUgTUwgY29kZSBjYWxscyB0aGUgbGV4ZXIgYW5kIHVwZGF0ZXMgKi9cbiAgICAgIC8qIHN5bWJfc3RhcnQgYW5kIHN5bWJfZW5kICovXG4gICAgY2FzZSAxOi8vVE9LRU5fUkVBRDpcbiAgICAgIGlmIChhcmcgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSB0YWJsZXNbdGJsX3RyYW5zbF9ibG9ja11bYXJnWzBdICsgMV07XG4gICAgICAgIGVudltlbnZfbHZhbF0gPSBhcmdbMV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSB0YWJsZXNbdGJsX3RyYW5zbF9jb25zdF1bYXJnICsgMV07XG4gICAgICAgIGVudltlbnZfbHZhbF0gPSAwO1xuICAgICAgfVxuICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKSBwcmludF90b2tlbiAoc3RhdGUsIGFyZyk7XG4gICAgICAvLyBGYWxsIHRocm91Z2hcblxuICAgIGNhc2UgNzovL3Rlc3RzaGlmdDpcbiAgICAgIG4xID0gdGFibGVzLnNpbmRleFtzdGF0ZV07XG4gICAgICBuMiA9IG4xICsgZW52W2Vudl9jdXJyX2NoYXJdO1xuICAgICAgaWYgKG4xICE9IDAgJiYgbjIgPj0gMCAmJiBuMiA8PSB0YWJsZXNbdGJsX3RhYmxlc2l6ZV0gJiZcbiAgICAgICAgICB0YWJsZXMuY2hlY2tbbjJdID09IGVudltlbnZfY3Vycl9jaGFyXSkge1xuICAgICAgICBjbWQgPSBzaGlmdDsgYnJlYWs7XG4gICAgICB9XG4gICAgICBuMSA9IHRhYmxlcy5yaW5kZXhbc3RhdGVdO1xuICAgICAgbjIgPSBuMSArIGVudltlbnZfY3Vycl9jaGFyXTtcbiAgICAgIGlmIChuMSAhPSAwICYmIG4yID49IDAgJiYgbjIgPD0gdGFibGVzW3RibF90YWJsZXNpemVdICYmXG4gICAgICAgICAgdGFibGVzLmNoZWNrW24yXSA9PSBlbnZbZW52X2N1cnJfY2hhcl0pIHtcbiAgICAgICAgbiA9IHRhYmxlcy50YWJsZVtuMl07XG4gICAgICAgIGNtZCA9IHJlZHVjZTsgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAoZXJyZmxhZyA8PSAwKSB7XG4gICAgICAgIHJlcyA9IENBTExfRVJST1JfRlVOQ1RJT047XG4gICAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICAgIC8qIFRoZSBNTCBjb2RlIGNhbGxzIHRoZSBlcnJvciBmdW5jdGlvbiAqL1xuICAgIGNhc2UgNTovL0VSUk9SX0RFVEVDVEVEOlxuICAgICAgaWYgKGVycmZsYWcgPCAzKSB7XG4gICAgICAgIGVycmZsYWcgPSAzO1xuICAgICAgICBmb3IgKDs7KSB7XG4gICAgICAgICAgc3RhdGUxID0gZW52W2Vudl9zX3N0YWNrXVtzcCArIDFdO1xuICAgICAgICAgIG4xID0gdGFibGVzLnNpbmRleFtzdGF0ZTFdO1xuICAgICAgICAgIG4yID0gbjEgKyBFUlJDT0RFO1xuICAgICAgICAgIGlmIChuMSAhPSAwICYmIG4yID49IDAgJiYgbjIgPD0gdGFibGVzW3RibF90YWJsZXNpemVdICYmXG4gICAgICAgICAgICAgIHRhYmxlcy5jaGVja1tuMl0gPT0gRVJSQ09ERSkge1xuICAgICAgICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKVxuICAgICAgICAgICAgICBsb2coXCJSZWNvdmVyaW5nIGluIHN0YXRlIFwiICsgc3RhdGUxKTtcbiAgICAgICAgICAgIGNtZCA9IHNoaWZ0X3JlY292ZXI7IGJyZWFrIG5leHQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjYW1sX3BhcnNlcl90cmFjZSlcbiAgICAgICAgICAgICAgbG9nKFwiRGlzY2FyZGluZyBzdGF0ZSBcIiArIHN0YXRlMSk7XG4gICAgICAgICAgICBpZiAoc3AgPD0gZW52W2Vudl9zdGFja2Jhc2VdKSB7XG4gICAgICAgICAgICAgIGlmIChjYW1sX3BhcnNlcl90cmFjZSlcbiAgICAgICAgICAgICAgICBsb2coXCJObyBtb3JlIHN0YXRlcyB0byBkaXNjYXJkXCIpO1xuICAgICAgICAgICAgICByZXR1cm4gUkFJU0VfUEFSU0VfRVJST1I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBUaGUgTUwgY29kZSByYWlzZXMgUGFyc2VfZXJyb3IgKi9cbiAgICAgICAgICAgIHNwLS07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZW52W2Vudl9jdXJyX2NoYXJdID09IDApXG4gICAgICAgICAgcmV0dXJuIFJBSVNFX1BBUlNFX0VSUk9SOyAvKiBUaGUgTUwgY29kZSByYWlzZXMgUGFyc2VfZXJyb3IgKi9cbiAgICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKVxuICAgICAgICAgIGxvZyhcIkRpc2NhcmRpbmcgbGFzdCB0b2tlbiByZWFkXCIpO1xuICAgICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSAtMTtcbiAgICAgICAgY21kID0gbG9vcDsgYnJlYWs7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICBjYXNlIDg6Ly9zaGlmdDpcbiAgICAgIGVudltlbnZfY3Vycl9jaGFyXSA9IC0xO1xuICAgICAgaWYgKGVycmZsYWcgPiAwKSBlcnJmbGFnLS07XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICBjYXNlIDk6Ly9zaGlmdF9yZWNvdmVyOlxuICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKVxuICAgICAgICBsb2coXCJTdGF0ZSBcIiArIHN0YXRlICsgXCI6IHNoaWZ0IHRvIHN0YXRlIFwiICsgdGFibGVzLnRhYmxlW24yXSk7XG4gICAgICBzdGF0ZSA9IHRhYmxlcy50YWJsZVtuMl07XG4gICAgICBzcCsrO1xuICAgICAgaWYgKHNwID49IGVudltlbnZfc3RhY2tzaXplXSkge1xuICAgICAgICByZXMgPSBHUk9XX1NUQUNLU18xO1xuICAgICAgICBicmVhayBleGl0O1xuICAgICAgfVxuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgICAvKiBUaGUgTUwgY29kZSByZXNpemVzIHRoZSBzdGFja3MgKi9cbiAgICBjYXNlIDI6Ly9TVEFDS1NfR1JPV05fMTpcbiAgICAgIGVudltlbnZfc19zdGFja11bc3AgKyAxXSA9IHN0YXRlO1xuICAgICAgZW52W2Vudl92X3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9sdmFsXTtcbiAgICAgIGVudltlbnZfc3ltYl9zdGFydF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9zdGFydF07XG4gICAgICBlbnZbZW52X3N5bWJfZW5kX3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9zeW1iX2VuZF07XG4gICAgICBjbWQgPSBsb29wO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIDEwOi8vcmVkdWNlOlxuICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKVxuICAgICAgICBsb2coXCJTdGF0ZSBcIiArIHN0YXRlICsgXCI6IHJlZHVjZSBieSBydWxlIFwiICsgbik7XG4gICAgICB2YXIgbSA9IHRhYmxlcy5sZW5bbl07XG4gICAgICBlbnZbZW52X2FzcF0gPSBzcDtcbiAgICAgIGVudltlbnZfcnVsZV9udW1iZXJdID0gbjtcbiAgICAgIGVudltlbnZfcnVsZV9sZW5dID0gbTtcbiAgICAgIHNwID0gc3AgLSBtICsgMTtcbiAgICAgIG0gPSB0YWJsZXMubGhzW25dO1xuICAgICAgc3RhdGUxID0gZW52W2Vudl9zX3N0YWNrXVtzcF07XG4gICAgICBuMSA9IHRhYmxlcy5naW5kZXhbbV07XG4gICAgICBuMiA9IG4xICsgc3RhdGUxO1xuICAgICAgaWYgKG4xICE9IDAgJiYgbjIgPj0gMCAmJiBuMiA8PSB0YWJsZXNbdGJsX3RhYmxlc2l6ZV0gJiZcbiAgICAgICAgICB0YWJsZXMuY2hlY2tbbjJdID09IHN0YXRlMSlcbiAgICAgICAgc3RhdGUgPSB0YWJsZXMudGFibGVbbjJdO1xuICAgICAgZWxzZVxuICAgICAgICBzdGF0ZSA9IHRhYmxlcy5kZ290b1ttXTtcbiAgICAgIGlmIChzcCA+PSBlbnZbZW52X3N0YWNrc2l6ZV0pIHtcbiAgICAgICAgcmVzID0gR1JPV19TVEFDS1NfMjtcbiAgICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgICAgLyogVGhlIE1MIGNvZGUgcmVzaXplcyB0aGUgc3RhY2tzICovXG4gICAgY2FzZSAzOi8vU1RBQ0tTX0dST1dOXzI6XG4gICAgICByZXMgPSBDT01QVVRFX1NFTUFOVElDX0FDVElPTjtcbiAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICAvKiBUaGUgTUwgY29kZSBjYWxscyB0aGUgc2VtYW50aWMgYWN0aW9uICovXG4gICAgY2FzZSA0Oi8vU0VNQU5USUNfQUNUSU9OX0NPTVBVVEVEOlxuICAgICAgZW52W2Vudl9zX3N0YWNrXVtzcCArIDFdID0gc3RhdGU7XG4gICAgICBlbnZbZW52X3Zfc3RhY2tdW3NwICsgMV0gPSBhcmc7XG4gICAgICB2YXIgYXNwID0gZW52W2Vudl9hc3BdO1xuICAgICAgZW52W2Vudl9zeW1iX2VuZF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9lbmRfc3RhY2tdW2FzcCArIDFdO1xuICAgICAgaWYgKHNwID4gYXNwKSB7XG4gICAgICAgIC8qIFRoaXMgaXMgYW4gZXBzaWxvbiBwcm9kdWN0aW9uLiBUYWtlIHN5bWJfc3RhcnQgZXF1YWwgdG8gc3ltYl9lbmQuICovXG4gICAgICAgIGVudltlbnZfc3ltYl9zdGFydF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9lbmRfc3RhY2tdW2FzcCArIDFdO1xuICAgICAgfVxuICAgICAgY21kID0gbG9vcDsgYnJlYWs7XG4gICAgICAvKiBTaG91bGQgbm90IGhhcHBlbiAqL1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gUkFJU0VfUEFSU0VfRVJST1I7XG4gICAgfVxuICB9XG4gIC8vIFNBVkVcbiAgZW52W2Vudl9zcF0gPSBzcDtcbiAgZW52W2Vudl9zdGF0ZV0gPSBzdGF0ZTtcbiAgZW52W2Vudl9lcnJmbGFnXSA9IGVycmZsYWc7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2V0X3BhcnNlcl90cmFjZSBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9wYXJzZXJfdHJhY2VcbmZ1bmN0aW9uIGNhbWxfc2V0X3BhcnNlcl90cmFjZShib29sKSB7XG4gIHZhciBvbGRmbGFnID0gY2FtbF9wYXJzZXJfdHJhY2U7XG4gIGNhbWxfcGFyc2VyX3RyYWNlID0gYm9vbDtcbiAgcmV0dXJuIG9sZGZsYWc7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zvcm1hdF9pbnQgY29uc3QgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2VfZm9ybWF0LCBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nLCBjYW1sX3N0cl9yZXBlYXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZm9ybWF0X2ludChmbXQsIGkpIHtcbiAgaWYgKGNhbWxfanNieXRlc19vZl9zdHJpbmcoZm10KSA9PSBcIiVkXCIpIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIraSk7XG4gIHZhciBmID0gY2FtbF9wYXJzZV9mb3JtYXQoZm10KTtcbiAgaWYgKGkgPCAwKSB7IGlmIChmLnNpZ25lZGNvbnYpIHsgZi5zaWduID0gLTE7IGkgPSAtaTsgfSBlbHNlIGkgPj4+PSAwOyB9XG4gIHZhciBzID0gaS50b1N0cmluZyhmLmJhc2UpO1xuICBpZiAoZi5wcmVjID49IDApIHtcbiAgICBmLmZpbGxlciA9ICcgJztcbiAgICB2YXIgbiA9IGYucHJlYyAtIHMubGVuZ3RoO1xuICAgIGlmIChuID4gMCkgcyA9IGNhbWxfc3RyX3JlcGVhdCAobiwgJzAnKSArIHM7XG4gIH1cbiAgcmV0dXJuIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcoZiwgcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UgKHMpIHtcbiAgdmFyIGkgPSAwLCBsZW4gPSBjYW1sX21sX3N0cmluZ19sZW5ndGgocyksIGJhc2UgPSAxMCwgc2lnbiA9IDE7XG4gIGlmIChsZW4gPiAwKSB7XG4gICAgc3dpdGNoIChjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsaSkpIHtcbiAgICBjYXNlIDQ1OiBpKys7IHNpZ24gPSAtMTsgYnJlYWs7XG4gICAgY2FzZSA0MzogaSsrOyBzaWduID0gMTsgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChpICsgMSA8IGxlbiAmJiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpID09IDQ4KVxuICAgIHN3aXRjaCAoY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpICsgMSkpIHtcbiAgICBjYXNlIDEyMDogY2FzZSA4ODogYmFzZSA9IDE2OyBpICs9IDI7IGJyZWFrO1xuICAgIGNhc2UgMTExOiBjYXNlIDc5OiBiYXNlID0gIDg7IGkgKz0gMjsgYnJlYWs7XG4gICAgY2FzZSAgOTg6IGNhc2UgNjY6IGJhc2UgPSAgMjsgaSArPSAyOyBicmVhaztcbiAgICBjYXNlIDExNzogY2FzZSA4NTogaSArPSAyOyBicmVhaztcbiAgICB9XG4gIHJldHVybiBbaSwgc2lnbiwgYmFzZV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2VfZGlnaXRcbmZ1bmN0aW9uIGNhbWxfcGFyc2VfZGlnaXQoYykge1xuICBpZiAoYyA+PSA0OCAmJiBjIDw9IDU3KSAgcmV0dXJuIGMgLSA0ODtcbiAgaWYgKGMgPj0gNjUgJiYgYyA8PSA5MCkgIHJldHVybiBjIC0gNTU7XG4gIGlmIChjID49IDk3ICYmIGMgPD0gMTIyKSByZXR1cm4gYyAtIDg3O1xuICByZXR1cm4gLTE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50X29mX3N0cmluZyAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSwgY2FtbF9wYXJzZV9kaWdpdCwgY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9pbnRfb2Zfc3RyaW5nIChzKSB7XG4gIHZhciByID0gY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIChzKTtcbiAgdmFyIGkgPSByWzBdLCBzaWduID0gclsxXSwgYmFzZSA9IHJbMl07XG4gIHZhciBsZW4gPSBjYW1sX21sX3N0cmluZ19sZW5ndGgocyk7XG4gIHZhciB0aHJlc2hvbGQgPSAtMSA+Pj4gMDtcbiAgdmFyIGMgPSAoaSA8IGxlbik/Y2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKTowO1xuICB2YXIgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gIGlmIChkIDwgMCB8fCBkID49IGJhc2UpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB2YXIgcmVzID0gZDtcbiAgZm9yIChpKys7aTxsZW47aSsrKSB7XG4gICAgYyA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSk7XG4gICAgaWYgKGMgPT0gOTUpIGNvbnRpbnVlO1xuICAgIGQgPSBjYW1sX3BhcnNlX2RpZ2l0KGMpO1xuICAgIGlmIChkIDwgMCB8fCBkID49IGJhc2UpIGJyZWFrO1xuICAgIHJlcyA9IGJhc2UgKiByZXMgKyBkO1xuICAgIGlmIChyZXMgPiB0aHJlc2hvbGQpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB9XG4gIGlmIChpICE9IGxlbikgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIC8vIEZvciBiYXNlIGRpZmZlcmVudCBmcm9tIDEwLCB3ZSBleHBlY3QgYW4gdW5zaWduZWQgcmVwcmVzZW50YXRpb24sXG4gIC8vIGhlbmNlIGFueSB2YWx1ZSBvZiAncmVzJyAobGVzcyB0aGFuICd0aHJlc2hvbGQnKSBpcyBhY2NlcHRhYmxlLlxuICAvLyBCdXQgd2UgaGF2ZSB0byBjb252ZXJ0IHRoZSByZXN1bHQgYmFjayB0byBhIHNpZ25lZCBpbnRlZ2VyLlxuICByZXMgPSBzaWduICogcmVzO1xuICBpZiAoKGJhc2UgPT0gMTApICYmICgocmVzIHwgMCkgIT0gcmVzKSlcbiAgICAvKiBTaWduZWQgcmVwcmVzZW50YXRpb24gZXhwZWN0ZWQsIGFsbG93IC0yXihuYml0cy0xKSB0byAyXihuYml0cy0xKSAtIDEgKi9cbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgcmV0dXJuIHJlcyB8IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbXVsIGNvbnN0XG5mdW5jdGlvbiBjYW1sX211bChhLGIpe1xuICByZXR1cm4gTWF0aC5pbXVsKGEsYik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZGl2XG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBjYW1sX2Rpdih4LHkpIHtcbiAgaWYgKHkgPT0gMCkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgcmV0dXJuICh4L3kpfDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbW9kXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBjYW1sX21vZCh4LHkpIHtcbiAgaWYgKHkgPT0gMCkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgcmV0dXJuIHgleTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ic3dhcDE2XG5mdW5jdGlvbiBjYW1sX2Jzd2FwMTYoeCkge1xuICByZXR1cm4gKCgoKHggJiAweDAwRkYpIDw8IDgpIHxcbiAgICAgICAgICAgKCh4ICYgMHhGRjAwKSA+PiA4KSkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9pbnQzMl9ic3dhcFxuZnVuY3Rpb24gY2FtbF9pbnQzMl9ic3dhcCh4KSB7XG4gIHJldHVybiAoKCh4ICYgMHgwMDAwMDBGRikgPDwgMjQpIHxcbiAgICAgICAgICAoKHggJiAweDAwMDBGRjAwKSA8PCA4KSB8XG4gICAgICAgICAgKCh4ICYgMHgwMEZGMDAwMCkgPj4+IDgpIHxcbiAgICAgICAgICAoKHggJiAweEZGMDAwMDAwKSA+Pj4gMjQpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfYnN3YXBcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXMsIGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaW50NjRfYnN3YXAoeCkge1xuICB2YXIgeSA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoeCk7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzKFt5WzddLCB5WzZdLCB5WzVdLCB5WzRdLCB5WzNdLCB5WzJdLCB5WzFdLCB5WzBdXSk7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEhhc2h0YmxcblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfdW5pdl9wYXJhbSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX3N0cmluZywgY2FtbF9pc19tbF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19jb250ZW50XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzLCBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19sZW5ndGgsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbi8vVmVyc2lvbjogPCA0LjEyXG5mdW5jdGlvbiBjYW1sX2hhc2hfdW5pdl9wYXJhbSAoY291bnQsIGxpbWl0LCBvYmopIHtcbiAgdmFyIGhhc2hfYWNjdSA9IDA7XG4gIGZ1bmN0aW9uIGhhc2hfYXV4IChvYmopIHtcbiAgICBsaW1pdCAtLTtcbiAgICBpZiAoY291bnQgPCAwIHx8IGxpbWl0IDwgMCkgcmV0dXJuO1xuICAgIGlmIChvYmogaW5zdGFuY2VvZiBBcnJheSAmJiBvYmpbMF0gPT09IChvYmpbMF18MCkpIHtcbiAgICAgIHN3aXRjaCAob2JqWzBdKSB7XG4gICAgICBjYXNlIDI0ODpcbiAgICAgICAgLy8gT2JqZWN0XG4gICAgICAgIGNvdW50IC0tO1xuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogNjU1OTkgKyBvYmpbMl0pIHwgMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MDpcbiAgICAgICAgLy8gRm9yd2FyZFxuICAgICAgICBsaW1pdCsrOyBoYXNoX2F1eChvYmopOyBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvdW50IC0tO1xuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBvYmpbMF0pIHwgMDtcbiAgICAgICAgZm9yICh2YXIgaSA9IG9iai5sZW5ndGggLSAxOyBpID4gMDsgaS0tKSBoYXNoX2F1eCAob2JqW2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXMob2JqKSkge1xuICAgICAgY291bnQgLS07XG4gICAgICB2YXIgY29udGVudCA9IGNhbWxfbWxfYnl0ZXNfY29udGVudChvYmopO1xuICAgICAgaWYodHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgZm9yICh2YXIgYiA9IGNvbnRlbnQsIGwgPSBiLmxlbmd0aCwgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgYi5jaGFyQ29kZUF0KGkpKSB8IDA7XG4gICAgICB9IGVsc2UgeyAvKiBBUlJBWSAqL1xuICAgICAgICBmb3IgKHZhciBhID0gY29udGVudCwgbCA9IGEubGVuZ3RoLCBpID0gMDsgaSA8IGw7IGkrKylcbiAgICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBhW2ldKSB8IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyhvYmopKSB7XG4gICAgICB2YXIganNieXRlcyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcob2JqKTtcbiAgICAgIGZvciAodmFyIGIgPSBqc2J5dGVzLCBsID0ganNieXRlcy5sZW5ndGgsIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBiLmNoYXJDb2RlQXQoaSkpIHwgMDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGZvciAodmFyIGIgPSBvYmosIGwgPSBvYmoubGVuZ3RoLCBpID0gMDsgaSA8IGw7IGkrKylcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgYi5jaGFyQ29kZUF0KGkpKSB8IDA7XG4gICAgfSBlbHNlIGlmIChvYmogPT09IChvYmp8MCkpIHtcbiAgICAgIC8vIEludGVnZXJcbiAgICAgIGNvdW50IC0tO1xuICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDY1NTk5ICsgb2JqKSB8IDA7XG4gICAgfSBlbHNlIGlmIChvYmogPT09ICtvYmopIHtcbiAgICAgIC8vIEZsb2F0XG4gICAgICBjb3VudC0tO1xuICAgICAgdmFyIHAgPSBjYW1sX2ludDY0X3RvX2J5dGVzIChjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgKG9iaikpO1xuICAgICAgZm9yICh2YXIgaSA9IDc7IGkgPj0gMDsgaS0tKSBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBwW2ldKSB8IDA7XG4gICAgfSBlbHNlIGlmKG9iaiAmJiBvYmouY2FtbF9jdXN0b20pIHtcbiAgICAgIGlmKGNhbWxfY3VzdG9tX29wc1tvYmouY2FtbF9jdXN0b21dICYmIGNhbWxfY3VzdG9tX29wc1tvYmouY2FtbF9jdXN0b21dLmhhc2gpIHtcbiAgICAgICAgdmFyIGggPSBjYW1sX2N1c3RvbV9vcHNbb2JqLmNhbWxfY3VzdG9tXS5oYXNoKG9iaikgfCAwO1xuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogNjU1OTkgKyBoKSB8IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGhhc2hfYXV4IChvYmopO1xuICByZXR1cm4gaGFzaF9hY2N1ICYgMHgzRkZGRkZGRjtcbn1cblxuLy9mdW5jdGlvbiBST1RMMzIoeCxuKSB7IHJldHVybiAoKHggPDwgbikgfCAoeCA+Pj4gKDMyLW4pKSk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfaW50XG4vL1JlcXVpcmVzOiBjYW1sX211bFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9pbnQoaCxkKSB7XG4gIGQgPSBjYW1sX211bChkLCAweGNjOWUyZDUxfDApO1xuICBkID0gKChkIDw8IDE1KSB8IChkID4+PiAoMzItMTUpKSk7IC8vIFJPVEwzMihkLCAxNSk7XG4gIGQgPSBjYW1sX211bChkLCAweDFiODczNTkzKTtcbiAgaCBePSBkO1xuICBoID0gKChoIDw8IDEzKSB8IChoID4+PiAoMzItMTMpKSk7ICAgLy9ST1RMMzIoaCwgMTMpO1xuICByZXR1cm4gKCgoaCArIChoIDw8IDIpKXwwKSArICgweGU2NTQ2YjY0fDApKXwwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2ZpbmFsXG4vL1JlcXVpcmVzOiBjYW1sX211bFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9maW5hbChoKSB7XG4gIGggXj0gaCA+Pj4gMTY7XG4gIGggPSBjYW1sX211bCAoaCwgMHg4NWViY2E2YnwwKTtcbiAgaCBePSBoID4+PiAxMztcbiAgaCA9IGNhbWxfbXVsIChoLCAweGMyYjJhZTM1fDApO1xuICBoIF49IGggPj4+IDE2O1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9mbG9hdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0LCBjYW1sX2hhc2hfbWl4X2ludDY0XG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2Zsb2F0IChoLCB2MCkge1xuICByZXR1cm4gY2FtbF9oYXNoX21peF9pbnQ2NChoLCBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgKHYwKSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2ludDY0XG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9sbzMyLCBjYW1sX2ludDY0X2hpMzJcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfaW50NjQgKGgsIHYpIHtcbiAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGNhbWxfaW50NjRfbG8zMih2KSk7XG4gIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBjYW1sX2ludDY0X2hpMzIodikpO1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9qc2J5dGVzKGgsIHMpIHtcbiAgdmFyIGxlbiA9IHMubGVuZ3RoLCBpLCB3O1xuICBmb3IgKGkgPSAwOyBpICsgNCA8PSBsZW47IGkgKz0gNCkge1xuICAgIHcgPSBzLmNoYXJDb2RlQXQoaSlcbiAgICAgIHwgKHMuY2hhckNvZGVBdChpKzEpIDw8IDgpXG4gICAgICB8IChzLmNoYXJDb2RlQXQoaSsyKSA8PCAxNilcbiAgICAgIHwgKHMuY2hhckNvZGVBdChpKzMpIDw8IDI0KTtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gIH1cbiAgdyA9IDA7XG4gIHN3aXRjaCAobGVuICYgMykge1xuICBjYXNlIDM6IHcgID0gcy5jaGFyQ29kZUF0KGkrMikgPDwgMTY7XG4gIGNhc2UgMjogdyB8PSBzLmNoYXJDb2RlQXQoaSsxKSA8PCA4O1xuICBjYXNlIDE6XG4gICAgdyB8PSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICBkZWZhdWx0OlxuICB9XG4gIGggXj0gbGVuO1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9ieXRlc19hcnJcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50XG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FycihoLCBzKSB7XG4gIHZhciBsZW4gPSBzLmxlbmd0aCwgaSwgdztcbiAgZm9yIChpID0gMDsgaSArIDQgPD0gbGVuOyBpICs9IDQpIHtcbiAgICB3ID0gc1tpXVxuICAgICAgfCAoc1tpKzFdIDw8IDgpXG4gICAgICB8IChzW2krMl0gPDwgMTYpXG4gICAgICB8IChzW2krM10gPDwgMjQpO1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgfVxuICB3ID0gMDtcbiAgc3dpdGNoIChsZW4gJiAzKSB7XG4gIGNhc2UgMzogdyAgPSBzW2krMl0gPDwgMTY7XG4gIGNhc2UgMjogdyB8PSBzW2krMV0gPDwgODtcbiAgY2FzZSAxOiB3IHw9IHNbaV07XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICBkZWZhdWx0OlxuICB9XG4gIGggXj0gbGVuO1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19jb250ZW50XG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2J5dGVzKGgsIHYpIHtcbiAgdmFyIGNvbnRlbnQgPSBjYW1sX21sX2J5dGVzX2NvbnRlbnQodik7XG4gIGlmKHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMoaCwgY29udGVudClcbiAgZWxzZSAvKiBBUlJBWSAqL1xuICAgIHJldHVybiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FycihoLCBjb250ZW50KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9zdHJpbmcoaCwgdikge1xuICByZXR1cm4gY2FtbF9oYXNoX21peF9qc2J5dGVzKGgsIGNhbWxfanNieXRlc19vZl9zdHJpbmcodikpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaCBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX3N0cmluZywgY2FtbF9pc19tbF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnQsIGNhbWxfaGFzaF9taXhfZmluYWxcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfZmxvYXQsIGNhbWxfaGFzaF9taXhfc3RyaW5nLCBjYW1sX2hhc2hfbWl4X2J5dGVzLCBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pc19jb250aW51YXRpb25fdGFnXG5mdW5jdGlvbiBjYW1sX2hhc2ggKGNvdW50LCBsaW1pdCwgc2VlZCwgb2JqKSB7XG4gIHZhciBxdWV1ZSwgcmQsIHdyLCBzeiwgbnVtLCBoLCB2LCBpLCBsZW47XG4gIHN6ID0gbGltaXQ7XG4gIGlmIChzeiA8IDAgfHwgc3ogPiAyNTYpIHN6ID0gMjU2O1xuICBudW0gPSBjb3VudDtcbiAgaCA9IHNlZWQ7XG4gIHF1ZXVlID0gW29ial07IHJkID0gMDsgd3IgPSAxO1xuICB3aGlsZSAocmQgPCB3ciAmJiBudW0gPiAwKSB7XG4gICAgdiA9IHF1ZXVlW3JkKytdO1xuICAgIGlmICh2ICYmIHYuY2FtbF9jdXN0b20pe1xuICAgICAgaWYoY2FtbF9jdXN0b21fb3BzW3YuY2FtbF9jdXN0b21dICYmIGNhbWxfY3VzdG9tX29wc1t2LmNhbWxfY3VzdG9tXS5oYXNoKSB7XG4gICAgICAgIHZhciBoaCA9IGNhbWxfY3VzdG9tX29wc1t2LmNhbWxfY3VzdG9tXS5oYXNoKHYpO1xuICAgICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQgKGgsIGhoKTtcbiAgICAgICAgbnVtIC0tO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICh2IGluc3RhbmNlb2YgQXJyYXkgJiYgdlswXSA9PT0gKHZbMF18MCkpIHtcbiAgICAgIHN3aXRjaCAodlswXSkge1xuICAgICAgY2FzZSAyNDg6XG4gICAgICAgIC8vIE9iamVjdFxuICAgICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdlsyXSk7XG4gICAgICAgIG51bS0tO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUwOlxuICAgICAgICAvLyBGb3J3YXJkXG4gICAgICAgIHF1ZXVlWy0tcmRdID0gdlsxXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZihjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWcodlswXSkpIHtcbiAgICAgICAgICAvKiBBbGwgY29udGludWF0aW9ucyBoYXNoIHRvIHRoZSBzYW1lIHZhbHVlLFxuICAgICAgICAgICAgIHNpbmNlIHdlIGhhdmUgbm8gaWRlYSBob3cgdG8gZGlzdGluZ3Vpc2ggdGhlbS4gKi9cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGFnID0gKCh2Lmxlbmd0aCAtIDEpIDw8IDEwKSB8IHZbMF07XG4gICAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB0YWcpO1xuICAgICAgICBmb3IgKGkgPSAxLCBsZW4gPSB2Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgaWYgKHdyID49IHN6KSBicmVhaztcbiAgICAgICAgICBxdWV1ZVt3cisrXSA9IHZbaV07XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKHYpKSB7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9ieXRlcyhoLHYpXG4gICAgICBudW0tLTtcbiAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKHYpKSB7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9zdHJpbmcoaCx2KVxuICAgICAgbnVtLS07XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfanNieXRlcyhoLHYpXG4gICAgICBudW0tLTtcbiAgICB9IGVsc2UgaWYgKHYgPT09ICh2fDApKSB7XG4gICAgICAvLyBJbnRlZ2VyXG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdit2KzEpO1xuICAgICAgbnVtLS07XG4gICAgfSBlbHNlIGlmICh2ID09PSArdikge1xuICAgICAgLy8gRmxvYXRcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2Zsb2F0KGgsdik7XG4gICAgICBudW0tLTtcbiAgICB9XG4gIH1cbiAgaCA9IGNhbWxfaGFzaF9taXhfZmluYWwoaCk7XG4gIHJldHVybiBoICYgMHgzRkZGRkZGRjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfaGFzaFxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9maW5hbCwgY2FtbF9oYXNoX21peF9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2hhc2goaCwgdil7XG4gIHZhciBoID0gY2FtbF9oYXNoX21peF9zdHJpbmcoaCx2KTtcbiAgdmFyIGggPSBjYW1sX2hhc2hfbWl4X2ZpbmFsKGgpO1xuICByZXR1cm4gaCAmIDB4M0ZGRkZGRkY7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VwZGF0ZV9kdW1teVxuZnVuY3Rpb24gY2FtbF91cGRhdGVfZHVtbXkgKHgsIHkpIHtcbiAgaWYoIHR5cGVvZiB5PT09XCJmdW5jdGlvblwiICkgeyB4LmZ1biA9IHk7IHJldHVybiAwOyB9XG4gIGlmKCB5LmZ1biApIHsgeC5mdW4gPSB5LmZ1bjsgcmV0dXJuIDA7IH1cbiAgdmFyIGkgPSB5Lmxlbmd0aDsgd2hpbGUgKGktLSkgeFtpXSA9IHlbaV07IHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FsbG9jX2R1bW15X2luZml4XG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxfZ2VuXG5mdW5jdGlvbiBjYW1sX2FsbG9jX2R1bW15X2luZml4ICgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGYgKHgpIHsgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZi5mdW4sIFt4XSkgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9pc19ibG9jayBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX29ial9pc19ibG9jayAoeCkgeyByZXR1cm4gKyh4IGluc3RhbmNlb2YgQXJyYXkpOyB9XG5cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfdGFnXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX2J5dGVzLCBjYW1sX2lzX21sX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9vYmpfdGFnICh4KSB7XG4gIGlmICgoeCBpbnN0YW5jZW9mIEFycmF5KSAmJiB4WzBdID09ICh4WzBdID4+PiAwKSlcbiAgICByZXR1cm4geFswXVxuICBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKHgpKVxuICAgIHJldHVybiAyNTJcbiAgZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcoeCkpXG4gICAgcmV0dXJuIDI1MlxuICBlbHNlIGlmICgoeCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB8fCB0eXBlb2YgeCA9PSBcImZ1bmN0aW9uXCIpXG4gICAgcmV0dXJuIDI0N1xuICBlbHNlIGlmICh4ICYmIHguY2FtbF9jdXN0b20pXG4gICAgcmV0dXJuIDI1NVxuICBlbHNlXG4gICAgcmV0dXJuIDEwMDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfc2V0X3RhZyAobXV0YWJsZSwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX29ial9zZXRfdGFnICh4LCB0YWcpIHsgeFswXSA9IHRhZzsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2Jsb2NrIGNvbnN0IChjb25zdCxjb25zdClcbmZ1bmN0aW9uIGNhbWxfb2JqX2Jsb2NrICh0YWcsIHNpemUpIHtcbiAgdmFyIG8gPSBuZXcgQXJyYXkoc2l6ZSsxKTtcbiAgb1swXT10YWc7XG4gIGZvciAodmFyIGkgPSAxOyBpIDw9IHNpemU7IGkrKykgb1tpXSA9IDA7XG4gIHJldHVybiBvO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial93aXRoX3RhZ1xuZnVuY3Rpb24gY2FtbF9vYmpfd2l0aF90YWcodGFnLHgpIHtcbiAgdmFyIGwgPSB4Lmxlbmd0aDtcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIGFbMF0gPSB0YWc7XG4gIGZvcih2YXIgaSA9IDE7IGkgPCBsOyBpKysgKSBhW2ldID0geFtpXTtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2R1cCBtdXRhYmxlIChtdXRhYmxlKVxuZnVuY3Rpb24gY2FtbF9vYmpfZHVwICh4KSB7XG4gIHZhciBsID0geC5sZW5ndGg7XG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbDsgaSsrICkgYVtpXSA9IHhbaV07XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial90cnVuY2F0ZSAobXV0YWJsZSwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfb2JqX3RydW5jYXRlICh4LCBzKSB7XG4gIGlmIChzPD0wIHx8IHMgKyAxID4geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIk9iai50cnVuY2F0ZVwiKTtcbiAgaWYgKHgubGVuZ3RoICE9IHMgKyAxKSB4Lmxlbmd0aCA9IHMgKyAxO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfbWFrZV9mb3J3YXJkXG5mdW5jdGlvbiBjYW1sX29ial9tYWtlX2ZvcndhcmQgKGIsdikge1xuICBiWzBdPTI1MDtcbiAgYlsxXT12O1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9jb21wYXJlX2FuZF9zd2FwXG5mdW5jdGlvbiBjYW1sX29ial9jb21wYXJlX2FuZF9zd2FwKHgsaSxvbGQsbil7XG4gIGlmKHhbaSsxXSA9PSBvbGQpIHtcbiAgICB4W2krMV0gPSBuO1xuICAgIHJldHVybiAxO1xuICB9XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2lzX3NoYXJlZFxuZnVuY3Rpb24gY2FtbF9vYmpfaXNfc2hhcmVkKHgpe1xuICByZXR1cm4gMVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xhenlfbWFrZV9mb3J3YXJkIGNvbnN0IChtdXRhYmxlKVxuZnVuY3Rpb24gY2FtbF9sYXp5X21ha2VfZm9yd2FyZCAodikgeyByZXR1cm4gWzI1MCwgdl07IH1cblxuLy8vLy8vLy8vLy8vLyBDYW1saW50ZXJuYWxPT1xuLy9Qcm92aWRlczogY2FtbF9nZXRfcHVibGljX21ldGhvZCBjb25zdFxudmFyIGNhbWxfbWV0aG9kX2NhY2hlID0gW107XG5mdW5jdGlvbiBjYW1sX2dldF9wdWJsaWNfbWV0aG9kIChvYmosIHRhZywgY2FjaGVpZCkge1xuICB2YXIgbWV0aHMgPSBvYmpbMV07XG4gIHZhciBvZnMgPSBjYW1sX21ldGhvZF9jYWNoZVtjYWNoZWlkXTtcbiAgaWYgKG9mcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBhcnJheSBpcyBub3Qgc3BhcnNlXG4gICAgZm9yICh2YXIgaSA9IGNhbWxfbWV0aG9kX2NhY2hlLmxlbmd0aDsgaSA8IGNhY2hlaWQ7IGkrKylcbiAgICAgIGNhbWxfbWV0aG9kX2NhY2hlW2ldID0gMDtcbiAgfSBlbHNlIGlmIChtZXRoc1tvZnNdID09PSB0YWcpIHtcbiAgICByZXR1cm4gbWV0aHNbb2ZzIC0gMV07XG4gIH1cbiAgdmFyIGxpID0gMywgaGkgPSBtZXRoc1sxXSAqIDIgKyAxLCBtaTtcbiAgd2hpbGUgKGxpIDwgaGkpIHtcbiAgICBtaSA9ICgobGkraGkpID4+IDEpIHwgMTtcbiAgICBpZiAodGFnIDwgbWV0aHNbbWkrMV0pIGhpID0gbWktMjtcbiAgICBlbHNlIGxpID0gbWk7XG4gIH1cbiAgY2FtbF9tZXRob2RfY2FjaGVbY2FjaGVpZF0gPSBsaSArIDE7XG4gIC8qIHJldHVybiAwIGlmIHRhZyBpcyBub3QgdGhlcmUgKi9cbiAgcmV0dXJuICh0YWcgPT0gbWV0aHNbbGkrMV0gPyBtZXRoc1tsaV0gOiAwKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vb19sYXN0X2lkXG52YXIgY2FtbF9vb19sYXN0X2lkID0gMDtcblxuLy9Qcm92aWRlczogY2FtbF9zZXRfb29faWRcbi8vUmVxdWlyZXM6IGNhbWxfb29fbGFzdF9pZFxuZnVuY3Rpb24gY2FtbF9zZXRfb29faWQgKGIpIHtcbiAgYlsyXT1jYW1sX29vX2xhc3RfaWQrKztcbiAgcmV0dXJuIGI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZnJlc2hfb29faWQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfb29fbGFzdF9pZFxuZnVuY3Rpb24gY2FtbF9mcmVzaF9vb19pZCgpIHtcbiAgcmV0dXJuIGNhbWxfb29fbGFzdF9pZCsrO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9yYXdfZmllbGRcbmZ1bmN0aW9uIGNhbWxfb2JqX3Jhd19maWVsZChvLGkpIHsgcmV0dXJuIG9baSsxXSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3NldF9yYXdfZmllbGRcbmZ1bmN0aW9uIGNhbWxfb2JqX3NldF9yYXdfZmllbGQobyxpLHYpIHsgcmV0dXJuIG9baSsxXSA9IHYgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9yZWFjaGFibGVfd29yZHNcbmZ1bmN0aW9uIGNhbWxfb2JqX3JlYWNoYWJsZV93b3JkcyhvKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2FkZF9vZmZzZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfb2JqX2FkZF9vZmZzZXQodixvZmZzZXQpIHtcbiAgY2FtbF9mYWlsd2l0aChcIk9iai5hZGRfb2Zmc2V0IGlzIG5vdCBzdXBwb3J0ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3VwZGF0ZV90YWdcbmZ1bmN0aW9uIGNhbWxfb2JqX3VwZGF0ZV90YWcoYixvLG4pIHtcbiAgICBpZihiWzBdPT1vKSB7IGJbMF0gPSBuOyByZXR1cm4gMSB9XG4gICAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9sYXp5X3VwZGF0ZV90b19mb3JjaW5nXG4vL1JlcXVpcmVzOiBjYW1sX29ial90YWcsIGNhbWxfb2JqX3VwZGF0ZV90YWcsIGNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlblxuZnVuY3Rpb24gY2FtbF9sYXp5X3VwZGF0ZV90b19mb3JjaW5nKG8pIHtcbiAgdmFyIHQgPSBjYW1sX29ial90YWcobyk7XG4gIGlmKHQgIT0gMjQ2ICYmIHQgIT0gMjUwICYmIHQgIT0gMjQ0KVxuICAgIHJldHVybiA0XG4gIGlmKGNhbWxfb2JqX3VwZGF0ZV90YWcobywgMjQ2LCAyNDQpKSB7XG4gICAgcmV0dXJuIDBcbiAgfSBlbHNlIHtcbiAgICB2YXIgZmllbGQwID0gb1sxXTtcbiAgICB0ID0gb1swXVxuICAgIGlmKHQgPT0gMjQ0KSB7XG4gICAgICBpZihmaWVsZDAgPT0gY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuKDApKVxuICAgICAgICByZXR1cm4gMVxuICAgICAgZWxzZVxuICAgICAgICByZXR1cm4gMlxuICAgIH0gZWxzZSBpZiAodCA9PSAyNTApIHtcbiAgICAgIHJldHVybiAzO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBhc3NlcnQgdCA9IGxhenlfdGFnXG4gICAgICByZXR1cm4gMjtcbiAgICB9XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9sYXp5X3VwZGF0ZV90b19mb3J3YXJkXG4vL1JlcXVpcmVzOiBjYW1sX29ial91cGRhdGVfdGFnXG4gIGZ1bmN0aW9uIGNhbWxfbGF6eV91cGRhdGVfdG9fZm9yd2FyZChvKSB7XG4gIGNhbWxfb2JqX3VwZGF0ZV90YWcobywyNDQsMjUwKTtcbiAgcmV0dXJuIDA7IC8vIHVuaXRcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xhenlfcmVzZXRfdG9fbGF6eVxuLy9SZXF1aXJlczogY2FtbF9vYmpfdXBkYXRlX3RhZ1xuZnVuY3Rpb24gY2FtbF9sYXp5X3Jlc2V0X3RvX2xhenkobykge1xuICBjYW1sX29ial91cGRhdGVfdGFnKG8sMjQ0LDI0Nik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xhenlfcmVhZF9yZXN1bHRcbi8vUmVxdWlyZXM6IGNhbWxfb2JqX3RhZ1xuZnVuY3Rpb24gY2FtbF9sYXp5X3JlYWRfcmVzdWx0KG8pIHtcbiAgcmV0dXJuIChjYW1sX29ial90YWcobykgPT0gMjUwKT9vWzFdOm87XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9pc19jb250aW51YXRpb25fdGFnXG4vL1ZlcnNpb246IDwgNVxuZnVuY3Rpb24gY2FtbF9pc19jb250aW51YXRpb25fdGFnKHQpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfY29udGludWF0aW9uX3RhZ1xuLy9WZXJzaW9uOiA+PSA1XG5mdW5jdGlvbiBjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWcodCkge1xuICByZXR1cm4gKHQgPT0gMjQ1KSA/IDEgOiAwO1xufVxuIiwiLy9Qcm92aWRlczogY2FtbF9kb21haW5fZGxzXG52YXIgY2FtbF9kb21haW5fZGxzID0gWzBdO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2RvbWFpbl9kbHNfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2RvbWFpbl9kbHNcbmZ1bmN0aW9uIGNhbWxfZG9tYWluX2Rsc19zZXQoYSkge1xuICBjYW1sX2RvbWFpbl9kbHMgPSBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2RvbWFpbl9kbHNfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2RvbWFpbl9kbHNcbmZ1bmN0aW9uIGNhbWxfZG9tYWluX2Rsc19nZXQodW5pdCkge1xuICByZXR1cm4gY2FtbF9kb21haW5fZGxzO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfYXRvbWljX2xvYWRcbmZ1bmN0aW9uIGNhbWxfYXRvbWljX2xvYWQocmVmKXtcbiAgcmV0dXJuIHJlZlsxXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hdG9taWNfY2FzXG5mdW5jdGlvbiBjYW1sX2F0b21pY19jYXMocmVmLG8sbikge1xuICBpZihyZWZbMV0gPT09IG8pe1xuICAgIHJlZlsxXSA9IG47XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXRvbWljX2ZldGNoX2FkZFxuZnVuY3Rpb24gY2FtbF9hdG9taWNfZmV0Y2hfYWRkKHJlZiwgaSkge1xuICB2YXIgb2xkID0gcmVmWzFdO1xuICByZWZbMV0gKz0gaTtcbiAgcmV0dXJuIG9sZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hdG9taWNfZXhjaGFuZ2VcbmZ1bmN0aW9uIGNhbWxfYXRvbWljX2V4Y2hhbmdlKHJlZiwgdikge1xuICB2YXIgciA9IHJlZlsxXTtcbiAgcmVmWzFdID0gdjtcbiAgcmV0dXJuIHI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlblxudmFyIGNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbl8gPSBbMF1cbmZ1bmN0aW9uIGNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbih1bml0KSB7XG4gIHJldHVybiBjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW5fXG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9kb21haW5fc2V0X25hbWVcbmZ1bmN0aW9uIGNhbWxfbWxfZG9tYWluX3NldF9uYW1lKF9uYW1lKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlY29tbWVuZGVkX2RvbWFpbl9jb3VudFxuZnVuY3Rpb24gY2FtbF9yZWNvbW1lbmRlZF9kb21haW5fY291bnQodW5pdCkgeyByZXR1cm4gMSB9XG5cblxuLy9Qcm92aWRlczogY2FtbF9kb21haW5faWRcbnZhciBjYW1sX2RvbWFpbl9pZCA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfZG9tYWluX3NwYXduXG4vL1JlcXVpcmVzOiBjYW1sX21sX211dGV4X3VubG9ja1xuLy9SZXF1aXJlczogY2FtbF9kb21haW5faWRcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2tcbnZhciBjYW1sX2RvbWFpbl9sYXRlc3RfaWR4ID0gMVxuZnVuY3Rpb24gY2FtbF9kb21haW5fc3Bhd24oZixtdXRleCl7XG4gICAgdmFyIGlkID0gY2FtbF9kb21haW5fbGF0ZXN0X2lkeCsrO1xuICAgIHZhciBvbGQgPSBjYW1sX2RvbWFpbl9pZDtcbiAgICBjYW1sX2RvbWFpbl9pZCA9IGlkO1xuICAgIGNhbWxfY2FsbGJhY2soZixbMF0pO1xuICAgIGNhbWxfZG9tYWluX2lkID0gb2xkO1xuICAgIGNhbWxfbWxfbXV0ZXhfdW5sb2NrKG11dGV4KTtcbiAgICByZXR1cm4gaWQ7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9kb21haW5faWRcbi8vUmVxdWlyZXM6IGNhbWxfZG9tYWluX2lkXG5mdW5jdGlvbiBjYW1sX21sX2RvbWFpbl9pZCh1bml0KXtcbiAgICByZXR1cm4gY2FtbF9kb21haW5faWQ7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9kb21haW5fY3B1X3JlbGF4XG5mdW5jdGlvbiBjYW1sX21sX2RvbWFpbl9jcHVfcmVsYXgodW5pdCl7XG4gICAgcmV0dXJuIDA7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsX3RhZ1xuLy9SZXF1aXJlczogY2FtbF9pc19tbF9zdHJpbmcsIGNhbWxfaXNfbWxfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZV92YWxfdGFnKGEpe1xuICBpZiAodHlwZW9mIGEgPT09IFwibnVtYmVyXCIpIHJldHVybiAxMDAwOyAvLyBpbnRfdGFnICh3ZSB1c2UgaXQgZm9yIGFsbCBudW1iZXJzKVxuICBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKGEpKSByZXR1cm4gMjUyOyAvLyBzdHJpbmdfdGFnXG4gIGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKGEpKSByZXR1cm4gMTI1MjsgLy8gb2NhbWwgc3RyaW5nIChpZiBkaWZmZXJlbnQgZnJvbSBieXRlcylcbiAgZWxzZSBpZiAoYSBpbnN0YW5jZW9mIEFycmF5ICYmIGFbMF0gPT09IChhWzBdPj4+MCkgJiYgYVswXSA8PSAyNTUpIHtcbiAgICAvLyBMb29rIGxpa2UgYW4gb2NhbWwgYmxvY2tcbiAgICB2YXIgdGFnID0gYVswXSB8IDA7XG4gICAgLy8gaWdub3JlIGRvdWJsZV9hcnJheV90YWcgYmVjYXVzZSB3ZSBjYW5ub3QgYWNjdXJhdGVseSBzZXRcbiAgICAvLyB0aGlzIHRhZyB3aGVuIHdlIGNyZWF0ZSBhbiBhcnJheSBvZiBmbG9hdC5cbiAgICByZXR1cm4gKHRhZyA9PSAyNTQpPzA6dGFnXG4gIH1cbiAgZWxzZSBpZiAoYSBpbnN0YW5jZW9mIFN0cmluZykgcmV0dXJuIDEyNTIwOyAvLyBqYXZhc2NyaXB0IHN0cmluZywgbGlrZSBzdHJpbmdfdGFnICgyNTIpXG4gIGVsc2UgaWYgKHR5cGVvZiBhID09IFwic3RyaW5nXCIpIHJldHVybiAxMjUyMDsgLy8gamF2YXNjcmlwdCBzdHJpbmcsIGxpa2Ugc3RyaW5nX3RhZyAoMjUyKVxuICBlbHNlIGlmIChhIGluc3RhbmNlb2YgTnVtYmVyKSByZXR1cm4gMTAwMDsgLy8gaW50X3RhZyAod2UgdXNlIGl0IGZvciBhbGwgbnVtYmVycylcbiAgZWxzZSBpZiAoYSAmJiBhLmNhbWxfY3VzdG9tKSByZXR1cm4gMTI1NTsgLy8gbGlrZSBjdXN0b21fdGFnICgyNTUpXG4gIGVsc2UgaWYgKGEgJiYgYS5jb21wYXJlKSByZXR1cm4gMTI1NjsgLy8gbGlrZSBjdXN0b21fdGFnICgyNTUpXG4gIGVsc2UgaWYgKHR5cGVvZiBhID09IFwiZnVuY3Rpb25cIikgcmV0dXJuIDEyNDc7IC8vIGxpa2UgY2xvc3VyZV90YWcgKDI0NylcbiAgZWxzZSBpZiAodHlwZW9mIGEgPT0gXCJzeW1ib2xcIikgcmV0dXJuIDEyNTE7XG4gIHJldHVybiAxMDAxOyAvL291dF9vZl9oZWFwX3RhZ1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b21cbi8vUmVxdWlyZXM6IGNhbWxfY3VzdG9tX29wc1xuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tKGEpe1xuICByZXR1cm4gY2FtbF9jdXN0b21fb3BzW2EuY2FtbF9jdXN0b21dICYmIGNhbWxfY3VzdG9tX29wc1thLmNhbWxfY3VzdG9tXS5jb21wYXJlO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b21cbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbVxuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tKG51bSwgY3VzdG9tLCBzd2FwLCB0b3RhbCkge1xuICB2YXIgY29tcCA9IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbShjdXN0b20pO1xuICBpZihjb21wKSB7XG4gICAgdmFyIHggPSAoc3dhcCA+IDApP2NvbXAoY3VzdG9tLG51bSx0b3RhbCk6Y29tcChudW0sY3VzdG9tLHRvdGFsKTtcbiAgICBpZih0b3RhbCAmJiB4ICE9IHgpIHJldHVybiBzd2FwOyAvLyB0b3RhbCAmJiBuYW5cbiAgICBpZigreCAhPSAreCkgcmV0dXJuICt4OyAvLyBuYW5cbiAgICBpZigoeCB8IDApICE9IDApIHJldHVybiAoeCB8IDApOyAvLyAhbmFuXG4gIH1cbiAgcmV0dXJuIHN3YXBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlX3ZhbCAoY29uc3QsIGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfaW50X2NvbXBhcmUsIGNhbWxfc3RyaW5nX2NvbXBhcmUsIGNhbWxfYnl0ZXNfY29tcGFyZVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20sIGNhbWxfY29tcGFyZV92YWxfdGFnXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b21cbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaXNfY29udGludWF0aW9uX3RhZ1xuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbCAoYSwgYiwgdG90YWwpIHtcbiAgdmFyIHN0YWNrID0gW107XG4gIGZvcig7Oykge1xuICAgIGlmICghKHRvdGFsICYmIGEgPT09IGIpKSB7XG4gICAgICB2YXIgdGFnX2EgPSBjYW1sX2NvbXBhcmVfdmFsX3RhZyhhKTtcbiAgICAgIC8vIGZvcndhcmRfdGFnID9cbiAgICAgIGlmKHRhZ19hID09IDI1MCkgeyBhID0gYVsxXTsgY29udGludWUgfVxuXG4gICAgICB2YXIgdGFnX2IgPSBjYW1sX2NvbXBhcmVfdmFsX3RhZyhiKTtcbiAgICAgIC8vIGZvcndhcmRfdGFnID9cbiAgICAgIGlmKHRhZ19iID09IDI1MCkgeyBiID0gYlsxXTsgY29udGludWUgfVxuXG4gICAgICAvLyB0YWdzIGFyZSBkaWZmZXJlbnRcbiAgICAgIGlmKHRhZ19hICE9PSB0YWdfYikge1xuICAgICAgICBpZih0YWdfYSA9PSAxMDAwKSB7XG4gICAgICAgICAgaWYodGFnX2IgPT0gMTI1NSkgeyAvL2ltbWVkaWF0ZSBjYW4gY29tcGFyZSBhZ2FpbnN0IGN1c3RvbVxuICAgICAgICAgICAgcmV0dXJuIGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbShhLCBiLCAtMSwgdG90YWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgfVxuICAgICAgICBpZih0YWdfYiA9PSAxMDAwKSB7XG4gICAgICAgICAgaWYodGFnX2EgPT0gMTI1NSkgeyAvL2ltbWVkaWF0ZSBjYW4gY29tcGFyZSBhZ2FpbnN0IGN1c3RvbVxuICAgICAgICAgICAgcmV0dXJuIGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbShiLCBhLCAxLCB0b3RhbCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh0YWdfYSA8IHRhZ19iKT8tMToxO1xuICAgICAgfVxuICAgICAgc3dpdGNoKHRhZ19hKXtcbiAgICAgICAgLy8gMjQ2OiBMYXp5X3RhZyBoYW5kbGVkIGJlbGxvd1xuICAgICAgY2FzZSAyNDc6IC8vIENsb3N1cmVfdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW5cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogZnVuY3Rpb25hbCB2YWx1ZVwiKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgMjQ4OiAvLyBPYmplY3RcbiAgICAgICAgdmFyIHggPSBjYW1sX2ludF9jb21wYXJlKGFbMl0sIGJbMl0pO1xuICAgICAgICBpZiAoeCAhPSAwKSByZXR1cm4gKHggfCAwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI0OTogLy8gSW5maXhcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlblxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjb21wYXJlOiBmdW5jdGlvbmFsIHZhbHVlXCIpO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAyNTA6IC8vIEZvcndhcmQgdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW4sIGhhbmRsZWQgYWJvdmVcbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGdvdCBGb3J3YXJkX3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTE6IC8vQWJzdHJhY3RcbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGFic3RyYWN0IHZhbHVlXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUyOiAvLyBPQ2FtbCBieXRlc1xuICAgICAgICBpZiAoYSAhPT0gYikge1xuICAgICAgICAgIHZhciB4ID0gY2FtbF9ieXRlc19jb21wYXJlKGEsIGIpO1xuICAgICAgICAgIGlmICh4ICE9IDApIHJldHVybiAoeCB8IDApO1xuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUzOiAvLyBEb3VibGVfdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW5cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGdvdCBEb3VibGVfdGFnLCBzaG91bGQgbm90IGhhcHBlblwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1NDogLy8gRG91YmxlX2FycmF5X3RhZ1xuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuLCBoYW5kbGVkIGFib3ZlXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBnb3QgRG91YmxlX2FycmF5X3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIDI1NTogLy8gQ3VzdG9tX3RhZ1xuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogZ290IEN1c3RvbV90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI0NzogLy8gRnVuY3Rpb25cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogZnVuY3Rpb25hbCB2YWx1ZVwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTU6IC8vIEN1c3RvbVxuICAgICAgICB2YXIgY29tcCA9IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbShhKTtcbiAgICAgICAgaWYoY29tcCAhPSBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20oYikpe1xuICAgICAgICAgIHJldHVybiAoYS5jYW1sX2N1c3RvbTxiLmNhbWxfY3VzdG9tKT8tMToxO1xuICAgICAgICB9XG4gICAgICAgIGlmKCFjb21wKVxuICAgICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNvbXBhcmU6IGFic3RyYWN0IHZhbHVlXCIpO1xuICAgICAgICB2YXIgeCA9IGNvbXAoYSxiLHRvdGFsKTtcbiAgICAgICAgaWYoeCAhPSB4KXsgLy8gUHJvdGVjdCBhZ2FpbnN0IGludmFsaWQgVU5PUkRFUkVEXG4gICAgICAgICAgcmV0dXJuIHRvdGFsPy0xOng7XG4gICAgICAgIH1cbiAgICAgICAgaWYoeCAhPT0gKHh8MCkpeyAvLyBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCByZXR1cm4gdmFsdWVcbiAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgfVxuICAgICAgICBpZiAoeCAhPSAwKSByZXR1cm4gKHggfCAwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTY6IC8vIGNvbXBhcmUgZnVuY3Rpb25cbiAgICAgICAgdmFyIHggPSBhLmNvbXBhcmUoYix0b3RhbCk7XG4gICAgICAgIGlmKHggIT0geCkgeyAvLyBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCBVTk9SREVSRURcbiAgICAgICAgICByZXR1cm4gdG90YWw/LTE6eDtcbiAgICAgICAgfVxuICAgICAgICBpZih4ICE9PSAoeHwwKSl7IC8vIFByb3RlY3QgYWdhaW5zdCBpbnZhbGlkIHJldHVybiB2YWx1ZVxuICAgICAgICAgIHJldHVybiAtMVxuICAgICAgICB9XG4gICAgICAgIGlmICh4ICE9IDApIHJldHVybiAoeCB8IDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTAwMDogLy8gTnVtYmVyXG4gICAgICAgIGEgPSArYTtcbiAgICAgICAgYiA9ICtiO1xuICAgICAgICBpZiAoYSA8IGIpIHJldHVybiAtMTtcbiAgICAgICAgaWYgKGEgPiBiKSByZXR1cm4gMTtcbiAgICAgICAgaWYgKGEgIT0gYikge1xuICAgICAgICAgIGlmICghdG90YWwpIHJldHVybiBOYU47XG4gICAgICAgICAgaWYgKGEgPT0gYSkgcmV0dXJuIDE7XG4gICAgICAgICAgaWYgKGIgPT0gYikgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMDAxOiAvLyBUaGUgcmVzdFxuICAgICAgICAvLyBIZXJlIHdlIGNhbiBiZSBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOlxuICAgICAgICAvLyAxLiBKYXZhU2NyaXB0IHByaW1pdGl2ZSB0eXBlc1xuICAgICAgICAvLyAyLiBKYXZhU2NyaXB0IG9iamVjdCB0aGF0IGNhbiBiZSBjb2VyY2VkIHRvIHByaW1pdGl2ZSB0eXBlc1xuICAgICAgICAvLyAzLiBKYXZhU2NyaXB0IG9iamVjdCB0aGFuIGNhbm5vdCBiZSBjb2VyY2VkIHRvIHByaW1pdGl2ZSB0eXBlc1xuICAgICAgICAvL1xuICAgICAgICAvLyAoMykgd2lsbCByYWlzZSBhIFtUeXBlRXJyb3JdXG4gICAgICAgIC8vICgyKSB3aWxsIGNvZXJjZSB0byBwcmltaXRpdmUgdHlwZXMgdXNpbmcgW3ZhbHVlT2ZdIG9yIFt0b1N0cmluZ11cbiAgICAgICAgLy8gKDIpIGFuZCAoMyksIGFmdGVyIGV2ZW50dWFsIGNvZXJjaW9uXG4gICAgICAgIC8vIC0gaWYgYSBhbmQgYiBhcmUgc3RyaW5ncywgYXBwbHkgbGV4aWNvZ3JhcGhpYyBjb21wYXJpc29uXG4gICAgICAgIC8vIC0gaWYgYSBvciBiIGFyZSBub3Qgc3RyaW5ncywgY29udmVydCBhIGFuZCBiIHRvIG51bWJlclxuICAgICAgICAvLyAgIGFuZCBhcHBseSBzdGFuZGFyZCBjb21wYXJpc29uXG4gICAgICAgIC8vXG4gICAgICAgIC8vIEV4Y2VwdGlvbjogYCE9YCB3aWxsIG5vdCBjb2VyY2UvY29udmVydCBpZiBib3RoIGEgYW5kIGIgYXJlIG9iamVjdHNcbiAgICAgICAgaWYgKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgIGlmIChhID4gYikgcmV0dXJuIDE7XG4gICAgICAgIGlmIChhICE9IGIpIHtcbiAgICAgICAgICBpZiAoIXRvdGFsKSByZXR1cm4gTmFOO1xuICAgICAgICAgIGlmIChhID09IGEpIHJldHVybiAxO1xuICAgICAgICAgIGlmIChiID09IGIpIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1MTogLy8gSmF2YVNjcmlwdCBTeW1ib2wsIG5vIG9yZGVyaW5nLlxuICAgICAgICBpZihhICE9PSBiKSB7XG4gICAgICAgICAgaWYgKCF0b3RhbCkgcmV0dXJuIE5hTjtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1MjogLy8gb2NhbWwgc3RyaW5nc1xuICAgICAgICB2YXIgYSA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoYSk7XG4gICAgICAgIHZhciBiID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhiKTtcbiAgICAgICAgaWYoYSAhPT0gYikge1xuICAgICAgICAgIGlmKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgICAgaWYoYSA+IGIpIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjUyMDogLy8gamF2YXNjcmlwdCBzdHJpbmdzXG4gICAgICAgIHZhciBhID0gYS50b1N0cmluZygpO1xuICAgICAgICB2YXIgYiA9IGIudG9TdHJpbmcoKTtcbiAgICAgICAgaWYoYSAhPT0gYikge1xuICAgICAgICAgIGlmKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgICAgaWYoYSA+IGIpIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNDY6IC8vIExhenlfdGFnXG4gICAgICBjYXNlIDI1NDogLy8gRG91YmxlX2FycmF5XG4gICAgICBkZWZhdWx0OiAvLyBCbG9jayB3aXRoIG90aGVyIHRhZ1xuICAgICAgICBpZihjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWcodGFnX2EpKSB7XG4gICAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogY29udGludWF0aW9uIHZhbHVlXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhLmxlbmd0aCAhPSBiLmxlbmd0aCkgcmV0dXJuIChhLmxlbmd0aCA8IGIubGVuZ3RoKT8tMToxO1xuICAgICAgICBpZiAoYS5sZW5ndGggPiAxKSBzdGFjay5wdXNoKGEsIGIsIDEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHN0YWNrLmxlbmd0aCA9PSAwKSByZXR1cm4gMDtcbiAgICB2YXIgaSA9IHN0YWNrLnBvcCgpO1xuICAgIGIgPSBzdGFjay5wb3AoKTtcbiAgICBhID0gc3RhY2sucG9wKCk7XG4gICAgaWYgKGkgKyAxIDwgYS5sZW5ndGgpIHN0YWNrLnB1c2goYSwgYiwgaSArIDEpO1xuICAgIGEgPSBhW2ldO1xuICAgIGIgPSBiW2ldO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZSAoYSwgYikgeyByZXR1cm4gY2FtbF9jb21wYXJlX3ZhbCAoYSwgYiwgdHJ1ZSk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfaW50X2NvbXBhcmUgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9pbnRfY29tcGFyZSAoYSwgYikge1xuICBpZiAoYSA8IGIpIHJldHVybiAoLTEpOyBpZiAoYSA9PSBiKSByZXR1cm4gMDsgcmV0dXJuIDE7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2VxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpID09IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX25vdGVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfbm90ZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpICE9IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dyZWF0ZXJlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2dyZWF0ZXJlcXVhbCAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPj0gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JlYXRlcnRoYW4gbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9ncmVhdGVydGhhbiAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPiAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9sZXNzZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9sZXNzZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpIDw9IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xlc3N0aGFuIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfbGVzc3RoYW4gKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpIDwgMCk7IH1cbiIsIi8vIEpzX29mX29jYW1sIGxpYnJhcnlcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBKc2xpYjogY29kZSBzcGVjaWZpYyB0byBKc19vZl9vY2FtbFxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX29uX2llIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2pzX29uX2llICgpIHtcbiAgdmFyIHVhID1cbiAgICAgIGdsb2JhbFRoaXMubmF2aWdhdG9yP2dsb2JhbFRoaXMubmF2aWdhdG9yLnVzZXJBZ2VudDpcIlwiO1xuICByZXR1cm4gdWEuaW5kZXhPZihcIk1TSUVcIikgIT0gLTEgJiYgdWEuaW5kZXhPZihcIk9wZXJhXCIpICE9IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfaHRtbF9lc2NhcGUgY29uc3QgKGNvbnN0KVxudmFyIGNhbWxfanNfcmVnZXhwcyA9IHsgYW1wOi8mL2csIGx0Oi88L2csIHF1b3Q6L1xcXCIvZywgYWxsOi9bJjxcXFwiXS8gfTtcbmZ1bmN0aW9uIGNhbWxfanNfaHRtbF9lc2NhcGUgKHMpIHtcbiAgaWYgKCFjYW1sX2pzX3JlZ2V4cHMuYWxsLnRlc3QocykpIHJldHVybiBzO1xuICByZXR1cm4gcy5yZXBsYWNlKGNhbWxfanNfcmVnZXhwcy5hbXAsIFwiJmFtcDtcIilcbiAgICAucmVwbGFjZShjYW1sX2pzX3JlZ2V4cHMubHQsIFwiJmx0O1wiKVxuICAgIC5yZXBsYWNlKGNhbWxfanNfcmVnZXhwcy5xdW90LCBcIiZxdW90O1wiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19odG1sX2VudGl0aWVzXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2pzX2h0bWxfZW50aXRpZXMocykge1xuICB2YXIgZW50aXR5ID0gL14mIz9bMC05YS16QS1aXSs7JC9cbiAgaWYocy5tYXRjaChlbnRpdHkpKVxuICB7XG4gICAgdmFyIHN0ciwgdGVtcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcbiAgICB0ZW1wLmlubmVySFRNTD0gcztcbiAgICBzdHI9IHRlbXAudGV4dENvbnRlbnQgfHwgdGVtcC5pbm5lclRleHQ7XG4gICAgdGVtcD1udWxsO1xuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgZWxzZSB7XG4gICAgY2FtbF9mYWlsd2l0aChcIkludmFsaWQgZW50aXR5IFwiICsgcyk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19nZXRfY29uc29sZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9qc19nZXRfY29uc29sZSAoKSB7XG4gIHZhciBjID0gY29uc29sZTtcbiAgdmFyIG0gPSBbXCJsb2dcIiwgXCJkZWJ1Z1wiLCBcImluZm9cIiwgXCJ3YXJuXCIsIFwiZXJyb3JcIiwgXCJhc3NlcnRcIiwgXCJkaXJcIiwgXCJkaXJ4bWxcIixcbiAgICAgICAgICAgXCJ0cmFjZVwiLCBcImdyb3VwXCIsIFwiZ3JvdXBDb2xsYXBzZWRcIiwgXCJncm91cEVuZFwiLCBcInRpbWVcIiwgXCJ0aW1lRW5kXCJdO1xuICBmdW5jdGlvbiBmICgpIHt9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbS5sZW5ndGg7IGkrKykgaWYgKCFjW21baV1dKSBjW21baV1dPWY7XG4gIHJldHVybiBjO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3htbGh0dHByZXF1ZXN0X2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9XZWFrZGVmXG5mdW5jdGlvbiBjYW1sX3htbGh0dHByZXF1ZXN0X2NyZWF0ZSh1bml0KXtcbiAgaWYodHlwZW9mIGdsb2JhbFRoaXMuWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBnbG9iYWxUaGlzLlhNTEh0dHBSZXF1ZXN0IH0gY2F0Y2ggKGUpIHsgfTtcbiAgfVxuICBpZih0eXBlb2YgZ2xvYmFsVGhpcy5hY3RpdmVYT2JqZWN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHRyeSB7IHJldHVybiBuZXcgZ2xvYmFsVGhpcy5hY3RpdmVYT2JqZWN0KFwiTXN4bWwyLlhNTEhUVFBcIikgfSBjYXRjaChlKXsgfTtcbiAgICB0cnkgeyByZXR1cm4gbmV3IGdsb2JhbFRoaXMuYWN0aXZlWE9iamVjdChcIk1zeG1sMy5YTUxIVFRQXCIpIH0gY2F0Y2goZSl7IH07XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBnbG9iYWxUaGlzLmFjdGl2ZVhPYmplY3QoXCJNaWNyb3NvZnQuWE1MSFRUUFwiKSB9IGNhdGNoKGUpeyB9O1xuICB9XG4gIGNhbWxfZmFpbHdpdGgoXCJDYW5ub3QgY3JlYXRlIGEgWE1MSHR0cFJlcXVlc3RcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvbihleG4pIHtcbiAgaWYoZXhuLmpzX2Vycm9yKSB7IHJldHVybiBleG4uanNfZXJyb3I7IH1cbiAgcmV0dXJuIG51bGw7XG59XG4iLCIvLy8vLy8vLy8gQklHU1RSSU5HXG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfYmlnc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FyclxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9iaWdzdHJpbmcoaCwgYnMpIHtcbiAgcmV0dXJuIGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyKGgsYnMuZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ190b19hcnJheV9idWZmZXIgbXV0YWJsZVxuZnVuY3Rpb24gYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlcihicykge1xuICByZXR1cm4gYnMuZGF0YS5idWZmZXJcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nX3RvX3R5cGVkX2FycmF5IG11dGFibGVcbmZ1bmN0aW9uIGJpZ3N0cmluZ190b190eXBlZF9hcnJheShicykge1xuICByZXR1cm4gYnMuZGF0YVxufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdfb2ZfYXJyYXlfYnVmZmVyIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuZnVuY3Rpb24gYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlcihhYikge1xuICB2YXIgdGEgPSBuZXcgVWludDhBcnJheShhYik7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoMTIsIDAsIFt0YS5sZW5ndGhdLCB0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ19vZl90eXBlZF9hcnJheSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbmZ1bmN0aW9uIGJpZ3N0cmluZ19vZl90eXBlZF9hcnJheShiYSkge1xuICB2YXIgdGEgPSBuZXcgVWludDhBcnJheShiYS5idWZmZXIsIGJhLmJ5dGVPZmZzZXQsIGJhLmxlbmd0aCAqIGJhLkJZVEVTX1BFUl9FTEVNRU5UKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSgxMiwgMCwgW3RhLmxlbmd0aF0sIHRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfbWVtY21wXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19tZW1jbXAoczEsIHBvczEsIHMyLCBwb3MyLCBsZW4pe1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIGEgPSBjYW1sX2JhX2dldF8xKHMxLHBvczEgKyBpKTtcbiAgICB2YXIgYiA9IGNhbWxfYmFfZ2V0XzEoczIscG9zMiArIGkpO1xuICAgIGlmIChhIDwgYikgcmV0dXJuIC0xO1xuICAgIGlmIChhID4gYikgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmFcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYShiYTEsIHBvczEsIGJhMiwgcG9zMiwgbGVuKXtcbiAgaWYoMTIgIT0gYmExLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYoMTIgIT0gYmEyLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYobGVuID09IDApIHJldHVybiAwO1xuICB2YXIgb2ZzMSA9IGJhMS5vZmZzZXQocG9zMSk7XG4gIHZhciBvZnMyID0gYmEyLm9mZnNldChwb3MyKTtcbiAgaWYob2ZzMSArIGxlbiA+IGJhMS5kYXRhLmxlbmd0aCl7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIGlmKG9mczIgKyBsZW4gPiBiYTIuZGF0YS5sZW5ndGgpe1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICB2YXIgc2xpY2UgPSBiYTEuZGF0YS5zdWJhcnJheShvZnMxLG9mczErbGVuKTtcbiAgYmEyLmRhdGEuc2V0KHNsaWNlLHBvczIpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYShzdHIxLCBwb3MxLCBiYTIsIHBvczIsIGxlbil7XG4gIGlmKDEyICE9IGJhMi5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZihsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIHZhciBvZnMyID0gYmEyLm9mZnNldChwb3MyKTtcbiAgaWYocG9zMSArIGxlbiA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzdHIxKSkge1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICBpZihvZnMyICsgbGVuID4gYmEyLmRhdGEubGVuZ3RoKSB7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIHZhciBzbGljZSA9IGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nKHN0cjEpLnNsaWNlKHBvczEscG9zMSArIGxlbik7XG4gIGJhMi5kYXRhLnNldChzbGljZSxvZnMyKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYShzdHIxLCBwb3MxLCBiYTIsIHBvczIsIGxlbil7XG4gIGlmKDEyICE9IGJhMi5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZihsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIHZhciBvZnMyID0gYmEyLm9mZnNldChwb3MyKTtcbiAgaWYocG9zMSArIGxlbiA+IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHN0cjEpKSB7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIGlmKG9mczIgKyBsZW4gPiBiYTIuZGF0YS5sZW5ndGgpIHtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgdmFyIHNsaWNlID0gY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhzdHIxKS5zbGljZShwb3MxLHBvczEgKyBsZW4pO1xuICBiYTIuZGF0YS5zZXQoc2xpY2Usb2ZzMik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9ibGl0X2J5dGVzLCBjYW1sX2J5dGVzX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlcyhiYTEsIHBvczEsIGJ5dGVzMiwgcG9zMiwgbGVuKXtcbiAgaWYoMTIgIT0gYmExLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgdmFyIG9mczEgPSBiYTEub2Zmc2V0KHBvczEpO1xuICBpZihvZnMxICsgbGVuID4gYmExLmRhdGEubGVuZ3RoKXtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgaWYocG9zMiArIGxlbiA+IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKGJ5dGVzMikpe1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICB2YXIgc2xpY2UgPSBiYTEuZGF0YS5zbGljZShvZnMxLCBvZnMxK2xlbik7XG4gIGNhbWxfYmxpdF9ieXRlcyhjYW1sX2J5dGVzX29mX2FycmF5KHNsaWNlKSwgMCwgYnl0ZXMyLCBwb3MyLCBsZW4pO1xuICByZXR1cm4gMFxufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWQ1X2NoYW5cbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlLCBjYW1sX21sX2lucHV0X2Jsb2NrXG4vL1JlcXVpcmVzOiBjYW1sX01ENUluaXQsIGNhbWxfTUQ1VXBkYXRlLCBjYW1sX01ENUZpbmFsXG5mdW5jdGlvbiBjYW1sX21kNV9jaGFuKGNoYW5pZCx0b3JlYWQpe1xuICB2YXIgY3R4ID0gY2FtbF9NRDVJbml0KCk7XG4gIHZhciBidWZmZXIgPSBuZXcgVWludDhBcnJheSg0MDk2KTtcbiAgaWYodG9yZWFkIDwgMCl7XG4gICAgd2hpbGUodHJ1ZSl7XG4gICAgICB2YXIgcmVhZCA9IGNhbWxfbWxfaW5wdXRfYmxvY2soY2hhbmlkLGJ1ZmZlciwwLGJ1ZmZlci5sZW5ndGgpO1xuICAgICAgaWYocmVhZCA9PSAwKSBicmVhaztcbiAgICAgIGNhbWxfTUQ1VXBkYXRlKGN0eCxidWZmZXIuc3ViYXJyYXkoMCwgcmVhZCksIHJlYWQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB3aGlsZSh0b3JlYWQgPiAwKSB7XG4gICAgICB2YXIgcmVhZCA9IGNhbWxfbWxfaW5wdXRfYmxvY2soY2hhbmlkLGJ1ZmZlciwwLCAodG9yZWFkID4gYnVmZmVyLmxlbmd0aCA/IGJ1ZmZlci5sZW5ndGggOiB0b3JlYWQpKTtcbiAgICAgIGlmKHJlYWQgPT0gMCkgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICAgICAgY2FtbF9NRDVVcGRhdGUoY3R4LGJ1ZmZlci5zdWJhcnJheSgwLCByZWFkKSwgcmVhZCk7XG4gICAgICB0b3JlYWQgLT0gcmVhZFxuICAgIH1cbiAgfVxuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkoY2FtbF9NRDVGaW5hbChjdHgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tZDVfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX3N0cmluZywgY2FtbF9tZDVfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWQ1X3N0cmluZyhzLCBvZnMsIGxlbikge1xuICByZXR1cm4gY2FtbF9tZDVfYnl0ZXMoY2FtbF9ieXRlc19vZl9zdHJpbmcocyksb2ZzLGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfTUQ1VHJhbnNmb3JtXG52YXIgY2FtbF9NRDVUcmFuc2Zvcm0gPSAoZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBhZGQgKHgsIHkpIHsgcmV0dXJuICh4ICsgeSkgfCAwOyB9XG4gIGZ1bmN0aW9uIHh4KHEsYSxiLHgscyx0KSB7XG4gICAgYSA9IGFkZChhZGQoYSwgcSksIGFkZCh4LCB0KSk7XG4gICAgcmV0dXJuIGFkZCgoYSA8PCBzKSB8IChhID4+PiAoMzIgLSBzKSksIGIpO1xuICB9XG4gIGZ1bmN0aW9uIGZmKGEsYixjLGQseCxzLHQpIHtcbiAgICByZXR1cm4geHgoKGIgJiBjKSB8ICgofmIpICYgZCksIGEsIGIsIHgsIHMsIHQpO1xuICB9XG4gIGZ1bmN0aW9uIGdnKGEsYixjLGQseCxzLHQpIHtcbiAgICByZXR1cm4geHgoKGIgJiBkKSB8IChjICYgKH5kKSksIGEsIGIsIHgsIHMsIHQpO1xuICB9XG4gIGZ1bmN0aW9uIGhoKGEsYixjLGQseCxzLHQpIHsgcmV0dXJuIHh4KGIgXiBjIF4gZCwgYSwgYiwgeCwgcywgdCk7IH1cbiAgZnVuY3Rpb24gaWkoYSxiLGMsZCx4LHMsdCkgeyByZXR1cm4geHgoYyBeIChiIHwgKH5kKSksIGEsIGIsIHgsIHMsIHQpOyB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uICh3LCBidWZmZXIpIHtcbiAgICB2YXIgYSA9IHdbMF0sIGIgPSB3WzFdLCBjID0gd1syXSwgZCA9IHdbM107XG5cbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyWyAwXSwgNywgMHhENzZBQTQ3OCk7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlclsgMV0sIDEyLCAweEU4QzdCNzU2KTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyWyAyXSwgMTcsIDB4MjQyMDcwREIpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXJbIDNdLCAyMiwgMHhDMUJEQ0VFRSk7XG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlclsgNF0sIDcsIDB4RjU3QzBGQUYpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXJbIDVdLCAxMiwgMHg0Nzg3QzYyQSk7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlclsgNl0sIDE3LCAweEE4MzA0NjEzKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyWyA3XSwgMjIsIDB4RkQ0Njk1MDEpO1xuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXJbIDhdLCA3LCAweDY5ODA5OEQ4KTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyWyA5XSwgMTIsIDB4OEI0NEY3QUYpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXJbMTBdLCAxNywgMHhGRkZGNUJCMSk7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlclsxMV0sIDIyLCAweDg5NUNEN0JFKTtcbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyWzEyXSwgNywgMHg2QjkwMTEyMik7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlclsxM10sIDEyLCAweEZEOTg3MTkzKTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyWzE0XSwgMTcsIDB4QTY3OTQzOEUpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXJbMTVdLCAyMiwgMHg0OUI0MDgyMSk7XG5cbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyWyAxXSwgNSwgMHhGNjFFMjU2Mik7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlclsgNl0sIDksIDB4QzA0MEIzNDApO1xuICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbMTFdLCAxNCwgMHgyNjVFNUE1MSk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlclsgMF0sIDIwLCAweEU5QjZDN0FBKTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyWyA1XSwgNSwgMHhENjJGMTA1RCk7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlclsxMF0sIDksIDB4MDI0NDE0NTMpO1xuICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbMTVdLCAxNCwgMHhEOEExRTY4MSk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlclsgNF0sIDIwLCAweEU3RDNGQkM4KTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyWyA5XSwgNSwgMHgyMUUxQ0RFNik7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlclsxNF0sIDksIDB4QzMzNzA3RDYpO1xuICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbIDNdLCAxNCwgMHhGNEQ1MEQ4Nyk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlclsgOF0sIDIwLCAweDQ1NUExNEVEKTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyWzEzXSwgNSwgMHhBOUUzRTkwNSk7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlclsgMl0sIDksIDB4RkNFRkEzRjgpO1xuICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbIDddLCAxNCwgMHg2NzZGMDJEOSk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlclsxMl0sIDIwLCAweDhEMkE0QzhBKTtcblxuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXJbIDVdLCA0LCAweEZGRkEzOTQyKTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyWyA4XSwgMTEsIDB4ODc3MUY2ODEpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXJbMTFdLCAxNiwgMHg2RDlENjEyMik7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlclsxNF0sIDIzLCAweEZERTUzODBDKTtcbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyWyAxXSwgNCwgMHhBNEJFRUE0NCk7XG4gICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlclsgNF0sIDExLCAweDRCREVDRkE5KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyWyA3XSwgMTYsIDB4RjZCQjRCNjApO1xuICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXJbMTBdLCAyMywgMHhCRUJGQkM3MCk7XG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlclsxM10sIDQsIDB4Mjg5QjdFQzYpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXJbIDBdLCAxMSwgMHhFQUExMjdGQSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlclsgM10sIDE2LCAweEQ0RUYzMDg1KTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyWyA2XSwgMjMsIDB4MDQ4ODFEMDUpO1xuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXJbIDldLCA0LCAweEQ5RDREMDM5KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyWzEyXSwgMTEsIDB4RTZEQjk5RTUpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXJbMTVdLCAxNiwgMHgxRkEyN0NGOCk7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlclsgMl0sIDIzLCAweEM0QUM1NjY1KTtcblxuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXJbIDBdLCA2LCAweEY0MjkyMjQ0KTtcbiAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyWyA3XSwgMTAsIDB4NDMyQUZGOTcpO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXJbMTRdLCAxNSwgMHhBQjk0MjNBNyk7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlclsgNV0sIDIxLCAweEZDOTNBMDM5KTtcbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyWzEyXSwgNiwgMHg2NTVCNTlDMyk7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlclsgM10sIDEwLCAweDhGMENDQzkyKTtcbiAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyWzEwXSwgMTUsIDB4RkZFRkY0N0QpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXJbIDFdLCAyMSwgMHg4NTg0NUREMSk7XG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlclsgOF0sIDYsIDB4NkZBODdFNEYpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXJbMTVdLCAxMCwgMHhGRTJDRTZFMCk7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlclsgNl0sIDE1LCAweEEzMDE0MzE0KTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyWzEzXSwgMjEsIDB4NEUwODExQTEpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXJbIDRdLCA2LCAweEY3NTM3RTgyKTtcbiAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyWzExXSwgMTAsIDB4QkQzQUYyMzUpO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXJbIDJdLCAxNSwgMHgyQUQ3RDJCQik7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlclsgOV0sIDIxLCAweEVCODZEMzkxKTtcblxuICAgIHdbMF0gPSBhZGQoYSwgd1swXSk7XG4gICAgd1sxXSA9IGFkZChiLCB3WzFdKTtcbiAgICB3WzJdID0gYWRkKGMsIHdbMl0pO1xuICAgIHdbM10gPSBhZGQoZCwgd1szXSk7XG4gIH19KSgpXG5cbi8vUHJvdmlkZXM6IGNhbWxfTUQ1SW5pdFxuZnVuY3Rpb24gY2FtbF9NRDVJbml0KCkge1xuICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDY0KTtcbiAgdmFyIGIzMiA9IG5ldyBVaW50MzJBcnJheShidWZmZXIpO1xuICB2YXIgYjggPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICByZXR1cm4ge2xlbjowLFxuICAgICAgICAgIHc6bmV3IFVpbnQzMkFycmF5KFsweDY3NDUyMzAxLCAweEVGQ0RBQjg5LCAweDk4QkFEQ0ZFLCAweDEwMzI1NDc2XSksXG4gICAgICAgICAgYjMyOmIzMixcbiAgICAgICAgICBiODpiOH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9NRDVVcGRhdGVcbi8vUmVxdWlyZXM6IGNhbWxfTUQ1VHJhbnNmb3JtXG5mdW5jdGlvbiBjYW1sX01ENVVwZGF0ZShjdHgsIGlucHV0LCBpbnB1dF9sZW4pe1xuICB2YXIgaW5fYnVmID0gY3R4LmxlbiAmIDB4M2Y7XG4gIHZhciBpbnB1dF9wb3MgPSAwO1xuICBjdHgubGVuICs9IGlucHV0X2xlbjtcbiAgaWYoaW5fYnVmKXtcbiAgICB2YXIgbWlzc2luZyA9IDY0IC0gaW5fYnVmO1xuICAgIGlmKGlucHV0X2xlbiA8IG1pc3NpbmcpIHtcbiAgICAgIGN0eC5iOC5zZXQoaW5wdXQuc3ViYXJyYXkoMCxpbnB1dF9sZW4pLGluX2J1Zik7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY3R4LmI4LnNldChpbnB1dC5zdWJhcnJheSgwLG1pc3NpbmcpLGluX2J1Zik7XG4gICAgY2FtbF9NRDVUcmFuc2Zvcm0oY3R4LncsIGN0eC5iMzIpO1xuICAgIGlucHV0X2xlbiAtPSBtaXNzaW5nO1xuICAgIGlucHV0X3BvcyArPSBtaXNzaW5nO1xuICB9XG4gIHdoaWxlKGlucHV0X2xlbiA+PSA2NCl7XG4gICAgY3R4LmI4LnNldChpbnB1dC5zdWJhcnJheShpbnB1dF9wb3MsaW5wdXRfcG9zICsgNjQpLCAwKTtcbiAgICBjYW1sX01ENVRyYW5zZm9ybShjdHgudywgY3R4LmIzMik7XG4gICAgaW5wdXRfbGVuIC09IDY0O1xuICAgIGlucHV0X3BvcyArPSA2NDtcbiAgfVxuICBpZihpbnB1dF9sZW4pXG4gICAgY3R4LmI4LnNldChpbnB1dC5zdWJhcnJheShpbnB1dF9wb3MsaW5wdXRfcG9zICsgaW5wdXRfbGVuKSwgMCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfTUQ1RmluYWxcbi8vUmVxdWlyZXM6IGNhbWxfTUQ1VHJhbnNmb3JtXG5mdW5jdGlvbiBjYW1sX01ENUZpbmFsKGN0eCl7XG4gIHZhciBpbl9idWYgPSBjdHgubGVuICYgMHgzZjtcbiAgY3R4LmI4W2luX2J1Zl0gPSAweDgwO1xuICBpbl9idWYgKys7XG4gIGlmKGluX2J1ZiA+IDU2KSB7XG4gICAgZm9yKHZhciBqID0gaW5fYnVmOyBqIDwgNjQ7IGorKyl7XG4gICAgICBjdHguYjhbal0gPSAwO1xuICAgIH1cbiAgICBjYW1sX01ENVRyYW5zZm9ybShjdHgudywgY3R4LmIzMik7XG4gICAgZm9yKHZhciBqID0gMDsgaiA8IDU2OyBqKyspe1xuICAgICAgY3R4LmI4W2pdID0gMDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yKHZhciBqID0gaW5fYnVmOyBqIDwgNTY7IGorKyl7XG4gICAgICBjdHguYjhbal0gPSAwO1xuICAgIH1cbiAgfVxuICBjdHguYjMyWzE0XSA9IGN0eC5sZW4gPDwgMztcbiAgY3R4LmIzMlsxNV0gPSAoY3R4LmxlbiA+PiAyOSkgJiAweDFGRkZGRkZGO1xuICBjYW1sX01ENVRyYW5zZm9ybShjdHgudywgY3R4LmIzMik7XG4gIHZhciB0ID0gbmV3IFVpbnQ4QXJyYXkoMTYpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKylcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IDQ7IGorKylcbiAgICAgIHRbaSAqIDQgKyBqXSA9IChjdHgud1tpXSA+PiAoOCAqIGopKSAmIDB4RkY7XG4gIHJldHVybiB0O1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWQ1X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzLCBjYW1sX3N0cmluZ19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9NRDVJbml0LCBjYW1sX01ENVVwZGF0ZSwgY2FtbF9NRDVGaW5hbFxuZnVuY3Rpb24gY2FtbF9tZDVfYnl0ZXMocywgb2ZzLCBsZW4pIHtcbiAgdmFyIGN0eCA9IGNhbWxfTUQ1SW5pdCgpO1xuICB2YXIgYSA9IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMocyk7XG4gIGNhbWxfTUQ1VXBkYXRlKGN0eCxhLnN1YmFycmF5KG9mcywgb2ZzICsgbGVuKSwgbGVuKTtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5KGNhbWxfTUQ1RmluYWwoY3R4KSk7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMjAgLSBIdWdvIEhldXphcmRcbi8vIENvcHlyaWdodCAoQykgMjAyMCAtIFNoYWNoYXIgSXR6aGFreVxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2Jsb2IvNC4wNy9vdGhlcmxpYnMvc3RyL3N0cnN0dWJzLmNcbi8vIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9qc2NvcS9qc2NvcS9ibG9iL3Y4LjExL2NvcS1qcy9qc19zdHViL3N0ci5qc1xuXG4vL1Byb3ZpZGVzOiByZV9tYXRjaFxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF9qc19mcm9tX2FycmF5LCBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfZ2V0XG5cbnZhciByZV9tYXRjaCA9IGZ1bmN0aW9uKCl7XG4gIHZhciByZV93b3JkX2xldHRlcnMgPSBbXG4gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgICAgICAgLyogMHgwMC0weDFGOiBub25lICovXG4gICAgMHgwMCwgMHgwMCwgMHhGRiwgMHgwMywgICAgICAgLyogMHgyMC0weDNGOiBkaWdpdHMgMC05ICovXG4gICAgMHhGRSwgMHhGRiwgMHhGRiwgMHg4NywgICAgICAgLyogMHg0MC0weDVGOiBBIHRvIFosIF8gKi9cbiAgICAweEZFLCAweEZGLCAweEZGLCAweDA3LCAgICAgICAvKiAweDYwLTB4N0Y6IGEgdG8geiAqL1xuICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAgICAgIC8qIDB4ODAtMHg5Rjogbm9uZSAqL1xuICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAgICAgIC8qIDB4QTAtMHhCRjogbm9uZSAqL1xuICAgIDB4RkYsIDB4RkYsIDB4N0YsIDB4RkYsICAgICAgIC8qIDB4QzAtMHhERjogTGF0aW4tMSBhY2NlbnRlZCB1cHBlcmNhc2UgKi9cbiAgICAweEZGLCAweEZGLCAweDdGLCAweEZGICAgICAgICAvKiAweEUwLTB4RkY6IExhdGluLTEgYWNjZW50ZWQgbG93ZXJjYXNlICovXG4gIF07XG5cbiAgdmFyIG9wY29kZXMgPSB7XG4gICAgQ0hBUjogMCwgQ0hBUk5PUk06IDEsIFNUUklORzogMiwgU1RSSU5HTk9STTogMywgQ0hBUkNMQVNTOiA0LFxuICAgIEJPTDogNSwgRU9MOiA2LCBXT1JEQk9VTkRBUlk6IDcsXG4gICAgQkVHR1JPVVA6IDgsIEVOREdST1VQOiA5LCBSRUZHUk9VUDogMTAsXG4gICAgQUNDRVBUOiAxMSxcbiAgICBTSU1QTEVPUFQ6IDEyLCBTSU1QTEVTVEFSOiAxMywgU0lNUExFUExVUzogMTQsXG4gICAgR09UTzogMTUsIFBVU0hCQUNLOiAxNiwgU0VUTUFSSzogMTcsXG4gICAgQ0hFQ0tQUk9HUkVTUzogMThcbiAgfTtcblxuICBmdW5jdGlvbiBpc193b3JkX2xldHRlcihjKSB7XG4gICAgcmV0dXJuIChyZV93b3JkX2xldHRlcnNbICAoYyA+PiAzKV0gPj4gKGMgJiA3KSkgJiAxO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5fYml0c2V0KHMsaSkge1xuICAgIHJldHVybiAoY2FtbF9zdHJpbmdfZ2V0KHMsKGkgPj4gMykpID4+IChpICYgNykpICYgMTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlX21hdGNoX2ltcGwocmUsIHMsIHBvcywgcGFydGlhbCkge1xuXG4gICAgdmFyIHByb2cgICAgICAgICAgPSBjYW1sX2pzX2Zyb21fYXJyYXkocmVbMV0pLFxuICAgICAgICBjcG9vbCAgICAgICAgID0gY2FtbF9qc19mcm9tX2FycmF5KHJlWzJdKSxcbiAgICAgICAgbm9ybXRhYmxlICAgICA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocmVbM10pLFxuICAgICAgICBudW1ncm91cHMgICAgID0gcmVbNF0gfCAwLFxuICAgICAgICBudW1yZWdpc3RlcnMgID0gcmVbNV0gfCAwLFxuICAgICAgICBzdGFydGNoYXJzICAgID0gcmVbNl0gfCAwO1xuXG4gICAgdmFyIHMgPSBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyhzKTtcblxuICAgIHZhciBwYyA9IDAsXG4gICAgICAgIHF1aXQgPSBmYWxzZSxcbiAgICAgICAgc3RhY2sgPSBbXSxcbiAgICAgICAgZ3JvdXBzID0gbmV3IEFycmF5KG51bWdyb3VwcyksXG4gICAgICAgIHJlX3JlZ2lzdGVyID0gbmV3IEFycmF5KG51bXJlZ2lzdGVycyk7XG5cbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKXtcbiAgICAgIGdyb3Vwc1tpXSA9IHtzdGFydDogLTEsIGVuZDotMX1cbiAgICB9XG4gICAgZ3JvdXBzWzBdLnN0YXJ0ID0gcG9zO1xuXG4gICAgdmFyIGJhY2t0cmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdoaWxlIChzdGFjay5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGl0ZW0gPSBzdGFjay5wb3AoKTtcbiAgICAgICAgaWYgKGl0ZW0udW5kbykge1xuICAgICAgICAgIGl0ZW0udW5kby5vYmpbaXRlbS51bmRvLnByb3BdID0gaXRlbS51bmRvLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYoaXRlbS5wb3MpIHtcbiAgICAgICAgICBwYyA9IGl0ZW0ucG9zLnBjO1xuICAgICAgICAgIHBvcyA9IGl0ZW0ucG9zLnR4dDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHF1aXQgPSB0cnVlO1xuICAgIH07XG5cbiAgICB2YXIgcHVzaCA9IGZ1bmN0aW9uKGl0ZW0pIHsgc3RhY2sucHVzaChpdGVtKTsgfTtcblxuICAgIHZhciBhY2NlcHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBncm91cHNbMF0uZW5kID0gcG9zO1xuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBBcnJheSgxICsgZ3JvdXBzLmxlbmd0aCoyKTtcbiAgICAgIHJlc3VsdFswXSA9IDA7IC8vIHRhZ1xuICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIHZhciBnID0gZ3JvdXBzW2ldO1xuICAgICAgICBpZihnLnN0YXJ0IDwgMCB8fCBnLmVuZCA8IDApIHtcbiAgICAgICAgICBnLnN0YXJ0ID0gZy5lbmQgPSAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRbMippICsgMSBdID0gZy5zdGFydDtcbiAgICAgICAgcmVzdWx0WzIqaSArIDEgKyAxIF0gPSBnLmVuZDtcbiAgICAgIH07XG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfTtcblxuICAgIHZhciBwcmVmaXhfbWF0Y2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZihwYXJ0aWFsKSByZXR1cm4gYWNjZXB0ICgpO1xuICAgICAgZWxzZSBiYWNrdHJhY2sgKCk7XG4gICAgfVxuXG4gICAgLyogTWFpbiBERkEgaW50ZXJwcmV0ZXIgbG9vcCAqL1xuICAgIHdoaWxlICghcXVpdCkge1xuICAgICAgdmFyIG9wID0gcHJvZ1twY10gJiAweGZmLFxuICAgICAgICAgIHNhcmcgPSBwcm9nW3BjXSA+PiA4LFxuICAgICAgICAgIHVhcmcgPSBzYXJnICYgMHhmZixcbiAgICAgICAgICBjID0gc1twb3NdLFxuICAgICAgICAgIGdyb3VwO1xuXG4gICAgICBwYysrO1xuXG4gICAgICBzd2l0Y2ggKG9wKSB7XG4gICAgICBjYXNlIG9wY29kZXMuQ0hBUjpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAoYyA9PT0gdWFyZykgcG9zKys7XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkNIQVJOT1JNOlxuICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgIGlmIChub3JtdGFibGUuY2hhckNvZGVBdChjKSA9PT0gdWFyZykgcG9zKys7XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNUUklORzpcbiAgICAgICAgZm9yICh2YXIgYXJnID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhjcG9vbFt1YXJnXSksIGkgPSAwOyBpIDwgYXJnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICAgIGlmIChjID09PSBhcmcuY2hhckNvZGVBdChpKSlcbiAgICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgICBlbHNlIHsgYmFja3RyYWNrKCk7IGJyZWFrOyB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU1RSSU5HTk9STTpcbiAgICAgICAgZm9yICh2YXIgYXJnID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhjcG9vbFt1YXJnXSksIGkgPSAwOyBpIDwgYXJnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICAgIGlmIChub3JtdGFibGUuY2hhckNvZGVBdChjKSA9PT0gYXJnLmNoYXJDb2RlQXQoaSkpXG4gICAgICAgICAgICBjID0gc1srK3Bvc107XG4gICAgICAgICAgZWxzZSB7IGJhY2t0cmFjaygpOyBicmVhazsgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkNIQVJDTEFTUzpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSkgcG9zKys7XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkJPTDpcbiAgICAgICAgaWYocG9zID4gMCAmJiBzW3BvcyAtIDFdICE9IDEwIC8qIFxcbiAqLykge2JhY2t0cmFjaygpfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5FT0w6XG4gICAgICAgIGlmKHBvcyA8IHMubGVuZ3RoICYmIHNbcG9zXSAhPSAxMCAvKiBcXG4gKi8pIHtiYWNrdHJhY2soKX1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuV09SREJPVU5EQVJZOlxuICAgICAgICBpZihwb3MgPT0gMCkge1xuICAgICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgICBpZihpc193b3JkX2xldHRlcihzWzBdKSkgYnJlYWs7XG4gICAgICAgICAgYmFja3RyYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocG9zID09PSBzLmxlbmd0aCkge1xuICAgICAgICAgIGlmKGlzX3dvcmRfbGV0dGVyKHNbcG9zIC0gMV0pKSBicmVhaztcbiAgICAgICAgICBiYWNrdHJhY2sgKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaWYoaXNfd29yZF9sZXR0ZXIoc1twb3MgLSAxXSkgIT0gaXNfd29yZF9sZXR0ZXIoc1twb3NdKSkgYnJlYWs7XG4gICAgICAgICAgYmFja3RyYWNrICgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkJFR0dST1VQOlxuICAgICAgICBncm91cCA9IGdyb3Vwc1t1YXJnXTtcbiAgICAgICAgcHVzaCh7dW5kbzoge29iajpncm91cCxcbiAgICAgICAgICAgICAgICAgICAgIHByb3A6J3N0YXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBncm91cC5zdGFydH19KTtcbiAgICAgICAgZ3JvdXAuc3RhcnQgPSBwb3M7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkVOREdST1VQOlxuICAgICAgICBncm91cCA9IGdyb3Vwc1t1YXJnXTtcbiAgICAgICAgcHVzaCh7dW5kbzoge29iajogZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICBwcm9wOidlbmQnLFxuICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGdyb3VwLmVuZH19KTtcbiAgICAgICAgZ3JvdXAuZW5kID0gcG9zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5SRUZHUk9VUDpcbiAgICAgICAgZ3JvdXAgPSBncm91cHNbdWFyZ107XG4gICAgICAgIGlmKGdyb3VwLnN0YXJ0IDwgMCB8fCBncm91cC5lbmQgPCAwKSB7YmFja3RyYWNrICgpOyBicmVha31cbiAgICAgICAgZm9yICh2YXIgaSA9IGdyb3VwLnN0YXJ0OyBpIDwgZ3JvdXAuZW5kOyBpKyspe1xuICAgICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgICBpZihzW2ldICE9IHNbcG9zXSkge2JhY2t0cmFjayAoKTsgYnJlYWt9XG4gICAgICAgICAgcG9zKys7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU0lNUExFT1BUOlxuICAgICAgICBpZiAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSkgcG9zKys7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNJTVBMRVNUQVI6XG4gICAgICAgIHdoaWxlIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKVxuICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU0lNUExFUExVUzpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSkge1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgICB9IHdoaWxlIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5BQ0NFUFQ6XG4gICAgICAgIHJldHVybiBhY2NlcHQoKTtcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5HT1RPOlxuICAgICAgICBwYyA9IHBjICsgc2FyZztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuUFVTSEJBQ0s6XG4gICAgICAgIHB1c2goe3Bvczoge3BjOiBwYyArIHNhcmcsIHR4dDogcG9zfX0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TRVRNQVJLOlxuICAgICAgICBwdXNoKHt1bmRvOiB7b2JqOnJlX3JlZ2lzdGVyLFxuICAgICAgICAgICAgICAgICAgICAgcHJvcDogdWFyZyxcbiAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiByZV9yZWdpc3Rlclt1YXJnXX19KTtcbiAgICAgICAgcmVfcmVnaXN0ZXJbdWFyZ10gPSBwb3M7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkNIRUNLUFJPR1JFU1M6XG4gICAgICAgIGlmIChyZV9yZWdpc3Rlclt1YXJnXSA9PT0gcG9zKSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGJ5dGVjb2RlXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiByZV9tYXRjaF9pbXBsO1xufSgpO1xuXG5cbi8vUHJvdmlkZXM6IHJlX3NlYXJjaF9mb3J3YXJkXG4vL1JlcXVpcmVzOiByZV9tYXRjaCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIHJlX3NlYXJjaF9mb3J3YXJkKHJlLCBzLCBwb3MpIHtcbiAgaWYocG9zIDwgMCB8fCBwb3MgPiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyLnNlYXJjaF9mb3J3YXJkXCIpXG4gIHdoaWxlIChwb3MgPD0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKSB7XG4gICAgdmFyIHJlcyA9IHJlX21hdGNoKHJlLCBzLCBwb3MsIDApO1xuICAgIGlmIChyZXMpIHJldHVybiByZXM7XG4gICAgcG9zKys7XG4gIH1cblxuICByZXR1cm4gWzBdOyAgLyogW3x8XSA6IGludCBhcnJheSAqL1xufVxuXG4vL1Byb3ZpZGVzOiByZV9zZWFyY2hfYmFja3dhcmRcbi8vUmVxdWlyZXM6IHJlX21hdGNoLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gcmVfc2VhcmNoX2JhY2t3YXJkKHJlLCBzLCBwb3MpIHtcbiAgaWYocG9zIDwgMCB8fCBwb3MgPiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyLnNlYXJjaF9iYWNrd2FyZFwiKVxuICB3aGlsZSAocG9zID49IDApIHtcbiAgICB2YXIgcmVzID0gcmVfbWF0Y2gocmUsIHMsIHBvcywgMCk7XG4gICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICBwb3MtLTtcbiAgfVxuXG4gIHJldHVybiBbMF07ICAvKiBbfHxdIDogaW50IGFycmF5ICovXG59XG5cblxuLy9Qcm92aWRlczogcmVfc3RyaW5nX21hdGNoXG4vL1JlcXVpcmVzOiByZV9tYXRjaCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIHJlX3N0cmluZ19tYXRjaChyZSxzLHBvcyl7XG4gIGlmKHBvcyA8IDAgfHwgcG9zID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0ci5zdHJpbmdfbWF0Y2hcIilcbiAgdmFyIHJlcyA9IHJlX21hdGNoKHJlLCBzLCBwb3MsIDApO1xuICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICBlbHNlIHJldHVybiBbMF07XG59XG5cbi8vUHJvdmlkZXM6IHJlX3BhcnRpYWxfbWF0Y2hcbi8vUmVxdWlyZXM6IHJlX21hdGNoLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gcmVfcGFydGlhbF9tYXRjaChyZSxzLHBvcyl7XG4gIGlmKHBvcyA8IDAgfHwgcG9zID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0ci5wYXJ0aWFsX21hdGNoXCIpXG4gIHZhciByZXMgPSByZV9tYXRjaChyZSwgcywgcG9zLCAxKTtcbiAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgZWxzZSByZXR1cm4gWzBdO1xufVxuXG4vL1Byb3ZpZGVzOiByZV9yZXBsYWNlbWVudF90ZXh0XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2dldFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy8gZXh0ZXJuYWwgcmVfcmVwbGFjZW1lbnRfdGV4dDogc3RyaW5nIC0+IGludCBhcnJheSAtPiBzdHJpbmcgLT4gc3RyaW5nXG5mdW5jdGlvbiByZV9yZXBsYWNlbWVudF90ZXh0KHJlcGwsZ3JvdXBzLG9yaWcpIHtcbiAgdmFyIHJlcGwgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHJlcGwpO1xuICB2YXIgbGVuID0gcmVwbC5sZW5ndGg7XG4gIHZhciBvcmlnID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhvcmlnKTtcbiAgdmFyIHJlcyA9IFwiXCI7IC8vcmVzdWx0XG4gIHZhciBuID0gMDsgLy8gY3VycmVudCBwb3NpdGlvblxuICB2YXIgY3VyOyAvL2N1cnJlbnQgY2hhclxuICB2YXIgc3RhcnQsIGVuZCwgYztcbiAgd2hpbGUobiA8IGxlbil7XG4gICAgY3VyID0gcmVwbC5jaGFyQXQobisrKTtcbiAgICBpZihjdXIgIT0gJ1xcXFwnKXtcbiAgICAgIHJlcyArPSBjdXI7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYobiA9PSBsZW4pIGNhbWxfZmFpbHdpdGgoXCJTdHIucmVwbGFjZTogaWxsZWdhbCBiYWNrc2xhc2ggc2VxdWVuY2VcIik7XG4gICAgICBjdXIgPSByZXBsLmNoYXJBdChuKyspO1xuICAgICAgc3dpdGNoKGN1cil7XG4gICAgICBjYXNlICdcXFxcJzpcbiAgICAgICAgcmVzICs9IGN1cjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcwJzogY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6XG4gICAgICBjYXNlICc1JzogY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4JzogY2FzZSAnOSc6XG4gICAgICAgIGMgPSArY3VyO1xuICAgICAgICBpZiAoYyoyID49IGdyb3Vwcy5sZW5ndGggLSAxIClcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiU3RyLnJlcGxhY2U6IHJlZmVyZW5jZSB0byB1bm1hdGNoZWQgZ3JvdXBcIiApO1xuICAgICAgICBzdGFydCA9IGNhbWxfYXJyYXlfZ2V0KGdyb3VwcyxjKjIpO1xuICAgICAgICBlbmQgPSBjYW1sX2FycmF5X2dldChncm91cHMsIGMqMiArMSk7XG4gICAgICAgIGlmIChzdGFydCA9PSAtMSlcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiU3RyLnJlcGxhY2U6IHJlZmVyZW5jZSB0byB1bm1hdGNoZWQgZ3JvdXBcIik7XG4gICAgICAgIHJlcys9b3JpZy5zbGljZShzdGFydCxlbmQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJlcyArPSAoJ1xcXFwnICArIGN1cik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHJlcyk7IH1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cl9pbml0aWFsaXplXG5mdW5jdGlvbiBjYW1sX3N0cl9pbml0aWFsaXplKHVuaXQpIHtcbiAgcmV0dXJuIDA7XG59XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdGl2ZSBDYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICovXG4vKiAgZW4gQXV0b21hdGlxdWUuICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkICAgICovXG4vKiAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHdpdGggICAgICovXG4vKiAgdGhlIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIGZpbGUgLi4vTElDRU5TRS4gICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qICRJZDogbGV4aW5nLmMgNjA0NSAyMDA0LTAxLTAxIDE2OjQyOjQzWiBkb2xpZ2V6ICQgKi9cblxuLyogVGhlIHRhYmxlLWRyaXZlbiBhdXRvbWF0b24gZm9yIGxleGVycyBnZW5lcmF0ZWQgYnkgY2FtbGxleC4gKi9cblxuLy9Qcm92aWRlczogY2FtbF9sZXhfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbGV4X2FycmF5KHMpIHtcbiAgcyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocyk7XG4gIHZhciBsID0gcy5sZW5ndGggLyAyO1xuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgYVtpXSA9IChzLmNoYXJDb2RlQXQoMiAqIGkpIHwgKHMuY2hhckNvZGVBdCgyICogaSArIDEpIDw8IDgpKSA8PCAxNiA+PiAxNjtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGV4X2VuZ2luZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9sZXhfYXJyYXksIGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbGV4X2VuZ2luZSh0YmwsIHN0YXJ0X3N0YXRlLCBsZXhidWYpIHtcbiAgdmFyIGxleF9idWZmZXIgPSAyO1xuICB2YXIgbGV4X2J1ZmZlcl9sZW4gPSAzO1xuICB2YXIgbGV4X3N0YXJ0X3BvcyA9IDU7XG4gIHZhciBsZXhfY3Vycl9wb3MgPSA2O1xuICB2YXIgbGV4X2xhc3RfcG9zID0gNztcbiAgdmFyIGxleF9sYXN0X2FjdGlvbiA9IDg7XG4gIHZhciBsZXhfZW9mX3JlYWNoZWQgPSA5O1xuICB2YXIgbGV4X2Jhc2UgPSAxO1xuICB2YXIgbGV4X2JhY2t0cmsgPSAyO1xuICB2YXIgbGV4X2RlZmF1bHQgPSAzO1xuICB2YXIgbGV4X3RyYW5zID0gNDtcbiAgdmFyIGxleF9jaGVjayA9IDU7XG5cbiAgaWYgKCF0YmwubGV4X2RlZmF1bHQpIHtcbiAgICB0YmwubGV4X2Jhc2UgPSAgICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYXNlXSk7XG4gICAgdGJsLmxleF9iYWNrdHJrID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFja3Rya10pO1xuICAgIHRibC5sZXhfY2hlY2sgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2NoZWNrXSk7XG4gICAgdGJsLmxleF90cmFucyA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfdHJhbnNdKTtcbiAgICB0YmwubGV4X2RlZmF1bHQgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9kZWZhdWx0XSk7XG4gIH1cblxuICB2YXIgYywgc3RhdGUgPSBzdGFydF9zdGF0ZTtcblxuICB2YXIgYnVmZmVyID0gY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhsZXhidWZbbGV4X2J1ZmZlcl0pO1xuXG4gIGlmIChzdGF0ZSA+PSAwKSB7XG4gICAgLyogRmlyc3QgZW50cnkgKi9cbiAgICBsZXhidWZbbGV4X2xhc3RfcG9zXSA9IGxleGJ1ZltsZXhfc3RhcnRfcG9zXSA9IGxleGJ1ZltsZXhfY3Vycl9wb3NdO1xuICAgIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID0gLTE7XG4gIH0gZWxzZSB7XG4gICAgLyogUmVlbnRyeSBhZnRlciByZWZpbGwgKi9cbiAgICBzdGF0ZSA9IC1zdGF0ZSAtIDE7XG4gIH1cbiAgZm9yKDs7KSB7XG4gICAgLyogTG9va3VwIGJhc2UgYWRkcmVzcyBvciBhY3Rpb24gbnVtYmVyIGZvciBjdXJyZW50IHN0YXRlICovXG4gICAgdmFyIGJhc2UgPSB0YmwubGV4X2Jhc2Vbc3RhdGVdO1xuICAgIGlmIChiYXNlIDwgMCkgcmV0dXJuIC1iYXNlLTE7XG4gICAgLyogU2VlIGlmIGl0J3MgYSBiYWNrdHJhY2sgcG9pbnQgKi9cbiAgICB2YXIgYmFja3RyayA9IHRibC5sZXhfYmFja3Rya1tzdGF0ZV07XG4gICAgaWYgKGJhY2t0cmsgPj0gMCkge1xuICAgICAgbGV4YnVmW2xleF9sYXN0X3Bvc10gPSBsZXhidWZbbGV4X2N1cnJfcG9zXTtcbiAgICAgIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID0gYmFja3RyaztcbiAgICB9XG4gICAgLyogU2VlIGlmIHdlIG5lZWQgYSByZWZpbGwgKi9cbiAgICBpZiAobGV4YnVmW2xleF9jdXJyX3Bvc10gPj0gbGV4YnVmW2xleF9idWZmZXJfbGVuXSl7XG4gICAgICBpZiAobGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPT0gMClcbiAgICAgICAgcmV0dXJuIC1zdGF0ZSAtIDE7XG4gICAgICBlbHNlXG4gICAgICAgIGMgPSAyNTY7XG4gICAgfWVsc2V7XG4gICAgICAvKiBSZWFkIG5leHQgaW5wdXQgY2hhciAqL1xuICAgICAgYyA9IGJ1ZmZlcltsZXhidWZbbGV4X2N1cnJfcG9zXV07XG4gICAgICBsZXhidWZbbGV4X2N1cnJfcG9zXSArKztcbiAgICB9XG4gICAgLyogRGV0ZXJtaW5lIG5leHQgc3RhdGUgKi9cbiAgICBpZiAodGJsLmxleF9jaGVja1tiYXNlICsgY10gPT0gc3RhdGUpXG4gICAgICBzdGF0ZSA9IHRibC5sZXhfdHJhbnNbYmFzZSArIGNdO1xuICAgIGVsc2VcbiAgICAgIHN0YXRlID0gdGJsLmxleF9kZWZhdWx0W3N0YXRlXTtcbiAgICAvKiBJZiBubyB0cmFuc2l0aW9uIG9uIHRoaXMgY2hhciwgcmV0dXJuIHRvIGxhc3QgYmFja3RyYWNrIHBvaW50ICovXG4gICAgaWYgKHN0YXRlIDwgMCkge1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gPSBsZXhidWZbbGV4X2xhc3RfcG9zXTtcbiAgICAgIGlmIChsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9PSAtMSlcbiAgICAgICAgY2FtbF9mYWlsd2l0aChcImxleGluZzogZW1wdHkgdG9rZW5cIik7XG4gICAgICBlbHNlXG4gICAgICAgIHJldHVybiBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXTtcbiAgICB9ZWxzZXtcbiAgICAgIC8qIEVyYXNlIHRoZSBFT0YgY29uZGl0aW9uIG9ubHkgaWYgdGhlIEVPRiBwc2V1ZG8tY2hhcmFjdGVyIHdhc1xuICAgICAgICAgY29uc3VtZWQgYnkgdGhlIGF1dG9tYXRvbiAoaS5lLiB0aGVyZSB3YXMgbm8gYmFja3RyYWNrIGFib3ZlKVxuICAgICAgKi9cbiAgICAgIGlmIChjID09IDI1NikgbGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPSAwO1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBOZXcgbGV4ZXIgZW5naW5lLCB3aXRoIG1lbW9yeSBvZiBwb3NpdGlvbnMgICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8vUHJvdmlkZXM6IGNhbWxfbmV3X2xleF9lbmdpbmVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIGNhbWxfbGV4X2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2xleF9ydW5fbWVtKHMsIGksIG1lbSwgY3Vycl9wb3MpIHtcbiAgZm9yICg7Oykge1xuICAgIHZhciBkc3QgPSBzLmNoYXJDb2RlQXQoaSk7IGkrKztcbiAgICBpZiAoZHN0ID09IDB4ZmYpIHJldHVybjtcbiAgICB2YXIgc3JjID0gcy5jaGFyQ29kZUF0KGkpOyBpKys7XG4gICAgaWYgKHNyYyA9PSAweGZmKVxuICAgICAgbWVtIFtkc3QgKyAxXSA9IGN1cnJfcG9zO1xuICAgIGVsc2VcbiAgICAgIG1lbSBbZHN0ICsgMV0gPSBtZW0gW3NyYyArIDFdO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbWxfbGV4X3J1bl90YWcocywgaSwgbWVtKSB7XG4gIGZvciAoOzspIHtcbiAgICB2YXIgZHN0ID0gcy5jaGFyQ29kZUF0KGkpOyBpKys7XG4gICAgaWYgKGRzdCA9PSAweGZmKSByZXR1cm4gO1xuICAgIHZhciBzcmMgPSBzLmNoYXJDb2RlQXQoaSk7IGkrKztcbiAgICBpZiAoc3JjID09IDB4ZmYpXG4gICAgICBtZW0gW2RzdCArIDFdID0gLTE7XG4gICAgZWxzZVxuICAgICAgbWVtIFtkc3QgKyAxXSA9IG1lbSBbc3JjICsgMV07XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FtbF9uZXdfbGV4X2VuZ2luZSh0YmwsIHN0YXJ0X3N0YXRlLCBsZXhidWYpIHtcbiAgdmFyIGxleF9idWZmZXIgPSAyO1xuICB2YXIgbGV4X2J1ZmZlcl9sZW4gPSAzO1xuICB2YXIgbGV4X3N0YXJ0X3BvcyA9IDU7XG4gIHZhciBsZXhfY3Vycl9wb3MgPSA2O1xuICB2YXIgbGV4X2xhc3RfcG9zID0gNztcbiAgdmFyIGxleF9sYXN0X2FjdGlvbiA9IDg7XG4gIHZhciBsZXhfZW9mX3JlYWNoZWQgPSA5O1xuICB2YXIgbGV4X21lbSA9IDEwO1xuICB2YXIgbGV4X2Jhc2UgPSAxO1xuICB2YXIgbGV4X2JhY2t0cmsgPSAyO1xuICB2YXIgbGV4X2RlZmF1bHQgPSAzO1xuICB2YXIgbGV4X3RyYW5zID0gNDtcbiAgdmFyIGxleF9jaGVjayA9IDU7XG4gIHZhciBsZXhfYmFzZV9jb2RlID0gNjtcbiAgdmFyIGxleF9iYWNrdHJrX2NvZGUgPSA3O1xuICB2YXIgbGV4X2RlZmF1bHRfY29kZSA9IDg7XG4gIHZhciBsZXhfdHJhbnNfY29kZSA9IDk7XG4gIHZhciBsZXhfY2hlY2tfY29kZSA9IDEwO1xuICB2YXIgbGV4X2NvZGUgPSAxMTtcblxuICBpZiAoIXRibC5sZXhfZGVmYXVsdCkge1xuICAgIHRibC5sZXhfYmFzZSA9ICAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2Jhc2VdKTtcbiAgICB0YmwubGV4X2JhY2t0cmsgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYWNrdHJrXSk7XG4gICAgdGJsLmxleF9jaGVjayA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfY2hlY2tdKTtcbiAgICB0YmwubGV4X3RyYW5zID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF90cmFuc10pO1xuICAgIHRibC5sZXhfZGVmYXVsdCA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2RlZmF1bHRdKTtcbiAgfVxuICBpZiAoIXRibC5sZXhfZGVmYXVsdF9jb2RlKSB7XG4gICAgdGJsLmxleF9iYXNlX2NvZGUgPSAgICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYXNlX2NvZGVdKTtcbiAgICB0YmwubGV4X2JhY2t0cmtfY29kZSA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2JhY2t0cmtfY29kZV0pO1xuICAgIHRibC5sZXhfY2hlY2tfY29kZSA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfY2hlY2tfY29kZV0pO1xuICAgIHRibC5sZXhfdHJhbnNfY29kZSA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfdHJhbnNfY29kZV0pO1xuICAgIHRibC5sZXhfZGVmYXVsdF9jb2RlID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfZGVmYXVsdF9jb2RlXSk7XG4gIH1cbiAgaWYgKHRibC5sZXhfY29kZSA9PSBudWxsKSB0YmwubGV4X2NvZGUgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHRibFtsZXhfY29kZV0pO1xuXG4gIHZhciBjLCBzdGF0ZSA9IHN0YXJ0X3N0YXRlO1xuXG4gIHZhciBidWZmZXIgPSBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKGxleGJ1ZltsZXhfYnVmZmVyXSk7XG5cbiAgaWYgKHN0YXRlID49IDApIHtcbiAgICAvKiBGaXJzdCBlbnRyeSAqL1xuICAgIGxleGJ1ZltsZXhfbGFzdF9wb3NdID0gbGV4YnVmW2xleF9zdGFydF9wb3NdID0gbGV4YnVmW2xleF9jdXJyX3Bvc107XG4gICAgbGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPSAtMTtcbiAgfSBlbHNlIHtcbiAgICAvKiBSZWVudHJ5IGFmdGVyIHJlZmlsbCAqL1xuICAgIHN0YXRlID0gLXN0YXRlIC0gMTtcbiAgfVxuICBmb3IoOzspIHtcbiAgICAvKiBMb29rdXAgYmFzZSBhZGRyZXNzIG9yIGFjdGlvbiBudW1iZXIgZm9yIGN1cnJlbnQgc3RhdGUgKi9cbiAgICB2YXIgYmFzZSA9IHRibC5sZXhfYmFzZVtzdGF0ZV07XG4gICAgaWYgKGJhc2UgPCAwKSB7XG4gICAgICB2YXIgcGNfb2ZmID0gdGJsLmxleF9iYXNlX2NvZGVbc3RhdGVdO1xuICAgICAgY2FtbF9sZXhfcnVuX3RhZyh0YmwubGV4X2NvZGUsIHBjX29mZiwgbGV4YnVmW2xleF9tZW1dKTtcbiAgICAgIHJldHVybiAtYmFzZS0xO1xuICAgIH1cbiAgICAvKiBTZWUgaWYgaXQncyBhIGJhY2t0cmFjayBwb2ludCAqL1xuICAgIHZhciBiYWNrdHJrID0gdGJsLmxleF9iYWNrdHJrW3N0YXRlXTtcbiAgICBpZiAoYmFja3RyayA+PSAwKSB7XG4gICAgICB2YXIgcGNfb2ZmID0gdGJsLmxleF9iYWNrdHJrX2NvZGVbc3RhdGVdO1xuICAgICAgY2FtbF9sZXhfcnVuX3RhZyh0YmwubGV4X2NvZGUsIHBjX29mZiwgbGV4YnVmW2xleF9tZW1dKTtcbiAgICAgIGxleGJ1ZltsZXhfbGFzdF9wb3NdID0gbGV4YnVmW2xleF9jdXJyX3Bvc107XG4gICAgICBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9IGJhY2t0cms7XG4gICAgfVxuICAgIC8qIFNlZSBpZiB3ZSBuZWVkIGEgcmVmaWxsICovXG4gICAgaWYgKGxleGJ1ZltsZXhfY3Vycl9wb3NdID49IGxleGJ1ZltsZXhfYnVmZmVyX2xlbl0pe1xuICAgICAgaWYgKGxleGJ1ZltsZXhfZW9mX3JlYWNoZWRdID09IDApXG4gICAgICAgIHJldHVybiAtc3RhdGUgLSAxO1xuICAgICAgZWxzZVxuICAgICAgICBjID0gMjU2O1xuICAgIH1lbHNle1xuICAgICAgLyogUmVhZCBuZXh0IGlucHV0IGNoYXIgKi9cbiAgICAgIGMgPSBidWZmZXJbbGV4YnVmW2xleF9jdXJyX3Bvc11dO1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gKys7XG4gICAgfVxuICAgIC8qIERldGVybWluZSBuZXh0IHN0YXRlICovXG4gICAgdmFyIHBzdGF0ZSA9IHN0YXRlIDtcbiAgICBpZiAodGJsLmxleF9jaGVja1tiYXNlICsgY10gPT0gc3RhdGUpXG4gICAgICBzdGF0ZSA9IHRibC5sZXhfdHJhbnNbYmFzZSArIGNdO1xuICAgIGVsc2VcbiAgICAgIHN0YXRlID0gdGJsLmxleF9kZWZhdWx0W3N0YXRlXTtcbiAgICAvKiBJZiBubyB0cmFuc2l0aW9uIG9uIHRoaXMgY2hhciwgcmV0dXJuIHRvIGxhc3QgYmFja3RyYWNrIHBvaW50ICovXG4gICAgaWYgKHN0YXRlIDwgMCkge1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gPSBsZXhidWZbbGV4X2xhc3RfcG9zXTtcbiAgICAgIGlmIChsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9PSAtMSlcbiAgICAgICAgY2FtbF9mYWlsd2l0aChcImxleGluZzogZW1wdHkgdG9rZW5cIik7XG4gICAgICBlbHNlXG4gICAgICAgIHJldHVybiBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXTtcbiAgICB9ZWxzZXtcbiAgICAgIC8qIElmIHNvbWUgdHJhbnNpdGlvbiwgZ2V0IGFuZCBwZXJmb3JtIG1lbW9yeSBtb3ZlcyAqL1xuICAgICAgdmFyIGJhc2VfY29kZSA9IHRibC5sZXhfYmFzZV9jb2RlW3BzdGF0ZV0sIHBjX29mZjtcbiAgICAgIGlmICh0YmwubGV4X2NoZWNrX2NvZGVbYmFzZV9jb2RlICsgY10gPT0gcHN0YXRlKVxuICAgICAgICBwY19vZmYgPSB0YmwubGV4X3RyYW5zX2NvZGVbYmFzZV9jb2RlICsgY107XG4gICAgICBlbHNlXG4gICAgICAgIHBjX29mZiA9IHRibC5sZXhfZGVmYXVsdF9jb2RlW3BzdGF0ZV07XG4gICAgICBpZiAocGNfb2ZmID4gMClcbiAgICAgICAgY2FtbF9sZXhfcnVuX21lbVxuICAgICAgKHRibC5sZXhfY29kZSwgcGNfb2ZmLCBsZXhidWZbbGV4X21lbV0sIGxleGJ1ZltsZXhfY3Vycl9wb3NdKTtcbiAgICAgIC8qIEVyYXNlIHRoZSBFT0YgY29uZGl0aW9uIG9ubHkgaWYgdGhlIEVPRiBwc2V1ZG8tY2hhcmFjdGVyIHdhc1xuICAgICAgICAgY29uc3VtZWQgYnkgdGhlIGF1dG9tYXRvbiAoaS5lLiB0aGVyZSB3YXMgbm8gYmFja3RyYWNrIGFib3ZlKVxuICAgICAgKi9cbiAgICAgIGlmIChjID09IDI1NikgbGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPSAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBBcnJheVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X3N1YiBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2FycmF5X3N1YiAoYSwgaSwgbGVuKSB7XG4gIHZhciBhMiA9IG5ldyBBcnJheShsZW4rMSk7XG4gIGEyWzBdPTA7XG4gIGZvcih2YXIgaTIgPSAxLCBpMT0gaSsxOyBpMiA8PSBsZW47IGkyKyssaTErKyApe1xuICAgIGEyW2kyXT1hW2kxXTtcbiAgfVxuICByZXR1cm4gYTI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfYXBwZW5kIG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfYXBwZW5kKGExLCBhMikge1xuICB2YXIgbDEgPSBhMS5sZW5ndGgsIGwyID0gYTIubGVuZ3RoO1xuICB2YXIgbCA9IGwxK2wyLTFcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIGFbMF0gPSAwO1xuICB2YXIgaSA9IDEsaiA9IDE7XG4gIGZvcig7aTxsMTtpKyspIGFbaV09YTFbaV07XG4gIGZvcig7aTxsO2krKyxqKyspIGFbaV09YTJbal07XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2NvbmNhdCBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2FycmF5X2NvbmNhdChsKSB7XG4gIHZhciBhID0gWzBdO1xuICB3aGlsZSAobCAhPT0gMCkge1xuICAgIHZhciBiID0gbFsxXTtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGIubGVuZ3RoOyBpKyspIGEucHVzaChiW2ldKTtcbiAgICBsID0gbFsyXTtcbiAgfVxuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9ibGl0XG5mdW5jdGlvbiBjYW1sX2FycmF5X2JsaXQoYTEsIGkxLCBhMiwgaTIsIGxlbikge1xuICBpZiAoaTIgPD0gaTEpIHtcbiAgICBmb3IgKHZhciBqID0gMTsgaiA8PSBsZW47IGorKykgYTJbaTIgKyBqXSA9IGExW2kxICsgal07XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaiA9IGxlbjsgaiA+PSAxOyBqLS0pIGEyW2kyICsgal0gPSBhMVtpMSArIGpdO1xuICB9O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mbG9hdGFycmF5X2JsaXRcbmZ1bmN0aW9uIGNhbWxfZmxvYXRhcnJheV9ibGl0KGExLCBpMSwgYTIsIGkyLCBsZW4pIHtcbiAgaWYgKGkyIDw9IGkxKSB7XG4gICAgZm9yICh2YXIgaiA9IDE7IGogPD0gbGVuOyBqKyspIGEyW2kyICsgal0gPSBhMVtpMSArIGpdO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGogPSBsZW47IGogPj0gMTsgai0tKSBhMltpMiArIGpdID0gYTFbaTEgKyBqXTtcbiAgfTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vLy8vLy8vLy8vLy8gUGVydmFzaXZlXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X3NldCAobXV0YWJsZSwgY29uc3QsIG11dGFibGUpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2FycmF5X3NldCAoYXJyYXksIGluZGV4LCBuZXd2YWwpIHtcbiAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBhcnJheS5sZW5ndGggLSAxKSkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICBhcnJheVtpbmRleCsxXT1uZXd2YWw7IHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2dldCBtdXRhYmxlIChtdXRhYmxlLCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfZ2V0IChhcnJheSwgaW5kZXgpIHtcbiAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBhcnJheS5sZW5ndGggLSAxKSkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gYXJyYXlbaW5kZXgrMV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfZmlsbFxuZnVuY3Rpb24gY2FtbF9hcnJheV9maWxsKGFycmF5LCBvZnMsIGxlbiwgdil7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKyl7XG4gICAgYXJyYXlbb2ZzK2krMV0gPSB2O1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NoZWNrX2JvdW5kIChtdXRhYmxlLCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfY2hlY2tfYm91bmQgKGFycmF5LCBpbmRleCkge1xuICBpZiAoaW5kZXggPj4+IDAgPj0gYXJyYXkubGVuZ3RoIC0gMSkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gYXJyYXk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFrZV92ZWN0IGNvbnN0IChjb25zdCwgbXV0YWJsZSlcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfbWFrZV92ZWN0IChsZW4sIGluaXQpIHtcbiAgaWYgKGxlbiA8IDApIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGxlbiA9IGxlbiArIDEgfCAwO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4pO1xuICBiWzBdPTA7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgbGVuOyBpKyspIGJbaV0gPSBpbml0O1xuICByZXR1cm4gYjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tYWtlX2Zsb2F0X3ZlY3QgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9tYWtlX2Zsb2F0X3ZlY3QobGVuKXtcbiAgaWYgKGxlbiA8IDApIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGxlbiA9IGxlbiArIDEgfCAwO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4pO1xuICBiWzBdPTI1NDtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBsZW47IGkrKykgYltpXSA9IDA7XG4gIHJldHVybiBiXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfZmxvYXRhcnJheV9jcmVhdGUobGVuKXtcbiAgaWYgKGxlbiA8IDApIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGxlbiA9IGxlbiArIDEgfCAwO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4pO1xuICBiWzBdPTI1NDtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBsZW47IGkrKykgYltpXSA9IDA7XG4gIHJldHVybiBiXG59XG4iLCJcbi8vUHJvdmlkZXM6IE1sTXV0ZXhcbmZ1bmN0aW9uIE1sTXV0ZXgoKSB7XG4gIHRoaXMubG9ja2VkID0gZmFsc2Vcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9tdXRleF9uZXdcbi8vUmVxdWlyZXM6IE1sTXV0ZXhcbmZ1bmN0aW9uIGNhbWxfbWxfbXV0ZXhfbmV3KHVuaXQpIHtcbiAgcmV0dXJuIG5ldyBNbE11dGV4KCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfbXV0ZXhfbG9ja1xuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9tbF9tdXRleF9sb2NrKHQpIHtcbiAgaWYodC5sb2NrZWQpXG4gICAgY2FtbF9mYWlsd2l0aChcIk11dGV4LmxvY2s6IG11dGV4IGFscmVhZHkgbG9ja2VkLiBDYW5ub3Qgd2FpdC5cIik7XG4gIGVsc2UgdC5sb2NrZWQgPSB0cnVlO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9tdXRleF90cnlfbG9ja1xuZnVuY3Rpb24gY2FtbF9tbF9tdXRleF90cnlfbG9jayh0KSB7XG4gIGlmKCF0LmxvY2tlZCkge1xuICAgIHQubG9ja2VkID0gdHJ1ZTtcbiAgICByZXR1cm4gMTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9tdXRleF91bmxvY2tcbmZ1bmN0aW9uIGNhbWxfbWxfbXV0ZXhfdW5sb2NrKHQpIHtcbiAgdC5sb2NrZWQgPSBmYWxzZTtcbiAgcmV0dXJuIDA7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8gV2VhayBBUElcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2tleV9vZmZzZXRcbnZhciBjYW1sX2VwaGVfa2V5X29mZnNldCA9IDNcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG52YXIgY2FtbF9lcGhlX2RhdGFfb2Zmc2V0ID0gMlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfc2V0X2tleVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2VwaGVfa2V5X29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX3NldF9rZXkoeCwgaSwgdikge1xuICBpZihpIDwgMCB8fCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgPj0geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuc2V0XCIpO1xuICBpZiAodiBpbnN0YW5jZW9mIE9iamVjdCAmJiBnbG9iYWxUaGlzLldlYWtSZWYpIHtcbiAgICBpZih4WzFdLnJlZ2lzdGVyKSB4WzFdLnJlZ2lzdGVyKHYsIHVuZGVmaW5lZCwgdik7XG4gICAgeFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldID0gbmV3IGdsb2JhbFRoaXMuV2Vha1JlZih2KTtcbiAgfVxuICBlbHNlIHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXSA9IHY7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV91bnNldF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9lcGhlX2tleV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV91bnNldF9rZXkoeCwgaSkge1xuICBpZihpIDwgMCB8fCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgPj0geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuc2V0XCIpO1xuICBpZihnbG9iYWxUaGlzLldlYWtSZWYgJiYgeFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5XZWFrUmVmICYmIHhbMV0udW5yZWdpc3Rlcikge1xuICAgIHZhciBvbGQgPSB4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV0uZGVyZWYoKTtcbiAgICBpZihvbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGNvdW50ID0gMFxuICAgICAgZm9yKHZhciBqID0gY2FtbF9lcGhlX2tleV9vZmZzZXQ7IGogPCB4Lmxlbmd0aDsgaisrKXtcbiAgICAgICAgdmFyIGtleSA9IHhbal07XG4gICAgICAgIGlmKGtleSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuV2Vha1JlZil7XG4gICAgICAgICAga2V5ID0ga2V5LmRlcmVmKClcbiAgICAgICAgICBpZihrZXkgPT09IG9sZCkgY291bnQrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoY291bnQgPT0gMSkgeFsxXS51bnJlZ2lzdGVyKG9sZCk7XG4gICAgfVxuICB9XG4gIHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXSA9IHVuZGVmaW5lZDtcbiAgcmV0dXJuIDBcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX3dlYWtfY3JlYXRlLCBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9jcmVhdGUgKG4pIHtcbiAgdmFyIHggPSBjYW1sX3dlYWtfY3JlYXRlKG4pO1xuICByZXR1cm4geDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF93ZWFrX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXQsIGNhbWxfaW52YWxpZF9hcmd1bWVudCxjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfd2Vha19jcmVhdGUgKG4pIHtcbiAgaWYgKG4gPCAwKSBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5jcmVhdGVcIik7XG4gIHZhciB4ID0gWzI1MSxcImNhbWxfZXBoZV9saXN0X2hlYWRcIl07XG4gIHgubGVuZ3RoID0gY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBuO1xuICByZXR1cm4geDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF93ZWFrX3NldFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfc2V0X2tleSwgY2FtbF9lcGhlX3Vuc2V0X2tleVxuZnVuY3Rpb24gY2FtbF93ZWFrX3NldCh4LCBpLCB2KSB7XG4gIGlmKHYgPT0gMCkgY2FtbF9lcGhlX3Vuc2V0X2tleSh4LGkpXG4gIGVsc2UgY2FtbF9lcGhlX3NldF9rZXkoeCxpLHZbMV0pXG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2dldF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0LCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbi8vQWxpYXM6IGNhbWxfd2Vha19nZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9nZXRfa2V5KHgsIGkpIHtcbiAgaWYoaSA8IDAgfHwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpID49IHgubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJXZWFrLmdldF9rZXlcIik7XG4gIHZhciB3ZWFrID0geFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgXTtcbiAgaWYoZ2xvYmFsVGhpcy5XZWFrUmVmICYmIHdlYWsgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLldlYWtSZWYpIHdlYWsgPSB3ZWFrLmRlcmVmKCk7XG4gIHJldHVybiAod2Vhaz09PXVuZGVmaW5lZCk/MDpbMCwgd2Vha107XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZ2V0X2tleV9jb3B5XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZ2V0X2tleSxjYW1sX2VwaGVfa2V5X29mZnNldFxuLy9SZXF1aXJlczogY2FtbF9vYmpfZHVwLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbi8vQWxpYXM6IGNhbWxfd2Vha19nZXRfY29weVxuZnVuY3Rpb24gY2FtbF9lcGhlX2dldF9rZXlfY29weSh4LCBpKSB7XG4gIGlmKGkgPCAwIHx8IGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaSA+PSB4Lmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5nZXRfY29weVwiKTtcbiAgdmFyIHkgPSBjYW1sX2VwaGVfZ2V0X2tleSh4LCBpKTtcbiAgaWYgKHkgPT09IDApIHJldHVybiB5O1xuICB2YXIgeiA9IHlbMV07XG4gIGlmICh6IGluc3RhbmNlb2YgQXJyYXkpIHJldHVybiBbMCwgY2FtbF9vYmpfZHVwKHopXTtcbiAgcmV0dXJuIHk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9jaGVja19rZXkgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXRcbi8vQWxpYXM6IGNhbWxfd2Vha19jaGVja1xuZnVuY3Rpb24gY2FtbF9lcGhlX2NoZWNrX2tleSh4LCBpKSB7XG4gIHZhciB3ZWFrID0geFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldO1xuICBpZihnbG9iYWxUaGlzLldlYWtSZWYgJiYgd2VhayBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuV2Vha1JlZikgd2VhayA9IHdlYWsuZGVyZWYoKTtcbiAgaWYod2Vhaz09PXVuZGVmaW5lZClcbiAgICByZXR1cm4gMDtcbiAgZWxzZVxuICAgIHJldHVybiAxO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfYmxpdF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYmxpdFxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXRcbi8vQWxpYXM6IGNhbWxfd2Vha19ibGl0XG5mdW5jdGlvbiBjYW1sX2VwaGVfYmxpdF9rZXkoYTEsIGkxLCBhMiwgaTIsIGxlbikge1xuICAvLyBtaW51cyBvbmUgYmVjYXVzZSBjYW1sX2FycmF5X2JsaXQgd29ya3Mgb24gb2NhbWwgYXJyYXlcbiAgY2FtbF9hcnJheV9ibGl0KGExLCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkxIC0gMSxcbiAgICAgICAgICAgICAgICAgIGEyLCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkyIC0gMSxcbiAgICAgICAgICAgICAgICAgIGxlbik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfYmxpdF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXQsIGNhbWxfZXBoZV9zZXRfZGF0YSwgY2FtbF9lcGhlX3Vuc2V0X2RhdGFcbmZ1bmN0aW9uIGNhbWxfZXBoZV9ibGl0X2RhdGEoc3JjLCBkc3Qpe1xuICB2YXIgbiA9IHNyY1tjYW1sX2VwaGVfZGF0YV9vZmZzZXRdO1xuICBpZihuID09PSB1bmRlZmluZWQpIGNhbWxfZXBoZV91bnNldF9kYXRhKGRzdCk7XG4gIGVsc2UgY2FtbF9lcGhlX3NldF9kYXRhKGRzdCwgbik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZ2V0X2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX2dldF9kYXRhKHgpe1xuICBpZih4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gMDtcbiAgZWxzZVxuICAgIHJldHVybiBbMCwgeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2dldF9kYXRhX2NvcHlcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuLy9SZXF1aXJlczogY2FtbF9vYmpfZHVwXG5mdW5jdGlvbiBjYW1sX2VwaGVfZ2V0X2RhdGFfY29weSh4KXtcbiAgaWYoeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIDA7XG4gIGVsc2VcbiAgICByZXR1cm4gWzAsIGNhbWxfb2JqX2R1cCh4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0pXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX3NldF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXQsIGNhbWxfZXBoZV9rZXlfb2Zmc2V0LCBjYW1sX2VwaGVfdW5zZXRfZGF0YVxuZnVuY3Rpb24gY2FtbF9lcGhlX3NldF9kYXRhKHgsIGRhdGEpe1xuICBpZihnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5ICYmIGdsb2JhbFRoaXMuV2Vha1JlZikge1xuICAgIGlmKCEgKHhbMV0gaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5KSkge1xuICAgICAgeFsxXSA9IG5ldyBnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uICgpIHsgY2FtbF9lcGhlX3Vuc2V0X2RhdGEoeCkgfSk7XG4gICAgICAvL3JlZ2lzdGVyIGFsbCBrZXlzXG4gICAgICBmb3IodmFyIGogPSBjYW1sX2VwaGVfa2V5X29mZnNldDsgaiA8IHgubGVuZ3RoOyBqKyspe1xuICAgICAgICB2YXIga2V5ID0geFtqXTtcbiAgICAgICAgaWYoa2V5IGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5XZWFrUmVmKSB7XG4gICAgICAgICAga2V5ID0ga2V5LmRlcmVmKCk7XG4gICAgICAgICAgaWYoa2V5KSB4WzFdLnJlZ2lzdGVyKGtleSwgdW5kZWZpbmVkLCBrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9IGRhdGE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfdW5zZXRfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0LCBjYW1sX2VwaGVfa2V5X29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX3Vuc2V0X2RhdGEoeCl7XG4gIGlmKGdsb2JhbFRoaXMuRmluYWxpemF0aW9uUmVnaXN0cnkgJiYgZ2xvYmFsVGhpcy5XZWFrUmVmKSB7XG4gICAgaWYoeFsxXSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuRmluYWxpemF0aW9uUmVnaXN0cnkpe1xuICAgICAgLy91bnJlZ2lzdGVyIGFsbCBrZXlzXG4gICAgICBmb3IodmFyIGogPSBjYW1sX2VwaGVfa2V5X29mZnNldDsgaiA8IHgubGVuZ3RoOyBqKyspe1xuICAgICAgICB2YXIga2V5ID0geFtqXTtcbiAgICAgICAgaWYoa2V5IGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5XZWFrUmVmKSB7XG4gICAgICAgICAga2V5ID0ga2V5LmRlcmVmKCk7XG4gICAgICAgICAgaWYoa2V5KSB4WzFdLnVucmVnaXN0ZXIoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICB4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPSB1bmRlZmluZWQ7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfY2hlY2tfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfY2hlY2tfZGF0YSh4KXtcbiAgaWYoeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIDA7XG4gIGVsc2VcbiAgICByZXR1cm4gMTtcbn1cbiIsIlxuLy9Qcm92aWRlczogY2FtbF9seG1fbmV4dFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29yXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3hvclxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9hZGRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfbXVsXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF8xXG4vL1JlcXVpcmVzOiBjYW1sX2JhX3NldF8xXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9uZXdfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2x4bV9uZXh0KHYpIHtcbiAgZnVuY3Rpb24gc2hpZnRfbCh4LCBrKXtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0KHgsayk7XG4gIH1cbiAgZnVuY3Rpb24gc2hpZnRfcih4LCBrKXtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCh4LGspO1xuICB9XG4gIGZ1bmN0aW9uIG9yKGEsIGIpe1xuICAgIHJldHVybiBjYW1sX2ludDY0X29yKGEsYik7XG4gIH1cbiAgZnVuY3Rpb24geG9yKGEsIGIpe1xuICAgIHJldHVybiBjYW1sX2ludDY0X3hvcihhLGIpO1xuICB9XG4gIGZ1bmN0aW9uIGFkZChhLCBiKXtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF9hZGQoYSxiKTtcbiAgfVxuICBmdW5jdGlvbiBtdWwoYSwgYil7XG4gICAgcmV0dXJuIGNhbWxfaW50NjRfbXVsKGEsYik7XG4gIH1cbiAgZnVuY3Rpb24gcm90bCh4LCBrKSB7XG4gICAgcmV0dXJuIG9yKHNoaWZ0X2woeCxrKSxzaGlmdF9yICh4LCA2NCAtIGspKTtcbiAgfVxuICBmdW5jdGlvbiBnZXQoYSwgaSkge1xuICAgIHJldHVybiBjYW1sX2JhX2dldF8xKGEsIGkpO1xuICB9XG4gIGZ1bmN0aW9uIHNldChhLCBpLCB4KSB7XG4gICAgcmV0dXJuIGNhbWxfYmFfc2V0XzEoYSwgaSwgeCk7XG4gIH1cbiAgdmFyIE0gPSBjYW1sX2ludDY0X29mX3N0cmluZyhjYW1sX25ld19zdHJpbmcoXCIweGQxMzQyNTQzZGU4MmVmOTVcIikpO1xuICB2YXIgZGFiYSA9IGNhbWxfaW50NjRfb2Zfc3RyaW5nKGNhbWxfbmV3X3N0cmluZyhcIjB4ZGFiYTBiNmViMDkzMjJlM1wiKSk7XG4gIHZhciB6LCBxMCwgcTE7XG4gIHZhciBzdCA9IHY7XG4gIHZhciBhID0gZ2V0KHN0LDApO1xuICB2YXIgcyA9IGdldChzdCwxKTtcbiAgdmFyIHgwID0gZ2V0KHN0LDIpO1xuICB2YXIgeDEgPSBnZXQoc3QsMyk7XG4gIC8qIENvbWJpbmluZyBvcGVyYXRpb24gKi9cbiAgeiA9IGFkZChzLCB4MCk7XG4gIC8qIE1peGluZyBmdW5jdGlvbiAqL1xuICB6ID0gbXVsKHhvcih6LHNoaWZ0X3IoeiwzMikpLCBkYWJhKTtcbiAgeiA9IG11bCh4b3IoeixzaGlmdF9yKHosMzIpKSwgZGFiYSk7XG4gIHogPSB4b3IoeixzaGlmdF9yKHosMzIpKTtcbiAgLyogTENHIHVwZGF0ZSAqL1xuICBzZXQoc3QsIDEsIGFkZCAobXVsKHMsTSksIGEpKTtcbiAgLyogWEJHIHVwZGF0ZSAqL1xuICB2YXIgcTAgPSB4MFxuICB2YXIgcTEgPSB4MVxuICBxMSA9IHhvcihxMSxxMCk7XG4gIHEwID0gcm90bChxMCwgMjQpO1xuICBxMCA9IHhvcih4b3IocTAsIHExKSwgKHNoaWZ0X2wocTEsMTYpKSk7XG4gIHExID0gcm90bChxMSwgMzcpO1xuICBzZXQoc3QsIDIsIHEwKTtcbiAgc2V0KHN0LCAzLCBxMSk7XG4gIC8qIFJldHVybiByZXN1bHQgKi9cbiAgcmV0dXJuIHo7XG59XG4iLCJcbi8vUHJvdmlkZXM6IHpzdGRfZGVjb21wcmVzc1xudmFyIHpzdGRfZGVjb21wcmVzcyA9IChmdW5jdGlvbiAoKSB7XG5cInVzZSBzdHJpY3RcIjtcbi8vIGFsaWFzZXMgZm9yIHNob3J0ZXIgY29tcHJlc3NlZCBjb2RlIChtb3N0IG1pbmlmZXJzIGRvbid0IGRvIHRoaXMpXG52YXIgYWIgPSBBcnJheUJ1ZmZlciwgdTggPSBVaW50OEFycmF5LCB1MTYgPSBVaW50MTZBcnJheSwgaTE2ID0gSW50MTZBcnJheSwgdTMyID0gVWludDMyQXJyYXksIGkzMiA9IEludDMyQXJyYXk7XG52YXIgc2xjID0gZnVuY3Rpb24gKHYsIHMsIGUpIHtcbiAgICBpZiAodTgucHJvdG90eXBlLnNsaWNlKVxuICAgICAgICByZXR1cm4gdTgucHJvdG90eXBlLnNsaWNlLmNhbGwodiwgcywgZSk7XG4gICAgaWYgKHMgPT0gbnVsbCB8fCBzIDwgMClcbiAgICAgICAgcyA9IDA7XG4gICAgaWYgKGUgPT0gbnVsbCB8fCBlID4gdi5sZW5ndGgpXG4gICAgICAgIGUgPSB2Lmxlbmd0aDtcbiAgICB2YXIgbiA9IG5ldyB1OChlIC0gcyk7XG4gICAgbi5zZXQodi5zdWJhcnJheShzLCBlKSk7XG4gICAgcmV0dXJuIG47XG59O1xudmFyIGZpbGwgPSBmdW5jdGlvbiAodiwgbiwgcywgZSkge1xuICAgIGlmICh1OC5wcm90b3R5cGUuZmlsbClcbiAgICAgICAgcmV0dXJuIHU4LnByb3RvdHlwZS5maWxsLmNhbGwodiwgbiwgcywgZSk7XG4gICAgaWYgKHMgPT0gbnVsbCB8fCBzIDwgMClcbiAgICAgICAgcyA9IDA7XG4gICAgaWYgKGUgPT0gbnVsbCB8fCBlID4gdi5sZW5ndGgpXG4gICAgICAgIGUgPSB2Lmxlbmd0aDtcbiAgICBmb3IgKDsgcyA8IGU7ICsrcylcbiAgICAgICAgdltzXSA9IG47XG4gICAgcmV0dXJuIHY7XG59O1xudmFyIGNwdyA9IGZ1bmN0aW9uICh2LCB0LCBzLCBlKSB7XG4gICAgaWYgKHU4LnByb3RvdHlwZS5jb3B5V2l0aGluKVxuICAgICAgICByZXR1cm4gdTgucHJvdG90eXBlLmNvcHlXaXRoaW4uY2FsbCh2LCB0LCBzLCBlKTtcbiAgICBpZiAocyA9PSBudWxsIHx8IHMgPCAwKVxuICAgICAgICBzID0gMDtcbiAgICBpZiAoZSA9PSBudWxsIHx8IGUgPiB2Lmxlbmd0aClcbiAgICAgICAgZSA9IHYubGVuZ3RoO1xuICAgIHdoaWxlIChzIDwgZSkge1xuICAgICAgICB2W3QrK10gPSB2W3MrK107XG4gICAgfVxufTtcbi8qKlxuICogQ29kZXMgZm9yIGVycm9ycyBnZW5lcmF0ZWQgd2l0aGluIHRoaXMgbGlicmFyeVxuICovXG4vLyBlcnJvciBjb2Rlc1xudmFyIGVjID0gW1xuICAgICdpbnZhbGlkIHpzdGQgZGF0YScsXG4gICAgJ3dpbmRvdyBzaXplIHRvbyBsYXJnZSAoPjIwNDZNQiknLFxuICAgICdpbnZhbGlkIGJsb2NrIHR5cGUnLFxuICAgICdGU0UgYWNjdXJhY3kgdG9vIGhpZ2gnLFxuICAgICdtYXRjaCBkaXN0YW5jZSB0b28gZmFyIGJhY2snLFxuICAgICd1bmV4cGVjdGVkIEVPRidcbl07XG47XG52YXIgZXJyID0gZnVuY3Rpb24gKGluZCwgbXNnLCBudCkge1xuICAgIHZhciBlID0gbmV3IEVycm9yKG1zZyB8fCBlY1tpbmRdKTtcbiAgICBlLmNvZGUgPSBpbmQ7XG4gICAgaWYgKCFudClcbiAgICAgICAgdGhyb3cgZTtcbiAgICByZXR1cm4gZTtcbn07XG52YXIgcmIgPSBmdW5jdGlvbiAoZCwgYiwgbikge1xuICAgIHZhciBpID0gMCwgbyA9IDA7XG4gICAgZm9yICg7IGkgPCBuOyArK2kpXG4gICAgICAgIG8gfD0gZFtiKytdIDw8IChpIDw8IDMpO1xuICAgIHJldHVybiBvO1xufTtcbnZhciBiNCA9IGZ1bmN0aW9uIChkLCBiKSB7IHJldHVybiAoZFtiXSB8IChkW2IgKyAxXSA8PCA4KSB8IChkW2IgKyAyXSA8PCAxNikgfCAoZFtiICsgM10gPDwgMjQpKSA+Pj4gMDsgfTtcbi8vIHJlYWQgWnN0YW5kYXJkIGZyYW1lIGhlYWRlclxudmFyIHJ6ZmggPSBmdW5jdGlvbiAoZGF0LCB3KSB7XG4gICAgdmFyIG4zID0gZGF0WzBdIHwgKGRhdFsxXSA8PCA4KSB8IChkYXRbMl0gPDwgMTYpO1xuICAgIGlmIChuMyA9PSAweDJGQjUyOCAmJiBkYXRbM10gPT0gMjUzKSB7XG4gICAgICAgIC8vIFpzdGFuZGFyZFxuICAgICAgICB2YXIgZmxnID0gZGF0WzRdO1xuICAgICAgICAvLyAgICBzaW5nbGUgc2VnbWVudCAgICAgICBjaGVja3N1bSAgICAgICAgICAgICBkaWN0IGZsYWcgICAgIGZyYW1lIGNvbnRlbnQgZmxhZ1xuICAgICAgICB2YXIgc3MgPSAoZmxnID4+IDUpICYgMSwgY2MgPSAoZmxnID4+IDIpICYgMSwgZGYgPSBmbGcgJiAzLCBmY2YgPSBmbGcgPj4gNjtcbiAgICAgICAgaWYgKGZsZyAmIDgpXG4gICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgIC8vIGJ5dGVcbiAgICAgICAgdmFyIGJ0ID0gNiAtIHNzO1xuICAgICAgICAvLyBkaWN0IGJ5dGVzXG4gICAgICAgIHZhciBkYiA9IGRmID09IDMgPyA0IDogZGY7XG4gICAgICAgIC8vIGRpY3Rpb25hcnkgaWRcbiAgICAgICAgdmFyIGRpID0gcmIoZGF0LCBidCwgZGIpO1xuICAgICAgICBidCArPSBkYjtcbiAgICAgICAgLy8gZnJhbWUgc2l6ZSBieXRlc1xuICAgICAgICB2YXIgZnNiID0gZmNmID8gKDEgPDwgZmNmKSA6IHNzO1xuICAgICAgICAvLyBmcmFtZSBzb3VyY2Ugc2l6ZVxuICAgICAgICB2YXIgZnNzID0gcmIoZGF0LCBidCwgZnNiKSArICgoZmNmID09IDEpICYmIDI1Nik7XG4gICAgICAgIC8vIHdpbmRvdyBzaXplXG4gICAgICAgIHZhciB3cyA9IGZzcztcbiAgICAgICAgaWYgKCFzcykge1xuICAgICAgICAgICAgLy8gd2luZG93IGRlc2NyaXB0b3JcbiAgICAgICAgICAgIHZhciB3YiA9IDEgPDwgKDEwICsgKGRhdFs1XSA+PiAzKSk7XG4gICAgICAgICAgICB3cyA9IHdiICsgKHdiID4+IDMpICogKGRhdFs1XSAmIDcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3cyA+IDIxNDUzODY0OTYpXG4gICAgICAgICAgICBlcnIoMSk7XG4gICAgICAgIHZhciBidWYgPSBuZXcgdTgoKHcgPT0gMSA/IChmc3MgfHwgd3MpIDogdyA/IDAgOiB3cykgKyAxMik7XG4gICAgICAgIGJ1ZlswXSA9IDEsIGJ1Zls0XSA9IDQsIGJ1Zls4XSA9IDg7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBiOiBidCArIGZzYixcbiAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICBsOiAwLFxuICAgICAgICAgICAgZDogZGksXG4gICAgICAgICAgICB3OiAodyAmJiB3ICE9IDEpID8gdyA6IGJ1Zi5zdWJhcnJheSgxMiksXG4gICAgICAgICAgICBlOiB3cyxcbiAgICAgICAgICAgIG86IG5ldyBpMzIoYnVmLmJ1ZmZlciwgMCwgMyksXG4gICAgICAgICAgICB1OiBmc3MsXG4gICAgICAgICAgICBjOiBjYyxcbiAgICAgICAgICAgIG06IE1hdGgubWluKDEzMTA3Miwgd3MpXG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2UgaWYgKCgobjMgPj4gNCkgfCAoZGF0WzNdIDw8IDIwKSkgPT0gMHgxODREMkE1KSB7XG4gICAgICAgIC8vIHNraXBwYWJsZVxuICAgICAgICByZXR1cm4gYjQoZGF0LCA0KSArIDg7XG4gICAgfVxuICAgIGVycigwKTtcbn07XG4vLyBtb3N0IHNpZ25pZmljYW50IGJpdCBmb3Igbm9uemVyb1xudmFyIG1zYiA9IGZ1bmN0aW9uICh2YWwpIHtcbiAgICB2YXIgYml0cyA9IDA7XG4gICAgZm9yICg7ICgxIDw8IGJpdHMpIDw9IHZhbDsgKytiaXRzKVxuICAgICAgICA7XG4gICAgcmV0dXJuIGJpdHMgLSAxO1xufTtcbi8vIHJlYWQgZmluaXRlIHN0YXRlIGVudHJvcHlcbnZhciByZnNlID0gZnVuY3Rpb24gKGRhdCwgYnQsIG1hbCkge1xuICAgIC8vIHRhYmxlIHBvc1xuICAgIHZhciB0cG9zID0gKGJ0IDw8IDMpICsgNDtcbiAgICAvLyBhY2N1cmFjeSBsb2dcbiAgICB2YXIgYWwgPSAoZGF0W2J0XSAmIDE1KSArIDU7XG4gICAgaWYgKGFsID4gbWFsKVxuICAgICAgICBlcnIoMyk7XG4gICAgLy8gc2l6ZVxuICAgIHZhciBzeiA9IDEgPDwgYWw7XG4gICAgLy8gcHJvYmFiaWxpdGllcyBzeW1ib2xzICByZXBlYXQgICBpbmRleCAgIGhpZ2ggdGhyZXNob2xkXG4gICAgdmFyIHByb2JzID0gc3osIHN5bSA9IC0xLCByZSA9IC0xLCBpID0gLTEsIGh0ID0gc3o7XG4gICAgLy8gb3B0aW1pemF0aW9uOiBzaW5nbGUgYWxsb2NhdGlvbiBpcyBtdWNoIGZhc3RlclxuICAgIHZhciBidWYgPSBuZXcgYWIoNTEyICsgKHN6IDw8IDIpKTtcbiAgICB2YXIgZnJlcSA9IG5ldyBpMTYoYnVmLCAwLCAyNTYpO1xuICAgIC8vIHNhbWUgdmlldyBhcyBmcmVxXG4gICAgdmFyIGRzdGF0ZSA9IG5ldyB1MTYoYnVmLCAwLCAyNTYpO1xuICAgIHZhciBuc3RhdGUgPSBuZXcgdTE2KGJ1ZiwgNTEyLCBzeik7XG4gICAgdmFyIGJiMSA9IDUxMiArIChzeiA8PCAxKTtcbiAgICB2YXIgc3ltcyA9IG5ldyB1OChidWYsIGJiMSwgc3opO1xuICAgIHZhciBuYml0cyA9IG5ldyB1OChidWYsIGJiMSArIHN6KTtcbiAgICB3aGlsZSAoc3ltIDwgMjU1ICYmIHByb2JzID4gMCkge1xuICAgICAgICB2YXIgYml0cyA9IG1zYihwcm9icyArIDEpO1xuICAgICAgICB2YXIgY2J0ID0gdHBvcyA+PiAzO1xuICAgICAgICAvLyBtYXNrXG4gICAgICAgIHZhciBtc2sgPSAoMSA8PCAoYml0cyArIDEpKSAtIDE7XG4gICAgICAgIHZhciB2YWwgPSAoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSB8IChkYXRbY2J0ICsgMl0gPDwgMTYpKSA+PiAodHBvcyAmIDcpKSAmIG1zaztcbiAgICAgICAgLy8gbWFzayAoMSBmZXdlciBiaXQpXG4gICAgICAgIHZhciBtc2sxZmIgPSAoMSA8PCBiaXRzKSAtIDE7XG4gICAgICAgIC8vIG1heCBzbWFsbCB2YWx1ZVxuICAgICAgICB2YXIgbXN2ID0gbXNrIC0gcHJvYnMgLSAxO1xuICAgICAgICAvLyBzbWFsbCB2YWx1ZVxuICAgICAgICB2YXIgc3ZhbCA9IHZhbCAmIG1zazFmYjtcbiAgICAgICAgaWYgKHN2YWwgPCBtc3YpXG4gICAgICAgICAgICB0cG9zICs9IGJpdHMsIHZhbCA9IHN2YWw7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdHBvcyArPSBiaXRzICsgMTtcbiAgICAgICAgICAgIGlmICh2YWwgPiBtc2sxZmIpXG4gICAgICAgICAgICAgICAgdmFsIC09IG1zdjtcbiAgICAgICAgfVxuICAgICAgICBmcmVxWysrc3ltXSA9IC0tdmFsO1xuICAgICAgICBpZiAodmFsID09IC0xKSB7XG4gICAgICAgICAgICBwcm9icyArPSB2YWw7XG4gICAgICAgICAgICBzeW1zWy0taHRdID0gc3ltO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHByb2JzIC09IHZhbDtcbiAgICAgICAgaWYgKCF2YWwpIHtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICAvLyByZXBlYXQgYnl0ZVxuICAgICAgICAgICAgICAgIHZhciByYnQgPSB0cG9zID4+IDM7XG4gICAgICAgICAgICAgICAgcmUgPSAoKGRhdFtyYnRdIHwgKGRhdFtyYnQgKyAxXSA8PCA4KSkgPj4gKHRwb3MgJiA3KSkgJiAzO1xuICAgICAgICAgICAgICAgIHRwb3MgKz0gMjtcbiAgICAgICAgICAgICAgICBzeW0gKz0gcmU7XG4gICAgICAgICAgICB9IHdoaWxlIChyZSA9PSAzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3ltID4gMjU1IHx8IHByb2JzKVxuICAgICAgICBlcnIoMCk7XG4gICAgdmFyIHN5bXBvcyA9IDA7XG4gICAgLy8gc3ltIHN0ZXAgKGNvcHJpbWUgd2l0aCBzeiAtIGZvcm11bGEgZnJvbSB6c3RkIHNvdXJjZSlcbiAgICB2YXIgc3N0ZXAgPSAoc3ogPj4gMSkgKyAoc3ogPj4gMykgKyAzO1xuICAgIC8vIHN5bSBtYXNrXG4gICAgdmFyIHNtYXNrID0gc3ogLSAxO1xuICAgIGZvciAodmFyIHMgPSAwOyBzIDw9IHN5bTsgKytzKSB7XG4gICAgICAgIHZhciBzZiA9IGZyZXFbc107XG4gICAgICAgIGlmIChzZiA8IDEpIHtcbiAgICAgICAgICAgIGRzdGF0ZVtzXSA9IC1zZjtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoaXMgaXMgc3BsaXQgaW50byB0d28gbG9vcHMgaW4genN0ZCB0byBhdm9pZCBicmFuY2hpbmcsIGJ1dCBhcyBKUyBpcyBoaWdoZXItbGV2ZWwgdGhhdCBpcyB1bm5lY2Vzc2FyeVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc2Y7ICsraSkge1xuICAgICAgICAgICAgc3ltc1tzeW1wb3NdID0gcztcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBzeW1wb3MgPSAoc3ltcG9zICsgc3N0ZXApICYgc21hc2s7XG4gICAgICAgICAgICB9IHdoaWxlIChzeW1wb3MgPj0gaHQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIHNwcmVhZGluZyBzeW1ib2xzLCBzaG91bGQgYmUgemVybyBhZ2FpblxuICAgIGlmIChzeW1wb3MpXG4gICAgICAgIGVycigwKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgc3o7ICsraSkge1xuICAgICAgICAvLyBuZXh0IHN0YXRlXG4gICAgICAgIHZhciBucyA9IGRzdGF0ZVtzeW1zW2ldXSsrO1xuICAgICAgICAvLyBudW0gYml0c1xuICAgICAgICB2YXIgbmIgPSBuYml0c1tpXSA9IGFsIC0gbXNiKG5zKTtcbiAgICAgICAgbnN0YXRlW2ldID0gKG5zIDw8IG5iKSAtIHN6O1xuICAgIH1cbiAgICByZXR1cm4gWyh0cG9zICsgNykgPj4gMywge1xuICAgICAgICAgICAgYjogYWwsXG4gICAgICAgICAgICBzOiBzeW1zLFxuICAgICAgICAgICAgbjogbmJpdHMsXG4gICAgICAgICAgICB0OiBuc3RhdGVcbiAgICAgICAgfV07XG59O1xuLy8gcmVhZCBodWZmbWFuXG52YXIgcmh1ID0gZnVuY3Rpb24gKGRhdCwgYnQpIHtcbiAgICAvLyAgaW5kZXggIHdlaWdodCBjb3VudFxuICAgIHZhciBpID0gMCwgd2MgPSAtMTtcbiAgICAvLyAgICBidWZmZXIgICAgICAgICAgICAgaGVhZGVyIGJ5dGVcbiAgICB2YXIgYnVmID0gbmV3IHU4KDI5MiksIGhiID0gZGF0W2J0XTtcbiAgICAvLyBodWZmbWFuIHdlaWdodHNcbiAgICB2YXIgaHcgPSBidWYuc3ViYXJyYXkoMCwgMjU2KTtcbiAgICAvLyByYW5rIGNvdW50XG4gICAgdmFyIHJjID0gYnVmLnN1YmFycmF5KDI1NiwgMjY4KTtcbiAgICAvLyByYW5rIGluZGV4XG4gICAgdmFyIHJpID0gbmV3IHUxNihidWYuYnVmZmVyLCAyNjgpO1xuICAgIC8vIE5PVEU6IGF0IHRoaXMgcG9pbnQgYnQgaXMgMSBsZXNzIHRoYW4gZXhwZWN0ZWRcbiAgICBpZiAoaGIgPCAxMjgpIHtcbiAgICAgICAgLy8gZW5kIGJ5dGUsIGZzZSBkZWNvZGUgdGFibGVcbiAgICAgICAgdmFyIF9hID0gcmZzZShkYXQsIGJ0ICsgMSwgNiksIGVidCA9IF9hWzBdLCBmZHQgPSBfYVsxXTtcbiAgICAgICAgYnQgKz0gaGI7XG4gICAgICAgIHZhciBlcG9zID0gZWJ0IDw8IDM7XG4gICAgICAgIC8vIGxhc3QgYnl0ZVxuICAgICAgICB2YXIgbGIgPSBkYXRbYnRdO1xuICAgICAgICBpZiAoIWxiKVxuICAgICAgICAgICAgZXJyKDApO1xuICAgICAgICAvLyAgc3RhdGUxICAgc3RhdGUyICAgc3RhdGUxIGJpdHMgICBzdGF0ZTIgYml0c1xuICAgICAgICB2YXIgc3QxID0gMCwgc3QyID0gMCwgYnRyMSA9IGZkdC5iLCBidHIyID0gYnRyMTtcbiAgICAgICAgLy8gZnNlIHBvc1xuICAgICAgICAvLyBwcmUtaW5jcmVtZW50IHRvIGFjY291bnQgZm9yIG9yaWdpbmFsIGRlZmljaXQgb2YgMVxuICAgICAgICB2YXIgZnBvcyA9ICgrK2J0IDw8IDMpIC0gOCArIG1zYihsYik7XG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICAgIGZwb3MgLT0gYnRyMTtcbiAgICAgICAgICAgIGlmIChmcG9zIDwgZXBvcylcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIHZhciBjYnQgPSBmcG9zID4+IDM7XG4gICAgICAgICAgICBzdDEgKz0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChmcG9zICYgNykpICYgKCgxIDw8IGJ0cjEpIC0gMSk7XG4gICAgICAgICAgICBod1srK3djXSA9IGZkdC5zW3N0MV07XG4gICAgICAgICAgICBmcG9zIC09IGJ0cjI7XG4gICAgICAgICAgICBpZiAoZnBvcyA8IGVwb3MpXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYnQgPSBmcG9zID4+IDM7XG4gICAgICAgICAgICBzdDIgKz0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChmcG9zICYgNykpICYgKCgxIDw8IGJ0cjIpIC0gMSk7XG4gICAgICAgICAgICBod1srK3djXSA9IGZkdC5zW3N0Ml07XG4gICAgICAgICAgICBidHIxID0gZmR0Lm5bc3QxXTtcbiAgICAgICAgICAgIHN0MSA9IGZkdC50W3N0MV07XG4gICAgICAgICAgICBidHIyID0gZmR0Lm5bc3QyXTtcbiAgICAgICAgICAgIHN0MiA9IGZkdC50W3N0Ml07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCsrd2MgPiAyNTUpXG4gICAgICAgICAgICBlcnIoMCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB3YyA9IGhiIC0gMTI3O1xuICAgICAgICBmb3IgKDsgaSA8IHdjOyBpICs9IDIpIHtcbiAgICAgICAgICAgIHZhciBieXRlID0gZGF0WysrYnRdO1xuICAgICAgICAgICAgaHdbaV0gPSBieXRlID4+IDQ7XG4gICAgICAgICAgICBod1tpICsgMV0gPSBieXRlICYgMTU7XG4gICAgICAgIH1cbiAgICAgICAgKytidDtcbiAgICB9XG4gICAgLy8gd2VpZ2h0IGV4cG9uZW50aWFsIHN1bVxuICAgIHZhciB3ZXMgPSAwO1xuICAgIGZvciAoaSA9IDA7IGkgPCB3YzsgKytpKSB7XG4gICAgICAgIHZhciB3dCA9IGh3W2ldO1xuICAgICAgICAvLyBiaXRzIG11c3QgYmUgYXQgbW9zdCAxMSwgc2FtZSBhcyB3ZWlnaHRcbiAgICAgICAgaWYgKHd0ID4gMTEpXG4gICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgIHdlcyArPSB3dCAmJiAoMSA8PCAod3QgLSAxKSk7XG4gICAgfVxuICAgIC8vIG1heCBiaXRzXG4gICAgdmFyIG1iID0gbXNiKHdlcykgKyAxO1xuICAgIC8vIHRhYmxlIHNpemVcbiAgICB2YXIgdHMgPSAxIDw8IG1iO1xuICAgIC8vIHJlbWFpbmluZyBzdW1cbiAgICB2YXIgcmVtID0gdHMgLSB3ZXM7XG4gICAgLy8gbXVzdCBiZSBwb3dlciBvZiAyXG4gICAgaWYgKHJlbSAmIChyZW0gLSAxKSlcbiAgICAgICAgZXJyKDApO1xuICAgIGh3W3djKytdID0gbXNiKHJlbSkgKyAxO1xuICAgIGZvciAoaSA9IDA7IGkgPCB3YzsgKytpKSB7XG4gICAgICAgIHZhciB3dCA9IGh3W2ldO1xuICAgICAgICArK3JjW2h3W2ldID0gd3QgJiYgKG1iICsgMSAtIHd0KV07XG4gICAgfVxuICAgIC8vIGh1ZiBidWZcbiAgICB2YXIgaGJ1ZiA9IG5ldyB1OCh0cyA8PCAxKTtcbiAgICAvLyAgICBzeW1ib2xzICAgICAgICAgICAgICAgICAgICAgIG51bSBiaXRzXG4gICAgdmFyIHN5bXMgPSBoYnVmLnN1YmFycmF5KDAsIHRzKSwgbmIgPSBoYnVmLnN1YmFycmF5KHRzKTtcbiAgICByaVttYl0gPSAwO1xuICAgIGZvciAoaSA9IG1iOyBpID4gMDsgLS1pKSB7XG4gICAgICAgIHZhciBwdiA9IHJpW2ldO1xuICAgICAgICBmaWxsKG5iLCBpLCBwdiwgcmlbaSAtIDFdID0gcHYgKyByY1tpXSAqICgxIDw8IChtYiAtIGkpKSk7XG4gICAgfVxuICAgIGlmIChyaVswXSAhPSB0cylcbiAgICAgICAgZXJyKDApO1xuICAgIGZvciAoaSA9IDA7IGkgPCB3YzsgKytpKSB7XG4gICAgICAgIHZhciBiaXRzID0gaHdbaV07XG4gICAgICAgIGlmIChiaXRzKSB7XG4gICAgICAgICAgICB2YXIgY29kZSA9IHJpW2JpdHNdO1xuICAgICAgICAgICAgZmlsbChzeW1zLCBpLCBjb2RlLCByaVtiaXRzXSA9IGNvZGUgKyAoMSA8PCAobWIgLSBiaXRzKSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbYnQsIHtcbiAgICAgICAgICAgIG46IG5iLFxuICAgICAgICAgICAgYjogbWIsXG4gICAgICAgICAgICBzOiBzeW1zXG4gICAgICAgIH1dO1xufTtcbi8vIFRhYmxlcyBnZW5lcmF0ZWQgdXNpbmcgdGhpczpcbi8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tLzEwMWFycm93ei9hOTc5NDUyZDQzNTU5OTJjYmY4ZjI1N2NiZmZjOWVkZFxuLy8gZGVmYXVsdCBsaXRlcmFsIGxlbmd0aCB0YWJsZVxudmFyIGRsbHQgPSAvKiNfX1BVUkVfXyovIHJmc2UoLyojX19QVVJFX18qLyBuZXcgdTgoW1xuICAgIDgxLCAxNiwgOTksIDE0MCwgNDksIDE5OCwgMjQsIDk5LCAxMiwgMzMsIDE5NiwgMjQsIDk5LCAxMDIsIDEwMiwgMTM0LCA3MCwgMTQ2LCA0XG5dKSwgMCwgNilbMV07XG4vLyBkZWZhdWx0IG1hdGNoIGxlbmd0aCB0YWJsZVxudmFyIGRtbHQgPSAvKiNfX1BVUkVfXyovIHJmc2UoLyojX19QVVJFX18qLyBuZXcgdTgoW1xuICAgIDMzLCAyMCwgMTk2LCAyNCwgOTksIDE0MCwgMzMsIDEzMiwgMTYsIDY2LCA4LCAzMywgMTMyLCAxNiwgNjYsIDgsIDMzLCA2OCwgNjgsIDY4LCA2OCwgNjgsIDY4LCA2OCwgNjgsIDM2LCA5XG5dKSwgMCwgNilbMV07XG4vLyBkZWZhdWx0IG9mZnNldCBjb2RlIHRhYmxlXG52YXIgZG9jdCA9IC8qI19fUFVSRV9fICovIHJmc2UoLyojX19QVVJFX18qLyBuZXcgdTgoW1xuICAgIDMyLCAxMzIsIDE2LCA2NiwgMTAyLCA3MCwgNjgsIDY4LCA2OCwgNjgsIDM2LCA3MywgMlxuXSksIDAsIDUpWzFdO1xuLy8gYml0cyB0byBiYXNlbGluZVxudmFyIGIyYmwgPSBmdW5jdGlvbiAoYiwgcykge1xuICAgIHZhciBsZW4gPSBiLmxlbmd0aCwgYmwgPSBuZXcgaTMyKGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgICAgICBibFtpXSA9IHM7XG4gICAgICAgIHMgKz0gMSA8PCBiW2ldO1xuICAgIH1cbiAgICByZXR1cm4gYmw7XG59O1xuLy8gbGl0ZXJhbCBsZW5ndGggYml0c1xudmFyIGxsYiA9IC8qI19fUFVSRV9fICovIG5ldyB1OCgoIC8qI19fUFVSRV9fICovbmV3IGkzMihbXG4gICAgMCwgMCwgMCwgMCwgMTY4NDMwMDksIDUwNTI4NzcwLCAxMzQ2NzgwMjAsIDIwMjA1MDA1NywgMjY5NDIyMDkzXG5dKSkuYnVmZmVyLCAwLCAzNik7XG4vLyBsaXRlcmFsIGxlbmd0aCBiYXNlbGluZVxudmFyIGxsYmwgPSAvKiNfX1BVUkVfXyAqLyBiMmJsKGxsYiwgMCk7XG4vLyBtYXRjaCBsZW5ndGggYml0c1xudmFyIG1sYiA9IC8qI19fUFVSRV9fICovIG5ldyB1OCgoIC8qI19fUFVSRV9fICovbmV3IGkzMihbXG4gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTY4NDMwMDksIDUwNTI4NzcwLCAxMTc3NjkyMjAsIDE4NTIwNzA0OCwgMjUyNTc5MDg0LCAxNlxuXSkpLmJ1ZmZlciwgMCwgNTMpO1xuLy8gbWF0Y2ggbGVuZ3RoIGJhc2VsaW5lXG52YXIgbWxibCA9IC8qI19fUFVSRV9fICovIGIyYmwobWxiLCAzKTtcbi8vIGRlY29kZSBodWZmbWFuIHN0cmVhbVxudmFyIGRodSA9IGZ1bmN0aW9uIChkYXQsIG91dCwgaHUpIHtcbiAgICB2YXIgbGVuID0gZGF0Lmxlbmd0aCwgc3MgPSBvdXQubGVuZ3RoLCBsYiA9IGRhdFtsZW4gLSAxXSwgbXNrID0gKDEgPDwgaHUuYikgLSAxLCBlYiA9IC1odS5iO1xuICAgIGlmICghbGIpXG4gICAgICAgIGVycigwKTtcbiAgICB2YXIgc3QgPSAwLCBidHIgPSBodS5iLCBwb3MgPSAobGVuIDw8IDMpIC0gOCArIG1zYihsYikgLSBidHIsIGkgPSAtMTtcbiAgICBmb3IgKDsgcG9zID4gZWIgJiYgaSA8IHNzOykge1xuICAgICAgICB2YXIgY2J0ID0gcG9zID4+IDM7XG4gICAgICAgIHZhciB2YWwgPSAoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpIHwgKGRhdFtjYnQgKyAyXSA8PCAxNikpID4+IChwb3MgJiA3KTtcbiAgICAgICAgc3QgPSAoKHN0IDw8IGJ0cikgfCB2YWwpICYgbXNrO1xuICAgICAgICBvdXRbKytpXSA9IGh1LnNbc3RdO1xuICAgICAgICBwb3MgLT0gKGJ0ciA9IGh1Lm5bc3RdKTtcbiAgICB9XG4gICAgaWYgKHBvcyAhPSBlYiB8fCBpICsgMSAhPSBzcylcbiAgICAgICAgZXJyKDApO1xufTtcbi8vIGRlY29kZSBodWZmbWFuIHN0cmVhbSA0eFxuLy8gVE9ETzogdXNlIHdvcmtlcnMgdG8gcGFyYWxsZWxpemVcbnZhciBkaHU0ID0gZnVuY3Rpb24gKGRhdCwgb3V0LCBodSkge1xuICAgIHZhciBidCA9IDY7XG4gICAgdmFyIHNzID0gb3V0Lmxlbmd0aCwgc3oxID0gKHNzICsgMykgPj4gMiwgc3oyID0gc3oxIDw8IDEsIHN6MyA9IHN6MSArIHN6MjtcbiAgICBkaHUoZGF0LnN1YmFycmF5KGJ0LCBidCArPSBkYXRbMF0gfCAoZGF0WzFdIDw8IDgpKSwgb3V0LnN1YmFycmF5KDAsIHN6MSksIGh1KTtcbiAgICBkaHUoZGF0LnN1YmFycmF5KGJ0LCBidCArPSBkYXRbMl0gfCAoZGF0WzNdIDw8IDgpKSwgb3V0LnN1YmFycmF5KHN6MSwgc3oyKSwgaHUpO1xuICAgIGRodShkYXQuc3ViYXJyYXkoYnQsIGJ0ICs9IGRhdFs0XSB8IChkYXRbNV0gPDwgOCkpLCBvdXQuc3ViYXJyYXkoc3oyLCBzejMpLCBodSk7XG4gICAgZGh1KGRhdC5zdWJhcnJheShidCksIG91dC5zdWJhcnJheShzejMpLCBodSk7XG59O1xuLy8gcmVhZCBac3RhbmRhcmQgYmxvY2tcbnZhciByemIgPSBmdW5jdGlvbiAoZGF0LCBzdCwgb3V0KSB7XG4gICAgdmFyIF9hO1xuICAgIHZhciBidCA9IHN0LmI7XG4gICAgLy8gICAgYnl0ZSAwICAgICAgICBibG9jayB0eXBlXG4gICAgdmFyIGIwID0gZGF0W2J0XSwgYnR5cGUgPSAoYjAgPj4gMSkgJiAzO1xuICAgIHN0LmwgPSBiMCAmIDE7XG4gICAgdmFyIHN6ID0gKGIwID4+IDMpIHwgKGRhdFtidCArIDFdIDw8IDUpIHwgKGRhdFtidCArIDJdIDw8IDEzKTtcbiAgICAvLyBlbmQgYnl0ZSBmb3IgYmxvY2tcbiAgICB2YXIgZWJ0ID0gKGJ0ICs9IDMpICsgc3o7XG4gICAgaWYgKGJ0eXBlID09IDEpIHtcbiAgICAgICAgaWYgKGJ0ID49IGRhdC5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN0LmIgPSBidCArIDE7XG4gICAgICAgIGlmIChvdXQpIHtcbiAgICAgICAgICAgIGZpbGwob3V0LCBkYXRbYnRdLCBzdC55LCBzdC55ICs9IHN6KTtcbiAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbGwobmV3IHU4KHN6KSwgZGF0W2J0XSk7XG4gICAgfVxuICAgIGlmIChlYnQgPiBkYXQubGVuZ3RoKVxuICAgICAgICByZXR1cm47XG4gICAgaWYgKGJ0eXBlID09IDApIHtcbiAgICAgICAgc3QuYiA9IGVidDtcbiAgICAgICAgaWYgKG91dCkge1xuICAgICAgICAgICAgb3V0LnNldChkYXQuc3ViYXJyYXkoYnQsIGVidCksIHN0LnkpO1xuICAgICAgICAgICAgc3QueSArPSBzejtcbiAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNsYyhkYXQsIGJ0LCBlYnQpO1xuICAgIH1cbiAgICBpZiAoYnR5cGUgPT0gMikge1xuICAgICAgICAvLyAgICBieXRlIDMgICAgICAgIGxpdCBidHlwZSAgICAgc2l6ZSBmb3JtYXRcbiAgICAgICAgdmFyIGIzID0gZGF0W2J0XSwgbGJ0ID0gYjMgJiAzLCBzZiA9IChiMyA+PiAyKSAmIDM7XG4gICAgICAgIC8vIGxpdCBzcmMgc2l6ZSAgbGl0IGNtcCBzeiA0IHN0cmVhbXNcbiAgICAgICAgdmFyIGxzcyA9IGIzID4+IDQsIGxjcyA9IDAsIHM0ID0gMDtcbiAgICAgICAgaWYgKGxidCA8IDIpIHtcbiAgICAgICAgICAgIGlmIChzZiAmIDEpXG4gICAgICAgICAgICAgICAgbHNzIHw9IChkYXRbKytidF0gPDwgNCkgfCAoKHNmICYgMikgJiYgKGRhdFsrK2J0XSA8PCAxMikpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGxzcyA9IGIzID4+IDM7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzNCA9IHNmO1xuICAgICAgICAgICAgaWYgKHNmIDwgMilcbiAgICAgICAgICAgICAgICBsc3MgfD0gKChkYXRbKytidF0gJiA2MykgPDwgNCksIGxjcyA9IChkYXRbYnRdID4+IDYpIHwgKGRhdFsrK2J0XSA8PCAyKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKHNmID09IDIpXG4gICAgICAgICAgICAgICAgbHNzIHw9IChkYXRbKytidF0gPDwgNCkgfCAoKGRhdFsrK2J0XSAmIDMpIDw8IDEyKSwgbGNzID0gKGRhdFtidF0gPj4gMikgfCAoZGF0WysrYnRdIDw8IDYpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGxzcyB8PSAoZGF0WysrYnRdIDw8IDQpIHwgKChkYXRbKytidF0gJiA2MykgPDwgMTIpLCBsY3MgPSAoZGF0W2J0XSA+PiA2KSB8IChkYXRbKytidF0gPDwgMikgfCAoZGF0WysrYnRdIDw8IDEwKTtcbiAgICAgICAgfVxuICAgICAgICArK2J0O1xuICAgICAgICAvLyBhZGQgbGl0ZXJhbHMgdG8gZW5kIC0gY2FuIG5ldmVyIG92ZXJsYXAgd2l0aCBiYWNrcmVmZXJlbmNlcyBiZWNhdXNlIHVudXNlZCBsaXRlcmFscyBhbHdheXMgYXBwZW5kZWRcbiAgICAgICAgdmFyIGJ1ZiA9IG91dCA/IG91dC5zdWJhcnJheShzdC55LCBzdC55ICsgc3QubSkgOiBuZXcgdTgoc3QubSk7XG4gICAgICAgIC8vIHN0YXJ0aW5nIHBvaW50IGZvciBsaXRlcmFsc1xuICAgICAgICB2YXIgc3BsID0gYnVmLmxlbmd0aCAtIGxzcztcbiAgICAgICAgaWYgKGxidCA9PSAwKVxuICAgICAgICAgICAgYnVmLnNldChkYXQuc3ViYXJyYXkoYnQsIGJ0ICs9IGxzcyksIHNwbCk7XG4gICAgICAgIGVsc2UgaWYgKGxidCA9PSAxKVxuICAgICAgICAgICAgZmlsbChidWYsIGRhdFtidCsrXSwgc3BsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBodWZmbWFuIHRhYmxlXG4gICAgICAgICAgICB2YXIgaHUgPSBzdC5oO1xuICAgICAgICAgICAgaWYgKGxidCA9PSAyKSB7XG4gICAgICAgICAgICAgICAgdmFyIGh1ZCA9IHJodShkYXQsIGJ0KTtcbiAgICAgICAgICAgICAgICAvLyBzdWJ0cmFjdCBkZXNjcmlwdGlvbiBsZW5ndGhcbiAgICAgICAgICAgICAgICBsY3MgKz0gYnQgLSAoYnQgPSBodWRbMF0pO1xuICAgICAgICAgICAgICAgIHN0LmggPSBodSA9IGh1ZFsxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFodSlcbiAgICAgICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgICAgICAoczQgPyBkaHU0IDogZGh1KShkYXQuc3ViYXJyYXkoYnQsIGJ0ICs9IGxjcyksIGJ1Zi5zdWJhcnJheShzcGwpLCBodSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbnVtIHNlcXVlbmNlc1xuICAgICAgICB2YXIgbnMgPSBkYXRbYnQrK107XG4gICAgICAgIGlmIChucykge1xuICAgICAgICAgICAgaWYgKG5zID09IDI1NSlcbiAgICAgICAgICAgICAgICBucyA9IChkYXRbYnQrK10gfCAoZGF0W2J0KytdIDw8IDgpKSArIDB4N0YwMDtcbiAgICAgICAgICAgIGVsc2UgaWYgKG5zID4gMTI3KVxuICAgICAgICAgICAgICAgIG5zID0gKChucyAtIDEyOCkgPDwgOCkgfCBkYXRbYnQrK107XG4gICAgICAgICAgICAvLyBzeW1ib2wgY29tcHJlc3Npb24gbW9kZXNcbiAgICAgICAgICAgIHZhciBzY20gPSBkYXRbYnQrK107XG4gICAgICAgICAgICBpZiAoc2NtICYgMylcbiAgICAgICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgICAgICB2YXIgZHRzID0gW2RtbHQsIGRvY3QsIGRsbHRdO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDI7IGkgPiAtMTsgLS1pKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1kID0gKHNjbSA+PiAoKGkgPDwgMSkgKyAyKSkgJiAzO1xuICAgICAgICAgICAgICAgIGlmIChtZCA9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJsZSBidWZcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJidWYgPSBuZXcgdTgoWzAsIDAsIGRhdFtidCsrXV0pO1xuICAgICAgICAgICAgICAgICAgICBkdHNbaV0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzOiByYnVmLnN1YmFycmF5KDIsIDMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbjogcmJ1Zi5zdWJhcnJheSgwLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHQ6IG5ldyB1MTYocmJ1Zi5idWZmZXIsIDAsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYjogMFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtZCA9PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFjY3VyYWN5IGxvZyA4IGZvciBvZmZzZXRzLCA5IGZvciBvdGhlcnNcbiAgICAgICAgICAgICAgICAgICAgX2EgPSByZnNlKGRhdCwgYnQsIDkgLSAoaSAmIDEpKSwgYnQgPSBfYVswXSwgZHRzW2ldID0gX2FbMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1kID09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdC50KVxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyKDApO1xuICAgICAgICAgICAgICAgICAgICBkdHNbaV0gPSBzdC50W2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBfYiA9IHN0LnQgPSBkdHMsIG1sdCA9IF9iWzBdLCBvY3QgPSBfYlsxXSwgbGx0ID0gX2JbMl07XG4gICAgICAgICAgICB2YXIgbGIgPSBkYXRbZWJ0IC0gMV07XG4gICAgICAgICAgICBpZiAoIWxiKVxuICAgICAgICAgICAgICAgIGVycigwKTtcbiAgICAgICAgICAgIHZhciBzcG9zID0gKGVidCA8PCAzKSAtIDggKyBtc2IobGIpIC0gbGx0LmIsIGNidCA9IHNwb3MgPj4gMywgb3VidCA9IDA7XG4gICAgICAgICAgICB2YXIgbHN0ID0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChzcG9zICYgNykpICYgKCgxIDw8IGxsdC5iKSAtIDEpO1xuICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gb2N0LmIpID4+IDM7XG4gICAgICAgICAgICB2YXIgb3N0ID0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChzcG9zICYgNykpICYgKCgxIDw8IG9jdC5iKSAtIDEpO1xuICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gbWx0LmIpID4+IDM7XG4gICAgICAgICAgICB2YXIgbXN0ID0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChzcG9zICYgNykpICYgKCgxIDw8IG1sdC5iKSAtIDEpO1xuICAgICAgICAgICAgZm9yICgrK25zOyAtLW5zOykge1xuICAgICAgICAgICAgICAgIHZhciBsbGMgPSBsbHQuc1tsc3RdO1xuICAgICAgICAgICAgICAgIHZhciBsYnRyID0gbGx0Lm5bbHN0XTtcbiAgICAgICAgICAgICAgICB2YXIgbWxjID0gbWx0LnNbbXN0XTtcbiAgICAgICAgICAgICAgICB2YXIgbWJ0ciA9IG1sdC5uW21zdF07XG4gICAgICAgICAgICAgICAgdmFyIG9mYyA9IG9jdC5zW29zdF07XG4gICAgICAgICAgICAgICAgdmFyIG9idHIgPSBvY3Qubltvc3RdO1xuICAgICAgICAgICAgICAgIGNidCA9IChzcG9zIC09IG9mYykgPj4gMztcbiAgICAgICAgICAgICAgICB2YXIgb2ZwID0gMSA8PCBvZmM7XG4gICAgICAgICAgICAgICAgdmFyIG9mZiA9IG9mcCArICgoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSB8IChkYXRbY2J0ICsgMl0gPDwgMTYpIHwgKGRhdFtjYnQgKyAzXSA8PCAyNCkpID4+PiAoc3BvcyAmIDcpKSAmIChvZnAgLSAxKSk7XG4gICAgICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gbWxiW21sY10pID4+IDM7XG4gICAgICAgICAgICAgICAgdmFyIG1sID0gbWxibFttbGNdICsgKCgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpIHwgKGRhdFtjYnQgKyAyXSA8PCAxNikpID4+IChzcG9zICYgNykpICYgKCgxIDw8IG1sYlttbGNdKSAtIDEpKTtcbiAgICAgICAgICAgICAgICBjYnQgPSAoc3BvcyAtPSBsbGJbbGxjXSkgPj4gMztcbiAgICAgICAgICAgICAgICB2YXIgbGwgPSBsbGJsW2xsY10gKyAoKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkgfCAoZGF0W2NidCArIDJdIDw8IDE2KSkgPj4gKHNwb3MgJiA3KSkgJiAoKDEgPDwgbGxiW2xsY10pIC0gMSkpO1xuICAgICAgICAgICAgICAgIGNidCA9IChzcG9zIC09IGxidHIpID4+IDM7XG4gICAgICAgICAgICAgICAgbHN0ID0gbGx0LnRbbHN0XSArICgoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSkgPj4gKHNwb3MgJiA3KSkgJiAoKDEgPDwgbGJ0cikgLSAxKSk7XG4gICAgICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gbWJ0cikgPj4gMztcbiAgICAgICAgICAgICAgICBtc3QgPSBtbHQudFttc3RdICsgKCgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpKSA+PiAoc3BvcyAmIDcpKSAmICgoMSA8PCBtYnRyKSAtIDEpKTtcbiAgICAgICAgICAgICAgICBjYnQgPSAoc3BvcyAtPSBvYnRyKSA+PiAzO1xuICAgICAgICAgICAgICAgIG9zdCA9IG9jdC50W29zdF0gKyAoKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChzcG9zICYgNykpICYgKCgxIDw8IG9idHIpIC0gMSkpO1xuICAgICAgICAgICAgICAgIGlmIChvZmYgPiAzKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0Lm9bMl0gPSBzdC5vWzFdO1xuICAgICAgICAgICAgICAgICAgICBzdC5vWzFdID0gc3Qub1swXTtcbiAgICAgICAgICAgICAgICAgICAgc3Qub1swXSA9IG9mZiAtPSAzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlkeCA9IG9mZiAtIChsbCAhPSAwKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlkeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2ZmID0gaWR4ID09IDMgPyBzdC5vWzBdIC0gMSA6IHN0Lm9baWR4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZHggPiAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0Lm9bMl0gPSBzdC5vWzFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Qub1sxXSA9IHN0Lm9bMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBzdC5vWzBdID0gb2ZmO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZiA9IHN0Lm9bMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGw7ICsraSkge1xuICAgICAgICAgICAgICAgICAgICBidWZbb3VidCArIGldID0gYnVmW3NwbCArIGldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvdWJ0ICs9IGxsLCBzcGwgKz0gbGw7XG4gICAgICAgICAgICAgICAgdmFyIHN0aW4gPSBvdWJ0IC0gb2ZmO1xuICAgICAgICAgICAgICAgIGlmIChzdGluIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbGVuID0gLXN0aW47XG4gICAgICAgICAgICAgICAgICAgIHZhciBicyA9IHN0LmUgKyBzdGluO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGVuID4gbWwpXG4gICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSBtbDtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmW291YnQgKyBpXSA9IHN0LndbYnMgKyBpXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvdWJ0ICs9IGxlbiwgbWwgLT0gbGVuLCBzdGluID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtbDsgKytpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1ZltvdWJ0ICsgaV0gPSBidWZbc3RpbiArIGldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvdWJ0ICs9IG1sO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG91YnQgIT0gc3BsKSB7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHNwbCA8IGJ1Zi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmW291YnQrK10gPSBidWZbc3BsKytdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBvdWJ0ID0gYnVmLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChvdXQpXG4gICAgICAgICAgICAgICAgc3QueSArPSBvdWJ0O1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGJ1ZiA9IHNsYyhidWYsIDAsIG91YnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKG91dCkge1xuICAgICAgICAgICAgICAgIHN0LnkgKz0gbHNzO1xuICAgICAgICAgICAgICAgIGlmIChzcGwpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsc3M7ICsraSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmW2ldID0gYnVmW3NwbCArIGldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoc3BsKVxuICAgICAgICAgICAgICAgIGJ1ZiA9IHNsYyhidWYsIHNwbCk7XG4gICAgICAgIH1cbiAgICAgICAgc3QuYiA9IGVidDtcbiAgICAgICAgcmV0dXJuIGJ1ZjtcbiAgICB9XG4gICAgZXJyKDIpO1xufTtcbi8vIGNvbmNhdFxudmFyIGNjdCA9IGZ1bmN0aW9uIChidWZzLCBvbCkge1xuICAgIGlmIChidWZzLmxlbmd0aCA9PSAxKVxuICAgICAgICByZXR1cm4gYnVmc1swXTtcbiAgICB2YXIgYnVmID0gbmV3IHU4KG9sKTtcbiAgICBmb3IgKHZhciBpID0gMCwgYiA9IDA7IGkgPCBidWZzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHZhciBjaGsgPSBidWZzW2ldO1xuICAgICAgICBidWYuc2V0KGNoaywgYik7XG4gICAgICAgIGIgKz0gY2hrLmxlbmd0aDtcbiAgICB9XG4gICAgcmV0dXJuIGJ1Zjtcbn07XG4vKipcbiAqIERlY29tcHJlc3NlcyBac3RhbmRhcmQgZGF0YVxuICogQHBhcmFtIGRhdCBUaGUgaW5wdXQgZGF0YVxuICogQHBhcmFtIGJ1ZiBUaGUgb3V0cHV0IGJ1ZmZlci4gSWYgdW5zcGVjaWZpZWQsIHRoZSBmdW5jdGlvbiB3aWxsIGFsbG9jYXRlXG4gKiAgICAgICAgICAgIGV4YWN0bHkgZW5vdWdoIG1lbW9yeSB0byBmaXQgdGhlIGRlY29tcHJlc3NlZCBkYXRhLiBJZiB5b3VyXG4gKiAgICAgICAgICAgIGRhdGEgaGFzIG11bHRpcGxlIGZyYW1lcyBhbmQgeW91IGtub3cgdGhlIG91dHB1dCBzaXplLCBzcGVjaWZ5aW5nXG4gKiAgICAgICAgICAgIGl0IHdpbGwgeWllbGQgYmV0dGVyIHBlcmZvcm1hbmNlLlxuICogQHJldHVybnMgVGhlIGRlY29tcHJlc3NlZCBkYXRhXG4gKi9cbnJldHVybiBmdW5jdGlvbiBkZWNvbXByZXNzKGRhdCwgYnVmKSB7XG4gICAgdmFyIGJ0ID0gMCwgYnVmcyA9IFtdLCBuYiA9ICshYnVmLCBvbCA9IDA7XG4gICAgZm9yICg7IGRhdC5sZW5ndGg7KSB7XG4gICAgICAgIHZhciBzdCA9IHJ6ZmgoZGF0LCBuYiB8fCBidWYpO1xuICAgICAgICBpZiAodHlwZW9mIHN0ID09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBpZiAobmIpIHtcbiAgICAgICAgICAgICAgICBidWYgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmIChzdC53Lmxlbmd0aCA9PSBzdC51KSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1ZnMucHVzaChidWYgPSBzdC53KTtcbiAgICAgICAgICAgICAgICAgICAgb2wgKz0gc3QudTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBidWZzLnB1c2goYnVmKTtcbiAgICAgICAgICAgICAgICBzdC5lID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoOyAhc3QubDspIHtcbiAgICAgICAgICAgICAgICB2YXIgYmxrID0gcnpiKGRhdCwgc3QsIGJ1Zik7XG4gICAgICAgICAgICAgICAgaWYgKCFibGspXG4gICAgICAgICAgICAgICAgICAgIGVycig1KTtcbiAgICAgICAgICAgICAgICBpZiAoYnVmKVxuICAgICAgICAgICAgICAgICAgICBzdC5lID0gc3QueTtcbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmcy5wdXNoKGJsayk7XG4gICAgICAgICAgICAgICAgICAgIG9sICs9IGJsay5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNwdyhzdC53LCAwLCBibGsubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgc3Qudy5zZXQoYmxrLCBzdC53Lmxlbmd0aCAtIGJsay5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ0ID0gc3QuYiArIChzdC5jICogNCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgYnQgPSBzdDtcbiAgICAgICAgZGF0ID0gZGF0LnN1YmFycmF5KGJ0KTtcbiAgICB9XG4gICAgcmV0dXJuIGNjdChidWZzLCBvbCk7XG59XG59KSAoKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgIEJlbm9pdCBWYXVnb24sIEVOU1RBICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBQYWRkaW5nIHBvc2l0aW9uLiAqKVxudHlwZSBwYWR0eSA9XG4gIHwgTGVmdCAgICgqIFRleHQgaXMgbGVmdCBqdXN0aWZpZWQgKCctJyBvcHRpb24pLiAgICAgICAgICAgICAgICopXG4gIHwgUmlnaHQgICgqIFRleHQgaXMgcmlnaHQganVzdGlmaWVkIChubyAnLScgb3B0aW9uKS4gICAgICAgICAgICopXG4gIHwgWmVyb3MgICgqIFRleHQgaXMgcmlnaHQganVzdGlmaWVkIGJ5IHplcm9zIChzZWUgJzAnIG9wdGlvbikuICopXG5cbigqKiopXG5cbigqIEludGVnZXIgY29udmVyc2lvbi4gKilcbnR5cGUgaW50X2NvbnYgPVxuICB8IEludF9kIHwgSW50X3BkIHwgSW50X3NkICAgICAgICAoKiAgJWQgfCAlK2QgfCAlIGQgICopXG4gIHwgSW50X2kgfCBJbnRfcGkgfCBJbnRfc2kgICAgICAgICgqICAlaSB8ICUraSB8ICUgaSAgKilcbiAgfCBJbnRfeCB8IEludF9DeCAgICAgICAgICAgICAgICAgKCogICV4IHwgJSN4ICAgICAgICAqKVxuICB8IEludF9YIHwgSW50X0NYICAgICAgICAgICAgICAgICAoKiAgJVggfCAlI1ggICAgICAgICopXG4gIHwgSW50X28gfCBJbnRfQ28gICAgICAgICAgICAgICAgICgqICAlbyB8ICUjbyAgICAgICAgKilcbiAgfCBJbnRfdSAgICAgICAgICAgICAgICAgICAgICAgICAgKCogICV1ICAgICAgICAgICAgICAqKVxuICB8IEludF9DZCB8IEludF9DaSB8IEludF9DdSAgICAgICAoKiAgJSNkIHwgJSNpIHwgJSN1ICopXG5cbigqIEZsb2F0IGNvbnZlcnNpb24uICopXG50eXBlIGZsb2F0X2ZsYWdfY29udiA9XG4gIHwgRmxvYXRfZmxhZ18gICAgICAgICAgICAgICAgICAgICgqICVbZmVFZ0dGaEhdICopXG4gIHwgRmxvYXRfZmxhZ19wICAgICAgICAgICAgICAgICAgICgqICUrW2ZlRWdHRmhIXSAqKVxuICB8IEZsb2F0X2ZsYWdfcyAgICAgICAgICAgICAgICAgICAoKiAlIFtmZUVnR0ZoSF0gKilcbnR5cGUgZmxvYXRfa2luZF9jb252ID1cbiAgfCBGbG9hdF9mICAgICAgICAgICAgICAgICAgICAgICAgKCogICVmIHwgJStmIHwgJSBmICAqKVxuICB8IEZsb2F0X2UgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJWUgfCAlK2UgfCAlIGUgICopXG4gIHwgRmxvYXRfRSAgICAgICAgICAgICAgICAgICAgICAgICgqICAlRSB8ICUrRSB8ICUgRSAgKilcbiAgfCBGbG9hdF9nICAgICAgICAgICAgICAgICAgICAgICAgKCogICVnIHwgJStnIHwgJSBnICAqKVxuICB8IEZsb2F0X0cgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJUcgfCAlK0cgfCAlIEcgICopXG4gIHwgRmxvYXRfRiAgICAgICAgICAgICAgICAgICAgICAgICgqICAlRiB8ICUrRiB8ICUgRiAgKilcbiAgfCBGbG9hdF9oICAgICAgICAgICAgICAgICAgICAgICAgKCogICVoIHwgJStoIHwgJSBoICAqKVxuICB8IEZsb2F0X0ggICAgICAgICAgICAgICAgICAgICAgICAoKiAgJUggfCAlK0ggfCAlIEggICopXG4gIHwgRmxvYXRfQ0YgICAgICAgICAgICAgICAgICAgICAgICgqICAlI0Z8ICUrI0Z8ICUgI0YgKilcbnR5cGUgZmxvYXRfY29udiA9IGZsb2F0X2ZsYWdfY29udiAqIGZsb2F0X2tpbmRfY29udlxuXG4oKioqKVxuXG4oKiBDaGFyIHNldHMgKHNlZSAlWy4uLl0pIGFyZSBiaXRtYXBzIGltcGxlbWVudGVkIGFzIDMyLWNoYXIgc3RyaW5ncy4gKilcbnR5cGUgY2hhcl9zZXQgPSBzdHJpbmdcblxuKCoqKilcblxuKCogQ291bnRlciB1c2VkIGluIFNjYW5mLiAqKVxudHlwZSBjb3VudGVyID1cbiAgfCBMaW5lX2NvdW50ZXIgICAgICgqICAlbCAgICAgICopXG4gIHwgQ2hhcl9jb3VudGVyICAgICAoKiAgJW4gICAgICAqKVxuICB8IFRva2VuX2NvdW50ZXIgICAgKCogICVOLCAlTCAgKilcblxuKCoqKilcblxuKCogUGFkZGluZyBvZiBzdHJpbmdzIGFuZCBudW1iZXJzLiAqKVxudHlwZSAoJ2EsICdiKSBwYWRkaW5nID1cbiAgKCogTm8gcGFkZGluZyAoZXg6IFwiJWRcIikgKilcbiAgfCBOb19wYWRkaW5nICA6ICgnYSwgJ2EpIHBhZGRpbmdcbiAgKCogTGl0ZXJhbCBwYWRkaW5nIChleDogXCIlOGRcIikgKilcbiAgfCBMaXRfcGFkZGluZyA6IHBhZHR5ICogaW50IC0+ICgnYSwgJ2EpIHBhZGRpbmdcbiAgKCogUGFkZGluZyBhcyBleHRyYSBhcmd1bWVudCAoZXg6IFwiJSpkXCIpICopXG4gIHwgQXJnX3BhZGRpbmcgOiBwYWR0eSAtPiAoaW50IC0+ICdhLCAnYSkgcGFkZGluZ1xuXG4oKiBTb21lIGZvcm1hdHMsIHN1Y2ggYXMgJV9kLFxuICAgb25seSBhY2NlcHQgYW4gb3B0aW9uYWwgbnVtYmVyIGFzIHBhZGRpbmcgb3B0aW9uIChubyBleHRyYSBhcmd1bWVudCkgKilcbnR5cGUgcGFkX29wdGlvbiA9IGludCBvcHRpb25cblxuKCogUHJlY2lzaW9uIG9mIGZsb2F0cyBhbmQgJzAnLXBhZGRpbmcgb2YgaW50ZWdlcnMuICopXG50eXBlICgnYSwgJ2IpIHByZWNpc2lvbiA9XG4gICgqIE5vIHByZWNpc2lvbiAoZXg6IFwiJWZcIikgKilcbiAgfCBOb19wcmVjaXNpb24gOiAoJ2EsICdhKSBwcmVjaXNpb25cbiAgKCogTGl0ZXJhbCBwcmVjaXNpb24gKGV4OiBcIiUuM2ZcIikgKilcbiAgfCBMaXRfcHJlY2lzaW9uIDogaW50IC0+ICgnYSwgJ2EpIHByZWNpc2lvblxuICAoKiBQcmVjaXNpb24gYXMgZXh0cmEgYXJndW1lbnQgKGV4OiBcIiUuKmZcIikgKilcbiAgfCBBcmdfcHJlY2lzaW9uIDogKGludCAtPiAnYSwgJ2EpIHByZWNpc2lvblxuXG4oKiBTb21lIGZvcm1hdHMsIHN1Y2ggYXMgJV9mLFxuICAgb25seSBhY2NlcHQgYW4gb3B0aW9uYWwgbnVtYmVyIGFzIHByZWNpc2lvbiBvcHRpb24gKG5vIGV4dHJhIGFyZ3VtZW50KSAqKVxudHlwZSBwcmVjX29wdGlvbiA9IGludCBvcHRpb25cblxuKCogc2VlIHRoZSBDdXN0b20gZm9ybWF0IGNvbWJpbmF0b3IgKilcbnR5cGUgKCdhLCAnYiwgJ2MpIGN1c3RvbV9hcml0eSA9XG4gIHwgQ3VzdG9tX3plcm8gOiAoJ2EsIHN0cmluZywgJ2EpIGN1c3RvbV9hcml0eVxuICB8IEN1c3RvbV9zdWNjIDogKCdhLCAnYiwgJ2MpIGN1c3RvbV9hcml0eSAtPlxuICAgICgnYSwgJ3ggLT4gJ2IsICd4IC0+ICdjKSBjdXN0b21fYXJpdHlcblxuKCoqKilcblxuKCogICAgICAgIFJlbGF0aW9uYWwgZm9ybWF0IHR5cGVzXG5cbkluIHRoZSBmaXJzdCBmb3JtYXQrZ2FkdHMgaW1wbGVtZW50YXRpb24sIHRoZSB0eXBlIGZvciAlKC4uJSkgaW4gdGhlXG5mbXQgR0FEVCB3YXMgYXMgZm9sbG93czpcblxufCBGb3JtYXRfc3Vic3QgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgcGFkX29wdGlvbiAqICgnZDEsICdxMSwgJ2QyLCAncTIpIHJlYWRlcl9uYl91bmlmaWVyICpcbiAgICAoJ3gsICdiLCAnYywgJ2QxLCAncTEsICd1KSBmbXR0eSAqXG4gICAgKCd1LCAnYiwgJ2MsICdxMSwgJ2UxLCAnZikgZm10IC0+XG4gICAgICAoKCd4LCAnYiwgJ2MsICdkMiwgJ3EyLCAndSkgZm9ybWF0NiAtPiAneCwgJ2IsICdjLCAnZDEsICdlMSwgJ2YpIGZtdFxuXG5Ob3RpY2UgdGhhdCB0aGUgJ3UgcGFyYW1ldGVyIGluICdmIHBvc2l0aW9uIGluIHRoZSBmb3JtYXQgYXJndW1lbnRcbigoJ3gsIC4uLCAndSkgZm9ybWF0NiAtPiAuLikgaXMgZXF1YWwgdG8gdGhlICd1IHBhcmFtZXRlciBpbiAnYVxucG9zaXRpb24gaW4gdGhlIGZvcm1hdCB0YWlsICgoJ3UsIC4uLCAnZikgZm10KS4gVGhpcyBtZWFucyB0aGF0IHRoZVxudHlwZSBvZiB0aGUgZXhwZWN0ZWQgZm9ybWF0IHBhcmFtZXRlciBkZXBlbmRzIG9mIHdoZXJlIHRoZSAlKC4uLiUpXG5hcmUgaW4gdGhlIGZvcm1hdCBzdHJpbmc6XG5cbiAgIyBQcmludGYucHJpbnRmIFwiJSglKVwiXG4gIC0gOiAodW5pdCwgb3V0X2NoYW5uZWwsIHVuaXQsICdfYSwgJ19hLCB1bml0KVxuICAgICAgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDYgLT4gdW5pdFxuICA9IDxmdW4+XG4gICMgUHJpbnRmLnByaW50ZiBcIiUoJSklZFwiXG4gIC0gOiAoaW50IC0+IHVuaXQsIG91dF9jaGFubmVsLCB1bml0LCAnX2EsICdfYSwgaW50IC0+IHVuaXQpXG4gICAgICBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NiAtPiBpbnQgLT4gdW5pdFxuICA9IDxmdW4+XG5cbk9uIHRoZSBjb250cmFyeSwgdGhlIGxlZ2FjeSB0eXBlciBnaXZlcyBhIGNsZXZlciB0eXBlIHRoYXQgZG9lcyBub3RcbmRlcGVuZCBvbiB0aGUgcG9zaXRpb24gb2YgJSguLiUpIGluIHRoZSBmb3JtYXQgc3RyaW5nLiBGb3IgZXhhbXBsZSxcbiUoJSkgd2lsbCBoYXZlIHRoZSBwb2x5bW9ycGhpYyB0eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKTogaXQgY2FuXG5iZSBjb25jYXRlbmF0ZWQgdG8gYW55IGZvcm1hdCB0eXBlLCBhbmQgb25seSBlbmZvcmNlcyB0aGUgY29uc3RyYWludFxudGhhdCBpdHMgJ2EgYW5kICdmIHBhcmFtZXRlcnMgYXJlIGVxdWFsIChubyBmb3JtYXQgYXJndW1lbnRzKSBhbmQgJ2RcbmFuZCAnZSBhcmUgZXF1YWwgKG5vIHJlYWRlciBhcmd1bWVudCkuXG5cblRoZSB3ZWFrZW5pbmcgb2YgdGhpcyBwYXJhbWV0ZXIgdHlwZSBpbiB0aGUgR0FEVCB2ZXJzaW9uIGJyb2tlIHVzZXJcbmNvZGUgKGluIGZhY3QgaXQgZXNzZW50aWFsbHkgbWFkZSAlKC4uLiUpIHVudXNhYmxlIGV4Y2VwdCBhdCB0aGUgbGFzdFxucG9zaXRpb24gb2YgYSBmb3JtYXQpLiBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIHdvdWxkIG5vdCB3b3JrXG5hbnltb3JlOlxuXG4gIGZ1biBzZXAgLT5cbiAgICBGb3JtYXQucHJpbnRmIFwiZm9vJSglKWJhciUoJSliYXpcIiBzZXAgc2VwXG5cbkFzIHRoZSB0eXBlLWNoZWNrZXIgd291bGQgcmVxdWlyZSB0d28gKmluY29tcGF0aWJsZSogdHlwZXMgZm9yIHRoZSAlKCUpXG5pbiBkaWZmZXJlbnQgcG9zaXRpb25zLlxuXG5UaGUgc29sdXRpb24gdG8gcmVnYWluIGEgZ2VuZXJhbCB0eXBlIGZvciAlKC4uJSkgaXMgdG8gZ2VuZXJhbGl6ZSB0aGlzXG50ZWNobmlxdWUsIG5vdCBvbmx5IG9uIHRoZSAnZCwgJ2UgcGFyYW1ldGVycywgYnV0IG9uIGFsbCBzaXhcbnBhcmFtZXRlcnMgb2YgYSBmb3JtYXQ6IHdlIGludHJvZHVjZSBhIFwicmVsYXRpb25hbFwiIHR5cGVcbiAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbndob3NlIHZhbHVlcyBhcmUgcHJvb2ZzIHRoYXQgKCdhMSwgLi4sICdmMSkgYW5kICgnYTIsIC4uLCAnZjIpIG1vcmFsbHlcbmNvcnJlc3BvbmQgdG8gdGhlIHNhbWUgZm9ybWF0IHR5cGU6ICdhMSBpcyBvYnRhaW5lZCBmcm9tICdmMSwnYjEsJ2MxXG5pbiB0aGUgZXhhY3Qgc2FtZSB3YXkgdGhhdCAnYTIgaXMgb2J0YWluZWQgZnJvbSAnZjIsJ2IyLCdjMiwgZXRjLlxuXG5Gb3IgZXhhbXBsZSwgdGhlIHJlbGF0aW9uIGJldHdlZW4gdHdvIGZvcm1hdCB0eXBlcyBiZWdpbm5pbmcgd2l0aCBhIENoYXJcbnBhcmFtZXRlciBpcyBhcyBmb2xsb3dzOlxuXG58IENoYXJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYyAgKilcbiAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgKGNoYXIgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgY2hhciAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuSW4gdGhlIGdlbmVyYWwgY2FzZSwgdGhlIHRlcm0gc3RydWN0dXJlIG9mIGZtdHR5X3JlbCBpcyAoYWxtb3N0WzFdKVxuaXNvbW9ycGhpYyB0byB0aGUgZm10dHkgb2YgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uOiBldmVyeVxuY29uc3RydWN0b3IgaXMgcmUtcmVhZCB3aXRoIGEgYmluYXJ5LCByZWxhdGlvbmFsIHR5cGUsIGluc3RlYWQgb2YgdGhlXG5wcmV2aW91cyB1bmFyeSB0eXBpbmcuIGZtdHR5IGNhbiB0aGVuIGJlIHJlLWRlZmluZWQgYXMgdGhlIGRpYWdvbmFsIG9mXG5mbXR0eV9yZWw6XG5cbiAgdHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgPVxuICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmLFxuICAgICAgICAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eV9yZWxcblxuT25jZSB3ZSBoYXZlIHRoaXMgZm10dHlfcmVsIHR5cGUgaW4gcGxhY2UsIHdlIGNhbiBnaXZlIHRoZSBtb3JlXG5nZW5lcmFsIHR5cGUgdG8gJSguLi4lKTpcblxufCBGb3JtYXRfc3Vic3QgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgcGFkX29wdGlvbiAqXG4gICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICdnMiwgJ2IsICdjLCAnajIsICdkLCAnYSkgZm10dHlfcmVsICpcbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMiwgJ2IsICdjLCAnajIsICdlLCAnZikgZm10XG5cbldlIGFjY2VwdCBhbnkgZm9ybWF0ICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NikgKHRoaXMgaXNcbmNvbXBsZXRlbHkgdW5yZWxhdGVkIHRvIHRoZSB0eXBlIG9mIHRoZSBjdXJyZW50IGZvcm1hdCksIGJ1dCBhbHNvXG5yZXF1aXJlIGEgcHJvb2YgdGhhdCB0aGlzIGZvcm1hdCBpcyBpbiByZWxhdGlvbiB0byBhbm90aGVyIGZvcm1hdCB0aGF0XG5pcyBjb25jYXRlbmFibGUgdG8gdGhlIGZvcm1hdCB0YWlsLiBXaGVuIGV4ZWN1dGluZyBhICUoLi4uJSkgZm9ybWF0XG4oaW4gY2FtbGludGVybmFsRm9ybWF0Lm1sOm1ha2VfcHJpbnRmIG9yIHNjYW5mLm1sOm1ha2Vfc2NhbmYpLCB3ZVxudHJhbnN0eXBlIHRoZSBmb3JtYXQgYWxvbmcgdGhpcyByZWxhdGlvbiB1c2luZyB0aGUgJ3JlY2FzdCcgZnVuY3Rpb25cbnRvIHRyYW5zcG9zZSBiZXR3ZWVuIHJlbGF0ZWQgZm9ybWF0IHR5cGVzLlxuXG4gIHZhbCByZWNhc3QgOlxuICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSkgZm10XG4gIC0+ICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIC0+ICgnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXRcblxuTk9URSBbMV06IHRoZSB0eXBpbmcgb2YgRm9ybWF0X3N1YnN0X3R5IHJlcXVpcmVzIG5vdCBvbmUgZm9ybWF0IHR5cGUsIGJ1dFxudHdvLCBvbmUgdG8gZXN0YWJsaXNoIHRoZSBsaW5rIGJldHdlZW4gdGhlIGZvcm1hdCBhcmd1bWVudCBhbmQgdGhlXG5maXJzdCBzaXggcGFyYW1ldGVycywgYW5kIHRoZSBvdGhlciBmb3IgdGhlIGxpbmsgYmV0d2VlbiB0aGUgZm9ybWF0XG5hcmd1bWVudCBhbmQgdGhlIGxhc3Qgc2l4IHBhcmFtZXRlcnMuXG5cbnwgRm9ybWF0X3N1YnN0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgJ2cxLCAnYjEsICdjMSwgJ2oxLCAnZDEsICdhMSkgZm10dHlfcmVsICpcbiAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgJ2cyLCAnYjIsICdjMiwgJ2oyLCAnZDIsICdhMikgZm10dHlfcmVsICpcbiAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMSwgJ2IxLCAnYzEsICdqMSwgJ2UxLCAnZjEsXG4gICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMiwgJ2IyLCAnYzIsICdqMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG5XaGVuIHdlIGdlbmVyYXRlIGEgZm9ybWF0IEFTVCwgd2UgZ2VuZXJhdGUgZXhhY3RseSB0aGUgc2FtZSB3aXRuZXNzXG5mb3IgYm90aCByZWxhdGlvbnMsIGFuZCB0aGUgd2l0bmVzcy1jb252ZXJzaW9uIGZ1bmN0aW9ucyBpblxuY2FtbGludGVybmFsRm9ybWF0IGRvIHJlbHkgb24gdGhpcyBpbnZhcmlhbnQuIEZvciBleGFtcGxlLCB0aGVcbmZ1bmN0aW9uIHRoYXQgcHJvdmVzIHRoYXQgdGhlIHJlbGF0aW9uIGlzIHRyYW5zaXRpdmVcblxuICB2YWwgdHJhbnMgOlxuICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICAtPiAoJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMixcbiAgICAgICdhMywgJ2IzLCAnYzMsICdkMywgJ2UzLCAnZjMpIGZtdHR5X3JlbFxuICAtPiAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICdhMywgJ2IzLCAnYzMsICdkMywgJ2UzLCAnZjMpIGZtdHR5X3JlbFxuXG5kb2VzIGFzc3VtZSB0aGF0IHRoZSB0d28gaW5wdXRzIGhhdmUgZXhhY3RseSB0aGUgc2FtZSB0ZXJtIHN0cnVjdHVyZVxuKGFuZCBpcyBvbmx5IGV2ZXJ5IHVzZWQgZm9yIGFyZ3VtZW50IHdpdG5lc3NlcyBvZiB0aGVcbkZvcm1hdF9zdWJzdF90eSBjb25zdHJ1Y3RvcikuXG4qKVxuXG4oKiBUeXBlIG9mIGEgYmxvY2sgdXNlZCBieSB0aGUgRm9ybWF0IHByZXR0eS1wcmludGVyLiAqKVxudHlwZSBibG9ja190eXBlID1cbiAgfCBQcF9oYm94ICAgKCogSG9yaXpvbnRhbCBibG9jayBubyBsaW5lIGJyZWFraW5nICopXG4gIHwgUHBfdmJveCAgICgqIFZlcnRpY2FsIGJsb2NrIGVhY2ggYnJlYWsgbGVhZHMgdG8gYSBuZXcgbGluZSAqKVxuICB8IFBwX2h2Ym94ICAoKiBIb3Jpem9udGFsLXZlcnRpY2FsIGJsb2NrOiBzYW1lIGFzIHZib3gsIGV4Y2VwdCBpZiB0aGlzIGJsb2NrXG4gICAgICAgICAgICAgICAgIGlzIHNtYWxsIGVub3VnaCB0byBmaXQgb24gYSBzaW5nbGUgbGluZSAqKVxuICB8IFBwX2hvdmJveCAoKiBIb3Jpem9udGFsIG9yIFZlcnRpY2FsIGJsb2NrOiBicmVha3MgbGVhZCB0byBuZXcgbGluZVxuICAgICAgICAgICAgICAgICBvbmx5IHdoZW4gbmVjZXNzYXJ5IHRvIHByaW50IHRoZSBjb250ZW50IG9mIHRoZSBibG9jayAqKVxuICB8IFBwX2JveCAgICAoKiBIb3Jpem9udGFsIG9yIEluZGVudCBibG9jazogYnJlYWtzIGxlYWQgdG8gbmV3IGxpbmVcbiAgICAgICAgICAgICAgICAgb25seSB3aGVuIG5lY2Vzc2FyeSB0byBwcmludCB0aGUgY29udGVudCBvZiB0aGUgYmxvY2ssIG9yXG4gICAgICAgICAgICAgICAgIHdoZW4gaXQgbGVhZHMgdG8gYSBuZXcgaW5kZW50YXRpb24gb2YgdGhlIGN1cnJlbnQgbGluZSAqKVxuICB8IFBwX2ZpdHMgICAoKiBJbnRlcm5hbCB1c2FnZTogd2hlbiBhIGJsb2NrIGZpdHMgb24gYSBzaW5nbGUgbGluZSAqKVxuXG4oKiBGb3JtYXR0aW5nIGVsZW1lbnQgdXNlZCBieSB0aGUgRm9ybWF0IHByZXR0eS1wcmludGVyLiAqKVxudHlwZSBmb3JtYXR0aW5nX2xpdCA9XG4gIHwgQ2xvc2VfYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBdICAgKilcbiAgfCBDbG9zZV90YWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQH0gICAqKVxuICB8IEJyZWFrIG9mIHN0cmluZyAqIGludCAqIGludCAgICAgICAgICAoKiBALCB8IEAgIHwgQDsgfCBAOzw+ICopXG4gIHwgRkZsdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEA/ICAgKilcbiAgfCBGb3JjZV9uZXdsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQFxcbiAgKilcbiAgfCBGbHVzaF9uZXdsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQC4gICAqKVxuICB8IE1hZ2ljX3NpemUgb2Ygc3RyaW5nICogaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAPG4+ICopXG4gIHwgRXNjYXBlZF9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBAICAgKilcbiAgfCBFc2NhcGVkX3BlcmNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQCUlICAqKVxuICB8IFNjYW5faW5kaWMgb2YgY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAWCAgICopXG5cbigqIEZvcm1hdHRpbmcgZWxlbWVudCB1c2VkIGJ5IHRoZSBGb3JtYXQgcHJldHR5LXByaW50ZXIuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXR0aW5nX2dlbiA9XG4gIHwgT3Blbl90YWcgOiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPiAgICAgICgqIEB7ICAgKilcbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0dGluZ19nZW5cbiAgfCBPcGVuX2JveCA6ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+ICAgICAgKCogQFsgICAqKVxuICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXR0aW5nX2dlblxuXG4oKioqKVxuXG4oKiBMaXN0IG9mIGZvcm1hdCB0eXBlIGVsZW1lbnRzLiAqKVxuKCogSW4gcGFydGljdWxhciB1c2VkIHRvIHJlcHJlc2VudCAlKC4uLiUpIGFuZCAley4uLiV9IGNvbnRlbnRzLiAqKVxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSA9XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmLFxuICAgICAgJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHlfcmVsXG5hbmQgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCA9XG4gIHwgQ2hhcl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVjICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoY2hhciAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGNoYXIgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgU3RyaW5nX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVzICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoc3RyaW5nIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgc3RyaW5nIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEludF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlZCAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGludCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGludCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBJbnQzMl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWxkICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChpbnQzMiAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGludDMyIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IE5hdGl2ZWludF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlbmQgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKG5hdGl2ZWludCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIG5hdGl2ZWludCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBJbnQ2NF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJUxkICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChpbnQ2NCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGludDY0IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEZsb2F0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlZiAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGZsb2F0IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgZmxvYXQgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgQm9vbF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVCICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoYm9vbCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGJvb2wgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbiAgfCBGb3JtYXRfYXJnX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXsuLi4lfSAqKVxuICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZtdHR5ICpcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMilcbiAgICAgICAgICAgZm10dHlfcmVsXG4gIHwgRm9ybWF0X3N1YnN0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAgICdnMSwgJ2IxLCAnYzEsICdqMSwgJ2QxLCAnYTEpIGZtdHR5X3JlbCAqXG4gICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgICAnZzIsICdiMiwgJ2MyLCAnajIsICdkMiwgJ2EyKSBmbXR0eV9yZWwgKlxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cxLCAnYjEsICdjMSwgJ2oxLCAnZTEsICdmMSxcbiAgICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzIsICdiMiwgJ2MyLCAnajIsICdlMiwgJ2YyKVxuICAgICAgICAgICBmbXR0eV9yZWxcblxuICAoKiBQcmludGYgYW5kIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3RvcnMuICopXG4gIHwgQWxwaGFfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVhICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoKCdiMSAtPiAneCAtPiAnYzEpIC0+ICd4IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgKCdiMiAtPiAneCAtPiAnYzIpIC0+ICd4IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IFRoZXRhX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAldCAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCgnYjEgLT4gJ2MxKSAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICgnYjIgLT4gJ2MyKSAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBBbnlfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFVzZWQgZm9yIGN1c3RvbSBmb3JtYXRzICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgneCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICd4IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG4gICgqIFNjYW5mIHNwZWNpZmljIGNvbnN0cnVjdG9yLiAqKVxuICB8IFJlYWRlcl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlciAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCd4IC0+ICdhMSwgJ2IxLCAnYzEsICgnYjEgLT4gJ3gpIC0+ICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ3ggLT4gJ2EyLCAnYjIsICdjMiwgKCdiMiAtPiAneCkgLT4gJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfciAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICgnYjEgLT4gJ3gpIC0+ICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgKCdiMiAtPiAneCkgLT4gJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbiAgfCBFbmRfb2ZfZm10dHkgOlxuICAgICAgKCdmMSwgJ2IxLCAnYzEsICdkMSwgJ2QxLCAnZjEsXG4gICAgICAgJ2YyLCAnYjIsICdjMiwgJ2QyLCAnZDIsICdmMikgZm10dHlfcmVsXG5cbigqKiopXG5cbigqIExpc3Qgb2YgZm9ybWF0IGVsZW1lbnRzLiAqKVxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgPVxuICB8IENoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVjICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChjaGFyIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IENhbWxfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVDICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChjaGFyIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IFN0cmluZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVzICopXG4gICAgICAoJ3gsIHN0cmluZyAtPiAnYSkgcGFkZGluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IENhbWxfc3RyaW5nIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVTICopXG4gICAgICAoJ3gsIHN0cmluZyAtPiAnYSkgcGFkZGluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEludCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbZGl4WHVvXSAqKVxuICAgICAgaW50X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBpbnQgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJbnQzMiA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlbFtkaXhYdW9dICopXG4gICAgICBpbnRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIGludDMyIC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgTmF0aXZlaW50IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJW5bZGl4WHVvXSAqKVxuICAgICAgaW50X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBuYXRpdmVpbnQgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJbnQ2NCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlTFtkaXhYdW9dICopXG4gICAgICBpbnRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIGludDY0IC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRmxvYXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVtmZUVnR0ZoSF0gKilcbiAgICAgIGZsb2F0X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBmbG9hdCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEJvb2wgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbYkJdICopXG4gICAgICAoJ3gsIGJvb2wgLT4gJ2EpIHBhZGRpbmcgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBGbHVzaCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlISAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBhYmMgKilcbiAgICAgIHN0cmluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IENoYXJfbGl0ZXJhbCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIHggKilcbiAgICAgIGNoYXIgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICB8IEZvcm1hdF9hcmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICV7Li4uJX0gKilcbiAgICAgIHBhZF9vcHRpb24gKiAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm10dHkgKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRm9ybWF0X3N1YnN0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgICAgcGFkX29wdGlvbiAqXG4gICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgICAnZzIsICdiLCAnYywgJ2oyLCAnZCwgJ2EpIGZtdHR5X3JlbCAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cyLCAnYiwgJ2MsICdqMiwgJ2UsICdmKSBmbXRcblxuICAoKiBQcmludGYgYW5kIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3Rvci4gKilcbiAgfCBBbHBoYSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYSAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoKCdiIC0+ICd4IC0+ICdjKSAtPiAneCAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBUaGV0YSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAldCAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoKCdiIC0+ICdjKSAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICAoKiBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3I6ICopXG4gIHwgRm9ybWF0dGluZ19saXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQF8gKilcbiAgICAgIGZvcm1hdHRpbmdfbGl0ICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRm9ybWF0dGluZ19nZW4gOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBfICopXG4gICAgICAoJ2ExLCAnYiwgJ2MsICdkMSwgJ2UxLCAnZjEpIGZvcm1hdHRpbmdfZ2VuICpcbiAgICAgICgnZjEsICdiLCAnYywgJ2UxLCAnZTIsICdmMikgZm10IC0+ICgnYTEsICdiLCAnYywgJ2QxLCAnZTIsICdmMikgZm10XG5cbiAgKCogU2NhbmYgc3BlY2lmaWMgY29uc3RydWN0b3JzOiAqKVxuICB8IFJlYWRlciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVyICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCAtPiAnYSwgJ2IsICdjLCAoJ2IgLT4gJ3gpIC0+ICdkLCAnZSwgJ2YpIGZtdFxuICB8IFNjYW5fY2hhcl9zZXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbLi4uXSAqKVxuICAgICAgcGFkX29wdGlvbiAqIGNoYXJfc2V0ICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoc3RyaW5nIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbbmxOTF0gKilcbiAgICAgIGNvdW50ZXIgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChpbnQgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgU2Nhbl9uZXh0X2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJTBjICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAoY2hhciAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJZ25vcmVkX3BhcmFtIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlXyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAneSwgJ3gpIGlnbm9yZWQgKiAoJ3gsICdiLCAnYywgJ3ksICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICAoKiBDdXN0b20gcHJpbnRpbmcgZm9ybWF0IChQUiM2NDUyLCBHUFIjMTQwKVxuXG4gICAgIFdlIGluY2x1ZGUgYSB0eXBlIEN1c3RvbSBvZiBcImN1c3RvbSBjb252ZXJ0ZXJzXCIsIHdoZXJlIGFuXG4gICAgIGFyYml0cmFyeSBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBjb252ZXJ0IG9uZSBvciBtb3JlXG4gICAgIGFyZ3VtZW50cy4gVGhlcmUgaXMgbm8gc3ludGF4IGZvciBjdXN0b20gY29udmVydGVycywgaXQgaXMgb25seVxuICAgICBpbnRlbmRlZCBmb3IgY3VzdG9tIHByb2Nlc3NvcnMgdGhhdCB3aXNoIHRvIHJlbHkgb24gdGhlXG4gICAgIHN0ZGxpYi1kZWZpbmVkIGZvcm1hdCBHQURUcy5cblxuICAgICBGb3IgaW5zdGFuY2UgYSBwcmUtcHJvY2Vzc29yIGNvdWxkIGNob29zZSB0byBpbnRlcnByZXQgc3RyaW5nc1xuICAgICBwcmVmaXhlZCB3aXRoIFtcIiFcIl0gYXMgZm9ybWF0IHN0cmluZ3Mgd2hlcmUgWyV7eyAuLi4gfX1dIGlzXG4gICAgIGEgc3BlY2lhbCBmb3JtIHRvIHBhc3MgYSB0b19zdHJpbmcgZnVuY3Rpb24sIHNvIHRoYXQgb25lIGNvdWxkXG4gICAgIHdyaXRlOlxuXG4gICAgIHtbXG4gICAgICAgdHlwZSB0ID0geyB4IDogaW50OyB5IDogaW50IH1cblxuICAgICAgIGxldCBzdHJpbmdfb2ZfdCB0ID0gUHJpbnRmLnNwcmludGYgXCJ7IHggPSAlZDsgeSA9ICVkIH1cIiB0LnggdC55XG5cbiAgICAgICBQcmludGYucHJpbnRmICFcInQgPSAle3tzdHJpbmdfb2ZfdH19XCIgeyB4ID0gNDI7IHkgPSA0MiB9XG4gICAgIF19XG4gICopXG4gIHwgQ3VzdG9tIDpcbiAgICAgICgnYSwgJ3gsICd5KSBjdXN0b21fYXJpdHkgKiAodW5pdCAtPiAneCkgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAoJ3ksICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgKCogZW5kIG9mIGEgZm9ybWF0IHNwZWNpZmljYXRpb24gKilcbiAgfCBFbmRfb2ZfZm9ybWF0IDpcbiAgICAgICAgKCdmLCAnYiwgJ2MsICdlLCAnZSwgJ2YpIGZtdFxuXG4oKioqKVxuXG4oKiBUeXBlIGZvciBpZ25vcmVkIHBhcmFtZXRlcnMgKHNlZSBcIiVfXCIpLiAqKVxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBpZ25vcmVkID1cbiAgfCBJZ25vcmVkX2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX2MgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9DICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfc3RyaW5nIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfcyAqKVxuICAgICAgcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfUyAqKVxuICAgICAgcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfaW50IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9pbnQzMiA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9sZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9uYXRpdmVpbnQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9uZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9pbnQ2NCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9MZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9mbG9hdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9mICopXG4gICAgICBwYWRfb3B0aW9uICogcHJlY19vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2Jvb2wgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX0IgKilcbiAgICAgIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX3suLi4lfSAqKVxuICAgICAgcGFkX29wdGlvbiAqICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmbXR0eSAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfKC4uLiUpICopXG4gICAgICBwYWRfb3B0aW9uICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9yZWFkZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9yICopXG4gICAgICAoJ2EsICdiLCAnYywgKCdiIC0+ICd4KSAtPiAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9bLi4uXSAqKVxuICAgICAgcGFkX29wdGlvbiAqIGNoYXJfc2V0IC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9bbmxOTF0gKilcbiAgICAgIGNvdW50ZXIgLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlXzBjICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuXG5hbmQgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPVxuICBGb3JtYXQgb2YgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAqIHN0cmluZ1xuXG5sZXQgcmVjIGVyYXNlX3JlbCA6IHR5cGUgYSBiIGMgZCBlIGYgZyBoIGkgaiBrIGwgLlxuICAoYSwgYiwgYywgZCwgZSwgZixcbiAgIGcsIGgsIGksIGosIGssIGwpIGZtdHR5X3JlbCAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHlcbj0gZnVuY3Rpb25cbiAgfCBDaGFyX3R5IHJlc3QgLT5cbiAgICBDaGFyX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBTdHJpbmdfdHkgcmVzdCAtPlxuICAgIFN0cmluZ190eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSW50X3R5IHJlc3QgLT5cbiAgICBJbnRfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEludDMyX3R5IHJlc3QgLT5cbiAgICBJbnQzMl90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSW50NjRfdHkgcmVzdCAtPlxuICAgIEludDY0X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAtPlxuICAgIE5hdGl2ZWludF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgRmxvYXRfdHkgcmVzdCAtPlxuICAgIEZsb2F0X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBCb29sX3R5IHJlc3QgLT5cbiAgICBCb29sX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBGb3JtYXRfYXJnX3R5ICh0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0eSwgZXJhc2VfcmVsIHJlc3QpXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIF90eTIsIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MSwgZXJhc2VfcmVsIHJlc3QpXG4gIHwgQWxwaGFfdHkgcmVzdCAtPlxuICAgIEFscGhhX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBUaGV0YV90eSByZXN0IC0+XG4gICAgVGhldGFfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEFueV90eSByZXN0IC0+XG4gICAgQW55X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBSZWFkZXJfdHkgcmVzdCAtPlxuICAgIFJlYWRlcl90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPlxuICAgIElnbm9yZWRfcmVhZGVyX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBFbmRfb2ZfZm10dHkgLT4gRW5kX29mX2ZtdHR5XG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0IHR5cGUgY29uY2F0ZW5hdGlvbiAqKVxuXG4oKiBDb25jYXRlbmF0ZSB0d28gZm9ybWF0IHR5cGVzLiAqKVxuKCogVXNlZCBieTpcbiAgICogcmVhZGVyX25iX3VuaWZpZXJfb2ZfZm10dHkgdG8gY291bnQgcmVhZGVycyBpbiBhbiBmbXR0eSxcbiAgICogU2NhbmYudGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyB0byBleHRyYWN0IHJlYWRlcnMgaW5zaWRlICUoLi4uJSksXG4gICAqIENhbWxpbnRlcm5hbEZvcm1hdC5mbXR0eV9vZl9pZ25vcmVkX2Zvcm1hdCB0byBleHRyYWN0IGZvcm1hdCB0eXBlLiAqKVxuXG4oKlxubGV0IHJlYyBjb25jYXRfZm10dHkgOiB0eXBlIGEgYiBjIGQgZSBmIGcgaCAuXG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICAgKGYsIGIsIGMsIGUsIGcsIGgpIGZtdHR5IC0+XG4gICAgKGEsIGIsIGMsIGQsIGcsIGgpIGZtdHR5ID1cbiopXG5sZXQgcmVjIGNvbmNhdF9mbXR0eSA6XG4gIHR5cGUgYTEgYjEgYzEgZDEgZTEgZjFcbiAgICAgICBhMiBiMiBjMiBkMiBlMiBmMlxuICAgICAgIGcxIGoxIGcyIGoyXG4gIC5cbiAgICAoZzEsIGIxLCBjMSwgajEsIGQxLCBhMSxcbiAgICAgZzIsIGIyLCBjMiwgajIsIGQyLCBhMikgZm10dHlfcmVsIC0+XG4gICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgIGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbCAtPlxuICAgIChnMSwgYjEsIGMxLCBqMSwgZTEsIGYxLFxuICAgICBnMiwgYjIsIGMyLCBqMiwgZTIsIGYyKSBmbXR0eV9yZWwgPVxuZnVuIGZtdHR5MSBmbXR0eTIgLT4gbWF0Y2ggZm10dHkxIHdpdGhcbiAgfCBDaGFyX3R5IHJlc3QgLT5cbiAgICBDaGFyX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgU3RyaW5nX3R5IHJlc3QgLT5cbiAgICBTdHJpbmdfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBJbnRfdHkgcmVzdCAtPlxuICAgIEludF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEludDMyX3R5IHJlc3QgLT5cbiAgICBJbnQzMl90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IE5hdGl2ZWludF90eSByZXN0IC0+XG4gICAgTmF0aXZlaW50X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgSW50NjRfdHkgcmVzdCAtPlxuICAgIEludDY0X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgRmxvYXRfdHkgcmVzdCAtPlxuICAgIEZsb2F0X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgQm9vbF90eSByZXN0IC0+XG4gICAgQm9vbF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEFscGhhX3R5IHJlc3QgLT5cbiAgICBBbHBoYV90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IFRoZXRhX3R5IHJlc3QgLT5cbiAgICBUaGV0YV90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEFueV90eSByZXN0IC0+XG4gICAgQW55X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgUmVhZGVyX3R5IHJlc3QgLT5cbiAgICBSZWFkZXJfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+XG4gICAgSWdub3JlZF9yZWFkZXJfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBGb3JtYXRfYXJnX3R5ICh0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0eSwgY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEVuZF9vZl9mbXR0eSAtPiBmbXR0eTJcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdCBjb25jYXRlbmF0aW9uICopXG5cbigqIENvbmNhdGVuYXRlIHR3byBmb3JtYXRzLiAqKVxubGV0IHJlYyBjb25jYXRfZm10IDogdHlwZSBhIGIgYyBkIGUgZiBnIGggLlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAoZiwgYiwgYywgZSwgZywgaCkgZm10IC0+XG4gICAgKGEsIGIsIGMsIGQsIGcsIGgpIGZtdCA9XG5mdW4gZm10MSBmbXQyIC0+IG1hdGNoIGZtdDEgd2l0aFxuICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIFN0cmluZyAocGFkLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIENhbWxfc3RyaW5nIChwYWQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgSW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIEludCAoaWNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgSW50MzIgKGljb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIEludDY0IChpY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBDaGFyIChyZXN0KSAtPlxuICAgIENoYXIgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgQ2FtbF9jaGFyIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBCb29sIChwYWQsIHJlc3QpIC0+XG4gICAgQm9vbCAocGFkLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBBbHBoYSByZXN0IC0+XG4gICAgQWxwaGEgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IFRoZXRhIHJlc3QgLT5cbiAgICBUaGV0YSAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQ3VzdG9tIChhcml0eSwgZiwgcmVzdCkgLT5cbiAgICBDdXN0b20gKGFyaXR5LCBmLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBSZWFkZXIgcmVzdCAtPlxuICAgIFJlYWRlciAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgRmx1c2ggcmVzdCAtPlxuICAgIEZsdXNoIChjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIC0+XG4gICAgU3RyaW5nX2xpdGVyYWwgKHN0ciwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIHJlc3QpIC0+XG4gICAgQ2hhcl9saXRlcmFsICAgKGNociwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBGb3JtYXRfYXJnIChwYWQsIGZtdHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmcgICAocGFkLCBmbXR0eSwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgRm9ybWF0X3N1YnN0IChwYWQsIGZtdHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9zdWJzdCAocGFkLCBmbXR0eSwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCByZXN0KSAtPlxuICAgIFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIHJlc3QpIC0+XG4gICAgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgU2Nhbl9uZXh0X2NoYXIgKHJlc3QpIC0+XG4gICAgU2Nhbl9uZXh0X2NoYXIgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgLT5cbiAgICBJZ25vcmVkX3BhcmFtIChpZ24sIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpIC0+XG4gICAgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCByZXN0KSAtPlxuICAgIEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IEVuZF9vZl9mb3JtYXQgLT5cbiAgICBmbXQyXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBHYWJyaWVsIFNjaGVyZXIsIHByb2pldCBQYXJ0b3V0LCBJTlJJQSBQYXJpcy1TYWNsYXkgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDIwIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIENhbWxpbnRlcm5hbEF0b21pYyBpcyBhIGRlcGVuZGVuY3kgb2YgU3RkbGliLCBzbyBpdCBpcyBjb21waWxlZCB3aXRoXG4gICAtbm9wZXJ2YXNpdmVzLiAqKVxuZXh0ZXJuYWwgKCA9PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxXCJcbmV4dGVybmFsICggKyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhZGRpbnRcIlxuZXh0ZXJuYWwgaWdub3JlIDogJ2EgLT4gdW5pdCA9IFwiJWlnbm9yZVwiXG5cbigqIFdlIGFyZSBub3QgcmV1c2luZyAoJ2EgcmVmKSBkaXJlY3RseSB0byBtYWtlIGl0IGVhc2llciB0byByZWFzb25cbiAgIGFib3V0IGF0b21pY2l0eSBpZiB3ZSB3aXNoIHRvOiBldmVuIGluIGEgc2VxdWVudGlhbCBpbXBsZW1lbnRhdGlvbixcbiAgIHNpZ25hbHMgYW5kIG90aGVyIGFzeW5jaHJvbm91cyBjYWxsYmFja3MgbWlnaHQgYnJlYWsgYXRvbWljaXR5LiAqKVxudHlwZSAnYSB0ID0ge211dGFibGUgdjogJ2F9XG5cbmxldCBtYWtlIHYgPSB7dn1cbmxldCBnZXQgciA9IHIudlxubGV0IHNldCByIHYgPSByLnYgPC0gdlxuXG4oKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgc2V0IHRvIG5ldmVyIGJlIGlubGluZWQ6IEZsYW1iZGEgaXNcbiAgIGFsbG93ZWQgdG8gbW92ZSBzdXJyb3VuZGluZyBjb2RlIGluc2lkZSB0aGUgY3JpdGljYWwgc2VjdGlvbixcbiAgIGluY2x1ZGluZyBhbGxvY2F0aW9ucy4gKilcblxubGV0W0BpbmxpbmUgbmV2ZXJdIGV4Y2hhbmdlIHIgdiA9XG4gICgqIEJFR0lOIEFUT01JQyAqKVxuICBsZXQgY3VyID0gci52IGluXG4gIHIudiA8LSB2O1xuICAoKiBFTkQgQVRPTUlDICopXG4gIGN1clxuXG5sZXRbQGlubGluZSBuZXZlcl0gY29tcGFyZV9hbmRfc2V0IHIgc2VlbiB2ID1cbiAgKCogQkVHSU4gQVRPTUlDICopXG4gIGxldCBjdXIgPSByLnYgaW5cbiAgaWYgY3VyID09IHNlZW4gdGhlbiAoXG4gICAgci52IDwtIHY7XG4gICAgKCogRU5EIEFUT01JQyAqKVxuICAgIHRydWVcbiAgKSBlbHNlXG4gICAgZmFsc2VcblxubGV0W0BpbmxpbmUgbmV2ZXJdIGZldGNoX2FuZF9hZGQgciBuID1cbiAgKCogQkVHSU4gQVRPTUlDICopXG4gIGxldCBjdXIgPSByLnYgaW5cbiAgci52IDwtIChjdXIgKyBuKTtcbiAgKCogRU5EIEFUT01JQyAqKVxuICBjdXJcblxubGV0IGluY3IgciA9IGlnbm9yZSAoZmV0Y2hfYW5kX2FkZCByIDEpXG5sZXQgZGVjciByID0gaWdub3JlIChmZXRjaF9hbmRfYWRkIHIgKC0xKSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogRXhjZXB0aW9ucyAqKVxuXG5leHRlcm5hbCByZWdpc3Rlcl9uYW1lZF92YWx1ZSA6IHN0cmluZyAtPiAnYSAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZVwiXG5cbmxldCAoKSA9XG4gICgqIGZvciBydW50aW1lL2ZhaWxfbmF0LmMgKilcbiAgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgXCJQZXJ2YXNpdmVzLmFycmF5X2JvdW5kX2Vycm9yXCJcbiAgICAoSW52YWxpZF9hcmd1bWVudCBcImluZGV4IG91dCBvZiBib3VuZHNcIilcblxuZXh0ZXJuYWwgcmFpc2UgOiBleG4gLT4gJ2EgPSBcIiVyYWlzZVwiXG5leHRlcm5hbCByYWlzZV9ub3RyYWNlIDogZXhuIC0+ICdhID0gXCIlcmFpc2Vfbm90cmFjZVwiXG5cbmxldCBmYWlsd2l0aCBzID0gcmFpc2UoRmFpbHVyZSBzKVxubGV0IGludmFsaWRfYXJnIHMgPSByYWlzZShJbnZhbGlkX2FyZ3VtZW50IHMpXG5cbmV4Y2VwdGlvbiBFeGl0XG5leGNlcHRpb24gTWF0Y2hfZmFpbHVyZSA9IE1hdGNoX2ZhaWx1cmVcbmV4Y2VwdGlvbiBBc3NlcnRfZmFpbHVyZSA9IEFzc2VydF9mYWlsdXJlXG5leGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCA9IEludmFsaWRfYXJndW1lbnRcbmV4Y2VwdGlvbiBGYWlsdXJlID0gRmFpbHVyZVxuZXhjZXB0aW9uIE5vdF9mb3VuZCA9IE5vdF9mb3VuZFxuZXhjZXB0aW9uIE91dF9vZl9tZW1vcnkgPSBPdXRfb2ZfbWVtb3J5XG5leGNlcHRpb24gU3RhY2tfb3ZlcmZsb3cgPSBTdGFja19vdmVyZmxvd1xuZXhjZXB0aW9uIFN5c19lcnJvciA9IFN5c19lcnJvclxuZXhjZXB0aW9uIEVuZF9vZl9maWxlID0gRW5kX29mX2ZpbGVcbmV4Y2VwdGlvbiBEaXZpc2lvbl9ieV96ZXJvID0gRGl2aXNpb25fYnlfemVyb1xuZXhjZXB0aW9uIFN5c19ibG9ja2VkX2lvID0gU3lzX2Jsb2NrZWRfaW9cbmV4Y2VwdGlvbiBVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZSA9IFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlXG5cbigqIENvbXBvc2l0aW9uIG9wZXJhdG9ycyAqKVxuXG5leHRlcm5hbCAoIHw+ICkgOiAnYSAtPiAoJ2EgLT4gJ2IpIC0+ICdiID0gXCIlcmV2YXBwbHlcIlxuZXh0ZXJuYWwgKCBAQCApIDogKCdhIC0+ICdiKSAtPiAnYSAtPiAnYiA9IFwiJWFwcGx5XCJcblxuKCogRGVidWdnaW5nICopXG5cbmV4dGVybmFsIF9fTE9DX18gOiBzdHJpbmcgPSBcIiVsb2NfTE9DXCJcbmV4dGVybmFsIF9fRklMRV9fIDogc3RyaW5nID0gXCIlbG9jX0ZJTEVcIlxuZXh0ZXJuYWwgX19MSU5FX18gOiBpbnQgPSBcIiVsb2NfTElORVwiXG5leHRlcm5hbCBfX01PRFVMRV9fIDogc3RyaW5nID0gXCIlbG9jX01PRFVMRVwiXG5leHRlcm5hbCBfX1BPU19fIDogc3RyaW5nICogaW50ICogaW50ICogaW50ID0gXCIlbG9jX1BPU1wiXG5leHRlcm5hbCBfX0ZVTkNUSU9OX18gOiBzdHJpbmcgPSBcIiVsb2NfRlVOQ1RJT05cIlxuXG5leHRlcm5hbCBfX0xPQ19PRl9fIDogJ2EgLT4gc3RyaW5nICogJ2EgPSBcIiVsb2NfTE9DXCJcbmV4dGVybmFsIF9fTElORV9PRl9fIDogJ2EgLT4gaW50ICogJ2EgPSBcIiVsb2NfTElORVwiXG5leHRlcm5hbCBfX1BPU19PRl9fIDogJ2EgLT4gKHN0cmluZyAqIGludCAqIGludCAqIGludCkgKiAnYSA9IFwiJWxvY19QT1NcIlxuXG4oKiBDb21wYXJpc29ucyAqKVxuXG5leHRlcm5hbCAoID0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5leHRlcm5hbCAoIDw+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbm90ZXF1YWxcIlxuZXh0ZXJuYWwgKCA8ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc3RoYW5cIlxuZXh0ZXJuYWwgKCA+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcnRoYW5cIlxuZXh0ZXJuYWwgKCA8PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3NlcXVhbFwiXG5leHRlcm5hbCAoID49ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcmVxdWFsXCJcbmV4dGVybmFsIGNvbXBhcmUgOiAnYSAtPiAnYSAtPiBpbnQgPSBcIiVjb21wYXJlXCJcblxubGV0IG1pbiB4IHkgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG5leHRlcm5hbCAoID09ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXFcIlxuZXh0ZXJuYWwgKCAhPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxXCJcblxuKCogQm9vbGVhbiBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIG5vdCA6IGJvb2wgLT4gYm9vbCA9IFwiJWJvb2xub3RcIlxuZXh0ZXJuYWwgKCAmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuZXh0ZXJuYWwgKCAmJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggb3IgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcbmV4dGVybmFsICggfHwgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcblxuKCogSW50ZWdlciBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsICggfi0gKSA6IGludCAtPiBpbnQgPSBcIiVuZWdpbnRcIlxuZXh0ZXJuYWwgKCB+KyApIDogaW50IC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHN1Y2MgOiBpbnQgLT4gaW50ID0gXCIlc3VjY2ludFwiXG5leHRlcm5hbCBwcmVkIDogaW50IC0+IGludCA9IFwiJXByZWRpbnRcIlxuZXh0ZXJuYWwgKCArICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCAoIC0gKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlc3ViaW50XCJcbmV4dGVybmFsICggKiApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtdWxpbnRcIlxuZXh0ZXJuYWwgKCAvICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWRpdmludFwiXG5leHRlcm5hbCAoIG1vZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtb2RpbnRcIlxuXG5sZXQgYWJzIHggPSBpZiB4ID49IDAgdGhlbiB4IGVsc2UgLXhcblxuZXh0ZXJuYWwgKCBsYW5kICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFuZGludFwiXG5leHRlcm5hbCAoIGxvciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVvcmludFwiXG5leHRlcm5hbCAoIGx4b3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIleG9yaW50XCJcblxubGV0IGxub3QgeCA9IHggbHhvciAoLTEpXG5cbmV4dGVybmFsICggbHNsICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzbGludFwiXG5leHRlcm5hbCAoIGxzciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc3JpbnRcIlxuZXh0ZXJuYWwgKCBhc3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYXNyaW50XCJcblxubGV0IG1heF9pbnQgPSAoLTEpIGxzciAxXG5sZXQgbWluX2ludCA9IG1heF9pbnQgKyAxXG5cbigqIEZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgKCB+LS4gKSA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlbmVnZmxvYXRcIlxuZXh0ZXJuYWwgKCB+Ky4gKSA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgKCArLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVhZGRmbG9hdFwiXG5leHRlcm5hbCAoIC0uICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJXN1YmZsb2F0XCJcbmV4dGVybmFsICggKi4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlbXVsZmxvYXRcIlxuZXh0ZXJuYWwgKCAvLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVkaXZmbG9hdFwiXG5leHRlcm5hbCAoICoqICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9wb3dlcl9mbG9hdFwiIFwicG93XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cF9mbG9hdFwiIFwiZXhwXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cG0xIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwbTFfZmxvYXRcIiBcImNhbWxfZXhwbTFcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NfZmxvYXRcIiBcImFjb3NcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5fZmxvYXRcIiBcImFzaW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5fZmxvYXRcIiBcImF0YW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuMl9mbG9hdFwiIFwiYXRhbjJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHlwb3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgPSBcImNhbWxfaHlwb3RfZmxvYXRcIiBcImNhbWxfaHlwb3RcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zX2Zsb2F0XCIgXCJjb3NcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc2hfZmxvYXRcIiBcImNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zaF9mbG9hdFwiIFwiY2FtbF9hY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2dfZmxvYXRcIiBcImxvZ1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxMCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzEwX2Zsb2F0XCIgXCJsb2cxMFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxcCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzFwX2Zsb2F0XCIgXCJjYW1sX2xvZzFwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Npbl9mbG9hdFwiIFwic2luXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5oX2Zsb2F0XCIgXCJzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbmhfZmxvYXRcIiBcImNhbWxfYXNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc3FydCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NxcnRfZmxvYXRcIiBcInNxcnRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuX2Zsb2F0XCIgXCJ0YW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3RhbmhfZmxvYXRcIiBcInRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuaF9mbG9hdFwiIFwiY2FtbF9hdGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjZWlsIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2VpbF9mbG9hdFwiIFwiY2VpbFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9vciA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Zsb29yX2Zsb2F0XCIgXCJmbG9vclwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhYnNfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFic2Zsb2F0XCJcbmV4dGVybmFsIGNvcHlzaWduIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2NvcHlzaWduX2Zsb2F0XCIgXCJjYW1sX2NvcHlzaWduXCJcbiAgICAgICAgICAgICAgICAgIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbW9kX2Zsb2F0XCIgXCJmbW9kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZyZXhwIDogZmxvYXQgLT4gZmxvYXQgKiBpbnQgPSBcImNhbWxfZnJleHBfZmxvYXRcIlxuZXh0ZXJuYWwgbGRleHAgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gKGludCBbQHVudGFnZ2VkXSkgLT4gKGZsb2F0IFtAdW5ib3hlZF0pID1cbiAgXCJjYW1sX2xkZXhwX2Zsb2F0XCIgXCJjYW1sX2xkZXhwX2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kZiA6IGZsb2F0IC0+IGZsb2F0ICogZmxvYXQgPSBcImNhbWxfbW9kZl9mbG9hdFwiXG5leHRlcm5hbCBmbG9hdCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgZmxvYXRfb2ZfaW50IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCB0cnVuY2F0ZSA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuZXh0ZXJuYWwgaW50X29mX2Zsb2F0IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5leHRlcm5hbCBmbG9hdF9vZl9iaXRzIDogaW50NjQgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c1wiIFwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzX3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxubGV0IGluZmluaXR5ID1cbiAgZmxvYXRfb2ZfYml0cyAweDdGX0YwXzAwXzAwXzAwXzAwXzAwXzAwTFxubGV0IG5lZ19pbmZpbml0eSA9XG4gIGZsb2F0X29mX2JpdHMgMHhGRl9GMF8wMF8wMF8wMF8wMF8wMF8wMExcbmxldCBuYW4gPVxuICBmbG9hdF9vZl9iaXRzIDB4N0ZfRjBfMDBfMDBfMDBfMDBfMDBfMDFMXG5sZXQgbWF4X2Zsb2F0ID1cbiAgZmxvYXRfb2ZfYml0cyAweDdGX0VGX0ZGX0ZGX0ZGX0ZGX0ZGX0ZGTFxubGV0IG1pbl9mbG9hdCA9XG4gIGZsb2F0X29mX2JpdHMgMHgwMF8xMF8wMF8wMF8wMF8wMF8wMF8wMExcbmxldCBlcHNpbG9uX2Zsb2F0ID1cbiAgZmxvYXRfb2ZfYml0cyAweDNDX0IwXzAwXzAwXzAwXzAwXzAwXzAwTFxuXG50eXBlIGZwY2xhc3MgPVxuICAgIEZQX25vcm1hbFxuICB8IEZQX3N1Ym5vcm1hbFxuICB8IEZQX3plcm9cbiAgfCBGUF9pbmZpbml0ZVxuICB8IEZQX25hblxuZXh0ZXJuYWwgY2xhc3NpZnlfZmxvYXQgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gZnBjbGFzcyA9XG4gIFwiY2FtbF9jbGFzc2lmeV9mbG9hdFwiIFwiY2FtbF9jbGFzc2lmeV9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cblxuKCogU3RyaW5nIGFuZCBieXRlIHNlcXVlbmNlIG9wZXJhdGlvbnMgLS0gbW9yZSBpbiBtb2R1bGVzIFN0cmluZyBhbmQgQnl0ZXMgKilcblxuZXh0ZXJuYWwgc3RyaW5nX2xlbmd0aCA6IHN0cmluZyAtPiBpbnQgPSBcIiVzdHJpbmdfbGVuZ3RoXCJcbmV4dGVybmFsIGJ5dGVzX2xlbmd0aCA6IGJ5dGVzIC0+IGludCA9IFwiJWJ5dGVzX2xlbmd0aFwiXG5leHRlcm5hbCBieXRlc19jcmVhdGUgOiBpbnQgLT4gYnl0ZXMgPSBcImNhbWxfY3JlYXRlX2J5dGVzXCJcbmV4dGVybmFsIHN0cmluZ19ibGl0IDogc3RyaW5nIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfc3RyaW5nXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGJ5dGVzX2JsaXQgOiBieXRlcyAtPiBpbnQgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9ibGl0X2J5dGVzXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGJ5dGVzX3Vuc2FmZV90b19zdHJpbmcgOiBieXRlcyAtPiBzdHJpbmcgPSBcIiVieXRlc190b19zdHJpbmdcIlxuXG5sZXQgKCBeICkgczEgczIgPVxuICBsZXQgbDEgPSBzdHJpbmdfbGVuZ3RoIHMxIGFuZCBsMiA9IHN0cmluZ19sZW5ndGggczIgaW5cbiAgbGV0IHMgPSBieXRlc19jcmVhdGUgKGwxICsgbDIpIGluXG4gIHN0cmluZ19ibGl0IHMxIDAgcyAwIGwxO1xuICBzdHJpbmdfYmxpdCBzMiAwIHMgbDEgbDI7XG4gIGJ5dGVzX3Vuc2FmZV90b19zdHJpbmcgc1xuXG4oKiBDaGFyYWN0ZXIgb3BlcmF0aW9ucyAtLSBtb3JlIGluIG1vZHVsZSBDaGFyICopXG5cbmV4dGVybmFsIGludF9vZl9jaGFyIDogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCB1bnNhZmVfY2hhcl9vZl9pbnQgOiBpbnQgLT4gY2hhciA9IFwiJWlkZW50aXR5XCJcbmxldCBjaGFyX29mX2ludCBuID1cbiAgaWYgbiA8IDAgfHwgbiA+IDI1NSB0aGVuIGludmFsaWRfYXJnIFwiY2hhcl9vZl9pbnRcIiBlbHNlIHVuc2FmZV9jaGFyX29mX2ludCBuXG5cbigqIFVuaXQgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBpZ25vcmUgOiAnYSAtPiB1bml0ID0gXCIlaWdub3JlXCJcblxuKCogUGFpciBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIGZzdCA6ICdhICogJ2IgLT4gJ2EgPSBcIiVmaWVsZDBcIlxuZXh0ZXJuYWwgc25kIDogJ2EgKiAnYiAtPiAnYiA9IFwiJWZpZWxkMVwiXG5cbigqIFJlZmVyZW5jZXMgKilcblxudHlwZSAnYSByZWYgPSB7IG11dGFibGUgY29udGVudHMgOiAnYSB9XG5leHRlcm5hbCByZWYgOiAnYSAtPiAnYSByZWYgPSBcIiVtYWtlbXV0YWJsZVwiXG5leHRlcm5hbCAoICEgKSA6ICdhIHJlZiAtPiAnYSA9IFwiJWZpZWxkMFwiXG5leHRlcm5hbCAoIDo9ICkgOiAnYSByZWYgLT4gJ2EgLT4gdW5pdCA9IFwiJXNldGZpZWxkMFwiXG5leHRlcm5hbCBpbmNyIDogaW50IHJlZiAtPiB1bml0ID0gXCIlaW5jclwiXG5leHRlcm5hbCBkZWNyIDogaW50IHJlZiAtPiB1bml0ID0gXCIlZGVjclwiXG5cbigqIFJlc3VsdCB0eXBlICopXG5cbnR5cGUgKCdhLCdiKSByZXN1bHQgPSBPayBvZiAnYSB8IEVycm9yIG9mICdiXG5cbigqIFN0cmluZyBjb252ZXJzaW9uIGZ1bmN0aW9ucyAqKVxuXG5leHRlcm5hbCBmb3JtYXRfaW50IDogc3RyaW5nIC0+IGludCAtPiBzdHJpbmcgPSBcImNhbWxfZm9ybWF0X2ludFwiXG5leHRlcm5hbCBmb3JtYXRfZmxvYXQgOiBzdHJpbmcgLT4gZmxvYXQgLT4gc3RyaW5nID0gXCJjYW1sX2Zvcm1hdF9mbG9hdFwiXG5cbmxldCBzdHJpbmdfb2ZfYm9vbCBiID1cbiAgaWYgYiB0aGVuIFwidHJ1ZVwiIGVsc2UgXCJmYWxzZVwiXG5sZXQgYm9vbF9vZl9zdHJpbmcgPSBmdW5jdGlvblxuICB8IFwidHJ1ZVwiIC0+IHRydWVcbiAgfCBcImZhbHNlXCIgLT4gZmFsc2VcbiAgfCBfIC0+IGludmFsaWRfYXJnIFwiYm9vbF9vZl9zdHJpbmdcIlxuXG5sZXQgYm9vbF9vZl9zdHJpbmdfb3B0ID0gZnVuY3Rpb25cbiAgfCBcInRydWVcIiAtPiBTb21lIHRydWVcbiAgfCBcImZhbHNlXCIgLT4gU29tZSBmYWxzZVxuICB8IF8gLT4gTm9uZVxuXG5sZXQgc3RyaW5nX29mX2ludCBuID1cbiAgZm9ybWF0X2ludCBcIiVkXCIgblxuXG5leHRlcm5hbCBpbnRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludCA9IFwiY2FtbF9pbnRfb2Zfc3RyaW5nXCJcblxubGV0IGludF9vZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBwcm92aWRlIHRoaXMgZGlyZWN0bHkgYXMgYSBub24tcmFpc2luZyBwcmltaXRpdmUuICopXG4gIHRyeSBTb21lIChpbnRfb2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxuZXh0ZXJuYWwgc3RyaW5nX2dldCA6IHN0cmluZyAtPiBpbnQgLT4gY2hhciA9IFwiJXN0cmluZ19zYWZlX2dldFwiXG5cbmxldCB2YWxpZF9mbG9hdF9sZXhlbSBzID1cbiAgbGV0IGwgPSBzdHJpbmdfbGVuZ3RoIHMgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPj0gbCB0aGVuIHMgXiBcIi5cIiBlbHNlXG4gICAgbWF0Y2ggc3RyaW5nX2dldCBzIGkgd2l0aFxuICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPiBsb29wIChpICsgMSlcbiAgICB8IF8gLT4gc1xuICBpblxuICBsb29wIDBcblxubGV0IHN0cmluZ19vZl9mbG9hdCBmID0gdmFsaWRfZmxvYXRfbGV4ZW0gKGZvcm1hdF9mbG9hdCBcIiUuMTJnXCIgZilcblxuZXh0ZXJuYWwgZmxvYXRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGZsb2F0ID0gXCJjYW1sX2Zsb2F0X29mX3N0cmluZ1wiXG5cbmxldCBmbG9hdF9vZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBwcm92aWRlIHRoaXMgZGlyZWN0bHkgYXMgYSBub24tcmFpc2luZyBwcmltaXRpdmUuICopXG4gIHRyeSBTb21lIChmbG9hdF9vZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG4oKiBMaXN0IG9wZXJhdGlvbnMgLS0gbW9yZSBpbiBtb2R1bGUgTGlzdCAqKVxuXG5sZXQgcmVjICggQCApIGwxIGwyID1cbiAgbWF0Y2ggbDEgd2l0aFxuICAgIFtdIC0+IGwyXG4gIHwgaGQgOjogdGwgLT4gaGQgOjogKHRsIEAgbDIpXG5cbigqIEkvTyBvcGVyYXRpb25zICopXG5cbnR5cGUgaW5fY2hhbm5lbFxudHlwZSBvdXRfY2hhbm5lbFxuXG5leHRlcm5hbCBvcGVuX2Rlc2NyaXB0b3Jfb3V0IDogaW50IC0+IG91dF9jaGFubmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXRcIlxuZXh0ZXJuYWwgb3Blbl9kZXNjcmlwdG9yX2luIDogaW50IC0+IGluX2NoYW5uZWwgPSBcImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX2luXCJcblxubGV0IHN0ZGluID0gb3Blbl9kZXNjcmlwdG9yX2luIDBcbmxldCBzdGRvdXQgPSBvcGVuX2Rlc2NyaXB0b3Jfb3V0IDFcbmxldCBzdGRlcnIgPSBvcGVuX2Rlc2NyaXB0b3Jfb3V0IDJcblxuKCogR2VuZXJhbCBvdXRwdXQgZnVuY3Rpb25zICopXG5cbnR5cGUgb3Blbl9mbGFnID1cbiAgICBPcGVuX3Jkb25seSB8IE9wZW5fd3Jvbmx5IHwgT3Blbl9hcHBlbmRcbiAgfCBPcGVuX2NyZWF0IHwgT3Blbl90cnVuYyB8IE9wZW5fZXhjbFxuICB8IE9wZW5fYmluYXJ5IHwgT3Blbl90ZXh0IHwgT3Blbl9ub25ibG9ja1xuXG5leHRlcm5hbCBvcGVuX2Rlc2MgOiBzdHJpbmcgLT4gb3Blbl9mbGFnIGxpc3QgLT4gaW50IC0+IGludCA9IFwiY2FtbF9zeXNfb3BlblwiXG5cbmV4dGVybmFsIHNldF9vdXRfY2hhbm5lbF9uYW1lOiBvdXRfY2hhbm5lbCAtPiBzdHJpbmcgLT4gdW5pdCA9XG4gIFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lXCJcblxubGV0IG9wZW5fb3V0X2dlbiBtb2RlIHBlcm0gbmFtZSA9XG4gIGxldCBjID0gb3Blbl9kZXNjcmlwdG9yX291dChvcGVuX2Rlc2MgbmFtZSBtb2RlIHBlcm0pIGluXG4gIHNldF9vdXRfY2hhbm5lbF9uYW1lIGMgbmFtZTtcbiAgY1xuXG5sZXQgb3Blbl9vdXQgbmFtZSA9XG4gIG9wZW5fb3V0X2dlbiBbT3Blbl93cm9ubHk7IE9wZW5fY3JlYXQ7IE9wZW5fdHJ1bmM7IE9wZW5fdGV4dF0gMG82NjYgbmFtZVxuXG5sZXQgb3Blbl9vdXRfYmluIG5hbWUgPVxuICBvcGVuX291dF9nZW4gW09wZW5fd3Jvbmx5OyBPcGVuX2NyZWF0OyBPcGVuX3RydW5jOyBPcGVuX2JpbmFyeV0gMG82NjYgbmFtZVxuXG5leHRlcm5hbCBmbHVzaCA6IG91dF9jaGFubmVsIC0+IHVuaXQgPSBcImNhbWxfbWxfZmx1c2hcIlxuXG5leHRlcm5hbCBvdXRfY2hhbm5lbHNfbGlzdCA6IHVuaXQgLT4gb3V0X2NoYW5uZWwgbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3RcIlxuXG5sZXQgZmx1c2hfYWxsICgpID1cbiAgbGV0IHJlYyBpdGVyID0gZnVuY3Rpb25cbiAgICAgIFtdIC0+ICgpXG4gICAgfCBhOjpsIC0+XG4gICAgICAgIGJlZ2luIHRyeVxuICAgICAgICAgICAgZmx1c2ggYVxuICAgICAgICB3aXRoIFN5c19lcnJvciBfIC0+XG4gICAgICAgICAgKCkgKCogaWdub3JlIGNoYW5uZWxzIGNsb3NlZCBkdXJpbmcgYSBwcmVjZWRpbmcgZmx1c2guICopXG4gICAgICAgIGVuZDtcbiAgICAgICAgaXRlciBsXG4gIGluIGl0ZXIgKG91dF9jaGFubmVsc19saXN0ICgpKVxuXG5leHRlcm5hbCB1bnNhZmVfb3V0cHV0IDogb3V0X2NoYW5uZWwgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX291dHB1dF9ieXRlc1wiXG5leHRlcm5hbCB1bnNhZmVfb3V0cHV0X3N0cmluZyA6IG91dF9jaGFubmVsIC0+IHN0cmluZyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX291dHB1dFwiXG5cbmV4dGVybmFsIG91dHB1dF9jaGFyIDogb3V0X2NoYW5uZWwgLT4gY2hhciAtPiB1bml0ID0gXCJjYW1sX21sX291dHB1dF9jaGFyXCJcblxubGV0IG91dHB1dF9ieXRlcyBvYyBzID1cbiAgdW5zYWZlX291dHB1dCBvYyBzIDAgKGJ5dGVzX2xlbmd0aCBzKVxuXG5sZXQgb3V0cHV0X3N0cmluZyBvYyBzID1cbiAgdW5zYWZlX291dHB1dF9zdHJpbmcgb2MgcyAwIChzdHJpbmdfbGVuZ3RoIHMpXG5cbmxldCBvdXRwdXQgb2MgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGJ5dGVzX2xlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJvdXRwdXRcIlxuICBlbHNlIHVuc2FmZV9vdXRwdXQgb2MgcyBvZnMgbGVuXG5cbmxldCBvdXRwdXRfc3Vic3RyaW5nIG9jIHMgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBzdHJpbmdfbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIm91dHB1dF9zdWJzdHJpbmdcIlxuICBlbHNlIHVuc2FmZV9vdXRwdXRfc3RyaW5nIG9jIHMgb2ZzIGxlblxuXG5leHRlcm5hbCBvdXRwdXRfYnl0ZSA6IG91dF9jaGFubmVsIC0+IGludCAtPiB1bml0ID0gXCJjYW1sX21sX291dHB1dF9jaGFyXCJcbmV4dGVybmFsIG91dHB1dF9iaW5hcnlfaW50IDogb3V0X2NoYW5uZWwgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfbWxfb3V0cHV0X2ludFwiXG5cbmV4dGVybmFsIG1hcnNoYWxfdG9fY2hhbm5lbCA6IG91dF9jaGFubmVsIC0+ICdhIC0+IHVuaXQgbGlzdCAtPiB1bml0XG4gICAgID0gXCJjYW1sX291dHB1dF92YWx1ZVwiXG5sZXQgb3V0cHV0X3ZhbHVlIGNoYW4gdiA9IG1hcnNoYWxfdG9fY2hhbm5lbCBjaGFuIHYgW11cblxuZXh0ZXJuYWwgc2Vla19vdXQgOiBvdXRfY2hhbm5lbCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX291dFwiXG5leHRlcm5hbCBwb3Nfb3V0IDogb3V0X2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX3Bvc19vdXRcIlxuZXh0ZXJuYWwgb3V0X2NoYW5uZWxfbGVuZ3RoIDogb3V0X2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZVwiXG5leHRlcm5hbCBjbG9zZV9vdXRfY2hhbm5lbCA6IG91dF9jaGFubmVsIC0+IHVuaXQgPSBcImNhbWxfbWxfY2xvc2VfY2hhbm5lbFwiXG5sZXQgY2xvc2Vfb3V0IG9jID0gZmx1c2ggb2M7IGNsb3NlX291dF9jaGFubmVsIG9jXG5sZXQgY2xvc2Vfb3V0X25vZXJyIG9jID1cbiAgKHRyeSBmbHVzaCBvYyB3aXRoIF8gLT4gKCkpO1xuICAodHJ5IGNsb3NlX291dF9jaGFubmVsIG9jIHdpdGggXyAtPiAoKSlcbmV4dGVybmFsIHNldF9iaW5hcnlfbW9kZV9vdXQgOiBvdXRfY2hhbm5lbCAtPiBib29sIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlXCJcblxuKCogR2VuZXJhbCBpbnB1dCBmdW5jdGlvbnMgKilcblxuZXh0ZXJuYWwgc2V0X2luX2NoYW5uZWxfbmFtZTogaW5fY2hhbm5lbCAtPiBzdHJpbmcgLT4gdW5pdCA9XG4gIFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lXCJcblxubGV0IG9wZW5faW5fZ2VuIG1vZGUgcGVybSBuYW1lID1cbiAgbGV0IGMgPSBvcGVuX2Rlc2NyaXB0b3JfaW4ob3Blbl9kZXNjIG5hbWUgbW9kZSBwZXJtKSBpblxuICBzZXRfaW5fY2hhbm5lbF9uYW1lIGMgbmFtZTtcbiAgY1xuXG5sZXQgb3Blbl9pbiBuYW1lID1cbiAgb3Blbl9pbl9nZW4gW09wZW5fcmRvbmx5OyBPcGVuX3RleHRdIDAgbmFtZVxuXG5sZXQgb3Blbl9pbl9iaW4gbmFtZSA9XG4gIG9wZW5faW5fZ2VuIFtPcGVuX3Jkb25seTsgT3Blbl9iaW5hcnldIDAgbmFtZVxuXG5leHRlcm5hbCBpbnB1dF9jaGFyIDogaW5fY2hhbm5lbCAtPiBjaGFyID0gXCJjYW1sX21sX2lucHV0X2NoYXJcIlxuXG5leHRlcm5hbCB1bnNhZmVfaW5wdXQgOiBpbl9jaGFubmVsIC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gaW50XG4gICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfaW5wdXRcIlxuXG5sZXQgaW5wdXQgaWMgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGJ5dGVzX2xlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJpbnB1dFwiXG4gIGVsc2UgdW5zYWZlX2lucHV0IGljIHMgb2ZzIGxlblxuXG5sZXQgcmVjIHVuc2FmZV9yZWFsbHlfaW5wdXQgaWMgcyBvZnMgbGVuID1cbiAgaWYgbGVuIDw9IDAgdGhlbiAoKSBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSB1bnNhZmVfaW5wdXQgaWMgcyBvZnMgbGVuIGluXG4gICAgaWYgciA9IDBcbiAgICB0aGVuIHJhaXNlIEVuZF9vZl9maWxlXG4gICAgZWxzZSB1bnNhZmVfcmVhbGx5X2lucHV0IGljIHMgKG9mcyArIHIpIChsZW4gLSByKVxuICBlbmRcblxubGV0IHJlYWxseV9pbnB1dCBpYyBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gYnl0ZXNfbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcInJlYWxseV9pbnB1dFwiXG4gIGVsc2UgdW5zYWZlX3JlYWxseV9pbnB1dCBpYyBzIG9mcyBsZW5cblxubGV0IHJlYWxseV9pbnB1dF9zdHJpbmcgaWMgbGVuID1cbiAgbGV0IHMgPSBieXRlc19jcmVhdGUgbGVuIGluXG4gIHJlYWxseV9pbnB1dCBpYyBzIDAgbGVuO1xuICBieXRlc191bnNhZmVfdG9fc3RyaW5nIHNcblxuZXh0ZXJuYWwgaW5wdXRfc2Nhbl9saW5lIDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lXCJcblxubGV0IGlucHV0X2xpbmUgY2hhbiA9XG4gIGxldCByZWMgYnVpbGRfcmVzdWx0IGJ1ZiBwb3MgPSBmdW5jdGlvblxuICAgIFtdIC0+IGJ1ZlxuICB8IGhkIDo6IHRsIC0+XG4gICAgICBsZXQgbGVuID0gYnl0ZXNfbGVuZ3RoIGhkIGluXG4gICAgICBieXRlc19ibGl0IGhkIDAgYnVmIChwb3MgLSBsZW4pIGxlbjtcbiAgICAgIGJ1aWxkX3Jlc3VsdCBidWYgKHBvcyAtIGxlbikgdGwgaW5cbiAgbGV0IHJlYyBzY2FuIGFjY3UgbGVuID1cbiAgICBsZXQgbiA9IGlucHV0X3NjYW5fbGluZSBjaGFuIGluXG4gICAgaWYgbiA9IDAgdGhlbiBiZWdpbiAgICAgICAgICAgICAgICAgICAoKiBuID0gMDogd2UgYXJlIGF0IEVPRiAqKVxuICAgICAgbWF0Y2ggYWNjdSB3aXRoXG4gICAgICAgIFtdIC0+IHJhaXNlIEVuZF9vZl9maWxlXG4gICAgICB8IF8gIC0+IGJ1aWxkX3Jlc3VsdCAoYnl0ZXNfY3JlYXRlIGxlbikgbGVuIGFjY3VcbiAgICBlbmQgZWxzZSBpZiBuID4gMCB0aGVuIGJlZ2luICAgICAgICAgICgqIG4gPiAwOiBuZXdsaW5lIGZvdW5kIGluIGJ1ZmZlciAqKVxuICAgICAgbGV0IHJlcyA9IGJ5dGVzX2NyZWF0ZSAobiAtIDEpIGluXG4gICAgICBpZ25vcmUgKHVuc2FmZV9pbnB1dCBjaGFuIHJlcyAwIChuIC0gMSkpO1xuICAgICAgaWdub3JlIChpbnB1dF9jaGFyIGNoYW4pOyAgICAgICAgICAgKCogc2tpcCB0aGUgbmV3bGluZSAqKVxuICAgICAgbWF0Y2ggYWNjdSB3aXRoXG4gICAgICAgIFtdIC0+IHJlc1xuICAgICAgfCAgXyAtPiBsZXQgbGVuID0gbGVuICsgbiAtIDEgaW5cbiAgICAgICAgICAgICAgYnVpbGRfcmVzdWx0IChieXRlc19jcmVhdGUgbGVuKSBsZW4gKHJlcyA6OiBhY2N1KVxuICAgIGVuZCBlbHNlIGJlZ2luICAgICAgICAgICAgICAgICAgICAgICAgKCogbiA8IDA6IG5ld2xpbmUgbm90IGZvdW5kICopXG4gICAgICBsZXQgYmVnID0gYnl0ZXNfY3JlYXRlICgtbikgaW5cbiAgICAgIGlnbm9yZSh1bnNhZmVfaW5wdXQgY2hhbiBiZWcgMCAoLW4pKTtcbiAgICAgIHNjYW4gKGJlZyA6OiBhY2N1KSAobGVuIC0gbilcbiAgICBlbmRcbiAgaW4gYnl0ZXNfdW5zYWZlX3RvX3N0cmluZyAoc2NhbiBbXSAwKVxuXG5leHRlcm5hbCBpbnB1dF9ieXRlIDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfaW5wdXRfY2hhclwiXG5leHRlcm5hbCBpbnB1dF9iaW5hcnlfaW50IDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfaW5wdXRfaW50XCJcbmV4dGVybmFsIGlucHV0X3ZhbHVlIDogaW5fY2hhbm5lbCAtPiAnYSA9IFwiY2FtbF9pbnB1dF92YWx1ZVwiXG5leHRlcm5hbCBzZWVrX2luIDogaW5fY2hhbm5lbCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX2luXCJcbmV4dGVybmFsIHBvc19pbiA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX3Bvc19pblwiXG5leHRlcm5hbCBpbl9jaGFubmVsX2xlbmd0aCA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZVwiXG5leHRlcm5hbCBjbG9zZV9pbiA6IGluX2NoYW5uZWwgLT4gdW5pdCA9IFwiY2FtbF9tbF9jbG9zZV9jaGFubmVsXCJcbmxldCBjbG9zZV9pbl9ub2VyciBpYyA9ICh0cnkgY2xvc2VfaW4gaWMgd2l0aCBfIC0+ICgpKVxuZXh0ZXJuYWwgc2V0X2JpbmFyeV9tb2RlX2luIDogaW5fY2hhbm5lbCAtPiBib29sIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9zZXRfYmluYXJ5X21vZGVcIlxuXG4oKiBPdXRwdXQgZnVuY3Rpb25zIG9uIHN0YW5kYXJkIG91dHB1dCAqKVxuXG5sZXQgcHJpbnRfY2hhciBjID0gb3V0cHV0X2NoYXIgc3Rkb3V0IGNcbmxldCBwcmludF9zdHJpbmcgcyA9IG91dHB1dF9zdHJpbmcgc3Rkb3V0IHNcbmxldCBwcmludF9ieXRlcyBzID0gb3V0cHV0X2J5dGVzIHN0ZG91dCBzXG5sZXQgcHJpbnRfaW50IGkgPSBvdXRwdXRfc3RyaW5nIHN0ZG91dCAoc3RyaW5nX29mX2ludCBpKVxubGV0IHByaW50X2Zsb2F0IGYgPSBvdXRwdXRfc3RyaW5nIHN0ZG91dCAoc3RyaW5nX29mX2Zsb2F0IGYpXG5sZXQgcHJpbnRfZW5kbGluZSBzID1cbiAgb3V0cHV0X3N0cmluZyBzdGRvdXQgczsgb3V0cHV0X2NoYXIgc3Rkb3V0ICdcXG4nOyBmbHVzaCBzdGRvdXRcbmxldCBwcmludF9uZXdsaW5lICgpID0gb3V0cHV0X2NoYXIgc3Rkb3V0ICdcXG4nOyBmbHVzaCBzdGRvdXRcblxuKCogT3V0cHV0IGZ1bmN0aW9ucyBvbiBzdGFuZGFyZCBlcnJvciAqKVxuXG5sZXQgcHJlcnJfY2hhciBjID0gb3V0cHV0X2NoYXIgc3RkZXJyIGNcbmxldCBwcmVycl9zdHJpbmcgcyA9IG91dHB1dF9zdHJpbmcgc3RkZXJyIHNcbmxldCBwcmVycl9ieXRlcyBzID0gb3V0cHV0X2J5dGVzIHN0ZGVyciBzXG5sZXQgcHJlcnJfaW50IGkgPSBvdXRwdXRfc3RyaW5nIHN0ZGVyciAoc3RyaW5nX29mX2ludCBpKVxubGV0IHByZXJyX2Zsb2F0IGYgPSBvdXRwdXRfc3RyaW5nIHN0ZGVyciAoc3RyaW5nX29mX2Zsb2F0IGYpXG5sZXQgcHJlcnJfZW5kbGluZSBzID1cbiAgb3V0cHV0X3N0cmluZyBzdGRlcnIgczsgb3V0cHV0X2NoYXIgc3RkZXJyICdcXG4nOyBmbHVzaCBzdGRlcnJcbmxldCBwcmVycl9uZXdsaW5lICgpID0gb3V0cHV0X2NoYXIgc3RkZXJyICdcXG4nOyBmbHVzaCBzdGRlcnJcblxuKCogSW5wdXQgZnVuY3Rpb25zIG9uIHN0YW5kYXJkIGlucHV0ICopXG5cbmxldCByZWFkX2xpbmUgKCkgPSBmbHVzaCBzdGRvdXQ7IGlucHV0X2xpbmUgc3RkaW5cbmxldCByZWFkX2ludCAoKSA9IGludF9vZl9zdHJpbmcocmVhZF9saW5lKCkpXG5sZXQgcmVhZF9pbnRfb3B0ICgpID0gaW50X29mX3N0cmluZ19vcHQocmVhZF9saW5lKCkpXG5sZXQgcmVhZF9mbG9hdCAoKSA9IGZsb2F0X29mX3N0cmluZyhyZWFkX2xpbmUoKSlcbmxldCByZWFkX2Zsb2F0X29wdCAoKSA9IGZsb2F0X29mX3N0cmluZ19vcHQocmVhZF9saW5lKCkpXG5cbigqIE9wZXJhdGlvbnMgb24gbGFyZ2UgZmlsZXMgKilcblxubW9kdWxlIExhcmdlRmlsZSA9XG4gIHN0cnVjdFxuICAgIGV4dGVybmFsIHNlZWtfb3V0IDogb3V0X2NoYW5uZWwgLT4gaW50NjQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX291dF82NFwiXG4gICAgZXh0ZXJuYWwgcG9zX291dCA6IG91dF9jaGFubmVsIC0+IGludDY0ID0gXCJjYW1sX21sX3Bvc19vdXRfNjRcIlxuICAgIGV4dGVybmFsIG91dF9jaGFubmVsX2xlbmd0aCA6IG91dF9jaGFubmVsIC0+IGludDY0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZV82NFwiXG4gICAgZXh0ZXJuYWwgc2Vla19pbiA6IGluX2NoYW5uZWwgLT4gaW50NjQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX2luXzY0XCJcbiAgICBleHRlcm5hbCBwb3NfaW4gOiBpbl9jaGFubmVsIC0+IGludDY0ID0gXCJjYW1sX21sX3Bvc19pbl82NFwiXG4gICAgZXh0ZXJuYWwgaW5fY2hhbm5lbF9sZW5ndGggOiBpbl9jaGFubmVsIC0+IGludDY0ID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZV82NFwiXG4gIGVuZFxuXG4oKiBGb3JtYXRzICopXG5cbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDZcbiAgID0gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2XG4gICA9IEZvcm1hdCBvZiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZtdFxuICAgICAgICAgICAgICAgKiBzdHJpbmdcblxudHlwZSAoJ2EsICdiLCAnYywgJ2QpIGZvcm1hdDQgPSAoJ2EsICdiLCAnYywgJ2MsICdjLCAnZCkgZm9ybWF0NlxuXG50eXBlICgnYSwgJ2IsICdjKSBmb3JtYXQgPSAoJ2EsICdiLCAnYywgJ2MpIGZvcm1hdDRcblxubGV0IHN0cmluZ19vZl9mb3JtYXQgKEZvcm1hdCAoX2ZtdCwgc3RyKSkgPSBzdHJcblxuZXh0ZXJuYWwgZm9ybWF0X29mX3N0cmluZyA6XG4gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT5cbiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9IFwiJWlkZW50aXR5XCJcblxubGV0ICggXl4gKSAoRm9ybWF0IChmbXQxLCBzdHIxKSkgKEZvcm1hdCAoZm10Miwgc3RyMikpID1cbiAgRm9ybWF0IChDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuY29uY2F0X2ZtdCBmbXQxIGZtdDIsXG4gICAgICAgICAgc3RyMSBeIFwiJSxcIiBeIHN0cjIpXG5cbigqIE1pc2NlbGxhbmVvdXMgKilcblxuZXh0ZXJuYWwgc3lzX2V4aXQgOiBpbnQgLT4gJ2EgPSBcImNhbWxfc3lzX2V4aXRcIlxuXG5sZXQgZXhpdF9mdW5jdGlvbiA9IENhbWxpbnRlcm5hbEF0b21pYy5tYWtlIGZsdXNoX2FsbFxuXG5sZXQgcmVjIGF0X2V4aXQgZiA9XG4gIGxldCBtb2R1bGUgQXRvbWljID0gQ2FtbGludGVybmFsQXRvbWljIGluXG4gICgqIE1QUiM3MjUzLCBNUFIjNzc5NjogbWFrZSBzdXJlIFwiZlwiIGlzIGV4ZWN1dGVkIG9ubHkgb25jZSAqKVxuICBsZXQgZl95ZXRfdG9fcnVuID0gQXRvbWljLm1ha2UgdHJ1ZSBpblxuICBsZXQgb2xkX2V4aXQgPSBBdG9taWMuZ2V0IGV4aXRfZnVuY3Rpb24gaW5cbiAgbGV0IG5ld19leGl0ICgpID1cbiAgICBpZiBBdG9taWMuY29tcGFyZV9hbmRfc2V0IGZfeWV0X3RvX3J1biB0cnVlIGZhbHNlIHRoZW4gZiAoKSA7XG4gICAgb2xkX2V4aXQgKClcbiAgaW5cbiAgbGV0IHN1Y2Nlc3MgPSBBdG9taWMuY29tcGFyZV9hbmRfc2V0IGV4aXRfZnVuY3Rpb24gb2xkX2V4aXQgbmV3X2V4aXQgaW5cbiAgaWYgbm90IHN1Y2Nlc3MgdGhlbiBhdF9leGl0IGZcblxubGV0IGRvX2F0X2V4aXQgKCkgPSAoQ2FtbGludGVybmFsQXRvbWljLmdldCBleGl0X2Z1bmN0aW9uKSAoKVxuXG5sZXQgZXhpdCByZXRjb2RlID1cbiAgZG9fYXRfZXhpdCAoKTtcbiAgc3lzX2V4aXQgcmV0Y29kZVxuXG5sZXQgXyA9IHJlZ2lzdGVyX25hbWVkX3ZhbHVlIFwiUGVydmFzaXZlcy5kb19hdF9leGl0XCIgZG9fYXRfZXhpdFxuXG5leHRlcm5hbCBtYWpvciA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19tYWpvclwiXG5leHRlcm5hbCBuYWtlZF9wb2ludGVyc19jaGVja2VkIDogdW5pdCAtPiBib29sXG4gID0gXCJjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkXCJcbmxldCAoKSA9IGlmIG5ha2VkX3BvaW50ZXJzX2NoZWNrZWQgKCkgdGhlbiBhdF9leGl0IG1ham9yXG5cbigqTU9EVUxFX0FMSUFTRVMqKVxubW9kdWxlIEFyZyAgICAgICAgICA9IEFyZ1xubW9kdWxlIEFycmF5ICAgICAgICA9IEFycmF5XG5tb2R1bGUgQXJyYXlMYWJlbHMgID0gQXJyYXlMYWJlbHNcbm1vZHVsZSBBdG9taWMgICAgICAgPSBBdG9taWNcbm1vZHVsZSBCaWdhcnJheSAgICAgPSBCaWdhcnJheVxubW9kdWxlIEJvb2wgICAgICAgICA9IEJvb2xcbm1vZHVsZSBCdWZmZXIgICAgICAgPSBCdWZmZXJcbm1vZHVsZSBCeXRlcyAgICAgICAgPSBCeXRlc1xubW9kdWxlIEJ5dGVzTGFiZWxzICA9IEJ5dGVzTGFiZWxzXG5tb2R1bGUgQ2FsbGJhY2sgICAgID0gQ2FsbGJhY2tcbm1vZHVsZSBDaGFyICAgICAgICAgPSBDaGFyXG5tb2R1bGUgQ29tcGxleCAgICAgID0gQ29tcGxleFxubW9kdWxlIERpZ2VzdCAgICAgICA9IERpZ2VzdFxubW9kdWxlIEVpdGhlciAgICAgICA9IEVpdGhlclxubW9kdWxlIEVwaGVtZXJvbiAgICA9IEVwaGVtZXJvblxubW9kdWxlIEZpbGVuYW1lICAgICA9IEZpbGVuYW1lXG5tb2R1bGUgRmxvYXQgICAgICAgID0gRmxvYXRcbm1vZHVsZSBGb3JtYXQgICAgICAgPSBGb3JtYXRcbm1vZHVsZSBGdW4gICAgICAgICAgPSBGdW5cbm1vZHVsZSBHYyAgICAgICAgICAgPSBHY1xubW9kdWxlIEdlbmxleCAgICAgICA9IEdlbmxleFxubW9kdWxlIEhhc2h0YmwgICAgICA9IEhhc2h0Ymxcbm1vZHVsZSBJbl9jaGFubmVsICAgPSBJbl9jaGFubmVsXG5tb2R1bGUgSW50ICAgICAgICAgID0gSW50XG5tb2R1bGUgSW50MzIgICAgICAgID0gSW50MzJcbm1vZHVsZSBJbnQ2NCAgICAgICAgPSBJbnQ2NFxubW9kdWxlIExhenkgICAgICAgICA9IExhenlcbm1vZHVsZSBMZXhpbmcgICAgICAgPSBMZXhpbmdcbm1vZHVsZSBMaXN0ICAgICAgICAgPSBMaXN0XG5tb2R1bGUgTGlzdExhYmVscyAgID0gTGlzdExhYmVsc1xubW9kdWxlIE1hcCAgICAgICAgICA9IE1hcFxubW9kdWxlIE1hcnNoYWwgICAgICA9IE1hcnNoYWxcbm1vZHVsZSBNb3JlTGFiZWxzICAgPSBNb3JlTGFiZWxzXG5tb2R1bGUgTmF0aXZlaW50ICAgID0gTmF0aXZlaW50XG5tb2R1bGUgT2JqICAgICAgICAgID0gT2JqXG5tb2R1bGUgT28gICAgICAgICAgID0gT29cbm1vZHVsZSBPcHRpb24gICAgICAgPSBPcHRpb25cbm1vZHVsZSBPdXRfY2hhbm5lbCAgPSBPdXRfY2hhbm5lbFxubW9kdWxlIFBhcnNpbmcgICAgICA9IFBhcnNpbmdcbm1vZHVsZSBQZXJ2YXNpdmVzICAgPSBQZXJ2YXNpdmVzXG5tb2R1bGUgUHJpbnRleGMgICAgID0gUHJpbnRleGNcbm1vZHVsZSBQcmludGYgICAgICAgPSBQcmludGZcbm1vZHVsZSBRdWV1ZSAgICAgICAgPSBRdWV1ZVxubW9kdWxlIFJhbmRvbSAgICAgICA9IFJhbmRvbVxubW9kdWxlIFJlc3VsdCAgICAgICA9IFJlc3VsdFxubW9kdWxlIFNjYW5mICAgICAgICA9IFNjYW5mXG5tb2R1bGUgU2VxICAgICAgICAgID0gU2VxXG5tb2R1bGUgU2V0ICAgICAgICAgID0gU2V0XG5tb2R1bGUgU3RhY2sgICAgICAgID0gU3RhY2tcbm1vZHVsZSBTdGRMYWJlbHMgICAgPSBTdGRMYWJlbHNcbm1vZHVsZSBTdHJlYW0gICAgICAgPSBTdHJlYW1cbm1vZHVsZSBTdHJpbmcgICAgICAgPSBTdHJpbmdcbm1vZHVsZSBTdHJpbmdMYWJlbHMgPSBTdHJpbmdMYWJlbHNcbm1vZHVsZSBTeXMgICAgICAgICAgPSBTeXNcbm1vZHVsZSBVY2hhciAgICAgICAgPSBVY2hhclxubW9kdWxlIFVuaXQgICAgICAgICA9IFVuaXRcbm1vZHVsZSBXZWFrICAgICAgICAgPSBXZWFrXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICBKZXJlbWllIERpbWlubywgSmFuZSBTdHJlZXQgRXVyb3BlICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE3IEphbmUgU3RyZWV0IEdyb3VwIExMQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqKiBAZGVwcmVjYXRlZCBVc2UgeyFTdGRsaWJ9ICopXG5cbmV4dGVybmFsIHJhaXNlIDogZXhuIC0+ICdhID0gXCIlcmFpc2VcIlxuZXh0ZXJuYWwgcmFpc2Vfbm90cmFjZSA6IGV4biAtPiAnYSA9IFwiJXJhaXNlX25vdHJhY2VcIlxubGV0IGludmFsaWRfYXJnID0gaW52YWxpZF9hcmdcbmxldCBmYWlsd2l0aCA9IGZhaWx3aXRoXG5leGNlcHRpb24gRXhpdFxuZXh0ZXJuYWwgKCA9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXF1YWxcIlxuZXh0ZXJuYWwgKCA8PiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxdWFsXCJcbmV4dGVybmFsICggPCApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3N0aGFuXCJcbmV4dGVybmFsICggPiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJ0aGFuXCJcbmV4dGVybmFsICggPD0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzZXF1YWxcIlxuZXh0ZXJuYWwgKCA+PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJlcXVhbFwiXG5leHRlcm5hbCBjb21wYXJlIDogJ2EgLT4gJ2EgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5sZXQgbWluID0gbWluXG5sZXQgbWF4ID0gbWF4XG5leHRlcm5hbCAoID09ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXFcIlxuZXh0ZXJuYWwgKCAhPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxXCJcbmV4dGVybmFsIG5vdCA6IGJvb2wgLT4gYm9vbCA9IFwiJWJvb2xub3RcIlxuZXh0ZXJuYWwgKCAmJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbiAgW0BAb2NhbWwuZGVwcmVjYXRlZCBcIlVzZSAoJiYpIGluc3RlYWQuXCJdXG5leHRlcm5hbCAoIHx8ICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG5leHRlcm5hbCAoIG9yICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG4gIFtAQG9jYW1sLmRlcHJlY2F0ZWQgXCJVc2UgKHx8KSBpbnN0ZWFkLlwiXVxuZXh0ZXJuYWwgX19MT0NfXyA6IHN0cmluZyA9IFwiJWxvY19MT0NcIlxuZXh0ZXJuYWwgX19GSUxFX18gOiBzdHJpbmcgPSBcIiVsb2NfRklMRVwiXG5leHRlcm5hbCBfX0xJTkVfXyA6IGludCA9IFwiJWxvY19MSU5FXCJcbmV4dGVybmFsIF9fTU9EVUxFX18gOiBzdHJpbmcgPSBcIiVsb2NfTU9EVUxFXCJcbmV4dGVybmFsIF9fUE9TX18gOiBzdHJpbmcgKiBpbnQgKiBpbnQgKiBpbnQgPSBcIiVsb2NfUE9TXCJcbmV4dGVybmFsIF9fTE9DX09GX18gOiAnYSAtPiBzdHJpbmcgKiAnYSA9IFwiJWxvY19MT0NcIlxuZXh0ZXJuYWwgX19MSU5FX09GX18gOiAnYSAtPiBpbnQgKiAnYSA9IFwiJWxvY19MSU5FXCJcbmV4dGVybmFsIF9fUE9TX09GX18gOiAnYSAtPiAoc3RyaW5nICogaW50ICogaW50ICogaW50KSAqICdhID0gXCIlbG9jX1BPU1wiXG5leHRlcm5hbCAoIHw+ICkgOiAnYSAtPiAoJ2EgLT4gJ2IpIC0+ICdiID0gXCIlcmV2YXBwbHlcIlxuZXh0ZXJuYWwgKCBAQCApIDogKCdhIC0+ICdiKSAtPiAnYSAtPiAnYiA9IFwiJWFwcGx5XCJcbmV4dGVybmFsICggfi0gKSA6IGludCAtPiBpbnQgPSBcIiVuZWdpbnRcIlxuZXh0ZXJuYWwgKCB+KyApIDogaW50IC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHN1Y2MgOiBpbnQgLT4gaW50ID0gXCIlc3VjY2ludFwiXG5leHRlcm5hbCBwcmVkIDogaW50IC0+IGludCA9IFwiJXByZWRpbnRcIlxuZXh0ZXJuYWwgKCArICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCAoIC0gKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlc3ViaW50XCJcbmV4dGVybmFsICggKiApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtdWxpbnRcIlxuZXh0ZXJuYWwgKCAvICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWRpdmludFwiXG5leHRlcm5hbCAoIG1vZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtb2RpbnRcIlxubGV0IGFicyA9IGFic1xubGV0IG1heF9pbnQgPSBtYXhfaW50XG5sZXQgbWluX2ludCA9IG1pbl9pbnRcbmV4dGVybmFsICggbGFuZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhbmRpbnRcIlxuZXh0ZXJuYWwgKCBsb3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlb3JpbnRcIlxuZXh0ZXJuYWwgKCBseG9yICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXhvcmludFwiXG5sZXQgbG5vdCA9IGxub3RcbmV4dGVybmFsICggbHNsICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzbGludFwiXG5leHRlcm5hbCAoIGxzciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc3JpbnRcIlxuZXh0ZXJuYWwgKCBhc3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYXNyaW50XCJcbmV4dGVybmFsICggfi0uICkgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJW5lZ2Zsb2F0XCJcbmV4dGVybmFsICggfisuICkgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsICggKy4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWRkZmxvYXRcIlxuZXh0ZXJuYWwgKCAtLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVzdWJmbG9hdFwiXG5leHRlcm5hbCAoICouICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJW11bGZsb2F0XCJcbmV4dGVybmFsICggLy4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlZGl2ZmxvYXRcIlxuZXh0ZXJuYWwgKCAqKiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfcG93ZXJfZmxvYXRcIiBcInBvd1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzcXJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc3FydF9mbG9hdFwiIFwic3FydFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBfZmxvYXRcIiBcImV4cFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2dfZmxvYXRcIiBcImxvZ1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxMCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzEwX2Zsb2F0XCIgXCJsb2cxMFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHBtMSA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cG0xX2Zsb2F0XCIgXCJjYW1sX2V4cG0xXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzFwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMXBfZmxvYXRcIiBcImNhbWxfbG9nMXBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zX2Zsb2F0XCIgXCJjb3NcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luX2Zsb2F0XCIgXCJzaW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuX2Zsb2F0XCIgXCJ0YW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NfZmxvYXRcIiBcImFjb3NcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5fZmxvYXRcIiBcImFzaW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5fZmxvYXRcIiBcImF0YW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuMl9mbG9hdFwiIFwiYXRhbjJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHlwb3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9oeXBvdF9mbG9hdFwiIFwiY2FtbF9oeXBvdFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zaF9mbG9hdFwiIFwiY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luaF9mbG9hdFwiIFwic2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuaF9mbG9hdFwiIFwidGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjZWlsIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2VpbF9mbG9hdFwiIFwiY2VpbFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9vciA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Zsb29yX2Zsb2F0XCIgXCJmbG9vclwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhYnNfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFic2Zsb2F0XCJcbmV4dGVybmFsIGNvcHlzaWduIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2NvcHlzaWduX2Zsb2F0XCIgXCJjYW1sX2NvcHlzaWduXCJcbiAgICAgICAgICAgICAgICAgIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbW9kX2Zsb2F0XCIgXCJmbW9kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZyZXhwIDogZmxvYXQgLT4gZmxvYXQgKiBpbnQgPSBcImNhbWxfZnJleHBfZmxvYXRcIlxuZXh0ZXJuYWwgbGRleHAgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gKGludCBbQHVudGFnZ2VkXSkgLT4gKGZsb2F0IFtAdW5ib3hlZF0pID1cbiAgXCJjYW1sX2xkZXhwX2Zsb2F0XCIgXCJjYW1sX2xkZXhwX2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kZiA6IGZsb2F0IC0+IGZsb2F0ICogZmxvYXQgPSBcImNhbWxfbW9kZl9mbG9hdFwiXG5leHRlcm5hbCBmbG9hdCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgZmxvYXRfb2ZfaW50IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCB0cnVuY2F0ZSA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuZXh0ZXJuYWwgaW50X29mX2Zsb2F0IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5sZXQgaW5maW5pdHkgPSBpbmZpbml0eVxubGV0IG5lZ19pbmZpbml0eSA9IG5lZ19pbmZpbml0eVxubGV0IG5hbiA9IG5hblxubGV0IG1heF9mbG9hdCA9IG1heF9mbG9hdFxubGV0IG1pbl9mbG9hdCA9IG1pbl9mbG9hdFxubGV0IGVwc2lsb25fZmxvYXQgPSBlcHNpbG9uX2Zsb2F0XG50eXBlIG5vbnJlYyBmcGNsYXNzID0gZnBjbGFzcyA9XG4gICAgRlBfbm9ybWFsXG4gIHwgRlBfc3Vibm9ybWFsXG4gIHwgRlBfemVyb1xuICB8IEZQX2luZmluaXRlXG4gIHwgRlBfbmFuXG5leHRlcm5hbCBjbGFzc2lmeV9mbG9hdCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiBmcGNsYXNzID1cbiAgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0XCIgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxubGV0ICggXiApID0gKCBeIClcbmV4dGVybmFsIGludF9vZl9jaGFyIDogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5sZXQgY2hhcl9vZl9pbnQgPSBjaGFyX29mX2ludFxuZXh0ZXJuYWwgaWdub3JlIDogJ2EgLT4gdW5pdCA9IFwiJWlnbm9yZVwiXG5sZXQgc3RyaW5nX29mX2Jvb2wgPSBzdHJpbmdfb2ZfYm9vbFxubGV0IGJvb2xfb2Zfc3RyaW5nID0gYm9vbF9vZl9zdHJpbmdcbmxldCBib29sX29mX3N0cmluZ19vcHQgPSBib29sX29mX3N0cmluZ19vcHRcbmxldCBzdHJpbmdfb2ZfaW50ID0gc3RyaW5nX29mX2ludFxuZXh0ZXJuYWwgaW50X29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQgPSBcImNhbWxfaW50X29mX3N0cmluZ1wiXG5sZXQgaW50X29mX3N0cmluZ19vcHQgPSBpbnRfb2Zfc3RyaW5nX29wdFxubGV0IHN0cmluZ19vZl9mbG9hdCA9IHN0cmluZ19vZl9mbG9hdFxuZXh0ZXJuYWwgZmxvYXRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGZsb2F0ID0gXCJjYW1sX2Zsb2F0X29mX3N0cmluZ1wiXG5sZXQgZmxvYXRfb2Zfc3RyaW5nX29wdCA9IGZsb2F0X29mX3N0cmluZ19vcHRcbmV4dGVybmFsIGZzdCA6ICdhICogJ2IgLT4gJ2EgPSBcIiVmaWVsZDBcIlxuZXh0ZXJuYWwgc25kIDogJ2EgKiAnYiAtPiAnYiA9IFwiJWZpZWxkMVwiXG5sZXQgKCBAICkgID0gKCBAIClcbnR5cGUgbm9ucmVjIGluX2NoYW5uZWwgPSBpbl9jaGFubmVsXG50eXBlIG5vbnJlYyBvdXRfY2hhbm5lbCA9IG91dF9jaGFubmVsXG5sZXQgc3RkaW4gPSBzdGRpblxubGV0IHN0ZG91dCA9IHN0ZG91dFxubGV0IHN0ZGVyciA9IHN0ZGVyclxubGV0IHByaW50X2NoYXIgPSBwcmludF9jaGFyXG5sZXQgcHJpbnRfc3RyaW5nID0gcHJpbnRfc3RyaW5nXG5sZXQgcHJpbnRfYnl0ZXMgPSBwcmludF9ieXRlc1xubGV0IHByaW50X2ludCA9IHByaW50X2ludFxubGV0IHByaW50X2Zsb2F0ID0gcHJpbnRfZmxvYXRcbmxldCBwcmludF9lbmRsaW5lID0gcHJpbnRfZW5kbGluZVxubGV0IHByaW50X25ld2xpbmUgPSBwcmludF9uZXdsaW5lXG5sZXQgcHJlcnJfY2hhciA9IHByZXJyX2NoYXJcbmxldCBwcmVycl9zdHJpbmcgPSBwcmVycl9zdHJpbmdcbmxldCBwcmVycl9ieXRlcyA9IHByZXJyX2J5dGVzXG5sZXQgcHJlcnJfaW50ID0gcHJlcnJfaW50XG5sZXQgcHJlcnJfZmxvYXQgPSBwcmVycl9mbG9hdFxubGV0IHByZXJyX2VuZGxpbmUgPSBwcmVycl9lbmRsaW5lXG5sZXQgcHJlcnJfbmV3bGluZSA9IHByZXJyX25ld2xpbmVcbmxldCByZWFkX2xpbmUgPSByZWFkX2xpbmVcbmxldCByZWFkX2ludCA9IHJlYWRfaW50XG5sZXQgcmVhZF9pbnRfb3B0ID0gcmVhZF9pbnRfb3B0XG5sZXQgcmVhZF9mbG9hdCA9IHJlYWRfZmxvYXRcbmxldCByZWFkX2Zsb2F0X29wdCA9IHJlYWRfZmxvYXRfb3B0XG50eXBlIG5vbnJlYyBvcGVuX2ZsYWcgPSBvcGVuX2ZsYWcgPVxuICAgIE9wZW5fcmRvbmx5XG4gIHwgT3Blbl93cm9ubHlcbiAgfCBPcGVuX2FwcGVuZFxuICB8IE9wZW5fY3JlYXRcbiAgfCBPcGVuX3RydW5jXG4gIHwgT3Blbl9leGNsXG4gIHwgT3Blbl9iaW5hcnlcbiAgfCBPcGVuX3RleHRcbiAgfCBPcGVuX25vbmJsb2NrXG5sZXQgb3Blbl9vdXQgPSBvcGVuX291dFxubGV0IG9wZW5fb3V0X2JpbiA9IG9wZW5fb3V0X2JpblxubGV0IG9wZW5fb3V0X2dlbiA9IG9wZW5fb3V0X2dlblxubGV0IGZsdXNoID0gZmx1c2hcbmxldCBmbHVzaF9hbGwgPSBmbHVzaF9hbGxcbmxldCBvdXRwdXRfY2hhciA9IG91dHB1dF9jaGFyXG5sZXQgb3V0cHV0X3N0cmluZyA9IG91dHB1dF9zdHJpbmdcbmxldCBvdXRwdXRfYnl0ZXMgPSBvdXRwdXRfYnl0ZXNcbmxldCBvdXRwdXQgPSBvdXRwdXRcbmxldCBvdXRwdXRfc3Vic3RyaW5nID0gb3V0cHV0X3N1YnN0cmluZ1xubGV0IG91dHB1dF9ieXRlID0gb3V0cHV0X2J5dGVcbmxldCBvdXRwdXRfYmluYXJ5X2ludCA9IG91dHB1dF9iaW5hcnlfaW50XG5sZXQgb3V0cHV0X3ZhbHVlID0gb3V0cHV0X3ZhbHVlXG5sZXQgc2Vla19vdXQgPSBzZWVrX291dFxubGV0IHBvc19vdXQgPSBwb3Nfb3V0XG5sZXQgb3V0X2NoYW5uZWxfbGVuZ3RoID0gb3V0X2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2Vfb3V0ID0gY2xvc2Vfb3V0XG5sZXQgY2xvc2Vfb3V0X25vZXJyID0gY2xvc2Vfb3V0X25vZXJyXG5sZXQgc2V0X2JpbmFyeV9tb2RlX291dCA9IHNldF9iaW5hcnlfbW9kZV9vdXRcbmxldCBvcGVuX2luID0gb3Blbl9pblxubGV0IG9wZW5faW5fYmluID0gb3Blbl9pbl9iaW5cbmxldCBvcGVuX2luX2dlbiA9IG9wZW5faW5fZ2VuXG5sZXQgaW5wdXRfY2hhciA9IGlucHV0X2NoYXJcbmxldCBpbnB1dF9saW5lID0gaW5wdXRfbGluZVxubGV0IGlucHV0ID0gaW5wdXRcbmxldCByZWFsbHlfaW5wdXQgPSByZWFsbHlfaW5wdXRcbmxldCByZWFsbHlfaW5wdXRfc3RyaW5nID0gcmVhbGx5X2lucHV0X3N0cmluZ1xubGV0IGlucHV0X2J5dGUgPSBpbnB1dF9ieXRlXG5sZXQgaW5wdXRfYmluYXJ5X2ludCA9IGlucHV0X2JpbmFyeV9pbnRcbmxldCBpbnB1dF92YWx1ZSA9IGlucHV0X3ZhbHVlXG5sZXQgc2Vla19pbiA9IHNlZWtfaW5cbmxldCBwb3NfaW4gPSBwb3NfaW5cbmxldCBpbl9jaGFubmVsX2xlbmd0aCA9IGluX2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2VfaW4gPSBjbG9zZV9pblxubGV0IGNsb3NlX2luX25vZXJyID0gY2xvc2VfaW5fbm9lcnJcbmxldCBzZXRfYmluYXJ5X21vZGVfaW4gPSBzZXRfYmluYXJ5X21vZGVfaW5cbm1vZHVsZSBMYXJnZUZpbGUgPSBMYXJnZUZpbGVcbnR5cGUgbm9ucmVjICdhIHJlZiA9ICdhIHJlZiA9IHsgbXV0YWJsZSBjb250ZW50cyA6ICdhIH1cbmV4dGVybmFsIHJlZiA6ICdhIC0+ICdhIHJlZiA9IFwiJW1ha2VtdXRhYmxlXCJcbmV4dGVybmFsICggISApIDogJ2EgcmVmIC0+ICdhID0gXCIlZmllbGQwXCJcbmV4dGVybmFsICggOj0gKSA6ICdhIHJlZiAtPiAnYSAtPiB1bml0ID0gXCIlc2V0ZmllbGQwXCJcbmV4dGVybmFsIGluY3IgOiBpbnQgcmVmIC0+IHVuaXQgPSBcIiVpbmNyXCJcbmV4dGVybmFsIGRlY3IgOiBpbnQgcmVmIC0+IHVuaXQgPSBcIiVkZWNyXCJcbnR5cGUgbm9ucmVjICgnYSwnYikgcmVzdWx0ID0gKCdhLCdiKSByZXN1bHQgPSBPayBvZiAnYSB8IEVycm9yIG9mICdiXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID1cbiAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2XG50eXBlICgnYSwgJ2IsICdjLCAnZCkgZm9ybWF0NCA9ICgnYSwgJ2IsICdjLCAnYywgJ2MsICdkKSBmb3JtYXQ2XG50eXBlICgnYSwgJ2IsICdjKSBmb3JtYXQgPSAoJ2EsICdiLCAnYywgJ2MpIGZvcm1hdDRcbmxldCBzdHJpbmdfb2ZfZm9ybWF0ID0gc3RyaW5nX29mX2Zvcm1hdFxuZXh0ZXJuYWwgZm9ybWF0X29mX3N0cmluZyA6XG4gICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+XG4gICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID0gXCIlaWRlbnRpdHlcIlxubGV0ICggXl4gKSA9ICggXl4gKVxubGV0IGV4aXQgPSBleGl0XG5sZXQgYXRfZXhpdCA9IGF0X2V4aXRcbmxldCB2YWxpZF9mbG9hdF9sZXhlbSA9IHZhbGlkX2Zsb2F0X2xleGVtXG5sZXQgZG9fYXRfZXhpdCA9IGRvX2F0X2V4aXRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgR2FicmllbCBTY2hlcmVyLCBwcm9qZXQgUGFyc2lmYWwsIElOUklBIFNhY2xheSAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTkgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAoJ2EsICdiKSB0ID0gTGVmdCBvZiAnYSB8IFJpZ2h0IG9mICdiXG5cbmxldCBsZWZ0IHYgPSBMZWZ0IHZcbmxldCByaWdodCB2ID0gUmlnaHQgdlxuXG5sZXQgaXNfbGVmdCA9IGZ1bmN0aW9uXG58IExlZnQgXyAtPiB0cnVlXG58IFJpZ2h0IF8gLT4gZmFsc2VcblxubGV0IGlzX3JpZ2h0ID0gZnVuY3Rpb25cbnwgTGVmdCBfIC0+IGZhbHNlXG58IFJpZ2h0IF8gLT4gdHJ1ZVxuXG5sZXQgZmluZF9sZWZ0ID0gZnVuY3Rpb25cbnwgTGVmdCB2IC0+IFNvbWUgdlxufCBSaWdodCBfIC0+IE5vbmVcblxubGV0IGZpbmRfcmlnaHQgPSBmdW5jdGlvblxufCBMZWZ0IF8gLT4gTm9uZVxufCBSaWdodCB2IC0+IFNvbWUgdlxuXG5sZXQgbWFwX2xlZnQgZiA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBMZWZ0IChmIHYpXG58IFJpZ2h0IF8gYXMgZSAtPiBlXG5cbmxldCBtYXBfcmlnaHQgZiA9IGZ1bmN0aW9uXG58IExlZnQgXyBhcyBlIC0+IGVcbnwgUmlnaHQgdiAtPiBSaWdodCAoZiB2KVxuXG5sZXQgbWFwIH5sZWZ0IH5yaWdodCA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBMZWZ0IChsZWZ0IHYpXG58IFJpZ2h0IHYgLT4gUmlnaHQgKHJpZ2h0IHYpXG5cbmxldCBmb2xkIH5sZWZ0IH5yaWdodCA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBsZWZ0IHZcbnwgUmlnaHQgdiAtPiByaWdodCB2XG5cbmxldCBpdGVyID0gZm9sZFxuXG5sZXQgZm9yX2FsbCA9IGZvbGRcblxubGV0IGVxdWFsIH5sZWZ0IH5yaWdodCBlMSBlMiA9IG1hdGNoIGUxLCBlMiB3aXRoXG58IExlZnQgdjEsIExlZnQgdjIgLT4gbGVmdCB2MSB2MlxufCBSaWdodCB2MSwgUmlnaHQgdjIgLT4gcmlnaHQgdjEgdjJcbnwgTGVmdCBfLCBSaWdodCBfIHwgUmlnaHQgXywgTGVmdCBfIC0+IGZhbHNlXG5cbmxldCBjb21wYXJlIH5sZWZ0IH5yaWdodCBlMSBlMiA9IG1hdGNoIGUxLCBlMiB3aXRoXG58IExlZnQgdjEsIExlZnQgdjIgLT4gbGVmdCB2MSB2MlxufCBSaWdodCB2MSwgUmlnaHQgdjIgLT4gcmlnaHQgdjEgdjJcbnwgTGVmdCBfLCBSaWdodCBfIC0+ICgtMSlcbnwgUmlnaHQgXywgTGVmdCBfIC0+IDFcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogT3BlcmF0aW9ucyBvbiBpbnRlcm5hbCByZXByZXNlbnRhdGlvbnMgb2YgdmFsdWVzICopXG5cbnR5cGUgdFxuXG50eXBlIHJhd19kYXRhID0gbmF0aXZlaW50XG5cbmV4dGVybmFsIHJlcHIgOiAnYSAtPiB0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgb2JqIDogdCAtPiAnYSA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIG1hZ2ljIDogJ2EgLT4gJ2IgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBpc19pbnQgOiB0IC0+IGJvb2wgPSBcIiVvYmpfaXNfaW50XCJcbmxldCBbQGlubGluZSBhbHdheXNdIGlzX2Jsb2NrIGEgPSBub3QgKGlzX2ludCBhKVxuZXh0ZXJuYWwgdGFnIDogdCAtPiBpbnQgPSBcImNhbWxfb2JqX3RhZ1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzZXRfdGFnIDogdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9vYmpfc2V0X3RhZ1wiXG5leHRlcm5hbCBzaXplIDogdCAtPiBpbnQgPSBcIiVvYmpfc2l6ZVwiXG5leHRlcm5hbCByZWFjaGFibGVfd29yZHMgOiB0IC0+IGludCA9IFwiY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzXCJcbmV4dGVybmFsIGZpZWxkIDogdCAtPiBpbnQgLT4gdCA9IFwiJW9ial9maWVsZFwiXG5leHRlcm5hbCBzZXRfZmllbGQgOiB0IC0+IGludCAtPiB0IC0+IHVuaXQgPSBcIiVvYmpfc2V0X2ZpZWxkXCJcbmV4dGVybmFsIGZsb2F0YXJyYXlfZ2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgPSBcImNhbWxfZmxvYXRhcnJheV9nZXRcIlxuZXh0ZXJuYWwgZmxvYXRhcnJheV9zZXQgOlxuICAgIGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXQgPSBcImNhbWxfZmxvYXRhcnJheV9zZXRcIlxubGV0IFtAaW5saW5lIGFsd2F5c10gZG91YmxlX2ZpZWxkIHggaSA9IGZsb2F0YXJyYXlfZ2V0IChvYmogeCA6IGZsb2F0YXJyYXkpIGlcbmxldCBbQGlubGluZSBhbHdheXNdIHNldF9kb3VibGVfZmllbGQgeCBpIHYgPVxuICBmbG9hdGFycmF5X3NldCAob2JqIHggOiBmbG9hdGFycmF5KSBpIHZcbmV4dGVybmFsIHJhd19maWVsZCA6IHQgLT4gaW50IC0+IHJhd19kYXRhID0gXCJjYW1sX29ial9yYXdfZmllbGRcIlxuZXh0ZXJuYWwgc2V0X3Jhd19maWVsZCA6IHQgLT4gaW50IC0+IHJhd19kYXRhIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX29ial9zZXRfcmF3X2ZpZWxkXCJcblxuZXh0ZXJuYWwgbmV3X2Jsb2NrIDogaW50IC0+IGludCAtPiB0ID0gXCJjYW1sX29ial9ibG9ja1wiXG5leHRlcm5hbCBkdXAgOiB0IC0+IHQgPSBcImNhbWxfb2JqX2R1cFwiXG5leHRlcm5hbCB0cnVuY2F0ZSA6IHQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfb2JqX3RydW5jYXRlXCJcbmV4dGVybmFsIGFkZF9vZmZzZXQgOiB0IC0+IEludDMyLnQgLT4gdCA9IFwiY2FtbF9vYmpfYWRkX29mZnNldFwiXG5leHRlcm5hbCB3aXRoX3RhZyA6IGludCAtPiB0IC0+IHQgPSBcImNhbWxfb2JqX3dpdGhfdGFnXCJcblxubGV0IGZpcnN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl90YWcgPSAwXG5sZXQgbGFzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3JfdGFnID0gMjQ1XG5cbmxldCBsYXp5X3RhZyA9IDI0NlxubGV0IGNsb3N1cmVfdGFnID0gMjQ3XG5sZXQgb2JqZWN0X3RhZyA9IDI0OFxubGV0IGluZml4X3RhZyA9IDI0OVxubGV0IGZvcndhcmRfdGFnID0gMjUwXG5cbmxldCBub19zY2FuX3RhZyA9IDI1MVxuXG5sZXQgYWJzdHJhY3RfdGFnID0gMjUxXG5sZXQgc3RyaW5nX3RhZyA9IDI1MlxubGV0IGRvdWJsZV90YWcgPSAyNTNcbmxldCBkb3VibGVfYXJyYXlfdGFnID0gMjU0XG5sZXQgY3VzdG9tX3RhZyA9IDI1NVxubGV0IGZpbmFsX3RhZyA9IGN1c3RvbV90YWdcblxuXG5sZXQgaW50X3RhZyA9IDEwMDBcbmxldCBvdXRfb2ZfaGVhcF90YWcgPSAxMDAxXG5sZXQgdW5hbGlnbmVkX3RhZyA9IDEwMDJcblxubW9kdWxlIENsb3N1cmUgPSBzdHJ1Y3RcbiAgdHlwZSBpbmZvID0ge1xuICAgIGFyaXR5OiBpbnQ7XG4gICAgc3RhcnRfZW52OiBpbnQ7XG4gIH1cblxuICBsZXQgaW5mb19vZl9yYXcgKGluZm8gOiBuYXRpdmVpbnQpID1cbiAgICBsZXQgb3BlbiBOYXRpdmVpbnQgaW5cbiAgICBsZXQgYXJpdHkgPVxuICAgICAgKCogc2lnbmVkOiBuZWdhdGl2ZSBmb3IgdHVwbGVkIGZ1bmN0aW9ucyAqKVxuICAgICAgaWYgU3lzLndvcmRfc2l6ZSA9IDY0IHRoZW5cbiAgICAgICAgdG9faW50IChzaGlmdF9yaWdodCBpbmZvIDU2KVxuICAgICAgZWxzZVxuICAgICAgICB0b19pbnQgKHNoaWZ0X3JpZ2h0IGluZm8gMjQpXG4gICAgaW5cbiAgICBsZXQgc3RhcnRfZW52ID1cbiAgICAgICgqIHN0YXJ0X2VudiBpcyB1bnNpZ25lZCwgYnV0IHdlIGtub3cgaXQgY2FuIGFsd2F5cyBmaXQgYW4gT0NhbWxcbiAgICAgICAgIGludGVnZXIgc28gd2UgdXNlIFt0b19pbnRdIGluc3RlYWQgb2YgW3Vuc2lnbmVkX3RvX2ludF0uICopXG4gICAgICB0b19pbnQgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKHNoaWZ0X2xlZnQgaW5mbyA4KSA5KSBpblxuICAgIHsgYXJpdHk7IHN0YXJ0X2VudiB9XG5cbiAgKCogbm90ZTogd2UgZXhwZWN0IGEgY2xvc3VyZSwgbm90IGFuIGluZml4IHBvaW50ZXIgKilcbiAgbGV0IGluZm8gKG9iaiA6IHQpID1cbiAgICBhc3NlcnQgKHRhZyBvYmogPSBjbG9zdXJlX3RhZyk7XG4gICAgaW5mb19vZl9yYXcgKHJhd19maWVsZCBvYmogMSlcbmVuZFxuXG5tb2R1bGUgRXh0ZW5zaW9uX2NvbnN0cnVjdG9yID1cbnN0cnVjdFxuICB0eXBlIHQgPSBleHRlbnNpb25fY29uc3RydWN0b3JcbiAgbGV0IG9mX3ZhbCB4ID1cbiAgICBsZXQgeCA9IHJlcHIgeCBpblxuICAgIGxldCBzbG90ID1cbiAgICAgIGlmIChpc19ibG9jayB4KSAmJiAodGFnIHgpIDw+IG9iamVjdF90YWcgJiYgKHNpemUgeCkgPj0gMSB0aGVuIGZpZWxkIHggMFxuICAgICAgZWxzZSB4XG4gICAgaW5cbiAgICBsZXQgbmFtZSA9XG4gICAgICBpZiAoaXNfYmxvY2sgc2xvdCkgJiYgKHRhZyBzbG90KSA9IG9iamVjdF90YWcgdGhlbiBmaWVsZCBzbG90IDBcbiAgICAgIGVsc2UgaW52YWxpZF9hcmcgXCJPYmouZXh0ZW5zaW9uX2NvbnN0cnVjdG9yXCJcbiAgICBpblxuICAgICAgaWYgKHRhZyBuYW1lKSA9IHN0cmluZ190YWcgdGhlbiAob2JqIHNsb3QgOiB0KVxuICAgICAgZWxzZSBpbnZhbGlkX2FyZyBcIk9iai5leHRlbnNpb25fY29uc3RydWN0b3JcIlxuXG4gIGxldCBbQGlubGluZSBhbHdheXNdIG5hbWUgKHNsb3QgOiB0KSA9XG4gICAgKG9iaiAoZmllbGQgKHJlcHIgc2xvdCkgMCkgOiBzdHJpbmcpXG5cbiAgbGV0IFtAaW5saW5lIGFsd2F5c10gaWQgKHNsb3QgOiB0KSA9XG4gICAgKG9iaiAoZmllbGQgKHJlcHIgc2xvdCkgMSkgOiBpbnQpXG5lbmRcblxubGV0IGV4dGVuc2lvbl9jb25zdHJ1Y3RvciA9IEV4dGVuc2lvbl9jb25zdHJ1Y3Rvci5vZl92YWxcbmxldCBleHRlbnNpb25fbmFtZSA9IEV4dGVuc2lvbl9jb25zdHJ1Y3Rvci5uYW1lXG5sZXQgZXh0ZW5zaW9uX2lkID0gRXh0ZW5zaW9uX2NvbnN0cnVjdG9yLmlkXG5cbm1vZHVsZSBFcGhlbWVyb24gPSBzdHJ1Y3RcbiAgdHlwZSBvYmpfdCA9IHRcblxuICB0eXBlIHQgKCoqIGVwaGVtZXJvbiAqKVxuXG4gICAoKiogVG8gY2hhbmdlIGluIHN5bmMgd2l0aCB3ZWFrLmggKilcbiAgbGV0IGFkZGl0aW9uYWxfdmFsdWVzID0gMlxuICBsZXQgbWF4X2VwaGVfbGVuZ3RoID0gU3lzLm1heF9hcnJheV9sZW5ndGggLSBhZGRpdGlvbmFsX3ZhbHVlc1xuXG4gIGV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiB0ID0gXCJjYW1sX2VwaGVfY3JlYXRlXCI7O1xuICBsZXQgY3JlYXRlIGwgPVxuICAgIGlmIG5vdCAoMCA8PSBsICYmIGwgPD0gbWF4X2VwaGVfbGVuZ3RoKSB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIk9iai5FcGhlbWVyb24uY3JlYXRlXCI7XG4gICAgY3JlYXRlIGxcblxuICBsZXQgbGVuZ3RoIHggPSBzaXplKHJlcHIgeCkgLSBhZGRpdGlvbmFsX3ZhbHVlc1xuXG4gIGxldCByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gbXNnID1cbiAgICBpZiBub3QgKDAgPD0gbyAmJiBvIDwgbGVuZ3RoIGUpIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIG1zZ1xuXG4gIGV4dGVybmFsIGdldF9rZXk6IHQgLT4gaW50IC0+IG9ial90IG9wdGlvbiA9IFwiY2FtbF9lcGhlX2dldF9rZXlcIlxuICBsZXQgZ2V0X2tleSBlIG8gPVxuICAgIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIk9iai5FcGhlbWVyb24uZ2V0X2tleVwiO1xuICAgIGdldF9rZXkgZSBvXG5cbiAgZXh0ZXJuYWwgZ2V0X2tleV9jb3B5OiB0IC0+IGludCAtPiBvYmpfdCBvcHRpb24gPSBcImNhbWxfZXBoZV9nZXRfa2V5X2NvcHlcIlxuICBsZXQgZ2V0X2tleV9jb3B5IGUgbyA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5nZXRfa2V5X2NvcHlcIjtcbiAgICBnZXRfa2V5X2NvcHkgZSBvXG5cbiAgZXh0ZXJuYWwgc2V0X2tleTogdCAtPiBpbnQgLT4gb2JqX3QgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3NldF9rZXlcIlxuICBsZXQgc2V0X2tleSBlIG8geCA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5zZXRfa2V5XCI7XG4gICAgc2V0X2tleSBlIG8geFxuXG4gIGV4dGVybmFsIHVuc2V0X2tleTogdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3Vuc2V0X2tleVwiXG4gIGxldCB1bnNldF9rZXkgZSBvID1cbiAgICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJPYmouRXBoZW1lcm9uLnVuc2V0X2tleVwiO1xuICAgIHVuc2V0X2tleSBlIG9cblxuICBleHRlcm5hbCBjaGVja19rZXk6IHQgLT4gaW50IC0+IGJvb2wgPSBcImNhbWxfZXBoZV9jaGVja19rZXlcIlxuICBsZXQgY2hlY2tfa2V5IGUgbyA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5jaGVja19rZXlcIjtcbiAgICBjaGVja19rZXkgZSBvXG5cbiAgZXh0ZXJuYWwgYmxpdF9rZXkgOiB0IC0+IGludCAtPiB0IC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgID0gXCJjYW1sX2VwaGVfYmxpdF9rZXlcIlxuXG4gIGxldCBibGl0X2tleSBlMSBvMSBlMiBvMiBsID1cbiAgICBpZiBsIDwgMCB8fCBvMSA8IDAgfHwgbzEgPiBsZW5ndGggZTEgLSBsXG4gICAgICAgfHwgbzIgPCAwIHx8IG8yID4gbGVuZ3RoIGUyIC0gbFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJPYmouRXBoZW1lcm9uLmJsaXRfa2V5XCJcbiAgICBlbHNlIGlmIGwgPD4gMCB0aGVuIGJsaXRfa2V5IGUxIG8xIGUyIG8yIGxcblxuICBleHRlcm5hbCBnZXRfZGF0YTogdCAtPiBvYmpfdCBvcHRpb24gPSBcImNhbWxfZXBoZV9nZXRfZGF0YVwiXG4gIGV4dGVybmFsIGdldF9kYXRhX2NvcHk6IHQgLT4gb2JqX3Qgb3B0aW9uID0gXCJjYW1sX2VwaGVfZ2V0X2RhdGFfY29weVwiXG4gIGV4dGVybmFsIHNldF9kYXRhOiB0IC0+IG9ial90IC0+IHVuaXQgPSBcImNhbWxfZXBoZV9zZXRfZGF0YVwiXG4gIGV4dGVybmFsIHVuc2V0X2RhdGE6IHQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3Vuc2V0X2RhdGFcIlxuICBleHRlcm5hbCBjaGVja19kYXRhOiB0IC0+IGJvb2wgPSBcImNhbWxfZXBoZV9jaGVja19kYXRhXCJcbiAgZXh0ZXJuYWwgYmxpdF9kYXRhIDogdCAtPiB0IC0+IHVuaXQgPSBcImNhbWxfZXBoZV9ibGl0X2RhdGFcIlxuXG5lbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogSW50ZXJuYWxzIG9mIGZvcmNpbmcgbGF6eSB2YWx1ZXMuICopXG5cbnR5cGUgJ2EgdCA9ICdhIGxhenlfdFxuXG5leGNlcHRpb24gVW5kZWZpbmVkXG5cbmxldCByYWlzZV91bmRlZmluZWQgPSBPYmoucmVwciAoZnVuICgpIC0+IHJhaXNlIFVuZGVmaW5lZClcblxuZXh0ZXJuYWwgbWFrZV9mb3J3YXJkIDogT2JqLnQgLT4gT2JqLnQgLT4gdW5pdCA9IFwiY2FtbF9vYmpfbWFrZV9mb3J3YXJkXCJcblxuKCogQXNzdW1lIFtibGtdIGlzIGEgYmxvY2sgd2l0aCB0YWcgbGF6eSAqKVxubGV0IGZvcmNlX2xhenlfYmxvY2sgKGJsayA6ICdhcmcgbGF6eV90KSA9XG4gIGxldCBjbG9zdXJlID0gKE9iai5vYmogKE9iai5maWVsZCAoT2JqLnJlcHIgYmxrKSAwKSA6IHVuaXQgLT4gJ2FyZykgaW5cbiAgT2JqLnNldF9maWVsZCAoT2JqLnJlcHIgYmxrKSAwIHJhaXNlX3VuZGVmaW5lZDtcbiAgdHJ5XG4gICAgbGV0IHJlc3VsdCA9IGNsb3N1cmUgKCkgaW5cbiAgICBtYWtlX2ZvcndhcmQgKE9iai5yZXByIGJsaykgKE9iai5yZXByIHJlc3VsdCk7XG4gICAgcmVzdWx0XG4gIHdpdGggZSAtPlxuICAgIE9iai5zZXRfZmllbGQgKE9iai5yZXByIGJsaykgMCAoT2JqLnJlcHIgKGZ1biAoKSAtPiByYWlzZSBlKSk7XG4gICAgcmFpc2UgZVxuXG5cbigqIEFzc3VtZSBbYmxrXSBpcyBhIGJsb2NrIHdpdGggdGFnIGxhenkgKilcbmxldCBmb3JjZV92YWxfbGF6eV9ibG9jayAoYmxrIDogJ2FyZyBsYXp5X3QpID1cbiAgbGV0IGNsb3N1cmUgPSAoT2JqLm9iaiAoT2JqLmZpZWxkIChPYmoucmVwciBibGspIDApIDogdW5pdCAtPiAnYXJnKSBpblxuICBPYmouc2V0X2ZpZWxkIChPYmoucmVwciBibGspIDAgcmFpc2VfdW5kZWZpbmVkO1xuICBsZXQgcmVzdWx0ID0gY2xvc3VyZSAoKSBpblxuICBtYWtlX2ZvcndhcmQgKE9iai5yZXByIGJsaykgKE9iai5yZXByIHJlc3VsdCk7XG4gIHJlc3VsdFxuXG5cbigqIFtmb3JjZV0gaXMgbm90IHVzZWQsIHNpbmNlIFtMYXp5LmZvcmNlXSBpcyBkZWNsYXJlZCBhcyBhIHByaW1pdGl2ZVxuICAgd2hvc2UgY29kZSBpbmxpbmVzIHRoZSB0YWcgdGVzdHMgb2YgaXRzIGFyZ3VtZW50LCBleGNlcHQgd2hlbiBhZmxcbiAgIGluc3RydW1lbnRhdGlvbiBpcyB0dXJuZWQgb24uICopXG5cbmxldCBmb3JjZSAobHp2IDogJ2FyZyBsYXp5X3QpID1cbiAgKCogVXNpbmcgW1N5cy5vcGFxdWVfaWRlbnRpdHldIHByZXZlbnRzIHR3byBwb3RlbnRpYWwgcHJvYmxlbXM6XG4gICAgIC0gSWYgdGhlIHZhbHVlIGlzIGtub3duIHRvIGhhdmUgRm9yd2FyZF90YWcsIHRoZW4gaXRzIHRhZyBjb3VsZCBoYXZlXG4gICAgICAgY2hhbmdlZCBkdXJpbmcgR0MsIHNvIHRoYXQgaW5mb3JtYXRpb24gbXVzdCBiZSBmb3Jnb3R0ZW4gKHNlZSBHUFIjNzEzXG4gICAgICAgYW5kIGlzc3VlICM3MzAxKVxuICAgICAtIElmIHRoZSB2YWx1ZSBpcyBrbm93biB0byBiZSBpbW11dGFibGUsIHRoZW4gaWYgdGhlIGNvbXBpbGVyXG4gICAgICAgY2Fubm90IHByb3ZlIHRoYXQgdGhlIGxhc3QgYnJhbmNoIGlzIG5vdCB0YWtlbiBpdCB3aWxsIGlzc3VlIGFcbiAgICAgICB3YXJuaW5nIDU5IChtb2RpZmljYXRpb24gb2YgYW4gaW1tdXRhYmxlIHZhbHVlKSAqKVxuICBsZXQgbHp2ID0gU3lzLm9wYXF1ZV9pZGVudGl0eSBsenYgaW5cbiAgbGV0IHggPSBPYmoucmVwciBsenYgaW5cbiAgbGV0IHQgPSBPYmoudGFnIHggaW5cbiAgaWYgdCA9IE9iai5mb3J3YXJkX3RhZyB0aGVuIChPYmoub2JqIChPYmouZmllbGQgeCAwKSA6ICdhcmcpIGVsc2VcbiAgaWYgdCA8PiBPYmoubGF6eV90YWcgdGhlbiAoT2JqLm9iaiB4IDogJ2FyZylcbiAgZWxzZSBmb3JjZV9sYXp5X2Jsb2NrIGx6dlxuXG5cbmxldCBmb3JjZV92YWwgKGx6diA6ICdhcmcgbGF6eV90KSA9XG4gIGxldCB4ID0gT2JqLnJlcHIgbHp2IGluXG4gIGxldCB0ID0gT2JqLnRhZyB4IGluXG4gIGlmIHQgPSBPYmouZm9yd2FyZF90YWcgdGhlbiAoT2JqLm9iaiAoT2JqLmZpZWxkIHggMCkgOiAnYXJnKSBlbHNlXG4gIGlmIHQgPD4gT2JqLmxhenlfdGFnIHRoZW4gKE9iai5vYmogeCA6ICdhcmcpXG4gIGVsc2UgZm9yY2VfdmFsX2xhenlfYmxvY2sgbHp2XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbTGF6eV06IGRlZmVycmVkIGNvbXB1dGF0aW9ucyAqKVxuXG5cbigqXG4gICBXQVJOSU5HOiBzb21lIHB1cnBsZSBtYWdpYyBpcyBnb2luZyBvbiBoZXJlLiAgRG8gbm90IHRha2UgdGhpcyBmaWxlXG4gICBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwcm9ncmFtIGluIE9DYW1sLlxuKilcblxuXG4oKiBXZSBtYWtlIHVzZSBvZiB0d28gc3BlY2lhbCB0YWdzIHByb3ZpZGVkIGJ5IHRoZSBydW50aW1lOlxuICAgW2xhenlfdGFnXSBhbmQgW2ZvcndhcmRfdGFnXS5cblxuICAgQSB2YWx1ZSBvZiB0eXBlIFsnYSBMYXp5LnRdIGNhbiBiZSBvbmUgb2YgdGhyZWUgdGhpbmdzOlxuICAgMS4gQSBibG9jayBvZiBzaXplIDEgd2l0aCB0YWcgW2xhenlfdGFnXS4gIEl0cyBmaWVsZCBpcyBhIGNsb3N1cmUgb2ZcbiAgICAgIHR5cGUgW3VuaXQgLT4gJ2FdIHRoYXQgY29tcHV0ZXMgdGhlIHZhbHVlLlxuICAgMi4gQSBibG9jayBvZiBzaXplIDEgd2l0aCB0YWcgW2ZvcndhcmRfdGFnXS4gIEl0cyBmaWVsZCBpcyB0aGUgdmFsdWVcbiAgICAgIG9mIHR5cGUgWydhXSB0aGF0IHdhcyBjb21wdXRlZC5cbiAgIDMuIEFueXRoaW5nIGVsc2UgZXhjZXB0IGEgZmxvYXQuICBUaGlzIGhhcyB0eXBlIFsnYV0gYW5kIGlzIHRoZSB2YWx1ZVxuICAgICAgdGhhdCB3YXMgY29tcHV0ZWQuXG4gICBFeGNlcHRpb25zIGFyZSBzdG9yZWQgaW4gZm9ybWF0ICgxKS5cbiAgIFRoZSBHQyB3aWxsIG1hZ2ljYWxseSBjaGFuZ2UgdGhpbmdzIGZyb20gKDIpIHRvICgzKSBhY2NvcmRpbmcgdG8gaXRzXG4gICBmYW5jeS5cblxuICAgSWYgT0NhbWwgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgLWZsYXQtZmxvYXQtYXJyYXkgb3B0aW9uICh3aGljaCBpc1xuICAgY3VycmVudGx5IHRoZSBkZWZhdWx0KSwgdGhlIGZvbGxvd2luZyBpcyBhbHNvIHRydWU6XG4gICBXZSBjYW5ub3QgdXNlIHJlcHJlc2VudGF0aW9uICgzKSBmb3IgYSBbZmxvYXQgTGF6eS50XSBiZWNhdXNlXG4gICBbY2FtbF9tYWtlX2FycmF5XSBhc3N1bWVzIHRoYXQgb25seSBhIFtmbG9hdF0gdmFsdWUgY2FuIGhhdmUgdGFnXG4gICBbRG91YmxlX3RhZ10uXG5cbiAgIFdlIGhhdmUgdG8gdXNlIHRoZSBidWlsdC1pbiB0eXBlIGNvbnN0cnVjdG9yIFtsYXp5X3RdIHRvXG4gICBsZXQgdGhlIGNvbXBpbGVyIGltcGxlbWVudCB0aGUgc3BlY2lhbCB0eXBpbmcgYW5kIGNvbXBpbGF0aW9uXG4gICBydWxlcyBmb3IgdGhlIFtsYXp5XSBrZXl3b3JkLlxuKilcblxudHlwZSAnYSB0ID0gJ2EgQ2FtbGludGVybmFsTGF6eS50XG5cbmV4Y2VwdGlvbiBVbmRlZmluZWQgPSBDYW1saW50ZXJuYWxMYXp5LlVuZGVmaW5lZFxuXG5leHRlcm5hbCBtYWtlX2ZvcndhcmQgOiAnYSAtPiAnYSBsYXp5X3QgPSBcImNhbWxfbGF6eV9tYWtlX2ZvcndhcmRcIlxuXG5leHRlcm5hbCBmb3JjZSA6ICdhIHQgLT4gJ2EgPSBcIiVsYXp5X2ZvcmNlXCJcblxuXG5sZXQgZm9yY2VfdmFsID0gQ2FtbGludGVybmFsTGF6eS5mb3JjZV92YWxcblxubGV0IGZyb21fZnVuIChmIDogdW5pdCAtPiAnYXJnKSA9XG4gIGxldCB4ID0gT2JqLm5ld19ibG9jayBPYmoubGF6eV90YWcgMSBpblxuICBPYmouc2V0X2ZpZWxkIHggMCAoT2JqLnJlcHIgZik7XG4gIChPYmoub2JqIHggOiAnYXJnIHQpXG5cbmxldCBmcm9tX3ZhbCAodiA6ICdhcmcpID1cbiAgbGV0IHQgPSBPYmoudGFnIChPYmoucmVwciB2KSBpblxuICBpZiB0ID0gT2JqLmZvcndhcmRfdGFnIHx8IHQgPSBPYmoubGF6eV90YWcgfHwgdCA9IE9iai5kb3VibGVfdGFnIHRoZW4gYmVnaW5cbiAgICBtYWtlX2ZvcndhcmQgdlxuICBlbmQgZWxzZSBiZWdpblxuICAgIChPYmoubWFnaWMgdiA6ICdhcmcgdClcbiAgZW5kXG5cblxubGV0IGlzX3ZhbCAobCA6ICdhcmcgdCkgPSBPYmoudGFnIChPYmoucmVwciBsKSA8PiBPYmoubGF6eV90YWdcblxubGV0IGxhenlfZnJvbV9mdW4gPSBmcm9tX2Z1blxuXG5sZXQgbGF6eV9mcm9tX3ZhbCA9IGZyb21fdmFsXG5cbmxldCBsYXp5X2lzX3ZhbCA9IGlzX3ZhbFxuXG5cbmxldCBtYXAgZiB4ID1cbiAgbGF6eSAoZiAoZm9yY2UgeCkpXG5cbmxldCBtYXBfdmFsIGYgeCA9XG4gIGlmIGlzX3ZhbCB4XG4gIHRoZW4gbGF6eV9mcm9tX3ZhbCAoZiAoZm9yY2UgeCkpXG4gIGVsc2UgbGF6eSAoZiAoZm9yY2UgeCkpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgU2ltb24gQ3J1YW5lcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbU2VxXTogZnVuY3Rpb25hbCBpdGVyYXRvcnMgKilcblxudHlwZSArJ2Egbm9kZSA9XG4gIHwgTmlsXG4gIHwgQ29ucyBvZiAnYSAqICdhIHRcblxuYW5kICdhIHQgPSB1bml0IC0+ICdhIG5vZGVcblxubGV0IGVtcHR5ICgpID0gTmlsXG5cbmxldCByZXR1cm4geCAoKSA9IENvbnMgKHgsIGVtcHR5KVxuXG5sZXQgY29ucyB4IG5leHQgKCkgPSBDb25zICh4LCBuZXh0KVxuXG5sZXQgcmVjIGFwcGVuZCBzZXExIHNlcTIgKCkgPVxuICBtYXRjaCBzZXExKCkgd2l0aFxuICB8IE5pbCAtPiBzZXEyKClcbiAgfCBDb25zICh4LCBuZXh0KSAtPiBDb25zICh4LCBhcHBlbmQgbmV4dCBzZXEyKVxuXG5sZXQgcmVjIG1hcCBmIHNlcSAoKSA9IG1hdGNoIHNlcSgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT4gQ29ucyAoZiB4LCBtYXAgZiBuZXh0KVxuXG5sZXQgcmVjIGZpbHRlcl9tYXAgZiBzZXEgKCkgPSBtYXRjaCBzZXEoKSB3aXRoXG4gIHwgTmlsIC0+IE5pbFxuICB8IENvbnMgKHgsIG5leHQpIC0+XG4gICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgICB8IE5vbmUgLT4gZmlsdGVyX21hcCBmIG5leHQgKClcbiAgICAgICAgfCBTb21lIHkgLT4gQ29ucyAoeSwgZmlsdGVyX21hcCBmIG5leHQpXG5cbmxldCByZWMgZmlsdGVyIGYgc2VxICgpID0gbWF0Y2ggc2VxKCkgd2l0aFxuICB8IE5pbCAtPiBOaWxcbiAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgICAgaWYgZiB4XG4gICAgICB0aGVuIENvbnMgKHgsIGZpbHRlciBmIG5leHQpXG4gICAgICBlbHNlIGZpbHRlciBmIG5leHQgKClcblxubGV0IHJlYyBjb25jYXQgc2VxICgpID0gbWF0Y2ggc2VxICgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgYXBwZW5kIHggKGNvbmNhdCBuZXh0KSAoKVxuXG5sZXQgcmVjIGZsYXRfbWFwIGYgc2VxICgpID0gbWF0Y2ggc2VxICgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICBhcHBlbmQgKGYgeCkgKGZsYXRfbWFwIGYgbmV4dCkgKClcblxubGV0IGNvbmNhdF9tYXAgPSBmbGF0X21hcFxuXG5sZXQgcmVjIGZvbGRfbGVmdCBmIGFjYyBzZXEgPVxuICBtYXRjaCBzZXEgKCkgd2l0aFxuICAgIHwgTmlsIC0+IGFjY1xuICAgIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgICAgbGV0IGFjYyA9IGYgYWNjIHggaW5cbiAgICAgICAgZm9sZF9sZWZ0IGYgYWNjIG5leHRcblxubGV0IHJlYyBpdGVyIGYgc2VxID1cbiAgbWF0Y2ggc2VxICgpIHdpdGhcbiAgICB8IE5pbCAtPiAoKVxuICAgIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgICAgZiB4O1xuICAgICAgICBpdGVyIGYgbmV4dFxuXG5sZXQgcmVjIHVuZm9sZCBmIHUgKCkgPVxuICBtYXRjaCBmIHUgd2l0aFxuICB8IE5vbmUgLT4gTmlsXG4gIHwgU29tZSAoeCwgdScpIC0+IENvbnMgKHgsIHVuZm9sZCBmIHUnKVxuXG5sZXQgaXNfZW1wdHkgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zIChfLCBfKSAtPlxuICAgICAgZmFsc2VcblxubGV0IHVuY29ucyB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgU29tZSAoeCwgeHMpXG4gIHwgTmlsIC0+XG4gICAgICBOb25lXG5cblxuXG5sZXQgcmVjIGxlbmd0aF9hdXggYWNjdSB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgYWNjdVxuICB8IENvbnMgKF8sIHhzKSAtPlxuICAgICAgbGVuZ3RoX2F1eCAoYWNjdSArIDEpIHhzXG5cbmxldFtAaW5saW5lXSBsZW5ndGggeHMgPVxuICBsZW5ndGhfYXV4IDAgeHNcblxubGV0IHJlYyBpdGVyaV9hdXggZiBpIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICAoKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgZiBpIHg7XG4gICAgICBpdGVyaV9hdXggZiAoaSsxKSB4c1xuXG5sZXRbQGlubGluZV0gaXRlcmkgZiB4cyA9XG4gIGl0ZXJpX2F1eCBmIDAgeHNcblxubGV0IHJlYyBmb2xkX2xlZnRpX2F1eCBmIGFjY3UgaSB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgYWNjdVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbGV0IGFjY3UgPSBmIGFjY3UgaSB4IGluXG4gICAgICBmb2xkX2xlZnRpX2F1eCBmIGFjY3UgKGkrMSkgeHNcblxubGV0W0BpbmxpbmVdIGZvbGRfbGVmdGkgZiBhY2N1IHhzID1cbiAgZm9sZF9sZWZ0aV9hdXggZiBhY2N1IDAgeHNcblxubGV0IHJlYyBmb3JfYWxsIHAgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIHAgeCAmJiBmb3JfYWxsIHAgeHNcblxubGV0IHJlYyBleGlzdHMgcCB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgZmFsc2VcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIHAgeCB8fCBleGlzdHMgcCB4c1xuXG5sZXQgcmVjIGZpbmQgcCB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTm9uZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgaWYgcCB4IHRoZW4gU29tZSB4IGVsc2UgZmluZCBwIHhzXG5cbmxldCByZWMgZmluZF9tYXAgZiB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTm9uZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgIGZpbmRfbWFwIGYgeHNcbiAgICAgIHwgU29tZSBfIGFzIHJlc3VsdCAtPlxuICAgICAgICAgIHJlc3VsdFxuXG4oKiBbaXRlcjJdLCBbZm9sZF9sZWZ0Ml0sIFtmb3JfYWxsMl0sIFtleGlzdHMyXSwgW21hcDJdLCBbemlwXSB3b3JrIGFsc28gaW5cbiAgIHRoZSBjYXNlIHdoZXJlIHRoZSB0d28gc2VxdWVuY2VzIGhhdmUgZGlmZmVyZW50IGxlbmd0aHMuIFRoZXkgc3RvcCBhcyBzb29uXG4gICBhcyBvbmUgc2VxdWVuY2UgaXMgZXhoYXVzdGVkLiBUaGVpciBiZWhhdmlvciBpcyBzbGlnaHRseSBhc3ltbWV0cmljOiB3aGVuXG4gICBbeHNdIGlzIGVtcHR5LCB0aGV5IGRvIG5vdCBmb3JjZSBbeXNdOyBob3dldmVyLCB3aGVuIFt5c10gaXMgZW1wdHksIFt4c10gaXNcbiAgIGZvcmNlZCwgZXZlbiB0aG91Z2ggdGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24gYXBwbGljYXRpb24gW3hzKCldIHR1cm5zIG91dFxuICAgdG8gYmUgdXNlbGVzcy4gKilcblxubGV0IHJlYyBpdGVyMiBmIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICAoKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgICgpXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIGYgeCB5O1xuICAgICAgICAgIGl0ZXIyIGYgeHMgeXNcblxubGV0IHJlYyBmb2xkX2xlZnQyIGYgYWNjdSB4cyB5cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgYWNjdVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgIGFjY3VcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgbGV0IGFjY3UgPSBmIGFjY3UgeCB5IGluXG4gICAgICAgICAgZm9sZF9sZWZ0MiBmIGFjY3UgeHMgeXNcblxubGV0IHJlYyBmb3JfYWxsMiBmIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICB0cnVlXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgdHJ1ZVxuICAgICAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgICBmIHggeSAmJiBmb3JfYWxsMiBmIHhzIHlzXG5cbmxldCByZWMgZXhpc3RzMiBmIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBmYWxzZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIGYgeCB5IHx8IGV4aXN0czIgZiB4cyB5c1xuXG5sZXQgcmVjIGVxdWFsIGVxIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSwgeXMoKSB3aXRoXG4gIHwgTmlsLCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zICh4LCB4cyksIENvbnMgKHksIHlzKSAtPlxuICAgICAgZXEgeCB5ICYmIGVxdWFsIGVxIHhzIHlzXG4gIHwgTmlsLCBDb25zIChfLCBfKVxuICB8IENvbnMgKF8sIF8pLCBOaWwgLT5cbiAgICAgIGZhbHNlXG5cbmxldCByZWMgY29tcGFyZSBjbXAgeHMgeXMgPVxuICBtYXRjaCB4cygpLCB5cygpIHdpdGhcbiAgfCBOaWwsIE5pbCAtPlxuICAgICAgMFxuICB8IENvbnMgKHgsIHhzKSwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICBsZXQgYyA9IGNtcCB4IHkgaW5cbiAgICAgIGlmIGMgPD4gMCB0aGVuIGMgZWxzZSBjb21wYXJlIGNtcCB4cyB5c1xuICB8IE5pbCwgQ29ucyAoXywgXykgLT5cbiAgICAgIC0xXG4gIHwgQ29ucyAoXywgXyksIE5pbCAtPlxuICAgICAgKzFcblxuXG5cbigqIFtpbml0X2F1eCBmIGkgal0gaXMgdGhlIHNlcXVlbmNlIFtmIGksIC4uLiwgZiAoai0xKV0uICopXG5cbmxldCByZWMgaW5pdF9hdXggZiBpIGogKCkgPVxuICBpZiBpIDwgaiB0aGVuIGJlZ2luXG4gICAgQ29ucyAoZiBpLCBpbml0X2F1eCBmIChpICsgMSkgailcbiAgZW5kXG4gIGVsc2VcbiAgICBOaWxcblxubGV0IGluaXQgbiBmID1cbiAgaWYgbiA8IDAgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU2VxLmluaXRcIlxuICBlbHNlXG4gICAgaW5pdF9hdXggZiAwIG5cblxubGV0IHJlYyByZXBlYXQgeCAoKSA9XG4gIENvbnMgKHgsIHJlcGVhdCB4KVxuXG5sZXQgcmVjIGZvcmV2ZXIgZiAoKSA9XG4gIENvbnMgKGYoKSwgZm9yZXZlciBmKVxuXG4oKiBUaGlzIHByZWxpbWluYXJ5IGRlZmluaXRpb24gb2YgW2N5Y2xlXSByZXF1aXJlcyB0aGUgc2VxdWVuY2UgW3hzXVxuICAgdG8gYmUgbm9uZW1wdHkuIEFwcGx5aW5nIGl0IHRvIGFuIGVtcHR5IHNlcXVlbmNlIHdvdWxkIHByb2R1Y2UgYVxuICAgc2VxdWVuY2UgdGhhdCBkaXZlcmdlcyB3aGVuIGl0IGlzIGZvcmNlZC4gKilcblxubGV0IHJlYyBjeWNsZV9ub25lbXB0eSB4cyAoKSA9XG4gIGFwcGVuZCB4cyAoY3ljbGVfbm9uZW1wdHkgeHMpICgpXG5cbigqIFtjeWNsZSB4c10gY2hlY2tzIHdoZXRoZXIgW3hzXSBpcyBlbXB0eSBhbmQsIGlmIHNvLCByZXR1cm5zIGFuIGVtcHR5XG4gICBzZXF1ZW5jZS4gT3RoZXJ3aXNlLCBbY3ljbGUgeHNdIHByb2R1Y2VzIG9uZSBjb3B5IG9mIFt4c10gZm9sbG93ZWRcbiAgIHdpdGggdGhlIGluZmluaXRlIHNlcXVlbmNlIFtjeWNsZV9ub25lbXB0eSB4c10uIFRodXMsIHRoZSBub25lbXB0aW5lc3NcbiAgIGNoZWNrIGlzIHBlcmZvcm1lZCBqdXN0IG9uY2UuICopXG5cbmxldCBjeWNsZSB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMnKSAtPlxuICAgICAgQ29ucyAoeCwgYXBwZW5kIHhzJyAoY3ljbGVfbm9uZW1wdHkgeHMpKVxuXG4oKiBbaXRlcmF0ZTEgZiB4XSBpcyB0aGUgc2VxdWVuY2UgW2YgeCwgZiAoZiB4KSwgLi4uXS5cbiAgIEl0IGlzIGVxdWl2YWxlbnQgdG8gW3RhaWwgKGl0ZXJhdGUgZiB4KV0uXG4gICBbaXRlcmF0ZTFdIGlzIHVzZWQgYXMgYSBidWlsZGluZyBibG9jayBpbiB0aGUgZGVmaW5pdGlvbiBvZiBbaXRlcmF0ZV0uICopXG5cbmxldCByZWMgaXRlcmF0ZTEgZiB4ICgpID1cbiAgbGV0IHkgPSBmIHggaW5cbiAgQ29ucyAoeSwgaXRlcmF0ZTEgZiB5KVxuXG4oKiBbaXRlcmF0ZSBmIHhdIGlzIHRoZSBzZXF1ZW5jZSBbeCwgZiB4LCAuLi5dLiAqKVxuXG4oKiBUaGUgcmVhc29uIHdoeSB3ZSBnaXZlIHRoaXMgc2xpZ2h0bHkgaW5kaXJlY3QgZGVmaW5pdGlvbiBvZiBbaXRlcmF0ZV0sXG4gICBhcyBvcHBvc2VkIHRvIHRoZSBtb3JlIG5haXZlIGRlZmluaXRpb24gdGhhdCBtYXkgY29tZSB0byBtaW5kLCBpcyB0aGF0XG4gICB3ZSBhcmUgY2FyZWZ1bCB0byBhdm9pZCBldmFsdWF0aW5nIFtmIHhdIHVudGlsIHRoaXMgZnVuY3Rpb24gY2FsbCBpc1xuICAgYWN0dWFsbHkgbmVjZXNzYXJ5LiBUaGUgbmFpdmUgZGVmaW5pdGlvbiAobm90IHNob3duIGhlcmUpIGNvbXB1dGVzIHRoZVxuICAgc2Vjb25kIGFyZ3VtZW50IG9mIHRoZSBzZXF1ZW5jZSwgW2YgeF0sIHdoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IGlzXG4gICByZXF1ZXN0ZWQgYnkgdGhlIHVzZXIuICopXG5cbmxldCBpdGVyYXRlIGYgeCA9XG4gIGNvbnMgeCAoaXRlcmF0ZTEgZiB4KVxuXG5cblxubGV0IHJlYyBtYXBpX2F1eCBmIGkgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgQ29ucyAoZiBpIHgsIG1hcGlfYXV4IGYgKGkrMSkgeHMpXG5cbmxldFtAaW5saW5lXSBtYXBpIGYgeHMgPVxuICBtYXBpX2F1eCBmIDAgeHNcblxuKCogW3RhaWxfc2NhbiBmIHMgeHNdIGlzIGVxdWl2YWxlbnQgdG8gW3RhaWwgKHNjYW4gZiBzIHhzKV0uXG4gICBbdGFpbF9zY2FuXSBpcyB1c2VkIGFzIGEgYnVpbGRpbmcgYmxvY2sgaW4gdGhlIGRlZmluaXRpb24gb2YgW3NjYW5dLiAqKVxuXG4oKiBUaGlzIHNsaWdodGx5IGluZGlyZWN0IGRlZmluaXRpb24gb2YgW3NjYW5dIGlzIG1lYW50IHRvIGF2b2lkIGNvbXB1dGluZ1xuICAgZWxlbWVudHMgdG9vIGVhcmx5OyBzZWUgdGhlIGFib3ZlIGNvbW1lbnQgYWJvdXQgW2l0ZXJhdGUxXSBhbmQgW2l0ZXJhdGVdLiAqKVxuXG5sZXQgcmVjIHRhaWxfc2NhbiBmIHMgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbGV0IHMgPSBmIHMgeCBpblxuICAgICAgQ29ucyAocywgdGFpbF9zY2FuIGYgcyB4cylcblxubGV0IHNjYW4gZiBzIHhzID1cbiAgY29ucyBzICh0YWlsX3NjYW4gZiBzIHhzKVxuXG4oKiBbdGFrZV0gaXMgZGVmaW5lZCBpbiBzdWNoIGEgd2F5IHRoYXQgW3Rha2UgMCB4c10gcmV0dXJucyBbZW1wdHldXG4gICBpbW1lZGlhdGVseSwgd2l0aG91dCBhbGxvY2F0aW5nIGFueSBtZW1vcnkuICopXG5cbmxldCByZWMgdGFrZV9hdXggbiB4cyA9XG4gIGlmIG4gPSAwIHRoZW5cbiAgICBlbXB0eVxuICBlbHNlXG4gICAgZnVuICgpIC0+XG4gICAgICBtYXRjaCB4cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgTmlsXG4gICAgICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgICAgIENvbnMgKHgsIHRha2VfYXV4IChuLTEpIHhzKVxuXG5sZXQgdGFrZSBuIHhzID1cbiAgaWYgbiA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIlNlcS50YWtlXCI7XG4gIHRha2VfYXV4IG4geHNcblxuKCogW2ZvcmNlX2Ryb3AgbiB4c10gaXMgZXF1aXZhbGVudCB0byBbZHJvcCBuIHhzICgpXS5cbiAgIFtmb3JjZV9kcm9wIG4geHNdIHJlcXVpcmVzIFtuID4gMF0uXG4gICBbZm9yY2VfZHJvcF0gaXMgdXNlZCBhcyBhIGJ1aWxkaW5nIGJsb2NrIGluIHRoZSBkZWZpbml0aW9uIG9mIFtkcm9wXS4gKilcblxubGV0IHJlYyBmb3JjZV9kcm9wIG4geHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKF8sIHhzKSAtPlxuICAgICAgbGV0IG4gPSBuIC0gMSBpblxuICAgICAgaWYgbiA9IDAgdGhlblxuICAgICAgICB4cygpXG4gICAgICBlbHNlXG4gICAgICAgIGZvcmNlX2Ryb3AgbiB4c1xuXG4oKiBbZHJvcF0gaXMgZGVmaW5lZCBpbiBzdWNoIGEgd2F5IHRoYXQgW2Ryb3AgMCB4c10gcmV0dXJucyBbeHNdIGltbWVkaWF0ZWx5LFxuICAgd2l0aG91dCBhbGxvY2F0aW5nIGFueSBtZW1vcnkuICopXG5cbmxldCBkcm9wIG4geHMgPVxuICBpZiBuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiU2VxLmRyb3BcIlxuICBlbHNlIGlmIG4gPSAwIHRoZW5cbiAgICB4c1xuICBlbHNlXG4gICAgZnVuICgpIC0+XG4gICAgICBmb3JjZV9kcm9wIG4geHNcblxubGV0IHJlYyB0YWtlX3doaWxlIHAgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgaWYgcCB4IHRoZW4gQ29ucyAoeCwgdGFrZV93aGlsZSBwIHhzKSBlbHNlIE5pbFxuXG5sZXQgcmVjIGRyb3Bfd2hpbGUgcCB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIGFzIG5vZGUgLT5cbiAgICAgIGlmIHAgeCB0aGVuIGRyb3Bfd2hpbGUgcCB4cyAoKSBlbHNlIG5vZGVcblxubGV0IHJlYyBncm91cCBlcSB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBDb25zIChjb25zIHggKHRha2Vfd2hpbGUgKGVxIHgpIHhzKSwgZ3JvdXAgZXEgKGRyb3Bfd2hpbGUgKGVxIHgpIHhzKSlcblxuZXhjZXB0aW9uIEZvcmNlZF90d2ljZVxuXG5tb2R1bGUgU3VzcGVuc2lvbiA9IHN0cnVjdFxuXG4gIHR5cGUgJ2Egc3VzcGVuc2lvbiA9XG4gICAgdW5pdCAtPiAnYVxuXG4gICgqIENvbnZlcnNpb25zLiAqKVxuXG4gIGxldCB0b19sYXp5IDogJ2Egc3VzcGVuc2lvbiAtPiAnYSBMYXp5LnQgPVxuICAgIExhenkuZnJvbV9mdW5cbiAgICAoKiBmdW4gcyAtPiBsYXp5IChzKCkpICopXG5cbiAgbGV0IGZyb21fbGF6eSAocyA6ICdhIExhenkudCkgOiAnYSBzdXNwZW5zaW9uID1cbiAgICBmdW4gKCkgLT4gTGF6eS5mb3JjZSBzXG5cbiAgKCogW21lbW9pemVdIHR1cm5zIGFuIGFyYml0cmFyeSBzdXNwZW5zaW9uIGludG8gYSBwZXJzaXN0ZW50IHN1c3BlbnNpb24uICopXG5cbiAgbGV0IG1lbW9pemUgKHMgOiAnYSBzdXNwZW5zaW9uKSA6ICdhIHN1c3BlbnNpb24gPVxuICAgIGZyb21fbGF6eSAodG9fbGF6eSBzKVxuXG4gICgqIFtmYWlsdXJlXSBpcyBhIHN1c3BlbnNpb24gdGhhdCBmYWlscyB3aGVuIGZvcmNlZC4gKilcblxuICBsZXQgZmFpbHVyZSA6IF8gc3VzcGVuc2lvbiA9XG4gICAgZnVuICgpIC0+XG4gICAgICAoKiBBIHN1c3BlbnNpb24gY3JlYXRlZCBieSBbb25jZV0gaGFzIGJlZW4gZm9yY2VkIHR3aWNlLiAqKVxuICAgICAgcmFpc2UgRm9yY2VkX3R3aWNlXG5cbiAgKCogSWYgW2ZdIGlzIGEgc3VzcGVuc2lvbiwgdGhlbiBbb25jZSBmXSBpcyBhIHN1c3BlbnNpb24gdGhhdCBjYW4gYmUgZm9yY2VkXG4gICAgIGF0IG1vc3Qgb25jZS4gSWYgaXQgaXMgZm9yY2VkIG1vcmUgdGhhbiBvbmNlLCB0aGVuIFtGb3JjZWRfdHdpY2VdIGlzXG4gICAgIHJhaXNlZC4gKilcblxuICBsZXQgb25jZSAoZiA6ICdhIHN1c3BlbnNpb24pIDogJ2Egc3VzcGVuc2lvbiA9XG4gICAgbGV0IGFjdGlvbiA9IENhbWxpbnRlcm5hbEF0b21pYy5tYWtlIGYgaW5cbiAgICBmdW4gKCkgLT5cbiAgICAgICgqIEdldCB0aGUgZnVuY3Rpb24gY3VycmVudGx5IHN0b3JlZCBpbiBbYWN0aW9uXSwgYW5kIHdyaXRlIHRoZVxuICAgICAgICAgZnVuY3Rpb24gW2ZhaWx1cmVdIGluIGl0cyBwbGFjZSwgc28gdGhlIG5leHQgYWNjZXNzIHdpbGwgcmVzdWx0XG4gICAgICAgICBpbiBhIGNhbGwgdG8gW2ZhaWx1cmUoKV0uICopXG4gICAgICBsZXQgZiA9IENhbWxpbnRlcm5hbEF0b21pYy5leGNoYW5nZSBhY3Rpb24gZmFpbHVyZSBpblxuICAgICAgZigpXG5cbmVuZCAoKiBTdXNwZW5zaW9uICopXG5cbmxldCByZWMgbWVtb2l6ZSB4cyA9XG4gIFN1c3BlbnNpb24ubWVtb2l6ZSAoZnVuICgpIC0+XG4gICAgbWF0Y2ggeHMoKSB3aXRoXG4gICAgfCBOaWwgLT5cbiAgICAgICAgTmlsXG4gICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgQ29ucyAoeCwgbWVtb2l6ZSB4cylcbiAgKVxuXG5sZXQgcmVjIG9uY2UgeHMgPVxuICBTdXNwZW5zaW9uLm9uY2UgKGZ1biAoKSAtPlxuICAgIG1hdGNoIHhzKCkgd2l0aFxuICAgIHwgTmlsIC0+XG4gICAgICAgIE5pbFxuICAgIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICAgIENvbnMgKHgsIG9uY2UgeHMpXG4gIClcblxuXG5sZXQgcmVjIHppcCB4cyB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgTmlsXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIENvbnMgKCh4LCB5KSwgemlwIHhzIHlzKVxuXG5sZXQgcmVjIG1hcDIgZiB4cyB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgTmlsXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIENvbnMgKGYgeCB5LCBtYXAyIGYgeHMgeXMpXG5cbmxldCByZWMgaW50ZXJsZWF2ZSB4cyB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgeXMoKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgQ29ucyAoeCwgaW50ZXJsZWF2ZSB5cyB4cylcblxuKCogW3NvcnRlZF9tZXJnZTFsIGNtcCB4IHhzIHlzXSBpcyBlcXVpdmFsZW50IHRvXG4gICAgIFtzb3J0ZWRfbWVyZ2UgY21wIChjb25zIHggeHMpIHlzXS5cblxuICAgW3NvcnRlZF9tZXJnZTFyIGNtcCB4cyB5IHlzXSBpcyBlcXVpdmFsZW50IHRvXG4gICAgIFtzb3J0ZWRfbWVyZ2UgY21wIHhzIChjb25zIHkgeXMpXS5cblxuICAgW3NvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5c10gaXMgZXF1aXZhbGVudCB0b1xuICAgICBbc29ydGVkX21lcmdlIGNtcCAoY29ucyB4IHhzKSAoY29ucyB5IHlzKV0uXG5cbiAgIFRoZXNlIHRocmVlIGZ1bmN0aW9ucyBhcmUgdXNlZCBhcyBidWlsZGluZyBibG9ja3MgaW4gdGhlIGRlZmluaXRpb25cbiAgIG9mIFtzb3J0ZWRfbWVyZ2VdLiAqKVxuXG5sZXQgcmVjIHNvcnRlZF9tZXJnZTFsIGNtcCB4IHhzIHlzICgpID1cbiAgbWF0Y2ggeXMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBDb25zICh4LCB4cylcbiAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgIHNvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5c1xuXG5hbmQgc29ydGVkX21lcmdlMXIgY21wIHhzIHkgeXMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIENvbnMgKHksIHlzKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgc29ydGVkX21lcmdlMSBjbXAgeCB4cyB5IHlzXG5cbmFuZCBzb3J0ZWRfbWVyZ2UxIGNtcCB4IHhzIHkgeXMgPVxuICBpZiBjbXAgeCB5IDw9IDAgdGhlblxuICAgIENvbnMgKHgsIHNvcnRlZF9tZXJnZTFyIGNtcCB4cyB5IHlzKVxuICBlbHNlXG4gICAgQ29ucyAoeSwgc29ydGVkX21lcmdlMWwgY21wIHggeHMgeXMpXG5cbmxldCBzb3J0ZWRfbWVyZ2UgY21wIHhzIHlzICgpID1cbiAgbWF0Y2ggeHMoKSwgeXMoKSB3aXRoXG4gICAgfCBOaWwsIE5pbCAtPlxuICAgICAgICBOaWxcbiAgICB8IE5pbCwgY1xuICAgIHwgYywgTmlsIC0+XG4gICAgICAgIGNcbiAgICB8IENvbnMgKHgsIHhzKSwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgIHNvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5c1xuXG5cbmxldCByZWMgbWFwX2ZzdCB4eXMgKCkgPVxuICBtYXRjaCB4eXMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICgoeCwgXyksIHh5cykgLT5cbiAgICAgIENvbnMgKHgsIG1hcF9mc3QgeHlzKVxuXG5sZXQgcmVjIG1hcF9zbmQgeHlzICgpID1cbiAgbWF0Y2ggeHlzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoKF8sIHkpLCB4eXMpIC0+XG4gICAgICBDb25zICh5LCBtYXBfc25kIHh5cylcblxubGV0IHVuemlwIHh5cyA9XG4gIG1hcF9mc3QgeHlzLCBtYXBfc25kIHh5c1xuXG5sZXQgc3BsaXQgPVxuICB1bnppcFxuXG4oKiBbZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHNdIGlzIGVxdWl2YWxlbnQgdG9cbiAgIFtmaWx0ZXJfbWFwIEVpdGhlci5maW5kX2xlZnQgKG1hcCBmIHhzKV0uICopXG5cbmxldCByZWMgZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgIHwgRWl0aGVyLkxlZnQgeSAtPlxuICAgICAgICAgIENvbnMgKHksIGZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCBmIHhzKVxuICAgICAgfCBFaXRoZXIuUmlnaHQgXyAtPlxuICAgICAgICAgIGZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCBmIHhzICgpXG5cbmxldCByZWMgZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCBmIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICB8IEVpdGhlci5MZWZ0IF8gLT5cbiAgICAgICAgICBmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIGYgeHMgKClcbiAgICAgIHwgRWl0aGVyLlJpZ2h0IHogLT5cbiAgICAgICAgICBDb25zICh6LCBmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIGYgeHMpXG5cbmxldCBwYXJ0aXRpb25fbWFwIGYgeHMgPVxuICBmaWx0ZXJfbWFwX2ZpbmRfbGVmdF9tYXAgZiB4cyxcbiAgZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCBmIHhzXG5cbmxldCBwYXJ0aXRpb24gcCB4cyA9XG4gIGZpbHRlciBwIHhzLCBmaWx0ZXIgKGZ1biB4IC0+IG5vdCAocCB4KSkgeHNcblxuKCogSWYgW3hzc10gaXMgYSBtYXRyaXggKGEgc2VxdWVuY2Ugb2Ygcm93cyksIHRoZW4gW3BlZWwgeHNzXSBpcyBhIHBhaXIgb2ZcbiAgIHRoZSBmaXJzdCBjb2x1bW4gKGEgc2VxdWVuY2Ugb2YgZWxlbWVudHMpIGFuZCBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZVxuICAgbWF0cml4IChhIHNlcXVlbmNlIG9mIHNob3J0ZXIgcm93cykuIFRoZXNlIHR3byBzZXF1ZW5jZXMgaGF2ZSB0aGUgc2FtZVxuICAgbGVuZ3RoLiBUaGUgcm93cyBvZiB0aGUgbWF0cml4IFt4c3NdIGFyZSBub3QgcmVxdWlyZWQgdG8gaGF2ZSB0aGUgc2FtZVxuICAgbGVuZ3RoLiBBbiBlbXB0eSByb3cgaXMgaWdub3JlZC4gKilcblxuKCogQmVjYXVzZSBbcGVlbF0gdXNlcyBbdW56aXBdLCBpdHMgYXJndW1lbnQgbXVzdCBiZSBwZXJzaXN0ZW50LiBUaGUgc2FtZVxuICAgcmVtYXJrIGFwcGxpZXMgdG8gW3RyYW5zcG9zZV0sIFtkaWFnb25hbHNdLCBbcHJvZHVjdF0sIGV0Yy4gKilcblxubGV0IHBlZWwgeHNzID1cbiAgdW56aXAgKGZpbHRlcl9tYXAgdW5jb25zIHhzcylcblxubGV0IHJlYyB0cmFuc3Bvc2UgeHNzICgpID1cbiAgbGV0IGhlYWRzLCB0YWlscyA9IHBlZWwgeHNzIGluXG4gIGlmIGlzX2VtcHR5IGhlYWRzIHRoZW4gYmVnaW5cbiAgICBhc3NlcnQgKGlzX2VtcHR5IHRhaWxzKTtcbiAgICBOaWxcbiAgZW5kXG4gIGVsc2VcbiAgICBDb25zIChoZWFkcywgdHJhbnNwb3NlIHRhaWxzKVxuXG4oKiBUaGUgaW50ZXJuYWwgZnVuY3Rpb24gW2RpYWdvbmFsc10gdGFrZXMgYW4gZXh0cmEgYXJndW1lbnQsIFtyZW1haW5kZXJzXSxcbiAgIHdoaWNoIGNvbnRhaW5zIHRoZSByZW1haW5kZXJzIG9mIHRoZSByb3dzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW5cbiAgIGRpc2NvdmVyZWQuICopXG5cbmxldCByZWMgZGlhZ29uYWxzIHJlbWFpbmRlcnMgeHNzICgpID1cbiAgbWF0Y2ggeHNzKCkgd2l0aFxuICB8IENvbnMgKHhzLCB4c3MpIC0+XG4gICAgICBiZWdpbiBtYXRjaCB4cygpIHdpdGhcbiAgICAgIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICAgICAgKCogV2UgZGlzY292ZXIgYSBuZXcgbm9uZW1wdHkgcm93IFt4IDo6IHhzXS4gVGh1cywgdGhlIG5leHQgZGlhZ29uYWxcbiAgICAgICAgICAgICBpcyBbeCA6OiBoZWFkc106IHRoaXMgZGlhZ29uYWwgYmVnaW5zIHdpdGggW3hdIGFuZCBjb250aW51ZXMgd2l0aFxuICAgICAgICAgICAgIHRoZSBmaXJzdCBlbGVtZW50IG9mIGV2ZXJ5IHJvdyBpbiBbcmVtYWluZGVyc10uIEluIHRoZSByZWN1cnNpdmVcbiAgICAgICAgICAgICBjYWxsLCB0aGUgYXJndW1lbnQgW3JlbWFpbmRlcnNdIGlzIGluc3RhbnRpYXRlZCB3aXRoIFt4cyA6OlxuICAgICAgICAgICAgIHRhaWxzXSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG9uZSBtb3JlIHJlbWFpbmluZyByb3csIFt4c10sXG4gICAgICAgICAgICAgYW5kIHRoYXQgd2Uga2VlcCB0aGUgdGFpbHMgb2YgdGhlIHByZS1leGlzdGluZyByZW1haW5pbmcgcm93cy4gKilcbiAgICAgICAgICBsZXQgaGVhZHMsIHRhaWxzID0gcGVlbCByZW1haW5kZXJzIGluXG4gICAgICAgICAgQ29ucyAoY29ucyB4IGhlYWRzLCBkaWFnb25hbHMgKGNvbnMgeHMgdGFpbHMpIHhzcylcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgKCogV2UgZGlzY292ZXIgYSBuZXcgZW1wdHkgcm93LiBJbiB0aGlzIGNhc2UsIHRoZSBuZXcgZGlhZ29uYWwgaXNcbiAgICAgICAgICAgICBqdXN0IFtoZWFkc10sIGFuZCBbcmVtYWluZGVyc10gaXMgaW5zdGFudGlhdGVkIHdpdGgganVzdCBbdGFpbHNdLFxuICAgICAgICAgICAgIGFzIHdlIGRvIG5vdCBoYXZlIG9uZSBtb3JlIHJlbWFpbmluZyByb3cuICopXG4gICAgICAgICAgbGV0IGhlYWRzLCB0YWlscyA9IHBlZWwgcmVtYWluZGVycyBpblxuICAgICAgICAgIENvbnMgKGhlYWRzLCBkaWFnb25hbHMgdGFpbHMgeHNzKVxuICAgICAgZW5kXG4gIHwgTmlsIC0+XG4gICAgICAoKiBUaGVyZSBhcmUgbm8gbW9yZSByb3dzIHRvIGJlIGRpc2NvdmVyZWQuIFRoZXJlIHJlbWFpbnMgdG8gZXhoYXVzdFxuICAgICAgICAgdGhlIHJlbWFpbmluZyByb3dzLiAqKVxuICAgICAgdHJhbnNwb3NlIHJlbWFpbmRlcnMgKClcblxuKCogSWYgW3hzc10gaXMgYSBtYXRyaXggKGEgc2VxdWVuY2Ugb2Ygcm93cyksIHRoZW4gW2RpYWdvbmFscyB4c3NdIGlzXG4gICB0aGUgc2VxdWVuY2Ugb2YgaXRzIGRpYWdvbmFscy5cblxuICAgVGhlIGZpcnN0IGRpYWdvbmFsIGNvbnRhaW5zIGp1c3QgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlXG4gICBmaXJzdCByb3cuIFRoZSBzZWNvbmQgZGlhZ29uYWwgY29udGFpbnMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlXG4gICBzZWNvbmQgcm93IGFuZCB0aGUgc2Vjb25kIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHJvdzsgYW5kIHNvIG9uLlxuICAgVGhpcyBraW5kIG9mIGRpYWdvbmFsIGlzIGluIGZhY3Qgc29tZXRpbWVzIGtub3duIGFzIGFuIGFudGlkaWFnb25hbC5cblxuICAgLSBFdmVyeSBkaWFnb25hbCBpcyBhIGZpbml0ZSBzZXF1ZW5jZS5cbiAgIC0gVGhlIHJvd3Mgb2YgdGhlIG1hdHJpeCBbeHNzXSBhcmUgbm90IHJlcXVpcmVkIHRvIGhhdmUgdGhlIHNhbWUgbGVuZ3RoLlxuICAgLSBUaGUgbWF0cml4IFt4c3NdIGlzIG5vdCByZXF1aXJlZCB0byBiZSBmaW5pdGUgKGluIGVpdGhlciBkaXJlY3Rpb24pLlxuICAgLSBUaGUgbWF0cml4IFt4c3NdIG11c3QgYmUgcGVyc2lzdGVudC4gKilcblxubGV0IGRpYWdvbmFscyB4c3MgPVxuICBkaWFnb25hbHMgZW1wdHkgeHNzXG5cbmxldCBtYXBfcHJvZHVjdCBmIHhzIHlzID1cbiAgY29uY2F0IChkaWFnb25hbHMgKFxuICAgIG1hcCAoZnVuIHggLT5cbiAgICAgIG1hcCAoZnVuIHkgLT5cbiAgICAgICAgZiB4IHlcbiAgICAgICkgeXNcbiAgICApIHhzXG4gICkpXG5cbmxldCBwcm9kdWN0IHhzIHlzID1cbiAgbWFwX3Byb2R1Y3QgKGZ1biB4IHkgLT4gKHgsIHkpKSB4cyB5c1xuXG5sZXQgb2ZfZGlzcGVuc2VyIGl0ID1cbiAgbGV0IHJlYyBjICgpID1cbiAgICBtYXRjaCBpdCgpIHdpdGhcbiAgICB8IE5vbmUgLT5cbiAgICAgICAgTmlsXG4gICAgfCBTb21lIHggLT5cbiAgICAgICAgQ29ucyAoeCwgYylcbiAgaW5cbiAgY1xuXG5sZXQgdG9fZGlzcGVuc2VyIHhzID1cbiAgbGV0IHMgPSByZWYgeHMgaW5cbiAgZnVuICgpIC0+XG4gICAgbWF0Y2ggKCFzKSgpIHdpdGhcbiAgICB8IE5pbCAtPlxuICAgICAgICBOb25lXG4gICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgcyA6PSB4cztcbiAgICAgICAgU29tZSB4XG5cblxuXG5sZXQgcmVjIGludHMgaSAoKSA9XG4gIENvbnMgKGksIGludHMgKGkgKyAxKSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAnYSB0ID0gJ2Egb3B0aW9uID0gTm9uZSB8IFNvbWUgb2YgJ2FcblxubGV0IG5vbmUgPSBOb25lXG5sZXQgc29tZSB2ID0gU29tZSB2XG5sZXQgdmFsdWUgbyB+ZGVmYXVsdCA9IG1hdGNoIG8gd2l0aCBTb21lIHYgLT4gdiB8IE5vbmUgLT4gZGVmYXVsdFxubGV0IGdldCA9IGZ1bmN0aW9uIFNvbWUgdiAtPiB2IHwgTm9uZSAtPiBpbnZhbGlkX2FyZyBcIm9wdGlvbiBpcyBOb25lXCJcbmxldCBiaW5kIG8gZiA9IG1hdGNoIG8gd2l0aCBOb25lIC0+IE5vbmUgfCBTb21lIHYgLT4gZiB2XG5sZXQgam9pbiA9IGZ1bmN0aW9uIFNvbWUgbyAtPiBvIHwgTm9uZSAtPiBOb25lXG5sZXQgbWFwIGYgbyA9IG1hdGNoIG8gd2l0aCBOb25lIC0+IE5vbmUgfCBTb21lIHYgLT4gU29tZSAoZiB2KVxubGV0IGZvbGQgfm5vbmUgfnNvbWUgPSBmdW5jdGlvbiBTb21lIHYgLT4gc29tZSB2IHwgTm9uZSAtPiBub25lXG5sZXQgaXRlciBmID0gZnVuY3Rpb24gU29tZSB2IC0+IGYgdiB8IE5vbmUgLT4gKClcbmxldCBpc19ub25lID0gZnVuY3Rpb24gTm9uZSAtPiB0cnVlIHwgU29tZSBfIC0+IGZhbHNlXG5sZXQgaXNfc29tZSA9IGZ1bmN0aW9uIE5vbmUgLT4gZmFsc2UgfCBTb21lIF8gLT4gdHJ1ZVxuXG5sZXQgZXF1YWwgZXEgbzAgbzEgPSBtYXRjaCBvMCwgbzEgd2l0aFxufCBTb21lIHYwLCBTb21lIHYxIC0+IGVxIHYwIHYxXG58IE5vbmUsIE5vbmUgLT4gdHJ1ZVxufCBfIC0+IGZhbHNlXG5cbmxldCBjb21wYXJlIGNtcCBvMCBvMSA9IG1hdGNoIG8wLCBvMSB3aXRoXG58IFNvbWUgdjAsIFNvbWUgdjEgLT4gY21wIHYwIHYxXG58IE5vbmUsIE5vbmUgLT4gMFxufCBOb25lLCBTb21lIF8gLT4gLTFcbnwgU29tZSBfLCBOb25lIC0+IDFcblxubGV0IHRvX3Jlc3VsdCB+bm9uZSA9IGZ1bmN0aW9uIE5vbmUgLT4gRXJyb3Igbm9uZSB8IFNvbWUgdiAtPiBPayB2XG5sZXQgdG9fbGlzdCA9IGZ1bmN0aW9uIE5vbmUgLT4gW10gfCBTb21lIHYgLT4gW3ZdXG5sZXQgdG9fc2VxID0gZnVuY3Rpb24gTm9uZSAtPiBTZXEuZW1wdHkgfCBTb21lIHYgLT4gU2VxLnJldHVybiB2XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgKCdhLCAnZSkgdCA9ICgnYSwgJ2UpIHJlc3VsdCA9IE9rIG9mICdhIHwgRXJyb3Igb2YgJ2VcblxubGV0IG9rIHYgPSBPayB2XG5sZXQgZXJyb3IgZSA9IEVycm9yIGVcbmxldCB2YWx1ZSByIH5kZWZhdWx0ID0gbWF0Y2ggciB3aXRoIE9rIHYgLT4gdiB8IEVycm9yIF8gLT4gZGVmYXVsdFxubGV0IGdldF9vayA9IGZ1bmN0aW9uIE9rIHYgLT4gdiB8IEVycm9yIF8gLT4gaW52YWxpZF9hcmcgXCJyZXN1bHQgaXMgRXJyb3IgX1wiXG5sZXQgZ2V0X2Vycm9yID0gZnVuY3Rpb24gRXJyb3IgZSAtPiBlIHwgT2sgXyAtPiBpbnZhbGlkX2FyZyBcInJlc3VsdCBpcyBPayBfXCJcbmxldCBiaW5kIHIgZiA9IG1hdGNoIHIgd2l0aCBPayB2IC0+IGYgdiB8IEVycm9yIF8gYXMgZSAtPiBlXG5sZXQgam9pbiA9IGZ1bmN0aW9uIE9rIHIgLT4gciB8IEVycm9yIF8gYXMgZSAtPiBlXG5sZXQgbWFwIGYgPSBmdW5jdGlvbiBPayB2IC0+IE9rIChmIHYpIHwgRXJyb3IgXyBhcyBlIC0+IGVcbmxldCBtYXBfZXJyb3IgZiA9IGZ1bmN0aW9uIEVycm9yIGUgLT4gRXJyb3IgKGYgZSkgfCBPayBfIGFzIHYgLT4gdlxubGV0IGZvbGQgfm9rIH5lcnJvciA9IGZ1bmN0aW9uIE9rIHYgLT4gb2sgdiB8IEVycm9yIGUgLT4gZXJyb3IgZVxubGV0IGl0ZXIgZiA9IGZ1bmN0aW9uIE9rIHYgLT4gZiB2IHwgRXJyb3IgXyAtPiAoKVxubGV0IGl0ZXJfZXJyb3IgZiA9IGZ1bmN0aW9uIEVycm9yIGUgLT4gZiBlIHwgT2sgXyAtPiAoKVxubGV0IGlzX29rID0gZnVuY3Rpb24gT2sgXyAtPiB0cnVlIHwgRXJyb3IgXyAtPiBmYWxzZVxubGV0IGlzX2Vycm9yID0gZnVuY3Rpb24gRXJyb3IgXyAtPiB0cnVlIHwgT2sgXyAtPiBmYWxzZVxuXG5sZXQgZXF1YWwgfm9rIH5lcnJvciByMCByMSA9IG1hdGNoIHIwLCByMSB3aXRoXG58IE9rIHYwLCBPayB2MSAtPiBvayB2MCB2MVxufCBFcnJvciBlMCwgRXJyb3IgZTEgLT4gZXJyb3IgZTAgZTFcbnwgXywgXyAtPiBmYWxzZVxuXG5sZXQgY29tcGFyZSB+b2sgfmVycm9yIHIwIHIxID0gbWF0Y2ggcjAsIHIxIHdpdGhcbnwgT2sgdjAsIE9rIHYxIC0+IG9rIHYwIHYxXG58IEVycm9yIGUwLCBFcnJvciBlMSAtPiBlcnJvciBlMCBlMVxufCBPayBfLCBFcnJvciBfIC0+IC0xXG58IEVycm9yIF8sIE9rIF8gLT4gMVxuXG5sZXQgdG9fb3B0aW9uID0gZnVuY3Rpb24gT2sgdiAtPiBTb21lIHYgfCBFcnJvciBfIC0+IE5vbmVcbmxldCB0b19saXN0ID0gZnVuY3Rpb24gT2sgdiAtPiBbdl0gfCBFcnJvciBfIC0+IFtdXG5sZXQgdG9fc2VxID0gZnVuY3Rpb24gT2sgdiAtPiBTZXEucmV0dXJuIHYgfCBFcnJvciBfIC0+IFNlcS5lbXB0eVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBib29sID0gZmFsc2UgfCB0cnVlXG5cbmV4dGVybmFsIG5vdCA6IGJvb2wgLT4gYm9vbCA9IFwiJWJvb2xub3RcIlxuZXh0ZXJuYWwgKCAmJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggfHwgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcbmxldCBlcXVhbCA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gKCA9IClcbmxldCBjb21wYXJlIDogYm9vbCAtPiBib29sIC0+IGludCA9IFN0ZGxpYi5jb21wYXJlXG5leHRlcm5hbCB0b19pbnQgOiBib29sIC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmxldCB0b19mbG9hdCA9IGZ1bmN0aW9uIGZhbHNlIC0+IDAuIHwgdHJ1ZSAtPiAxLlxuXG4oKlxubGV0IG9mX3N0cmluZyA9IGZ1bmN0aW9uXG58IFwiZmFsc2VcIiAtPiBTb21lIGZhbHNlXG58IFwidHJ1ZVwiIC0+IFNvbWUgdHJ1ZVxufCBfIC0+IE5vbmVcbiopXG5cbmxldCB0b19zdHJpbmcgPSBmdW5jdGlvbiBmYWxzZSAtPiBcImZhbHNlXCIgfCB0cnVlIC0+IFwidHJ1ZVwiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIENoYXJhY3RlciBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIGNvZGU6IGNoYXIgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgdW5zYWZlX2NocjogaW50IC0+IGNoYXIgPSBcIiVpZGVudGl0eVwiXG5cbmxldCBjaHIgbiA9XG4gIGlmIG4gPCAwIHx8IG4gPiAyNTUgdGhlbiBpbnZhbGlkX2FyZyBcIkNoYXIuY2hyXCIgZWxzZSB1bnNhZmVfY2hyIG5cblxuZXh0ZXJuYWwgYnl0ZXNfY3JlYXRlOiBpbnQgLT4gYnl0ZXMgPSBcImNhbWxfY3JlYXRlX2J5dGVzXCJcbmV4dGVybmFsIGJ5dGVzX3Vuc2FmZV9zZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiJWJ5dGVzX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX3RvX3N0cmluZyA6IGJ5dGVzIC0+IHN0cmluZyA9IFwiJWJ5dGVzX3RvX3N0cmluZ1wiXG5cbmxldCBlc2NhcGVkID0gZnVuY3Rpb25cbiAgfCAnXFwnJyAtPiBcIlxcXFwnXCJcbiAgfCAnXFxcXCcgLT4gXCJcXFxcXFxcXFwiXG4gIHwgJ1xcbicgLT4gXCJcXFxcblwiXG4gIHwgJ1xcdCcgLT4gXCJcXFxcdFwiXG4gIHwgJ1xccicgLT4gXCJcXFxcclwiXG4gIHwgJ1xcYicgLT4gXCJcXFxcYlwiXG4gIHwgJyAnIC4uICd+JyBhcyBjIC0+XG4gICAgICBsZXQgcyA9IGJ5dGVzX2NyZWF0ZSAxIGluXG4gICAgICBieXRlc191bnNhZmVfc2V0IHMgMCBjO1xuICAgICAgdW5zYWZlX3RvX3N0cmluZyBzXG4gIHwgYyAtPlxuICAgICAgbGV0IG4gPSBjb2RlIGMgaW5cbiAgICAgIGxldCBzID0gYnl0ZXNfY3JlYXRlIDQgaW5cbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAwICdcXFxcJztcbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAxICh1bnNhZmVfY2hyICg0OCArIG4gLyAxMDApKTtcbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAyICh1bnNhZmVfY2hyICg0OCArIChuIC8gMTApIG1vZCAxMCkpO1xuICAgICAgYnl0ZXNfdW5zYWZlX3NldCBzIDMgKHVuc2FmZV9jaHIgKDQ4ICsgbiBtb2QgMTApKTtcbiAgICAgIHVuc2FmZV90b19zdHJpbmcgc1xuXG5sZXQgbG93ZXJjYXNlID0gZnVuY3Rpb25cbiAgfCAnQScgLi4gJ1onXG4gIHwgJ1xcMTkyJyAuLiAnXFwyMTQnXG4gIHwgJ1xcMjE2JyAuLiAnXFwyMjInIGFzIGMgLT5cbiAgICB1bnNhZmVfY2hyKGNvZGUgYyArIDMyKVxuICB8IGMgLT4gY1xuXG5sZXQgdXBwZXJjYXNlID0gZnVuY3Rpb25cbiAgfCAnYScgLi4gJ3onXG4gIHwgJ1xcMjI0JyAuLiAnXFwyNDYnXG4gIHwgJ1xcMjQ4JyAuLiAnXFwyNTQnIGFzIGMgLT5cbiAgICB1bnNhZmVfY2hyKGNvZGUgYyAtIDMyKVxuICB8IGMgLT4gY1xuXG5sZXQgbG93ZXJjYXNlX2FzY2lpID0gZnVuY3Rpb25cbiAgfCAnQScgLi4gJ1onIGFzIGMgLT4gdW5zYWZlX2Nocihjb2RlIGMgKyAzMilcbiAgfCBjIC0+IGNcblxubGV0IHVwcGVyY2FzZV9hc2NpaSA9IGZ1bmN0aW9uXG4gIHwgJ2EnIC4uICd6JyBhcyBjIC0+IHVuc2FmZV9jaHIoY29kZSBjIC0gMzIpXG4gIHwgYyAtPiBjXG5cbnR5cGUgdCA9IGNoYXJcblxubGV0IGNvbXBhcmUgYzEgYzIgPSBjb2RlIGMxIC0gY29kZSBjMlxubGV0IGVxdWFsIChjMTogdCkgKGMyOiB0KSA9IGNvbXBhcmUgYzEgYzIgPSAwXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgIERhbmllbCBDLiBCdWVuemxpICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmV4dGVybmFsIGZvcm1hdF9pbnQgOiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZyA9IFwiY2FtbF9mb3JtYXRfaW50XCJcblxubGV0IGVycl9ub19wcmVkID0gXCJVKzAwMDAgaGFzIG5vIHByZWRlY2Vzc29yXCJcbmxldCBlcnJfbm9fc3VjYyA9IFwiVSsxMEZGRkYgaGFzIG5vIHN1Y2Nlc3NvclwiXG5sZXQgZXJyX25vdF9zdiBpID0gZm9ybWF0X2ludCBcIiVYXCIgaSBeIFwiIGlzIG5vdCBhbiBVbmljb2RlIHNjYWxhciB2YWx1ZVwiXG5sZXQgZXJyX25vdF9sYXRpbjEgdSA9IFwiVStcIiBeIGZvcm1hdF9pbnQgXCIlMDRYXCIgdSBeIFwiIGlzIG5vdCBhIGxhdGluMSBjaGFyYWN0ZXJcIlxuXG50eXBlIHQgPSBpbnRcblxubGV0IG1pbiA9IDB4MDAwMFxubGV0IG1heCA9IDB4MTBGRkZGXG5sZXQgbG9fYm91bmQgPSAweEQ3RkZcbmxldCBoaV9ib3VuZCA9IDB4RTAwMFxuXG5sZXQgYm9tID0gMHhGRUZGXG5sZXQgcmVwID0gMHhGRkZEXG5cbmxldCBzdWNjIHUgPVxuICBpZiB1ID0gbG9fYm91bmQgdGhlbiBoaV9ib3VuZCBlbHNlXG4gIGlmIHUgPSBtYXggdGhlbiBpbnZhbGlkX2FyZyBlcnJfbm9fc3VjYyBlbHNlXG4gIHUgKyAxXG5cbmxldCBwcmVkIHUgPVxuICBpZiB1ID0gaGlfYm91bmQgdGhlbiBsb19ib3VuZCBlbHNlXG4gIGlmIHUgPSBtaW4gdGhlbiBpbnZhbGlkX2FyZyBlcnJfbm9fcHJlZCBlbHNlXG4gIHUgLSAxXG5cbmxldCBpc192YWxpZCBpID0gKG1pbiA8PSBpICYmIGkgPD0gbG9fYm91bmQpIHx8IChoaV9ib3VuZCA8PSBpICYmIGkgPD0gbWF4KVxubGV0IG9mX2ludCBpID0gaWYgaXNfdmFsaWQgaSB0aGVuIGkgZWxzZSBpbnZhbGlkX2FyZyAoZXJyX25vdF9zdiBpKVxuZXh0ZXJuYWwgdW5zYWZlX29mX2ludCA6IGludCAtPiB0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgdG9faW50IDogdCAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5cbmxldCBpc19jaGFyIHUgPSB1IDwgMjU2XG5sZXQgb2ZfY2hhciBjID0gQ2hhci5jb2RlIGNcbmxldCB0b19jaGFyIHUgPVxuICBpZiB1ID4gMjU1IHRoZW4gaW52YWxpZF9hcmcgKGVycl9ub3RfbGF0aW4xIHUpIGVsc2VcbiAgQ2hhci51bnNhZmVfY2hyIHVcblxubGV0IHVuc2FmZV90b19jaGFyID0gQ2hhci51bnNhZmVfY2hyXG5cbmxldCBlcXVhbCA6IGludCAtPiBpbnQgLT4gYm9vbCA9ICggPSApXG5sZXQgY29tcGFyZSA6IGludCAtPiBpbnQgLT4gaW50ID0gU3RkbGliLmNvbXBhcmVcbmxldCBoYXNoID0gdG9faW50XG5cbigqIFVURiBjb2RlY3MgdG9vbHMgKilcblxudHlwZSB1dGZfZGVjb2RlID0gaW50XG4oKiBUaGlzIGlzIGFuIGludCBbMHhEVVVVVVVVXSBkZWNvbXBvc2VkIGFzIGZvbGxvd3M6XG4gICAtIFtEXSBpcyBmb3VyIGJpdHMgZm9yIGRlY29kZSBpbmZvcm1hdGlvbiwgdGhlIGhpZ2hlc3QgYml0IGlzIHNldCBpZiB0aGVcbiAgICAgZGVjb2RlIGlzIHZhbGlkLiBUaGUgdGhyZWUgbG93ZXIgYml0cyBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzXG4gICAgIGZyb20gdGhlIHNvdXJjZSB0aGF0IHdlcmUgY29uc3VtZWQgYnkgdGhlIGRlY29kZS5cbiAgIC0gW1VVVVVVVV0gaXMgdGhlIGRlY29kZWQgVW5pY29kZSBjaGFyYWN0ZXIgb3IgdGhlIFVuaWNvZGUgcmVwbGFjZW1lbnRcbiAgICAgY2hhcmFjdGVyIFUrRkZGRCBpZiBmb3IgaW52YWxpZCBkZWNvZGVzLiAqKVxuXG5sZXQgdmFsaWRfYml0ID0gMjdcbmxldCBkZWNvZGVfYml0cyA9IDI0XG5cbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlX2lzX3ZhbGlkIGQgPSAoZCBsc3IgdmFsaWRfYml0KSA9IDFcbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlX2xlbmd0aCBkID0gKGQgbHNyIGRlY29kZV9iaXRzKSBsYW5kIDBiMTExXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZV91Y2hhciBkID0gdW5zYWZlX29mX2ludCAoZCBsYW5kIDB4RkZGRkZGKVxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGUgbiB1ID0gKCg4IGxvciBuKSBsc2wgZGVjb2RlX2JpdHMpIGxvciAodG9faW50IHUpXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZV9pbnZhbGlkIG4gPSAobiBsc2wgZGVjb2RlX2JpdHMpIGxvciByZXBcblxubGV0IHV0Zl84X2J5dGVfbGVuZ3RoIHUgPSBtYXRjaCB0b19pbnQgdSB3aXRoXG58IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbnwgdSB3aGVuIHUgPD0gMHgwMDdGIC0+IDFcbnwgdSB3aGVuIHUgPD0gMHgwN0ZGIC0+IDJcbnwgdSB3aGVuIHUgPD0gMHhGRkZGIC0+IDNcbnwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT4gNFxufCBfIC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgdXRmXzE2X2J5dGVfbGVuZ3RoIHUgPSBtYXRjaCB0b19pbnQgdSB3aXRoXG58IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbnwgdSB3aGVuIHUgPD0gMHhGRkZGIC0+IDJcbnwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT4gNFxufCBfIC0+IGFzc2VydCBmYWxzZVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBBbiBhbGlhcyBmb3IgdGhlIHR5cGUgb2YgbGlzdHMuICopXG50eXBlICdhIHQgPSAnYSBsaXN0ID0gW10gfCAoOjopIG9mICdhICogJ2EgbGlzdFxuXG4oKiBMaXN0IG9wZXJhdGlvbnMgKilcblxubGV0IHJlYyBsZW5ndGhfYXV4IGxlbiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gbGVuXG4gIHwgXzo6bCAtPiBsZW5ndGhfYXV4IChsZW4gKyAxKSBsXG5cbmxldCBsZW5ndGggbCA9IGxlbmd0aF9hdXggMCBsXG5cbmxldCBjb25zIGEgbCA9IGE6OmxcblxubGV0IGhkID0gZnVuY3Rpb25cbiAgICBbXSAtPiBmYWlsd2l0aCBcImhkXCJcbiAgfCBhOjpfIC0+IGFcblxubGV0IHRsID0gZnVuY3Rpb25cbiAgICBbXSAtPiBmYWlsd2l0aCBcInRsXCJcbiAgfCBfOjpsIC0+IGxcblxubGV0IG50aCBsIG4gPVxuICBpZiBuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiTGlzdC5udGhcIiBlbHNlXG4gIGxldCByZWMgbnRoX2F1eCBsIG4gPVxuICAgIG1hdGNoIGwgd2l0aFxuICAgIHwgW10gLT4gZmFpbHdpdGggXCJudGhcIlxuICAgIHwgYTo6bCAtPiBpZiBuID0gMCB0aGVuIGEgZWxzZSBudGhfYXV4IGwgKG4tMSlcbiAgaW4gbnRoX2F1eCBsIG5cblxubGV0IG50aF9vcHQgbCBuID1cbiAgaWYgbiA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkxpc3QubnRoXCIgZWxzZVxuICBsZXQgcmVjIG50aF9hdXggbCBuID1cbiAgICBtYXRjaCBsIHdpdGhcbiAgICB8IFtdIC0+IE5vbmVcbiAgICB8IGE6OmwgLT4gaWYgbiA9IDAgdGhlbiBTb21lIGEgZWxzZSBudGhfYXV4IGwgKG4tMSlcbiAgaW4gbnRoX2F1eCBsIG5cblxubGV0IGFwcGVuZCA9IChAKVxuXG5sZXQgcmVjIHJldl9hcHBlbmQgbDEgbDIgPVxuICBtYXRjaCBsMSB3aXRoXG4gICAgW10gLT4gbDJcbiAgfCBhIDo6IGwgLT4gcmV2X2FwcGVuZCBsIChhIDo6IGwyKVxuXG5sZXQgcmV2IGwgPSByZXZfYXBwZW5kIGwgW11cblxubGV0IHJlYyBpbml0X3RhaWxyZWNfYXV4IGFjYyBpIG4gZiA9XG4gIGlmIGkgPj0gbiB0aGVuIGFjY1xuICBlbHNlIGluaXRfdGFpbHJlY19hdXggKGYgaSA6OiBhY2MpIChpKzEpIG4gZlxuXG5sZXQgcmVjIGluaXRfYXV4IGkgbiBmID1cbiAgaWYgaSA+PSBuIHRoZW4gW11cbiAgZWxzZVxuICAgIGxldCByID0gZiBpIGluXG4gICAgciA6OiBpbml0X2F1eCAoaSsxKSBuIGZcblxubGV0IHJldl9pbml0X3RocmVzaG9sZCA9XG4gIG1hdGNoIFN5cy5iYWNrZW5kX3R5cGUgd2l0aFxuICB8IFN5cy5OYXRpdmUgfCBTeXMuQnl0ZWNvZGUgLT4gMTBfMDAwXG4gICgqIFdlIGRvbid0IGtub3cgdGhlIHNpemUgb2YgdGhlIHN0YWNrLCBiZXR0ZXIgYmUgc2FmZSBhbmQgYXNzdW1lIGl0J3NcbiAgICAgc21hbGwuICopXG4gIHwgU3lzLk90aGVyIF8gLT4gNTBcblxubGV0IGluaXQgbGVuIGYgPVxuICBpZiBsZW4gPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJMaXN0LmluaXRcIiBlbHNlXG4gIGlmIGxlbiA+IHJldl9pbml0X3RocmVzaG9sZCB0aGVuIHJldiAoaW5pdF90YWlscmVjX2F1eCBbXSAwIGxlbiBmKVxuICBlbHNlIGluaXRfYXV4IDAgbGVuIGZcblxubGV0IHJlYyBmbGF0dGVuID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbXVxuICB8IGw6OnIgLT4gbCBAIGZsYXR0ZW4gclxuXG5sZXQgY29uY2F0ID0gZmxhdHRlblxuXG5sZXQgcmVjIG1hcCBmID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbXVxuICB8IGE6OmwgLT4gbGV0IHIgPSBmIGEgaW4gciA6OiBtYXAgZiBsXG5cbmxldCByZWMgbWFwaSBpIGYgPSBmdW5jdGlvblxuICAgIFtdIC0+IFtdXG4gIHwgYTo6bCAtPiBsZXQgciA9IGYgaSBhIGluIHIgOjogbWFwaSAoaSArIDEpIGYgbFxuXG5sZXQgbWFwaSBmIGwgPSBtYXBpIDAgZiBsXG5cbmxldCByZXZfbWFwIGYgbCA9XG4gIGxldCByZWMgcm1hcF9mIGFjY3UgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gYWNjdVxuICAgIHwgYTo6bCAtPiBybWFwX2YgKGYgYSA6OiBhY2N1KSBsXG4gIGluXG4gIHJtYXBfZiBbXSBsXG5cblxubGV0IHJlYyBpdGVyIGYgPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgYTo6bCAtPiBmIGE7IGl0ZXIgZiBsXG5cbmxldCByZWMgaXRlcmkgaSBmID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IGE6OmwgLT4gZiBpIGE7IGl0ZXJpIChpICsgMSkgZiBsXG5cbmxldCBpdGVyaSBmIGwgPSBpdGVyaSAwIGYgbFxuXG5sZXQgcmVjIGZvbGRfbGVmdCBmIGFjY3UgbCA9XG4gIG1hdGNoIGwgd2l0aFxuICAgIFtdIC0+IGFjY3VcbiAgfCBhOjpsIC0+IGZvbGRfbGVmdCBmIChmIGFjY3UgYSkgbFxuXG5sZXQgcmVjIGZvbGRfcmlnaHQgZiBsIGFjY3UgPVxuICBtYXRjaCBsIHdpdGhcbiAgICBbXSAtPiBhY2N1XG4gIHwgYTo6bCAtPiBmIGEgKGZvbGRfcmlnaHQgZiBsIGFjY3UpXG5cbmxldCByZWMgbWFwMiBmIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IFtdXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBsZXQgciA9IGYgYTEgYTIgaW4gciA6OiBtYXAyIGYgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0Lm1hcDJcIlxuXG5sZXQgcmV2X21hcDIgZiBsMSBsMiA9XG4gIGxldCByZWMgcm1hcDJfZiBhY2N1IGwxIGwyID1cbiAgICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgfCAoW10sIFtdKSAtPiBhY2N1XG4gICAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IHJtYXAyX2YgKGYgYTEgYTIgOjogYWNjdSkgbDEgbDJcbiAgICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QucmV2X21hcDJcIlxuICBpblxuICBybWFwMl9mIFtdIGwxIGwyXG5cblxubGV0IHJlYyBpdGVyMiBmIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+ICgpXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBmIGExIGEyOyBpdGVyMiBmIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5pdGVyMlwiXG5cbmxldCByZWMgZm9sZF9sZWZ0MiBmIGFjY3UgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gYWNjdVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gZm9sZF9sZWZ0MiBmIChmIGFjY3UgYTEgYTIpIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5mb2xkX2xlZnQyXCJcblxubGV0IHJlYyBmb2xkX3JpZ2h0MiBmIGwxIGwyIGFjY3UgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gYWNjdVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gZiBhMSBhMiAoZm9sZF9yaWdodDIgZiBsMSBsMiBhY2N1KVxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QuZm9sZF9yaWdodDJcIlxuXG5sZXQgcmVjIGZvcl9hbGwgcCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gdHJ1ZVxuICB8IGE6OmwgLT4gcCBhICYmIGZvcl9hbGwgcCBsXG5cbmxldCByZWMgZXhpc3RzIHAgPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhbHNlXG4gIHwgYTo6bCAtPiBwIGEgfHwgZXhpc3RzIHAgbFxuXG5sZXQgcmVjIGZvcl9hbGwyIHAgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gdHJ1ZVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gcCBhMSBhMiAmJiBmb3JfYWxsMiBwIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5mb3JfYWxsMlwiXG5cbmxldCByZWMgZXhpc3RzMiBwIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IGZhbHNlXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBwIGExIGEyIHx8IGV4aXN0czIgcCBsMSBsMlxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QuZXhpc3RzMlwiXG5cbmxldCByZWMgbWVtIHggPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhbHNlXG4gIHwgYTo6bCAtPiBjb21wYXJlIGEgeCA9IDAgfHwgbWVtIHggbFxuXG5sZXQgcmVjIG1lbXEgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZmFsc2VcbiAgfCBhOjpsIC0+IGEgPT0geCB8fCBtZW1xIHggbFxuXG5sZXQgcmVjIGFzc29jIHggPSBmdW5jdGlvblxuICAgIFtdIC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IChhLGIpOjpsIC0+IGlmIGNvbXBhcmUgYSB4ID0gMCB0aGVuIGIgZWxzZSBhc3NvYyB4IGxcblxubGV0IHJlYyBhc3NvY19vcHQgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gTm9uZVxuICB8IChhLGIpOjpsIC0+IGlmIGNvbXBhcmUgYSB4ID0gMCB0aGVuIFNvbWUgYiBlbHNlIGFzc29jX29wdCB4IGxcblxubGV0IHJlYyBhc3NxIHggPSBmdW5jdGlvblxuICAgIFtdIC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IChhLGIpOjpsIC0+IGlmIGEgPT0geCB0aGVuIGIgZWxzZSBhc3NxIHggbFxuXG5sZXQgcmVjIGFzc3Ffb3B0IHggPSBmdW5jdGlvblxuICAgIFtdIC0+IE5vbmVcbiAgfCAoYSxiKTo6bCAtPiBpZiBhID09IHggdGhlbiBTb21lIGIgZWxzZSBhc3NxX29wdCB4IGxcblxubGV0IHJlYyBtZW1fYXNzb2MgeCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gZmFsc2VcbiAgfCAoYSwgXykgOjogbCAtPiBjb21wYXJlIGEgeCA9IDAgfHwgbWVtX2Fzc29jIHggbFxuXG5sZXQgcmVjIG1lbV9hc3NxIHggPSBmdW5jdGlvblxuICB8IFtdIC0+IGZhbHNlXG4gIHwgKGEsIF8pIDo6IGwgLT4gYSA9PSB4IHx8IG1lbV9hc3NxIHggbFxuXG5sZXQgcmVjIHJlbW92ZV9hc3NvYyB4ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBbXVxuICB8IChhLCBfIGFzIHBhaXIpIDo6IGwgLT5cbiAgICAgIGlmIGNvbXBhcmUgYSB4ID0gMCB0aGVuIGwgZWxzZSBwYWlyIDo6IHJlbW92ZV9hc3NvYyB4IGxcblxubGV0IHJlYyByZW1vdmVfYXNzcSB4ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBbXVxuICB8IChhLCBfIGFzIHBhaXIpIDo6IGwgLT4gaWYgYSA9PSB4IHRoZW4gbCBlbHNlIHBhaXIgOjogcmVtb3ZlX2Fzc3EgeCBsXG5cbmxldCByZWMgZmluZCBwID0gZnVuY3Rpb25cbiAgfCBbXSAtPiByYWlzZSBOb3RfZm91bmRcbiAgfCB4IDo6IGwgLT4gaWYgcCB4IHRoZW4geCBlbHNlIGZpbmQgcCBsXG5cbmxldCByZWMgZmluZF9vcHQgcCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gTm9uZVxuICB8IHggOjogbCAtPiBpZiBwIHggdGhlbiBTb21lIHggZWxzZSBmaW5kX29wdCBwIGxcblxubGV0IHJlYyBmaW5kX21hcCBmID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBOb25lXG4gIHwgeCA6OiBsIC0+XG4gICAgIGJlZ2luIG1hdGNoIGYgeCB3aXRoXG4gICAgICAgfCBTb21lIF8gYXMgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgIHwgTm9uZSAtPiBmaW5kX21hcCBmIGxcbiAgICAgZW5kXG5cbmxldCBmaW5kX2FsbCBwID1cbiAgbGV0IHJlYyBmaW5kIGFjY3UgPSBmdW5jdGlvblxuICB8IFtdIC0+IHJldiBhY2N1XG4gIHwgeCA6OiBsIC0+IGlmIHAgeCB0aGVuIGZpbmQgKHggOjogYWNjdSkgbCBlbHNlIGZpbmQgYWNjdSBsIGluXG4gIGZpbmQgW11cblxubGV0IGZpbHRlciA9IGZpbmRfYWxsXG5cbmxldCBmaWx0ZXJpIHAgbCA9XG4gIGxldCByZWMgYXV4IGkgYWNjID0gZnVuY3Rpb25cbiAgfCBbXSAtPiByZXYgYWNjXG4gIHwgeDo6bCAtPiBhdXggKGkgKyAxKSAoaWYgcCBpIHggdGhlbiB4OjphY2MgZWxzZSBhY2MpIGxcbiAgaW5cbiAgYXV4IDAgW10gbFxuXG5sZXQgZmlsdGVyX21hcCBmID1cbiAgbGV0IHJlYyBhdXggYWNjdSA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiByZXYgYWNjdVxuICAgIHwgeCA6OiBsIC0+XG4gICAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBhdXggYWNjdSBsXG4gICAgICAgIHwgU29tZSB2IC0+IGF1eCAodiA6OiBhY2N1KSBsXG4gIGluXG4gIGF1eCBbXVxuXG5sZXQgY29uY2F0X21hcCBmIGwgPVxuICBsZXQgcmVjIGF1eCBmIGFjYyA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiByZXYgYWNjXG4gICAgfCB4IDo6IGwgLT5cbiAgICAgICBsZXQgeHMgPSBmIHggaW5cbiAgICAgICBhdXggZiAocmV2X2FwcGVuZCB4cyBhY2MpIGxcbiAgaW4gYXV4IGYgW10gbFxuXG5sZXQgZm9sZF9sZWZ0X21hcCBmIGFjY3UgbCA9XG4gIGxldCByZWMgYXV4IGFjY3UgbF9hY2N1ID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IGFjY3UsIHJldiBsX2FjY3VcbiAgICB8IHggOjogbCAtPlxuICAgICAgICBsZXQgYWNjdSwgeCA9IGYgYWNjdSB4IGluXG4gICAgICAgIGF1eCBhY2N1ICh4IDo6IGxfYWNjdSkgbCBpblxuICBhdXggYWNjdSBbXSBsXG5cbmxldCBwYXJ0aXRpb24gcCBsID1cbiAgbGV0IHJlYyBwYXJ0IHllcyBubyA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gKHJldiB5ZXMsIHJldiBubylcbiAgfCB4IDo6IGwgLT4gaWYgcCB4IHRoZW4gcGFydCAoeCA6OiB5ZXMpIG5vIGwgZWxzZSBwYXJ0IHllcyAoeCA6OiBubykgbCBpblxuICBwYXJ0IFtdIFtdIGxcblxubGV0IHBhcnRpdGlvbl9tYXAgcCBsID1cbiAgbGV0IHJlYyBwYXJ0IGxlZnQgcmlnaHQgPSBmdW5jdGlvblxuICB8IFtdIC0+IChyZXYgbGVmdCwgcmV2IHJpZ2h0KVxuICB8IHggOjogbCAtPlxuICAgICBiZWdpbiBtYXRjaCBwIHggd2l0aFxuICAgICAgIHwgRWl0aGVyLkxlZnQgdiAtPiBwYXJ0ICh2IDo6IGxlZnQpIHJpZ2h0IGxcbiAgICAgICB8IEVpdGhlci5SaWdodCB2IC0+IHBhcnQgbGVmdCAodiA6OiByaWdodCkgbFxuICAgICBlbmRcbiAgaW5cbiAgcGFydCBbXSBbXSBsXG5cbmxldCByZWMgc3BsaXQgPSBmdW5jdGlvblxuICAgIFtdIC0+IChbXSwgW10pXG4gIHwgKHgseSk6OmwgLT5cbiAgICAgIGxldCAocngsIHJ5KSA9IHNwbGl0IGwgaW4gKHg6OnJ4LCB5OjpyeSlcblxubGV0IHJlYyBjb21iaW5lIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IFtdXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiAoYTEsIGEyKSA6OiBjb21iaW5lIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5jb21iaW5lXCJcblxuKCoqIHNvcnRpbmcgKilcblxubGV0IHJlYyBtZXJnZSBjbXAgbDEgbDIgPVxuICBtYXRjaCBsMSwgbDIgd2l0aFxuICB8IFtdLCBsMiAtPiBsMlxuICB8IGwxLCBbXSAtPiBsMVxuICB8IGgxIDo6IHQxLCBoMiA6OiB0MiAtPlxuICAgICAgaWYgY21wIGgxIGgyIDw9IDBcbiAgICAgIHRoZW4gaDEgOjogbWVyZ2UgY21wIHQxIGwyXG4gICAgICBlbHNlIGgyIDo6IG1lcmdlIGNtcCBsMSB0MlxuXG5cbmxldCBzdGFibGVfc29ydCBjbXAgbCA9XG4gIGxldCByZWMgcmV2X21lcmdlIGwxIGwyIGFjY3UgPVxuICAgIG1hdGNoIGwxLCBsMiB3aXRoXG4gICAgfCBbXSwgbDIgLT4gcmV2X2FwcGVuZCBsMiBhY2N1XG4gICAgfCBsMSwgW10gLT4gcmV2X2FwcGVuZCBsMSBhY2N1XG4gICAgfCBoMTo6dDEsIGgyOjp0MiAtPlxuICAgICAgICBpZiBjbXAgaDEgaDIgPD0gMFxuICAgICAgICB0aGVuIHJldl9tZXJnZSB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlIGwxIHQyIChoMjo6YWNjdSlcbiAgaW5cbiAgbGV0IHJlYyByZXZfbWVyZ2VfcmV2IGwxIGwyIGFjY3UgPVxuICAgIG1hdGNoIGwxLCBsMiB3aXRoXG4gICAgfCBbXSwgbDIgLT4gcmV2X2FwcGVuZCBsMiBhY2N1XG4gICAgfCBsMSwgW10gLT4gcmV2X2FwcGVuZCBsMSBhY2N1XG4gICAgfCBoMTo6dDEsIGgyOjp0MiAtPlxuICAgICAgICBpZiBjbXAgaDEgaDIgPiAwXG4gICAgICAgIHRoZW4gcmV2X21lcmdlX3JldiB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlX3JldiBsMSB0MiAoaDI6OmFjY3UpXG4gIGluXG4gIGxldCByZWMgc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPSBpZiBjbXAgeDEgeDIgPD0gMCB0aGVuIFt4MTsgeDJdIGVsc2UgW3gyOyB4MV0gaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgMywgeDEgOjogeDIgOjogeDMgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGlmIGNtcCB4MSB4MiA8PSAwIHRoZW5cbiAgICAgICAgICAgIGlmIGNtcCB4MiB4MyA8PSAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlIGlmIGNtcCB4MSB4MyA8PSAwIHRoZW4gW3gxOyB4MzsgeDJdXG4gICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgxIHgzIDw9IDAgdGhlbiBbeDI7IHgxOyB4M11cbiAgICAgICAgICBlbHNlIGlmIGNtcCB4MiB4MyA8PSAwIHRoZW4gW3gyOyB4MzsgeDFdXG4gICAgICAgICAgZWxzZSBbeDM7IHgyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgbiwgbCAtPlxuICAgICAgICBsZXQgbjEgPSBuIGFzciAxIGluXG4gICAgICAgIGxldCBuMiA9IG4gLSBuMSBpblxuICAgICAgICBsZXQgczEsIGwyID0gcmV2X3NvcnQgbjEgbCBpblxuICAgICAgICBsZXQgczIsIHRsID0gcmV2X3NvcnQgbjIgbDIgaW5cbiAgICAgICAgKHJldl9tZXJnZV9yZXYgczEgczIgW10sIHRsKVxuICBhbmQgcmV2X3NvcnQgbiBsID1cbiAgICBtYXRjaCBuLCBsIHdpdGhcbiAgICB8IDIsIHgxIDo6IHgyIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID0gaWYgY21wIHgxIHgyID4gMCB0aGVuIFt4MTsgeDJdIGVsc2UgW3gyOyB4MV0gaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgMywgeDEgOjogeDIgOjogeDMgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGlmIGNtcCB4MSB4MiA+IDAgdGhlblxuICAgICAgICAgICAgaWYgY21wIHgyIHgzID4gMCB0aGVuIFt4MTsgeDI7IHgzXVxuICAgICAgICAgICAgZWxzZSBpZiBjbXAgeDEgeDMgPiAwIHRoZW4gW3gxOyB4MzsgeDJdXG4gICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgxIHgzID4gMCB0aGVuIFt4MjsgeDE7IHgzXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgyIHgzID4gMCB0aGVuIFt4MjsgeDM7IHgxXVxuICAgICAgICAgIGVsc2UgW3gzOyB4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IG4sIGwgLT5cbiAgICAgICAgbGV0IG4xID0gbiBhc3IgMSBpblxuICAgICAgICBsZXQgbjIgPSBuIC0gbjEgaW5cbiAgICAgICAgbGV0IHMxLCBsMiA9IHNvcnQgbjEgbCBpblxuICAgICAgICBsZXQgczIsIHRsID0gc29ydCBuMiBsMiBpblxuICAgICAgICAocmV2X21lcmdlIHMxIHMyIFtdLCB0bClcbiAgaW5cbiAgbGV0IGxlbiA9IGxlbmd0aCBsIGluXG4gIGlmIGxlbiA8IDIgdGhlbiBsIGVsc2UgZnN0IChzb3J0IGxlbiBsKVxuXG5cbmxldCBzb3J0ID0gc3RhYmxlX3NvcnRcbmxldCBmYXN0X3NvcnQgPSBzdGFibGVfc29ydFxuXG4oKiBOb3RlOiBvbiBhIGxpc3Qgb2YgbGVuZ3RoIGJldHdlZW4gYWJvdXQgMTAwMDAwIChkZXBlbmRpbmcgb24gdGhlIG1pbm9yXG4gICBoZWFwIHNpemUgYW5kIHRoZSB0eXBlIG9mIHRoZSBsaXN0KSBhbmQgU3lzLm1heF9hcnJheV9zaXplLCBpdCBpc1xuICAgYWN0dWFsbHkgZmFzdGVyIHRvIHVzZSB0aGUgZm9sbG93aW5nLCBidXQgaXQgbWlnaHQgYWxzbyB1c2UgbW9yZSBtZW1vcnlcbiAgIGJlY2F1c2UgdGhlIGFyZ3VtZW50IGxpc3QgY2Fubm90IGJlIGRlYWxsb2NhdGVkIGluY3JlbWVudGFsbHkuXG5cbiAgIEFsc28sIHRoZXJlIHNlZW1zIHRvIGJlIGEgYnVnIGluIHRoaXMgY29kZSBvciBpbiB0aGVcbiAgIGltcGxlbWVudGF0aW9uIG9mIG9ial90cnVuY2F0ZS5cblxuZXh0ZXJuYWwgb2JqX3RydW5jYXRlIDogJ2EgYXJyYXkgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfb2JqX3RydW5jYXRlXCJcblxubGV0IGFycmF5X3RvX2xpc3RfaW5fcGxhY2UgYSA9XG4gIGxldCBsID0gQXJyYXkubGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGFjY3UgbiBwID1cbiAgICBpZiBwIDw9IDAgdGhlbiBhY2N1IGVsc2UgYmVnaW5cbiAgICAgIGlmIHAgPSBuIHRoZW4gYmVnaW5cbiAgICAgICAgb2JqX3RydW5jYXRlIGEgcDtcbiAgICAgICAgbG9vcCAoYS4ocC0xKSA6OiBhY2N1KSAobi0xMDAwKSAocC0xKVxuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgbG9vcCAoYS4ocC0xKSA6OiBhY2N1KSBuIChwLTEpXG4gICAgICBlbmRcbiAgICBlbmRcbiAgaW5cbiAgbG9vcCBbXSAobC0xMDAwKSBsXG5cblxubGV0IHN0YWJsZV9zb3J0IGNtcCBsID1cbiAgbGV0IGEgPSBBcnJheS5vZl9saXN0IGwgaW5cbiAgQXJyYXkuc3RhYmxlX3NvcnQgY21wIGE7XG4gIGFycmF5X3RvX2xpc3RfaW5fcGxhY2UgYVxuXG4qKVxuXG5cbigqKiBzb3J0aW5nICsgcmVtb3ZpbmcgZHVwbGljYXRlcyAqKVxuXG5sZXQgc29ydF91bmlxIGNtcCBsID1cbiAgbGV0IHJlYyByZXZfbWVyZ2UgbDEgbDIgYWNjdSA9XG4gICAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgICB8IFtdLCBsMiAtPiByZXZfYXBwZW5kIGwyIGFjY3VcbiAgICB8IGwxLCBbXSAtPiByZXZfYXBwZW5kIGwxIGFjY3VcbiAgICB8IGgxOjp0MSwgaDI6OnQyIC0+XG4gICAgICAgIGxldCBjID0gY21wIGgxIGgyIGluXG4gICAgICAgIGlmIGMgPSAwIHRoZW4gcmV2X21lcmdlIHQxIHQyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSBpZiBjIDwgMFxuICAgICAgICB0aGVuIHJldl9tZXJnZSB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlIGwxIHQyIChoMjo6YWNjdSlcbiAgaW5cbiAgbGV0IHJlYyByZXZfbWVyZ2VfcmV2IGwxIGwyIGFjY3UgPVxuICAgIG1hdGNoIGwxLCBsMiB3aXRoXG4gICAgfCBbXSwgbDIgLT4gcmV2X2FwcGVuZCBsMiBhY2N1XG4gICAgfCBsMSwgW10gLT4gcmV2X2FwcGVuZCBsMSBhY2N1XG4gICAgfCBoMTo6dDEsIGgyOjp0MiAtPlxuICAgICAgICBsZXQgYyA9IGNtcCBoMSBoMiBpblxuICAgICAgICBpZiBjID0gMCB0aGVuIHJldl9tZXJnZV9yZXYgdDEgdDIgKGgxOjphY2N1KVxuICAgICAgICBlbHNlIGlmIGMgPiAwXG4gICAgICAgIHRoZW4gcmV2X21lcmdlX3JldiB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlX3JldiBsMSB0MiAoaDI6OmFjY3UpXG4gIGluXG4gIGxldCByZWMgc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGxldCBjID0gY21wIHgxIHgyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDFdIGVsc2UgaWYgYyA8IDAgdGhlbiBbeDE7IHgyXSBlbHNlIFt4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IDMsIHgxIDo6IHgyIDo6IHgzIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4Ml0gZWxzZSBpZiBjIDwgMCB0aGVuIFt4MjsgeDNdIGVsc2UgW3gzOyB4Ml1cbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MTsgeDJdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxOyB4Ml1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuIFt4MTsgeDM7IHgyXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MjsgeDFdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW4gW3gyOyB4MTsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyOyB4MV1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuIFt4MjsgeDM7IHgxXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCBuLCBsIC0+XG4gICAgICAgIGxldCBuMSA9IG4gYXNyIDEgaW5cbiAgICAgICAgbGV0IG4yID0gbiAtIG4xIGluXG4gICAgICAgIGxldCBzMSwgbDIgPSByZXZfc29ydCBuMSBsIGluXG4gICAgICAgIGxldCBzMiwgdGwgPSByZXZfc29ydCBuMiBsMiBpblxuICAgICAgICAocmV2X21lcmdlX3JldiBzMSBzMiBbXSwgdGwpXG4gIGFuZCByZXZfc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGxldCBjID0gY21wIHgxIHgyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDFdIGVsc2UgaWYgYyA+IDAgdGhlbiBbeDE7IHgyXSBlbHNlIFt4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IDMsIHgxIDo6IHgyIDo6IHgzIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4Ml0gZWxzZSBpZiBjID4gMCB0aGVuIFt4MjsgeDNdIGVsc2UgW3gzOyB4Ml1cbiAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MTsgeDJdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxOyB4Ml1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjID4gMCB0aGVuIFt4MTsgeDM7IHgyXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MjsgeDFdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW4gW3gyOyB4MTsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyOyB4MV1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjID4gMCB0aGVuIFt4MjsgeDM7IHgxXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCBuLCBsIC0+XG4gICAgICAgIGxldCBuMSA9IG4gYXNyIDEgaW5cbiAgICAgICAgbGV0IG4yID0gbiAtIG4xIGluXG4gICAgICAgIGxldCBzMSwgbDIgPSBzb3J0IG4xIGwgaW5cbiAgICAgICAgbGV0IHMyLCB0bCA9IHNvcnQgbjIgbDIgaW5cbiAgICAgICAgKHJldl9tZXJnZSBzMSBzMiBbXSwgdGwpXG4gIGluXG4gIGxldCBsZW4gPSBsZW5ndGggbCBpblxuICBpZiBsZW4gPCAyIHRoZW4gbCBlbHNlIGZzdCAoc29ydCBsZW4gbClcblxuXG5sZXQgcmVjIGNvbXBhcmVfbGVuZ3RocyBsMSBsMiA9XG4gIG1hdGNoIGwxLCBsMiB3aXRoXG4gIHwgW10sIFtdIC0+IDBcbiAgfCBbXSwgXyAtPiAtMVxuICB8IF8sIFtdIC0+IDFcbiAgfCBfIDo6IGwxLCBfIDo6IGwyIC0+IGNvbXBhcmVfbGVuZ3RocyBsMSBsMlxuOztcblxubGV0IHJlYyBjb21wYXJlX2xlbmd0aF93aXRoIGwgbiA9XG4gIG1hdGNoIGwgd2l0aFxuICB8IFtdIC0+XG4gICAgaWYgbiA9IDAgdGhlbiAwIGVsc2VcbiAgICAgIGlmIG4gPiAwIHRoZW4gLTEgZWxzZSAxXG4gIHwgXyA6OiBsIC0+XG4gICAgaWYgbiA8PSAwIHRoZW4gMSBlbHNlXG4gICAgICBjb21wYXJlX2xlbmd0aF93aXRoIGwgKG4tMSlcbjs7XG5cbigqKiB7MSBDb21wYXJpc29ufSAqKVxuXG4oKiBOb3RlOiB3ZSBhcmUgKm5vdCogc2hvcnRjdXR0aW5nIHRoZSBsaXN0IGJ5IHVzaW5nXG4gICBbTGlzdC5jb21wYXJlX2xlbmd0aHNdIGZpcnN0OyB0aGlzIG1heSBiZSBzbG93ZXIgb24gbG9uZyBsaXN0c1xuICAgaW1tZWRpYXRlbHkgc3RhcnQgd2l0aCBkaXN0aW5jdCBlbGVtZW50cy4gSXQgaXMgYWxzbyBpbmNvcnJlY3QgZm9yXG4gICBbY29tcGFyZV0gYmVsb3csIGFuZCBpdCBpcyBiZXR0ZXIgKHByaW5jaXBsZSBvZiBsZWFzdCBzdXJwcmlzZSkgdG9cbiAgIHVzZSB0aGUgc2FtZSBhcHByb2FjaCBmb3IgYm90aCBmdW5jdGlvbnMuICopXG5sZXQgcmVjIGVxdWFsIGVxIGwxIGwyID1cbiAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgfCBbXSwgW10gLT4gdHJ1ZVxuICB8IFtdLCBfOjpfIHwgXzo6XywgW10gLT4gZmFsc2VcbiAgfCBhMTo6bDEsIGEyOjpsMiAtPiBlcSBhMSBhMiAmJiBlcXVhbCBlcSBsMSBsMlxuXG5sZXQgcmVjIGNvbXBhcmUgY21wIGwxIGwyID1cbiAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgfCBbXSwgW10gLT4gMFxuICB8IFtdLCBfOjpfIC0+IC0xXG4gIHwgXzo6XywgW10gLT4gMVxuICB8IGExOjpsMSwgYTI6OmwyIC0+XG4gICAgbGV0IGMgPSBjbXAgYTEgYTIgaW5cbiAgICBpZiBjIDw+IDAgdGhlbiBjXG4gICAgZWxzZSBjb21wYXJlIGNtcCBsMSBsMlxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIGwgPVxuICBsZXQgcmVjIGF1eCBsICgpID0gbWF0Y2ggbCB3aXRoXG4gICAgfCBbXSAtPiBTZXEuTmlsXG4gICAgfCB4IDo6IHRhaWwgLT4gU2VxLkNvbnMgKHgsIGF1eCB0YWlsKVxuICBpblxuICBhdXggbFxuXG5sZXQgb2Zfc2VxIHNlcSA9XG4gIGxldCByZWMgZGlyZWN0IGRlcHRoIHNlcSA6IF8gbGlzdCA9XG4gICAgaWYgZGVwdGg9MFxuICAgIHRoZW5cbiAgICAgIFNlcS5mb2xkX2xlZnQgKGZ1biBhY2MgeCAtPiB4OjphY2MpIFtdIHNlcVxuICAgICAgfD4gcmV2ICgqIHRhaWxyZWMgKilcbiAgICBlbHNlIG1hdGNoIHNlcSgpIHdpdGhcbiAgICAgIHwgU2VxLk5pbCAtPiBbXVxuICAgICAgfCBTZXEuQ29ucyAoeCwgbmV4dCkgLT4geCA6OiBkaXJlY3QgKGRlcHRoLTEpIG5leHRcbiAgaW5cbiAgZGlyZWN0IDUwMCBzZXFcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gaW50XG5cbmxldCB6ZXJvID0gMFxubGV0IG9uZSA9IDFcbmxldCBtaW51c19vbmUgPSAtMVxuZXh0ZXJuYWwgbmVnIDogaW50IC0+IGludCA9IFwiJW5lZ2ludFwiXG5leHRlcm5hbCBhZGQgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCBzdWIgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXN1YmludFwiXG5leHRlcm5hbCBtdWwgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW11bGludFwiXG5leHRlcm5hbCBkaXYgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWRpdmludFwiXG5leHRlcm5hbCByZW0gOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW1vZGludFwiXG5leHRlcm5hbCBzdWNjIDogaW50IC0+IGludCA9IFwiJXN1Y2NpbnRcIlxuZXh0ZXJuYWwgcHJlZCA6IGludCAtPiBpbnQgPSBcIiVwcmVkaW50XCJcbmxldCBhYnMgeCA9IGlmIHggPj0gMCB0aGVuIHggZWxzZSAteFxubGV0IG1heF9pbnQgPSAoLTEpIGxzciAxXG5sZXQgbWluX2ludCA9IG1heF9pbnQgKyAxXG5leHRlcm5hbCBsb2dhbmQgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFuZGludFwiXG5leHRlcm5hbCBsb2dvciA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlb3JpbnRcIlxuZXh0ZXJuYWwgbG9neG9yIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiV4b3JpbnRcIlxubGV0IGxvZ25vdCB4ID0gbG9neG9yIHggKC0xKVxuZXh0ZXJuYWwgc2hpZnRfbGVmdCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNsaW50XCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0IDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhc3JpbnRcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNyaW50XCJcbmxldCBlcXVhbCA6IGludCAtPiBpbnQgLT4gYm9vbCA9ICggPSApXG5sZXQgY29tcGFyZSA6IGludCAtPiBpbnQgLT4gaW50ID0gU3RkbGliLmNvbXBhcmVcbmxldCBtaW4geCB5IDogdCA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA6IHQgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5cbigqXG5leHRlcm5hbCBpbnRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludCA9IFwiY2FtbF9pbnRfb2Zfc3RyaW5nXCJcbmxldCBvZl9zdHJpbmcgcyA9IHRyeSBTb21lIChpbnRfb2Zfc3RyaW5nIHMpIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcbiopXG5cbmV4dGVybmFsIGZvcm1hdF9pbnQgOiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZyA9IFwiY2FtbF9mb3JtYXRfaW50XCJcbmxldCB0b19zdHJpbmcgeCA9IGZvcm1hdF9pbnQgXCIlZFwiIHhcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQnl0ZSBzZXF1ZW5jZSBvcGVyYXRpb25zICopXG5cbigqIFdBUk5JTkc6IFNvbWUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgZm9yXG4gICBlZmZpY2llbmN5IHJlYXNvbnMuIFdoZW4geW91IG1vZGlmeSB0aGUgb25lIGluIHRoaXMgZmlsZSB5b3UgbmVlZCB0b1xuICAgbW9kaWZ5IGl0cyBkdXBsaWNhdGUgaW4gc3RyaW5nLm1sLlxuICAgVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBcImR1cGxpY2F0ZWRcIiBjb21tZW50IGFib3ZlIHRoZWlyIGRlZmluaXRpb24uXG4qKVxuXG5leHRlcm5hbCBsZW5ndGggOiBieXRlcyAtPiBpbnQgPSBcIiVieXRlc19sZW5ndGhcIlxuZXh0ZXJuYWwgc3RyaW5nX2xlbmd0aCA6IHN0cmluZyAtPiBpbnQgPSBcIiVzdHJpbmdfbGVuZ3RoXCJcbmV4dGVybmFsIGdldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyID0gXCIlYnl0ZXNfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgc2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgLT4gdW5pdCA9IFwiJWJ5dGVzX3NhZmVfc2V0XCJcbmV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiBieXRlcyA9IFwiY2FtbF9jcmVhdGVfYnl0ZXNcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyID0gXCIlYnl0ZXNfdW5zYWZlX2dldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgLT4gdW5pdCA9IFwiJWJ5dGVzX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2ZpbGwgOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IGNoYXIgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfZmlsbF9ieXRlc1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB1bnNhZmVfdG9fc3RyaW5nIDogYnl0ZXMgLT4gc3RyaW5nID0gXCIlYnl0ZXNfdG9fc3RyaW5nXCJcbmV4dGVybmFsIHVuc2FmZV9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gYnl0ZXMgPSBcIiVieXRlc19vZl9zdHJpbmdcIlxuXG5leHRlcm5hbCB1bnNhZmVfYmxpdCA6IGJ5dGVzIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfYnl0ZXNcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdW5zYWZlX2JsaXRfc3RyaW5nIDogc3RyaW5nIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfc3RyaW5nXCIgW0BAbm9hbGxvY11cblxubGV0IG1ha2UgbiBjID1cbiAgbGV0IHMgPSBjcmVhdGUgbiBpblxuICB1bnNhZmVfZmlsbCBzIDAgbiBjO1xuICBzXG5cbmxldCBpbml0IG4gZiA9XG4gIGxldCBzID0gY3JlYXRlIG4gaW5cbiAgZm9yIGkgPSAwIHRvIG4gLSAxIGRvXG4gICAgdW5zYWZlX3NldCBzIGkgKGYgaSlcbiAgZG9uZTtcbiAgc1xuXG5sZXQgZW1wdHkgPSBjcmVhdGUgMFxuXG5sZXQgY29weSBzID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBzIGluXG4gIGxldCByID0gY3JlYXRlIGxlbiBpblxuICB1bnNhZmVfYmxpdCBzIDAgciAwIGxlbjtcbiAgclxuXG5sZXQgdG9fc3RyaW5nIGIgPSB1bnNhZmVfdG9fc3RyaW5nIChjb3B5IGIpXG5sZXQgb2Zfc3RyaW5nIHMgPSBjb3B5ICh1bnNhZmVfb2Zfc3RyaW5nIHMpXG5cbmxldCBzdWIgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuc3ViIC8gQnl0ZXMuc3ViXCJcbiAgZWxzZSBiZWdpblxuICAgIGxldCByID0gY3JlYXRlIGxlbiBpblxuICAgIHVuc2FmZV9ibGl0IHMgb2ZzIHIgMCBsZW47XG4gICAgclxuICBlbmRcblxubGV0IHN1Yl9zdHJpbmcgYiBvZnMgbGVuID0gdW5zYWZlX3RvX3N0cmluZyAoc3ViIGIgb2ZzIGxlbilcblxuKCogYWRkaXRpb24gd2l0aCBhbiBvdmVyZmxvdyBjaGVjayAqKVxubGV0ICgrKykgYSBiID1cbiAgbGV0IGMgPSBhICsgYiBpblxuICBtYXRjaCBhIDwgMCwgYiA8IDAsIGMgPCAwIHdpdGhcbiAgfCB0cnVlICwgdHJ1ZSAsIGZhbHNlXG4gIHwgZmFsc2UsIGZhbHNlLCB0cnVlICAtPiBpbnZhbGlkX2FyZyBcIkJ5dGVzLmV4dGVuZFwiICgqIG92ZXJmbG93ICopXG4gIHwgXyAtPiBjXG5cbmxldCBleHRlbmQgcyBsZWZ0IHJpZ2h0ID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBzICsrIGxlZnQgKysgcmlnaHQgaW5cbiAgbGV0IHIgPSBjcmVhdGUgbGVuIGluXG4gIGxldCAoc3Jjb2ZmLCBkc3RvZmYpID0gaWYgbGVmdCA8IDAgdGhlbiAtbGVmdCwgMCBlbHNlIDAsIGxlZnQgaW5cbiAgbGV0IGNweWxlbiA9IEludC5taW4gKGxlbmd0aCBzIC0gc3Jjb2ZmKSAobGVuIC0gZHN0b2ZmKSBpblxuICBpZiBjcHlsZW4gPiAwIHRoZW4gdW5zYWZlX2JsaXQgcyBzcmNvZmYgciBkc3RvZmYgY3B5bGVuO1xuICByXG5cbmxldCBmaWxsIHMgb2ZzIGxlbiBjID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuZmlsbCAvIEJ5dGVzLmZpbGxcIlxuICBlbHNlIHVuc2FmZV9maWxsIHMgb2ZzIGxlbiBjXG5cbmxldCBibGl0IHMxIG9mczEgczIgb2ZzMiBsZW4gPVxuICBpZiBsZW4gPCAwIHx8IG9mczEgPCAwIHx8IG9mczEgPiBsZW5ndGggczEgLSBsZW5cbiAgICAgICAgICAgICB8fCBvZnMyIDwgMCB8fCBvZnMyID4gbGVuZ3RoIHMyIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJCeXRlcy5ibGl0XCJcbiAgZWxzZSB1bnNhZmVfYmxpdCBzMSBvZnMxIHMyIG9mczIgbGVuXG5cbmxldCBibGl0X3N0cmluZyBzMSBvZnMxIHMyIG9mczIgbGVuID1cbiAgaWYgbGVuIDwgMCB8fCBvZnMxIDwgMCB8fCBvZnMxID4gc3RyaW5nX2xlbmd0aCBzMSAtIGxlblxuICAgICAgICAgICAgIHx8IG9mczIgPCAwIHx8IG9mczIgPiBsZW5ndGggczIgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5ibGl0IC8gQnl0ZXMuYmxpdF9zdHJpbmdcIlxuICBlbHNlIHVuc2FmZV9ibGl0X3N0cmluZyBzMSBvZnMxIHMyIG9mczIgbGVuXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaXRlciBmIGEgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYodW5zYWZlX2dldCBhIGkpIGRvbmVcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpdGVyaSBmIGEgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgaSAodW5zYWZlX2dldCBhIGkpIGRvbmVcblxubGV0IGVuc3VyZV9nZSAoeDppbnQpIHkgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgaW52YWxpZF9hcmcgXCJCeXRlcy5jb25jYXRcIlxuXG5sZXQgcmVjIHN1bV9sZW5ndGhzIGFjYyBzZXBsZW4gPSBmdW5jdGlvblxuICB8IFtdIC0+IGFjY1xuICB8IGhkIDo6IFtdIC0+IGxlbmd0aCBoZCArIGFjY1xuICB8IGhkIDo6IHRsIC0+IHN1bV9sZW5ndGhzIChlbnN1cmVfZ2UgKGxlbmd0aCBoZCArIHNlcGxlbiArIGFjYykgYWNjKSBzZXBsZW4gdGxcblxubGV0IHJlYyB1bnNhZmVfYmxpdHMgZHN0IHBvcyBzZXAgc2VwbGVuID0gZnVuY3Rpb25cbiAgICBbXSAtPiBkc3RcbiAgfCBoZCA6OiBbXSAtPlxuICAgIHVuc2FmZV9ibGl0IGhkIDAgZHN0IHBvcyAobGVuZ3RoIGhkKTsgZHN0XG4gIHwgaGQgOjogdGwgLT5cbiAgICB1bnNhZmVfYmxpdCBoZCAwIGRzdCBwb3MgKGxlbmd0aCBoZCk7XG4gICAgdW5zYWZlX2JsaXQgc2VwIDAgZHN0IChwb3MgKyBsZW5ndGggaGQpIHNlcGxlbjtcbiAgICB1bnNhZmVfYmxpdHMgZHN0IChwb3MgKyBsZW5ndGggaGQgKyBzZXBsZW4pIHNlcCBzZXBsZW4gdGxcblxubGV0IGNvbmNhdCBzZXAgPSBmdW5jdGlvblxuICAgIFtdIC0+IGVtcHR5XG4gIHwgbCAtPiBsZXQgc2VwbGVuID0gbGVuZ3RoIHNlcCBpblxuICAgICAgICAgIHVuc2FmZV9ibGl0c1xuICAgICAgICAgICAgKGNyZWF0ZSAoc3VtX2xlbmd0aHMgMCBzZXBsZW4gbCkpXG4gICAgICAgICAgICAwIHNlcCBzZXBsZW4gbFxuXG5sZXQgY2F0IHMxIHMyID1cbiAgbGV0IGwxID0gbGVuZ3RoIHMxIGluXG4gIGxldCBsMiA9IGxlbmd0aCBzMiBpblxuICBsZXQgciA9IGNyZWF0ZSAobDEgKyBsMikgaW5cbiAgdW5zYWZlX2JsaXQgczEgMCByIDAgbDE7XG4gIHVuc2FmZV9ibGl0IHMyIDAgciBsMSBsMjtcbiAgclxuXG5cbmV4dGVybmFsIGNoYXJfY29kZTogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBjaGFyX2NocjogaW50IC0+IGNoYXIgPSBcIiVpZGVudGl0eVwiXG5cbmxldCBpc19zcGFjZSA9IGZ1bmN0aW9uXG4gIHwgJyAnIHwgJ1xcMDEyJyB8ICdcXG4nIHwgJ1xccicgfCAnXFx0JyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5sZXQgdHJpbSBzID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBzIGluXG4gIGxldCBpID0gcmVmIDAgaW5cbiAgd2hpbGUgIWkgPCBsZW4gJiYgaXNfc3BhY2UgKHVuc2FmZV9nZXQgcyAhaSkgZG9cbiAgICBpbmNyIGlcbiAgZG9uZTtcbiAgbGV0IGogPSByZWYgKGxlbiAtIDEpIGluXG4gIHdoaWxlICFqID49ICFpICYmIGlzX3NwYWNlICh1bnNhZmVfZ2V0IHMgIWopIGRvXG4gICAgZGVjciBqXG4gIGRvbmU7XG4gIGlmICFqID49ICFpIHRoZW5cbiAgICBzdWIgcyAhaSAoIWogLSAhaSArIDEpXG4gIGVsc2VcbiAgICBlbXB0eVxuXG5sZXQgZXNjYXBlZCBzID1cbiAgbGV0IG4gPSByZWYgMCBpblxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIHMgLSAxIGRvXG4gICAgbiA6PSAhbiArXG4gICAgICAobWF0Y2ggdW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgIHwgJ1xcXCInIHwgJ1xcXFwnIHwgJ1xcbicgfCAnXFx0JyB8ICdcXHInIHwgJ1xcYicgLT4gMlxuICAgICAgIHwgJyAnIC4uICd+JyAtPiAxXG4gICAgICAgfCBfIC0+IDQpXG4gIGRvbmU7XG4gIGlmICFuID0gbGVuZ3RoIHMgdGhlbiBjb3B5IHMgZWxzZSBiZWdpblxuICAgIGxldCBzJyA9IGNyZWF0ZSAhbiBpblxuICAgIG4gOj0gMDtcbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIHMgLSAxIGRvXG4gICAgICBiZWdpbiBtYXRjaCB1bnNhZmVfZ2V0IHMgaSB3aXRoXG4gICAgICB8ICgnXFxcIicgfCAnXFxcXCcpIGFzIGMgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuIGNcbiAgICAgIHwgJ1xcbicgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuICduJ1xuICAgICAgfCAnXFx0JyAtPlxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnOyBpbmNyIG47IHVuc2FmZV9zZXQgcycgIW4gJ3QnXG4gICAgICB8ICdcXHInIC0+XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAnXFxcXCc7IGluY3IgbjsgdW5zYWZlX3NldCBzJyAhbiAncidcbiAgICAgIHwgJ1xcYicgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuICdiJ1xuICAgICAgfCAoJyAnIC4uICd+JykgYXMgYyAtPiB1bnNhZmVfc2V0IHMnICFuIGNcbiAgICAgIHwgYyAtPlxuICAgICAgICAgIGxldCBhID0gY2hhcl9jb2RlIGMgaW5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJztcbiAgICAgICAgICBpbmNyIG47XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAoY2hhcl9jaHIgKDQ4ICsgYSAvIDEwMCkpO1xuICAgICAgICAgIGluY3IgbjtcbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuIChjaGFyX2NociAoNDggKyAoYSAvIDEwKSBtb2QgMTApKTtcbiAgICAgICAgICBpbmNyIG47XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAoY2hhcl9jaHIgKDQ4ICsgYSBtb2QgMTApKTtcbiAgICAgIGVuZDtcbiAgICAgIGluY3IgblxuICAgIGRvbmU7XG4gICAgcydcbiAgZW5kXG5cbmxldCBtYXAgZiBzID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBsID0gMCB0aGVuIHMgZWxzZSBiZWdpblxuICAgIGxldCByID0gY3JlYXRlIGwgaW5cbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG8gdW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgcyBpKSkgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgbWFwaSBmIHMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGwgPSAwIHRoZW4gcyBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkbyB1bnNhZmVfc2V0IHIgaSAoZiBpICh1bnNhZmVfZ2V0IHMgaSkpIGRvbmU7XG4gICAgclxuICBlbmRcblxubGV0IGZvbGRfbGVmdCBmIHggYSA9XG4gIGxldCByID0gcmVmIHggaW5cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkb1xuICAgIHIgOj0gZiAhciAodW5zYWZlX2dldCBhIGkpXG4gIGRvbmU7XG4gICFyXG5cbmxldCBmb2xkX3JpZ2h0IGYgYSB4ID1cbiAgbGV0IHIgPSByZWYgeCBpblxuICBmb3IgaSA9IGxlbmd0aCBhIC0gMSBkb3dudG8gMCBkb1xuICAgIHIgOj0gZiAodW5zYWZlX2dldCBhIGkpICFyXG4gIGRvbmU7XG4gICFyXG5cbmxldCBleGlzdHMgcCBzID1cbiAgbGV0IG4gPSBsZW5ndGggcyBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBzIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IGZvcl9hbGwgcCBzID1cbiAgbGV0IG4gPSBsZW5ndGggcyBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiB0cnVlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IHMgaSkgdGhlbiBsb29wIChzdWNjIGkpXG4gICAgZWxzZSBmYWxzZSBpblxuICBsb29wIDBcblxubGV0IHVwcGVyY2FzZV9hc2NpaSBzID0gbWFwIENoYXIudXBwZXJjYXNlX2FzY2lpIHNcbmxldCBsb3dlcmNhc2VfYXNjaWkgcyA9IG1hcCBDaGFyLmxvd2VyY2FzZV9hc2NpaSBzXG5cbmxldCBhcHBseTEgZiBzID1cbiAgaWYgbGVuZ3RoIHMgPSAwIHRoZW4gcyBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjb3B5IHMgaW5cbiAgICB1bnNhZmVfc2V0IHIgMCAoZih1bnNhZmVfZ2V0IHMgMCkpO1xuICAgIHJcbiAgZW5kXG5cbmxldCBjYXBpdGFsaXplX2FzY2lpIHMgPSBhcHBseTEgQ2hhci51cHBlcmNhc2VfYXNjaWkgc1xubGV0IHVuY2FwaXRhbGl6ZV9hc2NpaSBzID0gYXBwbHkxIENoYXIubG93ZXJjYXNlX2FzY2lpIHNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBzdGFydHNfd2l0aCB+cHJlZml4IHMgPVxuICBsZXQgbGVuX3MgPSBsZW5ndGggc1xuICBhbmQgbGVuX3ByZSA9IGxlbmd0aCBwcmVmaXggaW5cbiAgbGV0IHJlYyBhdXggaSA9XG4gICAgaWYgaSA9IGxlbl9wcmUgdGhlbiB0cnVlXG4gICAgZWxzZSBpZiB1bnNhZmVfZ2V0IHMgaSA8PiB1bnNhZmVfZ2V0IHByZWZpeCBpIHRoZW4gZmFsc2VcbiAgICBlbHNlIGF1eCAoaSArIDEpXG4gIGluIGxlbl9zID49IGxlbl9wcmUgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBlbmRzX3dpdGggfnN1ZmZpeCBzID1cbiAgbGV0IGxlbl9zID0gbGVuZ3RoIHNcbiAgYW5kIGxlbl9zdWYgPSBsZW5ndGggc3VmZml4IGluXG4gIGxldCBkaWZmID0gbGVuX3MgLSBsZW5fc3VmIGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGlmIGkgPSBsZW5fc3VmIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgdW5zYWZlX2dldCBzIChkaWZmICsgaSkgPD4gdW5zYWZlX2dldCBzdWZmaXggaSB0aGVuIGZhbHNlXG4gICAgZWxzZSBhdXggKGkgKyAxKVxuICBpbiBkaWZmID49IDAgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByZWMgaW5kZXhfcmVjIHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gaSBlbHNlIGluZGV4X3JlYyBzIGxpbSAoaSArIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpbmRleCBzIGMgPSBpbmRleF9yZWMgcyAobGVuZ3RoIHMpIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyBpbmRleF9yZWNfb3B0IHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gTm9uZSBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIFNvbWUgaSBlbHNlIGluZGV4X3JlY19vcHQgcyBsaW0gKGkgKyAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaW5kZXhfb3B0IHMgYyA9IGluZGV4X3JlY19vcHQgcyAobGVuZ3RoIHMpIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGluZGV4X2Zyb20gcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuaW5kZXhfZnJvbSAvIEJ5dGVzLmluZGV4X2Zyb21cIiBlbHNlXG4gIGluZGV4X3JlYyBzIGwgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tX29wdCAvIEJ5dGVzLmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIGluZGV4X3JlY19vcHQgcyBsIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyByaW5kZXhfcmVjIHMgaSBjID1cbiAgaWYgaSA8IDAgdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBpIGVsc2UgcmluZGV4X3JlYyBzIChpIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJpbmRleCBzIGMgPSByaW5kZXhfcmVjIHMgKGxlbmd0aCBzIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJpbmRleF9mcm9tIHMgaSBjID1cbiAgaWYgaSA8IC0xIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJpbmRleF9mcm9tIC8gQnl0ZXMucmluZGV4X2Zyb21cIlxuICBlbHNlXG4gICAgcmluZGV4X3JlYyBzIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyByaW5kZXhfcmVjX29wdCBzIGkgYyA9XG4gIGlmIGkgPCAwIHRoZW4gTm9uZSBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIFNvbWUgaSBlbHNlIHJpbmRleF9yZWNfb3B0IHMgKGkgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmluZGV4X29wdCBzIGMgPSByaW5kZXhfcmVjX29wdCBzIChsZW5ndGggcyAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBpZiBpIDwgLTEgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmluZGV4X2Zyb21fb3B0IC8gQnl0ZXMucmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIHJpbmRleF9yZWNfb3B0IHMgaSBjXG5cblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBjb250YWluc19mcm9tIHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcuY29udGFpbnNfZnJvbSAvIEJ5dGVzLmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAoaW5kZXhfcmVjIHMgbCBpIGMpOyB0cnVlIHdpdGggTm90X2ZvdW5kIC0+IGZhbHNlXG5cblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBjb250YWlucyBzIGMgPSBjb250YWluc19mcm9tIHMgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmNvbnRhaW5zX2Zyb20gcyBpIGMgPVxuICBpZiBpIDwgMCB8fCBpID49IGxlbmd0aCBzIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5yY29udGFpbnNfZnJvbSAvIEJ5dGVzLnJjb250YWluc19mcm9tXCJcbiAgZWxzZVxuICAgIHRyeSBpZ25vcmUgKHJpbmRleF9yZWMgcyBpIGMpOyB0cnVlIHdpdGggTm90X2ZvdW5kIC0+IGZhbHNlXG5cblxudHlwZSB0ID0gYnl0ZXNcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxuZXh0ZXJuYWwgZXF1YWwgOiB0IC0+IHQgLT4gYm9vbCA9IFwiY2FtbF9ieXRlc19lcXVhbFwiIFtAQG5vYWxsb2NdXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgc3BsaXRfb25fY2hhciBzZXAgcyA9XG4gIGxldCByID0gcmVmIFtdIGluXG4gIGxldCBqID0gcmVmIChsZW5ndGggcykgaW5cbiAgZm9yIGkgPSBsZW5ndGggcyAtIDEgZG93bnRvIDAgZG9cbiAgICBpZiB1bnNhZmVfZ2V0IHMgaSA9IHNlcCB0aGVuIGJlZ2luXG4gICAgICByIDo9IHN1YiBzIChpICsgMSkgKCFqIC0gaSAtIDEpIDo6ICFyO1xuICAgICAgaiA6PSBpXG4gICAgZW5kXG4gIGRvbmU7XG4gIHN1YiBzIDAgIWogOjogIXJcblxuKCogRGVwcmVjYXRlZCBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgdmlhIG90aGVyIGRlcHJlY2F0ZWQgZnVuY3Rpb25zICopXG5bQEBAb2NhbWwud2FybmluZyBcIi0zXCJdXG5sZXQgdXBwZXJjYXNlIHMgPSBtYXAgQ2hhci51cHBlcmNhc2Ugc1xubGV0IGxvd2VyY2FzZSBzID0gbWFwIENoYXIubG93ZXJjYXNlIHNcblxubGV0IGNhcGl0YWxpemUgcyA9IGFwcGx5MSBDaGFyLnVwcGVyY2FzZSBzXG5sZXQgdW5jYXBpdGFsaXplIHMgPSBhcHBseTEgQ2hhci5sb3dlcmNhc2Ugc1xuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHMgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICBpZiBpID0gbGVuZ3RoIHMgdGhlbiBTZXEuTmlsXG4gICAgZWxzZVxuICAgICAgbGV0IHggPSBnZXQgcyBpIGluXG4gICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICBpblxuICBhdXggMFxuXG5sZXQgdG9fc2VxaSBzID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgaWYgaSA9IGxlbmd0aCBzIHRoZW4gU2VxLk5pbFxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gZ2V0IHMgaSBpblxuICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gIGluXG4gIGF1eCAwXG5cbmxldCBvZl9zZXEgaSA9XG4gIGxldCBuID0gcmVmIDAgaW5cbiAgbGV0IGJ1ZiA9IHJlZiAobWFrZSAyNTYgJ1xcMDAwJykgaW5cbiAgbGV0IHJlc2l6ZSAoKSA9XG4gICAgKCogcmVzaXplICopXG4gICAgbGV0IG5ld19sZW4gPSBJbnQubWluICgyICogbGVuZ3RoICFidWYpIFN5cy5tYXhfc3RyaW5nX2xlbmd0aCBpblxuICAgIGlmIGxlbmd0aCAhYnVmID0gbmV3X2xlbiB0aGVuIGZhaWx3aXRoIFwiQnl0ZXMub2Zfc2VxOiBjYW5ub3QgZ3JvdyBieXRlc1wiO1xuICAgIGxldCBuZXdfYnVmID0gbWFrZSBuZXdfbGVuICdcXDAwMCcgaW5cbiAgICBibGl0ICFidWYgMCBuZXdfYnVmIDAgIW47XG4gICAgYnVmIDo9IG5ld19idWZcbiAgaW5cbiAgU2VxLml0ZXJcbiAgICAoZnVuIGMgLT5cbiAgICAgICBpZiAhbiA9IGxlbmd0aCAhYnVmIHRoZW4gcmVzaXplKCk7XG4gICAgICAgc2V0ICFidWYgIW4gYztcbiAgICAgICBpbmNyIG4pXG4gICAgaTtcbiAgc3ViICFidWYgMCAhblxuXG4oKiogezYgQmluYXJ5IGVuY29kaW5nL2RlY29kaW5nIG9mIGludGVnZXJzfSAqKVxuXG4oKiBUaGUgZ2V0XyBmdW5jdGlvbnMgYXJlIGFsbCBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxuXG5leHRlcm5hbCB1bnNhZmVfZ2V0X3VpbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCA9IFwiJWJ5dGVzX3Vuc2FmZV9nZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldF91aW50MTZfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCIlY2FtbF9ieXRlc19nZXQxNnVcIlxuZXh0ZXJuYWwgZ2V0X3VpbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCA9IFwiJWJ5dGVzX3NhZmVfZ2V0XCJcbmV4dGVybmFsIGdldF91aW50MTZfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCIlY2FtbF9ieXRlc19nZXQxNlwiXG5leHRlcm5hbCBnZXRfaW50MzJfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50MzIgPSBcIiVjYW1sX2J5dGVzX2dldDMyXCJcbmV4dGVybmFsIGdldF9pbnQ2NF9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQ2NCA9IFwiJWNhbWxfYnl0ZXNfZ2V0NjRcIlxuXG5leHRlcm5hbCB1bnNhZmVfc2V0X3VpbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCIlYnl0ZXNfdW5zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0X3VpbnQxNl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcIiVjYW1sX2J5dGVzX3NldDE2dVwiXG5leHRlcm5hbCBzZXRfaW50OCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWJ5dGVzX3NhZmVfc2V0XCJcbmV4dGVybmFsIHNldF9pbnQxNl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0MTZcIlxuZXh0ZXJuYWwgc2V0X2ludDMyX25lIDogYnl0ZXMgLT4gaW50IC0+IGludDMyIC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDMyXCJcbmV4dGVybmFsIHNldF9pbnQ2NF9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQ2NCAtPiB1bml0ID0gXCIlY2FtbF9ieXRlc19zZXQ2NFwiXG5leHRlcm5hbCBzd2FwMTYgOiBpbnQgLT4gaW50ID0gXCIlYnN3YXAxNlwiXG5leHRlcm5hbCBzd2FwMzIgOiBpbnQzMiAtPiBpbnQzMiA9IFwiJWJzd2FwX2ludDMyXCJcbmV4dGVybmFsIHN3YXA2NCA6IGludDY0IC0+IGludDY0ID0gXCIlYnN3YXBfaW50NjRcIlxuXG5sZXQgdW5zYWZlX2dldF91aW50MTZfbGUgYiBpID1cbiAgaWYgU3lzLmJpZ19lbmRpYW5cbiAgdGhlbiBzd2FwMTYgKHVuc2FmZV9nZXRfdWludDE2X25lIGIgaSlcbiAgZWxzZSB1bnNhZmVfZ2V0X3VpbnQxNl9uZSBiIGlcblxubGV0IHVuc2FmZV9nZXRfdWludDE2X2JlIGIgaSA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuXG4gIHRoZW4gdW5zYWZlX2dldF91aW50MTZfbmUgYiBpXG4gIGVsc2Ugc3dhcDE2ICh1bnNhZmVfZ2V0X3VpbnQxNl9uZSBiIGkpXG5cbmxldCBnZXRfaW50OCBiIGkgPVxuICAoKGdldF91aW50OCBiIGkpIGxzbCAoU3lzLmludF9zaXplIC0gOCkpIGFzciAoU3lzLmludF9zaXplIC0gOClcblxubGV0IGdldF91aW50MTZfbGUgYiBpID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMTYgKGdldF91aW50MTZfbmUgYiBpKVxuICBlbHNlIGdldF91aW50MTZfbmUgYiBpXG5cbmxldCBnZXRfdWludDE2X2JlIGIgaSA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAxNiAoZ2V0X3VpbnQxNl9uZSBiIGkpXG4gIGVsc2UgZ2V0X3VpbnQxNl9uZSBiIGlcblxubGV0IGdldF9pbnQxNl9uZSBiIGkgPVxuICAoKGdldF91aW50MTZfbmUgYiBpKSBsc2wgKFN5cy5pbnRfc2l6ZSAtIDE2KSkgYXNyIChTeXMuaW50X3NpemUgLSAxNilcblxubGV0IGdldF9pbnQxNl9sZSBiIGkgPVxuICAoKGdldF91aW50MTZfbGUgYiBpKSBsc2wgKFN5cy5pbnRfc2l6ZSAtIDE2KSkgYXNyIChTeXMuaW50X3NpemUgLSAxNilcblxubGV0IGdldF9pbnQxNl9iZSBiIGkgPVxuICAoKGdldF91aW50MTZfYmUgYiBpKSBsc2wgKFN5cy5pbnRfc2l6ZSAtIDE2KSkgYXNyIChTeXMuaW50X3NpemUgLSAxNilcblxubGV0IGdldF9pbnQzMl9sZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAzMiAoZ2V0X2ludDMyX25lIGIgaSlcbiAgZWxzZSBnZXRfaW50MzJfbmUgYiBpXG5cbmxldCBnZXRfaW50MzJfYmUgYiBpID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDMyIChnZXRfaW50MzJfbmUgYiBpKVxuICBlbHNlIGdldF9pbnQzMl9uZSBiIGlcblxubGV0IGdldF9pbnQ2NF9sZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXA2NCAoZ2V0X2ludDY0X25lIGIgaSlcbiAgZWxzZSBnZXRfaW50NjRfbmUgYiBpXG5cbmxldCBnZXRfaW50NjRfYmUgYiBpID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDY0IChnZXRfaW50NjRfbmUgYiBpKVxuICBlbHNlIGdldF9pbnQ2NF9uZSBiIGlcblxubGV0IHVuc2FmZV9zZXRfdWludDE2X2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW5cbiAgdGhlbiB1bnNhZmVfc2V0X3VpbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuICBlbHNlIHVuc2FmZV9zZXRfdWludDE2X25lIGIgaSB4XG5cbmxldCB1bnNhZmVfc2V0X3VpbnQxNl9iZSBiIGkgeCA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuXG4gIHRoZW4gdW5zYWZlX3NldF91aW50MTZfbmUgYiBpIHggZWxzZVxuICB1bnNhZmVfc2V0X3VpbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuXG5sZXQgc2V0X2ludDE2X2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50MTZfbmUgYiBpIChzd2FwMTYgeClcbiAgZWxzZSBzZXRfaW50MTZfbmUgYiBpIHhcblxubGV0IHNldF9pbnQxNl9iZSBiIGkgeCA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuICBlbHNlIHNldF9pbnQxNl9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDMyX2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50MzJfbmUgYiBpIChzd2FwMzIgeClcbiAgZWxzZSBzZXRfaW50MzJfbmUgYiBpIHhcblxubGV0IHNldF9pbnQzMl9iZSBiIGkgeCA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQzMl9uZSBiIGkgKHN3YXAzMiB4KVxuICBlbHNlIHNldF9pbnQzMl9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDY0X2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50NjRfbmUgYiBpIChzd2FwNjQgeClcbiAgZWxzZSBzZXRfaW50NjRfbmUgYiBpIHhcblxubGV0IHNldF9pbnQ2NF9iZSBiIGkgeCA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQ2NF9uZSBiIGkgKHN3YXA2NCB4KVxuICBlbHNlIHNldF9pbnQ2NF9uZSBiIGkgeFxuXG5sZXQgc2V0X3VpbnQ4ID0gc2V0X2ludDhcbmxldCBzZXRfdWludDE2X25lID0gc2V0X2ludDE2X25lXG5sZXQgc2V0X3VpbnQxNl9iZSA9IHNldF9pbnQxNl9iZVxubGV0IHNldF91aW50MTZfbGUgPSBzZXRfaW50MTZfbGVcblxuKCogVVRGIGNvZGVjcyBhbmQgdmFsaWRhdGlvbnMgKilcblxubGV0IGRlY19pbnZhbGlkID0gVWNoYXIudXRmX2RlY29kZV9pbnZhbGlkXG5sZXRbQGlubGluZV0gZGVjX3JldCBuIHUgPSBVY2hhci51dGZfZGVjb2RlIG4gKFVjaGFyLnVuc2FmZV9vZl9pbnQgdSlcblxuKCogSW4gY2FzZSBvZiBkZWNvZGluZyBlcnJvciwgaWYgd2UgZXJyb3Igb24gdGhlIGZpcnN0IGJ5dGUsIHdlXG4gICBjb25zdW1lIHRoZSBieXRlLCBvdGhlcndpc2Ugd2UgY29uc3VtZSB0aGUgW25dIGJ5dGVzIHByZWNlZWRpbmdcbiAgIHRoZSBlcnJvcmluZyBieXRlLlxuXG4gICBUaGlzIG1lYW5zIHRoYXQgaWYgYSBjbGllbnQgdXNlcyBkZWNvZGVzIHdpdGhvdXQgY2FyaW5nIGFib3V0XG4gICB2YWxpZGl0eSBpdCBuYXR1cmFsbHkgcmVwbGFjZSBib2d1cyBkYXRhIHdpdGggVWNoYXIucmVwIGFjY29yZGluZ1xuICAgdG8gdGhlIFdIQVRXRyBFbmNvZGluZyBzdGFuZGFyZC4gT3RoZXIgc2NoZW1lcyBhcmUgcG9zc2libGUgYnlcbiAgIGNvbnN1bHRpbmcgdGhlIG51bWJlciBvZiB1c2VkIGJ5dGVzIG9uIGludmFsaWQgZGVjb2Rlcy4gRm9yIG1vcmVcbiAgIGRldGFpbHMgc2VlIGh0dHBzOi8vaHNpdm9uZW4uZmkvYnJva2VuLXV0Zi04L1xuXG4gICBGb3IgdGhpcyByZWFzb24gaW4gW2dldF91dGZfOF91Y2hhcl0gd2UgZ3JhZHVhbGx5IGNoZWNrIHRoZSBuZXh0XG4gICBieXRlIGlzIGF2YWlsYWJsZSByYXRoZXIgdGhhbiBkb2luZyBpdCBpbW1lZGlhdGVseSBhZnRlciB0aGVcbiAgIGZpcnN0IGJ5dGUuIENvbnRyYXN0IHdpdGggW2lzX3ZhbGlkX3V0Zl84XS4gKilcblxuKCogVVRGLTggKilcblxubGV0W0BpbmxpbmVdIG5vdF9pbl94ODBfdG9feEJGIGIgPSBiIGxzciA2IDw+IDBiMTBcbmxldFtAaW5saW5lXSBub3RfaW5feEEwX3RvX3hCRiBiID0gYiBsc3IgNSA8PiAwYjEwMVxubGV0W0BpbmxpbmVdIG5vdF9pbl94ODBfdG9feDlGIGIgPSBiIGxzciA1IDw+IDBiMTAwXG5sZXRbQGlubGluZV0gbm90X2luX3g5MF90b194QkYgYiA9IGIgPCAweDkwIHx8IDB4QkYgPCBiXG5sZXRbQGlubGluZV0gbm90X2luX3g4MF90b194OEYgYiA9IGIgbHNyIDQgPD4gMHg4XG5cbmxldFtAaW5saW5lXSB1dGZfOF91Y2hhcl8yIGIwIGIxID1cbiAgKChiMCBsYW5kIDB4MUYpIGxzbCA2KSBsb3JcbiAgKChiMSBsYW5kIDB4M0YpKVxuXG5sZXRbQGlubGluZV0gdXRmXzhfdWNoYXJfMyBiMCBiMSBiMiA9XG4gICgoYjAgbGFuZCAweDBGKSBsc2wgMTIpIGxvclxuICAoKGIxIGxhbmQgMHgzRikgbHNsIDYpIGxvclxuICAoKGIyIGxhbmQgMHgzRikpXG5cbmxldFtAaW5saW5lXSB1dGZfOF91Y2hhcl80IGIwIGIxIGIyIGIzID1cbiAgKChiMCBsYW5kIDB4MDcpIGxzbCAxOCkgbG9yXG4gICgoYjEgbGFuZCAweDNGKSBsc2wgMTIpIGxvclxuICAoKGIyIGxhbmQgMHgzRikgbHNsIDYpIGxvclxuICAoKGIzIGxhbmQgMHgzRikpXG5cbmxldCBnZXRfdXRmXzhfdWNoYXIgYiBpID1cbiAgbGV0IGIwID0gZ2V0X3VpbnQ4IGIgaSBpbiAoKiByYWlzZXMgaWYgW2ldIGlzIG5vdCBhIHZhbGlkIGluZGV4LiAqKVxuICBsZXQgZ2V0ID0gdW5zYWZlX2dldF91aW50OCBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIG1hdGNoIENoYXIudW5zYWZlX2NociBiMCB3aXRoICgqIFNlZSBUaGUgVW5pY29kZSBTdGFuZGFyZCwgVGFibGUgMy43ICopXG4gIHwgJ1xceDAwJyAuLiAnXFx4N0YnIC0+IGRlY19yZXQgMSBiMFxuICB8ICdcXHhDMicgLi4gJ1xceERGJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBkZWNfcmV0IDIgKHV0Zl84X3VjaGFyXzIgYjAgYjEpXG4gIHwgJ1xceEUwJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94QTBfdG9feEJGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGRlY19yZXQgMyAodXRmXzhfdWNoYXJfMyBiMCBiMSBiMilcbiAgfCAnXFx4RTEnIC4uICdcXHhFQycgfCAnXFx4RUUnIC4uICdcXHhFRicgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgYjIgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIyIHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBkZWNfcmV0IDMgKHV0Zl84X3VjaGFyXzMgYjAgYjEgYjIpXG4gIHwgJ1xceEVEJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feDlGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGRlY19yZXQgMyAodXRmXzhfdWNoYXJfMyBiMCBiMSBiMilcbiAgfCAnXFx4RjAnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g5MF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBsZXQgYjMgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIzIHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBkZWNfcmV0IDQgKHV0Zl84X3VjaGFyXzQgYjAgYjEgYjIgYjMpXG4gIHwgJ1xceEYxJyAuLiAnXFx4RjMnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBsZXQgYjMgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIzIHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBkZWNfcmV0IDQgKHV0Zl84X3VjaGFyXzQgYjAgYjEgYjIgYjMpXG4gIHwgJ1xceEY0JyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feDhGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDMgZWxzZVxuICAgICAgbGV0IGIzID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMyB0aGVuIGRlY19pbnZhbGlkIDMgZWxzZVxuICAgICAgZGVjX3JldCA0ICh1dGZfOF91Y2hhcl80IGIwIGIxIGIyIGIzKVxuICB8IF8gLT4gZGVjX2ludmFsaWQgMVxuXG5sZXQgc2V0X3V0Zl84X3VjaGFyIGIgaSB1ID1cbiAgbGV0IHNldCA9IHVuc2FmZV9zZXRfdWludDggaW5cbiAgbGV0IG1heCA9IGxlbmd0aCBiIC0gMSBpblxuICBtYXRjaCBVY2hhci50b19pbnQgdSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxuICB8IHUgd2hlbiB1IDw9IDB4MDA3RiAtPlxuICAgICAgc2V0X3VpbnQ4IGIgaSB1O1xuICAgICAgMVxuICB8IHUgd2hlbiB1IDw9IDB4MDdGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMSBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgKHNldF91aW50OCBiIGkgKDB4QzAgbG9yICh1IGxzciA2KSk7XG4gICAgICAgc2V0IGIgbGFzdCAoMHg4MCBsb3IgKHUgbGFuZCAweDNGKSk7XG4gICAgICAgMilcbiAgfCB1IHdoZW4gdSA8PSAweEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2VcbiAgICAgIChzZXRfdWludDggYiBpICgweEUwIGxvciAodSBsc3IgMTIpKTtcbiAgICAgICBzZXQgYiAoaSArIDEpICgweDgwIGxvciAoKHUgbHNyIDYpIGxhbmQgMHgzRikpO1xuICAgICAgIHNldCBiIGxhc3QgKDB4ODAgbG9yICh1IGxhbmQgMHgzRikpO1xuICAgICAgIDMpXG4gIHwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2VcbiAgICAgIChzZXRfdWludDggYiBpICgweEYwIGxvciAodSBsc3IgMTgpKTtcbiAgICAgICBzZXQgYiAoaSArIDEpICgweDgwIGxvciAoKHUgbHNyIDEyKSBsYW5kIDB4M0YpKTtcbiAgICAgICBzZXQgYiAoaSArIDIpICgweDgwIGxvciAoKHUgbHNyIDYpIGxhbmQgMHgzRikpO1xuICAgICAgIHNldCBiIGxhc3QgKDB4ODAgbG9yICh1IGxhbmQgMHgzRikpO1xuICAgICAgIDQpXG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxubGV0IGlzX3ZhbGlkX3V0Zl84IGIgPVxuICBsZXQgcmVjIGxvb3AgbWF4IGIgaSA9XG4gICAgaWYgaSA+IG1heCB0aGVuIHRydWUgZWxzZVxuICAgIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQ4IGluXG4gICAgbWF0Y2ggQ2hhci51bnNhZmVfY2hyIChnZXQgYiBpKSB3aXRoXG4gICAgfCAnXFx4MDAnIC4uICdcXHg3RicgLT4gbG9vcCBtYXggYiAoaSArIDEpXG4gICAgfCAnXFx4QzInIC4uICdcXHhERicgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMSBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RTAnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feEEwX3RvX3hCRiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhFMScgLi4gJ1xceEVDJyB8ICdcXHhFRScgLi4gJ1xceEVGJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAyIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RUQnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3g5RiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhGMCcgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94OTBfdG9feEJGIChnZXQgYiAoaSArIDEpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgKGkgKyAyKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhGMScgLi4gJ1xceEYzJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiAoaSArIDIpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEY0JyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194OEYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiAoaSArIDIpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgXyAtPiBmYWxzZVxuICBpblxuICBsb29wIChsZW5ndGggYiAtIDEpIGIgMFxuXG4oKiBVVEYtMTZCRSAqKVxuXG5sZXQgZ2V0X3V0Zl8xNmJlX3VjaGFyIGIgaSA9XG4gIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9iZSBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBtYXggdGhlbiBpbnZhbGlkX2FyZyBcImluZGV4IG91dCBvZiBib3VuZHNcIiBlbHNlXG4gIGlmIGkgPSBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBkZWNfcmV0IDIgdVxuICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGRlY19pbnZhbGlkIDJcbiAgfCBoaSAtPiAoKiBjb21iaW5lIFtoaV0gd2l0aCBhIGxvdyBzdXJyb2dhdGUgKilcbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAobWF4IC0gaSArIDEpIGVsc2VcbiAgICAgIG1hdGNoIGdldCBiIChpICsgMikgd2l0aFxuICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGRlY19pbnZhbGlkIDIgKCogcmV0cnkgaGVyZSAqKVxuICAgICAgfCBsbyAtPlxuICAgICAgICAgIGxldCB1ID0gKCgoaGkgbGFuZCAweDNGRikgbHNsIDEwKSBsb3IgKGxvIGxhbmQgMHgzRkYpKSArIDB4MTAwMDAgaW5cbiAgICAgICAgICBkZWNfcmV0IDQgdVxuXG5sZXQgc2V0X3V0Zl8xNmJlX3VjaGFyIGIgaSB1ID1cbiAgbGV0IHNldCA9IHVuc2FmZV9zZXRfdWludDE2X2JlIGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IG1heCB0aGVuIGludmFsaWRfYXJnIFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiIGVsc2VcbiAgbWF0Y2ggVWNoYXIudG9faW50IHUgd2l0aFxuICB8IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbiAgfCB1IHdoZW4gdSA8PSAweEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDEgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2UgKHNldCBiIGkgdTsgMilcbiAgfCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgbGV0IHUnID0gdSAtIDB4MTAwMDAgaW5cbiAgICAgIGxldCBoaSA9ICgweEQ4MDAgbG9yICh1JyBsc3IgMTApKSBpblxuICAgICAgbGV0IGxvID0gKDB4REMwMCBsb3IgKHUnIGxhbmQgMHgzRkYpKSBpblxuICAgICAgc2V0IGIgaSBoaTsgc2V0IGIgKGkgKyAyKSBsbzsgNFxuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCBpc192YWxpZF91dGZfMTZiZSBiID1cbiAgbGV0IHJlYyBsb29wIG1heCBiIGkgPVxuICAgIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9iZSBpblxuICAgIGlmIGkgPiBtYXggdGhlbiB0cnVlIGVsc2VcbiAgICBpZiBpID0gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgIG1hdGNoIGdldCBiIGkgd2l0aFxuICAgIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBsb29wIG1heCBiIChpICsgMilcbiAgICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGZhbHNlXG4gICAgfCBfaGkgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgICAgICBtYXRjaCBnZXQgYiAoaSArIDIpIHdpdGhcbiAgICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGZhbHNlXG4gICAgICAgIHwgX2xvIC0+IGxvb3AgbWF4IGIgKGkgKyA0KVxuICBpblxuICBsb29wIChsZW5ndGggYiAtIDEpIGIgMFxuXG4oKiBVVEYtMTZMRSAqKVxuXG5sZXQgZ2V0X3V0Zl8xNmxlX3VjaGFyIGIgaSA9XG4gIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9sZSBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBtYXggdGhlbiBpbnZhbGlkX2FyZyBcImluZGV4IG91dCBvZiBib3VuZHNcIiBlbHNlXG4gIGlmIGkgPSBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBkZWNfcmV0IDIgdVxuICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGRlY19pbnZhbGlkIDJcbiAgfCBoaSAtPiAoKiBjb21iaW5lIFtoaV0gd2l0aCBhIGxvdyBzdXJyb2dhdGUgKilcbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAobWF4IC0gaSArIDEpIGVsc2VcbiAgICAgIG1hdGNoIGdldCBiIChpICsgMikgd2l0aFxuICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGRlY19pbnZhbGlkIDIgKCogcmV0cnkgaGVyZSAqKVxuICAgICAgfCBsbyAtPlxuICAgICAgICAgIGxldCB1ID0gKCgoaGkgbGFuZCAweDNGRikgbHNsIDEwKSBsb3IgKGxvIGxhbmQgMHgzRkYpKSArIDB4MTAwMDAgaW5cbiAgICAgICAgICBkZWNfcmV0IDQgdVxuXG5sZXQgc2V0X3V0Zl8xNmxlX3VjaGFyIGIgaSB1ID1cbiAgbGV0IHNldCA9IHVuc2FmZV9zZXRfdWludDE2X2xlIGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IG1heCB0aGVuIGludmFsaWRfYXJnIFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiIGVsc2VcbiAgbWF0Y2ggVWNoYXIudG9faW50IHUgd2l0aFxuICB8IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbiAgfCB1IHdoZW4gdSA8PSAweEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDEgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2UgKHNldCBiIGkgdTsgMilcbiAgfCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgbGV0IHUnID0gdSAtIDB4MTAwMDAgaW5cbiAgICAgIGxldCBoaSA9ICgweEQ4MDAgbG9yICh1JyBsc3IgMTApKSBpblxuICAgICAgbGV0IGxvID0gKDB4REMwMCBsb3IgKHUnIGxhbmQgMHgzRkYpKSBpblxuICAgICAgc2V0IGIgaSBoaTsgc2V0IGIgKGkgKyAyKSBsbzsgNFxuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCBpc192YWxpZF91dGZfMTZsZSBiID1cbiAgbGV0IHJlYyBsb29wIG1heCBiIGkgPVxuICAgIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9sZSBpblxuICAgIGlmIGkgPiBtYXggdGhlbiB0cnVlIGVsc2VcbiAgICBpZiBpID0gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgIG1hdGNoIGdldCBiIGkgd2l0aFxuICAgIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBsb29wIG1heCBiIChpICsgMilcbiAgICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGZhbHNlXG4gICAgfCBfaGkgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgICAgICBtYXRjaCBnZXQgYiAoaSArIDIpIHdpdGhcbiAgICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGZhbHNlXG4gICAgICAgIHwgX2xvIC0+IGxvb3AgbWF4IGIgKGkgKyA0KVxuICBpblxuICBsb29wIChsZW5ndGggYiAtIDEpIGIgMFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgR2FsbGl1bSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBTdHJpbmcgb3BlcmF0aW9ucywgYmFzZWQgb24gYnl0ZSBzZXF1ZW5jZSBvcGVyYXRpb25zICopXG5cbigqIFdBUk5JTkc6IFNvbWUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgZHVwbGljYXRlZCBpbiBieXRlcy5tbCBmb3JcbiAgIGVmZmljaWVuY3kgcmVhc29ucy4gV2hlbiB5b3UgbW9kaWZ5IHRoZSBvbmUgaW4gdGhpcyBmaWxlIHlvdSBuZWVkIHRvXG4gICBtb2RpZnkgaXRzIGR1cGxpY2F0ZSBpbiBieXRlcy5tbC5cbiAgIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgXCJkdXBsaWNhdGVkXCIgY29tbWVudCBhYm92ZSB0aGVpciBkZWZpbml0aW9uLlxuKilcblxuZXh0ZXJuYWwgbGVuZ3RoIDogc3RyaW5nIC0+IGludCA9IFwiJXN0cmluZ19sZW5ndGhcIlxuZXh0ZXJuYWwgZ2V0IDogc3RyaW5nIC0+IGludCAtPiBjaGFyID0gXCIlc3RyaW5nX3NhZmVfZ2V0XCJcbmV4dGVybmFsIHNldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyIC0+IHVuaXQgPSBcIiVzdHJpbmdfc2FmZV9zZXRcIlxuZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IGJ5dGVzID0gXCJjYW1sX2NyZWF0ZV9zdHJpbmdcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldCA6IHN0cmluZyAtPiBpbnQgLT4gY2hhciA9IFwiJXN0cmluZ191bnNhZmVfZ2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0ID0gXCIlc3RyaW5nX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2JsaXQgOiBzdHJpbmcgLT4gaW50IC0+ICBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfc3RyaW5nXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIHVuc2FmZV9maWxsIDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiBjaGFyIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2ZpbGxfc3RyaW5nXCIgW0BAbm9hbGxvY11cblxubW9kdWxlIEIgPSBCeXRlc1xuXG5sZXQgYnRzID0gQi51bnNhZmVfdG9fc3RyaW5nXG5sZXQgYm9zID0gQi51bnNhZmVfb2Zfc3RyaW5nXG5cbmxldCBtYWtlIG4gYyA9XG4gIEIubWFrZSBuIGMgfD4gYnRzXG5sZXQgaW5pdCBuIGYgPVxuICBCLmluaXQgbiBmIHw+IGJ0c1xubGV0IGVtcHR5ID0gXCJcIlxubGV0IGNvcHkgcyA9XG4gIEIuY29weSAoYm9zIHMpIHw+IGJ0c1xubGV0IG9mX2J5dGVzID0gQi50b19zdHJpbmdcbmxldCB0b19ieXRlcyA9IEIub2Zfc3RyaW5nXG5sZXQgc3ViIHMgb2ZzIGxlbiA9XG4gIEIuc3ViIChib3Mgcykgb2ZzIGxlbiB8PiBidHNcbmxldCBmaWxsID1cbiAgQi5maWxsXG5sZXQgYmxpdCA9XG4gIEIuYmxpdF9zdHJpbmdcblxubGV0IGVuc3VyZV9nZSAoeDppbnQpIHkgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgaW52YWxpZF9hcmcgXCJTdHJpbmcuY29uY2F0XCJcblxubGV0IHJlYyBzdW1fbGVuZ3RocyBhY2Mgc2VwbGVuID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBhY2NcbiAgfCBoZCA6OiBbXSAtPiBsZW5ndGggaGQgKyBhY2NcbiAgfCBoZCA6OiB0bCAtPiBzdW1fbGVuZ3RocyAoZW5zdXJlX2dlIChsZW5ndGggaGQgKyBzZXBsZW4gKyBhY2MpIGFjYykgc2VwbGVuIHRsXG5cbmxldCByZWMgdW5zYWZlX2JsaXRzIGRzdCBwb3Mgc2VwIHNlcGxlbiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZHN0XG4gIHwgaGQgOjogW10gLT5cbiAgICB1bnNhZmVfYmxpdCBoZCAwIGRzdCBwb3MgKGxlbmd0aCBoZCk7IGRzdFxuICB8IGhkIDo6IHRsIC0+XG4gICAgdW5zYWZlX2JsaXQgaGQgMCBkc3QgcG9zIChsZW5ndGggaGQpO1xuICAgIHVuc2FmZV9ibGl0IHNlcCAwIGRzdCAocG9zICsgbGVuZ3RoIGhkKSBzZXBsZW47XG4gICAgdW5zYWZlX2JsaXRzIGRzdCAocG9zICsgbGVuZ3RoIGhkICsgc2VwbGVuKSBzZXAgc2VwbGVuIHRsXG5cbmxldCBjb25jYXQgc2VwID0gZnVuY3Rpb25cbiAgICBbXSAtPiBcIlwiXG4gIHwgbCAtPiBsZXQgc2VwbGVuID0gbGVuZ3RoIHNlcCBpbiBidHMgQEBcbiAgICAgICAgICB1bnNhZmVfYmxpdHNcbiAgICAgICAgICAgIChCLmNyZWF0ZSAoc3VtX2xlbmd0aHMgMCBzZXBsZW4gbCkpXG4gICAgICAgICAgICAwIHNlcCBzZXBsZW4gbFxuXG5sZXQgY2F0ID0gKCBeIClcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGl0ZXIgZiBzID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBzIC0gMSBkbyBmICh1bnNhZmVfZ2V0IHMgaSkgZG9uZVxuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaXRlcmkgZiBzID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBzIC0gMSBkbyBmIGkgKHVuc2FmZV9nZXQgcyBpKSBkb25lXG5cbmxldCBtYXAgZiBzID1cbiAgQi5tYXAgZiAoYm9zIHMpIHw+IGJ0c1xubGV0IG1hcGkgZiBzID1cbiAgQi5tYXBpIGYgKGJvcyBzKSB8PiBidHNcbmxldCBmb2xkX3JpZ2h0IGYgeCBhID1cbiAgQi5mb2xkX3JpZ2h0IGYgKGJvcyB4KSBhXG5sZXQgZm9sZF9sZWZ0IGYgYSB4ID1cbiAgQi5mb2xkX2xlZnQgZiBhIChib3MgeClcbmxldCBleGlzdHMgZiBzID1cbiAgQi5leGlzdHMgZiAoYm9zIHMpXG5sZXQgZm9yX2FsbCBmIHMgPVxuICBCLmZvcl9hbGwgZiAoYm9zIHMpXG5cbigqIEJld2FyZTogd2UgY2Fubm90IHVzZSBCLnRyaW0gb3IgQi5lc2NhcGUgYmVjYXVzZSB0aGV5IGFsd2F5cyBtYWtlIGFcbiAgIGNvcHksIGJ1dCBTdHJpbmcubWxpIHNwZWxscyBvdXQgc29tZSBjYXNlcyB3aGVyZSB3ZSBhcmUgbm90IGFsbG93ZWRcbiAgIHRvIG1ha2UgYSBjb3B5LiAqKVxuXG5sZXQgaXNfc3BhY2UgPSBmdW5jdGlvblxuICB8ICcgJyB8ICdcXDAxMicgfCAnXFxuJyB8ICdcXHInIHwgJ1xcdCcgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxubGV0IHRyaW0gcyA9XG4gIGlmIHMgPSBcIlwiIHRoZW4gc1xuICBlbHNlIGlmIGlzX3NwYWNlICh1bnNhZmVfZ2V0IHMgMCkgfHwgaXNfc3BhY2UgKHVuc2FmZV9nZXQgcyAobGVuZ3RoIHMgLSAxKSlcbiAgICB0aGVuIGJ0cyAoQi50cmltIChib3MgcykpXG4gIGVsc2Ugc1xuXG5sZXQgZXNjYXBlZCBzID1cbiAgbGV0IHJlYyBlc2NhcGVfaWZfbmVlZGVkIHMgbiBpID1cbiAgICBpZiBpID49IG4gdGhlbiBzIGVsc2VcbiAgICAgIG1hdGNoIHVuc2FmZV9nZXQgcyBpIHdpdGhcbiAgICAgIHwgJ1xcXCInIHwgJ1xcXFwnIHwgJ1xcMDAwJy4uJ1xcMDMxJyB8ICdcXDEyNycuLiAnXFwyNTUnIC0+XG4gICAgICAgICAgYnRzIChCLmVzY2FwZWQgKGJvcyBzKSlcbiAgICAgIHwgXyAtPiBlc2NhcGVfaWZfbmVlZGVkIHMgbiAoaSsxKVxuICBpblxuICBlc2NhcGVfaWZfbmVlZGVkIHMgKGxlbmd0aCBzKSAwXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByZWMgaW5kZXhfcmVjIHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gaSBlbHNlIGluZGV4X3JlYyBzIGxpbSAoaSArIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGluZGV4IHMgYyA9IGluZGV4X3JlYyBzIChsZW5ndGggcykgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByZWMgaW5kZXhfcmVjX29wdCBzIGxpbSBpIGMgPVxuICBpZiBpID49IGxpbSB0aGVuIE5vbmUgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBTb21lIGkgZWxzZSBpbmRleF9yZWNfb3B0IHMgbGltIChpICsgMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXhfb3B0IHMgYyA9IGluZGV4X3JlY19vcHQgcyAobGVuZ3RoIHMpIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXhfZnJvbSBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tIC8gQnl0ZXMuaW5kZXhfZnJvbVwiIGVsc2VcbiAgICBpbmRleF9yZWMgcyBsIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tX29wdCAvIEJ5dGVzLmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIGluZGV4X3JlY19vcHQgcyBsIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmVjIHJpbmRleF9yZWMgcyBpIGMgPVxuICBpZiBpIDwgMCB0aGVuIHJhaXNlIE5vdF9mb3VuZCBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIGkgZWxzZSByaW5kZXhfcmVjIHMgKGkgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByaW5kZXggcyBjID0gcmluZGV4X3JlYyBzIChsZW5ndGggcyAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJpbmRleF9mcm9tIHMgaSBjID1cbiAgaWYgaSA8IC0xIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJpbmRleF9mcm9tIC8gQnl0ZXMucmluZGV4X2Zyb21cIlxuICBlbHNlXG4gICAgcmluZGV4X3JlYyBzIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmVjIHJpbmRleF9yZWNfb3B0IHMgaSBjID1cbiAgaWYgaSA8IDAgdGhlbiBOb25lIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gU29tZSBpIGVsc2UgcmluZGV4X3JlY19vcHQgcyAoaSAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJpbmRleF9vcHQgcyBjID0gcmluZGV4X3JlY19vcHQgcyAobGVuZ3RoIHMgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBpZiBpIDwgLTEgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmluZGV4X2Zyb21fb3B0IC8gQnl0ZXMucmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIHJpbmRleF9yZWNfb3B0IHMgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBjb250YWluc19mcm9tIHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcuY29udGFpbnNfZnJvbSAvIEJ5dGVzLmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAoaW5kZXhfcmVjIHMgbCBpIGMpOyB0cnVlIHdpdGggTm90X2ZvdW5kIC0+IGZhbHNlXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBjb250YWlucyBzIGMgPSBjb250YWluc19mcm9tIHMgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByY29udGFpbnNfZnJvbSBzIGkgYyA9XG4gIGlmIGkgPCAwIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJjb250YWluc19mcm9tIC8gQnl0ZXMucmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAocmluZGV4X3JlYyBzIGkgYyk7IHRydWUgd2l0aCBOb3RfZm91bmQgLT4gZmFsc2VcblxubGV0IHVwcGVyY2FzZV9hc2NpaSBzID1cbiAgQi51cHBlcmNhc2VfYXNjaWkgKGJvcyBzKSB8PiBidHNcbmxldCBsb3dlcmNhc2VfYXNjaWkgcyA9XG4gIEIubG93ZXJjYXNlX2FzY2lpIChib3MgcykgfD4gYnRzXG5sZXQgY2FwaXRhbGl6ZV9hc2NpaSBzID1cbiAgQi5jYXBpdGFsaXplX2FzY2lpIChib3MgcykgfD4gYnRzXG5sZXQgdW5jYXBpdGFsaXplX2FzY2lpIHMgPVxuICBCLnVuY2FwaXRhbGl6ZV9hc2NpaSAoYm9zIHMpIHw+IGJ0c1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgc3RhcnRzX3dpdGggfnByZWZpeCBzID1cbiAgbGV0IGxlbl9zID0gbGVuZ3RoIHNcbiAgYW5kIGxlbl9wcmUgPSBsZW5ndGggcHJlZml4IGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGlmIGkgPSBsZW5fcHJlIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgdW5zYWZlX2dldCBzIGkgPD4gdW5zYWZlX2dldCBwcmVmaXggaSB0aGVuIGZhbHNlXG4gICAgZWxzZSBhdXggKGkgKyAxKVxuICBpbiBsZW5fcyA+PSBsZW5fcHJlICYmIGF1eCAwXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBlbmRzX3dpdGggfnN1ZmZpeCBzID1cbiAgbGV0IGxlbl9zID0gbGVuZ3RoIHNcbiAgYW5kIGxlbl9zdWYgPSBsZW5ndGggc3VmZml4IGluXG4gIGxldCBkaWZmID0gbGVuX3MgLSBsZW5fc3VmIGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGlmIGkgPSBsZW5fc3VmIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgdW5zYWZlX2dldCBzIChkaWZmICsgaSkgPD4gdW5zYWZlX2dldCBzdWZmaXggaSB0aGVuIGZhbHNlXG4gICAgZWxzZSBhdXggKGkgKyAxKVxuICBpbiBkaWZmID49IDAgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHNwbGl0X29uX2NoYXIgc2VwIHMgPVxuICBsZXQgciA9IHJlZiBbXSBpblxuICBsZXQgaiA9IHJlZiAobGVuZ3RoIHMpIGluXG4gIGZvciBpID0gbGVuZ3RoIHMgLSAxIGRvd250byAwIGRvXG4gICAgaWYgdW5zYWZlX2dldCBzIGkgPSBzZXAgdGhlbiBiZWdpblxuICAgICAgciA6PSBzdWIgcyAoaSArIDEpICghaiAtIGkgLSAxKSA6OiAhcjtcbiAgICAgIGogOj0gaVxuICAgIGVuZFxuICBkb25lO1xuICBzdWIgcyAwICFqIDo6ICFyXG5cbigqIERlcHJlY2F0ZWQgZnVuY3Rpb25zIGltcGxlbWVudGVkIHZpYSBvdGhlciBkZXByZWNhdGVkIGZ1bmN0aW9ucyAqKVxuW0BAQG9jYW1sLndhcm5pbmcgXCItM1wiXVxubGV0IHVwcGVyY2FzZSBzID1cbiAgQi51cHBlcmNhc2UgKGJvcyBzKSB8PiBidHNcbmxldCBsb3dlcmNhc2UgcyA9XG4gIEIubG93ZXJjYXNlIChib3MgcykgfD4gYnRzXG5sZXQgY2FwaXRhbGl6ZSBzID1cbiAgQi5jYXBpdGFsaXplIChib3MgcykgfD4gYnRzXG5sZXQgdW5jYXBpdGFsaXplIHMgPVxuICBCLnVuY2FwaXRhbGl6ZSAoYm9zIHMpIHw+IGJ0c1xuXG50eXBlIHQgPSBzdHJpbmdcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxuZXh0ZXJuYWwgZXF1YWwgOiBzdHJpbmcgLT4gc3RyaW5nIC0+IGJvb2wgPSBcImNhbWxfc3RyaW5nX2VxdWFsXCIgW0BAbm9hbGxvY11cblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSBzID0gYm9zIHMgfD4gQi50b19zZXFcblxubGV0IHRvX3NlcWkgcyA9IGJvcyBzIHw+IEIudG9fc2VxaVxuXG5sZXQgb2Zfc2VxIGcgPSBCLm9mX3NlcSBnIHw+IGJ0c1xuXG4oKiBVVEYgZGVjb2RlcnMgYW5kIHZhbGlkYXRvcnMgKilcblxubGV0IGdldF91dGZfOF91Y2hhciBzIGkgPSBCLmdldF91dGZfOF91Y2hhciAoYm9zIHMpIGlcbmxldCBpc192YWxpZF91dGZfOCBzID0gQi5pc192YWxpZF91dGZfOCAoYm9zIHMpXG5cbmxldCBnZXRfdXRmXzE2YmVfdWNoYXIgcyBpID0gQi5nZXRfdXRmXzE2YmVfdWNoYXIgKGJvcyBzKSBpXG5sZXQgaXNfdmFsaWRfdXRmXzE2YmUgcyA9IEIuaXNfdmFsaWRfdXRmXzE2YmUgKGJvcyBzKVxuXG5sZXQgZ2V0X3V0Zl8xNmxlX3VjaGFyIHMgaSA9IEIuZ2V0X3V0Zl8xNmxlX3VjaGFyIChib3MgcykgaVxubGV0IGlzX3ZhbGlkX3V0Zl8xNmxlIHMgPSBCLmlzX3ZhbGlkX3V0Zl8xNmxlIChib3MgcylcblxuKCoqIHs2IEJpbmFyeSBlbmNvZGluZy9kZWNvZGluZyBvZiBpbnRlZ2Vyc30gKilcblxuZXh0ZXJuYWwgZ2V0X3VpbnQ4IDogc3RyaW5nIC0+IGludCAtPiBpbnQgPSBcIiVzdHJpbmdfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgZ2V0X3VpbnQxNl9uZSA6IHN0cmluZyAtPiBpbnQgLT4gaW50ID0gXCIlY2FtbF9zdHJpbmdfZ2V0MTZcIlxuZXh0ZXJuYWwgZ2V0X2ludDMyX25lIDogc3RyaW5nIC0+IGludCAtPiBpbnQzMiA9IFwiJWNhbWxfc3RyaW5nX2dldDMyXCJcbmV4dGVybmFsIGdldF9pbnQ2NF9uZSA6IHN0cmluZyAtPiBpbnQgLT4gaW50NjQgPSBcIiVjYW1sX3N0cmluZ19nZXQ2NFwiXG5cbmxldCBnZXRfaW50OCBzIGkgPSBCLmdldF9pbnQ4IChib3MgcykgaVxubGV0IGdldF91aW50MTZfbGUgcyBpID0gQi5nZXRfdWludDE2X2xlIChib3MgcykgaVxubGV0IGdldF91aW50MTZfYmUgcyBpID0gQi5nZXRfdWludDE2X2JlIChib3MgcykgaVxubGV0IGdldF9pbnQxNl9uZSBzIGkgPSBCLmdldF9pbnQxNl9uZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50MTZfbGUgcyBpID0gQi5nZXRfaW50MTZfbGUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDE2X2JlIHMgaSA9IEIuZ2V0X2ludDE2X2JlIChib3MgcykgaVxubGV0IGdldF9pbnQzMl9sZSBzIGkgPSBCLmdldF9pbnQzMl9sZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50MzJfYmUgcyBpID0gQi5nZXRfaW50MzJfYmUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDY0X2xlIHMgaSA9IEIuZ2V0X2ludDY0X2xlIChib3MgcykgaVxubGV0IGdldF9pbnQ2NF9iZSBzIGkgPSBCLmdldF9pbnQ2NF9iZSAoYm9zIHMpIGlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gdW5pdCA9ICgpXG5cbmxldCBlcXVhbCAoKSAoKSA9IHRydWVcbmxldCBjb21wYXJlICgpICgpID0gMFxubGV0IHRvX3N0cmluZyAoKSA9IFwiKClcIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIGV4dGVybl9mbGFncyA9XG4gICAgTm9fc2hhcmluZ1xuICB8IENsb3N1cmVzXG4gIHwgQ29tcGF0XzMyXG4oKiBub3RlOiB0aGlzIHR5cGUgZGVmaW5pdGlvbiBpcyB1c2VkIGluICdydW50aW1lL2RlYnVnZ2VyLmMnICopXG5cbmV4dGVybmFsIHRvX2NoYW5uZWw6IG91dF9jaGFubmVsIC0+ICdhIC0+IGV4dGVybl9mbGFncyBsaXN0IC0+IHVuaXRcbiAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVcIlxuZXh0ZXJuYWwgdG9fYnl0ZXM6ICdhIC0+IGV4dGVybl9mbGFncyBsaXN0IC0+IGJ5dGVzXG4gICAgPSBcImNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J5dGVzXCJcbmV4dGVybmFsIHRvX3N0cmluZzogJ2EgLT4gZXh0ZXJuX2ZsYWdzIGxpc3QgLT4gc3RyaW5nXG4gICAgPSBcImNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZ1wiXG5leHRlcm5hbCB0b19idWZmZXJfdW5zYWZlOlxuICAgICAgYnl0ZXMgLT4gaW50IC0+IGludCAtPiAnYSAtPiBleHRlcm5fZmxhZ3MgbGlzdCAtPiBpbnRcbiAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnVmZmVyXCJcblxubGV0IHRvX2J1ZmZlciBidWZmIG9mcyBsZW4gdiBmbGFncyA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBCeXRlcy5sZW5ndGggYnVmZiAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiTWFyc2hhbC50b19idWZmZXI6IHN1YnN0cmluZyBvdXQgb2YgYm91bmRzXCJcbiAgZWxzZSB0b19idWZmZXJfdW5zYWZlIGJ1ZmYgb2ZzIGxlbiB2IGZsYWdzXG5cbigqIFRoZSBmdW5jdGlvbnMgYmVsb3cgdXNlIGJ5dGUgc2VxdWVuY2VzIGFzIGlucHV0LCBuZXZlciB1c2luZyBhbnlcbiAgIG11dGF0aW9uLiBJdCBtYWtlcyBzZW5zZSB0byB1c2Ugbm9uLW11dGF0ZWQgW2J5dGVzXSByYXRoZXIgdGhhblxuICAgW3N0cmluZ10sIGJlY2F1c2Ugd2UgcmVhbGx5IHdvcmsgd2l0aCBzZXF1ZW5jZXMgb2YgYnl0ZXMsIG5vdFxuICAgYSB0ZXh0IHJlcHJlc2VudGF0aW9uLlxuKilcblxuZXh0ZXJuYWwgZnJvbV9jaGFubmVsOiBpbl9jaGFubmVsIC0+ICdhID0gXCJjYW1sX2lucHV0X3ZhbHVlXCJcbmV4dGVybmFsIGZyb21fYnl0ZXNfdW5zYWZlOiBieXRlcyAtPiBpbnQgLT4gJ2EgPSBcImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlc1wiXG5leHRlcm5hbCBkYXRhX3NpemVfdW5zYWZlOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCJjYW1sX21hcnNoYWxfZGF0YV9zaXplXCJcblxubGV0IGhlYWRlcl9zaXplID0gMjBcbmxldCBkYXRhX3NpemUgYnVmZiBvZnMgPVxuICBpZiBvZnMgPCAwIHx8IG9mcyA+IEJ5dGVzLmxlbmd0aCBidWZmIC0gaGVhZGVyX3NpemVcbiAgdGhlbiBpbnZhbGlkX2FyZyBcIk1hcnNoYWwuZGF0YV9zaXplXCJcbiAgZWxzZSBkYXRhX3NpemVfdW5zYWZlIGJ1ZmYgb2ZzXG5sZXQgdG90YWxfc2l6ZSBidWZmIG9mcyA9IGhlYWRlcl9zaXplICsgZGF0YV9zaXplIGJ1ZmYgb2ZzXG5cbmxldCBmcm9tX2J5dGVzIGJ1ZmYgb2ZzID1cbiAgaWYgb2ZzIDwgMCB8fCBvZnMgPiBCeXRlcy5sZW5ndGggYnVmZiAtIGhlYWRlcl9zaXplXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJNYXJzaGFsLmZyb21fYnl0ZXNcIlxuICBlbHNlIGJlZ2luXG4gICAgbGV0IGxlbiA9IGRhdGFfc2l6ZV91bnNhZmUgYnVmZiBvZnMgaW5cbiAgICBpZiBvZnMgPiBCeXRlcy5sZW5ndGggYnVmZiAtIChoZWFkZXJfc2l6ZSArIGxlbilcbiAgICB0aGVuIGludmFsaWRfYXJnIFwiTWFyc2hhbC5mcm9tX2J5dGVzXCJcbiAgICBlbHNlIGZyb21fYnl0ZXNfdW5zYWZlIGJ1ZmYgb2ZzXG4gIGVuZFxuXG5sZXQgZnJvbV9zdHJpbmcgYnVmZiBvZnMgPVxuICAoKiBCeXRlcy51bnNhZmVfb2Zfc3RyaW5nIGlzIHNhZmUgaGVyZSwgYXMgdGhlIHByb2R1Y2VkIGJ5dGVcbiAgICAgc2VxdWVuY2UgaXMgbmV2ZXIgbXV0YXRlZCAqKVxuICBmcm9tX2J5dGVzIChCeXRlcy51bnNhZmVfb2Zfc3RyaW5nIGJ1ZmYpIG9mc1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBBbiBhbGlhcyBmb3IgdGhlIHR5cGUgb2YgYXJyYXlzLiAqKVxudHlwZSAnYSB0ID0gJ2EgYXJyYXlcblxuKCogQXJyYXkgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBsZW5ndGggOiAnYSBhcnJheSAtPiBpbnQgPSBcIiVhcnJheV9sZW5ndGhcIlxuZXh0ZXJuYWwgZ2V0OiAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgPSBcIiVhcnJheV9zYWZlX2dldFwiXG5leHRlcm5hbCBzZXQ6ICdhIGFycmF5IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCIlYXJyYXlfc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldDogJ2EgYXJyYXkgLT4gaW50IC0+ICdhID0gXCIlYXJyYXlfdW5zYWZlX2dldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0OiAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiJWFycmF5X3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgbWFrZTogaW50IC0+ICdhIC0+ICdhIGFycmF5ID0gXCJjYW1sX21ha2VfdmVjdFwiXG5leHRlcm5hbCBjcmVhdGU6IGludCAtPiAnYSAtPiAnYSBhcnJheSA9IFwiY2FtbF9tYWtlX3ZlY3RcIlxuZXh0ZXJuYWwgdW5zYWZlX3N1YiA6ICdhIGFycmF5IC0+IGludCAtPiBpbnQgLT4gJ2EgYXJyYXkgPSBcImNhbWxfYXJyYXlfc3ViXCJcbmV4dGVybmFsIGFwcGVuZF9wcmltIDogJ2EgYXJyYXkgLT4gJ2EgYXJyYXkgLT4gJ2EgYXJyYXkgPSBcImNhbWxfYXJyYXlfYXBwZW5kXCJcbmV4dGVybmFsIGNvbmNhdCA6ICdhIGFycmF5IGxpc3QgLT4gJ2EgYXJyYXkgPSBcImNhbWxfYXJyYXlfY29uY2F0XCJcbmV4dGVybmFsIHVuc2FmZV9ibGl0IDpcbiAgJ2EgYXJyYXkgLT4gaW50IC0+ICdhIGFycmF5IC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9hcnJheV9ibGl0XCJcbmV4dGVybmFsIHVuc2FmZV9maWxsIDpcbiAgJ2EgYXJyYXkgLT4gaW50IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2FycmF5X2ZpbGxcIlxuZXh0ZXJuYWwgY3JlYXRlX2Zsb2F0OiBpbnQgLT4gZmxvYXQgYXJyYXkgPSBcImNhbWxfbWFrZV9mbG9hdF92ZWN0XCJcbmxldCBtYWtlX2Zsb2F0ID0gY3JlYXRlX2Zsb2F0XG5cbm1vZHVsZSBGbG9hdGFycmF5ID0gc3RydWN0XG4gIGV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiBmbG9hdGFycmF5ID0gXCJjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlXCJcbiAgZXh0ZXJuYWwgbGVuZ3RoIDogZmxvYXRhcnJheSAtPiBpbnQgPSBcIiVmbG9hdGFycmF5X2xlbmd0aFwiXG4gIGV4dGVybmFsIGdldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRhcnJheV9zYWZlX2dldFwiXG4gIGV4dGVybmFsIHNldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXQgPSBcIiVmbG9hdGFycmF5X3NhZmVfc2V0XCJcbiAgZXh0ZXJuYWwgdW5zYWZlX2dldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRhcnJheV91bnNhZmVfZ2V0XCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXRcbiAgICAgID0gXCIlZmxvYXRhcnJheV91bnNhZmVfc2V0XCJcbmVuZFxuXG5sZXQgaW5pdCBsIGYgPVxuICBpZiBsID0gMCB0aGVuIFt8fF0gZWxzZVxuICBpZiBsIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuaW5pdFwiXG4gICgqIFNlZSAjNjU3NS4gV2UgY291bGQgYWxzbyBjaGVjayBmb3IgbWF4aW11bSBhcnJheSBzaXplLCBidXQgdGhpcyBkZXBlbmRzXG4gICAgIG9uIHdoZXRoZXIgd2UgY3JlYXRlIGEgZmxvYXQgYXJyYXkgb3IgYSByZWd1bGFyIG9uZS4uLiAqKVxuICBlbHNlXG4gICBsZXQgcmVzID0gY3JlYXRlIGwgKGYgMCkgaW5cbiAgIGZvciBpID0gMSB0byBwcmVkIGwgZG9cbiAgICAgdW5zYWZlX3NldCByZXMgaSAoZiBpKVxuICAgZG9uZTtcbiAgIHJlc1xuXG5sZXQgbWFrZV9tYXRyaXggc3ggc3kgaW5pdCA9XG4gIGxldCByZXMgPSBjcmVhdGUgc3ggW3x8XSBpblxuICBmb3IgeCA9IDAgdG8gcHJlZCBzeCBkb1xuICAgIHVuc2FmZV9zZXQgcmVzIHggKGNyZWF0ZSBzeSBpbml0KVxuICBkb25lO1xuICByZXNcblxubGV0IGNyZWF0ZV9tYXRyaXggPSBtYWtlX21hdHJpeFxuXG5sZXQgY29weSBhID1cbiAgbGV0IGwgPSBsZW5ndGggYSBpbiBpZiBsID0gMCB0aGVuIFt8fF0gZWxzZSB1bnNhZmVfc3ViIGEgMCBsXG5cbmxldCBhcHBlbmQgYTEgYTIgPVxuICBsZXQgbDEgPSBsZW5ndGggYTEgaW5cbiAgaWYgbDEgPSAwIHRoZW4gY29weSBhMlxuICBlbHNlIGlmIGxlbmd0aCBhMiA9IDAgdGhlbiB1bnNhZmVfc3ViIGExIDAgbDFcbiAgZWxzZSBhcHBlbmRfcHJpbSBhMSBhMlxuXG5sZXQgc3ViIGEgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBsZW5ndGggYSAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuc3ViXCJcbiAgZWxzZSB1bnNhZmVfc3ViIGEgb2ZzIGxlblxuXG5sZXQgZmlsbCBhIG9mcyBsZW4gdiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBsZW5ndGggYSAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuZmlsbFwiXG4gIGVsc2UgdW5zYWZlX2ZpbGwgYSBvZnMgbGVuIHZcblxubGV0IGJsaXQgYTEgb2ZzMSBhMiBvZnMyIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgb2ZzMSA8IDAgfHwgb2ZzMSA+IGxlbmd0aCBhMSAtIGxlblxuICAgICAgICAgICAgIHx8IG9mczIgPCAwIHx8IG9mczIgPiBsZW5ndGggYTIgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmJsaXRcIlxuICBlbHNlIHVuc2FmZV9ibGl0IGExIG9mczEgYTIgb2ZzMiBsZW5cblxubGV0IGl0ZXIgZiBhID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbmxldCBpdGVyMiBmIGEgYiA9XG4gIGlmIGxlbmd0aCBhIDw+IGxlbmd0aCBiIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIkFycmF5Lml0ZXIyOiBhcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiXG4gIGVsc2VcbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgKHVuc2FmZV9nZXQgYSBpKSAodW5zYWZlX2dldCBiIGkpIGRvbmVcblxubGV0IG1hcCBmIGEgPVxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGlmIGwgPSAwIHRoZW4gW3x8XSBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCAoZih1bnNhZmVfZ2V0IGEgMCkpIGluXG4gICAgZm9yIGkgPSAxIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZih1bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgbWFwMiBmIGEgYiA9XG4gIGxldCBsYSA9IGxlbmd0aCBhIGluXG4gIGxldCBsYiA9IGxlbmd0aCBiIGluXG4gIGlmIGxhIDw+IGxiIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIkFycmF5Lm1hcDI6IGFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCJcbiAgZWxzZSBiZWdpblxuICAgIGlmIGxhID0gMCB0aGVuIFt8fF0gZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBjcmVhdGUgbGEgKGYgKHVuc2FmZV9nZXQgYSAwKSAodW5zYWZlX2dldCBiIDApKSBpblxuICAgICAgZm9yIGkgPSAxIHRvIGxhIC0gMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpICh1bnNhZmVfZ2V0IGIgaSkpXG4gICAgICBkb25lO1xuICAgICAgclxuICAgIGVuZFxuICBlbmRcblxubGV0IGl0ZXJpIGYgYSA9XG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiBpICh1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG5sZXQgbWFwaSBmIGEgPVxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGlmIGwgPSAwIHRoZW4gW3x8XSBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCAoZiAwICh1bnNhZmVfZ2V0IGEgMCkpIGluXG4gICAgZm9yIGkgPSAxIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZiBpICh1bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgdG9fbGlzdCBhID1cbiAgbGV0IHJlYyB0b2xpc3QgaSByZXMgPVxuICAgIGlmIGkgPCAwIHRoZW4gcmVzIGVsc2UgdG9saXN0IChpIC0gMSkgKHVuc2FmZV9nZXQgYSBpIDo6IHJlcykgaW5cbiAgdG9saXN0IChsZW5ndGggYSAtIDEpIFtdXG5cbigqIENhbm5vdCB1c2UgTGlzdC5sZW5ndGggaGVyZSBiZWNhdXNlIHRoZSBMaXN0IG1vZHVsZSBkZXBlbmRzIG9uIEFycmF5LiAqKVxubGV0IHJlYyBsaXN0X2xlbmd0aCBhY2N1ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBhY2N1XG4gIHwgXzo6dCAtPiBsaXN0X2xlbmd0aCAoc3VjYyBhY2N1KSB0XG5cbmxldCBvZl9saXN0ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbfHxdXG4gIHwgaGQ6OnRsIGFzIGwgLT5cbiAgICAgIGxldCBhID0gY3JlYXRlIChsaXN0X2xlbmd0aCAwIGwpIGhkIGluXG4gICAgICBsZXQgcmVjIGZpbGwgaSA9IGZ1bmN0aW9uXG4gICAgICAgICAgW10gLT4gYVxuICAgICAgICB8IGhkOjp0bCAtPiB1bnNhZmVfc2V0IGEgaSBoZDsgZmlsbCAoaSsxKSB0bCBpblxuICAgICAgZmlsbCAxIHRsXG5cbmxldCBmb2xkX2xlZnQgZiB4IGEgPVxuICBsZXQgciA9IHJlZiB4IGluXG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG9cbiAgICByIDo9IGYgIXIgKHVuc2FmZV9nZXQgYSBpKVxuICBkb25lO1xuICAhclxuXG5sZXQgZm9sZF9sZWZ0X21hcCBmIGFjYyBpbnB1dF9hcnJheSA9XG4gIGxldCBsZW4gPSBsZW5ndGggaW5wdXRfYXJyYXkgaW5cbiAgaWYgbGVuID0gMCB0aGVuIChhY2MsIFt8fF0pIGVsc2UgYmVnaW5cbiAgICBsZXQgYWNjLCBlbHQgPSBmIGFjYyAodW5zYWZlX2dldCBpbnB1dF9hcnJheSAwKSBpblxuICAgIGxldCBvdXRwdXRfYXJyYXkgPSBjcmVhdGUgbGVuIGVsdCBpblxuICAgIGxldCBhY2MgPSByZWYgYWNjIGluXG4gICAgZm9yIGkgPSAxIHRvIGxlbiAtIDEgZG9cbiAgICAgIGxldCBhY2MnLCBlbHQgPSBmICFhY2MgKHVuc2FmZV9nZXQgaW5wdXRfYXJyYXkgaSkgaW5cbiAgICAgIGFjYyA6PSBhY2MnO1xuICAgICAgdW5zYWZlX3NldCBvdXRwdXRfYXJyYXkgaSBlbHQ7XG4gICAgZG9uZTtcbiAgICAhYWNjLCBvdXRwdXRfYXJyYXlcbiAgZW5kXG5cbmxldCBmb2xkX3JpZ2h0IGYgYSB4ID1cbiAgbGV0IHIgPSByZWYgeCBpblxuICBmb3IgaSA9IGxlbmd0aCBhIC0gMSBkb3dudG8gMCBkb1xuICAgIHIgOj0gZiAodW5zYWZlX2dldCBhIGkpICFyXG4gIGRvbmU7XG4gICFyXG5cbmxldCBleGlzdHMgcCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IGZvcl9hbGwgcCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiB0cnVlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiBsb29wIChzdWNjIGkpXG4gICAgZWxzZSBmYWxzZSBpblxuICBsb29wIDBcblxubGV0IGZvcl9hbGwyIHAgbDEgbDIgPVxuICBsZXQgbjEgPSBsZW5ndGggbDFcbiAgYW5kIG4yID0gbGVuZ3RoIGwyIGluXG4gIGlmIG4xIDw+IG4yIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5mb3JfYWxsMlwiXG4gIGVsc2UgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuMSB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgbDEgaSkgKHVuc2FmZV9nZXQgbDIgaSkgdGhlbiBsb29wIChzdWNjIGkpXG4gICAgZWxzZSBmYWxzZSBpblxuICBsb29wIDBcblxubGV0IGV4aXN0czIgcCBsMSBsMiA9XG4gIGxldCBuMSA9IGxlbmd0aCBsMVxuICBhbmQgbjIgPSBsZW5ndGggbDIgaW5cbiAgaWYgbjEgPD4gbjIgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmV4aXN0czJcIlxuICBlbHNlIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbjEgdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBsMSBpKSAodW5zYWZlX2dldCBsMiBpKSB0aGVuIHRydWVcbiAgICBlbHNlIGxvb3AgKHN1Y2MgaSkgaW5cbiAgbG9vcCAwXG5cbmxldCBtZW0geCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgY29tcGFyZSAodW5zYWZlX2dldCBhIGkpIHggPSAwIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IG1lbXEgeCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgeCA9PSAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IGZpbmRfb3B0IHAgYSA9XG4gIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuIHRoZW4gTm9uZVxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gdW5zYWZlX2dldCBhIGkgaW5cbiAgICAgIGlmIHAgeCB0aGVuIFNvbWUgeFxuICAgICAgZWxzZSBsb29wIChzdWNjIGkpXG4gIGluXG4gIGxvb3AgMFxuXG5sZXQgZmluZF9tYXAgZiBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBOb25lXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggZiAodW5zYWZlX2dldCBhIGkpIHdpdGhcbiAgICAgIHwgTm9uZSAtPiBsb29wIChzdWNjIGkpXG4gICAgICB8IFNvbWUgXyBhcyByIC0+IHJcbiAgaW5cbiAgbG9vcCAwXG5cbmxldCBzcGxpdCB4ID1cbiAgaWYgeCA9IFt8fF0gdGhlbiBbfHxdLCBbfHxdXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgYTAsIGIwID0gdW5zYWZlX2dldCB4IDAgaW5cbiAgICBsZXQgbiA9IGxlbmd0aCB4IGluXG4gICAgbGV0IGEgPSBjcmVhdGUgbiBhMCBpblxuICAgIGxldCBiID0gY3JlYXRlIG4gYjAgaW5cbiAgICBmb3IgaSA9IDEgdG8gbiAtIDEgZG9cbiAgICAgIGxldCBhaSwgYmkgPSB1bnNhZmVfZ2V0IHggaSBpblxuICAgICAgdW5zYWZlX3NldCBhIGkgYWk7XG4gICAgICB1bnNhZmVfc2V0IGIgaSBiaVxuICAgIGRvbmU7XG4gICAgYSwgYlxuICBlbmRcblxubGV0IGNvbWJpbmUgYSBiID1cbiAgbGV0IG5hID0gbGVuZ3RoIGEgaW5cbiAgbGV0IG5iID0gbGVuZ3RoIGIgaW5cbiAgaWYgbmEgPD4gbmIgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmNvbWJpbmVcIjtcbiAgaWYgbmEgPSAwIHRoZW4gW3x8XVxuICBlbHNlIGJlZ2luXG4gICAgbGV0IHggPSBjcmVhdGUgbmEgKHVuc2FmZV9nZXQgYSAwLCB1bnNhZmVfZ2V0IGIgMCkgaW5cbiAgICBmb3IgaSA9IDEgdG8gbmEgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHggaSAodW5zYWZlX2dldCBhIGksIHVuc2FmZV9nZXQgYiBpKVxuICAgIGRvbmU7XG4gICAgeFxuICBlbmRcblxuZXhjZXB0aW9uIEJvdHRvbSBvZiBpbnRcbmxldCBzb3J0IGNtcCBhID1cbiAgbGV0IG1heHNvbiBsIGkgPVxuICAgIGxldCBpMzEgPSBpK2kraSsxIGluXG4gICAgbGV0IHggPSByZWYgaTMxIGluXG4gICAgaWYgaTMxKzIgPCBsIHRoZW4gYmVnaW5cbiAgICAgIGlmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwIHRoZW4geCA6PSBpMzErMTtcbiAgICAgIGlmIGNtcCAoZ2V0IGEgIXgpIChnZXQgYSAoaTMxKzIpKSA8IDAgdGhlbiB4IDo9IGkzMSsyO1xuICAgICAgIXhcbiAgICBlbmQgZWxzZVxuICAgICAgaWYgaTMxKzEgPCBsICYmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwXG4gICAgICB0aGVuIGkzMSsxXG4gICAgICBlbHNlIGlmIGkzMSA8IGwgdGhlbiBpMzEgZWxzZSByYWlzZSAoQm90dG9tIGkpXG4gIGluXG4gIGxldCByZWMgdHJpY2tsZWRvd24gbCBpIGUgPVxuICAgIGxldCBqID0gbWF4c29uIGwgaSBpblxuICAgIGlmIGNtcCAoZ2V0IGEgaikgZSA+IDAgdGhlbiBiZWdpblxuICAgICAgc2V0IGEgaSAoZ2V0IGEgaik7XG4gICAgICB0cmlja2xlZG93biBsIGogZTtcbiAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgc2V0IGEgaSBlO1xuICAgIGVuZDtcbiAgaW5cbiAgbGV0IHRyaWNrbGUgbCBpIGUgPSB0cnkgdHJpY2tsZWRvd24gbCBpIGUgd2l0aCBCb3R0b20gaSAtPiBzZXQgYSBpIGUgaW5cbiAgbGV0IHJlYyBidWJibGVkb3duIGwgaSA9XG4gICAgbGV0IGogPSBtYXhzb24gbCBpIGluXG4gICAgc2V0IGEgaSAoZ2V0IGEgaik7XG4gICAgYnViYmxlZG93biBsIGpcbiAgaW5cbiAgbGV0IGJ1YmJsZSBsIGkgPSB0cnkgYnViYmxlZG93biBsIGkgd2l0aCBCb3R0b20gaSAtPiBpIGluXG4gIGxldCByZWMgdHJpY2tsZXVwIGkgZSA9XG4gICAgbGV0IGZhdGhlciA9IChpIC0gMSkgLyAzIGluXG4gICAgYXNzZXJ0IChpIDw+IGZhdGhlcik7XG4gICAgaWYgY21wIChnZXQgYSBmYXRoZXIpIGUgPCAwIHRoZW4gYmVnaW5cbiAgICAgIHNldCBhIGkgKGdldCBhIGZhdGhlcik7XG4gICAgICBpZiBmYXRoZXIgPiAwIHRoZW4gdHJpY2tsZXVwIGZhdGhlciBlIGVsc2Ugc2V0IGEgMCBlO1xuICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICBzZXQgYSBpIGU7XG4gICAgZW5kO1xuICBpblxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGZvciBpID0gKGwgKyAxKSAvIDMgLSAxIGRvd250byAwIGRvIHRyaWNrbGUgbCBpIChnZXQgYSBpKTsgZG9uZTtcbiAgZm9yIGkgPSBsIC0gMSBkb3dudG8gMiBkb1xuICAgIGxldCBlID0gKGdldCBhIGkpIGluXG4gICAgc2V0IGEgaSAoZ2V0IGEgMCk7XG4gICAgdHJpY2tsZXVwIChidWJibGUgaSAwKSBlO1xuICBkb25lO1xuICBpZiBsID4gMSB0aGVuIChsZXQgZSA9IChnZXQgYSAxKSBpbiBzZXQgYSAxIChnZXQgYSAwKTsgc2V0IGEgMCBlKVxuXG5cbmxldCBjdXRvZmYgPSA1XG5sZXQgc3RhYmxlX3NvcnQgY21wIGEgPVxuICBsZXQgbWVyZ2Ugc3JjMW9mcyBzcmMxbGVuIHNyYzIgc3JjMm9mcyBzcmMybGVuIGRzdCBkc3RvZnMgPVxuICAgIGxldCBzcmMxciA9IHNyYzFvZnMgKyBzcmMxbGVuIGFuZCBzcmMyciA9IHNyYzJvZnMgKyBzcmMybGVuIGluXG4gICAgbGV0IHJlYyBsb29wIGkxIHMxIGkyIHMyIGQgPVxuICAgICAgaWYgY21wIHMxIHMyIDw9IDAgdGhlbiBiZWdpblxuICAgICAgICBzZXQgZHN0IGQgczE7XG4gICAgICAgIGxldCBpMSA9IGkxICsgMSBpblxuICAgICAgICBpZiBpMSA8IHNyYzFyIHRoZW5cbiAgICAgICAgICBsb29wIGkxIChnZXQgYSBpMSkgaTIgczIgKGQgKyAxKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgYmxpdCBzcmMyIGkyIGRzdCAoZCArIDEpIChzcmMyciAtIGkyKVxuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgc2V0IGRzdCBkIHMyO1xuICAgICAgICBsZXQgaTIgPSBpMiArIDEgaW5cbiAgICAgICAgaWYgaTIgPCBzcmMyciB0aGVuXG4gICAgICAgICAgbG9vcCBpMSBzMSBpMiAoZ2V0IHNyYzIgaTIpIChkICsgMSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGJsaXQgYSBpMSBkc3QgKGQgKyAxKSAoc3JjMXIgLSBpMSlcbiAgICAgIGVuZFxuICAgIGluIGxvb3Agc3JjMW9mcyAoZ2V0IGEgc3JjMW9mcykgc3JjMm9mcyAoZ2V0IHNyYzIgc3JjMm9mcykgZHN0b2ZzO1xuICBpblxuICBsZXQgaXNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gPVxuICAgIGZvciBpID0gMCB0byBsZW4gLSAxIGRvXG4gICAgICBsZXQgZSA9IChnZXQgYSAoc3Jjb2ZzICsgaSkpIGluXG4gICAgICBsZXQgaiA9IHJlZiAoZHN0b2ZzICsgaSAtIDEpIGluXG4gICAgICB3aGlsZSAoIWogPj0gZHN0b2ZzICYmIGNtcCAoZ2V0IGRzdCAhaikgZSA+IDApIGRvXG4gICAgICAgIHNldCBkc3QgKCFqICsgMSkgKGdldCBkc3QgIWopO1xuICAgICAgICBkZWNyIGo7XG4gICAgICBkb25lO1xuICAgICAgc2V0IGRzdCAoIWogKyAxKSBlO1xuICAgIGRvbmU7XG4gIGluXG4gIGxldCByZWMgc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgaWYgbGVuIDw9IGN1dG9mZiB0aGVuIGlzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuIGVsc2UgYmVnaW5cbiAgICAgIGxldCBsMSA9IGxlbiAvIDIgaW5cbiAgICAgIGxldCBsMiA9IGxlbiAtIGwxIGluXG4gICAgICBzb3J0dG8gKHNyY29mcyArIGwxKSBkc3QgKGRzdG9mcyArIGwxKSBsMjtcbiAgICAgIHNvcnR0byBzcmNvZnMgYSAoc3Jjb2ZzICsgbDIpIGwxO1xuICAgICAgbWVyZ2UgKHNyY29mcyArIGwyKSBsMSBkc3QgKGRzdG9mcyArIGwxKSBsMiBkc3QgZHN0b2ZzO1xuICAgIGVuZDtcbiAgaW5cbiAgbGV0IGwgPSBsZW5ndGggYSBpblxuICBpZiBsIDw9IGN1dG9mZiB0aGVuIGlzb3J0dG8gMCBhIDAgbCBlbHNlIGJlZ2luXG4gICAgbGV0IGwxID0gbCAvIDIgaW5cbiAgICBsZXQgbDIgPSBsIC0gbDEgaW5cbiAgICBsZXQgdCA9IG1ha2UgbDIgKGdldCBhIDApIGluXG4gICAgc29ydHRvIGwxIHQgMCBsMjtcbiAgICBzb3J0dG8gMCBhIGwyIGwxO1xuICAgIG1lcmdlIGwyIGwxIHQgMCBsMiBhIDA7XG4gIGVuZFxuXG5cbmxldCBmYXN0X3NvcnQgPSBzdGFibGVfc29ydFxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIGEgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICBpZiBpIDwgbGVuZ3RoIGFcbiAgICB0aGVuXG4gICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICAgIGVsc2UgU2VxLk5pbFxuICBpblxuICBhdXggMFxuXG5sZXQgdG9fc2VxaSBhID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgaWYgaSA8IGxlbmd0aCBhXG4gICAgdGhlblxuICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gICAgZWxzZSBTZXEuTmlsXG4gIGluXG4gIGF1eCAwXG5cbmxldCBvZl9yZXZfbGlzdCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gW3x8XVxuICB8IGhkOjp0bCBhcyBsIC0+XG4gICAgICBsZXQgbGVuID0gbGlzdF9sZW5ndGggMCBsIGluXG4gICAgICBsZXQgYSA9IGNyZWF0ZSBsZW4gaGQgaW5cbiAgICAgIGxldCByZWMgZmlsbCBpID0gZnVuY3Rpb25cbiAgICAgICAgICBbXSAtPiBhXG4gICAgICAgIHwgaGQ6OnRsIC0+IHVuc2FmZV9zZXQgYSBpIGhkOyBmaWxsIChpLTEpIHRsXG4gICAgICBpblxuICAgICAgZmlsbCAobGVuLTIpIHRsXG5cbmxldCBvZl9zZXEgaSA9XG4gIGxldCBsID0gU2VxLmZvbGRfbGVmdCAoZnVuIGFjYyB4IC0+IHg6OmFjYykgW10gaSBpblxuICBvZl9yZXZfbGlzdCBsXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgIE5pY29sYXMgT2plZGEgQmFyLCBMZXhpRmkgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmV4dGVybmFsIG5lZyA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlbmVnZmxvYXRcIlxuZXh0ZXJuYWwgYWRkIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVhZGRmbG9hdFwiXG5leHRlcm5hbCBzdWIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJXN1YmZsb2F0XCJcbmV4dGVybmFsIG11bCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlbXVsZmxvYXRcIlxuZXh0ZXJuYWwgZGl2IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVkaXZmbG9hdFwiXG5leHRlcm5hbCByZW0gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbW9kX2Zsb2F0XCIgXCJmbW9kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZtYSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2ZtYV9mbG9hdFwiIFwiY2FtbF9mbWFcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWJzIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVhYnNmbG9hdFwiXG5cbmxldCB6ZXJvID0gMC5cbmxldCBvbmUgPSAxLlxubGV0IG1pbnVzX29uZSA9IC0xLlxubGV0IGluZmluaXR5ID0gU3RkbGliLmluZmluaXR5XG5sZXQgbmVnX2luZmluaXR5ID0gU3RkbGliLm5lZ19pbmZpbml0eVxubGV0IG5hbiA9IFN0ZGxpYi5uYW5cbmxldCBpc19maW5pdGUgKHg6IGZsb2F0KSA9IHggLS4geCA9IDAuXG5sZXQgaXNfaW5maW5pdGUgKHg6IGZsb2F0KSA9IDEuIC8uIHggPSAwLlxubGV0IGlzX25hbiAoeDogZmxvYXQpID0geCA8PiB4XG5cbmxldCBwaSA9IDB4MS45MjFmYjU0NDQyZDE4cCsxXG5sZXQgbWF4X2Zsb2F0ID0gU3RkbGliLm1heF9mbG9hdFxubGV0IG1pbl9mbG9hdCA9IFN0ZGxpYi5taW5fZmxvYXRcbmxldCBlcHNpbG9uID0gU3RkbGliLmVwc2lsb25fZmxvYXRcbmV4dGVybmFsIG9mX2ludCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgdG9faW50IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5leHRlcm5hbCBvZl9zdHJpbmcgOiBzdHJpbmcgLT4gZmxvYXQgPSBcImNhbWxfZmxvYXRfb2Zfc3RyaW5nXCJcbmxldCBvZl9zdHJpbmdfb3B0ID0gU3RkbGliLmZsb2F0X29mX3N0cmluZ19vcHRcbmxldCB0b19zdHJpbmcgPSBTdGRsaWIuc3RyaW5nX29mX2Zsb2F0XG50eXBlIGZwY2xhc3MgPSBTdGRsaWIuZnBjbGFzcyA9XG4gICAgRlBfbm9ybWFsXG4gIHwgRlBfc3Vibm9ybWFsXG4gIHwgRlBfemVyb1xuICB8IEZQX2luZmluaXRlXG4gIHwgRlBfbmFuXG5leHRlcm5hbCBjbGFzc2lmeV9mbG9hdCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiBmcGNsYXNzID1cbiAgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0XCIgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgcG93IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfcG93ZXJfZmxvYXRcIiBcInBvd1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzcXJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc3FydF9mbG9hdFwiIFwic3FydFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjYnJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2JydF9mbG9hdFwiIFwiY2FtbF9jYnJ0XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cF9mbG9hdFwiIFwiZXhwXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cDIgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHAyX2Zsb2F0XCIgXCJjYW1sX2V4cDJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nX2Zsb2F0XCIgXCJsb2dcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMTAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxMF9mbG9hdFwiIFwibG9nMTBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzJfZmxvYXRcIiBcImNhbWxfbG9nMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHBtMSA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cG0xX2Zsb2F0XCIgXCJjYW1sX2V4cG0xXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzFwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMXBfZmxvYXRcIiBcImNhbWxfbG9nMXBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zX2Zsb2F0XCIgXCJjb3NcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luX2Zsb2F0XCIgXCJzaW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuX2Zsb2F0XCIgXCJ0YW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NfZmxvYXRcIiBcImFjb3NcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5fZmxvYXRcIiBcImFzaW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5fZmxvYXRcIiBcImF0YW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuMl9mbG9hdFwiIFwiYXRhbjJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHlwb3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgPSBcImNhbWxfaHlwb3RfZmxvYXRcIiBcImNhbWxfaHlwb3RcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc2hfZmxvYXRcIiBcImNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NpbmhfZmxvYXRcIiBcInNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3RhbmhfZmxvYXRcIiBcInRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zaF9mbG9hdFwiIFwiY2FtbF9hY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5oX2Zsb2F0XCIgXCJjYW1sX2FzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbmhfZmxvYXRcIiBcImNhbWxfYXRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXJmIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXJmX2Zsb2F0XCIgXCJjYW1sX2VyZlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBlcmZjIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXJmY19mbG9hdFwiIFwiY2FtbF9lcmZjXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRydW5jIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdHJ1bmNfZmxvYXRcIiBcImNhbWxfdHJ1bmNcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgcm91bmQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9yb3VuZF9mbG9hdFwiIFwiY2FtbF9yb3VuZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjZWlsIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2VpbF9mbG9hdFwiIFwiY2VpbFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9vciA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Zsb29yX2Zsb2F0XCIgXCJmbG9vclwiXG5bQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuXG5sZXQgaXNfaW50ZWdlciB4ID0geCA9IHRydW5jIHggJiYgaXNfZmluaXRlIHhcblxuZXh0ZXJuYWwgbmV4dF9hZnRlciA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gID0gXCJjYW1sX25leHRhZnRlcl9mbG9hdFwiIFwiY2FtbF9uZXh0YWZ0ZXJcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuXG5sZXQgc3VjYyB4ID0gbmV4dF9hZnRlciB4IGluZmluaXR5XG5sZXQgcHJlZCB4ID0gbmV4dF9hZnRlciB4IG5lZ19pbmZpbml0eVxuXG5leHRlcm5hbCBjb3B5X3NpZ24gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgICAgPSBcImNhbWxfY29weXNpZ25fZmxvYXRcIiBcImNhbWxfY29weXNpZ25cIlxuICAgICAgICAgICAgICAgICAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpZ25fYml0IDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IGJvb2xcbiAgPSBcImNhbWxfc2lnbmJpdF9mbG9hdFwiIFwiY2FtbF9zaWduYml0XCIgW0BAbm9hbGxvY11cblxuZXh0ZXJuYWwgZnJleHAgOiBmbG9hdCAtPiBmbG9hdCAqIGludCA9IFwiY2FtbF9mcmV4cF9mbG9hdFwiXG5leHRlcm5hbCBsZGV4cCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiAoaW50IFtAdW50YWdnZWRdKSAtPiAoZmxvYXQgW0B1bmJveGVkXSkgPVxuICBcImNhbWxfbGRleHBfZmxvYXRcIiBcImNhbWxfbGRleHBfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RmIDogZmxvYXQgLT4gZmxvYXQgKiBmbG9hdCA9IFwiY2FtbF9tb2RmX2Zsb2F0XCJcbnR5cGUgdCA9IGZsb2F0XG5leHRlcm5hbCBjb21wYXJlIDogZmxvYXQgLT4gZmxvYXQgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5sZXQgZXF1YWwgeCB5ID0gY29tcGFyZSB4IHkgPSAwXG5cbmxldFtAaW5saW5lXSBtaW4gKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuXG4gICAgaWYgaXNfbmFuIHkgdGhlbiB5IGVsc2UgeFxuICBlbHNlIGlmIGlzX25hbiB4IHRoZW4geCBlbHNlIHlcblxubGV0W0BpbmxpbmVdIG1heCAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW5cbiAgICBpZiBpc19uYW4geCB0aGVuIHggZWxzZSB5XG4gIGVsc2UgaWYgaXNfbmFuIHkgdGhlbiB5IGVsc2UgeFxuXG5sZXRbQGlubGluZV0gbWluX21heCAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiBpc19uYW4geCB8fCBpc19uYW4geSB0aGVuIChuYW4sIG5hbilcbiAgZWxzZSBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW4gKHgsIHkpIGVsc2UgKHksIHgpXG5cbmxldFtAaW5saW5lXSBtaW5fbnVtICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlblxuICAgIGlmIGlzX25hbiB4IHRoZW4geSBlbHNlIHhcbiAgZWxzZSBpZiBpc19uYW4geSB0aGVuIHggZWxzZSB5XG5cbmxldFtAaW5saW5lXSBtYXhfbnVtICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlblxuICAgIGlmIGlzX25hbiB5IHRoZW4geCBlbHNlIHlcbiAgZWxzZSBpZiBpc19uYW4geCB0aGVuIHkgZWxzZSB4XG5cbmxldFtAaW5saW5lXSBtaW5fbWF4X251bSAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiBpc19uYW4geCB0aGVuICh5LHkpXG4gIGVsc2UgaWYgaXNfbmFuIHkgdGhlbiAoeCx4KVxuICBlbHNlIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlbiAoeCx5KSBlbHNlICh5LHgpXG5cbmV4dGVybmFsIHNlZWRlZF9oYXNoX3BhcmFtIDogaW50IC0+IGludCAtPiBpbnQgLT4gZmxvYXQgLT4gaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9oYXNoXCIgW0BAbm9hbGxvY11cbmxldCBoYXNoIHggPSBzZWVkZWRfaGFzaF9wYXJhbSAxMCAxMDAgMCB4XG5cbm1vZHVsZSBBcnJheSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9IGZsb2F0YXJyYXlcblxuICBleHRlcm5hbCBsZW5ndGggOiB0IC0+IGludCA9IFwiJWZsb2F0YXJyYXlfbGVuZ3RoXCJcbiAgZXh0ZXJuYWwgZ2V0IDogdCAtPiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdGFycmF5X3NhZmVfZ2V0XCJcbiAgZXh0ZXJuYWwgc2V0IDogdCAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdCA9IFwiJWZsb2F0YXJyYXlfc2FmZV9zZXRcIlxuICBleHRlcm5hbCBjcmVhdGUgOiBpbnQgLT4gdCA9IFwiY2FtbF9mbG9hdGFycmF5X2NyZWF0ZVwiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQgOiB0IC0+IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0YXJyYXlfdW5zYWZlX2dldFwiXG4gIGV4dGVybmFsIHVuc2FmZV9zZXQgOiB0IC0+IGludCAtPiBmbG9hdCAtPiB1bml0ID0gXCIlZmxvYXRhcnJheV91bnNhZmVfc2V0XCJcblxuICBsZXQgdW5zYWZlX2ZpbGwgYSBvZnMgbGVuIHYgPVxuICAgIGZvciBpID0gb2ZzIHRvIG9mcyArIGxlbiAtIDEgZG8gdW5zYWZlX3NldCBhIGkgdiBkb25lXG5cbiAgZXh0ZXJuYWwgdW5zYWZlX2JsaXQ6IHQgLT4gaW50IC0+IHQgLT4gaW50IC0+IGludCAtPiB1bml0ID1cbiAgICBcImNhbWxfZmxvYXRhcnJheV9ibGl0XCIgW0BAbm9hbGxvY11cblxuICBsZXQgY2hlY2sgYSBvZnMgbGVuIG1zZyA9XG4gICAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyArIGxlbiA8IDAgfHwgb2ZzICsgbGVuID4gbGVuZ3RoIGEgdGhlblxuICAgICAgaW52YWxpZF9hcmcgbXNnXG5cbiAgbGV0IG1ha2UgbiB2ID1cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIG4gaW5cbiAgICB1bnNhZmVfZmlsbCByZXN1bHQgMCBuIHY7XG4gICAgcmVzdWx0XG5cbiAgbGV0IGluaXQgbCBmID1cbiAgICBpZiBsIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiRmxvYXQuQXJyYXkuaW5pdFwiXG4gICAgZWxzZVxuICAgICAgbGV0IHJlcyA9IGNyZWF0ZSBsIGluXG4gICAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgICAgdW5zYWZlX3NldCByZXMgaSAoZiBpKVxuICAgICAgZG9uZTtcbiAgICAgIHJlc1xuXG4gIGxldCBhcHBlbmQgYTEgYTIgPVxuICAgIGxldCBsMSA9IGxlbmd0aCBhMSBpblxuICAgIGxldCBsMiA9IGxlbmd0aCBhMiBpblxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgKGwxICsgbDIpIGluXG4gICAgdW5zYWZlX2JsaXQgYTEgMCByZXN1bHQgMCBsMTtcbiAgICB1bnNhZmVfYmxpdCBhMiAwIHJlc3VsdCBsMSBsMjtcbiAgICByZXN1bHRcblxuICAoKiBuZXh0IDMgZnVuY3Rpb25zOiBtb2RpZmllZCBjb3B5IG9mIGNvZGUgZnJvbSBzdHJpbmcubWwgKilcbiAgbGV0IGVuc3VyZV9nZSAoeDppbnQpIHkgPVxuICAgIGlmIHggPj0geSB0aGVuIHggZWxzZSBpbnZhbGlkX2FyZyBcIkZsb2F0LkFycmF5LmNvbmNhdFwiXG5cbiAgbGV0IHJlYyBzdW1fbGVuZ3RocyBhY2MgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gYWNjXG4gICAgfCBoZCA6OiB0bCAtPiBzdW1fbGVuZ3RocyAoZW5zdXJlX2dlIChsZW5ndGggaGQgKyBhY2MpIGFjYykgdGxcblxuICBsZXQgY29uY2F0IGwgPVxuICAgIGxldCBsZW4gPSBzdW1fbGVuZ3RocyAwIGwgaW5cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIGxlbiBpblxuICAgIGxldCByZWMgbG9vcCBsIGkgPVxuICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICB8IFtdIC0+IGFzc2VydCAoaSA9IGxlbilcbiAgICAgIHwgaGQgOjogdGwgLT5cbiAgICAgICAgbGV0IGhsZW4gPSBsZW5ndGggaGQgaW5cbiAgICAgICAgdW5zYWZlX2JsaXQgaGQgMCByZXN1bHQgaSBobGVuO1xuICAgICAgICBsb29wIHRsIChpICsgaGxlbilcbiAgICBpblxuICAgIGxvb3AgbCAwO1xuICAgIHJlc3VsdFxuXG4gIGxldCBzdWIgYSBvZnMgbGVuID1cbiAgICBjaGVjayBhIG9mcyBsZW4gXCJGbG9hdC5BcnJheS5zdWJcIjtcbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIGxlbiBpblxuICAgIHVuc2FmZV9ibGl0IGEgb2ZzIHJlc3VsdCAwIGxlbjtcbiAgICByZXN1bHRcblxuICBsZXQgY29weSBhID1cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSBsIGluXG4gICAgdW5zYWZlX2JsaXQgYSAwIHJlc3VsdCAwIGw7XG4gICAgcmVzdWx0XG5cbiAgbGV0IGZpbGwgYSBvZnMgbGVuIHYgPVxuICAgIGNoZWNrIGEgb2ZzIGxlbiBcIkZsb2F0LkFycmF5LmZpbGxcIjtcbiAgICB1bnNhZmVfZmlsbCBhIG9mcyBsZW4gdlxuXG4gIGxldCBibGl0IHNyYyBzb2ZzIGRzdCBkb2ZzIGxlbiA9XG4gICAgY2hlY2sgc3JjIHNvZnMgbGVuIFwiRmxvYXQuYXJyYXkuYmxpdFwiO1xuICAgIGNoZWNrIGRzdCBkb2ZzIGxlbiBcIkZsb2F0LmFycmF5LmJsaXRcIjtcbiAgICB1bnNhZmVfYmxpdCBzcmMgc29mcyBkc3QgZG9mcyBsZW5cblxuICBsZXQgdG9fbGlzdCBhID1cbiAgICBMaXN0LmluaXQgKGxlbmd0aCBhKSAodW5zYWZlX2dldCBhKVxuXG4gIGxldCBvZl9saXN0IGwgPVxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgKExpc3QubGVuZ3RoIGwpIGluXG4gICAgbGV0IHJlYyBmaWxsIGkgbCA9XG4gICAgICBtYXRjaCBsIHdpdGhcbiAgICAgIHwgW10gLT4gcmVzdWx0XG4gICAgICB8IGggOjogdCAtPiB1bnNhZmVfc2V0IHJlc3VsdCBpIGg7IGZpbGwgKGkgKyAxKSB0XG4gICAgaW5cbiAgICBmaWxsIDAgbFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgaXRlciBmIGEgPVxuICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiAodW5zYWZlX2dldCBhIGkpIGRvbmVcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGl0ZXIyIGYgYSBiID1cbiAgICBpZiBsZW5ndGggYSA8PiBsZW5ndGggYiB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIkZsb2F0LkFycmF5Lml0ZXIyOiBhcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiXG4gICAgZWxzZVxuICAgICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmICh1bnNhZmVfZ2V0IGEgaSkgKHVuc2FmZV9nZXQgYiBpKSBkb25lXG5cbiAgbGV0IG1hcCBmIGEgPVxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIGluXG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpKVxuICAgIGRvbmU7XG4gICAgclxuXG4gIGxldCBtYXAyIGYgYSBiID1cbiAgICBsZXQgbGEgPSBsZW5ndGggYSBpblxuICAgIGxldCBsYiA9IGxlbmd0aCBiIGluXG4gICAgaWYgbGEgPD4gbGIgdGhlblxuICAgICAgaW52YWxpZF9hcmcgXCJGbG9hdC5BcnJheS5tYXAyOiBhcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiXG4gICAgZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBjcmVhdGUgbGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBsYSAtIDEgZG9cbiAgICAgICAgdW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgYSBpKSAodW5zYWZlX2dldCBiIGkpKVxuICAgICAgZG9uZTtcbiAgICAgIHJcbiAgICBlbmRcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGl0ZXJpIGYgYSA9XG4gICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmIGkgKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbiAgbGV0IG1hcGkgZiBhID1cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCByIGkgKGYgaSAodW5zYWZlX2dldCBhIGkpKVxuICAgIGRvbmU7XG4gICAgclxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgZm9sZF9sZWZ0IGYgeCBhID1cbiAgICBsZXQgciA9IHJlZiB4IGluXG4gICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkb1xuICAgICAgciA6PSBmICFyICh1bnNhZmVfZ2V0IGEgaSlcbiAgICBkb25lO1xuICAgICFyXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBmb2xkX3JpZ2h0IGYgYSB4ID1cbiAgICBsZXQgciA9IHJlZiB4IGluXG4gICAgZm9yIGkgPSBsZW5ndGggYSAtIDEgZG93bnRvIDAgZG9cbiAgICAgIHIgOj0gZiAodW5zYWZlX2dldCBhIGkpICFyXG4gICAgZG9uZTtcbiAgICAhclxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgZXhpc3RzIHAgYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgICAgZWxzZSBsb29wIChpICsgMSkgaW5cbiAgICBsb29wIDBcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGZvcl9hbGwgcCBhID1cbiAgICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IG4gdGhlbiB0cnVlXG4gICAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgYSBpKSB0aGVuIGxvb3AgKGkgKyAxKVxuICAgICAgZWxzZSBmYWxzZSBpblxuICAgIGxvb3AgMFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgbWVtIHggYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICAgIGVsc2UgaWYgY29tcGFyZSAodW5zYWZlX2dldCBhIGkpIHggPSAwIHRoZW4gdHJ1ZVxuICAgICAgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG4gICgqIG1vc3RseSBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwsIGJ1dCBzbGlnaHRseSBkaWZmZXJlbnQgKilcbiAgbGV0IG1lbV9pZWVlIHggYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICAgIGVsc2UgaWYgeCA9ICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiB0cnVlXG4gICAgICBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGV4Y2VwdGlvbiBCb3R0b20gb2YgaW50XG4gIGxldCBzb3J0IGNtcCBhID1cbiAgICBsZXQgbWF4c29uIGwgaSA9XG4gICAgICBsZXQgaTMxID0gaStpK2krMSBpblxuICAgICAgbGV0IHggPSByZWYgaTMxIGluXG4gICAgICBpZiBpMzErMiA8IGwgdGhlbiBiZWdpblxuICAgICAgICBpZiBjbXAgKGdldCBhIGkzMSkgKGdldCBhIChpMzErMSkpIDwgMCB0aGVuIHggOj0gaTMxKzE7XG4gICAgICAgIGlmIGNtcCAoZ2V0IGEgIXgpIChnZXQgYSAoaTMxKzIpKSA8IDAgdGhlbiB4IDo9IGkzMSsyO1xuICAgICAgICAheFxuICAgICAgZW5kIGVsc2VcbiAgICAgICAgaWYgaTMxKzEgPCBsICYmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwXG4gICAgICAgIHRoZW4gaTMxKzFcbiAgICAgICAgZWxzZSBpZiBpMzEgPCBsIHRoZW4gaTMxIGVsc2UgcmFpc2UgKEJvdHRvbSBpKVxuICAgIGluXG4gICAgbGV0IHJlYyB0cmlja2xlZG93biBsIGkgZSA9XG4gICAgICBsZXQgaiA9IG1heHNvbiBsIGkgaW5cbiAgICAgIGlmIGNtcCAoZ2V0IGEgaikgZSA+IDAgdGhlbiBiZWdpblxuICAgICAgICBzZXQgYSBpIChnZXQgYSBqKTtcbiAgICAgICAgdHJpY2tsZWRvd24gbCBqIGU7XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXQgYSBpIGU7XG4gICAgICBlbmQ7XG4gICAgaW5cbiAgICBsZXQgdHJpY2tsZSBsIGkgZSA9IHRyeSB0cmlja2xlZG93biBsIGkgZSB3aXRoIEJvdHRvbSBpIC0+IHNldCBhIGkgZSBpblxuICAgIGxldCByZWMgYnViYmxlZG93biBsIGkgPVxuICAgICAgbGV0IGogPSBtYXhzb24gbCBpIGluXG4gICAgICBzZXQgYSBpIChnZXQgYSBqKTtcbiAgICAgIGJ1YmJsZWRvd24gbCBqXG4gICAgaW5cbiAgICBsZXQgYnViYmxlIGwgaSA9IHRyeSBidWJibGVkb3duIGwgaSB3aXRoIEJvdHRvbSBpIC0+IGkgaW5cbiAgICBsZXQgcmVjIHRyaWNrbGV1cCBpIGUgPVxuICAgICAgbGV0IGZhdGhlciA9IChpIC0gMSkgLyAzIGluXG4gICAgICBhc3NlcnQgKGkgPD4gZmF0aGVyKTtcbiAgICAgIGlmIGNtcCAoZ2V0IGEgZmF0aGVyKSBlIDwgMCB0aGVuIGJlZ2luXG4gICAgICAgIHNldCBhIGkgKGdldCBhIGZhdGhlcik7XG4gICAgICAgIGlmIGZhdGhlciA+IDAgdGhlbiB0cmlja2xldXAgZmF0aGVyIGUgZWxzZSBzZXQgYSAwIGU7XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXQgYSBpIGU7XG4gICAgICBlbmQ7XG4gICAgaW5cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgZm9yIGkgPSAobCArIDEpIC8gMyAtIDEgZG93bnRvIDAgZG8gdHJpY2tsZSBsIGkgKGdldCBhIGkpOyBkb25lO1xuICAgIGZvciBpID0gbCAtIDEgZG93bnRvIDIgZG9cbiAgICAgIGxldCBlID0gKGdldCBhIGkpIGluXG4gICAgICBzZXQgYSBpIChnZXQgYSAwKTtcbiAgICAgIHRyaWNrbGV1cCAoYnViYmxlIGkgMCkgZTtcbiAgICBkb25lO1xuICAgIGlmIGwgPiAxIHRoZW4gKGxldCBlID0gKGdldCBhIDEpIGluIHNldCBhIDEgKGdldCBhIDApOyBzZXQgYSAwIGUpXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sLCBleGNlcHQgZm9yIHRoZSBjYWxsIHRvIFtjcmVhdGVdICopXG4gIGxldCBjdXRvZmYgPSA1XG4gIGxldCBzdGFibGVfc29ydCBjbXAgYSA9XG4gICAgbGV0IG1lcmdlIHNyYzFvZnMgc3JjMWxlbiBzcmMyIHNyYzJvZnMgc3JjMmxlbiBkc3QgZHN0b2ZzID1cbiAgICAgIGxldCBzcmMxciA9IHNyYzFvZnMgKyBzcmMxbGVuIGFuZCBzcmMyciA9IHNyYzJvZnMgKyBzcmMybGVuIGluXG4gICAgICBsZXQgcmVjIGxvb3AgaTEgczEgaTIgczIgZCA9XG4gICAgICAgIGlmIGNtcCBzMSBzMiA8PSAwIHRoZW4gYmVnaW5cbiAgICAgICAgICBzZXQgZHN0IGQgczE7XG4gICAgICAgICAgbGV0IGkxID0gaTEgKyAxIGluXG4gICAgICAgICAgaWYgaTEgPCBzcmMxciB0aGVuXG4gICAgICAgICAgICBsb29wIGkxIChnZXQgYSBpMSkgaTIgczIgKGQgKyAxKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGJsaXQgc3JjMiBpMiBkc3QgKGQgKyAxKSAoc3JjMnIgLSBpMilcbiAgICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgICBzZXQgZHN0IGQgczI7XG4gICAgICAgICAgbGV0IGkyID0gaTIgKyAxIGluXG4gICAgICAgICAgaWYgaTIgPCBzcmMyciB0aGVuXG4gICAgICAgICAgICBsb29wIGkxIHMxIGkyIChnZXQgc3JjMiBpMikgKGQgKyAxKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGJsaXQgYSBpMSBkc3QgKGQgKyAxKSAoc3JjMXIgLSBpMSlcbiAgICAgICAgZW5kXG4gICAgICBpbiBsb29wIHNyYzFvZnMgKGdldCBhIHNyYzFvZnMpIHNyYzJvZnMgKGdldCBzcmMyIHNyYzJvZnMpIGRzdG9mcztcbiAgICBpblxuICAgIGxldCBpc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgICBmb3IgaSA9IDAgdG8gbGVuIC0gMSBkb1xuICAgICAgICBsZXQgZSA9IChnZXQgYSAoc3Jjb2ZzICsgaSkpIGluXG4gICAgICAgIGxldCBqID0gcmVmIChkc3RvZnMgKyBpIC0gMSkgaW5cbiAgICAgICAgd2hpbGUgKCFqID49IGRzdG9mcyAmJiBjbXAgKGdldCBkc3QgIWopIGUgPiAwKSBkb1xuICAgICAgICAgIHNldCBkc3QgKCFqICsgMSkgKGdldCBkc3QgIWopO1xuICAgICAgICAgIGRlY3IgajtcbiAgICAgICAgZG9uZTtcbiAgICAgICAgc2V0IGRzdCAoIWogKyAxKSBlO1xuICAgICAgZG9uZTtcbiAgICBpblxuICAgIGxldCByZWMgc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgICBpZiBsZW4gPD0gY3V0b2ZmIHRoZW4gaXNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gZWxzZSBiZWdpblxuICAgICAgICBsZXQgbDEgPSBsZW4gLyAyIGluXG4gICAgICAgIGxldCBsMiA9IGxlbiAtIGwxIGluXG4gICAgICAgIHNvcnR0byAoc3Jjb2ZzICsgbDEpIGRzdCAoZHN0b2ZzICsgbDEpIGwyO1xuICAgICAgICBzb3J0dG8gc3Jjb2ZzIGEgKHNyY29mcyArIGwyKSBsMTtcbiAgICAgICAgbWVyZ2UgKHNyY29mcyArIGwyKSBsMSBkc3QgKGRzdG9mcyArIGwxKSBsMiBkc3QgZHN0b2ZzO1xuICAgICAgZW5kO1xuICAgIGluXG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGlmIGwgPD0gY3V0b2ZmIHRoZW4gaXNvcnR0byAwIGEgMCBsIGVsc2UgYmVnaW5cbiAgICAgIGxldCBsMSA9IGwgLyAyIGluXG4gICAgICBsZXQgbDIgPSBsIC0gbDEgaW5cbiAgICAgIGxldCB0ID0gY3JlYXRlIGwyIGluXG4gICAgICBzb3J0dG8gbDEgdCAwIGwyO1xuICAgICAgc29ydHRvIDAgYSBsMiBsMTtcbiAgICAgIG1lcmdlIGwyIGwxIHQgMCBsMiBhIDA7XG4gICAgZW5kXG5cbiAgbGV0IGZhc3Rfc29ydCA9IHN0YWJsZV9zb3J0XG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCB0b19zZXEgYSA9XG4gICAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgICBpZiBpIDwgbGVuZ3RoIGFcbiAgICAgIHRoZW5cbiAgICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICAgICAgZWxzZSBTZXEuTmlsXG4gICAgaW5cbiAgICBhdXggMFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgdG9fc2VxaSBhID1cbiAgICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICAgIGlmIGkgPCBsZW5ndGggYVxuICAgICAgdGhlblxuICAgICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICAgIFNlcS5Db25zICgoaSx4KSwgYXV4IChpKzEpKVxuICAgICAgZWxzZSBTZXEuTmlsXG4gICAgaW5cbiAgICBhdXggMFxuXG4gICgqIG1vc3RseSBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IG9mX3Jldl9saXN0IGwgPVxuICAgIGxldCBsZW4gPSBMaXN0Lmxlbmd0aCBsIGluXG4gICAgbGV0IGEgPSBjcmVhdGUgbGVuIGluXG4gICAgbGV0IHJlYyBmaWxsIGkgPSBmdW5jdGlvblxuICAgICAgICBbXSAtPiBhXG4gICAgICB8IGhkOjp0bCAtPiB1bnNhZmVfc2V0IGEgaSBoZDsgZmlsbCAoaS0xKSB0bFxuICAgIGluXG4gICAgZmlsbCAobGVuLTEpIGxcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IG9mX3NlcSBpID1cbiAgICBsZXQgbCA9IFNlcS5mb2xkX2xlZnQgKGZ1biBhY2MgeCAtPiB4OjphY2MpIFtdIGkgaW5cbiAgICBvZl9yZXZfbGlzdCBsXG5cblxuICBsZXQgbWFwX3RvX2FycmF5IGYgYSA9XG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGlmIGwgPSAwIHRoZW4gW3wgfF0gZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBBcnJheS5tYWtlIGwgKGYgKHVuc2FmZV9nZXQgYSAwKSkgaW5cbiAgICAgIGZvciBpID0gMSB0byBsIC0gMSBkb1xuICAgICAgICBBcnJheS51bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpKVxuICAgICAgZG9uZTtcbiAgICAgIHJcbiAgICBlbmRcblxuICBsZXQgbWFwX2Zyb21fYXJyYXkgZiBhID1cbiAgICBsZXQgbCA9IEFycmF5Lmxlbmd0aCBhIGluXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCByIGkgKGYgKEFycmF5LnVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcblxuZW5kXG5cbm1vZHVsZSBBcnJheUxhYmVscyA9IEFycmF5XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbSW50MzJdOiAzMi1iaXQgaW50ZWdlcnMgKilcblxuZXh0ZXJuYWwgbmVnIDogaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9uZWdcIlxuZXh0ZXJuYWwgYWRkIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9hZGRcIlxuZXh0ZXJuYWwgc3ViIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9zdWJcIlxuZXh0ZXJuYWwgbXVsIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9tdWxcIlxuZXh0ZXJuYWwgZGl2IDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9kaXZcIlxuZXh0ZXJuYWwgcmVtIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9tb2RcIlxuZXh0ZXJuYWwgbG9nYW5kIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9hbmRcIlxuZXh0ZXJuYWwgbG9nb3IgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX29yXCJcbmV4dGVybmFsIGxvZ3hvciA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfeG9yXCJcbmV4dGVybmFsIHNoaWZ0X2xlZnQgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9sc2xcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9hc3JcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbCA6IGludDMyIC0+IGludCAtPiBpbnQzMiA9IFwiJWludDMyX2xzclwiXG5leHRlcm5hbCBvZl9pbnQgOiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9vZl9pbnRcIlxuZXh0ZXJuYWwgdG9faW50IDogaW50MzIgLT4gaW50ID0gXCIlaW50MzJfdG9faW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gaW50MzJcbiAgPSBcImNhbWxfaW50MzJfb2ZfZmxvYXRcIiBcImNhbWxfaW50MzJfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0b19mbG9hdCA6IGludDMyIC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDMyX3RvX2Zsb2F0XCIgXCJjYW1sX2ludDMyX3RvX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYml0c19vZl9mbG9hdCA6IGZsb2F0IC0+IGludDMyXG4gID0gXCJjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXRcIiBcImNhbWxfaW50MzJfYml0c19vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb2F0X29mX2JpdHMgOiBpbnQzMiAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzXCIgXCJjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHNfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5cbmxldCB6ZXJvID0gMGxcbmxldCBvbmUgPSAxbFxubGV0IG1pbnVzX29uZSA9IC0xbFxubGV0IHN1Y2MgbiA9IGFkZCBuIDFsXG5sZXQgcHJlZCBuID0gc3ViIG4gMWxcbmxldCBhYnMgbiA9IGlmIG4gPj0gMGwgdGhlbiBuIGVsc2UgbmVnIG5cbmxldCBtaW5faW50ID0gMHg4MDAwMDAwMGxcbmxldCBtYXhfaW50ID0gMHg3RkZGRkZGRmxcbmxldCBsb2dub3QgbiA9IGxvZ3hvciBuICgtMWwpXG5cbmxldCB1bnNpZ25lZF90b19pbnQgPVxuICBtYXRjaCBTeXMud29yZF9zaXplIHdpdGhcbiAgfCAzMiAtPlxuICAgICAgbGV0IG1heF9pbnQgPSBvZl9pbnQgU3RkbGliLm1heF9pbnQgaW5cbiAgICAgIGZ1biBuIC0+XG4gICAgICAgIGlmIGNvbXBhcmUgemVybyBuIDw9IDAgJiYgY29tcGFyZSBuIG1heF9pbnQgPD0gMCB0aGVuXG4gICAgICAgICAgU29tZSAodG9faW50IG4pXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBOb25lXG4gIHwgNjQgLT5cbiAgICAgICgqIFNvIHRoYXQgaXQgY29tcGlsZXMgaW4gMzItYml0ICopXG4gICAgICBsZXQgbWFzayA9IDB4RkZGRiBsc2wgMTYgbG9yIDB4RkZGRiBpblxuICAgICAgZnVuIG4gLT4gU29tZSAodG9faW50IG4gbGFuZCBtYXNrKVxuICB8IF8gLT5cbiAgICAgIGFzc2VydCBmYWxzZVxuXG5leHRlcm5hbCBmb3JtYXQgOiBzdHJpbmcgLT4gaW50MzIgLT4gc3RyaW5nID0gXCJjYW1sX2ludDMyX2Zvcm1hdFwiXG5sZXQgdG9fc3RyaW5nIG4gPSBmb3JtYXQgXCIlZFwiIG5cblxuZXh0ZXJuYWwgb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludDMyID0gXCJjYW1sX2ludDMyX29mX3N0cmluZ1wiXG5cbmxldCBvZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBleHBvc2UgYSBub24tcmFpc2luZyBwcmltaXRpdmUgZGlyZWN0bHkuICopXG4gIHRyeSBTb21lIChvZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG50eXBlIHQgPSBpbnQzMlxuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5sZXQgZXF1YWwgKHg6IHQpICh5OiB0KSA9IGNvbXBhcmUgeCB5ID0gMFxuXG5sZXQgdW5zaWduZWRfY29tcGFyZSBuIG0gPVxuICBjb21wYXJlIChzdWIgbiBtaW5faW50KSAoc3ViIG0gbWluX2ludClcblxubGV0IG1pbiB4IHkgOiB0ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5IDogdCA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbigqIFVuc2lnbmVkIGRpdmlzaW9uIGZyb20gc2lnbmVkIGRpdmlzaW9uIG9mIHRoZSBzYW1lXG4gICBiaXRuZXNzLiBTZWUgV2FycmVuIEpyLiwgSGVucnkgUy4gKDIwMTMpLiBIYWNrZXIncyBEZWxpZ2h0ICgyIGVkLiksIFNlYyA5LTMuXG4qKVxubGV0IHVuc2lnbmVkX2RpdiBuIGQgPVxuICBpZiBkIDwgemVybyB0aGVuXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSBuIGQgPCAwIHRoZW4gemVybyBlbHNlIG9uZVxuICBlbHNlXG4gICAgbGV0IHEgPSBzaGlmdF9sZWZ0IChkaXYgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgbiAxKSBkKSAxIGluXG4gICAgbGV0IHIgPSBzdWIgbiAobXVsIHEgZCkgaW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIHIgZCA+PSAwIHRoZW4gc3VjYyBxIGVsc2UgcVxuXG5sZXQgdW5zaWduZWRfcmVtIG4gZCA9XG4gIHN1YiBuIChtdWwgKHVuc2lnbmVkX2RpdiBuIGQpIGQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbSW50NjRdOiA2NC1iaXQgaW50ZWdlcnMgKilcblxuZXh0ZXJuYWwgbmVnIDogaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9uZWdcIlxuZXh0ZXJuYWwgYWRkIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9hZGRcIlxuZXh0ZXJuYWwgc3ViIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9zdWJcIlxuZXh0ZXJuYWwgbXVsIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9tdWxcIlxuZXh0ZXJuYWwgZGl2IDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9kaXZcIlxuZXh0ZXJuYWwgcmVtIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9tb2RcIlxuZXh0ZXJuYWwgbG9nYW5kIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9hbmRcIlxuZXh0ZXJuYWwgbG9nb3IgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X29yXCJcbmV4dGVybmFsIGxvZ3hvciA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfeG9yXCJcbmV4dGVybmFsIHNoaWZ0X2xlZnQgOiBpbnQ2NCAtPiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9sc2xcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQgOiBpbnQ2NCAtPiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9hc3JcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbCA6IGludDY0IC0+IGludCAtPiBpbnQ2NCA9IFwiJWludDY0X2xzclwiXG5leHRlcm5hbCBvZl9pbnQgOiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9vZl9pbnRcIlxuZXh0ZXJuYWwgdG9faW50IDogaW50NjQgLT4gaW50ID0gXCIlaW50NjRfdG9faW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gaW50NjRcbiAgPSBcImNhbWxfaW50NjRfb2ZfZmxvYXRcIiBcImNhbWxfaW50NjRfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0b19mbG9hdCA6IGludDY0IC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDY0X3RvX2Zsb2F0XCIgXCJjYW1sX2ludDY0X3RvX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgb2ZfaW50MzIgOiBpbnQzMiAtPiBpbnQ2NCA9IFwiJWludDY0X29mX2ludDMyXCJcbmV4dGVybmFsIHRvX2ludDMyIDogaW50NjQgLT4gaW50MzIgPSBcIiVpbnQ2NF90b19pbnQzMlwiXG5leHRlcm5hbCBvZl9uYXRpdmVpbnQgOiBuYXRpdmVpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9vZl9uYXRpdmVpbnRcIlxuZXh0ZXJuYWwgdG9fbmF0aXZlaW50IDogaW50NjQgLT4gbmF0aXZlaW50ID0gXCIlaW50NjRfdG9fbmF0aXZlaW50XCJcblxubGV0IHplcm8gPSAwTFxubGV0IG9uZSA9IDFMXG5sZXQgbWludXNfb25lID0gLTFMXG5sZXQgc3VjYyBuID0gYWRkIG4gMUxcbmxldCBwcmVkIG4gPSBzdWIgbiAxTFxubGV0IGFicyBuID0gaWYgbiA+PSAwTCB0aGVuIG4gZWxzZSBuZWcgblxubGV0IG1pbl9pbnQgPSAweDgwMDAwMDAwMDAwMDAwMDBMXG5sZXQgbWF4X2ludCA9IDB4N0ZGRkZGRkZGRkZGRkZGRkxcbmxldCBsb2dub3QgbiA9IGxvZ3hvciBuICgtMUwpXG5cbmxldCB1bnNpZ25lZF90b19pbnQgPVxuICBsZXQgbWF4X2ludCA9IG9mX2ludCBTdGRsaWIubWF4X2ludCBpblxuICBmdW4gbiAtPlxuICAgIGlmIGNvbXBhcmUgemVybyBuIDw9IDAgJiYgY29tcGFyZSBuIG1heF9pbnQgPD0gMCB0aGVuXG4gICAgICBTb21lICh0b19pbnQgbilcbiAgICBlbHNlXG4gICAgICBOb25lXG5cbmV4dGVybmFsIGZvcm1hdCA6IHN0cmluZyAtPiBpbnQ2NCAtPiBzdHJpbmcgPSBcImNhbWxfaW50NjRfZm9ybWF0XCJcbmxldCB0b19zdHJpbmcgbiA9IGZvcm1hdCBcIiVkXCIgblxuXG5leHRlcm5hbCBvZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50NjQgPSBcImNhbWxfaW50NjRfb2Zfc3RyaW5nXCJcblxubGV0IG9mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IGV4cG9zZSBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZSBkaXJlY3RseS4gKilcbiAgdHJ5IFNvbWUgKG9mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cblxuXG5leHRlcm5hbCBiaXRzX29mX2Zsb2F0IDogZmxvYXQgLT4gaW50NjRcbiAgPSBcImNhbWxfaW50NjRfYml0c19vZl9mbG9hdFwiIFwiY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvYXRfb2ZfYml0cyA6IGludDY0IC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNcIiBcImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c191bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cblxudHlwZSB0ID0gaW50NjRcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxubGV0IGVxdWFsICh4OiB0KSAoeTogdCkgPSBjb21wYXJlIHggeSA9IDBcblxubGV0IHVuc2lnbmVkX2NvbXBhcmUgbiBtID1cbiAgY29tcGFyZSAoc3ViIG4gbWluX2ludCkgKHN1YiBtIG1pbl9pbnQpXG5cbmxldCBtaW4geCB5IDogdCA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA6IHQgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG4oKiBVbnNpZ25lZCBkaXZpc2lvbiBmcm9tIHNpZ25lZCBkaXZpc2lvbiBvZiB0aGUgc2FtZVxuICAgYml0bmVzcy4gU2VlIFdhcnJlbiBKci4sIEhlbnJ5IFMuICgyMDEzKS4gSGFja2VyJ3MgRGVsaWdodCAoMiBlZC4pLCBTZWMgOS0zLlxuKilcbmxldCB1bnNpZ25lZF9kaXYgbiBkID1cbiAgaWYgZCA8IHplcm8gdGhlblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgbiBkIDwgMCB0aGVuIHplcm8gZWxzZSBvbmVcbiAgZWxzZVxuICAgIGxldCBxID0gc2hpZnRfbGVmdCAoZGl2IChzaGlmdF9yaWdodF9sb2dpY2FsIG4gMSkgZCkgMSBpblxuICAgIGxldCByID0gc3ViIG4gKG11bCBxIGQpIGluXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSByIGQgPj0gMCB0aGVuIHN1Y2MgcSBlbHNlIHFcblxubGV0IHVuc2lnbmVkX3JlbSBuIGQgPVxuICBzdWIgbiAobXVsICh1bnNpZ25lZF9kaXYgbiBkKSBkKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW05hdGl2ZWludF06IHByb2Nlc3Nvci1uYXRpdmUgaW50ZWdlcnMgKilcblxuZXh0ZXJuYWwgbmVnOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X25lZ1wiXG5leHRlcm5hbCBhZGQ6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2FkZFwiXG5leHRlcm5hbCBzdWI6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X3N1YlwiXG5leHRlcm5hbCBtdWw6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X211bFwiXG5leHRlcm5hbCBkaXY6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2RpdlwiXG5leHRlcm5hbCByZW06IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X21vZFwiXG5leHRlcm5hbCBsb2dhbmQ6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2FuZFwiXG5leHRlcm5hbCBsb2dvcjogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfb3JcIlxuZXh0ZXJuYWwgbG9neG9yOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF94b3JcIlxuZXh0ZXJuYWwgc2hpZnRfbGVmdDogbmF0aXZlaW50IC0+IGludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbHNsXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0OiBuYXRpdmVpbnQgLT4gaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9hc3JcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbDogbmF0aXZlaW50IC0+IGludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbHNyXCJcbmV4dGVybmFsIG9mX2ludDogaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9vZl9pbnRcIlxuZXh0ZXJuYWwgdG9faW50OiBuYXRpdmVpbnQgLT4gaW50ID0gXCIlbmF0aXZlaW50X3RvX2ludFwiXG5leHRlcm5hbCBvZl9mbG9hdCA6IGZsb2F0IC0+IG5hdGl2ZWludFxuICA9IFwiY2FtbF9uYXRpdmVpbnRfb2ZfZmxvYXRcIiBcImNhbWxfbmF0aXZlaW50X29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBuYXRpdmVpbnQgLT4gZmxvYXRcbiAgPSBcImNhbWxfbmF0aXZlaW50X3RvX2Zsb2F0XCIgXCJjYW1sX25hdGl2ZWludF90b19mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIG9mX2ludDMyOiBpbnQzMiAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfb2ZfaW50MzJcIlxuZXh0ZXJuYWwgdG9faW50MzI6IG5hdGl2ZWludCAtPiBpbnQzMiA9IFwiJW5hdGl2ZWludF90b19pbnQzMlwiXG5cbmxldCB6ZXJvID0gMG5cbmxldCBvbmUgPSAxblxubGV0IG1pbnVzX29uZSA9IC0xblxubGV0IHN1Y2MgbiA9IGFkZCBuIDFuXG5sZXQgcHJlZCBuID0gc3ViIG4gMW5cbmxldCBhYnMgbiA9IGlmIG4gPj0gMG4gdGhlbiBuIGVsc2UgbmVnIG5cbmxldCBzaXplID0gU3lzLndvcmRfc2l6ZVxubGV0IG1pbl9pbnQgPSBzaGlmdF9sZWZ0IDFuIChzaXplIC0gMSlcbmxldCBtYXhfaW50ID0gc3ViIG1pbl9pbnQgMW5cbmxldCBsb2dub3QgbiA9IGxvZ3hvciBuICgtMW4pXG5cbmxldCB1bnNpZ25lZF90b19pbnQgPVxuICBsZXQgbWF4X2ludCA9IG9mX2ludCBTdGRsaWIubWF4X2ludCBpblxuICBmdW4gbiAtPlxuICAgIGlmIGNvbXBhcmUgemVybyBuIDw9IDAgJiYgY29tcGFyZSBuIG1heF9pbnQgPD0gMCB0aGVuXG4gICAgICBTb21lICh0b19pbnQgbilcbiAgICBlbHNlXG4gICAgICBOb25lXG5cbmV4dGVybmFsIGZvcm1hdCA6IHN0cmluZyAtPiBuYXRpdmVpbnQgLT4gc3RyaW5nID0gXCJjYW1sX25hdGl2ZWludF9mb3JtYXRcIlxubGV0IHRvX3N0cmluZyBuID0gZm9ybWF0IFwiJWRcIiBuXG5cbmV4dGVybmFsIG9mX3N0cmluZzogc3RyaW5nIC0+IG5hdGl2ZWludCA9IFwiY2FtbF9uYXRpdmVpbnRfb2Zfc3RyaW5nXCJcblxubGV0IG9mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IGV4cG9zZSBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZSBkaXJlY3RseS4gKilcbiAgdHJ5IFNvbWUgKG9mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbnR5cGUgdCA9IG5hdGl2ZWludFxuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5sZXQgZXF1YWwgKHg6IHQpICh5OiB0KSA9IGNvbXBhcmUgeCB5ID0gMFxuXG5sZXQgdW5zaWduZWRfY29tcGFyZSBuIG0gPVxuICBjb21wYXJlIChzdWIgbiBtaW5faW50KSAoc3ViIG0gbWluX2ludClcblxubGV0IG1pbiB4IHkgOiB0ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5IDogdCA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbigqIFVuc2lnbmVkIGRpdmlzaW9uIGZyb20gc2lnbmVkIGRpdmlzaW9uIG9mIHRoZSBzYW1lXG4gICBiaXRuZXNzLiBTZWUgV2FycmVuIEpyLiwgSGVucnkgUy4gKDIwMTMpLiBIYWNrZXIncyBEZWxpZ2h0ICgyIGVkLiksIFNlYyA5LTMuXG4qKVxubGV0IHVuc2lnbmVkX2RpdiBuIGQgPVxuICBpZiBkIDwgemVybyB0aGVuXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSBuIGQgPCAwIHRoZW4gemVybyBlbHNlIG9uZVxuICBlbHNlXG4gICAgbGV0IHEgPSBzaGlmdF9sZWZ0IChkaXYgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgbiAxKSBkKSAxIGluXG4gICAgbGV0IHIgPSBzdWIgbiAobXVsIHEgZCkgaW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIHIgZCA+PSAwIHRoZW4gc3VjYyBxIGVsc2UgcVxuXG5sZXQgdW5zaWduZWRfcmVtIG4gZCA9XG4gIHN1YiBuIChtdWwgKHVuc2lnbmVkX2RpdiBuIGQpIGQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFRoZSBydW4tdGltZSBsaWJyYXJ5IGZvciBsZXhlcnMgZ2VuZXJhdGVkIGJ5IGNhbWxsZXggKilcblxudHlwZSBwb3NpdGlvbiA9IHtcbiAgcG9zX2ZuYW1lIDogc3RyaW5nO1xuICBwb3NfbG51bSA6IGludDtcbiAgcG9zX2JvbCA6IGludDtcbiAgcG9zX2NudW0gOiBpbnQ7XG59XG5cbmxldCBkdW1teV9wb3MgPSB7XG4gIHBvc19mbmFtZSA9IFwiXCI7XG4gIHBvc19sbnVtID0gMDtcbiAgcG9zX2JvbCA9IDA7XG4gIHBvc19jbnVtID0gLTE7XG59XG5cbnR5cGUgbGV4YnVmID1cbiAgeyByZWZpbGxfYnVmZiA6IGxleGJ1ZiAtPiB1bml0O1xuICAgIG11dGFibGUgbGV4X2J1ZmZlciA6IGJ5dGVzO1xuICAgIG11dGFibGUgbGV4X2J1ZmZlcl9sZW4gOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfYWJzX3BvcyA6IGludDtcbiAgICBtdXRhYmxlIGxleF9zdGFydF9wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfY3Vycl9wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfbGFzdF9wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfbGFzdF9hY3Rpb24gOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfZW9mX3JlYWNoZWQgOiBib29sO1xuICAgIG11dGFibGUgbGV4X21lbSA6IGludCBhcnJheTtcbiAgICBtdXRhYmxlIGxleF9zdGFydF9wIDogcG9zaXRpb247XG4gICAgbXV0YWJsZSBsZXhfY3Vycl9wIDogcG9zaXRpb247XG4gIH1cblxudHlwZSBsZXhfdGFibGVzID1cbiAgeyBsZXhfYmFzZTogc3RyaW5nO1xuICAgIGxleF9iYWNrdHJrOiBzdHJpbmc7XG4gICAgbGV4X2RlZmF1bHQ6IHN0cmluZztcbiAgICBsZXhfdHJhbnM6IHN0cmluZztcbiAgICBsZXhfY2hlY2s6IHN0cmluZztcbiAgICBsZXhfYmFzZV9jb2RlIDogc3RyaW5nO1xuICAgIGxleF9iYWNrdHJrX2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X2RlZmF1bHRfY29kZSA6IHN0cmluZztcbiAgICBsZXhfdHJhbnNfY29kZSA6IHN0cmluZztcbiAgICBsZXhfY2hlY2tfY29kZSA6IHN0cmluZztcbiAgICBsZXhfY29kZTogc3RyaW5nO31cblxuZXh0ZXJuYWwgY19lbmdpbmUgOiBsZXhfdGFibGVzIC0+IGludCAtPiBsZXhidWYgLT4gaW50ID0gXCJjYW1sX2xleF9lbmdpbmVcIlxuZXh0ZXJuYWwgY19uZXdfZW5naW5lIDogbGV4X3RhYmxlcyAtPiBpbnQgLT4gbGV4YnVmIC0+IGludFxuICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX25ld19sZXhfZW5naW5lXCJcblxubGV0IGVuZ2luZSB0Ymwgc3RhdGUgYnVmID1cbiAgbGV0IHJlc3VsdCA9IGNfZW5naW5lIHRibCBzdGF0ZSBidWYgaW5cbiAgaWYgcmVzdWx0ID49IDAgJiYgYnVmLmxleF9jdXJyX3AgIT0gZHVtbXlfcG9zIHRoZW4gYmVnaW5cbiAgICBidWYubGV4X3N0YXJ0X3AgPC0gYnVmLmxleF9jdXJyX3A7XG4gICAgYnVmLmxleF9jdXJyX3AgPC0ge2J1Zi5sZXhfY3Vycl9wXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGggcG9zX2NudW0gPSBidWYubGV4X2Fic19wb3MgKyBidWYubGV4X2N1cnJfcG9zfTtcbiAgZW5kO1xuICByZXN1bHRcblxuXG5sZXQgbmV3X2VuZ2luZSB0Ymwgc3RhdGUgYnVmID1cbiAgbGV0IHJlc3VsdCA9IGNfbmV3X2VuZ2luZSB0Ymwgc3RhdGUgYnVmIGluXG4gIGlmIHJlc3VsdCA+PSAwICYmIGJ1Zi5sZXhfY3Vycl9wICE9IGR1bW15X3BvcyB0aGVuIGJlZ2luXG4gICAgYnVmLmxleF9zdGFydF9wIDwtIGJ1Zi5sZXhfY3Vycl9wO1xuICAgIGJ1Zi5sZXhfY3Vycl9wIDwtIHtidWYubGV4X2N1cnJfcFxuICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHBvc19jbnVtID0gYnVmLmxleF9hYnNfcG9zICsgYnVmLmxleF9jdXJyX3Bvc307XG4gIGVuZDtcbiAgcmVzdWx0XG5cbmxldCBsZXhfcmVmaWxsIHJlYWRfZnVuIGF1eF9idWZmZXIgbGV4YnVmID1cbiAgbGV0IHJlYWQgPVxuICAgIHJlYWRfZnVuIGF1eF9idWZmZXIgKEJ5dGVzLmxlbmd0aCBhdXhfYnVmZmVyKSBpblxuICBsZXQgbiA9XG4gICAgaWYgcmVhZCA+IDBcbiAgICB0aGVuIHJlYWRcbiAgICBlbHNlIChsZXhidWYubGV4X2VvZl9yZWFjaGVkIDwtIHRydWU7IDApIGluXG4gICgqIEN1cnJlbnQgc3RhdGUgb2YgdGhlIGJ1ZmZlcjpcbiAgICAgICAgPC0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tPlxuICAgICAgICB8ICBqdW5rIHwgICAgICB2YWxpZCBkYXRhICAgICB8ICAganVuayAgICB8XG4gICAgICAgIF4gICAgICAgXiAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgICAgIF5cbiAgICAgICAgMCAgICBzdGFydF9wb3MgICAgICAgICAgICAgYnVmZmVyX2VuZCAgICBCeXRlcy5sZW5ndGggYnVmZmVyXG4gICopXG4gIGlmIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiArIG4gPiBCeXRlcy5sZW5ndGggbGV4YnVmLmxleF9idWZmZXIgdGhlbiBiZWdpblxuICAgICgqIFRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyICopXG4gICAgaWYgbGV4YnVmLmxleF9idWZmZXJfbGVuIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgKyBuXG4gICAgICAgPD0gQnl0ZXMubGVuZ3RoIGxleGJ1Zi5sZXhfYnVmZmVyXG4gICAgdGhlbiBiZWdpblxuICAgICAgKCogQnV0IHRoZXJlIGlzIGVub3VnaCBzcGFjZSBpZiB3ZSByZWNsYWltIHRoZSBqdW5rIGF0IHRoZSBiZWdpbm5pbmdcbiAgICAgICAgIG9mIHRoZSBidWZmZXIgKilcbiAgICAgIEJ5dGVzLmJsaXQgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3NcbiAgICAgICAgICAgICAgICAgIGxleGJ1Zi5sZXhfYnVmZmVyIDBcbiAgICAgICAgICAgICAgICAgIChsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBsZXhidWYubGV4X3N0YXJ0X3BvcylcbiAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgKCogV2UgbXVzdCBncm93IHRoZSBidWZmZXIuICBEb3VibGluZyBpdHMgc2l6ZSB3aWxsIHByb3ZpZGUgZW5vdWdoXG4gICAgICAgICBzcGFjZSBzaW5jZSBuIDw9IFN0cmluZy5sZW5ndGggYXV4X2J1ZmZlciA8PSBTdHJpbmcubGVuZ3RoIGJ1ZmZlci5cbiAgICAgICAgIFdhdGNoIG91dCBmb3Igc3RyaW5nIGxlbmd0aCBvdmVyZmxvdywgdGhvdWdoLiAqKVxuICAgICAgbGV0IG5ld2xlbiA9XG4gICAgICAgIEludC5taW4gKDIgKiBCeXRlcy5sZW5ndGggbGV4YnVmLmxleF9idWZmZXIpIFN5cy5tYXhfc3RyaW5nX2xlbmd0aCBpblxuICAgICAgaWYgbGV4YnVmLmxleF9idWZmZXJfbGVuIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgKyBuID4gbmV3bGVuXG4gICAgICB0aGVuIGZhaWx3aXRoIFwiTGV4aW5nLmxleF9yZWZpbGw6IGNhbm5vdCBncm93IGJ1ZmZlclwiO1xuICAgICAgbGV0IG5ld2J1ZiA9IEJ5dGVzLmNyZWF0ZSBuZXdsZW4gaW5cbiAgICAgICgqIENvcHkgdGhlIHZhbGlkIGRhdGEgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV3IGJ1ZmZlciAqKVxuICAgICAgQnl0ZXMuYmxpdCBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3Bvc1xuICAgICAgICAgICAgICAgICAgbmV3YnVmIDBcbiAgICAgICAgICAgICAgICAgIChsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBsZXhidWYubGV4X3N0YXJ0X3Bvcyk7XG4gICAgICBsZXhidWYubGV4X2J1ZmZlciA8LSBuZXdidWZcbiAgICBlbmQ7XG4gICAgKCogUmVhbGxvY2F0aW9uIG9yIG5vdCwgd2UgaGF2ZSBzaGlmdGVkIHRoZSBkYXRhIGxlZnQgYnlcbiAgICAgICBzdGFydF9wb3MgY2hhcmFjdGVyczsgdXBkYXRlIHRoZSBwb3NpdGlvbnMgKilcbiAgICBsZXQgcyA9IGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgbGV4YnVmLmxleF9hYnNfcG9zIDwtIGxleGJ1Zi5sZXhfYWJzX3BvcyArIHM7XG4gICAgbGV4YnVmLmxleF9jdXJyX3BvcyA8LSBsZXhidWYubGV4X2N1cnJfcG9zIC0gcztcbiAgICBsZXhidWYubGV4X3N0YXJ0X3BvcyA8LSAwO1xuICAgIGxleGJ1Zi5sZXhfbGFzdF9wb3MgPC0gbGV4YnVmLmxleF9sYXN0X3BvcyAtIHM7XG4gICAgbGV4YnVmLmxleF9idWZmZXJfbGVuIDwtIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIHMgO1xuICAgIGxldCB0ID0gbGV4YnVmLmxleF9tZW0gaW5cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIHQtMSBkb1xuICAgICAgbGV0IHYgPSB0LihpKSBpblxuICAgICAgaWYgdiA+PSAwIHRoZW5cbiAgICAgICAgdC4oaSkgPC0gdi1zXG4gICAgZG9uZVxuICBlbmQ7XG4gICgqIFRoZXJlIGlzIG5vdyBlbm91Z2ggc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyICopXG4gIEJ5dGVzLmJsaXQgYXV4X2J1ZmZlciAwIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiBuO1xuICBsZXhidWYubGV4X2J1ZmZlcl9sZW4gPC0gbGV4YnVmLmxleF9idWZmZXJfbGVuICsgblxuXG5sZXQgemVyb19wb3MgPSB7XG4gIHBvc19mbmFtZSA9IFwiXCI7XG4gIHBvc19sbnVtID0gMTtcbiAgcG9zX2JvbCA9IDA7XG4gIHBvc19jbnVtID0gMDtcbn1cblxubGV0IGZyb21fZnVuY3Rpb24gPyh3aXRoX3Bvc2l0aW9ucyA9IHRydWUpIGYgPVxuICB7IHJlZmlsbF9idWZmID0gbGV4X3JlZmlsbCBmIChCeXRlcy5jcmVhdGUgNTEyKTtcbiAgICBsZXhfYnVmZmVyID0gQnl0ZXMuY3JlYXRlIDEwMjQ7XG4gICAgbGV4X2J1ZmZlcl9sZW4gPSAwO1xuICAgIGxleF9hYnNfcG9zID0gMDtcbiAgICBsZXhfc3RhcnRfcG9zID0gMDtcbiAgICBsZXhfY3Vycl9wb3MgPSAwO1xuICAgIGxleF9sYXN0X3BvcyA9IDA7XG4gICAgbGV4X2xhc3RfYWN0aW9uID0gMDtcbiAgICBsZXhfbWVtID0gW3x8XTtcbiAgICBsZXhfZW9mX3JlYWNoZWQgPSBmYWxzZTtcbiAgICBsZXhfc3RhcnRfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gICAgbGV4X2N1cnJfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gIH1cblxubGV0IGZyb21fY2hhbm5lbCA/d2l0aF9wb3NpdGlvbnMgaWMgPVxuICBmcm9tX2Z1bmN0aW9uID93aXRoX3Bvc2l0aW9ucyAoZnVuIGJ1ZiBuIC0+IGlucHV0IGljIGJ1ZiAwIG4pXG5cbmxldCBmcm9tX3N0cmluZyA/KHdpdGhfcG9zaXRpb25zID0gdHJ1ZSkgcyA9XG4gIHsgcmVmaWxsX2J1ZmYgPSAoZnVuIGxleGJ1ZiAtPiBsZXhidWYubGV4X2VvZl9yZWFjaGVkIDwtIHRydWUpO1xuICAgIGxleF9idWZmZXIgPSBCeXRlcy5vZl9zdHJpbmcgczsgKCogaGF2ZSB0byBtYWtlIGEgY29weSBmb3IgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCB1bnNhZmUtc3RyaW5nIG1vZGUgKilcbiAgICBsZXhfYnVmZmVyX2xlbiA9IFN0cmluZy5sZW5ndGggcztcbiAgICBsZXhfYWJzX3BvcyA9IDA7XG4gICAgbGV4X3N0YXJ0X3BvcyA9IDA7XG4gICAgbGV4X2N1cnJfcG9zID0gMDtcbiAgICBsZXhfbGFzdF9wb3MgPSAwO1xuICAgIGxleF9sYXN0X2FjdGlvbiA9IDA7XG4gICAgbGV4X21lbSA9IFt8fF07XG4gICAgbGV4X2VvZl9yZWFjaGVkID0gdHJ1ZTtcbiAgICBsZXhfc3RhcnRfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gICAgbGV4X2N1cnJfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gIH1cblxubGV0IHNldF9wb3NpdGlvbiBsZXhidWYgcG9zaXRpb24gPVxuICBsZXhidWYubGV4X2N1cnJfcCAgPC0ge3Bvc2l0aW9uIHdpdGggcG9zX2ZuYW1lID0gbGV4YnVmLmxleF9jdXJyX3AucG9zX2ZuYW1lfTtcbiAgbGV4YnVmLmxleF9hYnNfcG9zIDwtIHBvc2l0aW9uLnBvc19jbnVtXG5cbmxldCBzZXRfZmlsZW5hbWUgbGV4YnVmIGZuYW1lID1cbiAgbGV4YnVmLmxleF9jdXJyX3AgPC0ge2xleGJ1Zi5sZXhfY3Vycl9wIHdpdGggcG9zX2ZuYW1lID0gZm5hbWV9XG5cbmxldCB3aXRoX3Bvc2l0aW9ucyBsZXhidWYgPSBsZXhidWYubGV4X2N1cnJfcCAhPSBkdW1teV9wb3NcblxubGV0IGxleGVtZSBsZXhidWYgPVxuICBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gIEJ5dGVzLnN1Yl9zdHJpbmcgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgbGVuXG5cbmxldCBzdWJfbGV4ZW1lIGxleGJ1ZiBpMSBpMiA9XG4gIGxldCBsZW4gPSBpMi1pMSBpblxuICBCeXRlcy5zdWJfc3RyaW5nIGxleGJ1Zi5sZXhfYnVmZmVyIGkxIGxlblxuXG5sZXQgc3ViX2xleGVtZV9vcHQgbGV4YnVmIGkxIGkyID1cbiAgaWYgaTEgPj0gMCB0aGVuIGJlZ2luXG4gICAgbGV0IGxlbiA9IGkyLWkxIGluXG4gICAgU29tZSAoQnl0ZXMuc3ViX3N0cmluZyBsZXhidWYubGV4X2J1ZmZlciBpMSBsZW4pXG4gIGVuZCBlbHNlIGJlZ2luXG4gICAgTm9uZVxuICBlbmRcblxubGV0IHN1Yl9sZXhlbWVfY2hhciBsZXhidWYgaSA9IEJ5dGVzLmdldCBsZXhidWYubGV4X2J1ZmZlciBpXG5cbmxldCBzdWJfbGV4ZW1lX2NoYXJfb3B0IGxleGJ1ZiBpID1cbiAgaWYgaSA+PSAwIHRoZW5cbiAgICBTb21lIChCeXRlcy5nZXQgbGV4YnVmLmxleF9idWZmZXIgaSlcbiAgZWxzZVxuICAgIE5vbmVcblxuXG5sZXQgbGV4ZW1lX2NoYXIgbGV4YnVmIGkgPVxuICBCeXRlcy5nZXQgbGV4YnVmLmxleF9idWZmZXIgKGxleGJ1Zi5sZXhfc3RhcnRfcG9zICsgaSlcblxubGV0IGxleGVtZV9zdGFydCBsZXhidWYgPSBsZXhidWYubGV4X3N0YXJ0X3AucG9zX2NudW1cbmxldCBsZXhlbWVfZW5kIGxleGJ1ZiA9IGxleGJ1Zi5sZXhfY3Vycl9wLnBvc19jbnVtXG5cbmxldCBsZXhlbWVfc3RhcnRfcCBsZXhidWYgPSBsZXhidWYubGV4X3N0YXJ0X3BcbmxldCBsZXhlbWVfZW5kX3AgbGV4YnVmID0gbGV4YnVmLmxleF9jdXJyX3BcblxubGV0IG5ld19saW5lIGxleGJ1ZiA9XG4gIGxldCBsY3AgPSBsZXhidWYubGV4X2N1cnJfcCBpblxuICBpZiBsY3AgIT0gZHVtbXlfcG9zIHRoZW5cbiAgICBsZXhidWYubGV4X2N1cnJfcCA8LVxuICAgICAgeyBsY3Agd2l0aFxuICAgICAgICBwb3NfbG51bSA9IGxjcC5wb3NfbG51bSArIDE7XG4gICAgICAgIHBvc19ib2wgPSBsY3AucG9zX2NudW07XG4gICAgICB9XG5cblxuXG4oKiBEaXNjYXJkIGRhdGEgbGVmdCBpbiBsZXhlciBidWZmZXIuICopXG5cbmxldCBmbHVzaF9pbnB1dCBsYiA9XG4gIGxiLmxleF9jdXJyX3BvcyA8LSAwO1xuICBsYi5sZXhfYWJzX3BvcyA8LSAwO1xuICBsZXQgbGNwID0gbGIubGV4X2N1cnJfcCBpblxuICBpZiBsY3AgIT0gZHVtbXlfcG9zIHRoZW5cbiAgICBsYi5sZXhfY3Vycl9wIDwtIHt6ZXJvX3BvcyB3aXRoIHBvc19mbmFtZSA9IGxjcC5wb3NfZm5hbWV9O1xuICBsYi5sZXhfYnVmZmVyX2xlbiA8LSAwO1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBUaGUgcGFyc2luZyBlbmdpbmUgKilcblxub3BlbiBMZXhpbmdcblxuKCogSW50ZXJuYWwgaW50ZXJmYWNlIHRvIHRoZSBwYXJzaW5nIGVuZ2luZSAqKVxuXG50eXBlIHBhcnNlcl9lbnYgPVxuICB7IG11dGFibGUgc19zdGFjayA6IGludCBhcnJheTsgICAgICAgICgqIFN0YXRlcyAqKVxuICAgIG11dGFibGUgdl9zdGFjayA6IE9iai50IGFycmF5OyAgICAgICgqIFNlbWFudGljIGF0dHJpYnV0ZXMgKilcbiAgICBtdXRhYmxlIHN5bWJfc3RhcnRfc3RhY2sgOiBwb3NpdGlvbiBhcnJheTsgKCogU3RhcnQgcG9zaXRpb25zICopXG4gICAgbXV0YWJsZSBzeW1iX2VuZF9zdGFjayA6IHBvc2l0aW9uIGFycmF5OyAgICgqIEVuZCBwb3NpdGlvbnMgKilcbiAgICBtdXRhYmxlIHN0YWNrc2l6ZSA6IGludDsgICAgICAgICAgICAoKiBTaXplIG9mIHRoZSBzdGFja3MgKilcbiAgICBtdXRhYmxlIHN0YWNrYmFzZSA6IGludDsgICAgICAgICAgICAoKiBCYXNlIHNwIGZvciBjdXJyZW50IHBhcnNlICopXG4gICAgbXV0YWJsZSBjdXJyX2NoYXIgOiBpbnQ7ICAgICAgICAgICAgKCogTGFzdCB0b2tlbiByZWFkICopXG4gICAgbXV0YWJsZSBsdmFsIDogT2JqLnQ7ICAgICAgICAgICAgICAgKCogSXRzIHNlbWFudGljIGF0dHJpYnV0ZSAqKVxuICAgIG11dGFibGUgc3ltYl9zdGFydCA6IHBvc2l0aW9uOyAgICAgICgqIFN0YXJ0IHBvcy4gb2YgdGhlIGN1cnJlbnQgc3ltYm9sKilcbiAgICBtdXRhYmxlIHN5bWJfZW5kIDogcG9zaXRpb247ICAgICAgICAoKiBFbmQgcG9zLiBvZiB0aGUgY3VycmVudCBzeW1ib2wgKilcbiAgICBtdXRhYmxlIGFzcCA6IGludDsgICAgICAgICAgICAgICAgICAoKiBUaGUgc3RhY2sgcG9pbnRlciBmb3IgYXR0cmlidXRlcyAqKVxuICAgIG11dGFibGUgcnVsZV9sZW4gOiBpbnQ7ICAgICAgICAgICAgICgqIE51bWJlciBvZiByaHMgaXRlbXMgaW4gdGhlIHJ1bGUgKilcbiAgICBtdXRhYmxlIHJ1bGVfbnVtYmVyIDogaW50OyAgICAgICAgICAoKiBSdWxlIG51bWJlciB0byByZWR1Y2UgYnkgKilcbiAgICBtdXRhYmxlIHNwIDogaW50OyAgICAgICAgICAgICAgICAgICAoKiBTYXZlZCBzcCBmb3IgcGFyc2VfZW5naW5lICopXG4gICAgbXV0YWJsZSBzdGF0ZSA6IGludDsgICAgICAgICAgICAgICAgKCogU2F2ZWQgc3RhdGUgZm9yIHBhcnNlX2VuZ2luZSAqKVxuICAgIG11dGFibGUgZXJyZmxhZyA6IGludCB9ICAgICAgICAgICAgICgqIFNhdmVkIGVycm9yIGZsYWcgZm9yIHBhcnNlX2VuZ2luZSAqKVxuW0BAd2FybmluZyBcIi11bnVzZWQtZmllbGRcIl1cblxudHlwZSBwYXJzZV90YWJsZXMgPVxuICB7IGFjdGlvbnMgOiAocGFyc2VyX2VudiAtPiBPYmoudCkgYXJyYXk7XG4gICAgdHJhbnNsX2NvbnN0IDogaW50IGFycmF5O1xuICAgIHRyYW5zbF9ibG9jayA6IGludCBhcnJheTtcbiAgICBsaHMgOiBzdHJpbmc7XG4gICAgbGVuIDogc3RyaW5nO1xuICAgIGRlZnJlZCA6IHN0cmluZztcbiAgICBkZ290byA6IHN0cmluZztcbiAgICBzaW5kZXggOiBzdHJpbmc7XG4gICAgcmluZGV4IDogc3RyaW5nO1xuICAgIGdpbmRleCA6IHN0cmluZztcbiAgICB0YWJsZXNpemUgOiBpbnQ7XG4gICAgdGFibGUgOiBzdHJpbmc7XG4gICAgY2hlY2sgOiBzdHJpbmc7XG4gICAgZXJyb3JfZnVuY3Rpb24gOiBzdHJpbmcgLT4gdW5pdDtcbiAgICBuYW1lc19jb25zdCA6IHN0cmluZztcbiAgICBuYW1lc19ibG9jayA6IHN0cmluZyB9XG5cbmV4Y2VwdGlvbiBZWWV4aXQgb2YgT2JqLnRcbmV4Y2VwdGlvbiBQYXJzZV9lcnJvclxuXG50eXBlIHBhcnNlcl9pbnB1dCA9XG4gICAgU3RhcnRcbiAgfCBUb2tlbl9yZWFkXG4gIHwgU3RhY2tzX2dyb3duXzFcbiAgfCBTdGFja3NfZ3Jvd25fMlxuICB8IFNlbWFudGljX2FjdGlvbl9jb21wdXRlZFxuICB8IEVycm9yX2RldGVjdGVkXG5cbnR5cGUgcGFyc2VyX291dHB1dCA9XG4gICAgUmVhZF90b2tlblxuICB8IFJhaXNlX3BhcnNlX2Vycm9yXG4gIHwgR3Jvd19zdGFja3NfMVxuICB8IEdyb3dfc3RhY2tzXzJcbiAgfCBDb21wdXRlX3NlbWFudGljX2FjdGlvblxuICB8IENhbGxfZXJyb3JfZnVuY3Rpb25cblxuKCogdG8gYXZvaWQgd2FybmluZ3MgKilcbmxldCBfID0gW1JlYWRfdG9rZW47IFJhaXNlX3BhcnNlX2Vycm9yOyBHcm93X3N0YWNrc18xOyBHcm93X3N0YWNrc18yO1xuICAgICAgICAgQ29tcHV0ZV9zZW1hbnRpY19hY3Rpb247IENhbGxfZXJyb3JfZnVuY3Rpb25dXG5cbmV4dGVybmFsIHBhcnNlX2VuZ2luZSA6XG4gICAgcGFyc2VfdGFibGVzIC0+IHBhcnNlcl9lbnYgLT4gcGFyc2VyX2lucHV0IC0+IE9iai50IC0+IHBhcnNlcl9vdXRwdXRcbiAgICA9IFwiY2FtbF9wYXJzZV9lbmdpbmVcIlxuXG5leHRlcm5hbCBzZXRfdHJhY2U6IGJvb2wgLT4gYm9vbFxuICAgID0gXCJjYW1sX3NldF9wYXJzZXJfdHJhY2VcIlxuXG5sZXQgZW52ID1cbiAgeyBzX3N0YWNrID0gQXJyYXkubWFrZSAxMDAgMDtcbiAgICB2X3N0YWNrID0gQXJyYXkubWFrZSAxMDAgKE9iai5yZXByICgpKTtcbiAgICBzeW1iX3N0YXJ0X3N0YWNrID0gQXJyYXkubWFrZSAxMDAgZHVtbXlfcG9zO1xuICAgIHN5bWJfZW5kX3N0YWNrID0gQXJyYXkubWFrZSAxMDAgZHVtbXlfcG9zO1xuICAgIHN0YWNrc2l6ZSA9IDEwMDtcbiAgICBzdGFja2Jhc2UgPSAwO1xuICAgIGN1cnJfY2hhciA9IDA7XG4gICAgbHZhbCA9IE9iai5yZXByICgpO1xuICAgIHN5bWJfc3RhcnQgPSBkdW1teV9wb3M7XG4gICAgc3ltYl9lbmQgPSBkdW1teV9wb3M7XG4gICAgYXNwID0gMDtcbiAgICBydWxlX2xlbiA9IDA7XG4gICAgcnVsZV9udW1iZXIgPSAwO1xuICAgIHNwID0gMDtcbiAgICBzdGF0ZSA9IDA7XG4gICAgZXJyZmxhZyA9IDAgfVxuXG5sZXQgZ3Jvd19zdGFja3MoKSA9XG4gIGxldCBvbGRzaXplID0gZW52LnN0YWNrc2l6ZSBpblxuICBsZXQgbmV3c2l6ZSA9IG9sZHNpemUgKiAyIGluXG4gIGxldCBuZXdfcyA9IEFycmF5Lm1ha2UgbmV3c2l6ZSAwXG4gIGFuZCBuZXdfdiA9IEFycmF5Lm1ha2UgbmV3c2l6ZSAoT2JqLnJlcHIgKCkpXG4gIGFuZCBuZXdfc3RhcnQgPSBBcnJheS5tYWtlIG5ld3NpemUgZHVtbXlfcG9zXG4gIGFuZCBuZXdfZW5kID0gQXJyYXkubWFrZSBuZXdzaXplIGR1bW15X3BvcyBpblxuICAgIEFycmF5LmJsaXQgZW52LnNfc3RhY2sgMCBuZXdfcyAwIG9sZHNpemU7XG4gICAgZW52LnNfc3RhY2sgPC0gbmV3X3M7XG4gICAgQXJyYXkuYmxpdCBlbnYudl9zdGFjayAwIG5ld192IDAgb2xkc2l6ZTtcbiAgICBlbnYudl9zdGFjayA8LSBuZXdfdjtcbiAgICBBcnJheS5ibGl0IGVudi5zeW1iX3N0YXJ0X3N0YWNrIDAgbmV3X3N0YXJ0IDAgb2xkc2l6ZTtcbiAgICBlbnYuc3ltYl9zdGFydF9zdGFjayA8LSBuZXdfc3RhcnQ7XG4gICAgQXJyYXkuYmxpdCBlbnYuc3ltYl9lbmRfc3RhY2sgMCBuZXdfZW5kIDAgb2xkc2l6ZTtcbiAgICBlbnYuc3ltYl9lbmRfc3RhY2sgPC0gbmV3X2VuZDtcbiAgICBlbnYuc3RhY2tzaXplIDwtIG5ld3NpemVcblxubGV0IGNsZWFyX3BhcnNlcigpID1cbiAgQXJyYXkuZmlsbCBlbnYudl9zdGFjayAwIGVudi5zdGFja3NpemUgKE9iai5yZXByICgpKTtcbiAgZW52Lmx2YWwgPC0gT2JqLnJlcHIgKClcblxubGV0IGN1cnJlbnRfbG9va2FoZWFkX2Z1biA9IHJlZiAoZnVuIChfIDogT2JqLnQpIC0+IGZhbHNlKVxuXG5sZXQgeXlwYXJzZSB0YWJsZXMgc3RhcnQgbGV4ZXIgbGV4YnVmID1cbiAgbGV0IHJlYyBsb29wIGNtZCBhcmcgPVxuICAgIG1hdGNoIHBhcnNlX2VuZ2luZSB0YWJsZXMgZW52IGNtZCBhcmcgd2l0aFxuICAgICAgUmVhZF90b2tlbiAtPlxuICAgICAgICBsZXQgdCA9IE9iai5yZXByKGxleGVyIGxleGJ1ZikgaW5cbiAgICAgICAgZW52LnN5bWJfc3RhcnQgPC0gbGV4YnVmLmxleF9zdGFydF9wO1xuICAgICAgICBlbnYuc3ltYl9lbmQgPC0gbGV4YnVmLmxleF9jdXJyX3A7XG4gICAgICAgIGxvb3AgVG9rZW5fcmVhZCB0XG4gICAgfCBSYWlzZV9wYXJzZV9lcnJvciAtPlxuICAgICAgICByYWlzZSBQYXJzZV9lcnJvclxuICAgIHwgQ29tcHV0ZV9zZW1hbnRpY19hY3Rpb24gLT5cbiAgICAgICAgbGV0IChhY3Rpb24sIHZhbHVlKSA9XG4gICAgICAgICAgdHJ5XG4gICAgICAgICAgICAoU2VtYW50aWNfYWN0aW9uX2NvbXB1dGVkLCB0YWJsZXMuYWN0aW9ucy4oZW52LnJ1bGVfbnVtYmVyKSBlbnYpXG4gICAgICAgICAgd2l0aCBQYXJzZV9lcnJvciAtPlxuICAgICAgICAgICAgKEVycm9yX2RldGVjdGVkLCBPYmoucmVwciAoKSkgaW5cbiAgICAgICAgbG9vcCBhY3Rpb24gdmFsdWVcbiAgICB8IEdyb3dfc3RhY2tzXzEgLT5cbiAgICAgICAgZ3Jvd19zdGFja3MoKTsgbG9vcCBTdGFja3NfZ3Jvd25fMSAoT2JqLnJlcHIgKCkpXG4gICAgfCBHcm93X3N0YWNrc18yIC0+XG4gICAgICAgIGdyb3dfc3RhY2tzKCk7IGxvb3AgU3RhY2tzX2dyb3duXzIgKE9iai5yZXByICgpKVxuICAgIHwgQ2FsbF9lcnJvcl9mdW5jdGlvbiAtPlxuICAgICAgICB0YWJsZXMuZXJyb3JfZnVuY3Rpb24gXCJzeW50YXggZXJyb3JcIjtcbiAgICAgICAgbG9vcCBFcnJvcl9kZXRlY3RlZCAoT2JqLnJlcHIgKCkpIGluXG4gIGxldCBpbml0X2FzcCA9IGVudi5hc3BcbiAgYW5kIGluaXRfc3AgPSBlbnYuc3BcbiAgYW5kIGluaXRfc3RhY2tiYXNlID0gZW52LnN0YWNrYmFzZVxuICBhbmQgaW5pdF9zdGF0ZSA9IGVudi5zdGF0ZVxuICBhbmQgaW5pdF9jdXJyX2NoYXIgPSBlbnYuY3Vycl9jaGFyXG4gIGFuZCBpbml0X2x2YWwgPSBlbnYubHZhbFxuICBhbmQgaW5pdF9lcnJmbGFnID0gZW52LmVycmZsYWcgaW5cbiAgZW52LnN0YWNrYmFzZSA8LSBlbnYuc3AgKyAxO1xuICBlbnYuY3Vycl9jaGFyIDwtIHN0YXJ0O1xuICBlbnYuc3ltYl9lbmQgPC0gbGV4YnVmLmxleF9jdXJyX3A7XG4gIHRyeVxuICAgIGxvb3AgU3RhcnQgKE9iai5yZXByICgpKVxuICB3aXRoIGV4biAtPlxuICAgIGxldCBjdXJyX2NoYXIgPSBlbnYuY3Vycl9jaGFyIGluXG4gICAgZW52LmFzcCA8LSBpbml0X2FzcDtcbiAgICBlbnYuc3AgPC0gaW5pdF9zcDtcbiAgICBlbnYuc3RhY2tiYXNlIDwtIGluaXRfc3RhY2tiYXNlO1xuICAgIGVudi5zdGF0ZSA8LSBpbml0X3N0YXRlO1xuICAgIGVudi5jdXJyX2NoYXIgPC0gaW5pdF9jdXJyX2NoYXI7XG4gICAgZW52Lmx2YWwgPC0gaW5pdF9sdmFsO1xuICAgIGVudi5lcnJmbGFnIDwtIGluaXRfZXJyZmxhZztcbiAgICBtYXRjaCBleG4gd2l0aFxuICAgICAgWVlleGl0IHYgLT5cbiAgICAgICAgT2JqLm1hZ2ljIHZcbiAgICB8IF8gLT5cbiAgICAgICAgY3VycmVudF9sb29rYWhlYWRfZnVuIDo9XG4gICAgICAgICAgKGZ1biB0b2sgLT5cbiAgICAgICAgICAgIGlmIE9iai5pc19ibG9jayB0b2tcbiAgICAgICAgICAgIHRoZW4gdGFibGVzLnRyYW5zbF9ibG9jay4oT2JqLnRhZyB0b2spID0gY3Vycl9jaGFyXG4gICAgICAgICAgICBlbHNlIHRhYmxlcy50cmFuc2xfY29uc3QuKE9iai5tYWdpYyB0b2spID0gY3Vycl9jaGFyKTtcbiAgICAgICAgcmFpc2UgZXhuXG5cbmxldCBwZWVrX3ZhbCBlbnYgbiA9XG4gIE9iai5tYWdpYyBlbnYudl9zdGFjay4oZW52LmFzcCAtIG4pXG5cbmxldCBzeW1ib2xfc3RhcnRfcG9zICgpID1cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPD0gMCB0aGVuIGVudi5zeW1iX2VuZF9zdGFjay4oZW52LmFzcClcbiAgICBlbHNlIGJlZ2luXG4gICAgICBsZXQgc3QgPSBlbnYuc3ltYl9zdGFydF9zdGFjay4oZW52LmFzcCAtIGkgKyAxKSBpblxuICAgICAgbGV0IGVuID0gZW52LnN5bWJfZW5kX3N0YWNrLihlbnYuYXNwIC0gaSArIDEpIGluXG4gICAgICBpZiBzdCA8PiBlbiB0aGVuIHN0IGVsc2UgbG9vcCAoaSAtIDEpXG4gICAgZW5kXG4gIGluXG4gIGxvb3AgZW52LnJ1bGVfbGVuXG5cbmxldCBzeW1ib2xfZW5kX3BvcyAoKSA9IGVudi5zeW1iX2VuZF9zdGFjay4oZW52LmFzcClcbmxldCByaHNfc3RhcnRfcG9zIG4gPSBlbnYuc3ltYl9zdGFydF9zdGFjay4oZW52LmFzcCAtIChlbnYucnVsZV9sZW4gLSBuKSlcbmxldCByaHNfZW5kX3BvcyBuID0gZW52LnN5bWJfZW5kX3N0YWNrLihlbnYuYXNwIC0gKGVudi5ydWxlX2xlbiAtIG4pKVxuXG5sZXQgc3ltYm9sX3N0YXJ0ICgpID0gKHN5bWJvbF9zdGFydF9wb3MgKCkpLnBvc19jbnVtXG5sZXQgc3ltYm9sX2VuZCAoKSA9IChzeW1ib2xfZW5kX3BvcyAoKSkucG9zX2NudW1cbmxldCByaHNfc3RhcnQgbiA9IChyaHNfc3RhcnRfcG9zIG4pLnBvc19jbnVtXG5sZXQgcmhzX2VuZCBuID0gKHJoc19lbmRfcG9zIG4pLnBvc19jbnVtXG5cbmxldCBpc19jdXJyZW50X2xvb2thaGVhZCB0b2sgPVxuICAoIWN1cnJlbnRfbG9va2FoZWFkX2Z1bikoT2JqLnJlcHIgdG9rKVxuXG5sZXQgcGFyc2VfZXJyb3IgKF8gOiBzdHJpbmcpID0gKClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogU2V0cyBvdmVyIG9yZGVyZWQgdHlwZXMgKilcblxubW9kdWxlIHR5cGUgT3JkZXJlZFR5cGUgPVxuICBzaWdcbiAgICB0eXBlIHRcbiAgICB2YWwgY29tcGFyZTogdCAtPiB0IC0+IGludFxuICBlbmRcblxubW9kdWxlIHR5cGUgUyA9XG4gIHNpZ1xuICAgIHR5cGUgZWx0XG4gICAgdHlwZSB0XG4gICAgdmFsIGVtcHR5OiB0XG4gICAgdmFsIGlzX2VtcHR5OiB0IC0+IGJvb2xcbiAgICB2YWwgbWVtOiBlbHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGFkZDogZWx0IC0+IHQgLT4gdFxuICAgIHZhbCBzaW5nbGV0b246IGVsdCAtPiB0XG4gICAgdmFsIHJlbW92ZTogZWx0IC0+IHQgLT4gdFxuICAgIHZhbCB1bmlvbjogdCAtPiB0IC0+IHRcbiAgICB2YWwgaW50ZXI6IHQgLT4gdCAtPiB0XG4gICAgdmFsIGRpc2pvaW50OiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBkaWZmOiB0IC0+IHQgLT4gdFxuICAgIHZhbCBjb21wYXJlOiB0IC0+IHQgLT4gaW50XG4gICAgdmFsIGVxdWFsOiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBzdWJzZXQ6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGl0ZXI6IChlbHQgLT4gdW5pdCkgLT4gdCAtPiB1bml0XG4gICAgdmFsIG1hcDogKGVsdCAtPiBlbHQpIC0+IHQgLT4gdFxuICAgIHZhbCBmb2xkOiAoZWx0IC0+ICdhIC0+ICdhKSAtPiB0IC0+ICdhIC0+ICdhXG4gICAgdmFsIGZvcl9hbGw6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBib29sXG4gICAgdmFsIGV4aXN0czogKGVsdCAtPiBib29sKSAtPiB0IC0+IGJvb2xcbiAgICB2YWwgZmlsdGVyOiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gdFxuICAgIHZhbCBmaWx0ZXJfbWFwOiAoZWx0IC0+IGVsdCBvcHRpb24pIC0+IHQgLT4gdFxuICAgIHZhbCBwYXJ0aXRpb246IChlbHQgLT4gYm9vbCkgLT4gdCAtPiB0ICogdFxuICAgIHZhbCBjYXJkaW5hbDogdCAtPiBpbnRcbiAgICB2YWwgZWxlbWVudHM6IHQgLT4gZWx0IGxpc3RcbiAgICB2YWwgbWluX2VsdDogdCAtPiBlbHRcbiAgICB2YWwgbWluX2VsdF9vcHQ6IHQgLT4gZWx0IG9wdGlvblxuICAgIHZhbCBtYXhfZWx0OiB0IC0+IGVsdFxuICAgIHZhbCBtYXhfZWx0X29wdDogdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIGNob29zZTogdCAtPiBlbHRcbiAgICB2YWwgY2hvb3NlX29wdDogdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIHNwbGl0OiBlbHQgLT4gdCAtPiB0ICogYm9vbCAqIHRcbiAgICB2YWwgZmluZDogZWx0IC0+IHQgLT4gZWx0XG4gICAgdmFsIGZpbmRfb3B0OiBlbHQgLT4gdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIGZpbmRfZmlyc3Q6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBlbHRcbiAgICB2YWwgZmluZF9maXJzdF9vcHQ6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIGZpbmRfbGFzdDogKGVsdCAtPiBib29sKSAtPiB0IC0+IGVsdFxuICAgIHZhbCBmaW5kX2xhc3Rfb3B0OiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gZWx0IG9wdGlvblxuICAgIHZhbCBvZl9saXN0OiBlbHQgbGlzdCAtPiB0XG4gICAgdmFsIHRvX3NlcV9mcm9tIDogZWx0IC0+IHQgLT4gZWx0IFNlcS50XG4gICAgdmFsIHRvX3NlcSA6IHQgLT4gZWx0IFNlcS50XG4gICAgdmFsIHRvX3Jldl9zZXEgOiB0IC0+IGVsdCBTZXEudFxuICAgIHZhbCBhZGRfc2VxIDogZWx0IFNlcS50IC0+IHQgLT4gdFxuICAgIHZhbCBvZl9zZXEgOiBlbHQgU2VxLnQgLT4gdFxuICBlbmRcblxubW9kdWxlIE1ha2UoT3JkOiBPcmRlcmVkVHlwZSkgPVxuICBzdHJ1Y3RcbiAgICB0eXBlIGVsdCA9IE9yZC50XG4gICAgdHlwZSB0ID0gRW1wdHkgfCBOb2RlIG9mIHtsOnQ7IHY6ZWx0OyByOnQ7IGg6aW50fVxuXG4gICAgKCogU2V0cyBhcmUgcmVwcmVzZW50ZWQgYnkgYmFsYW5jZWQgYmluYXJ5IHRyZWVzICh0aGUgaGVpZ2h0cyBvZiB0aGVcbiAgICAgICBjaGlsZHJlbiBkaWZmZXIgYnkgYXQgbW9zdCAyICopXG5cbiAgICBsZXQgaGVpZ2h0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gMFxuICAgICAgfCBOb2RlIHtofSAtPiBoXG5cbiAgICAoKiBDcmVhdGVzIGEgbmV3IG5vZGUgd2l0aCBsZWZ0IHNvbiBsLCB2YWx1ZSB2IGFuZCByaWdodCBzb24gci5cbiAgICAgICBXZSBtdXN0IGhhdmUgYWxsIGVsZW1lbnRzIG9mIGwgPCB2IDwgYWxsIGVsZW1lbnRzIG9mIHIuXG4gICAgICAgbCBhbmQgciBtdXN0IGJlIGJhbGFuY2VkIGFuZCB8IGhlaWdodCBsIC0gaGVpZ2h0IHIgfCA8PSAyLlxuICAgICAgIElubGluZSBleHBhbnNpb24gb2YgaGVpZ2h0IGZvciBiZXR0ZXIgc3BlZWQuICopXG5cbiAgICBsZXQgY3JlYXRlIGwgdiByID1cbiAgICAgIGxldCBobCA9IG1hdGNoIGwgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgbGV0IGhyID0gbWF0Y2ggciB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBOb2Rle2w7IHY7IHI7IGg9KGlmIGhsID49IGhyIHRoZW4gaGwgKyAxIGVsc2UgaHIgKyAxKX1cblxuICAgICgqIFNhbWUgYXMgY3JlYXRlLCBidXQgcGVyZm9ybXMgb25lIHN0ZXAgb2YgcmViYWxhbmNpbmcgaWYgbmVjZXNzYXJ5LlxuICAgICAgIEFzc3VtZXMgbCBhbmQgciBiYWxhbmNlZCBhbmQgfCBoZWlnaHQgbCAtIGhlaWdodCByIHwgPD0gMy5cbiAgICAgICBJbmxpbmUgZXhwYW5zaW9uIG9mIGNyZWF0ZSBmb3IgYmV0dGVyIHNwZWVkIGluIHRoZSBtb3N0IGZyZXF1ZW50IGNhc2VcbiAgICAgICB3aGVyZSBubyByZWJhbGFuY2luZyBpcyByZXF1aXJlZC4gKilcblxuICAgIGxldCBiYWwgbCB2IHIgPVxuICAgICAgbGV0IGhsID0gbWF0Y2ggbCB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBsZXQgaHIgPSBtYXRjaCByIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIGlmIGhsID4gaHIgKyAyIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJTZXQuYmFsXCJcbiAgICAgICAgfCBOb2Rle2w9bGw7IHY9bHY7IHI9bHJ9IC0+XG4gICAgICAgICAgICBpZiBoZWlnaHQgbGwgPj0gaGVpZ2h0IGxyIHRoZW5cbiAgICAgICAgICAgICAgY3JlYXRlIGxsIGx2IChjcmVhdGUgbHIgdiByKVxuICAgICAgICAgICAgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBtYXRjaCBsciB3aXRoXG4gICAgICAgICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJTZXQuYmFsXCJcbiAgICAgICAgICAgICAgfCBOb2Rle2w9bHJsOyB2PWxydjsgcj1scnJ9LT5cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGxsIGx2IGxybCkgbHJ2IChjcmVhdGUgbHJyIHYgcilcbiAgICAgICAgICAgIGVuZFxuICAgICAgZW5kIGVsc2UgaWYgaHIgPiBobCArIDIgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCByIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5iYWxcIlxuICAgICAgICB8IE5vZGV7bD1ybDsgdj1ydjsgcj1ycn0gLT5cbiAgICAgICAgICAgIGlmIGhlaWdodCByciA+PSBoZWlnaHQgcmwgdGhlblxuICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsIHYgcmwpIHJ2IHJyXG4gICAgICAgICAgICBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIG1hdGNoIHJsIHdpdGhcbiAgICAgICAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5iYWxcIlxuICAgICAgICAgICAgICB8IE5vZGV7bD1ybGw7IHY9cmx2OyByPXJscn0gLT5cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGwgdiBybGwpIHJsdiAoY3JlYXRlIHJsciBydiBycilcbiAgICAgICAgICAgIGVuZFxuICAgICAgZW5kIGVsc2VcbiAgICAgICAgTm9kZXtsOyB2OyByOyBoPShpZiBobCA+PSBociB0aGVuIGhsICsgMSBlbHNlIGhyICsgMSl9XG5cbiAgICAoKiBJbnNlcnRpb24gb2Ygb25lIGVsZW1lbnQgKilcblxuICAgIGxldCByZWMgYWRkIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb2Rle2w9RW1wdHk7IHY9eDsgcj1FbXB0eTsgaD0xfVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IGFzIHQgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gdCBlbHNlXG4gICAgICAgICAgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IGxsID0gYWRkIHggbCBpblxuICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIHQgZWxzZSBiYWwgbGwgdiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IHJyID0gYWRkIHggciBpblxuICAgICAgICAgICAgaWYgciA9PSByciB0aGVuIHQgZWxzZSBiYWwgbCB2IHJyXG5cbiAgICBsZXQgc2luZ2xldG9uIHggPSBOb2Rle2w9RW1wdHk7IHY9eDsgcj1FbXB0eTsgaD0xfVxuXG4gICAgKCogQmV3YXJlOiB0aG9zZSB0d28gZnVuY3Rpb25zIGFzc3VtZSB0aGF0IHRoZSBhZGRlZCB2IGlzICpzdHJpY3RseSpcbiAgICAgICBzbWFsbGVyIChvciBiaWdnZXIpIHRoYW4gYWxsIHRoZSBwcmVzZW50IGVsZW1lbnRzIGluIHRoZSB0cmVlOyBpdFxuICAgICAgIGRvZXMgbm90IHRlc3QgZm9yIGVxdWFsaXR5IHdpdGggdGhlIGN1cnJlbnQgbWluIChvciBtYXgpIGVsZW1lbnQuXG4gICAgICAgSW5kZWVkLCB0aGV5IGFyZSBvbmx5IHVzZWQgZHVyaW5nIHRoZSBcImpvaW5cIiBvcGVyYXRpb24gd2hpY2hcbiAgICAgICByZXNwZWN0cyB0aGlzIHByZWNvbmRpdGlvbi5cbiAgICAqKVxuXG4gICAgbGV0IHJlYyBhZGRfbWluX2VsZW1lbnQgeCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IHNpbmdsZXRvbiB4XG4gICAgICB8IE5vZGUge2w7IHY7IHJ9IC0+XG4gICAgICAgIGJhbCAoYWRkX21pbl9lbGVtZW50IHggbCkgdiByXG5cbiAgICBsZXQgcmVjIGFkZF9tYXhfZWxlbWVudCB4ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gc2luZ2xldG9uIHhcbiAgICAgIHwgTm9kZSB7bDsgdjsgcn0gLT5cbiAgICAgICAgYmFsIGwgdiAoYWRkX21heF9lbGVtZW50IHggcilcblxuICAgICgqIFNhbWUgYXMgY3JlYXRlIGFuZCBiYWwsIGJ1dCBubyBhc3N1bXB0aW9ucyBhcmUgbWFkZSBvbiB0aGVcbiAgICAgICByZWxhdGl2ZSBoZWlnaHRzIG9mIGwgYW5kIHIuICopXG5cbiAgICBsZXQgcmVjIGpvaW4gbCB2IHIgPVxuICAgICAgbWF0Y2ggKGwsIHIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBfKSAtPiBhZGRfbWluX2VsZW1lbnQgdiByXG4gICAgICB8IChfLCBFbXB0eSkgLT4gYWRkX21heF9lbGVtZW50IHYgbFxuICAgICAgfCAoTm9kZXtsPWxsOyB2PWx2OyByPWxyOyBoPWxofSwgTm9kZXtsPXJsOyB2PXJ2OyByPXJyOyBoPXJofSkgLT5cbiAgICAgICAgICBpZiBsaCA+IHJoICsgMiB0aGVuIGJhbCBsbCBsdiAoam9pbiBsciB2IHIpIGVsc2VcbiAgICAgICAgICBpZiByaCA+IGxoICsgMiB0aGVuIGJhbCAoam9pbiBsIHYgcmwpIHJ2IHJyIGVsc2VcbiAgICAgICAgICBjcmVhdGUgbCB2IHJcblxuICAgICgqIFNtYWxsZXN0IGFuZCBncmVhdGVzdCBlbGVtZW50IG9mIGEgc2V0ICopXG5cbiAgICBsZXQgcmVjIG1pbl9lbHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXtsPUVtcHR5OyB2fSAtPiB2XG4gICAgICB8IE5vZGV7bH0gLT4gbWluX2VsdCBsXG5cbiAgICBsZXQgcmVjIG1pbl9lbHRfb3B0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBOb2Rle2w9RW1wdHk7IHZ9IC0+IFNvbWUgdlxuICAgICAgfCBOb2Rle2x9IC0+IG1pbl9lbHRfb3B0IGxcblxuICAgIGxldCByZWMgbWF4X2VsdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2Rle3Y7IHI9RW1wdHl9IC0+IHZcbiAgICAgIHwgTm9kZXtyfSAtPiBtYXhfZWx0IHJcblxuICAgIGxldCByZWMgbWF4X2VsdF9vcHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGV7djsgcj1FbXB0eX0gLT4gU29tZSB2XG4gICAgICB8IE5vZGV7cn0gLT4gbWF4X2VsdF9vcHQgclxuXG4gICAgKCogUmVtb3ZlIHRoZSBzbWFsbGVzdCBlbGVtZW50IG9mIHRoZSBnaXZlbiBzZXQgKilcblxuICAgIGxldCByZWMgcmVtb3ZlX21pbl9lbHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5yZW1vdmVfbWluX2VsdFwiXG4gICAgICB8IE5vZGV7bD1FbXB0eTsgcn0gLT4gclxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGJhbCAocmVtb3ZlX21pbl9lbHQgbCkgdiByXG5cbiAgICAoKiBNZXJnZSB0d28gdHJlZXMgbCBhbmQgciBpbnRvIG9uZS5cbiAgICAgICBBbGwgZWxlbWVudHMgb2YgbCBtdXN0IHByZWNlZGUgdGhlIGVsZW1lbnRzIG9mIHIuXG4gICAgICAgQXNzdW1lIHwgaGVpZ2h0IGwgLSBoZWlnaHQgciB8IDw9IDIuICopXG5cbiAgICBsZXQgbWVyZ2UgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPiBiYWwgdDEgKG1pbl9lbHQgdDIpIChyZW1vdmVfbWluX2VsdCB0MilcblxuICAgICgqIE1lcmdlIHR3byB0cmVlcyBsIGFuZCByIGludG8gb25lLlxuICAgICAgIEFsbCBlbGVtZW50cyBvZiBsIG11c3QgcHJlY2VkZSB0aGUgZWxlbWVudHMgb2Ygci5cbiAgICAgICBObyBhc3N1bXB0aW9uIG9uIHRoZSBoZWlnaHRzIG9mIGwgYW5kIHIuICopXG5cbiAgICBsZXQgY29uY2F0IHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT4gam9pbiB0MSAobWluX2VsdCB0MikgKHJlbW92ZV9taW5fZWx0IHQyKVxuXG4gICAgKCogU3BsaXR0aW5nLiAgc3BsaXQgeCBzIHJldHVybnMgYSB0cmlwbGUgKGwsIHByZXNlbnQsIHIpIHdoZXJlXG4gICAgICAgIC0gbCBpcyB0aGUgc2V0IG9mIGVsZW1lbnRzIG9mIHMgdGhhdCBhcmUgPCB4XG4gICAgICAgIC0gciBpcyB0aGUgc2V0IG9mIGVsZW1lbnRzIG9mIHMgdGhhdCBhcmUgPiB4XG4gICAgICAgIC0gcHJlc2VudCBpcyBmYWxzZSBpZiBzIGNvbnRhaW5zIG5vIGVsZW1lbnQgZXF1YWwgdG8geCxcbiAgICAgICAgICBvciB0cnVlIGlmIHMgY29udGFpbnMgYW4gZWxlbWVudCBlcXVhbCB0byB4LiAqKVxuXG4gICAgbGV0IHJlYyBzcGxpdCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAoRW1wdHksIGZhbHNlLCBFbXB0eSlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiAobCwgdHJ1ZSwgcilcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCAobGwsIHByZXMsIHJsKSA9IHNwbGl0IHggbCBpbiAobGwsIHByZXMsIGpvaW4gcmwgdiByKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCAobHIsIHByZXMsIHJyKSA9IHNwbGl0IHggciBpbiAoam9pbiBsIHYgbHIsIHByZXMsIHJyKVxuXG4gICAgKCogSW1wbGVtZW50YXRpb24gb2YgdGhlIHNldCBvcGVyYXRpb25zICopXG5cbiAgICBsZXQgZW1wdHkgPSBFbXB0eVxuXG4gICAgbGV0IGlzX2VtcHR5ID0gZnVuY3Rpb24gRW1wdHkgLT4gdHJ1ZSB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZWMgbWVtIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBmYWxzZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBjID0gMCB8fCBtZW0geCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgcmVtb3ZlIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZXtsOyB2OyByfSBhcyB0KSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBtZXJnZSBsIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICAgIGxldCBsbCA9IHJlbW92ZSB4IGwgaW5cbiAgICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIHRcbiAgICAgICAgICAgICAgZWxzZSBiYWwgbGwgdiByXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCByciA9IHJlbW92ZSB4IHIgaW5cbiAgICAgICAgICAgICAgaWYgciA9PSByciB0aGVuIHRcbiAgICAgICAgICAgICAgZWxzZSBiYWwgbCB2IHJyXG5cbiAgICBsZXQgcmVjIHVuaW9uIHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0MikgLT4gdDJcbiAgICAgIHwgKHQxLCBFbXB0eSkgLT4gdDFcbiAgICAgIHwgKE5vZGV7bD1sMTsgdj12MTsgcj1yMTsgaD1oMX0sIE5vZGV7bD1sMjsgdj12Mjsgcj1yMjsgaD1oMn0pIC0+XG4gICAgICAgICAgaWYgaDEgPj0gaDIgdGhlblxuICAgICAgICAgICAgaWYgaDIgPSAxIHRoZW4gYWRkIHYyIHMxIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbGV0IChsMiwgXywgcjIpID0gc3BsaXQgdjEgczIgaW5cbiAgICAgICAgICAgICAgam9pbiAodW5pb24gbDEgbDIpIHYxICh1bmlvbiByMSByMilcbiAgICAgICAgICAgIGVuZFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGlmIGgxID0gMSB0aGVuIGFkZCB2MSBzMiBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIGxldCAobDEsIF8sIHIxKSA9IHNwbGl0IHYyIHMxIGluXG4gICAgICAgICAgICAgIGpvaW4gKHVuaW9uIGwxIGwyKSB2MiAodW5pb24gcjEgcjIpXG4gICAgICAgICAgICBlbmRcblxuICAgIGxldCByZWMgaW50ZXIgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIC0+IEVtcHR5XG4gICAgICB8IChfLCBFbXB0eSkgLT4gRW1wdHlcbiAgICAgIHwgKE5vZGV7bD1sMTsgdj12MTsgcj1yMX0sIHQyKSAtPlxuICAgICAgICAgIG1hdGNoIHNwbGl0IHYxIHQyIHdpdGhcbiAgICAgICAgICAgIChsMiwgZmFsc2UsIHIyKSAtPlxuICAgICAgICAgICAgICBjb25jYXQgKGludGVyIGwxIGwyKSAoaW50ZXIgcjEgcjIpXG4gICAgICAgICAgfCAobDIsIHRydWUsIHIyKSAtPlxuICAgICAgICAgICAgICBqb2luIChpbnRlciBsMSBsMikgdjEgKGludGVyIHIxIHIyKVxuXG4gICAgKCogU2FtZSBhcyBzcGxpdCwgYnV0IGNvbXB1dGUgdGhlIGxlZnQgYW5kIHJpZ2h0IHN1YnRyZWVzXG4gICAgICAgb25seSBpZiB0aGUgcGl2b3QgZWxlbWVudCBpcyBub3QgaW4gdGhlIHNldC4gIFRoZSByaWdodCBzdWJ0cmVlXG4gICAgICAgaXMgY29tcHV0ZWQgb24gZGVtYW5kLiAqKVxuXG4gICAgdHlwZSBzcGxpdF9iaXMgPVxuICAgICAgfCBGb3VuZFxuICAgICAgfCBOb3RGb3VuZCBvZiB0ICogKHVuaXQgLT4gdClcblxuICAgIGxldCByZWMgc3BsaXRfYmlzIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vdEZvdW5kIChFbXB0eSwgKGZ1biAoKSAtPiBFbXB0eSkpXG4gICAgICB8IE5vZGV7bDsgdjsgcjsgX30gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gRm91bmRcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIG1hdGNoIHNwbGl0X2JpcyB4IGwgd2l0aFxuICAgICAgICAgICAgfCBGb3VuZCAtPiBGb3VuZFxuICAgICAgICAgICAgfCBOb3RGb3VuZCAobGwsIHJsKSAtPiBOb3RGb3VuZCAobGwsIChmdW4gKCkgLT4gam9pbiAocmwgKCkpIHYgcikpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbWF0Y2ggc3BsaXRfYmlzIHggciB3aXRoXG4gICAgICAgICAgICB8IEZvdW5kIC0+IEZvdW5kXG4gICAgICAgICAgICB8IE5vdEZvdW5kIChsciwgcnIpIC0+IE5vdEZvdW5kIChqb2luIGwgdiBsciwgcnIpXG5cbiAgICBsZXQgcmVjIGRpc2pvaW50IHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBfKSB8IChfLCBFbXB0eSkgLT4gdHJ1ZVxuICAgICAgfCAoTm9kZXtsPWwxOyB2PXYxOyByPXIxfSwgdDIpIC0+XG4gICAgICAgICAgaWYgczEgPT0gczIgdGhlbiBmYWxzZVxuICAgICAgICAgIGVsc2UgbWF0Y2ggc3BsaXRfYmlzIHYxIHQyIHdpdGhcbiAgICAgICAgICAgICAgTm90Rm91bmQobDIsIHIyKSAtPiBkaXNqb2ludCBsMSBsMiAmJiBkaXNqb2ludCByMSAocjIgKCkpXG4gICAgICAgICAgICB8IEZvdW5kIC0+IGZhbHNlXG5cbiAgICBsZXQgcmVjIGRpZmYgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIC0+IEVtcHR5XG4gICAgICB8ICh0MSwgRW1wdHkpIC0+IHQxXG4gICAgICB8IChOb2Rle2w9bDE7IHY9djE7IHI9cjF9LCB0MikgLT5cbiAgICAgICAgICBtYXRjaCBzcGxpdCB2MSB0MiB3aXRoXG4gICAgICAgICAgICAobDIsIGZhbHNlLCByMikgLT5cbiAgICAgICAgICAgICAgam9pbiAoZGlmZiBsMSBsMikgdjEgKGRpZmYgcjEgcjIpXG4gICAgICAgICAgfCAobDIsIHRydWUsIHIyKSAtPlxuICAgICAgICAgICAgICBjb25jYXQgKGRpZmYgbDEgbDIpIChkaWZmIHIxIHIyKVxuXG4gICAgdHlwZSBlbnVtZXJhdGlvbiA9IEVuZCB8IE1vcmUgb2YgZWx0ICogdCAqIGVudW1lcmF0aW9uXG5cbiAgICBsZXQgcmVjIGNvbnNfZW51bSBzIGUgPVxuICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBjb25zX2VudW0gbCAoTW9yZSh2LCByLCBlKSlcblxuICAgIGxldCByZWMgY29tcGFyZV9hdXggZTEgZTIgPVxuICAgICAgICBtYXRjaCAoZTEsIGUyKSB3aXRoXG4gICAgICAgIChFbmQsIEVuZCkgLT4gMFxuICAgICAgfCAoRW5kLCBfKSAgLT4gLTFcbiAgICAgIHwgKF8sIEVuZCkgLT4gMVxuICAgICAgfCAoTW9yZSh2MSwgcjEsIGUxKSwgTW9yZSh2MiwgcjIsIGUyKSkgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHYxIHYyIGluXG4gICAgICAgICAgaWYgYyA8PiAwXG4gICAgICAgICAgdGhlbiBjXG4gICAgICAgICAgZWxzZSBjb21wYXJlX2F1eCAoY29uc19lbnVtIHIxIGUxKSAoY29uc19lbnVtIHIyIGUyKVxuXG4gICAgbGV0IGNvbXBhcmUgczEgczIgPVxuICAgICAgY29tcGFyZV9hdXggKGNvbnNfZW51bSBzMSBFbmQpIChjb25zX2VudW0gczIgRW5kKVxuXG4gICAgbGV0IGVxdWFsIHMxIHMyID1cbiAgICAgIGNvbXBhcmUgczEgczIgPSAwXG5cbiAgICBsZXQgcmVjIHN1YnNldCBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIEVtcHR5LCBfIC0+XG4gICAgICAgICAgdHJ1ZVxuICAgICAgfCBfLCBFbXB0eSAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IE5vZGUge2w9bDE7IHY9djE7IHI9cjF9LCAoTm9kZSB7bD1sMjsgdj12Mjsgcj1yMn0gYXMgdDIpIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB2MSB2MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIHN1YnNldCBsMSBsMiAmJiBzdWJzZXQgcjEgcjJcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIHN1YnNldCAoTm9kZSB7bD1sMTsgdj12MTsgcj1FbXB0eTsgaD0wfSkgbDIgJiYgc3Vic2V0IHIxIHQyXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3Vic2V0IChOb2RlIHtsPUVtcHR5OyB2PXYxOyByPXIxOyBoPTB9KSByMiAmJiBzdWJzZXQgbDEgdDJcblxuICAgIGxldCByZWMgaXRlciBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gKClcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBpdGVyIGYgbDsgZiB2OyBpdGVyIGYgclxuXG4gICAgbGV0IHJlYyBmb2xkIGYgcyBhY2N1ID1cbiAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICBFbXB0eSAtPiBhY2N1XG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gZm9sZCBmIHIgKGYgdiAoZm9sZCBmIGwgYWNjdSkpXG5cbiAgICBsZXQgcmVjIGZvcl9hbGwgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHRydWVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBwIHYgJiYgZm9yX2FsbCBwIGwgJiYgZm9yX2FsbCBwIHJcblxuICAgIGxldCByZWMgZXhpc3RzIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBmYWxzZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IHAgdiB8fCBleGlzdHMgcCBsIHx8IGV4aXN0cyBwIHJcblxuICAgIGxldCByZWMgZmlsdGVyIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZXtsOyB2OyByfSkgYXMgdCAtPlxuICAgICAgICAgICgqIGNhbGwgW3BdIGluIHRoZSBleHBlY3RlZCBsZWZ0LXRvLXJpZ2h0IG9yZGVyICopXG4gICAgICAgICAgbGV0IGwnID0gZmlsdGVyIHAgbCBpblxuICAgICAgICAgIGxldCBwdiA9IHAgdiBpblxuICAgICAgICAgIGxldCByJyA9IGZpbHRlciBwIHIgaW5cbiAgICAgICAgICBpZiBwdiB0aGVuXG4gICAgICAgICAgICBpZiBsPT1sJyAmJiByPT1yJyB0aGVuIHQgZWxzZSBqb2luIGwnIHYgcidcbiAgICAgICAgICBlbHNlIGNvbmNhdCBsJyByJ1xuXG4gICAgbGV0IHJlYyBwYXJ0aXRpb24gcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IChFbXB0eSwgRW1wdHkpXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICAoKiBjYWxsIFtwXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCAobHQsIGxmKSA9IHBhcnRpdGlvbiBwIGwgaW5cbiAgICAgICAgICBsZXQgcHYgPSBwIHYgaW5cbiAgICAgICAgICBsZXQgKHJ0LCByZikgPSBwYXJ0aXRpb24gcCByIGluXG4gICAgICAgICAgaWYgcHZcbiAgICAgICAgICB0aGVuIChqb2luIGx0IHYgcnQsIGNvbmNhdCBsZiByZilcbiAgICAgICAgICBlbHNlIChjb25jYXQgbHQgcnQsIGpvaW4gbGYgdiByZilcblxuICAgIGxldCByZWMgY2FyZGluYWwgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAwXG4gICAgICB8IE5vZGV7bDsgcn0gLT4gY2FyZGluYWwgbCArIDEgKyBjYXJkaW5hbCByXG5cbiAgICBsZXQgcmVjIGVsZW1lbnRzX2F1eCBhY2N1ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGVsZW1lbnRzX2F1eCAodiA6OiBlbGVtZW50c19hdXggYWNjdSByKSBsXG5cbiAgICBsZXQgZWxlbWVudHMgcyA9XG4gICAgICBlbGVtZW50c19hdXggW10gc1xuXG4gICAgbGV0IGNob29zZSA9IG1pbl9lbHRcblxuICAgIGxldCBjaG9vc2Vfb3B0ID0gbWluX2VsdF9vcHRcblxuICAgIGxldCByZWMgZmluZCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gdlxuICAgICAgICAgIGVsc2UgZmluZCB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X2F1eCB2MCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICB2MFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdjAgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3QgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdiBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0IGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X29wdF9hdXggdjAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgU29tZSB2MFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2IGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2MCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9vcHQgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2IGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0IGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3RfYXV4IHYwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHYwXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X2F1eCB2IGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdjAgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0IGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3Rfb3B0X2F1eCB2MCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBTb21lIHYwXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdiBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2MCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0X29wdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdiBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0IGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX29wdCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIFNvbWUgdlxuICAgICAgICAgIGVsc2UgZmluZF9vcHQgeCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCB0cnlfam9pbiBsIHYgciA9XG4gICAgICAoKiBbam9pbiBsIHYgcl0gY2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gKGVsZW1lbnRzIG9mIGwgPCB2IDxcbiAgICAgICAgIGVsZW1lbnRzIG9mIHIpOyB1c2UgW3RyeV9qb2luIGwgdiByXSB3aGVuIHRoaXMgcHJvcGVydHkgbWF5XG4gICAgICAgICBub3QgaG9sZCwgYnV0IHlvdSBob3BlIGl0IGRvZXMgaG9sZCBpbiB0aGUgY29tbW9uIGNhc2UgKilcbiAgICAgIGlmIChsID0gRW1wdHkgfHwgT3JkLmNvbXBhcmUgKG1heF9lbHQgbCkgdiA8IDApXG4gICAgICAmJiAociA9IEVtcHR5IHx8IE9yZC5jb21wYXJlIHYgKG1pbl9lbHQgcikgPCAwKVxuICAgICAgdGhlbiBqb2luIGwgdiByXG4gICAgICBlbHNlIHVuaW9uIGwgKGFkZCB2IHIpXG5cbiAgICBsZXQgcmVjIG1hcCBmID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSBhcyB0IC0+XG4gICAgICAgICAoKiBlbmZvcmNlIGxlZnQtdG8tcmlnaHQgZXZhbHVhdGlvbiBvcmRlciAqKVxuICAgICAgICAgbGV0IGwnID0gbWFwIGYgbCBpblxuICAgICAgICAgbGV0IHYnID0gZiB2IGluXG4gICAgICAgICBsZXQgcicgPSBtYXAgZiByIGluXG4gICAgICAgICBpZiBsID09IGwnICYmIHYgPT0gdicgJiYgciA9PSByJyB0aGVuIHRcbiAgICAgICAgIGVsc2UgdHJ5X2pvaW4gbCcgdicgcidcblxuICAgIGxldCB0cnlfY29uY2F0IHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT4gdHJ5X2pvaW4gdDEgKG1pbl9lbHQgdDIpIChyZW1vdmVfbWluX2VsdCB0MilcblxuICAgIGxldCByZWMgZmlsdGVyX21hcCBmID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSBhcyB0IC0+XG4gICAgICAgICAoKiBlbmZvcmNlIGxlZnQtdG8tcmlnaHQgZXZhbHVhdGlvbiBvcmRlciAqKVxuICAgICAgICAgbGV0IGwnID0gZmlsdGVyX21hcCBmIGwgaW5cbiAgICAgICAgIGxldCB2JyA9IGYgdiBpblxuICAgICAgICAgbGV0IHInID0gZmlsdGVyX21hcCBmIHIgaW5cbiAgICAgICAgIGJlZ2luIG1hdGNoIHYnIHdpdGhcbiAgICAgICAgICAgfCBTb21lIHYnIC0+XG4gICAgICAgICAgICAgIGlmIGwgPT0gbCcgJiYgdiA9PSB2JyAmJiByID09IHInIHRoZW4gdFxuICAgICAgICAgICAgICBlbHNlIHRyeV9qb2luIGwnIHYnIHInXG4gICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICB0cnlfY29uY2F0IGwnIHInXG4gICAgICAgICBlbmRcblxuICAgIGxldCBvZl9zb3J0ZWRfbGlzdCBsID1cbiAgICAgIGxldCByZWMgc3ViIG4gbCA9XG4gICAgICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgICAgICB8IDAsIGwgLT4gRW1wdHksIGxcbiAgICAgICAgfCAxLCB4MCA6OiBsIC0+IE5vZGUge2w9RW1wdHk7IHY9eDA7IHI9RW1wdHk7IGg9MX0sIGxcbiAgICAgICAgfCAyLCB4MCA6OiB4MSA6OiBsIC0+XG4gICAgICAgICAgICBOb2Rle2w9Tm9kZXtsPUVtcHR5OyB2PXgwOyByPUVtcHR5OyBoPTF9OyB2PXgxOyByPUVtcHR5OyBoPTJ9LCBsXG4gICAgICAgIHwgMywgeDAgOjogeDEgOjogeDIgOjogbCAtPlxuICAgICAgICAgICAgTm9kZXtsPU5vZGV7bD1FbXB0eTsgdj14MDsgcj1FbXB0eTsgaD0xfTsgdj14MTtcbiAgICAgICAgICAgICAgICAgcj1Ob2Rle2w9RW1wdHk7IHY9eDI7IHI9RW1wdHk7IGg9MX07IGg9Mn0sIGxcbiAgICAgICAgfCBuLCBsIC0+XG4gICAgICAgICAgbGV0IG5sID0gbiAvIDIgaW5cbiAgICAgICAgICBsZXQgbGVmdCwgbCA9IHN1YiBubCBsIGluXG4gICAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgICAgfCBbXSAtPiBhc3NlcnQgZmFsc2VcbiAgICAgICAgICB8IG1pZCA6OiBsIC0+XG4gICAgICAgICAgICBsZXQgcmlnaHQsIGwgPSBzdWIgKG4gLSBubCAtIDEpIGwgaW5cbiAgICAgICAgICAgIGNyZWF0ZSBsZWZ0IG1pZCByaWdodCwgbFxuICAgICAgaW5cbiAgICAgIGZzdCAoc3ViIChMaXN0Lmxlbmd0aCBsKSBsKVxuXG4gICAgbGV0IG9mX2xpc3QgbCA9XG4gICAgICBtYXRjaCBsIHdpdGhcbiAgICAgIHwgW10gLT4gZW1wdHlcbiAgICAgIHwgW3gwXSAtPiBzaW5nbGV0b24geDBcbiAgICAgIHwgW3gwOyB4MV0gLT4gYWRkIHgxIChzaW5nbGV0b24geDApXG4gICAgICB8IFt4MDsgeDE7IHgyXSAtPiBhZGQgeDIgKGFkZCB4MSAoc2luZ2xldG9uIHgwKSlcbiAgICAgIHwgW3gwOyB4MTsgeDI7IHgzXSAtPiBhZGQgeDMgKGFkZCB4MiAoYWRkIHgxIChzaW5nbGV0b24geDApKSlcbiAgICAgIHwgW3gwOyB4MTsgeDI7IHgzOyB4NF0gLT4gYWRkIHg0IChhZGQgeDMgKGFkZCB4MiAoYWRkIHgxIChzaW5nbGV0b24geDApKSkpXG4gICAgICB8IF8gLT4gb2Zfc29ydGVkX2xpc3QgKExpc3Quc29ydF91bmlxIE9yZC5jb21wYXJlIGwpXG5cbiAgICBsZXQgYWRkX3NlcSBpIG0gPVxuICAgICAgU2VxLmZvbGRfbGVmdCAoZnVuIHMgeCAtPiBhZGQgeCBzKSBtIGlcblxuICAgIGxldCBvZl9zZXEgaSA9IGFkZF9zZXEgaSBlbXB0eVxuXG4gICAgbGV0IHJlYyBzZXFfb2ZfZW51bV8gYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgICAgfCBFbmQgLT4gU2VxLk5pbFxuICAgICAgfCBNb3JlICh4LCB0LCByZXN0KSAtPiBTZXEuQ29ucyAoeCwgc2VxX29mX2VudW1fIChjb25zX2VudW0gdCByZXN0KSlcblxuICAgIGxldCB0b19zZXEgYyA9IHNlcV9vZl9lbnVtXyAoY29uc19lbnVtIGMgRW5kKVxuXG4gICAgbGV0IHJlYyBzbm9jX2VudW0gcyBlID1cbiAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICBFbXB0eSAtPiBlXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gc25vY19lbnVtIHIgKE1vcmUodiwgbCwgZSkpXG5cbiAgICBsZXQgcmVjIHJldl9zZXFfb2ZfZW51bV8gYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgICAgfCBFbmQgLT4gU2VxLk5pbFxuICAgICAgfCBNb3JlICh4LCB0LCByZXN0KSAtPiBTZXEuQ29ucyAoeCwgcmV2X3NlcV9vZl9lbnVtXyAoc25vY19lbnVtIHQgcmVzdCkpXG5cbiAgICBsZXQgdG9fcmV2X3NlcSBjID0gcmV2X3NlcV9vZl9lbnVtXyAoc25vY19lbnVtIGMgRW5kKVxuXG4gICAgbGV0IHRvX3NlcV9mcm9tIGxvdyBzID1cbiAgICAgIGxldCByZWMgYXV4IGxvdyBzIGMgPSBtYXRjaCBzIHdpdGhcbiAgICAgICAgfCBFbXB0eSAtPiBjXG4gICAgICAgIHwgTm9kZSB7bDsgcjsgdjsgX30gLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIE9yZC5jb21wYXJlIHYgbG93IHdpdGhcbiAgICAgICAgICAgICAgfCAwIC0+IE1vcmUgKHYsIHIsIGMpXG4gICAgICAgICAgICAgIHwgbiB3aGVuIG48MCAtPiBhdXggbG93IHIgY1xuICAgICAgICAgICAgICB8IF8gLT4gYXV4IGxvdyBsIChNb3JlICh2LCByLCBjKSlcbiAgICAgICAgICAgIGVuZFxuICAgICAgaW5cbiAgICAgIHNlcV9vZl9lbnVtXyAoYXV4IGxvdyBzIEVuZClcbiAgZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm1vZHVsZSB0eXBlIE9yZGVyZWRUeXBlID1cbiAgc2lnXG4gICAgdHlwZSB0XG4gICAgdmFsIGNvbXBhcmU6IHQgLT4gdCAtPiBpbnRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFMgPVxuICBzaWdcbiAgICB0eXBlIGtleVxuICAgIHR5cGUgISsnYSB0XG4gICAgdmFsIGVtcHR5OiAnYSB0XG4gICAgdmFsIGlzX2VtcHR5OiAnYSB0IC0+IGJvb2xcbiAgICB2YWwgbWVtOiAga2V5IC0+ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBhZGQ6IGtleSAtPiAnYSAtPiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgdXBkYXRlOiBrZXkgLT4gKCdhIG9wdGlvbiAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBzaW5nbGV0b246IGtleSAtPiAnYSAtPiAnYSB0XG4gICAgdmFsIHJlbW92ZToga2V5IC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBtZXJnZTpcbiAgICAgICAgICAoa2V5IC0+ICdhIG9wdGlvbiAtPiAnYiBvcHRpb24gLT4gJ2Mgb3B0aW9uKSAtPiAnYSB0IC0+ICdiIHQgLT4gJ2MgdFxuICAgIHZhbCB1bmlvbjogKGtleSAtPiAnYSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIGNvbXBhcmU6ICgnYSAtPiAnYSAtPiBpbnQpIC0+ICdhIHQgLT4gJ2EgdCAtPiBpbnRcbiAgICB2YWwgZXF1YWw6ICgnYSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBpdGVyOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmb2xkOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgdmFsIGZvcl9hbGw6IChrZXkgLT4gJ2EgLT4gYm9vbCkgLT4gJ2EgdCAtPiBib29sXG4gICAgdmFsIGV4aXN0czogKGtleSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+IGJvb2xcbiAgICB2YWwgZmlsdGVyOiAoa2V5IC0+ICdhIC0+IGJvb2wpIC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBmaWx0ZXJfbWFwOiAoa2V5IC0+ICdhIC0+ICdiIG9wdGlvbikgLT4gJ2EgdCAtPiAnYiB0XG4gICAgdmFsIHBhcnRpdGlvbjogKGtleSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+ICdhIHQgKiAnYSB0XG4gICAgdmFsIGNhcmRpbmFsOiAnYSB0IC0+IGludFxuICAgIHZhbCBiaW5kaW5nczogJ2EgdCAtPiAoa2V5ICogJ2EpIGxpc3RcbiAgICB2YWwgbWluX2JpbmRpbmc6ICdhIHQgLT4gKGtleSAqICdhKVxuICAgIHZhbCBtaW5fYmluZGluZ19vcHQ6ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgbWF4X2JpbmRpbmc6ICdhIHQgLT4gKGtleSAqICdhKVxuICAgIHZhbCBtYXhfYmluZGluZ19vcHQ6ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgY2hvb3NlOiAnYSB0IC0+IChrZXkgKiAnYSlcbiAgICB2YWwgY2hvb3NlX29wdDogJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBzcGxpdDoga2V5IC0+ICdhIHQgLT4gJ2EgdCAqICdhIG9wdGlvbiAqICdhIHRcbiAgICB2YWwgZmluZDoga2V5IC0+ICdhIHQgLT4gJ2FcbiAgICB2YWwgZmluZF9vcHQ6IGtleSAtPiAnYSB0IC0+ICdhIG9wdGlvblxuICAgIHZhbCBmaW5kX2ZpcnN0OiAoa2V5IC0+IGJvb2wpIC0+ICdhIHQgLT4ga2V5ICogJ2FcbiAgICB2YWwgZmluZF9maXJzdF9vcHQ6IChrZXkgLT4gYm9vbCkgLT4gJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBmaW5kX2xhc3Q6IChrZXkgLT4gYm9vbCkgLT4gJ2EgdCAtPiBrZXkgKiAnYVxuICAgIHZhbCBmaW5kX2xhc3Rfb3B0OiAoa2V5IC0+IGJvb2wpIC0+ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgbWFwOiAoJ2EgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgdFxuICAgIHZhbCBtYXBpOiAoa2V5IC0+ICdhIC0+ICdiKSAtPiAnYSB0IC0+ICdiIHRcbiAgICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIHRvX3Jldl9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX2Zyb20gOiBrZXkgLT4gJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIGFkZF9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgZW5kXG5cbm1vZHVsZSBNYWtlKE9yZDogT3JkZXJlZFR5cGUpID0gc3RydWN0XG5cbiAgICB0eXBlIGtleSA9IE9yZC50XG5cbiAgICB0eXBlICdhIHQgPVxuICAgICAgICBFbXB0eVxuICAgICAgfCBOb2RlIG9mIHtsOidhIHQ7IHY6a2V5OyBkOidhOyByOidhIHQ7IGg6aW50fVxuXG4gICAgbGV0IGhlaWdodCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IDBcbiAgICAgIHwgTm9kZSB7aH0gLT4gaFxuXG4gICAgbGV0IGNyZWF0ZSBsIHggZCByID1cbiAgICAgIGxldCBobCA9IGhlaWdodCBsIGFuZCBociA9IGhlaWdodCByIGluXG4gICAgICBOb2Rle2w7IHY9eDsgZDsgcjsgaD0oaWYgaGwgPj0gaHIgdGhlbiBobCArIDEgZWxzZSBociArIDEpfVxuXG4gICAgbGV0IHNpbmdsZXRvbiB4IGQgPSBOb2Rle2w9RW1wdHk7IHY9eDsgZDsgcj1FbXB0eTsgaD0xfVxuXG4gICAgbGV0IGJhbCBsIHggZCByID1cbiAgICAgIGxldCBobCA9IG1hdGNoIGwgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgbGV0IGhyID0gbWF0Y2ggciB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBpZiBobCA+IGhyICsgMiB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiTWFwLmJhbFwiXG4gICAgICAgIHwgTm9kZXtsPWxsOyB2PWx2OyBkPWxkOyByPWxyfSAtPlxuICAgICAgICAgICAgaWYgaGVpZ2h0IGxsID49IGhlaWdodCBsciB0aGVuXG4gICAgICAgICAgICAgIGNyZWF0ZSBsbCBsdiBsZCAoY3JlYXRlIGxyIHggZCByKVxuICAgICAgICAgICAgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBtYXRjaCBsciB3aXRoXG4gICAgICAgICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAuYmFsXCJcbiAgICAgICAgICAgICAgfCBOb2Rle2w9bHJsOyB2PWxydjsgZD1scmQ7IHI9bHJyfS0+XG4gICAgICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsbCBsdiBsZCBscmwpIGxydiBscmQgKGNyZWF0ZSBscnIgeCBkIHIpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGVuZCBlbHNlIGlmIGhyID4gaGwgKyAyIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggciB3aXRoXG4gICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAuYmFsXCJcbiAgICAgICAgfCBOb2Rle2w9cmw7IHY9cnY7IGQ9cmQ7IHI9cnJ9IC0+XG4gICAgICAgICAgICBpZiBoZWlnaHQgcnIgPj0gaGVpZ2h0IHJsIHRoZW5cbiAgICAgICAgICAgICAgY3JlYXRlIChjcmVhdGUgbCB4IGQgcmwpIHJ2IHJkIHJyXG4gICAgICAgICAgICBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIG1hdGNoIHJsIHdpdGhcbiAgICAgICAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIk1hcC5iYWxcIlxuICAgICAgICAgICAgICB8IE5vZGV7bD1ybGw7IHY9cmx2OyBkPXJsZDsgcj1ybHJ9IC0+XG4gICAgICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsIHggZCBybGwpIHJsdiBybGQgKGNyZWF0ZSBybHIgcnYgcmQgcnIpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGVuZCBlbHNlXG4gICAgICAgIE5vZGV7bDsgdj14OyBkOyByOyBoPShpZiBobCA+PSBociB0aGVuIGhsICsgMSBlbHNlIGhyICsgMSl9XG5cbiAgICBsZXQgZW1wdHkgPSBFbXB0eVxuXG4gICAgbGV0IGlzX2VtcHR5ID0gZnVuY3Rpb24gRW1wdHkgLT4gdHJ1ZSB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZWMgYWRkIHggZGF0YSA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9kZXtsPUVtcHR5OyB2PXg7IGQ9ZGF0YTsgcj1FbXB0eTsgaD0xfVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBofSBhcyBtIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuXG4gICAgICAgICAgICBpZiBkID09IGRhdGEgdGhlbiBtIGVsc2UgTm9kZXtsOyB2PXg7IGQ9ZGF0YTsgcjsgaH1cbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBsbCA9IGFkZCB4IGRhdGEgbCBpblxuICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIG0gZWxzZSBiYWwgbGwgdiBkIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgcnIgPSBhZGQgeCBkYXRhIHIgaW5cbiAgICAgICAgICAgIGlmIHIgPT0gcnIgdGhlbiBtIGVsc2UgYmFsIGwgdiBkIHJyXG5cbiAgICBsZXQgcmVjIGZpbmQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIGRcbiAgICAgICAgICBlbHNlIGZpbmQgeCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9hdXggdjAgZDAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgKHYwLCBkMClcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdiBkIGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYwIGQwIGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2IGQgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9vcHRfYXV4IHYwIGQwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIFNvbWUgKHYwLCBkMClcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYgZCBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdF9hdXggdjAgZDAgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3Rfb3B0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYgZCBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdCBmIHJcblxuICAgIGxldCByZWMgZmluZF9sYXN0X2F1eCB2MCBkMCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAodjAsIGQwKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYgZCBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYwIGQwIGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3QgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdiBkIGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0X29wdF9hdXggdjAgZDAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgU29tZSAodjAsIGQwKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2IGQgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdjAgZDAgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdF9vcHQgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2IGQgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X29wdCBmIGxcblxuICAgIGxldCByZWMgZmluZF9vcHQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBTb21lIGRcbiAgICAgICAgICBlbHNlIGZpbmRfb3B0IHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgcmVjIG1lbSB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBmYWxzZVxuICAgICAgfCBOb2RlIHtsOyB2OyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgYyA9IDAgfHwgbWVtIHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgcmVjIG1pbl9iaW5kaW5nID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w9RW1wdHk7IHY7IGR9IC0+ICh2LCBkKVxuICAgICAgfCBOb2RlIHtsfSAtPiBtaW5fYmluZGluZyBsXG5cbiAgICBsZXQgcmVjIG1pbl9iaW5kaW5nX29wdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgTm9kZSB7bD1FbXB0eTsgdjsgZH0gLT4gU29tZSAodiwgZClcbiAgICAgIHwgTm9kZSB7bH0tPiBtaW5fYmluZGluZ19vcHQgbFxuXG4gICAgbGV0IHJlYyBtYXhfYmluZGluZyA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2RlIHt2OyBkOyByPUVtcHR5fSAtPiAodiwgZClcbiAgICAgIHwgTm9kZSB7cn0gLT4gbWF4X2JpbmRpbmcgclxuXG4gICAgbGV0IHJlYyBtYXhfYmluZGluZ19vcHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGUge3Y7IGQ7IHI9RW1wdHl9IC0+IFNvbWUgKHYsIGQpXG4gICAgICB8IE5vZGUge3J9IC0+IG1heF9iaW5kaW5nX29wdCByXG5cbiAgICBsZXQgcmVjIHJlbW92ZV9taW5fYmluZGluZyA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiTWFwLnJlbW92ZV9taW5fZWx0XCJcbiAgICAgIHwgTm9kZSB7bD1FbXB0eTsgcn0gLT4gclxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBiYWwgKHJlbW92ZV9taW5fYmluZGluZyBsKSB2IGQgclxuXG4gICAgbGV0IG1lcmdlIHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT5cbiAgICAgICAgICBsZXQgKHgsIGQpID0gbWluX2JpbmRpbmcgdDIgaW5cbiAgICAgICAgICBiYWwgdDEgeCBkIChyZW1vdmVfbWluX2JpbmRpbmcgdDIpXG5cbiAgICBsZXQgcmVjIHJlbW92ZSB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBFbXB0eVxuICAgICAgfCAoTm9kZSB7bDsgdjsgZDsgcn0gYXMgbSkgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gbWVyZ2UgbCByXG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgbGwgPSByZW1vdmUgeCBsIGluIGlmIGwgPT0gbGwgdGhlbiBtIGVsc2UgYmFsIGxsIHYgZCByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IHJyID0gcmVtb3ZlIHggciBpbiBpZiByID09IHJyIHRoZW4gbSBlbHNlIGJhbCBsIHYgZCByclxuXG4gICAgbGV0IHJlYyB1cGRhdGUgeCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBmIE5vbmUgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBFbXB0eVxuICAgICAgICAgIHwgU29tZSBkYXRhIC0+IE5vZGV7bD1FbXB0eTsgdj14OyBkPWRhdGE7IHI9RW1wdHk7IGg9MX1cbiAgICAgICAgICBlbmRcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcjsgaH0gYXMgbSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBiZWdpblxuICAgICAgICAgICAgbWF0Y2ggZiAoU29tZSBkKSB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gbWVyZ2UgbCByXG4gICAgICAgICAgICB8IFNvbWUgZGF0YSAtPlxuICAgICAgICAgICAgICAgIGlmIGQgPT0gZGF0YSB0aGVuIG0gZWxzZSBOb2Rle2w7IHY9eDsgZD1kYXRhOyByOyBofVxuICAgICAgICAgIGVuZCBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBsbCA9IHVwZGF0ZSB4IGYgbCBpblxuICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIG0gZWxzZSBiYWwgbGwgdiBkIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgcnIgPSB1cGRhdGUgeCBmIHIgaW5cbiAgICAgICAgICAgIGlmIHIgPT0gcnIgdGhlbiBtIGVsc2UgYmFsIGwgdiBkIHJyXG5cbiAgICBsZXQgcmVjIGl0ZXIgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+ICgpXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaXRlciBmIGw7IGYgdiBkOyBpdGVyIGYgclxuXG4gICAgbGV0IHJlYyBtYXAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgRW1wdHlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcjsgaH0gLT5cbiAgICAgICAgICBsZXQgbCcgPSBtYXAgZiBsIGluXG4gICAgICAgICAgbGV0IGQnID0gZiBkIGluXG4gICAgICAgICAgbGV0IHInID0gbWFwIGYgciBpblxuICAgICAgICAgIE5vZGV7bD1sJzsgdjsgZD1kJzsgcj1yJzsgaH1cblxuICAgIGxldCByZWMgbWFwaSBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBFbXB0eVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBofSAtPlxuICAgICAgICAgIGxldCBsJyA9IG1hcGkgZiBsIGluXG4gICAgICAgICAgbGV0IGQnID0gZiB2IGQgaW5cbiAgICAgICAgICBsZXQgcicgPSBtYXBpIGYgciBpblxuICAgICAgICAgIE5vZGV7bD1sJzsgdjsgZD1kJzsgcj1yJzsgaH1cblxuICAgIGxldCByZWMgZm9sZCBmIG0gYWNjdSA9XG4gICAgICBtYXRjaCBtIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGZvbGQgZiByIChmIHYgZCAoZm9sZCBmIGwgYWNjdSkpXG5cbiAgICBsZXQgcmVjIGZvcl9hbGwgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHRydWVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gcCB2IGQgJiYgZm9yX2FsbCBwIGwgJiYgZm9yX2FsbCBwIHJcblxuICAgIGxldCByZWMgZXhpc3RzIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBmYWxzZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBwIHYgZCB8fCBleGlzdHMgcCBsIHx8IGV4aXN0cyBwIHJcblxuICAgICgqIEJld2FyZTogdGhvc2UgdHdvIGZ1bmN0aW9ucyBhc3N1bWUgdGhhdCB0aGUgYWRkZWQgayBpcyAqc3RyaWN0bHkqXG4gICAgICAgc21hbGxlciAob3IgYmlnZ2VyKSB0aGFuIGFsbCB0aGUgcHJlc2VudCBrZXlzIGluIHRoZSB0cmVlOyBpdFxuICAgICAgIGRvZXMgbm90IHRlc3QgZm9yIGVxdWFsaXR5IHdpdGggdGhlIGN1cnJlbnQgbWluIChvciBtYXgpIGtleS5cblxuICAgICAgIEluZGVlZCwgdGhleSBhcmUgb25seSB1c2VkIGR1cmluZyB0aGUgXCJqb2luXCIgb3BlcmF0aW9uIHdoaWNoXG4gICAgICAgcmVzcGVjdHMgdGhpcyBwcmVjb25kaXRpb24uXG4gICAgKilcblxuICAgIGxldCByZWMgYWRkX21pbl9iaW5kaW5nIGsgeCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IHNpbmdsZXRvbiBrIHhcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgYmFsIChhZGRfbWluX2JpbmRpbmcgayB4IGwpIHYgZCByXG5cbiAgICBsZXQgcmVjIGFkZF9tYXhfYmluZGluZyBrIHggPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBzaW5nbGV0b24gayB4XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgIGJhbCBsIHYgZCAoYWRkX21heF9iaW5kaW5nIGsgeCByKVxuXG4gICAgKCogU2FtZSBhcyBjcmVhdGUgYW5kIGJhbCwgYnV0IG5vIGFzc3VtcHRpb25zIGFyZSBtYWRlIG9uIHRoZVxuICAgICAgIHJlbGF0aXZlIGhlaWdodHMgb2YgbCBhbmQgci4gKilcblxuICAgIGxldCByZWMgam9pbiBsIHYgZCByID1cbiAgICAgIG1hdGNoIChsLCByKSB3aXRoXG4gICAgICAgIChFbXB0eSwgXykgLT4gYWRkX21pbl9iaW5kaW5nIHYgZCByXG4gICAgICB8IChfLCBFbXB0eSkgLT4gYWRkX21heF9iaW5kaW5nIHYgZCBsXG4gICAgICB8IChOb2Rle2w9bGw7IHY9bHY7IGQ9bGQ7IHI9bHI7IGg9bGh9LFxuICAgICAgICAgTm9kZXtsPXJsOyB2PXJ2OyBkPXJkOyByPXJyOyBoPXJofSkgLT5cbiAgICAgICAgICBpZiBsaCA+IHJoICsgMiB0aGVuIGJhbCBsbCBsdiBsZCAoam9pbiBsciB2IGQgcikgZWxzZVxuICAgICAgICAgIGlmIHJoID4gbGggKyAyIHRoZW4gYmFsIChqb2luIGwgdiBkIHJsKSBydiByZCByciBlbHNlXG4gICAgICAgICAgY3JlYXRlIGwgdiBkIHJcblxuICAgICgqIE1lcmdlIHR3byB0cmVlcyBsIGFuZCByIGludG8gb25lLlxuICAgICAgIEFsbCBlbGVtZW50cyBvZiBsIG11c3QgcHJlY2VkZSB0aGUgZWxlbWVudHMgb2Ygci5cbiAgICAgICBObyBhc3N1bXB0aW9uIG9uIHRoZSBoZWlnaHRzIG9mIGwgYW5kIHIuICopXG5cbiAgICBsZXQgY29uY2F0IHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT5cbiAgICAgICAgICBsZXQgKHgsIGQpID0gbWluX2JpbmRpbmcgdDIgaW5cbiAgICAgICAgICBqb2luIHQxIHggZCAocmVtb3ZlX21pbl9iaW5kaW5nIHQyKVxuXG4gICAgbGV0IGNvbmNhdF9vcl9qb2luIHQxIHYgZCB0MiA9XG4gICAgICBtYXRjaCBkIHdpdGhcbiAgICAgIHwgU29tZSBkIC0+IGpvaW4gdDEgdiBkIHQyXG4gICAgICB8IE5vbmUgLT4gY29uY2F0IHQxIHQyXG5cbiAgICBsZXQgcmVjIHNwbGl0IHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIChFbXB0eSwgTm9uZSwgRW1wdHkpXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIChsLCBTb21lIGQsIHIpXG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgKGxsLCBwcmVzLCBybCkgPSBzcGxpdCB4IGwgaW4gKGxsLCBwcmVzLCBqb2luIHJsIHYgZCByKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCAobHIsIHByZXMsIHJyKSA9IHNwbGl0IHggciBpbiAoam9pbiBsIHYgZCBsciwgcHJlcywgcnIpXG5cbiAgICBsZXQgcmVjIG1lcmdlIGYgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIEVtcHR5KSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZSB7bD1sMTsgdj12MTsgZD1kMTsgcj1yMTsgaD1oMX0sIF8pIHdoZW4gaDEgPj0gaGVpZ2h0IHMyIC0+XG4gICAgICAgICAgbGV0IChsMiwgZDIsIHIyKSA9IHNwbGl0IHYxIHMyIGluXG4gICAgICAgICAgY29uY2F0X29yX2pvaW4gKG1lcmdlIGYgbDEgbDIpIHYxIChmIHYxIChTb21lIGQxKSBkMikgKG1lcmdlIGYgcjEgcjIpXG4gICAgICB8IChfLCBOb2RlIHtsPWwyOyB2PXYyOyBkPWQyOyByPXIyfSkgLT5cbiAgICAgICAgICBsZXQgKGwxLCBkMSwgcjEpID0gc3BsaXQgdjIgczEgaW5cbiAgICAgICAgICBjb25jYXRfb3Jfam9pbiAobWVyZ2UgZiBsMSBsMikgdjIgKGYgdjIgZDEgKFNvbWUgZDIpKSAobWVyZ2UgZiByMSByMilcbiAgICAgIHwgXyAtPlxuICAgICAgICAgIGFzc2VydCBmYWxzZVxuXG4gICAgbGV0IHJlYyB1bmlvbiBmIHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgIHwgKEVtcHR5LCBzKSB8IChzLCBFbXB0eSkgLT4gc1xuICAgICAgfCAoTm9kZSB7bD1sMTsgdj12MTsgZD1kMTsgcj1yMTsgaD1oMX0sXG4gICAgICAgICBOb2RlIHtsPWwyOyB2PXYyOyBkPWQyOyByPXIyOyBoPWgyfSkgLT5cbiAgICAgICAgICBpZiBoMSA+PSBoMiB0aGVuXG4gICAgICAgICAgICBsZXQgKGwyLCBkMiwgcjIpID0gc3BsaXQgdjEgczIgaW5cbiAgICAgICAgICAgIGxldCBsID0gdW5pb24gZiBsMSBsMiBhbmQgciA9IHVuaW9uIGYgcjEgcjIgaW5cbiAgICAgICAgICAgIG1hdGNoIGQyIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiBqb2luIGwgdjEgZDEgclxuICAgICAgICAgICAgfCBTb21lIGQyIC0+IGNvbmNhdF9vcl9qb2luIGwgdjEgKGYgdjEgZDEgZDIpIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgKGwxLCBkMSwgcjEpID0gc3BsaXQgdjIgczEgaW5cbiAgICAgICAgICAgIGxldCBsID0gdW5pb24gZiBsMSBsMiBhbmQgciA9IHVuaW9uIGYgcjEgcjIgaW5cbiAgICAgICAgICAgIG1hdGNoIGQxIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiBqb2luIGwgdjIgZDIgclxuICAgICAgICAgICAgfCBTb21lIGQxIC0+IGNvbmNhdF9vcl9qb2luIGwgdjIgKGYgdjIgZDEgZDIpIHJcblxuICAgIGxldCByZWMgZmlsdGVyIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSBhcyBtIC0+XG4gICAgICAgICAgKCogY2FsbCBbcF0gaW4gdGhlIGV4cGVjdGVkIGxlZnQtdG8tcmlnaHQgb3JkZXIgKilcbiAgICAgICAgICBsZXQgbCcgPSBmaWx0ZXIgcCBsIGluXG4gICAgICAgICAgbGV0IHB2ZCA9IHAgdiBkIGluXG4gICAgICAgICAgbGV0IHInID0gZmlsdGVyIHAgciBpblxuICAgICAgICAgIGlmIHB2ZCB0aGVuIGlmIGw9PWwnICYmIHI9PXInIHRoZW4gbSBlbHNlIGpvaW4gbCcgdiBkIHInXG4gICAgICAgICAgZWxzZSBjb25jYXQgbCcgcidcblxuICAgIGxldCByZWMgZmlsdGVyX21hcCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICAoKiBjYWxsIFtmXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCBsJyA9IGZpbHRlcl9tYXAgZiBsIGluXG4gICAgICAgICAgbGV0IGZ2ZCA9IGYgdiBkIGluXG4gICAgICAgICAgbGV0IHInID0gZmlsdGVyX21hcCBmIHIgaW5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBmdmQgd2l0aFxuICAgICAgICAgICAgfCBTb21lIGQnIC0+IGpvaW4gbCcgdiBkJyByJ1xuICAgICAgICAgICAgfCBOb25lIC0+IGNvbmNhdCBsJyByJ1xuICAgICAgICAgIGVuZFxuXG4gICAgbGV0IHJlYyBwYXJ0aXRpb24gcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IChFbXB0eSwgRW1wdHkpXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgKCogY2FsbCBbcF0gaW4gdGhlIGV4cGVjdGVkIGxlZnQtdG8tcmlnaHQgb3JkZXIgKilcbiAgICAgICAgICBsZXQgKGx0LCBsZikgPSBwYXJ0aXRpb24gcCBsIGluXG4gICAgICAgICAgbGV0IHB2ZCA9IHAgdiBkIGluXG4gICAgICAgICAgbGV0IChydCwgcmYpID0gcGFydGl0aW9uIHAgciBpblxuICAgICAgICAgIGlmIHB2ZFxuICAgICAgICAgIHRoZW4gKGpvaW4gbHQgdiBkIHJ0LCBjb25jYXQgbGYgcmYpXG4gICAgICAgICAgZWxzZSAoY29uY2F0IGx0IHJ0LCBqb2luIGxmIHYgZCByZilcblxuICAgIHR5cGUgJ2EgZW51bWVyYXRpb24gPSBFbmQgfCBNb3JlIG9mIGtleSAqICdhICogJ2EgdCAqICdhIGVudW1lcmF0aW9uXG5cbiAgICBsZXQgcmVjIGNvbnNfZW51bSBtIGUgPVxuICAgICAgbWF0Y2ggbSB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gY29uc19lbnVtIGwgKE1vcmUodiwgZCwgciwgZSkpXG5cbiAgICBsZXQgY29tcGFyZSBjbXAgbTEgbTIgPVxuICAgICAgbGV0IHJlYyBjb21wYXJlX2F1eCBlMSBlMiA9XG4gICAgICAgICAgbWF0Y2ggKGUxLCBlMikgd2l0aFxuICAgICAgICAgIChFbmQsIEVuZCkgLT4gMFxuICAgICAgICB8IChFbmQsIF8pICAtPiAtMVxuICAgICAgICB8IChfLCBFbmQpIC0+IDFcbiAgICAgICAgfCAoTW9yZSh2MSwgZDEsIHIxLCBlMSksIE1vcmUodjIsIGQyLCByMiwgZTIpKSAtPlxuICAgICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB2MSB2MiBpblxuICAgICAgICAgICAgaWYgYyA8PiAwIHRoZW4gYyBlbHNlXG4gICAgICAgICAgICBsZXQgYyA9IGNtcCBkMSBkMiBpblxuICAgICAgICAgICAgaWYgYyA8PiAwIHRoZW4gYyBlbHNlXG4gICAgICAgICAgICBjb21wYXJlX2F1eCAoY29uc19lbnVtIHIxIGUxKSAoY29uc19lbnVtIHIyIGUyKVxuICAgICAgaW4gY29tcGFyZV9hdXggKGNvbnNfZW51bSBtMSBFbmQpIChjb25zX2VudW0gbTIgRW5kKVxuXG4gICAgbGV0IGVxdWFsIGNtcCBtMSBtMiA9XG4gICAgICBsZXQgcmVjIGVxdWFsX2F1eCBlMSBlMiA9XG4gICAgICAgICAgbWF0Y2ggKGUxLCBlMikgd2l0aFxuICAgICAgICAgIChFbmQsIEVuZCkgLT4gdHJ1ZVxuICAgICAgICB8IChFbmQsIF8pICAtPiBmYWxzZVxuICAgICAgICB8IChfLCBFbmQpIC0+IGZhbHNlXG4gICAgICAgIHwgKE1vcmUodjEsIGQxLCByMSwgZTEpLCBNb3JlKHYyLCBkMiwgcjIsIGUyKSkgLT5cbiAgICAgICAgICAgIE9yZC5jb21wYXJlIHYxIHYyID0gMCAmJiBjbXAgZDEgZDIgJiZcbiAgICAgICAgICAgIGVxdWFsX2F1eCAoY29uc19lbnVtIHIxIGUxKSAoY29uc19lbnVtIHIyIGUyKVxuICAgICAgaW4gZXF1YWxfYXV4IChjb25zX2VudW0gbTEgRW5kKSAoY29uc19lbnVtIG0yIEVuZClcblxuICAgIGxldCByZWMgY2FyZGluYWwgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAwXG4gICAgICB8IE5vZGUge2w7IHJ9IC0+IGNhcmRpbmFsIGwgKyAxICsgY2FyZGluYWwgclxuXG4gICAgbGV0IHJlYyBiaW5kaW5nc19hdXggYWNjdSA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gYmluZGluZ3NfYXV4ICgodiwgZCkgOjogYmluZGluZ3NfYXV4IGFjY3UgcikgbFxuXG4gICAgbGV0IGJpbmRpbmdzIHMgPVxuICAgICAgYmluZGluZ3NfYXV4IFtdIHNcblxuICAgIGxldCBjaG9vc2UgPSBtaW5fYmluZGluZ1xuXG4gICAgbGV0IGNob29zZV9vcHQgPSBtaW5fYmluZGluZ19vcHRcblxuICAgIGxldCBhZGRfc2VxIGkgbSA9XG4gICAgICBTZXEuZm9sZF9sZWZ0IChmdW4gbSAoayx2KSAtPiBhZGQgayB2IG0pIG0gaVxuXG4gICAgbGV0IG9mX3NlcSBpID0gYWRkX3NlcSBpIGVtcHR5XG5cbiAgICBsZXQgcmVjIHNlcV9vZl9lbnVtXyBjICgpID0gbWF0Y2ggYyB3aXRoXG4gICAgICB8IEVuZCAtPiBTZXEuTmlsXG4gICAgICB8IE1vcmUgKGssdix0LHJlc3QpIC0+IFNlcS5Db25zICgoayx2KSwgc2VxX29mX2VudW1fIChjb25zX2VudW0gdCByZXN0KSlcblxuICAgIGxldCB0b19zZXEgbSA9XG4gICAgICBzZXFfb2ZfZW51bV8gKGNvbnNfZW51bSBtIEVuZClcblxuICAgIGxldCByZWMgc25vY19lbnVtIHMgZSA9XG4gICAgICBtYXRjaCBzIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gZVxuICAgICAgfCBOb2Rle2w7IHY7IGQ7IHJ9IC0+IHNub2NfZW51bSByIChNb3JlKHYsIGQsIGwsIGUpKVxuXG4gICAgbGV0IHJlYyByZXZfc2VxX29mX2VudW1fIGMgKCkgPSBtYXRjaCBjIHdpdGhcbiAgICAgIHwgRW5kIC0+IFNlcS5OaWxcbiAgICAgIHwgTW9yZSAoayx2LHQscmVzdCkgLT5cbiAgICAgICAgICBTZXEuQ29ucyAoKGssdiksIHJldl9zZXFfb2ZfZW51bV8gKHNub2NfZW51bSB0IHJlc3QpKVxuXG4gICAgbGV0IHRvX3Jldl9zZXEgYyA9XG4gICAgICByZXZfc2VxX29mX2VudW1fIChzbm9jX2VudW0gYyBFbmQpXG5cbiAgICBsZXQgdG9fc2VxX2Zyb20gbG93IG0gPVxuICAgICAgbGV0IHJlYyBhdXggbG93IG0gYyA9IG1hdGNoIG0gd2l0aFxuICAgICAgICB8IEVtcHR5IC0+IGNcbiAgICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBffSAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggT3JkLmNvbXBhcmUgdiBsb3cgd2l0aFxuICAgICAgICAgICAgICB8IDAgLT4gTW9yZSAodiwgZCwgciwgYylcbiAgICAgICAgICAgICAgfCBuIHdoZW4gbjwwIC0+IGF1eCBsb3cgciBjXG4gICAgICAgICAgICAgIHwgXyAtPiBhdXggbG93IGwgKE1vcmUgKHYsIGQsIHIsIGMpKVxuICAgICAgICAgICAgZW5kXG4gICAgICBpblxuICAgICAgc2VxX29mX2VudW1fIChhdXggbG93IG0gRW5kKVxuZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgJ2EgdCA9IHsgbXV0YWJsZSBjIDogJ2EgbGlzdDsgbXV0YWJsZSBsZW4gOiBpbnQ7IH1cblxuZXhjZXB0aW9uIEVtcHR5XG5cbmxldCBjcmVhdGUgKCkgPSB7IGMgPSBbXTsgbGVuID0gMDsgfVxuXG5sZXQgY2xlYXIgcyA9IHMuYyA8LSBbXTsgcy5sZW4gPC0gMFxuXG5sZXQgY29weSBzID0geyBjID0gcy5jOyBsZW4gPSBzLmxlbjsgfVxuXG5sZXQgcHVzaCB4IHMgPSBzLmMgPC0geCA6OiBzLmM7IHMubGVuIDwtIHMubGVuICsgMVxuXG5sZXQgcG9wIHMgPVxuICBtYXRjaCBzLmMgd2l0aFxuICB8IGhkOjp0bCAtPiBzLmMgPC0gdGw7IHMubGVuIDwtIHMubGVuIC0gMTsgaGRcbiAgfCBbXSAgICAgLT4gcmFpc2UgRW1wdHlcblxubGV0IHBvcF9vcHQgcyA9XG4gIG1hdGNoIHMuYyB3aXRoXG4gIHwgaGQ6OnRsIC0+IHMuYyA8LSB0bDsgcy5sZW4gPC0gcy5sZW4gLSAxOyBTb21lIGhkXG4gIHwgW10gICAgIC0+IE5vbmVcblxubGV0IHRvcCBzID1cbiAgbWF0Y2ggcy5jIHdpdGhcbiAgfCBoZDo6XyAtPiBoZFxuICB8IFtdICAgIC0+IHJhaXNlIEVtcHR5XG5cbmxldCB0b3Bfb3B0IHMgPVxuICBtYXRjaCBzLmMgd2l0aFxuICB8IGhkOjpfIC0+IFNvbWUgaGRcbiAgfCBbXSAgICAtPiBOb25lXG5cbmxldCBpc19lbXB0eSBzID0gKHMuYyA9IFtdKVxuXG5sZXQgbGVuZ3RoIHMgPSBzLmxlblxuXG5sZXQgaXRlciBmIHMgPSBMaXN0Lml0ZXIgZiBzLmNcblxubGV0IGZvbGQgZiBhY2MgcyA9IExpc3QuZm9sZF9sZWZ0IGYgYWNjIHMuY1xuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHMgPSBMaXN0LnRvX3NlcSBzLmNcblxubGV0IGFkZF9zZXEgcSBpID0gU2VxLml0ZXIgKGZ1biB4IC0+IHB1c2ggeCBxKSBpXG5cbmxldCBvZl9zZXEgZyA9XG4gIGxldCBzID0gY3JlYXRlKCkgaW5cbiAgYWRkX3NlcSBzIGc7XG4gIHNcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgRnJhbmNvaXMgUG90dGllciwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgSmVyZW1pZSBEaW1pbm8sIEphbmUgU3RyZWV0IEV1cm9wZSAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuZXhjZXB0aW9uIEVtcHR5XG5cbnR5cGUgJ2EgY2VsbCA9XG4gIHwgTmlsXG4gIHwgQ29ucyBvZiB7IGNvbnRlbnQ6ICdhOyBtdXRhYmxlIG5leHQ6ICdhIGNlbGwgfVxuXG50eXBlICdhIHQgPSB7XG4gIG11dGFibGUgbGVuZ3RoOiBpbnQ7XG4gIG11dGFibGUgZmlyc3Q6ICdhIGNlbGw7XG4gIG11dGFibGUgbGFzdDogJ2EgY2VsbFxufVxuXG5sZXQgY3JlYXRlICgpID0ge1xuICBsZW5ndGggPSAwO1xuICBmaXJzdCA9IE5pbDtcbiAgbGFzdCA9IE5pbFxufVxuXG5sZXQgY2xlYXIgcSA9XG4gIHEubGVuZ3RoIDwtIDA7XG4gIHEuZmlyc3QgPC0gTmlsO1xuICBxLmxhc3QgPC0gTmlsXG5cbmxldCBhZGQgeCBxID1cbiAgbGV0IGNlbGwgPSBDb25zIHtcbiAgICBjb250ZW50ID0geDtcbiAgICBuZXh0ID0gTmlsXG4gIH0gaW5cbiAgbWF0Y2ggcS5sYXN0IHdpdGhcbiAgfCBOaWwgLT5cbiAgICBxLmxlbmd0aCA8LSAxO1xuICAgIHEuZmlyc3QgPC0gY2VsbDtcbiAgICBxLmxhc3QgPC0gY2VsbFxuICB8IENvbnMgbGFzdCAtPlxuICAgIHEubGVuZ3RoIDwtIHEubGVuZ3RoICsgMTtcbiAgICBsYXN0Lm5leHQgPC0gY2VsbDtcbiAgICBxLmxhc3QgPC0gY2VsbFxuXG5sZXQgcHVzaCA9XG4gIGFkZFxuXG5sZXQgcGVlayBxID1cbiAgbWF0Y2ggcS5maXJzdCB3aXRoXG4gIHwgTmlsIC0+IHJhaXNlIEVtcHR5XG4gIHwgQ29ucyB7IGNvbnRlbnQgfSAtPiBjb250ZW50XG5cbmxldCBwZWVrX29wdCBxID1cbiAgbWF0Y2ggcS5maXJzdCB3aXRoXG4gIHwgTmlsIC0+IE5vbmVcbiAgfCBDb25zIHsgY29udGVudCB9IC0+IFNvbWUgY29udGVudFxuXG5sZXQgdG9wID1cbiAgcGVla1xuXG5sZXQgdGFrZSBxID1cbiAgbWF0Y2ggcS5maXJzdCB3aXRoXG4gIHwgTmlsIC0+IHJhaXNlIEVtcHR5XG4gIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgPSBOaWwgfSAtPlxuICAgIGNsZWFyIHE7XG4gICAgY29udGVudFxuICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICBxLmxlbmd0aCA8LSBxLmxlbmd0aCAtIDE7XG4gICAgcS5maXJzdCA8LSBuZXh0O1xuICAgIGNvbnRlbnRcblxubGV0IHRha2Vfb3B0IHEgPVxuICBtYXRjaCBxLmZpcnN0IHdpdGhcbiAgfCBOaWwgLT4gTm9uZVxuICB8IENvbnMgeyBjb250ZW50OyBuZXh0ID0gTmlsIH0gLT5cbiAgICBjbGVhciBxO1xuICAgIFNvbWUgY29udGVudFxuICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICBxLmxlbmd0aCA8LSBxLmxlbmd0aCAtIDE7XG4gICAgcS5maXJzdCA8LSBuZXh0O1xuICAgIFNvbWUgY29udGVudFxuXG5sZXQgcG9wID1cbiAgdGFrZVxuXG5sZXQgY29weSA9XG4gIGxldCByZWMgY29weSBxX3JlcyBwcmV2IGNlbGwgPVxuICAgIG1hdGNoIGNlbGwgd2l0aFxuICAgIHwgTmlsIC0+IHFfcmVzLmxhc3QgPC0gcHJldjsgcV9yZXNcbiAgICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICAgIGxldCByZXMgPSBDb25zIHsgY29udGVudDsgbmV4dCA9IE5pbCB9IGluXG4gICAgICBiZWdpbiBtYXRjaCBwcmV2IHdpdGhcbiAgICAgIHwgTmlsIC0+IHFfcmVzLmZpcnN0IDwtIHJlc1xuICAgICAgfCBDb25zIHAgLT4gcC5uZXh0IDwtIHJlc1xuICAgICAgZW5kO1xuICAgICAgY29weSBxX3JlcyByZXMgbmV4dFxuICBpblxuICBmdW4gcSAtPiBjb3B5IHsgbGVuZ3RoID0gcS5sZW5ndGg7IGZpcnN0ID0gTmlsOyBsYXN0ID0gTmlsIH0gTmlsIHEuZmlyc3RcblxubGV0IGlzX2VtcHR5IHEgPVxuICBxLmxlbmd0aCA9IDBcblxubGV0IGxlbmd0aCBxID1cbiAgcS5sZW5ndGhcblxubGV0IGl0ZXIgPVxuICBsZXQgcmVjIGl0ZXIgZiBjZWxsID1cbiAgICBtYXRjaCBjZWxsIHdpdGhcbiAgICB8IE5pbCAtPiAoKVxuICAgIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgICAgZiBjb250ZW50O1xuICAgICAgaXRlciBmIG5leHRcbiAgaW5cbiAgZnVuIGYgcSAtPiBpdGVyIGYgcS5maXJzdFxuXG5sZXQgZm9sZCA9XG4gIGxldCByZWMgZm9sZCBmIGFjY3UgY2VsbCA9XG4gICAgbWF0Y2ggY2VsbCB3aXRoXG4gICAgfCBOaWwgLT4gYWNjdVxuICAgIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgICAgbGV0IGFjY3UgPSBmIGFjY3UgY29udGVudCBpblxuICAgICAgZm9sZCBmIGFjY3UgbmV4dFxuICBpblxuICBmdW4gZiBhY2N1IHEgLT4gZm9sZCBmIGFjY3UgcS5maXJzdFxuXG5sZXQgdHJhbnNmZXIgcTEgcTIgPVxuICBpZiBxMS5sZW5ndGggPiAwIHRoZW5cbiAgICBtYXRjaCBxMi5sYXN0IHdpdGhcbiAgICB8IE5pbCAtPlxuICAgICAgcTIubGVuZ3RoIDwtIHExLmxlbmd0aDtcbiAgICAgIHEyLmZpcnN0IDwtIHExLmZpcnN0O1xuICAgICAgcTIubGFzdCA8LSBxMS5sYXN0O1xuICAgICAgY2xlYXIgcTFcbiAgICB8IENvbnMgbGFzdCAtPlxuICAgICAgcTIubGVuZ3RoIDwtIHEyLmxlbmd0aCArIHExLmxlbmd0aDtcbiAgICAgIGxhc3QubmV4dCA8LSBxMS5maXJzdDtcbiAgICAgIHEyLmxhc3QgPC0gcTEubGFzdDtcbiAgICAgIGNsZWFyIHExXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgcSA9XG4gIGxldCByZWMgYXV4IGMgKCkgPSBtYXRjaCBjIHdpdGhcbiAgICB8IE5pbCAtPiBTZXEuTmlsXG4gICAgfCBDb25zIHsgY29udGVudD14OyBuZXh0OyB9IC0+IFNlcS5Db25zICh4LCBhdXggbmV4dClcbiAgaW5cbiAgYXV4IHEuZmlyc3RcblxubGV0IGFkZF9zZXEgcSBpID0gU2VxLml0ZXIgKGZ1biB4IC0+IHB1c2ggeCBxKSBpXG5cbmxldCBvZl9zZXEgZyA9XG4gIGxldCBxID0gY3JlYXRlKCkgaW5cbiAgYWRkX3NlcSBxIGc7XG4gIHFcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgRGFuaWVsIGRlIFJhdWdsYXVkcmUsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAnYSB0ID0gJ2EgY2VsbCBvcHRpb25cbmFuZCAnYSBjZWxsID0geyBtdXRhYmxlIGNvdW50IDogaW50OyBtdXRhYmxlIGRhdGEgOiAnYSBkYXRhIH1cbmFuZCAnYSBkYXRhID1cbiAgICBTZW1wdHlcbiAgfCBTY29ucyBvZiAnYSAqICdhIGRhdGFcbiAgfCBTYXBwIG9mICdhIGRhdGEgKiAnYSBkYXRhXG4gIHwgU2xhenkgb2YgJ2EgZGF0YSBMYXp5LnRcbiAgfCBTZ2VuIG9mICdhIGdlblxuICB8IFNidWZmaW8gOiBidWZmaW8gLT4gY2hhciBkYXRhXG5hbmQgJ2EgZ2VuID0geyBtdXRhYmxlIGN1cnIgOiAnYSBvcHRpb24gb3B0aW9uOyBmdW5jIDogaW50IC0+ICdhIG9wdGlvbiB9XG5hbmQgYnVmZmlvID1cbiAgeyBpYyA6IGluX2NoYW5uZWw7IGJ1ZmYgOiBieXRlczsgbXV0YWJsZSBsZW4gOiBpbnQ7IG11dGFibGUgaW5kIDogaW50IH1cblxuZXhjZXB0aW9uIEZhaWx1cmVcbmV4Y2VwdGlvbiBFcnJvciBvZiBzdHJpbmdcblxubGV0IGNvdW50ID0gZnVuY3Rpb25cbiAgfCBOb25lIC0+IDBcbiAgfCBTb21lIHsgY291bnQgfSAtPiBjb3VudFxubGV0IGRhdGEgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gU2VtcHR5XG4gIHwgU29tZSB7IGRhdGEgfSAtPiBkYXRhXG5cbmxldCBmaWxsX2J1ZmYgYiA9XG4gIGIubGVuIDwtIGlucHV0IGIuaWMgYi5idWZmIDAgKEJ5dGVzLmxlbmd0aCBiLmJ1ZmYpOyBiLmluZCA8LSAwXG5cblxubGV0IHJlYyBnZXRfZGF0YSA6IHR5cGUgdi4gaW50IC0+IHYgZGF0YSAtPiB2IGRhdGEgPSBmdW4gY291bnQgZCAtPiBtYXRjaCBkIHdpdGhcbiAoKiBSZXR1cm5zIGVpdGhlciBTZW1wdHkgb3IgU2NvbnMoYSwgXykgZXZlbiB3aGVuIGQgaXMgYSBnZW5lcmF0b3JcbiAgICBvciBhIGJ1ZmZlci4gSW4gdGhvc2UgY2FzZXMsIHRoZSBpdGVtIGEgaXMgc2VlbiBhcyBleHRyYWN0ZWQgZnJvbVxuIHRoZSBnZW5lcmF0b3IvYnVmZmVyLlxuIFRoZSBjb3VudCBwYXJhbWV0ZXIgaXMgdXNlZCBmb3IgY2FsbGluZyBgU2dlbi1mdW5jdGlvbnMnLiAgKilcbiAgIFNlbXB0eSB8IFNjb25zIChfLCBfKSAtPiBkXG4gfCBTYXBwIChkMSwgZDIpIC0+XG4gICAgIGJlZ2luIG1hdGNoIGdldF9kYXRhIGNvdW50IGQxIHdpdGhcbiAgICAgICBTY29ucyAoYSwgZDExKSAtPiBTY29ucyAoYSwgU2FwcCAoZDExLCBkMikpXG4gICAgIHwgU2VtcHR5IC0+IGdldF9kYXRhIGNvdW50IGQyXG4gICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgICAgZW5kXG4gfCBTZ2VuIHtjdXJyID0gU29tZSBOb25lfSAtPiBTZW1wdHlcbiB8IFNnZW4gKHtjdXJyID0gU29tZShTb21lIGEpfSBhcyBnKSAtPlxuICAgICBnLmN1cnIgPC0gTm9uZTsgU2NvbnMoYSwgZClcbiB8IFNnZW4gZyAtPlxuICAgICBiZWdpbiBtYXRjaCBnLmZ1bmMgY291bnQgd2l0aFxuICAgICAgIE5vbmUgLT4gZy5jdXJyIDwtIFNvbWUoTm9uZSk7IFNlbXB0eVxuICAgICB8IFNvbWUgYSAtPiBTY29ucyhhLCBkKVxuICAgICAgICAgKCogV2FybmluZzogYW55b25lIHVzaW5nIGcgdGhpbmtzIHRoYXQgYW4gaXRlbSBoYXMgYmVlbiByZWFkICopXG4gICAgIGVuZFxuIHwgU2J1ZmZpbyBiIC0+XG4gICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgIGlmIGIubGVuID09IDAgdGhlbiBTZW1wdHkgZWxzZVxuICAgICAgIGxldCByID0gQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmYgYi5pbmQgaW5cbiAgICAgICAoKiBXYXJuaW5nOiBhbnlvbmUgdXNpbmcgZyB0aGlua3MgdGhhdCBhbiBpdGVtIGhhcyBiZWVuIHJlYWQgKilcbiAgICAgICBiLmluZCA8LSBzdWNjIGIuaW5kOyBTY29ucyhyLCBkKVxuIHwgU2xhenkgZiAtPiBnZXRfZGF0YSBjb3VudCAoTGF6eS5mb3JjZSBmKVxuXG5cbmxldCByZWMgcGVla19kYXRhIDogdHlwZSB2LiB2IGNlbGwgLT4gdiBvcHRpb24gPSBmdW4gcyAtPlxuICgqIGNvbnN1bHQgdGhlIGZpcnN0IGl0ZW0gb2YgcyAqKVxuIG1hdGNoIHMuZGF0YSB3aXRoXG4gICBTZW1wdHkgLT4gTm9uZVxuIHwgU2NvbnMgKGEsIF8pIC0+IFNvbWUgYVxuIHwgU2FwcCAoXywgXykgLT5cbiAgICAgYmVnaW4gbWF0Y2ggZ2V0X2RhdGEgcy5jb3VudCBzLmRhdGEgd2l0aFxuICAgICAgIFNjb25zKGEsIF8pIGFzIGQgLT4gcy5kYXRhIDwtIGQ7IFNvbWUgYVxuICAgICB8IFNlbXB0eSAtPiBOb25lXG4gICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgICAgZW5kXG4gfCBTbGF6eSBmIC0+IHMuZGF0YSA8LSAoTGF6eS5mb3JjZSBmKTsgcGVla19kYXRhIHNcbiB8IFNnZW4ge2N1cnIgPSBTb21lIGF9IC0+IGFcbiB8IFNnZW4gZyAtPiBsZXQgeCA9IGcuZnVuYyBzLmNvdW50IGluIGcuY3VyciA8LSBTb21lIHg7IHhcbiB8IFNidWZmaW8gYiAtPlxuICAgICBpZiBiLmluZCA+PSBiLmxlbiB0aGVuIGZpbGxfYnVmZiBiO1xuICAgICBpZiBiLmxlbiA9PSAwIHRoZW4gYmVnaW4gcy5kYXRhIDwtIFNlbXB0eTsgTm9uZSBlbmRcbiAgICAgZWxzZSBTb21lIChCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZiBiLmluZClcblxuXG5sZXQgcGVlayA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiBOb25lXG4gIHwgU29tZSBzIC0+IHBlZWtfZGF0YSBzXG5cblxubGV0IHJlYyBqdW5rX2RhdGEgOiB0eXBlIHYuIHYgY2VsbCAtPiB1bml0ID0gZnVuIHMgLT5cbiAgbWF0Y2ggcy5kYXRhIHdpdGhcbiAgICBTY29ucyAoXywgZCkgLT4gcy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgcy5kYXRhIDwtIGRcbiAgfCBTZ2VuICh7Y3VyciA9IFNvbWUgX30gYXMgZykgLT4gcy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgZy5jdXJyIDwtIE5vbmVcbiAgfCBTYnVmZmlvIGIgLT5cbiAgICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgICBpZiBiLmxlbiA9PSAwIHRoZW4gcy5kYXRhIDwtIFNlbXB0eVxuICAgICAgZWxzZSAocy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgYi5pbmQgPC0gc3VjYyBiLmluZClcbiAgfCBfIC0+XG4gICAgICBtYXRjaCBwZWVrX2RhdGEgcyB3aXRoXG4gICAgICAgIE5vbmUgLT4gKClcbiAgICAgIHwgU29tZSBfIC0+IGp1bmtfZGF0YSBzXG5cblxubGV0IGp1bmsgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gKClcbiAgfCBTb21lIGRhdGEgLT4ganVua19kYXRhIGRhdGFcblxubGV0IHJlYyBuZ2V0X2RhdGEgbiBzID1cbiAgaWYgbiA8PSAwIHRoZW4gW10sIHMuZGF0YSwgMFxuICBlbHNlXG4gICAgbWF0Y2ggcGVla19kYXRhIHMgd2l0aFxuICAgICAgU29tZSBhIC0+XG4gICAgICAgIGp1bmtfZGF0YSBzO1xuICAgICAgICBsZXQgKGFsLCBkLCBrKSA9IG5nZXRfZGF0YSAocHJlZCBuKSBzIGluIGEgOjogYWwsIFNjb25zIChhLCBkKSwgc3VjYyBrXG4gICAgfCBOb25lIC0+IFtdLCBzLmRhdGEsIDBcblxuXG5sZXQgbnBlZWtfZGF0YSBuIHMgPVxuICBsZXQgKGFsLCBkLCBsZW4pID0gbmdldF9kYXRhIG4gcyBpblxuICBzLmNvdW50IDwtIChzLmNvdW50IC0gbGVuKTtcbiAgcy5kYXRhIDwtIGQ7XG4gIGFsXG5cblxubGV0IG5wZWVrIG4gPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gW11cbiAgfCBTb21lIGQgLT4gbnBlZWtfZGF0YSBuIGRcblxubGV0IG5leHQgcyA9XG4gIG1hdGNoIHBlZWsgcyB3aXRoXG4gICAgU29tZSBhIC0+IGp1bmsgczsgYVxuICB8IE5vbmUgLT4gcmFpc2UgRmFpbHVyZVxuXG5cbmxldCBlbXB0eSBzID1cbiAgbWF0Y2ggcGVlayBzIHdpdGhcbiAgICBTb21lIF8gLT4gcmFpc2UgRmFpbHVyZVxuICB8IE5vbmUgLT4gKClcblxuXG5sZXQgaXRlciBmIHN0cm0gPVxuICBsZXQgcmVjIGRvX3JlYyAoKSA9XG4gICAgbWF0Y2ggcGVlayBzdHJtIHdpdGhcbiAgICAgIFNvbWUgYSAtPiBqdW5rIHN0cm07IGlnbm9yZShmIGEpOyBkb19yZWMgKClcbiAgICB8IE5vbmUgLT4gKClcbiAgaW5cbiAgZG9fcmVjICgpXG5cblxuKCogU3RyZWFtIGJ1aWxkaW5nIGZ1bmN0aW9ucyAqKVxuXG5sZXQgZnJvbSBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2dlbiB7Y3VyciA9IE5vbmU7IGZ1bmMgPSBmfX1cblxubGV0IG9mX2xpc3QgbCA9XG4gIFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IExpc3QuZm9sZF9yaWdodCAoZnVuIHggbCAtPiBTY29ucyAoeCwgbCkpIGwgU2VtcHR5fVxuXG5cbmxldCBvZl9zdHJpbmcgcyA9XG4gIGxldCBjb3VudCA9IHJlZiAwIGluXG4gIGZyb20gKGZ1biBfIC0+XG4gICAgKCogV2UgY2Fubm90IHVzZSB0aGUgaW5kZXggcGFzc2VkIGJ5IHRoZSBbZnJvbV0gZnVuY3Rpb24gZGlyZWN0bHlcbiAgICAgICBiZWNhdXNlIGl0IHJldHVybnMgdGhlIGN1cnJlbnQgc3RyZWFtIGNvdW50LCB3aXRoIGFic29sdXRlbHkgbm9cbiAgICAgICBndWFyYW50ZWUgdGhhdCBpdCB3aWxsIHN0YXJ0IGZyb20gMC4gRm9yIGV4YW1wbGUsIGluIHRoZSBjYXNlXG4gICAgICAgb2YgW1N0cmVhbS5pY29ucyAnYycgKFN0cmVhbS5mcm9tX3N0cmluZyBcImFiXCIpXSwgdGhlIGZpcnN0XG4gICAgICAgYWNjZXNzIHRvIHRoZSBzdHJpbmcgd2lsbCBiZSBtYWRlIHdpdGggY291bnQgWzFdIGFscmVhZHkuXG4gICAgKilcbiAgICBsZXQgYyA9ICFjb3VudCBpblxuICAgIGlmIGMgPCBTdHJpbmcubGVuZ3RoIHNcbiAgICB0aGVuIChpbmNyIGNvdW50OyBTb21lIHMuW2NdKVxuICAgIGVsc2UgTm9uZSlcblxuXG5sZXQgb2ZfYnl0ZXMgcyA9XG4gIGxldCBjb3VudCA9IHJlZiAwIGluXG4gIGZyb20gKGZ1biBfIC0+XG4gICAgbGV0IGMgPSAhY291bnQgaW5cbiAgICBpZiBjIDwgQnl0ZXMubGVuZ3RoIHNcbiAgICB0aGVuIChpbmNyIGNvdW50OyBTb21lIChCeXRlcy5nZXQgcyBjKSlcbiAgICBlbHNlIE5vbmUpXG5cblxubGV0IG9mX2NoYW5uZWwgaWMgPVxuICBTb21lIHtjb3VudCA9IDA7XG4gICAgICAgIGRhdGEgPSBTYnVmZmlvIHtpYyA9IGljOyBidWZmID0gQnl0ZXMuY3JlYXRlIDQwOTY7IGxlbiA9IDA7IGluZCA9IDB9fVxuXG5cbigqIFN0cmVhbSBleHByZXNzaW9ucyBidWlsZGVycyAqKVxuXG5sZXQgaWFwcCBpIHMgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTYXBwIChkYXRhIGksIGRhdGEgcyl9XG5sZXQgaWNvbnMgaSBzID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2NvbnMgKGksIGRhdGEgcyl9XG5sZXQgaXNpbmcgaSA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNjb25zIChpLCBTZW1wdHkpfVxuXG5sZXQgbGFwcCBmIHMgPVxuICBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShTYXBwIChkYXRhIChmICgpKSwgZGF0YSBzKSkpfVxuXG5sZXQgbGNvbnMgZiBzID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoU2NvbnMgKGYgKCksIGRhdGEgcykpKX1cbmxldCBsc2luZyBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoU2NvbnMgKGYgKCksIFNlbXB0eSkpKX1cblxubGV0IHNlbXB0eSA9IE5vbmVcbmxldCBzbGF6eSBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoZGF0YSAoZiAoKSkpKX1cblxuKCogRm9yIGRlYnVnZ2luZyB1c2UgKilcblxubGV0IHJlYyBkdW1wIDogdHlwZSB2LiAodiAtPiB1bml0KSAtPiB2IHQgLT4gdW5pdCA9IGZ1biBmIHMgLT5cbiAgcHJpbnRfc3RyaW5nIFwie2NvdW50ID0gXCI7XG4gIHByaW50X2ludCAoY291bnQgcyk7XG4gIHByaW50X3N0cmluZyBcIjsgZGF0YSA9IFwiO1xuICBkdW1wX2RhdGEgZiAoZGF0YSBzKTtcbiAgcHJpbnRfc3RyaW5nIFwifVwiO1xuICBwcmludF9uZXdsaW5lICgpXG5hbmQgZHVtcF9kYXRhIDogdHlwZSB2LiAodiAtPiB1bml0KSAtPiB2IGRhdGEgLT4gdW5pdCA9IGZ1biBmIC0+XG4gIGZ1bmN0aW9uXG4gICAgU2VtcHR5IC0+IHByaW50X3N0cmluZyBcIlNlbXB0eVwiXG4gIHwgU2NvbnMgKGEsIGQpIC0+XG4gICAgICBwcmludF9zdHJpbmcgXCJTY29ucyAoXCI7XG4gICAgICBmIGE7XG4gICAgICBwcmludF9zdHJpbmcgXCIsIFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDtcbiAgICAgIHByaW50X3N0cmluZyBcIilcIlxuICB8IFNhcHAgKGQxLCBkMikgLT5cbiAgICAgIHByaW50X3N0cmluZyBcIlNhcHAgKFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDE7XG4gICAgICBwcmludF9zdHJpbmcgXCIsIFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDI7XG4gICAgICBwcmludF9zdHJpbmcgXCIpXCJcbiAgfCBTbGF6eSBfIC0+IHByaW50X3N0cmluZyBcIlNsYXp5XCJcbiAgfCBTZ2VuIF8gLT4gcHJpbnRfc3RyaW5nIFwiU2dlblwiXG4gIHwgU2J1ZmZpbyBfIC0+IHByaW50X3N0cmluZyBcIlNidWZmaW9cIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgUGllcnJlIFdlaXMgYW5kIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5OSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBFeHRlbnNpYmxlIGJ1ZmZlcnMgKilcblxudHlwZSB0ID1cbiB7bXV0YWJsZSBidWZmZXIgOiBieXRlcztcbiAgbXV0YWJsZSBwb3NpdGlvbiA6IGludDtcbiAgbXV0YWJsZSBsZW5ndGggOiBpbnQ7XG4gIGluaXRpYWxfYnVmZmVyIDogYnl0ZXN9XG4oKiBJbnZhcmlhbnRzOiBhbGwgcGFydHMgb2YgdGhlIGNvZGUgcHJlc2VydmUgdGhlIGludmFyaWFudHMgdGhhdDpcbiAgIC0gWzAgPD0gYi5wb3NpdGlvbiA8PSBiLmxlbmd0aF1cbiAgIC0gW2IubGVuZ3RoID0gQnl0ZXMubGVuZ3RoIGIuYnVmZmVyXVxuXG4gICBOb3RlIGluIHBhcnRpY3VsYXIgdGhhdCBbYi5wb3NpdGlvbiA9IGIubGVuZ3RoXSBpcyBsZWdhbCxcbiAgIGl0IG1lYW5zIHRoYXQgdGhlIGJ1ZmZlciBpcyBmdWxsIGFuZCB3aWxsIGhhdmUgdG8gYmUgZXh0ZW5kZWRcbiAgIGJlZm9yZSBhbnkgZnVydGhlciBhZGRpdGlvbi4gKilcblxubGV0IGNyZWF0ZSBuID1cbiBsZXQgbiA9IGlmIG4gPCAxIHRoZW4gMSBlbHNlIG4gaW5cbiBsZXQgbiA9IGlmIG4gPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlbiBTeXMubWF4X3N0cmluZ19sZW5ndGggZWxzZSBuIGluXG4gbGV0IHMgPSBCeXRlcy5jcmVhdGUgbiBpblxuIHtidWZmZXIgPSBzOyBwb3NpdGlvbiA9IDA7IGxlbmd0aCA9IG47IGluaXRpYWxfYnVmZmVyID0gc31cblxubGV0IGNvbnRlbnRzIGIgPSBCeXRlcy5zdWJfc3RyaW5nIGIuYnVmZmVyIDAgYi5wb3NpdGlvblxubGV0IHRvX2J5dGVzIGIgPSBCeXRlcy5zdWIgYi5idWZmZXIgMCBiLnBvc2l0aW9uXG5cbmxldCBzdWIgYiBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGIucG9zaXRpb24gLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5zdWJcIlxuICBlbHNlIEJ5dGVzLnN1Yl9zdHJpbmcgYi5idWZmZXIgb2ZzIGxlblxuXG5cbmxldCBibGl0IHNyYyBzcmNvZmYgZHN0IGRzdG9mZiBsZW4gPVxuICBpZiBsZW4gPCAwIHx8IHNyY29mZiA8IDAgfHwgc3Jjb2ZmID4gc3JjLnBvc2l0aW9uIC0gbGVuXG4gICAgICAgICAgICAgfHwgZHN0b2ZmIDwgMCB8fCBkc3RvZmYgPiAoQnl0ZXMubGVuZ3RoIGRzdCkgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5ibGl0XCJcbiAgZWxzZVxuICAgIEJ5dGVzLnVuc2FmZV9ibGl0IHNyYy5idWZmZXIgc3Jjb2ZmIGRzdCBkc3RvZmYgbGVuXG5cblxubGV0IG50aCBiIG9mcyA9XG4gIGlmIG9mcyA8IDAgfHwgb2ZzID49IGIucG9zaXRpb24gdGhlblxuICAgaW52YWxpZF9hcmcgXCJCdWZmZXIubnRoXCJcbiAgZWxzZSBCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZmVyIG9mc1xuXG5cbmxldCBsZW5ndGggYiA9IGIucG9zaXRpb25cblxubGV0IGNsZWFyIGIgPSBiLnBvc2l0aW9uIDwtIDBcblxubGV0IHJlc2V0IGIgPVxuICBiLnBvc2l0aW9uIDwtIDA7XG4gIGIuYnVmZmVyIDwtIGIuaW5pdGlhbF9idWZmZXI7XG4gIGIubGVuZ3RoIDwtIEJ5dGVzLmxlbmd0aCBiLmJ1ZmZlclxuXG4oKiBbcmVzaXplIGIgbW9yZV0gZW5zdXJlcyB0aGF0IFtiLnBvc2l0aW9uICsgbW9yZSA8PSBiLmxlbmd0aF0gaG9sZHNcbiAgIGJ5IGR5bmFtaWNhbGx5IGV4dGVuZGluZyBbYi5idWZmZXJdIGlmIG5lY2Vzc2FyeSAtLSBhbmQgdGh1c1xuICAgaW5jcmVhc2luZyBbYi5sZW5ndGhdLlxuXG4gICBJbiBwYXJ0aWN1bGFyLCBhZnRlciBbcmVzaXplIGIgbW9yZV0gaXMgY2FsbGVkLCBhIGRpcmVjdCBhY2Nlc3Mgb2ZcbiAgIHNpemUgW21vcmVdIGF0IFtiLnBvc2l0aW9uXSB3aWxsIGFsd2F5cyBiZSBpbi1ib3VuZHMsIHNvIHRoYXRcbiAgICh1bnNhZmVfe2dldCxzZXR9KSBtYXkgYmUgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG4qKVxubGV0IHJlc2l6ZSBiIG1vcmUgPVxuICBsZXQgb2xkX3BvcyA9IGIucG9zaXRpb24gaW5cbiAgbGV0IG9sZF9sZW4gPSBiLmxlbmd0aCBpblxuICBsZXQgbmV3X2xlbiA9IHJlZiBvbGRfbGVuIGluXG4gIHdoaWxlIG9sZF9wb3MgKyBtb3JlID4gIW5ld19sZW4gZG8gbmV3X2xlbiA6PSAyICogIW5ld19sZW4gZG9uZTtcbiAgaWYgIW5ld19sZW4gPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlbiBiZWdpblxuICAgIGlmIG9sZF9wb3MgKyBtb3JlIDw9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICAgIHRoZW4gbmV3X2xlbiA6PSBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgICBlbHNlIGZhaWx3aXRoIFwiQnVmZmVyLmFkZDogY2Fubm90IGdyb3cgYnVmZmVyXCJcbiAgZW5kO1xuICBsZXQgbmV3X2J1ZmZlciA9IEJ5dGVzLmNyZWF0ZSAhbmV3X2xlbiBpblxuICAoKiBQUiM2MTQ4OiBsZXQncyBrZWVwIHVzaW5nIFtibGl0XSByYXRoZXIgdGhhbiBbdW5zYWZlX2JsaXRdIGluXG4gICAgIHRoaXMgdHJpY2t5IGZ1bmN0aW9uIHRoYXQgaXMgc2xvdyBhbnl3YXkuICopXG4gIEJ5dGVzLmJsaXQgYi5idWZmZXIgMCBuZXdfYnVmZmVyIDAgYi5wb3NpdGlvbjtcbiAgYi5idWZmZXIgPC0gbmV3X2J1ZmZlcjtcbiAgYi5sZW5ndGggPC0gIW5ld19sZW47XG4gIGFzc2VydCAoYi5wb3NpdGlvbiArIG1vcmUgPD0gYi5sZW5ndGgpO1xuICBhc3NlcnQgKG9sZF9wb3MgKyBtb3JlIDw9IGIubGVuZ3RoKTtcbiAgKClcbiAgKCogTm90ZTogdGhlcmUgYXJlIHZhcmlvdXMgc2l0dWF0aW9ucyAocHJlZW1wdGl2ZSB0aHJlYWRzLCBzaWduYWxzIGFuZFxuICAgICBnYyBmaW5hbGl6ZXJzKSB3aGVyZSBPQ2FtbCBjb2RlIG1heSBiZSBydW4gYXN5bmNocm9ub3VzbHk7IGluXG4gICAgIHBhcnRpY3VsYXIsIHRoZXJlIG1heSBiZSBhIHJhY2Ugd2l0aCBhbm90aGVyIHVzZXIgb2YgW2JdLCBjaGFuZ2luZ1xuICAgICBpdHMgbXV0YWJsZSBmaWVsZHMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgW3Jlc2l6ZV0gY2FsbC4gVGhlIEJ1ZmZlclxuICAgICBtb2R1bGUgZG9lcyBub3QgcHJvdmlkZSBhbnkgY29ycmVjdG5lc3MgZ3VhcmFudGVlIGlmIHRoYXQgaGFwcGVucyxcbiAgICAgYnV0IHdlIG11c3Qgc3RpbGwgZW5zdXJlIHRoYXQgdGhlIGRhdGFzdHJ1Y3R1cmUgaW52YXJpYW50cyBob2xkIGZvclxuICAgICBtZW1vcnktc2FmZXR5IC0tIGFzIHdlIHBsYW4gdG8gdXNlIFt1bnNhZmVfe2dldCxzZXR9XS5cblxuICAgICBUaGVyZSBhcmUgdHdvIHBvdGVudGlhbCBhbGxvY2F0aW9uIHBvaW50cyBpbiB0aGlzIGZ1bmN0aW9uLFxuICAgICBbcmVmXSBhbmQgW0J5dGVzLmNyZWF0ZV0sIGJ1dCBhbGwgcmVhZHMgYW5kIHdyaXRlcyB0byB0aGUgZmllbGRzXG4gICAgIG9mIFtiXSBoYXBwZW4gYmVmb3JlIGJvdGggb2YgdGhlbSBvciBhZnRlciBib3RoIG9mIHRoZW0uXG5cbiAgICAgV2UgdGhlcmVmb3JlIGFzc3VtZSB0aGF0IFtiLnBvc2l0aW9uXSBtYXkgY2hhbmdlIGF0IHRoZXNlIGFsbG9jYXRpb25zLFxuICAgICBhbmQgY2hlY2sgdGhhdCB0aGUgW2IucG9zaXRpb24gKyBtb3JlIDw9IGIubGVuZ3RoXSBwb3N0Y29uZGl0aW9uXG4gICAgIGhvbGRzIGZvciBib3RoIHZhbHVlcyBvZiBbYi5wb3NpdGlvbl0sIGJlZm9yZSBvciBhZnRlciB0aGUgZnVuY3Rpb25cbiAgICAgaXMgY2FsbGVkLiBNb3JlIHByZWNpc2VseSwgdGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgaG9sZCBpZiB0aGVcbiAgICAgZnVuY3Rpb24gcmV0dXJucyBjb3JyZWN0bHksIGluIGFkZGl0aW9uIHRvIHRoZSB1c3VhbCBidWZmZXIgaW52YXJpYW50czpcbiAgICAgLSBbb2xkKGIucG9zaXRpb24pICsgbW9yZSA8PSBuZXcoYi5sZW5ndGgpXVxuICAgICAtIFtuZXcoYi5wb3NpdGlvbikgKyBtb3JlIDw9IG5ldyhiLmxlbmd0aCldXG4gICAgIC0gW29sZChiLmxlbmd0aCkgPD0gbmV3KGIubGVuZ3RoKV1cblxuICAgICBOb3RlOiBbYi5wb3NpdGlvbiArIG1vcmUgPD0gb2xkKGIubGVuZ3RoKV0gZG9lcyAqbm90KlxuICAgICBob2xkIGluIGdlbmVyYWwsIGFzIGl0IGlzIHByZWNpc2VseSB0aGUgY2FzZSB3aGVyZSB5b3UgbmVlZFxuICAgICB0byBjYWxsIFtyZXNpemVdIHRvIGluY3JlYXNlIFtiLmxlbmd0aF0uXG5cbiAgICAgTm90ZTogW2Fzc2VydF0gYWJvdmUgZG9lcyBub3QgbWVhbiB0aGF0IHdlIGtub3cgdGhlIGNvbmRpdGlvbnNcbiAgICAgYWx3YXlzIGhvbGQsIGJ1dCB0aGF0IHRoZSBmdW5jdGlvbiBtYXkgcmV0dXJuIGNvcnJlY3RseVxuICAgICBvbmx5IGlmIHRoZXkgaG9sZC5cblxuICAgICBOb3RlOiB0aGUgb3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIGRvZXMgbm90IG5lZWRcbiAgICAgdG8gYmUgY2hlY2tlZCB3aXRoIHRoaXMgbGV2ZWwgb2Ygc2NydXRpbnksIGdpdmVuIHRoYXQgdGhleVxuICAgICByZWFkL3dyaXRlIHRoZSBidWZmZXIgaW1tZWRpYXRlbHkgYWZ0ZXIgY2hlY2tpbmcgdGhhdFxuICAgICBbYi5wb3NpdGlvbiArIG1vcmUgPD0gYi5sZW5ndGhdIGhvbGQgb3IgY2FsbGluZyBbcmVzaXplXS5cbiAgKilcblxubGV0IGFkZF9jaGFyIGIgYyA9XG4gIGxldCBwb3MgPSBiLnBvc2l0aW9uIGluXG4gIGlmIHBvcyA+PSBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDE7XG4gIEJ5dGVzLnVuc2FmZV9zZXQgYi5idWZmZXIgcG9zIGM7XG4gIGIucG9zaXRpb24gPC0gcG9zICsgMVxuXG5sZXQgdWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4ID0gNFxubGV0IHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXggPSA0XG5cbmxldCByZWMgYWRkX3V0Zl84X3VjaGFyIGIgdSA9XG4gIGxldCBwb3MgPSBiLnBvc2l0aW9uIGluXG4gIGlmIHBvcyA+PSBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIHVjaGFyX3V0Zl84X2J5dGVfbGVuZ3RoX21heDtcbiAgbGV0IG4gPSBCeXRlcy5zZXRfdXRmXzhfdWNoYXIgYi5idWZmZXIgcG9zIHUgaW5cbiAgaWYgbiA9IDBcbiAgdGhlbiAocmVzaXplIGIgdWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4OyBhZGRfdXRmXzhfdWNoYXIgYiB1KVxuICBlbHNlIChiLnBvc2l0aW9uIDwtIHBvcyArIG4pXG5cbmxldCByZWMgYWRkX3V0Zl8xNmJlX3VjaGFyIGIgdSA9XG4gIGxldCBwb3MgPSBiLnBvc2l0aW9uIGluXG4gIGlmIHBvcyA+PSBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXg7XG4gIGxldCBuID0gQnl0ZXMuc2V0X3V0Zl8xNmJlX3VjaGFyIGIuYnVmZmVyIHBvcyB1IGluXG4gIGlmIG4gPSAwXG4gIHRoZW4gKHJlc2l6ZSBiIHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXg7IGFkZF91dGZfMTZiZV91Y2hhciBiIHUpXG4gIGVsc2UgKGIucG9zaXRpb24gPC0gcG9zICsgbilcblxubGV0IHJlYyBhZGRfdXRmXzE2bGVfdWNoYXIgYiB1ID1cbiAgbGV0IHBvcyA9IGIucG9zaXRpb24gaW5cbiAgaWYgcG9zID49IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heDtcbiAgbGV0IG4gPSBCeXRlcy5zZXRfdXRmXzE2bGVfdWNoYXIgYi5idWZmZXIgcG9zIHUgaW5cbiAgaWYgbiA9IDBcbiAgdGhlbiAocmVzaXplIGIgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heDsgYWRkX3V0Zl8xNmxlX3VjaGFyIGIgdSlcbiAgZWxzZSAoYi5wb3NpdGlvbiA8LSBwb3MgKyBuKVxuXG5sZXQgYWRkX3N1YnN0cmluZyBiIHMgb2Zmc2V0IGxlbiA9XG4gIGlmIG9mZnNldCA8IDAgfHwgbGVuIDwgMCB8fCBvZmZzZXQgPiBTdHJpbmcubGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5hZGRfc3Vic3RyaW5nL2FkZF9zdWJieXRlc1wiO1xuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIGxlbiBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIGxlbjtcbiAgQnl0ZXMudW5zYWZlX2JsaXRfc3RyaW5nIHMgb2Zmc2V0IGIuYnVmZmVyIGIucG9zaXRpb24gbGVuO1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX3N1YmJ5dGVzIGIgcyBvZmZzZXQgbGVuID1cbiAgYWRkX3N1YnN0cmluZyBiIChCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHMpIG9mZnNldCBsZW5cblxubGV0IGFkZF9zdHJpbmcgYiBzID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIGxlbiBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIGxlbjtcbiAgQnl0ZXMudW5zYWZlX2JsaXRfc3RyaW5nIHMgMCBiLmJ1ZmZlciBiLnBvc2l0aW9uIGxlbjtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9ieXRlcyBiIHMgPSBhZGRfc3RyaW5nIGIgKEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcylcblxubGV0IGFkZF9idWZmZXIgYiBicyA9XG4gIGFkZF9zdWJieXRlcyBiIGJzLmJ1ZmZlciAwIGJzLnBvc2l0aW9uXG5cbigqIHRoaXMgKHByaXZhdGUpIGZ1bmN0aW9uIGNvdWxkIG1vdmUgaW50byB0aGUgc3RhbmRhcmQgbGlicmFyeSAqKVxubGV0IHJlYWxseV9pbnB1dF91cF90byBpYyBidWYgb2ZzIGxlbiA9XG4gIGxldCByZWMgbG9vcCBpYyBidWYgfmFscmVhZHlfcmVhZCB+b2ZzIH50b19yZWFkID1cbiAgICBpZiB0b19yZWFkID0gMCB0aGVuIGFscmVhZHlfcmVhZFxuICAgIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gaW5wdXQgaWMgYnVmIG9mcyB0b19yZWFkIGluXG4gICAgICBpZiByID0gMCB0aGVuIGFscmVhZHlfcmVhZFxuICAgICAgZWxzZSBiZWdpblxuICAgICAgICBsZXQgYWxyZWFkeV9yZWFkID0gYWxyZWFkeV9yZWFkICsgciBpblxuICAgICAgICBsZXQgb2ZzID0gb2ZzICsgciBpblxuICAgICAgICBsZXQgdG9fcmVhZCA9IHRvX3JlYWQgLSByIGluXG4gICAgICAgIGxvb3AgaWMgYnVmIH5hbHJlYWR5X3JlYWQgfm9mcyB+dG9fcmVhZFxuICAgICAgZW5kXG4gICAgZW5kXG4gIGluIGxvb3AgaWMgYnVmIH5hbHJlYWR5X3JlYWQ6MCB+b2ZzIH50b19yZWFkOmxlblxuXG5cbmxldCB1bnNhZmVfYWRkX2NoYW5uZWxfdXBfdG8gYiBpYyBsZW4gPVxuICBpZiBiLnBvc2l0aW9uICsgbGVuID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiBsZW47XG4gIGxldCBuID0gcmVhbGx5X2lucHV0X3VwX3RvIGljIGIuYnVmZmVyIGIucG9zaXRpb24gbGVuIGluXG4gICgqIFRoZSBhc3NlcnRpb24gYmVsb3cgbWF5IGZhaWwgaW4gd2VpcmQgc2NlbmFyaW8gd2hlcmVcbiAgICAgdGhyZWFkZWQvZmluYWxpemVyIGNvZGUsIHJ1biBhc3luY2hyb25vdXNseSBkdXJpbmcgdGhlXG4gICAgIFtyZWFsbHlfaW5wdXRfdXBfdG9dIGNhbGwsIHJhY2VzIG9uIHRoZSBidWZmZXI7IHdlIGRvbid0IGVuc3VyZVxuICAgICBjb3JyZWN0bmVzcyBpbiB0aGlzIGNhc2UsIGJ1dCBuZWVkIHRvIHByZXNlcnZlIHRoZSBpbnZhcmlhbnRzIGZvclxuICAgICBtZW1vcnktc2FmZXR5IChzZWUgZGlzY3Vzc2lvbiBvZiBbcmVzaXplXSkuICopXG4gIGFzc2VydCAoYi5wb3NpdGlvbiArIG4gPD0gYi5sZW5ndGgpO1xuICBiLnBvc2l0aW9uIDwtIGIucG9zaXRpb24gKyBuO1xuICBuXG5cbmxldCBhZGRfY2hhbm5lbCBiIGljIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgbGVuID4gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW4gICAoKiBQUiM1MDA0ICopXG4gICAgaW52YWxpZF9hcmcgXCJCdWZmZXIuYWRkX2NoYW5uZWxcIjtcbiAgbGV0IG4gPSB1bnNhZmVfYWRkX2NoYW5uZWxfdXBfdG8gYiBpYyBsZW4gaW5cbiAgKCogSXQgaXMgaW50ZW50aW9uYWwgdGhhdCBhIGNvbnN1bWVyIGNhdGNoaW5nIEVuZF9vZl9maWxlXG4gICAgIHdpbGwgc2VlIHRoZSBkYXRhIHdyaXR0ZW4gKHNlZSAjNjcxOSwgIzcxMzYpLiAqKVxuICBpZiBuIDwgbGVuIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGU7XG4gICgpXG5cbmxldCBvdXRwdXRfYnVmZmVyIG9jIGIgPVxuICBvdXRwdXQgb2MgYi5idWZmZXIgMCBiLnBvc2l0aW9uXG5cbmxldCBjbG9zaW5nID0gZnVuY3Rpb25cbiAgfCAnKCcgLT4gJyknXG4gIHwgJ3snIC0+ICd9J1xuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbigqIG9wZW5pbmcgYW5kIGNsb3Npbmc6IG9wZW4gYW5kIGNsb3NlIGNoYXJhY3RlcnMsIHR5cGljYWxseSAoIGFuZCApXG4gICBrOiBiYWxhbmNlIG9mIG9wZW5pbmcgYW5kIGNsb3NpbmcgY2hhcnNcbiAgIHM6IHRoZSBzdHJpbmcgd2hlcmUgd2UgYXJlIHNlYXJjaGluZ1xuICAgc3RhcnQ6IHRoZSBpbmRleCB3aGVyZSB3ZSBzdGFydCB0aGUgc2VhcmNoLiAqKVxubGV0IGFkdmFuY2VfdG9fY2xvc2luZyBvcGVuaW5nIGNsb3NpbmcgayBzIHN0YXJ0ID1cbiAgbGV0IHJlYyBhZHZhbmNlIGsgaSBsaW0gPVxuICAgIGlmIGkgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgICBpZiBzLltpXSA9IG9wZW5pbmcgdGhlbiBhZHZhbmNlIChrICsgMSkgKGkgKyAxKSBsaW0gZWxzZVxuICAgIGlmIHMuW2ldID0gY2xvc2luZyB0aGVuXG4gICAgICBpZiBrID0gMCB0aGVuIGkgZWxzZSBhZHZhbmNlIChrIC0gMSkgKGkgKyAxKSBsaW1cbiAgICBlbHNlIGFkdmFuY2UgayAoaSArIDEpIGxpbSBpblxuICBhZHZhbmNlIGsgc3RhcnQgKFN0cmluZy5sZW5ndGggcylcblxubGV0IGFkdmFuY2VfdG9fbm9uX2FscGhhIHMgc3RhcnQgPVxuICBsZXQgcmVjIGFkdmFuY2UgaSBsaW0gPVxuICAgIGlmIGkgPj0gbGltIHRoZW4gbGltIGVsc2VcbiAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgfCAnYScgLi4gJ3onIHwgJ0EnIC4uICdaJyB8ICcwJyAuLiAnOScgfCAnXycgLT4gYWR2YW5jZSAoaSArIDEpIGxpbVxuICAgIHwgXyAtPiBpIGluXG4gIGFkdmFuY2Ugc3RhcnQgKFN0cmluZy5sZW5ndGggcylcblxuKCogV2UgYXJlIGp1c3QgYXQgdGhlIGJlZ2lubmluZyBvZiBhbiBpZGVudCBpbiBzLCBzdGFydGluZyBhdCBzdGFydC4gKilcbmxldCBmaW5kX2lkZW50IHMgc3RhcnQgbGltID1cbiAgaWYgc3RhcnQgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgbWF0Y2ggcy5bc3RhcnRdIHdpdGhcbiAgKCogUGFyZW50aGVzaXplZCBpZGVudCA/ICopXG4gIHwgJygnIHwgJ3snIGFzIGMgLT5cbiAgICAgbGV0IG5ld19zdGFydCA9IHN0YXJ0ICsgMSBpblxuICAgICBsZXQgc3RvcCA9IGFkdmFuY2VfdG9fY2xvc2luZyBjIChjbG9zaW5nIGMpIDAgcyBuZXdfc3RhcnQgaW5cbiAgICAgU3RyaW5nLnN1YiBzIG5ld19zdGFydCAoc3RvcCAtIHN0YXJ0IC0gMSksIHN0b3AgKyAxXG4gICgqIFJlZ3VsYXIgaWRlbnQgKilcbiAgfCBfIC0+XG4gICAgIGxldCBzdG9wID0gYWR2YW5jZV90b19ub25fYWxwaGEgcyAoc3RhcnQgKyAxKSBpblxuICAgICBTdHJpbmcuc3ViIHMgc3RhcnQgKHN0b3AgLSBzdGFydCksIHN0b3BcblxuKCogU3Vic3RpdHV0ZSAkaWRlbnQsICQoaWRlbnQpLCBvciAke2lkZW50fSBpbiBzLFxuICAgIGFjY29yZGluZyB0byB0aGUgZnVuY3Rpb24gbWFwcGluZyBmLiAqKVxubGV0IGFkZF9zdWJzdGl0dXRlIGIgZiBzID1cbiAgbGV0IGxpbSA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgcmVjIHN1YnN0IHByZXZpb3VzIGkgPVxuICAgIGlmIGkgPCBsaW0gdGhlbiBiZWdpblxuICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgfCAnJCcgYXMgY3VycmVudCB3aGVuIHByZXZpb3VzID0gJ1xcXFwnIC0+XG4gICAgICAgICBhZGRfY2hhciBiIGN1cnJlbnQ7XG4gICAgICAgICBzdWJzdCAnICcgKGkgKyAxKVxuICAgICAgfCAnJCcgLT5cbiAgICAgICAgIGxldCBqID0gaSArIDEgaW5cbiAgICAgICAgIGxldCBpZGVudCwgbmV4dF9pID0gZmluZF9pZGVudCBzIGogbGltIGluXG4gICAgICAgICBhZGRfc3RyaW5nIGIgKGYgaWRlbnQpO1xuICAgICAgICAgc3Vic3QgJyAnIG5leHRfaVxuICAgICAgfCBjdXJyZW50IHdoZW4gcHJldmlvdXMgPT0gJ1xcXFwnIC0+XG4gICAgICAgICBhZGRfY2hhciBiICdcXFxcJztcbiAgICAgICAgIGFkZF9jaGFyIGIgY3VycmVudDtcbiAgICAgICAgIHN1YnN0ICcgJyAoaSArIDEpXG4gICAgICB8ICdcXFxcJyBhcyBjdXJyZW50IC0+XG4gICAgICAgICBzdWJzdCBjdXJyZW50IChpICsgMSlcbiAgICAgIHwgY3VycmVudCAtPlxuICAgICAgICAgYWRkX2NoYXIgYiBjdXJyZW50O1xuICAgICAgICAgc3Vic3QgY3VycmVudCAoaSArIDEpXG4gICAgZW5kIGVsc2VcbiAgICBpZiBwcmV2aW91cyA9ICdcXFxcJyB0aGVuIGFkZF9jaGFyIGIgcHJldmlvdXMgaW5cbiAgc3Vic3QgJyAnIDBcblxubGV0IHRydW5jYXRlIGIgbGVuID1cbiAgICBpZiBsZW4gPCAwIHx8IGxlbiA+IGxlbmd0aCBiIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiQnVmZmVyLnRydW5jYXRlXCJcbiAgICBlbHNlXG4gICAgICBiLnBvc2l0aW9uIDwtIGxlblxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIGIgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICAoKiBOb3RlIHRoYXQgYi5wb3NpdGlvbiBpcyBub3QgYSBjb25zdGFudCBhbmQgY2Fubm90IGJlIGxpZnRlZCBvdXQgb2YgYXV4ICopXG4gICAgaWYgaSA+PSBiLnBvc2l0aW9uIHRoZW4gU2VxLk5pbFxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmZlciBpIGluXG4gICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICBpblxuICBhdXggMFxuXG5sZXQgdG9fc2VxaSBiID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgKCogTm90ZSB0aGF0IGIucG9zaXRpb24gaXMgbm90IGEgY29uc3RhbnQgYW5kIGNhbm5vdCBiZSBsaWZ0ZWQgb3V0IG9mIGF1eCAqKVxuICAgIGlmIGkgPj0gYi5wb3NpdGlvbiB0aGVuIFNlcS5OaWxcbiAgICBlbHNlXG4gICAgICBsZXQgeCA9IEJ5dGVzLnVuc2FmZV9nZXQgYi5idWZmZXIgaSBpblxuICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gIGluXG4gIGF1eCAwXG5cbmxldCBhZGRfc2VxIGIgc2VxID0gU2VxLml0ZXIgKGFkZF9jaGFyIGIpIHNlcVxuXG5sZXQgb2Zfc2VxIGkgPVxuICBsZXQgYiA9IGNyZWF0ZSAzMiBpblxuICBhZGRfc2VxIGIgaTtcbiAgYlxuXG4oKiogezYgQmluYXJ5IGVuY29kaW5nIG9mIGludGVnZXJzfSAqKVxuXG5leHRlcm5hbCB1bnNhZmVfc2V0X2ludDggOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcIiVieXRlc191bnNhZmVfc2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXRfaW50MTYgOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDE2dVwiXG5leHRlcm5hbCB1bnNhZmVfc2V0X2ludDMyIDogYnl0ZXMgLT4gaW50IC0+IGludDMyIC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDMydVwiXG5leHRlcm5hbCB1bnNhZmVfc2V0X2ludDY0IDogYnl0ZXMgLT4gaW50IC0+IGludDY0IC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDY0dVwiXG5leHRlcm5hbCBzd2FwMTYgOiBpbnQgLT4gaW50ID0gXCIlYnN3YXAxNlwiXG5leHRlcm5hbCBzd2FwMzIgOiBpbnQzMiAtPiBpbnQzMiA9IFwiJWJzd2FwX2ludDMyXCJcbmV4dGVybmFsIHN3YXA2NCA6IGludDY0IC0+IGludDY0ID0gXCIlYnN3YXBfaW50NjRcIlxuXG5cbmxldCBhZGRfaW50OCBiIHggPVxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIDEgaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiAxO1xuICB1bnNhZmVfc2V0X2ludDggYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDE2X25lIGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgMiBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDI7XG4gIHVuc2FmZV9zZXRfaW50MTYgYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDMyX25lIGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgNCBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDQ7XG4gIHVuc2FmZV9zZXRfaW50MzIgYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDY0X25lIGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgOCBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDg7XG4gIHVuc2FmZV9zZXRfaW50NjQgYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDE2X2xlIGIgeCA9XG4gIGFkZF9pbnQxNl9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAxNiB4IGVsc2UgeClcblxubGV0IGFkZF9pbnQxNl9iZSBiIHggPVxuICBhZGRfaW50MTZfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiB4IGVsc2Ugc3dhcDE2IHgpXG5cbmxldCBhZGRfaW50MzJfbGUgYiB4ID1cbiAgYWRkX2ludDMyX25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDMyIHggZWxzZSB4KVxuXG5sZXQgYWRkX2ludDMyX2JlIGIgeCA9XG4gIGFkZF9pbnQzMl9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHggZWxzZSBzd2FwMzIgeClcblxubGV0IGFkZF9pbnQ2NF9sZSBiIHggPVxuICBhZGRfaW50NjRfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwNjQgeCBlbHNlIHgpXG5cbmxldCBhZGRfaW50NjRfYmUgYiB4ID1cbiAgYWRkX2ludDY0X25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4geCBlbHNlIHN3YXA2NCB4KVxuXG5sZXQgYWRkX3VpbnQ4ID0gYWRkX2ludDhcbmxldCBhZGRfdWludDE2X25lID0gYWRkX2ludDE2X25lXG5sZXQgYWRkX3VpbnQxNl9sZSA9IGFkZF9pbnQxNl9sZVxubGV0IGFkZF91aW50MTZfYmUgPSBhZGRfaW50MTZfYmVcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICBCZW5vaXQgVmF1Z29uLCBFTlNUQSAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3NcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgKCogVG9vbHMgdG8gbWFuaXB1bGF0ZSBzY2FubmluZyBzZXQgb2YgY2hhcnMgKHNlZSAlWy4uLl0pICopXG5cbnR5cGUgbXV0YWJsZV9jaGFyX3NldCA9IGJ5dGVzXG5cbigqIENyZWF0ZSBhIGZyZXNoLCBlbXB0eSwgbXV0YWJsZSBjaGFyIHNldC4gKilcbmxldCBjcmVhdGVfY2hhcl9zZXQgKCkgPSBCeXRlcy5tYWtlIDMyICdcXDAwMCdcblxuKCogQWRkIGEgY2hhciBpbiBhIG11dGFibGUgY2hhciBzZXQuICopXG5sZXQgYWRkX2luX2NoYXJfc2V0IGNoYXJfc2V0IGMgPVxuICBsZXQgaW5kID0gaW50X29mX2NoYXIgYyBpblxuICBsZXQgc3RyX2luZCA9IGluZCBsc3IgMyBhbmQgbWFzayA9IDEgbHNsIChpbmQgbGFuZCAwYjExMSkgaW5cbiAgQnl0ZXMuc2V0IGNoYXJfc2V0IHN0cl9pbmRcbiAgICAoY2hhcl9vZl9pbnQgKGludF9vZl9jaGFyIChCeXRlcy5nZXQgY2hhcl9zZXQgc3RyX2luZCkgbG9yIG1hc2spKVxuXG5sZXQgZnJlZXplX2NoYXJfc2V0IGNoYXJfc2V0ID1cbiAgQnl0ZXMudG9fc3RyaW5nIGNoYXJfc2V0XG5cbigqIENvbXB1dGUgdGhlIGNvbXBsZW1lbnQgb2YgYSBjaGFyIHNldC4gKilcbmxldCByZXZfY2hhcl9zZXQgY2hhcl9zZXQgPVxuICBsZXQgY2hhcl9zZXQnID0gY3JlYXRlX2NoYXJfc2V0ICgpIGluXG4gIGZvciBpID0gMCB0byAzMSBkb1xuICAgIEJ5dGVzLnNldCBjaGFyX3NldCcgaVxuICAgICAgKGNoYXJfb2ZfaW50IChpbnRfb2ZfY2hhciAoU3RyaW5nLmdldCBjaGFyX3NldCBpKSBseG9yIDB4RkYpKTtcbiAgZG9uZTtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBjaGFyX3NldCdcblxuKCogUmV0dXJuIHRydWUgaWYgYSBgYycgaXMgaW4gYGNoYXJfc2V0Jy4gKilcbmxldCBpc19pbl9jaGFyX3NldCBjaGFyX3NldCBjID1cbiAgbGV0IGluZCA9IGludF9vZl9jaGFyIGMgaW5cbiAgbGV0IHN0cl9pbmQgPSBpbmQgbHNyIDMgYW5kIG1hc2sgPSAxIGxzbCAoaW5kIGxhbmQgMGIxMTEpIGluXG4gIChpbnRfb2ZfY2hhciAoU3RyaW5nLmdldCBjaGFyX3NldCBzdHJfaW5kKSBsYW5kIG1hc2spIDw+IDBcblxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICgqIElnbm9yZWQgcGFyYW0gY29udmVyc2lvbiAqKVxuXG4oKiBHQURUIHVzZWQgdG8gYWJzdHJhY3QgYW4gZXhpc3RlbnRpYWwgdHlwZSBwYXJhbWV0ZXIuICopXG4oKiBTZWUgcGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0LiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgcGFyYW1fZm9ybWF0X2ViYiA9IFBhcmFtX2Zvcm1hdF9FQkIgOlxuICAgICgneCAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgcGFyYW1fZm9ybWF0X2ViYlxuXG4oKiBDb21wdXRlIGEgcGFkZGluZyBhc3NvY2lhdGVkIHRvIGEgcGFkX29wdGlvbiAoc2VlIFwiJV80MmRcIikuICopXG5sZXQgcGFkX29mX3BhZF9vcHQgcGFkX29wdCA9IG1hdGNoIHBhZF9vcHQgd2l0aFxuICB8IE5vbmUgLT4gTm9fcGFkZGluZ1xuICB8IFNvbWUgd2lkdGggLT4gTGl0X3BhZGRpbmcgKFJpZ2h0LCB3aWR0aClcblxuKCogQ29tcHV0ZSBhIHByZWNpc2lvbiBhc3NvY2lhdGVkIHRvIGEgcHJlY19vcHRpb24gKHNlZSBcIiVfLjQyZlwiKS4gKilcbmxldCBwcmVjX29mX3ByZWNfb3B0IHByZWNfb3B0ID0gbWF0Y2ggcHJlY19vcHQgd2l0aFxuICB8IE5vbmUgLT4gTm9fcHJlY2lzaW9uXG4gIHwgU29tZSBuZGVjIC0+IExpdF9wcmVjaXNpb24gbmRlY1xuXG4oKiBUdXJuIGFuIGlnbm9yZWQgcGFyYW0gaW50byBpdHMgZXF1aXZhbGVudCBub3QtaWdub3JlZCBmb3JtYXQgbm9kZS4gKilcbigqIFVzZWQgZm9yIGZvcm1hdCBwcmV0dHktcHJpbnRpbmcgYW5kIFNjYW5mLiAqKVxubGV0IHBhcmFtX2Zvcm1hdF9vZl9pZ25vcmVkX2Zvcm1hdCA6IHR5cGUgYSBiIGMgZCBlIGYgeCB5IC5cbiAgICAoYSwgYiwgYywgZCwgeSwgeCkgaWdub3JlZCAtPiAoeCwgYiwgYywgeSwgZSwgZikgZm10IC0+XG4gICAgICAoYSwgYiwgYywgZCwgZSwgZikgcGFyYW1fZm9ybWF0X2ViYiA9XG5mdW4gaWduIGZtdCAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfY2hhciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKENoYXIgZm10KVxuICB8IElnbm9yZWRfY2FtbF9jaGFyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoQ2FtbF9jaGFyIGZtdClcbiAgfCBJZ25vcmVkX3N0cmluZyBwYWRfb3B0IC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoU3RyaW5nIChwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBmbXQpKVxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgcGFkX29wdCAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKENhbWxfc3RyaW5nIChwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBmbXQpKVxuICB8IElnbm9yZWRfaW50IChpY29udiwgcGFkX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChJbnQgKGljb252LCBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBOb19wcmVjaXNpb24sIGZtdCkpXG4gIHwgSWdub3JlZF9pbnQzMiAoaWNvbnYsIHBhZF9vcHQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQlxuICAgICAgKEludDMyIChpY29udiwgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgTm9fcHJlY2lzaW9uLCBmbXQpKVxuICB8IElnbm9yZWRfbmF0aXZlaW50IChpY29udiwgcGFkX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCXG4gICAgICAoTmF0aXZlaW50IChpY29udiwgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgTm9fcHJlY2lzaW9uLCBmbXQpKVxuICB8IElnbm9yZWRfaW50NjQgKGljb252LCBwYWRfb3B0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChJbnQ2NCAoaWNvbnYsIHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIE5vX3ByZWNpc2lvbiwgZm10KSlcbiAgfCBJZ25vcmVkX2Zsb2F0IChwYWRfb3B0LCBwcmVjX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCXG4gICAgICAoRmxvYXQgKChGbG9hdF9mbGFnXywgRmxvYXRfZiksXG4gICAgICAgICAgICAgIHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIHByZWNfb2ZfcHJlY19vcHQgcHJlY19vcHQsIGZtdCkpXG4gIHwgSWdub3JlZF9ib29sIHBhZF9vcHQgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChCb29sIChwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBmbXQpKVxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHkpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoRm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHksIGZtdCkpXG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5LCBmbXQpKVxuICB8IElnbm9yZWRfcmVhZGVyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoUmVhZGVyIGZtdClcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgZm10KSlcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgY291bnRlciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGZtdCkpXG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKFNjYW5fbmV4dF9jaGFyIGZtdClcblxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogVHlwZXMgKilcblxudHlwZSAoJ2IsICdjKSBhY2NfZm9ybWF0dGluZ19nZW4gPVxuICB8IEFjY19vcGVuX3RhZyBvZiAoJ2IsICdjKSBhY2NcbiAgfCBBY2Nfb3Blbl9ib3ggb2YgKCdiLCAnYykgYWNjXG5cbigqIFJldmVyc2VkIGxpc3Qgb2YgcHJpbnRpbmcgYXRvbXMuICopXG4oKiBVc2VkIHRvIGFjY3VtdWxhdGUgcHJpbnRmIGFyZ3VtZW50cy4gKilcbmFuZCAoJ2IsICdjKSBhY2MgPVxuICB8IEFjY19mb3JtYXR0aW5nX2xpdCBvZiAoJ2IsICdjKSBhY2MgKiBmb3JtYXR0aW5nX2xpdFxuICAgICAgKCogU3BlY2lhbCBmbXR0aW5nIChib3gpICopXG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIG9mICgnYiwgJ2MpIGFjYyAqICgnYiwgJ2MpIGFjY19mb3JtYXR0aW5nX2dlblxuICAgICAgKCogU3BlY2lhbCBmbXR0aW5nIChib3gpICopXG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIG9mICgnYiwgJ2MpIGFjYyAqIHN0cmluZyAgICAgKCogTGl0ZXJhbCBzdHJpbmcgKilcbiAgfCBBY2NfY2hhcl9saXRlcmFsICAgb2YgKCdiLCAnYykgYWNjICogY2hhciAgICAgICAoKiBMaXRlcmFsIGNoYXIgKilcbiAgfCBBY2NfZGF0YV9zdHJpbmcgICAgb2YgKCdiLCAnYykgYWNjICogc3RyaW5nICAgICAoKiBHZW5lcmF0ZWQgc3RyaW5nICopXG4gIHwgQWNjX2RhdGFfY2hhciAgICAgIG9mICgnYiwgJ2MpIGFjYyAqIGNoYXIgICAgICAgKCogR2VuZXJhdGVkIGNoYXIgKilcbiAgfCBBY2NfZGVsYXkgICAgICAgICAgb2YgKCdiLCAnYykgYWNjICogKCdiIC0+ICdjKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRGVsYXllZCBwcmludGluZyAoJWEsICV0KSAqKVxuICB8IEFjY19mbHVzaCAgICAgICAgICBvZiAoJ2IsICdjKSBhY2MgICAgICAgICAgICAgICgqIEZsdXNoICopXG4gIHwgQWNjX2ludmFsaWRfYXJnICAgIG9mICgnYiwgJ2MpIGFjYyAqIHN0cmluZ1xuICAgICAgKCogUmFpc2UgSW52YWxpZF9hcmd1bWVudCBtc2cgKilcbiAgfCBFbmRfb2ZfYWNjXG5cbigqIExpc3Qgb2YgaGV0ZXJvZ2VuZW91cyB2YWx1ZXMuICopXG4oKiBVc2VkIHRvIGFjY3VtdWxhdGUgc2NhbmYgY2FsbGJhY2sgYXJndW1lbnRzLiAqKVxudHlwZSAoJ2EsICdiKSBoZXRlcl9saXN0ID1cbiAgfCBDb25zIDogJ2MgKiAoJ2EsICdiKSBoZXRlcl9saXN0IC0+ICgnYyAtPiAnYSwgJ2IpIGhldGVyX2xpc3RcbiAgfCBOaWwgOiAoJ2IsICdiKSBoZXRlcl9saXN0XG5cbigqIEV4aXN0ZW50aWFsIEJsYWNrIEJveGVzLiAqKVxuKCogVXNlZCB0byBhYnN0cmFjdCBzb21lIGV4aXN0ZW50aWFsIHR5cGUgcGFyYW1ldGVycy4gKilcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGEgcGFkZGluZyBhbmQgYW4gZm10dHkuICopXG4oKiBTZWUgdGhlIHR5cGVfcGFkZGluZyBmdW5jdGlvbi4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhZGRpbmdfZm10dHlfZWJiID0gUGFkZGluZ19mbXR0eV9FQkIgOlxuICAgICAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYWRkaW5nX2ZtdHR5X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwYWRkaW5nLCBhIHByZWNpc2lvbiBhbmQgYW4gZm10dHkuICopXG4oKiBTZWUgdGhlIHR5cGVfcGFkcHJlYyBmdW5jdGlvbi4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhZHByZWNfZm10dHlfZWJiID0gUGFkcHJlY19mbXR0eV9FQkIgOlxuICAgICAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCAneikgcHJlY2lzaW9uICogKCd6LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYWRwcmVjX2ZtdHR5X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwYWRkaW5nIGFuZCBhbiBmbXQuICopXG4oKiBTZWUgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgYW5kIHBhcnNlX2Zvcm1hdCBmdW5jdGlvbnMuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZSwgJ2YpIHBhZGRpbmdfZm10X2ViYiA9IFBhZGRpbmdfZm10X0VCQiA6XG4gICAgIChfLCAneCAtPiAnYSkgcGFkZGluZyAqXG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCd4LCAnYiwgJ2MsICdlLCAnZikgcGFkZGluZ19mbXRfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhIHByZWNpc2lvbiBhbmQgYW4gZm10LiAqKVxuKCogU2VlIG1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIgYW5kIHBhcnNlX2Zvcm1hdCBmdW5jdGlvbnMuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZSwgJ2YpIHByZWNpc2lvbl9mbXRfZWJiID0gUHJlY2lzaW9uX2ZtdF9FQkIgOlxuICAgICAoXywgJ3ggLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCd4LCAnYiwgJ2MsICdlLCAnZikgcHJlY2lzaW9uX2ZtdF9lYmJcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGEgcGFkZGluZywgYSBwcmVjaXNpb24gYW5kIGFuIGZtdC4gKilcbigqIFNlZSBtYWtlX3BhZHByZWNfZm10X2ViYiBhbmQgcGFyc2VfZm9ybWF0IGZ1bmN0aW9ucy4gKilcbnR5cGUgKCdwLCAnYiwgJ2MsICdlLCAnZikgcGFkcHJlY19mbXRfZWJiID0gUGFkcHJlY19mbXRfRUJCIDpcbiAgICAgKCd4LCAneSkgcGFkZGluZyAqICgneSwgJ3AgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCdwLCAnYiwgJ2MsICdlLCAnZikgcGFkcHJlY19mbXRfZWJiXG5cbigqIEFic3RyYWN0IHRoZSAnYSBhbmQgJ2QgcGFyYW1ldGVycyBvZiBhbiBmbXQuICopXG4oKiBPdXRwdXQgdHlwZSBvZiB0aGUgZm9ybWF0IHBhcnNpbmcgZnVuY3Rpb24uICopXG50eXBlICgnYiwgJ2MsICdlLCAnZikgZm10X2ViYiA9IEZtdF9FQkIgOlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICgnYiwgJ2MsICdlLCAnZikgZm10X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYW4gZm10dHkgYW5kIGFuIGZtdC4gKilcbigqIFNlZSB0aGUgdHlwZV9mb3JtYXRfZ2VuIGZ1bmN0aW9uLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10X2ZtdHR5X2ViYiA9IEZtdF9mbXR0eV9FQkIgOlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICd5LCAneCkgZm10ICpcbiAgICAgKCd4LCAnYiwgJ2MsICd5LCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRfZm10dHlfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhbiBmbXR0eSBhbmQgYW4gZm10LiAqKVxuKCogU2VlIHRoZSB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBmdW5jdGlvbi4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5X2ZtdF9lYmIgPSBGbXR0eV9mbXRfRUJCIDpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAneSwgJ3gpIGZtdHR5ICpcbiAgICAgKCd4LCAnYiwgJ2MsICd5LCAnZSwgJ2YpIGZtdF9mbXR0eV9lYmIgLT5cbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5X2ZtdF9lYmJcblxuKCogQWJzdHJhY3QgYWxsIGZtdHR5IHR5cGUgcGFyYW1ldGVycy4gKilcbigqIFVzZWQgdG8gY29tcGFyZSBmb3JtYXQgdHlwZXMuICopXG50eXBlIGZtdHR5X2ViYiA9IEZtdHR5X0VCQiA6ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSAtPiBmbXR0eV9lYmJcblxuKCogQWJzdHJhY3QgYWxsIHBhZGRpbmcgdHlwZSBwYXJhbWV0ZXJzLiAqKVxuKCogVXNlZCB0byBjb21wYXJlIHBhZGRpbmdzLiAqKVxudHlwZSBwYWRkaW5nX2ViYiA9IFBhZGRpbmdfRUJCIDogKCdhLCAnYikgcGFkZGluZyAtPiBwYWRkaW5nX2ViYlxuXG4oKiBBYnN0cmFjdCBhbGwgcHJlY2lzaW9uIHR5cGUgcGFyYW1ldGVycy4gKilcbigqIFVzZWQgdG8gY29tcGFyZSBwcmVjaXNpb25zLiAqKVxudHlwZSBwcmVjaXNpb25fZWJiID0gUHJlY2lzaW9uX0VCQiA6ICgnYSwgJ2IpIHByZWNpc2lvbiAtPiBwcmVjaXNpb25fZWJiXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQ29uc3RhbnRzICopXG5cbigqIERlZmF1bHQgcHJlY2lzaW9uIGZvciBmbG9hdCBwcmludGluZy4gKilcbmxldCBkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udiA9XG4gIG1hdGNoIHNuZCBmY29udiB3aXRoXG4gIHwgRmxvYXRfZiB8IEZsb2F0X2UgfCBGbG9hdF9FIHwgRmxvYXRfZyB8IEZsb2F0X0cgfCBGbG9hdF9oIHwgRmxvYXRfSFxuICB8IEZsb2F0X0NGIC0+IC02XG4gICgqIEZvciAlaCAlSCBhbmQgJSNGIGZvcm1hdHMsIGEgbmVnYXRpdmUgcHJlY2lzaW9uIG1lYW5zIFwiYXMgbWFueSBkaWdpdHMgYXNcbiAgICAgbmVjZXNzYXJ5XCIuICBGb3IgdGhlIG90aGVyIEZQIGZvcm1hdHMsIHdlIHRha2UgdGhlIGFic29sdXRlIHZhbHVlXG4gICAgIG9mIHRoZSBwcmVjaXNpb24sIGhlbmNlIDYgZGlnaXRzIGJ5IGRlZmF1bHQuICopXG4gIHwgRmxvYXRfRiAtPiAxMlxuICAoKiBEZWZhdWx0IHByZWNpc2lvbiBmb3IgT0NhbWwgZmxvYXQgcHJpbnRpbmcgKCVGKS4gKilcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBFeHRlcm5hbHMgKilcblxuZXh0ZXJuYWwgZm9ybWF0X2Zsb2F0OiBzdHJpbmcgLT4gZmxvYXQgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2Zvcm1hdF9mbG9hdFwiXG5leHRlcm5hbCBmb3JtYXRfaW50OiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZ1xuICA9IFwiY2FtbF9mb3JtYXRfaW50XCJcbmV4dGVybmFsIGZvcm1hdF9pbnQzMjogc3RyaW5nIC0+IGludDMyIC0+IHN0cmluZ1xuICA9IFwiY2FtbF9pbnQzMl9mb3JtYXRcIlxuZXh0ZXJuYWwgZm9ybWF0X25hdGl2ZWludDogc3RyaW5nIC0+IG5hdGl2ZWludCAtPiBzdHJpbmdcbiAgPSBcImNhbWxfbmF0aXZlaW50X2Zvcm1hdFwiXG5leHRlcm5hbCBmb3JtYXRfaW50NjQ6IHN0cmluZyAtPiBpbnQ2NCAtPiBzdHJpbmdcbiAgPSBcImNhbWxfaW50NjRfZm9ybWF0XCJcbmV4dGVybmFsIGhleHN0cmluZ19vZl9mbG9hdDogZmxvYXQgLT4gaW50IC0+IGNoYXIgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2hleHN0cmluZ19vZl9mbG9hdFwiXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAoKiBUb29scyB0byBwcmV0dHktcHJpbnQgZm9ybWF0cyAqKVxuXG4oKiBUeXBlIG9mIGV4dGVuc2libGUgY2hhcmFjdGVyIGJ1ZmZlcnMuICopXG50eXBlIGJ1ZmZlciA9IHtcbiAgbXV0YWJsZSBpbmQgOiBpbnQ7XG4gIG11dGFibGUgYnl0ZXMgOiBieXRlcztcbn1cblxuKCogQ3JlYXRlIGEgZnJlc2ggYnVmZmVyLiAqKVxubGV0IGJ1ZmZlcl9jcmVhdGUgaW5pdF9zaXplID0geyBpbmQgPSAwOyBieXRlcyA9IEJ5dGVzLmNyZWF0ZSBpbml0X3NpemUgfVxuXG4oKiBDaGVjayBzaXplIG9mIHRoZSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgbmVlZGVkLiAqKVxubGV0IGJ1ZmZlcl9jaGVja19zaXplIGJ1ZiBvdmVyaGVhZCA9XG4gIGxldCBsZW4gPSBCeXRlcy5sZW5ndGggYnVmLmJ5dGVzIGluXG4gIGxldCBtaW5fbGVuID0gYnVmLmluZCArIG92ZXJoZWFkIGluXG4gIGlmIG1pbl9sZW4gPiBsZW4gdGhlbiAoXG4gICAgbGV0IG5ld19sZW4gPSBJbnQubWF4IChsZW4gKiAyKSBtaW5fbGVuIGluXG4gICAgbGV0IG5ld19zdHIgPSBCeXRlcy5jcmVhdGUgbmV3X2xlbiBpblxuICAgIEJ5dGVzLmJsaXQgYnVmLmJ5dGVzIDAgbmV3X3N0ciAwIGxlbjtcbiAgICBidWYuYnl0ZXMgPC0gbmV3X3N0cjtcbiAgKVxuXG4oKiBBZGQgdGhlIGNoYXJhY3RlciBgYycgdG8gdGhlIGJ1ZmZlciBgYnVmJy4gKilcbmxldCBidWZmZXJfYWRkX2NoYXIgYnVmIGMgPVxuICBidWZmZXJfY2hlY2tfc2l6ZSBidWYgMTtcbiAgQnl0ZXMuc2V0IGJ1Zi5ieXRlcyBidWYuaW5kIGM7XG4gIGJ1Zi5pbmQgPC0gYnVmLmluZCArIDFcblxuKCogQWRkIHRoZSBzdHJpbmcgYHMnIHRvIHRoZSBidWZmZXIgYGJ1ZicuICopXG5sZXQgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIHMgPVxuICBsZXQgc3RyX2xlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBidWZmZXJfY2hlY2tfc2l6ZSBidWYgc3RyX2xlbjtcbiAgU3RyaW5nLmJsaXQgcyAwIGJ1Zi5ieXRlcyBidWYuaW5kIHN0cl9sZW47XG4gIGJ1Zi5pbmQgPC0gYnVmLmluZCArIHN0cl9sZW5cblxuKCogR2V0IHRoZSBjb250ZW50IG9mIHRoZSBidWZmZXIuICopXG5sZXQgYnVmZmVyX2NvbnRlbnRzIGJ1ZiA9XG4gIEJ5dGVzLnN1Yl9zdHJpbmcgYnVmLmJ5dGVzIDAgYnVmLmluZFxuXG4oKioqKVxuXG4oKiBDb252ZXJ0IGFuIGludGVnZXIgY29udmVyc2lvbiB0byBjaGFyLiAqKVxubGV0IGNoYXJfb2ZfaWNvbnYgaWNvbnYgPSBtYXRjaCBpY29udiB3aXRoXG4gIHwgSW50X2QgfCBJbnRfcGQgfCBJbnRfc2QgfCBJbnRfQ2QgLT4gJ2QnIHwgSW50X2kgfCBJbnRfcGkgfCBJbnRfc2lcbiAgfCBJbnRfQ2kgLT4gJ2knIHwgSW50X3ggfCBJbnRfQ3ggLT4gJ3gnIHwgSW50X1ggfCBJbnRfQ1ggLT4gJ1gnIHwgSW50X29cbiAgfCBJbnRfQ28gLT4gJ28nIHwgSW50X3UgfCBJbnRfQ3UgLT4gJ3UnXG5cbigqIENvbnZlcnQgYSBmbG9hdCBjb252ZXJzaW9uIHRvIGNoYXIuICopXG4oKiBgY0YnIHdpbGwgYmUgJ0YnIGZvciBkaXNwbGF5aW5nIGZvcm1hdCBhbmQgJ2cnIHRvIGNhbGwgbGliYyBwcmludGYgKilcbmxldCBjaGFyX29mX2Zjb252ID8oY0Y9J0YnKSBmY29udiA9IG1hdGNoIHNuZCBmY29udiB3aXRoXG4gIHwgRmxvYXRfZiAtPiAnZicgfCBGbG9hdF9lIC0+ICdlJ1xuICB8IEZsb2F0X0UgLT4gJ0UnIHwgRmxvYXRfZyAtPiAnZydcbiAgfCBGbG9hdF9HIC0+ICdHJyB8IEZsb2F0X0YgLT4gY0ZcbiAgfCBGbG9hdF9oIC0+ICdoJyB8IEZsb2F0X0ggLT4gJ0gnXG4gIHwgRmxvYXRfQ0YgLT4gJ0YnXG5cblxuKCogQ29udmVydCBhIHNjYW5uaW5nIGNvdW50ZXIgdG8gY2hhci4gKilcbmxldCBjaGFyX29mX2NvdW50ZXIgY291bnRlciA9IG1hdGNoIGNvdW50ZXIgd2l0aFxuICB8IExpbmVfY291bnRlciAgLT4gJ2wnXG4gIHwgQ2hhcl9jb3VudGVyICAtPiAnbidcbiAgfCBUb2tlbl9jb3VudGVyIC0+ICdOJ1xuXG4oKioqKVxuXG4oKiBQcmludCBhIGNoYXJfc2V0IGluIGEgYnVmZmVyIHdpdGggdGhlIE9DYW1sIGZvcm1hdCBsZXhpY2FsIGNvbnZlbnRpb24uICopXG5sZXQgYnByaW50X2NoYXJfc2V0IGJ1ZiBjaGFyX3NldCA9XG4gIGxldCByZWMgcHJpbnRfc3RhcnQgc2V0ID1cbiAgICBsZXQgaXNfYWxvbmUgYyA9XG4gICAgICBsZXQgYmVmb3JlLCBhZnRlciA9IENoYXIuKGNociAoY29kZSBjIC0gMSksIGNociAoY29kZSBjICsgMSkpIGluXG4gICAgICBpc19pbl9jaGFyX3NldCBzZXQgY1xuICAgICAgJiYgbm90IChpc19pbl9jaGFyX3NldCBzZXQgYmVmb3JlICYmIGlzX2luX2NoYXJfc2V0IHNldCBhZnRlcikgaW5cbiAgICBpZiBpc19hbG9uZSAnXScgdGhlbiBidWZmZXJfYWRkX2NoYXIgYnVmICddJztcbiAgICBwcmludF9vdXQgc2V0IDE7XG4gICAgaWYgaXNfYWxvbmUgJy0nIHRoZW4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnLSc7XG4gIGFuZCBwcmludF9vdXQgc2V0IGkgPVxuICAgIGlmIGkgPCAyNTYgdGhlblxuICAgICAgaWYgaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCBpKSB0aGVuIHByaW50X2ZpcnN0IHNldCBpXG4gICAgICBlbHNlIHByaW50X291dCBzZXQgKGkgKyAxKVxuICBhbmQgcHJpbnRfZmlyc3Qgc2V0IGkgPVxuICAgIG1hdGNoIGNoYXJfb2ZfaW50IGkgd2l0aFxuICAgIHwgJ1xcMjU1JyAtPiBwcmludF9jaGFyIGJ1ZiAyNTU7XG4gICAgfCAnXScgfCAnLScgLT4gcHJpbnRfb3V0IHNldCAoaSArIDEpO1xuICAgIHwgXyAtPiBwcmludF9zZWNvbmQgc2V0IChpICsgMSk7XG4gIGFuZCBwcmludF9zZWNvbmQgc2V0IGkgPVxuICAgIGlmIGlzX2luX2NoYXJfc2V0IHNldCAoY2hhcl9vZl9pbnQgaSkgdGhlblxuICAgICAgbWF0Y2ggY2hhcl9vZl9pbnQgaSB3aXRoXG4gICAgICB8ICdcXDI1NScgLT5cbiAgICAgICAgcHJpbnRfY2hhciBidWYgMjU0O1xuICAgICAgICBwcmludF9jaGFyIGJ1ZiAyNTU7XG4gICAgICB8ICddJyB8ICctJyB3aGVuIG5vdCAoaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCAoaSArIDEpKSkgLT5cbiAgICAgICAgcHJpbnRfY2hhciBidWYgKGkgLSAxKTtcbiAgICAgICAgcHJpbnRfb3V0IHNldCAoaSArIDEpO1xuICAgICAgfCBfIHdoZW4gbm90IChpc19pbl9jaGFyX3NldCBzZXQgKGNoYXJfb2ZfaW50IChpICsgMSkpKSAtPlxuICAgICAgICBwcmludF9jaGFyIGJ1ZiAoaSAtIDEpO1xuICAgICAgICBwcmludF9jaGFyIGJ1ZiBpO1xuICAgICAgICBwcmludF9vdXQgc2V0IChpICsgMik7XG4gICAgICB8IF8gLT5cbiAgICAgICAgcHJpbnRfaW4gc2V0IChpIC0gMSkgKGkgKyAyKTtcbiAgICBlbHNlIChcbiAgICAgIHByaW50X2NoYXIgYnVmIChpIC0gMSk7XG4gICAgICBwcmludF9vdXQgc2V0IChpICsgMSk7XG4gICAgKVxuICBhbmQgcHJpbnRfaW4gc2V0IGkgaiA9XG4gICAgaWYgaiA9IDI1NiB8fCBub3QgKGlzX2luX2NoYXJfc2V0IHNldCAoY2hhcl9vZl9pbnQgaikpIHRoZW4gKFxuICAgICAgcHJpbnRfY2hhciBidWYgaTtcbiAgICAgIHByaW50X2NoYXIgYnVmIChpbnRfb2ZfY2hhciAnLScpO1xuICAgICAgcHJpbnRfY2hhciBidWYgKGogLSAxKTtcbiAgICAgIGlmIGogPCAyNTYgdGhlbiBwcmludF9vdXQgc2V0IChqICsgMSk7XG4gICAgKSBlbHNlXG4gICAgICBwcmludF9pbiBzZXQgaSAoaiArIDEpO1xuICBhbmQgcHJpbnRfY2hhciBidWYgaSA9IG1hdGNoIGNoYXJfb2ZfaW50IGkgd2l0aFxuICAgIHwgJyUnIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgICB8ICdAJyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnQCc7XG4gICAgfCBjICAgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiBjO1xuICBpblxuICBidWZmZXJfYWRkX2NoYXIgYnVmICdbJztcbiAgcHJpbnRfc3RhcnQgKFxuICAgIGlmIGlzX2luX2NoYXJfc2V0IGNoYXJfc2V0ICdcXDAwMCdcbiAgICB0aGVuICggYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnXic7IHJldl9jaGFyX3NldCBjaGFyX3NldCApXG4gICAgZWxzZSBjaGFyX3NldFxuICApO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmICddJ1xuXG4oKioqKVxuXG4oKiBQcmludCBhIHBhZHR5IGluIGEgYnVmZmVyIHdpdGggdGhlIGZvcm1hdC1saWtlIHN5bnRheC4gKilcbmxldCBicHJpbnRfcGFkdHkgYnVmIHBhZHR5ID0gbWF0Y2ggcGFkdHkgd2l0aFxuICB8IExlZnQgIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJy0nXG4gIHwgUmlnaHQgLT4gKClcbiAgfCBaZXJvcyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcwJ1xuXG4oKiBQcmludCB0aGUgJ18nIG9mIGFuIGlnbm9yZWQgZmxhZyBpZiBuZWVkZWQuICopXG5sZXQgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWcgPVxuICBpZiBpZ25fZmxhZyB0aGVuIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ18nXG5cbigqKiopXG5cbmxldCBicHJpbnRfcGFkX29wdCBidWYgcGFkX29wdCA9IG1hdGNoIHBhZF9vcHQgd2l0aFxuICB8IE5vbmUgLT4gKClcbiAgfCBTb21lIHdpZHRoIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyB3aWR0aClcblxuKCoqKilcblxuKCogUHJpbnQgcGFkZGluZyBpbiBhIGJ1ZmZlciB3aXRoIHRoZSBmb3JtYXQtbGlrZSBzeW50YXguICopXG5sZXQgYnByaW50X3BhZGRpbmcgOiB0eXBlIGEgYiAuIGJ1ZmZlciAtPiAoYSwgYikgcGFkZGluZyAtPiB1bml0ID1cbmZ1biBidWYgcGFkIC0+IG1hdGNoIHBhZCB3aXRoXG4gIHwgTm9fcGFkZGluZyAtPiAoKVxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgbikgLT5cbiAgICBicHJpbnRfcGFkdHkgYnVmIHBhZHR5O1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyBuKTtcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSAtPlxuICAgIGJwcmludF9wYWR0eSBidWYgcGFkdHk7XG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnKidcblxuKCogUHJpbnQgcHJlY2lzaW9uIGluIGEgYnVmZmVyIHdpdGggdGhlIGZvcm1hdC1saWtlIHN5bnRheC4gKilcbmxldCBicHJpbnRfcHJlY2lzaW9uIDogdHlwZSBhIGIgLiBidWZmZXIgLT4gKGEsIGIpIHByZWNpc2lvbiAtPiB1bml0ID1cbiAgZnVuIGJ1ZiBwcmVjIC0+IG1hdGNoIHByZWMgd2l0aFxuICB8IE5vX3ByZWNpc2lvbiAtPiAoKVxuICB8IExpdF9wcmVjaXNpb24gbiAtPlxuICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJy4nO1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyBuKTtcbiAgfCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiLipcIlxuXG4oKioqKVxuXG4oKiBQcmludCB0aGUgb3B0aW9uYWwgJysnLCAnICcgb3IgJyMnIGFzc29jaWF0ZWQgdG8gYW4gaW50IGNvbnZlcnNpb24uICopXG5sZXQgYnByaW50X2ljb252X2ZsYWcgYnVmIGljb252ID0gbWF0Y2ggaWNvbnYgd2l0aFxuICB8IEludF9wZCB8IEludF9waSAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcrJ1xuICB8IEludF9zZCB8IEludF9zaSAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcgJ1xuICB8IEludF9DeCB8IEludF9DWCB8IEludF9DbyB8IEludF9DZCB8IEludF9DaSB8IEludF9DdSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnIydcbiAgfCBJbnRfZCB8IEludF9pIHwgSW50X3ggfCBJbnRfWCB8IEludF9vIHwgSW50X3UgLT4gKClcblxuKCogUHJpbnQgYW4gY29tcGxldGUgaW50IGZvcm1hdCBpbiBhIGJ1ZmZlciAoZXg6IFwiJTMuKmRcIikuICopXG5sZXQgYnByaW50X2ludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjID1cbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7XG4gIGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICBicHJpbnRfaWNvbnZfZmxhZyBidWYgaWNvbnY7XG4gIGJwcmludF9wYWRkaW5nIGJ1ZiBwYWQ7XG4gIGJwcmludF9wcmVjaXNpb24gYnVmIHByZWM7XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpXG5cbigqIFByaW50IGEgY29tcGxldGUgaW50MzIsIG5hdGl2ZWludCBvciBpbnQ2NCBmb3JtYXQgaW4gYSBidWZmZXIuICopXG5sZXQgYnByaW50X2FsdGludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjIGMgPVxuICBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gIGJwcmludF9pY29udl9mbGFnIGJ1ZiBpY29udjtcbiAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDtcbiAgYnByaW50X3ByZWNpc2lvbiBidWYgcHJlYztcbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiBjO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmIChjaGFyX29mX2ljb252IGljb252KVxuXG4oKioqKVxuXG4oKiBQcmludCB0aGUgb3B0aW9uYWwgJysnLCAnICcgYW5kL29yICcjJyBhc3NvY2lhdGVkIHRvIGEgZmxvYXQgY29udmVyc2lvbi4gKilcbmxldCBicHJpbnRfZmNvbnZfZmxhZyBidWYgZmNvbnYgPVxuICBiZWdpbiBtYXRjaCBmc3QgZmNvbnYgd2l0aFxuICB8IEZsb2F0X2ZsYWdfcCAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcrJ1xuICB8IEZsb2F0X2ZsYWdfcyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcgJ1xuICB8IEZsb2F0X2ZsYWdfIC0+ICgpIGVuZDtcbiAgbWF0Y2ggc25kIGZjb252IHdpdGhcbiAgfCBGbG9hdF9DRiAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcjJ1xuICB8IEZsb2F0X2YgfCBGbG9hdF9lIHwgRmxvYXRfRSB8IEZsb2F0X2cgfCBGbG9hdF9HXG4gIHwgRmxvYXRfRiB8IEZsb2F0X2ggfCBGbG9hdF9IIC0+ICgpXG5cbigqIFByaW50IGEgY29tcGxldGUgZmxvYXQgZm9ybWF0IGluIGEgYnVmZmVyIChleDogXCIlKyouM2ZcIikuICopXG5sZXQgYnByaW50X2Zsb2F0X2ZtdCBidWYgaWduX2ZsYWcgZmNvbnYgcGFkIHByZWMgPVxuICBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gIGJwcmludF9mY29udl9mbGFnIGJ1ZiBmY29udjtcbiAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDtcbiAgYnByaW50X3ByZWNpc2lvbiBidWYgcHJlYztcbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAoY2hhcl9vZl9mY29udiBmY29udilcblxuKCogQ29tcHV0ZSB0aGUgbGl0ZXJhbCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBGb3JtYXR0aW5nX2xpdC4gKilcbigqIFVzZWQgYnkgUHJpbnRmIGFuZCBTY2FuZiB3aGVyZSBmb3JtYXR0aW5nIGlzIG5vdCBpbnRlcnByZXRlZC4gKilcbmxldCBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm9ybWF0dGluZ19saXQgPSBtYXRjaCBmb3JtYXR0aW5nX2xpdCB3aXRoXG4gIHwgQ2xvc2VfYm94ICAgICAgICAgICAgLT4gXCJAXVwiXG4gIHwgQ2xvc2VfdGFnICAgICAgICAgICAgLT4gXCJAfVwiXG4gIHwgQnJlYWsgKHN0ciwgXywgXykgICAgLT4gc3RyXG4gIHwgRkZsdXNoICAgICAgICAgICAgICAgLT4gXCJAP1wiXG4gIHwgRm9yY2VfbmV3bGluZSAgICAgICAgLT4gXCJAXFxuXCJcbiAgfCBGbHVzaF9uZXdsaW5lICAgICAgICAtPiBcIkAuXCJcbiAgfCBNYWdpY19zaXplIChzdHIsIF8pICAtPiBzdHJcbiAgfCBFc2NhcGVkX2F0ICAgICAgICAgICAtPiBcIkBAXCJcbiAgfCBFc2NhcGVkX3BlcmNlbnQgICAgICAtPiBcIkAlXCJcbiAgfCBTY2FuX2luZGljIGMgLT4gXCJAXCIgXiAoU3RyaW5nLm1ha2UgMSBjKVxuXG4oKioqKVxuXG4oKiBQcmludCBhIGxpdGVyYWwgY2hhciBpbiBhIGJ1ZmZlciwgZXNjYXBlICclJyBieSBcIiUlXCIuICopXG5sZXQgYnByaW50X2NoYXJfbGl0ZXJhbCBidWYgY2hyID0gbWF0Y2ggY2hyIHdpdGhcbiAgfCAnJScgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJSVcIlxuICB8IF8gLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiBjaHJcblxuKCogUHJpbnQgYSBsaXRlcmFsIHN0cmluZyBpbiBhIGJ1ZmZlciwgZXNjYXBlIGFsbCAnJScgYnkgXCIlJVwiLiAqKVxubGV0IGJwcmludF9zdHJpbmdfbGl0ZXJhbCBidWYgc3RyID1cbiAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggc3RyIC0gMSBkb1xuICAgIGJwcmludF9jaGFyX2xpdGVyYWwgYnVmIHN0ci5baV1cbiAgZG9uZVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgcHJldHR5LXByaW50aW5nICopXG5cbigqIFByaW50IGEgY29tcGxldGUgZm9ybWF0IHR5cGUgKGFuIGZtdHR5KSBpbiBhIGJ1ZmZlci4gKilcbmxldCByZWMgYnByaW50X2ZtdHR5IDogdHlwZSBhIGIgYyBkIGUgZiBnIGggaSBqIGsgbCAuXG4gICAgYnVmZmVyIC0+IChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqLCBrLCBsKSBmbXR0eV9yZWwgLT4gdW5pdCA9XG5mdW4gYnVmIGZtdHR5IC0+IG1hdGNoIGZtdHR5IHdpdGhcbiAgfCBDaGFyX3R5IHJlc3QgICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlY1wiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IFN0cmluZ190eSByZXN0ICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVzXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgSW50X3R5IHJlc3QgICAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJWlcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBJbnQzMl90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlbGlcIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IE5hdGl2ZWludF90eSByZXN0IC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVuaVwiOyBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgSW50NjRfdHkgcmVzdCAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJUxpXCI7IGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBGbG9hdF90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlZlwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEJvb2xfdHkgcmVzdCAgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVCXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgQWxwaGFfdHkgcmVzdCAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJWFcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBUaGV0YV90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIldFwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEFueV90eSByZXN0ICAgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiU/XCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgUmVhZGVyX3R5IHJlc3QgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJXJcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcblxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QgLT5cbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlX3JcIjtcbiAgICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG5cbiAgfCBGb3JtYXRfYXJnX3R5IChzdWJfZm10dHksIHJlc3QpIC0+XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJXtcIjsgYnByaW50X2ZtdHR5IGJ1ZiBzdWJfZm10dHk7XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJX1cIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEZvcm1hdF9zdWJzdF90eSAoc3ViX2ZtdHR5LCBfLCByZXN0KSAtPlxuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiUoXCI7IGJwcmludF9mbXR0eSBidWYgc3ViX2ZtdHR5O1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiUpXCI7IGJwcmludF9mbXR0eSBidWYgcmVzdDtcblxuICB8IEVuZF9vZl9mbXR0eSAtPiAoKVxuXG4oKioqKVxuXG5sZXQgcmVjIGludF9vZl9jdXN0b21fYXJpdHkgOiB0eXBlIGEgYiBjIC5cbiAgKGEsIGIsIGMpIGN1c3RvbV9hcml0eSAtPiBpbnQgPVxuICBmdW5jdGlvblxuICB8IEN1c3RvbV96ZXJvIC0+IDBcbiAgfCBDdXN0b21fc3VjYyB4IC0+IDEgKyBpbnRfb2ZfY3VzdG9tX2FyaXR5IHhcblxuKCogUHJpbnQgYSBjb21wbGV0ZSBmb3JtYXQgaW4gYSBidWZmZXIuICopXG5sZXQgYnByaW50X2ZtdCBidWYgZm10ID1cbiAgbGV0IHJlYyBmbXRpdGVyIDogdHlwZSBhIGIgYyBkIGUgZiAuXG4gICAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IGJvb2wgLT4gdW5pdCA9XG4gIGZ1biBmbXQgaWduX2ZsYWcgLT4gbWF0Y2ggZm10IHdpdGhcbiAgICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAncyc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnUyc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG5cbiAgICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9pbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2FsdGludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjICdsJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9hbHRpbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYyAnbic7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9hbHRpbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYyAnTCc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9mbG9hdF9mbXQgYnVmIGlnbl9mbGFnIGZjb252IHBhZCBwcmVjO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuXG4gICAgfCBDaGFyIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ2MnOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnQyc7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEJvb2wgKHBhZCwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9wYWRkaW5nIGJ1ZiBwYWQ7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJ0InO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgQWxwaGEgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnYSc7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IFRoZXRhIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ3QnOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBDdXN0b20gKGFyaXR5LCBfLCByZXN0KSAtPlxuICAgICAgZm9yIF9pID0gMSB0byBpbnRfb2ZfY3VzdG9tX2FyaXR5IGFyaXR5IGRvXG4gICAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnPyc7XG4gICAgICBkb25lO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgUmVhZGVyIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ3InOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBGbHVzaCByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlIVwiO1xuICAgICAgZm10aXRlciByZXN0IGlnbl9mbGFnO1xuXG4gICAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSAtPlxuICAgICAgYnByaW50X3N0cmluZ19saXRlcmFsIGJ1ZiBzdHI7XG4gICAgICBmbXRpdGVyIHJlc3QgaWduX2ZsYWc7XG4gICAgfCBDaGFyX2xpdGVyYWwgKGNociwgcmVzdCkgLT5cbiAgICAgIGJwcmludF9jaGFyX2xpdGVyYWwgYnVmIGNocjtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcblxuICAgIHwgRm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHksIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkX29wdCBidWYgcGFkX29wdDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAneyc7XG4gICAgICBicHJpbnRfZm10dHkgYnVmIGZtdHR5OyBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnfSc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5LCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZF9vcHQgYnVmIHBhZF9vcHQ7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJygnO1xuICAgICAgYnByaW50X2ZtdHR5IGJ1ZiBmbXR0eTsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyknO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuXG4gICAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZF9vcHQgYnVmIHdpZHRoX29wdDsgYnByaW50X2NoYXJfc2V0IGJ1ZiBjaGFyX3NldDtcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmIChjaGFyX29mX2NvdW50ZXIgY291bnRlcik7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBTY2FuX25leHRfY2hhciByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfc3RyaW5nX2xpdGVyYWwgYnVmIFwiMGNcIjsgZm10aXRlciByZXN0IGZhbHNlO1xuXG4gICAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgICBsZXQgUGFyYW1fZm9ybWF0X0VCQiBmbXQnID0gcGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IGlnbiByZXN0IGluXG4gICAgICBmbXRpdGVyIGZtdCcgdHJ1ZTtcblxuICAgIHwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfc3RyaW5nX2xpdGVyYWwgYnVmIChzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCk7XG4gICAgICBmbXRpdGVyIHJlc3QgaWduX2ZsYWc7XG4gICAgfCBGb3JtYXR0aW5nX2dlbiAoZm10aW5nX2dlbiwgcmVzdCkgLT5cbiAgICAgIGJlZ2luIG1hdGNoIGZtdGluZ19nZW4gd2l0aFxuICAgICAgfCBPcGVuX3RhZyAoRm9ybWF0IChfLCBzdHIpKSAtPlxuICAgICAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCJAe1wiOyBidWZmZXJfYWRkX3N0cmluZyBidWYgc3RyXG4gICAgICB8IE9wZW5fYm94IChGb3JtYXQgKF8sIHN0cikpIC0+XG4gICAgICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIkBbXCI7IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBzdHJcbiAgICAgIGVuZDtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcblxuICAgIHwgRW5kX29mX2Zvcm1hdCAtPiAoKVxuXG4gIGluIGZtdGl0ZXIgZm10IGZhbHNlXG5cbigqKiopXG5cbigqIENvbnZlcnQgYSBmb3JtYXQgdG8gc3RyaW5nLiAqKVxubGV0IHN0cmluZ19vZl9mbXQgZm10ID1cbiAgbGV0IGJ1ZiA9IGJ1ZmZlcl9jcmVhdGUgMTYgaW5cbiAgYnByaW50X2ZtdCBidWYgZm10O1xuICBidWZmZXJfY29udGVudHMgYnVmXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIFR5cGUgZXh0cmFjdGlvbiAqKVxuXG50eXBlIChfLCBfKSBlcSA9IFJlZmwgOiAoJ2EsICdhKSBlcVxuXG4oKiBJbnZhcmlhbnQ6IHRoaXMgZnVuY3Rpb24gaXMgdGhlIGlkZW50aXR5IG9uIHZhbHVlcy5cblxuICAgSW4gcGFydGljdWxhciwgaWYgKHR5MSwgdHkyKSBoYXZlIGVxdWFsIHZhbHVlcywgdGhlblxuICAgKHRyYW5zIChzeW1tIHR5MSkgdHkyKSByZXNwZWN0cyB0aGUgJ3RyYW5zJyBwcmVjb25kaXRpb24uICopXG5sZXQgcmVjIHN5bW0gOiB0eXBlIGExIGIxIGMxIGQxIGUxIGYxIGEyIGIyIGMyIGQyIGUyIGYyIC5cbiAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgIGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbFxuLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIsXG4gICAgYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10dHlfcmVsXG49IGZ1bmN0aW9uXG4gIHwgQ2hhcl90eSByZXN0IC0+IENoYXJfdHkgKHN5bW0gcmVzdClcbiAgfCBJbnRfdHkgcmVzdCAtPiBJbnRfdHkgKHN5bW0gcmVzdClcbiAgfCBJbnQzMl90eSByZXN0IC0+IEludDMyX3R5IChzeW1tIHJlc3QpXG4gIHwgSW50NjRfdHkgcmVzdCAtPiBJbnQ2NF90eSAoc3ltbSByZXN0KVxuICB8IE5hdGl2ZWludF90eSByZXN0IC0+IE5hdGl2ZWludF90eSAoc3ltbSByZXN0KVxuICB8IEZsb2F0X3R5IHJlc3QgLT4gRmxvYXRfdHkgKHN5bW0gcmVzdClcbiAgfCBCb29sX3R5IHJlc3QgLT4gQm9vbF90eSAoc3ltbSByZXN0KVxuICB8IFN0cmluZ190eSByZXN0IC0+IFN0cmluZ190eSAoc3ltbSByZXN0KVxuICB8IFRoZXRhX3R5IHJlc3QgLT4gVGhldGFfdHkgKHN5bW0gcmVzdClcbiAgfCBBbHBoYV90eSByZXN0IC0+IEFscGhhX3R5IChzeW1tIHJlc3QpXG4gIHwgQW55X3R5IHJlc3QgLT4gQW55X3R5IChzeW1tIHJlc3QpXG4gIHwgUmVhZGVyX3R5IHJlc3QgLT4gUmVhZGVyX3R5IChzeW1tIHJlc3QpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPiBJZ25vcmVkX3JlYWRlcl90eSAoc3ltbSByZXN0KVxuICB8IEZvcm1hdF9hcmdfdHkgKHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmdfdHkgKHR5LCBzeW1tIHJlc3QpXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5MiwgdHkxLCBzeW1tIHJlc3QpXG4gIHwgRW5kX29mX2ZtdHR5IC0+IEVuZF9vZl9mbXR0eVxuXG5sZXQgcmVjIGZtdHR5X3JlbF9kZXQgOiB0eXBlIGExIGIgYyBkMSBlMSBmMSBhMiBkMiBlMiBmMiAuXG4gIChhMSwgYiwgYywgZDEsIGUxLCBmMSxcbiAgIGEyLCBiLCBjLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWwgLT5cbiAgICAoKGYxLCBmMikgZXEgLT4gKGExLCBhMikgZXEpXG4gICogKChhMSwgYTIpIGVxIC0+IChmMSwgZjIpIGVxKVxuICAqICgoZTEsIGUyKSBlcSAtPiAoZDEsIGQyKSBlcSlcbiAgKiAoKGQxLCBkMikgZXEgLT4gKGUxLCBlMikgZXEpXG49IGZ1bmN0aW9uXG4gIHwgRW5kX29mX2ZtdHR5IC0+XG4gICAgKGZ1biBSZWZsIC0+IFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IFJlZmwpXG4gIHwgQ2hhcl90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IFN0cmluZ190eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEludF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEludDMyX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgSW50NjRfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBGbG9hdF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEJvb2xfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcblxuICB8IFRoZXRhX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgQWxwaGFfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBBbnlfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBSZWFkZXJfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBlZCBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGRlIFJlZmwgaW4gUmVmbClcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGVkIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZGUgUmVmbCBpbiBSZWZsKVxuICB8IEZvcm1hdF9hcmdfdHkgKF90eSwgcmVzdCkgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICBsZXQgdHkgPSB0cmFucyAoc3ltbSB0eTEpIHR5MiBpblxuICAgIGxldCBhZywgZ2EsIGRqLCBqZCA9IGZtdHR5X3JlbF9kZXQgdHkgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIGxldCBSZWZsID0gYWcgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBnYSBSZWZsIGluIGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBlZCBSZWZsIGluIGxldCBSZWZsID0gZGogUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBqZCBSZWZsIGluIGxldCBSZWZsID0gZGUgUmVmbCBpbiBSZWZsKVxuXG4oKiBQcmVjb25kaXRpb246IHdlIGFzc3VtZSB0aGF0IHRoZSB0d28gZm10dHlfcmVsIGFyZ3VtZW50cyBoYXZlIGVxdWFsXG4gICB2YWx1ZXMgKGF0IHBvc3NpYmx5IGRpc3RpbmN0IHR5cGVzKTsgdGhpcyBpbnZhcmlhbnQgY29tZXMgZnJvbSB0aGUgd2F5XG4gICBmbXR0eV9yZWwgd2l0bmVzc2VzIGFyZSBwcm9kdWNlZCBieSB0aGUgdHlwZS1jaGVja2VyXG5cbiAgIFRoZSBjb2RlIGJlbG93IHVzZXMgKGFzc2VydCBmYWxzZSkgd2hlbiB0aGlzIGFzc3VtcHRpb24gaXMgYnJva2VuLiBUaGVcbiAgIGNvZGUgcGF0dGVybiBpcyB0aGUgZm9sbG93aW5nOlxuXG4gICAgIHwgRm9vIHgsIEZvbyB5IC0+XG4gICAgICAgKCogY2FzZSB3aGVyZSBpbmRlZWQgYm90aCB2YWx1ZXNcbiAgICAgICAgICBzdGFydCB3aXRoIGNvbnN0cnVjdG9yIEZvbyAqKVxuICAgICB8IEZvbyBfLCBfXG4gICAgIHwgXywgRm9vIF8gLT5cbiAgICAgICAoKiBkaWZmZXJlbnQgaGVhZCBjb25zdHJ1Y3RvcnM6IGJyb2tlbiBwcmVjb25kaXRpb24gKilcbiAgICAgICBhc3NlcnQgZmFsc2VcbiopXG5hbmQgdHJhbnMgOiB0eXBlXG4gIGExIGIxIGMxIGQxIGUxIGYxXG4gIGEyIGIyIGMyIGQyIGUyIGYyXG4gIGEzIGIzIGMzIGQzIGUzIGYzXG4uXG4gICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSxcbiAgICBhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWxcbi0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyLFxuICAgIGEzLCBiMywgYzMsIGQzLCBlMywgZjMpIGZtdHR5X3JlbFxuLT4gKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10dHlfcmVsXG49IGZ1biB0eTEgdHkyIC0+IG1hdGNoIHR5MSwgdHkyIHdpdGhcbiAgfCBDaGFyX3R5IHJlc3QxLCBDaGFyX3R5IHJlc3QyIC0+IENoYXJfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IFN0cmluZ190eSByZXN0MSwgU3RyaW5nX3R5IHJlc3QyIC0+IFN0cmluZ190eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgQm9vbF90eSByZXN0MSwgQm9vbF90eSByZXN0MiAtPiBCb29sX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBJbnRfdHkgcmVzdDEsIEludF90eSByZXN0MiAtPiBJbnRfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEludDMyX3R5IHJlc3QxLCBJbnQzMl90eSByZXN0MiAtPiBJbnQzMl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgSW50NjRfdHkgcmVzdDEsIEludDY0X3R5IHJlc3QyIC0+IEludDY0X3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdDEsIE5hdGl2ZWludF90eSByZXN0MiAtPiBOYXRpdmVpbnRfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEZsb2F0X3R5IHJlc3QxLCBGbG9hdF90eSByZXN0MiAtPiBGbG9hdF90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG5cbiAgfCBBbHBoYV90eSByZXN0MSwgQWxwaGFfdHkgcmVzdDIgLT4gQWxwaGFfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEFscGhhX3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgQWxwaGFfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IFRoZXRhX3R5IHJlc3QxLCBUaGV0YV90eSByZXN0MiAtPiBUaGV0YV90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgVGhldGFfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBUaGV0YV90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgQW55X3R5IHJlc3QxLCBBbnlfdHkgcmVzdDIgLT4gQW55X3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBBbnlfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBBbnlfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IFJlYWRlcl90eSByZXN0MSwgUmVhZGVyX3R5IHJlc3QyIC0+IFJlYWRlcl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgUmVhZGVyX3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgUmVhZGVyX3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0MSwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdDIgLT5cbiAgICBJZ25vcmVkX3JlYWRlcl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBJZ25vcmVkX3JlYWRlcl90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgRm9ybWF0X2FyZ190eSAodHkxLCByZXN0MSksIEZvcm1hdF9hcmdfdHkgKHR5MiwgcmVzdDIpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHJhbnMgdHkxIHR5MiwgdHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgRm9ybWF0X2FyZ190eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIEZvcm1hdF9hcmdfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxMSwgdHkxMiwgcmVzdDEpLFxuICAgIEZvcm1hdF9zdWJzdF90eSAodHkyMSwgdHkyMiwgcmVzdDIpIC0+XG4gICAgbGV0IHR5ID0gdHJhbnMgKHN5bW0gdHkxMikgdHkyMSBpblxuICAgIGxldCBfLCBmMiwgXywgZjQgPSBmbXR0eV9yZWxfZGV0IHR5IGluXG4gICAgbGV0IFJlZmwgPSBmMiBSZWZsIGluXG4gICAgbGV0IFJlZmwgPSBmNCBSZWZsIGluXG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTExLCB0eTIyLCB0cmFucyByZXN0MSByZXN0MilcbiAgfCBGb3JtYXRfc3Vic3RfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBGb3JtYXRfc3Vic3RfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IEVuZF9vZl9mbXR0eSwgRW5kX29mX2ZtdHR5IC0+IEVuZF9vZl9mbXR0eVxuICB8IEVuZF9vZl9mbXR0eSwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBFbmRfb2ZfZm10dHkgLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCByZWMgZm10dHlfb2ZfZm9ybWF0dGluZ19nZW4gOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgKGEsIGIsIGMsIGQsIGUsIGYpIGZvcm1hdHRpbmdfZ2VuIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5ID1cbmZ1biBmb3JtYXR0aW5nX2dlbiAtPiBtYXRjaCBmb3JtYXR0aW5nX2dlbiB3aXRoXG4gIHwgT3Blbl90YWcgKEZvcm1hdCAoZm10LCBfKSkgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IE9wZW5fYm94IChGb3JtYXQgKGZtdCwgXykpIC0+IGZtdHR5X29mX2ZtdCBmbXRcblxuKCogRXh0cmFjdCB0aGUgdHlwZSByZXByZXNlbnRhdGlvbiAoYW4gZm10dHkpIG9mIGEgZm9ybWF0LiAqKVxuYW5kIGZtdHR5X29mX2ZtdCA6IHR5cGUgYSBiIGMgZCBlIGYgLlxuICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG5mdW4gZm10dHkgLT4gbWF0Y2ggZm10dHkgd2l0aFxuICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIChTdHJpbmdfdHkgKGZtdHR5X29mX2ZtdCByZXN0KSlcbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIChTdHJpbmdfdHkgKGZtdHR5X29mX2ZtdCByZXN0KSlcblxuICB8IEludCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChJbnRfdHkgdHlfcmVzdCkgaW5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCBwcmVjX3R5XG4gIHwgSW50MzIgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgdHlfcmVzdCA9IGZtdHR5X29mX2ZtdCByZXN0IGluXG4gICAgbGV0IHByZWNfdHkgPSBmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkgcHJlYyAoSW50MzJfdHkgdHlfcmVzdCkgaW5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCBwcmVjX3R5XG4gIHwgTmF0aXZlaW50IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IHR5X3Jlc3QgPSBmbXR0eV9vZl9mbXQgcmVzdCBpblxuICAgIGxldCBwcmVjX3R5ID0gZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IHByZWMgKE5hdGl2ZWludF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcbiAgfCBJbnQ2NCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChJbnQ2NF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcbiAgfCBGbG9hdCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChGbG9hdF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcblxuICB8IENoYXIgcmVzdCAgICAgICAgICAgICAgICAgIC0+IENoYXJfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IENhbWxfY2hhciByZXN0ICAgICAgICAgICAgIC0+IENoYXJfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IEJvb2wgKHBhZCwgcmVzdCkgICAgICAgICAgIC0+XG4gICAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCAoQm9vbF90eSAoZm10dHlfb2ZfZm10IHJlc3QpKVxuICB8IEFscGhhIHJlc3QgICAgICAgICAgICAgICAgIC0+IEFscGhhX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBUaGV0YSByZXN0ICAgICAgICAgICAgICAgICAtPiBUaGV0YV90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgQ3VzdG9tIChhcml0eSwgXywgcmVzdCkgICAgLT4gZm10dHlfb2ZfY3VzdG9tIGFyaXR5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBSZWFkZXIgcmVzdCAgICAgICAgICAgICAgICAtPiBSZWFkZXJfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuXG4gIHwgRm9ybWF0X2FyZyAoXywgdHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHksIGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IEZvcm1hdF9zdWJzdCAoXywgdHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eSwgdHksIGZtdHR5X29mX2ZtdCByZXN0KVxuXG4gIHwgRmx1c2ggcmVzdCAgICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IHJlc3RcbiAgfCBTdHJpbmdfbGl0ZXJhbCAoXywgcmVzdCkgICAtPiBmbXR0eV9vZl9mbXQgcmVzdFxuICB8IENoYXJfbGl0ZXJhbCAoXywgcmVzdCkgICAgIC0+IGZtdHR5X29mX2ZtdCByZXN0XG5cbiAgfCBTY2FuX2NoYXJfc2V0IChfLCBfLCByZXN0KSAtPiBTdHJpbmdfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKF8sIHJlc3QpIC0+IEludF90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAgICAgICAgLT4gQ2hhcl90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAgLT4gZm10dHlfb2ZfaWdub3JlZF9mb3JtYXQgaWduIHJlc3RcbiAgfCBGb3JtYXR0aW5nX2xpdCAoXywgcmVzdCkgICAtPiBmbXR0eV9vZl9mbXQgcmVzdFxuICB8IEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCByZXN0KSAgLT5cbiAgICBjb25jYXRfZm10dHkgKGZtdHR5X29mX2Zvcm1hdHRpbmdfZ2VuIGZtdGluZ19nZW4pIChmbXR0eV9vZl9mbXQgcmVzdClcblxuICB8IEVuZF9vZl9mb3JtYXQgICAgICAgICAgICAgIC0+IEVuZF9vZl9mbXR0eVxuXG5hbmQgZm10dHlfb2ZfY3VzdG9tIDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAoYSwgeCwgeSkgY3VzdG9tX2FyaXR5IC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPlxuICAoeSwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuZnVuIGFyaXR5IGZtdHR5IC0+IG1hdGNoIGFyaXR5IHdpdGhcbiAgfCBDdXN0b21femVybyAtPiBmbXR0eVxuICB8IEN1c3RvbV9zdWNjIGFyaXR5IC0+IEFueV90eSAoZm10dHlfb2ZfY3VzdG9tIGFyaXR5IGZtdHR5KVxuXG4oKiBFeHRyYWN0IHRoZSBmbXR0eSBvZiBhbiBpZ25vcmVkIHBhcmFtZXRlciBmb2xsb3dlZCBieSB0aGUgcmVzdCBvZlxuICAgdGhlIGZvcm1hdC4gKilcbmFuZCBmbXR0eV9vZl9pZ25vcmVkX2Zvcm1hdCA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgICAoYSwgYiwgYywgZCwgeSwgeCkgaWdub3JlZCAtPlxuICAgICh4LCBiLCBjLCB5LCBlLCBmKSBmbXQgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuZnVuIGlnbiBmbXQgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX3N0cmluZyBfICAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2ludCAoXywgXykgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2ludDMyIChfLCBfKSAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX25hdGl2ZWludCAoXywgXykgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2ludDY0IChfLCBfKSAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Zsb2F0IChfLCBfKSAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgXyAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAoXywgZm10dHkpIC0+IGNvbmNhdF9mbXR0eSBmbXR0eSAoZm10dHlfb2ZfZm10IGZtdClcbiAgfCBJZ25vcmVkX3JlYWRlciAgICAgICAgICAgICAgICAgIC0+IElnbm9yZWRfcmVhZGVyX3R5IChmbXR0eV9vZl9mbXQgZm10KVxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCBfICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuXG4oKiBBZGQgYW4gSW50X3R5IG5vZGUgaWYgcGFkZGluZyBpcyB0YWtlbiBhcyBhbiBleHRyYSBhcmd1bWVudCAoZXg6IFwiJSpzXCIpLiAqKVxuYW5kIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgOiB0eXBlIHggYSBiIGMgZCBlIGYgLlxuICAgICh4LCBhKSBwYWRkaW5nIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPiAoeCwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuICBmdW4gcGFkIGZtdHR5IC0+IG1hdGNoIHBhZCB3aXRoXG4gICAgfCBOb19wYWRkaW5nICAgIC0+IGZtdHR5XG4gICAgfCBMaXRfcGFkZGluZyBfIC0+IGZtdHR5XG4gICAgfCBBcmdfcGFkZGluZyBfIC0+IEludF90eSBmbXR0eVxuXG4oKiBBZGQgYW4gSW50X3R5IG5vZGUgaWYgcHJlY2lzaW9uIGlzIHRha2VuIGFzIGFuIGV4dHJhIGFyZ3VtZW50IChleDogXCIlLipmXCIpLiopXG5hbmQgZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IDogdHlwZSB4IGEgYiBjIGQgZSBmIC5cbiAgICAoeCwgYSkgcHJlY2lzaW9uIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPiAoeCwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuICBmdW4gcHJlYyBmbXR0eSAtPiBtYXRjaCBwcmVjIHdpdGhcbiAgICB8IE5vX3ByZWNpc2lvbiAgICAtPiBmbXR0eVxuICAgIHwgTGl0X3ByZWNpc2lvbiBfIC0+IGZtdHR5XG4gICAgfCBBcmdfcHJlY2lzaW9uICAgLT4gSW50X3R5IGZtdHR5XG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0IHR5cGluZyAqKVxuXG4oKiBFeGNlcHRpb24gcmFpc2VkIHdoZW4gYSBmb3JtYXQgZG9lcyBub3QgbWF0Y2ggYSBnaXZlbiBmb3JtYXQgdHlwZS4gKilcbmV4Y2VwdGlvbiBUeXBlX21pc21hdGNoXG5cbigqIFR5cGUgYSBwYWRkaW5nLiAqKVxuKCogVGFrZSBhbiBJbnRfdHkgZnJvbSB0aGUgZm10dHkgaWYgdGhlIGludGVnZXIgc2hvdWxkIGJlIGtlcHQgYXMgYXJndW1lbnQuICopXG4oKiBSYWlzZSBUeXBlX21pc21hdGNoIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCB0eXBlX3BhZGRpbmcgOiB0eXBlIGEgYiBjIGQgZSBmIHggeSAuXG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICAgICAoYSwgYiwgYywgZCwgZSwgZikgcGFkZGluZ19mbXR0eV9lYmIgPVxuZnVuIHBhZCBmbXR0eSAtPiBtYXRjaCBwYWQsIGZtdHR5IHdpdGhcbiAgfCBOb19wYWRkaW5nLCBfIC0+IFBhZGRpbmdfZm10dHlfRUJCIChOb19wYWRkaW5nLCBmbXR0eSlcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBfIC0+IFBhZGRpbmdfZm10dHlfRUJCIChMaXRfcGFkZGluZyAocGFkdHksdyksZm10dHkpXG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIEludF90eSByZXN0IC0+IFBhZGRpbmdfZm10dHlfRUJCIChBcmdfcGFkZGluZyBwYWR0eSxyZXN0KVxuICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuXG4oKiBDb252ZXJ0IGEgKHVwYWRkaW5nLCB1cHJlY2lzaW9uKSB0byBhIChwYWRkaW5nLCBwcmVjaXNpb24pLiAqKVxuKCogVGFrZSBvbmUgb3IgdHdvIEludF90eSBmcm9tIHRoZSBmbXR0eSBpZiBuZWVkZWQuICopXG4oKiBSYWlzZSBUeXBlX21pc21hdGNoIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCB0eXBlX3BhZHByZWMgOiB0eXBlIGEgYiBjIGQgZSBmIHggeSB6IC5cbiAgKHgsIHkpIHBhZGRpbmcgLT4gKHksIHopIHByZWNpc2lvbiAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgcGFkcHJlY19mbXR0eV9lYmIgPVxuZnVuIHBhZCBwcmVjIGZtdHR5IC0+IG1hdGNoIHByZWMsIHR5cGVfcGFkZGluZyBwYWQgZm10dHkgd2l0aFxuICB8IE5vX3ByZWNpc2lvbiwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgcmVzdCkgLT5cbiAgICBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBOb19wcmVjaXNpb24sIHJlc3QpXG4gIHwgTGl0X3ByZWNpc2lvbiBwLCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCByZXN0KSAtPlxuICAgIFBhZHByZWNfZm10dHlfRUJCIChwYWQsIExpdF9wcmVjaXNpb24gcCwgcmVzdClcbiAgfCBBcmdfcHJlY2lzaW9uLCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCBJbnRfdHkgcmVzdCkgLT5cbiAgICBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBBcmdfcHJlY2lzaW9uLCByZXN0KVxuICB8IF8sIFBhZGRpbmdfZm10dHlfRUJCIChfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbigqIFR5cGUgYSBmb3JtYXQgYWNjb3JkaW5nIHRvIGFuIGZtdHR5LiAqKVxuKCogSWYgdHlwaW5nIHN1Y2NlZWQsIGdlbmVyYXRlIGEgY29weSBvZiB0aGUgZm9ybWF0IHdpdGggdGhlIHNhbWVcbiAgICB0eXBlIHBhcmFtZXRlcnMgYXMgdGhlIGZtdHR5LiAqKVxuKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBpbiBjYXNlIG9mIHR5cGUgbWlzbWF0Y2guICopXG5sZXQgcmVjIHR5cGVfZm9ybWF0IDpcbiAgdHlwZSBhMSBiMSBjMSBkMSBlMSBmMVxuICAgICAgIGEyIGIyIGMyIGQyIGUyIGYyICAuXG4gICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmbXRcbiAgLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5XG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRcbj0gZnVuIGZtdCBmbXR0eSAtPiBtYXRjaCB0eXBlX2Zvcm1hdF9nZW4gZm10IGZtdHR5IHdpdGhcbiAgfCBGbXRfZm10dHlfRUJCIChmbXQnLCBFbmRfb2ZfZm10dHkpIC0+IGZtdCdcbiAgfCBfIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcblxuYW5kIHR5cGVfZm9ybWF0X2dlbiA6XG4gIHR5cGUgYTEgYjEgYzEgZDEgZTEgZjFcbiAgICAgICBhMiBiMiBjMiBkMiBlMiBmMiAgLlxuICAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10XG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eVxuICAtPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10X2ZtdHR5X2ViYlxuPSBmdW4gZm10IGZtdHR5IC0+IG1hdGNoIGZtdCwgZm10dHkgd2l0aFxuICB8IENoYXIgZm10X3Jlc3QsIENoYXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChDaGFyIGZtdCcsIGZtdHR5JylcbiAgfCBDYW1sX2NoYXIgZm10X3Jlc3QsIENoYXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChDYW1sX2NoYXIgZm10JywgZm10dHknKVxuICB8IFN0cmluZyAocGFkLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkZGluZyBwYWQgZm10dHkgd2l0aFxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgU3RyaW5nX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChTdHJpbmcgKHBhZCwgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZGRpbmdfZm10dHlfRUJCIChfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBDYW1sX3N0cmluZyAocGFkLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkZGluZyBwYWQgZm10dHkgd2l0aFxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgU3RyaW5nX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChDYW1sX3N0cmluZyAocGFkLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZHByZWMgcGFkIHByZWMgZm10dHkgd2l0aFxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgcHJlYywgSW50X3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChJbnQgKGljb252LCBwYWQsIHByZWMsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAoXywgXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIEludDMyX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIE5hdGl2ZWludF90eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKF8sIF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkcHJlYyBwYWQgcHJlYyBmbXR0eSB3aXRoXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBwcmVjLCBJbnQ2NF90eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoSW50NjQgKGljb252LCBwYWQsIHByZWMsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAoXywgXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIEZsb2F0X3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBCb29sIChwYWQsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRkaW5nIHBhZCBmbXR0eSB3aXRoXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCBCb29sX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChCb29sIChwYWQsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAoXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgRmx1c2ggZm10X3Jlc3QsIGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRmx1c2ggZm10JywgZm10dHknKVxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgKHN0ciwgZm10X3Jlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFN0cmluZ19saXRlcmFsIChzdHIsIGZtdCcpLCBmbXR0eScpXG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIGZtdF9yZXN0KSwgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChDaGFyX2xpdGVyYWwgKGNociwgZm10JyksIGZtdHR5JylcblxuICB8IEZvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eSwgZm10X3Jlc3QpLFxuICAgIEZvcm1hdF9hcmdfdHkgKHN1Yl9mbXR0eScsIGZtdHR5X3Jlc3QpIC0+XG4gICAgaWYgRm10dHlfRUJCIHN1Yl9mbXR0eSA8PiBGbXR0eV9FQkIgc3ViX2ZtdHR5JyB0aGVuIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eScsIGZtdCcpLCBmbXR0eScpXG4gIHwgRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHksIGZtdF9yZXN0KSxcbiAgICBGb3JtYXRfc3Vic3RfdHkgKHN1Yl9mbXR0eTEsIF9zdWJfZm10dHkyLCBmbXR0eV9yZXN0KSAtPlxuICAgIGlmIEZtdHR5X0VCQiAoZXJhc2VfcmVsIHN1Yl9mbXR0eSkgPD4gRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViX2ZtdHR5MSkgdGhlblxuICAgICAgcmFpc2UgVHlwZV9taXNtYXRjaDtcbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9XG4gICAgICB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgKGVyYXNlX3JlbCBmbXR0eV9yZXN0KVxuICAgIGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHkxLCBmbXQnKSwgZm10dHknKVxuICAoKiBQcmludGYgYW5kIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3RvcnM6ICopXG4gIHwgQWxwaGEgZm10X3Jlc3QsIEFscGhhX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoQWxwaGEgZm10JywgZm10dHknKVxuICB8IFRoZXRhIGZtdF9yZXN0LCBUaGV0YV90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFRoZXRhIGZtdCcsIGZtdHR5JylcblxuICAoKiBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3JzOiAqKVxuICB8IEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10X3Jlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10JyksIGZtdHR5JylcbiAgfCBGb3JtYXR0aW5nX2dlbiAoZm9ybWF0dGluZ19nZW4sIGZtdF9yZXN0KSwgZm10dHlfcmVzdCAtPlxuICAgIHR5cGVfZm9ybWF0dGluZ19nZW4gZm9ybWF0dGluZ19nZW4gZm10X3Jlc3QgZm10dHlfcmVzdFxuXG4gICgqIFNjYW5mIHNwZWNpZmljIGNvbnN0cnVjdG9yczogKilcbiAgfCBSZWFkZXIgZm10X3Jlc3QsIFJlYWRlcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFJlYWRlciBmbXQnLCBmbXR0eScpXG4gIHwgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgZm10X3Jlc3QpLCBTdHJpbmdfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBmbXQnKSwgZm10dHknKVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGZtdF9yZXN0KSwgSW50X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10JyksIGZtdHR5JylcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgdHlwZV9pZ25vcmVkX3BhcmFtIGlnbiByZXN0IGZtdHR5X3Jlc3RcblxuICB8IEVuZF9vZl9mb3JtYXQsIGZtdHR5X3Jlc3QgLT4gRm10X2ZtdHR5X0VCQiAoRW5kX29mX2Zvcm1hdCwgZm10dHlfcmVzdClcblxuICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuXG5hbmQgdHlwZV9mb3JtYXR0aW5nX2dlbiA6IHR5cGUgYTEgYTMgYjEgYjMgYzEgYzMgZDEgZDMgZTEgZTIgZTMgZjEgZjIgZjMgLlxuICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmb3JtYXR0aW5nX2dlbiAtPlxuICAgIChmMSwgYjEsIGMxLCBlMSwgZTIsIGYyKSBmbXQgLT5cbiAgICAoYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10dHkgLT5cbiAgICAoYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10X2ZtdHR5X2ViYiA9XG5mdW4gZm9ybWF0dGluZ19nZW4gZm10MCBmbXR0eTAgLT4gbWF0Y2ggZm9ybWF0dGluZ19nZW4gd2l0aFxuICB8IE9wZW5fdGFnIChGb3JtYXQgKGZtdDEsIHN0cikpIC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdDIsIGZtdHR5MikgPSB0eXBlX2Zvcm1hdF9nZW4gZm10MSBmbXR0eTAgaW5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10MywgZm10dHkzKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQwIGZtdHR5MiBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQyLCBzdHIpKSwgZm10MyksIGZtdHR5MylcbiAgfCBPcGVuX2JveCAoRm9ybWF0IChmbXQxLCBzdHIpKSAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQyLCBmbXR0eTIpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdDEgZm10dHkwIGluXG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdDMsIGZtdHR5MykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10MCBmbXR0eTIgaW5cbiAgICBGbXRfZm10dHlfRUJCIChGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10Miwgc3RyKSksIGZtdDMpLCBmbXR0eTMpXG5cbigqIFR5cGUgYW4gSWdub3JlZF9wYXJhbSBub2RlIGFjY29yZGluZyB0byBhbiBmbXR0eS4gKilcbmFuZCB0eXBlX2lnbm9yZWRfcGFyYW0gOiB0eXBlIHAgcSB4IHkgeiB0IHUgdiBhIGIgYyBkIGUgZiAuXG4gICAgKHgsIHksIHosIHQsIHEsIHApIGlnbm9yZWQgLT5cbiAgICAocCwgeSwgeiwgcSwgdSwgdikgZm10IC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdF9mbXR0eV9lYmIgPVxuZnVuIGlnbiBmbXQgZm10dHkgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3N0cmluZyBfICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2ludCBfICAgICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2ludDMyIF8gICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX25hdGl2ZWludCBfICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2ludDY0IF8gICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2Zsb2F0IF8gICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgXyAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgXyBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eSkgLT5cbiAgICB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIChJZ25vcmVkX2Zvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eSkpIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHkpIC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eScsIEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eSBmbXQgZm10dHkgaW5cbiAgICBGbXRfZm10dHlfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX2Zvcm1hdF9zdWJzdCAocGFkX29wdCwgc3ViX2ZtdHR5JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm10JyksXG4gICAgICAgICAgICAgICAgICAgZm10dHknKVxuICB8IElnbm9yZWRfcmVhZGVyIC0+IChcbiAgICBtYXRjaCBmbXR0eSB3aXRoXG4gICAgfCBJZ25vcmVkX3JlYWRlcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9yZWFkZXIsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBfIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuXG5hbmQgdHlwZV9pZ25vcmVkX3BhcmFtX29uZSA6IHR5cGUgYTEgYTIgYjEgYjIgYzEgYzIgZDEgZDIgZTEgZTIgZjEgZjIgLlxuICAgIChhMiwgYjIsIGMyLCBkMiwgZDIsIGEyKSBpZ25vcmVkIC0+XG4gICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEpIGZtdCAtPlxuICAgIChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eSAtPlxuICAgIChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRfZm10dHlfZWJiXG49IGZ1biBpZ24gZm10IGZtdHR5IC0+XG4gIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdCBmbXR0eSBpblxuICBGbXRfZm10dHlfRUJCIChJZ25vcmVkX3BhcmFtIChpZ24sIGZtdCcpLCBmbXR0eScpXG5cbigqIFR5cGluZyBvZiB0aGUgY29tcGxleCBjYXNlOiBcIiVfKC4uLiUpXCIuICopXG5hbmQgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gOiB0eXBlIHcgeCB5IHogcCBzIHQgdSBhIGIgYyBkIGUgZiAuXG4gICAgKHcsIHgsIHksIHosIHMsIHApIGZtdHR5IC0+XG4gICAgKHAsIHgsIHksIHMsIHQsIHUpIGZtdCAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHlfZm10X2ViYiA9XG5mdW4gc3ViX2ZtdHR5IGZtdCBmbXR0eSAtPiBtYXRjaCBzdWJfZm10dHksIGZtdHR5IHdpdGhcbiAgfCBDaGFyX3R5IHN1Yl9mbXR0eV9yZXN0LCBDaGFyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKENoYXJfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IFN0cmluZ190eSBzdWJfZm10dHlfcmVzdCwgU3RyaW5nX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKFN0cmluZ190eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgSW50X3R5IHN1Yl9mbXR0eV9yZXN0LCBJbnRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoSW50X3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBJbnQzMl90eSBzdWJfZm10dHlfcmVzdCwgSW50MzJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoSW50MzJfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IE5hdGl2ZWludF90eSBzdWJfZm10dHlfcmVzdCwgTmF0aXZlaW50X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKE5hdGl2ZWludF90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgSW50NjRfdHkgc3ViX2ZtdHR5X3Jlc3QsIEludDY0X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEludDY0X3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBGbG9hdF90eSBzdWJfZm10dHlfcmVzdCwgRmxvYXRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoRmxvYXRfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IEJvb2xfdHkgc3ViX2ZtdHR5X3Jlc3QsIEJvb2xfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoQm9vbF90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgQWxwaGFfdHkgc3ViX2ZtdHR5X3Jlc3QsIEFscGhhX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEFscGhhX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBUaGV0YV90eSBzdWJfZm10dHlfcmVzdCwgVGhldGFfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoVGhldGFfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IFJlYWRlcl90eSBzdWJfZm10dHlfcmVzdCwgUmVhZGVyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKFJlYWRlcl90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgc3ViX2ZtdHR5X3Jlc3QsIElnbm9yZWRfcmVhZGVyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKElnbm9yZWRfcmVhZGVyX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcblxuICB8IEZvcm1hdF9hcmdfdHkgKHN1YjJfZm10dHksIHN1Yl9mbXR0eV9yZXN0KSxcbiAgICBGb3JtYXRfYXJnX3R5IChzdWIyX2ZtdHR5JywgZm10dHlfcmVzdCkgLT5cbiAgICBpZiBGbXR0eV9FQkIgc3ViMl9mbXR0eSA8PiBGbXR0eV9FQkIgc3ViMl9mbXR0eScgdGhlbiByYWlzZSBUeXBlX21pc21hdGNoO1xuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoRm9ybWF0X2FyZ190eSAoc3ViMl9mbXR0eScsIHN1Yl9mbXR0eV9yZXN0JyksIGZtdCcpXG4gIHwgRm9ybWF0X3N1YnN0X3R5IChzdWIxX2ZtdHR5LCAgc3ViMl9mbXR0eSwgIHN1Yl9mbXR0eV9yZXN0KSxcbiAgICBGb3JtYXRfc3Vic3RfdHkgKHN1YjFfZm10dHknLCBzdWIyX2ZtdHR5JywgZm10dHlfcmVzdCkgLT5cbiAgICAoKiBUT0RPIGRlZmluZSBGbXR0eV9yZWxfRUJCIHRvIHJlbW92ZSB0aG9zZSBlcmFzZV9yZWwgKilcbiAgICBpZiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWIxX2ZtdHR5KSA8PiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWIxX2ZtdHR5JylcbiAgICB0aGVuIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgaWYgRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViMl9mbXR0eSkgPD4gRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViMl9mbXR0eScpXG4gICAgdGhlbiByYWlzZSBUeXBlX21pc21hdGNoO1xuICAgIGxldCBzdWJfZm10dHknID0gdHJhbnMgKHN5bW0gc3ViMV9mbXR0eScpIHN1YjJfZm10dHknIGluXG4gICAgbGV0IF8sIGYyLCBfLCBmNCA9IGZtdHR5X3JlbF9kZXQgc3ViX2ZtdHR5JyBpblxuICAgIGxldCBSZWZsID0gZjIgUmVmbCBpblxuICAgIGxldCBSZWZsID0gZjQgUmVmbCBpblxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIChlcmFzZV9yZWwgc3ViX2ZtdHR5X3Jlc3QpIGZtdCBmbXR0eV9yZXN0XG4gICAgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChGb3JtYXRfc3Vic3RfdHkgKHN1YjFfZm10dHknLCBzdWIyX2ZtdHR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bW0gc3ViX2ZtdHR5X3Jlc3QnKSxcbiAgICAgICAgICAgICAgICAgICBmbXQnKVxuICB8IEVuZF9vZl9mbXR0eSwgZm10dHkgLT5cbiAgICBGbXR0eV9mbXRfRUJCIChFbmRfb2ZfZm10dHksIHR5cGVfZm9ybWF0X2dlbiBmbXQgZm10dHkpXG4gIHwgXyAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbigqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgYHJlY2FzdGAgaXMgYSBiaXQgZGlzYXBwb2ludGluZy4gVGhlXG4gICBpbnZhcmlhbnQgcHJvdmlkZWQgYnkgdGhlIHR5cGUgYXJlIHZlcnkgc3Ryb25nOiB0aGUgaW5wdXQgZm9ybWF0J3NcbiAgIHR5cGUgaXMgaW4gcmVsYXRpb24gdG8gdGhlIG91dHB1dCB0eXBlJ3MgYXMgd2l0bmVzc2VkIGJ5IHRoZVxuICAgZm10dHlfcmVsIGFyZ3VtZW50LiBPbmUgd291bGQgYXQgZmlyc3QgZXhwZWN0IHRoaXMgZnVuY3Rpb24gdG8gYmVcbiAgIHRvdGFsLCBhbmQgaW1wbGVtZW50YWJsZSBieSBleGhhdXN0aXZlIHBhdHRlcm4gbWF0Y2hpbmcuIEluc3RlYWQsXG4gICB3ZSByZXVzZSB0aGUgaGlnaGx5IHBhcnRpYWwgYW5kIG11Y2ggbGVzcyB3ZWxsLWRlZmluZWQgZnVuY3Rpb25cbiAgIGB0eXBlX2Zvcm1hdGAgdGhhdCBoYXMgbG9zdCBhbGwga25vd2xlZGdlIG9mIHRoZSBjb3JyZXNwb25kZW5jZVxuICAgYmV0d2VlbiB0aGUgYXJndW1lbnQncyB0eXBlcy5cblxuICAgQmVzaWRlcyB0aGUgZmFjdCB0aGF0IHRoaXMgZnVuY3Rpb24gcmV1c2VzIGEgbG90IG9mIHRoZVxuICAgYHR5cGVfZm9ybWF0YCBsb2dpYyAoZWcuOiBzZWVpbmcgSW50X3R5IGluIHRoZSBmbXR0eSBwYXJhbWV0ZXIgZG9lc1xuICAgbm90IGxldCB5b3UgbWF0Y2ggb24gSW50IG9ubHksIGFzIHlvdSBtYXkgaW4gZmFjdCBoYXZlIEZsb2F0XG4gICAoQXJnX3BhZGRpbmcsIC4uLikgKFwiJS4qZFwiKSBiZWdpbm5pbmcgd2l0aCBhbiBJbnRfdHkpLCBpdCBpcyBhbHNvXG4gICBhIHBhcnRpYWwgZnVuY3Rpb24sIGJlY2F1c2UgdGhlIHR5cGluZyBpbmZvcm1hdGlvbiBpbiBhIGZvcm1hdCBpc1xuICAgbm90IHF1aXRlIGVub3VnaCB0byByZWNvbnN0cnVjdCBpdCB1bmFtYmlndW91c2x5LiBGb3IgZXhhbXBsZSwgdGhlXG4gICBmb3JtYXQgdHlwZXMgb2YgXCIlZCVfclwiIGFuZCBcIiVfciVkXCIgaGF2ZSB0aGUgc2FtZSBmb3JtYXQ2XG4gICBwYXJhbWV0ZXJzLCBidXQgdGhleSBhcmUgbm90IGF0IGFsbCBleGNoYW5nZWFibGUsIGFuZCBwdXR0aW5nIG9uZVxuICAgaW4gcGxhY2Ugb2YgdGhlIG90aGVyIG11c3QgcmVzdWx0IGluIGEgZHluYW1pYyBmYWlsdXJlLlxuXG4gICBHaXZlbiB0aGF0OlxuICAgLSB3ZSdkIGhhdmUgdG8gZHVwbGljYXRlIGEgbG90IG9mIG5vbi10cml2aWFsIHR5cGluZyBsb2dpYyBmcm9tIHR5cGVfZm9ybWF0XG4gICAtIHRoaXMgd291bGRuJ3QgZXZlbiBlbGltaW5hdGUgKGFsbCkgdGhlIGR5bmFtaWMgZmFpbHVyZXNcbiAgIHdlIGRlY2lkZWQgdG8ganVzdCByZXVzZSB0eXBlX2Zvcm1hdCBkaXJlY3RseSBmb3Igbm93LlxuKilcbmxldCByZWNhc3QgOlxuICB0eXBlIGExIGIxIGMxIGQxIGUxIGYxXG4gICAgICAgYTIgYjIgYzIgZDIgZTIgZjJcbiAgLlxuICAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10XG4gIC0+IChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgICAgYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlfcmVsXG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRcbj0gZnVuIGZtdCBmbXR0eSAtPlxuICB0eXBlX2Zvcm1hdCBmbXQgKGVyYXNlX3JlbCAoc3ltbSBmbXR0eSkpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFByaW50aW5nIHRvb2xzICopXG5cbigqIEFkZCBwYWRkaW5nIHNwYWNlcyBhcm91bmQgYSBzdHJpbmcuICopXG5sZXQgZml4X3BhZGRpbmcgcGFkdHkgd2lkdGggc3RyID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIGxldCB3aWR0aCwgcGFkdHkgPVxuICAgIGFicyB3aWR0aCxcbiAgICAoKiB3aGlsZSBsaXRlcmFsIHBhZGRpbmcgd2lkdGhzIGFyZSBhbHdheXMgbm9uLW5lZ2F0aXZlLFxuICAgICAgIGR5bmFtaWNhbGx5LXNldCB3aWR0aHMgKEFyZ19wYWRkaW5nLCBlZy4gJSpkKSBtYXkgYmUgbmVnYXRpdmU7XG4gICAgICAgd2UgaW50ZXJwcmV0IHRob3NlIGFzIHNwZWNpZnlpbmcgYSBwYWRkaW5nLXRvLXRoZS1sZWZ0OyB0aGlzXG4gICAgICAgbWVhbnMgdGhhdCAnMCcgbWF5IGdldCBkcm9wcGVkIGV2ZW4gaWYgaXQgd2FzIGV4cGxpY2l0bHkgc2V0LFxuICAgICAgIGJ1dDpcbiAgICAgICAtIHRoaXMgaXMgd2hhdCB0aGUgbGVnYWN5IGltcGxlbWVudGF0aW9uIGRvZXMsIGFuZFxuICAgICAgICAgd2UgcHJlc2VydmUgY29tcGF0aWJpbGl0eSBpZiBwb3NzaWJsZVxuICAgICAgIC0gd2UgY291bGQgb25seSBzaWduYWwgdGhpcyBpc3N1ZSBieSBmYWlsaW5nIGF0IHJ1bnRpbWUsXG4gICAgICAgICB3aGljaCBpcyBub3QgdmVyeSBuaWNlLi4uICopXG4gICAgaWYgd2lkdGggPCAwIHRoZW4gTGVmdCBlbHNlIHBhZHR5IGluXG4gIGlmIHdpZHRoIDw9IGxlbiB0aGVuIHN0ciBlbHNlXG4gICAgbGV0IHJlcyA9IEJ5dGVzLm1ha2Ugd2lkdGggKGlmIHBhZHR5ID0gWmVyb3MgdGhlbiAnMCcgZWxzZSAnICcpIGluXG4gICAgYmVnaW4gbWF0Y2ggcGFkdHkgd2l0aFxuICAgIHwgTGVmdCAgLT4gU3RyaW5nLmJsaXQgc3RyIDAgcmVzIDAgbGVuXG4gICAgfCBSaWdodCAtPiBTdHJpbmcuYmxpdCBzdHIgMCByZXMgKHdpZHRoIC0gbGVuKSBsZW5cbiAgICB8IFplcm9zIHdoZW4gbGVuID4gMCAmJiAoc3RyLlswXSA9ICcrJyB8fCBzdHIuWzBdID0gJy0nIHx8IHN0ci5bMF0gPSAnICcpIC0+XG4gICAgICBCeXRlcy5zZXQgcmVzIDAgc3RyLlswXTtcbiAgICAgIFN0cmluZy5ibGl0IHN0ciAxIHJlcyAod2lkdGggLSBsZW4gKyAxKSAobGVuIC0gMSlcbiAgICB8IFplcm9zIHdoZW4gbGVuID4gMSAmJiBzdHIuWzBdID0gJzAnICYmIChzdHIuWzFdID0gJ3gnIHx8IHN0ci5bMV0gPSAnWCcpIC0+XG4gICAgICBCeXRlcy5zZXQgcmVzIDEgc3RyLlsxXTtcbiAgICAgIFN0cmluZy5ibGl0IHN0ciAyIHJlcyAod2lkdGggLSBsZW4gKyAyKSAobGVuIC0gMilcbiAgICB8IFplcm9zIC0+XG4gICAgICBTdHJpbmcuYmxpdCBzdHIgMCByZXMgKHdpZHRoIC0gbGVuKSBsZW5cbiAgICBlbmQ7XG4gICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcblxuKCogQWRkICcwJyBwYWRkaW5nIHRvIGludCwgaW50MzIsIG5hdGl2ZWludCBvciBpbnQ2NCBzdHJpbmcgcmVwcmVzZW50YXRpb24uICopXG5sZXQgZml4X2ludF9wcmVjaXNpb24gcHJlYyBzdHIgPVxuICBsZXQgcHJlYyA9IGFicyBwcmVjIGluXG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICBtYXRjaCBzdHIuWzBdIHdpdGhcbiAgfCAoJysnIHwgJy0nIHwgJyAnKSBhcyBjIHdoZW4gcHJlYyArIDEgPiBsZW4gLT5cbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSAocHJlYyArIDEpICcwJyBpblxuICAgIEJ5dGVzLnNldCByZXMgMCBjO1xuICAgIFN0cmluZy5ibGl0IHN0ciAxIHJlcyAocHJlYyAtIGxlbiArIDIpIChsZW4gLSAxKTtcbiAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuICB8ICcwJyB3aGVuIHByZWMgKyAyID4gbGVuICYmIGxlbiA+IDEgJiYgKHN0ci5bMV0gPSAneCcgfHwgc3RyLlsxXSA9ICdYJykgLT5cbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSAocHJlYyArIDIpICcwJyBpblxuICAgIEJ5dGVzLnNldCByZXMgMSBzdHIuWzFdO1xuICAgIFN0cmluZy5ibGl0IHN0ciAyIHJlcyAocHJlYyAtIGxlbiArIDQpIChsZW4gLSAyKTtcbiAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuICB8ICcwJyAuLiAnOScgfCAnYScgLi4gJ2YnIHwgJ0EnIC4uICdGJyB3aGVuIHByZWMgPiBsZW4gLT5cbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSBwcmVjICcwJyBpblxuICAgIFN0cmluZy5ibGl0IHN0ciAwIHJlcyAocHJlYyAtIGxlbikgbGVuO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG4gIHwgXyAtPlxuICAgIHN0clxuXG4oKiBFc2NhcGUgYSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBPQ2FtbCBsZXhpbmcgY29udmVudGlvbi4gKilcbmxldCBzdHJpbmdfdG9fY2FtbF9zdHJpbmcgc3RyID1cbiAgbGV0IHN0ciA9IFN0cmluZy5lc2NhcGVkIHN0ciBpblxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIGxldCByZXMgPSBCeXRlcy5tYWtlIChsICsgMikgJ1xcXCInIGluXG4gIFN0cmluZy51bnNhZmVfYmxpdCBzdHIgMCByZXMgMSBsO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuXG4oKiBHZW5lcmF0ZSB0aGUgZm9ybWF0X2ludC9pbnQzMi9uYXRpdmVpbnQvaW50NjQgZmlyc3QgYXJndW1lbnRcbiAgIGZyb20gYW4gaW50X2NvbnYuICopXG5sZXQgZm9ybWF0X29mX2ljb252ID0gZnVuY3Rpb25cbiAgfCBJbnRfZCB8IEludF9DZCAtPiBcIiVkXCIgfCBJbnRfcGQgLT4gXCIlK2RcIiB8IEludF9zZCAtPiBcIiUgZFwiXG4gIHwgSW50X2kgfCBJbnRfQ2kgLT4gXCIlaVwiIHwgSW50X3BpIC0+IFwiJStpXCIgfCBJbnRfc2kgLT4gXCIlIGlcIlxuICB8IEludF94IC0+IFwiJXhcIiB8IEludF9DeCAtPiBcIiUjeFwiXG4gIHwgSW50X1ggLT4gXCIlWFwiIHwgSW50X0NYIC0+IFwiJSNYXCJcbiAgfCBJbnRfbyAtPiBcIiVvXCIgfCBJbnRfQ28gLT4gXCIlI29cIlxuICB8IEludF91IHwgSW50X0N1IC0+IFwiJXVcIlxuXG5sZXQgZm9ybWF0X29mX2ljb252TCA9IGZ1bmN0aW9uXG4gIHwgSW50X2QgfCBJbnRfQ2QgLT4gXCIlTGRcIiB8IEludF9wZCAtPiBcIiUrTGRcIiB8IEludF9zZCAtPiBcIiUgTGRcIlxuICB8IEludF9pIHwgSW50X0NpIC0+IFwiJUxpXCIgfCBJbnRfcGkgLT4gXCIlK0xpXCIgfCBJbnRfc2kgLT4gXCIlIExpXCJcbiAgfCBJbnRfeCAtPiBcIiVMeFwiIHwgSW50X0N4IC0+IFwiJSNMeFwiXG4gIHwgSW50X1ggLT4gXCIlTFhcIiB8IEludF9DWCAtPiBcIiUjTFhcIlxuICB8IEludF9vIC0+IFwiJUxvXCIgfCBJbnRfQ28gLT4gXCIlI0xvXCJcbiAgfCBJbnRfdSB8IEludF9DdSAtPiBcIiVMdVwiXG5cbmxldCBmb3JtYXRfb2ZfaWNvbnZsID0gZnVuY3Rpb25cbiAgfCBJbnRfZCB8IEludF9DZCAtPiBcIiVsZFwiIHwgSW50X3BkIC0+IFwiJStsZFwiIHwgSW50X3NkIC0+IFwiJSBsZFwiXG4gIHwgSW50X2kgfCBJbnRfQ2kgLT4gXCIlbGlcIiB8IEludF9waSAtPiBcIiUrbGlcIiB8IEludF9zaSAtPiBcIiUgbGlcIlxuICB8IEludF94IC0+IFwiJWx4XCIgfCBJbnRfQ3ggLT4gXCIlI2x4XCJcbiAgfCBJbnRfWCAtPiBcIiVsWFwiIHwgSW50X0NYIC0+IFwiJSNsWFwiXG4gIHwgSW50X28gLT4gXCIlbG9cIiB8IEludF9DbyAtPiBcIiUjbG9cIlxuICB8IEludF91IHwgSW50X0N1IC0+IFwiJWx1XCJcblxubGV0IGZvcm1hdF9vZl9pY29udm4gPSBmdW5jdGlvblxuICB8IEludF9kIHwgSW50X0NkIC0+IFwiJW5kXCIgfCBJbnRfcGQgLT4gXCIlK25kXCIgfCBJbnRfc2QgLT4gXCIlIG5kXCJcbiAgfCBJbnRfaSB8IEludF9DaSAtPiBcIiVuaVwiIHwgSW50X3BpIC0+IFwiJStuaVwiIHwgSW50X3NpIC0+IFwiJSBuaVwiXG4gIHwgSW50X3ggLT4gXCIlbnhcIiB8IEludF9DeCAtPiBcIiUjbnhcIlxuICB8IEludF9YIC0+IFwiJW5YXCIgfCBJbnRfQ1ggLT4gXCIlI25YXCJcbiAgfCBJbnRfbyAtPiBcIiVub1wiIHwgSW50X0NvIC0+IFwiJSNub1wiXG4gIHwgSW50X3UgfCBJbnRfQ3UgLT4gXCIlbnVcIlxuXG4oKiBHZW5lcmF0ZSB0aGUgZm9ybWF0X2Zsb2F0IGZpcnN0IGFyZ3VtZW50IGZyb20gYSBmbG9hdF9jb252LiAqKVxubGV0IGZvcm1hdF9vZl9mY29udiBmY29udiBwcmVjID1cbiAgICBsZXQgcHJlYyA9IGFicyBwcmVjIGluXG4gICAgbGV0IHN5bWIgPSBjaGFyX29mX2Zjb252IH5jRjonZycgZmNvbnYgaW5cbiAgICBsZXQgYnVmID0gYnVmZmVyX2NyZWF0ZSAxNiBpblxuICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnO1xuICAgIGJwcmludF9mY29udl9mbGFnIGJ1ZiBmY29udjtcbiAgICBidWZmZXJfYWRkX2NoYXIgYnVmICcuJztcbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgKEludC50b19zdHJpbmcgcHJlYyk7XG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiBzeW1iO1xuICAgIGJ1ZmZlcl9jb250ZW50cyBidWZcblxubGV0IHRyYW5zZm9ybV9pbnRfYWx0IGljb252IHMgPVxuICBtYXRjaCBpY29udiB3aXRoXG4gIHwgSW50X0NkIHwgSW50X0NpIHwgSW50X0N1IC0+XG4gICAgbGV0IGRpZ2l0cyA9XG4gICAgICBsZXQgbiA9IHJlZiAwIGluXG4gICAgICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgICAgICBtYXRjaCBTdHJpbmcudW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgICB8ICcwJy4uJzknIC0+IGluY3IgblxuICAgICAgICB8IF8gLT4gKClcbiAgICAgIGRvbmU7XG4gICAgICAhblxuICAgIGluXG4gICAgbGV0IGJ1ZiA9IEJ5dGVzLmNyZWF0ZSAoU3RyaW5nLmxlbmd0aCBzICsgKGRpZ2l0cyAtIDEpIC8gMykgaW5cbiAgICBsZXQgcG9zID0gcmVmIDAgaW5cbiAgICBsZXQgcHV0IGMgPSBCeXRlcy5zZXQgYnVmICFwb3MgYzsgaW5jciBwb3MgaW5cbiAgICBsZXQgbGVmdCA9IHJlZiAoKGRpZ2l0cyAtIDEpIG1vZCAzICsgMSkgaW5cbiAgICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgICAgbWF0Y2ggU3RyaW5nLnVuc2FmZV9nZXQgcyBpIHdpdGhcbiAgICAgIHwgJzAnLi4nOScgYXMgYyAtPlxuICAgICAgICAgIGlmICFsZWZ0ID0gMCB0aGVuIChwdXQgJ18nOyBsZWZ0IDo9IDMpOyBkZWNyIGxlZnQ7IHB1dCBjXG4gICAgICB8IGMgLT4gcHV0IGNcbiAgICBkb25lO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgYnVmXG4gIHwgXyAtPiBzXG5cbigqIENvbnZlcnQgYW4gaW50ZWdlciB0byBhIHN0cmluZyBhY2NvcmRpbmcgdG8gYSBjb252ZXJzaW9uLiAqKVxubGV0IGNvbnZlcnRfaW50IGljb252IG4gPVxuICB0cmFuc2Zvcm1faW50X2FsdCBpY29udiAoZm9ybWF0X2ludCAoZm9ybWF0X29mX2ljb252IGljb252KSBuKVxubGV0IGNvbnZlcnRfaW50MzIgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfaW50MzIgKGZvcm1hdF9vZl9pY29udmwgaWNvbnYpIG4pXG5sZXQgY29udmVydF9uYXRpdmVpbnQgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfbmF0aXZlaW50IChmb3JtYXRfb2ZfaWNvbnZuIGljb252KSBuKVxubGV0IGNvbnZlcnRfaW50NjQgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfaW50NjQgKGZvcm1hdF9vZl9pY29udkwgaWNvbnYpIG4pXG5cbigqIENvbnZlcnQgYSBmbG9hdCB0byBzdHJpbmcuICopXG4oKiBGaXggc3BlY2lhbCBjYXNlIG9mIFwiT0NhbWwgZmxvYXQgZm9ybWF0XCIuICopXG5sZXQgY29udmVydF9mbG9hdCBmY29udiBwcmVjIHggPVxuICBsZXQgaGV4ICgpID1cbiAgICBsZXQgc2lnbiA9XG4gICAgICBtYXRjaCBmc3QgZmNvbnYgd2l0aFxuICAgICAgfCBGbG9hdF9mbGFnX3AgLT4gJysnXG4gICAgICB8IEZsb2F0X2ZsYWdfcyAtPiAnICdcbiAgICAgIHwgXyAtPiAnLScgaW5cbiAgICBoZXhzdHJpbmdfb2ZfZmxvYXQgeCBwcmVjIHNpZ24gaW5cbiAgbGV0IGFkZF9kb3RfaWZfbmVlZGVkIHN0ciA9XG4gICAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gICAgbGV0IHJlYyBpc192YWxpZCBpID1cbiAgICAgIGlmIGkgPSBsZW4gdGhlbiBmYWxzZSBlbHNlXG4gICAgICAgIG1hdGNoIHN0ci5baV0gd2l0aFxuICAgICAgICB8ICcuJyB8ICdlJyB8ICdFJyAtPiB0cnVlXG4gICAgICAgIHwgXyAtPiBpc192YWxpZCAoaSArIDEpIGluXG4gICAgaWYgaXNfdmFsaWQgMCB0aGVuIHN0ciBlbHNlIHN0ciBeIFwiLlwiIGluXG4gIGxldCBjYW1sX3NwZWNpYWxfdmFsIHN0ciA9IG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIHwgRlBfbm9ybWFsIHwgRlBfc3Vibm9ybWFsIHwgRlBfemVybyAtPiBzdHJcbiAgICB8IEZQX2luZmluaXRlIC0+IGlmIHggPCAwLjAgdGhlbiBcIm5lZ19pbmZpbml0eVwiIGVsc2UgXCJpbmZpbml0eVwiXG4gICAgfCBGUF9uYW4gLT4gXCJuYW5cIiBpblxuICBtYXRjaCBzbmQgZmNvbnYgd2l0aFxuICB8IEZsb2F0X2ggLT4gaGV4ICgpXG4gIHwgRmxvYXRfSCAtPiBTdHJpbmcudXBwZXJjYXNlX2FzY2lpIChoZXggKCkpXG4gIHwgRmxvYXRfQ0YgLT4gY2FtbF9zcGVjaWFsX3ZhbCAoaGV4ICgpKVxuICB8IEZsb2F0X0YgLT5cbiAgICBsZXQgc3RyID0gZm9ybWF0X2Zsb2F0IChmb3JtYXRfb2ZfZmNvbnYgZmNvbnYgcHJlYykgeCBpblxuICAgIGNhbWxfc3BlY2lhbF92YWwgKGFkZF9kb3RfaWZfbmVlZGVkIHN0cilcbiAgfCBGbG9hdF9mIHwgRmxvYXRfZSB8IEZsb2F0X0UgfCBGbG9hdF9nIHwgRmxvYXRfRyAtPlxuICAgIGZvcm1hdF9mbG9hdCAoZm9ybWF0X29mX2Zjb252IGZjb252IHByZWMpIHhcblxuKCogQ29udmVydCBhIGNoYXIgdG8gYSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBPQ2FtbCBsZXhpY2FsIGNvbnZlbnRpb24uICopXG5sZXQgZm9ybWF0X2NhbWxfY2hhciBjID1cbiAgbGV0IHN0ciA9IENoYXIuZXNjYXBlZCBjIGluXG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbGV0IHJlcyA9IEJ5dGVzLm1ha2UgKGwgKyAyKSAnXFwnJyBpblxuICBTdHJpbmcudW5zYWZlX2JsaXQgc3RyIDAgcmVzIDEgbDtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcblxuKCogQ29udmVydCBhIGZvcm1hdCB0eXBlIHRvIHN0cmluZyAqKVxubGV0IHN0cmluZ19vZl9mbXR0eSBmbXR0eSA9XG4gIGxldCBidWYgPSBidWZmZXJfY3JlYXRlIDE2IGluXG4gIGJwcmludF9mbXR0eSBidWYgZm10dHk7XG4gIGJ1ZmZlcl9jb250ZW50cyBidWZcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICgqIEdlbmVyaWMgcHJpbnRpbmcgZnVuY3Rpb24gKilcblxuKCogTWFrZSBhIGdlbmVyaWMgcHJpbnRpbmcgZnVuY3Rpb24uICopXG4oKiBVc2VkIHRvIGdlbmVyYXRlIFByaW50ZiBhbmQgRm9ybWF0IHByaW50aW5nIGZ1bmN0aW9ucy4gKilcbigqIFBhcmFtZXRlcnM6XG4gICAgIGs6IGEgY29udGludWF0aW9uIGZpbmFsbHkgYXBwbGllZCB0byB0aGUgb3V0cHV0IHN0cmVhbSBhbmQgdGhlIGFjY3VtdWxhdG9yLlxuICAgICBvOiB0aGUgb3V0cHV0IHN0cmVhbSAoc2VlIGssICVhIGFuZCAldCkuXG4gICAgIGFjYzogcmV2IGxpc3Qgb2YgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1c2gsIGZvcm1hdHRpbmcsIC4uLikuXG4gICAgIGZtdDogdGhlIGZvcm1hdC4gKilcbmxldCByZWMgbWFrZV9wcmludGYgOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiBhID1cbmZ1biBrIGFjYyBmbXQgLT4gbWF0Y2ggZm10IHdpdGhcbiAgfCBDaGFyIHJlc3QgLT5cbiAgICBmdW4gYyAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9jaGFyIChhY2MsIGMpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgcmVzdFxuICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgZnVuIGMgLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfc3RyaW5nIChhY2MsIGZvcm1hdF9jYW1sX2NoYXIgYykgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgbWFrZV9wYWRkaW5nIGsgYWNjIHJlc3QgcGFkIChmdW4gc3RyIC0+IHN0cilcbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIG1ha2VfcGFkZGluZyBrIGFjYyByZXN0IHBhZCBzdHJpbmdfdG9fY2FtbF9zdHJpbmdcbiAgfCBJbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gayBhY2MgcmVzdCBwYWQgcHJlYyBjb252ZXJ0X2ludCBpY29udlxuICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIG1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIGsgYWNjIHJlc3QgcGFkIHByZWMgY29udmVydF9pbnQzMiBpY29udlxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBtYWtlX2ludF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGNvbnZlcnRfbmF0aXZlaW50IGljb252XG4gIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gayBhY2MgcmVzdCBwYWQgcHJlYyBjb252ZXJ0X2ludDY0IGljb252XG4gIHwgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9mbG9hdF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGZjb252XG4gIHwgQm9vbCAocGFkLCByZXN0KSAtPlxuICAgIG1ha2VfcGFkZGluZyBrIGFjYyByZXN0IHBhZCBzdHJpbmdfb2ZfYm9vbFxuICB8IEFscGhhIHJlc3QgLT5cbiAgICBmdW4gZiB4IC0+IG1ha2VfcHJpbnRmIGsgKEFjY19kZWxheSAoYWNjLCBmdW4gbyAtPiBmIG8geCkpIHJlc3RcbiAgfCBUaGV0YSByZXN0IC0+XG4gICAgZnVuIGYgLT4gbWFrZV9wcmludGYgayAoQWNjX2RlbGF5IChhY2MsIGYpKSByZXN0XG4gIHwgQ3VzdG9tIChhcml0eSwgZiwgcmVzdCkgLT5cbiAgICBtYWtlX2N1c3RvbSBrIGFjYyByZXN0IGFyaXR5IChmICgpKVxuICB8IFJlYWRlciBfIC0+XG4gICAgKCogVGhpcyBjYXNlIGlzIGltcG9zc2libGUsIGJ5IHR5cGluZyBvZiBmb3JtYXRzLiAqKVxuICAgICgqIEluZGVlZCwgc2luY2UgcHJpbnRmIGFuZCBjby4gdGFrZSBhIGZvcm1hdDQgYXMgYXJndW1lbnQsIHRoZSAnZCBhbmQgJ2VcbiAgICAgICB0eXBlIHBhcmFtZXRlcnMgb2YgZm10IGFyZSBvYnZpb3VzbHkgZXF1YWxzLiBUaGUgUmVhZGVyIGlzIHRoZVxuICAgICAgIG9ubHkgY29uc3RydWN0b3Igd2hpY2ggdG91Y2ggJ2QgYW5kICdlIHR5cGUgcGFyYW1ldGVycyBvZiB0aGUgZm9ybWF0XG4gICAgICAgdHlwZSwgaXQgYWRkcyBhbiAoLT4pIHRvIHRoZSAnZCBwYXJhbWV0ZXJzLiBDb25zZXF1ZW50bHksIGEgZm9ybWF0NFxuICAgICAgIGNhbm5vdCBjb250YWluIGEgUmVhZGVyIG5vZGUsIGV4Y2VwdCBpbiB0aGUgc3ViLWZvcm1hdCBhc3NvY2lhdGVkIHRvXG4gICAgICAgYW4gJXsuLi4lfS4gSXQncyBub3QgYSBwcm9ibGVtIGJlY2F1c2UgbWFrZV9wcmludGYgZG8gbm90IGNhbGxcbiAgICAgICBpdHNlbGYgcmVjdXJzaXZlbHkgb24gdGhlIHN1Yi1mb3JtYXQgYXNzb2NpYXRlZCB0byAley4uLiV9LiAqKVxuICAgIGFzc2VydCBmYWxzZVxuICB8IEZsdXNoIHJlc3QgLT5cbiAgICBtYWtlX3ByaW50ZiBrIChBY2NfZmx1c2ggYWNjKSByZXN0XG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSAtPlxuICAgIG1ha2VfcHJpbnRmIGsgKEFjY19zdHJpbmdfbGl0ZXJhbCAoYWNjLCBzdHIpKSByZXN0XG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIHJlc3QpIC0+XG4gICAgbWFrZV9wcmludGYgayAoQWNjX2NoYXJfbGl0ZXJhbCAoYWNjLCBjaHIpKSByZXN0XG5cbiAgfCBGb3JtYXRfYXJnIChfLCBzdWJfZm10dHksIHJlc3QpIC0+XG4gICAgbGV0IHR5ID0gc3RyaW5nX29mX2ZtdHR5IHN1Yl9mbXR0eSBpblxuICAgIChmdW4gc3RyIC0+XG4gICAgICBpZ25vcmUgc3RyO1xuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHR5KSkgcmVzdClcbiAgfCBGb3JtYXRfc3Vic3QgKF8sIGZtdHR5LCByZXN0KSAtPlxuICAgIGZ1biAoRm9ybWF0IChmbXQsIF8pKSAtPiBtYWtlX3ByaW50ZiBrIGFjY1xuICAgICAgKGNvbmNhdF9mbXQgKHJlY2FzdCBmbXQgZm10dHkpIHJlc3QpXG5cbiAgfCBTY2FuX2NoYXJfc2V0IChfLCBfLCByZXN0KSAtPlxuICAgIGxldCBuZXdfYWNjID0gQWNjX2ludmFsaWRfYXJnIChhY2MsIFwiUHJpbnRmOiBiYWQgY29udmVyc2lvbiAlW1wiKSBpblxuICAgIGZ1biBfIC0+IG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgU2Nhbl9nZXRfY291bnRlciAoXywgcmVzdCkgLT5cbiAgICAoKiBUaGlzIGNhc2Ugc2hvdWxkIGJlIHJlZnVzZWQgZm9yIFByaW50Zi4gKilcbiAgICAoKiBBY2NlcHRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gKilcbiAgICAoKiBJbnRlcnByZXQgJWwsICVuIGFuZCAlTCBhcyAldS4gKilcbiAgICBmdW4gbiAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZm9ybWF0X2ludCBcIiV1XCIgbikgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAtPlxuICAgIGZ1biBjIC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX2NoYXIgKGFjYywgYykgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAtPlxuICAgIG1ha2VfaWdub3JlZF9wYXJhbSBrIGFjYyBpZ24gcmVzdFxuXG4gIHwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpIC0+XG4gICAgbWFrZV9wcmludGYgayAoQWNjX2Zvcm1hdHRpbmdfbGl0IChhY2MsIGZtdGluZ19saXQpKSByZXN0XG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICBsZXQgaycga2FjYyA9XG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZm9ybWF0dGluZ19nZW4gKGFjYywgQWNjX29wZW5fdGFnIGthY2MpKSByZXN0IGluXG4gICAgbWFrZV9wcmludGYgaycgRW5kX29mX2FjYyBmbXQnXG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICBsZXQgaycga2FjYyA9XG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZm9ybWF0dGluZ19nZW4gKGFjYywgQWNjX29wZW5fYm94IGthY2MpKSByZXN0IGluXG4gICAgbWFrZV9wcmludGYgaycgRW5kX29mX2FjYyBmbXQnXG5cbiAgfCBFbmRfb2ZfZm9ybWF0IC0+XG4gICAgayBhY2NcblxuKCogRGVsYXkgdGhlIGVycm9yIChJbnZhbGlkX2FyZ3VtZW50IFwiUHJpbnRmOiBiYWQgY29udmVyc2lvbiAlX1wiKS4gKilcbigqIEdlbmVyYXRlIGZ1bmN0aW9ucyB0byB0YWtlIHJlbWFpbmluZyBhcmd1bWVudHMgKGFmdGVyIHRoZSBcIiVfXCIpLiAqKVxuYW5kIG1ha2VfaWdub3JlZF9wYXJhbSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIHksIHgpIGlnbm9yZWQgLT5cbiAgICAoeCwgYiwgYywgeSwgZSwgZikgZm10IC0+IGEgPVxuZnVuIGsgYWNjIGlnbiBmbXQgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgICAgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfc3RyaW5nIF8gICAgICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9pbnQgKF8sIF8pICAgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfaW50MzIgKF8sIF8pICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX25hdGl2ZWludCAoXywgXykgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9pbnQ2NCAoXywgXykgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfZmxvYXQgKF8sIF8pICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIF8gICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChfLCBmbXR0eSkgLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIGZtdHR5IGZtdFxuICB8IElnbm9yZWRfcmVhZGVyICAgICAgICAgICAgICAgICAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IF8gICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG5cblxuKCogU3BlY2lhbCBjYXNlIG9mIHByaW50ZiBcIiVfKFwiLiAqKVxuYW5kIG1ha2VfZnJvbV9mbXR0eSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIHksIHgpIGZtdHR5IC0+XG4gICAgKHgsIGIsIGMsIHksIGUsIGYpIGZtdCAtPiBhID1cbmZ1biBrIGFjYyBmbXR0eSBmbXQgLT4gbWF0Y2ggZm10dHkgd2l0aFxuICB8IENoYXJfdHkgcmVzdCAgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IFN0cmluZ190eSByZXN0ICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEludF90eSByZXN0ICAgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEludDMyX3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IE5hdGl2ZWludF90eSByZXN0ICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEludDY0X3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEZsb2F0X3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEJvb2xfdHkgcmVzdCAgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEFscGhhX3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgVGhldGFfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgQW55X3R5IHJlc3QgICAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgUmVhZGVyX3R5IF8gICAgICAgICAgICAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgXyAgICAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgRm9ybWF0X2FyZ190eSAoXywgcmVzdCkgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgRW5kX29mX2ZtdHR5ICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIGxldCB0eSA9IHRyYW5zIChzeW1tIHR5MSkgdHkyIGluXG4gICAgZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIChjb25jYXRfZm10dHkgdHkgcmVzdCkgZm10XG5cbigqIEluc2VydCBhbiBBY2NfaW52YWxpZF9hcmcgaW4gdGhlIGFjY3VtdWxhdG9yIGFuZCBjb250aW51ZSB0byBnZW5lcmF0ZVxuICAgY2xvc3VyZXMgdG8gZ2V0IHRoZSByZW1haW5pbmcgYXJndW1lbnRzLiAqKVxuYW5kIG1ha2VfaW52YWxpZF9hcmcgOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiBhID1cbmZ1biBrIGFjYyBmbXQgLT5cbiAgbWFrZV9wcmludGYgayAoQWNjX2ludmFsaWRfYXJnIChhY2MsIFwiUHJpbnRmOiBiYWQgY29udmVyc2lvbiAlX1wiKSkgZm10XG5cbigqIEZpeCBwYWRkaW5nLCB0YWtlIGl0IGFzIGFuIGV4dHJhIGludGVnZXIgYXJndW1lbnQgaWYgbmVlZGVkLiAqKVxuYW5kIG1ha2VfcGFkZGluZyA6IHR5cGUgeCB6IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICh4LCB6IC0+IGEpIHBhZGRpbmcgLT4gKHogLT4gc3RyaW5nKSAtPiB4ID1cbiAgZnVuIGsgYWNjIGZtdCBwYWQgdHJhbnMgLT4gbWF0Y2ggcGFkIHdpdGhcbiAgfCBOb19wYWRkaW5nIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfc3RyaW5nIChhY2MsIHRyYW5zIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3aWR0aCkgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZml4X3BhZGRpbmcgcGFkdHkgd2lkdGggKHRyYW5zIHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5IC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZml4X3BhZGRpbmcgcGFkdHkgdyAodHJhbnMgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgZm10XG5cbigqIEZpeCBwYWRkaW5nIGFuZCBwcmVjaXNpb24gZm9yIGludCwgaW50MzIsIG5hdGl2ZWludCBvciBpbnQ2NC4gKilcbigqIFRha2Ugb25lIG9yIHR3byBleHRyYSBpbnRlZ2VyIGFyZ3VtZW50cyBpZiBuZWVkZWQuICopXG5hbmQgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gOiB0eXBlIHggeSB6IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICh4LCB5KSBwYWRkaW5nIC0+ICh5LCB6IC0+IGEpIHByZWNpc2lvbiAtPiAoaW50X2NvbnYgLT4geiAtPiBzdHJpbmcpIC0+XG4gICAgaW50X2NvbnYgLT4geCA9XG4gIGZ1biBrIGFjYyBmbXQgcGFkIHByZWMgdHJhbnMgaWNvbnYgLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgfCBOb19wYWRkaW5nLCBOb19wcmVjaXNpb24gLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IHRyYW5zIGljb252IHggaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBOb19wYWRkaW5nLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTm9fcGFkZGluZywgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAodHJhbnMgaWNvbnYgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB3IHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3ICh0cmFucyBpY29udiB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4gdyB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gdyBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcblxuKCogQ29udmVydCBhIGZsb2F0LCBmaXggcGFkZGluZyBhbmQgcHJlY2lzaW9uIGlmIG5lZWRlZC4gKilcbigqIFRha2UgdGhlIGZsb2F0IGFyZ3VtZW50IGFuZCBvbmUgb3IgdHdvIGV4dHJhIGludGVnZXIgYXJndW1lbnRzIGlmIG5lZWRlZC4gKilcbmFuZCBtYWtlX2Zsb2F0X3BhZGRpbmdfcHJlY2lzaW9uIDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKHksIGZsb2F0IC0+IGEpIHByZWNpc2lvbiAtPiBmbG9hdF9jb252IC0+IHggPVxuICBmdW4gayBhY2MgZm10IHBhZCBwcmVjIGZjb252IC0+IG1hdGNoIHBhZCwgcHJlYyB3aXRoXG4gIHwgTm9fcGFkZGluZywgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IChkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udikgeCBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IE5vX3BhZGRpbmcsIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gY29udmVydF9mbG9hdCBmY29udiBwIHggaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBOb19wYWRkaW5nLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHAgeCAtPlxuICAgICAgbGV0IHN0ciA9IGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4IGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IChkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udikgeCBpblxuICAgICAgbGV0IHN0cicgPSBmaXhfcGFkZGluZyBwYWR0eSB3IHN0ciBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cicpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoY29udmVydF9mbG9hdCBmY29udiBwIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB3IHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IChkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udikgeCBpblxuICAgICAgbGV0IHN0cicgPSBmaXhfcGFkZGluZyBwYWR0eSB3IHN0ciBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cicpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHcgcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoY29udmVydF9mbG9hdCBmY29udiBwIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG5hbmQgbWFrZV9jdXN0b20gOiB0eXBlIHggeSBhIGIgYyBkIGUgZiAuXG4gICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAoYSwgeCwgeSkgY3VzdG9tX2FyaXR5IC0+IHggLT4geSA9XG4gIGZ1biBrIGFjYyByZXN0IGFyaXR5IGYgLT4gbWF0Y2ggYXJpdHkgd2l0aFxuICB8IEN1c3RvbV96ZXJvIC0+IG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBmKSkgcmVzdFxuICB8IEN1c3RvbV9zdWNjIGFyaXR5IC0+XG4gICAgZnVuIHggLT5cbiAgICAgIG1ha2VfY3VzdG9tIGsgYWNjIHJlc3QgYXJpdHkgKGYgeClcblxubGV0IGNvbnN0IHggXyA9IHhcblxubGV0IHJlYyBtYWtlX2lwcmludGYgOiB0eXBlIGEgYiBjIGQgZSBmIHN0YXRlLlxuICAoc3RhdGUgLT4gZikgLT4gc3RhdGUgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiBhID1cbiAgZnVuIGsgbyBmbXQgLT4gbWF0Y2ggZm10IHdpdGhcbiAgICB8IENoYXIgcmVzdCAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQ2FtbF9jaGFyIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFN0cmluZyAoTm9fcGFkZGluZywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFN0cmluZyAoTGl0X3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFN0cmluZyAoQXJnX3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpKVxuICAgIHwgQ2FtbF9zdHJpbmcgKE5vX3BhZGRpbmcsIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBDYW1sX3N0cmluZyAoTGl0X3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IENhbWxfc3RyaW5nIChBcmdfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdCkpXG4gICAgfCBJbnQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IEludDMyIChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIGsgbyByZXN0IHBhZCBwcmVjXG4gICAgfCBOYXRpdmVpbnQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IEludDY0IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIGsgbyByZXN0IHBhZCBwcmVjXG4gICAgfCBGbG9hdCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgICBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiBrIG8gcmVzdCBwYWQgcHJlY1xuICAgIHwgQm9vbCAoTm9fcGFkZGluZywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEJvb2wgKExpdF9wYWRkaW5nIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBCb29sIChBcmdfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdCkpXG4gICAgfCBBbHBoYSByZXN0IC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KSlcbiAgICB8IFRoZXRhIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEN1c3RvbSAoYXJpdHksIF8sIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX2N1c3RvbV9hcml0eSBrIG8gcmVzdCBhcml0eVxuICAgIHwgUmVhZGVyIF8gLT5cbiAgICAgICAgKCogVGhpcyBjYXNlIGlzIGltcG9zc2libGUsIGJ5IHR5cGluZyBvZiBmb3JtYXRzLiAgU2VlIHRoZVxuICAgICAgICAgICBub3RlIGluIHRoZSBjb3JyZXNwb25kaW5nIGNhc2UgZm9yIG1ha2VfcHJpbnRmLiAqKVxuICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICB8IEZsdXNoIHJlc3QgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyByZXN0XG4gICAgfCBTdHJpbmdfbGl0ZXJhbCAoXywgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyByZXN0XG4gICAgfCBDaGFyX2xpdGVyYWwgKF8sIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiBrIG8gcmVzdFxuICAgIHwgRm9ybWF0X2FyZyAoXywgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEZvcm1hdF9zdWJzdCAoXywgZm10dHksIHJlc3QpIC0+XG4gICAgICAgIGZ1biAoRm9ybWF0IChmbXQsIF8pKSAtPlxuICAgICAgICAgIG1ha2VfaXByaW50ZiBrIG9cbiAgICAgICAgICAgIChjb25jYXRfZm10IChyZWNhc3QgZm10IGZtdHR5KSByZXN0KVxuICAgIHwgU2Nhbl9jaGFyX3NldCAoXywgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFNjYW5fZ2V0X2NvdW50ZXIgKF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBTY2FuX25leHRfY2hhciByZXN0IC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaWdub3JlZF9wYXJhbSAoZnVuIF8gLT4gayBvKSAoRW5kX29mX2FjYykgaWduIHJlc3RcbiAgICB8IEZvcm1hdHRpbmdfbGl0IChfLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lwcmludGYgayBvIHJlc3RcbiAgICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiAoZnVuIGtvYyAtPiBtYWtlX2lwcmludGYgayBrb2MgcmVzdCkgbyBmbXQnXG4gICAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lwcmludGYgKGZ1biBrb2MgLT4gbWFrZV9pcHJpbnRmIGsga29jIHJlc3QpIG8gZm10J1xuICAgIHwgRW5kX29mX2Zvcm1hdCAtPlxuICAgICAgICBrIG9cbmFuZCBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiA6XG4gIHR5cGUgeCB5IHogYSBiIGMgZCBlIGYgc3RhdGUuXG4gIChzdGF0ZSAtPiBmKSAtPiBzdGF0ZSAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICh4LCB5KSBwYWRkaW5nIC0+ICh5LCB6IC0+IGEpIHByZWNpc2lvbiAtPiB4ID1cbiAgZnVuIGsgbyBmbXQgcGFkIHByZWMgLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgICB8IE5vX3BhZGRpbmcgICAsIE5vX3ByZWNpc2lvbiAgICAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpXG4gICAgfCBOb19wYWRkaW5nICAgLCBMaXRfcHJlY2lzaW9uIF8gLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KVxuICAgIHwgTm9fcGFkZGluZyAgICwgQXJnX3ByZWNpc2lvbiAgIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpKVxuICAgIHwgTGl0X3BhZGRpbmcgXywgTm9fcHJlY2lzaW9uICAgIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdClcbiAgICB8IExpdF9wYWRkaW5nIF8sIExpdF9wcmVjaXNpb24gXyAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpXG4gICAgfCBMaXRfcGFkZGluZyBfLCBBcmdfcHJlY2lzaW9uICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBBcmdfcGFkZGluZyBfLCBOb19wcmVjaXNpb24gICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBBcmdfcGFkZGluZyBfLCBMaXRfcHJlY2lzaW9uIF8gLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBBcmdfcGFkZGluZyBfLCBBcmdfcHJlY2lzaW9uICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpKSlcbmFuZCBmbl9vZl9jdXN0b21fYXJpdHkgOiB0eXBlIHggeSBhIGIgYyBkIGUgZiBzdGF0ZS5cbiAgKHN0YXRlIC0+IGYpIC0+XG4gIHN0YXRlIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT4gKGEsIHgsIHkpIGN1c3RvbV9hcml0eSAtPiB5ID1cbiAgZnVuIGsgbyBmbXQgLT4gZnVuY3Rpb25cbiAgICB8IEN1c3RvbV96ZXJvIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiBrIG8gZm10XG4gICAgfCBDdXN0b21fc3VjYyBhcml0eSAtPlxuICAgICAgICBjb25zdCAoZm5fb2ZfY3VzdG9tX2FyaXR5IGsgbyBmbXQgYXJpdHkpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIENvbnRpbnVhdGlvbnMgZm9yIG1ha2VfcHJpbnRmICopXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYW4gb3V0cHV0X3N0cmVhbS4gKilcbigqIFVzZWQgYXMgYSBjb250aW51YXRpb24gb2YgbWFrZV9wcmludGYuICopXG5sZXQgcmVjIG91dHB1dF9hY2MgbyBhY2MgPSBtYXRjaCBhY2Mgd2l0aFxuICB8IEFjY19mb3JtYXR0aW5nX2xpdCAocCwgZm10aW5nX2xpdCkgLT5cbiAgICBsZXQgcyA9IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0IGluXG4gICAgb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBzO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBcIkB7XCI7IG91dHB1dF9hY2MgbyBhY2MnO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBcIkBbXCI7IG91dHB1dF9hY2MgbyBhY2MnO1xuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAocCwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKHAsIHMpICAgLT4gb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBzXG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9jaGFyIG8gY1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBvdXRwdXRfYWNjIG8gcDsgZiBvXG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IG91dHB1dF9hY2MgbyBwOyBmbHVzaCBvXG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IG91dHB1dF9hY2MgbyBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYSBidWZmZXIuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIG1ha2VfcHJpbnRmLiAqKVxubGV0IHJlYyBidWZwdXRfYWNjIGIgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGZtdGluZ19saXQpIC0+XG4gICAgbGV0IHMgPSBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCBpblxuICAgIGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIHM7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBidWZwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBcIkB7XCI7IGJ1ZnB1dF9hY2MgYiBhY2MnO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgYnVmcHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgXCJAW1wiOyBidWZwdXRfYWNjIGIgYWNjJztcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKHAsIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChwLCBzKSAgIC0+IGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIHNcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBidWZwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9jaGFyIGIgY1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBidWZwdXRfYWNjIGIgcDsgZiBiXG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IGJ1ZnB1dF9hY2MgYiBwO1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBidWZwdXRfYWNjIGIgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKiBSZWN1cnNpdmVseSBvdXRwdXQgYW4gXCJhY2N1bXVsYXRvclwiIGNvbnRhaW5pbmcgYSByZXZlcnNlZCBsaXN0IG9mXG4gICBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzLCAuLi4pIGluIGEgYnVmZmVyLiAqKVxuKCogRGlmZmVyIGZyb20gYnVmcHV0X2FjYyBieSB0aGUgaW50ZXJwcmV0YXRpb24gb2YgJWEgYW5kICV0LiAqKVxuKCogVXNlZCBhcyBhIGNvbnRpbnVhdGlvbiBvZiBtYWtlX3ByaW50Zi4gKilcbmxldCByZWMgc3RycHV0X2FjYyBiIGFjYyA9IG1hdGNoIGFjYyB3aXRoXG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBmbXRpbmdfbGl0KSAtPlxuICAgIGxldCBzID0gc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBzO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgXCJAe1wiOyBzdHJwdXRfYWNjIGIgYWNjJztcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX2JveCBhY2MnKSAtPlxuICAgIHN0cnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIFwiQFtcIjsgc3RycHV0X2FjYyBiIGFjYyc7XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBzXG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfY2hhciBiIGNcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgKGYgKCkpXG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IHN0cnB1dF9hY2MgYiBwO1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBzdHJwdXRfYWNjIGIgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBFcnJvciBtYW5hZ2VtZW50ICopXG5cbigqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgcHJldHR5LXByaW50ZWQgZXJyb3IgbWVzc2FnZS4gKilcbmxldCBmYWlsd2l0aF9tZXNzYWdlIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbGV0IGJ1ZiA9IEJ1ZmZlci5jcmVhdGUgMjU2IGluXG4gIGxldCBrIGFjYyA9IHN0cnB1dF9hY2MgYnVmIGFjYzsgZmFpbHdpdGggKEJ1ZmZlci5jb250ZW50cyBidWYpIGluXG4gIG1ha2VfcHJpbnRmIGsgRW5kX29mX2FjYyBmbXRcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXR0aW5nIHRvb2xzICopXG5cbigqIENvbnZlcnQgYSBzdHJpbmcgdG8gYW4gb3BlbiBibG9jayBkZXNjcmlwdGlvbiAoaW5kZW50LCBibG9ja190eXBlKSAqKVxubGV0IG9wZW5fYm94X29mX3N0cmluZyBzdHIgPVxuICBpZiBzdHIgPSBcIlwiIHRoZW4gKDAsIFBwX2JveCkgZWxzZVxuICAgIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICAgIGxldCBpbnZhbGlkX2JveCAoKSA9IGZhaWx3aXRoX21lc3NhZ2UgXCJpbnZhbGlkIGJveCBkZXNjcmlwdGlvbiAlU1wiIHN0ciBpblxuICAgIGxldCByZWMgcGFyc2Vfc3BhY2VzIGkgPVxuICAgICAgaWYgaSA9IGxlbiB0aGVuIGkgZWxzZVxuICAgICAgICBtYXRjaCBzdHIuW2ldIHdpdGhcbiAgICAgICAgfCAnICcgfCAnXFx0JyAtPiBwYXJzZV9zcGFjZXMgKGkgKyAxKVxuICAgICAgICB8IF8gLT4gaVxuICAgIGFuZCBwYXJzZV9sd29yZCBpIGogPVxuICAgICAgaWYgaiA9IGxlbiB0aGVuIGogZWxzZVxuICAgICAgICBtYXRjaCBzdHIuW2pdIHdpdGhcbiAgICAgICAgfCAnYScgLi4gJ3onIC0+IHBhcnNlX2x3b3JkIGkgKGogKyAxKVxuICAgICAgICB8IF8gLT4galxuICAgIGFuZCBwYXJzZV9pbnQgaSBqID1cbiAgICAgIGlmIGogPSBsZW4gdGhlbiBqIGVsc2VcbiAgICAgICAgbWF0Y2ggc3RyLltqXSB3aXRoXG4gICAgICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPiBwYXJzZV9pbnQgaSAoaiArIDEpXG4gICAgICAgIHwgXyAtPiBqIGluXG4gICAgbGV0IHdzdGFydCA9IHBhcnNlX3NwYWNlcyAwIGluXG4gICAgbGV0IHdlbmQgPSBwYXJzZV9sd29yZCB3c3RhcnQgd3N0YXJ0IGluXG4gICAgbGV0IGJveF9uYW1lID0gU3RyaW5nLnN1YiBzdHIgd3N0YXJ0ICh3ZW5kIC0gd3N0YXJ0KSBpblxuICAgIGxldCBuc3RhcnQgPSBwYXJzZV9zcGFjZXMgd2VuZCBpblxuICAgIGxldCBuZW5kID0gcGFyc2VfaW50IG5zdGFydCBuc3RhcnQgaW5cbiAgICBsZXQgaW5kZW50ID1cbiAgICAgIGlmIG5zdGFydCA9IG5lbmQgdGhlbiAwIGVsc2VcbiAgICAgICAgdHJ5IGludF9vZl9zdHJpbmcgKFN0cmluZy5zdWIgc3RyIG5zdGFydCAobmVuZCAtIG5zdGFydCkpXG4gICAgICAgIHdpdGggRmFpbHVyZSBfIC0+IGludmFsaWRfYm94ICgpIGluXG4gICAgbGV0IGV4cF9lbmQgPSBwYXJzZV9zcGFjZXMgbmVuZCBpblxuICAgIGlmIGV4cF9lbmQgPD4gbGVuIHRoZW4gaW52YWxpZF9ib3ggKCk7XG4gICAgbGV0IGJveF90eXBlID0gbWF0Y2ggYm94X25hbWUgd2l0aFxuICAgICAgfCBcIlwiIHwgXCJiXCIgLT4gUHBfYm94XG4gICAgICB8IFwiaFwiICAgICAgLT4gUHBfaGJveFxuICAgICAgfCBcInZcIiAgICAgIC0+IFBwX3Zib3hcbiAgICAgIHwgXCJodlwiICAgICAtPiBQcF9odmJveFxuICAgICAgfCBcImhvdlwiICAgIC0+IFBwX2hvdmJveFxuICAgICAgfCBfICAgICAgICAtPiBpbnZhbGlkX2JveCAoKSBpblxuICAgIChpbmRlbnQsIGJveF90eXBlKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFBhcnNpbmcgdG9vbHMgKilcblxuKCogQ3JlYXRlIGEgcGFkZGluZ19mbXRfZWJiIGZyb20gYSBwYWRkaW5nIGFuZCBhIGZvcm1hdC4gKilcbigqIENvcHkgdGhlIHBhZGRpbmcgdG8gZGlzam9pbiB0aGUgdHlwZSBwYXJhbWV0ZXJzIG9mIGFyZ3VtZW50IGFuZCByZXN1bHQuICopXG5sZXQgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgOiB0eXBlIHggeSAuXG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKF8sIF8sIF8sIF8sIF8sIF8pIGZtdCAtPlxuICAgICAgKF8sIF8sIF8sIF8sIF8pIHBhZGRpbmdfZm10X2ViYiA9XG5mdW4gcGFkIGZtdCAtPiBtYXRjaCBwYWQgd2l0aFxuICB8IE5vX3BhZGRpbmcgICAgICAgICAtPiBQYWRkaW5nX2ZtdF9FQkIgKE5vX3BhZGRpbmcsIGZtdClcbiAgfCBMaXRfcGFkZGluZyAocywgdykgLT4gUGFkZGluZ19mbXRfRUJCIChMaXRfcGFkZGluZyAocywgdyksIGZtdClcbiAgfCBBcmdfcGFkZGluZyBzICAgICAgLT4gUGFkZGluZ19mbXRfRUJCIChBcmdfcGFkZGluZyBzLCBmbXQpXG5cbigqIENyZWF0ZSBhIHByZWNpc2lvbl9mbXRfZWJiIGZyb20gYSBwcmVjaXNpb24gYW5kIGEgZm9ybWF0LiAqKVxuKCogQ29weSB0aGUgcHJlY2lzaW9uIHRvIGRpc2pvaW4gdGhlIHR5cGUgcGFyYW1ldGVycyBvZiBhcmd1bWVudCBhbmQgcmVzdWx0LiAqKVxubGV0IG1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIgOiB0eXBlIHggeSAuXG4gICAgKHgsIHkpIHByZWNpc2lvbiAtPiAoXywgXywgXywgXywgXywgXykgZm10IC0+XG4gICAgICAoXywgXywgXywgXywgXykgcHJlY2lzaW9uX2ZtdF9lYmIgPVxuZnVuIHByZWMgZm10IC0+IG1hdGNoIHByZWMgd2l0aFxuICB8IE5vX3ByZWNpc2lvbiAgICAtPiBQcmVjaXNpb25fZm10X0VCQiAoTm9fcHJlY2lzaW9uLCBmbXQpXG4gIHwgTGl0X3ByZWNpc2lvbiBwIC0+IFByZWNpc2lvbl9mbXRfRUJCIChMaXRfcHJlY2lzaW9uIHAsIGZtdClcbiAgfCBBcmdfcHJlY2lzaW9uICAgLT4gUHJlY2lzaW9uX2ZtdF9FQkIgKEFyZ19wcmVjaXNpb24sIGZtdClcblxuKCogQ3JlYXRlIGEgcGFkcHJlY19mbXRfZWJiIGZyb20gYSBwYWRkaW5nLCBhIHByZWNpc2lvbiBhbmQgYSBmb3JtYXQuICopXG4oKiBDb3B5IHRoZSBwYWRkaW5nIGFuZCB0aGUgcHJlY2lzaW9uIHRvIGRpc2pvaW4gdHlwZSBwYXJhbWV0ZXJzIG9mIGFyZ3VtZW50c1xuICAgYW5kIHJlc3VsdC4gKilcbmxldCBtYWtlX3BhZHByZWNfZm10X2ViYiA6IHR5cGUgeCB5IHogdCAuXG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKHosIHQpIHByZWNpc2lvbiAtPlxuICAgIChfLCBfLCBfLCBfLCBfLCBfKSBmbXQgLT5cbiAgICAoXywgXywgXywgXywgXykgcGFkcHJlY19mbXRfZWJiID1cbmZ1biBwYWQgcHJlYyBmbXQgLT5cbiAgbGV0IFByZWNpc2lvbl9mbXRfRUJCIChwcmVjLCBmbXQnKSA9IG1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIgcHJlYyBmbXQgaW5cbiAgbWF0Y2ggcGFkIHdpdGhcbiAgfCBOb19wYWRkaW5nICAgICAgICAgLT4gUGFkcHJlY19mbXRfRUJCIChOb19wYWRkaW5nLCBwcmVjLCBmbXQnKVxuICB8IExpdF9wYWRkaW5nIChzLCB3KSAtPiBQYWRwcmVjX2ZtdF9FQkIgKExpdF9wYWRkaW5nIChzLCB3KSwgcHJlYywgZm10JylcbiAgfCBBcmdfcGFkZGluZyBzICAgICAgLT4gUGFkcHJlY19mbXRfRUJCIChBcmdfcGFkZGluZyBzLCBwcmVjLCBmbXQnKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgcGFyc2luZyAqKVxuXG4oKiBQYXJzZSBhIHN0cmluZyByZXByZXNlbnRpbmcgYSBmb3JtYXQgYW5kIGNyZWF0ZSBhIGZtdF9lYmIuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gaW4gY2FzZSBvZiBpbnZhbGlkIGZvcm1hdC4gKilcbmxldCBmbXRfZWJiX29mX3N0cmluZyA/bGVnYWN5X2JlaGF2aW9yIHN0ciA9XG4gICgqIFBhcmFtZXRlcnMgbmFtaW5nIGNvbnZlbnRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIGxpdF9zdGFydDogc3RhcnQgb2YgdGhlIGxpdGVyYWwgc2VxdWVuY2UuICAgICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gc3RyX2luZDogY3VycmVudCBpbmRleCBpbiB0aGUgc3RyaW5nLiAgICAgICAgICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBlbmRfaW5kOiBlbmQgb2YgdGhlIGN1cnJlbnQgKHN1Yi0pZm9ybWF0LiAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIHBjdF9pbmQ6IGluZGV4IG9mIHRoZSAnJScgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgICAgICAqKVxuICAoKiAgIC0gemVybzogIGlzIHRoZSAnMCcgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBtaW51czogaXMgdGhlICctJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIHBsdXM6ICBpcyB0aGUgJysnIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gaGFzaDogIGlzIHRoZSAnIycgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBzcGFjZTogaXMgdGhlICcgJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIGlnbjogICBpcyB0aGUgJ18nIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gcGFkOiBwYWRkaW5nIG9mIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICAgICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBwcmVjOiBwcmVjaXNpb24gb2YgdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIHN5bWI6IGNoYXIgcmVwcmVzZW50aW5nIHRoZSBjb252ZXJzaW9uICgnYycsICdzJywgJ2QnLCAuLi4pLiAqKVxuICAoKiAgIC0gY2hhcl9zZXQ6IHNldCBvZiBjaGFyYWN0ZXJzIGFzIGJpdG1hcCAoc2VlIHNjYW5mICVbLi4uXSkuICAgICopXG5cbiAgbGV0IGxlZ2FjeV9iZWhhdmlvciA9IG1hdGNoIGxlZ2FjeV9iZWhhdmlvciB3aXRoXG4gICAgfCBTb21lIGZsYWcgLT4gZmxhZ1xuICAgIHwgTm9uZSAtPiB0cnVlXG4gICgqICBXaGVuIHRoaXMgZmxhZyBpcyBlbmFibGVkLCB0aGUgZm9ybWF0IHBhcnNlciB0cmllcyB0byBiZWhhdmUgYXNcbiAgICAgIHRoZSA8NC4wMiBpbXBsZW1lbnRhdGlvbnMsIGluIHBhcnRpY3VsYXIgaXQgaWdub3JlcyBtb3N0IGJlbmluZVxuICAgICAgbm9uc2Vuc2ljYWwgZm9ybWF0LiBXaGVuIHRoZSBmbGFnIGlzIGRpc2FibGVkLCBpdCB3aWxsIHJlamVjdCBhbnlcbiAgICAgIGZvcm1hdCB0aGF0IGlzIG5vdCBhY2NlcHRlZCBieSB0aGUgc3BlY2lmaWNhdGlvbi5cblxuICAgICAgQSB0eXBpY2FsIGV4YW1wbGUgd291bGQgYmUgXCIlKyBkXCI6IHNwZWNpZnlpbmcgYm90aCAnKycgKGlmIHRoZVxuICAgICAgbnVtYmVyIGlzIHBvc2l0aXZlLCBwYWQgd2l0aCBhICcrJyB0byBnZXQgdGhlIHNhbWUgd2lkdGggYXNcbiAgICAgIG5lZ2F0aXZlIG51bWJlcnMpIGFuZCAnICcgKGlmIHRoZSBudW1iZXIgaXMgcG9zaXRpdmUsIHBhZCB3aXRoXG4gICAgICBhIHNwYWNlKSBkb2VzIG5vdCBtYWtlIHNlbnNlLCBidXQgdGhlIGxlZ2FjeSAoPCA0LjAyKVxuICAgICAgaW1wbGVtZW50YXRpb24gd2FzIGhhcHB5IHRvIGp1c3QgaWdub3JlIHRoZSBzcGFjZS5cbiAgKilcbiAgaW5cblxuICAoKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhIGZyaWVuZGx5IGVycm9yIG1lc3NhZ2UuICopXG4gIGxldCBpbnZhbGlkX2Zvcm1hdF9tZXNzYWdlIHN0cl9pbmQgbXNnID1cbiAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCAlc1wiXG4gICAgICBzdHIgc3RyX2luZCBtc2dcbiAgaW5cblxuICAoKiBVc2VkIHdoZW4gdGhlIGVuZCBvZiB0aGUgZm9ybWF0IChvciB0aGUgY3VycmVudCBzdWItZm9ybWF0KSB3YXMgZW5jb3VudGVyZWRcbiAgICAgIHVuZXhwZWN0ZWRseS4gKilcbiAgbGV0IHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kID1cbiAgICBpbnZhbGlkX2Zvcm1hdF9tZXNzYWdlIGVuZF9pbmRcbiAgICAgIFwidW5leHBlY3RlZCBlbmQgb2YgZm9ybWF0XCJcbiAgaW5cblxuICAoKiBVc2VkIGZvciAlMGM6IG5vIG90aGVyIHdpZHRocyBhcmUgaW1wbGVtZW50ZWQgKilcbiAgbGV0IGludmFsaWRfbm9ubnVsbF9jaGFyX3dpZHRoIHN0cl9pbmQgPVxuICAgIGludmFsaWRfZm9ybWF0X21lc3NhZ2Ugc3RyX2luZFxuICAgICAgXCJub24temVybyB3aWR0aHMgYXJlIHVuc3VwcG9ydGVkIGZvciAlYyBjb252ZXJzaW9uc1wiXG4gIGluXG4gICgqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZSBhYm91dCBhbiBvcHRpb24gZGVwZW5kZW5jeVxuICAgICBwcm9ibGVtLiAqKVxuICBsZXQgaW52YWxpZF9mb3JtYXRfd2l0aG91dCBzdHJfaW5kIGMgcyA9XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgJyVjJyB3aXRob3V0ICVzXCJcbiAgICAgIHN0ciBzdHJfaW5kIGMgc1xuICBpblxuXG4gICgqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZSBhYm91dCBhbiB1bmV4cGVjdGVkXG4gICAgIGNoYXJhY3Rlci4gKilcbiAgbGV0IGV4cGVjdGVkX2NoYXJhY3RlciBzdHJfaW5kIGV4cGVjdGVkIHJlYWQgPVxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgJXMgZXhwZWN0ZWQsIHJlYWQgJUNcIlxuICAgICAgc3RyIHN0cl9pbmQgZXhwZWN0ZWQgcmVhZFxuICBpblxuXG4gICgqIFBhcnNlIHRoZSBzdHJpbmcgZnJvbSBiZWdfaW5kIChpbmNsdWRlZCkgdG8gZW5kX2luZCAoZXhjbHVkZWQpLiAqKVxuICBsZXQgcmVjIHBhcnNlIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIGJlZ19pbmQgZW5kX2luZCAtPiBwYXJzZV9saXRlcmFsIGJlZ19pbmQgYmVnX2luZCBlbmRfaW5kXG5cbiAgKCogUmVhZCBsaXRlcmFsIGNoYXJhY3RlcnMgdXAgdG8gJyUnIG9yICdAJyBzcGVjaWFsIGNoYXJhY3RlcnMuICopXG4gIGFuZCBwYXJzZV9saXRlcmFsIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBsaXRfc3RhcnQgc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiBhZGRfbGl0ZXJhbCBsaXRfc3RhcnQgc3RyX2luZCBFbmRfb2ZfZm9ybWF0IGVsc2VcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnJScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZV9mb3JtYXQgc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICAgIGFkZF9saXRlcmFsIGxpdF9zdGFydCBzdHJfaW5kIGZtdF9yZXN0XG4gICAgICB8ICdAJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlX2FmdGVyX2F0IChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBhZGRfbGl0ZXJhbCBsaXRfc3RhcnQgc3RyX2luZCBmbXRfcmVzdFxuICAgICAgfCBfIC0+XG4gICAgICAgIHBhcnNlX2xpdGVyYWwgbGl0X3N0YXJ0IChzdHJfaW5kICsgMSkgZW5kX2luZFxuXG4gICgqIFBhcnNlIGEgZm9ybWF0IGFmdGVyICclJyAqKVxuICBhbmQgcGFyc2VfZm9ybWF0IDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgZW5kX2luZCAtPiBwYXJzZV9pZ24gcGN0X2luZCAocGN0X2luZCArIDEpIGVuZF9pbmRcblxuICBhbmQgcGFyc2VfaWduIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICdfJyAtPiBwYXJzZV9mbGFncyBwY3RfaW5kIChzdHJfaW5kKzEpIGVuZF9pbmQgdHJ1ZVxuICAgICAgfCBfIC0+IHBhcnNlX2ZsYWdzIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIGZhbHNlXG5cbiAgYW5kIHBhcnNlX2ZsYWdzIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiXG4gID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIGlnbiAtPlxuICAgIGxldCB6ZXJvID0gcmVmIGZhbHNlIGFuZCBtaW51cyA9IHJlZiBmYWxzZVxuICAgIGFuZCBwbHVzID0gcmVmIGZhbHNlIGFuZCBzcGFjZSA9IHJlZiBmYWxzZVxuICAgIGFuZCBoYXNoID0gcmVmIGZhbHNlIGluXG4gICAgbGV0IHNldF9mbGFnIHN0cl9pbmQgZmxhZyA9XG4gICAgICAoKiBpbiBsZWdhY3kgbW9kZSwgZHVwbGljYXRlIGZsYWdzIGFyZSBhY2NlcHRlZCAqKVxuICAgICAgaWYgIWZsYWcgJiYgbm90IGxlZ2FjeV9iZWhhdmlvciB0aGVuXG4gICAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBkdXBsaWNhdGUgZmxhZyAlQ1wiXG4gICAgICAgICAgc3RyIHN0cl9pbmQgc3RyLltzdHJfaW5kXTtcbiAgICAgIGZsYWcgOj0gdHJ1ZTtcbiAgICBpblxuICAgIGxldCByZWMgcmVhZF9mbGFncyBzdHJfaW5kID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBiZWdpbiBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJzAnIC0+IHNldF9mbGFnIHN0cl9pbmQgemVybzsgIHJlYWRfZmxhZ3MgKHN0cl9pbmQgKyAxKVxuICAgICAgfCAnLScgLT4gc2V0X2ZsYWcgc3RyX2luZCBtaW51czsgcmVhZF9mbGFncyAoc3RyX2luZCArIDEpXG4gICAgICB8ICcrJyAtPiBzZXRfZmxhZyBzdHJfaW5kIHBsdXM7ICByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgJyMnIC0+IHNldF9mbGFnIHN0cl9pbmQgaGFzaDsgcmVhZF9mbGFncyAoc3RyX2luZCArIDEpXG4gICAgICB8ICcgJyAtPiBzZXRfZmxhZyBzdHJfaW5kIHNwYWNlOyByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgXyAtPlxuICAgICAgICBwYXJzZV9wYWRkaW5nIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kXG4gICAgICAgICAgIXplcm8gIW1pbnVzICFwbHVzICFoYXNoICFzcGFjZSBpZ25cbiAgICAgIGVuZFxuICAgIGluXG4gICAgcmVhZF9mbGFncyBzdHJfaW5kXG5cbiAgKCogVHJ5IHRvIHJlYWQgYSBkaWdpdGFsIG9yIGEgJyonIHBhZGRpbmcuICopXG4gIGFuZCBwYXJzZV9wYWRkaW5nIDogdHlwZSBlIGYgLlxuICAgICAgaW50IC0+IGludCAtPiBpbnQgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT5cbiAgICAgICAgKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgemVybyBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBsZXQgcGFkdHkgPSBtYXRjaCB6ZXJvLCBtaW51cyB3aXRoXG4gICAgICB8IGZhbHNlLCBmYWxzZSAtPiBSaWdodFxuICAgICAgfCBmYWxzZSwgdHJ1ZSAgLT4gTGVmdFxuICAgICAgfCAgdHJ1ZSwgZmFsc2UgLT4gWmVyb3NcbiAgICAgIHwgIHRydWUsIHRydWUgIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIExlZnRcbiAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJy0nIFwiMFwiIGluXG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIC0+XG4gICAgICBsZXQgbmV3X2luZCwgd2lkdGggPSBwYXJzZV9wb3NpdGl2ZSBzdHJfaW5kIGVuZF9pbmQgMCBpblxuICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIG5ld19pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgIChMaXRfcGFkZGluZyAocGFkdHksIHdpZHRoKSlcbiAgICB8ICcqJyAtPlxuICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2VcbiAgICAgICAgaWduIChBcmdfcGFkZGluZyBwYWR0eSlcbiAgICB8IF8gLT5cbiAgICAgIGJlZ2luIG1hdGNoIHBhZHR5IHdpdGhcbiAgICAgIHwgTGVmdCAgLT5cbiAgICAgICAgaWYgbm90IGxlZ2FjeV9iZWhhdmlvciB0aGVuXG4gICAgICAgICAgaW52YWxpZF9mb3JtYXRfd2l0aG91dCAoc3RyX2luZCAtIDEpICctJyBcInBhZGRpbmdcIjtcbiAgICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgICAgTm9fcGFkZGluZ1xuICAgICAgfCBaZXJvcyAtPlxuICAgICAgICAgKCogYSAnMCcgcGFkZGluZyBpbmRpY2F0aW9uIG5vdCBmb2xsb3dlZCBieSBhbnl0aGluZyBzaG91bGRcbiAgICAgICAgICAgYmUgaW50ZXJwcmV0ZWQgYXMgYSBSaWdodCBwYWRkaW5nIG9mIHdpZHRoIDAuIFRoaXMgaXMgdXNlZFxuICAgICAgICAgICBieSBzY2FubmluZyBjb252ZXJzaW9ucyAlMHMgYW5kICUwYyAqKVxuICAgICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgICAoTGl0X3BhZGRpbmcgKFJpZ2h0LCAwKSlcbiAgICAgIHwgUmlnaHQgLT5cbiAgICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgICAgTm9fcGFkZGluZ1xuICAgICAgZW5kXG5cbiAgKCogSXMgcHJlY2lzaW9uIGRlZmluZWQ/ICopXG4gIGFuZCBwYXJzZV9hZnRlcl9wYWRkaW5nIDogdHlwZSB4IGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT5cbiAgICAgICAgKHgsIF8pIHBhZGRpbmcgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgIHwgJy4nIC0+XG4gICAgICBwYXJzZV9wcmVjaXNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICBwYWRcbiAgICB8IHN5bWIgLT5cbiAgICAgIHBhcnNlX2NvbnZlcnNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWRcbiAgICAgICAgTm9fcHJlY2lzaW9uIHBhZCBzeW1iXG5cbiAgKCogUmVhZCB0aGUgZGlnaXRhbCBvciAnKicgcHJlY2lzaW9uLiAqKVxuICBhbmQgcGFyc2VfcHJlY2lzaW9uIDogdHlwZSB4IGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT5cbiAgICAgICAgKHgsIF8pIHBhZGRpbmcgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGxldCBwYXJzZV9saXRlcmFsIG1pbnVzIHN0cl9pbmQgPVxuICAgICAgbGV0IG5ld19pbmQsIHByZWMgPSBwYXJzZV9wb3NpdGl2ZSBzdHJfaW5kIGVuZF9pbmQgMCBpblxuICAgICAgcGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIHBjdF9pbmQgbmV3X2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgcGFkIChMaXRfcHJlY2lzaW9uIHByZWMpIGluXG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIC0+IHBhcnNlX2xpdGVyYWwgbWludXMgc3RyX2luZFxuICAgIHwgKCcrJyB8ICctJykgYXMgc3ltYiB3aGVuIGxlZ2FjeV9iZWhhdmlvciAtPlxuICAgICAgKCogTGVnYWN5IG1vZGUgd291bGQgYWNjZXB0IGFuZCBpZ25vcmUgJysnIG9yICctJyBiZWZvcmUgdGhlXG4gICAgICAgICBpbnRlZ2VyIGRlc2NyaWJpbmcgdGhlIGRlc2lyZWQgcHJlY2lzaW9uOyBub3RlIHRoYXQgdGhpc1xuICAgICAgICAgY2Fubm90IGhhcHBlbiBmb3IgcGFkZGluZyB3aWR0aCwgYXMgJysnIGFuZCAnLScgYWxyZWFkeSBoYXZlXG4gICAgICAgICBhIHNlbWFudGljcyB0aGVyZS5cblxuICAgICAgICAgVGhhdCBzYWlkLCB0aGUgaWRlYSAoc3VwcG9ydGVkIGJ5IHRoaXMgdHdlYWspIHRoYXQgd2lkdGggYW5kXG4gICAgICAgICBwcmVjaXNpb24gbGl0ZXJhbHMgYXJlIFwiaW50ZWdlciBsaXRlcmFsc1wiIGluIHRoZSBPQ2FtbCBzZW5zZSBpc1xuICAgICAgICAgc3RpbGwgYmxhdGFudGx5IHdyb25nLCBhcyAxMjNfNDU2IG9yIDB4RkYgYXJlIHJlamVjdGVkLiAqKVxuICAgICAgcGFyc2VfbGl0ZXJhbCAobWludXMgfHwgc3ltYiA9ICctJykgKHN0cl9pbmQgKyAxKVxuICAgIHwgJyonIC0+XG4gICAgICBwYXJzZV9hZnRlcl9wcmVjaXNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlXG4gICAgICAgIGlnbiBwYWQgQXJnX3ByZWNpc2lvblxuICAgIHwgXyAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW5cbiAgICAgICAgKCogbm90ZSB0aGF0IGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiBkaWQgbm90IGlnbm9yZSAnLicgd2l0aG91dFxuICAgICAgICAgICBhIG51bWJlciAoYXMgaXQgZG9lcyBmb3IgcGFkZGluZyBpbmRpY2F0aW9ucyksIGJ1dFxuICAgICAgICAgICBpbnRlcnByZXRzIGl0IGFzICcuMCcgKilcbiAgICAgICAgcGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgICBwYWQgKExpdF9wcmVjaXNpb24gMClcbiAgICAgIGVsc2VcbiAgICAgICAgaW52YWxpZF9mb3JtYXRfd2l0aG91dCAoc3RyX2luZCAtIDEpICcuJyBcInByZWNpc2lvblwiXG5cbiAgKCogVHJ5IHRvIHJlYWQgdGhlIGNvbnZlcnNpb24uICopXG4gIGFuZCBwYXJzZV9hZnRlcl9wcmVjaXNpb24gOiB0eXBlIHggeSB6IHQgZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPlxuICAgICAgICAoeCwgeSkgcGFkZGluZyAtPiAoeiwgdCkgcHJlY2lzaW9uIC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ24gcGFkIHByZWMgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGxldCBwYXJzZV9jb252ICh0eXBlIHUpICh0eXBlIHYpIChwYWRwcmVjIDogKHUsIHYpIHBhZGRpbmcpID1cbiAgICAgIHBhcnNlX2NvbnZlcnNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWRcbiAgICAgICAgcHJlYyBwYWRwcmVjIHN0ci5bc3RyX2luZF0gaW5cbiAgICAoKiBpbiBsZWdhY3kgbW9kZSwgc29tZSBmb3JtYXRzICglcyBhbmQgJVMpIGFjY2VwdCBhIHdlaXJkIG1peCBvZlxuICAgICAgIHBhZGRpbmcgYW5kIHByZWNpc2lvbiwgd2hpY2ggaXMgbWVyZ2VkIGFzIGEgc2luZ2xlIHBhZGRpbmdcbiAgICAgICBpbmZvcm1hdGlvbi4gRm9yIGV4YW1wbGUsIGluICUuMTBzIHRoZSBwcmVjaXNpb24gaXMgaW1wbGljaXRseVxuICAgICAgIHVuZGVyc3Rvb2QgYXMgcGFkZGluZyAlMTBzLCBidXQgdGhlIGxlZnQtcGFkZGluZyBjb21wb25lbnQgbWF5XG4gICAgICAgYmUgc3BlY2lmaWVkIGVpdGhlciBhcyBhIGxlZnQgcGFkZGluZyBvciBhIG5lZ2F0aXZlIHByZWNpc2lvbjpcbiAgICAgICAlLS4zcyBhbmQgJS4tM3MgYXJlIGVxdWl2YWxlbnQgdG8gJS0zcyAqKVxuICAgIG1hdGNoIHBhZCB3aXRoXG4gICAgfCBOb19wYWRkaW5nIC0+IChcbiAgICAgIG1hdGNoIG1pbnVzLCBwcmVjIHdpdGhcbiAgICAgICAgfCBfLCBOb19wcmVjaXNpb24gLT4gcGFyc2VfY29udiBOb19wYWRkaW5nXG4gICAgICAgIHwgZmFsc2UsIExpdF9wcmVjaXNpb24gbiAtPiBwYXJzZV9jb252IChMaXRfcGFkZGluZyAoUmlnaHQsIG4pKVxuICAgICAgICB8IHRydWUsIExpdF9wcmVjaXNpb24gbiAtPiBwYXJzZV9jb252IChMaXRfcGFkZGluZyAoTGVmdCwgbikpXG4gICAgICAgIHwgZmFsc2UsIEFyZ19wcmVjaXNpb24gLT4gcGFyc2VfY29udiAoQXJnX3BhZGRpbmcgUmlnaHQpXG4gICAgICAgIHwgdHJ1ZSwgQXJnX3ByZWNpc2lvbiAtPiBwYXJzZV9jb252IChBcmdfcGFkZGluZyBMZWZ0KVxuICAgIClcbiAgICB8IHBhZCAtPiBwYXJzZV9jb252IHBhZFxuXG4gICgqIENhc2UgYW5hbHlzaXMgb24gY29udmVyc2lvbi4gKilcbiAgYW5kIHBhcnNlX2NvbnZlcnNpb24gOiB0eXBlIHggeSB6IHQgdSB2IGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+ICh4LCB5KSBwYWRkaW5nIC0+XG4gICAgICAgICh6LCB0KSBwcmVjaXNpb24gLT4gKHUsIHYpIHBhZGRpbmcgLT4gY2hhciAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZCBwcmVjIHBhZHByZWMgc3ltYiAtPlxuICAgICgqIEZsYWdzIHVzZWQgdG8gY2hlY2sgb3B0aW9uIHVzYWdlcy9jb21wYXRpYmlsaXRpZXMuICopXG4gICAgbGV0IHBsdXNfdXNlZCAgPSByZWYgZmFsc2UgYW5kIGhhc2hfdXNlZCA9IHJlZiBmYWxzZVxuICAgIGFuZCBzcGFjZV91c2VkID0gcmVmIGZhbHNlIGFuZCBpZ25fdXNlZCAgID0gcmVmIGZhbHNlXG4gICAgYW5kIHBhZF91c2VkICAgPSByZWYgZmFsc2UgYW5kIHByZWNfdXNlZCAgPSByZWYgZmFsc2UgaW5cblxuICAgICgqIEFjY2VzcyB0byBvcHRpb25zLCB1cGRhdGUgZmxhZ3MuICopXG4gICAgbGV0IGdldF9wbHVzICAgICgpID0gcGx1c191c2VkICA6PSB0cnVlOyBwbHVzXG4gICAgYW5kIGdldF9oYXNoICAgKCkgPSBoYXNoX3VzZWQgOj0gdHJ1ZTsgaGFzaFxuICAgIGFuZCBnZXRfc3BhY2UgICAoKSA9IHNwYWNlX3VzZWQgOj0gdHJ1ZTsgc3BhY2VcbiAgICBhbmQgZ2V0X2lnbiAgICAgKCkgPSBpZ25fdXNlZCAgIDo9IHRydWU7IGlnblxuICAgIGFuZCBnZXRfcGFkICAgICAoKSA9IHBhZF91c2VkICAgOj0gdHJ1ZTsgcGFkXG4gICAgYW5kIGdldF9wcmVjICAgICgpID0gcHJlY191c2VkICA6PSB0cnVlOyBwcmVjXG4gICAgYW5kIGdldF9wYWRwcmVjICgpID0gcGFkX3VzZWQgICA6PSB0cnVlOyBwYWRwcmVjIGluXG5cbiAgICBsZXQgZ2V0X2ludF9wYWQgKCkgOiAoeCx5KSBwYWRkaW5nID1cbiAgICAgICgqICU1LjNkIGlzIGFjY2VwdGVkIGFuZCBtZWFuaW5nZnVsOiBwYWQgdG8gbGVuZ3RoIDUgd2l0aFxuICAgICAgICAgc3BhY2VzLCBidXQgZmlyc3QgcGFkIHdpdGggemVyb3MgdXB0byBsZW5ndGggMyAoMC1wYWRkaW5nXG4gICAgICAgICBpcyB0aGUgaW50ZXJwcmV0YXRpb24gb2YgXCJwcmVjaXNpb25cIiBmb3IgaW50ZWdlciBmb3JtYXRzKS5cblxuICAgICAgICAgJTA1LjNkIGlzIHJlZHVuZGFudDogcGFkIHRvIGxlbmd0aCA1ICp3aXRoIHplcm9zKiwgYnV0XG4gICAgICAgICBmaXJzdCBwYWQgd2l0aCB6ZXJvcy4uLiBUbyBhZGQgaW5zdWx0IHRvIHRoZSBpbmp1cnksIHRoZVxuICAgICAgICAgbGVnYWN5IGltcGxlbWVudGF0aW9uIGlnbm9yZXMgdGhlIDAtcGFkZGluZyBpbmRpY2F0aW9uIGFuZFxuICAgICAgICAgZG9lcyB0aGUgNSBwYWRkaW5nIHdpdGggc3BhY2VzIGluc3RlYWQuIFdlIHJldXNlIHRoaXNcbiAgICAgICAgIGludGVycHJldGF0aW9uIGZvciBjb21wYXRpYmlsaXR5LCBidXQgc3RhdGljYWxseSByZWplY3QgdGhpc1xuICAgICAgICAgZm9ybWF0IHdoZW4gdGhlIGxlZ2FjeSBtb2RlIGlzIGRpc2FibGVkLCB0byBwcm90ZWN0IHN0cmljdFxuICAgICAgICAgdXNlcnMgZnJvbSB0aGlzIGNvcm5lciBjYXNlLiAqKVxuICAgICAgIG1hdGNoIGdldF9wYWQgKCksIGdldF9wcmVjICgpIHdpdGhcbiAgICAgICAgIHwgcGFkLCBOb19wcmVjaXNpb24gLT4gcGFkXG4gICAgICAgICB8IE5vX3BhZGRpbmcsIF8gICAgIC0+IE5vX3BhZGRpbmdcbiAgICAgICAgIHwgTGl0X3BhZGRpbmcgKFplcm9zLCBuKSwgXyAtPlxuICAgICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBMaXRfcGFkZGluZyAoUmlnaHQsIG4pXG4gICAgICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcwJyBcInByZWNpc2lvblwiXG4gICAgICAgICB8IEFyZ19wYWRkaW5nIFplcm9zLCBfIC0+XG4gICAgICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIEFyZ19wYWRkaW5nIFJpZ2h0XG4gICAgICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcwJyBcInByZWNpc2lvblwiXG4gICAgICAgICB8IExpdF9wYWRkaW5nIF8gYXMgcGFkLCBfIC0+IHBhZFxuICAgICAgICAgfCBBcmdfcGFkZGluZyBfIGFzIHBhZCwgXyAtPiBwYWQgaW5cblxuICAgICgqIENoZWNrIHRoYXQgcGFkdHkgPD4gWmVyb3MuICopXG4gICAgbGV0IGNoZWNrX25vXzAgc3ltYiAodHlwZSBhIGIpIChwYWQgOiAoYSwgYikgcGFkZGluZykgOiAoYSxiKSBwYWRkaW5nID1cbiAgICAgIG1hdGNoIHBhZCB3aXRoXG4gICAgICB8IE5vX3BhZGRpbmcgLT4gcGFkXG4gICAgICB8IExpdF9wYWRkaW5nICgoTGVmdCB8IFJpZ2h0KSwgXykgLT4gcGFkXG4gICAgICB8IEFyZ19wYWRkaW5nIChMZWZ0IHwgUmlnaHQpIC0+IHBhZFxuICAgICAgfCBMaXRfcGFkZGluZyAoWmVyb3MsIHdpZHRoKSAtPlxuICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBMaXRfcGFkZGluZyAoUmlnaHQsIHdpZHRoKVxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiMFwiXG4gICAgICB8IEFyZ19wYWRkaW5nIFplcm9zIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIEFyZ19wYWRkaW5nIFJpZ2h0XG4gICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCIwXCJcbiAgICBpblxuXG4gICAgKCogR2V0IHBhZGRpbmcgYXMgYSBwYWRfb3B0aW9uIChzZWUgXCIlX1wiLCBcIiV7XCIsIFwiJShcIiBhbmQgXCIlW1wiKS5cbiAgICAgICAobm8gbmVlZCBmb3IgbGVnYWN5IG1vZGUgdHdlYWtpbmcsIHRob3NlIHdlcmUgcmVqZWN0ZWQgYnkgdGhlXG4gICAgICAgbGVnYWN5IHBhcnNlciBhcyB3ZWxsKSAqKVxuICAgIGxldCBvcHRfb2ZfcGFkIGMgKHR5cGUgYSkgKHR5cGUgYikgKHBhZCA6IChhLCBiKSBwYWRkaW5nKSA9IG1hdGNoIHBhZCB3aXRoXG4gICAgICB8IE5vX3BhZGRpbmcgLT4gTm9uZVxuICAgICAgfCBMaXRfcGFkZGluZyAoUmlnaHQsIHdpZHRoKSAtPiBTb21lIHdpZHRoXG4gICAgICB8IExpdF9wYWRkaW5nIChaZXJvcywgd2lkdGgpIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIFNvbWUgd2lkdGhcbiAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgYyBcIicwJ1wiXG4gICAgICB8IExpdF9wYWRkaW5nIChMZWZ0LCB3aWR0aCkgLT5cbiAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gU29tZSB3aWR0aFxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBjIFwiJy0nXCJcbiAgICAgIHwgQXJnX3BhZGRpbmcgXyAtPiBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgYyBcIicqJ1wiXG4gICAgaW5cbiAgICBsZXQgZ2V0X3BhZF9vcHQgYyA9IG9wdF9vZl9wYWQgYyAoZ2V0X3BhZCAoKSkgaW5cbiAgICBsZXQgZ2V0X3BhZHByZWNfb3B0IGMgPSBvcHRfb2ZfcGFkIGMgKGdldF9wYWRwcmVjICgpKSBpblxuXG4gICAgKCogR2V0IHByZWNpc2lvbiBhcyBhIHByZWNfb3B0aW9uIChzZWUgXCIlX2ZcIikuXG4gICAgICAgKG5vIG5lZWQgZm9yIGxlZ2FjeSBtb2RlIHR3ZWFraW5nLCB0aG9zZSB3ZXJlIHJlamVjdGVkIGJ5IHRoZVxuICAgICAgIGxlZ2FjeSBwYXJzZXIgYXMgd2VsbCkgKilcbiAgICBsZXQgZ2V0X3ByZWNfb3B0ICgpID0gbWF0Y2ggZ2V0X3ByZWMgKCkgd2l0aFxuICAgICAgfCBOb19wcmVjaXNpb24gICAgICAgLT4gTm9uZVxuICAgICAgfCBMaXRfcHJlY2lzaW9uIG5kZWMgLT4gU29tZSBuZGVjXG4gICAgICB8IEFyZ19wcmVjaXNpb24gICAgICAtPiBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJ18nIFwiJyonXCJcbiAgICBpblxuXG4gICAgbGV0IGZtdF9yZXN1bHQgPSBtYXRjaCBzeW1iIHdpdGhcbiAgICB8ICcsJyAtPlxuICAgICAgcGFyc2Ugc3RyX2luZCBlbmRfaW5kXG4gICAgfCAnYycgLT5cbiAgICAgIGxldCBjaGFyX2Zvcm1hdCBmbXRfcmVzdCA9ICgqICVjICopXG4gICAgICAgIGlmIGdldF9pZ24gKClcbiAgICAgICAgdGhlbiBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX2NoYXIsIGZtdF9yZXN0KSlcbiAgICAgICAgZWxzZSBGbXRfRUJCIChDaGFyIGZtdF9yZXN0KVxuICAgICAgaW5cbiAgICAgIGxldCBzY2FuX2Zvcm1hdCBmbXRfcmVzdCA9ICgqICUwYyAqKVxuICAgICAgICBpZiBnZXRfaWduICgpXG4gICAgICAgIHRoZW4gRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9zY2FuX25leHRfY2hhciwgZm10X3Jlc3QpKVxuICAgICAgICBlbHNlIEZtdF9FQkIgKFNjYW5fbmV4dF9jaGFyIGZtdF9yZXN0KVxuICAgICAgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBiZWdpbiBtYXRjaCBnZXRfcGFkX29wdCAnYycgd2l0aFxuICAgICAgICB8IE5vbmUgLT4gY2hhcl9mb3JtYXQgZm10X3Jlc3RcbiAgICAgICAgfCBTb21lIDAgLT4gc2Nhbl9mb3JtYXQgZm10X3Jlc3RcbiAgICAgICAgfCBTb21lIF9uIC0+XG4gICAgICAgICAgIGlmIG5vdCBsZWdhY3lfYmVoYXZpb3JcbiAgICAgICAgICAgdGhlbiBpbnZhbGlkX25vbm51bGxfY2hhcl93aWR0aCBzdHJfaW5kXG4gICAgICAgICAgIGVsc2UgKCogbGVnYWN5IGlnbm9yZXMgJWMgd2lkdGhzICopIGNoYXJfZm9ybWF0IGZtdF9yZXN0XG4gICAgICBlbmRcbiAgICB8ICdDJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlbiBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX2NhbWxfY2hhcixmbXRfcmVzdCkpXG4gICAgICBlbHNlIEZtdF9FQkIgKENhbWxfY2hhciBmbXRfcmVzdClcbiAgICB8ICdzJyAtPlxuICAgICAgbGV0IHBhZCA9IGNoZWNrX25vXzAgc3ltYiAoZ2V0X3BhZHByZWMgKCkpIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9zdHJpbmcgKGdldF9wYWRwcmVjX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZGRpbmdfZm10X0VCQiAocGFkJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgcGFkIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKFN0cmluZyAocGFkJywgZm10X3Jlc3QnKSlcbiAgICB8ICdTJyAtPlxuICAgICAgbGV0IHBhZCA9IGNoZWNrX25vXzAgc3ltYiAoZ2V0X3BhZHByZWMgKCkpIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9jYW1sX3N0cmluZyAoZ2V0X3BhZHByZWNfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkZGluZ19mbXRfRUJCIChwYWQnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZGRpbmdfZm10X2ViYiBwYWQgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoQ2FtbF9zdHJpbmcgKHBhZCcsIGZtdF9yZXN0JykpXG4gICAgfCAnZCcgfCAnaScgfCAneCcgfCAnWCcgfCAnbycgfCAndScgLT5cbiAgICAgIGxldCBpY29udiA9IGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIChnZXRfcGx1cyAoKSkgKGdldF9oYXNoICgpKVxuICAgICAgICAoZ2V0X3NwYWNlICgpKSBzeW1iIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9pbnQgKGljb252LCBnZXRfcGFkX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZHByZWNfZm10X0VCQiAocGFkJywgcHJlYycsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkcHJlY19mbXRfZWJiIChnZXRfaW50X3BhZCAoKSkgKGdldF9wcmVjICgpKSBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChJbnQgKGljb252LCBwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSlcbiAgICB8ICdOJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGxldCBjb3VudGVyID0gVG9rZW5fY291bnRlciBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIGNvdW50ZXIgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBmbXRfcmVzdCkpXG4gICAgfCAnbCcgfCAnbicgfCAnTCcgd2hlbiBzdHJfaW5kPWVuZF9pbmQgfHwgbm90IChpc19pbnRfYmFzZSBzdHIuW3N0cl9pbmRdKSAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGxldCBjb3VudGVyID0gY291bnRlcl9vZl9jaGFyIHN5bWIgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBjb3VudGVyIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10X3Jlc3QpKVxuICAgIHwgJ2wnIC0+XG4gICAgICBsZXQgaWNvbnYgPVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgKHN0cl9pbmQgKyAxKSAoZ2V0X3BsdXMgKCkpIChnZXRfaGFzaCAoKSlcbiAgICAgICAgICAoZ2V0X3NwYWNlICgpKSBzdHIuW3N0cl9pbmRdIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9pbnQzMiAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEludDMyIChpY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnbicgLT5cbiAgICAgIGxldCBpY29udiA9XG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCAoc3RyX2luZCArIDEpIChnZXRfcGx1cyAoKSlcbiAgICAgICAgICAoZ2V0X2hhc2ggKCkpIChnZXRfc3BhY2UgKCkpIHN0ci5bc3RyX2luZF0gaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX25hdGl2ZWludCAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKE5hdGl2ZWludCAoaWNvbnYsIHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ0wnIC0+XG4gICAgICBsZXQgaWNvbnYgPVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgKHN0cl9pbmQgKyAxKSAoZ2V0X3BsdXMgKCkpIChnZXRfaGFzaCAoKSlcbiAgICAgICAgICAoZ2V0X3NwYWNlICgpKSBzdHIuW3N0cl9pbmRdIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9pbnQ2NCAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEludDY0IChpY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnZicgfCAnZScgfCAnRScgfCAnZycgfCAnRycgfCAnRicgfCAnaCcgfCAnSCcgLT5cbiAgICAgIGxldCBmY29udiA9XG4gICAgICAgIGNvbXB1dGVfZmxvYXRfY29udiBwY3RfaW5kIHN0cl9pbmRcbiAgICAgICAgICAoZ2V0X3BsdXMgKCkpIChnZXRfaGFzaCAoKSkgKGdldF9zcGFjZSAoKSkgc3ltYiBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfZmxvYXQgKGdldF9wYWRfb3B0ICdfJywgZ2V0X3ByZWNfb3B0ICgpKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRwcmVjX2ZtdF9FQkIgKHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZHByZWNfZm10X2ViYiAoZ2V0X3BhZCAoKSkgKGdldF9wcmVjICgpKSBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChGbG9hdCAoZmNvbnYsIHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ2InIHwgJ0InIC0+XG4gICAgICBsZXQgcGFkID0gY2hlY2tfbm9fMCBzeW1iIChnZXRfcGFkcHJlYyAoKSkgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2Jvb2wgKGdldF9wYWRwcmVjX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZGRpbmdfZm10X0VCQiAocGFkJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgcGFkIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEJvb2wgKHBhZCcsIGZtdF9yZXN0JykpXG4gICAgfCAnYScgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBGbXRfRUJCIChBbHBoYSBmbXRfcmVzdClcbiAgICB8ICd0JyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKFRoZXRhIGZtdF9yZXN0KVxuICAgIHwgJ3InIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfcmVhZGVyLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlIEZtdF9FQkIgKFJlYWRlciBmbXRfcmVzdClcbiAgICB8ICchJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEZsdXNoIGZtdF9yZXN0KVxuICAgIHwgKCclJyB8ICdAJykgYXMgYyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKENoYXJfbGl0ZXJhbCAoYywgZm10X3Jlc3QpKVxuICAgIHwgJ3snIC0+XG4gICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIHN0cl9pbmQgZW5kX2luZCAnfScgaW5cbiAgICAgIGxldCBGbXRfRUJCIHN1Yl9mbXQgPSBwYXJzZSBzdHJfaW5kIHN1Yl9lbmQgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGluXG4gICAgICBsZXQgc3ViX2ZtdHR5ID0gZm10dHlfb2ZfZm10IHN1Yl9mbXQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfZm9ybWF0X2FyZyAoZ2V0X3BhZF9vcHQgJ18nLCBzdWJfZm10dHkpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoRm9ybWF0X2FyZyAoZ2V0X3BhZF9vcHQgJ3snLCBzdWJfZm10dHksIGZtdF9yZXN0KSlcbiAgICB8ICcoJyAtPlxuICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCBzdHJfaW5kIGVuZF9pbmQgJyknIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdWJfZW5kICsgMikgZW5kX2luZCBpblxuICAgICAgbGV0IEZtdF9FQkIgc3ViX2ZtdCA9IHBhcnNlIHN0cl9pbmQgc3ViX2VuZCBpblxuICAgICAgbGV0IHN1Yl9mbXR0eSA9IGZtdHR5X29mX2ZtdCBzdWJfZm10IGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAoZ2V0X3BhZF9vcHQgJ18nLCBzdWJfZm10dHkpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoRm9ybWF0X3N1YnN0IChnZXRfcGFkX29wdCAnKCcsIHN1Yl9mbXR0eSwgZm10X3Jlc3QpKVxuICAgIHwgJ1snIC0+XG4gICAgICBsZXQgbmV4dF9pbmQsIGNoYXJfc2V0ID0gcGFyc2VfY2hhcl9zZXQgc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIG5leHRfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfc2Nhbl9jaGFyX3NldCAoZ2V0X3BhZF9vcHQgJ18nLCBjaGFyX3NldCkgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChTY2FuX2NoYXJfc2V0IChnZXRfcGFkX29wdCAnWycsIGNoYXJfc2V0LCBmbXRfcmVzdCkpXG4gICAgfCAnLScgfCAnKycgfCAnIycgfCAnICcgfCAnXycgLT5cbiAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgXFxcbiAgICAgICAgIGZsYWcgJUMgaXMgb25seSBhbGxvd2VkIGFmdGVyIHRoZSAnJSUnLCBiZWZvcmUgcGFkZGluZyBhbmQgcHJlY2lzaW9uXCJcbiAgICAgICAgc3RyIHBjdF9pbmQgc3ltYlxuICAgIHwgXyAtPlxuICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBcXFxuICAgICAgICAgaW52YWxpZCBjb252ZXJzaW9uIFxcXCIlJSVjXFxcIlwiIHN0ciAoc3RyX2luZCAtIDEpIHN5bWJcbiAgICBpblxuICAgICgqIENoZWNrIGZvciB1bnVzZWQgb3B0aW9ucywgYW5kIHJlamVjdCB0aGVtIGFzIGluY29tcGF0aWJsZS5cblxuICAgICAgIFN1Y2ggY2hlY2tzIG5lZWQgdG8gYmUgZGlzYWJsZWQgaW4gbGVnYWN5IG1vZGUsIGFzIHRoZSBsZWdhY3lcbiAgICAgICBwYXJzZXIgc2lsZW50bHkgaWdub3JlZCBpbmNvbXBhdGlibGUgZmxhZ3MuICopXG4gICAgaWYgbm90IGxlZ2FjeV9iZWhhdmlvciB0aGVuIGJlZ2luXG4gICAgaWYgbm90ICFwbHVzX3VzZWQgJiYgcGx1cyB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicrJ1wiO1xuICAgIGlmIG5vdCAhaGFzaF91c2VkICYmIGhhc2ggdGhlblxuICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInIydcIjtcbiAgICBpZiBub3QgIXNwYWNlX3VzZWQgJiYgc3BhY2UgdGhlblxuICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInICdcIjtcbiAgICBpZiBub3QgIXBhZF91c2VkICAmJiBQYWRkaW5nX0VCQiBwYWQgPD4gUGFkZGluZ19FQkIgTm9fcGFkZGluZyB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcImBwYWRkaW5nJ1wiO1xuICAgIGlmIG5vdCAhcHJlY191c2VkICYmIFByZWNpc2lvbl9FQkIgcHJlYyA8PiBQcmVjaXNpb25fRUJCIE5vX3ByZWNpc2lvbiB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgKGlmIGlnbiB0aGVuICdfJyBlbHNlIHN5bWIpXG4gICAgICAgIFwiYHByZWNpc2lvbidcIjtcbiAgICBpZiBpZ24gJiYgcGx1cyB0aGVuIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnXycgXCInKydcIjtcbiAgICBlbmQ7XG4gICAgKCogdGhpcyBsYXN0IHRlc3QgbXVzdCBub3QgYmUgZGlzYWJsZWQgaW4gbGVnYWN5IG1vZGUsXG4gICAgICAgYXMgaWdub3JpbmcgaXQgd291bGQgdHlwaWNhbGx5IHJlc3VsdCBpbiBhIGRpZmZlcmVudCB0eXBpbmdcbiAgICAgICB0aGFuIHdoYXQgdGhlIGxlZ2FjeSBwYXJzZXIgdXNlZCAqKVxuICAgIGlmIG5vdCAhaWduX3VzZWQgJiYgaWduIHRoZW5cbiAgICAgIGJlZ2luIG1hdGNoIHN5bWIgd2l0aFxuICAgICAgICAoKiBhcmd1bWVudC1sZXNzIGZvcm1hdHMgY2FuIHNhZmVseSBiZSBpZ25vcmVkIGluIGxlZ2FjeSBtb2RlICopXG4gICAgICAgIHwgKCdAJyB8ICclJyB8ICchJyB8ICcsJykgd2hlbiBsZWdhY3lfYmVoYXZpb3IgLT4gKClcbiAgICAgICAgfCBfIC0+XG4gICAgICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInXydcIlxuICAgICAgZW5kO1xuICAgIGZtdF9yZXN1bHRcblxuICAoKiBQYXJzZSBmb3JtYXR0aW5nIGluZm9ybWF0aW9uIChhZnRlciAnQCcpLiAqKVxuICBhbmQgcGFyc2VfYWZ0ZXJfYXQgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiBGbXRfRUJCIChDaGFyX2xpdGVyYWwgKCdAJywgRW5kX29mX2Zvcm1hdCkpXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICdbJyAtPlxuICAgICAgICBwYXJzZV90YWcgZmFsc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8ICddJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoQ2xvc2VfYm94LCBmbXRfcmVzdCkpXG4gICAgICB8ICd7JyAtPlxuICAgICAgICBwYXJzZV90YWcgdHJ1ZSAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgJ30nIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChDbG9zZV90YWcsIGZtdF9yZXN0KSlcbiAgICAgIHwgJywnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChCcmVhayAoXCJALFwiLCAwLCAwKSwgZm10X3Jlc3QpKVxuICAgICAgfCAnICcgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEJyZWFrIChcIkAgXCIsIDEsIDApLCBmbXRfcmVzdCkpXG4gICAgICB8ICc7JyAtPlxuICAgICAgICBwYXJzZV9nb29kX2JyZWFrIChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCAnPycgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEZGbHVzaCwgZm10X3Jlc3QpKVxuICAgICAgfCAnXFxuJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRm9yY2VfbmV3bGluZSwgZm10X3Jlc3QpKVxuICAgICAgfCAnLicgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEZsdXNoX25ld2xpbmUsIGZtdF9yZXN0KSlcbiAgICAgIHwgJzwnIC0+XG4gICAgICAgIHBhcnNlX21hZ2ljX3NpemUgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8ICdAJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRXNjYXBlZF9hdCwgZm10X3Jlc3QpKVxuICAgICAgfCAnJScgd2hlbiBzdHJfaW5kICsgMSA8IGVuZF9pbmQgJiYgc3RyLltzdHJfaW5kICsgMV0gPSAnJScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDIpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEVzY2FwZWRfcGVyY2VudCwgZm10X3Jlc3QpKVxuICAgICAgfCAnJScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoQ2hhcl9saXRlcmFsICgnQCcsIGZtdF9yZXN0KSlcbiAgICAgIHwgYyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoU2Nhbl9pbmRpYyBjLCBmbXRfcmVzdCkpXG5cbiAgKCogVHJ5IHRvIHJlYWQgdGhlIG9wdGlvbmFsIDxuYW1lPiBhZnRlciBcIkB7XCIgb3IgXCJAW1wiLiAqKVxuICBhbmQgcGFyc2VfdGFnIDogdHlwZSBlIGYgLiBib29sIC0+IGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gaXNfb3Blbl90YWcgc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgdHJ5XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnPCcgLT5cbiAgICAgICAgbGV0IGluZCA9IFN0cmluZy5pbmRleF9mcm9tIHN0ciAoc3RyX2luZCArIDEpICc+JyBpblxuICAgICAgICBpZiBpbmQgPj0gZW5kX2luZCB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgbGV0IHN1Yl9zdHIgPSBTdHJpbmcuc3ViIHN0ciBzdHJfaW5kIChpbmQgLSBzdHJfaW5kICsgMSkgaW5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBsZXQgRm10X0VCQiBzdWJfZm10ID0gcGFyc2Ugc3RyX2luZCAoaW5kICsgMSkgaW5cbiAgICAgICAgbGV0IHN1Yl9mb3JtYXQgPSBGb3JtYXQgKHN1Yl9mbXQsIHN1Yl9zdHIpIGluXG4gICAgICAgIGxldCBmb3JtYXR0aW5nID1cbiAgICAgICAgICBpZiBpc19vcGVuX3RhZyB0aGVuIE9wZW5fdGFnIHN1Yl9mb3JtYXQgZWxzZSBPcGVuX2JveCBzdWJfZm9ybWF0IGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfZ2VuIChmb3JtYXR0aW5nLCBmbXRfcmVzdCkpXG4gICAgICB8IF8gLT5cbiAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBsZXQgc3ViX2Zvcm1hdCA9IEZvcm1hdCAoRW5kX29mX2Zvcm1hdCwgXCJcIikgaW5cbiAgICAgIGxldCBmb3JtYXR0aW5nID1cbiAgICAgICAgaWYgaXNfb3Blbl90YWcgdGhlbiBPcGVuX3RhZyBzdWJfZm9ybWF0IGVsc2UgT3Blbl9ib3ggc3ViX2Zvcm1hdCBpblxuICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19nZW4gKGZvcm1hdHRpbmcsIGZtdF9yZXN0KSlcblxuICAoKiBUcnkgdG8gcmVhZCB0aGUgb3B0aW9uYWwgPHdpZHRoIG9mZnNldD4gYWZ0ZXIgXCJAO1wiLiAqKVxuICBhbmQgcGFyc2VfZ29vZF9icmVhayA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBsZXQgbmV4dF9pbmQsIGZvcm1hdHRpbmdfbGl0ID1cbiAgICAgIHRyeVxuICAgICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB8fCBzdHIuW3N0cl9pbmRdIDw+ICc8JyB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgbGV0IHN0cl9pbmRfMSA9IHBhcnNlX3NwYWNlcyAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXzFdIHdpdGhcbiAgICAgICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+IChcbiAgICAgICAgICBsZXQgc3RyX2luZF8yLCB3aWR0aCA9IHBhcnNlX2ludGVnZXIgc3RyX2luZF8xIGVuZF9pbmQgaW5cbiAgICAgICAgICAgIGxldCBzdHJfaW5kXzMgPSBwYXJzZV9zcGFjZXMgc3RyX2luZF8yIGVuZF9pbmQgaW5cbiAgICAgICAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF8zXSB3aXRoXG4gICAgICAgICAgICAgIHwgJz4nIC0+XG4gICAgICAgICAgICAgICAgbGV0IHMgPSBTdHJpbmcuc3ViIHN0ciAoc3RyX2luZC0yKSAoc3RyX2luZF8zLXN0cl9pbmQrMykgaW5cbiAgICAgICAgICAgICAgICBzdHJfaW5kXzMgKyAxLCBCcmVhayAocywgd2lkdGgsIDApXG4gICAgICAgICAgICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPlxuICAgICAgICAgICAgICAgIGxldCBzdHJfaW5kXzQsIG9mZnNldCA9IHBhcnNlX2ludGVnZXIgc3RyX2luZF8zIGVuZF9pbmQgaW5cbiAgICAgICAgICAgICAgICBsZXQgc3RyX2luZF81ID0gcGFyc2Vfc3BhY2VzIHN0cl9pbmRfNCBlbmRfaW5kIGluXG4gICAgICAgICAgICAgICAgaWYgc3RyLltzdHJfaW5kXzVdIDw+ICc+JyB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgICAgICAgICBsZXQgcyA9IFN0cmluZy5zdWIgc3RyIChzdHJfaW5kLTIpIChzdHJfaW5kXzUtc3RyX2luZCszKSBpblxuICAgICAgICAgICAgICAgIHN0cl9pbmRfNSArIDEsIEJyZWFrIChzLCB3aWR0aCwgb2Zmc2V0KVxuICAgICAgICAgICAgICB8IF8gLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgIClcbiAgICAgICAgfCBfIC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgd2l0aCBOb3RfZm91bmQgfCBGYWlsdXJlIF8gLT5cbiAgICAgICAgc3RyX2luZCwgQnJlYWsgKFwiQDtcIiwgMSwgMClcbiAgICBpblxuICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgbmV4dF9pbmQgZW5kX2luZCBpblxuICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10X3Jlc3QpKVxuXG4gICgqIFBhcnNlIHRoZSBzaXplIGluIGEgPG4+LiAqKVxuICBhbmQgcGFyc2VfbWFnaWNfc2l6ZSA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBtYXRjaFxuICAgICAgdHJ5XG4gICAgICAgIGxldCBzdHJfaW5kXzEgPSBwYXJzZV9zcGFjZXMgc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF8xXSB3aXRoXG4gICAgICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPlxuICAgICAgICAgIGxldCBzdHJfaW5kXzIsIHNpemUgPSBwYXJzZV9pbnRlZ2VyIHN0cl9pbmRfMSBlbmRfaW5kIGluXG4gICAgICAgICAgbGV0IHN0cl9pbmRfMyA9IHBhcnNlX3NwYWNlcyBzdHJfaW5kXzIgZW5kX2luZCBpblxuICAgICAgICAgIGlmIHN0ci5bc3RyX2luZF8zXSA8PiAnPicgdGhlbiByYWlzZSBOb3RfZm91bmQ7XG4gICAgICAgICAgbGV0IHMgPSBTdHJpbmcuc3ViIHN0ciAoc3RyX2luZCAtIDIpIChzdHJfaW5kXzMgLSBzdHJfaW5kICsgMykgaW5cbiAgICAgICAgICBTb21lIChzdHJfaW5kXzMgKyAxLCBNYWdpY19zaXplIChzLCBzaXplKSlcbiAgICAgICAgfCBfIC0+IE5vbmVcbiAgICAgIHdpdGggTm90X2ZvdW5kIHwgRmFpbHVyZSBfIC0+XG4gICAgICAgIE5vbmVcbiAgICB3aXRoXG4gICAgfCBTb21lIChuZXh0X2luZCwgZm9ybWF0dGluZ19saXQpIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIG5leHRfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10X3Jlc3QpKVxuICAgIHwgTm9uZSAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChTY2FuX2luZGljICc8JywgZm10X3Jlc3QpKVxuXG4gICgqIFBhcnNlIGFuZCBjb25zdHJ1Y3QgYSBjaGFyIHNldC4gKilcbiAgYW5kIHBhcnNlX2NoYXJfc2V0IHN0cl9pbmQgZW5kX2luZCA9XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcblxuICAgIGxldCBjaGFyX3NldCA9IGNyZWF0ZV9jaGFyX3NldCAoKSBpblxuICAgIGxldCBhZGRfY2hhciBjID1cbiAgICAgIGFkZF9pbl9jaGFyX3NldCBjaGFyX3NldCBjO1xuICAgIGluXG4gICAgbGV0IGFkZF9yYW5nZSBjIGMnID1cbiAgICAgIGZvciBpID0gaW50X29mX2NoYXIgYyB0byBpbnRfb2ZfY2hhciBjJyBkb1xuICAgICAgICBhZGRfaW5fY2hhcl9zZXQgY2hhcl9zZXQgKGNoYXJfb2ZfaW50IGkpO1xuICAgICAgZG9uZTtcbiAgICBpblxuXG4gICAgbGV0IGZhaWxfc2luZ2xlX3BlcmNlbnQgc3RyX2luZCA9XG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6ICclJScgYWxvbmUgaXMgbm90IGFjY2VwdGVkIGluIGNoYXJhY3RlciBzZXRzLCBcXFxuICAgICAgICAgdXNlICUlJSUgaW5zdGVhZCBhdCBwb3NpdGlvbiAlZC5cIiBzdHIgc3RyX2luZFxuICAgIGluXG5cbiAgICAoKiBQYXJzZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgY2hhciBzZXQuICopXG4gICAgbGV0IHJlYyBwYXJzZV9jaGFyX3NldF9zdGFydCBzdHJfaW5kIGVuZF9pbmQgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIGxldCBjID0gc3RyLltzdHJfaW5kXSBpblxuICAgICAgcGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuXG4gICAgKCogUGFyc2UgdGhlIGNvbnRlbnQgb2YgYSBjaGFyIHNldCB1bnRpbCB0aGUgZmlyc3QgJ10nLiAqKVxuICAgIGFuZCBwYXJzZV9jaGFyX3NldF9jb250ZW50IHN0cl9pbmQgZW5kX2luZCA9XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICddJyAtPlxuICAgICAgICBzdHJfaW5kICsgMVxuICAgICAgfCAnLScgLT5cbiAgICAgICAgYWRkX2NoYXIgJy0nO1xuICAgICAgICBwYXJzZV9jaGFyX3NldF9jb250ZW50IChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCBjIC0+XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2FmdGVyX2NoYXIgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGNcblxuICAgICgqIFRlc3QgZm9yIHJhbmdlIGluIGNoYXIgc2V0LiAqKVxuICAgIGFuZCBwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIHN0cl9pbmQgZW5kX2luZCBjID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ10nIC0+XG4gICAgICAgIGFkZF9jaGFyIGM7XG4gICAgICAgIHN0cl9pbmQgKyAxXG4gICAgICB8ICctJyAtPlxuICAgICAgICBwYXJzZV9jaGFyX3NldF9hZnRlcl9taW51cyAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuICAgICAgfCAoJyUnIHwgJ0AnKSBhcyBjJyB3aGVuIGMgPSAnJScgLT5cbiAgICAgICAgYWRkX2NoYXIgYyc7XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8IGMnIC0+XG4gICAgICAgIGlmIGMgPSAnJScgdGhlbiBmYWlsX3NpbmdsZV9wZXJjZW50IHN0cl9pbmQ7XG4gICAgICAgICgqIG5vdGUgdGhhdCAnQCcgYWxvbmUgaXMgYWNjZXB0ZWQsIGFzIGRvbmUgYnkgdGhlIGxlZ2FjeVxuICAgICAgICAgICBpbXBsZW1lbnRhdGlvbjsgdGhlIGRvY3VtZW50YXRpb24gc3BlY2lmaWNhbGx5IHJlcXVpcmVzICVAXG4gICAgICAgICAgIHNvIHdlIGNvdWxkIHdhcm4gb24gdGhhdCAqKVxuICAgICAgICBhZGRfY2hhciBjO1xuICAgICAgICBwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIChzdHJfaW5kICsgMSkgZW5kX2luZCBjJ1xuXG4gICAgKCogTWFuYWdlIHJhbmdlIGluIGNoYXIgc2V0IChleGNlcHQgaWYgdGhlICctJyB0aGUgbGFzdCBjaGFyIGJlZm9yZSAnXScpICopXG4gICAgYW5kIHBhcnNlX2NoYXJfc2V0X2FmdGVyX21pbnVzIHN0cl9pbmQgZW5kX2luZCBjID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ10nIC0+XG4gICAgICAgIGFkZF9jaGFyIGM7XG4gICAgICAgIGFkZF9jaGFyICctJztcbiAgICAgICAgc3RyX2luZCArIDFcbiAgICAgIHwgJyUnIC0+XG4gICAgICAgIGlmIHN0cl9pbmQgKyAxID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgICBiZWdpbiBtYXRjaCBzdHIuW3N0cl9pbmQgKyAxXSB3aXRoXG4gICAgICAgICAgfCAoJyUnIHwgJ0AnKSBhcyBjJyAtPlxuICAgICAgICAgICAgYWRkX3JhbmdlIGMgYyc7XG4gICAgICAgICAgICBwYXJzZV9jaGFyX3NldF9jb250ZW50IChzdHJfaW5kICsgMikgZW5kX2luZFxuICAgICAgICAgIHwgXyAtPiBmYWlsX3NpbmdsZV9wZXJjZW50IHN0cl9pbmRcbiAgICAgICAgZW5kXG4gICAgICB8IGMnIC0+XG4gICAgICAgIGFkZF9yYW5nZSBjIGMnO1xuICAgICAgICBwYXJzZV9jaGFyX3NldF9jb250ZW50IChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgIGluXG4gICAgbGV0IHN0cl9pbmQsIHJldmVyc2UgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgICB8ICdeJyAtPiBzdHJfaW5kICsgMSwgdHJ1ZVxuICAgICAgICB8IF8gLT4gc3RyX2luZCwgZmFsc2UgaW5cbiAgICBsZXQgbmV4dF9pbmQgPSBwYXJzZV9jaGFyX3NldF9zdGFydCBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICBsZXQgY2hhcl9zZXQgPSBmcmVlemVfY2hhcl9zZXQgY2hhcl9zZXQgaW5cbiAgICBuZXh0X2luZCwgKGlmIHJldmVyc2UgdGhlbiByZXZfY2hhcl9zZXQgY2hhcl9zZXQgZWxzZSBjaGFyX3NldClcblxuICAoKiBDb25zdW1lIGFsbCBuZXh0IHNwYWNlcywgcmFpc2UgYW4gRmFpbHVyZSBpZiBlbmRfaW5kIGlzIHJlYWNoZWQuICopXG4gIGFuZCBwYXJzZV9zcGFjZXMgc3RyX2luZCBlbmRfaW5kID1cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGlmIHN0ci5bc3RyX2luZF0gPSAnICcgdGhlbiBwYXJzZV9zcGFjZXMgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGVsc2Ugc3RyX2luZFxuXG4gICgqIFJlYWQgYSBwb3NpdGl2ZSBpbnRlZ2VyIGZyb20gdGhlIHN0cmluZywgcmFpc2UgYSBGYWlsdXJlIGlmIGVuZF9pbmQgaXNcbiAgICAgcmVhY2hlZC4gKilcbiAgYW5kIHBhcnNlX3Bvc2l0aXZlIHN0cl9pbmQgZW5kX2luZCBhY2MgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIGFzIGMgLT5cbiAgICAgIGxldCBuZXdfYWNjID0gYWNjICogMTAgKyAoaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICcwJykgaW5cbiAgICAgIGlmIG5ld19hY2MgPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlblxuICAgICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogaW50ZWdlciAlZCBpcyBncmVhdGVyIHRoYW4gdGhlIGxpbWl0ICVkXCJcbiAgICAgICAgICBzdHIgbmV3X2FjYyBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgICAgIGVsc2VcbiAgICAgICAgcGFyc2VfcG9zaXRpdmUgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIG5ld19hY2NcbiAgICB8IF8gLT4gc3RyX2luZCwgYWNjXG5cbiAgKCogUmVhZCBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGludGVnZXIgZnJvbSB0aGUgc3RyaW5nLCByYWlzZSBhIEZhaWx1cmVcbiAgICAgaWYgZW5kX2luZCBpcyByZWFjaGVkLiAqKVxuICBhbmQgcGFyc2VfaW50ZWdlciBzdHJfaW5kIGVuZF9pbmQgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIC0+IHBhcnNlX3Bvc2l0aXZlIHN0cl9pbmQgZW5kX2luZCAwXG4gICAgfCAnLScgLT4gKFxuICAgICAgaWYgc3RyX2luZCArIDEgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmQgKyAxXSB3aXRoXG4gICAgICB8ICcwJyAuLiAnOScgLT5cbiAgICAgICAgbGV0IG5leHRfaW5kLCBuID0gcGFyc2VfcG9zaXRpdmUgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIDAgaW5cbiAgICAgICAgbmV4dF9pbmQsIC1uXG4gICAgICB8IGMgLT5cbiAgICAgICAgZXhwZWN0ZWRfY2hhcmFjdGVyIChzdHJfaW5kICsgMSkgXCJkaWdpdFwiIGNcbiAgICApXG4gICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG4gICgqIEFkZCBhIGxpdGVyYWwgdG8gYSBmb3JtYXQgZnJvbSBhIGxpdGVyYWwgY2hhcmFjdGVyIHN1Yi1zZXF1ZW5jZS4gKilcbiAgYW5kIGFkZF9saXRlcmFsIDogdHlwZSBhIGQgZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gKGEsIF8sIF8sIGQsIGUsIGYpIGZtdCAtPlxuICAgICAgKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gbGl0X3N0YXJ0IHN0cl9pbmQgZm10IC0+IG1hdGNoIHN0cl9pbmQgLSBsaXRfc3RhcnQgd2l0aFxuICAgIHwgMCAgICAtPiBGbXRfRUJCIGZtdFxuICAgIHwgMSAgICAtPiBGbXRfRUJCIChDaGFyX2xpdGVyYWwgKHN0ci5bbGl0X3N0YXJ0XSwgZm10KSlcbiAgICB8IHNpemUgLT4gRm10X0VCQiAoU3RyaW5nX2xpdGVyYWwgKFN0cmluZy5zdWIgc3RyIGxpdF9zdGFydCBzaXplLCBmbXQpKVxuXG4gICgqIFNlYXJjaCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHN1Yi1mb3JtYXRcbiAgICAgKGkuZS4gdGhlIGNvcnJlc3BvbmRpbmcgXCIlfVwiIG9yIFwiJSlcIikgKilcbiAgYW5kIHNlYXJjaF9zdWJmb3JtYXRfZW5kIHN0cl9pbmQgZW5kX2luZCBjID1cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuXG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IHVuY2xvc2VkIHN1Yi1mb3JtYXQsIFxcXG4gICAgICAgICBleHBlY3RlZCBcXFwiJSUlY1xcXCIgYXQgY2hhcmFjdGVyIG51bWJlciAlZFwiIHN0ciBjIGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnJScgLT5cbiAgICAgIGlmIHN0cl9pbmQgKyAxID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgaWYgc3RyLltzdHJfaW5kICsgMV0gPSBjIHRoZW4gKCogRW5kIG9mIGZvcm1hdCBmb3VuZCAqKSBzdHJfaW5kIGVsc2VcbiAgICAgICAgYmVnaW4gbWF0Y2ggc3RyLltzdHJfaW5kICsgMV0gd2l0aFxuICAgICAgICB8ICdfJyAtPlxuICAgICAgICAgICgqIFNlYXJjaCBmb3IgXCIlXyhcIiBvciBcIiVfe1wiLiAqKVxuICAgICAgICAgIGlmIHN0cl9pbmQgKyAyID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgICAgIGJlZ2luIG1hdGNoIHN0ci5bc3RyX2luZCArIDJdIHdpdGhcbiAgICAgICAgICB8ICd7JyAtPlxuICAgICAgICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDMpIGVuZF9pbmQgJ30nIGluXG4gICAgICAgICAgICBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3ViX2VuZCArIDIpIGVuZF9pbmQgY1xuICAgICAgICAgIHwgJygnIC0+XG4gICAgICAgICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMykgZW5kX2luZCAnKScgaW5cbiAgICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgICAgfCBfIC0+IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMykgZW5kX2luZCBjXG4gICAgICAgICAgZW5kXG4gICAgICAgIHwgJ3snIC0+XG4gICAgICAgICAgKCogJXsuLi4lfSBzdWItZm9ybWF0IGZvdW5kLiAqKVxuICAgICAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAyKSBlbmRfaW5kICd9JyBpblxuICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgIHwgJygnIC0+XG4gICAgICAgICAgKCogJSguLi4lKSBzdWItZm9ybWF0IGZvdW5kLiAqKVxuICAgICAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAyKSBlbmRfaW5kICcpJyBpblxuICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgIHwgJ30nIC0+XG4gICAgICAgICAgKCogRXJyb3I6ICUoLi4uJX0uICopXG4gICAgICAgICAgZXhwZWN0ZWRfY2hhcmFjdGVyIChzdHJfaW5kICsgMSkgXCJjaGFyYWN0ZXIgJyknXCIgJ30nXG4gICAgICAgIHwgJyknIC0+XG4gICAgICAgICAgKCogRXJyb3I6ICV7Li4uJSkuICopXG4gICAgICAgICAgZXhwZWN0ZWRfY2hhcmFjdGVyIChzdHJfaW5kICsgMSkgXCJjaGFyYWN0ZXIgJ30nXCIgJyknXG4gICAgICAgIHwgXyAtPlxuICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgIGVuZFxuICAgIHwgXyAtPiBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuXG4gICgqIENoZWNrIGlmIHN5bWIgaXMgYSB2YWxpZCBpbnQgY29udmVyc2lvbiBhZnRlciBcIiVsXCIsIFwiJW5cIiBvciBcIiVMXCIgKilcbiAgYW5kIGlzX2ludF9iYXNlIHN5bWIgPSBtYXRjaCBzeW1iIHdpdGhcbiAgICB8ICdkJyB8ICdpJyB8ICd4JyB8ICdYJyB8ICdvJyB8ICd1JyAtPiB0cnVlXG4gICAgfCBfIC0+IGZhbHNlXG5cbiAgKCogQ29udmVydCBhIGNoYXIgKGwsIG4gb3IgTCkgdG8gaXRzIGFzc29jaWF0ZWQgY291bnRlci4gKilcbiAgYW5kIGNvdW50ZXJfb2ZfY2hhciBzeW1iID0gbWF0Y2ggc3ltYiB3aXRoXG4gICAgfCAnbCcgLT4gTGluZV9jb3VudGVyICB8ICduJyAtPiBDaGFyX2NvdW50ZXJcbiAgICB8ICdMJyAtPiBUb2tlbl9jb3VudGVyIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuICAoKiBDb252ZXJ0IChwbHVzLCBzeW1iKSB0byBpdHMgYXNzb2NpYXRlZCBpbnRfY29udi4gKilcbiAgYW5kIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIHBsdXMgaGFzaCBzcGFjZSBzeW1iID1cbiAgICBtYXRjaCBwbHVzLCBoYXNoLCBzcGFjZSwgc3ltYiB3aXRoXG4gICAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnZCcgLT4gSW50X2QgIHwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJ2knIC0+IEludF9pXG4gICAgfCBmYWxzZSwgZmFsc2UsICB0cnVlLCAnZCcgLT4gSW50X3NkIHwgZmFsc2UsIGZhbHNlLCAgdHJ1ZSwgJ2knIC0+IEludF9zaVxuICAgIHwgIHRydWUsIGZhbHNlLCBmYWxzZSwgJ2QnIC0+IEludF9wZCB8ICB0cnVlLCBmYWxzZSwgZmFsc2UsICdpJyAtPiBJbnRfcGlcbiAgICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICd4JyAtPiBJbnRfeCAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnWCcgLT4gSW50X1hcbiAgICB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICd4JyAtPiBJbnRfQ3ggfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAnWCcgLT4gSW50X0NYXG4gICAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnbycgLT4gSW50X29cbiAgICB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICdvJyAtPiBJbnRfQ29cbiAgICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICd1JyAtPiBJbnRfdVxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ2QnIC0+IEludF9DZFxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ2knIC0+IEludF9DaVxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ3UnIC0+IEludF9DdVxuICAgIHwgXywgdHJ1ZSwgXywgJ3gnIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+IEludF9DeFxuICAgIHwgXywgdHJ1ZSwgXywgJ1gnIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+IEludF9DWFxuICAgIHwgXywgdHJ1ZSwgXywgJ28nIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+IEludF9Db1xuICAgIHwgXywgdHJ1ZSwgXywgKCdkJyB8ICdpJyB8ICd1JykgLT5cbiAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuICgqIGlnbm9yZSAqKVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgc3RyX2luZCBwbHVzIGZhbHNlIHNwYWNlIHN5bWJcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInIydcIlxuICAgIHwgdHJ1ZSwgXywgdHJ1ZSwgXyAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW5cbiAgICAgICAgKCogcGx1cyBhbmQgc3BhY2U6IGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiBwcmVmZXJzIHBsdXMgKilcbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBoYXNoIGZhbHNlIHN5bWJcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcgJyBcIicrJ1wiXG4gICAgfCBmYWxzZSwgXywgdHJ1ZSwgXyAgICAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gKCogaWdub3JlICopXG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIHBsdXMgaGFzaCBmYWxzZSBzeW1iXG4gICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJyAnXCJcbiAgICB8IHRydWUsIF8sIGZhbHNlLCBfICAgIC0+XG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiAoKiBpZ25vcmUgKilcbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgZmFsc2UgaGFzaCBzcGFjZSBzeW1iXG4gICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJysnXCJcbiAgICB8IGZhbHNlLCBfLCBmYWxzZSwgXyAtPiBhc3NlcnQgZmFsc2VcblxuICAoKiBDb252ZXJ0IChwbHVzLCBzcGFjZSwgc3ltYikgdG8gaXRzIGFzc29jaWF0ZWQgZmxvYXRfY29udi4gKilcbiAgYW5kIGNvbXB1dGVfZmxvYXRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBoYXNoIHNwYWNlIHN5bWIgPVxuICAgIGxldCBmbGFnID0gbWF0Y2ggcGx1cywgc3BhY2Ugd2l0aFxuICAgIHwgZmFsc2UsIGZhbHNlIC0+IEZsb2F0X2ZsYWdfXG4gICAgfCBmYWxzZSwgIHRydWUgLT4gRmxvYXRfZmxhZ19zXG4gICAgfCAgdHJ1ZSwgZmFsc2UgLT4gRmxvYXRfZmxhZ19wXG4gICAgfCAgdHJ1ZSwgIHRydWUgLT5cbiAgICAgICgqIHBsdXMgYW5kIHNwYWNlOiBsZWdhY3kgaW1wbGVtZW50YXRpb24gcHJlZmVycyBwbHVzICopXG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBGbG9hdF9mbGFnX3BcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcgJyBcIicrJ1wiIGluXG4gICAgbGV0IGtpbmQgPSBtYXRjaCBoYXNoLCBzeW1iIHdpdGhcbiAgICB8IF8sICdmJyAtPiBGbG9hdF9mXG4gICAgfCBfLCAnZScgLT4gRmxvYXRfZVxuICAgIHwgXywgJ0UnIC0+IEZsb2F0X0VcbiAgICB8IF8sICdnJyAtPiBGbG9hdF9nXG4gICAgfCBfLCAnRycgLT4gRmxvYXRfR1xuICAgIHwgXywgJ2gnIC0+IEZsb2F0X2hcbiAgICB8IF8sICdIJyAtPiBGbG9hdF9IXG4gICAgfCBmYWxzZSwgJ0YnIC0+IEZsb2F0X0ZcbiAgICB8IHRydWUsICdGJyAtPiBGbG9hdF9DRlxuICAgIHwgXyAtPiBhc3NlcnQgZmFsc2UgaW5cbiAgICBmbGFnLCBraW5kXG5cbiAgKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYSBmcmllbmRseSBlcnJvciBtZXNzYWdlIGFib3V0IGluY29tcGF0aWJsZSBvcHRpb25zLiopXG4gIGFuZCBpbmNvbXBhdGlibGVfZmxhZyA6IHR5cGUgYSAuIGludCAtPiBpbnQgLT4gY2hhciAtPiBzdHJpbmcgLT4gYSA9XG4gICAgZnVuIHBjdF9pbmQgc3RyX2luZCBzeW1iIG9wdGlvbiAtPlxuICAgICAgbGV0IHN1YmZtdCA9IFN0cmluZy5zdWIgc3RyIHBjdF9pbmQgKHN0cl9pbmQgLSBwY3RfaW5kKSBpblxuICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBcXFxuICAgICAgICAgJXMgaXMgaW5jb21wYXRpYmxlIHdpdGggJyVjJyBpbiBzdWItZm9ybWF0ICVTXCJcbiAgICAgICAgc3RyIHBjdF9pbmQgb3B0aW9uIHN5bWIgc3ViZm10XG5cbiAgaW4gcGFyc2UgMCAoU3RyaW5nLmxlbmd0aCBzdHIpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAoKiBHdWFyZGVkIHN0cmluZyB0byBmb3JtYXQgY29udmVyc2lvbnMgKilcblxuKCogQ29udmVydCBhIHN0cmluZyB0byBhIGZvcm1hdCBhY2NvcmRpbmcgdG8gYW4gZm10dHkuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCBmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IHN0ciBmbXR0eSA9XG4gIGxldCBGbXRfRUJCIGZtdCA9IGZtdF9lYmJfb2Zfc3RyaW5nIHN0ciBpblxuICB0cnkgRm9ybWF0ICh0eXBlX2Zvcm1hdCBmbXQgZm10dHksIHN0cilcbiAgd2l0aCBUeXBlX21pc21hdGNoIC0+XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgXCJiYWQgaW5wdXQ6IGZvcm1hdCB0eXBlIG1pc21hdGNoIGJldHdlZW4gJVMgYW5kICVTXCJcbiAgICAgIHN0ciAoc3RyaW5nX29mX2ZtdHR5IGZtdHR5KVxuXG4oKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgZm9ybWF0IGNvbXBhdGlibGUgd2l0aCBhbiBvdGhlciBmb3JtYXQuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCBmb3JtYXRfb2Zfc3RyaW5nX2Zvcm1hdCBzdHIgKEZvcm1hdCAoZm10Jywgc3RyJykpID1cbiAgbGV0IEZtdF9FQkIgZm10ID0gZm10X2ViYl9vZl9zdHJpbmcgc3RyIGluXG4gIHRyeSBGb3JtYXQgKHR5cGVfZm9ybWF0IGZtdCAoZm10dHlfb2ZfZm10IGZtdCcpLCBzdHIpXG4gIHdpdGggVHlwZV9taXNtYXRjaCAtPlxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgIFwiYmFkIGlucHV0OiBmb3JtYXQgdHlwZSBtaXNtYXRjaCBiZXR3ZWVuICVTIGFuZCAlU1wiIHN0ciBzdHInXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIFhhdmllciBMZXJveSBhbmQgUGllcnJlIFdlaXMsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdFxuXG5sZXQga2ZwcmludGYgayBvIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGYgKGZ1biBhY2MgLT4gb3V0cHV0X2FjYyBvIGFjYzsgayBvKSBFbmRfb2ZfYWNjIGZtdFxubGV0IGticHJpbnRmIGsgYiAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfcHJpbnRmIChmdW4gYWNjIC0+IGJ1ZnB1dF9hY2MgYiBhY2M7IGsgYikgRW5kX29mX2FjYyBmbXRcbmxldCBpa2ZwcmludGYgayBvYyAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfaXByaW50ZiBrIG9jIGZtdFxubGV0IGlrYnByaW50ZiA9IGlrZnByaW50ZlxuXG5sZXQgZnByaW50ZiBvYyBmbXQgPSBrZnByaW50ZiBpZ25vcmUgb2MgZm10XG5sZXQgYnByaW50ZiBiIGZtdCA9IGticHJpbnRmIGlnbm9yZSBiIGZtdFxubGV0IGlmcHJpbnRmIG9jIGZtdCA9IGlrZnByaW50ZiBpZ25vcmUgb2MgZm10XG5sZXQgaWJwcmludGYgYiBmbXQgPSBpa2JwcmludGYgaWdub3JlIGIgZm10XG5sZXQgcHJpbnRmIGZtdCA9IGZwcmludGYgc3Rkb3V0IGZtdFxubGV0IGVwcmludGYgZm10ID0gZnByaW50ZiBzdGRlcnIgZm10XG5cbmxldCBrc3ByaW50ZiBrIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbGV0IGsnIGFjYyA9XG4gICAgbGV0IGJ1ZiA9IEJ1ZmZlci5jcmVhdGUgNjQgaW5cbiAgICBzdHJwdXRfYWNjIGJ1ZiBhY2M7XG4gICAgayAoQnVmZmVyLmNvbnRlbnRzIGJ1ZikgaW5cbiAgbWFrZV9wcmludGYgaycgRW5kX29mX2FjYyBmbXRcblxubGV0IHNwcmludGYgZm10ID0ga3NwcmludGYgKGZ1biBzIC0+IHMpIGZtdFxuXG5sZXQga3ByaW50ZiA9IGtzcHJpbnRmXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUga2V5ID0gc3RyaW5nXG50eXBlIGRvYyA9IHN0cmluZ1xudHlwZSB1c2FnZV9tc2cgPSBzdHJpbmdcbnR5cGUgYW5vbl9mdW4gPSAoc3RyaW5nIC0+IHVuaXQpXG5cbnR5cGUgc3BlYyA9XG4gIHwgVW5pdCBvZiAodW5pdCAtPiB1bml0KSAgICAgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCB1bml0IGFyZ3VtZW50ICopXG4gIHwgQm9vbCBvZiAoYm9vbCAtPiB1bml0KSAgICAgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCBhIGJvb2wgYXJndW1lbnQgKilcbiAgfCBTZXQgb2YgYm9vbCByZWYgICAgICAgICAgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byB0cnVlICopXG4gIHwgQ2xlYXIgb2YgYm9vbCByZWYgICAgICAgICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gZmFsc2UgKilcbiAgfCBTdHJpbmcgb2YgKHN0cmluZyAtPiB1bml0KSAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIGEgc3RyaW5nIGFyZ3VtZW50ICopXG4gIHwgU2V0X3N0cmluZyBvZiBzdHJpbmcgcmVmICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gdGhlIHN0cmluZyBhcmd1bWVudCAqKVxuICB8IEludCBvZiAoaW50IC0+IHVuaXQpICAgICAgICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggYW4gaW50IGFyZ3VtZW50ICopXG4gIHwgU2V0X2ludCBvZiBpbnQgcmVmICAgICAgICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gdGhlIGludCBhcmd1bWVudCAqKVxuICB8IEZsb2F0IG9mIChmbG9hdCAtPiB1bml0KSAgICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggYSBmbG9hdCBhcmd1bWVudCAqKVxuICB8IFNldF9mbG9hdCBvZiBmbG9hdCByZWYgICAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBmbG9hdCBhcmd1bWVudCAqKVxuICB8IFR1cGxlIG9mIHNwZWMgbGlzdCAgICAgICAgICgqIFRha2Ugc2V2ZXJhbCBhcmd1bWVudHMgYWNjb3JkaW5nIHRvIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWMgbGlzdCAqKVxuICB8IFN5bWJvbCBvZiBzdHJpbmcgbGlzdCAqIChzdHJpbmcgLT4gdW5pdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBUYWtlIG9uZSBvZiB0aGUgc3ltYm9scyBhcyBhcmd1bWVudCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBzeW1ib2wuICopXG4gIHwgUmVzdCBvZiAoc3RyaW5nIC0+IHVuaXQpICAgKCogU3RvcCBpbnRlcnByZXRpbmcga2V5d29yZHMgYW5kIGNhbGwgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gd2l0aCBlYWNoIHJlbWFpbmluZyBhcmd1bWVudCAqKVxuICB8IFJlc3RfYWxsIG9mIChzdHJpbmcgbGlzdCAtPiB1bml0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFN0b3AgaW50ZXJwcmV0aW5nIGtleXdvcmRzIGFuZCBjYWxsIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHdpdGggYWxsIHJlbWFpbmluZyBhcmd1bWVudHMuICopXG4gIHwgRXhwYW5kIG9mIChzdHJpbmcgLT4gc3RyaW5nIGFycmF5KSAoKiBJZiB0aGUgcmVtYWluaW5nIGFyZ3VtZW50cyB0byBwcm9jZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgb2YgdGhlIGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbXCItZm9vXCI7IFwiYXJnXCJdIEAgcmVzdF0gd2hlcmUgXCJmb29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgcmVnaXN0ZXJlZCBhcyBbRXhwYW5kIGZdLCB0aGVuIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzIFtmIFwiYXJnXCIgQCByZXN0XSBhcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZC4gT25seSBhbGxvd2VkIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNdLiAqKVxuXG5leGNlcHRpb24gQmFkIG9mIHN0cmluZ1xuZXhjZXB0aW9uIEhlbHAgb2Ygc3RyaW5nXG5cbnR5cGUgZXJyb3IgPVxuICB8IFVua25vd24gb2Ygc3RyaW5nXG4gIHwgV3Jvbmcgb2Ygc3RyaW5nICogc3RyaW5nICogc3RyaW5nICAoKiBvcHRpb24sIGFjdHVhbCwgZXhwZWN0ZWQgKilcbiAgfCBNaXNzaW5nIG9mIHN0cmluZ1xuICB8IE1lc3NhZ2Ugb2Ygc3RyaW5nXG5cbmV4Y2VwdGlvbiBTdG9wIG9mIGVycm9yICgqIHVzZWQgaW50ZXJuYWxseSAqKVxuXG5vcGVuIFByaW50ZlxuXG5sZXQgcmVjIGFzc29jMyB4IGwgPVxuICBtYXRjaCBsIHdpdGhcbiAgfCBbXSAtPiByYWlzZSBOb3RfZm91bmRcbiAgfCAoeTEsIHkyLCBfKSA6OiBfIHdoZW4geTEgPSB4IC0+IHkyXG4gIHwgXyA6OiB0IC0+IGFzc29jMyB4IHRcblxuXG5sZXQgc3BsaXQgcyA9XG4gIGxldCBpID0gU3RyaW5nLmluZGV4IHMgJz0nIGluXG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgU3RyaW5nLnN1YiBzIDAgaSwgU3RyaW5nLnN1YiBzIChpKzEpIChsZW4tKGkrMSkpXG5cblxubGV0IG1ha2Vfc3ltbGlzdCBwcmVmaXggc2VwIHN1ZmZpeCBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gIHwgW10gLT4gXCI8bm9uZT5cIlxuICB8IGg6OnQgLT4gKExpc3QuZm9sZF9sZWZ0IChmdW4geCB5IC0+IHggXiBzZXAgXiB5KSAocHJlZml4IF4gaCkgdCkgXiBzdWZmaXhcblxuXG5sZXQgcHJpbnRfc3BlYyBidWYgKGtleSwgc3BlYywgZG9jKSA9XG4gIGlmIFN0cmluZy5sZW5ndGggZG9jID4gMCB0aGVuXG4gICAgbWF0Y2ggc3BlYyB3aXRoXG4gICAgfCBTeW1ib2wgKGwsIF8pIC0+XG4gICAgICAgIGJwcmludGYgYnVmIFwiICAlcyAlcyVzXFxuXCIga2V5IChtYWtlX3N5bWxpc3QgXCJ7XCIgXCJ8XCIgXCJ9XCIgbCkgZG9jXG4gICAgfCBfIC0+XG4gICAgICAgIGJwcmludGYgYnVmIFwiICAlcyAlc1xcblwiIGtleSBkb2NcblxuXG5sZXQgaGVscF9hY3Rpb24gKCkgPSByYWlzZSAoU3RvcCAoVW5rbm93biBcIi1oZWxwXCIpKVxuXG5sZXQgYWRkX2hlbHAgc3BlY2xpc3QgPVxuICBsZXQgYWRkMSA9XG4gICAgdHJ5IGlnbm9yZSAoYXNzb2MzIFwiLWhlbHBcIiBzcGVjbGlzdCk7IFtdXG4gICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgICAgIFtcIi1oZWxwXCIsIFVuaXQgaGVscF9hY3Rpb24sIFwiIERpc3BsYXkgdGhpcyBsaXN0IG9mIG9wdGlvbnNcIl1cbiAgYW5kIGFkZDIgPVxuICAgIHRyeSBpZ25vcmUgKGFzc29jMyBcIi0taGVscFwiIHNwZWNsaXN0KTsgW11cbiAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICAgICAgW1wiLS1oZWxwXCIsIFVuaXQgaGVscF9hY3Rpb24sIFwiIERpc3BsYXkgdGhpcyBsaXN0IG9mIG9wdGlvbnNcIl1cbiAgaW5cbiAgc3BlY2xpc3QgQCAoYWRkMSBAIGFkZDIpXG5cblxubGV0IHVzYWdlX2IgYnVmIHNwZWNsaXN0IGVycm1zZyA9XG4gIGJwcmludGYgYnVmIFwiJXNcXG5cIiBlcnJtc2c7XG4gIExpc3QuaXRlciAocHJpbnRfc3BlYyBidWYpIChhZGRfaGVscCBzcGVjbGlzdClcblxuXG5sZXQgdXNhZ2Vfc3RyaW5nIHNwZWNsaXN0IGVycm1zZyA9XG4gIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAyMDAgaW5cbiAgdXNhZ2VfYiBiIHNwZWNsaXN0IGVycm1zZztcbiAgQnVmZmVyLmNvbnRlbnRzIGJcblxuXG5sZXQgdXNhZ2Ugc3BlY2xpc3QgZXJybXNnID1cbiAgZXByaW50ZiBcIiVzXCIgKHVzYWdlX3N0cmluZyBzcGVjbGlzdCBlcnJtc2cpXG5cblxubGV0IGN1cnJlbnQgPSByZWYgMFxuXG5sZXQgYm9vbF9vZl9zdHJpbmdfb3B0IHggPVxuICB0cnkgU29tZSAoYm9vbF9vZl9zdHJpbmcgeClcbiAgd2l0aCBJbnZhbGlkX2FyZ3VtZW50IF8gLT4gTm9uZVxuXG5sZXQgaW50X29mX3N0cmluZ19vcHQgeCA9XG4gIHRyeSBTb21lIChpbnRfb2Zfc3RyaW5nIHgpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxubGV0IGZsb2F0X29mX3N0cmluZ19vcHQgeCA9XG4gIHRyeSBTb21lIChmbG9hdF9vZl9zdHJpbmcgeClcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5sZXQgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfYXV4IGFsbG93X2V4cGFuZCBjdXJyZW50IGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJtc2cgPVxuICBsZXQgaW5pdHBvcyA9ICFjdXJyZW50IGluXG4gIGxldCBjb252ZXJ0X2Vycm9yIGVycm9yID1cbiAgICAoKiBjb252ZXJ0IGFuIGludGVybmFsIGVycm9yIHRvIGEgQmFkL0hlbHAgZXhjZXB0aW9uXG4gICAgICAgKm9yKiBhZGQgdGhlIHByb2dyYW0gbmFtZSBhcyBhIHByZWZpeCBhbmQgdGhlIHVzYWdlIG1lc3NhZ2UgYXMgYSBzdWZmaXhcbiAgICAgICB0byBhbiB1c2VyLXJhaXNlZCBCYWQgZXhjZXB0aW9uLlxuICAgICopXG4gICAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIDIwMCBpblxuICAgIGxldCBwcm9nbmFtZSA9XG4gICAgICBpZiBpbml0cG9zIDwgKEFycmF5Lmxlbmd0aCAhYXJndikgdGhlbiAhYXJndi4oaW5pdHBvcykgZWxzZSBcIig/KVwiIGluXG4gICAgYmVnaW4gbWF0Y2ggZXJyb3Igd2l0aFxuICAgICAgfCBVbmtub3duIFwiLWhlbHBcIiAtPiAoKVxuICAgICAgfCBVbmtub3duIFwiLS1oZWxwXCIgLT4gKClcbiAgICAgIHwgVW5rbm93biBzIC0+XG4gICAgICAgICAgYnByaW50ZiBiIFwiJXM6IHVua25vd24gb3B0aW9uICclcycuXFxuXCIgcHJvZ25hbWUgc1xuICAgICAgfCBNaXNzaW5nIHMgLT5cbiAgICAgICAgICBicHJpbnRmIGIgXCIlczogb3B0aW9uICclcycgbmVlZHMgYW4gYXJndW1lbnQuXFxuXCIgcHJvZ25hbWUgc1xuICAgICAgfCBXcm9uZyAob3B0LCBhcmcsIGV4cGVjdGVkKSAtPlxuICAgICAgICAgIGJwcmludGYgYiBcIiVzOiB3cm9uZyBhcmd1bWVudCAnJXMnOyBvcHRpb24gJyVzJyBleHBlY3RzICVzLlxcblwiXG4gICAgICAgICAgICAgICAgICBwcm9nbmFtZSBhcmcgb3B0IGV4cGVjdGVkXG4gICAgICB8IE1lc3NhZ2UgcyAtPiAoKiB1c2VyIGVycm9yIG1lc3NhZ2UgKilcbiAgICAgICAgICBicHJpbnRmIGIgXCIlczogJXMuXFxuXCIgcHJvZ25hbWUgc1xuICAgIGVuZDtcbiAgICB1c2FnZV9iIGIgIXNwZWNsaXN0IGVycm1zZztcbiAgICBpZiBlcnJvciA9IFVua25vd24gXCItaGVscFwiIHx8IGVycm9yID0gVW5rbm93biBcIi0taGVscFwiXG4gICAgdGhlbiBIZWxwIChCdWZmZXIuY29udGVudHMgYilcbiAgICBlbHNlIEJhZCAoQnVmZmVyLmNvbnRlbnRzIGIpXG4gIGluXG4gIGluY3IgY3VycmVudDtcbiAgd2hpbGUgIWN1cnJlbnQgPCAoQXJyYXkubGVuZ3RoICFhcmd2KSBkb1xuICAgIGJlZ2luIHRyeVxuICAgICAgbGV0IHMgPSAhYXJndi4oIWN1cnJlbnQpIGluXG4gICAgICBpZiBTdHJpbmcubGVuZ3RoIHMgPj0gMSAmJiBzLlswXSA9ICctJyB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBhY3Rpb24sIGZvbGxvdyA9XG4gICAgICAgICAgdHJ5IGFzc29jMyBzICFzcGVjbGlzdCwgTm9uZVxuICAgICAgICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICAgICAgdHJ5XG4gICAgICAgICAgICBsZXQga2V5d29yZCwgYXJnID0gc3BsaXQgcyBpblxuICAgICAgICAgICAgYXNzb2MzIGtleXdvcmQgIXNwZWNsaXN0LCBTb21lIGFyZ1xuICAgICAgICAgIHdpdGggTm90X2ZvdW5kIC0+IHJhaXNlIChTdG9wIChVbmtub3duIHMpKVxuICAgICAgICBpblxuICAgICAgICBsZXQgbm9fYXJnICgpID1cbiAgICAgICAgICBtYXRjaCBmb2xsb3cgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgICAgIHwgU29tZSBhcmcgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwibm8gYXJndW1lbnRcIikpKSBpblxuICAgICAgICBsZXQgZ2V0X2FyZyAoKSA9XG4gICAgICAgICAgbWF0Y2ggZm9sbG93IHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgaWYgIWN1cnJlbnQgKyAxIDwgKEFycmF5Lmxlbmd0aCAhYXJndikgdGhlbiAhYXJndi4oIWN1cnJlbnQgKyAxKVxuICAgICAgICAgICAgICBlbHNlIHJhaXNlIChTdG9wIChNaXNzaW5nIHMpKVxuICAgICAgICAgIHwgU29tZSBhcmcgLT4gYXJnXG4gICAgICAgIGluXG4gICAgICAgIGxldCBjb25zdW1lX2FyZyAoKSA9XG4gICAgICAgICAgbWF0Y2ggZm9sbG93IHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gaW5jciBjdXJyZW50XG4gICAgICAgICAgfCBTb21lIF8gLT4gKClcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IHJlYyB0cmVhdF9hY3Rpb24gPSBmdW5jdGlvblxuICAgICAgICB8IFVuaXQgZiAtPiBub19hcmcgKCk7IGYgKCk7XG4gICAgICAgIHwgQm9vbCBmIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggYm9vbF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYSBib29sZWFuXCIpKSlcbiAgICAgICAgICAgIHwgU29tZSBzIC0+IGYgc1xuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgU2V0IHIgLT4gbm9fYXJnICgpOyByIDo9IHRydWU7XG4gICAgICAgIHwgQ2xlYXIgciAtPiBub19hcmcgKCk7IHIgOj0gZmFsc2U7XG4gICAgICAgIHwgU3RyaW5nIGYgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBmIGFyZztcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFN5bWJvbCAoc3ltYiwgZikgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBpZiBMaXN0Lm1lbSBhcmcgc3ltYiB0aGVuIGJlZ2luXG4gICAgICAgICAgICAgIGYgYXJnO1xuICAgICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcIm9uZSBvZjogXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gKG1ha2Vfc3ltbGlzdCBcIlwiIFwiIFwiIFwiXCIgc3ltYikpKSlcbiAgICAgICAgICAgIGVuZFxuICAgICAgICB8IFNldF9zdHJpbmcgciAtPlxuICAgICAgICAgICAgciA6PSBnZXRfYXJnICgpO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgSW50IGYgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBpbnRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImFuIGludGVnZXJcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gZiB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBTZXRfaW50IHIgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBpbnRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImFuIGludGVnZXJcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gciA6PSB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBGbG9hdCBmIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggZmxvYXRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImEgZmxvYXRcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gZiB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBTZXRfZmxvYXQgciAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGZsb2F0X29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhIGZsb2F0XCIpKSlcbiAgICAgICAgICAgIHwgU29tZSB4IC0+IHIgOj0geFxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgVHVwbGUgc3BlY3MgLT5cbiAgICAgICAgICAgIG5vX2FyZyAoKTtcbiAgICAgICAgICAgIExpc3QuaXRlciB0cmVhdF9hY3Rpb24gc3BlY3M7XG4gICAgICAgIHwgUmVzdCBmIC0+XG4gICAgICAgICAgICBub19hcmcgKCk7XG4gICAgICAgICAgICB3aGlsZSAhY3VycmVudCA8IChBcnJheS5sZW5ndGggIWFyZ3YpIC0gMSBkb1xuICAgICAgICAgICAgICBmICFhcmd2LighY3VycmVudCArIDEpO1xuICAgICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGRvbmU7XG4gICAgICAgIHwgUmVzdF9hbGwgZiAtPlxuICAgICAgICAgICAgbm9fYXJnICgpO1xuICAgICAgICAgICAgbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgd2hpbGUgIWN1cnJlbnQgPCBBcnJheS5sZW5ndGggIWFyZ3YgLSAxIGRvXG4gICAgICAgICAgICAgIGFjYyA6PSAhYXJndi4oIWN1cnJlbnQgKyAxKSA6OiAhYWNjO1xuICAgICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICBmIChMaXN0LnJldiAhYWNjKVxuICAgICAgICB8IEV4cGFuZCBmIC0+XG4gICAgICAgICAgICBpZiBub3QgYWxsb3dfZXhwYW5kIHRoZW5cbiAgICAgICAgICAgICAgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgXCJBcmcuRXhwYW5kIGlzIGlzIG9ubHkgYWxsb3dlZCB3aXRoIFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcucGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNcIik7XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgbGV0IG5ld2FyZyA9IGYgYXJnIGluXG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGxldCBiZWZvcmUgPSBBcnJheS5zdWIgIWFyZ3YgMCAoIWN1cnJlbnQgKyAxKVxuICAgICAgICAgICAgYW5kIGFmdGVyID1cbiAgICAgICAgICAgICAgQXJyYXkuc3ViICFhcmd2ICghY3VycmVudCArIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAoKEFycmF5Lmxlbmd0aCAhYXJndikgLSAhY3VycmVudCAtIDEpIGluXG4gICAgICAgICAgICBhcmd2Oj0gQXJyYXkuY29uY2F0IFtiZWZvcmU7bmV3YXJnO2FmdGVyXTtcbiAgICAgICAgaW5cbiAgICAgICAgdHJlYXRfYWN0aW9uIGFjdGlvbiBlbmRcbiAgICAgIGVsc2UgYW5vbmZ1biBzXG4gICAgd2l0aCB8IEJhZCBtIC0+IHJhaXNlIChjb252ZXJ0X2Vycm9yIChNZXNzYWdlIG0pKTtcbiAgICAgICAgIHwgU3RvcCBlIC0+IHJhaXNlIChjb252ZXJ0X2Vycm9yIGUpO1xuICAgIGVuZDtcbiAgICBpbmNyIGN1cnJlbnRcbiAgZG9uZVxuXG5sZXQgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWMgY3VycmVudCBhcmd2IHNwZWNsaXN0IGFub25mdW4gZXJybXNnID1cbiAgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfYXV4IHRydWUgY3VycmVudCBhcmd2IHNwZWNsaXN0IGFub25mdW4gZXJybXNnXG5cbmxldCBwYXJzZV9hcmd2X2R5bmFtaWMgPyhjdXJyZW50PWN1cnJlbnQpIGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1biBlcnJtc2cgPVxuICBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY19hdXggZmFsc2UgY3VycmVudCAocmVmIGFyZ3YpIHNwZWNsaXN0IGFub25mdW5cbiAgICBlcnJtc2dcblxuXG5sZXQgcGFyc2VfYXJndiA/KGN1cnJlbnQ9Y3VycmVudCkgYXJndiBzcGVjbGlzdCBhbm9uZnVuIGVycm1zZyA9XG4gIHBhcnNlX2FyZ3ZfZHluYW1pYyB+Y3VycmVudDpjdXJyZW50IGFyZ3YgKHJlZiBzcGVjbGlzdCkgYW5vbmZ1biBlcnJtc2dcblxuXG5sZXQgcGFyc2UgbCBmIG1zZyA9XG4gIHRyeVxuICAgIHBhcnNlX2FyZ3YgU3lzLmFyZ3YgbCBmIG1zZ1xuICB3aXRoXG4gIHwgQmFkIG1zZyAtPiBlcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMlxuICB8IEhlbHAgbXNnIC0+IHByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDBcblxuXG5sZXQgcGFyc2VfZHluYW1pYyBsIGYgbXNnID1cbiAgdHJ5XG4gICAgcGFyc2VfYXJndl9keW5hbWljIFN5cy5hcmd2IGwgZiBtc2dcbiAgd2l0aFxuICB8IEJhZCBtc2cgLT4gZXByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDJcbiAgfCBIZWxwIG1zZyAtPiBwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAwXG5cbmxldCBwYXJzZV9leHBhbmQgbCBmIG1zZyA9XG4gIHRyeVxuICAgIGxldCBhcmd2ID0gcmVmIFN5cy5hcmd2IGluXG4gICAgbGV0IHNwZWMgPSByZWYgbCBpblxuICAgIGxldCBjdXJyZW50ID0gcmVmICghY3VycmVudCkgaW5cbiAgICBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pYyBjdXJyZW50IGFyZ3Ygc3BlYyBmIG1zZ1xuICB3aXRoXG4gIHwgQmFkIG1zZyAtPiBlcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMlxuICB8IEhlbHAgbXNnIC0+IHByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDBcblxuXG5sZXQgc2Vjb25kX3dvcmQgcyA9XG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgbGV0IHJlYyBsb29wIG4gPVxuICAgIGlmIG4gPj0gbGVuIHRoZW4gbGVuXG4gICAgZWxzZSBpZiBzLltuXSA9ICcgJyB0aGVuIGxvb3AgKG4rMSlcbiAgICBlbHNlIG5cbiAgaW5cbiAgbWF0Y2ggU3RyaW5nLmluZGV4IHMgJ1xcdCcgd2l0aFxuICB8IG4gLT4gbG9vcCAobisxKVxuICB8IGV4Y2VwdGlvbiBOb3RfZm91bmQgLT5cbiAgICAgIGJlZ2luIG1hdGNoIFN0cmluZy5pbmRleCBzICcgJyB3aXRoXG4gICAgICB8IG4gLT4gbG9vcCAobisxKVxuICAgICAgfCBleGNlcHRpb24gTm90X2ZvdW5kIC0+IGxlblxuICAgICAgZW5kXG5cblxubGV0IG1heF9hcmdfbGVuIGN1ciAoa3dkLCBzcGVjLCBkb2MpID1cbiAgbWF0Y2ggc3BlYyB3aXRoXG4gIHwgU3ltYm9sIF8gLT4gSW50Lm1heCBjdXIgKFN0cmluZy5sZW5ndGgga3dkKVxuICB8IF8gLT4gSW50Lm1heCBjdXIgKFN0cmluZy5sZW5ndGgga3dkICsgc2Vjb25kX3dvcmQgZG9jKVxuXG5cbmxldCByZXBsYWNlX2xlYWRpbmdfdGFiIHMgPVxuICBsZXQgc2VlbiA9IHJlZiBmYWxzZSBpblxuICBTdHJpbmcubWFwIChmdW5jdGlvbiAnXFx0JyB3aGVuIG5vdCAhc2VlbiAtPiBzZWVuIDo9IHRydWU7ICcgJyB8IGMgLT4gYykgc1xuXG5sZXQgYWRkX3BhZGRpbmcgbGVuIGtzZCA9XG4gIG1hdGNoIGtzZCB3aXRoXG4gIHwgKF8sIF8sIFwiXCIpIC0+XG4gICAgICAoKiBEbyBub3QgcGFkIHVuZG9jdW1lbnRlZCBvcHRpb25zLCBzbyB0aGF0IHRoZXkgc3RpbGwgZG9uJ3Qgc2hvdyB1cCB3aGVuXG4gICAgICAgKiBydW4gdGhyb3VnaCBbdXNhZ2VdIG9yIFtwYXJzZV0uICopXG4gICAgICBrc2RcbiAgfCAoa3dkLCAoU3ltYm9sIF8gYXMgc3BlYyksIG1zZykgLT5cbiAgICAgIGxldCBjdXRjb2wgPSBzZWNvbmRfd29yZCBtc2cgaW5cbiAgICAgIGxldCBzcGFjZXMgPSBTdHJpbmcubWFrZSAoKEludC5tYXggMCAobGVuIC0gY3V0Y29sKSkgKyAzKSAnICcgaW5cbiAgICAgIChrd2QsIHNwZWMsIFwiXFxuXCIgXiBzcGFjZXMgXiByZXBsYWNlX2xlYWRpbmdfdGFiIG1zZylcbiAgfCAoa3dkLCBzcGVjLCBtc2cpIC0+XG4gICAgICBsZXQgY3V0Y29sID0gc2Vjb25kX3dvcmQgbXNnIGluXG4gICAgICBsZXQga3dkX2xlbiA9IFN0cmluZy5sZW5ndGgga3dkIGluXG4gICAgICBsZXQgZGlmZiA9IGxlbiAtIGt3ZF9sZW4gLSBjdXRjb2wgaW5cbiAgICAgIGlmIGRpZmYgPD0gMCB0aGVuXG4gICAgICAgIChrd2QsIHNwZWMsIHJlcGxhY2VfbGVhZGluZ190YWIgbXNnKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgc3BhY2VzID0gU3RyaW5nLm1ha2UgZGlmZiAnICcgaW5cbiAgICAgICAgbGV0IHByZWZpeCA9IFN0cmluZy5zdWIgKHJlcGxhY2VfbGVhZGluZ190YWIgbXNnKSAwIGN1dGNvbCBpblxuICAgICAgICBsZXQgc3VmZml4ID0gU3RyaW5nLnN1YiBtc2cgY3V0Y29sIChTdHJpbmcubGVuZ3RoIG1zZyAtIGN1dGNvbCkgaW5cbiAgICAgICAgKGt3ZCwgc3BlYywgcHJlZml4IF4gc3BhY2VzIF4gc3VmZml4KVxuXG5cbmxldCBhbGlnbiA/KGxpbWl0PW1heF9pbnQpIHNwZWNsaXN0ID1cbiAgbGV0IGNvbXBsZXRlZCA9IGFkZF9oZWxwIHNwZWNsaXN0IGluXG4gIGxldCBsZW4gPSBMaXN0LmZvbGRfbGVmdCBtYXhfYXJnX2xlbiAwIGNvbXBsZXRlZCBpblxuICBsZXQgbGVuID0gSW50Lm1pbiBsZW4gbGltaXQgaW5cbiAgTGlzdC5tYXAgKGFkZF9wYWRkaW5nIGxlbikgY29tcGxldGVkXG5cbmxldCB0cmltX2NyIHMgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGlmIGxlbiA+IDAgJiYgU3RyaW5nLmdldCBzIChsZW4gLSAxKSA9ICdcXHInIHRoZW5cbiAgICBTdHJpbmcuc3ViIHMgMCAobGVuIC0gMSlcbiAgZWxzZVxuICAgIHNcblxubGV0IHJlYWRfYXV4IHRyaW0gc2VwIGZpbGUgPVxuICBsZXQgaWMgPSBvcGVuX2luX2JpbiBmaWxlIGluXG4gIGxldCBidWYgPSBCdWZmZXIuY3JlYXRlIDIwMCBpblxuICBsZXQgd29yZHMgPSByZWYgW10gaW5cbiAgbGV0IHN0YXNoICgpID1cbiAgICBsZXQgd29yZCA9IEJ1ZmZlci5jb250ZW50cyBidWYgaW5cbiAgICBsZXQgd29yZCA9IGlmIHRyaW0gdGhlbiB0cmltX2NyIHdvcmQgZWxzZSB3b3JkIGluXG4gICAgd29yZHMgOj0gd29yZCA6OiAhd29yZHM7XG4gICAgQnVmZmVyLmNsZWFyIGJ1ZlxuICBpblxuICBiZWdpblxuICAgIHRyeSB3aGlsZSB0cnVlIGRvXG4gICAgICAgIGxldCBjID0gaW5wdXRfY2hhciBpYyBpblxuICAgICAgICBpZiBjID0gc2VwIHRoZW4gc3Rhc2ggKCkgZWxzZSBCdWZmZXIuYWRkX2NoYXIgYnVmIGNcbiAgICAgIGRvbmVcbiAgICB3aXRoIEVuZF9vZl9maWxlIC0+ICgpXG4gIGVuZDtcbiAgaWYgQnVmZmVyLmxlbmd0aCBidWYgPiAwIHRoZW4gc3Rhc2ggKCk7XG4gIGNsb3NlX2luIGljO1xuICBBcnJheS5vZl9saXN0IChMaXN0LnJldiAhd29yZHMpXG5cbmxldCByZWFkX2FyZyA9IHJlYWRfYXV4IHRydWUgJ1xcbidcblxubGV0IHJlYWRfYXJnMCA9IHJlYWRfYXV4IGZhbHNlICdcXHgwMCdcblxubGV0IHdyaXRlX2F1eCBzZXAgZmlsZSBhcmdzID1cbiAgbGV0IG9jID0gb3Blbl9vdXRfYmluIGZpbGUgaW5cbiAgQXJyYXkuaXRlciAoZnVuIHMgLT4gZnByaW50ZiBvYyBcIiVzJWNcIiBzIHNlcCkgYXJncztcbiAgY2xvc2Vfb3V0IG9jXG5cbmxldCB3cml0ZV9hcmcgPSB3cml0ZV9hdXggJ1xcbidcblxubGV0IHdyaXRlX2FyZzAgPSB3cml0ZV9hdXggJ1xceDAwJ1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIFByaW50ZlxuXG50eXBlIHQgPSBleG4gPSAuLlxuXG5sZXQgcHJpbnRlcnMgPSBBdG9taWMubWFrZSBbXVxuXG5sZXQgbG9jZm10ID0gZm9ybWF0X29mX3N0cmluZyBcIkZpbGUgXFxcIiVzXFxcIiwgbGluZSAlZCwgY2hhcmFjdGVycyAlZC0lZDogJXNcIlxuXG5sZXQgZmllbGQgeCBpID1cbiAgbGV0IGYgPSBPYmouZmllbGQgeCBpIGluXG4gIGlmIG5vdCAoT2JqLmlzX2Jsb2NrIGYpIHRoZW5cbiAgICBzcHJpbnRmIFwiJWRcIiAoT2JqLm1hZ2ljIGYgOiBpbnQpICAgICAgICAgICAoKiBjYW4gYWxzbyBiZSBhIGNoYXIgKilcbiAgZWxzZSBpZiBPYmoudGFnIGYgPSBPYmouc3RyaW5nX3RhZyB0aGVuXG4gICAgc3ByaW50ZiBcIiVTXCIgKE9iai5tYWdpYyBmIDogc3RyaW5nKVxuICBlbHNlIGlmIE9iai50YWcgZiA9IE9iai5kb3VibGVfdGFnIHRoZW5cbiAgICBzdHJpbmdfb2ZfZmxvYXQgKE9iai5tYWdpYyBmIDogZmxvYXQpXG4gIGVsc2VcbiAgICBcIl9cIlxuXG5sZXQgcmVjIG90aGVyX2ZpZWxkcyB4IGkgPVxuICBpZiBpID49IE9iai5zaXplIHggdGhlbiBcIlwiXG4gIGVsc2Ugc3ByaW50ZiBcIiwgJXMlc1wiIChmaWVsZCB4IGkpIChvdGhlcl9maWVsZHMgeCAoaSsxKSlcblxubGV0IGZpZWxkcyB4ID1cbiAgbWF0Y2ggT2JqLnNpemUgeCB3aXRoXG4gIHwgMCAtPiBcIlwiXG4gIHwgMSAtPiBcIlwiXG4gIHwgMiAtPiBzcHJpbnRmIFwiKCVzKVwiIChmaWVsZCB4IDEpXG4gIHwgXyAtPiBzcHJpbnRmIFwiKCVzJXMpXCIgKGZpZWxkIHggMSkgKG90aGVyX2ZpZWxkcyB4IDIpXG5cbmxldCB1c2VfcHJpbnRlcnMgeCA9XG4gIGxldCByZWMgY29udiA9IGZ1bmN0aW9uXG4gICAgfCBoZCA6OiB0bCAtPlxuICAgICAgICAobWF0Y2ggaGQgeCB3aXRoXG4gICAgICAgICB8IE5vbmUgfCBleGNlcHRpb24gXyAtPiBjb252IHRsXG4gICAgICAgICB8IFNvbWUgcyAtPiBTb21lIHMpXG4gICAgfCBbXSAtPiBOb25lIGluXG4gIGNvbnYgKEF0b21pYy5nZXQgcHJpbnRlcnMpXG5cbmxldCB0b19zdHJpbmdfZGVmYXVsdCA9IGZ1bmN0aW9uXG4gIHwgT3V0X29mX21lbW9yeSAtPiBcIk91dCBvZiBtZW1vcnlcIlxuICB8IFN0YWNrX292ZXJmbG93IC0+IFwiU3RhY2sgb3ZlcmZsb3dcIlxuICB8IE1hdGNoX2ZhaWx1cmUoZmlsZSwgbGluZSwgY2hhcikgLT5cbiAgICAgIHNwcmludGYgbG9jZm10IGZpbGUgbGluZSBjaGFyIChjaGFyKzUpIFwiUGF0dGVybiBtYXRjaGluZyBmYWlsZWRcIlxuICB8IEFzc2VydF9mYWlsdXJlKGZpbGUsIGxpbmUsIGNoYXIpIC0+XG4gICAgICBzcHJpbnRmIGxvY2ZtdCBmaWxlIGxpbmUgY2hhciAoY2hhcis2KSBcIkFzc2VydGlvbiBmYWlsZWRcIlxuICB8IFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlKGZpbGUsIGxpbmUsIGNoYXIpIC0+XG4gICAgICBzcHJpbnRmIGxvY2ZtdCBmaWxlIGxpbmUgY2hhciAoY2hhcis2KSBcIlVuZGVmaW5lZCByZWN1cnNpdmUgbW9kdWxlXCJcbiAgfCB4IC0+XG4gICAgICBsZXQgeCA9IE9iai5yZXByIHggaW5cbiAgICAgIGlmIE9iai50YWcgeCA8PiAwIHRoZW5cbiAgICAgICAgKE9iai5tYWdpYyAoT2JqLmZpZWxkIHggMCkgOiBzdHJpbmcpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBjb25zdHJ1Y3RvciA9XG4gICAgICAgICAgKE9iai5tYWdpYyAoT2JqLmZpZWxkIChPYmouZmllbGQgeCAwKSAwKSA6IHN0cmluZykgaW5cbiAgICAgICAgY29uc3RydWN0b3IgXiAoZmllbGRzIHgpXG5cbmxldCB0b19zdHJpbmcgZSA9XG4gIG1hdGNoIHVzZV9wcmludGVycyBlIHdpdGhcbiAgfCBTb21lIHMgLT4gc1xuICB8IE5vbmUgLT4gdG9fc3RyaW5nX2RlZmF1bHQgZVxuXG5sZXQgcHJpbnQgZmN0IGFyZyA9XG4gIHRyeVxuICAgIGZjdCBhcmdcbiAgd2l0aCB4IC0+XG4gICAgZXByaW50ZiBcIlVuY2F1Z2h0IGV4Y2VwdGlvbjogJXNcXG5cIiAodG9fc3RyaW5nIHgpO1xuICAgIGZsdXNoIHN0ZGVycjtcbiAgICByYWlzZSB4XG5cbmxldCBjYXRjaCBmY3QgYXJnID1cbiAgdHJ5XG4gICAgZmN0IGFyZ1xuICB3aXRoIHggLT5cbiAgICBmbHVzaCBzdGRvdXQ7XG4gICAgZXByaW50ZiBcIlVuY2F1Z2h0IGV4Y2VwdGlvbjogJXNcXG5cIiAodG9fc3RyaW5nIHgpO1xuICAgIGV4aXQgMlxuXG50eXBlIHJhd19iYWNrdHJhY2Vfc2xvdFxudHlwZSByYXdfYmFja3RyYWNlX2VudHJ5ID0gcHJpdmF0ZSBpbnRcbnR5cGUgcmF3X2JhY2t0cmFjZSA9IHJhd19iYWNrdHJhY2VfZW50cnkgYXJyYXlcblxubGV0IHJhd19iYWNrdHJhY2VfZW50cmllcyBidCA9IGJ0XG5cbmV4dGVybmFsIGdldF9yYXdfYmFja3RyYWNlOlxuICB1bml0IC0+IHJhd19iYWNrdHJhY2UgPSBcImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlXCJcblxuZXh0ZXJuYWwgcmFpc2Vfd2l0aF9iYWNrdHJhY2U6IGV4biAtPiByYXdfYmFja3RyYWNlIC0+ICdhXG4gID0gXCIlcmFpc2Vfd2l0aF9iYWNrdHJhY2VcIlxuXG50eXBlIGJhY2t0cmFjZV9zbG90ID1cbiAgfCBLbm93bl9sb2NhdGlvbiBvZiB7XG4gICAgICBpc19yYWlzZSAgICA6IGJvb2w7XG4gICAgICBmaWxlbmFtZSAgICA6IHN0cmluZztcbiAgICAgIGxpbmVfbnVtYmVyIDogaW50O1xuICAgICAgc3RhcnRfY2hhciAgOiBpbnQ7XG4gICAgICBlbmRfY2hhciAgICA6IGludDtcbiAgICAgIGlzX2lubGluZSAgIDogYm9vbDtcbiAgICAgIGRlZm5hbWUgICAgIDogc3RyaW5nO1xuICAgIH1cbiAgfCBVbmtub3duX2xvY2F0aW9uIG9mIHtcbiAgICAgIGlzX3JhaXNlIDogYm9vbFxuICAgIH1cblxuKCogdG8gYXZvaWQgd2FybmluZyAqKVxubGV0IF8gPSBbS25vd25fbG9jYXRpb24geyBpc19yYWlzZSA9IGZhbHNlOyBmaWxlbmFtZSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbnVtYmVyID0gMDsgc3RhcnRfY2hhciA9IDA7IGVuZF9jaGFyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfaW5saW5lID0gZmFsc2U7IGRlZm5hbWUgPSBcIlwiIH07XG4gICAgICAgICBVbmtub3duX2xvY2F0aW9uIHsgaXNfcmFpc2UgPSBmYWxzZSB9XVxuXG5leHRlcm5hbCBjb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdDpcbiAgcmF3X2JhY2t0cmFjZV9zbG90IC0+IGJhY2t0cmFjZV9zbG90ID0gXCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90XCJcblxuZXh0ZXJuYWwgY29udmVydF9yYXdfYmFja3RyYWNlOlxuICByYXdfYmFja3RyYWNlIC0+IGJhY2t0cmFjZV9zbG90IGFycmF5ID0gXCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZVwiXG5cbmxldCBjb252ZXJ0X3Jhd19iYWNrdHJhY2UgYnQgPVxuICB0cnkgU29tZSAoY29udmVydF9yYXdfYmFja3RyYWNlIGJ0KVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbmxldCBmb3JtYXRfYmFja3RyYWNlX3Nsb3QgcG9zIHNsb3QgPVxuICBsZXQgaW5mbyBpc19yYWlzZSA9XG4gICAgaWYgaXNfcmFpc2UgdGhlblxuICAgICAgaWYgcG9zID0gMCB0aGVuIFwiUmFpc2VkIGF0XCIgZWxzZSBcIlJlLXJhaXNlZCBhdFwiXG4gICAgZWxzZVxuICAgICAgaWYgcG9zID0gMCB0aGVuIFwiUmFpc2VkIGJ5IHByaW1pdGl2ZSBvcGVyYXRpb24gYXRcIiBlbHNlIFwiQ2FsbGVkIGZyb21cIlxuICBpblxuICBtYXRjaCBzbG90IHdpdGhcbiAgfCBVbmtub3duX2xvY2F0aW9uIGwgLT5cbiAgICAgIGlmIGwuaXNfcmFpc2UgdGhlblxuICAgICAgICAoKiBjb21waWxlci1pbnNlcnRlZCByZS1yYWlzZSwgc2tpcHBlZCAqKSBOb25lXG4gICAgICBlbHNlXG4gICAgICAgIFNvbWUgKHNwcmludGYgXCIlcyB1bmtub3duIGxvY2F0aW9uXCIgKGluZm8gZmFsc2UpKVxuICB8IEtub3duX2xvY2F0aW9uIGwgLT5cbiAgICAgIFNvbWUgKHNwcmludGYgXCIlcyAlcyBpbiBmaWxlIFxcXCIlc1xcXCIlcywgbGluZSAlZCwgY2hhcmFjdGVycyAlZC0lZFwiXG4gICAgICAgICAgICAgIChpbmZvIGwuaXNfcmFpc2UpIGwuZGVmbmFtZSBsLmZpbGVuYW1lXG4gICAgICAgICAgICAgIChpZiBsLmlzX2lubGluZSB0aGVuIFwiIChpbmxpbmVkKVwiIGVsc2UgXCJcIilcbiAgICAgICAgICAgICAgbC5saW5lX251bWJlciBsLnN0YXJ0X2NoYXIgbC5lbmRfY2hhcilcblxubGV0IHByaW50X2V4Y2VwdGlvbl9iYWNrdHJhY2Ugb3V0Y2hhbiBiYWNrdHJhY2UgPVxuICBtYXRjaCBiYWNrdHJhY2Ugd2l0aFxuICB8IE5vbmUgLT5cbiAgICAgIGZwcmludGYgb3V0Y2hhblxuICAgICAgICBcIihQcm9ncmFtIG5vdCBsaW5rZWQgd2l0aCAtZywgY2Fubm90IHByaW50IHN0YWNrIGJhY2t0cmFjZSlcXG5cIlxuICB8IFNvbWUgYSAtPlxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBhIC0gMSBkb1xuICAgICAgICBtYXRjaCBmb3JtYXRfYmFja3RyYWNlX3Nsb3QgaSBhLihpKSB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+ICgpXG4gICAgICAgICAgfCBTb21lIHN0ciAtPiBmcHJpbnRmIG91dGNoYW4gXCIlc1xcblwiIHN0clxuICAgICAgZG9uZVxuXG5sZXQgcHJpbnRfcmF3X2JhY2t0cmFjZSBvdXRjaGFuIHJhd19iYWNrdHJhY2UgPVxuICBwcmludF9leGNlcHRpb25fYmFja3RyYWNlIG91dGNoYW4gKGNvbnZlcnRfcmF3X2JhY2t0cmFjZSByYXdfYmFja3RyYWNlKVxuXG4oKiBjb25mdXNpbmdseSBuYW1lZDogcHJpbnRzIHRoZSBnbG9iYWwgY3VycmVudCBiYWNrdHJhY2UgKilcbmxldCBwcmludF9iYWNrdHJhY2Ugb3V0Y2hhbiA9XG4gIHByaW50X3Jhd19iYWNrdHJhY2Ugb3V0Y2hhbiAoZ2V0X3Jhd19iYWNrdHJhY2UgKCkpXG5cbmxldCBiYWNrdHJhY2VfdG9fc3RyaW5nIGJhY2t0cmFjZSA9XG4gIG1hdGNoIGJhY2t0cmFjZSB3aXRoXG4gIHwgTm9uZSAtPlxuICAgICBcIihQcm9ncmFtIG5vdCBsaW5rZWQgd2l0aCAtZywgY2Fubm90IHByaW50IHN0YWNrIGJhY2t0cmFjZSlcXG5cIlxuICB8IFNvbWUgYSAtPlxuICAgICAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIDEwMjQgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggYSAtIDEgZG9cbiAgICAgICAgbWF0Y2ggZm9ybWF0X2JhY2t0cmFjZV9zbG90IGkgYS4oaSkgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgICAgIHwgU29tZSBzdHIgLT4gYnByaW50ZiBiIFwiJXNcXG5cIiBzdHJcbiAgICAgIGRvbmU7XG4gICAgICBCdWZmZXIuY29udGVudHMgYlxuXG5sZXQgcmF3X2JhY2t0cmFjZV90b19zdHJpbmcgcmF3X2JhY2t0cmFjZSA9XG4gIGJhY2t0cmFjZV90b19zdHJpbmcgKGNvbnZlcnRfcmF3X2JhY2t0cmFjZSByYXdfYmFja3RyYWNlKVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RfaXNfcmFpc2UgPSBmdW5jdGlvblxuICB8IEtub3duX2xvY2F0aW9uIGwgLT4gbC5pc19yYWlzZVxuICB8IFVua25vd25fbG9jYXRpb24gbCAtPiBsLmlzX3JhaXNlXG5cbmxldCBiYWNrdHJhY2Vfc2xvdF9pc19pbmxpbmUgPSBmdW5jdGlvblxuICB8IEtub3duX2xvY2F0aW9uIGwgLT4gbC5pc19pbmxpbmVcbiAgfCBVbmtub3duX2xvY2F0aW9uIF8gLT4gZmFsc2VcblxudHlwZSBsb2NhdGlvbiA9IHtcbiAgZmlsZW5hbWUgOiBzdHJpbmc7XG4gIGxpbmVfbnVtYmVyIDogaW50O1xuICBzdGFydF9jaGFyIDogaW50O1xuICBlbmRfY2hhciA6IGludDtcbn1cblxubGV0IGJhY2t0cmFjZV9zbG90X2xvY2F0aW9uID0gZnVuY3Rpb25cbiAgfCBVbmtub3duX2xvY2F0aW9uIF8gLT4gTm9uZVxuICB8IEtub3duX2xvY2F0aW9uIGwgLT5cbiAgICBTb21lIHtcbiAgICAgIGZpbGVuYW1lICAgID0gbC5maWxlbmFtZTtcbiAgICAgIGxpbmVfbnVtYmVyID0gbC5saW5lX251bWJlcjtcbiAgICAgIHN0YXJ0X2NoYXIgID0gbC5zdGFydF9jaGFyO1xuICAgICAgZW5kX2NoYXIgICAgPSBsLmVuZF9jaGFyO1xuICAgIH1cblxubGV0IGJhY2t0cmFjZV9zbG90X2RlZm5hbWUgPSBmdW5jdGlvblxuICB8IFVua25vd25fbG9jYXRpb24gX1xuICB8IEtub3duX2xvY2F0aW9uIHsgZGVmbmFtZSA9IFwiXCIgfSAtPiBOb25lXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPiBTb21lIGwuZGVmbmFtZVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RzIHJhd19iYWNrdHJhY2UgPVxuICAoKiBUaGUgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGd1YXJhbnRlZXMgdGhhdCBTb21lIGlzXG4gICAgIHJldHVybmVkIG9ubHkgaWYgYSBwYXJ0IG9mIHRoZSB0cmFjZSBpcyB1c2FibGUuIFRoaXMgZ2l2ZXMgdXNcbiAgICAgYSBiaXQgbW9yZSB3b3JrIHRoYW4ganVzdCBjb252ZXJ0X3Jhd19iYWNrdHJhY2UsIGJ1dCBpdCBtYWtlcyB0aGVcbiAgICAgQVBJIG1vcmUgdXNlci1mcmllbmRseSAtLSBvdGhlcndpc2UgbW9zdCB1c2VycyB3b3VsZCBoYXZlIHRvXG4gICAgIHJlaW1wbGVtZW50IHRoZSBcIlByb2dyYW0gbm90IGxpbmtlZCB3aXRoIC1nLCBzb3JyeVwiIGxvZ2ljXG4gICAgIHRoZW1zZWx2ZXMuICopXG4gIG1hdGNoIGNvbnZlcnRfcmF3X2JhY2t0cmFjZSByYXdfYmFja3RyYWNlIHdpdGhcbiAgICB8IE5vbmUgLT4gTm9uZVxuICAgIHwgU29tZSBiYWNrdHJhY2UgLT5cbiAgICAgIGxldCB1c2FibGVfc2xvdCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgVW5rbm93bl9sb2NhdGlvbiBfIC0+IGZhbHNlXG4gICAgICAgIHwgS25vd25fbG9jYXRpb24gXyAtPiB0cnVlIGluXG4gICAgICBsZXQgcmVjIGV4aXN0c191c2FibGUgPSBmdW5jdGlvblxuICAgICAgICB8ICgtMSkgLT4gZmFsc2VcbiAgICAgICAgfCBpIC0+IHVzYWJsZV9zbG90IGJhY2t0cmFjZS4oaSkgfHwgZXhpc3RzX3VzYWJsZSAoaSAtIDEpIGluXG4gICAgICBpZiBleGlzdHNfdXNhYmxlIChBcnJheS5sZW5ndGggYmFja3RyYWNlIC0gMSlcbiAgICAgIHRoZW4gU29tZSBiYWNrdHJhY2VcbiAgICAgIGVsc2UgTm9uZVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RzX29mX3Jhd19lbnRyeSBlbnRyeSA9XG4gIGJhY2t0cmFjZV9zbG90cyBbfCBlbnRyeSB8XVxuXG5tb2R1bGUgU2xvdCA9IHN0cnVjdFxuICB0eXBlIHQgPSBiYWNrdHJhY2Vfc2xvdFxuICBsZXQgZm9ybWF0ID0gZm9ybWF0X2JhY2t0cmFjZV9zbG90XG4gIGxldCBpc19yYWlzZSA9IGJhY2t0cmFjZV9zbG90X2lzX3JhaXNlXG4gIGxldCBpc19pbmxpbmUgPSBiYWNrdHJhY2Vfc2xvdF9pc19pbmxpbmVcbiAgbGV0IGxvY2F0aW9uID0gYmFja3RyYWNlX3Nsb3RfbG9jYXRpb25cbiAgbGV0IG5hbWUgPSBiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lXG5lbmRcblxubGV0IHJhd19iYWNrdHJhY2VfbGVuZ3RoIGJ0ID0gQXJyYXkubGVuZ3RoIGJ0XG5cbmV4dGVybmFsIGdldF9yYXdfYmFja3RyYWNlX3Nsb3QgOlxuICByYXdfYmFja3RyYWNlIC0+IGludCAtPiByYXdfYmFja3RyYWNlX3Nsb3QgPSBcImNhbWxfcmF3X2JhY2t0cmFjZV9zbG90XCJcblxuZXh0ZXJuYWwgZ2V0X3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90IDpcbiAgcmF3X2JhY2t0cmFjZV9zbG90IC0+IHJhd19iYWNrdHJhY2Vfc2xvdCBvcHRpb25cbiAgPSBcImNhbWxfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3RcIlxuXG4oKiBjb25mdXNpbmdseSBuYW1lZDpcbiAgIHJldHVybnMgdGhlICpzdHJpbmcqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdsb2JhbCBjdXJyZW50IGJhY2t0cmFjZSAqKVxubGV0IGdldF9iYWNrdHJhY2UgKCkgPSByYXdfYmFja3RyYWNlX3RvX3N0cmluZyAoZ2V0X3Jhd19iYWNrdHJhY2UgKCkpXG5cbmV4dGVybmFsIHJlY29yZF9iYWNrdHJhY2U6IGJvb2wgLT4gdW5pdCA9IFwiY2FtbF9yZWNvcmRfYmFja3RyYWNlXCJcbmV4dGVybmFsIGJhY2t0cmFjZV9zdGF0dXM6IHVuaXQgLT4gYm9vbCA9IFwiY2FtbF9iYWNrdHJhY2Vfc3RhdHVzXCJcblxubGV0IHJlYyByZWdpc3Rlcl9wcmludGVyIGZuID1cbiAgbGV0IG9sZF9wcmludGVycyA9IEF0b21pYy5nZXQgcHJpbnRlcnMgaW5cbiAgbGV0IG5ld19wcmludGVycyA9IGZuIDo6IG9sZF9wcmludGVycyBpblxuICBsZXQgc3VjY2VzcyA9IEF0b21pYy5jb21wYXJlX2FuZF9zZXQgcHJpbnRlcnMgb2xkX3ByaW50ZXJzIG5ld19wcmludGVycyBpblxuICBpZiBub3Qgc3VjY2VzcyB0aGVuIHJlZ2lzdGVyX3ByaW50ZXIgZm5cblxuZXh0ZXJuYWwgZ2V0X2NhbGxzdGFjazogaW50IC0+IHJhd19iYWNrdHJhY2UgPSBcImNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrXCJcblxubGV0IGV4bl9zbG90IHggPVxuICBsZXQgeCA9IE9iai5yZXByIHggaW5cbiAgaWYgT2JqLnRhZyB4ID0gMCB0aGVuIE9iai5maWVsZCB4IDAgZWxzZSB4XG5cbmxldCBleG5fc2xvdF9pZCB4ID1cbiAgbGV0IHNsb3QgPSBleG5fc2xvdCB4IGluXG4gIChPYmoub2JqIChPYmouZmllbGQgc2xvdCAxKSA6IGludClcblxubGV0IGV4bl9zbG90X25hbWUgeCA9XG4gIGxldCBzbG90ID0gZXhuX3Nsb3QgeCBpblxuICAoT2JqLm9iaiAoT2JqLmZpZWxkIHNsb3QgMCkgOiBzdHJpbmcpXG5cbmV4dGVybmFsIGdldF9kZWJ1Z19pbmZvX3N0YXR1cyA6IHVuaXQgLT4gaW50ID0gXCJjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzXCJcblxuKCogRGVzY3JpcHRpb25zIGZvciBlcnJvcnMgaW4gc3RhcnR1cC5oLiBTZWUgYWxzbyBiYWNrdHJhY2UuYyAqKVxubGV0IGVycm9ycyA9IFt8IFwiXCI7XG4gICgqIEZJTEVfTk9UX0ZPVU5EICopXG4gIFwiKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XFxuIFxcXG4gICAgICBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBub3QgZm91bmQpXCI7XG4gICgqIEJBRF9CWVRFQ09ERSAqKVxuICBcIihDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxcbiBcXFxuICAgICAgYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgYXBwZWFycyB0byBiZSBjb3JydXB0KVwiO1xuICAoKiBXUk9OR19NQUdJQyAqKVxuICBcIihDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxcbiBcXFxuICAgICAgYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgaGFzIHdyb25nIG1hZ2ljIG51bWJlcilcIjtcbiAgKCogTk9fRkRTICopXG4gIFwiKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XFxuIFxcXG4gICAgICBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBjYW5ub3QgYmUgb3BlbmVkO1xcbiBcXFxuICAgICAgLS0gdG9vIG1hbnkgb3BlbiBmaWxlcy4gVHJ5IHJ1bm5pbmcgd2l0aCBPQ0FNTFJVTlBBUkFNPWI9MilcIlxufF1cblxubGV0IGRlZmF1bHRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgZXhuIHJhd19iYWNrdHJhY2UgPVxuICBlcHJpbnRmIFwiRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbiAlc1xcblwiICh0b19zdHJpbmcgZXhuKTtcbiAgcHJpbnRfcmF3X2JhY2t0cmFjZSBzdGRlcnIgcmF3X2JhY2t0cmFjZTtcbiAgbGV0IHN0YXR1cyA9IGdldF9kZWJ1Z19pbmZvX3N0YXR1cyAoKSBpblxuICBpZiBzdGF0dXMgPCAwIHRoZW5cbiAgICBwcmVycl9lbmRsaW5lIGVycm9ycy4oYWJzIHN0YXR1cyk7XG4gIGZsdXNoIHN0ZGVyclxuXG5sZXQgdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgPSByZWYgZGVmYXVsdF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlclxuXG5sZXQgc2V0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyIGZuID0gdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgOj0gZm5cblxubGV0IGVtcHR5X2JhY2t0cmFjZSA6IHJhd19iYWNrdHJhY2UgPSBbfCB8XVxuXG5sZXQgdHJ5X2dldF9yYXdfYmFja3RyYWNlICgpID1cbiAgdHJ5XG4gICAgZ2V0X3Jhd19iYWNrdHJhY2UgKClcbiAgd2l0aCBfICgqIE91dF9vZl9tZW1vcnk/ICopIC0+XG4gICAgZW1wdHlfYmFja3RyYWNlXG5cbmxldCBoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uJyBleG4gZGVidWdnZXJfaW5fdXNlID1cbiAgdHJ5XG4gICAgKCogR2V0IHRoZSBiYWNrdHJhY2Ugbm93LCBpbiBjYXNlIG9uZSBvZiB0aGUgW2F0X2V4aXRdIGZ1bmN0aW9uXG4gICAgICAgZGVzdHJveXMgaXQuICopXG4gICAgbGV0IHJhd19iYWNrdHJhY2UgPVxuICAgICAgaWYgZGVidWdnZXJfaW5fdXNlICgqIFNhbWUgdGVzdCBhcyBpbiBbcnVudGltZS9wcmludGV4Yy5jXSAqKSB0aGVuXG4gICAgICAgIGVtcHR5X2JhY2t0cmFjZVxuICAgICAgZWxzZVxuICAgICAgICB0cnlfZ2V0X3Jhd19iYWNrdHJhY2UgKClcbiAgICBpblxuICAgICh0cnkgU3RkbGliLmRvX2F0X2V4aXQgKCkgd2l0aCBfIC0+ICgpKTtcbiAgICB0cnlcbiAgICAgICF1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciBleG4gcmF3X2JhY2t0cmFjZVxuICAgIHdpdGggZXhuJyAtPlxuICAgICAgbGV0IHJhd19iYWNrdHJhY2UnID0gdHJ5X2dldF9yYXdfYmFja3RyYWNlICgpIGluXG4gICAgICBlcHJpbnRmIFwiRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbiAlc1xcblwiICh0b19zdHJpbmcgZXhuKTtcbiAgICAgIHByaW50X3Jhd19iYWNrdHJhY2Ugc3RkZXJyIHJhd19iYWNrdHJhY2U7XG4gICAgICBlcHJpbnRmIFwiRmF0YWwgZXJyb3IgaW4gdW5jYXVnaHQgZXhjZXB0aW9uIGhhbmRsZXI6IGV4Y2VwdGlvbiAlc1xcblwiXG4gICAgICAgICh0b19zdHJpbmcgZXhuJyk7XG4gICAgICBwcmludF9yYXdfYmFja3RyYWNlIHN0ZGVyciByYXdfYmFja3RyYWNlJztcbiAgICAgIGZsdXNoIHN0ZGVyclxuICB3aXRoXG4gICAgfCBPdXRfb2ZfbWVtb3J5IC0+XG4gICAgICAgIHByZXJyX2VuZGxpbmVcbiAgICAgICAgICBcIkZhdGFsIGVycm9yOiBvdXQgb2YgbWVtb3J5IGluIHVuY2F1Z2h0IGV4Y2VwdGlvbiBoYW5kbGVyXCJcblxuKCogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgW2NhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uXSBpblxuICAgW3J1bnRpbWUvcHJpbnRleGMuY10gd2hpY2ggZXhwZWN0cyBubyBleGNlcHRpb24gaXMgcmFpc2VkLiAqKVxubGV0IGhhbmRsZV91bmNhdWdodF9leGNlcHRpb24gZXhuIGRlYnVnZ2VyX2luX3VzZSA9XG4gIHRyeVxuICAgIGhhbmRsZV91bmNhdWdodF9leGNlcHRpb24nIGV4biBkZWJ1Z2dlcl9pbl91c2VcbiAgd2l0aCBfIC0+XG4gICAgKCogVGhlcmUgaXMgbm90IG11Y2ggd2UgY2FuIGRvIGF0IHRoaXMgcG9pbnQgKilcbiAgICAoKVxuXG5leHRlcm5hbCByZWdpc3Rlcl9uYW1lZF92YWx1ZSA6IHN0cmluZyAtPiAnYSAtPiB1bml0XG4gID0gXCJjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlXCJcblxubGV0ICgpID1cbiAgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgXCJQcmludGV4Yy5oYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uXCJcbiAgICBoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmV4dGVybmFsIGlkIDogJ2EgLT4gJ2EgPSBcIiVpZGVudGl0eVwiXG5sZXQgY29uc3QgYyBfID0gY1xubGV0IGZsaXAgZiB4IHkgPSBmIHkgeFxubGV0IG5lZ2F0ZSBwIHYgPSBub3QgKHAgdilcblxuZXhjZXB0aW9uIEZpbmFsbHlfcmFpc2VkIG9mIGV4blxuXG5sZXQgKCkgPSBQcmludGV4Yy5yZWdpc3Rlcl9wcmludGVyIEBAIGZ1bmN0aW9uXG58IEZpbmFsbHlfcmFpc2VkIGV4biAtPiBTb21lIChcIkZ1bi5GaW5hbGx5X3JhaXNlZDogXCIgXiBQcmludGV4Yy50b19zdHJpbmcgZXhuKVxufCBfIC0+IE5vbmVcblxubGV0IHByb3RlY3QgfihmaW5hbGx5IDogdW5pdCAtPiB1bml0KSB3b3JrID1cbiAgbGV0IGZpbmFsbHlfbm9fZXhuICgpID1cbiAgICB0cnkgZmluYWxseSAoKSB3aXRoIGUgLT5cbiAgICAgIGxldCBidCA9IFByaW50ZXhjLmdldF9yYXdfYmFja3RyYWNlICgpIGluXG4gICAgICBQcmludGV4Yy5yYWlzZV93aXRoX2JhY2t0cmFjZSAoRmluYWxseV9yYWlzZWQgZSkgYnRcbiAgaW5cbiAgbWF0Y2ggd29yayAoKSB3aXRoXG4gIHwgcmVzdWx0IC0+IGZpbmFsbHlfbm9fZXhuICgpIDsgcmVzdWx0XG4gIHwgZXhjZXB0aW9uIHdvcmtfZXhuIC0+XG4gICAgICBsZXQgd29ya19idCA9IFByaW50ZXhjLmdldF9yYXdfYmFja3RyYWNlICgpIGluXG4gICAgICBmaW5hbGx5X25vX2V4biAoKSA7XG4gICAgICBQcmludGV4Yy5yYWlzZV93aXRoX2JhY2t0cmFjZSB3b3JrX2V4biB3b3JrX2J0XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgIEphY3F1ZXMtSGVucmkgSm91cmRhbiwgcHJvamV0IEdhbGxpdW0sIElOUklBIFBhcmlzICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2LTIwMTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSAgICopXG4oKiAgICAgZXQgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgc3RhdCA9IHtcbiAgbWlub3Jfd29yZHMgOiBmbG9hdDtcbiAgcHJvbW90ZWRfd29yZHMgOiBmbG9hdDtcbiAgbWFqb3Jfd29yZHMgOiBmbG9hdDtcbiAgbWlub3JfY29sbGVjdGlvbnMgOiBpbnQ7XG4gIG1ham9yX2NvbGxlY3Rpb25zIDogaW50O1xuICBoZWFwX3dvcmRzIDogaW50O1xuICBoZWFwX2NodW5rcyA6IGludDtcbiAgbGl2ZV93b3JkcyA6IGludDtcbiAgbGl2ZV9ibG9ja3MgOiBpbnQ7XG4gIGZyZWVfd29yZHMgOiBpbnQ7XG4gIGZyZWVfYmxvY2tzIDogaW50O1xuICBsYXJnZXN0X2ZyZWUgOiBpbnQ7XG4gIGZyYWdtZW50cyA6IGludDtcbiAgY29tcGFjdGlvbnMgOiBpbnQ7XG4gIHRvcF9oZWFwX3dvcmRzIDogaW50O1xuICBzdGFja19zaXplIDogaW50O1xuICBmb3JjZWRfbWFqb3JfY29sbGVjdGlvbnM6IGludDtcbn1cblxudHlwZSBjb250cm9sID0ge1xuICBtdXRhYmxlIG1pbm9yX2hlYXBfc2l6ZSA6IGludDtcbiAgbXV0YWJsZSBtYWpvcl9oZWFwX2luY3JlbWVudCA6IGludDtcbiAgbXV0YWJsZSBzcGFjZV9vdmVyaGVhZCA6IGludDtcbiAgbXV0YWJsZSB2ZXJib3NlIDogaW50O1xuICBtdXRhYmxlIG1heF9vdmVyaGVhZCA6IGludDtcbiAgbXV0YWJsZSBzdGFja19saW1pdCA6IGludDtcbiAgbXV0YWJsZSBhbGxvY2F0aW9uX3BvbGljeSA6IGludDtcbiAgd2luZG93X3NpemUgOiBpbnQ7XG4gIGN1c3RvbV9tYWpvcl9yYXRpbyA6IGludDtcbiAgY3VzdG9tX21pbm9yX3JhdGlvIDogaW50O1xuICBjdXN0b21fbWlub3JfbWF4X3NpemUgOiBpbnQ7XG59XG5cbmV4dGVybmFsIHN0YXQgOiB1bml0IC0+IHN0YXQgPSBcImNhbWxfZ2Nfc3RhdFwiXG5leHRlcm5hbCBxdWlja19zdGF0IDogdW5pdCAtPiBzdGF0ID0gXCJjYW1sX2djX3F1aWNrX3N0YXRcIlxuZXh0ZXJuYWwgY291bnRlcnMgOiB1bml0IC0+IChmbG9hdCAqIGZsb2F0ICogZmxvYXQpID0gXCJjYW1sX2djX2NvdW50ZXJzXCJcbmV4dGVybmFsIG1pbm9yX3dvcmRzIDogdW5pdCAtPiAoZmxvYXQgW0B1bmJveGVkXSlcbiAgPSBcImNhbWxfZ2NfbWlub3Jfd29yZHNcIiBcImNhbWxfZ2NfbWlub3Jfd29yZHNfdW5ib3hlZFwiXG5leHRlcm5hbCBnZXQgOiB1bml0IC0+IGNvbnRyb2wgPSBcImNhbWxfZ2NfZ2V0XCJcbmV4dGVybmFsIHNldCA6IGNvbnRyb2wgLT4gdW5pdCA9IFwiY2FtbF9nY19zZXRcIlxuZXh0ZXJuYWwgbWlub3IgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfbWlub3JcIlxuZXh0ZXJuYWwgbWFqb3Jfc2xpY2UgOiBpbnQgLT4gaW50ID0gXCJjYW1sX2djX21ham9yX3NsaWNlXCJcbmV4dGVybmFsIG1ham9yIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX21ham9yXCJcbmV4dGVybmFsIGZ1bGxfbWFqb3IgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfZnVsbF9tYWpvclwiXG5leHRlcm5hbCBjb21wYWN0IDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX2NvbXBhY3Rpb25cIlxuZXh0ZXJuYWwgZ2V0X21pbm9yX2ZyZWUgOiB1bml0IC0+IGludCA9IFwiY2FtbF9nZXRfbWlub3JfZnJlZVwiXG5leHRlcm5hbCBnZXRfYnVja2V0IDogaW50IC0+IGludCA9IFwiY2FtbF9nZXRfbWFqb3JfYnVja2V0XCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGdldF9jcmVkaXQgOiB1bml0IC0+IGludCA9IFwiY2FtbF9nZXRfbWFqb3JfY3JlZGl0XCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGh1Z2VfZmFsbGJhY2tfY291bnQgOiB1bml0IC0+IGludCA9IFwiY2FtbF9nY19odWdlX2ZhbGxiYWNrX2NvdW50XCJcbmV4dGVybmFsIGV2ZW50bG9nX3BhdXNlIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2V2ZW50bG9nX3BhdXNlXCJcbmV4dGVybmFsIGV2ZW50bG9nX3Jlc3VtZSA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9ldmVudGxvZ19yZXN1bWVcIlxuXG5vcGVuIFByaW50ZlxuXG5sZXQgcHJpbnRfc3RhdCBjID1cbiAgbGV0IHN0ID0gc3RhdCAoKSBpblxuICBmcHJpbnRmIGMgXCJtaW5vcl9jb2xsZWN0aW9uczogICAgICAlZFxcblwiIHN0Lm1pbm9yX2NvbGxlY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJtYWpvcl9jb2xsZWN0aW9uczogICAgICAlZFxcblwiIHN0Lm1ham9yX2NvbGxlY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJjb21wYWN0aW9uczogICAgICAgICAgICAlZFxcblwiIHN0LmNvbXBhY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJmb3JjZWRfbWFqb3JfY29sbGVjdGlvbnM6ICVkXFxuXCIgc3QuZm9yY2VkX21ham9yX2NvbGxlY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJcXG5cIjtcbiAgbGV0IGwxID0gU3RyaW5nLmxlbmd0aCAoc3ByaW50ZiBcIiUuMGZcIiBzdC5taW5vcl93b3JkcykgaW5cbiAgZnByaW50ZiBjIFwibWlub3Jfd29yZHM6ICAgICUqLjBmXFxuXCIgbDEgc3QubWlub3Jfd29yZHM7XG4gIGZwcmludGYgYyBcInByb21vdGVkX3dvcmRzOiAlKi4wZlxcblwiIGwxIHN0LnByb21vdGVkX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJtYWpvcl93b3JkczogICAgJSouMGZcXG5cIiBsMSBzdC5tYWpvcl93b3JkcztcbiAgZnByaW50ZiBjIFwiXFxuXCI7XG4gIGxldCBsMiA9IFN0cmluZy5sZW5ndGggKHNwcmludGYgXCIlZFwiIHN0LnRvcF9oZWFwX3dvcmRzKSBpblxuICBmcHJpbnRmIGMgXCJ0b3BfaGVhcF93b3JkczogJSpkXFxuXCIgbDIgc3QudG9wX2hlYXBfd29yZHM7XG4gIGZwcmludGYgYyBcImhlYXBfd29yZHM6ICAgICAlKmRcXG5cIiBsMiBzdC5oZWFwX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJsaXZlX3dvcmRzOiAgICAgJSpkXFxuXCIgbDIgc3QubGl2ZV93b3JkcztcbiAgZnByaW50ZiBjIFwiZnJlZV93b3JkczogICAgICUqZFxcblwiIGwyIHN0LmZyZWVfd29yZHM7XG4gIGZwcmludGYgYyBcImxhcmdlc3RfZnJlZTogICAlKmRcXG5cIiBsMiBzdC5sYXJnZXN0X2ZyZWU7XG4gIGZwcmludGYgYyBcImZyYWdtZW50czogICAgICAlKmRcXG5cIiBsMiBzdC5mcmFnbWVudHM7XG4gIGZwcmludGYgYyBcIlxcblwiO1xuICBmcHJpbnRmIGMgXCJsaXZlX2Jsb2NrczogJWRcXG5cIiBzdC5saXZlX2Jsb2NrcztcbiAgZnByaW50ZiBjIFwiZnJlZV9ibG9ja3M6ICVkXFxuXCIgc3QuZnJlZV9ibG9ja3M7XG4gIGZwcmludGYgYyBcImhlYXBfY2h1bmtzOiAlZFxcblwiIHN0LmhlYXBfY2h1bmtzXG5cblxubGV0IGFsbG9jYXRlZF9ieXRlcyAoKSA9XG4gIGxldCAobWksIHBybywgbWEpID0gY291bnRlcnMgKCkgaW5cbiAgKG1pICsuIG1hIC0uIHBybykgKi4gZmxvYXRfb2ZfaW50IChTeXMud29yZF9zaXplIC8gOClcblxuXG5leHRlcm5hbCBmaW5hbGlzZSA6ICgnYSAtPiB1bml0KSAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2ZpbmFsX3JlZ2lzdGVyXCJcbmV4dGVybmFsIGZpbmFsaXNlX2xhc3QgOiAodW5pdCAtPiB1bml0KSAtPiAnYSAtPiB1bml0ID1cbiAgXCJjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlXCJcbmV4dGVybmFsIGZpbmFsaXNlX3JlbGVhc2UgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZmluYWxfcmVsZWFzZVwiXG5cblxudHlwZSBhbGFybSA9IGJvb2wgcmVmXG50eXBlIGFsYXJtX3JlYyA9IHthY3RpdmUgOiBhbGFybTsgZiA6IHVuaXQgLT4gdW5pdH1cblxubGV0IHJlYyBjYWxsX2FsYXJtIGFyZWMgPVxuICBpZiAhKGFyZWMuYWN0aXZlKSB0aGVuIGJlZ2luXG4gICAgZmluYWxpc2UgY2FsbF9hbGFybSBhcmVjO1xuICAgIGFyZWMuZiAoKTtcbiAgZW5kXG5cblxubGV0IGNyZWF0ZV9hbGFybSBmID1cbiAgbGV0IGFyZWMgPSB7IGFjdGl2ZSA9IHJlZiB0cnVlOyBmID0gZiB9IGluXG4gIGZpbmFsaXNlIGNhbGxfYWxhcm0gYXJlYztcbiAgYXJlYy5hY3RpdmVcblxuXG5sZXQgZGVsZXRlX2FsYXJtIGEgPSBhIDo9IGZhbHNlXG5cbm1vZHVsZSBNZW1wcm9mID1cbiAgc3RydWN0XG4gICAgdHlwZSBhbGxvY2F0aW9uX3NvdXJjZSA9IE5vcm1hbCB8IE1hcnNoYWwgfCBDdXN0b21cbiAgICB0eXBlIGFsbG9jYXRpb24gPVxuICAgICAgeyBuX3NhbXBsZXMgOiBpbnQ7XG4gICAgICAgIHNpemUgOiBpbnQ7XG4gICAgICAgIHNvdXJjZSA6IGFsbG9jYXRpb25fc291cmNlO1xuICAgICAgICBjYWxsc3RhY2sgOiBQcmludGV4Yy5yYXdfYmFja3RyYWNlIH1cblxuICAgIHR5cGUgKCdtaW5vciwgJ21ham9yKSB0cmFja2VyID0ge1xuICAgICAgYWxsb2NfbWlub3I6IGFsbG9jYXRpb24gLT4gJ21pbm9yIG9wdGlvbjtcbiAgICAgIGFsbG9jX21ham9yOiBhbGxvY2F0aW9uIC0+ICdtYWpvciBvcHRpb247XG4gICAgICBwcm9tb3RlOiAnbWlub3IgLT4gJ21ham9yIG9wdGlvbjtcbiAgICAgIGRlYWxsb2NfbWlub3I6ICdtaW5vciAtPiB1bml0O1xuICAgICAgZGVhbGxvY19tYWpvcjogJ21ham9yIC0+IHVuaXQ7XG4gICAgfVxuXG4gICAgbGV0IG51bGxfdHJhY2tlciA9IHtcbiAgICAgIGFsbG9jX21pbm9yID0gKGZ1biBfIC0+IE5vbmUpO1xuICAgICAgYWxsb2NfbWFqb3IgPSAoZnVuIF8gLT4gTm9uZSk7XG4gICAgICBwcm9tb3RlID0gKGZ1biBfIC0+IE5vbmUpO1xuICAgICAgZGVhbGxvY19taW5vciA9IChmdW4gXyAtPiAoKSk7XG4gICAgICBkZWFsbG9jX21ham9yID0gKGZ1biBfIC0+ICgpKTtcbiAgICB9XG5cbiAgICBleHRlcm5hbCBjX3N0YXJ0IDpcbiAgICAgIGZsb2F0IC0+IGludCAtPiAoJ21pbm9yLCAnbWFqb3IpIHRyYWNrZXIgLT4gdW5pdFxuICAgICAgPSBcImNhbWxfbWVtcHJvZl9zdGFydFwiXG5cbiAgICBsZXQgc3RhcnRcbiAgICAgIH5zYW1wbGluZ19yYXRlXG4gICAgICA/KGNhbGxzdGFja19zaXplID0gbWF4X2ludClcbiAgICAgIHRyYWNrZXIgPVxuICAgICAgY19zdGFydCBzYW1wbGluZ19yYXRlIGNhbGxzdGFja19zaXplIHRyYWNrZXJcblxuICAgIGV4dGVybmFsIHN0b3AgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfbWVtcHJvZl9zdG9wXCJcbiAgZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1lc3NhZ2UgZGlnZXN0IChNRDUpICopXG5cbnR5cGUgdCA9IHN0cmluZ1xuXG5sZXQgY29tcGFyZSA9IFN0cmluZy5jb21wYXJlXG5sZXQgZXF1YWwgPSBTdHJpbmcuZXF1YWxcblxuZXh0ZXJuYWwgdW5zYWZlX3N0cmluZzogc3RyaW5nIC0+IGludCAtPiBpbnQgLT4gdCA9IFwiY2FtbF9tZDVfc3RyaW5nXCJcbmV4dGVybmFsIGNoYW5uZWw6IGluX2NoYW5uZWwgLT4gaW50IC0+IHQgPSBcImNhbWxfbWQ1X2NoYW5cIlxuXG5sZXQgc3RyaW5nIHN0ciA9XG4gIHVuc2FmZV9zdHJpbmcgc3RyIDAgKFN0cmluZy5sZW5ndGggc3RyKVxuXG5sZXQgYnl0ZXMgYiA9IHN0cmluZyAoQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBiKVxuXG5sZXQgc3Vic3RyaW5nIHN0ciBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IFN0cmluZy5sZW5ndGggc3RyIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJEaWdlc3Quc3Vic3RyaW5nXCJcbiAgZWxzZSB1bnNhZmVfc3RyaW5nIHN0ciBvZnMgbGVuXG5cbmxldCBzdWJieXRlcyBiIG9mcyBsZW4gPSBzdWJzdHJpbmcgKEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgYikgb2ZzIGxlblxuXG5sZXQgZmlsZSBmaWxlbmFtZSA9XG4gIGxldCBpYyA9IG9wZW5faW5fYmluIGZpbGVuYW1lIGluXG4gIG1hdGNoIGNoYW5uZWwgaWMgKC0xKSB3aXRoXG4gICAgfCBkIC0+IGNsb3NlX2luIGljOyBkXG4gICAgfCBleGNlcHRpb24gZSAtPiBjbG9zZV9pbiBpYzsgcmFpc2UgZVxuXG5sZXQgb3V0cHV0IGNoYW4gZGlnZXN0ID1cbiAgb3V0cHV0X3N0cmluZyBjaGFuIGRpZ2VzdFxuXG5sZXQgaW5wdXQgY2hhbiA9IHJlYWxseV9pbnB1dF9zdHJpbmcgY2hhbiAxNlxuXG5sZXQgY2hhcl9oZXggbiA9XG4gIENoYXIudW5zYWZlX2NociAobiArIGlmIG4gPCAxMCB0aGVuIENoYXIuY29kZSAnMCcgZWxzZSAoQ2hhci5jb2RlICdhJyAtIDEwKSlcblxubGV0IHRvX2hleCBkID1cbiAgaWYgU3RyaW5nLmxlbmd0aCBkIDw+IDE2IHRoZW4gaW52YWxpZF9hcmcgXCJEaWdlc3QudG9faGV4XCI7XG4gIGxldCByZXN1bHQgPSBCeXRlcy5jcmVhdGUgMzIgaW5cbiAgZm9yIGkgPSAwIHRvIDE1IGRvXG4gICAgbGV0IHggPSBDaGFyLmNvZGUgZC5baV0gaW5cbiAgICBCeXRlcy51bnNhZmVfc2V0IHJlc3VsdCAoaSoyKSAoY2hhcl9oZXggKHggbHNyIDQpKTtcbiAgICBCeXRlcy51bnNhZmVfc2V0IHJlc3VsdCAoaSoyKzEpIChjaGFyX2hleCAoeCBsYW5kIDB4MGYpKTtcbiAgZG9uZTtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXN1bHRcblxubGV0IGZyb21faGV4IHMgPVxuICBpZiBTdHJpbmcubGVuZ3RoIHMgPD4gMzIgdGhlbiBpbnZhbGlkX2FyZyBcIkRpZ2VzdC5mcm9tX2hleFwiO1xuICBsZXQgZGlnaXQgYyA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAnMCcuLic5JyAtPiBDaGFyLmNvZGUgYyAtIENoYXIuY29kZSAnMCdcbiAgICB8ICdBJy4uJ0YnIC0+IENoYXIuY29kZSBjIC0gQ2hhci5jb2RlICdBJyArIDEwXG4gICAgfCAnYScuLidmJyAtPiBDaGFyLmNvZGUgYyAtIENoYXIuY29kZSAnYScgKyAxMFxuICAgIHwgXyAtPiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCBcIkRpZ2VzdC5mcm9tX2hleFwiKVxuICBpblxuICBsZXQgYnl0ZSBpID0gZGlnaXQgcy5baV0gbHNsIDQgKyBkaWdpdCBzLltpKzFdIGluXG4gIGxldCByZXN1bHQgPSBCeXRlcy5jcmVhdGUgMTYgaW5cbiAgZm9yIGkgPSAwIHRvIDE1IGRvXG4gICAgQnl0ZXMuc2V0IHJlc3VsdCBpIChDaGFyLmNociAoYnl0ZSAoMiAqIGkpKSk7XG4gIGRvbmU7XG4gIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzdWx0XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRvclxuICAgVGhpcyBpcyBhIGxhZ2dlZC1GaWJvbmFjY2kgRig1NSwgMjQsICspIHdpdGggYSBtb2RpZmllZCBhZGRpdGlvblxuICAgZnVuY3Rpb24gdG8gZW5oYW5jZSB0aGUgbWl4aW5nIG9mIGJpdHMuXG4gICBJZiB3ZSB1c2Ugbm9ybWFsIGFkZGl0aW9uLCB0aGUgbG93LW9yZGVyIGJpdCBmYWlscyB0ZXN0cyAxIGFuZCA3XG4gICBvZiB0aGUgRGllaGFyZCB0ZXN0IHN1aXRlLCBhbmQgYml0cyAxIGFuZCAyIGFsc28gZmFpbCB0ZXN0IDcuXG4gICBJZiB3ZSB1c2UgbXVsdGlwbGljYXRpb24gYXMgc3VnZ2VzdGVkIGJ5IE1hcnNhZ2xpYSwgaXQgZG9lc24ndCBmYXJlXG4gICBtdWNoIGJldHRlci5cbiAgIEJ5IG1peGluZyB0aGUgYml0cyBvZiBvbmUgb2YgdGhlIG51bWJlcnMgYmVmb3JlIGFkZGl0aW9uIChYT1IgdGhlXG4gICA1IGhpZ2gtb3JkZXIgYml0cyBpbnRvIHRoZSBsb3ctb3JkZXIgYml0cyksIHdlIGdldCBhIGdlbmVyYXRvciB0aGF0XG4gICBwYXNzZXMgYWxsIHRoZSBEaWVoYXJkIHRlc3RzLlxuKilcblxuZXh0ZXJuYWwgcmFuZG9tX3NlZWQ6IHVuaXQgLT4gaW50IGFycmF5ID0gXCJjYW1sX3N5c19yYW5kb21fc2VlZFwiXG5cbm1vZHVsZSBTdGF0ZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9IHsgc3QgOiBpbnQgYXJyYXk7IG11dGFibGUgaWR4IDogaW50IH1cblxuICBsZXQgbmV3X3N0YXRlICgpID0geyBzdCA9IEFycmF5Lm1ha2UgNTUgMDsgaWR4ID0gMCB9XG4gIGxldCBhc3NpZ24gc3QxIHN0MiA9XG4gICAgQXJyYXkuYmxpdCBzdDIuc3QgMCBzdDEuc3QgMCA1NTtcbiAgICBzdDEuaWR4IDwtIHN0Mi5pZHhcblxuXG4gIGxldCBmdWxsX2luaXQgcyBzZWVkID1cbiAgICBsZXQgY29tYmluZSBhY2N1IHggPSBEaWdlc3Quc3RyaW5nIChhY2N1IF4gSW50LnRvX3N0cmluZyB4KSBpblxuICAgIGxldCBleHRyYWN0IGQgPVxuICAgICAgQ2hhci5jb2RlIGQuWzBdICsgKENoYXIuY29kZSBkLlsxXSBsc2wgOCkgKyAoQ2hhci5jb2RlIGQuWzJdIGxzbCAxNilcbiAgICAgICsgKENoYXIuY29kZSBkLlszXSBsc2wgMjQpXG4gICAgaW5cbiAgICBsZXQgc2VlZCA9IGlmIEFycmF5Lmxlbmd0aCBzZWVkID0gMCB0aGVuIFt8IDAgfF0gZWxzZSBzZWVkIGluXG4gICAgbGV0IGwgPSBBcnJheS5sZW5ndGggc2VlZCBpblxuICAgIGZvciBpID0gMCB0byA1NCBkb1xuICAgICAgcy5zdC4oaSkgPC0gaTtcbiAgICBkb25lO1xuICAgIGxldCBhY2N1ID0gcmVmIFwieFwiIGluXG4gICAgZm9yIGkgPSAwIHRvIDU0ICsgSW50Lm1heCA1NSBsIGRvXG4gICAgICBsZXQgaiA9IGkgbW9kIDU1IGluXG4gICAgICBsZXQgayA9IGkgbW9kIGwgaW5cbiAgICAgIGFjY3UgOj0gY29tYmluZSAhYWNjdSBzZWVkLihrKTtcbiAgICAgIHMuc3QuKGopIDwtIChzLnN0LihqKSBseG9yIGV4dHJhY3QgIWFjY3UpIGxhbmQgMHgzRkZGRkZGRjsgICgqIFBSIzU1NzUgKilcbiAgICBkb25lO1xuICAgIHMuaWR4IDwtIDBcblxuXG4gIGxldCBtYWtlIHNlZWQgPVxuICAgIGxldCByZXN1bHQgPSBuZXdfc3RhdGUgKCkgaW5cbiAgICBmdWxsX2luaXQgcmVzdWx0IHNlZWQ7XG4gICAgcmVzdWx0XG5cblxuICBsZXQgbWFrZV9zZWxmX2luaXQgKCkgPSBtYWtlIChyYW5kb21fc2VlZCAoKSlcblxuICBsZXQgY29weSBzID1cbiAgICBsZXQgcmVzdWx0ID0gbmV3X3N0YXRlICgpIGluXG4gICAgYXNzaWduIHJlc3VsdCBzO1xuICAgIHJlc3VsdFxuXG5cbiAgKCogUmV0dXJucyAzMCByYW5kb20gYml0cyBhcyBhbiBpbnRlZ2VyIDAgPD0geCA8IDEwNzM3NDE4MjQgKilcbiAgbGV0IGJpdHMgcyA9XG4gICAgcy5pZHggPC0gKHMuaWR4ICsgMSkgbW9kIDU1O1xuICAgIGxldCBjdXJ2YWwgPSBzLnN0LihzLmlkeCkgaW5cbiAgICBsZXQgbmV3dmFsID0gcy5zdC4oKHMuaWR4ICsgMjQpIG1vZCA1NSlcbiAgICAgICAgICAgICAgICAgKyAoY3VydmFsIGx4b3IgKChjdXJ2YWwgbHNyIDI1KSBsYW5kIDB4MUYpKSBpblxuICAgIGxldCBuZXd2YWwzMCA9IG5ld3ZhbCBsYW5kIDB4M0ZGRkZGRkYgaW4gICgqIFBSIzU1NzUgKilcbiAgICBzLnN0LihzLmlkeCkgPC0gbmV3dmFsMzA7XG4gICAgbmV3dmFsMzBcblxuXG4gIGxldCByZWMgaW50YXV4IHMgbiA9XG4gICAgbGV0IHIgPSBiaXRzIHMgaW5cbiAgICBsZXQgdiA9IHIgbW9kIG4gaW5cbiAgICBpZiByIC0gdiA+IDB4M0ZGRkZGRkYgLSBuICsgMSB0aGVuIGludGF1eCBzIG4gZWxzZSB2XG5cbiAgbGV0IGludCBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA+IDB4M0ZGRkZGRkYgfHwgYm91bmQgPD0gMFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJSYW5kb20uaW50XCJcbiAgICBlbHNlIGludGF1eCBzIGJvdW5kXG5cbiAgbGV0IHJlYyBpbnQ2M2F1eCBzIG4gPVxuICAgIGxldCBtYXhfaW50XzMyID0gKDEgbHNsIDMwKSArIDB4M0ZGRkZGRkYgaW4gKCogMHg3RkZGRkZGRiAqKVxuICAgIGxldCBiMSA9IGJpdHMgcyBpblxuICAgIGxldCBiMiA9IGJpdHMgcyBpblxuICAgIGxldCAociwgbWF4X2ludCkgPVxuICAgICAgaWYgbiA8PSBtYXhfaW50XzMyIHRoZW5cbiAgICAgICAgKCogMzEgcmFuZG9tIGJpdHMgb24gYm90aCA2NC1iaXQgT0NhbWwgYW5kIEphdmFTY3JpcHQuXG4gICAgICAgICAgIFVzZSB1cHBlciAxNSBiaXRzIG9mIGIxIGFuZCAxNiBiaXRzIG9mIGIyLiAqKVxuICAgICAgICBsZXQgYnBvcyA9XG4gICAgICAgICAgKCgoYjIgbGFuZCAweDNGRkZDMDAwKSBsc2wgMSkgbG9yIChiMSBsc3IgMTUpKVxuICAgICAgICBpblxuICAgICAgICAgIChicG9zLCBtYXhfaW50XzMyKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgYjMgPSBiaXRzIHMgaW5cbiAgICAgICAgKCogNjIgcmFuZG9tIGJpdHMgb24gNjQtYml0IE9DYW1sOyB1bnJlYWNoYWJsZSBvbiBKYXZhU2NyaXB0LlxuICAgICAgICAgICBVc2UgdXBwZXIgMjAgYml0cyBvZiBiMSBhbmQgMjEgYml0cyBvZiBiMiBhbmQgYjMuICopXG4gICAgICAgIGxldCBicG9zID1cbiAgICAgICAgICAoKCgoYjMgbGFuZCAweDNGRkZGRTAwKSBsc2wgMTIpIGxvciAoYjIgbHNyIDkpKSBsc2wgMjApXG4gICAgICAgICAgICBsb3IgKGIxIGxzciAxMClcbiAgICAgICAgaW5cbiAgICAgICAgICAoYnBvcywgbWF4X2ludClcbiAgICBpblxuICAgIGxldCB2ID0gciBtb2QgbiBpblxuICAgIGlmIHIgLSB2ID4gbWF4X2ludCAtIG4gKyAxIHRoZW4gaW50NjNhdXggcyBuIGVsc2UgdlxuXG4gIGxldCBmdWxsX2ludCBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA8PSAwIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiUmFuZG9tLmZ1bGxfaW50XCJcbiAgICBlbHNlIGlmIGJvdW5kID4gMHgzRkZGRkZGRiB0aGVuXG4gICAgICBpbnQ2M2F1eCBzIGJvdW5kXG4gICAgZWxzZVxuICAgICAgaW50YXV4IHMgYm91bmRcblxuXG4gIGxldCByZWMgaW50MzJhdXggcyBuID1cbiAgICBsZXQgYjEgPSBJbnQzMi5vZl9pbnQgKGJpdHMgcykgaW5cbiAgICBsZXQgYjIgPSBJbnQzMi5zaGlmdF9sZWZ0IChJbnQzMi5vZl9pbnQgKGJpdHMgcyBsYW5kIDEpKSAzMCBpblxuICAgIGxldCByID0gSW50MzIubG9nb3IgYjEgYjIgaW5cbiAgICBsZXQgdiA9IEludDMyLnJlbSByIG4gaW5cbiAgICBpZiBJbnQzMi5zdWIgciB2ID4gSW50MzIuYWRkIChJbnQzMi5zdWIgSW50MzIubWF4X2ludCBuKSAxbFxuICAgIHRoZW4gaW50MzJhdXggcyBuXG4gICAgZWxzZSB2XG5cbiAgbGV0IGludDMyIHMgYm91bmQgPVxuICAgIGlmIGJvdW5kIDw9IDBsXG4gICAgdGhlbiBpbnZhbGlkX2FyZyBcIlJhbmRvbS5pbnQzMlwiXG4gICAgZWxzZSBpbnQzMmF1eCBzIGJvdW5kXG5cblxuICBsZXQgcmVjIGludDY0YXV4IHMgbiA9XG4gICAgbGV0IGIxID0gSW50NjQub2ZfaW50IChiaXRzIHMpIGluXG4gICAgbGV0IGIyID0gSW50NjQuc2hpZnRfbGVmdCAoSW50NjQub2ZfaW50IChiaXRzIHMpKSAzMCBpblxuICAgIGxldCBiMyA9IEludDY0LnNoaWZ0X2xlZnQgKEludDY0Lm9mX2ludCAoYml0cyBzIGxhbmQgNykpIDYwIGluXG4gICAgbGV0IHIgPSBJbnQ2NC5sb2dvciBiMSAoSW50NjQubG9nb3IgYjIgYjMpIGluXG4gICAgbGV0IHYgPSBJbnQ2NC5yZW0gciBuIGluXG4gICAgaWYgSW50NjQuc3ViIHIgdiA+IEludDY0LmFkZCAoSW50NjQuc3ViIEludDY0Lm1heF9pbnQgbikgMUxcbiAgICB0aGVuIGludDY0YXV4IHMgblxuICAgIGVsc2UgdlxuXG4gIGxldCBpbnQ2NCBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA8PSAwTFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJSYW5kb20uaW50NjRcIlxuICAgIGVsc2UgaW50NjRhdXggcyBib3VuZFxuXG5cbiAgbGV0IG5hdGl2ZWludCA9XG4gICAgaWYgTmF0aXZlaW50LnNpemUgPSAzMlxuICAgIHRoZW4gZnVuIHMgYm91bmQgLT4gTmF0aXZlaW50Lm9mX2ludDMyIChpbnQzMiBzIChOYXRpdmVpbnQudG9faW50MzIgYm91bmQpKVxuICAgIGVsc2UgZnVuIHMgYm91bmQgLT4gSW50NjQudG9fbmF0aXZlaW50IChpbnQ2NCBzIChJbnQ2NC5vZl9uYXRpdmVpbnQgYm91bmQpKVxuXG5cbiAgKCogUmV0dXJucyBhIGZsb2F0IDAgPD0geCA8PSAxIHdpdGggYXQgbW9zdCA2MCBiaXRzIG9mIHByZWNpc2lvbi4gKilcbiAgbGV0IHJhd2Zsb2F0IHMgPVxuICAgIGxldCBzY2FsZSA9IDEwNzM3NDE4MjQuMCAgKCogMl4zMCAqKVxuICAgIGFuZCByMSA9IFN0ZGxpYi5mbG9hdCAoYml0cyBzKVxuICAgIGFuZCByMiA9IFN0ZGxpYi5mbG9hdCAoYml0cyBzKVxuICAgIGluIChyMSAvLiBzY2FsZSArLiByMikgLy4gc2NhbGVcblxuXG4gIGxldCBmbG9hdCBzIGJvdW5kID0gcmF3ZmxvYXQgcyAqLiBib3VuZFxuXG4gIGxldCBib29sIHMgPSAoYml0cyBzIGxhbmQgMSA9IDApXG5cbiAgbGV0IGJpdHMzMiBzID1cbiAgICBsZXQgYjEgPSBJbnQzMi4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSAxNCkgaW4gICgqIDE2IGJpdHMgKilcbiAgICBsZXQgYjIgPSBJbnQzMi4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSAxNCkgaW4gICgqIDE2IGJpdHMgKilcbiAgICBJbnQzMi4obG9nb3IgYjEgKHNoaWZ0X2xlZnQgYjIgMTYpKVxuXG4gIGxldCBiaXRzNjQgcyA9XG4gICAgbGV0IGIxID0gSW50NjQuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgOSkgaW4gICgqIDIxIGJpdHMgKilcbiAgICBsZXQgYjIgPSBJbnQ2NC4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSA5KSBpbiAgKCogMjEgYml0cyAqKVxuICAgIGxldCBiMyA9IEludDY0LihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDgpIGluICAoKiAyMiBiaXRzICopXG4gICAgSW50NjQuKGxvZ29yIGIxIChsb2dvciAoc2hpZnRfbGVmdCBiMiAyMSkgKHNoaWZ0X2xlZnQgYjMgNDIpKSlcblxuICBsZXQgbmF0aXZlYml0cyA9XG4gICAgaWYgTmF0aXZlaW50LnNpemUgPSAzMlxuICAgIHRoZW4gZnVuIHMgLT4gTmF0aXZlaW50Lm9mX2ludDMyIChiaXRzMzIgcylcbiAgICBlbHNlIGZ1biBzIC0+IEludDY0LnRvX25hdGl2ZWludCAoYml0czY0IHMpXG5cbmVuZFxuXG4oKiBUaGlzIGlzIHRoZSBzdGF0ZSB5b3UgZ2V0IHdpdGggW2luaXQgMjcxODI4MThdIGFuZCB0aGVuIGFwcGx5aW5nXG4gICB0aGUgXCJsYW5kIDB4M0ZGRkZGRkZcIiBmaWx0ZXIgdG8gdGhlbS4gIFNlZSAjNTU3NSwgIzU3OTMsICM1OTc3LiAqKVxubGV0IGRlZmF1bHQgPSB7XG4gIFN0YXRlLnN0ID0gW3xcbiAgICAgIDB4M2FlMjUyMmI7IDB4MWQ4ZDQ2MzQ7IDB4MTViNGZhZDA7IDB4MThiMTRhY2U7IDB4MTJmOGEzYzQ7IDB4M2IwODZjNDc7XG4gICAgICAweDE2ZDQ2N2Q2OyAweDEwMWQ5MWM3OyAweDMyMWRmMTc3OyAweDAxNzZjMTkzOyAweDFmZjcyYmYxOyAweDFlODg5MTA5O1xuICAgICAgMHgwYjQ2NGIxODsgMHgyYjg2Yjk3YzsgMHgwODkxZGE0ODsgMHgwMzEzNzQ2MzsgMHgwODVhYzVhMTsgMHgxNWQ2MWYyZjtcbiAgICAgIDB4M2JjZWQzNTk7IDB4MjljMWMxMzI7IDB4M2E4Njc2NmU7IDB4MzY2ZDhjODY7IDB4MWY1YjYyMjI7IDB4M2NlMWI1OWY7XG4gICAgICAweDJlYmY3OGUxOyAweDI3Y2QxYjg2OyAweDI1OGYzZGMzOyAweDM4OWE4MTk0OyAweDAyZTRjNDRjOyAweDE4YzQzZjdkO1xuICAgICAgMHgwZjZlNTM0ZjsgMHgxZTdkZjM1OTsgMHgwNTVkMGI3ZTsgMHgxMGU4NGU3ZTsgMHgxMjYxOThlNDsgMHgwZTc3MjJjYjtcbiAgICAgIDB4MWNiZWRlMjg7IDB4MzM5MWI5NjQ7IDB4M2Q0MGU5MmE7IDB4MGM1OTkzM2Q7IDB4MGI4Y2QwYjc7IDB4MjRlZmZmMWM7XG4gICAgICAweDI4MDNmZGFhOyAweDA4ZWJjNzJlOyAweDBmNTIyZTMyOyAweDA1Mzk4ZWRjOyAweDIxNDRhMDRjOyAweDBhZWYzY2JkO1xuICAgICAgMHgwMWFkNDcxOTsgMHgzNWI5M2NkNjsgMHgyYTU1OWQ0ZjsgMHgxZTZmZDc2ODsgMHgyNmUyN2YzNjsgMHgxODZmMThjMztcbiAgICAgIDB4MmZiZjk2N2E7XG4gICAgfF07XG4gIFN0YXRlLmlkeCA9IDA7XG59XG5cbmxldCBiaXRzICgpID0gU3RhdGUuYml0cyBkZWZhdWx0XG5sZXQgaW50IGJvdW5kID0gU3RhdGUuaW50IGRlZmF1bHQgYm91bmRcbmxldCBmdWxsX2ludCBib3VuZCA9IFN0YXRlLmZ1bGxfaW50IGRlZmF1bHQgYm91bmRcbmxldCBpbnQzMiBib3VuZCA9IFN0YXRlLmludDMyIGRlZmF1bHQgYm91bmRcbmxldCBuYXRpdmVpbnQgYm91bmQgPSBTdGF0ZS5uYXRpdmVpbnQgZGVmYXVsdCBib3VuZFxubGV0IGludDY0IGJvdW5kID0gU3RhdGUuaW50NjQgZGVmYXVsdCBib3VuZFxubGV0IGZsb2F0IHNjYWxlID0gU3RhdGUuZmxvYXQgZGVmYXVsdCBzY2FsZVxubGV0IGJvb2wgKCkgPSBTdGF0ZS5ib29sIGRlZmF1bHRcbmxldCBiaXRzMzIgKCkgPSBTdGF0ZS5iaXRzMzIgZGVmYXVsdFxubGV0IGJpdHM2NCAoKSA9IFN0YXRlLmJpdHM2NCBkZWZhdWx0XG5sZXQgbmF0aXZlYml0cyAoKSA9IFN0YXRlLm5hdGl2ZWJpdHMgZGVmYXVsdFxuXG5sZXQgZnVsbF9pbml0IHNlZWQgPSBTdGF0ZS5mdWxsX2luaXQgZGVmYXVsdCBzZWVkXG5sZXQgaW5pdCBzZWVkID0gU3RhdGUuZnVsbF9pbml0IGRlZmF1bHQgW3wgc2VlZCB8XVxubGV0IHNlbGZfaW5pdCAoKSA9IGZ1bGxfaW5pdCAocmFuZG9tX3NlZWQoKSlcblxuKCogTWFuaXB1bGF0aW5nIHRoZSBjdXJyZW50IHN0YXRlLiAqKVxuXG5sZXQgZ2V0X3N0YXRlICgpID0gU3RhdGUuY29weSBkZWZhdWx0XG5sZXQgc2V0X3N0YXRlIHMgPSBTdGF0ZS5hc3NpZ24gZGVmYXVsdCBzXG5cbigqKioqKioqKioqKioqKioqKioqKlxuXG4oKiBUZXN0IGZ1bmN0aW9ucy4gIE5vdCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeS5cbiAgIFRoZSBbY2hpc3F1YXJlXSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIHdpdGggbiA+IDEwci5cbiAgIEl0IHJldHVybnMgYSB0cmlwbGUgKGxvdywgYWN0dWFsLCBoaWdoKS5cbiAgIElmIGxvdyA8PSBhY3R1YWwgPD0gaGlnaCwgdGhlIFtnXSBmdW5jdGlvbiBwYXNzZWQgdGhlIHRlc3QsXG4gICBvdGhlcndpc2UgaXQgZmFpbGVkLlxuXG4gIFNvbWUgcmVzdWx0czpcblxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAwMFxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAwXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMCA1MDAwXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMDAgMTAwMFxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAyNFxuaW5pdCAyOTk3OTI2NDM7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMjRcbmluaXQgMTQxNDIxMzY7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMjRcbmluaXQgMjcxODI4MTg7IGluaXRfZGlmZiAxMDI0OyBjaGlzcXVhcmUgZGlmZiAxMDAwMDAgMTAyNFxuaW5pdCAyNzE4MjgxODsgaW5pdF9kaWZmIDEwMDsgY2hpc3F1YXJlIGRpZmYgMTAwMDAwIDEwMFxuaW5pdCAyNzE4MjgxODsgaW5pdF9kaWZmMiAxMDI0OyBjaGlzcXVhcmUgZGlmZjIgMTAwMDAwIDEwMjRcbmluaXQgMjcxODI4MTg7IGluaXRfZGlmZjIgMTAwOyBjaGlzcXVhcmUgZGlmZjIgMTAwMDAwIDEwMFxuaW5pdCAxNDE0MjEzNjsgaW5pdF9kaWZmMiAxMDA7IGNoaXNxdWFyZSBkaWZmMiAxMDAwMDAgMTAwXG5pbml0IDI5OTc5MjY0MzsgaW5pdF9kaWZmMiAxMDA7IGNoaXNxdWFyZSBkaWZmMiAxMDAwMDAgMTAwXG4tIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDkzNi43NTQ0NDY3OTY2MzI0NjUsIDk5Ny41LCAxMDYzLjI0NTU1MzIwMzM2NzU0KVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgODkuNzQwMDAwMDAwMDA1MjM4NywgMTIwLilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg0ODU4LjU3ODY0Mzc2MjY5LCA1MDQ1LjUsIDUxNDEuNDIxMzU2MjM3MzEpXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPVxuKDkzNi43NTQ0NDY3OTY2MzI0NjUsIDk0NC44MDU5OTk5OTk5ODIzMDUsIDEwNjMuMjQ1NTUzMjAzMzY3NTQpXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTAxOS4xOTc0NDAwMDAwMDM1NSwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTA1OS4zMTc3NjAwMDAwMDUzNiwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTAzOS45ODQ2Mzk5OTk5OTUxMiwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTA1NC4zODIwNzk5OTk5OTU3NywgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA5MC4wOTYwMDAwMDAwMDUsIDEyMC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTA3Ni43ODcyMDAwMDAwMDYxMiwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA4NS4xNzYwMDAwMDAwMDY3NTIxLCAxMjAuKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgODUuMjE2MDAwMDAwMDAwMzQ5MiwgMTIwLilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDgwLjYyMjAwMDAwMDAwMzAyNjgsIDEyMC4pXG5cbiopXG5cbigqIFJldHVybiB0aGUgc3VtIG9mIHRoZSBzcXVhcmVzIG9mIHZbaTAsaTFbICopXG5sZXQgcmVjIHN1bXNxIHYgaTAgaTEgPVxuICBpZiBpMCA+PSBpMSB0aGVuIDAuMFxuICBlbHNlIGlmIGkxID0gaTAgKyAxIHRoZW4gU3RkbGliLmZsb2F0IHYuKGkwKSAqLiBTdGRsaWIuZmxvYXQgdi4oaTApXG4gIGVsc2Ugc3Vtc3EgdiBpMCAoKGkwK2kxKS8yKSArLiBzdW1zcSB2ICgoaTAraTEpLzIpIGkxXG5cblxubGV0IGNoaXNxdWFyZSBnIG4gciA9XG4gIGlmIG4gPD0gMTAgKiByIHRoZW4gaW52YWxpZF9hcmcgXCJjaGlzcXVhcmVcIjtcbiAgbGV0IGYgPSBBcnJheS5tYWtlIHIgMCBpblxuICBmb3IgaSA9IDEgdG8gbiBkb1xuICAgIGxldCB0ID0gZyByIGluXG4gICAgZi4odCkgPC0gZi4odCkgKyAxXG4gIGRvbmU7XG4gIGxldCB0ID0gc3Vtc3EgZiAwIHJcbiAgYW5kIHIgPSBTdGRsaWIuZmxvYXQgclxuICBhbmQgbiA9IFN0ZGxpYi5mbG9hdCBuIGluXG4gIGxldCBzciA9IDIuMCAqLiBzcXJ0IHIgaW5cbiAgKHIgLS4gc3IsICAgKHIgKi4gdCAvLiBuKSAtLiBuLCAgIHIgKy4gc3IpXG5cblxuKCogVGhpcyBpcyB0byB0ZXN0IGZvciBsaW5lYXIgZGVwZW5kZW5jaWVzIGJldHdlZW4gc3VjY2Vzc2l2ZSByYW5kb20gbnVtYmVycy5cbiopXG5sZXQgc3QgPSByZWYgMFxubGV0IGluaXRfZGlmZiByID0gc3QgOj0gaW50IHJcbmxldCBkaWZmIHIgPVxuICBsZXQgeDEgPSAhc3RcbiAgYW5kIHgyID0gaW50IHJcbiAgaW5cbiAgc3QgOj0geDI7XG4gIGlmIHgxID49IHgyIHRoZW5cbiAgICB4MSAtIHgyXG4gIGVsc2VcbiAgICByICsgeDEgLSB4MlxuXG5cbmxldCBzdDEgPSByZWYgMFxuYW5kIHN0MiA9IHJlZiAwXG5cblxuKCogVGhpcyBpcyB0byB0ZXN0IGZvciBxdWFkcmF0aWMgZGVwZW5kZW5jaWVzIGJldHdlZW4gc3VjY2Vzc2l2ZSByYW5kb21cbiAgIG51bWJlcnMuXG4qKVxubGV0IGluaXRfZGlmZjIgciA9IHN0MSA6PSBpbnQgcjsgc3QyIDo9IGludCByXG5sZXQgZGlmZjIgciA9XG4gIGxldCB4MSA9ICFzdDFcbiAgYW5kIHgyID0gIXN0MlxuICBhbmQgeDMgPSBpbnQgclxuICBpblxuICBzdDEgOj0geDI7XG4gIHN0MiA6PSB4MztcbiAgKHgzIC0geDIgLSB4MiArIHgxICsgMipyKSBtb2QgclxuXG5cbioqKioqKioqKioqKioqKioqKioqKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBIYXNoIHRhYmxlcyAqKVxuXG4oKiBXZSBkbyBkeW5hbWljIGhhc2hpbmcsIGFuZCByZXNpemUgdGhlIHRhYmxlIGFuZCByZWhhc2ggdGhlIGVsZW1lbnRzXG4gICB3aGVuIGJ1Y2tldHMgYmVjb21lIHRvbyBsb25nLiAqKVxuXG50eXBlICgnYSwgJ2IpIHQgPVxuICB7IG11dGFibGUgc2l6ZTogaW50OyAgICAgICAgICAgICAgICAgICAgICAgICgqIG51bWJlciBvZiBlbnRyaWVzICopXG4gICAgbXV0YWJsZSBkYXRhOiAoJ2EsICdiKSBidWNrZXRsaXN0IGFycmF5OyAgKCogdGhlIGJ1Y2tldHMgKilcbiAgICBzZWVkOiBpbnQ7ICAgICAgICAgICAgICAgICAgICAgICAgKCogZm9yIHJhbmRvbWl6YXRpb24gKilcbiAgICBtdXRhYmxlIGluaXRpYWxfc2l6ZTogaW50OyAgICAgICAgICAgICAgICAoKiBpbml0aWFsIGFycmF5IHNpemUgKilcbiAgfVxuXG5hbmQgKCdhLCAnYikgYnVja2V0bGlzdCA9XG4gICAgRW1wdHlcbiAgfCBDb25zIG9mIHsgbXV0YWJsZSBrZXk6ICdhO1xuICAgICAgICAgICAgICBtdXRhYmxlIGRhdGE6ICdiO1xuICAgICAgICAgICAgICBtdXRhYmxlIG5leHQ6ICgnYSwgJ2IpIGJ1Y2tldGxpc3QgfVxuXG4oKiBUaGUgc2lnbiBvZiBpbml0aWFsX3NpemUgZW5jb2RlcyB0aGUgZmFjdCB0aGF0IGEgdHJhdmVyc2FsIGlzXG4gICBvbmdvaW5nIG9yIG5vdC5cblxuICAgVGhpcyBkaXNhYmxlcyB0aGUgZWZmaWNpZW50IGluIHBsYWNlIGltcGxlbWVudGF0aW9uIG9mIHJlc2l6aW5nLlxuKilcblxubGV0IG9uZ29pbmdfdHJhdmVyc2FsIGggPVxuICBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPCA0ICgqIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgaGFzaCB0YWJsZXMgKilcbiAgfHwgaC5pbml0aWFsX3NpemUgPCAwXG5cbmxldCBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGggPVxuICBoLmluaXRpYWxfc2l6ZSA8LSAtIGguaW5pdGlhbF9zaXplXG5cbigqIFRvIHBpY2sgcmFuZG9tIHNlZWRzIGlmIHJlcXVlc3RlZCAqKVxuXG5sZXQgcmFuZG9taXplZF9kZWZhdWx0ID1cbiAgbGV0IHBhcmFtcyA9XG4gICAgdHJ5IFN5cy5nZXRlbnYgXCJPQ0FNTFJVTlBBUkFNXCIgd2l0aCBOb3RfZm91bmQgLT5cbiAgICB0cnkgU3lzLmdldGVudiBcIkNBTUxSVU5QQVJBTVwiIHdpdGggTm90X2ZvdW5kIC0+IFwiXCIgaW5cbiAgU3RyaW5nLmNvbnRhaW5zIHBhcmFtcyAnUidcblxubGV0IHJhbmRvbWl6ZWQgPSByZWYgcmFuZG9taXplZF9kZWZhdWx0XG5cbmxldCByYW5kb21pemUgKCkgPSByYW5kb21pemVkIDo9IHRydWVcbmxldCBpc19yYW5kb21pemVkICgpID0gIXJhbmRvbWl6ZWRcblxubGV0IHBybmcgPSBsYXp5IChSYW5kb20uU3RhdGUubWFrZV9zZWxmX2luaXQoKSlcblxuKCogRnVuY3Rpb25zIHdoaWNoIGFwcGVhciBiZWZvcmUgdGhlIGZ1bmN0b3JpYWwgaW50ZXJmYWNlIG11c3QgZWl0aGVyIGJlXG4gICBpbmRlcGVuZGVudCBvZiB0aGUgaGFzaCBmdW5jdGlvbiBvciB0YWtlIGl0IGFzIGEgcGFyYW1ldGVyIChzZWUgIzIyMDIgYW5kXG4gICBjb2RlIGJlbG93IHRoZSBmdW5jdG9yIGRlZmluaXRpb25zLiAqKVxuXG4oKiBDcmVhdGluZyBhIGZyZXNoLCBlbXB0eSB0YWJsZSAqKVxuXG5sZXQgcmVjIHBvd2VyXzJfYWJvdmUgeCBuID1cbiAgaWYgeCA+PSBuIHRoZW4geFxuICBlbHNlIGlmIHggKiAyID4gU3lzLm1heF9hcnJheV9sZW5ndGggdGhlbiB4XG4gIGVsc2UgcG93ZXJfMl9hYm92ZSAoeCAqIDIpIG5cblxubGV0IGNyZWF0ZSA/KHJhbmRvbSA9ICFyYW5kb21pemVkKSBpbml0aWFsX3NpemUgPVxuICBsZXQgcyA9IHBvd2VyXzJfYWJvdmUgMTYgaW5pdGlhbF9zaXplIGluXG4gIGxldCBzZWVkID0gaWYgcmFuZG9tIHRoZW4gUmFuZG9tLlN0YXRlLmJpdHMgKExhenkuZm9yY2UgcHJuZykgZWxzZSAwIGluXG4gIHsgaW5pdGlhbF9zaXplID0gczsgc2l6ZSA9IDA7IHNlZWQgPSBzZWVkOyBkYXRhID0gQXJyYXkubWFrZSBzIEVtcHR5IH1cblxubGV0IGNsZWFyIGggPVxuICBpZiBoLnNpemUgPiAwIHRoZW4gYmVnaW5cbiAgICBoLnNpemUgPC0gMDtcbiAgICBBcnJheS5maWxsIGguZGF0YSAwIChBcnJheS5sZW5ndGggaC5kYXRhKSBFbXB0eVxuICBlbmRcblxubGV0IHJlc2V0IGggPVxuICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIGguZGF0YSBpblxuICBpZiBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPCA0ICgqIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgaGFzaCB0YWJsZXMgKilcbiAgICB8fCBsZW4gPSBhYnMgaC5pbml0aWFsX3NpemUgdGhlblxuICAgIGNsZWFyIGhcbiAgZWxzZSBiZWdpblxuICAgIGguc2l6ZSA8LSAwO1xuICAgIGguZGF0YSA8LSBBcnJheS5tYWtlIChhYnMgaC5pbml0aWFsX3NpemUpIEVtcHR5XG4gIGVuZFxuXG5sZXQgY29weV9idWNrZXRsaXN0ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBFbXB0eVxuICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgIGxldCByZWMgbG9vcCBwcmVjID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPiAoKVxuICAgICAgICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgICAgIGxldCByID0gQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgICAgICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgfCBDb25zIHByZWMgLT4gIHByZWMubmV4dCA8LSByXG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBsb29wIHIgbmV4dFxuICAgICAgaW5cbiAgICAgIGxldCByID0gQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSBpblxuICAgICAgbG9vcCByIG5leHQ7XG4gICAgICByXG5cbmxldCBjb3B5IGggPSB7IGggd2l0aCBkYXRhID0gQXJyYXkubWFwIGNvcHlfYnVja2V0bGlzdCBoLmRhdGEgfVxuXG5sZXQgbGVuZ3RoIGggPSBoLnNpemVcblxubGV0IGluc2VydF9hbGxfYnVja2V0cyBpbmRleGZ1biBpbnBsYWNlIG9kYXRhIG5kYXRhID1cbiAgbGV0IG5zaXplID0gQXJyYXkubGVuZ3RoIG5kYXRhIGluXG4gIGxldCBuZGF0YV90YWlsID0gQXJyYXkubWFrZSBuc2l6ZSBFbXB0eSBpblxuICBsZXQgcmVjIGluc2VydF9idWNrZXQgPSBmdW5jdGlvblxuICAgIHwgRW1wdHkgLT4gKClcbiAgICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gYXMgY2VsbCAtPlxuICAgICAgICBsZXQgY2VsbCA9XG4gICAgICAgICAgaWYgaW5wbGFjZSB0aGVuIGNlbGxcbiAgICAgICAgICBlbHNlIENvbnMge2tleTsgZGF0YTsgbmV4dCA9IEVtcHR5fVxuICAgICAgICBpblxuICAgICAgICBsZXQgbmlkeCA9IGluZGV4ZnVuIGtleSBpblxuICAgICAgICBiZWdpbiBtYXRjaCBuZGF0YV90YWlsLihuaWR4KSB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT4gbmRhdGEuKG5pZHgpIDwtIGNlbGw7XG4gICAgICAgIHwgQ29ucyB0YWlsIC0+IHRhaWwubmV4dCA8LSBjZWxsO1xuICAgICAgICBlbmQ7XG4gICAgICAgIG5kYXRhX3RhaWwuKG5pZHgpIDwtIGNlbGw7XG4gICAgICAgIGluc2VydF9idWNrZXQgbmV4dFxuICBpblxuICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIG9kYXRhIC0gMSBkb1xuICAgIGluc2VydF9idWNrZXQgb2RhdGEuKGkpXG4gIGRvbmU7XG4gIGlmIGlucGxhY2UgdGhlblxuICAgIGZvciBpID0gMCB0byBuc2l6ZSAtIDEgZG9cbiAgICAgIG1hdGNoIG5kYXRhX3RhaWwuKGkpIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gKClcbiAgICAgIHwgQ29ucyB0YWlsIC0+IHRhaWwubmV4dCA8LSBFbXB0eVxuICAgIGRvbmVcblxubGV0IHJlc2l6ZSBpbmRleGZ1biBoID1cbiAgbGV0IG9kYXRhID0gaC5kYXRhIGluXG4gIGxldCBvc2l6ZSA9IEFycmF5Lmxlbmd0aCBvZGF0YSBpblxuICBsZXQgbnNpemUgPSBvc2l6ZSAqIDIgaW5cbiAgaWYgbnNpemUgPCBTeXMubWF4X2FycmF5X2xlbmd0aCB0aGVuIGJlZ2luXG4gICAgbGV0IG5kYXRhID0gQXJyYXkubWFrZSBuc2l6ZSBFbXB0eSBpblxuICAgIGxldCBpbnBsYWNlID0gbm90IChvbmdvaW5nX3RyYXZlcnNhbCBoKSBpblxuICAgIGguZGF0YSA8LSBuZGF0YTsgICAgICAgICAgKCogc28gdGhhdCBpbmRleGZ1biBzZWVzIHRoZSBuZXcgYnVja2V0IGNvdW50ICopXG4gICAgaW5zZXJ0X2FsbF9idWNrZXRzIChpbmRleGZ1biBoKSBpbnBsYWNlIG9kYXRhIG5kYXRhXG4gIGVuZFxuXG5sZXQgaXRlciBmIGggPVxuICBsZXQgcmVjIGRvX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgfCBFbXB0eSAtPlxuICAgICAgICAoKVxuICAgIHwgQ29uc3trZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgIGYga2V5IGRhdGE7IGRvX2J1Y2tldCBuZXh0IGluXG4gIGxldCBvbGRfdHJhdiA9IG9uZ29pbmdfdHJhdmVyc2FsIGggaW5cbiAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICB0cnlcbiAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgIGRvX2J1Y2tldCBkLihpKVxuICAgIGRvbmU7XG4gICAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICB3aXRoIGV4biB3aGVuIG5vdCBvbGRfdHJhdiAtPlxuICAgIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgICByYWlzZSBleG5cblxubGV0IHJlYyBmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IGYgaCBpIHByZWMgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICBiZWdpbiBtYXRjaCBwcmVjIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gaC5kYXRhLihpKSA8LSBFbXB0eVxuICAgICAgfCBDb25zIGMgLT4gYy5uZXh0IDwtIEVtcHR5XG4gICAgICBlbmRcbiAgfCAoQ29ucyAoe2tleTsgZGF0YTsgbmV4dH0gYXMgYykpIGFzIHNsb3QgLT5cbiAgICAgIGJlZ2luIG1hdGNoIGYga2V5IGRhdGEgd2l0aFxuICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgICAgZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCBmIGggaSBwcmVjIG5leHRcbiAgICAgIHwgU29tZSBkYXRhIC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiBoLmRhdGEuKGkpIDwtIHNsb3RcbiAgICAgICAgICB8IENvbnMgYyAtPiBjLm5leHQgPC0gc2xvdFxuICAgICAgICAgIGVuZDtcbiAgICAgICAgICBjLmRhdGEgPC0gZGF0YTtcbiAgICAgICAgICBmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IGYgaCBpIHNsb3QgbmV4dFxuICAgICAgZW5kXG5cbmxldCBmaWx0ZXJfbWFwX2lucGxhY2UgZiBoID1cbiAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgbGV0IG9sZF90cmF2ID0gb25nb2luZ190cmF2ZXJzYWwgaCBpblxuICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gIHRyeVxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgIGZpbHRlcl9tYXBfaW5wbGFjZV9idWNrZXQgZiBoIGkgRW1wdHkgaC5kYXRhLihpKVxuICAgIGRvbmU7XG4gICAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoXG4gIHdpdGggZXhuIHdoZW4gbm90IG9sZF90cmF2IC0+XG4gICAgZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICAgIHJhaXNlIGV4blxuXG5sZXQgZm9sZCBmIGggaW5pdCA9XG4gIGxldCByZWMgZG9fYnVja2V0IGIgYWNjdSA9XG4gICAgbWF0Y2ggYiB3aXRoXG4gICAgICBFbXB0eSAtPlxuICAgICAgICBhY2N1XG4gICAgfCBDb25ze2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgZG9fYnVja2V0IG5leHQgKGYga2V5IGRhdGEgYWNjdSkgaW5cbiAgbGV0IG9sZF90cmF2ID0gb25nb2luZ190cmF2ZXJzYWwgaCBpblxuICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gIHRyeVxuICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgbGV0IGFjY3UgPSByZWYgaW5pdCBpblxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgIGFjY3UgOj0gZG9fYnVja2V0IGQuKGkpICFhY2N1XG4gICAgZG9uZTtcbiAgICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gICAgIWFjY3VcbiAgd2l0aCBleG4gd2hlbiBub3Qgb2xkX3RyYXYgLT5cbiAgICBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gICAgcmFpc2UgZXhuXG5cbnR5cGUgc3RhdGlzdGljcyA9IHtcbiAgbnVtX2JpbmRpbmdzOiBpbnQ7XG4gIG51bV9idWNrZXRzOiBpbnQ7XG4gIG1heF9idWNrZXRfbGVuZ3RoOiBpbnQ7XG4gIGJ1Y2tldF9oaXN0b2dyYW06IGludCBhcnJheVxufVxuXG5sZXQgcmVjIGJ1Y2tldF9sZW5ndGggYWNjdSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gYWNjdVxuICB8IENvbnN7bmV4dH0gLT4gYnVja2V0X2xlbmd0aCAoYWNjdSArIDEpIG5leHRcblxubGV0IHN0YXRzIGggPVxuICBsZXQgbWJsID1cbiAgICBBcnJheS5mb2xkX2xlZnQgKGZ1biBtIGIgLT4gSW50Lm1heCBtIChidWNrZXRfbGVuZ3RoIDAgYikpIDAgaC5kYXRhIGluXG4gIGxldCBoaXN0byA9IEFycmF5Lm1ha2UgKG1ibCArIDEpIDAgaW5cbiAgQXJyYXkuaXRlclxuICAgIChmdW4gYiAtPlxuICAgICAgbGV0IGwgPSBidWNrZXRfbGVuZ3RoIDAgYiBpblxuICAgICAgaGlzdG8uKGwpIDwtIGhpc3RvLihsKSArIDEpXG4gICAgaC5kYXRhO1xuICB7IG51bV9iaW5kaW5ncyA9IGguc2l6ZTtcbiAgICBudW1fYnVja2V0cyA9IEFycmF5Lmxlbmd0aCBoLmRhdGE7XG4gICAgbWF4X2J1Y2tldF9sZW5ndGggPSBtYmw7XG4gICAgYnVja2V0X2hpc3RvZ3JhbSA9IGhpc3RvIH1cblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSB0YmwgPVxuICAoKiBjYXB0dXJlIGN1cnJlbnQgYXJyYXksIHNvIHRoYXQgZXZlbiBpZiB0aGUgdGFibGUgaXMgcmVzaXplZCB3ZVxuICAgICBrZWVwIGl0ZXJhdGluZyBvbiB0aGUgc2FtZSBhcnJheSAqKVxuICBsZXQgdGJsX2RhdGEgPSB0YmwuZGF0YSBpblxuICAoKiBzdGF0ZTogaW5kZXggKiBuZXh0IGJ1Y2tldCB0byB0cmF2ZXJzZSAqKVxuICBsZXQgcmVjIGF1eCBpIGJ1Y2sgKCkgPSBtYXRjaCBidWNrIHdpdGhcbiAgICB8IEVtcHR5IC0+XG4gICAgICAgIGlmIGkgPSBBcnJheS5sZW5ndGggdGJsX2RhdGFcbiAgICAgICAgdGhlbiBTZXEuTmlsXG4gICAgICAgIGVsc2UgYXV4KGkrMSkgdGJsX2RhdGEuKGkpICgpXG4gICAgfCBDb25zIHtrZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgIFNlcS5Db25zICgoa2V5LCBkYXRhKSwgYXV4IGkgbmV4dClcbiAgaW5cbiAgYXV4IDAgRW1wdHlcblxubGV0IHRvX3NlcV9rZXlzIG0gPSBTZXEubWFwIGZzdCAodG9fc2VxIG0pXG5cbmxldCB0b19zZXFfdmFsdWVzIG0gPSBTZXEubWFwIHNuZCAodG9fc2VxIG0pXG5cbigqIEZ1bmN0b3JpYWwgaW50ZXJmYWNlICopXG5cbm1vZHVsZSB0eXBlIEhhc2hlZFR5cGUgPVxuICBzaWdcbiAgICB0eXBlIHRcbiAgICB2YWwgZXF1YWw6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGhhc2g6IHQgLT4gaW50XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTZWVkZWRIYXNoZWRUeXBlID1cbiAgc2lnXG4gICAgdHlwZSB0XG4gICAgdmFsIGVxdWFsOiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBoYXNoOiBpbnQgLT4gdCAtPiBpbnRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFMgPVxuICBzaWdcbiAgICB0eXBlIGtleVxuICAgIHR5cGUgISdhIHRcbiAgICB2YWwgY3JlYXRlOiBpbnQgLT4gJ2EgdFxuICAgIHZhbCBjbGVhciA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBjb3B5OiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgYWRkOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gICAgdmFsIHJlbW92ZTogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICAgIHZhbCBmaW5kOiAnYSB0IC0+IGtleSAtPiAnYVxuICAgIHZhbCBmaW5kX29wdDogJ2EgdCAtPiBrZXkgLT4gJ2Egb3B0aW9uXG4gICAgdmFsIGZpbmRfYWxsOiAnYSB0IC0+IGtleSAtPiAnYSBsaXN0XG4gICAgdmFsIHJlcGxhY2UgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gICAgdmFsIG1lbSA6ICdhIHQgLT4ga2V5IC0+IGJvb2xcbiAgICB2YWwgaXRlcjogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlOiAoa2V5IC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZvbGQ6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICB2YWwgbGVuZ3RoOiAnYSB0IC0+IGludFxuICAgIHZhbCBzdGF0czogJ2EgdCAtPiBzdGF0aXN0aWNzXG4gICAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIHZhbCB0b19zZXFfa2V5cyA6IF8gdCAtPiBrZXkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX3ZhbHVlcyA6ICdhIHQgLT4gJ2EgU2VxLnRcbiAgICB2YWwgYWRkX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gICAgdmFsIHJlcGxhY2Vfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgICB2YWwgb2Zfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTZWVkZWRTID1cbiAgc2lnXG4gICAgdHlwZSBrZXlcbiAgICB0eXBlICEnYSB0XG4gICAgdmFsIGNyZWF0ZSA6ID9yYW5kb206Ym9vbCAtPiBpbnQgLT4gJ2EgdFxuICAgIHZhbCBjbGVhciA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBjb3B5IDogJ2EgdCAtPiAnYSB0XG4gICAgdmFsIGFkZCA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgcmVtb3ZlIDogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICAgIHZhbCBmaW5kIDogJ2EgdCAtPiBrZXkgLT4gJ2FcbiAgICB2YWwgZmluZF9vcHQ6ICdhIHQgLT4ga2V5IC0+ICdhIG9wdGlvblxuICAgIHZhbCBmaW5kX2FsbCA6ICdhIHQgLT4ga2V5IC0+ICdhIGxpc3RcbiAgICB2YWwgcmVwbGFjZSA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgbWVtIDogJ2EgdCAtPiBrZXkgLT4gYm9vbFxuICAgIHZhbCBpdGVyIDogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlOiAoa2V5IC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZvbGQgOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgdmFsIGxlbmd0aCA6ICdhIHQgLT4gaW50XG4gICAgdmFsIHN0YXRzOiAnYSB0IC0+IHN0YXRpc3RpY3NcbiAgICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIHRvX3NlcV9rZXlzIDogXyB0IC0+IGtleSBTZXEudFxuICAgIHZhbCB0b19zZXFfdmFsdWVzIDogJ2EgdCAtPiAnYSBTZXEudFxuICAgIHZhbCBhZGRfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgICB2YWwgcmVwbGFjZV9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICAgIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgZW5kXG5cbm1vZHVsZSBNYWtlU2VlZGVkKEg6IFNlZWRlZEhhc2hlZFR5cGUpOiAoU2VlZGVkUyB3aXRoIHR5cGUga2V5ID0gSC50KSA9XG4gIHN0cnVjdFxuICAgIHR5cGUga2V5ID0gSC50XG4gICAgdHlwZSAnYSBoYXNodGJsID0gKGtleSwgJ2EpIHRcbiAgICB0eXBlICdhIHQgPSAnYSBoYXNodGJsXG4gICAgbGV0IGNyZWF0ZSA9IGNyZWF0ZVxuICAgIGxldCBjbGVhciA9IGNsZWFyXG4gICAgbGV0IHJlc2V0ID0gcmVzZXRcbiAgICBsZXQgY29weSA9IGNvcHlcblxuICAgIGxldCBrZXlfaW5kZXggaCBrZXkgPVxuICAgICAgKEguaGFzaCBoLnNlZWQga2V5KSBsYW5kIChBcnJheS5sZW5ndGggaC5kYXRhIC0gMSlcblxuICAgIGxldCBhZGQgaCBrZXkgZGF0YSA9XG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICAgICAgbGV0IGJ1Y2tldCA9IENvbnN7a2V5OyBkYXRhOyBuZXh0PWguZGF0YS4oaSl9IGluXG4gICAgICBoLmRhdGEuKGkpIDwtIGJ1Y2tldDtcbiAgICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuXG4gICAgbGV0IHJlYyByZW1vdmVfYnVja2V0IGggaSBrZXkgcHJlYyA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgKClcbiAgICAgIHwgKENvbnMge2tleT1rOyBuZXh0fSkgYXMgYyAtPlxuICAgICAgICAgIGlmIEguZXF1YWwgayBrZXlcbiAgICAgICAgICB0aGVuIGJlZ2luXG4gICAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICAgIG1hdGNoIHByZWMgd2l0aFxuICAgICAgICAgICAgfCBFbXB0eSAtPiBoLmRhdGEuKGkpIDwtIG5leHRcbiAgICAgICAgICAgIHwgQ29ucyBjIC0+IGMubmV4dCA8LSBuZXh0XG4gICAgICAgICAgZW5kXG4gICAgICAgICAgZWxzZSByZW1vdmVfYnVja2V0IGggaSBrZXkgYyBuZXh0XG5cbiAgICBsZXQgcmVtb3ZlIGgga2V5ID1cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gICAgICByZW1vdmVfYnVja2V0IGggaSBrZXkgRW1wdHkgaC5kYXRhLihpKVxuXG4gICAgbGV0IHJlYyBmaW5kX3JlYyBrZXkgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsgdGhlbiBkYXRhIGVsc2UgZmluZF9yZWMga2V5IG5leHRcblxuICAgIGxldCBmaW5kIGgga2V5ID1cbiAgICAgIG1hdGNoIGguZGF0YS4oa2V5X2luZGV4IGgga2V5KSB3aXRoXG4gICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBDb25ze2tleT1rMTsgZGF0YT1kMTsgbmV4dD1uZXh0MX0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMSB0aGVuIGQxIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MSB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgICB8IENvbnN7a2V5PWsyOyBkYXRhPWQyOyBuZXh0PW5leHQyfSAtPlxuICAgICAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMiB0aGVuIGQyIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggbmV4dDIgd2l0aFxuICAgICAgICAgICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICAgICAgICB8IENvbnN7a2V5PWszOyBkYXRhPWQzOyBuZXh0PW5leHQzfSAtPlxuICAgICAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazMgdGhlbiBkMyBlbHNlIGZpbmRfcmVjIGtleSBuZXh0M1xuXG4gICAgbGV0IHJlYyBmaW5kX3JlY19vcHQga2V5ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrZXkgayB0aGVuIFNvbWUgZGF0YSBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dFxuXG4gICAgbGV0IGZpbmRfb3B0IGgga2V5ID1cbiAgICAgIG1hdGNoIGguZGF0YS4oa2V5X2luZGV4IGgga2V5KSB3aXRoXG4gICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgQ29uc3trZXk9azE7IGRhdGE9ZDE7IG5leHQ9bmV4dDF9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazEgdGhlbiBTb21lIGQxIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MSB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICAgICAgfCBDb25ze2tleT1rMjsgZGF0YT1kMjsgbmV4dD1uZXh0Mn0gLT5cbiAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazIgdGhlbiBTb21lIGQyIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggbmV4dDIgd2l0aFxuICAgICAgICAgICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgICAgICAgICAgfCBDb25ze2tleT1rMzsgZGF0YT1kMzsgbmV4dD1uZXh0M30gLT5cbiAgICAgICAgICAgICAgICAgIGlmIEguZXF1YWwga2V5IGszIHRoZW4gU29tZSBkMyBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dDNcblxuICAgIGxldCBmaW5kX2FsbCBoIGtleSA9XG4gICAgICBsZXQgcmVjIGZpbmRfaW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBbXVxuICAgICAgfCBDb25ze2tleT1rOyBkYXRhPWQ7IG5leHR9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrIGtleVxuICAgICAgICAgIHRoZW4gZCA6OiBmaW5kX2luX2J1Y2tldCBuZXh0XG4gICAgICAgICAgZWxzZSBmaW5kX2luX2J1Y2tldCBuZXh0IGluXG4gICAgICBmaW5kX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSlcblxuICAgIGxldCByZWMgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIHRydWVcbiAgICAgIHwgQ29ucyAoe2tleT1rOyBuZXh0fSBhcyBzbG90KSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwgayBrZXlcbiAgICAgICAgICB0aGVuIChzbG90LmtleSA8LSBrZXk7IHNsb3QuZGF0YSA8LSBkYXRhOyBmYWxzZSlcbiAgICAgICAgICBlbHNlIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhIG5leHRcblxuICAgIGxldCByZXBsYWNlIGgga2V5IGRhdGEgPVxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgICAgIGxldCBsID0gaC5kYXRhLihpKSBpblxuICAgICAgaWYgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgbCB0aGVuIGJlZ2luXG4gICAgICAgIGguZGF0YS4oaSkgPC0gQ29uc3trZXk7IGRhdGE7IG5leHQ9bH07XG4gICAgICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgICAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGtleV9pbmRleCBoXG4gICAgICBlbmRcblxuICAgIGxldCBtZW0gaCBrZXkgPVxuICAgICAgbGV0IHJlYyBtZW1faW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBmYWxzZVxuICAgICAgfCBDb25ze2tleT1rOyBuZXh0fSAtPlxuICAgICAgICAgIEguZXF1YWwgayBrZXkgfHwgbWVtX2luX2J1Y2tldCBuZXh0IGluXG4gICAgICBtZW1faW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG4gICAgbGV0IGFkZF9zZXEgdGJsIGkgPVxuICAgICAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiBhZGQgdGJsIGsgdikgaVxuXG4gICAgbGV0IHJlcGxhY2Vfc2VxIHRibCBpID1cbiAgICAgIFNlcS5pdGVyIChmdW4gKGssdikgLT4gcmVwbGFjZSB0YmwgayB2KSBpXG5cbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcblxuICAgIGxldCBpdGVyID0gaXRlclxuICAgIGxldCBmaWx0ZXJfbWFwX2lucGxhY2UgPSBmaWx0ZXJfbWFwX2lucGxhY2VcbiAgICBsZXQgZm9sZCA9IGZvbGRcbiAgICBsZXQgbGVuZ3RoID0gbGVuZ3RoXG4gICAgbGV0IHN0YXRzID0gc3RhdHNcbiAgICBsZXQgdG9fc2VxID0gdG9fc2VxXG4gICAgbGV0IHRvX3NlcV9rZXlzID0gdG9fc2VxX2tleXNcbiAgICBsZXQgdG9fc2VxX3ZhbHVlcyA9IHRvX3NlcV92YWx1ZXNcbiAgZW5kXG5cbm1vZHVsZSBNYWtlKEg6IEhhc2hlZFR5cGUpOiAoUyB3aXRoIHR5cGUga2V5ID0gSC50KSA9XG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgICAgdHlwZSB0ID0gSC50XG4gICAgICAgIGxldCBlcXVhbCA9IEguZXF1YWxcbiAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBILmhhc2ggeFxuICAgICAgZW5kKVxuICAgIGxldCBjcmVhdGUgc3ogPSBjcmVhdGUgfnJhbmRvbTpmYWxzZSBzelxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuICBlbmRcblxuKCogUG9seW1vcnBoaWMgaGFzaCBmdW5jdGlvbi1iYXNlZCB0YWJsZXMgKilcbigqIENvZGUgaW5jbHVkZWQgYmVsb3cgdGhlIGZ1bmN0b3JpYWwgaW50ZXJmYWNlIHRvIGd1YXJkIGFnYWluc3QgYWNjaWRlbnRhbFxuICAgdXNlIC0gc2VlICMyMjAyICopXG5cbmV4dGVybmFsIHNlZWRlZF9oYXNoX3BhcmFtIDpcbiAgaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gaW50ID0gXCJjYW1sX2hhc2hcIiBbQEBub2FsbG9jXVxuXG5sZXQgaGFzaCB4ID0gc2VlZGVkX2hhc2hfcGFyYW0gMTAgMTAwIDAgeFxubGV0IGhhc2hfcGFyYW0gbjEgbjIgeCA9IHNlZWRlZF9oYXNoX3BhcmFtIG4xIG4yIDAgeFxubGV0IHNlZWRlZF9oYXNoIHNlZWQgeCA9IHNlZWRlZF9oYXNoX3BhcmFtIDEwIDEwMCBzZWVkIHhcblxubGV0IGtleV9pbmRleCBoIGtleSA9XG4gIGlmIE9iai5zaXplIChPYmoucmVwciBoKSA+PSA0XG4gIHRoZW4gKHNlZWRlZF9oYXNoX3BhcmFtIDEwIDEwMCBoLnNlZWQga2V5KSBsYW5kIChBcnJheS5sZW5ndGggaC5kYXRhIC0gMSlcbiAgZWxzZSBpbnZhbGlkX2FyZyBcIkhhc2h0Ymw6IHVuc3VwcG9ydGVkIGhhc2ggdGFibGUgZm9ybWF0XCJcblxubGV0IGFkZCBoIGtleSBkYXRhID1cbiAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgbGV0IGJ1Y2tldCA9IENvbnN7a2V5OyBkYXRhOyBuZXh0PWguZGF0YS4oaSl9IGluXG4gIGguZGF0YS4oaSkgPC0gYnVja2V0O1xuICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuXG5sZXQgcmVjIHJlbW92ZV9idWNrZXQgaCBpIGtleSBwcmVjID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgKClcbiAgfCAoQ29ucyB7a2V5PWs7IG5leHR9KSBhcyBjIC0+XG4gICAgICBpZiBjb21wYXJlIGsga2V5ID0gMFxuICAgICAgdGhlbiBiZWdpblxuICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT4gaC5kYXRhLihpKSA8LSBuZXh0XG4gICAgICAgIHwgQ29ucyBjIC0+IGMubmV4dCA8LSBuZXh0XG4gICAgICBlbmRcbiAgICAgIGVsc2UgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IGMgbmV4dFxuXG5sZXQgcmVtb3ZlIGgga2V5ID1cbiAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IEVtcHR5IGguZGF0YS4oaSlcblxubGV0IHJlYyBmaW5kX3JlYyBrZXkgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICByYWlzZSBOb3RfZm91bmRcbiAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgayA9IDAgdGhlbiBkYXRhIGVsc2UgZmluZF9yZWMga2V5IG5leHRcblxubGV0IGZpbmQgaCBrZXkgPVxuICBtYXRjaCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSkgd2l0aFxuICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IENvbnN7a2V5PWsxOyBkYXRhPWQxOyBuZXh0PW5leHQxfSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgazEgPSAwIHRoZW4gZDEgZWxzZVxuICAgICAgbWF0Y2ggbmV4dDEgd2l0aFxuICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgQ29uc3trZXk9azI7IGRhdGE9ZDI7IG5leHQ9bmV4dDJ9IC0+XG4gICAgICAgICAgaWYgY29tcGFyZSBrZXkgazIgPSAwIHRoZW4gZDIgZWxzZVxuICAgICAgICAgIG1hdGNoIG5leHQyIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICAgIHwgQ29uc3trZXk9azM7IGRhdGE9ZDM7IG5leHQ9bmV4dDN9IC0+XG4gICAgICAgICAgICAgIGlmIGNvbXBhcmUga2V5IGszID0gMCB0aGVuIGQzIGVsc2UgZmluZF9yZWMga2V5IG5leHQzXG5cbmxldCByZWMgZmluZF9yZWNfb3B0IGtleSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIE5vbmVcbiAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgayA9IDAgdGhlbiBTb21lIGRhdGEgZWxzZSBmaW5kX3JlY19vcHQga2V5IG5leHRcblxubGV0IGZpbmRfb3B0IGgga2V5ID1cbiAgbWF0Y2ggaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpIHdpdGhcbiAgfCBFbXB0eSAtPiBOb25lXG4gIHwgQ29uc3trZXk9azE7IGRhdGE9ZDE7IG5leHQ9bmV4dDF9IC0+XG4gICAgICBpZiBjb21wYXJlIGtleSBrMSA9IDAgdGhlbiBTb21lIGQxIGVsc2VcbiAgICAgIG1hdGNoIG5leHQxIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBDb25ze2tleT1rMjsgZGF0YT1kMjsgbmV4dD1uZXh0Mn0gLT5cbiAgICAgICAgICBpZiBjb21wYXJlIGtleSBrMiA9IDAgdGhlbiBTb21lIGQyIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MiB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICAgICAgfCBDb25ze2tleT1rMzsgZGF0YT1kMzsgbmV4dD1uZXh0M30gLT5cbiAgICAgICAgICAgICAgaWYgY29tcGFyZSBrZXkgazMgPSAwIHRoZW4gU29tZSBkMyBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dDNcblxubGV0IGZpbmRfYWxsIGgga2V5ID1cbiAgbGV0IHJlYyBmaW5kX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIFtdXG4gIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgIGlmIGNvbXBhcmUgayBrZXkgPSAwXG4gICAgICB0aGVuIGRhdGEgOjogZmluZF9pbl9idWNrZXQgbmV4dFxuICAgICAgZWxzZSBmaW5kX2luX2J1Y2tldCBuZXh0IGluXG4gIGZpbmRfaW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG5sZXQgcmVjIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgdHJ1ZVxuICB8IENvbnMgKHtrZXk9azsgbmV4dH0gYXMgc2xvdCkgLT5cbiAgICAgIGlmIGNvbXBhcmUgayBrZXkgPSAwXG4gICAgICB0aGVuIChzbG90LmtleSA8LSBrZXk7IHNsb3QuZGF0YSA8LSBkYXRhOyBmYWxzZSlcbiAgICAgIGVsc2UgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgbmV4dFxuXG5sZXQgcmVwbGFjZSBoIGtleSBkYXRhID1cbiAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgbGV0IGwgPSBoLmRhdGEuKGkpIGluXG4gIGlmIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhIGwgdGhlbiBiZWdpblxuICAgIGguZGF0YS4oaSkgPC0gQ29uc3trZXk7IGRhdGE7IG5leHQ9bH07XG4gICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuICBlbmRcblxubGV0IG1lbSBoIGtleSA9XG4gIGxldCByZWMgbWVtX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIGZhbHNlXG4gIHwgQ29uc3trZXk9azsgbmV4dH0gLT5cbiAgICAgIGNvbXBhcmUgayBrZXkgPSAwIHx8IG1lbV9pbl9idWNrZXQgbmV4dCBpblxuICBtZW1faW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG5sZXQgYWRkX3NlcSB0YmwgaSA9XG4gIFNlcS5pdGVyIChmdW4gKGssdikgLT4gYWRkIHRibCBrIHYpIGlcblxubGV0IHJlcGxhY2Vfc2VxIHRibCBpID1cbiAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiByZXBsYWNlIHRibCBrIHYpIGlcblxubGV0IG9mX3NlcSBpID1cbiAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgdGJsXG5cbmxldCByZWJ1aWxkID8ocmFuZG9tID0gIXJhbmRvbWl6ZWQpIGggPVxuICBsZXQgcyA9IHBvd2VyXzJfYWJvdmUgMTYgKEFycmF5Lmxlbmd0aCBoLmRhdGEpIGluXG4gIGxldCBzZWVkID1cbiAgICBpZiByYW5kb20gdGhlbiBSYW5kb20uU3RhdGUuYml0cyAoTGF6eS5mb3JjZSBwcm5nKVxuICAgIGVsc2UgaWYgT2JqLnNpemUgKE9iai5yZXByIGgpID49IDQgdGhlbiBoLnNlZWRcbiAgICBlbHNlIDAgaW5cbiAgbGV0IGgnID0ge1xuICAgIHNpemUgPSBoLnNpemU7XG4gICAgZGF0YSA9IEFycmF5Lm1ha2UgcyBFbXB0eTtcbiAgICBzZWVkID0gc2VlZDtcbiAgICBpbml0aWFsX3NpemUgPSBpZiBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPj0gNCB0aGVuIGguaW5pdGlhbF9zaXplIGVsc2Ugc1xuICB9IGluXG4gIGluc2VydF9hbGxfYnVja2V0cyAoa2V5X2luZGV4IGgnKSBmYWxzZSBoLmRhdGEgaCcuZGF0YTtcbiAgaCdcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCoqIFdlYWsgYXJyYXkgb3BlcmF0aW9ucyAqKVxuXG50eXBlICEnYSB0XG5cbmV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiAnYSB0ID0gXCJjYW1sX3dlYWtfY3JlYXRlXCJcblxubGV0IGNyZWF0ZSBsID1cbiAgaWYgbm90ICgwIDw9IGwgJiYgbCA8PSBPYmouRXBoZW1lcm9uLm1heF9lcGhlX2xlbmd0aCkgdGhlblxuICAgIGludmFsaWRfYXJnKFwiV2Vhay5jcmVhdGVcIik7XG4gIGNyZWF0ZSBsXG5cbigqKiBudW1iZXIgb2YgYWRkaXRpb25hbCB2YWx1ZXMgaW4gYSB3ZWFrIHBvaW50ZXIgKilcbmxldCBhZGRpdGlvbmFsX3ZhbHVlcyA9IDJcblxubGV0IGxlbmd0aCB4ID0gT2JqLnNpemUoT2JqLnJlcHIgeCkgLSBhZGRpdGlvbmFsX3ZhbHVlc1xuXG5sZXQgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIG1zZyA9XG4gIGlmIG5vdCAoMCA8PSBvICYmIG8gPCBsZW5ndGggZSkgdGhlblxuICAgIGludmFsaWRfYXJnKG1zZylcblxuZXh0ZXJuYWwgc2V0JyA6ICdhIHQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfZXBoZV9zZXRfa2V5XCJcbmV4dGVybmFsIHVuc2V0IDogJ2EgdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3Vuc2V0X2tleVwiXG5sZXQgc2V0IGUgbyB4ID1cbiAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiV2Vhay5zZXRcIjtcbiAgbWF0Y2ggeCB3aXRoXG4gIHwgTm9uZSAtPiB1bnNldCBlIG9cbiAgfCBTb21lIHggLT4gc2V0JyBlIG8geFxuXG5leHRlcm5hbCBnZXQgOiAnYSB0IC0+IGludCAtPiAnYSBvcHRpb24gPSBcImNhbWxfd2Vha19nZXRcIlxubGV0IGdldCBlIG8gPVxuICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJXZWFrLmdldFwiO1xuICBnZXQgZSBvXG5cbmV4dGVybmFsIGdldF9jb3B5IDogJ2EgdCAtPiBpbnQgLT4gJ2Egb3B0aW9uID0gXCJjYW1sX3dlYWtfZ2V0X2NvcHlcIlxubGV0IGdldF9jb3B5IGUgbyA9XG4gIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIldlYWsuZ2V0X2NvcHlcIjtcbiAgZ2V0X2NvcHkgZSBvXG5cbmV4dGVybmFsIGNoZWNrIDogJ2EgdCAtPiBpbnQgLT4gYm9vbCA9IFwiY2FtbF93ZWFrX2NoZWNrXCJcbmxldCBjaGVjayBlIG8gPVxuICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJXZWFrLmNoZWNrXCI7XG4gIGNoZWNrIGUgb1xuXG5leHRlcm5hbCBibGl0IDogJ2EgdCAtPiBpbnQgLT4gJ2EgdCAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfd2Vha19ibGl0XCJcblxuKCogYmxpdDogc3JjIHNyY29mZiBkc3QgZHN0b2ZmIGxlbiAqKVxubGV0IGJsaXQgZTEgbzEgZTIgbzIgbCA9XG4gIGlmIGwgPCAwIHx8IG8xIDwgMCB8fCBvMSA+IGxlbmd0aCBlMSAtIGxcbiAgICAgfHwgbzIgPCAwIHx8IG8yID4gbGVuZ3RoIGUyIC0gbFxuICB0aGVuIGludmFsaWRfYXJnIFwiV2Vhay5ibGl0XCJcbiAgZWxzZSBpZiBsIDw+IDAgdGhlbiBibGl0IGUxIG8xIGUyIG8yIGxcblxubGV0IGZpbGwgYXIgb2ZzIGxlbiB4ID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBhciAtIGxlblxuICB0aGVuIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IFwiV2Vhay5maWxsXCIpXG4gIGVsc2UgYmVnaW5cbiAgICBmb3IgaSA9IG9mcyB0byAob2ZzICsgbGVuIC0gMSkgZG9cbiAgICAgIHNldCBhciBpIHhcbiAgICBkb25lXG4gIGVuZFxuXG5cbigqKiBXZWFrIGhhc2ggdGFibGVzICopXG5cbm1vZHVsZSB0eXBlIFMgPSBzaWdcbiAgdHlwZSBkYXRhXG4gIHR5cGUgdFxuICB2YWwgY3JlYXRlIDogaW50IC0+IHRcbiAgdmFsIGNsZWFyIDogdCAtPiB1bml0XG4gIHZhbCBtZXJnZSA6IHQgLT4gZGF0YSAtPiBkYXRhXG4gIHZhbCBhZGQgOiB0IC0+IGRhdGEgLT4gdW5pdFxuICB2YWwgcmVtb3ZlIDogdCAtPiBkYXRhIC0+IHVuaXRcbiAgdmFsIGZpbmQgOiB0IC0+IGRhdGEgLT4gZGF0YVxuICB2YWwgZmluZF9vcHQgOiB0IC0+IGRhdGEgLT4gZGF0YSBvcHRpb25cbiAgdmFsIGZpbmRfYWxsIDogdCAtPiBkYXRhIC0+IGRhdGEgbGlzdFxuICB2YWwgbWVtIDogdCAtPiBkYXRhIC0+IGJvb2xcbiAgdmFsIGl0ZXIgOiAoZGF0YSAtPiB1bml0KSAtPiB0IC0+IHVuaXRcbiAgdmFsIGZvbGQgOiAoZGF0YSAtPiAnYSAtPiAnYSkgLT4gdCAtPiAnYSAtPiAnYVxuICB2YWwgY291bnQgOiB0IC0+IGludFxuICB2YWwgc3RhdHMgOiB0IC0+IGludCAqIGludCAqIGludCAqIGludCAqIGludCAqIGludFxuZW5kXG5cbm1vZHVsZSBNYWtlIChIIDogSGFzaHRibC5IYXNoZWRUeXBlKSA6IChTIHdpdGggdHlwZSBkYXRhID0gSC50KSA9IHN0cnVjdFxuXG4gIHR5cGUgJ2Egd2Vha190ID0gJ2EgdFxuICBsZXQgd2Vha19jcmVhdGUgPSBjcmVhdGVcbiAgbGV0IGVtcHR5YnVja2V0ID0gd2Vha19jcmVhdGUgMFxuXG4gIHR5cGUgZGF0YSA9IEgudFxuXG4gIHR5cGUgdCA9IHtcbiAgICBtdXRhYmxlIHRhYmxlIDogZGF0YSB3ZWFrX3QgYXJyYXk7XG4gICAgbXV0YWJsZSBoYXNoZXMgOiBpbnQgYXJyYXkgYXJyYXk7XG4gICAgbXV0YWJsZSBsaW1pdCA6IGludDsgICAgICAgICAgICAgICAoKiBidWNrZXQgc2l6ZSBsaW1pdCAqKVxuICAgIG11dGFibGUgb3ZlcnNpemUgOiBpbnQ7ICAgICAgICAgICAgKCogbnVtYmVyIG9mIG92ZXJzaXplIGJ1Y2tldHMgKilcbiAgICBtdXRhYmxlIHJvdmVyIDogaW50OyAgICAgICAgICAgICAgICgqIGZvciBpbnRlcm5hbCBib29ra2VlcGluZyAqKVxuICB9XG5cbiAgbGV0IGdldF9pbmRleCB0IGggPSAoaCBsYW5kIG1heF9pbnQpIG1vZCAoQXJyYXkubGVuZ3RoIHQudGFibGUpXG5cbiAgbGV0IGxpbWl0ID0gN1xuICBsZXQgb3Zlcl9saW1pdCA9IDJcblxuICBsZXQgY3JlYXRlIHN6ID1cbiAgICBsZXQgc3ogPSBpZiBzeiA8IDcgdGhlbiA3IGVsc2Ugc3ogaW5cbiAgICBsZXQgc3ogPSBpZiBzeiA+IFN5cy5tYXhfYXJyYXlfbGVuZ3RoIHRoZW4gU3lzLm1heF9hcnJheV9sZW5ndGggZWxzZSBzeiBpblxuICAgIHtcbiAgICAgIHRhYmxlID0gQXJyYXkubWFrZSBzeiBlbXB0eWJ1Y2tldDtcbiAgICAgIGhhc2hlcyA9IEFycmF5Lm1ha2Ugc3ogW3wgfF07XG4gICAgICBsaW1pdCA9IGxpbWl0O1xuICAgICAgb3ZlcnNpemUgPSAwO1xuICAgICAgcm92ZXIgPSAwO1xuICAgIH1cblxuICBsZXQgY2xlYXIgdCA9XG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCB0LnRhYmxlIC0gMSBkb1xuICAgICAgdC50YWJsZS4oaSkgPC0gZW1wdHlidWNrZXQ7XG4gICAgICB0Lmhhc2hlcy4oaSkgPC0gW3wgfF07XG4gICAgZG9uZTtcbiAgICB0LmxpbWl0IDwtIGxpbWl0O1xuICAgIHQub3ZlcnNpemUgPC0gMFxuXG5cbiAgbGV0IGZvbGQgZiB0IGluaXQgPVxuICAgIGxldCByZWMgZm9sZF9idWNrZXQgaSBiIGFjY3UgPVxuICAgICAgaWYgaSA+PSBsZW5ndGggYiB0aGVuIGFjY3UgZWxzZVxuICAgICAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gICAgICB8IFNvbWUgdiAtPiBmb2xkX2J1Y2tldCAoaSsxKSBiIChmIHYgYWNjdSlcbiAgICAgIHwgTm9uZSAtPiBmb2xkX2J1Y2tldCAoaSsxKSBiIGFjY3VcbiAgICBpblxuICAgIEFycmF5LmZvbGRfcmlnaHQgKGZvbGRfYnVja2V0IDApIHQudGFibGUgaW5pdFxuXG5cbiAgbGV0IGl0ZXIgZiB0ID1cbiAgICBsZXQgcmVjIGl0ZXJfYnVja2V0IGkgYiA9XG4gICAgICBpZiBpID49IGxlbmd0aCBiIHRoZW4gKCkgZWxzZVxuICAgICAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gICAgICB8IFNvbWUgdiAtPiBmIHY7IGl0ZXJfYnVja2V0IChpKzEpIGJcbiAgICAgIHwgTm9uZSAtPiBpdGVyX2J1Y2tldCAoaSsxKSBiXG4gICAgaW5cbiAgICBBcnJheS5pdGVyIChpdGVyX2J1Y2tldCAwKSB0LnRhYmxlXG5cblxuICBsZXQgaXRlcl93ZWFrIGYgdCA9XG4gICAgbGV0IHJlYyBpdGVyX2J1Y2tldCBpIGogYiA9XG4gICAgICBpZiBpID49IGxlbmd0aCBiIHRoZW4gKCkgZWxzZVxuICAgICAgbWF0Y2ggY2hlY2sgYiBpIHdpdGhcbiAgICAgIHwgdHJ1ZSAtPiBmIGIgdC5oYXNoZXMuKGopIGk7IGl0ZXJfYnVja2V0IChpKzEpIGogYlxuICAgICAgfCBmYWxzZSAtPiBpdGVyX2J1Y2tldCAoaSsxKSBqIGJcbiAgICBpblxuICAgIEFycmF5Lml0ZXJpIChpdGVyX2J1Y2tldCAwKSB0LnRhYmxlXG5cblxuICBsZXQgcmVjIGNvdW50X2J1Y2tldCBpIGIgYWNjdSA9XG4gICAgaWYgaSA+PSBsZW5ndGggYiB0aGVuIGFjY3UgZWxzZVxuICAgIGNvdW50X2J1Y2tldCAoaSsxKSBiIChhY2N1ICsgKGlmIGNoZWNrIGIgaSB0aGVuIDEgZWxzZSAwKSlcblxuXG4gIGxldCBjb3VudCB0ID1cbiAgICBBcnJheS5mb2xkX3JpZ2h0IChjb3VudF9idWNrZXQgMCkgdC50YWJsZSAwXG5cblxuICBsZXQgbmV4dF9zeiBuID0gSW50Lm1pbiAoMyAqIG4gLyAyICsgMykgU3lzLm1heF9hcnJheV9sZW5ndGhcbiAgbGV0IHByZXZfc3ogbiA9ICgobiAtIDMpICogMiArIDIpIC8gM1xuXG4gIGxldCB0ZXN0X3Nocmlua19idWNrZXQgdCA9XG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKHQucm92ZXIpIGluXG4gICAgbGV0IGhidWNrZXQgPSB0Lmhhc2hlcy4odC5yb3ZlcikgaW5cbiAgICBsZXQgbGVuID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCBwcmV2X2xlbiA9IHByZXZfc3ogbGVuIGluXG4gICAgbGV0IGxpdmUgPSBjb3VudF9idWNrZXQgMCBidWNrZXQgMCBpblxuICAgIGlmIGxpdmUgPD0gcHJldl9sZW4gdGhlbiBiZWdpblxuICAgICAgbGV0IHJlYyBsb29wIGkgaiA9XG4gICAgICAgIGlmIGogPj0gcHJldl9sZW4gdGhlbiBiZWdpblxuICAgICAgICAgIGlmIGNoZWNrIGJ1Y2tldCBpIHRoZW4gbG9vcCAoaSArIDEpIGpcbiAgICAgICAgICBlbHNlIGlmIGNoZWNrIGJ1Y2tldCBqIHRoZW4gYmVnaW5cbiAgICAgICAgICAgIGJsaXQgYnVja2V0IGogYnVja2V0IGkgMTtcbiAgICAgICAgICAgIGhidWNrZXQuKGkpIDwtIGhidWNrZXQuKGopO1xuICAgICAgICAgICAgbG9vcCAoaSArIDEpIChqIC0gMSk7XG4gICAgICAgICAgZW5kIGVsc2UgbG9vcCBpIChqIC0gMSk7XG4gICAgICAgIGVuZDtcbiAgICAgIGluXG4gICAgICBsb29wIDAgKGxlbmd0aCBidWNrZXQgLSAxKTtcbiAgICAgIGlmIHByZXZfbGVuID0gMCB0aGVuIGJlZ2luXG4gICAgICAgIHQudGFibGUuKHQucm92ZXIpIDwtIGVtcHR5YnVja2V0O1xuICAgICAgICB0Lmhhc2hlcy4odC5yb3ZlcikgPC0gW3wgfF07XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBsZXQgbmV3YnVja2V0ID0gd2Vha19jcmVhdGUgcHJldl9sZW4gaW5cbiAgICAgICAgYmxpdCBidWNrZXQgMCBuZXdidWNrZXQgMCBwcmV2X2xlbjtcbiAgICAgICAgdC50YWJsZS4odC5yb3ZlcikgPC0gbmV3YnVja2V0O1xuICAgICAgICB0Lmhhc2hlcy4odC5yb3ZlcikgPC0gQXJyYXkuc3ViIGhidWNrZXQgMCBwcmV2X2xlblxuICAgICAgZW5kO1xuICAgICAgaWYgbGVuID4gdC5saW1pdCAmJiBwcmV2X2xlbiA8PSB0LmxpbWl0IHRoZW4gdC5vdmVyc2l6ZSA8LSB0Lm92ZXJzaXplIC0gMTtcbiAgICBlbmQ7XG4gICAgdC5yb3ZlciA8LSAodC5yb3ZlciArIDEpIG1vZCAoQXJyYXkubGVuZ3RoIHQudGFibGUpXG5cblxuICBsZXQgcmVjIHJlc2l6ZSB0ID1cbiAgICBsZXQgb2xkbGVuID0gQXJyYXkubGVuZ3RoIHQudGFibGUgaW5cbiAgICBsZXQgbmV3bGVuID0gbmV4dF9zeiBvbGRsZW4gaW5cbiAgICBpZiBuZXdsZW4gPiBvbGRsZW4gdGhlbiBiZWdpblxuICAgICAgbGV0IG5ld3QgPSBjcmVhdGUgbmV3bGVuIGluXG4gICAgICBsZXQgYWRkX3dlYWsgb2Igb2ggb2kgPVxuICAgICAgICBsZXQgc2V0dGVyIG5iIG5pIF8gPSBibGl0IG9iIG9pIG5iIG5pIDEgaW5cbiAgICAgICAgbGV0IGggPSBvaC4ob2kpIGluXG4gICAgICAgIGFkZF9hdXggbmV3dCBzZXR0ZXIgTm9uZSBoIChnZXRfaW5kZXggbmV3dCBoKTtcbiAgICAgIGluXG4gICAgICBpdGVyX3dlYWsgYWRkX3dlYWsgdDtcbiAgICAgIHQudGFibGUgPC0gbmV3dC50YWJsZTtcbiAgICAgIHQuaGFzaGVzIDwtIG5ld3QuaGFzaGVzO1xuICAgICAgdC5saW1pdCA8LSBuZXd0LmxpbWl0O1xuICAgICAgdC5vdmVyc2l6ZSA8LSBuZXd0Lm92ZXJzaXplO1xuICAgICAgdC5yb3ZlciA8LSB0LnJvdmVyIG1vZCBBcnJheS5sZW5ndGggbmV3dC50YWJsZTtcbiAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgdC5saW1pdCA8LSBtYXhfaW50OyAgICAgICAgICAgICAoKiBtYXhpbXVtIHNpemUgYWxyZWFkeSByZWFjaGVkICopXG4gICAgICB0Lm92ZXJzaXplIDwtIDA7XG4gICAgZW5kXG5cbiAgYW5kIGFkZF9hdXggdCBzZXR0ZXIgZCBoIGluZGV4ID1cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBuZXdzeiA9XG4gICAgICAgICAgSW50Lm1pbiAoMyAqIHN6IC8gMiArIDMpIChTeXMubWF4X2FycmF5X2xlbmd0aCAtIGFkZGl0aW9uYWxfdmFsdWVzKVxuICAgICAgICBpblxuICAgICAgICBpZiBuZXdzeiA8PSBzeiB0aGVuIGZhaWx3aXRoIFwiV2Vhay5NYWtlOiBoYXNoIGJ1Y2tldCBjYW5ub3QgZ3JvdyBtb3JlXCI7XG4gICAgICAgIGxldCBuZXdidWNrZXQgPSB3ZWFrX2NyZWF0ZSBuZXdzeiBpblxuICAgICAgICBsZXQgbmV3aGFzaGVzID0gQXJyYXkubWFrZSBuZXdzeiAwIGluXG4gICAgICAgIGJsaXQgYnVja2V0IDAgbmV3YnVja2V0IDAgc3o7XG4gICAgICAgIEFycmF5LmJsaXQgaGFzaGVzIDAgbmV3aGFzaGVzIDAgc3o7XG4gICAgICAgIHNldHRlciBuZXdidWNrZXQgc3ogZDtcbiAgICAgICAgbmV3aGFzaGVzLihzeikgPC0gaDtcbiAgICAgICAgdC50YWJsZS4oaW5kZXgpIDwtIG5ld2J1Y2tldDtcbiAgICAgICAgdC5oYXNoZXMuKGluZGV4KSA8LSBuZXdoYXNoZXM7XG4gICAgICAgIGlmIHN6IDw9IHQubGltaXQgJiYgbmV3c3ogPiB0LmxpbWl0IHRoZW4gYmVnaW5cbiAgICAgICAgICB0Lm92ZXJzaXplIDwtIHQub3ZlcnNpemUgKyAxO1xuICAgICAgICAgIGZvciBfaSA9IDAgdG8gb3Zlcl9saW1pdCBkbyB0ZXN0X3Nocmlua19idWNrZXQgdCBkb25lO1xuICAgICAgICBlbmQ7XG4gICAgICAgIGlmIHQub3ZlcnNpemUgPiBBcnJheS5sZW5ndGggdC50YWJsZSAvIG92ZXJfbGltaXQgdGhlbiByZXNpemUgdDtcbiAgICAgIGVuZCBlbHNlIGlmIGNoZWNrIGJ1Y2tldCBpIHRoZW4gYmVnaW5cbiAgICAgICAgbG9vcCAoaSArIDEpXG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXR0ZXIgYnVja2V0IGkgZDtcbiAgICAgICAgaGFzaGVzLihpKSA8LSBoO1xuICAgICAgZW5kO1xuICAgIGluXG4gICAgbG9vcCAwXG5cblxuICBsZXQgYWRkIHQgZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGFkZF9hdXggdCBzZXQgKFNvbWUgZCkgaCAoZ2V0X2luZGV4IHQgaClcblxuXG4gIGxldCBmaW5kX29yIHQgZCBpZm5vdGZvdW5kID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgbGV0IGluZGV4ID0gZ2V0X2luZGV4IHQgaCBpblxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gaWZub3Rmb3VuZCBoIGluZGV4XG4gICAgICBlbHNlIGlmIGggPSBoYXNoZXMuKGkpIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggZ2V0X2NvcHkgYnVja2V0IGkgd2l0aFxuICAgICAgICB8IFNvbWUgdiB3aGVuIEguZXF1YWwgdiBkXG4gICAgICAgICAgIC0+IGJlZ2luIG1hdGNoIGdldCBidWNrZXQgaSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSB2IC0+IHZcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgfCBfIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgZW5kIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuXG4gIGxldCBtZXJnZSB0IGQgPVxuICAgIGZpbmRfb3IgdCBkIChmdW4gaCBpbmRleCAtPiBhZGRfYXV4IHQgc2V0IChTb21lIGQpIGggaW5kZXg7IGQpXG5cblxuICBsZXQgZmluZCB0IGQgPSBmaW5kX29yIHQgZCAoZnVuIF9oIF9pbmRleCAtPiByYWlzZSBOb3RfZm91bmQpXG5cbiAgbGV0IGZpbmRfb3B0IHQgZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIE5vbmVcbiAgICAgIGVsc2UgaWYgaCA9IGhhc2hlcy4oaSkgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBnZXRfY29weSBidWNrZXQgaSB3aXRoXG4gICAgICAgIHwgU29tZSB2IHdoZW4gSC5lcXVhbCB2IGRcbiAgICAgICAgICAgLT4gYmVnaW4gbWF0Y2ggZ2V0IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIF8gYXMgdiAtPiB2XG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBsb29wIChpICsgMSlcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgXyAtPiBsb29wIChpICsgMSlcbiAgICAgIGVuZCBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cblxuICBsZXQgZmluZF9zaGFkb3cgdCBkIGlmZm91bmQgaWZub3Rmb3VuZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIGlmbm90Zm91bmRcbiAgICAgIGVsc2UgaWYgaCA9IGhhc2hlcy4oaSkgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBnZXRfY29weSBidWNrZXQgaSB3aXRoXG4gICAgICAgIHwgU29tZSB2IHdoZW4gSC5lcXVhbCB2IGQgLT4gaWZmb3VuZCBidWNrZXQgaVxuICAgICAgICB8IF8gLT4gbG9vcCAoaSArIDEpXG4gICAgICBlbmQgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG5cbiAgbGV0IHJlbW92ZSB0IGQgPSBmaW5kX3NoYWRvdyB0IGQgKGZ1biB3IGkgLT4gc2V0IHcgaSBOb25lKSAoKVxuXG5cbiAgbGV0IG1lbSB0IGQgPSBmaW5kX3NoYWRvdyB0IGQgKGZ1biBfdyBfaSAtPiB0cnVlKSBmYWxzZVxuXG5cbiAgbGV0IGZpbmRfYWxsIHQgZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgYWNjdSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gYWNjdVxuICAgICAgZWxzZSBpZiBoID0gaGFzaGVzLihpKSB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGdldF9jb3B5IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgfCBTb21lIHYgd2hlbiBILmVxdWFsIHYgZFxuICAgICAgICAgICAtPiBiZWdpbiBtYXRjaCBnZXQgYnVja2V0IGkgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgdiAtPiBsb29wIChpICsgMSkgKHYgOjogYWNjdSlcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGxvb3AgKGkgKyAxKSBhY2N1XG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICB8IF8gLT4gbG9vcCAoaSArIDEpIGFjY3VcbiAgICAgIGVuZCBlbHNlIGxvb3AgKGkgKyAxKSBhY2N1XG4gICAgaW5cbiAgICBsb29wIDAgW11cblxuXG4gIGxldCBzdGF0cyB0ID1cbiAgICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIHQudGFibGUgaW5cbiAgICBsZXQgbGVucyA9IEFycmF5Lm1hcCBsZW5ndGggdC50YWJsZSBpblxuICAgIEFycmF5LnNvcnQgY29tcGFyZSBsZW5zO1xuICAgIGxldCB0b3RsZW4gPSBBcnJheS5mb2xkX2xlZnQgKCArICkgMCBsZW5zIGluXG4gICAgKGxlbiwgY291bnQgdCwgdG90bGVuLCBsZW5zLigwKSwgbGVucy4obGVuLzIpLCBsZW5zLihsZW4tMSkpXG5cblxuZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBQaWVycmUgV2VpcywgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEEgcHJldHR5LXByaW50aW5nIGZhY2lsaXR5IGFuZCBkZWZpbml0aW9uIG9mIGZvcm1hdHRlcnMgZm9yICdwYXJhbGxlbCdcbiAgIChpLmUuIHVucmVsYXRlZCBvciBpbmRlcGVuZGVudCkgcHJldHR5LXByaW50aW5nIG9uIG11bHRpcGxlIG91dCBjaGFubmVscy4gKilcblxuKCpcbiAgIFRoZSBwcmV0dHktcHJpbnRpbmcgZW5naW5lIGludGVybmFsIGRhdGEgc3RydWN0dXJlcy5cbiopXG5cbmxldCBpZCB4ID0geFxuXG4oKiBBIGRldm90ZWQgdHlwZSBmb3Igc2l6ZXMgdG8gYXZvaWQgY29uZnVzaW9uXG4gICBiZXR3ZWVuIHNpemVzIGFuZCBtZXJlIGludGVnZXJzLiAqKVxubW9kdWxlIFNpemUgOiBzaWdcbiAgdHlwZSB0XG5cbiAgdmFsIHRvX2ludCA6IHQgLT4gaW50XG4gIHZhbCBvZl9pbnQgOiBpbnQgLT4gdFxuICB2YWwgemVybyA6IHRcbiAgdmFsIHVua25vd24gOiB0XG4gIHZhbCBpc19rbm93biA6IHQgLT4gYm9vbFxuZW5kICA9IHN0cnVjdFxuICB0eXBlIHQgPSBpbnRcblxuICBsZXQgdG9faW50ID0gaWRcbiAgbGV0IG9mX2ludCA9IGlkXG4gIGxldCB6ZXJvID0gMFxuICBsZXQgdW5rbm93biA9IC0xXG4gIGxldCBpc19rbm93biBuID0gbiA+PSAwXG5lbmRcblxuXG5cbigqIFRoZSBwcmV0dHktcHJpbnRpbmcgYm94ZXMgZGVmaW5pdGlvbjpcbiAgIGEgcHJldHR5LXByaW50aW5nIGJveCBpcyBlaXRoZXJcbiAgIC0gaGJveDogaG9yaXpvbnRhbCBib3ggKG5vIGxpbmUgc3BsaXR0aW5nKVxuICAgLSB2Ym94OiB2ZXJ0aWNhbCBib3ggKGV2ZXJ5IGJyZWFrIGhpbnQgc3BsaXRzIHRoZSBsaW5lKVxuICAgLSBodmJveDogaG9yaXpvbnRhbC92ZXJ0aWNhbCBib3hcbiAgICAgKHRoZSBib3ggYmVoYXZlcyBhcyBhbiBob3Jpem9udGFsIGJveCBpZiBpdCBmaXRzIG9uXG4gICAgICB0aGUgY3VycmVudCBsaW5lLCBvdGhlcndpc2UgdGhlIGJveCBiZWhhdmVzIGFzIGEgdmVydGljYWwgYm94KVxuICAgLSBob3Zib3g6IGhvcml6b250YWwgb3IgdmVydGljYWwgY29tcGFjdGluZyBib3hcbiAgICAgKHRoZSBib3ggaXMgY29tcGFjdGluZyBtYXRlcmlhbCwgcHJpbnRpbmcgYXMgbXVjaCBtYXRlcmlhbCBhcyBwb3NzaWJsZVxuICAgICAgb24gZXZlcnkgbGluZXMpXG4gICAtIGJveDogaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBjb21wYWN0aW5nIGJveCB3aXRoIGVuaGFuY2VkIGJveCBzdHJ1Y3R1cmVcbiAgICAgKHRoZSBib3ggYmVoYXZlcyBhcyBhbiBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGJveCBidXQgYnJlYWsgaGludHMgc3BsaXRcbiAgICAgIHRoZSBsaW5lIGlmIHNwbGl0dGluZyB3b3VsZCBtb3ZlIHRvIHRoZSBsZWZ0KVxuKilcbnR5cGUgYm94X3R5cGUgPSBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuYmxvY2tfdHlwZSA9XG4gIHwgUHBfaGJveCB8IFBwX3Zib3ggfCBQcF9odmJveCB8IFBwX2hvdmJveCB8IFBwX2JveCB8IFBwX2ZpdHNcblxuXG4oKiBUaGUgcHJldHR5LXByaW50aW5nIHRva2VucyBkZWZpbml0aW9uOlxuICAgYXJlIGVpdGhlciB0ZXh0IHRvIHByaW50IG9yIHByZXR0eSBwcmludGluZ1xuICAgZWxlbWVudHMgdGhhdCBkcml2ZSBpbmRlbnRhdGlvbiBhbmQgbGluZSBzcGxpdHRpbmcuICopXG50eXBlIHBwX3Rva2VuID1cbiAgfCBQcF90ZXh0IG9mIHN0cmluZyAgICAgICAgICAoKiBub3JtYWwgdGV4dCAqKVxuICB8IFBwX2JyZWFrIG9mIHsgICAgICAgICAgICAgICgqIGNvbXBsZXRlIGJyZWFrICopXG4gICAgICBmaXRzOiBzdHJpbmcgKiBpbnQgKiBzdHJpbmc7ICAgKCogbGluZSBpcyBub3Qgc3BsaXQgKilcbiAgICAgIGJyZWFrczogc3RyaW5nICogaW50ICogc3RyaW5nOyAoKiBsaW5lIGlzIHNwbGl0ICopXG4gICAgfVxuICB8IFBwX3RicmVhayBvZiBpbnQgKiBpbnQgICAgICgqIGdvIHRvIG5leHQgdGFidWxhdGlvbiAqKVxuICB8IFBwX3N0YWIgICAgICAgICAgICAgICAgICAgICgqIHNldCBhIHRhYnVsYXRpb24gKilcbiAgfCBQcF9iZWdpbiBvZiBpbnQgKiBib3hfdHlwZSAoKiBiZWdpbm5pbmcgb2YgYSBib3ggKilcbiAgfCBQcF9lbmQgICAgICAgICAgICAgICAgICAgICAoKiBlbmQgb2YgYSBib3ggKilcbiAgfCBQcF90YmVnaW4gb2YgdGJveCAgICAgICAgICAoKiBiZWdpbm5pbmcgb2YgYSB0YWJ1bGF0aW9uIGJveCAqKVxuICB8IFBwX3RlbmQgICAgICAgICAgICAgICAgICAgICgqIGVuZCBvZiBhIHRhYnVsYXRpb24gYm94ICopXG4gIHwgUHBfbmV3bGluZSAgICAgICAgICAgICAgICAgKCogdG8gZm9yY2UgYSBuZXdsaW5lIGluc2lkZSBhIGJveCAqKVxuICB8IFBwX2lmX25ld2xpbmUgICAgICAgICAgICAgICgqIHRvIGRvIHNvbWV0aGluZyBvbmx5IGlmIHRoaXMgdmVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgaGFzIGJlZW4gYnJva2VuICopXG4gIHwgUHBfb3Blbl90YWcgb2Ygc3RhZyAgICAgICAgICgqIG9wZW5pbmcgYSB0YWcgbmFtZSAqKVxuICB8IFBwX2Nsb3NlX3RhZyAgICAgICAgICAgICAgICgqIGNsb3NpbmcgdGhlIG1vc3QgcmVjZW50bHkgb3BlbiB0YWcgKilcblxuYW5kIHN0YWcgPSAuLlxuXG5hbmQgdGJveCA9IFBwX3Rib3ggb2YgaW50IGxpc3QgcmVmICAoKiBUYWJ1bGF0aW9uIGJveCAqKVxuXG50eXBlIHRhZyA9IHN0cmluZ1xudHlwZSBzdGFnICs9IFN0cmluZ190YWcgb2YgdGFnXG5cblxuKCogVGhlIHByZXR0eS1wcmludGVyIHF1ZXVlOlxuICAgcHJldHR5LXByaW50aW5nIG1hdGVyaWFsIGlzIG5vdCB3cml0dGVuIGluIHRoZSBvdXRwdXQgYXMgc29vbiBhcyBlbWl0dGVkO1xuICAgaW5zdGVhZCwgdGhlIG1hdGVyaWFsIGlzIHNpbXBseSByZWNvcmRlZCBpbiB0aGUgcHJldHR5LXByaW50ZXIgcXVldWUsXG4gICB1bnRpbCB0aGUgZW5jbG9zaW5nIGJveCBoYXMgYSBrbm93biBjb21wdXRlZCBzaXplIGFuZCBwcm9wZXIgc3BsaXR0aW5nXG4gICBkZWNpc2lvbnMgY2FuIGJlIG1hZGUuXG5cbiAgIFRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBjb250YWlucyBmb3JtYXR0aW5nIGVsZW1lbnRzIHRvIGJlIHByaW50ZWQuXG4gICBFYWNoIGZvcm1hdHRpbmcgZWxlbWVudCBpcyBhIHR1cGxlIChzaXplLCB0b2tlbiwgbGVuZ3RoKSwgd2hlcmVcbiAgIC0gbGVuZ3RoIGlzIHRoZSBkZWNsYXJlZCBsZW5ndGggb2YgdGhlIHRva2VuLFxuICAgLSBzaXplIGlzIGVmZmVjdGl2ZSBzaXplIG9mIHRoZSB0b2tlbiB3aGVuIGl0IGlzIHByaW50ZWRcbiAgICAgKHNpemUgaXMgc2V0IHdoZW4gdGhlIHNpemUgb2YgdGhlIGJveCBpcyBrbm93biwgc28gdGhhdCBzaXplIG9mIGJyZWFrXG4gICAgICBoaW50cyBhcmUgZGVmaW5pdGl2ZSkuICopXG50eXBlIHBwX3F1ZXVlX2VsZW0gPSB7XG4gIG11dGFibGUgc2l6ZSA6IFNpemUudDtcbiAgdG9rZW4gOiBwcF90b2tlbjtcbiAgbGVuZ3RoIDogaW50O1xufVxuXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBkZWZpbml0aW9uLiAqKVxudHlwZSBwcF9xdWV1ZSA9IHBwX3F1ZXVlX2VsZW0gUXVldWUudFxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgc2Nhbm5pbmcgc3RhY2suICopXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBzY2FubmluZyBzdGFjazogc2Nhbm5pbmcgZWxlbWVudCBkZWZpbml0aW9uLiAqKVxudHlwZSBwcF9zY2FuX2VsZW0gPSB7XG4gIGxlZnRfdG90YWwgOiBpbnQ7ICgqIFZhbHVlIG9mIHBwX2xlZnRfdG90YWwgd2hlbiB0aGUgZWxlbWVudCB3YXMgZW5xdWV1ZWQuICopXG4gIHF1ZXVlX2VsZW0gOiBwcF9xdWV1ZV9lbGVtXG59XG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrOlxuICAgdGhlIGZvcm1hdHRpbmcgc3RhY2sgY29udGFpbnMgdGhlIGRlc2NyaXB0aW9uIG9mIGFsbCB0aGUgY3VycmVudGx5IGFjdGl2ZVxuICAgYm94ZXM7IHRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrIGlzIHVzZWQgdG8gc3BsaXQgdGhlIGxpbmVzXG4gICB3aGlsZSBwcmludGluZyB0b2tlbnMuICopXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrOiBmb3JtYXR0aW5nIHN0YWNrIGVsZW1lbnQgZGVmaW5pdGlvbi5cbiAgIEVhY2ggc3RhY2sgZWxlbWVudCBkZXNjcmliZXMgYSBwcmV0dHktcHJpbnRpbmcgYm94LiAqKVxudHlwZSBwcF9mb3JtYXRfZWxlbSA9IHsgYm94X3R5cGUgOiBib3hfdHlwZTsgd2lkdGggOiBpbnQgfVxuXG4oKiBUaGUgZm9ybWF0dGVyIGRlZmluaXRpb24uXG4gICBFYWNoIGZvcm1hdHRlciB2YWx1ZSBpcyBhIHByZXR0eS1wcmludGVyIGluc3RhbmNlIHdpdGggYWxsIGl0c1xuICAgbWFjaGluZXJ5LiAqKVxudHlwZSBmb3JtYXR0ZXIgPSB7XG4gICgqIFRoZSBwcmV0dHktcHJpbnRlciBzY2FubmluZyBzdGFjay4gKilcbiAgcHBfc2Nhbl9zdGFjayA6IHBwX3NjYW5fZWxlbSBTdGFjay50O1xuICAoKiBUaGUgcHJldHR5LXByaW50ZXIgZm9ybWF0dGluZyBzdGFjay4gKilcbiAgcHBfZm9ybWF0X3N0YWNrIDogcHBfZm9ybWF0X2VsZW0gU3RhY2sudDtcbiAgcHBfdGJveF9zdGFjayA6IHRib3ggU3RhY2sudDtcbiAgKCogVGhlIHByZXR0eS1wcmludGVyIHNlbWFudGljcyB0YWcgc3RhY2suICopXG4gIHBwX3RhZ19zdGFjayA6IHN0YWcgU3RhY2sudDtcbiAgcHBfbWFya19zdGFjayA6IHN0YWcgU3RhY2sudDtcbiAgKCogVmFsdWUgb2YgcmlnaHQgbWFyZ2luLiAqKVxuICBtdXRhYmxlIHBwX21hcmdpbiA6IGludDtcbiAgKCogTWluaW1hbCBzcGFjZSBsZWZ0IGJlZm9yZSBtYXJnaW4sIHdoZW4gb3BlbmluZyBhIGJveC4gKilcbiAgbXV0YWJsZSBwcF9taW5fc3BhY2VfbGVmdCA6IGludDtcbiAgKCogTWF4aW11bSB2YWx1ZSBvZiBpbmRlbnRhdGlvbjpcbiAgICAgbm8gYm94IGNhbiBiZSBvcGVuZWQgZnVydGhlci4gKilcbiAgbXV0YWJsZSBwcF9tYXhfaW5kZW50IDogaW50O1xuICAoKiBTcGFjZSByZW1haW5pbmcgb24gdGhlIGN1cnJlbnQgbGluZS4gKilcbiAgbXV0YWJsZSBwcF9zcGFjZV9sZWZ0IDogaW50O1xuICAoKiBDdXJyZW50IHZhbHVlIG9mIGluZGVudGF0aW9uLiAqKVxuICBtdXRhYmxlIHBwX2N1cnJlbnRfaW5kZW50IDogaW50O1xuICAoKiBUcnVlIHdoZW4gdGhlIGxpbmUgaGFzIGJlZW4gYnJva2VuIGJ5IHRoZSBwcmV0dHktcHJpbnRlci4gKilcbiAgbXV0YWJsZSBwcF9pc19uZXdfbGluZSA6IGJvb2w7XG4gICgqIFRvdGFsIHdpZHRoIG9mIHRva2VucyBhbHJlYWR5IHByaW50ZWQuICopXG4gIG11dGFibGUgcHBfbGVmdF90b3RhbCA6IGludDtcbiAgKCogVG90YWwgd2lkdGggb2YgdG9rZW5zIGV2ZXIgcHV0IGluIHF1ZXVlLiAqKVxuICBtdXRhYmxlIHBwX3JpZ2h0X3RvdGFsIDogaW50O1xuICAoKiBDdXJyZW50IG51bWJlciBvZiBvcGVuIGJveGVzLiAqKVxuICBtdXRhYmxlIHBwX2N1cnJfZGVwdGggOiBpbnQ7XG4gICgqIE1heGltdW0gbnVtYmVyIG9mIGJveGVzIHdoaWNoIGNhbiBiZSBzaW11bHRhbmVvdXNseSBvcGVuLiAqKVxuICBtdXRhYmxlIHBwX21heF9ib3hlcyA6IGludDtcbiAgKCogRWxsaXBzaXMgc3RyaW5nLiAqKVxuICBtdXRhYmxlIHBwX2VsbGlwc2lzIDogc3RyaW5nO1xuICAoKiBPdXRwdXQgZnVuY3Rpb24uICopXG4gIG11dGFibGUgcHBfb3V0X3N0cmluZyA6IHN0cmluZyAtPiBpbnQgLT4gaW50IC0+IHVuaXQ7XG4gICgqIEZsdXNoaW5nIGZ1bmN0aW9uLiAqKVxuICBtdXRhYmxlIHBwX291dF9mbHVzaCA6IHVuaXQgLT4gdW5pdDtcbiAgKCogT3V0cHV0IG9mIG5ldyBsaW5lcy4gKilcbiAgbXV0YWJsZSBwcF9vdXRfbmV3bGluZSA6IHVuaXQgLT4gdW5pdDtcbiAgKCogT3V0cHV0IG9mIGJyZWFrIGhpbnRzIHNwYWNlcy4gKilcbiAgbXV0YWJsZSBwcF9vdXRfc3BhY2VzIDogaW50IC0+IHVuaXQ7XG4gICgqIE91dHB1dCBvZiBpbmRlbnRhdGlvbiBvZiBuZXcgbGluZXMuICopXG4gIG11dGFibGUgcHBfb3V0X2luZGVudCA6IGludCAtPiB1bml0O1xuICAoKiBBcmUgdGFncyBwcmludGVkID8gKilcbiAgbXV0YWJsZSBwcF9wcmludF90YWdzIDogYm9vbDtcbiAgKCogQXJlIHRhZ3MgbWFya2VkID8gKilcbiAgbXV0YWJsZSBwcF9tYXJrX3RhZ3MgOiBib29sO1xuICAoKiBGaW5kIG9wZW5pbmcgYW5kIGNsb3NpbmcgbWFya2VycyBvZiB0YWdzLiAqKVxuICBtdXRhYmxlIHBwX21hcmtfb3Blbl90YWcgOiBzdGFnIC0+IHN0cmluZztcbiAgbXV0YWJsZSBwcF9tYXJrX2Nsb3NlX3RhZyA6IHN0YWcgLT4gc3RyaW5nO1xuICBtdXRhYmxlIHBwX3ByaW50X29wZW5fdGFnIDogc3RhZyAtPiB1bml0O1xuICBtdXRhYmxlIHBwX3ByaW50X2Nsb3NlX3RhZyA6IHN0YWcgLT4gdW5pdDtcbiAgKCogVGhlIHByZXR0eS1wcmludGVyIHF1ZXVlLiAqKVxuICBwcF9xdWV1ZSA6IHBwX3F1ZXVlO1xufVxuXG5cbigqIFRoZSBmb3JtYXR0ZXIgc3BlY2lmaWMgdGFnIGhhbmRsaW5nIGZ1bmN0aW9ucy4gKilcbnR5cGUgZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zID0ge1xuICBtYXJrX29wZW5fc3RhZyA6IHN0YWcgLT4gc3RyaW5nO1xuICBtYXJrX2Nsb3NlX3N0YWcgOiBzdGFnIC0+IHN0cmluZztcbiAgcHJpbnRfb3Blbl9zdGFnIDogc3RhZyAtPiB1bml0O1xuICBwcmludF9jbG9zZV9zdGFnIDogc3RhZyAtPiB1bml0O1xufVxuXG5cbigqIFRoZSBmb3JtYXR0ZXIgZnVuY3Rpb25zIHRvIG91dHB1dCBtYXRlcmlhbC4gKilcbnR5cGUgZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgPSB7XG4gIG91dF9zdHJpbmcgOiBzdHJpbmcgLT4gaW50IC0+IGludCAtPiB1bml0O1xuICBvdXRfZmx1c2ggOiB1bml0IC0+IHVuaXQ7XG4gIG91dF9uZXdsaW5lIDogdW5pdCAtPiB1bml0O1xuICBvdXRfc3BhY2VzIDogaW50IC0+IHVuaXQ7XG4gIG91dF9pbmRlbnQgOiBpbnQgLT4gdW5pdDtcbn1cblxuXG4oKlxuXG4gIEF1eGlsaWFyaWVzIGFuZCBiYXNpYyBmdW5jdGlvbnMuXG5cbiopXG5cbigqIEVudGVyIGEgdG9rZW4gaW4gdGhlIHByZXR0eS1wcmludGVyIHF1ZXVlLiAqKVxubGV0IHBwX2VucXVldWUgc3RhdGUgdG9rZW4gPVxuICBzdGF0ZS5wcF9yaWdodF90b3RhbCA8LSBzdGF0ZS5wcF9yaWdodF90b3RhbCArIHRva2VuLmxlbmd0aDtcbiAgUXVldWUuYWRkIHRva2VuIHN0YXRlLnBwX3F1ZXVlXG5cblxubGV0IHBwX2NsZWFyX3F1ZXVlIHN0YXRlID1cbiAgc3RhdGUucHBfbGVmdF90b3RhbCA8LSAxOyBzdGF0ZS5wcF9yaWdodF90b3RhbCA8LSAxO1xuICBRdWV1ZS5jbGVhciBzdGF0ZS5wcF9xdWV1ZVxuXG5cbigqIFBwX2luZmluaXR5OiBsYXJnZSB2YWx1ZSBmb3IgZGVmYXVsdCB0b2tlbnMgc2l6ZS5cblxuICAgUHBfaW5maW5pdHkgaXMgZG9jdW1lbnRlZCBhcyBiZWluZyBncmVhdGVyIHRoYW4gMWUxMDsgdG8gYXZvaWRcbiAgIGNvbmZ1c2lvbiBhYm91dCB0aGUgd29yZCAnZ3JlYXRlcicsIHdlIGNob29zZSBwcF9pbmZpbml0eSBncmVhdGVyXG4gICB0aGFuIDFlMTAgKyAxOyBmb3IgY29ycmVjdCBoYW5kbGluZyBvZiB0ZXN0cyBpbiB0aGUgYWxnb3JpdGhtLFxuICAgcHBfaW5maW5pdHkgbXVzdCBiZSBldmVuIG9uZSBtb3JlIHRoYW4gMWUxMCArIDE7IGxldCdzIHN0YW5kIG9uIHRoZVxuICAgc2FmZSBzaWRlIGJ5IGNob29zaW5nIDEuZTEwKzEwLlxuXG4gICBQcF9pbmZpbml0eSBjb3VsZCBwcm9iYWJseSBiZSAxMDczNzQxODIzIHRoYXQgaXMgMl4zMCAtIDEsIHRoYXQgaXNcbiAgIHRoZSBtaW5pbWFsIHVwcGVyIGJvdW5kIGZvciBpbnRlZ2Vyczsgbm93IHRoYXQgbWF4X2ludCBpcyBkZWZpbmVkLFxuICAgdGhpcyBsaW1pdCBjb3VsZCBhbHNvIGJlIGRlZmluZWQgYXMgbWF4X2ludCAtIDEuXG5cbiAgIEhvd2V2ZXIsIGJlZm9yZSBzZXR0aW5nIHBwX2luZmluaXR5IHRvIHNvbWV0aGluZyBhcm91bmQgbWF4X2ludCwgd2VcbiAgIG11c3QgY2FyZWZ1bGx5IGRvdWJsZS1jaGVjayBhbGwgdGhlIGludGVnZXIgYXJpdGhtZXRpYyBvcGVyYXRpb25zXG4gICB0aGF0IGludm9sdmUgcHBfaW5maW5pdHksIHNpbmNlIGFueSBvdmVyZmxvdyB3b3VsZCB3cmVjayBoYXZvYyB0aGVcbiAgIHByZXR0eS1wcmludGluZyBhbGdvcml0aG0ncyBpbnZhcmlhbnRzLiBHaXZlbiB0aGF0IHRoaXMgYXJpdGhtZXRpY1xuICAgY29ycmVjdG5lc3MgY2hlY2sgaXMgZGlmZmljdWx0IGFuZCBlcnJvciBwcm9uZSBhbmQgZ2l2ZW4gdGhhdCAxZTEwXG4gICArIDEgaXMgaW4gcHJhY3RpY2UgbGFyZ2UgZW5vdWdoLCB0aGVyZSBpcyBubyBuZWVkIHRvIGF0dGVtcHQgdG8gc2V0XG4gICBwcF9pbmZpbml0eSB0byB0aGUgdGhlb3JldGljYWxseSBtYXhpbXVtIGxpbWl0LiBJdCBpcyBub3Qgd29ydGggdGhlXG4gICBidXJkZW4gISAqKVxubGV0IHBwX2luZmluaXR5ID0gMTAwMDAwMDAxMFxuXG4oKiBPdXRwdXQgZnVuY3Rpb25zIGZvciB0aGUgZm9ybWF0dGVyLiAqKVxubGV0IHBwX291dHB1dF9zdHJpbmcgc3RhdGUgcyA9IHN0YXRlLnBwX291dF9zdHJpbmcgcyAwIChTdHJpbmcubGVuZ3RoIHMpXG5hbmQgcHBfb3V0cHV0X25ld2xpbmUgc3RhdGUgPSBzdGF0ZS5wcF9vdXRfbmV3bGluZSAoKVxuYW5kIHBwX291dHB1dF9zcGFjZXMgc3RhdGUgbiA9IHN0YXRlLnBwX291dF9zcGFjZXMgblxuYW5kIHBwX291dHB1dF9pbmRlbnQgc3RhdGUgbiA9IHN0YXRlLnBwX291dF9pbmRlbnQgblxuXG4oKiBGb3JtYXQgYSB0ZXh0dWFsIHRva2VuICopXG5sZXQgZm9ybWF0X3BwX3RleHQgc3RhdGUgc2l6ZSB0ZXh0ID1cbiAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IC0gc2l6ZTtcbiAgcHBfb3V0cHV0X3N0cmluZyBzdGF0ZSB0ZXh0O1xuICBzdGF0ZS5wcF9pc19uZXdfbGluZSA8LSBmYWxzZVxuXG4oKiBGb3JtYXQgYSBzdHJpbmcgYnkgaXRzIGxlbmd0aCwgaWYgbm90IGVtcHR5ICopXG5sZXQgZm9ybWF0X3N0cmluZyBzdGF0ZSBzID1cbiAgaWYgcyA8PiBcIlwiIHRoZW4gZm9ybWF0X3BwX3RleHQgc3RhdGUgKFN0cmluZy5sZW5ndGggcykgc1xuXG4oKiBUbyBmb3JtYXQgYSBicmVhaywgaW5kZW50aW5nIGEgbmV3IGxpbmUuICopXG5sZXQgYnJlYWtfbmV3X2xpbmUgc3RhdGUgKGJlZm9yZSwgb2Zmc2V0LCBhZnRlcikgd2lkdGggPVxuICBmb3JtYXRfc3RyaW5nIHN0YXRlIGJlZm9yZTtcbiAgcHBfb3V0cHV0X25ld2xpbmUgc3RhdGU7XG4gIHN0YXRlLnBwX2lzX25ld19saW5lIDwtIHRydWU7XG4gIGxldCBpbmRlbnQgPSBzdGF0ZS5wcF9tYXJnaW4gLSB3aWR0aCArIG9mZnNldCBpblxuICAoKiBEb24ndCBpbmRlbnQgbW9yZSB0aGFuIHBwX21heF9pbmRlbnQuICopXG4gIGxldCByZWFsX2luZGVudCA9IEludC5taW4gc3RhdGUucHBfbWF4X2luZGVudCBpbmRlbnQgaW5cbiAgc3RhdGUucHBfY3VycmVudF9pbmRlbnQgPC0gcmVhbF9pbmRlbnQ7XG4gIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfY3VycmVudF9pbmRlbnQ7XG4gIHBwX291dHB1dF9pbmRlbnQgc3RhdGUgc3RhdGUucHBfY3VycmVudF9pbmRlbnQ7XG4gIGZvcm1hdF9zdHJpbmcgc3RhdGUgYWZ0ZXJcblxuXG4oKiBUbyBmb3JjZSBhIGxpbmUgYnJlYWsgaW5zaWRlIGEgYm94OiBubyBvZmZzZXQgaXMgYWRkZWQuICopXG5sZXQgYnJlYWtfbGluZSBzdGF0ZSB3aWR0aCA9IGJyZWFrX25ld19saW5lIHN0YXRlIChcIlwiLCAwLCBcIlwiKSB3aWR0aFxuXG4oKiBUbyBmb3JtYXQgYSBicmVhayB0aGF0IGZpdHMgb24gdGhlIGN1cnJlbnQgbGluZS4gKilcbmxldCBicmVha19zYW1lX2xpbmUgc3RhdGUgKGJlZm9yZSwgd2lkdGgsIGFmdGVyKSA9XG4gIGZvcm1hdF9zdHJpbmcgc3RhdGUgYmVmb3JlO1xuICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX3NwYWNlX2xlZnQgLSB3aWR0aDtcbiAgcHBfb3V0cHV0X3NwYWNlcyBzdGF0ZSB3aWR0aDtcbiAgZm9ybWF0X3N0cmluZyBzdGF0ZSBhZnRlclxuXG5cbigqIFRvIGluZGVudCBubyBtb3JlIHRoYW4gcHBfbWF4X2luZGVudCwgaWYgb25lIHRyaWVzIHRvIG9wZW4gYSBib3hcbiAgIGJleW9uZCBwcF9tYXhfaW5kZW50LCB0aGVuIHRoZSBib3ggaXMgcmVqZWN0ZWQgb24gdGhlIGxlZnRcbiAgIGJ5IHNpbXVsYXRpbmcgYSBicmVhay4gKilcbmxldCBwcF9mb3JjZV9icmVha19saW5lIHN0YXRlID1cbiAgbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF9mb3JtYXRfc3RhY2sgd2l0aFxuICB8IE5vbmUgLT4gcHBfb3V0cHV0X25ld2xpbmUgc3RhdGVcbiAgfCBTb21lIHsgYm94X3R5cGU7IHdpZHRoIH0gLT5cbiAgICBpZiB3aWR0aCA+IHN0YXRlLnBwX3NwYWNlX2xlZnQgdGhlblxuICAgICAgbWF0Y2ggYm94X3R5cGUgd2l0aFxuICAgICAgfCBQcF9maXRzIHwgUHBfaGJveCAtPiAoKVxuICAgICAgfCBQcF92Ym94IHwgUHBfaHZib3ggfCBQcF9ob3Zib3ggfCBQcF9ib3ggLT4gYnJlYWtfbGluZSBzdGF0ZSB3aWR0aFxuXG5cbigqIFRvIHNraXAgYSB0b2tlbiwgaWYgdGhlIHByZXZpb3VzIGxpbmUgaGFzIGJlZW4gYnJva2VuLiAqKVxubGV0IHBwX3NraXBfdG9rZW4gc3RhdGUgPVxuICBtYXRjaCBRdWV1ZS50YWtlX29wdCBzdGF0ZS5wcF9xdWV1ZSB3aXRoXG4gIHwgTm9uZSAtPiAoKSAoKiBwcmludF9pZl9uZXdsaW5lIG11c3QgaGF2ZSBiZWVuIHRoZSBsYXN0IHByaW50aW5nIGNvbW1hbmQgKilcbiAgfCBTb21lIHsgc2l6ZTsgbGVuZ3RoOyBfIH0gLT5cbiAgICBzdGF0ZS5wcF9sZWZ0X3RvdGFsIDwtIHN0YXRlLnBwX2xlZnRfdG90YWwgLSBsZW5ndGg7XG4gICAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9zcGFjZV9sZWZ0ICsgU2l6ZS50b19pbnQgc2l6ZVxuXG5cbigqXG5cbiAgVGhlIG1haW4gcHJldHR5IHByaW50aW5nIGZ1bmN0aW9ucy5cblxuKilcblxuKCogRm9ybWF0dGluZyBhIHRva2VuIHdpdGggYSBnaXZlbiBzaXplLiAqKVxubGV0IGZvcm1hdF9wcF90b2tlbiBzdGF0ZSBzaXplID0gZnVuY3Rpb25cblxuICB8IFBwX3RleHQgcyAtPlxuICAgIGZvcm1hdF9wcF90ZXh0IHN0YXRlIHNpemUgc1xuXG4gIHwgUHBfYmVnaW4gKG9mZiwgdHkpIC0+XG4gICAgbGV0IGluc2VydGlvbl9wb2ludCA9IHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX3NwYWNlX2xlZnQgaW5cbiAgICBpZiBpbnNlcnRpb25fcG9pbnQgPiBzdGF0ZS5wcF9tYXhfaW5kZW50IHRoZW5cbiAgICAgICgqIGNhbiBub3Qgb3BlbiBhIGJveCByaWdodCB0aGVyZS4gKilcbiAgICAgIGJlZ2luIHBwX2ZvcmNlX2JyZWFrX2xpbmUgc3RhdGUgZW5kO1xuICAgIGxldCB3aWR0aCA9IHN0YXRlLnBwX3NwYWNlX2xlZnQgLSBvZmYgaW5cbiAgICBsZXQgYm94X3R5cGUgPVxuICAgICAgbWF0Y2ggdHkgd2l0aFxuICAgICAgfCBQcF92Ym94IC0+IFBwX3Zib3hcbiAgICAgIHwgUHBfaGJveCB8IFBwX2h2Ym94IHwgUHBfaG92Ym94IHwgUHBfYm94IHwgUHBfZml0cyAtPlxuICAgICAgICBpZiBzaXplID4gc3RhdGUucHBfc3BhY2VfbGVmdCB0aGVuIHR5IGVsc2UgUHBfZml0cyBpblxuICAgIFN0YWNrLnB1c2ggeyBib3hfdHlwZTsgd2lkdGggfSBzdGF0ZS5wcF9mb3JtYXRfc3RhY2tcblxuICB8IFBwX2VuZCAtPlxuICAgIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfZm9ybWF0X3N0YWNrIHw+IGlnbm9yZVxuXG4gIHwgUHBfdGJlZ2luIChQcF90Ym94IF8gYXMgdGJveCkgLT5cbiAgICBTdGFjay5wdXNoIHRib3ggc3RhdGUucHBfdGJveF9zdGFja1xuXG4gIHwgUHBfdGVuZCAtPlxuICAgIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfdGJveF9zdGFjayB8PiBpZ25vcmVcblxuICB8IFBwX3N0YWIgLT5cbiAgICBiZWdpbiBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX3Rib3hfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiAoKSAoKiBObyBvcGVuIHRhYnVsYXRpb24gYm94LiAqKVxuICAgIHwgU29tZSAoUHBfdGJveCB0YWJzKSAtPlxuICAgICAgbGV0IHJlYyBhZGRfdGFiIG4gPSBmdW5jdGlvblxuICAgICAgICB8IFtdIC0+IFtuXVxuICAgICAgICB8IHggOjogbCBhcyBscyAtPiBpZiBuIDwgeCB0aGVuIG4gOjogbHMgZWxzZSB4IDo6IGFkZF90YWIgbiBsIGluXG4gICAgICB0YWJzIDo9IGFkZF90YWIgKHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX3NwYWNlX2xlZnQpICF0YWJzXG4gICAgZW5kXG5cbiAgfCBQcF90YnJlYWsgKG4sIG9mZikgLT5cbiAgICBsZXQgaW5zZXJ0aW9uX3BvaW50ID0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfc3BhY2VfbGVmdCBpblxuICAgIGJlZ2luIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfdGJveF9zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+ICgpICgqIE5vIG9wZW4gdGFidWxhdGlvbiBib3guICopXG4gICAgfCBTb21lIChQcF90Ym94IHRhYnMpIC0+XG4gICAgICBsZXQgdGFiID1cbiAgICAgICAgbWF0Y2ggIXRhYnMgd2l0aFxuICAgICAgICB8IFtdIC0+IGluc2VydGlvbl9wb2ludFxuICAgICAgICB8IGZpcnN0IDo6IF8gLT5cbiAgICAgICAgICBsZXQgcmVjIGZpbmQgPSBmdW5jdGlvblxuICAgICAgICAgICAgfCBoZWFkIDo6IHRhaWwgLT5cbiAgICAgICAgICAgICAgaWYgaGVhZCA+PSBpbnNlcnRpb25fcG9pbnQgdGhlbiBoZWFkIGVsc2UgZmluZCB0YWlsXG4gICAgICAgICAgICB8IFtdIC0+IGZpcnN0IGluXG4gICAgICAgICAgZmluZCAhdGFicyBpblxuICAgICAgbGV0IG9mZnNldCA9IHRhYiAtIGluc2VydGlvbl9wb2ludCBpblxuICAgICAgaWYgb2Zmc2V0ID49IDBcbiAgICAgIHRoZW4gYnJlYWtfc2FtZV9saW5lIHN0YXRlIChcIlwiLCBvZmZzZXQgKyBuLCBcIlwiKVxuICAgICAgZWxzZSBicmVha19uZXdfbGluZSBzdGF0ZSAoXCJcIiwgdGFiICsgb2ZmLCBcIlwiKSBzdGF0ZS5wcF9tYXJnaW5cbiAgICBlbmRcblxuICB8IFBwX25ld2xpbmUgLT5cbiAgICBiZWdpbiBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX2Zvcm1hdF9zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+IHBwX291dHB1dF9uZXdsaW5lIHN0YXRlICgqIE5vIG9wZW4gYm94LiAqKVxuICAgIHwgU29tZSB7IHdpZHRoOyBffSAtPiBicmVha19saW5lIHN0YXRlIHdpZHRoXG4gICAgZW5kXG5cbiAgfCBQcF9pZl9uZXdsaW5lIC0+XG4gICAgaWYgc3RhdGUucHBfY3VycmVudF9pbmRlbnQgIT0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfc3BhY2VfbGVmdFxuICAgIHRoZW4gcHBfc2tpcF90b2tlbiBzdGF0ZVxuXG4gIHwgUHBfYnJlYWsgeyBmaXRzOyBicmVha3MgfSAtPlxuICAgIGxldCBiZWZvcmUsIG9mZiwgXyA9IGJyZWFrcyBpblxuICAgIGJlZ2luIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfZm9ybWF0X3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gKCkgKCogTm8gb3BlbiBib3guICopXG4gICAgfCBTb21lIHsgYm94X3R5cGU7IHdpZHRoIH0gLT5cbiAgICAgIGJlZ2luIG1hdGNoIGJveF90eXBlIHdpdGhcbiAgICAgIHwgUHBfaG92Ym94IC0+XG4gICAgICAgIGlmIHNpemUgKyBTdHJpbmcubGVuZ3RoIGJlZm9yZSA+IHN0YXRlLnBwX3NwYWNlX2xlZnRcbiAgICAgICAgdGhlbiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGhcbiAgICAgICAgZWxzZSBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0c1xuICAgICAgfCBQcF9ib3ggLT5cbiAgICAgICAgKCogSGF2ZSB0aGUgbGluZSBqdXN0IGJlZW4gYnJva2VuIGhlcmUgPyAqKVxuICAgICAgICBpZiBzdGF0ZS5wcF9pc19uZXdfbGluZSB0aGVuIGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzIGVsc2VcbiAgICAgICAgaWYgc2l6ZSArIFN0cmluZy5sZW5ndGggYmVmb3JlID4gc3RhdGUucHBfc3BhY2VfbGVmdFxuICAgICAgICAgIHRoZW4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoIGVsc2VcbiAgICAgICAgKCogYnJlYWsgdGhlIGxpbmUgaGVyZSBsZWFkcyB0byBuZXcgaW5kZW50YXRpb24gPyAqKVxuICAgICAgICBpZiBzdGF0ZS5wcF9jdXJyZW50X2luZGVudCA+IHN0YXRlLnBwX21hcmdpbiAtIHdpZHRoICsgb2ZmXG4gICAgICAgIHRoZW4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoXG4gICAgICAgIGVsc2UgYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHNcbiAgICAgIHwgUHBfaHZib3ggLT4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoXG4gICAgICB8IFBwX2ZpdHMgLT4gYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHNcbiAgICAgIHwgUHBfdmJveCAtPiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGhcbiAgICAgIHwgUHBfaGJveCAtPiBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0c1xuICAgICAgZW5kXG4gICAgZW5kXG5cbiAgIHwgUHBfb3Blbl90YWcgdGFnX25hbWUgLT5cbiAgICAgbGV0IG1hcmtlciA9IHN0YXRlLnBwX21hcmtfb3Blbl90YWcgdGFnX25hbWUgaW5cbiAgICAgcHBfb3V0cHV0X3N0cmluZyBzdGF0ZSBtYXJrZXI7XG4gICAgIFN0YWNrLnB1c2ggdGFnX25hbWUgc3RhdGUucHBfbWFya19zdGFja1xuXG4gICB8IFBwX2Nsb3NlX3RhZyAtPlxuICAgICBiZWdpbiBtYXRjaCBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX21hcmtfc3RhY2sgd2l0aFxuICAgICB8IE5vbmUgLT4gKCkgKCogTm8gbW9yZSB0YWcgdG8gY2xvc2UuICopXG4gICAgIHwgU29tZSB0YWdfbmFtZSAtPlxuICAgICAgIGxldCBtYXJrZXIgPSBzdGF0ZS5wcF9tYXJrX2Nsb3NlX3RhZyB0YWdfbmFtZSBpblxuICAgICAgIHBwX291dHB1dF9zdHJpbmcgc3RhdGUgbWFya2VyXG4gICAgIGVuZFxuXG5cbigqIFByaW50IGlmIHRva2VuIHNpemUgaXMga25vd24gZWxzZSBwcmludGluZyBpcyBkZWxheWVkLlxuICAgUHJpbnRpbmcgaXMgZGVsYXllZCB3aGVuIHRoZSB0ZXh0IHdhaXRpbmcgaW4gdGhlIHF1ZXVlIHJlcXVpcmVzXG4gICBtb3JlIHJvb20gdG8gZm9ybWF0IHRoYW4gZXhpc3RzIG9uIHRoZSBjdXJyZW50IGxpbmUuICopXG5sZXQgcmVjIGFkdmFuY2VfbGVmdCBzdGF0ZSA9XG4gIG1hdGNoIFF1ZXVlLnBlZWtfb3B0IHN0YXRlLnBwX3F1ZXVlIHdpdGhcbiAgfCBOb25lIC0+ICgpICgqIE5vIHRva2VucyB0byBwcmludCAqKVxuICB8IFNvbWUgeyBzaXplOyB0b2tlbjsgbGVuZ3RoIH0gLT5cbiAgICBsZXQgcGVuZGluZ19jb3VudCA9IHN0YXRlLnBwX3JpZ2h0X3RvdGFsIC0gc3RhdGUucHBfbGVmdF90b3RhbCBpblxuICAgIGlmIFNpemUuaXNfa25vd24gc2l6ZSB8fCBwZW5kaW5nX2NvdW50ID49IHN0YXRlLnBwX3NwYWNlX2xlZnQgdGhlbiBiZWdpblxuICAgICAgUXVldWUudGFrZSBzdGF0ZS5wcF9xdWV1ZSB8PiBpZ25vcmU7ICgqIE5vdCBlbXB0eTogd2UgcGVlayBpbnRvIGl0ICopXG4gICAgICBsZXQgc2l6ZSA9IGlmIFNpemUuaXNfa25vd24gc2l6ZSB0aGVuIFNpemUudG9faW50IHNpemUgZWxzZSBwcF9pbmZpbml0eSBpblxuICAgICAgZm9ybWF0X3BwX3Rva2VuIHN0YXRlIHNpemUgdG9rZW47XG4gICAgICBzdGF0ZS5wcF9sZWZ0X3RvdGFsIDwtIGxlbmd0aCArIHN0YXRlLnBwX2xlZnRfdG90YWw7XG4gICAgICAoYWR2YW5jZV9sZWZ0IFtAdGFpbGNhbGxdKSBzdGF0ZVxuICAgIGVuZFxuXG5cbigqIFRvIGVucXVldWUgYSB0b2tlbiA6IHRyeSB0byBhZHZhbmNlLiAqKVxubGV0IGVucXVldWVfYWR2YW5jZSBzdGF0ZSB0b2sgPSBwcF9lbnF1ZXVlIHN0YXRlIHRvazsgYWR2YW5jZV9sZWZ0IHN0YXRlXG5cblxuKCogVG8gZW5xdWV1ZSBzdHJpbmdzLiAqKVxubGV0IGVucXVldWVfc3RyaW5nX2FzIHN0YXRlIHNpemUgcyA9XG4gIGVucXVldWVfYWR2YW5jZSBzdGF0ZSB7IHNpemU7IHRva2VuID0gUHBfdGV4dCBzOyBsZW5ndGggPSBTaXplLnRvX2ludCBzaXplIH1cblxuXG5sZXQgZW5xdWV1ZV9zdHJpbmcgc3RhdGUgcyA9XG4gIGVucXVldWVfc3RyaW5nX2FzIHN0YXRlIChTaXplLm9mX2ludCAoU3RyaW5nLmxlbmd0aCBzKSkgc1xuXG5cbigqIFJvdXRpbmVzIGZvciBzY2FuIHN0YWNrXG4gICBkZXRlcm1pbmUgc2l6ZSBvZiBib3hlcy4gKilcblxuKCogVGhlIHNjYW5fc3RhY2sgaXMgbmV2ZXIgZW1wdHkuICopXG5sZXQgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHN0YWNrID1cbiAgU3RhY2suY2xlYXIgc3RhY2s7XG4gIGxldCBxdWV1ZV9lbGVtID0geyBzaXplID0gU2l6ZS51bmtub3duOyB0b2tlbiA9IFBwX3RleHQgXCJcIjsgbGVuZ3RoID0gMCB9IGluXG4gIFN0YWNrLnB1c2ggeyBsZWZ0X3RvdGFsID0gLTE7IHF1ZXVlX2VsZW0gfSBzdGFja1xuXG4oKiBTZXR0aW5nIHRoZSBzaXplIG9mIGJveGVzIG9uIHNjYW4gc3RhY2s6XG4gICBpZiB0eSA9IHRydWUgdGhlbiBzaXplIG9mIGJyZWFrIGlzIHNldCBlbHNlIHNpemUgb2YgYm94IGlzIHNldDtcbiAgIGluIGVhY2ggY2FzZSBwcF9zY2FuX3N0YWNrIGlzIHBvcHBlZC5cblxuICAgTm90ZTpcbiAgIFBhdHRlcm4gbWF0Y2hpbmcgb24gc2NhbiBzdGFjayBpcyBleGhhdXN0aXZlLCBzaW5jZSBzY2FuX3N0YWNrIGlzIG5ldmVyXG4gICBlbXB0eS5cbiAgIFBhdHRlcm4gbWF0Y2hpbmcgb24gdG9rZW4gaW4gc2NhbiBzdGFjayBpcyBhbHNvIGV4aGF1c3RpdmUsXG4gICBzaW5jZSBzY2FuX3B1c2ggaXMgdXNlZCBvbiBicmVha3MgYW5kIG9wZW5pbmcgb2YgYm94ZXMuICopXG5sZXQgc2V0X3NpemUgc3RhdGUgdHkgPVxuICBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX3NjYW5fc3RhY2sgd2l0aFxuICB8IE5vbmUgLT4gKCkgKCogc2Nhbl9zdGFjayBpcyBuZXZlciBlbXB0eS4gKilcbiAgfCBTb21lIHsgbGVmdF90b3RhbDsgcXVldWVfZWxlbSB9IC0+XG4gICAgbGV0IHNpemUgPSBTaXplLnRvX2ludCBxdWV1ZV9lbGVtLnNpemUgaW5cbiAgICAoKiB0ZXN0IGlmIHNjYW4gc3RhY2sgY29udGFpbnMgYW55IGRhdGEgdGhhdCBpcyBub3Qgb2Jzb2xldGUuICopXG4gICAgaWYgbGVmdF90b3RhbCA8IHN0YXRlLnBwX2xlZnRfdG90YWwgdGhlblxuICAgICAgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHN0YXRlLnBwX3NjYW5fc3RhY2tcbiAgICBlbHNlXG4gICAgICBtYXRjaCBxdWV1ZV9lbGVtLnRva2VuIHdpdGhcbiAgICAgIHwgUHBfYnJlYWsgXyB8IFBwX3RicmVhayAoXywgXykgLT5cbiAgICAgICAgaWYgdHkgdGhlbiBiZWdpblxuICAgICAgICAgIHF1ZXVlX2VsZW0uc2l6ZSA8LSBTaXplLm9mX2ludCAoc3RhdGUucHBfcmlnaHRfdG90YWwgKyBzaXplKTtcbiAgICAgICAgICBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX3NjYW5fc3RhY2sgfD4gaWdub3JlXG4gICAgICAgIGVuZFxuICAgICAgfCBQcF9iZWdpbiAoXywgXykgLT5cbiAgICAgICAgaWYgbm90IHR5IHRoZW4gYmVnaW5cbiAgICAgICAgICBxdWV1ZV9lbGVtLnNpemUgPC0gU2l6ZS5vZl9pbnQgKHN0YXRlLnBwX3JpZ2h0X3RvdGFsICsgc2l6ZSk7XG4gICAgICAgICAgU3RhY2sucG9wX29wdCBzdGF0ZS5wcF9zY2FuX3N0YWNrIHw+IGlnbm9yZVxuICAgICAgICBlbmRcbiAgICAgIHwgUHBfdGV4dCBfIHwgUHBfc3RhYiB8IFBwX3RiZWdpbiBfIHwgUHBfdGVuZCB8IFBwX2VuZFxuICAgICAgfCBQcF9uZXdsaW5lIHwgUHBfaWZfbmV3bGluZSB8IFBwX29wZW5fdGFnIF8gfCBQcF9jbG9zZV90YWcgLT5cbiAgICAgICAgKCkgKCogc2Nhbl9wdXNoIGlzIG9ubHkgdXNlZCBmb3IgYnJlYWtzIGFuZCBib3hlcy4gKilcblxuXG4oKiBQdXNoIGEgdG9rZW4gb24gcHJldHR5LXByaW50ZXIgc2Nhbm5pbmcgc3RhY2suXG4gICBJZiBiIGlzIHRydWUgc2V0X3NpemUgaXMgY2FsbGVkLiAqKVxubGV0IHNjYW5fcHVzaCBzdGF0ZSBiIHRva2VuID1cbiAgcHBfZW5xdWV1ZSBzdGF0ZSB0b2tlbjtcbiAgaWYgYiB0aGVuIHNldF9zaXplIHN0YXRlIHRydWU7XG4gIGxldCBlbGVtID0geyBsZWZ0X3RvdGFsID0gc3RhdGUucHBfcmlnaHRfdG90YWw7IHF1ZXVlX2VsZW0gPSB0b2tlbiB9IGluXG4gIFN0YWNrLnB1c2ggZWxlbSBzdGF0ZS5wcF9zY2FuX3N0YWNrXG5cblxuKCogVG8gb3BlbiBhIG5ldyBib3ggOlxuICAgdGhlIHVzZXIgbWF5IHNldCB0aGUgZGVwdGggYm91bmQgcHBfbWF4X2JveGVzXG4gICBhbnkgdGV4dCBuZXN0ZWQgZGVlcGVyIGlzIHByaW50ZWQgYXMgdGhlIGVsbGlwc2lzIHN0cmluZy4gKilcbmxldCBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IGJyX3R5ID1cbiAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoICsgMTtcbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IHNpemUgPSBTaXplLm9mX2ludCAoLSBzdGF0ZS5wcF9yaWdodF90b3RhbCkgaW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZTsgdG9rZW4gPSBQcF9iZWdpbiAoaW5kZW50LCBicl90eSk7IGxlbmd0aCA9IDAgfSBpblxuICAgIHNjYW5fcHVzaCBzdGF0ZSBmYWxzZSBlbGVtIGVsc2VcbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA9IHN0YXRlLnBwX21heF9ib3hlc1xuICB0aGVuIGVucXVldWVfc3RyaW5nIHN0YXRlIHN0YXRlLnBwX2VsbGlwc2lzXG5cblxuKCogVGhlIGJveCB3aGljaCBpcyBhbHdheXMgb3Blbi4gKilcbmxldCBwcF9vcGVuX3N5c19ib3ggc3RhdGUgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgMCBQcF9ob3Zib3hcblxuKCogQ2xvc2UgYSBib3gsIHNldHRpbmcgc2l6ZXMgb2YgaXRzIHN1YiBib3hlcy4gKilcbmxldCBwcF9jbG9zZV9ib3ggc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoID4gMSB0aGVuXG4gIGJlZ2luXG4gICAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgYmVnaW5cbiAgICAgIHBwX2VucXVldWUgc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX2VuZDsgbGVuZ3RoID0gMCB9O1xuICAgICAgc2V0X3NpemUgc3RhdGUgdHJ1ZTsgc2V0X3NpemUgc3RhdGUgZmFsc2VcbiAgICBlbmQ7XG4gICAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoIC0gMTtcbiAgZW5kXG5cblxuKCogT3BlbiBhIHRhZywgcHVzaGluZyBpdCBvbiB0aGUgdGFnIHN0YWNrLiAqKVxubGV0IHBwX29wZW5fc3RhZyBzdGF0ZSB0YWdfbmFtZSA9XG4gIGlmIHN0YXRlLnBwX3ByaW50X3RhZ3MgdGhlblxuICBiZWdpblxuICAgIFN0YWNrLnB1c2ggdGFnX25hbWUgc3RhdGUucHBfdGFnX3N0YWNrO1xuICAgIHN0YXRlLnBwX3ByaW50X29wZW5fdGFnIHRhZ19uYW1lXG4gIGVuZDtcbiAgaWYgc3RhdGUucHBfbWFya190YWdzIHRoZW5cbiAgICBsZXQgdG9rZW4gPSBQcF9vcGVuX3RhZyB0YWdfbmFtZSBpblxuICAgIHBwX2VucXVldWUgc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbjsgbGVuZ3RoID0gMCB9XG5cblxuKCogQ2xvc2UgYSB0YWcsIHBvcHBpbmcgaXQgZnJvbSB0aGUgdGFnIHN0YWNrLiAqKVxubGV0IHBwX2Nsb3NlX3N0YWcgc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9tYXJrX3RhZ3MgdGhlblxuICAgIHBwX2VucXVldWUgc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX2Nsb3NlX3RhZzsgbGVuZ3RoID0gMCB9O1xuICBpZiBzdGF0ZS5wcF9wcmludF90YWdzIHRoZW5cbiAgICBtYXRjaCBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX3RhZ19zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+ICgpICgqIE5vIG1vcmUgdGFnIHRvIGNsb3NlLiAqKVxuICAgIHwgU29tZSB0YWdfbmFtZSAtPlxuICAgICAgc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnIHRhZ19uYW1lXG5cbmxldCBwcF9vcGVuX3RhZyBzdGF0ZSBzID0gcHBfb3Blbl9zdGFnIHN0YXRlIChTdHJpbmdfdGFnIHMpXG5sZXQgcHBfY2xvc2VfdGFnIHN0YXRlICgpID0gcHBfY2xvc2Vfc3RhZyBzdGF0ZSAoKVxuXG5sZXQgcHBfc2V0X3ByaW50X3RhZ3Mgc3RhdGUgYiA9IHN0YXRlLnBwX3ByaW50X3RhZ3MgPC0gYlxubGV0IHBwX3NldF9tYXJrX3RhZ3Mgc3RhdGUgYiA9IHN0YXRlLnBwX21hcmtfdGFncyA8LSBiXG5sZXQgcHBfZ2V0X3ByaW50X3RhZ3Mgc3RhdGUgKCkgPSBzdGF0ZS5wcF9wcmludF90YWdzXG5sZXQgcHBfZ2V0X21hcmtfdGFncyBzdGF0ZSAoKSA9IHN0YXRlLnBwX21hcmtfdGFnc1xubGV0IHBwX3NldF90YWdzIHN0YXRlIGIgPVxuICBwcF9zZXRfcHJpbnRfdGFncyBzdGF0ZSBiOyBwcF9zZXRfbWFya190YWdzIHN0YXRlIGJcblxuXG4oKiBIYW5kbGluZyB0YWcgaGFuZGxpbmcgZnVuY3Rpb25zOiBnZXQvc2V0IGZ1bmN0aW9ucy4gKilcbmxldCBwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIHN0YXRlICgpID0ge1xuICBtYXJrX29wZW5fc3RhZyA9IHN0YXRlLnBwX21hcmtfb3Blbl90YWc7XG4gIG1hcmtfY2xvc2Vfc3RhZyA9IHN0YXRlLnBwX21hcmtfY2xvc2VfdGFnO1xuICBwcmludF9vcGVuX3N0YWcgPSBzdGF0ZS5wcF9wcmludF9vcGVuX3RhZztcbiAgcHJpbnRfY2xvc2Vfc3RhZyA9IHN0YXRlLnBwX3ByaW50X2Nsb3NlX3RhZztcbn1cblxuXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBzdGF0ZSB7XG4gICAgIG1hcmtfb3Blbl9zdGFnID0gbW90O1xuICAgICBtYXJrX2Nsb3NlX3N0YWcgPSBtY3Q7XG4gICAgIHByaW50X29wZW5fc3RhZyA9IHBvdDtcbiAgICAgcHJpbnRfY2xvc2Vfc3RhZyA9IHBjdDtcbiAgfSA9XG4gIHN0YXRlLnBwX21hcmtfb3Blbl90YWcgPC0gbW90O1xuICBzdGF0ZS5wcF9tYXJrX2Nsb3NlX3RhZyA8LSBtY3Q7XG4gIHN0YXRlLnBwX3ByaW50X29wZW5fdGFnIDwtIHBvdDtcbiAgc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnIDwtIHBjdFxuXG5cbigqIEluaXRpYWxpemUgcHJldHR5LXByaW50ZXIuICopXG5sZXQgcHBfcmluaXQgc3RhdGUgPVxuICBwcF9jbGVhcl9xdWV1ZSBzdGF0ZTtcbiAgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHN0YXRlLnBwX3NjYW5fc3RhY2s7XG4gIFN0YWNrLmNsZWFyIHN0YXRlLnBwX2Zvcm1hdF9zdGFjaztcbiAgU3RhY2suY2xlYXIgc3RhdGUucHBfdGJveF9zdGFjaztcbiAgU3RhY2suY2xlYXIgc3RhdGUucHBfdGFnX3N0YWNrO1xuICBTdGFjay5jbGVhciBzdGF0ZS5wcF9tYXJrX3N0YWNrO1xuICBzdGF0ZS5wcF9jdXJyZW50X2luZGVudCA8LSAwO1xuICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIDA7XG4gIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfbWFyZ2luO1xuICBwcF9vcGVuX3N5c19ib3ggc3RhdGVcblxubGV0IGNsZWFyX3RhZ19zdGFjayBzdGF0ZSA9XG4gIFN0YWNrLml0ZXIgKGZ1biBfIC0+IHBwX2Nsb3NlX3RhZyBzdGF0ZSAoKSkgc3RhdGUucHBfdGFnX3N0YWNrXG5cblxuKCogRmx1c2hpbmcgcHJldHR5LXByaW50ZXIgcXVldWUuICopXG5sZXQgcHBfZmx1c2hfcXVldWUgc3RhdGUgYiA9XG4gIGNsZWFyX3RhZ19zdGFjayBzdGF0ZTtcbiAgd2hpbGUgc3RhdGUucHBfY3Vycl9kZXB0aCA+IDEgZG9cbiAgICBwcF9jbG9zZV9ib3ggc3RhdGUgKClcbiAgZG9uZTtcbiAgc3RhdGUucHBfcmlnaHRfdG90YWwgPC0gcHBfaW5maW5pdHk7XG4gIGFkdmFuY2VfbGVmdCBzdGF0ZTtcbiAgaWYgYiB0aGVuIHBwX291dHB1dF9uZXdsaW5lIHN0YXRlO1xuICBwcF9yaW5pdCBzdGF0ZVxuXG4oKlxuXG4gIFByb2NlZHVyZXMgdG8gZm9ybWF0IHZhbHVlcyBhbmQgdXNlIGJveGVzLlxuXG4qKVxuXG4oKiBUbyBmb3JtYXQgYSBzdHJpbmcuICopXG5sZXQgcHBfcHJpbnRfYXNfc2l6ZSBzdGF0ZSBzaXplIHMgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzXG4gIHRoZW4gZW5xdWV1ZV9zdHJpbmdfYXMgc3RhdGUgc2l6ZSBzXG5cblxubGV0IHBwX3ByaW50X2FzIHN0YXRlIGlzaXplIHMgPVxuICBwcF9wcmludF9hc19zaXplIHN0YXRlIChTaXplLm9mX2ludCBpc2l6ZSkgc1xuXG5cbmxldCBwcF9wcmludF9zdHJpbmcgc3RhdGUgcyA9XG4gIHBwX3ByaW50X2FzIHN0YXRlIChTdHJpbmcubGVuZ3RoIHMpIHNcblxubGV0IHBwX3ByaW50X2J5dGVzIHN0YXRlIHMgPVxuICBwcF9wcmludF9hcyBzdGF0ZSAoQnl0ZXMubGVuZ3RoIHMpIChCeXRlcy50b19zdHJpbmcgcylcblxuKCogVG8gZm9ybWF0IGFuIGludGVnZXIuICopXG5sZXQgcHBfcHJpbnRfaW50IHN0YXRlIGkgPSBwcF9wcmludF9zdHJpbmcgc3RhdGUgKEludC50b19zdHJpbmcgaSlcblxuKCogVG8gZm9ybWF0IGEgZmxvYXQuICopXG5sZXQgcHBfcHJpbnRfZmxvYXQgc3RhdGUgZiA9IHBwX3ByaW50X3N0cmluZyBzdGF0ZSAoc3RyaW5nX29mX2Zsb2F0IGYpXG5cbigqIFRvIGZvcm1hdCBhIGJvb2xlYW4uICopXG5sZXQgcHBfcHJpbnRfYm9vbCBzdGF0ZSBiID0gcHBfcHJpbnRfc3RyaW5nIHN0YXRlIChzdHJpbmdfb2ZfYm9vbCBiKVxuXG4oKiBUbyBmb3JtYXQgYSBjaGFyLiAqKVxubGV0IHBwX3ByaW50X2NoYXIgc3RhdGUgYyA9XG4gIHBwX3ByaW50X2FzIHN0YXRlIDEgKFN0cmluZy5tYWtlIDEgYylcblxuXG4oKiBPcGVuaW5nIGJveGVzLiAqKVxubGV0IHBwX29wZW5faGJveCBzdGF0ZSAoKSA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSAwIFBwX2hib3hcbmFuZCBwcF9vcGVuX3Zib3ggc3RhdGUgaW5kZW50ID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBQcF92Ym94XG5cbmFuZCBwcF9vcGVuX2h2Ym94IHN0YXRlIGluZGVudCA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgUHBfaHZib3hcbmFuZCBwcF9vcGVuX2hvdmJveCBzdGF0ZSBpbmRlbnQgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IFBwX2hvdmJveFxuYW5kIHBwX29wZW5fYm94IHN0YXRlIGluZGVudCA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgUHBfYm94XG5cblxuKCogUHJpbnRpbmcgcXVldWVkIHRleHQuXG5cbiAgIFtwcF9wcmludF9mbHVzaF0gcHJpbnRzIGFsbCBwZW5kaW5nIGl0ZW1zIGluIHRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBhbmRcbiAgIHRoZW4gZmx1c2hlcyB0aGUgbG93IGxldmVsIG91dHB1dCBkZXZpY2Ugb2YgdGhlIGZvcm1hdHRlciB0byBhY3R1YWxseVxuICAgZGlzcGxheSBwcmludGluZyBtYXRlcmlhbC5cblxuICAgW3BwX3ByaW50X25ld2xpbmVdIGJlaGF2ZXMgYXMgW3BwX3ByaW50X2ZsdXNoXSBhZnRlciBwcmludGluZyBhbiBhZGRpdGlvbmFsXG4gICBuZXcgbGluZS4gKilcbmxldCBwcF9wcmludF9uZXdsaW5lIHN0YXRlICgpID1cbiAgcHBfZmx1c2hfcXVldWUgc3RhdGUgdHJ1ZTsgc3RhdGUucHBfb3V0X2ZsdXNoICgpXG5hbmQgcHBfcHJpbnRfZmx1c2ggc3RhdGUgKCkgPVxuICBwcF9mbHVzaF9xdWV1ZSBzdGF0ZSBmYWxzZTsgc3RhdGUucHBfb3V0X2ZsdXNoICgpXG5cblxuKCogVG8gZ2V0IGEgbmV3bGluZSB3aGVuIG9uZSBkb2VzIG5vdCB3YW50IHRvIGNsb3NlIHRoZSBjdXJyZW50IGJveC4gKilcbmxldCBwcF9mb3JjZV9uZXdsaW5lIHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9uZXdsaW5lOyBsZW5ndGggPSAwIH1cblxuXG4oKiBUbyBmb3JtYXQgc29tZXRoaW5nLCBvbmx5IGluIGNhc2UgdGhlIGxpbmUgaGFzIGp1c3QgYmVlbiBicm9rZW4uICopXG5sZXQgcHBfcHJpbnRfaWZfbmV3bGluZSBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZVxuICAgICAgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX2lmX25ld2xpbmU7IGxlbmd0aCA9IDAgfVxuXG5cbigqIEdlbmVyYWxpemVkIGJyZWFrIGhpbnQgdGhhdCBhbGxvd3MgcHJpbnRpbmcgc3RyaW5ncyBiZWZvcmUvYWZ0ZXJcbiAgIHNhbWUtbGluZSBvZmZzZXQgKHdpZHRoKSBvciBuZXctbGluZSBvZmZzZXQgKilcbmxldCBwcF9wcmludF9jdXN0b21fYnJlYWsgc3RhdGUgfmZpdHMgfmJyZWFrcyA9XG4gIGxldCBiZWZvcmUsIHdpZHRoLCBhZnRlciA9IGZpdHMgaW5cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IHNpemUgPSBTaXplLm9mX2ludCAoLSBzdGF0ZS5wcF9yaWdodF90b3RhbCkgaW5cbiAgICBsZXQgdG9rZW4gPSBQcF9icmVhayB7IGZpdHM7IGJyZWFrcyB9IGluXG4gICAgbGV0IGxlbmd0aCA9IFN0cmluZy5sZW5ndGggYmVmb3JlICsgd2lkdGggKyBTdHJpbmcubGVuZ3RoIGFmdGVyIGluXG4gICAgbGV0IGVsZW0gPSB7IHNpemU7IHRva2VuOyBsZW5ndGggfSBpblxuICAgIHNjYW5fcHVzaCBzdGF0ZSB0cnVlIGVsZW1cblxuKCogUHJpbnRpbmcgYnJlYWsgaGludHM6XG4gICBBIGJyZWFrIGhpbnQgaW5kaWNhdGVzIHdoZXJlIGEgYm94IG1heSBiZSBicm9rZW4uXG4gICBJZiBsaW5lIGlzIGJyb2tlbiB0aGVuIG9mZnNldCBpcyBhZGRlZCB0byB0aGUgaW5kZW50YXRpb24gb2YgdGhlIGN1cnJlbnRcbiAgIGJveCBlbHNlICh0aGUgdmFsdWUgb2YpIHdpZHRoIGJsYW5rcyBhcmUgcHJpbnRlZC4gKilcbmxldCBwcF9wcmludF9icmVhayBzdGF0ZSB3aWR0aCBvZmZzZXQgPVxuICBwcF9wcmludF9jdXN0b21fYnJlYWsgc3RhdGVcbiAgICB+Zml0czooXCJcIiwgd2lkdGgsIFwiXCIpIH5icmVha3M6KFwiXCIsIG9mZnNldCwgXCJcIilcblxuXG4oKiBQcmludCBhIHNwYWNlIDpcbiAgIGEgc3BhY2UgaXMgYSBicmVhayBoaW50IHRoYXQgcHJpbnRzIGEgc2luZ2xlIHNwYWNlIGlmIHRoZSBicmVhayBkb2VzIG5vdFxuICAgc3BsaXQgdGhlIGxpbmU7XG4gICBhIGN1dCBpcyBhIGJyZWFrIGhpbnQgdGhhdCBwcmludHMgbm90aGluZyBpZiB0aGUgYnJlYWsgZG9lcyBub3Qgc3BsaXQgdGhlXG4gICBsaW5lLiAqKVxubGV0IHBwX3ByaW50X3NwYWNlIHN0YXRlICgpID0gcHBfcHJpbnRfYnJlYWsgc3RhdGUgMSAwXG5hbmQgcHBfcHJpbnRfY3V0IHN0YXRlICgpID0gcHBfcHJpbnRfYnJlYWsgc3RhdGUgMCAwXG5cblxuKCogVGFidWxhdGlvbiBib3hlcy4gKilcbmxldCBwcF9vcGVuX3Rib3ggc3RhdGUgKCkgPVxuICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIHN0YXRlLnBwX2N1cnJfZGVwdGggKyAxO1xuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgc2l6ZSA9IFNpemUuemVybyBpblxuICAgIGxldCBlbGVtID0geyBzaXplOyB0b2tlbiA9IFBwX3RiZWdpbiAoUHBfdGJveCAocmVmIFtdKSk7IGxlbmd0aCA9IDAgfSBpblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZSBlbGVtXG5cblxuKCogQ2xvc2UgYSB0YWJ1bGF0aW9uIGJveC4gKilcbmxldCBwcF9jbG9zZV90Ym94IHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA+IDEgdGhlblxuICBiZWdpblxuICAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgIGxldCBlbGVtID0geyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX3RlbmQ7IGxlbmd0aCA9IDAgfSBpblxuICAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgZWxlbTtcbiAgICAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoIC0gMVxuICBlbmRcblxuXG4oKiBQcmludCBhIHRhYnVsYXRpb24gYnJlYWsuICopXG5sZXQgcHBfcHJpbnRfdGJyZWFrIHN0YXRlIHdpZHRoIG9mZnNldCA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBzaXplID0gU2l6ZS5vZl9pbnQgKC0gc3RhdGUucHBfcmlnaHRfdG90YWwpIGluXG4gICAgbGV0IGVsZW0gPSB7IHNpemU7IHRva2VuID0gUHBfdGJyZWFrICh3aWR0aCwgb2Zmc2V0KTsgbGVuZ3RoID0gd2lkdGggfSBpblxuICAgIHNjYW5fcHVzaCBzdGF0ZSB0cnVlIGVsZW1cblxuXG5sZXQgcHBfcHJpbnRfdGFiIHN0YXRlICgpID0gcHBfcHJpbnRfdGJyZWFrIHN0YXRlIDAgMFxuXG5sZXQgcHBfc2V0X3RhYiBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBlbGVtID0geyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX3N0YWI7IGxlbmd0aCA9IDAgfSBpblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZSBlbGVtXG5cblxuKCpcblxuICBQcm9jZWR1cmVzIHRvIGNvbnRyb2wgdGhlIHByZXR0eS1wcmludGVyc1xuXG4qKVxuXG4oKiBTZXRfbWF4X2JveGVzLiAqKVxubGV0IHBwX3NldF9tYXhfYm94ZXMgc3RhdGUgbiA9IGlmIG4gPiAxIHRoZW4gc3RhdGUucHBfbWF4X2JveGVzIDwtIG5cblxuKCogVG8ga25vdyB0aGUgY3VycmVudCBtYXhpbXVtIG51bWJlciBvZiBib3hlcyBhbGxvd2VkLiAqKVxubGV0IHBwX2dldF9tYXhfYm94ZXMgc3RhdGUgKCkgPSBzdGF0ZS5wcF9tYXhfYm94ZXNcblxubGV0IHBwX292ZXJfbWF4X2JveGVzIHN0YXRlICgpID0gc3RhdGUucHBfY3Vycl9kZXB0aCA9IHN0YXRlLnBwX21heF9ib3hlc1xuXG4oKiBFbGxpcHNpcy4gKilcbmxldCBwcF9zZXRfZWxsaXBzaXNfdGV4dCBzdGF0ZSBzID0gc3RhdGUucHBfZWxsaXBzaXMgPC0gc1xuYW5kIHBwX2dldF9lbGxpcHNpc190ZXh0IHN0YXRlICgpID0gc3RhdGUucHBfZWxsaXBzaXNcblxuXG4oKiBUbyBzZXQgdGhlIG1hcmdpbiBvZiBwcmV0dHktcHJpbnRlci4gKilcbmxldCBwcF9saW1pdCBuID1cbiAgaWYgbiA8IHBwX2luZmluaXR5IHRoZW4gbiBlbHNlIHByZWQgcHBfaW5maW5pdHlcblxuXG4oKiBJbnRlcm5hbCBwcmV0dHktcHJpbnRlciBmdW5jdGlvbnMuICopXG5sZXQgcHBfc2V0X21pbl9zcGFjZV9sZWZ0IHN0YXRlIG4gPVxuICBpZiBuID49IDEgdGhlblxuICAgIGxldCBuID0gcHBfbGltaXQgbiBpblxuICAgIHN0YXRlLnBwX21pbl9zcGFjZV9sZWZ0IDwtIG47XG4gICAgc3RhdGUucHBfbWF4X2luZGVudCA8LSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9taW5fc3BhY2VfbGVmdDtcbiAgICBwcF9yaW5pdCBzdGF0ZVxuXG5cbigqIEluaXRpYWxseSwgd2UgaGF2ZSA6XG4gICBwcF9tYXhfaW5kZW50ID0gcHBfbWFyZ2luIC0gcHBfbWluX3NwYWNlX2xlZnQsIGFuZFxuICAgcHBfc3BhY2VfbGVmdCA9IHBwX21hcmdpbi4gKilcbmxldCBwcF9zZXRfbWF4X2luZGVudCBzdGF0ZSBuID1cbiAgaWYgbiA+IDEgdGhlblxuICAgIHBwX3NldF9taW5fc3BhY2VfbGVmdCBzdGF0ZSAoc3RhdGUucHBfbWFyZ2luIC0gbilcblxuXG5sZXQgcHBfZ2V0X21heF9pbmRlbnQgc3RhdGUgKCkgPSBzdGF0ZS5wcF9tYXhfaW5kZW50XG5cbmxldCBwcF9zZXRfbWFyZ2luIHN0YXRlIG4gPVxuICBpZiBuID49IDEgdGhlblxuICAgIGxldCBuID0gcHBfbGltaXQgbiBpblxuICAgIHN0YXRlLnBwX21hcmdpbiA8LSBuO1xuICAgIGxldCBuZXdfbWF4X2luZGVudCA9XG4gICAgICAoKiBUcnkgdG8gbWFpbnRhaW4gbWF4X2luZGVudCB0byBpdHMgYWN0dWFsIHZhbHVlLiAqKVxuICAgICAgaWYgc3RhdGUucHBfbWF4X2luZGVudCA8PSBzdGF0ZS5wcF9tYXJnaW5cbiAgICAgIHRoZW4gc3RhdGUucHBfbWF4X2luZGVudCBlbHNlXG4gICAgICAoKiBJZiBwb3NzaWJsZSBtYWludGFpbiBwcF9taW5fc3BhY2VfbGVmdCB0byBpdHMgYWN0dWFsIHZhbHVlLFxuICAgICAgICAgaWYgdGhpcyBsZWFkcyB0byBhIHRvbyBzbWFsbCBtYXhfaW5kZW50LCB0YWtlIGhhbGYgb2YgdGhlXG4gICAgICAgICBuZXcgbWFyZ2luLCBpZiBpdCBpcyBncmVhdGVyIHRoYW4gMS4gKilcbiAgICAgICBJbnQubWF4IChJbnQubWF4IChzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9taW5fc3BhY2VfbGVmdClcbiAgICAgICAgICAgICAgICAoc3RhdGUucHBfbWFyZ2luIC8gMikpIDEgaW5cbiAgICAoKiBSZWJ1aWxkIGludmFyaWFudHMuICopXG4gICAgcHBfc2V0X21heF9pbmRlbnQgc3RhdGUgbmV3X21heF9pbmRlbnRcblxuXG4oKiogR2VvbWV0cnkgZnVuY3Rpb25zIGFuZCB0eXBlcyAqKVxudHlwZSBnZW9tZXRyeSA9IHsgbWF4X2luZGVudDppbnQ7IG1hcmdpbjogaW50fVxuXG5sZXQgdmFsaWRhdGVfZ2VvbWV0cnkge21hcmdpbjsgbWF4X2luZGVudH0gPVxuICBpZiBtYXhfaW5kZW50IDwgMiB0aGVuXG4gICAgRXJyb3IgXCJtYXhfaW5kZW50IDwgMlwiXG4gIGVsc2UgaWYgbWFyZ2luIDw9IG1heF9pbmRlbnQgdGhlblxuICAgIEVycm9yIFwibWFyZ2luIDw9IG1heF9pbmRlbnRcIlxuICBlbHNlIE9rICgpXG5cbmxldCBjaGVja19nZW9tZXRyeSBnZW9tZXRyeSA9XG4gIG1hdGNoIHZhbGlkYXRlX2dlb21ldHJ5IGdlb21ldHJ5IHdpdGhcbiAgfCBPayAoKSAtPiB0cnVlXG4gIHwgRXJyb3IgXyAtPiBmYWxzZVxuXG5sZXQgcHBfZ2V0X21hcmdpbiBzdGF0ZSAoKSA9IHN0YXRlLnBwX21hcmdpblxuXG5sZXQgcHBfc2V0X2Z1bGxfZ2VvbWV0cnkgc3RhdGUge21hcmdpbjsgbWF4X2luZGVudH0gPVxuICBwcF9zZXRfbWFyZ2luIHN0YXRlIG1hcmdpbjtcbiAgcHBfc2V0X21heF9pbmRlbnQgc3RhdGUgbWF4X2luZGVudDtcbiAgKClcblxubGV0IHBwX3NldF9nZW9tZXRyeSBzdGF0ZSB+bWF4X2luZGVudCB+bWFyZ2luID1cbiAgbGV0IGdlb21ldHJ5ID0geyBtYXhfaW5kZW50OyBtYXJnaW4gfSBpblxuICBtYXRjaCB2YWxpZGF0ZV9nZW9tZXRyeSBnZW9tZXRyeSB3aXRoXG4gIHwgRXJyb3IgbXNnIC0+XG4gICAgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKFwiRm9ybWF0LnBwX3NldF9nZW9tZXRyeTogXCIgXiBtc2cpKVxuICB8IE9rICgpIC0+XG4gICAgcHBfc2V0X2Z1bGxfZ2VvbWV0cnkgc3RhdGUgZ2VvbWV0cnlcblxubGV0IHBwX3NhZmVfc2V0X2dlb21ldHJ5IHN0YXRlIH5tYXhfaW5kZW50IH5tYXJnaW4gPVxuICBsZXQgZ2VvbWV0cnkgPSB7IG1heF9pbmRlbnQ7IG1hcmdpbiB9IGluXG4gIG1hdGNoIHZhbGlkYXRlX2dlb21ldHJ5IGdlb21ldHJ5IHdpdGhcbiAgfCBFcnJvciBfbXNnIC0+XG4gICAgICgpXG4gIHwgT2sgKCkgLT5cbiAgICBwcF9zZXRfZnVsbF9nZW9tZXRyeSBzdGF0ZSBnZW9tZXRyeVxuXG5sZXQgcHBfZ2V0X2dlb21ldHJ5IHN0YXRlICgpID1cbiAgeyBtYXJnaW4gPSBwcF9nZXRfbWFyZ2luIHN0YXRlICgpOyBtYXhfaW5kZW50ID0gcHBfZ2V0X21heF9pbmRlbnQgc3RhdGUgKCkgfVxuXG5sZXQgcHBfdXBkYXRlX2dlb21ldHJ5IHN0YXRlIHVwZGF0ZSA9XG4gIGxldCBnZW9tZXRyeSA9IHBwX2dldF9nZW9tZXRyeSBzdGF0ZSAoKSBpblxuICBwcF9zZXRfZnVsbF9nZW9tZXRyeSBzdGF0ZSAodXBkYXRlIGdlb21ldHJ5KVxuXG4oKiBTZXR0aW5nIGEgZm9ybWF0dGVyIGJhc2ljIG91dHB1dCBmdW5jdGlvbnMuICopXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zIHN0YXRlIHtcbiAgICAgIG91dF9zdHJpbmcgPSBmO1xuICAgICAgb3V0X2ZsdXNoID0gZztcbiAgICAgIG91dF9uZXdsaW5lID0gaDtcbiAgICAgIG91dF9zcGFjZXMgPSBpO1xuICAgICAgb3V0X2luZGVudCA9IGo7XG4gICAgfSA9XG4gIHN0YXRlLnBwX291dF9zdHJpbmcgPC0gZjtcbiAgc3RhdGUucHBfb3V0X2ZsdXNoIDwtIGc7XG4gIHN0YXRlLnBwX291dF9uZXdsaW5lIDwtIGg7XG4gIHN0YXRlLnBwX291dF9zcGFjZXMgPC0gaTtcbiAgc3RhdGUucHBfb3V0X2luZGVudCA8LSBqXG5cbmxldCBwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgc3RhdGUgKCkgPSB7XG4gIG91dF9zdHJpbmcgPSBzdGF0ZS5wcF9vdXRfc3RyaW5nO1xuICBvdXRfZmx1c2ggPSBzdGF0ZS5wcF9vdXRfZmx1c2g7XG4gIG91dF9uZXdsaW5lID0gc3RhdGUucHBfb3V0X25ld2xpbmU7XG4gIG91dF9zcGFjZXMgPSBzdGF0ZS5wcF9vdXRfc3BhY2VzO1xuICBvdXRfaW5kZW50ID0gc3RhdGUucHBfb3V0X2luZGVudDtcbn1cblxuXG4oKiBTZXR0aW5nIGEgZm9ybWF0dGVyIGJhc2ljIHN0cmluZyBvdXRwdXQgYW5kIGZsdXNoIGZ1bmN0aW9ucy4gKilcbmxldCBwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgZiBnID1cbiAgc3RhdGUucHBfb3V0X3N0cmluZyA8LSBmOyBzdGF0ZS5wcF9vdXRfZmx1c2ggPC0gZ1xuXG5sZXQgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlICgpID1cbiAgKHN0YXRlLnBwX291dF9zdHJpbmcsIHN0YXRlLnBwX291dF9mbHVzaClcblxuXG4oKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiB0byBvdXRwdXQgbmV3IGxpbmVzLiAqKVxubGV0IGRpc3BsYXlfbmV3bGluZSBzdGF0ZSAoKSA9IHN0YXRlLnBwX291dF9zdHJpbmcgXCJcXG5cIiAwICAxXG5cbigqIFRoZSBkZWZhdWx0IGZ1bmN0aW9uIHRvIG91dHB1dCBzcGFjZXMuICopXG5sZXQgYmxhbmtfbGluZSA9IFN0cmluZy5tYWtlIDgwICcgJ1xubGV0IHJlYyBkaXNwbGF5X2JsYW5rcyBzdGF0ZSBuID1cbiAgaWYgbiA+IDAgdGhlblxuICBpZiBuIDw9IDgwIHRoZW4gc3RhdGUucHBfb3V0X3N0cmluZyBibGFua19saW5lIDAgbiBlbHNlXG4gIGJlZ2luXG4gICAgc3RhdGUucHBfb3V0X3N0cmluZyBibGFua19saW5lIDAgODA7XG4gICAgZGlzcGxheV9ibGFua3Mgc3RhdGUgKG4gLSA4MClcbiAgZW5kXG5cblxuKCogVGhlIGRlZmF1bHQgZnVuY3Rpb24gdG8gb3V0cHV0IGluZGVudGF0aW9uIG9mIG5ldyBsaW5lcy4gKilcbmxldCBkaXNwbGF5X2luZGVudCA9IGRpc3BsYXlfYmxhbmtzXG5cbigqIFNldHRpbmcgYSBmb3JtYXR0ZXIgYmFzaWMgb3V0cHV0IGZ1bmN0aW9ucyBhcyBwcmludGluZyB0byBhIGdpdmVuXG4gICBbUGVydmFzaXZlLm91dF9jaGFubmVsXSB2YWx1ZS4gKilcbmxldCBwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIHN0YXRlIG9jID1cbiAgc3RhdGUucHBfb3V0X3N0cmluZyA8LSBvdXRwdXRfc3Vic3RyaW5nIG9jO1xuICBzdGF0ZS5wcF9vdXRfZmx1c2ggPC0gKGZ1biAoKSAtPiBmbHVzaCBvYyk7XG4gIHN0YXRlLnBwX291dF9uZXdsaW5lIDwtIGRpc3BsYXlfbmV3bGluZSBzdGF0ZTtcbiAgc3RhdGUucHBfb3V0X3NwYWNlcyA8LSBkaXNwbGF5X2JsYW5rcyBzdGF0ZTtcbiAgc3RhdGUucHBfb3V0X2luZGVudCA8LSBkaXNwbGF5X2luZGVudCBzdGF0ZVxuXG4oKlxuXG4gIERlZmluaW5nIHNwZWNpZmljIGZvcm1hdHRlcnNcblxuKilcblxubGV0IGRlZmF1bHRfcHBfbWFya19vcGVuX3RhZyA9IGZ1bmN0aW9uXG4gIHwgU3RyaW5nX3RhZyBzIC0+IFwiPFwiIF4gcyBeIFwiPlwiXG4gIHwgXyAtPiBcIlwiXG5sZXQgZGVmYXVsdF9wcF9tYXJrX2Nsb3NlX3RhZyA9IGZ1bmN0aW9uXG4gIHwgU3RyaW5nX3RhZyBzIC0+IFwiPC9cIiBeIHMgXiBcIj5cIlxuICB8IF8gLT4gXCJcIlxuXG5sZXQgZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZyA9IGlnbm9yZVxubGV0IGRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnID0gaWdub3JlXG5cbigqIEJ1aWxkaW5nIGEgZm9ybWF0dGVyIGdpdmVuIGl0cyBiYXNpYyBvdXRwdXQgZnVuY3Rpb25zLlxuICAgT3RoZXIgZmllbGRzIGdldCByZWFzb25hYmxlIGRlZmF1bHQgdmFsdWVzLiAqKVxubGV0IHBwX21ha2VfZm9ybWF0dGVyIGYgZyBoIGkgaiA9XG4gICgqIFRoZSBpbml0aWFsIHN0YXRlIG9mIHRoZSBmb3JtYXR0ZXIgY29udGFpbnMgYSBkdW1teSBib3guICopXG4gIGxldCBwcF9xdWV1ZSA9IFF1ZXVlLmNyZWF0ZSAoKSBpblxuICBsZXQgc3lzX3RvayA9XG4gICAgeyBzaXplID0gU2l6ZS51bmtub3duOyB0b2tlbiA9IFBwX2JlZ2luICgwLCBQcF9ob3Zib3gpOyBsZW5ndGggPSAwIH0gaW5cbiAgUXVldWUuYWRkIHN5c190b2sgcHBfcXVldWU7XG4gIGxldCBzY2FuX3N0YWNrID0gU3RhY2suY3JlYXRlICgpIGluXG4gIGluaXRpYWxpemVfc2Nhbl9zdGFjayBzY2FuX3N0YWNrO1xuICBTdGFjay5wdXNoIHsgbGVmdF90b3RhbCA9IDE7IHF1ZXVlX2VsZW0gPSBzeXNfdG9rIH0gc2Nhbl9zdGFjaztcbiAgbGV0IHBwX21hcmdpbiA9IDc4XG4gIGFuZCBwcF9taW5fc3BhY2VfbGVmdCA9IDEwIGluXG4gIHtcbiAgICBwcF9zY2FuX3N0YWNrID0gc2Nhbl9zdGFjaztcbiAgICBwcF9mb3JtYXRfc3RhY2sgPSBTdGFjay5jcmVhdGUgKCk7XG4gICAgcHBfdGJveF9zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKTtcbiAgICBwcF90YWdfc3RhY2sgPSBTdGFjay5jcmVhdGUgKCk7XG4gICAgcHBfbWFya19zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKTtcbiAgICBwcF9tYXJnaW4gPSBwcF9tYXJnaW47XG4gICAgcHBfbWluX3NwYWNlX2xlZnQgPSBwcF9taW5fc3BhY2VfbGVmdDtcbiAgICBwcF9tYXhfaW5kZW50ID0gcHBfbWFyZ2luIC0gcHBfbWluX3NwYWNlX2xlZnQ7XG4gICAgcHBfc3BhY2VfbGVmdCA9IHBwX21hcmdpbjtcbiAgICBwcF9jdXJyZW50X2luZGVudCA9IDA7XG4gICAgcHBfaXNfbmV3X2xpbmUgPSB0cnVlO1xuICAgIHBwX2xlZnRfdG90YWwgPSAxO1xuICAgIHBwX3JpZ2h0X3RvdGFsID0gMTtcbiAgICBwcF9jdXJyX2RlcHRoID0gMTtcbiAgICBwcF9tYXhfYm94ZXMgPSBtYXhfaW50O1xuICAgIHBwX2VsbGlwc2lzID0gXCIuXCI7XG4gICAgcHBfb3V0X3N0cmluZyA9IGY7XG4gICAgcHBfb3V0X2ZsdXNoID0gZztcbiAgICBwcF9vdXRfbmV3bGluZSA9IGg7XG4gICAgcHBfb3V0X3NwYWNlcyA9IGk7XG4gICAgcHBfb3V0X2luZGVudCA9IGo7XG4gICAgcHBfcHJpbnRfdGFncyA9IGZhbHNlO1xuICAgIHBwX21hcmtfdGFncyA9IGZhbHNlO1xuICAgIHBwX21hcmtfb3Blbl90YWcgPSBkZWZhdWx0X3BwX21hcmtfb3Blbl90YWc7XG4gICAgcHBfbWFya19jbG9zZV90YWcgPSBkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnO1xuICAgIHBwX3ByaW50X29wZW5fdGFnID0gZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZztcbiAgICBwcF9wcmludF9jbG9zZV90YWcgPSBkZWZhdWx0X3BwX3ByaW50X2Nsb3NlX3RhZztcbiAgICBwcF9xdWV1ZSA9IHBwX3F1ZXVlO1xuICB9XG5cblxuKCogQnVpbGQgYSBmb3JtYXR0ZXIgb3V0IG9mIGl0cyBvdXQgZnVuY3Rpb25zLiAqKVxubGV0IGZvcm1hdHRlcl9vZl9vdXRfZnVuY3Rpb25zIG91dF9mdW5zID1cbiAgcHBfbWFrZV9mb3JtYXR0ZXJcbiAgICBvdXRfZnVucy5vdXRfc3RyaW5nXG4gICAgb3V0X2Z1bnMub3V0X2ZsdXNoXG4gICAgb3V0X2Z1bnMub3V0X25ld2xpbmVcbiAgICBvdXRfZnVucy5vdXRfc3BhY2VzXG4gICAgb3V0X2Z1bnMub3V0X2luZGVudFxuXG5cbigqIE1ha2UgYSBmb3JtYXR0ZXIgd2l0aCBkZWZhdWx0IGZ1bmN0aW9ucyB0byBvdXRwdXQgc3BhY2VzLFxuICBpbmRlbnRhdGlvbiwgYW5kIG5ldyBsaW5lcy4gKilcbmxldCBtYWtlX2Zvcm1hdHRlciBvdXRwdXQgZmx1c2ggPVxuICBsZXQgcHBmID0gcHBfbWFrZV9mb3JtYXR0ZXIgb3V0cHV0IGZsdXNoIGlnbm9yZSBpZ25vcmUgaWdub3JlIGluXG4gIHBwZi5wcF9vdXRfbmV3bGluZSA8LSBkaXNwbGF5X25ld2xpbmUgcHBmO1xuICBwcGYucHBfb3V0X3NwYWNlcyA8LSBkaXNwbGF5X2JsYW5rcyBwcGY7XG4gIHBwZi5wcF9vdXRfaW5kZW50IDwtIGRpc3BsYXlfaW5kZW50IHBwZjtcbiAgcHBmXG5cblxuKCogTWFrZSBhIGZvcm1hdHRlciB3cml0aW5nIHRvIGEgZ2l2ZW4gW1BlcnZhc2l2ZS5vdXRfY2hhbm5lbF0gdmFsdWUuICopXG5sZXQgZm9ybWF0dGVyX29mX291dF9jaGFubmVsIG9jID1cbiAgbWFrZV9mb3JtYXR0ZXIgKG91dHB1dF9zdWJzdHJpbmcgb2MpIChmdW4gKCkgLT4gZmx1c2ggb2MpXG5cblxuKCogTWFrZSBhIGZvcm1hdHRlciB3cml0aW5nIHRvIGEgZ2l2ZW4gW0J1ZmZlci50XSB2YWx1ZS4gKilcbmxldCBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGIgPVxuICBtYWtlX2Zvcm1hdHRlciAoQnVmZmVyLmFkZF9zdWJzdHJpbmcgYikgaWdub3JlXG5cblxuKCogQWxsb2NhdGluZyBidWZmZXIgZm9yIHByZXR0eS1wcmludGluZyBwdXJwb3Nlcy5cbiAgIERlZmF1bHQgYnVmZmVyIHNpemUgaXMgcHBfYnVmZmVyX3NpemUgb3IgNTEyLlxuKilcbmxldCBwcF9idWZmZXJfc2l6ZSA9IDUxMlxubGV0IHBwX21ha2VfYnVmZmVyICgpID0gQnVmZmVyLmNyZWF0ZSBwcF9idWZmZXJfc2l6ZVxuXG4oKiBUaGUgc3RhbmRhcmQgKHNoYXJlZCkgYnVmZmVyLiAqKVxubGV0IHN0ZGJ1ZiA9IHBwX21ha2VfYnVmZmVyICgpXG5cbigqIFByZWRlZmluZWQgZm9ybWF0dGVycyBzdGFuZGFyZCBmb3JtYXR0ZXIgdG8gcHJpbnRcbiAgIHRvIFtTdGRsaWIuc3Rkb3V0XSwgW1N0ZGxpYi5zdGRlcnJdLCBhbmQgeyFzdGRidWZ9LiAqKVxubGV0IHN0ZF9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgU3RkbGliLnN0ZG91dFxuYW5kIGVycl9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgU3RkbGliLnN0ZGVyclxuYW5kIHN0cl9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIHN0ZGJ1ZlxuXG5cbigqIFtmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGJ1ZiBwcGZdIGZsdXNoZXMgZm9ybWF0dGVyIFtwcGZdLFxuICAgdGhlbiByZXR1cm5zIHRoZSBjb250ZW50cyBvZiBidWZmZXIgW2J1Zl0gdGhhdCBpcyByZXNldC5cbiAgIEZvcm1hdHRlciBbcHBmXSBpcyBzdXBwb3NlZCB0byBwcmludCB0byBidWZmZXIgW2J1Zl0sIG90aGVyd2lzZSB0aGlzXG4gICBmdW5jdGlvbiBpcyBub3QgcmVhbGx5IHVzZWZ1bC4gKilcbmxldCBmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGJ1ZiBwcGYgPVxuICBwcF9mbHVzaF9xdWV1ZSBwcGYgZmFsc2U7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIGJ1ZiBpblxuICBCdWZmZXIucmVzZXQgYnVmO1xuICBzXG5cblxuKCogRmx1c2ggW3N0cl9mb3JtYXR0ZXJdIGFuZCBnZXQgdGhlIGNvbnRlbnRzIG9mIFtzdGRidWZdLiAqKVxubGV0IGZsdXNoX3N0cl9mb3JtYXR0ZXIgKCkgPSBmbHVzaF9idWZmZXJfZm9ybWF0dGVyIHN0ZGJ1ZiBzdHJfZm9ybWF0dGVyXG5cbigqXG4gIFN5bWJvbGljIHByZXR0eS1wcmludGluZ1xuKilcblxuKCpcbiAgU3ltYm9saWMgcHJldHR5LXByaW50aW5nIGlzIHByZXR0eS1wcmludGluZyB3aXRoIG5vIGxvdyBsZXZlbCBvdXRwdXQuXG5cbiAgV2hlbiB1c2luZyBhIHN5bWJvbGljIGZvcm1hdHRlciwgYWxsIHJlZ3VsYXIgcHJldHR5LXByaW50aW5nIGFjdGl2aXRpZXNcbiAgb2NjdXIgYnV0IG91dHB1dCBtYXRlcmlhbCBpcyBzeW1ib2xpYyBhbmQgc3RvcmVkIGluIGEgYnVmZmVyIG9mIG91dHB1dFxuICBpdGVtcy4gQXQgdGhlIGVuZCBvZiBwcmV0dHktcHJpbnRpbmcsIGZsdXNoaW5nIHRoZSBvdXRwdXQgYnVmZmVyIGFsbG93c1xuICBwb3N0LXByb2Nlc3Npbmcgb2Ygc3ltYm9saWMgb3V0cHV0IGJlZm9yZSBsb3cgbGV2ZWwgb3V0cHV0IG9wZXJhdGlvbnMuXG4qKVxuXG50eXBlIHN5bWJvbGljX291dHB1dF9pdGVtID1cbiAgfCBPdXRwdXRfZmx1c2hcbiAgfCBPdXRwdXRfbmV3bGluZVxuICB8IE91dHB1dF9zdHJpbmcgb2Ygc3RyaW5nXG4gIHwgT3V0cHV0X3NwYWNlcyBvZiBpbnRcbiAgfCBPdXRwdXRfaW5kZW50IG9mIGludFxuXG50eXBlIHN5bWJvbGljX291dHB1dF9idWZmZXIgPSB7XG4gIG11dGFibGUgc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzIDogc3ltYm9saWNfb3V0cHV0X2l0ZW0gbGlzdDtcbn1cblxubGV0IG1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciAoKSA9XG4gIHsgc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzID0gW10gfVxuXG5sZXQgY2xlYXJfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzIDwtIFtdXG5cbmxldCBnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBMaXN0LnJldiBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzXG5cbmxldCBmbHVzaF9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiA9XG4gIGxldCBpdGVtcyA9IGdldF9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiBpblxuICBjbGVhcl9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYjtcbiAgaXRlbXNcblxubGV0IGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgaXRlbSA9XG4gIHNvYi5zeW1ib2xpY19vdXRwdXRfY29udGVudHMgPC0gaXRlbSA6OiBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzXG5cbmxldCBmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBsZXQgc3ltYm9saWNfZmx1c2ggc29iICgpID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIE91dHB1dF9mbHVzaFxuICBhbmQgc3ltYm9saWNfbmV3bGluZSBzb2IgKCkgPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgT3V0cHV0X25ld2xpbmVcbiAgYW5kIHN5bWJvbGljX3N0cmluZyBzb2IgcyBpIG4gPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgKE91dHB1dF9zdHJpbmcgKFN0cmluZy5zdWIgcyBpIG4pKVxuICBhbmQgc3ltYm9saWNfc3BhY2VzIHNvYiBuID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIChPdXRwdXRfc3BhY2VzIG4pXG4gIGFuZCBzeW1ib2xpY19pbmRlbnQgc29iIG4gPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgKE91dHB1dF9pbmRlbnQgbikgaW5cblxuICBsZXQgZiA9IHN5bWJvbGljX3N0cmluZyBzb2JcbiAgYW5kIGcgPSBzeW1ib2xpY19mbHVzaCBzb2JcbiAgYW5kIGggPSBzeW1ib2xpY19uZXdsaW5lIHNvYlxuICBhbmQgaSA9IHN5bWJvbGljX3NwYWNlcyBzb2JcbiAgYW5kIGogPSBzeW1ib2xpY19pbmRlbnQgc29iIGluXG4gIHBwX21ha2VfZm9ybWF0dGVyIGYgZyBoIGkgalxuXG4oKlxuXG4gIEJhc2ljIGZ1bmN0aW9ucyBvbiB0aGUgJ3N0YW5kYXJkJyBmb3JtYXR0ZXJcbiAgKHRoZSBmb3JtYXR0ZXIgdGhhdCBwcmludHMgdG8gW1N0ZGxpYi5zdGRvdXRdKS5cblxuKilcblxubGV0IG9wZW5faGJveCA9IHBwX29wZW5faGJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl92Ym94ID0gcHBfb3Blbl92Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX2h2Ym94ID0gcHBfb3Blbl9odmJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl9ob3Zib3ggPSBwcF9vcGVuX2hvdmJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl9ib3ggPSBwcF9vcGVuX2JveCBzdGRfZm9ybWF0dGVyXG5hbmQgY2xvc2VfYm94ID0gcHBfY2xvc2VfYm94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX3RhZyA9IHBwX29wZW5fdGFnIHN0ZF9mb3JtYXR0ZXJcbmFuZCBjbG9zZV90YWcgPSBwcF9jbG9zZV90YWcgc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5fc3RhZyA9IHBwX29wZW5fc3RhZyBzdGRfZm9ybWF0dGVyXG5hbmQgY2xvc2Vfc3RhZyA9IHBwX2Nsb3NlX3N0YWcgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2FzID0gcHBfcHJpbnRfYXMgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X3N0cmluZyA9IHBwX3ByaW50X3N0cmluZyBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfYnl0ZXMgPSBwcF9wcmludF9ieXRlcyBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfaW50ID0gcHBfcHJpbnRfaW50IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9mbG9hdCA9IHBwX3ByaW50X2Zsb2F0IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9jaGFyID0gcHBfcHJpbnRfY2hhciBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfYm9vbCA9IHBwX3ByaW50X2Jvb2wgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2JyZWFrID0gcHBfcHJpbnRfYnJlYWsgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2N1dCA9IHBwX3ByaW50X2N1dCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfc3BhY2UgPSBwcF9wcmludF9zcGFjZSBzdGRfZm9ybWF0dGVyXG5hbmQgZm9yY2VfbmV3bGluZSA9IHBwX2ZvcmNlX25ld2xpbmUgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2ZsdXNoID0gcHBfcHJpbnRfZmx1c2ggc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X25ld2xpbmUgPSBwcF9wcmludF9uZXdsaW5lIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9pZl9uZXdsaW5lID0gcHBfcHJpbnRfaWZfbmV3bGluZSBzdGRfZm9ybWF0dGVyXG5cbmFuZCBvcGVuX3Rib3ggPSBwcF9vcGVuX3Rib3ggc3RkX2Zvcm1hdHRlclxuYW5kIGNsb3NlX3Rib3ggPSBwcF9jbG9zZV90Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF90YnJlYWsgPSBwcF9wcmludF90YnJlYWsgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X3RhYiA9IHBwX3NldF90YWIgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X3RhYiA9IHBwX3ByaW50X3RhYiBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfbWFyZ2luID0gcHBfc2V0X21hcmdpbiBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X21hcmdpbiA9IHBwX2dldF9tYXJnaW4gc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X21heF9pbmRlbnQgPSBwcF9zZXRfbWF4X2luZGVudCBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X21heF9pbmRlbnQgPSBwcF9nZXRfbWF4X2luZGVudCBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZ2VvbWV0cnkgPSBwcF9zZXRfZ2VvbWV0cnkgc3RkX2Zvcm1hdHRlclxuYW5kIHNhZmVfc2V0X2dlb21ldHJ5ID0gcHBfc2FmZV9zZXRfZ2VvbWV0cnkgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9nZW9tZXRyeSA9IHBwX2dldF9nZW9tZXRyeSBzdGRfZm9ybWF0dGVyXG5hbmQgdXBkYXRlX2dlb21ldHJ5ID0gcHBfdXBkYXRlX2dlb21ldHJ5IHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9tYXhfYm94ZXMgPSBwcF9zZXRfbWF4X2JveGVzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfbWF4X2JveGVzID0gcHBfZ2V0X21heF9ib3hlcyBzdGRfZm9ybWF0dGVyXG5hbmQgb3Zlcl9tYXhfYm94ZXMgPSBwcF9vdmVyX21heF9ib3hlcyBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZWxsaXBzaXNfdGV4dCA9IHBwX3NldF9lbGxpcHNpc190ZXh0IHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZWxsaXBzaXNfdGV4dCA9IHBwX2dldF9lbGxpcHNpc190ZXh0IHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwgPVxuICBwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgPVxuICBwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgc2V0X3ByaW50X3RhZ3MgPVxuICBwcF9zZXRfcHJpbnRfdGFncyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X3ByaW50X3RhZ3MgPVxuICBwcF9nZXRfcHJpbnRfdGFncyBzdGRfZm9ybWF0dGVyXG5hbmQgc2V0X21hcmtfdGFncyA9XG4gIHBwX3NldF9tYXJrX3RhZ3Mgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9tYXJrX3RhZ3MgPVxuICBwcF9nZXRfbWFya190YWdzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBzZXRfdGFncyA9XG4gIHBwX3NldF90YWdzIHN0ZF9mb3JtYXR0ZXJcblxuXG4oKiBDb252ZW5pZW5jZSBmdW5jdGlvbnMgKilcblxuKCogVG8gZm9ybWF0IGEgbGlzdCAqKVxubGV0IHJlYyBwcF9wcmludF9saXN0ID8ocHBfc2VwID0gcHBfcHJpbnRfY3V0KSBwcF92IHBwZiA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gKClcbiAgfCBbdl0gLT4gcHBfdiBwcGYgdlxuICB8IHYgOjogdnMgLT5cbiAgICBwcF92IHBwZiB2O1xuICAgIHBwX3NlcCBwcGYgKCk7XG4gICAgcHBfcHJpbnRfbGlzdCB+cHBfc2VwIHBwX3YgcHBmIHZzXG5cbigqIFRvIGZvcm1hdCBhIHNlcXVlbmNlICopXG5sZXQgcmVjIHBwX3ByaW50X3NlcV9pbiB+cHBfc2VwIHBwX3YgcHBmIHNlcSA9XG4gIG1hdGNoIHNlcSAoKSB3aXRoXG4gIHwgU2VxLk5pbCAtPiAoKVxuICB8IFNlcS5Db25zICh2LCBzZXEpIC0+XG4gICAgcHBfc2VwIHBwZiAoKTtcbiAgICBwcF92IHBwZiB2O1xuICAgIHBwX3ByaW50X3NlcV9pbiB+cHBfc2VwIHBwX3YgcHBmIHNlcVxuXG5sZXQgcHBfcHJpbnRfc2VxID8ocHBfc2VwID0gcHBfcHJpbnRfY3V0KSBwcF92IHBwZiBzZXEgPVxuICBtYXRjaCBzZXEgKCkgd2l0aFxuICB8IFNlcS5OaWwgLT4gKClcbiAgfCBTZXEuQ29ucyAodiwgc2VxKSAtPlxuICAgIHBwX3YgcHBmIHY7XG4gICAgcHBfcHJpbnRfc2VxX2luIH5wcF9zZXAgcHBfdiBwcGYgc2VxXG5cbigqIFRvIGZvcm1hdCBmcmVlLWZsb3dpbmcgdGV4dCAqKVxubGV0IHBwX3ByaW50X3RleHQgcHBmIHMgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCBsZWZ0ID0gcmVmIDAgaW5cbiAgbGV0IHJpZ2h0ID0gcmVmIDAgaW5cbiAgbGV0IGZsdXNoICgpID1cbiAgICBwcF9wcmludF9zdHJpbmcgcHBmIChTdHJpbmcuc3ViIHMgIWxlZnQgKCFyaWdodCAtICFsZWZ0KSk7XG4gICAgaW5jciByaWdodDsgbGVmdCA6PSAhcmlnaHQ7XG4gIGluXG4gIHdoaWxlICghcmlnaHQgPD4gbGVuKSBkb1xuICAgIG1hdGNoIHMuWyFyaWdodF0gd2l0aFxuICAgICAgfCAnXFxuJyAtPlxuICAgICAgICBmbHVzaCAoKTtcbiAgICAgICAgcHBfZm9yY2VfbmV3bGluZSBwcGYgKClcbiAgICAgIHwgJyAnIC0+XG4gICAgICAgIGZsdXNoICgpOyBwcF9wcmludF9zcGFjZSBwcGYgKClcbiAgICAgICgqIHRoZXJlIGlzIG5vIHNwZWNpZmljIHN1cHBvcnQgZm9yICdcXHQnXG4gICAgICAgICBhcyBpdCBpcyB1bmNsZWFyIHdoYXQgYSByaWdodCBzZW1hbnRpY3Mgd291bGQgYmUgKilcbiAgICAgIHwgXyAtPiBpbmNyIHJpZ2h0XG4gIGRvbmU7XG4gIGlmICFsZWZ0IDw+IGxlbiB0aGVuIGZsdXNoICgpXG5cbmxldCBwcF9wcmludF9vcHRpb24gPyhub25lID0gZnVuIF8gKCkgLT4gKCkpIHBwX3YgcHBmID0gZnVuY3Rpb25cbnwgTm9uZSAtPiBub25lIHBwZiAoKVxufCBTb21lIHYgLT4gcHBfdiBwcGYgdlxuXG5sZXQgcHBfcHJpbnRfcmVzdWx0IH5vayB+ZXJyb3IgcHBmID0gZnVuY3Rpb25cbnwgT2sgdiAtPiBvayBwcGYgdlxufCBFcnJvciBlIC0+IGVycm9yIHBwZiBlXG5cbmxldCBwcF9wcmludF9laXRoZXIgfmxlZnQgfnJpZ2h0IHBwZiA9IGZ1bmN0aW9uXG58IEVpdGhlci5MZWZ0IGwgLT4gbGVmdCBwcGYgbFxufCBFaXRoZXIuUmlnaHQgciAtPiByaWdodCBwcGYgclxuXG4gKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5sZXQgY29tcHV0ZV90YWcgb3V0cHV0IHRhZ19hY2MgPVxuICBsZXQgYnVmID0gQnVmZmVyLmNyZWF0ZSAxNiBpblxuICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBidWYgaW5cbiAgb3V0cHV0IHBwZiB0YWdfYWNjO1xuICBwcF9wcmludF9mbHVzaCBwcGYgKCk7XG4gIGxldCBsZW4gPSBCdWZmZXIubGVuZ3RoIGJ1ZiBpblxuICBpZiBsZW4gPCAyIHRoZW4gQnVmZmVyLmNvbnRlbnRzIGJ1ZlxuICBlbHNlIEJ1ZmZlci5zdWIgYnVmIDEgKGxlbiAtIDIpXG5cbiAoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuICBEZWZpbmluZyBjb250aW51YXRpb25zIHRvIGJlIHBhc3NlZCBhcyBhcmd1bWVudHMgb2ZcbiAgQ2FtbGludGVybmFsRm9ybWF0Lm1ha2VfcHJpbnRmLlxuXG4gICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljc1xub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRcblxuKCogSW50ZXJwcmV0IGEgZm9ybWF0dGluZyBlbnRpdHkgb24gYSBmb3JtYXR0ZXIuICopXG5sZXQgb3V0cHV0X2Zvcm1hdHRpbmdfbGl0IHBwZiBmbXRpbmdfbGl0ID0gbWF0Y2ggZm10aW5nX2xpdCB3aXRoXG4gIHwgQ2xvc2VfYm94ICAgICAgICAgICAgICAgICAtPiBwcF9jbG9zZV9ib3ggcHBmICgpXG4gIHwgQ2xvc2VfdGFnICAgICAgICAgICAgICAgICAtPiBwcF9jbG9zZV90YWcgcHBmICgpXG4gIHwgQnJlYWsgKF8sIHdpZHRoLCBvZmZzZXQpICAtPiBwcF9wcmludF9icmVhayBwcGYgd2lkdGggb2Zmc2V0XG4gIHwgRkZsdXNoICAgICAgICAgICAgICAgICAgICAtPiBwcF9wcmludF9mbHVzaCBwcGYgKClcbiAgfCBGb3JjZV9uZXdsaW5lICAgICAgICAgICAgIC0+IHBwX2ZvcmNlX25ld2xpbmUgcHBmICgpXG4gIHwgRmx1c2hfbmV3bGluZSAgICAgICAgICAgICAtPiBwcF9wcmludF9uZXdsaW5lIHBwZiAoKVxuICB8IE1hZ2ljX3NpemUgKF8sIF8pICAgICAgICAgLT4gKClcbiAgfCBFc2NhcGVkX2F0ICAgICAgICAgICAgICAgIC0+IHBwX3ByaW50X2NoYXIgcHBmICdAJ1xuICB8IEVzY2FwZWRfcGVyY2VudCAgICAgICAgICAgLT4gcHBfcHJpbnRfY2hhciBwcGYgJyUnXG4gIHwgU2Nhbl9pbmRpYyBjICAgICAgICAgICAgICAtPiBwcF9wcmludF9jaGFyIHBwZiAnQCc7IHBwX3ByaW50X2NoYXIgcHBmIGNcblxuKCogUmVjdXJzaXZlbHkgb3V0cHV0IGFuIFwiYWNjdW11bGF0b3JcIiBjb250YWluaW5nIGEgcmV2ZXJzZWQgbGlzdCBvZlxuICAgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1cywgLi4uKSBpbiBhbiBvdXRwdXRfc3RyZWFtLiAqKVxuKCogRGlmZmVyIGZyb20gUHJpbnRmLm91dHB1dF9hY2MgYnkgdGhlIGludGVycHJldGF0aW9uIG9mIGZvcm1hdHRpbmcuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIENhbWxpbnRlcm5hbEZvcm1hdC5tYWtlX3ByaW50Zi4gKilcbmxldCByZWMgb3V0cHV0X2FjYyBwcGYgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIHMpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgcztcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSAoU3RyaW5nLm1ha2UgMSBjKTtcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGYpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBvdXRwdXRfZm9ybWF0dGluZ19saXQgcHBmIGY7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIHBwX29wZW5fc3RhZyBwcGYgKFN0cmluZ190YWcgKGNvbXB1dGVfdGFnIG91dHB1dF9hY2MgYWNjJykpXG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIGxldCAoaW5kZW50LCBidHkpID0gb3Blbl9ib3hfb2Zfc3RyaW5nIChjb21wdXRlX3RhZyBvdXRwdXRfYWNjIGFjYycpIGluXG4gICAgcHBfb3Blbl9ib3hfZ2VuIHBwZiBpbmRlbnQgYnR5XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBvdXRwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9zdHJpbmcgcHBmIHM7XG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gb3V0cHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfY2hhciBwcGYgYztcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gb3V0cHV0X2FjYyBwcGYgcDsgZiBwcGY7XG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IG91dHB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X2ZsdXNoIHBwZiAoKTtcbiAgfCBBY2NfaW52YWxpZF9hcmcgKHAsIG1zZykgLT4gb3V0cHV0X2FjYyBwcGYgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKiBSZWN1cnNpdmVseSBvdXRwdXQgYW4gXCJhY2N1bXVsYXRvclwiIGNvbnRhaW5pbmcgYSByZXZlcnNlZCBsaXN0IG9mXG4gICBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzLCAuLi4pIGluIGEgYnVmZmVyLiAqKVxuKCogRGlmZmVyIGZyb20gUHJpbnRmLmJ1ZnB1dF9hY2MgYnkgdGhlIGludGVycHJldGF0aW9uIG9mIGZvcm1hdHRpbmcuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIENhbWxpbnRlcm5hbEZvcm1hdC5tYWtlX3ByaW50Zi4gKilcbmxldCByZWMgc3RycHV0X2FjYyBwcGYgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIHMpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgcztcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSAoU3RyaW5nLm1ha2UgMSBjKTtcbiAgfCBBY2NfZGVsYXkgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBmKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIChmICgpKTtcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGYpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBvdXRwdXRfZm9ybWF0dGluZ19saXQgcHBmIGY7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIHBwX29wZW5fc3RhZyBwcGYgKFN0cmluZ190YWcgKGNvbXB1dGVfdGFnIHN0cnB1dF9hY2MgYWNjJykpXG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIGxldCAoaW5kZW50LCBidHkpID0gb3Blbl9ib3hfb2Zfc3RyaW5nIChjb21wdXRlX3RhZyBzdHJwdXRfYWNjIGFjYycpIGluXG4gICAgcHBfb3Blbl9ib3hfZ2VuIHBwZiBpbmRlbnQgYnR5XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBzdHJwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9zdHJpbmcgcHBmIHM7XG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gc3RycHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfY2hhciBwcGYgYztcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gc3RycHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfc3RyaW5nIHBwZiAoZiAoKSk7XG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IHN0cnB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X2ZsdXNoIHBwZiAoKTtcbiAgfCBBY2NfaW52YWxpZF9hcmcgKHAsIG1zZykgLT4gc3RycHV0X2FjYyBwcGYgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKlxuXG4gIERlZmluaW5nIFtmcHJpbnRmXSBhbmQgdmFyaW91cyBmbGF2b3JzIG9mIFtmcHJpbnRmXS5cblxuKilcblxubGV0IGtmcHJpbnRmIGsgcHBmIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGZcbiAgICAoZnVuIGFjYyAtPiBvdXRwdXRfYWNjIHBwZiBhY2M7IGsgcHBmKVxuICAgIEVuZF9vZl9hY2MgZm10XG5cbmFuZCBpa2ZwcmludGYgayBwcGYgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX2lwcmludGYgayBwcGYgZm10XG5cbmxldCBpZnByaW50ZiBfcHBmIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9pcHJpbnRmIGlnbm9yZSAoKSBmbXRcblxubGV0IGZwcmludGYgcHBmID0ga2ZwcmludGYgaWdub3JlIHBwZlxubGV0IHByaW50ZiBmbXQgPSBmcHJpbnRmIHN0ZF9mb3JtYXR0ZXIgZm10XG5sZXQgZXByaW50ZiBmbXQgPSBmcHJpbnRmIGVycl9mb3JtYXR0ZXIgZm10XG5cbmxldCBrZHByaW50ZiBrIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGZcbiAgICAoZnVuIGFjYyAtPiBrIChmdW4gcHBmIC0+IG91dHB1dF9hY2MgcHBmIGFjYykpXG4gICAgRW5kX29mX2FjYyBmbXRcblxubGV0IGRwcmludGYgZm10ID0ga2RwcmludGYgKGZ1biBpIC0+IGkpIGZtdFxuXG5sZXQga3NwcmludGYgayAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIGxldCBiID0gcHBfbWFrZV9idWZmZXIgKCkgaW5cbiAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYiBpblxuICBsZXQgayBhY2MgPVxuICAgIHN0cnB1dF9hY2MgcHBmIGFjYztcbiAgICBrIChmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGIgcHBmKSBpblxuICBtYWtlX3ByaW50ZiBrIEVuZF9vZl9hY2MgZm10XG5cblxubGV0IHNwcmludGYgZm10ID0ga3NwcmludGYgaWQgZm10XG5cbmxldCBrYXNwcmludGYgayAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIGxldCBiID0gcHBfbWFrZV9idWZmZXIgKCkgaW5cbiAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYiBpblxuICBsZXQgayBhY2MgPVxuICAgIG91dHB1dF9hY2MgcHBmIGFjYztcbiAgICBrIChmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGIgcHBmKSBpblxuICBtYWtlX3ByaW50ZiBrIEVuZF9vZl9hY2MgZm10XG5cblxubGV0IGFzcHJpbnRmIGZtdCA9IGthc3ByaW50ZiBpZCBmbXRcblxuKCogRmx1c2hpbmcgc3RhbmRhcmQgZm9ybWF0dGVycyBhdCBlbmQgb2YgZXhlY3V0aW9uLiAqKVxuXG5sZXQgZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVycyAoKSA9XG4gIHBwX3ByaW50X2ZsdXNoIHN0ZF9mb3JtYXR0ZXIgKCk7XG4gIHBwX3ByaW50X2ZsdXNoIGVycl9mb3JtYXR0ZXIgKClcblxubGV0ICgpID0gYXRfZXhpdCBmbHVzaF9zdGFuZGFyZF9mb3JtYXR0ZXJzXG5cbigqXG5cbiAgRGVwcmVjYXRlZCBzdHVmZi5cblxuKilcblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IHBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IHBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGVcbiAgICB+b3V0OmYgfmZsdXNoOmcgfm5ld2xpbmU6aCB+c3BhY2VzOmkgPVxuICBwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgZiBnO1xuICBzdGF0ZS5wcF9vdXRfbmV3bGluZSA8LSBoO1xuICBzdGF0ZS5wcF9vdXRfc3BhY2VzIDwtIGlcblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IHBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IHBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgKCkgPVxuICAoc3RhdGUucHBfb3V0X3N0cmluZywgc3RhdGUucHBfb3V0X2ZsdXNoLFxuICAgc3RhdGUucHBfb3V0X25ld2xpbmUsIHN0YXRlLnBwX291dF9zcGFjZXMpXG5cblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IHNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IHNldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgPVxuICBwcF9zZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuXG4oKiBEZXByZWNhdGVkIDogc3Vic3VtZWQgYnkgZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zICopXG5sZXQgZ2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuXG5cbigqIERlcHJlY2F0ZWQgOiBlcnJvciBwcm9uZSBmdW5jdGlvbiwgZG8gbm90IHVzZSBpdC5cbiAgIFRoaXMgZnVuY3Rpb24gaXMgbmVpdGhlciBjb21wb3NpdGlvbmFsIG5vciBpbmNyZW1lbnRhbCwgc2luY2UgaXQgZmx1c2hlc1xuICAgdGhlIHByZXR0eS1wcmludGVyIHF1ZXVlIGF0IGVhY2ggY2FsbC5cbiAgIFRvIGdldCB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5LCBkZWZpbmUgYSBmb3JtYXR0ZXIgb2YgeW91ciBvd24gd3JpdGluZyB0b1xuICAgdGhlIGJ1ZmZlciBhcmd1bWVudCwgYXMgaW5cbiAgIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGJcbiAgIHRoZW4gdXNlIHshZnByaW50ZiBwcGZ9IGFzIHVzdWFsLiAqKVxubGV0IGJwcmludGYgYiAoRm9ybWF0IChmbXQsIF8pIDogKCdhLCBmb3JtYXR0ZXIsIHVuaXQpIGZvcm1hdCkgPVxuICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBiIGluXG4gIGxldCBrIGFjYyA9IG91dHB1dF9hY2MgcHBmIGFjYzsgcHBfZmx1c2hfcXVldWUgcHBmIGZhbHNlIGluXG4gIG1ha2VfcHJpbnRmIGsgRW5kX29mX2FjYyBmbXRcblxuXG4oKiBEZXByZWNhdGVkIDogYWxpYXMgZm9yIGtzcHJpbnRmLiAqKVxubGV0IGtwcmludGYgPSBrc3ByaW50ZlxuXG5cblxuKCogRGVwcmVjYXRlZCB0YWcgZnVuY3Rpb25zICopXG5cbnR5cGUgZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgPSB7XG4gIG1hcmtfb3Blbl90YWcgOiB0YWcgLT4gc3RyaW5nO1xuICBtYXJrX2Nsb3NlX3RhZyA6IHRhZyAtPiBzdHJpbmc7XG4gIHByaW50X29wZW5fdGFnIDogdGFnIC0+IHVuaXQ7XG4gIHByaW50X2Nsb3NlX3RhZyA6IHRhZyAtPiB1bml0O1xufVxuXG5cbmxldCBwcF9zZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgc3RhdGUge1xuICAgICBtYXJrX29wZW5fdGFnID0gbW90O1xuICAgICBtYXJrX2Nsb3NlX3RhZyA9IG1jdDtcbiAgICAgcHJpbnRfb3Blbl90YWcgPSBwb3Q7XG4gICAgIHByaW50X2Nsb3NlX3RhZyA9IHBjdDtcbiAgIH0gPVxuICBsZXQgc3RyaW5naWZ5IGYgZSA9IGZ1bmN0aW9uIFN0cmluZ190YWcgcyAtPiBmIHMgfCBfIC0+IGUgaW5cbiAgc3RhdGUucHBfbWFya19vcGVuX3RhZyA8LSBzdHJpbmdpZnkgbW90IFwiXCI7XG4gIHN0YXRlLnBwX21hcmtfY2xvc2VfdGFnIDwtIHN0cmluZ2lmeSBtY3QgXCJcIjtcbiAgc3RhdGUucHBfcHJpbnRfb3Blbl90YWcgPC0gc3RyaW5naWZ5IHBvdCAoKTtcbiAgc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnIDwtIHN0cmluZ2lmeSBwY3QgKClcblxubGV0IHBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyBmbXQgKCkgPVxuICBsZXQgZnVucyA9IHBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgZm10ICgpIGluXG4gIGxldCBtYXJrX29wZW5fdGFnIHMgPSBmdW5zLm1hcmtfb3Blbl9zdGFnIChTdHJpbmdfdGFnIHMpIGluXG4gIGxldCBtYXJrX2Nsb3NlX3RhZyBzID0gZnVucy5tYXJrX2Nsb3NlX3N0YWcgKFN0cmluZ190YWcgcykgaW5cbiAgbGV0IHByaW50X29wZW5fdGFnIHMgPSBmdW5zLnByaW50X29wZW5fc3RhZyAoU3RyaW5nX3RhZyBzKSBpblxuICBsZXQgcHJpbnRfY2xvc2VfdGFnIHMgPSBmdW5zLnByaW50X2Nsb3NlX3N0YWcgKFN0cmluZ190YWcgcykgaW5cbiAge21hcmtfb3Blbl90YWc7IG1hcmtfY2xvc2VfdGFnOyBwcmludF9vcGVuX3RhZzsgcHJpbnRfY2xvc2VfdGFnfVxuXG5sZXQgc2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgPVxuICBwcF9nZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgUGllcnJlIFdlaXMsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljc1xub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRcblxuKCogYWxpYXMgdG8gYXZvaWQgd2FybmluZyBmb3IgYW1iaWd1aXR5IGJldHdlZW5cbiAgIFN0ZGxpYi5mb3JtYXQ2XG4gICBhbmQgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDZcblxuICAgKHRoZSBmb3JtZXIgaXMgaW4gZmFjdCBhbiBhbGlhcyBmb3IgdGhlIGxhdHRlcixcbiAgICBidXQgdGhlIGFtYmlndWl0eSB3YXJuaW5nIGRvZXNuJ3QgY2FyZSlcbiopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID1cbiAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIFN0ZGxpYi5mb3JtYXQ2XG5cblxuKCogVGhlIHJ1bi10aW1lIGxpYnJhcnkgZm9yIHNjYW5uZXJzLiAqKVxuXG4oKiBTY2FubmluZyBidWZmZXJzLiAqKVxubW9kdWxlIHR5cGUgU0NBTk5JTkcgPSBzaWdcblxuICB0eXBlIGluX2NoYW5uZWxcblxuICB0eXBlIHNjYW5idWYgPSBpbl9jaGFubmVsXG5cbiAgdHlwZSBmaWxlX25hbWUgPSBzdHJpbmdcblxuICB2YWwgc3RkaW4gOiBpbl9jaGFubmVsXG4gICgqIFRoZSBzY2FubmluZyBidWZmZXIgcmVhZGluZyBmcm9tIFtTdGRsaWIuc3RkaW5dLlxuICAgICBbc3RkaWJdIGlzIGVxdWl2YWxlbnQgdG8gW1NjYW5uaW5nLmZyb21fY2hhbm5lbCBTdGRsaWIuc3RkaW5dLiAqKVxuXG4gIHZhbCBzdGRpYiA6IGluX2NoYW5uZWxcbiAgKCogQW4gYWxpYXMgZm9yIFtTY2FuZi5zdGRpbl0sIHRoZSBzY2FubmluZyBidWZmZXIgcmVhZGluZyBmcm9tXG4gICAgIFtTdGRsaWIuc3RkaW5dLiAqKVxuXG4gIHZhbCBuZXh0X2NoYXIgOiBzY2FuYnVmIC0+IGNoYXJcbiAgKCogW1NjYW5uaW5nLm5leHRfY2hhciBpYl0gYWR2YW5jZSB0aGUgc2Nhbm5pbmcgYnVmZmVyIGZvclxuICAgICBvbmUgY2hhcmFjdGVyLlxuICAgICBJZiBubyBtb3JlIGNoYXJhY3RlciBjYW4gYmUgcmVhZCwgc2V0cyBhIGVuZCBvZiBmaWxlIGNvbmRpdGlvbiBhbmRcbiAgICAgcmV0dXJucyAnXFwwMDAnLiAqKVxuXG4gIHZhbCBpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciA6IHNjYW5idWYgLT4gdW5pdFxuICAoKiBbU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWJdIG1hcmsgdGhlIGN1cnJlbnRfY2hhciBhcyBhbHJlYWR5XG4gICAgIHNjYW5uZWQuICopXG5cbiAgdmFsIHBlZWtfY2hhciA6IHNjYW5idWYgLT4gY2hhclxuICAoKiBbU2Nhbm5pbmcucGVla19jaGFyIGliXSByZXR1cm5zIHRoZSBjdXJyZW50IGNoYXIgYXZhaWxhYmxlIGluXG4gICAgIHRoZSBidWZmZXIgb3IgcmVhZHMgb25lIGlmIG5lY2Vzc2FyeSAod2hlbiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXNcbiAgICAgYWxyZWFkeSBzY2FubmVkKS5cbiAgICAgSWYgbm8gY2hhcmFjdGVyIGNhbiBiZSByZWFkLCBzZXRzIGFuIGVuZCBvZiBmaWxlIGNvbmRpdGlvbiBhbmRcbiAgICAgcmV0dXJucyAnXFwwMDAnLiAqKVxuXG4gIHZhbCBjaGVja2VkX3BlZWtfY2hhciA6IHNjYW5idWYgLT4gY2hhclxuICAoKiBTYW1lIGFzIFtTY2FubmluZy5wZWVrX2NoYXJdIGFib3ZlIGJ1dCBhbHdheXMgcmV0dXJucyBhIHZhbGlkIGNoYXIgb3JcbiAgICAgZmFpbHM6IGluc3RlYWQgb2YgcmV0dXJuaW5nIGEgbnVsbCBjaGFyIHdoZW4gdGhlIHJlYWRpbmcgbWV0aG9kIG9mIHRoZVxuICAgICBpbnB1dCBidWZmZXIgaGFzIHJlYWNoZWQgYW4gZW5kIG9mIGZpbGUsIHRoZSBmdW5jdGlvbiByYWlzZXMgZXhjZXB0aW9uXG4gICAgIFtFbmRfb2ZfZmlsZV0uICopXG5cbiAgdmFsIHN0b3JlX2NoYXIgOiBpbnQgLT4gc2NhbmJ1ZiAtPiBjaGFyIC0+IGludFxuICAoKiBbU2Nhbm5pbmcuc3RvcmVfY2hhciBsaW0gaWIgY10gYWRkcyBbY10gdG8gdGhlIHRva2VuIGJ1ZmZlclxuICAgICBvZiB0aGUgc2Nhbm5pbmcgYnVmZmVyIFtpYl0uIEl0IGFsc28gYWR2YW5jZXMgdGhlIHNjYW5uaW5nIGJ1ZmZlciBmb3JcbiAgICAgb25lIGNoYXJhY3RlciBhbmQgcmV0dXJucyBbbGltIC0gMV0sIGluZGljYXRpbmcgdGhlIG5ldyBsaW1pdCBmb3IgdGhlXG4gICAgIGxlbmd0aCBvZiB0aGUgY3VycmVudCB0b2tlbi4gKilcblxuICB2YWwgc2tpcF9jaGFyIDogaW50IC0+IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy5za2lwX2NoYXIgbGltIGliXSBpZ25vcmVzIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4gKilcblxuICB2YWwgaWdub3JlX2NoYXIgOiBpbnQgLT4gc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLmlnbm9yZV9jaGFyIGliIGxpbV0gaWdub3JlcyB0aGUgY3VycmVudCBjaGFyYWN0ZXIgYW5kXG4gICAgIGRlY3JlbWVudHMgdGhlIGxpbWl0LiAqKVxuXG4gIHZhbCB0b2tlbiA6IHNjYW5idWYgLT4gc3RyaW5nXG4gICgqIFtTY2FubmluZy50b2tlbiBpYl0gcmV0dXJucyB0aGUgc3RyaW5nIHN0b3JlZCBpbnRvIHRoZSB0b2tlblxuICAgICBidWZmZXIgb2YgdGhlIHNjYW5uaW5nIGJ1ZmZlcjogaXQgcmV0dXJucyB0aGUgdG9rZW4gbWF0Y2hlZCBieSB0aGVcbiAgICAgZm9ybWF0LiAqKVxuXG4gIHZhbCByZXNldF90b2tlbiA6IHNjYW5idWYgLT4gdW5pdFxuICAoKiBbU2Nhbm5pbmcucmVzZXRfdG9rZW4gaWJdIHJlc2V0cyB0aGUgdG9rZW4gYnVmZmVyIG9mXG4gICAgIHRoZSBnaXZlbiBzY2FubmluZyBidWZmZXIuICopXG5cbiAgdmFsIGNoYXJfY291bnQgOiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcuY2hhcl9jb3VudCBpYl0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnNcbiAgICAgcmVhZCBzbyBmYXIgZnJvbSB0aGUgZ2l2ZW4gYnVmZmVyLiAqKVxuXG4gIHZhbCBsaW5lX2NvdW50IDogc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLmxpbmVfY291bnQgaWJdIHJldHVybnMgdGhlIG51bWJlciBvZiBuZXcgbGluZVxuICAgICBjaGFyYWN0ZXJzIHJlYWQgc28gZmFyIGZyb20gdGhlIGdpdmVuIGJ1ZmZlci4gKilcblxuICB2YWwgdG9rZW5fY291bnQgOiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcudG9rZW5fY291bnQgaWJdIHJldHVybnMgdGhlIG51bWJlciBvZiB0b2tlbnMgcmVhZFxuICAgICBzbyBmYXIgZnJvbSBbaWJdLiAqKVxuXG4gIHZhbCBlb2YgOiBzY2FuYnVmIC0+IGJvb2xcbiAgKCogW1NjYW5uaW5nLmVvZiBpYl0gcmV0dXJucyB0aGUgZW5kIG9mIGlucHV0IGNvbmRpdGlvblxuICAgICBvZiB0aGUgZ2l2ZW4gYnVmZmVyLiAqKVxuXG4gIHZhbCBlbmRfb2ZfaW5wdXQgOiBzY2FuYnVmIC0+IGJvb2xcbiAgKCogW1NjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYl0gdGVzdHMgdGhlIGVuZCBvZiBpbnB1dCBjb25kaXRpb25cbiAgICAgb2YgdGhlIGdpdmVuIGJ1ZmZlciAoaWYgbm8gY2hhciBoYXMgZXZlciBiZWVuIHJlYWQsIGFuIGF0dGVtcHQgdG9cbiAgICAgcmVhZCBvbmUgaXMgcGVyZm9ybWVkKS4gKilcblxuICB2YWwgYmVnaW5uaW5nX29mX2lucHV0IDogc2NhbmJ1ZiAtPiBib29sXG4gICgqIFtTY2FubmluZy5iZWdpbm5pbmdfb2ZfaW5wdXQgaWJdIHRlc3RzIHRoZSBiZWdpbm5pbmcgb2YgaW5wdXRcbiAgICAgY29uZGl0aW9uIG9mIHRoZSBnaXZlbiBidWZmZXIuICopXG5cbiAgdmFsIG5hbWVfb2ZfaW5wdXQgOiBzY2FuYnVmIC0+IHN0cmluZ1xuICAoKiBbU2Nhbm5pbmcubmFtZV9vZl9pbnB1dCBpYl0gcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgY2hhcmFjdGVyXG4gICAgIHNvdXJjZSBmb3IgaW5wdXQgYnVmZmVyIFtpYl0uICopXG5cbiAgdmFsIG9wZW5faW4gOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgb3Blbl9pbl9iaW4gOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9maWxlIDogZmlsZV9uYW1lIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fZmlsZV9iaW4gOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9zdHJpbmcgOiBzdHJpbmcgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9mdW5jdGlvbiA6ICh1bml0IC0+IGNoYXIpIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fY2hhbm5lbCA6IFN0ZGxpYi5pbl9jaGFubmVsIC0+IGluX2NoYW5uZWxcblxuICB2YWwgY2xvc2VfaW4gOiBpbl9jaGFubmVsIC0+IHVuaXRcblxuICB2YWwgbWVtb19mcm9tX2NoYW5uZWwgOiBTdGRsaWIuaW5fY2hhbm5lbCAtPiBpbl9jaGFubmVsXG4gICgqIE9ic29sZXRlLiAqKVxuXG5lbmRcblxuXG5tb2R1bGUgU2Nhbm5pbmcgOiBTQ0FOTklORyA9IHN0cnVjdFxuXG4gICgqIFRoZSBydW4tdGltZSBsaWJyYXJ5IGZvciBzY2FuZi4gKilcblxuICB0eXBlIGZpbGVfbmFtZSA9IHN0cmluZ1xuXG4gIHR5cGUgaW5fY2hhbm5lbF9uYW1lID1cbiAgICB8IEZyb21fY2hhbm5lbCBvZiBTdGRsaWIuaW5fY2hhbm5lbFxuICAgIHwgRnJvbV9maWxlIG9mIGZpbGVfbmFtZSAqIFN0ZGxpYi5pbl9jaGFubmVsXG4gICAgfCBGcm9tX2Z1bmN0aW9uXG4gICAgfCBGcm9tX3N0cmluZ1xuXG5cbiAgdHlwZSBpbl9jaGFubmVsID0ge1xuICAgIG11dGFibGUgaWNfZW9mIDogYm9vbDtcbiAgICBtdXRhYmxlIGljX2N1cnJlbnRfY2hhciA6IGNoYXI7XG4gICAgbXV0YWJsZSBpY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgOiBib29sO1xuICAgIG11dGFibGUgaWNfY2hhcl9jb3VudCA6IGludDtcbiAgICBtdXRhYmxlIGljX2xpbmVfY291bnQgOiBpbnQ7XG4gICAgbXV0YWJsZSBpY190b2tlbl9jb3VudCA6IGludDtcbiAgICBpY19nZXRfbmV4dF9jaGFyIDogdW5pdCAtPiBjaGFyO1xuICAgIGljX3Rva2VuX2J1ZmZlciA6IEJ1ZmZlci50O1xuICAgIGljX2lucHV0X25hbWUgOiBpbl9jaGFubmVsX25hbWU7XG4gIH1cblxuXG4gIHR5cGUgc2NhbmJ1ZiA9IGluX2NoYW5uZWxcblxuICBsZXQgbnVsbF9jaGFyID0gJ1xcMDAwJ1xuXG4gICgqIFJlYWRzIGEgbmV3IGNoYXJhY3RlciBmcm9tIGlucHV0IGJ1ZmZlci5cbiAgICAgTmV4dF9jaGFyIG5ldmVyIGZhaWxzLCBldmVuIGluIGNhc2Ugb2YgZW5kIG9mIGlucHV0OlxuICAgICBpdCB0aGVuIHNpbXBseSBzZXRzIHRoZSBlbmQgb2YgZmlsZSBjb25kaXRpb24uICopXG4gIGxldCBuZXh0X2NoYXIgaWIgPVxuICAgIHRyeVxuICAgICAgbGV0IGMgPSBpYi5pY19nZXRfbmV4dF9jaGFyICgpIGluXG4gICAgICBpYi5pY19jdXJyZW50X2NoYXIgPC0gYztcbiAgICAgIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA8LSB0cnVlO1xuICAgICAgaWIuaWNfY2hhcl9jb3VudCA8LSBzdWNjIGliLmljX2NoYXJfY291bnQ7XG4gICAgICBpZiBjID0gJ1xcbicgdGhlbiBpYi5pY19saW5lX2NvdW50IDwtIHN1Y2MgaWIuaWNfbGluZV9jb3VudDtcbiAgICAgIGMgd2l0aFxuICAgIHwgRW5kX29mX2ZpbGUgLT5cbiAgICAgIGxldCBjID0gbnVsbF9jaGFyIGluXG4gICAgICBpYi5pY19jdXJyZW50X2NoYXIgPC0gYztcbiAgICAgIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA8LSBmYWxzZTtcbiAgICAgIGliLmljX2VvZiA8LSB0cnVlO1xuICAgICAgY1xuXG5cbiAgbGV0IHBlZWtfY2hhciBpYiA9XG4gICAgaWYgaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkXG4gICAgdGhlbiBpYi5pY19jdXJyZW50X2NoYXJcbiAgICBlbHNlIG5leHRfY2hhciBpYlxuXG5cbiAgKCogUmV0dXJucyBhIHZhbGlkIGN1cnJlbnQgY2hhciBmb3IgdGhlIGlucHV0IGJ1ZmZlci4gSW4gcGFydGljdWxhclxuICAgICBubyBpcnJlbGV2YW50IG51bGwgY2hhcmFjdGVyIChhcyBzZXQgYnkgW25leHRfY2hhcl0gaW4gY2FzZSBvZiBlbmRcbiAgICAgb2YgaW5wdXQpIGlzIHJldHVybmVkLCBzaW5jZSBbRW5kX29mX2ZpbGVdIGlzIHJhaXNlZCB3aGVuXG4gICAgIFtuZXh0X2NoYXJdIHNldHMgdGhlIGVuZCBvZiBmaWxlIGNvbmRpdGlvbiB3aGlsZSB0cnlpbmcgdG8gcmVhZCBhXG4gICAgIG5ldyBjaGFyYWN0ZXIuICopXG4gIGxldCBjaGVja2VkX3BlZWtfY2hhciBpYiA9XG4gICAgbGV0IGMgPSBwZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBpYi5pY19lb2YgdGhlbiByYWlzZSBFbmRfb2ZfZmlsZTtcbiAgICBjXG5cblxuICBsZXQgZW5kX29mX2lucHV0IGliID1cbiAgICBpZ25vcmUgKHBlZWtfY2hhciBpYik7XG4gICAgaWIuaWNfZW9mXG5cblxuICBsZXQgZW9mIGliID0gaWIuaWNfZW9mXG5cbiAgbGV0IGJlZ2lubmluZ19vZl9pbnB1dCBpYiA9IGliLmljX2NoYXJfY291bnQgPSAwXG5cbiAgbGV0IG5hbWVfb2ZfaW5wdXQgaWIgPVxuICAgIG1hdGNoIGliLmljX2lucHV0X25hbWUgd2l0aFxuICAgIHwgRnJvbV9jaGFubmVsIF9pYyAtPiBcInVubmFtZWQgU3RkbGliIGlucHV0IGNoYW5uZWxcIlxuICAgIHwgRnJvbV9maWxlIChmbmFtZSwgX2ljKSAtPiBmbmFtZVxuICAgIHwgRnJvbV9mdW5jdGlvbiAtPiBcInVubmFtZWQgZnVuY3Rpb25cIlxuICAgIHwgRnJvbV9zdHJpbmcgLT4gXCJ1bm5hbWVkIGNoYXJhY3RlciBzdHJpbmdcIlxuXG5cbiAgbGV0IGNoYXJfY291bnQgaWIgPVxuICAgIGlmIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZFxuICAgIHRoZW4gaWIuaWNfY2hhcl9jb3VudCAtIDFcbiAgICBlbHNlIGliLmljX2NoYXJfY291bnRcblxuXG4gIGxldCBsaW5lX2NvdW50IGliID0gaWIuaWNfbGluZV9jb3VudFxuXG4gIGxldCByZXNldF90b2tlbiBpYiA9IEJ1ZmZlci5yZXNldCBpYi5pY190b2tlbl9idWZmZXJcblxuICBsZXQgaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWIgPSBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgPC0gZmFsc2VcblxuICBsZXQgdG9rZW4gaWIgPVxuICAgIGxldCB0b2tlbl9idWZmZXIgPSBpYi5pY190b2tlbl9idWZmZXIgaW5cbiAgICBsZXQgdG9rID0gQnVmZmVyLmNvbnRlbnRzIHRva2VuX2J1ZmZlciBpblxuICAgIEJ1ZmZlci5jbGVhciB0b2tlbl9idWZmZXI7XG4gICAgaWIuaWNfdG9rZW5fY291bnQgPC0gc3VjYyBpYi5pY190b2tlbl9jb3VudDtcbiAgICB0b2tcblxuXG4gIGxldCB0b2tlbl9jb3VudCBpYiA9IGliLmljX3Rva2VuX2NvdW50XG5cbiAgbGV0IHNraXBfY2hhciB3aWR0aCBpYiA9XG4gICAgaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWI7XG4gICAgd2lkdGhcblxuXG4gIGxldCBpZ25vcmVfY2hhciB3aWR0aCBpYiA9IHNraXBfY2hhciAod2lkdGggLSAxKSBpYlxuXG4gIGxldCBzdG9yZV9jaGFyIHdpZHRoIGliIGMgPVxuICAgIEJ1ZmZlci5hZGRfY2hhciBpYi5pY190b2tlbl9idWZmZXIgYztcbiAgICBpZ25vcmVfY2hhciB3aWR0aCBpYlxuXG5cbiAgbGV0IGRlZmF1bHRfdG9rZW5fYnVmZmVyX3NpemUgPSAxMDI0XG5cbiAgbGV0IGNyZWF0ZSBpbmFtZSBuZXh0ID0ge1xuICAgIGljX2VvZiA9IGZhbHNlO1xuICAgIGljX2N1cnJlbnRfY2hhciA9IG51bGxfY2hhcjtcbiAgICBpY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgPSBmYWxzZTtcbiAgICBpY19jaGFyX2NvdW50ID0gMDtcbiAgICBpY19saW5lX2NvdW50ID0gMDtcbiAgICBpY190b2tlbl9jb3VudCA9IDA7XG4gICAgaWNfZ2V0X25leHRfY2hhciA9IG5leHQ7XG4gICAgaWNfdG9rZW5fYnVmZmVyID0gQnVmZmVyLmNyZWF0ZSBkZWZhdWx0X3Rva2VuX2J1ZmZlcl9zaXplO1xuICAgIGljX2lucHV0X25hbWUgPSBpbmFtZTtcbiAgfVxuXG5cbiAgbGV0IGZyb21fc3RyaW5nIHMgPVxuICAgIGxldCBpID0gcmVmIDAgaW5cbiAgICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gICAgbGV0IG5leHQgKCkgPVxuICAgICAgaWYgIWkgPj0gbGVuIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGUgZWxzZVxuICAgICAgbGV0IGMgPSBzLlshaV0gaW5cbiAgICAgIGluY3IgaTtcbiAgICAgIGMgaW5cbiAgICBjcmVhdGUgRnJvbV9zdHJpbmcgbmV4dFxuXG5cbiAgbGV0IGZyb21fZnVuY3Rpb24gPSBjcmVhdGUgRnJvbV9mdW5jdGlvblxuXG4gICgqIFNjYW5uaW5nIGZyb20gYW4gaW5wdXQgY2hhbm5lbC4gKilcblxuICAoKiBQb3NpdGlvbiBvZiB0aGUgcHJvYmxlbTpcblxuICAgICBXZSBjYW5ub3QgcHJldmVudCB0aGUgc2Nhbm5pbmcgbWVjaGFuaXNtIHRvIHVzZSBvbmUgbG9va2FoZWFkIGNoYXJhY3RlcixcbiAgICAgaWYgbmVlZGVkIGJ5IHRoZSBzZW1hbnRpY3Mgb2YgdGhlIGZvcm1hdCBzdHJpbmcgc3BlY2lmaWNhdGlvbnMgKGUuZy4gYVxuICAgICB0cmFpbGluZyAnc2tpcCBzcGFjZScgc3BlY2lmaWNhdGlvbiBpbiB0aGUgZm9ybWF0IHN0cmluZyk7IGluIHRoaXMgY2FzZSxcbiAgICAgdGhlIG1hbmRhdG9yeSBsb29rYWhlYWQgY2hhcmFjdGVyIGlzIGluZGVlZCByZWFkIGZyb20gdGhlIGlucHV0IGFuZCBub3RcbiAgICAgdXNlZCB0byByZXR1cm4gdGhlIHRva2VuIHJlYWQuIEl0IGlzIHRodXMgbWFuZGF0b3J5IHRvIGJlIGFibGUgdG8gc3RvcmVcbiAgICAgYW4gdW51c2VkIGxvb2thaGVhZCBjaGFyYWN0ZXIgc29tZXdoZXJlIHRvIGdldCBpdCBhcyB0aGUgZmlyc3QgY2hhcmFjdGVyXG4gICAgIG9mIHRoZSBuZXh0IHNjYW4uXG5cbiAgICAgVG8gY2lyY3VtdmVudCB0aGlzIHByb2JsZW0sIGFsbCB0aGUgc2Nhbm5pbmcgZnVuY3Rpb25zIGdldCBhIGxvdyBsZXZlbFxuICAgICBpbnB1dCBidWZmZXIgYXJndW1lbnQgd2hlcmUgdGhleSBzdG9yZSB0aGUgbG9va2FoZWFkIGNoYXJhY3RlciB3aGVuXG4gICAgIG5lZWRlZDsgYWRkaXRpb25hbGx5LCB0aGUgaW5wdXQgYnVmZmVyIGlzIHRoZSBvbmx5IHNvdXJjZSBvZiBjaGFyYWN0ZXIgb2ZcbiAgICAgYSBzY2FubmVyLiBUaGUgW3NjYW5idWZdIGlucHV0IGJ1ZmZlcnMgYXJlIGRlZmluZWQgaW4gbW9kdWxlIHshU2Nhbm5pbmd9LlxuXG4gICAgIE5vdyB3ZSB1bmRlcnN0YW5kIHRoYXQgaXQgaXMgZXh0cmVtZWx5IGltcG9ydGFudCB0aGF0IHJlbGF0ZWQgYW5kXG4gICAgIHN1Y2Nlc3NpdmUgY2FsbHMgdG8gc2Nhbm5lcnMgaW5kZWVkIHJlYWQgZnJvbSB0aGUgc2FtZSBpbnB1dCBidWZmZXIuXG4gICAgIEluIGVmZmVjdCwgaWYgYSBzY2FubmVyIFtzY2FuMV0gaXMgcmVhZGluZyBmcm9tIFtpYjFdIGFuZCBzdG9yZXMgYW5cbiAgICAgdW51c2VkIGxvb2thaGVhZCBjaGFyYWN0ZXIgW2MxXSBpbnRvIGl0cyBpbnB1dCBidWZmZXIgW2liMV0sIHRoZW5cbiAgICAgYW5vdGhlciBzY2FubmVyIFtzY2FuMl0gbm90IHJlYWRpbmcgZnJvbSB0aGUgc2FtZSBidWZmZXIgW2liMV0gd2lsbCBtaXNzXG4gICAgIHRoZSBjaGFyYWN0ZXIgW2MxXSwgc2VlbWluZ2x5IHZhbmlzaGVkIGluIHRoZSBhaXIgZnJvbSB0aGUgcG9pbnQgb2Ygdmlld1xuICAgICBvZiBbc2NhbjJdLlxuXG4gICAgIFRoaXMgbWVjaGFuaXNtIHdvcmtzIHBlcmZlY3RseSB0byByZWFkIGZyb20gc3RyaW5ncywgZnJvbSBmaWxlcywgYW5kIGZyb21cbiAgICAgZnVuY3Rpb25zLCBzaW5jZSBpbiB0aG9zZSBjYXNlcywgYWxsb2NhdGluZyB0d28gYnVmZmVycyByZWFkaW5nIGZyb20gdGhlXG4gICAgIHNhbWUgc291cmNlIGlzIHVubmF0dXJhbC5cblxuICAgICBTdGlsbCwgdGhlcmUgaXMgYSBkaWZmaWN1bHR5IGluIHRoZSBjYXNlIG9mIHNjYW5uaW5nIGZyb20gYW4gaW5wdXRcbiAgICAgY2hhbm5lbC4gSW4gZWZmZWN0LCB3aGVuIHNjYW5uaW5nIGZyb20gYW4gaW5wdXQgY2hhbm5lbCBbaWNdLCB0aGlzIGNoYW5uZWxcbiAgICAgbWF5IG5vdCBoYXZlIGJlZW4gYWxsb2NhdGVkIGZyb20gd2l0aGluIHRoaXMgbGlicmFyeS4gSGVuY2UsIGl0IG1heSBiZVxuICAgICBzaGFyZWQgKHR3byBmdW5jdGlvbnMgb2YgdGhlIHVzZXIncyBwcm9ncmFtIG1heSBzdWNjZXNzaXZlbHkgcmVhZCBmcm9tXG4gICAgIFtpY10pLiBUaGlzIGlzIGhpZ2hseSBlcnJvciBwcm9uZSBzaW5jZSwgb25lIG9mIHRoZSBmdW5jdGlvbiBtYXkgc2VlayB0aGVcbiAgICAgaW5wdXQgY2hhbm5lbCwgd2hpbGUgdGhlIG90aGVyIGZ1bmN0aW9uIGhhcyBzdGlsbCBhbiB1bnVzZWQgbG9va2FoZWFkXG4gICAgIGNoYXJhY3RlciBpbiBpdHMgaW5wdXQgYnVmZmVyLiBJbiBjb25jbHVzaW9uLCB5b3Ugc2hvdWxkIG5ldmVyIG1peCBkaXJlY3RcbiAgICAgbG93IGxldmVsIHJlYWRpbmcgYW5kIGhpZ2ggbGV2ZWwgc2Nhbm5pbmcgZnJvbSB0aGUgc2FtZSBpbnB1dCBjaGFubmVsLlxuXG4gICopXG5cbiAgKCogUGVyZm9ybSBidWZmZXJpemVkIGlucHV0IHRvIGltcHJvdmUgZWZmaWNpZW5jeS4gKilcbiAgbGV0IGZpbGVfYnVmZmVyX3NpemUgPSByZWYgMTAyNFxuXG4gICgqIFRoZSBzY2FubmVyIGNsb3NlcyB0aGUgaW5wdXQgY2hhbm5lbCBhdCBlbmQgb2YgaW5wdXQuICopXG4gIGxldCBzY2FuX2Nsb3NlX2F0X2VuZCBpYyA9IFN0ZGxpYi5jbG9zZV9pbiBpYzsgcmFpc2UgRW5kX29mX2ZpbGVcblxuICAoKiBUaGUgc2Nhbm5lciBkb2VzIG5vdCBjbG9zZSB0aGUgaW5wdXQgY2hhbm5lbCBhdCBlbmQgb2YgaW5wdXQ6XG4gICAgIGl0IGp1c3QgcmFpc2VzIFtFbmRfb2ZfZmlsZV0uICopXG4gIGxldCBzY2FuX3JhaXNlX2F0X2VuZCBfaWMgPSByYWlzZSBFbmRfb2ZfZmlsZVxuXG4gIGxldCBmcm9tX2ljIHNjYW5fY2xvc2VfaWMgaW5hbWUgaWMgPVxuICAgIGxldCBsZW4gPSAhZmlsZV9idWZmZXJfc2l6ZSBpblxuICAgIGxldCBidWYgPSBCeXRlcy5jcmVhdGUgbGVuIGluXG4gICAgbGV0IGkgPSByZWYgMCBpblxuICAgIGxldCBsaW0gPSByZWYgMCBpblxuICAgIGxldCBlb2YgPSByZWYgZmFsc2UgaW5cbiAgICBsZXQgbmV4dCAoKSA9XG4gICAgICBpZiAhaSA8ICFsaW0gdGhlbiBiZWdpbiBsZXQgYyA9IEJ5dGVzLmdldCBidWYgIWkgaW4gaW5jciBpOyBjIGVuZCBlbHNlXG4gICAgICBpZiAhZW9mIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGUgZWxzZSBiZWdpblxuICAgICAgICBsaW0gOj0gaW5wdXQgaWMgYnVmIDAgbGVuO1xuICAgICAgICBpZiAhbGltID0gMCB0aGVuIGJlZ2luIGVvZiA6PSB0cnVlOyBzY2FuX2Nsb3NlX2ljIGljIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgICAgaSA6PSAxO1xuICAgICAgICAgIEJ5dGVzLmdldCBidWYgMFxuICAgICAgICBlbmRcbiAgICAgIGVuZCBpblxuICAgIGNyZWF0ZSBpbmFtZSBuZXh0XG5cblxuICBsZXQgZnJvbV9pY19jbG9zZV9hdF9lbmQgPSBmcm9tX2ljIHNjYW5fY2xvc2VfYXRfZW5kXG4gIGxldCBmcm9tX2ljX3JhaXNlX2F0X2VuZCA9IGZyb21faWMgc2Nhbl9yYWlzZV9hdF9lbmRcblxuICAoKiBUaGUgc2Nhbm5pbmcgYnVmZmVyIHJlYWRpbmcgZnJvbSBbU3RkbGliLnN0ZGluXS5cbiAgICAgT25lIGNvdWxkIHRyeSB0byBkZWZpbmUgW3N0ZGliXSBhcyBhIHNjYW5uaW5nIGJ1ZmZlciByZWFkaW5nIGEgY2hhcmFjdGVyXG4gICAgIGF0IGEgdGltZSAobm8gYnVmZmVyaXphdGlvbiBhdCBhbGwpLCBidXQgdW5mb3J0dW5hdGVseSB0aGUgdG9wLWxldmVsXG4gICAgIGludGVyYWN0aW9uIHdvdWxkIGJlIHdyb25nLiBUaGlzIGlzIGR1ZSB0byBzb21lIGtpbmQgb2ZcbiAgICAgJ3JhY2UgY29uZGl0aW9uJyB3aGVuIHJlYWRpbmcgZnJvbSBbU3RkbGliLnN0ZGluXSxcbiAgICAgc2luY2UgdGhlIGludGVyYWN0aXZlIGNvbXBpbGVyIGFuZCBbU2NhbmYuc2NhbmZdIHdpbGwgc2ltdWx0YW5lb3VzbHlcbiAgICAgcmVhZCB0aGUgbWF0ZXJpYWwgdGhleSBuZWVkIGZyb20gW1N0ZGxpYi5zdGRpbl07IHRoZW4sIGNvbmZ1c2lvblxuICAgICB3aWxsIHJlc3VsdCBmcm9tIHdoYXQgc2hvdWxkIGJlIHJlYWQgYnkgdGhlIHRvcC1sZXZlbCBhbmQgd2hhdCBzaG91bGQgYmVcbiAgICAgcmVhZCBieSBbU2NhbmYuc2NhbmZdLlxuICAgICBUaGlzIGlzIGV2ZW4gbW9yZSBjb21wbGljYXRlZCBieSB0aGUgb25lIGNoYXJhY3RlciBsb29rYWhlYWQgdGhhdFxuICAgICBbU2NhbmYuc2NhbmZdIGlzIHNvbWV0aW1lcyBvYmxpZ2VkIHRvIG1haW50YWluOiB0aGUgbG9va2FoZWFkIGNoYXJhY3RlclxuICAgICB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgW1NjYW5mLnNjYW5mXSBlbnRyeSwgc2VlbWluZ2x5IGNvbWluZyBmcm9tXG4gICAgIG5vd2hlcmUuXG4gICAgIEFsc28gbm8gW0VuZF9vZl9maWxlXSBpcyByYWlzZWQgd2hlbiByZWFkaW5nIGZyb20gc3RkaW46IGlmIG5vdCBlbm91Z2hcbiAgICAgY2hhcmFjdGVycyBoYXZlIGJlZW4gcmVhZCwgd2Ugc2ltcGx5IGFzayB0byByZWFkIG1vcmUuICopXG4gIGxldCBzdGRpbiA9XG4gICAgZnJvbV9pYyBzY2FuX3JhaXNlX2F0X2VuZFxuICAgICAgKEZyb21fZmlsZSAoXCItXCIsIFN0ZGxpYi5zdGRpbikpIFN0ZGxpYi5zdGRpblxuXG5cbiAgbGV0IHN0ZGliID0gc3RkaW5cblxuICBsZXQgb3Blbl9pbl9maWxlIG9wZW5faW4gZm5hbWUgPVxuICAgIG1hdGNoIGZuYW1lIHdpdGhcbiAgICB8IFwiLVwiIC0+IHN0ZGluXG4gICAgfCBmbmFtZSAtPlxuICAgICAgbGV0IGljID0gb3Blbl9pbiBmbmFtZSBpblxuICAgICAgZnJvbV9pY19jbG9zZV9hdF9lbmQgKEZyb21fZmlsZSAoZm5hbWUsIGljKSkgaWNcblxuXG4gIGxldCBvcGVuX2luID0gb3Blbl9pbl9maWxlIFN0ZGxpYi5vcGVuX2luXG4gIGxldCBvcGVuX2luX2JpbiA9IG9wZW5faW5fZmlsZSBTdGRsaWIub3Blbl9pbl9iaW5cblxuICBsZXQgZnJvbV9maWxlID0gb3Blbl9pblxuICBsZXQgZnJvbV9maWxlX2JpbiA9IG9wZW5faW5fYmluXG5cbiAgbGV0IGZyb21fY2hhbm5lbCBpYyA9XG4gICAgZnJvbV9pY19yYWlzZV9hdF9lbmQgKEZyb21fY2hhbm5lbCBpYykgaWNcblxuXG4gIGxldCBjbG9zZV9pbiBpYiA9XG4gICAgbWF0Y2ggaWIuaWNfaW5wdXRfbmFtZSB3aXRoXG4gICAgfCBGcm9tX2NoYW5uZWwgaWMgLT5cbiAgICAgIFN0ZGxpYi5jbG9zZV9pbiBpY1xuICAgIHwgRnJvbV9maWxlIChfZm5hbWUsIGljKSAtPiBTdGRsaWIuY2xvc2VfaW4gaWNcbiAgICB8IEZyb21fZnVuY3Rpb24gfCBGcm9tX3N0cmluZyAtPiAoKVxuXG5cbiAgKCpcbiAgICAgT2Jzb2xldGU6IGEgbWVtbyBbZnJvbV9jaGFubmVsXSB2ZXJzaW9uIHRvIGJ1aWxkIGEgW1NjYW5uaW5nLmluX2NoYW5uZWxdXG4gICAgIHNjYW5uaW5nIGJ1ZmZlciBvdXQgb2YgYSBbU3RkbGliLmluX2NoYW5uZWxdLlxuICAgICBUaGlzIGZ1bmN0aW9uIHdhcyB1c2VkIHRvIHRyeSB0byBwcmVzZXJ2ZSB0aGUgc2Nhbm5pbmdcbiAgICAgc2VtYW50aWNzIGZvciB0aGUgKG5vdyBvYnNvbGV0ZSkgZnVuY3Rpb24gW2ZzY2FuZl0uXG4gICAgIEdpdmVuIHRoYXQgYWxsIHNjYW5uZXIgbXVzdCByZWFkIGZyb20gYSBbU2Nhbm5pbmcuaW5fY2hhbm5lbF0gc2Nhbm5pbmdcbiAgICAgYnVmZmVyLCBbZnNjYW5mXSBtdXN0IHJlYWQgZnJvbSBvbmUhXG4gICAgIE1vcmUgcHJlY2lzZWx5LCBnaXZlbiBbaWNdLCBhbGwgc3VjY2Vzc2l2ZSBjYWxscyBbZnNjYW5mIGljXSBtdXN0IHJlYWRcbiAgICAgZnJvbSB0aGUgc2FtZSBzY2FubmluZyBidWZmZXIuXG4gICAgIFRoaXMgb2JsaWdlZCB0aGlzIGxpYnJhcnkgdG8gYWxsb2NhdGVkIHNjYW5uaW5nIGJ1ZmZlcnMgdGhhdCB3ZXJlXG4gICAgIG5vdCBwcm9wZXJseSBnYXJiYWdlIGNvbGxlY3RhYmxlLCBoZW5jZSBsZWFkaW5nIHRvIG1lbW9yeSBsZWFrcy5cbiAgICAgSWYgeW91IG5lZWQgdG8gcmVhZCBmcm9tIGEgW1N0ZGxpYi5pbl9jaGFubmVsXSBpbnB1dCBjaGFubmVsXG4gICAgIFtpY10sIHNpbXBseSBkZWZpbmUgYSBbU2Nhbm5pbmcuaW5fY2hhbm5lbF0gZm9ybWF0dGVkIGlucHV0IGNoYW5uZWwgYXMgaW5cbiAgICAgW2xldCBpYiA9IFNjYW5uaW5nLmZyb21fY2hhbm5lbCBpY10sIHRoZW4gdXNlIFtTY2FuZi5ic2NhbmYgaWJdIGFzIHVzdWFsLlxuICAqKVxuICBsZXQgbWVtb19mcm9tX2ljID1cbiAgICBsZXQgbWVtbyA9IHJlZiBbXSBpblxuICAgIChmdW4gc2Nhbl9jbG9zZV9pYyBpYyAtPlxuICAgICB0cnkgTGlzdC5hc3NxIGljICFtZW1vIHdpdGhcbiAgICAgfCBOb3RfZm91bmQgLT5cbiAgICAgICBsZXQgaWIgPVxuICAgICAgICAgZnJvbV9pYyBzY2FuX2Nsb3NlX2ljIChGcm9tX2NoYW5uZWwgaWMpIGljIGluXG4gICAgICAgbWVtbyA6PSAoaWMsIGliKSA6OiAhbWVtbztcbiAgICAgICBpYilcblxuXG4gICgqIE9ic29sZXRlOiBzZWUgeyFtZW1vX2Zyb21faWN9IGFib3ZlLiAqKVxuICBsZXQgbWVtb19mcm9tX2NoYW5uZWwgPSBtZW1vX2Zyb21faWMgc2Nhbl9yYWlzZV9hdF9lbmRcblxuZW5kXG5cblxuKCogRm9ybWF0dGVkIGlucHV0IGZ1bmN0aW9ucy4gKilcblxudHlwZSAoJ2EsICdiLCAnYywgJ2QpIHNjYW5uZXIgPVxuICAgICAoJ2EsIFNjYW5uaW5nLmluX2NoYW5uZWwsICdiLCAnYywgJ2EgLT4gJ2QsICdkKSBmb3JtYXQ2IC0+ICdjXG5cblxuKCogUmVwb3J0aW5nIGVycm9ycy4gKilcbmV4Y2VwdGlvbiBTY2FuX2ZhaWx1cmUgb2Ygc3RyaW5nXG5cbmxldCBiYWRfaW5wdXQgcyA9IHJhaXNlIChTY2FuX2ZhaWx1cmUgcylcblxubGV0IGJhZF9pbnB1dF9lc2NhcGUgYyA9XG4gIGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJpbGxlZ2FsIGVzY2FwZSBjaGFyYWN0ZXIgJUNcIiBjKVxuXG5cbmxldCBiYWRfdG9rZW5fbGVuZ3RoIG1lc3NhZ2UgPVxuICBiYWRfaW5wdXRcbiAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICBcInNjYW5uaW5nIG9mICVzIGZhaWxlZDogXFxcbiAgICAgICAgdGhlIHNwZWNpZmllZCBsZW5ndGggd2FzIHRvbyBzaG9ydCBmb3IgdG9rZW5cIlxuICAgICAgIG1lc3NhZ2UpXG5cblxubGV0IGJhZF9lbmRfb2ZfaW5wdXQgbWVzc2FnZSA9XG4gIGJhZF9pbnB1dFxuICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgIFwic2Nhbm5pbmcgb2YgJXMgZmFpbGVkOiBcXFxuICAgICAgICBwcmVtYXR1cmUgZW5kIG9mIGZpbGUgb2NjdXJyZWQgYmVmb3JlIGVuZCBvZiB0b2tlblwiXG4gICAgICAgbWVzc2FnZSlcblxuXG5sZXQgYmFkX2Zsb2F0ICgpID1cbiAgYmFkX2lucHV0IFwibm8gZG90IG9yIGV4cG9uZW50IHBhcnQgZm91bmQgaW4gZmxvYXQgdG9rZW5cIlxuXG5cbmxldCBiYWRfaGV4X2Zsb2F0ICgpID1cbiAgYmFkX2lucHV0IFwibm90IGEgdmFsaWQgZmxvYXQgaW4gaGV4YWRlY2ltYWwgbm90YXRpb25cIlxuXG5cbmxldCBjaGFyYWN0ZXJfbWlzbWF0Y2hfZXJyIGMgY2kgPVxuICBQcmludGYuc3ByaW50ZiBcImxvb2tpbmcgZm9yICVDLCBmb3VuZCAlQ1wiIGMgY2lcblxuXG5sZXQgY2hhcmFjdGVyX21pc21hdGNoIGMgY2kgPVxuICBiYWRfaW5wdXQgKGNoYXJhY3Rlcl9taXNtYXRjaF9lcnIgYyBjaSlcblxuXG5sZXQgcmVjIHNraXBfd2hpdGVzIGliID1cbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgbm90IChTY2FubmluZy5lb2YgaWIpIHRoZW4gYmVnaW5cbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8ICcgJyB8ICdcXHQnIHwgJ1xcbicgfCAnXFxyJyAtPlxuICAgICAgU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWI7IHNraXBfd2hpdGVzIGliXG4gICAgfCBfIC0+ICgpXG4gIGVuZFxuXG5cbigqIENoZWNraW5nIHRoYXQgW2NdIGlzIGluZGVlZCBpbiB0aGUgaW5wdXQsIHRoZW4gc2tpcHMgaXQuXG4gICBJbiB0aGlzIGNhc2UsIHRoZSBjaGFyYWN0ZXIgW2NdIGhhcyBiZWVuIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGluIHRoZVxuICAgZm9ybWF0IGFzIGJlaW5nIG1hbmRhdG9yeSBpbiB0aGUgaW5wdXQ7IGhlbmNlIHdlIHNob3VsZCBmYWlsIHdpdGhcbiAgIFtFbmRfb2ZfZmlsZV0gaW4gY2FzZSBvZiBlbmRfb2ZfaW5wdXQuXG4gICAoUmVtZW1iZXIgdGhhdCBbU2Nhbl9mYWlsdXJlXSBpcyByYWlzZWQgb25seSB3aGVuICh3ZSBjYW4gcHJvdmUgYnlcbiAgIGV2aWRlbmNlKSB0aGF0IHRoZSBpbnB1dCBkb2VzIG5vdCBtYXRjaCB0aGUgZm9ybWF0IHN0cmluZyBnaXZlbi4gV2UgbXVzdFxuICAgdGh1cyBkaWZmZXJlbnRpYXRlIFtFbmRfb2ZfZmlsZV0gYXMgYW4gZXJyb3IgZHVlIHRvIGxhY2sgb2YgaW5wdXQsIGFuZFxuICAgW1NjYW5fZmFpbHVyZV0gd2hpY2ggaXMgZHVlIHRvIHByb3ZhYmx5IHdyb25nIGlucHV0LiBJIGFtIG5vdCBzdXJlIHRoaXMgaXNcbiAgIHdvcnRoIHRoZSBidXJkZW46IGl0IGlzIGNvbXBsZXggYW5kIHNvbWVob3cgc3VibGltaW5hbDsgc2hvdWxkIGJlIGNsZWFyZXJcbiAgIHRvIGZhaWwgd2l0aCBTY2FuX2ZhaWx1cmUgXCJOb3QgZW5vdWdoIGlucHV0IHRvIGNvbXBsZXRlIHNjYW5uaW5nXCIhKVxuXG4gICBUaGF0J3Mgd2h5LCB3YWl0aW5nIGZvciBhIGJldHRlciBzb2x1dGlvbiwgd2UgdXNlIGNoZWNrZWRfcGVla19jaGFyIGhlcmUuXG4gICBXZSBhcmUgYWxzbyBjYXJlZnVsIHRvIHRyZWF0IFwiXFxyXFxuXCIgaW4gdGhlIGlucHV0IGFzIGFuIGVuZCBvZiBsaW5lIG1hcmtlcjpcbiAgIGl0IGFsd2F5cyBtYXRjaGVzIGEgJ1xcbicgc3BlY2lmaWNhdGlvbiBpbiB0aGUgaW5wdXQgZm9ybWF0IHN0cmluZy4gKilcbmxldCByZWMgY2hlY2tfY2hhciBpYiBjID1cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJyAnIC0+IHNraXBfd2hpdGVzIGliXG4gIHwgJ1xcbicgLT4gY2hlY2tfbmV3bGluZSBpYlxuICB8IGMgLT4gY2hlY2tfdGhpc19jaGFyIGliIGNcblxuYW5kIGNoZWNrX3RoaXNfY2hhciBpYiBjID1cbiAgbGV0IGNpID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgaWYgY2kgPSBjIHRoZW4gU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWIgZWxzZVxuICBjaGFyYWN0ZXJfbWlzbWF0Y2ggYyBjaVxuXG5hbmQgY2hlY2tfbmV3bGluZSBpYiA9XG4gIGxldCBjaSA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIG1hdGNoIGNpIHdpdGhcbiAgfCAnXFxuJyAtPiBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYlxuICB8ICdcXHInIC0+IFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliOyBjaGVja190aGlzX2NoYXIgaWIgJ1xcbidcbiAgfCBfIC0+IGNoYXJhY3Rlcl9taXNtYXRjaCAnXFxuJyBjaVxuXG5cbigqIEV4dHJhY3RpbmcgdG9rZW5zIGZyb20gdGhlIG91dHB1dCB0b2tlbiBidWZmZXIuICopXG5cbmxldCB0b2tlbl9jaGFyIGliID0gKFNjYW5uaW5nLnRva2VuIGliKS5bMF1cblxubGV0IHRva2VuX3N0cmluZyA9IFNjYW5uaW5nLnRva2VuXG5cbmxldCB0b2tlbl9ib29sIGliID1cbiAgbWF0Y2ggU2Nhbm5pbmcudG9rZW4gaWIgd2l0aFxuICB8IFwidHJ1ZVwiIC0+IHRydWVcbiAgfCBcImZhbHNlXCIgLT4gZmFsc2VcbiAgfCBzIC0+IGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJpbnZhbGlkIGJvb2xlYW4gJyVzJ1wiIHMpXG5cblxuKCogVGhlIHR5cGUgb2YgaW50ZWdlciBjb252ZXJzaW9ucy4gKilcbnR5cGUgaW50ZWdlcl9jb252ZXJzaW9uID1cbiAgfCBCX2NvbnZlcnNpb24gKCogVW5zaWduZWQgYmluYXJ5IGNvbnZlcnNpb24gKilcbiAgfCBEX2NvbnZlcnNpb24gKCogU2lnbmVkIGRlY2ltYWwgY29udmVyc2lvbiAqKVxuICB8IElfY29udmVyc2lvbiAoKiBTaWduZWQgaW50ZWdlciBjb252ZXJzaW9uICopXG4gIHwgT19jb252ZXJzaW9uICgqIFVuc2lnbmVkIG9jdGFsIGNvbnZlcnNpb24gKilcbiAgfCBVX2NvbnZlcnNpb24gKCogVW5zaWduZWQgZGVjaW1hbCBjb252ZXJzaW9uICopXG4gIHwgWF9jb252ZXJzaW9uICgqIFVuc2lnbmVkIGhleGFkZWNpbWFsIGNvbnZlcnNpb24gKilcblxuXG5sZXQgaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgPSBmdW5jdGlvblxuICB8ICdiJyAtPiBCX2NvbnZlcnNpb25cbiAgfCAnZCcgLT4gRF9jb252ZXJzaW9uXG4gIHwgJ2knIC0+IElfY29udmVyc2lvblxuICB8ICdvJyAtPiBPX2NvbnZlcnNpb25cbiAgfCAndScgLT4gVV9jb252ZXJzaW9uXG4gIHwgJ3gnIHwgJ1gnIC0+IFhfY29udmVyc2lvblxuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cblxuKCogRXh0cmFjdCBhbiBpbnRlZ2VyIGxpdGVyYWwgdG9rZW4uXG4gICBTaW5jZSB0aGUgZnVuY3Rpb25zIFN0ZGxpYi4qaW50Kl9vZl9zdHJpbmcgZG8gbm90IGFjY2VwdCBhIGxlYWRpbmcgKyxcbiAgIHdlIHNraXAgaXQgaWYgbmVjZXNzYXJ5LiAqKVxubGV0IHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIgPVxuICBsZXQgdG9rID1cbiAgICBtYXRjaCBjb252IHdpdGhcbiAgICB8IERfY29udmVyc2lvbiB8IElfY29udmVyc2lvbiAtPiBTY2FubmluZy50b2tlbiBpYlxuICAgIHwgVV9jb252ZXJzaW9uIC0+IFwiMHVcIiBeIFNjYW5uaW5nLnRva2VuIGliXG4gICAgfCBPX2NvbnZlcnNpb24gLT4gXCIwb1wiIF4gU2Nhbm5pbmcudG9rZW4gaWJcbiAgICB8IFhfY29udmVyc2lvbiAtPiBcIjB4XCIgXiBTY2FubmluZy50b2tlbiBpYlxuICAgIHwgQl9jb252ZXJzaW9uIC0+IFwiMGJcIiBeIFNjYW5uaW5nLnRva2VuIGliIGluXG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCB0b2sgaW5cbiAgaWYgbCA9IDAgfHwgdG9rLlswXSA8PiAnKycgdGhlbiB0b2sgZWxzZSBTdHJpbmcuc3ViIHRvayAxIChsIC0gMSlcblxuXG4oKiBBbGwgdGhlIGZ1bmN0aW9ucyB0aGF0IGNvbnZlcnQgYSBzdHJpbmcgdG8gYSBudW1iZXIgcmFpc2UgdGhlIGV4Y2VwdGlvblxuICAgRmFpbHVyZSB3aGVuIHRoZSBjb252ZXJzaW9uIGlzIG5vdCBwb3NzaWJsZS5cbiAgIFRoaXMgZXhjZXB0aW9uIGlzIHRoZW4gdHJhcHBlZCBpbiBba3NjYW5mXS4gKilcbmxldCB0b2tlbl9pbnQgY29udiBpYiA9IGludF9vZl9zdHJpbmcgKHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIpXG5cbmxldCB0b2tlbl9mbG9hdCBpYiA9IGZsb2F0X29mX3N0cmluZyAoU2Nhbm5pbmcudG9rZW4gaWIpXG5cbigqIFRvIHNjYW4gbmF0aXZlIGludHMsIGludDMyIGFuZCBpbnQ2NCBpbnRlZ2Vycy5cbiAgIFdlIGNhbm5vdCBhY2Nlc3MgdG8gY29udmVyc2lvbnMgdG8vZnJvbSBzdHJpbmdzIGZvciB0aG9zZSB0eXBlcyxcbiAgIE5hdGl2ZWludC5vZl9zdHJpbmcsIEludDMyLm9mX3N0cmluZywgYW5kIEludDY0Lm9mX3N0cmluZyxcbiAgIHNpbmNlIHRob3NlIG1vZHVsZXMgYXJlIG5vdCBhdmFpbGFibGUgdG8gW1NjYW5mXS5cbiAgIEhvd2V2ZXIsIHdlIGNhbiBiaW5kIGFuZCB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgcHJpbWl0aXZlcyB0aGF0IGFyZVxuICAgYXZhaWxhYmxlIGluIHRoZSBydW50aW1lLiAqKVxuZXh0ZXJuYWwgbmF0aXZlaW50X29mX3N0cmluZyA6IHN0cmluZyAtPiBuYXRpdmVpbnRcbiAgPSBcImNhbWxfbmF0aXZlaW50X29mX3N0cmluZ1wiXG5cbmV4dGVybmFsIGludDMyX29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQzMlxuICA9IFwiY2FtbF9pbnQzMl9vZl9zdHJpbmdcIlxuXG5leHRlcm5hbCBpbnQ2NF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50NjRcbiAgPSBcImNhbWxfaW50NjRfb2Zfc3RyaW5nXCJcblxuXG5sZXQgdG9rZW5fbmF0aXZlaW50IGNvbnYgaWIgPSBuYXRpdmVpbnRfb2Zfc3RyaW5nICh0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliKVxubGV0IHRva2VuX2ludDMyIGNvbnYgaWIgPSBpbnQzMl9vZl9zdHJpbmcgKHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIpXG5sZXQgdG9rZW5faW50NjQgY29udiBpYiA9IGludDY0X29mX3N0cmluZyAodG9rZW5faW50X2xpdGVyYWwgY29udiBpYilcblxuKCogU2Nhbm5pbmcgbnVtYmVycy4gKilcblxuKCogRGlnaXRzIHNjYW5uaW5nIGZ1bmN0aW9ucyBzdXBwb3NlIHRoYXQgb25lIGNoYXJhY3RlciBoYXMgYmVlbiBjaGVja2VkIGFuZFxuICAgaXMgYXZhaWxhYmxlLCBzaW5jZSB0aGV5IHJldHVybiBhdCBlbmQgb2YgZmlsZSB3aXRoIHRoZSBjdXJyZW50bHkgZm91bmRcbiAgIHRva2VuIHNlbGVjdGVkLlxuXG4gICBQdXQgaXQgaW4gYW5vdGhlciB3YXksIHRoZSBkaWdpdHMgc2Nhbm5pbmcgZnVuY3Rpb25zIHNjYW4gZm9yIGEgcG9zc2libHlcbiAgIGVtcHR5IHNlcXVlbmNlIG9mIGRpZ2l0cywgKGhlbmNlLCBhIHN1Y2Nlc3NmdWwgc2Nhbm5pbmcgZnJvbSBvbmUgb2YgdGhvc2VcbiAgIGZ1bmN0aW9ucyBkb2VzIG5vdCBpbXBseSB0aGF0IHRoZSB0b2tlbiBpcyBhIHdlbGwtZm9ybWVkIG51bWJlcjogdG8gZ2V0IGFcbiAgIHRydWUgbnVtYmVyLCBpdCBpcyBtYW5kYXRvcnkgdG8gY2hlY2sgdGhhdCBhdCBsZWFzdCBvbmUgdmFsaWQgZGlnaXQgaXNcbiAgIGF2YWlsYWJsZSBiZWZvcmUgY2FsbGluZyBvbmUgb2YgdGhlIGRpZ2l0IHNjYW5uaW5nIGZ1bmN0aW9ucykuICopXG5cbigqIFRoZSBkZWNpbWFsIGNhc2UgaXMgdHJlYXRlZCBlc3BlY2lhbGx5IGZvciBvcHRpbWl6YXRpb24gcHVycG9zZXMuICopXG5sZXQgcmVjIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcwJyAuLiAnOScgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG4gIHwgJ18nIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIgaW5cbiAgICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYlxuICB8IF8gLT4gd2lkdGhcblxuXG5sZXQgc2Nhbl9kZWNpbWFsX2RpZ2l0X3BsdXMgd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiBiYWRfdG9rZW5fbGVuZ3RoIFwiZGVjaW1hbCBkaWdpdHNcIiBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJzAnIC4uICc5JyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG4gIHwgYyAtPlxuICAgIGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJjaGFyYWN0ZXIgJUMgaXMgbm90IGEgZGVjaW1hbCBkaWdpdFwiIGMpXG5cblxuKCogVG8gc2NhbiBudW1iZXJzIGZyb20gb3RoZXIgYmFzZXMsIHdlIHVzZSBhIHByZWRpY2F0ZSBhcmd1bWVudCB0b1xuICAgc2NhbiBkaWdpdHMuICopXG5sZXQgc2Nhbl9kaWdpdF9zdGFyIGRpZ2l0cCB3aWR0aCBpYiA9XG4gIGxldCByZWMgc2Nhbl9kaWdpdHMgd2lkdGggaWIgPVxuICAgIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8IGMgd2hlbiBkaWdpdHAgYyAtPlxuICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICBzY2FuX2RpZ2l0cyB3aWR0aCBpYlxuICAgIHwgJ18nIC0+XG4gICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYiBpblxuICAgICAgc2Nhbl9kaWdpdHMgd2lkdGggaWJcbiAgICB8IF8gLT4gd2lkdGggaW5cbiAgc2Nhbl9kaWdpdHMgd2lkdGggaWJcblxuXG5sZXQgc2Nhbl9kaWdpdF9wbHVzIGJhc2lzIGRpZ2l0cCB3aWR0aCBpYiA9XG4gICgqIEVuc3VyZSB3ZSBoYXZlIGdvdCBlbm91Z2ggd2lkdGggbGVmdCxcbiAgICAgYW5kIHJlYWQgYXQgbGVhc3Qgb25lIGRpZ2l0LiAqKVxuICBpZiB3aWR0aCA9IDAgdGhlbiBiYWRfdG9rZW5fbGVuZ3RoIFwiZGlnaXRzXCIgZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIGlmIGRpZ2l0cCBjIHRoZW5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBzY2FuX2RpZ2l0X3N0YXIgZGlnaXRwIHdpZHRoIGliXG4gIGVsc2VcbiAgICBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwiY2hhcmFjdGVyICVDIGlzIG5vdCBhIHZhbGlkICVzIGRpZ2l0XCIgYyBiYXNpcylcblxuXG5sZXQgaXNfYmluYXJ5X2RpZ2l0ID0gZnVuY3Rpb25cbiAgfCAnMCcgLi4gJzEnIC0+IHRydWVcbiAgfCBfIC0+IGZhbHNlXG5cblxubGV0IHNjYW5fYmluYXJ5X2ludCA9IHNjYW5fZGlnaXRfcGx1cyBcImJpbmFyeVwiIGlzX2JpbmFyeV9kaWdpdFxuXG5sZXQgaXNfb2N0YWxfZGlnaXQgPSBmdW5jdGlvblxuICB8ICcwJyAuLiAnNycgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxuXG5sZXQgc2Nhbl9vY3RhbF9pbnQgPSBzY2FuX2RpZ2l0X3BsdXMgXCJvY3RhbFwiIGlzX29jdGFsX2RpZ2l0XG5cbmxldCBpc19oZXhhX2RpZ2l0ID0gZnVuY3Rpb25cbiAgfCAnMCcgLi4gJzknIHwgJ2EnIC4uICdmJyB8ICdBJyAuLiAnRicgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxuXG5sZXQgc2Nhbl9oZXhhZGVjaW1hbF9pbnQgPSBzY2FuX2RpZ2l0X3BsdXMgXCJoZXhhZGVjaW1hbFwiIGlzX2hleGFfZGlnaXRcblxuKCogU2NhbiBhIGRlY2ltYWwgaW50ZWdlci4gKilcbmxldCBzY2FuX3Vuc2lnbmVkX2RlY2ltYWxfaW50ID0gc2Nhbl9kZWNpbWFsX2RpZ2l0X3BsdXNcblxubGV0IHNjYW5fc2lnbiB3aWR0aCBpYiA9XG4gIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJysnIC0+IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgY1xuICB8ICctJyAtPiBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGNcbiAgfCBfIC0+IHdpZHRoXG5cblxubGV0IHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWIgPVxuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgc2Nhbl91bnNpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuXG5cbigqIFNjYW4gYW4gdW5zaWduZWQgaW50ZWdlciB0aGF0IGNvdWxkIGJlIGdpdmVuIGluIGFueSAoY29tbW9uKSBiYXNpcy5cbiAgIElmIGRpZ2l0cyBhcmUgcHJlZml4ZWQgYnkgb25lIG9mIDB4LCAwWCwgMG8sIG9yIDBiLCB0aGUgbnVtYmVyIGlzXG4gICBhc3N1bWVkIHRvIGJlIHdyaXR0ZW4gcmVzcGVjdGl2ZWx5IGluIGhleGFkZWNpbWFsLCBoZXhhZGVjaW1hbCxcbiAgIG9jdGFsLCBvciBiaW5hcnkuICopXG5sZXQgc2Nhbl91bnNpZ25lZF9pbnQgd2lkdGggaWIgPVxuICBtYXRjaCBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiB3aXRoXG4gIHwgJzAnIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgYmVnaW4gbWF0Y2ggYyB3aXRoXG4gICAgfCAneCcgfCAnWCcgLT4gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgICB8ICdvJyAtPiBzY2FuX29jdGFsX2ludCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICAgIHwgJ2InIC0+IHNjYW5fYmluYXJ5X2ludCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICAgIHwgXyAtPiBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYiBlbmRcbiAgfCBfIC0+IHNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcblxuXG5sZXQgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9pbnQgd2lkdGggaWIgPVxuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgc2Nhbl91bnNpZ25lZF9pbnQgd2lkdGggaWJcblxuXG5sZXQgc2Nhbl9pbnRfY29udmVyc2lvbiBjb252IHdpZHRoIGliID1cbiAgbWF0Y2ggY29udiB3aXRoXG4gIHwgQl9jb252ZXJzaW9uIC0+IHNjYW5fYmluYXJ5X2ludCB3aWR0aCBpYlxuICB8IERfY29udmVyc2lvbiAtPiBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG4gIHwgSV9jb252ZXJzaW9uIC0+IHNjYW5fb3B0aW9uYWxseV9zaWduZWRfaW50IHdpZHRoIGliXG4gIHwgT19jb252ZXJzaW9uIC0+IHNjYW5fb2N0YWxfaW50IHdpZHRoIGliXG4gIHwgVV9jb252ZXJzaW9uIC0+IHNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcbiAgfCBYX2NvbnZlcnNpb24gLT4gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgd2lkdGggaWJcblxuXG4oKiBTY2FubmluZyBmbG9hdGluZyBwb2ludCBudW1iZXJzLiAqKVxuXG4oKiBGcmFjdGlvbmFsIHBhcnQgaXMgb3B0aW9uYWwgYW5kIGNhbiBiZSByZWR1Y2VkIHRvIDAgZGlnaXRzLiAqKVxubGV0IHNjYW5fZnJhY3Rpb25hbF9wYXJ0IHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcwJyAuLiAnOScgYXMgYyAtPlxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gIHwgXyAtPiB3aWR0aFxuXG5cbigqIEV4cCBwYXJ0IGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgcmVkdWNlZCB0byAwIGRpZ2l0cy4gKilcbmxldCBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJ2UnIHwgJ0UnIGFzIGMgLT5cbiAgICBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gIHwgXyAtPiB3aWR0aFxuXG5cbigqIFNjYW4gdGhlIGludGVnZXIgcGFydCBvZiBhIGZsb2F0aW5nIHBvaW50IG51bWJlciwgKG5vdCB1c2luZyB0aGVcbiAgIE9DYW1sIGxleGljYWwgY29udmVudGlvbiBzaW5jZSB0aGUgaW50ZWdlciBwYXJ0IGNhbiBiZSBlbXB0eSk6XG4gICBhbiBvcHRpb25hbCBzaWduLCBmb2xsb3dlZCBieSBhIHBvc3NpYmx5IGVtcHR5IHNlcXVlbmNlIG9mIGRlY2ltYWxcbiAgIGRpZ2l0cyAoZS5nLiAtLjEpLiAqKVxubGV0IHNjYW5faW50ZWdlcl9wYXJ0IHdpZHRoIGliID1cbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG5cblxuKCpcbiAgIEZvciB0aGUgdGltZSBiZWluZyB3ZSBoYXZlIChhcyBmb3VuZCBpbiBzY2FuZi5tbGkpOlxuICAgdGhlIGZpZWxkIHdpZHRoIGlzIGNvbXBvc2VkIG9mIGFuIG9wdGlvbmFsIGludGVnZXIgbGl0ZXJhbFxuICAgaW5kaWNhdGluZyB0aGUgbWF4aW1hbCB3aWR0aCBvZiB0aGUgdG9rZW4gdG8gcmVhZC5cbiAgIFVuZm9ydHVuYXRlbHksIHRoZSB0eXBlLWNoZWNrZXIgbGV0IHRoZSB1c2VyIHdyaXRlIGFuIG9wdGlvbmFsIHByZWNpc2lvbixcbiAgIHNpbmNlIHRoaXMgaXMgdmFsaWQgZm9yIHByaW50ZiBmb3JtYXQgc3RyaW5ncy5cblxuICAgVGh1cywgdGhlIG5leHQgc3RlcCBmb3IgU2NhbmYgaXMgdG8gc3VwcG9ydCBhIGZ1bGwgd2lkdGggYW5kIHByZWNpc2lvblxuICAgaW5kaWNhdGlvbiwgbW9yZSBvciBsZXNzIHNpbWlsYXIgdG8gdGhlIG9uZSBmb3IgcHJpbnRmLCBwb3NzaWJseSBleHRlbmRlZFxuICAgdG8gdGhlIHNwZWNpZmljYXRpb24gb2YgYSBbbWF4LCBtaW5dIHJhbmdlIGZvciB0aGUgd2lkdGggb2YgdGhlIHRva2VuIHJlYWRcbiAgIGZvciBzdHJpbmdzLiBTb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIHNwZWMgZm9yIHNjYW5mLm1saTpcblxuICAgVGhlIG9wdGlvbmFsIFt3aWR0aF0gaXMgYW4gaW50ZWdlciBpbmRpY2F0aW5nIHRoZSBtYXhpbWFsXG4gICB3aWR0aCBvZiB0aGUgdG9rZW4gcmVhZC4gRm9yIGluc3RhbmNlLCBbJTZkXSByZWFkcyBhbiBpbnRlZ2VyLFxuICAgaGF2aW5nIGF0IG1vc3QgNiBjaGFyYWN0ZXJzLlxuXG4gICBUaGUgb3B0aW9uYWwgW3ByZWNpc2lvbl0gaXMgYSBkb3QgWy5dIGZvbGxvd2VkIGJ5IGFuIGludGVnZXI6XG5cbiAgIC0gaW4gdGhlIGZsb2F0aW5nIHBvaW50IG51bWJlciBjb252ZXJzaW9ucyAoWyVmXSwgWyVlXSwgWyVnXSwgWyVGXSwgWyVFXSxcbiAgIGFuZCBbJUZdIGNvbnZlcnNpb25zLCB0aGUgW3ByZWNpc2lvbl0gaW5kaWNhdGVzIHRoZSBtYXhpbXVtIG51bWJlciBvZlxuICAgZGlnaXRzIHRoYXQgbWF5IGZvbGxvdyB0aGUgZGVjaW1hbCBwb2ludC4gRm9yIGluc3RhbmNlLCBbJS40Zl0gcmVhZHMgYVxuICAgW2Zsb2F0XSB3aXRoIGF0IG1vc3QgNCBmcmFjdGlvbmFsIGRpZ2l0cyxcblxuICAgLSBpbiB0aGUgc3RyaW5nIGNvbnZlcnNpb25zIChbJXNdLCBbJVNdLCBbJVxcWyByYW5nZSBcXF1dKSwgYW5kIGluIHRoZVxuICAgaW50ZWdlciBudW1iZXIgY29udmVyc2lvbnMgKFslaV0sIFslZF0sIFsldV0sIFsleF0sIFslb10sIGFuZCB0aGVpclxuICAgW2ludDMyXSwgW2ludDY0XSwgYW5kIFtuYXRpdmVfaW50XSBjb3JyZXNwb25kZW50KSwgdGhlIFtwcmVjaXNpb25dXG4gICBpbmRpY2F0ZXMgdGhlIHJlcXVpcmVkIG1pbmltdW0gd2lkdGggb2YgdGhlIHRva2VuIHJlYWQsXG5cbiAgIC0gb24gYWxsIG90aGVyIGNvbnZlcnNpb25zLCB0aGUgd2lkdGggYW5kIHByZWNpc2lvbiBzcGVjaWZ5IHRoZSBbbWF4LCBtaW5dXG4gICByYW5nZSBmb3IgdGhlIHdpZHRoIG9mIHRoZSB0b2tlbiByZWFkLlxuKilcbmxldCBzY2FuX2Zsb2F0IHdpZHRoIHByZWNpc2lvbiBpYiA9XG4gIGxldCB3aWR0aCA9IHNjYW5faW50ZWdlcl9wYXJ0IHdpZHRoIGliIGluXG4gIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoLCBwcmVjaXNpb24gZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCwgcHJlY2lzaW9uIGVsc2VcbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJy4nIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgbGV0IHByZWNpc2lvbiA9IEludC5taW4gd2lkdGggcHJlY2lzaW9uIGluXG4gICAgbGV0IHdpZHRoID0gd2lkdGggLSAocHJlY2lzaW9uIC0gc2Nhbl9mcmFjdGlvbmFsX3BhcnQgcHJlY2lzaW9uIGliKSBpblxuICAgIHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYiwgcHJlY2lzaW9uXG4gIHwgXyAtPlxuICAgIHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYiwgcHJlY2lzaW9uXG5cblxubGV0IGNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIHdpZHRoIGliIGVycm9yIHN0ciA9XG4gIGxldCBsb3dlcmNhc2UgYyA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAnQScgLi4gJ1onIC0+XG4gICAgICBjaGFyX29mX2ludCAoaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdBJyArIGludF9vZl9jaGFyICdhJylcbiAgICB8IF8gLT4gYyBpblxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbGV0IHdpZHRoID0gcmVmIHdpZHRoIGluXG4gIGZvciBpID0gMCB0byBsZW4gLSAxIGRvXG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBsb3dlcmNhc2UgYyA8PiBsb3dlcmNhc2Ugc3RyLltpXSB0aGVuIGVycm9yICgpO1xuICAgIGlmICF3aWR0aCA9IDAgdGhlbiBlcnJvciAoKTtcbiAgICB3aWR0aCA6PSBTY2FubmluZy5zdG9yZV9jaGFyICF3aWR0aCBpYiBjO1xuICBkb25lO1xuICAhd2lkdGhcblxuXG5sZXQgc2Nhbl9oZXhfZmxvYXQgd2lkdGggcHJlY2lzaW9uIGliID1cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgfCAnMCcgYXMgYyAtPiAoXG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgbGV0IHdpZHRoID0gY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmcgd2lkdGggaWIgYmFkX2hleF9mbG9hdCBcInhcIiBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICBsZXQgd2lkdGggPSBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICB8ICcuJyB8ICdwJyB8ICdQJyAtPiB3aWR0aFxuICAgICAgICB8IF8gLT4gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgd2lkdGggaWIgaW5cbiAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgIGxldCB3aWR0aCA9IG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgfCAnLicgYXMgYyAtPiAoXG4gICAgICAgICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgICAgICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgICAgIHwgJ3AnIHwgJ1AnIC0+IHdpZHRoXG4gICAgICAgICAgICAgIHwgXyAtPlxuICAgICAgICAgICAgICAgIGxldCBwcmVjaXNpb24gPSBJbnQubWluIHdpZHRoIHByZWNpc2lvbiBpblxuICAgICAgICAgICAgICAgIHdpZHRoIC0gKHByZWNpc2lvbiAtIHNjYW5faGV4YWRlY2ltYWxfaW50IHByZWNpc2lvbiBpYilcbiAgICAgICAgICApXG4gICAgICAgICAgfCBfIC0+IHdpZHRoIGluXG4gICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgICB8ICdwJyB8ICdQJyBhcyBjIC0+XG4gICAgICAgICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgICAgICAgICAgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuICAgICAgICAgIHwgXyAtPiB3aWR0aFxuICApXG4gIHwgJ24nIHwgJ04nIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICBjaGVja19jYXNlX2luc2Vuc2l0aXZlX3N0cmluZyB3aWR0aCBpYiBiYWRfaGV4X2Zsb2F0IFwiYW5cIlxuICB8ICdpJyB8ICdJJyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmcgd2lkdGggaWIgYmFkX2hleF9mbG9hdCBcIm5maW5pdHlcIlxuICB8IF8gLT4gYmFkX2hleF9mbG9hdCAoKVxuXG5cbmxldCBzY2FuX2NhbWxfZmxvYXRfcmVzdCB3aWR0aCBwcmVjaXNpb24gaWIgPVxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICBsZXQgd2lkdGggPSBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYiBpblxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBtYXRjaCBjIHdpdGhcbiAgfCAnLicgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAoKiBUaGUgZWZmZWN0aXZlIHdpZHRoIGF2YWlsYWJsZSBmb3Igc2Nhbm5pbmcgdGhlIGZyYWN0aW9uYWwgcGFydCBpc1xuICAgICAgIHRoZSBtaW5pbXVtIG9mIGRlY2xhcmVkIHByZWNpc2lvbiBhbmQgd2lkdGggbGVmdC4gKilcbiAgICBsZXQgcHJlY2lzaW9uID0gSW50Lm1pbiB3aWR0aCBwcmVjaXNpb24gaW5cbiAgICAoKiBBZnRlciBzY2FubmluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0IHdpdGggW3ByZWNpc2lvbl0gcHJvdmlzaW9uYWwgd2lkdGgsXG4gICAgICAgW3dpZHRoX3ByZWNpc2lvbl0gaXMgbGVmdC4gKilcbiAgICBsZXQgd2lkdGhfcHJlY2lzaW9uID0gc2Nhbl9mcmFjdGlvbmFsX3BhcnQgcHJlY2lzaW9uIGliIGluXG4gICAgKCogSGVuY2UsIHNjYW5uaW5nIHRoZSBmcmFjdGlvbmFsIHBhcnQgdG9vayBleGFjdGx5XG4gICAgICAgW3ByZWNpc2lvbiAtIHdpZHRoX3ByZWNpc2lvbl0gY2hhcnMuICopXG4gICAgbGV0IGZyYWNfd2lkdGggPSBwcmVjaXNpb24gLSB3aWR0aF9wcmVjaXNpb24gaW5cbiAgICAoKiBBbmQgbmV3IHByb3Zpc2lvbmFsIHdpZHRoIGlzIFt3aWR0aCAtIHdpZHRoX3ByZWNpc2lvbi4gKilcbiAgICBsZXQgd2lkdGggPSB3aWR0aCAtIGZyYWNfd2lkdGggaW5cbiAgICBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWJcbiAgfCAnZScgfCAnRScgLT5cbiAgICBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWJcbiAgfCBfIC0+IGJhZF9mbG9hdCAoKVxuXG5cbmxldCBzY2FuX2NhbWxfZmxvYXQgd2lkdGggcHJlY2lzaW9uIGliID1cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gIHwgJzAnIGFzIGMgLT4gKFxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICB8ICd4JyB8ICdYJyBhcyBjIC0+IChcbiAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgICAgIGxldCB3aWR0aCA9IHNjYW5faGV4YWRlY2ltYWxfaW50IHdpZHRoIGliIGluXG4gICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICAgICAgbGV0IHdpZHRoID0gbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgfCAnLicgYXMgYyAtPiAoXG4gICAgICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgICB8ICdwJyB8ICdQJyAtPiB3aWR0aFxuICAgICAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICAgIGxldCBwcmVjaXNpb24gPSBJbnQubWluIHdpZHRoIHByZWNpc2lvbiBpblxuICAgICAgICAgICAgICB3aWR0aCAtIChwcmVjaXNpb24gLSBzY2FuX2hleGFkZWNpbWFsX2ludCBwcmVjaXNpb24gaWIpXG4gICAgICAgIClcbiAgICAgICAgfCAncCcgfCAnUCcgLT4gd2lkdGhcbiAgICAgICAgfCBfIC0+IGJhZF9mbG9hdCAoKSBpblxuICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgfCAncCcgfCAnUCcgYXMgYyAtPlxuICAgICAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgICAgICAgIHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcbiAgICAgICAgfCBfIC0+IHdpZHRoXG4gICAgKVxuICAgIHwgXyAtPlxuICAgICAgc2Nhbl9jYW1sX2Zsb2F0X3Jlc3Qgd2lkdGggcHJlY2lzaW9uIGliXG4gIClcbiAgfCAnMScgLi4gJzknIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICAgIHNjYW5fY2FtbF9mbG9hdF9yZXN0IHdpZHRoIHByZWNpc2lvbiBpYlxuKCogU3BlY2lhbCBjYXNlIG9mIG5hbiBhbmQgaW5maW5pdHk6XG4gIHwgJ2knIC0+XG4gIHwgJ24nIC0+XG4qKVxuICB8IF8gLT4gYmFkX2Zsb2F0ICgpXG5cblxuKCogU2NhbiBhIHJlZ3VsYXIgc3RyaW5nOlxuICAgc3RvcHMgd2hlbiBlbmNvdW50ZXJpbmcgYSBzcGFjZSwgaWYgbm8gc2Nhbm5pbmcgaW5kaWNhdGlvbiBoYXMgYmVlbiBnaXZlbjtcbiAgIG90aGVyd2lzZSwgc3RvcHMgd2hlbiBlbmNvdW50ZXJpbmcgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHNjYW5uaW5nXG4gICBpbmRpY2F0aW9uIFtzdHBdLlxuICAgSXQgYWxzbyBzdG9wcyBhdCBlbmQgb2YgZmlsZSBvciB3aGVuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGhhc1xuICAgYmVlbiByZWFkLiAqKVxubGV0IHNjYW5fc3RyaW5nIHN0cCB3aWR0aCBpYiA9XG4gIGxldCByZWMgbG9vcCB3aWR0aCA9XG4gICAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgbWF0Y2ggc3RwIHdpdGhcbiAgICAgIHwgU29tZSBjJyB3aGVuIGMgPSBjJyAtPiBTY2FubmluZy5za2lwX2NoYXIgd2lkdGggaWJcbiAgICAgIHwgU29tZSBfIC0+IGxvb3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYylcbiAgICAgIHwgTm9uZSAtPlxuICAgICAgICBtYXRjaCBjIHdpdGhcbiAgICAgICAgfCAnICcgfCAnXFx0JyB8ICdcXG4nIHwgJ1xccicgLT4gd2lkdGhcbiAgICAgICAgfCBfIC0+IGxvb3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaW5cbiAgbG9vcCB3aWR0aFxuXG5cbigqIFNjYW4gYSBjaGFyOiBwZWVrIHN0cmljdGx5IG9uZSBjaGFyYWN0ZXIgaW4gdGhlIGlucHV0LCB3aGF0c29ldmVyLiAqKVxubGV0IHNjYW5fY2hhciB3aWR0aCBpYiA9XG4gICgqIFRoZSBjYXNlIHdpZHRoID0gMCBjb3VsZCBub3QgaGFwcGVuIGhlcmUsIHNpbmNlIGl0IGlzIHRlc3RlZCBiZWZvcmVcbiAgICAgY2FsbGluZyBzY2FuX2NoYXIsIGluIHRoZSBtYWluIHNjYW5uaW5nIGZ1bmN0aW9uLlxuICAgIGlmIHdpZHRoID0gMCB0aGVuIGJhZF90b2tlbl9sZW5ndGggXCJhIGNoYXJhY3RlclwiIGVsc2UgKilcbiAgU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiAoU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIpXG5cblxubGV0IGNoYXJfZm9yX2JhY2tzbGFzaCA9IGZ1bmN0aW9uXG4gIHwgJ24nIC0+ICdcXDAxMCdcbiAgfCAncicgLT4gJ1xcMDEzJ1xuICB8ICdiJyAtPiAnXFwwMDgnXG4gIHwgJ3QnIC0+ICdcXDAwOSdcbiAgfCBjIC0+IGNcblxuXG4oKiBUaGUgaW50ZWdlciB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmYWNpYWwgdmFsdWUgb2YgYSB2YWxpZFxuICAgZGVjaW1hbCBkaWdpdCBjaGFyYWN0ZXIuICopXG5sZXQgZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMgPSBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJzAnXG5cbmxldCBjaGFyX2Zvcl9kZWNpbWFsX2NvZGUgYzAgYzEgYzIgPVxuICBsZXQgYyA9XG4gICAgMTAwICogZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMwICtcbiAgICAgMTAgKiBkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzEgK1xuICAgICAgICAgIGRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMiBpblxuICBpZiBjIDwgMCB8fCBjID4gMjU1IHRoZW5cbiAgICBiYWRfaW5wdXRcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICAgXCJiYWQgY2hhcmFjdGVyIGRlY2ltYWwgZW5jb2RpbmcgXFxcXCVjJWMlY1wiIGMwIGMxIGMyKSBlbHNlXG4gIGNoYXJfb2ZfaW50IGNcblxuXG4oKiBUaGUgaW50ZWdlciB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmYWNpYWwgdmFsdWUgb2YgYSB2YWxpZFxuICAgaGV4YWRlY2ltYWwgZGlnaXQgY2hhcmFjdGVyLiAqKVxubGV0IGhleGFkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYyA9XG4gIGxldCBkID0gaW50X29mX2NoYXIgYyBpblxuICAoKiBDb3VsZCBhbHNvIGJlOlxuICAgIGlmIGQgPD0gaW50X29mX2NoYXIgJzknIHRoZW4gZCAtIGludF9vZl9jaGFyICcwJyBlbHNlXG4gICAgaWYgZCA8PSBpbnRfb2ZfY2hhciAnRicgdGhlbiAxMCArIGQgLSBpbnRfb2ZfY2hhciAnQScgZWxzZVxuICAgIGlmIGQgPD0gaW50X29mX2NoYXIgJ2YnIHRoZW4gMTAgKyBkIC0gaW50X29mX2NoYXIgJ2EnIGVsc2UgYXNzZXJ0IGZhbHNlXG4gICopXG4gIGlmIGQgPj0gaW50X29mX2NoYXIgJ2EnIHRoZW5cbiAgICBkIC0gODcgKCogMTAgKyBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ2EnICopIGVsc2VcbiAgaWYgZCA+PSBpbnRfb2ZfY2hhciAnQScgdGhlblxuICAgIGQgLSA1NSAgKCogMTAgKyBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ0EnICopIGVsc2VcbiAgICBkIC0gaW50X29mX2NoYXIgJzAnXG5cblxubGV0IGNoYXJfZm9yX2hleGFkZWNpbWFsX2NvZGUgYzEgYzIgPVxuICBsZXQgYyA9XG4gICAgMTYgKiBoZXhhZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMxICtcbiAgICAgICAgIGhleGFkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzIgaW5cbiAgaWYgYyA8IDAgfHwgYyA+IDI1NSB0aGVuXG4gICAgYmFkX2lucHV0XG4gICAgICAoUHJpbnRmLnNwcmludGYgXCJiYWQgY2hhcmFjdGVyIGhleGFkZWNpbWFsIGVuY29kaW5nIFxcXFwlYyVjXCIgYzEgYzIpIGVsc2VcbiAgY2hhcl9vZl9pbnQgY1xuXG5cbigqIENhbGxlZCBpbiBwYXJ0aWN1bGFyIHdoZW4gZW5jb3VudGVyaW5nICdcXFxcJyBhcyBzdGFydGVyIG9mIGEgY2hhci5cbiAgIFN0b3BzIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyAnXFwnJy4gKilcbmxldCBjaGVja19uZXh0X2NoYXIgbWVzc2FnZSB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIGJhZF90b2tlbl9sZW5ndGggbWVzc2FnZSBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIGJhZF9lbmRfb2ZfaW5wdXQgbWVzc2FnZSBlbHNlXG4gIGNcblxuXG5sZXQgY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyID0gY2hlY2tfbmV4dF9jaGFyIFwiYSBDaGFyXCJcbmxldCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyA9IGNoZWNrX25leHRfY2hhciBcImEgU3RyaW5nXCJcblxubGV0IHNjYW5fYmFja3NsYXNoX2NoYXIgd2lkdGggaWIgPVxuICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIgd2lkdGggaWIgd2l0aFxuICB8ICdcXFxcJyB8ICdcXCcnIHwgJ1xcXCInIHwgJ24nIHwgJ3QnIHwgJ2InIHwgJ3InIGFzIGMgLT5cbiAgICBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIChjaGFyX2Zvcl9iYWNrc2xhc2ggYylcbiAgfCAnMCcgLi4gJzknIGFzIGMgLT5cbiAgICBsZXQgZ2V0X2RpZ2l0ICgpID1cbiAgICAgIGxldCBjID0gU2Nhbm5pbmcubmV4dF9jaGFyIGliIGluXG4gICAgICBtYXRjaCBjIHdpdGhcbiAgICAgIHwgJzAnIC4uICc5JyBhcyBjIC0+IGNcbiAgICAgIHwgYyAtPiBiYWRfaW5wdXRfZXNjYXBlIGMgaW5cbiAgICBsZXQgYzAgPSBjIGluXG4gICAgbGV0IGMxID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgbGV0IGMyID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgU2Nhbm5pbmcuc3RvcmVfY2hhciAod2lkdGggLSAyKSBpYiAoY2hhcl9mb3JfZGVjaW1hbF9jb2RlIGMwIGMxIGMyKVxuICB8ICd4JyAtPlxuICAgIGxldCBnZXRfZGlnaXQgKCkgPVxuICAgICAgbGV0IGMgPSBTY2FubmluZy5uZXh0X2NoYXIgaWIgaW5cbiAgICAgIG1hdGNoIGMgd2l0aFxuICAgICAgfCAnMCcgLi4gJzknIHwgJ0EnIC4uICdGJyB8ICdhJyAuLiAnZicgYXMgYyAtPiBjXG4gICAgICB8IGMgLT4gYmFkX2lucHV0X2VzY2FwZSBjIGluXG4gICAgbGV0IGMxID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgbGV0IGMyID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgU2Nhbm5pbmcuc3RvcmVfY2hhciAod2lkdGggLSAyKSBpYiAoY2hhcl9mb3JfaGV4YWRlY2ltYWxfY29kZSBjMSBjMilcbiAgfCBjIC0+XG4gICAgYmFkX2lucHV0X2VzY2FwZSBjXG5cblxuKCogU2NhbiBhIGNoYXJhY3RlciAoYW4gT0NhbWwgdG9rZW4pLiAqKVxubGV0IHNjYW5fY2FtbF9jaGFyIHdpZHRoIGliID1cblxuICBsZXQgcmVjIGZpbmRfc3RhcnQgd2lkdGggPVxuICAgIG1hdGNoIFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIHdpdGhcbiAgICB8ICdcXCcnIC0+IGZpbmRfY2hhciAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBjIC0+IGNoYXJhY3Rlcl9taXNtYXRjaCAnXFwnJyBjXG5cbiAgYW5kIGZpbmRfY2hhciB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXFxcJyAtPlxuICAgICAgZmluZF9zdG9wIChzY2FuX2JhY2tzbGFzaF9jaGFyIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYikgaWIpXG4gICAgfCBjIC0+XG4gICAgICBmaW5kX3N0b3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYylcblxuICBhbmQgZmluZF9zdG9wIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xcJycgLT4gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWJcbiAgICB8IGMgLT4gY2hhcmFjdGVyX21pc21hdGNoICdcXCcnIGMgaW5cblxuICBmaW5kX3N0YXJ0IHdpZHRoXG5cblxuKCogU2NhbiBhIGRlbGltaXRlZCBzdHJpbmcgKGFuIE9DYW1sIHRva2VuKS4gKilcbmxldCBzY2FuX2NhbWxfc3RyaW5nIHdpZHRoIGliID1cblxuICBsZXQgcmVjIGZpbmRfc3RhcnQgd2lkdGggPVxuICAgIG1hdGNoIFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIHdpdGhcbiAgICB8ICdcXFwiJyAtPiBmaW5kX3N0b3AgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgYyAtPiBjaGFyYWN0ZXJfbWlzbWF0Y2ggJ1xcXCInIGNcblxuICBhbmQgZmluZF9zdG9wIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFxcIicgLT4gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWJcbiAgICB8ICdcXFxcJyAtPiBzY2FuX2JhY2tzbGFzaCAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBjIC0+IGZpbmRfc3RvcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKVxuXG4gIGFuZCBzY2FuX2JhY2tzbGFzaCB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xccicgLT4gc2tpcF9uZXdsaW5lIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8ICdcXG4nIC0+IHNraXBfc3BhY2VzIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IF8gLT4gZmluZF9zdG9wIChzY2FuX2JhY2tzbGFzaF9jaGFyIHdpZHRoIGliKVxuXG4gIGFuZCBza2lwX25ld2xpbmUgd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXG4nIC0+IHNraXBfc3BhY2VzIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IF8gLT4gZmluZF9zdG9wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliICdcXHInKVxuXG4gIGFuZCBza2lwX3NwYWNlcyB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgd2lkdGggaWIgd2l0aFxuICAgIHwgJyAnIC0+IHNraXBfc3BhY2VzIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IF8gLT4gZmluZF9zdG9wIHdpZHRoIGluXG5cbiAgZmluZF9zdGFydCB3aWR0aFxuXG5cbigqIFNjYW4gYSBib29sZWFuIChhbiBPQ2FtbCB0b2tlbikuICopXG5sZXQgc2Nhbl9ib29sIGliID1cbiAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBsZXQgbSA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAndCcgLT4gNFxuICAgIHwgJ2YnIC0+IDVcbiAgICB8IGMgLT5cbiAgICAgIGJhZF9pbnB1dFxuICAgICAgICAoUHJpbnRmLnNwcmludGYgXCJ0aGUgY2hhcmFjdGVyICVDIGNhbm5vdCBzdGFydCBhIGJvb2xlYW5cIiBjKSBpblxuICBzY2FuX3N0cmluZyBOb25lIG0gaWJcblxuXG4oKiBTY2FuIGEgc3RyaW5nIGNvbnRhaW5pbmcgZWxlbWVudHMgaW4gY2hhcl9zZXQgYW5kIHRlcm1pbmF0ZWQgYnkgc2Nhbl9pbmRpY1xuICAgaWYgcHJvdmlkZWQuICopXG5sZXQgc2Nhbl9jaGFyc19pbl9jaGFyX3NldCBjaGFyX3NldCBzY2FuX2luZGljIHdpZHRoIGliID1cbiAgbGV0IHJlYyBzY2FuX2NoYXJzIGkgc3RwID1cbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIGkgPiAwICYmIG5vdCAoU2Nhbm5pbmcuZW9mIGliKSAmJlxuICAgICAgIGlzX2luX2NoYXJfc2V0IGNoYXJfc2V0IGMgJiZcbiAgICAgICBpbnRfb2ZfY2hhciBjIDw+IHN0cCB0aGVuXG4gICAgICBsZXQgXyA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgbWF4X2ludCBpYiBjIGluXG4gICAgICBzY2FuX2NoYXJzIChpIC0gMSkgc3RwIGluXG4gIG1hdGNoIHNjYW5faW5kaWMgd2l0aFxuICB8IE5vbmUgLT4gc2Nhbl9jaGFycyB3aWR0aCAoLTEpO1xuICB8IFNvbWUgYyAtPlxuICAgIHNjYW5fY2hhcnMgd2lkdGggKGludF9vZl9jaGFyIGMpO1xuICAgIGlmIG5vdCAoU2Nhbm5pbmcuZW9mIGliKSB0aGVuXG4gICAgICBsZXQgY2kgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICAgIGlmIGMgPSBjaVxuICAgICAgdGhlbiBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYlxuICAgICAgZWxzZSBjaGFyYWN0ZXJfbWlzbWF0Y2ggYyBjaVxuXG5cbigqIFRoZSBnbG9iYWwgZXJyb3IgcmVwb3J0IGZ1bmN0aW9uIGZvciBbU2NhbmZdLiAqKVxubGV0IHNjYW5mX2JhZF9pbnB1dCBpYiA9IGZ1bmN0aW9uXG4gIHwgU2Nhbl9mYWlsdXJlIHMgfCBGYWlsdXJlIHMgLT5cbiAgICBsZXQgaSA9IFNjYW5uaW5nLmNoYXJfY291bnQgaWIgaW5cbiAgICBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwic2NhbmY6IGJhZCBpbnB1dCBhdCBjaGFyIG51bWJlciAlaTogJXNcIiBpIHMpXG4gIHwgeCAtPiByYWlzZSB4XG5cblxuKCogR2V0IHRoZSBjb250ZW50IG9mIGEgY291bnRlciBmcm9tIGFuIGlucHV0IGJ1ZmZlci4gKilcbmxldCBnZXRfY291bnRlciBpYiBjb3VudGVyID1cbiAgbWF0Y2ggY291bnRlciB3aXRoXG4gIHwgTGluZV9jb3VudGVyIC0+IFNjYW5uaW5nLmxpbmVfY291bnQgaWJcbiAgfCBDaGFyX2NvdW50ZXIgLT4gU2Nhbm5pbmcuY2hhcl9jb3VudCBpYlxuICB8IFRva2VuX2NvdW50ZXIgLT4gU2Nhbm5pbmcudG9rZW5fY291bnQgaWJcblxuXG4oKiBDb21wdXRlIHRoZSB3aWR0aCBvZiBhIHBhZGRpbmcgb3B0aW9uIChzZWUgXCIlNDJ7XCIgYW5kIFwiJTEyMyhcIikuICopXG5sZXQgd2lkdGhfb2ZfcGFkX29wdCBwYWRfb3B0ID0gbWF0Y2ggcGFkX29wdCB3aXRoXG4gIHwgTm9uZSAtPiBtYXhfaW50XG4gIHwgU29tZSB3aWR0aCAtPiB3aWR0aFxuXG5cbmxldCBzdG9wcGVyX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZyA9XG4gIGlmIGZtdGluZyA9IEVzY2FwZWRfcGVyY2VudCB0aGVuICclJywgXCJcIiBlbHNlXG4gICAgbGV0IHN0ciA9IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmcgaW5cbiAgICBsZXQgc3RwID0gc3RyLlsxXSBpblxuICAgIGxldCBzdWJfc3RyID0gU3RyaW5nLnN1YiBzdHIgMiAoU3RyaW5nLmxlbmd0aCBzdHIgLSAyKSBpblxuICAgIHN0cCwgc3ViX3N0clxuXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBSZWFkZXIgbWFuYWdlbWVudCAqKVxuXG4oKiBBIGNhbGwgdG8gdGFrZV9mb3JtYXRfcmVhZGVycyBvbiBhIGZvcm1hdCBpcyBldmFsdWF0ZWQgaW50byBmdW5jdGlvbnNcbiAgIHRha2luZyByZWFkZXJzIGFzIGFyZ3VtZW50cyBhbmQgYWdncmVnYXRlIHRoZW0gaW50byBhbiBoZXRlcm9nZW5lb3VzIGxpc3QgKilcbigqIFdoZW4gYWxsIHJlYWRlcnMgYXJlIHRha2VuLCBmaW5hbGx5IHBhc3MgdGhlIGxpc3Qgb2YgdGhlIHJlYWRlcnMgdG8gdGhlXG4gICBjb250aW51YXRpb24gay4gKilcbmxldCByZWMgdGFrZV9mb3JtYXRfcmVhZGVycyA6IHR5cGUgYSBjIGQgZSBmIC5cbiAgICAoKGQsIGUpIGhldGVyX2xpc3QgLT4gZSkgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgIGQgPVxuZnVuIGsgZm10IC0+IG1hdGNoIGZtdCB3aXRoXG4gIHwgUmVhZGVyIGZtdF9yZXN0IC0+XG4gICAgZnVuIHJlYWRlciAtPlxuICAgICAgbGV0IG5ld19rIHJlYWRlcnNfcmVzdCA9IGsgKENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSkgaW5cbiAgICAgIHRha2VfZm9ybWF0X3JlYWRlcnMgbmV3X2sgZm10X3Jlc3RcbiAgfCBDaGFyIHJlc3QgICAgICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IENhbWxfY2hhciByZXN0ICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgU3RyaW5nIChfLCByZXN0KSAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBDYW1sX3N0cmluZyAoXywgcmVzdCkgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEludCAoXywgXywgXywgcmVzdCkgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgSW50MzIgKF8sIF8sIF8sIHJlc3QpICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBOYXRpdmVpbnQgKF8sIF8sIF8sIHJlc3QpICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEludDY0IChfLCBfLCBfLCByZXN0KSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgRmxvYXQgKF8sIF8sIF8sIHJlc3QpICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBCb29sIChfLCByZXN0KSAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEFscGhhIHJlc3QgICAgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgVGhldGEgcmVzdCAgICAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBGbHVzaCByZXN0ICAgICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFN0cmluZ19saXRlcmFsIChfLCByZXN0KSAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQ2hhcl9saXRlcmFsIChfLCByZXN0KSAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBDdXN0b20gKF8sIF8sIHJlc3QpICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuXG4gIHwgU2Nhbl9jaGFyX3NldCAoXywgXywgcmVzdCkgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBTY2FuX2dldF9jb3VudGVyIChfLCByZXN0KSAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG5cbiAgfCBGb3JtYXR0aW5nX2xpdCAoXywgcmVzdCkgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQsIF8pKSwgcmVzdCkgLT5cbiAgICAgIHRha2VfZm9ybWF0X3JlYWRlcnMgayAoY29uY2F0X2ZtdCBmbXQgcmVzdClcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10LCBfKSksIHJlc3QpIC0+XG4gICAgICB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgKGNvbmNhdF9mbXQgZm10IHJlc3QpXG5cbiAgfCBGb3JtYXRfYXJnIChfLCBfLCByZXN0KSAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEZvcm1hdF9zdWJzdCAoXywgZm10dHksIHJlc3QpICAgIC0+XG4gICAgIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayAoZXJhc2VfcmVsIChzeW1tIGZtdHR5KSkgcmVzdFxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgICAgICAgIC0+IHRha2VfaWdub3JlZF9mb3JtYXRfcmVhZGVycyBrIGlnbiByZXN0XG5cbiAgfCBFbmRfb2ZfZm9ybWF0ICAgICAgICAgICAgICAgICAgICAtPiBrIE5pbFxuXG4oKiBUYWtlIHJlYWRlcnMgYXNzb2NpYXRlZCB0byBhbiBmbXR0eSBjb21pbmcgZnJvbSBhIEZvcm1hdF9zdWJzdCBcIiUoLi4uJSlcIi4gKilcbmFuZCB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIDogdHlwZSB4IHkgYSBjIGQgZSBmIC5cbiAgICAoKGQsIGUpIGhldGVyX2xpc3QgLT4gZSkgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIHgsIHkpIGZtdHR5IC0+XG4gICAgICAoeSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgeCwgZSwgZikgZm10IC0+IGQgPVxuZnVuIGsgZm10dHkgZm10IC0+IG1hdGNoIGZtdHR5IHdpdGhcbiAgfCBSZWFkZXJfdHkgZm10X3Jlc3QgLT5cbiAgICBmdW4gcmVhZGVyIC0+XG4gICAgICBsZXQgbmV3X2sgcmVhZGVyc19yZXN0ID0gayAoQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpKSBpblxuICAgICAgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBuZXdfayBmbXRfcmVzdCBmbXRcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSBmbXRfcmVzdCAtPlxuICAgIGZ1biByZWFkZXIgLT5cbiAgICAgIGxldCBuZXdfayByZWFkZXJzX3Jlc3QgPSBrIChDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkpIGluXG4gICAgICB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIG5ld19rIGZtdF9yZXN0IGZtdFxuICB8IENoYXJfdHkgcmVzdCAgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBTdHJpbmdfdHkgcmVzdCAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgSW50X3R5IHJlc3QgICAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEludDMyX3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgSW50NjRfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEZsb2F0X3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBCb29sX3R5IHJlc3QgICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgQWxwaGFfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IFRoZXRhX3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBBbnlfdHkgcmVzdCAgICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgRm9ybWF0X2FyZ190eSAoXywgcmVzdCkgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEVuZF9vZl9mbXR0eSAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBsZXQgdHkgPSB0cmFucyAoc3ltbSB0eTEpIHR5MiBpblxuICAgIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayAoY29uY2F0X2ZtdHR5IHR5IHJlc3QpIGZtdFxuXG4oKiBUYWtlIHJlYWRlcnMgYXNzb2NpYXRlZCB0byBhbiBpZ25vcmVkIHBhcmFtZXRlci4gKilcbmFuZCB0YWtlX2lnbm9yZWRfZm9ybWF0X3JlYWRlcnMgOiB0eXBlIHggeSBhIGMgZCBlIGYgLlxuICAgICgoZCwgZSkgaGV0ZXJfbGlzdCAtPiBlKSAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgeCwgeSkgaWdub3JlZCAtPlxuICAgICAgKHksIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIHgsIGUsIGYpIGZtdCAtPiBkID1cbmZ1biBrIGlnbiBmbXQgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX3JlYWRlciAtPlxuICAgIGZ1biByZWFkZXIgLT5cbiAgICAgIGxldCBuZXdfayByZWFkZXJzX3Jlc3QgPSBrIChDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkpIGluXG4gICAgICB0YWtlX2Zvcm1hdF9yZWFkZXJzIG5ld19rIGZtdFxuICB8IElnbm9yZWRfY2hhciAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfY2FtbF9jaGFyICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfc3RyaW5nIF8gICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgXyAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfaW50IChfLCBfKSAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfaW50MzIgKF8sIF8pICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfbmF0aXZlaW50IChfLCBfKSAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfaW50NjQgKF8sIF8pICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfZmxvYXQgKF8sIF8pICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfYm9vbCBfICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyBfICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChfLCBmbXR0eSkgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIGZtdHR5IGZtdFxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCBfICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBHZW5lcmljIHNjYW5uaW5nICopXG5cbigqIE1ha2UgYSBnZW5lcmljIHNjYW5uaW5nIGZ1bmN0aW9uLiAqKVxuKCogU2NhbiBhIHN0cmVhbSBhY2NvcmRpbmcgdG8gYSBmb3JtYXQgYW5kIHJlYWRlcnMgb2J0YWluZWQgYnlcbiAgIHRha2VfZm9ybWF0X3JlYWRlcnMsIGFuZCBhZ2dyZWdhdGUgc2Nhbm5lZCB2YWx1ZXMgaW50byBhblxuICAgaGV0ZXJvZ2VuZW91cyBsaXN0LiAqKVxuKCogUmV0dXJuIHRoZSBoZXRlcm9nZW5lb3VzIGxpc3Qgb2Ygc2Nhbm5lZCB2YWx1ZXMuICopXG5sZXQgcmVjIG1ha2Vfc2NhbmYgOiB0eXBlIGEgYyBkIGUgZi5cbiAgICBTY2FubmluZy5pbl9jaGFubmVsIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAgIChkLCBlKSBoZXRlcl9saXN0IC0+IChhLCBmKSBoZXRlcl9saXN0ID1cbmZ1biBpYiBmbXQgcmVhZGVycyAtPiBtYXRjaCBmbXQgd2l0aFxuICB8IENoYXIgcmVzdCAtPlxuICAgIGxldCBfID0gc2Nhbl9jaGFyIDAgaWIgaW5cbiAgICBsZXQgYyA9IHRva2VuX2NoYXIgaWIgaW5cbiAgICBDb25zIChjLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcbiAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgIGxldCBfID0gc2Nhbl9jYW1sX2NoYXIgMCBpYiBpblxuICAgIGxldCBjID0gdG9rZW5fY2hhciBpYiBpblxuICAgIENvbnMgKGMsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuXG4gIHwgU3RyaW5nIChwYWQsIEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCByZXN0KSkgLT5cbiAgICBsZXQgc3RwLCBzdHIgPSBzdG9wcGVyX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgKFNvbWUgc3RwKSB3aWR0aCBpYiBpblxuICAgIGxldCBzdHJfcmVzdCA9IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgc3RyX3Jlc3QgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW4gdG9rZW5fc3RyaW5nXG4gIHwgU3RyaW5nIChwYWQsIEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpKSAtPlxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX3N0cmluZyAoU29tZSAneycpIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhblxuICAgICAgICAgICAgICAgICAgIHRva2VuX3N0cmluZ1xuICB8IFN0cmluZyAocGFkLCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSkgLT5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgKFNvbWUgJ1snKSB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW5cbiAgICAgICAgICAgICAgICAgICB0b2tlbl9zdHJpbmdcbiAgfCBTdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgTm9uZSB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW4gdG9rZW5fc3RyaW5nXG5cbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2NhbWxfc3RyaW5nIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhbiB0b2tlbl9zdHJpbmdcbiAgfCBJbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IGMgPSBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciAoY2hhcl9vZl9pY29udiBpY29udikgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9pbnRfY29udmVyc2lvbiBjIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gKHRva2VuX2ludCBjKVxuICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCBjID0gaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpIGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5faW50X2NvbnZlcnNpb24gYyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuICh0b2tlbl9pbnQzMiBjKVxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgYyA9IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIChjaGFyX29mX2ljb252IGljb252KSBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2ludF9jb252ZXJzaW9uIGMgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2NhbiAodG9rZW5fbmF0aXZlaW50IGMpXG4gIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IGMgPSBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciAoY2hhcl9vZl9pY29udiBpY29udikgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9pbnRfY29udmVyc2lvbiBjIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gKHRva2VuX2ludDY0IGMpXG4gIHwgRmxvYXQgKChfLCAoRmxvYXRfRiB8IEZsb2F0X0NGKSksIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2Nhbl9jYW1sX2Zsb2F0IHRva2VuX2Zsb2F0XG4gIHwgRmxvYXQgKChfLCAoRmxvYXRfZiB8IEZsb2F0X2UgfCBGbG9hdF9FIHwgRmxvYXRfZyB8IEZsb2F0X0cpKSxcbiAgICAgICAgICAgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuX2Zsb2F0IHRva2VuX2Zsb2F0XG4gIHwgRmxvYXQgKChfLCAoRmxvYXRfaCB8IEZsb2F0X0gpKSwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuX2hleF9mbG9hdCB0b2tlbl9mbG9hdFxuICB8IEJvb2wgKHBhZCwgcmVzdCkgLT5cbiAgICBsZXQgc2NhbiBfIF8gaWIgPSBzY2FuX2Jvb2wgaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuIHRva2VuX2Jvb2xcbiAgfCBBbHBoYSBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiVhXFxcIlwiXG4gIHwgVGhldGEgXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIldFxcXCJcIlxuICB8IEN1c3RvbSBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiU/XFxcIiAoY3VzdG9tIGNvbnZlcnRlcilcIlxuICB8IFJlYWRlciBmbXRfcmVzdCAtPlxuICAgIGJlZ2luIG1hdGNoIHJlYWRlcnMgd2l0aFxuICAgIHwgQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpIC0+XG4gICAgICAgIGxldCB4ID0gcmVhZGVyIGliIGluXG4gICAgICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10X3Jlc3QgcmVhZGVyc19yZXN0KVxuICAgIHwgTmlsIC0+XG4gICAgICAgIGludmFsaWRfYXJnIFwic2NhbmY6IG1pc3NpbmcgcmVhZGVyXCJcbiAgICBlbmRcbiAgfCBGbHVzaCByZXN0IC0+XG4gICAgaWYgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcbiAgICBlbHNlIGJhZF9pbnB1dCBcImVuZCBvZiBpbnB1dCBub3QgZm91bmRcIlxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgLT5cbiAgICBTdHJpbmcuaXRlciAoY2hlY2tfY2hhciBpYikgc3RyO1xuICAgIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzXG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIHJlc3QpIC0+XG4gICAgY2hlY2tfY2hhciBpYiBjaHI7XG4gICAgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcblxuICB8IEZvcm1hdF9hcmcgKHBhZF9vcHQsIGZtdHR5LCByZXN0KSAtPlxuICAgIGxldCBfID0gc2Nhbl9jYW1sX3N0cmluZyAod2lkdGhfb2ZfcGFkX29wdCBwYWRfb3B0KSBpYiBpblxuICAgIGxldCBzID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgbGV0IGZtdCA9XG4gICAgICB0cnkgZm9ybWF0X29mX3N0cmluZ19mbXR0eSBzIGZtdHR5XG4gICAgICB3aXRoIEZhaWx1cmUgbXNnIC0+IGJhZF9pbnB1dCBtc2dcbiAgICBpblxuICAgIENvbnMgKGZtdCwgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG4gIHwgRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBmbXR0eSwgcmVzdCkgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2FtbF9zdHJpbmcgKHdpZHRoX29mX3BhZF9vcHQgcGFkX29wdCkgaWIgaW5cbiAgICBsZXQgcyA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIGxldCBmbXQsIGZtdCcgPVxuICAgICAgdHJ5XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdCA9IGZtdF9lYmJfb2Zfc3RyaW5nIHMgaW5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10JyA9IGZtdF9lYmJfb2Zfc3RyaW5nIHMgaW5cbiAgICAgICAgKCogVE9ETzogZmluZCBhIHdheSB0byBhdm9pZCByZXBhcnNpbmcgdHdpY2UgKilcblxuICAgICAgICAoKiBUT0RPOiB0aGVzZSB0eXBlLWNoZWNrcyBiZWxvdyAqY2FuKiBmYWlsIGJlY2F1c2Ugb2YgdHlwZVxuICAgICAgICAgICBhbWJpZ3VpdHkgaW4gcHJlc2VuY2Ugb2YgaWdub3JlZC1yZWFkZXJzOiBcIiVfciVkXCIgYW5kIFwiJWQlX3JcIlxuICAgICAgICAgICBhcmUgdHlwZWQgaW4gdGhlIHNhbWUgd2F5LlxuXG4gICAgICAgICAgICMgU2NhbmYuc3NjYW5mIFwiXFxcIiVfciVkXFxcIjNcIiBcIiUoJWQlX3IlKVwiIGlnbm9yZVxuICAgICAgICAgICAgIChmdW4gZm10IG4gLT4gc3RyaW5nX29mX2Zvcm1hdCBmbXQsIG4pXG4gICAgICAgICAgIEV4Y2VwdGlvbjogQ2FtbGludGVybmFsRm9ybWF0LlR5cGVfbWlzbWF0Y2guXG5cbiAgICAgICAgICAgV2Ugc2hvdWxkIHByb3Blcmx5IGNhdGNoIHRoaXMgZXhjZXB0aW9uLlxuICAgICAgICAqKVxuICAgICAgICB0eXBlX2Zvcm1hdCBmbXQgKGVyYXNlX3JlbCBmbXR0eSksXG4gICAgICAgIHR5cGVfZm9ybWF0IGZtdCcgKGVyYXNlX3JlbCAoc3ltbSBmbXR0eSkpXG4gICAgICB3aXRoIEZhaWx1cmUgbXNnIC0+IGJhZF9pbnB1dCBtc2dcbiAgICBpblxuICAgIENvbnMgKEZvcm1hdCAoZm10LCBzKSxcbiAgICAgICAgICBtYWtlX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVycylcblxuICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCByZXN0KSkgLT5cbiAgICBsZXQgc3RwLCBzdHIgPSBzdG9wcGVyX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBsZXQgd2lkdGggPSB3aWR0aF9vZl9wYWRfb3B0IHdpZHRoX29wdCBpblxuICAgIHNjYW5fY2hhcnNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgKFNvbWUgc3RwKSB3aWR0aCBpYjtcbiAgICBsZXQgcyA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIGxldCBzdHJfcmVzdCA9IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIGluXG4gICAgQ29ucyAocywgbWFrZV9zY2FuZiBpYiBzdHJfcmVzdCByZWFkZXJzKVxuICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIHJlc3QpIC0+XG4gICAgbGV0IHdpZHRoID0gd2lkdGhfb2ZfcGFkX29wdCB3aWR0aF9vcHQgaW5cbiAgICBzY2FuX2NoYXJzX2luX2NoYXJfc2V0IGNoYXJfc2V0IE5vbmUgd2lkdGggaWI7XG4gICAgbGV0IHMgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBDb25zIChzLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcbiAgfCBTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCByZXN0KSAtPlxuICAgIGxldCBjb3VudCA9IGdldF9jb3VudGVyIGliIGNvdW50ZXIgaW5cbiAgICBDb25zIChjb3VudCwgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAtPlxuICAgIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgICBDb25zIChjLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcblxuICB8IEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgcmVzdCkgLT5cbiAgICBTdHJpbmcuaXRlciAoY2hlY2tfY2hhciBpYikgKHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmb3JtYXR0aW5nX2xpdCk7XG4gICAgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgIGNoZWNrX2NoYXIgaWIgJ0AnOyBjaGVja19jaGFyIGliICd7JztcbiAgICBtYWtlX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVyc1xuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgY2hlY2tfY2hhciBpYiAnQCc7IGNoZWNrX2NoYXIgaWIgJ1snO1xuICAgIG1ha2Vfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzXG5cbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgbGV0IFBhcmFtX2Zvcm1hdF9FQkIgZm10JyA9IHBhcmFtX2Zvcm1hdF9vZl9pZ25vcmVkX2Zvcm1hdCBpZ24gcmVzdCBpblxuICAgIGJlZ2luIG1hdGNoIG1ha2Vfc2NhbmYgaWIgZm10JyByZWFkZXJzIHdpdGhcbiAgICB8IENvbnMgKF8sIGFyZ19yZXN0KSAtPiBhcmdfcmVzdFxuICAgIHwgTmlsIC0+IGFzc2VydCBmYWxzZVxuICAgIGVuZFxuXG4gIHwgRW5kX29mX2Zvcm1hdCAtPlxuICAgIE5pbFxuXG4oKiBDYXNlIGFuYWx5c2lzIG9uIHBhZGRpbmcgYW5kIHByZWNpc2lvbi4gKilcbigqIFJlamVjdCBmb3JtYXRzIGNvbnRhaW5pbmcgXCIlKlwiIG9yIFwiJS4qXCIuICopXG4oKiBQYXNzIHBhZGRpbmcgYW5kIHByZWNpc2lvbiB0byB0aGUgZ2VuZXJpYyBzY2FubmVyIGBzY2FuJy4gKilcbmFuZCBwYWRfcHJlY19zY2FuZiA6IHR5cGUgYSBjIGQgZSBmIHggeSB6IHQgLlxuICAgIFNjYW5uaW5nLmluX2NoYW5uZWwgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICAgKGQsIGUpIGhldGVyX2xpc3QgLT4gKHgsIHkpIHBhZGRpbmcgLT4gKHksIHogLT4gYSkgcHJlY2lzaW9uIC0+XG4gICAgICAoaW50IC0+IGludCAtPiBTY2FubmluZy5pbl9jaGFubmVsIC0+IHQpIC0+XG4gICAgICAoU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiB6KSAtPlxuICAgICAgKHgsIGYpIGhldGVyX2xpc3QgPVxuZnVuIGliIGZtdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gdG9rZW4gLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgfCBOb19wYWRkaW5nLCBOb19wcmVjaXNpb24gLT5cbiAgICBsZXQgXyA9IHNjYW4gbWF4X2ludCBtYXhfaW50IGliIGluXG4gICAgbGV0IHggPSB0b2tlbiBpYiBpblxuICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpXG4gIHwgTm9fcGFkZGluZywgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgbGV0IF8gPSBzY2FuIG1heF9pbnQgcCBpYiBpblxuICAgIGxldCB4ID0gdG9rZW4gaWIgaW5cbiAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKVxuICB8IExpdF9wYWRkaW5nICgoUmlnaHQgfCBaZXJvcyksIHcpLCBOb19wcmVjaXNpb24gLT5cbiAgICBsZXQgXyA9IHNjYW4gdyBtYXhfaW50IGliIGluXG4gICAgbGV0IHggPSB0b2tlbiBpYiBpblxuICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpXG4gIHwgTGl0X3BhZGRpbmcgKChSaWdodCB8IFplcm9zKSwgdyksIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGxldCBfID0gc2NhbiB3IHAgaWIgaW5cbiAgICBsZXQgeCA9IHRva2VuIGliIGluXG4gICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycylcbiAgfCBMaXRfcGFkZGluZyAoTGVmdCwgXyksIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJS1cXFwiXCJcbiAgfCBMaXRfcGFkZGluZyAoKFJpZ2h0IHwgWmVyb3MpLCBfKSwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlKlxcXCJcIlxuICB8IEFyZ19wYWRkaW5nIF8sIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJSpcXFwiXCJcbiAgfCBOb19wYWRkaW5nLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiUqXFxcIlwiXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAoKiBEZWZpbmluZyBbc2NhbmZdIGFuZCB2YXJpb3VzIGZsYXZvcnMgb2YgW3NjYW5mXSAqKVxuXG50eXBlICdhIGtzY2FuZl9yZXN1bHQgPSBBcmdzIG9mICdhIHwgRXhjIG9mIGV4blxuXG5sZXQga3NjYW5mIGliIGVmIChGb3JtYXQgKGZtdCwgc3RyKSkgPVxuICBsZXQgcmVjIGFwcGx5IDogdHlwZSBhIGIgLiBhIC0+IChhLCBiKSBoZXRlcl9saXN0IC0+IGIgPVxuICAgIGZ1biBmIGFyZ3MgLT4gbWF0Y2ggYXJncyB3aXRoXG4gICAgfCBDb25zICh4LCByKSAtPiBhcHBseSAoZiB4KSByXG4gICAgfCBOaWwgLT4gZlxuICBpblxuICBsZXQgayByZWFkZXJzIGYgPVxuICAgIFNjYW5uaW5nLnJlc2V0X3Rva2VuIGliO1xuICAgIG1hdGNoIHRyeSBBcmdzIChtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKSB3aXRoXG4gICAgICB8IChTY2FuX2ZhaWx1cmUgXyB8IEZhaWx1cmUgXyB8IEVuZF9vZl9maWxlKSBhcyBleGMgLT4gRXhjIGV4Y1xuICAgICAgfCBJbnZhbGlkX2FyZ3VtZW50IG1zZyAtPlxuICAgICAgICBpbnZhbGlkX2FyZyAobXNnIF4gXCIgaW4gZm9ybWF0IFxcXCJcIiBeIFN0cmluZy5lc2NhcGVkIHN0ciBeIFwiXFxcIlwiKVxuICAgIHdpdGhcbiAgICAgIHwgQXJncyBhcmdzIC0+IGFwcGx5IGYgYXJnc1xuICAgICAgfCBFeGMgZXhjIC0+IGVmIGliIGV4Y1xuICBpblxuICB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG5cbigqKiopXG5cbmxldCBrYnNjYW5mID0ga3NjYW5mXG5sZXQgYnNjYW5mIGliIGZtdCA9IGtic2NhbmYgaWIgc2NhbmZfYmFkX2lucHV0IGZtdFxuXG5sZXQga3NzY2FuZiBzIGVmIGZtdCA9IGtic2NhbmYgKFNjYW5uaW5nLmZyb21fc3RyaW5nIHMpIGVmIGZtdFxubGV0IHNzY2FuZiBzIGZtdCA9IGtic2NhbmYgKFNjYW5uaW5nLmZyb21fc3RyaW5nIHMpIHNjYW5mX2JhZF9pbnB1dCBmbXRcblxubGV0IHNjYW5mIGZtdCA9IGtzY2FuZiBTY2FubmluZy5zdGRpYiBzY2FuZl9iYWRfaW5wdXQgZm10XG5cbigqKiopXG5cbigqIFNjYW5uaW5nIGZvcm1hdCBzdHJpbmdzLiAqKVxubGV0IGJzY2FuZl9mb3JtYXQgOlxuICBTY2FubmluZy5pbl9jaGFubmVsIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+XG4gICgoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPiAnZykgLT4gJ2cgPVxuICBmdW4gaWIgZm9ybWF0IGYgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2FtbF9zdHJpbmcgbWF4X2ludCBpYiBpblxuICAgIGxldCBzdHIgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBsZXQgZm10JyA9XG4gICAgICB0cnkgZm9ybWF0X29mX3N0cmluZ19mb3JtYXQgc3RyIGZvcm1hdFxuICAgICAgd2l0aCBGYWlsdXJlIG1zZyAtPiBiYWRfaW5wdXQgbXNnIGluXG4gICAgZiBmbXQnXG5cblxubGV0IHNzY2FuZl9mb3JtYXQgOlxuICBzdHJpbmcgLT4gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT5cbiAgKCgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+ICdnKSAtPiAnZyA9XG4gIGZ1biBzIGZvcm1hdCBmIC0+IGJzY2FuZl9mb3JtYXQgKFNjYW5uaW5nLmZyb21fc3RyaW5nIHMpIGZvcm1hdCBmXG5cblxubGV0IGZvcm1hdF9mcm9tX3N0cmluZyBzIGZtdCA9XG4gIHNzY2FuZl9mb3JtYXQgKFwiXFxcIlwiIF4gU3RyaW5nLmVzY2FwZWQgcyBeIFwiXFxcIlwiKSBmbXQgKGZ1biB4IC0+IHgpXG5cblxubGV0IHVuZXNjYXBlZCBzID1cbiAgc3NjYW5mIChcIlxcXCJcIiBeIHMgXiBcIlxcXCJcIikgXCIlUyUhXCIgKGZ1biB4IC0+IHgpXG5cblxuKCogRGVwcmVjYXRlZCAqKVxubGV0IGtmc2NhbmYgaWMgZWYgZm10ID0ga2JzY2FuZiAoU2Nhbm5pbmcubWVtb19mcm9tX2NoYW5uZWwgaWMpIGVmIGZtdFxubGV0IGZzY2FuZiBpYyBmbXQgPSBrc2NhbmYgKFNjYW5uaW5nLm1lbW9fZnJvbV9jaGFubmVsIGljKSBzY2FuZl9iYWRfaW5wdXQgZm10XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFJlZ2lzdGVyaW5nIE9DYW1sIHZhbHVlcyB3aXRoIHRoZSBDIHJ1bnRpbWUgZm9yIGxhdGVyIGNhbGxiYWNrcyAqKVxuXG5leHRlcm5hbCByZWdpc3Rlcl9uYW1lZF92YWx1ZSA6IHN0cmluZyAtPiBPYmoudCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZVwiXG5cbmxldCByZWdpc3RlciBuYW1lIHYgPVxuICByZWdpc3Rlcl9uYW1lZF92YWx1ZSBuYW1lIChPYmoucmVwciB2KVxuXG5sZXQgcmVnaXN0ZXJfZXhjZXB0aW9uIG5hbWUgKGV4biA6IGV4bikgPVxuICBsZXQgZXhuID0gT2JqLnJlcHIgZXhuIGluXG4gIGxldCBzbG90ID0gaWYgT2JqLnRhZyBleG4gPSBPYmoub2JqZWN0X3RhZyB0aGVuIGV4biBlbHNlIE9iai5maWVsZCBleG4gMCBpblxuICByZWdpc3Rlcl9uYW1lZF92YWx1ZSBuYW1lIHNsb3RcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgIEplcm9tZSBWb3VpbGxvbiwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBPYmpcblxuKCoqKiogT2JqZWN0IHJlcHJlc2VudGF0aW9uICoqKiopXG5cbmV4dGVybmFsIHNldF9pZDogJ2EgLT4gJ2EgPSBcImNhbWxfc2V0X29vX2lkXCIgW0BAbm9hbGxvY11cblxuKCoqKiogT2JqZWN0IGNvcHkgKioqKilcblxubGV0IGNvcHkgbyA9XG4gIGxldCBvID0gKE9iai5vYmogKE9iai5kdXAgKE9iai5yZXByIG8pKSkgaW5cbiAgc2V0X2lkIG9cblxuKCoqKiogQ29tcHJlc3Npb24gb3B0aW9ucyAqKioqKVxuKCogUGFyYW1ldGVycyAqKVxudHlwZSBwYXJhbXMgPSB7XG4gICAgbXV0YWJsZSBjb21wYWN0X3RhYmxlIDogYm9vbDtcbiAgICBtdXRhYmxlIGNvcHlfcGFyZW50IDogYm9vbDtcbiAgICBtdXRhYmxlIGNsZWFuX3doZW5fY29weWluZyA6IGJvb2w7XG4gICAgbXV0YWJsZSByZXRyeV9jb3VudCA6IGludDtcbiAgICBtdXRhYmxlIGJ1Y2tldF9zbWFsbF9zaXplIDogaW50XG4gIH1cblxubGV0IHBhcmFtcyA9IHtcbiAgY29tcGFjdF90YWJsZSA9IHRydWU7XG4gIGNvcHlfcGFyZW50ID0gdHJ1ZTtcbiAgY2xlYW5fd2hlbl9jb3B5aW5nID0gdHJ1ZTtcbiAgcmV0cnlfY291bnQgPSAzO1xuICBidWNrZXRfc21hbGxfc2l6ZSA9IDE2XG59XG5cbigqKioqIFBhcmFtZXRlcnMgKioqKilcblxubGV0IGluaXRpYWxfb2JqZWN0X3NpemUgPSAyXG5cbigqKioqIEl0ZW1zICoqKiopXG5cbnR5cGUgaXRlbSA9IER1bW15QSB8IER1bW15QiB8IER1bW15QyBvZiBpbnRcbmxldCBfID0gW0R1bW15QTsgRHVtbXlCOyBEdW1teUMgMF0gKCogdG8gYXZvaWQgd2FybmluZ3MgKilcblxubGV0IGR1bW15X2l0ZW0gPSAobWFnaWMgKCkgOiBpdGVtKVxuXG4oKioqKiBUeXBlcyAqKioqKVxuXG50eXBlIHRhZ1xudHlwZSBsYWJlbCA9IGludFxudHlwZSBjbG9zdXJlID0gaXRlbVxudHlwZSB0ID0gRHVtbXlBIHwgRHVtbXlCIHwgRHVtbXlDIG9mIGludFxubGV0IF8gPSBbRHVtbXlBOyBEdW1teUI7IER1bW15QyAwXSAoKiB0byBhdm9pZCB3YXJuaW5ncyAqKVxuXG50eXBlIG9iaiA9IHQgYXJyYXlcbmV4dGVybmFsIHJldCA6IChvYmogLT4gJ2EpIC0+IGNsb3N1cmUgPSBcIiVpZGVudGl0eVwiXG5cbigqKioqIExhYmVscyAqKioqKVxuXG5sZXQgcHVibGljX21ldGhvZF9sYWJlbCBzIDogdGFnID1cbiAgbGV0IGFjY3UgPSByZWYgMCBpblxuICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgIGFjY3UgOj0gMjIzICogIWFjY3UgKyBDaGFyLmNvZGUgcy5baV1cbiAgZG9uZTtcbiAgKCogcmVkdWNlIHRvIDMxIGJpdHMgKilcbiAgYWNjdSA6PSAhYWNjdSBsYW5kICgxIGxzbCAzMSAtIDEpO1xuICAoKiBtYWtlIGl0IHNpZ25lZCBmb3IgNjQgYml0cyBhcmNoaXRlY3R1cmVzICopXG4gIGxldCB0YWcgPSBpZiAhYWNjdSA+IDB4M0ZGRkZGRkYgdGhlbiAhYWNjdSAtICgxIGxzbCAzMSkgZWxzZSAhYWNjdSBpblxuICAoKiBQcmludGYuZXByaW50ZiBcIiVzID0gJWRcXG5cIiBzIHRhZzsgZmx1c2ggc3RkZXJyOyAqKVxuICBtYWdpYyB0YWdcblxuKCoqKiogU3BhcnNlIGFycmF5ICoqKiopXG5cbm1vZHVsZSBWYXJzID1cbiAgTWFwLk1ha2Uoc3RydWN0IHR5cGUgdCA9IHN0cmluZyBsZXQgY29tcGFyZSAoeDp0KSB5ID0gY29tcGFyZSB4IHkgZW5kKVxudHlwZSB2YXJzID0gaW50IFZhcnMudFxuXG5tb2R1bGUgTWV0aHMgPVxuICBNYXAuTWFrZShzdHJ1Y3QgdHlwZSB0ID0gc3RyaW5nIGxldCBjb21wYXJlICh4OnQpIHkgPSBjb21wYXJlIHggeSBlbmQpXG50eXBlIG1ldGhzID0gbGFiZWwgTWV0aHMudFxubW9kdWxlIExhYnMgPVxuICBNYXAuTWFrZShzdHJ1Y3QgdHlwZSB0ID0gbGFiZWwgbGV0IGNvbXBhcmUgKHg6dCkgeSA9IGNvbXBhcmUgeCB5IGVuZClcbnR5cGUgbGFicyA9IGJvb2wgTGFicy50XG5cbigqIFRoZSBjb21waWxlciBhc3N1bWVzIHRoYXQgdGhlIGZpcnN0IGZpZWxkIG9mIHRoaXMgc3RydWN0dXJlIGlzIFtzaXplXS4gKilcbnR5cGUgdGFibGUgPVxuIHsgbXV0YWJsZSBzaXplOiBpbnQ7XG4gICBtdXRhYmxlIG1ldGhvZHM6IGNsb3N1cmUgYXJyYXk7XG4gICBtdXRhYmxlIG1ldGhvZHNfYnlfbmFtZTogbWV0aHM7XG4gICBtdXRhYmxlIG1ldGhvZHNfYnlfbGFiZWw6IGxhYnM7XG4gICBtdXRhYmxlIHByZXZpb3VzX3N0YXRlczpcbiAgICAgKG1ldGhzICogbGFicyAqIChsYWJlbCAqIGl0ZW0pIGxpc3QgKiB2YXJzICpcbiAgICAgIGxhYmVsIGxpc3QgKiBzdHJpbmcgbGlzdCkgbGlzdDtcbiAgIG11dGFibGUgaGlkZGVuX21ldGhzOiAobGFiZWwgKiBpdGVtKSBsaXN0O1xuICAgbXV0YWJsZSB2YXJzOiB2YXJzO1xuICAgbXV0YWJsZSBpbml0aWFsaXplcnM6IChvYmogLT4gdW5pdCkgbGlzdCB9XG5cbmxldCBkdW1teV90YWJsZSA9XG4gIHsgbWV0aG9kcyA9IFt8IGR1bW15X2l0ZW0gfF07XG4gICAgbWV0aG9kc19ieV9uYW1lID0gTWV0aHMuZW1wdHk7XG4gICAgbWV0aG9kc19ieV9sYWJlbCA9IExhYnMuZW1wdHk7XG4gICAgcHJldmlvdXNfc3RhdGVzID0gW107XG4gICAgaGlkZGVuX21ldGhzID0gW107XG4gICAgdmFycyA9IFZhcnMuZW1wdHk7XG4gICAgaW5pdGlhbGl6ZXJzID0gW107XG4gICAgc2l6ZSA9IDAgfVxuXG5sZXQgdGFibGVfY291bnQgPSByZWYgMFxuXG4oKiBkdW1teV9tZXQgc2hvdWxkIGJlIGEgcG9pbnRlciwgc28gdXNlIGFuIGF0b20gKilcbmxldCBkdW1teV9tZXQgOiBpdGVtID0gb2JqIChPYmoubmV3X2Jsb2NrIDAgMClcbigqIGlmIGRlYnVnZ2luZyBpcyBuZWVkZWQsIHRoaXMgY291bGQgYmUgYSBnb29kIGlkZWE6ICopXG4oKiBsZXQgZHVtbXlfbWV0ICgpID0gZmFpbHdpdGggXCJVbmRlZmluZWQgbWV0aG9kXCIgKilcblxubGV0IHJlYyBmaXRfc2l6ZSBuID1cbiAgaWYgbiA8PSAyIHRoZW4gbiBlbHNlXG4gIGZpdF9zaXplICgobisxKS8yKSAqIDJcblxubGV0IG5ld190YWJsZSBwdWJfbGFiZWxzID1cbiAgaW5jciB0YWJsZV9jb3VudDtcbiAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBwdWJfbGFiZWxzIGluXG4gIGxldCBtZXRob2RzID0gQXJyYXkubWFrZSAobGVuKjIrMikgZHVtbXlfbWV0IGluXG4gIG1ldGhvZHMuKDApIDwtIG1hZ2ljIGxlbjtcbiAgbWV0aG9kcy4oMSkgPC0gbWFnaWMgKGZpdF9zaXplIGxlbiAqIFN5cy53b3JkX3NpemUgLyA4IC0gMSk7XG4gIGZvciBpID0gMCB0byBsZW4gLSAxIGRvIG1ldGhvZHMuKGkqMiszKSA8LSBtYWdpYyBwdWJfbGFiZWxzLihpKSBkb25lO1xuICB7IG1ldGhvZHMgPSBtZXRob2RzO1xuICAgIG1ldGhvZHNfYnlfbmFtZSA9IE1ldGhzLmVtcHR5O1xuICAgIG1ldGhvZHNfYnlfbGFiZWwgPSBMYWJzLmVtcHR5O1xuICAgIHByZXZpb3VzX3N0YXRlcyA9IFtdO1xuICAgIGhpZGRlbl9tZXRocyA9IFtdO1xuICAgIHZhcnMgPSBWYXJzLmVtcHR5O1xuICAgIGluaXRpYWxpemVycyA9IFtdO1xuICAgIHNpemUgPSBpbml0aWFsX29iamVjdF9zaXplIH1cblxubGV0IHJlc2l6ZSBhcnJheSBuZXdfc2l6ZSA9XG4gIGxldCBvbGRfc2l6ZSA9IEFycmF5Lmxlbmd0aCBhcnJheS5tZXRob2RzIGluXG4gIGlmIG5ld19zaXplID4gb2xkX3NpemUgdGhlbiBiZWdpblxuICAgIGxldCBuZXdfYnVjayA9IEFycmF5Lm1ha2UgbmV3X3NpemUgZHVtbXlfbWV0IGluXG4gICAgQXJyYXkuYmxpdCBhcnJheS5tZXRob2RzIDAgbmV3X2J1Y2sgMCBvbGRfc2l6ZTtcbiAgICBhcnJheS5tZXRob2RzIDwtIG5ld19idWNrXG4gZW5kXG5cbmxldCBwdXQgYXJyYXkgbGFiZWwgZWxlbWVudCA9XG4gIHJlc2l6ZSBhcnJheSAobGFiZWwgKyAxKTtcbiAgYXJyYXkubWV0aG9kcy4obGFiZWwpIDwtIGVsZW1lbnRcblxuKCoqKiogQ2xhc3NlcyAqKioqKVxuXG5sZXQgbWV0aG9kX2NvdW50ID0gcmVmIDBcbmxldCBpbnN0X3Zhcl9jb3VudCA9IHJlZiAwXG5cbigqIHR5cGUgdCAqKVxudHlwZSBtZXRoID0gaXRlbVxuXG5sZXQgbmV3X21ldGhvZCB0YWJsZSA9XG4gIGxldCBpbmRleCA9IEFycmF5Lmxlbmd0aCB0YWJsZS5tZXRob2RzIGluXG4gIHJlc2l6ZSB0YWJsZSAoaW5kZXggKyAxKTtcbiAgaW5kZXhcblxubGV0IGdldF9tZXRob2RfbGFiZWwgdGFibGUgbmFtZSA9XG4gIHRyeVxuICAgIE1ldGhzLmZpbmQgbmFtZSB0YWJsZS5tZXRob2RzX2J5X25hbWVcbiAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICBsZXQgbGFiZWwgPSBuZXdfbWV0aG9kIHRhYmxlIGluXG4gICAgdGFibGUubWV0aG9kc19ieV9uYW1lIDwtIE1ldGhzLmFkZCBuYW1lIGxhYmVsIHRhYmxlLm1ldGhvZHNfYnlfbmFtZTtcbiAgICB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIDwtIExhYnMuYWRkIGxhYmVsIHRydWUgdGFibGUubWV0aG9kc19ieV9sYWJlbDtcbiAgICBsYWJlbFxuXG5sZXQgZ2V0X21ldGhvZF9sYWJlbHMgdGFibGUgbmFtZXMgPVxuICBBcnJheS5tYXAgKGdldF9tZXRob2RfbGFiZWwgdGFibGUpIG5hbWVzXG5cbmxldCBzZXRfbWV0aG9kIHRhYmxlIGxhYmVsIGVsZW1lbnQgPVxuICBpbmNyIG1ldGhvZF9jb3VudDtcbiAgaWYgTGFicy5maW5kIGxhYmVsIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgdGhlblxuICAgIHB1dCB0YWJsZSBsYWJlbCBlbGVtZW50XG4gIGVsc2VcbiAgICB0YWJsZS5oaWRkZW5fbWV0aHMgPC0gKGxhYmVsLCBlbGVtZW50KSA6OiB0YWJsZS5oaWRkZW5fbWV0aHNcblxubGV0IGdldF9tZXRob2QgdGFibGUgbGFiZWwgPVxuICB0cnkgTGlzdC5hc3NvYyBsYWJlbCB0YWJsZS5oaWRkZW5fbWV0aHNcbiAgd2l0aCBOb3RfZm91bmQgLT4gdGFibGUubWV0aG9kcy4obGFiZWwpXG5cbmxldCB0b19saXN0IGFyciA9XG4gIGlmIGFyciA9PSBtYWdpYyAwIHRoZW4gW10gZWxzZSBBcnJheS50b19saXN0IGFyclxuXG5sZXQgbmFycm93IHRhYmxlIHZhcnMgdmlydF9tZXRocyBjb25jcl9tZXRocyA9XG4gIGxldCB2YXJzID0gdG9fbGlzdCB2YXJzXG4gIGFuZCB2aXJ0X21ldGhzID0gdG9fbGlzdCB2aXJ0X21ldGhzXG4gIGFuZCBjb25jcl9tZXRocyA9IHRvX2xpc3QgY29uY3JfbWV0aHMgaW5cbiAgbGV0IHZpcnRfbWV0aF9sYWJzID0gTGlzdC5tYXAgKGdldF9tZXRob2RfbGFiZWwgdGFibGUpIHZpcnRfbWV0aHMgaW5cbiAgbGV0IGNvbmNyX21ldGhfbGFicyA9IExpc3QubWFwIChnZXRfbWV0aG9kX2xhYmVsIHRhYmxlKSBjb25jcl9tZXRocyBpblxuICB0YWJsZS5wcmV2aW91c19zdGF0ZXMgPC1cbiAgICAgKHRhYmxlLm1ldGhvZHNfYnlfbmFtZSwgdGFibGUubWV0aG9kc19ieV9sYWJlbCwgdGFibGUuaGlkZGVuX21ldGhzLFxuICAgICAgdGFibGUudmFycywgdmlydF9tZXRoX2xhYnMsIHZhcnMpXG4gICAgIDo6IHRhYmxlLnByZXZpb3VzX3N0YXRlcztcbiAgdGFibGUudmFycyA8LVxuICAgIFZhcnMuZm9sZFxuICAgICAgKGZ1biBsYWIgaW5mbyB0dmFycyAtPlxuICAgICAgICBpZiBMaXN0Lm1lbSBsYWIgdmFycyB0aGVuIFZhcnMuYWRkIGxhYiBpbmZvIHR2YXJzIGVsc2UgdHZhcnMpXG4gICAgICB0YWJsZS52YXJzIFZhcnMuZW1wdHk7XG4gIGxldCBieV9uYW1lID0gcmVmIE1ldGhzLmVtcHR5IGluXG4gIGxldCBieV9sYWJlbCA9IHJlZiBMYWJzLmVtcHR5IGluXG4gIExpc3QuaXRlcjJcbiAgICAoZnVuIG1ldCBsYWJlbCAtPlxuICAgICAgIGJ5X25hbWUgOj0gTWV0aHMuYWRkIG1ldCBsYWJlbCAhYnlfbmFtZTtcbiAgICAgICBieV9sYWJlbCA6PVxuICAgICAgICAgIExhYnMuYWRkIGxhYmVsXG4gICAgICAgICAgICAodHJ5IExhYnMuZmluZCBsYWJlbCB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIHdpdGggTm90X2ZvdW5kIC0+IHRydWUpXG4gICAgICAgICAgICAhYnlfbGFiZWwpXG4gICAgY29uY3JfbWV0aHMgY29uY3JfbWV0aF9sYWJzO1xuICBMaXN0Lml0ZXIyXG4gICAgKGZ1biBtZXQgbGFiZWwgLT5cbiAgICAgICBieV9uYW1lIDo9IE1ldGhzLmFkZCBtZXQgbGFiZWwgIWJ5X25hbWU7XG4gICAgICAgYnlfbGFiZWwgOj0gTGFicy5hZGQgbGFiZWwgZmFsc2UgIWJ5X2xhYmVsKVxuICAgIHZpcnRfbWV0aHMgdmlydF9tZXRoX2xhYnM7XG4gIHRhYmxlLm1ldGhvZHNfYnlfbmFtZSA8LSAhYnlfbmFtZTtcbiAgdGFibGUubWV0aG9kc19ieV9sYWJlbCA8LSAhYnlfbGFiZWw7XG4gIHRhYmxlLmhpZGRlbl9tZXRocyA8LVxuICAgICBMaXN0LmZvbGRfcmlnaHRcbiAgICAgICAoZnVuICgobGFiLCBfKSBhcyBtZXQpIGhtIC0+XG4gICAgICAgICAgaWYgTGlzdC5tZW0gbGFiIHZpcnRfbWV0aF9sYWJzIHRoZW4gaG0gZWxzZSBtZXQ6OmhtKVxuICAgICAgIHRhYmxlLmhpZGRlbl9tZXRoc1xuICAgICAgIFtdXG5cbmxldCB3aWRlbiB0YWJsZSA9XG4gIGxldCAoYnlfbmFtZSwgYnlfbGFiZWwsIHNhdmVkX2hpZGRlbl9tZXRocywgc2F2ZWRfdmFycywgdmlydF9tZXRocywgdmFycykgPVxuICAgIExpc3QuaGQgdGFibGUucHJldmlvdXNfc3RhdGVzXG4gIGluXG4gIHRhYmxlLnByZXZpb3VzX3N0YXRlcyA8LSBMaXN0LnRsIHRhYmxlLnByZXZpb3VzX3N0YXRlcztcbiAgdGFibGUudmFycyA8LVxuICAgICBMaXN0LmZvbGRfbGVmdFxuICAgICAgIChmdW4gcyB2IC0+IFZhcnMuYWRkIHYgKFZhcnMuZmluZCB2IHRhYmxlLnZhcnMpIHMpXG4gICAgICAgc2F2ZWRfdmFycyB2YXJzO1xuICB0YWJsZS5tZXRob2RzX2J5X25hbWUgPC0gYnlfbmFtZTtcbiAgdGFibGUubWV0aG9kc19ieV9sYWJlbCA8LSBieV9sYWJlbDtcbiAgdGFibGUuaGlkZGVuX21ldGhzIDwtXG4gICAgIExpc3QuZm9sZF9yaWdodFxuICAgICAgIChmdW4gKChsYWIsIF8pIGFzIG1ldCkgaG0gLT5cbiAgICAgICAgICBpZiBMaXN0Lm1lbSBsYWIgdmlydF9tZXRocyB0aGVuIGhtIGVsc2UgbWV0OjpobSlcbiAgICAgICB0YWJsZS5oaWRkZW5fbWV0aHNcbiAgICAgICBzYXZlZF9oaWRkZW5fbWV0aHNcblxubGV0IG5ld19zbG90IHRhYmxlID1cbiAgbGV0IGluZGV4ID0gdGFibGUuc2l6ZSBpblxuICB0YWJsZS5zaXplIDwtIGluZGV4ICsgMTtcbiAgaW5kZXhcblxubGV0IG5ld192YXJpYWJsZSB0YWJsZSBuYW1lID1cbiAgdHJ5IFZhcnMuZmluZCBuYW1lIHRhYmxlLnZhcnNcbiAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICBsZXQgaW5kZXggPSBuZXdfc2xvdCB0YWJsZSBpblxuICAgIGlmIG5hbWUgPD4gXCJcIiB0aGVuIHRhYmxlLnZhcnMgPC0gVmFycy5hZGQgbmFtZSBpbmRleCB0YWJsZS52YXJzO1xuICAgIGluZGV4XG5cbmxldCB0b19hcnJheSBhcnIgPVxuICBpZiBhcnIgPSBPYmoubWFnaWMgMCB0aGVuIFt8fF0gZWxzZSBhcnJcblxubGV0IG5ld19tZXRob2RzX3ZhcmlhYmxlcyB0YWJsZSBtZXRocyB2YWxzID1cbiAgbGV0IG1ldGhzID0gdG9fYXJyYXkgbWV0aHMgaW5cbiAgbGV0IG5tZXRocyA9IEFycmF5Lmxlbmd0aCBtZXRocyBhbmQgbnZhbHMgPSBBcnJheS5sZW5ndGggdmFscyBpblxuICBsZXQgcmVzID0gQXJyYXkubWFrZSAobm1ldGhzICsgbnZhbHMpIDAgaW5cbiAgZm9yIGkgPSAwIHRvIG5tZXRocyAtIDEgZG9cbiAgICByZXMuKGkpIDwtIGdldF9tZXRob2RfbGFiZWwgdGFibGUgbWV0aHMuKGkpXG4gIGRvbmU7XG4gIGZvciBpID0gMCB0byBudmFscyAtIDEgZG9cbiAgICByZXMuKGkrbm1ldGhzKSA8LSBuZXdfdmFyaWFibGUgdGFibGUgdmFscy4oaSlcbiAgZG9uZTtcbiAgcmVzXG5cbmxldCBnZXRfdmFyaWFibGUgdGFibGUgbmFtZSA9XG4gIHRyeSBWYXJzLmZpbmQgbmFtZSB0YWJsZS52YXJzIHdpdGggTm90X2ZvdW5kIC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgZ2V0X3ZhcmlhYmxlcyB0YWJsZSBuYW1lcyA9XG4gIEFycmF5Lm1hcCAoZ2V0X3ZhcmlhYmxlIHRhYmxlKSBuYW1lc1xuXG5sZXQgYWRkX2luaXRpYWxpemVyIHRhYmxlIGYgPVxuICB0YWJsZS5pbml0aWFsaXplcnMgPC0gZjo6dGFibGUuaW5pdGlhbGl6ZXJzXG5cbigqXG5tb2R1bGUgS2V5cyA9XG4gIE1hcC5NYWtlKHN0cnVjdCB0eXBlIHQgPSB0YWcgYXJyYXkgbGV0IGNvbXBhcmUgKHg6dCkgeSA9IGNvbXBhcmUgeCB5IGVuZClcbmxldCBrZXlfbWFwID0gcmVmIEtleXMuZW1wdHlcbmxldCBnZXRfa2V5IHRhZ3MgOiBpdGVtID1cbiAgdHJ5IG1hZ2ljIChLZXlzLmZpbmQgdGFncyAha2V5X21hcCA6IHRhZyBhcnJheSlcbiAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICBrZXlfbWFwIDo9IEtleXMuYWRkIHRhZ3MgdGFncyAha2V5X21hcDtcbiAgICBtYWdpYyB0YWdzXG4qKVxuXG5sZXQgY3JlYXRlX3RhYmxlIHB1YmxpY19tZXRob2RzID1cbiAgaWYgcHVibGljX21ldGhvZHMgPT0gbWFnaWMgMCB0aGVuIG5ld190YWJsZSBbfHxdIGVsc2VcbiAgKCogW3B1YmxpY19tZXRob2RzXSBtdXN0IGJlIGluIGFzY2VuZGluZyBvcmRlciBmb3IgYnl0ZWNvZGUgKilcbiAgbGV0IHRhZ3MgPSBBcnJheS5tYXAgcHVibGljX21ldGhvZF9sYWJlbCBwdWJsaWNfbWV0aG9kcyBpblxuICBsZXQgdGFibGUgPSBuZXdfdGFibGUgdGFncyBpblxuICBBcnJheS5pdGVyaVxuICAgIChmdW4gaSBtZXQgLT5cbiAgICAgIGxldCBsYWIgPSBpKjIrMiBpblxuICAgICAgdGFibGUubWV0aG9kc19ieV9uYW1lICA8LSBNZXRocy5hZGQgbWV0IGxhYiB0YWJsZS5tZXRob2RzX2J5X25hbWU7XG4gICAgICB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIDwtIExhYnMuYWRkIGxhYiB0cnVlIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwpXG4gICAgcHVibGljX21ldGhvZHM7XG4gIHRhYmxlXG5cbmxldCBpbml0X2NsYXNzIHRhYmxlID1cbiAgaW5zdF92YXJfY291bnQgOj0gIWluc3RfdmFyX2NvdW50ICsgdGFibGUuc2l6ZSAtIDE7XG4gIHRhYmxlLmluaXRpYWxpemVycyA8LSBMaXN0LnJldiB0YWJsZS5pbml0aWFsaXplcnM7XG4gIHJlc2l6ZSB0YWJsZSAoMyArIG1hZ2ljIHRhYmxlLm1ldGhvZHMuKDEpICogMTYgLyBTeXMud29yZF9zaXplKVxuXG5sZXQgaW5oZXJpdHMgY2xhIHZhbHMgdmlydF9tZXRocyBjb25jcl9tZXRocyAoXywgc3VwZXIsIF8sIGVudikgdG9wID1cbiAgbmFycm93IGNsYSB2YWxzIHZpcnRfbWV0aHMgY29uY3JfbWV0aHM7XG4gIGxldCBpbml0ID1cbiAgICBpZiB0b3AgdGhlbiBzdXBlciBjbGEgZW52IGVsc2UgT2JqLnJlcHIgKHN1cGVyIGNsYSkgaW5cbiAgd2lkZW4gY2xhO1xuICBBcnJheS5jb25jYXRcbiAgICBbW3wgcmVwciBpbml0IHxdO1xuICAgICBtYWdpYyAoQXJyYXkubWFwIChnZXRfdmFyaWFibGUgY2xhKSAodG9fYXJyYXkgdmFscykgOiBpbnQgYXJyYXkpO1xuICAgICBBcnJheS5tYXBcbiAgICAgICAoZnVuIG5tIC0+IHJlcHIgKGdldF9tZXRob2QgY2xhIChnZXRfbWV0aG9kX2xhYmVsIGNsYSBubSkgOiBjbG9zdXJlKSlcbiAgICAgICAodG9fYXJyYXkgY29uY3JfbWV0aHMpIF1cblxubGV0IG1ha2VfY2xhc3MgcHViX21ldGhzIGNsYXNzX2luaXQgPVxuICBsZXQgdGFibGUgPSBjcmVhdGVfdGFibGUgcHViX21ldGhzIGluXG4gIGxldCBlbnZfaW5pdCA9IGNsYXNzX2luaXQgdGFibGUgaW5cbiAgaW5pdF9jbGFzcyB0YWJsZTtcbiAgKGVudl9pbml0IChPYmoucmVwciAwKSwgY2xhc3NfaW5pdCwgZW52X2luaXQsIE9iai5yZXByIDApXG5cbnR5cGUgaW5pdF90YWJsZSA9IHsgbXV0YWJsZSBlbnZfaW5pdDogdDsgbXV0YWJsZSBjbGFzc19pbml0OiB0YWJsZSAtPiB0IH1cbltAQHdhcm5pbmcgXCItdW51c2VkLWZpZWxkXCJdXG5cbmxldCBtYWtlX2NsYXNzX3N0b3JlIHB1Yl9tZXRocyBjbGFzc19pbml0IGluaXRfdGFibGUgPVxuICBsZXQgdGFibGUgPSBjcmVhdGVfdGFibGUgcHViX21ldGhzIGluXG4gIGxldCBlbnZfaW5pdCA9IGNsYXNzX2luaXQgdGFibGUgaW5cbiAgaW5pdF9jbGFzcyB0YWJsZTtcbiAgaW5pdF90YWJsZS5jbGFzc19pbml0IDwtIGNsYXNzX2luaXQ7XG4gIGluaXRfdGFibGUuZW52X2luaXQgPC0gZW52X2luaXRcblxubGV0IGR1bW15X2NsYXNzIGxvYyA9XG4gIGxldCB1bmRlZiA9IGZ1biBfIC0+IHJhaXNlIChVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZSBsb2MpIGluXG4gIChPYmoubWFnaWMgdW5kZWYsIHVuZGVmLCB1bmRlZiwgT2JqLnJlcHIgMClcblxuKCoqKiogT2JqZWN0cyAqKioqKVxuXG5sZXQgY3JlYXRlX29iamVjdCB0YWJsZSA9XG4gICgqIFhYWCBBcHBlbCBkZSBbb2JqX2Jsb2NrXSB8IENhbGwgdG8gW29ial9ibG9ja10gICopXG4gIGxldCBvYmogPSBPYmoubmV3X2Jsb2NrIE9iai5vYmplY3RfdGFnIHRhYmxlLnNpemUgaW5cbiAgKCogWFhYIEFwcGVsIGRlIFtjYW1sX21vZGlmeV0gfCBDYWxsIHRvIFtjYW1sX21vZGlmeV0gKilcbiAgT2JqLnNldF9maWVsZCBvYmogMCAoT2JqLnJlcHIgdGFibGUubWV0aG9kcyk7XG4gIE9iai5vYmogKHNldF9pZCBvYmopXG5cbmxldCBjcmVhdGVfb2JqZWN0X29wdCBvYmpfMCB0YWJsZSA9XG4gIGlmIChPYmoubWFnaWMgb2JqXzAgOiBib29sKSB0aGVuIG9ial8wIGVsc2UgYmVnaW5cbiAgICAoKiBYWFggQXBwZWwgZGUgW29ial9ibG9ja10gfCBDYWxsIHRvIFtvYmpfYmxvY2tdICAqKVxuICAgIGxldCBvYmogPSBPYmoubmV3X2Jsb2NrIE9iai5vYmplY3RfdGFnIHRhYmxlLnNpemUgaW5cbiAgICAoKiBYWFggQXBwZWwgZGUgW2NhbWxfbW9kaWZ5XSB8IENhbGwgdG8gW2NhbWxfbW9kaWZ5XSAqKVxuICAgIE9iai5zZXRfZmllbGQgb2JqIDAgKE9iai5yZXByIHRhYmxlLm1ldGhvZHMpO1xuICAgIE9iai5vYmogKHNldF9pZCBvYmopXG4gIGVuZFxuXG5sZXQgcmVjIGl0ZXJfZiBvYmogPVxuICBmdW5jdGlvblxuICAgIFtdICAgLT4gKClcbiAgfCBmOjpsIC0+IGYgb2JqOyBpdGVyX2Ygb2JqIGxcblxubGV0IHJ1bl9pbml0aWFsaXplcnMgb2JqIHRhYmxlID1cbiAgbGV0IGluaXRzID0gdGFibGUuaW5pdGlhbGl6ZXJzIGluXG4gIGlmIGluaXRzIDw+IFtdIHRoZW5cbiAgICBpdGVyX2Ygb2JqIGluaXRzXG5cbmxldCBydW5faW5pdGlhbGl6ZXJzX29wdCBvYmpfMCBvYmogdGFibGUgPVxuICBpZiAoT2JqLm1hZ2ljIG9ial8wIDogYm9vbCkgdGhlbiBvYmogZWxzZSBiZWdpblxuICAgIGxldCBpbml0cyA9IHRhYmxlLmluaXRpYWxpemVycyBpblxuICAgIGlmIGluaXRzIDw+IFtdIHRoZW4gaXRlcl9mIG9iaiBpbml0cztcbiAgICBvYmpcbiAgZW5kXG5cbmxldCBjcmVhdGVfb2JqZWN0X2FuZF9ydW5faW5pdGlhbGl6ZXJzIG9ial8wIHRhYmxlID1cbiAgaWYgKE9iai5tYWdpYyBvYmpfMCA6IGJvb2wpIHRoZW4gb2JqXzAgZWxzZSBiZWdpblxuICAgIGxldCBvYmogPSBjcmVhdGVfb2JqZWN0IHRhYmxlIGluXG4gICAgcnVuX2luaXRpYWxpemVycyBvYmogdGFibGU7XG4gICAgb2JqXG4gIGVuZFxuXG4oKiBFcXVpdmFsZW50IHByaW1pdGl2ZSBiZWxvd1xubGV0IHNlbmRzZWxmIG9iaiBsYWIgPVxuICAobWFnaWMgb2JqIDogKG9iaiAtPiB0KSBhcnJheSBhcnJheSkuKDApLihsYWIpIG9ialxuKilcbmV4dGVybmFsIHNlbmQgOiBvYmogLT4gdGFnIC0+ICdhID0gXCIlc2VuZFwiXG5leHRlcm5hbCBzZW5kY2FjaGUgOiBvYmogLT4gdGFnIC0+IHQgLT4gaW50IC0+ICdhID0gXCIlc2VuZGNhY2hlXCJcbmV4dGVybmFsIHNlbmRzZWxmIDogb2JqIC0+IGxhYmVsIC0+ICdhID0gXCIlc2VuZHNlbGZcIlxuZXh0ZXJuYWwgZ2V0X3B1YmxpY19tZXRob2QgOiBvYmogLT4gdGFnIC0+IGNsb3N1cmVcbiAgICA9IFwiY2FtbF9nZXRfcHVibGljX21ldGhvZFwiIFtAQG5vYWxsb2NdXG5cbigqKioqIHRhYmxlIGNvbGxlY3Rpb24gYWNjZXNzICoqKiopXG5cbnR5cGUgdGFibGVzID1cbiAgfCBFbXB0eVxuICB8IENvbnMgb2Yge2tleSA6IGNsb3N1cmU7IG11dGFibGUgZGF0YTogdGFibGVzOyBtdXRhYmxlIG5leHQ6IHRhYmxlc31cblxubGV0IHNldF9kYXRhIHRhYmxlcyB2ID0gbWF0Y2ggdGFibGVzIHdpdGhcbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMuZGF0YSA8LSB2XG5sZXQgc2V0X25leHQgdGFibGVzIHYgPSBtYXRjaCB0YWJsZXMgd2l0aFxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5uZXh0IDwtIHZcbmxldCBnZXRfa2V5ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMua2V5XG5sZXQgZ2V0X2RhdGEgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5kYXRhXG5sZXQgZ2V0X25leHQgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5uZXh0XG5cbmxldCBidWlsZF9wYXRoIG4ga2V5cyB0YWJsZXMgPVxuICBsZXQgcmVzID0gQ29ucyB7a2V5ID0gT2JqLm1hZ2ljIDA7IGRhdGEgPSBFbXB0eTsgbmV4dCA9IEVtcHR5fSBpblxuICBsZXQgciA9IHJlZiByZXMgaW5cbiAgZm9yIGkgPSAwIHRvIG4gZG9cbiAgICByIDo9IENvbnMge2tleSA9IGtleXMuKGkpOyBkYXRhID0gIXI7IG5leHQgPSBFbXB0eX1cbiAgZG9uZTtcbiAgc2V0X2RhdGEgdGFibGVzICFyO1xuICByZXNcblxubGV0IHJlYyBsb29rdXBfa2V5cyBpIGtleXMgdGFibGVzID1cbiAgaWYgaSA8IDAgdGhlbiB0YWJsZXMgZWxzZVxuICBsZXQga2V5ID0ga2V5cy4oaSkgaW5cbiAgbGV0IHJlYyBsb29rdXBfa2V5ICh0YWJsZXM6dGFibGVzKSA9XG4gICAgaWYgZ2V0X2tleSB0YWJsZXMgPT0ga2V5IHRoZW5cbiAgICAgIG1hdGNoIGdldF9kYXRhIHRhYmxlcyB3aXRoXG4gICAgICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICAgICAgfCBDb25zIF8gYXMgdGFibGVzX2RhdGEgLT5cbiAgICAgICAgICBsb29rdXBfa2V5cyAoaS0xKSBrZXlzIHRhYmxlc19kYXRhXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggZ2V0X25leHQgdGFibGVzIHdpdGhcbiAgICAgIHwgQ29ucyBfIGFzIG5leHQgLT4gbG9va3VwX2tleSBuZXh0XG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgbGV0IG5leHQgOiB0YWJsZXMgPSBDb25zIHtrZXk7IGRhdGEgPSBFbXB0eTsgbmV4dCA9IEVtcHR5fSBpblxuICAgICAgICAgIHNldF9uZXh0IHRhYmxlcyBuZXh0O1xuICAgICAgICAgIGJ1aWxkX3BhdGggKGktMSkga2V5cyBuZXh0XG4gIGluXG4gIGxvb2t1cF9rZXkgdGFibGVzXG5cbmxldCBsb29rdXBfdGFibGVzIHJvb3Qga2V5cyA9XG4gIG1hdGNoIGdldF9kYXRhIHJvb3Qgd2l0aFxuICB8IENvbnMgXyBhcyByb290X2RhdGEgLT5cbiAgICBsb29rdXBfa2V5cyAoQXJyYXkubGVuZ3RoIGtleXMgLSAxKSBrZXlzIHJvb3RfZGF0YVxuICB8IEVtcHR5IC0+XG4gICAgYnVpbGRfcGF0aCAoQXJyYXkubGVuZ3RoIGtleXMgLSAxKSBrZXlzIHJvb3RcblxuKCoqKiogYnVpbHRpbiBtZXRob2RzICoqKiopXG5cbmxldCBnZXRfY29uc3QgeCA9IHJldCAoZnVuIF9vYmogLT4geClcbmxldCBnZXRfdmFyIG4gICA9IHJldCAoZnVuIG9iaiAtPiBBcnJheS51bnNhZmVfZ2V0IG9iaiBuKVxubGV0IGdldF9lbnYgZSBuID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbilcbmxldCBnZXRfbWV0aCBuICA9IHJldCAoZnVuIG9iaiAtPiBzZW5kc2VsZiBvYmogbilcbmxldCBzZXRfdmFyIG4gICA9IHJldCAoZnVuIG9iaiB4IC0+IEFycmF5LnVuc2FmZV9zZXQgb2JqIG4geClcbmxldCBhcHBfY29uc3QgZiB4ID0gcmV0IChmdW4gX29iaiAtPiBmIHgpXG5sZXQgYXBwX3ZhciBmIG4gICA9IHJldCAoZnVuIG9iaiAtPiBmIChBcnJheS51bnNhZmVfZ2V0IG9iaiBuKSlcbmxldCBhcHBfZW52IGYgZSBuID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgZiAoQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbikpXG5sZXQgYXBwX21ldGggZiBuICA9IHJldCAoZnVuIG9iaiAtPiBmIChzZW5kc2VsZiBvYmogbikpXG5sZXQgYXBwX2NvbnN0X2NvbnN0IGYgeCB5ID0gcmV0IChmdW4gX29iaiAtPiBmIHggeSlcbmxldCBhcHBfY29uc3RfdmFyIGYgeCBuICAgPSByZXQgKGZ1biBvYmogLT4gZiB4IChBcnJheS51bnNhZmVfZ2V0IG9iaiBuKSlcbmxldCBhcHBfY29uc3RfbWV0aCBmIHggbiA9IHJldCAoZnVuIG9iaiAtPiBmIHggKHNlbmRzZWxmIG9iaiBuKSlcbmxldCBhcHBfdmFyX2NvbnN0IGYgbiB4ID0gcmV0IChmdW4gb2JqIC0+IGYgKEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pIHgpXG5sZXQgYXBwX21ldGhfY29uc3QgZiBuIHggPSByZXQgKGZ1biBvYmogLT4gZiAoc2VuZHNlbGYgb2JqIG4pIHgpXG5sZXQgYXBwX2NvbnN0X2VudiBmIHggZSBuID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgZiB4IChBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKSlcbmxldCBhcHBfZW52X2NvbnN0IGYgZSBuIHggPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBmIChBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKSB4KVxubGV0IG1ldGhfYXBwX2NvbnN0IG4geCA9IHJldCAoZnVuIG9iaiAtPiAoc2VuZHNlbGYgb2JqIG4gOiBfIC0+IF8pIHgpXG5sZXQgbWV0aF9hcHBfdmFyIG4gbSA9XG4gIHJldCAoZnVuIG9iaiAtPiAoc2VuZHNlbGYgb2JqIG4gOiBfIC0+IF8pIChBcnJheS51bnNhZmVfZ2V0IG9iaiBtKSlcbmxldCBtZXRoX2FwcF9lbnYgbiBlIG0gPVxuICByZXQgKGZ1biBvYmogLT4gKHNlbmRzZWxmIG9iaiBuIDogXyAtPiBfKVxuICAgICAgKEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG0pKVxubGV0IG1ldGhfYXBwX21ldGggbiBtID1cbiAgcmV0IChmdW4gb2JqIC0+IChzZW5kc2VsZiBvYmogbiA6IF8gLT4gXykgKHNlbmRzZWxmIG9iaiBtKSlcbmxldCBzZW5kX2NvbnN0IG0geCBjID1cbiAgcmV0IChmdW4gb2JqIC0+IHNlbmRjYWNoZSB4IG0gKEFycmF5LnVuc2FmZV9nZXQgb2JqIDApIGMpXG5sZXQgc2VuZF92YXIgbSBuIGMgPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBzZW5kY2FjaGUgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogbikgOiBvYmopIG1cbiAgICAgIChBcnJheS51bnNhZmVfZ2V0IG9iaiAwKSBjKVxubGV0IHNlbmRfZW52IG0gZSBuIGMgPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBzZW5kY2FjaGVcbiAgICAgIChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXRcbiAgICAgICAgICAgICAgICAgICAgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pIDogb2JqKVxuICAgICAgbSAoQXJyYXkudW5zYWZlX2dldCBvYmogMCkgYylcbmxldCBzZW5kX21ldGggbSBuIGMgPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBzZW5kY2FjaGUgKHNlbmRzZWxmIG9iaiBuKSBtIChBcnJheS51bnNhZmVfZ2V0IG9iaiAwKSBjKVxubGV0IG5ld19jYWNoZSB0YWJsZSA9XG4gIGxldCBuID0gbmV3X21ldGhvZCB0YWJsZSBpblxuICBsZXQgbiA9XG4gICAgaWYgbiBtb2QgMiA9IDAgfHwgbiA+IDIgKyBtYWdpYyB0YWJsZS5tZXRob2RzLigxKSAqIDE2IC8gU3lzLndvcmRfc2l6ZVxuICAgIHRoZW4gbiBlbHNlIG5ld19tZXRob2QgdGFibGVcbiAgaW5cbiAgdGFibGUubWV0aG9kcy4obikgPC0gT2JqLm1hZ2ljIDA7XG4gIG5cblxudHlwZSBpbXBsID1cbiAgICBHZXRDb25zdFxuICB8IEdldFZhclxuICB8IEdldEVudlxuICB8IEdldE1ldGhcbiAgfCBTZXRWYXJcbiAgfCBBcHBDb25zdFxuICB8IEFwcFZhclxuICB8IEFwcEVudlxuICB8IEFwcE1ldGhcbiAgfCBBcHBDb25zdENvbnN0XG4gIHwgQXBwQ29uc3RWYXJcbiAgfCBBcHBDb25zdEVudlxuICB8IEFwcENvbnN0TWV0aFxuICB8IEFwcFZhckNvbnN0XG4gIHwgQXBwRW52Q29uc3RcbiAgfCBBcHBNZXRoQ29uc3RcbiAgfCBNZXRoQXBwQ29uc3RcbiAgfCBNZXRoQXBwVmFyXG4gIHwgTWV0aEFwcEVudlxuICB8IE1ldGhBcHBNZXRoXG4gIHwgU2VuZENvbnN0XG4gIHwgU2VuZFZhclxuICB8IFNlbmRFbnZcbiAgfCBTZW5kTWV0aFxuICB8IENsb3N1cmUgb2YgY2xvc3VyZVxuXG5sZXQgbWV0aG9kX2ltcGwgdGFibGUgaSBhcnIgPVxuICBsZXQgbmV4dCAoKSA9IGluY3IgaTsgbWFnaWMgYXJyLighaSkgaW5cbiAgbWF0Y2ggbmV4dCgpIHdpdGhcbiAgICBHZXRDb25zdCAtPiBsZXQgeCA6IHQgPSBuZXh0KCkgaW4gZ2V0X2NvbnN0IHhcbiAgfCBHZXRWYXIgICAtPiBsZXQgbiA9IG5leHQoKSBpbiBnZXRfdmFyIG5cbiAgfCBHZXRFbnYgICAtPiBsZXQgZSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpbiBnZXRfZW52IGUgblxuICB8IEdldE1ldGggIC0+IGxldCBuID0gbmV4dCgpIGluIGdldF9tZXRoIG5cbiAgfCBTZXRWYXIgICAtPiBsZXQgbiA9IG5leHQoKSBpbiBzZXRfdmFyIG5cbiAgfCBBcHBDb25zdCAtPiBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBhcHBfY29uc3QgZiB4XG4gIHwgQXBwVmFyICAgLT4gbGV0IGYgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0ICgpIGluIGFwcF92YXIgZiBuXG4gIHwgQXBwRW52ICAgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluICBsZXQgZSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2VudiBmIGUgblxuICB8IEFwcE1ldGggIC0+IGxldCBmID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCAoKSBpbiBhcHBfbWV0aCBmIG5cbiAgfCBBcHBDb25zdENvbnN0IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBsZXQgeSA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X2NvbnN0IGYgeCB5XG4gIHwgQXBwQ29uc3RWYXIgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBhcHBfY29uc3RfdmFyIGYgeCBuXG4gIHwgQXBwQ29uc3RFbnYgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCAoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X2VudiBmIHggZSBuXG4gIHwgQXBwQ29uc3RNZXRoIC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X21ldGggZiB4IG5cbiAgfCBBcHBWYXJDb25zdCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW5cbiAgICAgIGFwcF92YXJfY29uc3QgZiBuIHhcbiAgfCBBcHBFbnZDb25zdCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IGUgPSBuZXh0ICgpIGluIGxldCBuID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluXG4gICAgICBhcHBfZW52X2NvbnN0IGYgZSBuIHhcbiAgfCBBcHBNZXRoQ29uc3QgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluXG4gICAgICBhcHBfbWV0aF9jb25zdCBmIG4geFxuICB8IE1ldGhBcHBDb25zdCAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbWV0aF9hcHBfY29uc3QgbiB4XG4gIHwgTWV0aEFwcFZhciAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IG0gPSBuZXh0KCkgaW4gbWV0aF9hcHBfdmFyIG4gbVxuICB8IE1ldGhBcHBFbnYgLT5cbiAgICAgIGxldCBuID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCgpIGluIGxldCBtID0gbmV4dCgpIGluXG4gICAgICBtZXRoX2FwcF9lbnYgbiBlIG1cbiAgfCBNZXRoQXBwTWV0aCAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IG0gPSBuZXh0KCkgaW4gbWV0aF9hcHBfbWV0aCBuIG1cbiAgfCBTZW5kQ29uc3QgLT5cbiAgICAgIGxldCBtID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIHNlbmRfY29uc3QgbSB4IChuZXdfY2FjaGUgdGFibGUpXG4gIHwgU2VuZFZhciAtPlxuICAgICAgbGV0IG0gPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0ICgpIGluIHNlbmRfdmFyIG0gbiAobmV3X2NhY2hlIHRhYmxlKVxuICB8IFNlbmRFbnYgLT5cbiAgICAgIGxldCBtID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBzZW5kX2VudiBtIGUgbiAobmV3X2NhY2hlIHRhYmxlKVxuICB8IFNlbmRNZXRoIC0+XG4gICAgICBsZXQgbSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQgKCkgaW4gc2VuZF9tZXRoIG0gbiAobmV3X2NhY2hlIHRhYmxlKVxuICB8IENsb3N1cmUgXyBhcyBjbG8gLT4gbWFnaWMgY2xvXG5cbmxldCBzZXRfbWV0aG9kcyB0YWJsZSBtZXRob2RzID1cbiAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBtZXRob2RzIGluIGxldCBpID0gcmVmIDAgaW5cbiAgd2hpbGUgIWkgPCBsZW4gZG9cbiAgICBsZXQgbGFiZWwgPSBtZXRob2RzLighaSkgaW4gbGV0IGNsbyA9IG1ldGhvZF9pbXBsIHRhYmxlIGkgbWV0aG9kcyBpblxuICAgIHNldF9tZXRob2QgdGFibGUgbGFiZWwgY2xvO1xuICAgIGluY3IgaVxuICBkb25lXG5cbigqKioqIFN0YXRpc3RpY3MgKioqKilcblxudHlwZSBzdGF0cyA9XG4gIHsgY2xhc3NlczogaW50OyBtZXRob2RzOiBpbnQ7IGluc3RfdmFyczogaW50OyB9XG5cbmxldCBzdGF0cyAoKSA9XG4gIHsgY2xhc3NlcyA9ICF0YWJsZV9jb3VudDtcbiAgICBtZXRob2RzID0gIW1ldGhvZF9jb3VudDsgaW5zdF92YXJzID0gIWluc3RfdmFyX2NvdW50OyB9XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDA0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgc2hhcGUgPVxuICB8IEZ1bmN0aW9uXG4gIHwgTGF6eVxuICB8IENsYXNzXG4gIHwgTW9kdWxlIG9mIHNoYXBlIGFycmF5XG4gIHwgVmFsdWUgb2YgT2JqLnRcblxubGV0IHJlYyBpbml0X21vZF9maWVsZCBtb2R1IGkgbG9jIHNoYXBlID1cbiAgbGV0IGluaXQgPVxuICAgIG1hdGNoIHNoYXBlIHdpdGhcbiAgICB8IEZ1bmN0aW9uIC0+XG4gICAgICAgbGV0IHJlYyBmbiAoeCA6ICdhKSA9XG4gICAgICAgICBsZXQgZm4nIDogJ2EgLT4gJ2IgPSBPYmoub2JqIChPYmouZmllbGQgbW9kdSBpKSBpblxuICAgICAgICAgaWYgZm4gPT0gZm4nIHRoZW5cbiAgICAgICAgICAgcmFpc2UgKFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlIGxvYylcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgZm4nIHggaW5cbiAgICAgICBPYmoucmVwciBmblxuICAgIHwgTGF6eSAtPlxuICAgICAgIGxldCByZWMgbCA9XG4gICAgICAgICBsYXp5IChcbiAgICAgICAgICAgbGV0IGwnID0gT2JqLm9iaiAoT2JqLmZpZWxkIG1vZHUgaSkgaW5cbiAgICAgICAgICAgaWYgbCA9PSBsJyB0aGVuXG4gICAgICAgICAgICAgcmFpc2UgKFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlIGxvYylcbiAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgIExhenkuZm9yY2UgbCcpIGluXG4gICAgICAgT2JqLnJlcHIgbFxuICAgIHwgQ2xhc3MgLT5cbiAgICAgICBPYmoucmVwciAoQ2FtbGludGVybmFsT08uZHVtbXlfY2xhc3MgbG9jKVxuICAgIHwgTW9kdWxlIGNvbXBzIC0+XG4gICAgICAgT2JqLnJlcHIgKGluaXRfbW9kX2Jsb2NrIGxvYyBjb21wcylcbiAgICB8IFZhbHVlIHYgLT4gdlxuICBpblxuICBPYmouc2V0X2ZpZWxkIG1vZHUgaSBpbml0XG5cbmFuZCBpbml0X21vZF9ibG9jayBsb2MgY29tcHMgPVxuICBsZXQgbGVuZ3RoID0gQXJyYXkubGVuZ3RoIGNvbXBzIGluXG4gIGxldCBtb2R1ID0gT2JqLm5ld19ibG9jayAwIGxlbmd0aCBpblxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIC0gMSBkb1xuICAgIGluaXRfbW9kX2ZpZWxkIG1vZHUgaSBsb2MgY29tcHMuKGkpXG4gIGRvbmU7XG4gIG1vZHVcblxubGV0IGluaXRfbW9kIGxvYyBzaGFwZSA9XG4gIG1hdGNoIHNoYXBlIHdpdGhcbiAgfCBNb2R1bGUgY29tcHMgLT5cbiAgICAgT2JqLnJlcHIgKGluaXRfbW9kX2Jsb2NrIGxvYyBjb21wcylcbiAgfCBfIC0+IGZhaWx3aXRoIFwiQ2FtbGludGVybmFsTW9kLmluaXRfbW9kOiBub3QgYSBtb2R1bGVcIlxuXG5sZXQgcmVjIHVwZGF0ZV9tb2RfZmllbGQgbW9kdSBpIHNoYXBlIG4gPVxuICBtYXRjaCBzaGFwZSB3aXRoXG4gIHwgRnVuY3Rpb24gfCBMYXp5IC0+XG4gICAgIE9iai5zZXRfZmllbGQgbW9kdSBpIG5cbiAgfCBWYWx1ZSBfIC0+XG4gICAgICgpICgqIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IHRoZXJlICopXG4gIHwgQ2xhc3MgLT5cbiAgICAgYXNzZXJ0IChPYmoudGFnIG4gPSAwICYmIE9iai5zaXplIG4gPSA0KTtcbiAgICAgbGV0IGNsID0gT2JqLmZpZWxkIG1vZHUgaSBpblxuICAgICBmb3IgaiA9IDAgdG8gMyBkb1xuICAgICAgIE9iai5zZXRfZmllbGQgY2wgaiAoT2JqLmZpZWxkIG4gailcbiAgICAgZG9uZVxuICB8IE1vZHVsZSBjb21wcyAtPlxuICAgICB1cGRhdGVfbW9kX2Jsb2NrIGNvbXBzIChPYmouZmllbGQgbW9kdSBpKSBuXG5cbmFuZCB1cGRhdGVfbW9kX2Jsb2NrIGNvbXBzIG8gbiA9XG4gIGFzc2VydCAoT2JqLnRhZyBuID0gMCAmJiBPYmouc2l6ZSBuID49IEFycmF5Lmxlbmd0aCBjb21wcyk7XG4gIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggY29tcHMgLSAxIGRvXG4gICAgdXBkYXRlX21vZF9maWVsZCBvIGkgY29tcHMuKGkpIChPYmouZmllbGQgbiBpKVxuICBkb25lXG5cbmxldCB1cGRhdGVfbW9kIHNoYXBlIG8gbiA9XG4gIG1hdGNoIHNoYXBlIHdpdGhcbiAgfCBNb2R1bGUgY29tcHMgLT5cbiAgICAgdXBkYXRlX21vZF9ibG9jayBjb21wcyBvIG5cbiAgfCBfIC0+IGZhaWx3aXRoIFwiQ2FtbGludGVybmFsTW9kLnVwZGF0ZV9tb2Q6IG5vdCBhIG1vZHVsZVwiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTNcIl0gKCogaWdub3JlIGRlcHJlY2F0aW9uIHdhcm5pbmcgYWJvdXQgbW9kdWxlIFN0cmVhbSAqKVxuXG50eXBlIHRva2VuID1cbiAgICBLd2Qgb2Ygc3RyaW5nXG4gIHwgSWRlbnQgb2Ygc3RyaW5nXG4gIHwgSW50IG9mIGludFxuICB8IEZsb2F0IG9mIGZsb2F0XG4gIHwgU3RyaW5nIG9mIHN0cmluZ1xuICB8IENoYXIgb2YgY2hhclxuXG4oKiBUaGUgc3RyaW5nIGJ1ZmZlcmluZyBtYWNoaW5lcnkgKilcblxubGV0IGluaXRpYWxfYnVmZmVyID0gQnl0ZXMuY3JlYXRlIDMyXG5cbmxldCBidWZmZXIgPSByZWYgaW5pdGlhbF9idWZmZXJcbmxldCBidWZwb3MgPSByZWYgMFxuXG5sZXQgcmVzZXRfYnVmZmVyICgpID0gYnVmZmVyIDo9IGluaXRpYWxfYnVmZmVyOyBidWZwb3MgOj0gMFxuXG5sZXQgc3RvcmUgYyA9XG4gIGlmICFidWZwb3MgPj0gQnl0ZXMubGVuZ3RoICFidWZmZXIgdGhlbiBiZWdpblxuICAgIGxldCBuZXdidWZmZXIgPSBCeXRlcy5jcmVhdGUgKDIgKiAhYnVmcG9zKSBpblxuICAgIEJ5dGVzLmJsaXQgIWJ1ZmZlciAwIG5ld2J1ZmZlciAwICFidWZwb3M7XG4gICAgYnVmZmVyIDo9IG5ld2J1ZmZlclxuICBlbmQ7XG4gIEJ5dGVzLnNldCAhYnVmZmVyICFidWZwb3MgYztcbiAgaW5jciBidWZwb3NcblxubGV0IGdldF9zdHJpbmcgKCkgPVxuICBsZXQgcyA9IEJ5dGVzLnN1Yl9zdHJpbmcgIWJ1ZmZlciAwICFidWZwb3MgaW4gYnVmZmVyIDo9IGluaXRpYWxfYnVmZmVyOyBzXG5cbigqIFRoZSBsZXhlciAqKVxuXG5sZXQgbWFrZV9sZXhlciBrZXl3b3JkcyA9XG4gIGxldCBrd2RfdGFibGUgPSBIYXNodGJsLmNyZWF0ZSAxNyBpblxuICBMaXN0Lml0ZXIgKGZ1biBzIC0+IEhhc2h0YmwuYWRkIGt3ZF90YWJsZSBzIChLd2QgcykpIGtleXdvcmRzO1xuICBsZXQgaWRlbnRfb3Jfa2V5d29yZCBpZCA9XG4gICAgdHJ5IEhhc2h0YmwuZmluZCBrd2RfdGFibGUgaWQgd2l0aFxuICAgICAgTm90X2ZvdW5kIC0+IElkZW50IGlkXG4gIGFuZCBrZXl3b3JkX29yX2Vycm9yIGMgPVxuICAgIGxldCBzID0gU3RyaW5nLm1ha2UgMSBjIGluXG4gICAgdHJ5IEhhc2h0YmwuZmluZCBrd2RfdGFibGUgcyB3aXRoXG4gICAgICBOb3RfZm91bmQgLT4gcmFpc2UgKFN0cmVhbS5FcnJvciAoXCJJbGxlZ2FsIGNoYXJhY3RlciBcIiBeIHMpKVxuICBpblxuICBsZXQgcmVjIG5leHRfdG9rZW4gKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJyAnIHwgJ1xcMDEwJyB8ICdcXDAxMycgfCAnXFwwMDknIHwgJ1xcMDI2JyB8ICdcXDAxMicpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbmV4dF90b2tlbiBzdHJtX19cbiAgICB8IFNvbWUgKCdBJy4uJ1onIHwgJ2EnLi4neicgfCAnXycgfCAnXFwxOTInLi4nXFwyNTUnIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSBjOyBpZGVudCBzXG4gICAgfCBTb21lXG4gICAgICAgICgnIScgfCAnJScgfCAnJicgfCAnJCcgfCAnIycgfCAnKycgfCAnLycgfCAnOicgfCAnPCcgfCAnPScgfCAnPicgfFxuICAgICAgICAgJz8nIHwgJ0AnIHwgJ1xcXFwnIHwgJ34nIHwgJ14nIHwgJ3wnIHwgJyonIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSBjOyBpZGVudDIgc1xuICAgIHwgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlIGM7IG51bWJlciBzXG4gICAgfCBTb21lICdcXCcnIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IGMgPVxuICAgICAgICAgIHRyeSBjaGFyIHN0cm1fXyB3aXRoXG4gICAgICAgICAgICBTdHJlYW0uRmFpbHVyZSAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGluXG4gICAgICAgIGJlZ2luIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICAgICAgU29tZSAnXFwnJyAtPiBTdHJlYW0uanVuayBzdHJtX187IFNvbWUgKENoYXIgYylcbiAgICAgICAgfCBfIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgZW5kXG4gICAgfCBTb21lICdcXFwiJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgU29tZSAoU3RyaW5nIChzdHJpbmcgcykpXG4gICAgfCBTb21lICctJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG5lZ19udW1iZXIgc3RybV9fXG4gICAgfCBTb21lICcoJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX2NvbW1lbnQgc3RybV9fXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBTb21lIChrZXl3b3JkX29yX2Vycm9yIGMpXG4gICAgfCBfIC0+IE5vbmVcbiAgYW5kIGlkZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWVcbiAgICAgICAgKCdBJy4uJ1onIHwgJ2EnLi4neicgfCAnXFwxOTInLi4nXFwyNTUnIHwgJzAnLi4nOScgfCAnXycgfCAnXFwnJyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGlkZW50IHNcbiAgICB8IF8gLT4gU29tZSAoaWRlbnRfb3Jfa2V5d29yZCAoZ2V0X3N0cmluZyAoKSkpXG4gIGFuZCBpZGVudDIgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZVxuICAgICAgICAoJyEnIHwgJyUnIHwgJyYnIHwgJyQnIHwgJyMnIHwgJysnIHwgJy0nIHwgJy8nIHwgJzonIHwgJzwnIHwgJz0nIHxcbiAgICAgICAgICc+JyB8ICc/JyB8ICdAJyB8ICdcXFxcJyB8ICd+JyB8ICdeJyB8ICd8JyB8ICcqJyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGlkZW50MiBzXG4gICAgfCBfIC0+IFNvbWUgKGlkZW50X29yX2tleXdvcmQgKGdldF9zdHJpbmcgKCkpKVxuICBhbmQgbmVnX251bWJlciAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgJy0nOyBzdG9yZSBjOyBudW1iZXIgc1xuICAgIHwgXyAtPiBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlICctJzsgaWRlbnQyIHNcbiAgYW5kIG51bWJlciAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IG51bWJlciBzXG4gICAgfCBTb21lICcuJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlICcuJzsgZGVjaW1hbF9wYXJ0IHNcbiAgICB8IFNvbWUgKCdlJyB8ICdFJykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSAnRSc7IGV4cG9uZW50X3BhcnQgc1xuICAgIHwgXyAtPiBTb21lIChJbnQgKGludF9vZl9zdHJpbmcgKGdldF9zdHJpbmcgKCkpKSlcbiAgYW5kIGRlY2ltYWxfcGFydCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGRlY2ltYWxfcGFydCBzXG4gICAgfCBTb21lICgnZScgfCAnRScpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgJ0UnOyBleHBvbmVudF9wYXJ0IHNcbiAgICB8IF8gLT4gU29tZSAoRmxvYXQgKGZsb2F0X29mX3N0cmluZyAoZ2V0X3N0cmluZyAoKSkpKVxuICBhbmQgZXhwb25lbnRfcGFydCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnKycgfCAnLScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBlbmRfZXhwb25lbnRfcGFydCBzXG4gICAgfCBfIC0+IGVuZF9leHBvbmVudF9wYXJ0IHN0cm1fX1xuICBhbmQgZW5kX2V4cG9uZW50X3BhcnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBlbmRfZXhwb25lbnRfcGFydCBzXG4gICAgfCBfIC0+IFNvbWUgKEZsb2F0IChmbG9hdF9vZl9zdHJpbmcgKGdldF9zdHJpbmcgKCkpKSlcbiAgYW5kIHN0cmluZyAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICdcXFwiJyAtPiBTdHJlYW0uanVuayBzdHJtX187IGdldF9zdHJpbmcgKClcbiAgICB8IFNvbWUgJ1xcXFwnIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IGMgPVxuICAgICAgICAgIHRyeSBlc2NhcGUgc3RybV9fIHdpdGhcbiAgICAgICAgICAgIFN0cmVhbS5GYWlsdXJlIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgc3RyaW5nIHNcbiAgICB8IFNvbWUgYyAtPiBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IHN0cmluZyBzXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBjaGFyIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJ1xcXFwnIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgYmVnaW4gdHJ5IGVzY2FwZSBzdHJtX18gd2l0aFxuICAgICAgICAgIFN0cmVhbS5GYWlsdXJlIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgZW5kXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBlc2NhcGUgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnbicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAnXFxuJ1xuICAgIHwgU29tZSAncicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAnXFxyJ1xuICAgIHwgU29tZSAndCcgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAnXFx0J1xuICAgIHwgU29tZSAoJzAnLi4nOScgYXMgYzEpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgYmVnaW4gbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgICAgICBTb21lICgnMCcuLic5JyBhcyBjMikgLT5cbiAgICAgICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICAgICAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMzKSAtPlxuICAgICAgICAgICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgICAgICAgICBDaGFyLmNoclxuICAgICAgICAgICAgICAgICAgKChDaGFyLmNvZGUgYzEgLSA0OCkgKiAxMDAgKyAoQ2hhci5jb2RlIGMyIC0gNDgpICogMTAgK1xuICAgICAgICAgICAgICAgICAgICAgKENoYXIuY29kZSBjMyAtIDQ4KSlcbiAgICAgICAgICAgIHwgXyAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgICAgICBlbmRcbiAgICAgICAgfCBfIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgZW5kXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBtYXliZV9jb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJyonIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gY29tbWVudCBzOyBuZXh0X3Rva2VuIHNcbiAgICB8IF8gLT4gU29tZSAoa2V5d29yZF9vcl9lcnJvciAnKCcpXG4gIGFuZCBjb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJygnIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbWF5YmVfbmVzdGVkX2NvbW1lbnQgc3RybV9fXG4gICAgfCBTb21lICcqJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX2VuZF9jb21tZW50IHN0cm1fX1xuICAgIHwgU29tZSBfIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY29tbWVudCBzdHJtX19cbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIG1heWJlX25lc3RlZF9jb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJyonIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gY29tbWVudCBzOyBjb21tZW50IHNcbiAgICB8IFNvbWUgXyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNvbW1lbnQgc3RybV9fXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBtYXliZV9lbmRfY29tbWVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICcpJyAtPiBTdHJlYW0uanVuayBzdHJtX187ICgpXG4gICAgfCBTb21lICcqJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX2VuZF9jb21tZW50IHN0cm1fX1xuICAgIHwgU29tZSBfIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY29tbWVudCBzdHJtX19cbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgaW5cbiAgZnVuIGlucHV0IC0+IFN0cmVhbS5mcm9tIChmdW4gX2NvdW50IC0+IG5leHRfdG9rZW4gaW5wdXQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTMyXCJdXG5cbm1vZHVsZSB0eXBlIFNlZWRlZFMgPSBzaWdcblxuICB0eXBlIGtleVxuICB0eXBlICEnYSB0XG4gIHZhbCBjcmVhdGUgOiA/cmFuZG9tICgqdGh3YXJ0IHRvb2xzL3N5bmNfc3RkbGliX2RvY3MqKSA6IGJvb2wgLT4gaW50IC0+ICdhIHRcbiAgdmFsIGNsZWFyIDogJ2EgdCAtPiB1bml0XG4gIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICB2YWwgY29weSA6ICdhIHQgLT4gJ2EgdFxuICB2YWwgYWRkIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICB2YWwgcmVtb3ZlIDogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICB2YWwgZmluZCA6ICdhIHQgLT4ga2V5IC0+ICdhXG4gIHZhbCBmaW5kX29wdCA6ICdhIHQgLT4ga2V5IC0+ICdhIG9wdGlvblxuICB2YWwgZmluZF9hbGwgOiAnYSB0IC0+IGtleSAtPiAnYSBsaXN0XG4gIHZhbCByZXBsYWNlIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICB2YWwgbWVtIDogJ2EgdCAtPiBrZXkgLT4gYm9vbFxuICB2YWwgaXRlciA6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGZpbHRlcl9tYXBfaW5wbGFjZSA6IChrZXkgLT4gJ2EgLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+IHVuaXRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgZm9sZCA6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgbGVuZ3RoIDogJ2EgdCAtPiBpbnRcbiAgdmFsIHN0YXRzIDogJ2EgdCAtPiBIYXNodGJsLnN0YXRpc3RpY3NcbiAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCB0b19zZXFfa2V5cyA6IF8gdCAtPiBrZXkgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgdG9fc2VxX3ZhbHVlcyA6ICdhIHQgLT4gJ2EgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgYWRkX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gIHZhbCByZXBsYWNlX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgdmFsIGNsZWFuOiAnYSB0IC0+IHVuaXRcbiAgdmFsIHN0YXRzX2FsaXZlOiAnYSB0IC0+IEhhc2h0Ymwuc3RhdGlzdGljc1xuICAgICgqKiBzYW1lIGFzIHshc3RhdHN9IGJ1dCBvbmx5IGNvdW50IHRoZSBhbGl2ZSBiaW5kaW5ncyAqKVxuZW5kXG5cbm1vZHVsZSB0eXBlIFMgPSBzaWdcblxuICB0eXBlIGtleVxuICB0eXBlICEnYSB0XG4gIHZhbCBjcmVhdGUgOiBpbnQgLT4gJ2EgdFxuICB2YWwgY2xlYXIgOiAnYSB0IC0+IHVuaXRcbiAgdmFsIHJlc2V0IDogJ2EgdCAtPiB1bml0XG4gIHZhbCBjb3B5IDogJ2EgdCAtPiAnYSB0XG4gIHZhbCBhZGQgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gIHZhbCByZW1vdmUgOiAnYSB0IC0+IGtleSAtPiB1bml0XG4gIHZhbCBmaW5kIDogJ2EgdCAtPiBrZXkgLT4gJ2FcbiAgdmFsIGZpbmRfb3B0IDogJ2EgdCAtPiBrZXkgLT4gJ2Egb3B0aW9uXG4gIHZhbCBmaW5kX2FsbCA6ICdhIHQgLT4ga2V5IC0+ICdhIGxpc3RcbiAgdmFsIHJlcGxhY2UgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gIHZhbCBtZW0gOiAnYSB0IC0+IGtleSAtPiBib29sXG4gIHZhbCBpdGVyIDogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlIDogKGtleSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gdW5pdFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBmb2xkIDogKGtleSAtPiAnYSAtPiAnYiAtPiAnYikgLT4gJ2EgdCAtPiAnYiAtPiAnYlxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBsZW5ndGggOiAnYSB0IC0+IGludFxuICB2YWwgc3RhdHMgOiAnYSB0IC0+IEhhc2h0Ymwuc3RhdGlzdGljc1xuICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIHRvX3NlcV9rZXlzIDogXyB0IC0+IGtleSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCB0b19zZXFfdmFsdWVzIDogJ2EgdCAtPiAnYSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBhZGRfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgdmFsIHJlcGxhY2Vfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICB2YWwgY2xlYW46ICdhIHQgLT4gdW5pdFxuICB2YWwgc3RhdHNfYWxpdmU6ICdhIHQgLT4gSGFzaHRibC5zdGF0aXN0aWNzXG4gICAgKCoqIHNhbWUgYXMgeyFzdGF0c30gYnV0IG9ubHkgY291bnQgdGhlIGFsaXZlIGJpbmRpbmdzICopXG5lbmRcblxubW9kdWxlIEdlbkhhc2hUYWJsZSA9IHN0cnVjdFxuXG4gIHR5cGUgZXF1YWwgPVxuICB8IEVUcnVlIHwgRUZhbHNlXG4gIHwgRURlYWQgKCoqIHRoZSBnYXJiYWdlIGNvbGxlY3RvciByZWNsYWltZWQgdGhlIGRhdGEgKilcblxuICBtb2R1bGUgTWFrZVNlZWRlZChIOiBzaWdcbiAgICB0eXBlIHRcbiAgICB0eXBlICdhIGNvbnRhaW5lclxuICAgIHZhbCBjcmVhdGU6IHQgLT4gJ2EgLT4gJ2EgY29udGFpbmVyXG4gICAgdmFsIGhhc2g6IGludCAtPiB0IC0+IGludFxuICAgIHZhbCBlcXVhbDogJ2EgY29udGFpbmVyIC0+IHQgLT4gZXF1YWxcbiAgICB2YWwgZ2V0X2RhdGE6ICdhIGNvbnRhaW5lciAtPiAnYSBvcHRpb25cbiAgICB2YWwgZ2V0X2tleTogJ2EgY29udGFpbmVyIC0+IHQgb3B0aW9uXG4gICAgdmFsIHNldF9rZXlfZGF0YTogJ2EgY29udGFpbmVyIC0+IHQgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCBjaGVja19rZXk6ICdhIGNvbnRhaW5lciAtPiBib29sXG4gIGVuZCkgOiBTZWVkZWRTIHdpdGggdHlwZSBrZXkgPSBILnRcbiAgPSBzdHJ1Y3RcblxuICAgIHR5cGUgJ2EgdCA9XG4gICAgICB7IG11dGFibGUgc2l6ZTogaW50OyAgICAgICAgICAgICAgICAgICgqIG51bWJlciBvZiBlbnRyaWVzICopXG4gICAgICAgIG11dGFibGUgZGF0YTogJ2EgYnVja2V0bGlzdCBhcnJheTsgICgqIHRoZSBidWNrZXRzICopXG4gICAgICAgIHNlZWQ6IGludDsgICAgICAgICAgICAgICAgICAgICAgICAgICgqIGZvciByYW5kb21pemF0aW9uICopXG4gICAgICAgIGluaXRpYWxfc2l6ZTogaW50OyAgICAgICAgICAgICAgICAgICgqIGluaXRpYWwgYXJyYXkgc2l6ZSAqKVxuICAgICAgfVxuXG4gICAgYW5kICdhIGJ1Y2tldGxpc3QgPVxuICAgIHwgRW1wdHlcbiAgICB8IENvbnMgb2YgaW50ICgqIGhhc2ggb2YgdGhlIGtleSAqKSAqICdhIEguY29udGFpbmVyICogJ2EgYnVja2V0bGlzdFxuXG4gICAgKCoqIHRoZSBoYXNoIG9mIHRoZSBrZXkgaXMga2VwdCBpbiBvcmRlciB0byB0ZXN0IHRoZSBlcXVhbGl0eSBvZiB0aGUgaGFzaFxuICAgICAgYmVmb3JlIHRoZSBrZXkuIFNhbWUgcmVhc29uIGFzIGZvciBXZWFrLk1ha2UgKilcblxuICAgIHR5cGUga2V5ID0gSC50XG5cbiAgICBsZXQgcmVjIHBvd2VyXzJfYWJvdmUgeCBuID1cbiAgICAgIGlmIHggPj0gbiB0aGVuIHhcbiAgICAgIGVsc2UgaWYgeCAqIDIgPiBTeXMubWF4X2FycmF5X2xlbmd0aCB0aGVuIHhcbiAgICAgIGVsc2UgcG93ZXJfMl9hYm92ZSAoeCAqIDIpIG5cblxuICAgIGxldCBwcm5nID0gbGF6eSAoUmFuZG9tLlN0YXRlLm1ha2Vfc2VsZl9pbml0KCkpXG5cbiAgICBsZXQgY3JlYXRlID8ocmFuZG9tID0gKEhhc2h0YmwuaXNfcmFuZG9taXplZCAoKSkpIGluaXRpYWxfc2l6ZSA9XG4gICAgICBsZXQgcyA9IHBvd2VyXzJfYWJvdmUgMTYgaW5pdGlhbF9zaXplIGluXG4gICAgICBsZXQgc2VlZCA9IGlmIHJhbmRvbSB0aGVuIFJhbmRvbS5TdGF0ZS5iaXRzIChMYXp5LmZvcmNlIHBybmcpIGVsc2UgMCBpblxuICAgICAgeyBpbml0aWFsX3NpemUgPSBzOyBzaXplID0gMDsgc2VlZCA9IHNlZWQ7IGRhdGEgPSBBcnJheS5tYWtlIHMgRW1wdHkgfVxuXG4gICAgbGV0IGNsZWFyIGggPVxuICAgICAgaC5zaXplIDwtIDA7XG4gICAgICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIGguZGF0YSBpblxuICAgICAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG9cbiAgICAgICAgaC5kYXRhLihpKSA8LSBFbXB0eVxuICAgICAgZG9uZVxuXG4gICAgbGV0IHJlc2V0IGggPVxuICAgICAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBoLmRhdGEgaW5cbiAgICAgIGlmIGxlbiA9IGguaW5pdGlhbF9zaXplIHRoZW5cbiAgICAgICAgY2xlYXIgaFxuICAgICAgZWxzZSBiZWdpblxuICAgICAgICBoLnNpemUgPC0gMDtcbiAgICAgICAgaC5kYXRhIDwtIEFycmF5Lm1ha2UgaC5pbml0aWFsX3NpemUgRW1wdHlcbiAgICAgIGVuZFxuXG4gICAgbGV0IGNvcHkgaCA9IHsgaCB3aXRoIGRhdGEgPSBBcnJheS5jb3B5IGguZGF0YSB9XG5cbiAgICBsZXQga2V5X2luZGV4IGggaGtleSA9XG4gICAgICBoa2V5IGxhbmQgKEFycmF5Lmxlbmd0aCBoLmRhdGEgLSAxKVxuXG4gICAgbGV0IGNsZWFuIGggPVxuICAgICAgbGV0IHJlYyBkb19idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICBFbXB0eVxuICAgICAgICB8IENvbnMoXywgYywgcmVzdCkgd2hlbiBub3QgKEguY2hlY2tfa2V5IGMpIC0+XG4gICAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICAgIGRvX2J1Y2tldCByZXN0XG4gICAgICAgIHwgQ29ucyhoa2V5LCBjLCByZXN0KSAtPlxuICAgICAgICAgICAgQ29ucyhoa2V5LCBjLCBkb19idWNrZXQgcmVzdClcbiAgICAgIGluXG4gICAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgICBkLihpKSA8LSBkb19idWNrZXQgZC4oaSlcbiAgICAgIGRvbmVcblxuICAgICgqKiByZXNpemUgaXMgdGhlIG9ubHkgZnVuY3Rpb24gdG8gZG8gdGhlIGFjdHVhbCBjbGVhbmluZyBvZiBkZWFkIGtleXNcbiAgICAgICAgKHJlbW92ZSBkb2VzIGl0IGp1c3QgYmVjYXVzZSBpdCBjb3VsZCkuXG5cbiAgICAgICAgVGhlIGdvYWwgaXMgdG86XG5cbiAgICAgICAgLSBub3QgcmVzaXplIGluZmluaXRlbHkgd2hlbiB0aGUgYWN0dWFsIG51bWJlciBvZiBhbGl2ZSBrZXlzIGlzXG4gICAgICAgIGJvdW5kZWQgYnV0IGtleXMgYXJlIGNvbnRpbnVvdXNseSBhZGRlZC4gVGhhdCB3b3VsZCBoYXBwZW4gaWZcbiAgICAgICAgdGhpcyBmdW5jdGlvbiBhbHdheXMgcmVzaXplLlxuICAgICAgICAtIG5vdCBjYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgZWFjaCBhZGRpdGlvbiwgdGhhdCB3b3VsZCBoYXBwZW4gaWYgdGhpc1xuICAgICAgICBmdW5jdGlvbiBkb24ndCByZXNpemUgZXZlbiB3aGVuIG9ubHkgb25lIGtleSBpcyBkZWFkLlxuXG4gICAgICAgIFNvIHRoZSBhbGdvcml0aG06XG4gICAgICAgIC0gY2xlYW4gdGhlIGtleXMgYmVmb3JlIHJlc2l6aW5nXG4gICAgICAgIC0gaWYgdGhlIG51bWJlciBvZiByZW1haW5pbmcga2V5cyBpcyBsZXNzIHRoYW4gaGFsZiB0aGUgc2l6ZSBvZiB0aGVcbiAgICAgICAgYXJyYXksIGRvbid0IHJlc2l6ZS5cbiAgICAgICAgLSBpZiBpdCBpcyBtb3JlLCByZXNpemUuXG5cbiAgICAgICAgVGhlIHNlY29uZCBwcm9ibGVtIHJlbWFpbnMgaWYgdGhlIHRhYmxlIHJlYWNoZXMgeyFTeXMubWF4X2FycmF5X2xlbmd0aH0uXG5cbiAgICAqKVxuICAgIGxldCByZXNpemUgaCA9XG4gICAgICBsZXQgb2RhdGEgPSBoLmRhdGEgaW5cbiAgICAgIGxldCBvc2l6ZSA9IEFycmF5Lmxlbmd0aCBvZGF0YSBpblxuICAgICAgbGV0IG5zaXplID0gb3NpemUgKiAyIGluXG4gICAgICBjbGVhbiBoO1xuICAgICAgaWYgbnNpemUgPCBTeXMubWF4X2FycmF5X2xlbmd0aCAmJiBoLnNpemUgPj0gb3NpemUgbHNyIDEgdGhlbiBiZWdpblxuICAgICAgICBsZXQgbmRhdGEgPSBBcnJheS5tYWtlIG5zaXplIEVtcHR5IGluXG4gICAgICAgIGguZGF0YSA8LSBuZGF0YTsgICAgICAgKCogc28gdGhhdCBrZXlfaW5kZXggc2VlcyB0aGUgbmV3IGJ1Y2tldCBjb3VudCAqKVxuICAgICAgICBsZXQgcmVjIGluc2VydF9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICAgICAgRW1wdHkgLT4gKClcbiAgICAgICAgICB8IENvbnMoaGtleSwgZGF0YSwgcmVzdCkgLT5cbiAgICAgICAgICAgICAgaW5zZXJ0X2J1Y2tldCByZXN0OyAoKiBwcmVzZXJ2ZSBvcmlnaW5hbCBvcmRlciBvZiBlbGVtZW50cyAqKVxuICAgICAgICAgICAgICBsZXQgbmlkeCA9IGtleV9pbmRleCBoIGhrZXkgaW5cbiAgICAgICAgICAgICAgbmRhdGEuKG5pZHgpIDwtIENvbnMoaGtleSwgZGF0YSwgbmRhdGEuKG5pZHgpKSBpblxuICAgICAgICBmb3IgaSA9IDAgdG8gb3NpemUgLSAxIGRvXG4gICAgICAgICAgaW5zZXJ0X2J1Y2tldCBvZGF0YS4oaSlcbiAgICAgICAgZG9uZVxuICAgICAgZW5kXG5cbiAgICBsZXQgYWRkIGgga2V5IGluZm8gPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBoa2V5IGluXG4gICAgICBsZXQgY29udGFpbmVyID0gSC5jcmVhdGUga2V5IGluZm8gaW5cbiAgICAgIGxldCBidWNrZXQgPSBDb25zKGhrZXksIGNvbnRhaW5lciwgaC5kYXRhLihpKSkgaW5cbiAgICAgIGguZGF0YS4oaSkgPC0gYnVja2V0O1xuICAgICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGhcblxuICAgIGxldCByZW1vdmUgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IHJlYyByZW1vdmVfYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPiBFbXB0eVxuICAgICAgICB8IENvbnMoaGssIGMsIG5leHQpIHdoZW4gaGtleSA9IGhrIC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICAgIHwgRVRydWUgLT4gaC5zaXplIDwtIGguc2l6ZSAtIDE7IG5leHRcbiAgICAgICAgICAgIHwgRUZhbHNlIC0+IENvbnMoaGssIGMsIHJlbW92ZV9idWNrZXQgbmV4dClcbiAgICAgICAgICAgIHwgRURlYWQgLT5cbiAgICAgICAgICAgICAgICAoKiBUaGUgZGVhZCBrZXkgaXMgYXV0b21hdGljYWxseSByZW1vdmVkLiBJdCBpcyBhY2NlcHRhYmxlXG4gICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGZ1bmN0aW9uIHNpbmNlIGl0IGFscmVhZHkgcmVtb3ZlcyBhIGJpbmRpbmcgKilcbiAgICAgICAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICAgICAgICByZW1vdmVfYnVja2V0IG5leHRcbiAgICAgICAgICAgIGVuZFxuICAgICAgICB8IENvbnMoaGssYyxuZXh0KSAtPiBDb25zKGhrLCBjLCByZW1vdmVfYnVja2V0IG5leHQpIGluXG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGhrZXkgaW5cbiAgICAgIGguZGF0YS4oaSkgPC0gcmVtb3ZlX2J1Y2tldCBoLmRhdGEuKGkpXG5cbiAgICAoKiogeyFmaW5kfSBkb24ndCByZW1vdmUgZGVhZCBrZXlzIGJlY2F1c2UgaXQgd291bGQgYmUgc3VycHJpc2luZyBmb3JcbiAgICAgICAgdGhlIHVzZXIgdGhhdCBhIHJlYWQtb25seSBmdW5jdGlvbiBtdXRhdGVzIHRoZSBzdGF0ZSAoZWcuIGNvbmN1cnJlbnRcbiAgICAgICAgYWNjZXNzKS4gU2FtZSBmb3IgeyFpdGVyfSwgeyFmb2xkfSwgeyFtZW19LlxuICAgICopXG4gICAgbGV0IHJlYyBmaW5kX3JlYyBrZXkgaGtleSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IENvbnMoaGssIGMsIHJlc3QpIHdoZW4gaGtleSA9IGhrICAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgIHwgRVRydWUgLT5cbiAgICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICAoKiBUaGlzIGNhc2UgaXMgbm90IGltcG9zc2libGUgYmVjYXVzZSB0aGUgZ2MgY2FuIHJ1biBiZXR3ZWVuXG4gICAgICAgICAgICAgICAgICAgICAgSC5lcXVhbCBhbmQgSC5nZXRfZGF0YSAqKVxuICAgICAgICAgICAgICAgICAgZmluZF9yZWMga2V5IGhrZXkgcmVzdFxuICAgICAgICAgICAgICB8IFNvbWUgZCAtPiBkXG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICAgIHwgRUZhbHNlIC0+IGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcbiAgICAgICAgICB8IEVEZWFkIC0+XG4gICAgICAgICAgICAgIGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPlxuICAgICAgICAgIGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcblxuICAgIGxldCBmaW5kIGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgICgqIFRPRE8gaW5saW5lIDMgaXRlcmF0aW9ucyAqKVxuICAgICAgZmluZF9yZWMga2V5IGhrZXkgKGguZGF0YS4oa2V5X2luZGV4IGggaGtleSkpXG5cbiAgICBsZXQgcmVjIGZpbmRfcmVjX29wdCBrZXkgaGtleSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSB3aGVuIGhrZXkgPSBoayAgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICB8IEVUcnVlIC0+XG4gICAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgKCogVGhpcyBjYXNlIGlzIG5vdCBpbXBvc3NpYmxlIGJlY2F1c2UgdGhlIGdjIGNhbiBydW4gYmV0d2VlblxuICAgICAgICAgICAgICAgICAgICAgIEguZXF1YWwgYW5kIEguZ2V0X2RhdGEgKilcbiAgICAgICAgICAgICAgICAgIGZpbmRfcmVjX29wdCBrZXkgaGtleSByZXN0XG4gICAgICAgICAgICAgIHwgU29tZSBfIGFzIGQgLT4gZFxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgICB8IEVGYWxzZSAtPiBmaW5kX3JlY19vcHQga2V5IGhrZXkgcmVzdFxuICAgICAgICAgIHwgRURlYWQgLT5cbiAgICAgICAgICAgICAgZmluZF9yZWNfb3B0IGtleSBoa2V5IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPlxuICAgICAgICAgIGZpbmRfcmVjX29wdCBrZXkgaGtleSByZXN0XG5cbiAgICBsZXQgZmluZF9vcHQgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgKCogVE9ETyBpbmxpbmUgMyBpdGVyYXRpb25zICopXG4gICAgICBmaW5kX3JlY19vcHQga2V5IGhrZXkgKGguZGF0YS4oa2V5X2luZGV4IGggaGtleSkpXG5cbiAgICBsZXQgZmluZF9hbGwgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IHJlYyBmaW5kX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IFtdXG4gICAgICB8IENvbnMoaGssIGMsIHJlc3QpIHdoZW4gaGtleSA9IGhrICAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgIHwgRVRydWUgLT4gYmVnaW4gbWF0Y2ggSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICBmaW5kX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgICAgIHwgU29tZSBkIC0+IGQ6OmZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICAgIGVuZFxuICAgICAgICAgIHwgRUZhbHNlIC0+IGZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICB8IEVEZWFkIC0+XG4gICAgICAgICAgICAgIGZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPlxuICAgICAgICAgIGZpbmRfaW5fYnVja2V0IHJlc3QgaW5cbiAgICAgIGZpbmRfaW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGggaGtleSlcblxuXG4gICAgbGV0IHJlcGxhY2UgaCBrZXkgaW5mbyA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgcmVjIHJlcGxhY2VfYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgfCBDb25zKGhrLCBjLCBuZXh0KSB3aGVuIGhrZXkgPSBoayAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgICB8IEVUcnVlIC0+IEguc2V0X2tleV9kYXRhIGMga2V5IGluZm9cbiAgICAgICAgICAgIHwgRUZhbHNlIHwgRURlYWQgLT4gcmVwbGFjZV9idWNrZXQgbmV4dFxuICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgQ29ucyhfLF8sbmV4dCkgLT4gcmVwbGFjZV9idWNrZXQgbmV4dFxuICAgICAgaW5cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGggaGtleSBpblxuICAgICAgbGV0IGwgPSBoLmRhdGEuKGkpIGluXG4gICAgICB0cnlcbiAgICAgICAgcmVwbGFjZV9idWNrZXQgbFxuICAgICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IEguY3JlYXRlIGtleSBpbmZvIGluXG4gICAgICAgIGguZGF0YS4oaSkgPC0gQ29ucyhoa2V5LCBjb250YWluZXIsIGwpO1xuICAgICAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICAgICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBoXG5cbiAgICBsZXQgbWVtIGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCByZWMgbWVtX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgZmFsc2VcbiAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgd2hlbiBoayA9IGhrZXkgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICB8IEVUcnVlIC0+IHRydWVcbiAgICAgICAgICB8IEVGYWxzZSB8IEVEZWFkIC0+IG1lbV9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgIGVuZFxuICAgICAgfCBDb25zKF9oaywgX2MsIHJlc3QpIC0+IG1lbV9pbl9idWNrZXQgcmVzdCBpblxuICAgICAgbWVtX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGhrZXkpXG5cbiAgICBsZXQgaXRlciBmIGggPVxuICAgICAgbGV0IHJlYyBkb19idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICAoKVxuICAgICAgICB8IENvbnMoXywgYywgcmVzdCkgLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2tleSBjLCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgfCBOb25lLCBfIHwgXywgTm9uZSAtPiAoKVxuICAgICAgICAgICAgfCBTb21lIGssIFNvbWUgZCAtPiBmIGsgZFxuICAgICAgICAgICAgZW5kOyBkb19idWNrZXQgcmVzdCBpblxuICAgICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgICAgZG9fYnVja2V0IGQuKGkpXG4gICAgICBkb25lXG5cbiAgICBsZXQgZm9sZCBmIGggaW5pdCA9XG4gICAgICBsZXQgcmVjIGRvX2J1Y2tldCBiIGFjY3UgPVxuICAgICAgICBtYXRjaCBiIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgICAgYWNjdVxuICAgICAgICB8IENvbnMoXywgYywgcmVzdCkgLT5cbiAgICAgICAgICAgIGxldCBhY2N1ID0gYmVnaW4gbWF0Y2ggSC5nZXRfa2V5IGMsIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSwgXyB8IF8sIE5vbmUgLT4gYWNjdVxuICAgICAgICAgICAgICB8IFNvbWUgaywgU29tZSBkIC0+IGYgayBkIGFjY3VcbiAgICAgICAgICAgIGVuZCBpblxuICAgICAgICAgICAgZG9fYnVja2V0IHJlc3QgYWNjdSAgaW5cbiAgICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgICBsZXQgYWNjdSA9IHJlZiBpbml0IGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICAgIGFjY3UgOj0gZG9fYnVja2V0IGQuKGkpICFhY2N1XG4gICAgICBkb25lO1xuICAgICAgIWFjY3VcblxuICAgIGxldCBmaWx0ZXJfbWFwX2lucGxhY2UgZiBoID1cbiAgICAgIGxldCByZWMgZG9fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICAgRW1wdHlcbiAgICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggSC5nZXRfa2V5IGMsIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUsIF8gfCBfLCBOb25lIC0+XG4gICAgICAgICAgICAgICAgZG9fYnVja2V0IHJlc3RcbiAgICAgICAgICAgIHwgU29tZSBrLCBTb21lIGQgLT5cbiAgICAgICAgICAgICAgICBtYXRjaCBmIGsgZCB3aXRoXG4gICAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICAgIGRvX2J1Y2tldCByZXN0XG4gICAgICAgICAgICAgICAgfCBTb21lIG5ld19kIC0+XG4gICAgICAgICAgICAgICAgICAgIEguc2V0X2tleV9kYXRhIGMgayBuZXdfZDtcbiAgICAgICAgICAgICAgICAgICAgQ29ucyhoaywgYywgZG9fYnVja2V0IHJlc3QpXG4gICAgICBpblxuICAgICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgICAgZC4oaSkgPC0gZG9fYnVja2V0IGQuKGkpXG4gICAgICBkb25lXG5cbiAgICBsZXQgbGVuZ3RoIGggPSBoLnNpemVcblxuICAgIGxldCByZWMgYnVja2V0X2xlbmd0aCBhY2N1ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+IGJ1Y2tldF9sZW5ndGggKGFjY3UgKyAxKSByZXN0XG5cbiAgICBsZXQgc3RhdHMgaCA9XG4gICAgICBsZXQgbWJsID1cbiAgICAgICAgQXJyYXkuZm9sZF9sZWZ0IChmdW4gbSBiIC0+IEludC5tYXggbSAoYnVja2V0X2xlbmd0aCAwIGIpKSAwIGguZGF0YSBpblxuICAgICAgbGV0IGhpc3RvID0gQXJyYXkubWFrZSAobWJsICsgMSkgMCBpblxuICAgICAgQXJyYXkuaXRlclxuICAgICAgICAoZnVuIGIgLT5cbiAgICAgICAgICAgbGV0IGwgPSBidWNrZXRfbGVuZ3RoIDAgYiBpblxuICAgICAgICAgICBoaXN0by4obCkgPC0gaGlzdG8uKGwpICsgMSlcbiAgICAgICAgaC5kYXRhO1xuICAgICAgeyBIYXNodGJsLm51bV9iaW5kaW5ncyA9IGguc2l6ZTtcbiAgICAgICAgbnVtX2J1Y2tldHMgPSBBcnJheS5sZW5ndGggaC5kYXRhO1xuICAgICAgICBtYXhfYnVja2V0X2xlbmd0aCA9IG1ibDtcbiAgICAgICAgYnVja2V0X2hpc3RvZ3JhbSA9IGhpc3RvIH1cblxuICAgIGxldCByZWMgYnVja2V0X2xlbmd0aF9hbGl2ZSBhY2N1ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBDb25zKF8sIGMsIHJlc3QpIHdoZW4gSC5jaGVja19rZXkgYyAtPlxuICAgICAgICAgIGJ1Y2tldF9sZW5ndGhfYWxpdmUgKGFjY3UgKyAxKSByZXN0XG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT4gYnVja2V0X2xlbmd0aF9hbGl2ZSBhY2N1IHJlc3RcblxuICAgIGxldCBzdGF0c19hbGl2ZSBoID1cbiAgICAgIGxldCBzaXplID0gcmVmIDAgaW5cbiAgICAgIGxldCBtYmwgPVxuICAgICAgICBBcnJheS5mb2xkX2xlZnRcbiAgICAgICAgICAoZnVuIG0gYiAtPiBJbnQubWF4IG0gKGJ1Y2tldF9sZW5ndGhfYWxpdmUgMCBiKSkgMCBoLmRhdGFcbiAgICAgIGluXG4gICAgICBsZXQgaGlzdG8gPSBBcnJheS5tYWtlIChtYmwgKyAxKSAwIGluXG4gICAgICBBcnJheS5pdGVyXG4gICAgICAgIChmdW4gYiAtPlxuICAgICAgICAgICBsZXQgbCA9IGJ1Y2tldF9sZW5ndGhfYWxpdmUgMCBiIGluXG4gICAgICAgICAgIHNpemUgOj0gIXNpemUgKyBsO1xuICAgICAgICAgICBoaXN0by4obCkgPC0gaGlzdG8uKGwpICsgMSlcbiAgICAgICAgaC5kYXRhO1xuICAgICAgeyBIYXNodGJsLm51bV9iaW5kaW5ncyA9ICFzaXplO1xuICAgICAgICBudW1fYnVja2V0cyA9IEFycmF5Lmxlbmd0aCBoLmRhdGE7XG4gICAgICAgIG1heF9idWNrZXRfbGVuZ3RoID0gbWJsO1xuICAgICAgICBidWNrZXRfaGlzdG9ncmFtID0gaGlzdG8gfVxuXG4gICAgbGV0IHRvX3NlcSB0YmwgPVxuICAgICAgKCogY2FwdHVyZSBjdXJyZW50IGFycmF5LCBzbyB0aGF0IGV2ZW4gaWYgdGhlIHRhYmxlIGlzIHJlc2l6ZWQgd2VcbiAgICAgICAgIGtlZXAgaXRlcmF0aW5nIG9uIHRoZSBzYW1lIGFycmF5ICopXG4gICAgICBsZXQgdGJsX2RhdGEgPSB0YmwuZGF0YSBpblxuICAgICAgKCogc3RhdGU6IGluZGV4ICogbmV4dCBidWNrZXQgdG8gdHJhdmVyc2UgKilcbiAgICAgIGxldCByZWMgYXV4IGkgYnVjayAoKSA9IG1hdGNoIGJ1Y2sgd2l0aFxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICBpZiBpID0gQXJyYXkubGVuZ3RoIHRibF9kYXRhXG4gICAgICAgICAgICB0aGVuIFNlcS5OaWxcbiAgICAgICAgICAgIGVsc2UgYXV4KGkrMSkgdGJsX2RhdGEuKGkpICgpXG4gICAgICAgIHwgQ29ucyAoXywgYywgbmV4dCkgLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2tleSBjLCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUsIF8gfCBfLCBOb25lIC0+IGF1eCBpIG5leHQgKClcbiAgICAgICAgICAgICAgfCBTb21lIGtleSwgU29tZSBkYXRhIC0+XG4gICAgICAgICAgICAgICAgICBTZXEuQ29ucyAoKGtleSwgZGF0YSksIGF1eCBpIG5leHQpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGluXG4gICAgICBhdXggMCBFbXB0eVxuXG4gICAgbGV0IHRvX3NlcV9rZXlzIG0gPSBTZXEubWFwIGZzdCAodG9fc2VxIG0pXG5cbiAgICBsZXQgdG9fc2VxX3ZhbHVlcyBtID0gU2VxLm1hcCBzbmQgKHRvX3NlcSBtKVxuXG4gICAgbGV0IGFkZF9zZXEgdGJsIGkgPVxuICAgICAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiBhZGQgdGJsIGsgdikgaVxuXG4gICAgbGV0IHJlcGxhY2Vfc2VxIHRibCBpID1cbiAgICAgIFNlcS5pdGVyIChmdW4gKGssdikgLT4gcmVwbGFjZSB0YmwgayB2KSBpXG5cbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcblxuICBlbmRcbmVuZFxuXG5tb2R1bGUgT2JqRXBoID0gT2JqLkVwaGVtZXJvblxuXG5sZXQgX29ial9vcHQgOiBPYmoudCBvcHRpb24gLT4gJ2Egb3B0aW9uID0gZnVuIHggLT5cbiAgbWF0Y2ggeCB3aXRoXG4gIHwgTm9uZSAtPiB4XG4gIHwgU29tZSB2IC0+IFNvbWUgKE9iai5vYmogdilcblxuKCoqIFRoZSBwcmV2aW91cyBmdW5jdGlvbiBpcyB0eXBlZCBzbyB0aGlzIG9uZSBpcyBhbHNvIGNvcnJlY3QgKilcbmxldCBvYmpfb3B0IDogT2JqLnQgb3B0aW9uIC0+ICdhIG9wdGlvbiA9IGZ1biB4IC0+IE9iai5tYWdpYyB4XG5cblxubW9kdWxlIEsxID0gc3RydWN0XG4gIHR5cGUgKCdrLCdkKSB0ID0gT2JqRXBoLnRcblxuICBsZXQgY3JlYXRlICgpIDogKCdrLCdkKSB0ID0gT2JqRXBoLmNyZWF0ZSAxXG5cbiAgbGV0IGdldF9rZXkgKHQ6KCdrLCdkKSB0KSA6ICdrIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5IHQgMClcbiAgbGV0IGdldF9rZXlfY29weSAodDooJ2ssJ2QpIHQpIDogJ2sgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXlfY29weSB0IDApXG4gIGxldCBzZXRfa2V5ICh0OignaywnZCkgdCkgKGs6J2spIDogdW5pdCA9IE9iakVwaC5zZXRfa2V5IHQgMCAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleSAodDooJ2ssJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9rZXkgdCAwXG4gIGxldCBjaGVja19rZXkgKHQ6KCdrLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfa2V5IHQgMFxuXG4gIGxldCBibGl0X2tleSAodDE6KCdrLCdkKSB0KSAodDI6KCdrLCdkKSB0KTogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIDAgdDIgMCAxXG5cbiAgbGV0IGdldF9kYXRhICh0OignaywnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGEgdClcbiAgbGV0IGdldF9kYXRhX2NvcHkgKHQ6KCdrLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YV9jb3B5IHQpXG4gIGxldCBzZXRfZGF0YSAodDooJ2ssJ2QpIHQpIChkOidkKSA6IHVuaXQgPSBPYmpFcGguc2V0X2RhdGEgdCAoT2JqLnJlcHIgZClcbiAgbGV0IHVuc2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfZGF0YSB0XG4gIGxldCBjaGVja19kYXRhICh0OignaywnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2RhdGEgdFxuICBsZXQgYmxpdF9kYXRhICh0MTooXywnZCkgdCkgKHQyOihfLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGguYmxpdF9kYXRhIHQxIHQyXG5cbiAgbGV0IG1ha2Uga2V5IGRhdGEgPVxuICAgIGxldCBlcGggPSBjcmVhdGUgKCkgaW5cbiAgICBzZXRfZGF0YSBlcGggZGF0YTtcbiAgICBzZXRfa2V5IGVwaCBrZXk7XG4gICAgZXBoXG5cbiAgbGV0IHF1ZXJ5IGVwaCBrZXkgPVxuICAgIG1hdGNoIGdldF9rZXkgZXBoIHdpdGhcbiAgICB8IE5vbmUgLT4gTm9uZVxuICAgIHwgU29tZSBrIHdoZW4gayA9PSBrZXkgLT4gZ2V0X2RhdGEgZXBoXG4gICAgfCBTb21lIF8gLT4gTm9uZVxuXG4gIG1vZHVsZSBNYWtlU2VlZGVkIChIOkhhc2h0YmwuU2VlZGVkSGFzaGVkVHlwZSkgPVxuICAgIEdlbkhhc2hUYWJsZS5NYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgdHlwZSAnYSBjb250YWluZXIgPSAoSC50LCdhKSB0XG4gICAgICB0eXBlIHQgPSBILnRcbiAgICAgIGxldCBjcmVhdGUgayBkID1cbiAgICAgICAgbGV0IGMgPSBjcmVhdGUgKCkgaW5cbiAgICAgICAgc2V0X2RhdGEgYyBkO1xuICAgICAgICBzZXRfa2V5IGMgaztcbiAgICAgICAgY1xuICAgICAgbGV0IGhhc2ggPSBILmhhc2hcbiAgICAgIGxldCBlcXVhbCBjIGsgPVxuICAgICAgICAoKiB7IWdldF9rZXlfY29weX0gaXMgbm90IHVzZWQgYmVjYXVzZSB0aGUgZXF1YWxpdHkgb2YgdGhlIHVzZXIgY2FuIGJlXG4gICAgICAgICAgICB0aGUgcGh5c2ljYWwgZXF1YWxpdHkgKilcbiAgICAgICAgbWF0Y2ggZ2V0X2tleSBjIHdpdGhcbiAgICAgICAgfCBOb25lIC0+IEdlbkhhc2hUYWJsZS5FRGVhZFxuICAgICAgICB8IFNvbWUgaycgLT5cbiAgICAgICAgICAgIGlmIEguZXF1YWwgayBrJyB0aGVuIEdlbkhhc2hUYWJsZS5FVHJ1ZSBlbHNlIEdlbkhhc2hUYWJsZS5FRmFsc2VcbiAgICAgIGxldCBnZXRfZGF0YSA9IGdldF9kYXRhXG4gICAgICBsZXQgZ2V0X2tleSA9IGdldF9rZXlcbiAgICAgIGxldCBzZXRfa2V5X2RhdGEgYyBrIGQgPVxuICAgICAgICB1bnNldF9kYXRhIGM7XG4gICAgICAgIHNldF9rZXkgYyBrO1xuICAgICAgICBzZXRfZGF0YSBjIGRcbiAgICAgIGxldCBjaGVja19rZXkgPSBjaGVja19rZXlcbiAgICBlbmQpXG5cbiAgbW9kdWxlIE1ha2UoSDogSGFzaHRibC5IYXNoZWRUeXBlKTogKFMgd2l0aCB0eXBlIGtleSA9IEgudCkgPVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIE1ha2VTZWVkZWQoc3RydWN0XG4gICAgICAgIHR5cGUgdCA9IEgudFxuICAgICAgICBsZXQgZXF1YWwgPSBILmVxdWFsXG4gICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSC5oYXNoIHhcbiAgICAgIGVuZClcbiAgICBsZXQgY3JlYXRlIHN6ID0gY3JlYXRlIH5yYW5kb206ZmFsc2Ugc3pcbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcbiAgZW5kXG5cbiAgbW9kdWxlIEJ1Y2tldCA9IHN0cnVjdFxuXG4gICAgdHlwZSBub25yZWMgKCdrLCAnZCkgdCA9ICgnaywgJ2QpIHQgbGlzdCByZWZcbiAgICBsZXQgazFfbWFrZSA9IG1ha2VcbiAgICBsZXQgbWFrZSAoKSA9IHJlZiBbXVxuICAgIGxldCBhZGQgYiBrIGQgPSBiIDo9IGsxX21ha2UgayBkIDo6ICFiXG5cbiAgICBsZXQgdGVzdF9rZXkgayBlID1cbiAgICAgIG1hdGNoIGdldF9rZXkgZSB3aXRoXG4gICAgICB8IFNvbWUgeCB3aGVuIHggPT0gayAtPiB0cnVlXG4gICAgICB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZW1vdmUgYiBrID1cbiAgICAgIGxldCByZWMgbG9vcCBsIGFjYyA9XG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICB8IFtdIC0+ICgpXG4gICAgICAgIHwgaCA6OiB0IHdoZW4gdGVzdF9rZXkgayBoIC0+IGIgOj0gTGlzdC5yZXZfYXBwZW5kIGFjYyB0XG4gICAgICAgIHwgaCA6OiB0IC0+IGxvb3AgdCAoaCA6OiBhY2MpXG4gICAgICBpblxuICAgICAgbG9vcCAhYiBbXVxuXG4gICAgbGV0IGZpbmQgYiBrID1cbiAgICAgIG1hdGNoIExpc3QuZmluZF9vcHQgKHRlc3Rfa2V5IGspICFiIHdpdGhcbiAgICAgIHwgU29tZSBlIC0+IGdldF9kYXRhIGVcbiAgICAgIHwgTm9uZSAtPiBOb25lXG5cbiAgICBsZXQgbGVuZ3RoIGIgPSBMaXN0Lmxlbmd0aCAhYlxuICAgIGxldCBjbGVhciBiID0gYiA6PSBbXVxuXG4gIGVuZFxuXG5lbmRcblxubW9kdWxlIEsyID0gc3RydWN0XG4gIHR5cGUgKCdrMSwgJ2syLCAnZCkgdCA9IE9iakVwaC50XG5cbiAgbGV0IGNyZWF0ZSAoKSA6ICgnazEsJ2syLCdkKSB0ID0gT2JqRXBoLmNyZWF0ZSAyXG5cbiAgbGV0IGdldF9rZXkxICh0OignazEsJ2syLCdkKSB0KSA6ICdrMSBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleSB0IDApXG4gIGxldCBnZXRfa2V5MV9jb3B5ICh0OignazEsJ2syLCdkKSB0KSA6ICdrMSBvcHRpb24gPVxuICAgIG9ial9vcHQgKE9iakVwaC5nZXRfa2V5X2NvcHkgdCAwKVxuICBsZXQgc2V0X2tleTEgKHQ6KCdrMSwnazIsJ2QpIHQpIChrOidrMSkgOiB1bml0ID1cbiAgICBPYmpFcGguc2V0X2tleSB0IDAgKE9iai5yZXByIGspXG4gIGxldCB1bnNldF9rZXkxICh0OignazEsJ2syLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfa2V5IHQgMFxuICBsZXQgY2hlY2tfa2V5MSAodDooJ2sxLCdrMiwnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2tleSB0IDBcblxuICBsZXQgZ2V0X2tleTIgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2syIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5IHQgMSlcbiAgbGV0IGdldF9rZXkyX2NvcHkgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2syIG9wdGlvbiA9XG4gICAgb2JqX29wdCAoT2JqRXBoLmdldF9rZXlfY29weSB0IDEpXG4gIGxldCBzZXRfa2V5MiAodDooJ2sxLCdrMiwnZCkgdCkgKGs6J2syKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfa2V5IHQgMSAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleTIgKHQ6KCdrMSwnazIsJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9rZXkgdCAxXG4gIGxldCBjaGVja19rZXkyICh0OignazEsJ2syLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfa2V5IHQgMVxuXG5cbiAgbGV0IGJsaXRfa2V5MSAodDE6KCdrMSxfLF8pIHQpICh0MjooJ2sxLF8sXykgdCkgOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgMCB0MiAwIDFcbiAgbGV0IGJsaXRfa2V5MiAodDE6KF8sJ2syLF8pIHQpICh0MjooXywnazIsXykgdCkgOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgMSB0MiAxIDFcbiAgbGV0IGJsaXRfa2V5MTIgKHQxOignazEsJ2syLF8pIHQpICh0MjooJ2sxLCdrMixfKSB0KSA6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSAwIHQyIDAgMlxuXG4gIGxldCBnZXRfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGEgdClcbiAgbGV0IGdldF9kYXRhX2NvcHkgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2Qgb3B0aW9uID1cbiAgICBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGFfY29weSB0KVxuICBsZXQgc2V0X2RhdGEgKHQ6KCdrMSwnazIsJ2QpIHQpIChkOidkKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfZGF0YSB0IChPYmoucmVwciBkKVxuICBsZXQgdW5zZXRfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2RhdGEgdFxuICBsZXQgY2hlY2tfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2RhdGEgdFxuICBsZXQgYmxpdF9kYXRhICh0MTooXyxfLCdkKSB0KSAodDI6KF8sXywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLmJsaXRfZGF0YSB0MSB0MlxuXG4gIGxldCBtYWtlIGtleTEga2V5MiBkYXRhID1cbiAgICBsZXQgZXBoID0gY3JlYXRlICgpIGluXG4gICAgc2V0X2RhdGEgZXBoIGRhdGE7XG4gICAgc2V0X2tleTEgZXBoIGtleTE7XG4gICAgc2V0X2tleTIgZXBoIGtleTI7XG4gICAgaWdub3JlIChTeXMub3BhcXVlX2lkZW50aXR5IGtleTEpO1xuICAgIGVwaFxuXG4gIGxldCBxdWVyeSBlcGgga2V5MSBrZXkyID1cbiAgICBtYXRjaCBnZXRfa2V5MSBlcGggd2l0aFxuICAgIHwgTm9uZSAtPiBOb25lXG4gICAgfCBTb21lIGsgd2hlbiBrID09IGtleTEgLT5cbiAgICAgICAgYmVnaW4gbWF0Y2ggZ2V0X2tleTIgZXBoIHdpdGhcbiAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgfCBTb21lIGsgd2hlbiBrID09IGtleTIgLT4gZ2V0X2RhdGEgZXBoXG4gICAgICAgIHwgU29tZSBfIC0+IE5vbmVcbiAgICAgICAgZW5kXG4gICAgfCBTb21lIF8gLT4gTm9uZVxuXG4gIG1vZHVsZSBNYWtlU2VlZGVkXG4gICAgICAoSDE6SGFzaHRibC5TZWVkZWRIYXNoZWRUeXBlKVxuICAgICAgKEgyOkhhc2h0YmwuU2VlZGVkSGFzaGVkVHlwZSkgPVxuICAgIEdlbkhhc2hUYWJsZS5NYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgdHlwZSAnYSBjb250YWluZXIgPSAoSDEudCxIMi50LCdhKSB0XG4gICAgICB0eXBlIHQgPSBIMS50ICogSDIudFxuICAgICAgbGV0IGNyZWF0ZSAoazEsazIpIGQgPVxuICAgICAgICBsZXQgYyA9IGNyZWF0ZSAoKSBpblxuICAgICAgICBzZXRfZGF0YSBjIGQ7XG4gICAgICAgIHNldF9rZXkxIGMgazE7IHNldF9rZXkyIGMgazI7XG4gICAgICAgIGNcbiAgICAgIGxldCBoYXNoIHNlZWQgKGsxLGsyKSA9XG4gICAgICAgIEgxLmhhc2ggc2VlZCBrMSArIEgyLmhhc2ggc2VlZCBrMiAqIDY1NTk5XG4gICAgICBsZXQgZXF1YWwgYyAoazEsazIpID1cbiAgICAgICAgbWF0Y2ggZ2V0X2tleTEgYywgZ2V0X2tleTIgYyB3aXRoXG4gICAgICAgIHwgTm9uZSwgXyB8IF8gLCBOb25lIC0+IEdlbkhhc2hUYWJsZS5FRGVhZFxuICAgICAgICB8IFNvbWUgazEnLCBTb21lIGsyJyAtPlxuICAgICAgICAgICAgaWYgSDEuZXF1YWwgazEgazEnICYmIEgyLmVxdWFsIGsyIGsyJ1xuICAgICAgICAgICAgdGhlbiBHZW5IYXNoVGFibGUuRVRydWUgZWxzZSBHZW5IYXNoVGFibGUuRUZhbHNlXG4gICAgICBsZXQgZ2V0X2RhdGEgPSBnZXRfZGF0YVxuICAgICAgbGV0IGdldF9rZXkgYyA9XG4gICAgICAgIG1hdGNoIGdldF9rZXkxIGMsIGdldF9rZXkyIGMgd2l0aFxuICAgICAgICB8IE5vbmUsIF8gfCBfICwgTm9uZSAtPiBOb25lXG4gICAgICAgIHwgU29tZSBrMScsIFNvbWUgazInIC0+IFNvbWUgKGsxJywgazInKVxuICAgICAgbGV0IHNldF9rZXlfZGF0YSBjIChrMSxrMikgZCA9XG4gICAgICAgIHVuc2V0X2RhdGEgYztcbiAgICAgICAgc2V0X2tleTEgYyBrMTsgc2V0X2tleTIgYyBrMjtcbiAgICAgICAgc2V0X2RhdGEgYyBkXG4gICAgICBsZXQgY2hlY2tfa2V5IGMgPSBjaGVja19rZXkxIGMgJiYgY2hlY2tfa2V5MiBjXG4gICAgZW5kKVxuXG4gIG1vZHVsZSBNYWtlKEgxOiBIYXNodGJsLkhhc2hlZFR5cGUpKEgyOiBIYXNodGJsLkhhc2hlZFR5cGUpOlxuICAgIChTIHdpdGggdHlwZSBrZXkgPSBIMS50ICogSDIudCkgPVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIE1ha2VTZWVkZWRcbiAgICAgICAgKHN0cnVjdFxuICAgICAgICAgIHR5cGUgdCA9IEgxLnRcbiAgICAgICAgICBsZXQgZXF1YWwgPSBIMS5lcXVhbFxuICAgICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSDEuaGFzaCB4XG4gICAgICAgIGVuZClcbiAgICAgICAgKHN0cnVjdFxuICAgICAgICAgIHR5cGUgdCA9IEgyLnRcbiAgICAgICAgICBsZXQgZXF1YWwgPSBIMi5lcXVhbFxuICAgICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSDIuaGFzaCB4XG4gICAgICAgIGVuZClcbiAgICBsZXQgY3JlYXRlIHN6ID0gY3JlYXRlIH5yYW5kb206ZmFsc2Ugc3pcbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcbiAgZW5kXG5cbiAgbW9kdWxlIEJ1Y2tldCA9IHN0cnVjdFxuXG4gICAgdHlwZSBub25yZWMgKCdrMSwgJ2syLCAnZCkgdCA9ICgnazEsICdrMiwgJ2QpIHQgbGlzdCByZWZcbiAgICBsZXQgazJfbWFrZSA9IG1ha2VcbiAgICBsZXQgbWFrZSAoKSA9IHJlZiBbXVxuICAgIGxldCBhZGQgYiBrMSBrMiBkID0gYiA6PSBrMl9tYWtlIGsxIGsyIGQgOjogIWJcblxuICAgIGxldCB0ZXN0X2tleXMgazEgazIgZSA9XG4gICAgICBtYXRjaCBnZXRfa2V5MSBlLCBnZXRfa2V5MiBlIHdpdGhcbiAgICAgIHwgU29tZSB4MSwgU29tZSB4MiB3aGVuIHgxID09IGsxICYmIHgyID09IGsyIC0+IHRydWVcbiAgICAgIHwgXyAtPiBmYWxzZVxuXG4gICAgbGV0IHJlbW92ZSBiIGsxIGsyID1cbiAgICAgIGxldCByZWMgbG9vcCBsIGFjYyA9XG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICB8IFtdIC0+ICgpXG4gICAgICAgIHwgaCA6OiB0IHdoZW4gdGVzdF9rZXlzIGsxIGsyIGggLT4gYiA6PSBMaXN0LnJldl9hcHBlbmQgYWNjIHRcbiAgICAgICAgfCBoIDo6IHQgLT4gbG9vcCB0IChoIDo6IGFjYylcbiAgICAgIGluXG4gICAgICBsb29wICFiIFtdXG5cbiAgICBsZXQgZmluZCBiIGsxIGsyID1cbiAgICAgIG1hdGNoIExpc3QuZmluZF9vcHQgKHRlc3Rfa2V5cyBrMSBrMikgIWIgd2l0aFxuICAgICAgfCBTb21lIGUgLT4gZ2V0X2RhdGEgZVxuICAgICAgfCBOb25lIC0+IE5vbmVcblxuICAgIGxldCBsZW5ndGggYiA9IExpc3QubGVuZ3RoICFiXG4gICAgbGV0IGNsZWFyIGIgPSBiIDo9IFtdXG5cbiAgZW5kXG5cbmVuZFxuXG5tb2R1bGUgS24gPSBzdHJ1Y3RcbiAgdHlwZSAoJ2ssJ2QpIHQgPSBPYmpFcGgudFxuXG4gIGxldCBjcmVhdGUgbiA6ICgnaywnZCkgdCA9IE9iakVwaC5jcmVhdGUgblxuICBsZXQgbGVuZ3RoIChrOignaywnZCkgdCkgOiBpbnQgPSBPYmpFcGgubGVuZ3RoIGtcblxuICBsZXQgZ2V0X2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiAnayBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleSB0IG4pXG4gIGxldCBnZXRfa2V5X2NvcHkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIDogJ2sgb3B0aW9uID1cbiAgICBvYmpfb3B0IChPYmpFcGguZ2V0X2tleV9jb3B5IHQgbilcbiAgbGV0IHNldF9rZXkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIChrOidrKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfa2V5IHQgbiAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2tleSB0IG5cbiAgbGV0IGNoZWNrX2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2tleSB0IG5cblxuICBsZXQgYmxpdF9rZXkgKHQxOignaywnZCkgdCkgKG8xOmludCkgKHQyOignaywnZCkgdCkgKG8yOmludCkgKGw6aW50KSA6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSBvMSB0MiBvMiBsXG5cbiAgbGV0IGdldF9kYXRhICh0OignaywnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGEgdClcbiAgbGV0IGdldF9kYXRhX2NvcHkgKHQ6KCdrLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YV9jb3B5IHQpXG4gIGxldCBzZXRfZGF0YSAodDooJ2ssJ2QpIHQpIChkOidkKSA6IHVuaXQgPSBPYmpFcGguc2V0X2RhdGEgdCAoT2JqLnJlcHIgZClcbiAgbGV0IHVuc2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfZGF0YSB0XG4gIGxldCBjaGVja19kYXRhICh0OignaywnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2RhdGEgdFxuICBsZXQgYmxpdF9kYXRhICh0MTooXywnZCkgdCkgKHQyOihfLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGguYmxpdF9kYXRhIHQxIHQyXG5cbiAgbGV0IG1ha2Uga2V5cyBkYXRhID1cbiAgICBsZXQgbCA9IEFycmF5Lmxlbmd0aCBrZXlzIGluXG4gICAgbGV0IGVwaCA9IGNyZWF0ZSBsIGluXG4gICAgc2V0X2RhdGEgZXBoIGRhdGE7XG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvIHNldF9rZXkgZXBoIGkga2V5cy4oaSkgZG9uZTtcbiAgICBlcGhcblxuICBsZXQgcXVlcnkgZXBoIGtleXMgPVxuICAgIGxldCBsID0gbGVuZ3RoIGVwaCBpblxuICAgIHRyeVxuICAgICAgaWYgbCA8PiBBcnJheS5sZW5ndGgga2V5cyB0aGVuIHJhaXNlIEV4aXQ7XG4gICAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgICAgbWF0Y2ggZ2V0X2tleSBlcGggaSB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiByYWlzZSBFeGl0XG4gICAgICAgIHwgU29tZSBrIHdoZW4gayA9PSBrZXlzLihpKSAtPiAoKVxuICAgICAgICB8IFNvbWUgXyAtPiByYWlzZSBFeGl0XG4gICAgICBkb25lO1xuICAgICAgZ2V0X2RhdGEgZXBoXG4gICAgd2l0aCBFeGl0IC0+IE5vbmVcblxuICBtb2R1bGUgTWFrZVNlZWRlZCAoSDpIYXNodGJsLlNlZWRlZEhhc2hlZFR5cGUpID1cbiAgICBHZW5IYXNoVGFibGUuTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgIHR5cGUgJ2EgY29udGFpbmVyID0gKEgudCwnYSkgdFxuICAgICAgdHlwZSB0ID0gSC50IGFycmF5XG4gICAgICBsZXQgY3JlYXRlIGsgZCA9XG4gICAgICAgIGxldCBjID0gY3JlYXRlIChBcnJheS5sZW5ndGggaykgaW5cbiAgICAgICAgc2V0X2RhdGEgYyBkO1xuICAgICAgICBmb3IgaT0wIHRvIEFycmF5Lmxlbmd0aCBrIC0xIGRvXG4gICAgICAgICAgc2V0X2tleSBjIGkgay4oaSk7XG4gICAgICAgIGRvbmU7XG4gICAgICAgIGNcbiAgICAgIGxldCBoYXNoIHNlZWQgayA9XG4gICAgICAgIGxldCBoID0gcmVmIDAgaW5cbiAgICAgICAgZm9yIGk9MCB0byBBcnJheS5sZW5ndGggayAtMSBkb1xuICAgICAgICAgIGggOj0gSC5oYXNoIHNlZWQgay4oaSkgKiA2NTU5OSArICFoO1xuICAgICAgICBkb25lO1xuICAgICAgICAhaFxuICAgICAgbGV0IGVxdWFsIGMgayA9XG4gICAgICAgIGxldCBsZW4gID0gQXJyYXkubGVuZ3RoIGsgaW5cbiAgICAgICAgbGV0IGxlbicgPSBsZW5ndGggYyBpblxuICAgICAgICBpZiBsZW4gIT0gbGVuJyB0aGVuIEdlbkhhc2hUYWJsZS5FRmFsc2VcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxldCByZWMgZXF1YWxfYXJyYXkgayBjIGkgPVxuICAgICAgICAgICAgaWYgaSA8IDAgdGhlbiBHZW5IYXNoVGFibGUuRVRydWVcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggZ2V0X2tleSBjIGkgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT4gR2VuSGFzaFRhYmxlLkVEZWFkXG4gICAgICAgICAgICAgIHwgU29tZSBraSAtPlxuICAgICAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrLihpKSBraVxuICAgICAgICAgICAgICAgICAgdGhlbiBlcXVhbF9hcnJheSBrIGMgKGktMSlcbiAgICAgICAgICAgICAgICAgIGVsc2UgR2VuSGFzaFRhYmxlLkVGYWxzZVxuICAgICAgICAgIGluXG4gICAgICAgICAgZXF1YWxfYXJyYXkgayBjIChsZW4tMSlcbiAgICAgIGxldCBnZXRfZGF0YSA9IGdldF9kYXRhXG4gICAgICBsZXQgZ2V0X2tleSBjID1cbiAgICAgICAgbGV0IGxlbiA9IGxlbmd0aCBjIGluXG4gICAgICAgIGlmIGxlbiA9IDAgdGhlbiBTb21lIFt8fF1cbiAgICAgICAgZWxzZVxuICAgICAgICAgIG1hdGNoIGdldF9rZXkgYyAwIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICAgIHwgU29tZSBrMCAtPlxuICAgICAgICAgICAgICBsZXQgcmVjIGZpbGwgYSBpID1cbiAgICAgICAgICAgICAgICBpZiBpIDwgMSB0aGVuIFNvbWUgYVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgIG1hdGNoIGdldF9rZXkgYyBpIHdpdGhcbiAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgICAgICAgICB8IFNvbWUga2kgLT5cbiAgICAgICAgICAgICAgICAgICAgICBhLihpKSA8LSBraTtcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsIGEgKGktMSlcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgbGV0IGEgPSBBcnJheS5tYWtlIGxlbiBrMCBpblxuICAgICAgICAgICAgICBmaWxsIGEgKGxlbi0xKVxuICAgICAgbGV0IHNldF9rZXlfZGF0YSBjIGsgZCA9XG4gICAgICAgIHVuc2V0X2RhdGEgYztcbiAgICAgICAgZm9yIGk9MCB0byBBcnJheS5sZW5ndGggayAtMSBkb1xuICAgICAgICAgIHNldF9rZXkgYyBpIGsuKGkpO1xuICAgICAgICBkb25lO1xuICAgICAgICBzZXRfZGF0YSBjIGRcbiAgICAgIGxldCBjaGVja19rZXkgYyA9XG4gICAgICAgIGxldCByZWMgY2hlY2sgYyBpID1cbiAgICAgICAgICBpIDwgMCB8fCAoY2hlY2tfa2V5IGMgaSAmJiBjaGVjayBjIChpLTEpKSBpblxuICAgICAgICBjaGVjayBjIChsZW5ndGggYyAtIDEpXG4gICAgZW5kKVxuXG4gIG1vZHVsZSBNYWtlKEg6IEhhc2h0YmwuSGFzaGVkVHlwZSk6IChTIHdpdGggdHlwZSBrZXkgPSBILnQgYXJyYXkpID1cbiAgc3RydWN0XG4gICAgaW5jbHVkZSBNYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgICB0eXBlIHQgPSBILnRcbiAgICAgICAgbGV0IGVxdWFsID0gSC5lcXVhbFxuICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEguaGFzaCB4XG4gICAgICBlbmQpXG4gICAgbGV0IGNyZWF0ZSBzeiA9IGNyZWF0ZSB+cmFuZG9tOmZhbHNlIHN6XG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG4gIGVuZFxuXG4gIG1vZHVsZSBCdWNrZXQgPSBzdHJ1Y3RcblxuICAgIHR5cGUgbm9ucmVjICgnaywgJ2QpIHQgPSAoJ2ssICdkKSB0IGxpc3QgcmVmXG4gICAgbGV0IGtuX21ha2UgPSBtYWtlXG4gICAgbGV0IG1ha2UgKCkgPSByZWYgW11cbiAgICBsZXQgYWRkIGIgayBkID0gYiA6PSBrbl9tYWtlIGsgZCA6OiAhYlxuXG4gICAgbGV0IHRlc3Rfa2V5cyBrIGUgPVxuICAgICAgdHJ5XG4gICAgICAgIGlmIGxlbmd0aCBlIDw+IEFycmF5Lmxlbmd0aCBrIHRoZW4gcmFpc2UgRXhpdDtcbiAgICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBrIC0gMSBkb1xuICAgICAgICAgIG1hdGNoIGdldF9rZXkgZSBpIHdpdGhcbiAgICAgICAgICB8IFNvbWUgeCB3aGVuIHggPT0gay4oaSkgLT4gKClcbiAgICAgICAgICB8IF8gLT4gcmFpc2UgRXhpdFxuICAgICAgICBkb25lO1xuICAgICAgICB0cnVlXG4gICAgICB3aXRoIEV4aXQgLT4gZmFsc2VcblxuICAgIGxldCByZW1vdmUgYiBrID1cbiAgICAgIGxldCByZWMgbG9vcCBsIGFjYyA9XG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICB8IFtdIC0+ICgpXG4gICAgICAgIHwgaCA6OiB0IHdoZW4gdGVzdF9rZXlzIGsgaCAtPiBiIDo9IExpc3QucmV2X2FwcGVuZCBhY2MgdFxuICAgICAgICB8IGggOjogdCAtPiBsb29wIHQgKGggOjogYWNjKVxuICAgICAgaW5cbiAgICAgIGxvb3AgIWIgW11cblxuICAgIGxldCBmaW5kIGIgayA9XG4gICAgICBtYXRjaCBMaXN0LmZpbmRfb3B0ICh0ZXN0X2tleXMgaykgIWIgd2l0aFxuICAgICAgfCBTb21lIGUgLT4gZ2V0X2RhdGEgZVxuICAgICAgfCBOb25lIC0+IE5vbmVcblxuICAgIGxldCBsZW5ndGggYiA9IExpc3QubGVuZ3RoICFiXG4gICAgbGV0IGNsZWFyIGIgPSBiIDo9IFtdXG5cbiAgZW5kXG5cbmVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgIFhhdmllciBMZXJveSBhbmQgRGFtaWVuIERvbGlnZXosIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5sZXQgZ2VuZXJpY19xdW90ZSBxdW90ZXF1b3RlIHMgPVxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgKGwgKyAyMCkgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIGIgJ1xcJyc7XG4gIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgIGlmIHMuW2ldID0gJ1xcJydcbiAgICB0aGVuIEJ1ZmZlci5hZGRfc3RyaW5nIGIgcXVvdGVxdW90ZVxuICAgIGVsc2UgQnVmZmVyLmFkZF9jaGFyIGIgIHMuW2ldXG4gIGRvbmU7XG4gIEJ1ZmZlci5hZGRfY2hhciBiICdcXCcnO1xuICBCdWZmZXIuY29udGVudHMgYlxuXG4oKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIE9wZW4gR3JvdXAgc3BlY2lmaWNhdGlvbiBmb3VuZCBoZXJlOlxuICBbWzFdXSBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS91dGlsaXRpZXMvYmFzZW5hbWUuaHRtbFxuICBJbiBzdGVwIDEgb2YgW1sxXV0sIHdlIGNob29zZSB0byByZXR1cm4gXCIuXCIgZm9yIGVtcHR5IGlucHV0LlxuICAgIChmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzIHZlcnNpb25zIG9mIE9DYW1sKVxuICBJbiBzdGVwIDIsIHdlIGNob29zZSB0byBwcm9jZXNzIFwiLy9cIiBub3JtYWxseS5cbiAgU3RlcCA2IGlzIG5vdCBpbXBsZW1lbnRlZDogd2UgY29uc2lkZXIgdGhhdCB0aGUgW3N1ZmZpeF0gb3BlcmFuZCBpc1xuICAgIGFsd2F5cyBhYnNlbnQuICBTdWZmaXhlcyBhcmUgaGFuZGxlZCBieSBbY2hvcF9zdWZmaXhdIGFuZCBbY2hvcF9leHRlbnNpb25dLlxuKilcbmxldCBnZW5lcmljX2Jhc2VuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZSBuYW1lID1cbiAgbGV0IHJlYyBmaW5kX2VuZCBuID1cbiAgICBpZiBuIDwgMCB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIDFcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gZmluZF9lbmQgKG4gLSAxKVxuICAgIGVsc2UgZmluZF9iZWcgbiAobiArIDEpXG4gIGFuZCBmaW5kX2JlZyBuIHAgPVxuICAgIGlmIG4gPCAwIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgcFxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiBTdHJpbmcuc3ViIG5hbWUgKG4gKyAxKSAocCAtIG4gLSAxKVxuICAgIGVsc2UgZmluZF9iZWcgKG4gLSAxKSBwXG4gIGluXG4gIGlmIG5hbWUgPSBcIlwiXG4gIHRoZW4gY3VycmVudF9kaXJfbmFtZVxuICBlbHNlIGZpbmRfZW5kIChTdHJpbmcubGVuZ3RoIG5hbWUgLSAxKVxuXG4oKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIE9wZW4gR3JvdXAgc3BlY2lmaWNhdGlvbiBmb3VuZCBoZXJlOlxuICBbWzJdXSBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS91dGlsaXRpZXMvZGlybmFtZS5odG1sXG4gIEluIHN0ZXAgNiBvZiBbWzJdXSwgd2UgY2hvb3NlIHRvIHByb2Nlc3MgXCIvL1wiIG5vcm1hbGx5LlxuKilcbmxldCBnZW5lcmljX2Rpcm5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lIG5hbWUgPVxuICBsZXQgcmVjIHRyYWlsaW5nX3NlcCBuID1cbiAgICBpZiBuIDwgMCB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIDFcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gdHJhaWxpbmdfc2VwIChuIC0gMSlcbiAgICBlbHNlIGJhc2UgblxuICBhbmQgYmFzZSBuID1cbiAgICBpZiBuIDwgMCB0aGVuIGN1cnJlbnRfZGlyX25hbWVcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gaW50ZXJtZWRpYXRlX3NlcCBuXG4gICAgZWxzZSBiYXNlIChuIC0gMSlcbiAgYW5kIGludGVybWVkaWF0ZV9zZXAgbiA9XG4gICAgaWYgbiA8IDAgdGhlbiBTdHJpbmcuc3ViIG5hbWUgMCAxXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIGludGVybWVkaWF0ZV9zZXAgKG4gLSAxKVxuICAgIGVsc2UgU3RyaW5nLnN1YiBuYW1lIDAgKG4gKyAxKVxuICBpblxuICBpZiBuYW1lID0gXCJcIlxuICB0aGVuIGN1cnJlbnRfZGlyX25hbWVcbiAgZWxzZSB0cmFpbGluZ19zZXAgKFN0cmluZy5sZW5ndGggbmFtZSAtIDEpXG5cbm1vZHVsZSB0eXBlIFNZU0RFUFMgPSBzaWdcbiAgdmFsIG51bGwgOiBzdHJpbmdcbiAgdmFsIGN1cnJlbnRfZGlyX25hbWUgOiBzdHJpbmdcbiAgdmFsIHBhcmVudF9kaXJfbmFtZSA6IHN0cmluZ1xuICB2YWwgZGlyX3NlcCA6IHN0cmluZ1xuICB2YWwgaXNfZGlyX3NlcCA6IHN0cmluZyAtPiBpbnQgLT4gYm9vbFxuICB2YWwgaXNfcmVsYXRpdmUgOiBzdHJpbmcgLT4gYm9vbFxuICB2YWwgaXNfaW1wbGljaXQgOiBzdHJpbmcgLT4gYm9vbFxuICB2YWwgY2hlY2tfc3VmZml4IDogc3RyaW5nIC0+IHN0cmluZyAtPiBib29sXG4gIHZhbCBjaG9wX3N1ZmZpeF9vcHQgOiBzdWZmaXg6c3RyaW5nIC0+IHN0cmluZyAtPiBzdHJpbmcgb3B0aW9uXG4gIHZhbCB0ZW1wX2Rpcl9uYW1lIDogc3RyaW5nXG4gIHZhbCBxdW90ZSA6IHN0cmluZyAtPiBzdHJpbmdcbiAgdmFsIHF1b3RlX2NvbW1hbmQgOlxuICAgIHN0cmluZyAtPiA/c3RkaW46IHN0cmluZyAtPiA/c3Rkb3V0OiBzdHJpbmcgLT4gP3N0ZGVycjogc3RyaW5nXG4gICAgICAgICAgIC0+IHN0cmluZyBsaXN0IC0+IHN0cmluZ1xuICB2YWwgYmFzZW5hbWUgOiBzdHJpbmcgLT4gc3RyaW5nXG4gIHZhbCBkaXJuYW1lIDogc3RyaW5nIC0+IHN0cmluZ1xuZW5kXG5cbm1vZHVsZSBVbml4IDogU1lTREVQUyA9IHN0cnVjdFxuICBsZXQgbnVsbCA9IFwiL2Rldi9udWxsXCJcbiAgbGV0IGN1cnJlbnRfZGlyX25hbWUgPSBcIi5cIlxuICBsZXQgcGFyZW50X2Rpcl9uYW1lID0gXCIuLlwiXG4gIGxldCBkaXJfc2VwID0gXCIvXCJcbiAgbGV0IGlzX2Rpcl9zZXAgcyBpID0gcy5baV0gPSAnLydcbiAgbGV0IGlzX3JlbGF0aXZlIG4gPSBTdHJpbmcubGVuZ3RoIG4gPCAxIHx8IG4uWzBdIDw+ICcvJ1xuICBsZXQgaXNfaW1wbGljaXQgbiA9XG4gICAgaXNfcmVsYXRpdmUgblxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAyIHx8IFN0cmluZy5zdWIgbiAwIDIgPD4gXCIuL1wiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAzIHx8IFN0cmluZy5zdWIgbiAwIDMgPD4gXCIuLi9cIilcbiAgbGV0IGNoZWNrX3N1ZmZpeCBuYW1lIHN1ZmYgPVxuICAgIFN0cmluZy5lbmRzX3dpdGggfnN1ZmZpeDpzdWZmIG5hbWVcblxuICBsZXQgY2hvcF9zdWZmaXhfb3B0IH5zdWZmaXggZmlsZW5hbWUgPVxuICAgIGxldCBsZW5fcyA9IFN0cmluZy5sZW5ndGggc3VmZml4IGFuZCBsZW5fZiA9IFN0cmluZy5sZW5ndGggZmlsZW5hbWUgaW5cbiAgICBpZiBsZW5fZiA+PSBsZW5fcyB0aGVuXG4gICAgICBsZXQgciA9IFN0cmluZy5zdWIgZmlsZW5hbWUgKGxlbl9mIC0gbGVuX3MpIGxlbl9zIGluXG4gICAgICBpZiByID0gc3VmZml4IHRoZW5cbiAgICAgICAgU29tZSAoU3RyaW5nLnN1YiBmaWxlbmFtZSAwIChsZW5fZiAtIGxlbl9zKSlcbiAgICAgIGVsc2VcbiAgICAgICAgTm9uZVxuICAgIGVsc2VcbiAgICAgIE5vbmVcblxuICBsZXQgdGVtcF9kaXJfbmFtZSA9XG4gICAgdHJ5IFN5cy5nZXRlbnYgXCJUTVBESVJcIiB3aXRoIE5vdF9mb3VuZCAtPiBcIi90bXBcIlxuICBsZXQgcXVvdGUgPSBnZW5lcmljX3F1b3RlIFwiJ1xcXFwnJ1wiXG4gIGxldCBxdW90ZV9jb21tYW5kIGNtZCA/c3RkaW4gP3N0ZG91dCA/c3RkZXJyIGFyZ3MgPVxuICAgIFN0cmluZy5jb25jYXQgXCIgXCIgKExpc3QubWFwIHF1b3RlIChjbWQgOjogYXJncykpXG4gICAgXiAobWF0Y2ggc3RkaW4gIHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiIDxcIiBeIHF1b3RlIGYpXG4gICAgXiAobWF0Y2ggc3Rkb3V0IHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiID5cIiBeIHF1b3RlIGYpXG4gICAgXiAobWF0Y2ggc3RkZXJyIHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IGlmIHN0ZGVyciA9IHN0ZG91dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBcIiAyPiYxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgXCIgMj5cIiBeIHF1b3RlIGYpXG4gIGxldCBiYXNlbmFtZSA9IGdlbmVyaWNfYmFzZW5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lXG4gIGxldCBkaXJuYW1lID0gZ2VuZXJpY19kaXJuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZVxuZW5kXG5cbm1vZHVsZSBXaW4zMiA6IFNZU0RFUFMgPSBzdHJ1Y3RcbiAgbGV0IG51bGwgPSBcIk5VTFwiXG4gIGxldCBjdXJyZW50X2Rpcl9uYW1lID0gXCIuXCJcbiAgbGV0IHBhcmVudF9kaXJfbmFtZSA9IFwiLi5cIlxuICBsZXQgZGlyX3NlcCA9IFwiXFxcXFwiXG4gIGxldCBpc19kaXJfc2VwIHMgaSA9IGxldCBjID0gcy5baV0gaW4gYyA9ICcvJyB8fCBjID0gJ1xcXFwnIHx8IGMgPSAnOidcbiAgbGV0IGlzX3JlbGF0aXZlIG4gPVxuICAgIChTdHJpbmcubGVuZ3RoIG4gPCAxIHx8IG4uWzBdIDw+ICcvJylcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMSB8fCBuLlswXSA8PiAnXFxcXCcpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDIgfHwgbi5bMV0gPD4gJzonKVxuICBsZXQgaXNfaW1wbGljaXQgbiA9XG4gICAgaXNfcmVsYXRpdmUgblxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAyIHx8IFN0cmluZy5zdWIgbiAwIDIgPD4gXCIuL1wiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAyIHx8IFN0cmluZy5zdWIgbiAwIDIgPD4gXCIuXFxcXFwiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAzIHx8IFN0cmluZy5zdWIgbiAwIDMgPD4gXCIuLi9cIilcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMyB8fCBTdHJpbmcuc3ViIG4gMCAzIDw+IFwiLi5cXFxcXCIpXG4gIGxldCBjaGVja19zdWZmaXggbmFtZSBzdWZmID1cbiAgIFN0cmluZy5sZW5ndGggbmFtZSA+PSBTdHJpbmcubGVuZ3RoIHN1ZmYgJiZcbiAgIChsZXQgcyA9IFN0cmluZy5zdWIgbmFtZSAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gU3RyaW5nLmxlbmd0aCBzdWZmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJpbmcubGVuZ3RoIHN1ZmYpIGluXG4gICAgU3RyaW5nLmxvd2VyY2FzZV9hc2NpaSBzID0gU3RyaW5nLmxvd2VyY2FzZV9hc2NpaSBzdWZmKVxuXG4gIGxldCBjaG9wX3N1ZmZpeF9vcHQgfnN1ZmZpeCBmaWxlbmFtZSA9XG4gICAgbGV0IGxlbl9zID0gU3RyaW5nLmxlbmd0aCBzdWZmaXggYW5kIGxlbl9mID0gU3RyaW5nLmxlbmd0aCBmaWxlbmFtZSBpblxuICAgIGlmIGxlbl9mID49IGxlbl9zIHRoZW5cbiAgICAgIGxldCByID0gU3RyaW5nLnN1YiBmaWxlbmFtZSAobGVuX2YgLSBsZW5fcykgbGVuX3MgaW5cbiAgICAgIGlmIFN0cmluZy5sb3dlcmNhc2VfYXNjaWkgciA9IFN0cmluZy5sb3dlcmNhc2VfYXNjaWkgc3VmZml4IHRoZW5cbiAgICAgICAgU29tZSAoU3RyaW5nLnN1YiBmaWxlbmFtZSAwIChsZW5fZiAtIGxlbl9zKSlcbiAgICAgIGVsc2VcbiAgICAgICAgTm9uZVxuICAgIGVsc2VcbiAgICAgIE5vbmVcblxuXG4gIGxldCB0ZW1wX2Rpcl9uYW1lID1cbiAgICB0cnkgU3lzLmdldGVudiBcIlRFTVBcIiB3aXRoIE5vdF9mb3VuZCAtPiBcIi5cIlxuICBsZXQgcXVvdGUgcyA9XG4gICAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgKGwgKyAyMCkgaW5cbiAgICBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcIic7XG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IGwgdGhlbiBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcIicgZWxzZVxuICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgfCAnXFxcIicgLT4gbG9vcF9icyAwIGk7XG4gICAgICB8ICdcXFxcJyAtPiBsb29wX2JzIDAgaTtcbiAgICAgIHwgYyAgICAtPiBCdWZmZXIuYWRkX2NoYXIgYiBjOyBsb29wIChpKzEpO1xuICAgIGFuZCBsb29wX2JzIG4gaSA9XG4gICAgICBpZiBpID0gbCB0aGVuIGJlZ2luXG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBiICdcXFwiJztcbiAgICAgICAgYWRkX2JzIG47XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgIHwgJ1xcXCInIC0+IGFkZF9icyAoMipuKzEpOyBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcIic7IGxvb3AgKGkrMSk7XG4gICAgICAgIHwgJ1xcXFwnIC0+IGxvb3BfYnMgKG4rMSkgKGkrMSk7XG4gICAgICAgIHwgXyAgICAtPiBhZGRfYnMgbjsgbG9vcCBpXG4gICAgICBlbmRcbiAgICBhbmQgYWRkX2JzIG4gPSBmb3IgX2ogPSAxIHRvIG4gZG8gQnVmZmVyLmFkZF9jaGFyIGIgJ1xcXFwnOyBkb25lXG4gICAgaW5cbiAgICBsb29wIDA7XG4gICAgQnVmZmVyLmNvbnRlbnRzIGJcbigqXG5RdW90aW5nIGNvbW1hbmRzIGZvciBleGVjdXRpb24gYnkgY21kLmV4ZSBpcyBkaWZmaWN1bHQuXG4xLSBFYWNoIGFyZ3VtZW50IGlzIGZpcnN0IHF1b3RlZCB1c2luZyB0aGUgXCJxdW90ZVwiIGZ1bmN0aW9uIGFib3ZlLCB0b1xuICAgcHJvdGVjdCBpdCBhZ2FpbnN0IHRoZSBwcm9jZXNzaW5nIHBlcmZvcm1lZCBieSB0aGUgQyBydW50aW1lIHN5c3RlbSxcbiAgIHRoZW4gY21kLmV4ZSdzIHNwZWNpYWwgY2hhcmFjdGVycyBhcmUgZXNjYXBlZCB3aXRoICdeJywgdXNpbmdcbiAgIHRoZSBcInF1b3RlX2NtZFwiIGZ1bmN0aW9uIGJlbG93LiAgRm9yIG1vcmUgZGV0YWlscywgc2VlXG4gICBodHRwczovL2Jsb2dzLm1zZG4ubWljcm9zb2Z0LmNvbS90d2lzdHlsaXR0bGVwYXNzYWdlc2FsbGFsaWtlLzIwMTEvMDQvMjNcbjItIFRoZSBjb21tYW5kIGFuZCB0aGUgcmVkaXJlY3Rpb24gZmlsZXMsIGlmIGFueSwgbXVzdCBiZSBkb3VibGUtcXVvdGVkXG4gICBpbiBjYXNlIHRoZXkgY29udGFpbiBzcGFjZXMuICBUaGlzIHF1b3RpbmcgaXMgaW50ZXJwcmV0ZWQgYnkgY21kLmV4ZSxcbiAgIG5vdCBieSB0aGUgQyBydW50aW1lIHN5c3RlbSwgaGVuY2UgdGhlIFwicXVvdGVcIiBmdW5jdGlvbiBhYm92ZVxuICAgY2Fubm90IGJlIHVzZWQuICBUaGUgdHdvIGNoYXJhY3RlcnMgd2UgZG9uJ3Qga25vdyBob3cgdG8gcXVvdGVcbiAgIGluc2lkZSBhIGRvdWJsZS1xdW90ZWQgY21kLmV4ZSBzdHJpbmcgYXJlIGRvdWJsZS1xdW90ZSBhbmQgcGVyY2VudC5cbiAgIFdlIGp1c3QgZmFpbCBpZiB0aGUgY29tbWFuZCBuYW1lIG9yIHRoZSByZWRpcmVjdGlvbiBmaWxlIG5hbWVzXG4gICBjb250YWluIGEgZG91YmxlIHF1b3RlIChub3QgYWxsb3dlZCBpbiBXaW5kb3dzIGZpbGUgbmFtZXMsIGFueXdheSlcbiAgIG9yIGEgcGVyY2VudC4gIFNlZSBmdW5jdGlvbiBcInF1b3RlX2NtZF9maWxlbmFtZVwiIGJlbG93LlxuMy0gVGhlIHdob2xlIHN0cmluZyBwYXNzZWQgdG8gU3lzLmNvbW1hbmQgaXMgdGhlbiBlbmNsb3NlZCBpbiBkb3VibGVcbiAgIHF1b3Rlcywgd2hpY2ggYXJlIGltbWVkaWF0ZWx5IHN0cmlwcGVkIGJ5IGNtZC5leGUuICBPdGhlcndpc2UsXG4gICBzb21lIG9mIHRoZSBkb3VibGUgcXVvdGVzIGZyb20gc3RlcCAyIGFib3ZlIGNhbiBiZSBtaXNwYXJzZWQuXG4gICBTZWUgZS5nLiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvOTk2NTE0MVxuKilcbiAgbGV0IHF1b3RlX2NtZCBzID1cbiAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgKFN0cmluZy5sZW5ndGggcyArIDIwKSBpblxuICAgIFN0cmluZy5pdGVyXG4gICAgICAoZnVuIGMgLT5cbiAgICAgICAgbWF0Y2ggYyB3aXRoXG4gICAgICAgIHwgJygnIHwgJyknIHwgJyEnIHwgJ14nIHwgJyUnIHwgJ1xcXCInIHwgJzwnIHwgJz4nIHwgJyYnIHwgJ3wnIC0+XG4gICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgYiAnXic7IEJ1ZmZlci5hZGRfY2hhciBiIGNcbiAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgYiBjKVxuICAgICAgcztcbiAgICBCdWZmZXIuY29udGVudHMgYlxuICBsZXQgcXVvdGVfY21kX2ZpbGVuYW1lIGYgPVxuICAgIGlmIFN0cmluZy5jb250YWlucyBmICdcXFwiJyB8fCBTdHJpbmcuY29udGFpbnMgZiAnJScgdGhlblxuICAgICAgZmFpbHdpdGggKFwiRmlsZW5hbWUucXVvdGVfY29tbWFuZDogYmFkIGZpbGUgbmFtZSBcIiBeIGYpXG4gICAgZWxzZSBpZiBTdHJpbmcuY29udGFpbnMgZiAnICcgdGhlblxuICAgICAgXCJcXFwiXCIgXiBmIF4gXCJcXFwiXCJcbiAgICBlbHNlXG4gICAgICBmXG4gICgqIFJlZGlyZWN0aW9ucyBpbiBjbWQuZXhlOiBzZWUgaHR0cHM6Ly9zczY0LmNvbS9udC9zeW50YXgtcmVkaXJlY3Rpb24uaHRtbFxuICAgICBhbmQgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvcHJldmlvdXMtdmVyc2lvbnMvd2luZG93cy9pdC1wcm8vd2luZG93cy14cC9iYjQ5MDk4Mih2PXRlY2huZXQuMTApXG4gICopXG4gIGxldCBxdW90ZV9jb21tYW5kIGNtZCA/c3RkaW4gP3N0ZG91dCA/c3RkZXJyIGFyZ3MgPVxuICAgIFN0cmluZy5jb25jYXQgXCJcIiBbXG4gICAgICBcIlxcXCJcIjtcbiAgICAgIHF1b3RlX2NtZF9maWxlbmFtZSBjbWQ7XG4gICAgICBcIiBcIjtcbiAgICAgIHF1b3RlX2NtZCAoU3RyaW5nLmNvbmNhdCBcIiBcIiAoTGlzdC5tYXAgcXVvdGUgYXJncykpO1xuICAgICAgKG1hdGNoIHN0ZGluICB3aXRoIE5vbmUgLT4gXCJcIiB8IFNvbWUgZiAtPiBcIiA8XCIgXiBxdW90ZV9jbWRfZmlsZW5hbWUgZik7XG4gICAgICAobWF0Y2ggc3Rkb3V0IHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiID5cIiBeIHF1b3RlX2NtZF9maWxlbmFtZSBmKTtcbiAgICAgIChtYXRjaCBzdGRlcnIgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzdGRlcnIgPSBzdGRvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIFwiIDI+JjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgXCIgMj5cIiBeIHF1b3RlX2NtZF9maWxlbmFtZSBmKTtcbiAgICAgIFwiXFxcIlwiXG4gICAgXVxuICBsZXQgaGFzX2RyaXZlIHMgPVxuICAgIGxldCBpc19sZXR0ZXIgPSBmdW5jdGlvblxuICAgICAgfCAnQScgLi4gJ1onIHwgJ2EnIC4uICd6JyAtPiB0cnVlXG4gICAgICB8IF8gLT4gZmFsc2VcbiAgICBpblxuICAgIFN0cmluZy5sZW5ndGggcyA+PSAyICYmIGlzX2xldHRlciBzLlswXSAmJiBzLlsxXSA9ICc6J1xuICBsZXQgZHJpdmVfYW5kX3BhdGggcyA9XG4gICAgaWYgaGFzX2RyaXZlIHNcbiAgICB0aGVuIChTdHJpbmcuc3ViIHMgMCAyLCBTdHJpbmcuc3ViIHMgMiAoU3RyaW5nLmxlbmd0aCBzIC0gMikpXG4gICAgZWxzZSAoXCJcIiwgcylcbiAgbGV0IGRpcm5hbWUgcyA9XG4gICAgbGV0IChkcml2ZSwgcGF0aCkgPSBkcml2ZV9hbmRfcGF0aCBzIGluXG4gICAgbGV0IGRpciA9IGdlbmVyaWNfZGlybmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWUgcGF0aCBpblxuICAgIGRyaXZlIF4gZGlyXG4gIGxldCBiYXNlbmFtZSBzID1cbiAgICBsZXQgKF9kcml2ZSwgcGF0aCkgPSBkcml2ZV9hbmRfcGF0aCBzIGluXG4gICAgZ2VuZXJpY19iYXNlbmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWUgcGF0aFxuZW5kXG5cbm1vZHVsZSBDeWd3aW4gOiBTWVNERVBTID0gc3RydWN0XG4gIGxldCBudWxsID0gXCIvZGV2L251bGxcIlxuICBsZXQgY3VycmVudF9kaXJfbmFtZSA9IFwiLlwiXG4gIGxldCBwYXJlbnRfZGlyX25hbWUgPSBcIi4uXCJcbiAgbGV0IGRpcl9zZXAgPSBcIi9cIlxuICBsZXQgaXNfZGlyX3NlcCA9IFdpbjMyLmlzX2Rpcl9zZXBcbiAgbGV0IGlzX3JlbGF0aXZlID0gV2luMzIuaXNfcmVsYXRpdmVcbiAgbGV0IGlzX2ltcGxpY2l0ID0gV2luMzIuaXNfaW1wbGljaXRcbiAgbGV0IGNoZWNrX3N1ZmZpeCA9IFdpbjMyLmNoZWNrX3N1ZmZpeFxuICBsZXQgY2hvcF9zdWZmaXhfb3B0ID0gV2luMzIuY2hvcF9zdWZmaXhfb3B0XG4gIGxldCB0ZW1wX2Rpcl9uYW1lID0gVW5peC50ZW1wX2Rpcl9uYW1lXG4gIGxldCBxdW90ZSA9IFVuaXgucXVvdGVcbiAgbGV0IHF1b3RlX2NvbW1hbmQgPSBVbml4LnF1b3RlX2NvbW1hbmRcbiAgbGV0IGJhc2VuYW1lID0gZ2VuZXJpY19iYXNlbmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWVcbiAgbGV0IGRpcm5hbWUgPSBnZW5lcmljX2Rpcm5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lXG5lbmRcblxubW9kdWxlIFN5c2RlcHMgPVxuICAodmFsIChtYXRjaCBTeXMub3NfdHlwZSB3aXRoXG4gICAgICAgfCBcIldpbjMyXCIgLT4gKG1vZHVsZSBXaW4zMjogU1lTREVQUylcbiAgICAgICB8IFwiQ3lnd2luXCIgLT4gKG1vZHVsZSBDeWd3aW46IFNZU0RFUFMpXG4gICAgICAgfCBfIC0+IChtb2R1bGUgVW5peDogU1lTREVQUykpKVxuXG5pbmNsdWRlIFN5c2RlcHNcblxubGV0IGNvbmNhdCBkaXJuYW1lIGZpbGVuYW1lID1cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIGRpcm5hbWUgaW5cbiAgaWYgbCA9IDAgfHwgaXNfZGlyX3NlcCBkaXJuYW1lIChsLTEpXG4gIHRoZW4gZGlybmFtZSBeIGZpbGVuYW1lXG4gIGVsc2UgZGlybmFtZSBeIGRpcl9zZXAgXiBmaWxlbmFtZVxuXG5sZXQgY2hvcF9zdWZmaXggbmFtZSBzdWZmID1cbiAgaWYgY2hlY2tfc3VmZml4IG5hbWUgc3VmZlxuICB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIChTdHJpbmcubGVuZ3RoIG5hbWUgLSBTdHJpbmcubGVuZ3RoIHN1ZmYpXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJGaWxlbmFtZS5jaG9wX3N1ZmZpeFwiXG5cbmxldCBleHRlbnNpb25fbGVuIG5hbWUgPVxuICBsZXQgcmVjIGNoZWNrIGkwIGkgPVxuICAgIGlmIGkgPCAwIHx8IGlzX2Rpcl9zZXAgbmFtZSBpIHRoZW4gMFxuICAgIGVsc2UgaWYgbmFtZS5baV0gPSAnLicgdGhlbiBjaGVjayBpMCAoaSAtIDEpXG4gICAgZWxzZSBTdHJpbmcubGVuZ3RoIG5hbWUgLSBpMFxuICBpblxuICBsZXQgcmVjIHNlYXJjaF9kb3QgaSA9XG4gICAgaWYgaSA8IDAgfHwgaXNfZGlyX3NlcCBuYW1lIGkgdGhlbiAwXG4gICAgZWxzZSBpZiBuYW1lLltpXSA9ICcuJyB0aGVuIGNoZWNrIGkgKGkgLSAxKVxuICAgIGVsc2Ugc2VhcmNoX2RvdCAoaSAtIDEpXG4gIGluXG4gIHNlYXJjaF9kb3QgKFN0cmluZy5sZW5ndGggbmFtZSAtIDEpXG5cbmxldCBleHRlbnNpb24gbmFtZSA9XG4gIGxldCBsID0gZXh0ZW5zaW9uX2xlbiBuYW1lIGluXG4gIGlmIGwgPSAwIHRoZW4gXCJcIiBlbHNlIFN0cmluZy5zdWIgbmFtZSAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gbCkgbFxuXG5sZXQgY2hvcF9leHRlbnNpb24gbmFtZSA9XG4gIGxldCBsID0gZXh0ZW5zaW9uX2xlbiBuYW1lIGluXG4gIGlmIGwgPSAwIHRoZW4gaW52YWxpZF9hcmcgXCJGaWxlbmFtZS5jaG9wX2V4dGVuc2lvblwiXG4gIGVsc2UgU3RyaW5nLnN1YiBuYW1lIDAgKFN0cmluZy5sZW5ndGggbmFtZSAtIGwpXG5cbmxldCByZW1vdmVfZXh0ZW5zaW9uIG5hbWUgPVxuICBsZXQgbCA9IGV4dGVuc2lvbl9sZW4gbmFtZSBpblxuICBpZiBsID0gMCB0aGVuIG5hbWUgZWxzZSBTdHJpbmcuc3ViIG5hbWUgMCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gbClcblxuZXh0ZXJuYWwgb3Blbl9kZXNjOiBzdHJpbmcgLT4gb3Blbl9mbGFnIGxpc3QgLT4gaW50IC0+IGludCA9IFwiY2FtbF9zeXNfb3BlblwiXG5leHRlcm5hbCBjbG9zZV9kZXNjOiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9zeXNfY2xvc2VcIlxuXG5sZXQgcHJuZyA9IGxhenkoUmFuZG9tLlN0YXRlLm1ha2Vfc2VsZl9pbml0ICgpKVxuXG5sZXQgdGVtcF9maWxlX25hbWUgdGVtcF9kaXIgcHJlZml4IHN1ZmZpeCA9XG4gIGxldCBybmQgPSAoUmFuZG9tLlN0YXRlLmJpdHMgKExhenkuZm9yY2UgcHJuZykpIGxhbmQgMHhGRkZGRkYgaW5cbiAgY29uY2F0IHRlbXBfZGlyIChQcmludGYuc3ByaW50ZiBcIiVzJTA2eCVzXCIgcHJlZml4IHJuZCBzdWZmaXgpXG5cblxubGV0IGN1cnJlbnRfdGVtcF9kaXJfbmFtZSA9IHJlZiB0ZW1wX2Rpcl9uYW1lXG5cbmxldCBzZXRfdGVtcF9kaXJfbmFtZSBzID0gY3VycmVudF90ZW1wX2Rpcl9uYW1lIDo9IHNcbmxldCBnZXRfdGVtcF9kaXJfbmFtZSAoKSA9ICFjdXJyZW50X3RlbXBfZGlyX25hbWVcblxubGV0IHRlbXBfZmlsZSA/KHRlbXBfZGlyID0gIWN1cnJlbnRfdGVtcF9kaXJfbmFtZSkgcHJlZml4IHN1ZmZpeCA9XG4gIGxldCByZWMgdHJ5X25hbWUgY291bnRlciA9XG4gICAgbGV0IG5hbWUgPSB0ZW1wX2ZpbGVfbmFtZSB0ZW1wX2RpciBwcmVmaXggc3VmZml4IGluXG4gICAgdHJ5XG4gICAgICBjbG9zZV9kZXNjKG9wZW5fZGVzYyBuYW1lIFtPcGVuX3dyb25seTsgT3Blbl9jcmVhdDsgT3Blbl9leGNsXSAwbzYwMCk7XG4gICAgICBuYW1lXG4gICAgd2l0aCBTeXNfZXJyb3IgXyBhcyBlIC0+XG4gICAgICBpZiBjb3VudGVyID49IDEwMDAgdGhlbiByYWlzZSBlIGVsc2UgdHJ5X25hbWUgKGNvdW50ZXIgKyAxKVxuICBpbiB0cnlfbmFtZSAwXG5cbmxldCBvcGVuX3RlbXBfZmlsZSA/KG1vZGUgPSBbT3Blbl90ZXh0XSkgPyhwZXJtcyA9IDBvNjAwKVxuICAgICAgICAgICAgICAgICAgID8odGVtcF9kaXIgPSAhY3VycmVudF90ZW1wX2Rpcl9uYW1lKSBwcmVmaXggc3VmZml4ID1cbiAgbGV0IHJlYyB0cnlfbmFtZSBjb3VudGVyID1cbiAgICBsZXQgbmFtZSA9IHRlbXBfZmlsZV9uYW1lIHRlbXBfZGlyIHByZWZpeCBzdWZmaXggaW5cbiAgICB0cnlcbiAgICAgIChuYW1lLFxuICAgICAgIG9wZW5fb3V0X2dlbiAoT3Blbl93cm9ubHk6Ok9wZW5fY3JlYXQ6Ok9wZW5fZXhjbDo6bW9kZSkgcGVybXMgbmFtZSlcbiAgICB3aXRoIFN5c19lcnJvciBfIGFzIGUgLT5cbiAgICAgIGlmIGNvdW50ZXIgPj0gMTAwMCB0aGVuIHJhaXNlIGUgZWxzZSB0cnlfbmFtZSAoY291bnRlciArIDEpXG4gIGluIHRyeV9uYW1lIDBcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQ29tcGxleCBudW1iZXJzICopXG5cbnR5cGUgdCA9IHsgcmU6IGZsb2F0OyBpbTogZmxvYXQgfVxuXG5sZXQgemVybyA9IHsgcmUgPSAwLjA7IGltID0gMC4wIH1cbmxldCBvbmUgPSB7IHJlID0gMS4wOyBpbSA9IDAuMCB9XG5sZXQgaSA9IHsgcmUgPSAwLjA7IGltID0gMS4wIH1cblxubGV0IGFkZCB4IHkgPSB7IHJlID0geC5yZSArLiB5LnJlOyBpbSA9IHguaW0gKy4geS5pbSB9XG5cbmxldCBzdWIgeCB5ID0geyByZSA9IHgucmUgLS4geS5yZTsgaW0gPSB4LmltIC0uIHkuaW0gfVxuXG5sZXQgbmVnIHggPSB7IHJlID0gLS4geC5yZTsgaW0gPSAtLiB4LmltIH1cblxubGV0IGNvbmogeCA9IHsgcmUgPSB4LnJlOyBpbSA9IC0uIHguaW0gfVxuXG5sZXQgbXVsIHggeSA9IHsgcmUgPSB4LnJlICouIHkucmUgLS4geC5pbSAqLiB5LmltO1xuICAgICAgICAgICAgICAgIGltID0geC5yZSAqLiB5LmltICsuIHguaW0gKi4geS5yZSB9XG5cbmxldCBkaXYgeCB5ID1cbiAgaWYgYWJzX2Zsb2F0IHkucmUgPj0gYWJzX2Zsb2F0IHkuaW0gdGhlblxuICAgIGxldCByID0geS5pbSAvLiB5LnJlIGluXG4gICAgbGV0IGQgPSB5LnJlICsuIHIgKi4geS5pbSBpblxuICAgIHsgcmUgPSAoeC5yZSArLiByICouIHguaW0pIC8uIGQ7XG4gICAgICBpbSA9ICh4LmltIC0uIHIgKi4geC5yZSkgLy4gZCB9XG4gIGVsc2VcbiAgICBsZXQgciA9IHkucmUgLy4geS5pbSBpblxuICAgIGxldCBkID0geS5pbSArLiByICouIHkucmUgaW5cbiAgICB7IHJlID0gKHIgKi4geC5yZSArLiB4LmltKSAvLiBkO1xuICAgICAgaW0gPSAociAqLiB4LmltIC0uIHgucmUpIC8uIGQgfVxuXG5sZXQgaW52IHggPSBkaXYgb25lIHhcblxubGV0IG5vcm0yIHggPSB4LnJlICouIHgucmUgKy4geC5pbSAqLiB4LmltXG5cbmxldCBub3JtIHggPVxuICAoKiBXYXRjaCBvdXQgZm9yIG92ZXJmbG93IGluIGNvbXB1dGluZyByZV4yICsgaW1eMiAqKVxuICBsZXQgciA9IGFic19mbG9hdCB4LnJlIGFuZCBpID0gYWJzX2Zsb2F0IHguaW0gaW5cbiAgaWYgciA9IDAuMCB0aGVuIGlcbiAgZWxzZSBpZiBpID0gMC4wIHRoZW4gclxuICBlbHNlIGlmIHIgPj0gaSB0aGVuXG4gICAgbGV0IHEgPSBpIC8uIHIgaW4gciAqLiBzcXJ0KDEuMCArLiBxICouIHEpXG4gIGVsc2VcbiAgICBsZXQgcSA9IHIgLy4gaSBpbiBpICouIHNxcnQoMS4wICsuIHEgKi4gcSlcblxubGV0IGFyZyB4ID0gYXRhbjIgeC5pbSB4LnJlXG5cbmxldCBwb2xhciBuIGEgPSB7IHJlID0gY29zIGEgKi4gbjsgaW0gPSBzaW4gYSAqLiBuIH1cblxubGV0IHNxcnQgeCA9XG4gIGlmIHgucmUgPSAwLjAgJiYgeC5pbSA9IDAuMCB0aGVuIHsgcmUgPSAwLjA7IGltID0gMC4wIH1cbiAgZWxzZSBiZWdpblxuICAgIGxldCByID0gYWJzX2Zsb2F0IHgucmUgYW5kIGkgPSBhYnNfZmxvYXQgeC5pbSBpblxuICAgIGxldCB3ID1cbiAgICAgIGlmIHIgPj0gaSB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBxID0gaSAvLiByIGluXG4gICAgICAgIHNxcnQocikgKi4gc3FydCgwLjUgKi4gKDEuMCArLiBzcXJ0KDEuMCArLiBxICouIHEpKSlcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIGxldCBxID0gciAvLiBpIGluXG4gICAgICAgIHNxcnQoaSkgKi4gc3FydCgwLjUgKi4gKHEgKy4gc3FydCgxLjAgKy4gcSAqLiBxKSkpXG4gICAgICBlbmQgaW5cbiAgICBpZiB4LnJlID49IDAuMFxuICAgIHRoZW4geyByZSA9IHc7ICBpbSA9IDAuNSAqLiB4LmltIC8uIHcgfVxuICAgIGVsc2UgeyByZSA9IDAuNSAqLiBpIC8uIHc7ICBpbSA9IGlmIHguaW0gPj0gMC4wIHRoZW4gdyBlbHNlIC0uIHcgfVxuICBlbmRcblxubGV0IGV4cCB4ID1cbiAgbGV0IGUgPSBleHAgeC5yZSBpbiB7IHJlID0gZSAqLiBjb3MgeC5pbTsgaW0gPSBlICouIHNpbiB4LmltIH1cblxubGV0IGxvZyB4ID0geyByZSA9IGxvZyAobm9ybSB4KTsgaW0gPSBhdGFuMiB4LmltIHgucmUgfVxuXG5sZXQgcG93IHggeSA9IGV4cCAobXVsIHkgKGxvZyB4KSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICBNYW51ZWwgU2VycmFubyBldCBYYXZpZXIgTGVyb3ksIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDAgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtCaWdhcnJheV06IGxhcmdlLCBtdWx0aS1kaW1lbnNpb25hbCwgbnVtZXJpY2FsIGFycmF5cyAqKVxuXG4oKiBUaGVzZSB0eXBlcyBpbiBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSB0YWJsZXMgaW5cbiAgIC4uL3R5cGluZy90eXBlb3B0Lm1sICopXG5cbnR5cGUgZmxvYXQzMl9lbHQgPSBGbG9hdDMyX2VsdFxudHlwZSBmbG9hdDY0X2VsdCA9IEZsb2F0NjRfZWx0XG50eXBlIGludDhfc2lnbmVkX2VsdCA9IEludDhfc2lnbmVkX2VsdFxudHlwZSBpbnQ4X3Vuc2lnbmVkX2VsdCA9IEludDhfdW5zaWduZWRfZWx0XG50eXBlIGludDE2X3NpZ25lZF9lbHQgPSBJbnQxNl9zaWduZWRfZWx0XG50eXBlIGludDE2X3Vuc2lnbmVkX2VsdCA9IEludDE2X3Vuc2lnbmVkX2VsdFxudHlwZSBpbnQzMl9lbHQgPSBJbnQzMl9lbHRcbnR5cGUgaW50NjRfZWx0ID0gSW50NjRfZWx0XG50eXBlIGludF9lbHQgPSBJbnRfZWx0XG50eXBlIG5hdGl2ZWludF9lbHQgPSBOYXRpdmVpbnRfZWx0XG50eXBlIGNvbXBsZXgzMl9lbHQgPSBDb21wbGV4MzJfZWx0XG50eXBlIGNvbXBsZXg2NF9lbHQgPSBDb21wbGV4NjRfZWx0XG5cbnR5cGUgKCdhLCAnYikga2luZCA9XG4gICAgRmxvYXQzMiA6IChmbG9hdCwgZmxvYXQzMl9lbHQpIGtpbmRcbiAgfCBGbG9hdDY0IDogKGZsb2F0LCBmbG9hdDY0X2VsdCkga2luZFxuICB8IEludDhfc2lnbmVkIDogKGludCwgaW50OF9zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50OF91bnNpZ25lZCA6IChpbnQsIGludDhfdW5zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50MTZfc2lnbmVkIDogKGludCwgaW50MTZfc2lnbmVkX2VsdCkga2luZFxuICB8IEludDE2X3Vuc2lnbmVkIDogKGludCwgaW50MTZfdW5zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50MzIgOiAoaW50MzIsIGludDMyX2VsdCkga2luZFxuICB8IEludDY0IDogKGludDY0LCBpbnQ2NF9lbHQpIGtpbmRcbiAgfCBJbnQgOiAoaW50LCBpbnRfZWx0KSBraW5kXG4gIHwgTmF0aXZlaW50IDogKG5hdGl2ZWludCwgbmF0aXZlaW50X2VsdCkga2luZFxuICB8IENvbXBsZXgzMiA6IChDb21wbGV4LnQsIGNvbXBsZXgzMl9lbHQpIGtpbmRcbiAgfCBDb21wbGV4NjQgOiAoQ29tcGxleC50LCBjb21wbGV4NjRfZWx0KSBraW5kXG4gIHwgQ2hhciA6IChjaGFyLCBpbnQ4X3Vuc2lnbmVkX2VsdCkga2luZFxuXG50eXBlIGNfbGF5b3V0ID0gQ19sYXlvdXRfdHlwXG50eXBlIGZvcnRyYW5fbGF5b3V0ID0gRm9ydHJhbl9sYXlvdXRfdHlwICgqKilcblxudHlwZSAnYSBsYXlvdXQgPVxuICAgIENfbGF5b3V0OiBjX2xheW91dCBsYXlvdXRcbiAgfCBGb3J0cmFuX2xheW91dDogZm9ydHJhbl9sYXlvdXQgbGF5b3V0XG5cbigqIEtlZXAgdGhvc2UgY29uc3RhbnRzIGluIHN5bmMgd2l0aCB0aGUgY2FtbF9iYV9raW5kIGVudW1lcmF0aW9uXG4gICBpbiBiaWdhcnJheS5oICopXG5cbmxldCBmbG9hdDMyID0gRmxvYXQzMlxubGV0IGZsb2F0NjQgPSBGbG9hdDY0XG5sZXQgaW50OF9zaWduZWQgPSBJbnQ4X3NpZ25lZFxubGV0IGludDhfdW5zaWduZWQgPSBJbnQ4X3Vuc2lnbmVkXG5sZXQgaW50MTZfc2lnbmVkID0gSW50MTZfc2lnbmVkXG5sZXQgaW50MTZfdW5zaWduZWQgPSBJbnQxNl91bnNpZ25lZFxubGV0IGludDMyID0gSW50MzJcbmxldCBpbnQ2NCA9IEludDY0XG5sZXQgaW50ID0gSW50XG5sZXQgbmF0aXZlaW50ID0gTmF0aXZlaW50XG5sZXQgY29tcGxleDMyID0gQ29tcGxleDMyXG5sZXQgY29tcGxleDY0ID0gQ29tcGxleDY0XG5sZXQgY2hhciA9IENoYXJcblxubGV0IGtpbmRfc2l6ZV9pbl9ieXRlcyA6IHR5cGUgYSBiLiAoYSwgYikga2luZCAtPiBpbnQgPSBmdW5jdGlvblxuICB8IEZsb2F0MzIgLT4gNFxuICB8IEZsb2F0NjQgLT4gOFxuICB8IEludDhfc2lnbmVkIC0+IDFcbiAgfCBJbnQ4X3Vuc2lnbmVkIC0+IDFcbiAgfCBJbnQxNl9zaWduZWQgLT4gMlxuICB8IEludDE2X3Vuc2lnbmVkIC0+IDJcbiAgfCBJbnQzMiAtPiA0XG4gIHwgSW50NjQgLT4gOFxuICB8IEludCAtPiBTeXMud29yZF9zaXplIC8gOFxuICB8IE5hdGl2ZWludCAtPiBTeXMud29yZF9zaXplIC8gOFxuICB8IENvbXBsZXgzMiAtPiA4XG4gIHwgQ29tcGxleDY0IC0+IDE2XG4gIHwgQ2hhciAtPiAxXG5cbigqIEtlZXAgdGhvc2UgY29uc3RhbnRzIGluIHN5bmMgd2l0aCB0aGUgY2FtbF9iYV9sYXlvdXQgZW51bWVyYXRpb25cbiAgIGluIGJpZ2FycmF5LmggKilcblxubGV0IGNfbGF5b3V0ID0gQ19sYXlvdXRcbmxldCBmb3J0cmFuX2xheW91dCA9IEZvcnRyYW5fbGF5b3V0XG5cbm1vZHVsZSBHZW5hcnJheSA9IHN0cnVjdFxuICB0eXBlICghJ2EsICEnYiwgISdjKSB0XG4gIGV4dGVybmFsIGNyZWF0ZTogKCdhLCAnYikga2luZCAtPiAnYyBsYXlvdXQgLT4gaW50IGFycmF5IC0+ICgnYSwgJ2IsICdjKSB0XG4gICAgID0gXCJjYW1sX2JhX2NyZWF0ZVwiXG4gIGV4dGVybmFsIGdldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IGFycmF5IC0+ICdhXG4gICAgID0gXCJjYW1sX2JhX2dldF9nZW5lcmljXCJcbiAgZXh0ZXJuYWwgc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgYXJyYXkgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiY2FtbF9iYV9zZXRfZ2VuZXJpY1wiXG5cbiAgbGV0IHJlYyBjbG9vcCBhcnIgaWR4IGYgY29sIG1heCA9XG4gICAgaWYgY29sID0gQXJyYXkubGVuZ3RoIGlkeCB0aGVuIHNldCBhcnIgaWR4IChmIGlkeClcbiAgICBlbHNlIGZvciBqID0gMCB0byBwcmVkIG1heC4oY29sKSBkb1xuICAgICAgICAgICBpZHguKGNvbCkgPC0gajtcbiAgICAgICAgICAgY2xvb3AgYXJyIGlkeCBmIChzdWNjIGNvbCkgbWF4XG4gICAgICAgICBkb25lXG4gIGxldCByZWMgZmxvb3AgYXJyIGlkeCBmIGNvbCBtYXggPVxuICAgIGlmIGNvbCA8IDAgdGhlbiBzZXQgYXJyIGlkeCAoZiBpZHgpXG4gICAgZWxzZSBmb3IgaiA9IDEgdG8gbWF4Lihjb2wpIGRvXG4gICAgICAgICAgIGlkeC4oY29sKSA8LSBqO1xuICAgICAgICAgICBmbG9vcCBhcnIgaWR4IGYgKHByZWQgY29sKSBtYXhcbiAgICAgICAgIGRvbmVcbiAgbGV0IGluaXQgKHR5cGUgdCkga2luZCAobGF5b3V0IDogdCBsYXlvdXQpIGRpbXMgZiA9XG4gICAgbGV0IGFyciA9IGNyZWF0ZSBraW5kIGxheW91dCBkaW1zIGluXG4gICAgbWF0Y2ggQXJyYXkubGVuZ3RoIGRpbXMsIGxheW91dCB3aXRoXG4gICAgfCAwLCBfIC0+IGFyclxuICAgIHwgZGxlbiwgQ19sYXlvdXQgLT4gY2xvb3AgYXJyIChBcnJheS5tYWtlIGRsZW4gMCkgZiAwIGRpbXM7IGFyclxuICAgIHwgZGxlbiwgRm9ydHJhbl9sYXlvdXQgLT4gZmxvb3AgYXJyIChBcnJheS5tYWtlIGRsZW4gMSkgZiAocHJlZCBkbGVuKSBkaW1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyXG5cbiAgZXh0ZXJuYWwgbnVtX2RpbXM6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiY2FtbF9iYV9udW1fZGltc1wiXG4gIGV4dGVybmFsIG50aF9kaW06ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgPSBcImNhbWxfYmFfZGltXCJcbiAgbGV0IGRpbXMgYSA9XG4gICAgbGV0IG4gPSBudW1fZGltcyBhIGluXG4gICAgbGV0IGQgPSBBcnJheS5tYWtlIG4gMCBpblxuICAgIGZvciBpID0gMCB0byBuLTEgZG8gZC4oaSkgPC0gbnRoX2RpbSBhIGkgZG9uZTtcbiAgICBkXG5cbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcbiAgZXh0ZXJuYWwgY2hhbmdlX2xheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2QgbGF5b3V0IC0+ICgnYSwgJ2IsICdkKSB0XG4gICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9XG4gICAgKGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpKSAqIChBcnJheS5mb2xkX2xlZnQgKCAqICkgMSAoZGltcyBhcnIpKVxuXG4gIGV4dGVybmFsIHN1Yl9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGNfbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGV4dGVybmFsIHN1Yl9yaWdodDogKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBleHRlcm5hbCBzbGljZV9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCdhLCAnYiwgY19sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc2xpY2VcIlxuICBleHRlcm5hbCBzbGljZV9yaWdodDogKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHQgLT4gaW50IGFycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3NsaWNlXCJcbiAgZXh0ZXJuYWwgYmxpdDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYiwgJ2MpIHQgLT4gdW5pdFxuICAgICA9IFwiY2FtbF9iYV9ibGl0XCJcbiAgZXh0ZXJuYWwgZmlsbDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9iYV9maWxsXCJcbmVuZFxuXG5tb2R1bGUgQXJyYXkwID0gc3RydWN0XG4gIHR5cGUgKCEnYSwgISdiLCAhJ2MpIHQgPSAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICBsZXQgY3JlYXRlIGtpbmQgbGF5b3V0ID1cbiAgICBHZW5hcnJheS5jcmVhdGUga2luZCBsYXlvdXQgW3x8XVxuICBsZXQgZ2V0IGFyciA9IEdlbmFycmF5LmdldCBhcnIgW3x8XVxuICBsZXQgc2V0IGFyciA9IEdlbmFycmF5LnNldCBhcnIgW3x8XVxuICBleHRlcm5hbCBraW5kOiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiKSBraW5kID0gXCJjYW1sX2JhX2tpbmRcIlxuICBleHRlcm5hbCBsYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdjIGxheW91dCA9IFwiY2FtbF9iYV9sYXlvdXRcIlxuXG4gIGV4dGVybmFsIGNoYW5nZV9sYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdkIGxheW91dCAtPiAoJ2EsICdiLCAnZCkgdFxuICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9IGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpXG5cbiAgZXh0ZXJuYWwgYmxpdDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYiwgJ2MpIHQgLT4gdW5pdCA9IFwiY2FtbF9iYV9ibGl0XCJcbiAgZXh0ZXJuYWwgZmlsbDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9iYV9maWxsXCJcblxuICBsZXQgb2ZfdmFsdWUga2luZCBsYXlvdXQgdiA9XG4gICAgbGV0IGEgPSBjcmVhdGUga2luZCBsYXlvdXQgaW5cbiAgICBzZXQgYSB2O1xuICAgIGFcbiAgbGV0IGluaXQgPSBvZl92YWx1ZVxuZW5kXG5cbm1vZHVsZSBBcnJheTEgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdCA9ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gIGxldCBjcmVhdGUga2luZCBsYXlvdXQgZGltID1cbiAgICBHZW5hcnJheS5jcmVhdGUga2luZCBsYXlvdXQgW3xkaW18XVxuICBleHRlcm5hbCBnZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiAnYSA9IFwiJWNhbWxfYmFfcmVmXzFcIlxuICBleHRlcm5hbCBzZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCIlY2FtbF9iYV9zZXRfMVwiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiAnYSA9IFwiJWNhbWxfYmFfdW5zYWZlX3JlZl8xXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+ICdhIC0+IHVuaXRcbiAgICAgPSBcIiVjYW1sX2JhX3Vuc2FmZV9zZXRfMVwiXG4gIGV4dGVybmFsIGRpbTogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMVwiXG4gIGV4dGVybmFsIGtpbmQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IpIGtpbmQgPSBcImNhbWxfYmFfa2luZFwiXG4gIGV4dGVybmFsIGxheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2MgbGF5b3V0ID0gXCJjYW1sX2JhX2xheW91dFwiXG5cbiAgZXh0ZXJuYWwgY2hhbmdlX2xheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2QgbGF5b3V0IC0+ICgnYSwgJ2IsICdkKSB0XG4gICAgPSBcImNhbWxfYmFfY2hhbmdlX2xheW91dFwiXG5cbiAgbGV0IHNpemVfaW5fYnl0ZXMgYXJyID1cbiAgICAoa2luZF9zaXplX2luX2J5dGVzIChraW5kIGFycikpICogKGRpbSBhcnIpXG5cbiAgZXh0ZXJuYWwgc3ViOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsICdjKSB0ID0gXCJjYW1sX2JhX3N1YlwiXG4gIGxldCBzbGljZSAodHlwZSB0KSAoYSA6IChfLCBfLCB0KSBHZW5hcnJheS50KSBuID1cbiAgICBtYXRjaCBsYXlvdXQgYSB3aXRoXG4gICAgfCBDX2xheW91dCAtPiAoR2VuYXJyYXkuc2xpY2VfbGVmdCBhIFt8bnxdIDogKF8sIF8sIHQpIEdlbmFycmF5LnQpXG4gICAgfCBGb3J0cmFuX2xheW91dCAtPiAoR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG58XTogKF8sIF8sIHQpIEdlbmFycmF5LnQpXG4gIGV4dGVybmFsIGJsaXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IsICdjKSB0IC0+IHVuaXQgPSBcImNhbWxfYmFfYmxpdFwiXG4gIGV4dGVybmFsIGZpbGw6ICgnYSwgJ2IsICdjKSB0IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYmFfZmlsbFwiXG4gIGxldCBjX2luaXQgYXJyIGRpbSBmID1cbiAgICBmb3IgaSA9IDAgdG8gcHJlZCBkaW0gZG8gdW5zYWZlX3NldCBhcnIgaSAoZiBpKSBkb25lXG4gIGxldCBmb3J0cmFuX2luaXQgYXJyIGRpbSBmID1cbiAgICBmb3IgaSA9IDEgdG8gZGltIGRvIHVuc2FmZV9zZXQgYXJyIGkgKGYgaSkgZG9uZVxuICBsZXQgaW5pdCAodHlwZSB0KSBraW5kIChsYXlvdXQgOiB0IGxheW91dCkgZGltIGYgPVxuICAgIGxldCBhcnIgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltIGluXG4gICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICB8IENfbGF5b3V0IC0+IGNfaW5pdCBhcnIgZGltIGY7IGFyclxuICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gZm9ydHJhbl9pbml0IGFyciBkaW0gZjsgYXJyXG4gIGxldCBvZl9hcnJheSAodHlwZSB0KSBraW5kIChsYXlvdXQ6IHQgbGF5b3V0KSBkYXRhID1cbiAgICBsZXQgYmEgPSBjcmVhdGUga2luZCBsYXlvdXQgKEFycmF5Lmxlbmd0aCBkYXRhKSBpblxuICAgIGxldCBvZnMgPVxuICAgICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICAgICAgQ19sYXlvdXQgLT4gMFxuICAgICAgfCBGb3J0cmFuX2xheW91dCAtPiAxXG4gICAgaW5cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGRhdGEgLSAxIGRvIHVuc2FmZV9zZXQgYmEgKGkgKyBvZnMpIGRhdGEuKGkpIGRvbmU7XG4gICAgYmFcbmVuZFxuXG5tb2R1bGUgQXJyYXkyID0gc3RydWN0XG4gIHR5cGUgKCEnYSwgISdiLCAhJ2MpIHQgPSAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICBsZXQgY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiA9XG4gICAgR2VuYXJyYXkuY3JlYXRlIGtpbmQgbGF5b3V0IFt8ZGltMTsgZGltMnxdXG4gIGV4dGVybmFsIGdldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiAnYSA9IFwiJWNhbWxfYmFfcmVmXzJcIlxuICBleHRlcm5hbCBzZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiJWNhbWxfYmFfc2V0XzJcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICdhXG4gICAgID0gXCIlY2FtbF9iYV91bnNhZmVfcmVmXzJcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IHVuaXRcbiAgICAgPSBcIiVjYW1sX2JhX3Vuc2FmZV9zZXRfMlwiXG4gIGV4dGVybmFsIGRpbTE6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzFcIlxuICBleHRlcm5hbCBkaW0yOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8yXCJcbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcblxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICA9IFwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XCJcblxuICBsZXQgc2l6ZV9pbl9ieXRlcyBhcnIgPVxuICAgIChraW5kX3NpemVfaW5fYnl0ZXMgKGtpbmQgYXJyKSkgKiAoZGltMSBhcnIpICogKGRpbTIgYXJyKVxuXG4gIGV4dGVybmFsIHN1Yl9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGNfbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGV4dGVybmFsIHN1Yl9yaWdodDpcbiAgICAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGxldCBzbGljZV9sZWZ0IGEgbiA9IEdlbmFycmF5LnNsaWNlX2xlZnQgYSBbfG58XVxuICBsZXQgc2xpY2VfcmlnaHQgYSBuID0gR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG58XVxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0ID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuICBsZXQgY19pbml0IGFyciBkaW0xIGRpbTIgZiA9XG4gICAgZm9yIGkgPSAwIHRvIHByZWQgZGltMSBkb1xuICAgICAgZm9yIGogPSAwIHRvIHByZWQgZGltMiBkb1xuICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogKGYgaSBqKVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGYgPVxuICAgIGZvciBqID0gMSB0byBkaW0yIGRvXG4gICAgICBmb3IgaSA9IDEgdG8gZGltMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogKGYgaSBqKVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGluaXQgKHR5cGUgdCkga2luZCAobGF5b3V0IDogdCBsYXlvdXQpIGRpbTEgZGltMiBmID1cbiAgICBsZXQgYXJyID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBpblxuICAgIG1hdGNoIGxheW91dCB3aXRoXG4gICAgfCBDX2xheW91dCAtPiBjX2luaXQgYXJyIGRpbTEgZGltMiBmOyBhcnJcbiAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGY7IGFyclxuICBsZXQgb2ZfYXJyYXkgKHR5cGUgdCkga2luZCAobGF5b3V0OiB0IGxheW91dCkgZGF0YSA9XG4gICAgbGV0IGRpbTEgPSBBcnJheS5sZW5ndGggZGF0YSBpblxuICAgIGxldCBkaW0yID0gaWYgZGltMSA9IDAgdGhlbiAwIGVsc2UgQXJyYXkubGVuZ3RoIGRhdGEuKDApIGluXG4gICAgbGV0IGJhID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBpblxuICAgIGxldCBvZnMgPVxuICAgICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICAgICAgQ19sYXlvdXQgLT4gMFxuICAgICAgfCBGb3J0cmFuX2xheW91dCAtPiAxXG4gICAgaW5cbiAgICBmb3IgaSA9IDAgdG8gZGltMSAtIDEgZG9cbiAgICAgIGxldCByb3cgPSBkYXRhLihpKSBpblxuICAgICAgaWYgQXJyYXkubGVuZ3RoIHJvdyA8PiBkaW0yIHRoZW5cbiAgICAgICAgaW52YWxpZF9hcmcoXCJCaWdhcnJheS5BcnJheTIub2ZfYXJyYXk6IG5vbi1yZWN0YW5ndWxhciBkYXRhXCIpO1xuICAgICAgZm9yIGogPSAwIHRvIGRpbTIgLSAxIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgYmEgKGkgKyBvZnMpIChqICsgb2ZzKSByb3cuKGopXG4gICAgICBkb25lXG4gICAgZG9uZTtcbiAgICBiYVxuZW5kXG5cbm1vZHVsZSBBcnJheTMgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdCA9ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gIGxldCBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGRpbTMgPVxuICAgIEdlbmFycmF5LmNyZWF0ZSBraW5kIGxheW91dCBbfGRpbTE7IGRpbTI7IGRpbTN8XVxuICBleHRlcm5hbCBnZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gaW50IC0+ICdhID0gXCIlY2FtbF9iYV9yZWZfM1wiXG4gIGV4dGVybmFsIHNldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiJWNhbWxfYmFfc2V0XzNcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiAnYVxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3JlZl8zXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3NldF8zXCJcbiAgZXh0ZXJuYWwgZGltMTogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMVwiXG4gIGV4dGVybmFsIGRpbTI6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzJcIlxuICBleHRlcm5hbCBkaW0zOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8zXCJcbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcblxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICA9IFwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XCJcblxuICBsZXQgc2l6ZV9pbl9ieXRlcyBhcnIgPVxuICAgIChraW5kX3NpemVfaW5fYnl0ZXMgKGtpbmQgYXJyKSkgKiAoZGltMSBhcnIpICogKGRpbTIgYXJyKSAqIChkaW0zIGFycilcblxuICBleHRlcm5hbCBzdWJfbGVmdDogKCdhLCAnYiwgY19sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPiAoJ2EsICdiLCBjX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBleHRlcm5hbCBzdWJfcmlnaHQ6XG4gICAgICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgbGV0IHNsaWNlX2xlZnRfMSBhIG4gbSA9IEdlbmFycmF5LnNsaWNlX2xlZnQgYSBbfG47IG18XVxuICBsZXQgc2xpY2VfcmlnaHRfMSBhIG4gbSA9IEdlbmFycmF5LnNsaWNlX3JpZ2h0IGEgW3xuOyBtfF1cbiAgbGV0IHNsaWNlX2xlZnRfMiBhIG4gPSBHZW5hcnJheS5zbGljZV9sZWZ0IGEgW3xufF1cbiAgbGV0IHNsaWNlX3JpZ2h0XzIgYSBuID0gR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG58XVxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0ID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuICBsZXQgY19pbml0IGFyciBkaW0xIGRpbTIgZGltMyBmID1cbiAgICBmb3IgaSA9IDAgdG8gcHJlZCBkaW0xIGRvXG4gICAgICBmb3IgaiA9IDAgdG8gcHJlZCBkaW0yIGRvXG4gICAgICAgIGZvciBrID0gMCB0byBwcmVkIGRpbTMgZG9cbiAgICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogayAoZiBpIGogaylcbiAgICAgICAgZG9uZVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGRpbTMgZiA9XG4gICAgZm9yIGsgPSAxIHRvIGRpbTMgZG9cbiAgICAgIGZvciBqID0gMSB0byBkaW0yIGRvXG4gICAgICAgIGZvciBpID0gMSB0byBkaW0xIGRvXG4gICAgICAgICAgdW5zYWZlX3NldCBhcnIgaSBqIGsgKGYgaSBqIGspXG4gICAgICAgIGRvbmVcbiAgICAgIGRvbmVcbiAgICBkb25lXG4gIGxldCBpbml0ICh0eXBlIHQpIGtpbmQgKGxheW91dCA6IHQgbGF5b3V0KSBkaW0xIGRpbTIgZGltMyBmID1cbiAgICBsZXQgYXJyID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBkaW0zIGluXG4gICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICB8IENfbGF5b3V0IC0+IGNfaW5pdCBhcnIgZGltMSBkaW0yIGRpbTMgZjsgYXJyXG4gICAgfCBGb3J0cmFuX2xheW91dCAtPiBmb3J0cmFuX2luaXQgYXJyIGRpbTEgZGltMiBkaW0zIGY7IGFyclxuICBsZXQgb2ZfYXJyYXkgKHR5cGUgdCkga2luZCAobGF5b3V0OiB0IGxheW91dCkgZGF0YSA9XG4gICAgbGV0IGRpbTEgPSBBcnJheS5sZW5ndGggZGF0YSBpblxuICAgIGxldCBkaW0yID0gaWYgZGltMSA9IDAgdGhlbiAwIGVsc2UgQXJyYXkubGVuZ3RoIGRhdGEuKDApIGluXG4gICAgbGV0IGRpbTMgPSBpZiBkaW0yID0gMCB0aGVuIDAgZWxzZSBBcnJheS5sZW5ndGggZGF0YS4oMCkuKDApIGluXG4gICAgbGV0IGJhID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBkaW0zIGluXG4gICAgbGV0IG9mcyA9XG4gICAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgICAgICBDX2xheW91dCAtPiAwXG4gICAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IDFcbiAgICBpblxuICAgIGZvciBpID0gMCB0byBkaW0xIC0gMSBkb1xuICAgICAgbGV0IHJvdyA9IGRhdGEuKGkpIGluXG4gICAgICBpZiBBcnJheS5sZW5ndGggcm93IDw+IGRpbTIgdGhlblxuICAgICAgICBpbnZhbGlkX2FyZyhcIkJpZ2FycmF5LkFycmF5My5vZl9hcnJheTogbm9uLWN1YmljIGRhdGFcIik7XG4gICAgICBmb3IgaiA9IDAgdG8gZGltMiAtIDEgZG9cbiAgICAgICAgbGV0IGNvbCA9IHJvdy4oaikgaW5cbiAgICAgICAgaWYgQXJyYXkubGVuZ3RoIGNvbCA8PiBkaW0zIHRoZW5cbiAgICAgICAgICBpbnZhbGlkX2FyZyhcIkJpZ2FycmF5LkFycmF5My5vZl9hcnJheTogbm9uLWN1YmljIGRhdGFcIik7XG4gICAgICAgIGZvciBrID0gMCB0byBkaW0zIC0gMSBkb1xuICAgICAgICAgIHVuc2FmZV9zZXQgYmEgKGkgKyBvZnMpIChqICsgb2ZzKSAoayArIG9mcykgY29sLihrKVxuICAgICAgICBkb25lXG4gICAgICBkb25lXG4gICAgZG9uZTtcbiAgICBiYVxuZW5kXG5cbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MDogKCdhLCAnYiwgJ2MpIEFycmF5MC50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MTogKCdhLCAnYiwgJ2MpIEFycmF5MS50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MjogKCdhLCAnYiwgJ2MpIEFycmF5Mi50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MzogKCdhLCAnYiwgJ2MpIEFycmF5My50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmxldCBhcnJheTBfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAwIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkwX29mX2dlbmFycmF5XCJcbmxldCBhcnJheTFfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAxIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkxX29mX2dlbmFycmF5XCJcbmxldCBhcnJheTJfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAyIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkyX29mX2dlbmFycmF5XCJcbmxldCBhcnJheTNfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAzIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkzX29mX2dlbmFycmF5XCJcblxuZXh0ZXJuYWwgcmVzaGFwZTpcbiAgICgnYSwgJ2IsICdjKSBHZW5hcnJheS50IC0+IGludCBhcnJheSAtPiAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICAgPSBcImNhbWxfYmFfcmVzaGFwZVwiXG5sZXQgcmVzaGFwZV8wIGEgPSByZXNoYXBlIGEgW3x8XVxubGV0IHJlc2hhcGVfMSBhIGRpbTEgPSByZXNoYXBlIGEgW3xkaW0xfF1cbmxldCByZXNoYXBlXzIgYSBkaW0xIGRpbTIgPSByZXNoYXBlIGEgW3xkaW0xO2RpbTJ8XVxubGV0IHJlc2hhcGVfMyBhIGRpbTEgZGltMiBkaW0zID0gcmVzaGFwZSBhIFt8ZGltMTtkaW0yO2RpbTN8XVxuXG4oKiBGb3JjZSBjYW1sX2JhX2dldF97MSwyLDMsTn0gdG8gYmUgbGlua2VkIGluLCBzaW5jZSB3ZSBkb24ndCByZWZlclxuICAgdG8gdGhvc2UgcHJpbWl0aXZlcyBkaXJlY3RseSBpbiB0aGlzIGZpbGUgKilcblxubGV0IF8gPVxuICBsZXQgXyA9IEdlbmFycmF5LmdldCBpblxuICBsZXQgXyA9IEFycmF5MS5nZXQgaW5cbiAgbGV0IF8gPSBBcnJheTIuZ2V0IGluXG4gIGxldCBfID0gQXJyYXkzLmdldCBpblxuICAoKVxuXG5bQEBAb2NhbWwud2FybmluZyBcIi0zMlwiXVxuZXh0ZXJuYWwgZ2V0MTogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX2dldF8xXCJcbmV4dGVybmFsIGdldDI6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9nZXRfMlwiXG5leHRlcm5hbCBnZXQzOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfZ2V0XzNcIlxuZXh0ZXJuYWwgc2V0MTogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX3NldF8xXCJcbmV4dGVybmFsIHNldDI6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9zZXRfMlwiXG5leHRlcm5hbCBzZXQzOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfc2V0XzNcIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAyMSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBpbl9jaGFubmVsXG5cbnR5cGUgb3Blbl9mbGFnID0gU3RkbGliLm9wZW5fZmxhZyA9XG4gIHwgT3Blbl9yZG9ubHlcbiAgfCBPcGVuX3dyb25seVxuICB8IE9wZW5fYXBwZW5kXG4gIHwgT3Blbl9jcmVhdFxuICB8IE9wZW5fdHJ1bmNcbiAgfCBPcGVuX2V4Y2xcbiAgfCBPcGVuX2JpbmFyeVxuICB8IE9wZW5fdGV4dFxuICB8IE9wZW5fbm9uYmxvY2tcblxubGV0IHN0ZGluID0gU3RkbGliLnN0ZGluXG5sZXQgb3Blbl9iaW4gPSBTdGRsaWIub3Blbl9pbl9iaW5cbmxldCBvcGVuX3RleHQgPSBTdGRsaWIub3Blbl9pblxubGV0IG9wZW5fZ2VuID0gU3RkbGliLm9wZW5faW5fZ2VuXG5cbmxldCB3aXRoX29wZW4gb3BlbmZ1biBzIGYgPVxuICBsZXQgaWMgPSBvcGVuZnVuIHMgaW5cbiAgRnVuLnByb3RlY3QgfmZpbmFsbHk6KGZ1biAoKSAtPiBTdGRsaWIuY2xvc2VfaW5fbm9lcnIgaWMpXG4gICAgKGZ1biAoKSAtPiBmIGljKVxuXG5sZXQgd2l0aF9vcGVuX2JpbiBzIGYgPVxuICB3aXRoX29wZW4gU3RkbGliLm9wZW5faW5fYmluIHMgZlxuXG5sZXQgd2l0aF9vcGVuX3RleHQgcyBmID1cbiAgd2l0aF9vcGVuIFN0ZGxpYi5vcGVuX2luIHMgZlxuXG5sZXQgd2l0aF9vcGVuX2dlbiBmbGFncyBwZXJtIHMgZiA9XG4gIHdpdGhfb3BlbiAoU3RkbGliLm9wZW5faW5fZ2VuIGZsYWdzIHBlcm0pIHMgZlxuXG5sZXQgc2VlayA9IFN0ZGxpYi5MYXJnZUZpbGUuc2Vla19pblxubGV0IHBvcyA9IFN0ZGxpYi5MYXJnZUZpbGUucG9zX2luXG5sZXQgbGVuZ3RoID0gU3RkbGliLkxhcmdlRmlsZS5pbl9jaGFubmVsX2xlbmd0aFxubGV0IGNsb3NlID0gU3RkbGliLmNsb3NlX2luXG5sZXQgY2xvc2Vfbm9lcnIgPSBTdGRsaWIuY2xvc2VfaW5fbm9lcnJcblxubGV0IGlucHV0X2NoYXIgaWMgPVxuICBtYXRjaCBTdGRsaWIuaW5wdXRfY2hhciBpYyB3aXRoXG4gIHwgYyAtPiBTb21lIGNcbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG5sZXQgaW5wdXRfYnl0ZSBpYyA9XG4gIG1hdGNoIFN0ZGxpYi5pbnB1dF9ieXRlIGljIHdpdGhcbiAgfCBuIC0+IFNvbWUgblxuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbmxldCBpbnB1dF9saW5lIGljID1cbiAgbWF0Y2ggU3RkbGliLmlucHV0X2xpbmUgaWMgd2l0aFxuICB8IHMgLT4gU29tZSBzXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxubGV0IGlucHV0ID0gU3RkbGliLmlucHV0XG5cbmxldCByZWFsbHlfaW5wdXQgaWMgYnVmIHBvcyBsZW4gPVxuICBtYXRjaCBTdGRsaWIucmVhbGx5X2lucHV0IGljIGJ1ZiBwb3MgbGVuIHdpdGhcbiAgfCAoKSAtPiBTb21lICgpXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxubGV0IHJlYWxseV9pbnB1dF9zdHJpbmcgaWMgbGVuID1cbiAgbWF0Y2ggU3RkbGliLnJlYWxseV9pbnB1dF9zdHJpbmcgaWMgbGVuIHdpdGhcbiAgfCBzIC0+IFNvbWUgc1xuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbigqIFJlYWQgdXAgdG8gW2xlbl0gYnl0ZXMgaW50byBbYnVmXSwgc3RhcnRpbmcgYXQgW29mc10uIFJldHVybiB0b3RhbCBieXRlc1xuICAgcmVhZC4gKilcbmxldCByZWFkX3VwdG8gaWMgYnVmIG9mcyBsZW4gPVxuICBsZXQgcmVjIGxvb3Agb2ZzIGxlbiA9XG4gICAgaWYgbGVuID0gMCB0aGVuIG9mc1xuICAgIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gU3RkbGliLmlucHV0IGljIGJ1ZiBvZnMgbGVuIGluXG4gICAgICBpZiByID0gMCB0aGVuXG4gICAgICAgIG9mc1xuICAgICAgZWxzZVxuICAgICAgICBsb29wIChvZnMgKyByKSAobGVuIC0gcilcbiAgICBlbmRcbiAgaW5cbiAgbG9vcCBvZnMgbGVuIC0gb2ZzXG5cbigqIEJlc3QgZWZmb3J0IGF0dGVtcHQgdG8gcmV0dXJuIGEgYnVmZmVyIHdpdGggPj0gKG9mcyArIG4pIGJ5dGVzIG9mIHN0b3JhZ2UsXG4gICBhbmQgc3VjaCB0aGF0IGl0IGNvaW5jaWRlcyB3aXRoIFtidWZdIGF0IGluZGljZXMgPCBbb2ZzXS5cblxuICAgVGhlIHJldHVybmVkIGJ1ZmZlciBpcyBlcXVhbCB0byBbYnVmXSBpdHNlbGYgaWYgaXQgYWxyZWFkeSBoYXMgc3VmZmljaWVudFxuICAgZnJlZSBzcGFjZS5cblxuICAgVGhlIHJldHVybmVkIGJ1ZmZlciBtYXkgaGF2ZSAqZmV3ZXIqIHRoYW4gW29mcyArIG5dIGJ5dGVzIG9mIHN0b3JhZ2UgaWYgdGhpc1xuICAgbnVtYmVyIGlzID4gW1N5cy5tYXhfc3RyaW5nX2xlbmd0aF0uIEhvd2V2ZXIgdGhlIHJldHVybmVkIGJ1ZmZlciB3aWxsXG4gICAqYWx3YXlzKiBoYXZlID4gW29mc10gYnl0ZXMgb2Ygc3RvcmFnZS4gSW4gdGhlIGxpbWl0aW5nIGNhc2Ugd2hlbiBbb2ZzID0gbGVuXG4gICA9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aF0gKHNvIHRoYXQgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHJlc2l6ZSB0aGUgYnVmZmVyIGF0XG4gICBhbGwpLCBhbiBleGNlcHRpb24gaXMgcmFpc2VkLiAqKVxuXG5sZXQgZW5zdXJlIGJ1ZiBvZnMgbiA9XG4gIGxldCBsZW4gPSBCeXRlcy5sZW5ndGggYnVmIGluXG4gIGlmIGxlbiA+PSBvZnMgKyBuIHRoZW4gYnVmXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgbmV3X2xlbiA9IHJlZiBsZW4gaW5cbiAgICB3aGlsZSAhbmV3X2xlbiA8IG9mcyArIG4gZG9cbiAgICAgIG5ld19sZW4gOj0gMiAqICFuZXdfbGVuICsgMVxuICAgIGRvbmU7XG4gICAgbGV0IG5ld19sZW4gPSAhbmV3X2xlbiBpblxuICAgIGxldCBuZXdfbGVuID1cbiAgICAgIGlmIG5ld19sZW4gPD0gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW5cbiAgICAgICAgbmV3X2xlblxuICAgICAgZWxzZSBpZiBvZnMgPCBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlblxuICAgICAgICBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgICAgIGVsc2VcbiAgICAgICAgZmFpbHdpdGggXCJJbl9jaGFubmVsLmlucHV0X2FsbDogY2hhbm5lbCBjb250ZW50IFxcXG4gICAgICAgICAgICAgICAgICBpcyBsYXJnZXIgdGhhbiBtYXhpbXVtIHN0cmluZyBsZW5ndGhcIlxuICAgIGluXG4gICAgbGV0IG5ld19idWYgPSBCeXRlcy5jcmVhdGUgbmV3X2xlbiBpblxuICAgIEJ5dGVzLmJsaXQgYnVmIDAgbmV3X2J1ZiAwIG9mcztcbiAgICBuZXdfYnVmXG4gIGVuZFxuXG5sZXQgaW5wdXRfYWxsIGljID1cbiAgbGV0IGNodW5rX3NpemUgPSA2NTUzNiBpbiAoKiBJT19CVUZGRVJfU0laRSAqKVxuICBsZXQgaW5pdGlhbF9zaXplID1cbiAgICB0cnlcbiAgICAgIFN0ZGxpYi5pbl9jaGFubmVsX2xlbmd0aCBpYyAtIFN0ZGxpYi5wb3NfaW4gaWNcbiAgICB3aXRoIFN5c19lcnJvciBfIC0+XG4gICAgICAtMVxuICBpblxuICBsZXQgaW5pdGlhbF9zaXplID0gaWYgaW5pdGlhbF9zaXplIDwgMCB0aGVuIGNodW5rX3NpemUgZWxzZSBpbml0aWFsX3NpemUgaW5cbiAgbGV0IGluaXRpYWxfc2l6ZSA9XG4gICAgaWYgaW5pdGlhbF9zaXplIDw9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuXG4gICAgICBpbml0aWFsX3NpemVcbiAgICBlbHNlXG4gICAgICBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgaW5cbiAgbGV0IGJ1ZiA9IEJ5dGVzLmNyZWF0ZSBpbml0aWFsX3NpemUgaW5cbiAgbGV0IG5yZWFkID0gcmVhZF91cHRvIGljIGJ1ZiAwIGluaXRpYWxfc2l6ZSBpblxuICBpZiBucmVhZCA8IGluaXRpYWxfc2l6ZSB0aGVuICgqIEVPRiByZWFjaGVkLCBidWZmZXIgcGFydGlhbGx5IGZpbGxlZCAqKVxuICAgIEJ5dGVzLnN1Yl9zdHJpbmcgYnVmIDAgbnJlYWRcbiAgZWxzZSBiZWdpbiAoKiBucmVhZCA9IGluaXRpYWxfc2l6ZSwgbWF5YmUgRU9GIHJlYWNoZWQgKilcbiAgICBtYXRjaCBTdGRsaWIuaW5wdXRfY2hhciBpYyB3aXRoXG4gICAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT5cbiAgICAgICAgKCogRU9GIHJlYWNoZWQsIGJ1ZmZlciBpcyBjb21wbGV0ZWx5IGZpbGxlZCAqKVxuICAgICAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIGJ1ZlxuICAgIHwgYyAtPlxuICAgICAgICAoKiBFT0Ygbm90IHJlYWNoZWQgKilcbiAgICAgICAgbGV0IHJlYyBsb29wIGJ1ZiBvZnMgPVxuICAgICAgICAgIGxldCBidWYgPSBlbnN1cmUgYnVmIG9mcyBjaHVua19zaXplIGluXG4gICAgICAgICAgbGV0IHJlbSA9IEJ5dGVzLmxlbmd0aCBidWYgLSBvZnMgaW5cbiAgICAgICAgICAoKiBbcmVtXSBjYW4gYmUgPCBbY2h1bmtfc2l6ZV0gaWYgYnVmZmVyIHNpemUgY2xvc2UgdG9cbiAgICAgICAgICAgICBbU3lzLm1heF9zdHJpbmdfbGVuZ3RoXSAqKVxuICAgICAgICAgIGxldCByID0gcmVhZF91cHRvIGljIGJ1ZiBvZnMgcmVtIGluXG4gICAgICAgICAgaWYgciA8IHJlbSB0aGVuICgqIEVPRiByZWFjaGVkICopXG4gICAgICAgICAgICBCeXRlcy5zdWJfc3RyaW5nIGJ1ZiAwIChvZnMgKyByKVxuICAgICAgICAgIGVsc2UgKCogciA9IHJlbSAqKVxuICAgICAgICAgICAgbG9vcCBidWYgKG9mcyArIHJlbSlcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IGJ1ZiA9IGVuc3VyZSBidWYgbnJlYWQgKGNodW5rX3NpemUgKyAxKSBpblxuICAgICAgICBCeXRlcy5zZXQgYnVmIG5yZWFkIGM7XG4gICAgICAgIGxvb3AgYnVmIChucmVhZCArIDEpXG4gIGVuZFxuXG5sZXQgc2V0X2JpbmFyeV9tb2RlID0gU3RkbGliLnNldF9iaW5hcnlfbW9kZV9pblxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAyMSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBvdXRfY2hhbm5lbFxuXG50eXBlIG9wZW5fZmxhZyA9IFN0ZGxpYi5vcGVuX2ZsYWcgPVxuICB8IE9wZW5fcmRvbmx5XG4gIHwgT3Blbl93cm9ubHlcbiAgfCBPcGVuX2FwcGVuZFxuICB8IE9wZW5fY3JlYXRcbiAgfCBPcGVuX3RydW5jXG4gIHwgT3Blbl9leGNsXG4gIHwgT3Blbl9iaW5hcnlcbiAgfCBPcGVuX3RleHRcbiAgfCBPcGVuX25vbmJsb2NrXG5cbmxldCBzdGRvdXQgPSBTdGRsaWIuc3Rkb3V0XG5sZXQgc3RkZXJyID0gU3RkbGliLnN0ZGVyclxubGV0IG9wZW5fYmluID0gU3RkbGliLm9wZW5fb3V0X2JpblxubGV0IG9wZW5fdGV4dCA9IFN0ZGxpYi5vcGVuX291dFxubGV0IG9wZW5fZ2VuID0gU3RkbGliLm9wZW5fb3V0X2dlblxuXG5sZXQgd2l0aF9vcGVuIG9wZW5mdW4gcyBmID1cbiAgbGV0IG9jID0gb3BlbmZ1biBzIGluXG4gIEZ1bi5wcm90ZWN0IH5maW5hbGx5OihmdW4gKCkgLT4gU3RkbGliLmNsb3NlX291dF9ub2VyciBvYylcbiAgICAoZnVuICgpIC0+IGYgb2MpXG5cbmxldCB3aXRoX29wZW5fYmluIHMgZiA9XG4gIHdpdGhfb3BlbiBTdGRsaWIub3Blbl9vdXRfYmluIHMgZlxuXG5sZXQgd2l0aF9vcGVuX3RleHQgcyBmID1cbiAgd2l0aF9vcGVuIFN0ZGxpYi5vcGVuX291dCBzIGZcblxubGV0IHdpdGhfb3Blbl9nZW4gZmxhZ3MgcGVybSBzIGYgPVxuICB3aXRoX29wZW4gKFN0ZGxpYi5vcGVuX291dF9nZW4gZmxhZ3MgcGVybSkgcyBmXG5cbmxldCBzZWVrID0gU3RkbGliLkxhcmdlRmlsZS5zZWVrX291dFxubGV0IHBvcyA9IFN0ZGxpYi5MYXJnZUZpbGUucG9zX291dFxubGV0IGxlbmd0aCA9IFN0ZGxpYi5MYXJnZUZpbGUub3V0X2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2UgPSBTdGRsaWIuY2xvc2Vfb3V0XG5sZXQgY2xvc2Vfbm9lcnIgPSBTdGRsaWIuY2xvc2Vfb3V0X25vZXJyXG5sZXQgZmx1c2ggPSBTdGRsaWIuZmx1c2hcbmxldCBmbHVzaF9hbGwgPSBTdGRsaWIuZmx1c2hfYWxsXG5sZXQgb3V0cHV0X2NoYXIgPSBTdGRsaWIub3V0cHV0X2NoYXJcbmxldCBvdXRwdXRfYnl0ZSA9IFN0ZGxpYi5vdXRwdXRfYnl0ZVxubGV0IG91dHB1dF9zdHJpbmcgPSBTdGRsaWIub3V0cHV0X3N0cmluZ1xubGV0IG91dHB1dF9ieXRlcyA9IFN0ZGxpYi5vdXRwdXRfYnl0ZXNcbmxldCBvdXRwdXQgPSBTdGRsaWIub3V0cHV0XG5sZXQgb3V0cHV0X3N1YnN0cmluZyA9IFN0ZGxpYi5vdXRwdXRfc3Vic3RyaW5nXG5sZXQgc2V0X2JpbmFyeV9tb2RlID0gU3RkbGliLnNldF9iaW5hcnlfbW9kZV9vdXRcblxuZXh0ZXJuYWwgc2V0X2J1ZmZlcmVkIDogdCAtPiBib29sIC0+IHVuaXQgPSBcImNhbWxfbWxfc2V0X2J1ZmZlcmVkXCJcblxuZXh0ZXJuYWwgaXNfYnVmZmVyZWQgOiB0IC0+IGJvb2wgPSBcImNhbWxfbWxfaXNfYnVmZmVyZWRcIlxuIiwiKCogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIERhdGVzX2NhbGMgbGlicmFyeS4gQ29weXJpZ2h0IChDKSAyMDIyIElucmlhLFxuICAgY29udHJpYnV0b3JzOiBEZW5pcyBNZXJpZ291eCA8ZGVuaXMubWVyaWdvdXhAaW5yaWEuZnI+LCBBeW1lcmljIEZyb21oZXJ6XG4gICA8YXltZXJpYy5mcm9taGVyekBpbnJpYS5mcj4sIFJhcGhhw6tsIE1vbmF0IDxyYXBoYWVsLm1vbmF0QGxpcDYuZnI+XG5cbiAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90XG4gICB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZlxuICAgdGhlIExpY2Vuc2UgYXRcblxuICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVFxuICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlXG4gICBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlclxuICAgdGhlIExpY2Vuc2UuICopXG5cbltAQEB3YXJuaW5nIFwiLTI3XCJdXG5cblxudHlwZSBkYXRlID0geyB5ZWFyIDogaW50OyBtb250aCA6IGludDsgZGF5IDogaW50IH1cbigqKiBBIHZhbGlkIGRhdGUgaW4gdGhlIHN0YW5kYXJkIEdyZWdvcmlhbiBjYWxlbmRhci4gKilcblxudHlwZSBwZXJpb2QgPSB7IHllYXJzIDogaW50OyBtb250aHMgOiBpbnQ7IGRheXMgOiBpbnQgfVxuKCoqIEEgcGVyaW9kIGNhbiBiZSBhbnkgbnVtYmVyIGFuZCBjb21iaW5hdGlvbiBvZiBkYXlzLCBtb250aHMsIHllYXJzLiAqKVxuXG5leGNlcHRpb24gSW52YWxpZERhdGVcbmV4Y2VwdGlvbiBBbWJpZ3VvdXNDb21wdXRhdGlvblxuXG50eXBlIGRhdGVfcm91bmRpbmcgPVxuICB8IFJvdW5kVXBcbiAgfCBSb3VuZERvd25cbiAgfCBBYm9ydE9uUm91bmRcbiAgICAgICgqKiBXaGVuIGNob29zaW5nIFtBYm9ydE9uUm91bmRdLCBmdW5jdGlvbnMgbWF5IHJhaXNlXG4gICAgICAgICAgW0FtYmlndW91c0NvbXB1dGF0aW9uXS4gKilcblxuKCoqIHsyIEZ1bmN0aW9ucyBvbiBwZXJpb2RzfSopXG5sZXQgZm9ybWF0X3BlcmlvZCAoZm10IDogRm9ybWF0LmZvcm1hdHRlcikgKHAgOiBwZXJpb2QpIDogdW5pdCA9XG4gIEZvcm1hdC5mcHJpbnRmIGZtdCBcIlslZCB5ZWFycywgJWQgbW9udGhzLCAlZCBkYXlzXVwiIHAueWVhcnMgcC5tb250aHMgcC5kYXlzXG5cbmxldCBtYWtlX3BlcmlvZCB+KHllYXJzIDogaW50KSB+KG1vbnRocyA6IGludCkgfihkYXlzIDogaW50KSA6IHBlcmlvZCA9XG4gIHsgeWVhcnM7IG1vbnRoczsgZGF5cyB9XG5cbmxldCBhZGRfcGVyaW9kcyAoZDEgOiBwZXJpb2QpIChkMiA6IHBlcmlvZCkgOiBwZXJpb2QgPVxuICB7XG4gICAgeWVhcnMgPSBkMS55ZWFycyArIGQyLnllYXJzO1xuICAgIG1vbnRocyA9IGQxLm1vbnRocyArIGQyLm1vbnRocztcbiAgICBkYXlzID0gZDEuZGF5cyArIGQyLmRheXM7XG4gIH1cblxubGV0IHN1Yl9wZXJpb2RzIChkMSA6IHBlcmlvZCkgKGQyIDogcGVyaW9kKSA6IHBlcmlvZCA9XG4gIHtcbiAgICB5ZWFycyA9IGQxLnllYXJzIC0gZDIueWVhcnM7XG4gICAgbW9udGhzID0gZDEubW9udGhzIC0gZDIubW9udGhzO1xuICAgIGRheXMgPSBkMS5kYXlzIC0gZDIuZGF5cztcbiAgfVxuXG5sZXQgbXVsX3BlcmlvZCAoZDEgOiBwZXJpb2QpIChtIDogaW50KSA6IHBlcmlvZCA9XG4gIHsgeWVhcnMgPSBkMS55ZWFycyAqIG07IG1vbnRocyA9IGQxLm1vbnRocyAqIG07IGRheXMgPSBkMS5kYXlzICogbSB9XG5cbigqKiBAcmFpc2UgW0FtYmlndW91c0NvbXB1dGF0aW9uXVxuICAgICAgd2hlbiB0aGUgcGVyaW9kIGlzIGFueXRoaW5nIGVsc2UgdGhhbiBhIG51bWJlciBvZiBkYXlzLiAqKVxubGV0IHBlcmlvZF90b19kYXlzIChwIDogcGVyaW9kKSA6IGludCA9XG4gIGlmIHAueWVhcnMgPD4gMCB8fCBwLm1vbnRocyA8PiAwIHRoZW4gcmFpc2UgQW1iaWd1b3VzQ29tcHV0YXRpb24gZWxzZSBwLmRheXNcblxuKCoqIHsyIEZ1bmN0aW9ucyBvbiBkYXRlc30qKVxuXG5sZXQgaXNfbGVhcF95ZWFyICh5ZWFyIDogaW50KSA6IGJvb2wgPVxuICB5ZWFyIG1vZCA0MDAgPSAwIHx8ICh5ZWFyIG1vZCA0ID0gMCAmJiB5ZWFyIG1vZCAxMDAgPD4gMClcblxuKCoqIEByYWlzZSBbSW52YWxpZERhdGVdKilcbmxldCBkYXlzX2luX21vbnRoIH4obW9udGggOiBpbnQpIH4oaXNfbGVhcF95ZWFyIDogYm9vbCkgOiBpbnQgPVxuICBtYXRjaCBtb250aCB3aXRoXG4gIHwgMSB8IDMgfCA1IHwgNyB8IDggfCAxMCB8IDEyIC0+IDMxXG4gIHwgNCB8IDYgfCA5IHwgMTEgLT4gMzBcbiAgfCAyIC0+IGlmIGlzX2xlYXBfeWVhciB0aGVuIDI5IGVsc2UgMjhcbiAgfCBfIC0+IHJhaXNlIEludmFsaWREYXRlXG5cbmxldCBpc192YWxpZF9kYXRlIChkIDogZGF0ZSkgOiBib29sID1cbiAgdHJ5XG4gICAgZC5kYXkgPj0gMVxuICAgICYmIGQuZGF5IDw9IGRheXNfaW5fbW9udGggfm1vbnRoOmQubW9udGggfmlzX2xlYXBfeWVhcjooaXNfbGVhcF95ZWFyIGQueWVhcilcbiAgd2l0aCBJbnZhbGlkRGF0ZSAtPiBmYWxzZVxuXG4oKiogQHJhaXNlIFtJbnZhbGlkRGF0ZV0qKVxubGV0IG1ha2VfZGF0ZSB+KHllYXIgOiBpbnQpIH4obW9udGggOiBpbnQpIH4oZGF5IDogaW50KSA6IGRhdGUgPVxuICBsZXQgZCA9IHsgeWVhcjsgbW9udGg7IGRheSB9IGluXG4gIGlmIGlzX3ZhbGlkX2RhdGUgZCB0aGVuIGQgZWxzZSByYWlzZSBJbnZhbGlkRGF0ZVxuXG4oKiogUmV0dXJucyBuZXcgW3llYXIsIG1vbnRoXS4gUHJlY29uZGl0aW9uOiBbMSA8PSBtb250aCA8PSAxMl0gKilcbmxldCByZWMgYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kYXRlXG4gICAgfih5ZWFyIDogaW50KVxuICAgIH4obW9udGggOiBpbnQpXG4gICAgfihtb250aHMgOiBpbnQpIDogaW50ICogaW50ID1cbiAgbGV0IG5ld19tb250aCA9IG1vbnRoICsgbW9udGhzIGluXG4gIGlmIDEgPD0gbmV3X21vbnRoICYmIG5ld19tb250aCA8PSAxMiB0aGVuIHllYXIsIG5ld19tb250aFxuICBlbHNlIGlmIG5ld19tb250aCA+IDEyIHRoZW5cbiAgICBhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2RhdGUgfnllYXI6KHllYXIgKyAxKSB+bW9udGhcbiAgICAgIH5tb250aHM6KG1vbnRocyAtIDEyKVxuICBlbHNlXG4gICAgKCogbmV3X21vbnRoIDw9IDAgKilcbiAgICBhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2RhdGUgfnllYXI6KHllYXIgLSAxKSB+bW9udGhcbiAgICAgIH5tb250aHM6KG1vbnRocyArIDEyKVxuXG4oKiBJZiB0aGUgZGF0ZSBpcyB2YWxpZCwgZG9lcyBub3RoaW5nLiBXZSBleHBlY3QgdGhlIG1vbnRoIG51bWJlciB0byBiZSBhbHdheXNcbiAgIHZhbGlkIHdoZW4gY2FsbGluZyB0aGlzLiBJZiB0aGUgZGF0ZSBpcyBpbnZhbGlkIGR1ZSB0byB0aGUgZGF5IG51bWJlciwgdGhlblxuICAgdGhpcyBmdW5jdGlvbiByb3VuZHMgZG93bjogaWYgdGhlIGRheSBudW1iZXIgaXMgPj0gZGF5c19pbl9tb250aCwgdG8gdGhlIGxhc3RcbiAgIGRheSBvZiB0aGUgY3VycmVudCBtb250aC4gKilcbmxldCBwcmV2X3ZhbGlkX2RhdGUgKGQgOiBkYXRlKSA6IGRhdGUgPVxuICBhc3NlcnQgKDEgPD0gZC5tb250aCAmJiBkLm1vbnRoIDw9IDEyKTtcbiAgYXNzZXJ0ICgxIDw9IGQuZGF5ICYmIGQuZGF5IDw9IDMxKTtcbiAgaWYgaXNfdmFsaWRfZGF0ZSBkIHRoZW4gZFxuICBlbHNlXG4gICAge1xuICAgICAgZCB3aXRoXG4gICAgICBkYXkgPSBkYXlzX2luX21vbnRoIH5tb250aDpkLm1vbnRoIH5pc19sZWFwX3llYXI6KGlzX2xlYXBfeWVhciBkLnllYXIpO1xuICAgIH1cblxuKCogSWYgdGhlIGRhdGUgaXMgdmFsaWQsIGRvZXMgbm90aGluZy4gV2UgZXhwZWN0IHRoZSBtb250aCBudW1iZXIgdG8gYmUgYWx3YXlzXG4gICB2YWxpZCB3aGVuIGNhbGxpbmcgdGhpcy4gSWYgdGhlIGRhdGUgaXMgaW52YWxpZCBkdWUgdG8gdGhlIGRheSBudW1iZXIsIHRoZW5cbiAgIHRoaXMgZnVuY3Rpb24gcm91bmRzIGRvd246IGlmIHRoZSBkYXkgbnVtYmVyIGlzID49IGRheXNfaW5fbW9udGgsIHRvIHRoZVxuICAgZmlyc3QgZGF5IG9mIHRoZSBuZXh0IG1vbnRoLiAqKVxubGV0IG5leHRfdmFsaWRfZGF0ZSAoZCA6IGRhdGUpIDogZGF0ZSA9XG4gIGFzc2VydCAoMSA8PSBkLm1vbnRoICYmIGQubW9udGggPD0gMTIpO1xuICBhc3NlcnQgKDEgPD0gZC5kYXkgJiYgZC5kYXkgPD0gMzEpO1xuICBpZiBpc192YWxpZF9kYXRlIGQgdGhlbiBkXG4gIGVsc2VcbiAgICBsZXQgbmV3X3llYXIsIG5ld19tb250aCA9XG4gICAgICBhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2RhdGUgfnllYXI6ZC55ZWFyIH5tb250aDpkLm1vbnRoIH5tb250aHM6MVxuICAgIGluXG4gICAgeyB5ZWFyID0gbmV3X3llYXI7IG1vbnRoID0gbmV3X21vbnRoOyBkYXkgPSAxIH1cblxubGV0IHJvdW5kX2RhdGUgfihyb3VuZCA6IGRhdGVfcm91bmRpbmcpIChuZXdfZGF0ZSA6IGRhdGUpID1cbiAgaWYgaXNfdmFsaWRfZGF0ZSBuZXdfZGF0ZSB0aGVuIG5ld19kYXRlXG4gIGVsc2VcbiAgICBtYXRjaCByb3VuZCB3aXRoXG4gICAgfCBBYm9ydE9uUm91bmQgLT4gcmFpc2UgQW1iaWd1b3VzQ29tcHV0YXRpb25cbiAgICB8IFJvdW5kRG93biAtPiBwcmV2X3ZhbGlkX2RhdGUgbmV3X2RhdGVcbiAgICB8IFJvdW5kVXAgLT4gbmV4dF92YWxpZF9kYXRlIG5ld19kYXRlXG5cbigqKiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZXZlciBjYWxsZWQgZnJvbSBgYWRkX2RhdGVzYCBiZWxvdy5cbiAgICBIZW5jZSwgYW55IGNhbGwgdG8gYGFkZF9kYXRlc195ZWFyc2Agd2lsbCBiZSBmb2xsb3dlZCBieSBhIGNhbGxcbiAgICB0byBgYWRkX2RhdGVzX21vbnRoYC4gV2UgdGhlcmVmb3JlIHBlcmZvcm0gYSBzaW5nbGUgcm91bmRpbmdcbiAgICBpbiBgYWRkX2RhdGVzX21vbnRoYCwgdG8gYXZvaWQgaW50cm9kdWNpbmcgYWRkaXRpb25hbCBpbXByZWNpc2lvbiBoZXJlLFxuICAgIGFuZCB0byBlbnN1cmUgdGhhdCBhZGRpbmcgbiB5ZWFycyArIG0gbW9udGhzIGlzIGFsd2F5cyBlcXVpdmFsZW50IHRvXG4gICAgYWRkaW5nICgxMm4gKyBtKSBtb250aHMgKilcbmxldCBhZGRfZGF0ZXNfeWVhcnMgfihyb3VuZCA6IGRhdGVfcm91bmRpbmcpIChkIDogZGF0ZSkgKHllYXJzIDogaW50KSA6IGRhdGUgPVxuICB7IGQgd2l0aCB5ZWFyID0gZC55ZWFyICsgeWVhcnMgfVxuXG5sZXQgYWRkX2RhdGVzX21vbnRoIH4ocm91bmQgOiBkYXRlX3JvdW5kaW5nKSAoZCA6IGRhdGUpIChtb250aHMgOiBpbnQpIDogZGF0ZSA9XG4gIGxldCBuZXdfeWVhciwgbmV3X21vbnRoID1cbiAgICBhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2RhdGUgfnllYXI6ZC55ZWFyIH5tb250aDpkLm1vbnRoIH5tb250aHNcbiAgaW5cbiAgbGV0IG5ld19kYXRlID0geyBkIHdpdGggeWVhciA9IG5ld195ZWFyOyBtb250aCA9IG5ld19tb250aCB9IGluXG4gIHJvdW5kX2RhdGUgfnJvdW5kIG5ld19kYXRlXG5cbmxldCByZWMgYWRkX2RhdGVzX2RheXMgKGQgOiBkYXRlKSAoZGF5cyA6IGludCkgPVxuICAoKiBIZWxsbywgZGVhciByZWFkZXIhIEJ1Y2tsZSB1cCBiZWNhdXNlIGl0IHdpbGwgYmUgYSBoYXJkIHJpZGUuIFRoZSBmaXJzdFxuICAgICB0aGluZyB0byBkbyBoZXJlIGlzIHRvIHJldHJpZXZlIGhvdyBtYW55IGRheXMgdGhlcmUgYXJlIGluIHRoZSBjdXJyZW50XG4gICAgIG1vbnRoIG9mIFtkXS4gKilcbiAgbGV0IGRheXNfaW5fZF9tb250aCA9XG4gICAgZGF5c19pbl9tb250aCB+bW9udGg6ZC5tb250aCB+aXNfbGVhcF95ZWFyOihpc19sZWFwX3llYXIgZC55ZWFyKVxuICBpblxuICAoKiBOb3csIHdlIGNhc2UgYW5hbHl6ZSBvZiB0aGUgc2l0dWF0aW9uLiBUbyBkbyB0aGF0LCB3ZSBhZGQgdGhlIGN1cnJlbnQgZGF5c1xuICAgICBvZiB0aGUgbW9udGggd2l0aCBbZGF5c10sIGFuZCBzZWUgd2hhdCBoYXBwZW5zLiBCZXdhcmUsIFtkYXlzXSBpcyBhbGdlYnJhaWNcbiAgICAgYW5kIGNhbiBiZSBuZWdhdGl2ZSEgKilcbiAgbGV0IG5ld19kYXkgPSBkLmRheSArIGRheXMgaW5cbiAgaWYgMSA8PSBuZXdfZGF5ICYmIG5ld19kYXkgPD0gZGF5c19pbl9kX21vbnRoIHRoZW5cbiAgICAoKiBUaGUgZmlyc3QgY2FzZSBpcyB0aGUgZWFzeSBvbmU6IHdoZW4geW91IGFkZCBbZGF5c10sIHRoZSBuZXcgZGF5IGtlZXBzXG4gICAgICAgYmVpbmcgYSB2YWxpZCBkYXkgaW4gdGhlIGN1cnJlbnQgbW9udGguIEFsbCBpcyBnb29kLCB3ZSBzaW1wbHkgd2FycCB0b1xuICAgICAgIHRoYXQgbmV3IGRhdGUgd2l0aG91dCBhbnkgZnVydGhlciBjaGFuZ2VzLiAqKVxuICAgIHsgZCB3aXRoIGRheSA9IG5ld19kYXkgfVxuICBlbHNlIGlmIG5ld19kYXkgPj0gZGF5c19pbl9kX21vbnRoIHRoZW5cbiAgICAoKiBOb3csIHdlIGRlYWwgd2l0aCB0aGUgY2FzZSB3aGVyZSB0aGVyZSBpcyBhbiBvdmVyZmxvdyA6IHlvdSBoYXZlIGFkZGVkXG4gICAgICAgdG9vIG1hbnkgZGF5cyBhbmQgdGhlIGN1cnJlbnQgbW9udGggY2Fubm90IGhhbmRsZSB0aGVtIGFueSBtb3JlLiBUaGVcbiAgICAgICBzdHJhdGVneSBoZXJlIGlzIHRvIGZpbGwgdGhlIGN1cnJlbnQgbW9udGgsIGFuZCBsZXQgdGhlIG5leHQgbW9udGggaGFuZGxlXG4gICAgICAgdGhlIHNpdHVhdGlvbiB2aWEgYSByZWN1cnNpdmUgY2FsbC4gKilcbiAgICBsZXQgbmV3X3llYXIsIG5ld19tb250aCA9XG4gICAgICBhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2RhdGUgfnllYXI6ZC55ZWFyIH5tb250aDpkLm1vbnRoIH5tb250aHM6MVxuICAgIGluXG4gICAgYWRkX2RhdGVzX2RheXNcbiAgICAgICgqIFdlIHdhcnAgdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgbmV4dCBtb250aCEgKilcbiAgICAgIHsgeWVhciA9IG5ld195ZWFyOyBtb250aCA9IG5ld19tb250aDsgZGF5ID0gMSB9XG4gICAgICAoKiBOb3cgd2UgY29tcHV0ZSBob3cgbWFueSBkYXlzIHdlIHN0aWxsIGhhdmUgbGVmdCB0byBhZGQuIEJlY2F1c2Ugd2UgaGF2ZVxuICAgICAgICAgd2FycGVkIHRvIHRoZSBuZXh0IG1vbnRoLCB3ZSBhbHJlYWR5IGhhdmUgYWRkZWQgdGhlIHJlc3Qgb2YgdGhlIGRheXMgaW5cbiAgICAgICAgIHRoZSBjdXJyZW50IG1vbnRoOiBbZGF5c19pbl9kX21vbnRoIC0gZC5kYXldLiBCdXQgdGhlbiB3ZSBzd2l0Y2hcbiAgICAgICAgIG1vbnRocywgYW5kIHRoYXQgY29ycmVzcG9uZHMgdG8gYWRkaW5nIGFub3RoZXIgZGF5LiAqKVxuICAgICAgKGRheXMgLSAoZGF5c19pbl9kX21vbnRoIC0gZC5kYXkpIC0gMSlcbiAgZWxzZVxuICAgICgqIFRoZSBsYXN0IGNhc2UgaXMgc3ltbWV0cmljYWwsIHdlIHN1YnN0cmFjdGVkIHRvbyBtYW55IGRheXMgYW5kIHRoZVxuICAgICAgIGN1cnJlbnQgbW9udGggY2FuJ3QgaGFuZGxlIGl0LiBTbyB3ZSB3YXJwIHRvIHRoZSBwcmV2aW91cyBtb250aCBhbmQgbGV0IGFcbiAgICAgICByZWN1cnNpdmUgY2FsbCBoYW5kbGUgdGhlIHNpdHVhdGlvbiBmcm9tIHRoZXJlLiAqKVxuICAgIGxldCBuZXdfeWVhciwgbmV3X21vbnRoID1cbiAgICAgIGFkZF9tb250aHNfdG9fZmlyc3Rfb2ZfbW9udGhfZGF0ZSB+eWVhcjpkLnllYXIgfm1vbnRoOmQubW9udGggfm1vbnRoczooLTEpXG4gICAgaW5cbiAgICBhZGRfZGF0ZXNfZGF5c1xuICAgICAgKCogV2Ugd2FycCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIHByZXZpb3VzIG1vbnRoLiAqKVxuICAgICAge1xuICAgICAgICB5ZWFyID0gbmV3X3llYXI7XG4gICAgICAgIG1vbnRoID0gbmV3X21vbnRoO1xuICAgICAgICBkYXkgPVxuICAgICAgICAgIGRheXNfaW5fbW9udGggfm1vbnRoOm5ld19tb250aCB+aXNfbGVhcF95ZWFyOihpc19sZWFwX3llYXIgbmV3X3llYXIpO1xuICAgICAgfVxuICAgICAgKCogV2hhdCByZW1haW5zIHRvIGJlIHN1YnN0cmFjdGVkIChhcyBbZGF5c10gaXMgbmVnYXRpdmUpIGhhcyB0byBiZVxuICAgICAgICAgZGltaW5pc2hlZCBieSB0aGUgbnVtYmVyIG9mIGRheXMgb2YgdGhlIGRhdGUgaW4gdGhlIGN1cnJlbnQgbW9udGguICopXG4gICAgICAoZGF5cyArIGQuZGF5KVxuXG4oKiogQHJhaXNlIFtBbWJpZ3VvdXNDb21wdXRhdGlvbl0gKilcbmxldCBhZGRfZGF0ZXMgPyhyb3VuZCA6IGRhdGVfcm91bmRpbmcgPSBBYm9ydE9uUm91bmQpIChkIDogZGF0ZSkgKHAgOiBwZXJpb2QpIDpcbiAgICBkYXRlID1cbiAgbGV0IGQgPSBhZGRfZGF0ZXNfeWVhcnMgfnJvdW5kIGQgcC55ZWFycyBpblxuICBsZXQgZCA9IGFkZF9kYXRlc19tb250aCB+cm91bmQgZCBwLm1vbnRocyBpblxuICBsZXQgZCA9IGFkZF9kYXRlc19kYXlzIGQgcC5kYXlzIGluXG4gIGRcblxubGV0IGNvbXBhcmVfZGF0ZXMgKGQxIDogZGF0ZSkgKGQyIDogZGF0ZSkgOiBpbnQgPVxuICBpZiBJbnQuY29tcGFyZSBkMS55ZWFyIGQyLnllYXIgPSAwIHRoZW5cbiAgICBpZiBJbnQuY29tcGFyZSBkMS5tb250aCBkMi5tb250aCA9IDAgdGhlbiBJbnQuY29tcGFyZSBkMS5kYXkgZDIuZGF5XG4gICAgZWxzZSBJbnQuY29tcGFyZSBkMS5tb250aCBkMi5tb250aFxuICBlbHNlIEludC5jb21wYXJlIGQxLnllYXIgZDIueWVhclxuXG4oKiogUmVzcGVjdHMgSVNPODYwMSBmb3JtYXQuICopXG5sZXQgZm9ybWF0X2RhdGUgKGZtdCA6IEZvcm1hdC5mb3JtYXR0ZXIpIChkIDogZGF0ZSkgOiB1bml0ID1cbiAgRm9ybWF0LmZwcmludGYgZm10IFwiJTA0ZC0lMDJkLSUwMmRcIiBkLnllYXIgZC5tb250aCBkLmRheVxuXG5sZXQgZmlyc3RfZGF5X29mX21vbnRoIChkIDogZGF0ZSkgOiBkYXRlID1cbiAgYXNzZXJ0KGlzX3ZhbGlkX2RhdGUgZCk7XG4gIG1ha2VfZGF0ZSB+eWVhcjpkLnllYXIgfm1vbnRoOmQubW9udGggfmRheToxXG5cbmxldCBsYXN0X2RheV9vZl9tb250aCAoZCA6IGRhdGUpIDogZGF0ZSA9XG4gIGFzc2VydChpc192YWxpZF9kYXRlIGQpO1xuICBsZXQgZGF5c19tb250aCA9IGRheXNfaW5fbW9udGggfm1vbnRoOmQubW9udGggfmlzX2xlYXBfeWVhcjooaXNfbGVhcF95ZWFyIGQueWVhcikgaW5cbiAgbWFrZV9kYXRlIH55ZWFyOmQueWVhciB+bW9udGg6ZC5tb250aCB+ZGF5OmRheXNfbW9udGhcblxubGV0IG5lZ19wZXJpb2QgKHAgOiBwZXJpb2QpIDogcGVyaW9kID1cbiAgeyB5ZWFycyA9IC1wLnllYXJzOyBtb250aHMgPSAtcC5tb250aHM7IGRheXMgPSAtcC5kYXlzIH1cblxuKCoqIFRoZSByZXR1cm5lZCBbcGVyaW9kXSBpcyBhbHdheXMgZXhwcmVzc2VkIGFzIGEgbnVtYmVyIG9mIGRheXMuICopXG5sZXQgcmVjIHN1Yl9kYXRlcyAoZDEgOiBkYXRlKSAoZDIgOiBkYXRlKSA6IHBlcmlvZCA9XG4gIGlmIGQxLnllYXIgPSBkMi55ZWFyICYmIGQxLm1vbnRoID0gZDIubW9udGggdGhlblxuICAgICgqIEVhc3kgY2FzZTogdGhlIHR3byBkYXRlcyBhcmUgaW4gdGhlIHNhbWUgbW9udGguICopXG4gICAgbWFrZV9wZXJpb2QgfnllYXJzOjAgfm1vbnRoczowIH5kYXlzOihkMS5kYXkgLSBkMi5kYXkpXG4gIGVsc2VcbiAgICAoKiBPdGhlcndpc2Ugd2UnbGwgYWRkIGEgbW9udGggZm9yd2FyZCBpZiBkMiBpcyBhZnRlciBkMS4qKVxuICAgIGxldCBjbXAgPSBjb21wYXJlX2RhdGVzIGQxIGQyIGluXG4gICAgaWYgY21wIDwgMCB0aGVuXG4gICAgICAoKiBUaGUgY2FzZSB3ZXJlIGQxIGlzIGFmdGVyIGQyIGlzIHN5bW1ldHJpY2FsIHNvIHdlIGhhbmRsZSBpdCB2aWEgYVxuICAgICAgICAgcmVjdXJzaXZlIGNhbGwgY2hhbmdpbmcgdGhlIG9yZGVyIG9mIHRoZSBhcmd1bWVudHMuICopXG4gICAgICBuZWdfcGVyaW9kIChzdWJfZGF0ZXMgZDIgZDEpXG4gICAgZWxzZVxuICAgICAgKCogd2Uga25vdyBjbXAgIT0gMCBzbyBjbXAgPiAwKilcbiAgICAgICgqIFdlIHdhcnAgZDEgdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgbmV4dCBtb250aC4gKilcbiAgICAgIGxldCBuZXdfZDJfeWVhciwgbmV3X2QyX21vbnRoID1cbiAgICAgICAgYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kYXRlIH55ZWFyOmQyLnllYXIgfm1vbnRoOmQyLm1vbnRoXG4gICAgICAgICAgfm1vbnRoczoxXG4gICAgICBpblxuICAgICAgbGV0IG5ld19kMiA9IHsgeWVhciA9IG5ld19kMl95ZWFyOyBtb250aCA9IG5ld19kMl9tb250aDsgZGF5ID0gMSB9IGluXG4gICAgICAoKiBOZXh0IHdlIGRpdmlkZSB0aGUgcmVzdWx0IGJldHdlZW4gdGhlIG51bWJlciBvZiBkYXlzIHdlJ3ZlIGFkZGVkIHRvIGdvXG4gICAgICAgICB0byB0aGUgZW5kIG9mIHRoZSBtb250aCwgYW5kIHRoZSByZW1haW5pbmcgaGFuZGxlZCBieSBhIHJlY3Vyc2l2ZVxuICAgICAgICAgY2FsbC4gKilcbiAgICAgIGFkZF9wZXJpb2RzXG4gICAgICAgIChtYWtlX3BlcmlvZCB+eWVhcnM6MCB+bW9udGhzOjBcbiAgICAgICAgICAgfmRheXM6XG4gICAgICAgICAgICAgKCogVGhlIG51bWJlciBvZiBkYXlzIGlzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGxhc3QgZGF5IG9mIHRoZVxuICAgICAgICAgICAgICAgIG1vbnRoIGFuZCB0aGUgY3VycmVudCBkYXkgb2YgZDEsIHBsdXMgb25lIGRheSBiZWNhdXNlIHdlIGdvIHRvXG4gICAgICAgICAgICAgICAgdGhlIG5leHQgbW9udGguICopXG4gICAgICAgICAgICAgKGRheXNfaW5fbW9udGggfm1vbnRoOmQyLm1vbnRoIH5pc19sZWFwX3llYXI6KGlzX2xlYXBfeWVhciBkMi55ZWFyKVxuICAgICAgICAgICAgIC0gZDIuZGF5ICsgMSkpXG4gICAgICAgIChzdWJfZGF0ZXMgZDEgbmV3X2QyKVxuXG5sZXQgZGF0ZV90b195bWQgKGQgOiBkYXRlKSA6IGludCAqIGludCAqIGludCA9IGQueWVhciwgZC5tb250aCwgZC5kYXlcblxubGV0IHBlcmlvZF90b195bWRzIChwIDogcGVyaW9kKSA6IGludCAqIGludCAqIGludCA9IHAueWVhcnMsIHAubW9udGhzLCBwLmRheXNcbiIsIiMgMSBcImNvbW1vbi5tbFwiXG5sZXQgdmVyc2lvbiA9IFwiMi4wLjJcIlxuXG5leGNlcHRpb24gSnNvbl9lcnJvciBvZiBzdHJpbmdcblxubGV0IGpzb25fZXJyb3IgcyA9IHJhaXNlIChKc29uX2Vycm9yIHMpXG5cbmV4Y2VwdGlvbiBFbmRfb2ZfYXJyYXlcbmV4Y2VwdGlvbiBFbmRfb2Zfb2JqZWN0XG5leGNlcHRpb24gRW5kX29mX3R1cGxlXG5leGNlcHRpb24gRW5kX29mX2lucHV0XG5cbnR5cGUgaW5fcGFyYW0gPSB7XG4gIHN0cmluZ19idWYgOiBCdWZmZXIudFxufVxuXG5sZXQgY3JlYXRlX2luX3BhcmFtID8obGVuID0gMjU2KSAoKSA9IHtcbiAgc3RyaW5nX2J1ZiA9IEJ1ZmZlci5jcmVhdGUgbGVuXG59XG5cblxubGV0IHV0Zjhfb2ZfY29kZSBidWYgeCA9XG4gIGxldCBhZGQgPSBCdWZmZXIuYWRkX2NoYXIgaW5cblxuICAoKiBTdHJhaWdodCA8PSBkb2Vzbid0IHdvcmsgd2l0aCBzaWduZWQgMzEtYml0IGludHMgKilcbiAgbGV0IG1heGJpdHMgbiB4ID0geCBsc3IgbiA9IDAgaW5cblxuICBpZiBtYXhiaXRzIDcgeCB0aGVuXG4gICAgKCogNyAqKVxuICAgIGFkZCBidWYgKENoYXIuY2hyIHgpXG4gIGVsc2UgaWYgbWF4Yml0cyAxMSB4IHRoZW4gKFxuICAgICgqIDUgKyA2ICopXG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTEwMDAwMDAgbG9yICgoeCBsc3IgNikgbGFuZCAwYjAwMDExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoeCAgICAgICAgIGxhbmQgMGIwMDExMTExMSkpKVxuICApXG4gIGVsc2UgaWYgbWF4Yml0cyAxNiB4IHRoZW4gKFxuICAgICgqIDQgKyA2ICsgNiAqKVxuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjExMTAwMDAwIGxvciAoKHggbHNyIDEyKSBsYW5kIDBiMDAwMDExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICgoeCBsc3IgIDYpIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKHggICAgICAgICAgbGFuZCAwYjAwMTExMTExKSkpXG4gIClcbiAgZWxzZSBpZiBtYXhiaXRzIDIxIHggdGhlbiAoXG4gICAgKCogMyArIDYgKyA2ICsgNiAqKVxuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjExMTEwMDAwIGxvciAoKHggbHNyIDE4KSBsYW5kIDBiMDAwMDAxMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICgoeCBsc3IgMTIpIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKCh4IGxzciAgNikgbGFuZCAwYjAwMTExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoeCAgICAgICAgICBsYW5kIDBiMDAxMTExMTEpKSk7XG4gIClcbiAgZWxzZSBpZiBtYXhiaXRzIDI2IHggdGhlbiAoXG4gICAgKCogMiArIDYgKyA2ICsgNiArIDYgKilcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMTExMTAwMCBsb3IgKCh4IGxzciAyNCkgbGFuZCAwYjAwMDAwMDExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoKHggbHNyIDE4KSBsYW5kIDBiMDAxMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICgoeCBsc3IgMTIpIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKCh4IGxzciAgNikgbGFuZCAwYjAwMTExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoeCAgICAgICAgICBsYW5kIDBiMDAxMTExMTEpKSk7XG4gIClcbiAgZWxzZSAoXG4gICAgYXNzZXJ0IChtYXhiaXRzIDMxIHgpO1xuICAgICgqIDEgKyA2ICsgNiArIDYgKyA2ICsgNiAqKVxuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjExMTExMTAwIGxvciAoKHggbHNyIDMwKSBsYW5kIDBiMDAwMDAwMDEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICgoeCBsc3IgMjQpIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKCh4IGxzciAxOCkgbGFuZCAwYjAwMTExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoKHggbHNyIDEyKSBsYW5kIDBiMDAxMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICgoeCBsc3IgIDYpIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKHggICAgICAgICAgbGFuZCAwYjAwMTExMTExKSkpO1xuICApXG5cbmxldCBjb2RlX29mX3N1cnJvZ2F0ZV9wYWlyIGkgaiA9XG4gIGxldCBoaWdoMTAgPSBpIC0gMHhEODAwIGluXG4gIGxldCBsb3cxMCA9IGogLSAweERDMDAgaW5cbiAgMHgxMDAwMCArICgoaGlnaDEwIGxzbCAxMCkgbG9yIGxvdzEwKVxuXG5sZXQgdXRmOF9vZl9zdXJyb2dhdGVfcGFpciBidWYgaSBqID1cbiAgdXRmOF9vZl9jb2RlIGJ1ZiAoY29kZV9vZl9zdXJyb2dhdGVfcGFpciBpIGopXG5cbnR5cGUgbGV4ZXJfc3RhdGUgPSB7XG4gIGJ1ZiA6IEJ1ZmZlci50O1xuICAgICgqIEJ1ZmZlciB1c2VkIHRvIGFjY3VtdWxhdGUgc3Vic3RyaW5ncyAqKVxuXG4gIG11dGFibGUgbG51bSA6IGludDtcbiAgICAoKiBDdXJyZW50IGxpbmUgbnVtYmVyIChzdGFydGluZyBmcm9tIDEpICopXG5cbiAgbXV0YWJsZSBib2wgOiBpbnQ7XG4gICAgKCogQWJzb2x1dGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgY3VycmVudCBsaW5lXG4gICAgICAgKHN0YXJ0aW5nIGZyb20gMCkgKilcblxuICBtdXRhYmxlIGZuYW1lIDogc3RyaW5nIG9wdGlvbjtcbiAgICAoKiBOYW1lIGRlc2NyaWJpbmcgdGhlIGlucHV0IGZpbGUgKilcbn1cblxubW9kdWxlIExleGVyX3N0YXRlID1cbnN0cnVjdFxuICB0eXBlIHQgPSBsZXhlcl9zdGF0ZSA9IHtcbiAgICBidWYgOiBCdWZmZXIudDtcbiAgICBtdXRhYmxlIGxudW0gOiBpbnQ7XG4gICAgbXV0YWJsZSBib2wgOiBpbnQ7XG4gICAgbXV0YWJsZSBmbmFtZSA6IHN0cmluZyBvcHRpb247XG4gIH1cbmVuZFxuXG5sZXQgaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/KGxudW0gPSAxKSAoKSA9XG4gIGxldCBidWYgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG5cdE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSAyNTZcbiAgICAgIHwgU29tZSBidWYgLT4gYnVmXG4gIGluXG4gIHtcbiAgICBidWYgPSBidWY7XG4gICAgbG51bSA9IGxudW07XG4gICAgYm9sID0gMDtcbiAgICBmbmFtZSA9IGZuYW1lXG4gIH1cblxuIyAxIFwidHlwZS5tbFwiXG4oKiogezMgVHlwZSBvZiB0aGUgSlNPTiB0cmVlfSAqKVxuXG50eXBlIHQgPVxuICAgIFtcbiAgICB8IGBOdWxsXG4gICAgfCBgQm9vbCBvZiBib29sXG4gICAgXG4jIDggXCJ0eXBlLm1sXCJcbiAgICB8IGBJbnQgb2YgaW50XG4gICAgXG4jIDExIFwidHlwZS5tbFwiXG4gICAgfCBgSW50bGl0IG9mIHN0cmluZ1xuICAgIFxuIyAxNCBcInR5cGUubWxcIlxuICAgIHwgYEZsb2F0IG9mIGZsb2F0XG4gICAgXG4jIDE3IFwidHlwZS5tbFwiXG4gICAgfCBgRmxvYXRsaXQgb2Ygc3RyaW5nXG4gICAgXG4jIDIwIFwidHlwZS5tbFwiXG4gICAgfCBgU3RyaW5nIG9mIHN0cmluZ1xuICAgIFxuIyAyMyBcInR5cGUubWxcIlxuICAgIHwgYFN0cmluZ2xpdCBvZiBzdHJpbmdcbiAgICBcbiMgMjUgXCJ0eXBlLm1sXCJcbiAgICB8IGBBc3NvYyBvZiAoc3RyaW5nICogdCkgbGlzdFxuICAgIHwgYExpc3Qgb2YgdCBsaXN0XG4gICAgXG4jIDI4IFwidHlwZS5tbFwiXG4gICAgfCBgVHVwbGUgb2YgdCBsaXN0XG4gICAgXG4jIDMxIFwidHlwZS5tbFwiXG4gICAgfCBgVmFyaWFudCBvZiAoc3RyaW5nICogdCBvcHRpb24pXG4gICAgXG4jIDMzIFwidHlwZS5tbFwiXG4gICAgXVxuKCoqXG5BbGwgcG9zc2libGUgY2FzZXMgZGVmaW5lZCBpbiBZb2pzb246XG4tIGBOdWxsOiBKU09OIG51bGxcbi0gYEJvb2wgb2YgYm9vbDogSlNPTiBib29sZWFuXG4tIGBJbnQgb2YgaW50OiBKU09OIG51bWJlciB3aXRob3V0IGRlY2ltYWwgcG9pbnQgb3IgZXhwb25lbnQuXG4tIGBJbnRsaXQgb2Ygc3RyaW5nOiBKU09OIG51bWJlciB3aXRob3V0IGRlY2ltYWwgcG9pbnQgb3IgZXhwb25lbnQsXG5cdCAgICBwcmVzZXJ2ZWQgYXMgYSBzdHJpbmcuXG4tIGBGbG9hdCBvZiBmbG9hdDogSlNPTiBudW1iZXIsIEluZmluaXR5LCAtSW5maW5pdHkgb3IgTmFOLlxuLSBgRmxvYXRsaXQgb2Ygc3RyaW5nOiBKU09OIG51bWJlciwgSW5maW5pdHksIC1JbmZpbml0eSBvciBOYU4sXG5cdCAgICBwcmVzZXJ2ZWQgYXMgYSBzdHJpbmcuXG4tIGBTdHJpbmcgb2Ygc3RyaW5nOiBKU09OIHN0cmluZy4gQnl0ZXMgaW4gdGhlIHJhbmdlIDEyOC0yNTUgYXJlIHByZXNlcnZlZFxuXHQgICAgYXMtaXMgd2l0aG91dCBlbmNvZGluZyB2YWxpZGF0aW9uIGZvciBib3RoIHJlYWRpbmdcblx0ICAgIGFuZCB3cml0aW5nLlxuLSBgU3RyaW5nbGl0IG9mIHN0cmluZzogSlNPTiBzdHJpbmcgbGl0ZXJhbCBpbmNsdWRpbmcgdGhlIGRvdWJsZSBxdW90ZXMuXG4tIGBBc3NvYyBvZiAoc3RyaW5nICoganNvbikgbGlzdDogSlNPTiBvYmplY3QuXG4tIGBMaXN0IG9mIGpzb24gbGlzdDogSlNPTiBhcnJheS5cbi0gYFR1cGxlIG9mIGpzb24gbGlzdDogVHVwbGUgKG5vbi1zdGFuZGFyZCBleHRlbnNpb24gb2YgSlNPTikuXG5cdCAgICBTeW50YXg6IFsoXCJhYmNcIiwgMTIzKV0uXG4tIGBWYXJpYW50IG9mIChzdHJpbmcgKiBqc29uIG9wdGlvbik6IFZhcmlhbnQgKG5vbi1zdGFuZGFyZCBleHRlbnNpb24gb2YgSlNPTikuXG5cdCAgICBTeW50YXg6IFs8XCJGb29cIj5dIG9yIFs8XCJCYXJcIjoxMjM+XS5cbiopXG5cbigqXG4gIE5vdGUgdG8gYWR2ZW50dXJlcnM6IG9jYW1sZG9jIGRvZXMgbm90IHN1cHBvcnQgaW5saW5lIGNvbW1lbnRzXG4gIG9uIGVhY2ggcG9seW1vcnBoaWMgdmFyaWFudCwgYW5kIGNwcG8gZG9lc24ndCBhbGxvdyB0byBjb25jYXRlbmF0ZVxuICBjb21tZW50cywgc28gaXQgd291bGQgYmUgY29tcGxpY2F0ZWQgdG8gZG9jdW1lbnQgb25seSB0aGVcbiAgY2FzZXMgdGhhdCBhcmUgcHJlc2VydmVkIGJ5IGNwcG8gaW4gdGhlIHR5cGUgZGVmaW5pdGlvbi5cbiopXG4jIDEgXCJ3cml0ZS5tbFwiXG4oKiBpbmNsdWRlZDogdHlwZS5tbCAqKVxuXG5sZXQgaGV4IG4gPVxuICBDaGFyLmNociAoXG4gICAgaWYgbiA8IDEwIHRoZW4gbiArIDQ4XG4gICAgZWxzZSBuICsgODdcbiAgKVxuXG5sZXQgd3JpdGVfc3BlY2lhbCBzcmMgc3RhcnQgc3RvcCBvYiBzdHIgPVxuICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChzdG9wIC0gIXN0YXJ0KTtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2Igc3RyO1xuICBzdGFydCA6PSBzdG9wICsgMVxuXG5sZXQgd3JpdGVfY29udHJvbF9jaGFyIHNyYyBzdGFydCBzdG9wIG9iIGMgPVxuICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChzdG9wIC0gIXN0YXJ0KTtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJcXFxcdTAwXCI7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAoaGV4IChDaGFyLmNvZGUgYyBsc3IgNCkpO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgKGhleCAoQ2hhci5jb2RlIGMgbGFuZCAweGYpKTtcbiAgc3RhcnQgOj0gc3RvcCArIDFcblxubGV0IGZpbmlzaF9zdHJpbmcgc3JjIHN0YXJ0IG9iID1cbiAgdHJ5XG4gICAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoU3RyaW5nLmxlbmd0aCBzcmMgLSAhc3RhcnQpXG4gIHdpdGggZXhjIC0+XG4gICAgUHJpbnRmLmVwcmludGYgXCJzcmM9JVMgc3RhcnQ9JWkgbGVuPSVpXFxuJSFcIlxuICAgICAgc3JjICFzdGFydCAoU3RyaW5nLmxlbmd0aCBzcmMgLSAhc3RhcnQpO1xuICAgIHJhaXNlIGV4Y1xuXG5sZXQgd3JpdGVfc3RyaW5nX2JvZHkgb2IgcyA9XG4gIGxldCBzdGFydCA9IHJlZiAwIGluXG4gIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgICAnXCInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXFxcXCJcIlxuICAgICAgfCAnXFxcXCcgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcXFxcXFwiXG4gICAgICB8ICdcXGInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXGJcIlxuICAgICAgfCAnXFwwMTInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXGZcIlxuICAgICAgfCAnXFxuJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxuXCJcbiAgICAgIHwgJ1xccicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcclwiXG4gICAgICB8ICdcXHQnIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXHRcIlxuICAgICAgfCAnXFx4MDAnLi4nXFx4MUYnXG4gICAgICB8ICdcXHg3RicgYXMgYyAtPiB3cml0ZV9jb250cm9sX2NoYXIgcyBzdGFydCBpIG9iIGNcbiAgICAgIHwgXyAtPiAoKVxuICBkb25lO1xuICBmaW5pc2hfc3RyaW5nIHMgc3RhcnQgb2JcblxubGV0IHdyaXRlX3N0cmluZyBvYiBzID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdcIic7XG4gIHdyaXRlX3N0cmluZ19ib2R5IG9iIHM7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXCInXG5cbmxldCBqc29uX3N0cmluZ19vZl9zdHJpbmcgcyA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMTAgaW5cbiAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5sZXQgdGVzdF9zdHJpbmcgKCkgPVxuICBsZXQgcyA9IEJ5dGVzLmNyZWF0ZSAyNTYgaW5cbiAgZm9yIGkgPSAwIHRvIDI1NSBkb1xuICAgIEJ5dGVzLnNldCBzIGkgKENoYXIuY2hyIGkpXG4gIGRvbmU7XG4gIGpzb25fc3RyaW5nX29mX3N0cmluZyAoQnl0ZXMudG9fc3RyaW5nIHMpXG5cblxubGV0IHdyaXRlX251bGwgb2IgKCkgPVxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIm51bGxcIlxuXG5sZXQgd3JpdGVfYm9vbCBvYiB4ID1cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggdGhlbiBcInRydWVcIiBlbHNlIFwiZmFsc2VcIilcblxuXG5sZXQgbWF4X2RpZ2l0cyA9XG4gIG1heFxuICAgIChTdHJpbmcubGVuZ3RoIChzdHJpbmdfb2ZfaW50IG1heF9pbnQpKVxuICAgIChTdHJpbmcubGVuZ3RoIChzdHJpbmdfb2ZfaW50IG1pbl9pbnQpKVxuXG5sZXQgZGVjIG4gPVxuICBDaGFyLmNociAobiArIDQ4KVxuXG5sZXQgcmVjIHdyaXRlX2RpZ2l0cyBzIHggPVxuICBpZiB4ID0gMCB0aGVuICgpXG4gIGVsc2VcbiAgICBsZXQgZCA9IHggbW9kIDEwIGluXG4gICAgd3JpdGVfZGlnaXRzIHMgKHggLyAxMCk7XG4gICAgQnVmZmVyLmFkZF9jaGFyIHMgKGRlYyAoYWJzIGQpKVxuXG5sZXQgd3JpdGVfaW50IG9iIHggPVxuICBpZiB4ID4gMCB0aGVuXG4gICAgd3JpdGVfZGlnaXRzIG9iIHhcbiAgZWxzZSBpZiB4IDwgMCB0aGVuIChcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJy0nO1xuICAgIHdyaXRlX2RpZ2l0cyBvYiB4XG4gIClcbiAgZWxzZVxuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnMCdcblxuXG5sZXQganNvbl9zdHJpbmdfb2ZfaW50IGkgPVxuICBzdHJpbmdfb2ZfaW50IGlcblxuXG4oKlxuICBFbnN1cmUgdGhhdCB0aGUgZmxvYXQgaXMgbm90IHByaW50ZWQgYXMgYW4gaW50LlxuICBUaGlzIGlzIG5vdCByZXF1aXJlZCBieSBKU09OLCBidXQgdXNlZnVsIGluIG9yZGVyIHRvIGd1YXJhbnRlZVxuICByZXZlcnNpYmlsaXR5LlxuKilcbmxldCBmbG9hdF9uZWVkc19wZXJpb2QgcyA9XG4gIHRyeVxuICAgIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgICAgJzAnLi4nOScgfCAnLScgLT4gKClcbiAgICAgICAgfCBfIC0+IHJhaXNlIEV4aXRcbiAgICBkb25lO1xuICAgIHRydWVcbiAgd2l0aCBFeGl0IC0+XG4gICAgZmFsc2VcblxuKCpcbiAgR3VhcmFudGVlcyB0aGF0IGEgc3VmZmljaWVudCBudW1iZXIgb2YgZGlnaXRzIGFyZSBwcmludGVkIGluIG9yZGVyIHRvIGFsbG93XG4gIHJldmVyc2liaWxpdHkuXG4qKVxubGV0IHdyaXRlX2Zsb2F0IG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiTmFOXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggPiAwLiB0aGVuIFwiSW5maW5pdHlcIiBlbHNlIFwiLUluZmluaXR5XCIpXG4gIHwgXyAtPlxuICAgICAgbGV0IHMxID0gUHJpbnRmLnNwcmludGYgXCIlLjE2Z1wiIHggaW5cbiAgICAgIGxldCBzID1cbiAgICAgICAgaWYgZmxvYXRfb2Zfc3RyaW5nIHMxID0geCB0aGVuIHMxXG4gICAgICAgIGVsc2UgUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHhcbiAgICAgIGluXG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICAgICAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxubGV0IHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIGxldCBvcGVuIFByaW50ZiBpblxuICBsZXQgcyA9XG4gICAgbWF0Y2ggc2lnbmlmaWNhbnRfZmlndXJlcyB3aXRoXG4gICAgICAgIDEgLT4gc3ByaW50ZiBcIiUuMWdcIiB4XG4gICAgICB8IDIgLT4gc3ByaW50ZiBcIiUuMmdcIiB4XG4gICAgICB8IDMgLT4gc3ByaW50ZiBcIiUuM2dcIiB4XG4gICAgICB8IDQgLT4gc3ByaW50ZiBcIiUuNGdcIiB4XG4gICAgICB8IDUgLT4gc3ByaW50ZiBcIiUuNWdcIiB4XG4gICAgICB8IDYgLT4gc3ByaW50ZiBcIiUuNmdcIiB4XG4gICAgICB8IDcgLT4gc3ByaW50ZiBcIiUuN2dcIiB4XG4gICAgICB8IDggLT4gc3ByaW50ZiBcIiUuOGdcIiB4XG4gICAgICB8IDkgLT4gc3ByaW50ZiBcIiUuOWdcIiB4XG4gICAgICB8IDEwIC0+IHNwcmludGYgXCIlLjEwZ1wiIHhcbiAgICAgIHwgMTEgLT4gc3ByaW50ZiBcIiUuMTFnXCIgeFxuICAgICAgfCAxMiAtPiBzcHJpbnRmIFwiJS4xMmdcIiB4XG4gICAgICB8IDEzIC0+IHNwcmludGYgXCIlLjEzZ1wiIHhcbiAgICAgIHwgMTQgLT4gc3ByaW50ZiBcIiUuMTRnXCIgeFxuICAgICAgfCAxNSAtPiBzcHJpbnRmIFwiJS4xNWdcIiB4XG4gICAgICB8IDE2IC0+IHNwcmludGYgXCIlLjE2Z1wiIHhcbiAgICAgIHwgXyAtPiBzcHJpbnRmIFwiJS4xN2dcIiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxuKCogdXNlZCBieSBhdGRnZW4gKilcbmxldCB3cml0ZV9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJOYU5cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCA+IDAuIHRoZW4gXCJJbmZpbml0eVwiIGVsc2UgXCItSW5maW5pdHlcIilcbiAgfCBfIC0+XG4gICAgICB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHhcblxubGV0IGpzb25fc3RyaW5nX29mX2Zsb2F0IHggPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDIwIGluXG4gIHdyaXRlX2Zsb2F0IG9iIHg7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5cbmxldCB3cml0ZV9zdGRfZmxvYXQgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAganNvbl9lcnJvciBcIk5hTiB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAganNvbl9lcnJvclxuICAgICAgICAoaWYgeCA+IDAuIHRoZW5cbiAgICAgICAgICAgXCJJbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgXCItSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiKVxuICB8IF8gLT5cbiAgICAgIGxldCBzMSA9IFByaW50Zi5zcHJpbnRmIFwiJS4xNmdcIiB4IGluXG4gICAgICBsZXQgcyA9XG4gICAgICAgIGlmIGZsb2F0X29mX3N0cmluZyBzMSA9IHggdGhlbiBzMVxuICAgICAgICBlbHNlIFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4XG4gICAgICBpblxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgICAgIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbigqIHVzZWQgYnkgYXRkZ2VuICopXG5sZXQgd3JpdGVfc3RkX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBqc29uX2Vycm9yIFwiTmFOIHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBqc29uX2Vycm9yXG4gICAgICAgIChpZiB4ID4gMC4gdGhlblxuICAgICAgICAgICBcIkluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBcIi1JbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCIpXG4gIHwgXyAtPlxuICAgICAgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4XG5cbmxldCBzdGRfanNvbl9zdHJpbmdfb2ZfZmxvYXQgeCA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMjAgaW5cbiAgd3JpdGVfc3RkX2Zsb2F0IG9iIHg7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5cbmxldCB0ZXN0X2Zsb2F0ICgpID1cbiAgbGV0IGwgPSBbIDAuOyAxLjsgLTEuIF0gaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IDIuICouIHggKy4gMS4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggLy4gc3FydCAyLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAqLiBzcXJ0IDMuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIGNvcyBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4ICouIDEuMjNlNTApIGwgaW5cbiAgbGV0IGwgPSBsIEAgWyBpbmZpbml0eTsgbmVnX2luZmluaXR5IF0gaW5cbiAgTGlzdC5pdGVyIChcbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHMgPSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeCBpblxuICAgICAgbGV0IHkgPSBmbG9hdF9vZl9zdHJpbmcgcyBpblxuICAgICAgUHJpbnRmLnByaW50ZiBcIiVnICVnICVTICVCXFxuXCIgeCB5IHMgKHggPSB5KVxuICApXG4gICAgbFxuXG4oKlxubGV0ICgpID0gdGVzdF9mbG9hdCAoKVxuKilcblxubGV0IHdyaXRlX2ludGxpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5sZXQgd3JpdGVfZmxvYXRsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xubGV0IHdyaXRlX3N0cmluZ2xpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5cbmxldCByZWMgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgeSA6OiBsIC0+XG4gICAgICBmX3NlcCB4O1xuICAgICAgZl9lbHQgeCB5O1xuICAgICAgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggbFxuXG5sZXQgaXRlcjIgZl9lbHQgZl9zZXAgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCB5IDo6IGwgLT5cbiAgICAgIGZfZWx0IHggeTtcbiAgICAgIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4IGxcblxubGV0IGZfc2VwIG9iID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICcsJ1xuXG5sZXQgcmVjIHdyaXRlX2pzb24gb2IgKHggOiB0KSA9XG4gIG1hdGNoIHggd2l0aFxuICAgICAgYE51bGwgLT4gd3JpdGVfbnVsbCBvYiAoKVxuICAgIHwgYEJvb2wgYiAtPiB3cml0ZV9ib29sIG9iIGJcbiAgICBcbiMgMjY0IFwid3JpdGUubWxcIlxuICAgIHwgYEludCBpIC0+IHdyaXRlX2ludCBvYiBpXG4gICAgXG4jIDI2NyBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnRsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDI3MCBcIndyaXRlLm1sXCJcbiAgICB8IGBGbG9hdCBmIC0+IHdyaXRlX2Zsb2F0IG9iIGZcbiAgICBcbiMgMjczIFwid3JpdGUubWxcIlxuICAgIHwgYEZsb2F0bGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAyNzYgXCJ3cml0ZS5tbFwiXG4gICAgfCBgU3RyaW5nIHMgLT4gd3JpdGVfc3RyaW5nIG9iIHNcbiAgICBcbiMgMjc5IFwid3JpdGUubWxcIlxuICAgIHwgYFN0cmluZ2xpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMjgxIFwid3JpdGUubWxcIlxuICAgIHwgYEFzc29jIGwgLT4gd3JpdGVfYXNzb2Mgb2IgbFxuICAgIHwgYExpc3QgbCAtPiB3cml0ZV9saXN0IG9iIGxcbiAgICBcbiMgMjg0IFwid3JpdGUubWxcIlxuICAgIHwgYFR1cGxlIGwgLT4gd3JpdGVfdHVwbGUgb2IgbFxuICAgIFxuIyAyODcgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVmFyaWFudCAocywgbykgLT4gd3JpdGVfdmFyaWFudCBvYiBzIG9cblxuIyAyOTAgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfYXNzb2Mgb2IgbCA9XG4gIGxldCBmX2VsdCBvYiAocywgeCkgPVxuICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgd3JpdGVfanNvbiBvYiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAneyc7XG4gIGl0ZXIyIGZfZWx0IGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnfSc7XG5cbmFuZCB3cml0ZV9saXN0IG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuIyAzMDYgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfdHVwbGUgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnKCc7XG4gIGl0ZXIyIHdyaXRlX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICcpJ1xuXG4jIDMxMyBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV92YXJpYW50IG9iIHMgbyA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnPCc7XG4gIHdyaXRlX3N0cmluZyBvYiBzO1xuICAobWF0Y2ggbyB3aXRoXG4gICAgICAgTm9uZSAtPiAoKVxuICAgICB8IFNvbWUgeCAtPlxuICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICAgICAgIHdyaXRlX2pzb24gb2IgeFxuICApO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJz4nXG5cbiMgMzI1IFwid3JpdGUubWxcIlxubGV0IHdyaXRlX3QgPSB3cml0ZV9qc29uXG5cbmxldCByZWMgd3JpdGVfc3RkX2pzb24gb2IgKHggOiB0KSA9XG4gIG1hdGNoIHggd2l0aFxuICAgICAgYE51bGwgLT4gd3JpdGVfbnVsbCBvYiAoKVxuICAgIHwgYEJvb2wgYiAtPiB3cml0ZV9ib29sIG9iIGJcbiAgICBcbiMgMzMyIFwid3JpdGUubWxcIlxuICAgIHwgYEludCBpIC0+IHdyaXRlX2ludCBvYiBpXG4gICAgXG4jIDMzNSBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnRsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDMzOCBcIndyaXRlLm1sXCJcbiAgICB8IGBGbG9hdCBmIC0+IHdyaXRlX3N0ZF9mbG9hdCBvYiBmXG4gICAgXG4jIDM0MSBcIndyaXRlLm1sXCJcbiAgICB8IGBGbG9hdGxpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMzQ0IFwid3JpdGUubWxcIlxuICAgIHwgYFN0cmluZyBzIC0+IHdyaXRlX3N0cmluZyBvYiBzXG4gICAgXG4jIDM0NyBcIndyaXRlLm1sXCJcbiAgICB8IGBTdHJpbmdsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDM0OSBcIndyaXRlLm1sXCJcbiAgICB8IGBBc3NvYyBsIC0+IHdyaXRlX3N0ZF9hc3NvYyBvYiBsXG4gICAgfCBgTGlzdCBsIC0+IHdyaXRlX3N0ZF9saXN0IG9iIGxcbiAgICBcbiMgMzUyIFwid3JpdGUubWxcIlxuICAgIHwgYFR1cGxlIGwgLT4gd3JpdGVfc3RkX3R1cGxlIG9iIGxcbiAgICBcbiMgMzU1IFwid3JpdGUubWxcIlxuICAgIHwgYFZhcmlhbnQgKHMsIG8pIC0+IHdyaXRlX3N0ZF92YXJpYW50IG9iIHMgb1xuXG4jIDM1OCBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9zdGRfYXNzb2Mgb2IgbCA9XG4gIGxldCBmX2VsdCBvYiAocywgeCkgPVxuICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgd3JpdGVfc3RkX2pzb24gb2IgeFxuICBpblxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ3snO1xuICBpdGVyMiBmX2VsdCBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ30nO1xuXG5hbmQgd3JpdGVfc3RkX2xpc3Qgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX3N0ZF9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuYW5kIHdyaXRlX3N0ZF90dXBsZSBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfc3RkX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG4jIDM3OSBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9zdGRfdmFyaWFudCBvYiBzIG8gPVxuICBtYXRjaCBvIHdpdGhcbiAgICAgIE5vbmUgLT4gd3JpdGVfc3RyaW5nIG9iIHNcbiAgICB8IFNvbWUgeCAtPlxuICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICAgICAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICcsJztcbiAgICAgICAgd3JpdGVfc3RkX2pzb24gb2IgeDtcbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG5cbiMgMzkxIFwid3JpdGUubWxcIlxubGV0IHRvX2J1ZmZlciA/KHN1ZiA9IFwiXCIpID8oc3RkID0gZmFsc2UpIG9iIHggPVxuICBpZiBzdGQgdGhlblxuICAgIHdyaXRlX3N0ZF9qc29uIG9iIHhcbiAgZWxzZVxuICAgIHdyaXRlX2pzb24gb2IgeDtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2Igc3VmXG5cbmxldCB0b19zdHJpbmcgP2J1ZiA/KGxlbiA9IDI1NikgPyhzdWYgPSBcIlwiKSA/c3RkIHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPlxuICAgICAgICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgICAgICAgICBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIG9iIGluXG4gIEJ1ZmZlci5jbGVhciBvYjtcbiAgc1xuXG5sZXQgdG9fY2hhbm5lbCA/YnVmID8obGVuPTQwOTYpID8oc3VmID0gXCJcIikgP3N0ZCBvYyB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIEJ1ZmZlci5vdXRwdXRfYnVmZmVyIG9jIG9iO1xuICBCdWZmZXIuY2xlYXIgb2JcblxubGV0IHRvX291dHB1dCA/YnVmID8obGVuPTQwOTYpID8oc3VmID0gXCJcIikgP3N0ZCBvdXQgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBvdXQjb3V0cHV0IChCdWZmZXIuY29udGVudHMgb2IpIDAgKEJ1ZmZlci5sZW5ndGggb2IpO1xuICBCdWZmZXIuY2xlYXIgb2JcblxubGV0IHRvX2ZpbGUgP2xlbiA/c3RkID8oc3VmID0gXCJcXG5cIikgZmlsZSB4ID1cbiAgbGV0IG9jID0gb3Blbl9vdXQgZmlsZSBpblxuICB0cnlcbiAgICB0b19jaGFubmVsID9sZW4gfnN1ZiA/c3RkIG9jIHg7XG4gICAgY2xvc2Vfb3V0IG9jXG4gIHdpdGggZSAtPlxuICAgIGNsb3NlX291dF9ub2VyciBvYztcbiAgICByYWlzZSBlXG5cbmxldCBzZXFfdG9fYnVmZmVyID8oc3VmID0gXCJcXG5cIikgP3N0ZCBvYiBzdCA9XG4gIFNlcS5pdGVyICh0b19idWZmZXIgfnN1ZiA/c3RkIG9iKSBzdFxuXG5sZXQgc2VxX3RvX3N0cmluZyA/YnVmID8obGVuID0gMjU2KSA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgc3QgPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPlxuICAgICAgICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgICAgICAgICBvYlxuICBpblxuICBzZXFfdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiBzdDtcbiAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgb2IgaW5cbiAgQnVmZmVyLmNsZWFyIG9iO1xuICBzXG5cbmxldCBzZXFfdG9fY2hhbm5lbCA/YnVmID8obGVuPTIwOTYpID8oc3VmID0gXCJcXG5cIikgP3N0ZCBvYyBzZXEgPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIFNlcS5pdGVyIChmdW4ganNvbiAtPlxuICAgIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IganNvbjtcbiAgICBCdWZmZXIub3V0cHV0X2J1ZmZlciBvYyBvYjtcbiAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICkgc2VxXG5cbmxldCBzZXFfdG9fZmlsZSA/bGVuID8oc3VmID0gXCJcXG5cIikgP3N0ZCBmaWxlIHN0ID1cbiAgbGV0IG9jID0gb3Blbl9vdXQgZmlsZSBpblxuICB0cnlcbiAgICBzZXFfdG9fY2hhbm5lbCA/bGVuIH5zdWYgP3N0ZCBvYyBzdDtcbiAgICBjbG9zZV9vdXQgb2NcbiAgd2l0aCBlIC0+XG4gICAgY2xvc2Vfb3V0X25vZXJyIG9jO1xuICAgIHJhaXNlIGVcblxuXG5sZXQgcmVjIHNvcnQgPSBmdW5jdGlvblxuICB8IGBBc3NvYyBsIC0+XG4gICAgICBsZXQgbCA9IExpc3QucmV2IChMaXN0LnJldl9tYXAgKGZ1biAoaywgdikgLT4gKGssIHNvcnQgdikpIGwpIGluXG4gICAgICBgQXNzb2MgKExpc3Quc3RhYmxlX3NvcnQgKGZ1biAoYSwgXykgKGIsIF8pIC0+IFN0cmluZy5jb21wYXJlIGEgYikgbClcbiAgfCBgTGlzdCBsIC0+XG4gICAgICBgTGlzdCAoTGlzdC5yZXYgKExpc3QucmV2X21hcCBzb3J0IGwpKVxuICBcbiMgNDg1IFwid3JpdGUubWxcIlxuICB8IGBUdXBsZSBsIC0+XG4gICAgICBgVHVwbGUgKExpc3QucmV2IChMaXN0LnJldl9tYXAgc29ydCBsKSlcbiAgXG4jIDQ4OSBcIndyaXRlLm1sXCJcbiAgfCBgVmFyaWFudCAoaywgU29tZSB2KSBhcyB4IC0+XG4gICAgICBsZXQgdicgPSBzb3J0IHYgaW5cbiAgICAgIGlmIHYgPT0gdicgdGhlbiB4XG4gICAgICBlbHNlXG4gICAgICAgIGBWYXJpYW50IChrLCBTb21lIHYnKVxuICBcbiMgNDk1IFwid3JpdGUubWxcIlxuICB8IHggLT4geFxuIyAxIFwibW9ub21vcnBoaWMubWxcIlxubGV0IHJlYyBwcCBmbXQgPVxuICBmdW5jdGlvblxuICB8IGBOdWxsIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiYE51bGxcIlxuICB8IGBCb29sIHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgQm9vbCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVCXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgSW50IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgSW50IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJWRcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAxNSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgSW50bGl0IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgSW50bGl0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAyMSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgRmxvYXQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBGbG9hdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVGXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMjcgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEZsb2F0bGl0IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgRmxvYXRsaXQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDMzIFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBTdHJpbmcgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBTdHJpbmcgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDM5IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBTdHJpbmdsaXQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBTdHJpbmdsaXQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDQ0IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBBc3NvYyB4cyAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBBc3NvYyAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIChrZXksIHZhbHVlKSAtPlxuICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIihAW1wiO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIga2V5O1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIixAIFwiO1xuICAgICAgICAgIHBwIGZtdCB2YWx1ZTtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIjtcbiAgICAgICAgICB0cnVlKSBmYWxzZSB4cyk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICB8IGBMaXN0IHhzIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYExpc3QgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCB4IC0+XG4gICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgcHAgZm10IHg7XG4gICAgICAgICAgdHJ1ZSkgZmFsc2UgeHMpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDcxIFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBUdXBsZSB0dXAgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgVHVwbGUgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCBlIC0+XG4gICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICAgcHAgZm10IGU7XG4gICAgICAgICAgIHRydWUpIGZhbHNlIHR1cCk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgODQgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFZhcmlhbnQgKG5hbWUsIHZhbHVlKSAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBWYXJpYW50IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiKEBbXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiBuYW1lO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIixAIFwiO1xuICAgIChtYXRjaCB2YWx1ZSB3aXRoXG4gICAgICB8IE5vbmUgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCJOb25lXCJcbiAgICAgIHwgU29tZSB4IC0+XG4gICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiKFNvbWUgXCI7XG4gICAgICAgIHBwIGZtdCB4O1xuICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcIilcIik7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcblxuIyA5OSBcIm1vbm9tb3JwaGljLm1sXCJcbmxldCBzaG93IHggPVxuICBGb3JtYXQuYXNwcmludGYgXCIlYVwiIHBwIHhcblxubGV0IHJlYyBlcXVhbCBhIGIgPVxuICBtYXRjaCBhLCBiIHdpdGhcbiAgfCBgTnVsbCwgYE51bGwgLT4gdHJ1ZVxuICB8IGBCb29sIGEsIGBCb29sIGIgLT4gYSA9IGJcbiAgXG4jIDEwNyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgSW50IGEsIGBJbnQgYiAtPiBhID0gYlxuICAgIFxuIyAxMTAgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgSW50bGl0IGEsIGBJbnRsaXQgYiAtPiBhID0gYlxuICAgIFxuIyAxMTMgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgRmxvYXQgYSwgYEZsb2F0IGIgLT4gYSA9IGJcbiAgICBcbiMgMTE2IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEZsb2F0bGl0IGEsIGBGbG9hdGxpdCBiIC0+IGEgPSBiXG4gICAgXG4jIDExOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBTdHJpbmcgYSwgYFN0cmluZyBiIC0+IGEgPSBiXG4gICAgXG4jIDEyMiBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBTdHJpbmdsaXQgYSwgYFN0cmluZ2xpdCBiIC0+IGEgPSBiXG4gICAgXG4jIDEyNCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBBc3NvYyB4cywgYEFzc29jIHlzIC0+XG4gICAgICBsZXQgY29tcGFyZV9rZXlzID0gZnVuIChrZXksIF8pIChrZXknLCBfKSAtPiBTdHJpbmcuY29tcGFyZSBrZXkga2V5JyBpblxuICAgICAgbGV0IHhzID0gTGlzdC5zdGFibGVfc29ydCBjb21wYXJlX2tleXMgeHMgaW5cbiAgICAgIGxldCB5cyA9IExpc3Quc3RhYmxlX3NvcnQgY29tcGFyZV9rZXlzIHlzIGluXG4gICAgICAobWF0Y2ggTGlzdC5mb3JfYWxsMiAoZnVuIChrZXksIHZhbHVlKSAoa2V5JywgdmFsdWUnKSAtPlxuICAgICAgICBtYXRjaCBrZXkgPSBrZXknIHdpdGhcbiAgICAgICAgfCBmYWxzZSAtPiBmYWxzZVxuICAgICAgICB8IHRydWUgLT4gZXF1YWwgdmFsdWUgdmFsdWUnKSB4cyB5cyB3aXRoXG4gICAgICB8IHJlc3VsdCAtPiByZXN1bHRcbiAgICAgIHwgZXhjZXB0aW9uIEludmFsaWRfYXJndW1lbnQgXyAtPlxuICAgICAgICAoKiB0aGUgbGlzdHMgd2VyZSBvZiBkaWZmZXJlbnQgbGVuZ3RocywgdGh1cyB1bmVxdWFsICopXG4gICAgICAgIGZhbHNlKVxuICAgIFxuIyAxMzcgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgVHVwbGUgeHMsIGBUdXBsZSB5c1xuICAgIFxuIyAxMzkgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgTGlzdCB4cywgYExpc3QgeXMgLT5cbiAgICAgIChtYXRjaCBMaXN0LmZvcl9hbGwyIGVxdWFsIHhzIHlzIHdpdGhcbiAgICAgIHwgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgfCBleGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCBfIC0+XG4gICAgICAgICgqIHRoZSBsaXN0cyB3ZXJlIG9mIGRpZmZlcmVudCBsZW5ndGhzLCB0aHVzIHVuZXF1YWwgKilcbiAgICAgICAgZmFsc2UpXG4gICAgXG4jIDE0NiBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBWYXJpYW50IChuYW1lLCB2YWx1ZSksIGBWYXJpYW50IChuYW1lJywgdmFsdWUnKSAtPlxuICAgICAgKG1hdGNoIG5hbWUgPSBuYW1lJyB3aXRoXG4gICAgICB8IGZhbHNlIC0+IGZhbHNlXG4gICAgICB8IHRydWUgLT5cbiAgICAgICAgbWF0Y2ggdmFsdWUsIHZhbHVlJyB3aXRoXG4gICAgICAgIHwgTm9uZSwgTm9uZSAtPiB0cnVlXG4gICAgICAgIHwgU29tZSB4LCBTb21lIHkgLT4gZXF1YWwgeCB5XG4gICAgICAgIHwgXyAtPiBmYWxzZSlcbiAgICBcbiMgMTU1IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgXyAtPiBmYWxzZVxuIyAxNCBcInlvanNvbi5jcHBvLm1sXCJcbm1vZHVsZSBQcmV0dHkgPVxuc3RydWN0XG4jIDEgXCJwcmV0dHkubWxcIlxuKCpcbiAgIFByZXR0eS1wcmludCBKU09OIGRhdGEgaW4gYW4gYXR0ZW1wdCB0byBtYXhpbWl6ZSByZWFkYWJpbGl0eS5cblxuICAgMS4gV2hhdCBmaXRzIG9uIG9uZSBsaW5lIHN0YXlzIG9uIG9uZSBsaW5lLlxuICAgMi4gV2hhdCBkb2Vzbid0IGZpdCBvbiBvbmUgbGluZSBnZXRzIHByaW50ZWQgbW9yZSB2ZXJ0aWNhbGx5IHNvIGFzIHRvIG5vdFxuICAgICAgZXhjZWVkIGEgcmVhc29uYWJsZSBwYWdlIHdpZHRoLCBpZiBwb3NzaWJsZS5cblxuICAgQXJyYXlzIGNvbnRhaW5pbmcgb25seSBzaW1wbGUgZWxlbWVudHMgKFwiYXRvbXNcIikgYXJlIHByZXR0eS1wcmludGVkIHdpdGhcbiAgIGVuZC1vZi1saW5lIHdyYXBwaW5nIGxpa2Ugb3JkaW5hcnkgdGV4dDpcblxuICAgICBbXG4gICAgICAgIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLFxuICAgICAgICBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIlxuICAgICBdXG5cbiAgIE90aGVyIGFycmF5cyBhcmUgcHJpbnRlZCBlaXRoZXIgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgZGVwZW5kaW5nXG4gICBvbiB3aGV0aGVyIHRoZXkgZml0IG9uIGEgc2luZ2xlIGxpbmU6XG5cbiAgICAgWyB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSwgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9IF1cblxuICAgb3JcblxuICAgICBbXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9XG4gICAgIF1cbiopXG5cbmxldCBwcF9saXN0IHNlcCBwcHggb3V0IGwgPVxuICBsZXQgcHBfc2VwIG91dCAoKSA9IEZvcm1hdC5mcHJpbnRmIG91dCBcIiVzQCBcIiBzZXAgaW5cbiAgRm9ybWF0LnBwX3ByaW50X2xpc3QgfnBwX3NlcCBwcHggb3V0IGxcblxubGV0IGlzX2F0b20gKHg6IFs+IHRdKSA9XG4gIG1hdGNoIHggd2l0aFxuICB8IGBOdWxsXG4gIHwgYEJvb2wgX1xuICB8IGBJbnQgX1xuICB8IGBGbG9hdCBfXG4gIHwgYFN0cmluZyBfXG4gIHwgYEludGxpdCBfXG4gIHwgYEZsb2F0bGl0IF9cbiAgfCBgU3RyaW5nbGl0IF9cbiAgfCBgTGlzdCBbXVxuICB8IGBBc3NvYyBbXVxuICB8IGBUdXBsZSBbXVxuICB8IGBWYXJpYW50IChfLCBOb25lKSAtPiB0cnVlXG4gIHwgYExpc3QgX1xuICB8IGBBc3NvYyBfXG4gIHwgYFR1cGxlIF9cbiAgfCBgVmFyaWFudCAoXywgU29tZSBfKSAtPiBmYWxzZVxuXG5sZXQgaXNfYXRvbV9saXN0IGwgPVxuICBMaXN0LmZvcl9hbGwgaXNfYXRvbSBsXG5cbigqXG4gICBpbnNpZGVfYm94OiBpbmRpY2F0ZXMgdGhhdCB3ZSdyZSBhbHJlYWR5IHdpdGhpbiBhIGJveCB0aGF0IGltcG9zZXNcbiAgIGEgY2VydGFpbiBzdHlsZSBhbmQgd2Ugc2hvdWxkbid0IGNyZWF0ZSBhIG5ldyBvbmUuIFRoaXMgaXMgdXNlZCBmb3JcbiAgIHByaW50aW5nIGZpZWxkIHZhbHVlcyBsaWtlIHRoaXM6XG5cbiAgICAgZm9vOiBbXG4gICAgICAgYmFyXG4gICAgIF1cblxuICAgcmF0aGVyIHRoYW4gc29tZXRoaW5nIGVsc2UgbGlrZVxuXG4gICAgIGZvbzpcbiAgICAgICBbXG4gICAgICAgICBiYXJcbiAgICAgICBdXG4qKVxubGV0IHJlYyBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIChvdXQ6Rm9ybWF0LmZvcm1hdHRlcikgKHg6dCkgOiB1bml0ID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBgTnVsbCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIm51bGxcIlxuICAgIHwgYEJvb2wgeCAtPiBGb3JtYXQucHBfcHJpbnRfYm9vbCBvdXQgeFxuICAgIFxuIyA3OCBcInByZXR0eS5tbFwiXG4gICAgfCBgSW50IHggLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgKGpzb25fc3RyaW5nX29mX2ludCB4KVxuICAgIFxuIyA4MSBcInByZXR0eS5tbFwiXG4gICAgfCBgRmxvYXQgeCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgaWYgc3RkIHRoZW4gc3RkX2pzb25fc3RyaW5nX29mX2Zsb2F0IHhcbiAgICAgICAgICBlbHNlIGpzb25fc3RyaW5nX29mX2Zsb2F0IHhcbiAgICAgICAgaW5cbiAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgc1xuICAgIFxuIyA4OSBcInByZXR0eS5tbFwiXG4gICAgfCBgU3RyaW5nIHMgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgKGpzb25fc3RyaW5nX29mX3N0cmluZyBzKVxuICAgIFxuIyA5MiBcInByZXR0eS5tbFwiXG4gICAgfCBgSW50bGl0IHMgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgc1xuICAgIFxuIyA5NSBcInByZXR0eS5tbFwiXG4gICAgfCBgRmxvYXRsaXQgcyAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBzXG4gICAgXG4jIDk4IFwicHJldHR5Lm1sXCJcbiAgICB8IGBTdHJpbmdsaXQgcyAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBzXG4gICAgXG4jIDEwMCBcInByZXR0eS5tbFwiXG4gICAgfCBgTGlzdCBbXSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIltdXCJcbiAgICB8IGBMaXN0IGwgLT5cbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPlwiO1xuICAgICAgaWYgaXNfYXRvbV9saXN0IGwgdGhlblxuICAgICAgICAoKiB1c2UgbGluZSB3cmFwcGluZyBsaWtlIHdlIHdvdWxkIGRvIGZvciBhIHBhcmFncmFwaCBvZiB0ZXh0ICopXG4gICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIltAOzwxIDA+QFs8aG92PiVhQF1AOzwxIC0yPl1cIlxuICAgICAgICAgIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbFxuICAgICAgZWxzZVxuICAgICAgICAoKiBwcmludCB0aGUgZWxlbWVudHMgaG9yaXpvbnRhbGx5IGlmIHRoZXkgZml0IG9uIHRoZSBsaW5lLFxuICAgICAgICAgICBvdGhlcndpc2UgcHJpbnQgdGhlbSBpbiBhIGNvbHVtbiAqKVxuICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJbQDs8MSAwPkBbPGh2PiVhQF1AOzwxIC0yPl1cIlxuICAgICAgICAgIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbDtcbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcbiAgICB8IGBBc3NvYyBbXSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcInt9XCJcbiAgICB8IGBBc3NvYyBsIC0+XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj5cIjtcbiAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIntAOzwxIDA+JWFAOzwxIC0yPn1cIiAocHBfbGlzdCBcIixcIiAoZm9ybWF0X2ZpZWxkIHN0ZCkpIGw7XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG4gICAgXG4jIDExOSBcInByZXR0eS5tbFwiXG4gICAgfCBgVHVwbGUgbCAtPlxuICAgICAgICBpZiBzdGQgdGhlblxuICAgICAgICAgIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgb3V0IChgTGlzdCBsKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgaWYgbCA9IFtdIHRoZW5cbiAgICAgICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwiKClcIlxuICAgICAgICAgIGVsc2UgKFxuICAgICAgICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxob3YyPlwiO1xuICAgICAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiKEAsJWFAOzwwIC0yPilcIiAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGw7XG4gICAgICAgICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG4gICAgICAgICAgKVxuICAgIFxuIyAxMzIgXCJwcmV0dHkubWxcIlxuICAgIHwgYFZhcmlhbnQgKHMsIE5vbmUpIC0+XG4gICAgICAgIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgXG4jIDEzNSBcInByZXR0eS5tbFwiXG4gICAgICAgICAgbGV0IHJlcHJlc2VudGF0aW9uID0gYFN0cmluZyBzIGluXG4gICAgICAgICAgXG4jIDEzOSBcInByZXR0eS5tbFwiXG4gICAgICAgICAgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCBvdXQgcmVwcmVzZW50YXRpb25cbiAgICAgICAgZWxzZVxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIjwlcz5cIiAoanNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMpXG5cbiAgICB8IGBWYXJpYW50IChzLCBTb21lIHgpIC0+XG4gICAgICAgIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgXG4jIDE0NiBcInByZXR0eS5tbFwiXG4gICAgICAgICAgbGV0IHJlcHJlc2VudGF0aW9uID0gYFN0cmluZyBzIGluXG4gICAgICAgICAgXG4jIDE1MCBcInByZXR0eS5tbFwiXG4gICAgICAgICAgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCBvdXQgKGBMaXN0IFsgcmVwcmVzZW50YXRpb247IHggXSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxldCBvcCA9IGpzb25fc3RyaW5nX29mX3N0cmluZyBzIGluXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiPEBbPGh2Mj4lczogJWFAXT5cIiBvcCAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSB4XG5cbiMgMTU2IFwicHJldHR5Lm1sXCJcbmFuZCBmb3JtYXRfZmllbGQgc3RkIG91dCAobmFtZSwgeCkgPVxuICBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+JXM6ICVhQF1cIiAoanNvbl9zdHJpbmdfb2Zfc3RyaW5nIG5hbWUpIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpIHhcblxubGV0IHBwID8oc3RkID0gZmFsc2UpIG91dCB4ID1cbiAgRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPiVhQF1cIiAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSAoeCA6PiB0KVxuXG5sZXQgdG9fc3RyaW5nID9zdGQgeCA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCIgKHBwID9zdGQpIHhcblxubGV0IHRvX2NoYW5uZWwgP3N0ZCBvYyB4ID1cbiAgbGV0IGZtdCA9IEZvcm1hdC5mb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgb2MgaW5cbiAgRm9ybWF0LmZwcmludGYgZm10IFwiJWFAP1wiIChwcCA/c3RkKSB4XG4jIDE3IFwieW9qc29uLmNwcG8ubWxcIlxuZW5kXG5cbiMgMiBcIndyaXRlMi5tbFwiXG5sZXQgcHJldHR5X3ByaW50ID9zdGQgb3V0IHggPVxuICBQcmV0dHkucHAgP3N0ZCBvdXQgeFxuXG5sZXQgcHJldHR5X3RvX3N0cmluZyA/c3RkIHggPVxuICBQcmV0dHkudG9fc3RyaW5nID9zdGQgeFxuXG5sZXQgcHJldHR5X3RvX2NoYW5uZWwgP3N0ZCBvYyB4ID1cbiAgUHJldHR5LnRvX2NoYW5uZWwgP3N0ZCBvYyB4XG5cbiMgMjggXCJ5b2pzb24uY3Bwby5tbFwiXG5tb2R1bGUgQmFzaWMgPVxuc3RydWN0XG4jIDEgXCJ0eXBlLm1sXCJcbigqKiB7MyBUeXBlIG9mIHRoZSBKU09OIHRyZWV9ICopXG5cbnR5cGUgdCA9XG4gICAgW1xuICAgIHwgYE51bGxcbiAgICB8IGBCb29sIG9mIGJvb2xcbiAgICBcbiMgOCBcInR5cGUubWxcIlxuICAgIHwgYEludCBvZiBpbnRcbiAgICBcbiMgMTQgXCJ0eXBlLm1sXCJcbiAgICB8IGBGbG9hdCBvZiBmbG9hdFxuICAgIFxuIyAyMCBcInR5cGUubWxcIlxuICAgIHwgYFN0cmluZyBvZiBzdHJpbmdcbiAgICBcbiMgMjUgXCJ0eXBlLm1sXCJcbiAgICB8IGBBc3NvYyBvZiAoc3RyaW5nICogdCkgbGlzdFxuICAgIHwgYExpc3Qgb2YgdCBsaXN0XG4gICAgXG4jIDMzIFwidHlwZS5tbFwiXG4gICAgXVxuKCoqXG5BbGwgcG9zc2libGUgY2FzZXMgZGVmaW5lZCBpbiBZb2pzb246XG4tIGBOdWxsOiBKU09OIG51bGxcbi0gYEJvb2wgb2YgYm9vbDogSlNPTiBib29sZWFuXG4tIGBJbnQgb2YgaW50OiBKU09OIG51bWJlciB3aXRob3V0IGRlY2ltYWwgcG9pbnQgb3IgZXhwb25lbnQuXG4tIGBJbnRsaXQgb2Ygc3RyaW5nOiBKU09OIG51bWJlciB3aXRob3V0IGRlY2ltYWwgcG9pbnQgb3IgZXhwb25lbnQsXG5cdCAgICBwcmVzZXJ2ZWQgYXMgYSBzdHJpbmcuXG4tIGBGbG9hdCBvZiBmbG9hdDogSlNPTiBudW1iZXIsIEluZmluaXR5LCAtSW5maW5pdHkgb3IgTmFOLlxuLSBgRmxvYXRsaXQgb2Ygc3RyaW5nOiBKU09OIG51bWJlciwgSW5maW5pdHksIC1JbmZpbml0eSBvciBOYU4sXG5cdCAgICBwcmVzZXJ2ZWQgYXMgYSBzdHJpbmcuXG4tIGBTdHJpbmcgb2Ygc3RyaW5nOiBKU09OIHN0cmluZy4gQnl0ZXMgaW4gdGhlIHJhbmdlIDEyOC0yNTUgYXJlIHByZXNlcnZlZFxuXHQgICAgYXMtaXMgd2l0aG91dCBlbmNvZGluZyB2YWxpZGF0aW9uIGZvciBib3RoIHJlYWRpbmdcblx0ICAgIGFuZCB3cml0aW5nLlxuLSBgU3RyaW5nbGl0IG9mIHN0cmluZzogSlNPTiBzdHJpbmcgbGl0ZXJhbCBpbmNsdWRpbmcgdGhlIGRvdWJsZSBxdW90ZXMuXG4tIGBBc3NvYyBvZiAoc3RyaW5nICoganNvbikgbGlzdDogSlNPTiBvYmplY3QuXG4tIGBMaXN0IG9mIGpzb24gbGlzdDogSlNPTiBhcnJheS5cbi0gYFR1cGxlIG9mIGpzb24gbGlzdDogVHVwbGUgKG5vbi1zdGFuZGFyZCBleHRlbnNpb24gb2YgSlNPTikuXG5cdCAgICBTeW50YXg6IFsoXCJhYmNcIiwgMTIzKV0uXG4tIGBWYXJpYW50IG9mIChzdHJpbmcgKiBqc29uIG9wdGlvbik6IFZhcmlhbnQgKG5vbi1zdGFuZGFyZCBleHRlbnNpb24gb2YgSlNPTikuXG5cdCAgICBTeW50YXg6IFs8XCJGb29cIj5dIG9yIFs8XCJCYXJcIjoxMjM+XS5cbiopXG5cbigqXG4gIE5vdGUgdG8gYWR2ZW50dXJlcnM6IG9jYW1sZG9jIGRvZXMgbm90IHN1cHBvcnQgaW5saW5lIGNvbW1lbnRzXG4gIG9uIGVhY2ggcG9seW1vcnBoaWMgdmFyaWFudCwgYW5kIGNwcG8gZG9lc24ndCBhbGxvdyB0byBjb25jYXRlbmF0ZVxuICBjb21tZW50cywgc28gaXQgd291bGQgYmUgY29tcGxpY2F0ZWQgdG8gZG9jdW1lbnQgb25seSB0aGVcbiAgY2FzZXMgdGhhdCBhcmUgcHJlc2VydmVkIGJ5IGNwcG8gaW4gdGhlIHR5cGUgZGVmaW5pdGlvbi5cbiopXG4jIDEgXCJ3cml0ZS5tbFwiXG4oKiBpbmNsdWRlZDogdHlwZS5tbCAqKVxuXG5sZXQgaGV4IG4gPVxuICBDaGFyLmNociAoXG4gICAgaWYgbiA8IDEwIHRoZW4gbiArIDQ4XG4gICAgZWxzZSBuICsgODdcbiAgKVxuXG5sZXQgd3JpdGVfc3BlY2lhbCBzcmMgc3RhcnQgc3RvcCBvYiBzdHIgPVxuICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChzdG9wIC0gIXN0YXJ0KTtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2Igc3RyO1xuICBzdGFydCA6PSBzdG9wICsgMVxuXG5sZXQgd3JpdGVfY29udHJvbF9jaGFyIHNyYyBzdGFydCBzdG9wIG9iIGMgPVxuICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChzdG9wIC0gIXN0YXJ0KTtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJcXFxcdTAwXCI7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAoaGV4IChDaGFyLmNvZGUgYyBsc3IgNCkpO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgKGhleCAoQ2hhci5jb2RlIGMgbGFuZCAweGYpKTtcbiAgc3RhcnQgOj0gc3RvcCArIDFcblxubGV0IGZpbmlzaF9zdHJpbmcgc3JjIHN0YXJ0IG9iID1cbiAgdHJ5XG4gICAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoU3RyaW5nLmxlbmd0aCBzcmMgLSAhc3RhcnQpXG4gIHdpdGggZXhjIC0+XG4gICAgUHJpbnRmLmVwcmludGYgXCJzcmM9JVMgc3RhcnQ9JWkgbGVuPSVpXFxuJSFcIlxuICAgICAgc3JjICFzdGFydCAoU3RyaW5nLmxlbmd0aCBzcmMgLSAhc3RhcnQpO1xuICAgIHJhaXNlIGV4Y1xuXG5sZXQgd3JpdGVfc3RyaW5nX2JvZHkgb2IgcyA9XG4gIGxldCBzdGFydCA9IHJlZiAwIGluXG4gIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgICAnXCInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXFxcXCJcIlxuICAgICAgfCAnXFxcXCcgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcXFxcXFwiXG4gICAgICB8ICdcXGInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXGJcIlxuICAgICAgfCAnXFwwMTInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXGZcIlxuICAgICAgfCAnXFxuJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxuXCJcbiAgICAgIHwgJ1xccicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcclwiXG4gICAgICB8ICdcXHQnIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXHRcIlxuICAgICAgfCAnXFx4MDAnLi4nXFx4MUYnXG4gICAgICB8ICdcXHg3RicgYXMgYyAtPiB3cml0ZV9jb250cm9sX2NoYXIgcyBzdGFydCBpIG9iIGNcbiAgICAgIHwgXyAtPiAoKVxuICBkb25lO1xuICBmaW5pc2hfc3RyaW5nIHMgc3RhcnQgb2JcblxubGV0IHdyaXRlX3N0cmluZyBvYiBzID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdcIic7XG4gIHdyaXRlX3N0cmluZ19ib2R5IG9iIHM7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXCInXG5cbmxldCBqc29uX3N0cmluZ19vZl9zdHJpbmcgcyA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMTAgaW5cbiAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5sZXQgdGVzdF9zdHJpbmcgKCkgPVxuICBsZXQgcyA9IEJ5dGVzLmNyZWF0ZSAyNTYgaW5cbiAgZm9yIGkgPSAwIHRvIDI1NSBkb1xuICAgIEJ5dGVzLnNldCBzIGkgKENoYXIuY2hyIGkpXG4gIGRvbmU7XG4gIGpzb25fc3RyaW5nX29mX3N0cmluZyAoQnl0ZXMudG9fc3RyaW5nIHMpXG5cblxubGV0IHdyaXRlX251bGwgb2IgKCkgPVxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIm51bGxcIlxuXG5sZXQgd3JpdGVfYm9vbCBvYiB4ID1cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggdGhlbiBcInRydWVcIiBlbHNlIFwiZmFsc2VcIilcblxuXG5sZXQgbWF4X2RpZ2l0cyA9XG4gIG1heFxuICAgIChTdHJpbmcubGVuZ3RoIChzdHJpbmdfb2ZfaW50IG1heF9pbnQpKVxuICAgIChTdHJpbmcubGVuZ3RoIChzdHJpbmdfb2ZfaW50IG1pbl9pbnQpKVxuXG5sZXQgZGVjIG4gPVxuICBDaGFyLmNociAobiArIDQ4KVxuXG5sZXQgcmVjIHdyaXRlX2RpZ2l0cyBzIHggPVxuICBpZiB4ID0gMCB0aGVuICgpXG4gIGVsc2VcbiAgICBsZXQgZCA9IHggbW9kIDEwIGluXG4gICAgd3JpdGVfZGlnaXRzIHMgKHggLyAxMCk7XG4gICAgQnVmZmVyLmFkZF9jaGFyIHMgKGRlYyAoYWJzIGQpKVxuXG5sZXQgd3JpdGVfaW50IG9iIHggPVxuICBpZiB4ID4gMCB0aGVuXG4gICAgd3JpdGVfZGlnaXRzIG9iIHhcbiAgZWxzZSBpZiB4IDwgMCB0aGVuIChcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJy0nO1xuICAgIHdyaXRlX2RpZ2l0cyBvYiB4XG4gIClcbiAgZWxzZVxuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnMCdcblxuXG5sZXQganNvbl9zdHJpbmdfb2ZfaW50IGkgPVxuICBzdHJpbmdfb2ZfaW50IGlcblxuXG4oKlxuICBFbnN1cmUgdGhhdCB0aGUgZmxvYXQgaXMgbm90IHByaW50ZWQgYXMgYW4gaW50LlxuICBUaGlzIGlzIG5vdCByZXF1aXJlZCBieSBKU09OLCBidXQgdXNlZnVsIGluIG9yZGVyIHRvIGd1YXJhbnRlZVxuICByZXZlcnNpYmlsaXR5LlxuKilcbmxldCBmbG9hdF9uZWVkc19wZXJpb2QgcyA9XG4gIHRyeVxuICAgIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgICAgJzAnLi4nOScgfCAnLScgLT4gKClcbiAgICAgICAgfCBfIC0+IHJhaXNlIEV4aXRcbiAgICBkb25lO1xuICAgIHRydWVcbiAgd2l0aCBFeGl0IC0+XG4gICAgZmFsc2VcblxuKCpcbiAgR3VhcmFudGVlcyB0aGF0IGEgc3VmZmljaWVudCBudW1iZXIgb2YgZGlnaXRzIGFyZSBwcmludGVkIGluIG9yZGVyIHRvIGFsbG93XG4gIHJldmVyc2liaWxpdHkuXG4qKVxubGV0IHdyaXRlX2Zsb2F0IG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiTmFOXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggPiAwLiB0aGVuIFwiSW5maW5pdHlcIiBlbHNlIFwiLUluZmluaXR5XCIpXG4gIHwgXyAtPlxuICAgICAgbGV0IHMxID0gUHJpbnRmLnNwcmludGYgXCIlLjE2Z1wiIHggaW5cbiAgICAgIGxldCBzID1cbiAgICAgICAgaWYgZmxvYXRfb2Zfc3RyaW5nIHMxID0geCB0aGVuIHMxXG4gICAgICAgIGVsc2UgUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHhcbiAgICAgIGluXG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICAgICAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxubGV0IHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIGxldCBvcGVuIFByaW50ZiBpblxuICBsZXQgcyA9XG4gICAgbWF0Y2ggc2lnbmlmaWNhbnRfZmlndXJlcyB3aXRoXG4gICAgICAgIDEgLT4gc3ByaW50ZiBcIiUuMWdcIiB4XG4gICAgICB8IDIgLT4gc3ByaW50ZiBcIiUuMmdcIiB4XG4gICAgICB8IDMgLT4gc3ByaW50ZiBcIiUuM2dcIiB4XG4gICAgICB8IDQgLT4gc3ByaW50ZiBcIiUuNGdcIiB4XG4gICAgICB8IDUgLT4gc3ByaW50ZiBcIiUuNWdcIiB4XG4gICAgICB8IDYgLT4gc3ByaW50ZiBcIiUuNmdcIiB4XG4gICAgICB8IDcgLT4gc3ByaW50ZiBcIiUuN2dcIiB4XG4gICAgICB8IDggLT4gc3ByaW50ZiBcIiUuOGdcIiB4XG4gICAgICB8IDkgLT4gc3ByaW50ZiBcIiUuOWdcIiB4XG4gICAgICB8IDEwIC0+IHNwcmludGYgXCIlLjEwZ1wiIHhcbiAgICAgIHwgMTEgLT4gc3ByaW50ZiBcIiUuMTFnXCIgeFxuICAgICAgfCAxMiAtPiBzcHJpbnRmIFwiJS4xMmdcIiB4XG4gICAgICB8IDEzIC0+IHNwcmludGYgXCIlLjEzZ1wiIHhcbiAgICAgIHwgMTQgLT4gc3ByaW50ZiBcIiUuMTRnXCIgeFxuICAgICAgfCAxNSAtPiBzcHJpbnRmIFwiJS4xNWdcIiB4XG4gICAgICB8IDE2IC0+IHNwcmludGYgXCIlLjE2Z1wiIHhcbiAgICAgIHwgXyAtPiBzcHJpbnRmIFwiJS4xN2dcIiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxuKCogdXNlZCBieSBhdGRnZW4gKilcbmxldCB3cml0ZV9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJOYU5cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCA+IDAuIHRoZW4gXCJJbmZpbml0eVwiIGVsc2UgXCItSW5maW5pdHlcIilcbiAgfCBfIC0+XG4gICAgICB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHhcblxubGV0IGpzb25fc3RyaW5nX29mX2Zsb2F0IHggPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDIwIGluXG4gIHdyaXRlX2Zsb2F0IG9iIHg7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5cbmxldCB3cml0ZV9zdGRfZmxvYXQgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAganNvbl9lcnJvciBcIk5hTiB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAganNvbl9lcnJvclxuICAgICAgICAoaWYgeCA+IDAuIHRoZW5cbiAgICAgICAgICAgXCJJbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgXCItSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiKVxuICB8IF8gLT5cbiAgICAgIGxldCBzMSA9IFByaW50Zi5zcHJpbnRmIFwiJS4xNmdcIiB4IGluXG4gICAgICBsZXQgcyA9XG4gICAgICAgIGlmIGZsb2F0X29mX3N0cmluZyBzMSA9IHggdGhlbiBzMVxuICAgICAgICBlbHNlIFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4XG4gICAgICBpblxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgICAgIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbigqIHVzZWQgYnkgYXRkZ2VuICopXG5sZXQgd3JpdGVfc3RkX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBqc29uX2Vycm9yIFwiTmFOIHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBqc29uX2Vycm9yXG4gICAgICAgIChpZiB4ID4gMC4gdGhlblxuICAgICAgICAgICBcIkluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBcIi1JbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCIpXG4gIHwgXyAtPlxuICAgICAgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4XG5cbmxldCBzdGRfanNvbl9zdHJpbmdfb2ZfZmxvYXQgeCA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMjAgaW5cbiAgd3JpdGVfc3RkX2Zsb2F0IG9iIHg7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5cbmxldCB0ZXN0X2Zsb2F0ICgpID1cbiAgbGV0IGwgPSBbIDAuOyAxLjsgLTEuIF0gaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IDIuICouIHggKy4gMS4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggLy4gc3FydCAyLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAqLiBzcXJ0IDMuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIGNvcyBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4ICouIDEuMjNlNTApIGwgaW5cbiAgbGV0IGwgPSBsIEAgWyBpbmZpbml0eTsgbmVnX2luZmluaXR5IF0gaW5cbiAgTGlzdC5pdGVyIChcbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHMgPSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeCBpblxuICAgICAgbGV0IHkgPSBmbG9hdF9vZl9zdHJpbmcgcyBpblxuICAgICAgUHJpbnRmLnByaW50ZiBcIiVnICVnICVTICVCXFxuXCIgeCB5IHMgKHggPSB5KVxuICApXG4gICAgbFxuXG4oKlxubGV0ICgpID0gdGVzdF9mbG9hdCAoKVxuKilcblxubGV0IHdyaXRlX2ludGxpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5sZXQgd3JpdGVfZmxvYXRsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xubGV0IHdyaXRlX3N0cmluZ2xpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5cbmxldCByZWMgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgeSA6OiBsIC0+XG4gICAgICBmX3NlcCB4O1xuICAgICAgZl9lbHQgeCB5O1xuICAgICAgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggbFxuXG5sZXQgaXRlcjIgZl9lbHQgZl9zZXAgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCB5IDo6IGwgLT5cbiAgICAgIGZfZWx0IHggeTtcbiAgICAgIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4IGxcblxubGV0IGZfc2VwIG9iID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICcsJ1xuXG5sZXQgcmVjIHdyaXRlX2pzb24gb2IgKHggOiB0KSA9XG4gIG1hdGNoIHggd2l0aFxuICAgICAgYE51bGwgLT4gd3JpdGVfbnVsbCBvYiAoKVxuICAgIHwgYEJvb2wgYiAtPiB3cml0ZV9ib29sIG9iIGJcbiAgICBcbiMgMjY0IFwid3JpdGUubWxcIlxuICAgIHwgYEludCBpIC0+IHdyaXRlX2ludCBvYiBpXG4gICAgXG4jIDI3MCBcIndyaXRlLm1sXCJcbiAgICB8IGBGbG9hdCBmIC0+IHdyaXRlX2Zsb2F0IG9iIGZcbiAgICBcbiMgMjc2IFwid3JpdGUubWxcIlxuICAgIHwgYFN0cmluZyBzIC0+IHdyaXRlX3N0cmluZyBvYiBzXG4gICAgXG4jIDI4MSBcIndyaXRlLm1sXCJcbiAgICB8IGBBc3NvYyBsIC0+IHdyaXRlX2Fzc29jIG9iIGxcbiAgICB8IGBMaXN0IGwgLT4gd3JpdGVfbGlzdCBvYiBsXG5cbiMgMjkwIFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX2Fzc29jIG9iIGwgPVxuICBsZXQgZl9lbHQgb2IgKHMsIHgpID1cbiAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgIHdyaXRlX2pzb24gb2IgeFxuICBpblxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ3snO1xuICBpdGVyMiBmX2VsdCBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ30nO1xuXG5hbmQgd3JpdGVfbGlzdCBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cblxuXG4jIDMyNSBcIndyaXRlLm1sXCJcbmxldCB3cml0ZV90ID0gd3JpdGVfanNvblxuXG5sZXQgcmVjIHdyaXRlX3N0ZF9qc29uIG9iICh4IDogdCkgPVxuICBtYXRjaCB4IHdpdGhcbiAgICAgIGBOdWxsIC0+IHdyaXRlX251bGwgb2IgKClcbiAgICB8IGBCb29sIGIgLT4gd3JpdGVfYm9vbCBvYiBiXG4gICAgXG4jIDMzMiBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnQgaSAtPiB3cml0ZV9pbnQgb2IgaVxuICAgIFxuIyAzMzggXCJ3cml0ZS5tbFwiXG4gICAgfCBgRmxvYXQgZiAtPiB3cml0ZV9zdGRfZmxvYXQgb2IgZlxuICAgIFxuIyAzNDQgXCJ3cml0ZS5tbFwiXG4gICAgfCBgU3RyaW5nIHMgLT4gd3JpdGVfc3RyaW5nIG9iIHNcbiAgICBcbiMgMzQ5IFwid3JpdGUubWxcIlxuICAgIHwgYEFzc29jIGwgLT4gd3JpdGVfc3RkX2Fzc29jIG9iIGxcbiAgICB8IGBMaXN0IGwgLT4gd3JpdGVfc3RkX2xpc3Qgb2IgbFxuXG4jIDM1OCBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9zdGRfYXNzb2Mgb2IgbCA9XG4gIGxldCBmX2VsdCBvYiAocywgeCkgPVxuICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgd3JpdGVfc3RkX2pzb24gb2IgeFxuICBpblxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ3snO1xuICBpdGVyMiBmX2VsdCBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ30nO1xuXG5hbmQgd3JpdGVfc3RkX2xpc3Qgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX3N0ZF9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuYW5kIHdyaXRlX3N0ZF90dXBsZSBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfc3RkX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG5cblxuIyAzOTEgXCJ3cml0ZS5tbFwiXG5sZXQgdG9fYnVmZmVyID8oc3VmID0gXCJcIikgPyhzdGQgPSBmYWxzZSkgb2IgeCA9XG4gIGlmIHN0ZCB0aGVuXG4gICAgd3JpdGVfc3RkX2pzb24gb2IgeFxuICBlbHNlXG4gICAgd3JpdGVfanNvbiBvYiB4O1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzdWZcblxubGV0IHRvX3N0cmluZyA/YnVmID8obGVuID0gMjU2KSA/KHN1ZiA9IFwiXCIpID9zdGQgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+XG4gICAgICAgICAgQnVmZmVyLmNsZWFyIG9iO1xuICAgICAgICAgIG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgb2IgaW5cbiAgQnVmZmVyLmNsZWFyIG9iO1xuICBzXG5cbmxldCB0b19jaGFubmVsID9idWYgPyhsZW49NDA5NikgPyhzdWYgPSBcIlwiKSA/c3RkIG9jIHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgQnVmZmVyLm91dHB1dF9idWZmZXIgb2Mgb2I7XG4gIEJ1ZmZlci5jbGVhciBvYlxuXG5sZXQgdG9fb3V0cHV0ID9idWYgPyhsZW49NDA5NikgPyhzdWYgPSBcIlwiKSA/c3RkIG91dCB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIG91dCNvdXRwdXQgKEJ1ZmZlci5jb250ZW50cyBvYikgMCAoQnVmZmVyLmxlbmd0aCBvYik7XG4gIEJ1ZmZlci5jbGVhciBvYlxuXG5sZXQgdG9fZmlsZSA/bGVuID9zdGQgPyhzdWYgPSBcIlxcblwiKSBmaWxlIHggPVxuICBsZXQgb2MgPSBvcGVuX291dCBmaWxlIGluXG4gIHRyeVxuICAgIHRvX2NoYW5uZWwgP2xlbiB+c3VmID9zdGQgb2MgeDtcbiAgICBjbG9zZV9vdXQgb2NcbiAgd2l0aCBlIC0+XG4gICAgY2xvc2Vfb3V0X25vZXJyIG9jO1xuICAgIHJhaXNlIGVcblxubGV0IHNlcV90b19idWZmZXIgPyhzdWYgPSBcIlxcblwiKSA/c3RkIG9iIHN0ID1cbiAgU2VxLml0ZXIgKHRvX2J1ZmZlciB+c3VmID9zdGQgb2IpIHN0XG5cbmxldCBzZXFfdG9fc3RyaW5nID9idWYgPyhsZW4gPSAyNTYpID8oc3VmID0gXCJcXG5cIikgP3N0ZCBzdCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+XG4gICAgICAgICAgQnVmZmVyLmNsZWFyIG9iO1xuICAgICAgICAgIG9iXG4gIGluXG4gIHNlcV90b19idWZmZXIgfnN1ZiA/c3RkIG9iIHN0O1xuICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBvYiBpblxuICBCdWZmZXIuY2xlYXIgb2I7XG4gIHNcblxubGV0IHNlcV90b19jaGFubmVsID9idWYgPyhsZW49MjA5NikgPyhzdWYgPSBcIlxcblwiKSA/c3RkIG9jIHNlcSA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgU2VxLml0ZXIgKGZ1biBqc29uIC0+XG4gICAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiBqc29uO1xuICAgIEJ1ZmZlci5vdXRwdXRfYnVmZmVyIG9jIG9iO1xuICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgKSBzZXFcblxubGV0IHNlcV90b19maWxlID9sZW4gPyhzdWYgPSBcIlxcblwiKSA/c3RkIGZpbGUgc3QgPVxuICBsZXQgb2MgPSBvcGVuX291dCBmaWxlIGluXG4gIHRyeVxuICAgIHNlcV90b19jaGFubmVsID9sZW4gfnN1ZiA/c3RkIG9jIHN0O1xuICAgIGNsb3NlX291dCBvY1xuICB3aXRoIGUgLT5cbiAgICBjbG9zZV9vdXRfbm9lcnIgb2M7XG4gICAgcmFpc2UgZVxuXG5cbmxldCByZWMgc29ydCA9IGZ1bmN0aW9uXG4gIHwgYEFzc29jIGwgLT5cbiAgICAgIGxldCBsID0gTGlzdC5yZXYgKExpc3QucmV2X21hcCAoZnVuIChrLCB2KSAtPiAoaywgc29ydCB2KSkgbCkgaW5cbiAgICAgIGBBc3NvYyAoTGlzdC5zdGFibGVfc29ydCAoZnVuIChhLCBfKSAoYiwgXykgLT4gU3RyaW5nLmNvbXBhcmUgYSBiKSBsKVxuICB8IGBMaXN0IGwgLT5cbiAgICAgIGBMaXN0IChMaXN0LnJldiAoTGlzdC5yZXZfbWFwIHNvcnQgbCkpXG4gIFxuIyA0OTUgXCJ3cml0ZS5tbFwiXG4gIHwgeCAtPiB4XG4jIDM1IFwieW9qc29uLmNwcG8ubWxcIlxubW9kdWxlIFByZXR0eSA9XG5zdHJ1Y3RcbiMgMSBcInByZXR0eS5tbFwiXG4oKlxuICAgUHJldHR5LXByaW50IEpTT04gZGF0YSBpbiBhbiBhdHRlbXB0IHRvIG1heGltaXplIHJlYWRhYmlsaXR5LlxuXG4gICAxLiBXaGF0IGZpdHMgb24gb25lIGxpbmUgc3RheXMgb24gb25lIGxpbmUuXG4gICAyLiBXaGF0IGRvZXNuJ3QgZml0IG9uIG9uZSBsaW5lIGdldHMgcHJpbnRlZCBtb3JlIHZlcnRpY2FsbHkgc28gYXMgdG8gbm90XG4gICAgICBleGNlZWQgYSByZWFzb25hYmxlIHBhZ2Ugd2lkdGgsIGlmIHBvc3NpYmxlLlxuXG4gICBBcnJheXMgY29udGFpbmluZyBvbmx5IHNpbXBsZSBlbGVtZW50cyAoXCJhdG9tc1wiKSBhcmUgcHJldHR5LXByaW50ZWQgd2l0aFxuICAgZW5kLW9mLWxpbmUgd3JhcHBpbmcgbGlrZSBvcmRpbmFyeSB0ZXh0OlxuXG4gICAgIFtcbiAgICAgICAgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsXG4gICAgICAgIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiXG4gICAgIF1cblxuICAgT3RoZXIgYXJyYXlzIGFyZSBwcmludGVkIGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmdcbiAgIG9uIHdoZXRoZXIgdGhleSBmaXQgb24gYSBzaW5nbGUgbGluZTpcblxuICAgICBbIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSwgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LCB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0gXVxuXG4gICBvclxuXG4gICAgIFtcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH1cbiAgICAgXVxuKilcblxubGV0IHBwX2xpc3Qgc2VwIHBweCBvdXQgbCA9XG4gIGxldCBwcF9zZXAgb3V0ICgpID0gRm9ybWF0LmZwcmludGYgb3V0IFwiJXNAIFwiIHNlcCBpblxuICBGb3JtYXQucHBfcHJpbnRfbGlzdCB+cHBfc2VwIHBweCBvdXQgbFxuXG5sZXQgaXNfYXRvbSAoeDogWz4gdF0pID1cbiAgbWF0Y2ggeCB3aXRoXG4gIHwgYE51bGxcbiAgfCBgQm9vbCBfXG4gIHwgYEludCBfXG4gIHwgYEZsb2F0IF9cbiAgfCBgU3RyaW5nIF9cbiAgfCBgSW50bGl0IF9cbiAgfCBgRmxvYXRsaXQgX1xuICB8IGBTdHJpbmdsaXQgX1xuICB8IGBMaXN0IFtdXG4gIHwgYEFzc29jIFtdXG4gIHwgYFR1cGxlIFtdXG4gIHwgYFZhcmlhbnQgKF8sIE5vbmUpIC0+IHRydWVcbiAgfCBgTGlzdCBfXG4gIHwgYEFzc29jIF9cbiAgfCBgVHVwbGUgX1xuICB8IGBWYXJpYW50IChfLCBTb21lIF8pIC0+IGZhbHNlXG5cbmxldCBpc19hdG9tX2xpc3QgbCA9XG4gIExpc3QuZm9yX2FsbCBpc19hdG9tIGxcblxuKCpcbiAgIGluc2lkZV9ib3g6IGluZGljYXRlcyB0aGF0IHdlJ3JlIGFscmVhZHkgd2l0aGluIGEgYm94IHRoYXQgaW1wb3Nlc1xuICAgYSBjZXJ0YWluIHN0eWxlIGFuZCB3ZSBzaG91bGRuJ3QgY3JlYXRlIGEgbmV3IG9uZS4gVGhpcyBpcyB1c2VkIGZvclxuICAgcHJpbnRpbmcgZmllbGQgdmFsdWVzIGxpa2UgdGhpczpcblxuICAgICBmb286IFtcbiAgICAgICBiYXJcbiAgICAgXVxuXG4gICByYXRoZXIgdGhhbiBzb21ldGhpbmcgZWxzZSBsaWtlXG5cbiAgICAgZm9vOlxuICAgICAgIFtcbiAgICAgICAgIGJhclxuICAgICAgIF1cbiopXG5sZXQgcmVjIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgKG91dDpGb3JtYXQuZm9ybWF0dGVyKSAoeDp0KSA6IHVuaXQgPVxuICBtYXRjaCB4IHdpdGhcbiAgICB8IGBOdWxsIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwibnVsbFwiXG4gICAgfCBgQm9vbCB4IC0+IEZvcm1hdC5wcF9wcmludF9ib29sIG91dCB4XG4gICAgXG4jIDc4IFwicHJldHR5Lm1sXCJcbiAgICB8IGBJbnQgeCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCAoanNvbl9zdHJpbmdfb2ZfaW50IHgpXG4gICAgXG4jIDgxIFwicHJldHR5Lm1sXCJcbiAgICB8IGBGbG9hdCB4IC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBpZiBzdGQgdGhlbiBzdGRfanNvbl9zdHJpbmdfb2ZfZmxvYXQgeFxuICAgICAgICAgIGVsc2UganNvbl9zdHJpbmdfb2ZfZmxvYXQgeFxuICAgICAgICBpblxuICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBzXG4gICAgXG4jIDg5IFwicHJldHR5Lm1sXCJcbiAgICB8IGBTdHJpbmcgcyAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCAoanNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMpXG4gICAgXG4jIDEwMCBcInByZXR0eS5tbFwiXG4gICAgfCBgTGlzdCBbXSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIltdXCJcbiAgICB8IGBMaXN0IGwgLT5cbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPlwiO1xuICAgICAgaWYgaXNfYXRvbV9saXN0IGwgdGhlblxuICAgICAgICAoKiB1c2UgbGluZSB3cmFwcGluZyBsaWtlIHdlIHdvdWxkIGRvIGZvciBhIHBhcmFncmFwaCBvZiB0ZXh0ICopXG4gICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIltAOzwxIDA+QFs8aG92PiVhQF1AOzwxIC0yPl1cIlxuICAgICAgICAgIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbFxuICAgICAgZWxzZVxuICAgICAgICAoKiBwcmludCB0aGUgZWxlbWVudHMgaG9yaXpvbnRhbGx5IGlmIHRoZXkgZml0IG9uIHRoZSBsaW5lLFxuICAgICAgICAgICBvdGhlcndpc2UgcHJpbnQgdGhlbSBpbiBhIGNvbHVtbiAqKVxuICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJbQDs8MSAwPkBbPGh2PiVhQF1AOzwxIC0yPl1cIlxuICAgICAgICAgIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbDtcbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcbiAgICB8IGBBc3NvYyBbXSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcInt9XCJcbiAgICB8IGBBc3NvYyBsIC0+XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj5cIjtcbiAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIntAOzwxIDA+JWFAOzwxIC0yPn1cIiAocHBfbGlzdCBcIixcIiAoZm9ybWF0X2ZpZWxkIHN0ZCkpIGw7XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG5cbiMgMTU2IFwicHJldHR5Lm1sXCJcbmFuZCBmb3JtYXRfZmllbGQgc3RkIG91dCAobmFtZSwgeCkgPVxuICBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+JXM6ICVhQF1cIiAoanNvbl9zdHJpbmdfb2Zfc3RyaW5nIG5hbWUpIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpIHhcblxubGV0IHBwID8oc3RkID0gZmFsc2UpIG91dCB4ID1cbiAgRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPiVhQF1cIiAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSAoeCA6PiB0KVxuXG5sZXQgdG9fc3RyaW5nID9zdGQgeCA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCIgKHBwID9zdGQpIHhcblxubGV0IHRvX2NoYW5uZWwgP3N0ZCBvYyB4ID1cbiAgbGV0IGZtdCA9IEZvcm1hdC5mb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgb2MgaW5cbiAgRm9ybWF0LmZwcmludGYgZm10IFwiJWFAP1wiIChwcCA/c3RkKSB4XG4jIDM4IFwieW9qc29uLmNwcG8ubWxcIlxuZW5kXG4jIDEgXCJtb25vbW9ycGhpYy5tbFwiXG5sZXQgcmVjIHBwIGZtdCA9XG4gIGZ1bmN0aW9uXG4gIHwgYE51bGwgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCJgTnVsbFwiXG4gIHwgYEJvb2wgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBCb29sIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJUJcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA5IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBJbnQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBJbnQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlZFwiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDIxIFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBGbG9hdCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEZsb2F0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJUZcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAzMyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgU3RyaW5nIHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgU3RyaW5nIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA0NCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgQXNzb2MgeHMgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgQXNzb2MgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCAoa2V5LCB2YWx1ZSkgLT5cbiAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIoQFtcIjtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIGtleTtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIsQCBcIjtcbiAgICAgICAgICBwcCBmbXQgdmFsdWU7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCI7XG4gICAgICAgICAgdHJ1ZSkgZmFsc2UgeHMpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgfCBgTGlzdCB4cyAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBMaXN0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgeCAtPlxuICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgIHBwIGZtdCB4O1xuICAgICAgICAgIHRydWUpIGZhbHNlIHhzKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG5cbiMgOTkgXCJtb25vbW9ycGhpYy5tbFwiXG5sZXQgc2hvdyB4ID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIiBwcCB4XG5cbmxldCByZWMgZXF1YWwgYSBiID1cbiAgbWF0Y2ggYSwgYiB3aXRoXG4gIHwgYE51bGwsIGBOdWxsIC0+IHRydWVcbiAgfCBgQm9vbCBhLCBgQm9vbCBiIC0+IGEgPSBiXG4gIFxuIyAxMDcgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEludCBhLCBgSW50IGIgLT4gYSA9IGJcbiAgICBcbiMgMTEzIFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEZsb2F0IGEsIGBGbG9hdCBiIC0+IGEgPSBiXG4gICAgXG4jIDExOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBTdHJpbmcgYSwgYFN0cmluZyBiIC0+IGEgPSBiXG4gICAgXG4jIDEyNCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBBc3NvYyB4cywgYEFzc29jIHlzIC0+XG4gICAgICBsZXQgY29tcGFyZV9rZXlzID0gZnVuIChrZXksIF8pIChrZXknLCBfKSAtPiBTdHJpbmcuY29tcGFyZSBrZXkga2V5JyBpblxuICAgICAgbGV0IHhzID0gTGlzdC5zdGFibGVfc29ydCBjb21wYXJlX2tleXMgeHMgaW5cbiAgICAgIGxldCB5cyA9IExpc3Quc3RhYmxlX3NvcnQgY29tcGFyZV9rZXlzIHlzIGluXG4gICAgICAobWF0Y2ggTGlzdC5mb3JfYWxsMiAoZnVuIChrZXksIHZhbHVlKSAoa2V5JywgdmFsdWUnKSAtPlxuICAgICAgICBtYXRjaCBrZXkgPSBrZXknIHdpdGhcbiAgICAgICAgfCBmYWxzZSAtPiBmYWxzZVxuICAgICAgICB8IHRydWUgLT4gZXF1YWwgdmFsdWUgdmFsdWUnKSB4cyB5cyB3aXRoXG4gICAgICB8IHJlc3VsdCAtPiByZXN1bHRcbiAgICAgIHwgZXhjZXB0aW9uIEludmFsaWRfYXJndW1lbnQgXyAtPlxuICAgICAgICAoKiB0aGUgbGlzdHMgd2VyZSBvZiBkaWZmZXJlbnQgbGVuZ3RocywgdGh1cyB1bmVxdWFsICopXG4gICAgICAgIGZhbHNlKVxuICAgIFxuIyAxMzkgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgTGlzdCB4cywgYExpc3QgeXMgLT5cbiAgICAgIChtYXRjaCBMaXN0LmZvcl9hbGwyIGVxdWFsIHhzIHlzIHdpdGhcbiAgICAgIHwgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgfCBleGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCBfIC0+XG4gICAgICAgICgqIHRoZSBsaXN0cyB3ZXJlIG9mIGRpZmZlcmVudCBsZW5ndGhzLCB0aHVzIHVuZXF1YWwgKilcbiAgICAgICAgZmFsc2UpXG4gICAgXG4jIDE1NSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IF8gLT4gZmFsc2VcblxuIyAyIFwid3JpdGUyLm1sXCJcbmxldCBwcmV0dHlfcHJpbnQgP3N0ZCBvdXQgeCA9XG4gIFByZXR0eS5wcCA/c3RkIG91dCB4XG5cbmxldCBwcmV0dHlfdG9fc3RyaW5nID9zdGQgeCA9XG4gIFByZXR0eS50b19zdHJpbmcgP3N0ZCB4XG5cbmxldCBwcmV0dHlfdG9fY2hhbm5lbCA/c3RkIG9jIHggPVxuICBQcmV0dHkudG9fY2hhbm5lbCA/c3RkIG9jIHhcblxuIyAxIFwibGliL3JlYWQubWxsXCJcbiBcbiAgXG4jIDIgXCJsaWIvcmVhZC5tbGxcIlxuICBtb2R1bGUgTGV4aW5nID1cbiAgICAoKlxuICAgICAgV2Ugb3ZlcnJpZGUgTGV4aW5nLmVuZ2luZSBpbiBvcmRlciB0byBhdm9pZCBjcmVhdGluZyBhIG5ldyBwb3NpdGlvblxuICAgICAgcmVjb3JkIGVhY2ggdGltZSBhIHJ1bGUgaXMgbWF0Y2hlZC5cbiAgICAgIFRoaXMgcmVkdWNlcyB0b3RhbCBwYXJzaW5nIHRpbWUgYnkgYWJvdXQgMzElLlxuICAgICopXG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTGV4aW5nXG5cbiAgICBleHRlcm5hbCBjX2VuZ2luZSA6IGxleF90YWJsZXMgLT4gaW50IC0+IGxleGJ1ZiAtPiBpbnQgPSBcImNhbWxfbGV4X2VuZ2luZVwiXG5cbiAgICBsZXQgZW5naW5lIHRibCBzdGF0ZSBidWYgPVxuICAgICAgbGV0IHJlc3VsdCA9IGNfZW5naW5lIHRibCBzdGF0ZSBidWYgaW5cbiAgICAgICgqXG4gICAgICBpZiByZXN1bHQgPj0gMCB0aGVuIGJlZ2luXG4gICAgICAgIGJ1Zi5sZXhfc3RhcnRfcCA8LSBidWYubGV4X2N1cnJfcDtcbiAgICAgICAgYnVmLmxleF9jdXJyX3AgPC0ge2J1Zi5sZXhfY3Vycl9wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHBvc19jbnVtID0gYnVmLmxleF9hYnNfcG9zICsgYnVmLmxleF9jdXJyX3Bvc307XG4gICAgICBlbmQ7XG4gICAgICAqKVxuICAgICAgcmVzdWx0XG4gIGVuZFxuXG4gIG9wZW4gUHJpbnRmXG4gIG9wZW4gTGV4aW5nXG5cbiAgKCogc2VlIGRlc2NyaXB0aW9uIGluIGNvbW1vbi5tbGkgKilcbiAgdHlwZSBsZXhlcl9zdGF0ZSA9IExleGVyX3N0YXRlLnQgPSB7XG4gICAgYnVmIDogQnVmZmVyLnQ7XG4gICAgbXV0YWJsZSBsbnVtIDogaW50O1xuICAgIG11dGFibGUgYm9sIDogaW50O1xuICAgIG11dGFibGUgZm5hbWUgOiBzdHJpbmcgb3B0aW9uO1xuICB9XG5cbiAgbGV0IGRlYyBjID1cbiAgICBDaGFyLmNvZGUgYyAtIDQ4XG5cbiAgbGV0IGhleCBjID1cbiAgICBtYXRjaCBjIHdpdGhcbiAgICAgICAgJzAnLi4nOScgLT4gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICcwJ1xuICAgICAgfCAnYScuLidmJyAtPiBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ2EnICsgMTBcbiAgICAgIHwgJ0EnLi4nRicgLT4gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdBJyArIDEwXG4gICAgICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgbGV0IGN1c3RvbV9lcnJvciBkZXNjciB2IGxleGJ1ZiA9XG4gICAgbGV0IG9mZnMgPSBsZXhidWYubGV4X2Fic19wb3MgLSAxIGluXG4gICAgbGV0IGJvbCA9IHYuYm9sIGluXG4gICAgbGV0IHBvczEgPSBvZmZzICsgbGV4YnVmLmxleF9zdGFydF9wb3MgLSBib2wgLSAxIGluXG4gICAgbGV0IHBvczIgPSBtYXggcG9zMSAob2ZmcyArIGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBib2wpIGluXG4gICAgbGV0IGZpbGVfbGluZSA9XG4gICAgICBtYXRjaCB2LmZuYW1lIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFwiTGluZVwiXG4gICAgICAgIHwgU29tZSBzIC0+XG4gICAgICAgICAgICBzcHJpbnRmIFwiRmlsZSAlcywgbGluZVwiIHNcbiAgICBpblxuICAgIGxldCBieXRlcyA9XG4gICAgICBpZiBwb3MxID0gcG9zMiB0aGVuXG4gICAgICAgIHNwcmludGYgXCJieXRlICVpXCIgKHBvczErMSlcbiAgICAgIGVsc2VcbiAgICAgICAgc3ByaW50ZiBcImJ5dGVzICVpLSVpXCIgKHBvczErMSkgKHBvczIrMSlcbiAgICBpblxuICAgIGxldCBtc2cgPSBzcHJpbnRmIFwiJXMgJWksICVzOlxcbiVzXCIgZmlsZV9saW5lIHYubG51bSBieXRlcyBkZXNjciBpblxuICAgIGpzb25fZXJyb3IgbXNnXG5cblxuICBsZXQgbGV4ZXJfZXJyb3IgZGVzY3IgdiBsZXhidWYgPVxuICAgIGN1c3RvbV9lcnJvclxuICAgICAgKHNwcmludGYgXCIlcyAnJXMnXCIgZGVzY3IgKExleGluZy5sZXhlbWUgbGV4YnVmKSlcbiAgICAgIHYgbGV4YnVmXG5cbiAgbGV0IHJlYWRfanVuayA9IHJlZiAoZnVuIF8gLT4gYXNzZXJ0IGZhbHNlKVxuXG4gIGxldCBsb25nX2Vycm9yIGRlc2NyIHYgbGV4YnVmID1cbiAgICBsZXQganVuayA9IExleGluZy5sZXhlbWUgbGV4YnVmIGluXG4gICAgbGV0IGV4dHJhX2p1bmsgPSAhcmVhZF9qdW5rIGxleGJ1ZiBpblxuICAgIGN1c3RvbV9lcnJvclxuICAgICAgKHNwcmludGYgXCIlcyAnJXMlcydcIiBkZXNjciBqdW5rIGV4dHJhX2p1bmspXG4gICAgICB2IGxleGJ1ZlxuXG4gIGxldCBtaW4xMCA9IG1pbl9pbnQgLyAxMCAtIChpZiBtaW5faW50IG1vZCAxMCA9IDAgdGhlbiAwIGVsc2UgMSlcbiAgbGV0IG1heDEwID0gbWF4X2ludCAvIDEwICsgKGlmIG1heF9pbnQgbW9kIDEwID0gMCB0aGVuIDAgZWxzZSAxKVxuXG4gIGV4Y2VwdGlvbiBJbnRfb3ZlcmZsb3dcblxuICBsZXQgZXh0cmFjdF9wb3NpdGl2ZV9pbnQgbGV4YnVmID1cbiAgICBsZXQgc3RhcnQgPSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIGxldCBzdG9wID0gbGV4YnVmLmxleF9jdXJyX3BvcyBpblxuICAgIGxldCBzID0gbGV4YnVmLmxleF9idWZmZXIgaW5cbiAgICBsZXQgbiA9IHJlZiAwIGluXG4gICAgZm9yIGkgPSBzdGFydCB0byBzdG9wIC0gMSBkb1xuICAgICAgaWYgIW4gPj0gbWF4MTAgdGhlblxuICAgICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICAgIGVsc2VcbiAgICAgICAgbiA6PSAxMCAqICFuICsgZGVjIChCeXRlcy5nZXQgcyBpKVxuICAgIGRvbmU7XG4gICAgaWYgIW4gPCAwIHRoZW5cbiAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgIGVsc2VcbiAgICAgICFuXG5cbiAgbGV0IG1ha2VfcG9zaXRpdmVfaW50IHYgbGV4YnVmID1cbiAgICAgIFxuIyAxMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgdHJ5IGBJbnQgKGV4dHJhY3RfcG9zaXRpdmVfaW50IGxleGJ1ZilcbiAgICAgIHdpdGggSW50X292ZXJmbG93IC0+XG4gICAgICAgIFxuIyAxMTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICBsZXhlcl9lcnJvciBcIkludCBvdmVyZmxvd1wiIHYgbGV4YnVmXG5cbiAgXG4jIDExMyBcImxpYi9yZWFkLm1sbFwiXG4gIGxldCBleHRyYWN0X25lZ2F0aXZlX2ludCBsZXhidWYgPVxuICAgIGxldCBzdGFydCA9IGxleGJ1Zi5sZXhfc3RhcnRfcG9zICsgMSBpblxuICAgIGxldCBzdG9wID0gbGV4YnVmLmxleF9jdXJyX3BvcyBpblxuICAgIGxldCBzID0gbGV4YnVmLmxleF9idWZmZXIgaW5cbiAgICBsZXQgbiA9IHJlZiAwIGluXG4gICAgZm9yIGkgPSBzdGFydCB0byBzdG9wIC0gMSBkb1xuICAgICAgaWYgIW4gPD0gbWluMTAgdGhlblxuICAgICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICAgIGVsc2VcbiAgICAgICAgbiA6PSAxMCAqICFuIC0gZGVjIChCeXRlcy5nZXQgcyBpKVxuICAgIGRvbmU7XG4gICAgaWYgIW4gPiAwIHRoZW5cbiAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgIGVsc2VcbiAgICAgICFuXG5cbiAgbGV0IG1ha2VfbmVnYXRpdmVfaW50IHYgbGV4YnVmID1cbiAgICAgIFxuIyAxMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgdHJ5IGBJbnQgKGV4dHJhY3RfbmVnYXRpdmVfaW50IGxleGJ1ZilcbiAgICAgIHdpdGggSW50X292ZXJmbG93IC0+XG4gICAgICAgIFxuIyAxMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICBsZXhlcl9lcnJvciBcIkludCBvdmVyZmxvd1wiIHYgbGV4YnVmXG5cblxuICBcbiMgMTQxIFwibGliL3JlYWQubWxsXCJcbiAgbGV0IHNldF9maWxlX25hbWUgdiBmbmFtZSA9XG4gICAgdi5mbmFtZSA8LSBmbmFtZVxuXG4gIGxldCBuZXdsaW5lIHYgbGV4YnVmID1cbiAgICB2LmxudW0gPC0gdi5sbnVtICsgMTtcbiAgICB2LmJvbCA8LSBsZXhidWYubGV4X2Fic19wb3MgKyBsZXhidWYubGV4X2N1cnJfcG9zXG5cbiAgbGV0IGFkZF9sZXhlbWUgYnVmIGxleGJ1ZiA9XG4gICAgbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIEJ1ZmZlci5hZGRfc3ViYnl0ZXMgYnVmIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGxlblxuXG4gIGxldCBtYXBfbGV4ZW1lIGYgbGV4YnVmID1cbiAgICBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgZiAoQnl0ZXMuc3ViX3N0cmluZyBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBsZW4pIDAgbGVuXG5cbiAgdHlwZSB2YXJpYW50X2tpbmQgPSBbIGBFZGd5X2JyYWNrZXQgfCBgU3F1YXJlX2JyYWNrZXQgfCBgRG91YmxlX3F1b3RlIF1cbiAgdHlwZSB0dXBsZV9raW5kID0gWyBgUGFyZW50aGVzaXMgfCBgU3F1YXJlX2JyYWNrZXQgXVxuXG5cbiMgMTYxIFwibGliL3JlYWQubWxcIlxuIyAxNjEgXCJsaWIvcmVhZC5tbFwiXG5sZXQgX19vY2FtbF9sZXhfdGFibGVzID0ge1xuICBMZXhpbmcubGV4X2Jhc2UgPVxuICAgXCJcXDAwMFxcMDAwXFwyMzZcXDI1NVxcMjM3XFwyNTVcXDAwM1xcMDAwXFwyMzlcXDI1NVxcMDE2XFwwMDBcXDI0MlxcMjU1XFwyNDNcXDI1NVxcXG4gICAgXFwyNDRcXDI1NVxcMjQ1XFwyNTVcXDAwMFxcMDAwXFwwMzFcXDAwMFxcMjQ5XFwyNTVcXDA4NVxcMDAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAxXFwwMDBcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwyNTRcXDI1NVxcMDAxXFwwMDBcXDAwNFxcMDAwXFwyNTNcXDI1NVxcMDExXFwwMDBcXDI1MlxcMjU1XFwwMDNcXDAwMFxcXG4gICAgXFwwMDFcXDAwMFxcMDAzXFwwMDBcXDAwMlxcMDAwXFwwMDNcXDAwMFxcMDAwXFwwMDBcXDI1MVxcMjU1XFwwMjFcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMDEwXFwwMDBcXDAyMlxcMDAwXFwwMjBcXDAwMFxcMDE2XFwwMDBcXDAyMlxcMDAwXFwwMTJcXDAwMFxcMDA4XFwwMDBcXDI1MFxcMjU1XFxcbiAgICBcXDExOVxcMDAwXFwxMjlcXDAwMFxcMTM5XFwwMDBcXDE2MVxcMDAwXFwxNzFcXDAwMFxcMTgxXFwwMDBcXDE5M1xcMDAwXFwyMDlcXDAwMFxcXG4gICAgXFwyNDBcXDI1NVxcMDExXFwwMDBcXDAzOFxcMDAwXFwyNTJcXDI1NVxcMDY1XFwwMDBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTEwXFwwMDBcXFxuICAgIFxcMjUyXFwyNTVcXDE2M1xcMDAwXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIzNFxcMDAwXFwyNDdcXDI1NVxcMjQ4XFwyNTVcXDA0OFxcMDAxXFxcbiAgICBcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA3MVxcMDAxXFwxMjZcXDAwMVxcXG4gICAgXFwxNDlcXDAwMVxcMjQ5XFwyNTVcXDAzOVxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDAzOFxcMDAwXFwxODdcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjQ4XFwwMDFcXDAxNVxcMDAyXFwyNTVcXDI1NVxcMjIwXFwwMDBcXDI1M1xcMjU1XFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDAzOVxcMDAyXFxcbiAgICBcXDEwOVxcMDAyXFwwMTRcXDAwMVxcMDg4XFwwMDJcXDE2NFxcMDAyXFwxODdcXDAwMlxcMjI1XFwwMDJcXDAxM1xcMDAwXFwyNTJcXDI1NVxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTRcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDMwXFwwMDBcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE1XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxN1xcMDAxXFxcbiAgICBcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE5XFwwMDBcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMDE1XFwwMDBcXDI1NVxcMjU1XFwwMTZcXDAwMFxcMjU1XFwyNTVcXDAwOFxcMDAxXFwwMDVcXDAwMFxcMjUzXFwyNTVcXFxuICAgIFxcMDIzXFwwMDBcXDI1NFxcMjU1XFwwMjBcXDAwMFxcMjU1XFwyNTVcXDA0NlxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDA0MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTNcXDAwMFxcMjU1XFwyNTVcXDA1M1xcMDAwXFwwNDhcXDAwMFxcMDkxXFwwMDBcXDA5MlxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMjdcXDAwMVxcMjUwXFwyNTVcXDI1MVxcMjU1XFwxMzdcXDAwMFxcMTA0XFwwMDBcXDA4OVxcMDAwXFwwODhcXDAwMFxcMTA2XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDE0M1xcMDAwXFwxMzdcXDAwMFxcMTc3XFwwMDBcXDI1NFxcMjU1XFwxODNcXDAwMFxcMTY4XFwwMDBcXDE2NlxcMDAwXFxcbiAgICBcXDE4M1xcMDAwXFwwMDJcXDAwMFxcMjUzXFwyNTVcXDE3N1xcMDAwXFwxNzJcXDAwMFxcMTg3XFwwMDBcXDAwNFxcMDAwXFwyNTJcXDI1NVxcXG4gICAgXFwwNTNcXDAwMlxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMTAzXFwwMDFcXDI1NVxcMjU1XFwyNDhcXDAwMlxcMjU0XFwyNTVcXFxuICAgIFxcMDA2XFwwMDNcXDAzMFxcMDAzXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDQwXFwwMDNcXDA1MFxcMDAzXFxcbiAgICBcXDA3NFxcMDAzXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDYxXFwwMDNcXDA4NFxcMDAzXFwxMDhcXDAwM1xcXG4gICAgXFwyNDlcXDI1NVxcMjUwXFwyNTVcXDI1MVxcMjU1XFwyNDRcXDAwMFxcMTIwXFwwMDNcXDE0MlxcMDAzXFwxNzlcXDAwMFxcMTk0XFwwMDBcXFxuICAgIFxcMDE1XFwwMDBcXDI1NVxcMjU1XFwxOTBcXDAwMFxcMTg4XFwwMDBcXDE4N1xcMDAwXFwxOTNcXDAwMFxcMTgzXFwwMDBcXDE3OVxcMDAwXFxcbiAgICBcXDI1NFxcMjU1XFwxOTFcXDAwMFxcMjAxXFwwMDBcXDIwMFxcMDAwXFwxOTZcXDAwMFxcMjAzXFwwMDBcXDE5M1xcMDAwXFwxODlcXDAwMFxcXG4gICAgXFwyNTNcXDI1NVxcMTU3XFwwMDNcXDA5NVxcMDAzXFwxNzRcXDAwM1xcMTk2XFwwMDNcXDIwNlxcMDAzXFwyMTZcXDAwM1xcMjI4XFwwMDNcXFxuICAgIFxcMjM5XFwwMDNcXDA2MFxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTJcXDAwNFxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDA4N1xcMDA0XFwyNTVcXDI1NVxcMTQ1XFwwMDRcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjIxXFwwMDRcXDI1NVxcMjU1XFwyMjlcXDAwMFxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMzFcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDAyXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAxOFxcMDAxXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDM0XFwwMDFcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMzhcXDAwMVxcXG4gICAgXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTIwXFwwMDFcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMDhcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjExXFwwMDBcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTg5XFwwMDBcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDEzXFwwMDFcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA5NVxcMDAxXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNTBcXDAwMVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDI2XFwwMDFcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjMzXFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIyMlxcMDAwXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA3OVxcMDA1XFwyMzdcXDI1NVxcMjM4XFwyNTVcXDAxMFxcMDAwXFwyNDBcXDI1NVxcMDQ0XFwwMDFcXFxuICAgIFxcMjQzXFwyNTVcXDI0NFxcMjU1XFwyNDVcXDI1NVxcMjQ2XFwyNTVcXDA2MVxcMDAxXFwwMDJcXDAwNFxcMjQ5XFwyNTVcXDA0NVxcMDA1XFxcbiAgICBcXDIwOVxcMDAwXFwyMjhcXDAwMFxcMjExXFwwMDBcXDIzMlxcMDAwXFwyMjVcXDAwMFxcMjIzXFwwMDBcXDI0MFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyMzVcXDAwMFxcMjM0XFwwMDBcXDAwOFxcMDAxXFwyNTRcXDI1NVxcMDA0XFwwMDFcXDAyM1xcMDAxXFwyNTNcXDI1NVxcMDU0XFwwMDFcXFxuICAgIFxcMjUyXFwyNTVcXDAzMVxcMDAxXFwwMjlcXDAwMVxcMDMyXFwwMDFcXDAzOVxcMDAxXFwwNDlcXDAwMVxcMDQ1XFwwMDFcXDI1MVxcMjU1XFxcbiAgICBcXDA1N1xcMDAxXFwwODJcXDAwMVxcMDgwXFwwMDFcXDA3OFxcMDAxXFwwODRcXDAwMVxcMDc0XFwwMDFcXDA4NlxcMDAxXFwyNTBcXDI1NVxcXG4gICAgXFwxMTBcXDAwNVxcMDEyXFwwMDRcXDEyM1xcMDA1XFwxNTVcXDAwNVxcMTY1XFwwMDVcXDE3N1xcMDA1XFwxODdcXDAwNVxcMTk3XFwwMDVcXFxuICAgIFxcMjQxXFwyNTVcXDE5OVxcMDAxXFwwNzdcXDAwMlxcMjUzXFwyNTVcXDI1NVxcMjU1XFwxNTRcXDAwMlxcMjIyXFwwMDVcXDIwOVxcMDA1XFxcbiAgICBcXDE1NVxcMDAyXFwyMzlcXDAwNVxcMDUzXFwwMDZcXDA3NlxcMDA2XFwxMTRcXDAwNlxcMDE2XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE1MlxcMDA2XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDIyN1xcMDA2XFwyNTVcXDI1NVxcMDg1XFwwMDdcXFxuICAgIFxcMjQ0XFwyNTVcXDI0NVxcMjU1XFwwMTFcXDAwMFxcMjQ3XFwyNTVcXDA3NlxcMDAyXFwyNTBcXDI1NVxcMjUxXFwyNTVcXDI1MlxcMjU1XFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDMxXFwwMDJcXDI0M1xcMDA1XFwwNTFcXDAwN1xcMTAwXFwwMDFcXDExNVxcMDAxXFwxMDRcXDAwMVxcXG4gICAgXFwxMzNcXDAwMVxcMTE4XFwwMDFcXDE1NFxcMDAxXFwxNzFcXDAwMVxcMjU1XFwyNTVcXDE3M1xcMDAxXFwxNzZcXDAwMVxcMTkxXFwwMDFcXFxuICAgIFxcMTg1XFwwMDFcXDE4N1xcMDAxXFwyNTNcXDAwMVxcMjMwXFwwMDFcXDIzMFxcMDAxXFwyMzRcXDAwMVxcMjQ3XFwwMDFcXDIzN1xcMDAxXFxcbiAgICBcXDIzNFxcMDAxXFwwMDlcXDAwMlxcMDE5XFwwMDJcXDAxOVxcMDAyXFwwMTVcXDAwMlxcMDIxXFwwMDJcXDAxMVxcMDAyXFwwMDdcXDAwMlxcXG4gICAgXFwxNDJcXDAwNlxcMTUyXFwwMDZcXDExNlxcMDA3XFwxNzBcXDAwN1xcMTgwXFwwMDdcXDE5MFxcMDA3XFwyMDBcXDAwN1xcMjEwXFwwMDdcXFxuICAgIFxcMjQ4XFwyNTVcXDEyMFxcMDAyXFwxNjdcXDAwMlxcMjUzXFwyNTVcXDI1NVxcMjU1XFwyMTZcXDAwMlxcMDgyXFwwMDdcXDIyMFxcMDA3XFxcbiAgICBcXDIzNlxcMDAyXFwyNDRcXDAwN1xcMDU4XFwwMDhcXDA4MVxcMDA4XFwxMTlcXDAwOFxcMDc2XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE1N1xcMDA4XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDIzMlxcMDA4XFwyNTVcXDI1NVxcMTM1XFwwMDJcXFxuICAgIFxcMTIwXFwwMDJcXDI1M1xcMjU1XFwxMDBcXDAwMlxcMjU0XFwyNTVcXDE4MlxcMDAyXFwyNTVcXDI1NVxcMDExXFwwMDJcXDI1NVxcMjU1XFxcbiAgICBcXDIwNFxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDQ2XFwwMDJcXDI1NVxcMjU1XFwxNzhcXDAwMlxcXG4gICAgXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDIzXFwwMDBcXDI1NVxcMjU1XFwxODNcXDAwMlxcMjUyXFwyNTVcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTg3XFwwMDJcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDEyMVxcMDAyXFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE4NFxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwMTlcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMTQwXFwwMDFcXDE0NlxcMDAxXFwyNTVcXDI1NVxcMTUwXFwwMDFcXDE1MVxcMDAxXFwxNTRcXDAwMVxcMTY4XFwwMDFcXFxuICAgIFxcMTcwXFwwMDFcXDE3MVxcMDAxXFwxNzJcXDAwMVxcMTczXFwwMDFcXDE4MVxcMDAxXFwxODRcXDAwMVxcMTg1XFwwMDFcXDE4N1xcMDAxXFxcbiAgICBcXDE5MVxcMDAxXFwxOTNcXDAwMVxcMTk1XFwwMDFcXDE5NlxcMDAxXFwxOTdcXDAwMVxcMjAwXFwwMDFcXDIwM1xcMDAxXFwyMjNcXDAwMVxcXG4gICAgXFwyMjVcXDAwMVxcMjI4XFwwMDFcXDI0OVxcMDAxXFwyNTFcXDAwMVxcMDAyXFwwMDJcXDAwNFxcMDAyXFwwMTFcXDAwMlxcMDEyXFwwMDJcXFxuICAgIFxcMDEzXFwwMDJcXDAwMFxcMDAwXCI7XG4gIExleGluZy5sZXhfYmFja3RyayA9XG4gICBcIlxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDE3XFwwMDBcXDI1NVxcMjU1XFwwMTlcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA3XFwwMDBcXDAwN1xcMDAwXFwyNTVcXDI1NVxcMDE5XFwwMDBcXDAxOVxcMDAwXFwwMTlcXDAwMFxcXG4gICAgXFwwMTlcXDAwMFxcMDE5XFwwMDBcXDAxOVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOFxcMDAwXFwwMDhcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMTRcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA3XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMDAxXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMDA0XFwwMDBcXDAwM1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwNFxcMDAwXFwwMDRcXDAwMFxcMDA0XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAyXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAyXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFwwMDNcXDAwMFxcMDA1XFwwMDBcXDAwNVxcMDAwXFwwMDVcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDE2XFwwMDBcXDI1NVxcMjU1XFwwMThcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA3XFwwMDBcXDAwN1xcMDAwXFwyNTVcXDI1NVxcMDE4XFwwMDBcXFxuICAgIFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA4XFwwMDBcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMjU1XFwyNTVcXDAwOFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDEzXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwwMDFcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcMDExXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDA2XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwwMDFcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwwMDRcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcIjtcbiAgTGV4aW5nLmxleF9kZWZhdWx0ID1cbiAgIFwiXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDA1N1xcMDAwXFwwNjBcXDAwMFxcMDAwXFwwMDBcXDA2MFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2NVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwNjVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwODRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDA5NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA5N1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDk3XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMDRcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTA5XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDExM1xcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDExN1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjFcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyNlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMTM4XFwwMDBcXDAwMFxcMDAwXFwxNDJcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMTU0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMTc4XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwxODdcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxOTRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyMzVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjM5XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI0NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjQ5XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjUzXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwOFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDE3XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAyMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAzMlxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDM4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDA0M1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNDdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDUyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA1NlxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjRcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwxMjFcXDAwMVxcMTI1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMjhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzNVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDE0NFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwxOTNcXDAwMVxcMTk3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyMDBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwN1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyMjBcXDAwMVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyMjZcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjMzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjQwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwMlxcMDAyXFwwMDRcXDAwMlxcMDAwXFwwMDBcXDAwNVxcMDAyXFwwMDZcXDAwMlxcMDA3XFwwMDJcXDAwOFxcMDAyXFxcbiAgICBcXDAwOVxcMDAyXFwwMTBcXDAwMlxcMDExXFwwMDJcXDAxMlxcMDAyXFwwMTNcXDAwMlxcMDE0XFwwMDJcXDAxNVxcMDAyXFwwMTZcXDAwMlxcXG4gICAgXFwwMTdcXDAwMlxcMDE4XFwwMDJcXDAxOVxcMDAyXFwwMjBcXDAwMlxcMDIxXFwwMDJcXDAyMlxcMDAyXFwwMjNcXDAwMlxcMDI0XFwwMDJcXFxuICAgIFxcMDI1XFwwMDJcXDAyNlxcMDAyXFwwMjdcXDAwMlxcMDI4XFwwMDJcXDAyOVxcMDAyXFwwMzBcXDAwMlxcMDMxXFwwMDJcXDAzMlxcMDAyXFxcbiAgICBcXDAzM1xcMDAyXFwwMDNcXDAwMlwiO1xuICBMZXhpbmcubGV4X3RyYW5zID1cbiAgIFwiXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwM1xcMDAwXFwwMDRcXDAwMFxcMDAwXFwwMDBcXDAwM1xcMDAwXFwwMDNcXDAwMFxcMTM0XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMTM0XFwwMDBcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwNjlcXDAwMVxcXG4gICAgXFwxNDZcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyN1xcMDAwXFwxMzlcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDAwMFxcMDAwXFwwMTJcXDAwMFxcMDAzXFwwMDBcXDE3MFxcMDAwXFwxMzRcXDAwMFxcMTc1XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwN1xcMDAwXFwwMTFcXDAwMVxcMDY5XFwwMDFcXDE0NlxcMDAxXFwwMTRcXDAwMVxcMDEzXFwwMDBcXDA0OVxcMDAwXFwwMDVcXDAwMFxcXG4gICAgXFwwMTBcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwNTZcXDAwMFxcMTE4XFwwMDBcXDAwNlxcMDAwXFwxMjlcXDAwMFxcMTMwXFwwMDBcXDA1N1xcMDAwXFxcbiAgICBcXDIzN1xcMDAxXFwxMzdcXDAwMFxcMDAwXFwwMDJcXDA0OVxcMDAwXFwwMDBcXDAwMFxcMDQ4XFwwMDBcXDEzOFxcMDAwXFwxMDZcXDAwMFxcXG4gICAgXFwwNjJcXDAwMFxcMDE0XFwwMDBcXDExMFxcMDAwXFwxMDVcXDAwMFxcMDAwXFwwMDBcXDA0OVxcMDAwXFwwMTVcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMzBcXDAwMFxcMDQ4XFwwMDBcXDAwOFxcMDAwXFwxMTRcXDAwMFxcMjA5XFwwMDBcXDIzNlxcMDAwXFwwMDBcXDAwMVxcXG4gICAgXFwwMTNcXDAwMVxcMDI5XFwwMDBcXDAyMlxcMDAwXFwyNTVcXDI1NVxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwMTdcXDAwMFxcMDIxXFwwMDBcXFxuICAgIFxcMDI1XFwwMDBcXDAzMlxcMDAwXFwwMzNcXDAwMFxcMDM1XFwwMDBcXDAyM1xcMDAwXFwwMjdcXDAwMFxcMDE2XFwwMDBcXDAzMVxcMDAwXFxcbiAgICBcXDAyOFxcMDAwXFwwMzRcXDAwMFxcMDE5XFwwMDBcXDAyNFxcMDAwXFwwMThcXDAwMFxcMDI2XFwwMDBcXDAyMFxcMDAwXFwwMzZcXDAwMFxcXG4gICAgXFwwNDFcXDAwMFxcMDM3XFwwMDBcXDA0OFxcMDAwXFwwMDlcXDAwMFxcMDQyXFwwMDBcXDA0M1xcMDAwXFwwNDRcXDAwMFxcMDQ1XFwwMDBcXFxuICAgIFxcMDQ2XFwwMDBcXDA0N1xcMDAwXFwwNjFcXDAwMFxcMDg1XFwwMDBcXDA0OFxcMDAwXFwwMzhcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwNDlcXDAwMFxcXG4gICAgXFwwNjdcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDg2XFwwMDBcXDE0M1xcMDAwXFwyNTVcXDI1NVxcMDQwXFwwMDBcXDE0NFxcMDAwXFxcbiAgICBcXDE0NVxcMDAwXFwxNDZcXDAwMFxcMDU1XFwwMDBcXDE0OFxcMDAwXFwwNTVcXDAwMFxcMTQ5XFwwMDBcXDA0OFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDI1NVxcMjU1XFwwNDhcXDAwMFxcMTUwXFwwMDBcXFxuICAgIFxcMTUxXFwwMDBcXDE2MVxcMDAwXFwwNjZcXDAwMFxcMTU4XFwwMDBcXDA1M1xcMDAwXFwxNTlcXDAwMFxcMDUzXFwwMDBcXDE2MFxcMDAwXFxcbiAgICBcXDA1MVxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwxNjVcXDAwMFxcXG4gICAgXFwwNTFcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMTYyXFwwMDBcXDE2M1xcMDAwXFwxNjZcXDAwMFxcMDkzXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMlxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwyNTVcXDI1NVxcMDc3XFwwMDBcXDEwM1xcMDAwXFwxMDhcXDAwMFxcMTE2XFwwMDBcXFxuICAgIFxcMTMyXFwwMDBcXDEzNFxcMDAwXFwxMzVcXDAwMFxcMTI4XFwwMDBcXDEzOVxcMDAwXFwxMzRcXDAwMFxcMTY0XFwwMDBcXDA5M1xcMDAwXFxcbiAgICBcXDE3MVxcMDAwXFwwNzdcXDAwMFxcMTY3XFwwMDBcXDE2OFxcMDAwXFwxNjlcXDAwMFxcMTcyXFwwMDBcXDExMlxcMDAwXFwxNzNcXDAwMFxcXG4gICAgXFwxNzRcXDAwMFxcMjEwXFwwMDBcXDIyNlxcMDAwXFwyMDhcXDAwMFxcMjExXFwwMDBcXDIxMlxcMDAwXFwwNTlcXDAwMFxcMDgzXFwwMDBcXFxuICAgIFxcMTM0XFwwMDBcXDIxM1xcMDAwXFwyMTRcXDAwMFxcMjE1XFwwMDBcXDIxNlxcMDAwXFwyMThcXDAwMFxcMTQxXFwwMDBcXDIxOVxcMDAwXFxcbiAgICBcXDA5M1xcMDAwXFwyMjBcXDAwMFxcMjIxXFwwMDBcXDEyM1xcMDAwXFwyMjJcXDAwMFxcMjIzXFwwMDBcXDIyNFxcMDAwXFwxMzZcXDAwMFxcXG4gICAgXFwwOTVcXDAwMFxcMjI1XFwwMDBcXDAzNVxcMDAxXFwwNjVcXDAwMVxcMjM0XFwwMDBcXDE1NVxcMDAwXFwwMDVcXDAwMVxcMDk3XFwwMDFcXFxuICAgIFxcMjUwXFwwMDBcXDI1NVxcMjU1XFwyNTRcXDAwMFxcMDU3XFwwMDFcXDA2MVxcMDAxXFwwOTVcXDAwMVxcMDc3XFwwMDBcXDA0NFxcMDAxXFxcbiAgICBcXDA5MlxcMDAxXFwwODhcXDAwMVxcMDA5XFwwMDFcXDAyOVxcMDAxXFwwNzZcXDAwMFxcMTI0XFwwMDBcXDAzM1xcMDAxXFwwMThcXDAwMVxcXG4gICAgXFwwNzVcXDAwMFxcMDk4XFwwMDBcXDAxOVxcMDAxXFwwODVcXDAwMVxcMDg2XFwwMDFcXDA4N1xcMDAxXFwxMjBcXDAwMVxcMDg5XFwwMDFcXFxuICAgIFxcMDc0XFwwMDBcXDIyNVxcMDAwXFwwNTNcXDAwMVxcMTIxXFwwMDFcXDA3M1xcMDAwXFwwOTBcXDAwMVxcMDcyXFwwMDBcXDA3MVxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA5OFxcMDAwXFwxMTNcXDAwMVxcMTIyXFwwMDBcXDA5MVxcMDAxXFwwNjRcXDAwMFxcMDA0XFwwMDFcXFxuICAgIFxcMDkzXFwwMDFcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMTU2XFwwMDBcXDExMlxcMDAxXFwwOTRcXDAwMVxcMDk2XFwwMDFcXDA5OFxcMDAxXFwwOTlcXDAwMVxcMDQ5XFwwMDFcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMTAwXFwwMDFcXDE1N1xcMDAwXFxcbiAgICBcXDEwMVxcMDAxXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwxODNcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDAyNFxcMDAxXFwxMTJcXDAwMVxcMjU1XFwyNTVcXDAyNVxcMDAxXFwxMDJcXDAwMVxcMTAzXFwwMDFcXDEwNVxcMDAxXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMTA2XFwwMDFcXDEwN1xcMDAxXFwwNDhcXDAwMVxcMDQwXFwwMDFcXDEwOFxcMDAxXFwxMDlcXDAwMVxcMTEwXFwwMDFcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcXG4gICAgXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMTExXFwwMDFcXFxuICAgIFxcMDI3XFwwMDFcXDI1NVxcMjU1XFwxNzFcXDAwMVxcMDMxXFwwMDFcXDE3MFxcMDAxXFwwMjNcXDAwMVxcMDgxXFwwMDBcXDA4MVxcMDAwXFxcbiAgICBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwOTJcXDAwMFxcMTY4XFwwMDFcXDA2M1xcMDAxXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDI0OFxcMDAwXFwxNjVcXDAwMVxcMjUyXFwwMDBcXFxuICAgIFxcMTYyXFwwMDFcXDA1OVxcMDAxXFwwNjlcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMjU1XFwyNTVcXDA4MVxcMDAwXFwwODFcXDAwMFxcXG4gICAgXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwMzlcXDAwMVxcMDQyXFwwMDFcXDI1NVxcMjU1XFwxNjNcXDAwMVxcXG4gICAgXFwxNjRcXDAwMVxcMTIwXFwwMDBcXDAwMlxcMDAxXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDE2NlxcMDAxXFwwNTVcXDAwMVxcMTUzXFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDA3XFwwMDFcXDE2N1xcMDAxXFwxNjRcXDAwMVxcMTY5XFwwMDFcXDAxNlxcMDAxXFwxNjRcXDAwMVxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwNTFcXDAwMVxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwOTBcXDAwMFxcXG4gICAgXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXFxuICAgIFxcMDkwXFwwMDBcXDA5N1xcMDAwXFwxMzdcXDAwMVxcMTY0XFwwMDFcXDE3MlxcMDAxXFwxODVcXDAwMVxcMTM2XFwwMDFcXDE3M1xcMDAxXFxcbiAgICBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5N1xcMDAwXFwxNzlcXDAwMFxcXG4gICAgXFwxNzRcXDAwMVxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDQ2XFwwMDFcXFxuICAgIFxcMTc1XFwwMDFcXDE3NlxcMDAxXFwxODBcXDAwMFxcMTY0XFwwMDFcXDE4NFxcMDAxXFwxODFcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxMjRcXDAwMVxcXG4gICAgXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwxOTJcXDAwMVxcMTc4XFwwMDFcXFxuICAgIFxcMDIxXFwwMDFcXDE3OVxcMDAxXFwwOTdcXDAwMFxcMTkzXFwwMDFcXDE4MFxcMDAxXFwxODFcXDAwMVxcMTgyXFwwMDFcXDE4M1xcMDAxXFxcbiAgICBcXDE2NFxcMDAxXFwyMTZcXDAwMVxcMjU1XFwyNTVcXDA5N1xcMDAwXFwxODRcXDAwMVxcMjE2XFwwMDFcXDIwOVxcMDAxXFwwOTdcXDAwMFxcXG4gICAgXFwyMjNcXDAwMVxcMDk3XFwwMDBcXDIwOFxcMDAxXFwyMzBcXDAwMVxcMDAzXFwwMDJcXDA5N1xcMDAwXFwyMTlcXDAwMVxcMDM3XFwwMDFcXFxuICAgIFxcMjE2XFwwMDFcXDIxN1xcMDAxXFwwMDNcXDAwMlxcMjIwXFwwMDFcXDIxNlxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDAwM1xcMDAyXFxcbiAgICBcXDIxNlxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDA5N1xcMDAwXFwwOTZcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMjE2XFwwMDFcXFxuICAgIFxcMDAzXFwwMDJcXDEyNlxcMDAxXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDIxOFxcMDAxXFwyNTBcXDAwMVxcXG4gICAgXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMTI0XFwwMDFcXDEyNFxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXFxuICAgIFxcMjIxXFwwMDFcXDAwM1xcMDAyXFwyNTNcXDAwMVxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwM1xcMDAyXFwxOTZcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMDk2XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMjM1XFwwMDFcXDAwM1xcMDAyXFxcbiAgICBcXDI0MVxcMDAxXFwwMDNcXDAwMlxcMjU1XFwwMDFcXDI0MlxcMDAxXFwwMDNcXDAwMlxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwyNDZcXDAwMVxcMTI5XFwwMDFcXDEyOVxcMDAxXFxcbiAgICBcXDIyOFxcMDAxXFwwMDNcXDAwMlxcMTk2XFwwMDFcXDAwM1xcMDAyXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDAwM1xcMDAyXFwxOThcXDAwMVxcMDAzXFwwMDJcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMTk2XFwwMDFcXDIzNFxcMDAxXFxcbiAgICBcXDEzNFxcMDAxXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwMDBcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAxXFwwMDFcXDE3N1xcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4OFxcMDAwXFwwMDBcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwyMDFcXDAwMVxcMjI3XFwwMDFcXDAwMFxcMDAwXFwxOTFcXDAwMFxcMjA2XFwwMDFcXDEyM1xcMDAxXFwxODlcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE4OVxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5NVxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOThcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjQ4XFwwMDFcXDE5NlxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5NlxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDIwMlxcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIwNVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwM1xcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIyNlxcMDAwXFwxOTVcXDAwMVxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDZcXDAwMFxcMjIxXFwwMDFcXDIzOVxcMDAxXFxcbiAgICBcXDI1NFxcMDAxXFwwMDBcXDAwMFxcMjA3XFwwMDBcXDI0NFxcMDAxXFwwMDBcXDAwMFxcMjI1XFwwMDBcXDIwM1xcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjMyXFwwMDBcXDAwMFxcMDAwXFwyMzJcXDAwMFxcMDAwXFwwMDBcXDIyNVxcMDAxXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMTdcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIyNVxcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMzBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjMwXFwwMDBcXDAwMFxcMDAwXFwyMjhcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwwMDBcXDAwMFxcMjI4XFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDE4NlxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQxXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDExM1xcMDAxXFwwMDBcXDAwMFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXFxuICAgIFxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMDAwXFwwMDBcXDExMlxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTkzXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwxMTJcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDBcXDAwMFxcMjAwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDAwMFxcMDAwXFwyNDZcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyMzhcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwwNjlcXDAwMVxcMDcwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY5XFwwMDFcXDA3NlxcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDc4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMDRcXDAwMVxcMDczXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3OVxcMDAxXFwwMDBcXDAwMFxcMDcxXFwwMDFcXDA3NlxcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDI0M1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDA4MFxcMDAxXFwxMTlcXDAwMVxcMDAwXFwwMDBcXDExOVxcMDAxXFwwMDBcXDAwMFxcMDgxXFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFxcbiAgICBcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMDgzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA4MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTE1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDg0XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTE3XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDExN1xcMDAxXFwwMDBcXDAwMFxcMDc1XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDExNVxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxMjhcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDE4NVxcMDAxXFwwMDBcXDAwMFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTg0XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI3XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDE4NFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI3XFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxOTFcXDAwMVxcMTQyXFwwMDFcXDE5MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQxXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQ2XFwwMDFcXDE0N1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQ2XFwwMDFcXDE1NFxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwxNDZcXDAwMVxcMDAwXFwwMDBcXDE1M1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNzdcXDAwMVxcMTUwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDE1NlxcMDAxXFwwMDBcXDAwMFxcMTQ4XFwwMDFcXDE1NFxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxNDlcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMzlcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNTdcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTU4XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxNTFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDE4N1xcMDAxXFwwMDBcXDAwMFxcMTYwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE1OVxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDIwMFxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMTYxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTUyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxODlcXDAwMVxcMDAwXFwwMDBcXDE4OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwxODdcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQ1XFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwxOTlcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXFxuICAgIFxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFxcbiAgICBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMjE0XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXCI7XG4gIExleGluZy5sZXhfY2hlY2sgPVxuICAgXCJcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDAwMFxcMDAwXFwxMzRcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAzXFwwMDBcXDI1NVxcMjU1XFwxMzRcXDAwMFxcMDY5XFwwMDFcXDE0NlxcMDAxXFwwNTdcXDAwMFxcMjU1XFwyNTVcXDA2OVxcMDAxXFxcbiAgICBcXDE0NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI1XFwwMDBcXDEzOFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDNcXDAwMFxcMTY5XFwwMDBcXDEzNFxcMDAwXFwxNzRcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAxMFxcMDAxXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDAxMlxcMDAxXFwwMDBcXDAwMFxcMDEwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwNVxcMDAwXFwxMTVcXDAwMFxcMDAwXFwwMDBcXDEyNVxcMDAwXFwxMjlcXDAwMFxcMDA1XFwwMDBcXFxuICAgIFxcMjM2XFwwMDFcXDEzNlxcMDAwXFwyNTVcXDAwMVxcMDM4XFwwMDBcXDI1NVxcMjU1XFwwMTBcXDAwMFxcMTM2XFwwMDBcXDEwMlxcMDAwXFxcbiAgICBcXDA1OFxcMDAwXFwwMDBcXDAwMFxcMTA3XFwwMDBcXDEwMlxcMDAwXFwyNTVcXDI1NVxcMDExXFwwMDBcXDAwMFxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAyOVxcMDAwXFwwMzhcXDAwMFxcMDAwXFwwMDBcXDExMVxcMDAwXFwyMDhcXDAwMFxcMjMzXFwwMDBcXDI1NVxcMDAwXFxcbiAgICBcXDAxMlxcMDAxXFwwMTVcXDAwMFxcMDE3XFwwMDBcXDA2MFxcMDAwXFwwMTFcXDAwMFxcMDEwXFwwMDBcXDAwMFxcMDAwXFwwMjBcXDAwMFxcXG4gICAgXFwwMjRcXDAwMFxcMDMxXFwwMDBcXDAzMlxcMDAwXFwwMzRcXDAwMFxcMDIyXFwwMDBcXDAyNlxcMDAwXFwwMDBcXDAwMFxcMDE0XFwwMDBcXFxuICAgIFxcMDI3XFwwMDBcXDAzM1xcMDAwXFwwMThcXDAwMFxcMDIzXFwwMDBcXDAwMFxcMDAwXFwwMTZcXDAwMFxcMDE5XFwwMDBcXDAzNVxcMDAwXFxcbiAgICBcXDA0MFxcMDAwXFwwMzZcXDAwMFxcMDM4XFwwMDBcXDAwMFxcMDAwXFwwNDFcXDAwMFxcMDQyXFwwMDBcXDA0M1xcMDAwXFwwNDRcXDAwMFxcXG4gICAgXFwwNDVcXDAwMFxcMDQ2XFwwMDBcXDA1OFxcMDAwXFwwODJcXDAwMFxcMDExXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXFxuICAgIFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDA2M1xcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwODVcXDAwMFxcMTQwXFwwMDBcXDA2MFxcMDAwXFwwMTNcXDAwMFxcMTQzXFwwMDBcXFxuICAgIFxcMTQ0XFwwMDBcXDE0NVxcMDAwXFwwNDhcXDAwMFxcMTQ3XFwwMDBcXDA0OFxcMDAwXFwxNDhcXDAwMFxcMDM5XFwwMDBcXDA0OFxcMDAwXFxcbiAgICBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcXG4gICAgXFwwNDhcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXFxuICAgIFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDY1XFwwMDBcXDAzOVxcMDAwXFwxNDlcXDAwMFxcXG4gICAgXFwxNTBcXDAwMFxcMTU2XFwwMDBcXDA2M1xcMDAwXFwxNTdcXDAwMFxcMDUxXFwwMDBcXDE1OFxcMDAwXFwwNTFcXDAwMFxcMTU5XFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFxcbiAgICBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXFxuICAgIFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDE1NVxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwxNjFcXDAwMFxcMTYyXFwwMDBcXDE1NVxcMDAwXFwwOTFcXDAwMFxcMDY1XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFxcbiAgICBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1N1xcMDAwXFwwNjhcXDAwMFxcMTAyXFwwMDBcXDEwN1xcMDAwXFwxMTVcXDAwMFxcXG4gICAgXFwxMzFcXDAwMFxcMTMzXFwwMDBcXDEzM1xcMDAwXFwxMjVcXDAwMFxcMTM4XFwwMDBcXDEzM1xcMDAwXFwxNjNcXDAwMFxcMDk0XFwwMDBcXFxuICAgIFxcMTY1XFwwMDBcXDA2OFxcMDAwXFwxNjZcXDAwMFxcMTY3XFwwMDBcXDE2OFxcMDAwXFwxNzFcXDAwMFxcMTExXFwwMDBcXDE3MlxcMDAwXFxcbiAgICBcXDE3M1xcMDAwXFwyMDZcXDAwMFxcMjAzXFwwMDBcXDIwN1xcMDAwXFwyMTBcXDAwMFxcMjExXFwwMDBcXDA1OFxcMDAwXFwwODJcXDAwMFxcXG4gICAgXFwxMzNcXDAwMFxcMjEyXFwwMDBcXDIxM1xcMDAwXFwyMTRcXDAwMFxcMjE1XFwwMDBcXDIxN1xcMDAwXFwxNDBcXDAwMFxcMjE4XFwwMDBcXFxuICAgIFxcMDk3XFwwMDBcXDIxOVxcMDAwXFwyMjBcXDAwMFxcMTE5XFwwMDBcXDIyMVxcMDAwXFwyMjJcXDAwMFxcMjIzXFwwMDBcXDEzM1xcMDAwXFxcbiAgICBcXDA5MVxcMDAwXFwyMDNcXDAwMFxcMDM0XFwwMDFcXDA2MlxcMDAxXFwyMzNcXDAwMFxcMTUyXFwwMDBcXDAwMVxcMDAxXFwwODBcXDAwMVxcXG4gICAgXFwyNDdcXDAwMFxcMDYwXFwwMDBcXDI1MVxcMDAwXFwwNTRcXDAwMVxcMDU4XFwwMDFcXDA4MVxcMDAxXFwwNjhcXDAwMFxcMDQxXFwwMDFcXFxuICAgIFxcMDgyXFwwMDFcXDA4M1xcMDAxXFwwMDZcXDAwMVxcMDI2XFwwMDFcXDA2OFxcMDAwXFwxMTlcXDAwMFxcMDMwXFwwMDFcXDAxNVxcMDAxXFxcbiAgICBcXDA2OFxcMDAwXFwwOTRcXDAwMFxcMDE1XFwwMDFcXDA4NFxcMDAxXFwwODVcXDAwMVxcMDg2XFwwMDFcXDA3MVxcMDAxXFwwODhcXDAwMVxcXG4gICAgXFwwNjhcXDAwMFxcMjAzXFwwMDBcXDA1MFxcMDAxXFwwNzFcXDAwMVxcMDY4XFwwMDBcXDA4OVxcMDAxXFwwNjhcXDAwMFxcMDY4XFwwMDBcXFxuICAgIFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFxcbiAgICBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDk3XFwwMDBcXDA3NlxcMDAxXFwxMTlcXDAwMFxcMDkwXFwwMDFcXDA2M1xcMDAwXFwwMDFcXDAwMVxcXG4gICAgXFwwOTJcXDAwMVxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDc4XFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwxNTJcXDAwMFxcMDc2XFwwMDFcXDA5M1xcMDAxXFwwOTVcXDAwMVxcMDk3XFwwMDFcXDA5OFxcMDAxXFwwNDVcXDAwMVxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwOTlcXDAwMVxcMTUyXFwwMDBcXFxuICAgIFxcMTAwXFwwMDFcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDE4MFxcMDAwXFxcbiAgICBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcXG4gICAgXFwxODBcXDAwMFxcMDIwXFwwMDFcXDA3NlxcMDAxXFwwNjVcXDAwMFxcMDIwXFwwMDFcXDEwMVxcMDAxXFwxMDJcXDAwMVxcMTA0XFwwMDFcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwxMDVcXDAwMVxcMTA2XFwwMDFcXDA0NVxcMDAxXFwwMzZcXDAwMVxcMTA3XFwwMDFcXDEwOFxcMDAxXFwxMDlcXDAwMVxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwxMTBcXDAwMVxcXG4gICAgXFwwMjZcXDAwMVxcMTIxXFwwMDFcXDE1N1xcMDAxXFwwMzBcXDAwMVxcMTU4XFwwMDFcXDAyMFxcMDAxXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA5MVxcMDAwXFwxNTlcXDAwMVxcMDYyXFwwMDFcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMjQ3XFwwMDBcXDE2MFxcMDAxXFwyNTFcXDAwMFxcXG4gICAgXFwxNjFcXDAwMVxcMDU4XFwwMDFcXDA2OFxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXFxuICAgIFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwOTRcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcXG4gICAgXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDAzNlxcMDAxXFwwNDFcXDAwMVxcMDk3XFwwMDBcXDE2MlxcMDAxXFxcbiAgICBcXDE2M1xcMDAxXFwxMTlcXDAwMFxcMDAxXFwwMDFcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMTY1XFwwMDFcXDA1NFxcMDAxXFwxNTJcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXFxuICAgIFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwMDZcXDAwMVxcMTY2XFwwMDFcXDE2N1xcMDAxXFwxNjhcXDAwMVxcMDE1XFwwMDFcXDE2OVxcMDAxXFxcbiAgICBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA1MFxcMDAxXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OVxcMDAwXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcXG4gICAgXFwwODlcXDAwMFxcMDk1XFwwMDBcXDEzM1xcMDAxXFwxNzBcXDAwMVxcMTcxXFwwMDFcXDE1NFxcMDAxXFwxMzNcXDAwMVxcMTcyXFwwMDFcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDk1XFwwMDBcXDE3NlxcMDAwXFxcbiAgICBcXDE3M1xcMDAxXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwNDVcXDAwMVxcXG4gICAgXFwxNzRcXDAwMVxcMTc1XFwwMDFcXDE3NlxcMDAwXFwxNzZcXDAwMVxcMTU0XFwwMDFcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXFxuICAgIFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDEyMlxcMDAxXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDE0OFxcMDAxXFwxNzdcXDAwMVxcXG4gICAgXFwwMjBcXDAwMVxcMTc4XFwwMDFcXDA5OFxcMDAwXFwxNDhcXDAwMVxcMTc5XFwwMDFcXDE4MFxcMDAxXFwxODFcXDAwMVxcMTgyXFwwMDFcXFxuICAgIFxcMTgzXFwwMDFcXDIxNlxcMDAxXFwxOTNcXDAwMVxcMDk1XFwwMDBcXDE1NFxcMDAxXFwyMTZcXDAwMVxcMjA1XFwwMDFcXDA5OFxcMDAwXFxcbiAgICBcXDIyMlxcMDAxXFwwOTVcXDAwMFxcMjA1XFwwMDFcXDIyOVxcMDAxXFwwMDFcXDAwMlxcMDk1XFwwMDBcXDIxOFxcMDAxXFwwMzZcXDAwMVxcXG4gICAgXFwyMTVcXDAwMVxcMjE1XFwwMDFcXDAwMlxcMDAyXFwyMThcXDAwMVxcMjE1XFwwMDFcXDA5NVxcMDAwXFwwMDRcXDAwMlxcMDA1XFwwMDJcXFxuICAgIFxcMjE2XFwwMDFcXDA5NVxcMDAwXFwwMDZcXDAwMlxcMDk1XFwwMDBcXDA5NVxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFxcbiAgICBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwyMTVcXDAwMVxcXG4gICAgXFwwMDdcXDAwMlxcMTIyXFwwMDFcXDAwOFxcMDAyXFwwMDlcXDAwMlxcMDEwXFwwMDJcXDAxMVxcMDAyXFwwOTZcXDAwMFxcMDk2XFwwMDBcXFxuICAgIFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5OFxcMDAwXFwwMTJcXDAwMlxcMjE1XFwwMDFcXDI0N1xcMDAxXFxcbiAgICBcXDAxM1xcMDAyXFwwMTRcXDAwMlxcMDk4XFwwMDBcXDAxNVxcMDAyXFwxMjVcXDAwMVxcMTI4XFwwMDFcXDA5OFxcMDAwXFwwMTZcXDAwMlxcXG4gICAgXFwyMjBcXDAwMVxcMDE3XFwwMDJcXDI1MVxcMDAxXFwwMThcXDAwMlxcMDE5XFwwMDJcXDAyMFxcMDAyXFwwOThcXDAwMFxcMTIxXFwwMDFcXFxuICAgIFxcMDIxXFwwMDJcXDE5NFxcMDAxXFwwOThcXDAwMFxcMDIyXFwwMDJcXDA5OFxcMDAwXFwwOThcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFxcbiAgICBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwyMzFcXDAwMVxcMDIzXFwwMDJcXFxuICAgIFxcMjM4XFwwMDFcXDAyNFxcMDAyXFwyNTFcXDAwMVxcMjM4XFwwMDFcXDAyNVxcMDAyXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDI0M1xcMDAxXFwxMjVcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMjI0XFwwMDFcXDAyNlxcMDAyXFwxOTdcXDAwMVxcMDI3XFwwMDJcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMDI4XFwwMDJcXDE5NFxcMDAxXFwwMjlcXDAwMlxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwMzBcXDAwMlxcMDMxXFwwMDJcXDAzMlxcMDAyXFwyMDBcXDAwMVxcMjMxXFwwMDFcXFxuICAgIFxcMTMzXFwwMDFcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDI1NVxcMjU1XFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTdcXDAwMVxcMTc2XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg1XFwwMDBcXDI1NVxcMjU1XFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwyMjRcXDAwMVxcMjU1XFwyNTVcXDE4NVxcMDAwXFwyMDVcXDAwMVxcMTIyXFwwMDFcXDE4NVxcMDAwXFwxODVcXDAwMFxcXG4gICAgXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcXG4gICAgXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkyXFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5MlxcMDAwXFxcbiAgICBcXDE5M1xcMDAxXFwyNDdcXDAwMVxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcXG4gICAgXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXFxuICAgIFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk5XFwwMDBcXDIyNlxcMDAwXFxcbiAgICBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcXG4gICAgXFwyMjZcXDAwMFxcMTk5XFwwMDBcXDEyNVxcMDAxXFwxMjhcXDAwMVxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXFxuICAgIFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMjA0XFwwMDBcXDE5NFxcMDAxXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIzMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OVxcMDAwXFwyMjBcXDAwMVxcMjM4XFwwMDFcXFxuICAgIFxcMjUxXFwwMDFcXDI1NVxcMjU1XFwxOTlcXDAwMFxcMjQzXFwwMDFcXDI1NVxcMjU1XFwyMDRcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFxcbiAgICBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcXG4gICAgXFwyMjVcXDAwMFxcMjU1XFwyNTVcXDIyNVxcMDAwXFwyNTVcXDI1NVxcMjI0XFwwMDFcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXFxuICAgIFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIwNVxcMDAwXFxcbiAgICBcXDE5N1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjA0XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIyOFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyMjhcXDAwMFxcMjU1XFwyNTVcXDIyN1xcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcXG4gICAgXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcXG4gICAgXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDI1NVxcMjU1XFwyMjdcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMTg1XFwwMDBcXDIzMlxcMDAwXFxcbiAgICBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcXG4gICAgXFwyMzJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMzdcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDc3XFwwMDFcXDI1NVxcMjU1XFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcXG4gICAgXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwyNTVcXDI1NVxcMDc3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDA3N1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIzN1xcMDAwXFwxOTlcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjU1XFwyNTVcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI0MFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDIzN1xcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI0NVxcMDAwXFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcXG4gICAgXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA3OVxcMDAxXFwwNjZcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMDY2XFwwMDFcXFxuICAgIFxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFxcbiAgICBcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDY2XFwwMDFcXDExMlxcMDAxXFwyNTVcXDI1NVxcMTEyXFwwMDFcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFxcbiAgICBcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXFxuICAgIFxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMTRcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMTVcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTE1XFwwMDFcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFxcbiAgICBcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTE0XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFxcbiAgICBcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXFxuICAgIFxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDEyNlxcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcXG4gICAgXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDEyOVxcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTU1XFwwMDFcXDI1NVxcMjU1XFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMjU1XFwyNTVcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcXG4gICAgXFwxMjZcXDAwMVxcMTI5XFwwMDFcXDEyNlxcMDAxXFwxMjZcXDAwMVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTU1XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwxMjlcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwyNTVcXDI1NVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDE4NFxcMDAxXFwxMzhcXDAwMVxcMTg0XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTg0XFwwMDFcXDE4NFxcMDAxXFxcbiAgICBcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcXG4gICAgXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXFxuICAgIFxcMTg1XFwwMDFcXDE4NVxcMDAxXFwyNTVcXDI1NVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzhcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0MVxcMDAxXFwyNTVcXDI1NVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFxcbiAgICBcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk4XFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMTQzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE1NlxcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxOThcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcXG4gICAgXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDEzOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTk4XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOThcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxOThcXDAwMVxcMTg2XFwwMDFcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTk4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE5OFxcMDAxXFwyNTVcXDI1NVxcMTk4XFwwMDFcXDE5OFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE4N1xcMDAxXFwyNTVcXDI1NVxcMTg3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDE4NlxcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFxcbiAgICBcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXFxuICAgIFxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXFxuICAgIFxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDIwMVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjAxXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjAxXFwwMDFcXDIwMVxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDI1NVxcMjU1XFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDI1NVxcMjU1XFwyMTBcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIxMFxcMDAxXFwyNTVcXDI1NVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIxM1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIxMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcIjtcbiAgTGV4aW5nLmxleF9iYXNlX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9iYWNrdHJrX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9kZWZhdWx0X2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF90cmFuc19jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfY2hlY2tfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2NvZGUgPVxuICAgXCJcIjtcbn1cblxubGV0IHJlYyByZWFkX2pzb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9qc29uX3JlYyB2IGxleGJ1ZiAwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxODggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxODggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYEJvb2wgdHJ1ZSApXG5cbiMgMTAzMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTAzMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTg5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTg5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGBCb29sIGZhbHNlIClcblxuIyAxMDM3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDM4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYE51bGwgKVxuXG4jIDEwNDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDE5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMTkzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0IG5hblxuICAgICAgICAgICAgICAgIFxuIyAxOTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDUzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDU0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyAxOTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxOTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdCBpbmZpbml0eVxuICAgICAgICAgICAgICAgIFxuIyAyMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDY1IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyAyMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAyMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdCBuZWdfaW5maW5pdHlcbiAgICAgICAgICAgICAgICBcbiMgMjExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgMjEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMjEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgIGBTdHJpbmcgKGZpbmlzaF9zdHJpbmcgdiBsZXhidWYpXG4gICAgICAgICAgICAgICAgXG4jIDIxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwODcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwODggXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDIyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDIyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBtYWtlX3Bvc2l0aXZlX2ludCB2IGxleGJ1ZiApXG5cbiMgMTA5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgMjIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMjIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIG1ha2VfbmVnYXRpdmVfaW50IHYgbGV4YnVmIClcblxuIyAxMDk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDk4IFwibGliL3JlYWQubWxcIlxuICB8IDkgLT5cblxuIyAyMjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAyMjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdCAoZmxvYXRfb2Zfc3RyaW5nIChsZXhlbWUgbGV4YnVmKSlcbiAgICAgICAgICAgICAgICAgXG4jIDIyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTA5IFwibGliL3JlYWQubWxcIlxuICB8IDEwIC0+XG5cbiMgMjMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDIzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfaWRlbnQgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSAoZmllbGRfbmFtZSwgcmVhZF9qc29uIHYgbGV4YnVmKSA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9pZGVudCB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gKGZpZWxkX25hbWUsIHJlYWRfanNvbiB2IGxleGJ1ZikgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgICAgIGBBc3NvYyAoTGlzdC5yZXYgIWFjYylcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExMzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExMzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTEgLT5cblxuIyAyNTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfanNvbiB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfanNvbiB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICBgTGlzdCAoTGlzdC5yZXYgIWFjYylcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExNTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExNTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTIgLT5cblxuIyAyNzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDI4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyAyODkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMTE3OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE3OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMyAtPlxuXG4jIDI5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgMjk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDMwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTkzIFwibGliL3JlYWQubWxcIlxuICB8IDE0IC0+XG5cbiMgMzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMTk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTk4IFwibGliL3JlYWQubWxcIlxuICB8IDE1IC0+XG5cbiMgMzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWY7IHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTIwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNiAtPlxuXG4jIDMwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTIwNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIwOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNyAtPlxuXG4jIDMwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTIxMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIxMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxOCAtPlxuXG4jIDMwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEyMTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTkgLT5cblxuIyAzMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmIClcblxuIyAxMjIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjIzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nX3JlYyB2IGxleGJ1ZiA1OFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDMxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggQnVmZmVyLmNvbnRlbnRzIHYuYnVmIClcblxuIyAxMjM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjM1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGZpbmlzaF9lc2NhcGVkX2NoYXIgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDEyNDAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNDEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDMxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDEyNDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDMxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTI1MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI1MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBtYXBfc3RyaW5nIHYgZiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfbWFwX3N0cmluZ19yZWMgdiBmIGxleGJ1ZiA2M1xuYW5kIF9fb2NhbWxfbGV4X21hcF9zdHJpbmdfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBsZXQgYiA9IHYuYnVmIGluXG4gICAgICAgICAgICAgICAgICAgIGYgKEJ1ZmZlci5jb250ZW50cyBiKSAwIChCdWZmZXIubGVuZ3RoIGIpIClcblxuIyAxMjY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjY1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGZpbmlzaF9lc2NhcGVkX2NoYXIgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiApXG5cbiMgMTI3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgbWFwX3N0cmluZyB2IGYgbGV4YnVmIClcblxuIyAxMjc2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjc3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzMjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEyODEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyODIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9tYXBfc3RyaW5nX3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfZXNjYXBlZF9jaGFyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9lc2NhcGVkX2NoYXJfcmVjIHYgbGV4YnVmIDY4XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2VzY2FwZWRfY2hhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5sZXRcblxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICBcbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgY1xuXG4jIDEyOTQgXCJsaWIvcmVhZC5tbFwiXG4jIDEyOTQgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyBpblxuXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgYyApXG5cbiMgMTI5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcYicgKVxuXG4jIDEzMDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDMzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXDAxMicgKVxuXG4jIDEzMDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDMzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nIClcblxuIyAxMzEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzE0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyAzMzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxyJyApXG5cbiMgMTMxOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMxOSBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgMzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcdCcgKVxuXG4jIDEzMjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxubGV0XG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBhXG5cbiMgMTMyOSBcImxpYi9yZWFkLm1sXCJcbiMgMTMyOSBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDEpXG5hbmRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBiXG5cbiMgMTMzNCBcImxpYi9yZWFkLm1sXCJcbiMgMTMzNCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDIpXG5hbmRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1xuXG4jIDEzMzkgXCJsaWIvcmVhZC5tbFwiXG4jIDEzMzkgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAzKVxuYW5kXG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkXG5cbiMgMTM0NCBcImxpYi9yZWFkLm1sXCJcbiMgMTM0NCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDQpIGluXG5cbiMgMzM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgeCA9XG4gICAgICAgICAgICAgKGhleCBhIGxzbCAxMikgbG9yIChoZXggYiBsc2wgOCkgbG9yIChoZXggYyBsc2wgNCkgbG9yIGhleCBkXG4gICAgICAgICAgIGluXG4gICAgICAgICAgIGlmIHggPj0gMHhEODAwICYmIHggPD0gMHhEQkZGIHRoZW5cbiAgICAgICAgICAgICBmaW5pc2hfc3Vycm9nYXRlX3BhaXIgdiB4IGxleGJ1ZlxuICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgdXRmOF9vZl9jb2RlIHYuYnVmIHhcbiAgICAgICAgIClcblxuIyAxMzU1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzU2IFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyAzNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZVwiIHYgbGV4YnVmIClcblxuIyAxMzYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzYxIFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyAzNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEzNjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzNjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfZXNjYXBlZF9jaGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3N1cnJvZ2F0ZV9wYWlyIHYgeCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3N1cnJvZ2F0ZV9wYWlyX3JlYyB2IHggbGV4YnVmIDgyXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3N1cnJvZ2F0ZV9wYWlyX3JlYyB2IHggbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxubGV0XG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgYVxuXG4jIDEzNzggXCJsaWIvcmVhZC5tbFwiXG4jIDEzNzggXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAyKVxuYW5kXG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJcblxuIyAxMzgzIFwibGliL3JlYWQubWxcIlxuIyAxMzgzIFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMylcbmFuZFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1xuXG4jIDEzODggXCJsaWIvcmVhZC5tbFwiXG4jIDEzODggXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyA0KVxuYW5kXG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZFxuXG4jIDEzOTMgXCJsaWIvcmVhZC5tbFwiXG4jIDEzOTMgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyA1KSBpblxuXG4jIDM1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IHkgPVxuICAgICAgICAgICAgIChoZXggYSBsc2wgMTIpIGxvciAoaGV4IGIgbHNsIDgpIGxvciAoaGV4IGMgbHNsIDQpIGxvciBoZXggZFxuICAgICAgICAgICBpblxuICAgICAgICAgICBpZiB5ID49IDB4REMwMCAmJiB5IDw9IDB4REZGRiB0aGVuXG4gICAgICAgICAgICAgdXRmOF9vZl9zdXJyb2dhdGVfcGFpciB2LmJ1ZiB4IHlcbiAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJJbnZhbGlkIGxvdyBzdXJyb2dhdGUgZm9yIGNvZGUgcG9pbnQgYmV5b25kIFUrRkZGRlwiXG4gICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgKVxuXG4jIDE0MDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIk1pc3NpbmcgZXNjYXBlIHNlcXVlbmNlIHJlcHJlc2VudGluZyBsb3cgc3Vycm9nYXRlIFxcXG4gICAgICAgICAgICAgICAgICAgICAgIGZvciBjb2RlIHBvaW50IGJleW9uZCBVK0ZGRkZcIiB2IGxleGJ1ZiApXG5cbiMgMTQxMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQxMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3N1cnJvZ2F0ZV9wYWlyX3JlYyB2IHggbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc3RyaW5nbGl0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIDkxXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgICAgICAgIGxldCBzID0gQnl0ZXMuY3JlYXRlIChsZW4rMSkgaW5cbiAgICAgICAgICAgQnl0ZXMuc2V0IHMgMCAnXCInO1xuICAgICAgICAgICBCeXRlcy5ibGl0IGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIHMgMSBsZW47XG4gICAgICAgICAgIEJ5dGVzLnRvX3N0cmluZyBzXG4gICAgICAgICApXG5cbiMgMTQzMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQzNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBzdHJpbmcgbGl0ZXJhbFwiIHYgbGV4YnVmIClcblxuIyAxNDM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDM5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzNzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDEwMlxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzNzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM3NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCB4ID0gcmVhZF9qc29uIHYgbGV4YnVmIGluXG4gICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgIHJlYWRfZ3QgdiBsZXhidWY7XG4gICAgICAgICAgIFNvbWUgeCApXG5cbiMgMTQ1OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ1OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBOb25lIClcblxuIyAxNDYzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDY0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzODEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM4MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgb3IgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNDY4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDY5IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzODIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM4MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0NzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbHQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9sdF9yZWMgdiBsZXhidWYgMTA3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9sdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzg1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzg1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAxNDg1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDg2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzODYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzODYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc8JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2x0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9ndCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2d0X3JlYyB2IGxleGJ1ZiAxMTFcbmFuZCBfX29jYW1sX2xleF9yZWFkX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAxNTA3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTA4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE1MTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTUxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2NvbW1hIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfY29tbWFfcmVjIHYgbGV4YnVmIDExNVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfY29tbWFfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDE1MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM5NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzk2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTUzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTQwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9jb21tYV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHN0YXJ0X2FueV92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV92YXJpYW50X3JlYyB2IGxleGJ1ZiAxMTlcbmFuZCBfX29jYW1sX2xleF9zdGFydF9hbnlfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGBFZGd5X2JyYWNrZXQgKVxuXG4jIDE1NTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBgRG91YmxlX3F1b3RlIClcblxuIyAxNTU3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTU4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggYFNxdWFyZV9icmFja2V0IClcblxuIyAxNTYyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTYzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc8JywgJ1xcXCInIG9yICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTU2NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU2OCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE1NzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9zdGFydF9hbnlfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9jb21tZW50X3JlYyB2IGxleGJ1ZiAxMjVcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMTU4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiVW50ZXJtaW5hdGVkIGNvbW1lbnRcIiB2IGxleGJ1ZiApXG5cbiMgMTU4OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU5MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMTU5NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU5NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMTU5OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYwMCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9lb2YgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfZW9mX3JlYyBsZXhidWYgMTMxXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9lb2ZfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNjExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjEyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTYxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfZW9mX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfc3BhY2UgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9zcGFjZV9yZWMgdiBsZXhidWYgMTMzXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTYyOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYyOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWY7IHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2MzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQyNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICgpIClcblxuIyAxNjQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjQ5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbnVsbCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX251bGxfcmVjIHYgbGV4YnVmIDE0MFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggKCkgKVxuXG4jIDE2NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnbnVsbCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE2NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE2NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX251bGxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX251bGxfaWZfcG9zc2libGUgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX2lmX3Bvc3NpYmxlX3JlYyB2IGxleGJ1ZiAxNDdcbmFuZCBfX29jYW1sX2xleF9yZWFkX251bGxfaWZfcG9zc2libGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE2ODIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2ODMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNjg3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjg4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX2lmX3Bvc3NpYmxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9ib29sIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYm9vbF9yZWMgdiBsZXhidWYgMTUyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9ib29sX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTY5OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcwMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNzA0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzA1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTcwOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcxMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNzE0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzE1IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICd0cnVlJyBvciAnZmFsc2UnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNzE5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzIwIFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA0NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTcyNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcyNSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYm9vbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaW50X3JlYyB2IGxleGJ1ZiAxNzZcbmFuZCBfX29jYW1sX2xleF9yZWFkX2ludF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBleHRyYWN0X3Bvc2l0aXZlX2ludCBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggSW50X292ZXJmbG93IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50IG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE3MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgZXh0cmFjdF9uZWdhdGl2ZV9pbnQgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIEludF9vdmVyZmxvdyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludCBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxNzQ1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzQ2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggKCogU3VwcG9ydCBmb3IgZG91YmxlLXF1b3RlZCBcImludHNcIiAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBpbnQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludF9vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYW4gaW50ZWdlciBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGFuIGludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4jIDE3NjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQ3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgaW50ZWdlciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTc2OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc2OSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE3NzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2ludF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaW50MzIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMgdiBsZXhidWYgMTg1XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBJbnQzMi5vZl9zdHJpbmcgKExleGluZy5sZXhlbWUgbGV4YnVmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50MzIgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTc4NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc4OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoICgqIFN1cHBvcnQgZm9yIGRvdWJsZS1xdW90ZWQgXCJpbnRzXCIgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgaW50IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3JlcyAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnQzMi5vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYW4gaW50MzIgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhbiBpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuIyAxODA1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODA2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIGludDMyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxODEwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODExIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0OTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTgxNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgxNiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2ludDY0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaW50NjRfcmVjIHYgbGV4YnVmIDE5MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaW50NjRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQ5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgSW50NjQub2Zfc3RyaW5nIChMZXhpbmcubGV4ZW1lIGxleGJ1ZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludDMyIG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE4MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCAoKiBTdXBwb3J0IGZvciBkb3VibGUtcXVvdGVkIFwiaW50c1wiICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGludCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50NjQub2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGFuIGludDY0IGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYW4gaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICApXG5cbiMgMTg0NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg0OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNTEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBpbnQ2NCBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTg1MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg1MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE4NTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2ludDY0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9udW1iZXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIHYgbGV4YnVmIDE5OVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1MTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbmFuIClcblxuIyAxODY5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODcwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggaW5maW5pdHkgKVxuXG4jIDE4NzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDUxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBuZWdfaW5maW5pdHkgKVxuXG4jIDE4NzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4ODAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDUxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmbG9hdF9vZl9zdHJpbmcgKGxleGVtZSBsZXhidWYpIClcblxuIyAxODg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODg1IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA1MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBmbG9hdCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMuICopXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0X29mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBcIk5hTlwiIC0+IG5hblxuICAgICAgICAgICAgICAgICAgICAgIHwgXCJJbmZpbml0eVwiIC0+IGluZmluaXR5XG4gICAgICAgICAgICAgICAgICAgICAgfCBcIi1JbmZpbml0eVwiIC0+IG5lZ19pbmZpbml0eVxuICAgICAgICAgICAgICAgICAgICAgIHwgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGEgbnVtYmVyIGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYSBudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgKVxuXG4jIDE5MDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDUzOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUzOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgbnVtYmVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTEyIFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyA1MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTkxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9zdHJpbmcgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9zdHJpbmdfcmVjIHYgbGV4YnVmIDIzM1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTkyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnXFxcIicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5MzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxOTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTQwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2lkZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaWRlbnRfcmVjIHYgbGV4YnVmIDIzN1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxOTUyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTUzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cbmxldFxuXG4jIDU1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgc1xuXG4jIDE5NTggXCJsaWIvcmVhZC5tbFwiXG4jIDE5NTggXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lIGxleGJ1ZiBsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgbGV4YnVmLkxleGluZy5sZXhfY3Vycl9wb3MgaW5cblxuIyA1NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcyApXG5cbiMgMTk2MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk2MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTk2NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk2OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE5NzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgbWFwX2lkZW50IHYgZiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfbWFwX2lkZW50X3JlYyB2IGYgbGV4YnVmIDI0MlxuYW5kIF9fb2NhbWxfbGV4X21hcF9pZGVudF9yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgbWFwX3N0cmluZyB2IGYgbGV4YnVmIClcblxuIyAxOTg1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTg2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbWFwX2xleGVtZSBmIGxleGJ1ZiApXG5cbiMgMTk5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTYwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTYwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTk5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIwMDAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMDEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9tYXBfaWRlbnRfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfc2VxdWVuY2UgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfc2VxdWVuY2VfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiAyNDdcbmFuZCBfX29jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgaW5pdF9hY2MgaW5cbiAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgIWFjYyB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsICFhY2MgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgIClcblxuIyAyMDI2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDI3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjAzMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAzMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIwMzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbGlzdF9yZXYgcmVhZF9jZWxsIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjIHJlYWRfY2VsbCB2IGxleGJ1ZiAyNTFcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyByZWFkX2NlbGwgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgIClcblxuIyAyMDYyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDYzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjA2NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA2OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIwNzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwNzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyByZWFkX2NlbGwgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2FycmF5X2VuZF9yZWMgbGV4YnVmIDI1NVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMjA4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMDg5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDkwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9hcnJheV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIDI1N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2MDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIxMDEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMDIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDYwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDIxMDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDYwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjExMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjExMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNjA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIxMTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGUgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiAyNjJcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDYxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA2MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgNjM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDIxNTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDYzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMTU1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTU2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2MzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjE2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9lbmQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kX3JlYyBsZXhidWYgMjY2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMTcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTczIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIxNzcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNzggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX2VuZDIgdiBzdGQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kMl9yZWMgdiBzdGQgbGV4YnVmIDI2OFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJyknIG9yICcnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjE5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZVxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ10nIG9yICcnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjAwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjAxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIyMDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIDI3MVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIyMTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIyMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjIyNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIyOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNjU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIyMzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfc2VwMiB2IHN0ZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXAyX3JlYyB2IHN0ZCBsZXhidWYgMjc2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXAyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMjQ0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjQ1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMjUyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjUzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2NjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjYxIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA2NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyNjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDY3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjcxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXAyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYWJzdHJhY3RfZmllbGRzIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHNfcmVjIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgMjgyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHNfcmVjIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjc1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjc1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgaW5pdF9hY2MgaW5cbiAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfa2V5IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2ZpZWxkICFhY2MgZmllbGRfbmFtZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2tleSB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2ZpZWxkICFhY2MgZmllbGRfbmFtZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgIClcblxuIyAyMzA0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzA1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICd7JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjMwOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMxMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIzMTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkc19yZWMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9sY3VybCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xjdXJsX3JlYyB2IGxleGJ1ZiAyODZcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xjdXJsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzMjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ3snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzMxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzMyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjMzNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMzNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbGN1cmxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX29iamVjdF9lbmQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X2VuZF9yZWMgbGV4YnVmIDI5MFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAyMzQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzQ5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzNTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgMjkyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzNjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAyMzcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzcxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnfScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzNzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDcxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMzgwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzgxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9jb2xvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2NvbG9uX3JlYyB2IGxleGJ1ZiAyOTdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzk4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBzdGFydF9hbnlfdHVwbGUgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3R1cGxlX3JlYyB2IGxleGJ1ZiAzMDFcbmFuZCBfX29jYW1sX2xleF9zdGFydF9hbnlfdHVwbGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMjQxNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQxNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDI0MTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJygnIG9yICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQyNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQyNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9zdGFydF9hbnlfdHVwbGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xwYXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9scGFyX3JlYyB2IGxleGJ1ZiAzMDZcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjQ0MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ0MiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0NDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDczMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDUxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDUyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9scGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9ycGFyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfcnBhcl9yZWMgdiBsZXhidWYgMzEwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9ycGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI0NjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDczNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDY4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDY5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ3MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ3NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfcnBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbGJyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbGJyX3JlYyB2IGxleGJ1ZiAzMTRcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNDg1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDg2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfcmJyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfcmJyX3JlYyB2IGxleGJ1ZiAzMThcbmFuZCBfX29jYW1sX2xleF9yZWFkX3Jicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNTA3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTA4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjUxMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUxMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI1MTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3Jicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHNraXBfanNvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9za2lwX2pzb25fcmVjIHYgbGV4YnVmIDMyMlxuYW5kIF9fb2NhbWxfbGV4X3NraXBfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDc1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNzU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTQ0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTQ1IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA3NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDc1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgNzU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZpbmlzaF9za2lwX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjU1OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU2MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgNzU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDc1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDc1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU2OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU3MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA5IC0+XG5cbiMgNzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDc2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI1OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTAgLT5cblxuIyA3ODQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNzg0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNjEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjE0IFwibGliL3JlYWQubWxcIlxuICB8IDExIC0+XG5cbiMgNzk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDc5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA4MTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgODE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI2MzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2MzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTIgLT5cblxuIyA4MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDgyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyA4MjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjY1MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY1MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMyAtPlxuXG4jIDgzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY1NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY1NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNCAtPlxuXG4jIDgzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmOyBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTUgLT5cblxuIyA4MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTYgLT5cblxuIyA4MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTcgLT5cblxuIyA4MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNjc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjc2IFwibGliL3JlYWQubWxcIlxuICB8IDE4IC0+XG5cbiMgODM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZiApXG5cbiMgMjY4MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY4MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3NraXBfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9za2lwX3N0cmluZ2xpdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIDM3OFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMjY5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBzdHJpbmcgbGl0ZXJhbFwiIHYgbGV4YnVmIClcblxuIyAyNjk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjk4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI3MDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc2tpcF92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDM4OVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICByZWFkX2d0IHYgbGV4YnVmIClcblxuIyAyNzE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzE3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAyNzIxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzIyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgb3IgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNzI2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzI3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA4NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI3MzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc2tpcF9pZGVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9za2lwX2lkZW50X3JlYyB2IGxleGJ1ZiAzOTRcbmFuZCBfX29jYW1sX2xleF9za2lwX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggZmluaXNoX3NraXBfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyNzQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzQ0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI3NDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI3NTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDg1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNzU4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzU5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc2tpcF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9qc29uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyB2IGxleGJ1ZiAzOTlcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgODcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmIClcblxuIyAyNzcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzcxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA4NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI3NzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICd7JztcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9vYmplY3RfZW5kIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODAzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA4OTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnWyc7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfYXJyYXlfZW5kIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4MjEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4MjIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDkxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgOTMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDkzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODQ1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODQ2IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA5MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDk0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyA5NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjg2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgOTQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7IGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODY2IFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyA5NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBCdWZmZXIuYWRkX3N0cmluZyB2LmJ1ZiBcIi8qXCI7XG4gICAgICAgICAgICAgICAgICAgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODczIFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyA5NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbic7XG4gICAgICAgICAgICAgICAgICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg3OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg4MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA5IC0+XG5cbiMgOTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7IGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODg1IFwibGliL3JlYWQubWxcIlxuICB8IDEwIC0+XG5cbiMgOTU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjg4OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg5MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMSAtPlxuXG4jIDk1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWYgKVxuXG4jIDI4OTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4OTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9idWZmZXJfc3RyaW5nbGl0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiA0NTBcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1wiJztcbiAgICAgICAgICAgYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWZcbiAgICAgICAgIClcblxuIyAyOTA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTA5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHN0cmluZyBsaXRlcmFsXCIgdiBsZXhidWYgKVxuXG4jIDI5MTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk2NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTY1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjkxOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkxOSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2J1ZmZlcl92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfdmFyaWFudF9yZWMgdiBsZXhidWYgNDYxXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5NjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnOic7XG4gICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgIGJ1ZmZlcl9ndCB2IGxleGJ1ZiApXG5cbiMgMjkzMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkzNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJz4nIClcblxuIyAyOTM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTM5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgb3IgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyOTQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTQ0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA5NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI5NDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfaWRlbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2lkZW50X3JlYyB2IGxleGJ1ZiA0NjZcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjk2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTc4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTc4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmIClcblxuIyAyOTY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTY2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyOTcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTcxIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA5ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjk3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfc3BhY2VfcmVjIHYgbGV4YnVmIDQ3MVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMjk5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBCdWZmZXIuYWRkX3N0cmluZyB2LmJ1ZiBcIi8qXCI7XG4gICAgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMjk5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbic7XG4gICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDMwMDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDk5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAzMDEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDE0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA5OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMzAxOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAxOSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9vYmplY3RfZW5kIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3RfZW5kX3JlYyB2IGxleGJ1ZiA0NzhcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIChcbiAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnfSc7XG4gICAgICByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAzMDMyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDMzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMzAzNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAzOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3RfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX29iamVjdF9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIDQ4MFxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJywnIClcblxuIyAzMDQ5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDUwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ30nOyByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAzMDU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDU1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICd9JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzA1OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA2MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTAxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzA2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2FycmF5X2VuZCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfZW5kX3JlYyB2IGxleGJ1ZiA0ODVcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ10nOyByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDMwNzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAzMDgxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDgyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9hcnJheV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgNDg3XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcsJyApXG5cbiMgMzA5MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA5NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICddJzsgcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAzMDk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDk5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzEwMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEwNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTAyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzEwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfdHVwbGVfZW5kIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9lbmRfcmVjIHYgbGV4YnVmIDQ5MlxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoXG4gICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJyknO1xuICAgICAgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAzMTIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTIzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMzEyNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEyOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfdHVwbGVfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIDQ5NFxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnLCcgKVxuXG4jIDMxMzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnKSc7IHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMzE0NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE0NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxNDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxNTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2NvbG9uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9jb2xvbl9yZWMgdiBsZXhidWYgNDk5XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJzonIClcblxuIyAzMTY2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTY3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTcxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTcyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTc2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTc3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2d0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9ndF9yZWMgdiBsZXhidWYgNTAzXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc+JyApXG5cbiMgMzE4OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE4OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTA0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxOTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxOTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwNDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTk5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfY29tbWVudF9yZWMgdiBsZXhidWYgNTA3XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9zdHJpbmcgdi5idWYgXCIqL1wiIClcblxuIyAzMjEwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjExIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIlVudGVybWluYXRlZCBjb21tZW50XCIgdiBsZXhidWYgKVxuXG4jIDMyMTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwNDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbic7XG4gICAgICAgICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgICAgICAgIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMzIyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTA1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmOyBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDMyMjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBqdW5rIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9qdW5rX3JlYyBsZXhidWYgNTEzXG5hbmQgX19vY2FtbF9sZXhfanVua19yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwNTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIExleGluZy5sZXhlbWUgbGV4YnVmIClcblxuIyAzMjM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjQwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfanVua19yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbjs7XG5cblxuIyAxMDU1IFwibGliL3JlYWQubWxsXCJcbiBcbiAgXG4jIDEwNTYgXCJsaWIvcmVhZC5tbGxcIlxuICBsZXQgXyA9IChyZWFkX2pzb24gOiBsZXhlcl9zdGF0ZSAtPiBMZXhpbmcubGV4YnVmIC0+IHQpXG5cbiAgbGV0IHJlYWRfdCA9IHJlYWRfanNvblxuXG4gIGxldCAoKSA9XG4gICAgcmVhZF9qdW5rIDo9IGp1bmtcblxuICBsZXQgcmVhZF9pbnQ4IHYgbGV4YnVmID1cbiAgICBsZXQgbiA9IHJlYWRfaW50IHYgbGV4YnVmIGluXG4gICAgaWYgbiA8IDAgfHwgbiA+IDI1NSB0aGVuXG4gICAgICBsZXhlcl9lcnJvciBcIkludDggb3ZlcmZsb3dcIiB2IGxleGJ1ZlxuICAgIGVsc2VcbiAgICAgIGNoYXJfb2ZfaW50IG5cblxuICBsZXQgcmVhZF9saXN0IHJlYWRfY2VsbCB2IGxleGJ1ZiA9XG4gICAgTGlzdC5yZXYgKHJlYWRfbGlzdF9yZXYgcmVhZF9jZWxsIHYgbGV4YnVmKVxuXG4gIGxldCBhcnJheV9vZl9yZXZfbGlzdCBsID1cbiAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgW10gLT4gW3wgfF1cbiAgICAgIHwgeCA6OiB0bCAtPlxuICAgICAgICAgIGxldCBsZW4gPSBMaXN0Lmxlbmd0aCBsIGluXG4gICAgICAgICAgbGV0IGEgPSBBcnJheS5tYWtlIGxlbiB4IGluXG4gICAgICAgICAgbGV0IHIgPSByZWYgdGwgaW5cbiAgICAgICAgICBmb3IgaSA9IGxlbiAtIDIgZG93bnRvIDAgZG9cbiAgICAgICAgICAgIGEuKGkpIDwtIExpc3QuaGQgIXI7XG4gICAgICAgICAgICByIDo9IExpc3QudGwgIXJcbiAgICAgICAgICBkb25lO1xuICAgICAgICAgIGFcblxuICBsZXQgcmVhZF9hcnJheSByZWFkX2NlbGwgdiBsZXhidWYgPVxuICAgIGxldCBsID0gcmVhZF9saXN0X3JldiByZWFkX2NlbGwgdiBsZXhidWYgaW5cbiAgICBhcnJheV9vZl9yZXZfbGlzdCBsXG5cbiAgKCogUmVhZCBhIEpTT04gb2JqZWN0LCByZWFkaW5nIHRoZSBrZXlzIGludG8gT0NhbWwgc3RyaW5nc1xuICAgICAocHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpICopXG4gIGxldCByZWFkX2ZpZWxkcyByZWFkX2ZpZWxkIGluaXRfYWNjIHYgPVxuICAgIHJlYWRfYWJzdHJhY3RfZmllbGRzIHJlYWRfaWRlbnQgcmVhZF9maWVsZCBpbml0X2FjYyB2XG5cbiAgbGV0IGZpbmlzaCB2IGxleGJ1ZiA9XG4gICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICBpZiBub3QgKHJlYWRfZW9mIGxleGJ1ZikgdGhlblxuICAgICAgbG9uZ19lcnJvciBcIkp1bmsgYWZ0ZXIgZW5kIG9mIEpTT04gdmFsdWU6XCIgdiBsZXhidWZcblxuICBsZXQgaW5pdF9sZXhlciA9IGluaXRfbGV4ZXJcblxuICBsZXQgZnJvbV9sZXhidWYgdiA/KHN0cmVhbSA9IGZhbHNlKSBsZXhidWYgPVxuICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG5cbiAgICBsZXQgeCA9XG4gICAgICBpZiByZWFkX2VvZiBsZXhidWYgdGhlblxuICAgICAgICByYWlzZSBFbmRfb2ZfaW5wdXRcbiAgICAgIGVsc2VcbiAgICAgICAgcmVhZF9qc29uIHYgbGV4YnVmXG4gICAgaW5cblxuICAgIGlmIG5vdCBzdHJlYW0gdGhlblxuICAgICAgZmluaXNoIHYgbGV4YnVmO1xuXG4gICAgeFxuXG5cbiAgbGV0IGZyb21fc3RyaW5nID9idWYgP2ZuYW1lID9sbnVtIHMgPVxuICAgIHRyeVxuICAgICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX3N0cmluZyBzIGluXG4gICAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICAgIGZyb21fbGV4YnVmIHYgbGV4YnVmXG4gICAgd2l0aCBFbmRfb2ZfaW5wdXQgLT5cbiAgICAgIGpzb25fZXJyb3IgXCJCbGFuayBpbnB1dCBkYXRhXCJcblxuICBsZXQgZnJvbV9jaGFubmVsID9idWYgP2ZuYW1lID9sbnVtIGljID1cbiAgICB0cnlcbiAgICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9jaGFubmVsIGljIGluXG4gICAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICAgIGZyb21fbGV4YnVmIHYgbGV4YnVmXG4gICAgd2l0aCBFbmRfb2ZfaW5wdXQgLT5cbiAgICAgIGpzb25fZXJyb3IgXCJCbGFuayBpbnB1dCBkYXRhXCJcblxuICBsZXQgZnJvbV9maWxlID9idWYgP2ZuYW1lID9sbnVtIGZpbGUgPVxuICAgIGxldCBpYyA9IG9wZW5faW4gZmlsZSBpblxuICAgIHRyeVxuICAgICAgbGV0IHggPSBmcm9tX2NoYW5uZWwgP2J1ZiA/Zm5hbWUgP2xudW0gaWMgaW5cbiAgICAgIGNsb3NlX2luIGljO1xuICAgICAgeFxuICAgIHdpdGggZSAtPlxuICAgICAgY2xvc2VfaW5fbm9lcnIgaWM7XG4gICAgICByYWlzZSBlXG5cbiAgZXhjZXB0aW9uIEZpbmFsbHkgb2YgZXhuICogZXhuXG5cbiAgbGV0IHNlcV9mcm9tX2xleGJ1ZiB2ID8oZmluID0gZnVuICgpIC0+ICgpKSBsZXhidWYgPVxuICAgIGxldCBzdHJlYW0gPSBTb21lIHRydWUgaW5cbiAgICBsZXQgcmVjIGYgKCkgPVxuICAgICAgdHJ5IFNlcS5Db25zIChmcm9tX2xleGJ1ZiB2ID9zdHJlYW0gbGV4YnVmLCBmKVxuICAgICAgd2l0aFxuICAgICAgICAgIEVuZF9vZl9pbnB1dCAtPlxuICAgICAgICAgICAgZmluICgpO1xuICAgICAgICAgICAgU2VxLk5pbFxuICAgICAgICB8IGUgLT5cbiAgICAgICAgICAgICh0cnkgZmluICgpIHdpdGggZmluX2UgLT4gcmFpc2UgKEZpbmFsbHkgKGUsIGZpbl9lKSkpO1xuICAgICAgICAgICAgcmFpc2UgZVxuICAgIGluXG4gICAgZlxuXG4gIGxldCBzZXFfZnJvbV9zdHJpbmcgP2J1ZiA/Zm5hbWUgP2xudW0gcyA9XG4gICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgc2VxX2Zyb21fbGV4YnVmIHYgKExleGluZy5mcm9tX3N0cmluZyBzKVxuXG4gIGxldCBzZXFfZnJvbV9jaGFubmVsID9idWYgP2ZpbiA/Zm5hbWUgP2xudW0gaWMgPVxuICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9jaGFubmVsIGljIGluXG4gICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgc2VxX2Zyb21fbGV4YnVmIHYgP2ZpbiBsZXhidWZcblxuICBsZXQgc2VxX2Zyb21fZmlsZSA/YnVmID9mbmFtZSA/bG51bSBmaWxlID1cbiAgICBsZXQgaWMgPSBvcGVuX2luIGZpbGUgaW5cbiAgICBsZXQgZmluICgpID0gY2xvc2VfaW4gaWMgaW5cbiAgICBsZXQgZm5hbWUgPVxuICAgICAgbWF0Y2ggZm5hbWUgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gU29tZSBmaWxlXG4gICAgICAgIHwgeCAtPiB4XG4gICAgaW5cbiAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fY2hhbm5lbCBpYyBpblxuICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgIHNlcV9mcm9tX2xleGJ1ZiB2IH5maW4gbGV4YnVmXG5cbiAgdHlwZSBqc29uX2xpbmUgPSBbIGBKc29uIG9mIHQgfCBgRXhuIG9mIGV4biBdXG5cbiAgbGV0IGxpbmVzZXFfZnJvbV9jaGFubmVsXG4gICAgICA/YnVmID8oZmluID0gZnVuICgpIC0+ICgpKSA/Zm5hbWUgP2xudW06KGxudW0wID0gMSkgaWMgPVxuICAgIGxldCBidWYgPVxuICAgICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFNvbWUgKEJ1ZmZlci5jcmVhdGUgMjU2KVxuICAgICAgICB8IFNvbWUgXyAtPiBidWZcbiAgICBpblxuICAgIGxldCByZWMgZiBsbnVtID0gZnVuICgpIC0+XG4gICAgICB0cnlcbiAgICAgICAgbGV0IGxpbmUgPSBpbnB1dF9saW5lIGljIGluXG4gICAgICAgIFNlcS5Db25zIChgSnNvbiAoZnJvbV9zdHJpbmcgP2J1ZiA/Zm5hbWUgfmxudW0gbGluZSksIGYgKGxudW0gKyAxKSlcbiAgICAgIHdpdGhcbiAgICAgICAgICBFbmRfb2ZfZmlsZSAtPiBmaW4gKCk7IFNlcS5OaWxcbiAgICAgICAgfCBlIC0+IFNlcS5Db25zIChgRXhuIGUsIGYgKGxudW0gKyAxKSlcbiAgICBpblxuICAgIGYgbG51bTBcblxuICBsZXQgbGluZXNlcV9mcm9tX2ZpbGUgP2J1ZiA/Zm5hbWUgP2xudW0gZmlsZSA9XG4gICAgbGV0IGljID0gb3Blbl9pbiBmaWxlIGluXG4gICAgbGV0IGZpbiAoKSA9IGNsb3NlX2luIGljIGluXG4gICAgbGV0IGZuYW1lID1cbiAgICAgIG1hdGNoIGZuYW1lIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFNvbWUgZmlsZVxuICAgICAgICB8IHggLT4geFxuICAgIGluXG4gICAgbGluZXNlcV9mcm9tX2NoYW5uZWwgP2J1ZiB+ZmluID9mbmFtZSA/bG51bSBpY1xuXG4gIGxldCBwcmV0dGlmeSA/c3RkIHMgPVxuICAgIHByZXR0eV90b19zdHJpbmcgP3N0ZCAoZnJvbV9zdHJpbmcgcylcblxuICBsZXQgY29tcGFjdCA/c3RkIHMgPVxuICAgIHRvX3N0cmluZyAoZnJvbV9zdHJpbmcgcylcblxuXG4jIDM0MDggXCJsaWIvcmVhZC5tbFwiXG4jIDQyIFwieW9qc29uLmNwcG8ubWxcIlxubW9kdWxlIFV0aWwgPVxuc3RydWN0XG4jIDEgXCJ1dGlsLm1sXCJcbmV4Y2VwdGlvbiBUeXBlX2Vycm9yIG9mIHN0cmluZyAqIHRcblxubGV0IHR5cGVvZiA9IGZ1bmN0aW9uXG4gIHwgYEFzc29jIF8gLT4gXCJvYmplY3RcIlxuICB8IGBCb29sIF8gLT4gXCJib29sXCJcbiAgfCBgRmxvYXQgXyAtPiBcImZsb2F0XCJcbiAgfCBgSW50IF8gLT4gXCJpbnRcIlxuICB8IGBMaXN0IF8gLT4gXCJhcnJheVwiXG4gIHwgYE51bGwgLT4gXCJudWxsXCJcbiAgfCBgU3RyaW5nIF8gLT4gXCJzdHJpbmdcIlxuICB8IGBJbnRsaXQgXyAtPiBcImludGxpdFwiXG4gIHwgYFR1cGxlIF8gLT4gXCJ0dXBsZVwiXG4gIHwgYFZhcmlhbnQgXyAtPiBcInZhcmlhbnRcIlxuXG5sZXQgdHlwZXJyIG1zZyBqcyA9IHJhaXNlIChUeXBlX2Vycm9yIChtc2cgXiB0eXBlb2YganMsIGpzKSlcblxuZXhjZXB0aW9uIFVuZGVmaW5lZCBvZiBzdHJpbmcgKiB0XG5cbmxldCBhc3NvYyBuYW1lIG9iaiA9XG4gIHRyeSBMaXN0LmFzc29jIG5hbWUgb2JqXG4gIHdpdGggTm90X2ZvdW5kIC0+IGBOdWxsXG5cbmxldCBtZW1iZXIgbmFtZSA9IGZ1bmN0aW9uXG4gIHwgYEFzc29jIG9iaiAtPiBhc3NvYyBuYW1lIG9ialxuICB8IGpzIC0+IHR5cGVyciAoXCJDYW4ndCBnZXQgbWVtYmVyICdcIiBeIG5hbWUgXiBcIicgb2Ygbm9uLW9iamVjdCB0eXBlIFwiKSBqc1xuXG5sZXQgaW5kZXggaSA9IGZ1bmN0aW9uXG4gIHwgYExpc3QgbCBhcyBqcyAtPlxuICAgICAgbGV0IGxlbiA9IExpc3QubGVuZ3RoIGwgaW5cbiAgICAgIGxldCB3cmFwcGVkX2luZGV4ID0gaWYgaSA8IDAgdGhlbiBsZW4gKyBpIGVsc2UgaSBpblxuICAgICAgaWYgd3JhcHBlZF9pbmRleCA8IDAgfHwgd3JhcHBlZF9pbmRleCA+PSBsZW4gdGhlblxuICAgICAgICByYWlzZSAoVW5kZWZpbmVkIChcIkluZGV4IFwiIF4gc3RyaW5nX29mX2ludCBpIF4gXCIgb3V0IG9mIGJvdW5kc1wiLCBqcykpXG4gICAgICBlbHNlIExpc3QubnRoIGwgd3JhcHBlZF9pbmRleFxuICB8IGpzIC0+IHR5cGVyciAoXCJDYW4ndCBnZXQgaW5kZXggXCIgXiBzdHJpbmdfb2ZfaW50IGlcbiAgICAgICAgICAgICAgICAgXiBcIiBvZiBub24tYXJyYXkgdHlwZSBcIikganNcblxubGV0IG1hcCBmID0gZnVuY3Rpb25cbiAgfCBgTGlzdCBsIC0+IGBMaXN0IChMaXN0Lm1hcCBmIGwpXG4gIHwganMgLT4gdHlwZXJyIFwiQ2FuJ3QgbWFwIGZ1bmN0aW9uIG92ZXIgbm9uLWFycmF5IHR5cGUgXCIganNcblxubGV0IHRvX2Fzc29jID0gZnVuY3Rpb25cbiAgfCBgQXNzb2Mgb2JqIC0+IG9ialxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIG9iamVjdCwgZ290IFwiIGpzXG5cbmxldCB0b19vcHRpb24gZiA9IGZ1bmN0aW9uXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IHggLT4gU29tZSAoZiB4KVxuXG5sZXQgdG9fYm9vbCA9IGZ1bmN0aW9uXG4gIHwgYEJvb2wgYiAtPiBiXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgYm9vbCwgZ290IFwiIGpzXG5cbmxldCB0b19ib29sX29wdGlvbiA9IGZ1bmN0aW9uXG4gIHwgYEJvb2wgYiAtPiBTb21lIGJcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgYm9vbCBvciBudWxsLCBnb3QgXCIganNcblxubGV0IHRvX251bWJlciA9IGZ1bmN0aW9uXG4gIHwgYEludCBpIC0+IGZsb2F0IGlcbiAgfCBgRmxvYXQgZiAtPiBmXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgbnVtYmVyLCBnb3QgXCIganNcblxubGV0IHRvX251bWJlcl9vcHRpb24gPSBmdW5jdGlvblxuICB8IGBJbnQgaSAtPiBTb21lIChmbG9hdCBpKVxuICB8IGBGbG9hdCBmIC0+IFNvbWUgZlxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBudW1iZXIgb3IgbnVsbCwgZ290IFwiIGpzXG5cbmxldCB0b19mbG9hdCA9IGZ1bmN0aW9uXG4gIHwgYEZsb2F0IGYgLT4gZlxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGZsb2F0LCBnb3QgXCIganNcblxubGV0IHRvX2Zsb2F0X29wdGlvbiA9IGZ1bmN0aW9uXG4gIHwgYEZsb2F0IGYgLT4gU29tZSBmXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGZsb2F0IG9yIG51bGwsIGdvdCBcIiBqc1xuXG5sZXQgdG9faW50ID0gZnVuY3Rpb25cbiAgfCBgSW50IGkgLT4gaVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGludCwgZ290IFwiIGpzXG5cbmxldCB0b19pbnRfb3B0aW9uID0gZnVuY3Rpb25cbiAgfCBgSW50IGkgLT4gU29tZSBpXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGludCBvciBudWxsLCBnb3QgXCIganNcblxubGV0IHRvX2xpc3QgPSBmdW5jdGlvblxuICB8IGBMaXN0IGwgLT4gbFxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGFycmF5LCBnb3QgXCIganNcblxubGV0IHRvX3N0cmluZyA9IGZ1bmN0aW9uXG4gIHwgYFN0cmluZyBzIC0+IHNcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBzdHJpbmcsIGdvdCBcIiBqc1xuXG5sZXQgdG9fc3RyaW5nX29wdGlvbiA9IGZ1bmN0aW9uXG4gIHwgYFN0cmluZyBzIC0+IFNvbWUgc1xuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBzdHJpbmcgb3IgbnVsbCwgZ290IFwiIGpzXG5cbmxldCBjb252ZXJ0X2VhY2ggZiA9IGZ1bmN0aW9uXG4gIHwgYExpc3QgbCAtPiBMaXN0Lm1hcCBmIGxcbiAgfCBqcyAtPiB0eXBlcnIgXCJDYW4ndCBjb252ZXJ0IGVhY2ggZWxlbWVudCBvZiBub24tYXJyYXkgdHlwZSBcIiBqc1xuXG5cbmxldCByZWMgcmV2X2ZpbHRlcl9tYXAgZiBhY2MgbCA9XG4gIG1hdGNoIGwgd2l0aFxuICAgICAgW10gLT4gYWNjXG4gICAgfCB4IDo6IHRsIC0+XG4gICAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICAgICAgICBOb25lIC0+IHJldl9maWx0ZXJfbWFwIGYgYWNjIHRsXG4gICAgICAgICAgfCBTb21lIHkgLT4gcmV2X2ZpbHRlcl9tYXAgZiAoeSA6OiBhY2MpIHRsXG5cbmxldCBmaWx0ZXJfbWFwIGYgbCA9XG4gIExpc3QucmV2IChyZXZfZmlsdGVyX21hcCBmIFtdIGwpXG5cbmxldCByZWMgcmV2X2ZsYXR0ZW4gYWNjIGwgPVxuICBtYXRjaCBsIHdpdGhcbiAgICAgIFtdIC0+IGFjY1xuICAgIHwgeCA6OiB0bCAtPlxuICAgICAgICBtYXRjaCB4IHdpdGhcbiAgICAgICAgICAgIGBMaXN0IGwyIC0+IHJldl9mbGF0dGVuIChMaXN0LnJldl9hcHBlbmQgbDIgYWNjKSB0bFxuICAgICAgICAgIHwgXyAtPiByZXZfZmxhdHRlbiBhY2MgdGxcblxubGV0IGZsYXR0ZW4gbCA9XG4gIExpc3QucmV2IChyZXZfZmxhdHRlbiBbXSBsKVxuXG5sZXQgZmlsdGVyX2luZGV4IGkgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBMaXN0IGwgLT5cbiAgICAgICAgICAodHJ5IFNvbWUgKExpc3QubnRoIGwgaSlcbiAgICAgICAgICAgd2l0aCBfIC0+IE5vbmUpXG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9saXN0IGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgTGlzdCBsIC0+IFNvbWUgbFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfbWVtYmVyIGsgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBBc3NvYyBsIC0+XG4gICAgICAgICAgKHRyeSBTb21lIChMaXN0LmFzc29jIGsgbClcbiAgICAgICAgICAgd2l0aCBfIC0+IE5vbmUpXG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9hc3NvYyBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEFzc29jIGwgLT4gU29tZSBsXG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9ib29sIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgQm9vbCB4IC0+IFNvbWUgeFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfaW50IGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgSW50IHggLT4gU29tZSB4XG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9mbG9hdCBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEZsb2F0IHggLT4gU29tZSB4XG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9udW1iZXIgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBJbnQgeCAtPiBTb21lIChmbG9hdCB4KVxuICAgICAgfCBgRmxvYXQgeCAtPiBTb21lIHhcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX3N0cmluZyBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYFN0cmluZyB4IC0+IFNvbWUgeFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBrZXlzIG8gPVxuICB0b19hc3NvYyBvIHw+IExpc3QubWFwIChmdW4gKGtleSwgXykgLT4ga2V5KVxuXG5sZXQgdmFsdWVzIG8gPVxuICB0b19hc3NvYyBvIHw+IExpc3QubWFwIChmdW4gKF8sIHZhbHVlKSAtPiB2YWx1ZSlcblxubGV0IGNvbWJpbmUgKGZpcnN0IDogdCkgKHNlY29uZCA6IHQpID1cbiAgbWF0Y2ggKGZpcnN0LCBzZWNvbmQpIHdpdGhcbiAgfCAoYEFzc29jIGEsIGBBc3NvYyBiKSAtPiAoYEFzc29jIChhIEAgYikgOiAgdClcbiAgfCAoYSwgYikgLT4gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgXCJFeHBlY3RlZCB0d28gb2JqZWN0cywgY2hlY2sgaW5wdXRzXCIpXG4jIDQ1IFwieW9qc29uLmNwcG8ubWxcIlxuZW5kXG4jIDQ5IFwieW9qc29uLmNwcG8ubWxcIlxuZW5kXG5cbm1vZHVsZSBTYWZlID1cbnN0cnVjdFxuIyAxIFwidHlwZS5tbFwiXG4oKiogezMgVHlwZSBvZiB0aGUgSlNPTiB0cmVlfSAqKVxuXG50eXBlIHQgPVxuICAgIFtcbiAgICB8IGBOdWxsXG4gICAgfCBgQm9vbCBvZiBib29sXG4gICAgXG4jIDggXCJ0eXBlLm1sXCJcbiAgICB8IGBJbnQgb2YgaW50XG4gICAgXG4jIDExIFwidHlwZS5tbFwiXG4gICAgfCBgSW50bGl0IG9mIHN0cmluZ1xuICAgIFxuIyAxNCBcInR5cGUubWxcIlxuICAgIHwgYEZsb2F0IG9mIGZsb2F0XG4gICAgXG4jIDIwIFwidHlwZS5tbFwiXG4gICAgfCBgU3RyaW5nIG9mIHN0cmluZ1xuICAgIFxuIyAyNSBcInR5cGUubWxcIlxuICAgIHwgYEFzc29jIG9mIChzdHJpbmcgKiB0KSBsaXN0XG4gICAgfCBgTGlzdCBvZiB0IGxpc3RcbiAgICBcbiMgMjggXCJ0eXBlLm1sXCJcbiAgICB8IGBUdXBsZSBvZiB0IGxpc3RcbiAgICBcbiMgMzEgXCJ0eXBlLm1sXCJcbiAgICB8IGBWYXJpYW50IG9mIChzdHJpbmcgKiB0IG9wdGlvbilcbiAgICBcbiMgMzMgXCJ0eXBlLm1sXCJcbiAgICBdXG4oKipcbkFsbCBwb3NzaWJsZSBjYXNlcyBkZWZpbmVkIGluIFlvanNvbjpcbi0gYE51bGw6IEpTT04gbnVsbFxuLSBgQm9vbCBvZiBib29sOiBKU09OIGJvb2xlYW5cbi0gYEludCBvZiBpbnQ6IEpTT04gbnVtYmVyIHdpdGhvdXQgZGVjaW1hbCBwb2ludCBvciBleHBvbmVudC5cbi0gYEludGxpdCBvZiBzdHJpbmc6IEpTT04gbnVtYmVyIHdpdGhvdXQgZGVjaW1hbCBwb2ludCBvciBleHBvbmVudCxcblx0ICAgIHByZXNlcnZlZCBhcyBhIHN0cmluZy5cbi0gYEZsb2F0IG9mIGZsb2F0OiBKU09OIG51bWJlciwgSW5maW5pdHksIC1JbmZpbml0eSBvciBOYU4uXG4tIGBGbG9hdGxpdCBvZiBzdHJpbmc6IEpTT04gbnVtYmVyLCBJbmZpbml0eSwgLUluZmluaXR5IG9yIE5hTixcblx0ICAgIHByZXNlcnZlZCBhcyBhIHN0cmluZy5cbi0gYFN0cmluZyBvZiBzdHJpbmc6IEpTT04gc3RyaW5nLiBCeXRlcyBpbiB0aGUgcmFuZ2UgMTI4LTI1NSBhcmUgcHJlc2VydmVkXG5cdCAgICBhcy1pcyB3aXRob3V0IGVuY29kaW5nIHZhbGlkYXRpb24gZm9yIGJvdGggcmVhZGluZ1xuXHQgICAgYW5kIHdyaXRpbmcuXG4tIGBTdHJpbmdsaXQgb2Ygc3RyaW5nOiBKU09OIHN0cmluZyBsaXRlcmFsIGluY2x1ZGluZyB0aGUgZG91YmxlIHF1b3Rlcy5cbi0gYEFzc29jIG9mIChzdHJpbmcgKiBqc29uKSBsaXN0OiBKU09OIG9iamVjdC5cbi0gYExpc3Qgb2YganNvbiBsaXN0OiBKU09OIGFycmF5LlxuLSBgVHVwbGUgb2YganNvbiBsaXN0OiBUdXBsZSAobm9uLXN0YW5kYXJkIGV4dGVuc2lvbiBvZiBKU09OKS5cblx0ICAgIFN5bnRheDogWyhcImFiY1wiLCAxMjMpXS5cbi0gYFZhcmlhbnQgb2YgKHN0cmluZyAqIGpzb24gb3B0aW9uKTogVmFyaWFudCAobm9uLXN0YW5kYXJkIGV4dGVuc2lvbiBvZiBKU09OKS5cblx0ICAgIFN5bnRheDogWzxcIkZvb1wiPl0gb3IgWzxcIkJhclwiOjEyMz5dLlxuKilcblxuKCpcbiAgTm90ZSB0byBhZHZlbnR1cmVyczogb2NhbWxkb2MgZG9lcyBub3Qgc3VwcG9ydCBpbmxpbmUgY29tbWVudHNcbiAgb24gZWFjaCBwb2x5bW9ycGhpYyB2YXJpYW50LCBhbmQgY3BwbyBkb2Vzbid0IGFsbG93IHRvIGNvbmNhdGVuYXRlXG4gIGNvbW1lbnRzLCBzbyBpdCB3b3VsZCBiZSBjb21wbGljYXRlZCB0byBkb2N1bWVudCBvbmx5IHRoZVxuICBjYXNlcyB0aGF0IGFyZSBwcmVzZXJ2ZWQgYnkgY3BwbyBpbiB0aGUgdHlwZSBkZWZpbml0aW9uLlxuKilcbiMgMSBcInNhZmUubWxcIlxubGV0IHJlYyB0b19iYXNpYyA6IHQgLT4gQmFzaWMudCA9IGZ1bmN0aW9uXG4gICAgYE51bGxcbiAgfCBgQm9vbCBfXG4gIHwgYEludCBfXG4gIHwgYEZsb2F0IF9cbiAgfCBgU3RyaW5nIF8gYXMgeCAtPiB4XG4gIHwgYEludGxpdCBzIC0+IGBTdHJpbmcgc1xuICB8IGBMaXN0IGxcbiAgfCBgVHVwbGUgbCAtPlxuICAgICAgYExpc3QgKExpc3QucmV2IChMaXN0LnJldl9tYXAgdG9fYmFzaWMgbCkpXG4gIHwgYEFzc29jIGwgLT5cbiAgICAgIGBBc3NvYyAoTGlzdC5yZXYgKExpc3QucmV2X21hcCAoZnVuIChrLCB2KSAtPiAoaywgdG9fYmFzaWMgdikpIGwpKVxuICB8IGBWYXJpYW50IChrLCBOb25lKSAtPiBgU3RyaW5nIGtcbiAgfCBgVmFyaWFudCAoaywgU29tZSB2KSAtPiBgTGlzdCBbIGBTdHJpbmcgazsgdG9fYmFzaWMgdiBdXG4jIDEgXCJ3cml0ZS5tbFwiXG4oKiBpbmNsdWRlZDogdHlwZS5tbCAqKVxuXG5sZXQgaGV4IG4gPVxuICBDaGFyLmNociAoXG4gICAgaWYgbiA8IDEwIHRoZW4gbiArIDQ4XG4gICAgZWxzZSBuICsgODdcbiAgKVxuXG5sZXQgd3JpdGVfc3BlY2lhbCBzcmMgc3RhcnQgc3RvcCBvYiBzdHIgPVxuICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChzdG9wIC0gIXN0YXJ0KTtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2Igc3RyO1xuICBzdGFydCA6PSBzdG9wICsgMVxuXG5sZXQgd3JpdGVfY29udHJvbF9jaGFyIHNyYyBzdGFydCBzdG9wIG9iIGMgPVxuICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChzdG9wIC0gIXN0YXJ0KTtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJcXFxcdTAwXCI7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAoaGV4IChDaGFyLmNvZGUgYyBsc3IgNCkpO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgKGhleCAoQ2hhci5jb2RlIGMgbGFuZCAweGYpKTtcbiAgc3RhcnQgOj0gc3RvcCArIDFcblxubGV0IGZpbmlzaF9zdHJpbmcgc3JjIHN0YXJ0IG9iID1cbiAgdHJ5XG4gICAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoU3RyaW5nLmxlbmd0aCBzcmMgLSAhc3RhcnQpXG4gIHdpdGggZXhjIC0+XG4gICAgUHJpbnRmLmVwcmludGYgXCJzcmM9JVMgc3RhcnQ9JWkgbGVuPSVpXFxuJSFcIlxuICAgICAgc3JjICFzdGFydCAoU3RyaW5nLmxlbmd0aCBzcmMgLSAhc3RhcnQpO1xuICAgIHJhaXNlIGV4Y1xuXG5sZXQgd3JpdGVfc3RyaW5nX2JvZHkgb2IgcyA9XG4gIGxldCBzdGFydCA9IHJlZiAwIGluXG4gIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgICAnXCInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXFxcXCJcIlxuICAgICAgfCAnXFxcXCcgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcXFxcXFwiXG4gICAgICB8ICdcXGInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXGJcIlxuICAgICAgfCAnXFwwMTInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXGZcIlxuICAgICAgfCAnXFxuJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxuXCJcbiAgICAgIHwgJ1xccicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcclwiXG4gICAgICB8ICdcXHQnIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXHRcIlxuICAgICAgfCAnXFx4MDAnLi4nXFx4MUYnXG4gICAgICB8ICdcXHg3RicgYXMgYyAtPiB3cml0ZV9jb250cm9sX2NoYXIgcyBzdGFydCBpIG9iIGNcbiAgICAgIHwgXyAtPiAoKVxuICBkb25lO1xuICBmaW5pc2hfc3RyaW5nIHMgc3RhcnQgb2JcblxubGV0IHdyaXRlX3N0cmluZyBvYiBzID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdcIic7XG4gIHdyaXRlX3N0cmluZ19ib2R5IG9iIHM7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXCInXG5cbmxldCBqc29uX3N0cmluZ19vZl9zdHJpbmcgcyA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMTAgaW5cbiAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5sZXQgdGVzdF9zdHJpbmcgKCkgPVxuICBsZXQgcyA9IEJ5dGVzLmNyZWF0ZSAyNTYgaW5cbiAgZm9yIGkgPSAwIHRvIDI1NSBkb1xuICAgIEJ5dGVzLnNldCBzIGkgKENoYXIuY2hyIGkpXG4gIGRvbmU7XG4gIGpzb25fc3RyaW5nX29mX3N0cmluZyAoQnl0ZXMudG9fc3RyaW5nIHMpXG5cblxubGV0IHdyaXRlX251bGwgb2IgKCkgPVxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIm51bGxcIlxuXG5sZXQgd3JpdGVfYm9vbCBvYiB4ID1cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggdGhlbiBcInRydWVcIiBlbHNlIFwiZmFsc2VcIilcblxuXG5sZXQgbWF4X2RpZ2l0cyA9XG4gIG1heFxuICAgIChTdHJpbmcubGVuZ3RoIChzdHJpbmdfb2ZfaW50IG1heF9pbnQpKVxuICAgIChTdHJpbmcubGVuZ3RoIChzdHJpbmdfb2ZfaW50IG1pbl9pbnQpKVxuXG5sZXQgZGVjIG4gPVxuICBDaGFyLmNociAobiArIDQ4KVxuXG5sZXQgcmVjIHdyaXRlX2RpZ2l0cyBzIHggPVxuICBpZiB4ID0gMCB0aGVuICgpXG4gIGVsc2VcbiAgICBsZXQgZCA9IHggbW9kIDEwIGluXG4gICAgd3JpdGVfZGlnaXRzIHMgKHggLyAxMCk7XG4gICAgQnVmZmVyLmFkZF9jaGFyIHMgKGRlYyAoYWJzIGQpKVxuXG5sZXQgd3JpdGVfaW50IG9iIHggPVxuICBpZiB4ID4gMCB0aGVuXG4gICAgd3JpdGVfZGlnaXRzIG9iIHhcbiAgZWxzZSBpZiB4IDwgMCB0aGVuIChcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJy0nO1xuICAgIHdyaXRlX2RpZ2l0cyBvYiB4XG4gIClcbiAgZWxzZVxuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnMCdcblxuXG5sZXQganNvbl9zdHJpbmdfb2ZfaW50IGkgPVxuICBzdHJpbmdfb2ZfaW50IGlcblxuXG4oKlxuICBFbnN1cmUgdGhhdCB0aGUgZmxvYXQgaXMgbm90IHByaW50ZWQgYXMgYW4gaW50LlxuICBUaGlzIGlzIG5vdCByZXF1aXJlZCBieSBKU09OLCBidXQgdXNlZnVsIGluIG9yZGVyIHRvIGd1YXJhbnRlZVxuICByZXZlcnNpYmlsaXR5LlxuKilcbmxldCBmbG9hdF9uZWVkc19wZXJpb2QgcyA9XG4gIHRyeVxuICAgIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgICAgJzAnLi4nOScgfCAnLScgLT4gKClcbiAgICAgICAgfCBfIC0+IHJhaXNlIEV4aXRcbiAgICBkb25lO1xuICAgIHRydWVcbiAgd2l0aCBFeGl0IC0+XG4gICAgZmFsc2VcblxuKCpcbiAgR3VhcmFudGVlcyB0aGF0IGEgc3VmZmljaWVudCBudW1iZXIgb2YgZGlnaXRzIGFyZSBwcmludGVkIGluIG9yZGVyIHRvIGFsbG93XG4gIHJldmVyc2liaWxpdHkuXG4qKVxubGV0IHdyaXRlX2Zsb2F0IG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiTmFOXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggPiAwLiB0aGVuIFwiSW5maW5pdHlcIiBlbHNlIFwiLUluZmluaXR5XCIpXG4gIHwgXyAtPlxuICAgICAgbGV0IHMxID0gUHJpbnRmLnNwcmludGYgXCIlLjE2Z1wiIHggaW5cbiAgICAgIGxldCBzID1cbiAgICAgICAgaWYgZmxvYXRfb2Zfc3RyaW5nIHMxID0geCB0aGVuIHMxXG4gICAgICAgIGVsc2UgUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHhcbiAgICAgIGluXG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICAgICAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxubGV0IHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIGxldCBvcGVuIFByaW50ZiBpblxuICBsZXQgcyA9XG4gICAgbWF0Y2ggc2lnbmlmaWNhbnRfZmlndXJlcyB3aXRoXG4gICAgICAgIDEgLT4gc3ByaW50ZiBcIiUuMWdcIiB4XG4gICAgICB8IDIgLT4gc3ByaW50ZiBcIiUuMmdcIiB4XG4gICAgICB8IDMgLT4gc3ByaW50ZiBcIiUuM2dcIiB4XG4gICAgICB8IDQgLT4gc3ByaW50ZiBcIiUuNGdcIiB4XG4gICAgICB8IDUgLT4gc3ByaW50ZiBcIiUuNWdcIiB4XG4gICAgICB8IDYgLT4gc3ByaW50ZiBcIiUuNmdcIiB4XG4gICAgICB8IDcgLT4gc3ByaW50ZiBcIiUuN2dcIiB4XG4gICAgICB8IDggLT4gc3ByaW50ZiBcIiUuOGdcIiB4XG4gICAgICB8IDkgLT4gc3ByaW50ZiBcIiUuOWdcIiB4XG4gICAgICB8IDEwIC0+IHNwcmludGYgXCIlLjEwZ1wiIHhcbiAgICAgIHwgMTEgLT4gc3ByaW50ZiBcIiUuMTFnXCIgeFxuICAgICAgfCAxMiAtPiBzcHJpbnRmIFwiJS4xMmdcIiB4XG4gICAgICB8IDEzIC0+IHNwcmludGYgXCIlLjEzZ1wiIHhcbiAgICAgIHwgMTQgLT4gc3ByaW50ZiBcIiUuMTRnXCIgeFxuICAgICAgfCAxNSAtPiBzcHJpbnRmIFwiJS4xNWdcIiB4XG4gICAgICB8IDE2IC0+IHNwcmludGYgXCIlLjE2Z1wiIHhcbiAgICAgIHwgXyAtPiBzcHJpbnRmIFwiJS4xN2dcIiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxuKCogdXNlZCBieSBhdGRnZW4gKilcbmxldCB3cml0ZV9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJOYU5cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCA+IDAuIHRoZW4gXCJJbmZpbml0eVwiIGVsc2UgXCItSW5maW5pdHlcIilcbiAgfCBfIC0+XG4gICAgICB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHhcblxubGV0IGpzb25fc3RyaW5nX29mX2Zsb2F0IHggPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDIwIGluXG4gIHdyaXRlX2Zsb2F0IG9iIHg7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5cbmxldCB3cml0ZV9zdGRfZmxvYXQgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAganNvbl9lcnJvciBcIk5hTiB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAganNvbl9lcnJvclxuICAgICAgICAoaWYgeCA+IDAuIHRoZW5cbiAgICAgICAgICAgXCJJbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgXCItSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiKVxuICB8IF8gLT5cbiAgICAgIGxldCBzMSA9IFByaW50Zi5zcHJpbnRmIFwiJS4xNmdcIiB4IGluXG4gICAgICBsZXQgcyA9XG4gICAgICAgIGlmIGZsb2F0X29mX3N0cmluZyBzMSA9IHggdGhlbiBzMVxuICAgICAgICBlbHNlIFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4XG4gICAgICBpblxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgICAgIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbigqIHVzZWQgYnkgYXRkZ2VuICopXG5sZXQgd3JpdGVfc3RkX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBqc29uX2Vycm9yIFwiTmFOIHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBqc29uX2Vycm9yXG4gICAgICAgIChpZiB4ID4gMC4gdGhlblxuICAgICAgICAgICBcIkluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBcIi1JbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCIpXG4gIHwgXyAtPlxuICAgICAgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4XG5cbmxldCBzdGRfanNvbl9zdHJpbmdfb2ZfZmxvYXQgeCA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMjAgaW5cbiAgd3JpdGVfc3RkX2Zsb2F0IG9iIHg7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5cbmxldCB0ZXN0X2Zsb2F0ICgpID1cbiAgbGV0IGwgPSBbIDAuOyAxLjsgLTEuIF0gaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IDIuICouIHggKy4gMS4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggLy4gc3FydCAyLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAqLiBzcXJ0IDMuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIGNvcyBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4ICouIDEuMjNlNTApIGwgaW5cbiAgbGV0IGwgPSBsIEAgWyBpbmZpbml0eTsgbmVnX2luZmluaXR5IF0gaW5cbiAgTGlzdC5pdGVyIChcbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHMgPSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeCBpblxuICAgICAgbGV0IHkgPSBmbG9hdF9vZl9zdHJpbmcgcyBpblxuICAgICAgUHJpbnRmLnByaW50ZiBcIiVnICVnICVTICVCXFxuXCIgeCB5IHMgKHggPSB5KVxuICApXG4gICAgbFxuXG4oKlxubGV0ICgpID0gdGVzdF9mbG9hdCAoKVxuKilcblxubGV0IHdyaXRlX2ludGxpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5sZXQgd3JpdGVfZmxvYXRsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xubGV0IHdyaXRlX3N0cmluZ2xpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5cbmxldCByZWMgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgeSA6OiBsIC0+XG4gICAgICBmX3NlcCB4O1xuICAgICAgZl9lbHQgeCB5O1xuICAgICAgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggbFxuXG5sZXQgaXRlcjIgZl9lbHQgZl9zZXAgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCB5IDo6IGwgLT5cbiAgICAgIGZfZWx0IHggeTtcbiAgICAgIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4IGxcblxubGV0IGZfc2VwIG9iID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICcsJ1xuXG5sZXQgcmVjIHdyaXRlX2pzb24gb2IgKHggOiB0KSA9XG4gIG1hdGNoIHggd2l0aFxuICAgICAgYE51bGwgLT4gd3JpdGVfbnVsbCBvYiAoKVxuICAgIHwgYEJvb2wgYiAtPiB3cml0ZV9ib29sIG9iIGJcbiAgICBcbiMgMjY0IFwid3JpdGUubWxcIlxuICAgIHwgYEludCBpIC0+IHdyaXRlX2ludCBvYiBpXG4gICAgXG4jIDI2NyBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnRsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDI3MCBcIndyaXRlLm1sXCJcbiAgICB8IGBGbG9hdCBmIC0+IHdyaXRlX2Zsb2F0IG9iIGZcbiAgICBcbiMgMjc2IFwid3JpdGUubWxcIlxuICAgIHwgYFN0cmluZyBzIC0+IHdyaXRlX3N0cmluZyBvYiBzXG4gICAgXG4jIDI4MSBcIndyaXRlLm1sXCJcbiAgICB8IGBBc3NvYyBsIC0+IHdyaXRlX2Fzc29jIG9iIGxcbiAgICB8IGBMaXN0IGwgLT4gd3JpdGVfbGlzdCBvYiBsXG4gICAgXG4jIDI4NCBcIndyaXRlLm1sXCJcbiAgICB8IGBUdXBsZSBsIC0+IHdyaXRlX3R1cGxlIG9iIGxcbiAgICBcbiMgMjg3IFwid3JpdGUubWxcIlxuICAgIHwgYFZhcmlhbnQgKHMsIG8pIC0+IHdyaXRlX3ZhcmlhbnQgb2IgcyBvXG5cbiMgMjkwIFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX2Fzc29jIG9iIGwgPVxuICBsZXQgZl9lbHQgb2IgKHMsIHgpID1cbiAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgIHdyaXRlX2pzb24gb2IgeFxuICBpblxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ3snO1xuICBpdGVyMiBmX2VsdCBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ30nO1xuXG5hbmQgd3JpdGVfbGlzdCBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cbiMgMzA2IFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3R1cGxlIG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJygnO1xuICBpdGVyMiB3cml0ZV9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnKSdcblxuIyAzMTMgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfdmFyaWFudCBvYiBzIG8gPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJzwnO1xuICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgKG1hdGNoIG8gd2l0aFxuICAgICAgIE5vbmUgLT4gKClcbiAgICAgfCBTb21lIHggLT5cbiAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgICAgICB3cml0ZV9qc29uIG9iIHhcbiAgKTtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICc+J1xuXG4jIDMyNSBcIndyaXRlLm1sXCJcbmxldCB3cml0ZV90ID0gd3JpdGVfanNvblxuXG5sZXQgcmVjIHdyaXRlX3N0ZF9qc29uIG9iICh4IDogdCkgPVxuICBtYXRjaCB4IHdpdGhcbiAgICAgIGBOdWxsIC0+IHdyaXRlX251bGwgb2IgKClcbiAgICB8IGBCb29sIGIgLT4gd3JpdGVfYm9vbCBvYiBiXG4gICAgXG4jIDMzMiBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnQgaSAtPiB3cml0ZV9pbnQgb2IgaVxuICAgIFxuIyAzMzUgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50bGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAzMzggXCJ3cml0ZS5tbFwiXG4gICAgfCBgRmxvYXQgZiAtPiB3cml0ZV9zdGRfZmxvYXQgb2IgZlxuICAgIFxuIyAzNDQgXCJ3cml0ZS5tbFwiXG4gICAgfCBgU3RyaW5nIHMgLT4gd3JpdGVfc3RyaW5nIG9iIHNcbiAgICBcbiMgMzQ5IFwid3JpdGUubWxcIlxuICAgIHwgYEFzc29jIGwgLT4gd3JpdGVfc3RkX2Fzc29jIG9iIGxcbiAgICB8IGBMaXN0IGwgLT4gd3JpdGVfc3RkX2xpc3Qgb2IgbFxuICAgIFxuIyAzNTIgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVHVwbGUgbCAtPiB3cml0ZV9zdGRfdHVwbGUgb2IgbFxuICAgIFxuIyAzNTUgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVmFyaWFudCAocywgbykgLT4gd3JpdGVfc3RkX3ZhcmlhbnQgb2IgcyBvXG5cbiMgMzU4IFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3N0ZF9hc3NvYyBvYiBsID1cbiAgbGV0IGZfZWx0IG9iIChzLCB4KSA9XG4gICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICB3cml0ZV9zdGRfanNvbiBvYiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAneyc7XG4gIGl0ZXIyIGZfZWx0IGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnfSc7XG5cbmFuZCB3cml0ZV9zdGRfbGlzdCBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfc3RkX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG5hbmQgd3JpdGVfc3RkX3R1cGxlIG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9zdGRfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cbiMgMzc5IFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3N0ZF92YXJpYW50IG9iIHMgbyA9XG4gIG1hdGNoIG8gd2l0aFxuICAgICAgTm9uZSAtPiB3cml0ZV9zdHJpbmcgb2Igc1xuICAgIHwgU29tZSB4IC0+XG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gICAgICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJywnO1xuICAgICAgICB3cml0ZV9zdGRfanNvbiBvYiB4O1xuICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cblxuIyAzOTEgXCJ3cml0ZS5tbFwiXG5sZXQgdG9fYnVmZmVyID8oc3VmID0gXCJcIikgPyhzdGQgPSBmYWxzZSkgb2IgeCA9XG4gIGlmIHN0ZCB0aGVuXG4gICAgd3JpdGVfc3RkX2pzb24gb2IgeFxuICBlbHNlXG4gICAgd3JpdGVfanNvbiBvYiB4O1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzdWZcblxubGV0IHRvX3N0cmluZyA/YnVmID8obGVuID0gMjU2KSA/KHN1ZiA9IFwiXCIpID9zdGQgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+XG4gICAgICAgICAgQnVmZmVyLmNsZWFyIG9iO1xuICAgICAgICAgIG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgb2IgaW5cbiAgQnVmZmVyLmNsZWFyIG9iO1xuICBzXG5cbmxldCB0b19jaGFubmVsID9idWYgPyhsZW49NDA5NikgPyhzdWYgPSBcIlwiKSA/c3RkIG9jIHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgQnVmZmVyLm91dHB1dF9idWZmZXIgb2Mgb2I7XG4gIEJ1ZmZlci5jbGVhciBvYlxuXG5sZXQgdG9fb3V0cHV0ID9idWYgPyhsZW49NDA5NikgPyhzdWYgPSBcIlwiKSA/c3RkIG91dCB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIG91dCNvdXRwdXQgKEJ1ZmZlci5jb250ZW50cyBvYikgMCAoQnVmZmVyLmxlbmd0aCBvYik7XG4gIEJ1ZmZlci5jbGVhciBvYlxuXG5sZXQgdG9fZmlsZSA/bGVuID9zdGQgPyhzdWYgPSBcIlxcblwiKSBmaWxlIHggPVxuICBsZXQgb2MgPSBvcGVuX291dCBmaWxlIGluXG4gIHRyeVxuICAgIHRvX2NoYW5uZWwgP2xlbiB+c3VmID9zdGQgb2MgeDtcbiAgICBjbG9zZV9vdXQgb2NcbiAgd2l0aCBlIC0+XG4gICAgY2xvc2Vfb3V0X25vZXJyIG9jO1xuICAgIHJhaXNlIGVcblxubGV0IHNlcV90b19idWZmZXIgPyhzdWYgPSBcIlxcblwiKSA/c3RkIG9iIHN0ID1cbiAgU2VxLml0ZXIgKHRvX2J1ZmZlciB+c3VmID9zdGQgb2IpIHN0XG5cbmxldCBzZXFfdG9fc3RyaW5nID9idWYgPyhsZW4gPSAyNTYpID8oc3VmID0gXCJcXG5cIikgP3N0ZCBzdCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+XG4gICAgICAgICAgQnVmZmVyLmNsZWFyIG9iO1xuICAgICAgICAgIG9iXG4gIGluXG4gIHNlcV90b19idWZmZXIgfnN1ZiA/c3RkIG9iIHN0O1xuICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBvYiBpblxuICBCdWZmZXIuY2xlYXIgb2I7XG4gIHNcblxubGV0IHNlcV90b19jaGFubmVsID9idWYgPyhsZW49MjA5NikgPyhzdWYgPSBcIlxcblwiKSA/c3RkIG9jIHNlcSA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgU2VxLml0ZXIgKGZ1biBqc29uIC0+XG4gICAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiBqc29uO1xuICAgIEJ1ZmZlci5vdXRwdXRfYnVmZmVyIG9jIG9iO1xuICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgKSBzZXFcblxubGV0IHNlcV90b19maWxlID9sZW4gPyhzdWYgPSBcIlxcblwiKSA/c3RkIGZpbGUgc3QgPVxuICBsZXQgb2MgPSBvcGVuX291dCBmaWxlIGluXG4gIHRyeVxuICAgIHNlcV90b19jaGFubmVsID9sZW4gfnN1ZiA/c3RkIG9jIHN0O1xuICAgIGNsb3NlX291dCBvY1xuICB3aXRoIGUgLT5cbiAgICBjbG9zZV9vdXRfbm9lcnIgb2M7XG4gICAgcmFpc2UgZVxuXG5cbmxldCByZWMgc29ydCA9IGZ1bmN0aW9uXG4gIHwgYEFzc29jIGwgLT5cbiAgICAgIGxldCBsID0gTGlzdC5yZXYgKExpc3QucmV2X21hcCAoZnVuIChrLCB2KSAtPiAoaywgc29ydCB2KSkgbCkgaW5cbiAgICAgIGBBc3NvYyAoTGlzdC5zdGFibGVfc29ydCAoZnVuIChhLCBfKSAoYiwgXykgLT4gU3RyaW5nLmNvbXBhcmUgYSBiKSBsKVxuICB8IGBMaXN0IGwgLT5cbiAgICAgIGBMaXN0IChMaXN0LnJldiAoTGlzdC5yZXZfbWFwIHNvcnQgbCkpXG4gIFxuIyA0ODUgXCJ3cml0ZS5tbFwiXG4gIHwgYFR1cGxlIGwgLT5cbiAgICAgIGBUdXBsZSAoTGlzdC5yZXYgKExpc3QucmV2X21hcCBzb3J0IGwpKVxuICBcbiMgNDg5IFwid3JpdGUubWxcIlxuICB8IGBWYXJpYW50IChrLCBTb21lIHYpIGFzIHggLT5cbiAgICAgIGxldCB2JyA9IHNvcnQgdiBpblxuICAgICAgaWYgdiA9PSB2JyB0aGVuIHhcbiAgICAgIGVsc2VcbiAgICAgICAgYFZhcmlhbnQgKGssIFNvbWUgdicpXG4gIFxuIyA0OTUgXCJ3cml0ZS5tbFwiXG4gIHwgeCAtPiB4XG4jIDYyIFwieW9qc29uLmNwcG8ubWxcIlxubW9kdWxlIFByZXR0eSA9XG5zdHJ1Y3RcbiMgMSBcInByZXR0eS5tbFwiXG4oKlxuICAgUHJldHR5LXByaW50IEpTT04gZGF0YSBpbiBhbiBhdHRlbXB0IHRvIG1heGltaXplIHJlYWRhYmlsaXR5LlxuXG4gICAxLiBXaGF0IGZpdHMgb24gb25lIGxpbmUgc3RheXMgb24gb25lIGxpbmUuXG4gICAyLiBXaGF0IGRvZXNuJ3QgZml0IG9uIG9uZSBsaW5lIGdldHMgcHJpbnRlZCBtb3JlIHZlcnRpY2FsbHkgc28gYXMgdG8gbm90XG4gICAgICBleGNlZWQgYSByZWFzb25hYmxlIHBhZ2Ugd2lkdGgsIGlmIHBvc3NpYmxlLlxuXG4gICBBcnJheXMgY29udGFpbmluZyBvbmx5IHNpbXBsZSBlbGVtZW50cyAoXCJhdG9tc1wiKSBhcmUgcHJldHR5LXByaW50ZWQgd2l0aFxuICAgZW5kLW9mLWxpbmUgd3JhcHBpbmcgbGlrZSBvcmRpbmFyeSB0ZXh0OlxuXG4gICAgIFtcbiAgICAgICAgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsXG4gICAgICAgIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiXG4gICAgIF1cblxuICAgT3RoZXIgYXJyYXlzIGFyZSBwcmludGVkIGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmdcbiAgIG9uIHdoZXRoZXIgdGhleSBmaXQgb24gYSBzaW5nbGUgbGluZTpcblxuICAgICBbIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSwgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LCB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0gXVxuXG4gICBvclxuXG4gICAgIFtcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH1cbiAgICAgXVxuKilcblxubGV0IHBwX2xpc3Qgc2VwIHBweCBvdXQgbCA9XG4gIGxldCBwcF9zZXAgb3V0ICgpID0gRm9ybWF0LmZwcmludGYgb3V0IFwiJXNAIFwiIHNlcCBpblxuICBGb3JtYXQucHBfcHJpbnRfbGlzdCB+cHBfc2VwIHBweCBvdXQgbFxuXG5sZXQgaXNfYXRvbSAoeDogWz4gdF0pID1cbiAgbWF0Y2ggeCB3aXRoXG4gIHwgYE51bGxcbiAgfCBgQm9vbCBfXG4gIHwgYEludCBfXG4gIHwgYEZsb2F0IF9cbiAgfCBgU3RyaW5nIF9cbiAgfCBgSW50bGl0IF9cbiAgfCBgRmxvYXRsaXQgX1xuICB8IGBTdHJpbmdsaXQgX1xuICB8IGBMaXN0IFtdXG4gIHwgYEFzc29jIFtdXG4gIHwgYFR1cGxlIFtdXG4gIHwgYFZhcmlhbnQgKF8sIE5vbmUpIC0+IHRydWVcbiAgfCBgTGlzdCBfXG4gIHwgYEFzc29jIF9cbiAgfCBgVHVwbGUgX1xuICB8IGBWYXJpYW50IChfLCBTb21lIF8pIC0+IGZhbHNlXG5cbmxldCBpc19hdG9tX2xpc3QgbCA9XG4gIExpc3QuZm9yX2FsbCBpc19hdG9tIGxcblxuKCpcbiAgIGluc2lkZV9ib3g6IGluZGljYXRlcyB0aGF0IHdlJ3JlIGFscmVhZHkgd2l0aGluIGEgYm94IHRoYXQgaW1wb3Nlc1xuICAgYSBjZXJ0YWluIHN0eWxlIGFuZCB3ZSBzaG91bGRuJ3QgY3JlYXRlIGEgbmV3IG9uZS4gVGhpcyBpcyB1c2VkIGZvclxuICAgcHJpbnRpbmcgZmllbGQgdmFsdWVzIGxpa2UgdGhpczpcblxuICAgICBmb286IFtcbiAgICAgICBiYXJcbiAgICAgXVxuXG4gICByYXRoZXIgdGhhbiBzb21ldGhpbmcgZWxzZSBsaWtlXG5cbiAgICAgZm9vOlxuICAgICAgIFtcbiAgICAgICAgIGJhclxuICAgICAgIF1cbiopXG5sZXQgcmVjIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgKG91dDpGb3JtYXQuZm9ybWF0dGVyKSAoeDp0KSA6IHVuaXQgPVxuICBtYXRjaCB4IHdpdGhcbiAgICB8IGBOdWxsIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwibnVsbFwiXG4gICAgfCBgQm9vbCB4IC0+IEZvcm1hdC5wcF9wcmludF9ib29sIG91dCB4XG4gICAgXG4jIDc4IFwicHJldHR5Lm1sXCJcbiAgICB8IGBJbnQgeCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCAoanNvbl9zdHJpbmdfb2ZfaW50IHgpXG4gICAgXG4jIDgxIFwicHJldHR5Lm1sXCJcbiAgICB8IGBGbG9hdCB4IC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBpZiBzdGQgdGhlbiBzdGRfanNvbl9zdHJpbmdfb2ZfZmxvYXQgeFxuICAgICAgICAgIGVsc2UganNvbl9zdHJpbmdfb2ZfZmxvYXQgeFxuICAgICAgICBpblxuICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBzXG4gICAgXG4jIDg5IFwicHJldHR5Lm1sXCJcbiAgICB8IGBTdHJpbmcgcyAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCAoanNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMpXG4gICAgXG4jIDkyIFwicHJldHR5Lm1sXCJcbiAgICB8IGBJbnRsaXQgcyAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBzXG4gICAgXG4jIDEwMCBcInByZXR0eS5tbFwiXG4gICAgfCBgTGlzdCBbXSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIltdXCJcbiAgICB8IGBMaXN0IGwgLT5cbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPlwiO1xuICAgICAgaWYgaXNfYXRvbV9saXN0IGwgdGhlblxuICAgICAgICAoKiB1c2UgbGluZSB3cmFwcGluZyBsaWtlIHdlIHdvdWxkIGRvIGZvciBhIHBhcmFncmFwaCBvZiB0ZXh0ICopXG4gICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIltAOzwxIDA+QFs8aG92PiVhQF1AOzwxIC0yPl1cIlxuICAgICAgICAgIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbFxuICAgICAgZWxzZVxuICAgICAgICAoKiBwcmludCB0aGUgZWxlbWVudHMgaG9yaXpvbnRhbGx5IGlmIHRoZXkgZml0IG9uIHRoZSBsaW5lLFxuICAgICAgICAgICBvdGhlcndpc2UgcHJpbnQgdGhlbSBpbiBhIGNvbHVtbiAqKVxuICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJbQDs8MSAwPkBbPGh2PiVhQF1AOzwxIC0yPl1cIlxuICAgICAgICAgIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbDtcbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcbiAgICB8IGBBc3NvYyBbXSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcInt9XCJcbiAgICB8IGBBc3NvYyBsIC0+XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj5cIjtcbiAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIntAOzwxIDA+JWFAOzwxIC0yPn1cIiAocHBfbGlzdCBcIixcIiAoZm9ybWF0X2ZpZWxkIHN0ZCkpIGw7XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG4gICAgXG4jIDExOSBcInByZXR0eS5tbFwiXG4gICAgfCBgVHVwbGUgbCAtPlxuICAgICAgICBpZiBzdGQgdGhlblxuICAgICAgICAgIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgb3V0IChgTGlzdCBsKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgaWYgbCA9IFtdIHRoZW5cbiAgICAgICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwiKClcIlxuICAgICAgICAgIGVsc2UgKFxuICAgICAgICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxob3YyPlwiO1xuICAgICAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiKEAsJWFAOzwwIC0yPilcIiAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGw7XG4gICAgICAgICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG4gICAgICAgICAgKVxuICAgIFxuIyAxMzIgXCJwcmV0dHkubWxcIlxuICAgIHwgYFZhcmlhbnQgKHMsIE5vbmUpIC0+XG4gICAgICAgIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgXG4jIDEzNSBcInByZXR0eS5tbFwiXG4gICAgICAgICAgbGV0IHJlcHJlc2VudGF0aW9uID0gYFN0cmluZyBzIGluXG4gICAgICAgICAgXG4jIDEzOSBcInByZXR0eS5tbFwiXG4gICAgICAgICAgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCBvdXQgcmVwcmVzZW50YXRpb25cbiAgICAgICAgZWxzZVxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIjwlcz5cIiAoanNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMpXG5cbiAgICB8IGBWYXJpYW50IChzLCBTb21lIHgpIC0+XG4gICAgICAgIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgXG4jIDE0NiBcInByZXR0eS5tbFwiXG4gICAgICAgICAgbGV0IHJlcHJlc2VudGF0aW9uID0gYFN0cmluZyBzIGluXG4gICAgICAgICAgXG4jIDE1MCBcInByZXR0eS5tbFwiXG4gICAgICAgICAgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCBvdXQgKGBMaXN0IFsgcmVwcmVzZW50YXRpb247IHggXSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxldCBvcCA9IGpzb25fc3RyaW5nX29mX3N0cmluZyBzIGluXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiPEBbPGh2Mj4lczogJWFAXT5cIiBvcCAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSB4XG5cbiMgMTU2IFwicHJldHR5Lm1sXCJcbmFuZCBmb3JtYXRfZmllbGQgc3RkIG91dCAobmFtZSwgeCkgPVxuICBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+JXM6ICVhQF1cIiAoanNvbl9zdHJpbmdfb2Zfc3RyaW5nIG5hbWUpIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpIHhcblxubGV0IHBwID8oc3RkID0gZmFsc2UpIG91dCB4ID1cbiAgRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPiVhQF1cIiAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSAoeCA6PiB0KVxuXG5sZXQgdG9fc3RyaW5nID9zdGQgeCA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCIgKHBwID9zdGQpIHhcblxubGV0IHRvX2NoYW5uZWwgP3N0ZCBvYyB4ID1cbiAgbGV0IGZtdCA9IEZvcm1hdC5mb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgb2MgaW5cbiAgRm9ybWF0LmZwcmludGYgZm10IFwiJWFAP1wiIChwcCA/c3RkKSB4XG4jIDY1IFwieW9qc29uLmNwcG8ubWxcIlxuZW5kXG4jIDEgXCJtb25vbW9ycGhpYy5tbFwiXG5sZXQgcmVjIHBwIGZtdCA9XG4gIGZ1bmN0aW9uXG4gIHwgYE51bGwgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCJgTnVsbFwiXG4gIHwgYEJvb2wgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBCb29sIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJUJcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA5IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBJbnQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBJbnQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlZFwiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDE1IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBJbnRsaXQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBJbnRsaXQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDIxIFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBGbG9hdCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEZsb2F0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJUZcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAzMyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgU3RyaW5nIHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgU3RyaW5nIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA0NCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgQXNzb2MgeHMgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgQXNzb2MgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCAoa2V5LCB2YWx1ZSkgLT5cbiAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIoQFtcIjtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIGtleTtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIsQCBcIjtcbiAgICAgICAgICBwcCBmbXQgdmFsdWU7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCI7XG4gICAgICAgICAgdHJ1ZSkgZmFsc2UgeHMpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgfCBgTGlzdCB4cyAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBMaXN0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgeCAtPlxuICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgIHBwIGZtdCB4O1xuICAgICAgICAgIHRydWUpIGZhbHNlIHhzKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA3MSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgVHVwbGUgdHVwIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFR1cGxlIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgZSAtPlxuICAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgIHBwIGZtdCBlO1xuICAgICAgICAgICB0cnVlKSBmYWxzZSB0dXApO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDg0IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBWYXJpYW50IChuYW1lLCB2YWx1ZSkgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgVmFyaWFudCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIihAW1wiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgbmFtZTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIsQCBcIjtcbiAgICAobWF0Y2ggdmFsdWUgd2l0aFxuICAgICAgfCBOb25lIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiTm9uZVwiXG4gICAgICB8IFNvbWUgeCAtPlxuICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcIihTb21lIFwiO1xuICAgICAgICBwcCBmbXQgeDtcbiAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCIpXCIpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG5cbiMgOTkgXCJtb25vbW9ycGhpYy5tbFwiXG5sZXQgc2hvdyB4ID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIiBwcCB4XG5cbmxldCByZWMgZXF1YWwgYSBiID1cbiAgbWF0Y2ggYSwgYiB3aXRoXG4gIHwgYE51bGwsIGBOdWxsIC0+IHRydWVcbiAgfCBgQm9vbCBhLCBgQm9vbCBiIC0+IGEgPSBiXG4gIFxuIyAxMDcgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEludCBhLCBgSW50IGIgLT4gYSA9IGJcbiAgICBcbiMgMTEwIFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEludGxpdCBhLCBgSW50bGl0IGIgLT4gYSA9IGJcbiAgICBcbiMgMTEzIFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEZsb2F0IGEsIGBGbG9hdCBiIC0+IGEgPSBiXG4gICAgXG4jIDExOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBTdHJpbmcgYSwgYFN0cmluZyBiIC0+IGEgPSBiXG4gICAgXG4jIDEyNCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBBc3NvYyB4cywgYEFzc29jIHlzIC0+XG4gICAgICBsZXQgY29tcGFyZV9rZXlzID0gZnVuIChrZXksIF8pIChrZXknLCBfKSAtPiBTdHJpbmcuY29tcGFyZSBrZXkga2V5JyBpblxuICAgICAgbGV0IHhzID0gTGlzdC5zdGFibGVfc29ydCBjb21wYXJlX2tleXMgeHMgaW5cbiAgICAgIGxldCB5cyA9IExpc3Quc3RhYmxlX3NvcnQgY29tcGFyZV9rZXlzIHlzIGluXG4gICAgICAobWF0Y2ggTGlzdC5mb3JfYWxsMiAoZnVuIChrZXksIHZhbHVlKSAoa2V5JywgdmFsdWUnKSAtPlxuICAgICAgICBtYXRjaCBrZXkgPSBrZXknIHdpdGhcbiAgICAgICAgfCBmYWxzZSAtPiBmYWxzZVxuICAgICAgICB8IHRydWUgLT4gZXF1YWwgdmFsdWUgdmFsdWUnKSB4cyB5cyB3aXRoXG4gICAgICB8IHJlc3VsdCAtPiByZXN1bHRcbiAgICAgIHwgZXhjZXB0aW9uIEludmFsaWRfYXJndW1lbnQgXyAtPlxuICAgICAgICAoKiB0aGUgbGlzdHMgd2VyZSBvZiBkaWZmZXJlbnQgbGVuZ3RocywgdGh1cyB1bmVxdWFsICopXG4gICAgICAgIGZhbHNlKVxuICAgIFxuIyAxMzcgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgVHVwbGUgeHMsIGBUdXBsZSB5c1xuICAgIFxuIyAxMzkgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgTGlzdCB4cywgYExpc3QgeXMgLT5cbiAgICAgIChtYXRjaCBMaXN0LmZvcl9hbGwyIGVxdWFsIHhzIHlzIHdpdGhcbiAgICAgIHwgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgfCBleGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCBfIC0+XG4gICAgICAgICgqIHRoZSBsaXN0cyB3ZXJlIG9mIGRpZmZlcmVudCBsZW5ndGhzLCB0aHVzIHVuZXF1YWwgKilcbiAgICAgICAgZmFsc2UpXG4gICAgXG4jIDE0NiBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBWYXJpYW50IChuYW1lLCB2YWx1ZSksIGBWYXJpYW50IChuYW1lJywgdmFsdWUnKSAtPlxuICAgICAgKG1hdGNoIG5hbWUgPSBuYW1lJyB3aXRoXG4gICAgICB8IGZhbHNlIC0+IGZhbHNlXG4gICAgICB8IHRydWUgLT5cbiAgICAgICAgbWF0Y2ggdmFsdWUsIHZhbHVlJyB3aXRoXG4gICAgICAgIHwgTm9uZSwgTm9uZSAtPiB0cnVlXG4gICAgICAgIHwgU29tZSB4LCBTb21lIHkgLT4gZXF1YWwgeCB5XG4gICAgICAgIHwgXyAtPiBmYWxzZSlcbiAgICBcbiMgMTU1IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgXyAtPiBmYWxzZVxuXG4jIDIgXCJ3cml0ZTIubWxcIlxubGV0IHByZXR0eV9wcmludCA/c3RkIG91dCB4ID1cbiAgUHJldHR5LnBwID9zdGQgb3V0IHhcblxubGV0IHByZXR0eV90b19zdHJpbmcgP3N0ZCB4ID1cbiAgUHJldHR5LnRvX3N0cmluZyA/c3RkIHhcblxubGV0IHByZXR0eV90b19jaGFubmVsID9zdGQgb2MgeCA9XG4gIFByZXR0eS50b19jaGFubmVsID9zdGQgb2MgeFxuXG4jIDEgXCJsaWIvcmVhZC5tbGxcIlxuIFxuICBcbiMgMiBcImxpYi9yZWFkLm1sbFwiXG4gIG1vZHVsZSBMZXhpbmcgPVxuICAgICgqXG4gICAgICBXZSBvdmVycmlkZSBMZXhpbmcuZW5naW5lIGluIG9yZGVyIHRvIGF2b2lkIGNyZWF0aW5nIGEgbmV3IHBvc2l0aW9uXG4gICAgICByZWNvcmQgZWFjaCB0aW1lIGEgcnVsZSBpcyBtYXRjaGVkLlxuICAgICAgVGhpcyByZWR1Y2VzIHRvdGFsIHBhcnNpbmcgdGltZSBieSBhYm91dCAzMSUuXG4gICAgKilcbiAgc3RydWN0XG4gICAgaW5jbHVkZSBMZXhpbmdcblxuICAgIGV4dGVybmFsIGNfZW5naW5lIDogbGV4X3RhYmxlcyAtPiBpbnQgLT4gbGV4YnVmIC0+IGludCA9IFwiY2FtbF9sZXhfZW5naW5lXCJcblxuICAgIGxldCBlbmdpbmUgdGJsIHN0YXRlIGJ1ZiA9XG4gICAgICBsZXQgcmVzdWx0ID0gY19lbmdpbmUgdGJsIHN0YXRlIGJ1ZiBpblxuICAgICAgKCpcbiAgICAgIGlmIHJlc3VsdCA+PSAwIHRoZW4gYmVnaW5cbiAgICAgICAgYnVmLmxleF9zdGFydF9wIDwtIGJ1Zi5sZXhfY3Vycl9wO1xuICAgICAgICBidWYubGV4X2N1cnJfcCA8LSB7YnVmLmxleF9jdXJyX3BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggcG9zX2NudW0gPSBidWYubGV4X2Fic19wb3MgKyBidWYubGV4X2N1cnJfcG9zfTtcbiAgICAgIGVuZDtcbiAgICAgICopXG4gICAgICByZXN1bHRcbiAgZW5kXG5cbiAgb3BlbiBQcmludGZcbiAgb3BlbiBMZXhpbmdcblxuICAoKiBzZWUgZGVzY3JpcHRpb24gaW4gY29tbW9uLm1saSAqKVxuICB0eXBlIGxleGVyX3N0YXRlID0gTGV4ZXJfc3RhdGUudCA9IHtcbiAgICBidWYgOiBCdWZmZXIudDtcbiAgICBtdXRhYmxlIGxudW0gOiBpbnQ7XG4gICAgbXV0YWJsZSBib2wgOiBpbnQ7XG4gICAgbXV0YWJsZSBmbmFtZSA6IHN0cmluZyBvcHRpb247XG4gIH1cblxuICBsZXQgZGVjIGMgPVxuICAgIENoYXIuY29kZSBjIC0gNDhcblxuICBsZXQgaGV4IGMgPVxuICAgIG1hdGNoIGMgd2l0aFxuICAgICAgICAnMCcuLic5JyAtPiBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJzAnXG4gICAgICB8ICdhJy4uJ2YnIC0+IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnYScgKyAxMFxuICAgICAgfCAnQScuLidGJyAtPiBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ0EnICsgMTBcbiAgICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuICBsZXQgY3VzdG9tX2Vycm9yIGRlc2NyIHYgbGV4YnVmID1cbiAgICBsZXQgb2ZmcyA9IGxleGJ1Zi5sZXhfYWJzX3BvcyAtIDEgaW5cbiAgICBsZXQgYm9sID0gdi5ib2wgaW5cbiAgICBsZXQgcG9zMSA9IG9mZnMgKyBsZXhidWYubGV4X3N0YXJ0X3BvcyAtIGJvbCAtIDEgaW5cbiAgICBsZXQgcG9zMiA9IG1heCBwb3MxIChvZmZzICsgbGV4YnVmLmxleF9jdXJyX3BvcyAtIGJvbCkgaW5cbiAgICBsZXQgZmlsZV9saW5lID1cbiAgICAgIG1hdGNoIHYuZm5hbWUgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gXCJMaW5lXCJcbiAgICAgICAgfCBTb21lIHMgLT5cbiAgICAgICAgICAgIHNwcmludGYgXCJGaWxlICVzLCBsaW5lXCIgc1xuICAgIGluXG4gICAgbGV0IGJ5dGVzID1cbiAgICAgIGlmIHBvczEgPSBwb3MyIHRoZW5cbiAgICAgICAgc3ByaW50ZiBcImJ5dGUgJWlcIiAocG9zMSsxKVxuICAgICAgZWxzZVxuICAgICAgICBzcHJpbnRmIFwiYnl0ZXMgJWktJWlcIiAocG9zMSsxKSAocG9zMisxKVxuICAgIGluXG4gICAgbGV0IG1zZyA9IHNwcmludGYgXCIlcyAlaSwgJXM6XFxuJXNcIiBmaWxlX2xpbmUgdi5sbnVtIGJ5dGVzIGRlc2NyIGluXG4gICAganNvbl9lcnJvciBtc2dcblxuXG4gIGxldCBsZXhlcl9lcnJvciBkZXNjciB2IGxleGJ1ZiA9XG4gICAgY3VzdG9tX2Vycm9yXG4gICAgICAoc3ByaW50ZiBcIiVzICclcydcIiBkZXNjciAoTGV4aW5nLmxleGVtZSBsZXhidWYpKVxuICAgICAgdiBsZXhidWZcblxuICBsZXQgcmVhZF9qdW5rID0gcmVmIChmdW4gXyAtPiBhc3NlcnQgZmFsc2UpXG5cbiAgbGV0IGxvbmdfZXJyb3IgZGVzY3IgdiBsZXhidWYgPVxuICAgIGxldCBqdW5rID0gTGV4aW5nLmxleGVtZSBsZXhidWYgaW5cbiAgICBsZXQgZXh0cmFfanVuayA9ICFyZWFkX2p1bmsgbGV4YnVmIGluXG4gICAgY3VzdG9tX2Vycm9yXG4gICAgICAoc3ByaW50ZiBcIiVzICclcyVzJ1wiIGRlc2NyIGp1bmsgZXh0cmFfanVuaylcbiAgICAgIHYgbGV4YnVmXG5cbiAgbGV0IG1pbjEwID0gbWluX2ludCAvIDEwIC0gKGlmIG1pbl9pbnQgbW9kIDEwID0gMCB0aGVuIDAgZWxzZSAxKVxuICBsZXQgbWF4MTAgPSBtYXhfaW50IC8gMTAgKyAoaWYgbWF4X2ludCBtb2QgMTAgPSAwIHRoZW4gMCBlbHNlIDEpXG5cbiAgZXhjZXB0aW9uIEludF9vdmVyZmxvd1xuXG4gIGxldCBleHRyYWN0X3Bvc2l0aXZlX2ludCBsZXhidWYgPVxuICAgIGxldCBzdGFydCA9IGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgbGV0IHN0b3AgPSBsZXhidWYubGV4X2N1cnJfcG9zIGluXG4gICAgbGV0IHMgPSBsZXhidWYubGV4X2J1ZmZlciBpblxuICAgIGxldCBuID0gcmVmIDAgaW5cbiAgICBmb3IgaSA9IHN0YXJ0IHRvIHN0b3AgLSAxIGRvXG4gICAgICBpZiAhbiA+PSBtYXgxMCB0aGVuXG4gICAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgICAgZWxzZVxuICAgICAgICBuIDo9IDEwICogIW4gKyBkZWMgKEJ5dGVzLmdldCBzIGkpXG4gICAgZG9uZTtcbiAgICBpZiAhbiA8IDAgdGhlblxuICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgZWxzZVxuICAgICAgIW5cblxuICBsZXQgbWFrZV9wb3NpdGl2ZV9pbnQgdiBsZXhidWYgPVxuICAgICAgXG4jIDEwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICB0cnkgYEludCAoZXh0cmFjdF9wb3NpdGl2ZV9pbnQgbGV4YnVmKVxuICAgICAgd2l0aCBJbnRfb3ZlcmZsb3cgLT5cbiAgICAgICAgXG4jIDEwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgIGBJbnRsaXQgKGxleGVtZSBsZXhidWYpXG5cbiAgXG4jIDExMyBcImxpYi9yZWFkLm1sbFwiXG4gIGxldCBleHRyYWN0X25lZ2F0aXZlX2ludCBsZXhidWYgPVxuICAgIGxldCBzdGFydCA9IGxleGJ1Zi5sZXhfc3RhcnRfcG9zICsgMSBpblxuICAgIGxldCBzdG9wID0gbGV4YnVmLmxleF9jdXJyX3BvcyBpblxuICAgIGxldCBzID0gbGV4YnVmLmxleF9idWZmZXIgaW5cbiAgICBsZXQgbiA9IHJlZiAwIGluXG4gICAgZm9yIGkgPSBzdGFydCB0byBzdG9wIC0gMSBkb1xuICAgICAgaWYgIW4gPD0gbWluMTAgdGhlblxuICAgICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICAgIGVsc2VcbiAgICAgICAgbiA6PSAxMCAqICFuIC0gZGVjIChCeXRlcy5nZXQgcyBpKVxuICAgIGRvbmU7XG4gICAgaWYgIW4gPiAwIHRoZW5cbiAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgIGVsc2VcbiAgICAgICFuXG5cbiAgbGV0IG1ha2VfbmVnYXRpdmVfaW50IHYgbGV4YnVmID1cbiAgICAgIFxuIyAxMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgdHJ5IGBJbnQgKGV4dHJhY3RfbmVnYXRpdmVfaW50IGxleGJ1ZilcbiAgICAgIHdpdGggSW50X292ZXJmbG93IC0+XG4gICAgICAgIFxuIyAxMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICBgSW50bGl0IChsZXhlbWUgbGV4YnVmKVxuXG5cbiAgXG4jIDE0MSBcImxpYi9yZWFkLm1sbFwiXG4gIGxldCBzZXRfZmlsZV9uYW1lIHYgZm5hbWUgPVxuICAgIHYuZm5hbWUgPC0gZm5hbWVcblxuICBsZXQgbmV3bGluZSB2IGxleGJ1ZiA9XG4gICAgdi5sbnVtIDwtIHYubG51bSArIDE7XG4gICAgdi5ib2wgPC0gbGV4YnVmLmxleF9hYnNfcG9zICsgbGV4YnVmLmxleF9jdXJyX3Bvc1xuXG4gIGxldCBhZGRfbGV4ZW1lIGJ1ZiBsZXhidWYgPVxuICAgIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBCdWZmZXIuYWRkX3N1YmJ5dGVzIGJ1ZiBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBsZW5cblxuICBsZXQgbWFwX2xleGVtZSBmIGxleGJ1ZiA9XG4gICAgbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIGYgKEJ5dGVzLnN1Yl9zdHJpbmcgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgbGVuKSAwIGxlblxuXG4gIHR5cGUgdmFyaWFudF9raW5kID0gWyBgRWRneV9icmFja2V0IHwgYFNxdWFyZV9icmFja2V0IHwgYERvdWJsZV9xdW90ZSBdXG4gIHR5cGUgdHVwbGVfa2luZCA9IFsgYFBhcmVudGhlc2lzIHwgYFNxdWFyZV9icmFja2V0IF1cblxuXG4jIDE2MSBcImxpYi9yZWFkLm1sXCJcbiMgMTYxIFwibGliL3JlYWQubWxcIlxubGV0IF9fb2NhbWxfbGV4X3RhYmxlcyA9IHtcbiAgTGV4aW5nLmxleF9iYXNlID1cbiAgIFwiXFwwMDBcXDAwMFxcMjM2XFwyNTVcXDIzN1xcMjU1XFwwMDNcXDAwMFxcMjM5XFwyNTVcXDAxNlxcMDAwXFwyNDJcXDI1NVxcMjQzXFwyNTVcXFxuICAgIFxcMjQ0XFwyNTVcXDI0NVxcMjU1XFwwMDBcXDAwMFxcMDMxXFwwMDBcXDI0OVxcMjU1XFwwODVcXDAwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMVxcMDAwXFwwMDJcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMjU0XFwyNTVcXDAwMVxcMDAwXFwwMDRcXDAwMFxcMjUzXFwyNTVcXDAxMVxcMDAwXFwyNTJcXDI1NVxcMDAzXFwwMDBcXFxuICAgIFxcMDAxXFwwMDBcXDAwM1xcMDAwXFwwMDJcXDAwMFxcMDAzXFwwMDBcXDAwMFxcMDAwXFwyNTFcXDI1NVxcMDIxXFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDAxMFxcMDAwXFwwMjJcXDAwMFxcMDIwXFwwMDBcXDAxNlxcMDAwXFwwMjJcXDAwMFxcMDEyXFwwMDBcXDAwOFxcMDAwXFwyNTBcXDI1NVxcXG4gICAgXFwxMTlcXDAwMFxcMTI5XFwwMDBcXDEzOVxcMDAwXFwxNjFcXDAwMFxcMTcxXFwwMDBcXDE4MVxcMDAwXFwxOTNcXDAwMFxcMjA5XFwwMDBcXFxuICAgIFxcMjQwXFwyNTVcXDAxMVxcMDAwXFwwMzhcXDAwMFxcMjUyXFwyNTVcXDA2NVxcMDAwXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDExMFxcMDAwXFxcbiAgICBcXDI1MlxcMjU1XFwxNjNcXDAwMFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMzRcXDAwMFxcMjQ3XFwyNTVcXDI0OFxcMjU1XFwwNDhcXDAwMVxcXG4gICAgXFwyNTBcXDI1NVxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNzFcXDAwMVxcMTI2XFwwMDFcXFxuICAgIFxcMTQ5XFwwMDFcXDI0OVxcMjU1XFwwMzlcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwMzhcXDAwMFxcMTg3XFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDI0OFxcMDAxXFwwMTVcXDAwMlxcMjU1XFwyNTVcXDIyMFxcMDAwXFwyNTNcXDI1NVxcMjU1XFwyNTVcXDI0NVxcMDAwXFwwMzlcXDAwMlxcXG4gICAgXFwxMDlcXDAwMlxcMDE0XFwwMDFcXDA4OFxcMDAyXFwxNjRcXDAwMlxcMTg3XFwwMDJcXDIyNVxcMDAyXFwwMTNcXDAwMFxcMjUyXFwyNTVcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE0XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAzMFxcMDAwXFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxNVxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTdcXDAwMVxcXG4gICAgXFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxOVxcMDAwXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDAxNVxcMDAwXFwyNTVcXDI1NVxcMDE2XFwwMDBcXDI1NVxcMjU1XFwwMDhcXDAwMVxcMDA1XFwwMDBcXDI1M1xcMjU1XFxcbiAgICBcXDAyM1xcMDAwXFwyNTRcXDI1NVxcMDIwXFwwMDBcXDI1NVxcMjU1XFwwNDZcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwNDJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUzXFwwMDBcXDI1NVxcMjU1XFwwNTNcXDAwMFxcMDQ4XFwwMDBcXDA5MVxcMDAwXFwwOTJcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDI3XFwwMDFcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMTM3XFwwMDBcXDEwNFxcMDAwXFwwODlcXDAwMFxcMDg4XFwwMDBcXDEwNlxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwxNDNcXDAwMFxcMTM3XFwwMDBcXDE3N1xcMDAwXFwyNTRcXDI1NVxcMTgzXFwwMDBcXDE2OFxcMDAwXFwxNjZcXDAwMFxcXG4gICAgXFwxODNcXDAwMFxcMDAyXFwwMDBcXDI1M1xcMjU1XFwxNzdcXDAwMFxcMTcyXFwwMDBcXDE4N1xcMDAwXFwwMDRcXDAwMFxcMjUyXFwyNTVcXFxuICAgIFxcMDUzXFwwMDJcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDEwM1xcMDAxXFwyNTVcXDI1NVxcMjQ4XFwwMDJcXDI1NFxcMjU1XFxcbiAgICBcXDAwNlxcMDAzXFwwMzBcXDAwM1xcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA0MFxcMDAzXFwwNTBcXDAwM1xcXG4gICAgXFwwNzRcXDAwM1xcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA2MVxcMDAzXFwwODRcXDAwM1xcMTA4XFwwMDNcXFxuICAgIFxcMjQ5XFwyNTVcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMjQ0XFwwMDBcXDEyMFxcMDAzXFwxNDJcXDAwM1xcMTc5XFwwMDBcXDE5NFxcMDAwXFxcbiAgICBcXDAxNVxcMDAwXFwyNTVcXDI1NVxcMTkwXFwwMDBcXDE4OFxcMDAwXFwxODdcXDAwMFxcMTkzXFwwMDBcXDE4M1xcMDAwXFwxNzlcXDAwMFxcXG4gICAgXFwyNTRcXDI1NVxcMTkxXFwwMDBcXDIwMVxcMDAwXFwyMDBcXDAwMFxcMTk2XFwwMDBcXDIwM1xcMDAwXFwxOTNcXDAwMFxcMTg5XFwwMDBcXFxuICAgIFxcMjUzXFwyNTVcXDE1N1xcMDAzXFwwOTVcXDAwM1xcMTc0XFwwMDNcXDE5NlxcMDAzXFwyMDZcXDAwM1xcMjE2XFwwMDNcXDIyOFxcMDAzXFxcbiAgICBcXDIzOVxcMDAzXFwwNjBcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDEyXFwwMDRcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwwODdcXDAwNFxcMjU1XFwyNTVcXDE0NVxcMDA0XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDIyMVxcMDA0XFwyNTVcXDI1NVxcMjI5XFwwMDBcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjMxXFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAwMlxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMThcXDAwMVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAzNFxcMDAxXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDM4XFwwMDFcXFxuICAgIFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDEyMFxcMDAxXFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjA4XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIxMVxcMDAwXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE4OVxcMDAwXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAxM1xcMDAxXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwOTVcXDAwMVxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDUwXFwwMDFcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAyNlxcMDAxXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIzM1xcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMjJcXDAwMFxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNzlcXDAwNVxcMjM3XFwyNTVcXDIzOFxcMjU1XFwwMTBcXDAwMFxcMjQwXFwyNTVcXDA0NFxcMDAxXFxcbiAgICBcXDI0M1xcMjU1XFwyNDRcXDI1NVxcMjQ1XFwyNTVcXDI0NlxcMjU1XFwwNjFcXDAwMVxcMDAyXFwwMDRcXDI0OVxcMjU1XFwwNDVcXDAwNVxcXG4gICAgXFwyMDlcXDAwMFxcMjI4XFwwMDBcXDIxMVxcMDAwXFwyMzJcXDAwMFxcMjI1XFwwMDBcXDIyM1xcMDAwXFwyNDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjM1XFwwMDBcXDIzNFxcMDAwXFwwMDhcXDAwMVxcMjU0XFwyNTVcXDAwNFxcMDAxXFwwMjNcXDAwMVxcMjUzXFwyNTVcXDA1NFxcMDAxXFxcbiAgICBcXDI1MlxcMjU1XFwwMzFcXDAwMVxcMDI5XFwwMDFcXDAzMlxcMDAxXFwwMzlcXDAwMVxcMDQ5XFwwMDFcXDA0NVxcMDAxXFwyNTFcXDI1NVxcXG4gICAgXFwwNTdcXDAwMVxcMDgyXFwwMDFcXDA4MFxcMDAxXFwwNzhcXDAwMVxcMDg0XFwwMDFcXDA3NFxcMDAxXFwwODZcXDAwMVxcMjUwXFwyNTVcXFxuICAgIFxcMTEwXFwwMDVcXDAxMlxcMDA0XFwxMjNcXDAwNVxcMTU1XFwwMDVcXDE2NVxcMDA1XFwxNzdcXDAwNVxcMTg3XFwwMDVcXDE5N1xcMDA1XFxcbiAgICBcXDI0MVxcMjU1XFwxOTlcXDAwMVxcMDc3XFwwMDJcXDI1M1xcMjU1XFwyNTVcXDI1NVxcMTU0XFwwMDJcXDIyMlxcMDA1XFwyMDlcXDAwNVxcXG4gICAgXFwxNTVcXDAwMlxcMjM5XFwwMDVcXDA1M1xcMDA2XFwwNzZcXDAwNlxcMTE0XFwwMDZcXDAxNlxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxNTJcXDAwNlxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyMjdcXDAwNlxcMjU1XFwyNTVcXDA4NVxcMDA3XFxcbiAgICBcXDI0NFxcMjU1XFwyNDVcXDI1NVxcMDExXFwwMDBcXDI0N1xcMjU1XFwwNzZcXDAwMlxcMjUwXFwyNTVcXDI1MVxcMjU1XFwyNTJcXDI1NVxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDAzMVxcMDAyXFwyNDNcXDAwNVxcMDUxXFwwMDdcXDEwMFxcMDAxXFwxMTVcXDAwMVxcMTA0XFwwMDFcXFxuICAgIFxcMTMzXFwwMDFcXDExOFxcMDAxXFwxNTRcXDAwMVxcMTcxXFwwMDFcXDI1NVxcMjU1XFwxNzNcXDAwMVxcMTc2XFwwMDFcXDE5MVxcMDAxXFxcbiAgICBcXDE4NVxcMDAxXFwxODdcXDAwMVxcMjUzXFwwMDFcXDIzMFxcMDAxXFwyMzBcXDAwMVxcMjM0XFwwMDFcXDI0N1xcMDAxXFwyMzdcXDAwMVxcXG4gICAgXFwyMzRcXDAwMVxcMDA5XFwwMDJcXDAxOVxcMDAyXFwwMTlcXDAwMlxcMDE1XFwwMDJcXDAyMVxcMDAyXFwwMTFcXDAwMlxcMDA3XFwwMDJcXFxuICAgIFxcMTQyXFwwMDZcXDE1MlxcMDA2XFwxMTZcXDAwN1xcMTcwXFwwMDdcXDE4MFxcMDA3XFwxOTBcXDAwN1xcMjAwXFwwMDdcXDIxMFxcMDA3XFxcbiAgICBcXDI0OFxcMjU1XFwxMjBcXDAwMlxcMTY3XFwwMDJcXDI1M1xcMjU1XFwyNTVcXDI1NVxcMjE2XFwwMDJcXDA4MlxcMDA3XFwyMjBcXDAwN1xcXG4gICAgXFwyMzZcXDAwMlxcMjQ0XFwwMDdcXDA1OFxcMDA4XFwwODFcXDAwOFxcMTE5XFwwMDhcXDA3NlxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxNTdcXDAwOFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyMzJcXDAwOFxcMjU1XFwyNTVcXDEzNVxcMDAyXFxcbiAgICBcXDEyMFxcMDAyXFwyNTNcXDI1NVxcMTAwXFwwMDJcXDI1NFxcMjU1XFwxODJcXDAwMlxcMjU1XFwyNTVcXDAxMVxcMDAyXFwyNTVcXDI1NVxcXG4gICAgXFwyMDRcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA0NlxcMDAyXFwyNTVcXDI1NVxcMTc4XFwwMDJcXFxuICAgIFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAyM1xcMDAwXFwyNTVcXDI1NVxcMTgzXFwwMDJcXDI1MlxcMjU1XFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE4N1xcMDAyXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxMjFcXDAwMlxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxODRcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDE5XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDE0MFxcMDAxXFwxNDZcXDAwMVxcMjU1XFwyNTVcXDE1MFxcMDAxXFwxNTFcXDAwMVxcMTU0XFwwMDFcXDE2OFxcMDAxXFxcbiAgICBcXDE3MFxcMDAxXFwxNzFcXDAwMVxcMTcyXFwwMDFcXDE3M1xcMDAxXFwxODFcXDAwMVxcMTg0XFwwMDFcXDE4NVxcMDAxXFwxODdcXDAwMVxcXG4gICAgXFwxOTFcXDAwMVxcMTkzXFwwMDFcXDE5NVxcMDAxXFwxOTZcXDAwMVxcMTk3XFwwMDFcXDIwMFxcMDAxXFwyMDNcXDAwMVxcMjIzXFwwMDFcXFxuICAgIFxcMjI1XFwwMDFcXDIyOFxcMDAxXFwyNDlcXDAwMVxcMjUxXFwwMDFcXDAwMlxcMDAyXFwwMDRcXDAwMlxcMDExXFwwMDJcXDAxMlxcMDAyXFxcbiAgICBcXDAxM1xcMDAyXFwwMDBcXDAwMFwiO1xuICBMZXhpbmcubGV4X2JhY2t0cmsgPVxuICAgXCJcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAxN1xcMDAwXFwyNTVcXDI1NVxcMDE5XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwN1xcMDAwXFwwMDdcXDAwMFxcMjU1XFwyNTVcXDAxOVxcMDAwXFwwMTlcXDAwMFxcMDE5XFwwMDBcXFxuICAgIFxcMDE5XFwwMDBcXDAxOVxcMDAwXFwwMTlcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMDA4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDE0XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwN1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDAwMVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDAwNFxcMDAwXFwwMDNcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDRcXDAwMFxcMDA0XFwwMDBcXDAwNFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMlxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMlxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMDAzXFwwMDBcXDAwNVxcMDAwXFwwMDVcXDAwMFxcMDA1XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwwMDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAxNlxcMDAwXFwyNTVcXDI1NVxcMDE4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwN1xcMDAwXFwwMDdcXDAwMFxcMjU1XFwyNTVcXDAxOFxcMDAwXFxcbiAgICBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOFxcMDAwXFwyNTVcXDI1NVxcMDA4XFwwMDBcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAxM1xcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMDAxXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXDAxMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwNlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMDAxXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMDA0XFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XCI7XG4gIExleGluZy5sZXhfZGVmYXVsdCA9XG4gICBcIlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwNTdcXDAwMFxcMDYwXFwwMDBcXDAwMFxcMDAwXFwwNjBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjVcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDY1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDcwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDg0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwOTRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwOTdcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDA5N1xcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTA0XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEwOVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMTNcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMTdcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTIxXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjZcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDEzOFxcMDAwXFwwMDBcXDAwMFxcMTQyXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDE1NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDE3OFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMTg3XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTk0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjM1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIzOVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNDRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI0OVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1M1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDhcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAxN1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMjJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMzJcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAzOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwNDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDQ3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA1MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNTZcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY0XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMTIxXFwwMDFcXDEyNVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTI4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwxNDRcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMTkzXFwwMDFcXDE5N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjAwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjEyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjIwXFwwMDFcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjI2XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDIzM1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI0MFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjUyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDJcXDAwMlxcMDA0XFwwMDJcXDAwMFxcMDAwXFwwMDVcXDAwMlxcMDA2XFwwMDJcXDAwN1xcMDAyXFwwMDhcXDAwMlxcXG4gICAgXFwwMDlcXDAwMlxcMDEwXFwwMDJcXDAxMVxcMDAyXFwwMTJcXDAwMlxcMDEzXFwwMDJcXDAxNFxcMDAyXFwwMTVcXDAwMlxcMDE2XFwwMDJcXFxuICAgIFxcMDE3XFwwMDJcXDAxOFxcMDAyXFwwMTlcXDAwMlxcMDIwXFwwMDJcXDAyMVxcMDAyXFwwMjJcXDAwMlxcMDIzXFwwMDJcXDAyNFxcMDAyXFxcbiAgICBcXDAyNVxcMDAyXFwwMjZcXDAwMlxcMDI3XFwwMDJcXDAyOFxcMDAyXFwwMjlcXDAwMlxcMDMwXFwwMDJcXDAzMVxcMDAyXFwwMzJcXDAwMlxcXG4gICAgXFwwMzNcXDAwMlxcMDAzXFwwMDJcIjtcbiAgTGV4aW5nLmxleF90cmFucyA9XG4gICBcIlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDNcXDAwMFxcMDA0XFwwMDBcXDAwMFxcMDAwXFwwMDNcXDAwMFxcMDAzXFwwMDBcXDEzNFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMDAwXFwwMDBcXDEzNFxcMDAwXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDY5XFwwMDFcXFxuICAgIFxcMTQ2XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjdcXDAwMFxcMTM5XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMDEyXFwwMDBcXDAwM1xcMDAwXFwxNzBcXDAwMFxcMTM0XFwwMDBcXDE3NVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDdcXDAwMFxcMDExXFwwMDFcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMDE0XFwwMDFcXDAxM1xcMDAwXFwwNDlcXDAwMFxcMDA1XFwwMDBcXFxuICAgIFxcMDEwXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDU2XFwwMDBcXDExOFxcMDAwXFwwMDZcXDAwMFxcMTI5XFwwMDBcXDEzMFxcMDAwXFwwNTdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMVxcMTM3XFwwMDBcXDAwMFxcMDAyXFwwNDlcXDAwMFxcMDAwXFwwMDBcXDA0OFxcMDAwXFwxMzhcXDAwMFxcMTA2XFwwMDBcXFxuICAgIFxcMDYyXFwwMDBcXDAxNFxcMDAwXFwxMTBcXDAwMFxcMTA1XFwwMDBcXDAwMFxcMDAwXFwwNDlcXDAwMFxcMDE1XFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDMwXFwwMDBcXDA0OFxcMDAwXFwwMDhcXDAwMFxcMTE0XFwwMDBcXDIwOVxcMDAwXFwyMzZcXDAwMFxcMDAwXFwwMDFcXFxuICAgIFxcMDEzXFwwMDFcXDAyOVxcMDAwXFwwMjJcXDAwMFxcMjU1XFwyNTVcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDE3XFwwMDBcXDAyMVxcMDAwXFxcbiAgICBcXDAyNVxcMDAwXFwwMzJcXDAwMFxcMDMzXFwwMDBcXDAzNVxcMDAwXFwwMjNcXDAwMFxcMDI3XFwwMDBcXDAxNlxcMDAwXFwwMzFcXDAwMFxcXG4gICAgXFwwMjhcXDAwMFxcMDM0XFwwMDBcXDAxOVxcMDAwXFwwMjRcXDAwMFxcMDE4XFwwMDBcXDAyNlxcMDAwXFwwMjBcXDAwMFxcMDM2XFwwMDBcXFxuICAgIFxcMDQxXFwwMDBcXDAzN1xcMDAwXFwwNDhcXDAwMFxcMDA5XFwwMDBcXDA0MlxcMDAwXFwwNDNcXDAwMFxcMDQ0XFwwMDBcXDA0NVxcMDAwXFxcbiAgICBcXDA0NlxcMDAwXFwwNDdcXDAwMFxcMDYxXFwwMDBcXDA4NVxcMDAwXFwwNDhcXDAwMFxcMDM4XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDQ5XFwwMDBcXFxuICAgIFxcMDY3XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDA4NlxcMDAwXFwxNDNcXDAwMFxcMjU1XFwyNTVcXDA0MFxcMDAwXFwxNDRcXDAwMFxcXG4gICAgXFwxNDVcXDAwMFxcMTQ2XFwwMDBcXDA1NVxcMDAwXFwxNDhcXDAwMFxcMDU1XFwwMDBcXDE0OVxcMDAwXFwwNDhcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwyNTVcXDI1NVxcMDQ4XFwwMDBcXDE1MFxcMDAwXFxcbiAgICBcXDE1MVxcMDAwXFwxNjFcXDAwMFxcMDY2XFwwMDBcXDE1OFxcMDAwXFwwNTNcXDAwMFxcMTU5XFwwMDBcXDA1M1xcMDAwXFwxNjBcXDAwMFxcXG4gICAgXFwwNTFcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMTY1XFwwMDBcXFxuICAgIFxcMDUxXFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDE2MlxcMDAwXFwxNjNcXDAwMFxcMTY2XFwwMDBcXDA5M1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDJcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMjU1XFwyNTVcXDA3N1xcMDAwXFwxMDNcXDAwMFxcMTA4XFwwMDBcXDExNlxcMDAwXFxcbiAgICBcXDEzMlxcMDAwXFwxMzRcXDAwMFxcMTM1XFwwMDBcXDEyOFxcMDAwXFwxMzlcXDAwMFxcMTM0XFwwMDBcXDE2NFxcMDAwXFwwOTNcXDAwMFxcXG4gICAgXFwxNzFcXDAwMFxcMDc3XFwwMDBcXDE2N1xcMDAwXFwxNjhcXDAwMFxcMTY5XFwwMDBcXDE3MlxcMDAwXFwxMTJcXDAwMFxcMTczXFwwMDBcXFxuICAgIFxcMTc0XFwwMDBcXDIxMFxcMDAwXFwyMjZcXDAwMFxcMjA4XFwwMDBcXDIxMVxcMDAwXFwyMTJcXDAwMFxcMDU5XFwwMDBcXDA4M1xcMDAwXFxcbiAgICBcXDEzNFxcMDAwXFwyMTNcXDAwMFxcMjE0XFwwMDBcXDIxNVxcMDAwXFwyMTZcXDAwMFxcMjE4XFwwMDBcXDE0MVxcMDAwXFwyMTlcXDAwMFxcXG4gICAgXFwwOTNcXDAwMFxcMjIwXFwwMDBcXDIyMVxcMDAwXFwxMjNcXDAwMFxcMjIyXFwwMDBcXDIyM1xcMDAwXFwyMjRcXDAwMFxcMTM2XFwwMDBcXFxuICAgIFxcMDk1XFwwMDBcXDIyNVxcMDAwXFwwMzVcXDAwMVxcMDY1XFwwMDFcXDIzNFxcMDAwXFwxNTVcXDAwMFxcMDA1XFwwMDFcXDA5N1xcMDAxXFxcbiAgICBcXDI1MFxcMDAwXFwyNTVcXDI1NVxcMjU0XFwwMDBcXDA1N1xcMDAxXFwwNjFcXDAwMVxcMDk1XFwwMDFcXDA3N1xcMDAwXFwwNDRcXDAwMVxcXG4gICAgXFwwOTJcXDAwMVxcMDg4XFwwMDFcXDAwOVxcMDAxXFwwMjlcXDAwMVxcMDc2XFwwMDBcXDEyNFxcMDAwXFwwMzNcXDAwMVxcMDE4XFwwMDFcXFxuICAgIFxcMDc1XFwwMDBcXDA5OFxcMDAwXFwwMTlcXDAwMVxcMDg1XFwwMDFcXDA4NlxcMDAxXFwwODdcXDAwMVxcMTIwXFwwMDFcXDA4OVxcMDAxXFxcbiAgICBcXDA3NFxcMDAwXFwyMjVcXDAwMFxcMDUzXFwwMDFcXDEyMVxcMDAxXFwwNzNcXDAwMFxcMDkwXFwwMDFcXDA3MlxcMDAwXFwwNzFcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwOThcXDAwMFxcMTEzXFwwMDFcXDEyMlxcMDAwXFwwOTFcXDAwMVxcMDY0XFwwMDBcXDAwNFxcMDAxXFxcbiAgICBcXDA5M1xcMDAxXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDE1NlxcMDAwXFwxMTJcXDAwMVxcMDk0XFwwMDFcXDA5NlxcMDAxXFwwOThcXDAwMVxcMDk5XFwwMDFcXDA0OVxcMDAxXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDEwMFxcMDAxXFwxNTdcXDAwMFxcXG4gICAgXFwxMDFcXDAwMVxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMTgzXFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwwMjRcXDAwMVxcMTEyXFwwMDFcXDI1NVxcMjU1XFwwMjVcXDAwMVxcMTAyXFwwMDFcXDEwM1xcMDAxXFwxMDVcXDAwMVxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDEwNlxcMDAxXFwxMDdcXDAwMVxcMDQ4XFwwMDFcXDA0MFxcMDAxXFwxMDhcXDAwMVxcMTA5XFwwMDFcXDExMFxcMDAxXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXFxuICAgIFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDExMVxcMDAxXFxcbiAgICBcXDAyN1xcMDAxXFwyNTVcXDI1NVxcMTcxXFwwMDFcXDAzMVxcMDAxXFwxNzBcXDAwMVxcMDIzXFwwMDFcXDA4MVxcMDAwXFwwODFcXDAwMFxcXG4gICAgXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDkyXFwwMDBcXDE2OFxcMDAxXFwwNjNcXDAwMVxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwyNDhcXDAwMFxcMTY1XFwwMDFcXDI1MlxcMDAwXFxcbiAgICBcXDE2MlxcMDAxXFwwNTlcXDAwMVxcMDY5XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDI1NVxcMjU1XFwwODFcXDAwMFxcMDgxXFwwMDBcXFxuICAgIFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDM5XFwwMDFcXDA0MlxcMDAxXFwyNTVcXDI1NVxcMTYzXFwwMDFcXFxuICAgIFxcMTY0XFwwMDFcXDEyMFxcMDAwXFwwMDJcXDAwMVxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwxNjZcXDAwMVxcMDU1XFwwMDFcXDE1M1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDAwN1xcMDAxXFwxNjdcXDAwMVxcMTY0XFwwMDFcXDE2OVxcMDAxXFwwMTZcXDAwMVxcMTY0XFwwMDFcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDUxXFwwMDFcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDkwXFwwMDBcXFxuICAgIFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFxcbiAgICBcXDA5MFxcMDAwXFwwOTdcXDAwMFxcMTM3XFwwMDFcXDE2NFxcMDAxXFwxNzJcXDAwMVxcMTg1XFwwMDFcXDEzNlxcMDAxXFwxNzNcXDAwMVxcXG4gICAgXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTdcXDAwMFxcMTc5XFwwMDBcXFxuICAgIFxcMTc0XFwwMDFcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA0NlxcMDAxXFxcbiAgICBcXDE3NVxcMDAxXFwxNzZcXDAwMVxcMTgwXFwwMDBcXDE2NFxcMDAxXFwxODRcXDAwMVxcMTgxXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTI0XFwwMDFcXFxuICAgIFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMTkyXFwwMDFcXDE3OFxcMDAxXFxcbiAgICBcXDAyMVxcMDAxXFwxNzlcXDAwMVxcMDk3XFwwMDBcXDE5M1xcMDAxXFwxODBcXDAwMVxcMTgxXFwwMDFcXDE4MlxcMDAxXFwxODNcXDAwMVxcXG4gICAgXFwxNjRcXDAwMVxcMjE2XFwwMDFcXDI1NVxcMjU1XFwwOTdcXDAwMFxcMTg0XFwwMDFcXDIxNlxcMDAxXFwyMDlcXDAwMVxcMDk3XFwwMDBcXFxuICAgIFxcMjIzXFwwMDFcXDA5N1xcMDAwXFwyMDhcXDAwMVxcMjMwXFwwMDFcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMjE5XFwwMDFcXDAzN1xcMDAxXFxcbiAgICBcXDIxNlxcMDAxXFwyMTdcXDAwMVxcMDAzXFwwMDJcXDIyMFxcMDAxXFwyMTZcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFwwMDNcXDAwMlxcXG4gICAgXFwyMTZcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMDk2XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDIxNlxcMDAxXFxcbiAgICBcXDAwM1xcMDAyXFwxMjZcXDAwMVxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk3XFwwMDBcXDAwM1xcMDAyXFwyMThcXDAwMVxcMjUwXFwwMDFcXFxuICAgIFxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDEyNFxcMDAxXFwxMjRcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFxcbiAgICBcXDIyMVxcMDAxXFwwMDNcXDAwMlxcMjUzXFwwMDFcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDA5N1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDNcXDAwMlxcMTk2XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDA5NlxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDIzNVxcMDAxXFwwMDNcXDAwMlxcXG4gICAgXFwyNDFcXDAwMVxcMDAzXFwwMDJcXDI1NVxcMDAxXFwyNDJcXDAwMVxcMDAzXFwwMDJcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMjQ2XFwwMDFcXDEyOVxcMDAxXFwxMjlcXDAwMVxcXG4gICAgXFwyMjhcXDAwMVxcMDAzXFwwMDJcXDE5NlxcMDAxXFwwMDNcXDAwMlxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwwMDNcXDAwMlxcMTk4XFwwMDFcXDAwM1xcMDAyXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDE5NlxcMDAxXFwyMzRcXDAwMVxcXG4gICAgXFwxMzRcXDAwMVxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDAwXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMVxcMDAxXFwxNzdcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODhcXDAwMFxcMDAwXFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMjAxXFwwMDFcXDIyN1xcMDAxXFwwMDBcXDAwMFxcMTkxXFwwMDBcXDIwNlxcMDAxXFwxMjNcXDAwMVxcMTg5XFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxODlcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTVcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI0OFxcMDAxXFwxOTZcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTZcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwyMDJcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMDVcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDNcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMjZcXDAwMFxcMTk1XFwwMDFcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjMyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjA2XFwwMDBcXDIyMVxcMDAxXFwyMzlcXDAwMVxcXG4gICAgXFwyNTRcXDAwMVxcMDAwXFwwMDBcXDIwN1xcMDAwXFwyNDRcXDAwMVxcMDAwXFwwMDBcXDIyNVxcMDAwXFwyMDNcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIzMlxcMDAwXFwwMDBcXDAwMFxcMjMyXFwwMDBcXDAwMFxcMDAwXFwyMjVcXDAwMVxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjE3XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMjVcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjMwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDIzMFxcMDAwXFwwMDBcXDAwMFxcMjI4XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMDAwXFwwMDBcXDIyOFxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwxODZcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMTNcXDAwMVxcMDAwXFwwMDBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFxcbiAgICBcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDAwMFxcMDAwXFwxMTJcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE5M1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMTEyXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQwXFwwMDBcXDIwMFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwwMDBcXDAwMFxcMjQ2XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjM4XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMDY5XFwwMDFcXDA3MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2OVxcMDAxXFwwNzZcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDA3OFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTA0XFwwMDFcXDA3M1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzlcXDAwMVxcMDAwXFwwMDBcXDA3MVxcMDAxXFwwNzZcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDcyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyNDNcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwODBcXDAwMVxcMTE5XFwwMDFcXDAwMFxcMDAwXFwxMTlcXDAwMVxcMDAwXFwwMDBcXDA4MVxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDc0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcXG4gICAgXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDA4M1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwODJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDExNVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA4NFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDExN1xcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxMTdcXDAwMVxcMDAwXFwwMDBcXDA3NVxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxMTVcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTI4XFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxODVcXDAwMVxcMDAwXFwwMDBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDE4NFxcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2OFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyN1xcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxODRcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyN1xcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDAwMFxcMDAwXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTkxXFwwMDFcXDE0MlxcMDAxXFwxOTFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0NlxcMDAxXFwxNDdcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0NlxcMDAxXFwxNTRcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMTQ2XFwwMDFcXDAwMFxcMDAwXFwxNTNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTc3XFwwMDFcXDE1MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwxNTZcXDAwMVxcMDAwXFwwMDBcXDE0OFxcMDAxXFwxNTRcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTQ5XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTM5XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTU3XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE1OFxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTUxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwxODdcXDAwMVxcMDAwXFwwMDBcXDE2MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNTlcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDE2MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDE1MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTg5XFwwMDFcXDAwMFxcMDAwXFwxODlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMTg3XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0NVxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMTk5XFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFxcbiAgICBcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcXG4gICAgXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDIxNFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjEzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjExXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFwiO1xuICBMZXhpbmcubGV4X2NoZWNrID1cbiAgIFwiXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMTM0XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMTM0XFwwMDBcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMDU3XFwwMDBcXDI1NVxcMjU1XFwwNjlcXDAwMVxcXG4gICAgXFwxNDZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyNVxcMDAwXFwxMzhcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAzXFwwMDBcXDE2OVxcMDAwXFwxMzRcXDAwMFxcMTc0XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMTBcXDAwMVxcMDY5XFwwMDFcXDE0NlxcMDAxXFwwMTJcXDAwMVxcMDAwXFwwMDBcXDAxMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDVcXDAwMFxcMTE1XFwwMDBcXDAwMFxcMDAwXFwxMjVcXDAwMFxcMTI5XFwwMDBcXDAwNVxcMDAwXFxcbiAgICBcXDIzNlxcMDAxXFwxMzZcXDAwMFxcMjU1XFwwMDFcXDAzOFxcMDAwXFwyNTVcXDI1NVxcMDEwXFwwMDBcXDEzNlxcMDAwXFwxMDJcXDAwMFxcXG4gICAgXFwwNThcXDAwMFxcMDAwXFwwMDBcXDEwN1xcMDAwXFwxMDJcXDAwMFxcMjU1XFwyNTVcXDAxMVxcMDAwXFwwMDBcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMjlcXDAwMFxcMDM4XFwwMDBcXDAwMFxcMDAwXFwxMTFcXDAwMFxcMjA4XFwwMDBcXDIzM1xcMDAwXFwyNTVcXDAwMFxcXG4gICAgXFwwMTJcXDAwMVxcMDE1XFwwMDBcXDAxN1xcMDAwXFwwNjBcXDAwMFxcMDExXFwwMDBcXDAxMFxcMDAwXFwwMDBcXDAwMFxcMDIwXFwwMDBcXFxuICAgIFxcMDI0XFwwMDBcXDAzMVxcMDAwXFwwMzJcXDAwMFxcMDM0XFwwMDBcXDAyMlxcMDAwXFwwMjZcXDAwMFxcMDAwXFwwMDBcXDAxNFxcMDAwXFxcbiAgICBcXDAyN1xcMDAwXFwwMzNcXDAwMFxcMDE4XFwwMDBcXDAyM1xcMDAwXFwwMDBcXDAwMFxcMDE2XFwwMDBcXDAxOVxcMDAwXFwwMzVcXDAwMFxcXG4gICAgXFwwNDBcXDAwMFxcMDM2XFwwMDBcXDAzOFxcMDAwXFwwMDBcXDAwMFxcMDQxXFwwMDBcXDA0MlxcMDAwXFwwNDNcXDAwMFxcMDQ0XFwwMDBcXFxuICAgIFxcMDQ1XFwwMDBcXDA0NlxcMDAwXFwwNThcXDAwMFxcMDgyXFwwMDBcXDAxMVxcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFxcbiAgICBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwNjNcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDg1XFwwMDBcXDE0MFxcMDAwXFwwNjBcXDAwMFxcMDEzXFwwMDBcXDE0M1xcMDAwXFxcbiAgICBcXDE0NFxcMDAwXFwxNDVcXDAwMFxcMDQ4XFwwMDBcXDE0N1xcMDAwXFwwNDhcXDAwMFxcMTQ4XFwwMDBcXDAzOVxcMDAwXFwwNDhcXDAwMFxcXG4gICAgXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXFxuICAgIFxcMDQ4XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFxcbiAgICBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA2NVxcMDAwXFwwMzlcXDAwMFxcMTQ5XFwwMDBcXFxuICAgIFxcMTUwXFwwMDBcXDE1NlxcMDAwXFwwNjNcXDAwMFxcMTU3XFwwMDBcXDA1MVxcMDAwXFwxNThcXDAwMFxcMDUxXFwwMDBcXDE1OVxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcXG4gICAgXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFxcbiAgICBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwxNTVcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMTYxXFwwMDBcXDE2MlxcMDAwXFwxNTVcXDAwMFxcMDkxXFwwMDBcXDA2NVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcXG4gICAgXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTdcXDAwMFxcMDY4XFwwMDBcXDEwMlxcMDAwXFwxMDdcXDAwMFxcMTE1XFwwMDBcXFxuICAgIFxcMTMxXFwwMDBcXDEzM1xcMDAwXFwxMzNcXDAwMFxcMTI1XFwwMDBcXDEzOFxcMDAwXFwxMzNcXDAwMFxcMTYzXFwwMDBcXDA5NFxcMDAwXFxcbiAgICBcXDE2NVxcMDAwXFwwNjhcXDAwMFxcMTY2XFwwMDBcXDE2N1xcMDAwXFwxNjhcXDAwMFxcMTcxXFwwMDBcXDExMVxcMDAwXFwxNzJcXDAwMFxcXG4gICAgXFwxNzNcXDAwMFxcMjA2XFwwMDBcXDIwM1xcMDAwXFwyMDdcXDAwMFxcMjEwXFwwMDBcXDIxMVxcMDAwXFwwNThcXDAwMFxcMDgyXFwwMDBcXFxuICAgIFxcMTMzXFwwMDBcXDIxMlxcMDAwXFwyMTNcXDAwMFxcMjE0XFwwMDBcXDIxNVxcMDAwXFwyMTdcXDAwMFxcMTQwXFwwMDBcXDIxOFxcMDAwXFxcbiAgICBcXDA5N1xcMDAwXFwyMTlcXDAwMFxcMjIwXFwwMDBcXDExOVxcMDAwXFwyMjFcXDAwMFxcMjIyXFwwMDBcXDIyM1xcMDAwXFwxMzNcXDAwMFxcXG4gICAgXFwwOTFcXDAwMFxcMjAzXFwwMDBcXDAzNFxcMDAxXFwwNjJcXDAwMVxcMjMzXFwwMDBcXDE1MlxcMDAwXFwwMDFcXDAwMVxcMDgwXFwwMDFcXFxuICAgIFxcMjQ3XFwwMDBcXDA2MFxcMDAwXFwyNTFcXDAwMFxcMDU0XFwwMDFcXDA1OFxcMDAxXFwwODFcXDAwMVxcMDY4XFwwMDBcXDA0MVxcMDAxXFxcbiAgICBcXDA4MlxcMDAxXFwwODNcXDAwMVxcMDA2XFwwMDFcXDAyNlxcMDAxXFwwNjhcXDAwMFxcMTE5XFwwMDBcXDAzMFxcMDAxXFwwMTVcXDAwMVxcXG4gICAgXFwwNjhcXDAwMFxcMDk0XFwwMDBcXDAxNVxcMDAxXFwwODRcXDAwMVxcMDg1XFwwMDFcXDA4NlxcMDAxXFwwNzFcXDAwMVxcMDg4XFwwMDFcXFxuICAgIFxcMDY4XFwwMDBcXDIwM1xcMDAwXFwwNTBcXDAwMVxcMDcxXFwwMDFcXDA2OFxcMDAwXFwwODlcXDAwMVxcMDY4XFwwMDBcXDA2OFxcMDAwXFxcbiAgICBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcXG4gICAgXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA5N1xcMDAwXFwwNzZcXDAwMVxcMTE5XFwwMDBcXDA5MFxcMDAxXFwwNjNcXDAwMFxcMDAxXFwwMDFcXFxuICAgIFxcMDkyXFwwMDFcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3OFxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMTUyXFwwMDBcXDA3NlxcMDAxXFwwOTNcXDAwMVxcMDk1XFwwMDFcXDA5N1xcMDAxXFwwOThcXDAwMVxcMDQ1XFwwMDFcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDk5XFwwMDFcXDE1MlxcMDAwXFxcbiAgICBcXDEwMFxcMDAxXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwxODBcXDAwMFxcXG4gICAgXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXFxuICAgIFxcMTgwXFwwMDBcXDAyMFxcMDAxXFwwNzZcXDAwMVxcMDY1XFwwMDBcXDAyMFxcMDAxXFwxMDFcXDAwMVxcMTAyXFwwMDFcXDEwNFxcMDAxXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMTA1XFwwMDFcXDEwNlxcMDAxXFwwNDVcXDAwMVxcMDM2XFwwMDFcXDEwN1xcMDAxXFwxMDhcXDAwMVxcMTA5XFwwMDFcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMTEwXFwwMDFcXFxuICAgIFxcMDI2XFwwMDFcXDEyMVxcMDAxXFwxNTdcXDAwMVxcMDMwXFwwMDFcXDE1OFxcMDAxXFwwMjBcXDAwMVxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwOTFcXDAwMFxcMTU5XFwwMDFcXDA2MlxcMDAxXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDI0N1xcMDAwXFwxNjBcXDAwMVxcMjUxXFwwMDBcXFxuICAgIFxcMTYxXFwwMDFcXDA1OFxcMDAxXFwwNjhcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFxcbiAgICBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDk0XFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXFxuICAgIFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwMzZcXDAwMVxcMDQxXFwwMDFcXDA5N1xcMDAwXFwxNjJcXDAwMVxcXG4gICAgXFwxNjNcXDAwMVxcMTE5XFwwMDBcXDAwMVxcMDAxXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDE2NVxcMDAxXFwwNTRcXDAwMVxcMTUyXFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFxcbiAgICBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDA2XFwwMDFcXDE2NlxcMDAxXFwxNjdcXDAwMVxcMTY4XFwwMDFcXDAxNVxcMDAxXFwxNjlcXDAwMVxcXG4gICAgXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwNTBcXDAwMVxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODlcXDAwMFxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXFxuICAgIFxcMDg5XFwwMDBcXDA5NVxcMDAwXFwxMzNcXDAwMVxcMTcwXFwwMDFcXDE3MVxcMDAxXFwxNTRcXDAwMVxcMTMzXFwwMDFcXDE3MlxcMDAxXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA5NVxcMDAwXFwxNzZcXDAwMFxcXG4gICAgXFwxNzNcXDAwMVxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDQ1XFwwMDFcXFxuICAgIFxcMTc0XFwwMDFcXDE3NVxcMDAxXFwxNzZcXDAwMFxcMTc2XFwwMDFcXDE1NFxcMDAxXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFxcbiAgICBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxMjJcXDAwMVxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwxNDhcXDAwMVxcMTc3XFwwMDFcXFxuICAgIFxcMDIwXFwwMDFcXDE3OFxcMDAxXFwwOThcXDAwMFxcMTQ4XFwwMDFcXDE3OVxcMDAxXFwxODBcXDAwMVxcMTgxXFwwMDFcXDE4MlxcMDAxXFxcbiAgICBcXDE4M1xcMDAxXFwyMTZcXDAwMVxcMTkzXFwwMDFcXDA5NVxcMDAwXFwxNTRcXDAwMVxcMjE2XFwwMDFcXDIwNVxcMDAxXFwwOThcXDAwMFxcXG4gICAgXFwyMjJcXDAwMVxcMDk1XFwwMDBcXDIwNVxcMDAxXFwyMjlcXDAwMVxcMDAxXFwwMDJcXDA5NVxcMDAwXFwyMThcXDAwMVxcMDM2XFwwMDFcXFxuICAgIFxcMjE1XFwwMDFcXDIxNVxcMDAxXFwwMDJcXDAwMlxcMjE4XFwwMDFcXDIxNVxcMDAxXFwwOTVcXDAwMFxcMDA0XFwwMDJcXDAwNVxcMDAyXFxcbiAgICBcXDIxNlxcMDAxXFwwOTVcXDAwMFxcMDA2XFwwMDJcXDA5NVxcMDAwXFwwOTVcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcXG4gICAgXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMjE1XFwwMDFcXFxuICAgIFxcMDA3XFwwMDJcXDEyMlxcMDAxXFwwMDhcXDAwMlxcMDA5XFwwMDJcXDAxMFxcMDAyXFwwMTFcXDAwMlxcMDk2XFwwMDBcXDA5NlxcMDAwXFxcbiAgICBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOThcXDAwMFxcMDEyXFwwMDJcXDIxNVxcMDAxXFwyNDdcXDAwMVxcXG4gICAgXFwwMTNcXDAwMlxcMDE0XFwwMDJcXDA5OFxcMDAwXFwwMTVcXDAwMlxcMTI1XFwwMDFcXDEyOFxcMDAxXFwwOThcXDAwMFxcMDE2XFwwMDJcXFxuICAgIFxcMjIwXFwwMDFcXDAxN1xcMDAyXFwyNTFcXDAwMVxcMDE4XFwwMDJcXDAxOVxcMDAyXFwwMjBcXDAwMlxcMDk4XFwwMDBcXDEyMVxcMDAxXFxcbiAgICBcXDAyMVxcMDAyXFwxOTRcXDAwMVxcMDk4XFwwMDBcXDAyMlxcMDAyXFwwOThcXDAwMFxcMDk4XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcXG4gICAgXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMjMxXFwwMDFcXDAyM1xcMDAyXFxcbiAgICBcXDIzOFxcMDAxXFwwMjRcXDAwMlxcMjUxXFwwMDFcXDIzOFxcMDAxXFwwMjVcXDAwMlxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwyNDNcXDAwMVxcMTI1XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDIyNFxcMDAxXFwwMjZcXDAwMlxcMTk3XFwwMDFcXDAyN1xcMDAyXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDAyOFxcMDAyXFwxOTRcXDAwMVxcMDI5XFwwMDJcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDMwXFwwMDJcXDAzMVxcMDAyXFwwMzJcXDAwMlxcMjAwXFwwMDFcXDIzMVxcMDAxXFxcbiAgICBcXDEzM1xcMDAxXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwyNTVcXDI1NVxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk3XFwwMDFcXDE3NlxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NVxcMDAwXFwyNTVcXDI1NVxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMjI0XFwwMDFcXDI1NVxcMjU1XFwxODVcXDAwMFxcMjA1XFwwMDFcXDEyMlxcMDAxXFwxODVcXDAwMFxcMTg1XFwwMDBcXFxuICAgIFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXFxuICAgIFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MlxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTJcXDAwMFxcXG4gICAgXFwxOTNcXDAwMVxcMjQ3XFwwMDFcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXFxuICAgIFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFxcbiAgICBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OVxcMDAwXFwyMjZcXDAwMFxcXG4gICAgXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXFxuICAgIFxcMjI2XFwwMDBcXDE5OVxcMDAwXFwxMjVcXDAwMVxcMTI4XFwwMDFcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFxcbiAgICBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDIwNFxcMDAwXFwxOTRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMzFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTlcXDAwMFxcMjIwXFwwMDFcXDIzOFxcMDAxXFxcbiAgICBcXDI1MVxcMDAxXFwyNTVcXDI1NVxcMTk5XFwwMDBcXDI0M1xcMDAxXFwyNTVcXDI1NVxcMjA0XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcXG4gICAgXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXFxuICAgIFxcMjI1XFwwMDBcXDI1NVxcMjU1XFwyMjVcXDAwMFxcMjU1XFwyNTVcXDIyNFxcMDAxXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFxcbiAgICBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMDVcXDAwMFxcXG4gICAgXFwxOTdcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwNFxcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMjhcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjI4XFwwMDBcXDI1NVxcMjU1XFwyMjdcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXFxuICAgIFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXFxuICAgIFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyNTVcXDI1NVxcMjI3XFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDE4NVxcMDAwXFwyMzJcXDAwMFxcXG4gICAgXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXFxuICAgIFxcMjMyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjM3XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDA3N1xcMDAxXFwyNTVcXDI1NVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXFxuICAgIFxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMjU1XFwyNTVcXDA3N1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTkyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwwNzdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMzdcXDAwMFxcMTk5XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI1NVxcMjU1XFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyMzdcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMjU1XFwyNTVcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXFxuICAgIFxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNzlcXDAwMVxcMDY2XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDA2NlxcMDAxXFxcbiAgICBcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcXG4gICAgXFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDA2NlxcMDAxXFwxMTJcXDAwMVxcMjU1XFwyNTVcXDExMlxcMDAxXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcXG4gICAgXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFxcbiAgICBcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTE0XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTE1XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDExNVxcMDAxXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcXG4gICAgXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDExNFxcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcXG4gICAgXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFxcbiAgICBcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxMjZcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXFxuICAgIFxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDI1NVxcMjU1XFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXFxuICAgIFxcMTI2XFwwMDFcXDEyOVxcMDAxXFwxMjZcXDAwMVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMTI5XFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMjU1XFwyNTVcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxODRcXDAwMVxcMTM4XFwwMDFcXDE4NFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE4NFxcMDAxXFwxODRcXDAwMVxcXG4gICAgXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXFxuICAgIFxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFxcbiAgICBcXDE4NVxcMDAxXFwxODVcXDAwMVxcMjU1XFwyNTVcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTM4XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDFcXDAwMVxcMjU1XFwyNTVcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcXG4gICAgXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OFxcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDE0M1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNTZcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTk4XFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXFxuICAgIFxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMzhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE5OFxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTk4XFwwMDFcXDE4NlxcMDAxXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE5OFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxOThcXDAwMVxcMjU1XFwyNTVcXDE5OFxcMDAxXFwxOThcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxODdcXDAwMVxcMjU1XFwyNTVcXDE4N1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwxODZcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcXG4gICAgXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFxcbiAgICBcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFxcbiAgICBcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwyMDFcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDIwMVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDIwMVxcMDAxXFwyMDFcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjA0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyNTVcXDI1NVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyNTVcXDI1NVxcMjEwXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMTBcXDAwMVxcMjU1XFwyNTVcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMTNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMTBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XCI7XG4gIExleGluZy5sZXhfYmFzZV9jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfYmFja3Rya19jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfZGVmYXVsdF9jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfdHJhbnNfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2NoZWNrX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9jb2RlID1cbiAgIFwiXCI7XG59XG5cbmxldCByZWMgcmVhZF9qc29uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfanNvbl9yZWMgdiBsZXhidWYgMFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTg4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTg4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGBCb29sIHRydWUgKVxuXG4jIDEwMzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwMzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDE4OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE4OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBgQm9vbCBmYWxzZSApXG5cbiMgMTAzNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTAzOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGBOdWxsIClcblxuIyAxMDQyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDQzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDE5MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdCBuYW5cbiAgICAgICAgICAgICAgICBcbiMgMTk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA1MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA1NCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgMTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXQgaW5maW5pdHlcbiAgICAgICAgICAgICAgICBcbiMgMjA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgMjA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMjA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXQgbmVnX2luZmluaXR5XG4gICAgICAgICAgICAgICAgXG4jIDIxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwNzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDIxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDIxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICBgU3RyaW5nIChmaW5pc2hfc3RyaW5nIHYgbGV4YnVmKVxuICAgICAgICAgICAgICAgIFxuIyAyMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDg3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDg4IFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyAyMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAyMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbWFrZV9wb3NpdGl2ZV9pbnQgdiBsZXhidWYgKVxuXG4jIDEwOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDIyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDIyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBtYWtlX25lZ2F0aXZlX2ludCB2IGxleGJ1ZiApXG5cbiMgMTA5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCA5IC0+XG5cbiMgMjIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMjIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXQgKGZsb2F0X29mX3N0cmluZyAobGV4ZW1lIGxleGJ1ZikpXG4gICAgICAgICAgICAgICAgIFxuIyAyMjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMTEwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTEwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMCAtPlxuXG4jIDIzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2lkZW50IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBhY2MgOj0gKGZpZWxkX25hbWUsIHJlYWRfanNvbiB2IGxleGJ1ZikgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfaWRlbnQgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IChmaWVsZF9uYW1lLCByZWFkX2pzb24gdiBsZXhidWYpIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICAgICBgQXNzb2MgKExpc3QucmV2ICFhY2MpXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTM1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTM2IFwibGliL3JlYWQubWxcIlxuICB8IDExIC0+XG5cbiMgMjU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDI1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2pzb24gdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2pzb24gdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgYExpc3QgKExpc3QucmV2ICFhY2MpXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTU1IFwibGliL3JlYWQubWxcIlxuICB8IDEyIC0+XG5cbiMgMjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDI3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyAyNzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfanNvbiB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2pzb24gdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl90dXBsZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBgVHVwbGUgKExpc3QucmV2ICFhY2MpXG4gICAgICAgICAgICAgICAgIFxuIyAyODkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMTE3OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE3OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMyAtPlxuXG4jIDI5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgMjkzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBsZXQgY29ucyA9IHJlYWRfaWRlbnQgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBgVmFyaWFudCAoY29ucywgZmluaXNoX3ZhcmlhbnQgdiBsZXhidWYpXG4gICAgICAgICAgICAgICAgIFxuIyAzMDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMTE5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNCAtPlxuXG4jIDMwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTE5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNSAtPlxuXG4jIDMwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmOyByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDEyMDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTYgLT5cblxuIyAzMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDEyMDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTcgLT5cblxuIyAzMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDEyMTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTggLT5cblxuIyAzMDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMjE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjE4IFwibGliL3JlYWQubWxcIlxuICB8IDE5IC0+XG5cbiMgMzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZiApXG5cbiMgMTIyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ19yZWMgdiBsZXhidWYgNThcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzMTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIEJ1ZmZlci5jb250ZW50cyB2LmJ1ZiApXG5cbiMgMTIzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBmaW5pc2hfZXNjYXBlZF9jaGFyIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxMjQwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjQxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxMjQ2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjQ3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzMTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEyNTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgbWFwX3N0cmluZyB2IGYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X21hcF9zdHJpbmdfcmVjIHYgZiBsZXhidWYgNjNcbmFuZCBfX29jYW1sX2xleF9tYXBfc3RyaW5nX3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDMxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggbGV0IGIgPSB2LmJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICBmIChCdWZmZXIuY29udGVudHMgYikgMCAoQnVmZmVyLmxlbmd0aCBiKSApXG5cbiMgMTI2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBmaW5pc2hfZXNjYXBlZF9jaGFyIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBtYXBfc3RyaW5nIHYgZiBsZXhidWYgKVxuXG4jIDEyNzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDMyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiApXG5cbiMgMTI3NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI3NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMjgxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjgyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfbWFwX3N0cmluZ19yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2VzY2FwZWRfY2hhciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfZXNjYXBlZF9jaGFyX3JlYyB2IGxleGJ1ZiA2OFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9lc2NhcGVkX2NoYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxubGV0XG5cbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgIGNcblxuIyAxMjk0IFwibGliL3JlYWQubWxcIlxuIyAxMjk0IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiBsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgaW5cblxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmIGMgKVxuXG4jIDEyOTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyOTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDMzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXGInIClcblxuIyAxMzAzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzA0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFwwMTInIClcblxuIyAxMzA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzA5IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzMzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJyApXG5cbiMgMTMxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgMzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xccicgKVxuXG4jIDEzMTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDMzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXHQnIClcblxuIyAxMzIzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzI0IFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cbmxldFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgYVxuXG4jIDEzMjkgXCJsaWIvcmVhZC5tbFwiXG4jIDEzMjkgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAxKVxuYW5kXG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgYlxuXG4jIDEzMzQgXCJsaWIvcmVhZC5tbFwiXG4jIDEzMzQgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAyKVxuYW5kXG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNcblxuIyAxMzM5IFwibGliL3JlYWQubWxcIlxuIyAxMzM5IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMylcbmFuZFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZFxuXG4jIDEzNDQgXCJsaWIvcmVhZC5tbFwiXG4jIDEzNDQgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyA0KSBpblxuXG4jIDMzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IHggPVxuICAgICAgICAgICAgIChoZXggYSBsc2wgMTIpIGxvciAoaGV4IGIgbHNsIDgpIGxvciAoaGV4IGMgbHNsIDQpIGxvciBoZXggZFxuICAgICAgICAgICBpblxuICAgICAgICAgICBpZiB4ID49IDB4RDgwMCAmJiB4IDw9IDB4REJGRiB0aGVuXG4gICAgICAgICAgICAgZmluaXNoX3N1cnJvZ2F0ZV9wYWlyIHYgeCBsZXhidWZcbiAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgIHV0Zjhfb2ZfY29kZSB2LmJ1ZiB4XG4gICAgICAgICApXG5cbiMgMTM1NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTM1NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgMzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBlc2NhcGUgc2VxdWVuY2VcIiB2IGxleGJ1ZiApXG5cbiMgMTM2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTM2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgMzQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMzY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzY2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2VzY2FwZWRfY2hhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9zdXJyb2dhdGVfcGFpciB2IHggbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdXJyb2dhdGVfcGFpcl9yZWMgdiB4IGxleGJ1ZiA4MlxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdXJyb2dhdGVfcGFpcl9yZWMgdiB4IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cbmxldFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIGFcblxuIyAxMzc4IFwibGliL3JlYWQubWxcIlxuIyAxMzc4IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMilcbmFuZFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiXG5cbiMgMTM4MyBcImxpYi9yZWFkLm1sXCJcbiMgMTM4MyBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDMpXG5hbmRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNcblxuIyAxMzg4IFwibGliL3JlYWQubWxcIlxuIyAxMzg4IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgNClcbmFuZFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRcblxuIyAxMzkzIFwibGliL3JlYWQubWxcIlxuIyAxMzkzIFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgNSkgaW5cblxuIyAzNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCB5ID1cbiAgICAgICAgICAgICAoaGV4IGEgbHNsIDEyKSBsb3IgKGhleCBiIGxzbCA4KSBsb3IgKGhleCBjIGxzbCA0KSBsb3IgaGV4IGRcbiAgICAgICAgICAgaW5cbiAgICAgICAgICAgaWYgeSA+PSAweERDMDAgJiYgeSA8PSAweERGRkYgdGhlblxuICAgICAgICAgICAgIHV0Zjhfb2Zfc3Vycm9nYXRlX3BhaXIgdi5idWYgeCB5XG4gICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICBsb25nX2Vycm9yIFwiSW52YWxpZCBsb3cgc3Vycm9nYXRlIGZvciBjb2RlIHBvaW50IGJleW9uZCBVK0ZGRkZcIlxuICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgIClcblxuIyAxNDA1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDA2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzNTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJNaXNzaW5nIGVzY2FwZSBzZXF1ZW5jZSByZXByZXNlbnRpbmcgbG93IHN1cnJvZ2F0ZSBcXFxuICAgICAgICAgICAgICAgICAgICAgICBmb3IgY29kZSBwb2ludCBiZXlvbmQgVStGRkZGXCIgdiBsZXhidWYgKVxuXG4jIDE0MTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdXJyb2dhdGVfcGFpcl9yZWMgdiB4IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3N0cmluZ2xpdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiA5MVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgICAgICAgICBsZXQgcyA9IEJ5dGVzLmNyZWF0ZSAobGVuKzEpIGluXG4gICAgICAgICAgIEJ5dGVzLnNldCBzIDAgJ1wiJztcbiAgICAgICAgICAgQnl0ZXMuYmxpdCBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBzIDEgbGVuO1xuICAgICAgICAgICBCeXRlcy50b19zdHJpbmcgc1xuICAgICAgICAgKVxuXG4jIDE0MzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgc3RyaW5nIGxpdGVyYWxcIiB2IGxleGJ1ZiApXG5cbiMgMTQzOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQzOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDQ0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF92YXJpYW50X3JlYyB2IGxleGJ1ZiAxMDJcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzc2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgeCA9IHJlYWRfanNvbiB2IGxleGJ1ZiBpblxuICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICByZWFkX2d0IHYgbGV4YnVmO1xuICAgICAgICAgICBTb21lIHggKVxuXG4jIDE0NTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggTm9uZSApXG5cbiMgMTQ2MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ2NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzgxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzODEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIG9yICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ2OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ2OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzgyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzODIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDczIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDc0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2x0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbHRfcmVjIHYgbGV4YnVmIDEwN1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbHRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM4NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDM4NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMTQ4NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ4NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzg2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzg2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE0OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDM4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDk2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9sdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfZ3QgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9ndF9yZWMgdiBsZXhidWYgMTExXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMTUwNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUwOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNTEyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTEzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzOTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE1MTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9jb21tYSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2NvbW1hX3JlYyB2IGxleGJ1ZiAxMTVcbmFuZCBfX29jYW1sX2xleF9yZWFkX2NvbW1hX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzOTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAxNTI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzOTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE1MzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTUzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfY29tbWFfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBzdGFydF9hbnlfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9zdGFydF9hbnlfdmFyaWFudF9yZWMgdiBsZXhidWYgMTE5XG5hbmQgX19vY2FtbF9sZXhfc3RhcnRfYW55X3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBgRWRneV9icmFja2V0IClcblxuIyAxNTUxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTUyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgYERvdWJsZV9xdW90ZSApXG5cbiMgMTU1NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU1OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGBTcXVhcmVfYnJhY2tldCApXG5cbiMgMTU2MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU2MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPCcsICdcXFwiJyBvciAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE1NjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNTcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTczIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfY29tbWVudF9yZWMgdiBsZXhidWYgMTI1XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDE1ODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1ODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIlVudGVybWluYXRlZCBjb21tZW50XCIgdiBsZXhidWYgKVxuXG4jIDE1ODkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1OTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgZmluaXNoX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDE1OTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1OTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDE1OTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfZW9mIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2VvZl9yZWMgbGV4YnVmIDEzMVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfZW9mX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTYxMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYxMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE2MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2VvZl9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3NwYWNlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfc3BhY2VfcmVjIHYgbGV4YnVmIDEzM1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2MjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmOyByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjMzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjM0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjM5IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0MjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjQ0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0MjcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMTY0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX251bGwgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX3JlYyB2IGxleGJ1ZiAxNDBcbmFuZCBfX29jYW1sX2xleF9yZWFkX251bGxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoICgpIClcblxuIyAxNjYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjYxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ251bGwnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNjY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjY2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjcxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9udWxsX2lmX3Bvc3NpYmxlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9pZl9wb3NzaWJsZV9yZWMgdiBsZXhidWYgMTQ3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9udWxsX2lmX3Bvc3NpYmxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNjgyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjgzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTY4NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY4OCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9pZl9wb3NzaWJsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYm9vbCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2Jvb2xfcmVjIHYgbGV4YnVmIDE1MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYm9vbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE2OTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTcwNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcwNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE3MDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQ0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTcxNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcxNSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAndHJ1ZScgb3IgJ2ZhbHNlJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTcxOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcyMCBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgNDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE3MjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2Jvb2xfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2ludCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2ludF9yZWMgdiBsZXhidWYgMTc2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQ1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgZXh0cmFjdF9wb3NpdGl2ZV9pbnQgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIEludF9vdmVyZmxvdyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludCBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxNzM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzM5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IGV4dHJhY3RfbmVnYXRpdmVfaW50IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBJbnRfb3ZlcmZsb3cgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTc0NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc0NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoICgqIFN1cHBvcnQgZm9yIGRvdWJsZS1xdW90ZWQgXCJpbnRzXCIgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgaW50IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3JlcyAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRfb2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGFuIGludGVnZXIgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhbiBpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuIyAxNzYzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzY0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIGludGVnZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE3NjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQ3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNzczIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzc0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2ludDMyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIHYgbGV4YnVmIDE4NVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQ3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgSW50MzIub2Zfc3RyaW5nIChMZXhpbmcubGV4ZW1lIGxleGJ1ZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludDMyIG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE3ODcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3ODggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCAoKiBTdXBwb3J0IGZvciBkb3VibGUtcXVvdGVkIFwiaW50c1wiICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGludCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50MzIub2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGFuIGludDMyIGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYW4gaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICApXG5cbiMgMTgwNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgwNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBpbnQzMiBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTgxMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgxMSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE4MTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2ludDMyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pbnQ2NCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2ludDY0X3JlYyB2IGxleGJ1ZiAxOTJcbmFuZCBfX29jYW1sX2xleF9yZWFkX2ludDY0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IEludDY0Lm9mX3N0cmluZyAoTGV4aW5nLmxleGVtZSBsZXhidWYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQzMiBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxODI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggKCogU3VwcG9ydCBmb3IgZG91YmxlLXF1b3RlZCBcImludHNcIiAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBpbnQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludDY0Lm9mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhbiBpbnQ2NCBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGFuIGludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4jIDE4NDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDUxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDUxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgaW50NjQgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE4NTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDUxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDUxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxODU3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODU4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pbnQ2NF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbnVtYmVyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyB2IGxleGJ1ZiAxOTlcbmFuZCBfX29jYW1sX2xleF9yZWFkX251bWJlcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIG5hbiApXG5cbiMgMTg2OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg3MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGluZmluaXR5IClcblxuIyAxODc0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODc1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbmVnX2luZmluaXR5IClcblxuIyAxODc5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODgwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmxvYXRfb2Zfc3RyaW5nIChsZXhlbWUgbGV4YnVmKSApXG5cbiMgMTg4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNTIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgZmxvYXQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzLiAqKVxuICAgICAgICAgICAgICAgICAgICBmbG9hdF9vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJOYU5cIiAtPiBuYW5cbiAgICAgICAgICAgICAgICAgICAgICB8IFwiSW5maW5pdHlcIiAtPiBpbmZpbml0eVxuICAgICAgICAgICAgICAgICAgICAgIHwgXCItSW5maW5pdHlcIiAtPiBuZWdfaW5maW5pdHlcbiAgICAgICAgICAgICAgICAgICAgICB8IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhIG51bWJlciBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGEgbnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgIClcblxuIyAxOTA2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTA3IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA1MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIG51bWJlciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTkxMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkxMiBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgNTM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE5MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX251bWJlcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfc3RyaW5nIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfc3RyaW5nX3JlYyB2IGxleGJ1ZiAyMzNcbmFuZCBfX29jYW1sX2xleF9yZWFkX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDE5MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1xcXCInIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTM1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTkzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pZGVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2lkZW50X3JlYyB2IGxleGJ1ZiAyMzdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTk1MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk1MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5sZXRcblxuIyA1NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIHNcblxuIyAxOTU4IFwibGliL3JlYWQubWxcIlxuIyAxOTU4IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZSBsZXhidWYgbGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zIGxleGJ1Zi5MZXhpbmcubGV4X2N1cnJfcG9zIGluXG5cbiMgNTUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHMgKVxuXG4jIDE5NjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5NjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDU1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxOTcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTczIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIG1hcF9pZGVudCB2IGYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X21hcF9pZGVudF9yZWMgdiBmIGxleGJ1ZiAyNDJcbmFuZCBfX29jYW1sX2xleF9tYXBfaWRlbnRfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiApXG5cbiMgMTk4NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk4NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIG1hcF9sZXhlbWUgZiBsZXhidWYgKVxuXG4jIDE5OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU2MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU2MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDU2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMDAwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDAxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfbWFwX2lkZW50X3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3NlcXVlbmNlIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgMjQ3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9zZXF1ZW5jZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIGluaXRfYWNjIGluXG4gICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsICFhY2MgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCAhYWNjIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICApXG5cbiMgMjAyNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAyNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIwMzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMDM2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDM3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9zZXF1ZW5jZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xpc3RfcmV2IHJlYWRfY2VsbCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyByZWFkX2NlbGwgdiBsZXhidWYgMjUxXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9saXN0X3Jldl9yZWMgcmVhZF9jZWxsIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICApXG5cbiMgMjA2MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA2MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIwNjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwNjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMDcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDczIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9saXN0X3Jldl9yZWMgcmVhZF9jZWxsIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2FycmF5X2VuZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9lbmRfcmVjIGxleGJ1ZiAyNTVcbmFuZCBfX29jYW1sX2xleF9yZWFkX2FycmF5X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDYwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDIwODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDYwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjA4OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA5MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiAyNTdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMTAxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTAyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAyMTA2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTA3IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIxMTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDYwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMTE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgMjYyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDYxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA2MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgNjE1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxldCBwb3MgPSByZWYgMCBpblxuICAgICAgICAgICAgICAgICAgICAgbGV0IGFjYyA9IHJlZiBpbml0X2FjYyBpblxuICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCAhcG9zICFhY2MgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGluY3IgcG9zO1xuICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgIXBvcyAhYWNjIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgcG9zO1xuICAgICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX3R1cGxlIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICAgICAgXG4jIDYzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyMTUwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTUxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjE1NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE1NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIxNjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfZW5kIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZF9yZWMgbGV4YnVmIDI2NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjE3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMTc3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTc4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9lbmQyIHYgc3RkIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZDJfcmVjIHYgc3RkIGxleGJ1ZiAyNjhcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICcpJyBvciAnJyBidXQgZm91bmRcIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIxOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGVcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICddJyBvciAnJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjIwMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIwMSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMjA1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjA2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmQyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiAyNzFcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMjE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjE4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMjIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjIzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyMjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDY1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMjMyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjMzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX3NlcDIgdiBzdGQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwMl9yZWMgdiBzdGQgbGV4YnVmIDI3NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjI0NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI0NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjYyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjYyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjI1MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI1MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZVxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjI2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjY2IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA2NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjI3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2Fic3RyYWN0X2ZpZWxkcyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzX3JlYyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmIDI4MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzX3JlYyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY3NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY3NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIGluaXRfYWNjIGluXG4gICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2tleSB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9maWVsZCAhYWNjIGZpZWxkX25hbWUgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9rZXkgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9maWVsZCAhYWNjIGZpZWxkX25hbWUgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICApXG5cbiMgMjMwNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMwNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAneycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzMDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMzE0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzE1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHNfcmVjIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbGN1cmwgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9sY3VybF9yZWMgdiBsZXhidWYgMjg2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9sY3VybF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzI2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzI3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICd7JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjMzMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMzMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIzMzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xjdXJsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9lbmRfcmVjIGxleGJ1ZiAyOTBcbmFuZCBfX29jYW1sX2xleF9yZWFkX29iamVjdF9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMjM0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzUzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzU0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3RfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIDI5MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzY2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMjM3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ30nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzc2IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA3MTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjM4MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM4MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfY29sb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9jb2xvbl9yZWMgdiBsZXhidWYgMjk3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzkzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjM5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0MDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc3RhcnRfYW55X3R1cGxlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV90dXBsZV9yZWMgdiBsZXhidWYgMzAxXG5hbmQgX19vY2FtbF9sZXhfc3RhcnRfYW55X3R1cGxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDI0MTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCB0cnVlIClcblxuIyAyNDE5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDIwIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcoJyBvciAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0MjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDcyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDMwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3R1cGxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9scGFyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbHBhcl9yZWMgdiBsZXhidWYgMzA2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9scGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI0NDEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NDIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJygnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDQ2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDQ3IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ1MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ1MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbHBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfcnBhciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3JwYXJfcmVjIHYgbGV4YnVmIDMxMFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfcnBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNDYzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDY0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ2OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ2OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0NzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3JwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xiciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xicl9yZWMgdiBsZXhidWYgMzE0XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9sYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDczOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjQ4NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ4NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDc0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDk2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9sYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3JiciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3Jicl9yZWMgdiBsZXhidWYgMzE4XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9yYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDc0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUwNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUwOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI1MTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDc0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNTE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTE4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9yYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBza2lwX2pzb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc2tpcF9qc29uX3JlYyB2IGxleGJ1ZiAzMjJcbmFuZCBfX29jYW1sX2xleF9za2lwX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDc1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTM1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDc1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU0NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU0NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNzU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTQ5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTUwIFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA3NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDc1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmaW5pc2hfc2tpcF9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI1NTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDc1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA3NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTY1IFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyA3NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOSAtPlxuXG4jIDc2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA3NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNTk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTk2IFwibGliL3JlYWQubWxcIlxuICB8IDEwIC0+XG5cbiMgNzg0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDc4NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjYxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjYxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMSAtPlxuXG4jIDc5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA3OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgODAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfdHVwbGUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgXG4jIDgxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNjM2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjM3IFwibGliL3JlYWQubWxcIlxuICB8IDEyIC0+XG5cbiMgODE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA4MjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZmluaXNoX3NraXBfdmFyaWFudCB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgODI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI2NTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTMgLT5cblxuIyA4MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTQgLT5cblxuIyA4MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1Zjsgc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjYxIFwibGliL3JlYWQubWxcIlxuICB8IDE1IC0+XG5cbiMgODMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1Zjsgc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjY2IFwibGliL3JlYWQubWxcIlxuICB8IDE2IC0+XG5cbiMgODMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjcxIFwibGliL3JlYWQubWxcIlxuICB8IDE3IC0+XG5cbiMgODM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjY3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxOCAtPlxuXG4jIDgzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWYgKVxuXG4jIDI2ODAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2ODEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9za2lwX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc2tpcF9zdHJpbmdsaXQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiAzNzhcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc2tpcF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDI2OTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2OTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgc3RyaW5nIGxpdGVyYWxcIiB2IGxleGJ1ZiApXG5cbiMgMjY5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNzAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzAzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3NraXBfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF92YXJpYW50X3JlYyB2IGxleGJ1ZiAzODlcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc2tpcF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgcmVhZF9ndCB2IGxleGJ1ZiApXG5cbiMgMjcxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMjcyMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcyMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIG9yICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjcyNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcyNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgODUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNzMxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzMyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHNraXBfaWRlbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc2tpcF9pZGVudF9yZWMgdiBsZXhidWYgMzk0XG5hbmQgX19vY2FtbF9sZXhfc2tpcF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGZpbmlzaF9za2lwX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjc0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNzQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzQ5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNzUzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzU0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA4NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjc1OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc1OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3NraXBfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfanNvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfanNvbl9yZWMgdiBsZXhidWYgMzk5XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDg3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZiApXG5cbiMgMjc3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgODcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZpbmlzaF9idWZmZXJfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyNzc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzc2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAneyc7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfb2JqZWN0X2VuZCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjgwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjgwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgODk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDg5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1snO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2FycmF5X2VuZCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODIxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODIyIFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA5MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDkxNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcoJztcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfdHVwbGVfZW5kIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfdHVwbGVfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl90dXBsZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICBcbiMgOTMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4NDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDkzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgOTM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnPCc7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBmaW5pc2hfYnVmZmVyX3ZhcmlhbnQgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDk0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODYxIFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyA5NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjsgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDk0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfc3RyaW5nIHYuYnVmIFwiLypcIjtcbiAgICAgICAgICAgICAgICAgICBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4NzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDk1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJztcbiAgICAgICAgICAgICAgICAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODc5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODgwIFwibGliL3JlYWQubWxcIlxuICB8IDkgLT5cblxuIyA5NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjsgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4ODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4ODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTAgLT5cblxuIyA5NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyODg5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODkwIFwibGliL3JlYWQubWxcIlxuICB8IDExIC0+XG5cbiMgOTU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZiApXG5cbiMgMjg5NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg5NSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIDQ1MFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXCInO1xuICAgICAgICAgICBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZlxuICAgICAgICAgKVxuXG4jIDI5MDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgc3RyaW5nIGxpdGVyYWxcIiB2IGxleGJ1ZiApXG5cbiMgMjkxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTY1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyOTE4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTE5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfYnVmZmVyX3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl92YXJpYW50X3JlYyB2IGxleGJ1ZiA0NjFcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk2OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTY4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc6JztcbiAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgYnVmZmVyX2d0IHYgbGV4YnVmIClcblxuIyAyOTMzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTM0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnPicgKVxuXG4jIDI5MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBvciAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI5NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDk3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjk0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfaWRlbnRfcmVjIHYgbGV4YnVmIDQ2NlxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGZpbmlzaF9idWZmZXJfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyOTYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTYxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5NzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5NzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWYgKVxuXG4jIDI5NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI5NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDk4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyOTc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTc2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX3NwYWNlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9zcGFjZV9yZWMgdiBsZXhidWYgNDcxXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAyOTkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTkxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5ODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIEJ1ZmZlci5hZGRfc3RyaW5nIHYuYnVmIFwiLypcIjtcbiAgICBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAyOTk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTk5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJztcbiAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMzAwNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAwNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgOTk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDMwMTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDk5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICgpIClcblxuIyAzMDE4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDE5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX29iamVjdF9lbmQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9lbmRfcmVjIHYgbGV4YnVmIDQ3OFxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3RfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKFxuICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICd9JztcbiAgICAgIHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDMwMzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAzMDM3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDM4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfb2JqZWN0X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgNDgwXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnLCcgKVxuXG4jIDMwNDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnfSc7IHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDMwNTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ30nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMDU5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDYwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMDY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDY1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfYXJyYXlfZW5kIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9lbmRfcmVjIHYgbGV4YnVmIDQ4NVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXSc7IHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMzA3NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA3NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDMwODEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwODIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2FycmF5X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiA0ODdcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJywnIClcblxuIyAzMDkzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDk0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ10nOyByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDMwOTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwOTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTAzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTA0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTA5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl90dXBsZV9lbmQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX2VuZF9yZWMgdiBsZXhidWYgNDkyXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIChcbiAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnKSc7XG4gICAgICByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDMxMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAzMTI3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTI4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl90dXBsZV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgNDk0XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcsJyApXG5cbiMgMzEzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcpJzsgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAzMTQ0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTQ1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzE0OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE1MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTAzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzE1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfY29sb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2NvbG9uX3JlYyB2IGxleGJ1ZiA0OTlcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnOicgKVxuXG4jIDMxNjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxNzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxNzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfZ3QgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2d0X3JlYyB2IGxleGJ1ZiA1MDNcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwNDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJz4nIClcblxuIyAzMTg4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTg5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzE5MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE5NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTA0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxOTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxOTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9jb21tZW50X3JlYyB2IGxleGJ1ZiA1MDdcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX3N0cmluZyB2LmJ1ZiBcIiovXCIgKVxuXG4jIDMyMTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiVW50ZXJtaW5hdGVkIGNvbW1lbnRcIiB2IGxleGJ1ZiApXG5cbiMgMzIxNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIxNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTA0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJztcbiAgICAgICAgICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmIClcblxuIyAzMjIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjIzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7IGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMzIyNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIyOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGp1bmsgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2p1bmtfcmVjIGxleGJ1ZiA1MTNcbmFuZCBfX29jYW1sX2xleF9qdW5rX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTA1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwNTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggTGV4aW5nLmxleGVtZSBsZXhidWYgKVxuXG4jIDMyMzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyNDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9qdW5rX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuOztcblxuXG4jIDEwNTUgXCJsaWIvcmVhZC5tbGxcIlxuIFxuICBcbiMgMTA1NiBcImxpYi9yZWFkLm1sbFwiXG4gIGxldCBfID0gKHJlYWRfanNvbiA6IGxleGVyX3N0YXRlIC0+IExleGluZy5sZXhidWYgLT4gdClcblxuICBsZXQgcmVhZF90ID0gcmVhZF9qc29uXG5cbiAgbGV0ICgpID1cbiAgICByZWFkX2p1bmsgOj0ganVua1xuXG4gIGxldCByZWFkX2ludDggdiBsZXhidWYgPVxuICAgIGxldCBuID0gcmVhZF9pbnQgdiBsZXhidWYgaW5cbiAgICBpZiBuIDwgMCB8fCBuID4gMjU1IHRoZW5cbiAgICAgIGxleGVyX2Vycm9yIFwiSW50OCBvdmVyZmxvd1wiIHYgbGV4YnVmXG4gICAgZWxzZVxuICAgICAgY2hhcl9vZl9pbnQgblxuXG4gIGxldCByZWFkX2xpc3QgcmVhZF9jZWxsIHYgbGV4YnVmID1cbiAgICBMaXN0LnJldiAocmVhZF9saXN0X3JldiByZWFkX2NlbGwgdiBsZXhidWYpXG5cbiAgbGV0IGFycmF5X29mX3Jldl9saXN0IGwgPVxuICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICBbXSAtPiBbfCB8XVxuICAgICAgfCB4IDo6IHRsIC0+XG4gICAgICAgICAgbGV0IGxlbiA9IExpc3QubGVuZ3RoIGwgaW5cbiAgICAgICAgICBsZXQgYSA9IEFycmF5Lm1ha2UgbGVuIHggaW5cbiAgICAgICAgICBsZXQgciA9IHJlZiB0bCBpblxuICAgICAgICAgIGZvciBpID0gbGVuIC0gMiBkb3dudG8gMCBkb1xuICAgICAgICAgICAgYS4oaSkgPC0gTGlzdC5oZCAhcjtcbiAgICAgICAgICAgIHIgOj0gTGlzdC50bCAhclxuICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgYVxuXG4gIGxldCByZWFkX2FycmF5IHJlYWRfY2VsbCB2IGxleGJ1ZiA9XG4gICAgbGV0IGwgPSByZWFkX2xpc3RfcmV2IHJlYWRfY2VsbCB2IGxleGJ1ZiBpblxuICAgIGFycmF5X29mX3Jldl9saXN0IGxcblxuICAoKiBSZWFkIGEgSlNPTiBvYmplY3QsIHJlYWRpbmcgdGhlIGtleXMgaW50byBPQ2FtbCBzdHJpbmdzXG4gICAgIChwcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSkgKilcbiAgbGV0IHJlYWRfZmllbGRzIHJlYWRfZmllbGQgaW5pdF9hY2MgdiA9XG4gICAgcmVhZF9hYnN0cmFjdF9maWVsZHMgcmVhZF9pZGVudCByZWFkX2ZpZWxkIGluaXRfYWNjIHZcblxuICBsZXQgZmluaXNoIHYgbGV4YnVmID1cbiAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgIGlmIG5vdCAocmVhZF9lb2YgbGV4YnVmKSB0aGVuXG4gICAgICBsb25nX2Vycm9yIFwiSnVuayBhZnRlciBlbmQgb2YgSlNPTiB2YWx1ZTpcIiB2IGxleGJ1ZlxuXG4gIGxldCBpbml0X2xleGVyID0gaW5pdF9sZXhlclxuXG4gIGxldCBmcm9tX2xleGJ1ZiB2ID8oc3RyZWFtID0gZmFsc2UpIGxleGJ1ZiA9XG4gICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcblxuICAgIGxldCB4ID1cbiAgICAgIGlmIHJlYWRfZW9mIGxleGJ1ZiB0aGVuXG4gICAgICAgIHJhaXNlIEVuZF9vZl9pbnB1dFxuICAgICAgZWxzZVxuICAgICAgICByZWFkX2pzb24gdiBsZXhidWZcbiAgICBpblxuXG4gICAgaWYgbm90IHN0cmVhbSB0aGVuXG4gICAgICBmaW5pc2ggdiBsZXhidWY7XG5cbiAgICB4XG5cblxuICBsZXQgZnJvbV9zdHJpbmcgP2J1ZiA/Zm5hbWUgP2xudW0gcyA9XG4gICAgdHJ5XG4gICAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fc3RyaW5nIHMgaW5cbiAgICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgICAgZnJvbV9sZXhidWYgdiBsZXhidWZcbiAgICB3aXRoIEVuZF9vZl9pbnB1dCAtPlxuICAgICAganNvbl9lcnJvciBcIkJsYW5rIGlucHV0IGRhdGFcIlxuXG4gIGxldCBmcm9tX2NoYW5uZWwgP2J1ZiA/Zm5hbWUgP2xudW0gaWMgPVxuICAgIHRyeVxuICAgICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX2NoYW5uZWwgaWMgaW5cbiAgICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgICAgZnJvbV9sZXhidWYgdiBsZXhidWZcbiAgICB3aXRoIEVuZF9vZl9pbnB1dCAtPlxuICAgICAganNvbl9lcnJvciBcIkJsYW5rIGlucHV0IGRhdGFcIlxuXG4gIGxldCBmcm9tX2ZpbGUgP2J1ZiA/Zm5hbWUgP2xudW0gZmlsZSA9XG4gICAgbGV0IGljID0gb3Blbl9pbiBmaWxlIGluXG4gICAgdHJ5XG4gICAgICBsZXQgeCA9IGZyb21fY2hhbm5lbCA/YnVmID9mbmFtZSA/bG51bSBpYyBpblxuICAgICAgY2xvc2VfaW4gaWM7XG4gICAgICB4XG4gICAgd2l0aCBlIC0+XG4gICAgICBjbG9zZV9pbl9ub2VyciBpYztcbiAgICAgIHJhaXNlIGVcblxuICBleGNlcHRpb24gRmluYWxseSBvZiBleG4gKiBleG5cblxuICBsZXQgc2VxX2Zyb21fbGV4YnVmIHYgPyhmaW4gPSBmdW4gKCkgLT4gKCkpIGxleGJ1ZiA9XG4gICAgbGV0IHN0cmVhbSA9IFNvbWUgdHJ1ZSBpblxuICAgIGxldCByZWMgZiAoKSA9XG4gICAgICB0cnkgU2VxLkNvbnMgKGZyb21fbGV4YnVmIHYgP3N0cmVhbSBsZXhidWYsIGYpXG4gICAgICB3aXRoXG4gICAgICAgICAgRW5kX29mX2lucHV0IC0+XG4gICAgICAgICAgICBmaW4gKCk7XG4gICAgICAgICAgICBTZXEuTmlsXG4gICAgICAgIHwgZSAtPlxuICAgICAgICAgICAgKHRyeSBmaW4gKCkgd2l0aCBmaW5fZSAtPiByYWlzZSAoRmluYWxseSAoZSwgZmluX2UpKSk7XG4gICAgICAgICAgICByYWlzZSBlXG4gICAgaW5cbiAgICBmXG5cbiAgbGV0IHNlcV9mcm9tX3N0cmluZyA/YnVmID9mbmFtZSA/bG51bSBzID1cbiAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICBzZXFfZnJvbV9sZXhidWYgdiAoTGV4aW5nLmZyb21fc3RyaW5nIHMpXG5cbiAgbGV0IHNlcV9mcm9tX2NoYW5uZWwgP2J1ZiA/ZmluID9mbmFtZSA/bG51bSBpYyA9XG4gICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX2NoYW5uZWwgaWMgaW5cbiAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICBzZXFfZnJvbV9sZXhidWYgdiA/ZmluIGxleGJ1ZlxuXG4gIGxldCBzZXFfZnJvbV9maWxlID9idWYgP2ZuYW1lID9sbnVtIGZpbGUgPVxuICAgIGxldCBpYyA9IG9wZW5faW4gZmlsZSBpblxuICAgIGxldCBmaW4gKCkgPSBjbG9zZV9pbiBpYyBpblxuICAgIGxldCBmbmFtZSA9XG4gICAgICBtYXRjaCBmbmFtZSB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBTb21lIGZpbGVcbiAgICAgICAgfCB4IC0+IHhcbiAgICBpblxuICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9jaGFubmVsIGljIGluXG4gICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgc2VxX2Zyb21fbGV4YnVmIHYgfmZpbiBsZXhidWZcblxuICB0eXBlIGpzb25fbGluZSA9IFsgYEpzb24gb2YgdCB8IGBFeG4gb2YgZXhuIF1cblxuICBsZXQgbGluZXNlcV9mcm9tX2NoYW5uZWxcbiAgICAgID9idWYgPyhmaW4gPSBmdW4gKCkgLT4gKCkpID9mbmFtZSA/bG51bToobG51bTAgPSAxKSBpYyA9XG4gICAgbGV0IGJ1ZiA9XG4gICAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gU29tZSAoQnVmZmVyLmNyZWF0ZSAyNTYpXG4gICAgICAgIHwgU29tZSBfIC0+IGJ1ZlxuICAgIGluXG4gICAgbGV0IHJlYyBmIGxudW0gPSBmdW4gKCkgLT5cbiAgICAgIHRyeVxuICAgICAgICBsZXQgbGluZSA9IGlucHV0X2xpbmUgaWMgaW5cbiAgICAgICAgU2VxLkNvbnMgKGBKc29uIChmcm9tX3N0cmluZyA/YnVmID9mbmFtZSB+bG51bSBsaW5lKSwgZiAobG51bSArIDEpKVxuICAgICAgd2l0aFxuICAgICAgICAgIEVuZF9vZl9maWxlIC0+IGZpbiAoKTsgU2VxLk5pbFxuICAgICAgICB8IGUgLT4gU2VxLkNvbnMgKGBFeG4gZSwgZiAobG51bSArIDEpKVxuICAgIGluXG4gICAgZiBsbnVtMFxuXG4gIGxldCBsaW5lc2VxX2Zyb21fZmlsZSA/YnVmID9mbmFtZSA/bG51bSBmaWxlID1cbiAgICBsZXQgaWMgPSBvcGVuX2luIGZpbGUgaW5cbiAgICBsZXQgZmluICgpID0gY2xvc2VfaW4gaWMgaW5cbiAgICBsZXQgZm5hbWUgPVxuICAgICAgbWF0Y2ggZm5hbWUgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gU29tZSBmaWxlXG4gICAgICAgIHwgeCAtPiB4XG4gICAgaW5cbiAgICBsaW5lc2VxX2Zyb21fY2hhbm5lbCA/YnVmIH5maW4gP2ZuYW1lID9sbnVtIGljXG5cbiAgbGV0IHByZXR0aWZ5ID9zdGQgcyA9XG4gICAgcHJldHR5X3RvX3N0cmluZyA/c3RkIChmcm9tX3N0cmluZyBzKVxuXG4gIGxldCBjb21wYWN0ID9zdGQgcyA9XG4gICAgdG9fc3RyaW5nIChmcm9tX3N0cmluZyBzKVxuXG5cbiMgMzQwOCBcImxpYi9yZWFkLm1sXCJcbiMgNjkgXCJ5b2pzb24uY3Bwby5tbFwiXG5tb2R1bGUgVXRpbCA9XG5zdHJ1Y3RcbiMgMSBcInV0aWwubWxcIlxuZXhjZXB0aW9uIFR5cGVfZXJyb3Igb2Ygc3RyaW5nICogdFxuXG5sZXQgdHlwZW9mID0gZnVuY3Rpb25cbiAgfCBgQXNzb2MgXyAtPiBcIm9iamVjdFwiXG4gIHwgYEJvb2wgXyAtPiBcImJvb2xcIlxuICB8IGBGbG9hdCBfIC0+IFwiZmxvYXRcIlxuICB8IGBJbnQgXyAtPiBcImludFwiXG4gIHwgYExpc3QgXyAtPiBcImFycmF5XCJcbiAgfCBgTnVsbCAtPiBcIm51bGxcIlxuICB8IGBTdHJpbmcgXyAtPiBcInN0cmluZ1wiXG4gIHwgYEludGxpdCBfIC0+IFwiaW50bGl0XCJcbiAgfCBgVHVwbGUgXyAtPiBcInR1cGxlXCJcbiAgfCBgVmFyaWFudCBfIC0+IFwidmFyaWFudFwiXG5cbmxldCB0eXBlcnIgbXNnIGpzID0gcmFpc2UgKFR5cGVfZXJyb3IgKG1zZyBeIHR5cGVvZiBqcywganMpKVxuXG5leGNlcHRpb24gVW5kZWZpbmVkIG9mIHN0cmluZyAqIHRcblxubGV0IGFzc29jIG5hbWUgb2JqID1cbiAgdHJ5IExpc3QuYXNzb2MgbmFtZSBvYmpcbiAgd2l0aCBOb3RfZm91bmQgLT4gYE51bGxcblxubGV0IG1lbWJlciBuYW1lID0gZnVuY3Rpb25cbiAgfCBgQXNzb2Mgb2JqIC0+IGFzc29jIG5hbWUgb2JqXG4gIHwganMgLT4gdHlwZXJyIChcIkNhbid0IGdldCBtZW1iZXIgJ1wiIF4gbmFtZSBeIFwiJyBvZiBub24tb2JqZWN0IHR5cGUgXCIpIGpzXG5cbmxldCBpbmRleCBpID0gZnVuY3Rpb25cbiAgfCBgTGlzdCBsIGFzIGpzIC0+XG4gICAgICBsZXQgbGVuID0gTGlzdC5sZW5ndGggbCBpblxuICAgICAgbGV0IHdyYXBwZWRfaW5kZXggPSBpZiBpIDwgMCB0aGVuIGxlbiArIGkgZWxzZSBpIGluXG4gICAgICBpZiB3cmFwcGVkX2luZGV4IDwgMCB8fCB3cmFwcGVkX2luZGV4ID49IGxlbiB0aGVuXG4gICAgICAgIHJhaXNlIChVbmRlZmluZWQgKFwiSW5kZXggXCIgXiBzdHJpbmdfb2ZfaW50IGkgXiBcIiBvdXQgb2YgYm91bmRzXCIsIGpzKSlcbiAgICAgIGVsc2UgTGlzdC5udGggbCB3cmFwcGVkX2luZGV4XG4gIHwganMgLT4gdHlwZXJyIChcIkNhbid0IGdldCBpbmRleCBcIiBeIHN0cmluZ19vZl9pbnQgaVxuICAgICAgICAgICAgICAgICBeIFwiIG9mIG5vbi1hcnJheSB0eXBlIFwiKSBqc1xuXG5sZXQgbWFwIGYgPSBmdW5jdGlvblxuICB8IGBMaXN0IGwgLT4gYExpc3QgKExpc3QubWFwIGYgbClcbiAgfCBqcyAtPiB0eXBlcnIgXCJDYW4ndCBtYXAgZnVuY3Rpb24gb3ZlciBub24tYXJyYXkgdHlwZSBcIiBqc1xuXG5sZXQgdG9fYXNzb2MgPSBmdW5jdGlvblxuICB8IGBBc3NvYyBvYmogLT4gb2JqXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgb2JqZWN0LCBnb3QgXCIganNcblxubGV0IHRvX29wdGlvbiBmID0gZnVuY3Rpb25cbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwgeCAtPiBTb21lIChmIHgpXG5cbmxldCB0b19ib29sID0gZnVuY3Rpb25cbiAgfCBgQm9vbCBiIC0+IGJcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBib29sLCBnb3QgXCIganNcblxubGV0IHRvX2Jvb2xfb3B0aW9uID0gZnVuY3Rpb25cbiAgfCBgQm9vbCBiIC0+IFNvbWUgYlxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBib29sIG9yIG51bGwsIGdvdCBcIiBqc1xuXG5sZXQgdG9fbnVtYmVyID0gZnVuY3Rpb25cbiAgfCBgSW50IGkgLT4gZmxvYXQgaVxuICB8IGBGbG9hdCBmIC0+IGZcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBudW1iZXIsIGdvdCBcIiBqc1xuXG5sZXQgdG9fbnVtYmVyX29wdGlvbiA9IGZ1bmN0aW9uXG4gIHwgYEludCBpIC0+IFNvbWUgKGZsb2F0IGkpXG4gIHwgYEZsb2F0IGYgLT4gU29tZSBmXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIG51bWJlciBvciBudWxsLCBnb3QgXCIganNcblxubGV0IHRvX2Zsb2F0ID0gZnVuY3Rpb25cbiAgfCBgRmxvYXQgZiAtPiBmXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgZmxvYXQsIGdvdCBcIiBqc1xuXG5sZXQgdG9fZmxvYXRfb3B0aW9uID0gZnVuY3Rpb25cbiAgfCBgRmxvYXQgZiAtPiBTb21lIGZcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgZmxvYXQgb3IgbnVsbCwgZ290IFwiIGpzXG5cbmxldCB0b19pbnQgPSBmdW5jdGlvblxuICB8IGBJbnQgaSAtPiBpXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgaW50LCBnb3QgXCIganNcblxubGV0IHRvX2ludF9vcHRpb24gPSBmdW5jdGlvblxuICB8IGBJbnQgaSAtPiBTb21lIGlcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgaW50IG9yIG51bGwsIGdvdCBcIiBqc1xuXG5sZXQgdG9fbGlzdCA9IGZ1bmN0aW9uXG4gIHwgYExpc3QgbCAtPiBsXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgYXJyYXksIGdvdCBcIiBqc1xuXG5sZXQgdG9fc3RyaW5nID0gZnVuY3Rpb25cbiAgfCBgU3RyaW5nIHMgLT4gc1xuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIHN0cmluZywgZ290IFwiIGpzXG5cbmxldCB0b19zdHJpbmdfb3B0aW9uID0gZnVuY3Rpb25cbiAgfCBgU3RyaW5nIHMgLT4gU29tZSBzXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIHN0cmluZyBvciBudWxsLCBnb3QgXCIganNcblxubGV0IGNvbnZlcnRfZWFjaCBmID0gZnVuY3Rpb25cbiAgfCBgTGlzdCBsIC0+IExpc3QubWFwIGYgbFxuICB8IGpzIC0+IHR5cGVyciBcIkNhbid0IGNvbnZlcnQgZWFjaCBlbGVtZW50IG9mIG5vbi1hcnJheSB0eXBlIFwiIGpzXG5cblxubGV0IHJlYyByZXZfZmlsdGVyX21hcCBmIGFjYyBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gICAgICBbXSAtPiBhY2NcbiAgICB8IHggOjogdGwgLT5cbiAgICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgICAgICAgIE5vbmUgLT4gcmV2X2ZpbHRlcl9tYXAgZiBhY2MgdGxcbiAgICAgICAgICB8IFNvbWUgeSAtPiByZXZfZmlsdGVyX21hcCBmICh5IDo6IGFjYykgdGxcblxubGV0IGZpbHRlcl9tYXAgZiBsID1cbiAgTGlzdC5yZXYgKHJldl9maWx0ZXJfbWFwIGYgW10gbClcblxubGV0IHJlYyByZXZfZmxhdHRlbiBhY2MgbCA9XG4gIG1hdGNoIGwgd2l0aFxuICAgICAgW10gLT4gYWNjXG4gICAgfCB4IDo6IHRsIC0+XG4gICAgICAgIG1hdGNoIHggd2l0aFxuICAgICAgICAgICAgYExpc3QgbDIgLT4gcmV2X2ZsYXR0ZW4gKExpc3QucmV2X2FwcGVuZCBsMiBhY2MpIHRsXG4gICAgICAgICAgfCBfIC0+IHJldl9mbGF0dGVuIGFjYyB0bFxuXG5sZXQgZmxhdHRlbiBsID1cbiAgTGlzdC5yZXYgKHJldl9mbGF0dGVuIFtdIGwpXG5cbmxldCBmaWx0ZXJfaW5kZXggaSBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYExpc3QgbCAtPlxuICAgICAgICAgICh0cnkgU29tZSAoTGlzdC5udGggbCBpKVxuICAgICAgICAgICB3aXRoIF8gLT4gTm9uZSlcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX2xpc3QgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBMaXN0IGwgLT4gU29tZSBsXG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9tZW1iZXIgayBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEFzc29jIGwgLT5cbiAgICAgICAgICAodHJ5IFNvbWUgKExpc3QuYXNzb2MgayBsKVxuICAgICAgICAgICB3aXRoIF8gLT4gTm9uZSlcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX2Fzc29jIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgQXNzb2MgbCAtPiBTb21lIGxcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX2Jvb2wgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBCb29sIHggLT4gU29tZSB4XG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9pbnQgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBJbnQgeCAtPiBTb21lIHhcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX2Zsb2F0IGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgRmxvYXQgeCAtPiBTb21lIHhcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX251bWJlciBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEludCB4IC0+IFNvbWUgKGZsb2F0IHgpXG4gICAgICB8IGBGbG9hdCB4IC0+IFNvbWUgeFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfc3RyaW5nIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgU3RyaW5nIHggLT4gU29tZSB4XG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGtleXMgbyA9XG4gIHRvX2Fzc29jIG8gfD4gTGlzdC5tYXAgKGZ1biAoa2V5LCBfKSAtPiBrZXkpXG5cbmxldCB2YWx1ZXMgbyA9XG4gIHRvX2Fzc29jIG8gfD4gTGlzdC5tYXAgKGZ1biAoXywgdmFsdWUpIC0+IHZhbHVlKVxuXG5sZXQgY29tYmluZSAoZmlyc3QgOiB0KSAoc2Vjb25kIDogdCkgPVxuICBtYXRjaCAoZmlyc3QsIHNlY29uZCkgd2l0aFxuICB8IChgQXNzb2MgYSwgYEFzc29jIGIpIC0+IChgQXNzb2MgKGEgQCBiKSA6ICB0KVxuICB8IChhLCBiKSAtPiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCBcIkV4cGVjdGVkIHR3byBvYmplY3RzLCBjaGVjayBpbnB1dHNcIilcbiMgNzIgXCJ5b2pzb24uY3Bwby5tbFwiXG5lbmRcbiMgNzkgXCJ5b2pzb24uY3Bwby5tbFwiXG5lbmRcblxubW9kdWxlIFJhdyA9XG5zdHJ1Y3RcbiMgMSBcInR5cGUubWxcIlxuKCoqIHszIFR5cGUgb2YgdGhlIEpTT04gdHJlZX0gKilcblxudHlwZSB0ID1cbiAgICBbXG4gICAgfCBgTnVsbFxuICAgIHwgYEJvb2wgb2YgYm9vbFxuICAgIFxuIyAxMSBcInR5cGUubWxcIlxuICAgIHwgYEludGxpdCBvZiBzdHJpbmdcbiAgICBcbiMgMTcgXCJ0eXBlLm1sXCJcbiAgICB8IGBGbG9hdGxpdCBvZiBzdHJpbmdcbiAgICBcbiMgMjMgXCJ0eXBlLm1sXCJcbiAgICB8IGBTdHJpbmdsaXQgb2Ygc3RyaW5nXG4gICAgXG4jIDI1IFwidHlwZS5tbFwiXG4gICAgfCBgQXNzb2Mgb2YgKHN0cmluZyAqIHQpIGxpc3RcbiAgICB8IGBMaXN0IG9mIHQgbGlzdFxuICAgIFxuIyAyOCBcInR5cGUubWxcIlxuICAgIHwgYFR1cGxlIG9mIHQgbGlzdFxuICAgIFxuIyAzMSBcInR5cGUubWxcIlxuICAgIHwgYFZhcmlhbnQgb2YgKHN0cmluZyAqIHQgb3B0aW9uKVxuICAgIFxuIyAzMyBcInR5cGUubWxcIlxuICAgIF1cbigqKlxuQWxsIHBvc3NpYmxlIGNhc2VzIGRlZmluZWQgaW4gWW9qc29uOlxuLSBgTnVsbDogSlNPTiBudWxsXG4tIGBCb29sIG9mIGJvb2w6IEpTT04gYm9vbGVhblxuLSBgSW50IG9mIGludDogSlNPTiBudW1iZXIgd2l0aG91dCBkZWNpbWFsIHBvaW50IG9yIGV4cG9uZW50LlxuLSBgSW50bGl0IG9mIHN0cmluZzogSlNPTiBudW1iZXIgd2l0aG91dCBkZWNpbWFsIHBvaW50IG9yIGV4cG9uZW50LFxuXHQgICAgcHJlc2VydmVkIGFzIGEgc3RyaW5nLlxuLSBgRmxvYXQgb2YgZmxvYXQ6IEpTT04gbnVtYmVyLCBJbmZpbml0eSwgLUluZmluaXR5IG9yIE5hTi5cbi0gYEZsb2F0bGl0IG9mIHN0cmluZzogSlNPTiBudW1iZXIsIEluZmluaXR5LCAtSW5maW5pdHkgb3IgTmFOLFxuXHQgICAgcHJlc2VydmVkIGFzIGEgc3RyaW5nLlxuLSBgU3RyaW5nIG9mIHN0cmluZzogSlNPTiBzdHJpbmcuIEJ5dGVzIGluIHRoZSByYW5nZSAxMjgtMjU1IGFyZSBwcmVzZXJ2ZWRcblx0ICAgIGFzLWlzIHdpdGhvdXQgZW5jb2RpbmcgdmFsaWRhdGlvbiBmb3IgYm90aCByZWFkaW5nXG5cdCAgICBhbmQgd3JpdGluZy5cbi0gYFN0cmluZ2xpdCBvZiBzdHJpbmc6IEpTT04gc3RyaW5nIGxpdGVyYWwgaW5jbHVkaW5nIHRoZSBkb3VibGUgcXVvdGVzLlxuLSBgQXNzb2Mgb2YgKHN0cmluZyAqIGpzb24pIGxpc3Q6IEpTT04gb2JqZWN0LlxuLSBgTGlzdCBvZiBqc29uIGxpc3Q6IEpTT04gYXJyYXkuXG4tIGBUdXBsZSBvZiBqc29uIGxpc3Q6IFR1cGxlIChub24tc3RhbmRhcmQgZXh0ZW5zaW9uIG9mIEpTT04pLlxuXHQgICAgU3ludGF4OiBbKFwiYWJjXCIsIDEyMyldLlxuLSBgVmFyaWFudCBvZiAoc3RyaW5nICoganNvbiBvcHRpb24pOiBWYXJpYW50IChub24tc3RhbmRhcmQgZXh0ZW5zaW9uIG9mIEpTT04pLlxuXHQgICAgU3ludGF4OiBbPFwiRm9vXCI+XSBvciBbPFwiQmFyXCI6MTIzPl0uXG4qKVxuXG4oKlxuICBOb3RlIHRvIGFkdmVudHVyZXJzOiBvY2FtbGRvYyBkb2VzIG5vdCBzdXBwb3J0IGlubGluZSBjb21tZW50c1xuICBvbiBlYWNoIHBvbHltb3JwaGljIHZhcmlhbnQsIGFuZCBjcHBvIGRvZXNuJ3QgYWxsb3cgdG8gY29uY2F0ZW5hdGVcbiAgY29tbWVudHMsIHNvIGl0IHdvdWxkIGJlIGNvbXBsaWNhdGVkIHRvIGRvY3VtZW50IG9ubHkgdGhlXG4gIGNhc2VzIHRoYXQgYXJlIHByZXNlcnZlZCBieSBjcHBvIGluIHRoZSB0eXBlIGRlZmluaXRpb24uXG4qKVxuIyAxIFwid3JpdGUubWxcIlxuKCogaW5jbHVkZWQ6IHR5cGUubWwgKilcblxubGV0IGhleCBuID1cbiAgQ2hhci5jaHIgKFxuICAgIGlmIG4gPCAxMCB0aGVuIG4gKyA0OFxuICAgIGVsc2UgbiArIDg3XG4gIClcblxubGV0IHdyaXRlX3NwZWNpYWwgc3JjIHN0YXJ0IHN0b3Agb2Igc3RyID1cbiAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoc3RvcCAtICFzdGFydCk7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHN0cjtcbiAgc3RhcnQgOj0gc3RvcCArIDFcblxubGV0IHdyaXRlX2NvbnRyb2xfY2hhciBzcmMgc3RhcnQgc3RvcCBvYiBjID1cbiAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoc3RvcCAtICFzdGFydCk7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiXFxcXHUwMFwiO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgKGhleCAoQ2hhci5jb2RlIGMgbHNyIDQpKTtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iIChoZXggKENoYXIuY29kZSBjIGxhbmQgMHhmKSk7XG4gIHN0YXJ0IDo9IHN0b3AgKyAxXG5cbmxldCBmaW5pc2hfc3RyaW5nIHNyYyBzdGFydCBvYiA9XG4gIHRyeVxuICAgIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKFN0cmluZy5sZW5ndGggc3JjIC0gIXN0YXJ0KVxuICB3aXRoIGV4YyAtPlxuICAgIFByaW50Zi5lcHJpbnRmIFwic3JjPSVTIHN0YXJ0PSVpIGxlbj0laVxcbiUhXCJcbiAgICAgIHNyYyAhc3RhcnQgKFN0cmluZy5sZW5ndGggc3JjIC0gIXN0YXJ0KTtcbiAgICByYWlzZSBleGNcblxubGV0IHdyaXRlX3N0cmluZ19ib2R5IG9iIHMgPVxuICBsZXQgc3RhcnQgPSByZWYgMCBpblxuICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgICAgJ1wiJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxcXFwiXCJcbiAgICAgIHwgJ1xcXFwnIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXFxcXFxcIlxuICAgICAgfCAnXFxiJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxiXCJcbiAgICAgIHwgJ1xcMDEyJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxmXCJcbiAgICAgIHwgJ1xcbicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcblwiXG4gICAgICB8ICdcXHInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXHJcIlxuICAgICAgfCAnXFx0JyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFx0XCJcbiAgICAgIHwgJ1xceDAwJy4uJ1xceDFGJ1xuICAgICAgfCAnXFx4N0YnIGFzIGMgLT4gd3JpdGVfY29udHJvbF9jaGFyIHMgc3RhcnQgaSBvYiBjXG4gICAgICB8IF8gLT4gKClcbiAgZG9uZTtcbiAgZmluaXNoX3N0cmluZyBzIHN0YXJ0IG9iXG5cbmxldCB3cml0ZV9zdHJpbmcgb2IgcyA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXCInO1xuICB3cml0ZV9zdHJpbmdfYm9keSBvYiBzO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1wiJ1xuXG5sZXQganNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMgPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDEwIGluXG4gIHdyaXRlX3N0cmluZyBvYiBzO1xuICBCdWZmZXIuY29udGVudHMgb2JcblxubGV0IHRlc3Rfc3RyaW5nICgpID1cbiAgbGV0IHMgPSBCeXRlcy5jcmVhdGUgMjU2IGluXG4gIGZvciBpID0gMCB0byAyNTUgZG9cbiAgICBCeXRlcy5zZXQgcyBpIChDaGFyLmNociBpKVxuICBkb25lO1xuICBqc29uX3N0cmluZ19vZl9zdHJpbmcgKEJ5dGVzLnRvX3N0cmluZyBzKVxuXG5cbmxldCB3cml0ZV9udWxsIG9iICgpID1cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJudWxsXCJcblxubGV0IHdyaXRlX2Jvb2wgb2IgeCA9XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4IHRoZW4gXCJ0cnVlXCIgZWxzZSBcImZhbHNlXCIpXG5cblxubGV0IG1heF9kaWdpdHMgPVxuICBtYXhcbiAgICAoU3RyaW5nLmxlbmd0aCAoc3RyaW5nX29mX2ludCBtYXhfaW50KSlcbiAgICAoU3RyaW5nLmxlbmd0aCAoc3RyaW5nX29mX2ludCBtaW5faW50KSlcblxubGV0IGRlYyBuID1cbiAgQ2hhci5jaHIgKG4gKyA0OClcblxubGV0IHJlYyB3cml0ZV9kaWdpdHMgcyB4ID1cbiAgaWYgeCA9IDAgdGhlbiAoKVxuICBlbHNlXG4gICAgbGV0IGQgPSB4IG1vZCAxMCBpblxuICAgIHdyaXRlX2RpZ2l0cyBzICh4IC8gMTApO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBzIChkZWMgKGFicyBkKSlcblxubGV0IHdyaXRlX2ludCBvYiB4ID1cbiAgaWYgeCA+IDAgdGhlblxuICAgIHdyaXRlX2RpZ2l0cyBvYiB4XG4gIGVsc2UgaWYgeCA8IDAgdGhlbiAoXG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICctJztcbiAgICB3cml0ZV9kaWdpdHMgb2IgeFxuICApXG4gIGVsc2VcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzAnXG5cblxubGV0IGpzb25fc3RyaW5nX29mX2ludCBpID1cbiAgc3RyaW5nX29mX2ludCBpXG5cblxuKCpcbiAgRW5zdXJlIHRoYXQgdGhlIGZsb2F0IGlzIG5vdCBwcmludGVkIGFzIGFuIGludC5cbiAgVGhpcyBpcyBub3QgcmVxdWlyZWQgYnkgSlNPTiwgYnV0IHVzZWZ1bCBpbiBvcmRlciB0byBndWFyYW50ZWVcbiAgcmV2ZXJzaWJpbGl0eS5cbiopXG5sZXQgZmxvYXRfbmVlZHNfcGVyaW9kIHMgPVxuICB0cnlcbiAgICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgICAgICcwJy4uJzknIHwgJy0nIC0+ICgpXG4gICAgICAgIHwgXyAtPiByYWlzZSBFeGl0XG4gICAgZG9uZTtcbiAgICB0cnVlXG4gIHdpdGggRXhpdCAtPlxuICAgIGZhbHNlXG5cbigqXG4gIEd1YXJhbnRlZXMgdGhhdCBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIGRpZ2l0cyBhcmUgcHJpbnRlZCBpbiBvcmRlciB0byBhbGxvd1xuICByZXZlcnNpYmlsaXR5LlxuKilcbmxldCB3cml0ZV9mbG9hdCBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIk5hTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4ID4gMC4gdGhlbiBcIkluZmluaXR5XCIgZWxzZSBcIi1JbmZpbml0eVwiKVxuICB8IF8gLT5cbiAgICAgIGxldCBzMSA9IFByaW50Zi5zcHJpbnRmIFwiJS4xNmdcIiB4IGluXG4gICAgICBsZXQgcyA9XG4gICAgICAgIGlmIGZsb2F0X29mX3N0cmluZyBzMSA9IHggdGhlbiBzMVxuICAgICAgICBlbHNlIFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4XG4gICAgICBpblxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgICAgIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbmxldCB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBsZXQgb3BlbiBQcmludGYgaW5cbiAgbGV0IHMgPVxuICAgIG1hdGNoIHNpZ25pZmljYW50X2ZpZ3VyZXMgd2l0aFxuICAgICAgICAxIC0+IHNwcmludGYgXCIlLjFnXCIgeFxuICAgICAgfCAyIC0+IHNwcmludGYgXCIlLjJnXCIgeFxuICAgICAgfCAzIC0+IHNwcmludGYgXCIlLjNnXCIgeFxuICAgICAgfCA0IC0+IHNwcmludGYgXCIlLjRnXCIgeFxuICAgICAgfCA1IC0+IHNwcmludGYgXCIlLjVnXCIgeFxuICAgICAgfCA2IC0+IHNwcmludGYgXCIlLjZnXCIgeFxuICAgICAgfCA3IC0+IHNwcmludGYgXCIlLjdnXCIgeFxuICAgICAgfCA4IC0+IHNwcmludGYgXCIlLjhnXCIgeFxuICAgICAgfCA5IC0+IHNwcmludGYgXCIlLjlnXCIgeFxuICAgICAgfCAxMCAtPiBzcHJpbnRmIFwiJS4xMGdcIiB4XG4gICAgICB8IDExIC0+IHNwcmludGYgXCIlLjExZ1wiIHhcbiAgICAgIHwgMTIgLT4gc3ByaW50ZiBcIiUuMTJnXCIgeFxuICAgICAgfCAxMyAtPiBzcHJpbnRmIFwiJS4xM2dcIiB4XG4gICAgICB8IDE0IC0+IHNwcmludGYgXCIlLjE0Z1wiIHhcbiAgICAgIHwgMTUgLT4gc3ByaW50ZiBcIiUuMTVnXCIgeFxuICAgICAgfCAxNiAtPiBzcHJpbnRmIFwiJS4xNmdcIiB4XG4gICAgICB8IF8gLT4gc3ByaW50ZiBcIiUuMTdnXCIgeFxuICBpblxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbigqIHVzZWQgYnkgYXRkZ2VuICopXG5sZXQgd3JpdGVfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiTmFOXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggPiAwLiB0aGVuIFwiSW5maW5pdHlcIiBlbHNlIFwiLUluZmluaXR5XCIpXG4gIHwgXyAtPlxuICAgICAgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4XG5cbmxldCBqc29uX3N0cmluZ19vZl9mbG9hdCB4ID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAyMCBpblxuICB3cml0ZV9mbG9hdCBvYiB4O1xuICBCdWZmZXIuY29udGVudHMgb2JcblxuXG5sZXQgd3JpdGVfc3RkX2Zsb2F0IG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIGpzb25fZXJyb3IgXCJOYU4gdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIGpzb25fZXJyb3JcbiAgICAgICAgKGlmIHggPiAwLiB0aGVuXG4gICAgICAgICAgIFwiSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIFwiLUluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIilcbiAgfCBfIC0+XG4gICAgICBsZXQgczEgPSBQcmludGYuc3ByaW50ZiBcIiUuMTZnXCIgeCBpblxuICAgICAgbGV0IHMgPVxuICAgICAgICBpZiBmbG9hdF9vZl9zdHJpbmcgczEgPSB4IHRoZW4gczFcbiAgICAgICAgZWxzZSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeFxuICAgICAgaW5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gICAgICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG4oKiB1c2VkIGJ5IGF0ZGdlbiAqKVxubGV0IHdyaXRlX3N0ZF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAganNvbl9lcnJvciBcIk5hTiB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAganNvbl9lcnJvclxuICAgICAgICAoaWYgeCA+IDAuIHRoZW5cbiAgICAgICAgICAgXCJJbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgXCItSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiKVxuICB8IF8gLT5cbiAgICAgIHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeFxuXG5sZXQgc3RkX2pzb25fc3RyaW5nX29mX2Zsb2F0IHggPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDIwIGluXG4gIHdyaXRlX3N0ZF9mbG9hdCBvYiB4O1xuICBCdWZmZXIuY29udGVudHMgb2JcblxuXG5sZXQgdGVzdF9mbG9hdCAoKSA9XG4gIGxldCBsID0gWyAwLjsgMS47IC0xLiBdIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiAyLiAqLiB4ICsuIDEuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4IC8uIHNxcnQgMi4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggKi4gc3FydCAzLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCBjb3MgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAqLiAxLjIzZTUwKSBsIGluXG4gIGxldCBsID0gbCBAIFsgaW5maW5pdHk7IG5lZ19pbmZpbml0eSBdIGluXG4gIExpc3QuaXRlciAoXG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzID0gUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHggaW5cbiAgICAgIGxldCB5ID0gZmxvYXRfb2Zfc3RyaW5nIHMgaW5cbiAgICAgIFByaW50Zi5wcmludGYgXCIlZyAlZyAlUyAlQlxcblwiIHggeSBzICh4ID0geSlcbiAgKVxuICAgIGxcblxuKCpcbmxldCAoKSA9IHRlc3RfZmxvYXQgKClcbiopXG5cbmxldCB3cml0ZV9pbnRsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xubGV0IHdyaXRlX2Zsb2F0bGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcbmxldCB3cml0ZV9zdHJpbmdsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xuXG5sZXQgcmVjIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IHkgOjogbCAtPlxuICAgICAgZl9zZXAgeDtcbiAgICAgIGZfZWx0IHggeTtcbiAgICAgIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4IGxcblxubGV0IGl0ZXIyIGZfZWx0IGZfc2VwIHggPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgeSA6OiBsIC0+XG4gICAgICBmX2VsdCB4IHk7XG4gICAgICBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCBsXG5cbmxldCBmX3NlcCBvYiA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnLCdcblxubGV0IHJlYyB3cml0ZV9qc29uIG9iICh4IDogdCkgPVxuICBtYXRjaCB4IHdpdGhcbiAgICAgIGBOdWxsIC0+IHdyaXRlX251bGwgb2IgKClcbiAgICB8IGBCb29sIGIgLT4gd3JpdGVfYm9vbCBvYiBiXG4gICAgXG4jIDI2NyBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnRsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDI3MyBcIndyaXRlLm1sXCJcbiAgICB8IGBGbG9hdGxpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMjc5IFwid3JpdGUubWxcIlxuICAgIHwgYFN0cmluZ2xpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMjgxIFwid3JpdGUubWxcIlxuICAgIHwgYEFzc29jIGwgLT4gd3JpdGVfYXNzb2Mgb2IgbFxuICAgIHwgYExpc3QgbCAtPiB3cml0ZV9saXN0IG9iIGxcbiAgICBcbiMgMjg0IFwid3JpdGUubWxcIlxuICAgIHwgYFR1cGxlIGwgLT4gd3JpdGVfdHVwbGUgb2IgbFxuICAgIFxuIyAyODcgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVmFyaWFudCAocywgbykgLT4gd3JpdGVfdmFyaWFudCBvYiBzIG9cblxuIyAyOTAgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfYXNzb2Mgb2IgbCA9XG4gIGxldCBmX2VsdCBvYiAocywgeCkgPVxuICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgd3JpdGVfanNvbiBvYiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAneyc7XG4gIGl0ZXIyIGZfZWx0IGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnfSc7XG5cbmFuZCB3cml0ZV9saXN0IG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuIyAzMDYgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfdHVwbGUgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnKCc7XG4gIGl0ZXIyIHdyaXRlX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICcpJ1xuXG4jIDMxMyBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV92YXJpYW50IG9iIHMgbyA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnPCc7XG4gIHdyaXRlX3N0cmluZyBvYiBzO1xuICAobWF0Y2ggbyB3aXRoXG4gICAgICAgTm9uZSAtPiAoKVxuICAgICB8IFNvbWUgeCAtPlxuICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICAgICAgIHdyaXRlX2pzb24gb2IgeFxuICApO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJz4nXG5cbiMgMzI1IFwid3JpdGUubWxcIlxubGV0IHdyaXRlX3QgPSB3cml0ZV9qc29uXG5cbmxldCByZWMgd3JpdGVfc3RkX2pzb24gb2IgKHggOiB0KSA9XG4gIG1hdGNoIHggd2l0aFxuICAgICAgYE51bGwgLT4gd3JpdGVfbnVsbCBvYiAoKVxuICAgIHwgYEJvb2wgYiAtPiB3cml0ZV9ib29sIG9iIGJcbiAgICBcbiMgMzM1IFwid3JpdGUubWxcIlxuICAgIHwgYEludGxpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMzQxIFwid3JpdGUubWxcIlxuICAgIHwgYEZsb2F0bGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAzNDcgXCJ3cml0ZS5tbFwiXG4gICAgfCBgU3RyaW5nbGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAzNDkgXCJ3cml0ZS5tbFwiXG4gICAgfCBgQXNzb2MgbCAtPiB3cml0ZV9zdGRfYXNzb2Mgb2IgbFxuICAgIHwgYExpc3QgbCAtPiB3cml0ZV9zdGRfbGlzdCBvYiBsXG4gICAgXG4jIDM1MiBcIndyaXRlLm1sXCJcbiAgICB8IGBUdXBsZSBsIC0+IHdyaXRlX3N0ZF90dXBsZSBvYiBsXG4gICAgXG4jIDM1NSBcIndyaXRlLm1sXCJcbiAgICB8IGBWYXJpYW50IChzLCBvKSAtPiB3cml0ZV9zdGRfdmFyaWFudCBvYiBzIG9cblxuIyAzNTggXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfc3RkX2Fzc29jIG9iIGwgPVxuICBsZXQgZl9lbHQgb2IgKHMsIHgpID1cbiAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgIHdyaXRlX3N0ZF9qc29uIG9iIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd7JztcbiAgaXRlcjIgZl9lbHQgZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd9JztcblxuYW5kIHdyaXRlX3N0ZF9saXN0IG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9zdGRfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cbmFuZCB3cml0ZV9zdGRfdHVwbGUgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX3N0ZF9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuIyAzNzkgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfc3RkX3ZhcmlhbnQgb2IgcyBvID1cbiAgbWF0Y2ggbyB3aXRoXG4gICAgICBOb25lIC0+IHdyaXRlX3N0cmluZyBvYiBzXG4gICAgfCBTb21lIHggLT5cbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgICAgICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnLCc7XG4gICAgICAgIHdyaXRlX3N0ZF9qc29uIG9iIHg7XG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuXG4jIDM5MSBcIndyaXRlLm1sXCJcbmxldCB0b19idWZmZXIgPyhzdWYgPSBcIlwiKSA/KHN0ZCA9IGZhbHNlKSBvYiB4ID1cbiAgaWYgc3RkIHRoZW5cbiAgICB3cml0ZV9zdGRfanNvbiBvYiB4XG4gIGVsc2VcbiAgICB3cml0ZV9qc29uIG9iIHg7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHN1ZlxuXG5sZXQgdG9fc3RyaW5nID9idWYgPyhsZW4gPSAyNTYpID8oc3VmID0gXCJcIikgP3N0ZCB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT5cbiAgICAgICAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICAgICAgICAgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBvYiBpblxuICBCdWZmZXIuY2xlYXIgb2I7XG4gIHNcblxubGV0IHRvX2NoYW5uZWwgP2J1ZiA/KGxlbj00MDk2KSA/KHN1ZiA9IFwiXCIpID9zdGQgb2MgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBCdWZmZXIub3V0cHV0X2J1ZmZlciBvYyBvYjtcbiAgQnVmZmVyLmNsZWFyIG9iXG5cbmxldCB0b19vdXRwdXQgP2J1ZiA/KGxlbj00MDk2KSA/KHN1ZiA9IFwiXCIpID9zdGQgb3V0IHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgb3V0I291dHB1dCAoQnVmZmVyLmNvbnRlbnRzIG9iKSAwIChCdWZmZXIubGVuZ3RoIG9iKTtcbiAgQnVmZmVyLmNsZWFyIG9iXG5cbmxldCB0b19maWxlID9sZW4gP3N0ZCA/KHN1ZiA9IFwiXFxuXCIpIGZpbGUgeCA9XG4gIGxldCBvYyA9IG9wZW5fb3V0IGZpbGUgaW5cbiAgdHJ5XG4gICAgdG9fY2hhbm5lbCA/bGVuIH5zdWYgP3N0ZCBvYyB4O1xuICAgIGNsb3NlX291dCBvY1xuICB3aXRoIGUgLT5cbiAgICBjbG9zZV9vdXRfbm9lcnIgb2M7XG4gICAgcmFpc2UgZVxuXG5sZXQgc2VxX3RvX2J1ZmZlciA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgb2Igc3QgPVxuICBTZXEuaXRlciAodG9fYnVmZmVyIH5zdWYgP3N0ZCBvYikgc3RcblxubGV0IHNlcV90b19zdHJpbmcgP2J1ZiA/KGxlbiA9IDI1NikgPyhzdWYgPSBcIlxcblwiKSA/c3RkIHN0ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT5cbiAgICAgICAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICAgICAgICAgb2JcbiAgaW5cbiAgc2VxX3RvX2J1ZmZlciB+c3VmID9zdGQgb2Igc3Q7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIG9iIGluXG4gIEJ1ZmZlci5jbGVhciBvYjtcbiAgc1xuXG5sZXQgc2VxX3RvX2NoYW5uZWwgP2J1ZiA/KGxlbj0yMDk2KSA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgb2Mgc2VxID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICBTZXEuaXRlciAoZnVuIGpzb24gLT5cbiAgICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIGpzb247XG4gICAgQnVmZmVyLm91dHB1dF9idWZmZXIgb2Mgb2I7XG4gICAgQnVmZmVyLmNsZWFyIG9iO1xuICApIHNlcVxuXG5sZXQgc2VxX3RvX2ZpbGUgP2xlbiA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgZmlsZSBzdCA9XG4gIGxldCBvYyA9IG9wZW5fb3V0IGZpbGUgaW5cbiAgdHJ5XG4gICAgc2VxX3RvX2NoYW5uZWwgP2xlbiB+c3VmID9zdGQgb2Mgc3Q7XG4gICAgY2xvc2Vfb3V0IG9jXG4gIHdpdGggZSAtPlxuICAgIGNsb3NlX291dF9ub2VyciBvYztcbiAgICByYWlzZSBlXG5cblxubGV0IHJlYyBzb3J0ID0gZnVuY3Rpb25cbiAgfCBgQXNzb2MgbCAtPlxuICAgICAgbGV0IGwgPSBMaXN0LnJldiAoTGlzdC5yZXZfbWFwIChmdW4gKGssIHYpIC0+IChrLCBzb3J0IHYpKSBsKSBpblxuICAgICAgYEFzc29jIChMaXN0LnN0YWJsZV9zb3J0IChmdW4gKGEsIF8pIChiLCBfKSAtPiBTdHJpbmcuY29tcGFyZSBhIGIpIGwpXG4gIHwgYExpc3QgbCAtPlxuICAgICAgYExpc3QgKExpc3QucmV2IChMaXN0LnJldl9tYXAgc29ydCBsKSlcbiAgXG4jIDQ4NSBcIndyaXRlLm1sXCJcbiAgfCBgVHVwbGUgbCAtPlxuICAgICAgYFR1cGxlIChMaXN0LnJldiAoTGlzdC5yZXZfbWFwIHNvcnQgbCkpXG4gIFxuIyA0ODkgXCJ3cml0ZS5tbFwiXG4gIHwgYFZhcmlhbnQgKGssIFNvbWUgdikgYXMgeCAtPlxuICAgICAgbGV0IHYnID0gc29ydCB2IGluXG4gICAgICBpZiB2ID09IHYnIHRoZW4geFxuICAgICAgZWxzZVxuICAgICAgICBgVmFyaWFudCAoaywgU29tZSB2JylcbiAgXG4jIDQ5NSBcIndyaXRlLm1sXCJcbiAgfCB4IC0+IHhcbiMgOTAgXCJ5b2pzb24uY3Bwby5tbFwiXG5tb2R1bGUgUHJldHR5ID1cbnN0cnVjdFxuIyAxIFwicHJldHR5Lm1sXCJcbigqXG4gICBQcmV0dHktcHJpbnQgSlNPTiBkYXRhIGluIGFuIGF0dGVtcHQgdG8gbWF4aW1pemUgcmVhZGFiaWxpdHkuXG5cbiAgIDEuIFdoYXQgZml0cyBvbiBvbmUgbGluZSBzdGF5cyBvbiBvbmUgbGluZS5cbiAgIDIuIFdoYXQgZG9lc24ndCBmaXQgb24gb25lIGxpbmUgZ2V0cyBwcmludGVkIG1vcmUgdmVydGljYWxseSBzbyBhcyB0byBub3RcbiAgICAgIGV4Y2VlZCBhIHJlYXNvbmFibGUgcGFnZSB3aWR0aCwgaWYgcG9zc2libGUuXG5cbiAgIEFycmF5cyBjb250YWluaW5nIG9ubHkgc2ltcGxlIGVsZW1lbnRzIChcImF0b21zXCIpIGFyZSBwcmV0dHktcHJpbnRlZCB3aXRoXG4gICBlbmQtb2YtbGluZSB3cmFwcGluZyBsaWtlIG9yZGluYXJ5IHRleHQ6XG5cbiAgICAgW1xuICAgICAgICBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIixcbiAgICAgICAgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCJcbiAgICAgXVxuXG4gICBPdGhlciBhcnJheXMgYXJlIHByaW50ZWQgZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZ1xuICAgb24gd2hldGhlciB0aGV5IGZpdCBvbiBhIHNpbmdsZSBsaW5lOlxuXG4gICAgIFsgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LCB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSBdXG5cbiAgIG9yXG5cbiAgICAgW1xuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfVxuICAgICBdXG4qKVxuXG5sZXQgcHBfbGlzdCBzZXAgcHB4IG91dCBsID1cbiAgbGV0IHBwX3NlcCBvdXQgKCkgPSBGb3JtYXQuZnByaW50ZiBvdXQgXCIlc0AgXCIgc2VwIGluXG4gIEZvcm1hdC5wcF9wcmludF9saXN0IH5wcF9zZXAgcHB4IG91dCBsXG5cbmxldCBpc19hdG9tICh4OiBbPiB0XSkgPVxuICBtYXRjaCB4IHdpdGhcbiAgfCBgTnVsbFxuICB8IGBCb29sIF9cbiAgfCBgSW50IF9cbiAgfCBgRmxvYXQgX1xuICB8IGBTdHJpbmcgX1xuICB8IGBJbnRsaXQgX1xuICB8IGBGbG9hdGxpdCBfXG4gIHwgYFN0cmluZ2xpdCBfXG4gIHwgYExpc3QgW11cbiAgfCBgQXNzb2MgW11cbiAgfCBgVHVwbGUgW11cbiAgfCBgVmFyaWFudCAoXywgTm9uZSkgLT4gdHJ1ZVxuICB8IGBMaXN0IF9cbiAgfCBgQXNzb2MgX1xuICB8IGBUdXBsZSBfXG4gIHwgYFZhcmlhbnQgKF8sIFNvbWUgXykgLT4gZmFsc2VcblxubGV0IGlzX2F0b21fbGlzdCBsID1cbiAgTGlzdC5mb3JfYWxsIGlzX2F0b20gbFxuXG4oKlxuICAgaW5zaWRlX2JveDogaW5kaWNhdGVzIHRoYXQgd2UncmUgYWxyZWFkeSB3aXRoaW4gYSBib3ggdGhhdCBpbXBvc2VzXG4gICBhIGNlcnRhaW4gc3R5bGUgYW5kIHdlIHNob3VsZG4ndCBjcmVhdGUgYSBuZXcgb25lLiBUaGlzIGlzIHVzZWQgZm9yXG4gICBwcmludGluZyBmaWVsZCB2YWx1ZXMgbGlrZSB0aGlzOlxuXG4gICAgIGZvbzogW1xuICAgICAgIGJhclxuICAgICBdXG5cbiAgIHJhdGhlciB0aGFuIHNvbWV0aGluZyBlbHNlIGxpa2VcblxuICAgICBmb286XG4gICAgICAgW1xuICAgICAgICAgYmFyXG4gICAgICAgXVxuKilcbmxldCByZWMgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCAob3V0OkZvcm1hdC5mb3JtYXR0ZXIpICh4OnQpIDogdW5pdCA9XG4gIG1hdGNoIHggd2l0aFxuICAgIHwgYE51bGwgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJudWxsXCJcbiAgICB8IGBCb29sIHggLT4gRm9ybWF0LnBwX3ByaW50X2Jvb2wgb3V0IHhcbiAgICBcbiMgOTIgXCJwcmV0dHkubWxcIlxuICAgIHwgYEludGxpdCBzIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IHNcbiAgICBcbiMgOTUgXCJwcmV0dHkubWxcIlxuICAgIHwgYEZsb2F0bGl0IHMgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgc1xuICAgIFxuIyA5OCBcInByZXR0eS5tbFwiXG4gICAgfCBgU3RyaW5nbGl0IHMgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgc1xuICAgIFxuIyAxMDAgXCJwcmV0dHkubWxcIlxuICAgIHwgYExpc3QgW10gLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJbXVwiXG4gICAgfCBgTGlzdCBsIC0+XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj5cIjtcbiAgICAgIGlmIGlzX2F0b21fbGlzdCBsIHRoZW5cbiAgICAgICAgKCogdXNlIGxpbmUgd3JhcHBpbmcgbGlrZSB3ZSB3b3VsZCBkbyBmb3IgYSBwYXJhZ3JhcGggb2YgdGV4dCAqKVxuICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJbQDs8MSAwPkBbPGhvdj4lYUBdQDs8MSAtMj5dXCJcbiAgICAgICAgICAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGxcbiAgICAgIGVsc2VcbiAgICAgICAgKCogcHJpbnQgdGhlIGVsZW1lbnRzIGhvcml6b250YWxseSBpZiB0aGV5IGZpdCBvbiB0aGUgbGluZSxcbiAgICAgICAgICAgb3RoZXJ3aXNlIHByaW50IHRoZW0gaW4gYSBjb2x1bW4gKilcbiAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiW0A7PDEgMD5AWzxodj4lYUBdQDs8MSAtMj5dXCJcbiAgICAgICAgICAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGw7XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG4gICAgfCBgQXNzb2MgW10gLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJ7fVwiXG4gICAgfCBgQXNzb2MgbCAtPlxuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+XCI7XG4gICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJ7QDs8MSAwPiVhQDs8MSAtMj59XCIgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdF9maWVsZCBzdGQpKSBsO1xuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuICAgIFxuIyAxMTkgXCJwcmV0dHkubWxcIlxuICAgIHwgYFR1cGxlIGwgLT5cbiAgICAgICAgaWYgc3RkIHRoZW5cbiAgICAgICAgICBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIG91dCAoYExpc3QgbClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGlmIGwgPSBbXSB0aGVuXG4gICAgICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIigpXCJcbiAgICAgICAgICBlbHNlIChcbiAgICAgICAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aG92Mj5cIjtcbiAgICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIihALCVhQDs8MCAtMj4pXCIgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsO1xuICAgICAgICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuICAgICAgICAgIClcbiAgICBcbiMgMTMyIFwicHJldHR5Lm1sXCJcbiAgICB8IGBWYXJpYW50IChzLCBOb25lKSAtPlxuICAgICAgICBpZiBzdGQgdGhlblxuICAgICAgICAgIFxuIyAxMzcgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGxldCByZXByZXNlbnRhdGlvbiA9IGBTdHJpbmdsaXQgcyBpblxuICAgICAgICAgIFxuIyAxMzkgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgb3V0IHJlcHJlc2VudGF0aW9uXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCI8JXM+XCIgKGpzb25fc3RyaW5nX29mX3N0cmluZyBzKVxuXG4gICAgfCBgVmFyaWFudCAocywgU29tZSB4KSAtPlxuICAgICAgICBpZiBzdGQgdGhlblxuICAgICAgICAgIFxuIyAxNDggXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGxldCByZXByZXNlbnRhdGlvbiA9IGBTdHJpbmdsaXQgcyBpblxuICAgICAgICAgIFxuIyAxNTAgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgb3V0IChgTGlzdCBbIHJlcHJlc2VudGF0aW9uOyB4IF0pXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBsZXQgb3AgPSBqc29uX3N0cmluZ19vZl9zdHJpbmcgcyBpblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIjxAWzxodjI+JXM6ICVhQF0+XCIgb3AgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgeFxuXG4jIDE1NiBcInByZXR0eS5tbFwiXG5hbmQgZm9ybWF0X2ZpZWxkIHN0ZCBvdXQgKG5hbWUsIHgpID1cbiAgRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPiVzOiAlYUBdXCIgKGpzb25fc3RyaW5nX29mX3N0cmluZyBuYW1lKSAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSB4XG5cbmxldCBwcCA/KHN0ZCA9IGZhbHNlKSBvdXQgeCA9XG4gIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj4lYUBdXCIgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgKHggOj4gdClcblxubGV0IHRvX3N0cmluZyA/c3RkIHggPVxuICBGb3JtYXQuYXNwcmludGYgXCIlYVwiIChwcCA/c3RkKSB4XG5cbmxldCB0b19jaGFubmVsID9zdGQgb2MgeCA9XG4gIGxldCBmbXQgPSBGb3JtYXQuZm9ybWF0dGVyX29mX291dF9jaGFubmVsIG9jIGluXG4gIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVhQD9cIiAocHAgP3N0ZCkgeFxuIyA5MyBcInlvanNvbi5jcHBvLm1sXCJcbmVuZFxuIyAxIFwibW9ub21vcnBoaWMubWxcIlxubGV0IHJlYyBwcCBmbXQgPVxuICBmdW5jdGlvblxuICB8IGBOdWxsIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiYE51bGxcIlxuICB8IGBCb29sIHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgQm9vbCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVCXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMTUgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEludGxpdCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEludGxpdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMjcgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEZsb2F0bGl0IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgRmxvYXRsaXQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDM5IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBTdHJpbmdsaXQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBTdHJpbmdsaXQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDQ0IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBBc3NvYyB4cyAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBBc3NvYyAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIChrZXksIHZhbHVlKSAtPlxuICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIihAW1wiO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIga2V5O1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIixAIFwiO1xuICAgICAgICAgIHBwIGZtdCB2YWx1ZTtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIjtcbiAgICAgICAgICB0cnVlKSBmYWxzZSB4cyk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICB8IGBMaXN0IHhzIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYExpc3QgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCB4IC0+XG4gICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgcHAgZm10IHg7XG4gICAgICAgICAgdHJ1ZSkgZmFsc2UgeHMpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDcxIFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBUdXBsZSB0dXAgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgVHVwbGUgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCBlIC0+XG4gICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICAgcHAgZm10IGU7XG4gICAgICAgICAgIHRydWUpIGZhbHNlIHR1cCk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgODQgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFZhcmlhbnQgKG5hbWUsIHZhbHVlKSAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBWYXJpYW50IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiKEBbXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiBuYW1lO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIixAIFwiO1xuICAgIChtYXRjaCB2YWx1ZSB3aXRoXG4gICAgICB8IE5vbmUgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCJOb25lXCJcbiAgICAgIHwgU29tZSB4IC0+XG4gICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiKFNvbWUgXCI7XG4gICAgICAgIHBwIGZtdCB4O1xuICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcIilcIik7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcblxuIyA5OSBcIm1vbm9tb3JwaGljLm1sXCJcbmxldCBzaG93IHggPVxuICBGb3JtYXQuYXNwcmludGYgXCIlYVwiIHBwIHhcblxubGV0IHJlYyBlcXVhbCBhIGIgPVxuICBtYXRjaCBhLCBiIHdpdGhcbiAgfCBgTnVsbCwgYE51bGwgLT4gdHJ1ZVxuICB8IGBCb29sIGEsIGBCb29sIGIgLT4gYSA9IGJcbiAgICBcbiMgMTEwIFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEludGxpdCBhLCBgSW50bGl0IGIgLT4gYSA9IGJcbiAgICBcbiMgMTE2IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEZsb2F0bGl0IGEsIGBGbG9hdGxpdCBiIC0+IGEgPSBiXG4gICAgXG4jIDEyMiBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBTdHJpbmdsaXQgYSwgYFN0cmluZ2xpdCBiIC0+IGEgPSBiXG4gICAgXG4jIDEyNCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBBc3NvYyB4cywgYEFzc29jIHlzIC0+XG4gICAgICBsZXQgY29tcGFyZV9rZXlzID0gZnVuIChrZXksIF8pIChrZXknLCBfKSAtPiBTdHJpbmcuY29tcGFyZSBrZXkga2V5JyBpblxuICAgICAgbGV0IHhzID0gTGlzdC5zdGFibGVfc29ydCBjb21wYXJlX2tleXMgeHMgaW5cbiAgICAgIGxldCB5cyA9IExpc3Quc3RhYmxlX3NvcnQgY29tcGFyZV9rZXlzIHlzIGluXG4gICAgICAobWF0Y2ggTGlzdC5mb3JfYWxsMiAoZnVuIChrZXksIHZhbHVlKSAoa2V5JywgdmFsdWUnKSAtPlxuICAgICAgICBtYXRjaCBrZXkgPSBrZXknIHdpdGhcbiAgICAgICAgfCBmYWxzZSAtPiBmYWxzZVxuICAgICAgICB8IHRydWUgLT4gZXF1YWwgdmFsdWUgdmFsdWUnKSB4cyB5cyB3aXRoXG4gICAgICB8IHJlc3VsdCAtPiByZXN1bHRcbiAgICAgIHwgZXhjZXB0aW9uIEludmFsaWRfYXJndW1lbnQgXyAtPlxuICAgICAgICAoKiB0aGUgbGlzdHMgd2VyZSBvZiBkaWZmZXJlbnQgbGVuZ3RocywgdGh1cyB1bmVxdWFsICopXG4gICAgICAgIGZhbHNlKVxuICAgIFxuIyAxMzcgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgVHVwbGUgeHMsIGBUdXBsZSB5c1xuICAgIFxuIyAxMzkgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgTGlzdCB4cywgYExpc3QgeXMgLT5cbiAgICAgIChtYXRjaCBMaXN0LmZvcl9hbGwyIGVxdWFsIHhzIHlzIHdpdGhcbiAgICAgIHwgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgfCBleGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCBfIC0+XG4gICAgICAgICgqIHRoZSBsaXN0cyB3ZXJlIG9mIGRpZmZlcmVudCBsZW5ndGhzLCB0aHVzIHVuZXF1YWwgKilcbiAgICAgICAgZmFsc2UpXG4gICAgXG4jIDE0NiBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBWYXJpYW50IChuYW1lLCB2YWx1ZSksIGBWYXJpYW50IChuYW1lJywgdmFsdWUnKSAtPlxuICAgICAgKG1hdGNoIG5hbWUgPSBuYW1lJyB3aXRoXG4gICAgICB8IGZhbHNlIC0+IGZhbHNlXG4gICAgICB8IHRydWUgLT5cbiAgICAgICAgbWF0Y2ggdmFsdWUsIHZhbHVlJyB3aXRoXG4gICAgICAgIHwgTm9uZSwgTm9uZSAtPiB0cnVlXG4gICAgICAgIHwgU29tZSB4LCBTb21lIHkgLT4gZXF1YWwgeCB5XG4gICAgICAgIHwgXyAtPiBmYWxzZSlcbiAgICBcbiMgMTU1IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgXyAtPiBmYWxzZVxuXG4jIDIgXCJ3cml0ZTIubWxcIlxubGV0IHByZXR0eV9wcmludCA/c3RkIG91dCB4ID1cbiAgUHJldHR5LnBwID9zdGQgb3V0IHhcblxubGV0IHByZXR0eV90b19zdHJpbmcgP3N0ZCB4ID1cbiAgUHJldHR5LnRvX3N0cmluZyA/c3RkIHhcblxubGV0IHByZXR0eV90b19jaGFubmVsID9zdGQgb2MgeCA9XG4gIFByZXR0eS50b19jaGFubmVsID9zdGQgb2MgeFxuXG4jIDEgXCJsaWIvcmVhZC5tbGxcIlxuIFxuICBcbiMgMiBcImxpYi9yZWFkLm1sbFwiXG4gIG1vZHVsZSBMZXhpbmcgPVxuICAgICgqXG4gICAgICBXZSBvdmVycmlkZSBMZXhpbmcuZW5naW5lIGluIG9yZGVyIHRvIGF2b2lkIGNyZWF0aW5nIGEgbmV3IHBvc2l0aW9uXG4gICAgICByZWNvcmQgZWFjaCB0aW1lIGEgcnVsZSBpcyBtYXRjaGVkLlxuICAgICAgVGhpcyByZWR1Y2VzIHRvdGFsIHBhcnNpbmcgdGltZSBieSBhYm91dCAzMSUuXG4gICAgKilcbiAgc3RydWN0XG4gICAgaW5jbHVkZSBMZXhpbmdcblxuICAgIGV4dGVybmFsIGNfZW5naW5lIDogbGV4X3RhYmxlcyAtPiBpbnQgLT4gbGV4YnVmIC0+IGludCA9IFwiY2FtbF9sZXhfZW5naW5lXCJcblxuICAgIGxldCBlbmdpbmUgdGJsIHN0YXRlIGJ1ZiA9XG4gICAgICBsZXQgcmVzdWx0ID0gY19lbmdpbmUgdGJsIHN0YXRlIGJ1ZiBpblxuICAgICAgKCpcbiAgICAgIGlmIHJlc3VsdCA+PSAwIHRoZW4gYmVnaW5cbiAgICAgICAgYnVmLmxleF9zdGFydF9wIDwtIGJ1Zi5sZXhfY3Vycl9wO1xuICAgICAgICBidWYubGV4X2N1cnJfcCA8LSB7YnVmLmxleF9jdXJyX3BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggcG9zX2NudW0gPSBidWYubGV4X2Fic19wb3MgKyBidWYubGV4X2N1cnJfcG9zfTtcbiAgICAgIGVuZDtcbiAgICAgICopXG4gICAgICByZXN1bHRcbiAgZW5kXG5cbiAgb3BlbiBQcmludGZcbiAgb3BlbiBMZXhpbmdcblxuICAoKiBzZWUgZGVzY3JpcHRpb24gaW4gY29tbW9uLm1saSAqKVxuICB0eXBlIGxleGVyX3N0YXRlID0gTGV4ZXJfc3RhdGUudCA9IHtcbiAgICBidWYgOiBCdWZmZXIudDtcbiAgICBtdXRhYmxlIGxudW0gOiBpbnQ7XG4gICAgbXV0YWJsZSBib2wgOiBpbnQ7XG4gICAgbXV0YWJsZSBmbmFtZSA6IHN0cmluZyBvcHRpb247XG4gIH1cblxuICBsZXQgZGVjIGMgPVxuICAgIENoYXIuY29kZSBjIC0gNDhcblxuICBsZXQgaGV4IGMgPVxuICAgIG1hdGNoIGMgd2l0aFxuICAgICAgICAnMCcuLic5JyAtPiBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJzAnXG4gICAgICB8ICdhJy4uJ2YnIC0+IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnYScgKyAxMFxuICAgICAgfCAnQScuLidGJyAtPiBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ0EnICsgMTBcbiAgICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuICBsZXQgY3VzdG9tX2Vycm9yIGRlc2NyIHYgbGV4YnVmID1cbiAgICBsZXQgb2ZmcyA9IGxleGJ1Zi5sZXhfYWJzX3BvcyAtIDEgaW5cbiAgICBsZXQgYm9sID0gdi5ib2wgaW5cbiAgICBsZXQgcG9zMSA9IG9mZnMgKyBsZXhidWYubGV4X3N0YXJ0X3BvcyAtIGJvbCAtIDEgaW5cbiAgICBsZXQgcG9zMiA9IG1heCBwb3MxIChvZmZzICsgbGV4YnVmLmxleF9jdXJyX3BvcyAtIGJvbCkgaW5cbiAgICBsZXQgZmlsZV9saW5lID1cbiAgICAgIG1hdGNoIHYuZm5hbWUgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gXCJMaW5lXCJcbiAgICAgICAgfCBTb21lIHMgLT5cbiAgICAgICAgICAgIHNwcmludGYgXCJGaWxlICVzLCBsaW5lXCIgc1xuICAgIGluXG4gICAgbGV0IGJ5dGVzID1cbiAgICAgIGlmIHBvczEgPSBwb3MyIHRoZW5cbiAgICAgICAgc3ByaW50ZiBcImJ5dGUgJWlcIiAocG9zMSsxKVxuICAgICAgZWxzZVxuICAgICAgICBzcHJpbnRmIFwiYnl0ZXMgJWktJWlcIiAocG9zMSsxKSAocG9zMisxKVxuICAgIGluXG4gICAgbGV0IG1zZyA9IHNwcmludGYgXCIlcyAlaSwgJXM6XFxuJXNcIiBmaWxlX2xpbmUgdi5sbnVtIGJ5dGVzIGRlc2NyIGluXG4gICAganNvbl9lcnJvciBtc2dcblxuXG4gIGxldCBsZXhlcl9lcnJvciBkZXNjciB2IGxleGJ1ZiA9XG4gICAgY3VzdG9tX2Vycm9yXG4gICAgICAoc3ByaW50ZiBcIiVzICclcydcIiBkZXNjciAoTGV4aW5nLmxleGVtZSBsZXhidWYpKVxuICAgICAgdiBsZXhidWZcblxuICBsZXQgcmVhZF9qdW5rID0gcmVmIChmdW4gXyAtPiBhc3NlcnQgZmFsc2UpXG5cbiAgbGV0IGxvbmdfZXJyb3IgZGVzY3IgdiBsZXhidWYgPVxuICAgIGxldCBqdW5rID0gTGV4aW5nLmxleGVtZSBsZXhidWYgaW5cbiAgICBsZXQgZXh0cmFfanVuayA9ICFyZWFkX2p1bmsgbGV4YnVmIGluXG4gICAgY3VzdG9tX2Vycm9yXG4gICAgICAoc3ByaW50ZiBcIiVzICclcyVzJ1wiIGRlc2NyIGp1bmsgZXh0cmFfanVuaylcbiAgICAgIHYgbGV4YnVmXG5cbiAgbGV0IG1pbjEwID0gbWluX2ludCAvIDEwIC0gKGlmIG1pbl9pbnQgbW9kIDEwID0gMCB0aGVuIDAgZWxzZSAxKVxuICBsZXQgbWF4MTAgPSBtYXhfaW50IC8gMTAgKyAoaWYgbWF4X2ludCBtb2QgMTAgPSAwIHRoZW4gMCBlbHNlIDEpXG5cbiAgZXhjZXB0aW9uIEludF9vdmVyZmxvd1xuXG4gIGxldCBleHRyYWN0X3Bvc2l0aXZlX2ludCBsZXhidWYgPVxuICAgIGxldCBzdGFydCA9IGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgbGV0IHN0b3AgPSBsZXhidWYubGV4X2N1cnJfcG9zIGluXG4gICAgbGV0IHMgPSBsZXhidWYubGV4X2J1ZmZlciBpblxuICAgIGxldCBuID0gcmVmIDAgaW5cbiAgICBmb3IgaSA9IHN0YXJ0IHRvIHN0b3AgLSAxIGRvXG4gICAgICBpZiAhbiA+PSBtYXgxMCB0aGVuXG4gICAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgICAgZWxzZVxuICAgICAgICBuIDo9IDEwICogIW4gKyBkZWMgKEJ5dGVzLmdldCBzIGkpXG4gICAgZG9uZTtcbiAgICBpZiAhbiA8IDAgdGhlblxuICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgZWxzZVxuICAgICAgIW5cblxuICBsZXQgbWFrZV9wb3NpdGl2ZV9pbnQgdiBsZXhidWYgPVxuICAgICAgICBcbiMgMTA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgYEludGxpdCAobGV4ZW1lIGxleGJ1ZilcblxuICBcbiMgMTEzIFwibGliL3JlYWQubWxsXCJcbiAgbGV0IGV4dHJhY3RfbmVnYXRpdmVfaW50IGxleGJ1ZiA9XG4gICAgbGV0IHN0YXJ0ID0gbGV4YnVmLmxleF9zdGFydF9wb3MgKyAxIGluXG4gICAgbGV0IHN0b3AgPSBsZXhidWYubGV4X2N1cnJfcG9zIGluXG4gICAgbGV0IHMgPSBsZXhidWYubGV4X2J1ZmZlciBpblxuICAgIGxldCBuID0gcmVmIDAgaW5cbiAgICBmb3IgaSA9IHN0YXJ0IHRvIHN0b3AgLSAxIGRvXG4gICAgICBpZiAhbiA8PSBtaW4xMCB0aGVuXG4gICAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgICAgZWxzZVxuICAgICAgICBuIDo9IDEwICogIW4gLSBkZWMgKEJ5dGVzLmdldCBzIGkpXG4gICAgZG9uZTtcbiAgICBpZiAhbiA+IDAgdGhlblxuICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgZWxzZVxuICAgICAgIW5cblxuICBsZXQgbWFrZV9uZWdhdGl2ZV9pbnQgdiBsZXhidWYgPVxuICAgICAgICBcbiMgMTM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgYEludGxpdCAobGV4ZW1lIGxleGJ1ZilcblxuXG4gIFxuIyAxNDEgXCJsaWIvcmVhZC5tbGxcIlxuICBsZXQgc2V0X2ZpbGVfbmFtZSB2IGZuYW1lID1cbiAgICB2LmZuYW1lIDwtIGZuYW1lXG5cbiAgbGV0IG5ld2xpbmUgdiBsZXhidWYgPVxuICAgIHYubG51bSA8LSB2LmxudW0gKyAxO1xuICAgIHYuYm9sIDwtIGxleGJ1Zi5sZXhfYWJzX3BvcyArIGxleGJ1Zi5sZXhfY3Vycl9wb3NcblxuICBsZXQgYWRkX2xleGVtZSBidWYgbGV4YnVmID1cbiAgICBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgQnVmZmVyLmFkZF9zdWJieXRlcyBidWYgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgbGVuXG5cbiAgbGV0IG1hcF9sZXhlbWUgZiBsZXhidWYgPVxuICAgIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBmIChCeXRlcy5zdWJfc3RyaW5nIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGxlbikgMCBsZW5cblxuICB0eXBlIHZhcmlhbnRfa2luZCA9IFsgYEVkZ3lfYnJhY2tldCB8IGBTcXVhcmVfYnJhY2tldCB8IGBEb3VibGVfcXVvdGUgXVxuICB0eXBlIHR1cGxlX2tpbmQgPSBbIGBQYXJlbnRoZXNpcyB8IGBTcXVhcmVfYnJhY2tldCBdXG5cblxuIyAxNjEgXCJsaWIvcmVhZC5tbFwiXG4jIDE2MSBcImxpYi9yZWFkLm1sXCJcbmxldCBfX29jYW1sX2xleF90YWJsZXMgPSB7XG4gIExleGluZy5sZXhfYmFzZSA9XG4gICBcIlxcMDAwXFwwMDBcXDIzNlxcMjU1XFwyMzdcXDI1NVxcMDAzXFwwMDBcXDIzOVxcMjU1XFwwMTZcXDAwMFxcMjQyXFwyNTVcXDI0M1xcMjU1XFxcbiAgICBcXDI0NFxcMjU1XFwyNDVcXDI1NVxcMDAwXFwwMDBcXDAzMVxcMDAwXFwyNDlcXDI1NVxcMDg1XFwwMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDFcXDAwMFxcMDAyXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDI1NFxcMjU1XFwwMDFcXDAwMFxcMDA0XFwwMDBcXDI1M1xcMjU1XFwwMTFcXDAwMFxcMjUyXFwyNTVcXDAwM1xcMDAwXFxcbiAgICBcXDAwMVxcMDAwXFwwMDNcXDAwMFxcMDAyXFwwMDBcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMjUxXFwyNTVcXDAyMVxcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwwMTBcXDAwMFxcMDIyXFwwMDBcXDAyMFxcMDAwXFwwMTZcXDAwMFxcMDIyXFwwMDBcXDAxMlxcMDAwXFwwMDhcXDAwMFxcMjUwXFwyNTVcXFxuICAgIFxcMTE5XFwwMDBcXDEyOVxcMDAwXFwxMzlcXDAwMFxcMTYxXFwwMDBcXDE3MVxcMDAwXFwxODFcXDAwMFxcMTkzXFwwMDBcXDIwOVxcMDAwXFxcbiAgICBcXDI0MFxcMjU1XFwwMTFcXDAwMFxcMDM4XFwwMDBcXDI1MlxcMjU1XFwwNjVcXDAwMFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxMTBcXDAwMFxcXG4gICAgXFwyNTJcXDI1NVxcMTYzXFwwMDBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjM0XFwwMDBcXDI0N1xcMjU1XFwyNDhcXDI1NVxcMDQ4XFwwMDFcXFxuICAgIFxcMjUwXFwyNTVcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDcxXFwwMDFcXDEyNlxcMDAxXFxcbiAgICBcXDE0OVxcMDAxXFwyNDlcXDI1NVxcMDM5XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDM4XFwwMDBcXDE4N1xcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyNDhcXDAwMVxcMDE1XFwwMDJcXDI1NVxcMjU1XFwyMjBcXDAwMFxcMjUzXFwyNTVcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMDM5XFwwMDJcXFxuICAgIFxcMTA5XFwwMDJcXDAxNFxcMDAxXFwwODhcXDAwMlxcMTY0XFwwMDJcXDE4N1xcMDAyXFwyMjVcXDAwMlxcMDEzXFwwMDBcXDI1MlxcMjU1XFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxNFxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMzBcXDAwMFxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTVcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE3XFwwMDFcXFxuICAgIFxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTlcXDAwMFxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwwMTVcXDAwMFxcMjU1XFwyNTVcXDAxNlxcMDAwXFwyNTVcXDI1NVxcMDA4XFwwMDFcXDAwNVxcMDAwXFwyNTNcXDI1NVxcXG4gICAgXFwwMjNcXDAwMFxcMjU0XFwyNTVcXDAyMFxcMDAwXFwyNTVcXDI1NVxcMDQ2XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDQyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1M1xcMDAwXFwyNTVcXDI1NVxcMDUzXFwwMDBcXDA0OFxcMDAwXFwwOTFcXDAwMFxcMDkyXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAyN1xcMDAxXFwyNTBcXDI1NVxcMjUxXFwyNTVcXDEzN1xcMDAwXFwxMDRcXDAwMFxcMDg5XFwwMDBcXDA4OFxcMDAwXFwxMDZcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMTQzXFwwMDBcXDEzN1xcMDAwXFwxNzdcXDAwMFxcMjU0XFwyNTVcXDE4M1xcMDAwXFwxNjhcXDAwMFxcMTY2XFwwMDBcXFxuICAgIFxcMTgzXFwwMDBcXDAwMlxcMDAwXFwyNTNcXDI1NVxcMTc3XFwwMDBcXDE3MlxcMDAwXFwxODdcXDAwMFxcMDA0XFwwMDBcXDI1MlxcMjU1XFxcbiAgICBcXDA1M1xcMDAyXFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwxMDNcXDAwMVxcMjU1XFwyNTVcXDI0OFxcMDAyXFwyNTRcXDI1NVxcXG4gICAgXFwwMDZcXDAwM1xcMDMwXFwwMDNcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNDBcXDAwM1xcMDUwXFwwMDNcXFxuICAgIFxcMDc0XFwwMDNcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNjFcXDAwM1xcMDg0XFwwMDNcXDEwOFxcMDAzXFxcbiAgICBcXDI0OVxcMjU1XFwyNTBcXDI1NVxcMjUxXFwyNTVcXDI0NFxcMDAwXFwxMjBcXDAwM1xcMTQyXFwwMDNcXDE3OVxcMDAwXFwxOTRcXDAwMFxcXG4gICAgXFwwMTVcXDAwMFxcMjU1XFwyNTVcXDE5MFxcMDAwXFwxODhcXDAwMFxcMTg3XFwwMDBcXDE5M1xcMDAwXFwxODNcXDAwMFxcMTc5XFwwMDBcXFxuICAgIFxcMjU0XFwyNTVcXDE5MVxcMDAwXFwyMDFcXDAwMFxcMjAwXFwwMDBcXDE5NlxcMDAwXFwyMDNcXDAwMFxcMTkzXFwwMDBcXDE4OVxcMDAwXFxcbiAgICBcXDI1M1xcMjU1XFwxNTdcXDAwM1xcMDk1XFwwMDNcXDE3NFxcMDAzXFwxOTZcXDAwM1xcMjA2XFwwMDNcXDIxNlxcMDAzXFwyMjhcXDAwM1xcXG4gICAgXFwyMzlcXDAwM1xcMDYwXFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxMlxcMDA0XFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMDg3XFwwMDRcXDI1NVxcMjU1XFwxNDVcXDAwNFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyMjFcXDAwNFxcMjU1XFwyNTVcXDIyOVxcMDAwXFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIzMVxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMDJcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDE4XFwwMDFcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMzRcXDAwMVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAzOFxcMDAxXFxcbiAgICBcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxMjBcXDAwMVxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIwOFxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMTFcXDAwMFxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxODlcXDAwMFxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMTNcXDAwMVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDk1XFwwMDFcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA1MFxcMDAxXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMjZcXDAwMVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMzNcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjIyXFwwMDBcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDc5XFwwMDVcXDIzN1xcMjU1XFwyMzhcXDI1NVxcMDEwXFwwMDBcXDI0MFxcMjU1XFwwNDRcXDAwMVxcXG4gICAgXFwyNDNcXDI1NVxcMjQ0XFwyNTVcXDI0NVxcMjU1XFwyNDZcXDI1NVxcMDYxXFwwMDFcXDAwMlxcMDA0XFwyNDlcXDI1NVxcMDQ1XFwwMDVcXFxuICAgIFxcMjA5XFwwMDBcXDIyOFxcMDAwXFwyMTFcXDAwMFxcMjMyXFwwMDBcXDIyNVxcMDAwXFwyMjNcXDAwMFxcMjQwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDIzNVxcMDAwXFwyMzRcXDAwMFxcMDA4XFwwMDFcXDI1NFxcMjU1XFwwMDRcXDAwMVxcMDIzXFwwMDFcXDI1M1xcMjU1XFwwNTRcXDAwMVxcXG4gICAgXFwyNTJcXDI1NVxcMDMxXFwwMDFcXDAyOVxcMDAxXFwwMzJcXDAwMVxcMDM5XFwwMDFcXDA0OVxcMDAxXFwwNDVcXDAwMVxcMjUxXFwyNTVcXFxuICAgIFxcMDU3XFwwMDFcXDA4MlxcMDAxXFwwODBcXDAwMVxcMDc4XFwwMDFcXDA4NFxcMDAxXFwwNzRcXDAwMVxcMDg2XFwwMDFcXDI1MFxcMjU1XFxcbiAgICBcXDExMFxcMDA1XFwwMTJcXDAwNFxcMTIzXFwwMDVcXDE1NVxcMDA1XFwxNjVcXDAwNVxcMTc3XFwwMDVcXDE4N1xcMDA1XFwxOTdcXDAwNVxcXG4gICAgXFwyNDFcXDI1NVxcMTk5XFwwMDFcXDA3N1xcMDAyXFwyNTNcXDI1NVxcMjU1XFwyNTVcXDE1NFxcMDAyXFwyMjJcXDAwNVxcMjA5XFwwMDVcXFxuICAgIFxcMTU1XFwwMDJcXDIzOVxcMDA1XFwwNTNcXDAwNlxcMDc2XFwwMDZcXDExNFxcMDA2XFwwMTZcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTUyXFwwMDZcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjI3XFwwMDZcXDI1NVxcMjU1XFwwODVcXDAwN1xcXG4gICAgXFwyNDRcXDI1NVxcMjQ1XFwyNTVcXDAxMVxcMDAwXFwyNDdcXDI1NVxcMDc2XFwwMDJcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMjUyXFwyNTVcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwMzFcXDAwMlxcMjQzXFwwMDVcXDA1MVxcMDA3XFwxMDBcXDAwMVxcMTE1XFwwMDFcXDEwNFxcMDAxXFxcbiAgICBcXDEzM1xcMDAxXFwxMThcXDAwMVxcMTU0XFwwMDFcXDE3MVxcMDAxXFwyNTVcXDI1NVxcMTczXFwwMDFcXDE3NlxcMDAxXFwxOTFcXDAwMVxcXG4gICAgXFwxODVcXDAwMVxcMTg3XFwwMDFcXDI1M1xcMDAxXFwyMzBcXDAwMVxcMjMwXFwwMDFcXDIzNFxcMDAxXFwyNDdcXDAwMVxcMjM3XFwwMDFcXFxuICAgIFxcMjM0XFwwMDFcXDAwOVxcMDAyXFwwMTlcXDAwMlxcMDE5XFwwMDJcXDAxNVxcMDAyXFwwMjFcXDAwMlxcMDExXFwwMDJcXDAwN1xcMDAyXFxcbiAgICBcXDE0MlxcMDA2XFwxNTJcXDAwNlxcMTE2XFwwMDdcXDE3MFxcMDA3XFwxODBcXDAwN1xcMTkwXFwwMDdcXDIwMFxcMDA3XFwyMTBcXDAwN1xcXG4gICAgXFwyNDhcXDI1NVxcMTIwXFwwMDJcXDE2N1xcMDAyXFwyNTNcXDI1NVxcMjU1XFwyNTVcXDIxNlxcMDAyXFwwODJcXDAwN1xcMjIwXFwwMDdcXFxuICAgIFxcMjM2XFwwMDJcXDI0NFxcMDA3XFwwNThcXDAwOFxcMDgxXFwwMDhcXDExOVxcMDA4XFwwNzZcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTU3XFwwMDhcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjMyXFwwMDhcXDI1NVxcMjU1XFwxMzVcXDAwMlxcXG4gICAgXFwxMjBcXDAwMlxcMjUzXFwyNTVcXDEwMFxcMDAyXFwyNTRcXDI1NVxcMTgyXFwwMDJcXDI1NVxcMjU1XFwwMTFcXDAwMlxcMjU1XFwyNTVcXFxuICAgIFxcMjA0XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNDZcXDAwMlxcMjU1XFwyNTVcXDE3OFxcMDAyXFxcbiAgICBcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMjNcXDAwMFxcMjU1XFwyNTVcXDE4M1xcMDAyXFwyNTJcXDI1NVxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxODdcXDAwMlxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTIxXFwwMDJcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTg0XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDAxOVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwxNDBcXDAwMVxcMTQ2XFwwMDFcXDI1NVxcMjU1XFwxNTBcXDAwMVxcMTUxXFwwMDFcXDE1NFxcMDAxXFwxNjhcXDAwMVxcXG4gICAgXFwxNzBcXDAwMVxcMTcxXFwwMDFcXDE3MlxcMDAxXFwxNzNcXDAwMVxcMTgxXFwwMDFcXDE4NFxcMDAxXFwxODVcXDAwMVxcMTg3XFwwMDFcXFxuICAgIFxcMTkxXFwwMDFcXDE5M1xcMDAxXFwxOTVcXDAwMVxcMTk2XFwwMDFcXDE5N1xcMDAxXFwyMDBcXDAwMVxcMjAzXFwwMDFcXDIyM1xcMDAxXFxcbiAgICBcXDIyNVxcMDAxXFwyMjhcXDAwMVxcMjQ5XFwwMDFcXDI1MVxcMDAxXFwwMDJcXDAwMlxcMDA0XFwwMDJcXDAxMVxcMDAyXFwwMTJcXDAwMlxcXG4gICAgXFwwMTNcXDAwMlxcMDAwXFwwMDBcIjtcbiAgTGV4aW5nLmxleF9iYWNrdHJrID1cbiAgIFwiXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMTdcXDAwMFxcMjU1XFwyNTVcXDAxOVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDdcXDAwMFxcMDA3XFwwMDBcXDI1NVxcMjU1XFwwMTlcXDAwMFxcMDE5XFwwMDBcXDAxOVxcMDAwXFxcbiAgICBcXDAxOVxcMDAwXFwwMTlcXDAwMFxcMDE5XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA4XFwwMDBcXDAwOFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAxNFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDdcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwwMDFcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwwMDRcXDAwMFxcMDAzXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA0XFwwMDBcXDAwNFxcMDAwXFwwMDRcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDJcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDJcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXDAwM1xcMDAwXFwwMDVcXDAwMFxcMDA1XFwwMDBcXDAwNVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMDAyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMTZcXDAwMFxcMjU1XFwyNTVcXDAxOFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDdcXDAwMFxcMDA3XFwwMDBcXDI1NVxcMjU1XFwwMThcXDAwMFxcXG4gICAgXFwwMThcXDAwMFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMDE4XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMjU1XFwyNTVcXDAwOFxcMDAwXFwyNTVcXDI1NVxcMDA4XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMTNcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFwwMTFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDZcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDAwNFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVwiO1xuICBMZXhpbmcubGV4X2RlZmF1bHQgPVxuICAgXCJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDU3XFwwMDBcXDA2MFxcMDAwXFwwMDBcXDAwMFxcMDYwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY1XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDA2NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3MFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDA4NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDk0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDk3XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwOTdcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEwNFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMDlcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTEzXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTE3XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyMVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI2XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwxMzhcXDAwMFxcMDAwXFwwMDBcXDE0MlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwxNTRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwxNzhcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDE4N1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE5NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDIzNVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMzlcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjQ0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNDlcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTNcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDA4XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMTdcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDIyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDMyXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMzhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDQzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA0N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDU2XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDYwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2NFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDEyMVxcMDAxXFwxMjVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDEyOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTM1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMTQ0XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDE5M1xcMDAxXFwxOTdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDIwMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjA3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDIyMFxcMDAxXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDIyNlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyMzNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAyXFwwMDJcXDAwNFxcMDAyXFwwMDBcXDAwMFxcMDA1XFwwMDJcXDAwNlxcMDAyXFwwMDdcXDAwMlxcMDA4XFwwMDJcXFxuICAgIFxcMDA5XFwwMDJcXDAxMFxcMDAyXFwwMTFcXDAwMlxcMDEyXFwwMDJcXDAxM1xcMDAyXFwwMTRcXDAwMlxcMDE1XFwwMDJcXDAxNlxcMDAyXFxcbiAgICBcXDAxN1xcMDAyXFwwMThcXDAwMlxcMDE5XFwwMDJcXDAyMFxcMDAyXFwwMjFcXDAwMlxcMDIyXFwwMDJcXDAyM1xcMDAyXFwwMjRcXDAwMlxcXG4gICAgXFwwMjVcXDAwMlxcMDI2XFwwMDJcXDAyN1xcMDAyXFwwMjhcXDAwMlxcMDI5XFwwMDJcXDAzMFxcMDAyXFwwMzFcXDAwMlxcMDMyXFwwMDJcXFxuICAgIFxcMDMzXFwwMDJcXDAwM1xcMDAyXCI7XG4gIExleGluZy5sZXhfdHJhbnMgPVxuICAgXCJcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAzXFwwMDBcXDAwNFxcMDAwXFwwMDBcXDAwMFxcMDAzXFwwMDBcXDAwM1xcMDAwXFwxMzRcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDAwMFxcMDAwXFwxMzRcXDAwMFxcMDY5XFwwMDFcXDE0NlxcMDAxXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDA2OVxcMDAxXFxcbiAgICBcXDE0NlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI3XFwwMDBcXDEzOVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMDAwXFwwMDBcXDAxMlxcMDAwXFwwMDNcXDAwMFxcMTcwXFwwMDBcXDEzNFxcMDAwXFwxNzVcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDA3XFwwMDBcXDAxMVxcMDAxXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDAxNFxcMDAxXFwwMTNcXDAwMFxcMDQ5XFwwMDBcXDAwNVxcMDAwXFxcbiAgICBcXDAxMFxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDA1NlxcMDAwXFwxMThcXDAwMFxcMDA2XFwwMDBcXDEyOVxcMDAwXFwxMzBcXDAwMFxcMDU3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDFcXDEzN1xcMDAwXFwwMDBcXDAwMlxcMDQ5XFwwMDBcXDAwMFxcMDAwXFwwNDhcXDAwMFxcMTM4XFwwMDBcXDEwNlxcMDAwXFxcbiAgICBcXDA2MlxcMDAwXFwwMTRcXDAwMFxcMTEwXFwwMDBcXDEwNVxcMDAwXFwwMDBcXDAwMFxcMDQ5XFwwMDBcXDAxNVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAzMFxcMDAwXFwwNDhcXDAwMFxcMDA4XFwwMDBcXDExNFxcMDAwXFwyMDlcXDAwMFxcMjM2XFwwMDBcXDAwMFxcMDAxXFxcbiAgICBcXDAxM1xcMDAxXFwwMjlcXDAwMFxcMDIyXFwwMDBcXDI1NVxcMjU1XFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDAxN1xcMDAwXFwwMjFcXDAwMFxcXG4gICAgXFwwMjVcXDAwMFxcMDMyXFwwMDBcXDAzM1xcMDAwXFwwMzVcXDAwMFxcMDIzXFwwMDBcXDAyN1xcMDAwXFwwMTZcXDAwMFxcMDMxXFwwMDBcXFxuICAgIFxcMDI4XFwwMDBcXDAzNFxcMDAwXFwwMTlcXDAwMFxcMDI0XFwwMDBcXDAxOFxcMDAwXFwwMjZcXDAwMFxcMDIwXFwwMDBcXDAzNlxcMDAwXFxcbiAgICBcXDA0MVxcMDAwXFwwMzdcXDAwMFxcMDQ4XFwwMDBcXDAwOVxcMDAwXFwwNDJcXDAwMFxcMDQzXFwwMDBcXDA0NFxcMDAwXFwwNDVcXDAwMFxcXG4gICAgXFwwNDZcXDAwMFxcMDQ3XFwwMDBcXDA2MVxcMDAwXFwwODVcXDAwMFxcMDQ4XFwwMDBcXDAzOFxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDA0OVxcMDAwXFxcbiAgICBcXDA2N1xcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwODZcXDAwMFxcMTQzXFwwMDBcXDI1NVxcMjU1XFwwNDBcXDAwMFxcMTQ0XFwwMDBcXFxuICAgIFxcMTQ1XFwwMDBcXDE0NlxcMDAwXFwwNTVcXDAwMFxcMTQ4XFwwMDBcXDA1NVxcMDAwXFwxNDlcXDAwMFxcMDQ4XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMjU1XFwyNTVcXDA0OFxcMDAwXFwxNTBcXDAwMFxcXG4gICAgXFwxNTFcXDAwMFxcMTYxXFwwMDBcXDA2NlxcMDAwXFwxNThcXDAwMFxcMDUzXFwwMDBcXDE1OVxcMDAwXFwwNTNcXDAwMFxcMTYwXFwwMDBcXFxuICAgIFxcMDUxXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDE2NVxcMDAwXFxcbiAgICBcXDA1MVxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwxNjJcXDAwMFxcMTYzXFwwMDBcXDE2NlxcMDAwXFwwOTNcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAyXFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDI1NVxcMjU1XFwwNzdcXDAwMFxcMTAzXFwwMDBcXDEwOFxcMDAwXFwxMTZcXDAwMFxcXG4gICAgXFwxMzJcXDAwMFxcMTM0XFwwMDBcXDEzNVxcMDAwXFwxMjhcXDAwMFxcMTM5XFwwMDBcXDEzNFxcMDAwXFwxNjRcXDAwMFxcMDkzXFwwMDBcXFxuICAgIFxcMTcxXFwwMDBcXDA3N1xcMDAwXFwxNjdcXDAwMFxcMTY4XFwwMDBcXDE2OVxcMDAwXFwxNzJcXDAwMFxcMTEyXFwwMDBcXDE3M1xcMDAwXFxcbiAgICBcXDE3NFxcMDAwXFwyMTBcXDAwMFxcMjI2XFwwMDBcXDIwOFxcMDAwXFwyMTFcXDAwMFxcMjEyXFwwMDBcXDA1OVxcMDAwXFwwODNcXDAwMFxcXG4gICAgXFwxMzRcXDAwMFxcMjEzXFwwMDBcXDIxNFxcMDAwXFwyMTVcXDAwMFxcMjE2XFwwMDBcXDIxOFxcMDAwXFwxNDFcXDAwMFxcMjE5XFwwMDBcXFxuICAgIFxcMDkzXFwwMDBcXDIyMFxcMDAwXFwyMjFcXDAwMFxcMTIzXFwwMDBcXDIyMlxcMDAwXFwyMjNcXDAwMFxcMjI0XFwwMDBcXDEzNlxcMDAwXFxcbiAgICBcXDA5NVxcMDAwXFwyMjVcXDAwMFxcMDM1XFwwMDFcXDA2NVxcMDAxXFwyMzRcXDAwMFxcMTU1XFwwMDBcXDAwNVxcMDAxXFwwOTdcXDAwMVxcXG4gICAgXFwyNTBcXDAwMFxcMjU1XFwyNTVcXDI1NFxcMDAwXFwwNTdcXDAwMVxcMDYxXFwwMDFcXDA5NVxcMDAxXFwwNzdcXDAwMFxcMDQ0XFwwMDFcXFxuICAgIFxcMDkyXFwwMDFcXDA4OFxcMDAxXFwwMDlcXDAwMVxcMDI5XFwwMDFcXDA3NlxcMDAwXFwxMjRcXDAwMFxcMDMzXFwwMDFcXDAxOFxcMDAxXFxcbiAgICBcXDA3NVxcMDAwXFwwOThcXDAwMFxcMDE5XFwwMDFcXDA4NVxcMDAxXFwwODZcXDAwMVxcMDg3XFwwMDFcXDEyMFxcMDAxXFwwODlcXDAwMVxcXG4gICAgXFwwNzRcXDAwMFxcMjI1XFwwMDBcXDA1M1xcMDAxXFwxMjFcXDAwMVxcMDczXFwwMDBcXDA5MFxcMDAxXFwwNzJcXDAwMFxcMDcxXFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDk4XFwwMDBcXDExM1xcMDAxXFwxMjJcXDAwMFxcMDkxXFwwMDFcXDA2NFxcMDAwXFwwMDRcXDAwMVxcXG4gICAgXFwwOTNcXDAwMVxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwxNTZcXDAwMFxcMTEyXFwwMDFcXDA5NFxcMDAxXFwwOTZcXDAwMVxcMDk4XFwwMDFcXDA5OVxcMDAxXFwwNDlcXDAwMVxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwxMDBcXDAwMVxcMTU3XFwwMDBcXFxuICAgIFxcMTAxXFwwMDFcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDE4M1xcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMDI0XFwwMDFcXDExMlxcMDAxXFwyNTVcXDI1NVxcMDI1XFwwMDFcXDEwMlxcMDAxXFwxMDNcXDAwMVxcMTA1XFwwMDFcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwxMDZcXDAwMVxcMTA3XFwwMDFcXDA0OFxcMDAxXFwwNDBcXDAwMVxcMTA4XFwwMDFcXDEwOVxcMDAxXFwxMTBcXDAwMVxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFxcbiAgICBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwxMTFcXDAwMVxcXG4gICAgXFwwMjdcXDAwMVxcMjU1XFwyNTVcXDE3MVxcMDAxXFwwMzFcXDAwMVxcMTcwXFwwMDFcXDAyM1xcMDAxXFwwODFcXDAwMFxcMDgxXFwwMDBcXFxuICAgIFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA5MlxcMDAwXFwxNjhcXDAwMVxcMDYzXFwwMDFcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMjQ4XFwwMDBcXDE2NVxcMDAxXFwyNTJcXDAwMFxcXG4gICAgXFwxNjJcXDAwMVxcMDU5XFwwMDFcXDA2OVxcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwyNTVcXDI1NVxcMDgxXFwwMDBcXDA4MVxcMDAwXFxcbiAgICBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDAzOVxcMDAxXFwwNDJcXDAwMVxcMjU1XFwyNTVcXDE2M1xcMDAxXFxcbiAgICBcXDE2NFxcMDAxXFwxMjBcXDAwMFxcMDAyXFwwMDFcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMTY2XFwwMDFcXDA1NVxcMDAxXFwxNTNcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwMDdcXDAwMVxcMTY3XFwwMDFcXDE2NFxcMDAxXFwxNjlcXDAwMVxcMDE2XFwwMDFcXDE2NFxcMDAxXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA1MVxcMDAxXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA5MFxcMDAwXFxcbiAgICBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcXG4gICAgXFwwOTBcXDAwMFxcMDk3XFwwMDBcXDEzN1xcMDAxXFwxNjRcXDAwMVxcMTcyXFwwMDFcXDE4NVxcMDAxXFwxMzZcXDAwMVxcMTczXFwwMDFcXFxuICAgIFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDk3XFwwMDBcXDE3OVxcMDAwXFxcbiAgICBcXDE3NFxcMDAxXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwNDZcXDAwMVxcXG4gICAgXFwxNzVcXDAwMVxcMTc2XFwwMDFcXDE4MFxcMDAwXFwxNjRcXDAwMVxcMTg0XFwwMDFcXDE4MVxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDEyNFxcMDAxXFxcbiAgICBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDE5MlxcMDAxXFwxNzhcXDAwMVxcXG4gICAgXFwwMjFcXDAwMVxcMTc5XFwwMDFcXDA5N1xcMDAwXFwxOTNcXDAwMVxcMTgwXFwwMDFcXDE4MVxcMDAxXFwxODJcXDAwMVxcMTgzXFwwMDFcXFxuICAgIFxcMTY0XFwwMDFcXDIxNlxcMDAxXFwyNTVcXDI1NVxcMDk3XFwwMDBcXDE4NFxcMDAxXFwyMTZcXDAwMVxcMjA5XFwwMDFcXDA5N1xcMDAwXFxcbiAgICBcXDIyM1xcMDAxXFwwOTdcXDAwMFxcMjA4XFwwMDFcXDIzMFxcMDAxXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDIxOVxcMDAxXFwwMzdcXDAwMVxcXG4gICAgXFwyMTZcXDAwMVxcMjE3XFwwMDFcXDAwM1xcMDAyXFwyMjBcXDAwMVxcMjE2XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMDAzXFwwMDJcXFxuICAgIFxcMjE2XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDA5NlxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwyMTZcXDAwMVxcXG4gICAgXFwwMDNcXDAwMlxcMTI2XFwwMDFcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMjE4XFwwMDFcXDI1MFxcMDAxXFxcbiAgICBcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDAwM1xcMDAyXFwxMjRcXDAwMVxcMTI0XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcXG4gICAgXFwyMjFcXDAwMVxcMDAzXFwwMDJcXDI1M1xcMDAxXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAzXFwwMDJcXDE5NlxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDA5N1xcMDAwXFwwOTZcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwyMzVcXDAwMVxcMDAzXFwwMDJcXFxuICAgIFxcMjQxXFwwMDFcXDAwM1xcMDAyXFwyNTVcXDAwMVxcMjQyXFwwMDFcXDAwM1xcMDAyXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDI0NlxcMDAxXFwxMjlcXDAwMVxcMTI5XFwwMDFcXFxuICAgIFxcMjI4XFwwMDFcXDAwM1xcMDAyXFwxOTZcXDAwMVxcMDAzXFwwMDJcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMDAzXFwwMDJcXDE5OFxcMDAxXFwwMDNcXDAwMlxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwxOTZcXDAwMVxcMjM0XFwwMDFcXFxuICAgIFxcMTM0XFwwMDFcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDAwMFxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDFcXDAwMVxcMTc3XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg4XFwwMDBcXDAwMFxcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDIwMVxcMDAxXFwyMjdcXDAwMVxcMDAwXFwwMDBcXDE5MVxcMDAwXFwyMDZcXDAwMVxcMTIzXFwwMDFcXDE4OVxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTg5XFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTk1XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5OFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNDhcXDAwMVxcMTk2XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk2XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMjAyXFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjA1XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAzXFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjI2XFwwMDBcXDE5NVxcMDAxXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIzMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwNlxcMDAwXFwyMjFcXDAwMVxcMjM5XFwwMDFcXFxuICAgIFxcMjU0XFwwMDFcXDAwMFxcMDAwXFwyMDdcXDAwMFxcMjQ0XFwwMDFcXDAwMFxcMDAwXFwyMjVcXDAwMFxcMjAzXFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMzJcXDAwMFxcMDAwXFwwMDBcXDIzMlxcMDAwXFwwMDBcXDAwMFxcMjI1XFwwMDFcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIxN1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjI1XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIzMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyMzBcXDAwMFxcMDAwXFwwMDBcXDIyOFxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDAwMFxcMDAwXFwyMjhcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMTg2XFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDFcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTEzXFwwMDFcXDAwMFxcMDAwXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcXG4gICAgXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwwMDBcXDAwMFxcMTEyXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxOTNcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDExMlxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MFxcMDAwXFwyMDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMDAwXFwwMDBcXDI0NlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDIzOFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDA2OVxcMDAxXFwwNzBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjlcXDAwMVxcMDc2XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwNzhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEwNFxcMDAxXFwwNzNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDc5XFwwMDFcXDAwMFxcMDAwXFwwNzFcXDAwMVxcMDc2XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjQzXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDFcXDExOVxcMDAxXFwwMDBcXDAwMFxcMTE5XFwwMDFcXDAwMFxcMDAwXFwwODFcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3NFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXFxuICAgIFxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwwODNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDgyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMTVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwODRcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMTdcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTE3XFwwMDFcXDAwMFxcMDAwXFwwNzVcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTE1XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDEyOFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTg1XFwwMDFcXDAwMFxcMDAwXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxODRcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjdcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTg0XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjdcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDE5MVxcMDAxXFwxNDJcXDAwMVxcMTkxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDZcXDAwMVxcMTQ3XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDZcXDAwMVxcMTU0XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDE0NlxcMDAxXFwwMDBcXDAwMFxcMTUzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE3N1xcMDAxXFwxNTBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMTU2XFwwMDFcXDAwMFxcMDAwXFwxNDhcXDAwMVxcMTU0XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDE0OVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDEzOVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE1N1xcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNThcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDE1MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMTg3XFwwMDFcXDAwMFxcMDAwXFwxNjBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTU5XFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwxNjFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxNTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE4OVxcMDAxXFwwMDBcXDAwMFxcMTg5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDE4N1xcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDVcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDE5OVxcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcXG4gICAgXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXFxuICAgIFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFwyMTRcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxM1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxMVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcIjtcbiAgTGV4aW5nLmxleF9jaGVjayA9XG4gICBcIlxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMDAwXFwwMDBcXDEzNFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDNcXDAwMFxcMjU1XFwyNTVcXDEzNFxcMDAwXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDA1N1xcMDAwXFwyNTVcXDI1NVxcMDY5XFwwMDFcXFxuICAgIFxcMTQ2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjVcXDAwMFxcMTM4XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwM1xcMDAwXFwxNjlcXDAwMFxcMTM0XFwwMDBcXDE3NFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDEwXFwwMDFcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMDEyXFwwMDFcXDAwMFxcMDAwXFwwMTBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDA1XFwwMDBcXDExNVxcMDAwXFwwMDBcXDAwMFxcMTI1XFwwMDBcXDEyOVxcMDAwXFwwMDVcXDAwMFxcXG4gICAgXFwyMzZcXDAwMVxcMTM2XFwwMDBcXDI1NVxcMDAxXFwwMzhcXDAwMFxcMjU1XFwyNTVcXDAxMFxcMDAwXFwxMzZcXDAwMFxcMTAyXFwwMDBcXFxuICAgIFxcMDU4XFwwMDBcXDAwMFxcMDAwXFwxMDdcXDAwMFxcMTAyXFwwMDBcXDI1NVxcMjU1XFwwMTFcXDAwMFxcMDAwXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDI5XFwwMDBcXDAzOFxcMDAwXFwwMDBcXDAwMFxcMTExXFwwMDBcXDIwOFxcMDAwXFwyMzNcXDAwMFxcMjU1XFwwMDBcXFxuICAgIFxcMDEyXFwwMDFcXDAxNVxcMDAwXFwwMTdcXDAwMFxcMDYwXFwwMDBcXDAxMVxcMDAwXFwwMTBcXDAwMFxcMDAwXFwwMDBcXDAyMFxcMDAwXFxcbiAgICBcXDAyNFxcMDAwXFwwMzFcXDAwMFxcMDMyXFwwMDBcXDAzNFxcMDAwXFwwMjJcXDAwMFxcMDI2XFwwMDBcXDAwMFxcMDAwXFwwMTRcXDAwMFxcXG4gICAgXFwwMjdcXDAwMFxcMDMzXFwwMDBcXDAxOFxcMDAwXFwwMjNcXDAwMFxcMDAwXFwwMDBcXDAxNlxcMDAwXFwwMTlcXDAwMFxcMDM1XFwwMDBcXFxuICAgIFxcMDQwXFwwMDBcXDAzNlxcMDAwXFwwMzhcXDAwMFxcMDAwXFwwMDBcXDA0MVxcMDAwXFwwNDJcXDAwMFxcMDQzXFwwMDBcXDA0NFxcMDAwXFxcbiAgICBcXDA0NVxcMDAwXFwwNDZcXDAwMFxcMDU4XFwwMDBcXDA4MlxcMDAwXFwwMTFcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcXG4gICAgXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDYzXFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDA4NVxcMDAwXFwxNDBcXDAwMFxcMDYwXFwwMDBcXDAxM1xcMDAwXFwxNDNcXDAwMFxcXG4gICAgXFwxNDRcXDAwMFxcMTQ1XFwwMDBcXDA0OFxcMDAwXFwxNDdcXDAwMFxcMDQ4XFwwMDBcXDE0OFxcMDAwXFwwMzlcXDAwMFxcMDQ4XFwwMDBcXFxuICAgIFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFxcbiAgICBcXDA0OFxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcXG4gICAgXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNjVcXDAwMFxcMDM5XFwwMDBcXDE0OVxcMDAwXFxcbiAgICBcXDE1MFxcMDAwXFwxNTZcXDAwMFxcMDYzXFwwMDBcXDE1N1xcMDAwXFwwNTFcXDAwMFxcMTU4XFwwMDBcXDA1MVxcMDAwXFwxNTlcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXFxuICAgIFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcXG4gICAgXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMTU1XFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDE2MVxcMDAwXFwxNjJcXDAwMFxcMTU1XFwwMDBcXDA5MVxcMDAwXFwwNjVcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXFxuICAgIFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU3XFwwMDBcXDA2OFxcMDAwXFwxMDJcXDAwMFxcMTA3XFwwMDBcXDExNVxcMDAwXFxcbiAgICBcXDEzMVxcMDAwXFwxMzNcXDAwMFxcMTMzXFwwMDBcXDEyNVxcMDAwXFwxMzhcXDAwMFxcMTMzXFwwMDBcXDE2M1xcMDAwXFwwOTRcXDAwMFxcXG4gICAgXFwxNjVcXDAwMFxcMDY4XFwwMDBcXDE2NlxcMDAwXFwxNjdcXDAwMFxcMTY4XFwwMDBcXDE3MVxcMDAwXFwxMTFcXDAwMFxcMTcyXFwwMDBcXFxuICAgIFxcMTczXFwwMDBcXDIwNlxcMDAwXFwyMDNcXDAwMFxcMjA3XFwwMDBcXDIxMFxcMDAwXFwyMTFcXDAwMFxcMDU4XFwwMDBcXDA4MlxcMDAwXFxcbiAgICBcXDEzM1xcMDAwXFwyMTJcXDAwMFxcMjEzXFwwMDBcXDIxNFxcMDAwXFwyMTVcXDAwMFxcMjE3XFwwMDBcXDE0MFxcMDAwXFwyMThcXDAwMFxcXG4gICAgXFwwOTdcXDAwMFxcMjE5XFwwMDBcXDIyMFxcMDAwXFwxMTlcXDAwMFxcMjIxXFwwMDBcXDIyMlxcMDAwXFwyMjNcXDAwMFxcMTMzXFwwMDBcXFxuICAgIFxcMDkxXFwwMDBcXDIwM1xcMDAwXFwwMzRcXDAwMVxcMDYyXFwwMDFcXDIzM1xcMDAwXFwxNTJcXDAwMFxcMDAxXFwwMDFcXDA4MFxcMDAxXFxcbiAgICBcXDI0N1xcMDAwXFwwNjBcXDAwMFxcMjUxXFwwMDBcXDA1NFxcMDAxXFwwNThcXDAwMVxcMDgxXFwwMDFcXDA2OFxcMDAwXFwwNDFcXDAwMVxcXG4gICAgXFwwODJcXDAwMVxcMDgzXFwwMDFcXDAwNlxcMDAxXFwwMjZcXDAwMVxcMDY4XFwwMDBcXDExOVxcMDAwXFwwMzBcXDAwMVxcMDE1XFwwMDFcXFxuICAgIFxcMDY4XFwwMDBcXDA5NFxcMDAwXFwwMTVcXDAwMVxcMDg0XFwwMDFcXDA4NVxcMDAxXFwwODZcXDAwMVxcMDcxXFwwMDFcXDA4OFxcMDAxXFxcbiAgICBcXDA2OFxcMDAwXFwyMDNcXDAwMFxcMDUwXFwwMDFcXDA3MVxcMDAxXFwwNjhcXDAwMFxcMDg5XFwwMDFcXDA2OFxcMDAwXFwwNjhcXDAwMFxcXG4gICAgXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXFxuICAgIFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwOTdcXDAwMFxcMDc2XFwwMDFcXDExOVxcMDAwXFwwOTBcXDAwMVxcMDYzXFwwMDBcXDAwMVxcMDAxXFxcbiAgICBcXDA5MlxcMDAxXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzhcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDE1MlxcMDAwXFwwNzZcXDAwMVxcMDkzXFwwMDFcXDA5NVxcMDAxXFwwOTdcXDAwMVxcMDk4XFwwMDFcXDA0NVxcMDAxXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA5OVxcMDAxXFwxNTJcXDAwMFxcXG4gICAgXFwxMDBcXDAwMVxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMTgwXFwwMDBcXFxuICAgIFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFxcbiAgICBcXDE4MFxcMDAwXFwwMjBcXDAwMVxcMDc2XFwwMDFcXDA2NVxcMDAwXFwwMjBcXDAwMVxcMTAxXFwwMDFcXDEwMlxcMDAxXFwxMDRcXDAwMVxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDEwNVxcMDAxXFwxMDZcXDAwMVxcMDQ1XFwwMDFcXDAzNlxcMDAxXFwxMDdcXDAwMVxcMTA4XFwwMDFcXDEwOVxcMDAxXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDExMFxcMDAxXFxcbiAgICBcXDAyNlxcMDAxXFwxMjFcXDAwMVxcMTU3XFwwMDFcXDAzMFxcMDAxXFwxNThcXDAwMVxcMDIwXFwwMDFcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDkxXFwwMDBcXDE1OVxcMDAxXFwwNjJcXDAwMVxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwyNDdcXDAwMFxcMTYwXFwwMDFcXDI1MVxcMDAwXFxcbiAgICBcXDE2MVxcMDAxXFwwNThcXDAwMVxcMDY4XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcXG4gICAgXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA5NFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFxcbiAgICBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDM2XFwwMDFcXDA0MVxcMDAxXFwwOTdcXDAwMFxcMTYyXFwwMDFcXFxuICAgIFxcMTYzXFwwMDFcXDExOVxcMDAwXFwwMDFcXDAwMVxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwxNjVcXDAwMVxcMDU0XFwwMDFcXDE1MlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcXG4gICAgXFwwODZcXDAwMFxcMDg2XFwwMDBcXDAwNlxcMDAxXFwxNjZcXDAwMVxcMTY3XFwwMDFcXDE2OFxcMDAxXFwwMTVcXDAwMVxcMTY5XFwwMDFcXFxuICAgIFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDUwXFwwMDFcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg5XFwwMDBcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFxcbiAgICBcXDA4OVxcMDAwXFwwOTVcXDAwMFxcMTMzXFwwMDFcXDE3MFxcMDAxXFwxNzFcXDAwMVxcMTU0XFwwMDFcXDEzM1xcMDAxXFwxNzJcXDAwMVxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwOTVcXDAwMFxcMTc2XFwwMDBcXFxuICAgIFxcMTczXFwwMDFcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA0NVxcMDAxXFxcbiAgICBcXDE3NFxcMDAxXFwxNzVcXDAwMVxcMTc2XFwwMDBcXDE3NlxcMDAxXFwxNTRcXDAwMVxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcXG4gICAgXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTIyXFwwMDFcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMTQ4XFwwMDFcXDE3N1xcMDAxXFxcbiAgICBcXDAyMFxcMDAxXFwxNzhcXDAwMVxcMDk4XFwwMDBcXDE0OFxcMDAxXFwxNzlcXDAwMVxcMTgwXFwwMDFcXDE4MVxcMDAxXFwxODJcXDAwMVxcXG4gICAgXFwxODNcXDAwMVxcMjE2XFwwMDFcXDE5M1xcMDAxXFwwOTVcXDAwMFxcMTU0XFwwMDFcXDIxNlxcMDAxXFwyMDVcXDAwMVxcMDk4XFwwMDBcXFxuICAgIFxcMjIyXFwwMDFcXDA5NVxcMDAwXFwyMDVcXDAwMVxcMjI5XFwwMDFcXDAwMVxcMDAyXFwwOTVcXDAwMFxcMjE4XFwwMDFcXDAzNlxcMDAxXFxcbiAgICBcXDIxNVxcMDAxXFwyMTVcXDAwMVxcMDAyXFwwMDJcXDIxOFxcMDAxXFwyMTVcXDAwMVxcMDk1XFwwMDBcXDAwNFxcMDAyXFwwMDVcXDAwMlxcXG4gICAgXFwyMTZcXDAwMVxcMDk1XFwwMDBcXDAwNlxcMDAyXFwwOTVcXDAwMFxcMDk1XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXFxuICAgIFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDIxNVxcMDAxXFxcbiAgICBcXDAwN1xcMDAyXFwxMjJcXDAwMVxcMDA4XFwwMDJcXDAwOVxcMDAyXFwwMTBcXDAwMlxcMDExXFwwMDJcXDA5NlxcMDAwXFwwOTZcXDAwMFxcXG4gICAgXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk4XFwwMDBcXDAxMlxcMDAyXFwyMTVcXDAwMVxcMjQ3XFwwMDFcXFxuICAgIFxcMDEzXFwwMDJcXDAxNFxcMDAyXFwwOThcXDAwMFxcMDE1XFwwMDJcXDEyNVxcMDAxXFwxMjhcXDAwMVxcMDk4XFwwMDBcXDAxNlxcMDAyXFxcbiAgICBcXDIyMFxcMDAxXFwwMTdcXDAwMlxcMjUxXFwwMDFcXDAxOFxcMDAyXFwwMTlcXDAwMlxcMDIwXFwwMDJcXDA5OFxcMDAwXFwxMjFcXDAwMVxcXG4gICAgXFwwMjFcXDAwMlxcMTk0XFwwMDFcXDA5OFxcMDAwXFwwMjJcXDAwMlxcMDk4XFwwMDBcXDA5OFxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXFxuICAgIFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDIzMVxcMDAxXFwwMjNcXDAwMlxcXG4gICAgXFwyMzhcXDAwMVxcMDI0XFwwMDJcXDI1MVxcMDAxXFwyMzhcXDAwMVxcMDI1XFwwMDJcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMjQzXFwwMDFcXDEyNVxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwyMjRcXDAwMVxcMDI2XFwwMDJcXDE5N1xcMDAxXFwwMjdcXDAwMlxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwwMjhcXDAwMlxcMTk0XFwwMDFcXDAyOVxcMDAyXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDAzMFxcMDAyXFwwMzFcXDAwMlxcMDMyXFwwMDJcXDIwMFxcMDAxXFwyMzFcXDAwMVxcXG4gICAgXFwxMzNcXDAwMVxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMjU1XFwyNTVcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5N1xcMDAxXFwxNzZcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODVcXDAwMFxcMjU1XFwyNTVcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDIyNFxcMDAxXFwyNTVcXDI1NVxcMTg1XFwwMDBcXDIwNVxcMDAxXFwxMjJcXDAwMVxcMTg1XFwwMDBcXDE4NVxcMDAwXFxcbiAgICBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFxcbiAgICBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTJcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTkyXFwwMDBcXFxuICAgIFxcMTkzXFwwMDFcXDI0N1xcMDAxXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFxcbiAgICBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcXG4gICAgXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOTlcXDAwMFxcMjI2XFwwMDBcXFxuICAgIFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFxcbiAgICBcXDIyNlxcMDAwXFwxOTlcXDAwMFxcMTI1XFwwMDFcXDEyOFxcMDAxXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcXG4gICAgXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwyMDRcXDAwMFxcMTk0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjMxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk5XFwwMDBcXDIyMFxcMDAxXFwyMzhcXDAwMVxcXG4gICAgXFwyNTFcXDAwMVxcMjU1XFwyNTVcXDE5OVxcMDAwXFwyNDNcXDAwMVxcMjU1XFwyNTVcXDIwNFxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXFxuICAgIFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFxcbiAgICBcXDIyNVxcMDAwXFwyNTVcXDI1NVxcMjI1XFwwMDBcXDI1NVxcMjU1XFwyMjRcXDAwMVxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcXG4gICAgXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjA1XFwwMDBcXFxuICAgIFxcMTk3XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDRcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjI4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDIyOFxcMDAwXFwyNTVcXDI1NVxcMjI3XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFxcbiAgICBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFxcbiAgICBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjU1XFwyNTVcXDIyN1xcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwxODVcXDAwMFxcMjMyXFwwMDBcXFxuICAgIFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFxcbiAgICBcXDIzMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIzN1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwNzdcXDAwMVxcMjU1XFwyNTVcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFxcbiAgICBcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDI1NVxcMjU1XFwwNzdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMDc3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjM3XFwwMDBcXDE5OVxcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNTVcXDI1NVxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjQwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjM3XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMDY2XFwwMDFcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFxcbiAgICBcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDc5XFwwMDFcXDA2NlxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwwNjZcXDAwMVxcXG4gICAgXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXFxuICAgIFxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwNjZcXDAwMVxcMTEyXFwwMDFcXDI1NVxcMjU1XFwxMTJcXDAwMVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXFxuICAgIFxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcXG4gICAgXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDExNFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDExNVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxMTVcXDAwMVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXFxuICAgIFxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxMTRcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXFxuICAgIFxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcXG4gICAgXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTI2XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFxcbiAgICBcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxNTVcXDAwMVxcMjU1XFwyNTVcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI5XFwwMDFcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFxcbiAgICBcXDEyNlxcMDAxXFwxMjlcXDAwMVxcMTI2XFwwMDFcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxNTVcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDEyOVxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDI1NVxcMjU1XFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTg0XFwwMDFcXDEzOFxcMDAxXFwxODRcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxODRcXDAwMVxcMTg0XFwwMDFcXFxuICAgIFxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFxcbiAgICBcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcXG4gICAgXFwxODVcXDAwMVxcMTg1XFwwMDFcXDI1NVxcMjU1XFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzOFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQxXFwwMDFcXDI1NVxcMjU1XFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXFxuICAgIFxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOThcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwxNDNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTU2XFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDE5OFxcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFxcbiAgICBcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTM4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxOThcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE5OFxcMDAxXFwxODZcXDAwMVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxOThcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTk4XFwwMDFcXDI1NVxcMjU1XFwxOThcXDAwMVxcMTk4XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTg3XFwwMDFcXDI1NVxcMjU1XFwxODdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMTg2XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXFxuICAgIFxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcXG4gICAgXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcXG4gICAgXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMjAxXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyMDFcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyMDFcXDAwMVxcMjAxXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwNFxcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjU1XFwyNTVcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjU1XFwyNTVcXDIxMFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjEwXFwwMDFcXDI1NVxcMjU1XFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjEzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjEwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVwiO1xuICBMZXhpbmcubGV4X2Jhc2VfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2JhY2t0cmtfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2RlZmF1bHRfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X3RyYW5zX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9jaGVja19jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfY29kZSA9XG4gICBcIlwiO1xufVxuXG5sZXQgcmVjIHJlYWRfanNvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2pzb25fcmVjIHYgbGV4YnVmIDBcbmFuZCBfX29jYW1sX2xleF9yZWFkX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDE4OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE4OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBgQm9vbCB0cnVlIClcblxuIyAxMDMyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDMzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxODkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxODkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYEJvb2wgZmFsc2UgKVxuXG4jIDEwMzcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwMzggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDE5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBgTnVsbCApXG5cbiMgMTA0MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA0MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAxOTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXRsaXQgXCJOYU5cIlxuICAgICAgICAgICAgICAgIFxuIyAxOTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDUzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDU0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyAxOTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxOTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdGxpdCBcIkluZmluaXR5XCJcbiAgICAgICAgICAgICAgICBcbiMgMjA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgMjA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMjA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXRsaXQgXCItSW5maW5pdHlcIlxuICAgICAgICAgICAgICAgIFxuIyAyMTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDc2IFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyAyMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAyMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBTdHJpbmdsaXQgKGZpbmlzaF9zdHJpbmdsaXQgdiBsZXhidWYpXG4gICAgICAgICAgICAgICAgXG4jIDIxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwODcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwODggXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDIyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDIyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBtYWtlX3Bvc2l0aXZlX2ludCB2IGxleGJ1ZiApXG5cbiMgMTA5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgMjIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMjIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIG1ha2VfbmVnYXRpdmVfaW50IHYgbGV4YnVmIClcblxuIyAxMDk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDk4IFwibGliL3JlYWQubWxcIlxuICB8IDkgLT5cblxuIyAyMjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAyMjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdGxpdCAobGV4ZW1lIGxleGJ1ZilcbiAgICAgICAgICAgICAgICAgXG4jIDIyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTA5IFwibGliL3JlYWQubWxcIlxuICB8IDEwIC0+XG5cbiMgMjMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDIzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfaWRlbnQgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSAoZmllbGRfbmFtZSwgcmVhZF9qc29uIHYgbGV4YnVmKSA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9pZGVudCB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gKGZpZWxkX25hbWUsIHJlYWRfanNvbiB2IGxleGJ1ZikgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgICAgIGBBc3NvYyAoTGlzdC5yZXYgIWFjYylcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExMzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExMzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTEgLT5cblxuIyAyNTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfanNvbiB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfanNvbiB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICBgTGlzdCAoTGlzdC5yZXYgIWFjYylcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExNTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExNTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTIgLT5cblxuIyAyNzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDI3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9qc29uIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfanNvbiB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX3R1cGxlIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGBUdXBsZSAoTGlzdC5yZXYgIWFjYylcbiAgICAgICAgICAgICAgICAgXG4jIDI4OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTc4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTc5IFwibGliL3JlYWQubWxcIlxuICB8IDEzIC0+XG5cbiMgMjkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDI5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyAyOTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGxldCBjb25zID0gcmVhZF9pZGVudCB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGBWYXJpYW50IChjb25zLCBmaW5pc2hfdmFyaWFudCB2IGxleGJ1ZilcbiAgICAgICAgICAgICAgICAgXG4jIDMwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTkzIFwibGliL3JlYWQubWxcIlxuICB8IDE0IC0+XG5cbiMgMzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMTk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTk4IFwibGliL3JlYWQubWxcIlxuICB8IDE1IC0+XG5cbiMgMzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWY7IHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTIwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNiAtPlxuXG4jIDMwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTIwNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIwOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNyAtPlxuXG4jIDMwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTIxMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIxMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxOCAtPlxuXG4jIDMwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEyMTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTkgLT5cblxuIyAzMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmIClcblxuIyAxMjIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjIzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nX3JlYyB2IGxleGJ1ZiA1OFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDMxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggQnVmZmVyLmNvbnRlbnRzIHYuYnVmIClcblxuIyAxMjM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjM1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGZpbmlzaF9lc2NhcGVkX2NoYXIgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDEyNDAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNDEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDMxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDEyNDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDMxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTI1MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI1MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBtYXBfc3RyaW5nIHYgZiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfbWFwX3N0cmluZ19yZWMgdiBmIGxleGJ1ZiA2M1xuYW5kIF9fb2NhbWxfbGV4X21hcF9zdHJpbmdfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBsZXQgYiA9IHYuYnVmIGluXG4gICAgICAgICAgICAgICAgICAgIGYgKEJ1ZmZlci5jb250ZW50cyBiKSAwIChCdWZmZXIubGVuZ3RoIGIpIClcblxuIyAxMjY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjY1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGZpbmlzaF9lc2NhcGVkX2NoYXIgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiApXG5cbiMgMTI3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgbWFwX3N0cmluZyB2IGYgbGV4YnVmIClcblxuIyAxMjc2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjc3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzMjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEyODEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyODIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9tYXBfc3RyaW5nX3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfZXNjYXBlZF9jaGFyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9lc2NhcGVkX2NoYXJfcmVjIHYgbGV4YnVmIDY4XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2VzY2FwZWRfY2hhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5sZXRcblxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICBcbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgY1xuXG4jIDEyOTQgXCJsaWIvcmVhZC5tbFwiXG4jIDEyOTQgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyBpblxuXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgYyApXG5cbiMgMTI5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcYicgKVxuXG4jIDEzMDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDMzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXDAxMicgKVxuXG4jIDEzMDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDMzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nIClcblxuIyAxMzEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzE0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyAzMzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxyJyApXG5cbiMgMTMxOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMxOSBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgMzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcdCcgKVxuXG4jIDEzMjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxubGV0XG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBhXG5cbiMgMTMyOSBcImxpYi9yZWFkLm1sXCJcbiMgMTMyOSBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDEpXG5hbmRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBiXG5cbiMgMTMzNCBcImxpYi9yZWFkLm1sXCJcbiMgMTMzNCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDIpXG5hbmRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1xuXG4jIDEzMzkgXCJsaWIvcmVhZC5tbFwiXG4jIDEzMzkgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAzKVxuYW5kXG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkXG5cbiMgMTM0NCBcImxpYi9yZWFkLm1sXCJcbiMgMTM0NCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDQpIGluXG5cbiMgMzM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgeCA9XG4gICAgICAgICAgICAgKGhleCBhIGxzbCAxMikgbG9yIChoZXggYiBsc2wgOCkgbG9yIChoZXggYyBsc2wgNCkgbG9yIGhleCBkXG4gICAgICAgICAgIGluXG4gICAgICAgICAgIGlmIHggPj0gMHhEODAwICYmIHggPD0gMHhEQkZGIHRoZW5cbiAgICAgICAgICAgICBmaW5pc2hfc3Vycm9nYXRlX3BhaXIgdiB4IGxleGJ1ZlxuICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgdXRmOF9vZl9jb2RlIHYuYnVmIHhcbiAgICAgICAgIClcblxuIyAxMzU1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzU2IFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyAzNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZVwiIHYgbGV4YnVmIClcblxuIyAxMzYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzYxIFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyAzNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEzNjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzNjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfZXNjYXBlZF9jaGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3N1cnJvZ2F0ZV9wYWlyIHYgeCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3N1cnJvZ2F0ZV9wYWlyX3JlYyB2IHggbGV4YnVmIDgyXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3N1cnJvZ2F0ZV9wYWlyX3JlYyB2IHggbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxubGV0XG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgYVxuXG4jIDEzNzggXCJsaWIvcmVhZC5tbFwiXG4jIDEzNzggXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAyKVxuYW5kXG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJcblxuIyAxMzgzIFwibGliL3JlYWQubWxcIlxuIyAxMzgzIFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMylcbmFuZFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1xuXG4jIDEzODggXCJsaWIvcmVhZC5tbFwiXG4jIDEzODggXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyA0KVxuYW5kXG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZFxuXG4jIDEzOTMgXCJsaWIvcmVhZC5tbFwiXG4jIDEzOTMgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyA1KSBpblxuXG4jIDM1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IHkgPVxuICAgICAgICAgICAgIChoZXggYSBsc2wgMTIpIGxvciAoaGV4IGIgbHNsIDgpIGxvciAoaGV4IGMgbHNsIDQpIGxvciBoZXggZFxuICAgICAgICAgICBpblxuICAgICAgICAgICBpZiB5ID49IDB4REMwMCAmJiB5IDw9IDB4REZGRiB0aGVuXG4gICAgICAgICAgICAgdXRmOF9vZl9zdXJyb2dhdGVfcGFpciB2LmJ1ZiB4IHlcbiAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJJbnZhbGlkIGxvdyBzdXJyb2dhdGUgZm9yIGNvZGUgcG9pbnQgYmV5b25kIFUrRkZGRlwiXG4gICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgKVxuXG4jIDE0MDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIk1pc3NpbmcgZXNjYXBlIHNlcXVlbmNlIHJlcHJlc2VudGluZyBsb3cgc3Vycm9nYXRlIFxcXG4gICAgICAgICAgICAgICAgICAgICAgIGZvciBjb2RlIHBvaW50IGJleW9uZCBVK0ZGRkZcIiB2IGxleGJ1ZiApXG5cbiMgMTQxMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQxMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3N1cnJvZ2F0ZV9wYWlyX3JlYyB2IHggbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc3RyaW5nbGl0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIDkxXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgICAgICAgIGxldCBzID0gQnl0ZXMuY3JlYXRlIChsZW4rMSkgaW5cbiAgICAgICAgICAgQnl0ZXMuc2V0IHMgMCAnXCInO1xuICAgICAgICAgICBCeXRlcy5ibGl0IGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIHMgMSBsZW47XG4gICAgICAgICAgIEJ5dGVzLnRvX3N0cmluZyBzXG4gICAgICAgICApXG5cbiMgMTQzMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQzNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBzdHJpbmcgbGl0ZXJhbFwiIHYgbGV4YnVmIClcblxuIyAxNDM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDM5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzNzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDEwMlxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzNzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM3NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCB4ID0gcmVhZF9qc29uIHYgbGV4YnVmIGluXG4gICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgIHJlYWRfZ3QgdiBsZXhidWY7XG4gICAgICAgICAgIFNvbWUgeCApXG5cbiMgMTQ1OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ1OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBOb25lIClcblxuIyAxNDYzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDY0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzODEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM4MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgb3IgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNDY4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDY5IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzODIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM4MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0NzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbHQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9sdF9yZWMgdiBsZXhidWYgMTA3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9sdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzg1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzg1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAxNDg1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDg2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzODYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzODYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc8JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2x0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9ndCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2d0X3JlYyB2IGxleGJ1ZiAxMTFcbmFuZCBfX29jYW1sX2xleF9yZWFkX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAxNTA3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTA4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE1MTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTUxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2NvbW1hIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfY29tbWFfcmVjIHYgbGV4YnVmIDExNVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfY29tbWFfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDE1MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM5NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzk2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTUzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTQwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9jb21tYV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHN0YXJ0X2FueV92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV92YXJpYW50X3JlYyB2IGxleGJ1ZiAxMTlcbmFuZCBfX29jYW1sX2xleF9zdGFydF9hbnlfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGBFZGd5X2JyYWNrZXQgKVxuXG4jIDE1NTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBgRG91YmxlX3F1b3RlIClcblxuIyAxNTU3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTU4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggYFNxdWFyZV9icmFja2V0IClcblxuIyAxNTYyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTYzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc8JywgJ1xcXCInIG9yICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTU2NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU2OCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE1NzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9zdGFydF9hbnlfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9jb21tZW50X3JlYyB2IGxleGJ1ZiAxMjVcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMTU4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiVW50ZXJtaW5hdGVkIGNvbW1lbnRcIiB2IGxleGJ1ZiApXG5cbiMgMTU4OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU5MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMTU5NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU5NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMTU5OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYwMCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9lb2YgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfZW9mX3JlYyBsZXhidWYgMTMxXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9lb2ZfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNjExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjEyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTYxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfZW9mX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfc3BhY2UgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9zcGFjZV9yZWMgdiBsZXhidWYgMTMzXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTYyOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYyOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWY7IHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2MzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQyNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICgpIClcblxuIyAxNjQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjQ5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbnVsbCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX251bGxfcmVjIHYgbGV4YnVmIDE0MFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggKCkgKVxuXG4jIDE2NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnbnVsbCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE2NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE2NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX251bGxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX251bGxfaWZfcG9zc2libGUgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX2lmX3Bvc3NpYmxlX3JlYyB2IGxleGJ1ZiAxNDdcbmFuZCBfX29jYW1sX2xleF9yZWFkX251bGxfaWZfcG9zc2libGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE2ODIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2ODMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNjg3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjg4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX2lmX3Bvc3NpYmxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9ib29sIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYm9vbF9yZWMgdiBsZXhidWYgMTUyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9ib29sX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTY5OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcwMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNzA0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzA1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTcwOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcxMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNzE0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzE1IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICd0cnVlJyBvciAnZmFsc2UnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNzE5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzIwIFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA0NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTcyNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcyNSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYm9vbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaW50X3JlYyB2IGxleGJ1ZiAxNzZcbmFuZCBfX29jYW1sX2xleF9yZWFkX2ludF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBleHRyYWN0X3Bvc2l0aXZlX2ludCBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggSW50X292ZXJmbG93IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50IG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE3MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgZXh0cmFjdF9uZWdhdGl2ZV9pbnQgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIEludF9vdmVyZmxvdyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludCBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxNzQ1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzQ2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggKCogU3VwcG9ydCBmb3IgZG91YmxlLXF1b3RlZCBcImludHNcIiAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBpbnQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludF9vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYW4gaW50ZWdlciBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGFuIGludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4jIDE3NjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQ3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgaW50ZWdlciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTc2OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc2OSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE3NzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2ludF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaW50MzIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMgdiBsZXhidWYgMTg1XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBJbnQzMi5vZl9zdHJpbmcgKExleGluZy5sZXhlbWUgbGV4YnVmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50MzIgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTc4NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc4OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoICgqIFN1cHBvcnQgZm9yIGRvdWJsZS1xdW90ZWQgXCJpbnRzXCIgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgaW50IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3JlcyAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnQzMi5vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYW4gaW50MzIgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhbiBpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuIyAxODA1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODA2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIGludDMyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxODEwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODExIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0OTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTgxNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgxNiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2ludDY0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaW50NjRfcmVjIHYgbGV4YnVmIDE5MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaW50NjRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQ5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgSW50NjQub2Zfc3RyaW5nIChMZXhpbmcubGV4ZW1lIGxleGJ1ZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludDMyIG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE4MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCAoKiBTdXBwb3J0IGZvciBkb3VibGUtcXVvdGVkIFwiaW50c1wiICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGludCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50NjQub2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGFuIGludDY0IGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYW4gaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICApXG5cbiMgMTg0NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg0OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNTEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBpbnQ2NCBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTg1MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg1MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE4NTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2ludDY0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9udW1iZXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIHYgbGV4YnVmIDE5OVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1MTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbmFuIClcblxuIyAxODY5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODcwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggaW5maW5pdHkgKVxuXG4jIDE4NzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDUxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBuZWdfaW5maW5pdHkgKVxuXG4jIDE4NzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4ODAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDUxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmbG9hdF9vZl9zdHJpbmcgKGxleGVtZSBsZXhidWYpIClcblxuIyAxODg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODg1IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA1MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBmbG9hdCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMuICopXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0X29mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBcIk5hTlwiIC0+IG5hblxuICAgICAgICAgICAgICAgICAgICAgIHwgXCJJbmZpbml0eVwiIC0+IGluZmluaXR5XG4gICAgICAgICAgICAgICAgICAgICAgfCBcIi1JbmZpbml0eVwiIC0+IG5lZ19pbmZpbml0eVxuICAgICAgICAgICAgICAgICAgICAgIHwgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGEgbnVtYmVyIGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYSBudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgKVxuXG4jIDE5MDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDUzOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUzOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgbnVtYmVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTEyIFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyA1MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTkxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9zdHJpbmcgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9zdHJpbmdfcmVjIHYgbGV4YnVmIDIzM1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTkyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnXFxcIicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5MzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxOTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTQwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2lkZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaWRlbnRfcmVjIHYgbGV4YnVmIDIzN1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxOTUyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTUzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cbmxldFxuXG4jIDU1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgc1xuXG4jIDE5NTggXCJsaWIvcmVhZC5tbFwiXG4jIDE5NTggXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lIGxleGJ1ZiBsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgbGV4YnVmLkxleGluZy5sZXhfY3Vycl9wb3MgaW5cblxuIyA1NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcyApXG5cbiMgMTk2MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk2MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTk2NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk2OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE5NzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgbWFwX2lkZW50IHYgZiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfbWFwX2lkZW50X3JlYyB2IGYgbGV4YnVmIDI0MlxuYW5kIF9fb2NhbWxfbGV4X21hcF9pZGVudF9yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgbWFwX3N0cmluZyB2IGYgbGV4YnVmIClcblxuIyAxOTg1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTg2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbWFwX2xleGVtZSBmIGxleGJ1ZiApXG5cbiMgMTk5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTYwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTYwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTk5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIwMDAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMDEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9tYXBfaWRlbnRfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfc2VxdWVuY2UgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfc2VxdWVuY2VfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiAyNDdcbmFuZCBfX29jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgaW5pdF9hY2MgaW5cbiAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgIWFjYyB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsICFhY2MgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgIClcblxuIyAyMDI2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDI3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjAzMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAzMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIwMzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbGlzdF9yZXYgcmVhZF9jZWxsIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjIHJlYWRfY2VsbCB2IGxleGJ1ZiAyNTFcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyByZWFkX2NlbGwgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgIClcblxuIyAyMDYyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDYzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjA2NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA2OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIwNzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwNzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyByZWFkX2NlbGwgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2FycmF5X2VuZF9yZWMgbGV4YnVmIDI1NVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMjA4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMDg5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDkwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9hcnJheV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIDI1N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2MDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIxMDEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMDIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDYwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDIxMDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDYwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjExMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjExMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNjA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIxMTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGUgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiAyNjJcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDYxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA2MTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbGV0IHBvcyA9IHJlZiAwIGluXG4gICAgICAgICAgICAgICAgICAgICBsZXQgYWNjID0gcmVmIGluaXRfYWNjIGluXG4gICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsICFwb3MgIWFjYyB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgaW5jciBwb3M7XG4gICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCAhcG9zICFhY2MgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBwb3M7XG4gICAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfdHVwbGUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgICAgICBcbiMgNjM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDIxNTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDYzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMTU1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTU2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2MzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjE2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9lbmQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kX3JlYyBsZXhidWYgMjY2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMTcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTczIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIxNzcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNzggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX2VuZDIgdiBzdGQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kMl9yZWMgdiBzdGQgbGV4YnVmIDI2OFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJyknIG9yICcnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjE5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZVxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ10nIG9yICcnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjAwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjAxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIyMDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIDI3MVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIyMTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIyMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjIyNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIyOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNjU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIyMzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfc2VwMiB2IHN0ZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXAyX3JlYyB2IHN0ZCBsZXhidWYgMjc2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXAyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMjQ0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjQ1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMjUyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjUzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2NjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjYxIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA2NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyNjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDY3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjcxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXAyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYWJzdHJhY3RfZmllbGRzIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHNfcmVjIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgMjgyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHNfcmVjIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjc1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjc1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgaW5pdF9hY2MgaW5cbiAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfa2V5IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2ZpZWxkICFhY2MgZmllbGRfbmFtZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2tleSB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2ZpZWxkICFhY2MgZmllbGRfbmFtZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgIClcblxuIyAyMzA0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzA1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICd7JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjMwOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMxMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIzMTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkc19yZWMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9sY3VybCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xjdXJsX3JlYyB2IGxleGJ1ZiAyODZcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xjdXJsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzMjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ3snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzMxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzMyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjMzNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMzNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbGN1cmxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX29iamVjdF9lbmQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X2VuZF9yZWMgbGV4YnVmIDI5MFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAyMzQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzQ5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzNTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgMjkyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzNjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAyMzcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzcxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnfScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzNzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDcxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMzgwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzgxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9jb2xvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2NvbG9uX3JlYyB2IGxleGJ1ZiAyOTdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzk4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBzdGFydF9hbnlfdHVwbGUgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3R1cGxlX3JlYyB2IGxleGJ1ZiAzMDFcbmFuZCBfX29jYW1sX2xleF9zdGFydF9hbnlfdHVwbGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMjQxNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQxNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDI0MTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJygnIG9yICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQyNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQyNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9zdGFydF9hbnlfdHVwbGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xwYXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9scGFyX3JlYyB2IGxleGJ1ZiAzMDZcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjQ0MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ0MiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0NDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDczMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDUxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDUyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9scGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9ycGFyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfcnBhcl9yZWMgdiBsZXhidWYgMzEwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9ycGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI0NjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDczNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDY4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDY5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ3MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ3NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfcnBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbGJyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbGJyX3JlYyB2IGxleGJ1ZiAzMTRcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNDg1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDg2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfcmJyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfcmJyX3JlYyB2IGxleGJ1ZiAzMThcbmFuZCBfX29jYW1sX2xleF9yZWFkX3Jicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNTA3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTA4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjUxMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUxMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI1MTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3Jicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHNraXBfanNvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9za2lwX2pzb25fcmVjIHYgbGV4YnVmIDMyMlxuYW5kIF9fb2NhbWxfbGV4X3NraXBfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDc1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNzU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTQ0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTQ1IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA3NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDc1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgNzU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZpbmlzaF9za2lwX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjU1OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU2MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgNzU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDc1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDc1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU2OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU3MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA5IC0+XG5cbiMgNzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDc2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI1OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTAgLT5cblxuIyA3ODQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNzg0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNjEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjE0IFwibGliL3JlYWQubWxcIlxuICB8IDExIC0+XG5cbiMgNzk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDc5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA4MDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl90dXBsZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICBcbiMgODE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI2MzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2MzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTIgLT5cblxuIyA4MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDgyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBmaW5pc2hfc2tpcF92YXJpYW50IHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyA4MjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjY1MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY1MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMyAtPlxuXG4jIDgzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY1NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY1NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNCAtPlxuXG4jIDgzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmOyBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTUgLT5cblxuIyA4MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTYgLT5cblxuIyA4MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTcgLT5cblxuIyA4MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNjc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjc2IFwibGliL3JlYWQubWxcIlxuICB8IDE4IC0+XG5cbiMgODM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZiApXG5cbiMgMjY4MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY4MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3NraXBfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9za2lwX3N0cmluZ2xpdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIDM3OFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMjY5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBzdHJpbmcgbGl0ZXJhbFwiIHYgbGV4YnVmIClcblxuIyAyNjk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjk4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI3MDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc2tpcF92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDM4OVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICByZWFkX2d0IHYgbGV4YnVmIClcblxuIyAyNzE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzE3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAyNzIxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzIyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgb3IgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNzI2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzI3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA4NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI3MzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc2tpcF9pZGVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9za2lwX2lkZW50X3JlYyB2IGxleGJ1ZiAzOTRcbmFuZCBfX29jYW1sX2xleF9za2lwX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggZmluaXNoX3NraXBfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyNzQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzQ0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI3NDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI3NTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDg1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNzU4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzU5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc2tpcF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9qc29uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyB2IGxleGJ1ZiAzOTlcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgODcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmIClcblxuIyAyNzcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzcxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA4NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI3NzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICd7JztcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9vYmplY3RfZW5kIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODAzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA4OTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnWyc7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfYXJyYXlfZW5kIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4MjEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4MjIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDkxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgOTE1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJygnO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl90dXBsZV9lbmQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl90dXBsZV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX3R1cGxlIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIFxuIyA5MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjg0NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg0NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgOTM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDkzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA5MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc8JztcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGZpbmlzaF9idWZmZXJfdmFyaWFudCB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgOTQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDk0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmOyBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgOTQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggQnVmZmVyLmFkZF9zdHJpbmcgdi5idWYgXCIvKlwiO1xuICAgICAgICAgICAgICAgICAgIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgOTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nO1xuICAgICAgICAgICAgICAgICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4NzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4ODAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOSAtPlxuXG4jIDk1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmOyBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMCAtPlxuXG4jIDk1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI4ODkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4OTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTEgLT5cblxuIyA5NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmIClcblxuIyAyODk0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODk1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgNDUwXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcIic7XG4gICAgICAgICAgIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmXG4gICAgICAgICApXG5cbiMgMjkwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBzdHJpbmcgbGl0ZXJhbFwiIHYgbGV4YnVmIClcblxuIyAyOTEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTE0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5NjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI5MTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9idWZmZXJfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDQ2MVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTY4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJzonO1xuICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICBidWZmZXJfZ3QgdiBsZXhidWYgKVxuXG4jIDI5MzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc+JyApXG5cbiMgMjkzOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkzOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIG9yICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjk0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgOTc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyOTQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTQ5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2lkZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9pZGVudF9yZWMgdiBsZXhidWYgNDY2XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI5NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk3OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk3OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZiApXG5cbiMgMjk2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjk3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgOTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI5NzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfc3BhY2UgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX3NwYWNlX3JlYyB2IGxleGJ1ZiA0NzFcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDI5OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5ODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgQnVmZmVyLmFkZF9zdHJpbmcgdi5idWYgXCIvKlwiO1xuICAgIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDI5OTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5OTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nO1xuICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAzMDA2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDA3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA5OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMzAxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgOTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDMwMTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfb2JqZWN0X2VuZCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X2VuZF9yZWMgdiBsZXhidWYgNDc4XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoXG4gICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ30nO1xuICAgICAgcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMzAzMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAzMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDMwMzcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMzggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9vYmplY3Rfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiA0ODBcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcsJyApXG5cbiMgMzA0OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA1MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICd9JzsgcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMzA1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnfScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMwNTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwMTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMwNjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9hcnJheV9lbmQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X2VuZF9yZWMgdiBsZXhidWYgNDg1XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICddJzsgcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAzMDc2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDc3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMzA4MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA4MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfYXJyYXlfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIDQ4N1xuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnLCcgKVxuXG4jIDMwOTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwOTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXSc7IHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMzA5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxMDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxMDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX3R1cGxlX2VuZCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfZW5kX3JlYyB2IGxleGJ1ZiA0OTJcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKFxuICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcpJztcbiAgICAgIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMzEyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDMxMjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX3R1cGxlX3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiA0OTRcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJywnIClcblxuIyAzMTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTQwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJyknOyByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDMxNDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTQ5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTUwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTU1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9jb2xvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfY29sb25fcmVjIHYgbGV4YnVmIDQ5OVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc6JyApXG5cbiMgMzE2NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE2NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzE3MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE3MiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzE3NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE3NyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9ndCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfZ3RfcmVjIHYgbGV4YnVmIDUwM1xuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTA0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnPicgKVxuXG4jIDMxODggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxODkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwNDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTkzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTk0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzE5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX2NvbW1lbnRfcmVjIHYgbGV4YnVmIDUwN1xuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTA0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfc3RyaW5nIHYuYnVmIFwiKi9cIiApXG5cbiMgMzIxMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIxMSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTA0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJVbnRlcm1pbmF0ZWQgY29tbWVudFwiIHYgbGV4YnVmIClcblxuIyAzMjE1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjE2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nO1xuICAgICAgICAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgICAgICAgICBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDMyMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjsgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmIClcblxuIyAzMjI3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjI4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQganVuayBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfanVua19yZWMgbGV4YnVmIDUxM1xuYW5kIF9fb2NhbWxfbGV4X2p1bmtfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTA1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBMZXhpbmcubGV4ZW1lIGxleGJ1ZiApXG5cbiMgMzIzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzI0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2p1bmtfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG47O1xuXG5cbiMgMTA1NSBcImxpYi9yZWFkLm1sbFwiXG4gXG4gIFxuIyAxMDU2IFwibGliL3JlYWQubWxsXCJcbiAgbGV0IF8gPSAocmVhZF9qc29uIDogbGV4ZXJfc3RhdGUgLT4gTGV4aW5nLmxleGJ1ZiAtPiB0KVxuXG4gIGxldCByZWFkX3QgPSByZWFkX2pzb25cblxuICBsZXQgKCkgPVxuICAgIHJlYWRfanVuayA6PSBqdW5rXG5cbiAgbGV0IHJlYWRfaW50OCB2IGxleGJ1ZiA9XG4gICAgbGV0IG4gPSByZWFkX2ludCB2IGxleGJ1ZiBpblxuICAgIGlmIG4gPCAwIHx8IG4gPiAyNTUgdGhlblxuICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQ4IG92ZXJmbG93XCIgdiBsZXhidWZcbiAgICBlbHNlXG4gICAgICBjaGFyX29mX2ludCBuXG5cbiAgbGV0IHJlYWRfbGlzdCByZWFkX2NlbGwgdiBsZXhidWYgPVxuICAgIExpc3QucmV2IChyZWFkX2xpc3RfcmV2IHJlYWRfY2VsbCB2IGxleGJ1ZilcblxuICBsZXQgYXJyYXlfb2ZfcmV2X2xpc3QgbCA9XG4gICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgIFtdIC0+IFt8IHxdXG4gICAgICB8IHggOjogdGwgLT5cbiAgICAgICAgICBsZXQgbGVuID0gTGlzdC5sZW5ndGggbCBpblxuICAgICAgICAgIGxldCBhID0gQXJyYXkubWFrZSBsZW4geCBpblxuICAgICAgICAgIGxldCByID0gcmVmIHRsIGluXG4gICAgICAgICAgZm9yIGkgPSBsZW4gLSAyIGRvd250byAwIGRvXG4gICAgICAgICAgICBhLihpKSA8LSBMaXN0LmhkICFyO1xuICAgICAgICAgICAgciA6PSBMaXN0LnRsICFyXG4gICAgICAgICAgZG9uZTtcbiAgICAgICAgICBhXG5cbiAgbGV0IHJlYWRfYXJyYXkgcmVhZF9jZWxsIHYgbGV4YnVmID1cbiAgICBsZXQgbCA9IHJlYWRfbGlzdF9yZXYgcmVhZF9jZWxsIHYgbGV4YnVmIGluXG4gICAgYXJyYXlfb2ZfcmV2X2xpc3QgbFxuXG4gICgqIFJlYWQgYSBKU09OIG9iamVjdCwgcmVhZGluZyB0aGUga2V5cyBpbnRvIE9DYW1sIHN0cmluZ3NcbiAgICAgKHByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSAqKVxuICBsZXQgcmVhZF9maWVsZHMgcmVhZF9maWVsZCBpbml0X2FjYyB2ID1cbiAgICByZWFkX2Fic3RyYWN0X2ZpZWxkcyByZWFkX2lkZW50IHJlYWRfZmllbGQgaW5pdF9hY2MgdlxuXG4gIGxldCBmaW5pc2ggdiBsZXhidWYgPVxuICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgaWYgbm90IChyZWFkX2VvZiBsZXhidWYpIHRoZW5cbiAgICAgIGxvbmdfZXJyb3IgXCJKdW5rIGFmdGVyIGVuZCBvZiBKU09OIHZhbHVlOlwiIHYgbGV4YnVmXG5cbiAgbGV0IGluaXRfbGV4ZXIgPSBpbml0X2xleGVyXG5cbiAgbGV0IGZyb21fbGV4YnVmIHYgPyhzdHJlYW0gPSBmYWxzZSkgbGV4YnVmID1cbiAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuXG4gICAgbGV0IHggPVxuICAgICAgaWYgcmVhZF9lb2YgbGV4YnVmIHRoZW5cbiAgICAgICAgcmFpc2UgRW5kX29mX2lucHV0XG4gICAgICBlbHNlXG4gICAgICAgIHJlYWRfanNvbiB2IGxleGJ1ZlxuICAgIGluXG5cbiAgICBpZiBub3Qgc3RyZWFtIHRoZW5cbiAgICAgIGZpbmlzaCB2IGxleGJ1ZjtcblxuICAgIHhcblxuXG4gIGxldCBmcm9tX3N0cmluZyA/YnVmID9mbmFtZSA/bG51bSBzID1cbiAgICB0cnlcbiAgICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9zdHJpbmcgcyBpblxuICAgICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgICBmcm9tX2xleGJ1ZiB2IGxleGJ1ZlxuICAgIHdpdGggRW5kX29mX2lucHV0IC0+XG4gICAgICBqc29uX2Vycm9yIFwiQmxhbmsgaW5wdXQgZGF0YVwiXG5cbiAgbGV0IGZyb21fY2hhbm5lbCA/YnVmID9mbmFtZSA/bG51bSBpYyA9XG4gICAgdHJ5XG4gICAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fY2hhbm5lbCBpYyBpblxuICAgICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgICBmcm9tX2xleGJ1ZiB2IGxleGJ1ZlxuICAgIHdpdGggRW5kX29mX2lucHV0IC0+XG4gICAgICBqc29uX2Vycm9yIFwiQmxhbmsgaW5wdXQgZGF0YVwiXG5cbiAgbGV0IGZyb21fZmlsZSA/YnVmID9mbmFtZSA/bG51bSBmaWxlID1cbiAgICBsZXQgaWMgPSBvcGVuX2luIGZpbGUgaW5cbiAgICB0cnlcbiAgICAgIGxldCB4ID0gZnJvbV9jaGFubmVsID9idWYgP2ZuYW1lID9sbnVtIGljIGluXG4gICAgICBjbG9zZV9pbiBpYztcbiAgICAgIHhcbiAgICB3aXRoIGUgLT5cbiAgICAgIGNsb3NlX2luX25vZXJyIGljO1xuICAgICAgcmFpc2UgZVxuXG4gIGV4Y2VwdGlvbiBGaW5hbGx5IG9mIGV4biAqIGV4blxuXG4gIGxldCBzZXFfZnJvbV9sZXhidWYgdiA/KGZpbiA9IGZ1biAoKSAtPiAoKSkgbGV4YnVmID1cbiAgICBsZXQgc3RyZWFtID0gU29tZSB0cnVlIGluXG4gICAgbGV0IHJlYyBmICgpID1cbiAgICAgIHRyeSBTZXEuQ29ucyAoZnJvbV9sZXhidWYgdiA/c3RyZWFtIGxleGJ1ZiwgZilcbiAgICAgIHdpdGhcbiAgICAgICAgICBFbmRfb2ZfaW5wdXQgLT5cbiAgICAgICAgICAgIGZpbiAoKTtcbiAgICAgICAgICAgIFNlcS5OaWxcbiAgICAgICAgfCBlIC0+XG4gICAgICAgICAgICAodHJ5IGZpbiAoKSB3aXRoIGZpbl9lIC0+IHJhaXNlIChGaW5hbGx5IChlLCBmaW5fZSkpKTtcbiAgICAgICAgICAgIHJhaXNlIGVcbiAgICBpblxuICAgIGZcblxuICBsZXQgc2VxX2Zyb21fc3RyaW5nID9idWYgP2ZuYW1lID9sbnVtIHMgPVxuICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgIHNlcV9mcm9tX2xleGJ1ZiB2IChMZXhpbmcuZnJvbV9zdHJpbmcgcylcblxuICBsZXQgc2VxX2Zyb21fY2hhbm5lbCA/YnVmID9maW4gP2ZuYW1lID9sbnVtIGljID1cbiAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fY2hhbm5lbCBpYyBpblxuICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgIHNlcV9mcm9tX2xleGJ1ZiB2ID9maW4gbGV4YnVmXG5cbiAgbGV0IHNlcV9mcm9tX2ZpbGUgP2J1ZiA/Zm5hbWUgP2xudW0gZmlsZSA9XG4gICAgbGV0IGljID0gb3Blbl9pbiBmaWxlIGluXG4gICAgbGV0IGZpbiAoKSA9IGNsb3NlX2luIGljIGluXG4gICAgbGV0IGZuYW1lID1cbiAgICAgIG1hdGNoIGZuYW1lIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFNvbWUgZmlsZVxuICAgICAgICB8IHggLT4geFxuICAgIGluXG4gICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX2NoYW5uZWwgaWMgaW5cbiAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICBzZXFfZnJvbV9sZXhidWYgdiB+ZmluIGxleGJ1ZlxuXG4gIHR5cGUganNvbl9saW5lID0gWyBgSnNvbiBvZiB0IHwgYEV4biBvZiBleG4gXVxuXG4gIGxldCBsaW5lc2VxX2Zyb21fY2hhbm5lbFxuICAgICAgP2J1ZiA/KGZpbiA9IGZ1biAoKSAtPiAoKSkgP2ZuYW1lID9sbnVtOihsbnVtMCA9IDEpIGljID1cbiAgICBsZXQgYnVmID1cbiAgICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBTb21lIChCdWZmZXIuY3JlYXRlIDI1NilcbiAgICAgICAgfCBTb21lIF8gLT4gYnVmXG4gICAgaW5cbiAgICBsZXQgcmVjIGYgbG51bSA9IGZ1biAoKSAtPlxuICAgICAgdHJ5XG4gICAgICAgIGxldCBsaW5lID0gaW5wdXRfbGluZSBpYyBpblxuICAgICAgICBTZXEuQ29ucyAoYEpzb24gKGZyb21fc3RyaW5nID9idWYgP2ZuYW1lIH5sbnVtIGxpbmUpLCBmIChsbnVtICsgMSkpXG4gICAgICB3aXRoXG4gICAgICAgICAgRW5kX29mX2ZpbGUgLT4gZmluICgpOyBTZXEuTmlsXG4gICAgICAgIHwgZSAtPiBTZXEuQ29ucyAoYEV4biBlLCBmIChsbnVtICsgMSkpXG4gICAgaW5cbiAgICBmIGxudW0wXG5cbiAgbGV0IGxpbmVzZXFfZnJvbV9maWxlID9idWYgP2ZuYW1lID9sbnVtIGZpbGUgPVxuICAgIGxldCBpYyA9IG9wZW5faW4gZmlsZSBpblxuICAgIGxldCBmaW4gKCkgPSBjbG9zZV9pbiBpYyBpblxuICAgIGxldCBmbmFtZSA9XG4gICAgICBtYXRjaCBmbmFtZSB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBTb21lIGZpbGVcbiAgICAgICAgfCB4IC0+IHhcbiAgICBpblxuICAgIGxpbmVzZXFfZnJvbV9jaGFubmVsID9idWYgfmZpbiA/Zm5hbWUgP2xudW0gaWNcblxuICBsZXQgcHJldHRpZnkgP3N0ZCBzID1cbiAgICBwcmV0dHlfdG9fc3RyaW5nID9zdGQgKGZyb21fc3RyaW5nIHMpXG5cbiAgbGV0IGNvbXBhY3QgP3N0ZCBzID1cbiAgICB0b19zdHJpbmcgKGZyb21fc3RyaW5nIHMpXG5cblxuIyAzNDA4IFwibGliL3JlYWQubWxcIlxuIyAxMDIgXCJ5b2pzb24uY3Bwby5tbFwiXG5lbmRcbiIsIm9wZW4gU3RkTGFiZWxzXG5vcGVuIE1vcmVMYWJlbHNcbm9wZW4hIFlvanNvblxuXG50eXBlIHQgPSBZb2pzb24uU2FmZS50XG5cbmxldCB5b2pzb25fb2ZfdW5pdCAoKSA6IHQgPSBgTnVsbFxubGV0IHlvanNvbl9vZl9ib29sIGIgOiB0ID0gYEJvb2wgYlxubGV0IHlvanNvbl9vZl9zdHJpbmcgc3RyIDogdCA9IGBTdHJpbmcgc3RyXG5sZXQgeW9qc29uX29mX2J5dGVzIGJ5dGVzIDogdCA9IGBTdHJpbmcgKEJ5dGVzLnRvX3N0cmluZyBieXRlcylcbmxldCB5b2pzb25fb2ZfY2hhciBjIDogdCA9IGBTdHJpbmcgKFN0cmluZy5tYWtlIDEgYylcbmxldCB5b2pzb25fb2ZfaW50IG4gOiB0ID0gYEludCBuXG5sZXQgeW9qc29uX29mX2Zsb2F0IG4gOiB0ID0gYEZsb2F0IG5cbmxldCB5b2pzb25fb2ZfaW50MzIgKG4gOiBJbnQzMi50KSA6IHQgPSBgSW50bGl0IChJbnQzMi50b19zdHJpbmcgbilcbmxldCB5b2pzb25fb2ZfaW50NjQgKG4gOiBJbnQ2NC50KSA6IHQgPSBgSW50bGl0IChJbnQ2NC50b19zdHJpbmcgbilcbmxldCB5b2pzb25fb2ZfbmF0aXZlaW50IG4gOiB0ID0gYEludGxpdCAoTmF0aXZlaW50LnRvX3N0cmluZyBuKVxubGV0IHlvanNvbl9vZl9yZWYgeW9qc29uX29mX19hIHJmID0geW9qc29uX29mX19hICFyZlxubGV0IHlvanNvbl9vZl9sYXp5X3QgeW9qc29uX29mX19hIGx2ID0geW9qc29uX29mX19hIChMYXp5LmZvcmNlIGx2KVxuXG5sZXQgeW9qc29uX29mX29wdGlvbiB5b2pzb25fb2ZfX2EgPSBmdW5jdGlvblxuICB8IFNvbWUgeCAtPiB5b2pzb25fb2ZfX2EgeFxuICB8IE5vbmUgLT4gYE51bGxcbjs7XG5cbmxldCB5b2pzb25fb2ZfcGFpciB5b2pzb25fb2ZfX2EgeW9qc29uX29mX19iIChhLCBiKSA9XG4gIGBMaXN0IFsgeW9qc29uX29mX19hIGE7IHlvanNvbl9vZl9fYiBiIF1cbjs7XG5cbmxldCB5b2pzb25fb2ZfdHJpcGxlIHlvanNvbl9vZl9fYSB5b2pzb25fb2ZfX2IgeW9qc29uX29mX19jIChhLCBiLCBjKSA9XG4gIGBMaXN0IFsgeW9qc29uX29mX19hIGE7IHlvanNvbl9vZl9fYiBiOyB5b2pzb25fb2ZfX2MgYyBdXG47O1xuXG4oKiBMaXN0LnJldiAoTGlzdC5yZXZfbWFwIC4uLikgaXMgdGFpbCByZWN1cnNpdmUsIHRoZSBPQ2FtbCBzdGFuZGFyZFxuICAgbGlicmFyeSBMaXN0Lm1hcCBpcyBOT1QuICopXG5sZXQgeW9qc29uX29mX2xpc3QgeW9qc29uX29mX19hIGxzdCA9IGBMaXN0IChMaXN0LnJldiAoTGlzdC5yZXZfbWFwIH5mOnlvanNvbl9vZl9fYSBsc3QpKVxuXG5sZXQgeW9qc29uX29mX2FycmF5IHlvanNvbl9vZl9fYSBhciA9XG4gIGxldCBsc3RfcmVmID0gcmVmIFtdIGluXG4gIGZvciBpID0gQXJyYXkubGVuZ3RoIGFyIC0gMSBkb3dudG8gMCBkb1xuICAgIGxzdF9yZWYgOj0geW9qc29uX29mX19hIGFyLihpKSA6OiAhbHN0X3JlZlxuICBkb25lO1xuICBgTGlzdCAhbHN0X3JlZlxuOztcblxubGV0IHlvanNvbl9vZl9oYXNodGJsIHlvanNvbl9vZl9rZXkgeW9qc29uX29mX3ZhbCBodGJsID1cbiAgbGV0IGNvbGwgfmtleTprIH5kYXRhOnYgYWNjID0gYExpc3QgWyB5b2pzb25fb2Zfa2V5IGs7IHlvanNvbl9vZl92YWwgdiBdIDo6IGFjYyBpblxuICBgTGlzdCAoSGFzaHRibC5mb2xkIGh0YmwgfmluaXQ6W10gfmY6Y29sbClcbjs7XG5cbmxldCB5b2pzb25fb2Zfb3BhcXVlIF8gPSBgU3RyaW5nIFwiPG9wYXF1ZT5cIlxubGV0IHlvanNvbl9vZl9mdW4gXyA9IGBTdHJpbmcgXCI8ZnVuPlwiXG5cbmV4Y2VwdGlvbiBPZl95b2pzb25fZXJyb3Igb2YgZXhuICogdFxuXG5sZXQgcmVjb3JkX2NoZWNrX2V4dHJhX2ZpZWxkcyA9IHJlZiB0cnVlXG5sZXQgb2ZfeW9qc29uX2Vycm9yX2V4biBleGMgeW9qc29uID0gcmFpc2UgKE9mX3lvanNvbl9lcnJvciAoZXhjLCB5b2pzb24pKVxubGV0IG9mX3lvanNvbl9lcnJvciB3aGF0IHlvanNvbiA9IHJhaXNlIChPZl95b2pzb25fZXJyb3IgKEZhaWx1cmUgd2hhdCwgeW9qc29uKSlcblxubGV0IHVuaXRfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYE51bGwgLT4gKClcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcInVuaXRfb2ZfeW9qc29uOiBgTnVsbCBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBib29sX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBCb29sIHYgLT4gdlxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwiYm9vbF9vZl95b2pzb246IHRydWUvZmFsc2UgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgc3RyaW5nX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBTdHJpbmcgc3RyIC0+IHN0clxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwic3RyaW5nX29mX3lvanNvbjogc3RyaW5nIG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IGJ5dGVzX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBTdHJpbmcgc3RyIC0+IEJ5dGVzLm9mX3N0cmluZyBzdHJcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImJ5dGVzX29mX3lvanNvbjogc3RyaW5nIG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IGNoYXJfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYFN0cmluZyBzdHIgLT5cbiAgICBpZiBTdHJpbmcubGVuZ3RoIHN0ciA8PiAxXG4gICAgdGhlbiBvZl95b2pzb25fZXJyb3IgXCJjaGFyX29mX3lvanNvbjogc3RyaW5nIG11c3QgY29udGFpbiBvbmUgY2hhcmFjdGVyIG9ubHlcIiB5b2pzb247XG4gICAgc3RyLlswXVxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwiY2hhcl9vZl95b2pzb246IHN0cmluZyBvZiBzaXplIG9uZSBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBpbnRfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYEludCB2IC0+IHZcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImludF9vZl95b2pzb246IGludGVnZXIgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgZmxvYXRfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYEZsb2F0IHYgLT4gdlxuICB8IGBJbnQgaSAtPiBmbG9hdF9vZl9pbnQgaVxuICB8IGBJbnRsaXQgc3RyIC0+IGZsb2F0X29mX3N0cmluZyBzdHJcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImZsb2F0X29mX3lvanNvbjogZmxvYXQgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgaW50MzJfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYEludGxpdCBzdHIgLT4gSW50MzIub2Zfc3RyaW5nIHN0clxuICB8IGBJbnQgdiAtPiBJbnQzMi5vZl9pbnQgdlxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwiaW50MzJfb2ZfeW9qc29uOiBpbnRlZ2VyIG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IGludDY0X29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBJbnRsaXQgc3RyIC0+IEludDY0Lm9mX3N0cmluZyBzdHJcbiAgfCBgSW50IHYgLT4gSW50NjQub2ZfaW50IHZcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImludDY0X29mX3lvanNvbjogaW50ZWdlciBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBuYXRpdmVpbnRfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYEludGxpdCBzdHIgLT4gTmF0aXZlaW50Lm9mX3N0cmluZyBzdHJcbiAgfCBgSW50IHYgLT4gTmF0aXZlaW50Lm9mX2ludCB2XG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJuYXRpdmVpbnRfb2ZfeW9qc29uOiBpbnRlZ2VyIG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IHJlZl9vZl95b2pzb24gYV9fb2ZfeW9qc29uIHlvanNvbiA9IHJlZiAoYV9fb2ZfeW9qc29uIHlvanNvbilcbmxldCBsYXp5X3Rfb2ZfeW9qc29uIGFfX29mX3lvanNvbiB5b2pzb24gPSBMYXp5LmZyb21fdmFsIChhX19vZl95b2pzb24geW9qc29uKVxuXG5sZXQgb3B0aW9uX29mX3lvanNvbiBhX19vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwgZWwgLT4gU29tZSAoYV9fb2ZfeW9qc29uIGVsKVxuOztcblxubGV0IHBhaXJfb2ZfeW9qc29uIGFfX29mX3lvanNvbiBiX19vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgTGlzdCBbIGFfeW9qc29uOyBiX3lvanNvbiBdIC0+XG4gICAgbGV0IGEgPSBhX19vZl95b2pzb24gYV95b2pzb24gaW5cbiAgICBsZXQgYiA9IGJfX29mX3lvanNvbiBiX3lvanNvbiBpblxuICAgIGEsIGJcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcInBhaXJfb2ZfeW9qc29uOiBpbnZhbGlkIGZvcm1hdFwiIHlvanNvblxuOztcblxubGV0IHRyaXBsZV9vZl95b2pzb24gYV9fb2ZfeW9qc29uIGJfX29mX3lvanNvbiBjX19vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgTGlzdCBbIGFfeW9qc29uOyBiX3lvanNvbjsgY195b2pzb24gXSAtPlxuICAgIGxldCBhID0gYV9fb2ZfeW9qc29uIGFfeW9qc29uIGluXG4gICAgbGV0IGIgPSBiX19vZl95b2pzb24gYl95b2pzb24gaW5cbiAgICBsZXQgYyA9IGNfX29mX3lvanNvbiBjX3lvanNvbiBpblxuICAgIGEsIGIsIGNcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcInRyaXBsZV9vZl95b2pzb246IGludmFsaWQgZm9ybWF0XCIgeW9qc29uXG47O1xuXG5sZXQgbGlzdF9vZl95b2pzb24gYV9fb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYExpc3QgbHN0IC0+XG4gICAgbGV0IHJldl9sc3QgPSBMaXN0LnJldl9tYXAgbHN0IH5mOmFfX29mX3lvanNvbiBpblxuICAgIExpc3QucmV2IHJldl9sc3RcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImxpc3Rfb2ZfeW9qc29uOiBsaXN0IG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IGFycmF5X29mX3lvanNvbiBhX19vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgTGlzdCBbXSAtPiBbfHxdXG4gIHwgYExpc3QgKGggOjogdCkgLT5cbiAgICBsZXQgbGVuID0gTGlzdC5sZW5ndGggdCArIDEgaW5cbiAgICBsZXQgcmVzID0gQXJyYXkubWFrZSBsZW4gKGFfX29mX3lvanNvbiBoKSBpblxuICAgIGxldCByZWMgbG9vcCBpID0gZnVuY3Rpb25cbiAgICAgIHwgW10gLT4gcmVzXG4gICAgICB8IGggOjogdCAtPlxuICAgICAgICByZXMuKGkpIDwtIGFfX29mX3lvanNvbiBoO1xuICAgICAgICBsb29wIChpICsgMSkgdFxuICAgIGluXG4gICAgbG9vcCAxIHRcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImFycmF5X29mX3lvanNvbjogbGlzdCBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBoYXNodGJsX29mX3lvanNvbiBrZXlfb2ZfeW9qc29uIHZhbF9vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgTGlzdCBsc3QgLT5cbiAgICBsZXQgaHRibCA9IEhhc2h0YmwuY3JlYXRlIDAgaW5cbiAgICBsZXQgYWN0ID0gZnVuY3Rpb25cbiAgICAgIHwgYExpc3QgWyBrX3lvanNvbjsgdl95b2pzb24gXSAtPlxuICAgICAgICBIYXNodGJsLmFkZCBodGJsIH5rZXk6KGtleV9vZl95b2pzb24ga195b2pzb24pIH5kYXRhOih2YWxfb2ZfeW9qc29uIHZfeW9qc29uKVxuICAgICAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImhhc2h0Ymxfb2ZfeW9qc29uOiB0dXBsZSBsaXN0IG5lZWRlZFwiIHlvanNvblxuICAgIGluXG4gICAgTGlzdC5pdGVyIGxzdCB+ZjphY3Q7XG4gICAgaHRibFxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwiaGFzaHRibF9vZl95b2pzb246IGxpc3QgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgb3BhcXVlX29mX3lvanNvbiB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgXCJvcGFxdWVfb2ZfeW9qc29uOiBjYW5ub3QgY29udmVydCBvcGFxdWUgdmFsdWVzXCIgeW9qc29uXG47O1xuXG5sZXQgZnVuX29mX3lvanNvbiB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgXCJmdW5fb2ZfeW9qc29uOiBjYW5ub3QgY29udmVydCBmdW5jdGlvbiB2YWx1ZXNcIiB5b2pzb25cbjs7XG5cbm1vZHVsZSBQcmltaXRpdmVzID0gc3RydWN0XG4gIGxldCB5b2pzb25fb2ZfYXJyYXkgPSB5b2pzb25fb2ZfYXJyYXlcbiAgbGV0IGFycmF5X29mX3lvanNvbiA9IGFycmF5X29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX2Jvb2wgPSB5b2pzb25fb2ZfYm9vbFxuICBsZXQgYm9vbF9vZl95b2pzb24gPSBib29sX29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX2NoYXIgPSB5b2pzb25fb2ZfY2hhclxuICBsZXQgY2hhcl9vZl95b2pzb24gPSBjaGFyX29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX2Zsb2F0ID0geW9qc29uX29mX2Zsb2F0XG4gIGxldCBmbG9hdF9vZl95b2pzb24gPSBmbG9hdF9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9pbnQgPSB5b2pzb25fb2ZfaW50XG4gIGxldCBpbnRfb2ZfeW9qc29uID0gaW50X29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX2ludDMyID0geW9qc29uX29mX2ludDMyXG4gIGxldCBpbnQzMl9vZl95b2pzb24gPSBpbnQzMl9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9pbnQ2NCA9IHlvanNvbl9vZl9pbnQ2NFxuICBsZXQgaW50NjRfb2ZfeW9qc29uID0gaW50NjRfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfbGlzdCA9IHlvanNvbl9vZl9saXN0XG4gIGxldCBsaXN0X29mX3lvanNvbiA9IGxpc3Rfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfbmF0aXZlaW50ID0geW9qc29uX29mX25hdGl2ZWludFxuICBsZXQgbmF0aXZlaW50X29mX3lvanNvbiA9IG5hdGl2ZWludF9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9vcHRpb24gPSB5b2pzb25fb2Zfb3B0aW9uXG4gIGxldCBvcHRpb25fb2ZfeW9qc29uID0gb3B0aW9uX29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX3JlZiA9IHlvanNvbl9vZl9yZWZcbiAgbGV0IHJlZl9vZl95b2pzb24gPSByZWZfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2Zfc3RyaW5nID0geW9qc29uX29mX3N0cmluZ1xuICBsZXQgc3RyaW5nX29mX3lvanNvbiA9IHN0cmluZ19vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9ieXRlcyA9IHlvanNvbl9vZl9ieXRlc1xuICBsZXQgYnl0ZXNfb2ZfeW9qc29uID0gYnl0ZXNfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfdW5pdCA9IHlvanNvbl9vZl91bml0XG4gIGxldCB1bml0X29mX3lvanNvbiA9IHVuaXRfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfbGF6eV90ID0geW9qc29uX29mX2xhenlfdFxuICBsZXQgbGF6eV90X29mX3lvanNvbiA9IGxhenlfdF9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9oYXNodGJsID0geW9qc29uX29mX2hhc2h0YmxcbiAgbGV0IGhhc2h0Ymxfb2ZfeW9qc29uID0gaGFzaHRibF9vZl95b2pzb25cbmVuZFxuIiwiKCogQ29udl9lcnJvcjogTW9kdWxlIGZvciBIYW5kbGluZyBFcnJvcnMgZHVyaW5nIEF1dG9tYXRlZCBZb2pzb25cbiAgIENvbnZlcnNpb25zICopXG5cbm9wZW4hIFN0ZExhYmVsc1xub3BlbiBZb2pzb25fY29udlxuXG5sZXQgc3ByaW50ZiA9IFByaW50Zi5zcHJpbnRmXG5cbigqIEVycm9ycyBjb25jZXJuaW5nIHR1cGxlcyAqKVxuXG5sZXQgdHVwbGVfb2Zfc2l6ZV9uX2V4cGVjdGVkIGxvYyBuIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciAoc3ByaW50ZiBcIiVzX29mX3lvanNvbjogdHVwbGUgb2Ygc2l6ZSAlZCBleHBlY3RlZFwiIGxvYyBuKSB5b2pzb25cbjs7XG5cbigqIEVycm9ycyBjb25jZXJuaW5nIHN1bSB0eXBlcyAqKVxuXG5sZXQgc3RhZ19ub19hcmdzIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgKGxvYyBeIFwiX29mX3lvanNvbjogdGhpcyBjb25zdHJ1Y3RvciBkb2VzIG5vdCB0YWtlIGFyZ3VtZW50c1wiKSB5b2pzb25cbjs7XG5cbmxldCBzdGFnX2luY29ycmVjdF9uX2FyZ3MgbG9jIHRhZyB5b2pzb24gPVxuICBsZXQgbXNnID1cbiAgICBzcHJpbnRmIFwiJXNfb2ZfeW9qc29uOiBzdW0gdGFnICVTIGhhcyBpbmNvcnJlY3QgbnVtYmVyIG9mIGFyZ3VtZW50c1wiIGxvYyB0YWdcbiAgaW5cbiAgb2ZfeW9qc29uX2Vycm9yIG1zZyB5b2pzb25cbjs7XG5cbmxldCBzdGFnX3Rha2VzX2FyZ3MgbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciAobG9jIF4gXCJfb2ZfeW9qc29uOiB0aGlzIGNvbnN0cnVjdG9yIHJlcXVpcmVzIGFyZ3VtZW50c1wiKSB5b2pzb25cbjs7XG5cbmxldCBuZXN0ZWRfbGlzdF9pbnZhbGlkX3N1bSBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIChsb2MgXiBcIl9vZl95b2pzb246IGV4cGVjdGVkIGEgdmFyaWFudCB0eXBlLCBzYXcgYSBuZXN0ZWQgbGlzdFwiKSB5b2pzb25cbjs7XG5cbmxldCBlbXB0eV9saXN0X2ludmFsaWRfc3VtIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgKGxvYyBeIFwiX29mX3lvanNvbjogZXhwZWN0ZWQgYSB2YXJpYW50IHR5cGUsIHNhdyBhbiBlbXB0eSBsaXN0XCIpIHlvanNvblxuOztcblxubGV0IHVuZXhwZWN0ZWRfc3RhZyBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIChsb2MgXiBcIl9vZl95b2pzb246IHVuZXhwZWN0ZWQgdmFyaWFudCBjb25zdHJ1Y3RvclwiKSB5b2pzb25cbjs7XG5cbigqIEVycm9ycyBjb25jZXJuaW5nIHJlY29yZHMgKilcblxubGV0IHJlY29yZF9zdXBlcmZsdW91c19maWVsZHMgfndoYXQgfmxvYyByZXZfZmxkX25hbWVzIHlvanNvbiA9XG4gIGxldCBmbGRfbmFtZXNfc3RyID0gU3RyaW5nLmNvbmNhdCAoTGlzdC5yZXYgcmV2X2ZsZF9uYW1lcykgfnNlcDpcIiBcIiBpblxuICBsZXQgbXNnID0gc3ByaW50ZiBcIiVzX29mX3lvanNvbjogJXM6ICVzXCIgbG9jIHdoYXQgZmxkX25hbWVzX3N0ciBpblxuICBvZl95b2pzb25fZXJyb3IgbXNnIHlvanNvblxuOztcblxubGV0IHJlY29yZF9kdXBsaWNhdGVfZmllbGRzIGxvYyByZXZfZmxkX25hbWVzIHlvanNvbiA9XG4gIHJlY29yZF9zdXBlcmZsdW91c19maWVsZHMgfndoYXQ6XCJkdXBsaWNhdGUgZmllbGRzXCIgfmxvYyByZXZfZmxkX25hbWVzIHlvanNvblxuOztcblxubGV0IHJlY29yZF9leHRyYV9maWVsZHMgbG9jIHJldl9mbGRfbmFtZXMgeW9qc29uID1cbiAgcmVjb3JkX3N1cGVyZmx1b3VzX2ZpZWxkcyB+d2hhdDpcImV4dHJhIGZpZWxkc1wiIH5sb2MgcmV2X2ZsZF9uYW1lcyB5b2pzb25cbjs7XG5cbmxldCByZWMgcmVjb3JkX2dldF91bmRlZmluZWRfbG9vcCBmaWVsZHMgPSBmdW5jdGlvblxuICB8IFtdIC0+IFN0cmluZy5jb25jYXQgKExpc3QucmV2IGZpZWxkcykgfnNlcDpcIiBcIlxuICB8ICh0cnVlLCBmaWVsZCkgOjogcmVzdCAtPiByZWNvcmRfZ2V0X3VuZGVmaW5lZF9sb29wIChmaWVsZCA6OiBmaWVsZHMpIHJlc3RcbiAgfCBfIDo6IHJlc3QgLT4gcmVjb3JkX2dldF91bmRlZmluZWRfbG9vcCBmaWVsZHMgcmVzdFxuOztcblxubGV0IHJlY29yZF91bmRlZmluZWRfZWxlbWVudHMgbG9jIHlvanNvbiBsc3QgPVxuICBsZXQgdW5kZWZpbmVkID0gcmVjb3JkX2dldF91bmRlZmluZWRfbG9vcCBbXSBsc3QgaW5cbiAgbGV0IG1zZyA9XG4gICAgc3ByaW50ZiBcIiVzX29mX3lvanNvbjogdGhlIGZvbGxvd2luZyByZWNvcmQgZWxlbWVudHMgd2VyZSB1bmRlZmluZWQ6ICVzXCIgbG9jIHVuZGVmaW5lZFxuICBpblxuICBvZl95b2pzb25fZXJyb3IgbXNnIHlvanNvblxuOztcblxubGV0IHJlY29yZF9saXN0X2luc3RlYWRfYXRvbSBsb2MgeW9qc29uID1cbiAgbGV0IG1zZyA9IGxvYyBeIFwiX29mX3lvanNvbjogbGlzdCBpbnN0ZWFkIG9mIGF0b20gZm9yIHJlY29yZCBleHBlY3RlZFwiIGluXG4gIG9mX3lvanNvbl9lcnJvciBtc2cgeW9qc29uXG47O1xuXG5sZXQgcmVjb3JkX3BvbHlfZmllbGRfdmFsdWUgbG9jIHlvanNvbiA9XG4gIGxldCBtc2cgPVxuICAgIGxvY1xuICAgIF4gXCJfb2ZfeW9qc29uOiBjYW5ub3QgY29udmVydCB2YWx1ZXMgb2YgdHlwZXMgcmVzdWx0aW5nIGZyb20gcG9seW1vcnBoaWMgcmVjb3JkIFxcXG4gICAgICAgZmllbGRzXCJcbiAgaW5cbiAgb2ZfeW9qc29uX2Vycm9yIG1zZyB5b2pzb25cbjs7XG5cbigqIEVycm9ycyBjb25jZXJuaW5nIHBvbHltb3JwaGljIHZhcmlhbnRzICopXG5cbmV4Y2VwdGlvbiBOb192YXJpYW50X21hdGNoXG5cbmxldCBub192YXJpYW50X21hdGNoICgpID0gcmFpc2UgTm9fdmFyaWFudF9tYXRjaFxuXG5sZXQgbm9fbWF0Y2hpbmdfdmFyaWFudF9mb3VuZCBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIChsb2MgXiBcIl9vZl95b2pzb246IG5vIG1hdGNoaW5nIHZhcmlhbnQgZm91bmRcIikgeW9qc29uXG47O1xuXG5sZXQgcHRhZ19ub19hcmdzIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgKGxvYyBeIFwiX29mX3lvanNvbjogcG9seW1vcnBoaWMgdmFyaWFudCBkb2VzIG5vdCB0YWtlIGFyZ3VtZW50c1wiKSB5b2pzb25cbjs7XG5cbmxldCBwdGFnX2luY29ycmVjdF9uX2FyZ3MgbG9jIGNuc3RyIHlvanNvbiA9XG4gIGxldCBtc2cgPVxuICAgIHNwcmludGZcbiAgICAgIFwiJXNfb2ZfeW9qc29uOiBwb2x5bW9ycGhpYyB2YXJpYW50IHRhZyAlUyBoYXMgaW5jb3JyZWN0IG51bWJlciBvZiBhcmd1bWVudHNcIlxuICAgICAgbG9jXG4gICAgICBjbnN0clxuICBpblxuICBvZl95b2pzb25fZXJyb3IgbXNnIHlvanNvblxuOztcblxubGV0IHB0YWdfdGFrZXNfYXJncyBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIChsb2MgXiBcIl9vZl95b2pzb246IHBvbHltb3JwaGljIHZhcmlhbnQgdGFnIHRha2VzIGFuIGFyZ3VtZW50XCIpIHlvanNvblxuOztcblxubGV0IG5lc3RlZF9saXN0X2ludmFsaWRfcG9seV92YXIgbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvclxuICAgIChsb2MgXiBcIl9vZl95b2pzb246IGEgbmVzdGVkIGxpc3QgaXMgYW4gaW52YWxpZCBwb2x5bW9ycGhpYyB2YXJpYW50XCIpXG4gICAgeW9qc29uXG47O1xuXG5sZXQgZW1wdHlfbGlzdF9pbnZhbGlkX3BvbHlfdmFyIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3JcbiAgICAobG9jIF4gXCJfb2ZfeW9qc29uOiB0aGUgZW1wdHkgbGlzdCBpcyBhbiBpbnZhbGlkIHBvbHltb3JwaGljIHZhcmlhbnRcIilcbiAgICB5b2pzb25cbjs7XG5cbmxldCBlbXB0eV90eXBlIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgKGxvYyBeIFwiX29mX3lvanNvbjogdHJ5aW5nIHRvIGNvbnZlcnQgYW4gZW1wdHkgdHlwZVwiKSB5b2pzb25cbjs7XG4iLCJtb2R1bGUgWW9qc29uX2NvbnZfZXJyb3IgPSBZb2pzb25fY29udl9lcnJvclxubW9kdWxlIFlvanNvbl9jb252ID0gWW9qc29uX2NvbnZcbm1vZHVsZSBZb2pzb25hYmxlID0gWW9qc29uYWJsZV9pbnRmXG5tb2R1bGUgWW9qc29uID0gWW9qc29uXG5cbm1vZHVsZSBPcHRpb24gPSBzdHJ1Y3RcbiAgdHlwZSAnYSB0ID0gJ2Egb3B0aW9uID1cbiAgICB8IE5vbmVcbiAgICB8IFNvbWUgb2YgJ2FcbmVuZFxuXG5leHRlcm5hbCBpZ25vcmUgOiBfIC0+IHVuaXQgPSBcIiVpZ25vcmVcIlxuZXh0ZXJuYWwgcG9seV9lcXVhbCA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5cbmxldCAoICEgKSA6ICdhIHJlZiAtPiAnYSA9IGZ1biB4IC0+ICF4XG4iLCIoKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQ2F0YWxhIGNvbXBpbGVyLCBhIHNwZWNpZmljYXRpb24gbGFuZ3VhZ2UgZm9yIHRheFxuICAgYW5kIHNvY2lhbCBiZW5lZml0cyBjb21wdXRhdGlvbiBydWxlcy4gQ29weXJpZ2h0IChDKSAyMDIwIElucmlhLCBjb250cmlidXRvcjpcbiAgIERlbmlzIE1lcmlnb3V4IDxkZW5pcy5tZXJpZ291eEBpbnJpYS5mcj4sIEVtaWxlIFJvbGxleSA8ZW1pbGUucm9sbGV5QHR1dGEuaW8+XG5cbiAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90XG4gICB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZlxuICAgdGhlIExpY2Vuc2UgYXRcblxuICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVFxuICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlXG4gICBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlclxuICAgdGhlIExpY2Vuc2UuICopXG5cbigqIEFuIGludGVnZXIgbnVtYmVyIG9mIGNlbnRzICopXG50eXBlIG1vbmV5ID0gWi50XG50eXBlIGludGVnZXIgPSBaLnRcbnR5cGUgZGVjaW1hbCA9IFEudFxudHlwZSBkYXRlID0gRGF0ZXNfY2FsYy5EYXRlcy5kYXRlXG50eXBlIGRhdGVfcm91bmRpbmcgPSBEYXRlc19jYWxjLkRhdGVzLmRhdGVfcm91bmRpbmdcbnR5cGUgZHVyYXRpb24gPSBEYXRlc19jYWxjLkRhdGVzLnBlcmlvZFxudHlwZSAnYSBlb3B0aW9uID0gRU5vbmUgb2YgdW5pdCB8IEVTb21lIG9mICdhXG5cbnR5cGUgc291cmNlX3Bvc2l0aW9uID0ge1xuICBmaWxlbmFtZSA6IHN0cmluZztcbiAgc3RhcnRfbGluZSA6IGludDtcbiAgc3RhcnRfY29sdW1uIDogaW50O1xuICBlbmRfbGluZSA6IGludDtcbiAgZW5kX2NvbHVtbiA6IGludDtcbiAgbGF3X2hlYWRpbmdzIDogc3RyaW5nIGxpc3Q7XG59XG5bQEBkZXJpdmluZyB5b2pzb25fb2ZdXG5cbmV4Y2VwdGlvbiBFbXB0eUVycm9yXG5leGNlcHRpb24gQXNzZXJ0aW9uRmFpbGVkIG9mIHNvdXJjZV9wb3NpdGlvblxuZXhjZXB0aW9uIENvbmZsaWN0RXJyb3Igb2Ygc291cmNlX3Bvc2l0aW9uXG5leGNlcHRpb24gVW5jb21wYXJhYmxlRHVyYXRpb25zXG5leGNlcHRpb24gSW5kaXZpc2libGVEdXJhdGlvbnNcbmV4Y2VwdGlvbiBJbXBvc3NpYmxlRGF0ZVxuZXhjZXB0aW9uIE5vVmFsdWVQcm92aWRlZCBvZiBzb3VyY2VfcG9zaXRpb25cblxubGV0IG1vbmV5X29mX2NlbnRzX3N0cmluZyAoY2VudHMgOiBzdHJpbmcpIDogbW9uZXkgPSBaLm9mX3N0cmluZyBjZW50c1xubGV0IG1vbmV5X29mX3VuaXRzX2ludCAodW5pdHMgOiBpbnQpIDogbW9uZXkgPSBaLihvZl9pbnQgdW5pdHMgKiBvZl9pbnQgMTAwKVxubGV0IG1vbmV5X29mX2NlbnRzX2ludGVnZXIgKGNlbnRzIDogaW50ZWdlcikgOiBtb25leSA9IGNlbnRzXG5sZXQgbW9uZXlfdG9fZmxvYXQgKG0gOiBtb25leSkgOiBmbG9hdCA9IFoudG9fZmxvYXQgbSAvLiAxMDAuXG5cbmxldCBtb25leV9vZl9kZWNpbWFsIChkIDogZGVjaW1hbCkgOiBtb25leSA9XG4gIFEudG9fYmlnaW50IChRLm11bCBkIChRLm9mX2ludCAxMDApKVxuXG5sZXQgbW9uZXlfdG9fc3RyaW5nIChtIDogbW9uZXkpIDogc3RyaW5nID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJS4yZlwiIFEuKHRvX2Zsb2F0IChvZl9iaWdpbnQgbSAvIG9mX2ludCAxMDApKVxuXG5sZXQgbW9uZXlfdG9fY2VudHMgbSA9IG1cblxubGV0IG1vbmV5X3JvdW5kIChtIDogbW9uZXkpIDogbW9uZXkgPVxuICBsZXQgdW5pdHMsIGNlbnRzID0gWi5kaXZfcmVtIG0gKFoub2ZfaW50IDEwMCkgaW5cbiAgKCogSWYgW21dIGlzIG5lZ2F0aXZlLCBbY2VudHNdIHdpbGwgYWxzbyBiZSBuZWdhdGl2ZS4gKilcbiAgaWYgWi4oYWJzIGNlbnRzIDwgb2ZfaW50IDUwKSB0aGVuIFouKHVuaXRzICogb2ZfaW50IDEwMClcbiAgZWxzZSBaLigodW5pdHMgKyBvZl9pbnQgKHNpZ24gdW5pdHMpKSAqIG9mX2ludCAxMDApXG5cbmxldCBkZWNpbWFsX29mX3N0cmluZyAoZCA6IHN0cmluZykgOiBkZWNpbWFsID0gUS5vZl9zdHJpbmcgZFxubGV0IGRlY2ltYWxfdG9fZmxvYXQgKGQgOiBkZWNpbWFsKSA6IGZsb2F0ID0gUS50b19mbG9hdCBkXG5sZXQgZGVjaW1hbF9vZl9mbG9hdCAoZCA6IGZsb2F0KSA6IGRlY2ltYWwgPSBRLm9mX2Zsb2F0IGRcbmxldCBkZWNpbWFsX29mX2ludGVnZXIgKGQgOiBpbnRlZ2VyKSA6IGRlY2ltYWwgPSBRLm9mX2JpZ2ludCBkXG5cbmxldCBkZWNpbWFsX3RvX3N0cmluZyB+KG1heF9wcmVjX2RpZ2l0cyA6IGludCkgKGkgOiBkZWNpbWFsKSA6IHN0cmluZyA9XG4gIGxldCBzaWduID0gUS5zaWduIGkgaW5cbiAgbGV0IG4gPSBaLmFicyAoUS5udW0gaSkgaW5cbiAgbGV0IGQgPSBaLmFicyAoUS5kZW4gaSkgaW5cbiAgbGV0IGludF9wYXJ0ID0gWi5lZGl2IG4gZCBpblxuICBsZXQgbiA9IHJlZiAoWi5lcmVtIG4gZCkgaW5cbiAgbGV0IGRpZ2l0cyA9IHJlZiBbXSBpblxuICBsZXQgbGVhZGluZ196ZXJvZXMgKGRpZ2l0cyA6IFoudCBsaXN0KSA6IGludCA9XG4gICAgbWF0Y2hcbiAgICAgIExpc3QuZm9sZF9yaWdodFxuICAgICAgICAoZnVuIGRpZ2l0IG51bV9sZWFkaW5nX3plcm9lcyAtPlxuICAgICAgICAgIG1hdGNoIG51bV9sZWFkaW5nX3plcm9lcyB3aXRoXG4gICAgICAgICAgfCBgRW5kIF8gLT4gbnVtX2xlYWRpbmdfemVyb2VzXG4gICAgICAgICAgfCBgQmVnaW4gaSAtPiBpZiBaLihkaWdpdCA9IHplcm8pIHRoZW4gYEJlZ2luIChpICsgMSkgZWxzZSBgRW5kIGkpXG4gICAgICAgIGRpZ2l0cyAoYEJlZ2luIDApXG4gICAgd2l0aFxuICAgIHwgYEVuZCBpIC0+IGlcbiAgICB8IGBCZWdpbiBpIC0+IGlcbiAgaW5cbiAgd2hpbGVcbiAgICAhbiA8PiBaLnplcm9cbiAgICAmJiBMaXN0Lmxlbmd0aCAhZGlnaXRzIC0gbGVhZGluZ196ZXJvZXMgIWRpZ2l0cyA8IG1heF9wcmVjX2RpZ2l0c1xuICBkb1xuICAgIG4gOj0gWi5tdWwgIW4gKFoub2ZfaW50IDEwKTtcbiAgICBkaWdpdHMgOj0gWi5lZGl2ICFuIGQgOjogIWRpZ2l0cztcbiAgICBuIDo9IFouZXJlbSAhbiBkXG4gIGRvbmU7XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVzJWEuJWElc1wiXG4gICAgKGlmIHNpZ24gPCAwIHRoZW4gXCItXCIgZWxzZSBcIlwiKVxuICAgIFoucHBfcHJpbnQgaW50X3BhcnRcbiAgICAoRm9ybWF0LnBwX3ByaW50X2xpc3RcbiAgICAgICB+cHBfc2VwOihmdW4gX2ZtdCAoKSAtPiAoKSlcbiAgICAgICAoZnVuIGZtdCBkaWdpdCAtPiBGb3JtYXQuZnByaW50ZiBmbXQgXCIlYVwiIFoucHBfcHJpbnQgZGlnaXQpKVxuICAgIChMaXN0LnJldiAhZGlnaXRzKVxuICAgIChpZiBMaXN0Lmxlbmd0aCAhZGlnaXRzIC0gbGVhZGluZ196ZXJvZXMgIWRpZ2l0cyA9IG1heF9wcmVjX2RpZ2l0cyB0aGVuIFwi4oCmXCJcbiAgICBlbHNlIFwiXCIpXG5cbmxldCBkZWNpbWFsX3JvdW5kIChxIDogZGVjaW1hbCkgOiBkZWNpbWFsID1cbiAgKCogSW1wbGVtZW50cyB0aGUgd29ya2Fyb3VuZCBieVxuICAgICBodHRwczovL2dtcGxpYi5vcmcvbGlzdC1hcmNoaXZlcy9nbXAtZGlzY3Vzcy8yMDA5LU1heS8wMDM3NjcuaHRtbCAqKVxuICBsZXQgbiA9IFEubnVtIHEgaW5cbiAgbGV0IGQgPSBRLmRlbiBxIGluXG4gIFEub2ZfYmlnaW50IFouKGZkaXYgKChvZl9pbnQgMiAqIG4pICsgZCkgKG9mX2ludCAyICogZCkpXG5cbmxldCBkZWNpbWFsX29mX21vbmV5IChtIDogbW9uZXkpIDogZGVjaW1hbCA9XG4gIFEuZGl2IChRLm9mX2JpZ2ludCBtKSAoUS5vZl9pbnQgMTAwKVxuXG5sZXQgaW50ZWdlcl9vZl9zdHJpbmcgKHMgOiBzdHJpbmcpIDogaW50ZWdlciA9IFoub2Zfc3RyaW5nIHNcbmxldCBpbnRlZ2VyX3RvX3N0cmluZyAoaSA6IGludGVnZXIpIDogc3RyaW5nID0gWi50b19zdHJpbmcgaVxubGV0IGludGVnZXJfdG9faW50IChpIDogaW50ZWdlcikgOiBpbnQgPSBaLnRvX2ludCBpXG5sZXQgaW50ZWdlcl9vZl9pbnQgKGkgOiBpbnQpIDogaW50ZWdlciA9IFoub2ZfaW50IGlcbmxldCBpbnRlZ2VyX2V4cG9uZW50aWF0aW9uIChpIDogaW50ZWdlcikgKGUgOiBpbnQpIDogaW50ZWdlciA9IFoucG93IGkgZVxubGV0IGludGVnZXJfbG9nMiA9IFoubG9nMlxuXG5sZXQgeWVhcl9vZl9kYXRlIChkIDogZGF0ZSkgOiBpbnRlZ2VyID1cbiAgbGV0IHksIF8sIF8gPSBEYXRlc19jYWxjLkRhdGVzLmRhdGVfdG9feW1kIGQgaW5cbiAgWi5vZl9pbnQgeVxuXG5sZXQgbW9udGhfbnVtYmVyX29mX2RhdGUgKGQgOiBkYXRlKSA6IGludGVnZXIgPVxuICBsZXQgXywgbSwgXyA9IERhdGVzX2NhbGMuRGF0ZXMuZGF0ZV90b195bWQgZCBpblxuICBaLm9mX2ludCBtXG5cbmxldCBpc19sZWFwX3llYXIgKHkgOiBpbnRlZ2VyKSA9XG4gIGxldCB5ID0gWi50b19pbnQgeSBpblxuICBEYXRlc19jYWxjLkRhdGVzLmlzX2xlYXBfeWVhciB5XG5cbmxldCBkYXlfb2ZfbW9udGhfb2ZfZGF0ZSAoZCA6IGRhdGUpIDogaW50ZWdlciA9XG4gIGxldCBfLCBfLCBkID0gRGF0ZXNfY2FsYy5EYXRlcy5kYXRlX3RvX3ltZCBkIGluXG4gIFoub2ZfaW50IGRcblxubGV0IGRhdGVfb2ZfbnVtYmVycyAoeWVhciA6IGludCkgKG1vbnRoIDogaW50KSAoZGF5IDogaW50KSA6IGRhdGUgPVxuICB0cnkgRGF0ZXNfY2FsYy5EYXRlcy5tYWtlX2RhdGUgfnllYXIgfm1vbnRoIH5kYXlcbiAgd2l0aCBfIC0+IHJhaXNlIEltcG9zc2libGVEYXRlXG5cbmxldCBkYXRlX3RvX3N0cmluZyAoZCA6IGRhdGUpIDogc3RyaW5nID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIiBEYXRlc19jYWxjLkRhdGVzLmZvcm1hdF9kYXRlIGRcblxubGV0IGZpcnN0X2RheV9vZl9tb250aCA9IERhdGVzX2NhbGMuRGF0ZXMuZmlyc3RfZGF5X29mX21vbnRoXG5sZXQgbGFzdF9kYXlfb2ZfbW9udGggPSBEYXRlc19jYWxjLkRhdGVzLmxhc3RfZGF5X29mX21vbnRoXG5cbmxldCBkdXJhdGlvbl9vZl9udW1iZXJzICh5ZWFyIDogaW50KSAobW9udGggOiBpbnQpIChkYXkgOiBpbnQpIDogZHVyYXRpb24gPVxuICBEYXRlc19jYWxjLkRhdGVzLm1ha2VfcGVyaW9kIH55ZWFyczp5ZWFyIH5tb250aHM6bW9udGggfmRheXM6ZGF5XG5cbmxldCBkdXJhdGlvbl90b19zdHJpbmcgKGQgOiBkdXJhdGlvbikgOiBzdHJpbmcgPVxuICBGb3JtYXQuYXNwcmludGYgXCIlYVwiIERhdGVzX2NhbGMuRGF0ZXMuZm9ybWF0X3BlcmlvZCBkXG4oKiBicmVha3MgcHJldmlvdXMgZm9ybWF0ICopXG4oKiBsZXQgeCwgeSwgeiA9IENhbGVuZGFyTGliLkRhdGUuUGVyaW9kLnltZCBkIGluXG4gKiBsZXQgdG9fcHJpbnQgPVxuICogICBMaXN0LmZpbHRlciAoZnVuIChhLCBfKSAtPiBhIDw+IDApIFt4LCBcInllYXJzXCI7IHksIFwibW9udGhzXCI7IHosIFwiZGF5c1wiXVxuICogaW5cbiAqIG1hdGNoIHRvX3ByaW50IHdpdGhcbiAqIHwgW10gLT4gXCJlbXB0eSBkdXJhdGlvblwiXG4gKiB8IF8gLT5cbiAqICAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIlxuICogICAgIChGb3JtYXQucHBfcHJpbnRfbGlzdFxuICogICAgICAgIH5wcF9zZXA6KGZ1biBmbXQgKCkgLT4gRm9ybWF0LmZwcmludGYgZm10IFwiLEAgXCIpXG4gKiAgICAgICAgKGZ1biBmbXQgKGQsIGwpIC0+IEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVkICVzXCIgZCBsKSlcbiAqICAgICB0b19wcmludCAqKVxuXG5sZXQgZHVyYXRpb25fdG9feWVhcnNfbW9udGhzX2RheXMgKGQgOiBkdXJhdGlvbikgOiBpbnQgKiBpbnQgKiBpbnQgPVxuICBEYXRlc19jYWxjLkRhdGVzLnBlcmlvZF90b195bWRzIGRcblxubGV0IHlvanNvbl9vZl9tb25leSAobSA6IG1vbmV5KSA9IGBGbG9hdCAobW9uZXlfdG9fZmxvYXQgbSlcbmxldCB5b2pzb25fb2ZfaW50ZWdlciAoaSA6IGludGVnZXIpID0gYEludCAoaW50ZWdlcl90b19pbnQgaSlcbmxldCB5b2pzb25fb2ZfZGVjaW1hbCAoZCA6IGRlY2ltYWwpID0gYEZsb2F0IChkZWNpbWFsX3RvX2Zsb2F0IGQpXG5sZXQgeW9qc29uX29mX2RhdGUgKGQgOiBkYXRlKSA9IGBTdHJpbmcgKGRhdGVfdG9fc3RyaW5nIGQpXG5sZXQgeW9qc29uX29mX2R1cmF0aW9uIChkIDogZHVyYXRpb24pID0gYFN0cmluZyAoZHVyYXRpb25fdG9fc3RyaW5nIGQpXG5cbnR5cGUgcnVudGltZV92YWx1ZSA9XG4gIHwgVW5pdFxuICB8IEJvb2wgb2YgYm9vbFxuICB8IE1vbmV5IG9mIG1vbmV5XG4gIHwgSW50ZWdlciBvZiBpbnRlZ2VyXG4gIHwgRGVjaW1hbCBvZiBkZWNpbWFsXG4gIHwgRGF0ZSBvZiBkYXRlXG4gIHwgRHVyYXRpb24gb2YgZHVyYXRpb25cbiAgfCBFbnVtIG9mIHN0cmluZyBsaXN0ICogKHN0cmluZyAqIHJ1bnRpbWVfdmFsdWUpXG4gIHwgU3RydWN0IG9mIHN0cmluZyBsaXN0ICogKHN0cmluZyAqIHJ1bnRpbWVfdmFsdWUpIGxpc3RcbiAgfCBBcnJheSBvZiBydW50aW1lX3ZhbHVlIGFycmF5XG4gIHwgVW5lbWJlZGRhYmxlXG5bQEBkZXJpdmluZyB5b2pzb25fb2ZdXG5cbmxldCB1bmVtYmVkZGFibGUgXyA9IFVuZW1iZWRkYWJsZVxubGV0IGVtYmVkX3VuaXQgKCkgPSBVbml0XG5sZXQgZW1iZWRfYm9vbCB4ID0gQm9vbCB4XG5sZXQgZW1iZWRfbW9uZXkgeCA9IE1vbmV5IHhcbmxldCBlbWJlZF9pbnRlZ2VyIHggPSBJbnRlZ2VyIHhcbmxldCBlbWJlZF9kZWNpbWFsIHggPSBEZWNpbWFsIHhcbmxldCBlbWJlZF9kYXRlIHggPSBEYXRlIHhcbmxldCBlbWJlZF9kdXJhdGlvbiB4ID0gRHVyYXRpb24geFxubGV0IGVtYmVkX2FycmF5IGYgeCA9IEFycmF5IChBcnJheS5tYXAgZiB4KVxuXG50eXBlIGluZm9ybWF0aW9uID0gc3RyaW5nIGxpc3QgW0BAZGVyaXZpbmcgeW9qc29uX29mXVxuXG50eXBlIHJhd19ldmVudCA9XG4gIHwgQmVnaW5DYWxsIG9mIGluZm9ybWF0aW9uXG4gIHwgRW5kQ2FsbCBvZiBpbmZvcm1hdGlvblxuICB8IFZhcmlhYmxlRGVmaW5pdGlvbiBvZiBpbmZvcm1hdGlvbiAqIHJ1bnRpbWVfdmFsdWVcbiAgfCBEZWNpc2lvblRha2VuIG9mIHNvdXJjZV9wb3NpdGlvblxuXG50eXBlIGV2ZW50ID1cbiAgfCBWYXJDb21wdXRhdGlvbiBvZiB2YXJfZGVmXG4gIHwgRnVuQ2FsbCBvZiBmdW5fY2FsbFxuICB8IFN1YlNjb3BlQ2FsbCBvZiB7XG4gICAgICBuYW1lIDogaW5mb3JtYXRpb247XG4gICAgICBpbnB1dHMgOiB2YXJfZGVmIGxpc3Q7XG4gICAgICBib2R5IDogZXZlbnQgbGlzdDtcbiAgICB9XG5bQEBkZXJpdmluZyB5b2pzb25fb2ZdXG5cbmFuZCB2YXJfZGVmID0ge1xuICBwb3MgOiBzb3VyY2VfcG9zaXRpb24gb3B0aW9uO1xuICBuYW1lIDogaW5mb3JtYXRpb247XG4gIHZhbHVlIDogcnVudGltZV92YWx1ZTtcbiAgZnVuX2NhbGxzIDogZnVuX2NhbGwgbGlzdCBvcHRpb247XG59XG5cbmFuZCBmdW5fY2FsbCA9IHtcbiAgZnVuX25hbWUgOiBpbmZvcm1hdGlvbjtcbiAgZnVuX2lucHV0cyA6IHZhcl9kZWYgbGlzdDtcbiAgYm9keSA6IGV2ZW50IGxpc3Q7XG4gIG91dHB1dCA6IHZhcl9kZWY7XG59XG5cbmxldCBsb2dfcmVmIDogcmF3X2V2ZW50IGxpc3QgcmVmID0gcmVmIFtdXG5sZXQgcmVzZXRfbG9nICgpID0gbG9nX3JlZiA6PSBbXVxubGV0IHJldHJpZXZlX2xvZyAoKSA9IExpc3QucmV2ICFsb2dfcmVmXG5cbmxldCBsb2dfYmVnaW5fY2FsbCBpbmZvIGYgPVxuICBsb2dfcmVmIDo9IEJlZ2luQ2FsbCBpbmZvIDo6ICFsb2dfcmVmO1xuICBmXG5cbmxldCBsb2dfZW5kX2NhbGwgaW5mbyB4ID1cbiAgbG9nX3JlZiA6PSBFbmRDYWxsIGluZm8gOjogIWxvZ19yZWY7XG4gIHhcblxubGV0IGxvZ192YXJpYWJsZV9kZWZpbml0aW9uIChpbmZvIDogc3RyaW5nIGxpc3QpIGVtYmVkICh4IDogJ2EpID1cbiAgbG9nX3JlZiA6PSBWYXJpYWJsZURlZmluaXRpb24gKGluZm8sIGVtYmVkIHgpIDo6ICFsb2dfcmVmO1xuICB4XG5cbmxldCBsb2dfZGVjaXNpb25fdGFrZW4gcG9zIHggPVxuICBpZiB4IHRoZW4gbG9nX3JlZiA6PSBEZWNpc2lvblRha2VuIHBvcyA6OiAhbG9nX3JlZjtcbiAgeFxuXG5sZXQgcmVjIHBwX2V2ZW50cyA/KGlzX2ZpcnN0X2NhbGwgPSB0cnVlKSBwcGYgZXZlbnRzID1cbiAgbGV0IHJlYyBmb3JtYXRfdmFyX2RlZiBwcGYgdmFyID1cbiAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJAWzxob3YgMj48dmFyX2RlZiBhdCAlYT5AICVzOkAgJWFAXVwiIGZvcm1hdF9wb3Nfb3B0XG4gICAgICB2YXIucG9zXG4gICAgICAoU3RyaW5nLmNvbmNhdCBcIi5cIiB2YXIubmFtZSlcbiAgICAgIGZvcm1hdF92YWx1ZSB2YXIudmFsdWVcbiAgYW5kIGZvcm1hdF9wb3Nfb3B0IHBwZiA9IGZ1bmN0aW9uXG4gICAgfCBOb25lIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIm5vX3Bvc1wiXG4gICAgfCBTb21lIHBvcyAtPlxuICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiJXMgbGluZSAlZCB0byAlZFwiIHBvcy5maWxlbmFtZSBwb3Muc3RhcnRfbGluZVxuICAgICAgICBwb3MuZW5kX2xpbmVcbiAgYW5kIGZvcm1hdF92YXJfZGVmcyBwcGYgPVxuICAgIEZvcm1hdC5wcF9wcmludF9saXN0XG4gICAgICB+cHBfc2VwOihmdW4gcHBmICgpIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIkAgXCIpXG4gICAgICBmb3JtYXRfdmFyX2RlZiBwcGZcbiAgYW5kIGZvcm1hdF92YXJfZGVmX3dpdGhfZnVuX2NhbGxzIHBwZiB2YXJfd2l0aF9mdW4gPVxuICAgIG1hdGNoIHZhcl93aXRoX2Z1bi5mdW5fY2FsbHMgd2l0aFxuICAgIHwgTm9uZSB8IFNvbWUgW10gLT4gZm9ybWF0X3Zhcl9kZWYgcHBmIHZhcl93aXRoX2Z1blxuICAgIHwgU29tZSBmdW5fY2FsbHMgLT5cbiAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZlxuICAgICAgICBcIkBbPGhvdiAyPjx2YXJfZGVmX3dpdGhfZnVuPkAgJXM6ICVhQCBjb21wdXRlZCBmcm9tQCA6QCBAWzxodiAyPltAICVhQDtcXFxuICAgICAgICAgPDEgLTI+XUBdIEBdXCJcbiAgICAgICAgKFN0cmluZy5jb25jYXQgXCIuXCIgdmFyX3dpdGhfZnVuLm5hbWUpXG4gICAgICAgIGZvcm1hdF92YWx1ZSB2YXJfd2l0aF9mdW4udmFsdWVcbiAgICAgICAgKEZvcm1hdC5wcF9wcmludF9saXN0XG4gICAgICAgICAgIH5wcF9zZXA6KGZ1biBwcGYgKCkgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiLEAgXCIpXG4gICAgICAgICAgIChmdW4gcHBmIGZ1bl9jYWxsIC0+IGZvcm1hdF9ldmVudCBwcGYgKEZ1bkNhbGwgZnVuX2NhbGwpKSlcbiAgICAgICAgZnVuX2NhbGxzXG4gIGFuZCBmb3JtYXRfdmFsdWUgcHBmID0gZnVuY3Rpb25cbiAgICB8IFVuZW1iZWRkYWJsZSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCJmdW5cIlxuICAgIHwgVW5pdCAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCIoKVwiXG4gICAgfCBCb29sIHggLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiJWJcIiB4XG4gICAgfCBNb25leSB4IC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIiVz4oKsXCIgKG1vbmV5X3RvX3N0cmluZyB4KVxuICAgIHwgSW50ZWdlciB4IC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIiVkXCIgKGludGVnZXJfdG9faW50IHgpXG4gICAgfCBEZWNpbWFsIHggLT5cbiAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIiVzXCIgKGRlY2ltYWxfdG9fc3RyaW5nIH5tYXhfcHJlY19kaWdpdHM6MTAgeClcbiAgICB8IERhdGUgeCAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCIlc1wiIChkYXRlX3RvX3N0cmluZyB4KVxuICAgIHwgRHVyYXRpb24geCAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCIlc1wiIChkdXJhdGlvbl90b19zdHJpbmcgeClcbiAgICB8IEVudW0gKF8sIChuYW1lLCBfKSkgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiJXNcIiBuYW1lXG4gICAgfCBTdHJ1Y3QgKG5hbWUsIGF0dHJzKSAtPlxuICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiQFs8aHYgMj4lcyA9IHtAICVhQDs8MSAtMj59QF1cIlxuICAgICAgICAoU3RyaW5nLmNvbmNhdCBcIi5cIiBuYW1lKVxuICAgICAgICAoRm9ybWF0LnBwX3ByaW50X2xpc3RcbiAgICAgICAgICAgfnBwX3NlcDooZnVuIHBwZiAoKSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCIsQCxcIilcbiAgICAgICAgICAgKGZ1biBmbXQgKG5hbWUsIHZhbHVlKSAtPlxuICAgICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVzOiAlYVwiIG5hbWUgZm9ybWF0X3ZhbHVlIHZhbHVlKSlcbiAgICAgICAgYXR0cnNcbiAgICB8IEFycmF5IGVsdHMgLT5cbiAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIkBbPGh2IDI+W0AgJWFAOzwxIC0yPl1AXVwiXG4gICAgICAgIChGb3JtYXQucHBfcHJpbnRfbGlzdFxuICAgICAgICAgICB+cHBfc2VwOihmdW4gcHBmICgpIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIjtAIFwiKVxuICAgICAgICAgICBmb3JtYXRfdmFsdWUpXG4gICAgICAgIChlbHRzIHw+IEFycmF5LnRvX2xpc3QpXG4gIGFuZCBmb3JtYXRfZXZlbnQgcHBmID0gZnVuY3Rpb25cbiAgICB8IFZhckNvbXB1dGF0aW9uIHZhcl9kZWZfd2l0aF9mdW5cbiAgICAgIHdoZW4gT3B0aW9uLmlzX3NvbWUgdmFyX2RlZl93aXRoX2Z1bi5mdW5fY2FsbHMgLT5cbiAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIiVhXCIgZm9ybWF0X3Zhcl9kZWZfd2l0aF9mdW5fY2FsbHMgdmFyX2RlZl93aXRoX2Z1blxuICAgIHwgVmFyQ29tcHV0YXRpb24gdmFyX2RlZiAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCIlYVwiIGZvcm1hdF92YXJfZGVmIHZhcl9kZWZcbiAgICB8IEZ1bkNhbGwgeyBmdW5fbmFtZTsgZnVuX2lucHV0czsgYm9keTsgb3V0cHV0IH0gLT5cbiAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZlxuICAgICAgICBcIkBbPGhvdiAxPjxmdW5jdGlvbl9jYWxsPkAgJXMgOj1AIHtAWzxodiAxPkAgaW5wdXQ6QCAlYSxAIG91dHB1dDpAIFxcXG4gICAgICAgICAlYSxAIGJvZHk6QCBbQCxcXFxuICAgICAgICAgJWFdQF1ALFxcXG4gICAgICAgICBAXUAsXFxcbiAgICAgICAgIH1cIlxuICAgICAgICAoU3RyaW5nLmNvbmNhdCBcIi5cIiBmdW5fbmFtZSlcbiAgICAgICAgKEZvcm1hdC5wcF9wcmludF9saXN0XG4gICAgICAgICAgIH5wcF9zZXA6KGZ1biBmbXQgKCkgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCI7IFwiKVxuICAgICAgICAgICBmb3JtYXRfdmFyX2RlZilcbiAgICAgICAgZnVuX2lucHV0cyBmb3JtYXRfdmFyX2RlZl93aXRoX2Z1bl9jYWxscyBvdXRwdXRcbiAgICAgICAgKHBwX2V2ZW50cyB+aXNfZmlyc3RfY2FsbDpmYWxzZSlcbiAgICAgICAgYm9keVxuICAgIHwgU3ViU2NvcGVDYWxsIHsgbmFtZTsgaW5wdXRzOyBib2R5IH0gLT5cbiAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZlxuICAgICAgICBcIkBbPGh2IDI+PHN1YnNjb3BlX2NhbGw+QCAlcyA6PUAge0BbPGh2IDE+QCxcXFxuICAgICAgICAgaW5wdXRzOkAgQFs8aHYgMj5bQCxcXFxuICAgICAgICAgJWFAXV0sQCxcXFxuICAgICAgICAgYm9keTpAIEBbPGh2IDI+W0AgJWFAIF1AXUBdQF1ALFxcXG4gICAgICAgICB9XCJcbiAgICAgICAgKFN0cmluZy5jb25jYXQgXCIuXCIgbmFtZSkgZm9ybWF0X3Zhcl9kZWZzIGlucHV0c1xuICAgICAgICAocHBfZXZlbnRzIH5pc19maXJzdF9jYWxsOmZhbHNlKVxuICAgICAgICBib2R5XG4gIGluXG4gIEZvcm1hdC5mcHJpbnRmIHBwZlxuICAgIChcIkBbPGh2IDE+JWFAXVwiIF5eIGlmIGlzX2ZpcnN0X2NhbGwgdGhlbiBcIkAuXCIgZWxzZSBcIlwiKVxuICAgIChGb3JtYXQucHBfcHJpbnRfbGlzdFxuICAgICAgIH5wcF9zZXA6KGZ1biBwcGYgKCkgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiQCBcIilcbiAgICAgICBmb3JtYXRfZXZlbnQpXG4gICAgZXZlbnRzXG5cbm1vZHVsZSBFdmVudFBhcnNlciA9IHN0cnVjdFxuICBtb2R1bGUgVmFyRGVmTWFwID0gc3RydWN0XG4gICAgbW9kdWxlIFN0cmluZ01hcCA9IE1hcC5NYWtlIChTdHJpbmcpXG5cbiAgICB0eXBlIHQgPSB2YXJfZGVmIGxpc3QgU3RyaW5nTWFwLnRcblxuICAgIGxldCBhZGQgKG5hbWUgOiBzdHJpbmcpICh2IDogdmFyX2RlZikgKG1hcCA6IHQpIDogdCA9XG4gICAgICBtYXRjaCBTdHJpbmdNYXAuZmluZF9vcHQgbmFtZSBtYXAgd2l0aFxuICAgICAgfCBTb21lIGxzIC0+IFN0cmluZ01hcC5hZGQgbmFtZSAodiA6OiBscykgbWFwXG4gICAgICB8IE5vbmUgLT4gU3RyaW5nTWFwLmFkZCBuYW1lIFt2XSBtYXBcblxuICAgICgqKiBbZ2V0IG5hbWUgbWFwXSByZXR1cm5zIHRoZSBsaXN0IG9mIGRlZmluaXRpb25zIGlmIHRoZXJlIGlzIGFcbiAgICAgICAgY29ycmVzcG9uZGluZyBlbnRyeSwgb3RoZXJ3aXNlLCByZXR1cm5zIGFuIGVtcHR5IGFycmF5LiAqKVxuICAgIGxldCBnZXQgKG5hbWUgOiBzdHJpbmcpIChtYXAgOiB0KSA6IHZhcl9kZWYgbGlzdCA9XG4gICAgICBtYXRjaCBTdHJpbmdNYXAuZmluZF9vcHQgbmFtZSBtYXAgd2l0aCBTb21lIGxzIC0+IGxzIHwgTm9uZSAtPiBbXVxuXG4gICAgbGV0IGVtcHR5IDogdCA9IFN0cmluZ01hcC5lbXB0eVxuICBlbmRcblxuICB0eXBlIGNvbnRleHQgPSB7XG4gICAgKCogS2VlcHMgdHJhY2tzIG9mIHRoZSBzdWJzY29wZSBpbnB1dCB2YXJpYWJsZSBkZWZpbml0aW9ucy4gKilcbiAgICB2YXJzIDogVmFyRGVmTWFwLnQ7XG4gICAgKCogQ3VycmVudCBwYXJzZWQgZXZlbnRzLiAqKVxuICAgIGV2ZW50cyA6IGV2ZW50IGxpc3Q7XG4gICAgcmVzdCA6IHJhd19ldmVudCBsaXN0O1xuICB9XG5cbiAgbGV0IGVtcHR5X2N0eCA9IHsgdmFycyA9IFZhckRlZk1hcC5lbXB0eTsgZXZlbnRzID0gW107IHJlc3QgPSBbXSB9XG5cbiAgbGV0IHJhd19ldmVudF90b19zdHJpbmcgPSBmdW5jdGlvblxuICAgIHwgQmVnaW5DYWxsIG5hbWUgLT5cbiAgICAgIFByaW50Zi5zcHJpbnRmIFwiQmVnaW5DYWxsKFsgXCIgXiBTdHJpbmcuY29uY2F0IFwiLCBcIiBuYW1lIF4gXCIgXSlcIlxuICAgIHwgRW5kQ2FsbCBuYW1lIC0+XG4gICAgICBQcmludGYuc3ByaW50ZiBcIkVuZENhbGwoWyBcIiBeIFN0cmluZy5jb25jYXQgXCIsIFwiIG5hbWUgXiBcIiBdKVwiXG4gICAgfCBWYXJpYWJsZURlZmluaXRpb24gKG5hbWUsIHZhbHVlKSAtPlxuICAgICAgUHJpbnRmLnNwcmludGYgXCJWYXJpYWJsZURlZmluaXRpb24oWyAlcyBdLCAlcylcIiAoU3RyaW5nLmNvbmNhdCBcIiwgXCIgbmFtZSlcbiAgICAgICAgKHlvanNvbl9vZl9ydW50aW1lX3ZhbHVlIHZhbHVlIHw+IFlvanNvbi5TYWZlLnRvX3N0cmluZylcbiAgICB8IERlY2lzaW9uVGFrZW4gcG9zIC0+XG4gICAgICBQcmludGYuc3ByaW50ZiBcIkRlY2lzaW9uVGFrZW4oJXM6JWQuJWQtJWQuJWQpXCIgcG9zLmZpbGVuYW1lIHBvcy5zdGFydF9saW5lXG4gICAgICAgIHBvcy5zdGFydF9jb2x1bW4gcG9zLmVuZF9saW5lIHBvcy5lbmRfY29sdW1uXG5cbiAgKCoqIFt0YWtld2hpbGUgcCB4c10gc3BsaXQgdGhlIGxpc3QgW3hzXSBhcyB0aGUgbG9uZ2VzdCBwcmVmaXggb2YgdGhlIGxpc3RcbiAgICAgIFt4c10gd2hlcmUgZXZlcnkgZWxlbWVudCBbeF0gc2F0aXNmaWVzIFtwIHhdIGFuZCB0aGUgcmVzdC4gKilcbiAgbGV0IHJlYyB0YWtlX3doaWxlIChwIDogJ2EgLT4gYm9vbCkgKGwgOiAnYSBsaXN0KSA6ICdhIGxpc3QgKiAnYSBsaXN0ID1cbiAgICBtYXRjaCBsIHdpdGhcbiAgICB8IFtdIC0+IFtdLCBbXVxuICAgIHwgaCA6OiB0IHdoZW4gcCBoIC0+XG4gICAgICBsZXQgdCwgcmVzdCA9IHRha2Vfd2hpbGUgcCB0IGluXG4gICAgICBoIDo6IHQsIHJlc3RcbiAgICB8IF8gLT4gW10sIGxcblxuICBsZXQgcGFyc2VfcmF3X2V2ZW50cyByYXdfZXZlbnRzID1cbiAgICBsZXQgbmJfcmF3X2V2ZW50cyA9IExpc3QubGVuZ3RoIHJhd19ldmVudHNcbiAgICBhbmQgaXNfZnVuY3Rpb25fY2FsbCBpbmZvcyA9IDIgPSBMaXN0Lmxlbmd0aCBpbmZvc1xuICAgIGFuZCBpc19zdWJzY29wZV9jYWxsIGluZm9zID0gMyA9IExpc3QubGVuZ3RoIGluZm9zXG4gICAgYW5kIGlzX3Zhcl9kZWYgbmFtZSA9IDIgPSBMaXN0Lmxlbmd0aCBuYW1lXG4gICAgYW5kIGlzX291dHB1dF92YXJfZGVmIG5hbWUgPVxuICAgICAgMyA9IExpc3QubGVuZ3RoIG5hbWUgJiYgXCJvdXRwdXRcIiA9IExpc3QubnRoIG5hbWUgMlxuICAgIGFuZCBpc19pbnB1dF92YXJfZGVmIG5hbWUgPVxuICAgICAgMyA9IExpc3QubGVuZ3RoIG5hbWVcbiAgICAgICYmIFN0cmluZy5zdGFydHNfd2l0aCB+cHJlZml4OlwiaW5wdXRcIiAoTGlzdC5udGggbmFtZSAyKVxuICAgIGFuZCBpc19zdWJzY29wZV9pbnB1dF92YXJfZGVmIG5hbWUgPVxuICAgICAgMiA9IExpc3QubGVuZ3RoIG5hbWUgJiYgU3RyaW5nLmNvbnRhaW5zIChMaXN0Lm50aCBuYW1lIDEpICcuJ1xuICAgIGluXG4gICAgbGV0IHJlYyBwYXJzZV9ldmVudHMgKGN0eCA6IGNvbnRleHQpIDogY29udGV4dCA9XG4gICAgICBtYXRjaCBjdHgucmVzdCB3aXRoXG4gICAgICB8IFtdIC0+IHsgY3R4IHdpdGggZXZlbnRzID0gY3R4LmV2ZW50cyB8PiBMaXN0LnJldiB9XG4gICAgICB8IFZhcmlhYmxlRGVmaW5pdGlvbiAobmFtZSwgXykgOjogcmVzdCB3aGVuIGlzX3Zhcl9kZWYgbmFtZSAtPlxuICAgICAgICAoKiBWYXJpYWJsZURlZmluaXRpb24gd2l0aG91dCBwb3NpdGlvbiBjb3JyZXNwb25kcyB0byBhIGZ1bmN0aW9uXG4gICAgICAgICAgIGRlZmluaXRpb24gd2hpY2ggYXJlIGlnbm9yZWQgZm9yIG5vdyBpbiBzdHJ1Y3R1cmVkIGV2ZW50cy4gKilcbiAgICAgICAgcGFyc2VfZXZlbnRzIHsgY3R4IHdpdGggcmVzdCB9XG4gICAgICB8IERlY2lzaW9uVGFrZW4gcG9zIDo6IFZhcmlhYmxlRGVmaW5pdGlvbiAobmFtZSwgdmFsdWUpIDo6IHJlc3RcbiAgICAgICAgd2hlbiBpc19zdWJzY29wZV9pbnB1dF92YXJfZGVmIG5hbWUgLT4gKFxuICAgICAgICBtYXRjaCBuYW1lIHdpdGhcbiAgICAgICAgfCBbXzsgdmFyX2RvdF9zdWJzY29wZV92YXJfbmFtZV0gLT5cbiAgICAgICAgICBsZXQgdmFyX25hbWUgPVxuICAgICAgICAgICAgTGlzdC5udGggKFN0cmluZy5zcGxpdF9vbl9jaGFyICcuJyB2YXJfZG90X3N1YnNjb3BlX3Zhcl9uYW1lKSAwXG4gICAgICAgICAgaW5cbiAgICAgICAgICBwYXJzZV9ldmVudHNcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY3R4IHdpdGhcbiAgICAgICAgICAgICAgdmFycyA9XG4gICAgICAgICAgICAgICAgY3R4LnZhcnNcbiAgICAgICAgICAgICAgICB8PiBWYXJEZWZNYXAuYWRkIHZhcl9uYW1lXG4gICAgICAgICAgICAgICAgICAgICB7IHBvcyA9IFNvbWUgcG9zOyBuYW1lOyB2YWx1ZTsgZnVuX2NhbGxzID0gTm9uZSB9O1xuICAgICAgICAgICAgICByZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB8IF8gLT5cbiAgICAgICAgICBmYWlsd2l0aCBcInVucmVhY2hhYmxlIGR1ZSB0byB0aGUgW2lzX3N1YnNjb3BlX2lucHV0X3Zhcl9kZWZdIHRlc3RcIilcbiAgICAgIHwgRGVjaXNpb25UYWtlbiBwb3MgOjogVmFyaWFibGVEZWZpbml0aW9uIChuYW1lLCB2YWx1ZSkgOjogcmVzdFxuICAgICAgICB3aGVuIGlzX3Zhcl9kZWYgbmFtZSB8fCBpc19vdXRwdXRfdmFyX2RlZiBuYW1lIC0+XG4gICAgICAgIHBhcnNlX2V2ZW50c1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGN0eCB3aXRoXG4gICAgICAgICAgICBldmVudHMgPVxuICAgICAgICAgICAgICBWYXJDb21wdXRhdGlvbiB7IHBvcyA9IFNvbWUgcG9zOyBuYW1lOyB2YWx1ZTsgZnVuX2NhbGxzID0gTm9uZSB9XG4gICAgICAgICAgICAgIDo6IGN0eC5ldmVudHM7XG4gICAgICAgICAgICByZXN0O1xuICAgICAgICAgIH1cbiAgICAgIHwgRGVjaXNpb25UYWtlbiBwb3MgOjogVmFyaWFibGVEZWZpbml0aW9uIF8gOjogQmVnaW5DYWxsIGluZm9zIDo6IF9cbiAgICAgICAgd2hlbiBpc19mdW5jdGlvbl9jYWxsIGluZm9zIC0+XG4gICAgICAgICgqIFZhcmlhYmxlIGRlZmluaXRpb24gd2l0aCBmdW5jdGlvbiBjYWxscy4gKilcbiAgICAgICAgbGV0IHJlYyBwYXJzZV9mdW5fY2FsbHMgZnVuX2NhbGxzIHJhd19ldmVudHMgPVxuICAgICAgICAgIG1hdGNoXG4gICAgICAgICAgICB0YWtlX3doaWxlXG4gICAgICAgICAgICAgIChmdW5jdGlvbiBWYXJpYWJsZURlZmluaXRpb24gXyAtPiB0cnVlIHwgXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgcmF3X2V2ZW50c1xuICAgICAgICAgIHdpdGhcbiAgICAgICAgICB8IF8sIEJlZ2luQ2FsbCBpbmZvcyA6OiBfIHdoZW4gaXNfZnVuY3Rpb25fY2FsbCBpbmZvcyAtPlxuICAgICAgICAgICAgbGV0IHJlc3QsIGZ1bl9jYWxsID0gcGFyc2VfZnVuX2NhbGwgcmF3X2V2ZW50cyBpblxuICAgICAgICAgICAgcGFyc2VfZnVuX2NhbGxzIChmdW5fY2FsbCA6OiBmdW5fY2FsbHMpIHJlc3RcbiAgICAgICAgICB8IF8gLT4gcmF3X2V2ZW50cywgZnVuX2NhbGxzIHw+IExpc3QucmV2XG4gICAgICAgIGluXG4gICAgICAgIGxldCByZXN0LCB2YXJfY29tcCA9XG4gICAgICAgICAgbGV0IHJlc3QsIGZ1bl9jYWxscyA9IHBhcnNlX2Z1bl9jYWxscyBbXSAoTGlzdC50bCBjdHgucmVzdCkgaW5cbiAgICAgICAgICBtYXRjaCByZXN0IHdpdGhcbiAgICAgICAgICB8IFZhcmlhYmxlRGVmaW5pdGlvbiAobmFtZSwgdmFsdWUpIDo6IHJlc3QgLT5cbiAgICAgICAgICAgICggcmVzdCxcbiAgICAgICAgICAgICAgVmFyQ29tcHV0YXRpb25cbiAgICAgICAgICAgICAgICB7IHBvcyA9IFNvbWUgcG9zOyBuYW1lOyB2YWx1ZTsgZnVuX2NhbGxzID0gU29tZSBmdW5fY2FsbHMgfSApXG4gICAgICAgICAgfCBldmVudCA6OiBfIC0+XG4gICAgICAgICAgICBmYWlsd2l0aFxuICAgICAgICAgICAgICAoXCJJbnZhbGlkIGZ1bmN0aW9uIGNhbGwgKFsgXCJcbiAgICAgICAgICAgICAgXiBTdHJpbmcuY29uY2F0IFwiLCBcIiBpbmZvc1xuICAgICAgICAgICAgICBeIFwiIF0pOiBleHBlY3RlZCB2YXJpYWJsZSBkZWZpbml0aW9uIChmdW5jdGlvbiBvdXRwdXQpLCBmb3VuZDogXCJcbiAgICAgICAgICAgICAgXiByYXdfZXZlbnRfdG9fc3RyaW5nIGV2ZW50XG4gICAgICAgICAgICAgIF4gXCJbXCJcbiAgICAgICAgICAgICAgXiAobmJfcmF3X2V2ZW50cyAtIExpc3QubGVuZ3RoIHJlc3QgKyAxIHw+IHN0cmluZ19vZl9pbnQpXG4gICAgICAgICAgICAgIF4gXCJdXCIpXG4gICAgICAgICAgfCBbXSAtPlxuICAgICAgICAgICAgZmFpbHdpdGhcbiAgICAgICAgICAgICAgKFwiSW52YWxpZCBmdW5jdGlvbiBjYWxsIChbIFwiXG4gICAgICAgICAgICAgIF4gU3RyaW5nLmNvbmNhdCBcIiwgXCIgaW5mb3NcbiAgICAgICAgICAgICAgXiBcIiBdKTogZXhwZWN0ZWQgdmFyaWFibGUgZGVmaW5pdGlvbiAoZnVuY3Rpb24gb3V0cHV0KSwgZm91bmQ6IFxcXG4gICAgICAgICAgICAgICAgIGVuZCBvZiB0b2tlbnNcIilcbiAgICAgICAgaW5cblxuICAgICAgICBwYXJzZV9ldmVudHMgeyBjdHggd2l0aCBldmVudHMgPSB2YXJfY29tcCA6OiBjdHguZXZlbnRzOyByZXN0IH1cbiAgICAgIHwgVmFyaWFibGVEZWZpbml0aW9uIF8gOjogQmVnaW5DYWxsIGluZm9zIDo6IF8gd2hlbiBpc19mdW5jdGlvbl9jYWxsIGluZm9zXG4gICAgICAgIC0+XG4gICAgICAgIGxldCByZXN0LCBmdW5fY2FsbCA9IHBhcnNlX2Z1bl9jYWxsIGN0eC5yZXN0IGluXG5cbiAgICAgICAgcGFyc2VfZXZlbnRzIHsgY3R4IHdpdGggZXZlbnRzID0gRnVuQ2FsbCBmdW5fY2FsbCA6OiBjdHguZXZlbnRzOyByZXN0IH1cbiAgICAgIHwgQmVnaW5DYWxsIGluZm9zIDo6IHJlc3Qgd2hlbiBpc19zdWJzY29wZV9jYWxsIGluZm9zIC0+IChcbiAgICAgICAgbWF0Y2ggaW5mb3Mgd2l0aFxuICAgICAgICB8IFtfOyB2YXJfbmFtZTsgX10gLT5cbiAgICAgICAgICBsZXQgYm9keV9jdHggPSBwYXJzZV9ldmVudHMgeyBlbXB0eV9jdHggd2l0aCByZXN0IH0gaW5cbiAgICAgICAgICBsZXQgaW5wdXRzID0gVmFyRGVmTWFwLmdldCB2YXJfbmFtZSBjdHgudmFycyBpblxuICAgICAgICAgIHBhcnNlX2V2ZW50c1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjdHggd2l0aFxuICAgICAgICAgICAgICBldmVudHMgPVxuICAgICAgICAgICAgICAgIFN1YlNjb3BlQ2FsbCB7IG5hbWUgPSBpbmZvczsgaW5wdXRzOyBib2R5ID0gYm9keV9jdHguZXZlbnRzIH1cbiAgICAgICAgICAgICAgICA6OiBjdHguZXZlbnRzO1xuICAgICAgICAgICAgICByZXN0ID0gYm9keV9jdHgucmVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfCBfIC0+IGZhaWx3aXRoIFwidW5yZWFjaGFibGUgZHVlIHRvIHRoZSBbaXNfc3Vic2NvcGVfY2FsbF0gdGVzdFwiKVxuICAgICAgfCBFbmRDYWxsIF8gOjogcmVzdCAtPiB7IGN0eCB3aXRoIGV2ZW50cyA9IGN0eC5ldmVudHMgfD4gTGlzdC5yZXY7IHJlc3QgfVxuICAgICAgfCBldmVudCA6OiBfIC0+IGZhaWx3aXRoIChcIlVuZXhwZWN0ZWQgZXZlbnQ6IFwiIF4gcmF3X2V2ZW50X3RvX3N0cmluZyBldmVudClcbiAgICBhbmQgcGFyc2VfZnVuX2NhbGwgZXZlbnRzID1cbiAgICAgIG1hdGNoXG4gICAgICAgIHRha2Vfd2hpbGVcbiAgICAgICAgICAoZnVuY3Rpb25cbiAgICAgICAgICAgIHwgVmFyaWFibGVEZWZpbml0aW9uIChuYW1lLCBfKSAtPiBpc19pbnB1dF92YXJfZGVmIG5hbWUgfCBfIC0+IGZhbHNlKVxuICAgICAgICAgIGV2ZW50c1xuICAgICAgd2l0aFxuICAgICAgfCBpbnB1dHMsIEJlZ2luQ2FsbCBpbmZvcyA6OiByZXN0IHdoZW4gaXNfZnVuY3Rpb25fY2FsbCBpbmZvcyAtPlxuICAgICAgICBsZXQgZnVuX2lucHV0cyA9XG4gICAgICAgICAgTGlzdExhYmVscy5tYXAgaW5wdXRzIH5mOihmdW5jdGlvblxuICAgICAgICAgICAgfCBWYXJpYWJsZURlZmluaXRpb24gKG5hbWUsIHZhbHVlKSAtPlxuICAgICAgICAgICAgICB7IHBvcyA9IE5vbmU7IG5hbWU7IHZhbHVlOyBmdW5fY2FsbHMgPSBOb25lIH1cbiAgICAgICAgICAgIHwgXyAtPiBhc3NlcnQgZmFsc2UpXG4gICAgICAgIGluXG4gICAgICAgIGxldCByZXN0LCBib2R5LCBvdXRwdXQgPVxuICAgICAgICAgIGxldCBib2R5X2N0eCA9XG4gICAgICAgICAgICBwYXJzZV9ldmVudHMgeyB2YXJzID0gVmFyRGVmTWFwLmVtcHR5OyBldmVudHMgPSBbXTsgcmVzdCB9XG4gICAgICAgICAgaW5cbiAgICAgICAgICBsZXQgYm9keV9yZXYgPSBMaXN0LnJldiBib2R5X2N0eC5ldmVudHMgaW5cbiAgICAgICAgICBib2R5X2N0eC5yZXN0LCBib2R5X3JldiB8PiBMaXN0LnRsIHw+IExpc3QucmV2LCBib2R5X3JldiB8PiBMaXN0LmhkXG4gICAgICAgIGluXG4gICAgICAgIGxldCBvdXRwdXQgPVxuICAgICAgICAgIG1hdGNoIG91dHB1dCB3aXRoXG4gICAgICAgICAgfCBWYXJDb21wdXRhdGlvbiB2YXJfZGVmIC0+IHZhcl9kZWZcbiAgICAgICAgICB8IF8gLT4gZmFpbHdpdGggXCJNaXNzaW5nIGZ1bmN0aW9uIG91dHB1dCB2YXJpYWJsZSBkZWZpbml0aW9uLlwiXG4gICAgICAgIGluXG5cbiAgICAgICAgcmVzdCwgeyBmdW5fbmFtZSA9IGluZm9zOyBmdW5faW5wdXRzOyBib2R5OyBvdXRwdXQgfVxuICAgICAgfCBfIC0+IGZhaWx3aXRoIFwiSW52YWxpZCBzdGFydCBvZiBmdW5jdGlvbiBjYWxsLlwiXG4gICAgaW5cblxuICAgIGxldCBjdHggPVxuICAgICAgdHJ5IHBhcnNlX2V2ZW50cyB7IGVtcHR5X2N0eCB3aXRoIHJlc3QgPSByYXdfZXZlbnRzIH1cbiAgICAgIHdpdGggRmFpbHVyZSBtc2cgLT5cbiAgICAgICAgKCogVE9ETzogZGlzY3VzcyB3aGF0IHNob3VsZCBiZSBkb25lLiAqKVxuICAgICAgICBQcmludGYuZXByaW50ZiBcIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHBhcnNpbmcgcmF3IGV2ZW50czogJXNcXG5cIiBtc2c7XG4gICAgICAgIGVtcHR5X2N0eFxuICAgIGluXG4gICAgY3R4LmV2ZW50c1xuZW5kXG5cbmxldCBoYW5kbGVfZGVmYXVsdCA6XG4gICAgICAnYS5cbiAgICAgIHNvdXJjZV9wb3NpdGlvbiAtPlxuICAgICAgKHVuaXQgLT4gJ2EpIGFycmF5IC0+XG4gICAgICAodW5pdCAtPiBib29sKSAtPlxuICAgICAgKHVuaXQgLT4gJ2EpIC0+XG4gICAgICAnYSA9XG4gZnVuIHBvcyBleGNlcHRpb25zIGp1c3QgY29ucyAtPlxuICBsZXQgZXhjZXB0ID1cbiAgICBBcnJheS5mb2xkX2xlZnRcbiAgICAgIChmdW4gYWNjIGV4Y2VwdCAtPlxuICAgICAgICBsZXQgbmV3X3ZhbCA9IHRyeSBTb21lIChleGNlcHQgKCkpIHdpdGggRW1wdHlFcnJvciAtPiBOb25lIGluXG4gICAgICAgIG1hdGNoIGFjYywgbmV3X3ZhbCB3aXRoXG4gICAgICAgIHwgTm9uZSwgXyAtPiBuZXdfdmFsXG4gICAgICAgIHwgU29tZSBfLCBOb25lIC0+IGFjY1xuICAgICAgICB8IFNvbWUgXywgU29tZSBfIC0+IHJhaXNlIChDb25mbGljdEVycm9yIHBvcykpXG4gICAgICBOb25lIGV4Y2VwdGlvbnNcbiAgaW5cbiAgbWF0Y2ggZXhjZXB0IHdpdGhcbiAgfCBTb21lIHggLT4geFxuICB8IE5vbmUgLT4gaWYganVzdCAoKSB0aGVuIGNvbnMgKCkgZWxzZSByYWlzZSBFbXB0eUVycm9yXG5cbmxldCBoYW5kbGVfZGVmYXVsdF9vcHRcbiAgICAocG9zIDogc291cmNlX3Bvc2l0aW9uKVxuICAgIChleGNlcHRpb25zIDogJ2EgZW9wdGlvbiBhcnJheSlcbiAgICAoanVzdCA6IGJvb2wgZW9wdGlvbilcbiAgICAoY29ucyA6ICdhIGVvcHRpb24pIDogJ2EgZW9wdGlvbiA9XG4gIGxldCBleGNlcHQgPVxuICAgIEFycmF5LmZvbGRfbGVmdFxuICAgICAgKGZ1biBhY2MgZXhjZXB0IC0+XG4gICAgICAgIG1hdGNoIGFjYywgZXhjZXB0IHdpdGhcbiAgICAgICAgfCBFTm9uZSBfLCBfIC0+IGV4Y2VwdFxuICAgICAgICB8IEVTb21lIF8sIEVOb25lIF8gLT4gYWNjXG4gICAgICAgIHwgRVNvbWUgXywgRVNvbWUgXyAtPiByYWlzZSAoQ29uZmxpY3RFcnJvciBwb3MpKVxuICAgICAgKEVOb25lICgpKSBleGNlcHRpb25zXG4gIGluXG4gIG1hdGNoIGV4Y2VwdCB3aXRoXG4gIHwgRVNvbWUgXyAtPiBleGNlcHRcbiAgfCBFTm9uZSBfIC0+IChcbiAgICBtYXRjaCBqdXN0IHdpdGhcbiAgICB8IEVTb21lIGIgLT4gaWYgYiB0aGVuIGNvbnMgZWxzZSBFTm9uZSAoKVxuICAgIHwgRU5vbmUgXyAtPiBFTm9uZSAoKSlcblxubGV0IG5vX2lucHV0IDogdW5pdCAtPiAnYSA9IGZ1biBfIC0+IHJhaXNlIEVtcHR5RXJyb3JcblxuKCogVE9ETzogYWRkIGEgY29tcGFyZSBidWlsdC1pbiB0byBkYXRlc19jYWxjLiBBdCB0aGUgbW9tZW50IHRoaXMgZmFpbHMgb24gZS5nLlxuICAgWzMgbW9udGhzLCA0IG1vbnRoc10gKilcbmxldCBjb21wYXJlX3BlcmlvZHMgKHAxIDogZHVyYXRpb24pIChwMiA6IGR1cmF0aW9uKSA6IGludCA9XG4gIHRyeVxuICAgIGxldCBwMV9kYXlzID0gRGF0ZXNfY2FsYy5EYXRlcy5wZXJpb2RfdG9fZGF5cyBwMSBpblxuICAgIGxldCBwMl9kYXlzID0gRGF0ZXNfY2FsYy5EYXRlcy5wZXJpb2RfdG9fZGF5cyBwMiBpblxuICAgIGNvbXBhcmUgcDFfZGF5cyBwMl9kYXlzXG4gIHdpdGggRGF0ZXNfY2FsYy5EYXRlcy5BbWJpZ3VvdXNDb21wdXRhdGlvbiAtPiByYWlzZSBVbmNvbXBhcmFibGVEdXJhdGlvbnNcblxuKCogVE9ETzogc2FtZSBoZXJlLCBhbHRob3VnaCBpdCB3YXMgdHdlYWtlZCB0byBuZXZlciBmYWlsIG9uIGVxdWFsIGRhdGVzLlxuICAgQ29tcGFyaW5nIHRoZSBkaWZmZXJlbmNlIHRvIGR1cmF0aW9uXzAgaXMgbm90IGEgZ29vZCBpZGVhIGJlY2F1c2Ugd2Ugc3RpbGxcbiAgIHdhbnQgdG8gZmFpbCBvbiBbMSBtb250aCwgMzAgZGF5c10gcmF0aGVyIHRoYW4gcmV0dXJuIFtmYWxzZV0gKilcbmxldCBlcXVhbF9wZXJpb2RzIChwMSA6IGR1cmF0aW9uKSAocDIgOiBkdXJhdGlvbikgOiBib29sID1cbiAgdHJ5IERhdGVzX2NhbGMuRGF0ZXMucGVyaW9kX3RvX2RheXMgKERhdGVzX2NhbGMuRGF0ZXMuc3ViX3BlcmlvZHMgcDEgcDIpID0gMFxuICB3aXRoIERhdGVzX2NhbGMuRGF0ZXMuQW1iaWd1b3VzQ29tcHV0YXRpb24gLT4gcmFpc2UgVW5jb21wYXJhYmxlRHVyYXRpb25zXG5cbm1vZHVsZSBPcGVyID0gc3RydWN0XG4gIGxldCBvX25vdCA9IFN0ZGxpYi5ub3RcbiAgbGV0IG9fbGVuZ3RoIGEgPSBaLm9mX2ludCAoQXJyYXkubGVuZ3RoIGEpXG4gIGxldCBvX3RvcmF0X2ludCA9IGRlY2ltYWxfb2ZfaW50ZWdlclxuICBsZXQgb190b3JhdF9tb24gPSBkZWNpbWFsX29mX21vbmV5XG4gIGxldCBvX3RvbW9uZXlfcmF0ID0gbW9uZXlfb2ZfZGVjaW1hbFxuICBsZXQgb19nZXREYXkgPSBkYXlfb2ZfbW9udGhfb2ZfZGF0ZVxuICBsZXQgb19nZXRNb250aCA9IG1vbnRoX251bWJlcl9vZl9kYXRlXG4gIGxldCBvX2dldFllYXIgPSB5ZWFyX29mX2RhdGVcbiAgbGV0IG9fZmlyc3REYXlPZk1vbnRoID0gZmlyc3RfZGF5X29mX21vbnRoXG4gIGxldCBvX2xhc3REYXlPZk1vbnRoID0gbGFzdF9kYXlfb2ZfbW9udGhcbiAgbGV0IG9fcm91bmRfbW9uID0gbW9uZXlfcm91bmRcbiAgbGV0IG9fcm91bmRfcmF0ID0gZGVjaW1hbF9yb3VuZFxuICBsZXQgb19taW51c19pbnQgaTEgPSBaLnN1YiBaLnplcm8gaTFcbiAgbGV0IG9fbWludXNfcmF0IGkxID0gUS5zdWIgUS56ZXJvIGkxXG4gIGxldCBvX21pbnVzX21vbiBtMSA9IFouc3ViIFouemVybyBtMVxuICBsZXQgb19taW51c19kdXIgPSBEYXRlc19jYWxjLkRhdGVzLm5lZ19wZXJpb2RcbiAgbGV0IG9fYW5kID0gKCAmJiApXG4gIGxldCBvX29yID0gKCB8fCApXG4gIGxldCBvX3hvciA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gKCA8PiApXG4gIGxldCBvX2VxID0gKCA9IClcbiAgbGV0IG9fbWFwID0gQXJyYXkubWFwXG5cbiAgbGV0IG9fcmVkdWNlIGYgZGZ0IGEgPVxuICAgIGxldCBsZW4gPSBBcnJheS5sZW5ndGggYSBpblxuICAgIGlmIGxlbiA9IDAgdGhlbiBkZnRcbiAgICBlbHNlXG4gICAgICBsZXQgciA9IHJlZiBhLigwKSBpblxuICAgICAgZm9yIGkgPSAxIHRvIGxlbiAtIDEgZG9cbiAgICAgICAgciA6PSBmICFyIGEuKGkpXG4gICAgICBkb25lO1xuICAgICAgIXJcblxuICBsZXQgb19jb25jYXQgPSBBcnJheS5hcHBlbmRcbiAgbGV0IG9fZmlsdGVyIGYgYSA9IEFycmF5Lm9mX2xpc3QgKExpc3QuZmlsdGVyIGYgKEFycmF5LnRvX2xpc3QgYSkpXG4gIGxldCBvX2FkZF9pbnRfaW50IGkxIGkyID0gWi5hZGQgaTEgaTJcbiAgbGV0IG9fYWRkX3JhdF9yYXQgaTEgaTIgPSBRLmFkZCBpMSBpMlxuICBsZXQgb19hZGRfbW9uX21vbiBtMSBtMiA9IFouYWRkIG0xIG0yXG4gIGxldCBvX2FkZF9kYXRfZHVyIHIgZGEgZHUgPSBEYXRlc19jYWxjLkRhdGVzLmFkZF9kYXRlcyB+cm91bmQ6ciBkYSBkdVxuICBsZXQgb19hZGRfZHVyX2R1ciA9IERhdGVzX2NhbGMuRGF0ZXMuYWRkX3BlcmlvZHNcbiAgbGV0IG9fc3ViX2ludF9pbnQgaTEgaTIgPSBaLnN1YiBpMSBpMlxuICBsZXQgb19zdWJfcmF0X3JhdCBpMSBpMiA9IFEuc3ViIGkxIGkyXG4gIGxldCBvX3N1Yl9tb25fbW9uIG0xIG0yID0gWi5zdWIgbTEgbTJcbiAgbGV0IG9fc3ViX2RhdF9kYXQgPSBEYXRlc19jYWxjLkRhdGVzLnN1Yl9kYXRlc1xuICBsZXQgb19zdWJfZGF0X2R1ciBkYXQgZHVyID0gRGF0ZXNfY2FsYy5EYXRlcy4oYWRkX2RhdGVzIGRhdCAobmVnX3BlcmlvZCBkdXIpKVxuICBsZXQgb19zdWJfZHVyX2R1ciA9IERhdGVzX2NhbGMuRGF0ZXMuc3ViX3BlcmlvZHNcbiAgbGV0IG9fbXVsdF9pbnRfaW50IGkxIGkyID0gWi5tdWwgaTEgaTJcbiAgbGV0IG9fbXVsdF9yYXRfcmF0IGkxIGkyID0gUS5tdWwgaTEgaTJcblxuICBsZXQgb19tdWx0X21vbl9yYXQgaTEgaTIgPVxuICAgIGxldCBpMV9hYnMgPSBaLmFicyBpMSBpblxuICAgIGxldCBpMl9hYnMgPSBRLmFicyBpMiBpblxuICAgIGxldCBzaWduX2ludCA9IFouc2lnbiBpMSAqIFEuc2lnbiBpMiBpblxuICAgIGxldCByYXRfcmVzdWx0ID0gUS5tdWwgKFEub2ZfYmlnaW50IGkxX2FicykgaTJfYWJzIGluXG4gICAgbGV0IHJlcywgcmVtYWluZGVyID0gWi5kaXZfcmVtIChRLm51bSByYXRfcmVzdWx0KSAoUS5kZW4gcmF0X3Jlc3VsdCkgaW5cbiAgICAoKiB3ZSBwZXJmb3JtIG5lYXJlc3Qgcm91bmRpbmcgd2hlbiBtdWx0aXBseWluZyBhbiBhbW91bnQgb2YgbW9uZXkgYnkgYVxuICAgICAgIGRlY2ltYWwgISopXG4gICAgaWYgWi4ob2ZfaW50IDIgKiByZW1haW5kZXIgPj0gUS5kZW4gcmF0X3Jlc3VsdCkgdGhlblxuICAgICAgWi4oYWRkIHJlcyAob2ZfaW50IDEpICogb2ZfaW50IHNpZ25faW50KVxuICAgIGVsc2UgWi4ocmVzICogb2ZfaW50IHNpZ25faW50KVxuXG4gIGxldCBvX211bHRfZHVyX2ludCBkIG0gPSBEYXRlc19jYWxjLkRhdGVzLm11bF9wZXJpb2QgZCAoWi50b19pbnQgbSlcblxuICBsZXQgb19kaXZfaW50X2ludCBpMSBpMiA9XG4gICAgKCogSXQncyBub3Qgb24gdGhlIG9jYW1sZG9jLCBidXQgUS5kaXYgbGlrZWx5IGFscmVhZHkgcmFpc2VzIHRoaXMgPyAqKVxuICAgIGlmIFouemVybyA9IGkyIHRoZW4gcmFpc2UgRGl2aXNpb25fYnlfemVyb1xuICAgIGVsc2UgUS5kaXYgKFEub2ZfYmlnaW50IGkxKSAoUS5vZl9iaWdpbnQgaTIpXG5cbiAgbGV0IG9fZGl2X3JhdF9yYXQgaTEgaTIgPVxuICAgIGlmIFEuemVybyA9IGkyIHRoZW4gcmFpc2UgRGl2aXNpb25fYnlfemVybyBlbHNlIFEuZGl2IGkxIGkyXG5cbiAgbGV0IG9fZGl2X21vbl9tb24gbTEgbTIgPVxuICAgIGlmIFouemVybyA9IG0yIHRoZW4gcmFpc2UgRGl2aXNpb25fYnlfemVyb1xuICAgIGVsc2UgUS5kaXYgKFEub2ZfYmlnaW50IG0xKSAoUS5vZl9iaWdpbnQgbTIpXG5cbiAgbGV0IG9fZGl2X21vbl9yYXQgbTEgcjEgPVxuICAgIGlmIFEuemVybyA9IHIxIHRoZW4gcmFpc2UgRGl2aXNpb25fYnlfemVybyBlbHNlIG9fbXVsdF9tb25fcmF0IG0xIChRLmludiByMSlcblxuICBsZXQgb19kaXZfZHVyX2R1ciBkMSBkMiA9XG4gICAgbGV0IGkxLCBpMiA9XG4gICAgICB0cnlcbiAgICAgICAgKCBpbnRlZ2VyX29mX2ludCAoRGF0ZXNfY2FsYy5EYXRlcy5wZXJpb2RfdG9fZGF5cyBkMSksXG4gICAgICAgICAgaW50ZWdlcl9vZl9pbnQgKERhdGVzX2NhbGMuRGF0ZXMucGVyaW9kX3RvX2RheXMgZDIpIClcbiAgICAgIHdpdGggRGF0ZXNfY2FsYy5EYXRlcy5BbWJpZ3VvdXNDb21wdXRhdGlvbiAtPiByYWlzZSBJbmRpdmlzaWJsZUR1cmF0aW9uc1xuICAgIGluXG4gICAgb19kaXZfaW50X2ludCBpMSBpMlxuXG4gIGxldCBvX2x0X2ludF9pbnQgaTEgaTIgPSBaLmNvbXBhcmUgaTEgaTIgPCAwXG4gIGxldCBvX2x0X3JhdF9yYXQgaTEgaTIgPSBRLmNvbXBhcmUgaTEgaTIgPCAwXG4gIGxldCBvX2x0X21vbl9tb24gbTEgbTIgPSBaLmNvbXBhcmUgbTEgbTIgPCAwXG4gIGxldCBvX2x0X2R1cl9kdXIgZDEgZDIgPSBjb21wYXJlX3BlcmlvZHMgZDEgZDIgPCAwXG4gIGxldCBvX2x0X2RhdF9kYXQgZDEgZDIgPSBEYXRlc19jYWxjLkRhdGVzLmNvbXBhcmVfZGF0ZXMgZDEgZDIgPCAwXG4gIGxldCBvX2x0ZV9pbnRfaW50IGkxIGkyID0gWi5jb21wYXJlIGkxIGkyIDw9IDBcbiAgbGV0IG9fbHRlX3JhdF9yYXQgaTEgaTIgPSBRLmNvbXBhcmUgaTEgaTIgPD0gMFxuICBsZXQgb19sdGVfbW9uX21vbiBtMSBtMiA9IFouY29tcGFyZSBtMSBtMiA8PSAwXG4gIGxldCBvX2x0ZV9kdXJfZHVyIGQxIGQyID0gY29tcGFyZV9wZXJpb2RzIGQxIGQyIDw9IDBcbiAgbGV0IG9fbHRlX2RhdF9kYXQgZDEgZDIgPSBEYXRlc19jYWxjLkRhdGVzLmNvbXBhcmVfZGF0ZXMgZDEgZDIgPD0gMFxuICBsZXQgb19ndF9pbnRfaW50IGkxIGkyID0gWi5jb21wYXJlIGkxIGkyID4gMFxuICBsZXQgb19ndF9yYXRfcmF0IGkxIGkyID0gUS5jb21wYXJlIGkxIGkyID4gMFxuICBsZXQgb19ndF9tb25fbW9uIG0xIG0yID0gWi5jb21wYXJlIG0xIG0yID4gMFxuICBsZXQgb19ndF9kdXJfZHVyIGQxIGQyID0gY29tcGFyZV9wZXJpb2RzIGQxIGQyID4gMFxuICBsZXQgb19ndF9kYXRfZGF0IGQxIGQyID0gRGF0ZXNfY2FsYy5EYXRlcy5jb21wYXJlX2RhdGVzIGQxIGQyID4gMFxuICBsZXQgb19ndGVfaW50X2ludCBpMSBpMiA9IFouY29tcGFyZSBpMSBpMiA+PSAwXG4gIGxldCBvX2d0ZV9yYXRfcmF0IGkxIGkyID0gUS5jb21wYXJlIGkxIGkyID49IDBcbiAgbGV0IG9fZ3RlX21vbl9tb24gbTEgbTIgPSBaLmNvbXBhcmUgbTEgbTIgPj0gMFxuICBsZXQgb19ndGVfZHVyX2R1ciBkMSBkMiA9IGNvbXBhcmVfcGVyaW9kcyBkMSBkMiA+PSAwXG4gIGxldCBvX2d0ZV9kYXRfZGF0IGQxIGQyID0gRGF0ZXNfY2FsYy5EYXRlcy5jb21wYXJlX2RhdGVzIGQxIGQyID49IDBcbiAgbGV0IG9fZXFfaW50X2ludCBpMSBpMiA9IFouZXF1YWwgaTEgaTJcbiAgbGV0IG9fZXFfcmF0X3JhdCBpMSBpMiA9IFEuZXF1YWwgaTEgaTJcbiAgbGV0IG9fZXFfbW9uX21vbiBtMSBtMiA9IFouZXF1YWwgbTEgbTJcbiAgbGV0IG9fZXFfZHVyX2R1ciBkMSBkMiA9IGVxdWFsX3BlcmlvZHMgZDEgZDJcbiAgbGV0IG9fZXFfZGF0X2RhdCBkMSBkMiA9IERhdGVzX2NhbGMuRGF0ZXMuY29tcGFyZV9kYXRlcyBkMSBkMiA9IDBcbiAgbGV0IG9fZm9sZCA9IEFycmF5LmZvbGRfbGVmdFxuZW5kXG5cbmluY2x1ZGUgT3BlclxuIiwiKCogZ2VuZXJhdGVkIGJ5IGR1bmUgKilcblxuKCoqIEBjYW5vbmljYWwgSnNvb19ydW50aW1lLlJ1bnRpbWVfdmVyc2lvbiAqKVxubW9kdWxlIFJ1bnRpbWVfdmVyc2lvbiA9IEpzb29fcnVudGltZV9fUnVudGltZV92ZXJzaW9uXG5cbm1vZHVsZSBKc29vX3J1bnRpbWVfXyA9IHN0cnVjdCBlbmRcbltAQGRlcHJlY2F0ZWQgXCJ0aGlzIG1vZHVsZSBpcyBzaGFkb3dlZFwiXVxuIiwibW9kdWxlIEpzID0gc3RydWN0XG4gIHR5cGUgdFxuXG4gIHR5cGUgJ2EganNfYXJyYXkgPSB0XG5cbiAgdHlwZSAoJ2EsICdiKSBtZXRoX2NhbGxiYWNrID0gdFxuXG4gIGV4dGVybmFsIHN0cmluZyA6IHN0cmluZyAtPiB0ID0gXCJjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwgdG9fc3RyaW5nIDogdCAtPiBzdHJpbmcgPSBcImNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXCJcblxuICBleHRlcm5hbCBieXRlc3RyaW5nIDogc3RyaW5nIC0+IHQgPSBcImNhbWxfanNieXRlc19vZl9zdHJpbmdcIlxuXG4gIGV4dGVybmFsIHRvX2J5dGVzdHJpbmcgOiB0IC0+IHN0cmluZyA9IFwiY2FtbF9zdHJpbmdfb2ZfanNieXRlc1wiXG5cbiAgZXh0ZXJuYWwgYm9vbCA6IGJvb2wgLT4gdCA9IFwiY2FtbF9qc19mcm9tX2Jvb2xcIlxuXG4gIGV4dGVybmFsIHRvX2Jvb2wgOiB0IC0+IGJvb2wgPSBcImNhbWxfanNfdG9fYm9vbFwiXG5cbiAgZXh0ZXJuYWwgYXJyYXkgOiAnYSBhcnJheSAtPiB0ID0gXCJjYW1sX2pzX2Zyb21fYXJyYXlcIlxuXG4gIGV4dGVybmFsIHRvX2FycmF5IDogdCAtPiAnYSBhcnJheSA9IFwiY2FtbF9qc190b19hcnJheVwiXG5cbiAgZXh0ZXJuYWwgbnVtYmVyX29mX2Zsb2F0IDogZmxvYXQgLT4gdCA9IFwiY2FtbF9qc19mcm9tX2Zsb2F0XCJcblxuICBleHRlcm5hbCBmbG9hdF9vZl9udW1iZXIgOiB0IC0+IGZsb2F0ID0gXCJjYW1sX2pzX3RvX2Zsb2F0XCJcblxuICBleHRlcm5hbCB0eXBlb2YgOiB0IC0+IHQgPSBcImNhbWxfanNfdHlwZW9mXCJcblxuICBleHRlcm5hbCBpbnN0YW5jZW9mIDogdCAtPiB0IC0+IGJvb2wgPSBcImNhbWxfanNfaW5zdGFuY2VvZlwiXG5cbiAgZXh0ZXJuYWwgZGVidWdnZXIgOiB1bml0IC0+IHVuaXQgPSBcImRlYnVnZ2VyXCJcblxuICBleHRlcm5hbCBnZXQgOiB0IC0+IHQgLT4gdCA9IFwiY2FtbF9qc19nZXRcIlxuXG4gIGV4dGVybmFsIHNldCA6IHQgLT4gdCAtPiB0IC0+IHVuaXQgPSBcImNhbWxfanNfc2V0XCJcblxuICBleHRlcm5hbCBkZWxldGUgOiB0IC0+IHQgLT4gdW5pdCA9IFwiY2FtbF9qc19kZWxldGVcIlxuXG4gIGV4dGVybmFsIGNhbGwgOiB0IC0+IHQgLT4gdCBhcnJheSAtPiB0ID0gXCJjYW1sX2pzX2NhbGxcIlxuXG4gIGV4dGVybmFsIGZ1bl9jYWxsIDogdCAtPiB0IGFycmF5IC0+IHQgPSBcImNhbWxfanNfZnVuX2NhbGxcIlxuXG4gIGV4dGVybmFsIG1ldGhfY2FsbCA6IHQgLT4gc3RyaW5nIC0+IHQgYXJyYXkgLT4gdCA9IFwiY2FtbF9qc19tZXRoX2NhbGxcIlxuXG4gIGV4dGVybmFsIG5ld19vYmogOiB0IC0+IHQgYXJyYXkgLT4gdCA9IFwiY2FtbF9qc19uZXdcIlxuXG4gIGV4dGVybmFsIG5ld19vYmpfYXJyIDogdCAtPiB0IGpzX2FycmF5IC0+IHQgPSBcImNhbWxfb2pzX25ld19hcnJcIlxuXG4gIGV4dGVybmFsIG9iaiA6IChzdHJpbmcgKiB0KSBhcnJheSAtPiB0ID0gXCJjYW1sX2pzX29iamVjdFwiXG5cbiAgZXh0ZXJuYWwgZXF1YWxzIDogdCAtPiB0IC0+IGJvb2wgPSBcImNhbWxfanNfZXF1YWxzXCJcblxuICBleHRlcm5hbCBwdXJlX2V4cHIgOiAodW5pdCAtPiAnYSkgLT4gJ2EgPSBcImNhbWxfanNfcHVyZV9leHByXCJcblxuICBleHRlcm5hbCBldmFsX3N0cmluZyA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9qc19ldmFsX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwganNfZXhwciA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9qc19leHByXCJcblxuICBleHRlcm5hbCBwdXJlX2pzX2V4cHIgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfcHVyZV9qc19leHByXCJcblxuICBleHRlcm5hbCBjYWxsYmFjayA6ICgnYiAtPiAnYSkgLT4gKCdiLCAnYSkgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfdW5zYWZlXCJcblxuICBleHRlcm5hbCBjYWxsYmFja193aXRoX2FyZ3VtZW50cyA6XG4gICAgKHQganNfYXJyYXkgLT4gJ2IpIC0+ICgnYywgdCBqc19hcnJheSAtPiAnYikgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzXCJcblxuICBleHRlcm5hbCBjYWxsYmFja193aXRoX2FyaXR5IDogaW50IC0+ICgnYSAtPiAnYikgLT4gKCdjLCAnYSAtPiAnYikgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0XCJcblxuICBleHRlcm5hbCBtZXRoX2NhbGxiYWNrIDogKCdiIC0+ICdhKSAtPiAoJ2IsICdhKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3Vuc2FmZVwiXG5cbiAgZXh0ZXJuYWwgbWV0aF9jYWxsYmFja193aXRoX2FyaXR5IDogaW50IC0+ICgnYiAtPiAnYSkgLT4gKCdiLCAnYSkgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19zdHJpY3RcIlxuXG4gIGV4dGVybmFsIG1ldGhfY2FsbGJhY2tfd2l0aF9hcmd1bWVudHMgOlxuICAgICgnYiAtPiB0IGpzX2FycmF5IC0+ICdhKSAtPiAoJ2IsIHQganNfYXJyYXkgLT4gJ2EpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzXCJcblxuICBleHRlcm5hbCB3cmFwX2NhbGxiYWNrIDogKCdhIC0+ICdiKSAtPiAoJ2MsICdhIC0+ICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9jYWxsYmFja1wiXG5cbiAgZXh0ZXJuYWwgd3JhcF9tZXRoX2NhbGxiYWNrIDogKCdhIC0+ICdiKSAtPiAoJ2EsICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrXCJcbmVuZFxuXG5tb2R1bGUgU3lzID0gc3RydWN0XG4gIHR5cGUgJ2EgY2FsbGJhY2sgPSAnYVxuXG4gIGV4dGVybmFsIGNyZWF0ZV9maWxlIDogbmFtZTpzdHJpbmcgLT4gY29udGVudDpzdHJpbmcgLT4gdW5pdCA9IFwiY2FtbF9jcmVhdGVfZmlsZVwiXG5cbiAgZXh0ZXJuYWwgcmVhZF9maWxlIDogbmFtZTpzdHJpbmcgLT4gc3RyaW5nID0gXCJjYW1sX3JlYWRfZmlsZV9jb250ZW50XCJcblxuICBleHRlcm5hbCBzZXRfY2hhbm5lbF9vdXRwdXQnIDogb3V0X2NoYW5uZWwgLT4gKGpzX3N0cmluZzpKcy50IC0+IHVuaXQpIGNhbGxiYWNrIC0+IHVuaXRcbiAgICA9IFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXRcIlxuXG4gIGV4dGVybmFsIHNldF9jaGFubmVsX2lucHV0JyA6IGluX2NoYW5uZWwgLT4gKHVuaXQgLT4gc3RyaW5nKSBjYWxsYmFjayAtPiB1bml0XG4gICAgPSBcImNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsXCJcblxuICBleHRlcm5hbCBtb3VudF9wb2ludCA6IHVuaXQgLT4gc3RyaW5nIGxpc3QgPSBcImNhbWxfbGlzdF9tb3VudF9wb2ludFwiXG5cbiAgZXh0ZXJuYWwgbW91bnRfYXV0b2xvYWQgOiBzdHJpbmcgLT4gKHN0cmluZyAtPiBzdHJpbmcgLT4gc3RyaW5nIG9wdGlvbikgY2FsbGJhY2sgLT4gdW5pdFxuICAgID0gXCJjYW1sX21vdW50X2F1dG9sb2FkXCJcblxuICBleHRlcm5hbCB1bm1vdW50IDogc3RyaW5nIC0+IHVuaXQgPSBcImNhbWxfdW5tb3VudFwiXG5cbiAgbW9kdWxlIENvbmZpZyA9IHN0cnVjdFxuICAgIGV4dGVybmFsIHVzZV9qc19zdHJpbmcgOiB1bml0IC0+IGJvb2wgPSBcImNhbWxfanNvb19mbGFnc191c2VfanNfc3RyaW5nXCJcblxuICAgIGV4dGVybmFsIGVmZmVjdHMgOiB1bml0IC0+IGJvb2wgPSBcImNhbWxfanNvb19mbGFnc19lZmZlY3RzXCJcbiAgZW5kXG5cbiAgbGV0IHZlcnNpb24gPSBSdW50aW1lX3ZlcnNpb24uc1xuXG4gIGxldCBnaXRfdmVyc2lvbiA9IFJ1bnRpbWVfdmVyc2lvbi5naXRfdmVyc2lvblxuZW5kXG5cbm1vZHVsZSBFcnJvciA6IHNpZ1xuICB0eXBlIHRcblxuICB2YWwgcmFpc2VfIDogdCAtPiAnYVxuXG4gIHZhbCBhdHRhY2hfanNfYmFja3RyYWNlIDogZXhuIC0+IGZvcmNlOmJvb2wgLT4gZXhuXG4gICgqKiBBdHRhY2ggYSBKYXZhc1NjcmlwdCBlcnJvciB0byBhbiBPQ2FtbCBleGNlcHRpb24uICBpZiBbZm9yY2UgPSBmYWxzZV0gYW5kIGFcbiAgICBKYXZhc1NjcmlwdCBlcnJvciBpcyBhbHJlYWR5IGF0dGFjaGVkLCBpdCB3aWxsIGRvIG5vdGhpbmcuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZnVsIHRvXG4gICAgc3RvcmUgYW5kIHJldHJpZXZlIGluZm9ybWF0aW9uIGFib3V0IEphdmFTY3JpcHQgc3RhY2sgdHJhY2VzLlxuXG4gICAgQXR0YWNoaW5nIEphdmFzU2NyaXB0IGVycm9ycyB3aWxsIGhhcHBlbiBhdXRvbWF0aWNhbGx5IHdoZW4gY29tcGlsaW5nIHdpdGhcbiAgICBbLS1lbmFibGUgd2l0aC1qcy1lcnJvcl0uICopXG5cbiAgdmFsIG9mX2V4biA6IGV4biAtPiB0IG9wdGlvblxuICAoKiogRXh0cmFjdCBhIEphdmFTY3JpcHQgZXJyb3IgYXR0YWNoZWQgdG8gYW4gT0NhbWwgZXhjZXB0aW9uLCBpZiBhbnkuICBUaGlzIGlzIHVzZWZ1bCB0b1xuICAgICAgaW5zcGVjdCBhbiBldmVudHVhbCBzdGFjayBzdHJhY2UsIGVzcGVjaWFsbHkgd2hlbiBzb3VyY2VtYXAgaXMgZW5hYmxlZC4gKilcblxuICBleGNlcHRpb24gRXhuIG9mIHRcbiAgKCoqIFRoZSBbRXJyb3JdIGV4Y2VwdGlvbiB3cmFwIGphdmFzY3JpcHQgZXhjZXB0aW9ucyB3aGVuIGNhdWdodCBieSBPQ2FtbCBjb2RlLlxuICAgICAgSW4gY2FzZSB0aGUgamF2YXNjcmlwdCBleGNlcHRpb24gaXMgbm90IGFuIGluc3RhbmNlIG9mIGphdmFzY3JpcHQgW0Vycm9yXSxcbiAgICAgIGl0IHdpbGwgYmUgc2VyaWFsaXplZCBhbmQgd3JhcHBlZCBpbnRvIGEgW0ZhaWx1cmVdIGV4Y2VwdGlvbi5cbiAgKilcbmVuZCA9IHN0cnVjdFxuICB0eXBlIHRcblxuICBleGNlcHRpb24gRXhuIG9mIHRcblxuICBsZXQgXyA9IENhbGxiYWNrLnJlZ2lzdGVyX2V4Y2VwdGlvbiBcImpzRXJyb3JcIiAoRXhuIChPYmoubWFnaWMgW3x8XSkpXG5cbiAgbGV0IHJhaXNlXyA6IHQgLT4gJ2EgPSBKcy5qc19leHByIFwiKGZ1bmN0aW9uIChleG4pIHsgdGhyb3cgZXhuIH0pXCJcblxuICBleHRlcm5hbCBvZl9leG4gOiBleG4gLT4gdCBvcHRpb24gPSBcImNhbWxfanNfZXJyb3Jfb3B0aW9uX29mX2V4Y2VwdGlvblwiXG5cbiAgZXh0ZXJuYWwgYXR0YWNoX2pzX2JhY2t0cmFjZSA6IGV4biAtPiBmb3JjZTpib29sIC0+IGV4biA9IFwiY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2VcIlxuZW5kXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTMyLTYwXCJdXG5cbm1vZHVsZSBGb3JfY29tcGF0aWJpbGl0eV9vbmx5ID0gc3RydWN0XG4gICgqIEFkZCBwcmltaXRpdmVzIGZvciBjb21wYXRpYmlsaXR5IHJlYXNvbnMuIEV4aXN0aW5nIHVzZXJzIG1pZ2h0XG4gICAgIGRlcGVuZCBvbiBpdCAoZS5nLiBnZW5fanNfYXBpKSwgd2UgZG9udCB3YW50IHRoZSBvY2FtbCBjb21waWxlclxuICAgICB0byBjb21wbGFpbiBhYm91dCB0aGVzZXMgbWlzc2luZyBwcmltaXRpdmVzLiAqKVxuXG4gIGV4dGVybmFsIGNhbWxfanNfZnJvbV9zdHJpbmcgOiBzdHJpbmcgLT4gSnMudCA9IFwiY2FtbF9qc19mcm9tX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwgY2FtbF9qc190b19ieXRlX3N0cmluZyA6IEpzLnQgLT4gc3RyaW5nID0gXCJjYW1sX2pzX3RvX2J5dGVfc3RyaW5nXCJcblxuICBleHRlcm5hbCBjYW1sX2pzX3RvX3N0cmluZyA6IEpzLnQgLT4gc3RyaW5nID0gXCJjYW1sX2pzX3RvX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwgY2FtbF9saXN0X29mX2pzX2FycmF5IDogJ2EgSnMuanNfYXJyYXkgLT4gJ2EgbGlzdCA9IFwiY2FtbF9saXN0X29mX2pzX2FycmF5XCJcblxuICBleHRlcm5hbCBjYW1sX2xpc3RfdG9fanNfYXJyYXkgOiAnYSBsaXN0IC0+ICdhIEpzLmpzX2FycmF5ID0gXCJjYW1sX2xpc3RfdG9fanNfYXJyYXlcIlxuXG4gIGV4dGVybmFsIHZhcmlhYmxlIDogc3RyaW5nIC0+ICdhID0gXCJjYW1sX2pzX3ZhclwiXG5lbmRcblxubW9kdWxlIFR5cGVkX2FycmF5ID0gc3RydWN0XG4gIHR5cGUgKCdhLCAnYikgdHlwZWRBcnJheSA9IEpzLnRcblxuICB0eXBlIGFycmF5QnVmZmVyID0gSnMudFxuXG4gIHR5cGUgdWludDhBcnJheSA9IEpzLnRcblxuICBleHRlcm5hbCBraW5kIDogKCdhLCAnYikgdHlwZWRBcnJheSAtPiAoJ2EsICdiKSBCaWdhcnJheS5raW5kXG4gICAgPSBcImNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheVwiXG5cbiAgZXh0ZXJuYWwgZnJvbV9nZW5hcnJheSA6XG4gICAgKCdhLCAnYiwgQmlnYXJyYXkuY19sYXlvdXQpIEJpZ2FycmF5LkdlbmFycmF5LnQgLT4gKCdhLCAnYikgdHlwZWRBcnJheVxuICAgID0gXCJjYW1sX2JhX3RvX3R5cGVkX2FycmF5XCJcblxuICBleHRlcm5hbCB0b19nZW5hcnJheSA6XG4gICAgKCdhLCAnYikgdHlwZWRBcnJheSAtPiAoJ2EsICdiLCBCaWdhcnJheS5jX2xheW91dCkgQmlnYXJyYXkuR2VuYXJyYXkudFxuICAgID0gXCJjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXlcIlxuXG4gIG1vZHVsZSBCaWdzdHJpbmcgPSBzdHJ1Y3RcbiAgICB0eXBlIHQgPSAoY2hhciwgQmlnYXJyYXkuaW50OF91bnNpZ25lZF9lbHQsIEJpZ2FycmF5LmNfbGF5b3V0KSBCaWdhcnJheS5BcnJheTEudFxuXG4gICAgZXh0ZXJuYWwgdG9fYXJyYXlCdWZmZXIgOiB0IC0+IGFycmF5QnVmZmVyID0gXCJiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyXCJcblxuICAgIGV4dGVybmFsIHRvX3VpbnQ4QXJyYXkgOiB0IC0+IHVpbnQ4QXJyYXkgPSBcImJpZ3N0cmluZ190b190eXBlZF9hcnJheVwiXG5cbiAgICBleHRlcm5hbCBvZl9hcnJheUJ1ZmZlciA6IGFycmF5QnVmZmVyIC0+IHQgPSBcImJpZ3N0cmluZ19vZl9hcnJheV9idWZmZXJcIlxuXG4gICAgZXh0ZXJuYWwgb2ZfdWludDhBcnJheSA6IHVpbnQ4QXJyYXkgLT4gdCA9IFwiYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5XCJcbiAgZW5kXG5cbiAgZXh0ZXJuYWwgb2ZfdWludDhBcnJheSA6IHVpbnQ4QXJyYXkgLT4gc3RyaW5nID0gXCJjYW1sX3N0cmluZ19vZl9hcnJheVwiXG5lbmRcblxubW9kdWxlIEludDY0ID0gc3RydWN0XG4gIGV4dGVybmFsIGNyZWF0ZV9pbnQ2NF9sb19taV9oaSA6IGludCAtPiBpbnQgLT4gaW50IC0+IEludDY0LnRcbiAgICA9IFwiY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGlcIlxuZW5kXG4iLCIoKiBnZW5lcmF0ZWQgYnkgZHVuZSAqKVxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5DU1MgKilcbm1vZHVsZSBDU1MgPSBKc19vZl9vY2FtbF9fQ1NTXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkRvbSAqKVxubW9kdWxlIERvbSA9IEpzX29mX29jYW1sX19Eb21cblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRG9tX2V2ZW50cyAqKVxubW9kdWxlIERvbV9ldmVudHMgPSBKc19vZl9vY2FtbF9fRG9tX2V2ZW50c1xuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5Eb21faHRtbCAqKVxubW9kdWxlIERvbV9odG1sID0gSnNfb2Zfb2NhbWxfX0RvbV9odG1sXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkRvbV9zdmcgKilcbm1vZHVsZSBEb21fc3ZnID0gSnNfb2Zfb2NhbWxfX0RvbV9zdmdcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRXZlbnRTb3VyY2UgKilcbm1vZHVsZSBFdmVudFNvdXJjZSA9IEpzX29mX29jYW1sX19FdmVudFNvdXJjZVxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5GaWxlICopXG5tb2R1bGUgRmlsZSA9IEpzX29mX29jYW1sX19GaWxlXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkZpcmVidWcgKilcbm1vZHVsZSBGaXJlYnVnID0gSnNfb2Zfb2NhbWxfX0ZpcmVidWdcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRm9ybSAqKVxubW9kdWxlIEZvcm0gPSBKc19vZl9vY2FtbF9fRm9ybVxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5HZW9sb2NhdGlvbiAqKVxubW9kdWxlIEdlb2xvY2F0aW9uID0gSnNfb2Zfb2NhbWxfX0dlb2xvY2F0aW9uXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkltcG9ydCAqKVxubW9kdWxlIEltcG9ydCA9IEpzX29mX29jYW1sX19JbXBvcnRcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgKilcbm1vZHVsZSBJbnRlcnNlY3Rpb25PYnNlcnZlciA9IEpzX29mX29jYW1sX19JbnRlcnNlY3Rpb25PYnNlcnZlclxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5JbnRsICopXG5tb2R1bGUgSW50bCA9IEpzX29mX29jYW1sX19JbnRsXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkpzICopXG5tb2R1bGUgSnMgPSBKc19vZl9vY2FtbF9fSnNcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuSnNvbiAqKVxubW9kdWxlIEpzb24gPSBKc19vZl9vY2FtbF9fSnNvblxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5Kc3RhYmxlICopXG5tb2R1bGUgSnN0YWJsZSA9IEpzX29mX29jYW1sX19Kc3RhYmxlXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkxpYl92ZXJzaW9uICopXG5tb2R1bGUgTGliX3ZlcnNpb24gPSBKc19vZl9vY2FtbF9fTGliX3ZlcnNpb25cblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuTXV0YXRpb25PYnNlcnZlciAqKVxubW9kdWxlIE11dGF0aW9uT2JzZXJ2ZXIgPSBKc19vZl9vY2FtbF9fTXV0YXRpb25PYnNlcnZlclxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5QZXJmb3JtYW5jZU9ic2VydmVyICopXG5tb2R1bGUgUGVyZm9ybWFuY2VPYnNlcnZlciA9IEpzX29mX29jYW1sX19QZXJmb3JtYW5jZU9ic2VydmVyXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLlJlZ2V4cCAqKVxubW9kdWxlIFJlZ2V4cCA9IEpzX29mX29jYW1sX19SZWdleHBcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuUmVzaXplT2JzZXJ2ZXIgKilcbm1vZHVsZSBSZXNpemVPYnNlcnZlciA9IEpzX29mX29jYW1sX19SZXNpemVPYnNlcnZlclxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5TeXNfanMgKilcbm1vZHVsZSBTeXNfanMgPSBKc19vZl9vY2FtbF9fU3lzX2pzXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLlR5cGVkX2FycmF5ICopXG5tb2R1bGUgVHlwZWRfYXJyYXkgPSBKc19vZl9vY2FtbF9fVHlwZWRfYXJyYXlcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuVXJsICopXG5tb2R1bGUgVXJsID0gSnNfb2Zfb2NhbWxfX1VybFxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5XZWJHTCAqKVxubW9kdWxlIFdlYkdMID0gSnNfb2Zfb2NhbWxfX1dlYkdMXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLldlYlNvY2tldHMgKilcbm1vZHVsZSBXZWJTb2NrZXRzID0gSnNfb2Zfb2NhbWxfX1dlYlNvY2tldHNcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuV29ya2VyICopXG5tb2R1bGUgV29ya2VyID0gSnNfb2Zfb2NhbWxfX1dvcmtlclxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5YbWxIdHRwUmVxdWVzdCAqKVxubW9kdWxlIFhtbEh0dHBSZXF1ZXN0ID0gSnNfb2Zfb2NhbWxfX1htbEh0dHBSZXF1ZXN0XG5cbm1vZHVsZSBKc19vZl9vY2FtbF9fID0gc3RydWN0IGVuZFxuW0BAZGVwcmVjYXRlZCBcInRoaXMgbW9kdWxlIGlzIHNoYWRvd2VkXCJdXG4iLCIoKiBKc19vZl9vY2FtbFxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxubW9kdWxlIFBvbHkgPSBzdHJ1Y3RcbiAgZXh0ZXJuYWwgKCA8ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc3RoYW5cIlxuXG4gIGV4dGVybmFsICggPD0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzZXF1YWxcIlxuXG4gIGV4dGVybmFsICggPD4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVub3RlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgKCA9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXF1YWxcIlxuXG4gIGV4dGVybmFsICggPiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJ0aGFuXCJcblxuICBleHRlcm5hbCAoID49ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcmVxdWFsXCJcblxuICBleHRlcm5hbCBjb21wYXJlIDogJ2EgLT4gJ2EgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5cbiAgZXh0ZXJuYWwgZXF1YWwgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXF1YWxcIlxuZW5kXG5cbm1vZHVsZSBJbnRfcmVwbGFjZV9wb2x5bW9ycGhpY19jb21wYXJlID0gc3RydWN0XG4gIGV4dGVybmFsICggPCApIDogaW50IC0+IGludCAtPiBib29sID0gXCIlbGVzc3RoYW5cIlxuXG4gIGV4dGVybmFsICggPD0gKSA6IGludCAtPiBpbnQgLT4gYm9vbCA9IFwiJWxlc3NlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgKCA8PiApIDogaW50IC0+IGludCAtPiBib29sID0gXCIlbm90ZXF1YWxcIlxuXG4gIGV4dGVybmFsICggPSApIDogaW50IC0+IGludCAtPiBib29sID0gXCIlZXF1YWxcIlxuXG4gIGV4dGVybmFsICggPiApIDogaW50IC0+IGludCAtPiBib29sID0gXCIlZ3JlYXRlcnRoYW5cIlxuXG4gIGV4dGVybmFsICggPj0gKSA6IGludCAtPiBpbnQgLT4gYm9vbCA9IFwiJWdyZWF0ZXJlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgY29tcGFyZSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5cbiAgZXh0ZXJuYWwgZXF1YWwgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5cbiAgbGV0IG1heCAoeCA6IGludCkgeSA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbiAgbGV0IG1pbiAoeCA6IGludCkgeSA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5lbmRcblxubW9kdWxlIFN0cmluZyA9IHN0cnVjdFxuICBpbmNsdWRlIFN0cmluZ1xuXG4gIGxldCBlcXVhbCAoeCA6IHN0cmluZykgKHkgOiBzdHJpbmcpID0gUG9seS5lcXVhbCB4IHlcbmVuZFxuXG5tb2R1bGUgQ2hhciA9IHN0cnVjdFxuICBpbmNsdWRlIENoYXJcblxuICBsZXQgZXF1YWwgKHggOiBjaGFyKSAoeSA6IGNoYXIpID0gUG9seS5lcXVhbCB4IHlcbmVuZFxuXG5pbmNsdWRlIEludF9yZXBsYWNlX3BvbHltb3JwaGljX2NvbXBhcmVcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbigqIFRoaXMgbG9jYWwgbW9kdWxlIFtKc10gaXMgbmVlZGVkIHNvIHRoYXQgdGhlIHBweF9qcyBleHRlbnNpb24gd29yayB3aXRoaW4gdGhhdCBmaWxlLiAqKVxubW9kdWxlIEpzID0gc3RydWN0XG4gIHR5cGUgKydhIHRcblxuICB0eXBlICgtJ2EsICsnYikgbWV0aF9jYWxsYmFja1xuXG4gIG1vZHVsZSBVbnNhZmUgPSBzdHJ1Y3RcbiAgICB0eXBlIHRvcFxuXG4gICAgdHlwZSBhbnkgPSB0b3AgdFxuXG4gICAgdHlwZSBhbnlfanNfYXJyYXkgPSBhbnlcblxuICAgIGV4dGVybmFsIGluamVjdCA6ICdhIC0+IGFueSA9IFwiJWlkZW50aXR5XCJcblxuICAgIGV4dGVybmFsIGNvZXJjZSA6IF8gdCAtPiBfIHQgPSBcIiVpZGVudGl0eVwiXG5cbiAgICBleHRlcm5hbCBnZXQgOiAnYSAtPiAnYiAtPiAnYyA9IFwiY2FtbF9qc19nZXRcIlxuXG4gICAgZXh0ZXJuYWwgc2V0IDogJ2EgLT4gJ2IgLT4gJ2MgLT4gdW5pdCA9IFwiY2FtbF9qc19zZXRcIlxuXG4gICAgZXh0ZXJuYWwgZGVsZXRlIDogJ2EgLT4gJ2IgLT4gdW5pdCA9IFwiY2FtbF9qc19kZWxldGVcIlxuXG4gICAgZXh0ZXJuYWwgY2FsbCA6ICdhIC0+ICdiIC0+IGFueSBhcnJheSAtPiAnYyA9IFwiY2FtbF9qc19jYWxsXCJcblxuICAgIGV4dGVybmFsIGZ1bl9jYWxsIDogJ2EgLT4gYW55IGFycmF5IC0+ICdiID0gXCJjYW1sX2pzX2Z1bl9jYWxsXCJcblxuICAgIGV4dGVybmFsIG1ldGhfY2FsbCA6ICdhIC0+IHN0cmluZyAtPiBhbnkgYXJyYXkgLT4gJ2IgPSBcImNhbWxfanNfbWV0aF9jYWxsXCJcblxuICAgIGV4dGVybmFsIG5ld19vYmogOiAnYSAtPiBhbnkgYXJyYXkgLT4gJ2IgPSBcImNhbWxfanNfbmV3XCJcblxuICAgIGV4dGVybmFsIG5ld19vYmpfYXJyIDogJ2EgLT4gYW55X2pzX2FycmF5IC0+ICdiID0gXCJjYW1sX29qc19uZXdfYXJyXCJcblxuICAgIGV4dGVybmFsIG9iaiA6IChzdHJpbmcgKiBhbnkpIGFycmF5IC0+ICdhID0gXCJjYW1sX2pzX29iamVjdFwiXG5cbiAgICBleHRlcm5hbCBlcXVhbHMgOiAnYSAtPiAnYiAtPiBib29sID0gXCJjYW1sX2pzX2VxdWFsc1wiXG5cbiAgICBleHRlcm5hbCBwdXJlX2V4cHIgOiAodW5pdCAtPiAnYSkgLT4gJ2EgPSBcImNhbWxfanNfcHVyZV9leHByXCJcblxuICAgIGV4dGVybmFsIGV2YWxfc3RyaW5nIDogc3RyaW5nIC0+ICdhID0gXCJjYW1sX2pzX2V2YWxfc3RyaW5nXCJcblxuICAgIGV4dGVybmFsIGpzX2V4cHIgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfanNfZXhwclwiXG5cbiAgICBleHRlcm5hbCBwdXJlX2pzX2V4cHIgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfcHVyZV9qc19leHByXCJcblxuICAgIGxldCBnbG9iYWwgPSBwdXJlX2pzX2V4cHIgXCJnbG9iYWxUaGlzXCJcblxuICAgIGV4dGVybmFsIGNhbGxiYWNrIDogKCdhIC0+ICdiKSAtPiAoJ2MsICdhIC0+ICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgICA9IFwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3Vuc2FmZVwiXG5cbiAgICBleHRlcm5hbCBjYWxsYmFja193aXRoX2FyZ3VtZW50cyA6XG4gICAgICAoYW55X2pzX2FycmF5IC0+ICdiKSAtPiAoJ2MsIGFueV9qc19hcnJheSAtPiAnYikgbWV0aF9jYWxsYmFja1xuICAgICAgPSBcImNhbWxfanNfd3JhcF9jYWxsYmFja19hcmd1bWVudHNcIlxuXG4gICAgZXh0ZXJuYWwgY2FsbGJhY2tfd2l0aF9hcml0eSA6IGludCAtPiAoJ2EgLT4gJ2IpIC0+ICgnYywgJ2EgLT4gJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0XCJcblxuICAgIGV4dGVybmFsIG1ldGhfY2FsbGJhY2sgOiAoJ2IgLT4gJ2EpIC0+ICgnYiwgJ2EpIG1ldGhfY2FsbGJhY2tcbiAgICAgID0gXCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmVcIlxuXG4gICAgZXh0ZXJuYWwgbWV0aF9jYWxsYmFja193aXRoX2FyaXR5IDogaW50IC0+ICgnYiAtPiAnYSkgLT4gKCdiLCAnYSkgbWV0aF9jYWxsYmFja1xuICAgICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdFwiXG5cbiAgICBleHRlcm5hbCBtZXRoX2NhbGxiYWNrX3dpdGhfYXJndW1lbnRzIDpcbiAgICAgICgnYiAtPiBhbnlfanNfYXJyYXkgLT4gJ2EpIC0+ICgnYiwgYW55X2pzX2FycmF5IC0+ICdhKSBtZXRoX2NhbGxiYWNrXG4gICAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzXCJcblxuICAgICgqIERFUFJFQ0FURUQgKilcbiAgICBleHRlcm5hbCB2YXJpYWJsZSA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9qc192YXJcIlxuICBlbmRcblxuICAoKioqKilcblxuICB0eXBlICdhIG9wdCA9ICdhXG5cbiAgdHlwZSAnYSBvcHRkZWYgPSAnYVxuXG4gIGV4dGVybmFsIGRlYnVnZ2VyIDogdW5pdCAtPiB1bml0ID0gXCJkZWJ1Z2dlclwiXG5cbiAgbGV0IG51bGwgOiAnYSBvcHQgPSBVbnNhZmUucHVyZV9qc19leHByIFwibnVsbFwiXG5cbiAgZXh0ZXJuYWwgc29tZSA6ICdhIC0+ICdhIG9wdCA9IFwiJWlkZW50aXR5XCJcblxuICBsZXQgdW5kZWZpbmVkIDogJ2Egb3B0ZGVmID0gVW5zYWZlLnB1cmVfanNfZXhwciBcInVuZGVmaW5lZFwiXG5cbiAgZXh0ZXJuYWwgZGVmIDogJ2EgLT4gJ2Egb3B0ZGVmID0gXCIlaWRlbnRpdHlcIlxuXG4gIG1vZHVsZSB0eXBlIE9QVCA9IHNpZ1xuICAgIHR5cGUgJ2EgdFxuXG4gICAgdmFsIGVtcHR5IDogJ2EgdFxuXG4gICAgdmFsIHJldHVybiA6ICdhIC0+ICdhIHRcblxuICAgIHZhbCBtYXAgOiAnYSB0IC0+ICgnYSAtPiAnYikgLT4gJ2IgdFxuXG4gICAgdmFsIGJpbmQgOiAnYSB0IC0+ICgnYSAtPiAnYiB0KSAtPiAnYiB0XG5cbiAgICB2YWwgdGVzdCA6ICdhIHQgLT4gYm9vbFxuXG4gICAgdmFsIGl0ZXIgOiAnYSB0IC0+ICgnYSAtPiB1bml0KSAtPiB1bml0XG5cbiAgICB2YWwgY2FzZSA6ICdhIHQgLT4gKHVuaXQgLT4gJ2IpIC0+ICgnYSAtPiAnYikgLT4gJ2JcblxuICAgIHZhbCBnZXQgOiAnYSB0IC0+ICh1bml0IC0+ICdhKSAtPiAnYVxuXG4gICAgdmFsIG9wdGlvbiA6ICdhIG9wdGlvbiAtPiAnYSB0XG5cbiAgICB2YWwgdG9fb3B0aW9uIDogJ2EgdCAtPiAnYSBvcHRpb25cbiAgZW5kXG5cbiAgbW9kdWxlIE9wdCA6IE9QVCB3aXRoIHR5cGUgJ2EgdCA9ICdhIG9wdCA9IHN0cnVjdFxuICAgIHR5cGUgJ2EgdCA9ICdhIG9wdFxuXG4gICAgbGV0IGVtcHR5ID0gbnVsbFxuXG4gICAgbGV0IHJldHVybiA9IHNvbWVcblxuICAgIGxldCBtYXAgeCBmID0gaWYgVW5zYWZlLmVxdWFscyB4IG51bGwgdGhlbiBudWxsIGVsc2UgcmV0dXJuIChmIHgpXG5cbiAgICBsZXQgYmluZCB4IGYgPSBpZiBVbnNhZmUuZXF1YWxzIHggbnVsbCB0aGVuIG51bGwgZWxzZSBmIHhcblxuICAgIGxldCB0ZXN0IHggPSBub3QgKFVuc2FmZS5lcXVhbHMgeCBudWxsKVxuXG4gICAgbGV0IGl0ZXIgeCBmID0gaWYgbm90IChVbnNhZmUuZXF1YWxzIHggbnVsbCkgdGhlbiBmIHhcblxuICAgIGxldCBjYXNlIHggZiBnID0gaWYgVW5zYWZlLmVxdWFscyB4IG51bGwgdGhlbiBmICgpIGVsc2UgZyB4XG5cbiAgICBsZXQgZ2V0IHggZiA9IGlmIFVuc2FmZS5lcXVhbHMgeCBudWxsIHRoZW4gZiAoKSBlbHNlIHhcblxuICAgIGxldCBvcHRpb24geCA9XG4gICAgICBtYXRjaCB4IHdpdGhcbiAgICAgIHwgTm9uZSAtPiBlbXB0eVxuICAgICAgfCBTb21lIHggLT4gcmV0dXJuIHhcblxuICAgIGxldCB0b19vcHRpb24geCA9IGNhc2UgeCAoZnVuICgpIC0+IE5vbmUpIChmdW4geCAtPiBTb21lIHgpXG4gIGVuZFxuXG4gIG1vZHVsZSBPcHRkZWYgOiBPUFQgd2l0aCB0eXBlICdhIHQgPSAnYSBvcHRkZWYgPSBzdHJ1Y3RcbiAgICB0eXBlICdhIHQgPSAnYSBvcHRkZWZcblxuICAgIGxldCBlbXB0eSA9IHVuZGVmaW5lZFxuXG4gICAgbGV0IHJldHVybiA9IGRlZlxuXG4gICAgbGV0IG1hcCB4IGYgPSBpZiB4ID09IHVuZGVmaW5lZCB0aGVuIHVuZGVmaW5lZCBlbHNlIHJldHVybiAoZiB4KVxuXG4gICAgbGV0IGJpbmQgeCBmID0gaWYgeCA9PSB1bmRlZmluZWQgdGhlbiB1bmRlZmluZWQgZWxzZSBmIHhcblxuICAgIGxldCB0ZXN0IHggPSB4ICE9IHVuZGVmaW5lZFxuXG4gICAgbGV0IGl0ZXIgeCBmID0gaWYgeCAhPSB1bmRlZmluZWQgdGhlbiBmIHhcblxuICAgIGxldCBjYXNlIHggZiBnID0gaWYgeCA9PSB1bmRlZmluZWQgdGhlbiBmICgpIGVsc2UgZyB4XG5cbiAgICBsZXQgZ2V0IHggZiA9IGlmIHggPT0gdW5kZWZpbmVkIHRoZW4gZiAoKSBlbHNlIHhcblxuICAgIGxldCBvcHRpb24geCA9XG4gICAgICBtYXRjaCB4IHdpdGhcbiAgICAgIHwgTm9uZSAtPiBlbXB0eVxuICAgICAgfCBTb21lIHggLT4gcmV0dXJuIHhcblxuICAgIGxldCB0b19vcHRpb24geCA9IGNhc2UgeCAoZnVuICgpIC0+IE5vbmUpIChmdW4geCAtPiBTb21lIHgpXG4gIGVuZFxuXG4gICgqKioqKVxuXG4gIGxldCBjb2VyY2UgeCBmIGcgPSBPcHQuZ2V0IChmIHgpIChmdW4gKCkgLT4gZyB4KVxuXG4gIGxldCBjb2VyY2Vfb3B0IHggZiBnID0gT3B0LmdldCAoT3B0LmJpbmQgeCBmKSAoZnVuICgpIC0+IGcgeClcblxuICAoKioqKilcblxuICB0eXBlICsnYSBtZXRoXG5cbiAgdHlwZSArJ2EgZ2VuX3Byb3BcblxuICB0eXBlICdhIHJlYWRvbmx5X3Byb3AgPSA8IGdldCA6ICdhID4gZ2VuX3Byb3BcblxuICB0eXBlICdhIHdyaXRlb25seV9wcm9wID0gPCBzZXQgOiAnYSAtPiB1bml0ID4gZ2VuX3Byb3BcblxuICB0eXBlICdhIHByb3AgPSA8IGdldCA6ICdhIDsgc2V0IDogJ2EgLT4gdW5pdCA+IGdlbl9wcm9wXG5cbiAgdHlwZSAnYSBvcHRkZWZfcHJvcCA9IDwgZ2V0IDogJ2Egb3B0ZGVmIDsgc2V0IDogJ2EgLT4gdW5pdCA+IGdlbl9wcm9wXG5cbiAgdHlwZSArJ2EgY29uc3RyXG5cbiAgKCoqKiopXG5cbiAgdHlwZSAnYSBjYWxsYmFjayA9ICh1bml0LCAnYSkgbWV0aF9jYWxsYmFja1xuXG4gIGV4dGVybmFsIHdyYXBfY2FsbGJhY2sgOiAoJ2EgLT4gJ2IpIC0+ICgnYywgJ2EgLT4gJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX2NhbGxiYWNrXCJcblxuICBleHRlcm5hbCB3cmFwX21ldGhfY2FsbGJhY2sgOiAoJ2EgLT4gJ2IpIC0+ICgnYSwgJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tcIlxuXG4gICgqKioqKVxuXG4gIGxldCBfdHJ1ZSA9IFVuc2FmZS5wdXJlX2pzX2V4cHIgXCJ0cnVlXCJcblxuICBsZXQgX2ZhbHNlID0gVW5zYWZlLnB1cmVfanNfZXhwciBcImZhbHNlXCJcblxuICB0eXBlIG1hdGNoX3Jlc3VsdF9oYW5kbGVcblxuICB0eXBlIHN0cmluZ19hcnJheVxuXG4gIGNsYXNzIHR5cGUganNfc3RyaW5nID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHZhbHVlT2YgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBjaGFyQXQgOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgY2hhckNvZGVBdCA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICAgICgqIFRoaXMgbWF5IHJldHVybiBOYU4uLi4gKilcbiAgICAgIG1ldGhvZCBjb25jYXQgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBjb25jYXRfMiA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIGNvbmNhdF8zIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgY29uY2F0XzQgOlxuICAgICAgICBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBpbmRleE9mIDoganNfc3RyaW5nIHQgLT4gaW50IG1ldGhcblxuICAgICAgbWV0aG9kIGluZGV4T2ZfZnJvbSA6IGpzX3N0cmluZyB0IC0+IGludCAtPiBpbnQgbWV0aFxuXG4gICAgICBtZXRob2QgbGFzdEluZGV4T2YgOiBqc19zdHJpbmcgdCAtPiBpbnQgbWV0aFxuXG4gICAgICBtZXRob2QgbGFzdEluZGV4T2ZfZnJvbSA6IGpzX3N0cmluZyB0IC0+IGludCAtPiBpbnQgbWV0aFxuXG4gICAgICBtZXRob2QgbG9jYWxlQ29tcGFyZSA6IGpzX3N0cmluZyB0IC0+IGZsb2F0IG1ldGhcblxuICAgICAgbWV0aG9kIF9tYXRjaCA6IHJlZ0V4cCB0IC0+IG1hdGNoX3Jlc3VsdF9oYW5kbGUgdCBvcHQgbWV0aFxuXG4gICAgICBtZXRob2Qgbm9ybWFsaXplIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2Qgbm9ybWFsaXplX2Zvcm0gOiBub3JtYWxpemF0aW9uIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgcmVwbGFjZSA6IHJlZ0V4cCB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHJlcGxhY2Vfc3RyaW5nIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc2VhcmNoIDogcmVnRXhwIHQgLT4gaW50IG1ldGhcblxuICAgICAgbWV0aG9kIHNsaWNlIDogaW50IC0+IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzbGljZV9lbmQgOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc3BsaXQgOiBqc19zdHJpbmcgdCAtPiBzdHJpbmdfYXJyYXkgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzcGxpdF9saW1pdGVkIDoganNfc3RyaW5nIHQgLT4gaW50IC0+IHN0cmluZ19hcnJheSB0IG1ldGhcblxuICAgICAgbWV0aG9kIHNwbGl0X3JlZ0V4cCA6IHJlZ0V4cCB0IC0+IHN0cmluZ19hcnJheSB0IG1ldGhcblxuICAgICAgbWV0aG9kIHNwbGl0X3JlZ0V4cExpbWl0ZWQgOiByZWdFeHAgdCAtPiBpbnQgLT4gc3RyaW5nX2FycmF5IHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc3Vic3RyaW5nIDogaW50IC0+IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzdWJzdHJpbmdfdG9FbmQgOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgdG9Mb3dlckNhc2UgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB0b0xvY2FsZUxvd2VyQ2FzZSA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHRvVXBwZXJDYXNlIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgdG9Mb2NhbGVVcHBlckNhc2UgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB0cmltIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgICBlbmRcblxuICBhbmQgcmVnRXhwID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBleGVjIDoganNfc3RyaW5nIHQgLT4gbWF0Y2hfcmVzdWx0X2hhbmRsZSB0IG9wdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB0ZXN0IDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc291cmNlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgZ2xvYmFsIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGlnbm9yZUNhc2UgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgbXVsdGlsaW5lIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGxhc3RJbmRleCA6IGludCBwcm9wXG4gICAgZW5kXG5cbiAgYW5kIG5vcm1hbGl6YXRpb24gPSBqc19zdHJpbmdcblxuICAoKiBzdHJpbmcgaXMgdXNlZCBieSBwcHhfanMsIGl0IG5lZWRzIHRvIGNvbWUgYmVmb3JlIGFueSB1c2Ugb2YgdGhlXG4gICAgIG5ldyBzeW50YXggaW4gdGhpcyBmaWxlICopXG4gIGV4dGVybmFsIHN0cmluZyA6IHN0cmluZyAtPiBqc19zdHJpbmcgdCA9IFwiY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcIlxuXG4gIGV4dGVybmFsIHRvX3N0cmluZyA6IGpzX3N0cmluZyB0IC0+IHN0cmluZyA9IFwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcIlxuXG4gIGxldCBuZmMgPSBzdHJpbmcgXCJORkNcIlxuXG4gIGxldCBuZmQgPSBzdHJpbmcgXCJORkRcIlxuXG4gIGxldCBuZmtjID0gc3RyaW5nIFwiTkZLQ1wiXG5cbiAgbGV0IG5ma2QgPSBzdHJpbmcgXCJORktEXCJcbmVuZFxuXG5pbmNsdWRlIEpzXG5cbmNsYXNzIHR5cGUgc3RyaW5nX2NvbnN0ciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBmcm9tQ2hhckNvZGUgOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxubGV0IHN0cmluZ19jb25zdHIgPSBVbnNhZmUuZ2xvYmFsIyMuX1N0cmluZ1xuXG5sZXQgcmVnRXhwID0gVW5zYWZlLmdsb2JhbCMjLl9SZWdFeHBcblxubGV0IHJlZ0V4cF9jb3B5ID0gcmVnRXhwXG5cbmxldCByZWdFeHBfd2l0aEZsYWdzID0gcmVnRXhwXG5cbmNsYXNzIHR5cGUgWydhXSBqc19hcnJheSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0xvY2FsZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBjb25jYXQgOiAnYSBqc19hcnJheSB0IC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIGpvaW4gOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgcG9wIDogJ2Egb3B0ZGVmIG1ldGhcblxuICAgIG1ldGhvZCBwdXNoIDogJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBwdXNoXzIgOiAnYSAtPiAnYSAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHB1c2hfMyA6ICdhIC0+ICdhIC0+ICdhIC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgcHVzaF80IDogJ2EgLT4gJ2EgLT4gJ2EgLT4gJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCByZXZlcnNlIDogJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2hpZnQgOiAnYSBvcHRkZWYgbWV0aFxuXG4gICAgbWV0aG9kIHNsaWNlIDogaW50IC0+IGludCAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzbGljZV9lbmQgOiBpbnQgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc29ydCA6ICgnYSAtPiAnYSAtPiBmbG9hdCkgY2FsbGJhY2sgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc29ydF9hc1N0cmluZ3MgOiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzcGxpY2UgOiBpbnQgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNwbGljZV8xIDogaW50IC0+IGludCAtPiAnYSAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzcGxpY2VfMiA6IGludCAtPiBpbnQgLT4gJ2EgLT4gJ2EgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc3BsaWNlXzMgOiBpbnQgLT4gaW50IC0+ICdhIC0+ICdhIC0+ICdhIC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNwbGljZV80IDogaW50IC0+IGludCAtPiAnYSAtPiAnYSAtPiAnYSAtPiAnYSAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCB1bnNoaWZ0IDogJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCB1bnNoaWZ0XzIgOiAnYSAtPiAnYSAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHVuc2hpZnRfMyA6ICdhIC0+ICdhIC0+ICdhIC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgdW5zaGlmdF80IDogJ2EgLT4gJ2EgLT4gJ2EgLT4gJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBzb21lIDogKCdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+IGJvb2wgdCkgY2FsbGJhY2sgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBldmVyeSA6ICgnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiBib29sIHQpIGNhbGxiYWNrIC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZm9yRWFjaCA6ICgnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiB1bml0KSBjYWxsYmFjayAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBtYXAgOiAoJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gJ2IpIGNhbGxiYWNrIC0+ICdiIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbHRlciA6ICgnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiBib29sIHQpIGNhbGxiYWNrIC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlZHVjZV9pbml0IDpcbiAgICAgICgnYiAtPiAnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiAnYikgY2FsbGJhY2sgLT4gJ2IgLT4gJ2IgbWV0aFxuXG4gICAgbWV0aG9kIHJlZHVjZSA6ICgnYSAtPiAnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiAnYSkgY2FsbGJhY2sgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIHJlZHVjZVJpZ2h0X2luaXQgOlxuICAgICAgKCdiIC0+ICdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+ICdiKSBjYWxsYmFjayAtPiAnYiAtPiAnYiBtZXRoXG5cbiAgICBtZXRob2QgcmVkdWNlUmlnaHQgOiAoJ2EgLT4gJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gJ2EpIGNhbGxiYWNrIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcHJvcFxuICBlbmRcblxubGV0IG9iamVjdF9jb25zdHJ1Y3RvciA9IFVuc2FmZS5nbG9iYWwjIy5fT2JqZWN0XG5cbmxldCBvYmplY3Rfa2V5cyBvIDoganNfc3RyaW5nIHQganNfYXJyYXkgdCA9IG9iamVjdF9jb25zdHJ1Y3RvciMja2V5cyBvXG5cbmxldCBhcnJheV9jb25zdHJ1Y3RvciA9IFVuc2FmZS5nbG9iYWwjIy5fQXJyYXlcblxubGV0IGFycmF5X2VtcHR5ID0gYXJyYXlfY29uc3RydWN0b3JcblxubGV0IGFycmF5X2xlbmd0aCA9IGFycmF5X2NvbnN0cnVjdG9yXG5cbmxldCBhcnJheV9nZXQgOiAnYSAjanNfYXJyYXkgdCAtPiBpbnQgLT4gJ2Egb3B0ZGVmID0gVW5zYWZlLmdldFxuXG5sZXQgYXJyYXlfc2V0IDogJ2EgI2pzX2FycmF5IHQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBVbnNhZmUuc2V0XG5cbmxldCBhcnJheV9tYXBfcG9seSA6XG4gICAgJ2EgI2pzX2FycmF5IHQgLT4gKCdhIC0+IGludCAtPiAnYSAjanNfYXJyYXkgdCAtPiAnYikgY2FsbGJhY2sgLT4gJ2IgI2pzX2FycmF5IHQgPVxuIGZ1biBhIGNiIC0+IChVbnNhZmUuY29lcmNlIGEpIyNtYXAgY2JcblxubGV0IGFycmF5X21hcCBmIGEgPSBhcnJheV9tYXBfcG9seSBhICh3cmFwX2NhbGxiYWNrIChmdW4geCBfaWR4IF8gLT4gZiB4KSlcblxubGV0IGFycmF5X21hcGkgZiBhID0gYXJyYXlfbWFwX3BvbHkgYSAod3JhcF9jYWxsYmFjayAoZnVuIHggaWR4IF8gLT4gZiBpZHggeCkpXG5cbmNsYXNzIHR5cGUgbWF0Y2hfcmVzdWx0ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbanNfc3RyaW5nIHRdIGpzX2FycmF5XG5cbiAgICBtZXRob2QgaW5kZXggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlucHV0IDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHN0cl9hcnJheSA6IHN0cmluZ19hcnJheSB0IC0+IGpzX3N0cmluZyB0IGpzX2FycmF5IHQgPSBVbnNhZmUuY29lcmNlXG5cbmxldCBtYXRjaF9yZXN1bHQgOiBtYXRjaF9yZXN1bHRfaGFuZGxlIHQgLT4gbWF0Y2hfcmVzdWx0IHQgPSBVbnNhZmUuY29lcmNlXG5cbmNsYXNzIHR5cGUgbnVtYmVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvU3RyaW5nX3JhZGl4IDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0xvY2FsZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0ZpeGVkIDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0V4cG9uZW50aWFsIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvRXhwb25lbnRpYWxfZGlnaXRzIDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b1ByZWNpc2lvbiA6IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG4gIGVuZFxuXG5leHRlcm5hbCBudW1iZXJfb2ZfZmxvYXQgOiBmbG9hdCAtPiBudW1iZXIgdCA9IFwiY2FtbF9qc19mcm9tX2Zsb2F0XCJcblxuZXh0ZXJuYWwgZmxvYXRfb2ZfbnVtYmVyIDogbnVtYmVyIHQgLT4gZmxvYXQgPSBcImNhbWxfanNfdG9fZmxvYXRcIlxuXG5jbGFzcyB0eXBlIGRhdGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdG9TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9EYXRlU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvVGltZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0xvY2FsZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0xvY2FsZURhdGVTdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9Mb2NhbGVUaW1lU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHZhbHVlT2YgOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VGltZSA6IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRGdWxsWWVhciA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDRnVsbFllYXIgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldE1vbnRoIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENNb250aCA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RGF0ZSA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDRGF0ZSA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RGF5IDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENEYXkgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEhvdXJzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENIb3VycyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0TWludXRlcyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDTWludXRlcyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U2Vjb25kcyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDU2Vjb25kcyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0TWlsbGlzZWNvbmRzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENNaWxsaXNlY29uZHMgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFRpbWV6b25lT2Zmc2V0IDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBzZXRUaW1lIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEZ1bGxZZWFyIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENGdWxsWWVhciA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0TW9udGggOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ01vbnRoIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXREYXRlIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENEYXRlIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXREYXkgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ0RheSA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SG91cnMgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ0hvdXJzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRNaW51dGVzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENNaW51dGVzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRTZWNvbmRzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENTZWNvbmRzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRNaWxsaXNlY29uZHMgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ01pbGxpc2Vjb25kcyA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgdG9VVENTdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9JU09TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9KU09OIDogJ2EgLT4ganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSBkYXRlX2NvbnN0ciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwYXJzZSA6IGpzX3N0cmluZyB0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBfVVRDX21vbnRoIDogaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgX1VUQ19kYXkgOiBpbnQgLT4gaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBfVVRDX2hvdXIgOiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIF9VVENfbWluIDogaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgX1VUQ19zZWMgOiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgX1VUQ19tcyA6IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgbm93IDogZmxvYXQgbWV0aFxuICBlbmRcblxubGV0IGRhdGVfY29uc3RyID0gVW5zYWZlLmdsb2JhbCMjLl9EYXRlXG5cbmxldCBkYXRlIDogZGF0ZV9jb25zdHIgdCA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX25vdyA6IGRhdGUgdCBjb25zdHIgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9mcm9tVGltZVZhbHVlIDogKGZsb2F0IC0+IGRhdGUgdCkgY29uc3RyID0gZGF0ZV9jb25zdHJcblxubGV0IGRhdGVfbW9udGggOiAoaW50IC0+IGludCAtPiBkYXRlIHQpIGNvbnN0ciA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX2RheSA6IChpbnQgLT4gaW50IC0+IGludCAtPiBkYXRlIHQpIGNvbnN0ciA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX2hvdXIgOiAoaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGRhdGUgdCkgY29uc3RyID0gZGF0ZV9jb25zdHJcblxubGV0IGRhdGVfbWluIDogKGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZGF0ZSB0KSBjb25zdHIgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9zZWMgOiAoaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZGF0ZSB0KSBjb25zdHIgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9tcyA6IChpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZGF0ZSB0KSBjb25zdHIgPVxuICBkYXRlX2NvbnN0clxuXG5jbGFzcyB0eXBlIG1hdGggPVxuICBvYmplY3RcbiAgICBtZXRob2QgX0UgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xOMiA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTE4xMCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTE9HMkUgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xPRzEwRSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUEkgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NRUlQxXzJfIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TUVJUMiA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhYnMgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgYWNvcyA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBhc2luIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGF0YW4gOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgY2VpbCA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBjb3MgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZXhwIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGZsb29yIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGxvZyA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBtYXggOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgbWF4XzMgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgbWF4XzQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgbWluIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIG1pbl8zIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIG1pbl80IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHBvdyA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCByYW5kb20gOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgcm91bmQgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2luIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNxcnQgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgdGFuIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuICBlbmRcblxubGV0IG1hdGggPSBVbnNhZmUuZ2xvYmFsIyMuX01hdGhcblxuY2xhc3MgdHlwZSBlcnJvciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1lc3NhZ2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3RhY2sgOiBqc19zdHJpbmcgdCBvcHRkZWYgcHJvcFxuXG4gICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxubGV0IGVycm9yX2NvbnN0ciA9IFVuc2FmZS5nbG9iYWwjIy5fRXJyb3JcblxubW9kdWxlIEpzX2Vycm9yID0gc3RydWN0XG4gIHR5cGUgZXJyb3JfdCA9IGVycm9yIHRcblxuICBpbmNsdWRlIEpzb29fcnVudGltZS5FcnJvclxuXG4gIGV4dGVybmFsIG9mX2Vycm9yIDogZXJyb3JfdCAtPiB0ID0gXCIlaWRlbnRpdHlcIlxuXG4gIGV4dGVybmFsIHRvX2Vycm9yIDogdCAtPiBlcnJvcl90ID0gXCIlaWRlbnRpdHlcIlxuXG4gIGxldCBuYW1lIGUgPSB0b19zdHJpbmcgKHRvX2Vycm9yIGUpIyMubmFtZVxuXG4gIGxldCBtZXNzYWdlIGUgPSB0b19zdHJpbmcgKHRvX2Vycm9yIGUpIyMubWVzc2FnZVxuXG4gIGxldCBzdGFjayAoZSA6IHQpIDogc3RyaW5nIG9wdGlvbiA9XG4gICAgT3B0LnRvX29wdGlvbiAoT3B0Lm1hcCAodG9fZXJyb3IgZSkjIy5zdGFjayB0b19zdHJpbmcpXG5cbiAgbGV0IHRvX3N0cmluZyBlID0gdG9fc3RyaW5nICh0b19lcnJvciBlKSMjdG9TdHJpbmdcbmVuZFxuXG5tb2R1bGUgTWFnaWMgPSBzdHJ1Y3RcbiAgbW9kdWxlIHR5cGUgVCA9IHNpZ1xuICAgIGV4Y2VwdGlvbiBFcnJvciBvZiBlcnJvciB0XG4gIGVuZFxuXG4gIHR5cGUgKCdhLCAnYikgZXEgPSBFcSA6ICgnYSwgJ2EpIGVxXG5cbiAgbGV0IChlcSA6IChlcnJvciB0LCBKc19lcnJvci50KSBlcSkgPSBPYmoubWFnaWMgRXFcblxuICBsZXQgbSA9XG4gICAgbWF0Y2ggZXEgd2l0aFxuICAgIHwgRXEgLT5cbiAgICAgICAgKG1vZHVsZSBzdHJ1Y3RcbiAgICAgICAgICBleGNlcHRpb24gRXJyb3IgPSBKc19lcnJvci5FeG5cbiAgICAgICAgZW5kIDogVClcblxuICBtb2R1bGUgRXJyb3IgPSAodmFsIG0gOiBUKVxuZW5kXG5cbmluY2x1ZGUgTWFnaWMuRXJyb3JcblxubGV0IHJhaXNlX2pzX2Vycm9yIGUgPSBKc19lcnJvci5yYWlzZV8gKEpzX2Vycm9yLm9mX2Vycm9yIGUpXG5cbmxldCBzdHJpbmdfb2ZfZXJyb3IgZSA9IEpzX2Vycm9yLnRvX3N0cmluZyAoSnNfZXJyb3Iub2ZfZXJyb3IgZSlcblxubGV0IGV4bl93aXRoX2pzX2JhY2t0cmFjZSA9IEpzX2Vycm9yLmF0dGFjaF9qc19iYWNrdHJhY2VcblxuZXh0ZXJuYWwganNfZXJyb3Jfb2ZfZXhuIDogZXhuIC0+IGVycm9yIHQgb3B0ID0gXCJjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvblwiXG5cbmNsYXNzIHR5cGUganNvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwYXJzZSA6IGpzX3N0cmluZyB0IC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBzdHJpbmdpZnkgOiAnYSAtPiBqc19zdHJpbmcgdCBtZXRoXG4gIGVuZFxuXG5sZXQgX0pTT04gOiBqc29uIHQgPSBVbnNhZmUuZ2xvYmFsIyMuX0pTT05cblxubGV0IGRlY29kZVVSSSAocyA6IGpzX3N0cmluZyB0KSA6IGpzX3N0cmluZyB0ID1cbiAgVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5kZWNvZGVVUkkgW3wgVW5zYWZlLmluamVjdCBzIHxdXG5cbmxldCBkZWNvZGVVUklDb21wb25lbnQgKHMgOiBqc19zdHJpbmcgdCkgOiBqc19zdHJpbmcgdCA9XG4gIFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMuZGVjb2RlVVJJQ29tcG9uZW50IFt8IFVuc2FmZS5pbmplY3QgcyB8XVxuXG5sZXQgZW5jb2RlVVJJIChzIDoganNfc3RyaW5nIHQpIDoganNfc3RyaW5nIHQgPVxuICBVbnNhZmUuZnVuX2NhbGwgVW5zYWZlLmdsb2JhbCMjLmVuY29kZVVSSSBbfCBVbnNhZmUuaW5qZWN0IHMgfF1cblxubGV0IGVuY29kZVVSSUNvbXBvbmVudCAocyA6IGpzX3N0cmluZyB0KSA6IGpzX3N0cmluZyB0ID1cbiAgVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5lbmNvZGVVUklDb21wb25lbnQgW3wgVW5zYWZlLmluamVjdCBzIHxdXG5cbmxldCBlc2NhcGUgKHMgOiBqc19zdHJpbmcgdCkgOiBqc19zdHJpbmcgdCA9XG4gIFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMuZXNjYXBlIFt8IFVuc2FmZS5pbmplY3QgcyB8XVxuXG5sZXQgdW5lc2NhcGUgKHMgOiBqc19zdHJpbmcgdCkgOiBqc19zdHJpbmcgdCA9XG4gIFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMudW5lc2NhcGUgW3wgVW5zYWZlLmluamVjdCBzIHxdXG5cbmV4dGVybmFsIGJvb2wgOiBib29sIC0+IGJvb2wgdCA9IFwiY2FtbF9qc19mcm9tX2Jvb2xcIlxuXG5leHRlcm5hbCB0b19ib29sIDogYm9vbCB0IC0+IGJvb2wgPSBcImNhbWxfanNfdG9fYm9vbFwiXG5cbmV4dGVybmFsIGFycmF5IDogJ2EgYXJyYXkgLT4gJ2EganNfYXJyYXkgdCA9IFwiY2FtbF9qc19mcm9tX2FycmF5XCJcblxuZXh0ZXJuYWwgdG9fYXJyYXkgOiAnYSBqc19hcnJheSB0IC0+ICdhIGFycmF5ID0gXCJjYW1sX2pzX3RvX2FycmF5XCJcblxuZXh0ZXJuYWwgYnl0ZXN0cmluZyA6IHN0cmluZyAtPiBqc19zdHJpbmcgdCA9IFwiY2FtbF9qc2J5dGVzX29mX3N0cmluZ1wiXG5cbmV4dGVybmFsIHRvX2J5dGVzdHJpbmcgOiBqc19zdHJpbmcgdCAtPiBzdHJpbmcgPSBcImNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcIlxuXG5leHRlcm5hbCB0eXBlb2YgOiBfIHQgLT4ganNfc3RyaW5nIHQgPSBcImNhbWxfanNfdHlwZW9mXCJcblxuZXh0ZXJuYWwgaW5zdGFuY2VvZiA6IF8gdCAtPiBfIGNvbnN0ciAtPiBib29sID0gXCJjYW1sX2pzX2luc3RhbmNlb2ZcIlxuXG5sZXQgaXNOYU4gKGkgOiAnYSkgOiBib29sID1cbiAgdG9fYm9vbCAoVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5pc05hTiBbfCBVbnNhZmUuaW5qZWN0IGkgfF0pXG5cbmxldCBwYXJzZUludCAocyA6IGpzX3N0cmluZyB0KSA6IGludCA9XG4gIGxldCBzID0gVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5wYXJzZUludCBbfCBVbnNhZmUuaW5qZWN0IHMgfF0gaW5cbiAgaWYgaXNOYU4gcyB0aGVuIGZhaWx3aXRoIFwicGFyc2VJbnRcIiBlbHNlIHNcblxubGV0IHBhcnNlRmxvYXQgKHMgOiBqc19zdHJpbmcgdCkgOiBmbG9hdCA9XG4gIGxldCBzID0gVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5wYXJzZUZsb2F0IFt8IFVuc2FmZS5pbmplY3QgcyB8XSBpblxuICBpZiBpc05hTiBzIHRoZW4gZmFpbHdpdGggXCJwYXJzZUZsb2F0XCIgZWxzZSBzXG5cbmxldCBfID1cbiAgUHJpbnRleGMucmVnaXN0ZXJfcHJpbnRlciAoZnVuY3Rpb25cbiAgICAgIHwgSnNfZXJyb3IuRXhuIGUgLT4gU29tZSAoSnNfZXJyb3IudG9fc3RyaW5nIGUpXG4gICAgICB8IF8gLT4gTm9uZSlcblxubGV0IF8gPVxuICBQcmludGV4Yy5yZWdpc3Rlcl9wcmludGVyIChmdW4gZSAtPlxuICAgICAgbGV0IGUgOiA8IC4uID4gdCA9IE9iai5tYWdpYyBlIGluXG4gICAgICBpZiBpbnN0YW5jZW9mIGUgYXJyYXlfY29uc3RydWN0b3IgdGhlbiBOb25lIGVsc2UgU29tZSAodG9fc3RyaW5nIGUjI3RvU3RyaW5nKSlcblxubGV0IGV4cG9ydF9qcyAoZmllbGQgOiBqc19zdHJpbmcgdCkgeCA9XG4gIFVuc2FmZS5zZXRcbiAgICAoVW5zYWZlLnB1cmVfanNfZXhwciBcImpzb29fZXhwb3J0c1wiKVxuICAgIGZpZWxkXG4gICAgKGlmIFN0cmluZy5lcXVhbCAoSnMudG9fc3RyaW5nICh0eXBlb2YgKE9iai5tYWdpYyB4KSkpIFwiZnVuY3Rpb25cIlxuICAgICAgICAoKiBmdW5jdGlvbiB3aXRoIGFyaXR5L2xlbmd0aCBlcXVhbCB0byB6ZXJvIGFyZSBhbHJlYWR5IHdyYXBwZWQgKilcbiAgICAgICAgJiYgVW5zYWZlLmdldCAoT2JqLm1hZ2ljIHgpIChKcy5zdHJpbmcgXCJsZW5ndGhcIikgPiAwXG4gICAgdGhlbiBPYmoubWFnaWMgKHdyYXBfY2FsbGJhY2sgKE9iai5tYWdpYyB4KSlcbiAgICBlbHNlIHgpXG5cbmxldCBleHBvcnQgZmllbGQgeCA9IGV4cG9ydF9qcyAoc3RyaW5nIGZpZWxkKSB4XG5cbmxldCBleHBvcnRfYWxsIG9iaiA9XG4gIGxldCBrZXlzID0gb2JqZWN0X2tleXMgb2JqIGluXG4gIGtleXMjI2ZvckVhY2hcbiAgICAod3JhcF9jYWxsYmFjayAoZnVuIChrZXkgOiBqc19zdHJpbmcgdCkgXyBfIC0+IGV4cG9ydF9qcyBrZXkgKFVuc2FmZS5nZXQgb2JqIGtleSkpKVxuXG4oKioqKilcblxuKCogREVQUkVDQVRFRCAqKVxuXG50eXBlIGZsb2F0X3Byb3AgPSBmbG9hdCBwcm9wXG5cbmV4dGVybmFsIGZsb2F0IDogZmxvYXQgLT4gZmxvYXQgPSBcIiVpZGVudGl0eVwiXG5cbmV4dGVybmFsIHRvX2Zsb2F0IDogZmxvYXQgLT4gZmxvYXQgPSBcIiVpZGVudGl0eVwiXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUgWydub2RlXSBub2RlTGlzdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+ICdub2RlIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGxpc3Rfb2Zfbm9kZUxpc3QgKG5vZGVMaXN0IDogJ2Egbm9kZUxpc3QgdCkgPVxuICBsZXQgbGVuZ3RoID0gbm9kZUxpc3QjIy5sZW5ndGggaW5cbiAgbGV0IHJlYyBhZGRfaXRlbSBhY2MgaSA9XG4gICAgaWYgaSA8IGxlbmd0aFxuICAgIHRoZW5cbiAgICAgIG1hdGNoIE9wdC50b19vcHRpb24gKG5vZGVMaXN0IyNpdGVtIGkpIHdpdGhcbiAgICAgIHwgTm9uZSAtPiBhZGRfaXRlbSBhY2MgKGkgKyAxKVxuICAgICAgfCBTb21lIGUgLT4gYWRkX2l0ZW0gKGUgOjogYWNjKSAoaSArIDEpXG4gICAgZWxzZSBMaXN0LnJldiBhY2NcbiAgaW5cbiAgYWRkX2l0ZW0gW10gMFxuXG50eXBlIG5vZGVUeXBlID1cbiAgfCBPVEhFUlxuICAoKiBXaWxsIG5vdCBoYXBwZW4gKilcbiAgfCBFTEVNRU5UXG4gIHwgQVRUUklCVVRFXG4gIHwgVEVYVFxuICB8IENEQVRBX1NFQ1RJT05cbiAgfCBFTlRJVFlfUkVGRVJFTkNFXG4gIHwgRU5USVRZXG4gIHwgUFJPQ0VTU0lOR19JTlNUUlVDVElPTlxuICB8IENPTU1FTlRcbiAgfCBET0NVTUVOVFxuICB8IERPQ1VNRU5UX1RZUEVcbiAgfCBET0NVTUVOVF9GUkFHTUVOVFxuICB8IE5PVEFUSU9OXG5cbm1vZHVsZSBEb2N1bWVudFBvc2l0aW9uID0gc3RydWN0XG4gIHR5cGUgdCA9IGludFxuXG4gIHR5cGUgbWFzayA9IGludFxuXG4gIGxldCBkaXNjb25uZWN0ZWQgPSAweDAxXG5cbiAgbGV0IHByZWNlZGluZyA9IDB4MDJcblxuICBsZXQgZm9sbG93aW5nID0gMHgwNFxuXG4gIGxldCBjb250YWlucyA9IDB4MDhcblxuICBsZXQgY29udGFpbmVkX2J5ID0gMHgxMFxuXG4gIGxldCBpbXBsZW1lbnRhdGlvbl9zcGVjaWZpYyA9IDB4MjBcblxuICBsZXQgaGFzIHQgbWFzayA9IHQgbGFuZCBtYXNrID0gbWFza1xuXG4gIGxldCBhZGQgeCB5ID0geCBsb3IgeVxuXG4gIGxldCAoICsgKSA9IGFkZFxuZW5kXG5cbmNsYXNzIHR5cGUgbm9kZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBub2RlTmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBub2RlVmFsdWUgOiBqc19zdHJpbmcgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5vZGVUeXBlIDogbm9kZVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhcmVudE5vZGUgOiBub2RlIHQgb3B0IHByb3BcblxuICAgIG1ldGhvZCBjaGlsZE5vZGVzIDogbm9kZSBub2RlTGlzdCB0IHByb3BcblxuICAgIG1ldGhvZCBmaXJzdENoaWxkIDogbm9kZSB0IG9wdCBwcm9wXG5cbiAgICBtZXRob2QgbGFzdENoaWxkIDogbm9kZSB0IG9wdCBwcm9wXG5cbiAgICBtZXRob2QgcHJldmlvdXNTaWJsaW5nIDogbm9kZSB0IG9wdCBwcm9wXG5cbiAgICBtZXRob2QgbmV4dFNpYmxpbmcgOiBub2RlIHQgb3B0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lc3BhY2VVUkkgOiBqc19zdHJpbmcgdCBvcHQgcHJvcFxuXG4gICAgbWV0aG9kIGluc2VydEJlZm9yZSA6IG5vZGUgdCAtPiBub2RlIHQgb3B0IC0+IG5vZGUgdCBtZXRoXG5cbiAgICBtZXRob2QgcmVwbGFjZUNoaWxkIDogbm9kZSB0IC0+IG5vZGUgdCAtPiBub2RlIHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZUNoaWxkIDogbm9kZSB0IC0+IG5vZGUgdCBtZXRoXG5cbiAgICBtZXRob2QgYXBwZW5kQ2hpbGQgOiBub2RlIHQgLT4gbm9kZSB0IG1ldGhcblxuICAgIG1ldGhvZCBoYXNDaGlsZE5vZGVzIDogYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBjbG9uZU5vZGUgOiBib29sIHQgLT4gbm9kZSB0IG1ldGhcblxuICAgIG1ldGhvZCBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiA6IG5vZGUgdCAtPiBEb2N1bWVudFBvc2l0aW9uLnQgbWV0aFxuXG4gICAgbWV0aG9kIGxvb2t1cE5hbWVzcGFjZVVSSSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgbG9va3VwUHJlZml4IDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcbiAgZW5kXG5cbmxldCBhcHBlbmRDaGlsZCAocCA6ICNub2RlIHQpIChuIDogI25vZGUgdCkgPSBpZ25vcmUgKHAjI2FwcGVuZENoaWxkIChuIDo+IG5vZGUgdCkpXG5cbmxldCByZW1vdmVDaGlsZCAocCA6ICNub2RlIHQpIChuIDogI25vZGUgdCkgPSBpZ25vcmUgKHAjI3JlbW92ZUNoaWxkIChuIDo+IG5vZGUgdCkpXG5cbmxldCByZXBsYWNlQ2hpbGQgKHAgOiAjbm9kZSB0KSAobiA6ICNub2RlIHQpIChvIDogI25vZGUgdCkgPVxuICBpZ25vcmUgKHAjI3JlcGxhY2VDaGlsZCAobiA6PiBub2RlIHQpIChvIDo+IG5vZGUgdCkpXG5cbmxldCBpbnNlcnRCZWZvcmUgKHAgOiAjbm9kZSB0KSAobiA6ICNub2RlIHQpIChvIDogI25vZGUgdCBvcHQpID1cbiAgaWdub3JlIChwIyNpbnNlcnRCZWZvcmUgKG4gOj4gbm9kZSB0KSAobyA6PiBub2RlIHQgb3B0KSlcblxuKCoqIFNwZWNpZmljYXRpb24gb2YgW0F0dHJdIG9iamVjdHMuICopXG5jbGFzcyB0eXBlIGF0dHIgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG5vZGVcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNwZWNpZmllZCA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3duZXJFbGVtZW50IDogZWxlbWVudCB0IHByb3BcbiAgZW5kXG5cbigqKiBTcGVjaWZpY2F0aW9uIG9mIFtOYW1lZE5vZGVNYXBdIG9iamVjdHMuICopXG5hbmQgWydub2RlXSBuYW1lZE5vZGVNYXAgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZ2V0TmFtZWRJdGVtIDoganNfc3RyaW5nIHQgLT4gJ25vZGUgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldE5hbWVkSXRlbSA6ICdub2RlIHQgLT4gJ25vZGUgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZU5hbWVkSXRlbSA6IGpzX3N0cmluZyB0IC0+ICdub2RlIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+ICdub2RlIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCoqIFNwZWNpZmljYXRpb24gb2YgW0VsZW1lbnRdIG9iamVjdHMuICopXG5hbmQgZWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgbm9kZVxuXG4gICAgbWV0aG9kIHRhZ05hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0QXR0cmlidXRlIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRBdHRyaWJ1dGUgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVBdHRyaWJ1dGUgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBoYXNBdHRyaWJ1dGUgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEF0dHJpYnV0ZU5TIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRBdHRyaWJ1dGVOUyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZUF0dHJpYnV0ZU5TIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaGFzQXR0cmlidXRlTlMgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEF0dHJpYnV0ZU5vZGUgOiBqc19zdHJpbmcgdCAtPiBhdHRyIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRBdHRyaWJ1dGVOb2RlIDogYXR0ciB0IC0+IGF0dHIgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZUF0dHJpYnV0ZU5vZGUgOiBhdHRyIHQgLT4gYXR0ciB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRBdHRyaWJ1dGVOb2RlTlMgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBhdHRyIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRBdHRyaWJ1dGVOb2RlTlMgOiBhdHRyIHQgLT4gYXR0ciB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RWxlbWVudHNCeVRhZ05hbWUgOiBqc19zdHJpbmcgdCAtPiBlbGVtZW50IG5vZGVMaXN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGF0dHJpYnV0ZXMgOiBhdHRyIG5hbWVkTm9kZU1hcCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgY2hhcmFjdGVyRGF0YSA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgbm9kZVxuXG4gICAgbWV0aG9kIGRhdGEgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdWJqc19zdHJpbmdEYXRhIDogaW50IC0+IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgYXBwZW5kRGF0YSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluc2VydERhdGEgOiBpbnQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlRGF0YSA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVwbGFjZURhdGEgOiBpbnQgLT4gaW50IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSBjb21tZW50ID0gY2hhcmFjdGVyRGF0YVxuXG5jbGFzcyB0eXBlIHRleHQgPSBjaGFyYWN0ZXJEYXRhXG5cbmNsYXNzIHR5cGUgZG9jdW1lbnRGcmFnbWVudCA9IG5vZGVcblxuY2xhc3MgdHlwZSBbJ2VsZW1lbnRdIGRvY3VtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBub2RlXG5cbiAgICBtZXRob2QgZG9jdW1lbnRFbGVtZW50IDogJ2VsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3JlYXRlRG9jdW1lbnRGcmFnbWVudCA6IGRvY3VtZW50RnJhZ21lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlRWxlbWVudCA6IGpzX3N0cmluZyB0IC0+ICdlbGVtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZUVsZW1lbnROUyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+ICdlbGVtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVRleHROb2RlIDoganNfc3RyaW5nIHQgLT4gdGV4dCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVBdHRyaWJ1dGUgOiBqc19zdHJpbmcgdCAtPiBhdHRyIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZUNvbW1lbnQgOiBqc19zdHJpbmcgdCAtPiBjb21tZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEVsZW1lbnRCeUlkIDoganNfc3RyaW5nIHQgLT4gJ2VsZW1lbnQgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEVsZW1lbnRzQnlUYWdOYW1lIDoganNfc3RyaW5nIHQgLT4gJ2VsZW1lbnQgbm9kZUxpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgaW1wb3J0Tm9kZSA6IGVsZW1lbnQgdCAtPiBib29sIHQgLT4gJ2VsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgYWRvcHROb2RlIDogZWxlbWVudCB0IC0+ICdlbGVtZW50IHQgbWV0aFxuICBlbmRcblxudHlwZSBub2RlX3R5cGUgPVxuICB8IEVsZW1lbnQgb2YgZWxlbWVudCB0XG4gIHwgQXR0ciBvZiBhdHRyIHRcbiAgfCBUZXh0IG9mIHRleHQgdFxuICB8IE90aGVyIG9mIG5vZGUgdFxuXG5sZXQgbm9kZVR5cGUgZSA9XG4gIG1hdGNoIGUjIy5ub2RlVHlwZSB3aXRoXG4gIHwgRUxFTUVOVCAtPiBFbGVtZW50IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gIHwgQVRUUklCVVRFIC0+IEF0dHIgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgfCBDREFUQV9TRUNUSU9OIHwgVEVYVCAtPiBUZXh0IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gIHwgXyAtPiBPdGhlciAoZSA6PiBub2RlIHQpXG5cbm1vZHVsZSBDb2VyY2VUbyA9IHN0cnVjdFxuICBsZXQgY2FzdCAoZSA6ICNub2RlIEpzLnQpIHQgPVxuICAgIGlmIGUjIy5ub2RlVHlwZSA9PSB0IHRoZW4gSnMuc29tZSAoSnMuVW5zYWZlLmNvZXJjZSBlKSBlbHNlIEpzLm51bGxcblxuICBsZXQgZWxlbWVudCBlIDogZWxlbWVudCBKcy50IEpzLm9wdCA9IGNhc3QgZSBFTEVNRU5UXG5cbiAgbGV0IHRleHQgZSA6IHRleHQgSnMudCBKcy5vcHQgPVxuICAgIGlmIGUjIy5ub2RlVHlwZSA9PSBURVhUIHx8IGUjIy5ub2RlVHlwZSA9PSBDREFUQV9TRUNUSU9OXG4gICAgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgZWxzZSBKcy5udWxsXG5cbiAgbGV0IGF0dHIgZSA6IGF0dHIgSnMudCBKcy5vcHQgPSBjYXN0IGUgQVRUUklCVVRFXG5lbmRcblxudHlwZSAoJ2EsICdiKSBldmVudF9saXN0ZW5lciA9ICgnYSwgJ2IgLT4gYm9vbCB0KSBtZXRoX2NhbGxiYWNrIG9wdFxuKCoqIFRoZSB0eXBlIG9mIGV2ZW50IGxpc3RlbmVyIGZ1bmN0aW9ucy4gIFRoZSBmaXJzdCB0eXBlIHBhcmFtZXRlclxuICAgICAgWydhXSBpcyB0aGUgdHlwZSBvZiB0aGUgdGFyZ2V0IG9iamVjdDsgdGhlIHNlY29uZCBwYXJhbWV0ZXJcbiAgICAgIFsnYl0gaXMgdGhlIHR5cGUgb2YgdGhlIGV2ZW50IG9iamVjdC4gKilcblxuY2xhc3MgdHlwZSBbJ2FdIGV2ZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldCA6ICdhIHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjdXJyZW50VGFyZ2V0IDogJ2EgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgKCogTGVnYWN5IG1ldGhvZHMgKilcbiAgICBtZXRob2Qgc3JjRWxlbWVudCA6ICdhIHQgb3B0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgWydhLCAnYl0gY3VzdG9tRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFsnYV0gZXZlbnRcblxuICAgIG1ldGhvZCBkZXRhaWwgOiAnYiBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IG5vX2hhbmRsZXIgOiAoJ2EsICdiKSBldmVudF9saXN0ZW5lciA9IEpzLm51bGxcblxubGV0IHdpbmRvd19ldmVudCAoKSA6ICdhICNldmVudCB0ID0gSnMuVW5zYWZlLnB1cmVfanNfZXhwciBcImV2ZW50XCJcblxuKCogVGhlIGZ1bmN0aW9uIHByZXZlbnREZWZhdWx0IG11c3QgYmUgY2FsbGVkIGV4cGxpY2l0bHkgd2hlblxuICAgdXNpbmcgYWRkRXZlbnRMaXN0ZW5lci4uLiAqKVxubGV0IGhhbmRsZXIgZiA9XG4gIEpzLnNvbWVcbiAgICAoSnMuVW5zYWZlLmNhbGxiYWNrIChmdW4gZSAtPlxuICAgICAgICAgKCogZGVwZW5kaW5nIG9uIHRoZSBpbnRlcm5ldCBleHBsb3JlciB2ZXJzaW9uLCBlIGNhbiBiZSBudWxsIG9yIHVuZGVmaW5lZC4gKilcbiAgICAgICAgIGlmIG5vdCAoSnMuT3B0LnRlc3QgKHNvbWUgZSkpXG4gICAgICAgICB0aGVuIChcbiAgICAgICAgICAgbGV0IGUgPSB3aW5kb3dfZXZlbnQgKCkgaW5cbiAgICAgICAgICAgbGV0IHJlcyA9IGYgZSBpblxuICAgICAgICAgICBpZiBub3QgKEpzLnRvX2Jvb2wgcmVzKSB0aGVuIGUjIy5yZXR1cm5WYWx1ZSA6PSByZXM7XG4gICAgICAgICAgIHJlcylcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgbGV0IHJlcyA9IGYgZSBpblxuICAgICAgICAgICBpZiBub3QgKEpzLnRvX2Jvb2wgcmVzKSB0aGVuIChKcy5VbnNhZmUuY29lcmNlIGUpIyNwcmV2ZW50RGVmYXVsdDtcbiAgICAgICAgICAgcmVzKSlcblxubGV0IGZ1bGxfaGFuZGxlciBmID1cbiAgSnMuc29tZVxuICAgIChKcy5VbnNhZmUubWV0aF9jYWxsYmFjayAoZnVuIHRoaXMgZSAtPlxuICAgICAgICAgKCogZGVwZW5kaW5nIG9uIHRoZSBpbnRlcm5ldCBleHBsb3JlciB2ZXJzaW9uLCBlIGNhbiBiZSBudWxsIG9yIHVuZGVmaW5lZCAqKVxuICAgICAgICAgaWYgbm90IChKcy5PcHQudGVzdCAoc29tZSBlKSlcbiAgICAgICAgIHRoZW4gKFxuICAgICAgICAgICBsZXQgZSA9IHdpbmRvd19ldmVudCAoKSBpblxuICAgICAgICAgICBsZXQgcmVzID0gZiB0aGlzIGUgaW5cbiAgICAgICAgICAgaWYgbm90IChKcy50b19ib29sIHJlcykgdGhlbiBlIyMucmV0dXJuVmFsdWUgOj0gcmVzO1xuICAgICAgICAgICByZXMpXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIGxldCByZXMgPSBmIHRoaXMgZSBpblxuICAgICAgICAgICBpZiBub3QgKEpzLnRvX2Jvb2wgcmVzKSB0aGVuIChKcy5VbnNhZmUuY29lcmNlIGUpIyNwcmV2ZW50RGVmYXVsdDtcbiAgICAgICAgICAgcmVzKSlcblxubGV0IGludm9rZV9oYW5kbGVyIChmIDogKCdhLCAnYikgZXZlbnRfbGlzdGVuZXIpICh0aGlzIDogJ2EpIChldmVudCA6ICdiKSA6IGJvb2wgdCA9XG4gIEpzLlVuc2FmZS5jYWxsIGYgdGhpcyBbfCBKcy5VbnNhZmUuaW5qZWN0IGV2ZW50IHxdXG5cbmxldCBldmVudFRhcmdldCAoZSA6ICg8IC4uID4gYXMgJ2EpICNldmVudCB0KSA6ICdhIHQgPVxuICBsZXQgdGFyZ2V0ID1cbiAgICBPcHQuZ2V0IGUjIy50YXJnZXQgKGZ1biAoKSAtPiBPcHQuZ2V0IGUjIy5zcmNFbGVtZW50IChmdW4gKCkgLT4gcmFpc2UgTm90X2ZvdW5kKSlcbiAgaW5cbiAgaWYgSnMuaW5zdGFuY2VvZiB0YXJnZXQgSnMuVW5zYWZlLmdsb2JhbCMjLl9Ob2RlXG4gIHRoZW5cbiAgICAoKiBXb3JrYXJvdW5kIGZvciBTYWZhcmkgYnVnICopXG4gICAgbGV0IHRhcmdldCcgOiBub2RlIEpzLnQgPSBKcy5VbnNhZmUuY29lcmNlIHRhcmdldCBpblxuICAgIGlmIHRhcmdldCcjIy5ub2RlVHlwZSA9PSBURVhUXG4gICAgdGhlbiBKcy5VbnNhZmUuY29lcmNlIChPcHQuZ2V0IHRhcmdldCcjIy5wYXJlbnROb2RlIChmdW4gKCkgLT4gYXNzZXJ0IGZhbHNlKSlcbiAgICBlbHNlIHRhcmdldFxuICBlbHNlIHRhcmdldFxuXG5tb2R1bGUgRXZlbnQgPSBzdHJ1Y3RcbiAgdHlwZSAnYSB0eXAgPSBKcy5qc19zdHJpbmcgSnMudFxuXG4gIGxldCBtYWtlIHMgPSBKcy5zdHJpbmcgc1xuZW5kXG5cbnR5cGUgZXZlbnRfbGlzdGVuZXJfaWQgPSB1bml0IC0+IHVuaXRcblxuY2xhc3MgdHlwZSBldmVudF9saXN0ZW5lcl9vcHRpb25zID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNhcHR1cmUgOiBib29sIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmNlIDogYm9vbCB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFzc2l2ZSA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuICBlbmRcblxubGV0IGFkZEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucyAoZSA6ICg8IC4uID4gYXMgJ2EpIHQpIHR5cCA/Y2FwdHVyZSA/b25jZSA/cGFzc2l2ZSBoID1cbiAgaWYgKEpzLlVuc2FmZS5jb2VyY2UgZSkjIy5hZGRFdmVudExpc3RlbmVyID09IEpzLnVuZGVmaW5lZFxuICB0aGVuXG4gICAgbGV0IGV2ID0gKEpzLnN0cmluZyBcIm9uXCIpIyNjb25jYXQgdHlwIGluXG4gICAgbGV0IGNhbGxiYWNrIGUgPSBKcy5VbnNhZmUuY2FsbCAoaCwgZSwgW3x8XSkgaW5cbiAgICBsZXQgKCkgPSAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjYXR0YWNoRXZlbnQgZXYgY2FsbGJhY2sgaW5cbiAgICBmdW4gKCkgLT4gKEpzLlVuc2FmZS5jb2VyY2UgZSkjI2RldGFjaEV2ZW50IGV2IGNhbGxiYWNrXG4gIGVsc2VcbiAgICBsZXQgb3B0cyA6IGV2ZW50X2xpc3RlbmVyX29wdGlvbnMgdCA9IEpzLlVuc2FmZS5vYmogW3x8XSBpblxuICAgIGxldCBpdGVyIHQgZiA9XG4gICAgICBtYXRjaCB0IHdpdGhcbiAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgfCBTb21lIGIgLT4gZiBiXG4gICAgaW5cbiAgICBpdGVyIGNhcHR1cmUgKGZ1biBiIC0+IG9wdHMjIy5jYXB0dXJlIDo9IGIpO1xuICAgIGl0ZXIgb25jZSAoZnVuIGIgLT4gb3B0cyMjLm9uY2UgOj0gYik7XG4gICAgaXRlciBwYXNzaXZlIChmdW4gYiAtPiBvcHRzIyMucGFzc2l2ZSA6PSBiKTtcbiAgICBsZXQgKCkgPSAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjYWRkRXZlbnRMaXN0ZW5lciB0eXAgaCBvcHRzIGluXG4gICAgZnVuICgpIC0+IChKcy5VbnNhZmUuY29lcmNlIGUpIyNyZW1vdmVFdmVudExpc3RlbmVyIHR5cCBoIG9wdHNcblxubGV0IGFkZEV2ZW50TGlzdGVuZXIgKGUgOiAoPCAuLiA+IGFzICdhKSB0KSB0eXAgaCBjYXB0ID1cbiAgYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIGUgdHlwIH5jYXB0dXJlOmNhcHQgaFxuXG5sZXQgcmVtb3ZlRXZlbnRMaXN0ZW5lciBpZCA9IGlkICgpXG5cbmxldCBwcmV2ZW50RGVmYXVsdCBldiA9XG4gIGlmIEpzLk9wdGRlZi50ZXN0IChKcy5VbnNhZmUuY29lcmNlIGV2KSMjLnByZXZlbnREZWZhdWx0ICgqIElFIGhhY2sgKilcbiAgdGhlbiAoSnMuVW5zYWZlLmNvZXJjZSBldikjI3ByZXZlbnREZWZhdWx0XG4gIGVsc2UgKEpzLlVuc2FmZS5jb2VyY2UgZXYpIyMucmV0dXJuVmFsdWUgOj0gSnMuYm9vbCBmYWxzZVxuXG5sZXQgY3JlYXRlQ3VzdG9tRXZlbnQgP2J1YmJsZXMgP2NhbmNlbGFibGUgP2RldGFpbCB0eXAgPVxuICBsZXQgb3B0X2l0ZXIgZiA9IGZ1bmN0aW9uXG4gICAgfCBOb25lIC0+ICgpXG4gICAgfCBTb21lIHggLT4gZiB4XG4gIGluXG4gIGxldCBvcHRzID0gVW5zYWZlLm9iaiBbfHxdIGluXG4gIG9wdF9pdGVyIChmdW4geCAtPiBvcHRzIyMuYnViYmxlcyA6PSBib29sIHgpIGJ1YmJsZXM7XG4gIG9wdF9pdGVyIChmdW4geCAtPiBvcHRzIyMuY2FuY2VsYWJsZSA6PSBib29sIHgpIGNhbmNlbGFibGU7XG4gIG9wdF9pdGVyIChmdW4geCAtPiBvcHRzIyMuZGV0YWlsIDo9IHNvbWUgeCkgZGV0YWlsO1xuICBsZXQgY29uc3RyIDpcbiAgICAgICggICAoJ2EsICdiKSAjY3VzdG9tRXZlbnQgSnMudCBFdmVudC50eXBcbiAgICAgICAtPiA8IGRldGFpbCA6ICdiIG9wdCBwcm9wID4gdFxuICAgICAgIC0+ICgnYSwgJ2IpIGN1c3RvbUV2ZW50IHQpXG4gICAgICBjb25zdHIgPVxuICAgIFVuc2FmZS5nbG9iYWwjIy5fQ3VzdG9tRXZlbnRcbiAgaW5cbiAgbmV3JWpzIGNvbnN0ciB0eXAgb3B0c1xuXG4oKiBJRSA8IDkgKilcblxuY2xhc3MgdHlwZSBzdHJpbmdMaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRhaW5zIDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcbiAgZW5kXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEyIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxub3BlbiBKc1xuXG50eXBlIHVpbnQzMiA9IGZsb2F0XG5cbmNsYXNzIHR5cGUgYXJyYXlCdWZmZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYnl0ZUxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2xpY2UgOiBpbnQgLT4gaW50IC0+IGFycmF5QnVmZmVyIHQgbWV0aFxuXG4gICAgbWV0aG9kIHNsaWNlX3RvRW5kIDogaW50IC0+IGFycmF5QnVmZmVyIHQgbWV0aFxuICBlbmRcblxubGV0IGFycmF5QnVmZmVyIDogKGludCAtPiBhcnJheUJ1ZmZlciB0KSBjb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0FycmF5QnVmZmVyXG5cbmNsYXNzIHR5cGUgYXJyYXlCdWZmZXJWaWV3ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGJ1ZmZlciA6IGFycmF5QnVmZmVyIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJ5dGVPZmZzZXQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJ5dGVMZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBbJ2EsICdiXSB0eXBlZEFycmF5ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBhcnJheUJ1ZmZlclZpZXdcblxuICAgIG1ldGhvZCBfQllURVNfUEVSX0VMRU1FTlQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2V0X2Zyb21BcnJheSA6ICdhIGpzX2FycmF5IHQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldF9mcm9tVHlwZWRBcnJheSA6ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3ViYXJyYXkgOiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc3ViYXJyYXlfdG9FbmQgOiBpbnQgLT4gKCdhLCAnYikgdHlwZWRBcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzbGljZSA6IGludCAtPiBpbnQgLT4gKCdhLCAnYikgdHlwZWRBcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzbGljZV90b0VuZCA6IGludCAtPiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgbWV0aFxuXG4gICAgKCogVGhpcyBmYWtlIG1ldGhvZCBpcyBuZWVkZWQgZm9yIHR5cGluZyBwdXJwb3Nlcy5cbiAgICAgICBXaXRob3V0IGl0LCBbJ2JdIHdvdWxkIG5vdCBiZSBjb25zdHJhaW5lZC4gKilcbiAgICBtZXRob2QgX2NvbnRlbnRfdHlwZV8gOiAnYiBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxudHlwZSBpbnQ4QXJyYXkgPSAoaW50LCBCaWdhcnJheS5pbnQ4X3NpZ25lZF9lbHQpIHR5cGVkQXJyYXlcblxudHlwZSB1aW50OEFycmF5ID0gKGludCwgQmlnYXJyYXkuaW50OF91bnNpZ25lZF9lbHQpIHR5cGVkQXJyYXlcblxudHlwZSBpbnQxNkFycmF5ID0gKGludCwgQmlnYXJyYXkuaW50MTZfc2lnbmVkX2VsdCkgdHlwZWRBcnJheVxuXG50eXBlIHVpbnQxNkFycmF5ID0gKGludCwgQmlnYXJyYXkuaW50MTZfdW5zaWduZWRfZWx0KSB0eXBlZEFycmF5XG5cbnR5cGUgaW50MzJBcnJheSA9IChpbnQzMiwgQmlnYXJyYXkuaW50MzJfZWx0KSB0eXBlZEFycmF5XG5cbnR5cGUgdWludDMyQXJyYXkgPSAoaW50MzIsIEJpZ2FycmF5LmludDMyX2VsdCkgdHlwZWRBcnJheVxuXG50eXBlIGZsb2F0MzJBcnJheSA9IChmbG9hdCwgQmlnYXJyYXkuZmxvYXQzMl9lbHQpIHR5cGVkQXJyYXlcblxudHlwZSBmbG9hdDY0QXJyYXkgPSAoZmxvYXQsIEJpZ2FycmF5LmZsb2F0NjRfZWx0KSB0eXBlZEFycmF5XG5cbmV4dGVybmFsIGtpbmQgOiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgLT4gKCdhLCAnYikgQmlnYXJyYXkua2luZFxuICA9IFwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5XCJcblxuZXh0ZXJuYWwgZnJvbV9nZW5hcnJheSA6XG4gICgnYSwgJ2IsIEJpZ2FycmF5LmNfbGF5b3V0KSBCaWdhcnJheS5HZW5hcnJheS50IC0+ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdFxuICA9IFwiY2FtbF9iYV90b190eXBlZF9hcnJheVwiXG5cbmV4dGVybmFsIHRvX2dlbmFycmF5IDpcbiAgKCdhLCAnYikgdHlwZWRBcnJheSB0IC0+ICgnYSwgJ2IsIEJpZ2FycmF5LmNfbGF5b3V0KSBCaWdhcnJheS5HZW5hcnJheS50XG4gID0gXCJjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXlcIlxuXG5sZXQgaW50OEFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnQ4QXJyYXlcblxubGV0IGludDhBcnJheV9mcm9tQXJyYXkgPSBpbnQ4QXJyYXlcblxubGV0IGludDhBcnJheV9mcm9tVHlwZWRBcnJheSA9IGludDhBcnJheVxuXG5sZXQgaW50OEFycmF5X2Zyb21CdWZmZXIgPSBpbnQ4QXJyYXlcblxubGV0IGludDhBcnJheV9pbkJ1ZmZlciA9IGludDhBcnJheVxuXG5sZXQgdWludDhBcnJheSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fVWludDhBcnJheVxuXG5sZXQgdWludDhBcnJheV9mcm9tQXJyYXkgPSB1aW50OEFycmF5XG5cbmxldCB1aW50OEFycmF5X2Zyb21UeXBlZEFycmF5ID0gdWludDhBcnJheVxuXG5sZXQgdWludDhBcnJheV9mcm9tQnVmZmVyID0gdWludDhBcnJheVxuXG5sZXQgdWludDhBcnJheV9pbkJ1ZmZlciA9IHVpbnQ4QXJyYXlcblxubGV0IGludDE2QXJyYXkgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludDE2QXJyYXlcblxubGV0IGludDE2QXJyYXlfZnJvbUFycmF5ID0gaW50MTZBcnJheVxuXG5sZXQgaW50MTZBcnJheV9mcm9tVHlwZWRBcnJheSA9IGludDE2QXJyYXlcblxubGV0IGludDE2QXJyYXlfZnJvbUJ1ZmZlciA9IGludDE2QXJyYXlcblxubGV0IGludDE2QXJyYXlfaW5CdWZmZXIgPSBpbnQxNkFycmF5XG5cbmxldCB1aW50MTZBcnJheSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fVWludDE2QXJyYXlcblxubGV0IHVpbnQxNkFycmF5X2Zyb21BcnJheSA9IHVpbnQxNkFycmF5XG5cbmxldCB1aW50MTZBcnJheV9mcm9tVHlwZWRBcnJheSA9IHVpbnQxNkFycmF5XG5cbmxldCB1aW50MTZBcnJheV9mcm9tQnVmZmVyID0gdWludDE2QXJyYXlcblxubGV0IHVpbnQxNkFycmF5X2luQnVmZmVyID0gdWludDE2QXJyYXlcblxubGV0IGludDMyQXJyYXkgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludDMyQXJyYXlcblxubGV0IGludDMyQXJyYXlfZnJvbUFycmF5ID0gaW50MzJBcnJheVxuXG5sZXQgaW50MzJBcnJheV9mcm9tVHlwZWRBcnJheSA9IGludDMyQXJyYXlcblxubGV0IGludDMyQXJyYXlfZnJvbUJ1ZmZlciA9IGludDMyQXJyYXlcblxubGV0IGludDMyQXJyYXlfaW5CdWZmZXIgPSBpbnQzMkFycmF5XG5cbmxldCB1aW50MzJBcnJheSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fVWludDMyQXJyYXlcblxubGV0IHVpbnQzMkFycmF5X2Zyb21BcnJheSA9IHVpbnQzMkFycmF5XG5cbmxldCB1aW50MzJBcnJheV9mcm9tVHlwZWRBcnJheSA9IHVpbnQzMkFycmF5XG5cbmxldCB1aW50MzJBcnJheV9mcm9tQnVmZmVyID0gdWludDMyQXJyYXlcblxubGV0IHVpbnQzMkFycmF5X2luQnVmZmVyID0gdWludDMyQXJyYXlcblxubGV0IGZsb2F0MzJBcnJheSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRmxvYXQzMkFycmF5XG5cbmxldCBmbG9hdDMyQXJyYXlfZnJvbUFycmF5ID0gZmxvYXQzMkFycmF5XG5cbmxldCBmbG9hdDMyQXJyYXlfZnJvbVR5cGVkQXJyYXkgPSBmbG9hdDMyQXJyYXlcblxubGV0IGZsb2F0MzJBcnJheV9mcm9tQnVmZmVyID0gZmxvYXQzMkFycmF5XG5cbmxldCBmbG9hdDMyQXJyYXlfaW5CdWZmZXIgPSBmbG9hdDMyQXJyYXlcblxubGV0IGZsb2F0NjRBcnJheSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRmxvYXQ2NEFycmF5XG5cbmxldCBmbG9hdDY0QXJyYXlfZnJvbUFycmF5ID0gZmxvYXQ2NEFycmF5XG5cbmxldCBmbG9hdDY0QXJyYXlfZnJvbVR5cGVkQXJyYXkgPSBmbG9hdDY0QXJyYXlcblxubGV0IGZsb2F0NjRBcnJheV9mcm9tQnVmZmVyID0gZmxvYXQ2NEFycmF5XG5cbmxldCBmbG9hdDY0QXJyYXlfaW5CdWZmZXIgPSBmbG9hdDY0QXJyYXlcblxubGV0IHNldCA6ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9XG4gZnVuIGEgaSB2IC0+IGFycmF5X3NldCAoVW5zYWZlLmNvZXJjZSBhKSBpIHZcblxubGV0IGdldCA6ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCAtPiBpbnQgLT4gJ2Egb3B0ZGVmID0gZnVuIGEgaSAtPiBKcy5VbnNhZmUuZ2V0IGEgaVxuXG5sZXQgdW5zYWZlX2dldCA6ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCAtPiBpbnQgLT4gJ2EgPSBmdW4gYSBpIC0+IEpzLlVuc2FmZS5nZXQgYSBpXG5cbmNsYXNzIHR5cGUgZGF0YVZpZXcgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGFycmF5QnVmZmVyVmlld1xuXG4gICAgbWV0aG9kIGdldEludDggOiBpbnQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVaW50OCA6IGludCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEludDE2IDogaW50IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SW50MTZfIDogaW50IC0+IGJvb2wgdCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVpbnQxNiA6IGludCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVpbnQxNl8gOiBpbnQgLT4gYm9vbCB0IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SW50MzIgOiBpbnQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRJbnQzMl8gOiBpbnQgLT4gYm9vbCB0IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VWludDMyIDogaW50IC0+IHVpbnQzMiBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VWludDMyXyA6IGludCAtPiBib29sIHQgLT4gdWludDMyIG1ldGhcblxuICAgIG1ldGhvZCBnZXRGbG9hdDMyIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRGbG9hdDMyXyA6IGludCAtPiBib29sIHQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEZsb2F0NjQgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEZsb2F0NjRfIDogaW50IC0+IGJvb2wgdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SW50OCA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VWludDggOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEludDE2IDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRJbnQxNl8gOiBpbnQgLT4gaW50IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVaW50MTYgOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVpbnQxNl8gOiBpbnQgLT4gaW50IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRJbnQzMiA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SW50MzJfIDogaW50IC0+IGludCAtPiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VWludDMyIDogaW50IC0+IHVpbnQzMiAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVaW50MzJfIDogaW50IC0+IHVpbnQzMiAtPiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RmxvYXQzMiA6IGludCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRGbG9hdDMyXyA6IGludCAtPiBmbG9hdCAtPiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RmxvYXQ2NCA6IGludCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRGbG9hdDY0XyA6IGludCAtPiBmbG9hdCAtPiBib29sIHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5sZXQgZGF0YVZpZXcgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0RhdGFWaWV3XG5cbmxldCBkYXRhVmlld19pbkJ1ZmZlciA9IGRhdGFWaWV3XG5cbm1vZHVsZSBCaWdzdHJpbmcgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0gKGNoYXIsIEJpZ2FycmF5LmludDhfdW5zaWduZWRfZWx0LCBCaWdhcnJheS5jX2xheW91dCkgQmlnYXJyYXkuQXJyYXkxLnRcblxuICBleHRlcm5hbCB0b19hcnJheUJ1ZmZlciA6IHQgLT4gYXJyYXlCdWZmZXIgSnMudCA9IFwiYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlclwiXG5cbiAgZXh0ZXJuYWwgdG9fdWludDhBcnJheSA6IHQgLT4gdWludDhBcnJheSBKcy50ID0gXCJiaWdzdHJpbmdfdG9fdHlwZWRfYXJyYXlcIlxuXG4gIGV4dGVybmFsIG9mX2FycmF5QnVmZmVyIDogYXJyYXlCdWZmZXIgSnMudCAtPiB0ID0gXCJiaWdzdHJpbmdfb2ZfYXJyYXlfYnVmZmVyXCJcblxuICBleHRlcm5hbCBvZl91aW50OEFycmF5IDogdWludDhBcnJheSBKcy50IC0+IHQgPSBcImJpZ3N0cmluZ19vZl90eXBlZF9hcnJheVwiXG5lbmRcblxubW9kdWxlIFN0cmluZyA9IHN0cnVjdFxuICBleHRlcm5hbCBvZl91aW50OEFycmF5IDogdWludDhBcnJheSBKcy50IC0+IHN0cmluZyA9IFwiY2FtbF9zdHJpbmdfb2ZfYXJyYXlcIlxuXG4gIGxldCBvZl9hcnJheUJ1ZmZlciBhYiA9XG4gICAgbGV0IHVpbnQ4ID0gbmV3JWpzIHVpbnQ4QXJyYXlfZnJvbUJ1ZmZlciBhYiBpblxuICAgIG9mX3VpbnQ4QXJyYXkgdWludDhcbmVuZFxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMSBQaWVycmUgQ2hhbWJhcnRcbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuIERvbVxub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUgYmxvYiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBzaXplIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzbGljZSA6IGludCAtPiBpbnQgLT4gYmxvYiB0IG1ldGhcblxuICAgIG1ldGhvZCBzbGljZV93aXRoQ29udGVudFR5cGUgOiBpbnQgLT4gaW50IC0+IGpzX3N0cmluZyB0IC0+IGJsb2IgdCBtZXRoXG4gIGVuZFxuXG5sZXQgYmxvYl9jb25zdHIgPSBVbnNhZmUuZ2xvYmFsIyMuX0Jsb2JcblxudHlwZSAnYSBtYWtlX2Jsb2IgPVxuICA/Y29udGVudFR5cGU6c3RyaW5nIC0+ID9lbmRpbmdzOlsgYFRyYW5zcGFyZW50IHwgYE5hdGl2ZSBdIC0+ICdhIC0+IGJsb2IgdFxuXG5sZXQgcmVjIGZpbHRlcl9tYXAgZiA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gW11cbiAgfCB2IDo6IHEgLT4gKFxuICAgICAgbWF0Y2ggZiB2IHdpdGhcbiAgICAgIHwgTm9uZSAtPiBmaWx0ZXJfbWFwIGYgcVxuICAgICAgfCBTb21lIHYnIC0+IHYnIDo6IGZpbHRlcl9tYXAgZiBxKVxuXG5sZXQgbWFrZV9ibG9iX29wdGlvbnMgY29udGVudFR5cGUgZW5kaW5ncyA9XG4gIGxldCBvcHRpb25zID1cbiAgICBmaWx0ZXJfbWFwXG4gICAgICAoZnVuIChuYW1lLCB2KSAtPlxuICAgICAgICBtYXRjaCB2IHdpdGhcbiAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgfCBTb21lIHYgLT4gU29tZSAobmFtZSwgVW5zYWZlLmluamVjdCAoc3RyaW5nIHYpKSlcbiAgICAgIFsgXCJ0eXBlXCIsIGNvbnRlbnRUeXBlXG4gICAgICA7ICggXCJlbmRpbmdzXCJcbiAgICAgICAgLCBtYXRjaCBlbmRpbmdzIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICAgIHwgU29tZSBgVHJhbnNwYXJlbnQgLT4gU29tZSBcInRyYW5zcGFyZW50XCJcbiAgICAgICAgICB8IFNvbWUgYE5hdGl2ZSAtPiBTb21lIFwibmF0aXZlXCIgKVxuICAgICAgXVxuICBpblxuICBtYXRjaCBvcHRpb25zIHdpdGhcbiAgfCBbXSAtPiB1bmRlZmluZWRcbiAgfCBsIC0+IFVuc2FmZS5vYmogKEFycmF5Lm9mX2xpc3QgbClcblxubGV0IGJsb2JfcmF3ID9jb250ZW50VHlwZSA/ZW5kaW5ncyBhID1cbiAgbGV0IG9wdGlvbnMgPSBtYWtlX2Jsb2Jfb3B0aW9ucyBjb250ZW50VHlwZSBlbmRpbmdzIGluXG4gIG5ldyVqcyBibG9iX2NvbnN0ciAoYXJyYXkgYSkgb3B0aW9uc1xuXG5sZXQgYmxvYl9mcm9tX3N0cmluZyA/Y29udGVudFR5cGUgP2VuZGluZ3MgcyA9XG4gIGJsb2JfcmF3ID9jb250ZW50VHlwZSA/ZW5kaW5ncyBbfCBzdHJpbmcgcyB8XVxuXG5sZXQgYmxvYl9mcm9tX2FueSA/Y29udGVudFR5cGUgP2VuZGluZ3MgbCA9XG4gIGxldCBsID1cbiAgICBMaXN0Lm1hcFxuICAgICAgKGZ1bmN0aW9uXG4gICAgICAgIHwgYGFycmF5QnVmZmVyIGEgLT4gVW5zYWZlLmluamVjdCBhXG4gICAgICAgIHwgYGFycmF5QnVmZmVyVmlldyBhIC0+IFVuc2FmZS5pbmplY3QgYVxuICAgICAgICB8IGBzdHJpbmcgcyAtPiBVbnNhZmUuaW5qZWN0IChzdHJpbmcgcylcbiAgICAgICAgfCBganNfc3RyaW5nIHMgLT4gVW5zYWZlLmluamVjdCBzXG4gICAgICAgIHwgYGJsb2IgYiAtPiBVbnNhZmUuaW5qZWN0IGIpXG4gICAgICBsXG4gIGluXG4gIGJsb2JfcmF3ID9jb250ZW50VHlwZSA/ZW5kaW5ncyAoQXJyYXkub2ZfbGlzdCBsKVxuXG5jbGFzcyB0eXBlIGZpbGUgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGJsb2JcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxhc3RNb2RpZmllZERhdGUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbiBmaXJlZm94IDMuMC0zLjUgZmlsZS5uYW1lIGlzIG5vdCBhdmFpbGFibGUsIHdlIHVzZSB0aGUgbm9uc3RhbmRhcmQgZmlsZU5hbWUgaW5zdGVhZCAqKVxuY2xhc3MgdHlwZSBmaWxlX25hbWVfb25seSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmaWxlTmFtZSA6IGpzX3N0cmluZyB0IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgZmlsZW5hbWUgZmlsZSA9XG4gIGxldCBmaWxlIDogZmlsZV9uYW1lX29ubHkgdCA9IEpzLlVuc2FmZS5jb2VyY2UgZmlsZSBpblxuICBtYXRjaCBPcHRkZWYudG9fb3B0aW9uIGZpbGUjIy5uYW1lIHdpdGhcbiAgfCBOb25lIC0+IChcbiAgICAgIG1hdGNoIE9wdGRlZi50b19vcHRpb24gZmlsZSMjLmZpbGVOYW1lIHdpdGhcbiAgICAgIHwgTm9uZSAtPiBmYWlsd2l0aCBcImNhbid0IHJldHJpZXZlIGZpbGUgbmFtZTogbm90IGltcGxlbWVudGVkXCJcbiAgICAgIHwgU29tZSBuYW1lIC0+IG5hbWUpXG4gIHwgU29tZSBuYW1lIC0+IG5hbWVcblxudHlwZSBmaWxlX2FueSA9IDwgPiB0XG5cbmxldCBkb2NfY29uc3RyID0gVW5zYWZlLmdsb2JhbCMjLl9Eb2N1bWVudFxuXG5tb2R1bGUgQ29lcmNlVG8gPSBzdHJ1Y3RcbiAgZXh0ZXJuYWwganNvbiA6IGZpbGVfYW55IC0+ICdhIE9wdC50ID0gXCIlaWRlbnRpdHlcIlxuXG4gIGxldCBkb2N1bWVudCAoZSA6IGZpbGVfYW55KSA9XG4gICAgaWYgaW5zdGFuY2VvZiBlIGRvY19jb25zdHJcbiAgICB0aGVuIEpzLnNvbWUgKFVuc2FmZS5jb2VyY2UgZSA6IGVsZW1lbnQgZG9jdW1lbnQgdClcbiAgICBlbHNlIEpzLm51bGxcblxuICBsZXQgYmxvYiAoZSA6IGZpbGVfYW55KSA9XG4gICAgaWYgaW5zdGFuY2VvZiBlIGJsb2JfY29uc3RyIHRoZW4gSnMuc29tZSAoVW5zYWZlLmNvZXJjZSBlIDogI2Jsb2IgdCkgZWxzZSBKcy5udWxsXG5cbiAgbGV0IHN0cmluZyAoZSA6IGZpbGVfYW55KSA9XG4gICAgaWYgdHlwZW9mIGUgPT0gc3RyaW5nIFwic3RyaW5nXCJcbiAgICB0aGVuIEpzLnNvbWUgKFVuc2FmZS5jb2VyY2UgZSA6IGpzX3N0cmluZyB0KVxuICAgIGVsc2UgSnMubnVsbFxuXG4gIGxldCBhcnJheUJ1ZmZlciAoZSA6IGZpbGVfYW55KSA9XG4gICAgaWYgaW5zdGFuY2VvZiBlIFR5cGVkX2FycmF5LmFycmF5QnVmZmVyXG4gICAgdGhlbiBKcy5zb21lIChVbnNhZmUuY29lcmNlIGUgOiBUeXBlZF9hcnJheS5hcnJheUJ1ZmZlciB0KVxuICAgIGVsc2UgSnMubnVsbFxuZW5kXG5cbmNsYXNzIHR5cGUgZmlsZUxpc3QgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFtmaWxlXSBEb20ubm9kZUxpc3RcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZmlsZUVycm9yID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNvZGUgOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBbJ2FdIHByb2dyZXNzRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFsnYV0gZXZlbnRcblxuICAgIG1ldGhvZCBsZW5ndGhDb21wdXRhYmxlIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsb2FkZWQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRvdGFsIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcHJvZ3Jlc3NFdmVudFRhcmdldCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgbWV0aG9kIG9ubG9hZHN0YXJ0IDogKCdzZWxmIHQsICdzZWxmIHByb2dyZXNzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnByb2dyZXNzIDogKCdzZWxmIHQsICdzZWxmIHByb2dyZXNzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmxvYWQgOiAoJ3NlbGYgdCwgJ3NlbGYgcHJvZ3Jlc3NFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uYWJvcnQgOiAoJ3NlbGYgdCwgJ3NlbGYgcHJvZ3Jlc3NFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZXJyb3IgOiAoJ3NlbGYgdCwgJ3NlbGYgcHJvZ3Jlc3NFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubG9hZGVuZCA6ICgnc2VsZiB0LCAnc2VsZiBwcm9ncmVzc0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG4gIGVuZFxuXG50eXBlIHJlYWR5U3RhdGUgPVxuICB8IEVNUFRZXG4gIHwgTE9BRElOR1xuICB8IERPTkVcblxuY2xhc3MgdHlwZSBmaWxlUmVhZGVyID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBtZXRob2QgcmVhZEFzQXJyYXlCdWZmZXIgOiAjYmxvYiB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlYWRBc0JpbmFyeVN0cmluZyA6ICNibG9iIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVhZEFzVGV4dCA6ICNibG9iIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVhZEFzVGV4dF93aXRoRW5jb2RpbmcgOiAjYmxvYiB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlYWRBc0RhdGFVUkwgOiAjYmxvYiB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFib3J0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZSA6IHJlYWR5U3RhdGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlc3VsdCA6IGZpbGVfYW55IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlcnJvciA6IGZpbGVFcnJvciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIGluaGVyaXQgcHJvZ3Jlc3NFdmVudFRhcmdldFxuICBlbmRcblxubW9kdWxlIFJlYWRlckV2ZW50ID0gc3RydWN0XG4gIHR5cGUgdHlwID0gZmlsZVJlYWRlciBwcm9ncmVzc0V2ZW50IHQgRG9tLkV2ZW50LnR5cFxuXG4gIGxldCBsb2Fkc3RhcnQgPSBFdmVudC5tYWtlIFwibG9hZHN0YXJ0XCJcblxuICBsZXQgcHJvZ3Jlc3MgPSBFdmVudC5tYWtlIFwicHJvZ3Jlc3NcIlxuXG4gIGxldCBhYm9ydCA9IEV2ZW50Lm1ha2UgXCJhYm9ydFwiXG5cbiAgbGV0IGVycm9yID0gRXZlbnQubWFrZSBcImVycm9yXCJcblxuICBsZXQgbG9hZCA9IEV2ZW50Lm1ha2UgXCJsb2FkXCJcblxuICBsZXQgbG9hZGVuZCA9IEV2ZW50Lm1ha2UgXCJsb2FkZW5kXCJcbmVuZFxuXG5sZXQgZmlsZVJlYWRlciA6IGZpbGVSZWFkZXIgdCBjb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ZpbGVSZWFkZXJcblxubGV0IGFkZEV2ZW50TGlzdGVuZXIgPSBEb20uYWRkRXZlbnRMaXN0ZW5lclxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4hIEltcG9ydFxuXG5leHRlcm5hbCBjYW1sX2pzX29uX2llIDogdW5pdCAtPiBib29sIHQgPSBcImNhbWxfanNfb25faWVcIlxuXG5sZXQgb25JRSA9IEpzLnRvX2Jvb2wgKGNhbWxfanNfb25faWUgKCkpXG5cbmV4dGVybmFsIGh0bWxfZXNjYXBlIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgPSBcImNhbWxfanNfaHRtbF9lc2NhcGVcIlxuXG5leHRlcm5hbCBkZWNvZGVfaHRtbF9lbnRpdGllcyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0ID0gXCJjYW1sX2pzX2h0bWxfZW50aXRpZXNcIlxuXG5jbGFzcyB0eXBlIGNzc1N0eWxlRGVjbGFyYXRpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2Qgc2V0UHJvcGVydHkgOlxuICAgICAganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0ZGVmIC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRQcm9wZXJ0eVZhbHVlIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFByb3BlcnR5UHJpb3JpdHkgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlUHJvcGVydHkgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbkRlbGF5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbkRpcmVjdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRpb25EdXJhdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRpb25GaWxsTW9kZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRpb25JdGVyYXRpb25Db3VudCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRpb25OYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvblBsYXlTdGF0ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRpb25UaW1pbmdGdW5jdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBiYWNrZ3JvdW5kIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJhY2tncm91bmRBdHRhY2htZW50IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJhY2tncm91bmRDb2xvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBiYWNrZ3JvdW5kSW1hZ2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYmFja2dyb3VuZFBvc2l0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJhY2tncm91bmRSZXBlYXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckJvdHRvbSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJCb3R0b21Db2xvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJCb3R0b21TdHlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJCb3R0b21XaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJDb2xsYXBzZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJDb2xvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJMZWZ0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckxlZnRDb2xvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJMZWZ0U3R5bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyTGVmdFdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclJhZGl1cyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJSaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJSaWdodENvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclJpZ2h0U3R5bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyUmlnaHRXaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJTcGFjaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclRvcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJUb3BDb2xvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJUb3BTdHlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJUb3BXaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJXaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3R0b20gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2FwdGlvblNpZGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2xlYXIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2xpcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb2xvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb250ZW50IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvdW50ZXJJbmNyZW1lbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY291bnRlclJlc2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNzc0Zsb2F0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNzc1RleHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY3Vyc29yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRpcmVjdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkaXNwbGF5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGVtcHR5Q2VsbHMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZmlsbCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb250IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvbnRGYW1pbHkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9udFNpemUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9udFN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvbnRWYXJpYW50IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvbnRXZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxlZnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGV0dGVyU3BhY2luZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsaW5lSGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxpc3RTdHlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsaXN0U3R5bGVJbWFnZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsaXN0U3R5bGVQb3NpdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsaXN0U3R5bGVUeXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5Cb3R0b20gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luTGVmdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5SaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5Ub3AgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWF4SGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1heFdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1pbkhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtaW5XaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvcGFjaXR5IDoganNfc3RyaW5nIHQgb3B0ZGVmIHByb3BcblxuICAgIG1ldGhvZCBvdXRsaW5lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG91dGxpbmVDb2xvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdXRsaW5lT2Zmc2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG91dGxpbmVTdHlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdXRsaW5lV2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3ZlcmZsb3cgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3ZlcmZsb3dYIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG92ZXJmbG93WSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWRkaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBhZGRpbmdCb3R0b20gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcGFkZGluZ0xlZnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcGFkZGluZ1JpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBhZGRpbmdUb3AgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcGFnZUJyZWFrQWZ0ZXIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcGFnZUJyZWFrQmVmb3JlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBvaW50ZXJFdmVudHMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcG9zaXRpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcmlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3Ryb2tlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHN0cm9rZVdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRhYmxlTGF5b3V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRleHRBbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0QW5jaG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRleHREZWNvcmF0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRleHRJbmRlbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dFRyYW5zZm9ybSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0b3AgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdHJhbnNmb3JtIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZlcnRpY2FsQWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdmlzaWJpbGl0eSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aGl0ZVNwYWNlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdvcmRTcGFjaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHpJbmRleCA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbnR5cGUgKCdhLCAnYikgZXZlbnRfbGlzdGVuZXIgPSAoJ2EsICdiKSBEb20uZXZlbnRfbGlzdGVuZXJcblxudHlwZSBtb3VzZV9idXR0b24gPVxuICB8IE5vX2J1dHRvblxuICB8IExlZnRfYnV0dG9uXG4gIHwgTWlkZGxlX2J1dHRvblxuICB8IFJpZ2h0X2J1dHRvblxuXG50eXBlIGRlbHRhX21vZGUgPVxuICB8IERlbHRhX3BpeGVsXG4gIHwgRGVsdGFfbGluZVxuICB8IERlbHRhX3BhZ2VcblxuY2xhc3MgdHlwZSBldmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgW2VsZW1lbnRdIERvbS5ldmVudFxuICBlbmRcblxuYW5kIFsnYV0gY3VzdG9tRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFtlbGVtZW50LCAnYV0gRG9tLmN1c3RvbUV2ZW50XG4gIGVuZFxuXG5hbmQgZm9jdXNFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCByZWxhdGVkVGFyZ2V0IDogZWxlbWVudCB0IG9wdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIG1vdXNlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgcmVsYXRlZFRhcmdldCA6IGVsZW1lbnQgdCBvcHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbGllbnRYIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbGllbnRZIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzY3JlZW5YIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzY3JlZW5ZIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvZmZzZXRYIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvZmZzZXRZIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjdHJsS2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzaGlmdEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWx0S2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtZXRhS2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBidXR0b24gOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdoaWNoIDogbW91c2VfYnV0dG9uIG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZnJvbUVsZW1lbnQgOiBlbGVtZW50IHQgb3B0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdG9FbGVtZW50IDogZWxlbWVudCB0IG9wdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhZ2VYIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFnZVkgOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBrZXlib2FyZEV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIGFsdEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2hpZnRLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN0cmxLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1ldGFLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxvY2F0aW9uIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBrZXkgOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvZGUgOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdoaWNoIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2hhckNvZGUgOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBrZXlDb2RlIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRNb2RpZmllclN0YXRlIDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBrZXlJZGVudGlmaWVyIDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBtb3VzZXdoZWVsRXZlbnQgPVxuICBvYmplY3RcbiAgICAoKiBBbGwgbW9kZXJuIGJyb3dzZXJzICopXG4gICAgaW5oZXJpdCBtb3VzZUV2ZW50XG5cbiAgICBtZXRob2Qgd2hlZWxEZWx0YSA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2hlZWxEZWx0YVggOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aGVlbERlbHRhWSA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRlbHRhWCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkZWx0YVkgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGVsdGFaIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRlbHRhTW9kZSA6IGRlbHRhX21vZGUgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIG1vdXNlU2Nyb2xsRXZlbnQgPVxuICBvYmplY3RcbiAgICAoKiBGaXJlZm94ICopXG4gICAgaW5oZXJpdCBtb3VzZUV2ZW50XG5cbiAgICBtZXRob2QgZGV0YWlsIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBheGlzIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0hPUklaT05UQUxfQVhJUyA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJUSUNBTF9BWElTIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgdG91Y2hFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCB0b3VjaGVzIDogdG91Y2hMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldFRvdWNoZXMgOiB0b3VjaExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2hhbmdlZFRvdWNoZXMgOiB0b3VjaExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3RybEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2hpZnRLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFsdEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWV0YUtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVsYXRlZFRhcmdldCA6IGVsZW1lbnQgdCBvcHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCB0b3VjaExpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+IHRvdWNoIHQgb3B0ZGVmIG1ldGhcbiAgZW5kXG5cbmFuZCB0b3VjaCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBpZGVudGlmaWVyIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBlbGVtZW50IHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzY3JlZW5YIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzY3JlZW5ZIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbGllbnRYIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbGllbnRZIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYWdlWCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFnZVkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHN1Ym1pdEV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIHN1Ym1pdHRlciA6IGVsZW1lbnQgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGRyYWdFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgbW91c2VFdmVudFxuXG4gICAgbWV0aG9kIGRhdGFUcmFuc2ZlciA6IGRhdGFUcmFuc2ZlciB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBjbGlwYm9hcmRFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBjbGlwYm9hcmREYXRhIDogZGF0YVRyYW5zZmVyIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGRhdGFUcmFuc2ZlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkcm9wRWZmZWN0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGVmZmVjdEFsbG93ZWQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZmlsZXMgOiBGaWxlLmZpbGVMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHR5cGVzIDoganNfc3RyaW5nIHQganNfYXJyYXkgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWRkRWxlbWVudCA6IGVsZW1lbnQgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbGVhckRhdGEgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbGVhckRhdGFfYWxsIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RGF0YSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBzZXREYXRhIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RHJhZ0ltYWdlIDogZWxlbWVudCB0IC0+IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5hbmQgZXZlbnRUYXJnZXQgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIG1ldGhvZCBvbmNsaWNrIDogKCdzZWxmIHQsIG1vdXNlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmRibGNsaWNrIDogKCdzZWxmIHQsIG1vdXNlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm1vdXNlZG93biA6ICgnc2VsZiB0LCBtb3VzZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25tb3VzZXVwIDogKCdzZWxmIHQsIG1vdXNlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm1vdXNlb3ZlciA6ICgnc2VsZiB0LCBtb3VzZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25tb3VzZW1vdmUgOiAoJ3NlbGYgdCwgbW91c2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubW91c2VvdXQgOiAoJ3NlbGYgdCwgbW91c2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ua2V5cHJlc3MgOiAoJ3NlbGYgdCwga2V5Ym9hcmRFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ua2V5ZG93biA6ICgnc2VsZiB0LCBrZXlib2FyZEV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25rZXl1cCA6ICgnc2VsZiB0LCBrZXlib2FyZEV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25zY3JvbGwgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbndoZWVsIDogKCdzZWxmIHQsIG1vdXNld2hlZWxFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHJhZ3N0YXJ0IDogKCdzZWxmIHQsIGRyYWdFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHJhZ2VuZCA6ICgnc2VsZiB0LCBkcmFnRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmRyYWdlbnRlciA6ICgnc2VsZiB0LCBkcmFnRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmRyYWdvdmVyIDogKCdzZWxmIHQsIGRyYWdFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHJhZ2xlYXZlIDogKCdzZWxmIHQsIGRyYWdFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHJhZyA6ICgnc2VsZiB0LCBkcmFnRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmRyb3AgOiAoJ3NlbGYgdCwgZHJhZ0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25hbmltYXRpb25zdGFydCA6ICgnc2VsZiB0LCBhbmltYXRpb25FdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uYW5pbWF0aW9uZW5kIDogKCdzZWxmIHQsIGFuaW1hdGlvbkV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25hbmltYXRpb25pdGVyYXRpb24gOlxuICAgICAgKCdzZWxmIHQsIGFuaW1hdGlvbkV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25hbmltYXRpb25jYW5jZWwgOiAoJ3NlbGYgdCwgYW5pbWF0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnRyYW5zaXRpb25ydW4gOiAoJ3NlbGYgdCwgdHJhbnNpdGlvbkV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb250cmFuc2l0aW9uc3RhcnQgOiAoJ3NlbGYgdCwgdHJhbnNpdGlvbkV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb250cmFuc2l0aW9uZW5kIDogKCdzZWxmIHQsIHRyYW5zaXRpb25FdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9udHJhbnNpdGlvbmNhbmNlbCA6ICgnc2VsZiB0LCB0cmFuc2l0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmdvdHBvaW50ZXJjYXB0dXJlIDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubG9zdHBvaW50ZXJjYXB0dXJlIDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9pbnRlcmVudGVyIDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9pbnRlcmNhbmNlbCA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBvaW50ZXJkb3duIDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9pbnRlcmxlYXZlIDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9pbnRlcm1vdmUgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVyb3V0IDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9pbnRlcm92ZXIgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVydXAgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGlzcGF0Y2hFdmVudCA6IGV2ZW50IHQgLT4gYm9vbCB0IG1ldGhcbiAgZW5kXG5cbmFuZCBwb3BTdGF0ZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIHN0YXRlIDogSnMuVW5zYWZlLmFueSByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgcG9pbnRlckV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBtb3VzZUV2ZW50XG5cbiAgICBtZXRob2QgcG9pbnRlcklkIDogaW50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHJlc3N1cmUgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGFuZ2VudGlhbFByZXNzdXJlIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRpbHRYIDogaW50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0aWx0WSA6IGludCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdHdpc3QgOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBvaW50ZXJUeXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlzUHJpbWFyeSA6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgc3RvcmFnZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIGtleSA6IGpzX3N0cmluZyB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2xkVmFsdWUgOiBqc19zdHJpbmcgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5ld1ZhbHVlIDoganNfc3RyaW5nIHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB1cmwgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RvcmFnZUFyZWEgOiBzdG9yYWdlIHQgb3B0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBzdG9yYWdlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qga2V5IDogaW50IC0+IGpzX3N0cmluZyB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SXRlbSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SXRlbSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZUl0ZW0gOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbGVhciA6IHVuaXQgbWV0aFxuICBlbmRcblxuYW5kIGhhc2hDaGFuZ2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBvbGRVUkwgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmV3VVJMIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGFuaW1hdGlvbkV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbk5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZWxhcHNlZFRpbWUgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHNldWRvRWxlbWVudCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCB0cmFuc2l0aW9uRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgcHJvcGVydHlOYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVsYXBzZWRUaW1lIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBzZXVkb0VsZW1lbnQgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgbWVkaWFFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcbiAgZW5kXG5cbmFuZCBtZXNzYWdlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgZGF0YSA6IFVuc2FmZS5hbnkgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzb3VyY2UgOiBVbnNhZmUuYW55IG9wdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgbm9kZVNlbGVjdG9yID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHF1ZXJ5U2VsZWN0b3IgOiBqc19zdHJpbmcgdCAtPiBlbGVtZW50IHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBxdWVyeVNlbGVjdG9yQWxsIDoganNfc3RyaW5nIHQgLT4gZWxlbWVudCBEb20ubm9kZUxpc3QgdCBtZXRoXG4gIGVuZFxuXG5hbmQgdG9rZW5MaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaXRlbSA6IGludCAtPiBqc19zdHJpbmcgdCBvcHRkZWYgbWV0aFxuXG4gICAgbWV0aG9kIGNvbnRhaW5zIDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBhZGQgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmUgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0b2dnbGUgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIHN0cmluZ2lmaWVyIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuYW5kIGVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IERvbS5lbGVtZW50XG5cbiAgICBpbmhlcml0IG5vZGVTZWxlY3RvclxuXG4gICAgbWV0aG9kIGlkIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRpdGxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxhbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGlyIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNsYXNzTmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjbGFzc0xpc3QgOiB0b2tlbkxpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xvc2VzdCA6IGpzX3N0cmluZyB0IC0+IGVsZW1lbnQgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHN0eWxlIDogY3NzU3R5bGVEZWNsYXJhdGlvbiB0IHByb3BcblxuICAgIG1ldGhvZCBpbm5lckhUTUwgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3V0ZXJIVE1MIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRleHRDb250ZW50IDoganNfc3RyaW5nIHQgb3B0IHByb3BcblxuICAgIG1ldGhvZCBpbm5lclRleHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2xpZW50TGVmdCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xpZW50VG9wIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbGllbnRXaWR0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xpZW50SGVpZ2h0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvZmZzZXRMZWZ0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvZmZzZXRUb3AgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldFBhcmVudCA6IGVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldFdpZHRoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvZmZzZXRIZWlnaHQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcm9sbExlZnQgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHNjcm9sbFRvcCA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2Nyb2xsV2lkdGggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHNjcm9sbEhlaWdodCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgZ2V0Q2xpZW50UmVjdHMgOiBjbGllbnRSZWN0TGlzdCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgOiBjbGllbnRSZWN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNjcm9sbEludG9WaWV3IDogYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsaWNrIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZm9jdXMgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibHVyIDogdW5pdCBtZXRoXG5cbiAgICBpbmhlcml0IGV2ZW50VGFyZ2V0XG4gIGVuZFxuXG5hbmQgY2xpZW50UmVjdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0b3AgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmlnaHQgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYm90dG9tIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxlZnQgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBmbG9hdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGZsb2F0IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgY2xpZW50UmVjdExpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+IGNsaWVudFJlY3QgdCBvcHQgbWV0aFxuICBlbmRcblxubGV0IG5vX2hhbmRsZXIgOiAoJ2EsICdiKSBldmVudF9saXN0ZW5lciA9IERvbS5ub19oYW5kbGVyXG5cbmxldCBoYW5kbGVyID0gRG9tLmhhbmRsZXJcblxubGV0IGZ1bGxfaGFuZGxlciA9IERvbS5mdWxsX2hhbmRsZXJcblxubGV0IGludm9rZV9oYW5kbGVyID0gRG9tLmludm9rZV9oYW5kbGVyXG5cbm1vZHVsZSBFdmVudCA9IHN0cnVjdFxuICB0eXBlICdhIHR5cCA9ICdhIERvbS5FdmVudC50eXBcblxuICBsZXQgY2xpY2sgPSBEb20uRXZlbnQubWFrZSBcImNsaWNrXCJcblxuICBsZXQgY29weSA9IERvbS5FdmVudC5tYWtlIFwiY29weVwiXG5cbiAgbGV0IGN1dCA9IERvbS5FdmVudC5tYWtlIFwiY3V0XCJcblxuICBsZXQgcGFzdGUgPSBEb20uRXZlbnQubWFrZSBcInBhc3RlXCJcblxuICBsZXQgZGJsY2xpY2sgPSBEb20uRXZlbnQubWFrZSBcImRibGNsaWNrXCJcblxuICBsZXQgbW91c2Vkb3duID0gRG9tLkV2ZW50Lm1ha2UgXCJtb3VzZWRvd25cIlxuXG4gIGxldCBtb3VzZXVwID0gRG9tLkV2ZW50Lm1ha2UgXCJtb3VzZXVwXCJcblxuICBsZXQgbW91c2VvdmVyID0gRG9tLkV2ZW50Lm1ha2UgXCJtb3VzZW92ZXJcIlxuXG4gIGxldCBtb3VzZW1vdmUgPSBEb20uRXZlbnQubWFrZSBcIm1vdXNlbW92ZVwiXG5cbiAgbGV0IG1vdXNlb3V0ID0gRG9tLkV2ZW50Lm1ha2UgXCJtb3VzZW91dFwiXG5cbiAgbGV0IGtleXByZXNzID0gRG9tLkV2ZW50Lm1ha2UgXCJrZXlwcmVzc1wiXG5cbiAgbGV0IGtleWRvd24gPSBEb20uRXZlbnQubWFrZSBcImtleWRvd25cIlxuXG4gIGxldCBrZXl1cCA9IERvbS5FdmVudC5tYWtlIFwia2V5dXBcIlxuXG4gIGxldCBtb3VzZXdoZWVsID0gRG9tLkV2ZW50Lm1ha2UgXCJtb3VzZXdoZWVsXCJcblxuICBsZXQgd2hlZWwgPSBEb20uRXZlbnQubWFrZSBcIndoZWVsXCJcblxuICBsZXQgX0RPTU1vdXNlU2Nyb2xsID0gRG9tLkV2ZW50Lm1ha2UgXCJET01Nb3VzZVNjcm9sbFwiXG5cbiAgbGV0IHRvdWNoc3RhcnQgPSBEb20uRXZlbnQubWFrZSBcInRvdWNoc3RhcnRcIlxuXG4gIGxldCB0b3VjaG1vdmUgPSBEb20uRXZlbnQubWFrZSBcInRvdWNobW92ZVwiXG5cbiAgbGV0IHRvdWNoZW5kID0gRG9tLkV2ZW50Lm1ha2UgXCJ0b3VjaGVuZFwiXG5cbiAgbGV0IHRvdWNoY2FuY2VsID0gRG9tLkV2ZW50Lm1ha2UgXCJ0b3VjaGNhbmNlbFwiXG5cbiAgbGV0IGRyYWdzdGFydCA9IERvbS5FdmVudC5tYWtlIFwiZHJhZ3N0YXJ0XCJcblxuICBsZXQgZHJhZ2VuZCA9IERvbS5FdmVudC5tYWtlIFwiZHJhZ2VuZFwiXG5cbiAgbGV0IGRyYWdlbnRlciA9IERvbS5FdmVudC5tYWtlIFwiZHJhZ2VudGVyXCJcblxuICBsZXQgZHJhZ292ZXIgPSBEb20uRXZlbnQubWFrZSBcImRyYWdvdmVyXCJcblxuICBsZXQgZHJhZ2xlYXZlID0gRG9tLkV2ZW50Lm1ha2UgXCJkcmFnbGVhdmVcIlxuXG4gIGxldCBkcmFnID0gRG9tLkV2ZW50Lm1ha2UgXCJkcmFnXCJcblxuICBsZXQgZHJvcCA9IERvbS5FdmVudC5tYWtlIFwiZHJvcFwiXG5cbiAgbGV0IGhhc2hjaGFuZ2UgPSBEb20uRXZlbnQubWFrZSBcImhhc2hjaGFuZ2VcIlxuXG4gIGxldCBjaGFuZ2UgPSBEb20uRXZlbnQubWFrZSBcImNoYW5nZVwiXG5cbiAgbGV0IGlucHV0ID0gRG9tLkV2ZW50Lm1ha2UgXCJpbnB1dFwiXG5cbiAgbGV0IHRpbWV1cGRhdGUgPSBEb20uRXZlbnQubWFrZSBcInRpbWV1cGRhdGVcIlxuXG4gIGxldCBzdWJtaXQgPSBEb20uRXZlbnQubWFrZSBcInN1Ym1pdFwiXG5cbiAgbGV0IHNjcm9sbCA9IERvbS5FdmVudC5tYWtlIFwic2Nyb2xsXCJcblxuICBsZXQgZm9jdXMgPSBEb20uRXZlbnQubWFrZSBcImZvY3VzXCJcblxuICBsZXQgYmx1ciA9IERvbS5FdmVudC5tYWtlIFwiYmx1clwiXG5cbiAgbGV0IGxvYWQgPSBEb20uRXZlbnQubWFrZSBcImxvYWRcIlxuXG4gIGxldCB1bmxvYWQgPSBEb20uRXZlbnQubWFrZSBcInVubG9hZFwiXG5cbiAgbGV0IGJlZm9yZXVubG9hZCA9IERvbS5FdmVudC5tYWtlIFwiYmVmb3JldW5sb2FkXCJcblxuICBsZXQgcmVzaXplID0gRG9tLkV2ZW50Lm1ha2UgXCJyZXNpemVcIlxuXG4gIGxldCBvcmllbnRhdGlvbmNoYW5nZSA9IERvbS5FdmVudC5tYWtlIFwib3JpZW50YXRpb25jaGFuZ2VcIlxuXG4gIGxldCBwb3BzdGF0ZSA9IERvbS5FdmVudC5tYWtlIFwicG9wc3RhdGVcIlxuXG4gIGxldCBlcnJvciA9IERvbS5FdmVudC5tYWtlIFwiZXJyb3JcIlxuXG4gIGxldCBhYm9ydCA9IERvbS5FdmVudC5tYWtlIFwiYWJvcnRcIlxuXG4gIGxldCBzZWxlY3QgPSBEb20uRXZlbnQubWFrZSBcInNlbGVjdFwiXG5cbiAgbGV0IG9ubGluZSA9IERvbS5FdmVudC5tYWtlIFwib25saW5lXCJcblxuICBsZXQgb2ZmbGluZSA9IERvbS5FdmVudC5tYWtlIFwib2ZmbGluZVwiXG5cbiAgbGV0IGNoZWNraW5nID0gRG9tLkV2ZW50Lm1ha2UgXCJjaGVja2luZ1wiXG5cbiAgbGV0IG5vdXBkYXRlID0gRG9tLkV2ZW50Lm1ha2UgXCJub3VwZGF0ZVwiXG5cbiAgbGV0IGRvd25sb2FkaW5nID0gRG9tLkV2ZW50Lm1ha2UgXCJkb3dubG9hZGluZ1wiXG5cbiAgbGV0IHByb2dyZXNzID0gRG9tLkV2ZW50Lm1ha2UgXCJwcm9ncmVzc1wiXG5cbiAgbGV0IHVwZGF0ZXJlYWR5ID0gRG9tLkV2ZW50Lm1ha2UgXCJ1cGRhdGVyZWFkeVwiXG5cbiAgbGV0IGNhY2hlZCA9IERvbS5FdmVudC5tYWtlIFwiY2FjaGVkXCJcblxuICBsZXQgb2Jzb2xldGUgPSBEb20uRXZlbnQubWFrZSBcIm9ic29sZXRlXCJcblxuICBsZXQgZG9tQ29udGVudExvYWRlZCA9IERvbS5FdmVudC5tYWtlIFwiRE9NQ29udGVudExvYWRlZFwiXG5cbiAgbGV0IGFuaW1hdGlvbnN0YXJ0ID0gRG9tLkV2ZW50Lm1ha2UgXCJhbmltYXRpb25zdGFydFwiXG5cbiAgbGV0IGFuaW1hdGlvbmVuZCA9IERvbS5FdmVudC5tYWtlIFwiYW5pbWF0aW9uZW5kXCJcblxuICBsZXQgYW5pbWF0aW9uaXRlcmF0aW9uID0gRG9tLkV2ZW50Lm1ha2UgXCJhbmltYXRpb25pdGVyYXRpb25cIlxuXG4gIGxldCBhbmltYXRpb25jYW5jZWwgPSBEb20uRXZlbnQubWFrZSBcImFuaW1hdGlvbmNhbmNlbFwiXG5cbiAgbGV0IHRyYW5zaXRpb25ydW4gPSBEb20uRXZlbnQubWFrZSBcInRyYW5zaXRpb25ydW5cIlxuXG4gIGxldCB0cmFuc2l0aW9uc3RhcnQgPSBEb20uRXZlbnQubWFrZSBcInRyYW5zaXRpb25zdGFydFwiXG5cbiAgbGV0IHRyYW5zaXRpb25lbmQgPSBEb20uRXZlbnQubWFrZSBcInRyYW5zaXRpb25lbmRcIlxuXG4gIGxldCB0cmFuc2l0aW9uY2FuY2VsID0gRG9tLkV2ZW50Lm1ha2UgXCJ0cmFuc2l0aW9uY2FuY2VsXCJcblxuICBsZXQgY2FucGxheSA9IERvbS5FdmVudC5tYWtlIFwiY2FucGxheVwiXG5cbiAgbGV0IGNhbnBsYXl0aHJvdWdoID0gRG9tLkV2ZW50Lm1ha2UgXCJjYW5wbGF5dGhyb3VnaFwiXG5cbiAgbGV0IGR1cmF0aW9uY2hhbmdlID0gRG9tLkV2ZW50Lm1ha2UgXCJkdXJhdGlvbmNoYW5nZVwiXG5cbiAgbGV0IGVtcHRpZWQgPSBEb20uRXZlbnQubWFrZSBcImVtcHRpZWRcIlxuXG4gIGxldCBlbmRlZCA9IERvbS5FdmVudC5tYWtlIFwiZW5kZWRcIlxuXG4gIGxldCBnb3Rwb2ludGVyY2FwdHVyZSA9IERvbS5FdmVudC5tYWtlIFwiZ290cG9pbnRlcmNhcHR1cmVcIlxuXG4gIGxldCBsb2FkZWRkYXRhID0gRG9tLkV2ZW50Lm1ha2UgXCJsb2FkZWRkYXRhXCJcblxuICBsZXQgbG9hZGVkbWV0YWRhdGEgPSBEb20uRXZlbnQubWFrZSBcImxvYWRlZG1ldGFkYXRhXCJcblxuICBsZXQgbG9hZHN0YXJ0ID0gRG9tLkV2ZW50Lm1ha2UgXCJsb2Fkc3RhcnRcIlxuXG4gIGxldCBsb3N0cG9pbnRlcmNhcHR1cmUgPSBEb20uRXZlbnQubWFrZSBcImxvc3Rwb2ludGVyY2FwdHVyZVwiXG5cbiAgbGV0IG1lc3NhZ2UgPSBEb20uRXZlbnQubWFrZSBcIm1lc3NhZ2VcIlxuXG4gIGxldCBwYXVzZSA9IERvbS5FdmVudC5tYWtlIFwicGF1c2VcIlxuXG4gIGxldCBwbGF5ID0gRG9tLkV2ZW50Lm1ha2UgXCJwbGF5XCJcblxuICBsZXQgcGxheWluZyA9IERvbS5FdmVudC5tYWtlIFwicGxheWluZ1wiXG5cbiAgbGV0IHBvaW50ZXJlbnRlciA9IERvbS5FdmVudC5tYWtlIFwicG9pbnRlcmVudGVyXCJcblxuICBsZXQgcG9pbnRlcmNhbmNlbCA9IERvbS5FdmVudC5tYWtlIFwicG9pbnRlcmNhbmNlbFwiXG5cbiAgbGV0IHBvaW50ZXJkb3duID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVyZG93blwiXG5cbiAgbGV0IHBvaW50ZXJsZWF2ZSA9IERvbS5FdmVudC5tYWtlIFwicG9pbnRlcmxlYXZlXCJcblxuICBsZXQgcG9pbnRlcm1vdmUgPSBEb20uRXZlbnQubWFrZSBcInBvaW50ZXJtb3ZlXCJcblxuICBsZXQgcG9pbnRlcm91dCA9IERvbS5FdmVudC5tYWtlIFwicG9pbnRlcm91dFwiXG5cbiAgbGV0IHBvaW50ZXJvdmVyID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVyb3ZlclwiXG5cbiAgbGV0IHBvaW50ZXJ1cCA9IERvbS5FdmVudC5tYWtlIFwicG9pbnRlcnVwXCJcblxuICBsZXQgcmF0ZWNoYW5nZSA9IERvbS5FdmVudC5tYWtlIFwicmF0ZWNoYW5nZVwiXG5cbiAgbGV0IHNlZWtlZCA9IERvbS5FdmVudC5tYWtlIFwic2Vla2VkXCJcblxuICBsZXQgc2Vla2luZyA9IERvbS5FdmVudC5tYWtlIFwic2Vla2luZ1wiXG5cbiAgbGV0IHN0YWxsZWQgPSBEb20uRXZlbnQubWFrZSBcInN0YWxsZWRcIlxuXG4gIGxldCBzdXNwZW5kID0gRG9tLkV2ZW50Lm1ha2UgXCJzdXNwZW5kXCJcblxuICBsZXQgdm9sdW1lY2hhbmdlID0gRG9tLkV2ZW50Lm1ha2UgXCJ2b2x1bWVjaGFuZ2VcIlxuXG4gIGxldCB3YWl0aW5nID0gRG9tLkV2ZW50Lm1ha2UgXCJ3YWl0aW5nXCJcblxuICBsZXQgbWFrZSA9IERvbS5FdmVudC5tYWtlXG5lbmRcblxudHlwZSBldmVudF9saXN0ZW5lcl9pZCA9IERvbS5ldmVudF9saXN0ZW5lcl9pZFxuXG5sZXQgYWRkRXZlbnRMaXN0ZW5lciA9IERvbS5hZGRFdmVudExpc3RlbmVyXG5cbmxldCBhZGRFdmVudExpc3RlbmVyV2l0aE9wdGlvbnMgPSBEb20uYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zXG5cbmxldCByZW1vdmVFdmVudExpc3RlbmVyID0gRG9tLnJlbW92ZUV2ZW50TGlzdGVuZXJcblxubGV0IGNyZWF0ZUN1c3RvbUV2ZW50ID0gRG9tLmNyZWF0ZUN1c3RvbUV2ZW50XG5cbmNsYXNzIHR5cGUgWydub2RlXSBjb2xsZWN0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaXRlbSA6IGludCAtPiAnbm9kZSB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgbmFtZWRJdGVtIDoganNfc3RyaW5nIHQgLT4gJ25vZGUgdCBvcHQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSBodG1sRWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBoZWFkRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIHByb2ZpbGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGxpbmtFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZGlzYWJsZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoYXJzZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY3Jvc3NvcmlnaW4gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaHJlZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBocmVmbGFuZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtZWRpYSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZWwgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcmV2IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdGl0bGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgdGV4dCA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgbWV0YUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBjb250ZW50IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGh0dHBFcXVpdiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNjaGVtZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgYmFzZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBocmVmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldCA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgc3R5bGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZGlzYWJsZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1lZGlhIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBib2R5RWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBmb3JtRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGVsZW1lbnRzIDogZWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWNjZXB0Q2hhcnNldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhY3Rpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZW5jdHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfbWV0aG9kIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzdWJtaXQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXNldCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG9uc3VibWl0IDogKCdzZWxmIHQsIHN1Ym1pdEV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIG9wdEdyb3VwRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGRpc2FibGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBsYWJlbCA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgb3B0aW9uRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgb3B0R3JvdXBFbGVtZW50XG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkZWZhdWx0U2VsZWN0ZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRleHQgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaW5kZXggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgc2VsZWN0RWxlbWVudCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0ZWRJbmRleCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgdmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9wdGlvbnMgOiBvcHRpb25FbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGlzYWJsZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG11bHRpcGxlIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNpemUgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHRhYkluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBhZGQgOiAjb3B0R3JvdXBFbGVtZW50IHQgLT4gI29wdEdyb3VwRWxlbWVudCB0IG9wdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmUgOiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVxdWlyZWQgOiBib29sIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmNoYW5nZSA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25pbnB1dCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGlucHV0RWxlbWVudCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZGVmYXVsdFZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRlZmF1bHRDaGVja2VkIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWNjZXB0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFjY2Vzc0tleSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2hlY2tlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgZGlzYWJsZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1heExlbmd0aCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWFkT25seSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgcmVxdWlyZWQgOiBib29sIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzaXplIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBzcmMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFiSW5kZXggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVzZU1hcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzZWxlY3QgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmaWxlcyA6IEZpbGUuZmlsZUxpc3QgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBsYWNlaG9sZGVyIDoganNfc3RyaW5nIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZWxlY3Rpb25EaXJlY3Rpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0aW9uU3RhcnQgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdGlvbkVuZCA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgb25zZWxlY3QgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uY2hhbmdlIDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmlucHV0IDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmJsdXIgOiAoJ3NlbGYgdCwgZm9jdXNFdmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25mb2N1cyA6ICgnc2VsZiB0LCBmb2N1c0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdGV4dEFyZWFFbGVtZW50ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBkZWZhdWx0VmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2Nlc3NLZXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29scyA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgZGlzYWJsZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVhZE9ubHkgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJvd3MgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdGlvbkRpcmVjdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzZWxlY3Rpb25FbmQgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdGlvblN0YXJ0IDogaW50IHByb3BcblxuICAgIG1ldGhvZCB0YWJJbmRleCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVxdWlyZWQgOiBib29sIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwbGFjZWhvbGRlciA6IGpzX3N0cmluZyB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25zZWxlY3QgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uY2hhbmdlIDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmlucHV0IDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmJsdXIgOiAoJ3NlbGYgdCwgZm9jdXNFdmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25mb2N1cyA6ICgnc2VsZiB0LCBmb2N1c0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgYnV0dG9uRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWNjZXNzS2V5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRpc2FibGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRhYkluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgbGFiZWxFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2Nlc3NLZXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaHRtbEZvciA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZmllbGRTZXRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgbGVnZW5kRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWNjZXNzS2V5IDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB1TGlzdEVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgb0xpc3RFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGRMaXN0RWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBsaUVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgZGl2RWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBwYXJhZ3JhcGhFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGhlYWRpbmdFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIHF1b3RlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGNpdGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHByZUVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgYnJFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGhyRWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBtb2RFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgY2l0ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkYXRlVGltZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgYW5jaG9yRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGFjY2Vzc0tleSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaGFyc2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvb3JkcyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBocmVmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhyZWZsYW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcmVsIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJldiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzaGFwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0YWJJbmRleCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBpbWFnZUVsZW1lbnQgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGFsdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzcmMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdXNlTWFwIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGlzTWFwIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBuYXR1cmFsV2lkdGggOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuYXR1cmFsSGVpZ2h0IDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29tcGxldGUgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG9ubG9hZCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25lcnJvciA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25hYm9ydCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIG9iamVjdEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvZGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYXJjaGl2ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb2RlQmFzZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb2RlVHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkYXRhIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRlY2xhcmUgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHN0YW5kYnkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFiSW5kZXggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHVzZU1hcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkb2N1bWVudCA6IERvbS5lbGVtZW50IERvbS5kb2N1bWVudCB0IG9wdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHBhcmFtRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdmFsdWVUeXBlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBhcmVhRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGFjY2Vzc0tleSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29vcmRzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhyZWYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgbm9IcmVmIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBzaGFwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0YWJJbmRleCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBtYXBFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgYXJlYXMgOiBhcmVhRWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHNjcmlwdEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCB0ZXh0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoYXJzZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGVmZXIgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNyYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhc3luYyA6IGJvb2wgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGVtYmVkRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIHNyYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRhYmxlQ2VsbEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBjZWxsSW5kZXggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFiYnIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYXhpcyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaE9mZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb2xTcGFuIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBoZWFkZXJzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJvd1NwYW4gOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHNjb3BlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZBbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdGFibGVSb3dFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2Qgcm93SW5kZXggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNlY3Rpb25Sb3dJbmRleCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2VsbHMgOiB0YWJsZUNlbGxFbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2ggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2hPZmYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdkFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGluc2VydENlbGwgOiBpbnQgLT4gdGFibGVDZWxsRWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVDZWxsIDogaW50IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSB0YWJsZUNvbEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBhbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaE9mZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzcGFuIDogaW50IHByb3BcblxuICAgIG1ldGhvZCB2QWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRhYmxlU2VjdGlvbkVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBhbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaE9mZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2QWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgcm93cyA6IHRhYmxlUm93RWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGluc2VydFJvdyA6IGludCAtPiB0YWJsZVJvd0VsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlUm93IDogaW50IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSB0YWJsZUNhcHRpb25FbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIHRhYmxlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGNhcHRpb24gOiB0YWJsZUNhcHRpb25FbGVtZW50IHQgcHJvcFxuXG4gICAgbWV0aG9kIHRIZWFkIDogdGFibGVTZWN0aW9uRWxlbWVudCB0IHByb3BcblxuICAgIG1ldGhvZCB0Rm9vdCA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgdCBwcm9wXG5cbiAgICBtZXRob2Qgcm93cyA6IHRhYmxlUm93RWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRCb2RpZXMgOiB0YWJsZVNlY3Rpb25FbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNlbGxQYWRkaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNlbGxTcGFjaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZyYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJ1bGVzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHN1bW1hcnkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY3JlYXRlVEhlYWQgOiB0YWJsZVNlY3Rpb25FbGVtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVRIZWFkIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlVEZvb3QgOiB0YWJsZVNlY3Rpb25FbGVtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVRGb290IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlQ2FwdGlvbiA6IHRhYmxlQ2FwdGlvbkVsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlQ2FwdGlvbiA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluc2VydFJvdyA6IGludCAtPiB0YWJsZVJvd0VsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlUm93IDogaW50IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSB0aW1lUmFuZ2VzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RhcnQgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGVuZF8gOiBpbnQgLT4gZmxvYXQgbWV0aFxuICBlbmRcblxudHlwZSBuZXR3b3JrU3RhdGUgPVxuICB8IE5FVFdPUktfRU1QVFlcbiAgfCBORVRXT1JLX0lETEVcbiAgfCBORVRXT1JLX0xPQURJTkdcbiAgfCBORVRXT1JLX05PX1NPVVJDRVxuXG50eXBlIHJlYWR5U3RhdGUgPVxuICB8IEhBVkVfTk9USElOR1xuICB8IEhBVkVfTUVUQURBVEFcbiAgfCBIQVZFX0NVUlJFTlRfREFUQVxuICB8IEhBVkVfRlVUVVJFX0RBVEFcbiAgfCBIQVZFX0VOT1VHSF9EQVRBXG5cbigqIGh0dHA6Ly93d3cudzNzY2hvb2xzLmNvbS90YWdzL3JlZl9hdl9kb20uYXNwICopXG4oKiBvbmx5IGZlYXR1cmVzIHN1cHBvcnRlZCBieSBhbGwgYnJvd3Nlci4gKElFOSspICopXG5jbGFzcyB0eXBlIG1lZGlhRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGNhblBsYXlUeXBlIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGxvYWQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBwbGF5IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcGF1c2UgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhdXRvcGxheSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgYnVmZmVyZWQgOiB0aW1lUmFuZ2VzIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRyb2xzIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBjdXJyZW50U3JjIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN1cnJlbnRUaW1lIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGR1cmF0aW9uIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVuZGVkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsb29wIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBtZWRpYWdyb3VwIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG11dGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBuZXR3b3JrU3RhdGVfaW50IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuZXR3b3JrU3RhdGUgOiBuZXR3b3JrU3RhdGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhdXNlZCA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGxheWJhY2tSYXRlIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHBsYXllZCA6IHRpbWVSYW5nZXMgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHJlbG9hZCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZWFkeVN0YXRlX2ludCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZSA6IHJlYWR5U3RhdGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNlZWthYmxlIDogdGltZVJhbmdlcyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZWVraW5nIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzcmMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgdm9sdW1lIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIG9uY2FucGxheSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25jYW5wbGF5dGhyb3VnaCA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kdXJhdGlvbmNoYW5nZSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25lbXB0aWVkIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmVuZGVkIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmxvYWRlZGRhdGEgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubG9hZGVkbWV0YWRhdGEgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubG9hZHN0YXJ0IDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBhdXNlIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBsYXkgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucGxheWluZyA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25yYXRlY2hhbmdlIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnNlZWtlZCA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25zZWVraW5nIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnN0YWxsZWQgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uc3VzcGVuZCA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb252b2x1bWVjaGFuZ2UgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ud2FpdGluZyA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGF1ZGlvRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgbWVkaWFFbGVtZW50XG4gIGVuZFxuXG5jbGFzcyB0eXBlIHZpZGVvRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgbWVkaWFFbGVtZW50XG4gIGVuZFxuXG50eXBlIGNvbnRleHQgPSBqc19zdHJpbmcgdFxuXG5sZXQgXzJkXyA9IEpzLnN0cmluZyBcIjJkXCJcblxudHlwZSBjYW52YXNQYXR0ZXJuXG5cbmNsYXNzIHR5cGUgY2FudmFzRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIHdpZHRoIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHRvRGF0YVVSTCA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0RhdGFVUkxfdHlwZSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0RhdGFVUkxfdHlwZV9jb21wcmVzc2lvbiA6IGpzX3N0cmluZyB0IC0+IGZsb2F0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRDb250ZXh0IDoganNfc3RyaW5nIHQgLT4gY2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHQgbWV0aFxuICBlbmRcblxuYW5kIGNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjYW52YXMgOiBjYW52YXNFbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNhdmUgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXN0b3JlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2NhbGUgOiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByb3RhdGUgOiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0cmFuc2xhdGUgOiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0cmFuc2Zvcm0gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRUcmFuc2Zvcm0gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnbG9iYWxBbHBoYSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBnbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3Ryb2tlU3R5bGUgOiBqc19zdHJpbmcgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0cm9rZVN0eWxlX2dyYWRpZW50IDogY2FudmFzR3JhZGllbnQgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0cm9rZVN0eWxlX3BhdHRlcm4gOiBjYW52YXNQYXR0ZXJuIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmaWxsU3R5bGUgOiBqc19zdHJpbmcgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbGxTdHlsZV9ncmFkaWVudCA6IGNhbnZhc0dyYWRpZW50IHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmaWxsU3R5bGVfcGF0dGVybiA6IGNhbnZhc1BhdHRlcm4gdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNyZWF0ZUxpbmVhckdyYWRpZW50IDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGNhbnZhc0dyYWRpZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVJhZGlhbEdyYWRpZW50IDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGNhbnZhc0dyYWRpZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVBhdHRlcm4gOiBpbWFnZUVsZW1lbnQgdCAtPiBqc19zdHJpbmcgdCAtPiBjYW52YXNQYXR0ZXJuIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVBhdHRlcm5fZnJvbUNhbnZhcyA6XG4gICAgICBjYW52YXNFbGVtZW50IHQgLT4ganNfc3RyaW5nIHQgLT4gY2FudmFzUGF0dGVybiB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVQYXR0ZXJuX2Zyb21WaWRlbyA6IHZpZGVvRWxlbWVudCB0IC0+IGpzX3N0cmluZyB0IC0+IGNhbnZhc1BhdHRlcm4gdCBtZXRoXG5cbiAgICBtZXRob2QgbGluZVdpZHRoIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGxpbmVDYXAgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGluZUpvaW4gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWl0ZXJMaW1pdCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBzaGFkb3dPZmZzZXRYIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHNoYWRvd09mZnNldFkgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2Qgc2hhZG93Qmx1ciA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBzaGFkb3dDb2xvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjbGVhclJlY3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmaWxsUmVjdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0cm9rZVJlY3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBiZWdpblBhdGggOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbG9zZVBhdGggOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBtb3ZlVG8gOiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBsaW5lVG8gOiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBxdWFkcmF0aWNDdXJ2ZVRvIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmV6aWVyQ3VydmVUbyA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFyY1RvIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVjdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFyYyA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmaWxsIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3Ryb2tlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xpcCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGlzUG9pbnRJblBhdGggOiBmbG9hdCAtPiBmbG9hdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdGb2N1c1JpbmcgOiAjZWxlbWVudCB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGJvb2wgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGZvbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dEFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRleHRCYXNlbGluZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmaWxsVGV4dCA6IGpzX3N0cmluZyB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbGxUZXh0X3dpdGhXaWR0aCA6IGpzX3N0cmluZyB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0cm9rZVRleHQgOiBqc19zdHJpbmcgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdHJva2VUZXh0X3dpdGhXaWR0aCA6IGpzX3N0cmluZyB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG1lYXN1cmVUZXh0IDoganNfc3RyaW5nIHQgLT4gdGV4dE1ldHJpY3MgdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlIDogaW1hZ2VFbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX3dpdGhTaXplIDpcbiAgICAgIGltYWdlRWxlbWVudCB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdJbWFnZV9mdWxsIDpcbiAgICAgICAgIGltYWdlRWxlbWVudCB0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdJbWFnZV9mcm9tQ2FudmFzIDogY2FudmFzRWxlbWVudCB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdJbWFnZV9mcm9tQ2FudmFzV2l0aFNpemUgOlxuICAgICAgY2FudmFzRWxlbWVudCB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdJbWFnZV9mdWxsRnJvbUNhbnZhcyA6XG4gICAgICAgICBjYW52YXNFbGVtZW50IHRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Zyb21WaWRlb1dpdGhWaWRlbyA6IHZpZGVvRWxlbWVudCB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdJbWFnZV9mcm9tVmlkZW9XaXRoU2l6ZSA6XG4gICAgICB2aWRlb0VsZW1lbnQgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2VfZnVsbEZyb21WaWRlbyA6XG4gICAgICAgICB2aWRlb0VsZW1lbnQgdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVJbWFnZURhdGEgOiBpbnQgLT4gaW50IC0+IGltYWdlRGF0YSB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRJbWFnZURhdGEgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBpbWFnZURhdGEgdCBtZXRoXG5cbiAgICBtZXRob2QgcHV0SW1hZ2VEYXRhIDogaW1hZ2VEYXRhIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5hbmQgY2FudmFzR3JhZGllbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYWRkQ29sb3JTdG9wIDogZmxvYXQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5hbmQgdGV4dE1ldHJpY3MgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgd2lkdGggOiBmbG9hdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgaW1hZ2VEYXRhID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHdpZHRoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRhdGEgOiBjYW52YXNQaXhlbEFycmF5IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGNhbnZhc1BpeGVsQXJyYXkgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmV4dGVybmFsIHBpeGVsX2dldCA6IGNhbnZhc1BpeGVsQXJyYXkgdCAtPiBpbnQgLT4gaW50ID0gXCJjYW1sX2pzX2dldFwiXG5cbmV4dGVybmFsIHBpeGVsX3NldCA6IGNhbnZhc1BpeGVsQXJyYXkgdCAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfanNfc2V0XCJcblxuY2xhc3MgdHlwZSByYW5nZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjb2xsYXBzZWQgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0YXJ0T2Zmc2V0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlbmRPZmZzZXQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0YXJ0Q29udGFpbmVyIDogRG9tLm5vZGUgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZW5kQ29udGFpbmVyIDogRG9tLm5vZGUgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2V0U3RhcnQgOiBEb20ubm9kZSB0IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRFbmQgOiBEb20ubm9kZSB0IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRTdGFydEJlZm9yZSA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RW5kQmVmb3JlIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRTdGFydEFmdGVyIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRFbmRBZnRlciA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2VsZWN0Tm9kZSA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2VsZWN0Tm9kZUNvbnRlbnRzIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb2xsYXBzZSA6IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbG9uZUNvbnRlbnRzIDogRG9tLmRvY3VtZW50RnJhZ21lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZXh0cmFjdENvbnRlbnRzIDogRG9tLmRvY3VtZW50RnJhZ21lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlQ29udGVudHMgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpbnNlcnROb2RlIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdXJyb3VuZENvbnRlbnRzIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbG9uZVJhbmdlIDogcmFuZ2UgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG4gIGVuZFxuXG4oKiogSW5mb3JtYXRpb24gb24gY3VycmVudCBzZWxlY3Rpb24gKilcbmNsYXNzIHR5cGUgc2VsZWN0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFuY2hvck5vZGUgOiBEb20ubm9kZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbmNob3JPZmZzZXQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZvY3VzTm9kZSA6IERvbS5ub2RlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZvY3VzT2Zmc2V0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpc0NvbGxhcHNlZCA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmFuZ2VDb3VudCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0UmFuZ2VBdCA6IGludCAtPiByYW5nZSB0IG1ldGhcblxuICAgIG1ldGhvZCBjb2xsYXBzZSA6IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBleHRlbmQgOiBEb20ubm9kZSB0IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBtb2RpZnkgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb2xsYXBzZVRvU3RhcnQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb2xsYXBzZVRvRW5kIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2VsZWN0QWxsQ2hpbGRyZW4gOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFkZFJhbmdlIDogcmFuZ2UgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVSYW5nZSA6IHJhbmdlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlQWxsUmFuZ2VzIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlRnJvbURvY3VtZW50IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29udGFpbnNOb2RlIDogRG9tLm5vZGUgdCAtPiBib29sIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZG9jdW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFtlbGVtZW50XSBEb20uZG9jdW1lbnRcblxuICAgIGluaGVyaXQgbm9kZVNlbGVjdG9yXG5cbiAgICBpbmhlcml0IGV2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2QgdGl0bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcmVmZXJyZXIgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZG9tYWluIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF9VUkwgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVhZCA6IGhlYWRFbGVtZW50IHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvZHkgOiBib2R5RWxlbWVudCB0IHByb3BcblxuICAgIG1ldGhvZCBkb2N1bWVudEVsZW1lbnQgOiBodG1sRWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbWFnZXMgOiBpbWFnZUVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhcHBsZXRzIDogZWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxpbmtzIDogZWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZvcm1zIDogZm9ybUVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbmNob3JzIDogZWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvb2tpZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkZXNpZ25Nb2RlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG9wZW5fIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xvc2UgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB3cml0ZSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGV4ZWNDb21tYW5kIDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IC0+IGpzX3N0cmluZyB0IG9wdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVSYW5nZSA6IHJhbmdlIHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlYWR5U3RhdGUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSA6IGpzX3N0cmluZyB0IC0+IGVsZW1lbnQgRG9tLm5vZGVMaXN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEVsZW1lbnRzQnlOYW1lIDoganNfc3RyaW5nIHQgLT4gZWxlbWVudCBEb20ubm9kZUxpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgYWN0aXZlRWxlbWVudCA6IGVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhpZGRlbiA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25mdWxsc2NyZWVuY2hhbmdlIDogKGRvY3VtZW50IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb253ZWJraXRmdWxsc2NyZWVuY2hhbmdlIDogKGRvY3VtZW50IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBpbmhlcml0IGV2ZW50VGFyZ2V0XG4gIGVuZFxuXG50eXBlIGludGVydmFsX2lkXG5cbnR5cGUgdGltZW91dF9pZFxuXG50eXBlIGFuaW1hdGlvbl9mcmFtZV9yZXF1ZXN0X2lkXG5cbmNsYXNzIHR5cGUgbG9jYXRpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgaHJlZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwcm90b2NvbCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBob3N0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhvc3RuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG9yaWdpbiA6IGpzX3N0cmluZyB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcG9ydCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYXRobmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzZWFyY2ggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaGFzaCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhc3NpZ24gOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXBsYWNlIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVsb2FkIDogdW5pdCBtZXRoXG4gIGVuZFxuXG5sZXQgbG9jYXRpb25fb3JpZ2luIChsb2MgOiBsb2NhdGlvbiB0KSA9XG4gIE9wdGRlZi5jYXNlXG4gICAgbG9jIyMub3JpZ2luXG4gICAgKGZ1biAoKSAtPlxuICAgICAgbGV0IHByb3RvY29sID0gbG9jIyMucHJvdG9jb2wgaW5cbiAgICAgIGxldCBob3N0bmFtZSA9IGxvYyMjLmhvc3RuYW1lIGluXG4gICAgICBsZXQgcG9ydCA9IGxvYyMjLnBvcnQgaW5cbiAgICAgIGlmIHByb3RvY29sIyMubGVuZ3RoID0gMCAmJiBob3N0bmFtZSMjLmxlbmd0aCA9IDBcbiAgICAgIHRoZW4gSnMuc3RyaW5nIFwiXCJcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IG9yaWdpbiA9IHByb3RvY29sIyNjb25jYXRfMiAoSnMuc3RyaW5nIFwiLy9cIikgaG9zdG5hbWUgaW5cbiAgICAgICAgaWYgcG9ydCMjLmxlbmd0aCA+IDAgdGhlbiBvcmlnaW4jI2NvbmNhdF8yIChKcy5zdHJpbmcgXCI6XCIpIGxvYyMjLnBvcnQgZWxzZSBvcmlnaW4pXG4gICAgKGZ1biBvIC0+IG8pXG5cbmNsYXNzIHR5cGUgaGlzdG9yeSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0YXRlIDogSnMuVW5zYWZlLmFueSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ28gOiBpbnQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJhY2sgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmb3J3YXJkIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcHVzaFN0YXRlIDogJ2EuICdhIC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXBsYWNlU3RhdGUgOiAnYS4gJ2EgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSB1bmRvTWFuYWdlciA9IG9iamVjdCBlbmRcblxuY2xhc3MgdHlwZSBuYXZpZ2F0b3IgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYXBwQ29kZU5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXBwTmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhcHBWZXJzaW9uIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvb2tpZUVuYWJsZWQgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uTGluZSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGxhdGZvcm0gOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdmVuZG9yIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVzZXJBZ2VudCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsYW5ndWFnZSA6IGpzX3N0cmluZyB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdXNlckxhbmd1YWdlIDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtYXhUb3VjaFBvaW50cyA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHNjcmVlbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB3aWR0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhdmFpbFdpZHRoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhdmFpbEhlaWdodCA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGFwcGxpY2F0aW9uQ2FjaGUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgc3RhdHVzIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB1cGRhdGUgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhYm9ydCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN3YXBDYWNoZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG9uY2hlY2tpbmcgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25lcnJvciA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbm5vdXBkYXRlIDogKGFwcGxpY2F0aW9uQ2FjaGUgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uZG93bmxvYWRpbmcgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25wcm9ncmVzcyA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbnVwZGF0ZXJlYWR5IDogKGFwcGxpY2F0aW9uQ2FjaGUgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uY2FjaGVkIDogKGFwcGxpY2F0aW9uQ2FjaGUgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9ub2Jzb2xldGUgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBpbmhlcml0IGV2ZW50VGFyZ2V0XG4gIGVuZFxuXG5jbGFzcyB0eXBlIF9VUkwgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY3JlYXRlT2JqZWN0VVJMIDogI0ZpbGUuYmxvYiB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCByZXZva2VPYmplY3RVUkwgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmNsYXNzIHR5cGUgd2luZG93ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFRhcmdldFxuXG4gICAgbWV0aG9kIGRvY3VtZW50IDogZG9jdW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXBwbGljYXRpb25DYWNoZSA6IGFwcGxpY2F0aW9uQ2FjaGUgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsb2NhdGlvbiA6IGxvY2F0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhpc3RvcnkgOiBoaXN0b3J5IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVuZG9NYW5hZ2VyIDogdW5kb01hbmFnZXIgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmF2aWdhdG9yIDogbmF2aWdhdG9yIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldFNlbGVjdGlvbiA6IHNlbGVjdGlvbiB0IG1ldGhcblxuICAgIG1ldGhvZCBjbG9zZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb3NlZCA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RvcCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZvY3VzIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmx1ciA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNjcm9sbCA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2Nyb2xsQnkgOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNlc3Npb25TdG9yYWdlIDogc3RvcmFnZSB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbG9jYWxTdG9yYWdlIDogc3RvcmFnZSB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdG9wIDogd2luZG93IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhcmVudCA6IHdpbmRvdyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmcmFtZUVsZW1lbnQgOiBlbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvcGVuXyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdCAtPiB3aW5kb3cgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGFsZXJ0IDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29uZmlybSA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgcHJvbXB0IDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBwcmludCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEludGVydmFsIDogKHVuaXQgLT4gdW5pdCkgSnMuY2FsbGJhY2sgLT4gZmxvYXQgLT4gaW50ZXJ2YWxfaWQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFySW50ZXJ2YWwgOiBpbnRlcnZhbF9pZCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRUaW1lb3V0IDogKHVuaXQgLT4gdW5pdCkgSnMuY2FsbGJhY2sgLT4gZmxvYXQgLT4gdGltZW91dF9pZCBtZXRoXG5cbiAgICBtZXRob2QgY2xlYXJUaW1lb3V0IDogdGltZW91dF9pZCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgOlxuICAgICAgKGZsb2F0IC0+IHVuaXQpIEpzLmNhbGxiYWNrIC0+IGFuaW1hdGlvbl9mcmFtZV9yZXF1ZXN0X2lkIG1ldGhcblxuICAgIG1ldGhvZCBjYW5jZWxBbmltYXRpb25GcmFtZSA6IGFuaW1hdGlvbl9mcmFtZV9yZXF1ZXN0X2lkIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNjcmVlbiA6IHNjcmVlbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbm5lcldpZHRoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbm5lckhlaWdodCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb3V0ZXJXaWR0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb3V0ZXJIZWlnaHQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldENvbXB1dGVkU3R5bGUgOiAjZWxlbWVudCB0IC0+IGNzc1N0eWxlRGVjbGFyYXRpb24gdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q29tcHV0ZWRTdHlsZV9wc2V1ZG9FbHQgOlxuICAgICAgI2VsZW1lbnQgdCAtPiBqc19zdHJpbmcgdCAtPiBjc3NTdHlsZURlY2xhcmF0aW9uIHQgbWV0aFxuXG4gICAgbWV0aG9kIGF0b2IgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgYnRvYSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBvbmxvYWQgOiAod2luZG93IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbnVubG9hZCA6ICh3aW5kb3cgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uYmVmb3JldW5sb2FkIDogKHdpbmRvdyB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25ibHVyIDogKHdpbmRvdyB0LCBmb2N1c0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmZvY3VzIDogKHdpbmRvdyB0LCBmb2N1c0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbnJlc2l6ZSA6ICh3aW5kb3cgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9ub3JpZW50YXRpb25jaGFuZ2UgOiAod2luZG93IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbnBvcHN0YXRlIDogKHdpbmRvdyB0LCBwb3BTdGF0ZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmhhc2hjaGFuZ2UgOiAod2luZG93IHQsIGhhc2hDaGFuZ2VFdmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25vbmxpbmUgOiAod2luZG93IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25vZmZsaW5lIDogKHdpbmRvdyB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VUkwgOiBfVVJMIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRldmljZVBpeGVsUmF0aW8gOiBmbG9hdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgd2luZG93IDogd2luZG93IHQgPSBKcy5VbnNhZmUuZ2xvYmFsXG5cbigqIFRoZSB0b3BsZXZlbCBvYmplY3QgKilcblxubGV0IGRvY3VtZW50ID0gd2luZG93IyMuZG9jdW1lbnRcblxubGV0IGdldEVsZW1lbnRCeUlkIGlkID1cbiAgSnMuT3B0LmNhc2VcbiAgICAoZG9jdW1lbnQjI2dldEVsZW1lbnRCeUlkIChKcy5zdHJpbmcgaWQpKVxuICAgIChmdW4gKCkgLT4gcmFpc2UgTm90X2ZvdW5kKVxuICAgIChmdW4gcG5vZGUgLT4gcG5vZGUpXG5cbmxldCBnZXRFbGVtZW50QnlJZF9leG4gaWQgPVxuICBKcy5PcHQuY2FzZVxuICAgIChkb2N1bWVudCMjZ2V0RWxlbWVudEJ5SWQgKEpzLnN0cmluZyBpZCkpXG4gICAgKGZ1biAoKSAtPiBmYWlsd2l0aCAoUHJpbnRmLnNwcmludGYgXCJnZXRFbGVtZW50QnlJZF9leG46ICVTIG5vdCBmb3VuZFwiIGlkKSlcbiAgICAoZnVuIHBub2RlIC0+IHBub2RlKVxuXG5sZXQgZ2V0RWxlbWVudEJ5SWRfb3B0IGlkID0gSnMuT3B0LnRvX29wdGlvbiAoZG9jdW1lbnQjI2dldEVsZW1lbnRCeUlkIChKcy5zdHJpbmcgaWQpKVxuXG5sZXQgZ2V0RWxlbWVudEJ5SWRfY29lcmNlIGlkIGNvZXJjZSA9XG4gIEpzLk9wdC5jYXNlXG4gICAgKGRvY3VtZW50IyNnZXRFbGVtZW50QnlJZCAoSnMuc3RyaW5nIGlkKSlcbiAgICAoZnVuICgpIC0+IE5vbmUpXG4gICAgKGZ1biBlIC0+IEpzLk9wdC50b19vcHRpb24gKGNvZXJjZSBlKSlcblxuKCoqKiopXG5cbmNsYXNzIHR5cGUgZnJhbWVTZXRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgY29scyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByb3dzIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBmcmFtZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBmcmFtZUJvcmRlciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsb25nRGVzYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5IZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luV2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBub1Jlc2l6ZSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2Nyb2xsaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNyYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb250ZW50RG9jdW1lbnQgOiBkb2N1bWVudCB0IG9wdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGlGcmFtZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBmcmFtZUJvcmRlciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbG9uZ0Rlc2MgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luSGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpbldpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2Nyb2xsaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNyYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb250ZW50RG9jdW1lbnQgOiBkb2N1bWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29udGVudFdpbmRvdyA6IHdpbmRvdyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqKioqKVxuXG4oKlhYWCBTaG91bGQgcHJvdmlkZSBjcmVhdGlvbiBmdW5jdGlvbnMgYSBsYSBsYWJsZ3RrLi4uICopXG5cbmxldCBvcHRfaXRlciB4IGYgPVxuICBtYXRjaCB4IHdpdGhcbiAgfCBOb25lIC0+ICgpXG4gIHwgU29tZSB2IC0+IGYgdlxuXG5sZXQgY3JlYXRlRWxlbWVudCAoZG9jIDogZG9jdW1lbnQgdCkgbmFtZSA9IGRvYyMjY3JlYXRlRWxlbWVudCAoSnMuc3RyaW5nIG5hbWUpXG5cbmxldCB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBuYW1lID0gSnMuVW5zYWZlLmNvZXJjZSAoY3JlYXRlRWxlbWVudCBkb2MgbmFtZSlcblxubGV0IGNyZWF0ZUVsZW1lbnRTeW50YXggPSByZWYgYFVua25vd25cblxubGV0IHJlYyB1bnNhZmVDcmVhdGVFbGVtZW50RXggP190eXBlID9uYW1lIGRvYyBlbHQgPVxuICBpZiBQb2x5LihfdHlwZSA9IE5vbmUpICYmIFBvbHkuKG5hbWUgPSBOb25lKVxuICB0aGVuIEpzLlVuc2FmZS5jb2VyY2UgKGNyZWF0ZUVsZW1lbnQgZG9jIGVsdClcbiAgZWxzZVxuICAgIG1hdGNoICFjcmVhdGVFbGVtZW50U3ludGF4IHdpdGhcbiAgICB8IGBTdGFuZGFyZCAtPlxuICAgICAgICBsZXQgcmVzID0gSnMuVW5zYWZlLmNvZXJjZSAoY3JlYXRlRWxlbWVudCBkb2MgZWx0KSBpblxuICAgICAgICBvcHRfaXRlciBfdHlwZSAoZnVuIHQgLT4gcmVzIyMuX3R5cGUgOj0gdCk7XG4gICAgICAgIG9wdF9pdGVyIG5hbWUgKGZ1biBuIC0+IHJlcyMjLm5hbWUgOj0gbik7XG4gICAgICAgIHJlc1xuICAgIHwgYEV4dGVuZGVkIC0+XG4gICAgICAgIGxldCBhID0gbmV3JWpzIEpzLmFycmF5X2VtcHR5IGluXG4gICAgICAgIGlnbm9yZSAoYSMjcHVzaF8yIChKcy5zdHJpbmcgXCI8XCIpIChKcy5zdHJpbmcgZWx0KSk7XG4gICAgICAgIG9wdF9pdGVyIF90eXBlIChmdW4gdCAtPlxuICAgICAgICAgICAgaWdub3JlIChhIyNwdXNoXzMgKEpzLnN0cmluZyBcIiB0eXBlPVxcXCJcIikgKGh0bWxfZXNjYXBlIHQpIChKcy5zdHJpbmcgXCJcXFwiXCIpKSk7XG4gICAgICAgIG9wdF9pdGVyIG5hbWUgKGZ1biBuIC0+XG4gICAgICAgICAgICBpZ25vcmUgKGEjI3B1c2hfMyAoSnMuc3RyaW5nIFwiIG5hbWU9XFxcIlwiKSAoaHRtbF9lc2NhcGUgbikgKEpzLnN0cmluZyBcIlxcXCJcIikpKTtcbiAgICAgICAgaWdub3JlIChhIyNwdXNoIChKcy5zdHJpbmcgXCI+XCIpKTtcbiAgICAgICAgSnMuVW5zYWZlLmNvZXJjZSAoZG9jIyNjcmVhdGVFbGVtZW50IChhIyNqb2luIChKcy5zdHJpbmcgXCJcIikpKVxuICAgIHwgYFVua25vd24gLT5cbiAgICAgICAgY3JlYXRlRWxlbWVudFN5bnRheCA6PVxuICAgICAgICAgIGlmIHRyeVxuICAgICAgICAgICAgICAgbGV0IGVsIDogaW5wdXRFbGVtZW50IEpzLnQgPVxuICAgICAgICAgICAgICAgICBKcy5VbnNhZmUuY29lcmNlXG4gICAgICAgICAgICAgICAgICAgKGRvY3VtZW50IyNjcmVhdGVFbGVtZW50IChKcy5zdHJpbmcgXCI8aW5wdXQgbmFtZT1cXFwieFxcXCI+XCIpKVxuICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgIGVsIyMudGFnTmFtZSMjdG9Mb3dlckNhc2UgPT0gSnMuc3RyaW5nIFwiaW5wdXRcIlxuICAgICAgICAgICAgICAgJiYgZWwjIy5uYW1lID09IEpzLnN0cmluZyBcInhcIlxuICAgICAgICAgICAgIHdpdGggXyAtPiBmYWxzZVxuICAgICAgICAgIHRoZW4gYEV4dGVuZGVkXG4gICAgICAgICAgZWxzZSBgU3RhbmRhcmQ7XG4gICAgICAgIHVuc2FmZUNyZWF0ZUVsZW1lbnRFeCA/X3R5cGUgP25hbWUgZG9jIGVsdFxuXG5sZXQgY3JlYXRlSHRtbCBkb2MgOiBodG1sRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJodG1sXCJcblxubGV0IGNyZWF0ZUhlYWQgZG9jIDogaGVhZEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaGVhZFwiXG5cbmxldCBjcmVhdGVMaW5rIGRvYyA6IGxpbmtFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImxpbmtcIlxuXG5sZXQgY3JlYXRlVGl0bGUgZG9jIDogdGl0bGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRpdGxlXCJcblxubGV0IGNyZWF0ZU1ldGEgZG9jIDogbWV0YUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibWV0YVwiXG5cbmxldCBjcmVhdGVCYXNlIGRvYyA6IGJhc2VFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImJhc2VcIlxuXG5sZXQgY3JlYXRlU3R5bGUgZG9jIDogc3R5bGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInN0eWxlXCJcblxubGV0IGNyZWF0ZUJvZHkgZG9jIDogYm9keUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYm9keVwiXG5cbmxldCBjcmVhdGVGb3JtIGRvYyA6IGZvcm1FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZvcm1cIlxuXG5sZXQgY3JlYXRlT3B0Z3JvdXAgZG9jIDogb3B0R3JvdXBFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm9wdGdyb3VwXCJcblxubGV0IGNyZWF0ZU9wdGlvbiBkb2MgOiBvcHRpb25FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm9wdGlvblwiXG5cbmxldCBjcmVhdGVTZWxlY3QgP190eXBlID9uYW1lIGRvYyA6IHNlbGVjdEVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnRFeCA/X3R5cGUgP25hbWUgZG9jIFwic2VsZWN0XCJcblxubGV0IGNyZWF0ZUlucHV0ID9fdHlwZSA/bmFtZSBkb2MgOiBpbnB1dEVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnRFeCA/X3R5cGUgP25hbWUgZG9jIFwiaW5wdXRcIlxuXG5sZXQgY3JlYXRlVGV4dGFyZWEgP190eXBlID9uYW1lIGRvYyA6IHRleHRBcmVhRWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudEV4ID9fdHlwZSA/bmFtZSBkb2MgXCJ0ZXh0YXJlYVwiXG5cbmxldCBjcmVhdGVCdXR0b24gP190eXBlID9uYW1lIGRvYyA6IGJ1dHRvbkVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnRFeCA/X3R5cGUgP25hbWUgZG9jIFwiYnV0dG9uXCJcblxubGV0IGNyZWF0ZUxhYmVsIGRvYyA6IGxhYmVsRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJsYWJlbFwiXG5cbmxldCBjcmVhdGVGaWVsZHNldCBkb2MgOiBmaWVsZFNldEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZmllbGRzZXRcIlxuXG5sZXQgY3JlYXRlTGVnZW5kIGRvYyA6IGxlZ2VuZEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibGVnZW5kXCJcblxubGV0IGNyZWF0ZVVsIGRvYyA6IHVMaXN0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ1bFwiXG5cbmxldCBjcmVhdGVPbCBkb2MgOiBvTGlzdEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwib2xcIlxuXG5sZXQgY3JlYXRlRGwgZG9jIDogZExpc3RFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImRsXCJcblxubGV0IGNyZWF0ZUxpIGRvYyA6IGxpRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJsaVwiXG5cbmxldCBjcmVhdGVEaXYgZG9jIDogZGl2RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJkaXZcIlxuXG5sZXQgY3JlYXRlRW1iZWQgZG9jIDogZW1iZWRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImVtYmVkXCJcblxubGV0IGNyZWF0ZVAgZG9jIDogcGFyYWdyYXBoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJwXCJcblxubGV0IGNyZWF0ZUgxIGRvYyA6IGhlYWRpbmdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImgxXCJcblxubGV0IGNyZWF0ZUgyIGRvYyA6IGhlYWRpbmdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImgyXCJcblxubGV0IGNyZWF0ZUgzIGRvYyA6IGhlYWRpbmdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImgzXCJcblxubGV0IGNyZWF0ZUg0IGRvYyA6IGhlYWRpbmdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImg0XCJcblxubGV0IGNyZWF0ZUg1IGRvYyA6IGhlYWRpbmdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImg1XCJcblxubGV0IGNyZWF0ZUg2IGRvYyA6IGhlYWRpbmdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImg2XCJcblxubGV0IGNyZWF0ZVEgZG9jIDogcXVvdGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInFcIlxuXG5sZXQgY3JlYXRlQmxvY2txdW90ZSBkb2MgOiBxdW90ZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYmxvY2txdW90ZVwiXG5cbmxldCBjcmVhdGVQcmUgZG9jIDogcHJlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJwcmVcIlxuXG5sZXQgY3JlYXRlQnIgZG9jIDogYnJFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImJyXCJcblxubGV0IGNyZWF0ZUhyIGRvYyA6IGhyRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJoclwiXG5cbmxldCBjcmVhdGVJbnMgZG9jIDogbW9kRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJpbnNcIlxuXG5sZXQgY3JlYXRlRGVsIGRvYyA6IG1vZEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZGVsXCJcblxubGV0IGNyZWF0ZUEgZG9jIDogYW5jaG9yRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhXCJcblxubGV0IGNyZWF0ZUltZyBkb2MgOiBpbWFnZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaW1nXCJcblxubGV0IGNyZWF0ZU9iamVjdCBkb2MgOiBvYmplY3RFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm9iamVjdFwiXG5cbmxldCBjcmVhdGVQYXJhbSBkb2MgOiBwYXJhbUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicGFyYW1cIlxuXG5sZXQgY3JlYXRlTWFwIGRvYyA6IG1hcEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibWFwXCJcblxubGV0IGNyZWF0ZUFyZWEgZG9jIDogYXJlYUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYXJlYVwiXG5cbmxldCBjcmVhdGVTY3JpcHQgZG9jIDogc2NyaXB0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJzY3JpcHRcIlxuXG5sZXQgY3JlYXRlVGFibGUgZG9jIDogdGFibGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRhYmxlXCJcblxubGV0IGNyZWF0ZUNhcHRpb24gZG9jIDogdGFibGVDYXB0aW9uRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJjYXB0aW9uXCJcblxubGV0IGNyZWF0ZUNvbCBkb2MgOiB0YWJsZUNvbEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiY29sXCJcblxubGV0IGNyZWF0ZUNvbGdyb3VwIGRvYyA6IHRhYmxlQ29sRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJjb2xncm91cFwiXG5cbmxldCBjcmVhdGVUaGVhZCBkb2MgOiB0YWJsZVNlY3Rpb25FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRoZWFkXCJcblxubGV0IGNyZWF0ZVRmb290IGRvYyA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGZvb3RcIlxuXG5sZXQgY3JlYXRlVGJvZHkgZG9jIDogdGFibGVTZWN0aW9uRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0Ym9keVwiXG5cbmxldCBjcmVhdGVUciBkb2MgOiB0YWJsZVJvd0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidHJcIlxuXG5sZXQgY3JlYXRlVGggZG9jIDogdGFibGVDZWxsRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0aFwiXG5cbmxldCBjcmVhdGVUZCBkb2MgOiB0YWJsZUNlbGxFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRkXCJcblxubGV0IGNyZWF0ZVN1YiBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInN1YlwiXG5cbmxldCBjcmVhdGVTdXAgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJzdXBcIlxuXG5sZXQgY3JlYXRlU3BhbiBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInNwYW5cIlxuXG5sZXQgY3JlYXRlVHQgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJ0dFwiXG5cbmxldCBjcmVhdGVJIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiaVwiXG5cbmxldCBjcmVhdGVCIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiYlwiXG5cbmxldCBjcmVhdGVCaWcgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJiaWdcIlxuXG5sZXQgY3JlYXRlU21hbGwgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJzbWFsbFwiXG5cbmxldCBjcmVhdGVFbSBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImVtXCJcblxubGV0IGNyZWF0ZVN0cm9uZyBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInN0cm9uZ1wiXG5cbmxldCBjcmVhdGVDaXRlIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiY2l0ZVwiXG5cbmxldCBjcmVhdGVEZm4gZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJkZm5cIlxuXG5sZXQgY3JlYXRlQ29kZSBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImNvZGVcIlxuXG5sZXQgY3JlYXRlU2FtcCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInNhbXBcIlxuXG5sZXQgY3JlYXRlS2JkIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwia2JkXCJcblxubGV0IGNyZWF0ZVZhciBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInZhclwiXG5cbmxldCBjcmVhdGVBYmJyIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiYWJiclwiXG5cbmxldCBjcmVhdGVEZCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImRkXCJcblxubGV0IGNyZWF0ZUR0IGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiZHRcIlxuXG5sZXQgY3JlYXRlTm9zY3JpcHQgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJub3NjcmlwdFwiXG5cbmxldCBjcmVhdGVBZGRyZXNzIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiYWRkcmVzc1wiXG5cbmxldCBjcmVhdGVGcmFtZXNldCBkb2MgOiBmcmFtZVNldEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZnJhbWVzZXRcIlxuXG5sZXQgY3JlYXRlRnJhbWUgZG9jIDogZnJhbWVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZyYW1lXCJcblxubGV0IGNyZWF0ZUlmcmFtZSBkb2MgOiBpRnJhbWVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImlmcmFtZVwiXG5cbmxldCBjcmVhdGVBdWRpbyBkb2MgOiBhdWRpb0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYXVkaW9cIlxuXG5sZXQgY3JlYXRlVmlkZW8gZG9jIDogYXVkaW9FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInZpZGVvXCJcblxuZXhjZXB0aW9uIENhbnZhc19ub3RfYXZhaWxhYmxlXG5cbmxldCBjcmVhdGVDYW52YXMgZG9jIDogY2FudmFzRWxlbWVudCB0ID1cbiAgbGV0IGMgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImNhbnZhc1wiIGluXG4gIGlmIG5vdCAoT3B0LnRlc3QgYyMjLmdldENvbnRleHQpIHRoZW4gcmFpc2UgQ2FudmFzX25vdF9hdmFpbGFibGU7XG4gIGNcblxubGV0IGh0bWxfZWxlbWVudCA6IGh0bWxFbGVtZW50IHQgY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9IVE1MRWxlbWVudFxuXG5tb2R1bGUgQ29lcmNlVG8gPSBzdHJ1Y3RcbiAgbGV0IGVsZW1lbnQgOiAjRG9tLm5vZGUgSnMudCAtPiBlbGVtZW50IEpzLnQgSnMub3B0ID1cbiAgICBpZiBkZWYgaHRtbF9lbGVtZW50ID09IHVuZGVmaW5lZFxuICAgIHRoZW5cbiAgICAgICgqIGllIDwgOSBkb2VzIG5vdCBoYXZlIEhUTUxFbGVtZW50OiB3ZSBoYXZlIHRvIGNoZWF0IHRvIGNoZWNrXG4gICAgICAgICB0aGF0IHNvbWV0aGluZyBpcyBhbiBodG1sIGVsZW1lbnQgKilcbiAgICAgIGZ1biBlIC0+XG4gICAgICBpZiBkZWYgKEpzLlVuc2FmZS5jb2VyY2UgZSkjIy5pbm5lckhUTUwgPT0gdW5kZWZpbmVkXG4gICAgICB0aGVuIEpzLm51bGxcbiAgICAgIGVsc2UgSnMuc29tZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgIGVsc2VcbiAgICAgIGZ1biBlIC0+XG4gICAgICBpZiBKcy5pbnN0YW5jZW9mIGUgaHRtbF9lbGVtZW50IHRoZW4gSnMuc29tZSAoSnMuVW5zYWZlLmNvZXJjZSBlKSBlbHNlIEpzLm51bGxcblxuICBsZXQgdW5zYWZlQ29lcmNlIHRhZyAoZSA6ICNlbGVtZW50IHQpID1cbiAgICBpZiBlIyMudGFnTmFtZSMjdG9Mb3dlckNhc2UgPT0gSnMuc3RyaW5nIHRhZ1xuICAgIHRoZW4gSnMuc29tZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgIGVsc2UgSnMubnVsbFxuXG4gIGxldCBhIGUgPSB1bnNhZmVDb2VyY2UgXCJhXCIgZVxuXG4gIGxldCBhcmVhIGUgPSB1bnNhZmVDb2VyY2UgXCJhcmVhXCIgZVxuXG4gIGxldCBiYXNlIGUgPSB1bnNhZmVDb2VyY2UgXCJiYXNlXCIgZVxuXG4gIGxldCBibG9ja3F1b3RlIGUgPSB1bnNhZmVDb2VyY2UgXCJibG9ja3F1b3RlXCIgZVxuXG4gIGxldCBib2R5IGUgPSB1bnNhZmVDb2VyY2UgXCJib2R5XCIgZVxuXG4gIGxldCBiciBlID0gdW5zYWZlQ29lcmNlIFwiYnJcIiBlXG5cbiAgbGV0IGJ1dHRvbiBlID0gdW5zYWZlQ29lcmNlIFwiYnV0dG9uXCIgZVxuXG4gIGxldCBjYW52YXMgZSA9IHVuc2FmZUNvZXJjZSBcImNhbnZhc1wiIGVcblxuICBsZXQgY2FwdGlvbiBlID0gdW5zYWZlQ29lcmNlIFwiY2FwdGlvblwiIGVcblxuICBsZXQgY29sIGUgPSB1bnNhZmVDb2VyY2UgXCJjb2xcIiBlXG5cbiAgbGV0IGNvbGdyb3VwIGUgPSB1bnNhZmVDb2VyY2UgXCJjb2xncm91cFwiIGVcblxuICBsZXQgZGVsIGUgPSB1bnNhZmVDb2VyY2UgXCJkZWxcIiBlXG5cbiAgbGV0IGRpdiBlID0gdW5zYWZlQ29lcmNlIFwiZGl2XCIgZVxuXG4gIGxldCBkbCBlID0gdW5zYWZlQ29lcmNlIFwiZGxcIiBlXG5cbiAgbGV0IGZpZWxkc2V0IGUgPSB1bnNhZmVDb2VyY2UgXCJmaWVsZHNldFwiIGVcblxuICBsZXQgZW1iZWQgZSA9IHVuc2FmZUNvZXJjZSBcImVtYmVkXCIgZVxuXG4gIGxldCBmb3JtIGUgPSB1bnNhZmVDb2VyY2UgXCJmb3JtXCIgZVxuXG4gIGxldCBmcmFtZXNldCBlID0gdW5zYWZlQ29lcmNlIFwiZnJhbWVzZXRcIiBlXG5cbiAgbGV0IGZyYW1lIGUgPSB1bnNhZmVDb2VyY2UgXCJmcmFtZVwiIGVcblxuICBsZXQgaDEgZSA9IHVuc2FmZUNvZXJjZSBcImgxXCIgZVxuXG4gIGxldCBoMiBlID0gdW5zYWZlQ29lcmNlIFwiaDJcIiBlXG5cbiAgbGV0IGgzIGUgPSB1bnNhZmVDb2VyY2UgXCJoM1wiIGVcblxuICBsZXQgaDQgZSA9IHVuc2FmZUNvZXJjZSBcImg0XCIgZVxuXG4gIGxldCBoNSBlID0gdW5zYWZlQ29lcmNlIFwiaDVcIiBlXG5cbiAgbGV0IGg2IGUgPSB1bnNhZmVDb2VyY2UgXCJoNlwiIGVcblxuICBsZXQgaGVhZCBlID0gdW5zYWZlQ29lcmNlIFwiaGVhZFwiIGVcblxuICBsZXQgaHIgZSA9IHVuc2FmZUNvZXJjZSBcImhyXCIgZVxuXG4gIGxldCBodG1sIGUgPSB1bnNhZmVDb2VyY2UgXCJodG1sXCIgZVxuXG4gIGxldCBpZnJhbWUgZSA9IHVuc2FmZUNvZXJjZSBcImlmcmFtZVwiIGVcblxuICBsZXQgaW1nIGUgPSB1bnNhZmVDb2VyY2UgXCJpbWdcIiBlXG5cbiAgbGV0IGlucHV0IGUgPSB1bnNhZmVDb2VyY2UgXCJpbnB1dFwiIGVcblxuICBsZXQgaW5zIGUgPSB1bnNhZmVDb2VyY2UgXCJpbnNcIiBlXG5cbiAgbGV0IGxhYmVsIGUgPSB1bnNhZmVDb2VyY2UgXCJsYWJlbFwiIGVcblxuICBsZXQgbGVnZW5kIGUgPSB1bnNhZmVDb2VyY2UgXCJsZWdlbmRcIiBlXG5cbiAgbGV0IGxpIGUgPSB1bnNhZmVDb2VyY2UgXCJsaVwiIGVcblxuICBsZXQgbGluayBlID0gdW5zYWZlQ29lcmNlIFwibGlua1wiIGVcblxuICBsZXQgbWFwIGUgPSB1bnNhZmVDb2VyY2UgXCJtYXBcIiBlXG5cbiAgbGV0IG1ldGEgZSA9IHVuc2FmZUNvZXJjZSBcIm1ldGFcIiBlXG5cbiAgbGV0IF9vYmplY3QgZSA9IHVuc2FmZUNvZXJjZSBcIm9iamVjdFwiIGVcblxuICBsZXQgb2wgZSA9IHVuc2FmZUNvZXJjZSBcIm9sXCIgZVxuXG4gIGxldCBvcHRncm91cCBlID0gdW5zYWZlQ29lcmNlIFwib3B0Z3JvdXBcIiBlXG5cbiAgbGV0IG9wdGlvbiBlID0gdW5zYWZlQ29lcmNlIFwib3B0aW9uXCIgZVxuXG4gIGxldCBwIGUgPSB1bnNhZmVDb2VyY2UgXCJwXCIgZVxuXG4gIGxldCBwYXJhbSBlID0gdW5zYWZlQ29lcmNlIFwicGFyYW1cIiBlXG5cbiAgbGV0IHByZSBlID0gdW5zYWZlQ29lcmNlIFwicHJlXCIgZVxuXG4gIGxldCBxIGUgPSB1bnNhZmVDb2VyY2UgXCJxXCIgZVxuXG4gIGxldCBzY3JpcHQgZSA9IHVuc2FmZUNvZXJjZSBcInNjcmlwdFwiIGVcblxuICBsZXQgc2VsZWN0IGUgPSB1bnNhZmVDb2VyY2UgXCJzZWxlY3RcIiBlXG5cbiAgbGV0IHN0eWxlIGUgPSB1bnNhZmVDb2VyY2UgXCJzdHlsZVwiIGVcblxuICBsZXQgdGFibGUgZSA9IHVuc2FmZUNvZXJjZSBcInRhYmxlXCIgZVxuXG4gIGxldCB0Ym9keSBlID0gdW5zYWZlQ29lcmNlIFwidGJvZHlcIiBlXG5cbiAgbGV0IHRkIGUgPSB1bnNhZmVDb2VyY2UgXCJ0ZFwiIGVcblxuICBsZXQgdGV4dGFyZWEgZSA9IHVuc2FmZUNvZXJjZSBcInRleHRhcmVhXCIgZVxuXG4gIGxldCB0Zm9vdCBlID0gdW5zYWZlQ29lcmNlIFwidGZvb3RcIiBlXG5cbiAgbGV0IHRoIGUgPSB1bnNhZmVDb2VyY2UgXCJ0aFwiIGVcblxuICBsZXQgdGhlYWQgZSA9IHVuc2FmZUNvZXJjZSBcInRoZWFkXCIgZVxuXG4gIGxldCB0aXRsZSBlID0gdW5zYWZlQ29lcmNlIFwidGl0bGVcIiBlXG5cbiAgbGV0IHRyIGUgPSB1bnNhZmVDb2VyY2UgXCJ0clwiIGVcblxuICBsZXQgdWwgZSA9IHVuc2FmZUNvZXJjZSBcInVsXCIgZVxuXG4gIGxldCBhdWRpbyBlID0gdW5zYWZlQ29lcmNlIFwiYXVkaW9cIiBlXG5cbiAgbGV0IHZpZGVvIGUgPSB1bnNhZmVDb2VyY2UgXCJ2aWRlb1wiIGVcblxuICBsZXQgdW5zYWZlQ29lcmNlRXZlbnQgY29uc3RyIChldiA6ICNldmVudCB0KSA9XG4gICAgaWYgZGVmIGNvbnN0ciAhPSB1bmRlZmluZWQgJiYgSnMuaW5zdGFuY2VvZiBldiBjb25zdHJcbiAgICB0aGVuIEpzLnNvbWUgKEpzLlVuc2FmZS5jb2VyY2UgZXYpXG4gICAgZWxzZSBKcy5udWxsXG5cbiAgbGV0IG1vdXNlRXZlbnQgZXYgPSB1bnNhZmVDb2VyY2VFdmVudCBKcy5VbnNhZmUuZ2xvYmFsIyMuX01vdXNlRXZlbnQgZXZcblxuICBsZXQga2V5Ym9hcmRFdmVudCBldiA9IHVuc2FmZUNvZXJjZUV2ZW50IEpzLlVuc2FmZS5nbG9iYWwjIy5fS2V5Ym9hcmRFdmVudCBldlxuXG4gIGxldCB3aGVlbEV2ZW50IGV2ID0gdW5zYWZlQ29lcmNlRXZlbnQgSnMuVW5zYWZlLmdsb2JhbCMjLl9XaGVlbEV2ZW50IGV2XG5cbiAgbGV0IG1vdXNlU2Nyb2xsRXZlbnQgZXYgPSB1bnNhZmVDb2VyY2VFdmVudCBKcy5VbnNhZmUuZ2xvYmFsIyMuX01vdXNlU2Nyb2xsRXZlbnQgZXZcblxuICBsZXQgcG9wU3RhdGVFdmVudCBldiA9IHVuc2FmZUNvZXJjZUV2ZW50IEpzLlVuc2FmZS5nbG9iYWwjIy5fUG9wU3RhdGVFdmVudCBldlxuXG4gIGxldCBtZXNzYWdlRXZlbnQgZXYgPSB1bnNhZmVDb2VyY2VFdmVudCBKcy5VbnNhZmUuZ2xvYmFsIyMuX01lc3NhZ2VFdmVudCBldlxuZW5kXG5cbigqKioqKVxuXG5sZXQgZXZlbnRUYXJnZXQgPSBEb20uZXZlbnRUYXJnZXRcblxubGV0IGV2ZW50UmVsYXRlZFRhcmdldCAoZSA6ICNtb3VzZUV2ZW50IHQpID1cbiAgT3B0ZGVmLmdldCBlIyMucmVsYXRlZFRhcmdldCAoZnVuICgpIC0+XG4gICAgICBtYXRjaCBKcy50b19zdHJpbmcgZSMjLl90eXBlIHdpdGhcbiAgICAgIHwgXCJtb3VzZW92ZXJcIiAtPiBPcHRkZWYuZ2V0IGUjIy5mcm9tRWxlbWVudCAoZnVuICgpIC0+IGFzc2VydCBmYWxzZSlcbiAgICAgIHwgXCJtb3VzZW91dFwiIC0+IE9wdGRlZi5nZXQgZSMjLnRvRWxlbWVudCAoZnVuICgpIC0+IGFzc2VydCBmYWxzZSlcbiAgICAgIHwgXyAtPiBKcy5udWxsKVxuXG5sZXQgZXZlbnRBYnNvbHV0ZVBvc2l0aW9uJyAoZSA6ICNtb3VzZUV2ZW50IHQpID1cbiAgbGV0IGJvZHkgPSBkb2N1bWVudCMjLmJvZHkgaW5cbiAgbGV0IGh0bWwgPSBkb2N1bWVudCMjLmRvY3VtZW50RWxlbWVudCBpblxuICAoIGUjIy5jbGllbnRYICsgYm9keSMjLnNjcm9sbExlZnQgKyBodG1sIyMuc2Nyb2xsTGVmdFxuICAsIGUjIy5jbGllbnRZICsgYm9keSMjLnNjcm9sbFRvcCArIGh0bWwjIy5zY3JvbGxUb3AgKVxuXG5sZXQgZXZlbnRBYnNvbHV0ZVBvc2l0aW9uIChlIDogI21vdXNlRXZlbnQgdCkgPVxuICBPcHRkZWYuY2FzZVxuICAgIGUjIy5wYWdlWFxuICAgIChmdW4gKCkgLT4gZXZlbnRBYnNvbHV0ZVBvc2l0aW9uJyBlKVxuICAgIChmdW4geCAtPiBPcHRkZWYuY2FzZSBlIyMucGFnZVkgKGZ1biAoKSAtPiBldmVudEFic29sdXRlUG9zaXRpb24nIGUpIChmdW4geSAtPiB4LCB5KSlcblxubGV0IGVsZW1lbnRDbGllbnRQb3NpdGlvbiAoZSA6ICNlbGVtZW50IHQpID1cbiAgbGV0IHIgPSBlIyNnZXRCb3VuZGluZ0NsaWVudFJlY3QgaW5cbiAgbGV0IGJvZHkgPSBkb2N1bWVudCMjLmJvZHkgaW5cbiAgbGV0IGh0bWwgPSBkb2N1bWVudCMjLmRvY3VtZW50RWxlbWVudCBpblxuICAoIHRydW5jYXRlIHIjIy5sZWZ0IC0gYm9keSMjLmNsaWVudExlZnQgLSBodG1sIyMuY2xpZW50TGVmdFxuICAsIHRydW5jYXRlIHIjIy50b3AgLSBib2R5IyMuY2xpZW50VG9wIC0gaHRtbCMjLmNsaWVudFRvcCApXG5cbmxldCBnZXREb2N1bWVudFNjcm9sbCAoKSA9XG4gIGxldCBib2R5ID0gZG9jdW1lbnQjIy5ib2R5IGluXG4gIGxldCBodG1sID0gZG9jdW1lbnQjIy5kb2N1bWVudEVsZW1lbnQgaW5cbiAgYm9keSMjLnNjcm9sbExlZnQgKyBodG1sIyMuc2Nyb2xsTGVmdCwgYm9keSMjLnNjcm9sbFRvcCArIGh0bWwjIy5zY3JvbGxUb3BcblxubGV0IGJ1dHRvblByZXNzZWQgKGV2IDogI21vdXNlRXZlbnQgSnMudCkgPVxuICBKcy5PcHRkZWYuY2FzZVxuICAgIGV2IyMud2hpY2hcbiAgICAoZnVuICgpIC0+XG4gICAgICBtYXRjaCBldiMjLmJ1dHRvbiB3aXRoXG4gICAgICB8IDEgLT4gTGVmdF9idXR0b25cbiAgICAgIHwgMiAtPiBSaWdodF9idXR0b25cbiAgICAgIHwgNCAtPiBNaWRkbGVfYnV0dG9uXG4gICAgICB8IF8gLT4gTm9fYnV0dG9uKVxuICAgIChmdW4geCAtPiB4KVxuXG5sZXQgYWRkTW91c2V3aGVlbEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucyBlID9jYXB0dXJlID9vbmNlID9wYXNzaXZlIGggPVxuICBhZGRFdmVudExpc3RlbmVyV2l0aE9wdGlvbnNcbiAgICA/Y2FwdHVyZVxuICAgID9vbmNlXG4gICAgP3Bhc3NpdmVcbiAgICBlXG4gICAgRXZlbnQud2hlZWxcbiAgICAoaGFuZGxlciAoZnVuIChlIDogbW91c2V3aGVlbEV2ZW50IHQpIC0+XG4gICAgICAgICBsZXQgZHggPSAtT3B0ZGVmLmdldCBlIyMud2hlZWxEZWx0YVggKGZ1biAoKSAtPiAwKSAvIDQwIGluXG4gICAgICAgICBsZXQgZHkgPSAtT3B0ZGVmLmdldCBlIyMud2hlZWxEZWx0YVkgKGZ1biAoKSAtPiBlIyMud2hlZWxEZWx0YSkgLyA0MCBpblxuICAgICAgICAgaCAoZSA6PiBtb3VzZUV2ZW50IHQpIH5keCB+ZHkpKVxuXG5sZXQgYWRkTW91c2V3aGVlbEV2ZW50TGlzdGVuZXIgZSBoIGNhcHQgPVxuICBhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIH5jYXB0dXJlOmNhcHQgZSBoXG5cbigqKioqKilcblxubW9kdWxlIEtleWJvYXJkX2NvZGUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID1cbiAgICB8IFVuaWRlbnRpZmllZFxuICAgICgqIEFscGhhYmV0aWMgQ2hhcmFjdGVycyAqKVxuICAgIHwgS2V5QVxuICAgIHwgS2V5QlxuICAgIHwgS2V5Q1xuICAgIHwgS2V5RFxuICAgIHwgS2V5RVxuICAgIHwgS2V5RlxuICAgIHwgS2V5R1xuICAgIHwgS2V5SFxuICAgIHwgS2V5SVxuICAgIHwgS2V5SlxuICAgIHwgS2V5S1xuICAgIHwgS2V5TFxuICAgIHwgS2V5TVxuICAgIHwgS2V5TlxuICAgIHwgS2V5T1xuICAgIHwgS2V5UFxuICAgIHwgS2V5UVxuICAgIHwgS2V5UlxuICAgIHwgS2V5U1xuICAgIHwgS2V5VFxuICAgIHwgS2V5VVxuICAgIHwgS2V5VlxuICAgIHwgS2V5V1xuICAgIHwgS2V5WFxuICAgIHwgS2V5WVxuICAgIHwgS2V5WlxuICAgICgqIERpZ2l0cyAqKVxuICAgIHwgRGlnaXQwXG4gICAgfCBEaWdpdDFcbiAgICB8IERpZ2l0MlxuICAgIHwgRGlnaXQzXG4gICAgfCBEaWdpdDRcbiAgICB8IERpZ2l0NVxuICAgIHwgRGlnaXQ2XG4gICAgfCBEaWdpdDdcbiAgICB8IERpZ2l0OFxuICAgIHwgRGlnaXQ5XG4gICAgfCBNaW51c1xuICAgIHwgRXF1YWxcbiAgICAoKiBXaGl0ZXNwYWNlICopXG4gICAgfCBUYWJcbiAgICB8IEVudGVyXG4gICAgfCBTcGFjZVxuICAgICgqIEVkaXRpbmcgKilcbiAgICB8IEVzY2FwZVxuICAgIHwgQmFja3NwYWNlXG4gICAgfCBJbnNlcnRcbiAgICB8IERlbGV0ZVxuICAgIHwgQ2Fwc0xvY2tcbiAgICAoKiBNaXNjIFByaW50YWJsZSAqKVxuICAgIHwgQnJhY2tldExlZnRcbiAgICB8IEJyYWNrZXRSaWdodFxuICAgIHwgU2VtaWNvbG9uXG4gICAgfCBRdW90ZVxuICAgIHwgQmFja3F1b3RlXG4gICAgfCBCYWNrc2xhc2hcbiAgICB8IENvbW1hXG4gICAgfCBQZXJpb2RcbiAgICB8IFNsYXNoXG4gICAgKCogRnVuY3Rpb24ga2V5cyAqKVxuICAgIHwgRjFcbiAgICB8IEYyXG4gICAgfCBGM1xuICAgIHwgRjRcbiAgICB8IEY1XG4gICAgfCBGNlxuICAgIHwgRjdcbiAgICB8IEY4XG4gICAgfCBGOVxuICAgIHwgRjEwXG4gICAgfCBGMTFcbiAgICB8IEYxMlxuICAgICgqIE51bXBhZCBrZXlzICopXG4gICAgfCBOdW1wYWQwXG4gICAgfCBOdW1wYWQxXG4gICAgfCBOdW1wYWQyXG4gICAgfCBOdW1wYWQzXG4gICAgfCBOdW1wYWQ0XG4gICAgfCBOdW1wYWQ1XG4gICAgfCBOdW1wYWQ2XG4gICAgfCBOdW1wYWQ3XG4gICAgfCBOdW1wYWQ4XG4gICAgfCBOdW1wYWQ5XG4gICAgfCBOdW1wYWRNdWx0aXBseVxuICAgIHwgTnVtcGFkU3VidHJhY3RcbiAgICB8IE51bXBhZEFkZFxuICAgIHwgTnVtcGFkRGVjaW1hbFxuICAgIHwgTnVtcGFkRXF1YWxcbiAgICB8IE51bXBhZEVudGVyXG4gICAgfCBOdW1wYWREaXZpZGVcbiAgICB8IE51bUxvY2tcbiAgICAoKiBNb2RpZmllciBrZXlzICopXG4gICAgfCBDb250cm9sTGVmdFxuICAgIHwgQ29udHJvbFJpZ2h0XG4gICAgfCBNZXRhTGVmdFxuICAgIHwgTWV0YVJpZ2h0XG4gICAgfCBTaGlmdExlZnRcbiAgICB8IFNoaWZ0UmlnaHRcbiAgICB8IEFsdExlZnRcbiAgICB8IEFsdFJpZ2h0XG4gICAgKCogQXJyb3cga2V5cyAqKVxuICAgIHwgQXJyb3dMZWZ0XG4gICAgfCBBcnJvd1JpZ2h0XG4gICAgfCBBcnJvd1VwXG4gICAgfCBBcnJvd0Rvd25cbiAgICAoKiBOYXZpZ2F0aW9uICopXG4gICAgfCBQYWdlVXBcbiAgICB8IFBhZ2VEb3duXG4gICAgfCBIb21lXG4gICAgfCBFbmRcbiAgICAoKiBTb3VuZCAqKVxuICAgIHwgVm9sdW1lTXV0ZVxuICAgIHwgVm9sdW1lRG93blxuICAgIHwgVm9sdW1lVXBcbiAgICAoKiBNZWRpYSAqKVxuICAgIHwgTWVkaWFUcmFja1ByZXZpb3VzXG4gICAgfCBNZWRpYVRyYWNrTmV4dFxuICAgIHwgTWVkaWFQbGF5UGF1c2VcbiAgICB8IE1lZGlhU3RvcFxuICAgICgqIEJyb3dzZXIgc3BlY2lhbCAqKVxuICAgIHwgQ29udGV4dE1lbnVcbiAgICB8IEJyb3dzZXJTZWFyY2hcbiAgICB8IEJyb3dzZXJIb21lXG4gICAgfCBCcm93c2VyRmF2b3JpdGVzXG4gICAgfCBCcm93c2VyUmVmcmVzaFxuICAgIHwgQnJvd3NlclN0b3BcbiAgICB8IEJyb3dzZXJGb3J3YXJkXG4gICAgfCBCcm93c2VyQmFja1xuICAgICgqIE1pc2MgKilcbiAgICB8IE9TTGVmdFxuICAgIHwgT1NSaWdodFxuICAgIHwgU2Nyb2xsTG9ja1xuICAgIHwgUHJpbnRTY3JlZW5cbiAgICB8IEludGxCYWNrc2xhc2hcbiAgICB8IEludGxZZW5cbiAgICB8IFBhdXNlXG5cbiAgbGV0IHRyeV9jb2RlIHYgPVxuICAgIG1hdGNoIEpzLnRvX3N0cmluZyB2IHdpdGhcbiAgICAoKiBBbHBoYWJldGljIENoYXJhY3RlcnMgKilcbiAgICB8IFwiS2V5QVwiIC0+IEtleUFcbiAgICB8IFwiS2V5QlwiIC0+IEtleUJcbiAgICB8IFwiS2V5Q1wiIC0+IEtleUNcbiAgICB8IFwiS2V5RFwiIC0+IEtleURcbiAgICB8IFwiS2V5RVwiIC0+IEtleUVcbiAgICB8IFwiS2V5RlwiIC0+IEtleUZcbiAgICB8IFwiS2V5R1wiIC0+IEtleUdcbiAgICB8IFwiS2V5SFwiIC0+IEtleUhcbiAgICB8IFwiS2V5SVwiIC0+IEtleUlcbiAgICB8IFwiS2V5SlwiIC0+IEtleUpcbiAgICB8IFwiS2V5S1wiIC0+IEtleUtcbiAgICB8IFwiS2V5TFwiIC0+IEtleUxcbiAgICB8IFwiS2V5TVwiIC0+IEtleU1cbiAgICB8IFwiS2V5TlwiIC0+IEtleU5cbiAgICB8IFwiS2V5T1wiIC0+IEtleU9cbiAgICB8IFwiS2V5UFwiIC0+IEtleVBcbiAgICB8IFwiS2V5UVwiIC0+IEtleVFcbiAgICB8IFwiS2V5UlwiIC0+IEtleVJcbiAgICB8IFwiS2V5U1wiIC0+IEtleVNcbiAgICB8IFwiS2V5VFwiIC0+IEtleVRcbiAgICB8IFwiS2V5VVwiIC0+IEtleVVcbiAgICB8IFwiS2V5VlwiIC0+IEtleVZcbiAgICB8IFwiS2V5V1wiIC0+IEtleVdcbiAgICB8IFwiS2V5WFwiIC0+IEtleVhcbiAgICB8IFwiS2V5WVwiIC0+IEtleVlcbiAgICB8IFwiS2V5WlwiIC0+IEtleVpcbiAgICAoKiBEaWdpdHMgKilcbiAgICB8IFwiRGlnaXQwXCIgLT4gRGlnaXQwXG4gICAgfCBcIkRpZ2l0MVwiIC0+IERpZ2l0MVxuICAgIHwgXCJEaWdpdDJcIiAtPiBEaWdpdDJcbiAgICB8IFwiRGlnaXQzXCIgLT4gRGlnaXQzXG4gICAgfCBcIkRpZ2l0NFwiIC0+IERpZ2l0NFxuICAgIHwgXCJEaWdpdDVcIiAtPiBEaWdpdDVcbiAgICB8IFwiRGlnaXQ2XCIgLT4gRGlnaXQ2XG4gICAgfCBcIkRpZ2l0N1wiIC0+IERpZ2l0N1xuICAgIHwgXCJEaWdpdDhcIiAtPiBEaWdpdDhcbiAgICB8IFwiRGlnaXQ5XCIgLT4gRGlnaXQ5XG4gICAgfCBcIk1pbnVzXCIgLT4gTWludXNcbiAgICB8IFwiRXF1YWxcIiAtPiBFcXVhbFxuICAgICgqIFdoaXRlc3BhY2UgKilcbiAgICB8IFwiVGFiXCIgLT4gVGFiXG4gICAgfCBcIkVudGVyXCIgLT4gRW50ZXJcbiAgICB8IFwiU3BhY2VcIiAtPiBTcGFjZVxuICAgICgqIEVkaXRpbmcgKilcbiAgICB8IFwiRXNjYXBlXCIgLT4gRXNjYXBlXG4gICAgfCBcIkJhY2tzcGFjZVwiIC0+IEJhY2tzcGFjZVxuICAgIHwgXCJJbnNlcnRcIiAtPiBJbnNlcnRcbiAgICB8IFwiRGVsZXRlXCIgLT4gRGVsZXRlXG4gICAgfCBcIkNhcHNMb2NrXCIgLT4gQ2Fwc0xvY2tcbiAgICAoKiBNaXNjIFByaW50YWJsZSAqKVxuICAgIHwgXCJCcmFja2V0TGVmdFwiIC0+IEJyYWNrZXRMZWZ0XG4gICAgfCBcIkJyYWNrZXRSaWdodFwiIC0+IEJyYWNrZXRSaWdodFxuICAgIHwgXCJTZW1pY29sb25cIiAtPiBTZW1pY29sb25cbiAgICB8IFwiUXVvdGVcIiAtPiBRdW90ZVxuICAgIHwgXCJCYWNrcXVvdGVcIiAtPiBCYWNrcXVvdGVcbiAgICB8IFwiQmFja3NsYXNoXCIgLT4gQmFja3NsYXNoXG4gICAgfCBcIkNvbW1hXCIgLT4gQ29tbWFcbiAgICB8IFwiUGVyaW9kXCIgLT4gUGVyaW9kXG4gICAgfCBcIlNsYXNoXCIgLT4gU2xhc2hcbiAgICAoKiBGdW5jdGlvbiBrZXlzICopXG4gICAgfCBcIkYxXCIgLT4gRjFcbiAgICB8IFwiRjJcIiAtPiBGMlxuICAgIHwgXCJGM1wiIC0+IEYzXG4gICAgfCBcIkY0XCIgLT4gRjRcbiAgICB8IFwiRjVcIiAtPiBGNVxuICAgIHwgXCJGNlwiIC0+IEY2XG4gICAgfCBcIkY3XCIgLT4gRjdcbiAgICB8IFwiRjhcIiAtPiBGOFxuICAgIHwgXCJGOVwiIC0+IEY5XG4gICAgfCBcIkYxMFwiIC0+IEYxMFxuICAgIHwgXCJGMTFcIiAtPiBGMTFcbiAgICB8IFwiRjEyXCIgLT4gRjEyXG4gICAgKCogTnVtcGFkIGtleXMgKilcbiAgICB8IFwiTnVtcGFkMFwiIC0+IE51bXBhZDBcbiAgICB8IFwiTnVtcGFkMVwiIC0+IE51bXBhZDFcbiAgICB8IFwiTnVtcGFkMlwiIC0+IE51bXBhZDJcbiAgICB8IFwiTnVtcGFkM1wiIC0+IE51bXBhZDNcbiAgICB8IFwiTnVtcGFkNFwiIC0+IE51bXBhZDRcbiAgICB8IFwiTnVtcGFkNVwiIC0+IE51bXBhZDVcbiAgICB8IFwiTnVtcGFkNlwiIC0+IE51bXBhZDZcbiAgICB8IFwiTnVtcGFkN1wiIC0+IE51bXBhZDdcbiAgICB8IFwiTnVtcGFkOFwiIC0+IE51bXBhZDhcbiAgICB8IFwiTnVtcGFkOVwiIC0+IE51bXBhZDlcbiAgICB8IFwiTnVtcGFkTXVsdGlwbHlcIiAtPiBOdW1wYWRNdWx0aXBseVxuICAgIHwgXCJOdW1wYWRTdWJ0cmFjdFwiIC0+IE51bXBhZFN1YnRyYWN0XG4gICAgfCBcIk51bXBhZEFkZFwiIC0+IE51bXBhZEFkZFxuICAgIHwgXCJOdW1wYWREZWNpbWFsXCIgLT4gTnVtcGFkRGVjaW1hbFxuICAgIHwgXCJOdW1wYWRFcXVhbFwiIC0+IE51bXBhZEVxdWFsXG4gICAgfCBcIk51bXBhZEVudGVyXCIgLT4gTnVtcGFkRW50ZXJcbiAgICB8IFwiTnVtcGFkRGl2aWRlXCIgLT4gTnVtcGFkRGl2aWRlXG4gICAgfCBcIk51bUxvY2tcIiAtPiBOdW1Mb2NrXG4gICAgKCogTW9kaWZpZXIga2V5cyAqKVxuICAgIHwgXCJDb250cm9sTGVmdFwiIC0+IENvbnRyb2xMZWZ0XG4gICAgfCBcIkNvbnRyb2xSaWdodFwiIC0+IENvbnRyb2xSaWdodFxuICAgIHwgXCJNZXRhTGVmdFwiIC0+IE1ldGFMZWZ0XG4gICAgfCBcIk1ldGFSaWdodFwiIC0+IE1ldGFSaWdodFxuICAgIHwgXCJTaGlmdExlZnRcIiAtPiBTaGlmdExlZnRcbiAgICB8IFwiU2hpZnRSaWdodFwiIC0+IFNoaWZ0UmlnaHRcbiAgICB8IFwiQWx0TGVmdFwiIC0+IEFsdExlZnRcbiAgICB8IFwiQWx0UmlnaHRcIiAtPiBBbHRSaWdodFxuICAgICgqIEFycm93IGtleXMgKilcbiAgICB8IFwiQXJyb3dMZWZ0XCIgLT4gQXJyb3dMZWZ0XG4gICAgfCBcIkFycm93UmlnaHRcIiAtPiBBcnJvd1JpZ2h0XG4gICAgfCBcIkFycm93VXBcIiAtPiBBcnJvd1VwXG4gICAgfCBcIkFycm93RG93blwiIC0+IEFycm93RG93blxuICAgICgqIE5hdmlnYXRpb24gKilcbiAgICB8IFwiUGFnZVVwXCIgLT4gUGFnZVVwXG4gICAgfCBcIlBhZ2VEb3duXCIgLT4gUGFnZURvd25cbiAgICB8IFwiSG9tZVwiIC0+IEhvbWVcbiAgICB8IFwiRW5kXCIgLT4gRW5kXG4gICAgKCogU291bmQgKilcbiAgICB8IFwiVm9sdW1lTXV0ZVwiIC0+IFZvbHVtZU11dGVcbiAgICB8IFwiVm9sdW1lRG93blwiIC0+IFZvbHVtZURvd25cbiAgICB8IFwiVm9sdW1lVXBcIiAtPiBWb2x1bWVVcFxuICAgICgqIE1lZGlhICopXG4gICAgfCBcIk1lZGlhVHJhY2tQcmV2aW91c1wiIC0+IE1lZGlhVHJhY2tQcmV2aW91c1xuICAgIHwgXCJNZWRpYVRyYWNrTmV4dFwiIC0+IE1lZGlhVHJhY2tOZXh0XG4gICAgfCBcIk1lZGlhUGxheVBhdXNlXCIgLT4gTWVkaWFQbGF5UGF1c2VcbiAgICB8IFwiTWVkaWFTdG9wXCIgLT4gTWVkaWFTdG9wXG4gICAgKCogQnJvd3NlciBzcGVjaWFsICopXG4gICAgfCBcIkNvbnRleHRNZW51XCIgLT4gQ29udGV4dE1lbnVcbiAgICB8IFwiQnJvd3NlclNlYXJjaFwiIC0+IEJyb3dzZXJTZWFyY2hcbiAgICB8IFwiQnJvd3NlckhvbWVcIiAtPiBCcm93c2VySG9tZVxuICAgIHwgXCJCcm93c2VyRmF2b3JpdGVzXCIgLT4gQnJvd3NlckZhdm9yaXRlc1xuICAgIHwgXCJCcm93c2VyUmVmcmVzaFwiIC0+IEJyb3dzZXJSZWZyZXNoXG4gICAgfCBcIkJyb3dzZXJTdG9wXCIgLT4gQnJvd3NlclN0b3BcbiAgICB8IFwiQnJvd3NlckZvcndhcmRcIiAtPiBCcm93c2VyRm9yd2FyZFxuICAgIHwgXCJCcm93c2VyQmFja1wiIC0+IEJyb3dzZXJCYWNrXG4gICAgKCogTWlzYyAqKVxuICAgIHwgXCJPU0xlZnRcIiAtPiBPU0xlZnRcbiAgICB8IFwiT1NSaWdodFwiIC0+IE9TUmlnaHRcbiAgICB8IFwiU2Nyb2xsTG9ja1wiIC0+IFNjcm9sbExvY2tcbiAgICB8IFwiUHJpbnRTY3JlZW5cIiAtPiBQcmludFNjcmVlblxuICAgIHwgXCJJbnRsQmFja3NsYXNoXCIgLT4gSW50bEJhY2tzbGFzaFxuICAgIHwgXCJJbnRsWWVuXCIgLT4gSW50bFllblxuICAgIHwgXCJQYXVzZVwiIC0+IFBhdXNlXG4gICAgfCBfIC0+IFVuaWRlbnRpZmllZFxuXG4gIGxldCB0cnlfa2V5X2NvZGVfbGVmdCA9IGZ1bmN0aW9uXG4gICAgfCAxNiAtPiBTaGlmdExlZnRcbiAgICB8IDE3IC0+IENvbnRyb2xMZWZ0XG4gICAgfCAxOCAtPiBBbHRMZWZ0XG4gICAgfCA5MSAtPiBNZXRhTGVmdFxuICAgIHwgXyAtPiBVbmlkZW50aWZpZWRcblxuICBsZXQgdHJ5X2tleV9jb2RlX3JpZ2h0ID0gZnVuY3Rpb25cbiAgICB8IDE2IC0+IFNoaWZ0UmlnaHRcbiAgICB8IDE3IC0+IENvbnRyb2xSaWdodFxuICAgIHwgMTggLT4gQWx0UmlnaHRcbiAgICB8IDkxIC0+IE1ldGFSaWdodFxuICAgIHwgXyAtPiBVbmlkZW50aWZpZWRcblxuICBsZXQgdHJ5X2tleV9jb2RlX251bXBhZCA9IGZ1bmN0aW9uXG4gICAgfCA0NiAtPiBOdW1wYWREZWNpbWFsXG4gICAgfCA0NSAtPiBOdW1wYWQwXG4gICAgfCAzNSAtPiBOdW1wYWQxXG4gICAgfCA0MCAtPiBOdW1wYWQyXG4gICAgfCAzNCAtPiBOdW1wYWQzXG4gICAgfCAzNyAtPiBOdW1wYWQ0XG4gICAgfCAxMiAtPiBOdW1wYWQ1XG4gICAgfCAzOSAtPiBOdW1wYWQ2XG4gICAgfCAzNiAtPiBOdW1wYWQ3XG4gICAgfCAzOCAtPiBOdW1wYWQ4XG4gICAgfCAzMyAtPiBOdW1wYWQ5XG4gICAgfCAxMyAtPiBOdW1wYWRFbnRlclxuICAgIHwgMTExIC0+IE51bXBhZERpdmlkZVxuICAgIHwgMTA3IC0+IE51bXBhZEFkZFxuICAgIHwgMTA5IC0+IE51bXBhZFN1YnRyYWN0XG4gICAgfCAxMDYgLT4gTnVtcGFkTXVsdGlwbHlcbiAgICB8IDExMCAtPiBOdW1wYWREZWNpbWFsXG4gICAgfCA5NiAtPiBOdW1wYWQwXG4gICAgfCA5NyAtPiBOdW1wYWQxXG4gICAgfCA5OCAtPiBOdW1wYWQyXG4gICAgfCA5OSAtPiBOdW1wYWQzXG4gICAgfCAxMDAgLT4gTnVtcGFkNFxuICAgIHwgMTAxIC0+IE51bXBhZDVcbiAgICB8IDEwMiAtPiBOdW1wYWQ2XG4gICAgfCAxMDMgLT4gTnVtcGFkN1xuICAgIHwgMTA0IC0+IE51bXBhZDhcbiAgICB8IDEwNSAtPiBOdW1wYWQ5XG4gICAgfCBfIC0+IFVuaWRlbnRpZmllZFxuXG4gIGxldCB0cnlfa2V5X2NvZGVfbm9ybWFsID0gZnVuY3Rpb25cbiAgICB8IDI3IC0+IEVzY2FwZVxuICAgIHwgMTEyIC0+IEYxXG4gICAgfCAxMTMgLT4gRjJcbiAgICB8IDExNCAtPiBGM1xuICAgIHwgMTE1IC0+IEY0XG4gICAgfCAxMTYgLT4gRjVcbiAgICB8IDExNyAtPiBGNlxuICAgIHwgMTE4IC0+IEY3XG4gICAgfCAxMTkgLT4gRjhcbiAgICB8IDEyMCAtPiBGOVxuICAgIHwgMTIxIC0+IEYxMFxuICAgIHwgMTIyIC0+IEYxMVxuICAgIHwgMTIzIC0+IEYxMlxuICAgIHwgNDIgLT4gUHJpbnRTY3JlZW5cbiAgICB8IDE0NSAtPiBTY3JvbGxMb2NrXG4gICAgfCAxOSAtPiBQYXVzZVxuICAgIHwgMTkyIC0+IEJhY2txdW90ZVxuICAgIHwgNDkgLT4gRGlnaXQxXG4gICAgfCA1MCAtPiBEaWdpdDJcbiAgICB8IDUxIC0+IERpZ2l0M1xuICAgIHwgNTIgLT4gRGlnaXQ0XG4gICAgfCA1MyAtPiBEaWdpdDVcbiAgICB8IDU0IC0+IERpZ2l0NlxuICAgIHwgNTUgLT4gRGlnaXQ3XG4gICAgfCA1NiAtPiBEaWdpdDhcbiAgICB8IDU3IC0+IERpZ2l0OVxuICAgIHwgNDggLT4gRGlnaXQwXG4gICAgfCAxODkgLT4gTWludXNcbiAgICB8IDE4NyAtPiBFcXVhbFxuICAgIHwgOCAtPiBCYWNrc3BhY2VcbiAgICB8IDkgLT4gVGFiXG4gICAgfCA4MSAtPiBLZXlRXG4gICAgfCA4NyAtPiBLZXlXXG4gICAgfCA2OSAtPiBLZXlFXG4gICAgfCA4MiAtPiBLZXlSXG4gICAgfCA4NCAtPiBLZXlUXG4gICAgfCA4OSAtPiBLZXlZXG4gICAgfCA4NSAtPiBLZXlVXG4gICAgfCA3MyAtPiBLZXlJXG4gICAgfCA3OSAtPiBLZXlPXG4gICAgfCA4MCAtPiBLZXlQXG4gICAgfCAyMTkgLT4gQnJhY2tldExlZnRcbiAgICB8IDIyMSAtPiBCcmFja2V0UmlnaHRcbiAgICB8IDIyMCAtPiBCYWNrc2xhc2hcbiAgICB8IDIwIC0+IENhcHNMb2NrXG4gICAgfCA2NSAtPiBLZXlBXG4gICAgfCA4MyAtPiBLZXlTXG4gICAgfCA2OCAtPiBLZXlEXG4gICAgfCA3MCAtPiBLZXlGXG4gICAgfCA3MSAtPiBLZXlHXG4gICAgfCA3MiAtPiBLZXlIXG4gICAgfCA3NCAtPiBLZXlKXG4gICAgfCA3NSAtPiBLZXlLXG4gICAgfCA3NiAtPiBLZXlMXG4gICAgfCAxODYgLT4gU2VtaWNvbG9uXG4gICAgfCAyMjIgLT4gUXVvdGVcbiAgICB8IDEzIC0+IEVudGVyXG4gICAgfCA5MCAtPiBLZXlaXG4gICAgfCA4OCAtPiBLZXlYXG4gICAgfCA2NyAtPiBLZXlDXG4gICAgfCA4NiAtPiBLZXlWXG4gICAgfCA2NiAtPiBLZXlCXG4gICAgfCA3OCAtPiBLZXlOXG4gICAgfCA3NyAtPiBLZXlNXG4gICAgfCAxODggLT4gQ29tbWFcbiAgICB8IDE5MCAtPiBQZXJpb2RcbiAgICB8IDE5MSAtPiBTbGFzaFxuICAgIHwgMzIgLT4gU3BhY2VcbiAgICB8IDkzIC0+IENvbnRleHRNZW51XG4gICAgfCA0NSAtPiBJbnNlcnRcbiAgICB8IDM2IC0+IEhvbWVcbiAgICB8IDMzIC0+IFBhZ2VVcFxuICAgIHwgNDYgLT4gRGVsZXRlXG4gICAgfCAzNSAtPiBFbmRcbiAgICB8IDM0IC0+IFBhZ2VEb3duXG4gICAgfCAzNyAtPiBBcnJvd0xlZnRcbiAgICB8IDQwIC0+IEFycm93RG93blxuICAgIHwgMzkgLT4gQXJyb3dSaWdodFxuICAgIHwgMzggLT4gQXJyb3dVcFxuICAgIHwgXyAtPiBVbmlkZW50aWZpZWRcblxuICBsZXQgbWFrZV91bmlkZW50aWZpZWQgXyA9IFVuaWRlbnRpZmllZFxuXG4gIGxldCB0cnlfbmV4dCB2YWx1ZSBmID0gZnVuY3Rpb25cbiAgICB8IFVuaWRlbnRpZmllZCAtPiBPcHRkZWYuY2FzZSB2YWx1ZSBtYWtlX3VuaWRlbnRpZmllZCBmXG4gICAgfCB2IC0+IHZcblxuICBsZXQgcnVuX25leHQgdmFsdWUgZiA9IGZ1bmN0aW9uXG4gICAgfCBVbmlkZW50aWZpZWQgLT4gZiB2YWx1ZVxuICAgIHwgdiAtPiB2XG5cbiAgbGV0IGdldF9rZXlfY29kZSBldnQgPSBldnQjIy5rZXlDb2RlXG5cbiAgbGV0IHRyeV9rZXlfbG9jYXRpb24gZXZ0ID1cbiAgICBtYXRjaCBldnQjIy5sb2NhdGlvbiB3aXRoXG4gICAgfCAxIC0+IHJ1bl9uZXh0IChnZXRfa2V5X2NvZGUgZXZ0KSB0cnlfa2V5X2NvZGVfbGVmdFxuICAgIHwgMiAtPiBydW5fbmV4dCAoZ2V0X2tleV9jb2RlIGV2dCkgdHJ5X2tleV9jb2RlX3JpZ2h0XG4gICAgfCAzIC0+IHJ1bl9uZXh0IChnZXRfa2V5X2NvZGUgZXZ0KSB0cnlfa2V5X2NvZGVfbnVtcGFkXG4gICAgfCBfIC0+IG1ha2VfdW5pZGVudGlmaWVkXG5cbiAgbGV0ICggfD4gKSB4IGYgPSBmIHhcblxuICBsZXQgb2ZfZXZlbnQgZXZ0ID1cbiAgICBVbmlkZW50aWZpZWRcbiAgICB8PiB0cnlfbmV4dCBldnQjIy5jb2RlIHRyeV9jb2RlXG4gICAgfD4gdHJ5X2tleV9sb2NhdGlvbiBldnRcbiAgICB8PiBydW5fbmV4dCAoZ2V0X2tleV9jb2RlIGV2dCkgdHJ5X2tleV9jb2RlX25vcm1hbFxuXG4gIGxldCBvZl9rZXlfY29kZSA9IHRyeV9rZXlfY29kZV9ub3JtYWxcbmVuZFxuXG5tb2R1bGUgS2V5Ym9hcmRfa2V5ID0gc3RydWN0XG4gIHR5cGUgdCA9IFVjaGFyLnQgb3B0aW9uXG5cbiAgbGV0IGNoYXJfb2ZfaW50IHZhbHVlID1cbiAgICBpZiAwIDwgdmFsdWUgdGhlbiB0cnkgU29tZSAoVWNoYXIub2ZfaW50IHZhbHVlKSB3aXRoIF8gLT4gTm9uZSBlbHNlIE5vbmVcblxuICBsZXQgZW1wdHlfc3RyaW5nIF8gPSBKcy5zdHJpbmcgXCJcIlxuXG4gIGxldCBub25lIF8gPSBOb25lXG5cbiAgbGV0IG9mX2V2ZW50IGV2dCA9XG4gICAgbGV0IGtleSA9IE9wdGRlZi5nZXQgZXZ0IyMua2V5IGVtcHR5X3N0cmluZyBpblxuICAgIG1hdGNoIGtleSMjLmxlbmd0aCB3aXRoXG4gICAgfCAwIC0+IE9wdGRlZi5jYXNlIGV2dCMjLmNoYXJDb2RlIG5vbmUgY2hhcl9vZl9pbnRcbiAgICB8IDEgLT4gY2hhcl9vZl9pbnQgKGludF9vZl9mbG9hdCAoa2V5IyNjaGFyQ29kZUF0IDApKVxuICAgIHwgXyAtPiBOb25lXG5lbmRcblxuKCoqKioqKVxuXG5sZXQgZWxlbWVudCA6ICNEb20uZWxlbWVudCB0IC0+IGVsZW1lbnQgdCA9IEpzLlVuc2FmZS5jb2VyY2VcblxudHlwZSB0YWdnZWRFbGVtZW50ID1cbiAgfCBBIG9mIGFuY2hvckVsZW1lbnQgdFxuICB8IEFyZWEgb2YgYXJlYUVsZW1lbnQgdFxuICB8IEF1ZGlvIG9mIGF1ZGlvRWxlbWVudCB0XG4gIHwgQmFzZSBvZiBiYXNlRWxlbWVudCB0XG4gIHwgQmxvY2txdW90ZSBvZiBxdW90ZUVsZW1lbnQgdFxuICB8IEJvZHkgb2YgYm9keUVsZW1lbnQgdFxuICB8IEJyIG9mIGJyRWxlbWVudCB0XG4gIHwgQnV0dG9uIG9mIGJ1dHRvbkVsZW1lbnQgdFxuICB8IENhbnZhcyBvZiBjYW52YXNFbGVtZW50IHRcbiAgfCBDYXB0aW9uIG9mIHRhYmxlQ2FwdGlvbkVsZW1lbnQgdFxuICB8IENvbCBvZiB0YWJsZUNvbEVsZW1lbnQgdFxuICB8IENvbGdyb3VwIG9mIHRhYmxlQ29sRWxlbWVudCB0XG4gIHwgRGVsIG9mIG1vZEVsZW1lbnQgdFxuICB8IERpdiBvZiBkaXZFbGVtZW50IHRcbiAgfCBEbCBvZiBkTGlzdEVsZW1lbnQgdFxuICB8IEVtYmVkIG9mIGVtYmVkRWxlbWVudCB0XG4gIHwgRmllbGRzZXQgb2YgZmllbGRTZXRFbGVtZW50IHRcbiAgfCBGb3JtIG9mIGZvcm1FbGVtZW50IHRcbiAgfCBGcmFtZXNldCBvZiBmcmFtZVNldEVsZW1lbnQgdFxuICB8IEZyYW1lIG9mIGZyYW1lRWxlbWVudCB0XG4gIHwgSDEgb2YgaGVhZGluZ0VsZW1lbnQgdFxuICB8IEgyIG9mIGhlYWRpbmdFbGVtZW50IHRcbiAgfCBIMyBvZiBoZWFkaW5nRWxlbWVudCB0XG4gIHwgSDQgb2YgaGVhZGluZ0VsZW1lbnQgdFxuICB8IEg1IG9mIGhlYWRpbmdFbGVtZW50IHRcbiAgfCBINiBvZiBoZWFkaW5nRWxlbWVudCB0XG4gIHwgSGVhZCBvZiBoZWFkRWxlbWVudCB0XG4gIHwgSHIgb2YgaHJFbGVtZW50IHRcbiAgfCBIdG1sIG9mIGh0bWxFbGVtZW50IHRcbiAgfCBJZnJhbWUgb2YgaUZyYW1lRWxlbWVudCB0XG4gIHwgSW1nIG9mIGltYWdlRWxlbWVudCB0XG4gIHwgSW5wdXQgb2YgaW5wdXRFbGVtZW50IHRcbiAgfCBJbnMgb2YgbW9kRWxlbWVudCB0XG4gIHwgTGFiZWwgb2YgbGFiZWxFbGVtZW50IHRcbiAgfCBMZWdlbmQgb2YgbGVnZW5kRWxlbWVudCB0XG4gIHwgTGkgb2YgbGlFbGVtZW50IHRcbiAgfCBMaW5rIG9mIGxpbmtFbGVtZW50IHRcbiAgfCBNYXAgb2YgbWFwRWxlbWVudCB0XG4gIHwgTWV0YSBvZiBtZXRhRWxlbWVudCB0XG4gIHwgT2JqZWN0IG9mIG9iamVjdEVsZW1lbnQgdFxuICB8IE9sIG9mIG9MaXN0RWxlbWVudCB0XG4gIHwgT3B0Z3JvdXAgb2Ygb3B0R3JvdXBFbGVtZW50IHRcbiAgfCBPcHRpb24gb2Ygb3B0aW9uRWxlbWVudCB0XG4gIHwgUCBvZiBwYXJhbUVsZW1lbnQgdFxuICB8IFBhcmFtIG9mIHBhcmFtRWxlbWVudCB0XG4gIHwgUHJlIG9mIHByZUVsZW1lbnQgdFxuICB8IFEgb2YgcXVvdGVFbGVtZW50IHRcbiAgfCBTY3JpcHQgb2Ygc2NyaXB0RWxlbWVudCB0XG4gIHwgU2VsZWN0IG9mIHNlbGVjdEVsZW1lbnQgdFxuICB8IFN0eWxlIG9mIHN0eWxlRWxlbWVudCB0XG4gIHwgVGFibGUgb2YgdGFibGVFbGVtZW50IHRcbiAgfCBUYm9keSBvZiB0YWJsZVNlY3Rpb25FbGVtZW50IHRcbiAgfCBUZCBvZiB0YWJsZUNlbGxFbGVtZW50IHRcbiAgfCBUZXh0YXJlYSBvZiB0ZXh0QXJlYUVsZW1lbnQgdFxuICB8IFRmb290IG9mIHRhYmxlU2VjdGlvbkVsZW1lbnQgdFxuICB8IFRoIG9mIHRhYmxlQ2VsbEVsZW1lbnQgdFxuICB8IFRoZWFkIG9mIHRhYmxlU2VjdGlvbkVsZW1lbnQgdFxuICB8IFRpdGxlIG9mIHRpdGxlRWxlbWVudCB0XG4gIHwgVHIgb2YgdGFibGVSb3dFbGVtZW50IHRcbiAgfCBVbCBvZiB1TGlzdEVsZW1lbnQgdFxuICB8IFZpZGVvIG9mIHZpZGVvRWxlbWVudCB0XG4gIHwgT3RoZXIgb2YgZWxlbWVudCB0XG5cbmxldCBvdGhlciBlID0gT3RoZXIgKGUgOiAjZWxlbWVudCB0IDo+IGVsZW1lbnQgdClcblxubGV0IHRhZ2dlZCAoZSA6ICNlbGVtZW50IHQpID1cbiAgbGV0IHRhZyA9IEpzLnRvX2J5dGVzdHJpbmcgZSMjLnRhZ05hbWUjI3RvTG93ZXJDYXNlIGluXG4gIGlmIFN0cmluZy5sZW5ndGggdGFnID0gMFxuICB0aGVuIG90aGVyIGVcbiAgZWxzZVxuICAgIG1hdGNoIFN0cmluZy51bnNhZmVfZ2V0IHRhZyAwIHdpdGhcbiAgICB8ICdhJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJhXCIgLT4gQSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiYXJlYVwiIC0+IEFyZWEgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImF1ZGlvXCIgLT4gQXVkaW8gKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnYicgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiYmFzZVwiIC0+IEJhc2UgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImJsb2NrcXVvdGVcIiAtPiBCbG9ja3F1b3RlIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJib2R5XCIgLT4gQm9keSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiYnJcIiAtPiBCciAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiYnV0dG9uXCIgLT4gQnV0dG9uIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2MnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImNhbnZhc1wiIC0+IENhbnZhcyAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiY2FwdGlvblwiIC0+IENhcHRpb24gKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImNvbFwiIC0+IENvbCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiY29sZ3JvdXBcIiAtPiBDb2xncm91cCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdkJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJkZWxcIiAtPiBEZWwgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImRpdlwiIC0+IERpdiAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiZGxcIiAtPiBEbCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdlJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJlbWJlZFwiIC0+IEVtYmVkIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2YnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImZpZWxkc2V0XCIgLT4gRmllbGRzZXQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImZvcm1cIiAtPiBGb3JtIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJmcmFtZXNldFwiIC0+IEZyYW1lc2V0IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJmcmFtZVwiIC0+IEZyYW1lIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2gnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImgxXCIgLT4gSDEgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImgyXCIgLT4gSDIgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImgzXCIgLT4gSDMgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImg0XCIgLT4gSDQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImg1XCIgLT4gSDUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImg2XCIgLT4gSDYgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImhlYWRcIiAtPiBIZWFkIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJoclwiIC0+IEhyIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJodG1sXCIgLT4gSHRtbCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdpJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJpZnJhbWVcIiAtPiBJZnJhbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImltZ1wiIC0+IEltZyAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaW5wdXRcIiAtPiBJbnB1dCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaW5zXCIgLT4gSW5zIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2wnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImxhYmVsXCIgLT4gTGFiZWwgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImxlZ2VuZFwiIC0+IExlZ2VuZCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwibGlcIiAtPiBMaSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwibGlua1wiIC0+IExpbmsgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnbScgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwibWFwXCIgLT4gTWFwIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJtZXRhXCIgLT4gTWV0YSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdvJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJvYmplY3RcIiAtPiBPYmplY3QgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcIm9sXCIgLT4gT2wgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcIm9wdGdyb3VwXCIgLT4gT3B0Z3JvdXAgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcIm9wdGlvblwiIC0+IE9wdGlvbiAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdwJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJwXCIgLT4gUCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwicGFyYW1cIiAtPiBQYXJhbSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwicHJlXCIgLT4gUHJlIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ3EnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcInFcIiAtPiBRIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ3MnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcInNjcmlwdFwiIC0+IFNjcmlwdCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwic2VsZWN0XCIgLT4gU2VsZWN0IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJzdHlsZVwiIC0+IFN0eWxlIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ3QnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcInRhYmxlXCIgLT4gVGFibGUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInRib2R5XCIgLT4gVGJvZHkgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInRkXCIgLT4gVGQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInRleHRhcmVhXCIgLT4gVGV4dGFyZWEgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInRmb290XCIgLT4gVGZvb3QgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInRoXCIgLT4gVGggKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInRoZWFkXCIgLT4gVGhlYWQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInRpdGxlXCIgLT4gVGl0bGUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInRyXCIgLT4gVHIgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAndScgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwidWxcIiAtPiBVbCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICd2JyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJ2aWRlb1wiIC0+IFZpZGVvIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgXyAtPiBvdGhlciBlXG5cbmxldCBvcHRfdGFnZ2VkIGUgPSBPcHQuY2FzZSBlIChmdW4gKCkgLT4gTm9uZSkgKGZ1biBlIC0+IFNvbWUgKHRhZ2dlZCBlKSlcblxudHlwZSB0YWdnZWRFdmVudCA9XG4gIHwgTW91c2VFdmVudCBvZiBtb3VzZUV2ZW50IHRcbiAgfCBLZXlib2FyZEV2ZW50IG9mIGtleWJvYXJkRXZlbnQgdFxuICB8IE1lc3NhZ2VFdmVudCBvZiBtZXNzYWdlRXZlbnQgdFxuICB8IE1vdXNld2hlZWxFdmVudCBvZiBtb3VzZXdoZWVsRXZlbnQgdFxuICB8IE1vdXNlU2Nyb2xsRXZlbnQgb2YgbW91c2VTY3JvbGxFdmVudCB0XG4gIHwgUG9wU3RhdGVFdmVudCBvZiBwb3BTdGF0ZUV2ZW50IHRcbiAgfCBPdGhlckV2ZW50IG9mIGV2ZW50IHRcblxubGV0IHRhZ2dlZEV2ZW50IChldiA6ICNldmVudCBKcy50KSA9XG4gIEpzLk9wdC5jYXNlXG4gICAgKENvZXJjZVRvLm1vdXNlRXZlbnQgZXYpXG4gICAgKGZ1biAoKSAtPlxuICAgICAgSnMuT3B0LmNhc2VcbiAgICAgICAgKENvZXJjZVRvLmtleWJvYXJkRXZlbnQgZXYpXG4gICAgICAgIChmdW4gKCkgLT5cbiAgICAgICAgICBKcy5PcHQuY2FzZVxuICAgICAgICAgICAgKENvZXJjZVRvLndoZWVsRXZlbnQgZXYpXG4gICAgICAgICAgICAoZnVuICgpIC0+XG4gICAgICAgICAgICAgIEpzLk9wdC5jYXNlXG4gICAgICAgICAgICAgICAgKENvZXJjZVRvLm1vdXNlU2Nyb2xsRXZlbnQgZXYpXG4gICAgICAgICAgICAgICAgKGZ1biAoKSAtPlxuICAgICAgICAgICAgICAgICAgSnMuT3B0LmNhc2VcbiAgICAgICAgICAgICAgICAgICAgKENvZXJjZVRvLnBvcFN0YXRlRXZlbnQgZXYpXG4gICAgICAgICAgICAgICAgICAgIChmdW4gKCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICBKcy5PcHQuY2FzZVxuICAgICAgICAgICAgICAgICAgICAgICAgKENvZXJjZVRvLm1lc3NhZ2VFdmVudCBldilcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKCkgLT4gT3RoZXJFdmVudCAoZXYgOj4gZXZlbnQgdCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuIGV2IC0+IE1lc3NhZ2VFdmVudCBldikpXG4gICAgICAgICAgICAgICAgICAgIChmdW4gZXYgLT4gUG9wU3RhdGVFdmVudCBldikpXG4gICAgICAgICAgICAgICAgKGZ1biBldiAtPiBNb3VzZVNjcm9sbEV2ZW50IGV2KSlcbiAgICAgICAgICAgIChmdW4gZXYgLT4gTW91c2V3aGVlbEV2ZW50IGV2KSlcbiAgICAgICAgKGZ1biBldiAtPiBLZXlib2FyZEV2ZW50IGV2KSlcbiAgICAoZnVuIGV2IC0+IE1vdXNlRXZlbnQgZXYpXG5cbmxldCBvcHRfdGFnZ2VkRXZlbnQgZXYgPSBPcHQuY2FzZSBldiAoZnVuICgpIC0+IE5vbmUpIChmdW4gZXYgLT4gU29tZSAodGFnZ2VkRXZlbnQgZXYpKVxuXG5sZXQgc3RvcFByb3BhZ2F0aW9uIGV2ID1cbiAgbGV0IGUgPSBKcy5VbnNhZmUuY29lcmNlIGV2IGluXG4gIE9wdGRlZi5jYXNlXG4gICAgZSMjLnN0b3BQcm9wYWdhdGlvblxuICAgIChmdW4gKCkgLT4gZSMjLmNhbmNlbEJ1YmJsZSA6PSBKcy5fdHJ1ZSlcbiAgICAoZnVuIF8gLT4gZSMjX3N0b3BQcm9wYWdhdGlvbilcblxubGV0IF9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgOiAodW5pdCAtPiB1bml0KSBKcy5jYWxsYmFjayAtPiB1bml0ID1cbiAgSnMuVW5zYWZlLnB1cmVfZXhwciAoZnVuIF8gLT5cbiAgICAgIGxldCB3ID0gSnMuVW5zYWZlLmNvZXJjZSB3aW5kb3cgaW5cbiAgICAgIGxldCBsID1cbiAgICAgICAgWyB3IyMucmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgICAgIDsgdyMjLm1velJlcXVlc3RBbmltYXRpb25GcmFtZVxuICAgICAgICA7IHcjIy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVcbiAgICAgICAgOyB3IyMub1JlcXVlc3RBbmltYXRpb25GcmFtZVxuICAgICAgICA7IHcjIy5tc1JlcXVlc3RBbmltYXRpb25GcmFtZVxuICAgICAgICBdXG4gICAgICBpblxuICAgICAgdHJ5XG4gICAgICAgIGxldCByZXEgPSBMaXN0LmZpbmQgKGZ1biBjIC0+IEpzLk9wdGRlZi50ZXN0IGMpIGwgaW5cbiAgICAgICAgZnVuIGNhbGxiYWNrIC0+IEpzLlVuc2FmZS5mdW5fY2FsbCByZXEgW3wgSnMuVW5zYWZlLmluamVjdCBjYWxsYmFjayB8XVxuICAgICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgbGV0IG5vdyAoKSA9IChuZXclanMgSnMuZGF0ZV9ub3cpIyNnZXRUaW1lIGluXG4gICAgICAgIGxldCBsYXN0ID0gcmVmIChub3cgKCkpIGluXG4gICAgICAgIGZ1biBjYWxsYmFjayAtPlxuICAgICAgICAgIGxldCB0ID0gbm93ICgpIGluXG4gICAgICAgICAgbGV0IGR0ID0gIWxhc3QgKy4gKDEwMDAuIC8uIDYwLikgLS4gdCBpblxuICAgICAgICAgIGxldCBkdCA9IGlmIFBvbHkuKGR0IDwgMC4pIHRoZW4gMC4gZWxzZSBkdCBpblxuICAgICAgICAgIGxhc3QgOj0gdDtcbiAgICAgICAgICBpZ25vcmUgKHdpbmRvdyMjc2V0VGltZW91dCBjYWxsYmFjayBkdCkpXG5cbigqKioqKVxuXG5sZXQgaGFzUHVzaFN0YXRlICgpID0gSnMuT3B0ZGVmLnRlc3QgKEpzLlVuc2FmZS5jb2VyY2Ugd2luZG93IyMuaGlzdG9yeSkjIy5wdXNoU3RhdGVcblxubGV0IGhhc1BsYWNlaG9sZGVyICgpID1cbiAgbGV0IGkgPSBjcmVhdGVJbnB1dCBkb2N1bWVudCBpblxuICBKcy5PcHRkZWYudGVzdCAoSnMuVW5zYWZlLmNvZXJjZSBpKSMjLnBsYWNlaG9sZGVyXG5cbmxldCBoYXNSZXF1aXJlZCAoKSA9XG4gIGxldCBpID0gY3JlYXRlSW5wdXQgZG9jdW1lbnQgaW5cbiAgSnMuT3B0ZGVmLnRlc3QgKEpzLlVuc2FmZS5jb2VyY2UgaSkjIy5yZXF1aXJlZFxuXG5sZXQgb3ZlcmZsb3dfbGltaXQgPSAyMTQ3NDgzXzAwMC5cblxuKCogbXMgKilcblxudHlwZSB0aW1lb3V0X2lkX3NhZmUgPSB0aW1lb3V0X2lkIG9wdGlvbiByZWZcblxubGV0IHNldFRpbWVvdXQgY2FsbGJhY2sgZCA6IHRpbWVvdXRfaWRfc2FmZSA9XG4gIGxldCBpZCA9IHJlZiBOb25lIGluXG4gIGxldCByZWMgbG9vcCBkICgpID1cbiAgICBsZXQgc3RlcCwgcmVtYWluID1cbiAgICAgIGlmIFBvbHkuKGQgPiBvdmVyZmxvd19saW1pdCkgdGhlbiBvdmVyZmxvd19saW1pdCwgZCAtLiBvdmVyZmxvd19saW1pdCBlbHNlIGQsIDAuXG4gICAgaW5cbiAgICBsZXQgY2IgPSBpZiBQb2x5LihyZW1haW4gPSAwLikgdGhlbiBjYWxsYmFjayBlbHNlIGxvb3AgcmVtYWluIGluXG4gICAgaWQgOj0gU29tZSAod2luZG93IyNzZXRUaW1lb3V0IChKcy53cmFwX2NhbGxiYWNrIGNiKSBzdGVwKVxuICBpblxuICBsb29wIGQgKCk7XG4gIGlkXG5cbmxldCBjbGVhclRpbWVvdXQgKGlkIDogdGltZW91dF9pZF9zYWZlKSA9XG4gIG1hdGNoICFpZCB3aXRoXG4gIHwgTm9uZSAtPiAoKVxuICB8IFNvbWUgeCAtPlxuICAgICAgaWQgOj0gTm9uZTtcbiAgICAgIHdpbmRvdyMjY2xlYXJUaW1lb3V0IHhcblxubGV0IGpzX2FycmF5X29mX2NvbGxlY3Rpb24gKGMgOiAjZWxlbWVudCBjb2xsZWN0aW9uIEpzLnQpIDogI2VsZW1lbnQgSnMudCBKcy5qc19hcnJheSBKcy50XG4gICAgPVxuICBKcy5VbnNhZmUuKG1ldGhfY2FsbCAoanNfZXhwciBcIltdLnNsaWNlXCIpIFwiY2FsbFwiIFt8IGluamVjdCBjIHxdKVxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMSBQaWVycmUgQ2hhbWJhcnRcbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuIERvbV9odG1sXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBmb3JtRGF0YSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhcHBlbmQgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhcHBlbmRfYmxvYiA6IGpzX3N0cmluZyB0IC0+IEZpbGUuYmxvYiB0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxubGV0IGZvcm1EYXRhIDogZm9ybURhdGEgdCBjb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0Zvcm1EYXRhXG5cbmxldCBmb3JtRGF0YV9mb3JtIDogKGZvcm1FbGVtZW50IHQgLT4gZm9ybURhdGEgdCkgY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9Gb3JtRGF0YVxuXG50eXBlIGZvcm1fZWx0ID1cbiAgWyBgU3RyaW5nIG9mIGpzX3N0cmluZyB0XG4gIHwgYEZpbGUgb2YgRmlsZS5maWxlIHRcbiAgXVxuXG50eXBlIGZvcm1fY29udGVudHMgPVxuICBbIGBGaWVsZHMgb2YgKHN0cmluZyAqIGZvcm1fZWx0KSBsaXN0IHJlZlxuICB8IGBGb3JtRGF0YSBvZiBmb3JtRGF0YSB0XG4gIF1cblxubGV0IHJlYyBmaWx0ZXJfbWFwIGYgPSBmdW5jdGlvblxuICB8IFtdIC0+IFtdXG4gIHwgdiA6OiBxIC0+IChcbiAgICAgIG1hdGNoIGYgdiB3aXRoXG4gICAgICB8IE5vbmUgLT4gZmlsdGVyX21hcCBmIHFcbiAgICAgIHwgU29tZSB2JyAtPiB2JyA6OiBmaWx0ZXJfbWFwIGYgcSlcblxuY2xhc3MgdHlwZSBzdWJtaXR0YWJsZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGlzYWJsZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5sZXQgaGF2ZV9jb250ZW50IChlbHQgOiBzdWJtaXR0YWJsZUVsZW1lbnQgdCkgPVxuICBlbHQjIy5uYW1lIyMubGVuZ3RoID4gMCAmJiBub3QgKEpzLnRvX2Jvb2wgZWx0IyMuZGlzYWJsZWQpXG5cbmxldCBnZXRfdGV4dGFyZWFfdmFsIChlbHQgOiB0ZXh0QXJlYUVsZW1lbnQgdCkgPVxuICBpZiBoYXZlX2NvbnRlbnQgKGVsdCA6PiBzdWJtaXR0YWJsZUVsZW1lbnQgdClcbiAgdGhlblxuICAgIGxldCBuYW1lID0gdG9fc3RyaW5nIGVsdCMjLm5hbWUgaW5cbiAgICBbIG5hbWUsIGBTdHJpbmcgZWx0IyMudmFsdWUgXVxuICBlbHNlIFtdXG5cbmxldCBnZXRfc2VsZWN0X3ZhbCAoZWx0IDogc2VsZWN0RWxlbWVudCB0KSA9XG4gIGlmIGhhdmVfY29udGVudCAoZWx0IDo+IHN1Ym1pdHRhYmxlRWxlbWVudCB0KVxuICB0aGVuXG4gICAgbGV0IG5hbWUgPSB0b19zdHJpbmcgZWx0IyMubmFtZSBpblxuICAgIGlmIHRvX2Jvb2wgZWx0IyMubXVsdGlwbGVcbiAgICB0aGVuXG4gICAgICBsZXQgb3B0aW9ucyA9XG4gICAgICAgIEFycmF5LmluaXQgZWx0IyMub3B0aW9ucyMjLmxlbmd0aCAoZnVuIGkgLT4gT3B0LnRvX29wdGlvbiAoZWx0IyMub3B0aW9ucyMjaXRlbSBpKSlcbiAgICAgIGluXG4gICAgICBmaWx0ZXJfbWFwXG4gICAgICAgIChmdW5jdGlvblxuICAgICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgfCBTb21lIGUgLT5cbiAgICAgICAgICAgICAgaWYgSnMudG9fYm9vbCBlIyMuc2VsZWN0ZWQgdGhlbiBTb21lIChuYW1lLCBgU3RyaW5nIGUjIy52YWx1ZSkgZWxzZSBOb25lKVxuICAgICAgICAoQXJyYXkudG9fbGlzdCBvcHRpb25zKVxuICAgIGVsc2UgWyBuYW1lLCBgU3RyaW5nIGVsdCMjLnZhbHVlIF1cbiAgZWxzZSBbXVxuXG5jbGFzcyB0eXBlIGZpbGVfaW5wdXQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGlucHV0RWxlbWVudFxuXG4gICAgbWV0aG9kIGZpbGVzIDogRmlsZS5maWxlTGlzdCB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbXVsdGlwbGUgOiBib29sIG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgZ2V0X2lucHV0X3ZhbCA/KGdldCA9IGZhbHNlKSAoZWx0IDogaW5wdXRFbGVtZW50IHQpID1cbiAgaWYgaGF2ZV9jb250ZW50IChlbHQgOj4gc3VibWl0dGFibGVFbGVtZW50IHQpXG4gIHRoZW5cbiAgICBsZXQgbmFtZSA9IHRvX3N0cmluZyBlbHQjIy5uYW1lIGluXG4gICAgbGV0IHZhbHVlID0gZWx0IyMudmFsdWUgaW5cbiAgICBtYXRjaCB0b19ieXRlc3RyaW5nIGVsdCMjLl90eXBlIyN0b0xvd2VyQ2FzZSB3aXRoXG4gICAgfCBcImNoZWNrYm94XCIgfCBcInJhZGlvXCIgLT5cbiAgICAgICAgaWYgdG9fYm9vbCBlbHQjIy5jaGVja2VkIHRoZW4gWyBuYW1lLCBgU3RyaW5nIHZhbHVlIF0gZWxzZSBbXVxuICAgIHwgXCJzdWJtaXRcIiB8IFwicmVzZXRcIiAtPiBbXVxuICAgIHwgXCJ0ZXh0XCIgfCBcInBhc3N3b3JkXCIgLT4gWyBuYW1lLCBgU3RyaW5nIHZhbHVlIF1cbiAgICB8IFwiZmlsZVwiIC0+IChcbiAgICAgICAgaWYgZ2V0XG4gICAgICAgIHRoZW4gWyBuYW1lLCBgU3RyaW5nIHZhbHVlIF1cbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxldCBlbHQgOiBmaWxlX2lucHV0IHQgPSBVbnNhZmUuY29lcmNlIGVsdCBpblxuICAgICAgICAgIG1hdGNoIE9wdGRlZi50b19vcHRpb24gZWx0IyMuZmlsZXMgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBbXVxuICAgICAgICAgIHwgU29tZSBsaXN0IC0+IChcbiAgICAgICAgICAgICAgaWYgbGlzdCMjLmxlbmd0aCA9IDBcbiAgICAgICAgICAgICAgdGhlbiBbIG5hbWUsIGBTdHJpbmcgKEpzLnN0cmluZyBcIlwiKSBdXG4gICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBtYXRjaCBPcHRkZWYudG9fb3B0aW9uIGVsdCMjLm11bHRpcGxlIHdpdGhcbiAgICAgICAgICAgICAgICB8IE5vbmUgfCBTb21lIGZhbHNlIC0+IChcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggT3B0LnRvX29wdGlvbiAobGlzdCMjaXRlbSAwKSB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBbXVxuICAgICAgICAgICAgICAgICAgICB8IFNvbWUgZmlsZSAtPiBbIG5hbWUsIGBGaWxlIGZpbGUgXSlcbiAgICAgICAgICAgICAgICB8IFNvbWUgdHJ1ZSAtPlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJfbWFwXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biBmIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBPcHQudG9fb3B0aW9uIGYgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgU29tZSBmaWxlIC0+IFNvbWUgKG5hbWUsIGBGaWxlIGZpbGUpKVxuICAgICAgICAgICAgICAgICAgICAgIChBcnJheS50b19saXN0IChBcnJheS5pbml0IGxpc3QjIy5sZW5ndGggKGZ1biBpIC0+IGxpc3QjI2l0ZW0gaSkpKSkpXG4gICAgfCBfIC0+IFsgbmFtZSwgYFN0cmluZyB2YWx1ZSBdXG4gIGVsc2UgW11cblxubGV0IGdldF9mb3JtX2VsZW1lbnRzIChmb3JtIDogZm9ybUVsZW1lbnQgdCkgPVxuICBsZXQgcmVjIGxvb3AgYWNjIGkgPVxuICAgIGlmIGkgPCAwXG4gICAgdGhlbiBhY2NcbiAgICBlbHNlXG4gICAgICBtYXRjaCBPcHQudG9fb3B0aW9uIChmb3JtIyMuZWxlbWVudHMjI2l0ZW0gaSkgd2l0aFxuICAgICAgfCBOb25lIC0+IGxvb3AgYWNjIChpIC0gaSlcbiAgICAgIHwgU29tZSB4IC0+IGxvb3AgKHggOjogYWNjKSAoaSAtIDEpXG4gIGluXG4gIGxvb3AgW10gKGZvcm0jIy5lbGVtZW50cyMjLmxlbmd0aCAtIDEpXG5cbmxldCBnZXRfZWxlbWVudF9jb250ZW50ID9nZXQgdiA9XG4gIG1hdGNoIHRhZ2dlZCB2IHdpdGhcbiAgfCBTZWxlY3QgdiAtPiBnZXRfc2VsZWN0X3ZhbCB2XG4gIHwgSW5wdXQgdiAtPiBnZXRfaW5wdXRfdmFsID9nZXQgdlxuICB8IFRleHRhcmVhIHYgLT4gZ2V0X3RleHRhcmVhX3ZhbCB2XG4gIHwgXyAtPiBbXVxuXG5sZXQgZm9ybV9lbGVtZW50cyA/Z2V0IChmb3JtIDogZm9ybUVsZW1lbnQgdCkgPVxuICBMaXN0LmZsYXR0ZW4gKExpc3QubWFwIChmdW4gdiAtPiBnZXRfZWxlbWVudF9jb250ZW50ID9nZXQgdikgKGdldF9mb3JtX2VsZW1lbnRzIGZvcm0pKVxuXG5sZXQgYXBwZW5kIChmb3JtX2NvbnRlbnRzIDogZm9ybV9jb250ZW50cykgKGZvcm1fZWx0IDogc3RyaW5nICogZm9ybV9lbHQpID1cbiAgbWF0Y2ggZm9ybV9jb250ZW50cyB3aXRoXG4gIHwgYEZpZWxkcyBsaXN0IC0+IGxpc3QgOj0gZm9ybV9lbHQgOjogIWxpc3RcbiAgfCBgRm9ybURhdGEgZiAtPiAoXG4gICAgICBtYXRjaCBmb3JtX2VsdCB3aXRoXG4gICAgICB8IG5hbWUsIGBTdHJpbmcgcyAtPiBmIyNhcHBlbmQgKHN0cmluZyBuYW1lKSBzXG4gICAgICB8IG5hbWUsIGBGaWxlIGZpbGUgLT4gZiMjYXBwZW5kX2Jsb2IgKHN0cmluZyBuYW1lKSAoZmlsZSA6PiBGaWxlLmJsb2IgdCkpXG5cbmxldCBlbXB0eV9mb3JtX2NvbnRlbnRzICgpID1cbiAgbWF0Y2ggT3B0ZGVmLnRvX29wdGlvbiAoSnMuZGVmIGZvcm1EYXRhKSB3aXRoXG4gIHwgTm9uZSAtPiBgRmllbGRzIChyZWYgW10pXG4gIHwgU29tZSBjb25zdHIgLT4gYEZvcm1EYXRhIChuZXclanMgY29uc3RyKVxuXG5sZXQgcG9zdF9mb3JtX2NvbnRlbnRzIGZvcm0gPVxuICBsZXQgY29udGVudHMgPSBlbXB0eV9mb3JtX2NvbnRlbnRzICgpIGluXG4gIExpc3QuaXRlciAoYXBwZW5kIGNvbnRlbnRzKSAoZm9ybV9lbGVtZW50cyBmb3JtKTtcbiAgY29udGVudHNcblxubGV0IGdldF9mb3JtX2NvbnRlbnRzIGZvcm0gPVxuICBMaXN0Lm1hcFxuICAgIChmdW5jdGlvblxuICAgICAgfCBuYW1lLCBgU3RyaW5nIHMgLT4gbmFtZSwgdG9fc3RyaW5nIHNcbiAgICAgIHwgXyAtPiBhc3NlcnQgZmFsc2UpXG4gICAgKGZvcm1fZWxlbWVudHMgfmdldDp0cnVlIGZvcm0pXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiEgSW1wb3J0XG5cbnR5cGUgcmVhZHlTdGF0ZSA9XG4gIHwgVU5TRU5UXG4gIHwgT1BFTkVEXG4gIHwgSEVBREVSU19SRUNFSVZFRFxuICB8IExPQURJTkdcbiAgfCBET05FXG5cbnR5cGUgXyByZXNwb25zZSA9XG4gIHwgQXJyYXlCdWZmZXIgOiBUeXBlZF9hcnJheS5hcnJheUJ1ZmZlciB0IE9wdC50IHJlc3BvbnNlXG4gIHwgQmxvYiA6ICNGaWxlLmJsb2IgdCBPcHQudCByZXNwb25zZVxuICB8IERvY3VtZW50IDogRG9tLmVsZW1lbnQgRG9tLmRvY3VtZW50IHQgT3B0LnQgcmVzcG9uc2VcbiAgfCBKU09OIDogJ2EgT3B0LnQgcmVzcG9uc2VcbiAgfCBUZXh0IDoganNfc3RyaW5nIHQgcmVzcG9uc2VcbiAgfCBEZWZhdWx0IDogc3RyaW5nIHJlc3BvbnNlXG5cbmNsYXNzIHR5cGUgeG1sSHR0cFJlcXVlc3QgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIG1ldGhvZCBvbnJlYWR5c3RhdGVjaGFuZ2UgOiAodW5pdCAtPiB1bml0KSBKcy5jYWxsYmFjayBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlYWR5U3RhdGUgOiByZWFkeVN0YXRlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfb3BlbiA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBfb3Blbl9mdWxsIDpcbiAgICAgICAgIGpzX3N0cmluZyB0XG4gICAgICAtPiBqc19zdHJpbmcgdFxuICAgICAgLT4gYm9vbCB0XG4gICAgICAtPiBqc19zdHJpbmcgdCBvcHRcbiAgICAgIC0+IGpzX3N0cmluZyB0IG9wdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0UmVxdWVzdEhlYWRlciA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG92ZXJyaWRlTWltZVR5cGUgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZW5kIDoganNfc3RyaW5nIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNlbmRfYmxvYiA6ICNGaWxlLmJsb2IgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZW5kX2RvY3VtZW50IDogRG9tLmVsZW1lbnQgRG9tLmRvY3VtZW50IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2VuZF9mb3JtRGF0YSA6IEZvcm0uZm9ybURhdGEgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhYm9ydCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0YXR1cyA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RhdHVzVGV4dCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRSZXNwb25zZUhlYWRlciA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlc3BvbnNlIDogRmlsZS5maWxlX2FueSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVzcG9uc2VUZXh0IDoganNfc3RyaW5nIHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZXNwb25zZVhNTCA6IERvbS5lbGVtZW50IERvbS5kb2N1bWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVzcG9uc2VUeXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdpdGhDcmVkZW50aWFscyA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgaW5oZXJpdCBGaWxlLnByb2dyZXNzRXZlbnRUYXJnZXRcblxuICAgIG1ldGhvZCBvbnRpbWVvdXQgOlxuICAgICAgKCdzZWxmIHQsICdzZWxmIEZpbGUucHJvZ3Jlc3NFdmVudCB0KSBEb20uZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB1cGxvYWQgOiB4bWxIdHRwUmVxdWVzdFVwbG9hZCB0IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgeG1sSHR0cFJlcXVlc3RVcGxvYWQgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIGluaGVyaXQgRmlsZS5wcm9ncmVzc0V2ZW50VGFyZ2V0XG4gIGVuZFxuXG5tb2R1bGUgRXZlbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0eXAgPSB4bWxIdHRwUmVxdWVzdCBGaWxlLnByb2dyZXNzRXZlbnQgdCBEb20uRXZlbnQudHlwXG5cbiAgbGV0IHJlYWR5c3RhdGVjaGFuZ2UgPSBEb20uRXZlbnQubWFrZSBcInJlYWR5c3RhdGVjaGFuZ2VcIlxuXG4gIGxldCBsb2Fkc3RhcnQgPSBEb20uRXZlbnQubWFrZSBcImxvYWRzdGFydFwiXG5cbiAgbGV0IHByb2dyZXNzID0gRG9tLkV2ZW50Lm1ha2UgXCJwcm9ncmVzc1wiXG5cbiAgbGV0IGFib3J0ID0gRG9tLkV2ZW50Lm1ha2UgXCJhYm9ydFwiXG5cbiAgbGV0IGVycm9yID0gRG9tLkV2ZW50Lm1ha2UgXCJlcnJvclwiXG5cbiAgbGV0IGxvYWQgPSBEb20uRXZlbnQubWFrZSBcImxvYWRcIlxuXG4gIGxldCB0aW1lb3V0ID0gRG9tLkV2ZW50Lm1ha2UgXCJ0aW1lb3V0XCJcblxuICBsZXQgbG9hZGVuZCA9IERvbS5FdmVudC5tYWtlIFwibG9hZGVuZFwiXG5lbmRcblxuZXh0ZXJuYWwgY3JlYXRlIDogdW5pdCAtPiB4bWxIdHRwUmVxdWVzdCBKcy50ID0gXCJjYW1sX3htbGh0dHByZXF1ZXN0X2NyZWF0ZVwiXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDE1IE9DYW1sUHJvOiBHcsOpZ29pcmUgSGVucnksIMOHYcSfZGHFnyBCb3ptYW4uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4gRG9tX2h0bWxcbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIFsnYSwgJ2JdIHdvcmtlciA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgaW5oZXJpdCBldmVudFRhcmdldFxuXG4gICAgbWV0aG9kIG9uZXJyb3IgOiAoJ3NlbGYgdCwgZXJyb3JFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubWVzc2FnZSA6ICgnc2VsZiB0LCAnYiBtZXNzYWdlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwb3N0TWVzc2FnZSA6ICdhIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRlcm1pbmF0ZSA6IHVuaXQgbWV0aFxuICBlbmRcblxuYW5kIGVycm9yRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgbWVzc2FnZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmaWxlbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsaW5lbm8gOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvbG5vIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlcnJvciA6IFVuc2FmZS5hbnkgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIFsnYV0gbWVzc2FnZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIGRhdGEgOiAnYSByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgd29ya2VyID0gVW5zYWZlLmdsb2JhbCMjLl9Xb3JrZXJcblxubGV0IGNyZWF0ZSBzY3JpcHQgPSBuZXclanMgd29ya2VyIChzdHJpbmcgc2NyaXB0KVxuXG5sZXQgaW1wb3J0X3NjcmlwdHMgc2NyaXB0cyA6IHVuaXQgPVxuICBpZiBVbnNhZmUuZ2xvYmFsIyMuaW1wb3J0U2NyaXB0cyA9PSB1bmRlZmluZWRcbiAgdGhlbiBpbnZhbGlkX2FyZyBcIldvcmtlci5pbXBvcnRfc2NyaXB0cyBpcyB1bmRlZmluZWRcIjtcbiAgVW5zYWZlLmZ1bl9jYWxsXG4gICAgVW5zYWZlLmdsb2JhbCMjLmltcG9ydFNjcmlwdHNcbiAgICAoQXJyYXkubWFwIChmdW4gcyAtPiBVbnNhZmUuaW5qZWN0IChzdHJpbmcgcykpIChBcnJheS5vZl9saXN0IHNjcmlwdHMpKVxuXG5sZXQgc2V0X29ubWVzc2FnZSBoYW5kbGVyID1cbiAgaWYgVW5zYWZlLmdsb2JhbCMjLm9ubWVzc2FnZSA9PSB1bmRlZmluZWRcbiAgdGhlbiBpbnZhbGlkX2FyZyBcIldvcmtlci5vbm1lc3NhZ2UgaXMgdW5kZWZpbmVkXCI7XG4gIGxldCBqc19oYW5kbGVyIChldiA6ICdhIG1lc3NhZ2VFdmVudCBKcy50KSA9IGhhbmRsZXIgZXYjIy5kYXRhIGluXG4gIFVuc2FmZS5nbG9iYWwjIy5vbm1lc3NhZ2UgOj0gd3JhcF9jYWxsYmFjayBqc19oYW5kbGVyXG5cbmxldCBwb3N0X21lc3NhZ2UgbXNnID1cbiAgaWYgVW5zYWZlLmdsb2JhbCMjLnBvc3RNZXNzYWdlID09IHVuZGVmaW5lZFxuICB0aGVuIGludmFsaWRfYXJnIFwiV29ya2VyLm9ubWVzc2FnZSBpcyB1bmRlZmluZWRcIjtcbiAgVW5zYWZlLmdsb2JhbCMjcG9zdE1lc3NhZ2UgbXNnXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEyIEphY3F1ZXMtUGFzY2FsIERlcGxhaXhcbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuISBJbXBvcnRcblxudHlwZSByZWFkeVN0YXRlID1cbiAgfCBDT05ORUNUSU5HXG4gIHwgT1BFTlxuICB8IENMT1NJTkdcbiAgfCBDTE9TRURcblxuY2xhc3MgdHlwZSBbJ2FdIGNsb3NlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFsnYV0gRG9tLmV2ZW50XG5cbiAgICBtZXRob2QgY29kZSA6IGludCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVhc29uIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdhc0NsZWFuIDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgWydhXSBtZXNzYWdlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFsnYV0gRG9tLmV2ZW50XG5cbiAgICBtZXRob2QgZGF0YSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkYXRhX2J1ZmZlciA6IFR5cGVkX2FycmF5LmFycmF5QnVmZmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRhdGFfYmxvYiA6IEZpbGUuYmxvYiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgd2ViU29ja2V0ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBpbmhlcml0IERvbV9odG1sLmV2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2QgdXJsIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlYWR5U3RhdGUgOiByZWFkeVN0YXRlIEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBidWZmZXJlZEFtb3VudCA6IGludCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25vcGVuIDpcbiAgICAgICgnc2VsZiBKcy50LCAnc2VsZiBEb20uZXZlbnQgSnMudCkgRG9tLmV2ZW50X2xpc3RlbmVyIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25jbG9zZSA6XG4gICAgICAoJ3NlbGYgSnMudCwgJ3NlbGYgY2xvc2VFdmVudCBKcy50KSBEb20uZXZlbnRfbGlzdGVuZXIgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmVycm9yIDpcbiAgICAgICgnc2VsZiBKcy50LCAnc2VsZiBEb20uZXZlbnQgSnMudCkgRG9tLmV2ZW50X2xpc3RlbmVyIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgZXh0ZW5zaW9ucyA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcm90b2NvbCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbG9zZSA6IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIGNsb3NlX3dpdGhDb2RlIDogaW50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIGNsb3NlX3dpdGhDb2RlQW5kUmVhc29uIDogaW50IC0+IEpzLmpzX3N0cmluZyBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIG9ubWVzc2FnZSA6XG4gICAgICAoJ3NlbGYgSnMudCwgJ3NlbGYgbWVzc2FnZUV2ZW50IEpzLnQpIERvbS5ldmVudF9saXN0ZW5lciBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJpbmFyeVR5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICBtZXRob2Qgc2VuZCA6IEpzLmpzX3N0cmluZyBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHNlbmRfYnVmZmVyIDogVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXIgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBzZW5kX2Jsb2IgOiBGaWxlLmJsb2IgSnMudCAtPiB1bml0IEpzLm1ldGhcbiAgZW5kXG5cbmxldCB3ZWJTb2NrZXQgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX1dlYlNvY2tldFxuXG5sZXQgd2ViU29ja2V0X3dpdGhQcm90b2NvbCA9IHdlYlNvY2tldFxuXG5sZXQgd2ViU29ja2V0X3dpdGhQcm90b2NvbHMgPSB3ZWJTb2NrZXRcblxubGV0IGlzX3N1cHBvcnRlZCAoKSA9IEpzLk9wdGRlZi50ZXN0IHdlYlNvY2tldFxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMiBKw6lyw7RtZSBWb3VpbGxvblxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4hIEltcG9ydFxuXG4oKiogNS4xIFR5cGVzICopXG5cbnR5cGUgc2l6ZWkgPSBpbnRcblxudHlwZSBzaXplaXB0ciA9IGludFxuXG50eXBlIGludHB0ciA9IGludFxuXG50eXBlIHVpbnQgPSBpbnRcblxudHlwZSBjbGFtcGYgPSBmbG9hdFxuXG50eXBlIHZvaWRcblxudHlwZSBjbGVhckJ1ZmZlck1hc2sgPSBpbnRcblxudHlwZSBiZWdpbk1vZGVcblxudHlwZSBibGVuZGluZ0ZhY3RvclxuXG50eXBlIGJsZW5kTW9kZVxuXG50eXBlIGJ1ZmZlclRhcmdldFxuXG50eXBlIGJ1ZmZlclVzYWdlXG5cbnR5cGUgY3VsbEZhY2VNb2RlXG5cbnR5cGUgZGVwdGhGdW5jdGlvblxuXG50eXBlIGVuYWJsZUNhcFxuXG50eXBlIGVycm9yQ29kZVxuXG50eXBlIGZyb250RmFjZURpclxuXG50eXBlIGhpbnRUYXJnZXRcblxudHlwZSBoaW50TW9kZVxuXG50eXBlIHRleHR1cmVVbml0ID0gaW50XG5cbnR5cGUgJ2EgcGl4ZWxTdG9yZVBhcmFtXG5cbnR5cGUgc3RlbmNpbE9wXG5cbnR5cGUgZmJUYXJnZXRcblxudHlwZSBhdHRhY2htZW50UG9pbnRcblxudHlwZSByYlRhcmdldFxuXG50eXBlIHRleFRhcmdldFxuXG50eXBlICdhIHBhcmFtZXRlclxuXG50eXBlICdhIGJ1ZmZlclBhcmFtZXRlclxuXG50eXBlICdhIHZlcnRleEF0dHJpYlBhcmFtXG5cbnR5cGUgdmVydGV4QXR0cmliUG9pbnRlclBhcmFtXG5cbnR5cGUgJ2EgYXR0YWNoUGFyYW1cblxudHlwZSBmcmFtZWJ1ZmZlclN0YXR1c1xuXG50eXBlICdhIHJlbmRlcmJ1ZmZlclBhcmFtXG5cbnR5cGUgZm9ybWF0XG5cbnR5cGUgcGl4ZWxGb3JtYXRcblxudHlwZSBwaXhlbFR5cGVcblxudHlwZSAnYSB0ZXhQYXJhbVxuXG50eXBlIGRhdGFUeXBlXG5cbnR5cGUgc2hhZGVyVHlwZVxuXG50eXBlICdhIHByb2dyYW1QYXJhbVxuXG50eXBlICdhIHNoYWRlclBhcmFtXG5cbnR5cGUgdGV4dHVyZUZpbHRlclxuXG50eXBlIHdyYXBNb2RlXG5cbnR5cGUgdGV4RmlsdGVyXG5cbnR5cGUgdW5pZm9ybVR5cGVcblxudHlwZSBjb2xvcnNwYWNlQ29udmVyc2lvblxuXG50eXBlIHNoYWRlclByZWNpc2lvblR5cGVcblxudHlwZSBvYmplY3RUeXBlXG5cbigqKiA1LjIgV2ViR0xDb250ZXh0QXR0cmlidXRlcyAqKVxuY2xhc3MgdHlwZSBjb250ZXh0QXR0cmlidXRlcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhbHBoYSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgZGVwdGggOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHN0ZW5jaWwgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFudGlhbGlhcyA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgcHJlbXVsdGlwbGllZEFscGhhIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQgOiBib29sIHQgcHJvcFxuICBlbmRcblxubGV0IGRlZmF1bHRDb250ZXh0QXR0cmlidXRlcyA9XG4gIEpzLlVuc2FmZS4oXG4gICAgb2JqXG4gICAgICBbfCBcImFscGhhXCIsIGluamVjdCBfdHJ1ZVxuICAgICAgIDsgXCJkZXB0aFwiLCBpbmplY3QgX3RydWVcbiAgICAgICA7IFwic3RlbmNpbFwiLCBpbmplY3QgX2ZhbHNlXG4gICAgICAgOyBcImFudGlhbGlhc1wiLCBpbmplY3QgX3RydWVcbiAgICAgICA7IFwicHJlbXVsdGlwbGllZEFscGhhXCIsIGluamVjdCBfZmFsc2VcbiAgICAgICA7IFwicHJlc2VydmVEcmF3aW5nQnVmZmVyXCIsIGluamVjdCBfZmFsc2VcbiAgICAgICA7IFwicHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZVwiLCBpbmplY3QgX2ZhbHNlXG4gICAgICAgOyBcImZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXRcIiwgaW5qZWN0IF9mYWxzZVxuICAgICAgfF0pXG5cbnR5cGUgYnVmZmVyXG5cbnR5cGUgZnJhbWVidWZmZXJcblxudHlwZSBwcm9ncmFtXG5cbnR5cGUgcmVuZGVyYnVmZmVyXG5cbnR5cGUgc2hhZGVyXG5cbnR5cGUgdGV4dHVyZVxuXG50eXBlICdhIHVuaWZvcm1Mb2NhdGlvblxuXG5jbGFzcyB0eXBlIGFjdGl2ZUluZm8gPVxuICBvYmplY3RcbiAgICBtZXRob2Qgc2l6ZSA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgc2hhZGVyUHJlY2lzaW9uRm9ybWF0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJhbmdlTWluIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByYW5nZU1heCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHJlY2lzaW9uIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcmVuZGVyaW5nQ29udGV4dCA9XG4gIG9iamVjdFxuXG4gICAgKCoqIDUuMTMuMSBBdHRyaWJ1dGVzICopXG5cbiAgICBtZXRob2QgY2FudmFzIDogRG9tX2h0bWwuY2FudmFzRWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkcmF3aW5nQnVmZmVyV2lkdGggOiBzaXplaSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZHJhd2luZ0J1ZmZlckhlaWdodCA6IHNpemVpIHJlYWRvbmx5X3Byb3BcblxuICAgICgqKiA1LjEzLjIgR2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29udGV4dCAqKVxuXG4gICAgbWV0aG9kIGdldENvbnRleHRBdHRyaWJ1dGVzIDogY29udGV4dEF0dHJpYnV0ZXMgdCBtZXRoXG5cbiAgICAoKiogNS4xMy4zIFNldHRpbmcgYW5kIGdldHRpbmcgc3RhdGUgKilcblxuICAgIG1ldGhvZCBhY3RpdmVUZXh0dXJlIDogdGV4dHVyZVVuaXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmxlbmRDb2xvciA6IGNsYW1wZiAtPiBjbGFtcGYgLT4gY2xhbXBmIC0+IGNsYW1wZiAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibGVuZEVxdWF0aW9uIDogYmxlbmRNb2RlIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJsZW5kRXF1YXRpb25TZXBhcmF0ZSA6IGJsZW5kTW9kZSAtPiBibGVuZE1vZGUgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmxlbmRGdW5jIDogYmxlbmRpbmdGYWN0b3IgLT4gYmxlbmRpbmdGYWN0b3IgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmxlbmRGdW5jU2VwYXJhdGUgOlxuICAgICAgYmxlbmRpbmdGYWN0b3IgLT4gYmxlbmRpbmdGYWN0b3IgLT4gYmxlbmRpbmdGYWN0b3IgLT4gYmxlbmRpbmdGYWN0b3IgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xlYXJDb2xvciA6IGNsYW1wZiAtPiBjbGFtcGYgLT4gY2xhbXBmIC0+IGNsYW1wZiAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbGVhckRlcHRoIDogY2xhbXBmIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyU3RlbmNpbCA6IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb2xvck1hc2sgOiBib29sIHQgLT4gYm9vbCB0IC0+IGJvb2wgdCAtPiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3VsbEZhY2UgOiBjdWxsRmFjZU1vZGUgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVwdGhGdW5jIDogZGVwdGhGdW5jdGlvbiAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZXB0aE1hc2sgOiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVwdGhSYW5nZSA6IGNsYW1wZiAtPiBjbGFtcGYgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGlzYWJsZSA6IGVuYWJsZUNhcCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBlbmFibGUgOiBlbmFibGVDYXAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZnJvbnRGYWNlIDogZnJvbnRGYWNlRGlyIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFBhcmFtZXRlciA6ICdhLiAnYSBwYXJhbWV0ZXIgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGdldEVycm9yIDogZXJyb3JDb2RlIG1ldGhcblxuICAgIG1ldGhvZCBoaW50IDogaGludFRhcmdldCAtPiBoaW50TW9kZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpc0VuYWJsZWQgOiBlbmFibGVDYXAgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBsaW5lV2lkdGggOiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBwaXhlbFN0b3JlaSA6ICdhLiAnYSBwaXhlbFN0b3JlUGFyYW0gLT4gJ2EgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcG9seWdvbk9mZnNldCA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNhbXBsZUNvdmVyYWdlIDogY2xhbXBmIC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdGVuY2lsRnVuYyA6IGRlcHRoRnVuY3Rpb24gLT4gaW50IC0+IHVpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RlbmNpbEZ1bmNTZXBhcmF0ZSA6IGN1bGxGYWNlTW9kZSAtPiBkZXB0aEZ1bmN0aW9uIC0+IGludCAtPiB1aW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0ZW5jaWxNYXNrIDogdWludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdGVuY2lsTWFza1NlcGFyYXRlIDogY3VsbEZhY2VNb2RlIC0+IHVpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RlbmNpbE9wIDogc3RlbmNpbE9wIC0+IHN0ZW5jaWxPcCAtPiBzdGVuY2lsT3AgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RlbmNpbE9wU2VwYXJhdGUgOlxuICAgICAgY3VsbEZhY2VNb2RlIC0+IHN0ZW5jaWxPcCAtPiBzdGVuY2lsT3AgLT4gc3RlbmNpbE9wIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuNCBWaWV3aW5nIGFuZCBjbGlwcGluZyAqKVxuXG4gICAgbWV0aG9kIHNjaXNzb3IgOiBpbnQgLT4gaW50IC0+IHNpemVpIC0+IHNpemVpIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZpZXdwb3J0IDogaW50IC0+IGludCAtPiBzaXplaSAtPiBzaXplaSAtPiB1bml0IG1ldGhcblxuICAgICgqKiA1LjEzLjUgQnVmZmVyIG9iamVjdHMgKilcblxuICAgIG1ldGhvZCBiaW5kQnVmZmVyIDogYnVmZmVyVGFyZ2V0IC0+IGJ1ZmZlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJpbmRCdWZmZXJfIDogYnVmZmVyVGFyZ2V0IC0+IGJ1ZmZlciB0IG9wdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBidWZmZXJEYXRhX2NyZWF0ZSA6IGJ1ZmZlclRhcmdldCAtPiBzaXplaXB0ciAtPiBidWZmZXJVc2FnZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBidWZmZXJEYXRhIDpcbiAgICAgIGJ1ZmZlclRhcmdldCAtPiAjVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJWaWV3IHQgLT4gYnVmZmVyVXNhZ2UgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYnVmZmVyRGF0YV9yYXcgOlxuICAgICAgYnVmZmVyVGFyZ2V0IC0+IFR5cGVkX2FycmF5LmFycmF5QnVmZmVyIHQgLT4gYnVmZmVyVXNhZ2UgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYnVmZmVyU3ViRGF0YSA6XG4gICAgICBidWZmZXJUYXJnZXQgLT4gaW50cHRyIC0+ICNUeXBlZF9hcnJheS5hcnJheUJ1ZmZlclZpZXcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBidWZmZXJTdWJEYXRhX3JhdyA6XG4gICAgICBidWZmZXJUYXJnZXQgLT4gaW50cHRyIC0+IFR5cGVkX2FycmF5LmFycmF5QnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlQnVmZmVyIDogYnVmZmVyIHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZUJ1ZmZlciA6IGJ1ZmZlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEJ1ZmZlclBhcmFtZXRlciA6ICdhLiBidWZmZXJUYXJnZXQgLT4gJ2EgYnVmZmVyUGFyYW1ldGVyIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBpc0J1ZmZlciA6IGJ1ZmZlciB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICAoKiogNS4xMy42IEZyYW1lYnVmZmVyIG9iamVjdHMgKilcblxuICAgIG1ldGhvZCBiaW5kRnJhbWVidWZmZXIgOiBmYlRhcmdldCAtPiBmcmFtZWJ1ZmZlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJpbmRGcmFtZWJ1ZmZlcl8gOiBmYlRhcmdldCAtPiBmcmFtZWJ1ZmZlciB0IG9wdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzIDogZmJUYXJnZXQgLT4gZnJhbWVidWZmZXJTdGF0dXMgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZUZyYW1lYnVmZmVyIDogZnJhbWVidWZmZXIgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlRnJhbWVidWZmZXIgOiBmcmFtZWJ1ZmZlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyIDpcbiAgICAgIGZiVGFyZ2V0IC0+IGF0dGFjaG1lbnRQb2ludCAtPiByYlRhcmdldCAtPiByZW5kZXJidWZmZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmcmFtZWJ1ZmZlclRleHR1cmUyRCA6XG4gICAgICBmYlRhcmdldCAtPiBhdHRhY2htZW50UG9pbnQgLT4gdGV4VGFyZ2V0IC0+IHRleHR1cmUgdCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIDpcbiAgICAgICdhLiBmYlRhcmdldCAtPiBhdHRhY2htZW50UG9pbnQgLT4gJ2EgYXR0YWNoUGFyYW0gLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGlzRnJhbWVidWZmZXIgOiBmcmFtZWJ1ZmZlciB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICAoKiogNS4xMy43IFJlbmRlcmJ1ZmZlciBvYmplY3RzICopXG5cbiAgICBtZXRob2QgYmluZFJlbmRlcmJ1ZmZlciA6IHJiVGFyZ2V0IC0+IHJlbmRlcmJ1ZmZlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJpbmRSZW5kZXJidWZmZXJfIDogcmJUYXJnZXQgLT4gcmVuZGVyYnVmZmVyIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVJlbmRlcmJ1ZmZlciA6IHJlbmRlcmJ1ZmZlciB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVSZW5kZXJidWZmZXIgOiByZW5kZXJidWZmZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIgOiAnYS4gcmJUYXJnZXQgLT4gJ2EgcmVuZGVyYnVmZmVyUGFyYW0gLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGlzUmVuZGVyYnVmZmVyIDogcmVuZGVyYnVmZmVyIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCByZW5kZXJidWZmZXJTdG9yYWdlIDogcmJUYXJnZXQgLT4gZm9ybWF0IC0+IHNpemVpIC0+IHNpemVpIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuOCBUZXh0dXJlIG9iamVjdHMgKilcblxuICAgIG1ldGhvZCBiaW5kVGV4dHVyZSA6IHRleFRhcmdldCAtPiB0ZXh0dXJlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmluZFRleHR1cmVfIDogdGV4VGFyZ2V0IC0+IHRleHR1cmUgdCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29tcHJlc3NlZFRleEltYWdlMkQgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IGludFxuICAgICAgLT4gI1R5cGVkX2FycmF5LmFycmF5QnVmZmVyVmlldyB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+ICNUeXBlZF9hcnJheS5hcnJheUJ1ZmZlclZpZXcgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29weVRleEltYWdlMkQgOlxuICAgICAgdGV4VGFyZ2V0IC0+IGludCAtPiBwaXhlbEZvcm1hdCAtPiBpbnQgLT4gaW50IC0+IHNpemVpIC0+IHNpemVpIC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb3B5VGV4U3ViSW1hZ2UyRCA6XG4gICAgICB0ZXhUYXJnZXQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBzaXplaSAtPiBzaXplaSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVUZXh0dXJlIDogdGV4dHVyZSB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVUZXh0dXJlIDogdGV4dHVyZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdlbmVyYXRlTWlwbWFwIDogdGV4VGFyZ2V0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFRleFBhcmFtZXRlciA6IHRleFRhcmdldCAtPiAnYSB0ZXhQYXJhbSAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgaXNUZXh0dXJlIDogdGV4dHVyZSB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4SW1hZ2UyRF9uZXcgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gdm9pZCBvcHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleEltYWdlMkRfZnJvbVZpZXcgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gI1R5cGVkX2FycmF5LmFycmF5QnVmZmVyVmlldyB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhJbWFnZTJEX2Zyb21JbWFnZURhdGEgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiBEb21faHRtbC5pbWFnZURhdGEgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4SW1hZ2UyRF9mcm9tSW1hZ2UgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiBEb21faHRtbC5pbWFnZUVsZW1lbnQgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4SW1hZ2UyRF9mcm9tQ2FudmFzIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwuY2FudmFzRWxlbWVudCB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhJbWFnZTJEX2Zyb21WaWRlbyA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLnZpZGVvRWxlbWVudCB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgICgqIHtbXG4gICAgICAgIG1ldGhvZCB0ZXhQYXJhbWV0ZXJmIDogdGV4VGFyZ2V0IC0+IHRleFBhcmFtIC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuICAgICAgIF19XG4gICAgKilcbiAgICBtZXRob2QgdGV4UGFyYW1ldGVyaSA6IHRleFRhcmdldCAtPiAnYSB0ZXhQYXJhbSAtPiAnYSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhTdWJJbWFnZTJEX2Zyb21WaWV3IDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiAjVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJWaWV3IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleFN1YkltYWdlMkRfZnJvbUltYWdlRGF0YSA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLmltYWdlRGF0YSB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhTdWJJbWFnZTJEX2Zyb21JbWFnZSA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLmltYWdlRWxlbWVudCB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhTdWJJbWFnZTJEX2Zyb21DYW52YXMgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiBEb21faHRtbC5jYW52YXNFbGVtZW50IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleFN1YkltYWdlMkRfZnJvbVZpZGVvIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwudmlkZW9FbGVtZW50IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuOSBQcm9ncmFtcyBhbmQgU2hhZGVycyAqKVxuXG4gICAgbWV0aG9kIGF0dGFjaFNoYWRlciA6IHByb2dyYW0gdCAtPiBzaGFkZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBiaW5kQXR0cmliTG9jYXRpb24gOiBwcm9ncmFtIHQgLT4gdWludCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb21waWxlU2hhZGVyIDogc2hhZGVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUHJvZ3JhbSA6IHByb2dyYW0gdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU2hhZGVyIDogc2hhZGVyVHlwZSAtPiBzaGFkZXIgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlUHJvZ3JhbSA6IHByb2dyYW0gdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVTaGFkZXIgOiBzaGFkZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZXRhY2hTaGFkZXIgOiBwcm9ncmFtIHQgLT4gc2hhZGVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QXR0YWNoZWRTaGFkZXJzIDogcHJvZ3JhbSB0IC0+IHNoYWRlciB0IGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFByb2dyYW1QYXJhbWV0ZXIgOiAnYS4gcHJvZ3JhbSB0IC0+ICdhIHByb2dyYW1QYXJhbSAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UHJvZ3JhbUluZm9Mb2cgOiBwcm9ncmFtIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFNoYWRlclBhcmFtZXRlciA6ICdhLiBzaGFkZXIgdCAtPiAnYSBzaGFkZXJQYXJhbSAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IDpcbiAgICAgIHNoYWRlclR5cGUgLT4gc2hhZGVyUHJlY2lzaW9uVHlwZSAtPiBzaGFkZXJQcmVjaXNpb25Gb3JtYXQgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U2hhZGVySW5mb0xvZyA6IHNoYWRlciB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRTaGFkZXJTb3VyY2UgOiBzaGFkZXIgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgaXNQcm9ncmFtIDogcHJvZ3JhbSB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgaXNTaGFkZXIgOiBzaGFkZXIgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGxpbmtQcm9ncmFtIDogcHJvZ3JhbSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNoYWRlclNvdXJjZSA6IHNoYWRlciB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVzZVByb2dyYW0gOiBwcm9ncmFtIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmFsaWRhdGVQcm9ncmFtIDogcHJvZ3JhbSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuMTAgVW5pZm9ybXMgYW5kIGF0dHJpYnV0ZXMgKilcblxuICAgIG1ldGhvZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkgOiB1aW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGVuYWJsZVZlcnRleEF0dHJpYkFycmF5IDogdWludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRBY3RpdmVBdHRyaWIgOiBwcm9ncmFtIHQgLT4gdWludCAtPiBhY3RpdmVJbmZvIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEFjdGl2ZVVuaWZvcm0gOiBwcm9ncmFtIHQgLT4gdWludCAtPiBhY3RpdmVJbmZvIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEF0dHJpYkxvY2F0aW9uIDogcHJvZ3JhbSB0IC0+IGpzX3N0cmluZyB0IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VW5pZm9ybSA6ICdhICdiLiBwcm9ncmFtIHQgLT4gJ2EgdW5pZm9ybUxvY2F0aW9uIHQgLT4gJ2IgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVuaWZvcm1Mb2NhdGlvbiA6ICdhLiBwcm9ncmFtIHQgLT4ganNfc3RyaW5nIHQgLT4gJ2EgdW5pZm9ybUxvY2F0aW9uIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFZlcnRleEF0dHJpYiA6ICdhLiB1aW50IC0+ICdhIHZlcnRleEF0dHJpYlBhcmFtIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQgOiB1aW50IC0+IHZlcnRleEF0dHJpYlBvaW50ZXJQYXJhbSAtPiBzaXplaXB0ciBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTFmIDogZmxvYXQgdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTFmdl90eXBlZCA6XG4gICAgICBmbG9hdCB1bmlmb3JtTG9jYXRpb24gdCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMWZ2IDogZmxvYXQgdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMWkgOiBpbnQgdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0xaXZfdHlwZWQgOlxuICAgICAgaW50IHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmludDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMWl2IDogaW50IHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGludCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0yZiA6IFsgYHZlYzIgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMmZ2X3R5cGVkIDpcbiAgICAgIFsgYHZlYzIgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMmZ2IDogWyBgdmVjMiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTJpIDogWyBgaXZlYzIgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0yaXYgOiBbIGBpdmVjMiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGludCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0yaXZfdHlwZWQgOlxuICAgICAgWyBgaXZlYzIgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBUeXBlZF9hcnJheS5pbnQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTNmIDogWyBgdmVjMyBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0zZnZfdHlwZWQgOlxuICAgICAgWyBgdmVjMyBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0zZnYgOiBbIGB2ZWMzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtM2kgOiBbIGBpdmVjMyBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0zaXYgOiBbIGBpdmVjMyBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGludCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0zaXZfdHlwZWQgOlxuICAgICAgWyBgaXZlYzMgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBUeXBlZF9hcnJheS5pbnQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTRmIDpcbiAgICAgIFsgYHZlYzQgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtNGZ2X3R5cGVkIDpcbiAgICAgIFsgYHZlYzQgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtNGZ2IDogWyBgdmVjNCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTRpIDpcbiAgICAgIFsgYGl2ZWM0IF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm00aXYgOiBbIGBpdmVjNCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGludCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm00aXZfdHlwZWQgOlxuICAgICAgWyBgaXZlYzQgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBUeXBlZF9hcnJheS5pbnQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybU1hdHJpeDJmdiA6XG4gICAgICBbIGBtYXQyIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gYm9vbCB0IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybU1hdHJpeDJmdl90eXBlZCA6XG4gICAgICBbIGBtYXQyIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gYm9vbCB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm1NYXRyaXgzZnYgOlxuICAgICAgWyBgbWF0MyBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGJvb2wgdCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm1NYXRyaXgzZnZfdHlwZWQgOlxuICAgICAgWyBgbWF0MyBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGJvb2wgdCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtTWF0cml4NGZ2IDpcbiAgICAgIFsgYG1hdDQgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBib29sIHQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtTWF0cml4NGZ2X3R5cGVkIDpcbiAgICAgIFsgYG1hdDQgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBib29sIHQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliMWYgOiB1aW50IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjFmdiA6IHVpbnQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIxZnZfdHlwZWQgOiB1aW50IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjJmIDogdWludCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIyZnYgOiB1aW50IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliMmZ2X3R5cGVkIDogdWludCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIzZiA6IHVpbnQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliM2Z2IDogdWludCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjNmdl90eXBlZCA6IHVpbnQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliNGYgOiB1aW50IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjRmdiA6IHVpbnQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWI0ZnZfdHlwZWQgOiB1aW50IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYlBvaW50ZXIgOlxuICAgICAgdWludCAtPiBpbnQgLT4gZGF0YVR5cGUgLT4gYm9vbCB0IC0+IHNpemVpIC0+IGludHB0ciAtPiB1bml0IG1ldGhcblxuICAgICgqKiA1LjEzLjExIFdyaXRpbmcgdG8gdGhlIGRyYXdpbmcgYnVmZmVyICopXG5cbiAgICBtZXRob2QgY2xlYXIgOiBjbGVhckJ1ZmZlck1hc2sgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0FycmF5cyA6IGJlZ2luTW9kZSAtPiBpbnQgLT4gc2l6ZWkgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0VsZW1lbnRzIDogYmVnaW5Nb2RlIC0+IHNpemVpIC0+IGRhdGFUeXBlIC0+IGludHB0ciAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmaW5pc2ggOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmbHVzaCA6IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuMTIgUmVhZGluZyBiYWNrIHBpeGVscyAqKVxuXG4gICAgbWV0aG9kIHJlYWRQaXhlbHMgOlxuICAgICAgICAgaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gI1R5cGVkX2FycmF5LmFycmF5QnVmZmVyVmlldyB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgICgqKiA1LjEzLjEzIERldGVjdGluZyBjb250ZXh0IGxvc3QgZXZlbnRzICopXG5cbiAgICBtZXRob2QgaXNDb250ZXh0TG9zdCA6IGJvb2wgdCBtZXRoXG5cbiAgICAoKiogNS4xMy4xNCBEZXRlY3RpbmcgYW5kIGVuYWJsaW5nIGV4dGVuc2lvbnMgKilcblxuICAgIG1ldGhvZCBnZXRTdXBwb3J0ZWRFeHRlbnNpb25zIDoganNfc3RyaW5nIHQganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RXh0ZW5zaW9uIDogJ2EuIGpzX3N0cmluZyB0IC0+ICdhIHQgb3B0IG1ldGhcblxuICAgICgqIFVudHlwZWQhICopXG4gICAgKCoqIENvbnN0YW50cyAqKVxuXG4gICAgbWV0aG9kIF9ERVBUSF9CVUZGRVJfQklUXyA6IGNsZWFyQnVmZmVyTWFzayByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQlVGRkVSX0JJVF8gOiBjbGVhckJ1ZmZlck1hc2sgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DT0xPUl9CVUZGRVJfQklUXyA6IGNsZWFyQnVmZmVyTWFzayByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BPSU5UUyA6IGJlZ2luTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xJTkVTIDogYmVnaW5Nb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORV9MT09QXyA6IGJlZ2luTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xJTkVfU1RSSVBfIDogYmVnaW5Nb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVFJJQU5HTEVTIDogYmVnaW5Nb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVFJJQU5HTEVfU1RSSVBfIDogYmVnaW5Nb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVFJJQU5HTEVfRkFOXyA6IGJlZ2luTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1pFUk8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX09ORSA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1JDX0NPTE9SXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT05FX01JTlVTX1NSQ19DT0xPUl8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NSQ19BTFBIQV8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX09ORV9NSU5VU19TUkNfQUxQSEFfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9EU1RfQUxQSEFfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9PTkVfTUlOVVNfRFNUX0FMUEhBXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRFNUX0NPTE9SXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT05FX01JTlVTX0RTVF9DT0xPUl8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NSQ19BTFBIQV9TQVRVUkFURV8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZVTkNfQUREXyA6IGJsZW5kTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZVTkNfU1VCVFJBQ1RfIDogYmxlbmRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlVOQ19SRVZFUlNFX1NVQlRSQUNUXyA6IGJsZW5kTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTlNUQU5UX0NPTE9SXyA6IGJsZW5kTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX09ORV9NSU5VU19DT05TVEFOVF9DT0xPUl8gOiBibGVuZE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DT05TVEFOVF9BTFBIQV8gOiBibGVuZE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9PTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEFfIDogYmxlbmRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQVJSQVlfQlVGRkVSXyA6IGJ1ZmZlclRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0VMRU1FTlRfQVJSQVlfQlVGRkVSXyA6IGJ1ZmZlclRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NUUkVBTV9EUkFXXyA6IGJ1ZmZlclVzYWdlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RBVElDX0RSQVdfIDogYnVmZmVyVXNhZ2UgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9EWU5BTUlDX0RSQVdfIDogYnVmZmVyVXNhZ2UgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUk9OVCA6IGN1bGxGYWNlTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JBQ0sgOiBjdWxsRmFjZU1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUk9OVF9BTkRfQkFDS18gOiBjdWxsRmFjZU1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DVUxMX0ZBQ0VfIDogZW5hYmxlQ2FwIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkQgOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ESVRIRVIgOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX1RFU1RfIDogZW5hYmxlQ2FwIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfVEVTVF8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQ0lTU09SX1RFU1RfIDogZW5hYmxlQ2FwIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUE9MWUdPTl9PRkZTRVRfRklMTF8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVfQUxQSEFfVE9fQ09WRVJBR0VfIDogZW5hYmxlQ2FwIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0FNUExFX0NPVkVSQUdFXyA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05PX0VSUk9SXyA6IGVycm9yQ29kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVkFMSURfRU5VTV8gOiBlcnJvckNvZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlZBTElEX1ZBTFVFXyA6IGVycm9yQ29kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVkFMSURfT1BFUkFUSU9OXyA6IGVycm9yQ29kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX09VVF9PRl9NRU1PUllfIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ09OVEVYVF9MT1NUX1dFQkdMXyA6IGVycm9yQ29kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OXyA6IGVycm9yQ29kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NXIDogZnJvbnRGYWNlRGlyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ0NXIDogZnJvbnRGYWNlRGlyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRE9OVF9DQVJFXyA6IGhpbnRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkFTVEVTVCA6IGhpbnRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTklDRVNUIDogaGludE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9HRU5FUkFURV9NSVBNQVBfSElOVF8gOiBoaW50VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfRVFVQVRJT05fIDogYmxlbmRNb2RlIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EX0VRVUFUSU9OX1JHQl8gOiBibGVuZE1vZGUgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfRVFVQVRJT05fQUxQSEFfIDogYmxlbmRNb2RlIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EX0RTVF9SR0JfIDogYmxlbmRpbmdGYWN0b3IgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfU1JDX1JHQl8gOiBibGVuZGluZ0ZhY3RvciBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9EU1RfQUxQSEFfIDogYmxlbmRpbmdGYWN0b3IgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfU1JDX0FMUEhBXyA6IGJsZW5kaW5nRmFjdG9yIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EX0NPTE9SXyA6IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FSUkFZX0JVRkZFUl9CSU5ESU5HXyA6IGJ1ZmZlciB0IG9wdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9FTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HXyA6IGJ1ZmZlciB0IG9wdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DVUxMX0ZBQ0VfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRElUSEVSX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfVEVTVF9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9URVNUX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NDSVNTT1JfVEVTVF9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QT0xZR09OX09GRlNFVF9GSUxMX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xJTkVfV0lEVEhfIDogZmxvYXQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUxJQVNFRF9QT0lOVF9TSVpFX1JBTkdFXyA6IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FMSUFTRURfTElORV9XSURUSF9SQU5HRV8gOiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DVUxMX0ZBQ0VfTU9ERV8gOiBjdWxsRmFjZU1vZGUgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJPTlRfRkFDRV8gOiBmcm9udEZhY2VEaXIgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfUkFOR0VfIDogVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfV1JJVEVNQVNLXyA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9DTEVBUl9WQUxVRV8gOiBmbG9hdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9GVU5DXyA6IGRlcHRoRnVuY3Rpb24gcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9DTEVBUl9WQUxVRV8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9GVU5DXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0ZBSUxfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfUEFTU19ERVBUSF9GQUlMXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX1BBU1NfREVQVEhfUEFTU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9SRUZfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfVkFMVUVfTUFTS18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9XUklURU1BU0tfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQkFDS19GVU5DXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfRkFJTF8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTF8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CQUNLX1JFRl8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CQUNLX1ZBTFVFX01BU0tfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQkFDS19XUklURU1BU0tfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZJRVdQT1JUIDogVHlwZWRfYXJyYXkuaW50MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NDSVNTT1JfQk9YXyA6IFR5cGVkX2FycmF5LmludDMyQXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DT0xPUl9DTEVBUl9WQUxVRV8gOiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DT0xPUl9XUklURU1BU0tfIDogYm9vbCB0IGpzX2FycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5QQUNLX0FMSUdOTUVOVF9QQVJBTSA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QQUNLX0FMSUdOTUVOVF8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1RFWFRVUkVfU0laRV8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1ZJRVdQT1JUX0RJTVNfIDogVHlwZWRfYXJyYXkuaW50MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NVQlBJWEVMX0JJVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFRF9CSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9HUkVFTl9CSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTFVFX0JJVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FMUEhBX0JJVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX0JJVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUE9MWUdPTl9PRkZTRVRfVU5JVFNfIDogZmxvYXQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUE9MWUdPTl9PRkZTRVRfRkFDVE9SXyA6IGZsb2F0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQklORElOR18yRF8gOiB0ZXh0dXJlIHQgb3B0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQklORElOR19DVUJFX01BUF8gOiB0ZXh0dXJlIHQgb3B0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRV9CVUZGRVJTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVfQ09WRVJBR0VfVkFMVUVfIDogZmxvYXQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0FNUExFX0NPVkVSQUdFX0lOVkVSVF8gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUU18gOlxuICAgICAgVHlwZWRfYXJyYXkudWludDMyQXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9HRU5FUkFURV9NSVBNQVBfSElOVF9QQVJBTV8gOiBoaW50TW9kZSBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CVUZGRVJfU0laRV8gOiBpbnQgYnVmZmVyUGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQlVGRkVSX1VTQUdFXyA6IGJ1ZmZlclVzYWdlIGJ1ZmZlclBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JZVEUgOiBkYXRhVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOU0lHTkVEX0JZVEVfRFQgOiBkYXRhVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NIT1JUIDogZGF0YVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlNJR05FRF9TSE9SVF8gOiBkYXRhVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVCA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5TSUdORURfSU5UXyA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkxPQVQgOiBkYXRhVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOU0lHTkVEX0JZVEVfIDogcGl4ZWxUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5TSUdORURfU0hPUlRfNF80XzRfNF8gOiBwaXhlbFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlNJR05FRF9TSE9SVF81XzVfNV8xXyA6IHBpeGVsVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOU0lHTkVEX1NIT1JUXzVfNl81XyA6IHBpeGVsVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FMUEhBIDogcGl4ZWxGb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SR0IgOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JHQkEgOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xVTUlOQU5DRSA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTFVNSU5BTkNFX0FMUEhBXyA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9JTkRFWF8gOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX1NURU5DSUxfIDogcGl4ZWxGb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9DT01QT05FTlRfIDogcGl4ZWxGb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFHTUVOVF9TSEFERVJfIDogc2hhZGVyVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9TSEFERVJfIDogc2hhZGVyVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9WRVJURVhfQVRUUklCU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1ZFUlRFWF9VTklGT1JNX1ZFQ1RPUlNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9WQVJZSU5HX1ZFQ1RPUlNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9DT01CSU5FRF9URVhUVVJFX0lNQUdFX1VOSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfVkVSVEVYX1RFWFRVUkVfSU1BR0VfVU5JVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9URVhUVVJFX0lNQUdFX1VOSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfRlJBR01FTlRfVU5JRk9STV9WRUNUT1JTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TSEFERVJfVFlQRV8gOiBzaGFkZXJUeXBlIHNoYWRlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVMRVRFX1NUQVRVU18gOiBib29sIHQgc2hhZGVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DT01QSUxFX1NUQVRVU18gOiBib29sIHQgc2hhZGVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERUxFVEVfU1RBVFVTX1BST0cgOiBib29sIHQgcHJvZ3JhbVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElOS19TVEFUVVNfIDogYm9vbCB0IHByb2dyYW1QYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZBTElEQVRFX1NUQVRVU18gOiBib29sIHQgcHJvZ3JhbVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQVRUQUNIRURfU0hBREVSU18gOiBpbnQgcHJvZ3JhbVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUNUSVZFX1VOSUZPUk1TXyA6IGludCBwcm9ncmFtUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BQ1RJVkVfQVRUUklCVVRFU18gOiBpbnQgcHJvZ3JhbVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OXyA6IGpzX3N0cmluZyB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NVUlJFTlRfUFJPR1JBTV8gOiBwcm9ncmFtIHQgb3B0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFTkRPUiA6IGpzX3N0cmluZyB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkVSIDoganNfc3RyaW5nIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSU0lPTiA6IGpzX3N0cmluZyB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9DVUJFX01BUF9URVhUVVJFX1NJWkVfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FDVElWRV9URVhUVVJFXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9CSU5ESU5HXyA6IGZyYW1lYnVmZmVyIHQgb3B0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9CSU5ESU5HXyA6IHJlbmRlcmJ1ZmZlciB0IG9wdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfUkVOREVSQlVGRkVSX1NJWkUgOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTkVWRVIgOiBkZXB0aEZ1bmN0aW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTEVTUyA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9FUVVBTCA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MRVFVQUwgOiBkZXB0aEZ1bmN0aW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfR1JFQVRFUiA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9OT1RFUVVBTCA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9HRVFVQUwgOiBkZXB0aEZ1bmN0aW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUxXQVlTIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0tFRVAgOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRVBMQUNFIDogc3RlbmNpbE9wIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5DUiA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFQ1IgOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlZFUlQgOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTkNSX1dSQVBfIDogc3RlbmNpbE9wIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVDUl9XUkFQXyA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1pFUk9fIDogc3RlbmNpbE9wIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTkVBUkVTVCA6IHRleEZpbHRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xJTkVBUiA6IHRleEZpbHRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05FQVJFU1RfTUlQTUFQX05FQVJFU1RfIDogdGV4RmlsdGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORUFSX01JUE1BUF9ORUFSRVNUXyA6IHRleEZpbHRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05FQVJFU1RfTUlQTUFQX0xJTkVBUl8gOiB0ZXhGaWx0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5FQVJfTUlQTUFQX0xJTkVBUl8gOiB0ZXhGaWx0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX01BR19GSUxURVJfIDogdGV4RmlsdGVyIHRleFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9NSU5fRklMVEVSXyA6IHRleEZpbHRlciB0ZXhQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfV1JBUF9TXyA6IHdyYXBNb2RlIHRleFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9XUkFQX1RfIDogd3JhcE1vZGUgdGV4UGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9OT05FX09UIDogb2JqZWN0VHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfT1QgOiBvYmplY3RUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX09UIDogb2JqZWN0VHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfMkRfIDogdGV4VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9DVUJFX01BUF8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1hfIDogdGV4VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWV8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1lfIDogdGV4VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWl8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTEgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMyA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTQgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkU1IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFNiA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTcgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkU4IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFOSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTEwIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTEgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxMiA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTEzIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTQgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxNSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTE2IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTcgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxOCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTE5IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjAgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyMSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTIyIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjMgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyNCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTI1IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjYgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyNyA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTI4IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjkgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUzMCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTMxIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRVBFQVQgOiB3cmFwTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NMQU1QX1RPX0VER0VfIDogd3JhcE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NSVJST1JFRF9SRVBFQVRfIDogd3JhcE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUX1ZFQzJfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVF9WRUMzXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkxPQVRfVkVDNF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVF9WRUMyXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5UX1ZFQzNfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlRfVkVDNF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JPT0xfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CT09MX1ZFQzJfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CT09MX1ZFQzNfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CT09MX1ZFQzRfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVF9NQVQyXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkxPQVRfTUFUM18gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUX01BVDRfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVSXzJEXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0FNUExFUl9DVUJFXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEXyA6IGJvb2wgdCB2ZXJ0ZXhBdHRyaWJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRV8gOiBpbnQgdmVydGV4QXR0cmliUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERV8gOiBpbnQgdmVydGV4QXR0cmliUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJURVhfQVRUUklCX0FSUkFZX1RZUEVfIDogaW50IHZlcnRleEF0dHJpYlBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEXyA6IGJvb2wgdCB2ZXJ0ZXhBdHRyaWJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUl8gOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HXyA6XG4gICAgICBidWZmZXIgdCBvcHQgdmVydGV4QXR0cmliUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DVVJSRU5UX1ZFUlRFWF9BVFRSSUJfIDpcbiAgICAgIFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IHZlcnRleEF0dHJpYlBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTE9XX0ZMT0FUXyA6IHNoYWRlclByZWNpc2lvblR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NRURJVU1fRkxPQVRfIDogc2hhZGVyUHJlY2lzaW9uVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0hJR0hfRkxPQVRfIDogc2hhZGVyUHJlY2lzaW9uVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xPV19JTlRfIDogc2hhZGVyUHJlY2lzaW9uVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01FRElVTV9JTlRfIDogc2hhZGVyUHJlY2lzaW9uVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0hJR0hfSU5UXyA6IHNoYWRlclByZWNpc2lvblR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUiA6IGZiVGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSIDogcmJUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SR0JBNCA6IGZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JHQjVfQTFfIDogZm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkdCNTY1IDogZm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfQ09NUE9ORU5UMTZfIDogZm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9JTkRFWDhfIDogZm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX1dJRFRIXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9IRUlHSFRfIDogaW50IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVF8gOiBmb3JtYXQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfUkVEX1NJWkVfIDogaW50IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX0dSRUVOX1NJWkVfIDogaW50IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX0JMVUVfU0laRV8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfQUxQSEFfU0laRV8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfREVQVEhfU0laRV8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEVfIDogb2JqZWN0VHlwZSBhdHRhY2hQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUVfUkVOREVSQlVGRkVSIDpcbiAgICAgIHJlbmRlcmJ1ZmZlciB0IGF0dGFjaFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRV9URVhUVVJFIDpcbiAgICAgIHRleHR1cmUgdCBhdHRhY2hQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTF8gOiBpbnQgYXR0YWNoUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRV8gOiBpbnQgYXR0YWNoUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DT0xPUl9BVFRBQ0hNRU5UMF8gOiBhdHRhY2htZW50UG9pbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9BVFRBQ0hNRU5UXyA6IGF0dGFjaG1lbnRQb2ludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQVRUQUNITUVOVF8gOiBhdHRhY2htZW50UG9pbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlRfIDogYXR0YWNobWVudFBvaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfQ09NUExFVEVfIDogZnJhbWVidWZmZXJTdGF0dXMgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlRfIDogZnJhbWVidWZmZXJTdGF0dXMgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVF8gOiBmcmFtZWJ1ZmZlclN0YXR1cyByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OU18gOiBmcmFtZWJ1ZmZlclN0YXR1cyByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEXyA6IGZyYW1lYnVmZmVyU3RhdHVzIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5QQUNLX0ZMSVBfWV9XRUJHTF9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0xfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTF9QQVJBTSA6XG4gICAgICBjb2xvcnNwYWNlQ29udmVyc2lvbiBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9OT05FIDogY29sb3JzcGFjZUNvbnZlcnNpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CUk9XU0VSX0RFRkFVTFRfV0VCR0xfIDogY29sb3JzcGFjZUNvbnZlcnNpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfQUxJR05NRU5UXyA6IGludCBwaXhlbFN0b3JlUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfRkxJUF9ZX1dFQkdMXyA6IGJvb2wgdCBwaXhlbFN0b3JlUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0xfIDogYm9vbCB0IHBpeGVsU3RvcmVQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19DT0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0xfIDogaW50IHBpeGVsU3RvcmVQYXJhbSByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiogNS4xNCBXZWJHTENvbnRleHRFdmVudCAqKVxuXG5jbGFzcyB0eXBlIGNvbnRleHRFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgRG9tX2h0bWwuZXZlbnRcblxuICAgIG1ldGhvZCBzdGF0dXNNZXNzYWdlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxubW9kdWxlIEV2ZW50ID0gc3RydWN0XG4gIGxldCB3ZWJnbGNvbnRleHRsb3N0ID0gRG9tX2h0bWwuRXZlbnQubWFrZSBcIndlYmdsY29udGV4dGxvc3RcIlxuXG4gIGxldCB3ZWJnbGNvbnRleHRyZXN0b3JlZCA9IERvbV9odG1sLkV2ZW50Lm1ha2UgXCJ3ZWJnbGNvbnRleHRyZXN0b3JlZFwiXG5cbiAgbGV0IHdlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IgPSBEb21faHRtbC5FdmVudC5tYWtlIFwid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvclwiXG5lbmRcblxuKCoqKiopXG5cbmNsYXNzIHR5cGUgY2FudmFzRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBnZXRDb250ZXh0IDoganNfc3RyaW5nIHQgLT4gcmVuZGVyaW5nQ29udGV4dCB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q29udGV4dF8gOiBqc19zdHJpbmcgdCAtPiBjb250ZXh0QXR0cmlidXRlcyB0IC0+IHJlbmRlcmluZ0NvbnRleHQgdCBvcHQgbWV0aFxuICBlbmRcblxubGV0IGdldENvbnRleHQgKGMgOiBEb21faHRtbC5jYW52YXNFbGVtZW50IHQpID1cbiAgbGV0IGMgOiBjYW52YXNFbGVtZW50IHQgPSBKcy5VbnNhZmUuY29lcmNlIGMgaW5cbiAgbGV0IGN0eCA9IGMjI2dldENvbnRleHQgKEpzLnN0cmluZyBcIndlYmdsXCIpIGluXG4gIGlmIE9wdC50ZXN0IGN0eCB0aGVuIGN0eCBlbHNlIGMgIyMgKGdldENvbnRleHQgKEpzLnN0cmluZyBcImV4cGVyaW1lbnRhbC13ZWJnbFwiKSlcblxubGV0IGdldENvbnRleHRXaXRoQXR0cmlidXRlcyAoYyA6IERvbV9odG1sLmNhbnZhc0VsZW1lbnQgdCkgYXR0cmlicyA9XG4gIGxldCBjIDogY2FudmFzRWxlbWVudCB0ID0gSnMuVW5zYWZlLmNvZXJjZSBjIGluXG4gIGxldCBjdHggPSBjIyNnZXRDb250ZXh0XyAoSnMuc3RyaW5nIFwid2ViZ2xcIikgYXR0cmlicyBpblxuICBpZiBPcHQudGVzdCBjdHggdGhlbiBjdHggZWxzZSBjIyNnZXRDb250ZXh0XyAoSnMuc3RyaW5nIFwiZXhwZXJpbWVudGFsLXdlYmdsXCIpIGF0dHJpYnNcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgUmFwaGHDq2wgUHJvdXN0LCBKw6lyw7RtZSBWb3VpbGxvblxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcblxudHlwZSByZWdleHAgPSBKcy5yZWdFeHAgSnMudFxuXG50eXBlIHJlc3VsdCA9IEpzLm1hdGNoX3Jlc3VsdCBKcy50XG5cbmxldCByZWdleHAgcyA9IG5ldyVqcyBKcy5yZWdFeHBfd2l0aEZsYWdzIChKcy5ieXRlc3RyaW5nIHMpIChKcy5zdHJpbmcgXCJnXCIpXG5cbmxldCByZWdleHBfY2FzZV9mb2xkIHMgPSBuZXclanMgSnMucmVnRXhwX3dpdGhGbGFncyAoSnMuYnl0ZXN0cmluZyBzKSAoSnMuc3RyaW5nIFwiZ2lcIilcblxubGV0IHJlZ2V4cF93aXRoX2ZsYWcgcyBmID1cbiAgbmV3JWpzIEpzLnJlZ0V4cF93aXRoRmxhZ3MgKEpzLmJ5dGVzdHJpbmcgcykgKEpzLnN0cmluZyAoXCJnXCIgXiBmKSlcblxubGV0IGJsdW50X3N0cl9hcnJheV9nZXQgYSBpID1cbiAgSnMudG9fYnl0ZXN0cmluZyAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IGEgaSkgKGZ1biAoKSAtPiBhc3NlcnQgZmFsc2UpKVxuXG5sZXQgc3RyaW5nX21hdGNoIHIgcyBpID1cbiAgciMjLmxhc3RJbmRleCA6PSBpO1xuICBKcy5PcHQudG9fb3B0aW9uIChKcy5PcHQubWFwIChyIyNleGVjIChKcy5ieXRlc3RyaW5nIHMpKSBKcy5tYXRjaF9yZXN1bHQpXG5cbmxldCBzZWFyY2ggciBzIGkgPVxuICByIyMubGFzdEluZGV4IDo9IGk7XG4gIEpzLk9wdC50b19vcHRpb25cbiAgICAoSnMuT3B0Lm1hcFxuICAgICAgIChyIyNleGVjIChKcy5ieXRlc3RyaW5nIHMpKVxuICAgICAgIChmdW4gcmVzX3ByZSAtPlxuICAgICAgICAgbGV0IHJlcyA9IEpzLm1hdGNoX3Jlc3VsdCByZXNfcHJlIGluXG4gICAgICAgICByZXMjIy5pbmRleCwgcmVzKSlcblxubGV0IHNlYXJjaF9mb3J3YXJkID0gc2VhcmNoXG5cbmxldCBtYXRjaGVkX3N0cmluZyByID0gYmx1bnRfc3RyX2FycmF5X2dldCByIDBcblxubGV0IG1hdGNoZWRfZ3JvdXAgciBpID1cbiAgSnMuT3B0ZGVmLnRvX29wdGlvbiAoSnMuT3B0ZGVmLm1hcCAoSnMuYXJyYXlfZ2V0IHIgaSkgSnMudG9fYnl0ZXN0cmluZylcblxubGV0IHF1b3RlX3JlcGxfcmUgPSBuZXclanMgSnMucmVnRXhwX3dpdGhGbGFncyAoSnMuc3RyaW5nIFwiWyRdXCIpIChKcy5zdHJpbmcgXCJnXCIpXG5cbmxldCBxdW90ZV9yZXBsIHMgPSAoSnMuYnl0ZXN0cmluZyBzKSMjcmVwbGFjZSBxdW90ZV9yZXBsX3JlIChKcy5zdHJpbmcgXCIkJCQkXCIpXG5cbmxldCBnbG9iYWxfcmVwbGFjZSByIHMgc19ieSA9XG4gIHIjIy5sYXN0SW5kZXggOj0gMDtcbiAgSnMudG9fYnl0ZXN0cmluZyAoSnMuYnl0ZXN0cmluZyBzKSAjIyAocmVwbGFjZSByIChxdW90ZV9yZXBsIHNfYnkpKVxuXG5sZXQgcmVwbGFjZV9maXJzdCByIHMgc19ieSA9XG4gIGxldCBmbGFncyA9XG4gICAgbWF0Y2ggSnMudG9fYm9vbCByIyMuaWdub3JlQ2FzZSwgSnMudG9fYm9vbCByIyMubXVsdGlsaW5lIHdpdGhcbiAgICB8IGZhbHNlLCBmYWxzZSAtPiBKcy5zdHJpbmcgXCJcIlxuICAgIHwgZmFsc2UsIHRydWUgLT4gSnMuc3RyaW5nIFwibVwiXG4gICAgfCB0cnVlLCBmYWxzZSAtPiBKcy5zdHJpbmcgXCJpXCJcbiAgICB8IHRydWUsIHRydWUgLT4gSnMuc3RyaW5nIFwibWlcIlxuICBpblxuICBsZXQgcicgPSBuZXclanMgSnMucmVnRXhwX3dpdGhGbGFncyByIyMuc291cmNlIGZsYWdzIGluXG4gIEpzLnRvX2J5dGVzdHJpbmcgKEpzLmJ5dGVzdHJpbmcgcykgIyMgKHJlcGxhY2UgcicgKHF1b3RlX3JlcGwgc19ieSkpXG5cbmxldCBsaXN0X29mX2pzX2FycmF5IGEgPVxuICBsZXQgcmVjIGF1eCBhY2N1IGlkeCA9XG4gICAgaWYgaWR4IDwgMCB0aGVuIGFjY3UgZWxzZSBhdXggKGJsdW50X3N0cl9hcnJheV9nZXQgYSBpZHggOjogYWNjdSkgKGlkeCAtIDEpXG4gIGluXG4gIGF1eCBbXSAoYSMjLmxlbmd0aCAtIDEpXG5cbmxldCBzcGxpdCByIHMgPVxuICByIyMubGFzdEluZGV4IDo9IDA7XG4gIGxpc3Rfb2ZfanNfYXJyYXkgKEpzLnN0cl9hcnJheSAoSnMuYnl0ZXN0cmluZyBzKSAjIyAoc3BsaXRfcmVnRXhwIHIpKVxuXG5sZXQgYm91bmRlZF9zcGxpdCByIHMgaSA9XG4gIHIjIy5sYXN0SW5kZXggOj0gMDtcbiAgbGlzdF9vZl9qc19hcnJheSAoSnMuc3RyX2FycmF5IChKcy5ieXRlc3RyaW5nIHMpICMjIChzcGxpdF9yZWdFeHBMaW1pdGVkIHIgaSkpXG5cbigqIE1vcmUgY29uc3RydWN0b3JzICopXG5cbmxldCBxdW90ZV9yZSA9IHJlZ2V4cCBcIltcXFxcXVsoKVxcXFxcXFxcfCsqLj97fV4kXVwiXG5cbmxldCBxdW90ZSBzID0gSnMudG9fYnl0ZXN0cmluZyAoSnMuYnl0ZXN0cmluZyBzKSAjIyAocmVwbGFjZSBxdW90ZV9yZSAoSnMuc3RyaW5nIFwiXFxcXCQmXCIpKVxuXG5sZXQgcmVnZXhwX3N0cmluZyBzID0gcmVnZXhwIChxdW90ZSBzKVxuXG5sZXQgcmVnZXhwX3N0cmluZ19jYXNlX2ZvbGQgcyA9IHJlZ2V4cF9jYXNlX2ZvbGQgKHF1b3RlIHMpXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEwIFJhcGhhw6tsIFByb3VzdFxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcblxuKCogVXJsIHRhbXBlcmluZy4gKilcblxubGV0IHNwbGl0IGMgcyA9IEpzLnN0cl9hcnJheSAocyMjc3BsaXQgKEpzLnN0cmluZyAoU3RyaW5nLm1ha2UgMSBjKSkpXG5cbmxldCBzcGxpdF8yIGMgcyA9XG4gIGxldCBpbmRleCA9IHMjI2luZGV4T2YgKEpzLnN0cmluZyAoU3RyaW5nLm1ha2UgMSBjKSkgaW5cbiAgaWYgaW5kZXggPCAwIHRoZW4gSnMudW5kZWZpbmVkIGVsc2UgSnMuZGVmIChzIyNzbGljZSAwIGluZGV4LCBzIyNzbGljZV9lbmQgKGluZGV4ICsgMSkpXG5cbmV4Y2VwdGlvbiBMb2NhbF9leG5cblxubGV0IGludGVycnVwdCAoKSA9IHJhaXNlIExvY2FsX2V4blxuXG4oKiB1cmwgKEFLQSBwZXJjZW50KSBlbmNvZGluZy9kZWNvZGluZyAqKVxuXG5sZXQgcGx1c19yZSA9IFJlZ2V4cC5yZWdleHBfc3RyaW5nIFwiK1wiXG5cbmxldCBlc2NhcGVfcGx1cyBzID0gUmVnZXhwLmdsb2JhbF9yZXBsYWNlIHBsdXNfcmUgcyBcIiUyQlwiXG5cbmxldCB1bmVzY2FwZV9wbHVzIHMgPSBSZWdleHAuZ2xvYmFsX3JlcGxhY2UgcGx1c19yZSBzIFwiIFwiXG5cbmxldCBwbHVzX3JlX2pzX3N0cmluZyA9IG5ldyVqcyBKcy5yZWdFeHBfd2l0aEZsYWdzIChKcy5zdHJpbmcgXCJcXFxcK1wiKSAoSnMuc3RyaW5nIFwiZ1wiKVxuXG5sZXQgdW5lc2NhcGVfcGx1c19qc19zdHJpbmcgcyA9XG4gIHBsdXNfcmVfanNfc3RyaW5nIyMubGFzdEluZGV4IDo9IDA7XG4gIHMjI3JlcGxhY2UgcGx1c19yZV9qc19zdHJpbmcgKEpzLnN0cmluZyBcIiBcIilcblxubGV0IHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIHMgPVxuICBKcy50b19ieXRlc3RyaW5nIChKcy51bmVzY2FwZSAodW5lc2NhcGVfcGx1c19qc19zdHJpbmcgcykpXG5cbmxldCB1cmxkZWNvZGUgcyA9IEpzLnRvX2J5dGVzdHJpbmcgKEpzLnVuZXNjYXBlIChKcy5ieXRlc3RyaW5nICh1bmVzY2FwZV9wbHVzIHMpKSlcblxuKCpsZXQgdXJsZW5jb2RlX2pzX3N0cmluZ19zdHJpbmcgcyA9XG4gIEpzLnRvX2J5dGVzdHJpbmcgKEpzLmVzY2FwZSBzKSopXG5cbmxldCB1cmxlbmNvZGUgPyh3aXRoX3BsdXMgPSB0cnVlKSBzID1cbiAgaWYgd2l0aF9wbHVzXG4gIHRoZW4gZXNjYXBlX3BsdXMgKEpzLnRvX2J5dGVzdHJpbmcgKEpzLmVzY2FwZSAoSnMuYnl0ZXN0cmluZyBzKSkpXG4gIGVsc2UgSnMudG9fYnl0ZXN0cmluZyAoSnMuZXNjYXBlIChKcy5ieXRlc3RyaW5nIHMpKVxuXG50eXBlIGh0dHBfdXJsID1cbiAgeyBodV9ob3N0IDogc3RyaW5nICAoKiogVGhlIGhvc3QgcGFydCBvZiB0aGUgdXJsLiAqKVxuICA7IGh1X3BvcnQgOiBpbnQgICgqKiBUaGUgcG9ydCBmb3IgdGhlIGNvbm5lY3Rpb24gaWYgYW55LiAqKVxuICA7IGh1X3BhdGggOiBzdHJpbmcgbGlzdCAgKCoqIFRoZSBwYXRoIHNwbGl0IG9uIFsnLyddIGNoYXJhY3RlcnMuICopXG4gIDsgaHVfcGF0aF9zdHJpbmcgOiBzdHJpbmcgICgqKiBUaGUgb3JpZ2luYWwgZW50aXJlIHBhdGguICopXG4gIDsgaHVfYXJndW1lbnRzIDogKHN0cmluZyAqIHN0cmluZykgbGlzdFxuICAgICAgICAoKiogQXJndW1lbnRzIGFzIGEgZmllbGQtdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0aW9uIGxpc3QuKilcbiAgOyBodV9mcmFnbWVudCA6IHN0cmluZyAgKCoqIFRoZSBmcmFnbWVudCBwYXJ0IChhZnRlciB0aGUgWycjJ10gY2hhcmFjdGVyKS4gKilcbiAgfVxuKCoqIFRoZSB0eXBlIGZvciBIVFRQIHVybC4gKilcblxudHlwZSBmaWxlX3VybCA9XG4gIHsgZnVfcGF0aCA6IHN0cmluZyBsaXN0XG4gIDsgZnVfcGF0aF9zdHJpbmcgOiBzdHJpbmdcbiAgOyBmdV9hcmd1bWVudHMgOiAoc3RyaW5nICogc3RyaW5nKSBsaXN0XG4gIDsgZnVfZnJhZ21lbnQgOiBzdHJpbmdcbiAgfVxuKCoqIFRoZSB0eXBlIGZvciBsb2NhbCBmaWxlIHVybHMuICopXG5cbnR5cGUgdXJsID1cbiAgfCBIdHRwIG9mIGh0dHBfdXJsXG4gIHwgSHR0cHMgb2YgaHR0cF91cmxcbiAgfCBGaWxlIG9mIGZpbGVfdXJsXG4gICAgICAoKiogVGhlIHR5cGUgZm9yIHVybHMuIFtGaWxlXSBpcyBmb3IgbG9jYWwgZmlsZXMgYW5kIFtFeG90aWMgc10gaXMgZm9yXG4gICAgdW5rbm93bi91bnN1cHBvcnRlZCBwcm90b2NvbHMuICopXG5cbmV4Y2VwdGlvbiBOb3RfYW5faHR0cF9wcm90b2NvbFxuXG5sZXQgaXNfc2VjdXJlIHByb3Rfc3RyaW5nID1cbiAgbWF0Y2ggSnMudG9fYnl0ZXN0cmluZyBwcm90X3N0cmluZyMjdG9Mb3dlckNhc2Ugd2l0aFxuICB8IFwiaHR0cHM6XCIgfCBcImh0dHBzXCIgLT4gdHJ1ZVxuICB8IFwiaHR0cDpcIiB8IFwiaHR0cFwiIC0+IGZhbHNlXG4gIHwgXCJmaWxlOlwiIHwgXCJmaWxlXCIgfCBfIC0+IHJhaXNlIE5vdF9hbl9odHRwX3Byb3RvY29sXG5cbigqIHBvcnQgbnVtYmVyICopXG5sZXQgZGVmYXVsdF9odHRwX3BvcnQgPSA4MFxuXG5sZXQgZGVmYXVsdF9odHRwc19wb3J0ID0gNDQzXG5cbigqIHBhdGggKilcbmxldCBwYXRoX29mX3BhdGhfc3RyaW5nIHMgPVxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgcmVjIGF1eCBpID1cbiAgICBsZXQgaiA9IHRyeSBTdHJpbmcuaW5kZXhfZnJvbSBzIGkgJy8nIHdpdGggTm90X2ZvdW5kIC0+IGwgaW5cbiAgICBsZXQgd29yZCA9IFN0cmluZy5zdWIgcyBpIChqIC0gaSkgaW5cbiAgICBpZiBqID49IGwgdGhlbiBbIHdvcmQgXSBlbHNlIHdvcmQgOjogYXV4IChqICsgMSlcbiAgaW5cbiAgbWF0Y2ggYXV4IDAgd2l0aFxuICB8IFsgXCJcIiBdIC0+IFtdXG4gIHwgWyBcIlwiOyBcIlwiIF0gLT4gWyBcIlwiIF1cbiAgfCBhIC0+IGFcblxuKCogQXJndW1lbnRzICopXG5sZXQgZW5jb2RlX2FyZ3VtZW50cyBsID1cbiAgU3RyaW5nLmNvbmNhdCBcIiZcIiAoTGlzdC5tYXAgKGZ1biAobiwgdikgLT4gdXJsZW5jb2RlIG4gXiBcIj1cIiBeIHVybGVuY29kZSB2KSBsKVxuXG5sZXQgZGVjb2RlX2FyZ3VtZW50c19qc19zdHJpbmcgcyA9XG4gIGxldCBhcnIgPSBzcGxpdCAnJicgcyBpblxuICBsZXQgbGVuID0gYXJyIyMubGVuZ3RoIGluXG4gIGxldCBuYW1lX3ZhbHVlX3NwbGl0IHMgPSBzcGxpdF8yICc9JyBzIGluXG4gIGxldCByZWMgYXV4IGFjYyBpZHggPVxuICAgIGlmIGlkeCA8IDBcbiAgICB0aGVuIGFjY1xuICAgIGVsc2VcbiAgICAgIHRyeVxuICAgICAgICBhdXhcbiAgICAgICAgICAoSnMuT3B0ZGVmLmNhc2UgKEpzLmFycmF5X2dldCBhcnIgaWR4KSBpbnRlcnJ1cHQgKGZ1biBzIC0+XG4gICAgICAgICAgICAgICBKcy5PcHRkZWYuY2FzZSAobmFtZV92YWx1ZV9zcGxpdCBzKSBpbnRlcnJ1cHQgKGZ1biAoeCwgeSkgLT5cbiAgICAgICAgICAgICAgICAgICBsZXQgZ2V0ID0gdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmcgaW5cbiAgICAgICAgICAgICAgICAgICBnZXQgeCwgZ2V0IHkpKVxuICAgICAgICAgIDo6IGFjYylcbiAgICAgICAgICAocHJlZCBpZHgpXG4gICAgICB3aXRoIExvY2FsX2V4biAtPiBhdXggYWNjIChwcmVkIGlkeClcbiAgaW5cbiAgYXV4IFtdIChsZW4gLSAxKVxuXG5sZXQgZGVjb2RlX2FyZ3VtZW50cyBzID0gZGVjb2RlX2FyZ3VtZW50c19qc19zdHJpbmcgKEpzLmJ5dGVzdHJpbmcgcylcblxubGV0IHVybF9yZSA9XG4gIG5ldyVqcyBKcy5yZWdFeHBcbiAgICAoSnMuYnl0ZXN0cmluZ1xuICAgICAgIFwiXihbSGhdW1R0XVtUdF1bUHBdW1NzXT8pOi8vKFswLTlhLXpBLVouLV0rfFxcXFxbWzAtOWEtekEtWi4tXStcXFxcXXxcXFxcW1swLTlBLUZhLWY6Ll0rXFxcXF0pPyg6KFswLTldKykpPygvKFteXFxcXD8jXSopKFxcXFw/KFteI10qKSk/KCMoLiopKT8pPyRcIilcblxubGV0IGZpbGVfcmUgPVxuICBuZXclanMgSnMucmVnRXhwXG4gICAgKEpzLmJ5dGVzdHJpbmcgXCJeKFtGZl1bSWldW0xsXVtFZV0pOi8vKFteXFxcXD8jXSopKFxcXFw/KFteI10qKSk/KCMoLiopKT8kXCIpXG5cbmxldCB1cmxfb2ZfanNfc3RyaW5nIHMgPVxuICBKcy5PcHQuY2FzZVxuICAgICh1cmxfcmUjI2V4ZWMgcylcbiAgICAoZnVuICgpIC0+XG4gICAgICBKcy5PcHQuY2FzZVxuICAgICAgICAoZmlsZV9yZSMjZXhlYyBzKVxuICAgICAgICAoZnVuICgpIC0+IE5vbmUpXG4gICAgICAgIChmdW4gaGFuZGxlIC0+XG4gICAgICAgICAgbGV0IHJlcyA9IEpzLm1hdGNoX3Jlc3VsdCBoYW5kbGUgaW5cbiAgICAgICAgICBsZXQgcGF0aF9zdHIgPVxuICAgICAgICAgICAgdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmcgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCByZXMgMikgaW50ZXJydXB0KVxuICAgICAgICAgIGluXG4gICAgICAgICAgU29tZVxuICAgICAgICAgICAgKEZpbGVcbiAgICAgICAgICAgICAgIHsgZnVfcGF0aCA9IHBhdGhfb2ZfcGF0aF9zdHJpbmcgcGF0aF9zdHJcbiAgICAgICAgICAgICAgIDsgZnVfcGF0aF9zdHJpbmcgPSBwYXRoX3N0clxuICAgICAgICAgICAgICAgOyBmdV9hcmd1bWVudHMgPVxuICAgICAgICAgICAgICAgICAgIGRlY29kZV9hcmd1bWVudHNfanNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyA0KSAoZnVuICgpIC0+IEpzLmJ5dGVzdHJpbmcgXCJcIikpXG4gICAgICAgICAgICAgICA7IGZ1X2ZyYWdtZW50ID1cbiAgICAgICAgICAgICAgICAgICBKcy50b19ieXRlc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyA2KSAoZnVuICgpIC0+IEpzLmJ5dGVzdHJpbmcgXCJcIikpXG4gICAgICAgICAgICAgICB9KSkpXG4gICAgKGZ1biBoYW5kbGUgLT5cbiAgICAgIGxldCByZXMgPSBKcy5tYXRjaF9yZXN1bHQgaGFuZGxlIGluXG4gICAgICBsZXQgc3NsID0gaXNfc2VjdXJlIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDEpIGludGVycnVwdCkgaW5cbiAgICAgIGxldCBwb3J0X29mX3N0cmluZyA9IGZ1bmN0aW9uXG4gICAgICAgIHwgXCJcIiAtPiBpZiBzc2wgdGhlbiA0NDMgZWxzZSA4MFxuICAgICAgICB8IHMgLT4gaW50X29mX3N0cmluZyBzXG4gICAgICBpblxuICAgICAgbGV0IHBhdGhfc3RyID1cbiAgICAgICAgdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmdcbiAgICAgICAgICAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyA2KSAoZnVuICgpIC0+IEpzLmJ5dGVzdHJpbmcgXCJcIikpXG4gICAgICBpblxuICAgICAgbGV0IHVybCA9XG4gICAgICAgIHsgaHVfaG9zdCA9XG4gICAgICAgICAgICB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyAyKSBpbnRlcnJ1cHQpXG4gICAgICAgIDsgaHVfcG9ydCA9XG4gICAgICAgICAgICBwb3J0X29mX3N0cmluZ1xuICAgICAgICAgICAgICAoSnMudG9fYnl0ZXN0cmluZ1xuICAgICAgICAgICAgICAgICAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyA0KSAoZnVuICgpIC0+IEpzLmJ5dGVzdHJpbmcgXCJcIikpKVxuICAgICAgICA7IGh1X3BhdGggPSBwYXRoX29mX3BhdGhfc3RyaW5nIHBhdGhfc3RyXG4gICAgICAgIDsgaHVfcGF0aF9zdHJpbmcgPSBwYXRoX3N0clxuICAgICAgICA7IGh1X2FyZ3VtZW50cyA9XG4gICAgICAgICAgICBkZWNvZGVfYXJndW1lbnRzX2pzX3N0cmluZ1xuICAgICAgICAgICAgICAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyA4KSAoZnVuICgpIC0+IEpzLmJ5dGVzdHJpbmcgXCJcIikpXG4gICAgICAgIDsgaHVfZnJhZ21lbnQgPVxuICAgICAgICAgICAgdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmdcbiAgICAgICAgICAgICAgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCByZXMgMTApIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSlcbiAgICAgICAgfVxuICAgICAgaW5cbiAgICAgIFNvbWUgKGlmIHNzbCB0aGVuIEh0dHBzIHVybCBlbHNlIEh0dHAgdXJsKSlcblxubGV0IHVybF9vZl9zdHJpbmcgcyA9IHVybF9vZl9qc19zdHJpbmcgKEpzLmJ5dGVzdHJpbmcgcylcblxubGV0IHN0cmluZ19vZl91cmwgPSBmdW5jdGlvblxuICB8IEZpbGUgeyBmdV9wYXRoID0gcGF0aDsgZnVfYXJndW1lbnRzID0gYXJnczsgZnVfZnJhZ21lbnQgPSBmcmFnOyBfIH0gLT4gKFxuICAgICAgXCJmaWxlOi8vXCJcbiAgICAgIF4gU3RyaW5nLmNvbmNhdCBcIi9cIiAoTGlzdC5tYXAgKGZ1biB4IC0+IHVybGVuY29kZSB4KSBwYXRoKVxuICAgICAgXiAobWF0Y2ggYXJncyB3aXRoXG4gICAgICAgIHwgW10gLT4gXCJcIlxuICAgICAgICB8IGwgLT4gXCI/XCIgXiBlbmNvZGVfYXJndW1lbnRzIGwpXG4gICAgICBeXG4gICAgICBtYXRjaCBmcmFnIHdpdGhcbiAgICAgIHwgXCJcIiAtPiBcIlwiXG4gICAgICB8IHMgLT4gXCIjXCIgXiB1cmxlbmNvZGUgcylcbiAgfCBIdHRwXG4gICAgICB7IGh1X2hvc3QgPSBob3N0XG4gICAgICA7IGh1X3BvcnQgPSBwb3J0XG4gICAgICA7IGh1X3BhdGggPSBwYXRoXG4gICAgICA7IGh1X2FyZ3VtZW50cyA9IGFyZ3NcbiAgICAgIDsgaHVfZnJhZ21lbnQgPSBmcmFnXG4gICAgICA7IF9cbiAgICAgIH0gLT4gKFxuICAgICAgXCJodHRwOi8vXCJcbiAgICAgIF4gdXJsZW5jb2RlIGhvc3RcbiAgICAgIF4gKG1hdGNoIHBvcnQgd2l0aFxuICAgICAgICB8IDgwIC0+IFwiXCJcbiAgICAgICAgfCBuIC0+IFwiOlwiIF4gc3RyaW5nX29mX2ludCBuKVxuICAgICAgXiBcIi9cIlxuICAgICAgXiBTdHJpbmcuY29uY2F0IFwiL1wiIChMaXN0Lm1hcCAoZnVuIHggLT4gdXJsZW5jb2RlIHgpIHBhdGgpXG4gICAgICBeIChtYXRjaCBhcmdzIHdpdGhcbiAgICAgICAgfCBbXSAtPiBcIlwiXG4gICAgICAgIHwgbCAtPiBcIj9cIiBeIGVuY29kZV9hcmd1bWVudHMgbClcbiAgICAgIF5cbiAgICAgIG1hdGNoIGZyYWcgd2l0aFxuICAgICAgfCBcIlwiIC0+IFwiXCJcbiAgICAgIHwgcyAtPiBcIiNcIiBeIHVybGVuY29kZSBzKVxuICB8IEh0dHBzXG4gICAgICB7IGh1X2hvc3QgPSBob3N0XG4gICAgICA7IGh1X3BvcnQgPSBwb3J0XG4gICAgICA7IGh1X3BhdGggPSBwYXRoXG4gICAgICA7IGh1X2FyZ3VtZW50cyA9IGFyZ3NcbiAgICAgIDsgaHVfZnJhZ21lbnQgPSBmcmFnXG4gICAgICA7IF9cbiAgICAgIH0gLT4gKFxuICAgICAgXCJodHRwczovL1wiXG4gICAgICBeIHVybGVuY29kZSBob3N0XG4gICAgICBeIChtYXRjaCBwb3J0IHdpdGhcbiAgICAgICAgfCA0NDMgLT4gXCJcIlxuICAgICAgICB8IG4gLT4gXCI6XCIgXiBzdHJpbmdfb2ZfaW50IG4pXG4gICAgICBeIFwiL1wiXG4gICAgICBeIFN0cmluZy5jb25jYXQgXCIvXCIgKExpc3QubWFwIChmdW4geCAtPiB1cmxlbmNvZGUgeCkgcGF0aClcbiAgICAgIF4gKG1hdGNoIGFyZ3Mgd2l0aFxuICAgICAgICB8IFtdIC0+IFwiXCJcbiAgICAgICAgfCBsIC0+IFwiP1wiIF4gZW5jb2RlX2FyZ3VtZW50cyBsKVxuICAgICAgXlxuICAgICAgbWF0Y2ggZnJhZyB3aXRoXG4gICAgICB8IFwiXCIgLT4gXCJcIlxuICAgICAgfCBzIC0+IFwiI1wiIF4gdXJsZW5jb2RlIHMpXG5cbm1vZHVsZSBDdXJyZW50ID0gc3RydWN0XG4gIGxldCBsID1cbiAgICBpZiBKcy5PcHRkZWYudGVzdCAoSnMuT3B0ZGVmLnJldHVybiBEb21faHRtbC53aW5kb3cjIy5sb2NhdGlvbilcbiAgICB0aGVuIERvbV9odG1sLndpbmRvdyMjLmxvY2F0aW9uXG4gICAgZWxzZVxuICAgICAgbGV0IGVtcHR5ID0gSnMuc3RyaW5nIFwiXCIgaW5cbiAgICAgIG9iamVjdCVqc1xuICAgICAgICB2YWwgbXV0YWJsZSBocmVmID0gZW1wdHlcblxuICAgICAgICB2YWwgbXV0YWJsZSBwcm90b2NvbCA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG11dGFibGUgaG9zdCA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG11dGFibGUgaG9zdG5hbWUgPSBlbXB0eVxuXG4gICAgICAgIHZhbCBtdXRhYmxlIHBvcnQgPSBlbXB0eVxuXG4gICAgICAgIHZhbCBtdXRhYmxlIHBhdGhuYW1lID0gZW1wdHlcblxuICAgICAgICB2YWwgbXV0YWJsZSBzZWFyY2ggPSBlbXB0eVxuXG4gICAgICAgIHZhbCBtdXRhYmxlIGhhc2ggPSBlbXB0eVxuXG4gICAgICAgIHZhbCBvcmlnaW4gPSBKcy51bmRlZmluZWRcblxuICAgICAgICBtZXRob2QgcmVsb2FkID0gKClcblxuICAgICAgICBtZXRob2QgcmVwbGFjZSBfID0gKClcblxuICAgICAgICBtZXRob2QgYXNzaWduIF8gPSAoKVxuICAgICAgZW5kXG5cbiAgbGV0IGhvc3QgPSB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyBsIyMuaG9zdG5hbWVcblxuICBsZXQgcHJvdG9jb2wgPSB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyBsIyMucHJvdG9jb2xcblxuICBsZXQgcG9ydCA9XG4gICAgKGZ1biAoKSAtPlxuICAgICAgdHJ5IFNvbWUgKGludF9vZl9zdHJpbmcgKEpzLnRvX2J5dGVzdHJpbmcgbCMjLnBvcnQpKSB3aXRoIEZhaWx1cmUgXyAtPiBOb25lKVxuICAgICAgKClcblxuICBsZXQgcGF0aF9zdHJpbmcgPSB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyBsIyMucGF0aG5hbWVcblxuICBsZXQgcGF0aCA9IHBhdGhfb2ZfcGF0aF9zdHJpbmcgcGF0aF9zdHJpbmdcblxuICBsZXQgYXJndW1lbnRzID1cbiAgICBkZWNvZGVfYXJndW1lbnRzX2pzX3N0cmluZ1xuICAgICAgKGlmIGwjIy5zZWFyY2gjI2NoYXJBdCAwID09IEpzLnN0cmluZyBcIj9cIlxuICAgICAgdGhlbiBsIyMuc2VhcmNoIyNzbGljZV9lbmQgMVxuICAgICAgZWxzZSBsIyMuc2VhcmNoKVxuXG4gIGxldCBnZXRfZnJhZ21lbnQgKCkgPVxuICAgICgqIGxvY2F0aW9uLmhhc2ggZG9lc24ndCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlclxuICAgICAgIEZpcmVmb3ggYnVnIDogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgzMzA0ICopXG4gICAgKCogbGV0IHMgPSBKcy50b19ieXRlc3RyaW5nIChsIyNoYXNoKSBpbiAqKVxuICAgICgqIGlmIFN0cmluZy5sZW5ndGggcyA+IDAgJiYgcy5bMF0gPSAnIycgKilcbiAgICAoKiB0aGVuIFN0cmluZy5zdWIgcyAxIChTdHJpbmcubGVuZ3RoIHMgLSAxKSAqKVxuICAgICgqIGVsc2UgczsgKilcbiAgICBKcy5PcHQuY2FzZVxuICAgICAgKGwjIy5ocmVmIyNfbWF0Y2ggKG5ldyVqcyBKcy5yZWdFeHAgKEpzLnN0cmluZyBcIiMoLiopXCIpKSlcbiAgICAgIChmdW4gKCkgLT4gXCJcIilcbiAgICAgIChmdW4gcmVzIC0+XG4gICAgICAgIGxldCByZXMgPSBKcy5tYXRjaF9yZXN1bHQgcmVzIGluXG4gICAgICAgIEpzLnRvX3N0cmluZyAoSnMuVW5zYWZlLmdldCByZXMgMSkpXG5cbiAgbGV0IHNldF9mcmFnbWVudCBzID0gbCMjLmhhc2ggOj0gSnMuYnl0ZXN0cmluZyAodXJsZW5jb2RlIHMpXG5cbiAgbGV0IGdldCAoKSA9IHVybF9vZl9qc19zdHJpbmcgbCMjLmhyZWZcblxuICBsZXQgc2V0IHUgPSBsIyMuaHJlZiA6PSBKcy5ieXRlc3RyaW5nIChzdHJpbmdfb2ZfdXJsIHUpXG5cbiAgbGV0IGFzX3N0cmluZyA9IHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIGwjIy5ocmVmXG5lbmRcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTQgSHVnbyBIZXV6YXJkXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcblxuZXh0ZXJuYWwgY3JlYXRlX2ZpbGUgOiBuYW1lOnN0cmluZyAtPiBjb250ZW50OnN0cmluZyAtPiB1bml0ID0gXCJjYW1sX2NyZWF0ZV9maWxlXCJcblxuZXh0ZXJuYWwgcmVhZF9maWxlIDogbmFtZTpzdHJpbmcgLT4gc3RyaW5nID0gXCJjYW1sX3JlYWRfZmlsZV9jb250ZW50XCJcblxubGV0IHVwZGF0ZV9maWxlIH5uYW1lIH5jb250ZW50ID1cbiAgbGV0IG9jID0gb3Blbl9vdXQgbmFtZSBpblxuICBvdXRwdXRfc3RyaW5nIG9jIGNvbnRlbnQ7XG4gIGNsb3NlX291dCBvY1xuXG5leHRlcm5hbCBzZXRfY2hhbm5lbF9vdXRwdXQnIDpcbiAgb3V0X2NoYW5uZWwgLT4gKEpzLmpzX3N0cmluZyBKcy50IC0+IHVuaXQpIEpzLmNhbGxiYWNrIC0+IHVuaXRcbiAgPSBcImNhbWxfbWxfc2V0X2NoYW5uZWxfb3V0cHV0XCJcblxuZXh0ZXJuYWwgc2V0X2NoYW5uZWxfaW5wdXQnIDogaW5fY2hhbm5lbCAtPiAodW5pdCAtPiBzdHJpbmcpIEpzLmNhbGxiYWNrIC0+IHVuaXRcbiAgPSBcImNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsXCJcblxubGV0IHNldF9jaGFubmVsX2ZsdXNoZXIgKG91dF9jaGFubmVsIDogb3V0X2NoYW5uZWwpIChmIDogc3RyaW5nIC0+IHVuaXQpID1cbiAgbGV0IGYnIDogKEpzLmpzX3N0cmluZyBKcy50IC0+IHVuaXQpIEpzLmNhbGxiYWNrID1cbiAgICBKcy53cmFwX2NhbGxiYWNrIChmdW4gcyAtPiBmIChKcy50b19ieXRlc3RyaW5nIHMpKVxuICBpblxuICBzZXRfY2hhbm5lbF9vdXRwdXQnIG91dF9jaGFubmVsIGYnXG5cbmxldCBzZXRfY2hhbm5lbF9maWxsZXIgKGluX2NoYW5uZWwgOiBpbl9jaGFubmVsKSAoZiA6IHVuaXQgLT4gc3RyaW5nKSA9XG4gIGxldCBmJyA6ICh1bml0IC0+IHN0cmluZykgSnMuY2FsbGJhY2sgPSBKcy53cmFwX2NhbGxiYWNrIGYgaW5cbiAgc2V0X2NoYW5uZWxfaW5wdXQnIGluX2NoYW5uZWwgZidcblxuZXh0ZXJuYWwgbW91bnRfcG9pbnQgOiB1bml0IC0+IHN0cmluZyBsaXN0ID0gXCJjYW1sX2xpc3RfbW91bnRfcG9pbnRcIlxuXG5leHRlcm5hbCBtb3VudF9hdXRvbG9hZCA6XG4gIHN0cmluZyAtPiAoc3RyaW5nIC0+IHN0cmluZyAtPiBzdHJpbmcgb3B0aW9uKSBKcy5jYWxsYmFjayAtPiB1bml0XG4gID0gXCJjYW1sX21vdW50X2F1dG9sb2FkXCJcblxuZXh0ZXJuYWwgdW5tb3VudCA6IHN0cmluZyAtPiB1bml0ID0gXCJjYW1sX3VubW91bnRcIlxuXG5sZXQgbW91bnQgfnBhdGggZiA9XG4gIG1vdW50X2F1dG9sb2FkIHBhdGggKEpzLndyYXBfY2FsbGJhY2sgKGZ1biBwcmVmaXggcGF0aCAtPiBmIH5wcmVmaXggfnBhdGgpKVxuXG5sZXQgdW5tb3VudCB+cGF0aCA9IHVubW91bnQgcGF0aFxuXG5sZXQganNfb2Zfb2NhbWxfdmVyc2lvbiA9XG4gIGlmIFN0cmluZy5lcXVhbCBMaWJfdmVyc2lvbi5naXRfdmVyc2lvbiBcIlwiXG4gIHRoZW4gTGliX3ZlcnNpb24uc1xuICBlbHNlIExpYl92ZXJzaW9uLnMgXiBcIitcIiBeIExpYl92ZXJzaW9uLmdpdF92ZXJzaW9uXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDE5IEFsZXhhbmRlciBZYW5pblxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUgcmVzaXplT2JzZXJ2ZXJTaXplID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGlubGluZVNpemUgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYmxvY2tTaXplIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSByZXNpemVPYnNlcnZlckVudHJ5ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHRhcmdldCA6IERvbS5ub2RlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnRSZWN0IDogRG9tX2h0bWwuY2xpZW50UmVjdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBib3JkZXJCb3hTaXplIDogcmVzaXplT2JzZXJ2ZXJTaXplIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29udGVudEJveFNpemUgOiByZXNpemVPYnNlcnZlclNpemUgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcmVzaXplT2JzZXJ2ZXJPcHRpb25zID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGJveCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLndyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHJlc2l6ZU9ic2VydmVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG9ic2VydmUgOiAjRG9tLm5vZGUgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBvYnNlcnZlX3dpdGhPcHRpb25zIDpcbiAgICAgICNEb20ubm9kZSBKcy50IC0+IHJlc2l6ZU9ic2VydmVyT3B0aW9ucyBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHVub2JzZXJ2ZSA6ICNEb20ubm9kZSBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIGRpc2Nvbm5lY3QgOiB1bml0IEpzLm1ldGhcbiAgZW5kXG5cbmxldCBlbXB0eV9yZXNpemVfb2JzZXJ2ZXJfb3B0aW9ucyAoKSA6IHJlc2l6ZU9ic2VydmVyT3B0aW9ucyBKcy50ID0gSnMuVW5zYWZlLm9iaiBbfHxdXG5cbmxldCByZXNpemVPYnNlcnZlciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fUmVzaXplT2JzZXJ2ZXJcblxubGV0IGlzX3N1cHBvcnRlZCAoKSA9IEpzLk9wdGRlZi50ZXN0IHJlc2l6ZU9ic2VydmVyXG5cbmxldCByZXNpemVPYnNlcnZlciA6XG4gICAgKCAgIChyZXNpemVPYnNlcnZlckVudHJ5IEpzLnQgSnMuanNfYXJyYXkgSnMudCAtPiByZXNpemVPYnNlcnZlciBKcy50IC0+IHVuaXQpXG4gICAgICAgIEpzLmNhbGxiYWNrXG4gICAgIC0+IHJlc2l6ZU9ic2VydmVyIEpzLnQpXG4gICAgSnMuY29uc3RyID1cbiAgcmVzaXplT2JzZXJ2ZXJcblxubGV0IG9ic2VydmVcbiAgICB+KG5vZGUgOiAjRG9tLm5vZGUgSnMudClcbiAgICB+KGYgOiByZXNpemVPYnNlcnZlckVudHJ5IEpzLnQgSnMuanNfYXJyYXkgSnMudCAtPiByZXNpemVPYnNlcnZlciBKcy50IC0+IHVuaXQpXG4gICAgPyhib3ggOiBKcy5qc19zdHJpbmcgSnMudCBvcHRpb24pXG4gICAgKCkgOiByZXNpemVPYnNlcnZlciBKcy50ID1cbiAgbGV0IG9icyA9IG5ldyVqcyByZXNpemVPYnNlcnZlciAoSnMud3JhcF9jYWxsYmFjayBmKSBpblxuICAobWF0Y2ggYm94IHdpdGhcbiAgfCBOb25lIC0+IG9icyMjb2JzZXJ2ZSBub2RlXG4gIHwgU29tZSBib3ggLT5cbiAgICAgIGxldCBvcHRzID0gZW1wdHlfcmVzaXplX29ic2VydmVyX29wdGlvbnMgKCkgaW5cbiAgICAgIG9wdHMjIy5ib3ggOj0gYm94O1xuICAgICAgb2JzIyNvYnNlcnZlX3dpdGhPcHRpb25zIG5vZGUgb3B0cyk7XG4gIG9ic1xuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAyMSBQaGlsaXAgV2hpdGVcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUgcGVyZm9ybWFuY2VPYnNlcnZlckluaXQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZW50cnlUeXBlcyA6IEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMud3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcGVyZm9ybWFuY2VFbnRyeSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBuYW1lIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVudHJ5VHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdGFydFRpbWUgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZHVyYXRpb24gOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHBlcmZvcm1hbmNlT2JzZXJ2ZXJFbnRyeUxpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZ2V0RW50cmllcyA6IHBlcmZvcm1hbmNlRW50cnkgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcGVyZm9ybWFuY2VPYnNlcnZlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBvYnNlcnZlIDogcGVyZm9ybWFuY2VPYnNlcnZlckluaXQgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBkaXNjb25uZWN0IDogdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgdGFrZVJlY29yZHMgOiBwZXJmb3JtYW5jZUVudHJ5IEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgcGVyZm9ybWFuY2VPYnNlcnZlciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fUGVyZm9ybWFuY2VPYnNlcnZlclxuXG5sZXQgaXNfc3VwcG9ydGVkICgpID0gSnMuT3B0ZGVmLnRlc3QgcGVyZm9ybWFuY2VPYnNlcnZlclxuXG5sZXQgcGVyZm9ybWFuY2VPYnNlcnZlciA6XG4gICAgKCAgIChwZXJmb3JtYW5jZU9ic2VydmVyRW50cnlMaXN0IEpzLnQgLT4gcGVyZm9ybWFuY2VPYnNlcnZlciBKcy50IC0+IHVuaXQpIEpzLmNhbGxiYWNrXG4gICAgIC0+IHBlcmZvcm1hbmNlT2JzZXJ2ZXIgSnMudClcbiAgICBKcy5jb25zdHIgPVxuICBwZXJmb3JtYW5jZU9ic2VydmVyXG5cbmxldCBvYnNlcnZlIH5lbnRyeV90eXBlcyB+ZiA9XG4gIGxldCBlbnRyeV90eXBlcyA9IGVudHJ5X3R5cGVzIHw+IExpc3QubWFwIEpzLnN0cmluZyB8PiBBcnJheS5vZl9saXN0IHw+IEpzLmFycmF5IGluXG4gIGxldCBwZXJmb3JtYW5jZV9vYnNlcnZlcl9pbml0IDogcGVyZm9ybWFuY2VPYnNlcnZlckluaXQgSnMudCA9IEpzLlVuc2FmZS5vYmogW3x8XSBpblxuICBsZXQgKCkgPSBwZXJmb3JtYW5jZV9vYnNlcnZlcl9pbml0IyMuZW50cnlUeXBlcyA6PSBlbnRyeV90eXBlcyBpblxuICBsZXQgb2JzID0gbmV3JWpzIHBlcmZvcm1hbmNlT2JzZXJ2ZXIgKEpzLndyYXBfY2FsbGJhY2sgZikgaW5cbiAgbGV0ICgpID0gb2JzIyNvYnNlcnZlIHBlcmZvcm1hbmNlX29ic2VydmVyX2luaXQgaW5cbiAgb2JzXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDE1IFN0w6lwaGFuZSBMZWdyYW5kXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBtdXRhdGlvbk9ic2VydmVySW5pdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjaGlsZExpc3QgOiBib29sIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXR0cmlidXRlcyA6IGJvb2wgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjaGFyYWN0ZXJEYXRhIDogYm9vbCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN1YnRyZWUgOiBib29sIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXR0cmlidXRlT2xkVmFsdWUgOiBib29sIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2hhcmFjdGVyRGF0YU9sZFZhbHVlIDogYm9vbCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF0dHJpYnV0ZUZpbHRlciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMud3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgbXV0YXRpb25SZWNvcmQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgX3R5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDogRG9tLm5vZGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWRkZWROb2RlcyA6IERvbS5ub2RlIERvbS5ub2RlTGlzdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZW1vdmVkTm9kZXMgOiBEb20ubm9kZSBEb20ubm9kZUxpc3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHJldmlvdXNTaWJsaW5nIDogRG9tLm5vZGUgSnMudCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5leHRTaWJsaW5nIDogRG9tLm5vZGUgSnMudCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF0dHJpYnV0ZU5hbWUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF0dHJpYnV0ZU5hbWVzcGFjZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2xkVmFsdWUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBtdXRhdGlvbk9ic2VydmVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG9ic2VydmUgOiAjRG9tLm5vZGUgSnMudCAtPiBtdXRhdGlvbk9ic2VydmVySW5pdCBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIGRpc2Nvbm5lY3QgOiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCB0YWtlUmVjb3JkcyA6IG11dGF0aW9uUmVjb3JkIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgZW1wdHlfbXV0YXRpb25fb2JzZXJ2ZXJfaW5pdCAoKSA6IG11dGF0aW9uT2JzZXJ2ZXJJbml0IEpzLnQgPSBKcy5VbnNhZmUub2JqIFt8fF1cblxubGV0IG11dGF0aW9uT2JzZXJ2ZXIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX011dGF0aW9uT2JzZXJ2ZXJcblxubGV0IGlzX3N1cHBvcnRlZCAoKSA9IEpzLk9wdGRlZi50ZXN0IG11dGF0aW9uT2JzZXJ2ZXJcblxubGV0IG11dGF0aW9uT2JzZXJ2ZXIgOlxuICAgICggICAobXV0YXRpb25SZWNvcmQgSnMudCBKcy5qc19hcnJheSBKcy50IC0+IG11dGF0aW9uT2JzZXJ2ZXIgSnMudCAtPiB1bml0KSBKcy5jYWxsYmFja1xuICAgICAtPiBtdXRhdGlvbk9ic2VydmVyIEpzLnQpXG4gICAgSnMuY29uc3RyID1cbiAgbXV0YXRpb25PYnNlcnZlclxuXG5sZXQgb2JzZXJ2ZVxuICAgIH4obm9kZSA6ICNEb20ubm9kZSBKcy50KVxuICAgIH4oZiA6IG11dGF0aW9uUmVjb3JkIEpzLnQgSnMuanNfYXJyYXkgSnMudCAtPiBtdXRhdGlvbk9ic2VydmVyIEpzLnQgLT4gdW5pdClcbiAgICA/KGNoaWxkX2xpc3QgOiBib29sIG9wdGlvbilcbiAgICA/KGF0dHJpYnV0ZXMgOiBib29sIG9wdGlvbilcbiAgICA/KGNoYXJhY3Rlcl9kYXRhIDogYm9vbCBvcHRpb24pXG4gICAgPyhzdWJ0cmVlIDogYm9vbCBvcHRpb24pXG4gICAgPyhhdHRyaWJ1dGVfb2xkX3ZhbHVlIDogYm9vbCBvcHRpb24pXG4gICAgPyhjaGFyYWN0ZXJfZGF0YV9vbGRfdmFsdWUgOiBib29sIG9wdGlvbilcbiAgICA/KGF0dHJpYnV0ZV9maWx0ZXIgOiBKcy5qc19zdHJpbmcgSnMudCBsaXN0IG9wdGlvbilcbiAgICAoKSA6IG11dGF0aW9uT2JzZXJ2ZXIgSnMudCA9XG4gIGxldCBvcHRfaXRlciB4IGYgPVxuICAgIG1hdGNoIHggd2l0aFxuICAgIHwgTm9uZSAtPiAoKVxuICAgIHwgU29tZSB4IC0+IGYgeFxuICBpblxuICBsZXQgb2JzID0gbmV3JWpzIG11dGF0aW9uT2JzZXJ2ZXIgKEpzLndyYXBfY2FsbGJhY2sgZikgaW5cbiAgbGV0IGNmZyA9IGVtcHR5X211dGF0aW9uX29ic2VydmVyX2luaXQgKCkgaW5cbiAgbGV0ICgpID0gb3B0X2l0ZXIgY2hpbGRfbGlzdCAoZnVuIHYgLT4gY2ZnIyMuY2hpbGRMaXN0IDo9IHYpIGluXG4gIGxldCAoKSA9IG9wdF9pdGVyIGF0dHJpYnV0ZXMgKGZ1biB2IC0+IGNmZyMjLmF0dHJpYnV0ZXMgOj0gdikgaW5cbiAgbGV0ICgpID0gb3B0X2l0ZXIgY2hhcmFjdGVyX2RhdGEgKGZ1biB2IC0+IGNmZyMjLmNoYXJhY3RlckRhdGEgOj0gdikgaW5cbiAgbGV0ICgpID0gb3B0X2l0ZXIgc3VidHJlZSAoZnVuIHYgLT4gY2ZnIyMuc3VidHJlZSA6PSB2KSBpblxuICBsZXQgKCkgPSBvcHRfaXRlciBhdHRyaWJ1dGVfb2xkX3ZhbHVlIChmdW4gdiAtPiBjZmcjIy5hdHRyaWJ1dGVPbGRWYWx1ZSA6PSB2KSBpblxuICBsZXQgKCkgPVxuICAgIG9wdF9pdGVyIGNoYXJhY3Rlcl9kYXRhX29sZF92YWx1ZSAoZnVuIHYgLT4gY2ZnIyMuY2hhcmFjdGVyRGF0YU9sZFZhbHVlIDo9IHYpXG4gIGluXG4gIGxldCAoKSA9XG4gICAgb3B0X2l0ZXIgYXR0cmlidXRlX2ZpbHRlciAoZnVuIGwgLT5cbiAgICAgICAgY2ZnIyMuYXR0cmlidXRlRmlsdGVyIDo9IEpzLmFycmF5IChBcnJheS5vZl9saXN0IGwpKVxuICBpblxuICBsZXQgKCkgPSBvYnMjI29ic2VydmUgbm9kZSBjZmcgaW5cbiAgb2JzXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IFBpZXJyZSBDaGFtYmFydCAyMDEyLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbnR5cGUgJ2EgdCA9IDwgPiBKcy50XG5cbmxldCBvYmogPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX09iamVjdFxuXG5sZXQgY3JlYXRlICgpIDogJ2EgdCA9IG5ldyVqcyBvYmpcblxubGV0IGFkZCAodCA6ICdhIHQpIChrIDogSnMuanNfc3RyaW5nIEpzLnQpICh2IDogJ2EpID1cbiAgKCogJ18nIGlzIGFkZGVkIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIG9iamVjdHMgbWV0aG9kcyAqKVxuICBKcy5VbnNhZmUuc2V0IHQgKGsjI2NvbmNhdCAoSnMuc3RyaW5nIFwiX1wiKSkgdlxuXG5sZXQgcmVtb3ZlICh0IDogJ2EgdCkgKGsgOiBKcy5qc19zdHJpbmcgSnMudCkgPVxuICBKcy5VbnNhZmUuZGVsZXRlIHQgKGsjI2NvbmNhdCAoSnMuc3RyaW5nIFwiX1wiKSlcblxubGV0IGZpbmQgKHQgOiAnYSB0KSAoayA6IEpzLmpzX3N0cmluZyBKcy50KSA6ICdhIEpzLk9wdGRlZi50ID1cbiAgSnMuVW5zYWZlLmdldCB0IChrIyNjb25jYXQgKEpzLnN0cmluZyBcIl9cIikpXG5cbmxldCBrZXlzICh0IDogJ2EgdCkgOiBKcy5qc19zdHJpbmcgSnMudCBsaXN0ID1cbiAgbGV0IGtleV9hcnJheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnQgPVxuICAgIEpzLlVuc2FmZS5nbG9iYWwjIy5fT2JqZWN0IyNrZXlzIHRcbiAgaW5cbiAgbGV0IHJlcyA9IHJlZiBbXSBpblxuICBmb3IgaSA9IDAgdG8gcHJlZCBrZXlfYXJyYXkjIy5sZW5ndGggZG9cbiAgICBsZXQga2V5ID1cbiAgICAgIEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCBrZXlfYXJyYXkgaSkgKGZ1biAoKSAtPiBmYWlsd2l0aCBcIkpzdGFibGUua2V5c1wiKVxuICAgIGluXG4gICAgcmVzIDo9IGtleSMjc3Vic3RyaW5nIDAgKHByZWQga2V5IyMubGVuZ3RoKSA6OiAhcmVzXG4gIGRvbmU7XG4gIExpc3QucmV2ICFyZXNcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgR3LDqWdvaXJlIEhlbnJ5IDIwMTAuXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIGpzb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgcGFyc2UgOiAnYS4ganNfc3RyaW5nIHQgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIHBhcnNlXyA6XG4gICAgICAnYSAnYiAnYyAnZC4ganNfc3RyaW5nIHQgLT4gKCdiIHQsIGpzX3N0cmluZyB0IC0+ICdjIC0+ICdkKSBtZXRoX2NhbGxiYWNrIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBzdHJpbmdpZnkgOiAnYS4gJ2EgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHN0cmluZ2lmeV8gOlxuICAgICAgJ2EgJ2IgJ2MgJ2QuICdhIC0+ICgnYiwganNfc3RyaW5nIHQgLT4gJ2MgLT4gJ2QpIG1ldGhfY2FsbGJhY2sgLT4ganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxubGV0IGpzb24gOiBqc29uIEpzLnQgPSBVbnNhZmUuZ2xvYmFsIyMuX0pTT05cblxubGV0IGlucHV0X3Jldml2ZXIgPVxuICBsZXQgcmV2aXZlciBfdGhpcyBfa2V5ICh2YWx1ZSA6IFVuc2FmZS5hbnkpIDogT2JqLnQgPVxuICAgIGlmIHR5cGVvZiB2YWx1ZSA9PSBzdHJpbmcgXCJzdHJpbmdcIlxuICAgIHRoZW4gT2JqLnJlcHIgKHRvX2J5dGVzdHJpbmcgKFVuc2FmZS5jb2VyY2UgdmFsdWUpKVxuICAgIGVsc2UgaWYgaW5zdGFuY2VvZiB2YWx1ZSBKcy5hcnJheV9lbXB0eVxuICAgICAgICAgICAgJiYgKFVuc2FmZS5jb2VyY2UgdmFsdWUpIyMubGVuZ3RoID09IDRcbiAgICAgICAgICAgICYmIFVuc2FmZS5nZXQgdmFsdWUgMCA9PSAyNTVcbiAgICB0aGVuXG4gICAgICBPYmoucmVwclxuICAgICAgICAoSnNvb19ydW50aW1lLkludDY0LmNyZWF0ZV9pbnQ2NF9sb19taV9oaVxuICAgICAgICAgICAoVW5zYWZlLmdldCB2YWx1ZSAxKVxuICAgICAgICAgICAoVW5zYWZlLmdldCB2YWx1ZSAyKVxuICAgICAgICAgICAoVW5zYWZlLmdldCB2YWx1ZSAzKSlcbiAgICBlbHNlIE9iai5yZXByIHZhbHVlXG4gIGluXG4gIHdyYXBfbWV0aF9jYWxsYmFjayByZXZpdmVyXG5cbmxldCB1bnNhZmVfaW5wdXQgcyA9IGpzb24jI3BhcnNlXyBzIGlucHV0X3Jldml2ZXJcblxuY2xhc3MgdHlwZSBvYmogPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29uc3RydWN0b3IgOiAnYS4gJ2EgY29uc3RyIEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBtbEludDY0X2NvbnN0ciA9XG4gIGxldCBkdW1teV9pbnQ2NCA9IDFMIGluXG4gIGxldCBkdW1teV9vYmogOiBvYmogdCA9IE9iai5tYWdpYyBkdW1teV9pbnQ2NCBpblxuICBkdW1teV9vYmojIy5jb25zdHJ1Y3RvclxuXG5sZXQgb3V0cHV0X3Jldml2ZXIgX2tleSAodmFsdWUgOiBVbnNhZmUuYW55KSA6IE9iai50ID1cbiAgaWYgT2JqLnRhZyAoT2JqLnJlcHIgdmFsdWUpID0gT2JqLnN0cmluZ190YWdcbiAgdGhlbiBPYmoucmVwciAoYnl0ZXN0cmluZyAoT2JqLm1hZ2ljIHZhbHVlIDogc3RyaW5nKSlcbiAgZWxzZSBpZiBpbnN0YW5jZW9mIHZhbHVlIG1sSW50NjRfY29uc3RyXG4gIHRoZW5cbiAgICBsZXQgdmFsdWUgPSBVbnNhZmUuY29lcmNlIHZhbHVlIGluXG4gICAgT2JqLnJlcHIgKGFycmF5IFt8IDI1NTsgdmFsdWUjIy5sbzsgdmFsdWUjIy5taTsgdmFsdWUjIy5oaSB8XSlcbiAgZWxzZSBPYmoucmVwciB2YWx1ZVxuXG5sZXQgb3V0cHV0IG9iaiA9IGpzb24jI3N0cmluZ2lmeV8gb2JqIChKcy53cmFwX2NhbGxiYWNrIG91dHB1dF9yZXZpdmVyKVxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMCBSYXBoYcOrbCBQcm91c3RcbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuISBJbXBvcnRcblxubW9kdWxlIENvbG9yID0gc3RydWN0XG4gICgqIFRoZSB0eXBlIG9mIENTUyBjb2xvcnMuIEZpcnN0IGJ5IG5hbWUgYW5kIHRoZW4gYnkgY29uc3RydWN0b3IuICopXG4gIHR5cGUgbmFtZSA9XG4gICAgfCBBbGljZWJsdWVcbiAgICB8IEFudGlxdWV3aGl0ZVxuICAgIHwgQXF1YVxuICAgIHwgQXF1YW1hcmluZVxuICAgIHwgQXp1cmVcbiAgICB8IEJlaWdlXG4gICAgfCBCaXNxdWVcbiAgICB8IEJsYWNrXG4gICAgfCBCbGFuY2hlZGFsbW9uZFxuICAgIHwgQmx1ZVxuICAgIHwgQmx1ZXZpb2xldFxuICAgIHwgQnJvd25cbiAgICB8IEJ1cmx5d29vZFxuICAgIHwgQ2FkZXRibHVlXG4gICAgfCBDaGFydHJldXNlXG4gICAgfCBDaG9jb2xhdGVcbiAgICB8IENvcmFsXG4gICAgfCBDb3JuZmxvd2VyYmx1ZVxuICAgIHwgQ29ybnNpbGtcbiAgICB8IENyaW1zb25cbiAgICB8IEN5YW5cbiAgICB8IERhcmtibHVlXG4gICAgfCBEYXJrY3lhblxuICAgIHwgRGFya2dvbGRlbnJvZFxuICAgIHwgRGFya2dyYXlcbiAgICB8IERhcmtncmVlblxuICAgIHwgRGFya2dyZXlcbiAgICB8IERhcmtraGFraVxuICAgIHwgRGFya21hZ2VudGFcbiAgICB8IERhcmtvbGl2ZWdyZWVuXG4gICAgfCBEYXJrb3JhbmdlXG4gICAgfCBEYXJrb3JjaGlkXG4gICAgfCBEYXJrcmVkXG4gICAgfCBEYXJrc2FsbW9uXG4gICAgfCBEYXJrc2VhZ3JlZW5cbiAgICB8IERhcmtzbGF0ZWJsdWVcbiAgICB8IERhcmtzbGF0ZWdyYXlcbiAgICB8IERhcmtzbGF0ZWdyZXlcbiAgICB8IERhcmt0dXJxdW9pc2VcbiAgICB8IERhcmt2aW9sZXRcbiAgICB8IERlZXBwaW5rXG4gICAgfCBEZWVwc2t5Ymx1ZVxuICAgIHwgRGltZ3JheVxuICAgIHwgRGltZ3JleVxuICAgIHwgRG9kZ2VyYmx1ZVxuICAgIHwgRmlyZWJyaWNrXG4gICAgfCBGbG9yYWx3aGl0ZVxuICAgIHwgRm9yZXN0Z3JlZW5cbiAgICB8IEZ1Y2hzaWFcbiAgICB8IEdhaW5zYm9yb1xuICAgIHwgR2hvc3R3aGl0ZVxuICAgIHwgR29sZFxuICAgIHwgR29sZGVucm9kXG4gICAgfCBHcmF5XG4gICAgfCBHcmV5XG4gICAgfCBHcmVlblxuICAgIHwgR3JlZW55ZWxsb3dcbiAgICB8IEhvbmV5ZGV3XG4gICAgfCBIb3RwaW5rXG4gICAgfCBJbmRpYW5yZWRcbiAgICB8IEluZGlnb1xuICAgIHwgSXZvcnlcbiAgICB8IEtoYWtpXG4gICAgfCBMYXZlbmRlclxuICAgIHwgTGF2ZW5kZXJibHVzaFxuICAgIHwgTGF3bmdyZWVuXG4gICAgfCBMZW1vbmNoaWZmb25cbiAgICB8IExpZ2h0Ymx1ZVxuICAgIHwgTGlnaHRjb3JhbFxuICAgIHwgTGlnaHRjeWFuXG4gICAgfCBMaWdodGdvbGRlbnJvZHllbGxvd1xuICAgIHwgTGlnaHRncmF5XG4gICAgfCBMaWdodGdyZWVuXG4gICAgfCBMaWdodGdyZXlcbiAgICB8IExpZ2h0cGlua1xuICAgIHwgTGlnaHRzYWxtb25cbiAgICB8IExpZ2h0c2VhZ3JlZW5cbiAgICB8IExpZ2h0c2t5Ymx1ZVxuICAgIHwgTGlnaHRzbGF0ZWdyYXlcbiAgICB8IExpZ2h0c2xhdGVncmV5XG4gICAgfCBMaWdodHN0ZWVsYmx1ZVxuICAgIHwgTGlnaHR5ZWxsb3dcbiAgICB8IExpbWVcbiAgICB8IExpbWVncmVlblxuICAgIHwgTGluZW5cbiAgICB8IE1hZ2VudGFcbiAgICB8IE1hcm9vblxuICAgIHwgTWVkaXVtYXF1YW1hcmluZVxuICAgIHwgTWVkaXVtYmx1ZVxuICAgIHwgTWVkaXVtb3JjaGlkXG4gICAgfCBNZWRpdW1wdXJwbGVcbiAgICB8IE1lZGl1bXNlYWdyZWVuXG4gICAgfCBNZWRpdW1zbGF0ZWJsdWVcbiAgICB8IE1lZGl1bXNwcmluZ2dyZWVuXG4gICAgfCBNZWRpdW10dXJxdW9pc2VcbiAgICB8IE1lZGl1bXZpb2xldHJlZFxuICAgIHwgTWlkbmlnaHRibHVlXG4gICAgfCBNaW50Y3JlYW1cbiAgICB8IE1pc3R5cm9zZVxuICAgIHwgTW9jY2FzaW5cbiAgICB8IE5hdmFqb3doaXRlXG4gICAgfCBOYXZ5XG4gICAgfCBPbGRsYWNlXG4gICAgfCBPbGl2ZVxuICAgIHwgT2xpdmVkcmFiXG4gICAgfCBPcmFuZ2VcbiAgICB8IE9yYW5nZXJlZFxuICAgIHwgT3JjaGlkXG4gICAgfCBQYWxlZ29sZGVucm9kXG4gICAgfCBQYWxlZ3JlZW5cbiAgICB8IFBhbGV0dXJxdW9pc2VcbiAgICB8IFBhbGV2aW9sZXRyZWRcbiAgICB8IFBhcGF5YXdoaXBcbiAgICB8IFBlYWNocHVmZlxuICAgIHwgUGVydVxuICAgIHwgUGlua1xuICAgIHwgUGx1bVxuICAgIHwgUG93ZGVyYmx1ZVxuICAgIHwgUHVycGxlXG4gICAgfCBSZWRcbiAgICB8IFJvc3licm93blxuICAgIHwgUm95YWxibHVlXG4gICAgfCBTYWRkbGVicm93blxuICAgIHwgU2FsbW9uXG4gICAgfCBTYW5keWJyb3duXG4gICAgfCBTZWFncmVlblxuICAgIHwgU2Vhc2hlbGxcbiAgICB8IFNpZW5uYVxuICAgIHwgU2lsdmVyXG4gICAgfCBTa3libHVlXG4gICAgfCBTbGF0ZWJsdWVcbiAgICB8IFNsYXRlZ3JheVxuICAgIHwgU2xhdGVncmV5XG4gICAgfCBTbm93XG4gICAgfCBTcHJpbmdncmVlblxuICAgIHwgU3RlZWxibHVlXG4gICAgfCBUYW5cbiAgICB8IFRlYWxcbiAgICB8IFRoaXN0bGVcbiAgICB8IFRvbWF0b1xuICAgIHwgVHVycXVvaXNlXG4gICAgfCBWaW9sZXRcbiAgICB8IFdoZWF0XG4gICAgfCBXaGl0ZVxuICAgIHwgV2hpdGVzbW9rZVxuICAgIHwgWWVsbG93XG4gICAgfCBZZWxsb3dncmVlblxuXG4gIGxldCBzdHJpbmdfb2ZfbmFtZSA9IGZ1bmN0aW9uXG4gICAgfCBBbGljZWJsdWUgLT4gXCJhbGljZWJsdWVcIlxuICAgIHwgQW50aXF1ZXdoaXRlIC0+IFwiYW50aXF1ZXdoaXRlXCJcbiAgICB8IEFxdWEgLT4gXCJhcXVhXCJcbiAgICB8IEFxdWFtYXJpbmUgLT4gXCJhcXVhbWFyaW5lXCJcbiAgICB8IEF6dXJlIC0+IFwiYXp1cmVcIlxuICAgIHwgQmVpZ2UgLT4gXCJiZWlnZVwiXG4gICAgfCBCaXNxdWUgLT4gXCJiaXNxdWVcIlxuICAgIHwgQmxhY2sgLT4gXCJibGFja1wiXG4gICAgfCBCbGFuY2hlZGFsbW9uZCAtPiBcImJsYW5jaGVkYWxtb25kXCJcbiAgICB8IEJsdWUgLT4gXCJibHVlXCJcbiAgICB8IEJsdWV2aW9sZXQgLT4gXCJibHVldmlvbGV0XCJcbiAgICB8IEJyb3duIC0+IFwiYnJvd25cIlxuICAgIHwgQnVybHl3b29kIC0+IFwiYnVybHl3b29kXCJcbiAgICB8IENhZGV0Ymx1ZSAtPiBcImNhZGV0Ymx1ZVwiXG4gICAgfCBDaGFydHJldXNlIC0+IFwiY2hhcnRyZXVzZVwiXG4gICAgfCBDaG9jb2xhdGUgLT4gXCJjaG9jb2xhdGVcIlxuICAgIHwgQ29yYWwgLT4gXCJjb3JhbFwiXG4gICAgfCBDb3JuZmxvd2VyYmx1ZSAtPiBcImNvcm5mbG93ZXJibHVlXCJcbiAgICB8IENvcm5zaWxrIC0+IFwiY29ybnNpbGtcIlxuICAgIHwgQ3JpbXNvbiAtPiBcImNyaW1zb25cIlxuICAgIHwgQ3lhbiAtPiBcImN5YW5cIlxuICAgIHwgRGFya2JsdWUgLT4gXCJkYXJrYmx1ZVwiXG4gICAgfCBEYXJrY3lhbiAtPiBcImRhcmtjeWFuXCJcbiAgICB8IERhcmtnb2xkZW5yb2QgLT4gXCJkYXJrZ29sZGVucm9kXCJcbiAgICB8IERhcmtncmF5IC0+IFwiZGFya2dyYXlcIlxuICAgIHwgRGFya2dyZWVuIC0+IFwiZGFya2dyZWVuXCJcbiAgICB8IERhcmtncmV5IC0+IFwiZGFya2dyZXlcIlxuICAgIHwgRGFya2toYWtpIC0+IFwiZGFya2toYWtpXCJcbiAgICB8IERhcmttYWdlbnRhIC0+IFwiZGFya21hZ2VudGFcIlxuICAgIHwgRGFya29saXZlZ3JlZW4gLT4gXCJkYXJrb2xpdmVncmVlblwiXG4gICAgfCBEYXJrb3JhbmdlIC0+IFwiZGFya29yYW5nZVwiXG4gICAgfCBEYXJrb3JjaGlkIC0+IFwiZGFya29yY2hpZFwiXG4gICAgfCBEYXJrcmVkIC0+IFwiZGFya3JlZFwiXG4gICAgfCBEYXJrc2FsbW9uIC0+IFwiZGFya3NhbG1vblwiXG4gICAgfCBEYXJrc2VhZ3JlZW4gLT4gXCJkYXJrc2VhZ3JlZW5cIlxuICAgIHwgRGFya3NsYXRlYmx1ZSAtPiBcImRhcmtzbGF0ZWJsdWVcIlxuICAgIHwgRGFya3NsYXRlZ3JheSAtPiBcImRhcmtzbGF0ZWdyYXlcIlxuICAgIHwgRGFya3NsYXRlZ3JleSAtPiBcImRhcmtzbGF0ZWdyZXlcIlxuICAgIHwgRGFya3R1cnF1b2lzZSAtPiBcImRhcmt0dXJxdW9pc2VcIlxuICAgIHwgRGFya3Zpb2xldCAtPiBcImRhcmt2aW9sZXRcIlxuICAgIHwgRGVlcHBpbmsgLT4gXCJkZWVwcGlua1wiXG4gICAgfCBEZWVwc2t5Ymx1ZSAtPiBcImRlZXBza3libHVlXCJcbiAgICB8IERpbWdyYXkgLT4gXCJkaW1ncmF5XCJcbiAgICB8IERpbWdyZXkgLT4gXCJkaW1ncmV5XCJcbiAgICB8IERvZGdlcmJsdWUgLT4gXCJkb2RnZXJibHVlXCJcbiAgICB8IEZpcmVicmljayAtPiBcImZpcmVicmlja1wiXG4gICAgfCBGbG9yYWx3aGl0ZSAtPiBcImZsb3JhbHdoaXRlXCJcbiAgICB8IEZvcmVzdGdyZWVuIC0+IFwiZm9yZXN0Z3JlZW5cIlxuICAgIHwgRnVjaHNpYSAtPiBcImZ1Y2hzaWFcIlxuICAgIHwgR2FpbnNib3JvIC0+IFwiZ2FpbnNib3JvXCJcbiAgICB8IEdob3N0d2hpdGUgLT4gXCJnaG9zdHdoaXRlXCJcbiAgICB8IEdvbGQgLT4gXCJnb2xkXCJcbiAgICB8IEdvbGRlbnJvZCAtPiBcImdvbGRlbnJvZFwiXG4gICAgfCBHcmF5IC0+IFwiZ3JheVwiXG4gICAgfCBHcmVlbiAtPiBcImdyZWVuXCJcbiAgICB8IEdyZWVueWVsbG93IC0+IFwiZ3JlZW55ZWxsb3dcIlxuICAgIHwgR3JleSAtPiBcImdyZXlcIlxuICAgIHwgSG9uZXlkZXcgLT4gXCJob25leWRld1wiXG4gICAgfCBIb3RwaW5rIC0+IFwiaG90cGlua1wiXG4gICAgfCBJbmRpYW5yZWQgLT4gXCJpbmRpYW5yZWRcIlxuICAgIHwgSW5kaWdvIC0+IFwiaW5kaWdvXCJcbiAgICB8IEl2b3J5IC0+IFwiaXZvcnlcIlxuICAgIHwgS2hha2kgLT4gXCJraGFraVwiXG4gICAgfCBMYXZlbmRlciAtPiBcImxhdmVuZGVyXCJcbiAgICB8IExhdmVuZGVyYmx1c2ggLT4gXCJsYXZlbmRlcmJsdXNoXCJcbiAgICB8IExhd25ncmVlbiAtPiBcImxhd25ncmVlblwiXG4gICAgfCBMZW1vbmNoaWZmb24gLT4gXCJsZW1vbmNoaWZmb25cIlxuICAgIHwgTGlnaHRibHVlIC0+IFwibGlnaHRibHVlXCJcbiAgICB8IExpZ2h0Y29yYWwgLT4gXCJsaWdodGNvcmFsXCJcbiAgICB8IExpZ2h0Y3lhbiAtPiBcImxpZ2h0Y3lhblwiXG4gICAgfCBMaWdodGdvbGRlbnJvZHllbGxvdyAtPiBcImxpZ2h0Z29sZGVucm9keWVsbG93XCJcbiAgICB8IExpZ2h0Z3JheSAtPiBcImxpZ2h0Z3JheVwiXG4gICAgfCBMaWdodGdyZWVuIC0+IFwibGlnaHRncmVlblwiXG4gICAgfCBMaWdodGdyZXkgLT4gXCJsaWdodGdyZXlcIlxuICAgIHwgTGlnaHRwaW5rIC0+IFwibGlnaHRwaW5rXCJcbiAgICB8IExpZ2h0c2FsbW9uIC0+IFwibGlnaHRzYWxtb25cIlxuICAgIHwgTGlnaHRzZWFncmVlbiAtPiBcImxpZ2h0c2VhZ3JlZW5cIlxuICAgIHwgTGlnaHRza3libHVlIC0+IFwibGlnaHRza3libHVlXCJcbiAgICB8IExpZ2h0c2xhdGVncmF5IC0+IFwibGlnaHRzbGF0ZWdyYXlcIlxuICAgIHwgTGlnaHRzbGF0ZWdyZXkgLT4gXCJsaWdodHNsYXRlZ3JleVwiXG4gICAgfCBMaWdodHN0ZWVsYmx1ZSAtPiBcImxpZ2h0c3RlZWxibHVlXCJcbiAgICB8IExpZ2h0eWVsbG93IC0+IFwibGlnaHR5ZWxsb3dcIlxuICAgIHwgTGltZSAtPiBcImxpbWVcIlxuICAgIHwgTGltZWdyZWVuIC0+IFwibGltZWdyZWVuXCJcbiAgICB8IExpbmVuIC0+IFwibGluZW5cIlxuICAgIHwgTWFnZW50YSAtPiBcIm1hZ2VudGFcIlxuICAgIHwgTWFyb29uIC0+IFwibWFyb29uXCJcbiAgICB8IE1lZGl1bWFxdWFtYXJpbmUgLT4gXCJtZWRpdW1hcXVhbWFyaW5lXCJcbiAgICB8IE1lZGl1bWJsdWUgLT4gXCJtZWRpdW1ibHVlXCJcbiAgICB8IE1lZGl1bW9yY2hpZCAtPiBcIm1lZGl1bW9yY2hpZFwiXG4gICAgfCBNZWRpdW1wdXJwbGUgLT4gXCJtZWRpdW1wdXJwbGVcIlxuICAgIHwgTWVkaXVtc2VhZ3JlZW4gLT4gXCJtZWRpdW1zZWFncmVlblwiXG4gICAgfCBNZWRpdW1zbGF0ZWJsdWUgLT4gXCJtZWRpdW1zbGF0ZWJsdWVcIlxuICAgIHwgTWVkaXVtc3ByaW5nZ3JlZW4gLT4gXCJtZWRpdW1zcHJpbmdncmVlblwiXG4gICAgfCBNZWRpdW10dXJxdW9pc2UgLT4gXCJtZWRpdW10dXJxdW9pc2VcIlxuICAgIHwgTWVkaXVtdmlvbGV0cmVkIC0+IFwibWVkaXVtdmlvbGV0cmVkXCJcbiAgICB8IE1pZG5pZ2h0Ymx1ZSAtPiBcIm1pZG5pZ2h0Ymx1ZVwiXG4gICAgfCBNaW50Y3JlYW0gLT4gXCJtaW50Y3JlYW1cIlxuICAgIHwgTWlzdHlyb3NlIC0+IFwibWlzdHlyb3NlXCJcbiAgICB8IE1vY2Nhc2luIC0+IFwibW9jY2FzaW5cIlxuICAgIHwgTmF2YWpvd2hpdGUgLT4gXCJuYXZham93aGl0ZVwiXG4gICAgfCBOYXZ5IC0+IFwibmF2eVwiXG4gICAgfCBPbGRsYWNlIC0+IFwib2xkbGFjZVwiXG4gICAgfCBPbGl2ZSAtPiBcIm9saXZlXCJcbiAgICB8IE9saXZlZHJhYiAtPiBcIm9saXZlZHJhYlwiXG4gICAgfCBPcmFuZ2UgLT4gXCJvcmFuZ2VcIlxuICAgIHwgT3JhbmdlcmVkIC0+IFwib3JhbmdlcmVkXCJcbiAgICB8IE9yY2hpZCAtPiBcIm9yY2hpZFwiXG4gICAgfCBQYWxlZ29sZGVucm9kIC0+IFwicGFsZWdvbGRlbnJvZFwiXG4gICAgfCBQYWxlZ3JlZW4gLT4gXCJwYWxlZ3JlZW5cIlxuICAgIHwgUGFsZXR1cnF1b2lzZSAtPiBcInBhbGV0dXJxdW9pc2VcIlxuICAgIHwgUGFsZXZpb2xldHJlZCAtPiBcInBhbGV2aW9sZXRyZWRcIlxuICAgIHwgUGFwYXlhd2hpcCAtPiBcInBhcGF5YXdoaXBcIlxuICAgIHwgUGVhY2hwdWZmIC0+IFwicGVhY2hwdWZmXCJcbiAgICB8IFBlcnUgLT4gXCJwZXJ1XCJcbiAgICB8IFBpbmsgLT4gXCJwaW5rXCJcbiAgICB8IFBsdW0gLT4gXCJwbHVtXCJcbiAgICB8IFBvd2RlcmJsdWUgLT4gXCJwb3dkZXJibHVlXCJcbiAgICB8IFB1cnBsZSAtPiBcInB1cnBsZVwiXG4gICAgfCBSZWQgLT4gXCJyZWRcIlxuICAgIHwgUm9zeWJyb3duIC0+IFwicm9zeWJyb3duXCJcbiAgICB8IFJveWFsYmx1ZSAtPiBcInJveWFsYmx1ZVwiXG4gICAgfCBTYWRkbGVicm93biAtPiBcInNhZGRsZWJyb3duXCJcbiAgICB8IFNhbG1vbiAtPiBcInNhbG1vblwiXG4gICAgfCBTYW5keWJyb3duIC0+IFwic2FuZHlicm93blwiXG4gICAgfCBTZWFncmVlbiAtPiBcInNlYWdyZWVuXCJcbiAgICB8IFNlYXNoZWxsIC0+IFwic2Vhc2hlbGxcIlxuICAgIHwgU2llbm5hIC0+IFwic2llbm5hXCJcbiAgICB8IFNpbHZlciAtPiBcInNpbHZlclwiXG4gICAgfCBTa3libHVlIC0+IFwic2t5Ymx1ZVwiXG4gICAgfCBTbGF0ZWJsdWUgLT4gXCJzbGF0ZWJsdWVcIlxuICAgIHwgU2xhdGVncmF5IC0+IFwic2xhdGVncmF5XCJcbiAgICB8IFNsYXRlZ3JleSAtPiBcInNsYXRlZ3JleVwiXG4gICAgfCBTbm93IC0+IFwic25vd1wiXG4gICAgfCBTcHJpbmdncmVlbiAtPiBcInNwcmluZ2dyZWVuXCJcbiAgICB8IFN0ZWVsYmx1ZSAtPiBcInN0ZWVsYmx1ZVwiXG4gICAgfCBUYW4gLT4gXCJ0YW5cIlxuICAgIHwgVGVhbCAtPiBcInRlYWxcIlxuICAgIHwgVGhpc3RsZSAtPiBcInRoaXN0bGVcIlxuICAgIHwgVG9tYXRvIC0+IFwidG9tYXRvXCJcbiAgICB8IFR1cnF1b2lzZSAtPiBcInR1cnF1b2lzZVwiXG4gICAgfCBWaW9sZXQgLT4gXCJ2aW9sZXRcIlxuICAgIHwgV2hlYXQgLT4gXCJ3aGVhdFwiXG4gICAgfCBXaGl0ZSAtPiBcIndoaXRlXCJcbiAgICB8IFdoaXRlc21va2UgLT4gXCJ3aGl0ZXNtb2tlXCJcbiAgICB8IFllbGxvdyAtPiBcInllbGxvd1wiXG4gICAgfCBZZWxsb3dncmVlbiAtPiBcInllbGxvd2dyZWVuXCJcblxuICBsZXQgbmFtZV9vZl9zdHJpbmcgPSBmdW5jdGlvblxuICAgIHwgXCJhbGljZWJsdWVcIiAtPiBBbGljZWJsdWVcbiAgICB8IFwiYW50aXF1ZXdoaXRlXCIgLT4gQW50aXF1ZXdoaXRlXG4gICAgfCBcImFxdWFcIiAtPiBBcXVhXG4gICAgfCBcImFxdWFtYXJpbmVcIiAtPiBBcXVhbWFyaW5lXG4gICAgfCBcImF6dXJlXCIgLT4gQXp1cmVcbiAgICB8IFwiYmVpZ2VcIiAtPiBCZWlnZVxuICAgIHwgXCJiaXNxdWVcIiAtPiBCaXNxdWVcbiAgICB8IFwiYmxhY2tcIiAtPiBCbGFja1xuICAgIHwgXCJibGFuY2hlZGFsbW9uZFwiIC0+IEJsYW5jaGVkYWxtb25kXG4gICAgfCBcImJsdWVcIiAtPiBCbHVlXG4gICAgfCBcImJsdWV2aW9sZXRcIiAtPiBCbHVldmlvbGV0XG4gICAgfCBcImJyb3duXCIgLT4gQnJvd25cbiAgICB8IFwiYnVybHl3b29kXCIgLT4gQnVybHl3b29kXG4gICAgfCBcImNhZGV0Ymx1ZVwiIC0+IENhZGV0Ymx1ZVxuICAgIHwgXCJjaGFydHJldXNlXCIgLT4gQ2hhcnRyZXVzZVxuICAgIHwgXCJjaG9jb2xhdGVcIiAtPiBDaG9jb2xhdGVcbiAgICB8IFwiY29yYWxcIiAtPiBDb3JhbFxuICAgIHwgXCJjb3JuZmxvd2VyYmx1ZVwiIC0+IENvcm5mbG93ZXJibHVlXG4gICAgfCBcImNvcm5zaWxrXCIgLT4gQ29ybnNpbGtcbiAgICB8IFwiY3JpbXNvblwiIC0+IENyaW1zb25cbiAgICB8IFwiY3lhblwiIC0+IEN5YW5cbiAgICB8IFwiZGFya2JsdWVcIiAtPiBEYXJrYmx1ZVxuICAgIHwgXCJkYXJrY3lhblwiIC0+IERhcmtjeWFuXG4gICAgfCBcImRhcmtnb2xkZW5yb2RcIiAtPiBEYXJrZ29sZGVucm9kXG4gICAgfCBcImRhcmtncmF5XCIgLT4gRGFya2dyYXlcbiAgICB8IFwiZGFya2dyZWVuXCIgLT4gRGFya2dyZWVuXG4gICAgfCBcImRhcmtncmV5XCIgLT4gRGFya2dyZXlcbiAgICB8IFwiZGFya2toYWtpXCIgLT4gRGFya2toYWtpXG4gICAgfCBcImRhcmttYWdlbnRhXCIgLT4gRGFya21hZ2VudGFcbiAgICB8IFwiZGFya29saXZlZ3JlZW5cIiAtPiBEYXJrb2xpdmVncmVlblxuICAgIHwgXCJkYXJrb3JhbmdlXCIgLT4gRGFya29yYW5nZVxuICAgIHwgXCJkYXJrb3JjaGlkXCIgLT4gRGFya29yY2hpZFxuICAgIHwgXCJkYXJrcmVkXCIgLT4gRGFya3JlZFxuICAgIHwgXCJkYXJrc2FsbW9uXCIgLT4gRGFya3NhbG1vblxuICAgIHwgXCJkYXJrc2VhZ3JlZW5cIiAtPiBEYXJrc2VhZ3JlZW5cbiAgICB8IFwiZGFya3NsYXRlYmx1ZVwiIC0+IERhcmtzbGF0ZWJsdWVcbiAgICB8IFwiZGFya3NsYXRlZ3JheVwiIC0+IERhcmtzbGF0ZWdyYXlcbiAgICB8IFwiZGFya3NsYXRlZ3JleVwiIC0+IERhcmtzbGF0ZWdyZXlcbiAgICB8IFwiZGFya3R1cnF1b2lzZVwiIC0+IERhcmt0dXJxdW9pc2VcbiAgICB8IFwiZGFya3Zpb2xldFwiIC0+IERhcmt2aW9sZXRcbiAgICB8IFwiZGVlcHBpbmtcIiAtPiBEZWVwcGlua1xuICAgIHwgXCJkZWVwc2t5Ymx1ZVwiIC0+IERlZXBza3libHVlXG4gICAgfCBcImRpbWdyYXlcIiAtPiBEaW1ncmF5XG4gICAgfCBcImRpbWdyZXlcIiAtPiBEaW1ncmV5XG4gICAgfCBcImRvZGdlcmJsdWVcIiAtPiBEb2RnZXJibHVlXG4gICAgfCBcImZpcmVicmlja1wiIC0+IEZpcmVicmlja1xuICAgIHwgXCJmbG9yYWx3aGl0ZVwiIC0+IEZsb3JhbHdoaXRlXG4gICAgfCBcImZvcmVzdGdyZWVuXCIgLT4gRm9yZXN0Z3JlZW5cbiAgICB8IFwiZnVjaHNpYVwiIC0+IEZ1Y2hzaWFcbiAgICB8IFwiZ2FpbnNib3JvXCIgLT4gR2FpbnNib3JvXG4gICAgfCBcImdob3N0d2hpdGVcIiAtPiBHaG9zdHdoaXRlXG4gICAgfCBcImdvbGRcIiAtPiBHb2xkXG4gICAgfCBcImdvbGRlbnJvZFwiIC0+IEdvbGRlbnJvZFxuICAgIHwgXCJncmF5XCIgLT4gR3JheVxuICAgIHwgXCJncmVlblwiIC0+IEdyZWVuXG4gICAgfCBcImdyZWVueWVsbG93XCIgLT4gR3JlZW55ZWxsb3dcbiAgICB8IFwiZ3JleVwiIC0+IEdyZXlcbiAgICB8IFwiaG9uZXlkZXdcIiAtPiBIb25leWRld1xuICAgIHwgXCJob3RwaW5rXCIgLT4gSG90cGlua1xuICAgIHwgXCJpbmRpYW5yZWRcIiAtPiBJbmRpYW5yZWRcbiAgICB8IFwiaW5kaWdvXCIgLT4gSW5kaWdvXG4gICAgfCBcIml2b3J5XCIgLT4gSXZvcnlcbiAgICB8IFwia2hha2lcIiAtPiBLaGFraVxuICAgIHwgXCJsYXZlbmRlclwiIC0+IExhdmVuZGVyXG4gICAgfCBcImxhdmVuZGVyYmx1c2hcIiAtPiBMYXZlbmRlcmJsdXNoXG4gICAgfCBcImxhd25ncmVlblwiIC0+IExhd25ncmVlblxuICAgIHwgXCJsZW1vbmNoaWZmb25cIiAtPiBMZW1vbmNoaWZmb25cbiAgICB8IFwibGlnaHRibHVlXCIgLT4gTGlnaHRibHVlXG4gICAgfCBcImxpZ2h0Y29yYWxcIiAtPiBMaWdodGNvcmFsXG4gICAgfCBcImxpZ2h0Y3lhblwiIC0+IExpZ2h0Y3lhblxuICAgIHwgXCJsaWdodGdvbGRlbnJvZHllbGxvd1wiIC0+IExpZ2h0Z29sZGVucm9keWVsbG93XG4gICAgfCBcImxpZ2h0Z3JheVwiIC0+IExpZ2h0Z3JheVxuICAgIHwgXCJsaWdodGdyZWVuXCIgLT4gTGlnaHRncmVlblxuICAgIHwgXCJsaWdodGdyZXlcIiAtPiBMaWdodGdyZXlcbiAgICB8IFwibGlnaHRwaW5rXCIgLT4gTGlnaHRwaW5rXG4gICAgfCBcImxpZ2h0c2FsbW9uXCIgLT4gTGlnaHRzYWxtb25cbiAgICB8IFwibGlnaHRzZWFncmVlblwiIC0+IExpZ2h0c2VhZ3JlZW5cbiAgICB8IFwibGlnaHRza3libHVlXCIgLT4gTGlnaHRza3libHVlXG4gICAgfCBcImxpZ2h0c2xhdGVncmF5XCIgLT4gTGlnaHRzbGF0ZWdyYXlcbiAgICB8IFwibGlnaHRzbGF0ZWdyZXlcIiAtPiBMaWdodHNsYXRlZ3JleVxuICAgIHwgXCJsaWdodHN0ZWVsYmx1ZVwiIC0+IExpZ2h0c3RlZWxibHVlXG4gICAgfCBcImxpZ2h0eWVsbG93XCIgLT4gTGlnaHR5ZWxsb3dcbiAgICB8IFwibGltZVwiIC0+IExpbWVcbiAgICB8IFwibGltZWdyZWVuXCIgLT4gTGltZWdyZWVuXG4gICAgfCBcImxpbmVuXCIgLT4gTGluZW5cbiAgICB8IFwibWFnZW50YVwiIC0+IE1hZ2VudGFcbiAgICB8IFwibWFyb29uXCIgLT4gTWFyb29uXG4gICAgfCBcIm1lZGl1bWFxdWFtYXJpbmVcIiAtPiBNZWRpdW1hcXVhbWFyaW5lXG4gICAgfCBcIm1lZGl1bWJsdWVcIiAtPiBNZWRpdW1ibHVlXG4gICAgfCBcIm1lZGl1bW9yY2hpZFwiIC0+IE1lZGl1bW9yY2hpZFxuICAgIHwgXCJtZWRpdW1wdXJwbGVcIiAtPiBNZWRpdW1wdXJwbGVcbiAgICB8IFwibWVkaXVtc2VhZ3JlZW5cIiAtPiBNZWRpdW1zZWFncmVlblxuICAgIHwgXCJtZWRpdW1zbGF0ZWJsdWVcIiAtPiBNZWRpdW1zbGF0ZWJsdWVcbiAgICB8IFwibWVkaXVtc3ByaW5nZ3JlZW5cIiAtPiBNZWRpdW1zcHJpbmdncmVlblxuICAgIHwgXCJtZWRpdW10dXJxdW9pc2VcIiAtPiBNZWRpdW10dXJxdW9pc2VcbiAgICB8IFwibWVkaXVtdmlvbGV0cmVkXCIgLT4gTWVkaXVtdmlvbGV0cmVkXG4gICAgfCBcIm1pZG5pZ2h0Ymx1ZVwiIC0+IE1pZG5pZ2h0Ymx1ZVxuICAgIHwgXCJtaW50Y3JlYW1cIiAtPiBNaW50Y3JlYW1cbiAgICB8IFwibWlzdHlyb3NlXCIgLT4gTWlzdHlyb3NlXG4gICAgfCBcIm1vY2Nhc2luXCIgLT4gTW9jY2FzaW5cbiAgICB8IFwibmF2YWpvd2hpdGVcIiAtPiBOYXZham93aGl0ZVxuICAgIHwgXCJuYXZ5XCIgLT4gTmF2eVxuICAgIHwgXCJvbGRsYWNlXCIgLT4gT2xkbGFjZVxuICAgIHwgXCJvbGl2ZVwiIC0+IE9saXZlXG4gICAgfCBcIm9saXZlZHJhYlwiIC0+IE9saXZlZHJhYlxuICAgIHwgXCJvcmFuZ2VcIiAtPiBPcmFuZ2VcbiAgICB8IFwib3JhbmdlcmVkXCIgLT4gT3JhbmdlcmVkXG4gICAgfCBcIm9yY2hpZFwiIC0+IE9yY2hpZFxuICAgIHwgXCJwYWxlZ29sZGVucm9kXCIgLT4gUGFsZWdvbGRlbnJvZFxuICAgIHwgXCJwYWxlZ3JlZW5cIiAtPiBQYWxlZ3JlZW5cbiAgICB8IFwicGFsZXR1cnF1b2lzZVwiIC0+IFBhbGV0dXJxdW9pc2VcbiAgICB8IFwicGFsZXZpb2xldHJlZFwiIC0+IFBhbGV2aW9sZXRyZWRcbiAgICB8IFwicGFwYXlhd2hpcFwiIC0+IFBhcGF5YXdoaXBcbiAgICB8IFwicGVhY2hwdWZmXCIgLT4gUGVhY2hwdWZmXG4gICAgfCBcInBlcnVcIiAtPiBQZXJ1XG4gICAgfCBcInBpbmtcIiAtPiBQaW5rXG4gICAgfCBcInBsdW1cIiAtPiBQbHVtXG4gICAgfCBcInBvd2RlcmJsdWVcIiAtPiBQb3dkZXJibHVlXG4gICAgfCBcInB1cnBsZVwiIC0+IFB1cnBsZVxuICAgIHwgXCJyZWRcIiAtPiBSZWRcbiAgICB8IFwicm9zeWJyb3duXCIgLT4gUm9zeWJyb3duXG4gICAgfCBcInJveWFsYmx1ZVwiIC0+IFJveWFsYmx1ZVxuICAgIHwgXCJzYWRkbGVicm93blwiIC0+IFNhZGRsZWJyb3duXG4gICAgfCBcInNhbG1vblwiIC0+IFNhbG1vblxuICAgIHwgXCJzYW5keWJyb3duXCIgLT4gU2FuZHlicm93blxuICAgIHwgXCJzZWFncmVlblwiIC0+IFNlYWdyZWVuXG4gICAgfCBcInNlYXNoZWxsXCIgLT4gU2Vhc2hlbGxcbiAgICB8IFwic2llbm5hXCIgLT4gU2llbm5hXG4gICAgfCBcInNpbHZlclwiIC0+IFNpbHZlclxuICAgIHwgXCJza3libHVlXCIgLT4gU2t5Ymx1ZVxuICAgIHwgXCJzbGF0ZWJsdWVcIiAtPiBTbGF0ZWJsdWVcbiAgICB8IFwic2xhdGVncmF5XCIgLT4gU2xhdGVncmF5XG4gICAgfCBcInNsYXRlZ3JleVwiIC0+IFNsYXRlZ3JleVxuICAgIHwgXCJzbm93XCIgLT4gU25vd1xuICAgIHwgXCJzcHJpbmdncmVlblwiIC0+IFNwcmluZ2dyZWVuXG4gICAgfCBcInN0ZWVsYmx1ZVwiIC0+IFN0ZWVsYmx1ZVxuICAgIHwgXCJ0YW5cIiAtPiBUYW5cbiAgICB8IFwidGVhbFwiIC0+IFRlYWxcbiAgICB8IFwidGhpc3RsZVwiIC0+IFRoaXN0bGVcbiAgICB8IFwidG9tYXRvXCIgLT4gVG9tYXRvXG4gICAgfCBcInR1cnF1b2lzZVwiIC0+IFR1cnF1b2lzZVxuICAgIHwgXCJ2aW9sZXRcIiAtPiBWaW9sZXRcbiAgICB8IFwid2hlYXRcIiAtPiBXaGVhdFxuICAgIHwgXCJ3aGl0ZVwiIC0+IFdoaXRlXG4gICAgfCBcIndoaXRlc21va2VcIiAtPiBXaGl0ZXNtb2tlXG4gICAgfCBcInllbGxvd1wiIC0+IFllbGxvd1xuICAgIHwgXCJ5ZWxsb3dncmVlblwiIC0+IFllbGxvd2dyZWVuXG4gICAgfCBzIC0+IHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChzIF4gXCIgaXMgbm90IGEgdmFsaWQgY29sb3IgbmFtZVwiKSlcblxuICBsZXQgcmdiX29mX25hbWUgPSBmdW5jdGlvblxuICAgIHwgQWxpY2VibHVlIC0+IDI0MCwgMjQ4LCAyNTVcbiAgICB8IEFudGlxdWV3aGl0ZSAtPiAyNTAsIDIzNSwgMjE1XG4gICAgfCBBcXVhIC0+IDAsIDI1NSwgMjU1XG4gICAgfCBBcXVhbWFyaW5lIC0+IDEyNywgMjU1LCAyMTJcbiAgICB8IEF6dXJlIC0+IDI0MCwgMjU1LCAyNTVcbiAgICB8IEJlaWdlIC0+IDI0NSwgMjQ1LCAyMjBcbiAgICB8IEJpc3F1ZSAtPiAyNTUsIDIyOCwgMTk2XG4gICAgfCBCbGFjayAtPiAwLCAwLCAwXG4gICAgfCBCbGFuY2hlZGFsbW9uZCAtPiAyNTUsIDIzNSwgMjA1XG4gICAgfCBCbHVlIC0+IDAsIDAsIDI1NVxuICAgIHwgQmx1ZXZpb2xldCAtPiAxMzgsIDQzLCAyMjZcbiAgICB8IEJyb3duIC0+IDE2NSwgNDIsIDQyXG4gICAgfCBCdXJseXdvb2QgLT4gMjIyLCAxODQsIDEzNVxuICAgIHwgQ2FkZXRibHVlIC0+IDk1LCAxNTgsIDE2MFxuICAgIHwgQ2hhcnRyZXVzZSAtPiAxMjcsIDI1NSwgMFxuICAgIHwgQ2hvY29sYXRlIC0+IDIxMCwgMTA1LCAzMFxuICAgIHwgQ29yYWwgLT4gMjU1LCAxMjcsIDgwXG4gICAgfCBDb3JuZmxvd2VyYmx1ZSAtPiAxMDAsIDE0OSwgMjM3XG4gICAgfCBDb3Juc2lsayAtPiAyNTUsIDI0OCwgMjIwXG4gICAgfCBDcmltc29uIC0+IDIyMCwgMjAsIDYwXG4gICAgfCBDeWFuIC0+IDAsIDI1NSwgMjU1XG4gICAgfCBEYXJrYmx1ZSAtPiAwLCAwLCAxMzlcbiAgICB8IERhcmtjeWFuIC0+IDAsIDEzOSwgMTM5XG4gICAgfCBEYXJrZ29sZGVucm9kIC0+IDE4NCwgMTM0LCAxMVxuICAgIHwgRGFya2dyYXkgLT4gMTY5LCAxNjksIDE2OVxuICAgIHwgRGFya2dyZWVuIC0+IDAsIDEwMCwgMFxuICAgIHwgRGFya2dyZXkgLT4gMTY5LCAxNjksIDE2OVxuICAgIHwgRGFya2toYWtpIC0+IDE4OSwgMTgzLCAxMDdcbiAgICB8IERhcmttYWdlbnRhIC0+IDEzOSwgMCwgMTM5XG4gICAgfCBEYXJrb2xpdmVncmVlbiAtPiA4NSwgMTA3LCA0N1xuICAgIHwgRGFya29yYW5nZSAtPiAyNTUsIDE0MCwgMFxuICAgIHwgRGFya29yY2hpZCAtPiAxNTMsIDUwLCAyMDRcbiAgICB8IERhcmtyZWQgLT4gMTM5LCAwLCAwXG4gICAgfCBEYXJrc2FsbW9uIC0+IDIzMywgMTUwLCAxMjJcbiAgICB8IERhcmtzZWFncmVlbiAtPiAxNDMsIDE4OCwgMTQzXG4gICAgfCBEYXJrc2xhdGVibHVlIC0+IDcyLCA2MSwgMTM5XG4gICAgfCBEYXJrc2xhdGVncmF5IC0+IDQ3LCA3OSwgNzlcbiAgICB8IERhcmtzbGF0ZWdyZXkgLT4gNDcsIDc5LCA3OVxuICAgIHwgRGFya3R1cnF1b2lzZSAtPiAwLCAyMDYsIDIwOVxuICAgIHwgRGFya3Zpb2xldCAtPiAxNDgsIDAsIDIxMVxuICAgIHwgRGVlcHBpbmsgLT4gMjU1LCAyMCwgMTQ3XG4gICAgfCBEZWVwc2t5Ymx1ZSAtPiAwLCAxOTEsIDI1NVxuICAgIHwgRGltZ3JheSAtPiAxMDUsIDEwNSwgMTA1XG4gICAgfCBEaW1ncmV5IC0+IDEwNSwgMTA1LCAxMDVcbiAgICB8IERvZGdlcmJsdWUgLT4gMzAsIDE0NCwgMjU1XG4gICAgfCBGaXJlYnJpY2sgLT4gMTc4LCAzNCwgMzRcbiAgICB8IEZsb3JhbHdoaXRlIC0+IDI1NSwgMjUwLCAyNDBcbiAgICB8IEZvcmVzdGdyZWVuIC0+IDM0LCAxMzksIDM0XG4gICAgfCBGdWNoc2lhIC0+IDI1NSwgMCwgMjU1XG4gICAgfCBHYWluc2Jvcm8gLT4gMjIwLCAyMjAsIDIyMFxuICAgIHwgR2hvc3R3aGl0ZSAtPiAyNDgsIDI0OCwgMjU1XG4gICAgfCBHb2xkIC0+IDI1NSwgMjE1LCAwXG4gICAgfCBHb2xkZW5yb2QgLT4gMjE4LCAxNjUsIDMyXG4gICAgfCBHcmF5IC0+IDEyOCwgMTI4LCAxMjhcbiAgICB8IEdyZWVuIC0+IDAsIDEyOCwgMFxuICAgIHwgR3JlZW55ZWxsb3cgLT4gMTczLCAyNTUsIDQ3XG4gICAgfCBHcmV5IC0+IDEyOCwgMTI4LCAxMjhcbiAgICB8IEhvbmV5ZGV3IC0+IDI0MCwgMjU1LCAyNDBcbiAgICB8IEhvdHBpbmsgLT4gMjU1LCAxMDUsIDE4MFxuICAgIHwgSW5kaWFucmVkIC0+IDIwNSwgOTIsIDkyXG4gICAgfCBJbmRpZ28gLT4gNzUsIDAsIDEzMFxuICAgIHwgSXZvcnkgLT4gMjU1LCAyNTUsIDI0MFxuICAgIHwgS2hha2kgLT4gMjQwLCAyMzAsIDE0MFxuICAgIHwgTGF2ZW5kZXIgLT4gMjMwLCAyMzAsIDI1MFxuICAgIHwgTGF2ZW5kZXJibHVzaCAtPiAyNTUsIDI0MCwgMjQ1XG4gICAgfCBMYXduZ3JlZW4gLT4gMTI0LCAyNTIsIDBcbiAgICB8IExlbW9uY2hpZmZvbiAtPiAyNTUsIDI1MCwgMjA1XG4gICAgfCBMaWdodGJsdWUgLT4gMTczLCAyMTYsIDIzMFxuICAgIHwgTGlnaHRjb3JhbCAtPiAyNDAsIDEyOCwgMTI4XG4gICAgfCBMaWdodGN5YW4gLT4gMjI0LCAyNTUsIDI1NVxuICAgIHwgTGlnaHRnb2xkZW5yb2R5ZWxsb3cgLT4gMjUwLCAyNTAsIDIxMFxuICAgIHwgTGlnaHRncmF5IC0+IDIxMSwgMjExLCAyMTFcbiAgICB8IExpZ2h0Z3JlZW4gLT4gMTQ0LCAyMzgsIDE0NFxuICAgIHwgTGlnaHRncmV5IC0+IDIxMSwgMjExLCAyMTFcbiAgICB8IExpZ2h0cGluayAtPiAyNTUsIDE4MiwgMTkzXG4gICAgfCBMaWdodHNhbG1vbiAtPiAyNTUsIDE2MCwgMTIyXG4gICAgfCBMaWdodHNlYWdyZWVuIC0+IDMyLCAxNzgsIDE3MFxuICAgIHwgTGlnaHRza3libHVlIC0+IDEzNSwgMjA2LCAyNTBcbiAgICB8IExpZ2h0c2xhdGVncmF5IC0+IDExOSwgMTM2LCAxNTNcbiAgICB8IExpZ2h0c2xhdGVncmV5IC0+IDExOSwgMTM2LCAxNTNcbiAgICB8IExpZ2h0c3RlZWxibHVlIC0+IDE3NiwgMTk2LCAyMjJcbiAgICB8IExpZ2h0eWVsbG93IC0+IDI1NSwgMjU1LCAyMjRcbiAgICB8IExpbWUgLT4gMCwgMjU1LCAwXG4gICAgfCBMaW1lZ3JlZW4gLT4gNTAsIDIwNSwgNTBcbiAgICB8IExpbmVuIC0+IDI1MCwgMjQwLCAyMzBcbiAgICB8IE1hZ2VudGEgLT4gMjU1LCAwLCAyNTVcbiAgICB8IE1hcm9vbiAtPiAxMjgsIDAsIDBcbiAgICB8IE1lZGl1bWFxdWFtYXJpbmUgLT4gMTAyLCAyMDUsIDE3MFxuICAgIHwgTWVkaXVtYmx1ZSAtPiAwLCAwLCAyMDVcbiAgICB8IE1lZGl1bW9yY2hpZCAtPiAxODYsIDg1LCAyMTFcbiAgICB8IE1lZGl1bXB1cnBsZSAtPiAxNDcsIDExMiwgMjE5XG4gICAgfCBNZWRpdW1zZWFncmVlbiAtPiA2MCwgMTc5LCAxMTNcbiAgICB8IE1lZGl1bXNsYXRlYmx1ZSAtPiAxMjMsIDEwNCwgMjM4XG4gICAgfCBNZWRpdW1zcHJpbmdncmVlbiAtPiAwLCAyNTAsIDE1NFxuICAgIHwgTWVkaXVtdHVycXVvaXNlIC0+IDcyLCAyMDksIDIwNFxuICAgIHwgTWVkaXVtdmlvbGV0cmVkIC0+IDE5OSwgMjEsIDEzM1xuICAgIHwgTWlkbmlnaHRibHVlIC0+IDI1LCAyNSwgMTEyXG4gICAgfCBNaW50Y3JlYW0gLT4gMjQ1LCAyNTUsIDI1MFxuICAgIHwgTWlzdHlyb3NlIC0+IDI1NSwgMjI4LCAyMjVcbiAgICB8IE1vY2Nhc2luIC0+IDI1NSwgMjI4LCAxODFcbiAgICB8IE5hdmFqb3doaXRlIC0+IDI1NSwgMjIyLCAxNzNcbiAgICB8IE5hdnkgLT4gMCwgMCwgMTI4XG4gICAgfCBPbGRsYWNlIC0+IDI1MywgMjQ1LCAyMzBcbiAgICB8IE9saXZlIC0+IDEyOCwgMTI4LCAwXG4gICAgfCBPbGl2ZWRyYWIgLT4gMTA3LCAxNDIsIDM1XG4gICAgfCBPcmFuZ2UgLT4gMjU1LCAxNjUsIDBcbiAgICB8IE9yYW5nZXJlZCAtPiAyNTUsIDY5LCAwXG4gICAgfCBPcmNoaWQgLT4gMjE4LCAxMTIsIDIxNFxuICAgIHwgUGFsZWdvbGRlbnJvZCAtPiAyMzgsIDIzMiwgMTcwXG4gICAgfCBQYWxlZ3JlZW4gLT4gMTUyLCAyNTEsIDE1MlxuICAgIHwgUGFsZXR1cnF1b2lzZSAtPiAxNzUsIDIzOCwgMjM4XG4gICAgfCBQYWxldmlvbGV0cmVkIC0+IDIxOSwgMTEyLCAxNDdcbiAgICB8IFBhcGF5YXdoaXAgLT4gMjU1LCAyMzksIDIxM1xuICAgIHwgUGVhY2hwdWZmIC0+IDI1NSwgMjE4LCAxODVcbiAgICB8IFBlcnUgLT4gMjA1LCAxMzMsIDYzXG4gICAgfCBQaW5rIC0+IDI1NSwgMTkyLCAyMDNcbiAgICB8IFBsdW0gLT4gMjIxLCAxNjAsIDIyMVxuICAgIHwgUG93ZGVyYmx1ZSAtPiAxNzYsIDIyNCwgMjMwXG4gICAgfCBQdXJwbGUgLT4gMTI4LCAwLCAxMjhcbiAgICB8IFJlZCAtPiAyNTUsIDAsIDBcbiAgICB8IFJvc3licm93biAtPiAxODgsIDE0MywgMTQzXG4gICAgfCBSb3lhbGJsdWUgLT4gNjUsIDEwNSwgMjI1XG4gICAgfCBTYWRkbGVicm93biAtPiAxMzksIDY5LCAxOVxuICAgIHwgU2FsbW9uIC0+IDI1MCwgMTI4LCAxMTRcbiAgICB8IFNhbmR5YnJvd24gLT4gMjQ0LCAxNjQsIDk2XG4gICAgfCBTZWFncmVlbiAtPiA0NiwgMTM5LCA4N1xuICAgIHwgU2Vhc2hlbGwgLT4gMjU1LCAyNDUsIDIzOFxuICAgIHwgU2llbm5hIC0+IDE2MCwgODIsIDQ1XG4gICAgfCBTaWx2ZXIgLT4gMTkyLCAxOTIsIDE5MlxuICAgIHwgU2t5Ymx1ZSAtPiAxMzUsIDIwNiwgMjM1XG4gICAgfCBTbGF0ZWJsdWUgLT4gMTA2LCA5MCwgMjA1XG4gICAgfCBTbGF0ZWdyYXkgLT4gMTEyLCAxMjgsIDE0NFxuICAgIHwgU2xhdGVncmV5IC0+IDExMiwgMTI4LCAxNDRcbiAgICB8IFNub3cgLT4gMjU1LCAyNTAsIDI1MFxuICAgIHwgU3ByaW5nZ3JlZW4gLT4gMCwgMjU1LCAxMjdcbiAgICB8IFN0ZWVsYmx1ZSAtPiA3MCwgMTMwLCAxODBcbiAgICB8IFRhbiAtPiAyMTAsIDE4MCwgMTQwXG4gICAgfCBUZWFsIC0+IDAsIDEyOCwgMTI4XG4gICAgfCBUaGlzdGxlIC0+IDIxNiwgMTkxLCAyMTZcbiAgICB8IFRvbWF0byAtPiAyNTUsIDk5LCA3MVxuICAgIHwgVHVycXVvaXNlIC0+IDY0LCAyMjQsIDIwOFxuICAgIHwgVmlvbGV0IC0+IDIzOCwgMTMwLCAyMzhcbiAgICB8IFdoZWF0IC0+IDI0NSwgMjIyLCAxNzlcbiAgICB8IFdoaXRlIC0+IDI1NSwgMjU1LCAyNTVcbiAgICB8IFdoaXRlc21va2UgLT4gMjQ1LCAyNDUsIDI0NVxuICAgIHwgWWVsbG93IC0+IDI1NSwgMjU1LCAwXG4gICAgfCBZZWxsb3dncmVlbiAtPiAxNTQsIDIwNSwgNTBcblxuICB0eXBlIHQgPVxuICAgIHwgTmFtZSBvZiBuYW1lXG4gICAgfCBSR0Igb2YgKGludCAqIGludCAqIGludClcbiAgICAgICAgKCoqIFJlZCwgR3JlZW4gYW5kIEJsdWUgdmFsdWVzLiBDbGlwcGVkIHRvIFtbMC4uMjU1XV0gYnkgbW9zdCAoQWxsPylcbiAgICAgICAgICAgIGJyb3dzZXJzLiAqKVxuICAgIHwgUkdCX3BlcmNlbnQgb2YgKGludCAqIGludCAqIGludClcbiAgICAgICAgKCoqIFJHQiBjaGFubmVscyBhcmUgc3BlY2lmaWVkIGFzIGEgcGVyY2VudGFnZSBvZiB0aGVpciBtYXhpbWFsIHZhbHVlLiAqKVxuICAgIHwgUkdCQSBvZiAoaW50ICogaW50ICogaW50ICogZmxvYXQpXG4gICAgICAgICgqKiBTYW1lIGFzIFJHQiB3aXRoIGFkZGl0aW9uYWwgdHJhbnNwYXJlbmN5IGFyZ3VtZW50LiBPcGFjaXR5IHNob3VsZCBiZSBpblxuICAgICAgICAgICAgWzAuXSAoY29tcGxldGVseSB0cmFuc3BhcmVudCkgYW5kIFsxLl0gKGNvbXBsZXRlbHkgb3BhcXVlKS4gKilcbiAgICB8IFJHQkFfcGVyY2VudCBvZiAoaW50ICogaW50ICogaW50ICogZmxvYXQpXG4gICAgICAgICgqKiBSR0IgY2hhbm5lbHMgc3BlY2lmaWVkIGFzIHBlcmNlbnRhZ2Ugb2YgdGhlaXIgbWF4aW1hbCB2YWx1ZS4gQWxwaGFcbiAgICAgICAgICAgIGNoYW5uZWwgKG9wYWNpdHkpIGlzIHN0aWxsIGEgWzAuXSB0byBbMS5dIGZsb2F0LiAqKVxuICAgIHwgSFNMIG9mIChpbnQgKiBpbnQgKiBpbnQpXG4gICAgICAgICgqKiBIdWUsIFNhdHVyYXRpb24gYW5kIExpZ2h0bmVzcyB2YWx1ZXMuIEh1ZSBpcyBhbiBhbmdsZSBpbiBkZWdyZWUgKGluXG4gICAgICAgICAgICBpbnRlcnZhbCBbWzAuLjM2MFtdKS4gU2F0dXJhdGlvbiBpcyBhIHBlcmNlbnRhZ2UgKFtbMC4uMTAwXV0pIHdpdGggWzBdXG4gICAgICAgICAgICBiZWluZyBjb2xvcmxlc3MuIExpZ2h0bmVzcyBpcyBhbHNvIGEgcGVyY2VudGFnZSAoW1swLi4xMDBdXSkgd2l0aCBbMF1cbiAgICAgICAgICAgIGJlaW5nIGJsYWNrLiAqKVxuICAgIHwgSFNMQSBvZiAoaW50ICogaW50ICogaW50ICogZmxvYXQpXG4gICAgICAgICgqKiBTYW1lIGFzIEhTTCB3aXRoIGFuIG9wYWNpdHkgYXJndW1lbnQgYmV0d2VlbiBbMC5dIGFuZCBbMS5dLiAqKVxuXG4gIGxldCByZ2IgP2EgciBnIGIgPVxuICAgIG1hdGNoIGEgd2l0aFxuICAgIHwgTm9uZSAtPiBSR0IgKHIsIGcsIGIpXG4gICAgfCBTb21lIGEgLT4gUkdCQSAociwgZywgYiwgYSlcblxuICBsZXQgaHNsID9hIGggcyBsID1cbiAgICBtYXRjaCBhIHdpdGhcbiAgICB8IE5vbmUgLT4gSFNMIChoLCBzLCBsKVxuICAgIHwgU29tZSBhIC0+IEhTTEEgKGgsIHMsIGwsIGEpXG5cbiAgbGV0IHN0cmluZ19vZl90ID0gZnVuY3Rpb25cbiAgICB8IE5hbWUgbiAtPiBzdHJpbmdfb2ZfbmFtZSBuXG4gICAgfCBSR0IgKHIsIGcsIGIpIC0+IFByaW50Zi5zcHJpbnRmIFwicmdiKCVkLCVkLCVkKVwiIHIgZyBiXG4gICAgfCBSR0JfcGVyY2VudCAociwgZywgYikgLT4gUHJpbnRmLnNwcmludGYgXCJyZ2IoJWQlJSwlZCUlLCVkJSUpXCIgciBnIGJcbiAgICB8IFJHQkEgKHIsIGcsIGIsIGEpIC0+IFByaW50Zi5zcHJpbnRmIFwicmdiYSglZCwlZCwlZCwlZilcIiByIGcgYiBhXG4gICAgfCBSR0JBX3BlcmNlbnQgKHIsIGcsIGIsIGEpIC0+IFByaW50Zi5zcHJpbnRmIFwicmdiYSglZCUlLCVkJSUsJWQlJSwlZilcIiByIGcgYiBhXG4gICAgfCBIU0wgKGgsIHMsIGwpIC0+IFByaW50Zi5zcHJpbnRmIFwiaHNsKCVkLCVkJSUsJWQlJSlcIiBoIHMgbFxuICAgIHwgSFNMQSAoaCwgcywgbCwgYSkgLT4gUHJpbnRmLnNwcmludGYgXCJoc2xhKCVkLCVkJSUsJWQlJSwlZilcIiBoIHMgbCBhXG5cbiAgbGV0IGhleF9vZl9yZ2IgKHJlZCwgZ3JlZW4sIGJsdWUpID1cbiAgICBsZXQgaW5fcmFuZ2UgaSA9XG4gICAgICBpZiBpIDwgMCB8fCBpID4gMjU1XG4gICAgICB0aGVuIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChzdHJpbmdfb2ZfaW50IGkgXiBcIiBpcyBvdXQgb2YgdmFsaWQgcmFuZ2VcIikpXG4gICAgaW5cbiAgICBpbl9yYW5nZSByZWQ7XG4gICAgaW5fcmFuZ2UgZ3JlZW47XG4gICAgaW5fcmFuZ2UgYmx1ZTtcbiAgICBQcmludGYuc3ByaW50ZiBcIiMlMDJYJTAyWCUwMlhcIiByZWQgZ3JlZW4gYmx1ZVxuXG4gICgqIE9jYW1sIDwtPiBKUyByZXByZXNlbnRhdGlvbiAqKVxuICB0eXBlIGpzX3QgPSBKcy5qc19zdHJpbmcgSnMudFxuXG4gICgqIFRPRE8/IGJlIG1vcmUgcmVzdHJpY3RpdmUsIGNsaXAgdmFsdWVzIGludG8gc3RhbmRhcmQgcmFuZ2UgKilcbiAgbGV0IGpzX3Rfb2ZfanNfc3RyaW5nIHMgPVxuICAgIGxldCByZ2JfcmUgPVxuICAgICAgbmV3JWpzIEpzLnJlZ0V4cCAoSnMuYnl0ZXN0cmluZyBcIl5yZ2JcXFxcKFxcXFxzKlxcXFxkKixcXFxccypcXFxcZCosXFxcXHMqXFxcXGQqXFxcXCkkXCIpXG4gICAgaW5cbiAgICBsZXQgcmdiX3BjdF9yZSA9XG4gICAgICBuZXclanMgSnMucmVnRXhwIChKcy5ieXRlc3RyaW5nIFwiXnJnYlxcXFwoXFxcXHMqXFxcXGQqJSxcXFxccypcXFxcZColLFxcXFxzKlxcXFxkKiVcXFxcKSRcIilcbiAgICBpblxuICAgIGxldCByZ2JhX3JlID1cbiAgICAgIG5ldyVqcyBKcy5yZWdFeHBcbiAgICAgICAgKEpzLmJ5dGVzdHJpbmcgXCJecmdiYVxcXFwoXFxcXHMqXFxcXGQqLFxcXFxzKlxcXFxkKixcXFxccypcXFxcZCosXFxcXGQqXFxcXC4/XFxcXGQqXFxcXCkkXCIpXG4gICAgaW5cbiAgICBsZXQgcmdiYV9wY3RfcmUgPVxuICAgICAgbmV3JWpzIEpzLnJlZ0V4cFxuICAgICAgICAoSnMuYnl0ZXN0cmluZyBcIl5yZ2JhXFxcXChcXFxccypcXFxcZColLFxcXFxzKlxcXFxkKiUsXFxcXHMqXFxcXGQqJSxcXFxcZCpcXFxcLj9cXFxcZCpcXFxcKSRcIilcbiAgICBpblxuICAgIGxldCBoc2xfcmUgPVxuICAgICAgbmV3JWpzIEpzLnJlZ0V4cCAoSnMuYnl0ZXN0cmluZyBcIl5oc2xcXFxcKFxcXFxzKlxcXFxkKixcXFxccypcXFxcZColLFxcXFxzKlxcXFxkKiVcXFxcKSRcIilcbiAgICBpblxuICAgIGxldCBoc2xhX3JlID1cbiAgICAgIG5ldyVqcyBKcy5yZWdFeHBcbiAgICAgICAgKEpzLmJ5dGVzdHJpbmcgXCJeaHNsYVxcXFwoXFxcXHMqXFxcXGQqLFxcXFxzKlxcXFxkKiUsXFxcXHMqXFxcXGQqJSxcXFxcZCpcXFxcLj9cXFxcZCpcXFxcKSRcIilcbiAgICBpblxuICAgIGlmIEpzLnRvX2Jvb2wgKHJnYl9yZSMjdGVzdCBzKVxuICAgICAgIHx8IEpzLnRvX2Jvb2wgKHJnYmFfcmUjI3Rlc3QgcylcbiAgICAgICB8fCBKcy50b19ib29sIChyZ2JfcGN0X3JlIyN0ZXN0IHMpXG4gICAgICAgfHwgSnMudG9fYm9vbCAocmdiYV9wY3RfcmUjI3Rlc3QgcylcbiAgICAgICB8fCBKcy50b19ib29sIChoc2xfcmUjI3Rlc3QgcylcbiAgICAgICB8fCBKcy50b19ib29sIChoc2xhX3JlIyN0ZXN0IHMpXG4gICAgdGhlbiBzXG4gICAgZWxzZSBpZiBMaXN0Lm1lbVxuICAgICAgICAgICAgICAoSnMudG9fc3RyaW5nIHMpXG4gICAgICAgICAgICAgIFsgXCJhbGljZWJsdWVcIlxuICAgICAgICAgICAgICA7IFwiYW50aXF1ZXdoaXRlXCJcbiAgICAgICAgICAgICAgOyBcImFxdWFcIlxuICAgICAgICAgICAgICA7IFwiYXF1YW1hcmluZVwiXG4gICAgICAgICAgICAgIDsgXCJhenVyZVwiXG4gICAgICAgICAgICAgIDsgXCJiZWlnZVwiXG4gICAgICAgICAgICAgIDsgXCJiaXNxdWVcIlxuICAgICAgICAgICAgICA7IFwiYmxhY2tcIlxuICAgICAgICAgICAgICA7IFwiYmxhbmNoZWRhbG1vbmRcIlxuICAgICAgICAgICAgICA7IFwiYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJibHVldmlvbGV0XCJcbiAgICAgICAgICAgICAgOyBcImJyb3duXCJcbiAgICAgICAgICAgICAgOyBcImJ1cmx5d29vZFwiXG4gICAgICAgICAgICAgIDsgXCJjYWRldGJsdWVcIlxuICAgICAgICAgICAgICA7IFwiY2hhcnRyZXVzZVwiXG4gICAgICAgICAgICAgIDsgXCJjaG9jb2xhdGVcIlxuICAgICAgICAgICAgICA7IFwiY29yYWxcIlxuICAgICAgICAgICAgICA7IFwiY29ybmZsb3dlcmJsdWVcIlxuICAgICAgICAgICAgICA7IFwiY29ybnNpbGtcIlxuICAgICAgICAgICAgICA7IFwiY3JpbXNvblwiXG4gICAgICAgICAgICAgIDsgXCJjeWFuXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtibHVlXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtjeWFuXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtnb2xkZW5yb2RcIlxuICAgICAgICAgICAgICA7IFwiZGFya2dyYXlcIlxuICAgICAgICAgICAgICA7IFwiZGFya2dyZWVuXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtncmV5XCJcbiAgICAgICAgICAgICAgOyBcImRhcmtraGFraVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrbWFnZW50YVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrb2xpdmVncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrb3JhbmdlXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtvcmNoaWRcIlxuICAgICAgICAgICAgICA7IFwiZGFya3JlZFwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrc2FsbW9uXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtzZWFncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrc2xhdGVibHVlXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtzbGF0ZWdyYXlcIlxuICAgICAgICAgICAgICA7IFwiZGFya3NsYXRlZ3JleVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrdHVycXVvaXNlXCJcbiAgICAgICAgICAgICAgOyBcImRhcmt2aW9sZXRcIlxuICAgICAgICAgICAgICA7IFwiZGVlcHBpbmtcIlxuICAgICAgICAgICAgICA7IFwiZGVlcHNreWJsdWVcIlxuICAgICAgICAgICAgICA7IFwiZGltZ3JheVwiXG4gICAgICAgICAgICAgIDsgXCJkaW1ncmV5XCJcbiAgICAgICAgICAgICAgOyBcImRvZGdlcmJsdWVcIlxuICAgICAgICAgICAgICA7IFwiZmlyZWJyaWNrXCJcbiAgICAgICAgICAgICAgOyBcImZsb3JhbHdoaXRlXCJcbiAgICAgICAgICAgICAgOyBcImZvcmVzdGdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcImZ1Y2hzaWFcIlxuICAgICAgICAgICAgICA7IFwiZ2FpbnNib3JvXCJcbiAgICAgICAgICAgICAgOyBcImdob3N0d2hpdGVcIlxuICAgICAgICAgICAgICA7IFwiZ29sZFwiXG4gICAgICAgICAgICAgIDsgXCJnb2xkZW5yb2RcIlxuICAgICAgICAgICAgICA7IFwiZ3JheVwiXG4gICAgICAgICAgICAgIDsgXCJncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJncmVlbnllbGxvd1wiXG4gICAgICAgICAgICAgIDsgXCJncmV5XCJcbiAgICAgICAgICAgICAgOyBcImhvbmV5ZGV3XCJcbiAgICAgICAgICAgICAgOyBcImhvdHBpbmtcIlxuICAgICAgICAgICAgICA7IFwiaW5kaWFucmVkXCJcbiAgICAgICAgICAgICAgOyBcImluZGlnb1wiXG4gICAgICAgICAgICAgIDsgXCJpdm9yeVwiXG4gICAgICAgICAgICAgIDsgXCJraGFraVwiXG4gICAgICAgICAgICAgIDsgXCJsYXZlbmRlclwiXG4gICAgICAgICAgICAgIDsgXCJsYXZlbmRlcmJsdXNoXCJcbiAgICAgICAgICAgICAgOyBcImxhd25ncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJsZW1vbmNoaWZmb25cIlxuICAgICAgICAgICAgICA7IFwibGlnaHRibHVlXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0Y29yYWxcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRjeWFuXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0Z29sZGVucm9keWVsbG93XCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0Z3JheVwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0Z3JleVwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodHBpbmtcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRzYWxtb25cIlxuICAgICAgICAgICAgICA7IFwibGlnaHRzZWFncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodHNreWJsdWVcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRzbGF0ZWdyYXlcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRzbGF0ZWdyZXlcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRzdGVlbGJsdWVcIlxuICAgICAgICAgICAgICA7IFwibGlnaHR5ZWxsb3dcIlxuICAgICAgICAgICAgICA7IFwibGltZVwiXG4gICAgICAgICAgICAgIDsgXCJsaW1lZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwibGluZW5cIlxuICAgICAgICAgICAgICA7IFwibWFnZW50YVwiXG4gICAgICAgICAgICAgIDsgXCJtYXJvb25cIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtYXF1YW1hcmluZVwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW1ibHVlXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bW9yY2hpZFwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW1wdXJwbGVcIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtc2VhZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtc2xhdGVibHVlXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bXNwcmluZ2dyZWVuXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bXR1cnF1b2lzZVwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW12aW9sZXRyZWRcIlxuICAgICAgICAgICAgICA7IFwibWlkbmlnaHRibHVlXCJcbiAgICAgICAgICAgICAgOyBcIm1pbnRjcmVhbVwiXG4gICAgICAgICAgICAgIDsgXCJtaXN0eXJvc2VcIlxuICAgICAgICAgICAgICA7IFwibW9jY2FzaW5cIlxuICAgICAgICAgICAgICA7IFwibmF2YWpvd2hpdGVcIlxuICAgICAgICAgICAgICA7IFwibmF2eVwiXG4gICAgICAgICAgICAgIDsgXCJvbGRsYWNlXCJcbiAgICAgICAgICAgICAgOyBcIm9saXZlXCJcbiAgICAgICAgICAgICAgOyBcIm9saXZlZHJhYlwiXG4gICAgICAgICAgICAgIDsgXCJvcmFuZ2VcIlxuICAgICAgICAgICAgICA7IFwib3JhbmdlcmVkXCJcbiAgICAgICAgICAgICAgOyBcIm9yY2hpZFwiXG4gICAgICAgICAgICAgIDsgXCJwYWxlZ29sZGVucm9kXCJcbiAgICAgICAgICAgICAgOyBcInBhbGVncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJwYWxldHVycXVvaXNlXCJcbiAgICAgICAgICAgICAgOyBcInBhbGV2aW9sZXRyZWRcIlxuICAgICAgICAgICAgICA7IFwicGFwYXlhd2hpcFwiXG4gICAgICAgICAgICAgIDsgXCJwZWFjaHB1ZmZcIlxuICAgICAgICAgICAgICA7IFwicGVydVwiXG4gICAgICAgICAgICAgIDsgXCJwaW5rXCJcbiAgICAgICAgICAgICAgOyBcInBsdW1cIlxuICAgICAgICAgICAgICA7IFwicG93ZGVyYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJwdXJwbGVcIlxuICAgICAgICAgICAgICA7IFwicmVkXCJcbiAgICAgICAgICAgICAgOyBcInJvc3licm93blwiXG4gICAgICAgICAgICAgIDsgXCJyb3lhbGJsdWVcIlxuICAgICAgICAgICAgICA7IFwic2FkZGxlYnJvd25cIlxuICAgICAgICAgICAgICA7IFwic2FsbW9uXCJcbiAgICAgICAgICAgICAgOyBcInNhbmR5YnJvd25cIlxuICAgICAgICAgICAgICA7IFwic2VhZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwic2Vhc2hlbGxcIlxuICAgICAgICAgICAgICA7IFwic2llbm5hXCJcbiAgICAgICAgICAgICAgOyBcInNpbHZlclwiXG4gICAgICAgICAgICAgIDsgXCJza3libHVlXCJcbiAgICAgICAgICAgICAgOyBcInNsYXRlYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJzbGF0ZWdyYXlcIlxuICAgICAgICAgICAgICA7IFwic2xhdGVncmV5XCJcbiAgICAgICAgICAgICAgOyBcInNub3dcIlxuICAgICAgICAgICAgICA7IFwic3ByaW5nZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwic3RlZWxibHVlXCJcbiAgICAgICAgICAgICAgOyBcInRhblwiXG4gICAgICAgICAgICAgIDsgXCJ0ZWFsXCJcbiAgICAgICAgICAgICAgOyBcInRoaXN0bGVcIlxuICAgICAgICAgICAgICA7IFwidG9tYXRvXCJcbiAgICAgICAgICAgICAgOyBcInR1cnF1b2lzZVwiXG4gICAgICAgICAgICAgIDsgXCJ2aW9sZXRcIlxuICAgICAgICAgICAgICA7IFwid2hlYXRcIlxuICAgICAgICAgICAgICA7IFwid2hpdGVcIlxuICAgICAgICAgICAgICA7IFwid2hpdGVzbW9rZVwiXG4gICAgICAgICAgICAgIDsgXCJ5ZWxsb3dcIlxuICAgICAgICAgICAgICA7IFwieWVsbG93Z3JlZW5cIlxuICAgICAgICAgICAgICBdXG4gICAgdGhlbiBzXG4gICAgZWxzZSByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoSnMudG9fc3RyaW5nIHMgXiBcIiBpcyBub3QgYSB2YWxpZCBjb2xvclwiKSlcblxuICBsZXQgbmFtZSBjbiA9IEpzLnN0cmluZyAoc3RyaW5nX29mX25hbWUgY24pXG5cbiAgbGV0IGpzID0gZnVuY3Rpb25cbiAgICB8IE5hbWUgbiAtPiBuYW1lIG5cbiAgICB8IChSR0IgXyB8IFJHQl9wZXJjZW50IF8gfCBSR0JBIF8gfCBSR0JBX3BlcmNlbnQgXyB8IEhTTCBfIHwgSFNMQSBfKSBhcyBjIC0+XG4gICAgICAgIEpzLnN0cmluZyAoc3RyaW5nX29mX3QgYylcblxuICBsZXQgbWwgYyA9XG4gICAgbGV0IHMgPSBKcy50b19zdHJpbmcgYyBpblxuICAgIHRyeSBOYW1lIChuYW1lX29mX3N0cmluZyBzKVxuICAgIHdpdGggSW52YWxpZF9hcmd1bWVudCBfIC0+IChcbiAgICAgIGxldCBmYWlsICgpID0gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKHMgXiBcIiBpcyBub3QgYSB2YWxpZCBjb2xvclwiKSkgaW5cbiAgICAgIGxldCByZV9yZ2IgPVxuICAgICAgICBSZWdleHAucmVnZXhwIFwiKHJnYmE/KVxcXFwoKD86KFxcXFxkKiksKFxcXFxkKiksKFxcXFxkKikoPzosKFxcXFxkKig/OlxcXFwuXFxcXGQqKT8pKT8pXFxcXClcIlxuICAgICAgaW5cbiAgICAgIGxldCByZV9yZ2JfcGN0ID1cbiAgICAgICAgUmVnZXhwLnJlZ2V4cCBcIihyZ2JhPylcXFxcKCg/OihcXFxcZCopJSwoXFxcXGQqKSUsKFxcXFxkKiklKD86LChcXFxcZCooPzpcXFxcLlxcXFxkKik/KSk/KVxcXFwpXCJcbiAgICAgIGluXG4gICAgICBsZXQgcmVfaHNsID1cbiAgICAgICAgUmVnZXhwLnJlZ2V4cCBcIihoc2xhPylcXFxcKCg/OihcXFxcZCopLChcXFxcZCopJSwoXFxcXGQqKSUoPzosKFxcXFxkKig/OlxcXFwuXFxcXGQqKT8pKT8pXFxcXClcIlxuICAgICAgaW5cbiAgICAgIGxldCBpX29mX3NfbyA9IGZ1bmN0aW9uXG4gICAgICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgICAgIHwgU29tZSBpIC0+IChcbiAgICAgICAgICAgIHRyeSBpbnRfb2Zfc3RyaW5nIGlcbiAgICAgICAgICAgIHdpdGggSW52YWxpZF9hcmd1bWVudCBzIHwgRmFpbHVyZSBzIC0+XG4gICAgICAgICAgICAgIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChcImNvbG9yIGNvbnZlcnNpb24gZXJyb3IgKFwiIF4gaSBeIFwiKTogXCIgXiBzKSkpXG4gICAgICBpblxuICAgICAgbGV0IGZfb2ZfcyBmID1cbiAgICAgICAgdHJ5IGZsb2F0X29mX3N0cmluZyBmXG4gICAgICAgIHdpdGggSW52YWxpZF9hcmd1bWVudCBzIHwgRmFpbHVyZSBzIC0+XG4gICAgICAgICAgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKFwiY29sb3IgY29udmVyc2lvbiBlcnJvciAoXCIgXiBmIF4gXCIpOiBcIiBeIHMpKVxuICAgICAgaW5cbiAgICAgIG1hdGNoIFJlZ2V4cC5zdHJpbmdfbWF0Y2ggcmVfcmdiIHMgMCB3aXRoXG4gICAgICB8IFNvbWUgciAtPiAoXG4gICAgICAgICAgbGV0IHJlZCA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMiBpblxuICAgICAgICAgIGxldCBncmVlbiA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMyBpblxuICAgICAgICAgIGxldCBibHVlID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciA0IGluXG4gICAgICAgICAgbGV0IGFscGhhID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciA1IGluXG4gICAgICAgICAgbWF0Y2ggUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAxIHdpdGhcbiAgICAgICAgICB8IFNvbWUgXCJyZ2JcIiAtPiAoXG4gICAgICAgICAgICAgIG1hdGNoIGFscGhhIHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIF8gLT4gZmFpbCAoKVxuICAgICAgICAgICAgICB8IE5vbmUgLT4gUkdCIChpX29mX3NfbyByZWQsIGlfb2Zfc19vIGdyZWVuLCBpX29mX3NfbyBibHVlKSlcbiAgICAgICAgICB8IFNvbWUgXCJyZ2JhXCIgLT4gKFxuICAgICAgICAgICAgICBtYXRjaCBhbHBoYSB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgICAgICAgICAgIHwgU29tZSBhIC0+IFJHQkEgKGlfb2Zfc19vIHJlZCwgaV9vZl9zX28gZ3JlZW4sIGlfb2Zfc19vIGJsdWUsIGZfb2ZfcyBhKSlcbiAgICAgICAgICB8IFNvbWUgXyB8IE5vbmUgLT4gZmFpbCAoKSlcbiAgICAgIHwgTm9uZSAtPiAoXG4gICAgICAgICAgbWF0Y2ggUmVnZXhwLnN0cmluZ19tYXRjaCByZV9yZ2JfcGN0IHMgMCB3aXRoXG4gICAgICAgICAgfCBTb21lIHIgLT4gKFxuICAgICAgICAgICAgICBsZXQgcmVkID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAyIGluXG4gICAgICAgICAgICAgIGxldCBncmVlbiA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMyBpblxuICAgICAgICAgICAgICBsZXQgYmx1ZSA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgNCBpblxuICAgICAgICAgICAgICBsZXQgYWxwaGEgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDUgaW5cbiAgICAgICAgICAgICAgbWF0Y2ggUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAxIHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIFwicmdiXCIgLT4gKFxuICAgICAgICAgICAgICAgICAgbWF0Y2ggYWxwaGEgd2l0aFxuICAgICAgICAgICAgICAgICAgfCBTb21lIF8gLT4gZmFpbCAoKVxuICAgICAgICAgICAgICAgICAgfCBOb25lIC0+IFJHQl9wZXJjZW50IChpX29mX3NfbyByZWQsIGlfb2Zfc19vIGdyZWVuLCBpX29mX3NfbyBibHVlKSlcbiAgICAgICAgICAgICAgfCBTb21lIFwicmdiYVwiIC0+IChcbiAgICAgICAgICAgICAgICAgIG1hdGNoIGFscGhhIHdpdGhcbiAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgICAgICAgICAgICAgICB8IFNvbWUgYSAtPlxuICAgICAgICAgICAgICAgICAgICAgIFJHQkFfcGVyY2VudCAoaV9vZl9zX28gcmVkLCBpX29mX3NfbyBncmVlbiwgaV9vZl9zX28gYmx1ZSwgZl9vZl9zIGEpXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIHwgU29tZSBfIHwgTm9uZSAtPiBmYWlsICgpKVxuICAgICAgICAgIHwgTm9uZSAtPiAoXG4gICAgICAgICAgICAgIG1hdGNoIFJlZ2V4cC5zdHJpbmdfbWF0Y2ggcmVfaHNsIHMgMCB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSByIC0+IChcbiAgICAgICAgICAgICAgICAgIGxldCByZWQgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDIgaW5cbiAgICAgICAgICAgICAgICAgIGxldCBncmVlbiA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMyBpblxuICAgICAgICAgICAgICAgICAgbGV0IGJsdWUgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDQgaW5cbiAgICAgICAgICAgICAgICAgIGxldCBhbHBoYSA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgNSBpblxuICAgICAgICAgICAgICAgICAgbWF0Y2ggUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAxIHdpdGhcbiAgICAgICAgICAgICAgICAgIHwgU29tZSBcImhzbFwiIC0+IChcbiAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBhbHBoYSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgfCBTb21lIF8gLT4gZmFpbCAoKVxuICAgICAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBIU0wgKGlfb2Zfc19vIHJlZCwgaV9vZl9zX28gZ3JlZW4sIGlfb2Zfc19vIGJsdWUpKVxuICAgICAgICAgICAgICAgICAgfCBTb21lIFwiaHNsYVwiIC0+IChcbiAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBhbHBoYSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgfCBOb25lIC0+IGZhaWwgKClcbiAgICAgICAgICAgICAgICAgICAgICB8IFNvbWUgYSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBIU0xBIChpX29mX3NfbyByZWQsIGlfb2Zfc19vIGdyZWVuLCBpX29mX3NfbyBibHVlLCBmX29mX3MgYSkpXG4gICAgICAgICAgICAgICAgICB8IFNvbWUgXyB8IE5vbmUgLT4gZmFpbCAoKSlcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGZhaWwgKCkpKSlcbmVuZFxuXG5tb2R1bGUgTGVuZ3RoID0gc3RydWN0XG4gICgqIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdmFsdWVzLyNsZW5ndGhzICopXG5cbiAgKCogVE9ETzpcbiAgICAge1tcbiAgICAgICB0eXBlIGpzX3QgPSBwcml2YXRlIEpzLnN0cmluZyBKcy50XG4gICAgICAgdmFsIGpzX3Rfb2ZfdFxuICAgICAgIHZhbCB0X29mX2pzX3RcbiAgICAgICB2YWwgdF9vZl9zdHJpbmdcbiAgICAgXX1cbiAgKilcblxuICB0eXBlIHQgPVxuICAgIHwgWmVyb1xuICAgICgqIHJlbGF0aXZlICopXG4gICAgfCBFbSBvZiBmbG9hdFxuICAgIHwgRXggb2YgZmxvYXRcbiAgICB8IFB4IG9mIGZsb2F0XG4gICAgfCBHZCBvZiBmbG9hdFxuICAgIHwgUmVtIG9mIGZsb2F0XG4gICAgfCBWdyBvZiBmbG9hdFxuICAgIHwgVmggb2YgZmxvYXRcbiAgICB8IFZtIG9mIGZsb2F0XG4gICAgfCBDaCBvZiBmbG9hdFxuICAgICgqIGFic29sdXRlICopXG4gICAgfCBNbSBvZiBmbG9hdFxuICAgIHwgQ20gb2YgZmxvYXRcbiAgICB8IEluIG9mIGZsb2F0XG4gICAgfCBQdCBvZiBmbG9hdFxuICAgIHwgUGMgb2YgZmxvYXRcblxuICBsZXQgc3RyaW5nX29mX3QgPSBmdW5jdGlvblxuICAgIHwgWmVybyAtPiBcIjBcIlxuICAgIHwgRW0gZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiZW1cIlxuICAgIHwgRXggZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiZXhcIlxuICAgIHwgUHggZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwicHhcIlxuICAgIHwgR2QgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiZ2RcIlxuICAgIHwgUmVtIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcInJlbVwiXG4gICAgfCBWdyBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJ2d1wiXG4gICAgfCBWaCBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJ2aFwiXG4gICAgfCBWbSBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJ2bVwiXG4gICAgfCBDaCBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJjaFwiXG4gICAgfCBNbSBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJtbVwiXG4gICAgfCBDbSBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJjbVwiXG4gICAgfCBJbiBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJpblwiXG4gICAgfCBQdCBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJwdFwiXG4gICAgfCBQYyBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJwY1wiXG5cbiAgdHlwZSBqc190ID0gSnMuanNfc3RyaW5nIEpzLnRcblxuICBsZXQganMgdCA9IEpzLnN0cmluZyAoc3RyaW5nX29mX3QgdClcblxuICBsZXQgbWwgdCA9XG4gICAgbGV0IHMgPSBKcy50b19zdHJpbmcgdCBpblxuICAgIGlmIFN0cmluZy5lcXVhbCBzIFwiMFwiXG4gICAgdGhlbiBaZXJvXG4gICAgZWxzZVxuICAgICAgbGV0IGZhaWwgKCkgPSByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAocyBeIFwiIGlzIG5vdCBhIHZhbGlkIGxlbmd0aFwiKSkgaW5cbiAgICAgIGxldCByZSA9IFJlZ2V4cC5yZWdleHAgXCJeKFxcXFxkKig/OlxcXFwuXFxcXGQqKT8pXFxcXHMqKFxcXFxTKikkXCIgaW5cbiAgICAgIG1hdGNoIFJlZ2V4cC5zdHJpbmdfbWF0Y2ggcmUgcyAwIHdpdGhcbiAgICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgICB8IFNvbWUgciAtPiAoXG4gICAgICAgICAgbGV0IGYgPVxuICAgICAgICAgICAgbWF0Y2ggUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAxIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgICAgICAgICB8IFNvbWUgZiAtPiAoXG4gICAgICAgICAgICAgICAgdHJ5IGZsb2F0X29mX3N0cmluZyBmXG4gICAgICAgICAgICAgICAgd2l0aCBJbnZhbGlkX2FyZ3VtZW50IHMgLT5cbiAgICAgICAgICAgICAgICAgIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChcImxlbmd0aCBjb252ZXJzaW9uIGVycm9yOiBcIiBeIHMpKSlcbiAgICAgICAgICBpblxuICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMiB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IGZhaWwgKClcbiAgICAgICAgICB8IFNvbWUgXCJlbVwiIC0+IEVtIGZcbiAgICAgICAgICB8IFNvbWUgXCJleFwiIC0+IEV4IGZcbiAgICAgICAgICB8IFNvbWUgXCJweFwiIC0+IFB4IGZcbiAgICAgICAgICB8IFNvbWUgXCJnZFwiIC0+IEdkIGZcbiAgICAgICAgICB8IFNvbWUgXCJyZW1cIiAtPiBSZW0gZlxuICAgICAgICAgIHwgU29tZSBcInZ3XCIgLT4gVncgZlxuICAgICAgICAgIHwgU29tZSBcInZoXCIgLT4gVmggZlxuICAgICAgICAgIHwgU29tZSBcInZtXCIgLT4gVm0gZlxuICAgICAgICAgIHwgU29tZSBcImNoXCIgLT4gQ2ggZlxuICAgICAgICAgIHwgU29tZSBcIm1tXCIgLT4gTW0gZlxuICAgICAgICAgIHwgU29tZSBcImNtXCIgLT4gQ20gZlxuICAgICAgICAgIHwgU29tZSBcImluXCIgLT4gSW4gZlxuICAgICAgICAgIHwgU29tZSBcInB0XCIgLT4gUHQgZlxuICAgICAgICAgIHwgU29tZSBcInBjXCIgLT4gUGMgZlxuICAgICAgICAgIHwgU29tZSBfIC0+IGZhaWwgKCkpXG5lbmRcblxubW9kdWxlIEFuZ2xlID0gc3RydWN0XG4gIHR5cGUgdCA9XG4gICAgfCBEZWcgb2YgZmxvYXRcbiAgICB8IEdyYWQgb2YgZmxvYXRcbiAgICB8IFJhZCBvZiBmbG9hdFxuICAgIHwgVHVybnMgb2YgZmxvYXRcblxuICBsZXQgc3RyaW5nX29mX3QgPSBmdW5jdGlvblxuICAgIHwgRGVnIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImRlZ1wiXG4gICAgfCBHcmFkIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImdyYWRcIlxuICAgIHwgUmFkIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcInJhZFwiXG4gICAgfCBUdXJucyBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJ0dXJuc1wiXG5cbiAgdHlwZSBqc190ID0gSnMuanNfc3RyaW5nIEpzLnRcblxuICBsZXQganMgdCA9IEpzLnN0cmluZyAoc3RyaW5nX29mX3QgdClcblxuICBsZXQgbWwgaiA9XG4gICAgbGV0IHMgPSBKcy50b19zdHJpbmcgaiBpblxuICAgIGxldCByZSA9IFJlZ2V4cC5yZWdleHAgXCJeKFxcXFxkKig/OlxcXFwuXFxcXGQqKSkoZGVnfGdyYWR8cmFkfHR1cm5zKSRcIiBpblxuICAgIGxldCBmYWlsICgpID0gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKHMgXiBcIiBpcyBub3QgYSB2YWxpZCBsZW5ndGhcIikpIGluXG4gICAgbWF0Y2ggUmVnZXhwLnN0cmluZ19tYXRjaCByZSBzIDAgd2l0aFxuICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgfCBTb21lIHIgLT4gKFxuICAgICAgICBsZXQgZiA9XG4gICAgICAgICAgbWF0Y2ggUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAxIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICAgIHwgU29tZSBmIC0+IChcbiAgICAgICAgICAgICAgdHJ5IGZsb2F0X29mX3N0cmluZyBmXG4gICAgICAgICAgICAgIHdpdGggSW52YWxpZF9hcmd1bWVudCBzIC0+XG4gICAgICAgICAgICAgICAgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKFwibGVuZ3RoIGNvbnZlcnNpb24gZXJyb3I6IFwiIF4gcykpKVxuICAgICAgICBpblxuICAgICAgICBtYXRjaCBSZWdleHAubWF0Y2hlZF9ncm91cCByIDIgd2l0aFxuICAgICAgICB8IFNvbWUgXCJkZWdcIiAtPiBEZWcgZlxuICAgICAgICB8IFNvbWUgXCJncmFkXCIgLT4gR3JhZCBmXG4gICAgICAgIHwgU29tZSBcInJhZFwiIC0+IFJhZCBmXG4gICAgICAgIHwgU29tZSBcInR1cm5zXCIgLT4gVHVybnMgZlxuICAgICAgICB8IFNvbWUgXyB8IE5vbmUgLT4gZmFpbCAoKSlcbmVuZFxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbigqKiBKYXZhc2NyaXB0IGV2ZW50cy4gKilcblxub3BlbiEgSW1wb3J0XG5tb2R1bGUgVHlwID0gRG9tX2h0bWwuRXZlbnRcblxudHlwZSBsaXN0ZW5lciA9IERvbV9odG1sLmV2ZW50X2xpc3RlbmVyX2lkXG5cbmxldCBsaXN0ZW4gPyhjYXB0dXJlID0gZmFsc2UpIHRhcmdldCB0eXAgY2IgPVxuICBEb21faHRtbC5hZGRFdmVudExpc3RlbmVyXG4gICAgdGFyZ2V0XG4gICAgdHlwXG4gICAgKERvbV9odG1sLmZ1bGxfaGFuZGxlciAoZnVuIG4gZSAtPiBKcy5ib29sIChjYiBuIGUpKSlcbiAgICAoSnMuYm9vbCBjYXB0dXJlKVxuXG5sZXQgc3RvcF9saXN0ZW4gPSBEb21faHRtbC5yZW1vdmVFdmVudExpc3RlbmVyXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDE0IEh1Z28gSGV1emFyZFxuICogQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4hIEltcG9ydFxuXG5sZXQgeG1sbnMgPSBKcy5zdHJpbmcgXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG5cbigqIHRyYW5zbGF0ZSBzcGVjIGZyb20gaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL2lkbC5odG1sICopXG4oKiBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvc3RydWN0Lmh0bWwgKilcblxudHlwZSBlcnJvcl9jb2RlID1cbiAgfCBXUk9OR19UWVBFX0VSUlxuICB8IElOVkFMSURfVkFMVUVfRVJSXG4gIHwgTUFUUklYX05PVF9JTlZFUlRBQkxFXG5cbmNsYXNzIHR5cGUgc3ZnX2Vycm9yID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBKcy5lcnJvclxuXG4gICAgbWV0aG9kIGNvZGUgOiBlcnJvcl9jb2RlIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuZXhjZXB0aW9uIFNWR0Vycm9yIG9mIHN2Z19lcnJvclxuXG50eXBlIGxlbmd0aFVuaXRUeXBlID1cbiAgfCBMRU5HVEhUWVBFX1VOS05PV05cbiAgfCBMRU5HVEhUWVBFX05VTUJFUlxuICB8IExFTkdUSFRZUEVfUEVSQ0VOVEFHRVxuICB8IExFTkdUSFRZUEVfRU1TXG4gIHwgTEVOR1RIVFlQRV9FWFNcbiAgfCBMRU5HVEhUWVBFX1BYXG4gIHwgTEVOR1RIVFlQRV9DTVxuICB8IExFTkdUSFRZUEVfTU1cbiAgfCBMRU5HVEhUWVBFX0lOXG4gIHwgTEVOR1RIVFlQRV9QVFxuICB8IExFTkdUSFRZUEVfUENcblxudHlwZSBhbmdsZVVuaXRUeXBlID1cbiAgfCBBTkdMRVRZUEVfVU5LTk9XTlxuICB8IEFOR0xFVFlQRV9VTlNQRUNJRklFRFxuICB8IEFOR0xFVFlQRV9ERUdcbiAgfCBBTkdMRVRZUEVfUkFEXG4gIHwgQU5HTEVUWVBFX0dSQURcblxudHlwZSBjb2xvclR5cGUgPVxuICB8IENPTE9SVFlQRV9VTktOT1dOXG4gIHwgQ09MT1JUWVBFX1JHQkNPTE9SXG4gIHwgQ09MT1JUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SXG4gIHwgQ09MT1JUWVBFX0NVUlJFTlRDT0xPUlxuXG50eXBlIGFsaWdubWVudFR5cGUgPVxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fVU5LTk9XTlxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fTk9ORVxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU5cbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlOXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1JTlxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSURcbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlEXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1JRFxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNQVhcbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWFxuXG50eXBlIG1lZXRPclNsaWNlVHlwZSA9XG4gIHwgTUVFVE9SU0xJQ0VfVU5LTk9XTlxuICB8IE1FRVRPUlNMSUNFX01FRVRcbiAgfCBNRUVUT1JTTElDRV9TTElDRVxuXG50eXBlIHRyYW5zZm9ybVR5cGUgPVxuICB8IFRSQU5TRk9STV9VTktOT1dOXG4gIHwgVFJBTlNGT1JNX01BVFJJWFxuICB8IFRSQU5TRk9STV9UUkFOU0xBVEVcbiAgfCBUUkFOU0ZPUk1fU0NBTEVcbiAgfCBUUkFOU0ZPUk1fUk9UQVRFXG4gIHwgVFJBTlNGT1JNX1NLRVdYXG4gIHwgVFJBTlNGT1JNX1NLRVdZXG5cbnR5cGUgem9vbUFuZFBhblR5cGUgPVxuICB8IFpPT01BTkRQQU5fVU5LTk9XTlxuICB8IFpPT01BTkRQQU5fRElTQUJMRVxuICB8IFpPT01BTkRQQU5fTUFHTklGWVxuXG50eXBlIGxlbmd0aEFkanVzdCA9XG4gIHwgTEVOR1RIQURKVVNUX1VOS05PV05cbiAgfCBMRU5HVEhBREpVU1RfU1BBQ0lOR1xuICB8IExFTkdUSEFESlVTVF9TUEFDSU5HQU5ER0xZUEhTXG5cbnR5cGUgdW5pdFR5cGUgPVxuICB8IFVOSVRfVFlQRV9VTktOT1dOXG4gIHwgVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFXG4gIHwgVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YXG5cbigqIGludGVyZmFjZSBTVkdSZW5kZXJpbmdJbnRlbnQgKilcbnR5cGUgaW50ZW50VHlwZSA9XG4gIHwgUkVOREVSSU5HX0lOVEVOVF9VTktOT1dOXG4gIHwgUkVOREVSSU5HX0lOVEVOVF9BVVRPXG4gIHwgUkVOREVSSU5HX0lOVEVOVF9QRVJDRVBUVUFMXG4gIHwgUkVOREVSSU5HX0lOVEVOVF9SRUxBVElWRV9DT0xPUklNRVRSSUNcbiAgfCBSRU5ERVJJTkdfSU5URU5UX1NBVFVSQVRJT05cbiAgfCBSRU5ERVJJTkdfSU5URU5UX0FCU09MVVRFX0NPTE9SSU1FVFJJQ1xuXG4oKiBQYXRoIFNlZ21lbnQgVHlwZXMgKilcbnR5cGUgcGF0aFNlZ21lbnRUeXBlID1cbiAgfCBQQVRIU0VHX1VOS05PV05cbiAgfCBQQVRIU0VHX0NMT1NFUEFUSFxuICB8IFBBVEhTRUdfTU9WRVRPX0FCU1xuICB8IFBBVEhTRUdfTU9WRVRPX1JFTFxuICB8IFBBVEhTRUdfTElORVRPX0FCU1xuICB8IFBBVEhTRUdfTElORVRPX1JFTFxuICB8IFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19BQlNcbiAgfCBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfUkVMXG4gIHwgUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19BQlNcbiAgfCBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTFxuICB8IFBBVEhTRUdfQVJDX0FCU1xuICB8IFBBVEhTRUdfQVJDX1JFTFxuICB8IFBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfQUJTXG4gIHwgUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9SRUxcbiAgfCBQQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9BQlNcbiAgfCBQQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9SRUxcbiAgfCBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX0FCU1xuICB8IFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfUkVMXG4gIHwgUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfQUJTXG4gIHwgUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfUkVMXG5cbigqIHRleHRQYXRoIE1ldGhvZCBUeXBlcyAqKVxudHlwZSB0ZXh0UGF0aE1ldGhvZFR5cGUgPVxuICB8IFRFWFRQQVRIX01FVEhPRFRZUEVfVU5LTk9XTlxuICB8IFRFWFRQQVRIX01FVEhPRFRZUEVfQUxJR05cbiAgfCBURVhUUEFUSF9NRVRIT0RUWVBFX1NUUkVUQ0hcblxuKCogdGV4dFBhdGggU3BhY2luZyBUeXBlcyAqKVxudHlwZSB0ZXh0UGF0aFNwYWNpbmdUeXBlID1cbiAgfCBURVhUUEFUSF9TUEFDSU5HVFlQRV9VTktOT1dOXG4gIHwgVEVYVFBBVEhfU1BBQ0lOR1RZUEVfQVVUT1xuICB8IFRFWFRQQVRIX1NQQUNJTkdUWVBFX0VYQUNUXG5cbigqIFNwcmVhZCBNZXRob2QgVHlwZXMgKilcbnR5cGUgc3ByZWFkTWV0aG9kVHlwZSA9XG4gIHwgU1BSRUFETUVUSE9EX1VOS05PV05cbiAgfCBTUFJFQURNRVRIT0RfUEFEXG4gIHwgU1BSRUFETUVUSE9EX1JFRkxFQ1RcbiAgfCBTUFJFQURNRVRIT0RfUkVQRUFUXG5cbnR5cGUgc3VzcGVuZEhhbmRsZUlEXG5cbigqKioqKVxuXG5jbGFzcyB0eXBlIFsnYV0gYW5pbWF0ZWQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYmFzZVZhbCA6ICdhIHByb3BcblxuICAgIG1ldGhvZCBhbmltVmFsIDogJ2EgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBbJ2FdIGxpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbnVtYmVyT2ZJdGVtcyA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xlYXIgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpbml0aWFsaXplIDogJ2EgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGdldEl0ZW0gOiBpbnQgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGluc2VydEl0ZW1CZWZvcmUgOiAnYSAtPiBpbnQgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIHJlcGxhY2VJdGVtIDogJ2EgLT4gaW50IC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVJdGVtIDogaW50IC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBhcHBlbmRJdGVtIDogJ2EgLT4gJ2EgbWV0aFxuICBlbmRcblxuKCoqKiopXG5cbigqIGludGVyZmFjZSBTVkdFbGVtZW50ICopXG5jbGFzcyB0eXBlIGVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IERvbS5lbGVtZW50XG5cbiAgICBtZXRob2QgaWQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgeG1sYmFzZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvd25lclNWR0VsZW1lbnQgOiBzdmdFbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZpZXdwb3J0RWxlbWVudCA6IGVsZW1lbnQgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRTdHJpbmcgKilcbmFuZCBhbmltYXRlZFN0cmluZyA9IFtqc19zdHJpbmcgdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkQm9vbGVhbiAqKVxuYW5kIGFuaW1hdGVkQm9vbGVhbiA9IFtib29sIHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdTdHJpbmdMaXN0ICopXG5hbmQgc3RyaW5nTGlzdCA9IFtqc19zdHJpbmcgdF0gbGlzdFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiAqKVxuYW5kIGFuaW1hdGVkRW51bWVyYXRpb24gPSBbaW50ICgqc2hvcnQqKV0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkSW50ZWdlciAqKVxuYW5kIGFuaW1hdGVkSW50ZWdlciA9IFtpbnRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZE51bWJlciAqKVxuYW5kIGFuaW1hdGVkTnVtYmVyID0gW2Zsb2F0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHTnVtYmVyTGlzdCAqKVxuYW5kIG51bWJlckxpc3QgPSBbbnVtYmVyIHRdIGxpc3RcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkTnVtYmVyTGlzdCAqKVxuYW5kIGFuaW1hdGVkTnVtYmVyTGlzdCA9IFtudW1iZXJMaXN0IHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdMZW5ndGggKilcbmFuZCBsZW5ndGggPVxuICBvYmplY3RcbiAgICBtZXRob2QgdW5pdFR5cGUgOiBsZW5ndGhVbml0VHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdmFsdWUgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgdmFsdWVJblNwZWNpZmllZFVuaXRzIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlQXNTdHJpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbmV3VmFsdWVTcGVjaWZpZWRVbml0cyA6IGxlbmd0aFVuaXRUeXBlIC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzIDogbGVuZ3RoVW5pdFR5cGUgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRMZW5ndGggKilcbmFuZCBhbmltYXRlZExlbmd0aCA9IFtsZW5ndGggdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR0xlbmd0aExpc3QgKilcbmFuZCBsZW5ndGhMaXN0ID0gW2xlbmd0aCB0XSBsaXN0XG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZExlbmd0aExpc3QgKilcbmFuZCBhbmltYXRlZExlbmd0aExpc3QgPSBbbGVuZ3RoTGlzdCB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5nbGUgKilcbmFuZCBhbmdsZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB1bml0VHlwZSA6IGFuZ2xlVW5pdFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlSW5TcGVjaWZpZWRVbml0cyA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZUFzU3RyaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMgOiBhbmdsZVVuaXRUeXBlIC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzIDogYW5nbGVVbml0VHlwZSAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZEFuZ2xlICopXG5hbmQgYW5pbWF0ZWRBbmdsZSA9IFthbmdsZSB0XSBhbmltYXRlZFxuXG4oKiBYWFhYWCBNb3ZlIGl0ICopXG5hbmQgcmdiQ29sb3IgPSBvYmplY3QgZW5kXG5cbigqIGludGVyZmFjZSBTVkdDb2xvciAqKVxuYW5kIGNvbG9yID1cbiAgb2JqZWN0XG4gICAgKCogWFhYIGluaGVyaXQgY3NzVmFsdWUgKilcbiAgICBtZXRob2QgY29sb3JUeXBlIDogY29sb3JUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZ2JDb2xvciA6IHJnYkNvbG9yIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGljY0NvbG9yIDogaWNjQ29sb3IgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2V0UkdCQ29sb3IgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRSR0JDb2xvcklDQ0NvbG9yIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0Q29sb3IgOiBjb2xvclR5cGUgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHSUNDQ29sb3IgKilcbmFuZCBpY2NDb2xvciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjb2xvclByb2ZpbGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29sb3JzIDogbnVtYmVyTGlzdCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdSZWN0ICopXG5hbmQgcmVjdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB4IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogZmxvYXQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkUmVjdCAqKVxuYW5kIGFuaW1hdGVkUmVjdCA9IFtyZWN0IHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdTdHlsYWJsZSAqKVxuYW5kIHN0eWxhYmxlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNsYXNzTmFtZSA6IGFuaW1hdGVkU3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0eWxlIDogRG9tX2h0bWwuY3NzU3R5bGVEZWNsYXJhdGlvbiB0IHJlYWRvbmx5X3Byb3BcbiAgICAoKiAgIENTU1ZhbHVlIGdldFByZXNlbnRhdGlvbkF0dHJpYnV0ZShpbiBET01TdHJpbmcgbmFtZSk7ICopXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHTG9jYXRhYmxlICopXG5hbmQgbG9jYXRhYmxlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG5lYXJlc3RWaWV3cG9ydEVsZW1lbnQgOiBlbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZhcnRoZXN0Vmlld3BvcnRFbGVtZW50IDogZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRCQm94IDogcmVjdCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRDVE0gOiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U2NyZWVuQ1RNIDogbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFRyYW5zZm9ybVRvRWxlbWVudCA6IGVsZW1lbnQgdCAtPiBtYXRyaXggdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtYWJsZSAqKVxuYW5kIHRyYW5zZm9ybWFibGUgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGxvY2F0YWJsZVxuXG4gICAgbWV0aG9kIHRyYW5zZm9ybSA6IGFuaW1hdGVkVHJhbnNmb3JtTGlzdCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdUZXN0cyAqKVxuYW5kIHRlc3RzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJlcXVpcmVkRmVhdHVyZXMgOiBzdHJpbmdMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlcXVpcmVkRXh0ZW5zaW9ucyA6IHN0cmluZ0xpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3lzdGVtTGFuZ3VhZ2UgOiBzdHJpbmdMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhhc0V4dGVuc2lvbiA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHTGFuZ1NwYWNlICopXG5hbmQgbGFuZ1NwYWNlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHhtbGxhbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgeG1sc3BhY2UgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCAqKVxuYW5kIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCA6IGFuaW1hdGVkQm9vbGVhbiB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdGaXRUb1ZpZXdCb3ggKilcbmFuZCBmaXRUb1ZpZXdCb3ggPVxuICBvYmplY3RcbiAgICBtZXRob2Qgdmlld0JveCA6IGFuaW1hdGVkUmVjdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmVzZXJ2ZUFzcGVjdFJhdGlvIDogYW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1pvb21BbmRQYW4gKilcbmFuZCB6b29tQW5kUGFuID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHpvb21BbmRQYW4gOiB6b29tQW5kUGFuVHlwZSBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVmlld1NwZWMgKilcbmFuZCB2aWV3U3BlYyA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgem9vbUFuZFBhblxuXG4gICAgaW5oZXJpdCBmaXRUb1ZpZXdCb3hcblxuICAgIG1ldGhvZCB0cmFuc2Zvcm0gOiB0cmFuc2Zvcm1MaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZpZXdUYXJnZXQgOiBlbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZpZXdCb3hTdHJpbmcgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0cmFuc2Zvcm1TdHJpbmcgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgdmlld1RhcmdldFN0cmluZyA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdVUklSZWZlcmVuY2UgKilcbmFuZCB1cmlSZWZlcmVuY2UgPVxuICBvYmplY3RcbiAgICBtZXRob2QgaHJlZiA6IGFuaW1hdGVkU3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0NTU1J1bGUgOiBDU1NSdWxlICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTE9SX1BST0ZJTEVfUlVMRSA9IDc7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRG9jdW1lbnQgKilcbmFuZCBkb2N1bWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgW2VsZW1lbnRdIERvbS5kb2N1bWVudFxuXG4gICAgKCpYWFggaW5oZXJpdCBkb2N1bWVudEV2ZW50ICopXG4gICAgbWV0aG9kIHRpdGxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJlZmVycmVyIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRvbWFpbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfVVJMIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJvb3RFbGVtZW50IDogc3ZnRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG4gICAgKCogcm9vdEVsZW1lbnQgd2lsbCBiZSBudWxsIG9yIHVuZGVmaW5lZCBpbiBhbiBodG1sIGNvbnRleHQgKilcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdTVkdFbGVtZW50ICopXG5hbmQgc3ZnRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCBsb2NhdGFibGVcblxuICAgIGluaGVyaXQgZml0VG9WaWV3Qm94XG5cbiAgICBpbmhlcml0IHpvb21BbmRQYW5cblxuICAgICgqWFhYIGluaGVyaXQgZG9jdW1lbnRldmVudCwgdmlld2NzcywgZG9jdW1lbnRjc3MgKilcbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnRTY3JpcHRUeXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnRTdHlsZVR5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgdmlld3BvcnQgOiByZWN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBpeGVsVW5pdFRvTWlsbGltZXRlclggOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGl4ZWxVbml0VG9NaWxsaW1ldGVyWSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzY3JlZW5QaXhlbFVuaXRUb01pbGxpbWV0ZXJYIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcmVlblBpeGVsVW5pdFRvTWlsbGltZXRlclkgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdXNlQ3VycmVudFZpZXcgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN1cnJlbnRWaWV3IDogdmlld1NwZWMgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3VycmVudFNjYWxlIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGN1cnJlbnRUcmFuc2xhdGUgOiBwb2ludCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdXNwZW5kUmVkcmF3IDogaW50IC0+IHN1c3BlbmRIYW5kbGVJRCBtZXRoXG5cbiAgICBtZXRob2QgdW5zdXNwZW5kUmVkcmF3IDogc3VzcGVuZEhhbmRsZUlEIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuc3VzcGVuZFJlZHJhd0FsbCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZvcmNlUmVkcmF3IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcGF1c2VBbmltYXRpb25zIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5wYXVzZUFuaW1hdGlvbnMgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhbmltYXRpb25zUGF1c2VkIDogYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRDdXJyZW50VGltZSA6IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRDdXJyZW50VGltZSA6IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRJbnRlcnNlY3Rpb25MaXN0IDogcmVjdCB0IC0+IGVsZW1lbnQgdCAtPiBlbGVtZW50IERvbS5ub2RlTGlzdCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFbmNsb3N1cmVMaXN0IDogcmVjdCB0IC0+IGVsZW1lbnQgdCAtPiBlbGVtZW50IERvbS5ub2RlTGlzdCB0IG1ldGhcblxuICAgIG1ldGhvZCBjaGVja0ludGVyc2VjdGlvbiA6IGVsZW1lbnQgdCAtPiByZWN0IHQgLT4gYm9vbCB0XG5cbiAgICBtZXRob2QgY2hlY2tFbmNsb3N1cmUgOiBlbGVtZW50IHQgLT4gcmVjdCB0IC0+IGJvb2wgdFxuXG4gICAgbWV0aG9kIGRlc2VsZWN0QWxsIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHTnVtYmVyIDogbnVtYmVyIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR0xlbmd0aCA6IGxlbmd0aCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdBbmdsZSA6IGFuZ2xlIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BvaW50IDogcG9pbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHTWF0cml4IDogbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1JlY3QgOiByZWN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1RyYW5zZm9ybSA6IHRyYW5zZm9ybSB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4IDogbWF0cml4IHQgLT4gdHJhbnNmb3JtIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEVsZW1lbnRCeUlkIDoganNfc3RyaW5nIHQgLT4gRG9tLmVsZW1lbnQgdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHR0VsZW1lbnQgKilcbmFuZCBnRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBpbmhlcml0IERvbV9odG1sLmV2ZW50VGFyZ2V0XG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRGVmc0VsZW1lbnQgKilcbmFuZCBkZWZzRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG4gICAgKCogWFhYWFhYWCA/IGluaGVyaXQgRG9tX2h0bWwuZXZlbnRUYXJnZXQgKilcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdEZXNjRWxlbWVudCAqKVxuYW5kIGRlc2NFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuICAgICgqIFhYWFhYWFggPyBpbmhlcml0IERvbV9odG1sLmV2ZW50VGFyZ2V0ICopXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVGl0bGVFbGVtZW50ICopXG5hbmQgdGl0bGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1N5bWJvbEVsZW1lbnQgKilcbmFuZCBzeW1ib2xFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IGZpdFRvVmlld0JveFxuXG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1VzZUVsZW1lbnQgKilcbmFuZCB1c2VFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGluc3RhbmNlUm9vdCA6IGVsZW1lbnRJbnN0YW5jZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbmltYXRlZEluc3RhbmNlUm9vdCA6IGVsZW1lbnRJbnN0YW5jZSB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBlbGVtZW50SW5zdGFuY2UgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IERvbV9odG1sLmV2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2QgY29ycmVzcG9uZGluZ0VsZW1lbnQgOiBlbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvcnJlc3BvbmRpbmdVc2VFbGVtZW50IDogdXNlRWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYXJlbnROb2RlIDogZWxlbWVudEluc3RhbmNlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNoaWxkTm9kZXMgOiBlbGVtZW50SW5zdGFuY2VMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpcnN0Q2hpbGQgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGFzdENoaWxkIDogZWxlbWVudEluc3RhbmNlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByZXZpb3VzU2libGluZyA6IGVsZW1lbnRJbnN0YW5jZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuZXh0U2libGluZyA6IGVsZW1lbnRJbnN0YW5jZSB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdFbGVtZW50SW5zdGFuY2VMaXN0ICopXG5hbmQgZWxlbWVudEluc3RhbmNlTGlzdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4gZWxlbWVudEluc3RhbmNlIHRcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdJbWFnZUVsZW1lbnQgKilcbmFuZCBpbWFnZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gICAgKCogcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyBwcmVzZXJ2ZUFzcGVjdFJhdGlvICopXG4gIGVuZFxuXG5hbmQgc3dpdGNoRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG4gIGVuZFxuXG4oKiBYWFggZGVwcmVjYXRlZCA9PiBpbnRlcmZhY2UgR2V0U1ZHRG9jdW1lbnQgPT4gU1ZHRG9jdW1lbnQgZ2V0U1ZHRG9jdW1lbnQoKSAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHU3R5bGVFbGVtZW50ICopXG5hbmQgc3R5bGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgbWV0aG9kIHR5cGVfIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1lZGlhIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRpdGxlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BvaW50ICopXG5hbmQgcG9pbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgeCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1hdHJpeFRyYW5zZm9ybSA6IG1hdHJpeCB0IC0+IHBvaW50IHQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BvaW50TGlzdCAqKVxuYW5kIHBvaW50TGlzdCA9IFtwb2ludCB0XSBsaXN0XG5cbigqIGludGVyZmFjZSBTVkdNYXRyaXggKilcbmFuZCBtYXRyaXggPVxuICBvYmplY3RcbiAgICBtZXRob2QgYSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBiIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGMgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGYgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbXVsdGlwbHkgOiBtYXRyaXggdCAtPiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2QgaW52ZXJzZSA6IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCB0cmFuc2xhdGUgOiBmbG9hdCAtPiBmbG9hdCAtPiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2Qgc2NhbGUgOiBmbG9hdCAtPiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2Qgc2NhbGVOb25Vbmlmb3JtIDogZmxvYXQgLT4gZmxvYXQgLT4gbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIHJvdGF0ZSA6IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCByb3RhdGVGcm9tVmVjdG9yIDogZmxvYXQgLT4gZmxvYXQgLT4gbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIGZsaXBYIDogbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIGZsaXBZIDogbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNrZXdYIDogZmxvYXQgLT4gbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNrZXdZIDogZmxvYXQgLT4gbWF0cml4IHQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RyYW5zZm9ybSAqKVxuYW5kIHRyYW5zZm9ybSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBfdHlwZSA6IHRyYW5zZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1hdHJpeCA6IG1hdHJpeCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbmdsZSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZXRNYXRyaXggOiBtYXRyaXggdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRUcmFuc2xhdGUgOiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRTY2FsZSA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFJvdGF0ZSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFNrZXdYIDogZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0U2tld1kgOiBmbG9hdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdUcmFuc2Zvcm1MaXN0ICopXG5hbmQgdHJhbnNmb3JtTGlzdCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgW3RyYW5zZm9ybSB0XSBsaXN0XG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCA6IG1hdHJpeCAtPiB0cmFuc2Zvcm0gdCBtZXRoXG5cbiAgICBtZXRob2QgY29uc29saWRhdGUgOiB0cmFuc2Zvcm0gdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0ICopXG5hbmQgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0ID0gW3RyYW5zZm9ybUxpc3QgdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gKilcbmFuZCBwcmVzZXJ2ZUFzcGVjdFJhdGlvID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFsaWduIDogYWxpZ25tZW50VHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWVldE9yU2xpY2UgOiBtZWV0T3JTbGljZVR5cGUgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyAqKVxuYW5kIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IFtwcmVzZXJ2ZUFzcGVjdFJhdGlvIHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnICopXG5hbmQgcGF0aFNlZyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwYXRoU2VnVHlwZSA6IHBhdGhTZWdtZW50VHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGF0aFNlZ1R5cGVBc0xldHRlciA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQ2xvc2VQYXRoICopXG5hbmQgcGF0aFNlZ0Nsb3NlUGF0aCA9IHBhdGhTZWdcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdNb3ZldG9BYnMgKilcbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTW92ZXRvUmVsICopXG5hbmQgcGF0aFNlZ01vdmV0byA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgcGF0aFNlZ1xuXG4gICAgbWV0aG9kIHggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvQWJzICopXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b1JlbCAqKVxuYW5kIHBhdGhTZWdMaW5ldG8gPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB4IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwgKilcbmFuZCBwYXRoU2VnQ3VydmV0b0N1YmljID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHgxIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkxIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHgyIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkyIDogZmxvYXQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzICopXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwgKilcbmFuZCBwYXRoU2VnQ3VydmV0b1F1YWRyYXRpYyA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgcGF0aFNlZ1xuXG4gICAgbWV0aG9kIHggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB4MSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5MSA6IGZsb2F0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQXJjQWJzICopXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0FyY1JlbCopXG5hbmQgcGF0aFNlZ0FyYyA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgcGF0aFNlZ1xuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgcjEgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgcjIgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgYW5nbGUgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgbGFyZ2VBcmNGbGFnIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBzd2VlcEZsYWcgOiBib29sIHQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzICopXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwgKilcbmFuZCBwYXRoU2VnTGluZXRvSG9yaXpvbnRhbCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgcGF0aFNlZ1xuXG4gICAgbWV0aG9kIHggOiBmbG9hdFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCAqKVxuYW5kIHBhdGhTZWdMaW5ldG9WZXJ0aWNhbCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgcGF0aFNlZ1xuXG4gICAgbWV0aG9kIHkgOiBmbG9hdFxuICBlbmRcblxuYW5kIHBhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGggPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB4IDogZmxvYXRcblxuICAgIG1ldGhvZCB5IDogZmxvYXRcblxuICAgIG1ldGhvZCB4MiA6IGZsb2F0XG5cbiAgICBtZXRob2QgeTIgOiBmbG9hdFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzICopXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwgICopXG5hbmQgcGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGggPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB4IDogZmxvYXRcblxuICAgIG1ldGhvZCB5IDogZmxvYXRcbiAgZW5kXG5cbmFuZCBwYXRoU2VnTGlzdCA9IFtwYXRoU2VnIHRdIGxpc3RcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkUGF0aERhdGEgKilcbmFuZCBhbmltYXRlZFBhdGhEYXRhID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHBhdGhTZWdMaXN0IDogcGF0aFNlZ0xpc3QgdCBwcm9wXG5cbiAgICBtZXRob2Qgbm9ybWFsaXplZFBhdGhTZWdMaXN0IDogcGF0aFNlZ0xpc3QgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0ZWRQYXRoU2VnTGlzdCA6IHBhdGhTZWdMaXN0IHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGVkTm9ybWFsaXplZFBhdGhTZWdMaXN0IDogcGF0aFNlZ0xpc3QgdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aEVsZW1lbnQgKilcbmFuZCBwYXRoRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBpbmhlcml0IGFuaW1hdGVkUGF0aERhdGFcblxuICAgIG1ldGhvZCBwYXRoTGVuZ3RoIDogYW5pbWF0ZWROdW1iZXIgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0VG90YWxMZW5ndGggOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UG9pbnRBdExlbmd0aCA6IGZsb2F0IC0+IHBvaW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFBhdGhTZWdBdExlbmd0aCA6IGZsb2F0IC0+IGludFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDbG9zZVBhdGggOiBwYXRoU2VnQ2xvc2VQYXRoIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzIDogZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ01vdmV0byBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1JlbCA6IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdNb3ZldG8gbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnMgOiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnTGluZXRvIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnTGluZXRvUmVsIDogZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0xpbmV0byBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicyA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b0N1YmljIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdDdXJ2ZXRvQ3ViaWMgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b1F1YWRyYXRpYyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0FyY0FicyA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBib29sIHQgLT4gYm9vbCB0IC0+IHBhdGhTZWdBcmMgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdBcmNSZWwgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gYm9vbCB0IC0+IGJvb2wgdCAtPiBwYXRoU2VnQXJjIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyA6IGZsb2F0IC0+IHBhdGhTZWdMaW5ldG9Ib3Jpem9udGFsIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCA6IGZsb2F0IC0+IHBhdGhTZWdMaW5ldG9Ib3Jpem9udGFsIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMgOiBmbG9hdCAtPiBwYXRoU2VnTGluZXRvVmVydGljYWwgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCA6IGZsb2F0IC0+IHBhdGhTZWdMaW5ldG9WZXJ0aWNhbCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGggbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUmVjdEVsZW1lbnQgKilcbmFuZCByZWN0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJ4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcnkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdDaXJjbGVFbGVtZW50ICopXG5hbmQgY2lyY2xlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBtZXRob2QgY3ggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHIgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdFbGxpcHNlRWxlbWVudCAqKVxuYW5kIGVsbGlwc2VFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIG1ldGhvZCBjeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcnggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0xpbmVFbGVtZW50ICopXG5jbGFzcyB0eXBlIGxpbmVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIGluaGVyaXQgRG9tX2h0bWwuZXZlbnRUYXJnZXRcblxuICAgIG1ldGhvZCB4MSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkxIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeDIgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5MiA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkUG9pbnRzICopXG5hbmQgYW5pbWF0ZWRQb2ludHMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcG9pbnRzIDogcG9pbnRMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGVkcG9pbnRzIDogcG9pbnRMaXN0IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BvbHlsaW5lRWxlbWVudCAqKVxuYW5kIHBvbHlMaW5lRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBpbmhlcml0IGFuaW1hdGVkUG9pbnRzXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUG9seWdvbkVsZW1lbnQgKilcbmFuZCBwb2x5Z29uRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBpbmhlcml0IGFuaW1hdGVkUG9pbnRzXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVGV4dENvbnRlbnRFbGVtZW50ICopXG5hbmQgdGV4dENvbnRlbnRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IERvbV9odG1sLmV2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2QgdGV4dExlbmd0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxlbmd0aEFkanVzdCA6IGxlbmd0aEFkanVzdCBhbmltYXRlZCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXROdW1iZXJPZkNoYXJzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRDb21wdXRlZFRleHRMZW5ndGggOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U3ViU3RyaW5nTGVuZ3RoIDogaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U3RhcnRQb3NpdGlvbk9mQ2hhciA6IGludCAtPiBwb2ludCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFbmRQb3NpdGlvbk9mQ2hhciA6IGludCAtPiBwb2ludCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFeHRlbnRPZkNoYXIgOiBpbnQgLT4gcmVjdCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRSb3RhdGlvbk9mQ2hhciA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q2hhck51bUF0UG9zaXRpb24gOiBwb2ludCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHNlbGVjdFN1YlN0cmluZyA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCAqKVxuYW5kIHRleHRQb3NpdGlvbmluZ0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHRleHRDb250ZW50RWxlbWVudFxuXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkeCA6IGFuaW1hdGVkTGVuZ3RoTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkeSA6IGFuaW1hdGVkTGVuZ3RoTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByb3RhdGUgOiBhbmltYXRlZE51bWJlckxpc3QgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVGV4dEVsZW1lbnQgKilcbmFuZCB0ZXh0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgdGV4dFBvc2l0aW9uaW5nRWxlbWVudFxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG4gIGVuZFxuXG5hbmQgdHNwYW5FbGVtZW50ID0gdGV4dFBvc2l0aW9uaW5nRWxlbWVudFxuXG5hbmQgdHJlZkVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHRleHRQb3NpdGlvbmluZ0VsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVGV4dFBhdGhFbGVtZW50ICopXG5hbmQgdGV4dFBhdGhFbGVtZW50TWV0aG9kID0gW3RleHRQYXRoTWV0aG9kVHlwZV0gYW5pbWF0ZWRcblxuYW5kIHRleHRQYXRoRWxlbWVudFNwYWNpbmcgPSBbdGV4dFBhdGhTcGFjaW5nVHlwZV0gYW5pbWF0ZWRcblxuYW5kIHRleHRQYXRoRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgdGV4dENvbnRlbnRFbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgbWV0aG9kIHN0YXJ0T2Zmc2V0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWV0aG9kXyA6IHRleHRQYXRoRWxlbWVudE1ldGhvZCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3BhY2luZyA6IHRleHRQYXRoRWxlbWVudFNwYWNpbmcgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FsdEdseXBoRWxlbWVudCAqKVxuYW5kIGFsdEdseXBoRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgdGV4dFBvc2l0aW9uaW5nRWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIG1ldGhvZCBnbHlwaFJlZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb3JtYXQgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQWx0R2x5cGhEZWZFbGVtZW50ICopXG5hbmQgYWx0R2x5cGhEZWZFbGVtZW50ID0gZWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHQWx0R2x5cGhJdGVtRWxlbWVudCAqKVxuYW5kIGFsdEdseXBoSXRlbUVsZW1lbnQgPSBlbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdHbHlwaFJlZkVsZW1lbnQgKilcbmFuZCBnbHlwaFJlZkVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBtZXRob2QgZ2x5cGhSZWYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9ybWF0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBkeCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBkeSA6IGZsb2F0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYWludCA6IFNWR0NvbG9yIHsgKilcblxuKCogICAvLyBQYWludCBUeXBlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1JHQkNPTE9SID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUiA9IDI7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfTk9ORSA9IDEwMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1IgPSAxMDI7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfVVJJX05PTkUgPSAxMDM7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfVVJJX0NVUlJFTlRDT0xPUiA9IDEwNDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1IgPSAxMDU7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SX0lDQ0NPTE9SID0gMTA2OyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VSSSA9IDEwNzsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcGFpbnRUeXBlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVyaTsgKilcblxuKCogICB2b2lkIHNldFVyaShpbiBET01TdHJpbmcgdXJpKTsgKilcbigqICAgdm9pZCBzZXRQYWludChpbiB1bnNpZ25lZCBzaG9ydCBwYWludFR5cGUsIGluIERPTVN0cmluZyB1cmksIGluIERPTVN0cmluZyByZ2JDb2xvciwgaW4gRE9NU3RyaW5nIGljY0NvbG9yKSByYWlzZXMoU1ZHRXhjZXB0aW9uKTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdNYXJrZXJFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1NwYWNlLCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdTdHlsYWJsZSwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRml0VG9WaWV3Qm94IHsgKilcblxuKCogICAvLyBNYXJrZXIgVW5pdCBUeXBlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSVU5JVFNfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJVTklUU19VU0VSU1BBQ0VPTlVTRSA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJVTklUU19TVFJPS0VXSURUSCA9IDI7ICopXG5cbigqICAgLy8gTWFya2VyIE9yaWVudGF0aW9uIFR5cGVzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJfT1JJRU5UX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSX09SSUVOVF9BVVRPID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUl9PUklFTlRfQU5HTEUgPSAyOyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByZWZYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcmVmWTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gbWFya2VyVW5pdHM7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBtYXJrZXJXaWR0aDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIG1hcmtlckhlaWdodDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gb3JpZW50VHlwZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkQW5nbGUgb3JpZW50QW5nbGU7ICopXG5cbigqICAgdm9pZCBzZXRPcmllbnRUb0F1dG8oKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsgKilcbigqICAgdm9pZCBzZXRPcmllbnRUb0FuZ2xlKGluIFNWR0FuZ2xlIGFuZ2xlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdDb2xvclByb2ZpbGVFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlLCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdSZW5kZXJpbmdJbnRlbnQgeyAqKVxuKCogICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxvY2FsOyAqKVxuKCogICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7ICopXG4oKiAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCByZW5kZXJpbmdJbnRlbnQ7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHQ29sb3JQcm9maWxlUnVsZSA6IFNWR0NTU1J1bGUsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1JlbmRlcmluZ0ludGVudCB7ICopXG4oKiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjIHNldHJhaXNlcyhET01FeGNlcHRpb24pOyAqKVxuKCogICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWUgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7ICopXG4oKiAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCByZW5kZXJpbmdJbnRlbnQgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHR3JhZGllbnRFbGVtZW50ICopXG5hbmQgYW5pbWF0ZWRTcHJlYWRNZXRob2QgPSBbc3ByZWFkTWV0aG9kVHlwZV0gYW5pbWF0ZWRcblxuYW5kIGdyYWRpZW50RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gZ3JhZGllbnRVbml0czsgKilcbiAgICBtZXRob2QgZ3JhZGllbnRUcmFuc2Zvcm0gOiBhbmltYXRlZFRyYW5zZm9ybUxpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3ByZWFkTWV0aG9kIDogYW5pbWF0ZWRTcHJlYWRNZXRob2QgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50ICopXG5hbmQgbGluZWFyR3JhZGllbnRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBncmFkaWVudEVsZW1lbnRcblxuICAgIG1ldGhvZCB4MSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkxIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeDIgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5MiA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCAqKVxuYW5kIHJhZGlhbEdyYWRpZW50RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZ3JhZGllbnRFbGVtZW50XG5cbiAgICBtZXRob2QgY3ggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHIgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZ5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHU3RvcEVsZW1lbnQgKilcbmFuZCBzdG9wRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgbWV0aG9kIG9mZnNldCA6IGFuaW1hdGVkTnVtYmVyIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdHRlcm5FbGVtZW50ICopXG5hbmQgcGF0dGVybkVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IGZpdFRvVmlld0JveFxuXG4gICAgKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBwYXR0ZXJuVW5pdHM7ICopXG4gICAgKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBwYXR0ZXJuQ29udGVudFVuaXRzOyAqKVxuICAgIG1ldGhvZCBwYXR0ZXJuVHJhbnNmb3JtIDogYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdDbGlwUGF0aEVsZW1lbnQgKilcbmFuZCBjbGlwUGF0aEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gY2xpcFBhdGhVbml0czsgKilcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdNYXNrRWxlbWVudCAqKVxuYW5kIG1hc2tFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIG1hc2tVbml0czsgKilcbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIG1hc2tDb250ZW50VW5pdHM7ICopXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdGaWx0ZXJFbGVtZW50ICopXG5hbmQgZmlsdGVyRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gZmlsdGVyVW5pdHM7ICopXG4gICAgKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBwcmltaXRpdmVVbml0czsgKilcbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbHRlclJlc1ggOiBhbmltYXRlZEludGVnZXIgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZmlsdGVyUmVzWSA6IGFuaW1hdGVkSW50ZWdlciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZXRGaWx0ZXJSZXMgOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyA6IFNWR1N0eWxhYmxlIHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB5OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBoZWlnaHQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyByZXN1bHQ7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVCbGVuZEVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcblxuKCogICAvLyBCbGVuZCBNb2RlIFR5cGVzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUJMRU5EX01PREVfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUJMRU5EX01PREVfTk9STUFMID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQkxFTkRfTU9ERV9NVUxUSVBMWSA9IDI7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUJMRU5EX01PREVfU0NSRUVOID0gMzsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQkxFTkRfTU9ERV9EQVJLRU4gPSA0OyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVCTEVORF9NT0RFX0xJR0hURU4gPSA1OyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjI7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIG1vZGU7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcblxuKCogICAvLyBDb2xvciBNYXRyaXggVHlwZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9NQVRSSVggPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT0xPUk1BVFJJWF9UWVBFX1NBVFVSQVRFID0gMjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9IVUVST1RBVEUgPSAzOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5DRVRPQUxQSEEgPSA0OyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHR5cGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlckxpc3QgdmFsdWVzOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgOiBTVkdFbGVtZW50IHsgKilcblxuKCogICAvLyBDb21wb25lbnQgVHJhbnNmZXIgVHlwZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9JREVOVElUWSA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfVEFCTEUgPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0RJU0NSRVRFID0gMzsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9MSU5FQVIgPSA0OyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0dBTU1BID0gNTsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB0eXBlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IHRhYmxlVmFsdWVzOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc2xvcGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBpbnRlcmNlcHQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBhbXBsaXR1ZGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBleHBvbmVudDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIG9mZnNldDsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUZ1bmNSRWxlbWVudCA6IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUZ1bmNHRWxlbWVudCA6IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUZ1bmNCRWxlbWVudCA6IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUZ1bmNBRWxlbWVudCA6IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gQ29tcG9zaXRlIE9wZXJhdG9ycyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9PVkVSID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX0lOID0gMjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX09VVCA9IDM7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9BVE9QID0gNDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX1hPUiA9IDU7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9BUklUSE1FVElDID0gNjsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4yOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBvcGVyYXRvcjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGsxOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgazI7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrMzsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGs0OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gRWRnZSBNb2RlIFZhbHVlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRURHRU1PREVfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19FREdFTU9ERV9EVVBMSUNBVEUgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRURHRU1PREVfV1JBUCA9IDI7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19FREdFTU9ERV9OT05FID0gMzsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRJbnRlZ2VyIG9yZGVyWDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkSW50ZWdlciBvcmRlclk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlckxpc3Qga2VybmVsTWF0cml4OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZGl2aXNvcjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGJpYXM7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEludGVnZXIgdGFyZ2V0WDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkSW50ZWdlciB0YXJnZXRZOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBlZGdlTW9kZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGtlcm5lbFVuaXRMZW5ndGhYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIga2VybmVsVW5pdExlbmd0aFk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEJvb2xlYW4gcHJlc2VydmVBbHBoYTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzdXJmYWNlU2NhbGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBkaWZmdXNlQ29uc3RhbnQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrZXJuZWxVbml0TGVuZ3RoWDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGtlcm5lbFVuaXRMZW5ndGhZOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCA6IFNWR0VsZW1lbnQgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgYXppbXV0aDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGVsZXZhdGlvbjsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRVBvaW50TGlnaHRFbGVtZW50IDogU1ZHRWxlbWVudCB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB4OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgeTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHo7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVTcG90TGlnaHRFbGVtZW50IDogU1ZHRWxlbWVudCB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB4OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgeTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHo7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBwb2ludHNBdFg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBwb2ludHNBdFk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBwb2ludHNBdFo7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzcGVjdWxhckV4cG9uZW50OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgbGltaXRpbmdDb25lQW5nbGU7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIC8vIENoYW5uZWwgU2VsZWN0b3JzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DSEFOTkVMX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ0hBTk5FTF9SID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NIQU5ORUxfRyA9IDI7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DSEFOTkVMX0IgPSAzOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ0hBTk5FTF9BID0gNDsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4yOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc2NhbGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHhDaGFubmVsU2VsZWN0b3I7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHlDaGFubmVsU2VsZWN0b3I7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVGbG9vZEVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHN0ZERldmlhdGlvblg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzdGREZXZpYXRpb25ZOyAqKVxuXG4oKiAgIHZvaWQgc2V0U3RkRGV2aWF0aW9uKGluIGZsb2F0IHN0ZERldmlhdGlvblgsIGluIGZsb2F0IHN0ZERldmlhdGlvblkpIHJhaXNlcyhET01FeGNlcHRpb24pOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFSW1hZ2VFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1VSSVJlZmVyZW5jZSwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHByZXNlcnZlQXNwZWN0UmF0aW87ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVNZXJnZUVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRU1lcmdlTm9kZUVsZW1lbnQgOiBTVkdFbGVtZW50IHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRU1vcnBob2xvZ3lFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcblxuKCogICAvLyBNb3JwaG9sb2d5IE9wZXJhdG9ycyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTU9SUEhPTE9HWV9PUEVSQVRPUl9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01PUlBIT0xPR1lfT1BFUkFUT1JfRVJPREUgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTU9SUEhPTE9HWV9PUEVSQVRPUl9ESUxBVEUgPSAyOyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIG9wZXJhdG9yOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcmFkaXVzWDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHJhZGl1c1k7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVPZmZzZXRFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZHg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBkeTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHN1cmZhY2VTY2FsZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHNwZWN1bGFyQ29uc3RhbnQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzcGVjdWxhckV4cG9uZW50OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIga2VybmVsVW5pdExlbmd0aFg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrZXJuZWxVbml0TGVuZ3RoWTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRVRpbGVFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcblxuKCogICAvLyBUdXJidWxlbmNlIFR5cGVzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19UVVJCVUxFTkNFX1RZUEVfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19UVVJCVUxFTkNFX1RZUEVfRlJBQ1RBTE5PSVNFID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RVUkJVTEVOQ0VfVFlQRV9UVVJCVUxFTkNFID0gMjsgKilcblxuKCogICAvLyBTdGl0Y2ggT3B0aW9ucyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfU1RJVENIVFlQRV9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1NUSVRDSFRZUEVfU1RJVENIID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1NUSVRDSFRZUEVfTk9TVElUQ0ggPSAyOyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBiYXNlRnJlcXVlbmN5WDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGJhc2VGcmVxdWVuY3lZOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRJbnRlZ2VyIG51bU9jdGF2ZXM7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzZWVkOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBzdGl0Y2hUaWxlczsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gdHlwZTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdDdXJzb3JFbGVtZW50ICopXG5hbmQgY3Vyc29yRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQUVsZW1lbnQgKilcbmFuZCBhRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgbWV0aG9kIHRhcmdldCA6IGFuaW1hdGVkU3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1ZpZXdFbGVtZW50ICopXG5hbmQgdmlld0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBmaXRUb1ZpZXdCb3hcblxuICAgIGluaGVyaXQgem9vbUFuZFBhblxuXG4gICAgbWV0aG9kIHZpZXdUYXJnZXQgOiBzdHJpbmdMaXN0IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1NjcmlwdEVsZW1lbnQgKilcbmFuZCBzY3JpcHRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBtZXRob2QgdHlwZV8gOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHWm9vbUV2ZW50IDogVUlFdmVudCAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUmVjdCB6b29tUmVjdFNjcmVlbjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IHByZXZpb3VzU2NhbGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2ludCBwcmV2aW91c1RyYW5zbGF0ZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IG5ld1NjYWxlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnQgbmV3VHJhbnNsYXRlOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGlvbkVsZW1lbnQgKilcbmFuZCBhbmltYXRpb25FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgICgqIGluaGVyaXQgZWxlbWVudFRpbWVDb250cm9sICopXG4gICAgbWV0aG9kIHRhcmdldEVsZW1lbnQgOiBlbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldFN0YXJ0VGltZSA6IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRDdXJyZW50VGltZSA6IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRTaW1wbGVEdXJhdGlvbiA6IGZsb2F0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlRWxlbWVudCAqKVxuYW5kIGFuaW1hdGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBhbmltYXRpb25FbGVtZW50XG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHU2V0RWxlbWVudCAqKVxuYW5kIHNldEVsZW1lbnQgPSBhbmltYXRpb25FbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlTW90aW9uRWxlbWVudCAqKVxuYW5kIGFuaW1hdGVNb3Rpb25FbGVtZW50ID0gYW5pbWF0aW9uRWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHTVBhdGhFbGVtZW50ICopXG5hbmQgbVBhdGhFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudCAqKVxuYW5kIGFuaW1hdGVDb2xvckVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGFuaW1hdGlvbkVsZW1lbnRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCAqKVxuYW5kIGFuaW1hdGVUcmFuc2Zvcm1FbGVtZW50ID0gYW5pbWF0aW9uRWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHRm9udEVsZW1lbnQgKilcbmFuZCBmb250RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0dseXBoRWxlbWVudCAqKVxuKCogaW50ZXJmYWNlIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQqKVxuYW5kIGdseXBoRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0hLZXJuRWxlbWVudCA6IFNWR0VsZW1lbnQgKilcbigqIGludGVyZmFjZSBTVkdWS2VybkVsZW1lbnQgOiBTVkdFbGVtZW50ICopXG5cbigqIGludGVyZmFjZSBTVkdGb250RmFjZUVsZW1lbnQgKilcbmNsYXNzIHR5cGUgZm9udEZhY2VFbGVtZW50ID0gZWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHRm9udEZhY2VTcmNFbGVtZW50ICopXG5jbGFzcyB0eXBlIGZvbnRGYWNlU3JjRWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0ZvbnRGYWNlVXJpRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBmb250RmFjZVVyaUVsZW1lbnQgPSBlbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQgKilcbmNsYXNzIHR5cGUgZm9udEZhY2VGb3JtYXRFbGVtZW50ID0gZWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHRm9udEZhY2VOYW1lRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBmb250RmFjZU5hbWVFbGVtZW50ID0gZWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHTWV0YWRhdGFFbGVtZW50ICopXG5jbGFzcyB0eXBlIG1ldGFkYXRhRWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50ICopXG5jbGFzcyB0eXBlIGZvcmVpZ25PYmplY3RFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgY3JlYXRlRWxlbWVudCAoZG9jIDogZG9jdW1lbnQgdCkgbmFtZSA9IGRvYyMjY3JlYXRlRWxlbWVudE5TIHhtbG5zIChKcy5zdHJpbmcgbmFtZSlcblxubGV0IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIG5hbWUgPSBKcy5VbnNhZmUuY29lcmNlIChjcmVhdGVFbGVtZW50IGRvYyBuYW1lKVxuXG5sZXQgY3JlYXRlQSBkb2MgOiBhRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhXCJcblxubGV0IGNyZWF0ZUFsdEdseXBoIGRvYyA6IGFsdEdseXBoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhbHRnbHlwaFwiXG5cbmxldCBjcmVhdGVBbHRHbHlwaERlZiBkb2MgOiBhbHRHbHlwaERlZkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYWx0Z2x5cGhkZWZcIlxuXG5sZXQgY3JlYXRlQWx0R2x5cGhJdGVtIGRvYyA6IGFsdEdseXBoSXRlbUVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYWx0Z2x5cGhpdGVtXCJcblxubGV0IGNyZWF0ZUFuaW1hdGUgZG9jIDogYW5pbWF0ZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYW5pbWF0ZVwiXG5cbmxldCBjcmVhdGVBbmltYXRlQ29sb3IgZG9jIDogYW5pbWF0ZUNvbG9yRWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhbmltYXRlY29sb3JcIlxuXG5sZXQgY3JlYXRlQW5pbWF0ZU1vdGlvbiBkb2MgOiBhbmltYXRlTW90aW9uRWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhbmltYXRlbW90aW9uXCJcblxubGV0IGNyZWF0ZUFuaW1hdGVUcmFuc2Zvcm0gZG9jIDogYW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYW5pbWF0ZXRyYW5zZm9ybVwiXG5cbmxldCBjcmVhdGVDaXJjbGUgZG9jIDogY2lyY2xlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJjaXJjbGVcIlxuXG5sZXQgY3JlYXRlQ2xpcFBhdGggZG9jIDogY2xpcFBhdGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImNsaXBwYXRoXCJcblxuKCogbGV0IGNyZWF0ZUNvbG9yUHJvZmlsZSBkb2MgOiBjb2xvclByb2ZpbGUgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiY29sb3ItcHJvZmlsZVwiICopXG5sZXQgY3JlYXRlQ3Vyc29yIGRvYyA6IGN1cnNvckVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiY3Vyc29yXCJcblxubGV0IGNyZWF0ZURlZnMgZG9jIDogZGVmc0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZGVmc1wiXG5cbmxldCBjcmVhdGVEZXNjIGRvYyA6IGRlc2NFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImRlc2NcIlxuXG5sZXQgY3JlYXRlRWxsaXBzZSBkb2MgOiBlbGxpcHNlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJlbGxpcHNlXCJcblxuKCogbGV0IGNyZWF0ZUZlKiAqKVxubGV0IGNyZWF0ZUZpbHRlciBkb2MgOiBmaWx0ZXJFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZpbHRlclwiXG5cbmxldCBjcmVhdGVGb250IGRvYyA6IGZvbnRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZvbnRcIlxuXG5sZXQgY3JlYXRlRm9udEZhY2UgZG9jIDogZm9udEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZm9udC1mYWNlXCJcblxubGV0IGNyZWF0ZUZvbnRGYWNlRm9ybWF0IGRvYyA6IGZvbnRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZvbnQtZmFjZS1mb3JtYXRcIlxuXG5sZXQgY3JlYXRlRm9udEZhY2VOYW1lIGRvYyA6IGZvbnRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZvbnQtZmFjZS1uYW1lXCJcblxubGV0IGNyZWF0ZUZvbnRGYWNlU3JjIGRvYyA6IGZvbnRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZvbnQtZmFjZS1zcmNcIlxuXG5sZXQgY3JlYXRlRm9udEZhY2VVcmkgZG9jIDogZm9udEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZm9udC1mYWNlLXVyaVwiXG5cbmxldCBjcmVhdGVGb3JlaWduT2JqZWN0IGRvYyA6IGZvcmVpZ25PYmplY3RFbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZvcmVpZ25PYmplY3RcIlxuXG5sZXQgY3JlYXRlRyBkb2MgOiBnRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJnXCJcblxubGV0IGNyZWF0ZUdseXBoIGRvYyA6IGdseXBoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJnbHlwaFwiXG5cbmxldCBjcmVhdGVHbHlwaFJlZiBkb2MgOiBnbHlwaEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZ2x5cGhyZWZcIlxuXG5sZXQgY3JlYXRlaGtlcm4gZG9jIDogZWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJoa2VyblwiXG5cbmxldCBjcmVhdGVJbWFnZSBkb2MgOiBpbWFnZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaW1hZ2VcIlxuXG5sZXQgY3JlYXRlTGluZUVsZW1lbnQgZG9jIDogbGluZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibGluZVwiXG5cbmxldCBjcmVhdGVMaW5lYXJFbGVtZW50IGRvYyA6IGxpbmVhckdyYWRpZW50RWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJsaW5lYXJncmFkaWVudFwiXG5cbigqIGxldCBjcmVhdGVNYXJrZXIgZG9jIDogbWFya2VyRWxlbWVudCAqKVxubGV0IGNyZWF0ZU1hc2sgZG9jIDogbWFza0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibWFza1wiXG5cbmxldCBjcmVhdGVNZXRhRGF0YSBkb2MgOiBtZXRhZGF0YUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibWV0YWRhdGFcIlxuXG5sZXQgY3JlYXRlTWlzc2luZ0dseXBoIGRvYyA6IGdseXBoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJtaXNzaW5nLWdseXBoXCJcblxubGV0IGNyZWF0ZU1QYXRoIGRvYyA6IG1QYXRoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJtcGF0aFwiXG5cbmxldCBjcmVhdGVQYXRoIGRvYyA6IHBhdGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInBhdGhcIlxuXG5sZXQgY3JlYXRlUGF0dGVybiBkb2MgOiBwYXR0ZXJuRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJwYXR0ZXJuXCJcblxubGV0IGNyZWF0ZVBvbHlnb24gZG9jIDogcG9seWdvbkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicG9seWdvblwiXG5cbmxldCBjcmVhdGVQb2x5bGluZSBkb2MgOiBwb2x5TGluZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicG9seWxpbmVcIlxuXG5sZXQgY3JlYXRlUmFkaWFsZ3JhZGllbnQgZG9jIDogcmFkaWFsR3JhZGllbnRFbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInJhZGlhbGdyYWRpZW50XCJcblxubGV0IGNyZWF0ZVJlY3QgZG9jIDogcmVjdEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicmVjdFwiXG5cbmxldCBjcmVhdGVTY3JpcHQgZG9jIDogc2NyaXB0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJzY3JpcHRcIlxuXG5sZXQgY3JlYXRlU2V0IGRvYyA6IHNldEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic2V0XCJcblxubGV0IGNyZWF0ZVN0b3AgZG9jIDogc3RvcEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic3RvcFwiXG5cbmxldCBjcmVhdGVTdHlsZSBkb2MgOiBzdHlsZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic3R5bGVcIlxuXG5sZXQgY3JlYXRlU3ZnIGRvYyA6IHN2Z0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic3ZnXCJcblxubGV0IGNyZWF0ZVN3aXRjaCBkb2MgOiBzd2l0Y2hFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInN3aXRjaFwiXG5cbmxldCBjcmVhdGVTeW1ib2wgZG9jIDogc3ltYm9sRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJzeW1ib2xcIlxuXG5sZXQgY3JlYXRlVGV4dEVsZW1lbnQgZG9jIDogdGV4dEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGV4dFwiXG5cbmxldCBjcmVhdGVUZXh0cGF0aCBkb2MgOiB0ZXh0UGF0aEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGV4dHBhdGhcIlxuXG5sZXQgY3JlYXRlVGl0bGUgZG9jIDogdGl0bGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRpdGxlXCJcblxubGV0IGNyZWF0ZVRyZWYgZG9jIDogdHJlZkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidHJlZlwiXG5cbmxldCBjcmVhdGVUc3BhbiBkb2MgOiB0c3BhbkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidHNwYW5cIlxuXG5sZXQgY3JlYXRlVXNlIGRvYyA6IHVzZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidXNlXCJcblxubGV0IGNyZWF0ZVZpZXcgZG9jIDogdmlld0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidmlld1wiXG5cbmxldCBjcmVhdGV2a2VybiBkb2MgOiBlbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInZrZXJuXCJcblxuKCoqKiopXG5cbmxldCBzdmdfZWxlbWVudCA6IGVsZW1lbnQgdCBjb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX1NWR0VsZW1lbnRcblxubGV0IGRvY3VtZW50ID0gSnMuVW5zYWZlLmdsb2JhbCMjLmRvY3VtZW50XG5cbmxldCBnZXRFbGVtZW50QnlJZCBpZCA6IGVsZW1lbnQgdCA9XG4gIEpzLk9wdC5jYXNlXG4gICAgKEpzLlVuc2FmZS5nbG9iYWwjIy5kb2N1bWVudCMjZ2V0RWxlbWVudEJ5SWQgKEpzLnN0cmluZyBpZCkpXG4gICAgKGZ1biAoKSAtPiByYWlzZSBOb3RfZm91bmQpXG4gICAgKGZ1biBlIC0+IGlmIEpzLmluc3RhbmNlb2YgZSBzdmdfZWxlbWVudCB0aGVuIGUgZWxzZSByYWlzZSBOb3RfZm91bmQpXG5cbm1vZHVsZSBDb2VyY2VUbyA9IHN0cnVjdFxuICBsZXQgZWxlbWVudCAoZSA6ICNEb20ubm9kZSBKcy50KSA6IGVsZW1lbnQgSnMudCBKcy5vcHQgPVxuICAgIGlmIEpzLmluc3RhbmNlb2YgZSBzdmdfZWxlbWVudCB0aGVuIEpzLnNvbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSkgZWxzZSBKcy5udWxsXG5cbiAgbGV0IHVuc2FmZUNvZXJjZSAoZSA6ICNlbGVtZW50IHQpIHRhZyA9XG4gICAgaWYgZSMjLnRhZ05hbWUjI3RvTG93ZXJDYXNlID09IEpzLnN0cmluZyB0YWdcbiAgICB0aGVuIEpzLnNvbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICBlbHNlIEpzLm51bGxcblxuICBsZXQgYSBlIDogYUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImFcIlxuXG4gIGxldCBhbHRHbHlwaCBlIDogYWx0R2x5cGhFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJhbHRnbHlwaFwiXG5cbiAgbGV0IGFsdEdseXBoRGVmIGUgOiBhbHRHbHlwaERlZkVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImFsdGdseXBoZGVmXCJcblxuICBsZXQgYWx0R2x5cGhJdGVtIGUgOiBhbHRHbHlwaEl0ZW1FbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJhbHRnbHlwaGl0ZW1cIlxuXG4gIGxldCBhbmltYXRlIGUgOiBhbmltYXRlRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiYW5pbWF0ZVwiXG5cbiAgbGV0IGFuaW1hdGVDb2xvciBlIDogYW5pbWF0ZUNvbG9yRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiYW5pbWF0ZWNvbG9yXCJcblxuICBsZXQgYW5pbWF0ZU1vdGlvbiBlIDogYW5pbWF0ZU1vdGlvbkVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImFuaW1hdGVtb3Rpb25cIlxuXG4gIGxldCBhbmltYXRlVHJhbnNmb3JtIGUgOiBhbmltYXRlVHJhbnNmb3JtRWxlbWVudCB0IG9wdCA9XG4gICAgdW5zYWZlQ29lcmNlIGUgXCJhbmltYXRldHJhbnNmb3JtXCJcblxuICBsZXQgY2lyY2xlIGUgOiBjaXJjbGVFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJjaXJjbGVcIlxuXG4gIGxldCBjbGlwUGF0aCBlIDogY2xpcFBhdGhFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJjbGlwcGF0aFwiXG5cbiAgKCogbGV0IENvbG9yUHJvZmlsZSBlIDogY29sb3JQcm9maWxlIHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJjb2xvci1wcm9maWxlXCIgKilcbiAgbGV0IGN1cnNvciBlIDogY3Vyc29yRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiY3Vyc29yXCJcblxuICBsZXQgZGVmcyBlIDogZGVmc0VsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImRlZnNcIlxuXG4gIGxldCBkZXNjIGUgOiBkZXNjRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZGVzY1wiXG5cbiAgbGV0IGVsbGlwc2UgZSA6IGVsbGlwc2VFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJlbGxpcHNlXCJcblxuICAoKiBsZXQgRmUqICopXG4gIGxldCBmaWx0ZXIgZSA6IGZpbHRlckVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImZpbHRlclwiXG5cbiAgbGV0IGZvbnQgZSA6IGZvbnRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJmb250XCJcblxuICBsZXQgZm9udEZhY2UgZSA6IGZvbnRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJmb250LWZhY2VcIlxuXG4gIGxldCBmb250RmFjZUZvcm1hdCBlIDogZm9udEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImZvbnQtZmFjZS1mb3JtYXRcIlxuXG4gIGxldCBmb250RmFjZU5hbWUgZSA6IGZvbnRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJmb250LWZhY2UtbmFtZVwiXG5cbiAgbGV0IGZvbnRGYWNlU3JjIGUgOiBmb250RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9udC1mYWNlLXNyY1wiXG5cbiAgbGV0IGZvbnRGYWNlVXJpIGUgOiBmb250RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9udC1mYWNlLXVyaVwiXG5cbiAgbGV0IGZvcmVpZ25PYmplY3QgZSA6IGZvcmVpZ25PYmplY3RFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJmb3JlaWdub2JqZWN0XCJcblxuICBsZXQgZyBlIDogZ0VsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImdcIlxuXG4gIGxldCBnbHlwaCBlIDogZ2x5cGhFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJnbHlwaFwiXG5cbiAgbGV0IGdseXBoUmVmIGUgOiBnbHlwaEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImdseXBocmVmXCJcblxuICBsZXQgaGtlcm4gZSA6IGVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImhrZXJuXCJcblxuICBsZXQgaW1hZ2UgZSA6IGltYWdlRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiaW1hZ2VcIlxuXG4gIGxldCBsaW5lRWxlbWVudCBlIDogbGluZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImxpbmVcIlxuXG4gIGxldCBsaW5lYXJFbGVtZW50IGUgOiBsaW5lYXJHcmFkaWVudEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImxpbmVhcmdyYWRpZW50XCJcblxuICAoKiBsZXQgTWFya2VyIGUgOiBtYXJrZXJFbGVtZW50ICopXG4gIGxldCBtYXNrIGUgOiBtYXNrRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwibWFza1wiXG5cbiAgbGV0IG1ldGFEYXRhIGUgOiBtZXRhZGF0YUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcIm1ldGFkYXRhXCJcblxuICBsZXQgbWlzc2luZ0dseXBoIGUgOiBnbHlwaEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcIm1pc3NpbmctZ2x5cGhcIlxuXG4gIGxldCBtUGF0aCBlIDogbVBhdGhFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJtcGF0aFwiXG5cbiAgbGV0IHBhdGggZSA6IHBhdGhFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJwYXRoXCJcblxuICBsZXQgcGF0dGVybiBlIDogcGF0dGVybkVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInBhdHRlcm5cIlxuXG4gIGxldCBwb2x5Z29uIGUgOiBwb2x5Z29uRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwicG9seWdvblwiXG5cbiAgbGV0IHBvbHlsaW5lIGUgOiBwb2x5TGluZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInBvbHlsaW5lXCJcblxuICBsZXQgcmFkaWFsZ3JhZGllbnQgZSA6IHJhZGlhbEdyYWRpZW50RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwicmFkaWFsZ3JhZGllbnRcIlxuXG4gIGxldCByZWN0IGUgOiByZWN0RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwicmVjdFwiXG5cbiAgbGV0IHNjcmlwdCBlIDogc2NyaXB0RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwic2NyaXB0XCJcblxuICBsZXQgc2V0IGUgOiBzZXRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJzZXRcIlxuXG4gIGxldCBzdG9wIGUgOiBzdG9wRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwic3RvcFwiXG5cbiAgbGV0IHN0eWxlIGUgOiBzdHlsZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInN0eWxlXCJcblxuICBsZXQgc3ZnIGUgOiBzdmdFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJzdmdcIlxuXG4gIGxldCBzd2l0Y2ggZSA6IHN3aXRjaEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInN3aXRjaFwiXG5cbiAgbGV0IHN5bWJvbCBlIDogc3ltYm9sRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwic3ltYm9sXCJcblxuICBsZXQgdGV4dEVsZW1lbnQgZSA6IHRleHRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJ0ZXh0XCJcblxuICBsZXQgdGV4dHBhdGggZSA6IHRleHRQYXRoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidGV4dHBhdGhcIlxuXG4gIGxldCB0aXRsZSBlIDogdGl0bGVFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJ0aXRsZVwiXG5cbiAgbGV0IHRyZWYgZSA6IHRyZWZFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJ0cmVmXCJcblxuICBsZXQgdHNwYW4gZSA6IHRzcGFuRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidHNwYW5cIlxuXG4gIGxldCB1c2UgZSA6IHVzZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInVzZVwiXG5cbiAgbGV0IHZpZXcgZSA6IHZpZXdFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJ2aWV3XCJcblxuICBsZXQgdmtlcm4gZSA6IGVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInZrZXJuXCJcbmVuZFxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxNCBIdWdvIEhldXphcmRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxuKCogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0V2ZW50U291cmNlICopXG5vcGVuIEpzXG5vcGVuIERvbVxub3BlbiEgSW1wb3J0XG5cbnR5cGUgc3RhdGUgPVxuICB8IENPTk5FQ1RJTkdcbiAgfCBPUEVOXG4gIHwgQ0xPU0VEXG5cbmNsYXNzIHR5cGUgWydhXSBtZXNzYWdlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFsnYV0gRG9tLmV2ZW50XG5cbiAgICBtZXRob2QgZGF0YSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvcmlnaW4gOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGFzdEV2ZW50SWQgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gICAgKCogbWV0aG9kIHNvdXJjZSA6IHVuaXQgKilcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZXZlbnRTb3VyY2UgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIG1ldGhvZCB1cmwgOiBzdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2l0aENyZWRlbnRpYWxzIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWFkeVN0YXRlIDogc3RhdGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsb3NlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgb25vcGVuIDogKCdzZWxmIHQsICdzZWxmIG1lc3NhZ2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubWVzc2FnZSA6ICgnc2VsZiB0LCAnc2VsZiBtZXNzYWdlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmVycm9yIDogKCdzZWxmIHQsICdzZWxmIG1lc3NhZ2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBvcHRpb25zID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHdpdGhDcmVkZW50aWFscyA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuICBlbmRcblxubGV0IHdpdGhDcmVkZW50aWFscyBiIDogb3B0aW9ucyB0ID1cbiAgbGV0IGluaXQgPSBKcy5VbnNhZmUub2JqIFt8fF0gaW5cbiAgaW5pdCMjLndpdGhDcmVkZW50aWFscyA6PSBKcy5ib29sIGI7XG4gIGluaXRcblxubGV0IGV2ZW50U291cmNlID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9FdmVudFNvdXJjZVxuXG5sZXQgZXZlbnRTb3VyY2Vfb3B0aW9ucyA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRXZlbnRTb3VyY2VcblxubGV0IGFkZEV2ZW50TGlzdGVuZXIgPSBEb20uYWRkRXZlbnRMaXN0ZW5lclxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIGNvbnNvbGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbG9nIDogXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBsb2dfMiA6IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBsb2dfMyA6IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGxvZ180IDogXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBsb2dfNSA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBsb2dfNiA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGxvZ183IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBsb2dfOCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZWJ1ZyA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVidWdfMiA6IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZWJ1Z18zIDogXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVidWdfNCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVidWdfNSA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpbmZvIDogXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpbmZvXzIgOiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5mb18zIDogXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5mb180IDogXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpbmZvXzUgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgd2FybiA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgd2Fybl8yIDogXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHdhcm5fMyA6IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHdhcm5fNCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgd2Fybl81IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGVycm9yIDogXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBlcnJvcl8yIDogXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGVycm9yXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBlcnJvcl80IDogXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBlcnJvcl81IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFzc2VydF8gOiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXNzZXJ0XzEgOiBib29sIHQgLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhc3NlcnRfMiA6IGJvb2wgdCAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXNzZXJ0XzMgOiBib29sIHQgLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXNzZXJ0XzQgOiBib29sIHQgLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhc3NlcnRfNSA6IGJvb2wgdCAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGlyIDogXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkaXJ4bWwgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRyYWNlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXAgOiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwXzIgOiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXBfMyA6IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwXzQgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwXzUgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXBDb2xsYXBzZWQgOiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwQ29sbGFwc2VkXzIgOiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXBDb2xsYXBzZWRfMyA6IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwQ29sbGFwc2VkXzQgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwQ29sbGFwc2VkXzUgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXBFbmQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0aW1lIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGltZUVuZCA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuZXh0ZXJuYWwgZ2V0X2NvbnNvbGUgOiB1bml0IC0+IGNvbnNvbGUgdCA9IFwiY2FtbF9qc19nZXRfY29uc29sZVwiXG5cbmxldCBjb25zb2xlID0gZ2V0X2NvbnNvbGUgKClcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgU3TDqXBoYW5lIExlZ3JhbmRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG50eXBlIHBvc2l0aW9uRXJyb3JDb2RlXG5cbnR5cGUgd2F0Y2hJZFxuXG5jbGFzcyB0eXBlIGNvb3JkaW5hdGVzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxhdGl0dWRlIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxvbmdpdHVkZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbHRpdHVkZSA6IGZsb2F0IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWNjdXJhY3kgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWx0aXR1ZGVBY2N1cmFjeSA6IGZsb2F0IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVhZGluZyA6IGZsb2F0IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3BlZWQgOiBmbG9hdCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBwb3NpdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjb29yZHMgOiBjb29yZGluYXRlcyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0aW1lc3RhbXAgOiBKcy5kYXRlIEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcG9zaXRpb25PcHRpb25zID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGVuYWJsZUhpZ2hBY2N1cmFjeSA6IGJvb2wgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0aW1lb3V0IDogaW50IEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWF4aW11bUFnZSA6IGludCBKcy53cml0ZW9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBwb3NpdGlvbkVycm9yID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIF9QRVJNSVNTSU9OX0RFTklFRF8gOiBwb3NpdGlvbkVycm9yQ29kZSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BPU0lUSU9OX1VOQVZBSUxBQkxFXyA6IHBvc2l0aW9uRXJyb3JDb2RlIEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVElNRU9VVCA6IHBvc2l0aW9uRXJyb3JDb2RlIEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb2RlIDogcG9zaXRpb25FcnJvckNvZGUgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1lc3NhZ2UgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGdlb2xvY2F0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGdldEN1cnJlbnRQb3NpdGlvbiA6XG4gICAgICAgICAocG9zaXRpb24gSnMudCAtPiB1bml0KSBKcy5jYWxsYmFja1xuICAgICAgLT4gKHBvc2l0aW9uRXJyb3IgSnMudCAtPiB1bml0KSBKcy5jYWxsYmFja1xuICAgICAgLT4gcG9zaXRpb25PcHRpb25zIEpzLnRcbiAgICAgIC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHdhdGNoUG9zaXRpb24gOlxuICAgICAgICAgKHBvc2l0aW9uIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2tcbiAgICAgIC0+IChwb3NpdGlvbkVycm9yIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2tcbiAgICAgIC0+IHBvc2l0aW9uT3B0aW9ucyBKcy50XG4gICAgICAtPiB3YXRjaElkIEpzLm1ldGhcblxuICAgIG1ldGhvZCBjbGVhcldhdGNoIDogd2F0Y2hJZCAtPiB1bml0IEpzLm1ldGhcbiAgZW5kXG5cbmxldCBlbXB0eV9wb3NpdGlvbl9vcHRpb25zICgpID0gSnMuVW5zYWZlLm9iaiBbfHxdXG5cbmxldCBnZW9sb2NhdGlvbiA9XG4gIGxldCB4ID0gSnMuVW5zYWZlLmdsb2JhbCMjLm5hdmlnYXRvciBpblxuICBpZiBKcy5PcHRkZWYudGVzdCB4IHRoZW4geCMjLmdlb2xvY2F0aW9uIGVsc2UgeFxuXG4oKiB1bmRlZmluZWQgKilcblxubGV0IGlzX3N1cHBvcnRlZCAoKSA9IEpzLk9wdGRlZi50ZXN0IGdlb2xvY2F0aW9uXG4iLCJjbGFzcyB0eXBlIGludGVyc2VjdGlvbk9ic2VydmVyRW50cnkgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdGFyZ2V0IDogRG9tLm5vZGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYm91bmRpbmdDbGllbnRSZWN0IDogRG9tX2h0bWwuY2xpZW50UmVjdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByb290Qm91bmRzIDogRG9tX2h0bWwuY2xpZW50UmVjdCBKcy50IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaW50ZXJzZWN0aW9uUmVjdCA6IERvbV9odG1sLmNsaWVudFJlY3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaW50ZXJzZWN0aW9uUmF0aW8gOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaXNJbnRlcnNlY3RpbmcgOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRpbWUgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGludGVyc2VjdGlvbk9ic2VydmVyT3B0aW9ucyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCByb290IDogRG9tLm5vZGUgSnMudCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJvb3RNYXJnaW4gOiBKcy5qc19zdHJpbmcgSnMudCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRocmVzaG9sZCA6IGZsb2F0IEpzLmpzX2FycmF5IEpzLnQgSnMud3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgcm9vdCA6IERvbS5ub2RlIEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByb290TWFyZ2luIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRocmVzaG9sZHMgOiBmbG9hdCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvYnNlcnZlIDogI0RvbS5ub2RlIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgdW5vYnNlcnZlIDogI0RvbS5ub2RlIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgZGlzY29ubmVjdCA6IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHRha2VSZWNvcmRzIDogaW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSBKcy50IEpzLmpzX2FycmF5IEpzLm1ldGhcbiAgZW5kXG5cbmxldCBlbXB0eV9pbnRlcnNlY3Rpb25fb2JzZXJ2ZXJfb3B0aW9ucyAoKSA6IGludGVyc2VjdGlvbk9ic2VydmVyT3B0aW9ucyBKcy50ID1cbiAgSnMuVW5zYWZlLm9iaiBbfHxdXG5cbmxldCBpbnRlcnNlY3Rpb25PYnNlcnZlcl91bnNhZmUgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludGVyc2VjdGlvbk9ic2VydmVyXG5cbmxldCBpc19zdXBwb3J0ZWQgKCkgPSBKcy5PcHRkZWYudGVzdCBpbnRlcnNlY3Rpb25PYnNlcnZlcl91bnNhZmVcblxubGV0IGludGVyc2VjdGlvbk9ic2VydmVyIDpcbiAgICAoICAgKCAgIGludGVyc2VjdGlvbk9ic2VydmVyRW50cnkgSnMudCBKcy5qc19hcnJheSBKcy50XG4gICAgICAgICAtPiBpbnRlcnNlY3Rpb25PYnNlcnZlciBKcy50XG4gICAgICAgICAtPiB1bml0KVxuICAgICAgICBKcy5jYWxsYmFja1xuICAgICAtPiBpbnRlcnNlY3Rpb25PYnNlcnZlck9wdGlvbnMgSnMudFxuICAgICAtPiBpbnRlcnNlY3Rpb25PYnNlcnZlciBKcy50KVxuICAgIEpzLmNvbnN0ciA9XG4gIGludGVyc2VjdGlvbk9ic2VydmVyX3Vuc2FmZVxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxOCBTdMOpcGhhbmUgTGVncmFuZFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbm1vZHVsZSB0eXBlIFNoYXJlZCA9IHNpZ1xuICBjbGFzcyB0eXBlIG9iamVjdF9vcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGVNYXRjaGVyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuICAgIGVuZFxuXG4gIHZhbCBvYmplY3Rfb3B0aW9ucyA6IHVuaXQgLT4gb2JqZWN0X29wdGlvbnMgSnMudFxuXG4gIGNsYXNzIHR5cGUgX29iamVjdCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2Qgc3VwcG9ydGVkTG9jYWxlc09mIDpcbiAgICAgICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudFxuICAgICAgICAtPiBvYmplY3Rfb3B0aW9ucyBKcy50IEpzLm9wdGRlZlxuICAgICAgICAtPiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcbiAgICBlbmRcbmVuZFxuXG5tb2R1bGUgU2hhcmVkIDogU2hhcmVkID0gc3RydWN0XG4gIGNsYXNzIHR5cGUgb2JqZWN0X29wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZU1hdGNoZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG4gICAgZW5kXG5cbiAgbGV0IG9iamVjdF9vcHRpb25zICgpID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtdXRhYmxlIGxvY2FsZU1hdGNoZXIgPSBKcy5zdHJpbmcgXCJiZXN0IGZpdFwiXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSBfb2JqZWN0ID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBzdXBwb3J0ZWRMb2NhbGVzT2YgOlxuICAgICAgICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50XG4gICAgICAgIC0+IG9iamVjdF9vcHRpb25zIEpzLnQgSnMub3B0ZGVmXG4gICAgICAgIC0+IEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMubWV0aFxuICAgIGVuZFxuZW5kXG5cbm1vZHVsZSBDb2xsYXRvciA9IHN0cnVjdFxuICBpbmNsdWRlIFNoYXJlZFxuXG4gIGNsYXNzIHR5cGUgcmVzb2x2ZWRfb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgbG9jYWxlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgdXNhZ2UgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBzZW5zaXRpdml0eSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGlnbm9yZVB1bmN0dWF0aW9uIDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGNvbGxhdGlvbiA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIG51bWVyaWMgOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgY2FzZUZpcnN0IDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgbG9jYWxlTWF0Y2hlciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIHVzYWdlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgc2Vuc2l0aXZpdHkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBpZ25vcmVQdW5jdHVhdGlvbiA6IGJvb2wgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBudW1lcmljIDogYm9vbCBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIGNhc2VGaXJzdCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcbiAgICBlbmRcblxuICBsZXQgb3B0aW9ucyAoKSA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbXV0YWJsZSBsb2NhbGVNYXRjaGVyID0gSnMuc3RyaW5nIFwiYmVzdCBmaXRcIlxuXG4gICAgICB2YWwgbXV0YWJsZSB1c2FnZSA9IEpzLnN0cmluZyBcInNvcnRcIlxuXG4gICAgICB2YWwgbXV0YWJsZSBzZW5zaXRpdml0eSA9IEpzLnN0cmluZyBcInZhcmlhbnRcIlxuXG4gICAgICB2YWwgbXV0YWJsZSBpZ25vcmVQdW5jdHVhdGlvbiA9IEpzLl9mYWxzZVxuXG4gICAgICB2YWwgbXV0YWJsZSBudW1lcmljID0gSnMuX2ZhbHNlXG5cbiAgICAgIHZhbCBtdXRhYmxlIGNhc2VGaXJzdCA9IEpzLnN0cmluZyBcImZhbHNlXCJcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIHQgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGNvbXBhcmUgOiAoSnMuanNfc3RyaW5nIEpzLnQgLT4gSnMuanNfc3RyaW5nIEpzLnQgLT4gaW50KSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCByZXNvbHZlZE9wdGlvbnMgOiB1bml0IC0+IHJlc29sdmVkX29wdGlvbnMgSnMudCBKcy5tZXRoXG4gICAgZW5kXG5lbmRcblxubW9kdWxlIERhdGVUaW1lRm9ybWF0ID0gc3RydWN0XG4gIGluY2x1ZGUgU2hhcmVkXG5cbiAgY2xhc3MgdHlwZSByZXNvbHZlZF9vcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBjYWxlbmRhciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIG51bWJlcmluZ1N5c3RlbSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIHRpbWVab25lIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgaG91cjEyIDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIHdlZWtkYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgZXJhIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIHllYXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbW9udGggOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgZGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIGhvdXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWludXRlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIHNlY29uZCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCB0aW1lWm9uZU5hbWUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgZGF0ZVN0eWxlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHRpbWVTdHlsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBjYWxlbmRhciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBkYXlQZXJpb2QgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbnVtYmVyaW5nU3lzdGVtIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGxvY2FsZU1hdGNoZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB0aW1lWm9uZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBob3VyMTIgOiBib29sIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGhvdXJDeWNsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBmb3JtYXRNYXRjaGVyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgd2Vla2RheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBlcmEgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgeWVhciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBtb250aCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBkYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgaG91ciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW51dGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgc2Vjb25kIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGZyYWN0aW9uYWxTZWNvbmREaWdpdHMgOiBpbnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHRpbWVab25lTmFtZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG4gICAgZW5kXG5cbiAgbGV0IG9wdGlvbnMgKCkgOiBvcHRpb25zIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG11dGFibGUgZGF0ZVN0eWxlID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHRpbWVTdHlsZSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBjYWxlbmRhciA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBkYXlQZXJpb2QgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbnVtYmVyaW5nU3lzdGVtID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGxvY2FsZU1hdGNoZXIgPSBKcy5zdHJpbmcgXCJiZXN0IGZpdFwiXG5cbiAgICAgIHZhbCBtdXRhYmxlIHRpbWVab25lID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGhvdXIxMiA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBob3VyQ3ljbGUgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgZm9ybWF0TWF0Y2hlciA9IEpzLnN0cmluZyBcImJlc3QgZml0XCJcblxuICAgICAgdmFsIG11dGFibGUgd2Vla2RheSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBlcmEgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgeWVhciA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBtb250aCA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBkYXkgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgaG91ciA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBtaW51dGUgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgc2Vjb25kID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGZyYWN0aW9uYWxTZWNvbmREaWdpdHMgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgdGltZVpvbmVOYW1lID0gSnMudW5kZWZpbmVkXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSBmb3JtYXRfcGFydCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgX3R5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBfdmFsdWUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSB0ID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBmb3JtYXQgOiAoSnMuZGF0ZSBKcy50IC0+IEpzLmpzX3N0cmluZyBKcy50KSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBmb3JtYXRUb1BhcnRzIDpcbiAgICAgICAgSnMuZGF0ZSBKcy50IEpzLm9wdGRlZiAtPiBmb3JtYXRfcGFydCBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMubWV0aFxuXG4gICAgICBtZXRob2QgcmVzb2x2ZWRPcHRpb25zIDogdW5pdCAtPiByZXNvbHZlZF9vcHRpb25zIEpzLnQgSnMubWV0aFxuICAgIGVuZFxuZW5kXG5cbm1vZHVsZSBOdW1iZXJGb3JtYXQgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBTaGFyZWRcblxuICBjbGFzcyB0eXBlIHJlc29sdmVkX29wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIG51bWJlcmluZ1N5c3RlbSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIHN0eWxlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgY3VycmVuY3kgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgY3VycmVuY3lEaXNwbGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIHVzZUdyb3VwaW5nIDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1JbnRlZ2VyRGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bVNpZ25pZmljYW50RGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIG9wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGNvbXBhY3REaXNwbGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGN1cnJlbmN5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGN1cnJlbmN5RGlzcGxheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBjdXJyZW5jeVNpZ24gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbG9jYWxlTWF0Y2hlciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIG5vdGF0aW9uIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG51bWJlcmluZ1N5c3RlbSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBzaWduRGlzcGxheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBzdHlsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIHVuaXQgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgdW5pdERpc3BsYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgdXNlR3JvdXBpbmcgOiBib29sIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgcm91bmRpbmdNb2RlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHJvdW5kaW5nUHJpb3JpdHkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgcm91bmRpbmdJbmNyZW1lbnQgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgdHJhaWxpbmdaZXJvRGlzcGxheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtSW50ZWdlckRpZ2l0cyA6IGludCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bUZyYWN0aW9uRGlnaXRzIDogaW50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgOiBpbnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1TaWduaWZpY2FudERpZ2l0cyA6IGludCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbWF4aW11bVNpZ25pZmljYW50RGlnaXRzIDogaW50IEpzLm9wdGRlZiBKcy5wcm9wXG4gICAgZW5kXG5cbiAgbGV0IG9wdGlvbnMgKCkgOiBvcHRpb25zIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG11dGFibGUgY29tcGFjdERpc3BsYXkgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgY3VycmVuY3kgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgY3VycmVuY3lEaXNwbGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGN1cnJlbmN5U2lnbiA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBsb2NhbGVNYXRjaGVyID0gSnMuc3RyaW5nIFwiYmVzdCBmaXRcIlxuXG4gICAgICB2YWwgbXV0YWJsZSBub3RhdGlvbiA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBudW1iZXJpbmdTeXN0ZW0gPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgc2lnbkRpc3BsYXkgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgc3R5bGUgPSBKcy5zdHJpbmcgXCJkZWNpbWFsXCJcblxuICAgICAgdmFsIG11dGFibGUgdW5pdCA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSB1bml0RGlzcGxheSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSB1c2VHcm91cGluZyA9IEpzLl90cnVlXG5cbiAgICAgIHZhbCBtdXRhYmxlIHJvdW5kaW5nTW9kZSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSByb3VuZGluZ1ByaW9yaXR5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHJvdW5kaW5nSW5jcmVtZW50ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHRyYWlsaW5nWmVyb0Rpc3BsYXkgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbWluaW11bUludGVnZXJEaWdpdHMgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbWluaW11bUZyYWN0aW9uRGlnaXRzID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbWF4aW11bVNpZ25pZmljYW50RGlnaXRzID0gSnMudW5kZWZpbmVkXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSBmb3JtYXRfcGFydCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgX3R5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBfdmFsdWUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSB0ID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBmb3JtYXQgOiAoSnMubnVtYmVyIEpzLnQgLT4gSnMuanNfc3RyaW5nIEpzLnQpIEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGZvcm1hdFRvUGFydHMgOlxuICAgICAgICBKcy5udW1iZXIgSnMudCBKcy5vcHRkZWYgLT4gZm9ybWF0X3BhcnQgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcblxuICAgICAgbWV0aG9kIHJlc29sdmVkT3B0aW9ucyA6IHVuaXQgLT4gcmVzb2x2ZWRfb3B0aW9ucyBKcy50IEpzLm1ldGhcbiAgICBlbmRcbmVuZFxuXG5tb2R1bGUgUGx1cmFsUnVsZXMgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBTaGFyZWRcblxuICBjbGFzcyB0eXBlIHJlc29sdmVkX29wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIHBsdXJhbENhdGVnb3JpZXMgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIF90eXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bUludGVnZXJEaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWF4aW11bUZyYWN0aW9uRGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1heGltdW1TaWduaWZpY2FudERpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgbG9jYWxlTWF0Y2hlciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIF90eXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuICAgIGVuZFxuXG4gIGxldCBvcHRpb25zICgpIDogb3B0aW9ucyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtdXRhYmxlIGxvY2FsZU1hdGNoZXIgPSBKcy5zdHJpbmcgXCJiZXN0IGZpdFwiXG5cbiAgICAgIHZhbCBtdXRhYmxlIF90eXBlID0gSnMuc3RyaW5nIFwiY2FyZGluYWxcIlxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgdCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2Qgc2VsZWN0IDogSnMubnVtYmVyIEpzLnQgLT4gSnMuanNfc3RyaW5nIEpzLnQgSnMubWV0aFxuXG4gICAgICBtZXRob2QgcmVzb2x2ZWRPcHRpb25zIDogdW5pdCAtPiByZXNvbHZlZF9vcHRpb25zIEpzLnQgSnMubWV0aFxuICAgIGVuZFxuZW5kXG5cbmNsYXNzIHR5cGUgaW50bCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBfQ29sbGF0b3IgOiBDb2xsYXRvci5fb2JqZWN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9EYXRlVGltZUZvcm1hdCA6IERhdGVUaW1lRm9ybWF0Ll9vYmplY3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX051bWJlckZvcm1hdCA6IE51bWJlckZvcm1hdC5fb2JqZWN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QbHVyYWxSdWxlcyA6IFBsdXJhbFJ1bGVzLl9vYmplY3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0Q2Fub25pY2FsTG9jYWxlcyA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IC0+IEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMubWV0aFxuICBlbmRcblxubGV0IGludGwgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludGxcblxubGV0IGNvbGxhdG9yX2NvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50bCMjLl9Db2xsYXRvclxuXG5sZXQgZGF0ZVRpbWVGb3JtYXRfY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnRsIyMuX0RhdGVUaW1lRm9ybWF0XG5cbmxldCBudW1iZXJGb3JtYXRfY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnRsIyMuX051bWJlckZvcm1hdFxuXG5sZXQgcGx1cmFsUnVsZXNfY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnRsIyMuX1BsdXJhbFJ1bGVzXG5cbmxldCBpc19zdXBwb3J0ZWQgKCkgPSBKcy5PcHRkZWYudGVzdCBpbnRsXG4iLCIoKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQ2F0YWxhIGNvbXBpbGVyLCBhIHNwZWNpZmljYXRpb24gbGFuZ3VhZ2UgZm9yIHRheFxuICAgYW5kIHNvY2lhbCBiZW5lZml0cyBjb21wdXRhdGlvbiBydWxlcy4gQ29weXJpZ2h0IChDKSAyMDIwIElucmlhLCBjb250cmlidXRvcjpcbiAgIEVtaWxlIFJvbGxleSA8ZW1pbGUucm9sbGV5QHR1dGEuaW8+LlxuXG4gICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdFxuICAgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2ZcbiAgIHRoZSBMaWNlbnNlIGF0XG5cbiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVRcbiAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZVxuICAgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXJcbiAgIHRoZSBMaWNlbnNlLiAqKVxuXG5vcGVuIEpzX29mX29jYW1sXG5tb2R1bGUgUl9vY2FtbCA9IFJ1bnRpbWVfb2NhbWwuUnVudGltZVxuXG5jbGFzcyB0eXBlIHNvdXJjZV9wb3NpdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBmaWxlTmFtZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcbiAgICBtZXRob2Qgc3RhcnRMaW5lIDogaW50IEpzLnByb3BcbiAgICBtZXRob2QgZW5kTGluZSA6IGludCBKcy5wcm9wXG4gICAgbWV0aG9kIHN0YXJ0Q29sdW1uIDogaW50IEpzLnByb3BcbiAgICBtZXRob2QgZW5kQ29sdW1uIDogaW50IEpzLnByb3BcbiAgICBtZXRob2QgbGF3SGVhZGluZ3MgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcmF3X2V2ZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGV2ZW50VHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcbiAgICBtZXRob2QgaW5mb3JtYXRpb24gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnByb3BcbiAgICBtZXRob2Qgc291cmNlUG9zaXRpb24gOiBzb3VyY2VfcG9zaXRpb24gSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuICAgIG1ldGhvZCBsb2dnZWRWYWx1ZUpzb24gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGV2ZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGEgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGR1cmF0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHllYXJzIDogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbW9udGhzIDogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF5cyA6IGludCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgZHVyYXRpb25fb2ZfanNvbyBkID1cbiAgUl9vY2FtbC5kdXJhdGlvbl9vZl9udW1iZXJzIGQjIy55ZWFycyBkIyMubW9udGhzIGQjIy5kYXlzXG5cbmxldCBkdXJhdGlvbl90b19qc29vIGQgPVxuICBsZXQgeWVhcnMsIG1vbnRocywgZGF5cyA9IFJfb2NhbWwuZHVyYXRpb25fdG9feWVhcnNfbW9udGhzX2RheXMgZCBpblxuICBvYmplY3QlanNcbiAgICB2YWwgeWVhcnMgPSB5ZWFyc1xuICAgIHZhbCBtb250aHMgPSBtb250aHNcbiAgICB2YWwgZGF5cyA9IGRheXNcbiAgZW5kXG5cbmxldCBkYXRlX29mX2pzb28gZCA9XG4gIGxldCBkID0gSnMudG9fc3RyaW5nIGQgaW5cbiAgbGV0IGQgPVxuICAgIGlmIFN0cmluZy5jb250YWlucyBkICdUJyB0aGVuIGQgfD4gU3RyaW5nLnNwbGl0X29uX2NoYXIgJ1QnIHw+IExpc3QuaGRcbiAgICBlbHNlIGRcbiAgaW5cbiAgbWF0Y2ggU3RyaW5nLnNwbGl0X29uX2NoYXIgJy0nIGQgd2l0aFxuICB8IFt5ZWFyOyBtb250aDsgZGF5XSAtPlxuICAgIFJfb2NhbWwuZGF0ZV9vZl9udW1iZXJzIChpbnRfb2Zfc3RyaW5nIHllYXIpIChpbnRfb2Zfc3RyaW5nIG1vbnRoKVxuICAgICAgKGludF9vZl9zdHJpbmcgZGF5KVxuICB8IF8gLT4gZmFpbHdpdGggXCJkYXRlX29mX2pzb286IGludmFsaWQgZGF0ZVwiXG5cbmxldCBkYXRlX3RvX2pzb28gZCA9IEpzLnN0cmluZyBAQCBSX29jYW1sLmRhdGVfdG9fc3RyaW5nIGRcblxuY2xhc3MgdHlwZSBldmVudF9tYW5hZ2VyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJlc2V0TG9nIDogKHVuaXQsIHVuaXQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuXG4gICAgbWV0aG9kIHJldHJpZXZlRXZlbnRzIDpcbiAgICAgICh1bml0LCBldmVudCBKcy50IEpzLmpzX2FycmF5IEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuXG4gICAgbWV0aG9kIHJldHJpZXZlUmF3RXZlbnRzIDpcbiAgICAgICh1bml0LCByYXdfZXZlbnQgSnMudCBKcy5qc19hcnJheSBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG5cbmxldCBldmVudF9tYW5hZ2VyIDogZXZlbnRfbWFuYWdlciBKcy50ID1cbiAgb2JqZWN0JWpzXG4gICAgbWV0aG9kIHJlc2V0TG9nID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrIFJfb2NhbWwucmVzZXRfbG9nXG5cbiAgICBtZXRob2QgcmV0cmlldmVFdmVudHMgPVxuICAgICAgSnMud3JhcF9tZXRoX2NhbGxiYWNrIChmdW4gKCkgLT5cbiAgICAgICAgICBKcy5hcnJheVxuICAgICAgICAgICAgKEFycmF5Lm9mX2xpc3RcbiAgICAgICAgICAgICAgIChSX29jYW1sLnJldHJpZXZlX2xvZyAoKVxuICAgICAgICAgICAgICAgfD4gUl9vY2FtbC5FdmVudFBhcnNlci5wYXJzZV9yYXdfZXZlbnRzXG4gICAgICAgICAgICAgICB8PiBMaXN0Lm1hcCAoZnVuIGV2ZW50IC0+XG4gICAgICAgICAgICAgICAgICAgICAgb2JqZWN0JWpzXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBkYXRhID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfD4gUl9vY2FtbC55b2pzb25fb2ZfZXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfD4gWW9qc29uLlNhZmUudG9fc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHw+IEpzLnN0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgIGVuZCkpKSlcblxuICAgIG1ldGhvZCByZXRyaWV2ZVJhd0V2ZW50cyA9XG4gICAgICBKcy53cmFwX21ldGhfY2FsbGJhY2sgKGZ1biAoKSAtPlxuICAgICAgICAgIEpzLmFycmF5XG4gICAgICAgICAgICAoQXJyYXkub2ZfbGlzdFxuICAgICAgICAgICAgICAgKExpc3QubWFwXG4gICAgICAgICAgICAgICAgICAoZnVuIGV2dCAtPlxuICAgICAgICAgICAgICAgICAgICBvYmplY3QlanNcbiAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBldmVudFR5cGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgSnMuc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBldnQgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJfb2NhbWwuQmVnaW5DYWxsIF8gLT4gXCJCZWdpbiBjYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFbmRDYWxsIF8gLT4gXCJFbmQgY2FsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmFyaWFibGVEZWZpbml0aW9uIF8gLT4gXCJWYXJpYWJsZSBkZWZpbml0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZWNpc2lvblRha2VuIF8gLT4gXCJEZWNpc2lvbiB0YWtlblwiKVxuXG4gICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgaW5mb3JtYXRpb24gPVxuICAgICAgICAgICAgICAgICAgICAgICAgSnMuYXJyYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKEFycmF5Lm9mX2xpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGV2dCB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQmVnaW5DYWxsIGluZm9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFbmRDYWxsIGluZm9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWYXJpYWJsZURlZmluaXRpb24gKGluZm8sIF8pIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdC5tYXAgSnMuc3RyaW5nIGluZm9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZWNpc2lvblRha2VuIF8gLT4gW10pKVxuXG4gICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgbG9nZ2VkVmFsdWVKc29uID1cbiAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBldnQgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWYXJpYWJsZURlZmluaXRpb24gKF8sIHYpIC0+IHZcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgRW5kQ2FsbCBfIHwgQmVnaW5DYWxsIF8gfCBEZWNpc2lvblRha2VuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgUl9vY2FtbC51bmVtYmVkZGFibGUgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB8PiBSX29jYW1sLnlvanNvbl9vZl9ydW50aW1lX3ZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8PiBZb2pzb24uU2FmZS50b19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIHw+IEpzLnN0cmluZ1xuXG4gICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgc291cmNlUG9zaXRpb24gPVxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggZXZ0IHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVjaXNpb25UYWtlbiBwb3MgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgSnMuZGVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9iamVjdCVqc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIGZpbGVOYW1lID0gSnMuc3RyaW5nIHBvcy5maWxlbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIHN0YXJ0TGluZSA9IHBvcy5zdGFydF9saW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgZW5kTGluZSA9IHBvcy5lbmRfbGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIHN0YXJ0Q29sdW1uID0gcG9zLnN0YXJ0X2NvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIGVuZENvbHVtbiA9IHBvcy5lbmRfY29sdW1uXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBsYXdIZWFkaW5ncyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKcy5hcnJheVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQXJyYXkub2ZfbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGlzdC5tYXAgSnMuc3RyaW5nIHBvcy5sYXdfaGVhZGluZ3MpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZClcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgXyAtPiBKcy51bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgZW5kKVxuICAgICAgICAgICAgICAgICAgKFJfb2NhbWwucmV0cmlldmVfbG9nICgpKSkpKVxuICBlbmRcblxubGV0IGV4ZWN1dGVfb3JfdGhyb3dfZXJyb3IgZiA9XG4gIGxldCB0aHJvd19lcnJvciAoZGVzY3IgOiBzdHJpbmcpIChwb3MgOiBSX29jYW1sLnNvdXJjZV9wb3NpdGlvbikgPVxuICAgIGxldCBtc2cgPVxuICAgICAgSnMuc3RyaW5nXG4gICAgICAgIChGb3JtYXQuYXNwcmludGYgXCIlcyBpbiBmaWxlICVzLCBwb3NpdGlvbiAlZDolZC0tJWQ6JWQuXCIgZGVzY3JcbiAgICAgICAgICAgcG9zLmZpbGVuYW1lIHBvcy5zdGFydF9saW5lIHBvcy5zdGFydF9jb2x1bW4gcG9zLmVuZF9saW5lXG4gICAgICAgICAgIHBvcy5lbmRfY29sdW1uKVxuICAgIGluXG4gICAgSnMuSnNfZXJyb3IucmFpc2VfXG4gICAgICAoSnMuSnNfZXJyb3Iub2ZfZXJyb3JcbiAgICAgICAgIChvYmplY3QlanNcbiAgICAgICAgICAgIHZhbCBtdXRhYmxlIG5hbWUgPSBKcy5zdHJpbmcgXCJOb1ZhbHVlUHJvdmlkZWRcIlxuICAgICAgICAgICAgdmFsIG11dGFibGUgbWVzc2FnZSA9IG1zZ1xuICAgICAgICAgICAgdmFsIG11dGFibGUgc3RhY2sgPSBKcy5PcHRkZWYuZW1wdHlcbiAgICAgICAgICAgIG1ldGhvZCB0b1N0cmluZyA9IG1zZ1xuICAgICAgICAgZW5kKSlcbiAgaW5cbiAgdHJ5IGYgKCkgd2l0aFxuICB8IFJfb2NhbWwuTm9WYWx1ZVByb3ZpZGVkIHBvcyAtPlxuICAgIHRocm93X2Vycm9yXG4gICAgICBcIk5vIHJ1bGUgYXBwbGllcyBpbiB0aGUgZ2l2ZW4gY29udGV4dCB0byBnaXZlIGEgdmFsdWUgdG8gdGhlIHZhcmlhYmxlXCIgcG9zXG4gIHwgUl9vY2FtbC5Db25mbGljdEVycm9yIHBvcyAtPlxuICAgIHRocm93X2Vycm9yXG4gICAgICBcIkEgY29uZmxpY3QgaGFwcGVuZWQgYmV0d2VlbiB0d28gcnVsZXMgZ2l2aW5nIGEgdmFsdWUgdG8gdGhlIHZhcmlhYmxlXCIgcG9zXG4gIHwgUl9vY2FtbC5Bc3NlcnRpb25GYWlsZWQgcG9zIC0+XG4gICAgdGhyb3dfZXJyb3IgXCJBIGZhaWx1cmUgaGFwcGVuZWQgaW4gdGhlIGFzc2VydGlvblwiIHBvc1xuIiwiKCoqIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgdGhlIENhdGFsYSBjb21waWxlciwgZG8gbm90IGVkaXQhICopXG5cbm9wZW4gUnVudGltZV9vY2FtbC5SdW50aW1lXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTQtMjYtMjctMzItNDEtNDJcIl1cblxubW9kdWxlIFByaXNlRW5DaGFyZ2UgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBvZiB1bml0XG4gICAgfCBHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgb2YgdW5pdFxuICAgIHwgRWZmZWN0aXZlRXRQZXJtYW5lbnRlIG9mIHVuaXRcbiAgICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIG9mIHVuaXRcbiAgICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9wcmlzZV9lbl9jaGFyZ2UgKHg6IFByaXNlRW5DaGFyZ2UudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJQcmlzZUVuQ2hhcmdlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgeCAtPlxuICAgICAgKFwiR2FyZGVBbHRlcm7DqWVQYXJ0YWdlQWxsb2NhdGlvbnNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIHggLT5cbiAgICAgIChcIkdhcmRlQWx0ZXJuw6llQWxsb2NhdGFpcmVVbmlxdWVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRWZmZWN0aXZlRXRQZXJtYW5lbnRlIHggLT4gKFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIHggLT5cbiAgICAgIChcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzw6llw4BMYUZhbWlsbGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCB4IC0+XG4gICAgICAoXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc8OpZUF1eFNlcnZpY2VzU29jaWF1eFwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgQXZhbnQgb2YgdW5pdFxuICAgIHwgUGVuZGFudCBvZiB1bml0XG4gICAgfCBBcHJlcyBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlICh4OiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmVcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQXZhbnQgeCAtPiAoXCJBdmFudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBQZW5kYW50IHggLT4gKFwiUGVuZGFudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBcHJlcyB4IC0+IChcIkFwcsOoc1wiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBQcmlzZUVuQ29tcHRlID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IENvbXBsZXRlIG9mIHVuaXRcbiAgICB8IFBhcnRhZ2VlIG9mIHVuaXRcbiAgICB8IFplcm8gb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9wcmlzZV9lbl9jb21wdGUgKHg6IFByaXNlRW5Db21wdGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJQcmlzZUVuQ29tcHRlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IENvbXBsZXRlIHggLT4gKFwiQ29tcGzDqHRlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFBhcnRhZ2VlIHggLT4gKFwiUGFydGFnw6llXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFplcm8geCAtPiAoXCJaw6lyb1wiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBWZXJzZW1lbnRBbGxvY2F0aW9ucyA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBOb3JtYWwgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3ZlcnNlbWVudF9hbGxvY2F0aW9ucyAoeDogVmVyc2VtZW50QWxsb2NhdGlvbnMudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJWZXJzZW1lbnRBbGxvY2F0aW9uc1wiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBOb3JtYWwgeCAtPiAoXCJOb3JtYWxcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uVmVyc8OpZUF1eFNlcnZpY2VzU29jaWF1eFwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IFByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnQgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIG9mIHVuaXRcbiAgICB8IENvbXBsZW1lbnRGYW1pbGlhbCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnQgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZSBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmUgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9lbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgKHg6IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCLDiWzDqW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudCB4IC0+XG4gICAgICAoXCJQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25zRmFtaWxpYWxlcyB4IC0+IChcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBDb21wbGVtZW50RmFtaWxpYWwgeCAtPiAoXCJDb21wbMOpbWVudEZhbWlsaWFsXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudCB4IC0+IChcIkFsbG9jYXRpb25Mb2dlbWVudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb27DiWR1Y2F0aW9uRW5mYW50SGFuZGljYXDDqVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uUmVudHLDqWVTY29sYWlyZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uSm91cm5hbGnDqHJlUHJlc2VuY2VQYXJlbnRhbGVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgQ29sbGVjdGl2aXRlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEd1YWRlbG91cGUgb2YgdW5pdFxuICAgIHwgR3V5YW5lIG9mIHVuaXRcbiAgICB8IE1hcnRpbmlxdWUgb2YgdW5pdFxuICAgIHwgTGFSZXVuaW9uIG9mIHVuaXRcbiAgICB8IFNhaW50QmFydGhlbGVteSBvZiB1bml0XG4gICAgfCBTYWludE1hcnRpbiBvZiB1bml0XG4gICAgfCBNZXRyb3BvbGUgb2YgdW5pdFxuICAgIHwgU2FpbnRQaWVycmVFdE1pcXVlbG9uIG9mIHVuaXRcbiAgICB8IE1heW90dGUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9jb2xsZWN0aXZpdGUgKHg6IENvbGxlY3Rpdml0ZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkNvbGxlY3Rpdml0w6lcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgR3VhZGVsb3VwZSB4IC0+IChcIkd1YWRlbG91cGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgR3V5YW5lIHggLT4gKFwiR3V5YW5lXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IE1hcnRpbmlxdWUgeCAtPiAoXCJNYXJ0aW5pcXVlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IExhUmV1bmlvbiB4IC0+IChcIkxhUsOpdW5pb25cIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgU2FpbnRCYXJ0aGVsZW15IHggLT4gKFwiU2FpbnRCYXJ0aMOpbGVteVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBTYWludE1hcnRpbiB4IC0+IChcIlNhaW50TWFydGluXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IE1ldHJvcG9sZSB4IC0+IChcIk3DqXRyb3BvbGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgU2FpbnRQaWVycmVFdE1pcXVlbG9uIHggLT4gKFwiU2FpbnRQaWVycmVFdE1pcXVlbG9uXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IE1heW90dGUgeCAtPiAoXCJNYXlvdHRlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4ID0gc3RydWN0XG4gIHR5cGUgdCA9IHthZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzM6IGR1cmF0aW9ufVxuZW5kXG5sZXQgZW1iZWRfYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOCAoeDogQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDgudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4XCJdLFxuICBbKFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIiwgZW1iZWRfZHVyYXRpb25cbiAgICB4LkFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4LmFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfMyldKVxuXG5cbm1vZHVsZSBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge21vbnRhbnRfdmVyc2U6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyAoeDogQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl0sXG4gIFsoXCJtb250YW50X3ZlcnPDqVwiLCBlbWJlZF9tb25leSB4LkFsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50X3ZlcnNlKV0pXG5cblxubW9kdWxlIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2VzdF9pbmZlcmlldXJfb3VfZWdhbDogYm9vbH1cbmVuZFxubGV0IGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSAoeDogVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiVsOpcmlmaWNhdGlvbsOCZ2VJbmbDqXJpZXVyT3XDiWdhbMOAXCJdLFxuICBbKFwiZXN0X2luZsOpcmlldXJfb3Vfw6lnYWxcIiwgZW1iZWRfYm9vbFxuICAgIHguVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS5lc3RfaW5mZXJpZXVyX291X2VnYWwpXSlcblxuXG5tb2R1bGUgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZXN0X3N1cGVyaWV1cjogYm9vbH1cbmVuZFxubGV0IGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgKHg6IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCJdLFxuICBbKFwiZXN0X3N1cMOpcmlldXJcIiwgZW1iZWRfYm9vbCB4LlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEuZXN0X3N1cGVyaWV1cildKVxuXG5cbm1vZHVsZSBTbWljID0gc3RydWN0XG4gIHR5cGUgdCA9IHticnV0X2hvcmFpcmU6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfc21pYyAoeDogU21pYy50KSA6IHJ1bnRpbWVfdmFsdWUgPSBTdHJ1Y3QoW1wiU21pY1wiXSxcbiAgWyhcImJydXRfaG9yYWlyZVwiLCBlbWJlZF9tb25leSB4LlNtaWMuYnJ1dF9ob3JhaXJlKV0pXG5cblxubW9kdWxlIEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge21vbnRhbnQ6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyAoeDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSxcbiAgWyhcIm1vbnRhbnRcIiwgZW1iZWRfbW9uZXkgeC5CYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnQpXSlcblxuXG5tb2R1bGUgSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzID0gc3RydWN0XG4gIHR5cGUgdCA9IHtpX21vbnRhbnRfdmVyc2U6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgKHg6IEludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBbKFwiaV9tb250YW50X3ZlcnPDqVwiLCBlbWJlZF9tb25leVxuICAgIHguSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLmlfbW9udGFudF92ZXJzZSldKVxuXG5cbm1vZHVsZSBFbmZhbnRFbnRyZWUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRfaWRlbnRpZmlhbnQ6IGludGVnZXI7XG4gICAgZF9yZW11bmVyYXRpb25fbWVuc3VlbGxlOiBtb25leTtcbiAgICBkX2RhdGVfZGVfbmFpc3NhbmNlOiBkYXRlO1xuICAgIGRfcHJpc2VfZW5fY2hhcmdlOiBQcmlzZUVuQ2hhcmdlLnQ7XG4gICAgZF9hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzOiBib29sO1xuICAgIGRfYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50OiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2VuZmFudF9lbnRyZWUgKHg6IEVuZmFudEVudHJlZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiRW5mYW50RW50csOpZVwiXSxcbiAgWyhcImRfaWRlbnRpZmlhbnRcIiwgZW1iZWRfaW50ZWdlclxuICAgIHguRW5mYW50RW50cmVlLmRfaWRlbnRpZmlhbnQpO1xuICAgIChcImRfcsOpbXVuZXJhdGlvbl9tZW5zdWVsbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkVuZmFudEVudHJlZS5kX3JlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgIChcImRfZGF0ZV9kZV9uYWlzc2FuY2VcIiwgZW1iZWRfZGF0ZVxuICAgIHguRW5mYW50RW50cmVlLmRfZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgIChcImRfcHJpc2VfZW5fY2hhcmdlXCIsIGVtYmVkX3ByaXNlX2VuX2NoYXJnZVxuICAgIHguRW5mYW50RW50cmVlLmRfcHJpc2VfZW5fY2hhcmdlKTtcbiAgICAoXCJkX2FfZMOpasOgX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1wiLCBlbWJlZF9ib29sXG4gICAgeC5FbmZhbnRFbnRyZWUuZF9hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKTtcbiAgICAoXCJkX2LDqW7DqWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50XCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVuZmFudEVudHJlZS5kX2JlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCldKVxuXG5cbm1vZHVsZSBFbmZhbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGlkZW50aWZpYW50OiBpbnRlZ2VyO1xuICAgIG9ibGlnYXRpb25fc2NvbGFpcmU6IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50O1xuICAgIHJlbXVuZXJhdGlvbl9tZW5zdWVsbGU6IG1vbmV5O1xuICAgIGRhdGVfZGVfbmFpc3NhbmNlOiBkYXRlO1xuICAgIHByaXNlX2VuX2NoYXJnZTogUHJpc2VFbkNoYXJnZS50O1xuICAgIGFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXM6IGJvb2w7XG4gICAgYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50OiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2VuZmFudCAoeDogRW5mYW50LnQpIDogcnVudGltZV92YWx1ZSA9IFN0cnVjdChbXCJFbmZhbnRcIl0sXG4gIFsoXCJpZGVudGlmaWFudFwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5FbmZhbnQuaWRlbnRpZmlhbnQpO1xuICAgIChcIm9ibGlnYXRpb25fc2NvbGFpcmVcIiwgZW1iZWRfc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVcbiAgICB4LkVuZmFudC5vYmxpZ2F0aW9uX3Njb2xhaXJlKTtcbiAgICAoXCJyw6ltdW5lcmF0aW9uX21lbnN1ZWxsZVwiLCBlbWJlZF9tb25leVxuICAgIHguRW5mYW50LnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgIChcImRhdGVfZGVfbmFpc3NhbmNlXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgKFwicHJpc2VfZW5fY2hhcmdlXCIsIGVtYmVkX3ByaXNlX2VuX2NoYXJnZVxuICAgIHguRW5mYW50LnByaXNlX2VuX2NoYXJnZSk7XG4gICAgKFwiYV9kw6lqw6Bfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVuZmFudC5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKTtcbiAgICAoXCJiw6luw6lmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudFwiLCBlbWJlZF9ib29sXG4gICAgeC5FbmZhbnQuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50KV0pXG5cblxubW9kdWxlIEVuZmFudExlUGx1c0FnZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bGVfcGx1c19hZ2U6IEVuZmFudC50fVxuZW5kXG5sZXQgZW1iZWRfZW5mYW50X2xlX3BsdXNfYWdlICh4OiBFbmZhbnRMZVBsdXNBZ2UudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkVuZmFudExlUGx1c8OCZ8OpXCJdLFxuICBbKFwibGVfcGx1c1/DomfDqVwiLCBlbWJlZF9lbmZhbnQgeC5FbmZhbnRMZVBsdXNBZ2UubGVfcGx1c19hZ2UpXSlcblxuXG5tb2R1bGUgUHJlc3RhdGlvbnNGYW1pbGlhbGVzID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkcm9pdF9vdXZlcnQ6IEVuZmFudC50IC0+IGJvb2w7XG4gICAgY29uZGl0aW9uc19ob3JzX2FnZTogRW5mYW50LnQgLT4gYm9vbDtcbiAgICBhZ2VfbDUxMl8zXzI6IGR1cmF0aW9uO1xuICAgIHJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xOiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgKHg6IFByZXN0YXRpb25zRmFtaWxpYWxlcy50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBbKFwiZHJvaXRfb3V2ZXJ0XCIsIHVuZW1iZWRkYWJsZVxuICAgIHguUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRyb2l0X291dmVydCk7XG4gICAgKFwiY29uZGl0aW9uc19ob3JzX8OiZ2VcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5QcmVzdGF0aW9uc0ZhbWlsaWFsZXMuY29uZGl0aW9uc19ob3JzX2FnZSk7XG4gICAgKFwiw6JnZV9sNTEyXzNfMlwiLCBlbWJlZF9kdXJhdGlvblxuICAgIHguUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmFnZV9sNTEyXzNfMik7XG4gICAgKFwicsOpZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXCIsIGVtYmVkX2Jvb2xcbiAgICB4LlByZXN0YXRpb25zRmFtaWxpYWxlcy5yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSldKVxuXG5cbm1vZHVsZSBQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBwcmVzdGF0aW9uX2NvdXJhbnRlX2luOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQ7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudFxuICB9XG5lbmRcbmxldCBlbWJlZF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luICh4OiBQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzX2luXCJdLFxuICBbKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5QcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJwcmVzdGF0aW9uX2NvdXJhbnRlX2luXCIsIGVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAgIHguUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucHJlc3RhdGlvbl9jb3VyYW50ZV9pbik7XG4gICAgKFwicsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGVcbiAgICB4LlByZXN0YXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbildKVxuXG5cbm1vZHVsZSBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOEluID0gc3RydWN0XG4gIHR5cGUgdCA9IHVuaXRcbmVuZFxubGV0IGVtYmVkX2FsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW4gKF86IEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4SW4udCkgOiBydW50aW1lX3ZhbHVlID0gVW5pdFxuXG5cbm1vZHVsZSBFbmZhbnRMZVBsdXNBZ2VJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZW5mYW50c19pbjogRW5mYW50LnQgYXJyYXl9XG5lbmRcbmxldCBlbWJlZF9lbmZhbnRfbGVfcGx1c19hZ2VfaW4gKHg6IEVuZmFudExlUGx1c0FnZUluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJFbmZhbnRMZVBsdXPDgmfDqV9pblwiXSxcbiAgWyhcImVuZmFudHNfaW5cIiwgZW1iZWRfYXJyYXkgKGVtYmVkX2VuZmFudCkgeC5FbmZhbnRMZVBsdXNBZ2VJbi5lbmZhbnRzX2luKV0pXG5cblxubW9kdWxlIEFsbG9jYXRpb25zRmFtaWxpYWxlc0luID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pbjogYm9vbDtcbiAgICBwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luOiBib29sO1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2luOiBtb25leTtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgZW5mYW50c19hX2NoYXJnZV9pbjogRW5mYW50LnQgYXJyYXk7XG4gICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW46IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiAoeDogQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc19pblwiXSxcbiAgWyhcInBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luKTtcbiAgICAoXCJwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW4pO1xuICAgIChcInJlc3NvdXJjZXNfbcOpbmFnZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucmVzc291cmNlc19tZW5hZ2VfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlXG4gICAgeC5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5yZXNpZGVuY2VfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiZW5mYW50c1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfYXJyYXkgKGVtYmVkX2VuZmFudClcbiAgICB4LkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmVuZmFudHNfYV9jaGFyZ2VfaW4pO1xuICAgIChcImF2YWl0X2VuZmFudF/DoF9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pbildKVxuXG5cbm1vZHVsZSBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfbmFpc3NhbmNlX2luOiBkYXRlO1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgYW5uZWVzX2luOiBkdXJhdGlvblxuICB9XG5lbmRcbmxldCBlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gKHg6IFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiVsOpcmlmaWNhdGlvbsOCZ2VJbmbDqXJpZXVyT3XDiWdhbMOAX2luXCJdLFxuICBbKFwiZGF0ZV9uYWlzc2FuY2VfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfbmFpc3NhbmNlX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJhbm7DqWVzX2luXCIsIGVtYmVkX2R1cmF0aW9uXG4gICAgeC5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uYW5uZWVzX2luKV0pXG5cblxubW9kdWxlIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9uYWlzc2FuY2VfaW46IGRhdGU7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBhbm5lZXNfaW46IGR1cmF0aW9uXG4gIH1cbmVuZFxubGV0IGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gKHg6IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BfaW5cIl0sXG4gIFsoXCJkYXRlX25haXNzYW5jZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uZGF0ZV9uYWlzc2FuY2VfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcImFubsOpZXNfaW5cIiwgZW1iZWRfZHVyYXRpb24geC5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uYW5uZWVzX2luKV0pXG5cblxubW9kdWxlIFNtaWNJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTsgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudH1cbmVuZFxubGV0IGVtYmVkX3NtaWNfaW4gKHg6IFNtaWNJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPSBTdHJ1Y3QoW1wiU21pY19pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguU21pY0luLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlIHguU21pY0luLnJlc2lkZW5jZV9pbildKVxuXG5cbm1vZHVsZSBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2RhdGVfY291cmFudGVfaW46IGRhdGV9XG5lbmRcbmxldCBlbWJlZF9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luICh4OiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNfaW5cIl0sXG4gIFsoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luKV0pXG5cblxubW9kdWxlIEludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBpX2RhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgaV9lbmZhbnRzX2luOiBFbmZhbnRFbnRyZWUudCBhcnJheTtcbiAgICBpX3Jlc3NvdXJjZXNfbWVuYWdlX2luOiBtb25leTtcbiAgICBpX3Jlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnQ7XG4gICAgaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pbjogYm9vbDtcbiAgICBpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW46IGJvb2w7XG4gICAgaV9hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pbjogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9pbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiAoeDogSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc19pblwiXSxcbiAgWyhcImlfZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX2RhdGVfY291cmFudGVfaW4pO1xuICAgIChcImlfZW5mYW50c19pblwiLCBlbWJlZF9hcnJheSAoZW1iZWRfZW5mYW50X2VudHJlZSlcbiAgICB4LkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfZW5mYW50c19pbik7XG4gICAgKFwiaV9yZXNzb3VyY2VzX23DqW5hZ2VfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfcmVzc291cmNlc19tZW5hZ2VfaW4pO1xuICAgIChcImlfcsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGVcbiAgICB4LkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfcmVzaWRlbmNlX2luKTtcbiAgICAoXCJpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW4pO1xuICAgIChcImlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW4pO1xuICAgIChcImlfYXZhaXRfZW5mYW50X8OgX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW4pXSlcblxuXG5cblxubGV0IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDggKGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW46IEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4SW4udCkgOiBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOC50ID1cbiAgbGV0IGFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfM186IGR1cmF0aW9uID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDhcIjsgXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiXVxuICAgIChlbWJlZF9kdXJhdGlvbikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT03ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03ODsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkdXJhdGlvbl9vZl9udW1iZXJzICgxNikgKDApICgwKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03NjsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIHtBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOC5hZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzMgPVxuICAgICBhZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzNffVxuXG5sZXQgZW5mYW50X2xlX3BsdXNfYWdlIChlbmZhbnRfbGVfcGx1c19hZ2VfaW46IEVuZmFudExlUGx1c0FnZUluLnQpIDogRW5mYW50TGVQbHVzQWdlLnQgPVxuICBsZXQgZW5mYW50c186IEVuZmFudC50IGFycmF5ID0gZW5mYW50X2xlX3BsdXNfYWdlX2luLkVuZmFudExlUGx1c0FnZUluLmVuZmFudHNfaW4gaW5cbiAgbGV0IGxlX3BsdXNfYWdlXzogRW5mYW50LnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJFbmZhbnRMZVBsdXPDgmfDqVwiOyBcImxlX3BsdXNfw6Jnw6lcIl0gKGVtYmVkX2VuZmFudCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9ODA7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUsOoZ2xlcyBkaXZlcnNlc1wiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19yZWR1Y2VcbiAgICAgICAgICAgICAgKGZ1biAocG90ZW50aWVsX3BsdXNfYWdlXzFfOiBFbmZhbnQudClcbiAgICAgICAgICAgICAgICAgKHBvdGVudGllbF9wbHVzX2FnZV8yXzogRW5mYW50LnQpIC0+XG4gICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAobGV0IHBvdGVudGllbF9wbHVzX2FnZV8gOiBFbmZhbnQudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgcG90ZW50aWVsX3BsdXNfYWdlXzFfXG4gICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAocG90ZW50aWVsX3BsdXNfYWdlXy5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpKVxuICAgICAgICAgICAgICAgICAgICAgIChsZXQgcG90ZW50aWVsX3BsdXNfYWdlXyA6IEVuZmFudC50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICBwb3RlbnRpZWxfcGx1c19hZ2VfMl9cbiAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgIChwb3RlbnRpZWxfcGx1c19hZ2VfLkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgcG90ZW50aWVsX3BsdXNfYWdlXzFfIGVsc2UgcG90ZW50aWVsX3BsdXNfYWdlXzJfKVxuICAgICAgICAgICAgICAoe0VuZmFudC5pZGVudGlmaWFudCA9IChpbnRlZ2VyX29mX3N0cmluZyBcIi0xXCIpO1xuICAgICAgICAgICAgICAgICAgRW5mYW50Lm9ibGlnYXRpb25fc2NvbGFpcmUgPVxuICAgICAgICAgICAgICAgICAgICAoU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgKCkpO1xuICAgICAgICAgICAgICAgICAgRW5mYW50LnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKTtcbiAgICAgICAgICAgICAgICAgIEVuZmFudC5kYXRlX2RlX25haXNzYW5jZSA9XG4gICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDI5OTkpICgxMikgKDMxKSk7XG4gICAgICAgICAgICAgICAgICBFbmZhbnQucHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlICgpKTtcbiAgICAgICAgICAgICAgICAgIEVuZmFudC5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgICAgICAgICAgICAgICAgICAgZmFsc2U7XG4gICAgICAgICAgICAgICAgICBFbmZhbnQuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgICAgICAgICAgICAgICAgICAgZmFsc2V9KSBlbmZhbnRzXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MDsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIHtFbmZhbnRMZVBsdXNBZ2UubGVfcGx1c19hZ2UgPSBsZV9wbHVzX2FnZV99XG5cbmxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbjogVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLnQpIDogVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS50ID1cbiAgbGV0IGRhdGVfbmFpc3NhbmNlXzogZGF0ZSA9IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbi5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uZGF0ZV9uYWlzc2FuY2VfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBhbm5lZXNfOiBkdXJhdGlvbiA9IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbi5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uYW5uZWVzX2luIGluXG4gIGxldCBlc3RfaW5mZXJpZXVyX291X2VnYWxfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VJbmbDqXJpZXVyT3XDiWdhbMOAXCI7IFwiZXN0X2luZsOpcmlldXJfb3Vfw6lnYWxcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy8uLi9wcm9sb2d1ZV9mcmFuY2UvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MjI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MjI7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19IChcbiAgICAgICAgIFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy8uLi9wcm9sb2d1ZV9mcmFuY2UvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjU7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2x0ZV9kYXRfZGF0IChvX2FkZF9kYXRfZHVyIFJvdW5kVXAgZGF0ZV9uYWlzc2FuY2VfIGFubmVlc18pXG4gICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTIyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTIyOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjsgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkpKSkgaW5cbiAge1ZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEuZXN0X2luZmVyaWV1cl9vdV9lZ2FsID1cbiAgICAgZXN0X2luZmVyaWV1cl9vdV9lZ2FsX31cblxubGV0IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW46IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi50KSA6IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEudCA9XG4gIGxldCBkYXRlX25haXNzYW5jZV86IGRhdGUgPSB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX25haXNzYW5jZV9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBhbm5lZXNfOiBkdXJhdGlvbiA9IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmFubmVlc19pbiBpblxuICBsZXQgZXN0X3N1cGVyaWV1cl86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiOyBcImVzdF9zdXDDqXJpZXVyXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0gKFxuICAgICAgICAgW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNjsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fZ3RfZGF0X2RhdCAob19hZGRfZGF0X2R1ciBSb3VuZFVwIGRhdGVfbmFpc3NhbmNlXyBhbm5lZXNfKVxuICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7IFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0pKSkpIGluXG4gIHtWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIgPSBlc3Rfc3VwZXJpZXVyX31cblxubGV0IHNtaWMgKHNtaWNfaW46IFNtaWNJbi50KSA6IFNtaWMudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHNtaWNfaW4uU21pY0luLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gc21pY19pbi5TbWljSW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBicnV0X2hvcmFpcmVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlNtaWNcIjsgXCJicnV0X2hvcmFpcmVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAxOC0xMTczIGR1IDE5IGTDqWNlbWJyZSAyMDE4IHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTAwM1wiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU0OyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAxOC0xMTczIGR1IDE5IGTDqWNlbWJyZSAyMDE4IHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc1N1wiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTgyOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAxOS0xMzg3IGR1IDE4IGTDqWNlbWJyZSAyMDE5IHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTAxNVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkzOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAxOS0xMzg3IGR1IDE4IGTDqWNlbWJyZSAyMDE5IHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc2NlwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjE7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDIwLTE1OTggZHUgMTYgZMOpY2VtYnJlIDIwMjAgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDI1XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMjsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjAtMTU5OCBkdSAxNiBkw6ljZW1icmUgMjAyMCBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NzRcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYwOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMS0xNzQxIGR1IDIyIGTDqWNlbWJyZSAyMDIxIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg0KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDU3XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3MjsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjEtMTc0MSBkdSAyMiBkw6ljZW1icmUgMjAyMSBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNCkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc5OFwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTkxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDA7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAxOSBhdnJpbCAyMDIyIHJlbGF0aWYgYXUgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDg1XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxMTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDE5IGF2cmlsIDIwMjIgcmVsYXRpZiBhdSByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg1KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MTlcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM5OyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoOCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTEwN1wiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQ4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNTA7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg4KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODM1XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNzA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3OTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjItMTYwOCBkdSAyMiBkw6ljZW1icmUgMjAyMiBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15ICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMTI3XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5MDsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjItMTYwOCBkdSAyMiBkw6ljZW1icmUgMjAyMiBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODUxXCIpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjsgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19KSBpblxuICB7U21pYy5icnV0X2hvcmFpcmUgPSBicnV0X2hvcmFpcmVffVxuXG5sZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbjogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpIDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID1cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5CYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgbW9udGFudF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBtaW5pc3TDqXJpZWxsZSBOwrBEU1MvU0QyQi8yMDE5LzY1IGR1IDI1IG1hcnMgMjAxOSByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAxOSBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoNCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDEzMTZcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkluc3RydWN0aW9uIGludGVybWluaXN0w6lyaWVsbGUgbm8gRFNTL1NEMkIvMjAyMC8zMyBkdSAxOCBmw6l2cmllciAyMDIwIHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBhdnJpbCAyMDIwIGRlcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZSwgZW4gR3VhZGVsb3VwZSwgZW4gR3V5YW5lLCBlbiBNYXJ0aW5pcXVlLCDDoCBMYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXksIMOgIFNhaW50LU1hcnRpbiBldCBkYW5zIGxlIGTDqXBhcnRlbWVudCBkZSBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDQpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDQpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxNDQwXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY5OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG7CsERTUy8yQi8yMDIxLzY1IGR1IDE5IG1hcnMgMjAyMSByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAyMSBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgbGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgZGFucyBsZSBkw6lwYXJ0ZW1lbnQgZGUgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg0KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTQ4MVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gaW50ZXJtaW5pc3TDqXJpZWxsZSBuwrBEU1MvMkIvMjAyMi84MiBkdSAyOCBtYXJzIDIwMjIgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGF2cmlsIDIwMjIgZGVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIGxhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IGRhbnMgbGUgZMOpcGFydGVtZW50IGRlIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg0KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyMjI4XCIpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19KSkpXG4gICAgICAgICAgICAgICAgICB0aGVuICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19KSBpblxuICB7QmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50ID0gbW9udGFudF99XG5cbmxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzIChwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luOiBQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID1cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5QcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBwcmVzdGF0aW9uX2NvdXJhbnRlXzogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID0gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5QcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5wcmVzdGF0aW9uX2NvdXJhbnRlX2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4uUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBhZ2VfbDUxMl8zXzJfOiBkdXJhdGlvbiA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcIsOiZ2VfbDUxMl8zXzJcIl0gKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MDsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTIxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTIxOyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTEyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGR1cmF0aW9uX29mX251bWJlcnMgKDIwKSAoMCkgKDApKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYwOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IHNtaWNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInNtaWMuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTY5OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT02OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02OTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTY5OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpIGluXG4gIGxldCBzbWljX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJzbWljLnLDqXNpZGVuY2VcIl0gKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTY4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNpZGVuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Njg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IFNtaWMudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJzbWljXCI7IFwiU21pY1wiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwic21pY1wiOyBcIlNtaWNcIl0gc21pYylcbiAgICAoe1NtaWNJbi5kYXRlX2NvdXJhbnRlX2luID0gc21pY19kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIFNtaWNJbi5yZXNpZGVuY2VfaW4gPSBzbWljX2RvdF9yZXNpZGVuY2VffSkpKSBpblxuICBsZXQgc21pY19kb3RfYnJ1dF9ob3JhaXJlXzogbW9uZXkgPSByZXN1bHRfLlNtaWMuYnJ1dF9ob3JhaXJlIGluXG4gIGxldCByZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJyw6lnaW1lX291dHJlX21lcl9sNzUxXzFcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNjI7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDc1MS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgNSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsYSBHdWFkZWxvdXBlLCDDoCBsYSBHdXlhbmUsIMOgIGxhIE1hcnRpbmlxdWUsIMOgIExhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSBldCDDoCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDcgOiBSw6lnaW1lcyBkaXZlcnMgLSBEaXNwb3NpdGlvbnMgZGl2ZXJzZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15ICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluICgpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTYxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfbDUxMl8zXzJfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInBsYWZvbmRfbDUxMl8zXzJcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01OTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxNTsgc3RhcnRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxNTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNzU1LTAtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEw6lwYXJ0ZW1lbnRzIGQnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIHJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHNtaWNfZG90X2JydXRfaG9yYWlyZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjU1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjE2OS5cIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUxMi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHNtaWNfZG90X2JydXRfaG9yYWlyZV9cbiAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC41NVwiKSkgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTY5LlwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01OTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25zX2hvcnNfYWdlXzogRW5mYW50LnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcImNvbmRpdGlvbnNfaG9yc1/DomdlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTg7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcxOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoZW5mYW50Xy5FbmZhbnQub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoZW5mYW50Xy5FbmZhbnQub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudC5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9sNTEyXzNfMl8pKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU4OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT01ODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01ODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01ODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01ODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBkcm9pdF9vdXZlcnRfOiBFbmZhbnQudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZHJvaXRfb3V2ZXJ0XCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9hdXRyZXNfY29kZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDEgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBSw6hnbGVzIGRlIG5vbi1jdW11bFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IFByaW5jaXBlcyBnw6luw6lyYXV4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYyOyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX2w1MTJfM18yXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZV9sNTEyXzNfMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTA7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50Lm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAge1ByZXN0YXRpb25zRmFtaWxpYWxlcy5kcm9pdF9vdXZlcnQgPSBkcm9pdF9vdXZlcnRfO1xuICAgICBQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuY29uZGl0aW9uc19ob3JzX2FnZSA9IGNvbmRpdGlvbnNfaG9yc19hZ2VfO1xuICAgICBQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yID0gYWdlX2w1MTJfM18yXztcbiAgICAgUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xID0gcmVnaW1lX291dHJlX21lcl9sNzUxXzFffVxuXG5sZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyAoYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbjogQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9XG4gIGxldCBwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF86IGJvb2wgPSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luIGluXG4gIGxldCBwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9faV86IGJvb2wgPSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW4gaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlXzogbW9uZXkgPSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnJlc3NvdXJjZXNfbWVuYWdlX2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgZW5mYW50c19hX2NoYXJnZV86IEVuZmFudC50IGFycmF5ID0gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5lbmZhbnRzX2FfY2hhcmdlX2luIGluXG4gIGxldCBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl86IGJvb2wgPSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luIGluXG4gIGxldCBwcmlzZV9lbl9jb21wdGVfOiBFbmZhbnQudCAtPiBQcmlzZUVuQ29tcHRlLnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmlzZV9lbl9jb21wdGVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxNTsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoZW5mYW50Xy5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gUHJpc2VFbkNvbXB0ZS5QYXJ0YWdlZSAoKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI1NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNTU7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50LnByaXNlX2VuX2NoYXJnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IFByaXNlRW5Db21wdGUuWmVybyAoKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjY0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNjU7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpc2VFbkNvbXB0ZS5Db21wbGV0ZSAoKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwNTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwNTsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gUHJpc2VFbkNvbXB0ZS5Db21wbGV0ZSAoKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODU7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50LnByaXNlX2VuX2NoYXJnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IFByaXNlRW5Db21wdGUuQ29tcGxldGUgKCkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IHZlcnNlbWVudF86IEVuZmFudC50IC0+IFZlcnNlbWVudEFsbG9jYXRpb25zLnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJ2ZXJzZW1lbnRcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05ODsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTg7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjU5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2MDsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoZW5mYW50Xy5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzZW1lbnRBbGxvY2F0aW9ucy5BbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk4OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk4OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTg7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk4OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjcxOyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LnByaXNlX2VuX2NoYXJnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNlbWVudEFsbG9jYXRpb25zLk5vcm1hbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxOTsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LnByaXNlX2VuX2NoYXJnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzZW1lbnRBbGxvY2F0aW9ucy5Ob3JtYWwgKCkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDk7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoZW5mYW50Xy5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzZW1lbnRBbGxvY2F0aW9ucy5Ob3JtYWwgKCkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg5OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBWZXJzZW1lbnRBbGxvY2F0aW9ucy5Ob3JtYWwgKCkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTk4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk4OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk4OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG5vbWJyZV9lbmZhbnRzX2w1MjFfMV86IGludGVnZXIgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJub21icmVfZW5mYW50c19sNTIxXzFcIl0gKGVtYmVkX2ludGVnZXIpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTE1MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTE7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yOTQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mjk0OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTUxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1MTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBub21icmVfZW5mYW50c19hbGluZWFfMl9sNTIxXzNfOiBpbnRlZ2VyID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibm9tYnJlX2VuZmFudHNfYWxpbsOpYV8yX2w1MjFfM1wiXVxuICAgIChlbWJlZF9pbnRlZ2VyKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xNTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTU0OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NjQ7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTU0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1NDsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCByZXN1bHRfOiBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInZlcnNpb25fYXZyaWxfMjAwOFwiO1xuICAgICAgXCJBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwidmVyc2lvbl9hdnJpbF8yMDA4XCI7XG4gICAgICBcIkFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4XCJdIGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDgpXG4gICAgKCgpKSkpIGluXG4gIGxldCB2ZXJzaW9uX2F2cmlsXzIwMDhfZG90X2FnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfM186IGR1cmF0aW9uID0gcmVzdWx0Xy5BbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOC5hZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzMgaW5cbiAgbGV0IGJtYWZfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImJtYWYuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTE2Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjc7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE2Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjc7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNjc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTY3OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiYm1hZlwiOyBcIkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl1cbiAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiYm1hZlwiOyBcIkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl1cbiAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKVxuICAgICh7QmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBibWFmX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGJtYWZfZG90X21vbnRhbnRfOiBtb25leSA9IHJlc3VsdF8uQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50IGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLmRhdGVfY291cmFudGVcIl1cbiAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTYzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2MzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2MzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE2Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3ByZXN0YXRpb25fY291cmFudGVfOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5wcmVzdGF0aW9uX2NvdXJhbnRlXCJdXG4gICAgICAoZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTYxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2MTsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2MTsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uc0ZhbWlsaWFsZXMgKCkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNjE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTYxOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLnLDqXNpZGVuY2VcIl1cbiAgICAgIChlbWJlZF9jb2xsZWN0aXZpdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xNjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTY1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTY1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc2lkZW5jZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTY1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc1wiO1xuICAgICAgXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl0gcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAoe1ByZXN0YXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucHJlc3RhdGlvbl9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcHJlc3RhdGlvbl9jb3VyYW50ZV87XG4gICAgICAgIFByZXN0YXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzaWRlbmNlX30pKSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2Ryb2l0X291dmVydF86IEVuZmFudC50IC0+IGJvb2wgPSByZXN1bHRfLlByZXN0YXRpb25zRmFtaWxpYWxlcy5kcm9pdF9vdXZlcnQgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2NvbmRpdGlvbnNfaG9yc19hZ2VfOiBFbmZhbnQudCAtPiBib29sID0gcmVzdWx0Xy5QcmVzdGF0aW9uc0ZhbWlsaWFsZXMuY29uZGl0aW9uc19ob3JzX2FnZSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yXzogZHVyYXRpb24gPSByZXN1bHRfLlByZXN0YXRpb25zRmFtaWxpYWxlcy5hZ2VfbDUxMl8zXzIgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXzogYm9vbCA9IHJlc3VsdF8uUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xIGluXG4gIGxldCBlbmZhbnRfbGVfcGx1c19hZ2VfZG90X2VuZmFudHNfOiBFbmZhbnQudCBhcnJheSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJlbmZhbnRfbGVfcGx1c1/DomfDqS5lbmZhbnRzXCJdXG4gICAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2VuZmFudCkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlLDqGdsZXMgZGl2ZXJzZXNcIjsgXCLDiXBpbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUsOoZ2xlcyBkaXZlcnNlc1wiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBlbmZhbnRzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUsOoZ2xlcyBkaXZlcnNlc1wiOyBcIsOJcGlsb2d1ZVwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogRW5mYW50TGVQbHVzQWdlLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZW5mYW50X2xlX3BsdXNfw6Jnw6lcIjsgXCJFbmZhbnRMZVBsdXPDgmfDqVwiXVxuICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJlbmZhbnRfbGVfcGx1c1/DomfDqVwiOyBcIkVuZmFudExlUGx1c8OCZ8OpXCJdXG4gICAgZW5mYW50X2xlX3BsdXNfYWdlKVxuICAgICh7RW5mYW50TGVQbHVzQWdlSW4uZW5mYW50c19pbiA9IGVuZmFudF9sZV9wbHVzX2FnZV9kb3RfZW5mYW50c199KSkpIGluXG4gIGxldCBlbmZhbnRfbGVfcGx1c19hZ2VfZG90X2xlX3BsdXNfYWdlXzogRW5mYW50LnQgPSByZXN1bHRfLkVuZmFudExlUGx1c0FnZS5sZV9wbHVzX2FnZSBpblxuICBsZXQgYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zXzogRW5mYW50LnQgLT4gZHVyYXRpb24gPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiXSAodW5lbWJlZGRhYmxlKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04Mzsgc3RhcnRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODM7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDExKSAoMCkgKDApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA4KSAoNCkgKDMwKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb25fYXZyaWxfMjAwOF9kb3RfYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zXykpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU2OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTY7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkdXJhdGlvbl9vZl9udW1iZXJzICgxNCkgKDApICgwKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTE1Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTUyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV86IEVuZmFudC50IGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICBcImVuZmFudHNfw6BfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZVwiXVxuICAgIChlbWJlZF9hcnJheSAoZW1iZWRfZW5mYW50KSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT03NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03NTsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fZmlsdGVyXG4gICAgICAgICAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcImRyb2l0X291dmVydFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRcIl1cbiAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZHJvaXRfb3V2ZXJ0XylcbiAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkgZW5mYW50c19hX2NoYXJnZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgZXN0X2VuZmFudF9sZV9wbHVzX2FnZV86IEVuZmFudC50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJlc3RfZW5mYW50X2xlX3BsdXNfw6Jnw6lcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTU1OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gKFxuICAgICAgICAgICAgICBbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlLDqGdsZXMgZGl2ZXJzZXNcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICBvX2VxIGVuZmFudF9sZV9wbHVzX2FnZV9kb3RfbGVfcGx1c19hZ2VfIGVuZmFudF8pKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xNTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTU1OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE1NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9faV9pX2Q1MjFfM186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicGxhZm9uZF9JSV9kNTIxXzNcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xNTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTU4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzA7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2lyY3VsYWlyZSBpbnRlcm1pbmlzdMOpcmllbGxlIE7CsCBEU1MvU0QyQi8yMDE3LzM1MiBkdSAyMiBkw6ljZW1icmUgMjAxNyByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgamFudmllciAyMDE4IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzIGTigJlhdHRyaWJ1dGlvbiBkZSBjZXJ0YWluZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgbGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzg3NzAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTYyODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gaW50ZXJtaW5pc3TDqXJpZWxsZSBuwrAgRFNTL1NEMkIvMjAxOC8yNzkgZHUgMTcgZMOpY2VtYnJlIDIwMTggcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGphbnZpZXIgMjAxOSBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlcyBk4oCZYXR0cmlidXRpb24gZGUgY2VydGFpbmVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIGxhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc5NTU4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2ODQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkluc3RydWN0aW9uIGludGVybWluaXN0ZXJpZWxsZSBubyBEU1MvU0QyQi8yMDE5LzI2MSBkdSAxOCBkw6ljZW1icmUgMjAxOSByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgamFudmllciAyMDIwIGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzIGTigJlhdHRyaWJ1dGlvbiBkZSBjZXJ0YWluZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODA4MzEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTc3NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMjsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMTQgZMOpY2VtYnJlIDIwMjAgcmVsYXRpZiBhdSBtb250YW50IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzIGRlIGNlcnRhaW5lcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IGF1eCB0cmFuY2hlcyBkdSBiYXLDqG1lIGFwcGxpY2FibGUgYXUgcmVjb3V2cmVtZW50IGRlcyBpbmR1cyBldCDDoCBsYSBzYWlzaWUgZGVzIHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMikgKDMxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MTU1ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODI3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSkpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMTQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzgzMDAwMFwiKVxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU1OTUwMFwiKVxuICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTU4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfX2lfZDUyMV8zXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwbGFmb25kX0lfZDUyMV8zXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1NzsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTc7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTc7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNpcmN1bGFpcmUgaW50ZXJtaW5pc3TDqXJpZWxsZSBOwrAgRFNTL1NEMkIvMjAxNy8zNTIgZHUgMjIgZMOpY2VtYnJlIDIwMTcgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGphbnZpZXIgMjAxOCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlcyBk4oCZYXR0cmlidXRpb24gZGUgY2VydGFpbmVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIGxhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2Mjg2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2MjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTc7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU2OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkluc3RydWN0aW9uIGludGVybWluaXN0w6lyaWVsbGUgbsKwIERTUy9TRDJCLzIwMTgvMjc5IGR1IDE3IGTDqWNlbWJyZSAyMDE4IHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBqYW52aWVyIDIwMTkgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXMgZOKAmWF0dHJpYnV0aW9uIGRlIGNlcnRhaW5lcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZSwgZW4gR3VhZGVsb3VwZSwgZW4gR3V5YW5lLCBlbiBNYXJ0aW5pcXVlLCDDoCBsYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXksIMOgIFNhaW50LU1hcnRpbiBldCDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Njg0OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1Njg0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU3OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04OTsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdGVyaWVsbGUgbm8gRFNTL1NEMkIvMjAxOS8yNjEgZHUgMTggZMOpY2VtYnJlIDIwMTkgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGphbnZpZXIgMjAyMCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlcyBk4oCZYXR0cmlidXRpb24gZGUgY2VydGFpbmVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIExhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU3NzU5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU3NzUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTc7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDE0IGTDqWNlbWJyZSAyMDIwIHJlbGF0aWYgYXUgbW9udGFudCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlcyBkZSBjZXJ0YWluZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBhdXggdHJhbmNoZXMgZHUgYmFyw6htZSBhcHBsaWNhYmxlIGF1IHJlY291dnJlbWVudCBkZXMgaW5kdXMgZXQgw6AgbGEgc2Fpc2llIGRlcyBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTgyNzkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTgyNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzA0OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU1OTUwMDBcIilcbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NTk1MDBcIilcbiAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTU3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1NzsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBkcm9pdF9vdXZlcnRfY29tcGxlbWVudF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRfY29tcGzDqW1lbnRcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzMDsgZW5kX2NvbHVtbj03MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw3NTUtMTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgNSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsYSBHdWFkZWxvdXBlLCDDoCBsYSBHdXlhbmUsIMOgIGxhIE1hcnRpbmlxdWUsIMOgIExhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSBldCDDoCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxOyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUsOoZ2xlcyBkaXZlcnNlc1wiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTM3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzNzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBkcm9pdF9vdXZlcnRfZm9yZmFpdGFpcmVfOiBFbmZhbnQudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZHJvaXRfb3V2ZXJ0X2ZvcmZhaXRhaXJlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDIzOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDI0OyBlbmRfY29sdW1uPTcyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNzU1LTEyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGxhIEd1YWRlbG91cGUsIMOgIGxhIEd1eWFuZSwgw6AgbGEgTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15IGV0IMOgIFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDcgOiBSw6lnaW1lcyBkaXZlcnMgLSBEaXNwb3NpdGlvbnMgZGl2ZXJzZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IChvX2xlbmd0aCBlbmZhbnRzX2FfY2hhcmdlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfZW5mYW50c19hbGluZWFfMl9sNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2R1cl9kdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9hZ2VfbDUxMl8zXzJfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgwKSAoMCkgKDM2NSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbmRpdGlvbnNfaG9yc1/DomdlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb25kaXRpb25zX2hvcnNfw6JnZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbmRpdGlvbnNfaG9yc1/DomdlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfY29uZGl0aW9uc19ob3JzX2FnZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb25kaXRpb25zX2hvcnNfw6JnZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTIwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9pbml0aWFsX2Jhc2VfcXVhdHJpZW1lX2VuZmFudF9ldF9wbHVzX21heW90dGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgXCJtb250YW50X2luaXRpYWxfYmFzZV9xdWF0cmnDqG1lX2VuZmFudF9ldF9wbHVzX21heW90dGVcIl0gKGVtYmVkX21vbmV5KVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTc7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE5NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xOTU7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA0NjNcIikpXG4gICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSkpIGVsc2VcbiAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExNzsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2luaXRpYWxfYmFzZV90cm9pc2llbWVfZW5mYW50X21heW90dGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgXCJtb250YW50X2luaXRpYWxfYmFzZV90cm9pc2nDqG1lX2VuZmFudF9tYXlvdHRlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzE7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTEpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNDYzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNTM5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDc7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTMpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNjE1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ1NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NTU7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNjlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDYzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ2MzsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA3NjZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDcxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ3MTsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTYpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNikgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA4NDJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ3OTsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA5MThcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ4NzsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjEwODlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDk1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5NTsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjEyNTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTAzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUwMzsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjE0M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE4NjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF8gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xNlwiKSlcbiAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG5vbWJyZV90b3RhbF9lbmZhbnRzXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm5vbWJyZV90b3RhbF9lbmZhbnRzXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTEwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2MDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUyMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgKG9fbGVuZ3RoIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTEwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBub21icmVfbW95ZW5fZW5mYW50c186IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJub21icmVfbW95ZW5fZW5mYW50c1wiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNDI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MjEtM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fcmVkdWNlXG4gICAgICAgICAgICAgIChmdW4gKHN1bTFfOiBkZWNpbWFsKSAoc3VtMl86IGRlY2ltYWwpIC0+XG4gICAgICAgICAgICAgICAgIG9fYWRkX3JhdF9yYXQgc3VtMV8gc3VtMl8pIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpXG4gICAgICAgICAgICAgIChvX21hcFxuICAgICAgICAgICAgICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmlzZV9lbl9jb21wdGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJpc2VfZW5fY29tcHRlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3ByaXNlX2VuX2NvbXB0ZSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByaXNlX2VuX2NvbXB0ZVwiXVxuICAgICAgICAgICAgICAgICAgICAgIHByaXNlX2VuX2NvbXB0ZV8pICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmlzZV9lbl9jb21wdGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNvbXB0ZS5Db21wbGV0ZSBfIC0+IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNvbXB0ZS5QYXJ0YWdlZSBfIC0+IChkZWNpbWFsX29mX3N0cmluZyBcIjAuNVwiKVxuICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5Db21wdGUuWmVybyBfIC0+IChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKVxuICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9pbml0aWFsX2Jhc2VfcHJlbWllcl9lbmZhbnRfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3ByZW1pZXJfZW5mYW50XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjUxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjUyOyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTEpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTQ1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2MTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEyKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjEzOTNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjY5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjcwOyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTMpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTMzNVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNzg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNzk7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMjc4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI4Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4ODsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjEyMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yOTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yOTc7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTYpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMTYzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwNTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwNjsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjExMDVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE1OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDk3NlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjQ7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wODQ3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzMzsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA3MTdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQxOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NzI4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2Nzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2NzsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNTg4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzY1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNjY7IGVuZF9jb2x1bW49NzE7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDc1NS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgNSA6IETDqXBhcnRlbWVudHMgZCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDcgOiBSw6lnaW1lcyBkaXZlcnMgLSBEaXNwb3NpdGlvbnMgZGl2ZXJzZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnaW1lX291dHJlX21lcl9sNzUxXzFfXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNTg4XCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzYyOyBzdGFydF9jb2x1bW49Mjk7IGVuZF9saW5lPTM2MjsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDc1NS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRMOpcGFydGVtZW50cyBkJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDcgOiBSw6lnaW1lcyBkaXZlcnMgLSBEaXNwb3NpdGlvbnMgZGl2ZXJzZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgZHJvaXRfb3V2ZXJ0X2Jhc2VfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZHJvaXRfb3V2ZXJ0X2Jhc2VcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1OTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU5OyBlbmRfY29sdW1uPTcxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MTA7IGVuZF9jb2x1bW49NzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw3NTUtMTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbGEgR3VhZGVsb3VwZSwgw6AgbGEgR3V5YW5lLCDDoCBsYSBNYXJ0aW5pcXVlLCDDoCBMYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXkgZXQgw6AgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnaW1lX291dHJlX21lcl9sNzUxXzFfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAxOyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IGRyb2l0X291dmVydF9tYWpvcmF0aW9uXzogRW5mYW50LnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyNjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE4OyBlbmRfY29sdW1uPTIxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9lbmZhbnRzX2FsaW5lYV8yX2w1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9kdXJhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2VuZmFudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudF8pKSkpKSkpKSBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzAyOyBlbmRfY29sdW1uPTIxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVzdF9lbmZhbnRfbGVfcGx1c1/DomfDqVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZXN0X2VuZmFudF9sZV9wbHVzX8OiZ8OpXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZXN0X2VuZmFudF9sZV9wbHVzX8OiZ8OpXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXN0X2VuZmFudF9sZV9wbHVzX2FnZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlc3RfZW5mYW50X2xlX3BsdXNfw6Jnw6lcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9kdXJhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXykpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyNjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTI2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IGNvbXBsZW1lbnRfZGVncmVzc2lmXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJjb21wbMOpbWVudF9kw6lncmVzc2lmXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFsbG9jYXRpb25fOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2NjsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9kNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBwbGFmb25kX19pX2Q1MjFfM19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBhbGxvY2F0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcGxhZm9uZF9faV9kNTIxXzNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBhbGxvY2F0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3NTsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9pX2Q1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHBsYWZvbmRfX2lfaV9kNTIxXzNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYWxsb2NhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHBsYWZvbmRfX2lfaV9kNTIxXzNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBhbGxvY2F0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODE7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTEzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTM5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlX3Bhcl9lbmZhbnRfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfdmVyc8OpX2ZvcmZhaXRhaXJlX3Bhcl9lbmZhbnRcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjI7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIyOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjIxOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlXyBwbGFmb25kX19pX2Q1MjFfM18pKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjIwMjM0XCIpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIyOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzNTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM2OyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlXyBwbGFmb25kX19pX2Q1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlXyBwbGFmb25kX19pX2lfZDUyMV8zXykpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjEwMTE3XCIpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIyOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI0OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjQ5OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfIHBsYWZvbmRfX2lfaV9kNTIxXzNfKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNTA1OVwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTIyOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzaWVtZV9lbmZhbnRfZXRfcGx1c186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICBcIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzacOobWVfZW5mYW50X2V0X3BsdXNcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA3OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNzsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlXyBwbGFmb25kX19pX2Q1MjFfM18pKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC40MVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNzsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04NDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg0OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlXyBwbGFmb25kX19pX2Q1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlXyBwbGFmb25kX19pX2lfZDUyMV8zXykpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yMDVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDc7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfIHBsYWZvbmRfX2lfaV9kNTIxXzNfKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTAyNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA3OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfaW5pdGlhbF9iYXNlX2RldXhpZW1lX2VuZmFudF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9pbml0aWFsX2Jhc2VfZGV1eGnDqG1lX2VuZmFudFwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1MDsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yMzJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU4OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEyKSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjIzNzlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzY2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzY2OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEzKSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjI0MzdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzc0OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjI0OTZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzgyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzgyOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjI1NTVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzkwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzkwOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE2KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE2KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjI2MTNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk4OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjI2NzJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDA2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDA2OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjI4MDRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDE0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDE0OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjI5MzZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDIyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDIyOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjMwNjhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3Nzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3NzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4zMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzg7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV8gcGxhZm9uZF9faV9kNTIxXzNfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjMyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc5OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2Q1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9pX2Q1MjFfM18pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjE2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTc7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfaV9kNTIxXzNfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IHJhcHBvcnRfZW5mYW50c190b3RhbF9tb3llbl86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJyYXBwb3J0X2VuZmFudHNfdG90YWxfbW95ZW5cIl0gKGVtYmVkX2RlY2ltYWwpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwODsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjg7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MjEtM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZiAob19lcSBub21icmVfdG90YWxfZW5mYW50c18gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpIHRoZW5cbiAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikgZWxzZVxuICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdCBub21icmVfbW95ZW5fZW5mYW50c18gbm9tYnJlX3RvdGFsX2VuZmFudHNfKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA4OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfaW5pdGlhbF9tZXRyb3BvbGVfbWFqb3JhdGlvbl86IEVuZmFudC50IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9pbml0aWFsX23DqXRyb3BvbGVfbWFqb3JhdGlvblwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyODsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyODsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfZDUyMV8zXykgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9pdF9vdXZlcnRfbWFqb3JhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xNlwiKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjg7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9kNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfaV9kNTIxXzNfKSkgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9pdF9vdXZlcnRfbWFqb3JhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wOFwiKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjg7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzODsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9pX2Q1MjFfM18pICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDRcIikpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI4OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUsOoZ2xlcyBkaXZlcnNlc1wiOyBcIsOJcGlsb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3QgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9pdF9vdXZlcnRfbWFqb3JhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMjg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTI4OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjg7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF92ZXJzw6lfZm9yZmFpdGFpcmVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTIzOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE5OTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX211bHRfbW9uX3JhdCBtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlX3Bhcl9lbmZhbnRfXG4gICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgKG9fZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfZm9yZmFpdGFpcmVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvaXRfb3V2ZXJ0X2ZvcmZhaXRhaXJlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9mb3JmYWl0YWlyZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSBlbmZhbnRzX2FfY2hhcmdlXykpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTIzOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfaW5pdGlhbF9iYXNlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2luaXRpYWxfYmFzZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1NzsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ3NTUtNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRMOpcGFydGVtZW50cyBkJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnaW1lX291dHJlX21lcl9sNzUxXzFfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfaW5pdGlhbF9iYXNlX3ByZW1pZXJfZW5mYW50XykpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTsgc3RhcnRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfaW5pdGlhbF9iYXNlX3ByZW1pZXJfZW5mYW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9pbml0aWFsX2Jhc2VfZGV1eGllbWVfZW5mYW50XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzaWVtZV9lbmZhbnRfbWF5b3R0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2luaXRpYWxfYmFzZV9xdWF0cmllbWVfZW5mYW50X2V0X3BsdXNfbWF5b3R0ZV8pKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE4OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX21vbl9tb24gbW9udGFudF9pbml0aWFsX2Jhc2VfZGV1eGllbWVfZW5mYW50X1xuICAgICAgICAgICAgICBtb250YW50X2luaXRpYWxfYmFzZV90cm9pc2llbWVfZW5mYW50X2V0X3BsdXNfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9pbml0aWFsX21ham9yYXRpb25fOiBFbmZhbnQudCAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfaW5pdGlhbF9tYWpvcmF0aW9uXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzMDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMwOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzgzOyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENzU1LTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEw6lwYXJ0ZW1lbnRzIGQnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb2l0X291dmVydF9tYWpvcmF0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDExKSAoMCkgKDApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMTYpICgwKSAoMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMzY5XCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzA7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTI7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ3NTUtNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgNSA6IETDqXBhcnRlbWVudHMgZCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDE2KSAoMCkgKDApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNTY3XCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRfaW5pdGlhbF9tw6l0cm9wb2xlX21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRfaW5pdGlhbF9tw6l0cm9wb2xlX21ham9yYXRpb25cIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgIFwibW9udGFudF9pbml0aWFsX23DqXRyb3BvbGVfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICBtb250YW50X2luaXRpYWxfbWV0cm9wb2xlX21ham9yYXRpb25fKVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgIFwibW9udGFudF9pbml0aWFsX23DqXRyb3BvbGVfbWFqb3JhdGlvblwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzMDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMzA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTMwOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfdmVyc2VfY29tcGxlbWVudF9wb3VyX2ZvcmZhaXRhaXJlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X3ZlcnPDqV9jb21wbMOpbWVudF9wb3VyX2ZvcmZhaXRhaXJlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xNDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNzA7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfZDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBwbGFmb25kX19pX2Q1MjFfM19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBwbGFmb25kX19pX2Q1MjFfM19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNzg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjgwOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2lfZDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBwbGFmb25kX19pX2lfZDUyMV8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHBsYWZvbmRfX2lfaV9kNTIxXzNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI4Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yODY7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTQyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuZWVfYmFzZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybsOpZV9iYXNlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTExOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUyMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgbW9udGFudF9pbml0aWFsX2Jhc2VfIHJhcHBvcnRfZW5mYW50c190b3RhbF9tb3llbl8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTExOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMTsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuZWVfbWFqb3JhdGlvbl86IEVuZmFudC50IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybsOpZV9tYWpvcmF0aW9uXCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTMyOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gKFxuICAgICAgICAgICAgICBbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4NjsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTIxLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9pbml0aWFsX21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9pbml0aWFsX21ham9yYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfaW5pdGlhbF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgbW9udGFudF9pbml0aWFsX21ham9yYXRpb25fKSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9pbml0aWFsX21ham9yYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgKG1hdGNoICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJpc2VfZW5fY29tcHRlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByaXNlX2VuX2NvbXB0ZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9wcmlzZV9lbl9jb21wdGUpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmlzZV9lbl9jb21wdGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICBwcmlzZV9lbl9jb21wdGVfKSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJpc2VfZW5fY29tcHRlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5Db21wdGUuQ29tcGxldGUgXyAtPiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5Db21wdGUuUGFydGFnZWUgXyAtPiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjVcIilcbiAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ29tcHRlLlplcm8gXyAtPiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMzI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTMyOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEzMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzI7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF92ZXJzZV9iYXNlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X3ZlcnPDqV9iYXNlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTEyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMjsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzc7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJSw6hnbGVzIGRpdmVyc2VzXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgZHJvaXRfb3V2ZXJ0X2Jhc2VfIHRoZW4gbW9udGFudF9hdmVjX2dhcmRlX2FsdGVybmVlX2Jhc2VfXG4gICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTEyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMjsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X3ZlcnNlX21ham9yYXRpb25fOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfdmVyc8OpX21ham9yYXRpb25cIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMzQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTM0OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlLDqGdsZXMgZGl2ZXJzZXNcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZiBkcm9pdF9vdXZlcnRfYmFzZV8gdGhlblxuICAgICAgICAgICAgICAob19yZWR1Y2VcbiAgICAgICAgICAgICAgICAgKGZ1biAoc3VtMV86IG1vbmV5KSAoc3VtMl86IG1vbmV5KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIHN1bTFfIHN1bTJfKSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKVxuICAgICAgICAgICAgICAgICAob19tYXBcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuw6llX21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRfYXZlY19nYXJkZV9hbHRlcm7DqWVfbWFqb3JhdGlvblwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuw6llX21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9hdmVjX2dhcmRlX2FsdGVybmVlX21ham9yYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybsOpZV9tYWpvcmF0aW9uXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpIGVuZmFudHNfYV9jaGFyZ2VfKSkgZWxzZVxuICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMzQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTM0OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfYmFzZV9jb21wbGVtZW50X3BvdXJfYmFzZV9ldF9tYWpvcmF0aW9uXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgIFwibW9udGFudF9iYXNlX2NvbXBsw6ltZW50X3BvdXJfYmFzZV9ldF9tYWpvcmF0aW9uXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTM4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzODsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE4OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xODk7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfbW9uX21vbiBtb250YW50X3ZlcnNlX2Jhc2VfIG1vbnRhbnRfdmVyc2VfbWFqb3JhdGlvbl8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTM4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzODsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X3ZlcnNlX2NvbXBsZW1lbnRfcG91cl9iYXNlX2V0X21ham9yYXRpb25fOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgXCJtb250YW50X3ZlcnPDqV9jb21wbMOpbWVudF9wb3VyX2Jhc2VfZXRfbWFqb3JhdGlvblwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTE0MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNDE7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTgzOyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZiBkcm9pdF9vdXZlcnRfY29tcGxlbWVudF8gdGhlblxuICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImNvbXBsw6ltZW50X2TDqWdyZXNzaWZcIl1cbiAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiY29tcGzDqW1lbnRfZMOpZ3Jlc3NpZlwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImNvbXBsw6ltZW50X2TDqWdyZXNzaWZcIl1cbiAgICAgICAgICAgICAgICBjb21wbGVtZW50X2RlZ3Jlc3NpZl8pICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJjb21wbMOpbWVudF9kw6lncmVzc2lmXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgIG1vbnRhbnRfYmFzZV9jb21wbGVtZW50X3BvdXJfYmFzZV9ldF9tYWpvcmF0aW9uXykpKSkpKSkgZWxzZVxuICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNDE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTQxOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfdmVyc2VfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfdmVyc8OpXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwMDsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDU7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJSw6hnbGVzIGRpdmVyc2VzXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgZHJvaXRfb3V2ZXJ0X2Jhc2VfIHRoZW5cbiAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbW9udGFudF92ZXJzZV9iYXNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X3ZlcnNlX21ham9yYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlXylcbiAgICAgICAgICAgICAgICAgICAgbW9udGFudF92ZXJzZV9jb21wbGVtZW50X3BvdXJfYmFzZV9ldF9tYWpvcmF0aW9uXylcbiAgICAgICAgICAgICAgICAgbW9udGFudF92ZXJzZV9jb21wbGVtZW50X3BvdXJfZm9yZmFpdGFpcmVfKSBlbHNlXG4gICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDA7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19vciBwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX19pXykpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzNTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19KSkpXG4gICAgICAgICAgICAgICAgICB0aGVuICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM1OyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0pIGluXG4gIHtBbGxvY2F0aW9uc0ZhbWlsaWFsZXMubW9udGFudF92ZXJzZSA9IG1vbnRhbnRfdmVyc2VffVxuXG5sZXQgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgKGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luOiBJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IEludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID1cbiAgbGV0IGlfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX2RhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGlfZW5mYW50c186IEVuZmFudEVudHJlZS50IGFycmF5ID0gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9lbmZhbnRzX2luIGluXG4gIGxldCBpX3Jlc3NvdXJjZXNfbWVuYWdlXzogbW9uZXkgPSBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX3Jlc3NvdXJjZXNfbWVuYWdlX2luIGluXG4gIGxldCBpX3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfOiBib29sID0gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pbiBpblxuICBsZXQgaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9faV86IGJvb2wgPSBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW4gaW5cbiAgbGV0IGlfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfOiBib29sID0gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pbiBpblxuICBsZXQgZW5mYW50c19hX2NoYXJnZV86IEVuZmFudC50IGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZW5mYW50c1/DoF9jaGFyZ2VcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2VuZmFudCkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNzsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDEzMS0xXCI7IFwiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tYXBcbiAgICAgICAgICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50RW50cmVlLnQpIC0+XG4gICAgICAgICAgICAgICAgIHtFbmZhbnQuaWRlbnRpZmlhbnQgPSAoZW5mYW50Xy5FbmZhbnRFbnRyZWUuZF9pZGVudGlmaWFudCk7XG4gICAgICAgICAgICAgICAgICAgIEVuZmFudC5vYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRFbnRyZWUuZF9kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMykgKDApICgwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaV9kYXRlX2NvdXJhbnRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgIChTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgKCkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRFbnRyZWUuZF9kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMTYpICgwKSAoMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlfZGF0ZV9jb3VyYW50ZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgKCkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzICgpKSkpO1xuICAgICAgICAgICAgICAgICAgICBFbmZhbnQucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50RW50cmVlLmRfcmVtdW5lcmF0aW9uX21lbnN1ZWxsZSk7XG4gICAgICAgICAgICAgICAgICAgIEVuZmFudC5kYXRlX2RlX25haXNzYW5jZSA9XG4gICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50RW50cmVlLmRfZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgICAgICAgICAgICAgICAgICBFbmZhbnQucHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRFbnRyZWUuZF9wcmlzZV9lbl9jaGFyZ2UpO1xuICAgICAgICAgICAgICAgICAgICBFbmZhbnQuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50RW50cmVlLmRfYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgIEVuZmFudC5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEVudHJlZS5kX2JlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCl9KVxuICAgICAgICAgICAgICBpX2VuZmFudHNfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgIFwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudFwiXVxuICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05Mjsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTkyOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Mjsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTkyOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Mzsgc3RhcnRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkzOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICBpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50XykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTkyOyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9OTI7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTI7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT05MjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19KSkgaW5cbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX19pXzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgXCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzLnBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTY7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT05NjsgZW5kX2NvbHVtbj04MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT05NjsgZW5kX2NvbHVtbj04MDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NzsgZW5kX2NvbHVtbj03MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9faV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05Njsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTk2OyBlbmRfY29sdW1uPTgwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk2OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9OTY7IGVuZF9jb2x1bW49ODA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSkpIGluXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNzb3VyY2VzX21lbmFnZV86IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICBcImFsbG9jYXRpb25zX2ZhbWlsaWFsZXMucmVzc291cmNlc19tw6luYWdlXCJdIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODg7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGlfcmVzc291cmNlc19tZW5hZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODg7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSkpIGluXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzLnLDqXNpZGVuY2VcIl1cbiAgICAgIChlbWJlZF9jb2xsZWN0aXZpdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTg5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg5OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBpX3Jlc2lkZW5jZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19KSkgaW5cbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICBcImFsbG9jYXRpb25zX2ZhbWlsaWFsZXMuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg2OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODY7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGlfZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04NjsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19KSkgaW5cbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X2VuZmFudHNfYV9jaGFyZ2VfOiBFbmZhbnQudCBhcnJheSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgXCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzLmVuZmFudHNfw6BfY2hhcmdlXCJdXG4gICAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2VuZmFudCkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04NzsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg3OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBlbmZhbnRzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg3OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0pKSBpblxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICBcImFsbG9jYXRpb25zX2ZhbWlsaWFsZXMuYXZhaXRfZW5mYW50X8OgX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXCJdXG4gICAgICAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMDsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEwMDsgZW5kX2NvbHVtbj03MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDA7IGVuZF9jb2x1bW49NzI7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMTsgc3RhcnRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMTsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgaV9hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMDA7IGVuZF9jb2x1bW49NzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAwOyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTAwOyBlbmRfY29sdW1uPTcyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1wiO1xuICAgICAgXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJdIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgKHtBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pbiA9XG4gICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50XztcbiAgICAgICAgQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pbiA9XG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfX2lfO1xuICAgICAgICBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5yZXNzb3VyY2VzX21lbmFnZV9pbiA9XG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzc291cmNlc19tZW5hZ2VfO1xuICAgICAgICBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3Jlc2lkZW5jZV87XG4gICAgICAgIEFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5lbmZhbnRzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9lbmZhbnRzX2FfY2hhcmdlXztcbiAgICAgICAgQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW4gPVxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX30pKSkgaW5cbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X21vbnRhbnRfdmVyc2VfOiBtb25leSA9IHJlc3VsdF8uQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnRfdmVyc2UgaW5cbiAgbGV0IGlfbW9udGFudF92ZXJzZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiaV9tb250YW50X3ZlcnPDqVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTgwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTgwOyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTA7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X21vbnRhbnRfdmVyc2VfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTgwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTgwOyBlbmRfY29sdW1uPTI3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0pKSkpIGluXG4gIHtJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXMuaV9tb250YW50X3ZlcnNlID0gaV9tb250YW50X3ZlcnNlX31cbiIsIigqKiBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IHRoZSBDYXRhbGEgY29tcGlsZXIsIGRvIG5vdCBlZGl0ISAqKVxuXG5vcGVuIFJ1bnRpbWVfb2NhbWwuUnVudGltZVxub3BlbiBSdW50aW1lX2pzb28uUnVudGltZVxub3BlbiBKc19vZl9vY2FtbFxub3BlbiBBbGxvY2F0aW9uc19mYW1pbGlhbGVzXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTQtMjYtMjctMzItNDEtNDJcIl1cblxuKCogR2VuZXJhdGVkIEFQSSAqKVxuXG5jbGFzcyB0eXBlIHByaXNlX2VuX2NoYXJnZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnNcIlxuICAgICAgICAtIFwiR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlXCJcbiAgICAgICAgLSBcIkVmZmVjdGl2ZUV0UGVybWFuZW50ZVwiXG4gICAgICAgIC0gXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZVwiXG4gICAgICAgIC0gXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgcHJpc2VfZW5fY2hhcmdlX3RvX2pzb28gOiBQcmlzZUVuQ2hhcmdlLnQgLT4gcHJpc2VfZW5fY2hhcmdlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRWZmZWN0aXZlRXRQZXJtYW5lbnRlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBwcmlzZV9lbl9jaGFyZ2Vfb2ZfanNvbyAocHJpc2VfZW5fY2hhcmdlIDogcHJpc2VfZW5fY2hhcmdlIEpzLnQpXG4gIDogUHJpc2VFbkNoYXJnZS50ID1cbiAgbWF0Y2ggcHJpc2VfZW5fY2hhcmdlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1wiIC0+XG4gICAgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zICgpXG4gIHwgXCJHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWVcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlICgpXG4gIHwgXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIiAtPiBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSAoKVxuICB8IFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGVcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgKClcbiAgfCBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXhcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnUHJpc2VFbkNoYXJnZS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkF2YW50XCJcbiAgICAgICAgLSBcIlBlbmRhbnRcIlxuICAgICAgICAtIFwiQXByZXNcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV90b19qc29vXG4gIDogU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQgLT4gc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQXZhbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBdmFudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFBlbmRhbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQZW5kYW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQXByZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBcHJlc1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfb2ZfanNvb1xuICAoc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgOiBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSBKcy50KVxuICA6IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50ID1cbiAgbWF0Y2ggc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJBdmFudFwiIC0+IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCAoKVxuICB8IFwiUGVuZGFudFwiIC0+IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50ICgpXG4gIHwgXCJBcHJlc1wiIC0+IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHByaXNlX2VuX2NvbXB0ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkNvbXBsZXRlXCJcbiAgICAgICAgLSBcIlBhcnRhZ2VlXCJcbiAgICAgICAgLSBcIlplcm9cIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBwcmlzZV9lbl9jb21wdGVfdG9fanNvbyA6IFByaXNlRW5Db21wdGUudCAtPiBwcmlzZV9lbl9jb21wdGUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQ29tcGxldGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDb21wbGV0ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFBhcnRhZ2VlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGFydGFnZWVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBaZXJvIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiWmVyb1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgcHJpc2VfZW5fY29tcHRlX29mX2pzb28gKHByaXNlX2VuX2NvbXB0ZSA6IHByaXNlX2VuX2NvbXB0ZSBKcy50KVxuICA6IFByaXNlRW5Db21wdGUudCA9XG4gIG1hdGNoIHByaXNlX2VuX2NvbXB0ZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkNvbXBsZXRlXCIgLT4gUHJpc2VFbkNvbXB0ZS5Db21wbGV0ZSAoKVxuICB8IFwiUGFydGFnZWVcIiAtPiBQcmlzZUVuQ29tcHRlLlBhcnRhZ2VlICgpXG4gIHwgXCJaZXJvXCIgLT4gUHJpc2VFbkNvbXB0ZS5aZXJvICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdQcmlzZUVuQ29tcHRlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHZlcnNlbWVudF9hbGxvY2F0aW9ucyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIk5vcm1hbFwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdmVyc2VtZW50X2FsbG9jYXRpb25zX3RvX2pzb29cbiAgOiBWZXJzZW1lbnRBbGxvY2F0aW9ucy50IC0+IHZlcnNlbWVudF9hbGxvY2F0aW9ucyBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBOb3JtYWwgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJOb3JtYWxcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdmVyc2VtZW50X2FsbG9jYXRpb25zX29mX2pzb29cbiAgKHZlcnNlbWVudF9hbGxvY2F0aW9ucyA6IHZlcnNlbWVudF9hbGxvY2F0aW9ucyBKcy50KVxuICA6IFZlcnNlbWVudEFsbG9jYXRpb25zLnQgPVxuICBtYXRjaCB2ZXJzZW1lbnRfYWxsb2NhdGlvbnMjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJOb3JtYWxcIiAtPiBWZXJzZW1lbnRBbGxvY2F0aW9ucy5Ob3JtYWwgKClcbiAgfCBcIkFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXhcIiAtPlxuICAgIFZlcnNlbWVudEFsbG9jYXRpb25zLkFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1ZlcnNlbWVudEFsbG9jYXRpb25zLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnRcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJcbiAgICAgICAgLSBcIkNvbXBsZW1lbnRGYW1pbGlhbFwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uTG9nZW1lbnRcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZVwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmVcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuICA6IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPiBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBDb21wbGVtZW50RmFtaWxpYWwgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDb21wbGVtZW50RmFtaWxpYWxcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uTG9nZW1lbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uTG9nZW1lbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAoZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIDogZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQpXG4gIDogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID1cbiAgbWF0Y2ggZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudFwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5QcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50ICgpXG4gIHwgXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbnNGYW1pbGlhbGVzICgpXG4gIHwgXCJDb21wbGVtZW50RmFtaWxpYWxcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQ29tcGxlbWVudEZhbWlsaWFsICgpXG4gIHwgXCJBbGxvY2F0aW9uTG9nZW1lbnRcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbkxvZ2VtZW50ICgpXG4gIHwgXCJBbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGUgKClcbiAgfCBcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCAoKVxuICB8IFwiQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZVwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlICgpXG4gIHwgXCJBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZVwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBjb2xsZWN0aXZpdGUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJHdWFkZWxvdXBlXCJcbiAgICAgICAgLSBcIkd1eWFuZVwiXG4gICAgICAgIC0gXCJNYXJ0aW5pcXVlXCJcbiAgICAgICAgLSBcIkxhUmV1bmlvblwiXG4gICAgICAgIC0gXCJTYWludEJhcnRoZWxlbXlcIlxuICAgICAgICAtIFwiU2FpbnRNYXJ0aW5cIlxuICAgICAgICAtIFwiTWV0cm9wb2xlXCJcbiAgICAgICAgLSBcIlNhaW50UGllcnJlRXRNaXF1ZWxvblwiXG4gICAgICAgIC0gXCJNYXlvdHRlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgY29sbGVjdGl2aXRlX3RvX2pzb28gOiBDb2xsZWN0aXZpdGUudCAtPiBjb2xsZWN0aXZpdGUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgR3VhZGVsb3VwZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkd1YWRlbG91cGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBHdXlhbmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJHdXlhbmVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBNYXJ0aW5pcXVlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTWFydGluaXF1ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IExhUmV1bmlvbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkxhUmV1bmlvblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFNhaW50QmFydGhlbGVteSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlNhaW50QmFydGhlbGVteVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFNhaW50TWFydGluIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiU2FpbnRNYXJ0aW5cIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBNZXRyb3BvbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNZXRyb3BvbGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBTYWludFBpZXJyZUV0TWlxdWVsb24gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTYWludFBpZXJyZUV0TWlxdWVsb25cIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBNYXlvdHRlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTWF5b3R0ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgY29sbGVjdGl2aXRlX29mX2pzb28gKGNvbGxlY3Rpdml0ZSA6IGNvbGxlY3Rpdml0ZSBKcy50KVxuICA6IENvbGxlY3Rpdml0ZS50ID1cbiAgbWF0Y2ggY29sbGVjdGl2aXRlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiR3VhZGVsb3VwZVwiIC0+IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpXG4gIHwgXCJHdXlhbmVcIiAtPiBDb2xsZWN0aXZpdGUuR3V5YW5lICgpXG4gIHwgXCJNYXJ0aW5pcXVlXCIgLT4gQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKClcbiAgfCBcIkxhUmV1bmlvblwiIC0+IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKClcbiAgfCBcIlNhaW50QmFydGhlbGVteVwiIC0+IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgKClcbiAgfCBcIlNhaW50TWFydGluXCIgLT4gQ29sbGVjdGl2aXRlLlNhaW50TWFydGluICgpXG4gIHwgXCJNZXRyb3BvbGVcIiAtPiBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpXG4gIHwgXCJTYWludFBpZXJyZUV0TWlxdWVsb25cIiAtPiBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uICgpXG4gIHwgXCJNYXlvdHRlXCIgLT4gQ29sbGVjdGl2aXRlLk1heW90dGUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0NvbGxlY3Rpdml0ZS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFnZU1pbmltdW1BbGluZWExTDUyMTM6XG4gICAgICBSdW50aW1lX2pzb28uUnVudGltZS5kdXJhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X3RvX2pzb29cbiAgICAoYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOCA6IEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4LnQpXG4gICAgOiBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGFnZU1pbmltdW1BbGluZWExTDUyMTMgPVxuICAgICAgICBkdXJhdGlvbl90b19qc29vIGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDguYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zXG4gICAgICBlbmRcbiAgbGV0IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfb2ZfanNvb1xuICAgIChhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4IDogYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOCBKcy50KSA6XG4gICAgQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDgudCA9XG4gICAge1xuICAgICAgYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zID1cbiAgICAgICAgZHVyYXRpb25fb2ZfanNvb1xuICAgICAgICAgIGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDgjIy5hZ2VNaW5pbXVtQWxpbmVhMUw1MjEzXG4gICAgfVxuXG5jbGFzcyB0eXBlIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICBvYmplY3QgbWV0aG9kIG1vbnRhbnRWZXJzZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvbyAoYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgIDogQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQpIDogYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtb250YW50VmVyc2UgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5tb250YW50X3ZlcnNlXG4gICAgICBlbmRcbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAgIChhbGxvY2F0aW9uc19mYW1pbGlhbGVzIDogYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSA6XG4gICAgQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnRfdmVyc2UgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyMjLm1vbnRhbnRWZXJzZVxuICAgIH1cblxuY2xhc3MgdHlwZSB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgPVxuICBvYmplY3QgbWV0aG9kIGVzdEluZmVyaWV1ck91RWdhbDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfdG9fanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FcbiAgICA6IFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEudClcbiAgICA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBlc3RJbmZlcmlldXJPdUVnYWwgPVxuICAgICAgICBKcy5ib29sIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYS5lc3RfaW5mZXJpZXVyX291X2VnYWxcbiAgICAgIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX29mX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hXG4gICAgICA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSBKcy50KSA6XG4gICAgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS50ID1cbiAgICB7XG4gICAgICBlc3RfaW5mZXJpZXVyX291X2VnYWwgPVxuICAgICAgICBKcy50b19ib29sIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSMjLmVzdEluZmVyaWV1ck91RWdhbFxuICAgIH1cblxuY2xhc3MgdHlwZSB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hID1cbiAgb2JqZWN0IG1ldGhvZCBlc3RTdXBlcmlldXI6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV90b19qc29vICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hXG4gICAgOiBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnQpIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBlc3RTdXBlcmlldXIgPSBKcy5ib29sIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EuZXN0X3N1cGVyaWV1clxuICAgICAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX29mX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgSnMudCkgOlxuICAgIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEudCA9XG4gICAge2VzdF9zdXBlcmlldXIgPSBKcy50b19ib29sIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EjIy5lc3RTdXBlcmlldXJcbiAgICB9XG5cbmNsYXNzIHR5cGUgc21pYyA9XG4gIG9iamVjdCBtZXRob2QgYnJ1dEhvcmFpcmU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBzbWljX3RvX2pzb28gKHNtaWMgOiBTbWljLnQpIDogc21pYyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBicnV0SG9yYWlyZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBzbWljLmJydXRfaG9yYWlyZVxuICAgICAgZW5kXG4gIGxldCBzbWljX29mX2pzb28gKHNtaWMgOiBzbWljIEpzLnQpIDogU21pYy50ID1cbiAgICB7XG4gICAgICBicnV0X2hvcmFpcmUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgc21pYyMjLmJydXRIb3JhaXJlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICBvYmplY3QgbWV0aG9kIG1vbnRhbnQ6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgIDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50KVxuICAgIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtb250YW50ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMubW9udGFudFxuICAgICAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQpIDpcbiAgICBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyMjLm1vbnRhbnRcbiAgICB9XG5cbmNsYXNzIHR5cGUgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICBvYmplY3QgbWV0aG9kIGlNb250YW50VmVyc2U6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG4gICAgKGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIDogSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQpXG4gICAgOiBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBpTW9udGFudFZlcnNlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLmlfbW9udGFudF92ZXJzZVxuICAgICAgZW5kXG4gIGxldCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgKGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICA6IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQpIDpcbiAgICBJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9XG4gICAge1xuICAgICAgaV9tb250YW50X3ZlcnNlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIyMuaU1vbnRhbnRWZXJzZVxuICAgIH1cblxuY2xhc3MgdHlwZSBlbmZhbnRfZW50cmVlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRJZGVudGlmaWFudDogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZFJlbXVuZXJhdGlvbk1lbnN1ZWxsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkRGF0ZURlTmFpc3NhbmNlOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRQcmlzZUVuQ2hhcmdlOiBwcmlzZV9lbl9jaGFyZ2UgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRBRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZEJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnQ6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVuZmFudF9lbnRyZWVfdG9fanNvbyAoZW5mYW50X2VudHJlZSA6IEVuZmFudEVudHJlZS50KVxuICAgIDogZW5mYW50X2VudHJlZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkSWRlbnRpZmlhbnQgPSBpbnRlZ2VyX3RvX2ludCBlbmZhbnRfZW50cmVlLmRfaWRlbnRpZmlhbnRcbiAgICAgIHZhbCBkUmVtdW5lcmF0aW9uTWVuc3VlbGxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGVuZmFudF9lbnRyZWUuZF9yZW11bmVyYXRpb25fbWVuc3VlbGxlXG4gICAgICB2YWwgZERhdGVEZU5haXNzYW5jZSA9IGRhdGVfdG9fanNvbyBlbmZhbnRfZW50cmVlLmRfZGF0ZV9kZV9uYWlzc2FuY2VcbiAgICAgIHZhbCBkUHJpc2VFbkNoYXJnZSA9XG4gICAgICAgIHByaXNlX2VuX2NoYXJnZV90b19qc29vIGVuZmFudF9lbnRyZWUuZF9wcmlzZV9lbl9jaGFyZ2VcbiAgICAgIHZhbCBkQURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLmJvb2wgZW5mYW50X2VudHJlZS5kX2FfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIHZhbCBkQmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudCA9XG4gICAgICAgIEpzLmJvb2wgZW5mYW50X2VudHJlZS5kX2JlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgZW5kXG4gIGxldCBlbmZhbnRfZW50cmVlX29mX2pzb28gKGVuZmFudF9lbnRyZWUgOiBlbmZhbnRfZW50cmVlIEpzLnQpIDpcbiAgICBFbmZhbnRFbnRyZWUudCA9XG4gICAge1xuICAgICAgZF9pZGVudGlmaWFudCA9IGludGVnZXJfb2ZfaW50IGVuZmFudF9lbnRyZWUjIy5kSWRlbnRpZmlhbnQ7XG4gICAgICBkX3JlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgZW5mYW50X2VudHJlZSMjLmRSZW11bmVyYXRpb25NZW5zdWVsbGU7XG4gICAgICBkX2RhdGVfZGVfbmFpc3NhbmNlID0gZGF0ZV9vZl9qc29vIGVuZmFudF9lbnRyZWUjIy5kRGF0ZURlTmFpc3NhbmNlO1xuICAgICAgZF9wcmlzZV9lbl9jaGFyZ2UgPVxuICAgICAgICBwcmlzZV9lbl9jaGFyZ2Vfb2ZfanNvbyBlbmZhbnRfZW50cmVlIyMuZFByaXNlRW5DaGFyZ2U7XG4gICAgICBkX2FfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICAgICAgICBKcy50b19ib29sIGVuZmFudF9lbnRyZWUjIy5kQURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlcztcbiAgICAgIGRfYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGVuZmFudF9lbnRyZWUjIy5kQmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudFxuICAgIH1cblxuY2xhc3MgdHlwZSBlbmZhbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgaWRlbnRpZmlhbnQ6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG9ibGlnYXRpb25TY29sYWlyZTpcbiAgICAgIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZW11bmVyYXRpb25NZW5zdWVsbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZURlTmFpc3NhbmNlOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHByaXNlRW5DaGFyZ2U6IHByaXNlX2VuX2NoYXJnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlczpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnQ6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVuZmFudF90b19qc29vIChlbmZhbnQgOiBFbmZhbnQudCkgOiBlbmZhbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgaWRlbnRpZmlhbnQgPSBpbnRlZ2VyX3RvX2ludCBlbmZhbnQuaWRlbnRpZmlhbnRcbiAgICAgIHZhbCBvYmxpZ2F0aW9uU2NvbGFpcmUgPVxuICAgICAgICBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV90b19qc29vIGVuZmFudC5vYmxpZ2F0aW9uX3Njb2xhaXJlXG4gICAgICB2YWwgcmVtdW5lcmF0aW9uTWVuc3VlbGxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGVuZmFudC5yZW11bmVyYXRpb25fbWVuc3VlbGxlXG4gICAgICB2YWwgZGF0ZURlTmFpc3NhbmNlID0gZGF0ZV90b19qc29vIGVuZmFudC5kYXRlX2RlX25haXNzYW5jZVxuICAgICAgdmFsIHByaXNlRW5DaGFyZ2UgPSBwcmlzZV9lbl9jaGFyZ2VfdG9fanNvbyBlbmZhbnQucHJpc2VfZW5fY2hhcmdlXG4gICAgICB2YWwgYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLmJvb2wgZW5mYW50LmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIHZhbCBiZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50ID1cbiAgICAgICAgSnMuYm9vbCBlbmZhbnQuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICBlbmRcbiAgbGV0IGVuZmFudF9vZl9qc29vIChlbmZhbnQgOiBlbmZhbnQgSnMudCkgOiBFbmZhbnQudCA9XG4gICAge1xuICAgICAgaWRlbnRpZmlhbnQgPSBpbnRlZ2VyX29mX2ludCBlbmZhbnQjIy5pZGVudGlmaWFudDtcbiAgICAgIG9ibGlnYXRpb25fc2NvbGFpcmUgPVxuICAgICAgICBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV9vZl9qc29vIGVuZmFudCMjLm9ibGlnYXRpb25TY29sYWlyZTtcbiAgICAgIHJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgZW5mYW50IyMucmVtdW5lcmF0aW9uTWVuc3VlbGxlO1xuICAgICAgZGF0ZV9kZV9uYWlzc2FuY2UgPSBkYXRlX29mX2pzb28gZW5mYW50IyMuZGF0ZURlTmFpc3NhbmNlO1xuICAgICAgcHJpc2VfZW5fY2hhcmdlID0gcHJpc2VfZW5fY2hhcmdlX29mX2pzb28gZW5mYW50IyMucHJpc2VFbkNoYXJnZTtcbiAgICAgIGFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICAgICAgICBKcy50b19ib29sIGVuZmFudCMjLmFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXM7XG4gICAgICBiZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICBKcy50b19ib29sIGVuZmFudCMjLmJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnRcbiAgICB9XG5cbmNsYXNzIHR5cGUgZW5mYW50X2xlX3BsdXNfYWdlID1cbiAgb2JqZWN0IG1ldGhvZCBsZVBsdXNBZ2U6IGVuZmFudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBlbmZhbnRfbGVfcGx1c19hZ2VfdG9fanNvbyAoZW5mYW50X2xlX3BsdXNfYWdlIDogRW5mYW50TGVQbHVzQWdlLnQpXG4gICAgOiBlbmZhbnRfbGVfcGx1c19hZ2UgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbGVQbHVzQWdlID0gZW5mYW50X3RvX2pzb28gZW5mYW50X2xlX3BsdXNfYWdlLmxlX3BsdXNfYWdlXG4gICAgICBlbmRcbiAgbGV0IGVuZmFudF9sZV9wbHVzX2FnZV9vZl9qc29vXG4gICAgKGVuZmFudF9sZV9wbHVzX2FnZSA6IGVuZmFudF9sZV9wbHVzX2FnZSBKcy50KSA6IEVuZmFudExlUGx1c0FnZS50ID1cbiAgICB7bGVfcGx1c19hZ2UgPSBlbmZhbnRfb2ZfanNvbyBlbmZhbnRfbGVfcGx1c19hZ2UjIy5sZVBsdXNBZ2VcbiAgICB9XG5cbmNsYXNzIHR5cGUgcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkcm9pdE91dmVydDpcbiAgICAgICh1bml0LCAgZW5mYW50IEpzLnQgLT4gYm9vbCBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgICBtZXRob2QgY29uZGl0aW9uc0hvcnNBZ2U6XG4gICAgICAodW5pdCwgIGVuZmFudCBKcy50IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIGFnZUw1MTIzMjogUnVudGltZV9qc29vLlJ1bnRpbWUuZHVyYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlZ2ltZU91dHJlTWVyTDc1MTE6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIChwcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gICAgOiBQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCkgOiBwcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgbWV0aG9kIGRyb2l0T3V2ZXJ0ID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBlbmZhbnQgSnMudCkgLT5cbiAgICAgICAgICBKcy5ib29sIChwcmVzdGF0aW9uc19mYW1pbGlhbGVzLmRyb2l0X291dmVydCAoZW5mYW50X29mX2pzb29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgbWV0aG9kIGNvbmRpdGlvbnNIb3JzQWdlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBlbmZhbnQgSnMudCkgLT5cbiAgICAgICAgICBKcy5ib29sIChwcmVzdGF0aW9uc19mYW1pbGlhbGVzLmNvbmRpdGlvbnNfaG9yc19hZ2UgKGVuZmFudF9vZl9qc29vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICB2YWwgYWdlTDUxMjMyID0gZHVyYXRpb25fdG9fanNvbyBwcmVzdGF0aW9uc19mYW1pbGlhbGVzLmFnZV9sNTEyXzNfMlxuICAgICAgdmFsIHJlZ2ltZU91dHJlTWVyTDc1MTEgPVxuICAgICAgICBKcy5ib29sIHByZXN0YXRpb25zX2ZhbWlsaWFsZXMucmVnaW1lX291dHJlX21lcl9sNzUxXzFcbiAgICAgIGVuZFxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgKHByZXN0YXRpb25zX2ZhbWlsaWFsZXMgOiBwcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQpIDpcbiAgICBQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9XG4gICAge1xuICAgICAgZHJvaXRfb3V2ZXJ0ID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ2Ryb2l0X291dmVydCcgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiO1xuICAgICAgY29uZGl0aW9uc19ob3JzX2FnZSA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdjb25kaXRpb25zX2hvcnNfYWdlJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCI7XG4gICAgICBhZ2VfbDUxMl8zXzIgPSBkdXJhdGlvbl9vZl9qc29vIHByZXN0YXRpb25zX2ZhbWlsaWFsZXMjIy5hZ2VMNTEyMzI7XG4gICAgICByZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLnJlZ2ltZU91dHJlTWVyTDc1MTFcbiAgICB9XG5cbmNsYXNzIHR5cGUgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwcmVzdGF0aW9uQ291cmFudGVJbjpcbiAgICAgIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luX3RvX2pzb28gKHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICA6IFByZXN0YXRpb25zRmFtaWxpYWxlc0luLnQpIDogcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBwcmVzdGF0aW9uQ291cmFudGVJbiA9XG4gICAgICAgIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4ucHJlc3RhdGlvbl9jb3VyYW50ZV9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5yZXNpZGVuY2VfaW5cbiAgICAgIGVuZFxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qc29vXG4gICAgKHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gOiBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpIDpcbiAgICBQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIHByZXN0YXRpb25fY291cmFudGVfaW4gPVxuICAgICAgICBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5wcmVzdGF0aW9uQ291cmFudGVJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5yZXNpZGVuY2VJblxuICAgIH1cblxuY2xhc3MgdHlwZSBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luID1cbm9iamVjdCBlbmRcbmxldCBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luX3RvX2pzb28gKF8gOiBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOEluLnQpIDogYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbiBKcy50ID0gb2JqZWN0JWpzIGVuZFxubGV0IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW5fb2ZfanNvbyAoXyA6IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW4gSnMudCkgOiBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOEluLnQgPSAoKVxuY2xhc3MgdHlwZSBlbmZhbnRfbGVfcGx1c19hZ2VfaW4gPVxuICBvYmplY3QgbWV0aG9kIGVuZmFudHNJbjogZW5mYW50IEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZW5mYW50X2xlX3BsdXNfYWdlX2luX3RvX2pzb28gKGVuZmFudF9sZV9wbHVzX2FnZV9pblxuICAgIDogRW5mYW50TGVQbHVzQWdlSW4udCkgOiBlbmZhbnRfbGVfcGx1c19hZ2VfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZW5mYW50c0luID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBlbmZhbnRfdG9fanNvbyB4KSBlbmZhbnRfbGVfcGx1c19hZ2VfaW4uZW5mYW50c19pblxuICAgICAgZW5kXG4gIGxldCBlbmZhbnRfbGVfcGx1c19hZ2VfaW5fb2ZfanNvb1xuICAgIChlbmZhbnRfbGVfcGx1c19hZ2VfaW4gOiBlbmZhbnRfbGVfcGx1c19hZ2VfaW4gSnMudCkgOlxuICAgIEVuZmFudExlUGx1c0FnZUluLnQgPVxuICAgIHtcbiAgICAgIGVuZmFudHNfaW4gPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IGVuZmFudF9vZl9qc29vIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgZW5mYW50X2xlX3BsdXNfYWdlX2luIyMuZW5mYW50c0luXG4gICAgfVxuXG5jbGFzcyB0eXBlIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgcGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlRXN0UGFyZW50SW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVSZW1wbGl0VGl0cmVJSW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzTWVuYWdlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZW5mYW50c0FDaGFyZ2VJbjogZW5mYW50IEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGF2YWl0RW5mYW50QUNoYXJnZUF2YW50MWVySmFudmllcjIwMTJJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qc29vIChhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgOiBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgcGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlRXN0UGFyZW50SW4gPVxuICAgICAgICBKcy5ib29sIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4ucGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW5cbiAgICAgIHZhbCBwZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVSZW1wbGl0VGl0cmVJSW4gPVxuICAgICAgICBKcy5ib29sIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4ucGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLnJlc3NvdXJjZXNfbWVuYWdlX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLnJlc2lkZW5jZV9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGVuZmFudHNBQ2hhcmdlSW4gPVxuICAgICAgICBKcy5hcnJheSBAQCBBcnJheS5tYXAgKGZ1biB4IC0+IGVuZmFudF90b19qc29vIHgpIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uZW5mYW50c19hX2NoYXJnZV9pblxuICAgICAgdmFsIGF2YWl0RW5mYW50QUNoYXJnZUF2YW50MWVySmFudmllcjIwMTJJbiA9XG4gICAgICAgIEpzLmJvb2wgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pblxuICAgICAgZW5kXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgICAoYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA6IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCkgOlxuICAgIEFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQgPVxuICAgIHtcbiAgICAgIHBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICAgICAgICAjIy5wZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVFc3RQYXJlbnRJbjtcbiAgICAgIHBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgICAgICMjLnBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZVJlbXBsaXRUaXRyZUlJbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5yZXNzb3VyY2VzTWVuYWdlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvbyBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMucmVzaWRlbmNlSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGVuZmFudHNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IGVuZmFudF9vZl9qc29vIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiMjLmVuZmFudHNBQ2hhcmdlSW47XG4gICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMuYXZhaXRFbmZhbnRBQ2hhcmdlQXZhbnQxZXJKYW52aWVyMjAxMkluXG4gICAgfVxuXG5jbGFzcyB0eXBlIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlTmFpc3NhbmNlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYW5uZWVzSW46IFJ1bnRpbWVfanNvby5SdW50aW1lLmR1cmF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbl90b19qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pblxuICAgIDogVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLnQpXG4gICAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZU5haXNzYW5jZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbi5kYXRlX25haXNzYW5jZV9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgYW5uZWVzSW4gPVxuICAgICAgICBkdXJhdGlvbl90b19qc29vIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbi5hbm5lZXNfaW5cbiAgICAgIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luX29mX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luXG4gICAgICA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiBKcy50KSA6XG4gICAgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfbmFpc3NhbmNlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIyMuZGF0ZU5haXNzYW5jZUluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGFubmVlc19pbiA9XG4gICAgICAgIGR1cmF0aW9uX29mX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIyMuYW5uZWVzSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlTmFpc3NhbmNlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYW5uZWVzSW46IFJ1bnRpbWVfanNvby5SdW50aW1lLmR1cmF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW5fdG9fanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLnQpXG4gICAgOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVOYWlzc2FuY2VJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLmRhdGVfbmFpc3NhbmNlX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgYW5uZWVzSW4gPVxuICAgICAgICBkdXJhdGlvbl90b19qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uYW5uZWVzX2luXG4gICAgICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW5fb2ZfanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiBKcy50KSA6XG4gICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfbmFpc3NhbmNlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4jIy5kYXRlTmFpc3NhbmNlSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGFubmVlc19pbiA9IGR1cmF0aW9uX29mX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiMjLmFubmVlc0luXG4gICAgfVxuXG5jbGFzcyB0eXBlIHNtaWNfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBzbWljX2luX3RvX2pzb28gKHNtaWNfaW4gOiBTbWljSW4udCkgOiBzbWljX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID0gZGF0ZV90b19qc29vIHNtaWNfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID0gY29sbGVjdGl2aXRlX3RvX2pzb28gc21pY19pbi5yZXNpZGVuY2VfaW5cbiAgICAgIGVuZFxuICBsZXQgc21pY19pbl9vZl9qc29vIChzbWljX2luIDogc21pY19pbiBKcy50KSA6IFNtaWNJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID0gZGF0ZV9vZl9qc29vIHNtaWNfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9IGNvbGxlY3Rpdml0ZV9vZl9qc29vIHNtaWNfaW4jIy5yZXNpZGVuY2VJblxuICAgIH1cblxuY2xhc3MgdHlwZSBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luID1cbiAgb2JqZWN0IG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fdG9fanNvb1xuICAgIChiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgOiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udClcbiAgICA6IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICBlbmRcbiAgbGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICAgIChiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICA6IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCkgOlxuICAgIEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiMjLmRhdGVDb3VyYW50ZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGlEYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBpRW5mYW50c0luOiBlbmZhbnRfZW50cmVlIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGlSZXNzb3VyY2VzTWVuYWdlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgaVJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGlQZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVFc3RQYXJlbnRJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGlQZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVSZW1wbGl0VGl0cmVJSW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBpQXZhaXRFbmZhbnRBQ2hhcmdlQXZhbnQxZXJKYW52aWVyMjAxMkluOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qc29vXG4gICAgKGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgOiBJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KVxuICAgIDogaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgaURhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmlfZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGlFbmZhbnRzSW4gPVxuICAgICAgICBKcy5hcnJheSBAQCBBcnJheS5tYXAgKGZ1biB4IC0+IGVuZmFudF9lbnRyZWVfdG9fanNvbyB4KSBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5pX2VuZmFudHNfaW5cbiAgICAgIHZhbCBpUmVzc291cmNlc01lbmFnZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmlfcmVzc291cmNlc19tZW5hZ2VfaW5cbiAgICAgIHZhbCBpUmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5pX3Jlc2lkZW5jZV9pblxuICAgICAgdmFsIGlQZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVFc3RQYXJlbnRJbiA9XG4gICAgICAgIEpzLmJvb2wgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pblxuICAgICAgdmFsIGlQZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVSZW1wbGl0VGl0cmVJSW4gPVxuICAgICAgICBKcy5ib29sIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pblxuICAgICAgdmFsIGlBdmFpdEVuZmFudEFDaGFyZ2VBdmFudDFlckphbnZpZXIyMDEySW4gPVxuICAgICAgICBKcy5ib29sIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmlfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW5cbiAgICAgIGVuZFxuICBsZXQgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICAgIChpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgOiBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50KSA6XG4gICAgSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCA9XG4gICAge1xuICAgICAgaV9kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMuaURhdGVDb3VyYW50ZUluO1xuICAgICAgaV9lbmZhbnRzX2luID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBlbmZhbnRfZW50cmVlX29mX2pzb28geCkgQEAgSnMudG9fYXJyYXlcbiAgICAgICAgICBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiMjLmlFbmZhbnRzSW47XG4gICAgICBpX3Jlc3NvdXJjZXNfbWVuYWdlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMuaVJlc3NvdXJjZXNNZW5hZ2VJbjtcbiAgICAgIGlfcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiMjLmlSZXNpZGVuY2VJbjtcbiAgICAgIGlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICAgICAgICAjIy5pUGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlRXN0UGFyZW50SW47XG4gICAgICBpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICAgICAgICAjIy5pUGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlUmVtcGxpdFRpdHJlSUluO1xuICAgICAgaV9hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgICAgICMjLmlBdmFpdEVuZmFudEFDaGFyZ2VBdmFudDFlckphbnZpZXIyMDEySW5cbiAgICB9XG5cblxuXG5cbmxldCBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4XG4gIChhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luIDogYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbiBKcy50KVxuICA6IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDggSnMudCA9XG4gIGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW5cbiAgfD4gYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbl9vZl9qc29vXG4gIHw+IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhcbiAgfD4gYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF90b19qc29vXG5cblxubGV0IGVuZmFudF9sZV9wbHVzX2FnZSAoZW5mYW50X2xlX3BsdXNfYWdlX2luIDogZW5mYW50X2xlX3BsdXNfYWdlX2luIEpzLnQpXG4gIDogZW5mYW50X2xlX3BsdXNfYWdlIEpzLnQgPVxuICBlbmZhbnRfbGVfcGx1c19hZ2VfaW5cbiAgfD4gZW5mYW50X2xlX3BsdXNfYWdlX2luX29mX2pzb29cbiAgfD4gZW5mYW50X2xlX3BsdXNfYWdlXG4gIHw+IGVuZmFudF9sZV9wbHVzX2FnZV90b19qc29vXG5cblxubGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIEpzLnQpXG4gIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hIEpzLnQgPVxuICB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5cbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luX29mX2pzb29cbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV90b19qc29vXG5cblxubGV0IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FcbiAgKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIEpzLnQpXG4gIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSBKcy50ID1cbiAgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pblxuICB8PiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luX29mX2pzb29cbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYVxuICB8PiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX3RvX2pzb29cblxuXG5sZXQgc21pYyAoc21pY19pbiA6IHNtaWNfaW4gSnMudClcbiAgOiBzbWljIEpzLnQgPVxuICBzbWljX2luIHw+IHNtaWNfaW5fb2ZfanNvbyB8PiBzbWljIHw+IHNtaWNfdG9fanNvb1xuXG5cbmxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gIChiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50KVxuICA6IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgfD4gYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qc29vXG4gIHw+IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgfD4gYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG5cblxubGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgKHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gOiBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpXG4gIDogcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pblxuICB8PiBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgfD4gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICB8PiBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cblxuXG5sZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAoYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA6IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudClcbiAgOiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gIHw+IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICB8PiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gIHw+IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuXG5cbmxldCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAoaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gOiBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50KVxuICA6IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICB8PiBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qc29vXG4gIHw+IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gIHw+IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cblxuXG5sZXQgXyA9XG4gICBKcy5leHBvcnQgXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNMaWJcIlxuICAgIChvYmplY3QlanNcbiAgICAgIFxuICAgICAgbWV0aG9kIGFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4IDogKGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW4gSnMudCAtPiBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4IEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4XG4gICAgICBcbiAgICAgIG1ldGhvZCBlbmZhbnRMZVBsdXNBZ2UgOiAoZW5mYW50X2xlX3BsdXNfYWdlX2luIEpzLnQgLT4gZW5mYW50X2xlX3BsdXNfYWdlIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBlbmZhbnRfbGVfcGx1c19hZ2VcbiAgICAgIFxuICAgICAgbWV0aG9kIHZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEgOiAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIEpzLnQgLT4gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FcbiAgICAgIFxuICAgICAgbWV0aG9kIHZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEgOiAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiBKcy50IC0+IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FcbiAgICAgIFxuICAgICAgbWV0aG9kIHNtaWMgOiAoc21pY19pbiBKcy50IC0+IHNtaWMgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIHNtaWNcbiAgICAgIFxuICAgICAgbWV0aG9kIGJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgOiAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50IC0+IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIFxuICAgICAgbWV0aG9kIHByZXN0YXRpb25zRmFtaWxpYWxlcyA6IChwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgLT4gcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgXG4gICAgICBtZXRob2QgYWxsb2NhdGlvbnNGYW1pbGlhbGVzIDogKGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCAtPiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBhbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICBcbiAgICAgIG1ldGhvZCBpbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgOiAoaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCAtPiBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIFxuICAgIGVuZCkiLCIoKiogVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSB0aGUgQ2F0YWxhIGNvbXBpbGVyLCBkbyBub3QgZWRpdCEgKilcblxub3BlbiBSdW50aW1lX29jYW1sLlJ1bnRpbWVcblxuW0BAQG9jYW1sLndhcm5pbmcgXCItNC0yNi0yNy0zMi00MS00MlwiXVxuXG5tb2R1bGUgVHlwZVByZXQgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgRDMzMV8zMiBvZiB1bml0XG4gICAgfCBEMzMxXzYzXzY0IG9mIHVuaXRcbiAgICB8IEQzMzFfNTlfOCBvZiB1bml0XG4gICAgfCBEMzMxXzc2XzEgb2YgdW5pdFxuICAgIHwgQXV0cmUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF90eXBlX3ByZXQgKHg6IFR5cGVQcmV0LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiVHlwZVByw6p0XCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEQzMzFfMzIgeCAtPiAoXCJEMzMxXzMyXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEQzMzFfNjNfNjQgeCAtPiAoXCJEMzMxXzYzXzY0XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEQzMzFfNTlfOCB4IC0+IChcIkQzMzFfNTlfOFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBEMzMxXzc2XzEgeCAtPiAoXCJEMzMxXzc2XzFcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQXV0cmUgeCAtPiAoXCJBdXRyZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBUaXR1bGFpcmVQcmV0ID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IERlbWFuZGV1ciBvZiB1bml0XG4gICAgfCBWZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfdGl0dWxhaXJlX3ByZXQgKHg6IFRpdHVsYWlyZVByZXQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJUaXR1bGFpcmVQcsOqdFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBEZW1hbmRldXIgeCAtPiAoXCJEZW1hbmRldXJcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvbiB4IC0+XG4gICAgICAoXCJWZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgVHJhdmF1eFBvdXJBY3F1aXNpdGlvbkQ4MzJfMTVfMSBvZiB1bml0XG4gICAgfCBUcmF2YXV4U3VyTG9nZW1lbnREZWphQWNxdWlzRDgzMl8xNV8yIG9mIHVuaXRcbiAgICB8IFBhc0RlVHJhdmF1eCBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1ICh4OiBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzJfMTVcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgVHJhdmF1eFBvdXJBY3F1aXNpdGlvbkQ4MzJfMTVfMSB4IC0+XG4gICAgICAoXCJUcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFRyYXZhdXhTdXJMb2dlbWVudERlamFBY3F1aXNEODMyXzE1XzIgeCAtPlxuICAgICAgKFwiVHJhdmF1eFN1ckxvZ2VtZW50RMOpasOgQWNxdWlzRDgzMl8xNV8yXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFBhc0RlVHJhdmF1eCB4IC0+IChcIlBhc0RlVHJhdmF1eFwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgb2YgdW5pdFxuICAgIHwgUHJldnVEYW5zTGlzdGVSMzIxXzE1IG9mIHVuaXRcbiAgICB8IEFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIG9mIHVuaXRcbiAgICB8IFBhc0RlVHJhdmF1eCBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUgKHg6IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlR5cGVUcmF2YXV4TG9nZW1lbnRSODQyXzVcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgeCAtPiAoXCJPYmplY3RpZkTDqWNlbmNlTG9nZW1lbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUHJldnVEYW5zTGlzdGVSMzIxXzE1IHggLT4gKFwiUHLDqXZ1RGFuc0xpc3RlUjMyMV8xNVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyB4IC0+XG4gICAgICAoXCJBZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82M1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBQYXNEZVRyYXZhdXggeCAtPiAoXCJQYXNEZVRyYXZhdXhcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgQW1lbGlvcmVQYXJPY2N1cGFudCA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBPdWkgb2YgdW5pdFxuICAgIHwgTm9uIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfYW1lbGlvcmVfcGFyX29jY3VwYW50ICh4OiBBbWVsaW9yZVBhck9jY3VwYW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiQW3DqWxpb3LDqVBhck9jY3VwYW50XCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IE91aSB4IC0+IChcIk91aVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBOb24geCAtPiAoXCJOb25cIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgTGltaXRlVHJhbmNoZSA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBSZXZlbnUgb2YgbW9uZXlcbiAgICB8IEluZmluaSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2xpbWl0ZV90cmFuY2hlICh4OiBMaW1pdGVUcmFuY2hlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiTGltaXRlVHJhbmNoZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBSZXZlbnUgeCAtPiAoXCJSZXZlbnVcIiwgZW1iZWRfbW9uZXkgeClcbiAgICB8IEluZmluaSB4IC0+IChcIkluZmluaVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBMaW1pdGVUcmFuY2hlRGVjaW1hbCA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBSZXZlbnUgb2YgZGVjaW1hbFxuICAgIHwgSW5maW5pIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfbGltaXRlX3RyYW5jaGVfZGVjaW1hbCAoeDogTGltaXRlVHJhbmNoZURlY2ltYWwudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJMaW1pdGVUcmFuY2hlRMOpY2ltYWxcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgUmV2ZW51IHggLT4gKFwiUmV2ZW51XCIsIGVtYmVkX2RlY2ltYWwgeClcbiAgICB8IEluZmluaSB4IC0+IChcIkluZmluaVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBQcmVzdGF0aW9uUmVjdWUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIG9mIHVuaXRcbiAgICB8IENvbXBsZW1lbnRGYW1pbGlhbCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uSmV1bmVFbmZhbnQgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2FwZSBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uQWR1bHRlSGFuZGljYXBlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfcHJlc3RhdGlvbl9yZWN1ZSAoeDogUHJlc3RhdGlvblJlY3VlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiUHJlc3RhdGlvblJlw6d1ZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgeCAtPiAoXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQ29tcGxlbWVudEZhbWlsaWFsIHggLT4gKFwiQ29tcGzDqW1lbnRGYW1pbGlhbFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uSmV1bmVFbmZhbnQgeCAtPiAoXCJBbGxvY2F0aW9uSmV1bmVFbmZhbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Tb3V0aWVuRW5mYW50SGFuZGljYXBlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25Tb3V0aWVuRW5mYW50SGFuZGljYXDDqVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uQWR1bHRlSGFuZGljYXBlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25BZHVsdGVIYW5kaWNhcMOpXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFBhcmVudE91QXV0cmUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgRGVtYW5kZXVyT3VDb25qb2ludE91UGFyZW50T3VWaWFQYXJ0c1NvY2lldGVzIG9mIGRlY2ltYWxcbiAgICB8IEF1dHJlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfcGFyZW50X291X2F1dHJlICh4OiBQYXJlbnRPdUF1dHJlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiUGFyZW50T3VBdXRyZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBEZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgeCAtPlxuICAgICAgKFwiRGVtYW5kZXVyT3VDb25qb2ludE91UGFyZW50T3VWaWFQYXJ0c1NvY2nDqXTDqXNcIiwgZW1iZWRfZGVjaW1hbCB4KVxuICAgIHwgQXV0cmUgeCAtPiAoXCJBdXRyZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBTaXR1YXRpb25HYXJkZUFsdGVybmVlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IFBhc0RlR2FyZGVBbHRlcm5lZSBvZiB1bml0XG4gICAgfCBHYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIG9mIGRlY2ltYWxcbiAgZW5kXG5sZXQgZW1iZWRfc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlICh4OiBTaXR1YXRpb25HYXJkZUFsdGVybmVlLnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiU2l0dWF0aW9uR2FyZGVBbHRlcm7DqWVcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgUGFzRGVHYXJkZUFsdGVybmVlIHggLT4gKFwiUGFzRGVHYXJkZUFsdGVybsOpZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBHYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIHggLT5cbiAgICAgIChcIkdhcmRlQWx0ZXJuw6llQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlXCIsIGVtYmVkX2RlY2ltYWwgeCkpXG5cblxubW9kdWxlIFBhcmVudGUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgQXNjZW5kYW50IG9mIHVuaXRcbiAgICB8IERlc2NlbmRhbnQgb2YgdW5pdFxuICAgIHwgQ29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9wYXJlbnRlICh4OiBQYXJlbnRlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiUGFyZW50w6lcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQXNjZW5kYW50IHggLT4gKFwiQXNjZW5kYW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IERlc2NlbmRhbnQgeCAtPiAoXCJEZXNjZW5kYW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IENvbGxhdGVyYWxEZXV4aWVtZVRyb2lzaWVtZURlZ3JlIHggLT5cbiAgICAgIChcIkNvbGxhdMOpcmFsRGV1eGnDqG1lVHJvaXNpw6htZURlZ3LDqVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBEYXRlRGVOYWlzc2FuY2VPdU1vaXNEZUdyb3NzZXNzZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBEYXRlRGVOYWlzc2FuY2Ugb2YgZGF0ZVxuICAgIHwgQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSBvZiB1bml0XG4gICAgfCBBcHJlc1ByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2VcbiAgKHg6IERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2VcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgRGF0ZURlTmFpc3NhbmNlIHggLT4gKFwiRGF0ZURlTmFpc3NhbmNlXCIsIGVtYmVkX2RhdGUgeClcbiAgICB8IEF2YW50UHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2UgeCAtPlxuICAgICAgKFwiQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzacOobWVNb2lzRGVHcm9zc2Vzc2VcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQXByZXNQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSB4IC0+XG4gICAgICAoXCJBcHLDqHNQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzacOobWVNb2lzRGVHcm9zc2Vzc2VcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgWm9uZURIYWJpdGF0aW9uID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IFpvbmUxIG9mIHVuaXRcbiAgICB8IFpvbmUyIG9mIHVuaXRcbiAgICB8IFpvbmUzIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfem9uZV9kX2hhYml0YXRpb24gKHg6IFpvbmVESGFiaXRhdGlvbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlpvbmVESGFiaXRhdGlvblwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBab25lMSB4IC0+IChcIlpvbmUxXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFpvbmUyIHggLT4gKFwiWm9uZTJcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgWm9uZTMgeCAtPiAoXCJab25lM1wiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBQYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IE91aUF2ZWNMb3llck91Q2hhcmdlcyBvZiBtb25leVxuICAgIHwgTm9uIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbFxuICAoeDogUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWxcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgT3VpQXZlY0xveWVyT3VDaGFyZ2VzIHggLT4gKFwiT3VpQXZlY0xveWVyT3VDaGFyZ2VzXCIsIGVtYmVkX21vbmV5IHgpXG4gICAgfCBOb24geCAtPiAoXCJOb25cIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgVmVyc2VtZW50QSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBCYWlsbGV1ciBvZiB1bml0XG4gICAgfCBCZW5lZmljaWFpcmUgb2YgdW5pdFxuICAgIHwgRXRhYmxpc3NlbWVudEhhYmlsaXRlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfdmVyc2VtZW50X2EgKHg6IFZlcnNlbWVudEEudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJWZXJzZW1lbnTDgFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBCYWlsbGV1ciB4IC0+IChcIkJhaWxsZXVyXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEJlbmVmaWNpYWlyZSB4IC0+IChcIkLDqW7DqWZpY2lhaXJlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEV0YWJsaXNzZW1lbnRIYWJpbGl0ZSB4IC0+IChcIsOJdGFibGlzc2VtZW50SGFiaWxpdMOpXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIERlcGVuc2VMb2dlbWVudCA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBUb3RhbEFubnVlbEVjaGVhbmNlcyBvZiBtb25leVxuICAgIHwgTWVuc3VhbGl0ZSBvZiBtb25leVxuICAgIHwgTG95ZXIgb2YgbW9uZXlcbiAgZW5kXG5sZXQgZW1iZWRfZGVwZW5zZV9sb2dlbWVudCAoeDogRGVwZW5zZUxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiRMOpcGVuc2VMb2dlbWVudFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBUb3RhbEFubnVlbEVjaGVhbmNlcyB4IC0+IChcIlRvdGFsQW5udWVsw4ljaMOpYW5jZXNcIiwgZW1iZWRfbW9uZXkgeClcbiAgICB8IE1lbnN1YWxpdGUgeCAtPiAoXCJNZW5zdWFsaXTDqVwiLCBlbWJlZF9tb25leSB4KVxuICAgIHwgTG95ZXIgeCAtPiAoXCJMb3llclwiLCBlbWJlZF9tb25leSB4KSlcblxuXG5tb2R1bGUgTW9kZU9jY3VwYXRpb25JbXBheWUgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgSW1wYXllTG95ZXIgb2YgdW5pdFxuICAgIHwgSW1wYXllUHJldCBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX21vZGVfb2NjdXBhdGlvbl9pbXBheWUgKHg6IE1vZGVPY2N1cGF0aW9uSW1wYXllLnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiTW9kZU9jY3VwYXRpb25JbXBhecOpXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEltcGF5ZUxveWVyIHggLT4gKFwiSW1wYXnDqUxveWVyXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEltcGF5ZVByZXQgeCAtPiAoXCJJbXBhecOpUHLDqnRcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50ID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IFBhc0VsaWdpYmxlIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICh4OiBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJUeXBlw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBQYXNFbGlnaWJsZSB4IC0+IChcIlBhc8OJbGlnaWJsZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lciA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBBY2NvcmQgb2YgZGF0ZVxuICAgIHwgUGFzZEFjY29yZCBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2FjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfZXRhdF9vdXRyZV9tZXJcbiAgKHg6IEFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiQWNjb3JkRmluYW5jZW1lbnRSZXByw6lzZW50YW50w4l0YXRPdXRyZU1lclwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBBY2NvcmQgeCAtPiAoXCJBY2NvcmRcIiwgZW1iZWRfZGF0ZSB4KVxuICAgIHwgUGFzZEFjY29yZCB4IC0+IChcIlBhc2RBY2NvcmRcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudCA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50IG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCAoeDogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCB4IC0+XG4gICAgICAoXCJBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBTaXR1YXRpb25GYW1pbGlhbGUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgQ2VsaWJhdGFpcmUgb2YgdW5pdFxuICAgIHwgTWFyaWVzIG9mIGRhdGVcbiAgICB8IFBhY3NlcyBvZiB1bml0XG4gICAgfCBDb25jdWJpbnMgb2YgdW5pdFxuICAgIHwgQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgb2YgdW5pdFxuICAgIHwgQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0IG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZSAoeDogU2l0dWF0aW9uRmFtaWxpYWxlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiU2l0dWF0aW9uRmFtaWxpYWxlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IENlbGliYXRhaXJlIHggLT4gKFwiQ8OpbGliYXRhaXJlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IE1hcmllcyB4IC0+IChcIk1hcmnDqXNcIiwgZW1iZWRfZGF0ZSB4KVxuICAgIHwgUGFjc2VzIHggLT4gKFwiUGFjc8Opc1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBDb25jdWJpbnMgeCAtPiAoXCJDb25jdWJpbnNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgeCAtPlxuICAgICAgKFwiQ8OpbGliYXRhaXJlU8OpcGFyw6lEZUZhaXRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0IHggLT5cbiAgICAgIChcIkNvbmN1YmluYWdlRG9udFPDqXBhcsOpRGVGYWl0XCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFByaXNlRW5DaGFyZ2UgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgRWZmZWN0aXZlRXRQZXJtYW5lbnRlIG9mIHVuaXRcbiAgICB8IFJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgb2YgdW5pdFxuICAgIHwgUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfcHJpc2VfZW5fY2hhcmdlICh4OiBQcmlzZUVuQ2hhcmdlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiUHJpc2VFbkNoYXJnZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBFZmZlY3RpdmVFdFBlcm1hbmVudGUgeCAtPiAoXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSB4IC0+XG4gICAgICAoXCJSw6lzaWRlbmNlQWx0ZXJuw6llQWxsb2NhdGFpcmVVbmlxdWVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlIHggLT5cbiAgICAgIChcIlLDqXNpZGVuY2VBbHRlcm7DqWVBbGxvY2F0aW9uc1BhcnRhZ8OpZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBUeXBlTG9nZW1lbnRGb3llciA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBMb2dlbWVudFBlcnNvbm5lc0FnZWVzT3VIYW5kaWNhcGVlcyBvZiB1bml0XG4gICAgfCBSZXNpZGVuY2VTb2NpYWxlIG9mIHVuaXRcbiAgICB8IEZveWVySmV1bmVzVHJ2YWlsbGV1cnNPdU1pZ3JhbnRzQ29udmVudGlvbm5lTDM1M18yQXZhbnQxOTk1IG9mIHVuaXRcbiAgICB8IEF1dHJlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfdHlwZV9sb2dlbWVudF9mb3llciAoeDogVHlwZUxvZ2VtZW50Rm95ZXIudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJUeXBlTG9nZW1lbnRGb3llclwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBMb2dlbWVudFBlcnNvbm5lc0FnZWVzT3VIYW5kaWNhcGVlcyB4IC0+XG4gICAgICAoXCJMb2dlbWVudFBlcnNvbm5lc8OCZ8OpZXNPdUhhbmRpY2Fww6llc1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBSZXNpZGVuY2VTb2NpYWxlIHggLT4gKFwiUsOpc2lkZW5jZVNvY2lhbGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRm95ZXJKZXVuZXNUcnZhaWxsZXVyc091TWlncmFudHNDb252ZW50aW9ubmVMMzUzXzJBdmFudDE5OTUgeCAtPlxuICAgICAgKFwiRm95ZXJKZXVuZXNUcnZhaWxsZXVyc091TWlncmFudHNDb252ZW50aW9ubsOpTDM1M18yQXZhbnQxOTk1XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEF1dHJlIHggLT4gKFwiQXV0cmVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTIG9mIHVuaXRcbiAgICB8IEV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgb2YgdW5pdFxuICAgIHwgUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTYgb2YgdW5pdFxuICAgIHwgQXV0cmVzUGVyc29ubmVzIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJcbiAgKHg6IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkNhdMOpZ29yaWXDiXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTIHggLT5cbiAgICAgIChcIsOJdHVkaWFudExvZ8OpRW5DaGFtYnJlQ1JPVVNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSB4IC0+XG4gICAgICAoXCLDiXR1ZGlhbnRMb2fDqUVuQ2hhbWJyZUNST1VTUsOpaGFiaWxpdMOpZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBQZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiB4IC0+XG4gICAgICAoXCJQZXJzb25uZXPDgmfDqWVzU2Vsb24zRGVEODQyXzE2XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEF1dHJlc1BlcnNvbm5lcyB4IC0+IChcIkF1dHJlc1BlcnNvbm5lc1wiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgUGVyc29ubmVTZXVsZSBvZiB1bml0XG4gICAgfCBDb3VwbGUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCAoeDogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IFBlcnNvbm5lU2V1bGUgeCAtPiAoXCJQZXJzb25uZVNldWxlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IENvdXBsZSB4IC0+IChcIkNvdXBsZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBDb2xsZWN0aXZpdGUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgR3VhZGVsb3VwZSBvZiB1bml0XG4gICAgfCBHdXlhbmUgb2YgdW5pdFxuICAgIHwgTWFydGluaXF1ZSBvZiB1bml0XG4gICAgfCBMYVJldW5pb24gb2YgdW5pdFxuICAgIHwgU2FpbnRCYXJ0aGVsZW15IG9mIHVuaXRcbiAgICB8IFNhaW50TWFydGluIG9mIHVuaXRcbiAgICB8IE1ldHJvcG9sZSBvZiB1bml0XG4gICAgfCBTYWludFBpZXJyZUV0TWlxdWVsb24gb2YgdW5pdFxuICAgIHwgTWF5b3R0ZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2NvbGxlY3Rpdml0ZSAoeDogQ29sbGVjdGl2aXRlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiQ29sbGVjdGl2aXTDqVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBHdWFkZWxvdXBlIHggLT4gKFwiR3VhZGVsb3VwZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBHdXlhbmUgeCAtPiAoXCJHdXlhbmVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgTWFydGluaXF1ZSB4IC0+IChcIk1hcnRpbmlxdWVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgTGFSZXVuaW9uIHggLT4gKFwiTGFSw6l1bmlvblwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBTYWludEJhcnRoZWxlbXkgeCAtPiAoXCJTYWludEJhcnRow6lsZW15XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFNhaW50TWFydGluIHggLT4gKFwiU2FpbnRNYXJ0aW5cIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgTWV0cm9wb2xlIHggLT4gKFwiTcOpdHJvcG9sZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBTYWludFBpZXJyZUV0TWlxdWVsb24geCAtPiAoXCJTYWludFBpZXJyZUV0TWlxdWVsb25cIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgTWF5b3R0ZSB4IC0+IChcIk1heW90dGVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgUHJpc2VFbkNoYXJnZUVuZmFudCA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIG9mIHVuaXRcbiAgICB8IEdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBvZiB1bml0XG4gICAgfCBFZmZlY3RpdmVFdFBlcm1hbmVudGUgb2YgdW5pdFxuICAgIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgb2YgdW5pdFxuICAgIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3ByaXNlX2VuX2NoYXJnZV9lbmZhbnQgKHg6IFByaXNlRW5DaGFyZ2VFbmZhbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJQcmlzZUVuQ2hhcmdlRW5mYW50XCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgeCAtPlxuICAgICAgKFwiR2FyZGVBbHRlcm7DqWVQYXJ0YWdlQWxsb2NhdGlvbnNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIHggLT5cbiAgICAgIChcIkdhcmRlQWx0ZXJuw6llQWxsb2NhdGFpcmVVbmlxdWVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRWZmZWN0aXZlRXRQZXJtYW5lbnRlIHggLT4gKFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIHggLT5cbiAgICAgIChcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzw6llw4BMYUZhbWlsbGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCB4IC0+XG4gICAgICAoXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc8OpZUF1eFNlcnZpY2VzU29jaWF1eFwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgQXZhbnQgb2YgdW5pdFxuICAgIHwgUGVuZGFudCBvZiB1bml0XG4gICAgfCBBcHJlcyBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlICh4OiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmVcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQXZhbnQgeCAtPiAoXCJBdmFudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBQZW5kYW50IHggLT4gKFwiUGVuZGFudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBcHJlcyB4IC0+IChcIkFwcsOoc1wiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IFByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnQgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIG9mIHVuaXRcbiAgICB8IENvbXBsZW1lbnRGYW1pbGlhbCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnQgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZSBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmUgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9lbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgKHg6IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCLDiWzDqW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudCB4IC0+XG4gICAgICAoXCJQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25zRmFtaWxpYWxlcyB4IC0+IChcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBDb21wbGVtZW50RmFtaWxpYWwgeCAtPiAoXCJDb21wbMOpbWVudEZhbWlsaWFsXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudCB4IC0+IChcIkFsbG9jYXRpb25Mb2dlbWVudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb27DiWR1Y2F0aW9uRW5mYW50SGFuZGljYXDDqVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uUmVudHLDqWVTY29sYWlyZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uSm91cm5hbGnDqHJlUHJlc2VuY2VQYXJlbnRhbGVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgQ29udmVudGlvbkJhaWxsZXVyU29jaWFsID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBjb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUk6IGJvb2w7XG4gICAgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfcGVyY3VlOiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCAoeDogQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDb252ZW50aW9uQmFpbGxldXJTb2NpYWxcIl0sXG4gIFsoXCJjb252ZW50aW9ubsOpX2xpdnJlX0lJSV90aXRyZV9WX2NoYXBfSUlJXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNvbnZlbnRpb25CYWlsbGV1clNvY2lhbC5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUkpO1xuICAgIChcInLDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lfcGVyw6d1ZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX3BlcmN1ZSldKVxuXG5cbm1vZHVsZSBDb252ZW50aW9uQU5IQSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7Y29udmVudGlvbm5lX2xpdnJlX0lJSV90aXRyZV9JSV9jaGFwX0lfc2VjXzM6IGJvb2x9XG5lbmRcbmxldCBlbWJlZF9jb252ZW50aW9uX2Ffbl9oX2EgKHg6IENvbnZlbnRpb25BTkhBLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDb252ZW50aW9uQU5IQVwiXSxcbiAgWyhcImNvbnZlbnRpb25uw6lfbGl2cmVfSUlJX3RpdHJlX0lJX2NoYXBfSV9zZWNfM1wiLCBlbWJlZF9ib29sXG4gICAgeC5Db252ZW50aW9uQU5IQS5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX0lJX2NoYXBfSV9zZWNfMyldKVxuXG5cbm1vZHVsZSBQZXJzb25uZVNvdXNMb2NhdGlvbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9uYWlzc2FuY2VfcGVyc29ubmVfc291c19sb2NhdGlvbjogZGF0ZTtcbiAgICBjb25mb3JtZV9hcnRpY2xlX2w0NDJfMTogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9wZXJzb25uZV9zb3VzX2xvY2F0aW9uICh4OiBQZXJzb25uZVNvdXNMb2NhdGlvbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiUGVyc29ubmVTb3VzTG9jYXRpb25cIl0sXG4gIFsoXCJkYXRlX25haXNzYW5jZV9wZXJzb25uZV9zb3VzX2xvY2F0aW9uXCIsIGVtYmVkX2RhdGVcbiAgICB4LlBlcnNvbm5lU291c0xvY2F0aW9uLmRhdGVfbmFpc3NhbmNlX3BlcnNvbm5lX3NvdXNfbG9jYXRpb24pO1xuICAgIChcImNvbmZvcm1lX2FydGljbGVfbDQ0Ml8xXCIsIGVtYmVkX2Jvb2xcbiAgICB4LlBlcnNvbm5lU291c0xvY2F0aW9uLmNvbmZvcm1lX2FydGljbGVfbDQ0Ml8xKV0pXG5cblxubW9kdWxlIFBhdHJpbW9pbmUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHByb2R1aXNhbnRfcmV2ZW51X3BlcmlvZGVfcjgyMl8zXzNfcjgyMl80OiBtb25leTtcbiAgICBuZV9wcm9kdWlzYW50X3Bhc19yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQ6IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX3BhdHJpbW9pbmUgKHg6IFBhdHJpbW9pbmUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlBhdHJpbW9pbmVcIl0sXG4gIFsoXCJwcm9kdWlzYW50X3JldmVudV9ww6lyaW9kZV9yODIyXzNfM19yODIyXzRcIiwgZW1iZWRfbW9uZXlcbiAgICB4LlBhdHJpbW9pbmUucHJvZHVpc2FudF9yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQpO1xuICAgIChcIm5lX3Byb2R1aXNhbnRfcGFzX3JldmVudV9ww6lyaW9kZV9yODIyXzNfM19yODIyXzRcIiwgZW1iZWRfbW9uZXlcbiAgICB4LlBhdHJpbW9pbmUubmVfcHJvZHVpc2FudF9wYXNfcmV2ZW51X3BlcmlvZGVfcjgyMl8zXzNfcjgyMl80KV0pXG5cblxubW9kdWxlIENvbmRpdGlvbnNFdHJhbmdlcnMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3NlY3VyaXRlX3NvY2lhbGU6IGJvb2w7XG4gICAgc2F0aXNmYWl0X2FydF80X29yZG9ubmFuY2VfMjAwMl9tYXlvdHRlOiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2NvbmRpdGlvbnNfZXRyYW5nZXJzICh4OiBDb25kaXRpb25zRXRyYW5nZXJzLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDb25kaXRpb25zw4l0cmFuZ2Vyc1wiXSxcbiAgWyhcInNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3PDqWN1cml0w6lfc29jaWFsZVwiLCBlbWJlZF9ib29sXG4gICAgeC5Db25kaXRpb25zRXRyYW5nZXJzLnNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3NlY3VyaXRlX3NvY2lhbGUpO1xuICAgIChcInNhdGlzZmFpdF9hcnRfNF9vcmRvbm5hbmNlXzIwMDJfbWF5b3R0ZVwiLCBlbWJlZF9ib29sXG4gICAgeC5Db25kaXRpb25zRXRyYW5nZXJzLnNhdGlzZmFpdF9hcnRfNF9vcmRvbm5hbmNlXzIwMDJfbWF5b3R0ZSldKVxuXG5cbm1vZHVsZSBQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llciA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZHVyZWVfcmVzaWRlbmNlX2R1cmFudF9wZXJpb2RlX3JfODIyXzNfMV9zdXBlcmlldXJlX2FfNl9tb2lzOiBib29sO1xuICAgIHJlc3NvdXJjZXM6IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX3BlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llciAoeDogUGVyc29ubmVWaXZhbnRIYWJpdHVlbGxlbWVudEF1Rm95ZXIudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyXCJdLFxuICBbKFwiZHVyw6llX3LDqXNpZGVuY2VfZHVyYW50X3DDqXJpb2RlX3JfODIyXzNfMV9zdXDDqXJpZXVyZV/DoF82X21vaXNcIixcbiAgICBlbWJlZF9ib29sXG4gICAgeC5QZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci5kdXJlZV9yZXNpZGVuY2VfZHVyYW50X3BlcmlvZGVfcl84MjJfM18xX3N1cGVyaWV1cmVfYV82X21vaXMpO1xuICAgIChcInJlc3NvdXJjZXNcIiwgZW1iZWRfbW9uZXlcbiAgICB4LlBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLnJlc3NvdXJjZXMpXSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX2NvdXJhbnRlOiBkYXRlO1xuICAgIGVsaWdpYmlsaXRlOiBib29sO1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZTogaW50ZWdlcjtcbiAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlOiBkZWNpbWFsIGFycmF5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCAoeDogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIl0sXG4gIFsoXCJkYXRlX2NvdXJhbnRlXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5kYXRlX2NvdXJhbnRlKTtcbiAgICAoXCLDqWxpZ2liaWxpdMOpXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5lbGlnaWJpbGl0ZSk7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlKTtcbiAgICAoXCJjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybsOpZV9wcmlzX2VuX2NvbXB0ZVwiLFxuICAgIGVtYmVkX2FycmF5IChlbWJlZF9kZWNpbWFsKVxuICAgIHguRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUpXSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHttb250YW50X3ByaW1lX2RlbWVuYWdlbWVudDogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9lbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQgKHg6IEVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiXSxcbiAgWyhcIm1vbnRhbnRfcHJpbWVfZMOpbcOpbmFnZW1lbnRcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudC5tb250YW50X3ByaW1lX2RlbWVuYWdlbWVudCldKVxuXG5cbm1vZHVsZSBSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtyZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGU6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCAoeDogUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSxcbiAgWyhcInJlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZVwiLCBlbWJlZF9tb25leVxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5yZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGUpXSlcblxuXG5tb2R1bGUgQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHttb250YW50OiBtb25leSAtPiBtb25leX1cbmVuZFxubGV0IGVtYmVkX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgKHg6IENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdLFxuICBbKFwibW9udGFudFwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50KV0pXG5cblxubW9kdWxlIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNjogbW9uZXk7XG4gICAgcGxhZm9uZF9sb3llcl9kODIzXzE2XzI6IG1vbmV5O1xuICAgIHBhcnRpY2lwYXRpb25fbWluaW1hbGU6IG1vbmV5O1xuICAgIHRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlOiBkZWNpbWFsO1xuICAgIHBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGU6IG1vbmV5O1xuICAgIGFpZGVfZmluYWxlX2Zvcm11bGU6IG1vbmV5O1xuICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGU6IG1vbmV5IC0+IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZiAoeDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiXSxcbiAgWyhcIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5tb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNik7XG4gICAgKFwicGxhZm9uZF9sb3llcl9kODIzXzE2XzJcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBsYWZvbmRfbG95ZXJfZDgyM18xNl8yKTtcbiAgICAoXCJwYXJ0aWNpcGF0aW9uX21pbmltYWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wYXJ0aWNpcGF0aW9uX21pbmltYWxlKTtcbiAgICAoXCJ0YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZVwiLCBlbWJlZF9kZWNpbWFsXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZSk7XG4gICAgKFwicGFydGljaXBhdGlvbl9wZXJzb25uZWxsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9wZXJzb25uZWxsZSk7XG4gICAgKFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlID0gc3RydWN0XG4gIHR5cGUgdCA9IHttb250YW50OiBtb25leX1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSAoeDogQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCJdLFxuICBbKFwibW9udGFudFwiLCBlbWJlZF9tb25leSB4LkNhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZS5tb250YW50KV0pXG5cblxubW9kdWxlIENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyID0gc3RydWN0XG4gIHR5cGUgdCA9IHtuX25vbWJyZV9wYXJ0c19kODMyXzI1OiBkZWNpbWFsfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyICh4OiBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIl0sXG4gIFsoXCJuX25vbWJyZV9wYXJ0c19kODMyXzI1XCIsIGVtYmVkX2RlY2ltYWxcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1OiBtb25leTtcbiAgICBjb2VmZmljaWVudF9yX2Q4MzJfMjU6IG1vbmV5O1xuICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjU6IGRlY2ltYWw7XG4gICAgZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGU6IG1vbmV5O1xuICAgIHBsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGU6IG1vbmV5O1xuICAgIGVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlOiBtb25leTtcbiAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNTogZGVjaW1hbDtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyICh4OiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIl0sXG4gIFsoXCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1XCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNSk7XG4gICAgKFwiY29lZmZpY2llbnRfcl9kODMyXzI1XCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcl9kODMyXzI1KTtcbiAgICAoXCJuX25vbWJyZV9wYXJ0c19kODMyXzI1XCIsIGVtYmVkX2RlY2ltYWxcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1KTtcbiAgICAoXCLDqXF1aXZhbGVuY2VfbG95ZXJfw6lsaWdpYmxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUpO1xuICAgIChcInBsYWZvbmRfw6lxdWl2YWxlbmNlX2xveWVyX8OpbGlnaWJsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnBsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUpO1xuICAgIChcIsOpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlKTtcbiAgICAoXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNVwiLCBlbWJlZF9kZWNpbWFsXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjUpO1xuICAgIChcImFpZGVfZmluYWxlX2Zvcm11bGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAoXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge25fbm9tYnJlX3BhcnRzX2Q4MzJfMTE6IGRlY2ltYWx9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUgKHg6IENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByacOpdMOpXCJdLFxuICBbKFwibl9ub21icmVfcGFydHNfZDgzMl8xMVwiLCBlbWJlZF9kZWNpbWFsXG4gICAgeC5DYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZS5uX25vbWJyZV9wYXJ0c19kODMyXzExKV0pXG5cblxubW9kdWxlIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1lbnN1YWxpdGVfZWxpZ2libGU6IG1vbmV5O1xuICAgIG1lbnN1YWxpdGVfbWluaW1hbGU6IG1vbmV5O1xuICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwOiBkZWNpbWFsO1xuICAgIGFpZGVfZmluYWxlX2Zvcm11bGU6IG1vbmV5O1xuICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGU6IG1vbmV5IC0+IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSAoeDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiXSxcbiAgWyhcIm1lbnN1YWxpdMOpX8OpbGlnaWJsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX2VsaWdpYmxlKTtcbiAgICAoXCJtZW5zdWFsaXTDqV9taW5pbWFsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX21pbmltYWxlKTtcbiAgICAoXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMFwiLCBlbWJlZF9kZWNpbWFsXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwKTtcbiAgICAoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgIChcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXSlcblxuXG5tb2R1bGUgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF90cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUgKHg6IFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiVHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlXCJdLFxuICBbKFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiLCBlbWJlZF9tb25leVxuICAgIHguVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgIChcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5UcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSldKVxuXG5cbm1vZHVsZSBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50ICh4OiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiXSxcbiAgWyhcImFpZGVfZmluYWxlX2Zvcm11bGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSldKVxuXG5cbm1vZHVsZSBJbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBhbmNpZW5fbG95ZXJfcHJpbmNpcGFsOiBtb25leTtcbiAgICBhbmNpZW5uZV9hbGxvY2F0aW9uX2xvZ2VtZW50OiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9pbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCAoeDogSW5mb3NDaGFuZ2VtZW50TG9nZW1lbnREODQyNC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiSW5mb3NDaGFuZ2VtZW50TG9nZW1lbnREODQyXzRcIl0sXG4gIFsoXCJhbmNpZW5fbG95ZXJfcHJpbmNpcGFsXCIsIGVtYmVkX21vbmV5XG4gICAgeC5JbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LmFuY2llbl9sb3llcl9wcmluY2lwYWwpO1xuICAgIChcImFuY2llbm5lX2FsbG9jYXRpb25fbG9nZW1lbnRcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuYW5jaWVubmVfYWxsb2NhdGlvbl9sb2dlbWVudCldKVxuXG5cbm1vZHVsZSBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmICh4OiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCJdLFxuICBbKFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAoXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbWVuc3VhbGl0ZV9lbGlnaWJsZTogbW9uZXk7XG4gICAgbWVuc3VhbGl0ZV9taW5pbWFsZTogbW9uZXk7XG4gICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlOiBkZWNpbWFsO1xuICAgIGFpZGVfZmluYWxlX2Zvcm11bGU6IG1vbmV5O1xuICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGU6IG1vbmV5IC0+IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUgKHg6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIl0sXG4gIFsoXCJtZW5zdWFsaXTDqV/DqWxpZ2libGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX2VsaWdpYmxlKTtcbiAgICAoXCJtZW5zdWFsaXTDqV9taW5pbWFsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGUpO1xuICAgIChcImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZVwiLCBlbWJlZF9kZWNpbWFsXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlKTtcbiAgICAoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2U6IGRlY2ltYWw7XG4gICAgZXF1aXZhbGVuY2VfbG95ZXI6IG1vbmV5O1xuICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlczogbW9uZXk7XG4gICAgbG95ZXJfbWluaW1hbDogbW9uZXk7XG4gICAgYWlkZV9maW5hbGVfZm9ybXVsZTogbW9uZXk7XG4gICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZTogbW9uZXkgLT4gbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgKHg6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiXSxcbiAgWyhcImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZVwiLCBlbWJlZF9kZWNpbWFsXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2UpO1xuICAgIChcIsOpcXVpdmFsZW5jZV9sb3llclwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXIpO1xuICAgIChcIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc1wiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzKTtcbiAgICAoXCJsb3llcl9taW5pbWFsXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5sb3llcl9taW5pbWFsKTtcbiAgICAoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAoXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSldKVxuXG5cbm1vZHVsZSBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGFpZGVfZmluYWxlX2Zvcm11bGU6IG1vbmV5O1xuICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGU6IG1vbmV5IC0+IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50ICh4OiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiXSxcbiAgWyhcImFpZGVfZmluYWxlX2Zvcm11bGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAoXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXSlcblxuXG5tb2R1bGUgT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2FnZV9vdXZlcnR1cmVfZHJvaXQ6IGR1cmF0aW9ufVxuZW5kXG5sZXQgZW1iZWRfb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSAoeDogT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIk91dmVydHVyZURyb2l0c1JldHJhaXRlXCJdLFxuICBbKFwiw6JnZV9vdXZlcnR1cmVfZHJvaXRcIiwgZW1iZWRfZHVyYXRpb25cbiAgICB4Lk91dmVydHVyZURyb2l0c1JldHJhaXRlLmFnZV9vdXZlcnR1cmVfZHJvaXQpXSlcblxuXG5tb2R1bGUgSW1wYXllRGVwZW5zZUxvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHttb250YW50X2ltcGF5ZTogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9pbXBheWVfZGVwZW5zZV9sb2dlbWVudCAoeDogSW1wYXllRGVwZW5zZUxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJJbXBhecOpRMOpcGVuc2VMb2dlbWVudFwiXSxcbiAgWyhcIm1vbnRhbnRfaW1wYXnDqVwiLCBlbWJlZF9tb25leSB4LkltcGF5ZURlcGVuc2VMb2dlbWVudC5tb250YW50X2ltcGF5ZSldKVxuXG5cbm1vZHVsZSBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBlbGlnaWJpbGl0ZTogYm9vbDtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leTtcbiAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlOiBkZWNpbWFsIGFycmF5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQgKHg6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIl0sXG4gIFsoXCLDqWxpZ2liaWxpdMOpXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuZWxpZ2liaWxpdGUpO1xuICAgIChcImFpZGVfZmluYWxlX2Zvcm11bGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSk7XG4gICAgKFwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVfcHJpc19lbl9jb21wdGVcIixcbiAgICBlbWJlZF9hcnJheSAoZW1iZWRfZGVjaW1hbClcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSldKVxuXG5cbm1vZHVsZSBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZWxpZ2liaWxpdGU6IGJvb2w7IGFpZGVfZmluYWxlOiBtb25leX1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUgKHg6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIl0sXG4gIFsoXCLDqWxpZ2liaWxpdMOpXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlLmVsaWdpYmlsaXRlKTtcbiAgICAoXCJhaWRlX2ZpbmFsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUuYWlkZV9maW5hbGUpXSlcblxuXG5tb2R1bGUgQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcyA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bW9udGFudDogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzICh4OiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBbKFwibW9udGFudFwiLCBlbWJlZF9tb25leSB4LkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMubW9udGFudCldKVxuXG5cbm1vZHVsZSBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBID0gc3RydWN0XG4gIHR5cGUgdCA9IHtlc3RfaW5mZXJpZXVyX291X2VnYWw6IGJvb2x9XG5lbmRcbmxldCBlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgKHg6IFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlbDqXJpZmljYXRpb27DgmdlSW5mw6lyaWV1ck91w4lnYWzDgFwiXSxcbiAgWyhcImVzdF9pbmbDqXJpZXVyX291X8OpZ2FsXCIsIGVtYmVkX2Jvb2xcbiAgICB4LlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEuZXN0X2luZmVyaWV1cl9vdV9lZ2FsKV0pXG5cblxubW9kdWxlIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2VzdF9zdXBlcmlldXI6IGJvb2x9XG5lbmRcbmxldCBlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hICh4OiBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiXSxcbiAgWyhcImVzdF9zdXDDqXJpZXVyXCIsIGVtYmVkX2Jvb2wgeC5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIpXSlcblxuXG5tb2R1bGUgU21pYyA9IHN0cnVjdFxuICB0eXBlIHQgPSB7YnJ1dF9ob3JhaXJlOiBtb25leX1cbmVuZFxubGV0IGVtYmVkX3NtaWMgKHg6IFNtaWMudCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIlNtaWNcIl0sXG4gIFsoXCJicnV0X2hvcmFpcmVcIiwgZW1iZWRfbW9uZXkgeC5TbWljLmJydXRfaG9yYWlyZSldKVxuXG5cbm1vZHVsZSBOZXVmT3VBbmNpZW4gPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgTmV1ZiBvZiB1bml0XG4gICAgfCBBbmNpZW4gb2YgQW1lbGlvcmVQYXJPY2N1cGFudC50XG4gIGVuZFxubGV0IGVtYmVkX25ldWZfb3VfYW5jaWVuICh4OiBOZXVmT3VBbmNpZW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJOZXVmT3VBbmNpZW5cIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgTmV1ZiB4IC0+IChcIk5ldWZcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQW5jaWVuIHggLT4gKFwiQW5jaWVuXCIsIGVtYmVkX2FtZWxpb3JlX3Bhcl9vY2N1cGFudCB4KSlcblxuXG5tb2R1bGUgVHJhbmNoZVJldmVudSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7aGF1dDogTGltaXRlVHJhbmNoZS50OyBiYXM6IG1vbmV5OyB0YXV4OiBkZWNpbWFsfVxuZW5kXG5sZXQgZW1iZWRfdHJhbmNoZV9yZXZlbnUgKHg6IFRyYW5jaGVSZXZlbnUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlRyYW5jaGVSZXZlbnVcIl0sXG4gIFsoXCJoYXV0XCIsIGVtYmVkX2xpbWl0ZV90cmFuY2hlIHguVHJhbmNoZVJldmVudS5oYXV0KTtcbiAgICAoXCJiYXNcIiwgZW1iZWRfbW9uZXkgeC5UcmFuY2hlUmV2ZW51LmJhcyk7XG4gICAgKFwidGF1eFwiLCBlbWJlZF9kZWNpbWFsIHguVHJhbmNoZVJldmVudS50YXV4KV0pXG5cblxubW9kdWxlIFRyYW5jaGVSZXZlbnVEZWNpbWFsID0gc3RydWN0XG4gIHR5cGUgdCA9IHtoYXV0OiBMaW1pdGVUcmFuY2hlRGVjaW1hbC50OyBiYXM6IGRlY2ltYWw7IHRhdXg6IGRlY2ltYWx9XG5lbmRcbmxldCBlbWJlZF90cmFuY2hlX3JldmVudV9kZWNpbWFsICh4OiBUcmFuY2hlUmV2ZW51RGVjaW1hbC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiVHJhbmNoZVJldmVudUTDqWNpbWFsXCJdLFxuICBbKFwiaGF1dFwiLCBlbWJlZF9saW1pdGVfdHJhbmNoZV9kZWNpbWFsIHguVHJhbmNoZVJldmVudURlY2ltYWwuaGF1dCk7XG4gICAgKFwiYmFzXCIsIGVtYmVkX2RlY2ltYWwgeC5UcmFuY2hlUmV2ZW51RGVjaW1hbC5iYXMpO1xuICAgIChcInRhdXhcIiwgZW1iZWRfZGVjaW1hbCB4LlRyYW5jaGVSZXZlbnVEZWNpbWFsLnRhdXgpXSlcblxuXG5tb2R1bGUgQXV0cmVQZXJzb25uZUFDaGFyZ2UgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfbmFpc3NhbmNlOiBkYXRlO1xuICAgIHJlc3NvdXJjZXM6IG1vbmV5O1xuICAgIGFzY2VuZGFudF9kZXNjZW5kYW50X2NvbGxhdGVyYWxfZGV1eGllbWVfdHJvaXNpZW1lX2RlZ3JlOiBib29sO1xuICAgIHBhcmVudGU6IFBhcmVudGUudDtcbiAgICBpbmNhcGFjaXRlXzgwX3BvdXJjZW50X291X3Jlc3RyaWN0aW9uX2VtcGxvaTogYm9vbDtcbiAgICBiZW5lZmljaWFpcmVfbDE2MV8xOV9sMzUxXzhfbDY0M18zX3NlY3U6IGJvb2w7XG4gICAgdGl0dWxhaXJlX2FsbG9jYXRpb25fcGVyc29ubmVfYWdlZTogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9hdXRyZV9wZXJzb25uZV9hX2NoYXJnZSAoeDogQXV0cmVQZXJzb25uZUFDaGFyZ2UudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkF1dHJlUGVyc29ubmXDgENoYXJnZVwiXSxcbiAgWyhcImRhdGVfbmFpc3NhbmNlXCIsIGVtYmVkX2RhdGVcbiAgICB4LkF1dHJlUGVyc29ubmVBQ2hhcmdlLmRhdGVfbmFpc3NhbmNlKTtcbiAgICAoXCJyZXNzb3VyY2VzXCIsIGVtYmVkX21vbmV5XG4gICAgeC5BdXRyZVBlcnNvbm5lQUNoYXJnZS5yZXNzb3VyY2VzKTtcbiAgICAoXCJhc2NlbmRhbnRfZGVzY2VuZGFudF9jb2xsYXTDqXJhbF9kZXV4acOobWVfdHJvaXNpw6htZV9kZWdyw6lcIixcbiAgICBlbWJlZF9ib29sXG4gICAgeC5BdXRyZVBlcnNvbm5lQUNoYXJnZS5hc2NlbmRhbnRfZGVzY2VuZGFudF9jb2xsYXRlcmFsX2RldXhpZW1lX3Ryb2lzaWVtZV9kZWdyZSk7XG4gICAgKFwicGFyZW50w6lcIiwgZW1iZWRfcGFyZW50ZVxuICAgIHguQXV0cmVQZXJzb25uZUFDaGFyZ2UucGFyZW50ZSk7XG4gICAgKFwiaW5jYXBhY2l0w6lfODBfcG91cmNlbnRfb3VfcmVzdHJpY3Rpb25fZW1wbG9pXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkF1dHJlUGVyc29ubmVBQ2hhcmdlLmluY2FwYWNpdGVfODBfcG91cmNlbnRfb3VfcmVzdHJpY3Rpb25fZW1wbG9pKTtcbiAgICAoXCJiw6luw6lmaWNpYWlyZV9sMTYxXzE5X2wzNTFfOF9sNjQzXzNfc8OpY3VcIiwgZW1iZWRfYm9vbFxuICAgIHguQXV0cmVQZXJzb25uZUFDaGFyZ2UuYmVuZWZpY2lhaXJlX2wxNjFfMTlfbDM1MV84X2w2NDNfM19zZWN1KTtcbiAgICAoXCJ0aXR1bGFpcmVfYWxsb2NhdGlvbl9wZXJzb25uZV/DomfDqWVcIiwgZW1iZWRfYm9vbFxuICAgIHguQXV0cmVQZXJzb25uZUFDaGFyZ2UudGl0dWxhaXJlX2FsbG9jYXRpb25fcGVyc29ubmVfYWdlZSldKVxuXG5cbm1vZHVsZSBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudCA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBNb2luc0RlVHJvaXNFbmZhbnRzIG9mIHVuaXRcbiAgICB8IFBsdXNEZVRyb2lzRW5mYW50cyBvZiBEYXRlRGVOYWlzc2FuY2VPdU1vaXNEZUdyb3NzZXNzZS50XG4gIGVuZFxubGV0IGVtYmVkX2RhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50XG4gICh4OiBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkRhdGVOYWlzc2FuY2VUcm9pc2nDqG1lT3VEZXJuaWVyUGx1c0VuZmFudFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBNb2luc0RlVHJvaXNFbmZhbnRzIHggLT4gKFwiTW9pbnNEZVRyb2lzRW5mYW50c1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBQbHVzRGVUcm9pc0VuZmFudHMgeCAtPlxuICAgICAgKFwiUGx1c0RlVHJvaXNFbmZhbnRzXCIsIGVtYmVkX2RhdGVfZGVfbmFpc3NhbmNlX291X21vaXNfZGVfZ3Jvc3Nlc3NlIHgpKVxuXG5cbm1vZHVsZSBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZWxpZ2liaWxpdGU6IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50O1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZTogaW50ZWdlcjtcbiAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlOiBkZWNpbWFsIGFycmF5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgKHg6IEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCJdLFxuICBbKFwiw6lsaWdpYmlsaXTDqVwiLCBlbWJlZF90eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRcbiAgICB4LkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LmVsaWdpYmlsaXRlKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSk7XG4gICAgKFwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVfcHJpc19lbl9jb21wdGVcIixcbiAgICBlbWJlZF9hcnJheSAoZW1iZWRfZGVjaW1hbClcbiAgICB4LkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUpXSlcblxuXG5tb2R1bGUgUHJldCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgdHlwZV9wcmV0OiBUeXBlUHJldC50O1xuICAgIGRhdGVfc2lnbmF0dXJlOiBkYXRlO1xuICAgIHRpdHVsYWlyZV9wcmV0OiBUaXR1bGFpcmVQcmV0LnQ7XG4gICAgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9FdGF0X291dHJlX21lcjpcbiAgICAgIEFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyLnRcbiAgfVxuZW5kXG5sZXQgZW1iZWRfcHJldCAoeDogUHJldC50KSA6IHJ1bnRpbWVfdmFsdWUgPSBTdHJ1Y3QoW1wiUHLDqnRcIl0sXG4gIFsoXCJ0eXBlX3Byw6p0XCIsIGVtYmVkX3R5cGVfcHJldCB4LlByZXQudHlwZV9wcmV0KTtcbiAgICAoXCJkYXRlX3NpZ25hdHVyZVwiLCBlbWJlZF9kYXRlIHguUHJldC5kYXRlX3NpZ25hdHVyZSk7XG4gICAgKFwidGl0dWxhaXJlX3Byw6p0XCIsIGVtYmVkX3RpdHVsYWlyZV9wcmV0XG4gICAgeC5QcmV0LnRpdHVsYWlyZV9wcmV0KTtcbiAgICAoXCJhY2NvcmRfZmluYW5jZW1lbnRfcmVwcsOpc2VudGFudF/DiXRhdF9vdXRyZV9tZXJcIixcbiAgICBlbWJlZF9hY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyXG4gICAgeC5QcmV0LmFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfRXRhdF9vdXRyZV9tZXIpXSlcblxuXG5tb2R1bGUgTG9nZW1lbnRGb3llciA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgdHlwZV91c2VyOiBUeXBlTG9nZW1lbnRGb3llci50O1xuICAgIHJlbXBsaXRfY29uZGl0aW9uc19yODMyXzIxOiBib29sO1xuICAgIGNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSTogYm9vbDtcbiAgICBjb252ZW50aW9ubmVfc2Vsb25fcmVnbGVzX2Ryb206IGJvb2w7XG4gICAgZGF0ZV9jb252ZW50aW9ubmVtZW50OiBkYXRlO1xuICAgIGNvbnN0cnVpdF9hcHBsaWNhdGlvbl9sb2lfMTk1N18xMl9JSUk6IGJvb2w7XG4gICAgcmVkZXZhbmNlOiBtb25leTtcbiAgICBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNjpcbiAgICAgIENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50O1xuICAgIGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlczogYm9vbDtcbiAgICBsb2dlbWVudF9tZXVibGVfZDg0Ml8yOiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2xvZ2VtZW50X2ZveWVyICh4OiBMb2dlbWVudEZveWVyLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJMb2dlbWVudEZveWVyXCJdLFxuICBbKFwidHlwZVwiLCBlbWJlZF90eXBlX2xvZ2VtZW50X2ZveWVyXG4gICAgeC5Mb2dlbWVudEZveWVyLnR5cGVfdXNlcik7XG4gICAgKFwicmVtcGxpdF9jb25kaXRpb25zX3I4MzJfMjFcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnRGb3llci5yZW1wbGl0X2NvbmRpdGlvbnNfcjgzMl8yMSk7XG4gICAgKFwiY29udmVudGlvbm7DqV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSVwiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2dlbWVudEZveWVyLmNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSSk7XG4gICAgKFwiY29udmVudGlvbm7DqV9zZWxvbl9yw6hnbGVzX2Ryb21cIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnRGb3llci5jb252ZW50aW9ubmVfc2Vsb25fcmVnbGVzX2Ryb20pO1xuICAgIChcImRhdGVfY29udmVudGlvbm5lbWVudFwiLCBlbWJlZF9kYXRlXG4gICAgeC5Mb2dlbWVudEZveWVyLmRhdGVfY29udmVudGlvbm5lbWVudCk7XG4gICAgKFwiY29uc3RydWl0X2FwcGxpY2F0aW9uX2xvaV8xOTU3XzEyX0lJSVwiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2dlbWVudEZveWVyLmNvbnN0cnVpdF9hcHBsaWNhdGlvbl9sb2lfMTk1N18xMl9JSUkpO1xuICAgIChcInJlZGV2YW5jZVwiLCBlbWJlZF9tb25leVxuICAgIHguTG9nZW1lbnRGb3llci5yZWRldmFuY2UpO1xuICAgIChcImNhdMOpZ29yaWVfw6lxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZcIixcbiAgICBlbWJlZF9jYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llclxuICAgIHguTG9nZW1lbnRGb3llci5jYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNik7XG4gICAgKFwiYsOpbsOpZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2Fww6lzXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkxvZ2VtZW50Rm95ZXIuYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzKTtcbiAgICAoXCJsb2dlbWVudF9tZXVibMOpX2Q4NDJfMlwiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2dlbWVudEZveWVyLmxvZ2VtZW50X21ldWJsZV9kODQyXzIpXSlcblxuXG5tb2R1bGUgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBpZGVudGlmaWFudDogaW50ZWdlcjtcbiAgICBvYmxpZ2F0aW9uX3Njb2xhaXJlOiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUudDtcbiAgICByZW11bmVyYXRpb25fbWVuc3VlbGxlOiBtb25leTtcbiAgICBkYXRlX2RlX25haXNzYW5jZTogZGF0ZTtcbiAgICBwcmlzZV9lbl9jaGFyZ2U6IFByaXNlRW5DaGFyZ2VFbmZhbnQudDtcbiAgICBhX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzOiBib29sO1xuICAgIGJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudDogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9lbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyAoeDogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl0sXG4gIFsoXCJpZGVudGlmaWFudFwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuaWRlbnRpZmlhbnQpO1xuICAgIChcIm9ibGlnYXRpb25fc2NvbGFpcmVcIiwgZW1iZWRfc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVcbiAgICB4LkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlKTtcbiAgICAoXCJyw6ltdW5lcmF0aW9uX21lbnN1ZWxsZVwiLCBlbWJlZF9tb25leVxuICAgIHguRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgIChcImRhdGVfZGVfbmFpc3NhbmNlXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgKFwicHJpc2VfZW5fY2hhcmdlXCIsIGVtYmVkX3ByaXNlX2VuX2NoYXJnZV9lbmZhbnRcbiAgICB4LkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5wcmlzZV9lbl9jaGFyZ2UpO1xuICAgIChcImFfZMOpasOgX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1wiLCBlbWJlZF9ib29sXG4gICAgeC5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgKFwiYsOpbsOpZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnRcIiwgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCldKVxuXG5cbm1vZHVsZSBUeXBlQmFpbGxldXIgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgQmFpbGxldXJTb2NpYWwgb2YgQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLnRcbiAgICB8IEJhaWxsZXVyUHJpdmVBdmVjQ29udmVudGlvbm5lbWVudFNvY2lhbCBvZiBDb252ZW50aW9uQU5IQS50XG4gICAgfCBCYWlsbGV1clByaXZlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfdHlwZV9iYWlsbGV1ciAoeDogVHlwZUJhaWxsZXVyLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiVHlwZUJhaWxsZXVyXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEJhaWxsZXVyU29jaWFsIHggLT5cbiAgICAgIChcIkJhaWxsZXVyU29jaWFsXCIsIGVtYmVkX2NvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsIHgpXG4gICAgfCBCYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWwgeCAtPlxuICAgICAgKFwiQmFpbGxldXJQcml2w6lBdmVjQ29udmVudGlvbm5lbWVudFNvY2lhbFwiLCBlbWJlZF9jb252ZW50aW9uX2Ffbl9oX2EgeClcbiAgICB8IEJhaWxsZXVyUHJpdmUgeCAtPiAoXCJCYWlsbGV1clByaXbDqVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBMb3VlT3VTb3VzTG91ZUFEZXNUaWVycyA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBOb24gb2YgdW5pdFxuICAgIHwgT3VpIG9mIFBlcnNvbm5lU291c0xvY2F0aW9uLnRcbiAgZW5kXG5sZXQgZW1iZWRfbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMgKHg6IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiTG91w6lPdVNvdXNMb3XDqcOARGVzVGllcnNcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgTm9uIHggLT4gKFwiTm9uXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IE91aSB4IC0+IChcIk91aVwiLCBlbWJlZF9wZXJzb25uZV9zb3VzX2xvY2F0aW9uIHgpKVxuXG5cbm1vZHVsZSBOYXRpb25hbGl0ZSA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBGcmFuY2Fpc2Ugb2YgdW5pdFxuICAgIHwgRXRyYW5nZXJlIG9mIENvbmRpdGlvbnNFdHJhbmdlcnMudFxuICBlbmRcbmxldCBlbWJlZF9uYXRpb25hbGl0ZSAoeDogTmF0aW9uYWxpdGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJOYXRpb25hbGl0w6lcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgRnJhbmNhaXNlIHggLT4gKFwiRnJhbsOnYWlzZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBFdHJhbmdlcmUgeCAtPiAoXCLDiXRyYW5nw6hyZVwiLCBlbWJlZF9jb25kaXRpb25zX2V0cmFuZ2VycyB4KSlcblxuXG5tb2R1bGUgQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgQ2hhbmdlbWVudCBvZiBJbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnRcbiAgICB8IFBhc0RlQ2hhbmdlbWVudCBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80ICh4OiBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkNoYW5nZW1lbnRMb2dlbWVudEQ4NDJfNFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBDaGFuZ2VtZW50IHggLT5cbiAgICAgIChcIkNoYW5nZW1lbnRcIiwgZW1iZWRfaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgeClcbiAgICB8IFBhc0RlQ2hhbmdlbWVudCB4IC0+IChcIlBhc0RlQ2hhbmdlbWVudFwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBJbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBub21icmVfZW5mYW50c19hX25haXRyZV9hcHJlc190cm9pc2llbWVfbW9pc19ncm9zc2Vzc2U6IGludGVnZXI7XG4gICAgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX2VuZmFudF9vdV9kZXJuaWVyX3NpX3BsdXM6XG4gICAgICBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2luZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnQgKHg6IEluZm9ybWF0aW9uc1ByaW1lRGVEZW1lbmFnZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkluZm9ybWF0aW9uc1ByaW1lRGVEw6ltw6luYWdlbWVudFwiXSxcbiAgWyhcIm5vbWJyZV9lbmZhbnRzX8OgX25hw650cmVfYXByw6hzX3Ryb2lzacOobWVfbW9pc19ncm9zc2Vzc2VcIixcbiAgICBlbWJlZF9pbnRlZ2VyXG4gICAgeC5JbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50Lm5vbWJyZV9lbmZhbnRzX2FfbmFpdHJlX2FwcmVzX3Ryb2lzaWVtZV9tb2lzX2dyb3NzZXNzZSk7XG4gICAgKFwiZGF0ZV9uYWlzc2FuY2VfdHJvaXNpw6htZV9lbmZhbnRfb3VfZGVybmllcl9zaV9wbHVzXCIsXG4gICAgZW1iZWRfZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnRcbiAgICB4LkluZm9ybWF0aW9uc1ByaW1lRGVEZW1lbmFnZW1lbnQuZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX2VuZmFudF9vdV9kZXJuaWVyX3NpX3BsdXMpXSlcblxuXG5tb2R1bGUgUHJvcHJpZXRhaXJlID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBtZW5zdWFsaXRlX3ByaW5jaXBhbGU6IG1vbmV5O1xuICAgIGNoYXJnZXNfbWVuc3VlbGxlc19wcmV0OiBtb25leTtcbiAgICBkYXRlX2VudHJlZV9sb2dlbWVudDogZGF0ZTtcbiAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNTogVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS50O1xuICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzU6IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS50O1xuICAgIGxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZTogYm9vbDtcbiAgICBjb3Byb3ByaWV0ZTogYm9vbDtcbiAgICBzaXR1YXRpb25fcjgyMl8xMV8xM18xNzogYm9vbDtcbiAgICBhbmNpZW5uZXRlX2xvZ2VtZW50OiBOZXVmT3VBbmNpZW4udDtcbiAgICBwcmV0OiBQcmV0LnQ7XG4gICAgb3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXQ6XG4gICAgICBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX3Byb3ByaWV0YWlyZSAoeDogUHJvcHJpZXRhaXJlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJQcm9wcmnDqXRhaXJlXCJdLFxuICBbKFwibWVuc3VhbGl0w6lfcHJpbmNpcGFsZVwiLCBlbWJlZF9tb25leVxuICAgIHguUHJvcHJpZXRhaXJlLm1lbnN1YWxpdGVfcHJpbmNpcGFsZSk7XG4gICAgKFwiY2hhcmdlc19tZW5zdWVsbGVzX3Byw6p0XCIsIGVtYmVkX21vbmV5XG4gICAgeC5Qcm9wcmlldGFpcmUuY2hhcmdlc19tZW5zdWVsbGVzX3ByZXQpO1xuICAgIChcImRhdGVfZW50csOpZV9sb2dlbWVudFwiLCBlbWJlZF9kYXRlXG4gICAgeC5Qcm9wcmlldGFpcmUuZGF0ZV9lbnRyZWVfbG9nZW1lbnQpO1xuICAgIChcInR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1XCIsIGVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1XG4gICAgeC5Qcm9wcmlldGFpcmUudHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUpO1xuICAgIChcInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVcIiwgZW1iZWRfdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNVxuICAgIHguUHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUpO1xuICAgIChcImxvY2FsX2hhYml0w6lfcHJlbWnDqHJlX2ZvaXNfYsOpbsOpZmljaWFpcmVcIiwgZW1iZWRfYm9vbFxuICAgIHguUHJvcHJpZXRhaXJlLmxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZSk7XG4gICAgKFwiY29wcm9wcmnDqXTDqVwiLCBlbWJlZF9ib29sXG4gICAgeC5Qcm9wcmlldGFpcmUuY29wcm9wcmlldGUpO1xuICAgIChcInNpdHVhdGlvbl9yODIyXzExXzEzXzE3XCIsIGVtYmVkX2Jvb2xcbiAgICB4LlByb3ByaWV0YWlyZS5zaXR1YXRpb25fcjgyMl8xMV8xM18xNyk7XG4gICAgKFwiYW5jaWVubmV0w6lfbG9nZW1lbnRcIiwgZW1iZWRfbmV1Zl9vdV9hbmNpZW5cbiAgICB4LlByb3ByaWV0YWlyZS5hbmNpZW5uZXRlX2xvZ2VtZW50KTtcbiAgICAoXCJwcsOqdFwiLCBlbWJlZF9wcmV0XG4gICAgeC5Qcm9wcmlldGFpcmUucHJldCk7XG4gICAgKFwib3DDqXJhdGlvbnNfbG9nZW1lbnRfw6l2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmnDqXTDqV9haWTDqWVfw4l0YXRcIixcbiAgICBlbWJlZF9ib29sXG4gICAgeC5Qcm9wcmlldGFpcmUub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXQpXSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGFnZV9sNTEyXzNfMjogZHVyYXRpb247XG4gICAgZHJvaXRfb3V2ZXJ0OiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPiBib29sO1xuICAgIGNvbmRpdGlvbnNfaG9yc19hZ2U6IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50IC0+IGJvb2w7XG4gICAgcmVnaW1lX291dHJlX21lcl9sNzUxXzE6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyAoeDogRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl0sXG4gIFsoXCLDomdlX2w1MTJfM18yXCIsIGVtYmVkX2R1cmF0aW9uXG4gICAgeC5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5hZ2VfbDUxMl8zXzIpO1xuICAgIChcImRyb2l0X291dmVydFwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRyb2l0X291dmVydCk7XG4gICAgKFwiY29uZGl0aW9uc19ob3JzX8OiZ2VcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5jb25kaXRpb25zX2hvcnNfYWdlKTtcbiAgICAoXCJyw6lnaW1lX291dHJlX21lcl9sNzUxXzFcIiwgZW1iZWRfYm9vbFxuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVnaW1lX291dHJlX21lcl9sNzUxXzEpXSlcblxuXG5tb2R1bGUgRGVtYW5kZXVyID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX25haXNzYW5jZTogZGF0ZTtcbiAgICBuYXRpb25hbGl0ZTogTmF0aW9uYWxpdGUudDtcbiAgICBwYXRyaW1vaW5lOiBQYXRyaW1vaW5lLnQ7XG4gICAgcGVyc29ubmVfaGViZXJnZWVfY2VudHJlX3NvaW5fbF9MMTYyXzIyXzNfc2VjdXJpdGVfc29jaWFsZTogYm9vbDtcbiAgICBlc3Rfbm9uX3NhbGFyaWVfYWdyaWNvbGVfbDc4MV84X2xfNzgxXzQ2X2NvZGVfcnVyYWw6IGJvb2w7XG4gICAgbWFnaXN0cmF0X2ZvbmN0aW9ubmFpcmVfY2VudHJlX2ludGVyZXRzX21hdGVyaWVsc19mYW1pbGlhdXhfaG9yc19tYXlvdHRlOlxuICAgICAgYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9kZW1hbmRldXIgKHg6IERlbWFuZGV1ci50KSA6IHJ1bnRpbWVfdmFsdWUgPSBTdHJ1Y3QoW1wiRGVtYW5kZXVyXCJdLFxuICBbKFwiZGF0ZV9uYWlzc2FuY2VcIiwgZW1iZWRfZGF0ZSB4LkRlbWFuZGV1ci5kYXRlX25haXNzYW5jZSk7XG4gICAgKFwibmF0aW9uYWxpdMOpXCIsIGVtYmVkX25hdGlvbmFsaXRlXG4gICAgeC5EZW1hbmRldXIubmF0aW9uYWxpdGUpO1xuICAgIChcInBhdHJpbW9pbmVcIiwgZW1iZWRfcGF0cmltb2luZVxuICAgIHguRGVtYW5kZXVyLnBhdHJpbW9pbmUpO1xuICAgIChcInBlcnNvbm5lX2jDqWJlcmfDqWVfY2VudHJlX3NvaW5fbF9MMTYyXzIyXzNfc8OpY3VyaXTDqV9zb2NpYWxlXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguRGVtYW5kZXVyLnBlcnNvbm5lX2hlYmVyZ2VlX2NlbnRyZV9zb2luX2xfTDE2Ml8yMl8zX3NlY3VyaXRlX3NvY2lhbGUpO1xuICAgIChcImVzdF9ub25fc2FsYXJpw6lfYWdyaWNvbGVfbDc4MV84X2xfNzgxXzQ2X2NvZGVfcnVyYWxcIiwgZW1iZWRfYm9vbFxuICAgIHguRGVtYW5kZXVyLmVzdF9ub25fc2FsYXJpZV9hZ3JpY29sZV9sNzgxXzhfbF83ODFfNDZfY29kZV9ydXJhbCk7XG4gICAgKFwibWFnaXN0cmF0X2ZvbmN0aW9ubmFpcmVfY2VudHJlX2ludMOpcsOqdHNfbWF0w6lyaWVsc19mYW1pbGlhdXhfaG9yc19tYXlvdHRlXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguRGVtYW5kZXVyLm1hZ2lzdHJhdF9mb25jdGlvbm5haXJlX2NlbnRyZV9pbnRlcmV0c19tYXRlcmllbHNfZmFtaWxpYXV4X2hvcnNfbWF5b3R0ZSldKVxuXG5cbm1vZHVsZSBFbmZhbnRBQ2hhcmdlID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBpZGVudGlmaWFudDogaW50ZWdlcjtcbiAgICBuYXRpb25hbGl0ZTogTmF0aW9uYWxpdGUudDtcbiAgICBiZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQ6IGJvb2w7XG4gICAgYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlczogYm9vbDtcbiAgICBkYXRlX2RlX25haXNzYW5jZTogZGF0ZTtcbiAgICByZW11bmVyYXRpb25fbWVuc3VlbGxlOiBtb25leTtcbiAgICBvYmxpZ2F0aW9uX3Njb2xhaXJlOiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUudDtcbiAgICBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWU6IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUudDtcbiAgICBldHVkZXNfYXBwcmVudGlzc2FnZV9zdGFnZV9mb3JtYXRpb25fcHJvX2ltcG9zc2liaWxpdGVfdHJhdmFpbDogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9lbmZhbnRfYV9jaGFyZ2UgKHg6IEVuZmFudEFDaGFyZ2UudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkVuZmFudMOAQ2hhcmdlXCJdLFxuICBbKFwiaWRlbnRpZmlhbnRcIiwgZW1iZWRfaW50ZWdlclxuICAgIHguRW5mYW50QUNoYXJnZS5pZGVudGlmaWFudCk7XG4gICAgKFwibmF0aW9uYWxpdMOpXCIsIGVtYmVkX25hdGlvbmFsaXRlXG4gICAgeC5FbmZhbnRBQ2hhcmdlLm5hdGlvbmFsaXRlKTtcbiAgICAoXCJiw6luw6lmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudFwiLCBlbWJlZF9ib29sXG4gICAgeC5FbmZhbnRBQ2hhcmdlLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCk7XG4gICAgKFwiYV9kw6lqw6Bfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVuZmFudEFDaGFyZ2UuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgKFwiZGF0ZV9kZV9uYWlzc2FuY2VcIiwgZW1iZWRfZGF0ZVxuICAgIHguRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgKFwicsOpbXVuZXJhdGlvbl9tZW5zdWVsbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkVuZmFudEFDaGFyZ2UucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSk7XG4gICAgKFwib2JsaWdhdGlvbl9zY29sYWlyZVwiLCBlbWJlZF9zaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZVxuICAgIHguRW5mYW50QUNoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlKTtcbiAgICAoXCJzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuw6llXCIsIGVtYmVkX3NpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZVxuICAgIHguRW5mYW50QUNoYXJnZS5zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUpO1xuICAgIChcIsOpdHVkZXNfYXBwcmVudGlzc2FnZV9zdGFnZV9mb3JtYXRpb25fcHJvX2ltcG9zc2liaWxpdMOpX3RyYXZhaWxcIixcbiAgICBlbWJlZF9ib29sXG4gICAgeC5FbmZhbnRBQ2hhcmdlLmV0dWRlc19hcHByZW50aXNzYWdlX3N0YWdlX2Zvcm1hdGlvbl9wcm9faW1wb3NzaWJpbGl0ZV90cmF2YWlsKV0pXG5cblxubW9kdWxlIExvY2F0aW9uID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBiYWlsbGV1cjogVHlwZUJhaWxsZXVyLnQ7XG4gICAgbG95ZXJfcHJpbmNpcGFsOiBtb25leTtcbiAgICBiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXM6IGJvb2w7XG4gICAgbG9nZW1lbnRfZXN0X2NoYW1icmU6IGJvb2w7XG4gICAgY29sb2NhdGlvbjogYm9vbDtcbiAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyczogYm9vbDtcbiAgICBsb2dlbWVudF9tZXVibGVfZDg0Ml8yOiBib29sO1xuICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80OiBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2xvY2F0aW9uICh4OiBMb2NhdGlvbi50KSA6IHJ1bnRpbWVfdmFsdWUgPSBTdHJ1Y3QoW1wiTG9jYXRpb25cIl0sXG4gIFsoXCJiYWlsbGV1clwiLCBlbWJlZF90eXBlX2JhaWxsZXVyIHguTG9jYXRpb24uYmFpbGxldXIpO1xuICAgIChcImxveWVyX3ByaW5jaXBhbFwiLCBlbWJlZF9tb25leVxuICAgIHguTG9jYXRpb24ubG95ZXJfcHJpbmNpcGFsKTtcbiAgICAoXCJiw6luw6lmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXDDqXNcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9jYXRpb24uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzKTtcbiAgICAoXCJsb2dlbWVudF9lc3RfY2hhbWJyZVwiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2NhdGlvbi5sb2dlbWVudF9lc3RfY2hhbWJyZSk7XG4gICAgKFwiY29sb2NhdGlvblwiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2NhdGlvbi5jb2xvY2F0aW9uKTtcbiAgICAoXCLDomfDqWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaMOpYmVyZ8OpZXNfb27DqXJldXhfcGFydGljdWxpZXJzXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguTG9jYXRpb24uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnMpO1xuICAgIChcImxvZ2VtZW50X21ldWJsw6lfZDg0Ml8yXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkxvY2F0aW9uLmxvZ2VtZW50X21ldWJsZV9kODQyXzIpO1xuICAgIChcImNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80XCIsIGVtYmVkX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80XG4gICAgeC5Mb2NhdGlvbi5jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCldKVxuXG5cbm1vZHVsZSBQZXJzb25uZUFDaGFyZ2UgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgRW5mYW50QUNoYXJnZSBvZiBFbmZhbnRBQ2hhcmdlLnRcbiAgICB8IEF1dHJlUGVyc29ubmVBQ2hhcmdlIG9mIEF1dHJlUGVyc29ubmVBQ2hhcmdlLnRcbiAgZW5kXG5sZXQgZW1iZWRfcGVyc29ubmVfYV9jaGFyZ2UgKHg6IFBlcnNvbm5lQUNoYXJnZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlBlcnNvbm5lw4BDaGFyZ2VcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgRW5mYW50QUNoYXJnZSB4IC0+IChcIkVuZmFudMOAQ2hhcmdlXCIsIGVtYmVkX2VuZmFudF9hX2NoYXJnZSB4KVxuICAgIHwgQXV0cmVQZXJzb25uZUFDaGFyZ2UgeCAtPlxuICAgICAgKFwiQXV0cmVQZXJzb25uZcOAQ2hhcmdlXCIsIGVtYmVkX2F1dHJlX3BlcnNvbm5lX2FfY2hhcmdlIHgpKVxuXG5cbm1vZHVsZSBDYXRlZ29yaWVDYWxjdWxBUEwgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgTG9jYXRpb24gb2YgTG9jYXRpb24udFxuICAgIHwgQWNjZXNzaW9uUHJvcHJpZXRlIG9mIFByb3ByaWV0YWlyZS50XG4gICAgfCBMb2dlbWVudEZveWVyIG9mIExvZ2VtZW50Rm95ZXIudFxuICBlbmRcbmxldCBlbWJlZF9jYXRlZ29yaWVfY2FsY3VsX2FfcF9sICh4OiBDYXRlZ29yaWVDYWxjdWxBUEwudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJDYXTDqWdvcmllQ2FsY3VsQVBMXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IExvY2F0aW9uIHggLT4gKFwiTG9jYXRpb25cIiwgZW1iZWRfbG9jYXRpb24geClcbiAgICB8IEFjY2Vzc2lvblByb3ByaWV0ZSB4IC0+IChcIkFjY2Vzc2lvblByb3ByacOpdMOpXCIsIGVtYmVkX3Byb3ByaWV0YWlyZSB4KVxuICAgIHwgTG9nZW1lbnRGb3llciB4IC0+IChcIkxvZ2VtZW50Rm95ZXJcIiwgZW1iZWRfbG9nZW1lbnRfZm95ZXIgeCkpXG5cblxubW9kdWxlIE1vZGVPY2N1cGF0aW9uID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IExvY2F0YWlyZSBvZiBMb2NhdGlvbi50XG4gICAgfCBSZXNpZGVudExvZ2VtZW50Rm95ZXIgb2YgTG9nZW1lbnRGb3llci50XG4gICAgfCBBY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIG9mIFByb3ByaWV0YWlyZS50XG4gICAgfCBTb3VzTG9jYXRhaXJlIG9mIExvY2F0aW9uLnRcbiAgICB8IExvY2F0aW9uQWNjZXNzaW9uIG9mIFByb3ByaWV0YWlyZS50XG4gIGVuZFxubGV0IGVtYmVkX21vZGVfb2NjdXBhdGlvbiAoeDogTW9kZU9jY3VwYXRpb24udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJNb2RlT2NjdXBhdGlvblwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBMb2NhdGFpcmUgeCAtPiAoXCJMb2NhdGFpcmVcIiwgZW1iZWRfbG9jYXRpb24geClcbiAgICB8IFJlc2lkZW50TG9nZW1lbnRGb3llciB4IC0+XG4gICAgICAoXCJSw6lzaWRlbnRMb2dlbWVudEZveWVyXCIsIGVtYmVkX2xvZ2VtZW50X2ZveWVyIHgpXG4gICAgfCBBY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIHggLT5cbiAgICAgIChcIkFjY2Vzc2lvblByb3ByacOpdMOpTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvblwiLCBlbWJlZF9wcm9wcmlldGFpcmUgeClcbiAgICB8IFNvdXNMb2NhdGFpcmUgeCAtPiAoXCJTb3VzTG9jYXRhaXJlXCIsIGVtYmVkX2xvY2F0aW9uIHgpXG4gICAgfCBMb2NhdGlvbkFjY2Vzc2lvbiB4IC0+IChcIkxvY2F0aW9uQWNjZXNzaW9uXCIsIGVtYmVkX3Byb3ByaWV0YWlyZSB4KSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfY291cmFudGU6IGRhdGU7XG4gICAgZWxpZ2liaWxpdGU6IGJvb2w7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlOiBpbnRlZ2VyO1xuICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGU6IGRlY2ltYWwgYXJyYXk7XG4gICAgY29uZGl0aW9uXzJfcjgyM180OiBQZXJzb25uZUFDaGFyZ2UudCAtPiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50ICh4OiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSxcbiAgWyhcImRhdGVfY291cmFudGVcIiwgZW1iZWRfZGF0ZVxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZGF0ZV9jb3VyYW50ZSk7XG4gICAgKFwiw6lsaWdpYmlsaXTDqVwiLCBlbWJlZF9ib29sXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5lbGlnaWJpbGl0ZSk7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUpO1xuICAgIChcImNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llX3ByaXNfZW5fY29tcHRlXCIsXG4gICAgZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlKTtcbiAgICAoXCJjb25kaXRpb25fMl9yODIzXzRcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5jb25kaXRpb25fMl9yODIzXzQpXSlcblxuXG5tb2R1bGUgTG9nZW1lbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHJlc2lkZW5jZV9wcmluY2lwYWxlOiBib29sO1xuICAgIGVzdF9laHBhZF9vdV9tYWlzb25fYXV0b25vbWllX2wzMTNfMTJfYXNmOiBib29sO1xuICAgIG1vZGVfb2NjdXBhdGlvbjogTW9kZU9jY3VwYXRpb24udDtcbiAgICBwcm9wcmlldGFpcmU6IFBhcmVudE91QXV0cmUudDtcbiAgICBsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVyczogTG91ZU91U291c0xvdWVBRGVzVGllcnMudDtcbiAgICB1c3VmcnVpdDogUGFyZW50T3VBdXRyZS50O1xuICAgIGxvZ2VtZW50X2RlY2VudF9sODlfNDYyOiBib29sO1xuICAgIHN1cmZhY2VfbV9jYXJyZXM6IGludGVnZXI7XG4gICAgem9uZTogWm9uZURIYWJpdGF0aW9uLnRcbiAgfVxuZW5kXG5sZXQgZW1iZWRfbG9nZW1lbnQgKHg6IExvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9IFN0cnVjdChbXCJMb2dlbWVudFwiXSxcbiAgWyhcInLDqXNpZGVuY2VfcHJpbmNpcGFsZVwiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2dlbWVudC5yZXNpZGVuY2VfcHJpbmNpcGFsZSk7XG4gICAgKFwiZXN0X2VocGFkX291X21haXNvbl9hdXRvbm9taWVfbDMxM18xMl9hc2ZcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnQuZXN0X2VocGFkX291X21haXNvbl9hdXRvbm9taWVfbDMxM18xMl9hc2YpO1xuICAgIChcIm1vZGVfb2NjdXBhdGlvblwiLCBlbWJlZF9tb2RlX29jY3VwYXRpb25cbiAgICB4LkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbik7XG4gICAgKFwicHJvcHJpw6l0YWlyZVwiLCBlbWJlZF9wYXJlbnRfb3VfYXV0cmVcbiAgICB4LkxvZ2VtZW50LnByb3ByaWV0YWlyZSk7XG4gICAgKFwibG91w6lfb3Vfc291c19sb3XDqV/DoF9kZXNfdGllcnNcIiwgZW1iZWRfbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnNcbiAgICB4LkxvZ2VtZW50LmxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzKTtcbiAgICAoXCJ1c3VmcnVpdFwiLCBlbWJlZF9wYXJlbnRfb3VfYXV0cmVcbiAgICB4LkxvZ2VtZW50LnVzdWZydWl0KTtcbiAgICAoXCJsb2dlbWVudF9kZWNlbnRfbDg5XzQ2MlwiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2dlbWVudC5sb2dlbWVudF9kZWNlbnRfbDg5XzQ2Mik7XG4gICAgKFwic3VyZmFjZV9tX2NhcnLDqXNcIiwgZW1iZWRfaW50ZWdlciB4LkxvZ2VtZW50LnN1cmZhY2VfbV9jYXJyZXMpO1xuICAgIChcInpvbmVcIiwgZW1iZWRfem9uZV9kX2hhYml0YXRpb24geC5Mb2dlbWVudC56b25lKV0pXG5cblxubW9kdWxlIE1lbmFnZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgcHJlc3RhdGlvbnNfcmVjdWVzOiBQcmVzdGF0aW9uUmVjdWUudCBhcnJheTtcbiAgICBsb2dlbWVudDogTG9nZW1lbnQudDtcbiAgICBwZXJzb25uZXNfYV9jaGFyZ2U6IFBlcnNvbm5lQUNoYXJnZS50IGFycmF5O1xuICAgIG5vbWJyZV9hdXRyZXNfb2NjdXBhbnRzX2xvZ2VtZW50OiBpbnRlZ2VyO1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGU6IFNpdHVhdGlvbkZhbWlsaWFsZS50O1xuICAgIGNvbmRpdGlvbl9yYXR0YWNoZV9mb3llcl9maXNjYWxfcGFyZW50X2lmaTogYm9vbDtcbiAgICBlbmZhbnRfYV9uYWl0cmVfYXByZXNfcXVhdHJpZW1lX21vaXNfZ3Jvc3Nlc3NlOiBib29sO1xuICAgIHBlcnNvbm5lc19hZ2Vlc19oYW5kaWNhcGVlc19mb3llcl9yODQ0XzQ6IGJvb2w7XG4gICAgcmVzaWRlbmNlOiBDb2xsZWN0aXZpdGUudFxuICB9XG5lbmRcbmxldCBlbWJlZF9tZW5hZ2UgKHg6IE1lbmFnZS50KSA6IHJ1bnRpbWVfdmFsdWUgPSBTdHJ1Y3QoW1wiTcOpbmFnZVwiXSxcbiAgWyhcInByZXN0YXRpb25zX3Jlw6d1ZXNcIiwgZW1iZWRfYXJyYXkgKGVtYmVkX3ByZXN0YXRpb25fcmVjdWUpXG4gICAgeC5NZW5hZ2UucHJlc3RhdGlvbnNfcmVjdWVzKTtcbiAgICAoXCJsb2dlbWVudFwiLCBlbWJlZF9sb2dlbWVudCB4Lk1lbmFnZS5sb2dlbWVudCk7XG4gICAgKFwicGVyc29ubmVzX8OgX2NoYXJnZVwiLCBlbWJlZF9hcnJheSAoZW1iZWRfcGVyc29ubmVfYV9jaGFyZ2UpXG4gICAgeC5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKTtcbiAgICAoXCJub21icmVfYXV0cmVzX29jY3VwYW50c19sb2dlbWVudFwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5NZW5hZ2Uubm9tYnJlX2F1dHJlc19vY2N1cGFudHNfbG9nZW1lbnQpO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVcIiwgZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZVxuICAgIHguTWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGUpO1xuICAgIChcImNvbmRpdGlvbl9yYXR0YWNow6lfZm95ZXJfZmlzY2FsX3BhcmVudF9pZmlcIiwgZW1iZWRfYm9vbFxuICAgIHguTWVuYWdlLmNvbmRpdGlvbl9yYXR0YWNoZV9mb3llcl9maXNjYWxfcGFyZW50X2lmaSk7XG4gICAgKFwiZW5mYW50X8OgX25hw650cmVfYXByw6hzX3F1YXRyacOobWVfbW9pc19ncm9zc2Vzc2VcIiwgZW1iZWRfYm9vbFxuICAgIHguTWVuYWdlLmVuZmFudF9hX25haXRyZV9hcHJlc19xdWF0cmllbWVfbW9pc19ncm9zc2Vzc2UpO1xuICAgIChcInBlcnNvbm5lc1/DomfDqWVzX2hhbmRpY2Fww6llc19mb3llcl9yODQ0XzRcIiwgZW1iZWRfYm9vbFxuICAgIHguTWVuYWdlLnBlcnNvbm5lc19hZ2Vlc19oYW5kaWNhcGVlc19mb3llcl9yODQ0XzQpO1xuICAgIChcInLDqXNpZGVuY2VcIiwgZW1iZWRfY29sbGVjdGl2aXRlIHguTWVuYWdlLnJlc2lkZW5jZSldKVxuXG5cbm1vZHVsZSBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBtZW5hZ2VfaW46IE1lbmFnZS50O1xuICAgIGRlbWFuZGV1cl9pbjogRGVtYW5kZXVyLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfaW46IHVuaXQgLT4gYm9vbDtcbiAgICBjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9pbjogdW5pdCAtPiBib29sO1xuICAgIGRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoX2luOiB1bml0IC0+IGRhdGVcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gKHg6IEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJtw6luYWdlX2luXCIsIGVtYmVkX21lbmFnZVxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5tZW5hZ2VfaW4pO1xuICAgIChcImRlbWFuZGV1cl9pblwiLCBlbWJlZF9kZW1hbmRldXJcbiAgICB4LkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGVtYW5kZXVyX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiY29uZGl0aW9uX2xvZ2VtZW50X3LDqXNpZGVuY2VfcHJpbmNpcGFsZV9pblwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlX2luKTtcbiAgICAoXCJjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9pblwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfaW4pO1xuICAgIChcImRhdGVfZW50csOpZV92aWd1ZXVyX2RpZmbDqXLDqWVfY2NoX2luXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbildKVxuXG5cbm1vZHVsZSBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbWVuYWdlX2luOiBNZW5hZ2UudDtcbiAgICBkZW1hbmRldXJfaW46IERlbWFuZGV1ci50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGVcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luICh4OiBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50X2luXCJdLFxuICBbKFwibcOpbmFnZV9pblwiLCBlbWJlZF9tZW5hZ2VcbiAgICB4LkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLm1lbmFnZV9pbik7XG4gICAgKFwiZGVtYW5kZXVyX2luXCIsIGVtYmVkX2RlbWFuZGV1clxuICAgIHguRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uZGVtYW5kZXVyX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4pXSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBtZW5hZ2VfaW46IE1lbmFnZS50O1xuICAgIGRlbWFuZGV1cl9pbjogRGVtYW5kZXVyLnQ7XG4gICAgYmVuZWZpY2llX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbjogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luICh4OiBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50X2luXCJdLFxuICBbKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcIm3DqW5hZ2VfaW5cIiwgZW1iZWRfbWVuYWdlXG4gICAgeC5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLm1lbmFnZV9pbik7XG4gICAgKFwiZGVtYW5kZXVyX2luXCIsIGVtYmVkX2RlbWFuZGV1clxuICAgIHguRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5kZW1hbmRldXJfaW4pO1xuICAgIChcImLDqW7DqWZpY2llX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnRfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5iZW5lZmljaWVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luKV0pXG5cblxubW9kdWxlIEVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBpbmZvcm1hdGlvbnNfaW46IEluZm9ybWF0aW9uc1ByaW1lRGVEZW1lbmFnZW1lbnQudDtcbiAgICBkYXRlX2VtbWVuYWdlbWVudF9pbjogZGF0ZTtcbiAgICBtZW5hZ2VfaW46IE1lbmFnZS50O1xuICAgIGRlbWFuZGV1cl9pbjogRGVtYW5kZXVyLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBkZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnRfZW5nYWdlZXNfaW46IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbiAoeDogRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRfaW5cIl0sXG4gIFsoXCJpbmZvcm1hdGlvbnNfaW5cIiwgZW1iZWRfaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudFxuICAgIHguRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uaW5mb3JtYXRpb25zX2luKTtcbiAgICAoXCJkYXRlX2VtbcOpbmFnZW1lbnRfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uZGF0ZV9lbW1lbmFnZW1lbnRfaW4pO1xuICAgIChcIm3DqW5hZ2VfaW5cIiwgZW1iZWRfbWVuYWdlXG4gICAgeC5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5tZW5hZ2VfaW4pO1xuICAgIChcImRlbWFuZGV1cl9pblwiLCBlbWJlZF9kZW1hbmRldXJcbiAgICB4LkVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLmRlbWFuZGV1cl9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJkw6lwZW5zZXNfanVzdGlmacOpZXNfcsOpZWxsZW1lbnRfZW5nYWfDqWVzX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5kZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnRfZW5nYWdlZXNfaW4pXSlcblxuXG5tb2R1bGUgUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICByZXNzb3VyY2VzX2RlbWFuZGV1cl9pbjogbW9uZXk7XG4gICAgcmVzc291cmNlc19jb25qb2ludF9pbjogbW9uZXk7XG4gICAgcGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl9pbjpcbiAgICAgIFBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLnQgYXJyYXk7XG4gICAgZGVtYW5kZXVyX2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfaW46IGJvb2w7XG4gICAgY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pbjogYm9vbDtcbiAgICBwZXJzb25uZXNfYV9jaGFyZ2VfaW46IFBlcnNvbm5lQUNoYXJnZS50IGFycmF5O1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfaW46IFNpdHVhdGlvbkZhbWlsaWFsZS50O1xuICAgIG1vZGVfb2NjdXBhdGlvbl9pbjogTW9kZU9jY3VwYXRpb24udDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIGNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXBlcmlldXJfaW46IGJvb2w7XG4gICAgZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXNfaW46IGJvb2w7XG4gICAgZGF0ZV9kZW1hbmRlX291X3JlZXhhbWVuX2Ryb2l0X2luOiBkYXRlO1xuICAgIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfaW46XG4gICAgICBQYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsLnQ7XG4gICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW46IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX3Jlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gKHg6IFJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudF9pblwiXSxcbiAgWyhcInJlc3NvdXJjZXNfZGVtYW5kZXVyX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucmVzc291cmNlc19kZW1hbmRldXJfaW4pO1xuICAgIChcInJlc3NvdXJjZXNfY29uam9pbnRfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5yZXNzb3VyY2VzX2NvbmpvaW50X2luKTtcbiAgICAoXCJwZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyX2luXCIsXG4gICAgZW1iZWRfYXJyYXkgKGVtYmVkX3BlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llcilcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5wZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyX2luKTtcbiAgICAoXCJkZW1hbmRldXJfZXhlcmNlX2FjdGl2aXTDqV9yw6ltdW7DqXLDqWVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX2luKTtcbiAgICAoXCJjb25qb2ludF9leGVyY2VfYWN0aXZpdMOpX3LDqW11bsOpcsOpZV9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pbik7XG4gICAgKFwicGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9hcnJheSAoZW1iZWRfcGVyc29ubmVfYV9jaGFyZ2UpXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2luXCIsIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2luKTtcbiAgICAoXCJtb2RlX29jY3VwYXRpb25faW5cIiwgZW1iZWRfbW9kZV9vY2N1cGF0aW9uXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJjb25kaXRpb25fw6JnZV9ib3Vyc2VfZW5zZWlnbmVtZW50X3N1cMOpcmlldXJfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXBlcmlldXJfaW4pO1xuICAgIChcImRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfw6l0dWRlc19pblwiLCBlbWJlZF9ib29sXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXNfaW4pO1xuICAgIChcImRhdGVfZGVtYW5kZV9vdV9yZWV4YW1lbl9kcm9pdF9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9kZW1hbmRlX291X3JlZXhhbWVuX2Ryb2l0X2luKTtcbiAgICAoXCJwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX2luXCIsXG4gICAgZW1iZWRfcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbFxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfaW4pO1xuICAgIChcInJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNfYmFzZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luKV0pXG5cblxubW9kdWxlIENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtkYXRlX2NvdXJhbnRlX2luOiBkYXRlfVxuZW5kXG5sZXQgZW1iZWRfY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiAoeDogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudF9pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBsb3llcl9wcmluY2lwYWxfYmFzZV9pbjogbW9uZXk7XG4gICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luOiBtb25leTtcbiAgICBiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW46IGJvb2w7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luOiBpbnRlZ2VyO1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbjogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQ7XG4gICAgem9uZV9pbjogWm9uZURIYWJpdGF0aW9uLnQ7XG4gICAgbG9nZW1lbnRfZXN0X2NoYW1icmVfaW46IGJvb2w7XG4gICAgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW46IGJvb2w7XG4gICAgdHlwZV9haWRlX2luOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQ7XG4gICAgY29sb2NhdGlvbl9pbjogYm9vbDtcbiAgICByZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbjogbW9uZXk7XG4gICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbjogYm9vbDtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbiAoeDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmX2luXCJdLFxuICBbKFwibG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW4pO1xuICAgIChcInJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luKTtcbiAgICAoXCJiw6luw6lmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXDDqXNfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblwiLFxuICAgIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbik7XG4gICAgKFwiem9uZV9pblwiLCBlbWJlZF96b25lX2RfaGFiaXRhdGlvblxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi56b25lX2luKTtcbiAgICAoXCJsb2dlbWVudF9lc3RfY2hhbWJyZV9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luKTtcbiAgICAoXCLDomfDqWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaMOpYmVyZ8OpZXNfb27DqXJldXhfcGFydGljdWxpZXJzX2luXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pbik7XG4gICAgKFwidHlwZV9haWRlX2luXCIsIGVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4udHlwZV9haWRlX2luKTtcbiAgICAoXCJjb2xvY2F0aW9uX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uY29sb2NhdGlvbl9pbik7XG4gICAgKFwicsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbik7XG4gICAgKFwibG9nZW1lbnRfbWV1YmzDqV9kODQyXzJfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNpZGVuY2VfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luOiBtb25leTtcbiAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfaW46IGJvb2w7XG4gICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV9pbjogZGVjaW1hbFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4gKHg6IENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlX2luXCJdLFxuICBbKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4pO1xuICAgIChcImNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4pO1xuICAgIChcIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW5cIiwgZW1iZWRfZGVjaW1hbFxuICAgIHguQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfaW46IGJvb2w7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW46IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50O1xuICAgIHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnQ7XG4gICAgbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogdW5pdCAtPiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbiAoeDogQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJfaW5cIl0sXG4gIFsoXCJjb25kaXRpb25fMl9kdV84MzJfMjVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4pO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbik7XG4gICAgKFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXCIsXG4gICAgZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4pO1xuICAgIChcImxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX2luKV0pXG5cblxubW9kdWxlIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICB0eXBlX2xvZ2VtZW50X2ZveWVyX2luOiBUeXBlTG9nZW1lbnRGb3llci50O1xuICAgIGRhdGVfY29udmVudGlvbm5lbWVudF9pbjogZGF0ZTtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW46IG1vbmV5O1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IGludGVnZXI7XG4gICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudDtcbiAgICB6b25lX2luOiBab25lREhhYml0YXRpb24udDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIHJlZGV2YW5jZV9pbjogbW9uZXk7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudDtcbiAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfaW46IHVuaXQgLT4gYm9vbDtcbiAgICBsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX2luOiB1bml0IC0+IGJvb2w7XG4gICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV9pbjogdW5pdCAtPiBkZWNpbWFsXG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4gKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyX2luXCJdLFxuICBbKFwidHlwZV9sb2dlbWVudF9mb3llcl9pblwiLCBlbWJlZF90eXBlX2xvZ2VtZW50X2ZveWVyXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi50eXBlX2xvZ2VtZW50X2ZveWVyX2luKTtcbiAgICAoXCJkYXRlX2NvbnZlbnRpb25uZW1lbnRfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4pO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblwiLFxuICAgIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4pO1xuICAgIChcInpvbmVfaW5cIiwgZW1iZWRfem9uZV9kX2hhYml0YXRpb25cbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnpvbmVfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwicmVkZXZhbmNlX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZWRldmFuY2VfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4pO1xuICAgIChcImNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pblwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbik7XG4gICAgKFwibGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X2luXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luOiBpbnRlZ2VyO1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbjogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnRcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luICh4OiBDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZUluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByacOpdMOpX2luXCJdLFxuICBbKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfaW50ZWdlclxuICAgIHguQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfaW46IG1vbmV5O1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbjogbW9uZXk7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW46IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50O1xuICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9pbjogVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS50O1xuICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfaW46IGRhdGU7XG4gICAgbG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luOiBib29sO1xuICAgIGRhdGVfZW50cmVlX2xvZ2VtZW50X2luOiBkYXRlO1xuICAgIGNvcHJvcHJpZXRlX2luOiBib29sO1xuICAgIHNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luOiBib29sO1xuICAgIHpvbmVfaW46IFpvbmVESGFiaXRhdGlvbi50O1xuICAgIHR5cGVfcHJldF9pbjogVHlwZVByZXQudDtcbiAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X2luOiBOZXVmT3VBbmNpZW4udDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlXG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiAoeDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpX2luXCJdLFxuICBbKFwibWVuc3VhbGl0w6lfcHJpbmNpcGFsZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc19pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbik7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfaW50ZWdlclxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblwiLFxuICAgIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luKTtcbiAgICAoXCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW5cIiwgZW1iZWRfdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW4pO1xuICAgIChcImRhdGVfc2lnbmF0dXJlX3Byw6p0X2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX3NpZ25hdHVyZV9wcmV0X2luKTtcbiAgICAoXCJsb2NhbF9oYWJpdMOpX3ByZW1pw6hyZV9mb2lzX2LDqW7DqWZpY2lhaXJlX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW4pO1xuICAgIChcImRhdGVfZW50csOpZV9sb2dlbWVudF9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4pO1xuICAgIChcImNvcHJvcHJpw6l0w6lfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmNvcHJvcHJpZXRlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fcjgyMl8xMV8xM18xN19pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW4pO1xuICAgIChcInpvbmVfaW5cIiwgZW1iZWRfem9uZV9kX2hhYml0YXRpb25cbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi56b25lX2luKTtcbiAgICAoXCJ0eXBlX3Byw6p0X2luXCIsIGVtYmVkX3R5cGVfcHJldFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnR5cGVfcHJldF9pbik7XG4gICAgKFwiYW5jaWVubmV0w6lfbG9nZW1lbnRfaW5cIiwgZW1iZWRfbmV1Zl9vdV9hbmNpZW5cbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5hbmNpZW5uZXRlX2xvZ2VtZW50X2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX2NvdXJhbnRlX2luKV0pXG5cblxubW9kdWxlIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbW9kZV9vY2N1cGF0aW9uX2luOiBNb2RlT2NjdXBhdGlvbi50O1xuICAgIHR5cGVfYWlkZV9pbjogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50O1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbjogbW9uZXk7XG4gICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbjogU2l0dWF0aW9uRmFtaWxpYWxlLnQ7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICB6b25lX2luOiBab25lREhhYml0YXRpb24udDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnRcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiAoeDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudF9pblwiXSxcbiAgWyhcIm1vZGVfb2NjdXBhdGlvbl9pblwiLCBlbWJlZF9tb2RlX29jY3VwYXRpb25cbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5tb2RlX29jY3VwYXRpb25faW4pO1xuICAgIChcInR5cGVfYWlkZV9pblwiLCBlbWJlZF90eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udHlwZV9haWRlX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2Vfc2Fuc19hcnJvbmRpX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ucmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2luXCIsIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2luKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbik7XG4gICAgKFwiem9uZV9pblwiLCBlbWJlZF96b25lX2RfaGFiaXRhdGlvblxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnpvbmVfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ucmVzaWRlbmNlX2luKV0pXG5cblxubW9kdWxlIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbG95ZXJfcHJpbmNpcGFsX2luOiBtb25leTtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW46IG1vbmV5O1xuICAgIGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc19pbjogYm9vbDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IGludGVnZXI7XG4gICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudDtcbiAgICB6b25lX2luOiBab25lREhhYml0YXRpb24udDtcbiAgICBsb2dlbWVudF9lc3RfY2hhbWJyZV9pbjogYm9vbDtcbiAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pbjogYm9vbDtcbiAgICB0eXBlX2FpZGVfaW46IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudDtcbiAgICBjb2xvY2F0aW9uX2luOiBib29sO1xuICAgIHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luOiBtb25leTtcbiAgICBsb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luOiBib29sO1xuICAgIHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnQ7XG4gICAgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfaW46IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnRcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiAoeDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmX2luXCJdLFxuICBbKFwibG95ZXJfcHJpbmNpcGFsX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luKTtcbiAgICAoXCJiw6luw6lmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXDDqXNfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc19pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfaW50ZWdlclxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblwiLFxuICAgIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luKTtcbiAgICAoXCJ6b25lX2luXCIsIGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uem9uZV9pbik7XG4gICAgKFwibG9nZW1lbnRfZXN0X2NoYW1icmVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luKTtcbiAgICAoXCLDomfDqWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaMOpYmVyZ8OpZXNfb27DqXJldXhfcGFydGljdWxpZXJzX2luXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luKTtcbiAgICAoXCJ0eXBlX2FpZGVfaW5cIiwgZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnR5cGVfYWlkZV9pbik7XG4gICAgKFwiY29sb2NhdGlvbl9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uY29sb2NhdGlvbl9pbik7XG4gICAgKFwicsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luKTtcbiAgICAoXCJsb2dlbWVudF9tZXVibMOpX2Q4NDJfMl9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbik7XG4gICAgKFwicsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZXNpZGVuY2VfaW4pO1xuICAgIChcImNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X2luXCIsIGVtYmVkX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luOiBtb25leTtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luOiBpbnRlZ2VyO1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbjogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQ7XG4gICAgem9uZV9pbjogWm9uZURIYWJpdGF0aW9uLnQ7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIG1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbjogbW9uZXk7XG4gICAgc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW46IGJvb2w7XG4gICAgZGF0ZV9zaWduYXR1cmVfcHJldF9pbjogZGF0ZTtcbiAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW46IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS50O1xuICAgIGxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV9pbjogYm9vbDtcbiAgICBkYXRlX2VudHJlZV9sb2dlbWVudF9pbjogZGF0ZTtcbiAgICBjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldF9pbjogbW9uZXk7XG4gICAgY29wcm9wcmlldGVfaW46IGJvb2w7XG4gICAgb3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRfaW46XG4gICAgICBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gKHg6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqV9pblwiXSxcbiAgWyhcInJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNfYmFzZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW4pO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblwiLFxuICAgIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4pO1xuICAgIChcInpvbmVfaW5cIiwgZW1iZWRfem9uZV9kX2hhYml0YXRpb25cbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnpvbmVfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNpZGVuY2VfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwibWVuc3VhbGl0w6lfcHJpbmNpcGFsZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fcjgyMl8xMV8xM18xN19pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5zaXR1YXRpb25fcjgyMl8xMV8xM18xN19pbik7XG4gICAgKFwiZGF0ZV9zaWduYXR1cmVfcHLDqnRfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9zaWduYXR1cmVfcHJldF9pbik7XG4gICAgKFwidHlwZV90cmF2YXV4X2xvZ2VtZW50X2luXCIsIGVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9pbik7XG4gICAgKFwibG9jYWxfaGFiaXTDqV9wcmVtacOocmVfZm9pc19iw6luw6lmaWNpYWlyZV9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW4pO1xuICAgIChcImRhdGVfZW50csOpZV9sb2dlbWVudF9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX2VudHJlZV9sb2dlbWVudF9pbik7XG4gICAgKFwiY2hhcmdlc19tZW5zdWVsbGVzX3Byw6p0X2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jaGFyZ2VzX21lbnN1ZWxsZXNfcHJldF9pbik7XG4gICAgKFwiY29wcm9wcmnDqXTDqV9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jb3Byb3ByaWV0ZV9pbik7XG4gICAgKFwib3DDqXJhdGlvbnNfbG9nZW1lbnRfw6l2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmnDqXTDqV9haWTDqWVfw4l0YXRfaW5cIixcbiAgICBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5vcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmlldGVfYWlkZWVfRXRhdF9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICB0eXBlX2xvZ2VtZW50X2ZveWVyX2luOiBUeXBlTG9nZW1lbnRGb3llci50O1xuICAgIGRhdGVfY29udmVudGlvbm5lbWVudF9pbjogZGF0ZTtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50O1xuICAgIHJlZGV2YW5jZV9pbjogbW9uZXk7XG4gICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luOiBtb25leTtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luOiBpbnRlZ2VyO1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbjogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQ7XG4gICAgem9uZV9pbjogWm9uZURIYWJpdGF0aW9uLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNl9pbjpcbiAgICAgIENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luICh4OiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llcl9pblwiXSxcbiAgWyhcInR5cGVfbG9nZW1lbnRfZm95ZXJfaW5cIiwgZW1iZWRfdHlwZV9sb2dlbWVudF9mb3llclxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi50eXBlX2xvZ2VtZW50X2ZveWVyX2luKTtcbiAgICAoXCJkYXRlX2NvbnZlbnRpb25uZW1lbnRfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvbnZlbnRpb25uZW1lbnRfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnJlc2lkZW5jZV9pbik7XG4gICAgKFwicmVkZXZhbmNlX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnJlZGV2YW5jZV9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc19pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4pO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbik7XG4gICAgKFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXCIsXG4gICAgZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luKTtcbiAgICAoXCJ6b25lX2luXCIsIGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnpvbmVfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJjYXTDqWdvcmllX8OpcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X2luXCIsXG4gICAgZW1iZWRfY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1vZGVfb2NjdXBhdGlvbl9pbjogTW9kZU9jY3VwYXRpb24udDtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfaW46IG1vbmV5O1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfaW46IFNpdHVhdGlvbkZhbWlsaWFsZS50O1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IGludGVnZXI7XG4gICAgem9uZV9pbjogWm9uZURIYWJpdGF0aW9uLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICB0eXBlX2FpZGVfaW46IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudDtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luICh4OiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50X2luXCJdLFxuICBbKFwibW9kZV9vY2N1cGF0aW9uX2luXCIsIGVtYmVkX21vZGVfb2NjdXBhdGlvblxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2Vfc2Fuc19hcnJvbmRpX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfaW4pO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVfaW5cIiwgZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbik7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfaW50ZWdlclxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbik7XG4gICAgKFwiem9uZV9pblwiLCBlbWJlZF96b25lX2RfaGFiaXRhdGlvblxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4uem9uZV9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJ0eXBlX2FpZGVfaW5cIiwgZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4udHlwZV9haWRlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ucmVzaWRlbmNlX2luKV0pXG5cblxubW9kdWxlIE91dmVydHVyZURyb2l0c1JldHJhaXRlSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2RhdGVfbmFpc3NhbmNlX2Fzc3VyZV9pbjogZGF0ZX1cbmVuZFxubGV0IGVtYmVkX291dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4gKHg6IE91dmVydHVyZURyb2l0c1JldHJhaXRlSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIk91dmVydHVyZURyb2l0c1JldHJhaXRlX2luXCJdLFxuICBbKFwiZGF0ZV9uYWlzc2FuY2VfYXNzdXLDqV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5PdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZUluLmRhdGVfbmFpc3NhbmNlX2Fzc3VyZV9pbildKVxuXG5cbm1vZHVsZSBJbXBheWVEZXBlbnNlTG9nZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbW9kZV9vY2N1cGF0aW9uX2luOiBNb2RlT2NjdXBhdGlvbi50O1xuICAgIGFpZGVfdmVyc2VlX2luOiBWZXJzZW1lbnRBLnQ7XG4gICAgbW9udGFudF9hcGxfaW46IG1vbmV5O1xuICAgIG1vbnRhbnRfY2hhcmdlc19pbjogbW9uZXk7XG4gICAgZGVwZW5zZV9sb2dlbWVudF9pbjogRGVwZW5zZUxvZ2VtZW50LnQ7XG4gICAgbW9udGFudF9kZXR0ZV9pbjogbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4gKHg6IEltcGF5ZURlcGVuc2VMb2dlbWVudEluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJJbXBhecOpRMOpcGVuc2VMb2dlbWVudF9pblwiXSxcbiAgWyhcIm1vZGVfb2NjdXBhdGlvbl9pblwiLCBlbWJlZF9tb2RlX29jY3VwYXRpb25cbiAgICB4LkltcGF5ZURlcGVuc2VMb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbik7XG4gICAgKFwiYWlkZV92ZXJzw6llX2luXCIsIGVtYmVkX3ZlcnNlbWVudF9hXG4gICAgeC5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5haWRlX3ZlcnNlZV9pbik7XG4gICAgKFwibW9udGFudF9hcGxfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkltcGF5ZURlcGVuc2VMb2dlbWVudEluLm1vbnRhbnRfYXBsX2luKTtcbiAgICAoXCJtb250YW50X2NoYXJnZXNfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkltcGF5ZURlcGVuc2VMb2dlbWVudEluLm1vbnRhbnRfY2hhcmdlc19pbik7XG4gICAgKFwiZMOpcGVuc2VfbG9nZW1lbnRfaW5cIiwgZW1iZWRfZGVwZW5zZV9sb2dlbWVudFxuICAgIHguSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4uZGVwZW5zZV9sb2dlbWVudF9pbik7XG4gICAgKFwibW9udGFudF9kZXR0ZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4ubW9udGFudF9kZXR0ZV9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1lbmFnZV9pbjogTWVuYWdlLnQ7XG4gICAgZGVtYW5kZXVyX2luOiBEZW1hbmRldXIudDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW46IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gKHg6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudF9pblwiXSxcbiAgWyhcIm3DqW5hZ2VfaW5cIiwgZW1iZWRfbWVuYWdlXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4ubWVuYWdlX2luKTtcbiAgICAoXCJkZW1hbmRldXJfaW5cIiwgZW1iZWRfZGVtYW5kZXVyXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4uZGVtYW5kZXVyX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbWVuYWdlX2luOiBNZW5hZ2UudDtcbiAgICBkZW1hbmRldXJfaW46IERlbWFuZGV1ci50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgcmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pbjogbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiAoeDogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llX2luXCJdLFxuICBbKFwibcOpbmFnZV9pblwiLCBlbWJlZF9tZW5hZ2VcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlSW4ubWVuYWdlX2luKTtcbiAgICAoXCJkZW1hbmRldXJfaW5cIiwgZW1iZWRfZGVtYW5kZXVyXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLmRlbWFuZGV1cl9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcInJlc3NvdXJjZXNfbcOpbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLnJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW4pXSlcblxuXG5tb2R1bGUgQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luID0gc3RydWN0XG4gIHR5cGUgdCA9IHtkYXRlX2NvdXJhbnRlX2luOiBkYXRlfVxuZW5kXG5sZXQgZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiAoeDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzX2luXCJdLFxuICBbKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5CYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbildKVxuXG5cbm1vZHVsZSBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfbmFpc3NhbmNlX2luOiBkYXRlO1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgYW5uZWVzX2luOiBkdXJhdGlvblxuICB9XG5lbmRcbmxldCBlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gKHg6IFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiVsOpcmlmaWNhdGlvbsOCZ2VJbmbDqXJpZXVyT3XDiWdhbMOAX2luXCJdLFxuICBbKFwiZGF0ZV9uYWlzc2FuY2VfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfbmFpc3NhbmNlX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJhbm7DqWVzX2luXCIsIGVtYmVkX2R1cmF0aW9uXG4gICAgeC5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uYW5uZWVzX2luKV0pXG5cblxubW9kdWxlIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9uYWlzc2FuY2VfaW46IGRhdGU7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBhbm5lZXNfaW46IGR1cmF0aW9uXG4gIH1cbmVuZFxubGV0IGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gKHg6IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BfaW5cIl0sXG4gIFsoXCJkYXRlX25haXNzYW5jZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uZGF0ZV9uYWlzc2FuY2VfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcImFubsOpZXNfaW5cIiwgZW1iZWRfZHVyYXRpb24geC5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uYW5uZWVzX2luKV0pXG5cblxubW9kdWxlIFNtaWNJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTsgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudH1cbmVuZFxubGV0IGVtYmVkX3NtaWNfaW4gKHg6IFNtaWNJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPSBTdHJ1Y3QoW1wiU21pY19pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguU21pY0luLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlIHguU21pY0luLnJlc2lkZW5jZV9pbildKVxuXG5cbm1vZHVsZSBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIHByZXN0YXRpb25fY291cmFudGVfaW46IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudDtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50O1xuICAgIGFnZV9sNTEyXzNfMl9pbjogdW5pdCAtPiBkdXJhdGlvblxuICB9XG5lbmRcbmxldCBlbWJlZF9lbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luICh4OiBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzX2luXCJdLFxuICBbKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcInByZXN0YXRpb25fY291cmFudGVfaW5cIiwgZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gICAgeC5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnByZXN0YXRpb25fY291cmFudGVfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlXG4gICAgeC5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbik7XG4gICAgKFwiw6JnZV9sNTEyXzNfMl9pblwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4uYWdlX2w1MTJfM18yX2luKV0pXG5cblxuXG5cbmxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IChjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luOiBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi50KSA6IENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID1cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5Db250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBleG9uZXJlX2NzZ186IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJleG9uw6lyw6lfY3NnXCJdXG4gICAgKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01NTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTU2OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsIGRlcyBjb250cmlidXRpb25zIHNvY2lhbGVzIHMnYXBwbGlxdWFudCBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NTY7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzc7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDEzNi0xLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IERlIGxhIGNvbnRyaWJ1dGlvbiBzb2NpYWxlIHN1ciBsZXMgcmV2ZW51cyBkJ2FjdGl2aXTDqSBldCBzdXIgbGVzIHJldmVudXMgZGUgcmVtcGxhY2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA2IDogQ29udHJpYnV0aW9uIHNvY2lhbGUgZ8OpbsOpcmFsaXPDqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSTogVGl0cmUgSUlJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIHJlbGF0aXZlcyBhdSBmaW5hbmNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTU2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU1NjsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTU2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU1NjsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0YXV4X2NyZHNfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwidGF1eF9jcmRzXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01NTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTU1OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsIGRlcyBjb250cmlidXRpb25zIHNvY2lhbGVzIHMnYXBwbGlxdWFudCBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXV0cmVzX3NvdXJjZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTkwOyBzdGFydF9jb2x1bW49Mzk7IGVuZF9saW5lPTE5MDsgZW5kX2NvbHVtbj02ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IERlcyBjb250cmlidXRpb25zIHBvdXIgbGUgcmVtYm91cnNlbWVudCBkZSBsYSBkZXR0ZSBzb2NpYWxlLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk9yZG9ubmFuY2UgbsKwIDk2LTUwIGR1IDI0IGphbnZpZXIgMTk5NiByZWxhdGl2ZSBhdSByZW1ib3Vyc2VtZW50IGRlIGxhIGRldHRlIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNVwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01NTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTU1OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsIGRlcyBjb250cmlidXRpb25zIHNvY2lhbGVzIHMnYXBwbGlxdWFudCBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIm1vbnRhbnRcIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU1ODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01NTg7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXV0cmVzX3NvdXJjZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBEZXMgY29udHJpYnV0aW9ucyBwb3VyIGxlIHJlbWJvdXJzZW1lbnQgZGUgbGEgZGV0dGUgc29jaWFsZS5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk9yZG9ubmFuY2UgbsKwIDk2LTUwIGR1IDI0IGphbnZpZXIgMTk5NiByZWxhdGl2ZSBhdSByZW1ib3Vyc2VtZW50IGRlIGxhIGRldHRlIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICg5KSAoMSkpKSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG9fbXVsdF9tb25fcmF0IGFpZGVfZmluYWxlXyB0YXV4X2NyZHNfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTU1ODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01NTg7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTU4OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTU1ODsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKHRyeSBleG9uZXJlX2NzZ18gd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU2OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IERlcyBjb250cmlidXRpb25zIHBvdXIgbGUgcmVtYm91cnNlbWVudCBkZSBsYSBkZXR0ZSBzb2NpYWxlLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiT3Jkb25uYW5jZSBuwrAgOTYtNTAgZHUgMjQgamFudmllciAxOTk2IHJlbGF0aXZlIGF1IHJlbWJvdXJzZW1lbnQgZGUgbGEgZGV0dGUgc29jaWFsZVwiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU2OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IERlcyBjb250cmlidXRpb25zIHBvdXIgbGUgcmVtYm91cnNlbWVudCBkZSBsYSBkZXR0ZSBzb2NpYWxlLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiT3Jkb25uYW5jZSBuwrAgOTYtNTAgZHUgMjQgamFudmllciAxOTk2IHJlbGF0aXZlIGF1IHJlbWJvdXJzZW1lbnQgZGUgbGEgZGV0dGUgc29jaWFsZVwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTYzOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTYzOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NjM7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NjM7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSBpblxuICB7Q29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm1vbnRhbnQgPSBtb250YW50X31cblxubGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSAoY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luOiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi50KSA6IENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZS50ID1cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luLkNhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luLkNhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiBpblxuICBsZXQgY29uZGl0aW9uXzJfZHVfODMyXzI1XzogYm9vbCA9IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbi5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gaW5cbiAgbGV0IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiBkZWNpbWFsID0gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luLkNhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4gaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNlwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY1NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02NTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjcyMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNzIwOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgY29uZGl0aW9uXzJfZHVfODMyXzI1XyB0aGVuIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NjMyXCIpXG4gICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ1NTdcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY1NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02NTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYW5jaGVzX3JldmVudXNfZDgzMl8yNl86IFRyYW5jaGVSZXZlbnUudCBhcnJheSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIjsgXCJ0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX3RyYW5jaGVfcmV2ZW51KSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY1Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02NTI7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NTI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NTI7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjg0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNjg0OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8pKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgW3woe1RyYW5jaGVSZXZlbnUuaGF1dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQyMzAzXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIil9KTtcbiAgICAgICAgICAgICAgICAgICAgICAoe1RyYW5jaGVSZXZlbnUuaGF1dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA0NzYxXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNDIzMDNcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI0XCIpfSk7XG4gICAgICAgICAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoTGltaXRlVHJhbmNoZS5SZXZlbnUgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2Mjk4NVwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA0NzYxXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LnRhdXggPSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjIwOFwiKX0pO1xuICAgICAgICAgICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGUuUmV2ZW51IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDk1MDVcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LmJhcyA9IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2Mjk4NVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yMzJcIil9KTtcbiAgICAgICAgICAgICAgICAgICAgICAoe1RyYW5jaGVSZXZlbnUuaGF1dCA9IChMaW1pdGVUcmFuY2hlLkluZmluaSAoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5NTA1XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LnRhdXggPSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjMyOFwiKX0pfF0pKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjM0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI2MzQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndF9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIFt8KHtUcmFuY2hlUmV2ZW51LmhhdXQgPVxuICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGUuUmV2ZW51IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTQ4MTBcIikpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDRcIil9KTtcbiAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPVxuICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGUuUmV2ZW51IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjc4NzFcIikpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk0ODEwXCIpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMDRcIil9KTtcbiAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPVxuICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGUuUmV2ZW51IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODk2MThcIikpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY3ODcxXCIpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yMTZcIil9KTtcbiAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPVxuICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGUuUmV2ZW51IChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MzU3NDRcIikpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg5NjE4XCIpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yNjRcIil9KTtcbiAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPVxuICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGUuUmV2ZW51IChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2MzMxMjlcIikpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM1NzQ0XCIpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4zMlwiKX0pO1xuICAgICAgICAgICAgICAoe1RyYW5jaGVSZXZlbnUuaGF1dCA9IChMaW1pdGVUcmFuY2hlLkluZmluaSAoKSk7XG4gICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LmJhcyA9IChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2MzMxMjlcIik7XG4gICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LnRhdXggPSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjQ4XCIpfSl8XSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjUyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY1MjsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhbmNoZXNfcmV2ZW51c19kODMyXzI2X211bHRpcGxpZWVzXzogVHJhbmNoZVJldmVudURlY2ltYWwudCBhcnJheSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIjtcbiAgICAgIFwidHJhbmNoZXNfcmV2ZW51c19kODMyXzI2X211bHRpcGxpw6llc1wiXVxuICAgIChlbWJlZF9hcnJheSAoZW1iZWRfdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02NTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjUzOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDA0Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MDQ2OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX21hcFxuICAgICAgICAgICAgICAoZnVuICh0cmFuY2hlXzogVHJhbmNoZVJldmVudS50KSAtPlxuICAgICAgICAgICAgICAgICB7VHJhbmNoZVJldmVudURlY2ltYWwuaGF1dCA9XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCAodHJhbmNoZV8uVHJhbmNoZVJldmVudS5oYXV0KVxuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBMaW1pdGVUcmFuY2hlLlJldmVudSB0cmFuY2hlX2hhdXRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGVEZWNpbWFsLlJldmVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAob190b3JhdF9tb24gdHJhbmNoZV9oYXV0XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1XykpXG4gICAgICAgICAgICAgICAgICAgICB8IExpbWl0ZVRyYW5jaGUuSW5maW5pIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAoTGltaXRlVHJhbmNoZURlY2ltYWwuSW5maW5pICgpKSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnVEZWNpbWFsLmJhcyA9XG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfbW9uICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51LmJhcykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV8pO1xuICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51RGVjaW1hbC50YXV4ID0gKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnUudGF1eCl9KVxuICAgICAgICAgICAgICB0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02NTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjUzOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCI7IFwibW9udGFudFwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02NTc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjU3OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjU3OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjU3OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDk3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgKGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfIDogZGVjaW1hbCA9XG4gICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKVxuICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAob190b21vbmV5X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19yZWR1Y2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoc3VtMV86IGRlY2ltYWwpIChzdW0yXzogZGVjaW1hbCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfcmF0X3JhdCBzdW0xXyBzdW0yXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbWFwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHRyYW5jaGVfOiBUcmFuY2hlUmV2ZW51RGVjaW1hbC50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuaGF1dClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExpbWl0ZVRyYW5jaGVEZWNpbWFsLlJldmVudSB0cmFuY2hlX2hhdXRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbmNoZV9oYXV0XykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbmNoZV9oYXV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLmJhcykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwudGF1eCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC50YXV4KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGltaXRlVHJhbmNoZURlY2ltYWwuSW5maW5pIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC5iYXMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLnRhdXgpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5jaGVzX3JldmVudXNfZDgzMl8yNl9tdWx0aXBsaWVlc18pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9tb24gbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI2XykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDA1OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MDU5OyBlbmRfY29sdW1uPTIxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAobGV0IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18gOiBkZWNpbWFsID1cbiAgICAgICAgICAgICAgIChvX3RvcmF0X21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIChvX3RvbW9uZXlfcmF0XG4gICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgKG9fYWRkX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgIChvX3JlZHVjZVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoc3VtMV86IGRlY2ltYWwpIChzdW0yXzogZGVjaW1hbCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX3JhdF9yYXQgc3VtMV8gc3VtMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fbWFwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuICh0cmFuY2hlXzogVHJhbmNoZVJldmVudURlY2ltYWwudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfcmF0X3JhdCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC5iYXMpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC5oYXV0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMaW1pdGVUcmFuY2hlRGVjaW1hbC5SZXZlbnUgdHJhbmNoZV9oYXV0XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuY2hlX2hhdXRfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXQgdHJhbmNoZV9oYXV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC5iYXMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC50YXV4KSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLmJhcykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLnRhdXgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGltaXRlVHJhbmNoZURlY2ltYWwuSW5maW5pIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwudGF1eCkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5jaGVzX3JldmVudXNfZDgzMl8yNl9tdWx0aXBsaWVlc18pKVxuICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9tb24gbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI2XylcbiAgICAgICAgICAgICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfKSkgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02NTc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjU3OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUubW9udGFudCA9IG1vbnRhbnRffVxuXG5sZXQgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyIChjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW46IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4udCkgOiBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llci50ID1cbiAgbGV0IGNvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogdW5pdCAtPiBib29sID0gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY2NTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02NjU7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT4gbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NjU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjY1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjY1OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjY1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02NjU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjY1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzI1X2Jhc2VfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIjsgXCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X2Jhc2VcIl1cbiAgICAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY2Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02Njc7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Njc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Njc7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMDc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwMDc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS4yXCIpXG4gICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLjVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjIuNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjMuXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMy43XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI0LjNcIikpKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5MTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzkxMzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEuNFwiKVxuICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLjhcIikpIGVsc2VcbiAgICAgICAgICAgICAgKCBpZiAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKVxuICAgICAgICAgICAgICAgICB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjIuNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSlcbiAgICAgICAgICAgICAgICAgICAgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIzLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiM1wiKSkgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIzLjdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI0LjNcIikpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY2Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02Njc7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfbWFqb3JhdGlvbl86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llclwiOyBcIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfbWFqb3JhdGlvblwiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjY4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY2ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY2ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY2ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Njg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY2ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU1MjI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTUyOTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjEtOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9uIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMjQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwMjQ7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTI4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5Mjg7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19ndF9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjAuNVwiKVxuICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkpKSBlbHNlXG4gICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02Njg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjY4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCI7IFwibl9ub21icmVfcGFydHNfZDgzMl8yNVwiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjcwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY3MDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5MzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzkzMzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfcmF0X3JhdCBuX25vbWJyZV9wYXJ0c19kODMyXzI1X2Jhc2VfXG4gICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfbWFqb3JhdGlvbl8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY3MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02NzA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0NhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUgPVxuICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1X31cblxubGV0IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZSAoY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luOiBDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZUluLnQpIDogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzExXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJuX25vbWJyZV9wYXJ0c19kODMyXzExXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03MzU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzM1OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMyNTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzI1NzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS40XCIpXG4gICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEuOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAoIGlmIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpXG4gICAgICAgICAgICAgICAgIHRoZW4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMi41XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKVxuICAgICAgICAgICAgICAgICAgICB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjMuXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzXCIpKSB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjMuN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNFwiKSkgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCI0LjNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCI0LjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjAuNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkpKSkpKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MzU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzM1OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7Q2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUubl9ub21icmVfcGFydHNfZDgzMl8xMSA9XG4gICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFffVxuXG5sZXQgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSAob3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbjogT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVJbi50KSA6IE91dmVydHVyZURyb2l0c1JldHJhaXRlLnQgPVxuICBsZXQgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlXzogZGF0ZSA9IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4uT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVJbi5kYXRlX25haXNzYW5jZV9hc3N1cmVfaW4gaW5cbiAgbGV0IGFnZV9vdXZlcnR1cmVfZHJvaXRfOiBkdXJhdGlvbiA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIk91dmVydHVyZURyb2l0c1JldHJhaXRlXCI7IFwiw6JnZV9vdXZlcnR1cmVfZHJvaXRcIl0gKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTExODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTE4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiRGF0ZSBkJ291dmVydHVyZSBkZXMgZHJvaXRzIMOgIGxhIHJldHJhaXRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTExODsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkRhdGUgZCdvdXZlcnR1cmUgZGVzIGRyb2l0cyDDoCBsYSByZXRyYWl0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTk7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDE2MS0xNy0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJhZ3JhcGhlIDEgOiBJbmZvcm1hdGlvbiBldCBzaW1wbGlmaWNhdGlvbiBkZXMgZMOpbWFyY2hlcyBkZXMgYXNzdXLDqXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUk6IFRpdHJlIElJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyByZWxhdGl2ZXMgYXUgZmluYW5jZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX25haXNzYW5jZV9hc3N1cmVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5NTUpICgxKSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGR1cmF0aW9uX29mX251bWJlcnMgKDYyKSAoMCkgKDApKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTg7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTE4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJEYXRlIGQnb3V2ZXJ0dXJlIGRlcyBkcm9pdHMgw6AgbGEgcmV0cmFpdGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX3PDqWN1cml0w6lfc29jaWFsZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI1Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjU2OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQxNjEtMi0xLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcmFncmFwaGUgMiA6IE91dmVydHVyZSBkdSBkcm9pdCBldCBsaXF1aWRhdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IELDqW7DqWZpY2lhaXJlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIEkgOiBHw6luw6lyYWxpdMOpcyAtIERpc3Bvc2l0aW9ucyBjb21tdW5lcyDDoCB0b3V0IG91IHBhcnRpZSBkZXMgcsOpZ2ltZXMgZGUgYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTUxKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkdXJhdGlvbl9vZl9udW1iZXJzICg2MCkgKDApICgwKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTE4OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTExODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiRGF0ZSBkJ291dmVydHVyZSBkZXMgZHJvaXRzIMOgIGxhIHJldHJhaXRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2NzsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEMTYxLTItMS05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJhZ3JhcGhlIDIgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBJIDogR8OpbsOpcmFsaXTDqXMgLSBEaXNwb3NpdGlvbnMgY29tbXVuZXMgw6AgdG91dCBvdSBwYXJ0aWUgZGVzIHLDqWdpbWVzIGRlIGJhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTUxKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTUxKSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX2FkZF9kdXJfZHVyIChkdXJhdGlvbl9vZl9udW1iZXJzICg2MCkgKDApICgwKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMCkgKDQpICgwKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTExODsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkRhdGUgZCdvdXZlcnR1cmUgZGVzIGRyb2l0cyDDoCBsYSByZXRyYWl0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjc2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNzY7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDE2MS0yLTEtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAyIDogT3V2ZXJ0dXJlIGR1IGRyb2l0IGV0IGxpcXVpZGF0aW9uLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDQgOiBBc3N1cmFuY2UgdmllaWxsZXNzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQsOpbsOpZmljaWFpcmVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9ucyBldCBhdXggc29pbnMgLSBDb250csO0bGUgbcOpZGljYWwgLSBUdXRlbGxlIGF1eCBwcmVzdGF0aW9ucyBzb2NpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgSSA6IEfDqW7DqXJhbGl0w6lzIC0gRGlzcG9zaXRpb25zIGNvbW11bmVzIMOgIHRvdXQgb3UgcGFydGllIGRlcyByw6lnaW1lcyBkZSBiYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZXEgKG9fZ2V0WWVhciBkYXRlX25haXNzYW5jZV9hc3N1cmVfKVxuICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxOTUyXCIpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fYWRkX2R1cl9kdXIgKGR1cmF0aW9uX29mX251bWJlcnMgKDYwKSAoMCkgKDApKVxuICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgwKSAoOSkgKDApKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTE4OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTExODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiRGF0ZSBkJ291dmVydHVyZSBkZXMgZHJvaXRzIMOgIGxhIHJldHJhaXRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4NTsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEMTYxLTItMS05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJhZ3JhcGhlIDIgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBJIDogR8OpbsOpcmFsaXTDqXMgLSBEaXNwb3NpdGlvbnMgY29tbXVuZXMgw6AgdG91dCBvdSBwYXJ0aWUgZGVzIHLDqWdpbWVzIGRlIGJhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19lcSAob19nZXRZZWFyIGRhdGVfbmFpc3NhbmNlX2Fzc3VyZV8pXG4gICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjE5NTNcIikpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19hZGRfZHVyX2R1ciAoZHVyYXRpb25fb2ZfbnVtYmVycyAoNjEpICgwKSAoMCkpXG4gICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDApICgyKSAoMCkpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTg7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTE4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJEYXRlIGQnb3V2ZXJ0dXJlIGRlcyBkcm9pdHMgw6AgbGEgcmV0cmFpdGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX3PDqWN1cml0w6lfc29jaWFsZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI5NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjk0OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQxNjEtMi0xLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcmFncmFwaGUgMiA6IE91dmVydHVyZSBkdSBkcm9pdCBldCBsaXF1aWRhdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IELDqW7DqWZpY2lhaXJlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIEkgOiBHw6luw6lyYWxpdMOpcyAtIERpc3Bvc2l0aW9ucyBjb21tdW5lcyDDoCB0b3V0IG91IHBhcnRpZSBkZXMgcsOpZ2ltZXMgZGUgYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2VxIChvX2dldFllYXIgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlXylcbiAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMTk1NFwiKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX2FkZF9kdXJfZHVyIChkdXJhdGlvbl9vZl9udW1iZXJzICg2MSkgKDApICgwKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMCkgKDcpICgwKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTExODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkRhdGUgZCdvdXZlcnR1cmUgZGVzIGRyb2l0cyDDoCBsYSByZXRyYWl0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7T3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGUuYWdlX291dmVydHVyZV9kcm9pdCA9IGFnZV9vdXZlcnR1cmVfZHJvaXRffVxuXG5sZXQgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luOiBJbXBheWVEZXBlbnNlTG9nZW1lbnRJbi50KSA6IEltcGF5ZURlcGVuc2VMb2dlbWVudC50ID1cbiAgbGV0IG1vZGVfb2NjdXBhdGlvbl86IE1vZGVPY2N1cGF0aW9uLnQgPSBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb2RlX29jY3VwYXRpb25faW4gaW5cbiAgbGV0IGFpZGVfdmVyc2VlXzogVmVyc2VtZW50QS50ID0gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4uSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4uYWlkZV92ZXJzZWVfaW4gaW5cbiAgbGV0IG1vbnRhbnRfYXBsXzogbW9uZXkgPSBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb250YW50X2FwbF9pbiBpblxuICBsZXQgbW9udGFudF9jaGFyZ2VzXzogbW9uZXkgPSBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb250YW50X2NoYXJnZXNfaW4gaW5cbiAgbGV0IGRlcGVuc2VfbG9nZW1lbnRfOiBEZXBlbnNlTG9nZW1lbnQudCA9IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luLkltcGF5ZURlcGVuc2VMb2dlbWVudEluLmRlcGVuc2VfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IG1vbnRhbnRfZGV0dGVfOiBtb25leSA9IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luLkltcGF5ZURlcGVuc2VMb2dlbWVudEluLm1vbnRhbnRfZGV0dGVfaW4gaW5cbiAgbGV0IG1vZGVfb2NjdXBhdGlvbl9pbXBheWVfOiBNb2RlT2NjdXBhdGlvbkltcGF5ZS50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiSW1wYXnDqUTDqXBlbnNlTG9nZW1lbnRcIjsgXCJtb2RlX29jY3VwYXRpb25faW1wYXnDqVwiXVxuICAgIChlbWJlZF9tb2RlX29jY3VwYXRpb25faW1wYXllKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTM0OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM0Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMzQyOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogSW1wYXnDqXMgZGUgZMOpcGVuc2VzIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBtb2RlX29jY3VwYXRpb25fXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgKE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyICgpKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgIChNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0ICgpKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAoTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCAoKSlcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgKE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyICgpKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgKE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyICgpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTEzNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTM0OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBkZXBlbnNlX2xvZ2VtZW50X2JydXRlXzogRGVwZW5zZUxvZ2VtZW50LnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJJbXBhecOpRMOpcGVuc2VMb2dlbWVudFwiOyBcImTDqXBlbnNlX2xvZ2VtZW50X2JydXRlXCJdXG4gICAgKGVtYmVkX2RlcGVuc2VfbG9nZW1lbnQpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTM1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMzU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTM1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzNTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzNTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMxMDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjMxMDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0IF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlcGVuc2VfbG9nZW1lbnRfKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjE0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjIxNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNldWlscyBkZSBjb25zdGl0dXRpb24gZCd1biBpbXBhecOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllX1xuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlcGVuc2VfbG9nZW1lbnRfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTM1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMzU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGRlcGVuc2VfbG9nZW1lbnRfbmV0dGVfOiBEZXBlbnNlTG9nZW1lbnQudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkltcGF5w6lEw6lwZW5zZUxvZ2VtZW50XCI7IFwiZMOpcGVuc2VfbG9nZW1lbnRfbmV0dGVcIl1cbiAgICAoZW1iZWRfZGVwZW5zZV9sb2dlbWVudCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExMzY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTEzNjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMzY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTM2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjIyMzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyMjM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyNC0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllTG95ZXIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBkZXBlbnNlX2xvZ2VtZW50X2JydXRlX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LlRvdGFsQW5udWVsRWNoZWFuY2VzIHRvdGFsXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyB0b3RhbF8pXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50Lk1lbnN1YWxpdGUgbWVuc3VhbGl0ZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChEZXBlbnNlTG9nZW1lbnQuTWVuc3VhbGl0ZSBtZW5zdWFsaXRlXylcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuTG95ZXIgbW9udGFudF9sb3llcl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChEZXBlbnNlTG9nZW1lbnQuTG95ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIG1vbnRhbnRfbG95ZXJfIG1vbnRhbnRfYXBsXykpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMzY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTM2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMxOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzMTk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyNC0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllTG95ZXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0IF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBkZXBlbnNlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LlRvdGFsQW5udWVsRWNoZWFuY2VzIHRvdGFsX2VjaGVhbmNlc18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChEZXBlbnNlTG9nZW1lbnQuVG90YWxBbm51ZWxFY2hlYW5jZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIHRvdGFsX2VjaGVhbmNlc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBtb250YW50X2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5NZW5zdWFsaXRlIG1lbnN1YWxpdGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoRGVwZW5zZUxvZ2VtZW50Lk1lbnN1YWxpdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIG1lbnN1YWxpdGVfIG1vbnRhbnRfYXBsXykpXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LkxveWVyIGxveWVyXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKERlcGVuc2VMb2dlbWVudC5Mb3llciBsb3llcl8pKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMzY7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHNldWlsX2ltcGF5ZV9kZXBlbnNlX2RlX2xvZ2VtZW50XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJJbXBhecOpRMOpcGVuc2VMb2dlbWVudFwiOyBcInNldWlsX2ltcGF5w6lfZMOpcGVuc2VfZGVfbG9nZW1lbnRcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTMzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTMzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzMzsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxODQ7IHN0YXJ0X2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTg0OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2V1aWxzIGRlIGNvbnN0aXR1dGlvbiBkJ3VuIGltcGF5w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogSW1wYXnDqXMgZGUgZMOpcGVuc2VzIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYWlkZV92ZXJzZWVfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuQmFpbGxldXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJlbmVmaWNpYWlyZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2VtZW50QS5FdGFibGlzc2VtZW50SGFiaWxpdGUgXyAtPiBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggZGVwZW5zZV9sb2dlbWVudF9icnV0ZV9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5NZW5zdWFsaXRlIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LkxveWVyIGxveWVyX2JydXRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGxveWVyX2JydXRfIG1vbnRhbnRfY2hhcmdlc18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLlwiKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjAwOyBzdGFydF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjIwMDsgZW5kX2NvbHVtbj01MTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNldWlscyBkZSBjb25zdGl0dXRpb24gZCd1biBpbXBhecOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllTG95ZXIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGFpZGVfdmVyc2VlX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJhaWxsZXVyIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJlbmVmaWNpYWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuRXRhYmxpc3NlbWVudEhhYmlsaXRlIF8gLT4gZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIGRlcGVuc2VfbG9nZW1lbnRfbmV0dGVfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuVG90YWxBbm51ZWxFY2hlYW5jZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuTWVuc3VhbGl0ZSBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Mb3llciBsb3llcl9uZXRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGxveWVyX25ldF8gbW9udGFudF9jaGFyZ2VzXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjIuXCIpKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTMzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzMzsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyNjY7IHN0YXJ0X2NvbHVtbj03O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNjY7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyNC0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9pbXBheWVfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBhaWRlX3ZlcnNlZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2VtZW50QS5CYWlsbGV1ciBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuQmVuZWZpY2lhaXJlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkV0YWJsaXNzZW1lbnRIYWJpbGl0ZSBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBkZXBlbnNlX2xvZ2VtZW50X2JydXRlX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LlRvdGFsQW5udWVsRWNoZWFuY2VzIGVjaGVhbmNlX3ByZXRfYnJ1dGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgZWNoZWFuY2VfcHJldF9icnV0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50Lk1lbnN1YWxpdGUgbWVuc3VhbGl0ZV9icnV0ZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBtZW5zdWFsaXRlX2JydXRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMi5cIikpXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LkxveWVyIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjk0OyBzdGFydF9jb2x1bW49NztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjk0OyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2V1aWxzIGRlIGNvbnN0aXR1dGlvbiBkJ3VuIGltcGF5w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogSW1wYXnDqXMgZGUgZMOpcGVuc2VzIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYWlkZV92ZXJzZWVfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuQmFpbGxldXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJlbmVmaWNpYWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuRXRhYmxpc3NlbWVudEhhYmlsaXRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggZGVwZW5zZV9sb2dlbWVudF9uZXR0ZV9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyBlY2hlYW5jZV9wcmV0X25ldHRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGVjaGVhbmNlX3ByZXRfbmV0dGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5NZW5zdWFsaXRlIG1lbnN1YWxpdGVfbmV0dGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgbWVuc3VhbGl0ZV9uZXR0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjIuXCIpKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Mb3llciBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTMzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfaW1wYXllXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJJbXBhecOpRMOpcGVuc2VMb2dlbWVudFwiOyBcIm1vbnRhbnRfaW1wYXnDqVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTM4OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExMzg7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTM4OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzODsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzODsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzODsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI0Mjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjI0MjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0IF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vbiBtb250YW50X2RldHRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V1aWxfaW1wYXllX2RlcGVuc2VfZGVfbG9nZW1lbnRfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2RldHRlXyBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTc5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE3OTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNldWlscyBkZSBjb25zdGl0dXRpb24gZCd1biBpbXBhecOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllX1xuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uIG1vbnRhbnRfZGV0dGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgc2V1aWxfaW1wYXllX2RlcGVuc2VfZGVfbG9nZW1lbnRfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9kZXR0ZV8gZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTEzODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTM4OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtJbXBheWVEZXBlbnNlTG9nZW1lbnQubW9udGFudF9pbXBheWUgPSBtb250YW50X2ltcGF5ZV99XG5cbmxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIChiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luOiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBtb250YW50XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudFwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkluc3RydWN0aW9uIG1pbmlzdMOpcmllbGxlIE7CsERTUy9TRDJCLzIwMTkvNjUgZHUgMjUgbWFycyAyMDE5IHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBhdnJpbCAyMDE5IGRlcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICg0KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTMxNlwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG5vIERTUy9TRDJCLzIwMjAvMzMgZHUgMTggZsOpdnJpZXIgMjAyMCByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAyMCBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgZGFucyBsZSBkw6lwYXJ0ZW1lbnQgZGUgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICg0KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTQ0MFwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY5OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG7CsERTUy8yQi8yMDIxLzY1IGR1IDE5IG1hcnMgMjAyMSByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAyMSBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgbGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgZGFucyBsZSBkw6lwYXJ0ZW1lbnQgZGUgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg0KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTQ4MVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG7CsERTUy8yQi8yMDIyLzgyIGR1IDI4IG1hcnMgMjAyMiByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAyMiBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgbGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgZGFucyBsZSBkw6lwYXJ0ZW1lbnQgZGUgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDQpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDIyMjhcIikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX0pIGluXG4gIHtCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnQgPSBtb250YW50X31cblxubGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4udCkgOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQgPVxuICBsZXQgZGF0ZV9uYWlzc2FuY2VfOiBkYXRlID0gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX25haXNzYW5jZV9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGFubmVlc186IGR1cmF0aW9uID0gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5hbm5lZXNfaW4gaW5cbiAgbGV0IGVzdF9pbmZlcmlldXJfb3VfZWdhbF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIjsgXCJlc3RfaW5mw6lyaWV1cl9vdV/DqWdhbFwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0yMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0yMjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0gKFxuICAgICAgICAgW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fbHRlX2RhdF9kYXQgKG9fYWRkX2RhdF9kdXIgUm91bmRVcCBkYXRlX25haXNzYW5jZV8gYW5uZWVzXylcbiAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy8uLi9wcm9sb2d1ZV9mcmFuY2UvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MjI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MjI7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiOyBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19KSkpKSBpblxuICB7VmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS5lc3RfaW5mZXJpZXVyX291X2VnYWwgPVxuICAgICBlc3RfaW5mZXJpZXVyX291X2VnYWxffVxuXG5sZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbjogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLnQpIDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50ID1cbiAgbGV0IGRhdGVfbmFpc3NhbmNlXzogZGF0ZSA9IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfbmFpc3NhbmNlX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGFubmVlc186IGR1cmF0aW9uID0gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uYW5uZWVzX2luIGluXG4gIGxldCBlc3Rfc3VwZXJpZXVyXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCI7IFwiZXN0X3N1cMOpcmlldXJcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSAoXG4gICAgICAgICBbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM2OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19ndF9kYXRfZGF0IChvX2FkZF9kYXRfZHVyIFJvdW5kVXAgZGF0ZV9uYWlzc2FuY2VfIGFubmVlc18pXG4gICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjsgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkpKSkgaW5cbiAge1ZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEuZXN0X3N1cGVyaWV1ciA9IGVzdF9zdXBlcmlldXJffVxuXG5sZXQgc21pYyAoc21pY19pbjogU21pY0luLnQpIDogU21pYy50ID1cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gc21pY19pbi5TbWljSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBzbWljX2luLlNtaWNJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGJydXRfaG9yYWlyZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiU21pY1wiOyBcImJydXRfaG9yYWlyZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE4LTExNzMgZHUgMTkgZMOpY2VtYnJlIDIwMTggcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAzXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTQ7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE4LTExNzMgZHUgMTkgZMOpY2VtYnJlIDIwMTggcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzU3XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODI7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE5LTEzODcgZHUgMTggZMOpY2VtYnJlIDIwMTkgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDE1XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTM7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE5LTEzODcgZHUgMTggZMOpY2VtYnJlIDIwMTkgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzY2XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjAtMTU5OCBkdSAxNiBkw6ljZW1icmUgMjAyMCBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMjVcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMyOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMC0xNTk4IGR1IDE2IGTDqWNlbWJyZSAyMDIwIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc3NFwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjA7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDIxLTE3NDEgZHUgMjIgZMOpY2VtYnJlIDIwMjEgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDQpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwNTdcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTcyOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMS0xNzQxIGR1IDIyIGTDqWNlbWJyZSAyMDIxIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg0KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzk4XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwMDsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDE5IGF2cmlsIDIwMjIgcmVsYXRpZiBhdSByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg1KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwODVcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjExOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMTkgYXZyaWwgMjAyMiByZWxhdGlmIGF1IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDUpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgxOVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzk7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg4KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMTA3XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI1MDsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDgpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MzVcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjc5OyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMi0xNjA4IGR1IDIyIGTDqWNlbWJyZSAyMDIyIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjExMjdcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI4ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjkwOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMi0xNjA4IGR1IDIyIGTDqWNlbWJyZSAyMDIyIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NTFcIikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiOyBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0pIGluXG4gIHtTbWljLmJydXRfaG9yYWlyZSA9IGJydXRfaG9yYWlyZV99XG5cbmxldCBhcnJvbmRpX2NlbnRhaW5lX3N1cGVyaWV1cmVfIDogbW9uZXkgLT4gbW9uZXkgPVxuICBmdW4gKHJlc3NvdXJjZXNfbWVuYWdlXzogbW9uZXkpIC0+XG4gICAgb19tdWx0X21vbl9yYXRcbiAgICAgIChvX3JvdW5kX21vblxuICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCByZXNzb3VyY2VzX21lbmFnZV8gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMVwiKSlcbiAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0OVwiKSkpIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIilcblxubGV0IHRyYWl0ZW1lbnRfbnVsX3RvdXRfbGVfdGVtcHNfIDogbW9uZXkgLT4gbW9uZXkgPVxuICBmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIlxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW46IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4udCkgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID1cbiAgbGV0IGxveWVyX3ByaW5jaXBhbF9iYXNlXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb3llcl9wcmluY2lwYWxfYmFzZV9pbiBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gaW5cbiAgbGV0IGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc186IGJvb2wgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiBpblxuICBsZXQgem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uem9uZV9pbiBpblxuICBsZXQgbG9nZW1lbnRfZXN0X2NoYW1icmVfOiBib29sID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfZXN0X2NoYW1icmVfaW4gaW5cbiAgbGV0IGFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzXzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luIGluXG4gIGxldCB0eXBlX2FpZGVfOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi50eXBlX2FpZGVfaW4gaW5cbiAgbGV0IGNvbG9jYXRpb25fOiBib29sID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uY29sb2NhdGlvbl9pbiBpblxuICBsZXQgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfOiBtb25leSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luIGluXG4gIGxldCBsb2dlbWVudF9tZXVibGVfZDg0Ml8yXzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBmcmFjdGlvbl9sODMyXzNfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwiZnJhY3Rpb25fbDgzMl8zXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01OTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE4ODc7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjAuOThcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjI5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTYyOTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTYyOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02Mjk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjI5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTYyOTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwiY29udHJpYnV0aW9uc19zb2NpYWxlc1wiO1xuICAgICAgXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdXG4gICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAoe0NvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm1vbnRhbnQgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgyM18xNl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgyM18xNlwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjAwOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI4NTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjAwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwMDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzX2Q4MjNfMTZcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDU7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxODk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE4OTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTA2OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTA2OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzNTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzNTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MjNfMTZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzE2XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYwMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDE7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yOTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mjk4OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCB0eXBlX2FpZGVfXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgIHwgVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgXyAtPlxuICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAwXCIpXG4gICAgICAgICAgICB8IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMDBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDE7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbG95ZXJfcHJpbmNpcGFsX2F2ZWNfcmVkdWN0aW9uX21ldWJsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcImxveWVyX3ByaW5jaXBhbF9hdmVjX3LDqWR1Y3Rpb25fbWV1YmzDqVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01NzQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NTc0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MjE5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMTk7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl8gdGhlblxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgbG95ZXJfcHJpbmNpcGFsX2Jhc2VfXG4gICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjIuXCIpXG4gICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjMuXCIpKSkgZWxzZSBsb3llcl9wcmluY2lwYWxfYmFzZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU3NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT01NzQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGVfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwidGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGVcIl1cbiAgICAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ4NTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDkyOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyOTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIxN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTk0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiN1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwMDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiN1wiKSkpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjA2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzYxMzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjk5XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjE3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE5NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjJcIikpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA2OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzA3NjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI4MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI5OVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjE3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2MlwiKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk5NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDA0OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI4MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjk5XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIxN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE5NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2MlwiKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODgxOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODg4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI4MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyOTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMTdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTk0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2MlwiKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg1OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5MjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyOTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIxN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTk0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjJcIikpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyNTI7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjUyOyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDMxNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIwMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE4NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDAwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSkpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjg7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2ODsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAzMTVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTg1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDAwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjA7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM2MDsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAzMTVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjM4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE4NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTc5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDA2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcjBfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcIm11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcjBcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzODg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzk2OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjAgLSBBcnLDqnTDqSBkdSAzIGphbnZpZXIgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMCBOT1IgOiBMT0dMMTkzNDAwNkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI4NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4NjA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3ODA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTc4ODsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjYyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjcwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTc2OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzI0MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyNDM7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTUyOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUyOTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00ODI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fbG95ZXJfcmVmZXJlbmNlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2xveWVyX3LDqWbDqXJlbmNlXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM3NDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI1LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yODM5OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjUuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzU5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3Njc7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0ODsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCI1LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzMzM7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzMzOyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTI7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI1MjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMlwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzMwMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzMDk7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjc2NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjc3NDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI1LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY5NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzAzOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjUuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NzU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01ODM7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTgyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCI1LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM5ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzk4OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA3OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwNzk7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzE5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMxOTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTk1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk5NTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI1OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwibW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDIyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MzA7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElYIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpIGNvbG9jYXRpb25fKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzX2Q4MjNfMTZfKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNDsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIxOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2N1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2N1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTM0OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdGVfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODEwOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04MTc7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk5OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMDA2OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUzNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTQyOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYxNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYxNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01ODg7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01ODg7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODA1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2MTJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyNzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl8pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM0Nzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzNDc7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNzEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU0MjJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl8pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQyNzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI0Mjc7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1Mzk5XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzX2Q4MjNfMTZfKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzNjY7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzczOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElYIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzY3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc19kODIzXzE2XykpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM5OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjQ2OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4NTM7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4NjA7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzM1OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzQyOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIikgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjkyNTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5MzI7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYyNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0NjE7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDY4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjAgLSBBcnLDqnTDqSBkdSAzIGphbnZpZXIgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMCBOT1IgOiBMT0dMMTkzNDAwNkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkyOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzOTsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl8pKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTEwOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTEwOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NDIyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc19kODIzXzE2XykpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxOTM7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxOTM7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Mzk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc19kODIzXzE2XykpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWJhdHRlbWVudF9mb3JmYWl0YWlyZV9kODIzXzE3XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwiYWJhdHRlbWVudF9mb3JmYWl0YWlyZV9kODIzXzE3XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDMzNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzQ0OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgxODEwMFwiKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTgzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ1ODU7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0N1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJWCA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUyNzIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NTUyMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTAwODAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTIxMTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTU2MzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTkxOTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEwMjcxMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEwNjI2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTA2MjYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE5OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODA1MTAwXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ1OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NjE7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0N1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDg3MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjY5NzcwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MzIyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NTA5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4ODM0MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5MTYzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTQ4ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTgxNjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk4MTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MDY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzE0OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NzQyMDBcIikpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE4NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTk0OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMDEgamFudmllciAyMDIxIC0gQXJyw6p0w6kgZHUgMzEgZMOpY2VtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjEgTk9SIDogTE9HTDIwMjgzNTFBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDI3NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjYxMjIwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2OTkwMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NDMyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3ODU0MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MjgzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODcxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTEzOTAwXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0MzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQ0MDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzU4NDAwXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODk1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjkwMzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3NTg0MDBcIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4MjU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgzMzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc1ODQwMFwiKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjk0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3MDM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0N1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzk2MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2NzMwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2Mzk2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2ODQ5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3Mzg2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3OTM1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODQ4NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTAzMjAwXCIpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ4NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDk0OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjcwOTAwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NDU2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NjQ2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4OTc3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5MzExMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5NjQyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTk3NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5OTc1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9yMF8pKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0ODcwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjk3NzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgzMjIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg1MDkwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg4MzQwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkxNjMwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjk0ODgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5ODE2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk4MTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyMzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3IwXykpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01MzM7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUzMzsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NjgzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjcwOTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgwMDIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgxOTIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg0OTUwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg4MTEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkxMjQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5NDM5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk0MzkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3IwXykpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjQ3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjQ3OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ1ODgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2NTcyMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzgzOTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODAxNTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODMyMjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODYzMTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODkzODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkyNDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI0NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbG95ZXJfcmVmZXJlbmNlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJsb3llcl9yw6lmw6lyZW5jZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTY7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NjsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ1OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY4ODdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjkxMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzAzMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM5MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fbG95ZXJfcmVmZXJlbmNlXykpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NjsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI1NTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNTU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTk3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxNzk3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NzgwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MjA4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9sb3llcl9yZWZlcmVuY2VfKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk2OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzM2OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjMzNjsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTg2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxNjY0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NjMwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MTg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9sb3llcl9yZWZlcmVuY2VfKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTY7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcInBsYWZvbmRfbG95ZXJfZDgyM18xNl8yXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NDY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTQ3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAxNjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODkwMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTU1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU1NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzkwNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI0NjgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjI5MTFcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU2NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NjQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNTM5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDU3NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjc3NzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDQzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTY4OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2ODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMwMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzAyOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMzU1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk0ODRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODI2MVwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMxMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzExOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2OTYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjM4NDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjEzNlwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMyMzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzIzOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDQ3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0MjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2ODM1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzkwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ4MjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTU3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzODA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM4MTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjIyNjJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTQwMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MTg1XCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzg5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzOTA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2ODQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjM3NDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjA0NFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQwMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDAyOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAzNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDAzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjcyM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4OTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0NzE3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU0MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTg7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwMTY1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4OTAwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc18pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjM1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTQ4NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODI2MVwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTUyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE1MjsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOFwiOyBcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZW1lbnRfZXN0X2NoYW1icmVfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMjYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NDAyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MTg1XCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5MTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTE7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dlbWVudF9lc3RfY2hhbWJyZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzc2NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNDE5OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjY4MFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDYyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjI7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlXykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjgyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMzM4MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTkxM1wiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTQ1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxNDU7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDhcIjsgXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dlbWVudF9lc3RfY2hhbWJyZV8pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY3MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjMyODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE4MjFcIikpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDg1MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2ODg3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjUyMDBcIikpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzIwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyOTEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA1NDhcIikpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDIwNTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzAzMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUzOTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0MjUyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDkwOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NzY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTc3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk4MDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTk3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MzQ4XCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTg3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU5NDlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTc5N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NTE1XCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDAwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDA2MzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODk1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTc4MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUyMDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzMDk0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDc0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDYwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwNjE7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk2ODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTg1OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MjQ2XCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDcwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwNzE7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU3OTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTY2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5MzkyXCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDg0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwODQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwNDYwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTg3MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU2MzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MTg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjk1NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ3MjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX3N1cHByZXNzaW9uX2Q4MjNfMTZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJwbGFmb25kX3N1cHByZXNzaW9uX2Q4MjNfMTZcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTk5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5OTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI2OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNjk7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yX1xuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjQuXCIpKVxuICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMl9cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIzLjFcIikpXG4gICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yX1xuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjMuMVwiKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5OTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInBsYWZvbmRfZMOpZ3Jlc3Npdml0w6lfZDgyM18xNlwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01OTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk4OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjYzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI2MzsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfXG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMy40XCIpKVxuICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMl9cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLjVcIikpXG4gICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yX1xuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjIuNVwiKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTg7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbG95ZXJfZWxpZ2libGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImxveWVyX8OpbGlnaWJsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU5MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTE7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE3ODg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTc4ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbG95ZXJfcHJpbmNpcGFsX2F2ZWNfcmVkdWN0aW9uX21ldWJsZV9cbiAgICAgICAgICAgICAgICAgcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSB0aGVuIHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yXyBlbHNlXG4gICAgICAgICAgICAgIGxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbl9tZXVibGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01OTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTkxOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGltaW51ZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGltaW51w6lcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MjI7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjIyOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjIyOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MjI7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4Mzc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgzNzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXykpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gYWlkZV9maW5hbGVfKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODIzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgyMzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbG95ZXJfcHJpbmNpcGFsX2F2ZWNfcmVkdWN0aW9uX21ldWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX3N1cHByZXNzaW9uX2Q4MjNfMTZfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIGxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbl9tZXVibGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNl8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbl9tZXVibGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gcGxhZm9uZF9zdXBwcmVzc2lvbl9kODIzXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfZGVncmVzc2l2aXRlX2Q4MjNfMTZfKSkpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgYWlkZV9maW5hbGVfKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT02MjI7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjIyOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjIyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyMjsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwYXJ0aWNpcGF0aW9uX21pbmltYWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJwYXJ0aWNpcGF0aW9uX21pbmltYWxlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxMTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjExOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBsb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wODVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBsb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wODVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY2M1wiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTE7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMjQ7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTI0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDEzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDg1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTM5XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDg1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MzlcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjExOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjA3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjIwNzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBsb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wODVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBsb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wODVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzUyNFwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxMTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCByYXBwb3J0X2xveWVyc186IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJyYXBwb3J0X2xveWVyc1wiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTU7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjgyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyODI7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxveWVyX3JlZmVyZW5jZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5ODsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE5ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfbW9uX21vbiBsb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxveWVyX3JlZmVyZW5jZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTA7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTA7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9tb25fbW9uIGxveWVyX2VsaWdpYmxlXyBsb3llcl9yZWZlcmVuY2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTU7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjIzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyMzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODQ3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg0NzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGltaW51w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGltaW51w6lcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kaW1pbnXDqVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RpbWludWVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kaW1pbnXDqVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9kODIzXzE2XylcbiAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT02MjM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjIzOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjIzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyMzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0YXV4X2xveWVyX2VsaWdpYmxlX2Zvcm11bGVfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInRhdXhfbG95ZXJfw6lsaWdpYmxlX2Zvcm11bGVcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01OTM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NTkzOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTM7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTM7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTM7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5MzsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTM7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTkzOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzMDY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjMwNjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjQ1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNDVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA0NVwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuM1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjI1OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC40NVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNDVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDQ1XCIpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuM1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDY4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQxNjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNDVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNDVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIikpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjNcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5Mzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT01OTM7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXSAodW5lbWJlZGRhYmxlKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjI0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyNDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODY0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg2NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBjcmRzXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCI7IFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfbW9udGFudF8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCI7IFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTBcIikpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjI0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyNDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYyNDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjQ7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdGF1eF9sb3llcl9lbGlnaWJsZV90YXV4X2Fycm9uZGlfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInRhdXhfbG95ZXJfw6lsaWdpYmxlX3RhdXhfYXJyb25kaVwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU5NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT01OTQ7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5NDsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NDsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5NDsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk0OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5NDsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTQ7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMxMzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzEzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfbG95ZXJfZWxpZ2libGVfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwMDAwLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMDAwMC5cIikpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjMyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjMyOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fcm91bmRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgdGF1eF9sb3llcl9lbGlnaWJsZV9mb3JtdWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwMDAwLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAwMDAuXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDIzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDIzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgdGF1eF9sb3llcl9lbGlnaWJsZV9mb3JtdWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMDAwMC5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMDAwMC5cIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT01OTQ7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYyNTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODQ0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODQ0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFjdGlvbl9sODMyXzNfKSkgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCByZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhY3Rpb25fbDgzMl8zXykpIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT02MjU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjI1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjI1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyNTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0YXV4X3ByaXNlX2NvbXB0ZV9yZXNzb3VyY2VzXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJ0YXV4X3ByaXNlX2NvbXB0ZV9yZXNzb3VyY2VzXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjAzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwMzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk0Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xOTQ3OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2FkZF9yYXRfcmF0IHRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlX1xuICAgICAgICAgICAgICB0YXV4X2xveWVyX2VsaWdpYmxlX3RhdXhfYXJyb25kaV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDM7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYyNjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjY7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg5Njsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4OTY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3LDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICB0aGVuIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgYWlkZV9maW5hbGVfKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjI2OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyNjsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYyNjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjY7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGFydGljaXBhdGlvbl9wZXJzb25uZWxsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwicGFydGljaXBhdGlvbl9wZXJzb25uZWxsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYxMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTM7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE5MTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTkxMzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCBwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXNfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICBhYmF0dGVtZW50X2ZvcmZhaXRhaXJlX2Q4MjNfMTdfKVxuICAgICAgICAgICAgICAgICAgdGF1eF9wcmlzZV9jb21wdGVfcmVzc291cmNlc18pXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgKGxldCBwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXNfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vbiBwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXNfXG4gICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZSBwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXNfKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHBhcnRpY2lwYXRpb25fbWluaW1hbGVfIHBhcnRpY2lwYXRpb25fcmVzc291cmNlc18pKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYxMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTM7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYxODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NzA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTc3MDsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICBwYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlXylcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAoIGlmIChvX2x0X21vbl9tb24gYWlkZV9maW5hbGVfIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjE4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gcGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNl9cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLjVcIikpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODQwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg0MDsgZW5kX2NvbHVtbj03NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODQwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg0MDsgZW5kX2NvbHVtbj03NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdCBmcmFjdGlvbl9sODMyXzNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuOVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX3JhdF9yYXQgZnJhY3Rpb25fbDgzMl8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk4XCIpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODU0OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODU0OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg1NDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg1NDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5IChvX25vdCAob19hbmQgbG9nZW1lbnRfZXN0X2NoYW1icmVfIGNvbG9jYXRpb25fKSkgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQwOyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzMzsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzMzsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MzM7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzMjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzMjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MzI7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MzI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5tb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNiA9XG4gICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGxhZm9uZF9sb3llcl9kODIzXzE2XzIgPVxuICAgICAgIHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSA9XG4gICAgICAgcGFydGljaXBhdGlvbl9taW5pbWFsZV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlID1cbiAgICAgICB0YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUgPVxuICAgICAgIHBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxffVxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbjogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4udCkgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudCA9XG4gIGxldCB0eXBlX2xvZ2VtZW50X2ZveWVyXzogVHlwZUxvZ2VtZW50Rm95ZXIudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbiBpblxuICBsZXQgZGF0ZV9jb252ZW50aW9ubmVtZW50XzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiBpblxuICBsZXQgem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi56b25lX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgcmVkZXZhbmNlXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlZGV2YW5jZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgY29uZGl0aW9uXzJfZHVfODMyXzI1XzogdW5pdCAtPiBib29sID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gaW5cbiAgbGV0IGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfOiB1bml0IC0+IGJvb2wgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiB1bml0IC0+IGRlY2ltYWwgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4gaW5cbiAgbGV0IGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY4NDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02ODQ7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT4gbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg0OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njg0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Njg0OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02ODQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg0OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fMl9kdV84MzJfMjVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcImNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjgzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4MzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPiBjb25kaXRpb25fMl9kdV84MzJfMjVfICgpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjgzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4MzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg0Nzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM4NDc7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICBtYXRjaCB0eXBlX2xvZ2VtZW50X2ZveWVyX1xuICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgIHwgVHlwZUxvZ2VtZW50Rm95ZXIuTG9nZW1lbnRQZXJzb25uZXNBZ2Vlc091SGFuZGljYXBlZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgfCBUeXBlTG9nZW1lbnRGb3llci5SZXNpZGVuY2VTb2NpYWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY29udmVudGlvbm5lbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgIHwgVHlwZUxvZ2VtZW50Rm95ZXIuRm95ZXJKZXVuZXNUcnZhaWxsZXVyc091TWlncmFudHNDb252ZW50aW9ubmVMMzUzXzJBdmFudDE5OTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb252ZW50aW9ubmVtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5MCkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICB8IFR5cGVMb2dlbWVudEZveWVyLkF1dHJlIF8gLT4gZmFsc2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02ODM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjgzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY29udHJpYnV0aW9uc19zb2NpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTcyMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03MjA7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzIwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTcyMDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzIwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTcyMDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdXG4gICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAoe0NvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm1vbnRhbnQgaW5cbiAgbGV0IG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MjNfMjRfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzI0XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5NzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI1ODE7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5NzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI0XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI0XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTY5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI1Njk7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02OTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Njk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcInBsYWZvbmRfw6lxdWl2YWxlbmNlX2xveWVyX8OpbGlnaWJsZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02OTA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjkwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjkwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjkwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjUxNDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI1MTQ7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDYxOTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQxNTJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTc3NDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2MTc5NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjY1ODYyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzEwMzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjczNjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDIyNDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDkyOTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTI1NjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NjI2OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU5OTU3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjM4ODdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY2NTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAwOTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDY2MzRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDk0NzVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Mjc0MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MDA0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTk2NzVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxODBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjkwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjkwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ0OTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0NDk7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NDYzMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MjMyMVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NTc4OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU5NzA0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjM2MzVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2ODYzN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzExOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDgxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NzYzMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDc4N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU0MzY1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTc5MjlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTcyN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjQzNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODc0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NTA1N1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NzgwMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwOTU3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQxMTBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NzY1N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTk3MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02OTA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTMwOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjUzMDsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NDQ0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MjEwMVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NTU1NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU5NDU0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjMzNjlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2ODM1MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzA4OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDY0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NzQzM1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDU3NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU0MTM4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTc2ODdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTQ2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjQwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODU3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NDg2OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NzYwMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwNzQ0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM4ODRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NzQxNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTk0NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjkwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY5MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29lZmZpY2llbnRfcl9kODMyXzI1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwiY29lZmZpY2llbnRfcl9kODMyXzI1XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njg3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4NzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTk2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI1OTY7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMTcyNlwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02ODc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg3OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLmNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXSAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM5NDE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzk0MTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk0MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTQxOyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gY29uZGl0aW9uXzJfZHVfODMyXzI1XykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM5NDE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzk0MTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM5Mzc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzkzNzsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzkzNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTM3OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zOTM3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5Mzc7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMuc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zOTM5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5Mzk7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Mzk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzkzOTsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zOTM5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5Mzk7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMucsOpc2lkZW5jZVwiXSAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTQzOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5NDM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiByZXNpZGVuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzk0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTQzOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X2xpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfOiBcbiAgICB1bml0IC0+IGJvb2wgPSBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl1cbiAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTU0Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU1NDM7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjEtOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTQ1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTU0NTsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2MS04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9uIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF9ub21icmVfcGFydHNcIjtcbiAgICAgIFwiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfbm9tYnJlX3BhcnRzXCI7XG4gICAgICBcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCJdIGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcilcbiAgICAoe0NhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID1cbiAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF87XG4gICAgICAgIENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9yZXNpZGVuY2VfO1xuICAgICAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X2xpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VffSkpKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yN186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yN1wiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTY7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjc1NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNzU0OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8gdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTUwMFwiKVxuICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjY4XCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02OTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Njk2OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njg2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4NjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjA3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI2MDc7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgY29uZGl0aW9uXzJfZHVfODMyXzI1XyB0aGVuIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTQyMDkxXCIpXG4gICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEzMzkzNDBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY4Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02ODY7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE0OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzgwOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzc4MDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI0XykgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjRfKVxuICAgICAgICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE0OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcIsOpcXVpdmFsZW5jZV9sb3llcl/DqWxpZ2libGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02ODk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg5OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc1NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzU0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gcmVkZXZhbmNlXyBwbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXylcbiAgICAgICAgICAgICAgdGhlbiBwbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXyBlbHNlIHJlZGV2YW5jZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY4OTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02ODk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIl1cbiAgICAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY4ODsgc3RhcnRfY29sdW1uPTIxOyBlbmRfbGluZT02ODg7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT4gbl9ub21icmVfcGFydHNfZDgzMl8yNV8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODg7IHN0YXJ0X2NvbHVtbj0yMTsgZW5kX2xpbmU9Njg4OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTQ0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk0NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njg4OyBzdGFydF9jb2x1bW49MjE7IGVuZF9saW5lPTY4ODsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjkzOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTQ1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDE0NTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIG9fc3ViX21vbl9tb24gZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTY5Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTM7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjkzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5MzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTcyMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03MjE7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzIxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTcyMTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzIxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTcyMTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUucmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc1wiXVxuICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc3MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzcwOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzcwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM3NzA7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzc3MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzcwOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5jb25kaXRpb25fMl9kdV84MzJfMjVcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc2ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzY4OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzY4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM3Njg7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBjb25kaXRpb25fMl9kdV84MzJfMjVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzc2ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzY4OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV86IGRlY2ltYWwgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUubl9ub21icmVfcGFydHNfZDgzMl8yNVwiXVxuICAgICAgKGVtYmVkX2RlY2ltYWwpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zNzcyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM3NzI7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM3NzI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzc3MjsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzc3Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzcyOyBlbmRfY29sdW1uPTcwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZS50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVwiO1xuICAgICAgXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIjtcbiAgICAgIFwiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiXSBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUpXG4gICAgKHtDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc187XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luID1cbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVffSkpKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9tb250YW50XzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZS5tb250YW50IGluXG4gIGxldCBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9mb3JtdWxlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfZm9ybXVsZVwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTcwNzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MDc7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MDc7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03MDc7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NTc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX3N1Yl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjAuOVwiKVxuICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1XykpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4NjI7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIChsZXQgZGVub21pbmF0ZXVyXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBjb2VmZmljaWVudF9yX2Q4MzJfMjVfXG4gICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1XykpXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgKGxldCBkZW5vbWluYXRldXJfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKCBpZiAob19sdF9tb25fbW9uIGRlbm9taW5hdGV1cl8gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICB0aGVuIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgZGVub21pbmF0ZXVyXylcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAob19zdWJfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk1XCIpXG4gICAgICAgICAgICAgICAob19kaXZfbW9uX21vbiBkZW5vbWluYXRldXJfXG4gICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNV9cbiAgICAgICAgICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfKSkpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTcwNzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MDc7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhbGxvY2F0aW9uX21lbnN1ZWxsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY5MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTE7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNDk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MTQ5OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBkZXBlbnNlX25ldHRlX21pbmltYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIl1cbiAgICAgICAgICAgICAgICAgICAgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yN18pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI3X1xuICAgICAgICAgICAgICAgICAgICAgICBkZXBlbnNlX25ldHRlX21pbmltYWxlXykgZWxzZVxuICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTY5MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTE7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjkxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5MTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCLDqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02OTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njk4OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc2Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzY2OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY5ODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OTg7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X2NvZWZmX2Fycm9uZGlfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9jb2VmZl9hcnJvbmRpXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzA4OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcwODsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcwODsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcwODsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk3NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk3NDsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1XykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X2Zvcm11bGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwLlwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODgzOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDVcIikpXG4gICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MDg7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzA4OyBlbmRfY29sdW1uPTIzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2FiYXR0ZW1lbnRfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNTsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc5NDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3OTQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiXVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgYWJhdHRlbWVudF9kZXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdfKVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vbiBhaWRlX2ZpbmFsZV8gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgIHRoZW4gYWlkZV9maW5hbGVfIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNTsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MTU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE1OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9zZXVpbF86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzA5OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcwOTsgZW5kX2NvbHVtbj0xNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcwOTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcwOTsgZW5kX2NvbHVtbj0xNTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk4MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk4MDsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1XykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfY29lZmZfYXJyb25kaV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjlcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X2NvZWZmX2Fycm9uZGlfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4ODY7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdFxuICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9jb2VmZl9hcnJvbmRpX1xuICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk1XCIpKSB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjAuOTVcIilcbiAgICAgICAgICAgICAgZWxzZSBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9jb2VmZl9hcnJvbmRpXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzA5OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcwOTsgZW5kX2NvbHVtbj0xNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl0gKHVuZW1iZWRkYWJsZSlcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcxNjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTY7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM4MDg7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zODA4OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudF8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGNyZHNfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiXSBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MFwiKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03MTY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE2OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTcxNjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTY7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTcxMTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM3MzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzczMzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlX1xuICAgICAgICAgICAgICAgICAgICAgZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfKVxuICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfc2V1aWxfKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICggaWYgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgYWlkZV9maW5hbGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTcxMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03MTE7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE3OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzgyOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM4Mjk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19sdF9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X21pbmltYWxfYWlkZV9kODIzXzI0XylcbiAgICAgICAgICAgICAgICAgICAgdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTcxNzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTc7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzE3OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MjU7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03MjU7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcyNTsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcyNTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNSA9XG4gICAgIGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcl9kODMyXzI1ID1cbiAgICAgICBjb2VmZmljaWVudF9yX2Q4MzJfMjVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSA9XG4gICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSA9XG4gICAgICAgZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIucGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSA9XG4gICAgICAgcGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSA9XG4gICAgICAgZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjUgPVxuICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxffVxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW46IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50KSA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gIGxldCBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfOiBtb25leSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiBpblxuICBsZXQgdHlwZV90cmF2YXV4X2xvZ2VtZW50XzogVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IGRhdGVfc2lnbmF0dXJlX3ByZXRfOiBkYXRlID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX3NpZ25hdHVyZV9wcmV0X2luIGluXG4gIGxldCBsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfOiBib29sID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW4gaW5cbiAgbGV0IGRhdGVfZW50cmVlX2xvZ2VtZW50XzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IGNvcHJvcHJpZXRlXzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uY29wcm9wcmlldGVfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9yODIyXzExXzEzXzE3XzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW4gaW5cbiAgbGV0IHpvbmVfOiBab25lREhhYml0YXRpb24udCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uem9uZV9pbiBpblxuICBsZXQgdHlwZV9wcmV0XzogVHlwZVByZXQudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udHlwZV9wcmV0X2luIGluXG4gIGxldCBhbmNpZW5uZXRlX2xvZ2VtZW50XzogTmV1Zk91QW5jaWVuLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmFuY2llbm5ldGVfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwidGF1eF9mcmFuY3NfdmVyc19ldXJvc1wiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc4MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03ODE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMyNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIHByZW1pZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJSw6hnbGVtZW50IChDRSkgbsKwMjg2Ni85OCBkdSBjb25zZWlsIGR1IDMxIGTDqWNlbWJyZSAxOTk4IGNvbmNlcm5hbnQgbGVzIHRhdXggZGUgY29udmVyc2lvbiBlbnRyZSBsJ2V1cm8gZXQgbGVzIG1vbm5haWVzIGRlcyDDiXRhdHMgbWVtYnJlcyBhZG9wdGFudCBsJ2V1cm9cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuNTU5NTdcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc4MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03ODE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyNzg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzI3ODsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjc4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMyNzg7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzI3ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjc4OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMuc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMjgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMyODA7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzI4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjgwOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzI4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjgwOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNhbGN1bF9ub21icmVfcGFydHNcIjsgXCJDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByacOpdMOpXCJdXG4gICAgKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0c1wiOyBcIkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpw6l0w6lcIl1cbiAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgKHtDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF99KSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzExXzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUubl9ub21icmVfcGFydHNfZDgzMl8xMSBpblxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXMuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03OTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Nzk4OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT03OTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Nzk4OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzk4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTc5ODsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdXG4gICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAoe0NvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm1vbnRhbnQgaW5cbiAgbGV0IHRhdXhfdHJhbmNoZV9zdXBlcmlldXJlX2Q4MzJfMTVfMV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRhdXhfdHJhbmNoZV9zdXDDqXJpZXVyZV9kODMyXzE1XzFcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03ODA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzgwOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDA3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI0MDc7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDIzXCI7IFwiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC40MTZcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzgwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc4MDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRhdXhfdHJhbmNoZV9pbmZlcmlldXJlX2Q4MzJfMTVfMV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRhdXhfdHJhbmNoZV9pbmbDqXJpZXVyZV9kODMyXzE1XzFcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03Nzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Nzc5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI0MDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDIzXCI7IFwiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yMDhcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzc5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3OTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzE1XzFcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Nzc4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQwNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNDA1OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyM1wiOyBcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NjAwODVcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzc4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMThfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE4XCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Nzc3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NzsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQ4NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNDg1OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyNlwiOyBcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjE2LjI1XCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc3Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Nzc7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzExXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMTFcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Nzc2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM4OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMzg5OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyMlwiOyBcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjExMTMzXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc3Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzY7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE3XzNfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE3XzNcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NzU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Nzc1OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDY2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI0NjY7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI1XCI7IFwiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OCkgKDEwKSAoMSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjI2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzRcIikpXG4gICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gYW1lbGlvcmVfcGFyX29jY3VwYW50XyAtPlxuICAgICAgICAgICAgICAgIChtYXRjaCBhbWVsaW9yZV9wYXJfb2NjdXBhbnRfXG4gICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgfCBBbWVsaW9yZVBhck9jY3VwYW50Lk91aSBfIC0+IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3MlwiKVxuICAgICAgICAgICAgICAgICB8IEFtZWxpb3JlUGFyT2NjdXBhbnQuTm9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk4KSAoMTApICgxKSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIyNlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzRcIikpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzc1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MzJfMTBfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibW9udGFudF9taW5pbWFsX2FpZGVfZDgzMl8xMFwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NzQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Nzc0OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzc5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTIzNzk7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDIxXCI7IFwiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzc0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8xMF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMTBcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzczOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3MzsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM2Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMzY3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyMFwiOyBcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzczOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3MzsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODMyXzEwXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODMyXzEwXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzcyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NzI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc3MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQzODsgc3RhcnRfY29sdW1uPTc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDM4OyBlbmRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjRcIjsgXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjgwNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NjEyXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDE0OyBzdGFydF9jb2x1bW49NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0MTQ7IGVuZF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHJvcHJpZXRlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU0MjJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzcyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI0OTU7IHN0YXJ0X2NvbHVtbj03O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjQ5NTsgZW5kX2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI0XCI7IFwiQXJ0aWNsZSAxOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Mzk5XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzU1OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzU1OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTlcIjsgXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzgwOyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzgwOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDYxOyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDYxOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzOTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTIyNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM186IGRhdGUgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChkYXRlX3NpZ25hdHVyZV9wcmV0XzogZGF0ZSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04Mjc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04NDI7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5MikgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMSkgKDI3KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gYW1lbGlvcmVfcGFyX29jY3VwYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1lbGlvcmVfcGFyX29jY3VwYW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBbWVsaW9yZVBhck9jY3VwYW50Lk91aSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBbWVsaW9yZVBhck9jY3VwYW50Lk5vbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT4gZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg2OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5NzEwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTA3MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTAyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwODM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwODc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTkyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMSkgKDI3KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA4NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk0NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NjAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjM5MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2MTgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzM2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA4MjAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMjA7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTkyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMSkgKDI3KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTY3ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwMjUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM3MjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0OTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODAxMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMzk3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTY3NjAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTU1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNzkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNTM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAwKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk4MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzOTAwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjc5OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE3NjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTI4MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0ODgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjUwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk3OTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExODI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExODY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAwKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTU5NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MjUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI1NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0MjIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzEyMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwMDIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMzI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTU5MzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODU4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAwKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAxKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAwMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0MTQwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTgyNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE3ODYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTUwMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjY3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk5OTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzMxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNDg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNTI7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAwKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAxKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTYxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5NDQwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI3NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0MzYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzI5MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwMjIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMzQxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTYwOTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODc3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyODE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyODU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAxKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDI1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ0MzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODYxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTgwNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNzUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU0MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE2ODcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDIzMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNTkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMxNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMxODsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwODcxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MjQzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzYxNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYzNzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNzU0OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzE0OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg3NjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NjEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU3MThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA4NDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1OTYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTEyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzNDc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzNTE7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAxKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk2NzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQ1MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE3NTAwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA0NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEzNTcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjI4MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4OTkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM4MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM4NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0ODQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5OTg3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTEyNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUxMzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjE1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjY3OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyMDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTI4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA2ODdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ4MThcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI4OTQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0MTM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0MTc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDMpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyNDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2ODlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0MTM3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjQ0OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3ODc5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNTU2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTIzM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2NzdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjAyN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTIxMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYzOTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MTgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ0Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ1MDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMykgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTE0N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDM0N1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1NDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI0MTdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY5OTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNTgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDU4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwOTM1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTE2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTI5N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDc5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDgzOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMykgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA1KSAoOCkgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNjE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4MTQxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDY2NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY1MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODIxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzk1OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk3MDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NzQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjYzMzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE1ODRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2ODI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTI0NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAzKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg4KSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU0NDlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA3MTFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1OTczXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTI2MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyNjg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3MzIzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTk2MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2MzdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTE4NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTQxN1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk2NDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjMxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU0NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU0OTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg4KSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzIxODVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg4MjdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1NDY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjY0MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI4NzIyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NTcwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDQxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU4NDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjgxM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjE1MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc0OTFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MzM5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4MjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg4KSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU5MDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyNjRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NjIxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTM1N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzMDk0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3ODE0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjUzNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ3MjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTU2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTg3NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAxODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzA3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYxMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYxNTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDYpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDcpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzMDg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5OTE0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Njc0MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY4MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTUyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTUzOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDE1NTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MDEyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjc1NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMwNTJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4NTQxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTQ4OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2NDQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2NDg7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA2KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA3KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjYzMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjEzOVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2NDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NTA3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM3NDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjg1OTNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDg1MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMTcxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NTk4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTAyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjc3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjgxOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNykgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM5OTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEwMTZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ4MDMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzAxNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwMzQxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NTE5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjY5N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxNzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODMyNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzk2NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk2MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NjM5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTcxMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTcxNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDcpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDgpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3MzY3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzMDI2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODY4NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2NTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDM5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTM4MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQzNjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0OTg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI3ODNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjczMzJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxODgyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDU1MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NDM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3NDc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA4KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA5KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTAwMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjIyNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDk0NDlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3MjIzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyMzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc1OTZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzOTU3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjM2MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5MTYxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0OTY2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDc3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU4MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzc2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzgwOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjgxNzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQwMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5ODI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTgyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwMjQ5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTM4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUxMzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzQ1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODEzOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI4MjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Njg0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTgwOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgxMzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDkpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTApICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1MTE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyMzYxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0OTYwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjcyNDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTMzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzcxNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQwOThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MzgwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjkyNTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzUwNzhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwOTAzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTgyNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4NDI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4NDY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA5KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEwKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODI2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDEwOVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk5NTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjUxOTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAzNDZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NDk1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTE0OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNTMwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI4MjI4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjkyOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2OTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODc1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODc5OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI4MjdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUwMTUzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzMyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNjgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4MTMxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDU4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY0NTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTU3NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTQ2NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzNTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTkwODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTkxMjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTApICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTEpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI4NTc1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NDg0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDM5MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU5MDlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTQ3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDY4MFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU4ODVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MjA2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM3ODlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjg1MzlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzMjkwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDc1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5NDE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE5NDU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEyKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTg1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzI1NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTA2NTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3Mzk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE5OThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg1MTJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1MDI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjUxNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5ODcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1ODE5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTc2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU5NDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTc0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTc4OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjg4NjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ4MjlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwNzk2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTk2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1NzI4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwOTg3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjI0NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUyNThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDAyN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODgyNFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM2MjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Nzk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjAwNzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjAxMTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY2MjZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQxODVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUxNzQ0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzU1OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyNjg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MzQwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTk5N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY2NTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDUxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjU4OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI2NjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MDc1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA0MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjA0NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk0ODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1NzhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxNjczXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjA5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2MjgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNjUzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzAyM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUzNzFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDU0NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTQ0NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQzNDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0OTAyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA3Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjA3NzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjgzNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDQzN1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTIwMzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3NjAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk1NjRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2MjU5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjY5M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNjg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2Nzk4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjkwOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxMTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTA2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTEwOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NjUwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NzgxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTkxMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxMzFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjQzMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTgzM1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcyMzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NDAyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ2ODRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk2MTJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NTQyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDkzMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxMzk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxNDM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY4NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQ0NzNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUyMDgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzYwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyODk4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5NTk2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NjI5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY2OThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDcxM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjgyN1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI5NDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTE1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE3Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE3NjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTY3NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTgxMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDE5NDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY0NTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE4NThcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MjY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTQwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0NzA0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NjM2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDU3MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ5MzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjA1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjA5OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MTQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0ODA3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MjQ3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjc2NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzE0NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTg5M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDY2NDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2NzQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA5NDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcxMDNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzMjY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjE2MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyMzg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNDI7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk4OTdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYwNzlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyMjYwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjE4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2NjUwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyMDk3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzU0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU0NDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDg4OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTg1OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ4MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0OTcxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI3MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjI3NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzI1MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDk0MVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTI2MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3Njg3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMyNDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDAwMTNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2NzgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjc2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMDM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MjE1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzM5NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxNzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzAzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzA2OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5OTg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTg3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjM4NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYyMDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjczMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjE5M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2NTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NDYzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ5NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk5NDhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0OTM0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDk4NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzNTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzODsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5MikgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwODUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTE1MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NDUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg2MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMzkwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjYxODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzM2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA4MjAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02ODM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTIpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDExKSAoMjcpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPiBmYWxzZSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjc4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAyNTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzcyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0OTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODAxMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTM5NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE2NzYwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk1NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjc5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzI2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzI4OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg0MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMDAwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjYwMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzgwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjQyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk3NzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzEyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE1MzIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODM3MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNDIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc3MjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDExKSAoMjcpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPiBmYWxzZSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0ODEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzg3MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwOTMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTMyMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE1ODkwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg1ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMjMzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQ3OTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzI1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSBmYWxzZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJuX25vbWJyZV9wYXJ0c19kODMyXzExXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzYyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2MjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjc2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMyNzY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzExXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzYyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2MjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfZDgzMl8xOF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXZlY19kODMyXzE4XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc3MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzE7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzcxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcxOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU5Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU5MjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXykpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU4NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNTg0OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfXG4gICAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMThfKSkgdGhlblxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgbWVuc3VhbGl0ZV9wcmluY2lwYWxlX1xuICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE4XykgZWxzZVxuICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NzE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzcxOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc5Mjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03OTI7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTI3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzEyNzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzEwXykgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMTBfKVxuICAgICAgICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzkyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5MjsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzkyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5MjsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMF86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFsbG9jYXRpb25fbWVuc3VlbGxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzY3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzY3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03Njc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUyODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTI4OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk5KSAoNikgKDMwKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIG1lbnN1YWxpdGVfcHJpbmNpcGFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODMyXzEwXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUzOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1Mzk7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICBvX3N1Yl9tb25fbW9uIG1lbnN1YWxpdGVfcHJpbmNpcGFsZV8gYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTc2Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Njc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc2Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Njc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2Jhc2VfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwicGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNfYmFzZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NTg7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzU4OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc1ODsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc1ODsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzNjM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNjM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAobGV0IHBsYWZvbmRfc2lnbmF0dXJlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZGF0ZSkgZGF0ZV9zaWduYXR1cmVfcHJldF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgIChsZXQgcGxhZm9uZF9lbnRyZWVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiXVxuICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9kYXRlKSBkYXRlX2VudHJlZV9sb2dlbWVudF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICggaWYgKG9fbHRfbW9uX21vbiBwbGFmb25kX3NpZ25hdHVyZV8gcGxhZm9uZF9lbnRyZWVfKVxuICAgICAgICAgICAgICAgICAgICAgICB0aGVuIHBsYWZvbmRfZW50cmVlXyBlbHNlIHBsYWZvbmRfc2lnbmF0dXJlXykpKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMzQzOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiXVxuICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiOyBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCJdXG4gICAgICAgICAgICBjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM18pICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0XykpKSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzU4OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc1ODsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03OTk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Nzk5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT03OTk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Nzk5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzk5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTc5OTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM0ODQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzQ4NDsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDg0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM0ODQ7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zNDg0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM0ODQ7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUuY29uZGl0aW9uXzJfZHVfODMyXzI1XCJdXG4gICAgICAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM0ODM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzQ4MzsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM0ODM7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzQ4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNDgzOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5uX25vbWJyZV9wYXJ0c19kODMyXzI1XCJdXG4gICAgICAoZW1iZWRfZGVjaW1hbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM0ODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzQ4NjsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM0ODY7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzQ4Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNDg2OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCI7XG4gICAgICBcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVwiO1xuICAgICAgXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCJdIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSlcbiAgICAoe0NhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID1cbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV87XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV99KSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X21vbnRhbnRfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLm1vbnRhbnQgaW5cbiAgbGV0IGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwX2Zvcm11bGVfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMF9mb3JtdWxlXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzY0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc2NDsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTkxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMxOTE7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19zdWJfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk1XCIpXG4gICAgICAgICAgICAgIChvX2Rpdl9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMTFfXG4gICAgICAgICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc2NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NjQ7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMF86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT03Njk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzY5OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU1MDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1NTA7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMFwiXVxuICAgICAgICAgICAgICAgICAgICBkZXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBhbGxvY2F0aW9uX21lbnN1ZWxsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfZDgzMl8xOF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8xN18zXykpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfZDgzMl8xOF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8xN18zXylcbiAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8pIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03Njk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzY5OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03Njk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzY5OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM19jb3Byb3ByaWV0YWlyZXNfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwicGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNfY29wcm9wcmnDqXRhaXJlc1wiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NTk7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzU5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc1OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc1OTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NTk7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NTk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzU5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQ3NTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDc1OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGUgMTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb3Byb3ByaWV0ZV8gdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM19iYXNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV8pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzk0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzk0OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvcHJvcHJpZXRlXyB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV8pKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDE5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjQxOTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyNFwiOyBcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZiBjb3Byb3ByaWV0ZV8gdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2Jhc2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV8pKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc1OTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NTk7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtZW5zdWFsaXRlX21pbmltYWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1lbnN1YWxpdMOpX21pbmltYWxlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc1Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03NTY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU2OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzU2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQyMzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQzNTsgZW5kX2NvbHVtbj03NztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5UcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUuVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5QYXNEZVRyYXZhdXggXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5UcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlRyYXZhdXhTdXJMb2dlbWVudERlamFBY3F1aXNEODMyXzE1XzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUuUGFzRGVUcmF2YXV4IF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgKGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfIDogZGVjaW1hbCA9XG4gICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKVxuICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV8gOiBkZWNpbWFsID1cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfbW9uIG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV8pXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgIChvX3RvbW9uZXlfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9saW1pdGVfdHJhbmNoZXNfZDgzMl8xNV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzExXykpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8xMV8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X3RyYW5jaGVfc3VwZXJpZXVyZV9kODMyXzE1XzFfKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9yYXRfcmF0IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8xMV8pKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfdHJhbmNoZV9pbmZlcmlldXJlX2Q4MzJfMTVfMV8pIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzE1XzFfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X3RyYW5jaGVfaW5mZXJpZXVyZV9kODMyXzE1XzFfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU2OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzU2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ3ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQ3ODsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5UcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlRyYXZhdXhTdXJMb2dlbWVudERlamFBY3F1aXNEODMyXzE1XzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5QYXNEZVRyYXZhdXggXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X21vbnRhbnRfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzU2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfY29lZmZfYXJyb25kaV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwX2NvZWZmX2Fycm9uZGlcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NjU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzY1OyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMDc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzIwNzsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDVcIikpXG4gICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NjU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzY1OyBlbmRfY29sdW1uPTIzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc5Mzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03OTM7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQxOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE0MTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMFwiXVxuICAgICAgICAgICAgICAgICAgICAgICBhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMF8pXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uIGFpZGVfZmluYWxlXyAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgdGhlbiBhaWRlX2ZpbmFsZV8gZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03OTM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzkzOyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03OTM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzkzOyBlbmRfY29sdW1uPTIwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbWVuc3VhbGl0ZV9lbGlnaWJsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtZW5zdWFsaXTDqV/DqWxpZ2libGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzU1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTc1NTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTAyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMxMDI7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbWVuc3VhbGl0ZV9wcmluY2lwYWxlX1xuICAgICAgICAgICAgICAgICBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2NvcHJvcHJpZXRhaXJlc18pIHRoZW5cbiAgICAgICAgICAgICAgcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM19jb3Byb3ByaWV0YWlyZXNfIGVsc2VcbiAgICAgICAgICAgICAgbWVuc3VhbGl0ZV9wcmluY2lwYWxlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzU1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTc1NTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwX3NldWlsXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfc2V1aWxcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NjY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzY2OyBlbmRfY29sdW1uPTE1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzIxMDsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfY29lZmZfYXJyb25kaV9cbiAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC45NVwiKSkgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk1XCIpXG4gICAgICAgICAgICAgIGVsc2UgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfY29lZmZfYXJyb25kaV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc2Njsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NjY7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXSAodW5lbWJlZGRhYmxlKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzk0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5NDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNTU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTU1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudF8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGNyZHNfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiXSBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MFwiKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03OTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9Nzk0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03OTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9Nzk0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc4OTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03ODk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMDgyOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbWVuc3VhbGl0ZV9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODMyXzEwXylcbiAgICAgICAgICAgICAgICAgICAgIG1lbnN1YWxpdGVfbWluaW1hbGVfKVxuICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfc2V1aWxfKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICggaWYgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgYWlkZV9maW5hbGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc4OTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03ODk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc5NTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03OTU7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTc1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE3NTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MzJfMTBfKVxuICAgICAgICAgICAgICAgICAgICB0aGVuIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgYWlkZV9maW5hbGVfKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzk1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzk1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODAzOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODAzOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODAzOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODAzOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfZWxpZ2libGUgPVxuICAgICBtZW5zdWFsaXRlX2VsaWdpYmxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX21pbmltYWxlID1cbiAgICAgICBtZW5zdWFsaXRlX21pbmltYWxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMCA9XG4gICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfc2V1aWxfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsX31cblxubGV0IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgKHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW46IFJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi50KSA6IFJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9XG4gIGxldCByZXNzb3VyY2VzX2RlbWFuZGV1cl86IG1vbmV5ID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucmVzc291cmNlc19kZW1hbmRldXJfaW4gaW5cbiAgbGV0IHJlc3NvdXJjZXNfY29uam9pbnRfOiBtb25leSA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnJlc3NvdXJjZXNfY29uam9pbnRfaW4gaW5cbiAgbGV0IHBlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfOiBQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5wZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyX2luIGluXG4gIGxldCBkZW1hbmRldXJfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV86IGJvb2wgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kZW1hbmRldXJfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pbiBpblxuICBsZXQgY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV86IGJvb2wgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25qb2ludF9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX2luIGluXG4gIGxldCBwZXJzb25uZXNfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCBhcnJheSA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnBlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV86IFNpdHVhdGlvbkZhbWlsaWFsZS50ID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbiBpblxuICBsZXQgbW9kZV9vY2N1cGF0aW9uXzogTW9kZU9jY3VwYXRpb24udCA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBjb25kaXRpb25fYWdlX2JvdXJzZV9lbnNlaWduZW1lbnRfc3VwZXJpZXVyXzogYm9vbCA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXBlcmlldXJfaW4gaW5cbiAgbGV0IGRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzXzogYm9vbCA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzX2luIGluXG4gIGxldCBkYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXRfOiBkYXRlID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9kZW1hbmRlX291X3JlZXhhbWVuX2Ryb2l0X2luIGluXG4gIGxldCBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsXzogUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC50ID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbF9pbiBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfOiBtb25leSA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX3BlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwicmVzc291cmNlc19wZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUzNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01MzU7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI5OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMSA6IE1vZGFsaXTDqXMgZ8OpbsOpcmFsZXMgZGUgbCdhcHByw6ljaWF0aW9uIGRlcyByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19yZWR1Y2VcbiAgICAgICAgICAgICAgKGZ1biAoc3VtMV86IG1vbmV5KSAoc3VtMl86IG1vbmV5KSAtPiBvX2FkZF9tb25fbW9uIHN1bTFfIHN1bTJfKVxuICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKVxuICAgICAgICAgICAgICAob19tYXBcbiAgICAgICAgICAgICAgICAgKGZ1biAocGVyc29ubmVfOiBQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci50KSAtPlxuICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV8uUGVyc29ubmVWaXZhbnRIYWJpdHVlbGxlbWVudEF1Rm95ZXIucmVzc291cmNlcylcbiAgICAgICAgICAgICAgICAgcGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl8pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01MzU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTM1OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhYmF0dGVtZW50X3JfODIyXzEwXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiYWJhdHRlbWVudF9yXzgyMl8xMFwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU0MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01NDA7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT01MjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTI0OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBQcmluY2lwZXMgZGUgbmV1dHJhbGlzYXRpb24gZXQgZCdhYmF0dGVtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCBhYmF0dGVtZW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgIChvX2VxIChvX2xlbmd0aCBwZXJzb25uZXNfYV9jaGFyZ2VfKSAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAob19sdGVfaW50X2ludCAob19sZW5ndGggcGVyc29ubmVzX2FfY2hhcmdlXylcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5MDEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTM1MDAwXCIpKSlcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9cbiAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmUgXyAtPiBhYmF0dGVtZW50X1xuICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLk1hcmllcyBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpXG4gICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuUGFjc2VzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbnMgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKVxuICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlU2VwYXJlRGVGYWl0IF8gLT4gYWJhdHRlbWVudF9cbiAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01NDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTQwOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzdfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzdcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01Mzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTM5OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgYXBwbGljYWJsZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI5NTAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTUzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01Mzk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfcl84MjJfOF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfcl84MjJfOFwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01Mzc7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjM7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBhcHBsaWNhYmxlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI1ODkwMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01Mzc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTM3OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDE4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxODsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBQcmluY2lwZXMgZGUgbmV1dHJhbGlzYXRpb24gZXQgZCdhYmF0dGVtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDE4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxODsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBQcmluY2lwZXMgZGUgbmV1dHJhbGlzYXRpb24gZXQgZCdhYmF0dGVtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfZGVtYW5kZV9vdV9yZWV4YW1lbl9kcm9pdF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00MTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDE4OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IFByaW5jaXBlcyBkZSBuZXV0cmFsaXNhdGlvbiBldCBkJ2FiYXR0ZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl1cbiAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKVxuICAgICh7QmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSA9IHJlc3VsdF8uQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50IGluXG4gIGxldCByZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJyZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01NDY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTQ2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTQ2OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTQ2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODU0OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04NTc7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDMgOiBNb250YW50IGZvcmZhaXRhaXJlIGRlIHJlc3NvdXJjZXMgYXBwbGljYWJsZSBhdXggw6l0dWRpYW50c1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX2FnZV9ib3Vyc2VfZW5zZWlnbmVtZW50X3N1cGVyaWV1cl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXNfKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjQ7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAxIDogTW9kYWxpdMOpcyBnw6luw6lyYWxlcyBkZSBsJ2FwcHLDqWNpYXRpb24gZGVzIHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHJlc3NvdXJjZXNfZGVtYW5kZXVyXyByZXNzb3VyY2VzX2NvbmpvaW50XylcbiAgICAgICAgICAgICAgcmVzc291cmNlc19wZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTQ2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTU0NjsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWJhdHRlbWVudF9yXzgyMl84XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiYWJhdHRlbWVudF9yXzgyMl84XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTUzNjsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjI7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogUHJpbmNpcGVzIGRlIG5ldXRyYWxpc2F0aW9uIGV0IGQnYWJhdHRlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1eCByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwuT3VpQXZlY0xveWVyT3VDaGFyZ2VzIGxveWVyX291X2NoYXJnZXNfIC0+XG4gICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl84X1xuICAgICAgICAgICAgfCBQYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsLk5vbiBfIC0+XG4gICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTUzNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01MzY7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFiYXR0ZW1lbnRfcl84MjJfN186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcImFiYXR0ZW1lbnRfcl84MjJfN1wiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUzODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01Mzg7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA5OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IFByaW5jaXBlcyBkZSBuZXV0cmFsaXNhdGlvbiBldCBkJ2FiYXR0ZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fYW5kIGRlbWFuZGV1cl9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX1xuICAgICAgICAgICAgICAgICAob19hbmQgY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcmVzc291cmNlc19kZW1hbmRldXJfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfY29uam9pbnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpKSB0aGVuXG4gICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfcl84MjJfN18gZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTM4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTUzODsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19mb2xkXG4gICAgICAgICAgICAgICAgICAgICAgIChmdW4gKGFjY186IGJvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV86IFBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9fYW5kIGFjY19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyc29ubmVfLlBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLmR1cmVlX3Jlc2lkZW5jZV9kdXJhbnRfcGVyaW9kZV9yXzgyMl8zXzFfc3VwZXJpZXVyZV9hXzZfbW9pcykpXG4gICAgICAgICAgICAgICAgICAgICAgIHRydWUgcGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl8pXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Mjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0MzsgZW5kX2NvbHVtbj03NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAxIDogTW9kYWxpdMOpcyBnw6luw6lyYWxlcyBkZSBsJ2FwcHLDqWNpYXRpb24gZGVzIHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1eCByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpXG4gICAgICAgICAgICAgICAgICB0aGVuICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQyOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQzOyBlbmRfY29sdW1uPTc0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDEgOiBNb2RhbGl0w6lzIGfDqW7DqXJhbGVzIGRlIGwnYXBwcsOpY2lhdGlvbiBkZXMgcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pIGluXG4gIHtSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnJlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgIHJlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZV99XG5cbmxldCBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luOiBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnQpIDogRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4uRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBwcmVzdGF0aW9uX2NvdXJhbnRlXzogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID0gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnByZXN0YXRpb25fY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgYWdlX2w1MTJfM18yXzogdW5pdCAtPiBkdXJhdGlvbiA9IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4uRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5hZ2VfbDUxMl8zXzJfaW4gaW5cbiAgbGV0IGFnZV9sNTEyXzNfMl86IGR1cmF0aW9uID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcIsOiZ2VfbDUxMl8zXzJcIl0gKGVtYmVkX2R1cmF0aW9uKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ2OyBzdGFydF9jb2x1bW49MjE7IGVuZF9saW5lPTQ2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT4gYWdlX2w1MTJfM18yXyAoKSl8XSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Njsgc3RhcnRfY29sdW1uPTIxOyBlbmRfbGluZT00NjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSAoXG4gICAgICAgICAgICAgIFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTEyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGR1cmF0aW9uX29mX251bWJlcnMgKDIwKSAoMCkgKDApKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00Njsgc3RhcnRfY29sdW1uPTIxOyBlbmRfbGluZT00NjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSkpIGluXG4gIGxldCBzbWljX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwic21pYy5kYXRlX2NvdXJhbnRlXCJdXG4gICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSkpIGluXG4gIGxldCBzbWljX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwic21pYy5yw6lzaWRlbmNlXCJdXG4gICAgICAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTY7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTU2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTU2OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc2lkZW5jZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01NjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogU21pYy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJzbWljXCI7IFwiU21pY1wiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInNtaWNcIjsgXCJTbWljXCJdIHNtaWMpXG4gICAgKHtTbWljSW4uZGF0ZV9jb3VyYW50ZV9pbiA9IHNtaWNfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBTbWljSW4ucmVzaWRlbmNlX2luID0gc21pY19kb3RfcmVzaWRlbmNlX30pKSkgaW5cbiAgbGV0IHNtaWNfZG90X2JydXRfaG9yYWlyZV86IG1vbmV5ID0gcmVzdWx0Xy5TbWljLmJydXRfaG9yYWlyZSBpblxuICBsZXQgcmVnaW1lX291dHJlX21lcl9sNzUxXzFfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInLDqWdpbWVfb3V0cmVfbWVyX2w3NTFfMVwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01MTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01MTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUxOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19IChcbiAgICAgICAgICAgICAgICAgW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNzUxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGxhIEd1YWRlbG91cGUsIMOgIGxhIEd1eWFuZSwgw6AgbGEgTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15IGV0IMOgIFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gKCkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9sNTEyXzNfMl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInBsYWZvbmRfbDUxMl8zXzJcIl0gKGVtYmVkX21vbmV5KVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ0OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0gKFxuICAgICAgICAgICAgICAgICBbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9zw6ljdXJpdMOpX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYyOyBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjc1NS0wLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRMOpcGFydGVtZW50cyBkJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICByZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBzbWljX2RvdF9icnV0X2hvcmFpcmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC41NVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxNjkuXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9zw6ljdXJpdMOpX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUxMi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHNtaWNfZG90X2JydXRfaG9yYWlyZV9cbiAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC41NVwiKSkgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTY5LlwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25zX2hvcnNfYWdlXzogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJjb25kaXRpb25zX2hvcnNfw6JnZVwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9zw6ljdXJpdMOpX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODI7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX2w1MTJfM18yXykpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT00OTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00OTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19KSkpKSBpblxuICBsZXQgZHJvaXRfb3V2ZXJ0XzogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Nzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzI7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9sNTEyXzNfMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1ZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX25haXNzYW5jZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcwOyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcxOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw1MTItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5hbm5lZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IGFnZV9sNTEyXzNfMl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcyOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw1MTItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyKX0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzI7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0XykpKSkpKSkuVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQ3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKSkgaW5cbiAge0VsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmFnZV9sNTEyXzNfMiA9IGFnZV9sNTEyXzNfMl87XG4gICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRyb2l0X291dmVydCA9IGRyb2l0X291dmVydF87XG4gICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmNvbmRpdGlvbnNfaG9yc19hZ2UgPVxuICAgICAgIGNvbmRpdGlvbnNfaG9yc19hZ2VfO1xuICAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSA9XG4gICAgICAgcmVnaW1lX291dHJlX21lcl9sNzUxXzFffVxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZiAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbjogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnQpIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50ID1cbiAgbGV0IGxveWVyX3ByaW5jaXBhbF86IG1vbmV5ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiBpblxuICBsZXQgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXzogYm9vbCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc19pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luIGluXG4gIGxldCB6b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi56b25lX2luIGluXG4gIGxldCBsb2dlbWVudF9lc3RfY2hhbWJyZV86IGJvb2wgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbiBpblxuICBsZXQgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfOiBib29sID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gaW5cbiAgbGV0IHR5cGVfYWlkZV86IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnR5cGVfYWlkZV9pbiBpblxuICBsZXQgY29sb2NhdGlvbl86IGJvb2wgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5jb2xvY2F0aW9uX2luIGluXG4gIGxldCByZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV86IG1vbmV5ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gaW5cbiAgbGV0IGxvZ2VtZW50X21ldWJsZV9kODQyXzJfOiBib29sID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80XzogQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X2luIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2xveWVyX3ByaW5jaXBhbF9iYXNlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9jYXRpZi5sb3llcl9wcmluY2lwYWxfYmFzZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4MDsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04ODA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODgwOyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBsb3llcl9wcmluY2lwYWxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODA7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvY2F0aWYucmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc1wiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODgyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4MjsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04ODI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODgyOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODI7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2JlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc186IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9jYXRpZi5iw6luw6lmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXDDqXNcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg4NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODQ7IGVuZF9jb2x1bW49Nzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODg0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4NDsgZW5kX2NvbHVtbj03ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04ODQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODg0OyBlbmRfY29sdW1uPTc4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmLmRhdGVfY291cmFudGVcIl1cbiAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg4Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODc7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4NzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4NzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9jYXRpZi5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04ODk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODg5OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTg4OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODk7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg4OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODk7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvY2F0aWYuc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODkxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg5MTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04OTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODkxOyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg5MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTE7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3pvbmVfOiBab25lREhhYml0YXRpb24udCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmLnpvbmVcIl1cbiAgICAgIChlbWJlZF96b25lX2RfaGFiaXRhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04OTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODkzOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTg5Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTM7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHpvbmVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg5Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTM7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2xvZ2VtZW50X2VzdF9jaGFtYnJlXzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2NhdGlmLmxvZ2VtZW50X2VzdF9jaGFtYnJlXCJdIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg5NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTU7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODk1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg5NTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbG9nZW1lbnRfZXN0X2NoYW1icmVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg5NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTU7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2FnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzXzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2NhdGlmLsOiZ8OpZXNfb3VfaGFuZGljYXBfYWR1bHRlc19ow6liZXJnw6llc19vbsOpcmV1eF9wYXJ0aWN1bGllcnNcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg5ODsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTg5OTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04OTg7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT04OTk7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc18pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODk4OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9ODk5OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90eXBlX2FpZGVfOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcImNhbGN1bF9hcGxfbG9jYXRpZi50eXBlX2FpZGVcIl1cbiAgICAgIChlbWJlZF90eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkwMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MDI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTAyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwMjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHlwZV9haWRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05MDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTAyOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9jb2xvY2F0aW9uXzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmLmNvbG9jYXRpb25cIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkwNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gY29sb2NhdGlvbl8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2NhdGlmLnLDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MDY7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwNjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MDY7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2xvZ2VtZW50X21ldWJsZV9kODQyXzJfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvY2F0aWYubG9nZW1lbnRfbWV1YmzDqV9kODQyXzJcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTA4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwODsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTA4OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBsb2dlbWVudF9tZXVibGVfZDg0Ml8yXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05MDg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTA4OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmLnLDqXNpZGVuY2VcIl1cbiAgICAgIChlbWJlZF9jb2xsZWN0aXZpdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTEwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkxMDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTEwOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNpZGVuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MTA7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJjYWxjdWxfYXBsX2xvY2F0aWZcIjtcbiAgICAgIFwiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmXCI7XG4gICAgICBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiXVxuICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZilcbiAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW4gPVxuICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2xveWVyX3ByaW5jaXBhbF9iYXNlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uem9uZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF96b25lXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVudF9lc3RfY2hhbWJyZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnR5cGVfYWlkZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90eXBlX2FpZGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfY29sb2NhdGlvbl87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3Jlc2lkZW5jZV99KSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X21vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBsYWZvbmRfbG95ZXJfZDgyM18xNl8yIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3BhcnRpY2lwYXRpb25fbWluaW1hbGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZV86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3BhcnRpY2lwYXRpb25fcGVyc29ubmVsbGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9wZXJzb25uZWxsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfOiBcbiAgICBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04NzY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg3Njsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODc2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mjg5OyBzdGFydF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mjg5OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5DaGFuZ2VtZW50IGluZm9zXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gbG95ZXJfcHJpbmNpcGFsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluZm9zXy5JbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LmFuY2llbl9sb3llcl9wcmluY2lwYWwpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LlBhc0RlQ2hhbmdlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSAoZnVuIChfOiB1bml0KSAtPiBhaWRlX2ZpbmFsZV8pKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTQ7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCJdXG4gICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbFwiXVxuICAgICAgICAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXylcbiAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTg3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04NzY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04NzY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCJdIChlbWJlZF9tb25leSlcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODc0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTg3NDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg3NDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg3NDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyODE7IHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MjgxOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9cbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuQ2hhbmdlbWVudCBpbmZvc18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vbiBsb3llcl9wcmluY2lwYWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluZm9zXy5JbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LmFuY2llbl9sb3llcl9wcmluY2lwYWwpKVxuICAgICAgICAgICAgICAgICAgICAgfCBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5QYXNEZUNoYW5nZW1lbnQgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LkNoYW5nZW1lbnQgaW5mb3NfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBsb3llcl9wcmluY2lwYWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluZm9zXy5JbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LmFuY2llbl9sb3llcl9wcmluY2lwYWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5mb3NfLkluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuYW5jaWVubmVfYWxsb2NhdGlvbl9sb2dlbWVudCkpKVxuICAgICAgICAgICAgICAgICAgICB8IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LlBhc0RlQ2hhbmdlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTkxMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MTM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg3NDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04NzQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSA9IGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVffVxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnQpIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudCA9XG4gIGxldCB0eXBlX2xvZ2VtZW50X2ZveWVyXzogVHlwZUxvZ2VtZW50Rm95ZXIudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbiBpblxuICBsZXQgZGF0ZV9jb252ZW50aW9ubmVtZW50XzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCByZWRldmFuY2VfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVkZXZhbmNlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiBpblxuICBsZXQgem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi56b25lX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfOiBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfaW4gaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLmNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXSAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4NDE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg0MTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODQxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDE7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODQxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDE7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMubm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODM2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MzY7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgzNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODM2OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ4MzY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDgzNjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxcIl1cbiAgICAgIChlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4Mzg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDgzODsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODM4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4Mzg7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODM4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4Mzg7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF9ub21icmVfcGFydHMucsOpc2lkZW5jZVwiXVxuICAgICAgKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4NDA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg0MDsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODQwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDA7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlc2lkZW5jZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODQwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDA7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpIChyYWlzZSBFbXB0eUVycm9yKSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfbm9tYnJlX3BhcnRzXCI7XG4gICAgICBcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF9ub21icmVfcGFydHNcIjtcbiAgICAgIFwiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIl0gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyKVxuICAgICh7Q2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfO1xuICAgICAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfO1xuICAgICAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X3Jlc2lkZW5jZV87XG4gICAgICAgIENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV99KSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSBpblxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDgxOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwODE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwODE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV99KSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XzogbW9uZXkgLT4gbW9uZXkgPSByZXN1bHRfLkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF90eXBlX2xvZ2VtZW50X2ZveWVyXzogVHlwZUxvZ2VtZW50Rm95ZXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIudHlwZV9sb2dlbWVudF9mb3llclwiXVxuICAgICAgKGVtYmVkX3R5cGVfbG9nZW1lbnRfZm95ZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDY1OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNjU7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0eXBlX2xvZ2VtZW50X2ZveWVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDY1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNjU7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb252ZW50aW9ubmVtZW50XzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIuZGF0ZV9jb252ZW50aW9ubmVtZW50XCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNjc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA2NzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDY3OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb252ZW50aW9ubmVtZW50XykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDY3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNjc7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDcxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzE7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNzE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA3MTsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA3MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDcxOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDczOyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDczOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzM7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDczOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzM7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNzU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA3NTsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDc1OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDc1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzU7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci56b25lXCJdXG4gICAgICAoZW1iZWRfem9uZV9kX2hhYml0YXRpb24pXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDc3OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDc3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzc7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB6b25lXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDc3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzc7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDc5OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDc5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzk7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDc5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzk7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVkZXZhbmNlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnJlZGV2YW5jZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDY5OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNjk7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZWRldmFuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNjk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA2OTsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIucsOpc2lkZW5jZVwiXSAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNzg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA3ODsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDc4OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzaWRlbmNlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDc4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzg7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XzogdW5pdCAtPiBib29sID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5jb25kaXRpb25fMl9kdV84MzJfMjVcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MTE7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgxMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODExOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTk2OyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTU5NjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2MS04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9uIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU1OTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NjA0OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYxLThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogdW5pdCAtPiBkZWNpbWFsID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1XCJdIChlbWJlZF9kZWNpbWFsKVxuICAgICAgKHJhaXNlIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyXCI7XG4gICAgICBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llclwiO1xuICAgICAgXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCJdXG4gICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcilcbiAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnR5cGVfbG9nZW1lbnRfZm95ZXJfaW4gPVxuICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF90eXBlX2xvZ2VtZW50X2ZveWVyXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9kYXRlX2NvbnZlbnRpb25uZW1lbnRfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc187XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnpvbmVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3pvbmVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVkZXZhbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZWRldmFuY2VfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3Jlc2lkZW5jZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVffSkpKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29lZmZpY2llbnRfcl9kODMyXzI1XzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9yX2Q4MzJfMjUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiBkZWNpbWFsID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9wbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5wbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF86IFxuICAgIG1vbmV5IC0+IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBpblxuICBsZXQgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0MTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0MTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNTM7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjgxMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjgxODsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTczODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzQ2OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mjc7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4NjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTY3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MTY3OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNDE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA0MTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfbWluaW1hbF9kZXBlbnNlX25ldHRlX2Q4NDJfMTdfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcIm1vbnRhbnRfbWluaW1hbF9kw6lwZW5zZV9uZXR0ZV9kODQyXzE3XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA0MDsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI4Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00Mjg3OyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA0MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDQwOyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzE1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xNVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAzOTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDE4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTgzOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDM5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X21pbmltYWxfYWlkZV9kODQyXzE1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4NDJfMTVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDM4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzg7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxOTU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDE5NTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWSUkgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMzg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAzODsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVxdWl2YWxlbmNlX2xveWVyXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIsOpcXVpdmFsZW5jZV9sb3llclwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMTM7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQyMTM7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg3MDhcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzU1OVwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI0ODsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDI0OTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0M1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNl9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjEzNjJcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzE5NlwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDM7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI2Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MjY3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzYwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzM2NVwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMzA7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQyMzE7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3NjA3XCIpXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjczNjVcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTE7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MTE7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg0MTRcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzEwMFwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY0ODsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY0OTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0M1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNl9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjA3M1wiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDM7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY2Nzsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjY4OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzAxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjQ0MFwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2Mjk7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MzA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MDEyXCIpXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY0NDBcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2ODE7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2ODE7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkF1dHJlc1BlcnNvbm5lcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4Mzc5XCIpXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTMwNDVcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MTg7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3MTk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkF1dHJlc1BlcnNvbm5lcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDU1NFwiKVxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxOTM5XCIpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDM7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQzOyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNzM3OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3Mzg7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0M1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNjk0MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjMyOVwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2OTk7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3MDA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkF1dHJlc1BlcnNvbm5lcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNjk0MVwiKVxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2MzI5XCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwODI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA4MjsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDgyOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDgyOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4MzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDgzMzsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODMzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MzM7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODMzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MzM7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLmNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXVxuICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODMyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MzI7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgzMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODMyOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDgzMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODMyOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7IFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUubl9ub21icmVfcGFydHNfZDgzMl8yNVwiXVxuICAgICAgKGVtYmVkX2RlY2ltYWwpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDM7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODQzOyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDM7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIjtcbiAgICAgIFwiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCI7XG4gICAgICBcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIl0gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlKVxuICAgICh7Q2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1X30pKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUubW9udGFudCBpblxuICBsZXQgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDQyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwNDI7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgxNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODE0OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA0Mjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDQyOyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc1wiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTA0NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5NTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDAyOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjgwOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4NzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4OTQ7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTAxOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03ODM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk2Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yOTczOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUwMjsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTA5OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIikgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pIHRoZW4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0NDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ0OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNzA7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQxNzA7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWSUkgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ0OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODk7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1ODk7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ0OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2NTY7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2NTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzOTlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzOTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTIyNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDQ0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTg7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU4OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4NTM7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00ODUzOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xNV8pIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICBcIjBcIikpIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTVfKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU4OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwNTg7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDU4OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwNTg7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBsb3llcl9taW5pbWFsXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImxveWVyX21pbmltYWxcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0NTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDQ1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4NDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg0NTsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNDU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTA0NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhbGxvY2F0aW9uX21lbnN1ZWxsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMzQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDM0OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5NjU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTY1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgb19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGVxdWl2YWxlbmNlX2xveWVyX1xuICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc18pIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzQ7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDM0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzQ7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhaWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImFpZGVfZmluYWxlX2Zvcm11bGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1NTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDU1OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3OTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDc5MzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBlcXVpdmFsZW5jZV9sb3llcl9cbiAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXykgbG95ZXJfbWluaW1hbF8pXG4gICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNTU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTA1NTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAzNjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTc0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDk3NDsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSBkZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICBtb250YW50X21pbmltYWxfZGVwZW5zZV9uZXR0ZV9kODQyXzE3XykgdGhlblxuICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIG1vbnRhbnRfbWluaW1hbF9kZXBlbnNlX25ldHRlX2Q4NDJfMTdfXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSBkZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpKSkpKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzY7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzY7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODY3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDg2NzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFiYXR0ZW1lbnRfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXVxuICAgICAgICAgICAgICAgICAgICBhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIGFiYXR0ZW1lbnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBhYmF0dGVtZW50XykpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDU5OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA1OTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDU5OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuY2VfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuY2VcIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjA7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDYwOyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4ODU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00ODg1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gYWlkZV9maW5hbGVfIHJlZGV2YW5jZV8pIHRoZW4gcmVkZXZhbmNlX1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjA7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9MTA2MDsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNjA7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9MTA2MDsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXSAodW5lbWJlZGRhYmxlKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2MTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjE7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg5OTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ4OTk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcmVkZXZhbmNlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcmVkZXZhbmNlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuY2VcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuY2VfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZGV2YW5jZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBjcmRzXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCI7IFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfbW9udGFudF8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCI7IFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTBcIikpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2MTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDYxOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA2MTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDYxOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2Mjsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjI7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkyMDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5MjA7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gbW9udGFudF9taW5pbWFsX2FpZGVfZDg0Ml8xNV8pXG4gICAgICAgICAgICAgICAgICAgIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZSBhaWRlX2ZpbmFsZV8pKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDYyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwNjI7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDYyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwNjI7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwODY7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDg2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwODY7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDg2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSBpblxuICB7Q2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlID1cbiAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXztcbiAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXIgPSBlcXVpdmFsZW5jZV9sb3llcl87XG4gICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlcyA9XG4gICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXztcbiAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubG95ZXJfbWluaW1hbCA9IGxveWVyX21pbmltYWxfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlID0gYWlkZV9maW5hbGVfZm9ybXVsZV87XG4gICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsX31cblxubGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW46IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnQpIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW4gaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luIGluXG4gIGxldCB6b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnpvbmVfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luIGluXG4gIGxldCBzaXR1YXRpb25fcjgyMl8xMV8xM18xN186IGJvb2wgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luIGluXG4gIGxldCBkYXRlX3NpZ25hdHVyZV9wcmV0XzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9zaWduYXR1cmVfcHJldF9pbiBpblxuICBsZXQgdHlwZV90cmF2YXV4X2xvZ2VtZW50XzogVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9pbiBpblxuICBsZXQgbG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlXzogYm9vbCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luIGluXG4gIGxldCBkYXRlX2VudHJlZV9sb2dlbWVudF86IGRhdGUgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfZW50cmVlX2xvZ2VtZW50X2luIGluXG4gIGxldCBjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldF86IG1vbmV5ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jaGFyZ2VzX21lbnN1ZWxsZXNfcHJldF9pbiBpblxuICBsZXQgY29wcm9wcmlldGVfOiBib29sID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jb3Byb3ByaWV0ZV9pbiBpblxuICBsZXQgb3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX19ldGF0XzogYm9vbCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRfaW4gaW5cbiAgbGV0IHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwidGF1eF9mcmFuY3NfdmVyc19ldXJvc1wiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk1NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NTU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hdXRyZXNfc291cmNlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzMwOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBwcmVtaWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUsOoZ2xlbWVudCAoQ0UpIG7CsDI4NjYvOTggZHUgY29uc2VpbCBkdSAzMSBkw6ljZW1icmUgMTk5OCBjb25jZXJuYW50IGxlcyB0YXV4IGRlIGNvbnZlcnNpb24gZW50cmUgbCdldXJvIGV0IGxlcyBtb25uYWllcyBkZXMgw4l0YXRzIG1lbWJyZXMgYWRvcHRhbnQgbCdldXJvXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LjU1OTU3XCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU1OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0NDc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQ0NzsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQ3OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDQ3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDc7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQ5OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDQ5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDk7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDQ0OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQ5OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJjYWxjdWxfbm9tYnJlX3BhcnRzXCI7XG4gICAgICBcIkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpw6l0w6lcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwiY2FsY3VsX25vbWJyZV9wYXJ0c1wiO1xuICAgICAgXCJDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByacOpdMOpXCJdXG4gICAgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlKVxuICAgICh7Q2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxffSkpKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8xMV86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMTEgaW5cbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY29udHJpYnV0aW9uc19zb2NpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwOTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwOTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDA5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV99KSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XzogbW9uZXkgLT4gbW9uZXkgPSByZXN1bHRfLkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50IGluXG4gIGxldCBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk2NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NjY7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzMzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzMzg7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjc5NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjgwMzsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTcyMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzMxOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTk7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTEyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTI7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDAzMjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDAzMjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X2Q4NDJfMTJfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJjb2VmZmljaWVudF9kODQyXzEyXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NjQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTY0OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDEzMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTMzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTYuMjVcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTY0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk2NDsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9kODQyXzExXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwiY29lZmZpY2llbnRfZDg0Ml8xMVwiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTYzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk2MzsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxMjE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDEyMTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzNFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NjM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTYzOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xMl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzEyXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk2Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NjI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTQxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxNDE7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzkwMDAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk2Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NjI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzExXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTFcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTYxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk2MTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxMTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDExMzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNTAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk2MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NjE7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9taW5pbWFsX2FpZGVfZDg0Ml82XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X21pbmltYWxfYWlkZV9kODQyXzZcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTYwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk2MDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwNTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA1ODsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk2MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NjA7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml82XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk1Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NTI7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDQ3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQwNDc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk1Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NTI7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29uZGl0aW9uX2Q4NDJfMTFfM186IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiOyBcImNvbmRpdGlvbl9kODQyXzExXzNcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk2NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NjU7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NjU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NjU7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTkyNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTI4OyBlbmRfY29sdW1uPTczO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSUkgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9fZXRhdF8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU1NzI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NTc5OyBlbmRfY29sdW1uPTczO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYxLThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmlldGVfYWlkZWVfX2V0YXRfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDY3Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDY3OTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlByZXZ1RGFuc0xpc3RlUjMyMV8xNSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OSkgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05NjU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTY1OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NjU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTY1OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2Jhc2VfOiBkYXRlIC0+IGludGVnZXIgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChkYXRlX2NhbGN1bF86IGRhdGUpIChub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlcikgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yOTU1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5NTU7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE1ODcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTkxMzAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA1NTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTEzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxNzEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjI5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI4MDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyODAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTM5MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzA2MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODQ3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5MTIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk3NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNDIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTg3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjE4NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTkxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzA2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE1ODQwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MjYwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTc5ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODcwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk0MjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwODYwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDg2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDAwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwMDA7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NykgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2MDQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTkzNDAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA3ODAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTM3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxOTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjU1MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMwNTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzMDUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTQwODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzI1MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODY3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5MzMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk5OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNjUwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjExMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjIxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTkzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzIwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MDEwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3NDUwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTgxODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODkxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk2NDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMDkwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTA5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDQ1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwNDU7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTcpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OCkgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2MzMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk2OTAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjExNjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTc2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMzYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjk2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM0NjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTQzMzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzU2MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTAxMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NjYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAzNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMDIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjUxMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI1MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzQ0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2MzAwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3NzcwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTg1MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTI1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk5OTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNDcwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTQ3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDkwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwOTA7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTgpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OSkgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2NzIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAxNjAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE2NzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyOTAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzUxMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQwMjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MDIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwOTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTQ2NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzk4MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTQ3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwMTUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA4NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNTIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA1MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMwNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzc2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2NjkwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MjAwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTg5NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTcxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA0NzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxOTkwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTk5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTM1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxMzU7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTkpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMCkgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2NzQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAxODAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE2OTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyOTIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzUzMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQwNDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MDQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwOTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTQ2ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODAwMDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTQ5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwMTcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA4NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNTQwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMwNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzc3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2NzEwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MjIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTg5NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTczMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA0OTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMDEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjAxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTgzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxODM7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDApICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMSkgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2OTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAzODAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE5MTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjUyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMTUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzc3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQyODAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTQ4MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODE4MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTY4MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwMzcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjEwNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNzYwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzMwMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMzMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzkxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2ODgwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4NDAwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTkxNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTkzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA2OTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMjMwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjIzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjMxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMzE7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDEpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMikgKDEpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA2MjAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjIxNzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjc5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzNDMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDA2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ1NzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0NTcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTUwMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODQwMDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTkyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwNjEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjEzMjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMDIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzU4MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM1ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNDA4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MDgwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4NjIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTkzOTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDE3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA5NDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyNTAwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjUwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjc5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyNzk7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMikgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjA4NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzE0MzVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzc5OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ3NDNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NzE5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjY3OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzQ1N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzQ1N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyNjJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjg4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjgwNTFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDM2OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzE0MjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyNTAyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzU2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTk0N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTk0N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTQ2NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjYwMzhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyODM4NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjk1NjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwNzQ5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTkyM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDMwMVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDMwMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzMjY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzMyNjsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAzKSAoNykgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2Mzk3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTgxMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0MjA0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTE2MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYxNDhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3MTE5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3OTA2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3OTA2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMwMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMTU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyODM4OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwNzMyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTc5N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI4OTJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzOTcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2Mzc4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2Mzc4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE2M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxNzIzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjM1MFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI4NzI3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTkxNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzExMThcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMzA2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NzEzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NzEzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAwOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0OTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzczOyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAzKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg5KSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY3MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMTk0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ2MTRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NTgyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjU4MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc1NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzgzNjFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzgzNjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzQxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjM0MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI4NzI5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzExMDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMTc5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzI4N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQzODBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY4MTVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY4MTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE5ODRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2NjY2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjkwNzJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwMjc0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTQ5MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI2OTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzUxMzBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzUxMzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDIwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0MjA7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg5KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNykgKDEpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzE5NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI3NzNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTIzN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYyMjJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3MjQwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODI0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTA1MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTA1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0MDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMzg1OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjkyNDZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTY2MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI3NThcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzODg2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDk5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzQ3OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzQ3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyNTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjM4MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjcxNDZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTU5NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzA4MTlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMDU4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzI4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTc2MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTc2MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0Njc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQ2NzsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA4KSAoMSkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI3OTU2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzY5MVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjI0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzIzNlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzgyODNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5MzExXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwMTQ0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwMTQ0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI0NTI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDA2NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyNTQ4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzY3NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ4NjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1OTc5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4NTI3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4NTI3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM1MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMDA3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzkwNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwNDI0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTY4MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI5NTZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0MjE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NzMzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NzMzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE4N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0OTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUxNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTE0OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA4KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDkpICgxKSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjg3MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0NjIxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcyMjRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4MjY0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzOTM0MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAzOTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEyNTJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEyNTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTkyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjUyMDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwODk1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM0NDZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0NjA0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTc5NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY5NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk1OTBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk1OTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDQyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjM2NDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI4Njc2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzEyNjRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyNTU2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzg2NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzUxNThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc3NzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc3NzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjc1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTYxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1NjE7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMCkgKDEpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTU3NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU2NDJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODMyMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzkzOTNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwNTAxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTU4OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjQ2OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjQ2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2OThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTk0NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzE4MDZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDQzM1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU2MjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2ODUyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODA2M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDc1OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDc1OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNDMzOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjk1MjJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjE4NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM1MTZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0ODY1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjE5NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODg5MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODg5MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM2MDg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzYwODsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMSkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI5NjcwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTc1N1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4NDQ1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzOTUxOVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDA2MDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxNzIxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyNjA1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyNjA1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcxMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2MDI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTkwOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0NjQzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTczOVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY5NzBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4MTg1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwODg4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwODg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI0NDE3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTYxNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMjg5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzYyM1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ5NzdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MzExXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MDE2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MDE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0OTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzY1NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNjU1OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxKSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjk5OTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MTQ5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg4NjhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5OTU0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTA3OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDIxODBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDMwNzRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDMwNzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzUxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjYzMTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMjU5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ5MjNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MTMyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzM3M1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg2MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzMzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzMzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTk0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjQ2ODZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI5OTQyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI2NDRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzOTkzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTM2MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY3MTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk0NDVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk0NDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDIwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzAyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3MDI7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMykgKDEpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDI5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY1MTBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzOTI1N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAzNTRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxNDg5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MjYwMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzUwNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzUwNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3ODlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjU3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI1ODJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTI3MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY0OTNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NzUxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODk5MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTc1MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTc1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNDkzM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzAyNDFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjk3MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQzMzNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NzE2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzA3N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTgzOVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTgzOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3NDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzc0OTsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoMTApICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDk0N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcyOTVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDEwMVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDEyMjJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyMzgxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MzUxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDQ0MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDQ0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4NzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzE0OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzMyODNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjAzMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcyNzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4NTYzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzOTgyOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjY0OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjY1OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTQ2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzA4OTFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzY3OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzUwNzFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDg0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzg3NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDY5NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDY5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3OTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzc5NjsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDEwKSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzExMjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NTA4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAzMzBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxNDU3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MjYyM1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDM3NjZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQ2OTNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQ2OTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODkyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjczMDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzNDczXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYyMzVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NDkwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODc4M1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAwNTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI4OTJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI4OTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjU2MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxMDY3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM4NzFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MjcxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjY5MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzgwOTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5MjhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODQzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM4NDM7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMCkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxMTQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzUzOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwMzYyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTQ5MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDI2NTdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQzODAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0NzI5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0NzI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg5NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI3MzI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjY0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzUyMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg4MTRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwMDg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyOTI2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyOTI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzczMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI1NjM0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTA5MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzODk4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTI5OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY3MjFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4MTIwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwOTYxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwOTYxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0OTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg5MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zODkwOyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTM4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc4MjBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDY2NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE4MDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyOTc3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NDEzMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTA2NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTA2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzUzMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM3NTFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjUzNlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc4MDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5MTA1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDM4OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzI0OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzI0OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTgyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzEzMjVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDE1MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU1NjRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2OTk2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODQwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTI2OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTI2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Mzc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzkzNzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTQ3NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc5MzNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDc4N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE5MjdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQzMTA2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NDI2MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM4NTNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjY0NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc5MTVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5MjIyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDUxMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzM3OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzM3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NzFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTkwNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzE0MTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDI1NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU2NzBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3MTA3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODUyMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTM5MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTM5MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1ODhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk0OTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ0OTsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkgY29wcm9wcmlldGVfKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXykpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQxOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTkzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzY3XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTkzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzY3XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5NTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE5NjE7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04Mzc7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg0NDsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzAyNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMDMzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU2OTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzODE7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzODg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElYIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXykpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjYwOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNjc7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzY3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzY3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg3NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg4MTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8pIHRoZW4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU2OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk0Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjk1MzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjI1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjI1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0ODI7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0ODk7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjAgLSBBcnLDqnTDqSBkdSAzIGphbnZpZXIgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMCBOT1IgOiBMT0dMMTkzNDAwNkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDkxOyBzdGFydF9jb2x1bW49NTc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwOTE7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wcm9wcmlldGVfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI4MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MTJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTI3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTUzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU1MzsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjcxMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2MzE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNjMxOyBlbmRfY29sdW1uPTE2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM5OVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMjI0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDM1OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDM1OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MTJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTI3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXykpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTU7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTU7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjU5MDsgc3RhcnRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjU5MDsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM5OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc2V1aWxfbWluaW1hbF9yZXNzb3VyY2VzX21lbmFnZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwic2V1aWxfbWluaW1hbF9yZXNzb3VyY2VzX23DqW5hZ2VcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTU0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1NDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTU0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTU0OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NzA1OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzExOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTIpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDkpICgzMCkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5PYmplY3RpZkRlY2VuY2VMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlByZXZ1RGFuc0xpc3RlUjMyMV8xNSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfXG4gICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfZDg0Ml8xMl8pKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTU0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTU0OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NzIzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzI0OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndF9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTJfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU0OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTgwOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ1Nzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0NTc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfNl8pXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml82XykpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTgwOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05ODA7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTgwOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfY29wcm9wcmlldGVfOiBkYXRlIC0+IGludGVnZXIgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiXSAodW5lbWJlZGRhYmxlKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGRhdGVfY2FsY3VsXzogZGF0ZSkgKG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyKSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk1MDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05NTA7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUwOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTA7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTA7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTUwOyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTA7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTA7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTUwOyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2MTA7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wcm9wcmlldGVfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9iYXNlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDFcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzMzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUzMzsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHJvcHJpZXRlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9iYXNlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY2FsY3VsXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDA3Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwNzM7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wcm9wcmlldGVfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2Jhc2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKSBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5ODE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTgxOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCJdXG4gICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9iYXNlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2RhdGUpIGRhdGVfY2FsY3VsXykpICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7IFwiaW5wdXQxXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9pbnRlZ2VyKSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05NTA7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTUwOyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk1MDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05NTA7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjQxOyBzdGFydF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDY0MTsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgb19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGNoYXJnZXNfbWVuc3VlbGxlc19wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc18pIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05NTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk1Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NTY7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX3NldWlsXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzX3NldWlsXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkyNDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05MjQ7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkyNDsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkyNDsgZW5kX2NvbHVtbj0xNTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc0NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDc0NDsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTEyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fcjgyMl8xMV8xM18xN18pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV8pKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3MzQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDczNDsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV9cbiAgICAgICAgICAgICAgICAgc2V1aWxfbWluaW1hbF9yZXNzb3VyY2VzX21lbmFnZV8pIHRoZW5cbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgIChvX3JvdW5kX21vblxuICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gc2V1aWxfbWluaW1hbF9yZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ5OTlcIikpXG4gICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDFcIikpKVxuICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSBlbHNlXG4gICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTI0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTkyNDsgZW5kX2NvbHVtbj0xNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbV86IGRhdGUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlZ2VyIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChkYXRlX2NhbGN1bF86IGRhdGUpIChub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlcikgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTE7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTUxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk1MTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTUxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUxOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk1MTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUxOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTUxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk1MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk1MTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk1MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQwOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDE3OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19jb3Byb3ByaWV0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODczO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjg4MTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19jb3Byb3ByaWV0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTgwMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgxMDsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2NvcHJvcHJpZXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDFcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjgzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02OTE7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfY29wcm9wcmlldGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY2FsY3VsXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE5NzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19jb3Byb3ByaWV0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2RhdGUpIGRhdGVfY2FsY3VsXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDFcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk4Nzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5ODc7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiXVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfY29wcm9wcmlldGVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2RhdGUpIGRhdGVfY2FsY3VsXykpXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcikgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUxOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk1MTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NTE7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTUxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDEwOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDEwOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAxMDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUucmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc1wiXVxuICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQzOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDM7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfc2V1aWxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDQ0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQzOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUuY29uZGl0aW9uXzJfZHVfODMyXzI1XCJdXG4gICAgICAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0NDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQ0MjsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQyOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ0NDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQ0MjsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiBkZWNpbWFsID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5uX25vbWJyZV9wYXJ0c19kODMyXzI1XCJdXG4gICAgICAoZW1iZWRfZGVjaW1hbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0NDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQ0NTsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQ1OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bF9ub21icmVfcGFydHNfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDQ0NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQ1OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZS50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIjtcbiAgICAgIFwiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVwiO1xuICAgICAgXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCJdIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSlcbiAgICAoe0NhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID1cbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV87XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV99KSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X21vbnRhbnRfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLm1vbnRhbnQgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3R5cGVfbG9nZW1lbnRfZm95ZXJfOiBUeXBlTG9nZW1lbnRGb3llci50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci50eXBlX2xvZ2VtZW50X2ZveWVyXCJdXG4gICAgICAoZW1iZWRfdHlwZV9sb2dlbWVudF9mb3llcilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05OTI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTkyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTkyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk5MjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBUeXBlTG9nZW1lbnRGb3llci5BdXRyZSAoKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05OTI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTkyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9kYXRlX2NvbnZlbnRpb25uZW1lbnRfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5kYXRlX2NvbnZlbnRpb25uZW1lbnRcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTk0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk5NDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTk5NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05OTQ7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9vZl9udW1iZXJzICgxOTcwKSAoMSkgKDEpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk5NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05OTQ7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5yZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzXCJdXG4gICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTk4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk5ODsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTk5ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05OTg7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX3NldWlsXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05OTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTk4OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIubm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl1cbiAgICAgIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMDA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwMDsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwMDsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDAwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDA7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxcIl1cbiAgICAgIChlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDAyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDI7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDAyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDI7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDAyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDI7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3pvbmVfOiBab25lREhhYml0YXRpb24udCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIuem9uZVwiXSAoZW1iZWRfem9uZV9kX2hhYml0YXRpb24pXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDA0OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDA0OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHpvbmVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMDQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwNDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDA3OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDA3OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMDc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwNzsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVkZXZhbmNlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnJlZGV2YW5jZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTk2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk5NjsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTk5Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05OTY7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk5Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05OTY7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5yw6lzaWRlbmNlXCJdIChlbWJlZF9jb2xsZWN0aXZpdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDA2OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDA2OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc2lkZW5jZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDA2OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfOiB1bml0IC0+IGJvb2wgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLmNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXSAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0MDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQwOTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDA5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV86IFxuICAgIHVuaXQgLT4gYm9vbCA9IGZ1biAoXzogdW5pdCkgLT4gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl1cbiAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTkwODsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5MDg7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUlJIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IFNhaW50LUJhcnRow6lsZW15IGV0IFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTkwODsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTkwODsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYyLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUlJIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogU2FpbnQtQmFydGjDqWxlbXkgZXQgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5MDg7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTkwODsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJSSA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogU2FpbnQtQmFydGjDqWxlbXkgZXQgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTEwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5MTM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYyLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSUkgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IFNhaW50LUJhcnRow6lsZW15IGV0IFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTU1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NTYxOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjEtOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogdW5pdCAtPiBkZWNpbWFsID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1XCJdIChlbWJlZF9kZWNpbWFsKVxuICAgICAgKHJhaXNlIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llclwiOyBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIl1cbiAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llclwiOyBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIl1cbiAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyKVxuICAgICh7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbiA9XG4gICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3R5cGVfbG9nZW1lbnRfZm95ZXJfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvbnZlbnRpb25uZW1lbnRfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2RhdGVfY29udmVudGlvbm5lbWVudF87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uem9uZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfem9uZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZWRldmFuY2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3JlZGV2YW5jZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVzaWRlbmNlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV99KSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9jb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1XzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9jb2VmZmljaWVudF9yX2Q4MzJfMjVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3JfZDgzMl8yNSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3BsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnBsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfc2V1aWxfOiBkZWNpbWFsID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXzogXG4gICAgbW9uZXkgLT4gbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlIGluXG4gIGxldCBzZXVpbF9taW5pbWFsX2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInNldWlsX21pbmltYWxfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTUzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1MzsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTUzOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjgzOyBzdGFydF9jb2x1bW49NztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NjgzOyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl9kODQyXzExXzNfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX3NldWlsX1xuICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X2Q4NDJfMTFfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2NjQ7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gbW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzExXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTUzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1MzsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJwbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNlwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTQ1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ1ODg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ1ODg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICBsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgKGxldCBwbGFmb25kX3NpZ25hdHVyZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2RhdGUpIGRhdGVfc2lnbmF0dXJlX3ByZXRfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDFcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAobGV0IHBsYWZvbmRfZW50cmVlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSkgZGF0ZV9lbnRyZWVfbG9nZW1lbnRfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDFcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2x0X21vbl9tb24gcGxhZm9uZF9zaWduYXR1cmVfIHBsYWZvbmRfZW50cmVlXylcbiAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBwbGFmb25kX2VudHJlZV8gZWxzZSBwbGFmb25kX3NpZ25hdHVyZV8pKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ1Njk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDU2OTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiXVxuICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbV8pXG4gICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiO1xuICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSkgZGF0ZV9zaWduYXR1cmVfcHJldF8pKVxuICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgXCJpbnB1dDFcIl0gKGVtYmVkX2ludGVnZXIpIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTQ1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1lbnN1YWxpdGVfbWluaW1hbGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwibWVuc3VhbGl0w6lfbWluaW1hbGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NDM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9OTQzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDM4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0Mzg7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9tb250YW50XykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTQzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTk0MzsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTk0NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQxMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDEyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9zZXVpbF8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk0NDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT05NDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWJhdHRlbWVudF9kZXBlbnNlX25ldHRlX21pbmltYWxlXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFsbG9jYXRpb25fbWVuc3VlbGxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTU4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDY1Mzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ2NTM7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiOyBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdIGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiOyBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19sdF9tb25fbW9uIGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgIHNldWlsX21pbmltYWxfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gc2V1aWxfbWluaW1hbF9kZXBlbnNlX25ldHRlX21pbmltYWxlX1xuICAgICAgICAgICAgICAgICAgICAgICBkZXBlbnNlX25ldHRlX21pbmltYWxlXykgZWxzZVxuICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTk1ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NTg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTU4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtZW5zdWFsaXRlX2VsaWdpYmxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiOyBcIm1lbnN1YWxpdMOpX8OpbGlnaWJsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk0MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT05NDE7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MjM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQyMzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbWVuc3VhbGl0ZV9wcmluY2lwYWxlXyBwbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82XylcbiAgICAgICAgICAgICAgdGhlbiBwbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82XyBlbHNlIG1lbnN1YWxpdGVfcHJpbmNpcGFsZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk0MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT05NDE7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kZXBlbnNlX25ldHRlX21pbmltYWxlXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTgxOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ3MTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0NzE7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWJhdHRlbWVudF8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgIGFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWYgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gYWJhdHRlbWVudF8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gYWJhdHRlbWVudF8pKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTk4MTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05ODE7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTgxOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhaWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiOyBcImFpZGVfZmluYWxlX2Zvcm11bGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NzY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9OTc2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MzkwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQzOTA7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uXG4gICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIG1lbnN1YWxpdGVfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc18pIG1lbnN1YWxpdGVfbWluaW1hbGVfKVxuICAgICAgICAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NzY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9OTc2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXSAodW5lbWJlZGRhYmxlKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTgyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MjsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ4NTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0ODU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGNyZHNfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiXSBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MFwiKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05ODI7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTgyOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk4Mjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05ODI7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTgzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDUwNTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ1MDU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4NDJfNl8pXG4gICAgICAgICAgICAgICAgICAgIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZSBhaWRlX2ZpbmFsZV8pKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05ODM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTgzOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk4Mzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05ODM7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTkyKSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDE1OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAxNTsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAxNTsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMTU7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDE0OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAxNDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAxNDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMTQ7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSBpblxuICB7Q2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfZWxpZ2libGUgPVxuICAgICBtZW5zdWFsaXRlX2VsaWdpYmxlXztcbiAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGUgPVxuICAgICAgIG1lbnN1YWxpdGVfbWluaW1hbGVfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZV87XG4gICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF99XG5cbmxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udCkgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQgPVxuICBsZXQgbW9kZV9vY2N1cGF0aW9uXzogTW9kZU9jY3VwYXRpb24udCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbiBpblxuICBsZXQgdHlwZV9haWRlXzogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udHlwZV9haWRlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfOiBtb25leSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV86IFNpdHVhdGlvbkZhbWlsaWFsZS50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbiBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCB6b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi56b25lX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBjYXRlZ29yaWVfY2FsY3VsX2FwbF86IENhdGVnb3JpZUNhbGN1bEFQTC50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCJjYXTDqWdvcmllX2NhbGN1bF9hcGxcIl1cbiAgICAoZW1iZWRfY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTgyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT04MjY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDQ2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE0NDY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBtb2RlX29jY3VwYXRpb25fXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBsb2NhdGlvbl8gLT5cbiAgICAgICAgICAgICAgICAoQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIGxvY2F0aW9uXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIGxvZ2VtZW50Zm95ZXJfIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5Mb2dlbWVudEZveWVyIGxvZ2VtZW50Zm95ZXJfKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIHByb3ByaWV0YWlyZV8gLT5cbiAgICAgICAgICAgICAgICAoQ2F0ZWdvcmllQ2FsY3VsQVBMLkFjY2Vzc2lvblByb3ByaWV0ZSBwcm9wcmlldGFpcmVfKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIGxvY2F0aW9uXyAtPlxuICAgICAgICAgICAgICAgIChDYXRlZ29yaWVDYWxjdWxBUEwuTG9jYXRpb24gbG9jYXRpb25fKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgcHJvcHJpZXRhaXJlXykpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTgyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT04MjY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfYXJyb25kaV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXZlY19hcnJvbmRpXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODE5OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTgxOTsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE5Njg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTk2ODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgYXJyb25kaV9jZW50YWluZV9zdXBlcmlldXJlXyByZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04MTk7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9ODE5OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7IFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODI3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTgyNzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04MDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSAoKSlcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLk1hcmllcyBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5QYWNzZXMgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlICgpKVxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5zIF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKSlcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlU2VwYXJlRGVGYWl0IF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlICgpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODI3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTgyNzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc291c19jYWxjdWxfdHJhaXRlbWVudF86IFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCJzb3VzX2NhbGN1bF90cmFpdGVtZW50XCJdXG4gICAgKGVtYmVkX3RyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTgyOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT04Mjk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04Mjk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04Mjk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzNTU7IHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MzU1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBjYXRlZ29yaWVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkFjY2Vzc2lvblByb3ByaWV0ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2dlbWVudEZveWVyIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggY2F0ZWdvcmllX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVDYWxjdWxBUEwuTG9jYXRpb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9udWxfdG91dF9sZV90ZW1wc199KVxuICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9udWxfdG91dF9sZV90ZW1wc199KVxuICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2dlbWVudEZveWVyIGxvZ2VtZW50X2ZveWVyX18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgdHJhaXRlbWVudF9mb3JtdWxlXyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCI7IFwiaW5wdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIucmVkZXZhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM3ODsgc3RhcnRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mzc4OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfYXJyb25kaV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MzcyOyBzdGFydF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM3MjsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ2VtZW50X2ZveWVyX18uTG9nZW1lbnRGb3llci5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzODA7IHN0YXJ0X2NvbHVtbj0xNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MzgwOyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IGRhdGVfY291cmFudGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM3NTsgc3RhcnRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzNzU7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MzczOyBzdGFydF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM3MzsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Mzc2OyBzdGFydF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM3NjsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzNzQ7IHN0YXJ0X2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mzc0OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfZXN0X2NoYW1icmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB0cnVlIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM4NDsgc3RhcnRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzODQ7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IGZhbHNlIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM5MTsgc3RhcnRfY29sdW1uPTcyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzOTE7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi50eXBlX2FpZGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB0eXBlX2FpZGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM5Mjsgc3RhcnRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzOTI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5jb2xvY2F0aW9uX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZmFsc2Ugd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Mzg4OyBzdGFydF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM4ODsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Mzk1OyBzdGFydF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM5NTsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM5Njsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzOTY7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNpZGVuY2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM5Nzsgc3RhcnRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzOTc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTYgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wbGFmb25kX2xveWVyX2Q4MjNfMTZfMiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wbGFmb25kX2xveWVyX2Q4MjNfMTZfMik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wYXJ0aWNpcGF0aW9uX21pbmltYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9wZXJzb25uZWxsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAocGFyYW0wXzogbW9uZXkpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIHBhcmFtMF8pKSkpKSkpfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzNzE7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzOTg7IGVuZF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlIHJlc3VsdF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSl9KSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Njk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTQ2OTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIGNhdGVnb3JpZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBDYXRlZ29yaWVDYWxjdWxBUEwuTG9jYXRpb24gbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgKGxldCB0cmFpdGVtZW50X2Zvcm11bGVfIDpcbiAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmKVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luKVxuICAgICAgICAgICAgICAgICAgICAgICh7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb3llcl9wcmluY2lwYWxfYmFzZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgKGxvY2F0aW9uXy5Mb2NhdGlvbi5sb3llcl9wcmluY2lwYWwpIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ3OTsgc3RhcnRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ3OTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGlfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ3NDsgc3RhcnRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDc0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2NhdGlvbl8uTG9jYXRpb24uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ4MTsgc3RhcnRfY29sdW1uPTE1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDgxOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IGRhdGVfY291cmFudGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ3Nzsgc3RhcnRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDc3OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ3NTsgc3RhcnRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDc1OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Nzg7IHN0YXJ0X2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ3ODsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uem9uZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NzY7IHN0YXJ0X2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ3NjsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfZXN0X2NoYW1icmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvY2F0aW9uXy5Mb2NhdGlvbi5sb2dlbWVudF9lc3RfY2hhbWJyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0ODI7IHN0YXJ0X2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ4MjsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2NhdGlvbl8uTG9jYXRpb24uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDg1OyBzdGFydF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0ODU7IGVuZF9jb2x1bW49ODA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnR5cGVfYWlkZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB0eXBlX2FpZGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ4Njsgc3RhcnRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDg2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5jb2xvY2F0aW9uX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IChsb2NhdGlvbl8uTG9jYXRpb24uY29sb2NhdGlvbikgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDgzOyBzdGFydF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0ODM7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGxvY2F0aW9uXy5Mb2NhdGlvbi5iYWlsbGV1cilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlQmFpbGxldXIuQmFpbGxldXJTb2NpYWwgYmFpbGxldXJfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWlsbGV1cl8uQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX3BlcmN1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVCYWlsbGV1ci5CYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWwgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUJhaWxsZXVyLkJhaWxsZXVyUHJpdmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0ODg7IHN0YXJ0X2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ5MTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSAobG9jYXRpb25fLkxvY2F0aW9uLmxvZ2VtZW50X21ldWJsZV9kODQyXzIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDkyOyBzdGFydF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0OTI7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNpZGVuY2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ5Mzsgc3RhcnRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDkzOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKX0pKSkpXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wbGFmb25kX2xveWVyX2Q4MjNfMTZfMiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGxhZm9uZF9sb3llcl9kODIzXzE2XzIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wYXJ0aWNpcGF0aW9uX21pbmltYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wYXJ0aWNpcGF0aW9uX21pbmltYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9wZXJzb25uZWxsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9wZXJzb25uZWxsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXJhbTBfOiBtb25leSkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIHBhcmFtMF8pKSkpKSkpfSlcbiAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImRpcmVjdFwiO1xuICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmKVxuICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NzM7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDk0OyBlbmRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlIHJlc3VsdF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlKX0pKVxuICAgICAgICAgICAgfCBDYXRlZ29yaWVDYWxjdWxBUEwuQWNjZXNzaW9uUHJvcHJpZXRlIHByb3ByaWV0YWlyZV8gLT5cbiAgICAgICAgICAgICAgICAobGV0IHRyYWl0ZW1lbnRfZm9ybXVsZV8gOlxuICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUubWVuc3VhbGl0ZV9wcmluY2lwYWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MzI7IHN0YXJ0X2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MzI7IGVuZF9jb2x1bW49NzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGlfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUyNzsgc3RhcnRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTI3OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTI4OyBzdGFydF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1Mjg7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTMxOyBzdGFydF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MzE7IGVuZF9jb2x1bW49Nzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udHlwZV90cmF2YXV4X2xvZ2VtZW50X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUudHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTMzOyBzdGFydF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MzM7IGVuZF9jb2x1bW49ODA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9zaWduYXR1cmVfcHJldF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5wcmV0KS5QcmV0LmRhdGVfc2lnbmF0dXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzNDsgc3RhcnRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTM0OyBlbmRfY29sdW1uPTY4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLmxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MzY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUzNjsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX2VudHJlZV9sb2dlbWVudF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLmRhdGVfZW50cmVlX2xvZ2VtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzNzsgc3RhcnRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTM3OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmNvcHJvcHJpZXRlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5jb3Byb3ByaWV0ZSkgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTM4OyBzdGFydF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1Mzg7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5zaXR1YXRpb25fcjgyMl8xMV8xM18xNylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Mzk7IHN0YXJ0X2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUzOTsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi56b25lX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHpvbmVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUyOTsgc3RhcnRfY29sdW1uPTIxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTI5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnR5cGVfcHJldF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5wcmV0KS5QcmV0LnR5cGVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NDA7IHN0YXJ0X2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU0MDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5hbmNpZW5uZXRlX2xvZ2VtZW50X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuYW5jaWVubmV0ZV9sb2dlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NDE7IHN0YXJ0X2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU0MTsgZW5kX2NvbHVtbj02ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IGRhdGVfY291cmFudGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzMDsgc3RhcnRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTMwOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKX0pKSkpXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfZWxpZ2libGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfZWxpZ2libGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUubWVuc3VhbGl0ZV9taW5pbWFsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTAgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAocGFyYW0wXzogbW9uZXkpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBwYXJhbTBfKSkpKSkpKX0pXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUyNjsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTQyOyBlbmRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlIHJlc3VsdF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSl9KSlcbiAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvZ2VtZW50Rm95ZXIgbG9nZW1lbnRfZm95ZXJfXyAtPlxuICAgICAgICAgICAgICAgIChsZXQgdHJhaXRlbWVudF9mb3JtdWxlXyA6XG4gICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnQgPVxuICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIpXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbilcbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnR5cGVfbG9nZW1lbnRfZm95ZXJfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSAobG9nZW1lbnRfZm95ZXJfXy5Mb2dlbWVudEZveWVyLnR5cGVfdXNlcikgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTEzOyBzdGFydF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTEzOyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY29udmVudGlvbm5lbWVudF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ2VtZW50X2ZveWVyX18uTG9nZW1lbnRGb3llci5kYXRlX2NvbnZlbnRpb25uZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTE0OyBzdGFydF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTQ7IGVuZF9jb2x1bW49NzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MDY7IHN0YXJ0X2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUwNjsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTA3OyBzdGFydF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MDc7IGVuZF9jb2x1bW49NjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTE7IHN0YXJ0X2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxMTsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnpvbmVfaW4gPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHpvbmVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUwODsgc3RhcnRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTA4OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTA7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxMDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlZGV2YW5jZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSAobG9nZW1lbnRfZm95ZXJfXy5Mb2dlbWVudEZveWVyLnJlZGV2YW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTI7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxMjsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNpZGVuY2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUwOTsgc3RhcnRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTA5OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpfSkpKSlcbiAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcl9kODMyXzI1ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcl9kODMyXzI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIucGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnBsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHBhcmFtMF86IG1vbmV5KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBwYXJhbTBfKSkpKSkpKX0pXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcImRpcmVjdFwiO1xuICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcilcbiAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTA1OyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxNTsgZW5kX2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB0aGVuIHJlc3VsdF8gZWxzZSByZXN1bHRfKSkpKSkpKVxuICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlKX0pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODI5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTgyOTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYXJnXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODMyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTgzMjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ1OTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0NTk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChzb3VzX2NhbGN1bF90cmFpdGVtZW50Xy5UcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSlcbiAgICAgICAgICAgICAgICAgICBhcmdfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTgzMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MzI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODMyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTgzMjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCJdIChlbWJlZF9tb25leSlcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODMxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTgzMTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTQ1NzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIHNvdXNfY2FsY3VsX3RyYWl0ZW1lbnRfLlRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04MzE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9ODMxOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGUgPSBhaWRlX2ZpbmFsZV9mb3JtdWxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX31cblxubGV0IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbjogRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi50KSA6IEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPVxuICBsZXQgbWVuYWdlXzogTWVuYWdlLnQgPSBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLm1lbmFnZV9pbiBpblxuICBsZXQgZGVtYW5kZXVyXzogRGVtYW5kZXVyLnQgPSBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV86IHVuaXQgLT4gYm9vbCA9IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlX2luIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV86IHVuaXQgLT4gYm9vbCA9IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfaW4gaW5cbiAgbGV0IGRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoXzogdW5pdCAtPiBkYXRlID0gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbiBpblxuICBsZXQgY29uZGl0aW9uX3ByZXRfOiBQcmV0LnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJjb25kaXRpb25fcHLDqnRcIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChwcmV0XzogUHJldC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMDk7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMDk7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0zMDk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzA5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMwOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMDk7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29uZGl0aW9uX3BldXBsZW1lbnRfbG9nZW1lbnRfbDgyMl8xMF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImNvbmRpdGlvbl9wZXVwbGVtZW50X2xvZ2VtZW50X2w4MjJfMTBcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE4OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxODsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzE4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxODsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF86IGRhdGUgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImRhdGVfZW50csOpZV92aWd1ZXVyX2RpZmbDqXLDqWVfY2NoXCJdIChlbWJlZF9kYXRlKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzI1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMyNTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+IGRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoXyAoKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyNTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMjU7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU0NjQ7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NDY0OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NjEtNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FwaXRyZSBJIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9uIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMyNTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMjU7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc2V1aWxfbDgyMl8zX3BhcnRzX3Byb3ByaWV0ZV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcInNldWlsX2w4MjJfM19wYXJ0c19wcm9wcmnDqXTDqVwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMzMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzE7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1IGLDqW7DqWZpY2lhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjAuMVwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMzE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzMxOyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHNldWlsX2w4MjJfM19wYXJ0c191c3VmcnVpdF86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwic2V1aWxfbDgyMl8zX3BhcnRzX3VzdWZydWl0XCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzMyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdSBiw6luw6lmaWNpYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjFcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzMyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzZXVpbF9sODIyXzVfcGF0cmltb2luZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcInNldWlsX2w4MjJfNV9wYXRyaW1vaW5lXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzMzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzMzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTI4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkyODsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogUHJpc2UgZW4gY29tcHRlIGR1IHBhdHJpbW9pbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzAwMDAwMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMzM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzMzOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHVzdWZydWl0X291X3Byb3ByaWV0ZV9mYW1pbGxlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwidXN1ZnJ1aXRfb3VfcHJvcHJpw6l0w6lfZmFtaWxsZVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMzMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzA7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE2NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjQ7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19vclxuICAgICAgICAgICAgICAobWF0Y2ggKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQucHJvcHJpZXRhaXJlKVxuICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkRlbWFuZGV1ck91Q29uam9pbnRPdVBhcmVudE91VmlhUGFydHNTb2NpZXRlcyBwYXJ0c18gLT5cbiAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICB8IFBhcmVudE91QXV0cmUuQXV0cmUgXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgKG1hdGNoICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnVzdWZydWl0KVxuICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkRlbWFuZGV1ck91Q29uam9pbnRPdVBhcmVudE91VmlhUGFydHNTb2NpZXRlcyBwYXJ0c18gLT5cbiAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICB8IFBhcmVudE91QXV0cmUuQXV0cmUgXyAtPiBmYWxzZSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzA7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19sb2dlbWVudF86IGludGVnZXIgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwibm9tYnJlX3BlcnNvbm5lc19sb2dlbWVudFwiXVxuICAgIChlbWJlZF9pbnRlZ2VyKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzI2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyNjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDM1OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfaW50X2ludFxuICAgICAgICAgICAgICAob19hZGRfaW50X2ludFxuICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGUpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZSBfIC0+IChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKVxuICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuTWFyaWVzIF8gLT4gKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKVxuICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuUGFjc2VzIF8gLT4gKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKVxuICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5zIF8gLT4gKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKVxuICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIilcbiAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSlcbiAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLm5vbWJyZV9hdXRyZXNfb2NjdXBhbnRzX2xvZ2VtZW50KSlcbiAgICAgICAgICAgICAgKG9fbGVuZ3RoIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzI2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyNjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzZXB0aWVtZV9hbGluZWFfbDgyM18xX2FwcGxpY2FibGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJzZXB0acOobWVfYWxpbsOpYV9sODIzXzFfYXBwbGljYWJsZVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMxOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTk7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxOTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxOTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxOTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzc2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzNzY7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYxLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0NTsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ1OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjMtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9ub25fb3V2ZXJ0dXJlX2w4MjJfOV9kZWNlbmNlX2xvZ2VtZW50XzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwiY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl85X2RlY2VuY2VfbG9nZW1lbnRcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE2OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTY7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3Njsgc3RhcnRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3NjsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5sb2dlbWVudF9kZWNlbnRfbDg5XzQ2MikpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTY7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMxNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTY7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl84XzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwiY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl84XCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzE1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE1OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjI7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNjI7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UuY29uZGl0aW9uX3JhdHRhY2hlX2ZveWVyX2Zpc2NhbF9wYXJlbnRfaWZpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE1OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE1OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImNvbmRpdGlvbl9sb2dlbWVudF9yw6lzaWRlbmNlX3ByaW5jaXBhbGVcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzExOyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT4gY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlXyAoKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMTE7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTE7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDY7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDEgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogUsOoZ2xlcyBkZSBub24tY3VtdWxcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogUHJpbmNpcGVzIGfDqW7DqXJhdXhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnJlc2lkZW5jZV9wcmluY2lwYWxlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxMTsgZW5kX2NvbHVtbj01MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMxMTsgZW5kX2NvbHVtbj01MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF9kYXRlX25haXNzYW5jZV9hc3N1cmVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgXCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlLmRhdGVfbmFpc3NhbmNlX2Fzc3Vyw6lcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDE2MS0xNy0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAxIDogSW5mb3JtYXRpb24gZXQgc2ltcGxpZmljYXRpb24gZGVzIGTDqW1hcmNoZXMgZGVzIGFzc3Vyw6lzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUk6IFRpdHJlIElJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyByZWxhdGl2ZXMgYXUgZmluYW5jZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX3PDqWN1cml0w6lfc29jaWFsZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIzOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMMTYxLTE3LTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJhZ3JhcGhlIDEgOiBJbmZvcm1hdGlvbiBldCBzaW1wbGlmaWNhdGlvbiBkZXMgZMOpbWFyY2hlcyBkZXMgYXNzdXLDqXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDQgOiBBc3N1cmFuY2UgdmllaWxsZXNzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IELDqW7DqWZpY2lhaXJlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9ucyBldCBhdXggc29pbnMgLSBDb250csO0bGUgbcOpZGljYWwgLSBUdXRlbGxlIGF1eCBwcmVzdGF0aW9ucyBzb2NpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSTogVGl0cmUgSUlJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIHJlbGF0aXZlcyBhdSBmaW5hbmNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZW1hbmRldXJfLkRlbWFuZGV1ci5kYXRlX25haXNzYW5jZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX3PDqWN1cml0w6lfc29jaWFsZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIzOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMMTYxLTE3LTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJhZ3JhcGhlIDEgOiBJbmZvcm1hdGlvbiBldCBzaW1wbGlmaWNhdGlvbiBkZXMgZMOpbWFyY2hlcyBkZXMgYXNzdXLDqXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDQgOiBBc3N1cmFuY2UgdmllaWxsZXNzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IELDqW7DqWZpY2lhaXJlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9ucyBldCBhdXggc29pbnMgLSBDb250csO0bGUgbcOpZGljYWwgLSBUdXRlbGxlIGF1eCBwcmVzdGF0aW9ucyBzb2NpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSTogVGl0cmUgSUlJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIHJlbGF0aXZlcyBhdSBmaW5hbmNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGUudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZVwiO1xuICAgICAgXCJPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZVwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVcIjtcbiAgICAgIFwiT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVcIl0gb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSlcbiAgICAoe091dmVydHVyZURyb2l0c1JldHJhaXRlSW4uZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX2luID1cbiAgICAgICAgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9kb3RfZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX30pKSkgaW5cbiAgbGV0IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfZG90X2FnZV9vdXZlcnR1cmVfZHJvaXRfOiBkdXJhdGlvbiA9IHJlc3VsdF8uT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGUuYWdlX291dmVydHVyZV9kcm9pdCBpblxuICBsZXQgcGF0cmltb2luZV90b3RhbF9kZW1hbmRldXJfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJwYXRyaW1vaW5lX3RvdGFsX2RlbWFuZGV1clwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjk7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI2Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNjc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAoKGRlbWFuZGV1cl8uRGVtYW5kZXVyLnBhdHJpbW9pbmUpLlBhdHJpbW9pbmUucHJvZHVpc2FudF9yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQpXG4gICAgICAgICAgICAgICgoZGVtYW5kZXVyXy5EZW1hbmRldXIucGF0cmltb2luZSkuUGF0cmltb2luZS5uZV9wcm9kdWlzYW50X3Bhc19yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMjk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzI5OyBlbmRfY29sdW1uPTM3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9uYXRpb25hbGl0ZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiY29uZGl0aW9uX25hdGlvbmFsaXTDqVwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzEwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxMDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzEwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzEwOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzM0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzM0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCAoZGVtYW5kZXVyXy5EZW1hbmRldXIubmF0aW9uYWxpdGUpXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBOYXRpb25hbGl0ZS5GcmFuY2Fpc2UgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB8IE5hdGlvbmFsaXRlLkV0cmFuZ2VyZSBjb25kaXRpb25zXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmRpdGlvbnNfLkNvbmRpdGlvbnNFdHJhbmdlcnMuc2F0aXNmYWl0X2FydF80X29yZG9ubmFuY2VfMjAwMl9tYXlvdHRlKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCAoZGVtYW5kZXVyXy5EZW1hbmRldXIubmF0aW9uYWxpdGUpXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IE5hdGlvbmFsaXRlLkZyYW5jYWlzZSBfIC0+IHRydWVcbiAgICAgICAgICAgIHwgTmF0aW9uYWxpdGUuRXRyYW5nZXJlIGNvbmRpdGlvbnNfIC0+XG4gICAgICAgICAgICAgICAgKGNvbmRpdGlvbnNfLkNvbmRpdGlvbnNFdHJhbmdlcnMuc2F0aXNmYWl0X2NvbmRpdGlvbnNfbDUxMl8yX2NvZGVfc2VjdXJpdGVfc29jaWFsZSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMxMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTA7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9pbmRpdmlkdWVsX2w4MTVfOV9zZWN1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcInBsYWZvbmRfaW5kaXZpZHVlbF9sODE1Xzlfc8OpY3VcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzI5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgxNS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24gZGUgbCdhbGxvY2F0aW9uIGRlIHNvbGlkYXJpdMOpIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IEFsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJIDogQWxsb2NhdGlvbnMgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWxsb2NhdGlvbnMgYXV4IHBlcnNvbm5lcyDDomfDqWVzIC0gQWxsb2NhdGlvbiBhdXggYWR1bHRlcyBoYW5kaWNhcMOpcyAtIEFpZGVzIMOgIGwnZW1wbG9pIHBvdXIgbGEgZ2FyZGUgZGVzIGpldW5lcyBlbmZhbnRzIC0gUHJvdGVjdGlvbiBjb21wbMOpbWVudGFpcmUgZW4gbWF0acOocmUgZGUgc2FudMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI5OTk4NDBcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODE1LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IE91dmVydHVyZSBkdSBkcm9pdCBldCBsaXF1aWRhdGlvbiBkZSBsJ2FsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogQWxsb2NhdGlvbiBkZSBzb2xpZGFyaXTDqSBhdXggcGVyc29ubmVzIMOiZ8OpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIEkgOiBBbGxvY2F0aW9ucyBhdXggcGVyc29ubmVzIMOiZ8OpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBbGxvY2F0aW9ucyBhdXggcGVyc29ubmVzIMOiZ8OpZXMgLSBBbGxvY2F0aW9uIGF1eCBhZHVsdGVzIGhhbmRpY2Fww6lzIC0gQWlkZXMgw6AgbCdlbXBsb2kgcG91ciBsYSBnYXJkZSBkZXMgamV1bmVzIGVuZmFudHMgLSBQcm90ZWN0aW9uIGNvbXBsw6ltZW50YWlyZSBlbiBtYXRpw6hyZSBkZSBzYW50w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwNDE4NDBcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0MDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODE1LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IE91dmVydHVyZSBkdSBkcm9pdCBldCBsaXF1aWRhdGlvbiBkZSBsJ2FsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogQWxsb2NhdGlvbiBkZSBzb2xpZGFyaXTDqSBhdXggcGVyc29ubmVzIMOiZ8OpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIEkgOiBBbGxvY2F0aW9ucyBhdXggcGVyc29ubmVzIMOiZ8OpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBbGxvY2F0aW9ucyBhdXggcGVyc29ubmVzIMOiZ8OpZXMgLSBBbGxvY2F0aW9uIGF1eCBhZHVsdGVzIGhhbmRpY2Fww6lzIC0gQWlkZXMgw6AgbCdlbXBsb2kgcG91ciBsYSBnYXJkZSBkZXMgamV1bmVzIGVuZmFudHMgLSBQcm90ZWN0aW9uIGNvbXBsw6ltZW50YWlyZSBlbiBtYXRpw6hyZSBkZSBzYW50w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwODM4NDBcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXV0cmVzX3NvdXJjZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTg7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNpcmN1bGFpcmUgZGUgbGEgQ05BViAyMDIzLTMgZHUgMDkvMDEvMjAyMiBcXFwiUmV2YWxvcmlzYXRpb24gw6AgY29tcHRlciBkdSAxZXIgamFudmllciAyMDIzXFxcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudHMgcmV2YWxvcmlzw6lzIGRlIGwnYWxsb2NhdGlvbiBkZSBzb2xpZGFyaXTDqSBhdXggcGVyc29ubmVzIMOiZ8OpZXNcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjExNTMzMDJcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXV0cmVzX3NvdXJjZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNpcmN1bGFpcmUgZGUgbGEgQ05BViAyMDIyLTMgZHUgMTEvMDEvMjAyMiBcXFwiUmV2YWxvcmlzYXRpb24gw6AgY29tcHRlciBkdSAxZXIgamFudmllciAyMDIyXFxcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudHMgcmV2YWxvcmlzw6lzIGRlIGwnYWxsb2NhdGlvbiBkZSBzb2xpZGFyaXTDqSBhdXggcGVyc29ubmVzIMOiZ8OpZXNcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTEwMDE0NFwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hdXRyZXNfc291cmNlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaXJjdWxhaXJlIGRlIGxhIENOQVYgMjAyMS0xIGR1IDExLzAxLzIwMjEgXFxcIlJldmFsb3Jpc2F0aW9uIMOgIGNvbXB0ZXIgZHUgMWVyIGphbnZpZXIgMjAyMVxcXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnRzIHJldmFsb3Jpc8OpcyBkZSBsJ2FsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwODgxNzVcIikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfbG9jYXRpb25fdGllcnNfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJjb25kaXRpb25fbG9nZW1lbnRfbG9jYXRpb25fdGllcnNcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzEzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzEzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjIxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyOTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMb3VlT3VTb3VzTG91ZUFEZXNUaWVycy5Ob24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTG91ZU91U291c0xvdWVBRGVzVGllcnMuT3VpIHBlcnNvbm5lXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uZGF0ZV9uYWlzc2FuY2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV8uUGVyc29ubmVTb3VzTG9jYXRpb24uZGF0ZV9uYWlzc2FuY2VfcGVyc29ubmVfc291c19sb2NhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNTsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjI2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5hbm5lZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgzMCkgKDApICgwKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0yMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjI3OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEuZXN0X3N1cGVyaWV1cil9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjQ7IHN0YXJ0X2NvbHVtbj04O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB0aGVuIHJlc3VsdF8gZWxzZSByZXN1bHRfKSkpKSkpKS5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyc29ubmVfLlBlcnNvbm5lU291c0xvY2F0aW9uLmNvbmZvcm1lX2FydGljbGVfbDQ0Ml8xKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxNjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5sb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVycylcbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTG91ZU91U291c0xvdWVBRGVzVGllcnMuTm9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgfCBMb3VlT3VTb3VzTG91ZUFEZXNUaWVycy5PdWkgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMxMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXMuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zODA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzgwOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zODA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzgwOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9wcmVzdGF0aW9uX2NvdXJhbnRlXzogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLnByZXN0YXRpb25fY291cmFudGVcIl1cbiAgICAgIChlbWJlZF9lbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MTsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODE7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uTG9nZW1lbnQgKCkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MTsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXMucsOpc2lkZW5jZVwiXSAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODM7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzgzOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zODM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzgzOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9hZ2VfbDUxMl8zXzJfOiB1bml0IC0+IGR1cmF0aW9uID0gZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXMuw6JnZV9sNTEyXzNfMlwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZHVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTcyMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzIyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgUjg2Mi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IFNhaW50LUJhcnRow6lsZW15IGV0IFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTcyMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzIyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgUjg2Mi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IFNhaW50LUJhcnRow6lsZW15IGV0IFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTcyMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzIyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgUjg2Mi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IFNhaW50LUJhcnRow6lsZW15IGV0IFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTcyMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzIyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgUjg2Mi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IFNhaW50LUJhcnRow6lsZW15IGV0IFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NzIzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTcyNjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4NjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb25fb2ZfbnVtYmVycyAoMjIpICgwKSAoMCkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NjI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTYzNDsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEQ4NjEtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uX29mX251bWJlcnMgKDIyKSAoMCkgKDApKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNTI7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb25fb2ZfbnVtYmVycyAoMjEpICgwKSAoMCkpKSkgaW5cbiAgbGV0IHJlc3VsdF86IEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiXVxuICAgIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgKHtFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5wcmVzdGF0aW9uX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9wcmVzdGF0aW9uX2NvdXJhbnRlXztcbiAgICAgICAgRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3Jlc2lkZW5jZV87XG4gICAgICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4uYWdlX2w1MTJfM18yX2luID1cbiAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9hZ2VfbDUxMl8zXzJffSkpKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yXzogZHVyYXRpb24gPSByZXN1bHRfLkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmFnZV9sNTEyXzNfMiBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZHJvaXRfb3V2ZXJ0XzogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCA9IHJlc3VsdF8uRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZHJvaXRfb3V2ZXJ0IGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9jb25kaXRpb25zX2hvcnNfYWdlXzogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmNvbmRpdGlvbnNfaG9yc19hZ2UgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXzogYm9vbCA9IHJlc3VsdF8uRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVnaW1lX291dHJlX21lcl9sNzUxXzEgaW5cbiAgbGV0IGNvbmRpdGlvbl9sb2dlbWVudF9tb2RlX29jY3VwYXRpb25fOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJjb25kaXRpb25fbG9nZW1lbnRfbW9kZV9vY2N1cGF0aW9uXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzEyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxMjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzEyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzEyOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzEyOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzEyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxMjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE5NTsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgdXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQucHJvcHJpZXRhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBhcmVudE91QXV0cmUuRGVtYW5kZXVyT3VDb25qb2ludE91UGFyZW50T3VWaWFQYXJ0c1NvY2lldGVzIHBhcnRzXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0c19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBhcmVudE91QXV0cmUuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldWlsX2w4MjJfM19wYXJ0c19wcm9wcmlldGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC51c3VmcnVpdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkRlbWFuZGV1ck91Q29uam9pbnRPdVBhcmVudE91VmlhUGFydHNTb2NpZXRlcyBwYXJ0c18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydHNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXVpbF9sODIyXzNfcGFydHNfdXN1ZnJ1aXRfKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzY7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c3VmcnVpdF9vdV9wcm9wcmlldGVfZmFtaWxsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0OTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5yZXNpZGVuY2VfcHJpbmNpcGFsZSlcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzEyOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzEyOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZVwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMxNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+IGNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXyAoKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMTQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTUyODA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUyODE7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg0NC00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENvbmRpdGlvbnMgZGUgcGV1cGxlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FnZWVzX2hhbmRpY2FwZWVzX2ZveWVyX3I4NDRfNClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTI3Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUyNzU7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NDQtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ29uZGl0aW9ucyBkZSBwZXVwbGVtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYWdlZXNfaGFuZGljYXBlZXNfZm95ZXJfcjg0NF80KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnN1cmZhY2VfbV9jYXJyZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiOVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjU7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChsZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9taW5pbWFsZV9zYW5zX3NldWlsX21fY2FycmVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaW50ZWdlciA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5NYXJpZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuUGFjc2VzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZVNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxNlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5ub21icmVfYXV0cmVzX29jY3VwYW50c19sb2dlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiOVwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9taW5pbWFsZV9zYW5zX3NldWlsX21fY2FycmVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjcwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiOFwiKSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnN1cmZhY2VfbV9jYXJyZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNzBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnN1cmZhY2VfbV9jYXJyZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfbWluaW1hbGVfc2Fuc19zZXVpbF9tX2NhcnJlc18pKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMxNDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMTQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWdlX2wxNjFfMTdfMl9zZWN1XzogZHVyYXRpb24gPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiw6JnZV9sMTYxXzE3XzJfc8OpY3VcIl1cbiAgICAoZW1iZWRfZHVyYXRpb24pIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzM2OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDE2MS0xNy0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAxIDogSW5mb3JtYXRpb24gZXQgc2ltcGxpZmljYXRpb24gZGVzIGTDqW1hcmNoZXMgZGVzIGFzc3Vyw6lzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUk6IFRpdHJlIElJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyByZWxhdGl2ZXMgYXUgZmluYW5jZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9kb3RfYWdlX291dmVydHVyZV9kcm9pdF8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzY7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGF0cmltb2luZV9wcmlzX2VuX2NvbXB0ZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcInBhdHJpbW9pbmVfcHJpc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzM0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzAyOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQuZXN0X2VocGFkX291X21haXNvbl9hdXRvbm9taWVfbDMxM18xMl9hc2YpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODg7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjkwOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2ZvbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKGFjY186IGJvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJlc3RhdGlvbl86IFByZXN0YXRpb25SZWN1ZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19vciBhY2NfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHByZXN0YXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmVzdGF0aW9uUmVjdWUuQWxsb2NhdGlvblNvdXRpZW5FbmZhbnRIYW5kaWNhcGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBwcmVzdGF0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJlc3RhdGlvblJlY3VlLkFsbG9jYXRpb25BZHVsdGVIYW5kaWNhcGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucHJlc3RhdGlvbnNfcmVjdWVzKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0NTsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTIyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IFByaXNlIGVuIGNvbXB0ZSBkdSBwYXRyaW1vaW5lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vbiBwYXRyaW1vaW5lX3RvdGFsX2RlbWFuZGV1cl9cbiAgICAgICAgICAgICAgICAgICAgICAgc2V1aWxfbDgyMl81X3BhdHJpbW9pbmVfKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIChkZW1hbmRldXJfLkRlbWFuZGV1ci5wYXRyaW1vaW5lKS5QYXRyaW1vaW5lLm5lX3Byb2R1aXNhbnRfcGFzX3JldmVudV9wZXJpb2RlX3I4MjJfM18zX3I4MjJfNCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjcxOyBzdGFydF9jb2x1bW49MzM7IGVuZF9saW5lPTI3MTsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBwYXRyaW1vaW5lX3RvdGFsX2RlbWFuZGV1cl9cbiAgICAgICAgICAgICAgICAgc2V1aWxfbDgyMl81X3BhdHJpbW9pbmVfKSB0aGVuIHBhdHJpbW9pbmVfdG90YWxfZGVtYW5kZXVyX1xuICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMzQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzM0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9vdXZlcnR1cmVfbDgyMl8xMF9wZXVwbGVtZW50X2xvZ2VtZW50XzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwiY29uZGl0aW9uX291dmVydHVyZV9sODIyXzEwX3BldXBsZW1lbnRfbG9nZW1lbnRcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE3OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTc7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMTsgc3RhcnRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV8pKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNzsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzE3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNzsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhZ2VfbDM1MV84XzFfc2VjdV86IGR1cmF0aW9uID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIsOiZ2VfbDM1MV84XzFfc8OpY3VcIl1cbiAgICAoZW1iZWRfZHVyYXRpb24pIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzM1OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2MzsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDM1MS04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiA1IDogVGF1eCBldCBtb250YW50IGRlIGxhIHBlbnNpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBPdXZlcnR1cmUgZHUgZHJvaXQsIGxpcXVpZGF0aW9uIGV0IGNhbGN1bCBkZXMgcGVuc2lvbnMgZGUgcmV0cmFpdGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWIDogQXNzdXJhbmNlIHZpZWlsbGVzc2UgLSBBc3N1cmFuY2UgdmV1dmFnZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIElJSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IGFzc3VyYW5jZXMgc29jaWFsZXMgZXQgw6AgZGl2ZXJzZXMgY2F0w6lnb3JpZXMgZGUgcGVyc29ubmVzIHJhdHRhY2jDqWVzIGF1IHLDqWdpbWUgZ8OpbsOpcmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfZHVyX2R1ciBhZ2VfbDE2MV8xN18yX3NlY3VfXG4gICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICg1KSAoMCkgKDApKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzM1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9sb2dlbWVudF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9sb2dlbWVudFwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzIwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciBjb25kaXRpb25fbm9uX291dmVydHVyZV9sODIyXzhfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl85X2RlY2VuY2VfbG9nZW1lbnRfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04NzsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kIGNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kIGNvbmRpdGlvbl9sb2dlbWVudF9tb2RlX29jY3VwYXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZCBjb25kaXRpb25fbG9nZW1lbnRfbG9jYXRpb25fdGllcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl9vdXZlcnR1cmVfbDgyMl8xMF9wZXVwbGVtZW50X2xvZ2VtZW50XykpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzIwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzIwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl8yX3I4MjNfNF86IFBlcnNvbm5lQUNoYXJnZS50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiY29uZGl0aW9uXzJfcjgyM180XCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAocGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzQ2OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0Njsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQ2OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOTk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIyMjsgZW5kX2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjMtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBwYXJlbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLnBhcmVudGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUGFyZW50ZS5Bc2NlbmRhbnQgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudF8uQXV0cmVQZXJzb25uZUFDaGFyZ2UucmVzc291cmNlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9pbmRpdmlkdWVsX2w4MTVfOV9zZWN1X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS4yNVwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLmRhdGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlX2wzNTFfOF8xX3NlY3VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLnRpdHVsYWlyZV9hbGxvY2F0aW9uX3BlcnNvbm5lX2FnZWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCI7IFwiaW5wdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7VmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfbmFpc3NhbmNlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5kYXRlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjEyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmFubmVlc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDY1KSAoMCkgKDApKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIxNDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4MjMtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1ZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEuZXN0X2luZmVyaWV1cl9vdV9lZ2FsID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLmVzdF9pbmZlcmlldXJfb3VfZWdhbCl9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlbDqXJpZmljYXRpb27DgmdlSW5mw6lyaWV1ck91w4lnYWzDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTE3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTQ7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfKSkpKSkpKS5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLmVzdF9pbmZlcmlldXJfb3VfZWdhbCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5kYXRlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZV9sMTYxXzE3XzJfc2VjdV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLmJlbmVmaWNpYWlyZV9sMTYxXzE5X2wzNTFfOF9sNjQzXzNfc2VjdSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0Njsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0NjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTM0Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDY7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzQ2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0NjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM0Mjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0Mjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0MjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX25hdGlvbmFsaXRlX1xuICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX2xvZ2VtZW50X21vZGVfb2NjdXBhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfbG9nZW1lbnRfKSkpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0MjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzQyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0MjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwcmlzZV9lbl9jb21wdGVfcGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJwcmlzZV9lbl9jb21wdGVfcGVyc29ubmVfw6BfY2hhcmdlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjQ2OyBzdGFydF9jb2x1bW49NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI1MjsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgcGFyZW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudF8uQXV0cmVQZXJzb25uZUFDaGFyZ2UuaW5jYXBhY2l0ZV84MF9wb3VyY2VudF9vdV9yZXN0cmljdGlvbl9lbXBsb2kpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLnJlc3NvdXJjZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX2luZGl2aWR1ZWxfbDgxNV85X3NlY3VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEuMjVcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMjc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIyNzsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjMtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbmRpdGlvbl8yX3I4MjNfNFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb25kaXRpb25fMl9yODIzXzRcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCJdIGNvbmRpdGlvbl8yX3I4MjNfNF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKSBwZXJzb25uZV9hX2NoYXJnZV8pKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODUwOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgTDg2Mi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmV0dWRlc19hcHByZW50aXNzYWdlX3N0YWdlX2Zvcm1hdGlvbl9wcm9faW1wb3NzaWJpbGl0ZV90cmF2YWlsKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1ODA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYxLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiA0IDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5ldHVkZXNfYXBwcmVudGlzc2FnZV9zdGFnZV9mb3JtYXRpb25fcHJvX2ltcG9zc2liaWxpdGVfdHJhdmFpbCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NTc7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMy0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwdGllbWVfYWxpbmVhX2w4MjNfMV9hcHBsaWNhYmxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLm5hdGlvbmFsaXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmF0aW9uYWxpdGUuRnJhbmNhaXNlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmF0aW9uYWxpdGUuRXRyYW5nZXJlIGNvbmRpdGlvbnNfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25kaXRpb25zXy5Db25kaXRpb25zRXRyYW5nZXJzLnNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3NlY3VyaXRlX3NvY2lhbGUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTU2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNzg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuaWRlbnRpZmlhbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuaWRlbnRpZmlhbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uub2JsaWdhdGlvbl9zY29sYWlyZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5yZW11bmVyYXRpb25fbWVuc3VlbGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZGF0ZV9kZV9uYWlzc2FuY2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuRWZmZWN0aXZlRXRQZXJtYW5lbnRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCl9KSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgcGFyZW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzIxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IFBlcnNvbm5lQUNoYXJnZS50IGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJwZXJzb25uZXNfw6BfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjM7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExMzk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTEzOTsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fZmlsdGVyXG4gICAgICAgICAgICAgIChmdW4gKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgIFwicHJpc2VfZW5fY29tcHRlX3BlcnNvbm5lX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICBcInByaXNlX2VuX2NvbXB0ZV9wZXJzb25uZV/DoF9jaGFyZ2VcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgIFwicHJpc2VfZW5fY29tcHRlX3BlcnNvbm5lX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICBwcmlzZV9lbl9jb21wdGVfcGVyc29ubmVfYV9jaGFyZ2VfKVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICBcInByaXNlX2VuX2NvbXB0ZV9wZXJzb25uZV/DoF9jaGFyZ2VcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKSBwZXJzb25uZV9hX2NoYXJnZV8pKSkpKSkpXG4gICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMjM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzIzOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBkZWNpbWFsIGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybsOpZV9wcmlzX2VuX2NvbXB0ZVwiXVxuICAgIChlbWJlZF9hcnJheSAoZW1iZWRfZGVjaW1hbCkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zNDQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzQ0OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM1OTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tYXBcbiAgICAgICAgICAgICAgKGZ1biAocGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50QUNoYXJnZS5zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUpXG4gICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5QYXNEZUdhcmRlQWx0ZXJuZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKVxuICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIGNvZWZmXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZl8pXG4gICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKVxuICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgKGZ1biAocGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgIHBlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXykpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM0NDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDQ7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXzogaW50ZWdlciA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiXSAoZW1iZWRfaW50ZWdlcikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM0Mzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDM7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzU3OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG9fbGVuZ3RoIHBlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzQzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0MzsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2x0X3JhdF9yYXQgc2V1aWxfbDgyMl8zX3BhcnRzX3VzdWZydWl0X1xuICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjJcIikpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwMDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwMDsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpXG4gICAgICAgICAgICAgICAgICB0aGVuICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjAwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjAwOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2x0X3JhdF9yYXQgc2V1aWxfbDgyMl8zX3BhcnRzX3Byb3ByaWV0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yXCIpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTk7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTk7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5OTsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE5OTsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3ODsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3ODsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc4OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzc4OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkgaW5cbiAge0VsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmRhdGVfY291cmFudGUgPSBkYXRlX2NvdXJhbnRlXztcbiAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZWxpZ2liaWxpdGUgPSBlbGlnaWJpbGl0ZV87XG4gICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXztcbiAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV87XG4gICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmNvbmRpdGlvbl8yX3I4MjNfNCA9XG4gICAgICAgY29uZGl0aW9uXzJfcjgyM180X31cblxubGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbjogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4udCkgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQudCA9XG4gIGxldCBtb2RlX29jY3VwYXRpb25fOiBNb2RlT2NjdXBhdGlvbi50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV86IFNpdHVhdGlvbkZhbWlsaWFsZS50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbiBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCB6b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi56b25lX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHR5cGVfYWlkZV86IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnR5cGVfYWlkZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGNhdGVnb3JpZV9jYWxjdWxfYXBsXzogQ2F0ZWdvcmllQ2FsY3VsQVBMLnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJjYXTDqWdvcmllX2NhbGN1bF9hcGxcIl1cbiAgICAoZW1iZWRfY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExMDQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTEwNDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQyODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNDI4OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggbW9kZV9vY2N1cGF0aW9uX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5Mb2NhdGlvbiBsb2NhdGlvbl8pXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBsb2dlbWVudGZveWVyXyAtPlxuICAgICAgICAgICAgICAgIChDYXRlZ29yaWVDYWxjdWxBUEwuTG9nZW1lbnRGb3llciBsb2dlbWVudGZveWVyXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgcHJvcHJpZXRhaXJlXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBsb2NhdGlvbl8gLT5cbiAgICAgICAgICAgICAgICAoQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIGxvY2F0aW9uXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgIChDYXRlZ29yaWVDYWxjdWxBUEwuQWNjZXNzaW9uUHJvcHJpZXRlIHByb3ByaWV0YWlyZV8pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTA0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMDQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXZlY19hcnJvbmRpXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA5Njsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDk2OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTcyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE5NzI7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGFycm9uZGlfY2VudGFpbmVfc3VwZXJpZXVyZV8gcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA5Njsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDk2OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTEwNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTA1OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTA7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5NYXJpZXMgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlICgpKVxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuUGFjc2VzIF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKSlcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZVNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlICgpKVxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0IF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTEwNTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzb3VzX2NhbGN1bF90cmFpdGVtZW50XzogVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJzb3VzX2NhbGN1bF90cmFpdGVtZW50XCJdXG4gICAgKGVtYmVkX3RyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExMDc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTEwNzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMDc7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MTA7IHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDEwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBjYXRlZ29yaWVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2NhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X251bF90b3V0X2xlX3RlbXBzX30pXG4gICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkFjY2Vzc2lvblByb3ByaWV0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X251bF90b3V0X2xlX3RlbXBzX30pXG4gICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvZ2VtZW50Rm95ZXIgbG9nZW1lbnRfZm95ZXJfXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKGxldCB0cmFpdGVtZW50X2Zvcm11bGVfIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb3llcl9wcmluY2lwYWxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIucmVkZXZhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQyMjsgc3RhcnRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDIyOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MTY7IHN0YXJ0X2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDE2OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIuYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDI0OyBzdGFydF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQyNDsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IGRhdGVfY291cmFudGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQxOTsgc3RhcnRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MTk7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MTc7IHN0YXJ0X2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDE3OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQyMDsgc3RhcnRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MjA7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MTg7IHN0YXJ0X2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDE4OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHRydWUgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDI4OyBzdGFydF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQyODsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBmYWxzZSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MzU7IHN0YXJ0X2NvbHVtbj03MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDM1OyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi50eXBlX2FpZGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB0eXBlX2FpZGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQzNjsgc3RhcnRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MzY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBmYWxzZSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MzI7IHN0YXJ0X2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDMyOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQzOTsgc3RhcnRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0Mzk7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQ0MDsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0NDA7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHJlc2lkZW5jZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDE1OyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQxNTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5QYXNEZUNoYW5nZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0NDE7IHN0YXJ0X2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDQxOyBlbmRfY29sdW1uPTU3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHBhcmFtMF86IG1vbmV5KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBwYXJhbTBfKSkpKSkpKX0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQxNDsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQ0MjsgZW5kX2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2UgcmVzdWx0XykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSl9KSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NTU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTU1NTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIGNhdGVnb3JpZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBDYXRlZ29yaWVDYWxjdWxBUEwuTG9jYXRpb24gbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgKGxldCB0cmFpdGVtZW50X2Zvcm11bGVfIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50XG4gICAgICAgICAgICAgICAgICAgPVxuICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmKVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCI7IFwiaW5wdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbilcbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb3llcl9wcmluY2lwYWxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IChsb2NhdGlvbl8uTG9jYXRpb24ubG95ZXJfcHJpbmNpcGFsKSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NjY7IHN0YXJ0X2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NjY7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGlfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2MTsgc3RhcnRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTYxOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2F0aW9uXy5Mb2NhdGlvbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTY4OyBzdGFydF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1Njg7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NjQ7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU2NDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2Mjsgc3RhcnRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTYyOyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2NTsgc3RhcnRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTY1OyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4gPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHpvbmVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2Mzsgc3RhcnRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTYzOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChsb2NhdGlvbl8uTG9jYXRpb24ubG9nZW1lbnRfZXN0X2NoYW1icmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTY5OyBzdGFydF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1Njk7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2NhdGlvbl8uTG9jYXRpb24uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTcyOyBzdGFydF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzI7IGVuZF9jb2x1bW49ODA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4udHlwZV9haWRlX2luID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB0eXBlX2FpZGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3Mzsgc3RhcnRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTczOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4gPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChsb2NhdGlvbl8uTG9jYXRpb24uY29sb2NhdGlvbikgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTcwOyBzdGFydF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzA7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobG9jYXRpb25fLkxvY2F0aW9uLmJhaWxsZXVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVCYWlsbGV1ci5CYWlsbGV1clNvY2lhbCBiYWlsbGV1cl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhaWxsZXVyXy5Db252ZW50aW9uQmFpbGxldXJTb2NpYWwucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfcGVyY3VlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUJhaWxsZXVyLkJhaWxsZXVyUHJpdmVBdmVjQ29udmVudGlvbm5lbWVudFNvY2lhbCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlQmFpbGxldXIuQmFpbGxldXJQcml2ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3NTsgc3RhcnRfY29sdW1uPTE2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTc4OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvY2F0aW9uXy5Mb2NhdGlvbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3OTsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTc5OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc2lkZW5jZV9pbiA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgcmVzaWRlbmNlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NjA7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU2MDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2F0aW9uXy5Mb2NhdGlvbi5jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODA7IHN0YXJ0X2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4MDsgZW5kX2NvbHVtbj03NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAocGFyYW0wXzogbW9uZXkpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBwYXJhbTBfKSkpKSkpKX0pXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcImRpcmVjdFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmKVxuICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NTk7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTgxOyBlbmRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlIHJlc3VsdF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSl9KSlcbiAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkFjY2Vzc2lvblByb3ByaWV0ZSBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgKGxldCB0cmFpdGVtZW50X2Zvcm11bGVfIDpcbiAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTU7IHN0YXJ0X2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MTU7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTY7IHN0YXJ0X2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYxNjsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYyMzsgc3RhcnRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjIzOyBlbmRfY29sdW1uPTc3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uem9uZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTc7IHN0YXJ0X2NvbHVtbj0yMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYxNzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNpZGVuY2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYxODsgc3RhcnRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjE4OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MjI7IHN0YXJ0X2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYyMjsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLm1lbnN1YWxpdGVfcHJpbmNpcGFsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MjQ7IHN0YXJ0X2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYyNDsgZW5kX2NvbHVtbj03MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjMyOyBzdGFydF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MzI7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX3NpZ25hdHVyZV9wcmV0X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjI3OyBzdGFydF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2Mjc7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYyNjsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjI2OyBlbmRfY29sdW1uPTc5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYyOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjI5OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5kYXRlX2VudHJlZV9sb2dlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MzA7IHN0YXJ0X2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYzMDsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmNoYXJnZXNfbWVuc3VlbGxlc19wcmV0X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuY2hhcmdlc19tZW5zdWVsbGVzX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjI1OyBzdGFydF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MjU7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jb3Byb3ByaWV0ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuY29wcm9wcmlldGUpIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYzMTsgc3RhcnRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjMxOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5vcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmlldGVfYWlkZWVfRXRhdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYyMTsgZW5kX2NvbHVtbj04MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUubWVuc3VhbGl0ZV9lbGlnaWJsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX2VsaWdpYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX21pbmltYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXJhbTBfOiBtb25leSkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIHBhcmFtMF8pKSkpKSkpfSlcbiAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYxNDsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjMzOyBlbmRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlIHJlc3VsdF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpXG4gICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2dlbWVudEZveWVyIGxvZ2VtZW50X2ZveWVyX18gLT5cbiAgICAgICAgICAgICAgICAobGV0IHRyYWl0ZW1lbnRfZm9ybXVsZV8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcilcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIjsgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbilcbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIudHlwZV91c2VyKSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MDI7IHN0YXJ0X2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MDI7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvbnZlbnRpb25uZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIuZGF0ZV9jb252ZW50aW9ubmVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYwMzsgc3RhcnRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjAzOyBlbmRfY29sdW1uPTc0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHJlc2lkZW5jZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk1OyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTU7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnJlZGV2YW5jZV9pbiA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvZ2VtZW50X2ZveWVyX18uTG9nZW1lbnRGb3llci5yZWRldmFuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk5OyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGlfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5Mzsgc3RhcnRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTkzOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5NDsgc3RhcnRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTk0OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1OTg7IHN0YXJ0X2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU5ODsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uem9uZV9pbiA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgem9uZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk2OyBzdGFydF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTY7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZGF0ZV9jb3VyYW50ZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk3OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTc7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nZW1lbnRfZm95ZXJfXy5Mb2dlbWVudEZveWVyLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYwMTsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjAxOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKX0pKSkpXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubG95ZXJfbWluaW1hbCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubG95ZXJfbWluaW1hbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXJhbTBfOiBtb25leSkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgcGFyYW0wXykpKSkpKSl9KVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGwgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIpXG4gICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5Mjsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MDQ7IGVuZF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2UgcmVzdWx0XykpKSkpKSlcbiAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICh7VHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTA3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMDc7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhcmdfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTExMDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ0MTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0NDE7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChzb3VzX2NhbGN1bF90cmFpdGVtZW50Xy5UcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSlcbiAgICAgICAgICAgICAgICAgICBhcmdfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTExMTA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTExMDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTEwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExMTA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTA5OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExMDk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTA5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzcyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzM7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMS0xNzUwIGR1IDIxIGTDqWNlbWJyZSAyMDIxIHBvcnRhbnQgZGl2ZXJzZXMgbWVzdXJlcyBzdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCByZWxhdGlmIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgw6AgU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAoc291c19jYWxjdWxfdHJhaXRlbWVudF8uVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUpXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludCAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyMDI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ2V0WWVhciBkYXRlX2NvdXJhbnRlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjguXCIpKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQzOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNDM5OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgc291c19jYWxjdWxfdHJhaXRlbWVudF8uVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMDk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTEwOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSA9IGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV99XG5cbmxldCBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQgKGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbjogRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4udCkgOiBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnQudCA9XG4gIGxldCBpbmZvcm1hdGlvbnNfOiBJbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LnQgPSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uaW5mb3JtYXRpb25zX2luIGluXG4gIGxldCBkYXRlX2VtbWVuYWdlbWVudF86IGRhdGUgPSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uZGF0ZV9lbW1lbmFnZW1lbnRfaW4gaW5cbiAgbGV0IG1lbmFnZV86IE1lbmFnZS50ID0gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLkVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLm1lbmFnZV9pbiBpblxuICBsZXQgZGVtYW5kZXVyXzogRGVtYW5kZXVyLnQgPSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uZGVtYW5kZXVyX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBkZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnRfZW5nYWdlZXNfOiBtb25leSA9IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5kZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnRfZW5nYWdlZXNfaW4gaW5cbiAgbGV0IGRlbGFpX2FwcmVzX2VtbWVuYWdlbWVudF9sODIzXzhfMl86IGR1cmF0aW9uID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiO1xuICAgICAgXCJkw6lsYWlfYXByw6hzX2VtbcOpbmFnZW1lbnRfbDgyM184XzJcIl0gKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDk0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5NDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTIwODA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjA4MDsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0yMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IFByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBkdXJhdGlvbl9vZl9udW1iZXJzICgwKSAoNikgKDApKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00OTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDk0OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fcmFuZ19lbmZhbnRfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiOyBcImNvbmRpdGlvbl9yYW5nX2VuZmFudFwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDkxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5MTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5MTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5MTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwNTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwNjE7IGVuZF9jb2x1bW49Nzc7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0yMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogUHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV9hX2NoYXJnZV86IFBlcnNvbm5lQUNoYXJnZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5mb3JtYXRpb25zXy5JbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50Lm5vbWJyZV9lbmZhbnRzX2FfbmFpdHJlX2FwcmVzX3Ryb2lzaWVtZV9tb2lzX2dyb3NzZXNzZSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTE7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00OTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDkxOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgIFwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUwODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDg7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTA4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwODsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTA4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwODsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICBcImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiO1xuICAgICAgXCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl1cbiAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKVxuICAgICh7QmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSA9IHJlc3VsdF8uQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50IGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X21lbmFnZV86IE1lbmFnZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2FwbC5tw6luYWdlXCJdXG4gICAgICAoZW1iZWRfbWVuYWdlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUwNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbWVuYWdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01MDQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTA0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9kZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9hcGwuZGVtYW5kZXVyXCJdXG4gICAgICAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUwNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDU7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTA1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwNTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01MDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTA1OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hcGwuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01MDY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTA2OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTUwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDY7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTUwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDY7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV86IHVuaXQgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCA9IFxuICAgIGZ1biAoXzogdW5pdCkgLT4gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hcGwuY29uZGl0aW9uX2xvZ2VtZW50X3LDqXNpZGVuY2VfcHJpbmNpcGFsZVwiXVxuICAgICAgKGVtYmVkX2Jvb2wpIChyYWlzZSBFbXB0eUVycm9yKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfOiB1bml0IC0+IGJvb2wgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfYXBsLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXCJdIChlbWJlZF9ib29sKSAocmFpc2VcbiAgICAgIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF86IHVuaXQgLT4gZGF0ZSA9IFxuICAgIGZ1biAoXzogdW5pdCkgLT4gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hcGwuZGF0ZV9lbnRyw6llX3ZpZ3VldXJfZGlmZsOpcsOpZV9jY2hcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAocmFpc2UgRW1wdHlFcnJvcikpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2FwbFwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9hcGxcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50KVxuICAgICh7RWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5tZW5hZ2VfaW4gPVxuICAgICAgICBlbGlnaWJpbGl0ZV9hcGxfZG90X21lbmFnZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGVtYW5kZXVyX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hcGxfZG90X2RlbWFuZGV1cl87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYXBsX2RvdF9jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FwbF9kb3RfZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hffSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZGF0ZV9jb3VyYW50ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9lbGlnaWJpbGl0ZV86IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmVsaWdpYmlsaXRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IGludGVnZXIgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogXG4gICAgZGVjaW1hbCBhcnJheSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9jb25kaXRpb25fMl9yODIzXzRfOiBQZXJzb25uZUFDaGFyZ2UudCAtPiBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5jb25kaXRpb25fMl9yODIzXzQgaW5cbiAgbGV0IGNvbmRpdGlvbl9wZXJpb2RlX2RlbWVuYWdlbWVudF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICBcImNvbmRpdGlvbl9ww6lyaW9kZV9kw6ltw6luYWdlbWVudFwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ5Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDY1OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDc2OyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMjBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IFByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAoaW5mb3JtYXRpb25zXy5JbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LmRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9lbmZhbnRfb3VfZGVybmllcl9zaV9wbHVzKVxuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC5Nb2luc0RlVHJvaXNFbmZhbnRzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC5QbHVzRGVUcm9pc0VuZmFudHMgZGF0ZV9uYWlzc2FuY2Vfb3VfZ3Jvc3Nlc3NlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBkYXRlX25haXNzYW5jZV9vdV9ncm9zc2Vzc2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEYXRlRGVOYWlzc2FuY2VPdU1vaXNEZUdyb3NzZXNzZS5EYXRlRGVOYWlzc2FuY2UgZGF0ZV9uYWlzc2FuY2VfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19maXJzdERheU9mTW9udGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9uYWlzc2FuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMikgKDApICgwKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDApICgwKSAoLTEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UuQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLkFwcmVzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00OTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDkyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX2Q4MjNfMjJfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjsgXCJwbGFmb25kX2Q4MjNfMjJcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5NTsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MzAzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQzMDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJSSA6IFByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjIuNFwiKSlcbiAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAocGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yXCIpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ5NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTU7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2xvZ2VtZW50XzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2xvZ2VtZW50XCJdXG4gICAgKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00OTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5MzsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTUwMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTUwMjsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjEtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhcGl0cmUgSSA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg4OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODg5OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjMtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBhcHBsaWNhYmxlcyDDoCBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMxNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMTQ7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMy04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmQgZWxpZ2liaWxpdGVfYXBsX2RvdF9lbGlnaWJpbGl0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kIGNvbmRpdGlvbl9yYW5nX2VuZmFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kIGNvbmRpdGlvbl9wZXJpb2RlX2RlbWVuYWdlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2R1cl9kdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2VtbWVuYWdlbWVudF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGFpX2FwcmVzX2VtbWVuYWdlbWVudF9sODIzXzhfMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00OTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X3ByaW1lX2RlbWVuYWdlbWVudF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiOyBcIm1vbnRhbnRfcHJpbWVfZMOpbcOpbmFnZW1lbnRcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01MDE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTAxOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjEwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMTA2OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTIyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogUHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIGRlcGVuc2VzX2p1c3RpZmllZXNfcmVlbGxlbWVudF9lbmdhZ2Vlc19cbiAgICAgICAgICAgICAgICAgcGxhZm9uZF9kODIzXzIyXykgdGhlblxuICAgICAgICAgICAgICBkZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnRfZW5nYWdlZXNfIGVsc2UgcGxhZm9uZF9kODIzXzIyXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTAxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTUwMTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7RWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50Lm1vbnRhbnRfcHJpbWVfZGVtZW5hZ2VtZW50ID1cbiAgICAgbW9udGFudF9wcmltZV9kZW1lbmFnZW1lbnRffVxuXG5sZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCAoZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbjogRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi50KSA6IEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LnQgPVxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgbWVuYWdlXzogTWVuYWdlLnQgPSBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4ubWVuYWdlX2luIGluXG4gIGxldCBkZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5kZW1hbmRldXJfaW4gaW5cbiAgbGV0IGJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfOiBib29sID0gZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLmJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IGR1cmVlX2w4NDFfMV8zXzogZHVyYXRpb24gPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiZHVyw6llX2w4NDFfMV8zXCJdIChlbWJlZF9kdXJhdGlvbikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDM7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDE3OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTc5OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGR1cmF0aW9uX29mX251bWJlcnMgKDUpICgwKSAoMCkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ0Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDM7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICAgIFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ1OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NTk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ1OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NTk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NTk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDU5OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3ByZXN0YXRpb25fY291cmFudGVfOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiO1xuICAgICAgICBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXMucHJlc3RhdGlvbl9jb3VyYW50ZVwiXVxuICAgICAgKGVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDYwOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDYwOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uTG9nZW1lbnQgKCkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDYwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2MDsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICAgIFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5yw6lzaWRlbmNlXCJdIChlbWJlZF9jb2xsZWN0aXZpdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NjI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDYyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl86IHVuaXQgLT4gZHVyYXRpb24gPSBmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy7DomdlX2w1MTJfM18yXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9kdXJhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgcmVzdWx0XzogRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc1wiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc1wiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdXG4gICAgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAoe0VsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnByZXN0YXRpb25fY291cmFudGVfaW4gPVxuICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3ByZXN0YXRpb25fY291cmFudGVfO1xuICAgICAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzaWRlbmNlXztcbiAgICAgICAgRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5hZ2VfbDUxMl8zXzJfaW4gPVxuICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl99KSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9hZ2VfbDUxMl8zXzJfOiBkdXJhdGlvbiA9IHJlc3VsdF8uRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfOiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5kcm9pdF9vdXZlcnQgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2NvbmRpdGlvbnNfaG9yc19hZ2VfOiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCA9IHJlc3VsdF8uRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuY29uZGl0aW9uc19ob3JzX2FnZSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnaW1lX291dHJlX21lcl9sNzUxXzFfOiBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSBpblxuICBsZXQgbF84NDFfMV82X2FwcGxpY2FibGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiOyBcImxfODQxXzFfNl9hcHBsaWNhYmxlXCJdIChlbWJlZF9ib29sKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDQwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0NDsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ0OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NTY7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzU2OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NTA7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ1MDsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDQgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDQwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ0MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBsXzg0MV8xXzJfYXBwbGljYWJsZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwibF84NDFfMV8yX2FwcGxpY2FibGVcIl0gKGVtYmVkX2Jvb2wpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Mjc7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTI3OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzOTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NTU7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzU1OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NDk7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ0OTsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDQgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDM5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBsXzg0MV8xXzFfYXBwbGljYWJsZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwibF84NDFfMV8xX2FwcGxpY2FibGVcIl0gKGVtYmVkX2Jvb2wpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQzODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDU7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA1OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NTQ7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzU0OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NDg7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ0ODsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDQgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDM4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQzODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fYWNjZXNzaW9uX3Byb3ByaWV0ZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiY29uZGl0aW9uX2FjY2Vzc2lvbl9wcm9wcmnDqXTDqVwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDM3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQzNzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzNzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzNzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzNzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzNzc7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5wcmV0KS5QcmV0LnRpdHVsYWlyZV9wcmV0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpdHVsYWlyZVByZXQuRGVtYW5kZXVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5WZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5PYmplY3RpZkRlY2VuY2VMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM1NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzYwOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NDItNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC50aXR1bGFpcmVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpdHVsYWlyZVByZXQuRGVtYW5kZXVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaXR1bGFpcmVQcmV0LlZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzMzg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzQ1OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC50aXR1bGFpcmVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5EZW1hbmRldXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5WZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlByZXZ1RGFuc0xpc3RlUjMyMV8xNSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzMDg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzMTA7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg0Mi01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDM3OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9tZW5hZ2VfOiBNZW5hZ2UudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLm3DqW5hZ2VcIl1cbiAgICAgIChlbWJlZF9tZW5hZ2UpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2NDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2NDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2NDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmRlbWFuZGV1clwiXVxuICAgICAgKGVtYmVkX2RlbWFuZGV1cilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDY2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2NjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfOiBcbiAgICB1bml0IC0+IGJvb2wgPSBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5jb25kaXRpb25fbG9nZW1lbnRfcsOpc2lkZW5jZV9wcmluY2lwYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbClcbiAgICAgICAgICAgICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3Nzc7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Nzc3OyBlbmRfY29sdW1uPTY4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3Nzc7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Nzc3OyBlbmRfY29sdW1uPTY4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgbG9nZW1lbnRfZm95ZXJfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl8uTG9nZW1lbnRGb3llci5jb25zdHJ1aXRfYXBwbGljYXRpb25fbG9pXzE5NTdfMTJfSUlJKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXzogdW5pdCAtPiBib29sID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUuY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00Nzc4OyBzdGFydF9jb2x1bW49OTsgZW5kX2xpbmU9NDc3ODsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg0Mi0xNFwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00Nzc4OyBzdGFydF9jb2x1bW49OTsgZW5kX2xpbmU9NDc3ODsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg0Mi0xNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAobWF0Y2ggKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgbG9nZW1lbnRfZm95ZXJfIC0+XG4gICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl8uTG9nZW1lbnRGb3llci5jb25zdHJ1aXRfYXBwbGljYXRpb25fbG9pXzE5NTdfMTJfSUlJKVxuICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoXzogdW5pdCAtPiBkYXRlID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUuZGF0ZV9lbnRyw6llX3ZpZ3VldXJfZGlmZsOpcsOpZV9jY2hcIl1cbiAgICAgIChlbWJlZF9kYXRlKSAocmFpc2UgRW1wdHlFcnJvcikpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmVcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZVwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdXG4gICAgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLm1lbmFnZV9pbiA9XG4gICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X21lbmFnZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGVtYW5kZXVyX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kZW1hbmRldXJfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF99KSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZGF0ZV9jb3VyYW50ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZWxpZ2liaWxpdGVfOiBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5lbGlnaWJpbGl0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXzogaW50ZWdlciA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogXG4gICAgZGVjaW1hbCBhcnJheSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uXzJfcjgyM180XzogUGVyc29ubmVBQ2hhcmdlLnQgLT4gYm9vbCA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29uZGl0aW9uXzJfcjgyM180IGluXG4gIGxldCBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogZGVjaW1hbCBhcnJheSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgIFwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVfcHJpc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDUzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQ1MzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDcwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ3MDsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDUzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQ1MzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IGludGVnZXIgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICBcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcIl0gKGVtYmVkX2ludGVnZXIpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NTI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDUyOyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00Njg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY4OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ1Mjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00NTI7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9kaXNwb3NpdGlvbnNfY29tbXVuZXNfOiBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgIFwiw6lsaWdpYmlsaXTDqV9kaXNwb3NpdGlvbnNfY29tbXVuZXNcIl1cbiAgICAoZW1iZWRfdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDUwOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTQ1MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04Nzc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODc3OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19vciAob19ub3QgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZWxpZ2liaWxpdGVfKVxuICAgICAgICAgICAgICAgICAob19ub3QgY29uZGl0aW9uX2FjY2Vzc2lvbl9wcm9wcmlldGVfKSkgdGhlblxuICAgICAgICAgICAgICAoVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlICgpKSBlbHNlXG4gICAgICAgICAgICAgIChUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSAoKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ1MDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT00NTA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZhbWlsaWFsZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICBcIsOpbGlnaWJpbGl0w6lfYWxsb2NhdGlvbl9sb2dlbWVudF9mYW1pbGlhbGVcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4MTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODE4OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgTDg2Mi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZXVyXy5EZW1hbmRldXIuZXN0X25vbl9zYWxhcmllX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc3ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3OTk7IGVuZF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw4NjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyc29ubmVfYV9jaGFyZ2VfOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2Ryb2l0X291dmVydF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7RW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmlkZW50aWZpYW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5pZGVudGlmaWFudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZGF0ZV9kZV9uYWlzc2FuY2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmRhdGVfZGVfbmFpc3NhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXR1YXRpb25HYXJkZUFsdGVybmVlLlBhc0RlR2FyZGVBbHRlcm5lZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmlzZUVuQ2hhcmdlRW5mYW50LkVmZmVjdGl2ZUV0UGVybWFuZW50ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCl9KSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUyODsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZXVyXy5EZW1hbmRldXIuZXN0X25vbl9zYWxhcmllX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ4NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MDc7IGVuZF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV9hX2NoYXJnZV86XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbm5lQUNoYXJnZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZHJvaXRfb3V2ZXJ0XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuaWRlbnRpZmlhbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmlkZW50aWZpYW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLm9ibGlnYXRpb25fc2NvbGFpcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5kYXRlX2RlX25haXNzYW5jZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuRWZmZWN0aXZlRXRQZXJtYW5lbnRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXR1YXRpb25HYXJkZUFsdGVybmVlLkdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJpc2VFbkNoYXJnZUVuZmFudC5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50KX0pKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTQ7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBMODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbF84NDFfMV82X2FwcGxpY2FibGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UuZW5mYW50X2FfbmFpdHJlX2FwcmVzX3F1YXRyaWVtZV9tb2lzX2dyb3NzZXNzZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuTWFyaWVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5QYWNzZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAyMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAzNDsgZW5kX2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbm5lQUNoYXJnZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgcGFyZW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLmFzY2VuZGFudF9kZXNjZW5kYW50X2NvbGxhdGVyYWxfZGV1eGllbWVfdHJvaXNpZW1lX2RlZ3JlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5pbmNhcGFjaXRlXzgwX3BvdXJjZW50X291X3Jlc3RyaWN0aW9uX2VtcGxvaSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDc7IGVuZF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV9hX2NoYXJnZV86XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl8yX3I4MjNfNF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV9hX2NoYXJnZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NjU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05OTE7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2Ryb2l0X291dmVydF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe0VuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5pZGVudGlmaWFudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuaWRlbnRpZmlhbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5kYXRlX2RlX25haXNzYW5jZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5wcmlzZV9lbl9jaGFyZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5QYXNEZUdhcmRlQWx0ZXJuZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJpc2VFbkNoYXJnZUVuZmFudC5FZmZlY3RpdmVFdFBlcm1hbmVudGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpfSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5NYXJpZXMgZGF0ZV9tYXJpYWdlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9tYXJpYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXJlZV9sODQxXzFfM18pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLlBhY3NlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZVNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkzMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTQ7IGVuZF9jb2x1bW49ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgbF84NDFfMV8yX2FwcGxpY2FibGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbm5lQUNoYXJnZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7RW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmlkZW50aWZpYW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuaWRlbnRpZmlhbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLm9ibGlnYXRpb25fc2NvbGFpcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRhdGVfZGVfbmFpc3NhbmNlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25HYXJkZUFsdGVybmVlLlBhc0RlR2FyZGVBbHRlcm5lZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuRWZmZWN0aXZlRXRQZXJtYW5lbnRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpfSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxNTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmQgbF84NDFfMV8xX2FwcGxpY2FibGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2ZvbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoYWNjXzogYm9vbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXN0YXRpb25fOiBQcmVzdGF0aW9uUmVjdWUudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19vciBhY2NfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBwcmVzdGF0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmVzdGF0aW9uUmVjdWUuQWxsb2NhdGlvbnNGYW1pbGlhbGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcHJlc3RhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJlc3RhdGlvblJlY3VlLkNvbXBsZW1lbnRGYW1pbGlhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHByZXN0YXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHByZXN0YXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2FwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wcmVzdGF0aW9uc19yZWN1ZXMpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfbDg0MV8yXzogVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9sODQxXzJcIl1cbiAgICAoZW1iZWRfdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDUxOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTQ1MTsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NTE7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ1MTsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDUxOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ1MTsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYzODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2Mzk7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MTYtOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZXVyXy5EZW1hbmRldXIubWFnaXN0cmF0X2ZvbmN0aW9ubmFpcmVfY2VudHJlX2ludGVyZXRzX21hdGVyaWVsc19mYW1pbGlhdXhfaG9yc19tYXlvdHRlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5QYXNFbGlnaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYwNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjEzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5hY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X0V0YXRfb3V0cmVfbWVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyLkFjY29yZCBkYXRlX2FjY29yZF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9hY2NvcmRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lci5QYXNkQWNjb3JkIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlICgpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDUxOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NTE7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTgxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExODE7IGVuZF9jb2x1bW49NzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbWFuZGV1cl8uRGVtYW5kZXVyLnBlcnNvbm5lX2hlYmVyZ2VlX2NlbnRyZV9zb2luX2xfTDE2Ml8yMl8zX3NlY3VyaXRlX3NvY2lhbGUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE5ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuUGFzRWxpZ2libGUgKCkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwODE7IHN0YXJ0X2NvbHVtbj0yOTsgZW5kX2xpbmU9MTA4MTsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAob19lcSBlbGlnaWJpbGl0ZV9kaXNwb3NpdGlvbnNfY29tbXVuZXNfXG4gICAgICAgICAgICAgICAgICAgIChUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuUGFzRWxpZ2libGUgKCkpKVxuICAgICAgICAgICAgICAgICBiZW5lZmljaWVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XykgdGhlblxuICAgICAgICAgICAgICAoVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlICgpKSBlbHNlXG4gICAgICAgICAgICAgICggaWYgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9mYW1pbGlhbGVfIHRoZW5cbiAgICAgICAgICAgICAgICAgKFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGVcbiAgICAgICAgICAgICAgICAgICAgKCkpIGVsc2VcbiAgICAgICAgICAgICAgICAgKFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXG4gICAgICAgICAgICAgICAgICAgICgpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ1MTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT00NTE7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5lbGlnaWJpbGl0ZSA9IGVsaWdpYmlsaXRlX2w4NDFfMl87XG4gICAgIEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXztcbiAgICAgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV99XG5cbmxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbjogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udCkgOiBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudCA9XG4gIGxldCBtZW5hZ2VfOiBNZW5hZ2UudCA9IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5tZW5hZ2VfaW4gaW5cbiAgbGV0IGRlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgY2FyYWN0ZXJpc3RpcXVlc19wcmV0X2w4MzFfMV8xXzogUHJldC50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgIFwiY2FyYWN0w6lyaXN0aXF1ZXNfcHLDqnRfbDgzMV8xXzFcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAocHJldF86IFByZXQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwMTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwMjE7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgzMi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJldF8uUHJldC50aXR1bGFpcmVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5EZW1hbmRldXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpdHVsYWlyZVByZXQuVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChwcmV0Xy5QcmV0LnR5cGVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAocHJldF8uUHJldC50eXBlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk4Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5ODU7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MzItNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAocHJldF8uUHJldC50aXR1bGFpcmVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaXR1bGFpcmVQcmV0LkRlbWFuZGV1ciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpdHVsYWlyZVByZXQuVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAocHJldF8uUHJldC50eXBlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChwcmV0Xy5QcmV0LnR5cGVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT4gZmFsc2UpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM5Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYXJhY3RlcmlzdGlxdWVzX3ByZXRfbDgzMV8xXzZfOiBQcmV0LnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfNlwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChwcmV0XzogUHJldC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTg7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5ODsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5ODsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM5ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTg7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9tZW5hZ2VfOiBNZW5hZ2UudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUubcOpbmFnZVwiXSAoZW1iZWRfbWVuYWdlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MDk7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MDk7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MDk7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGVtYW5kZXVyXzogRGVtYW5kZXVyLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmRlbWFuZGV1clwiXSAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTA7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTA7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZW1hbmRldXJfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTA7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxMTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxMTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQxMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTE7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5jb25kaXRpb25fbG9nZW1lbnRfcsOpc2lkZW5jZV9wcmluY2lwYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKHJhaXNlIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfOiB1bml0IC0+IGJvb2wgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXCJdIChlbWJlZF9ib29sKVxuICAgICAgKHJhaXNlIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfOiB1bml0IC0+IGRhdGUgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmRhdGVfZW50csOpZV92aWd1ZXVyX2RpZmbDqXLDqWVfY2NoXCJdXG4gICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU0Njc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTQ2NzsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg2MS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FwaXRyZSBJIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT01NDY4OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9NTQ2OTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg2MS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FwaXRyZSBJIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAobWF0Y2ggKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoNSkgKDEpKSkpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZVwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmVcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50KVxuICAgICh7RWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5tZW5hZ2VfaW4gPVxuICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9tZW5hZ2VfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGVtYW5kZXVyXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hffSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmRhdGVfY291cmFudGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2VsaWdpYmlsaXRlXzogYm9vbCA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZWxpZ2liaWxpdGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IGludGVnZXIgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV86IFxuICAgIGRlY2ltYWwgYXJyYXkgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl8yX3I4MjNfNF86IFBlcnNvbm5lQUNoYXJnZS50IC0+IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmNvbmRpdGlvbl8yX3I4MjNfNCBpblxuICBsZXQgbG9nZW1lbnRfc2l0dWVfY29tbXVuZV9kZXNlcXVpbGlicmVfbDgzMV8yXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgXCJsb2dlbWVudF9zaXR1w6lfY29tbXVuZV9kw6lzw6lxdWlsaWJyZV9sODMxXzJcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zOTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk0OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDYzNzsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDYzNzsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0OVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgWEkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC56b25lKVxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zOTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk0OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29uZGl0aW9uX2xvZ2VtZW50X2JhaWxsZXVyXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgXCJjb25kaXRpb25fbG9nZW1lbnRfYmFpbGxldXJcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zOTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQxOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDIyOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS01LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25fLkxvZ2VtZW50Rm95ZXIuY29udmVudGlvbm5lX3NlbG9uX3JlZ2xlc19kcm9tKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcyMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzI0OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2F0aW9uXy5Mb2dlbWVudEZveWVyLmNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSSlcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM2OTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM2OTU7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODMyLTIxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDEgOiBDb25kaXRpb25zIGQnYXNzaW1pbGF0aW9uIGRlcyBsb2dlbWVudHMtZm95ZXJzIGF1eCBsb2dlbWVudHMgw6AgdXNhZ2UgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBsb2dlbWVudF9mb3llcl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl8uTG9nZW1lbnRGb3llci5yZW1wbGl0X2NvbmRpdGlvbnNfcjgzMl8yMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzM4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NDE7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgzMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBwcm9wcmlldGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FyYWN0w6lyaXN0aXF1ZXNfcHLDqnRfbDgzMV8xXzZcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhcmFjdMOpcmlzdGlxdWVzX3Byw6p0X2w4MzFfMV82XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfYm9vbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhcmFjdMOpcmlzdGlxdWVzX3Byw6p0X2w4MzFfMV82XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyYWN0ZXJpc3RpcXVlc19wcmV0X2w4MzFfMV82XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhcmFjdMOpcmlzdGlxdWVzX3Byw6p0X2w4MzFfMV82XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY3Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY4NjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgzMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBsb2NhdGlvbl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChsb2NhdGlvbl8uTG9jYXRpb24uYmFpbGxldXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVCYWlsbGV1ci5CYWlsbGV1clNvY2lhbCBjb252ZW50aW9uXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb252ZW50aW9uXy5Db252ZW50aW9uQmFpbGxldXJTb2NpYWwuY29udmVudGlvbm5lX2xpdnJlX0lJSV90aXRyZV9WX2NoYXBfSUlJKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlQmFpbGxldXIuQmFpbGxldXJQcml2ZUF2ZWNDb252ZW50aW9ubmVtZW50U29jaWFsIGNvbnZlbnRpb25fIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnZlbnRpb25fLkNvbnZlbnRpb25BTkhBLmNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfSUlfY2hhcF9JX3NlY18zKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlQmFpbGxldXIuQmFpbGxldXJQcml2ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjU2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY1OTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhcmFjdMOpcmlzdGlxdWVzX3Byw6p0X2w4MzFfMV8xXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FyYWN0w6lyaXN0aXF1ZXNfcHLDqnRfbDgzMV8xXzFcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfMV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGVfLlByb3ByaWV0YWlyZS5wcmV0KSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zOTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV86IGRlY2ltYWwgYXJyYXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgIFwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVfcHJpc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDA0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQwNDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDE1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxNTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDA0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQwNDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IGludGVnZXIgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgIFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiXSAoZW1iZWRfaW50ZWdlcikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQwMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00MDM7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTM7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDAzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQwMzsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9sb2dlbWVudF9wcmV0XzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiOyBcImNvbmRpdGlvbl9sb2dlbWVudF9wcsOqdFwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzc3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzkwOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIHByb3ByaWV0ZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLmFuY2llbm5ldGVfbG9nZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dlbWVudF9zaXR1ZV9jb21tdW5lX2Rlc2VxdWlsaWJyZV9sODMxXzJfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIHByb3ByaWV0ZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLmFuY2llbm5ldGVfbG9nZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dlbWVudF9zaXR1ZV9jb21tdW5lX2Rlc2VxdWlsaWJyZV9sODMxXzJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYzOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgzMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwcm9wcmlldGVfLlByb3ByaWV0YWlyZS5wcmV0KS5QcmV0LmRhdGVfc2lnbmF0dXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBwcm9wcmlldGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwcm9wcmlldGVfLlByb3ByaWV0YWlyZS5wcmV0KS5QcmV0LmRhdGVfc2lnbmF0dXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzUzOyBzdGFydF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzUzOyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzk2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lcIl0gKGVtYmVkX2Jvb2wpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQwMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00MDI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDAyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDAyOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDAyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjc4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNzk7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYwLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYyNzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjI5OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZCBjb25kaXRpb25fbG9nZW1lbnRfYmFpbGxldXJfXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZCBjb25kaXRpb25fbG9nZW1lbnRfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZWxpZ2liaWxpdGVfKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDAyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQwMjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00MDI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDAyOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7RWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmRhdGVfY291cmFudGUgPSBkYXRlX2NvdXJhbnRlXztcbiAgICAgRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmVsaWdpYmlsaXRlID0gZWxpZ2liaWxpdGVfO1xuICAgICBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlID1cbiAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVfO1xuICAgICBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV99XG5cbmxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50IChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luOiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4udCkgOiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnQgPVxuICBsZXQgbWVuYWdlXzogTWVuYWdlLnQgPSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5tZW5hZ2VfaW4gaW5cbiAgbGV0IGRlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbi5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4uZGVtYW5kZXVyX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfOiBtb25leSA9IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW4gaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2FsbG9jYXRpb25fbG9nZW1lbnQuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTkwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTA7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTkwOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTkwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTA7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9tZW5hZ2VfOiBNZW5hZ2UudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hbGxvY2F0aW9uX2xvZ2VtZW50Lm3DqW5hZ2VcIl0gKGVtYmVkX21lbmFnZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTgyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTgyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExODI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE4MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2RlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2FsbG9jYXRpb25fbG9nZW1lbnQuZGVtYW5kZXVyXCJdIChlbWJlZF9kZW1hbmRldXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE4Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTg2OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE4NjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODY7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9iZW5lZmljaWVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hbGxvY2F0aW9uX2xvZ2VtZW50LmLDqW7DqWZpY2llX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnRcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA5Nzsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEwOTc7IGVuZF9jb2x1bW49NzQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDk3OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTA5NzsgZW5kX2NvbHVtbj03NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwOTc7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMDk3OyBlbmRfY29sdW1uPTc0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTJcIjsgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2FsbG9jYXRpb25fbG9nZW1lbnRcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfYWxsb2NhdGlvbl9sb2dlbWVudFwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCJdIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQpXG4gICAgKHtFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5tZW5hZ2VfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X21lbmFnZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4uZGVtYW5kZXVyX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9kZW1hbmRldXJfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLmJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2JlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRffSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfZWxpZ2liaWxpdGVfbDg0MV8yXzogVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LnQgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LmVsaWdpYmlsaXRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVfOiBpbnRlZ2VyID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2NvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBcbiAgICBkZWNpbWFsIGFycmF5ID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X21lbmFnZV86IE1lbmFnZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnQubcOpbmFnZVwiXSAoZW1iZWRfbWVuYWdlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExODA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE4MDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODA7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTgwOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9kZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50LmRlbWFuZGV1clwiXVxuICAgICAgKGVtYmVkX2RlbWFuZGV1cilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTg0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODQ7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE4NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTg0OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZW1hbmRldXJfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExODQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE4NDsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5kYXRlX2NvdXJhbnRlXCJdXG4gICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTg4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODg7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE4ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTg4OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTg4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODg7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICBcIsOpbGlnaWJpbGl0w6lfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudFwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgIFwiw6lsaWdpYmlsaXTDqV9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50XCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiXVxuICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudClcbiAgICAoe0VsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLm1lbmFnZV9pbiA9XG4gICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfbWVuYWdlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uZGVtYW5kZXVyX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2RlbWFuZGV1cl87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZGF0ZV9jb3VyYW50ZV99KSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQuZGF0ZV9jb3VyYW50ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV86IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5lbGlnaWJpbGl0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVfOiBpbnRlZ2VyID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2NvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBcbiAgICBkZWNpbWFsIGFycmF5ID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSBpblxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X21vZGVfb2NjdXBhdGlvbl86IE1vZGVPY2N1cGF0aW9uLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvblwiXSAoZW1iZWRfbW9kZV9vY2N1cGF0aW9uKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExOTQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE5NDsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTk0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTQ7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExOTQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE5NDsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9yZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQucmVzc291cmNlc19tw6luYWdlX3NhbnNfYXJyb25kaVwiXVxuICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExOTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE5ODsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTk4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTg7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExOTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE5ODsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9zaXR1YXRpb25fZmFtaWxpYWxlXzogU2l0dWF0aW9uRmFtaWxpYWxlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50LnNpdHVhdGlvbl9mYW1pbGlhbGVcIl1cbiAgICAgIChlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIwMjsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjAyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMDI7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8uTWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGUpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIwMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjAyOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjA5OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIwOTsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjA5OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3pvbmVfOiBab25lREhhYml0YXRpb24udCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQuem9uZVwiXVxuICAgICAgKGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxMzsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjEzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTM7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQuem9uZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjEzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTM7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50LmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIxNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjE3OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxNzsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIxNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjE3OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3R5cGVfYWlkZV86IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQudHlwZV9haWRlXCJdXG4gICAgICAoZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExMTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTExMzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTExMzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX2w4NDFfMl9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlIF8gLT5cbiAgICAgICAgICAgICAgICAoVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlICgpKVxuICAgICAgICAgICAgfCBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlIF8gLT5cbiAgICAgICAgICAgICAgICAoVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgKCkpXG4gICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlIF8gLT5cbiAgICAgICAgICAgICAgICAoVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlICgpKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTExMzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7IFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC5yw6lzaWRlbmNlXCJdXG4gICAgICAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMjE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIyMTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjIxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjIxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRcIjtcbiAgICAgIFwiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRcIjtcbiAgICAgIFwiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCJdIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50KVxuICAgICh7Q2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luID1cbiAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X21vZGVfb2NjdXBhdGlvbl87XG4gICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV87XG4gICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnNpdHVhdGlvbl9mYW1pbGlhbGVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9zaXR1YXRpb25fZmFtaWxpYWxlXztcbiAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfO1xuICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi56b25lX2luID1cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3Rfem9uZV87XG4gICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4udHlwZV9haWRlX2luID1cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfdHlwZV9haWRlXztcbiAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfcmVzaWRlbmNlX30pKSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlIGluXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBpblxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfbW9kZV9vY2N1cGF0aW9uXzogTW9kZU9jY3VwYXRpb24udCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uXCJdXG4gICAgICAoZW1iZWRfbW9kZV9vY2N1cGF0aW9uKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExOTI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE5MjsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTkyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTI7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExOTI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE5MjsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3R5cGVfYWlkZV86IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnQudHlwZV9haWRlXCJdXG4gICAgICAoZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExMTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTExMTsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTExMTsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCAoKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTExMTsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7IFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50LnJlc3NvdXJjZXNfbcOpbmFnZV9zYW5zX2Fycm9uZGlcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTk2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTY7IGVuZF9jb2x1bW49NjY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTk2OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTk2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTY7IGVuZF9jb2x1bW49NjY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9zaXR1YXRpb25fZmFtaWxpYWxlXzogU2l0dWF0aW9uRmFtaWxpYWxlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50LnNpdHVhdGlvbl9mYW1pbGlhbGVcIl1cbiAgICAgIChlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMDA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIwMDsgZW5kX2NvbHVtbj02ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjAwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMDA7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8uTWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGUpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIwMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjAwOyBlbmRfY29sdW1uPTY4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlXCJdXG4gICAgICAoZW1iZWRfaW50ZWdlcilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjA1OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTIwNTsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjA1OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTIwNTsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjA1OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTIwNTsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3pvbmVfOiBab25lREhhYml0YXRpb24udCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnQuem9uZVwiXSAoZW1iZWRfem9uZV9kX2hhYml0YXRpb24pXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIxMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjExOyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxMTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC56b25lKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxMTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMTU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxNTsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjE1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTU7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMTU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxNTsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5yw6lzaWRlbmNlXCJdXG4gICAgICAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMTk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxOTsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjE5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTk7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjE5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTk7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50XCI7XG4gICAgICBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnRcIjtcbiAgICAgIFwiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIl0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudClcbiAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5tb2RlX29jY3VwYXRpb25faW4gPVxuICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9tb2RlX29jY3VwYXRpb25fO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udHlwZV9haWRlX2luID1cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF90eXBlX2FpZGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ucmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luID1cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9yZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnpvbmVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3pvbmVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3Jlc2lkZW5jZV99KSkpIGluXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSBpblxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IFxuICAgIG1vbmV5IC0+IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgaW5cbiAgbGV0IGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBkZWNpbWFsIGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgXCJjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybsOpZV9wcmlzX2VuX2NvbXB0ZVwiXVxuICAgIChlbWJlZF9hcnJheSAoZW1iZWRfZGVjaW1hbCkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTc2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExNzY7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjI0OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTc2OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExNzI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE3MjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExMDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTEwMjsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fb3IgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9cbiAgICAgICAgICAgICAgKG1hdGNoIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX2w4NDFfMl9cbiAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgfCBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgdHJ1ZSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNzI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE3MjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTc0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE3NDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTQwOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE0MDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfYXBsXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl0gKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfYWxfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWYgKG9fbm90IGVsaWdpYmlsaXRlXykgdGhlbiBhaWRlX2ZpbmFsZV8gZWxzZVxuICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX2w4NDFfMl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBhaWRlX2ZpbmFsZV9hcGxfIGFpZGVfZmluYWxlX2FsXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBhaWRlX2ZpbmFsZV9hcGxfIGVsc2UgYWlkZV9maW5hbGVfYWxfKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBhaWRlX2ZpbmFsZV9hcGxfIGVsc2UgYWlkZV9maW5hbGVfYWxfKSkpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE3NDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTc0OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE3NDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTc0OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhaWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTczOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExNzM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTIzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMjM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgKG9fbm90IGVsaWdpYmlsaXRlXykgdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlXG4gICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZWxpZ2liaWxpdGVfXG4gICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfZWxpZ2liaWxpdGVfbDg0MV8yX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuUGFzRWxpZ2libGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXykpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV8pXG4gICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX1xuICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNzM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE3MzsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7Q2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC5lbGlnaWJpbGl0ZSA9IGVsaWdpYmlsaXRlXztcbiAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlID0gYWlkZV9maW5hbGVfZm9ybXVsZV87XG4gICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV87XG4gICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV99XG5cbmxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlIChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luOiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLnQpIDogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUudCA9XG4gIGxldCBtZW5hZ2VfOiBNZW5hZ2UudCA9IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5tZW5hZ2VfaW4gaW5cbiAgbGV0IGRlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbi5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLmRlbWFuZGV1cl9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IG1vbmV5ID0gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbi5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLnJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW4gaW5cbiAgbGV0IG1lbmFnZV9zYW5zX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfOiBNZW5hZ2UudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZVwiO1xuICAgICAgXCJtw6luYWdlX3NhbnNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVcIl0gKGVtYmVkX21lbmFnZSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyNDM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTI0MzsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI3NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjc1OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIHtNZW5hZ2UucHJlc3RhdGlvbnNfcmVjdWVzID0gKG1lbmFnZV8uTWVuYWdlLnByZXN0YXRpb25zX3JlY3Vlcyk7XG4gICAgICAgICAgICAgICBNZW5hZ2UubG9nZW1lbnQgPSAobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpO1xuICAgICAgICAgICAgICAgTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAoZnVuIChwZXJzb25uZV9hX2NoYXJnZV86IFBlcnNvbm5lQUNoYXJnZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5QYXNEZUdhcmRlQWx0ZXJuZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25HYXJkZUFsdGVybmVlLkdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSk7XG4gICAgICAgICAgICAgICBNZW5hZ2Uubm9tYnJlX2F1dHJlc19vY2N1cGFudHNfbG9nZW1lbnQgPVxuICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2Uubm9tYnJlX2F1dHJlc19vY2N1cGFudHNfbG9nZW1lbnQpO1xuICAgICAgICAgICAgICAgTWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGUgPVxuICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2Uuc2l0dWF0aW9uX2ZhbWlsaWFsZSk7XG4gICAgICAgICAgICAgICBNZW5hZ2UuY29uZGl0aW9uX3JhdHRhY2hlX2ZveWVyX2Zpc2NhbF9wYXJlbnRfaWZpID1cbiAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLmNvbmRpdGlvbl9yYXR0YWNoZV9mb3llcl9maXNjYWxfcGFyZW50X2lmaSk7XG4gICAgICAgICAgICAgICBNZW5hZ2UuZW5mYW50X2FfbmFpdHJlX2FwcmVzX3F1YXRyaWVtZV9tb2lzX2dyb3NzZXNzZSA9XG4gICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5lbmZhbnRfYV9uYWl0cmVfYXByZXNfcXVhdHJpZW1lX21vaXNfZ3Jvc3Nlc3NlKTtcbiAgICAgICAgICAgICAgIE1lbmFnZS5wZXJzb25uZXNfYWdlZXNfaGFuZGljYXBlZXNfZm95ZXJfcjg0NF80ID1cbiAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hZ2Vlc19oYW5kaWNhcGVlc19mb3llcl9yODQ0XzQpO1xuICAgICAgICAgICAgICAgTWVuYWdlLnJlc2lkZW5jZSA9IChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpfSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTI0Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjQzOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9kb3RfbWVuYWdlXzogTWVuYWdlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiY2FsY3VsZXR0ZS5tw6luYWdlXCJdXG4gICAgICAoZW1iZWRfbWVuYWdlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyNTQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI1NDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI1NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbWVuYWdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjU0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNTQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9kb3RfZGVtYW5kZXVyXzogRGVtYW5kZXVyLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiY2FsY3VsZXR0ZS5kZW1hbmRldXJcIl1cbiAgICAgIChlbWJlZF9kZW1hbmRldXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTI1Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjU2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZW1hbmRldXJfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI1NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxldHRlX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjsgXCJjYWxjdWxldHRlLmRhdGVfY291cmFudGVcIl1cbiAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyNTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI1ODsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI1ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU4OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTI1ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU4OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bGV0dGVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgICAgXCJjYWxjdWxldHRlLnJlc3NvdXJjZXNfbcOpbmFnZV9wcmlzZXNfZW5fY29tcHRlXCJdIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjYwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjA7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI2MDsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI2MDsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiY2FsY3VsZXR0ZVwiO1xuICAgICAgXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjsgXCJjYWxjdWxldHRlXCI7XG4gICAgICBcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIl0gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudClcbiAgICAoe0NhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5tZW5hZ2VfaW4gPSBjYWxjdWxldHRlX2RvdF9tZW5hZ2VfO1xuICAgICAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4uZGVtYW5kZXVyX2luID0gY2FsY3VsZXR0ZV9kb3RfZGVtYW5kZXVyXztcbiAgICAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGNhbGN1bGV0dGVfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4ucmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pbiA9XG4gICAgICAgICAgY2FsY3VsZXR0ZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV99KSkpIGluXG4gIGxldCBjYWxjdWxldHRlX2RvdF9lbGlnaWJpbGl0ZV86IGJvb2wgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuZWxpZ2liaWxpdGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlIGluXG4gIGxldCBjYWxjdWxldHRlX2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlXzogbW9uZXkgLT4gbW9uZXkgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBpblxuICBsZXQgY2FsY3VsZXR0ZV9kb3RfY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV86IFxuICAgIGRlY2ltYWwgYXJyYXkgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9tZW5hZ2VfOiBNZW5hZ2UudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgICAgXCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuw6llLm3DqW5hZ2VcIl0gKGVtYmVkX21lbmFnZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjI7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI2MjsgZW5kX2NvbHVtbj01MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV9zYW5zX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNjI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI2MjsgZW5kX2NvbHVtbj01MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWVfZG90X2RlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZVwiO1xuICAgICAgICBcImNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm7DqWUuZGVtYW5kZXVyXCJdIChlbWJlZF9kZW1hbmRldXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjY0OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjQ7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZW1hbmRldXJfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI2NDsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWVfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZVwiO1xuICAgICAgICBcImNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm7DqWUuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjY2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjY7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI2NjsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI2NjsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgICAgXCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuw6llLnJlc3NvdXJjZXNfbcOpbmFnZV9wcmlzZXNfZW5fY29tcHRlXCJdXG4gICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2OTsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEyNjk7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjk7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMjY5OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTI2OTsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEyNjk7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZVwiO1xuICAgICAgXCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuw6llXCI7IFwiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiXVxuICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgIFwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybsOpZVwiOyBcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIl1cbiAgICBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50KVxuICAgICh7Q2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLm1lbmFnZV9pbiA9XG4gICAgICAgIGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfbWVuYWdlXztcbiAgICAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiA9XG4gICAgICAgICAgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9kZW1hbmRldXJfO1xuICAgICAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW4gPVxuICAgICAgICAgIGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV99KSkpIGluXG4gIGxldCBjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWVfZG90X2VsaWdpYmlsaXRlXzogYm9vbCA9IHJlc3VsdF8uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC5lbGlnaWJpbGl0ZSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlXzogbW9uZXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9uZXkgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogXG4gICAgZGVjaW1hbCBhcnJheSA9IHJlc3VsdF8uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjsgXCLDqWxpZ2liaWxpdMOpXCJdIChlbWJlZF9ib29sKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjUwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEyNTA7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTMwNDsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bGV0dGVfZG90X2VsaWdpYmlsaXRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTI1MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMjUwOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV86IGRlY2ltYWwgYXJyYXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgIFwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVfcHJpc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTI0NDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjQ0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjczOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNzM7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgY2FsY3VsZXR0ZV9kb3RfY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNDQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTI0NDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFpZGVfZmluYWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjsgXCJhaWRlX2ZpbmFsZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyNTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTI1MTsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXV0cmVzX3NvdXJjZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI4MzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNvbnNlaWwgZCfDiXRhdCwgNcOobWUgLSA0w6htZSBjaGFtYnJlcyByw6l1bmllcywgMjEvMDcvMjAxNywgMzk4NTYzXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgIGNhbGN1bGV0dGVfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfKSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgIGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfKVxuICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBjYWxjdWxldHRlX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXylcbiAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAob19yZWR1Y2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHN1bTFfOiBkZWNpbWFsKSAoc3VtMl86IGRlY2ltYWwpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9yYXRfcmF0IHN1bTFfIHN1bTJfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfKSkpKSkpKSkpKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjUxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEyNTE7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZS5lbGlnaWJpbGl0ZSA9IGVsaWdpYmlsaXRlXztcbiAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUuYWlkZV9maW5hbGUgPSBhaWRlX2ZpbmFsZV99XG4iLCIoKiogVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSB0aGUgQ2F0YWxhIGNvbXBpbGVyLCBkbyBub3QgZWRpdCEgKilcblxub3BlbiBSdW50aW1lX29jYW1sLlJ1bnRpbWVcbm9wZW4gUnVudGltZV9qc29vLlJ1bnRpbWVcbm9wZW4gSnNfb2Zfb2NhbWxcbm9wZW4gQWlkZXNfbG9nZW1lbnRcblxuW0BAQG9jYW1sLndhcm5pbmcgXCItNC0yNi0yNy0zMi00MS00MlwiXVxuXG4oKiBHZW5lcmF0ZWQgQVBJICopXG5cbmNsYXNzIHR5cGUgdHlwZV9wcmV0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiRDMzMV8zMlwiXG4gICAgICAgIC0gXCJEMzMxXzYzXzY0XCJcbiAgICAgICAgLSBcIkQzMzFfNTlfOFwiXG4gICAgICAgIC0gXCJEMzMxXzc2XzFcIlxuICAgICAgICAtIFwiQXV0cmVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB0eXBlX3ByZXRfdG9fanNvbyA6IFR5cGVQcmV0LnQgLT4gdHlwZV9wcmV0IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEQzMzFfMzIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEMzMxXzMyXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRDMzMV82M182NCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkQzMzFfNjNfNjRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBEMzMxXzU5XzggYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEMzMxXzU5XzhcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBEMzMxXzc2XzEgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEMzMxXzc2XzFcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBdXRyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkF1dHJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB0eXBlX3ByZXRfb2ZfanNvbyAodHlwZV9wcmV0IDogdHlwZV9wcmV0IEpzLnQpIDogVHlwZVByZXQudCA9XG4gIG1hdGNoIHR5cGVfcHJldCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkQzMzFfMzJcIiAtPiBUeXBlUHJldC5EMzMxXzMyICgpXG4gIHwgXCJEMzMxXzYzXzY0XCIgLT4gVHlwZVByZXQuRDMzMV82M182NCAoKVxuICB8IFwiRDMzMV81OV84XCIgLT4gVHlwZVByZXQuRDMzMV81OV84ICgpXG4gIHwgXCJEMzMxXzc2XzFcIiAtPiBUeXBlUHJldC5EMzMxXzc2XzEgKClcbiAgfCBcIkF1dHJlXCIgLT4gVHlwZVByZXQuQXV0cmUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZiBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1R5cGVQcmV0LnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHRpdHVsYWlyZV9wcmV0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiRGVtYW5kZXVyXCJcbiAgICAgICAgLSBcIlZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb25cIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB0aXR1bGFpcmVfcHJldF90b19qc29vIDogVGl0dWxhaXJlUHJldC50IC0+IHRpdHVsYWlyZV9wcmV0IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IERlbWFuZGV1ciBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkRlbWFuZGV1clwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb24gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJWZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB0aXR1bGFpcmVfcHJldF9vZl9qc29vICh0aXR1bGFpcmVfcHJldCA6IHRpdHVsYWlyZV9wcmV0IEpzLnQpXG4gIDogVGl0dWxhaXJlUHJldC50ID1cbiAgbWF0Y2ggdGl0dWxhaXJlX3ByZXQjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJEZW1hbmRldXJcIiAtPiBUaXR1bGFpcmVQcmV0LkRlbWFuZGV1ciAoKVxuICB8IFwiVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvblwiIC0+XG4gICAgVGl0dWxhaXJlUHJldC5WZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUaXR1bGFpcmVQcmV0LnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiVHJhdmF1eFBvdXJBY3F1aXNpdGlvbkQ4MzJfMTVfMVwiXG4gICAgICAgIC0gXCJUcmF2YXV4U3VyTG9nZW1lbnREZWphQWNxdWlzRDgzMl8xNV8yXCJcbiAgICAgICAgLSBcIlBhc0RlVHJhdmF1eFwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1X3RvX2pzb29cbiAgOiBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LnQgLT4gdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgVHJhdmF1eFBvdXJBY3F1aXNpdGlvbkQ4MzJfMTVfMSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzFcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBUcmF2YXV4U3VyTG9nZW1lbnREZWphQWNxdWlzRDgzMl8xNV8yIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMlwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFBhc0RlVHJhdmF1eCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBhc0RlVHJhdmF1eFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTVfb2ZfanNvb1xuICAodHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUgOiB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSBKcy50KVxuICA6IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUudCA9XG4gIG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1IyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiVHJhdmF1eFBvdXJBY3F1aXNpdGlvbkQ4MzJfMTVfMVwiIC0+XG4gICAgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5UcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xICgpXG4gIHwgXCJUcmF2YXV4U3VyTG9nZW1lbnREZWphQWNxdWlzRDgzMl8xNV8yXCIgLT5cbiAgICBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlRyYXZhdXhTdXJMb2dlbWVudERlamFBY3F1aXNEODMyXzE1XzIgKClcbiAgfCBcIlBhc0RlVHJhdmF1eFwiIC0+IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUuUGFzRGVUcmF2YXV4ICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJPYmplY3RpZkRlY2VuY2VMb2dlbWVudFwiXG4gICAgICAgIC0gXCJQcmV2dURhbnNMaXN0ZVIzMjFfMTVcIlxuICAgICAgICAtIFwiQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjNcIlxuICAgICAgICAtIFwiUGFzRGVUcmF2YXV4XCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNV90b19qc29vXG4gIDogVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LnQgLT4gdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBPYmplY3RpZkRlY2VuY2VMb2dlbWVudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUHJldnVEYW5zTGlzdGVSMzIxXzE1IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUHJldnVEYW5zTGlzdGVSMzIxXzE1XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82M1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFBhc0RlVHJhdmF1eCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBhc0RlVHJhdmF1eFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNV9vZl9qc29vXG4gICh0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81IDogdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSBKcy50KVxuICA6IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS50ID1cbiAgbWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50XCIgLT5cbiAgICBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgKClcbiAgfCBcIlByZXZ1RGFuc0xpc3RlUjMyMV8xNVwiIC0+XG4gICAgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlByZXZ1RGFuc0xpc3RlUjMyMV8xNSAoKVxuICB8IFwiQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjNcIiAtPlxuICAgIFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyAoKVxuICB8IFwiUGFzRGVUcmF2YXV4XCIgLT4gVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGFtZWxpb3JlX3Bhcl9vY2N1cGFudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIk91aVwiXG4gICAgICAgIC0gXCJOb25cIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBhbWVsaW9yZV9wYXJfb2NjdXBhbnRfdG9fanNvb1xuICA6IEFtZWxpb3JlUGFyT2NjdXBhbnQudCAtPiBhbWVsaW9yZV9wYXJfb2NjdXBhbnQgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgT3VpIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiT3VpXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTm9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTm9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBhbWVsaW9yZV9wYXJfb2NjdXBhbnRfb2ZfanNvb1xuICAoYW1lbGlvcmVfcGFyX29jY3VwYW50IDogYW1lbGlvcmVfcGFyX29jY3VwYW50IEpzLnQpXG4gIDogQW1lbGlvcmVQYXJPY2N1cGFudC50ID1cbiAgbWF0Y2ggYW1lbGlvcmVfcGFyX29jY3VwYW50IyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiT3VpXCIgLT4gQW1lbGlvcmVQYXJPY2N1cGFudC5PdWkgKClcbiAgfCBcIk5vblwiIC0+IEFtZWxpb3JlUGFyT2NjdXBhbnQuTm9uICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdBbWVsaW9yZVBhck9jY3VwYW50LnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGxpbWl0ZV90cmFuY2hlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiUmV2ZW51XCJcbiAgICAgICAgLSBcIkluZmluaVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGxpbWl0ZV90cmFuY2hlX3RvX2pzb28gOiBMaW1pdGVUcmFuY2hlLnQgLT4gbGltaXRlX3RyYW5jaGUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgUmV2ZW51IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUmV2ZW51XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGFyZykpXG4gICAgZW5kXG4gIHwgSW5maW5pIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiSW5maW5pXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBsaW1pdGVfdHJhbmNoZV9vZl9qc29vIChsaW1pdGVfdHJhbmNoZSA6IGxpbWl0ZV90cmFuY2hlIEpzLnQpXG4gIDogTGltaXRlVHJhbmNoZS50ID1cbiAgbWF0Y2ggbGltaXRlX3RyYW5jaGUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJSZXZlbnVcIiAtPlxuICBMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciAoSnMuVW5zYWZlLmNvZXJjZSBsaW1pdGVfdHJhbmNoZSMjLnBheWxvYWQpKVxuICB8IFwiSW5maW5pXCIgLT4gTGltaXRlVHJhbmNoZS5JbmZpbmkgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0xpbWl0ZVRyYW5jaGUudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgbGltaXRlX3RyYW5jaGVfZGVjaW1hbCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlJldmVudVwiXG4gICAgICAgIC0gXCJJbmZpbmlcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsX3RvX2pzb29cbiAgOiBMaW1pdGVUcmFuY2hlRGVjaW1hbC50IC0+IGxpbWl0ZV90cmFuY2hlX2RlY2ltYWwgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgUmV2ZW51IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUmV2ZW51XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgYXJnKSlcbiAgICBlbmRcbiAgfCBJbmZpbmkgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJJbmZpbmlcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IGxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfb2ZfanNvb1xuICAobGltaXRlX3RyYW5jaGVfZGVjaW1hbCA6IGxpbWl0ZV90cmFuY2hlX2RlY2ltYWwgSnMudClcbiAgOiBMaW1pdGVUcmFuY2hlRGVjaW1hbC50ID1cbiAgbWF0Y2ggbGltaXRlX3RyYW5jaGVfZGVjaW1hbCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlJldmVudVwiIC0+XG4gIExpbWl0ZVRyYW5jaGVEZWNpbWFsLlJldmVudSAoZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2UgbGltaXRlX3RyYW5jaGVfZGVjaW1hbCMjLnBheWxvYWQpKVxuICB8IFwiSW5maW5pXCIgLT4gTGltaXRlVHJhbmNoZURlY2ltYWwuSW5maW5pICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdMaW1pdGVUcmFuY2hlRGVjaW1hbC50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBwcmVzdGF0aW9uX3JlY3VlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJcbiAgICAgICAgLSBcIkNvbXBsZW1lbnRGYW1pbGlhbFwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uSmV1bmVFbmZhbnRcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2FwZVwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uQWR1bHRlSGFuZGljYXBlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgcHJlc3RhdGlvbl9yZWN1ZV90b19qc29vIDogUHJlc3RhdGlvblJlY3VlLnQgLT4gcHJlc3RhdGlvbl9yZWN1ZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBDb21wbGVtZW50RmFtaWxpYWwgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDb21wbGVtZW50RmFtaWxpYWxcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uSmV1bmVFbmZhbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uSmV1bmVFbmZhbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Tb3V0aWVuRW5mYW50SGFuZGljYXBlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvblNvdXRpZW5FbmZhbnRIYW5kaWNhcGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uQWR1bHRlSGFuZGljYXBlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2FwZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgcHJlc3RhdGlvbl9yZWN1ZV9vZl9qc29vIChwcmVzdGF0aW9uX3JlY3VlIDogcHJlc3RhdGlvbl9yZWN1ZSBKcy50KVxuICA6IFByZXN0YXRpb25SZWN1ZS50ID1cbiAgbWF0Y2ggcHJlc3RhdGlvbl9yZWN1ZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiIC0+IFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uc0ZhbWlsaWFsZXMgKClcbiAgfCBcIkNvbXBsZW1lbnRGYW1pbGlhbFwiIC0+IFByZXN0YXRpb25SZWN1ZS5Db21wbGVtZW50RmFtaWxpYWwgKClcbiAgfCBcIkFsbG9jYXRpb25KZXVuZUVuZmFudFwiIC0+IFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uSmV1bmVFbmZhbnQgKClcbiAgfCBcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIiAtPlxuICAgIFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uU291dGllbkZhbWlsaWFsICgpXG4gIHwgXCJBbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2FwZVwiIC0+XG4gICAgUHJlc3RhdGlvblJlY3VlLkFsbG9jYXRpb25Tb3V0aWVuRW5mYW50SGFuZGljYXBlICgpXG4gIHwgXCJBbGxvY2F0aW9uQWR1bHRlSGFuZGljYXBlXCIgLT5cbiAgICBQcmVzdGF0aW9uUmVjdWUuQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2FwZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnUHJlc3RhdGlvblJlY3VlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHBhcmVudF9vdV9hdXRyZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkRlbWFuZGV1ck91Q29uam9pbnRPdVBhcmVudE91VmlhUGFydHNTb2NpZXRlc1wiXG4gICAgICAgIC0gXCJBdXRyZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHBhcmVudF9vdV9hdXRyZV90b19qc29vIDogUGFyZW50T3VBdXRyZS50IC0+IHBhcmVudF9vdV9hdXRyZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBEZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCBhcmcpKVxuICAgIGVuZFxuICB8IEF1dHJlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXV0cmVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHBhcmVudF9vdV9hdXRyZV9vZl9qc29vIChwYXJlbnRfb3VfYXV0cmUgOiBwYXJlbnRfb3VfYXV0cmUgSnMudClcbiAgOiBQYXJlbnRPdUF1dHJlLnQgPVxuICBtYXRjaCBwYXJlbnRfb3VfYXV0cmUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJEZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXNcIiAtPlxuICBQYXJlbnRPdUF1dHJlLkRlbWFuZGV1ck91Q29uam9pbnRPdVBhcmVudE91VmlhUGFydHNTb2NpZXRlcyAoZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2UgcGFyZW50X291X2F1dHJlIyMucGF5bG9hZCkpXG4gIHwgXCJBdXRyZVwiIC0+IFBhcmVudE91QXV0cmUuQXV0cmUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1BhcmVudE91QXV0cmUudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiUGFzRGVHYXJkZUFsdGVybmVlXCJcbiAgICAgICAgLSBcIkdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2VcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfdG9fanNvb1xuICA6IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUudCAtPiBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgUGFzRGVHYXJkZUFsdGVybmVlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGFzRGVHYXJkZUFsdGVybmVlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2VcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlX29mX2pzb29cbiAgKHNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSA6IHNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSBKcy50KVxuICA6IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUudCA9XG4gIG1hdGNoIHNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlBhc0RlR2FyZGVBbHRlcm5lZVwiIC0+IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlICgpXG4gIHwgXCJHYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlXCIgLT5cbiAgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIChkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciAoSnMuVW5zYWZlLmNvZXJjZSBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUjIy5wYXlsb2FkKSlcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1NpdHVhdGlvbkdhcmRlQWx0ZXJuZWUudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgcGFyZW50ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkFzY2VuZGFudFwiXG4gICAgICAgIC0gXCJEZXNjZW5kYW50XCJcbiAgICAgICAgLSBcIkNvbGxhdGVyYWxEZXV4aWVtZVRyb2lzaWVtZURlZ3JlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgcGFyZW50ZV90b19qc29vIDogUGFyZW50ZS50IC0+IHBhcmVudGUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQXNjZW5kYW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXNjZW5kYW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRGVzY2VuZGFudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkRlc2NlbmRhbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkNvbGxhdGVyYWxEZXV4aWVtZVRyb2lzaWVtZURlZ3JlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBwYXJlbnRlX29mX2pzb28gKHBhcmVudGUgOiBwYXJlbnRlIEpzLnQpIDogUGFyZW50ZS50ID1cbiAgbWF0Y2ggcGFyZW50ZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkFzY2VuZGFudFwiIC0+IFBhcmVudGUuQXNjZW5kYW50ICgpXG4gIHwgXCJEZXNjZW5kYW50XCIgLT4gUGFyZW50ZS5EZXNjZW5kYW50ICgpXG4gIHwgXCJDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZVwiIC0+XG4gICAgUGFyZW50ZS5Db2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnUGFyZW50ZS50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2dyb3NzZXNzZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkRhdGVEZU5haXNzYW5jZVwiXG4gICAgICAgIC0gXCJBdmFudFByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlXCJcbiAgICAgICAgLSBcIkFwcmVzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2VcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2dyb3NzZXNzZV90b19qc29vXG4gIDogRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UudCAtPiBkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2dyb3NzZXNzZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBEYXRlRGVOYWlzc2FuY2UgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEYXRlRGVOYWlzc2FuY2VcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChkYXRlX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBBdmFudFByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFwcmVzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2UgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBcHJlc1ByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2dyb3NzZXNzZV9vZl9qc29vXG4gIChkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2dyb3NzZXNzZVxuICAgIDogZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2UgSnMudClcbiAgOiBEYXRlRGVOYWlzc2FuY2VPdU1vaXNEZUdyb3NzZXNzZS50ID1cbiAgbWF0Y2ggZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2UjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJEYXRlRGVOYWlzc2FuY2VcIiAtPlxuICBEYXRlRGVOYWlzc2FuY2VPdU1vaXNEZUdyb3NzZXNzZS5EYXRlRGVOYWlzc2FuY2UgKGRhdGVfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2dyb3NzZXNzZSMjLnBheWxvYWQpKVxuICB8IFwiQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZVwiIC0+XG4gICAgRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UuQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSAoKVxuICB8IFwiQXByZXNQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZVwiIC0+XG4gICAgRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UuQXByZXNQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgem9uZV9kX2hhYml0YXRpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJab25lMVwiXG4gICAgICAgIC0gXCJab25lMlwiXG4gICAgICAgIC0gXCJab25lM1wiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28gOiBab25lREhhYml0YXRpb24udCAtPiB6b25lX2RfaGFiaXRhdGlvbiBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBab25lMSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlpvbmUxXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgWm9uZTIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJab25lMlwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFpvbmUzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiWm9uZTNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb28gKHpvbmVfZF9oYWJpdGF0aW9uIDogem9uZV9kX2hhYml0YXRpb24gSnMudClcbiAgOiBab25lREhhYml0YXRpb24udCA9XG4gIG1hdGNoIHpvbmVfZF9oYWJpdGF0aW9uIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiWm9uZTFcIiAtPiBab25lREhhYml0YXRpb24uWm9uZTEgKClcbiAgfCBcIlpvbmUyXCIgLT4gWm9uZURIYWJpdGF0aW9uLlpvbmUyICgpXG4gIHwgXCJab25lM1wiIC0+IFpvbmVESGFiaXRhdGlvbi5ab25lMyAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnWm9uZURIYWJpdGF0aW9uLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWwgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJPdWlBdmVjTG95ZXJPdUNoYXJnZXNcIlxuICAgICAgICAtIFwiTm9uXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbF90b19qc29vXG4gIDogUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC50IC0+IHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWwgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgT3VpQXZlY0xveWVyT3VDaGFyZ2VzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiT3VpQXZlY0xveWVyT3VDaGFyZ2VzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGFyZykpXG4gICAgZW5kXG4gIHwgTm9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTm9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX29mX2pzb29cbiAgKHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxcbiAgICA6IHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWwgSnMudClcbiAgOiBQYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsLnQgPVxuICBtYXRjaCBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiT3VpQXZlY0xveWVyT3VDaGFyZ2VzXCIgLT5cbiAgUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC5PdWlBdmVjTG95ZXJPdUNoYXJnZXMgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2UgcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbCMjLnBheWxvYWQpKVxuICB8IFwiTm9uXCIgLT4gUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC5Ob24gKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1BhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgdmVyc2VtZW50X2EgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJCYWlsbGV1clwiXG4gICAgICAgIC0gXCJCZW5lZmljaWFpcmVcIlxuICAgICAgICAtIFwiRXRhYmxpc3NlbWVudEhhYmlsaXRlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdmVyc2VtZW50X2FfdG9fanNvbyA6IFZlcnNlbWVudEEudCAtPiB2ZXJzZW1lbnRfYSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBCYWlsbGV1ciBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkJhaWxsZXVyXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQmVuZWZpY2lhaXJlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQmVuZWZpY2lhaXJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRXRhYmxpc3NlbWVudEhhYmlsaXRlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRXRhYmxpc3NlbWVudEhhYmlsaXRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB2ZXJzZW1lbnRfYV9vZl9qc29vICh2ZXJzZW1lbnRfYSA6IHZlcnNlbWVudF9hIEpzLnQpIDogVmVyc2VtZW50QS50ID1cbiAgbWF0Y2ggdmVyc2VtZW50X2EjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJCYWlsbGV1clwiIC0+IFZlcnNlbWVudEEuQmFpbGxldXIgKClcbiAgfCBcIkJlbmVmaWNpYWlyZVwiIC0+IFZlcnNlbWVudEEuQmVuZWZpY2lhaXJlICgpXG4gIHwgXCJFdGFibGlzc2VtZW50SGFiaWxpdGVcIiAtPiBWZXJzZW1lbnRBLkV0YWJsaXNzZW1lbnRIYWJpbGl0ZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnVmVyc2VtZW50QS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBkZXBlbnNlX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiVG90YWxBbm51ZWxFY2hlYW5jZXNcIlxuICAgICAgICAtIFwiTWVuc3VhbGl0ZVwiXG4gICAgICAgIC0gXCJMb3llclwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGRlcGVuc2VfbG9nZW1lbnRfdG9fanNvbyA6IERlcGVuc2VMb2dlbWVudC50IC0+IGRlcGVuc2VfbG9nZW1lbnQgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgVG90YWxBbm51ZWxFY2hlYW5jZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJUb3RhbEFubnVlbEVjaGVhbmNlc1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhcmcpKVxuICAgIGVuZFxuICB8IE1lbnN1YWxpdGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNZW5zdWFsaXRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGFyZykpXG4gICAgZW5kXG4gIHwgTG95ZXIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJMb3llclwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgZGVwZW5zZV9sb2dlbWVudF9vZl9qc29vIChkZXBlbnNlX2xvZ2VtZW50IDogZGVwZW5zZV9sb2dlbWVudCBKcy50KVxuICA6IERlcGVuc2VMb2dlbWVudC50ID1cbiAgbWF0Y2ggZGVwZW5zZV9sb2dlbWVudCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlRvdGFsQW5udWVsRWNoZWFuY2VzXCIgLT5cbiAgRGVwZW5zZUxvZ2VtZW50LlRvdGFsQW5udWVsRWNoZWFuY2VzIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIChKcy5VbnNhZmUuY29lcmNlIGRlcGVuc2VfbG9nZW1lbnQjIy5wYXlsb2FkKSlcbiAgfCBcIk1lbnN1YWxpdGVcIiAtPlxuICBEZXBlbnNlTG9nZW1lbnQuTWVuc3VhbGl0ZSAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciAoSnMuVW5zYWZlLmNvZXJjZSBkZXBlbnNlX2xvZ2VtZW50IyMucGF5bG9hZCkpXG4gIHwgXCJMb3llclwiIC0+XG4gIERlcGVuc2VMb2dlbWVudC5Mb3llciAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciAoSnMuVW5zYWZlLmNvZXJjZSBkZXBlbnNlX2xvZ2VtZW50IyMucGF5bG9hZCkpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdEZXBlbnNlTG9nZW1lbnQudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkltcGF5ZUxveWVyXCJcbiAgICAgICAgLSBcIkltcGF5ZVByZXRcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBtb2RlX29jY3VwYXRpb25faW1wYXllX3RvX2pzb29cbiAgOiBNb2RlT2NjdXBhdGlvbkltcGF5ZS50IC0+IG1vZGVfb2NjdXBhdGlvbl9pbXBheWUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgSW1wYXllTG95ZXIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJJbXBheWVMb3llclwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEltcGF5ZVByZXQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJJbXBheWVQcmV0XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBtb2RlX29jY3VwYXRpb25faW1wYXllX29mX2pzb29cbiAgKG1vZGVfb2NjdXBhdGlvbl9pbXBheWUgOiBtb2RlX29jY3VwYXRpb25faW1wYXllIEpzLnQpXG4gIDogTW9kZU9jY3VwYXRpb25JbXBheWUudCA9XG4gIG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9pbXBheWUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJJbXBheWVMb3llclwiIC0+IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyICgpXG4gIHwgXCJJbXBheWVQcmV0XCIgLT4gTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnTW9kZU9jY3VwYXRpb25JbXBheWUudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiUGFzRWxpZ2libGVcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fanNvb1xuICA6IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50IC0+IHR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBQYXNFbGlnaWJsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBhc0VsaWdpYmxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9vZl9qc29vXG4gICh0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRcbiAgICA6IHR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCBKcy50KVxuICA6IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50ID1cbiAgbWF0Y2ggdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiUGFzRWxpZ2libGVcIiAtPiBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuUGFzRWxpZ2libGUgKClcbiAgfCBcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiIC0+XG4gICAgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSAoKVxuICB8IFwiQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZVwiIC0+XG4gICAgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1R5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiQWNjb3JkXCJcbiAgICAgICAgLSBcIlBhc2RBY2NvcmRcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyX3RvX2pzb29cbiAgOiBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lci50IC0+IGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfZXRhdF9vdXRyZV9tZXIgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQWNjb3JkIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWNjb3JkXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoZGF0ZV90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgUGFzZEFjY29yZCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBhc2RBY2NvcmRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfZXRhdF9vdXRyZV9tZXJfb2ZfanNvb1xuICAoYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lclxuICAgIDogYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lciBKcy50KVxuICA6IEFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyLnQgPVxuICBtYXRjaCBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyIyMua2luZCB8PiBKcy50b19zdHJpbmdcbiAgICB3aXRoXG4gIHwgXCJBY2NvcmRcIiAtPlxuICBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lci5BY2NvcmQgKGRhdGVfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyIyMucGF5bG9hZCkpXG4gIHwgXCJQYXNkQWNjb3JkXCIgLT4gQWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXIuUGFzZEFjY29yZCAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnQWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXIudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb29cbiAgOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgLT4gdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X29mX2pzb29cbiAgKHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgOiB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQpXG4gIDogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID1cbiAgbWF0Y2ggdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRcIiAtPlxuICAgIFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCAoKVxuICB8IFwiQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlXCIgLT5cbiAgICBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSAoKVxuICB8IFwiQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZVwiIC0+XG4gICAgVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHNpdHVhdGlvbl9mYW1pbGlhbGUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJDZWxpYmF0YWlyZVwiXG4gICAgICAgIC0gXCJNYXJpZXNcIlxuICAgICAgICAtIFwiUGFjc2VzXCJcbiAgICAgICAgLSBcIkNvbmN1Ymluc1wiXG4gICAgICAgIC0gXCJDZWxpYmF0YWlyZVNlcGFyZURlRmFpdFwiXG4gICAgICAgIC0gXCJDb25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXRcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBzaXR1YXRpb25fZmFtaWxpYWxlX3RvX2pzb29cbiAgOiBTaXR1YXRpb25GYW1pbGlhbGUudCAtPiBzaXR1YXRpb25fZmFtaWxpYWxlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IENlbGliYXRhaXJlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ2VsaWJhdGFpcmVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBNYXJpZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNYXJpZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChkYXRlX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBQYWNzZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQYWNzZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBDb25jdWJpbnMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDb25jdWJpbnNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBDZWxpYmF0YWlyZVNlcGFyZURlRmFpdCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkNlbGliYXRhaXJlU2VwYXJlRGVGYWl0XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBzaXR1YXRpb25fZmFtaWxpYWxlX29mX2pzb29cbiAgKHNpdHVhdGlvbl9mYW1pbGlhbGUgOiBzaXR1YXRpb25fZmFtaWxpYWxlIEpzLnQpIDogU2l0dWF0aW9uRmFtaWxpYWxlLnQgPVxuICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQ2VsaWJhdGFpcmVcIiAtPiBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmUgKClcbiAgfCBcIk1hcmllc1wiIC0+XG4gIFNpdHVhdGlvbkZhbWlsaWFsZS5NYXJpZXMgKGRhdGVfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBzaXR1YXRpb25fZmFtaWxpYWxlIyMucGF5bG9hZCkpXG4gIHwgXCJQYWNzZXNcIiAtPiBTaXR1YXRpb25GYW1pbGlhbGUuUGFjc2VzICgpXG4gIHwgXCJDb25jdWJpbnNcIiAtPiBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5zICgpXG4gIHwgXCJDZWxpYmF0YWlyZVNlcGFyZURlRmFpdFwiIC0+XG4gICAgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlU2VwYXJlRGVGYWl0ICgpXG4gIHwgXCJDb25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXRcIiAtPlxuICAgIFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1NpdHVhdGlvbkZhbWlsaWFsZS50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBwcmlzZV9lbl9jaGFyZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIlxuICAgICAgICAtIFwiUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZVwiXG4gICAgICAgIC0gXCJSZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRpb25zUGFydGFnZWVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBwcmlzZV9lbl9jaGFyZ2VfdG9fanNvbyA6IFByaXNlRW5DaGFyZ2UudCAtPiBwcmlzZV9lbl9jaGFyZ2UgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgRWZmZWN0aXZlRXRQZXJtYW5lbnRlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBSZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRpb25zUGFydGFnZWUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJSZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRpb25zUGFydGFnZWVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHByaXNlX2VuX2NoYXJnZV9vZl9qc29vIChwcmlzZV9lbl9jaGFyZ2UgOiBwcmlzZV9lbl9jaGFyZ2UgSnMudClcbiAgOiBQcmlzZUVuQ2hhcmdlLnQgPVxuICBtYXRjaCBwcmlzZV9lbl9jaGFyZ2UjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIiAtPiBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSAoKVxuICB8IFwiUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZVwiIC0+XG4gICAgUHJpc2VFbkNoYXJnZS5SZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlICgpXG4gIHwgXCJSZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRpb25zUGFydGFnZWVcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2UuUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdQcmlzZUVuQ2hhcmdlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHR5cGVfbG9nZW1lbnRfZm95ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJMb2dlbWVudFBlcnNvbm5lc0FnZWVzT3VIYW5kaWNhcGVlc1wiXG4gICAgICAgIC0gXCJSZXNpZGVuY2VTb2NpYWxlXCJcbiAgICAgICAgLSBcIkZveWVySmV1bmVzVHJ2YWlsbGV1cnNPdU1pZ3JhbnRzQ29udmVudGlvbm5lTDM1M18yQXZhbnQxOTk1XCJcbiAgICAgICAgLSBcIkF1dHJlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdHlwZV9sb2dlbWVudF9mb3llcl90b19qc29vXG4gIDogVHlwZUxvZ2VtZW50Rm95ZXIudCAtPiB0eXBlX2xvZ2VtZW50X2ZveWVyIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IExvZ2VtZW50UGVyc29ubmVzQWdlZXNPdUhhbmRpY2FwZWVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTG9nZW1lbnRQZXJzb25uZXNBZ2Vlc091SGFuZGljYXBlZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBSZXNpZGVuY2VTb2NpYWxlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUmVzaWRlbmNlU29jaWFsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEZveWVySmV1bmVzVHJ2YWlsbGV1cnNPdU1pZ3JhbnRzQ29udmVudGlvbm5lTDM1M18yQXZhbnQxOTk1IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRm95ZXJKZXVuZXNUcnZhaWxsZXVyc091TWlncmFudHNDb252ZW50aW9ubmVMMzUzXzJBdmFudDE5OTVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBdXRyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkF1dHJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB0eXBlX2xvZ2VtZW50X2ZveWVyX29mX2pzb29cbiAgKHR5cGVfbG9nZW1lbnRfZm95ZXIgOiB0eXBlX2xvZ2VtZW50X2ZveWVyIEpzLnQpIDogVHlwZUxvZ2VtZW50Rm95ZXIudCA9XG4gIG1hdGNoIHR5cGVfbG9nZW1lbnRfZm95ZXIjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJMb2dlbWVudFBlcnNvbm5lc0FnZWVzT3VIYW5kaWNhcGVlc1wiIC0+XG4gICAgVHlwZUxvZ2VtZW50Rm95ZXIuTG9nZW1lbnRQZXJzb25uZXNBZ2Vlc091SGFuZGljYXBlZXMgKClcbiAgfCBcIlJlc2lkZW5jZVNvY2lhbGVcIiAtPiBUeXBlTG9nZW1lbnRGb3llci5SZXNpZGVuY2VTb2NpYWxlICgpXG4gIHwgXCJGb3llckpldW5lc1RydmFpbGxldXJzT3VNaWdyYW50c0NvbnZlbnRpb25uZUwzNTNfMkF2YW50MTk5NVwiIC0+XG4gICAgVHlwZUxvZ2VtZW50Rm95ZXIuRm95ZXJKZXVuZXNUcnZhaWxsZXVyc091TWlncmFudHNDb252ZW50aW9ubmVMMzUzXzJBdmFudDE5OTUgKClcbiAgfCBcIkF1dHJlXCIgLT4gVHlwZUxvZ2VtZW50Rm95ZXIuQXV0cmUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1R5cGVMb2dlbWVudEZveWVyLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNcIlxuICAgICAgICAtIFwiRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZVwiXG4gICAgICAgIC0gXCJQZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNlwiXG4gICAgICAgIC0gXCJBdXRyZXNQZXJzb25uZXNcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl90b19qc29vXG4gIDogQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnQgLT4gY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJFdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJFdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTYgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNlwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEF1dHJlc1BlcnNvbm5lcyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkF1dHJlc1BlcnNvbm5lc1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfb2ZfanNvb1xuICAoY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJcbiAgICA6IGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIEpzLnQpXG4gIDogQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnQgPVxuICBtYXRjaCBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciMjLmtpbmRcbiAgICB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNcIiAtPlxuICAgIENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyAoKVxuICB8IFwiRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZVwiIC0+XG4gICAgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgKClcbiAgfCBcIlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2XCIgLT5cbiAgICBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTYgKClcbiAgfCBcIkF1dHJlc1BlcnNvbm5lc1wiIC0+XG4gICAgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkF1dHJlc1BlcnNvbm5lcyAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiUGVyc29ubmVTZXVsZVwiXG4gICAgICAgIC0gXCJDb3VwbGVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vXG4gIDogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgLT4gc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgUGVyc29ubmVTZXVsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBlcnNvbm5lU2V1bGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBDb3VwbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDb3VwbGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX29mX2pzb29cbiAgKHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIDogc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wgSnMudClcbiAgOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCA9XG4gIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiUGVyc29ubmVTZXVsZVwiIC0+IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlICgpXG4gIHwgXCJDb3VwbGVcIiAtPiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgY29sbGVjdGl2aXRlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiR3VhZGVsb3VwZVwiXG4gICAgICAgIC0gXCJHdXlhbmVcIlxuICAgICAgICAtIFwiTWFydGluaXF1ZVwiXG4gICAgICAgIC0gXCJMYVJldW5pb25cIlxuICAgICAgICAtIFwiU2FpbnRCYXJ0aGVsZW15XCJcbiAgICAgICAgLSBcIlNhaW50TWFydGluXCJcbiAgICAgICAgLSBcIk1ldHJvcG9sZVwiXG4gICAgICAgIC0gXCJTYWludFBpZXJyZUV0TWlxdWVsb25cIlxuICAgICAgICAtIFwiTWF5b3R0ZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGNvbGxlY3Rpdml0ZV90b19qc29vIDogQ29sbGVjdGl2aXRlLnQgLT4gY29sbGVjdGl2aXRlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEd1YWRlbG91cGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJHdWFkZWxvdXBlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgR3V5YW5lIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiR3V5YW5lXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTWFydGluaXF1ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk1hcnRpbmlxdWVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBMYVJldW5pb24gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJMYVJldW5pb25cIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBTYWludEJhcnRoZWxlbXkgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTYWludEJhcnRoZWxlbXlcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBTYWludE1hcnRpbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlNhaW50TWFydGluXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTWV0cm9wb2xlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTWV0cm9wb2xlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2FpbnRQaWVycmVFdE1pcXVlbG9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiU2FpbnRQaWVycmVFdE1pcXVlbG9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTWF5b3R0ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk1heW90dGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IGNvbGxlY3Rpdml0ZV9vZl9qc29vIChjb2xsZWN0aXZpdGUgOiBjb2xsZWN0aXZpdGUgSnMudClcbiAgOiBDb2xsZWN0aXZpdGUudCA9XG4gIG1hdGNoIGNvbGxlY3Rpdml0ZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkd1YWRlbG91cGVcIiAtPiBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKVxuICB8IFwiR3V5YW5lXCIgLT4gQ29sbGVjdGl2aXRlLkd1eWFuZSAoKVxuICB8IFwiTWFydGluaXF1ZVwiIC0+IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpXG4gIHwgXCJMYVJldW5pb25cIiAtPiBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpXG4gIHwgXCJTYWludEJhcnRoZWxlbXlcIiAtPiBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15ICgpXG4gIHwgXCJTYWludE1hcnRpblwiIC0+IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiAoKVxuICB8IFwiTWV0cm9wb2xlXCIgLT4gQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKVxuICB8IFwiU2FpbnRQaWVycmVFdE1pcXVlbG9uXCIgLT4gQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiAoKVxuICB8IFwiTWF5b3R0ZVwiIC0+IENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdDb2xsZWN0aXZpdGUudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgcHJpc2VfZW5fY2hhcmdlX2VuZmFudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnNcIlxuICAgICAgICAtIFwiR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlXCJcbiAgICAgICAgLSBcIkVmZmVjdGl2ZUV0UGVybWFuZW50ZVwiXG4gICAgICAgIC0gXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZVwiXG4gICAgICAgIC0gXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgcHJpc2VfZW5fY2hhcmdlX2VuZmFudF90b19qc29vXG4gIDogUHJpc2VFbkNoYXJnZUVuZmFudC50IC0+IHByaXNlX2VuX2NoYXJnZV9lbmZhbnQgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBFZmZlY3RpdmVFdFBlcm1hbmVudGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXhcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHByaXNlX2VuX2NoYXJnZV9lbmZhbnRfb2ZfanNvb1xuICAocHJpc2VfZW5fY2hhcmdlX2VuZmFudCA6IHByaXNlX2VuX2NoYXJnZV9lbmZhbnQgSnMudClcbiAgOiBQcmlzZUVuQ2hhcmdlRW5mYW50LnQgPVxuICBtYXRjaCBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50IyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1wiIC0+XG4gICAgUHJpc2VFbkNoYXJnZUVuZmFudC5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zICgpXG4gIHwgXCJHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWVcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlICgpXG4gIHwgXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIiAtPiBQcmlzZUVuQ2hhcmdlRW5mYW50LkVmZmVjdGl2ZUV0UGVybWFuZW50ZSAoKVxuICB8IFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGVcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2VFbmZhbnQuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgKClcbiAgfCBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXhcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2VFbmZhbnQuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnUHJpc2VFbkNoYXJnZUVuZmFudC50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkF2YW50XCJcbiAgICAgICAgLSBcIlBlbmRhbnRcIlxuICAgICAgICAtIFwiQXByZXNcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV90b19qc29vXG4gIDogU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQgLT4gc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQXZhbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBdmFudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFBlbmRhbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQZW5kYW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQXByZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBcHJlc1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfb2ZfanNvb1xuICAoc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgOiBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSBKcy50KVxuICA6IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50ID1cbiAgbWF0Y2ggc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJBdmFudFwiIC0+IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCAoKVxuICB8IFwiUGVuZGFudFwiIC0+IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50ICgpXG4gIHwgXCJBcHJlc1wiIC0+IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnRcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJcbiAgICAgICAgLSBcIkNvbXBsZW1lbnRGYW1pbGlhbFwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uTG9nZW1lbnRcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZVwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmVcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuICA6IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPiBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBDb21wbGVtZW50RmFtaWxpYWwgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDb21wbGVtZW50RmFtaWxpYWxcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uTG9nZW1lbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uTG9nZW1lbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAoZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIDogZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQpXG4gIDogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID1cbiAgbWF0Y2ggZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudFwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5QcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50ICgpXG4gIHwgXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbnNGYW1pbGlhbGVzICgpXG4gIHwgXCJDb21wbGVtZW50RmFtaWxpYWxcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQ29tcGxlbWVudEZhbWlsaWFsICgpXG4gIHwgXCJBbGxvY2F0aW9uTG9nZW1lbnRcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbkxvZ2VtZW50ICgpXG4gIHwgXCJBbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGUgKClcbiAgfCBcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCAoKVxuICB8IFwiQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZVwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlICgpXG4gIHwgXCJBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZVwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjb252ZW50aW9ubmVMaXZyZUlJSVRpdHJlVkNoYXBJSUk6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlZHVjdGlvbkxveWVyU29saWRhcml0ZVBlcmN1ZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX3RvX2pzb28gKGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsXG4gICAgOiBDb252ZW50aW9uQmFpbGxldXJTb2NpYWwudCkgOiBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBjb252ZW50aW9ubmVMaXZyZUlJSVRpdHJlVkNoYXBJSUkgPVxuICAgICAgICBKcy5ib29sIGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsLmNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSVxuICAgICAgdmFsIHJlZHVjdGlvbkxveWVyU29saWRhcml0ZVBlcmN1ZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbC5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9wZXJjdWVcbiAgICAgIGVuZFxuICBsZXQgY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWxfb2ZfanNvb1xuICAgIChjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCA6IGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsIEpzLnQpIDpcbiAgICBDb252ZW50aW9uQmFpbGxldXJTb2NpYWwudCA9XG4gICAge1xuICAgICAgY29udmVudGlvbm5lX2xpdnJlX0lJSV90aXRyZV9WX2NoYXBfSUlJID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsIyMuY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZVZDaGFwSUlJO1xuICAgICAgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfcGVyY3VlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsIyMucmVkdWN0aW9uTG95ZXJTb2xpZGFyaXRlUGVyY3VlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNvbnZlbnRpb25fYV9uX2hfYSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjb252ZW50aW9ubmVMaXZyZUlJSVRpdHJlSUlDaGFwSVNlYzM6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY29udmVudGlvbl9hX25faF9hX3RvX2pzb28gKGNvbnZlbnRpb25fYV9uX2hfYSA6IENvbnZlbnRpb25BTkhBLnQpXG4gICAgOiBjb252ZW50aW9uX2Ffbl9oX2EgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZUlJQ2hhcElTZWMzID1cbiAgICAgICAgSnMuYm9vbCBjb252ZW50aW9uX2Ffbl9oX2EuY29udmVudGlvbm5lX2xpdnJlX0lJSV90aXRyZV9JSV9jaGFwX0lfc2VjXzNcbiAgICAgIGVuZFxuICBsZXQgY29udmVudGlvbl9hX25faF9hX29mX2pzb29cbiAgICAoY29udmVudGlvbl9hX25faF9hIDogY29udmVudGlvbl9hX25faF9hIEpzLnQpIDogQ29udmVudGlvbkFOSEEudCA9XG4gICAge1xuICAgICAgY29udmVudGlvbm5lX2xpdnJlX0lJSV90aXRyZV9JSV9jaGFwX0lfc2VjXzMgPVxuICAgICAgICBKcy50b19ib29sIGNvbnZlbnRpb25fYV9uX2hfYSMjLmNvbnZlbnRpb25uZUxpdnJlSUlJVGl0cmVJSUNoYXBJU2VjM1xuICAgIH1cblxuY2xhc3MgdHlwZSBwZXJzb25uZV9zb3VzX2xvY2F0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVOYWlzc2FuY2VQZXJzb25uZVNvdXNMb2NhdGlvbjpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uZm9ybWVBcnRpY2xlTDQ0MjE6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgcGVyc29ubmVfc291c19sb2NhdGlvbl90b19qc29vIChwZXJzb25uZV9zb3VzX2xvY2F0aW9uXG4gICAgOiBQZXJzb25uZVNvdXNMb2NhdGlvbi50KSA6IHBlcnNvbm5lX3NvdXNfbG9jYXRpb24gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZU5haXNzYW5jZVBlcnNvbm5lU291c0xvY2F0aW9uID1cbiAgICAgICAgZGF0ZV90b19qc29vIHBlcnNvbm5lX3NvdXNfbG9jYXRpb24uZGF0ZV9uYWlzc2FuY2VfcGVyc29ubmVfc291c19sb2NhdGlvblxuICAgICAgdmFsIGNvbmZvcm1lQXJ0aWNsZUw0NDIxID1cbiAgICAgICAgSnMuYm9vbCBwZXJzb25uZV9zb3VzX2xvY2F0aW9uLmNvbmZvcm1lX2FydGljbGVfbDQ0Ml8xXG4gICAgICBlbmRcbiAgbGV0IHBlcnNvbm5lX3NvdXNfbG9jYXRpb25fb2ZfanNvb1xuICAgIChwZXJzb25uZV9zb3VzX2xvY2F0aW9uIDogcGVyc29ubmVfc291c19sb2NhdGlvbiBKcy50KSA6XG4gICAgUGVyc29ubmVTb3VzTG9jYXRpb24udCA9XG4gICAge1xuICAgICAgZGF0ZV9uYWlzc2FuY2VfcGVyc29ubmVfc291c19sb2NhdGlvbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIHBlcnNvbm5lX3NvdXNfbG9jYXRpb24jIy5kYXRlTmFpc3NhbmNlUGVyc29ubmVTb3VzTG9jYXRpb247XG4gICAgICBjb25mb3JtZV9hcnRpY2xlX2w0NDJfMSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgcGVyc29ubmVfc291c19sb2NhdGlvbiMjLmNvbmZvcm1lQXJ0aWNsZUw0NDIxXG4gICAgfVxuXG5jbGFzcyB0eXBlIHBhdHJpbW9pbmUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcHJvZHVpc2FudFJldmVudVBlcmlvZGVSODIyMzNSODIyNDpcbiAgICAgIEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbmVQcm9kdWlzYW50UGFzUmV2ZW51UGVyaW9kZVI4MjIzM1I4MjI0OlxuICAgICAgSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHBhdHJpbW9pbmVfdG9fanNvbyAocGF0cmltb2luZSA6IFBhdHJpbW9pbmUudCkgOiBwYXRyaW1vaW5lIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHByb2R1aXNhbnRSZXZlbnVQZXJpb2RlUjgyMjMzUjgyMjQgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgcGF0cmltb2luZS5wcm9kdWlzYW50X3JldmVudV9wZXJpb2RlX3I4MjJfM18zX3I4MjJfNFxuICAgICAgdmFsIG5lUHJvZHVpc2FudFBhc1JldmVudVBlcmlvZGVSODIyMzNSODIyNCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBwYXRyaW1vaW5lLm5lX3Byb2R1aXNhbnRfcGFzX3JldmVudV9wZXJpb2RlX3I4MjJfM18zX3I4MjJfNFxuICAgICAgZW5kXG4gIGxldCBwYXRyaW1vaW5lX29mX2pzb28gKHBhdHJpbW9pbmUgOiBwYXRyaW1vaW5lIEpzLnQpIDogUGF0cmltb2luZS50ID1cbiAgICB7XG4gICAgICBwcm9kdWlzYW50X3JldmVudV9wZXJpb2RlX3I4MjJfM18zX3I4MjJfNCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBwYXRyaW1vaW5lIyMucHJvZHVpc2FudFJldmVudVBlcmlvZGVSODIyMzNSODIyNDtcbiAgICAgIG5lX3Byb2R1aXNhbnRfcGFzX3JldmVudV9wZXJpb2RlX3I4MjJfM18zX3I4MjJfNCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBwYXRyaW1vaW5lIyMubmVQcm9kdWlzYW50UGFzUmV2ZW51UGVyaW9kZVI4MjIzM1I4MjI0XG4gICAgfVxuXG5jbGFzcyB0eXBlIGNvbmRpdGlvbnNfZXRyYW5nZXJzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHNhdGlzZmFpdENvbmRpdGlvbnNMNTEyMkNvZGVTZWN1cml0ZVNvY2lhbGU6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzYXRpc2ZhaXRBcnQ0T3Jkb25uYW5jZTIwMDJNYXlvdHRlOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNvbmRpdGlvbnNfZXRyYW5nZXJzX3RvX2pzb28gKGNvbmRpdGlvbnNfZXRyYW5nZXJzXG4gICAgOiBDb25kaXRpb25zRXRyYW5nZXJzLnQpIDogY29uZGl0aW9uc19ldHJhbmdlcnMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgc2F0aXNmYWl0Q29uZGl0aW9uc0w1MTIyQ29kZVNlY3VyaXRlU29jaWFsZSA9XG4gICAgICAgIEpzLmJvb2wgY29uZGl0aW9uc19ldHJhbmdlcnMuc2F0aXNmYWl0X2NvbmRpdGlvbnNfbDUxMl8yX2NvZGVfc2VjdXJpdGVfc29jaWFsZVxuICAgICAgdmFsIHNhdGlzZmFpdEFydDRPcmRvbm5hbmNlMjAwMk1heW90dGUgPVxuICAgICAgICBKcy5ib29sIGNvbmRpdGlvbnNfZXRyYW5nZXJzLnNhdGlzZmFpdF9hcnRfNF9vcmRvbm5hbmNlXzIwMDJfbWF5b3R0ZVxuICAgICAgZW5kXG4gIGxldCBjb25kaXRpb25zX2V0cmFuZ2Vyc19vZl9qc29vXG4gICAgKGNvbmRpdGlvbnNfZXRyYW5nZXJzIDogY29uZGl0aW9uc19ldHJhbmdlcnMgSnMudCkgOlxuICAgIENvbmRpdGlvbnNFdHJhbmdlcnMudCA9XG4gICAge1xuICAgICAgc2F0aXNmYWl0X2NvbmRpdGlvbnNfbDUxMl8yX2NvZGVfc2VjdXJpdGVfc29jaWFsZSA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjb25kaXRpb25zX2V0cmFuZ2VycyMjLnNhdGlzZmFpdENvbmRpdGlvbnNMNTEyMkNvZGVTZWN1cml0ZVNvY2lhbGU7XG4gICAgICBzYXRpc2ZhaXRfYXJ0XzRfb3Jkb25uYW5jZV8yMDAyX21heW90dGUgPVxuICAgICAgICBKcy50b19ib29sIGNvbmRpdGlvbnNfZXRyYW5nZXJzIyMuc2F0aXNmYWl0QXJ0NE9yZG9ubmFuY2UyMDAyTWF5b3R0ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZHVyZWVSZXNpZGVuY2VEdXJhbnRQZXJpb2RlUjgyMjMxU3VwZXJpZXVyZUE2TW9pczpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXM6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXJfdG9fanNvb1xuICAgIChwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXJcbiAgICA6IFBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLnQpXG4gICAgOiBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZHVyZWVSZXNpZGVuY2VEdXJhbnRQZXJpb2RlUjgyMjMxU3VwZXJpZXVyZUE2TW9pcyA9XG4gICAgICAgIEpzLmJvb2wgcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyLmR1cmVlX3Jlc2lkZW5jZV9kdXJhbnRfcGVyaW9kZV9yXzgyMl8zXzFfc3VwZXJpZXVyZV9hXzZfbW9pc1xuICAgICAgdmFsIHJlc3NvdXJjZXMgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyLnJlc3NvdXJjZXNcbiAgICAgIGVuZFxuICBsZXQgcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyX29mX2pzb29cbiAgICAocGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyXG4gICAgICA6IHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llciBKcy50KSA6XG4gICAgUGVyc29ubmVWaXZhbnRIYWJpdHVlbGxlbWVudEF1Rm95ZXIudCA9XG4gICAge1xuICAgICAgZHVyZWVfcmVzaWRlbmNlX2R1cmFudF9wZXJpb2RlX3JfODIyXzNfMV9zdXBlcmlldXJlX2FfNl9tb2lzID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llclxuICAgICAgICAgICMjLmR1cmVlUmVzaWRlbmNlRHVyYW50UGVyaW9kZVI4MjIzMVN1cGVyaWV1cmVBNk1vaXM7XG4gICAgICByZXNzb3VyY2VzID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llciMjLnJlc3NvdXJjZXNcbiAgICB9XG5cbmNsYXNzIHR5cGUgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBlbGlnaWJpbGl0ZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlOlxuICAgICAgSnMubnVtYmVyIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X3RvX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gICAgOiBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudClcbiAgICA6IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGUgPVxuICAgICAgICBkYXRlX3RvX2pzb28gZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50LmRhdGVfY291cmFudGVcbiAgICAgIHZhbCBlbGlnaWJpbGl0ZSA9XG4gICAgICAgIEpzLmJvb2wgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50LmVsaWdpYmlsaXRlXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZVxuICAgICAgdmFsIGNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGUgPVxuICAgICAgICBKcy5hcnJheSBAQCBBcnJheS5tYXAgKGZ1biB4IC0+IEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IHgpIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXG4gICAgICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICAgICAgOiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCkgOlxuICAgIEVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50ID1cbiAgICB7XG4gICAgICBkYXRlX2NvdXJhbnRlID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCMjLmRhdGVDb3VyYW50ZTtcbiAgICAgIGVsaWdpYmlsaXRlID1cbiAgICAgICAgSnMudG9fYm9vbCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQjIy5lbGlnaWJpbGl0ZTtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gICAgICAgICAgIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlO1xuICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgeCkgQEAgSnMudG9fYXJyYXlcbiAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRcbiAgICAgICAgICAjIy5jb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCA9XG4gIG9iamVjdCBtZXRob2QgbW9udGFudFByaW1lRGVtZW5hZ2VtZW50OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X3RvX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50IDogRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50LnQpXG4gICAgOiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbW9udGFudFByaW1lRGVtZW5hZ2VtZW50ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudC5tb250YW50X3ByaW1lX2RlbWVuYWdlbWVudFxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgICAgIDogZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50IEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnQudCA9XG4gICAge1xuICAgICAgbW9udGFudF9wcmltZV9kZW1lbmFnZW1lbnQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50IyMubW9udGFudFByaW1lRGVtZW5hZ2VtZW50XG4gICAgfVxuXG5jbGFzcyB0eXBlIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICBvYmplY3QgbWV0aG9kIHJlc3NvdXJjZXNQcmlzZXNFbkNvbXB0ZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfdG9fanNvb1xuICAgIChyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgOiBSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQpXG4gICAgOiByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHJlc3NvdXJjZXNQcmlzZXNFbkNvbXB0ZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50LnJlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZVxuICAgICAgZW5kXG4gIGxldCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X29mX2pzb29cbiAgICAocmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgOiByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPVxuICAgIHtcbiAgICAgIHJlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IyMucmVzc291cmNlc1ByaXNlc0VuQ29tcHRlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbW9udGFudDpcbiAgICAgICh1bml0LCAgSnMubnVtYmVyIEpzLnQgLT4gSnMubnVtYmVyIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfdG9fanNvb1xuICAgIChjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgOiBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudClcbiAgICA6IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICBtZXRob2QgbW9udGFudCA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogSnMubnVtYmVyIEpzLnQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IChjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50Lm1vbnRhbnQgXG4gICAgICAgICAgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X29mX2pzb29cbiAgICAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgOiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgbW9udGFudCA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdtb250YW50JyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCJcbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1vbnRhbnRGb3JmYWl0YWlyZUNoYXJnZXNEODIzMTY6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGxhZm9uZExveWVyRDgyMzE2MjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwYXJ0aWNpcGF0aW9uTWluaW1hbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdGF1eENvbXBvc2l0aW9uRmFtaWxpYWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBhcnRpY2lwYXRpb25QZXJzb25uZWxsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhaWRlRmluYWxlRm9ybXVsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZTpcbiAgICAgICh1bml0LCAgSnMubnVtYmVyIEpzLnQgLT4gSnMubnVtYmVyIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl90b19qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZlxuICAgIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudClcbiAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtb250YW50Rm9yZmFpdGFpcmVDaGFyZ2VzRDgyMzE2ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZi5tb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNlxuICAgICAgdmFsIHBsYWZvbmRMb3llckQ4MjMxNjIgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmLnBsYWZvbmRfbG95ZXJfZDgyM18xNl8yXG4gICAgICB2YWwgcGFydGljaXBhdGlvbk1pbmltYWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZi5wYXJ0aWNpcGF0aW9uX21pbmltYWxlXG4gICAgICB2YWwgdGF1eENvbXBvc2l0aW9uRmFtaWxpYWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmLnRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlXG4gICAgICB2YWwgcGFydGljaXBhdGlvblBlcnNvbm5lbGxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZi5wYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlXG4gICAgICB2YWwgYWlkZUZpbmFsZUZvcm11bGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGVcbiAgICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZSA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogSnMubnVtYmVyIEpzLnQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9vZl9qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZlxuICAgICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYgSnMudCkgOlxuICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZlxuICAgICAgICAgICMjLm1vbnRhbnRGb3JmYWl0YWlyZUNoYXJnZXNEODIzMTY7XG4gICAgICBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYjIy5wbGFmb25kTG95ZXJEODIzMTYyO1xuICAgICAgcGFydGljaXBhdGlvbl9taW5pbWFsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYjIy5wYXJ0aWNpcGF0aW9uTWluaW1hbGU7XG4gICAgICB0YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZSA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmXG4gICAgICAgICAgIyMudGF1eENvbXBvc2l0aW9uRmFtaWxpYWxlO1xuICAgICAgcGFydGljaXBhdGlvbl9wZXJzb25uZWxsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZcbiAgICAgICAgICAjIy5wYXJ0aWNpcGF0aW9uUGVyc29ubmVsbGU7XG4gICAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZiMjLmFpZGVGaW5hbGVGb3JtdWxlO1xuICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICd0cmFpdGVtZW50X2FpZGVfZmluYWxlJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCJcbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlID1cbiAgb2JqZWN0IG1ldGhvZCBtb250YW50OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX3RvX2pzb29cbiAgICAoY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIDogQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLnQpXG4gICAgOiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbW9udGFudCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUubW9udGFudFxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfb2ZfanNvb1xuICAgIChjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcbiAgICAgIDogY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIEpzLnQpIDpcbiAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUudCA9XG4gICAge1xuICAgICAgbW9udGFudCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUjIy5tb250YW50XG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llciA9XG4gIG9iamVjdCBtZXRob2Qgbk5vbWJyZVBhcnRzRDgzMjI1OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX3RvX2pzb29cbiAgICAoY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyIDogQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIudClcbiAgICA6IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llciBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBuTm9tYnJlUGFydHNEODMyMjUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfb2ZfanNvb1xuICAgIChjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJcbiAgICAgIDogY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyIEpzLnQpIDpcbiAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llci50ID1cbiAgICB7XG4gICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1ID1cbiAgICAgICAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXIjIy5uTm9tYnJlUGFydHNEODMyMjVcbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjb2VmZmljaWVudE11bHRpcGxpY2F0ZXVyRDgzMjI1OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvZWZmaWNpZW50UkQ4MzIyNTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBuTm9tYnJlUGFydHNEODMyMjU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZXF1aXZhbGVuY2VMb3llckVsaWdpYmxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBsYWZvbmRFcXVpdmFsZW5jZUxveWVyRWxpZ2libGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZXF1aXZhbGVuY2VMb3llck1pbmltYWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZUQ4MzIyNTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhaWRlRmluYWxlRm9ybXVsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZTpcbiAgICAgICh1bml0LCAgSnMubnVtYmVyIEpzLnQgLT4gSnMubnVtYmVyIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfdG9fanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyXG4gICAgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudClcbiAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgY29lZmZpY2llbnRNdWx0aXBsaWNhdGV1ckQ4MzIyNSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyLmNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjVcbiAgICAgIHZhbCBjb2VmZmljaWVudFJEODMyMjUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci5jb2VmZmljaWVudF9yX2Q4MzJfMjVcbiAgICAgIHZhbCBuTm9tYnJlUGFydHNEODMyMjUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcbiAgICAgIHZhbCBlcXVpdmFsZW5jZUxveWVyRWxpZ2libGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci5lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZVxuICAgICAgdmFsIHBsYWZvbmRFcXVpdmFsZW5jZUxveWVyRWxpZ2libGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci5wbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXG4gICAgICB2YWwgZXF1aXZhbGVuY2VMb3llck1pbmltYWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcbiAgICAgIHZhbCBjb2VmZmljaWVudFByaXNlRW5DaGFyZ2VEODMyMjUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1XG4gICAgICB2YWwgYWlkZUZpbmFsZUZvcm11bGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlIFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9vZl9qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJcbiAgICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciBKcy50KSA6XG4gICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnQgPVxuICAgIHtcbiAgICAgIGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llclxuICAgICAgICAgICMjLmNvZWZmaWNpZW50TXVsdGlwbGljYXRldXJEODMyMjU7XG4gICAgICBjb2VmZmljaWVudF9yX2Q4MzJfMjUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciMjLmNvZWZmaWNpZW50UkQ4MzIyNTtcbiAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIjIy5uTm9tYnJlUGFydHNEODMyMjU7XG4gICAgICBlcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIyMuZXF1aXZhbGVuY2VMb3llckVsaWdpYmxlO1xuICAgICAgcGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyXG4gICAgICAgICAgIyMucGxhZm9uZEVxdWl2YWxlbmNlTG95ZXJFbGlnaWJsZTtcbiAgICAgIGVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIjIy5lcXVpdmFsZW5jZUxveWVyTWluaW1hbGU7XG4gICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNSA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llclxuICAgICAgICAgICMjLmNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZUQ4MzIyNTtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciMjLmFpZGVGaW5hbGVGb3JtdWxlO1xuICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICd0cmFpdGVtZW50X2FpZGVfZmluYWxlJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCJcbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlID1cbiAgb2JqZWN0IG1ldGhvZCBuTm9tYnJlUGFydHNEODMyMTE6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfdG9fanNvb1xuICAgIChjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgICA6IENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLnQpXG4gICAgOiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbk5vbWJyZVBhcnRzRDgzMjExID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX29mX2pzb29cbiAgICAoY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICA6IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50KSA6XG4gICAgQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAge1xuICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8xMSA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlIyMubk5vbWJyZVBhcnRzRDgzMjExXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtZW5zdWFsaXRlRWxpZ2libGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbWVuc3VhbGl0ZU1pbmltYWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZUQ4MzIxMDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhaWRlRmluYWxlRm9ybXVsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZTpcbiAgICAgICh1bml0LCAgSnMubnVtYmVyIEpzLnQgLT4gSnMubnVtYmVyIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV90b19qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50KVxuICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1lbnN1YWxpdGVFbGlnaWJsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUubWVuc3VhbGl0ZV9lbGlnaWJsZVxuICAgICAgdmFsIG1lbnN1YWxpdGVNaW5pbWFsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUubWVuc3VhbGl0ZV9taW5pbWFsZVxuICAgICAgdmFsIGNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZUQ4MzIxMCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZS5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMFxuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZS5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgXG4gICAgICAgICAgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfb2ZfanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIEpzLnQpIDpcbiAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgIHtcbiAgICAgIG1lbnN1YWxpdGVfZWxpZ2libGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICAgICAgIyMubWVuc3VhbGl0ZUVsaWdpYmxlO1xuICAgICAgbWVuc3VhbGl0ZV9taW5pbWFsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgICAgICAgICAjIy5tZW5zdWFsaXRlTWluaW1hbGU7XG4gICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMCA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICAgICAgIyMuY29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlRDgzMjEwO1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgICAgICAgICAjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIHRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhaWRlRmluYWxlRm9ybXVsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZTpcbiAgICAgICh1bml0LCAgSnMubnVtYmVyIEpzLnQgLT4gSnMubnVtYmVyIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IHRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZV90b19qc29vICh0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGVcbiAgICA6IFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50KSA6IHRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBhaWRlRmluYWxlRm9ybXVsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCB0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZVxuICAgICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBKcy5udW1iZXIgSnMudCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgKHRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlIFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgdHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlX29mX2pzb29cbiAgICAodHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlIDogdHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlIEpzLnQpIDpcbiAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudCA9XG4gICAge1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICB0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X3RvX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudClcbiAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgYWlkZUZpbmFsZUZvcm11bGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlIFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9vZl9qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRcbiAgICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCBKcy50KSA6XG4gICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50ID1cbiAgICB7XG4gICAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFuY2llbkxveWVyUHJpbmNpcGFsOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFuY2llbm5lQWxsb2NhdGlvbkxvZ2VtZW50OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfdG9fanNvb1xuICAgIChpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCA6IEluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudClcbiAgICA6IGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGFuY2llbkxveWVyUHJpbmNpcGFsID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80LmFuY2llbl9sb3llcl9wcmluY2lwYWxcbiAgICAgIHZhbCBhbmNpZW5uZUFsbG9jYXRpb25Mb2dlbWVudCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNC5hbmNpZW5uZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICAgICBlbmRcbiAgbGV0IGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X29mX2pzb29cbiAgICAoaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRcbiAgICAgIDogaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgSnMudCkgOlxuICAgIEluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudCA9XG4gICAge1xuICAgICAgYW5jaWVuX2xveWVyX3ByaW5jaXBhbCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCMjLmFuY2llbkxveWVyUHJpbmNpcGFsO1xuICAgICAgYW5jaWVubmVfYWxsb2NhdGlvbl9sb2dlbWVudCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCMjLmFuY2llbm5lQWxsb2NhdGlvbkxvZ2VtZW50XG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX3RvX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZiA6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudClcbiAgICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgYWlkZUZpbmFsZUZvcm11bGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlIFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9vZl9qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZcbiAgICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZiBKcy50KSA6XG4gICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICB7XG4gICAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbWVuc3VhbGl0ZUVsaWdpYmxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG1lbnN1YWxpdGVNaW5pbWFsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2VmZmljaWVudFByaXNlRW5DaGFyZ2U6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX3RvX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQpXG4gICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1lbnN1YWxpdGVFbGlnaWJsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlLm1lbnN1YWxpdGVfZWxpZ2libGVcbiAgICAgIHZhbCBtZW5zdWFsaXRlTWluaW1hbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZS5tZW5zdWFsaXRlX21pbmltYWxlXG4gICAgICB2YWwgY29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZS5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VcbiAgICAgIHZhbCBhaWRlRmluYWxlRm9ybXVsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGVcbiAgICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZSA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogSnMubnVtYmVyIEpzLnQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgXG4gICAgICAgICAgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX29mX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIEpzLnQpIDpcbiAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAge1xuICAgICAgbWVuc3VhbGl0ZV9lbGlnaWJsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIyMubWVuc3VhbGl0ZUVsaWdpYmxlO1xuICAgICAgbWVuc3VhbGl0ZV9taW5pbWFsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIyMubWVuc3VhbGl0ZU1pbmltYWxlO1xuICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICAgICAgIyMuY29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlO1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjb2VmZmljaWVudFByaXNlRW5DaGFyZ2U6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZXF1aXZhbGVuY2VMb3llcjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtb250YW50Rm9yZmFpdGFpcmVDaGFyZ2VzOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxveWVyTWluaW1hbDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhaWRlRmluYWxlRm9ybXVsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZTpcbiAgICAgICh1bml0LCAgSnMubnVtYmVyIEpzLnQgLT4gSnMubnVtYmVyIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX3RvX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50KVxuICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgY29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXG4gICAgICB2YWwgZXF1aXZhbGVuY2VMb3llciA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llci5lcXVpdmFsZW5jZV9sb3llclxuICAgICAgdmFsIG1vbnRhbnRGb3JmYWl0YWlyZUNoYXJnZXMgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXG4gICAgICB2YWwgbG95ZXJNaW5pbWFsID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyLmxveWVyX21pbmltYWxcbiAgICAgIHZhbCBhaWRlRmluYWxlRm9ybXVsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX29mX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJcbiAgICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgSnMudCkgOlxuICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnQgPVxuICAgIHtcbiAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIjIy5jb2VmZmljaWVudFByaXNlRW5DaGFyZ2U7XG4gICAgICBlcXVpdmFsZW5jZV9sb3llciA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciMjLmVxdWl2YWxlbmNlTG95ZXI7XG4gICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXMgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIjIy5tb250YW50Rm9yZmFpdGFpcmVDaGFyZ2VzO1xuICAgICAgbG95ZXJfbWluaW1hbCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciMjLmxveWVyTWluaW1hbDtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFpZGVGaW5hbGVGb3JtdWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlOlxuICAgICAgKHVuaXQsICBKcy5udW1iZXIgSnMudCAtPiBKcy5udW1iZXIgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fanNvbyAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRcbiAgICA6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudC50KSA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGVcbiAgICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZSA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogSnMubnVtYmVyIEpzLnQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlIFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCMjLmFpZGVGaW5hbGVGb3JtdWxlO1xuICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICd0cmFpdGVtZW50X2FpZGVfZmluYWxlJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCJcbiAgICB9XG5cbmNsYXNzIHR5cGUgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhZ2VPdXZlcnR1cmVEcm9pdDpcbiAgICAgIFJ1bnRpbWVfanNvby5SdW50aW1lLmR1cmF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfdG9fanNvbyAob3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZVxuICAgIDogT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGUudCkgOiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGFnZU91dmVydHVyZURyb2l0ID1cbiAgICAgICAgZHVyYXRpb25fdG9fanNvbyBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlLmFnZV9vdXZlcnR1cmVfZHJvaXRcbiAgICAgIGVuZFxuICBsZXQgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9vZl9qc29vXG4gICAgKG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUgOiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlIEpzLnQpIDpcbiAgICBPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZS50ID1cbiAgICB7XG4gICAgICBhZ2Vfb3V2ZXJ0dXJlX2Ryb2l0ID1cbiAgICAgICAgZHVyYXRpb25fb2ZfanNvbyBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlIyMuYWdlT3V2ZXJ0dXJlRHJvaXRcbiAgICB9XG5cbmNsYXNzIHR5cGUgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgPVxuICBvYmplY3QgbWV0aG9kIG1vbnRhbnRJbXBheWU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF90b19qc29vIChpbXBheWVfZGVwZW5zZV9sb2dlbWVudFxuICAgIDogSW1wYXllRGVwZW5zZUxvZ2VtZW50LnQpIDogaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbW9udGFudEltcGF5ZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudC5tb250YW50X2ltcGF5ZVxuICAgICAgZW5kXG4gIGxldCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9vZl9qc29vXG4gICAgKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IDogaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgSnMudCkgOlxuICAgIEltcGF5ZURlcGVuc2VMb2dlbWVudC50ID1cbiAgICB7XG4gICAgICBtb250YW50X2ltcGF5ZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBpbXBheWVfZGVwZW5zZV9sb2dlbWVudCMjLm1vbnRhbnRJbXBheWVcbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBlbGlnaWJpbGl0ZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgICBtZXRob2QgY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZTpcbiAgICAgIEpzLm51bWJlciBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfdG9fanNvbyAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudFxuICAgIDogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC50KSA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZWxpZ2liaWxpdGUgPSBKcy5ib29sIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQuZWxpZ2liaWxpdGVcbiAgICAgIHZhbCBhaWRlRmluYWxlRm9ybXVsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGVcbiAgICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZSA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogSnMubnVtYmVyIEpzLnQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgXG4gICAgICAgICAgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgdmFsIGNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGUgPVxuICAgICAgICBKcy5hcnJheSBAQCBBcnJheS5tYXAgKGZ1biB4IC0+IEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IHgpIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X29mX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQgSnMudCkgOlxuICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgZWxpZ2liaWxpdGUgPSBKcy50b19ib29sIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQjIy5lbGlnaWJpbGl0ZTtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCMjLmFpZGVGaW5hbGVGb3JtdWxlO1xuICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICd0cmFpdGVtZW50X2FpZGVfZmluYWxlJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCI7XG4gICAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciB4KSBAQCBKcy50b19hcnJheVxuICAgICAgICAgIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRcbiAgICAgICAgICAjIy5jb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZWxpZ2liaWxpdGU6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFpZGVGaW5hbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX3RvX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZVxuICAgIDogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUudClcbiAgICA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZWxpZ2liaWxpdGUgPVxuICAgICAgICBKcy5ib29sIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUuZWxpZ2liaWxpdGVcbiAgICAgIHZhbCBhaWRlRmluYWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUuYWlkZV9maW5hbGVcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9vZl9qc29vXG4gICAgKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVcbiAgICAgIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZSBKcy50KSA6XG4gICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUudCA9XG4gICAge1xuICAgICAgZWxpZ2liaWxpdGUgPVxuICAgICAgICBKcy50b19ib29sIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUjIy5lbGlnaWJpbGl0ZTtcbiAgICAgIGFpZGVfZmluYWxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUjIy5haWRlRmluYWxlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICBvYmplY3QgbWV0aG9kIG1vbnRhbnQ6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgIDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50KVxuICAgIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtb250YW50ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMubW9udGFudFxuICAgICAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQpIDpcbiAgICBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyMjLm1vbnRhbnRcbiAgICB9XG5cbmNsYXNzIHR5cGUgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hID1cbiAgb2JqZWN0IG1ldGhvZCBlc3RJbmZlcmlldXJPdUVnYWw6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX3RvX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hXG4gICAgOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQpXG4gICAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZXN0SW5mZXJpZXVyT3VFZ2FsID1cbiAgICAgICAgSnMuYm9vbCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EuZXN0X2luZmVyaWV1cl9vdV9lZ2FsXG4gICAgICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICAgICAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgSnMudCkgOlxuICAgIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEudCA9XG4gICAge1xuICAgICAgZXN0X2luZmVyaWV1cl9vdV9lZ2FsID1cbiAgICAgICAgSnMudG9fYm9vbCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EjIy5lc3RJbmZlcmlldXJPdUVnYWxcbiAgICB9XG5cbmNsYXNzIHR5cGUgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSA9XG4gIG9iamVjdCBtZXRob2QgZXN0U3VwZXJpZXVyOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfdG9fanNvbyAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYVxuICAgIDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50KSA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZXN0U3VwZXJpZXVyID0gSnMuYm9vbCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hLmVzdF9zdXBlcmlldXJcbiAgICAgIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIEpzLnQpIDpcbiAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnQgPVxuICAgIHtlc3Rfc3VwZXJpZXVyID0gSnMudG9fYm9vbCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIyMuZXN0U3VwZXJpZXVyXG4gICAgfVxuXG5jbGFzcyB0eXBlIHNtaWMgPVxuICBvYmplY3QgbWV0aG9kIGJydXRIb3JhaXJlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgc21pY190b19qc29vIChzbWljIDogU21pYy50KSA6IHNtaWMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgYnJ1dEhvcmFpcmUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgc21pYy5icnV0X2hvcmFpcmVcbiAgICAgIGVuZFxuICBsZXQgc21pY19vZl9qc29vIChzbWljIDogc21pYyBKcy50KSA6IFNtaWMudCA9XG4gICAge1xuICAgICAgYnJ1dF9ob3JhaXJlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHNtaWMjIy5icnV0SG9yYWlyZVxuICAgIH1cblxuY2xhc3MgdHlwZSBuZXVmX291X2FuY2llbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIk5ldWZcIlxuICAgICAgICAtIFwiQW5jaWVuXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbmV1Zl9vdV9hbmNpZW5fdG9fanNvbyA6IE5ldWZPdUFuY2llbi50IC0+IG5ldWZfb3VfYW5jaWVuIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IE5ldWYgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJOZXVmXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQW5jaWVuIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQW5jaWVuXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoYW1lbGlvcmVfcGFyX29jY3VwYW50X3RvX2pzb28gYXJnKSlcbiAgICBlbmRcblxubGV0IG5ldWZfb3VfYW5jaWVuX29mX2pzb28gKG5ldWZfb3VfYW5jaWVuIDogbmV1Zl9vdV9hbmNpZW4gSnMudClcbiAgOiBOZXVmT3VBbmNpZW4udCA9XG4gIG1hdGNoIG5ldWZfb3VfYW5jaWVuIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiTmV1ZlwiIC0+IE5ldWZPdUFuY2llbi5OZXVmICgpXG4gIHwgXCJBbmNpZW5cIiAtPlxuICBOZXVmT3VBbmNpZW4uQW5jaWVuIChhbWVsaW9yZV9wYXJfb2NjdXBhbnRfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBuZXVmX291X2FuY2llbiMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnTmV1Zk91QW5jaWVuLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHRyYW5jaGVfcmV2ZW51ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGhhdXQ6IGxpbWl0ZV90cmFuY2hlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiYXM6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdGF1eDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHRyYW5jaGVfcmV2ZW51X3RvX2pzb28gKHRyYW5jaGVfcmV2ZW51IDogVHJhbmNoZVJldmVudS50KVxuICAgIDogdHJhbmNoZV9yZXZlbnUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgaGF1dCA9IGxpbWl0ZV90cmFuY2hlX3RvX2pzb28gdHJhbmNoZV9yZXZlbnUuaGF1dFxuICAgICAgdmFsIGJhcyA9IEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCB0cmFuY2hlX3JldmVudS5iYXNcbiAgICAgIHZhbCB0YXV4ID0gSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgdHJhbmNoZV9yZXZlbnUudGF1eFxuICAgICAgZW5kXG4gIGxldCB0cmFuY2hlX3JldmVudV9vZl9qc29vICh0cmFuY2hlX3JldmVudSA6IHRyYW5jaGVfcmV2ZW51IEpzLnQpIDpcbiAgICBUcmFuY2hlUmV2ZW51LnQgPVxuICAgIHtcbiAgICAgIGhhdXQgPSBsaW1pdGVfdHJhbmNoZV9vZl9qc29vIHRyYW5jaGVfcmV2ZW51IyMuaGF1dDtcbiAgICAgIGJhcyA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICB0cmFuY2hlX3JldmVudSMjLmJhcztcbiAgICAgIHRhdXggPSBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciB0cmFuY2hlX3JldmVudSMjLnRhdXhcbiAgICB9XG5cbmNsYXNzIHR5cGUgdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBoYXV0OiBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiYXM6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdGF1eDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHRyYW5jaGVfcmV2ZW51X2RlY2ltYWxfdG9fanNvbyAodHJhbmNoZV9yZXZlbnVfZGVjaW1hbFxuICAgIDogVHJhbmNoZVJldmVudURlY2ltYWwudCkgOiB0cmFuY2hlX3JldmVudV9kZWNpbWFsIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGhhdXQgPSBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsX3RvX2pzb28gdHJhbmNoZV9yZXZlbnVfZGVjaW1hbC5oYXV0XG4gICAgICB2YWwgYmFzID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgdHJhbmNoZV9yZXZlbnVfZGVjaW1hbC5iYXNcbiAgICAgIHZhbCB0YXV4ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgdHJhbmNoZV9yZXZlbnVfZGVjaW1hbC50YXV4XG4gICAgICBlbmRcbiAgbGV0IHRyYW5jaGVfcmV2ZW51X2RlY2ltYWxfb2ZfanNvb1xuICAgICh0cmFuY2hlX3JldmVudV9kZWNpbWFsIDogdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCBKcy50KSA6XG4gICAgVHJhbmNoZVJldmVudURlY2ltYWwudCA9XG4gICAge1xuICAgICAgaGF1dCA9IGxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfb2ZfanNvbyB0cmFuY2hlX3JldmVudV9kZWNpbWFsIyMuaGF1dDtcbiAgICAgIGJhcyA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIHRyYW5jaGVfcmV2ZW51X2RlY2ltYWwjIy5iYXM7XG4gICAgICB0YXV4ID1cbiAgICAgICAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCMjLnRhdXhcbiAgICB9XG5cbmNsYXNzIHR5cGUgYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZU5haXNzYW5jZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFzY2VuZGFudERlc2NlbmRhbnRDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZTpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBhcmVudGU6IHBhcmVudGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGluY2FwYWNpdGU4MFBvdXJjZW50T3VSZXN0cmljdGlvbkVtcGxvaTpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGJlbmVmaWNpYWlyZUwxNjExOUwzNTE4TDY0MzNTZWN1OiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0aXR1bGFpcmVBbGxvY2F0aW9uUGVyc29ubmVBZ2VlOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlX3RvX2pzb28gKGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlXG4gICAgOiBBdXRyZVBlcnNvbm5lQUNoYXJnZS50KSA6IGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVOYWlzc2FuY2UgPSBkYXRlX3RvX2pzb28gYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UuZGF0ZV9uYWlzc2FuY2VcbiAgICAgIHZhbCByZXNzb3VyY2VzID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlLnJlc3NvdXJjZXNcbiAgICAgIHZhbCBhc2NlbmRhbnREZXNjZW5kYW50Q29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmUgPVxuICAgICAgICBKcy5ib29sIGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlLmFzY2VuZGFudF9kZXNjZW5kYW50X2NvbGxhdGVyYWxfZGV1eGllbWVfdHJvaXNpZW1lX2RlZ3JlXG4gICAgICB2YWwgcGFyZW50ZSA9IHBhcmVudGVfdG9fanNvbyBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZS5wYXJlbnRlXG4gICAgICB2YWwgaW5jYXBhY2l0ZTgwUG91cmNlbnRPdVJlc3RyaWN0aW9uRW1wbG9pID1cbiAgICAgICAgSnMuYm9vbCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZS5pbmNhcGFjaXRlXzgwX3BvdXJjZW50X291X3Jlc3RyaWN0aW9uX2VtcGxvaVxuICAgICAgdmFsIGJlbmVmaWNpYWlyZUwxNjExOUwzNTE4TDY0MzNTZWN1ID1cbiAgICAgICAgSnMuYm9vbCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZS5iZW5lZmljaWFpcmVfbDE2MV8xOV9sMzUxXzhfbDY0M18zX3NlY3VcbiAgICAgIHZhbCB0aXR1bGFpcmVBbGxvY2F0aW9uUGVyc29ubmVBZ2VlID1cbiAgICAgICAgSnMuYm9vbCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZS50aXR1bGFpcmVfYWxsb2NhdGlvbl9wZXJzb25uZV9hZ2VlXG4gICAgICBlbmRcbiAgbGV0IGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlX29mX2pzb29cbiAgICAoYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UgOiBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZSBKcy50KSA6XG4gICAgQXV0cmVQZXJzb25uZUFDaGFyZ2UudCA9XG4gICAge1xuICAgICAgZGF0ZV9uYWlzc2FuY2UgPSBkYXRlX29mX2pzb28gYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UjIy5kYXRlTmFpc3NhbmNlO1xuICAgICAgcmVzc291cmNlcyA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZSMjLnJlc3NvdXJjZXM7XG4gICAgICBhc2NlbmRhbnRfZGVzY2VuZGFudF9jb2xsYXRlcmFsX2RldXhpZW1lX3Ryb2lzaWVtZV9kZWdyZSA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZVxuICAgICAgICAgICMjLmFzY2VuZGFudERlc2NlbmRhbnRDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZTtcbiAgICAgIHBhcmVudGUgPSBwYXJlbnRlX29mX2pzb28gYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UjIy5wYXJlbnRlO1xuICAgICAgaW5jYXBhY2l0ZV84MF9wb3VyY2VudF9vdV9yZXN0cmljdGlvbl9lbXBsb2kgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UjIy5pbmNhcGFjaXRlODBQb3VyY2VudE91UmVzdHJpY3Rpb25FbXBsb2k7XG4gICAgICBiZW5lZmljaWFpcmVfbDE2MV8xOV9sMzUxXzhfbDY0M18zX3NlY3UgPVxuICAgICAgICBKcy50b19ib29sIGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlIyMuYmVuZWZpY2lhaXJlTDE2MTE5TDM1MThMNjQzM1NlY3U7XG4gICAgICB0aXR1bGFpcmVfYWxsb2NhdGlvbl9wZXJzb25uZV9hZ2VlID1cbiAgICAgICAgSnMudG9fYm9vbCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZSMjLnRpdHVsYWlyZUFsbG9jYXRpb25QZXJzb25uZUFnZWVcbiAgICB9XG5cbmNsYXNzIHR5cGUgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJNb2luc0RlVHJvaXNFbmZhbnRzXCJcbiAgICAgICAgLSBcIlBsdXNEZVRyb2lzRW5mYW50c1wiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50X3RvX2pzb29cbiAgOiBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC50IC0+IGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IE1vaW5zRGVUcm9pc0VuZmFudHMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNb2luc0RlVHJvaXNFbmZhbnRzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUGx1c0RlVHJvaXNFbmZhbnRzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGx1c0RlVHJvaXNFbmZhbnRzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2VfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnRfb2ZfanNvb1xuICAoZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnRcbiAgICA6IGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50IEpzLnQpXG4gIDogRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQudCA9XG4gIG1hdGNoIGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50IyMua2luZFxuICAgIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJNb2luc0RlVHJvaXNFbmZhbnRzXCIgLT5cbiAgICBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC5Nb2luc0RlVHJvaXNFbmZhbnRzICgpXG4gIHwgXCJQbHVzRGVUcm9pc0VuZmFudHNcIiAtPlxuICBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC5QbHVzRGVUcm9pc0VuZmFudHMgKGRhdGVfZGVfbmFpc3NhbmNlX291X21vaXNfZGVfZ3Jvc3Nlc3NlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnQjIy5wYXlsb2FkKSlcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0RhdGVOYWlzc2FuY2VUcm9pc2llbWVPdURlcm5pZXJQbHVzRW5mYW50LnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZWxpZ2liaWxpdGU6XG4gICAgICB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZTogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZTpcbiAgICAgIEpzLm51bWJlciBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fanNvb1xuICAgIChlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IDogRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudClcbiAgICA6IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZWxpZ2liaWxpdGUgPVxuICAgICAgICB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fanNvbyBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50LmVsaWdpYmlsaXRlXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcbiAgICAgIHZhbCBjb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCB4KSBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVcbiAgICAgIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgOiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50ID1cbiAgICB7XG4gICAgICBlbGlnaWJpbGl0ZSA9XG4gICAgICAgIHR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9vZl9qc29vXG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCMjLmVsaWdpYmlsaXRlO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICAgICAgICAgIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlO1xuICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgeCkgQEAgSnMudG9fYXJyYXlcbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICAgICAgICAgIyMuY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBwcmV0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHR5cGVQcmV0OiB0eXBlX3ByZXQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVTaWduYXR1cmU6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdGl0dWxhaXJlUHJldDogdGl0dWxhaXJlX3ByZXQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyOlxuICAgICAgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBwcmV0X3RvX2pzb28gKHByZXQgOiBQcmV0LnQpIDogcHJldCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCB0eXBlUHJldCA9IHR5cGVfcHJldF90b19qc29vIHByZXQudHlwZV9wcmV0XG4gICAgICB2YWwgZGF0ZVNpZ25hdHVyZSA9IGRhdGVfdG9fanNvbyBwcmV0LmRhdGVfc2lnbmF0dXJlXG4gICAgICB2YWwgdGl0dWxhaXJlUHJldCA9IHRpdHVsYWlyZV9wcmV0X3RvX2pzb28gcHJldC50aXR1bGFpcmVfcHJldFxuICAgICAgdmFsIGFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyID1cbiAgICAgICAgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lcl90b19qc29vIHByZXQuYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9FdGF0X291dHJlX21lclxuICAgICAgZW5kXG4gIGxldCBwcmV0X29mX2pzb28gKHByZXQgOiBwcmV0IEpzLnQpIDogUHJldC50ID1cbiAgICB7XG4gICAgICB0eXBlX3ByZXQgPSB0eXBlX3ByZXRfb2ZfanNvbyBwcmV0IyMudHlwZVByZXQ7XG4gICAgICBkYXRlX3NpZ25hdHVyZSA9IGRhdGVfb2ZfanNvbyBwcmV0IyMuZGF0ZVNpZ25hdHVyZTtcbiAgICAgIHRpdHVsYWlyZV9wcmV0ID0gdGl0dWxhaXJlX3ByZXRfb2ZfanNvbyBwcmV0IyMudGl0dWxhaXJlUHJldDtcbiAgICAgIGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfRXRhdF9vdXRyZV9tZXIgPVxuICAgICAgICBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyX29mX2pzb29cbiAgICAgICAgICBwcmV0IyMuYWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXJcbiAgICB9XG5cbmNsYXNzIHR5cGUgbG9nZW1lbnRfZm95ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdHlwZVVzZXI6IHR5cGVfbG9nZW1lbnRfZm95ZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlbXBsaXRDb25kaXRpb25zUjgzMjIxOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb252ZW50aW9ubmVMaXZyZUlJSVRpdHJlVkNoYXBJSUk6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvbnZlbnRpb25uZVNlbG9uUmVnbGVzRHJvbTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvbnZlbnRpb25uZW1lbnQ6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uc3RydWl0QXBwbGljYXRpb25Mb2kxOTU3MTJJSUk6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlZGV2YW5jZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyRDg0MjE2OlxuICAgICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXM6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2dlbWVudE1ldWJsZUQ4NDIyOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGxvZ2VtZW50X2ZveWVyX3RvX2pzb28gKGxvZ2VtZW50X2ZveWVyIDogTG9nZW1lbnRGb3llci50KVxuICAgIDogbG9nZW1lbnRfZm95ZXIgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgdHlwZVVzZXIgPSB0eXBlX2xvZ2VtZW50X2ZveWVyX3RvX2pzb28gbG9nZW1lbnRfZm95ZXIudHlwZV91c2VyXG4gICAgICB2YWwgcmVtcGxpdENvbmRpdGlvbnNSODMyMjEgPVxuICAgICAgICBKcy5ib29sIGxvZ2VtZW50X2ZveWVyLnJlbXBsaXRfY29uZGl0aW9uc19yODMyXzIxXG4gICAgICB2YWwgY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZVZDaGFwSUlJID1cbiAgICAgICAgSnMuYm9vbCBsb2dlbWVudF9mb3llci5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUlcbiAgICAgIHZhbCBjb252ZW50aW9ubmVTZWxvblJlZ2xlc0Ryb20gPVxuICAgICAgICBKcy5ib29sIGxvZ2VtZW50X2ZveWVyLmNvbnZlbnRpb25uZV9zZWxvbl9yZWdsZXNfZHJvbVxuICAgICAgdmFsIGRhdGVDb252ZW50aW9ubmVtZW50ID1cbiAgICAgICAgZGF0ZV90b19qc29vIGxvZ2VtZW50X2ZveWVyLmRhdGVfY29udmVudGlvbm5lbWVudFxuICAgICAgdmFsIGNvbnN0cnVpdEFwcGxpY2F0aW9uTG9pMTk1NzEySUlJID1cbiAgICAgICAgSnMuYm9vbCBsb2dlbWVudF9mb3llci5jb25zdHJ1aXRfYXBwbGljYXRpb25fbG9pXzE5NTdfMTJfSUlJXG4gICAgICB2YWwgcmVkZXZhbmNlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGxvZ2VtZW50X2ZveWVyLnJlZGV2YW5jZVxuICAgICAgdmFsIGNhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJEODQyMTYgPVxuICAgICAgICBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl90b19qc29vIGxvZ2VtZW50X2ZveWVyLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2XG4gICAgICB2YWwgYmVuZWZpY2lhaXJlQWlkZUFkdWx0ZU91RW5mYW50SGFuZGljYXBlcyA9XG4gICAgICAgIEpzLmJvb2wgbG9nZW1lbnRfZm95ZXIuYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXG4gICAgICB2YWwgbG9nZW1lbnRNZXVibGVEODQyMiA9IEpzLmJvb2wgbG9nZW1lbnRfZm95ZXIubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMlxuICAgICAgZW5kXG4gIGxldCBsb2dlbWVudF9mb3llcl9vZl9qc29vIChsb2dlbWVudF9mb3llciA6IGxvZ2VtZW50X2ZveWVyIEpzLnQpIDpcbiAgICBMb2dlbWVudEZveWVyLnQgPVxuICAgIHtcbiAgICAgIHR5cGVfdXNlciA9IHR5cGVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvbyBsb2dlbWVudF9mb3llciMjLnR5cGVVc2VyO1xuICAgICAgcmVtcGxpdF9jb25kaXRpb25zX3I4MzJfMjEgPVxuICAgICAgICBKcy50b19ib29sIGxvZ2VtZW50X2ZveWVyIyMucmVtcGxpdENvbmRpdGlvbnNSODMyMjE7XG4gICAgICBjb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUkgPVxuICAgICAgICBKcy50b19ib29sIGxvZ2VtZW50X2ZveWVyIyMuY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZVZDaGFwSUlJO1xuICAgICAgY29udmVudGlvbm5lX3NlbG9uX3JlZ2xlc19kcm9tID1cbiAgICAgICAgSnMudG9fYm9vbCBsb2dlbWVudF9mb3llciMjLmNvbnZlbnRpb25uZVNlbG9uUmVnbGVzRHJvbTtcbiAgICAgIGRhdGVfY29udmVudGlvbm5lbWVudCA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBsb2dlbWVudF9mb3llciMjLmRhdGVDb252ZW50aW9ubmVtZW50O1xuICAgICAgY29uc3RydWl0X2FwcGxpY2F0aW9uX2xvaV8xOTU3XzEyX0lJSSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbG9nZW1lbnRfZm95ZXIjIy5jb25zdHJ1aXRBcHBsaWNhdGlvbkxvaTE5NTcxMklJSTtcbiAgICAgIHJlZGV2YW5jZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBsb2dlbWVudF9mb3llciMjLnJlZGV2YW5jZTtcbiAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2ID1cbiAgICAgICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfb2ZfanNvb1xuICAgICAgICAgIGxvZ2VtZW50X2ZveWVyIyMuY2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckQ4NDIxNjtcbiAgICAgIGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlcyA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbG9nZW1lbnRfZm95ZXIjIy5iZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzO1xuICAgICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMiA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbG9nZW1lbnRfZm95ZXIjIy5sb2dlbWVudE1ldWJsZUQ4NDIyXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGlkZW50aWZpYW50OiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBvYmxpZ2F0aW9uU2NvbGFpcmU6XG4gICAgICBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVtdW5lcmF0aW9uTWVuc3VlbGxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVEZU5haXNzYW5jZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwcmlzZUVuQ2hhcmdlOiBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudDpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvbyAoZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgICA6IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50KSA6IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGlkZW50aWZpYW50ID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMuaWRlbnRpZmlhbnRcbiAgICAgIHZhbCBvYmxpZ2F0aW9uU2NvbGFpcmUgPVxuICAgICAgICBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV90b19qc29vIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmVcbiAgICAgIHZhbCByZW11bmVyYXRpb25NZW5zdWVsbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMucmVtdW5lcmF0aW9uX21lbnN1ZWxsZVxuICAgICAgdmFsIGRhdGVEZU5haXNzYW5jZSA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5kYXRlX2RlX25haXNzYW5jZVxuICAgICAgdmFsIHByaXNlRW5DaGFyZ2UgPVxuICAgICAgICBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X3RvX2pzb28gZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMucHJpc2VfZW5fY2hhcmdlXG4gICAgICB2YWwgYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLmJvb2wgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgdmFsIGJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnQgPVxuICAgICAgICBKcy5ib29sIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgZW5kXG4gIGxldCBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgKGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIDogZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgOlxuICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID1cbiAgICB7XG4gICAgICBpZGVudGlmaWFudCA9IGludGVnZXJfb2ZfaW50IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMuaWRlbnRpZmlhbnQ7XG4gICAgICBvYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgICAgICAgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfb2ZfanNvb1xuICAgICAgICAgIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMub2JsaWdhdGlvblNjb2xhaXJlO1xuICAgICAgcmVtdW5lcmF0aW9uX21lbnN1ZWxsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLnJlbXVuZXJhdGlvbk1lbnN1ZWxsZTtcbiAgICAgIGRhdGVfZGVfbmFpc3NhbmNlID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMuZGF0ZURlTmFpc3NhbmNlO1xuICAgICAgcHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgcHJpc2VfZW5fY2hhcmdlX2VuZmFudF9vZl9qc29vXG4gICAgICAgICAgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMjIy5wcmlzZUVuQ2hhcmdlO1xuICAgICAgYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgICAgICMjLmFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXM7XG4gICAgICBiZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgICAgICAjIy5iZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50XG4gICAgfVxuXG5jbGFzcyB0eXBlIHR5cGVfYmFpbGxldXIgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJCYWlsbGV1clNvY2lhbFwiXG4gICAgICAgIC0gXCJCYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWxcIlxuICAgICAgICAtIFwiQmFpbGxldXJQcml2ZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHR5cGVfYmFpbGxldXJfdG9fanNvbyA6IFR5cGVCYWlsbGV1ci50IC0+IHR5cGVfYmFpbGxldXIgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQmFpbGxldXJTb2NpYWwgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJCYWlsbGV1clNvY2lhbFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBCYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWwgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJCYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWxcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChjb252ZW50aW9uX2Ffbl9oX2FfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IEJhaWxsZXVyUHJpdmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJCYWlsbGV1clByaXZlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB0eXBlX2JhaWxsZXVyX29mX2pzb28gKHR5cGVfYmFpbGxldXIgOiB0eXBlX2JhaWxsZXVyIEpzLnQpXG4gIDogVHlwZUJhaWxsZXVyLnQgPVxuICBtYXRjaCB0eXBlX2JhaWxsZXVyIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQmFpbGxldXJTb2NpYWxcIiAtPlxuICBUeXBlQmFpbGxldXIuQmFpbGxldXJTb2NpYWwgKGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgdHlwZV9iYWlsbGV1ciMjLnBheWxvYWQpKVxuICB8IFwiQmFpbGxldXJQcml2ZUF2ZWNDb252ZW50aW9ubmVtZW50U29jaWFsXCIgLT5cbiAgVHlwZUJhaWxsZXVyLkJhaWxsZXVyUHJpdmVBdmVjQ29udmVudGlvbm5lbWVudFNvY2lhbCAoY29udmVudGlvbl9hX25faF9hX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgdHlwZV9iYWlsbGV1ciMjLnBheWxvYWQpKVxuICB8IFwiQmFpbGxldXJQcml2ZVwiIC0+IFR5cGVCYWlsbGV1ci5CYWlsbGV1clByaXZlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUeXBlQmFpbGxldXIudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJOb25cIlxuICAgICAgICAtIFwiT3VpXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnNfdG9fanNvb1xuICA6IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLnQgLT4gbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgTm9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTm9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgT3VpIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiT3VpXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAocGVyc29ubmVfc291c19sb2NhdGlvbl90b19qc29vIGFyZykpXG4gICAgZW5kXG5cbmxldCBsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVyc19vZl9qc29vXG4gIChsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVycyA6IGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzIEpzLnQpXG4gIDogTG91ZU91U291c0xvdWVBRGVzVGllcnMudCA9XG4gIG1hdGNoIGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiTm9uXCIgLT4gTG91ZU91U291c0xvdWVBRGVzVGllcnMuTm9uICgpXG4gIHwgXCJPdWlcIiAtPlxuICBMb3VlT3VTb3VzTG91ZUFEZXNUaWVycy5PdWkgKHBlcnNvbm5lX3NvdXNfbG9jYXRpb25fb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVycyMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnTG91ZU91U291c0xvdWVBRGVzVGllcnMudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgbmF0aW9uYWxpdGUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJGcmFuY2Fpc2VcIlxuICAgICAgICAtIFwiRXRyYW5nZXJlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbmF0aW9uYWxpdGVfdG9fanNvbyA6IE5hdGlvbmFsaXRlLnQgLT4gbmF0aW9uYWxpdGUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgRnJhbmNhaXNlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRnJhbmNhaXNlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRXRyYW5nZXJlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRXRyYW5nZXJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoY29uZGl0aW9uc19ldHJhbmdlcnNfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgbmF0aW9uYWxpdGVfb2ZfanNvbyAobmF0aW9uYWxpdGUgOiBuYXRpb25hbGl0ZSBKcy50KSA6IE5hdGlvbmFsaXRlLnQgPVxuICBtYXRjaCBuYXRpb25hbGl0ZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkZyYW5jYWlzZVwiIC0+IE5hdGlvbmFsaXRlLkZyYW5jYWlzZSAoKVxuICB8IFwiRXRyYW5nZXJlXCIgLT5cbiAgTmF0aW9uYWxpdGUuRXRyYW5nZXJlIChjb25kaXRpb25zX2V0cmFuZ2Vyc19vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIG5hdGlvbmFsaXRlIyMucGF5bG9hZCkpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdOYXRpb25hbGl0ZS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkNoYW5nZW1lbnRcIlxuICAgICAgICAtIFwiUGFzRGVDaGFuZ2VtZW50XCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfdG9fanNvb1xuICA6IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnQgLT4gY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQ2hhbmdlbWVudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkNoYW5nZW1lbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgUGFzRGVDaGFuZ2VtZW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGFzRGVDaGFuZ2VtZW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl9qc29vXG4gIChjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCA6IGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IEpzLnQpXG4gIDogQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudCA9XG4gIG1hdGNoIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQ2hhbmdlbWVudFwiIC0+XG4gIENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LkNoYW5nZW1lbnQgKGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQjIy5wYXlsb2FkKSlcbiAgfCBcIlBhc0RlQ2hhbmdlbWVudFwiIC0+IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LlBhc0RlQ2hhbmdlbWVudCAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBub21icmVFbmZhbnRzQU5haXRyZUFwcmVzVHJvaXNpZW1lTW9pc0dyb3NzZXNzZTpcbiAgICAgIGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVOYWlzc2FuY2VUcm9pc2llbWVFbmZhbnRPdURlcm5pZXJTaVBsdXM6XG4gICAgICBkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGVybmllcl9wbHVzX2VuZmFudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X3RvX2pzb29cbiAgICAoaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudCA6IEluZm9ybWF0aW9uc1ByaW1lRGVEZW1lbmFnZW1lbnQudClcbiAgICA6IGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbm9tYnJlRW5mYW50c0FOYWl0cmVBcHJlc1Ryb2lzaWVtZU1vaXNHcm9zc2Vzc2UgPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50Lm5vbWJyZV9lbmZhbnRzX2FfbmFpdHJlX2FwcmVzX3Ryb2lzaWVtZV9tb2lzX2dyb3NzZXNzZVxuICAgICAgdmFsIGRhdGVOYWlzc2FuY2VUcm9pc2llbWVFbmZhbnRPdURlcm5pZXJTaVBsdXMgPVxuICAgICAgICBkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGVybmllcl9wbHVzX2VuZmFudF90b19qc29vIGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnQuZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX2VuZmFudF9vdV9kZXJuaWVyX3NpX3BsdXNcbiAgICAgIGVuZFxuICBsZXQgaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9vZl9qc29vXG4gICAgKGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgICAgIDogaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudCBKcy50KSA6XG4gICAgSW5mb3JtYXRpb25zUHJpbWVEZURlbWVuYWdlbWVudC50ID1cbiAgICB7XG4gICAgICBub21icmVfZW5mYW50c19hX25haXRyZV9hcHJlc190cm9pc2llbWVfbW9pc19ncm9zc2Vzc2UgPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgICAgICAgICAjIy5ub21icmVFbmZhbnRzQU5haXRyZUFwcmVzVHJvaXNpZW1lTW9pc0dyb3NzZXNzZTtcbiAgICAgIGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9lbmZhbnRfb3VfZGVybmllcl9zaV9wbHVzID1cbiAgICAgICAgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnRfb2ZfanNvb1xuICAgICAgICAgIGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgICAgICAgICAjIy5kYXRlTmFpc3NhbmNlVHJvaXNpZW1lRW5mYW50T3VEZXJuaWVyU2lQbHVzXG4gICAgfVxuXG5jbGFzcyB0eXBlIHByb3ByaWV0YWlyZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtZW5zdWFsaXRlUHJpbmNpcGFsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjaGFyZ2VzTWVuc3VlbGxlc1ByZXQ6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUVudHJlZUxvZ2VtZW50OiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTU6XG4gICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1OlxuICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9jYWxIYWJpdGVQcmVtaWVyZUZvaXNCZW5lZmljaWFpcmU6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvcHJvcHJpZXRlOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25SODIyMTExMzE3OiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhbmNpZW5uZXRlTG9nZW1lbnQ6IG5ldWZfb3VfYW5jaWVuIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwcmV0OiBwcmV0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBvcGVyYXRpb25zTG9nZW1lbnRFdm9sdXRpZnNTb2NpYXV4QWNjZXNzaW9uUHJvcHJpZXRlQWlkZWVFdGF0OlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBwcm9wcmlldGFpcmVfdG9fanNvbyAocHJvcHJpZXRhaXJlIDogUHJvcHJpZXRhaXJlLnQpXG4gICAgOiBwcm9wcmlldGFpcmUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbWVuc3VhbGl0ZVByaW5jaXBhbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgcHJvcHJpZXRhaXJlLm1lbnN1YWxpdGVfcHJpbmNpcGFsZVxuICAgICAgdmFsIGNoYXJnZXNNZW5zdWVsbGVzUHJldCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBwcm9wcmlldGFpcmUuY2hhcmdlc19tZW5zdWVsbGVzX3ByZXRcbiAgICAgIHZhbCBkYXRlRW50cmVlTG9nZW1lbnQgPSBkYXRlX3RvX2pzb28gcHJvcHJpZXRhaXJlLmRhdGVfZW50cmVlX2xvZ2VtZW50XG4gICAgICB2YWwgdHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNSA9XG4gICAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1X3RvX2pzb28gcHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1XG4gICAgICB2YWwgdHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1ID1cbiAgICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNV90b19qc29vIHByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81XG4gICAgICB2YWwgbG9jYWxIYWJpdGVQcmVtaWVyZUZvaXNCZW5lZmljaWFpcmUgPVxuICAgICAgICBKcy5ib29sIHByb3ByaWV0YWlyZS5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVcbiAgICAgIHZhbCBjb3Byb3ByaWV0ZSA9IEpzLmJvb2wgcHJvcHJpZXRhaXJlLmNvcHJvcHJpZXRlXG4gICAgICB2YWwgc2l0dWF0aW9uUjgyMjExMTMxNyA9IEpzLmJvb2wgcHJvcHJpZXRhaXJlLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3XG4gICAgICB2YWwgYW5jaWVubmV0ZUxvZ2VtZW50ID1cbiAgICAgICAgbmV1Zl9vdV9hbmNpZW5fdG9fanNvbyBwcm9wcmlldGFpcmUuYW5jaWVubmV0ZV9sb2dlbWVudFxuICAgICAgdmFsIHByZXQgPSBwcmV0X3RvX2pzb28gcHJvcHJpZXRhaXJlLnByZXRcbiAgICAgIHZhbCBvcGVyYXRpb25zTG9nZW1lbnRFdm9sdXRpZnNTb2NpYXV4QWNjZXNzaW9uUHJvcHJpZXRlQWlkZWVFdGF0ID1cbiAgICAgICAgSnMuYm9vbCBwcm9wcmlldGFpcmUub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRcbiAgICAgIGVuZFxuICBsZXQgcHJvcHJpZXRhaXJlX29mX2pzb28gKHByb3ByaWV0YWlyZSA6IHByb3ByaWV0YWlyZSBKcy50KSA6XG4gICAgUHJvcHJpZXRhaXJlLnQgPVxuICAgIHtcbiAgICAgIG1lbnN1YWxpdGVfcHJpbmNpcGFsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBwcm9wcmlldGFpcmUjIy5tZW5zdWFsaXRlUHJpbmNpcGFsZTtcbiAgICAgIGNoYXJnZXNfbWVuc3VlbGxlc19wcmV0ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHByb3ByaWV0YWlyZSMjLmNoYXJnZXNNZW5zdWVsbGVzUHJldDtcbiAgICAgIGRhdGVfZW50cmVlX2xvZ2VtZW50ID0gZGF0ZV9vZl9qc29vIHByb3ByaWV0YWlyZSMjLmRhdGVFbnRyZWVMb2dlbWVudDtcbiAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1ID1cbiAgICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTVfb2ZfanNvb1xuICAgICAgICAgIHByb3ByaWV0YWlyZSMjLnR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTU7XG4gICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81ID1cbiAgICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNV9vZl9qc29vXG4gICAgICAgICAgcHJvcHJpZXRhaXJlIyMudHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1O1xuICAgICAgbG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlID1cbiAgICAgICAgSnMudG9fYm9vbCBwcm9wcmlldGFpcmUjIy5sb2NhbEhhYml0ZVByZW1pZXJlRm9pc0JlbmVmaWNpYWlyZTtcbiAgICAgIGNvcHJvcHJpZXRlID0gSnMudG9fYm9vbCBwcm9wcmlldGFpcmUjIy5jb3Byb3ByaWV0ZTtcbiAgICAgIHNpdHVhdGlvbl9yODIyXzExXzEzXzE3ID0gSnMudG9fYm9vbCBwcm9wcmlldGFpcmUjIy5zaXR1YXRpb25SODIyMTExMzE3O1xuICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudCA9XG4gICAgICAgIG5ldWZfb3VfYW5jaWVuX29mX2pzb28gcHJvcHJpZXRhaXJlIyMuYW5jaWVubmV0ZUxvZ2VtZW50O1xuICAgICAgcHJldCA9IHByZXRfb2ZfanNvbyBwcm9wcmlldGFpcmUjIy5wcmV0O1xuICAgICAgb3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXQgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgcHJvcHJpZXRhaXJlXG4gICAgICAgICAgIyMub3BlcmF0aW9uc0xvZ2VtZW50RXZvbHV0aWZzU29jaWF1eEFjY2Vzc2lvblByb3ByaWV0ZUFpZGVlRXRhdFxuICAgIH1cblxuY2xhc3MgdHlwZSBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFnZUw1MTIzMjogUnVudGltZV9qc29vLlJ1bnRpbWUuZHVyYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRyb2l0T3V2ZXJ0OlxuICAgICAgKHVuaXQsICBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIGNvbmRpdGlvbnNIb3JzQWdlOlxuICAgICAgKHVuaXQsICBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIHJlZ2ltZU91dHJlTWVyTDc1MTE6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgOiBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy50KVxuICAgIDogZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBhZ2VMNTEyMzIgPVxuICAgICAgICBkdXJhdGlvbl90b19qc29vIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yXG4gICAgICBtZXRob2QgZHJvaXRPdXZlcnQgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAoZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5kcm9pdF9vdXZlcnQgKGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBtZXRob2QgY29uZGl0aW9uc0hvcnNBZ2UgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAoZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5jb25kaXRpb25zX2hvcnNfYWdlIFxuICAgICAgICAgIChlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIHZhbCByZWdpbWVPdXRyZU1lckw3NTExID1cbiAgICAgICAgSnMuYm9vbCBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXG4gICAgICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gICAgICA6IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgOlxuICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICAgIHtcbiAgICAgIGFnZV9sNTEyXzNfMiA9XG4gICAgICAgIGR1cmF0aW9uX29mX2pzb28gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLmFnZUw1MTIzMjtcbiAgICAgIGRyb2l0X291dmVydCA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdkcm9pdF9vdXZlcnQnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIjtcbiAgICAgIGNvbmRpdGlvbnNfaG9yc19hZ2UgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnY29uZGl0aW9uc19ob3JzX2FnZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiO1xuICAgICAgcmVnaW1lX291dHJlX21lcl9sNzUxXzEgPVxuICAgICAgICBKcy50b19ib29sIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMjIy5yZWdpbWVPdXRyZU1lckw3NTExXG4gICAgfVxuXG5jbGFzcyB0eXBlIGRlbWFuZGV1ciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlTmFpc3NhbmNlOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5hdGlvbmFsaXRlOiBuYXRpb25hbGl0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGF0cmltb2luZTogcGF0cmltb2luZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGVyc29ubmVIZWJlcmdlZUNlbnRyZVNvaW5MTDE2MjIyM1NlY3VyaXRlU29jaWFsZTpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVzdE5vblNhbGFyaWVBZ3JpY29sZUw3ODE4TDc4MTQ2Q29kZVJ1cmFsOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbWFnaXN0cmF0Rm9uY3Rpb25uYWlyZUNlbnRyZUludGVyZXRzTWF0ZXJpZWxzRmFtaWxpYXV4SG9yc01heW90dGU6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGRlbWFuZGV1cl90b19qc29vIChkZW1hbmRldXIgOiBEZW1hbmRldXIudCkgOiBkZW1hbmRldXIgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZU5haXNzYW5jZSA9IGRhdGVfdG9fanNvbyBkZW1hbmRldXIuZGF0ZV9uYWlzc2FuY2VcbiAgICAgIHZhbCBuYXRpb25hbGl0ZSA9IG5hdGlvbmFsaXRlX3RvX2pzb28gZGVtYW5kZXVyLm5hdGlvbmFsaXRlXG4gICAgICB2YWwgcGF0cmltb2luZSA9IHBhdHJpbW9pbmVfdG9fanNvbyBkZW1hbmRldXIucGF0cmltb2luZVxuICAgICAgdmFsIHBlcnNvbm5lSGViZXJnZWVDZW50cmVTb2luTEwxNjIyMjNTZWN1cml0ZVNvY2lhbGUgPVxuICAgICAgICBKcy5ib29sIGRlbWFuZGV1ci5wZXJzb25uZV9oZWJlcmdlZV9jZW50cmVfc29pbl9sX0wxNjJfMjJfM19zZWN1cml0ZV9zb2NpYWxlXG4gICAgICB2YWwgZXN0Tm9uU2FsYXJpZUFncmljb2xlTDc4MThMNzgxNDZDb2RlUnVyYWwgPVxuICAgICAgICBKcy5ib29sIGRlbWFuZGV1ci5lc3Rfbm9uX3NhbGFyaWVfYWdyaWNvbGVfbDc4MV84X2xfNzgxXzQ2X2NvZGVfcnVyYWxcbiAgICAgIHZhbCBtYWdpc3RyYXRGb25jdGlvbm5haXJlQ2VudHJlSW50ZXJldHNNYXRlcmllbHNGYW1pbGlhdXhIb3JzTWF5b3R0ZSA9XG4gICAgICAgIEpzLmJvb2wgZGVtYW5kZXVyLm1hZ2lzdHJhdF9mb25jdGlvbm5haXJlX2NlbnRyZV9pbnRlcmV0c19tYXRlcmllbHNfZmFtaWxpYXV4X2hvcnNfbWF5b3R0ZVxuICAgICAgZW5kXG4gIGxldCBkZW1hbmRldXJfb2ZfanNvbyAoZGVtYW5kZXVyIDogZGVtYW5kZXVyIEpzLnQpIDogRGVtYW5kZXVyLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfbmFpc3NhbmNlID0gZGF0ZV9vZl9qc29vIGRlbWFuZGV1ciMjLmRhdGVOYWlzc2FuY2U7XG4gICAgICBuYXRpb25hbGl0ZSA9IG5hdGlvbmFsaXRlX29mX2pzb28gZGVtYW5kZXVyIyMubmF0aW9uYWxpdGU7XG4gICAgICBwYXRyaW1vaW5lID0gcGF0cmltb2luZV9vZl9qc29vIGRlbWFuZGV1ciMjLnBhdHJpbW9pbmU7XG4gICAgICBwZXJzb25uZV9oZWJlcmdlZV9jZW50cmVfc29pbl9sX0wxNjJfMjJfM19zZWN1cml0ZV9zb2NpYWxlID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGRlbWFuZGV1ciMjLnBlcnNvbm5lSGViZXJnZWVDZW50cmVTb2luTEwxNjIyMjNTZWN1cml0ZVNvY2lhbGU7XG4gICAgICBlc3Rfbm9uX3NhbGFyaWVfYWdyaWNvbGVfbDc4MV84X2xfNzgxXzQ2X2NvZGVfcnVyYWwgPVxuICAgICAgICBKcy50b19ib29sIGRlbWFuZGV1ciMjLmVzdE5vblNhbGFyaWVBZ3JpY29sZUw3ODE4TDc4MTQ2Q29kZVJ1cmFsO1xuICAgICAgbWFnaXN0cmF0X2ZvbmN0aW9ubmFpcmVfY2VudHJlX2ludGVyZXRzX21hdGVyaWVsc19mYW1pbGlhdXhfaG9yc19tYXlvdHRlID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGRlbWFuZGV1clxuICAgICAgICAgICMjLm1hZ2lzdHJhdEZvbmN0aW9ubmFpcmVDZW50cmVJbnRlcmV0c01hdGVyaWVsc0ZhbWlsaWF1eEhvcnNNYXlvdHRlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVuZmFudF9hX2NoYXJnZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBpZGVudGlmaWFudDogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbmF0aW9uYWxpdGU6IG5hdGlvbmFsaXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50OlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlczpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVEZU5haXNzYW5jZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZW11bmVyYXRpb25NZW5zdWVsbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgb2JsaWdhdGlvblNjb2xhaXJlOlxuICAgICAgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkdhcmRlQWx0ZXJuZWU6XG4gICAgICBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGV0dWRlc0FwcHJlbnRpc3NhZ2VTdGFnZUZvcm1hdGlvblByb0ltcG9zc2liaWxpdGVUcmF2YWlsOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBlbmZhbnRfYV9jaGFyZ2VfdG9fanNvbyAoZW5mYW50X2FfY2hhcmdlIDogRW5mYW50QUNoYXJnZS50KVxuICAgIDogZW5mYW50X2FfY2hhcmdlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGlkZW50aWZpYW50ID0gaW50ZWdlcl90b19pbnQgZW5mYW50X2FfY2hhcmdlLmlkZW50aWZpYW50XG4gICAgICB2YWwgbmF0aW9uYWxpdGUgPSBuYXRpb25hbGl0ZV90b19qc29vIGVuZmFudF9hX2NoYXJnZS5uYXRpb25hbGl0ZVxuICAgICAgdmFsIGJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnQgPVxuICAgICAgICBKcy5ib29sIGVuZmFudF9hX2NoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIHZhbCBhRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzID1cbiAgICAgICAgSnMuYm9vbCBlbmZhbnRfYV9jaGFyZ2UuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgdmFsIGRhdGVEZU5haXNzYW5jZSA9IGRhdGVfdG9fanNvbyBlbmZhbnRfYV9jaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2VcbiAgICAgIHZhbCByZW11bmVyYXRpb25NZW5zdWVsbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgZW5mYW50X2FfY2hhcmdlLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGVcbiAgICAgIHZhbCBvYmxpZ2F0aW9uU2NvbGFpcmUgPVxuICAgICAgICBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV90b19qc29vIGVuZmFudF9hX2NoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlXG4gICAgICB2YWwgc2l0dWF0aW9uR2FyZGVBbHRlcm5lZSA9XG4gICAgICAgIHNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZV90b19qc29vIGVuZmFudF9hX2NoYXJnZS5zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVcbiAgICAgIHZhbCBldHVkZXNBcHByZW50aXNzYWdlU3RhZ2VGb3JtYXRpb25Qcm9JbXBvc3NpYmlsaXRlVHJhdmFpbCA9XG4gICAgICAgIEpzLmJvb2wgZW5mYW50X2FfY2hhcmdlLmV0dWRlc19hcHByZW50aXNzYWdlX3N0YWdlX2Zvcm1hdGlvbl9wcm9faW1wb3NzaWJpbGl0ZV90cmF2YWlsXG4gICAgICBlbmRcbiAgbGV0IGVuZmFudF9hX2NoYXJnZV9vZl9qc29vIChlbmZhbnRfYV9jaGFyZ2UgOiBlbmZhbnRfYV9jaGFyZ2UgSnMudCkgOlxuICAgIEVuZmFudEFDaGFyZ2UudCA9XG4gICAge1xuICAgICAgaWRlbnRpZmlhbnQgPSBpbnRlZ2VyX29mX2ludCBlbmZhbnRfYV9jaGFyZ2UjIy5pZGVudGlmaWFudDtcbiAgICAgIG5hdGlvbmFsaXRlID0gbmF0aW9uYWxpdGVfb2ZfanNvbyBlbmZhbnRfYV9jaGFyZ2UjIy5uYXRpb25hbGl0ZTtcbiAgICAgIGJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBlbmZhbnRfYV9jaGFyZ2UjIy5iZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50O1xuICAgICAgYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLnRvX2Jvb2wgZW5mYW50X2FfY2hhcmdlIyMuYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlcztcbiAgICAgIGRhdGVfZGVfbmFpc3NhbmNlID0gZGF0ZV9vZl9qc29vIGVuZmFudF9hX2NoYXJnZSMjLmRhdGVEZU5haXNzYW5jZTtcbiAgICAgIHJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgZW5mYW50X2FfY2hhcmdlIyMucmVtdW5lcmF0aW9uTWVuc3VlbGxlO1xuICAgICAgb2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlX29mX2pzb29cbiAgICAgICAgICBlbmZhbnRfYV9jaGFyZ2UjIy5vYmxpZ2F0aW9uU2NvbGFpcmU7XG4gICAgICBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUgPVxuICAgICAgICBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfb2ZfanNvb1xuICAgICAgICAgIGVuZmFudF9hX2NoYXJnZSMjLnNpdHVhdGlvbkdhcmRlQWx0ZXJuZWU7XG4gICAgICBldHVkZXNfYXBwcmVudGlzc2FnZV9zdGFnZV9mb3JtYXRpb25fcHJvX2ltcG9zc2liaWxpdGVfdHJhdmFpbCA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBlbmZhbnRfYV9jaGFyZ2VcbiAgICAgICAgICAjIy5ldHVkZXNBcHByZW50aXNzYWdlU3RhZ2VGb3JtYXRpb25Qcm9JbXBvc3NpYmlsaXRlVHJhdmFpbFxuICAgIH1cblxuY2xhc3MgdHlwZSBsb2NhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBiYWlsbGV1cjogdHlwZV9iYWlsbGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG95ZXJQcmluY2lwYWw6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYmVuZWZpY2lhaXJlQWlkZUFkdWx0ZU91RW5mYW50SGFuZGljYXBlczpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvZ2VtZW50RXN0Q2hhbWJyZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29sb2NhdGlvbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWdlZXNPdUhhbmRpY2FwQWR1bHRlc0hlYmVyZ2Vlc09uZXJldXhQYXJ0aWN1bGllcnM6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2dlbWVudE1ldWJsZUQ4NDIyOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjaGFuZ2VtZW50TG9nZW1lbnREODQyNDpcbiAgICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGxvY2F0aW9uX3RvX2pzb28gKGxvY2F0aW9uIDogTG9jYXRpb24udCkgOiBsb2NhdGlvbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBiYWlsbGV1ciA9IHR5cGVfYmFpbGxldXJfdG9fanNvbyBsb2NhdGlvbi5iYWlsbGV1clxuICAgICAgdmFsIGxveWVyUHJpbmNpcGFsID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGxvY2F0aW9uLmxveWVyX3ByaW5jaXBhbFxuICAgICAgdmFsIGJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXMgPVxuICAgICAgICBKcy5ib29sIGxvY2F0aW9uLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc1xuICAgICAgdmFsIGxvZ2VtZW50RXN0Q2hhbWJyZSA9IEpzLmJvb2wgbG9jYXRpb24ubG9nZW1lbnRfZXN0X2NoYW1icmVcbiAgICAgIHZhbCBjb2xvY2F0aW9uID0gSnMuYm9vbCBsb2NhdGlvbi5jb2xvY2F0aW9uXG4gICAgICB2YWwgYWdlZXNPdUhhbmRpY2FwQWR1bHRlc0hlYmVyZ2Vlc09uZXJldXhQYXJ0aWN1bGllcnMgPVxuICAgICAgICBKcy5ib29sIGxvY2F0aW9uLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzXG4gICAgICB2YWwgbG9nZW1lbnRNZXVibGVEODQyMiA9IEpzLmJvb2wgbG9jYXRpb24ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMlxuICAgICAgdmFsIGNoYW5nZW1lbnRMb2dlbWVudEQ4NDI0ID1cbiAgICAgICAgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfdG9fanNvbyBsb2NhdGlvbi5jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNFxuICAgICAgZW5kXG4gIGxldCBsb2NhdGlvbl9vZl9qc29vIChsb2NhdGlvbiA6IGxvY2F0aW9uIEpzLnQpIDogTG9jYXRpb24udCA9XG4gICAge1xuICAgICAgYmFpbGxldXIgPSB0eXBlX2JhaWxsZXVyX29mX2pzb28gbG9jYXRpb24jIy5iYWlsbGV1cjtcbiAgICAgIGxveWVyX3ByaW5jaXBhbCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBsb2NhdGlvbiMjLmxveWVyUHJpbmNpcGFsO1xuICAgICAgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzID1cbiAgICAgICAgSnMudG9fYm9vbCBsb2NhdGlvbiMjLmJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXM7XG4gICAgICBsb2dlbWVudF9lc3RfY2hhbWJyZSA9IEpzLnRvX2Jvb2wgbG9jYXRpb24jIy5sb2dlbWVudEVzdENoYW1icmU7XG4gICAgICBjb2xvY2F0aW9uID0gSnMudG9fYm9vbCBsb2NhdGlvbiMjLmNvbG9jYXRpb247XG4gICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVycyA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBsb2NhdGlvbiMjLmFnZWVzT3VIYW5kaWNhcEFkdWx0ZXNIZWJlcmdlZXNPbmVyZXV4UGFydGljdWxpZXJzO1xuICAgICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMiA9IEpzLnRvX2Jvb2wgbG9jYXRpb24jIy5sb2dlbWVudE1ldWJsZUQ4NDIyO1xuICAgICAgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgPVxuICAgICAgICBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl9qc29vIGxvY2F0aW9uIyMuY2hhbmdlbWVudExvZ2VtZW50RDg0MjRcbiAgICB9XG5cbmNsYXNzIHR5cGUgcGVyc29ubmVfYV9jaGFyZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJFbmZhbnRBQ2hhcmdlXCJcbiAgICAgICAgLSBcIkF1dHJlUGVyc29ubmVBQ2hhcmdlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvbyA6IFBlcnNvbm5lQUNoYXJnZS50IC0+IHBlcnNvbm5lX2FfY2hhcmdlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEVuZmFudEFDaGFyZ2UgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJFbmZhbnRBQ2hhcmdlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoZW5mYW50X2FfY2hhcmdlX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBBdXRyZVBlcnNvbm5lQUNoYXJnZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkF1dHJlUGVyc29ubmVBQ2hhcmdlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgcGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyAocGVyc29ubmVfYV9jaGFyZ2UgOiBwZXJzb25uZV9hX2NoYXJnZSBKcy50KVxuICA6IFBlcnNvbm5lQUNoYXJnZS50ID1cbiAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2UjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJFbmZhbnRBQ2hhcmdlXCIgLT5cbiAgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgKGVuZmFudF9hX2NoYXJnZV9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIHBlcnNvbm5lX2FfY2hhcmdlIyMucGF5bG9hZCkpXG4gIHwgXCJBdXRyZVBlcnNvbm5lQUNoYXJnZVwiIC0+XG4gIFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSAoYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBwZXJzb25uZV9hX2NoYXJnZSMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnUGVyc29ubmVBQ2hhcmdlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIGNhdGVnb3JpZV9jYWxjdWxfYV9wX2wgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJMb2NhdGlvblwiXG4gICAgICAgIC0gXCJBY2Nlc3Npb25Qcm9wcmlldGVcIlxuICAgICAgICAtIFwiTG9nZW1lbnRGb3llclwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfdG9fanNvb1xuICA6IENhdGVnb3JpZUNhbGN1bEFQTC50IC0+IGNhdGVnb3JpZV9jYWxjdWxfYV9wX2wgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgTG9jYXRpb24gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJMb2NhdGlvblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGxvY2F0aW9uX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBBY2Nlc3Npb25Qcm9wcmlldGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBY2Nlc3Npb25Qcm9wcmlldGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChwcm9wcmlldGFpcmVfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IExvZ2VtZW50Rm95ZXIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJMb2dlbWVudEZveWVyXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAobG9nZW1lbnRfZm95ZXJfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgY2F0ZWdvcmllX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gIChjYXRlZ29yaWVfY2FsY3VsX2FfcF9sIDogY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCBKcy50KVxuICA6IENhdGVnb3JpZUNhbGN1bEFQTC50ID1cbiAgbWF0Y2ggY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkxvY2F0aW9uXCIgLT5cbiAgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIChsb2NhdGlvbl9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIGNhdGVnb3JpZV9jYWxjdWxfYV9wX2wjIy5wYXlsb2FkKSlcbiAgfCBcIkFjY2Vzc2lvblByb3ByaWV0ZVwiIC0+XG4gIENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgKHByb3ByaWV0YWlyZV9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIGNhdGVnb3JpZV9jYWxjdWxfYV9wX2wjIy5wYXlsb2FkKSlcbiAgfCBcIkxvZ2VtZW50Rm95ZXJcIiAtPlxuICBDYXRlZ29yaWVDYWxjdWxBUEwuTG9nZW1lbnRGb3llciAobG9nZW1lbnRfZm95ZXJfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBjYXRlZ29yaWVfY2FsY3VsX2FfcF9sIyMucGF5bG9hZCkpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdDYXRlZ29yaWVDYWxjdWxBUEwudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgbW9kZV9vY2N1cGF0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiTG9jYXRhaXJlXCJcbiAgICAgICAgLSBcIlJlc2lkZW50TG9nZW1lbnRGb3llclwiXG4gICAgICAgIC0gXCJBY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uXCJcbiAgICAgICAgLSBcIlNvdXNMb2NhdGFpcmVcIlxuICAgICAgICAtIFwiTG9jYXRpb25BY2Nlc3Npb25cIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBtb2RlX29jY3VwYXRpb25fdG9fanNvbyA6IE1vZGVPY2N1cGF0aW9uLnQgLT4gbW9kZV9vY2N1cGF0aW9uIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IExvY2F0YWlyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkxvY2F0YWlyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGxvY2F0aW9uX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBSZXNpZGVudExvZ2VtZW50Rm95ZXIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJSZXNpZGVudExvZ2VtZW50Rm95ZXJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChsb2dlbWVudF9mb3llcl90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb25cIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChwcm9wcmlldGFpcmVfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IFNvdXNMb2NhdGFpcmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTb3VzTG9jYXRhaXJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAobG9jYXRpb25fdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IExvY2F0aW9uQWNjZXNzaW9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTG9jYXRpb25BY2Nlc3Npb25cIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChwcm9wcmlldGFpcmVfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgbW9kZV9vY2N1cGF0aW9uX29mX2pzb28gKG1vZGVfb2NjdXBhdGlvbiA6IG1vZGVfb2NjdXBhdGlvbiBKcy50KVxuICA6IE1vZGVPY2N1cGF0aW9uLnQgPVxuICBtYXRjaCBtb2RlX29jY3VwYXRpb24jIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJMb2NhdGFpcmVcIiAtPlxuICBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgKGxvY2F0aW9uX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgbW9kZV9vY2N1cGF0aW9uIyMucGF5bG9hZCkpXG4gIHwgXCJSZXNpZGVudExvZ2VtZW50Rm95ZXJcIiAtPlxuICBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgKGxvZ2VtZW50X2ZveWVyX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgbW9kZV9vY2N1cGF0aW9uIyMucGF5bG9hZCkpXG4gIHwgXCJBY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uXCIgLT5cbiAgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiAocHJvcHJpZXRhaXJlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgbW9kZV9vY2N1cGF0aW9uIyMucGF5bG9hZCkpXG4gIHwgXCJTb3VzTG9jYXRhaXJlXCIgLT5cbiAgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSAobG9jYXRpb25fb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBtb2RlX29jY3VwYXRpb24jIy5wYXlsb2FkKSlcbiAgfCBcIkxvY2F0aW9uQWNjZXNzaW9uXCIgLT5cbiAgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gKHByb3ByaWV0YWlyZV9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIG1vZGVfb2NjdXBhdGlvbiMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnTW9kZU9jY3VwYXRpb24udCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVsaWdpYmlsaXRlOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlUHJpc2VzRW5Db21wdGU6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGU6XG4gICAgICBKcy5udW1iZXIgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uZGl0aW9uMlI4MjM0OlxuICAgICAgKHVuaXQsICBwZXJzb25uZV9hX2NoYXJnZSBKcy50IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfdG9fanNvb1xuICAgIChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgIDogRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudClcbiAgICA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZSA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudC5kYXRlX2NvdXJhbnRlXG4gICAgICB2YWwgZWxpZ2liaWxpdGUgPVxuICAgICAgICBKcy5ib29sIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50LmVsaWdpYmlsaXRlXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXG4gICAgICB2YWwgY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZSA9XG4gICAgICAgIEpzLmFycmF5IEBAIEFycmF5Lm1hcCAoZnVuIHggLT4gSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgeCkgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZVxuICAgICAgbWV0aG9kIGNvbmRpdGlvbjJSODIzNCA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogcGVyc29ubmVfYV9jaGFyZ2UgSnMudCkgLT5cbiAgICAgICAgICBKcy5ib29sIChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudC5jb25kaXRpb25fMl9yODIzXzQgXG4gICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlX29mX2pzb29cbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID1cbiAgICB7XG4gICAgICBkYXRlX2NvdXJhbnRlID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IyMuZGF0ZUNvdXJhbnRlO1xuICAgICAgZWxpZ2liaWxpdGUgPVxuICAgICAgICBKcy50b19ib29sIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IyMuZWxpZ2liaWxpdGU7XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUgPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICAgICAgIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlO1xuICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgeCkgQEAgSnMudG9fYXJyYXlcbiAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgICAgICMjLmNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGU7XG4gICAgICBjb25kaXRpb25fMl9yODIzXzQgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnY29uZGl0aW9uXzJfcjgyM180JyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCJcbiAgICB9XG5cbmNsYXNzIHR5cGUgbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcmVzaWRlbmNlUHJpbmNpcGFsZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZXN0RWhwYWRPdU1haXNvbkF1dG9ub21pZUwzMTMxMkFzZjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbW9kZU9jY3VwYXRpb246IG1vZGVfb2NjdXBhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcHJvcHJpZXRhaXJlOiBwYXJlbnRfb3VfYXV0cmUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvdWVPdVNvdXNMb3VlQURlc1RpZXJzOlxuICAgICAgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHVzdWZydWl0OiBwYXJlbnRfb3VfYXV0cmUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvZ2VtZW50RGVjZW50TDg5NDYyOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzdXJmYWNlTUNhcnJlczogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZTogem9uZV9kX2hhYml0YXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgbG9nZW1lbnRfdG9fanNvbyAobG9nZW1lbnQgOiBMb2dlbWVudC50KSA6IGxvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHJlc2lkZW5jZVByaW5jaXBhbGUgPSBKcy5ib29sIGxvZ2VtZW50LnJlc2lkZW5jZV9wcmluY2lwYWxlXG4gICAgICB2YWwgZXN0RWhwYWRPdU1haXNvbkF1dG9ub21pZUwzMTMxMkFzZiA9XG4gICAgICAgIEpzLmJvb2wgbG9nZW1lbnQuZXN0X2VocGFkX291X21haXNvbl9hdXRvbm9taWVfbDMxM18xMl9hc2ZcbiAgICAgIHZhbCBtb2RlT2NjdXBhdGlvbiA9IG1vZGVfb2NjdXBhdGlvbl90b19qc29vIGxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvblxuICAgICAgdmFsIHByb3ByaWV0YWlyZSA9IHBhcmVudF9vdV9hdXRyZV90b19qc29vIGxvZ2VtZW50LnByb3ByaWV0YWlyZVxuICAgICAgdmFsIGxvdWVPdVNvdXNMb3VlQURlc1RpZXJzID1cbiAgICAgICAgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnNfdG9fanNvbyBsb2dlbWVudC5sb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVyc1xuICAgICAgdmFsIHVzdWZydWl0ID0gcGFyZW50X291X2F1dHJlX3RvX2pzb28gbG9nZW1lbnQudXN1ZnJ1aXRcbiAgICAgIHZhbCBsb2dlbWVudERlY2VudEw4OTQ2MiA9IEpzLmJvb2wgbG9nZW1lbnQubG9nZW1lbnRfZGVjZW50X2w4OV80NjJcbiAgICAgIHZhbCBzdXJmYWNlTUNhcnJlcyA9IGludGVnZXJfdG9faW50IGxvZ2VtZW50LnN1cmZhY2VfbV9jYXJyZXNcbiAgICAgIHZhbCB6b25lID0gem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBsb2dlbWVudC56b25lXG4gICAgICBlbmRcbiAgbGV0IGxvZ2VtZW50X29mX2pzb28gKGxvZ2VtZW50IDogbG9nZW1lbnQgSnMudCkgOiBMb2dlbWVudC50ID1cbiAgICB7XG4gICAgICByZXNpZGVuY2VfcHJpbmNpcGFsZSA9IEpzLnRvX2Jvb2wgbG9nZW1lbnQjIy5yZXNpZGVuY2VQcmluY2lwYWxlO1xuICAgICAgZXN0X2VocGFkX291X21haXNvbl9hdXRvbm9taWVfbDMxM18xMl9hc2YgPVxuICAgICAgICBKcy50b19ib29sIGxvZ2VtZW50IyMuZXN0RWhwYWRPdU1haXNvbkF1dG9ub21pZUwzMTMxMkFzZjtcbiAgICAgIG1vZGVfb2NjdXBhdGlvbiA9IG1vZGVfb2NjdXBhdGlvbl9vZl9qc29vIGxvZ2VtZW50IyMubW9kZU9jY3VwYXRpb247XG4gICAgICBwcm9wcmlldGFpcmUgPSBwYXJlbnRfb3VfYXV0cmVfb2ZfanNvbyBsb2dlbWVudCMjLnByb3ByaWV0YWlyZTtcbiAgICAgIGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzID1cbiAgICAgICAgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnNfb2ZfanNvb1xuICAgICAgICAgIGxvZ2VtZW50IyMubG91ZU91U291c0xvdWVBRGVzVGllcnM7XG4gICAgICB1c3VmcnVpdCA9IHBhcmVudF9vdV9hdXRyZV9vZl9qc29vIGxvZ2VtZW50IyMudXN1ZnJ1aXQ7XG4gICAgICBsb2dlbWVudF9kZWNlbnRfbDg5XzQ2MiA9IEpzLnRvX2Jvb2wgbG9nZW1lbnQjIy5sb2dlbWVudERlY2VudEw4OTQ2MjtcbiAgICAgIHN1cmZhY2VfbV9jYXJyZXMgPSBpbnRlZ2VyX29mX2ludCBsb2dlbWVudCMjLnN1cmZhY2VNQ2FycmVzO1xuICAgICAgem9uZSA9IHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb28gbG9nZW1lbnQjIy56b25lXG4gICAgfVxuXG5jbGFzcyB0eXBlIG1lbmFnZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwcmVzdGF0aW9uc1JlY3VlczpcbiAgICAgIHByZXN0YXRpb25fcmVjdWUgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9nZW1lbnQ6IGxvZ2VtZW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwZXJzb25uZXNBQ2hhcmdlOlxuICAgICAgcGVyc29ubmVfYV9jaGFyZ2UgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlQXV0cmVzT2NjdXBhbnRzTG9nZW1lbnQ6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkZhbWlsaWFsZTogc2l0dWF0aW9uX2ZhbWlsaWFsZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uZGl0aW9uUmF0dGFjaGVGb3llckZpc2NhbFBhcmVudElmaTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZW5mYW50QU5haXRyZUFwcmVzUXVhdHJpZW1lTW9pc0dyb3NzZXNzZTpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBlcnNvbm5lc0FnZWVzSGFuZGljYXBlZXNGb3llclI4NDQ0OiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2U6IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBtZW5hZ2VfdG9fanNvbyAobWVuYWdlIDogTWVuYWdlLnQpIDogbWVuYWdlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHByZXN0YXRpb25zUmVjdWVzID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBwcmVzdGF0aW9uX3JlY3VlX3RvX2pzb28geCkgbWVuYWdlLnByZXN0YXRpb25zX3JlY3Vlc1xuICAgICAgdmFsIGxvZ2VtZW50ID0gbG9nZW1lbnRfdG9fanNvbyBtZW5hZ2UubG9nZW1lbnRcbiAgICAgIHZhbCBwZXJzb25uZXNBQ2hhcmdlID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBwZXJzb25uZV9hX2NoYXJnZV90b19qc29vIHgpIG1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2VcbiAgICAgIHZhbCBub21icmVBdXRyZXNPY2N1cGFudHNMb2dlbWVudCA9XG4gICAgICAgIGludGVnZXJfdG9faW50IG1lbmFnZS5ub21icmVfYXV0cmVzX29jY3VwYW50c19sb2dlbWVudFxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZSA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfdG9fanNvbyBtZW5hZ2Uuc2l0dWF0aW9uX2ZhbWlsaWFsZVxuICAgICAgdmFsIGNvbmRpdGlvblJhdHRhY2hlRm95ZXJGaXNjYWxQYXJlbnRJZmkgPVxuICAgICAgICBKcy5ib29sIG1lbmFnZS5jb25kaXRpb25fcmF0dGFjaGVfZm95ZXJfZmlzY2FsX3BhcmVudF9pZmlcbiAgICAgIHZhbCBlbmZhbnRBTmFpdHJlQXByZXNRdWF0cmllbWVNb2lzR3Jvc3Nlc3NlID1cbiAgICAgICAgSnMuYm9vbCBtZW5hZ2UuZW5mYW50X2FfbmFpdHJlX2FwcmVzX3F1YXRyaWVtZV9tb2lzX2dyb3NzZXNzZVxuICAgICAgdmFsIHBlcnNvbm5lc0FnZWVzSGFuZGljYXBlZXNGb3llclI4NDQ0ID1cbiAgICAgICAgSnMuYm9vbCBtZW5hZ2UucGVyc29ubmVzX2FnZWVzX2hhbmRpY2FwZWVzX2ZveWVyX3I4NDRfNFxuICAgICAgdmFsIHJlc2lkZW5jZSA9IGNvbGxlY3Rpdml0ZV90b19qc29vIG1lbmFnZS5yZXNpZGVuY2VcbiAgICAgIGVuZFxuICBsZXQgbWVuYWdlX29mX2pzb28gKG1lbmFnZSA6IG1lbmFnZSBKcy50KSA6IE1lbmFnZS50ID1cbiAgICB7XG4gICAgICBwcmVzdGF0aW9uc19yZWN1ZXMgPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IHByZXN0YXRpb25fcmVjdWVfb2ZfanNvbyB4KSBAQCBKcy50b19hcnJheVxuICAgICAgICAgIG1lbmFnZSMjLnByZXN0YXRpb25zUmVjdWVzO1xuICAgICAgbG9nZW1lbnQgPSBsb2dlbWVudF9vZl9qc29vIG1lbmFnZSMjLmxvZ2VtZW50O1xuICAgICAgcGVyc29ubmVzX2FfY2hhcmdlID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBwZXJzb25uZV9hX2NoYXJnZV9vZl9qc29vIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgbWVuYWdlIyMucGVyc29ubmVzQUNoYXJnZTtcbiAgICAgIG5vbWJyZV9hdXRyZXNfb2NjdXBhbnRzX2xvZ2VtZW50ID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnQgbWVuYWdlIyMubm9tYnJlQXV0cmVzT2NjdXBhbnRzTG9nZW1lbnQ7XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9vZl9qc29vIG1lbmFnZSMjLnNpdHVhdGlvbkZhbWlsaWFsZTtcbiAgICAgIGNvbmRpdGlvbl9yYXR0YWNoZV9mb3llcl9maXNjYWxfcGFyZW50X2lmaSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbWVuYWdlIyMuY29uZGl0aW9uUmF0dGFjaGVGb3llckZpc2NhbFBhcmVudElmaTtcbiAgICAgIGVuZmFudF9hX25haXRyZV9hcHJlc19xdWF0cmllbWVfbW9pc19ncm9zc2Vzc2UgPVxuICAgICAgICBKcy50b19ib29sIG1lbmFnZSMjLmVuZmFudEFOYWl0cmVBcHJlc1F1YXRyaWVtZU1vaXNHcm9zc2Vzc2U7XG4gICAgICBwZXJzb25uZXNfYWdlZXNfaGFuZGljYXBlZXNfZm95ZXJfcjg0NF80ID1cbiAgICAgICAgSnMudG9fYm9vbCBtZW5hZ2UjIy5wZXJzb25uZXNBZ2Vlc0hhbmRpY2FwZWVzRm95ZXJSODQ0NDtcbiAgICAgIHJlc2lkZW5jZSA9IGNvbGxlY3Rpdml0ZV9vZl9qc29vIG1lbmFnZSMjLnJlc2lkZW5jZVxuICAgIH1cblxuY2xhc3MgdHlwZSBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtZW5hZ2VJbjogbWVuYWdlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkZW1hbmRldXJJbjogZGVtYW5kZXVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb25kaXRpb25Mb2dlbWVudFJlc2lkZW5jZVByaW5jaXBhbGVJbjpcbiAgICAgICh1bml0LCAgdW5pdCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICAgIG1ldGhvZCBjb25kaXRpb25Mb2dlbWVudFN1cmZhY2VJbjpcbiAgICAgICh1bml0LCAgdW5pdCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICAgIG1ldGhvZCBkYXRlRW50cmVlVmlndWV1ckRpZmZlcmVlQ2NoSW46XG4gICAgICAodW5pdCwgIHVuaXQgLT4gSnMuanNfc3RyaW5nIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luX3RvX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICA6IEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udClcbiAgICA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1lbmFnZUluID1cbiAgICAgICAgbWVuYWdlX3RvX2pzb28gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4ubWVuYWdlX2luXG4gICAgICB2YWwgZGVtYW5kZXVySW4gPVxuICAgICAgICBkZW1hbmRldXJfdG9fanNvbyBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5kZW1hbmRldXJfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICBtZXRob2QgY29uZGl0aW9uTG9nZW1lbnRSZXNpZGVuY2VQcmluY2lwYWxlSW4gPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IHVuaXQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlX2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgbWV0aG9kIGNvbmRpdGlvbkxvZ2VtZW50U3VyZmFjZUluID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiB1bml0KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgbWV0aG9kIGRhdGVFbnRyZWVWaWd1ZXVyRGlmZmVyZWVDY2hJbiA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogdW5pdCkgLT5cbiAgICAgICAgICBkYXRlX3RvX2pzb28gKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoX2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIG1lbmFnZV9pbiA9XG4gICAgICAgIG1lbmFnZV9vZl9qc29vIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMubWVuYWdlSW47XG4gICAgICBkZW1hbmRldXJfaW4gPVxuICAgICAgICBkZW1hbmRldXJfb2ZfanNvb1xuICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMuZGVtYW5kZXVySW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfaW4nIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIjtcbiAgICAgIGNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ2NvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCI7XG4gICAgICBkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbicgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtZW5hZ2VJbjogbWVuYWdlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkZW1hbmRldXJJbjogZGVtYW5kZXVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbl90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pblxuICAgIDogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udClcbiAgICA6IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5hZ2VJbiA9XG4gICAgICAgIG1lbmFnZV90b19qc29vIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5tZW5hZ2VfaW5cbiAgICAgIHZhbCBkZW1hbmRldXJJbiA9XG4gICAgICAgIGRlbWFuZGV1cl90b19qc29vIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5kZW1hbmRldXJfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgICAgIDogZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBtZW5hZ2VfaW4gPVxuICAgICAgICBtZW5hZ2Vfb2ZfanNvbyBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4jIy5tZW5hZ2VJbjtcbiAgICAgIGRlbWFuZGV1cl9pbiA9XG4gICAgICAgIGRlbWFuZGV1cl9vZl9qc29vXG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMuZGVtYW5kZXVySW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtZW5hZ2VJbjogbWVuYWdlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkZW1hbmRldXJJbjogZGVtYW5kZXVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiZW5lZmljaWVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbl90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gOiBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLnQpXG4gICAgOiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIG1lbmFnZUluID1cbiAgICAgICAgbWVuYWdlX3RvX2pzb28gZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5tZW5hZ2VfaW5cbiAgICAgIHZhbCBkZW1hbmRldXJJbiA9XG4gICAgICAgIGRlbWFuZGV1cl90b19qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uZGVtYW5kZXVyX2luXG4gICAgICB2YWwgYmVuZWZpY2llQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluID1cbiAgICAgICAgSnMuYm9vbCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLmJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgICAgIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5cbiAgICAgIDogZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiBKcy50KSA6XG4gICAgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIG1lbmFnZV9pbiA9XG4gICAgICAgIG1lbmFnZV9vZl9qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5tZW5hZ2VJbjtcbiAgICAgIGRlbWFuZGV1cl9pbiA9XG4gICAgICAgIGRlbWFuZGV1cl9vZl9qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5kZW1hbmRldXJJbjtcbiAgICAgIGJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pblxuICAgICAgICAgICMjLmJlbmVmaWNpZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJblxuICAgIH1cblxuY2xhc3MgdHlwZSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgaW5mb3JtYXRpb25zSW46XG4gICAgICBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlRW1tZW5hZ2VtZW50SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbWVuYWdlSW46IG1lbmFnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVySW46IGRlbWFuZGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVwZW5zZXNKdXN0aWZpZWVzUmVlbGxlbWVudEVuZ2FnZWVzSW46XG4gICAgICBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luX3RvX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luXG4gICAgOiBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi50KVxuICAgIDogZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGluZm9ybWF0aW9uc0luID1cbiAgICAgICAgaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudF90b19qc29vIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5pbmZvcm1hdGlvbnNfaW5cbiAgICAgIHZhbCBkYXRlRW1tZW5hZ2VtZW50SW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLmRhdGVfZW1tZW5hZ2VtZW50X2luXG4gICAgICB2YWwgbWVuYWdlSW4gPVxuICAgICAgICBtZW5hZ2VfdG9fanNvbyBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4ubWVuYWdlX2luXG4gICAgICB2YWwgZGVtYW5kZXVySW4gPVxuICAgICAgICBkZW1hbmRldXJfdG9fanNvbyBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uZGVtYW5kZXVyX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBkZXBlbnNlc0p1c3RpZmllZXNSZWVsbGVtZW50RW5nYWdlZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50X2VuZ2FnZWVzX2luXG4gICAgICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbl9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pblxuICAgICAgOiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gSnMudCkgOlxuICAgIEVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIGluZm9ybWF0aW9uc19pbiA9XG4gICAgICAgIGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRfb2ZfanNvb1xuICAgICAgICAgIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbiMjLmluZm9ybWF0aW9uc0luO1xuICAgICAgZGF0ZV9lbW1lbmFnZW1lbnRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4jIy5kYXRlRW1tZW5hZ2VtZW50SW47XG4gICAgICBtZW5hZ2VfaW4gPVxuICAgICAgICBtZW5hZ2Vfb2ZfanNvbyBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4jIy5tZW5hZ2VJbjtcbiAgICAgIGRlbWFuZGV1cl9pbiA9XG4gICAgICAgIGRlbWFuZGV1cl9vZl9qc29vIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbiMjLmRlbWFuZGV1ckluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGRlcGVuc2VzX2p1c3RpZmllZXNfcmVlbGxlbWVudF9lbmdhZ2Vlc19pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW5cbiAgICAgICAgICAjIy5kZXBlbnNlc0p1c3RpZmllZXNSZWVsbGVtZW50RW5nYWdlZXNJblxuICAgIH1cblxuY2xhc3MgdHlwZSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJlc3NvdXJjZXNEZW1hbmRldXJJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzQ29uam9pbnRJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwZXJzb25uZXNWaXZhbnRIYWJpdHVlbGxlbWVudEZveWVySW46XG4gICAgICBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVyRXhlcmNlQWN0aXZpdGVSZW11bmVyZWVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uam9pbnRFeGVyY2VBY3Rpdml0ZVJlbXVuZXJlZUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwZXJzb25uZXNBQ2hhcmdlSW46XG4gICAgICBwZXJzb25uZV9hX2NoYXJnZSBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVJbjogc2l0dWF0aW9uX2ZhbWlsaWFsZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbW9kZU9jY3VwYXRpb25JbjogbW9kZV9vY2N1cGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb25kaXRpb25BZ2VCb3Vyc2VFbnNlaWduZW1lbnRTdXBlcmlldXJJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRlbWFuZGV1clBvdXJzdWl0RGVzRXR1ZGVzSW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVEZW1hbmRlT3VSZWV4YW1lbkRyb2l0SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbEluOlxuICAgICAgcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0Jhc2VJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5fdG9fanNvb1xuICAgIChyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgOiBSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udClcbiAgICA6IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgcmVzc291cmNlc0RlbWFuZGV1ckluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4ucmVzc291cmNlc19kZW1hbmRldXJfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzQ29uam9pbnRJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLnJlc3NvdXJjZXNfY29uam9pbnRfaW5cbiAgICAgIHZhbCBwZXJzb25uZXNWaXZhbnRIYWJpdHVlbGxlbWVudEZveWVySW4gPVxuICAgICAgICBKcy5hcnJheSBAQCBBcnJheS5tYXAgKGZ1biB4IC0+IHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llcl90b19qc29vIHgpIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4ucGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl9pblxuICAgICAgdmFsIGRlbWFuZGV1ckV4ZXJjZUFjdGl2aXRlUmVtdW5lcmVlSW4gPVxuICAgICAgICBKcy5ib29sIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uZGVtYW5kZXVyX2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfaW5cbiAgICAgIHZhbCBjb25qb2ludEV4ZXJjZUFjdGl2aXRlUmVtdW5lcmVlSW4gPVxuICAgICAgICBKcy5ib29sIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pblxuICAgICAgdmFsIHBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIEpzLmFycmF5IEBAIEFycmF5Lm1hcCAoZnVuIHggLT4gcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvbyB4KSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLnBlcnNvbm5lc19hX2NoYXJnZV9pblxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZUluID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV90b19qc29vIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pblxuICAgICAgdmFsIG1vZGVPY2N1cGF0aW9uSW4gPVxuICAgICAgICBtb2RlX29jY3VwYXRpb25fdG9fanNvbyByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLm1vZGVfb2NjdXBhdGlvbl9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGNvbmRpdGlvbkFnZUJvdXJzZUVuc2VpZ25lbWVudFN1cGVyaWV1ckluID1cbiAgICAgICAgSnMuYm9vbCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXBlcmlldXJfaW5cbiAgICAgIHZhbCBkZW1hbmRldXJQb3Vyc3VpdERlc0V0dWRlc0luID1cbiAgICAgICAgSnMuYm9vbCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzX2luXG4gICAgICB2YWwgZGF0ZURlbWFuZGVPdVJlZXhhbWVuRHJvaXRJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmRhdGVfZGVtYW5kZV9vdV9yZWV4YW1lbl9kcm9pdF9pblxuICAgICAgdmFsIHBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWxJbiA9XG4gICAgICAgIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfdG9fanNvbyByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLnBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzQmFzZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW5cbiAgICAgIGVuZFxuICBsZXQgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICAgIDogcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiBKcy50KSA6XG4gICAgUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIHJlc3NvdXJjZXNfZGVtYW5kZXVyX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5yZXNzb3VyY2VzRGVtYW5kZXVySW47XG4gICAgICByZXNzb3VyY2VzX2NvbmpvaW50X2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5yZXNzb3VyY2VzQ29uam9pbnRJbjtcbiAgICAgIHBlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfaW4gPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llcl9vZl9qc29vIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLnBlcnNvbm5lc1ZpdmFudEhhYml0dWVsbGVtZW50Rm95ZXJJbjtcbiAgICAgIGRlbWFuZGV1cl9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICAgICAgICAjIy5kZW1hbmRldXJFeGVyY2VBY3Rpdml0ZVJlbXVuZXJlZUluO1xuICAgICAgY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICAgICAgIyMuY29uam9pbnRFeGVyY2VBY3Rpdml0ZVJlbXVuZXJlZUluO1xuICAgICAgcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBwZXJzb25uZV9hX2NoYXJnZV9vZl9qc29vIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiMjLnBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX29mX2pzb29cbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMuc2l0dWF0aW9uRmFtaWxpYWxlSW47XG4gICAgICBtb2RlX29jY3VwYXRpb25faW4gPVxuICAgICAgICBtb2RlX29jY3VwYXRpb25fb2ZfanNvb1xuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5tb2RlT2NjdXBhdGlvbkluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXBlcmlldXJfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLmNvbmRpdGlvbkFnZUJvdXJzZUVuc2VpZ25lbWVudFN1cGVyaWV1ckluO1xuICAgICAgZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXNfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLmRlbWFuZGV1clBvdXJzdWl0RGVzRXR1ZGVzSW47XG4gICAgICBkYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICAgICAgIyMuZGF0ZURlbWFuZGVPdVJlZXhhbWVuRHJvaXRJbjtcbiAgICAgIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfaW4gPVxuICAgICAgICBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX29mX2pzb29cbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICAgICAgIyMucGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbEluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLnJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNCYXNlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiA9XG4gIG9iamVjdCBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luX3RvX2pzb29cbiAgICAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgIDogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udClcbiAgICA6IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICBlbmRcbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICAgIChjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICA6IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCkgOlxuICAgIENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICAgICAgIyMuZGF0ZUNvdXJhbnRlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxveWVyUHJpbmNpcGFsQmFzZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzSW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW46IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluOlxuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHpvbmVJbjogem9uZV9kX2hhYml0YXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvZ2VtZW50RXN0Q2hhbWJyZUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhZ2Vlc091SGFuZGljYXBBZHVsdGVzSGViZXJnZWVzT25lcmV1eFBhcnRpY3VsaWVyc0luOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZUFpZGVJbjogdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29sb2NhdGlvbkluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2dlbWVudE1ldWJsZUQ4NDIySW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbG95ZXJQcmluY2lwYWxCYXNlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLmxveWVyX3ByaW5jaXBhbF9iYXNlX2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW5cbiAgICAgIHZhbCBiZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi56b25lX2luXG4gICAgICB2YWwgbG9nZW1lbnRFc3RDaGFtYnJlSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pblxuICAgICAgdmFsIGFnZWVzT3VIYW5kaWNhcEFkdWx0ZXNIZWJlcmdlZXNPbmVyZXV4UGFydGljdWxpZXJzSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pblxuICAgICAgdmFsIHR5cGVBaWRlSW4gPVxuICAgICAgICB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLnR5cGVfYWlkZV9pblxuICAgICAgdmFsIGNvbG9jYXRpb25JbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLmNvbG9jYXRpb25faW5cbiAgICAgIHZhbCByZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW5cbiAgICAgIHZhbCBsb2dlbWVudE1ldWJsZUQ4NDIySW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4ucmVzaWRlbmNlX2luXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudCkgOlxuICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4udCA9XG4gICAge1xuICAgICAgbG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMubG95ZXJQcmluY2lwYWxCYXNlSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZUFycm9uZGllc0luO1xuICAgICAgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLmJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXNJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5zaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjtcbiAgICAgIHpvbmVfaW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIyMuem9uZUluO1xuICAgICAgbG9nZW1lbnRfZXN0X2NoYW1icmVfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMubG9nZW1lbnRFc3RDaGFtYnJlSW47XG4gICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5hZ2Vlc091SGFuZGljYXBBZHVsdGVzSGViZXJnZWVzT25lcmV1eFBhcnRpY3VsaWVyc0luO1xuICAgICAgdHlwZV9haWRlX2luID1cbiAgICAgICAgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIyMudHlwZUFpZGVJbjtcbiAgICAgIGNvbG9jYXRpb25faW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIyMuY29sb2NhdGlvbkluO1xuICAgICAgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMucmVkdWN0aW9uTG95ZXJTb2xpZGFyaXRlSW47XG4gICAgICBsb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLmxvZ2VtZW50TWV1YmxlRDg0MjJJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIyMucmVzaWRlbmNlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb25kaXRpb24yRHU4MzIyNUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBuTm9tYnJlUGFydHNEODMyMjVJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbl90b19qc29vXG4gICAgKGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pblxuICAgIDogQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4udClcbiAgICA6IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luXG4gICAgICB2YWwgY29uZGl0aW9uMkR1ODMyMjVJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pblxuICAgICAgdmFsIG5Ob21icmVQYXJ0c0Q4MzIyNUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luX29mX2pzb29cbiAgICAoY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luXG4gICAgICA6IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbiBKcy50KSA6XG4gICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4jIy5yZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW47XG4gICAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICBKcy50b19ib29sIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbiMjLmNvbmRpdGlvbjJEdTgzMjI1SW47XG4gICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1X2luID1cbiAgICAgICAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4jIy5uTm9tYnJlUGFydHNEODMyMjVJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29uZGl0aW9uMkR1ODMyMjVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjpcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsaW1pdGF0aW9uTWFqb3JhdGlvblBlcnNvbm5lc0FDaGFyZ2VJbjpcbiAgICAgICh1bml0LCAgdW5pdCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbl90b19qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pblxuICAgIDogQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi50KVxuICAgIDogY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGNvbmRpdGlvbjJEdTgzMjI1SW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW5cbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pblxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfdG9fanNvbyBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4ucmVzaWRlbmNlX2luXG4gICAgICBtZXRob2QgbGltaXRhdGlvbk1ham9yYXRpb25QZXJzb25uZXNBQ2hhcmdlSW4gPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IHVuaXQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAoY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gXG4gICAgICAgICAgKFxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pblxuICAgICAgOiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4gSnMudCkgOlxuICAgIENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4udCA9XG4gICAge1xuICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID1cbiAgICAgICAgSnMudG9fYm9vbCBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4jIy5jb25kaXRpb24yRHU4MzIyNUluO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pblxuICAgICAgICAgICMjLnNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4jIy5yZXNpZGVuY2VJbjtcbiAgICAgIGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbicgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgdHlwZUxvZ2VtZW50Rm95ZXJJbjogdHlwZV9sb2dlbWVudF9mb3llciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvbnZlbnRpb25uZW1lbnRJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjpcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB6b25lSW46IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZWRldmFuY2VJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb25kaXRpb24yRHU4MzIyNUluOlxuICAgICAgKHVuaXQsICB1bml0IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIGxpbWl0YXRpb25NYWpvcmF0aW9uUGVyc29ubmVzQUNoYXJnZUluOlxuICAgICAgKHVuaXQsICB1bml0IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIG5Ob21icmVQYXJ0c0Q4MzIyNUluOlxuICAgICAgKHVuaXQsICB1bml0IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pblxuICAgIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4udClcbiAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgdHlwZUxvZ2VtZW50Rm95ZXJJbiA9XG4gICAgICAgIHR5cGVfbG9nZW1lbnRfZm95ZXJfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLnR5cGVfbG9nZW1lbnRfZm95ZXJfaW5cbiAgICAgIHZhbCBkYXRlQ29udmVudGlvbm5lbWVudEluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXG4gICAgICB2YWwgem9uZUluID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLnpvbmVfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCByZWRldmFuY2VJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLnJlZGV2YW5jZV9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5yZXNpZGVuY2VfaW5cbiAgICAgIG1ldGhvZCBjb25kaXRpb24yRHU4MzIyNUluID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiB1bml0KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgbWV0aG9kIGxpbWl0YXRpb25NYWpvcmF0aW9uUGVyc29ubmVzQUNoYXJnZUluID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiB1bml0KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBcbiAgICAgICAgICAoXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIG1ldGhvZCBuTm9tYnJlUGFydHNEODMyMjVJbiA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogdW5pdCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luX29mX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pblxuICAgICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luIEpzLnQpIDpcbiAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi50ID1cbiAgICB7XG4gICAgICB0eXBlX2xvZ2VtZW50X2ZveWVyX2luID1cbiAgICAgICAgdHlwZV9sb2dlbWVudF9mb3llcl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbiMjLnR5cGVMb2dlbWVudEZveWVySW47XG4gICAgICBkYXRlX2NvbnZlbnRpb25uZW1lbnRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luXG4gICAgICAgICAgIyMuZGF0ZUNvbnZlbnRpb25uZW1lbnRJbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZUFycm9uZGllc0luO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pblxuICAgICAgICAgICMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luXG4gICAgICAgICAgIyMuc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW47XG4gICAgICB6b25lX2luID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4jIy56b25lSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgcmVkZXZhbmNlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4jIy5yZWRldmFuY2VJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbiMjLnJlc2lkZW5jZUluO1xuICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ2NvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbicgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiO1xuICAgICAgbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX2luJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCI7XG4gICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1X2luID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4nIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjpcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbl90b19qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgIDogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi50KVxuICAgIDogY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vIGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luX29mX2pzb29cbiAgICAoY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICA6IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50KSA6XG4gICAgQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi50ID1cbiAgICB7XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5ub21icmVQZXJzb25uZXNBQ2hhcmdlSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1lbnN1YWxpdGVQcmluY2lwYWxlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW46XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZVRyYXZhdXhMb2dlbWVudEluOlxuICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVTaWduYXR1cmVQcmV0SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9jYWxIYWJpdGVQcmVtaWVyZUZvaXNCZW5lZmljaWFpcmVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUVudHJlZUxvZ2VtZW50SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29wcm9wcmlldGVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uUjgyMjExMTMxN0luOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB6b25lSW46IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0eXBlUHJldEluOiB0eXBlX3ByZXQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFuY2llbm5ldGVMb2dlbWVudEluOiBuZXVmX291X2FuY2llbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fdG9fanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50KVxuICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1lbnN1YWxpdGVQcmluY2lwYWxlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblxuICAgICAgdmFsIHR5cGVUcmF2YXV4TG9nZW1lbnRJbiA9XG4gICAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1X3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9pblxuICAgICAgdmFsIGRhdGVTaWduYXR1cmVQcmV0SW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmRhdGVfc2lnbmF0dXJlX3ByZXRfaW5cbiAgICAgIHZhbCBsb2NhbEhhYml0ZVByZW1pZXJlRm9pc0JlbmVmaWNpYWlyZUluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luXG4gICAgICB2YWwgZGF0ZUVudHJlZUxvZ2VtZW50SW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmRhdGVfZW50cmVlX2xvZ2VtZW50X2luXG4gICAgICB2YWwgY29wcm9wcmlldGVJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmNvcHJvcHJpZXRlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uUjgyMjExMTMxN0luID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi56b25lX2luXG4gICAgICB2YWwgdHlwZVByZXRJbiA9XG4gICAgICAgIHR5cGVfcHJldF90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi50eXBlX3ByZXRfaW5cbiAgICAgIHZhbCBhbmNpZW5uZXRlTG9nZW1lbnRJbiA9XG4gICAgICAgIG5ldWZfb3VfYW5jaWVuX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmFuY2llbm5ldGVfbG9nZW1lbnRfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fb2ZfanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQpIDpcbiAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udCA9XG4gICAge1xuICAgICAgbWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLm1lbnN1YWxpdGVQcmluY2lwYWxlSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZUFycm9uZGllc0luO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluO1xuICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2luID1cbiAgICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnR5cGVUcmF2YXV4TG9nZW1lbnRJbjtcbiAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5kYXRlU2lnbmF0dXJlUHJldEluO1xuICAgICAgbG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLmxvY2FsSGFiaXRlUHJlbWllcmVGb2lzQmVuZWZpY2lhaXJlSW47XG4gICAgICBkYXRlX2VudHJlZV9sb2dlbWVudF9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLmRhdGVFbnRyZWVMb2dlbWVudEluO1xuICAgICAgY29wcm9wcmlldGVfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuY29wcm9wcmlldGVJbjtcbiAgICAgIHNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnNpdHVhdGlvblI4MjIxMTEzMTdJbjtcbiAgICAgIHpvbmVfaW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIyMuem9uZUluO1xuICAgICAgdHlwZV9wcmV0X2luID1cbiAgICAgICAgdHlwZV9wcmV0X29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy50eXBlUHJldEluO1xuICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9pbiA9XG4gICAgICAgIG5ldWZfb3VfYW5jaWVuX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5hbmNpZW5uZXRlTG9nZW1lbnRJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5kYXRlQ291cmFudGVJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1vZGVPY2N1cGF0aW9uSW46IG1vZGVfb2NjdXBhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZUFpZGVJbjogdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZVNhbnNBcnJvbmRpSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlSW46IHNpdHVhdGlvbl9mYW1pbGlhbGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZUluOiB6b25lX2RfaGFiaXRhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pblxuICAgIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vZGVPY2N1cGF0aW9uSW4gPVxuICAgICAgICBtb2RlX29jY3VwYXRpb25fdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLm1vZGVfb2NjdXBhdGlvbl9pblxuICAgICAgdmFsIHR5cGVBaWRlSW4gPVxuICAgICAgICB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi50eXBlX2FpZGVfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlU2Fuc0Fycm9uZGlJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pblxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZUluID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pblxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pblxuICAgICAgdmFsIHpvbmVJbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi56b25lX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLnJlc2lkZW5jZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luX29mX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pblxuICAgICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIEpzLnQpIDpcbiAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udCA9XG4gICAge1xuICAgICAgbW9kZV9vY2N1cGF0aW9uX2luID1cbiAgICAgICAgbW9kZV9vY2N1cGF0aW9uX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMubW9kZU9jY3VwYXRpb25JbjtcbiAgICAgIHR5cGVfYWlkZV9pbiA9XG4gICAgICAgIHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4jIy50eXBlQWlkZUluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgICAgICAgICAjIy5yZXNzb3VyY2VzTWVuYWdlU2Fuc0Fycm9uZGlJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMuc2l0dWF0aW9uRmFtaWxpYWxlSW47XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgem9uZV9pbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMuem9uZUluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4jIy5yZXNpZGVuY2VJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxveWVyUHJpbmNpcGFsSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXNJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW46XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZUluOiB6b25lX2RfaGFiaXRhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9nZW1lbnRFc3RDaGFtYnJlSW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFnZWVzT3VIYW5kaWNhcEFkdWx0ZXNIZWJlcmdlZXNPbmVyZXV4UGFydGljdWxpZXJzSW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0eXBlQWlkZUluOiB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2xvY2F0aW9uSW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlZHVjdGlvbkxveWVyU29saWRhcml0ZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvZ2VtZW50TWV1YmxlRDg0MjJJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY2hhbmdlbWVudExvZ2VtZW50RDg0MjRJbjpcbiAgICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW5fdG9fanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4udClcbiAgICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbG95ZXJQcmluY2lwYWxJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLmxveWVyX3ByaW5jaXBhbF9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pblxuICAgICAgdmFsIGJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXNJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uem9uZV9pblxuICAgICAgdmFsIGxvZ2VtZW50RXN0Q2hhbWJyZUluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luXG4gICAgICB2YWwgYWdlZXNPdUhhbmRpY2FwQWR1bHRlc0hlYmVyZ2Vlc09uZXJldXhQYXJ0aWN1bGllcnNJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pblxuICAgICAgdmFsIHR5cGVBaWRlSW4gPVxuICAgICAgICB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi50eXBlX2FpZGVfaW5cbiAgICAgIHZhbCBjb2xvY2F0aW9uSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uY29sb2NhdGlvbl9pblxuICAgICAgdmFsIHJlZHVjdGlvbkxveWVyU29saWRhcml0ZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW5cbiAgICAgIHZhbCBsb2dlbWVudE1ldWJsZUQ4NDIySW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5yZXNpZGVuY2VfaW5cbiAgICAgIHZhbCBjaGFuZ2VtZW50TG9nZW1lbnREODQyNEluID1cbiAgICAgICAgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLmNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X2luXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW5fb2ZfanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudCkgOlxuICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi50ID1cbiAgICB7XG4gICAgICBsb3llcl9wcmluY2lwYWxfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLmxveWVyUHJpbmNpcGFsSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjtcbiAgICAgIGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc19pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMuYmVuZWZpY2lhaXJlQWlkZUFkdWx0ZU91RW5mYW50SGFuZGljYXBlc0luO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5zaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjtcbiAgICAgIHpvbmVfaW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnpvbmVJbjtcbiAgICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4jIy5sb2dlbWVudEVzdENoYW1icmVJbjtcbiAgICAgIGFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5hZ2Vlc091SGFuZGljYXBBZHVsdGVzSGViZXJnZWVzT25lcmV1eFBhcnRpY3VsaWVyc0luO1xuICAgICAgdHlwZV9haWRlX2luID1cbiAgICAgICAgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnR5cGVBaWRlSW47XG4gICAgICBjb2xvY2F0aW9uX2luID1cbiAgICAgICAgSnMudG9fYm9vbCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMuY29sb2NhdGlvbkluO1xuICAgICAgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnJlZHVjdGlvbkxveWVyU29saWRhcml0ZUluO1xuICAgICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMubG9nZW1lbnRNZXVibGVEODQyMkluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMucmVzaWRlbmNlSW47XG4gICAgICBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9pbiA9XG4gICAgICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMuY2hhbmdlbWVudExvZ2VtZW50RDg0MjRJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNCYXNlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjpcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB6b25lSW46IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtZW5zdWFsaXRlUHJpbmNpcGFsZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvblI4MjIxMTEzMTdJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZVNpZ25hdHVyZVByZXRJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0eXBlVHJhdmF1eExvZ2VtZW50SW46XG4gICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2NhbEhhYml0ZVByZW1pZXJlRm9pc0JlbmVmaWNpYWlyZUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlRW50cmVlTG9nZW1lbnRJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjaGFyZ2VzTWVuc3VlbGxlc1ByZXRJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb3Byb3ByaWV0ZUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBvcGVyYXRpb25zTG9nZW1lbnRFdm9sdXRpZnNTb2NpYXV4QWNjZXNzaW9uUHJvcHJpZXRlQWlkZWVFdGF0SW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fdG9fanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50KVxuICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzQmFzZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW5cbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uem9uZV9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5yZXNpZGVuY2VfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBtZW5zdWFsaXRlUHJpbmNpcGFsZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ubWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uUjgyMjExMTMxN0luID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luXG4gICAgICB2YWwgZGF0ZVNpZ25hdHVyZVByZXRJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmRhdGVfc2lnbmF0dXJlX3ByZXRfaW5cbiAgICAgIHZhbCB0eXBlVHJhdmF1eExvZ2VtZW50SW4gPVxuICAgICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81X3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi50eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW5cbiAgICAgIHZhbCBsb2NhbEhhYml0ZVByZW1pZXJlRm9pc0JlbmVmaWNpYWlyZUluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV9pblxuICAgICAgdmFsIGRhdGVFbnRyZWVMb2dlbWVudEluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW5cbiAgICAgIHZhbCBjaGFyZ2VzTWVuc3VlbGxlc1ByZXRJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmNoYXJnZXNfbWVuc3VlbGxlc19wcmV0X2luXG4gICAgICB2YWwgY29wcm9wcmlldGVJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5jb3Byb3ByaWV0ZV9pblxuICAgICAgdmFsIG9wZXJhdGlvbnNMb2dlbWVudEV2b2x1dGlmc1NvY2lhdXhBY2Nlc3Npb25Qcm9wcmlldGVBaWRlZUV0YXRJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5vcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmlldGVfYWlkZWVfRXRhdF9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luX29mX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQpIDpcbiAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50ID1cbiAgICB7XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZUFycm9uZGllc0Jhc2VJbjtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5ub21icmVQZXJzb25uZXNBQ2hhcmdlSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluO1xuICAgICAgem9uZV9pbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIyMuem9uZUluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIyMucmVzaWRlbmNlSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgbWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5tZW5zdWFsaXRlUHJpbmNpcGFsZUluO1xuICAgICAgc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnNpdHVhdGlvblI4MjIxMTEzMTdJbjtcbiAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuZGF0ZVNpZ25hdHVyZVByZXRJbjtcbiAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9pbiA9XG4gICAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy50eXBlVHJhdmF1eExvZ2VtZW50SW47XG4gICAgICBsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLmxvY2FsSGFiaXRlUHJlbWllcmVGb2lzQmVuZWZpY2lhaXJlSW47XG4gICAgICBkYXRlX2VudHJlZV9sb2dlbWVudF9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5kYXRlRW50cmVlTG9nZW1lbnRJbjtcbiAgICAgIGNoYXJnZXNfbWVuc3VlbGxlc19wcmV0X2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5jaGFyZ2VzTWVuc3VlbGxlc1ByZXRJbjtcbiAgICAgIGNvcHJvcHJpZXRlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4jIy5jb3Byb3ByaWV0ZUluO1xuICAgICAgb3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLm9wZXJhdGlvbnNMb2dlbWVudEV2b2x1dGlmc1NvY2lhdXhBY2Nlc3Npb25Qcm9wcmlldGVBaWRlZUV0YXRJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0eXBlTG9nZW1lbnRGb3llckluOiB0eXBlX2xvZ2VtZW50X2ZveWVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ29udmVudGlvbm5lbWVudEluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlZGV2YW5jZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW46IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluOlxuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHpvbmVJbjogem9uZV9kX2hhYml0YXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJEODQyMTZJbjpcbiAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnQpXG4gICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCB0eXBlTG9nZW1lbnRGb3llckluID1cbiAgICAgICAgdHlwZV9sb2dlbWVudF9mb3llcl90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLnR5cGVfbG9nZW1lbnRfZm95ZXJfaW5cbiAgICAgIHZhbCBkYXRlQ29udmVudGlvbm5lbWVudEluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLmRhdGVfY29udmVudGlvbm5lbWVudF9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4ucmVzaWRlbmNlX2luXG4gICAgICB2YWwgcmVkZXZhbmNlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4ucmVkZXZhbmNlX2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pblxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXG4gICAgICB2YWwgem9uZUluID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbi56b25lX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGNhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJEODQyMTZJbiA9XG4gICAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4uY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW5fb2ZfanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pblxuICAgICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiBKcy50KSA6XG4gICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi50ID1cbiAgICB7XG4gICAgICB0eXBlX2xvZ2VtZW50X2ZveWVyX2luID1cbiAgICAgICAgdHlwZV9sb2dlbWVudF9mb3llcl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy50eXBlTG9nZW1lbnRGb3llckluO1xuICAgICAgZGF0ZV9jb252ZW50aW9ubmVtZW50X2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy5kYXRlQ29udmVudGlvbm5lbWVudEluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiMjLnJlc2lkZW5jZUluO1xuICAgICAgcmVkZXZhbmNlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luIyMucmVkZXZhbmNlSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy5yZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW47XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiMjLnNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluO1xuICAgICAgem9uZV9pbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiMjLnpvbmVJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X2luID1cbiAgICAgICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luXG4gICAgICAgICAgIyMuY2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckQ4NDIxNkluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1vZGVPY2N1cGF0aW9uSW46IG1vZGVfb2NjdXBhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZVNhbnNBcnJvbmRpSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlSW46IHNpdHVhdGlvbl9mYW1pbGlhbGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZUluOiB6b25lX2RfaGFiaXRhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZUFpZGVJbjogdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbl90b19qc29vIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pblxuICAgIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4udCkgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtb2RlT2NjdXBhdGlvbkluID1cbiAgICAgICAgbW9kZV9vY2N1cGF0aW9uX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4ubW9kZV9vY2N1cGF0aW9uX2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZVNhbnNBcnJvbmRpSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4ucmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pblxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLnpvbmVfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgdHlwZUFpZGVJbiA9XG4gICAgICAgIHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi50eXBlX2FpZGVfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLnJlc2lkZW5jZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gSnMudCkgOlxuICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIG1vZGVfb2NjdXBhdGlvbl9pbiA9XG4gICAgICAgIG1vZGVfb2NjdXBhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5tb2RlT2NjdXBhdGlvbkluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMucmVzc291cmNlc01lbmFnZVNhbnNBcnJvbmRpSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5zaXR1YXRpb25GYW1pbGlhbGVJbjtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgem9uZV9pbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy56b25lSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICB0eXBlX2FpZGVfaW4gPVxuICAgICAgICB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiMjLnR5cGVBaWRlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiMjLnJlc2lkZW5jZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4gPVxuICBvYmplY3QgbWV0aG9kIGRhdGVOYWlzc2FuY2VBc3N1cmVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW5fdG9fanNvbyAob3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pblxuICAgIDogT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVJbi50KSA6IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZU5haXNzYW5jZUFzc3VyZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4uZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX2luXG4gICAgICBlbmRcbiAgbGV0IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW5fb2ZfanNvb1xuICAgIChvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luIDogb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbiBKcy50KSA6XG4gICAgT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX25haXNzYW5jZV9hc3N1cmVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbiMjLmRhdGVOYWlzc2FuY2VBc3N1cmVJblxuICAgIH1cblxuY2xhc3MgdHlwZSBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtb2RlT2NjdXBhdGlvbkluOiBtb2RlX29jY3VwYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFpZGVWZXJzZWVJbjogdmVyc2VtZW50X2EgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG1vbnRhbnRBcGxJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtb250YW50Q2hhcmdlc0luOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRlcGVuc2VMb2dlbWVudEluOiBkZXBlbnNlX2xvZ2VtZW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtb250YW50RGV0dGVJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luX3RvX2pzb28gKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luXG4gICAgOiBJbXBheWVEZXBlbnNlTG9nZW1lbnRJbi50KSA6IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vZGVPY2N1cGF0aW9uSW4gPVxuICAgICAgICBtb2RlX29jY3VwYXRpb25fdG9fanNvbyBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5tb2RlX29jY3VwYXRpb25faW5cbiAgICAgIHZhbCBhaWRlVmVyc2VlSW4gPVxuICAgICAgICB2ZXJzZW1lbnRfYV90b19qc29vIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luLmFpZGVfdmVyc2VlX2luXG4gICAgICB2YWwgbW9udGFudEFwbEluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luLm1vbnRhbnRfYXBsX2luXG4gICAgICB2YWwgbW9udGFudENoYXJnZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5tb250YW50X2NoYXJnZXNfaW5cbiAgICAgIHZhbCBkZXBlbnNlTG9nZW1lbnRJbiA9XG4gICAgICAgIGRlcGVuc2VfbG9nZW1lbnRfdG9fanNvbyBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5kZXBlbnNlX2xvZ2VtZW50X2luXG4gICAgICB2YWwgbW9udGFudERldHRlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4ubW9udGFudF9kZXR0ZV9pblxuICAgICAgZW5kXG4gIGxldCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIDogaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4gSnMudCkgOlxuICAgIEltcGF5ZURlcGVuc2VMb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIG1vZGVfb2NjdXBhdGlvbl9pbiA9XG4gICAgICAgIG1vZGVfb2NjdXBhdGlvbl9vZl9qc29vIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIyMubW9kZU9jY3VwYXRpb25JbjtcbiAgICAgIGFpZGVfdmVyc2VlX2luID1cbiAgICAgICAgdmVyc2VtZW50X2Ffb2ZfanNvbyBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiMjLmFpZGVWZXJzZWVJbjtcbiAgICAgIG1vbnRhbnRfYXBsX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIyMubW9udGFudEFwbEluO1xuICAgICAgbW9udGFudF9jaGFyZ2VzX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIyMubW9udGFudENoYXJnZXNJbjtcbiAgICAgIGRlcGVuc2VfbG9nZW1lbnRfaW4gPVxuICAgICAgICBkZXBlbnNlX2xvZ2VtZW50X29mX2pzb29cbiAgICAgICAgICBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiMjLmRlcGVuc2VMb2dlbWVudEluO1xuICAgICAgbW9udGFudF9kZXR0ZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiMjLm1vbnRhbnREZXR0ZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgbWVuYWdlSW46IG1lbmFnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVySW46IGRlbWFuZGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZVByaXNlc0VuQ29tcHRlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luX3RvX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiA6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi50KVxuICAgIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5hZ2VJbiA9IG1lbmFnZV90b19qc29vIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4ubWVuYWdlX2luXG4gICAgICB2YWwgZGVtYW5kZXVySW4gPVxuICAgICAgICBkZW1hbmRldXJfdG9fanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luLmRlbWFuZGV1cl9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VQcmlzZXNFbkNvbXB0ZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4ucmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luX29mX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gSnMudCkgOlxuICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBtZW5hZ2VfaW4gPSBtZW5hZ2Vfb2ZfanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luIyMubWVuYWdlSW47XG4gICAgICBkZW1hbmRldXJfaW4gPVxuICAgICAgICBkZW1hbmRldXJfb2ZfanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luIyMuZGVtYW5kZXVySW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiMjLnJlc3NvdXJjZXNNZW5hZ2VQcmlzZXNFbkNvbXB0ZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgbWVuYWdlSW46IG1lbmFnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVySW46IGRlbWFuZGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZVByaXNlc0VuQ29tcHRlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luX3RvX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pblxuICAgIDogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi50KVxuICAgIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5hZ2VJbiA9XG4gICAgICAgIG1lbmFnZV90b19qc29vIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4ubWVuYWdlX2luXG4gICAgICB2YWwgZGVtYW5kZXVySW4gPVxuICAgICAgICBkZW1hbmRldXJfdG9fanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luLmRlbWFuZGV1cl9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VQcmlzZXNFbkNvbXB0ZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4ucmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luX29mX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pblxuICAgICAgOiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIEpzLnQpIDpcbiAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLnQgPVxuICAgIHtcbiAgICAgIG1lbmFnZV9pbiA9XG4gICAgICAgIG1lbmFnZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiMjLm1lbmFnZUluO1xuICAgICAgZGVtYW5kZXVyX2luID1cbiAgICAgICAgZGVtYW5kZXVyX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIyMuZGVtYW5kZXVySW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZVByaXNlc0VuQ29tcHRlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA9XG4gIG9iamVjdCBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgIDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpXG4gICAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpIDpcbiAgICBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5kYXRlQ291cmFudGVJblxuICAgIH1cblxuY2xhc3MgdHlwZSB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZU5haXNzYW5jZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFubmVlc0luOiBSdW50aW1lX2pzb28uUnVudGltZS5kdXJhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5fdG9fanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5cbiAgICA6IFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi50KVxuICAgIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVOYWlzc2FuY2VJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uZGF0ZV9uYWlzc2FuY2VfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGFubmVlc0luID1cbiAgICAgICAgZHVyYXRpb25fdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uYW5uZWVzX2luXG4gICAgICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbl9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pblxuICAgICAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gSnMudCkgOlxuICAgIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX25haXNzYW5jZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiMjLmRhdGVOYWlzc2FuY2VJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBhbm5lZXNfaW4gPVxuICAgICAgICBkdXJhdGlvbl9vZl9qc29vIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiMjLmFubmVlc0luXG4gICAgfVxuXG5jbGFzcyB0eXBlIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZU5haXNzYW5jZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFubmVlc0luOiBSdW50aW1lX2pzb28uUnVudGltZS5kdXJhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luX3RvX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiA6IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi50KVxuICAgIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlTmFpc3NhbmNlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5kYXRlX25haXNzYW5jZV9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGFubmVlc0luID1cbiAgICAgICAgZHVyYXRpb25fdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLmFubmVlc19pblxuICAgICAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luX29mX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gSnMudCkgOlxuICAgIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX25haXNzYW5jZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIyMuZGF0ZU5haXNzYW5jZUluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBhbm5lZXNfaW4gPSBkdXJhdGlvbl9vZl9qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4jIy5hbm5lZXNJblxuICAgIH1cblxuY2xhc3MgdHlwZSBzbWljX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgc21pY19pbl90b19qc29vIChzbWljX2luIDogU21pY0luLnQpIDogc21pY19pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9IGRhdGVfdG9fanNvbyBzbWljX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9IGNvbGxlY3Rpdml0ZV90b19qc29vIHNtaWNfaW4ucmVzaWRlbmNlX2luXG4gICAgICBlbmRcbiAgbGV0IHNtaWNfaW5fb2ZfanNvbyAoc21pY19pbiA6IHNtaWNfaW4gSnMudCkgOiBTbWljSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9IGRhdGVfb2ZfanNvbyBzbWljX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPSBjb2xsZWN0aXZpdGVfb2ZfanNvbyBzbWljX2luIyMucmVzaWRlbmNlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwcmVzdGF0aW9uQ291cmFudGVJbjpcbiAgICAgIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWdlTDUxMjMySW46XG4gICAgICAodW5pdCwgIHVuaXQgLT4gUnVudGltZV9qc29vLlJ1bnRpbWUuZHVyYXRpb24gSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICA6IEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4udClcbiAgICA6IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgcHJlc3RhdGlvbkNvdXJhbnRlSW4gPVxuICAgICAgICBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvbyBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLnByZXN0YXRpb25fY291cmFudGVfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4ucmVzaWRlbmNlX2luXG4gICAgICBtZXRob2QgYWdlTDUxMjMySW4gPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IHVuaXQpIC0+XG4gICAgICAgICAgZHVyYXRpb25fdG9fanNvbyAoZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5hZ2VfbDUxMl8zXzJfaW4gXG4gICAgICAgICAgKFxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICA6IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCkgOlxuICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBwcmVzdGF0aW9uX2NvdXJhbnRlX2luID1cbiAgICAgICAgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIyMucHJlc3RhdGlvbkNvdXJhbnRlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvb1xuICAgICAgICAgIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5yZXNpZGVuY2VJbjtcbiAgICAgIGFnZV9sNTEyXzNfMl9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdhZ2VfbDUxMl8zXzJfaW4nIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuXG5cblxubGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgKGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gOiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQpXG4gIDogY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50ID1cbiAgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICB8PiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luX29mX2pzb29cbiAgfD4gY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICB8PiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXG4gIChjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4gOiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4gSnMudClcbiAgOiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgSnMudCA9XG4gIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pblxuICB8PiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcbiAgfD4gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyXG4gIChjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4gOiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4gSnMudClcbiAgOiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXIgSnMudCA9XG4gIGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pblxuICB8PiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJcbiAgfD4gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlXG4gIChjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gOiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gSnMudClcbiAgOiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUgSnMudCA9XG4gIGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICB8PiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgfD4gY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX3RvX2pzb29cblxuXG5sZXQgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZVxuICAob3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbiA6IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4gSnMudClcbiAgOiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlIEpzLnQgPVxuICBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luXG4gIHw+IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW5fb2ZfanNvb1xuICB8PiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlXG4gIHw+IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfdG9fanNvb1xuXG5cbmxldCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudFxuICAoaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4gOiBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiBKcy50KVxuICA6IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IEpzLnQgPVxuICBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pblxuICB8PiBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50XG4gIHw+IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA6IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudClcbiAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gIHw+IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICB8PiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gIHw+IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuXG5cbmxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FcbiAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiBKcy50KVxuICA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSBKcy50ID1cbiAgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbl9vZl9qc29vXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICB8PiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfdG9fanNvb1xuXG5cbmxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hXG4gICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiBKcy50KVxuICA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgSnMudCA9XG4gIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW5cbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbl9vZl9qc29vXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FcbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV90b19qc29vXG5cblxubGV0IHNtaWMgKHNtaWNfaW4gOiBzbWljX2luIEpzLnQpXG4gIDogc21pYyBKcy50ID1cbiAgc21pY19pbiB8PiBzbWljX2luX29mX2pzb28gfD4gc21pYyB8PiBzbWljX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmXG4gIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudClcbiAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYgSnMudCA9XG4gIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZcbiAgfD4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llclxuICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbiA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4gSnMudClcbiAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIEpzLnQgPVxuICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50KVxuICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50ID1cbiAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfdG9fanNvb1xuXG5cbmxldCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gIChyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIDogcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiBKcy50KVxuICA6IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCA9XG4gIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgfD4gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgfD4gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF90b19qc29vXG5cblxubGV0IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgKGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gOiBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpXG4gIDogZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pblxuICB8PiBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgfD4gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICB8PiBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZlxuICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudClcbiAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmIEpzLnQgPVxuICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llclxuICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4gOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiBKcy50KVxuICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIEpzLnQgPVxuICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pblxuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gSnMudClcbiAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIEpzLnQgPVxuICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50KVxuICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCA9XG4gIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgfD4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRcbiAgfD4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF90b19qc29vXG5cblxubGV0IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gIChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQpXG4gIDogZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCA9XG4gIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gIHw+IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luX29mX2pzb29cbiAgfD4gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgfD4gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiBKcy50KVxuICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQgPVxuICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pblxuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50XG4gIChlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gOiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gSnMudClcbiAgOiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQgSnMudCA9XG4gIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pblxuICB8PiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW5fb2ZfanNvb1xuICB8PiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgfD4gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAoZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiA6IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gSnMudClcbiAgOiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQgPVxuICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luXG4gIHw+IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fb2ZfanNvb1xuICB8PiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gIHw+IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fanNvb1xuXG5cbmxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRcbiAgKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiA6IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50KVxuICA6IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCBKcy50ID1cbiAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luXG4gIHw+IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICB8PiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50XG4gIChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiBKcy50KVxuICA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQgSnMudCA9XG4gIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW5cbiAgfD4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRcbiAgfD4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF90b19qc29vXG5cblxubGV0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVcbiAgKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gOiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIEpzLnQpXG4gIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZSBKcy50ID1cbiAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pblxuICB8PiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luX29mX2pzb29cbiAgfD4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZVxuICB8PiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX3RvX2pzb29cblxuXG5sZXQgXyA9XG4gICBKcy5leHBvcnQgXCJBaWRlc0xvZ2VtZW50TGliXCJcbiAgICAob2JqZWN0JWpzXG4gICAgICBcbiAgICAgIG1ldGhvZCBjb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQgOiAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiBKcy50IC0+IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZSA6IChjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4gSnMudCAtPiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIgOiAoY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIEpzLnQgLT4gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlIDogKGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50IC0+IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICBcbiAgICAgIG1ldGhvZCBvdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZSA6IChvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luIEpzLnQgLT4gb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZVxuICAgICAgXG4gICAgICBtZXRob2QgaW1wYXllRGVwZW5zZUxvZ2VtZW50IDogKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIEpzLnQgLT4gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBiYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzIDogKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCAtPiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICBcbiAgICAgIG1ldGhvZCB2ZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBIDogKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiBKcy50IC0+IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hXG4gICAgICBcbiAgICAgIG1ldGhvZCB2ZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBIDogKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gSnMudCAtPiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hXG4gICAgICBcbiAgICAgIG1ldGhvZCBzbWljIDogKHNtaWNfaW4gSnMudCAtPiBzbWljIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBzbWljXG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZiA6IChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudCAtPiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZlxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyIDogKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4gSnMudCAtPiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyXG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlIDogKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50IC0+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2tcbiAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICBcbiAgICAgIG1ldGhvZCByZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50IDogKHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCAtPiByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBlbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcyA6IChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgLT4gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZiA6IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIEpzLnQgLT4gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZiBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZlxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIgOiAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4gSnMudCAtPiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZSA6IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQgLT4gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCA6IChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIEpzLnQgLT4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgZWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQgOiAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCAtPiBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudCA6IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiBKcy50IC0+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgZWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50IDogKGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbiBKcy50IC0+IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBlbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudCA6IChlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIEpzLnQgLT4gZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgZWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50IDogKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50IC0+IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50IDogKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gSnMudCAtPiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50IEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZSA6IChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIEpzLnQgLT4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZVxuICAgICAgXG4gICAgZW5kKSIsIigqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBGcmVuY2ggbGF3IGxpYnJhcnksIGEgY29sbGVjdGlvbiBvZiBmdW5jdGlvbnMgZm9yXG4gICBjb21wdXRpbmcgRnJlbmNoIHRheGVzIGFuZCBiZW5lZml0cyBkZXJpdmVkIGZyb20gQ2F0YWxhIHByb2dyYW1zLiBDb3B5cmlnaHRcbiAgIChDKSAyMDIxIElucmlhLCBjb250cmlidXRvcjogRGVuaXMgTWVyaWdvdXggPGRlbmlzLm1lcmlnb3V4QGlucmlhLmZyPiwgRW1pbGVcbiAgIFJvbGxleSA8ZW1pbGUucm9sbGV5QHR1dGEuaW8+XG5cbiAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90XG4gICB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZlxuICAgdGhlIExpY2Vuc2UgYXRcblxuICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVFxuICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlXG4gICBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlclxuICAgdGhlIExpY2Vuc2UuICopXG5cbm9wZW4gSnNfb2Zfb2NhbWxcbm9wZW4gTGF3X3NvdXJjZVxub3BlbiBSdW50aW1lX2pzb28uUnVudGltZVxubW9kdWxlIEFGID0gQWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xubW9kdWxlIEFGX3dlYiA9IEFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfYXBpX3dlYlxubW9kdWxlIEFMID0gQWlkZXNfbG9nZW1lbnRcbm1vZHVsZSBBTF93ZWIgPSBBaWRlc19sb2dlbWVudF9hcGlfd2ViXG5cbmxldCBfID1cbiAgSnMuZXhwb3J0X2FsbFxuICAgIChvYmplY3QlanNcbiAgICAgICB2YWwgZXZlbnRzTWFuYWdlciA9IGV2ZW50X21hbmFnZXJcblxuICAgICAgIG1ldGhvZCBjb21wdXRlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXG4gICAgICAgICAgIDogKEFGX3dlYi5pbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiAtPiBmbG9hdCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICAgSnMud3JhcF9jYWxsYmFjayAoZnVuIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIC0+XG4gICAgICAgICAgICAgZXhlY3V0ZV9vcl90aHJvd19lcnJvciAoZnVuICgpIC0+XG4gICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICAgICAgICAgICAgICAgfD4gQUZfd2ViLmludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIHJlc3VsdCMjLmlNb250YW50VmVyc2UpKVxuXG4gICAgICAgbWV0aG9kIGNvbXB1dGVBaWRlc0F1TG9nZW1lbnRcbiAgICAgICAgICAgOiAoQUxfd2ViLmNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gLT4gZmxvYXQpXG4gICAgICAgICAgICAgSnMuY2FsbGJhY2sgPVxuICAgICAgICAgSnMud3JhcF9jYWxsYmFjayAoZnVuIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gLT5cbiAgICAgICAgICAgICBleGVjdXRlX29yX3Rocm93X2Vycm9yIChmdW4gKCkgLT5cbiAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9XG4gICAgICAgICAgICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pblxuICAgICAgICAgICAgICAgICAgIHw+IEFMX3dlYi5jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIHJlc3VsdCMjLmFpZGVGaW5hbGUpKVxuICAgIGVuZClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogRW5zdXJlIHRoYXQgW2F0X2V4aXRdIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGF0IHRoZSBlbmQgb2YgZXZlcnkgcHJvZ3JhbSAqKVxuXG5sZXQgXyA9IGRvX2F0X2V4aXQoKVxuIl19 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJhcGlfd2ViLmJjLmpzIiwic291cmNlUm9vdCI6IiIsIm5hbWVzIjpbIk9iamVjdCIsImdsb2JhbFRoaXMiLCJ0aGlzIiwiZ2V0IiwiX1RfIiwiZ2xvYmFsIiwic2VsZiIsImNhbWxfaW50NjRfaXNfemVybyIsIngiLCJjYW1sX3N0cl9yZXBlYXQiLCJuIiwicyIsInIiLCJsIiwiY2FtbF9pbnQ2NF9vZmZzZXQiLCJNYXRoIiwiY2FtbF9yYWlzZV9jb25zdGFudCIsInRhZyIsImNhbWxfZ2xvYmFsX2RhdGEiLCJjYW1sX3JhaXNlX3plcm9fZGl2aWRlIiwiTWxJbnQ2NCIsImxvIiwibWkiLCJoaSIsInhoaSIsImgiLCJzaWduIiwib2Zmc2V0IiwibW9kdWx1cyIsImRpdmlzb3IiLCJxdW90aWVudCIsInkiLCJxIiwiY2FtbF9pbnQ2NF9vZl9pbnQzMiIsImNhbWxfaW50NjRfdG9faW50MzIiLCJjYW1sX2ludDY0X2lzX25lZ2F0aXZlIiwiY2FtbF9pbnQ2NF9uZWciLCJjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMiLCJhIiwiaSIsImxlbiIsImYiLCJTdHJpbmciLCJudWxsIiwiY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyIsImNhbWxfanNieXRlc19vZl9zdHJpbmciLCJjYW1sX3JhaXNlX3dpdGhfYXJnIiwiYXJnIiwianNvb19pc19hc2NpaSIsImNhbWxfdXRmMTZfb2ZfdXRmOCIsImIiLCJ0IiwiYyIsImMxIiwiYzIiLCJ2IiwiaiIsIk1sQnl0ZXMiLCJjb250ZW50cyIsImxlbmd0aCIsImNvbnRlbnQiLCJjYW1sX2J5dGVzX29mX2pzYnl0ZXMiLCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzIiwiY2FtbF9yYWlzZV93aXRoX3N0cmluZyIsIm1zZyIsImNhbWxfaW52YWxpZF9hcmd1bWVudCIsImNhbWxfcGFyc2VfZm9ybWF0IiwiZm10IiwiY2FtbF9maW5pc2hfZm9ybWF0dGluZyIsInJhd2J1ZmZlciIsImJ1ZmZlciIsImNhbWxfaW50NjRfZm9ybWF0Iiwid2Jhc2UiLCJjdnRibCIsInAiLCJjYW1sX2V4cG0xX2Zsb2F0IiwiY2FtbF9tbF9jb25kaXRpb25fYnJvYWRjYXN0IiwiY2FtbF9qc3N0cmluZ19vZl9zdHJpbmciLCJmc19ub2RlX3N1cHBvcnRlZCIsIm1ha2VfcGF0aF9pc19hYnNvbHV0ZSIsInBvc2l4IiwicGF0aCIsIndpbjMyIiwic3BsaXREZXZpY2VSZSIsInJlc3VsdCIsImRldmljZSIsImlzVW5jIiwiQm9vbGVhbiIsInJvb3QiLCJzZXAiLCJwYXRoX2lzX2Fic29sdXRlIiwiY2FtbF90cmFpbGluZ19zbGFzaCIsIm5hbWUiLCJjYW1sX2N1cnJlbnRfZGlyIiwiY2FtbF9tYWtlX3BhdGgiLCJjb21wMCIsImNvbXAiLCJuY29tcCIsImNhbWxfdXRmOF9vZl91dGYxNiIsImQiLCJjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nIiwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmciLCJ1bml4X2Vycm9yIiwibWFrZV91bml4X2Vycl9hcmdzIiwiY29kZSIsInN5c2NhbGwiLCJlcnJubyIsInZhcmlhbnQiLCJhcmdzIiwiY2FtbF9uYW1lZF92YWx1ZXMiLCJjYW1sX25hbWVkX3ZhbHVlIiwibm0iLCJjYW1sX3JhaXNlX3dpdGhfYXJncyIsImNhbWxfaXNfbWxfYnl0ZXMiLCJjYW1sX2lzX21sX3N0cmluZyIsImNhbWxfYnl0ZXNfb2ZfYXJyYXkiLCJVaW50OEFycmF5IiwiY2FtbF9ieXRlc19vZl9zdHJpbmciLCJjYW1sX3JhaXNlX3N5c19lcnJvciIsImNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlIiwiY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IiwiY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyIsImNhbWxfY3JlYXRlX2J5dGVzIiwiY2FtbF9tbF9ieXRlc19sZW5ndGgiLCJjYW1sX2JsaXRfYnl0ZXMiLCJzMSIsImkxIiwiczIiLCJpMiIsIk1sRmlsZSIsIk1sRmFrZUZpbGUiLCJvbGQiLCJidWYiLCJwb3MiLCJjbGVuIiwibmV3X3N0ciIsIm9sZF9kYXRhIiwiZGF0YSIsIk1sRmFrZUZkIiwiZmlsZSIsImZsYWdzIiwidW5kZWZpbmVkIiwiTWxGYWtlRGV2aWNlIiwicmVzIiwiU3ltYm9sIiwibmFtZV9zbGFzaCIsIm1vZGUiLCJyYWlzZV91bml4IiwicGFyZW50IiwiUmVnRXhwIiwic2VlbiIsIm0iLCJlbnRyeSIsIm9rIiwiQXJyYXkiLCJieXRlcyIsImNhbWxfbWxfc3RyaW5nX2xlbmd0aCIsImNhbWxfYnl0ZXNfdW5zYWZlX2dldCIsImNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQiLCJjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyIsImNhbWxfYnl0ZXNfYm91bmRfZXJyb3IiLCJjYW1sX2J5dGVzX3Vuc2FmZV9zZXQiLCJjYW1sX2J5dGVzX3NldCIsIk1sTm9kZUZkIiwiZmQiLCJyZXF1aXJlIiwiZXJyIiwiYnVmX29mZnNldCIsInJlYWQiLCJNbE5vZGVEZXZpY2UiLCJjb25zdHMiLCJrZXkiLCJpc0NoYXJhY3RlckRldmljZSIsIm8iLCJqc19zdGF0cyIsInRvX2RpciIsInRhcmdldCIsImxpbmsiLCJmaWxlX2tpbmQiLCJjYW1sX2dldF9yb290IiwiY2FtbF9mYWlsd2l0aCIsImNhbWxfcm9vdCIsImpzb29fbW91bnRfcG9pbnQiLCJyZXNvbHZlX2ZzX2RldmljZSIsImNhbWxfc3lzX2lzX2RpcmVjdG9yeSIsImNhbWxfcmFpc2Vfbm90X2ZvdW5kIiwiY2FtbF9zeXNfZ2V0ZW52IiwicHJvY2VzcyIsInNoaWZ0X3JpZ2h0X25hdCIsIm5hdDEiLCJvZnMxIiwibGVuMSIsIm5hdDIiLCJvZnMyIiwibmJpdHMiLCJ3cmFwIiwiY2FtbF9ncl9zdGF0ZSIsImNhbWxfZ3Jfc3RhdGVfZ2V0IiwiY2FtbF9ncl9wb2ludF9jb2xvciIsImltIiwiTWxPYmplY3RUYWJsZSIsIk5haXZlTG9va3VwIiwib2JqcyIsImNhbWxfc3lzX3JlbmFtZSIsIm9fcm9vdCIsIm5fcm9vdCIsImNhbWxfbG9nMTBfZmxvYXQiLCJjYW1sX3J1bnRpbWVfd2FybmluZ3MiLCJjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIiwiYm9vbCIsImNhbWxfY2xhc3NpZnlfZmxvYXQiLCJpc0Zpbml0ZSIsImlzTmFOIiwiY2FtbF9tbF9jaGFubmVscyIsImNhbWxfcmVmaWxsIiwiY2hhbiIsInN0ciIsInN0cl9hIiwibnJlYWQiLCJjYW1sX2FycmF5X2JvdW5kX2Vycm9yIiwiY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmUiLCJjaGFuaWQiLCJwcmV2X21heCIsImNhbWxfZ2NfbWlub3IiLCJ1bml0IiwiYmlnSW50IiwiQkFTRSIsIkxPR19CQVNFIiwiTUFYX0lOVCIsIk1BWF9JTlRfQVJSIiwic21hbGxUb0FycmF5IiwiREVGQVVMVF9BTFBIQUJFVCIsIkJpZ0ludCIsImpvb19nbG9iYWxfb2JqZWN0Iiwic3VwcG9ydHNOYXRpdmVCaWdJbnQiLCJJbnRlZ2VyIiwicmFkaXgiLCJhbHBoYWJldCIsImNhc2VTZW5zaXRpdmUiLCJwYXJzZVZhbHVlIiwicGFyc2VCYXNlIiwiQmlnSW50ZWdlciIsInZhbHVlIiwiU21hbGxJbnRlZ2VyIiwiTmF0aXZlQmlnSW50IiwiaXNQcmVjaXNlIiwiYXJyYXlUb1NtYWxsIiwiYXJyIiwidHJpbSIsImNvbXBhcmVBYnMiLCJjcmVhdGVBcnJheSIsInRydW5jYXRlIiwiYWRkIiwibF9hIiwibF9iIiwiY2FycnkiLCJiYXNlIiwic3VtIiwiYWRkQW55IiwiYWRkU21hbGwiLCJzdWJ0cmFjdCIsImFfbCIsImJfbCIsImJvcnJvdyIsImRpZmZlcmVuY2UiLCJzdWJ0cmFjdEFueSIsInN1YnRyYWN0U21hbGwiLCJzbWFsbCIsIm11bHRpcGx5TG9uZyIsInByb2R1Y3QiLCJhX2kiLCJiX2oiLCJtdWx0aXBseVNtYWxsIiwic2hpZnRMZWZ0IiwibXVsdGlwbHlLYXJhdHN1YmEiLCJhYyIsImJkIiwiYWJjZCIsInVzZUthcmF0c3ViYSIsImwxIiwibDIiLCJhYnMiLCJtdWx0aXBseVNtYWxsQW5kQXJyYXkiLCJzcXVhcmUiLCJhX2oiLCJkaXZNb2QxIiwiZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0IiwibGFtYmRhIiwicmVtYWluZGVyIiwicXVvdGllbnREaWdpdCIsInNoaWZ0IiwiZGl2TW9kU21hbGwiLCJkaXZNb2QyIiwicGFydCIsImd1ZXNzIiwieGxlbiIsImhpZ2h4IiwiaGlnaHkiLCJjaGVjayIsImRpdk1vZEFueSIsIkVycm9yIiwiY29tcGFyaXNvbiIsInFTaWduIiwibW9kIiwibVNpZ24iLCJfMCIsIl8xIiwiXzIiLCJleHAiLCJJbmZpbml0eSIsImlzQmFzaWNQcmltZSIsIm1pbGxlclJhYmluVGVzdCIsIm5QcmV2Iiwic3RyaWN0IiwiaXNQcmltZSIsImJpdHMiLCJsb2dOIiwiaXRlcmF0aW9ucyIsIm5ld1QiLCJuZXdSIiwibGFzdFQiLCJsYXN0UiIsInBvd2Vyc09mVHdvIiwicG93ZXJzMkxlbmd0aCIsImhpZ2hlc3RQb3dlcjIiLCJzaGlmdF9pc1NtYWxsIiwicmVtUXVvIiwiYml0d2lzZSIsImZuIiwieFNpZ24iLCJ5U2lnbiIsInhSZW0iLCJ5UmVtIiwieERpZ2l0IiwieURpZ2l0IiwieERpdk1vZCIsInlEaXZNb2QiLCJMT0JNQVNLX0kiLCJMT0JNQVNLX0JJIiwicm91Z2hMT0IiLCJpbnRlZ2VyTG9nYXJpdGhtIiwidG1wIiwiZSIsIm1heCIsIm1pbiIsImdjZCIsImxjbSIsInJhbmRCZXR3ZWVuIiwibG93IiwiaGlnaCIsInJhbmdlIiwiZGlnaXRzIiwidG9CYXNlIiwicmVzdHJpY3RlZCIsInRvcCIsImRpZ2l0IiwidGV4dCIsImFic0Jhc2UiLCJhbHBoYWJldFZhbHVlcyIsImlzTmVnYXRpdmUiLCJzdGFydCIsInBhcnNlQmFzZUZyb21BcnJheSIsInZhbCIsInBvdyIsInN0cmluZ2lmeSIsIm5lZyIsIk51bWJlciIsIm91dCIsImxlZnQiLCJkaXZtb2QiLCJ0b0Jhc2VTdHJpbmciLCJ6ZXJvcyIsInBhcnNlSW50IiwicGFyc2VTdHJpbmdWYWx1ZSIsInNwbGl0IiwiZGVjaW1hbFBsYWNlIiwiaXNWYWxpZCIsInBhcnNlTnVtYmVyVmFsdWUiLCJtbF96X25vcm1hbGl6ZSIsIm1sX3pfcG93IiwiejEiLCJtbF96X3Jvb3QiLCJ6IiwiemVybyIsIm9uZSIsImVuZCIsImFucyIsInR3byIsIm1pZCIsInBvIiwibWxfel9yb290cmVtIiwiY2FtbF9tbF9jb25kaXRpb25fbmV3IiwiY2FtbF9pbnQ2NF9vZl9ieXRlcyIsImNhbWxfYmFfdWludDhfZ2V0NjQiLCJiYSIsImkwIiwib2ZzIiwiYjEiLCJiMiIsImIzIiwiYjQiLCJiNSIsImI2IiwiYjciLCJiOCIsImNhbWxfaW50NjRfdG9fYnl0ZXMiLCJjYW1sX2ludDY0X21hcnNoYWwiLCJ3cml0ZXIiLCJzaXplcyIsImNhbWxfYmFfbnVtX2RpbXMiLCJjYW1sX3JldHVybl9leG5fY29uc3RhbnQiLCJjYW1sX3dyYXBfZXhjZXB0aW9uIiwiY2FtbF9jcmVhdGVfZmlsZSIsImpzb29fY3JlYXRlX2ZpbGUiLCJjYW1sX2ZzX2luaXQiLCJjYW1sX2dldF9jb250aW51YXRpb25fY2FsbHN0YWNrIiwiY2FtbF9wYXJzZXJfdHJhY2UiLCJjYW1sX3NldF9wYXJzZXJfdHJhY2UiLCJvbGRmbGFnIiwiY2FtbF9saXN0X29mX2pzX2FycmF5IiwiY2FtbF9tdWwiLCJjYW1sX2hhc2hfbWl4X2ludCIsIm51bV9kaWdpdHNfbmF0IiwibmF0IiwiY2FtbF9oYXNoX25hdCIsImNhbWxfY2FsbF9nZW4iLCJhcmdzTGVuIiwiZXh0cmFfYXJncyIsImFyZ3VtZW50cyIsIm5hcmdzIiwiY2FtbF9jYWxsYmFjayIsImNhbWxfanNfd3JhcF9jYWxsYmFja19hcmd1bWVudHMiLCJjYW1sX3N5c19jaGRpciIsImRpciIsImNhbWxfb2JqX3RhZyIsIkZ1bmN0aW9uIiwiY2FtbF9vYmpfdXBkYXRlX3RhZyIsImNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbl8iLCJjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW4iLCJjYW1sX2xhenlfdXBkYXRlX3RvX2ZvcmNpbmciLCJmaWVsZDAiLCJjYW1sX2djX2NvdW50ZXJzIiwibWxfel9kaXYiLCJ6MiIsIm1sX3pfc2lnbiIsIm1sX3pfYWRkIiwibWxfel9jZGl2IiwiejFfcG9zIiwiejJfcG9zIiwiY2FtbF9ncl9zeW5jaHJvbml6ZSIsImNhbWxfdW5peF9jbG9zZWRpciIsImRpcl9oYW5kbGUiLCJjYW1sX3VuaXhfb3BlbmRpciIsImNhbWxfdW5peF9yZXdpbmRkaXIiLCJuZXdfZGlyX2hhbmRsZSIsImNhbWxfcmFpc2VfZW5kX29mX2ZpbGUiLCJjYW1sX3VuaXhfcmVhZGRpciIsImNhbWxfdW5peF9maW5kZmlyc3QiLCJwYXRoX2pzIiwiZmlyc3RfZW50cnkiLCJjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWciLCJsb2cyX29rIiwianNvb19mbG9vcl9sb2cyIiwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0IiwiZmxvYXQzMmEiLCJGbG9hdDMyQXJyYXkiLCJpbnQzMmEiLCJJbnQzMkFycmF5IiwiY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkiLCJjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQiLCJrIiwicjMiLCJyMiIsInIxIiwiY2FtbF9iYV9zZXJpYWxpemUiLCJzeiIsImNvbXBsZXgiLCJjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50Iiwia2luZCIsImNhbWxfYmFfY3JlYXRlX2J1ZmZlciIsInNpemUiLCJ2aWV3IiwiRmxvYXQ2NEFycmF5IiwiSW50OEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzIiwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIiwiTmFOIiwiY2FtbF9iYV9nZXRfc2l6ZSIsImRpbXMiLCJuX2RpbXMiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSIsImNhbWxfaW50NjRfaGkzMiIsImNhbWxfaW50NjRfbG8zMiIsImNhbWxfYmFfY3VzdG9tX25hbWUiLCJNbF9CaWdhcnJheSIsImxheW91dCIsInJlIiwidG90YWwiLCJrMSIsImsyIiwiTWxfQmlnYXJyYXlfY18xXzEiLCJjYW1sX2JhX2NyZWF0ZV91bnNhZmUiLCJzaXplX3Blcl9lbGVtZW50IiwiY2FtbF9iYV9kZXNlcmlhbGl6ZSIsInJlYWRlciIsIm51bV9kaW1zIiwic2l6ZV9kaW0iLCJzaXplX2RpbV9oaSIsInNpemVfZGltX2xvIiwic2l4dHkiLCJpbnQ2NCIsImNhbWxfYmFfY29tcGFyZSIsImNhbWxfaGFzaF9taXhfaW50NjQiLCJjYW1sX2hhc2hfbWl4X2Zsb2F0IiwidjAiLCJjYW1sX2JhX2hhc2giLCJudW1fZWx0cyIsInciLCJjYW1sX2ludDMyX3VubWFyc2hhbCIsImNhbWxfbmF0aXZlaW50X3VubWFyc2hhbCIsImNhbWxfaW50NjRfdW5tYXJzaGFsIiwiY2FtbF9pbnQ2NF9jb21wYXJlIiwiY2FtbF9pbnQ2NF9oYXNoIiwiY2FtbF9jdXN0b21fb3BzIiwiY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tIiwiY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tIiwibnVtIiwiY3VzdG9tIiwic3dhcCIsImNhbWxfY29tcGFyZV92YWxfdGFnIiwiY2FtbF9pbnRfY29tcGFyZSIsImNhbWxfYnl0ZXNfY29tcGFyZSIsImNhbWxfc3RyaW5nX2NvbXBhcmUiLCJjYW1sX2NvbXBhcmVfdmFsIiwic3RhY2siLCJ0YWdfYSIsInRhZ19iIiwiY2FtbF9ncmVhdGVydGhhbiIsImRpdl9oZWxwZXIiLCJkaXZfZGlnaXRfbmF0IiwibmF0cSIsIm9mc3EiLCJuYXRyIiwib2ZzciIsInJlbSIsIm51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdCIsInNoaWZ0X2xlZnRfbmF0IiwiTWxOYXQiLCJjcmVhdGVfbmF0Iiwic2V0X3RvX3plcm9fbmF0IiwiaW5jcl9uYXQiLCJjYXJyeV9pbiIsImFkZF9uYXQiLCJsZW4yIiwibmF0X29mX2FycmF5IiwibXVsdF9kaWdpdF9uYXQiLCJuYXQzIiwib2ZzMyIsIngxIiwieDIiLCJ4MyIsImRlY3JfbmF0Iiwic3ViX25hdCIsImNvbXBhcmVfbmF0IiwiZGl2X25hdCIsInF1byIsImNhbWxfYmFfYmxpdCIsInNyYyIsImRzdCIsImlzX2RpZ2l0X2ludCIsImNhbWxfaW50NjRfZGl2IiwiY2FtbF9qc19odG1sX2VudGl0aWVzIiwiZW50aXR5IiwidGVtcCIsImRvY3VtZW50IiwiY2FtbF9zdHJpbmdfdW5zYWZlX3NldCIsImNhbWxfaW50NjRfb2ZfZmxvYXQiLCJjYW1sX21sX2NoYW5uZWxfc2l6ZV82NCIsImNhbWxfYmFfc2V0XzIiLCJtbF96X29mX2ludDY0IiwiaTY0IiwibWxfel9rcm9uZWNrZXIiLCJjYW1sX2FyZ3YiLCJtYWluIiwiYXJndiIsImFyZ3MyIiwiY2FtbF9leGVjdXRhYmxlX25hbWUiLCJjYW1sX2pzX2V2YWxfc3RyaW5nIiwiZXZhbCIsInNlcmlhbGl6ZV9uYXQiLCJjYW1sX21lbXByb2Zfc2V0IiwiX2NvbnRyb2wiLCJtbF96X25lZyIsImNhbWxfc3lzX2V4aXQiLCJjYW1sX2NoYW5uZWxfZGVzY3JpcHRvciIsImNhbWxfanNfZnJvbV9hcnJheSIsImNhbWxfYmFfcmVzaGFwZSIsInZpbmQiLCJuZXdfZGltIiwiY2FtbF9vb19sYXN0X2lkIiwiY2FtbF9zZXRfb29faWQiLCJjYW1sX2dyX2ZpbGxfcmVjdCIsImNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhIiwic3RyMSIsInBvczEiLCJiYTIiLCJwb3MyIiwic2xpY2UiLCJjYW1sX2dyX3NldF93aW5kb3dfdGl0bGUiLCJqc25hbWUiLCJjYW1sX2dldF9nbG9iYWxfZGF0YSIsImNhbWxfaW50NjRfc2hpZnRfcmlnaHRfdW5zaWduZWQiLCJjYW1sX2JhX3VpbnQ4X2dldDE2IiwibWxfel9vZl9pbnQzMiIsImNhbWxfY29tcGFyZSIsImNhbWxfTUQ1VHJhbnNmb3JtIiwieHgiLCJmZiIsImdnIiwiaGgiLCJpaSIsImNhbWxfTUQ1VXBkYXRlIiwiY3R4IiwiaW5wdXQiLCJpbnB1dF9sZW4iLCJpbl9idWYiLCJpbnB1dF9wb3MiLCJtaXNzaW5nIiwiY2FtbF9mcmVzaF9vb19pZCIsImNhbWxfaW50NjRfdG9fZmxvYXQiLCJjYW1sX2JhX2dldF8xIiwiY2FtbF9iaWdzdHJpbmdfbWVtY21wIiwiY2FtbF9uZXdfc3RyaW5nIiwiY2FtbF9lcmZfZmxvYXQiLCJhMSIsImEyIiwiYTMiLCJhNCIsImE1IiwiY2FtbF9iYV91aW50OF9nZXQzMiIsImNhbWxfcmF3X2JhY2t0cmFjZV9sZW5ndGgiLCJtbF96X3NoaWZ0X3JpZ2h0IiwiYW10IiwiY2FtbF9zdHJfaW5pdGlhbGl6ZSIsImNhbWxfb2JqX2Jsb2NrIiwiY2FtbF9ncl9jbGVhcl9ncmFwaCIsImJpZ3N0cmluZ190b19hcnJheV9idWZmZXIiLCJicyIsImNhbWxfc3lzX2NvbnN0X25ha2VkX3BvaW50ZXJzX2NoZWNrZWQiLCJfdW5pdCIsImx4b3JfZGlnaXRfbmF0IiwiY2FtbF9vYmpfYWRkX29mZnNldCIsImNhbWxfZmluYWxfcmVsZWFzZSIsImNhbWxfanNfdG9fYXJyYXkiLCJtbF96X2xvZ29yIiwiY2FtbF9ncl9wbG90IiwiY29sb3IiLCJjYW1sX2J5dGVzX3NldDE2IiwiaTE2IiwiY2FtbF9zdHJpbmdfc2V0MTYiLCJjYW1sX2J5dGVzX3NldDY0IiwiY2FtbF9pbnQ2NF9ic3dhcCIsIm1sX3pfZml0c19pbnQiLCJtbF96X2ZpdHNfaW50MzIiLCJjYW1sX2djX21ham9yIiwibWxfel9zaGlmdF9sZWZ0IiwiY2FtbF9sZXhfYXJyYXkiLCJjYW1sX2xleF9lbmdpbmUiLCJ0YmwiLCJzdGFydF9zdGF0ZSIsImxleGJ1ZiIsImxleF9idWZmZXIiLCJsZXhfYnVmZmVyX2xlbiIsImxleF9zdGFydF9wb3MiLCJsZXhfY3Vycl9wb3MiLCJsZXhfbGFzdF9wb3MiLCJsZXhfbGFzdF9hY3Rpb24iLCJsZXhfZW9mX3JlYWNoZWQiLCJsZXhfYmFzZSIsImxleF9iYWNrdHJrIiwibGV4X2RlZmF1bHQiLCJsZXhfdHJhbnMiLCJsZXhfY2hlY2siLCJzdGF0ZSIsImJhY2t0cmsiLCJjYW1sX3N5c19maWxlX2V4aXN0cyIsImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2FycmF5X3N1YiIsImNhbWxfYnl0ZXNfZXF1YWwiLCJjYW1sX2dyX3NpemVfeCIsImNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXMiLCJjYW1sX2F0b21pY19mZXRjaF9hZGQiLCJyZWYiLCJvc190eXBlIiwiY2FtbF9zeXNfY29uc3Rfb3N0eXBlX2N5Z3dpbiIsImNhbWxfY29zaF9mbG9hdCIsIk1sTXV0ZXgiLCJjYW1sX21sX211dGV4X25ldyIsImNhbWxfZXBoZV9rZXlfb2Zmc2V0IiwiY2FtbF9lcGhlX2NoZWNrX2tleSIsIndlYWsiLCJjYW1sX2hhc2hfbWl4X2ZpbmFsIiwiY2FtbF9ncl90ZXh0X3NpemUiLCJ0eHQiLCJjYW1sX2xleF9ydW5fbWVtIiwibWVtIiwiY3Vycl9wb3MiLCJjYW1sX2xleF9ydW5fdGFnIiwiY2FtbF9uZXdfbGV4X2VuZ2luZSIsImxleF9tZW0iLCJsZXhfYmFzZV9jb2RlIiwibGV4X2JhY2t0cmtfY29kZSIsImxleF9kZWZhdWx0X2NvZGUiLCJsZXhfdHJhbnNfY29kZSIsImxleF9jaGVja19jb2RlIiwibGV4X2NvZGUiLCJwY19vZmYiLCJwc3RhdGUiLCJiYXNlX2NvZGUiLCJjYW1sX2JhX3VpbnQ4X3NldDY0IiwibWxfel9wb3Bjb3VudCIsImNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfbGVzc2VxdWFsIiwiY2FtbF9hY29zaF9mbG9hdCIsImNhbWxfTUQ1SW5pdCIsIkFycmF5QnVmZmVyIiwiYjMyIiwiVWludDMyQXJyYXkiLCJjYW1sX21sX2ZsdXNoIiwiY2FtbF9zZWVrX291dCIsImNhbWxfbWxfc2Vla19vdXRfNjQiLCJjb21wYXJlX25hdF9yZWFsIiwiY2FtbF9nY19zZXQiLCJjYW1sX2pzX2dldCIsImNhbWxfdW5peF9pc2F0dHkiLCJmaWxlRGVzY3JpcHRvciIsInR0eSIsImNhbWxfbWxfc2V0X2J1ZmZlcmVkIiwiY2FtbF9nY19jb21wYWN0aW9uIiwiY2FtbF9lcGhlX2dldF9rZXkiLCJjYW1sX3VuaXhfbG9jYWx0aW1lIiwiRGF0ZSIsImRfbnVtIiwiamFudWFyeWZpcnN0IiwiZG95IiwiamFuIiwianVsIiwic3RkVGltZXpvbmVPZmZzZXQiLCJjYW1sX3VuaXhfbWt0aW1lIiwidG0iLCJ0bTIiLCJqc29vX3pfb2ZfanNfc3RyaW5nX2Jhc2UiLCJiYyIsIm1sX3pfb2Zfc3Vic3RyaW5nX2Jhc2UiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2J5dGVzX3RvX2JhIiwiY2FtbF9zeXNfZmRzIiwiY2FtbF9zeXNfY2xvc2UiLCJjYW1sX21sX2Nsb3NlX2NoYW5uZWwiLCJjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZSIsImV4biIsImZvcmNlIiwiY2FtbF9hdG9taWNfZXhjaGFuZ2UiLCJjYW1sX3N5c19pc2F0dHkiLCJfY2hhbiIsImlzX2RpZ2l0X3plcm8iLCJjYW1sX3VuaXhfbHN0YXQiLCJjYW1sX3VuaXhfbHN0YXRfNjQiLCJjYW1sX2pzX3NldCIsIm1sX3pfZ2NkZXh0X2ludGVybiIsImxhc3R4IiwibGFzdHkiLCJtbF96X3Rlc3RiaXQiLCJjYW1sX2FycmF5X2dldCIsImFycmF5IiwiaW5kZXgiLCJjYW1sX2NvbnRpbnVhdGlvbl91c2Vfbm9leGMiLCJjb250IiwiY2FtbF91bml4X3JtZGlyIiwiY2FtbF9sb2cyX2Zsb2F0IiwiY2FtbF9nY19odWdlX2ZhbGxiYWNrX2NvdW50IiwibWxfel9jb25ncnVlbnQiLCJjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZSIsImNhbWxfaW50NjRfc3ViIiwiY2FtbF9zZWVrX2luIiwiY2FtbF9tbF9zZWVrX2luXzY0IiwiY2FtbF9kb21haW5faWQiLCJjYW1sX21sX211dGV4X3VubG9jayIsImNhbWxfZG9tYWluX2xhdGVzdF9pZHgiLCJjYW1sX2RvbWFpbl9zcGF3biIsIm11dGV4IiwiaWQiLCJjYW1sX3VuaXhfbWtkaXIiLCJwZXJtIiwiY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0IiwiY2FtbF9ub3RlcXVhbCIsIm1sX3pfYWJzIiwiY2FtbF9zeXNfY29uc3RfaW50X3NpemUiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2siLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFjayIsImNhbWxfaXNfanMiLCJjYW1sX2xhenlfdXBkYXRlX3RvX2ZvcndhcmQiLCJjYW1sX2JhX2RpbSIsImNhbWxfYmFfZGltXzEiLCJtbF96X3NxcnQiLCJjYW1sX2pzX21ldGhfY2FsbCIsIm1sX3pfbHVjbnVtIiwiY2FtbF9lcGhlX2RhdGFfb2Zmc2V0IiwiY2FtbF93ZWFrX2NyZWF0ZSIsImNhbWxfZXBoZV9jcmVhdGUiLCJjYW1sX2pzX3RvX2J5dGVfc3RyaW5nIiwibWxfel9wcm9iYWJfcHJpbWUiLCJjYW1sX3RyYW1wb2xpbmUiLCJjYW1sX21heWJlX3ByaW50X3N0YXRzIiwiY2FtbF9ieXRlc19nZXQ2NCIsImNhbWxfdW5peF9oYXNfc3ltbGluayIsIm1sX3pfcmVtIiwiY2FtbF9lcGhlX3NldF9rZXkiLCJjYW1sX2VwaGVfdW5zZXRfa2V5IiwiY291bnQiLCJjYW1sX3dlYWtfc2V0IiwiY2FtbF9zeXNfcmVtb3ZlIiwiY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IiLCJjYW1sX3N0cmluZ19nZXQzMiIsImNhbWxfYnl0ZXNfZ2V0IiwiY2FtbF9oeXBvdF9mbG9hdCIsIm1sX3pfZmFjTSIsImN1cnJlbnQiLCJjYW1sX2pzX2NhbGwiLCJjYW1sX3N5c19jb25zdF9tYXhfd29zaXplIiwiY2FtbF91bml4X2luZXRfYWRkcl9vZl9zdHJpbmciLCJtbF96X211bF9vdmVyZmxvd3MiLCJtbF96X3RvX2ludCIsImNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyIiwiY2FtbF9oYXNoX21peF9qc2J5dGVzIiwiY2FtbF9tbF9ieXRlc19jb250ZW50IiwiY2FtbF9oYXNoX21peF9ieXRlcyIsImNhbWxfYnl0ZXNfbGVzc3RoYW4iLCJjYW1sX2VyZmNfZmxvYXQiLCJjYW1sX2dyX2ZpbGxfcG9seSIsImFyIiwiY2FtbF9nY19xdWlja19zdGF0IiwibWxfel9mYWMiLCJjYW1sX21sX2lucHV0X2NoYXIiLCJjYW1sX21sX2lucHV0X2ludCIsImNhbWxfZ3JfZGlzcGxheV9tb2RlIiwibWxfel9kaXZpc2libGUiLCJjYW1sX29ial9yZWFjaGFibGVfd29yZHMiLCJudGhfZGlnaXRfbmF0IiwiY2FtbF9hcnJheV9ibGl0IiwiY2FtbF9mbG9hdF9vZl9zdHJpbmciLCJtMyIsIm1hbnRpc3NhIiwiZXhwb25lbnQiLCJjYW1sX3N5c19nZXRjd2QiLCJjYW1sX2ludDY0X2FkZCIsImNhbWxfaW50NjRfbXVsIiwiY2FtbF9pbnQ2NF91bHQiLCJjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UiLCJjYW1sX3BhcnNlX2RpZ2l0IiwiY2FtbF9pbnQ2NF9vZl9zdHJpbmciLCJiYXNlNjQiLCJ0aHJlc2hvbGQiLCJjYW1sX2JhX3NldF8xIiwiY2FtbF9pbnQ2NF94b3IiLCJjYW1sX2ludDY0X29yIiwiY2FtbF9seG1fbmV4dCIsInNoaWZ0X2wiLCJzaGlmdF9yIiwib3IiLCJ4b3IiLCJtdWwiLCJyb3RsIiwic2V0IiwiTSIsImRhYmEiLCJxMCIsInExIiwic3QiLCJ4MCIsImNhbWxfc3lzX2NvbnN0X2JpZ19lbmRpYW4iLCJjYW1sX2xpc3RfdG9fanNfYXJyYXkiLCJjYW1sX2xlZ2FjeV9jdXN0b21fY29kZSIsImNhbWxfb3V0cHV0X3ZhbCIsIldyaXRlciIsIm5vX3NoYXJpbmciLCJjbG9zdXJlcyIsImNvbnNvbGUiLCJpbnRlcm5fb2JqX3RhYmxlIiwibWVtbyIsImV4aXN0aW5nX29mZnNldCIsImV4dGVybl9yZWMiLCJvcHMiLCJzel8zMl82NCIsImhlYWRlcl9wb3MiLCJvbGRfcG9zIiwidHlwZV9vZl92IiwiY2FtbF9zdHJpbmdfb2ZfYXJyYXkiLCJjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmciLCJjYW1sX3JhaXNlX25vdF9hX2RpciIsImNhbWxfc3lzX3N5c3RlbV9jb21tYW5kIiwiY21kIiwiY2hpbGRfcHJvY2VzcyIsImNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uIiwiY2FtbF91bml4X2dldHVpZCIsImRlc2VyaWFsaXplX25hdCIsImluaXRpYWxpemVfbmF0IiwibWxfel9zdWNjIiwiY2FtbF9ncl9vcGVuX3N1YndpbmRvdyIsImNhbWxfbWFyc2hhbF9kYXRhX3NpemUiLCJnZXQzMiIsIk1sU3RyaW5nUmVhZGVyIiwiY2FtbF9mbG9hdF9vZl9ieXRlcyIsImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIiLCJfbWFnaWMiLCJfYmxvY2tfbGVuIiwibnVtX29iamVjdHMiLCJfc2l6ZV8zMiIsIl9zaXplXzY0Iiwib2JqX2NvdW50ZXIiLCJpbnRlcm5fcmVjIiwiaGVhZGVyIiwiZXhwZWN0ZWRfc2l6ZSIsImNhbWxfc3RyaW5nX29mX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZSIsImJsb2NrIiwiY2FtbF9pbnB1dF92YWx1ZV90b19vdXRzaWRlX2hlYXAiLCJjYW1sX2F0b21pY19jYXMiLCJjYW1sX2NvcHlzaWduX2Zsb2F0IiwiY2FtbF9ncl9zZXRfdGV4dF9zaXplIiwiY2FtbF9hdG9taWNfbG9hZCIsImNhbWxfTUQ1RmluYWwiLCJjYW1sX21kNV9ieXRlcyIsImNhbWxfYmFfc2V0X2dlbmVyaWMiLCJjYW1sX21sX2NvbmRpdGlvbl93YWl0IiwibXV0ZXh0IiwiY2FtbF9ieXRlc19sZXNzZXF1YWwiLCJjYW1sX3N0cmluZ19sZXNzZXF1YWwiLCJjYW1sX3N0cmluZ19ncmVhdGVyZXF1YWwiLCJjYW1sX25leHRhZnRlcl9mbG9hdCIsImNhbWxfZ3Jfc2l6ZV95IiwibWxfel9mYWMyIiwiY2FtbF9wb3NfaW4iLCJjYW1sX21sX3Bvc19pbiIsImNhbWxfaW50NjRfYW5kIiwiY2FtbF9zeXNfY29uc3Rfd29yZF9zaXplIiwibWxfel9iaW4iLCJjb2VmZiIsImNhbWxfdW5peF91bmxpbmsiLCJjYW1sX3N5c19vcGVuX2Zvcl9ub2RlIiwiZnMiLCJmZDIiLCJNbEZha2VGZF9vdXQiLCJjYW1sX3N5c19vcGVuX2ludGVybmFsIiwiaWR4IiwiY2FtbF9zeXNfb3BlbiIsIl9wZXJtcyIsIm1sX3pfZ2NkIiwibWxfel9tdWwiLCJtbF96X2hhbWRpc3QiLCJjYW1sX3N0cmluZ19nZXQiLCJyZV9tYXRjaCIsInJlX3dvcmRfbGV0dGVycyIsIm9wY29kZXMiLCJpc193b3JkX2xldHRlciIsImluX2JpdHNldCIsInJlX21hdGNoX2ltcGwiLCJwYXJ0aWFsIiwicHJvZyIsImNwb29sIiwibm9ybXRhYmxlIiwibnVtZ3JvdXBzIiwibnVtcmVnaXN0ZXJzIiwic3RhcnRjaGFycyIsInBjIiwicXVpdCIsImdyb3VwcyIsInJlX3JlZ2lzdGVyIiwiYmFja3RyYWNrIiwiaXRlbSIsInB1c2giLCJhY2NlcHQiLCJnIiwicHJlZml4X21hdGNoIiwib3AiLCJzYXJnIiwidWFyZyIsImdyb3VwIiwicmVfc2VhcmNoX2JhY2t3YXJkIiwibWxfel9sb2dhbmQiLCJjYW1sX2pzX2Zyb21fc3RyaW5nIiwiY2FtbF9iYV9zdWIiLCJjaGFuZ2VkX2RpbSIsIm5ld19kaW1zIiwibmV3X2RhdGEiLCJjYW1sX2djX2Z1bGxfbWFqb3IiLCJjYW1sX21sX211dGV4X3RyeV9sb2NrIiwiY2FtbF9ieXRlc19zZXQzMiIsImkzMiIsImNhbWxfZ3Jfc2lnaW9fc2lnbmFsIiwiY2FtbF9iYV91aW50OF9zZXQzMiIsIm1sX3pfZGl2X3JlbSIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV91bml4IiwiY2FtbF91bml4X2dtdGltZSIsImNhbWxfc2lnbmJpdF9mbG9hdCIsImNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgiLCJjYW1sX2dyX3NldF9mb250IiwiY2FtbF9ncl9zZXRfY29sb3IiLCJjb252ZXJ0IiwibnVtYmVyIiwiY19zdHIiLCJjYW1sX2dyX21vdmV0byIsImNhbWxfZ3JfcmVzaXplX3dpbmRvdyIsImNhbWxfZ3Jfc3RhdGVfaW5pdCIsImNhbWxfZ3JfY3VycmVudF94IiwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5IiwidGEiLCJjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkiLCJjYW1sX21sX3NlZWtfb3V0IiwiY2FtbF9qc190eXBlb2YiLCJjYW1sX2hhc2hfbWl4X3N0cmluZyIsImNhbWxfc3RyaW5nX2hhc2giLCJjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZSIsImJ0IiwiY2FtbF9ncl9saW5ldG8iLCJjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5IiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfdW5zYWZlIiwiY2FtbF9iYV9kaW1fMyIsImNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb24iLCJjYW1sX2Zvcm1hdF9leGNlcHRpb24iLCJidWNrZXQiLCJjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvbiIsImhhbmRsZXIiLCJhdF9leGl0IiwiY2FtbF9lcGhlX2NoZWNrX2RhdGEiLCJjYW1sX2J5dGVzX2dldDE2IiwiY2FtbF9vYmpfbWFrZV9mb3J3YXJkIiwiY2FtbF9qc19mcm9tX2Jvb2wiLCJjYW1sX21sX3NldF9jaGFubmVsX25hbWUiLCJjYW1sX2V4cDJfZmxvYXQiLCJjYW1sX2dyX2Nsb3NlX2dyYXBoIiwiY2FtbF9tbF9kb21haW5fY3B1X3JlbGF4IiwiY2FtbF9jcmVhdGVfc3RyaW5nIiwiY2FtbF9tbF9pbnB1dF9ibG9jayIsImF2YWlsIiwiY2FtbF9tZDVfY2hhbiIsInRvcmVhZCIsImNhbWxfYXRhbmhfZmxvYXQiLCJjYW1sX21sX2NvbmRpdGlvbl9zaWduYWwiLCJjYW1sX3VuaXhfZmluZG5leHQiLCJjYW1sX21sX291dHB1dF9ieXRlcyIsImNhbWxfbWxfb3V0cHV0IiwiY2FtbF9tbF9kb21haW5faWQiLCJjYW1sX2VwaGVfZ2V0X2RhdGEiLCJjYW1sX3htbGh0dHByZXF1ZXN0X2NyZWF0ZSIsImNhbWxfdHJhbXBvbGluZV9yZXR1cm4iLCJjYW1sX21sX2lzX2J1ZmZlcmVkIiwiY2FtbF9hcnJheV9hcHBlbmQiLCJjYW1sX3VuaXhfZ2V0dGltZW9mZGF5IiwiY2FtbF91bml4X3RpbWUiLCJjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbCIsIm1sX3pfbmV4dHByaW1lIiwiY2FtbF9maWxsX2J5dGVzIiwiY2FtbF9qc19leHByIiwiY2FtbF9tbF9ydW50aW1lX3dhcm5pbmdzX2VuYWJsZWQiLCJtbF96X3N1YiIsIm1sX3pfZmRpdiIsIm1sX3pfdG9fYml0cyIsImNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J5dGVzIiwiY2FtbF9ldmVudGxvZ19yZXN1bWUiLCJjYW1sX21kNV9zdHJpbmciLCJjYW1sX3N0cmluZ19lcXVhbCIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9qc29vX2ZsYWdzX3VzZV9qc19zdHJpbmciLCJtbF96X2RpdmV4YWN0IiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnVmZmVyIiwicmVfcmVwbGFjZW1lbnRfdGV4dCIsInJlcGwiLCJvcmlnIiwiY3VyIiwiY2FtbF9wdXJlX2pzX2V4cHIiLCJjYW1sX2JsaXRfc3RyaW5nIiwiYmxpdF9uYXQiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2J5dGVzIiwiYmExIiwiYnl0ZXMyIiwiY2FtbF91bml4X3N0YXQiLCJjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlIiwianNvb19jcmVhdGVfZmlsZV9leHRlcm4iLCJjYW1sX3VuaXhfc3RhdF82NCIsImNhbWxfdG9fanNfc3RyaW5nIiwiY2FtbF9tbF9tdXRleF9sb2NrIiwicmVfc2VhcmNoX2ZvcndhcmQiLCJjYW1sX2JsaXRfc3RyaW5nX3RvX2JpZ3N0cmluZyIsImNhbWxfbWFrZV92ZWN0IiwiaW5pdCIsImNhbWxfbWxfc2Vla19pbiIsImNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5IiwiY2FtbF9tbF9vdXRwdXRfY2hhciIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiIsImNhbWxfb2JqX2lzX2Jsb2NrIiwiY2FtbF9vYmpfc2V0X3Jhd19maWVsZCIsImNhbWxfanNfdmFyIiwiY2FtbF90cnVuY19mbG9hdCIsImNhbWxfemFyaXRoX21hcnNoYWwiLCJjYW1sX2VwaGVfdW5zZXRfZGF0YSIsImNhbWxfZXBoZV9zZXRfZGF0YSIsImNhbWxfZXBoZV9ibGl0X2RhdGEiLCJjYW1sX2lzX3ByaW50YWJsZSIsImNhbWxfYXJyYXlfb2ZfYnl0ZXMiLCJjYW1sX2VxdWFsIiwicmVfcGFydGlhbF9tYXRjaCIsImNhbWxfc3lzX3JhbmRvbV9zZWVkIiwiYnVmZiIsIm5vdyIsImFsbF9maW5hbGl6ZXJzIiwiY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSIsImNiIiwiY2FtbF9iYV9nZXRfMiIsImNhbWxfYmFfdWludDhfc2V0MTYiLCJjYW1sX2xhenlfcmVzZXRfdG9fbGF6eSIsImNhbWxfanNfZGVsZXRlIiwiY2FtbF9pbnRfb2Zfc3RyaW5nIiwiY2FtbF9saXN0X21vdW50X3BvaW50IiwicHJldiIsImNhbWxfbWFyc2hhbF9jb25zdGFudHMiLCJjYW1sX29ial9yYXdfZmllbGQiLCJjYW1sX2pzX2VxdWFscyIsImNhbWxfb2JqX2NvbXBhcmVfYW5kX3N3YXAiLCJiaWdzdHJpbmdfdG9fdHlwZWRfYXJyYXkiLCJtbF96X2ZpdHNfbmF0aXZlaW50IiwiY2FtbF9ncl9hcmNfYXV4IiwiY3giLCJjeSIsInJ5IiwicngiLCJyb3QiLCJ4UG9zIiwieVBvcyIsInhQb3NfcHJldiIsInlQb3NfcHJldiIsInNwYWNlIiwiZGVsdGEiLCJjYW1sX2dyX2ZpbGxfYXJjIiwiY2FtbF9iYV9zbGljZSIsIm51bV9pbmRzIiwic3ViX2RpbXMiLCJtbF96X29mX25hdGl2ZWludCIsImNhbWxfanNfd3JhcF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2tpbmQiLCJjYW1sX2pzX2Z1bl9jYWxsIiwiY2FtbF9nY19tYWpvcl9zbGljZSIsIndvcmsiLCJtbF96X2ludmVydCIsIm1sX3pfcG93bSIsInozIiwiaW52IiwibWxfel9wb3dtX3NlYyIsImNhbWxfanNfcHVyZV9leHByIiwiY29tcGFyZV9kaWdpdHNfbmF0IiwiY2FtbF9tbF9pbnB1dCIsImNhbWxfZ3Jfd2FpdF9ldmVudCIsIl9ldmwiLCJjYW1sX2dyX3NpZ2lvX2hhbmRsZXIiLCJjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyIsImNhbWxfcmVjb3JkX2JhY2t0cmFjZSIsImNhbWxfdW5peF9jbGVhbnVwIiwiY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlIiwiY2FtbF9zeXNfZ2V0X2NvbmZpZyIsImNhbWxfb2JqX2lzX3NoYXJlZCIsImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QiLCJjYW1sX2FzaW5oX2Zsb2F0IiwibWxfel9oYXNoIiwiYWNjIiwiY2FtbF9wb3Nfb3V0IiwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciIsImFiIiwiY2FtbF9tb2QiLCJjYW1sX2JhX2luaXQiLCJjYW1sX3VuaXhfZmlsZWRlc2NyX29mX2ZkIiwicmVfc3RyaW5nX21hdGNoIiwiQmlnU3RyaW5nUmVhZGVyIiwiY2FtbF9ncl9kdW1wX2ltYWdlIiwiY2FtbF9iYV9nZXRfZ2VuZXJpYyIsImNhbWxfdW5peF9zdGFydHVwIiwiY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSIsImNhbWxfZm9ybWF0X2Zsb2F0IiwidG9GaXhlZCIsImRwIiwicHJlYyIsImNhbWxfbW91bnRfYXV0b2xvYWQiLCJtbF96X2VxdWFsIiwibWxfel9maXRzX2ludDY0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYSIsImNhbWxfYmxpdF9iaWdzdHJpbmdfdG9fYmlnc3RyaW5nIiwibWxfel9zcXJ0X3JlbSIsImRpZmYiLCJjYW1sX3N0cmluZ19sZXNzdGhhbiIsImNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuIiwiY2FtbF9kaXYiLCJjYW1sX29ial9kdXAiLCJjYW1sX2VwaGVfZ2V0X2RhdGFfY29weSIsImNhbWxfbWVtcHJvZl9zdGFydCIsInJhdGUiLCJzdGFja19zaXplIiwidHJhY2tlciIsIm1sX3pfcGVyZmVjdF9zcXVhcmUiLCJjYW1sX3N5c19nZXRfYXJndiIsImNhbWxfbWxfZG9tYWluX3NldF9uYW1lIiwiX25hbWUiLCJjYW1sX2pzX3RvX2Jvb2wiLCJjYW1sX2dyX2NyZWF0ZV9pbWFnZSIsImNhbWxfZXBoZV9nZXRfa2V5X2NvcHkiLCJjYW1sX2xlc3N0aGFuIiwiY2FtbF9yYXdfYmFja3RyYWNlX25leHRfc2xvdCIsIm1sX3pfdG9fbmF0aXZlaW50IiwiY2FtbF9yZWdpc3Rlcl9nbG9iYWwiLCJuYW1lX29wdCIsIm11bHRfbmF0IiwibGVuMyIsInNxdWFyZV9uYXQiLCJjYW1sX2pzX2Zyb21fZmxvYXQiLCJjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlIiwiY2FtbF9nY19zdGF0IiwiY2FtbF9nZXRfbWFqb3JfY3JlZGl0IiwiY2FtbF9zeXNfbW9kaWZ5X2FyZ3YiLCJjYW1sX21ldGhvZF9jYWNoZSIsImNhbWxfZ2V0X3B1YmxpY19tZXRob2QiLCJvYmoiLCJjYWNoZWlkIiwibWV0aHMiLCJsaSIsImNhbWxfanNfZ2V0X2NvbnNvbGUiLCJjYW1sX3N5c191bnNhZmVfZ2V0ZW52IiwiY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3JfaW4iLCJyZWZpbGwiLCJjaGFubmVsIiwiYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5IiwiY2FtbF9yb3VuZF9mbG9hdCIsIm1sX3pfb2ZfYml0cyIsImJhc2UxIiwiY2FtbF9vanNfbmV3X2FyciIsIkYiLCJjb21wbGVtZW50X25hdCIsIm1sX3pfbG9neG9yIiwiY2FtbF9kb21haW5fZGxzIiwiY2FtbF9kb21haW5fZGxzX3NldCIsImNhbWxfbGF6eV9yZWFkX3Jlc3VsdCIsImNhbWxfanNfcmVnZXhwcyIsImNhbWxfanNfaHRtbF9lc2NhcGUiLCJjYW1sX2JhX2RpbV8yIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzIiwiY2FtbF9zaW5oX2Zsb2F0IiwiY2FtbF9sZGV4cF9mbG9hdCIsImNhbWxfZ3Jfc3RhdGVfc2V0IiwiY2FtbF96YXJpdGhfdW5tYXJzaGFsIiwibmVnYXRlIiwibWxfel90cmFpbGluZ196ZXJvcyIsImNhbWxfanNfd3JhcF9jYWxsYmFja19zdHJpY3QiLCJhcml0eSIsImNhbWxfZ2NfbWlub3Jfd29yZHMiLCJjYW1sX2dldF9jdXJyZW50X2NhbGxzdGFjayIsImxhbmRfZGlnaXRfbmF0IiwiY2FtbF9pbnQ2NF9tb2QiLCJjYW1sX29ial9zZXRfdGFnIiwiY2FtbF9pbnQzMl9ic3dhcCIsImNhbWxfYmFfc2V0XzMiLCJtbF96X2phY29iaSIsIm4xIiwibWxfel9sZWdlbmRyZSIsImNhbWxfanNfaW5zdGFuY2VvZiIsImNhbWxfZ2V0X21ham9yX2J1Y2tldCIsImNhbWxfYmxpdF9iaWdzdHJpbmdfdG9fc3RyaW5nIiwic2V0X2RpZ2l0X25hdF9uYXRpdmUiLCJudGhfZGlnaXRfbmF0X25hdGl2ZSIsImNhbWxfc3RyaW5nX3NldDY0IiwiY2FtbF9ncl9zdGF0ZV9jcmVhdGUiLCJjYW52YXMiLCJjb250ZXh0IiwiY2FtbF9ncl9kcmF3X2FyYyIsImNhbWxfYmFfbWFwX2ZpbGUiLCJ2ZmQiLCJzaGFyZWQiLCJjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlIiwiYXJnbiIsImNhbWxfYmFfY3JlYXRlX2Zyb20iLCJkYXRhMSIsImRhdGEyIiwianN0eXAiLCJjYW1sX3RhbmhfZmxvYXQiLCJjYW1sX2dyX2RyYXdfc3RyIiwiZHgiLCJjYW1sX2dyX2RyYXdfc3RyaW5nIiwibWxfel9wcmltb3JpYWwiLCJjYW1sX2dyX2RyYXdfY2hhciIsImNhbWxfdW5tb3VudCIsIm1sX3pfZmliIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3N0cmluZyIsImNhbWxfbWxfcG9zX2luXzY0IiwiY2FtbF9ncl9kcmF3X2ltYWdlIiwiaW1hZ2UiLCJjYW1sX3JlZ2lzdGVyX2NoYW5uZWxfZm9yX3NwYWNldGltZSIsIl9jaGFubmVsIiwiY2FtbF9zdHJpbmdfc2V0IiwiY2FtbF9zeXNfcm1kaXIiLCJjYW1sX3VuaXhfc3ltbGluayIsInNyY19yb290IiwiZHN0X3Jvb3QiLCJjYW1sX21sX3Bvc19vdXQiLCJjYW1sX3NwYWNldGltZV9lbmFibGVkIiwiY2FtbF9ieXRlc19ub3RlcXVhbCIsImNhbWxfcnVudGltZV9wYXJhbWV0ZXJzIiwiY2FtbF9qc19vYmplY3QiLCJjYW1sX2JhX2NyZWF0ZSIsImRpbXNfbWwiLCJjYW1sX2dyX3JlbWVtYmVyX21vZGUiLCJjYW1sX2ZtYV9mbG9hdCIsIlNQTElUIiwiTUlOX1ZBTFVFIiwiRVBTSUxPTiIsIkMiLCJBIiwiQiIsIm11bHRpcGx5IiwiYXQiLCJhaGkiLCJhbG8iLCJiaGkiLCJibG8iLCJhZGp1c3QiLCJzY2FsZSIsInhzIiwieXMiLCJ6cyIsInh5IiwidSIsImNhbWxfcmVjb21tZW5kZWRfZG9tYWluX2NvdW50IiwiY2FtbF9ic3dhcDE2IiwiY2FtbF9tbF9zZXRfYmluYXJ5X21vZGUiLCJjYW1sX2ZpbmFsX3JlZ2lzdGVyIiwiY2FtbF9ncl9kcmF3X3JlY3QiLCJjYW1sX3N0cmluZ19nZXQxNiIsImNhbWxfb3V0cHV0X3ZhbHVlIiwiY2FtbF9iYV9nZXRfMyIsImNhbWxfZXBoZV9ibGl0X2tleSIsIm1sX3pfdG9faW50MzIiLCJjYW1sX2luaXRpYWxfdGltZSIsImNhbWxfc3lzX3RpbWUiLCJjYW1sX3N5c190aW1lX2luY2x1ZGVfY2hpbGRyZW4iLCJjYW1sX2NoZWNrX2JvdW5kIiwiY2FtbF91bml4X2dldHB3dWlkIiwibWxfel9jb21wYXJlIiwiY2FtbF9oYXNoIiwibGltaXQiLCJzZWVkIiwicXVldWUiLCJyZCIsIndyIiwiY2FtbF9iYV90b190eXBlZF9hcnJheSIsImNhbWxfZG9tYWluX2Rsc19nZXQiLCJjYW1sX2J5dGVzX2dldDMyIiwiY2FtbF9mcmV4cF9mbG9hdCIsIm1sX3pfcHJlZCIsImNhbWxfc3RyaW5nX2dldDY0IiwiY2FtbF9qc19lcnJvcl9vcHRpb25fb2ZfZXhjZXB0aW9uIiwiY2FtbF9tbF9wb3Nfb3V0XzY0IiwibWxfel9leHRyYWN0IiwibWxfel9yZW1vdmUiLCJtbF96X29mX2Zsb2F0IiwiZjEiLCJtbF96X2xvZ25vdCIsImNhbWxfdW5peF9maW5kY2xvc2UiLCJjYW1sX2dyX2Nsb3NlX3N1YndpbmRvdyIsImNhbWxfZmxvYXRhcnJheV9ibGl0IiwiY2FtbF9nZXRfbWlub3JfZnJlZSIsImNhbWxfc2V0X3N0YXRpY19lbnYiLCJjYW1sX2JhX2NoYW5nZV9sYXlvdXQiLCJjYW1sX2pzX25ldyIsImNhbWxfZ3JfY3VycmVudF95IiwiY2FtbF9mb3JtYXRfaW50IiwianNvb19lZmZlY3Rfbm90X3N1cHBvcnRlZCIsImNhbWxfY29udGludWF0aW9uX3VzZV9hbmRfdXBkYXRlX2hhbmRsZXJfbm9leGMiLCJodmFsIiwiaGV4biIsImhlZmYiLCJjYW1sX29ial90cnVuY2F0ZSIsImNhbWxfanNfdG9fc3RyaW5nIiwiaXNfZGlnaXRfb2RkIiwiY2FtbF9ydW50aW1lX3ZhcmlhbnQiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXQiLCJidWZmZXJlZCIsImNhbWxfYXJyYXlfY29uY2F0IiwiY2FtbF9ncl9vcGVuX2dyYXBoIiwiaW5mbyIsInNwZWNzIiwic3RhdHVzIiwid2luIiwiZG9jIiwidGl0bGUiLCJib2R5IiwiY2FtbF9tYWtlX2Zsb2F0X3ZlY3QiLCJjYW1sX2NicnRfZmxvYXQiLCJjYW1sX21lbXByb2Zfc3RvcCIsImNhbWxfZXZlbnRsb2dfcGF1c2UiLCJjYW1sX2dyZWF0ZXJlcXVhbCIsIm1sX3pfbnVtYml0cyIsInVwcGVyQm91bmQiLCJjYW1sX2dldF9leGNlcHRpb25fcmF3X2JhY2t0cmFjZSIsImNhbWxfbG9nMXBfZmxvYXQiLCJjYW1sX2xhenlfbWFrZV9mb3J3YXJkIiwibG9yX2RpZ2l0X25hdCIsImNhbWxfZ3JfYmxpdF9pbWFnZSIsImltMiIsImNhbWxfZ3Jfd2luZG93X2lkIiwiY2FtbF9qc19vbl9pZSIsInVhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCIsImNhbWxfYmFfbGF5b3V0IiwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2UiLCJjYW1sX2FycmF5X3NldCIsIm5ld3ZhbCIsImNhbWxfYWxsb2Nfc3RhY2siLCJodiIsImh4IiwiaGYiLCJjYW1sX2J5dGVzX2dyZWF0ZXJlcXVhbCIsIm1sX3pfcGVyZmVjdF9wb3dlciIsImxvZzJ6IiwienAiLCJzZXRfZGlnaXRfbmF0IiwibWxfel9pbml0IiwiY2FtbF9ncl9kb2Nfb2Zfc3RhdGUiLCJjYW1sX21sX291dHB1dF9pbnQiLCJjYW1sX29ial93aXRoX3RhZyIsImNhbWxfbWxfY2hhbm5lbF9zaXplIiwiY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2hleHN0cmluZ19vZl9mbG9hdCIsInN0eWxlIiwiZXhwX3NpZ24iLCJzaWduX3N0ciIsImNzdCIsInhfc3RyIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0IiwibWxfel9mb3JtYXQiLCJjYXMiLCJ3aWR0aCIsImFsdCIsInBhZCIsInByZWZpeCIsInByZSIsIm1sX3pfdG9faW50NjQiLCJtYXNrIiwibWxfel9zaXplIiwiY2FtbF91bml4X3JlYWRsaW5rIiwiY2FtbF9iYWNrdHJhY2Vfc3RhdHVzIiwiY2FtbF9zeXNfYXJndiIsImNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciIsImNhbWxfYmFfZmlsbCIsImNhbWxfbW9kZl9mbG9hdCIsImNhbWxfZ2NfZ2V0IiwiY2FtbF9mbG9hdF9jb21wYXJlIiwibWxfel9zaGlmdF9yaWdodF90cnVuYyIsImNhbWxfc3RyaW5nX3NldDMyIiwiY2FtbF9wYXJzZV9lbmdpbmUiLCJ0YWJsZXMiLCJlbnYiLCJFUlJDT0RFIiwibG9vcCIsInRlc3RzaGlmdCIsInNoaWZ0X3JlY292ZXIiLCJyZWR1Y2UiLCJSRUFEX1RPS0VOIiwiUkFJU0VfUEFSU0VfRVJST1IiLCJHUk9XX1NUQUNLU18xIiwiR1JPV19TVEFDS1NfMiIsIkNPTVBVVEVfU0VNQU5USUNfQUNUSU9OIiwiQ0FMTF9FUlJPUl9GVU5DVElPTiIsImVudl9zX3N0YWNrIiwiZW52X3Zfc3RhY2siLCJlbnZfc3ltYl9zdGFydF9zdGFjayIsImVudl9zeW1iX2VuZF9zdGFjayIsImVudl9zdGFja3NpemUiLCJlbnZfc3RhY2tiYXNlIiwiZW52X2N1cnJfY2hhciIsImVudl9sdmFsIiwiZW52X3N5bWJfc3RhcnQiLCJlbnZfc3ltYl9lbmQiLCJlbnZfYXNwIiwiZW52X3J1bGVfbGVuIiwiZW52X3J1bGVfbnVtYmVyIiwiZW52X3NwIiwiZW52X3N0YXRlIiwiZW52X2VycmZsYWciLCJ0YmxfdHJhbnNsX2NvbnN0IiwidGJsX3RyYW5zbF9ibG9jayIsInRibF9saHMiLCJ0YmxfbGVuIiwidGJsX2RlZnJlZCIsInRibF9kZ290byIsInRibF9zaW5kZXgiLCJ0YmxfcmluZGV4IiwidGJsX2dpbmRleCIsInRibF90YWJsZXNpemUiLCJ0YmxfdGFibGUiLCJ0YmxfY2hlY2siLCJ0YmxfbmFtZXNfY29uc3QiLCJ0YmxfbmFtZXNfYmxvY2siLCJsb2ciLCJ0b2tlbl9uYW1lIiwibmFtZXMiLCJwcmludF90b2tlbiIsInRvayIsInRva2VuIiwibjIiLCJzdGF0ZTEiLCJzcCIsImVycmZsYWciLCJhc3AiLCJjYW1sX2pzb29fZmxhZ3NfZWZmZWN0cyIsImNhbWxfdXBkYXRlX2R1bW15IiwiY2FtbF9hcnJheV9maWxsIiwiY2FtbF9zeXNfbWtkaXIiLCJjYW1sX3N0cmluZ19ub3RlcXVhbCIsImNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW4iLCJjYW1sX2dyX21ha2VfaW1hZ2UiLCJjYW1sX21sX3NldF9jaGFubmVsX291dHB1dCIsImNhbWxfcmVhZF9maWxlX2NvbnRlbnQiLCJjYW1sX2pzX3RvX2Zsb2F0IiwiY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsIm9yaWdpbiIsImV2ZW50IiwiZXJyX25vX3ByZWQiLCJlcnJfbm9fc3VjYyIsInplcm8kMiIsIm9uZSQyIiwibWludXNfb25lJDIiLCJtaW5faW50JDIiLCJtYXhfaW50JDIiLCJkdW1teV9wb3MiLCJ6ZXJvX3BvcyIsInN1Yl9mb3JtYXQiLCJmb3JtYXR0aW5nX2xpdCIsImxvY2ZtdCIsIm51bGwkMCIsImN1cnJlbnRfZGlyX25hbWUiLCJwYXJlbnRfZGlyX25hbWUiLCJkaXJfc2VwIiwicXVvdGVxdW90ZSIsIm51bGwkMSIsImN1cnJlbnRfZGlyX25hbWUkMCIsInBhcmVudF9kaXJfbmFtZSQwIiwiZGlyX3NlcCQwIiwibnVsbCQyIiwiY3VycmVudF9kaXJfbmFtZSQxIiwicGFyZW50X2Rpcl9uYW1lJDEiLCJkaXJfc2VwJDEiLCJ6ZXJvJDQiLCJvbmUkNCIsImkiLCJlcmFzZV9yZWwiLCJyZXN0IiwicmVzdCQwIiwicmVzdCQxIiwicmVzdCQyIiwicmVzdCQzIiwicmVzdCQ0IiwicmVzdCQ1IiwicmVzdCQ2IiwicmVzdCQ3IiwidHkiLCJyZXN0JDgiLCJ0eTEiLCJyZXN0JDkiLCJyZXN0JDEwIiwicmVzdCQxMSIsInJlc3QkMTIiLCJyZXN0JDEzIiwiY29uY2F0X2ZtdHR5IiwiZm10dHkxIiwiZm10dHkyIiwidHkyIiwiY29uY2F0X2ZtdCIsImZtdDEiLCJmbXQyIiwicGFkIiwicGFkJDAiLCJwcmVjIiwicGFkJDEiLCJpY29udiIsInByZWMkMCIsInBhZCQyIiwiaWNvbnYkMCIsInByZWMkMSIsInBhZCQzIiwiaWNvbnYkMSIsInByZWMkMiIsInBhZCQ0IiwiaWNvbnYkMiIsInByZWMkMyIsInBhZCQ1IiwiZmNvbnYiLCJwYWQkNiIsInN0ciIsImNociIsImZtdHR5IiwicGFkJDciLCJmbXR0eSQwIiwicGFkJDgiLCJyZXN0JDE0IiwicmVzdCQxNSIsInJlc3QkMTYiLCJmbXRpbmdfbGl0IiwicmVzdCQxNyIsImZtdGluZ19nZW4iLCJyZXN0JDE4IiwicmVzdCQxOSIsImNoYXJfc2V0Iiwid2lkdGhfb3B0IiwicmVzdCQyMCIsImNvdW50ZXIiLCJyZXN0JDIxIiwicmVzdCQyMiIsImlnbiIsInJlc3QkMjMiLCJmIiwiYXJpdHkiLCJ2IiwiciIsImN1ciIsInNlZW4iLCJuIiwiZmFpbHdpdGgiLCJzIiwiaW52YWxpZF9hcmciLCJtaW4iLCJ4IiwieSIsIm1heCIsImFicyIsImxub3QiLCJpbmZpbml0eSIsIm5lZ19pbmZpbml0eSIsIm5hbiIsIm1heF9mbG9hdCIsIm1pbl9mbG9hdCIsImVwc2lsb24iLCJtYXhfaW50IiwibWluX2ludCIsInMxIiwiczIiLCJsMSIsImwyIiwiY2hhcl9vZl9pbnQiLCJzdHJpbmdfb2ZfYm9vbCIsImIiLCJib29sX29mX3N0cmluZyIsImJvb2xfb2Zfc3RyaW5nX29wdCIsInN0cmluZ19vZl9pbnQiLCJpbnRfb2Zfc3RyaW5nX29wdCIsInZhbGlkX2Zsb2F0X2xleGVtIiwibCIsImkkMCIsInRvX3N0cmluZyIsIm9mX3N0cmluZ19vcHQiLCJhcHBlbmQiLCJ0bCIsImhkIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJvcGVuX2dlbiIsIm1vZGUiLCJwZXJtIiwibmFtZSIsImMiLCJvcGVuX3RleHQiLCJvcGVuX2JpbiIsImZsdXNoX2FsbCIsIml0ZXIiLCJhIiwib3V0cHV0X2J5dGVzIiwib2MiLCJvdXRwdXRfc3RyaW5nIiwib3V0cHV0Iiwib2ZzIiwibGVuIiwib3V0cHV0X3N1YnN0cmluZyIsIm91dHB1dF92YWx1ZSIsImNoYW4iLCJjbG9zZSIsImNsb3NlX25vZXJyIiwib3Blbl9nZW4kMCIsIm9wZW5fdGV4dCQwIiwib3Blbl9iaW4kMCIsImlucHV0IiwiaWMiLCJ1bnNhZmVfcmVhbGx5X2lucHV0Iiwib2ZzJDAiLCJsZW4kMCIsImxlbiQxIiwib2ZzJDEiLCJyZWFsbHlfaW5wdXQiLCJyZWFsbHlfaW5wdXRfc3RyaW5nIiwiaW5wdXRfbGluZSIsImJ1aWxkX3Jlc3VsdCIsImJ1ZiIsImFjY3UiLCJiZWciLCJhY2N1JDAiLCJyZXMiLCJjbG9zZV9ub2VyciQwIiwicHJpbnRfY2hhciIsInByaW50X3N0cmluZyIsInByaW50X2J5dGVzIiwicHJpbnRfaW50IiwicHJpbnRfZmxvYXQiLCJwcmludF9lbmRsaW5lIiwicHJpbnRfbmV3bGluZSIsInByZXJyX2NoYXIiLCJwcmVycl9zdHJpbmciLCJwcmVycl9ieXRlcyIsInByZXJyX2ludCIsInByZXJyX2Zsb2F0IiwicHJlcnJfZW5kbGluZSIsInByZXJyX25ld2xpbmUiLCJyZWFkX2xpbmUiLCJyZWFkX2ludCIsInJlYWRfaW50X29wdCIsInJlYWRfZmxvYXQiLCJyZWFkX2Zsb2F0X29wdCIsInN0cmluZ19vZl9mb3JtYXQiLCJzeW1ib2wiLCJzdHIyIiwic3RyMSIsImV4aXRfZnVuY3Rpb24iLCJhdF9leGl0IiwiZl95ZXRfdG9fcnVuIiwib2xkX2V4aXQiLCJuZXdfZXhpdCQwIiwibmV3X2V4aXQiLCJzdWNjZXNzIiwiZG9fYXRfZXhpdCIsImV4aXQiLCJyZXRjb2RlIiwic2V0X2JpbmFyeV9tb2RlIiwiY2xvc2UkMCIsImluX2NoYW5uZWxfbGVuZ3RoIiwicG9zX2luIiwic2Vla19pbiIsImlucHV0X3ZhbHVlIiwiaW5wdXRfYmluYXJ5X2ludCIsImlucHV0X2J5dGUiLCJpbnB1dF9jaGFyIiwic2V0X2JpbmFyeV9tb2RlJDAiLCJvdXRfY2hhbm5lbF9sZW5ndGgiLCJwb3Nfb3V0Iiwic2Vla19vdXQiLCJvdXRwdXRfYmluYXJ5X2ludCIsIm91dHB1dF9ieXRlIiwib3V0cHV0X2NoYXIiLCJmbHVzaCIsImxlZnQiLCJyaWdodCIsImlzX2xlZnQiLCJpc19yaWdodCIsImZpbmRfbGVmdCIsImZpbmRfcmlnaHQiLCJtYXBfbGVmdCIsImUiLCJtYXBfcmlnaHQiLCJtYXAiLCJ2JDAiLCJmb2xkIiwiZXF1YWwiLCJlMSIsImUyIiwidjIiLCJ2MiQwIiwiY29tcGFyZSIsIm1hdGNoJDEiLCJpc19ibG9jayIsImRvdWJsZV9maWVsZCIsInNldF9kb3VibGVfZmllbGQiLCJmaXJzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3IiLCJsYXN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl8iLCJsYXp5X3RhZyIsImNsb3N1cmVfdGFnIiwib2JqZWN0X3RhZyIsImluZml4X3RhZyIsImZvcndhcmRfdGFnIiwibm9fc2Nhbl90YWciLCJhYnN0cmFjdF90YWciLCJzdHJpbmdfdGFnIiwiZG91YmxlX3RhZyIsImRvdWJsZV9hcnJheV90YWciLCJjdXN0b21fdGFnIiwiaW50X3RhZyIsIm91dF9vZl9oZWFwX3RhZyIsInVuYWxpZ25lZF90YWciLCJpbmZvIiwib2JqIiwic3RhcnRfZW52Iiwib2ZfdmFsIiwic2xvdCIsImlkIiwiZXh0ZW5zaW9uX2NvbnN0cnVjdG9yIiwiZXh0ZW5zaW9uX25hbWUiLCJleHRlbnNpb25faWQiLCJtYXhfZXBoZV9sZW5ndGgiLCJjcmVhdGUiLCJsZW5ndGgiLCJyYWlzZV9pZl9pbnZhbGlkX29mZnNldCIsIm8iLCJtc2ciLCJnZXRfa2V5IiwiZ2V0X2tleV9jb3B5Iiwic2V0X2tleSIsInVuc2V0X2tleSIsImNoZWNrX2tleSIsImJsaXRfa2V5IiwibzEiLCJvMiIsInJhaXNlX3VuZGVmaW5lZCIsImZvcmNlX2xhenlfYmxvY2siLCJibGsiLCJjbG9zdXJlIiwicmVzdWx0IiwiZm9yY2VfdmFsX2xhenlfYmxvY2siLCJmb3JjZSIsImx6diIsInQiLCJmb3JjZV92YWwiLCJ0b19sYXp5IiwiZnJvbV92YWwiLCJpc192YWwiLCJtYXAkMCIsIm1hcF92YWwiLCJlbXB0eSIsInJldHVybiQwIiwiY29ucyIsIm5leHQiLCJhcHBlbmQkMCIsInNlcTEiLCJzZXEyIiwibWFwJDEiLCJzZXEiLCJmaWx0ZXJfbWFwIiwic2VxJDAiLCJmaWx0ZXIiLCJjb25jYXQiLCJmbGF0X21hcCIsImZvbGRfbGVmdCIsImFjYyIsImFjYyQwIiwiYWNjJDEiLCJ1bmZvbGQiLCJ1IiwidSQwIiwiaXNfZW1wdHkiLCJ4cyIsInVuY29ucyIsInhzJDAiLCJsZW5ndGgkMCIsInhzJDEiLCJpdGVyaSIsImZvbGRfbGVmdGkiLCJhY2N1JDEiLCJmb3JfYWxsIiwicCIsImV4aXN0cyIsImZpbmQiLCJmaW5kX21hcCIsIml0ZXIyIiwieXMiLCJ5cyQwIiwieXMkMSIsImZvbGRfbGVmdDIiLCJmb3JfYWxsMiIsImV4aXN0czIiLCJlcXVhbCQwIiwiZXEiLCJjb21wYXJlJDAiLCJjbXAiLCJpbml0X2F1eCIsImoiLCJpbml0IiwicmVwZWF0IiwiZm9yZXZlciIsImN5Y2xlX25vbmVtcHR5IiwiY3ljbGUiLCJpdGVyYXRlMSIsIml0ZXJhdGUiLCJtYXBpX2F1eCIsIm1hcGkiLCJ0YWlsX3NjYW4iLCJzJDAiLCJzY2FuIiwidGFrZV9hdXgiLCJ0YWtlIiwiZHJvcCIsIm4kMCIsIm4kMSIsInRha2Vfd2hpbGUiLCJkcm9wX3doaWxlIiwibm9kZSIsImdyb3VwIiwiZmFpbHVyZSIsIm1lbW9pemUiLCJvbmNlIiwiYWN0aW9uIiwiemlwIiwibWFwMiIsImludGVybGVhdmUiLCJzb3J0ZWRfbWVyZ2UxIiwic29ydGVkX21lcmdlIiwibWFwX2ZzdCIsInh5cyIsInh5cyQwIiwibWFwX3NuZCIsInVuemlwIiwiZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIiwiZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCIsInoiLCJwYXJ0aXRpb25fbWFwIiwicGFydGl0aW9uIiwicGVlbCIsInhzcyIsInRyYW5zcG9zZSIsInRhaWxzIiwiaGVhZHMiLCJyZW1haW5kZXJzIiwieHNzJDAiLCJ0YWlscyQwIiwiaGVhZHMkMCIsIm1hcF9wcm9kdWN0IiwicHJvZHVjdCIsIm9mX2Rpc3BlbnNlciIsIml0IiwidG9fZGlzcGVuc2VyIiwiaW50cyIsIm5vbmUiLCJzb21lIiwidmFsdWUiLCJkZWZhdWx0JDAiLCJnZXQkMCIsImJpbmQiLCJqb2luIiwibWFwJDIiLCJmb2xkJDAiLCJpdGVyJDAiLCJpc19ub25lIiwiaXNfc29tZSIsImVxdWFsJDEiLCJvMCIsInYxIiwidjAiLCJjb21wYXJlJDEiLCJ0b19yZXN1bHQiLCJ0b19saXN0IiwidG9fc2VxIiwib2siLCJlcnJvciIsInZhbHVlJDAiLCJnZXRfb2siLCJnZXRfZXJyb3IiLCJiaW5kJDAiLCJqb2luJDAiLCJtYXAkMyIsIm1hcF9lcnJvciIsImZvbGQkMSIsIml0ZXIkMSIsIml0ZXJfZXJyb3IiLCJpc19vayIsImlzX2Vycm9yIiwiZXF1YWwkMiIsInIwIiwicjEiLCJjb21wYXJlJDIiLCJ0b19vcHRpb24iLCJ0b19saXN0JDAiLCJ0b19zZXEkMCIsImVxdWFsJDMiLCJjb21wYXJlJDMiLCJ0b19mbG9hdCIsInRvX3N0cmluZyQwIiwiZXNjYXBlZCIsImxvd2VyY2FzZSIsInVwcGVyY2FzZSIsImxvd2VyY2FzZV9hc2NpaSIsInVwcGVyY2FzZV9hc2NpaSIsImNvbXBhcmUkNCIsImMxIiwiYzIiLCJlcXVhbCQ0IiwibWluJDAiLCJtYXgkMCIsImxvX2JvdW5kIiwiaGlfYm91bmQiLCJib20iLCJyZXAiLCJzdWNjIiwicHJlZCIsImlzX3ZhbGlkIiwib2ZfaW50IiwiaXNfY2hhciIsIm9mX2NoYXIiLCJ0b19jaGFyIiwidW5zYWZlX3RvX2NoYXIiLCJlcXVhbCQ1IiwiY29tcGFyZSQ1IiwiaGFzaCIsInV0Zl9kZWNvZGVfaXNfdmFsaWQiLCJkIiwidXRmX2RlY29kZV9sZW5ndGgiLCJ1dGZfZGVjb2RlX3VjaGFyIiwidXRmX2RlY29kZSIsImRlY19pbnZhbGlkIiwidXRmXzhfYnl0ZV9sZW5ndGgiLCJ1dGZfMTZfYnl0ZV9sZW5ndGgiLCJsZW5ndGgkMSIsInBhcmFtJDAiLCJjb25zJDAiLCJudGgiLCJsJDAiLCJsJDEiLCJudGhfb3B0IiwicmV2X2FwcGVuZCIsImwxJDAiLCJsMiQwIiwibDEkMSIsImwyJDEiLCJyZXYiLCJpbml0X2F1eCQwIiwicGFyYW0iLCJhMiIsImExIiwicGFpciIsIngkMCIsInJ5IiwicngiLCJ0MiIsImgyIiwidDEiLCJoMSIsInNvcnQiLCJ4MiIsIngxIiwidGwkMSIsIngzIiwieDIkMCIsIngxJDAiLCJuMSIsIm4yIiwicmV2X3NvcnQiLCJ0bCQwIiwiYyQwIiwiYyQxIiwiYyQyIiwiYyQzIiwiYyQ0IiwiYyQ1IiwiYyQ2IiwiYWNjdSQyIiwiYXV4IiwidGFpbCIsImRpcmVjdCIsImRlcHRoIiwiemVybyIsIm9uZSIsIm1pbnVzX29uZSIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90IiwiZXF1YWwkNyIsImNvbXBhcmUkNyIsIm1pbiQxIiwibWF4JDEiLCJ0b19zdHJpbmckMSIsInN5bWJvbCQwIiwiZHN0b2ZmIiwic3Jjb2ZmIiwiY3B5bGVuIiwib2ZzMSIsIm9mczIiLCJzZXAiLCJzZXBsZW4iLCJkc3QiLCJpc19zcGFjZSIsImFwcGx5MSIsInByZWZpeCIsImxlbl9zIiwibGVuX3ByZSIsInN1ZmZpeCIsImxlbl9zdWYiLCJkaWZmIiwiaW5kZXhfcmVjIiwibGltIiwiaSQxIiwiaW5kZXhfcmVjX29wdCIsInJpbmRleF9yZWMiLCJyaW5kZXhfcmVjX29wdCIsIm5ld19sZW4iLCJuZXdfYnVmIiwiZ2V0JDEiLCJzZXQkMCIsImRlY19yZXQiLCJub3RfaW5feDgwX3RvX3hCRiIsIm5vdF9pbl94QTBfdG9feEJGIiwibm90X2luX3g4MF90b194OUYiLCJub3RfaW5feDkwX3RvX3hCRiIsIm5vdF9pbl94ODBfdG9feDhGIiwidXRmXzhfdWNoYXJfMyIsImIwIiwiYjEiLCJiMiIsInV0Zl84X3VjaGFyXzQiLCJiMyIsImkkNCIsImIxJDEiLCJpJDUiLCJiMiQxIiwiaSQ2IiwiaSQxMCIsImIxJDMiLCJpJDExIiwiYjIkMyIsImkkMTIiLCJiMyQxIiwiaSQ3IiwiYjEkMiIsImkkOCIsImIyJDIiLCJpJDkiLCJiMyQwIiwiaSQxMyIsImIxJDQiLCJpJDE0IiwiYjIkNCIsImkkMiIsImIxJDAiLCJpJDMiLCJiMiQwIiwiaSQxNSIsImIxJDUiLCJzZXQiLCJsYXN0JDEiLCJsYXN0JDAiLCJsYXN0IiwibGFzdCQzIiwibGFzdCQyIiwibGFzdCQ0IiwibGFzdCQ1IiwiaGkiLCJsbyIsImlzX3NwYWNlJDAiLCJpbmRleF9yZWMkMCIsImluZGV4X3JlY19vcHQkMCIsInJpbmRleF9yZWMkMCIsInJpbmRleF9yZWNfb3B0JDAiLCJnIiwiZXF1YWwkMTAiLCJjb21wYXJlJDEwIiwidG9fc3RyaW5nJDIiLCJ0b19idWZmZXIiLCJidWZmIiwiZmxhZ3MiLCJoZWFkZXJfc2l6ZSIsImRhdGFfc2l6ZSIsInRvdGFsX3NpemUiLCJmcm9tX2J5dGVzIiwiZnJvbV9zdHJpbmciLCJzeCIsInN5IiwibGEiLCJsYiIsInJlcyQwIiwibGlzdF9sZW5ndGgiLCJwYXJhbSQxIiwiaGQkMCIsImlucHV0X2FycmF5IiwiZWx0Iiwib3V0cHV0X2FycmF5IiwiZWx0JDAiLCJhY2MkMiIsImEwIiwiYmkiLCJhaSIsIm5hIiwibmIiLCJtYXhzb24iLCJpMzEiLCJ0cmlja2xlZG93biIsInRyaWNrbGUiLCJidWJibGVkb3duIiwiYnViYmxlIiwiZSQwIiwiZmF0aGVyIiwibWVyZ2UiLCJzcmMxb2ZzIiwic3JjMWxlbiIsInNyYzIiLCJzcmMyb2ZzIiwic3JjMmxlbiIsImRzdG9mcyIsInNyYzFyIiwic3JjMnIiLCJzMiQxIiwiczEkMSIsImkxIiwiaTIiLCJpMiQwIiwiZCQwIiwiczIkMCIsImkxJDAiLCJkJDEiLCJzMSQwIiwiaXNvcnR0byIsInNyY29mcyIsInNvcnR0byIsInplcm8kMCIsIm9uZSQwIiwibWludXNfb25lJDAiLCJpc19maW5pdGUiLCJpc19pbmZpbml0ZSIsImlzX25hbiIsInBpIiwiaXNfaW50ZWdlciIsInN1Y2MkMCIsInByZWQkMCIsImVxdWFsJDExIiwibWluJDIiLCJtYXgkMiIsIm1pbl9tYXgiLCJtaW5fbnVtIiwibWF4X251bSIsIm1pbl9tYXhfbnVtIiwiaGFzaCQwIiwidW5zYWZlX2ZpbGwiLCJjaGVjayIsIm1ha2UkMiIsImluaXQkNCIsImFwcGVuZCQyIiwiY29uY2F0JDMiLCJobGVuIiwic3ViJDIiLCJjb3B5JDIiLCJmaWxsJDEiLCJibGl0JDIiLCJzcmMiLCJzb2ZzIiwiZG9mcyIsInRvX2xpc3QkMiIsIm9mX2xpc3QkMCIsImgiLCJpdGVyJDYiLCJpdGVyMiQyIiwibWFwJDgiLCJtYXAyJDIiLCJpdGVyaSQ0IiwibWFwaSQ0IiwiZm9sZF9sZWZ0JDQiLCJmb2xkX3JpZ2h0JDMiLCJleGlzdHMkNCIsImZvcl9hbGwkNCIsIm1lbSQxIiwibWVtX2llZWUiLCJzb3J0JDAiLCJzdGFibGVfc29ydCIsInRvX3NlcSQ1IiwidG9fc2VxaSQyIiwib2Zfc2VxJDMiLCJtYXBfdG9fYXJyYXkiLCJtYXBfZnJvbV9hcnJheSIsInplcm8kMSIsIm9uZSQxIiwibWludXNfb25lJDEiLCJzdWNjJDEiLCJwcmVkJDEiLCJhYnMkMSIsIm1pbl9pbnQkMSIsIm1heF9pbnQkMSIsImxvZ25vdCQwIiwidW5zaWduZWRfdG9faW50IiwidG9fc3RyaW5nJDMiLCJvZl9zdHJpbmdfb3B0JDAiLCJjb21wYXJlJDExIiwiZXF1YWwkMTIiLCJ1bnNpZ25lZF9jb21wYXJlIiwibSIsIm1pbiQzIiwibWF4JDMiLCJ1bnNpZ25lZF9kaXYiLCJxIiwidW5zaWduZWRfcmVtIiwic3VjYyQyIiwicHJlZCQyIiwiYWJzJDIiLCJsb2dub3QkMSIsIm1heF9pbnQkMyIsInVuc2lnbmVkX3RvX2ludCQwIiwidG9fc3RyaW5nJDQiLCJvZl9zdHJpbmdfb3B0JDEiLCJjb21wYXJlJDEyIiwiZXF1YWwkMTMiLCJ1bnNpZ25lZF9jb21wYXJlJDAiLCJtaW4kNCIsIm1heCQ0IiwidW5zaWduZWRfZGl2JDAiLCJ1bnNpZ25lZF9yZW0kMCIsInplcm8kMyIsIm9uZSQzIiwibWludXNfb25lJDMiLCJzdWNjJDMiLCJwcmVkJDMiLCJhYnMkMyIsIm1pbl9pbnQkMyIsIm1heF9pbnQkNCIsImxvZ25vdCQyIiwidW5zaWduZWRfdG9faW50JDEiLCJ0b19zdHJpbmckNSIsIm9mX3N0cmluZ19vcHQkMiIsImNvbXBhcmUkMTMiLCJlcXVhbCQxNCIsInVuc2lnbmVkX2NvbXBhcmUkMSIsIm1pbiQ1IiwibWF4JDUiLCJ1bnNpZ25lZF9kaXYkMSIsInVuc2lnbmVkX3JlbSQxIiwiZW5naW5lIiwidGJsIiwic3RhdGUiLCJuZXdfZW5naW5lIiwiZnJvbV9mdW5jdGlvbiIsIm9wdCIsInN0aCIsIndpdGhfcG9zaXRpb25zIiwiYXV4X2J1ZmZlciIsImxleGJ1ZiIsInJlYWQiLCJuZXdsZW4iLCJuZXdidWYiLCJmcm9tX2NoYW5uZWwiLCJmcm9tX3N0cmluZyQwIiwic2V0X3Bvc2l0aW9uIiwicG9zaXRpb24iLCJzZXRfZmlsZW5hbWUiLCJmbmFtZSIsImxleGVtZSIsInN1Yl9sZXhlbWUiLCJzdWJfbGV4ZW1lX29wdCIsInN1Yl9sZXhlbWVfY2hhciIsInN1Yl9sZXhlbWVfY2hhcl9vcHQiLCJsZXhlbWVfY2hhciIsImxleGVtZV9zdGFydCIsImxleGVtZV9lbmQiLCJsZXhlbWVfc3RhcnRfcCIsImxleGVtZV9lbmRfcCIsIm5ld19saW5lIiwibGNwIiwiZmx1c2hfaW5wdXQiLCJlbnYiLCJncm93X3N0YWNrcyIsIm9sZHNpemUiLCJuZXdzaXplIiwibmV3X3MiLCJuZXdfdiIsIm5ld19zdGFydCIsIm5ld19lbmQiLCJjbGVhcl9wYXJzZXIiLCJjdXJyZW50X2xvb2thaGVhZF9mdW4iLCJ5eXBhcnNlIiwidGFibGVzIiwic3RhcnQiLCJsZXhlciIsImluaXRfYXNwIiwiaW5pdF9zcCIsImluaXRfc3RhY2tiYXNlIiwiaW5pdF9zdGF0ZSIsImluaXRfY3Vycl9jaGFyIiwiaW5pdF9sdmFsIiwiaW5pdF9lcnJmbGFnIiwiY21kIiwiYXJnIiwiYXJnJDAiLCJhcmckMSIsImNtZCQwIiwiZXhuIiwiY3Vycl9jaGFyIiwidG9rIiwicGVla192YWwiLCJzeW1ib2xfc3RhcnRfcG9zIiwic3QiLCJlbiIsInN5bWJvbF9lbmRfcG9zIiwicmhzX3N0YXJ0X3BvcyIsInJoc19lbmRfcG9zIiwic3ltYm9sX3N0YXJ0Iiwic3ltYm9sX2VuZCIsInJoc19zdGFydCIsInJoc19lbmQiLCJpc19jdXJyZW50X2xvb2thaGVhZCIsInBhcnNlX2Vycm9yIiwiaGVpZ2h0IiwiaGwiLCJoJDAiLCJociIsImJhbCIsImxyIiwibHYiLCJsbCIsImxyciIsImxydiIsImxybCIsInJyIiwicnYiLCJybCIsInJsciIsInJsdiIsInJsbCIsImFkZCIsInNpbmdsZXRvbiIsImFkZF9taW5fZWxlbWVudCIsImFkZF9tYXhfZWxlbWVudCIsInJoIiwibGgiLCJtaW5fZWx0IiwibWluX2VsdF9vcHQiLCJtYXhfZWx0IiwibWF4X2VsdF9vcHQiLCJyZW1vdmVfbWluX2VsdCIsInIkMCIsInNwbGl0IiwicHJlcyIsInByZXMkMCIsIm1lbSIsInJlbW92ZSIsInVuaW9uIiwicjIiLCJyMiQwIiwicjEkMCIsImludGVyIiwic3BsaXRfYmlzIiwiZGlzam9pbnQiLCJjb25zX2VudW0iLCJzJDEiLCJlJDEiLCJlMiQyIiwiZTEkMiIsImUyJDAiLCJlMSQwIiwiZTIkMSIsImUxJDEiLCJzdWJzZXQiLCJwdiIsImxmIiwibHQiLCJyZiIsInJ0IiwiY2FyZGluYWwiLCJlbGVtZW50c19hdXgiLCJlbGVtZW50cyIsImZpbmRfZmlyc3QiLCJmaW5kX2ZpcnN0X29wdCIsImZpbmRfbGFzdCIsImZpbmRfbGFzdF9vcHQiLCJmaW5kX29wdCIsInRyeV9qb2luIiwidiQxIiwib2ZfbGlzdCIsInN1YiIsImwkMyIsIngwIiwibCQ0IiwieDAkMCIsImwkNSIsIngwJDEiLCJubCIsIm1pZCIsImwkMiIsIng0IiwiYWRkX3NlcSIsIm9mX3NlcSIsInNlcV9vZl9lbnVtIiwic25vY19lbnVtIiwicmV2X3NlcV9vZl9lbnVtIiwidG9fcmV2X3NlcSIsInRvX3NlcV9mcm9tIiwibG93IiwibGQiLCJscmQiLCJyZCIsInJsZCIsImRhdGEiLCJtaW5fYmluZGluZyIsIm1pbl9iaW5kaW5nX29wdCIsIm1heF9iaW5kaW5nIiwibWF4X2JpbmRpbmdfb3B0IiwicmVtb3ZlX21pbl9iaW5kaW5nIiwidXBkYXRlIiwiZGF0YSQwIiwibSQwIiwiYWRkX21pbl9iaW5kaW5nIiwiayIsImFkZF9tYXhfYmluZGluZyIsImNvbmNhdF9vcl9qb2luIiwiZDEiLCJkMiIsImQyJDAiLCJkMSQwIiwiZDIkMSIsImQxJDEiLCJwdmQiLCJmdmQiLCJtJDEiLCJtMSIsIm0yIiwiYmluZGluZ3NfYXV4IiwiYmluZGluZ3MiLCJjcmVhdGUkMCIsImNsZWFyIiwiY29weSQzIiwicHVzaCIsInBvcCIsInBvcF9vcHQiLCJ0b3AiLCJ0b3Bfb3B0IiwiaXNfZW1wdHkkMCIsImxlbmd0aCQyIiwiaXRlciQ3IiwiZm9sZCQyIiwidG9fc2VxJDYiLCJvZl9zZXEkNCIsImNyZWF0ZSQxIiwiY2xlYXIkMCIsImNlbGwiLCJwZWVrIiwiY29udGVudCIsInBlZWtfb3B0IiwidGFrZSQwIiwidGFrZV9vcHQiLCJjb3B5JDQiLCJxX3JlcyIsInByZXYiLCJpc19lbXB0eSQxIiwibGVuZ3RoJDMiLCJpdGVyJDgiLCJmb2xkJDMiLCJ0cmFuc2ZlciIsInExIiwicTIiLCJ0b19zZXEkNyIsImFkZF9zZXEkMCIsIm9mX3NlcSQ1IiwiY291bnQiLCJmaWxsX2J1ZmYiLCJnZXRfZGF0YSIsImQxMSIsImEkMCIsImEkMSIsInBlZWtfZGF0YSIsInBlZWskMCIsImp1bmtfZGF0YSIsImp1bmsiLCJuZ2V0X2RhdGEiLCJhbCIsIm5wZWVrIiwiZW1wdHkkMiIsIml0ZXIkOSIsInN0cm0iLCJmcm9tIiwib2ZfbGlzdCQxIiwib2Zfc3RyaW5nIiwib2ZfYnl0ZXMkMCIsIm9mX2NoYW5uZWwiLCJpYXBwIiwiaWNvbnMiLCJpc2luZyIsImxhcHAiLCJsY29ucyIsImxzaW5nIiwic2VtcHR5Iiwic2xhenkiLCJkdW1wIiwiZHVtcF9kYXRhIiwiY3JlYXRlJDIiLCJjb250ZW50cyIsInRvX2J5dGVzJDAiLCJzdWIkMyIsImJsaXQkMyIsIm50aCQwIiwibGVuZ3RoJDQiLCJjbGVhciQxIiwicmVzZXQiLCJyZXNpemUiLCJtb3JlIiwib2xkX3BvcyIsIm9sZF9sZW4iLCJuZXdfYnVmZmVyIiwiYWRkX2NoYXIiLCJwb3MiLCJ1Y2hhcl91dGZfOF9ieXRlX2xlbmd0aF9tYXgiLCJ1Y2hhcl91dGZfMTZfYnl0ZV9sZW5ndGhfbWF4IiwiYWRkX3V0Zl84X3VjaGFyIiwiYWRkX3V0Zl8xNmJlX3VjaGFyIiwiYWRkX3V0Zl8xNmxlX3VjaGFyIiwiYWRkX3N1YnN0cmluZyIsIm9mZnNldCIsIm5ld19wb3NpdGlvbiIsImFkZF9zdWJieXRlcyIsImFkZF9zdHJpbmciLCJhZGRfYnl0ZXMiLCJhZGRfYnVmZmVyIiwiYnMiLCJhZGRfY2hhbm5lbCIsImFscmVhZHlfcmVhZCIsInRvX3JlYWQiLCJhbHJlYWR5X3JlYWQkMCIsInRvX3JlYWQkMCIsIm91dHB1dF9idWZmZXIiLCJhZGRfc3Vic3RpdHV0ZSIsImxpbSQxIiwicHJldmlvdXMiLCJjdXJyZW50Iiwib3BlbmluZyIsImxpbSQwIiwic3RvcCIsImskMiIsImskMCIsImskMSIsIm5leHRfaSIsImlkZW50IiwidHJ1bmNhdGUiLCJ0b19zZXEkOCIsInRvX3NlcWkkMyIsImFkZF9zZXEkMSIsIm9mX3NlcSQ2IiwiYWRkX2ludDgiLCJhZGRfaW50MTZfbmUiLCJhZGRfaW50MzJfbmUiLCJhZGRfaW50NjRfbmUiLCJhZGRfaW50MTZfbGUiLCJhZGRfaW50MTZfYmUiLCJhZGRfaW50MzJfbGUiLCJhZGRfaW50MzJfYmUiLCJhZGRfaW50NjRfbGUiLCJhZGRfaW50NjRfYmUiLCJjcmVhdGVfY2hhcl9zZXQiLCJhZGRfaW5fY2hhcl9zZXQiLCJzdHJfaW5kIiwibWFzayIsImZyZWV6ZV9jaGFyX3NldCIsInJldl9jaGFyX3NldCIsImNoYXJfc2V0JDAiLCJpc19pbl9jaGFyX3NldCIsInBhZF9vZl9wYWRfb3B0IiwicGFkX29wdCIsIndpZHRoIiwicGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IiwiZm10IiwicGFkX29wdCQwIiwicGFkX29wdCQxIiwicGFkX29wdCQyIiwicGFkX29wdCQzIiwicGFkX29wdCQ0IiwicHJlY19vcHQiLCJwYWRfb3B0JDUiLCJuZGVjIiwicGFkX29wdCQ2IiwicGFkX29wdCQ3IiwicGFkX29wdCQ4IiwiZGVmYXVsdF9mbG9hdF9wcmVjaXNpb24iLCJidWZmZXJfY3JlYXRlIiwiaW5pdF9zaXplIiwiYnVmZmVyX2NoZWNrX3NpemUiLCJvdmVyaGVhZCIsIm1pbl9sZW4iLCJuZXdfc3RyIiwiYnVmZmVyX2FkZF9jaGFyIiwiYnVmZmVyX2FkZF9zdHJpbmciLCJzdHJfbGVuIiwiYnVmZmVyX2NvbnRlbnRzIiwiY2hhcl9vZl9pY29udiIsImNoYXJfb2ZfZmNvbnYiLCJjRiIsImJwcmludF9wYWR0eSIsInBhZHR5IiwiYnByaW50X2lnbm9yZWRfZmxhZyIsImlnbl9mbGFnIiwiYnByaW50X3BhZF9vcHQiLCJicHJpbnRfcGFkZGluZyIsInBhZHR5JDAiLCJicHJpbnRfcHJlY2lzaW9uIiwiYnByaW50X2ljb252X2ZsYWciLCJicHJpbnRfYWx0aW50X2ZtdCIsImJwcmludF9mY29udl9mbGFnIiwic3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0Iiwic3RyJDAiLCJicHJpbnRfY2hhcl9saXRlcmFsIiwiYnByaW50X3N0cmluZ19saXRlcmFsIiwiYnByaW50X2ZtdHR5Iiwic3ViX2ZtdHR5Iiwic3ViX2ZtdHR5JDAiLCJpbnRfb2ZfY3VzdG9tX2FyaXR5Iiwic3RyaW5nX29mX2ZtdCIsImZtdGl0ZXIiLCJmbXQkMCIsImlnbl9mbGFnJDAiLCJjaHIkMCIsInN0ciQxIiwiaXNfYWxvbmUkMCIsImlzX2Fsb25lIiwiYWZ0ZXIiLCJiZWZvcmUiLCJqJDAiLCJqJDEiLCJmbXQkMSIsInN5bW0iLCJmbXR0eV9yZWxfZGV0IiwiZGUiLCJlZCIsImFmIiwiZmEiLCJkZSQwIiwiZWQkMCIsImFmJDAiLCJmYSQwIiwiZGUkMSIsImVkJDEiLCJhZiQxIiwiZmEkMSIsImRlJDIiLCJlZCQyIiwiYWYkMiIsImZhJDIiLCJkZSQzIiwiZWQkMyIsImFmJDMiLCJmYSQzIiwiZGUkNCIsImVkJDQiLCJhZiQ0IiwiZmEkNCIsImRlJDUiLCJlZCQ1IiwiYWYkNSIsImZhJDUiLCJkZSQ2IiwiZWQkNiIsImFmJDYiLCJmYSQ2IiwiZGUkNyIsImVkJDciLCJhZiQ3IiwiZmEkNyIsImRlJDgiLCJlZCQ4IiwiYWYkOCIsImZhJDgiLCJ0cmFucyIsImpkIiwiZGoiLCJnYSIsImFnIiwiZGUkOSIsImVkJDkiLCJhZiQ5IiwiZmEkOSIsImRlJDEwIiwiZWQkMTAiLCJhZiQxMCIsImZhJDEwIiwiZGUkMTEiLCJlZCQxMSIsImFmJDExIiwiZmEkMTEiLCJkZSQxMiIsImVkJDEyIiwiYWYkMTIiLCJmYSQxMiIsImRlJDEzIiwiZWQkMTMiLCJhZiQxMyIsImZhJDEzIiwicmVzdDIiLCJyZXN0MiQwIiwicmVzdDIkMSIsInJlc3QyJDIiLCJyZXN0MiQzIiwicmVzdDIkNCIsInJlc3QyJDUiLCJyZXN0MiQ2IiwicmVzdDIkNyIsInR5MiQwIiwicmVzdDIkOCIsInR5MjIiLCJ0eTIxIiwiZjQiLCJmMiIsInJlc3QyJDkiLCJyZXN0MiQxMCIsInJlc3QyJDExIiwicmVzdDIkMTIiLCJyZXN0MiQxMyIsImZtdHR5X29mX3BhZGRpbmdfZm10dHkiLCJmbXR0eV9vZl9jdXN0b20iLCJhcml0eSQwIiwiZm10dHlfb2ZfZm10IiwidHlfcmVzdCIsInByZWNfdHkiLCJmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkiLCJ0eV9yZXN0JDAiLCJwcmVjX3R5JDAiLCJ0eV9yZXN0JDEiLCJwcmVjX3R5JDEiLCJ0eV9yZXN0JDIiLCJwcmVjX3R5JDIiLCJ0eV9yZXN0JDMiLCJwcmVjX3R5JDMiLCJmbXR0eSQxIiwiZm10dHkkMiIsImZtdHR5JDMiLCJ0eSQwIiwiZm10dHkkNCIsImZtdHR5JDUiLCJ0eXBlX3BhZGRpbmciLCJ3IiwidHlwZV9wYWRwcmVjIiwidHlwZV9mb3JtYXQiLCJ0eXBlX2Zvcm1hdF9nZW4iLCJ0eXBlX2lnbm9yZWRfcGFyYW1fb25lIiwiZm10dHlfcmVzdCIsImZtdF9yZXN0IiwiZm10dHlfcmVzdCQwIiwiZm10X3Jlc3QkMCIsImZtdF9yZXN0JDEiLCJmbXR0eV9yZXN0JDEiLCJmbXQkMiIsImZtdF9yZXN0JDIiLCJmbXR0eV9yZXN0JDIiLCJmbXQkMyIsImZtdF9yZXN0JDMiLCJmbXR0eV9yZXN0JDMiLCJmbXQkNCIsImZtdF9yZXN0JDQiLCJmbXR0eV9yZXN0JDQiLCJmbXQkNSIsImZtdF9yZXN0JDUiLCJmbXR0eV9yZXN0JDUiLCJwcmVjJDQiLCJmbXR0eSQ2IiwiZm10JDYiLCJmbXRfcmVzdCQ2IiwicHJlYyQ1IiwiZm10dHlfcmVzdCQ2IiwicHJlYyQ2IiwiZm10dHkkNyIsImZtdCQ3IiwiZm10X3Jlc3QkNyIsInByZWMkNyIsImZtdHR5X3Jlc3QkNyIsInByZWMkOCIsImZtdHR5JDgiLCJmbXQkOCIsImZtdF9yZXN0JDgiLCJmbXR0eV9yZXN0JDgiLCJmbXR0eSQ5IiwiZm10JDkiLCJmbXRfcmVzdCQ5IiwiZm10dHkkMTAiLCJmbXQkMTAiLCJmbXRfcmVzdCQxMCIsImZtdHR5JDExIiwiZm10JDExIiwiZm10X3Jlc3QkMTEiLCJmbXR0eSQxMiIsImZtdCQxMiIsImZtdHR5X3Jlc3QkOSIsImZtdF9yZXN0JDEyIiwiZm10dHkkMTMiLCJmbXQkMTMiLCJmbXR0eV9yZXN0JDEwIiwic3ViX2ZtdHR5MSIsImZtdF9yZXN0JDEzIiwic3ViX2ZtdHR5JDEiLCJmbXR0eSQxNCIsImZtdCQxNCIsImZtdHR5X3Jlc3QkMTEiLCJmbXRfcmVzdCQxNCIsImZtdHR5JDE1IiwiZm10JDE1IiwiZm10dHlfcmVzdCQxMiIsImZtdF9yZXN0JDE1IiwiZm10dHkkMTYiLCJmbXQkMTYiLCJmbXRfcmVzdCQxNiIsImZtdHR5JDE3IiwiZm10JDE3IiwiZm10X3Jlc3QkMTciLCJmb3JtYXR0aW5nX2dlbiIsImZtdHR5MyIsImZtdDMiLCJmbXQxJDAiLCJmbXR0eTIkMCIsImZtdDIkMCIsImZtdHR5MyQwIiwiZm10MyQwIiwiZm10dHlfcmVzdCQxMyIsImZtdF9yZXN0JDE4IiwiZm10dHkkMTgiLCJmbXQkMTgiLCJmbXR0eV9yZXN0JDE0IiwiZm10X3Jlc3QkMTkiLCJmbXR0eSQxOSIsImZtdCQxOSIsImZtdHR5X3Jlc3QkMTUiLCJmbXRfcmVzdCQyMCIsImZtdHR5JDIwIiwiZm10JDIwIiwic3ViX2ZtdHR5JDIiLCJzdWJfZm10dHkkMyIsInR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aSIsImZtdHR5JDIyIiwiZm10JDIyIiwic3ViX2ZtdHR5JDQiLCJmbXR0eV9yZXN0JDE2IiwiZm10dHkkMjEiLCJmbXQkMjEiLCJzdWJfZm10dHlfcmVzdCIsInN1Yl9mbXR0eV9yZXN0JDAiLCJzdWJfZm10dHlfcmVzdCQxIiwic3ViX2ZtdHR5X3Jlc3QkMiIsInN1Yl9mbXR0eV9yZXN0JDMiLCJzdWJfZm10dHlfcmVzdCQ0Iiwic3ViX2ZtdHR5X3Jlc3QkNSIsInN1Yl9mbXR0eV9yZXN0JDYiLCJzdWJfZm10dHlfcmVzdCQ3Iiwic3ViX2ZtdHR5X3Jlc3QkOCIsInN1Yl9mbXR0eV9yZXN0JDkiLCJzdWJfZm10dHlfcmVzdCQxMCIsInN1Yl9mbXR0eV9yZXN0JDExIiwic3ViX2ZtdHR5X3Jlc3QkMTIiLCJzdWJfZm10dHlfcmVzdCQxMyIsInN1Yl9mbXR0eV9yZXN0JDE0Iiwic3ViMl9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE1Iiwic3ViMl9mbXR0eSQwIiwic3ViX2ZtdHR5X3Jlc3QkMTYiLCJzdWIyX2ZtdHR5JDEiLCJzdWIxX2ZtdHR5Iiwic3ViX2ZtdHR5X3Jlc3QkMTciLCJzdWIyX2ZtdHR5JDIiLCJzdWIxX2ZtdHR5JDAiLCJzdWJfZm10dHlfcmVzdCQxOCIsInN1Yl9mbXR0eV9yZXN0JDE5Iiwic3ViX2ZtdHR5X3Jlc3QkMjAiLCJzdWJfZm10dHlfcmVzdCQyMSIsInN1Yl9mbXR0eV9yZXN0JDIyIiwic3ViX2ZtdHR5X3Jlc3QkMjMiLCJzdWJfZm10dHlfcmVzdCQyNCIsInN1Yl9mbXR0eV9yZXN0JDI1Iiwic3ViX2ZtdHR5X3Jlc3QkMjYiLCJyZWNhc3QiLCJmaXhfcGFkZGluZyIsIndpZHRoJDAiLCJmaXhfaW50X3ByZWNpc2lvbiIsInJlcyQxIiwic3RyaW5nX3RvX2NhbWxfc3RyaW5nIiwiZm9ybWF0X29mX2Zjb252Iiwic3ltYiIsInRyYW5zZm9ybV9pbnRfYWx0IiwiZGlnaXRzIiwicHV0IiwiY29udmVydF9pbnQiLCJjb252ZXJ0X2ludDMyIiwiY29udmVydF9uYXRpdmVpbnQiLCJjb252ZXJ0X2ludDY0IiwiY29udmVydF9mbG9hdCIsImhleCIsInNpZ24iLCJjYW1sX3NwZWNpYWxfdmFsIiwic3RyaW5nX29mX2ZtdHR5IiwibWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24iLCJtYWtlX3ByaW50ZiIsInAkMCIsInAkMSIsIm1ha2VfcGFkZGluZyIsIm5ld19hY2MiLCJtYWtlX3ByaW50ZiQwIiwiYWNjJDMiLCJhY2MkNCIsImskMyIsImthY2MiLCJrJDQiLCJtYWtlX2lnbm9yZWRfcGFyYW0kMCIsIm1ha2VfY3VzdG9tJDAiLCJtYWtlX2ludmFsaWRfYXJnIiwibWFrZV9mcm9tX2ZtdHR5JDAiLCJtYWtlX2Zyb21fZm10dHkiLCJtYWtlX2N1c3RvbSIsIm1ha2VfaWdub3JlZF9wYXJhbSIsImZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9pcHJpbnRmIiwibWFrZV9pcHJpbnRmJDAiLCJrb2MiLCJyZXN0JDI0IiwicmVzdCQyNSIsImZuX29mX2N1c3RvbV9hcml0eSQwIiwiZm5fb2ZfY3VzdG9tX2FyaXR5Iiwib3V0cHV0X2FjYyIsInAkMiIsInAkMyIsInAkNCIsImJ1ZnB1dF9hY2MiLCJzdHJwdXRfYWNjIiwiZmFpbHdpdGhfbWVzc2FnZSIsIm9wZW5fYm94X29mX3N0cmluZyIsImludmFsaWRfYm94IiwicGFyc2Vfc3BhY2VzIiwicGFyc2VfbHdvcmQiLCJwYXJzZV9pbnQiLCJ3c3RhcnQiLCJ3ZW5kIiwiYm94X25hbWUiLCJuc3RhcnQiLCJuZW5kIiwiaW5kZW50IiwiZXhwX2VuZCIsImJveF90eXBlIiwibWFrZV9wYWRkaW5nX2ZtdF9lYmIiLCJtYWtlX3BhZHByZWNfZm10X2ViYiIsImZtdF9lYmJfb2Zfc3RyaW5nIiwibGVnYWN5X2JlaGF2aW9yIiwiZmxhZyIsImxlZ2FjeV9iZWhhdmlvciQwIiwiaW52YWxpZF9mb3JtYXRfbWVzc2FnZSIsInVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCIsImVuZF9pbmQiLCJpbnZhbGlkX2Zvcm1hdF93aXRob3V0IiwiZXhwZWN0ZWRfY2hhcmFjdGVyIiwiZXhwZWN0ZWQiLCJhZGRfbGl0ZXJhbCIsImxpdF9zdGFydCIsInNpemUiLCJwYXJzZSIsInN0cl9pbmQkMiIsInBhcnNlX2ZsYWdzIiwic3RyX2luZCQxIiwic3RyX2luZCQwIiwicGFyc2VfdGFnIiwicGFyc2VfZ29vZF9icmVhayIsInBhcnNlX21hZ2ljX3NpemUiLCJwYXJzZV9jb252ZXJzaW9uIiwicGN0X2luZCIsInBsdXMiLCJzcGFjZSIsInBhZHByZWMiLCJwbHVzX3VzZWQiLCJoYXNoX3VzZWQiLCJzcGFjZV91c2VkIiwiaWduX3VzZWQiLCJwYWRfdXNlZCIsInByZWNfdXNlZCIsImdldF9wbHVzIiwiZ2V0X2hhc2giLCJnZXRfc3BhY2UiLCJnZXRfaWduIiwiZ2V0X3BhZCIsImdldF9wcmVjIiwiZ2V0X3BhZHByZWMiLCJnZXRfaW50X3BhZCIsImluY29tcGF0aWJsZV9mbGFnIiwiY2hlY2tfbm9fMCIsIm9wdF9vZl9wYWQiLCJ3aWR0aCQxIiwiZ2V0X3BhZF9vcHQiLCJnZXRfcGFkcHJlY19vcHQiLCJmbXRfcmVzdWx0Iiwic3ViX2VuZCIsInNlYXJjaF9zdWJmb3JtYXRfZW5kIiwic3ViX2ZtdCIsImlnbm9yZWQkMiIsImNvdW50ZXIkMCIsImlnbm9yZWQkNiIsImlnbm9yZWQkNyIsImFkZF9yYW5nZSIsImZhaWxfc2luZ2xlX3BlcmNlbnQiLCJwYXJzZV9jaGFyX3NldF9jb250ZW50IiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciQwIiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciIsInJldmVyc2UiLCJuZXh0X2luZCIsImNoYXJfc2V0JDEiLCJpZ25vcmVkJDkiLCJjaGFyX2Zvcm1hdCIsImZtdF9yZXN0JDIxIiwiZm10X3Jlc3QkMjIiLCJwYWQkOSIsImZtdF9yZXN0JDIzIiwiaWdub3JlZCQxMCIsImZtdF9yZXN0JDI0IiwicGFkJDEwIiwiZm10X3Jlc3QkMjUiLCJzdWJfZW5kJDAiLCJzdWJfZm10JDAiLCJmbXRfcmVzdCQyNiIsImlnbm9yZWQkMTEiLCJpZ25vcmVkJDMiLCJzeW1iJDAiLCJpZ25vcmVkJDUiLCJjb21wdXRlX2ludF9jb252IiwiaWdub3JlZCQ4Iiwic3BhY2UkMSIsImhhc2gkMSIsInBsdXMkMiIsImtpbmQiLCJpZ25vcmVkJDQiLCJpZ25vcmVkIiwiaWdub3JlZCQwIiwiaWdub3JlZCQxIiwicGx1cyQwIiwic3BhY2UkMCIsInBsdXMkMSIsImlnbiQwIiwicGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIiwibWludXMiLCJwYXJzZV9jb252IiwicGFyc2VfYWZ0ZXJfcGFkZGluZyIsInBhcnNlX2xpdGVyYWwiLCJwYXJzZV9wb3NpdGl2ZSIsIm5ld19pbmQiLCJtaW51cyQwIiwic2V0X2ZsYWciLCJzdHJfaW5kJDMiLCJzdHJfaW5kJDQiLCJzdHJfaW5kJDUiLCJpc19vcGVuX3RhZyIsImluZCIsInN1Yl9zdHIiLCJzdWJfZm9ybWF0JDAiLCJmb3JtYXR0aW5nJDAiLCJmb3JtYXR0aW5nIiwic3RyX2luZF8xIiwicGFyc2VfaW50ZWdlciIsInN0cl9pbmRfMiIsInN0cl9pbmRfMyIsImZvcm1hdHRpbmdfbGl0JDAiLCJzdHJfaW5kXzQiLCJzdHJfaW5kXzUiLCJzdHJfaW5kJDciLCJzdWJfZW5kJDEiLCJzdWJfZW5kJDIiLCJzdHJfaW5kJDYiLCJvcHRpb24iLCJzdWJmbXQiLCJmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IiwiZm9ybWF0X29mX3N0cmluZ19mb3JtYXQiLCJrZnByaW50ZiIsImticHJpbnRmIiwiaWtmcHJpbnRmIiwiZnByaW50ZiIsImJwcmludGYiLCJpZnByaW50ZiIsImlicHJpbnRmIiwicHJpbnRmIiwiZXByaW50ZiIsImtzcHJpbnRmIiwic3ByaW50ZiIsImFzc29jMyIsInkyIiwieTEiLCJzcGxpdCQxIiwibWFrZV9zeW1saXN0IiwiaGVscF9hY3Rpb24iLCJhZGRfaGVscCIsInNwZWNsaXN0IiwiYWRkMiIsInVzYWdlX2IiLCJlcnJtc2ciLCJkb2MiLCJzcGVjIiwia2V5IiwidXNhZ2Vfc3RyaW5nIiwidXNhZ2UiLCJib29sX29mX3N0cmluZ19vcHQkMCIsImludF9vZl9zdHJpbmdfb3B0JDAiLCJmbG9hdF9vZl9zdHJpbmdfb3B0IiwicGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfIiwiYWxsb3dfZXhwYW5kIiwiYXJndiIsImFub25mdW4iLCJpbml0cG9zIiwiY29udmVydF9lcnJvciIsInByb2duYW1lIiwiZm9sbG93JDAiLCJrZXl3b3JkIiwibm9fYXJnJDAiLCJmb2xsb3ciLCJub19hcmciLCJnZXRfYXJnJDAiLCJnZXRfYXJnIiwiY29uc3VtZV9hcmckMCIsImNvbnN1bWVfYXJnIiwidHJlYXRfYWN0aW9uJDAiLCJ0cmVhdF9hY3Rpb24iLCJmJDAiLCJmJDEiLCJyJDEiLCJmJDIiLCJyJDIiLCJhcmckMiIsImYkMyIsImFyZyQzIiwieCQxIiwiciQzIiwiYXJnJDQiLCJ4JDIiLCJzcGVjcyIsImYkNCIsImFyZyQ1IiwiZiQ1IiwiZiQ2IiwiZiQ3IiwiYXJnJDYiLCJuZXdhcmciLCJwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pYyIsInBhcnNlX2FyZ3ZfZHluYW1pYyIsImN1cnJlbnQkMCIsInBhcnNlX2FyZ3YiLCJtc2ckMCIsIm1zZyQxIiwicGFyc2VfZHluYW1pYyIsInBhcnNlX2V4cGFuZCIsInNlY29uZF93b3JkIiwibG9vcCIsIm1heF9hcmdfbGVuIiwia3dkIiwicmVwbGFjZV9sZWFkaW5nX3RhYiIsImFsaWduIiwibGltaXQiLCJjb21wbGV0ZWQiLCJrc2QiLCJjdXRjb2wkMCIsInNwYWNlcyQwIiwiY3V0Y29sIiwia3dkX2xlbiIsInNwYWNlcyIsInJlYWRfYXV4IiwidHJpbSIsImZpbGUiLCJ3b3JkcyIsInN0YXNoIiwid29yZCIsInJlYWRfYXJnIiwicmVhZF9hcmcwIiwid3JpdGVfYXV4IiwiYXJncyIsIndyaXRlX2FyZyIsIndyaXRlX2FyZzAiLCJwcmludGVycyIsImZpZWxkIiwib3RoZXJfZmllbGRzIiwidXNlX3ByaW50ZXJzIiwiY29udiIsInRvX3N0cmluZ19kZWZhdWx0IiwiY2hhciQwIiwibGluZSIsImNoYXIkMSIsImxpbmUkMCIsImZpbGUkMCIsImNoYXIkMiIsImxpbmUkMSIsImZpbGUkMSIsImNvbnN0cnVjdG9yIiwidG9fc3RyaW5nJDYiLCJwcmludCIsImZjdCIsImNhdGNoJDAiLCJyYXdfYmFja3RyYWNlX2VudHJpZXMiLCJidCIsImNvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImZvcm1hdF9iYWNrdHJhY2Vfc2xvdCIsImlzX3JhaXNlIiwicHJpbnRfcmF3X2JhY2t0cmFjZSIsIm91dGNoYW4iLCJyYXdfYmFja3RyYWNlIiwiYmFja3RyYWNlIiwicHJpbnRfYmFja3RyYWNlIiwicmF3X2JhY2t0cmFjZV90b19zdHJpbmciLCJiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSIsImJhY2t0cmFjZV9zbG90X2lzX2lubGluZSIsImJhY2t0cmFjZV9zbG90X2xvY2F0aW9uIiwiYmFja3RyYWNlX3Nsb3RfZGVmbmFtZSIsImJhY2t0cmFjZV9zbG90cyIsImJhY2t0cmFjZV9zbG90c19vZl9yYXdfZW50cnkiLCJlbnRyeSIsInJhd19iYWNrdHJhY2VfbGVuZ3RoIiwiZ2V0X2JhY2t0cmFjZSIsInJlZ2lzdGVyX3ByaW50ZXIiLCJmbiIsIm9sZF9wcmludGVycyIsIm5ld19wcmludGVycyIsImV4bl9zbG90IiwiZXhuX3Nsb3RfaWQiLCJleG5fc2xvdF9uYW1lIiwiZXJyb3JzIiwiZGVmYXVsdF91bmNhdWdodF9leGNlcHRpb25faGFuIiwic3RhdHVzIiwidW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJzZXRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJlbXB0eV9iYWNrdHJhY2UiLCJoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uIiwiZGVidWdnZXJfaW5fdXNlIiwiZXhuJDAiLCJyYXdfYmFja3RyYWNlJDAiLCJjb25zdCQwIiwiZmxpcCIsIm5lZ2F0ZSIsInByb3RlY3QiLCJmaW5hbGx5JDAiLCJ3b3JrIiwiZmluYWxseV9ub19leG4iLCJ3b3JrX2V4biIsIndvcmtfYnQiLCJwcmludF9zdGF0IiwiYWxsb2NhdGVkX2J5dGVzIiwibWEiLCJwcm8iLCJtaSIsImNyZWF0ZV9hbGFybSIsImRlbGV0ZV9hbGFybSIsIm51bGxfdHJhY2tlciIsInNhbXBsaW5nX3JhdGUiLCJ0cmFja2VyIiwiY2FsbHN0YWNrX3NpemUiLCJzdHJpbmciLCJieXRlcyIsInN1YnN0cmluZyIsInN1YmJ5dGVzIiwiZmlsZW5hbWUiLCJvdXRwdXQkMCIsImRpZ2VzdCIsImlucHV0JDAiLCJjaGFyX2hleCIsInRvX2hleCIsImZyb21faGV4IiwiZGlnaXQiLCJuZXdfc3RhdGUiLCJhc3NpZ24iLCJzdDEiLCJzdDIiLCJmdWxsX2luaXQiLCJzZWVkIiwic2VlZCQwIiwibWFrZSQzIiwibWFrZV9zZWxmX2luaXQiLCJjb3B5JDUiLCJiaXRzIiwiY3VydmFsIiwibmV3dmFsIiwibmV3dmFsMzAiLCJpbnRhdXgiLCJpbnQkMCIsImJvdW5kIiwiZnVsbF9pbnQiLCJicG9zIiwiaW50MzIiLCJpbnQ2NCIsIm5hdGl2ZWludCIsImZsb2F0JDAiLCJib29sIiwiYml0czMyIiwiYml0czY0IiwibmF0aXZlYml0cyIsImJpdHMkMCIsImludCQxIiwiZnVsbF9pbnQkMCIsImludDMyJDAiLCJuYXRpdmVpbnQkMCIsImludDY0JDAiLCJmbG9hdCQxIiwic2NhbGUiLCJib29sJDAiLCJiaXRzMzIkMCIsImJpdHM2NCQwIiwibmF0aXZlYml0cyQwIiwiZnVsbF9pbml0JDAiLCJpbml0JDUiLCJzZWxmX2luaXQiLCJnZXRfc3RhdGUiLCJzZXRfc3RhdGUiLCJvbmdvaW5nX3RyYXZlcnNhbCIsImZsaXBfb25nb2luZ190cmF2ZXJzYWwiLCJwYXJhbXMiLCJyYW5kb21pemVkX2RlZmF1bHQiLCJyYW5kb21pemVkIiwicmFuZG9taXplIiwiaXNfcmFuZG9taXplZCIsInBybmciLCJwb3dlcl8yX2Fib3ZlIiwiY3JlYXRlJDMiLCJpbml0aWFsX3NpemUiLCJyYW5kb20iLCJjbGVhciQyIiwicmVzZXQkMCIsImNvcHlfYnVja2V0bGlzdCIsImtleSQwIiwibmV4dCQwIiwiY29weSQ2IiwibGVuZ3RoJDUiLCJpbnNlcnRfYWxsX2J1Y2tldHMiLCJpbmRleGZ1biIsImlucGxhY2UiLCJvZGF0YSIsIm5kYXRhIiwibnNpemUiLCJuZGF0YV90YWlsIiwiY2VsbCQwIiwibmlkeCIsIm1hdGNoIiwibWF0Y2gkMCIsInJlc2l6ZSQwIiwib3NpemUiLCJpdGVyJDEwIiwiZG9fYnVja2V0Iiwib2xkX3RyYXYiLCJmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IiwiZmlsdGVyX21hcF9pbnBsYWNlIiwiZm9sZCQ0IiwiYiQwIiwiYnVja2V0X2xlbmd0aCIsInN0YXRzIiwibWJsIiwiaGlzdG8iLCJ0b19zZXEkOSIsInRibF9kYXRhIiwiYnVjayIsImJ1Y2skMCIsImJ1Y2skMSIsInRvX3NlcV9rZXlzIiwidG9fc2VxX3ZhbHVlcyIsImtleV9pbmRleCIsImJ1Y2tldCIsImsxIiwibmV4dDEiLCJrMiIsIm5leHQyIiwiazMiLCJkMyIsIm5leHQzIiwiZmluZF9hbGwiLCJmaW5kX2luX2J1Y2tldCIsInJlcGxhY2UiLCJyZXBsYWNlX3NlcSIsImNvcHkiLCJzeiIsImhhc2hfcGFyYW0iLCJzZWVkZWRfaGFzaCIsImFkZCQwIiwiZmluZCQxIiwiZmluZF9vcHQkMSIsImZpbmRfYWxsJDAiLCJtZW0kMiIsImFkZF9zZXEkMiIsIm9mX3NlcSQ3IiwicmVidWlsZCIsIndlYWtfY3JlYXRlIiwibGVuZ3RoJDYiLCJyYWlzZV9pZl9pbnZhbGlkX29mZnNldCQwIiwic2V0JDEiLCJnZXQkMiIsImdldF9jb3B5IiwiY2hlY2skMCIsImJsaXQkNCIsImZpbGwkMiIsImFyIiwiZW1wdHlidWNrZXQiLCJnZXRfaW5kZXgiLCJzeiQwIiwic3okMSIsImNvdW50X2J1Y2tldCIsImFkZF9hdXgiLCJzZXR0ZXIiLCJpbmRleCIsImJ1Y2tldCQwIiwiaGFzaGVzIiwibmV3c3oiLCJuZXdidWNrZXQkMCIsIm5ld2hhc2hlcyIsImhidWNrZXQiLCJwcmV2X2xlbiIsImxpdmUiLCJqJDIiLCJuZXdidWNrZXQiLCJuZXd0Iiwib2IiLCJvaCIsInNldHRlciQwIiwibmkiLCJmaW5kX29yIiwiaWZub3Rmb3VuZCIsImZpbmRfc2hhZG93IiwiaWZmb3VuZCIsImxlbnMiLCJ0b3RsZW4iLCJpZCQwIiwidW5rbm93biIsInBwX2VucXVldWUiLCJ0b2tlbiIsInBwX2luZmluaXR5IiwicHBfb3V0cHV0X3N0cmluZyIsInBwX291dHB1dF9uZXdsaW5lIiwiZm9ybWF0X3BwX3RleHQiLCJ0ZXh0IiwiZm9ybWF0X3N0cmluZyIsImJyZWFrX25ld19saW5lIiwicmVhbF9pbmRlbnQiLCJicmVha19saW5lIiwiYnJlYWtfc2FtZV9saW5lIiwiZm9ybWF0X3BwX3Rva2VuIiwic2l6ZSQwIiwidGFicyIsImFkZF90YWIiLCJscyIsInRhZ19uYW1lIiwibWFya2VyIiwiYnJlYWtzIiwiZml0cyIsIm9mZiIsImJveF90eXBlJDAiLCJvZmYkMCIsImluc2VydGlvbl9wb2ludCIsInRhYnMkMCIsImZpcnN0IiwiaGVhZCIsInRhYiIsIm9mZiQxIiwiaW5zZXJ0aW9uX3BvaW50JDAiLCJ3aWR0aCQyIiwiYm94X3R5cGUkMSIsInRib3giLCJ0YWdfbmFtZSQwIiwibWFya2VyJDAiLCJhZHZhbmNlX2xlZnQiLCJwZW5kaW5nX2NvdW50IiwiZW5xdWV1ZV9hZHZhbmNlIiwiZW5xdWV1ZV9zdHJpbmdfYXMiLCJpbml0aWFsaXplX3NjYW5fc3RhY2siLCJzdGFjayIsInF1ZXVlX2VsZW0iLCJzZXRfc2l6ZSIsImxlZnRfdG90YWwiLCJzY2FuX3B1c2giLCJlbGVtIiwicHBfb3Blbl9ib3hfZ2VuIiwiYnJfdHkiLCJwcF9jbG9zZV9ib3giLCJwcF9vcGVuX3N0YWciLCJwcF9jbG9zZV9zdGFnIiwicHBfb3Blbl90YWciLCJwcF9jbG9zZV90YWciLCJwcF9zZXRfcHJpbnRfdGFncyIsInBwX3NldF9tYXJrX3RhZ3MiLCJwcF9nZXRfcHJpbnRfdGFncyIsInBwX2dldF9tYXJrX3RhZ3MiLCJwcF9zZXRfdGFncyIsInBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBjdCIsInBvdCIsIm1jdCIsIm1vdCIsInBwX3Jpbml0IiwicHBfZmx1c2hfcXVldWUiLCJwcF9wcmludF9hc19zaXplIiwicHBfcHJpbnRfYXMiLCJpc2l6ZSIsInBwX3ByaW50X3N0cmluZyIsInBwX3ByaW50X2J5dGVzIiwicHBfcHJpbnRfaW50IiwicHBfcHJpbnRfZmxvYXQiLCJwcF9wcmludF9ib29sIiwicHBfcHJpbnRfY2hhciIsInBwX29wZW5faGJveCIsInBwX29wZW5fdmJveCIsInBwX29wZW5faHZib3giLCJwcF9vcGVuX2hvdmJveCIsInBwX29wZW5fYm94IiwicHBfcHJpbnRfbmV3bGluZSIsInBwX3ByaW50X2ZsdXNoIiwicHBfZm9yY2VfbmV3bGluZSIsInBwX3ByaW50X2lmX25ld2xpbmUiLCJwcF9wcmludF9jdXN0b21fYnJlYWsiLCJwcF9wcmludF9icmVhayIsInBwX3ByaW50X3NwYWNlIiwicHBfcHJpbnRfY3V0IiwicHBfb3Blbl90Ym94IiwicHBfY2xvc2VfdGJveCIsInBwX3ByaW50X3RicmVhayIsInBwX3ByaW50X3RhYiIsInBwX3NldF90YWIiLCJwcF9zZXRfbWF4X2JveGVzIiwicHBfZ2V0X21heF9ib3hlcyIsInBwX292ZXJfbWF4X2JveGVzIiwicHBfc2V0X2VsbGlwc2lzX3RleHQiLCJwcF9nZXRfZWxsaXBzaXNfdGV4dCIsInBwX2xpbWl0IiwicHBfc2V0X21heF9pbmRlbnQiLCJwcF9nZXRfbWF4X2luZGVudCIsInBwX3NldF9tYXJnaW4iLCJuZXdfbWF4X2luZGVudCIsInZhbGlkYXRlX2dlb21ldHJ5IiwibWFyZ2luIiwibWF4X2luZGVudCIsImNoZWNrX2dlb21ldHJ5IiwiZ2VvbWV0cnkiLCJwcF9nZXRfbWFyZ2luIiwicHBfc2V0X2Z1bGxfZ2VvbWV0cnkiLCJwcF9zZXRfZ2VvbWV0cnkiLCJwcF9zYWZlX3NldF9nZW9tZXRyeSIsInBwX2dldF9nZW9tZXRyeSIsInBwX3VwZGF0ZV9nZW9tZXRyeSIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsInBwX2dldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsImRpc3BsYXlfbmV3bGluZSIsImJsYW5rX2xpbmUiLCJkaXNwbGF5X2luZGVudCIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwiLCJkZWZhdWx0X3BwX21hcmtfb3Blbl90YWciLCJkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnIiwiZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnIiwicHBfbWFrZV9mb3JtYXR0ZXIiLCJwcF9xdWV1ZSIsInN5c190b2siLCJzY2FuX3N0YWNrIiwiZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMiLCJvdXRfZnVucyIsIm1ha2VfZm9ybWF0dGVyIiwicHBmIiwiZm9ybWF0dGVyX29mX291dF9jaGFubmVsIiwiZm9ybWF0dGVyX29mX2J1ZmZlciIsInBwX2J1ZmZlcl9zaXplIiwicHBfbWFrZV9idWZmZXIiLCJzdGRidWYiLCJzdGRfZm9ybWF0dGVyIiwiZXJyX2Zvcm1hdHRlciIsInN0cl9mb3JtYXR0ZXIiLCJmbHVzaF9idWZmZXJfZm9ybWF0dGVyIiwiZmx1c2hfc3RyX2Zvcm1hdHRlciIsIm1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJzb2IiLCJnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJpdGVtcyIsImFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSIsIml0ZW0iLCJmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2IiLCJvcGVuX2hib3giLCJvcGVuX3Zib3giLCJvcGVuX2h2Ym94Iiwib3Blbl9ob3Zib3giLCJvcGVuX2JveCIsImNsb3NlX2JveCIsIm9wZW5fdGFnIiwiY2xvc2VfdGFnIiwib3Blbl9zdGFnIiwiY2xvc2Vfc3RhZyIsInByaW50X2FzIiwicHJpbnRfc3RyaW5nJDAiLCJwcmludF9ieXRlcyQwIiwicHJpbnRfaW50JDAiLCJwcmludF9mbG9hdCQwIiwicHJpbnRfY2hhciQwIiwicHJpbnRfYm9vbCIsInByaW50X2JyZWFrIiwicHJpbnRfY3V0IiwicHJpbnRfc3BhY2UiLCJmb3JjZV9uZXdsaW5lIiwicHJpbnRfZmx1c2giLCJwcmludF9uZXdsaW5lJDAiLCJwcmludF9pZl9uZXdsaW5lIiwib3Blbl90Ym94IiwiY2xvc2VfdGJveCIsInByaW50X3RicmVhayIsInNldF90YWIiLCJwcmludF90YWIiLCJzZXRfbWFyZ2luIiwiZ2V0X21hcmdpbiIsInNldF9tYXhfaW5kZW50IiwiZ2V0X21heF9pbmRlbnQiLCJzZXRfZ2VvbWV0cnkiLCJzYWZlX3NldF9nZW9tZXRyeSIsImdldF9nZW9tZXRyeSIsInVwZGF0ZV9nZW9tZXRyeSIsInNldF9tYXhfYm94ZXMiLCJnZXRfbWF4X2JveGVzIiwib3Zlcl9tYXhfYm94ZXMiLCJzZXRfZWxsaXBzaXNfdGV4dCIsImdldF9lbGxpcHNpc190ZXh0Iiwic2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCIsInNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwic2V0X3ByaW50X3RhZ3MiLCJnZXRfcHJpbnRfdGFncyIsInNldF9tYXJrX3RhZ3MiLCJnZXRfbWFya190YWdzIiwic2V0X3RhZ3MiLCJwcF9wcmludF9saXN0IiwicHBfdiIsIm9wdCQwIiwicHBfc2VwIiwidnMiLCJvcHQkMSIsInBwX3ByaW50X3NlcSIsInNlcSQxIiwic2VxJDIiLCJwcF9wcmludF90ZXh0IiwicHBfcHJpbnRfb3B0aW9uIiwicHBfcHJpbnRfcmVzdWx0IiwicHBfcHJpbnRfZWl0aGVyIiwiY29tcHV0ZV90YWciLCJ0YWdfYWNjIiwib3V0cHV0X2Zvcm1hdHRpbmdfbGl0Iiwib3V0cHV0X2FjYyQwIiwiYnR5IiwicCQ1IiwicCQ2Iiwic3RycHV0X2FjYyQwIiwic2l6ZSQxIiwia2ZwcmludGYkMCIsImlrZnByaW50ZiQwIiwiaWZwcmludGYkMCIsImZwcmludGYkMCIsInByaW50ZiQwIiwiZXByaW50ZiQwIiwia2RwcmludGYiLCJkcHJpbnRmIiwia3ByaW50ZiIsInNwcmludGYkMCIsImthc3ByaW50ZiIsImFzcHJpbnRmIiwiZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVycyIsInBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInNldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsImdldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsImJwcmludGYkMCIsInBwX3NldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsInN0cmluZ2lmeSIsInBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImZ1bnMiLCJtYXJrX29wZW5fdGFnIiwibWFya19jbG9zZV90YWciLCJwcmludF9vcGVuX3RhZyIsInByaW50X2Nsb3NlX3RhZyIsInNldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsIm51bGxfY2hhciIsIm5leHRfY2hhciIsImliIiwicGVla19jaGFyIiwiY2hlY2tlZF9wZWVrX2NoYXIiLCJlbmRfb2ZfaW5wdXQiLCJiZWdpbm5pbmdfb2ZfaW5wdXQiLCJuYW1lX29mX2lucHV0IiwiY2hhcl9jb3VudCIsInJlc2V0X3Rva2VuIiwiaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIiLCJ0b2tlbl9zdHJpbmciLCJ0b2tlbl9idWZmZXIiLCJza2lwX2NoYXIiLCJpZ25vcmVfY2hhciIsInN0b3JlX2NoYXIiLCJkZWZhdWx0X3Rva2VuX2J1ZmZlcl9zaXplIiwiY3JlYXRlJDQiLCJpbmFtZSIsImZyb21fc3RyaW5nJDEiLCJmcm9tX2Z1bmN0aW9uJDAiLCJzY2FuX2Nsb3NlX2F0X2VuZCIsInNjYW5fcmFpc2VfYXRfZW5kIiwiZnJvbV9pYyIsInNjYW5fY2xvc2VfaWMiLCJlb2YiLCJzdGRpYiIsIm9wZW5faW5fZmlsZSIsIm9wZW5faW4iLCJmcm9tX2ZpbGUiLCJmcm9tX2ZpbGVfYmluIiwiZnJvbV9jaGFubmVsJDAiLCJjbG9zZV9pbiIsImljJDAiLCJtZW1vIiwibWVtb19mcm9tX2ljIiwibWVtb19mcm9tX2NoYW5uZWwiLCJiYWRfaW5wdXQiLCJiYWRfaW5wdXRfZXNjYXBlIiwiYmFkX3Rva2VuX2xlbmd0aCIsIm1lc3NhZ2UiLCJiYWRfZmxvYXQiLCJiYWRfaGV4X2Zsb2F0IiwiY2hhcmFjdGVyX21pc21hdGNoIiwiY2kiLCJjaGVja190aGlzX2NoYXIiLCJjaGVja19jaGFyIiwidG9rZW5fY2hhciIsInRva2VuX2Jvb2wiLCJpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciIsInRva2VuX2ludF9saXRlcmFsIiwidG9rZW5fZmxvYXQiLCJzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciIsInNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQiLCJzY2FuX2RpZ2l0X3BsdXMiLCJiYXNpcyIsImRpZ2l0cCIsIndpZHRoJDMiLCJpc19iaW5hcnlfZGlnaXQiLCJzY2FuX2JpbmFyeV9pbnQiLCJpc19vY3RhbF9kaWdpdCIsInNjYW5fb2N0YWxfaW50IiwiaXNfaGV4YV9kaWdpdCIsInNjYW5faGV4YWRlY2ltYWxfaW50Iiwic2Nhbl9zaWduIiwic2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsIiwic2Nhbl9pbnRfY29udmVyc2lvbiIsInNjYW5fZnJhY3Rpb25hbF9wYXJ0Iiwic2Nhbl9leHBvbmVudF9wYXJ0Iiwic2Nhbl9mbG9hdCIsInByZWNpc2lvbiIsInByZWNpc2lvbiQwIiwiY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmciLCJzY2FuX2hleF9mbG9hdCIsIndpZHRoJDQiLCJ3aWR0aCQ1Iiwid2lkdGgkNiIsIndpZHRoJDEwIiwid2lkdGgkNyIsIndpZHRoJDgiLCJ3aWR0aCQ5Iiwic2Nhbl9jYW1sX2Zsb2F0X3Jlc3QiLCJ3aWR0aF9wcmVjaXNpb24iLCJmcmFjX3dpZHRoIiwic2Nhbl9jYW1sX2Zsb2F0Iiwic2Nhbl9zdHJpbmciLCJzdHAiLCJzY2FuX2NoYXIiLCJoZXhhZGVjaW1hbF92YWx1ZV9vZl9jaGFyIiwiY2hlY2tfbmV4dF9jaGFyIiwiY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyIiwiY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmciLCJzY2FuX2JhY2tzbGFzaF9jaGFyIiwiYzAiLCJnZXRfZGlnaXQiLCJnZXRfZGlnaXQkMCIsImMxJDAiLCJjMiQwIiwic2Nhbl9jYW1sX2NoYXIiLCJmaW5kX3N0b3AiLCJzY2FuX2NhbWxfc3RyaW5nIiwiZmluZF9zdG9wJDAiLCJza2lwX3NwYWNlcyIsInNjYW5fY2hhcnNfaW5fY2hhcl9zZXQiLCJzY2FuX2luZGljIiwic2Nhbl9jaGFycyIsInNjYW5mX2JhZF9pbnB1dCIsImdldF9jb3VudGVyIiwid2lkdGhfb2ZfcGFkX29wdCIsInN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQiLCJmbXRpbmciLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzJDAiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzJDAiLCJyZWFkZXIiLCJuZXdfayIsInJlYWRlcnNfcmVzdCIsInRha2VfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjMiLCJmbXQkMjQiLCJmbXQkMjUiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIiwicGFkX3ByZWNfc2NhbmYiLCJyZWFkZXJzIiwibWFrZV9zY2FuZiIsInNjYW4kMCIsInN0cl9yZXN0Iiwic2NhbiQxIiwic2NhbiQyIiwic2NhbiQzIiwic2NhbiQ0IiwiY29udiQwIiwic2NhbiQ1IiwiY29udiQxIiwic2NhbiQ2IiwiY29udiQyIiwic2NhbiQ3Iiwic2NhbiQ4IiwiZm10aW5nX2xpdCQwIiwic3RwJDAiLCJzJDIiLCJzdHJfcmVzdCQwIiwicmVzdCQyNiIsImFyZ19yZXN0Iiwia3NjYW5mIiwiZWYiLCJhcHBseSIsImFyZ3MkMCIsImV4YyIsImJzY2FuZiIsImtzc2NhbmYiLCJzc2NhbmYiLCJzY2FuZiIsImJzY2FuZl9mb3JtYXQiLCJmb3JtYXQiLCJzc2NhbmZfZm9ybWF0IiwiZm9ybWF0X2Zyb21fc3RyaW5nIiwidW5lc2NhcGVkIiwia2ZzY2FuZiIsImZzY2FuZiIsInJlZ2lzdGVyIiwicmVnaXN0ZXJfZXhjZXB0aW9uIiwibyQwIiwicGFyYW1zJDAiLCJpbml0aWFsX29iamVjdF9zaXplIiwiZHVtbXlfaXRlbSIsInRhZyIsImNvbXBhcmUkMTQiLCJjb21wYXJlJDE1IiwiY29tcGFyZSQxNiIsImR1bW15X3RhYmxlIiwidGFibGVfY291bnQiLCJkdW1teV9tZXQiLCJmaXRfc2l6ZSIsIm5ld190YWJsZSIsInB1Yl9sYWJlbHMiLCJtZXRob2RzIiwicmVzaXplJDEiLCJhcnJheSIsIm5ld19zaXplIiwib2xkX3NpemUiLCJuZXdfYnVjayIsIm1ldGhvZF9jb3VudCIsImluc3RfdmFyX2NvdW50IiwibmV3X21ldGhvZCIsInRhYmxlIiwiZ2V0X21ldGhvZF9sYWJlbCIsImxhYmVsIiwiZ2V0X21ldGhvZF9sYWJlbHMiLCJuYW1lcyIsInNldF9tZXRob2QiLCJlbGVtZW50IiwiZ2V0X21ldGhvZCIsInRvX2xpc3QkMyIsImFyciIsIm5hcnJvdyIsInZhcnMiLCJ2aXJ0X21ldGhzIiwiY29uY3JfbWV0aHMiLCJ2YXJzJDAiLCJ2aXJ0X21ldGhzJDAiLCJjb25jcl9tZXRocyQwIiwidmlydF9tZXRoX2xhYnMiLCJjb25jcl9tZXRoX2xhYnMiLCJsYWIiLCJ0dmFycyIsImJ5X25hbWUiLCJieV9sYWJlbCIsIm1ldCIsImhtIiwid2lkZW4iLCJzYXZlZF92YXJzIiwic2F2ZWRfaGlkZGVuX21ldGhzIiwibmV3X3Nsb3QiLCJuZXdfdmFyaWFibGUiLCJ0b19hcnJheSIsIm5ld19tZXRob2RzX3ZhcmlhYmxlcyIsIm1ldGhzIiwidmFscyIsIm1ldGhzJDAiLCJubWV0aHMiLCJudmFscyIsImdldF92YXJpYWJsZSIsImdldF92YXJpYWJsZXMiLCJhZGRfaW5pdGlhbGl6ZXIiLCJjcmVhdGVfdGFibGUiLCJwdWJsaWNfbWV0aG9kcyIsInRhZ3MiLCJpbml0X2NsYXNzIiwiaW5oZXJpdHMiLCJjbGEiLCJzdXBlciQwIiwibm0iLCJtYWtlX2NsYXNzIiwicHViX21ldGhzIiwiY2xhc3NfaW5pdCIsImVudl9pbml0IiwibWFrZV9jbGFzc19zdG9yZSIsImluaXRfdGFibGUiLCJkdW1teV9jbGFzcyIsImxvYyIsInVuZGVmIiwiY3JlYXRlX29iamVjdCIsImNyZWF0ZV9vYmplY3Rfb3B0Iiwib2JqXzAiLCJpdGVyX2YiLCJydW5faW5pdGlhbGl6ZXJzIiwiaW5pdHMiLCJydW5faW5pdGlhbGl6ZXJzX29wdCIsImNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaSIsImdldF9kYXRhJDAiLCJidWlsZF9wYXRoIiwia2V5cyIsImxvb2t1cF90YWJsZXMiLCJyb290IiwidGFibGVzJDIiLCJ0YWJsZXMkMCIsInRhYmxlcyQxIiwibmV3X2NhY2hlIiwic2V0X21ldGhvZHMiLCJjbG8iLCJjbG8kMCIsIm4kMiIsIm4kMyIsIm4kNCIsIm4kNSIsIm4kNiIsIngkMyIsIm4kNyIsIngkNCIsIm4kOCIsIm4kOSIsIngkNSIsImYkOCIsImUkMiIsIm4kMTAiLCJ4JDYiLCJmJDkiLCJuJDExIiwieCQ3IiwibiQxMiIsIngkOCIsIm4kMTMiLCJuJDE0IiwiZSQzIiwibiQxNSIsIm0kMiIsIngkOSIsIm0kMyIsIm4kMTYiLCJtJDQiLCJlJDQiLCJuJDE3IiwibSQ1IiwibiQxOCIsInN0YXRzJDAiLCJpbml0X21vZF9ibG9jayIsImNvbXBzJDAiLCJtb2R1Iiwic2hhcGUiLCJmbiQwIiwiY29tcHMiLCJpbml0X21vZCIsInVwZGF0ZV9tb2RfYmxvY2siLCJjbCIsInVwZGF0ZV9tb2QiLCJpbml0aWFsX2J1ZmZlciIsImJ1ZmZlciIsImJ1ZnBvcyIsInJlc2V0X2J1ZmZlciIsInN0b3JlIiwibmV3YnVmZmVyIiwiZ2V0X3N0cmluZyIsIm1ha2VfbGV4ZXIiLCJrZXl3b3JkcyIsImt3ZF90YWJsZSIsImlkZW50X29yX2tleXdvcmQiLCJrZXl3b3JkX29yX2Vycm9yIiwiZW5kX2V4cG9uZW50X3BhcnQiLCJleHBvbmVudF9wYXJ0IiwibnVtYmVyIiwiaWRlbnQyIiwibmVnX251bWJlciIsIm5leHRfdG9rZW4kMCIsImVzY2FwZSIsIm1heWJlX2NvbW1lbnQiLCJjb21tZW50IiwibmV4dF90b2tlbiIsImhrZXkiLCJjbGVhbiIsImluc2VydF9idWNrZXQiLCJjb250YWluZXIiLCJyZW1vdmVfYnVja2V0IiwiaGsiLCJyZXBsYWNlX2J1Y2tldCIsIm5ld19kIiwiYnVja2V0X2xlbmd0aF9hbGl2ZSIsInN0YXRzX2FsaXZlIiwiY3JlYXRlJDUiLCJnZXRfa2V5JDAiLCJnZXRfa2V5X2NvcHkkMCIsInNldF9rZXkkMCIsInVuc2V0X2tleSQwIiwiY2hlY2tfa2V5JDAiLCJibGl0X2tleSQwIiwiZ2V0X2RhdGEkMSIsImdldF9kYXRhX2NvcHkiLCJzZXRfZGF0YSIsInVuc2V0X2RhdGEiLCJjaGVja19kYXRhIiwiYmxpdF9kYXRhIiwibWFrZSQ0IiwiZXBoIiwicXVlcnkiLCJzZXRfa2V5X2RhdGEiLCJtYWtlJDUiLCJhZGQkMSIsInRlc3Rfa2V5IiwicmVtb3ZlJDAiLCJmaW5kJDIiLCJsZW5ndGgkNyIsImNsZWFyJDMiLCJjcmVhdGUkNiIsImdldF9rZXkxIiwiZ2V0X2tleTFfY29weSIsInNldF9rZXkxIiwidW5zZXRfa2V5MSIsImNoZWNrX2tleTEiLCJnZXRfa2V5MiIsImdldF9rZXkyX2NvcHkiLCJzZXRfa2V5MiIsInVuc2V0X2tleTIiLCJjaGVja19rZXkyIiwiYmxpdF9rZXkxIiwiYmxpdF9rZXkyIiwiYmxpdF9rZXkxMiIsImdldF9kYXRhJDIiLCJnZXRfZGF0YV9jb3B5JDAiLCJzZXRfZGF0YSQwIiwidW5zZXRfZGF0YSQwIiwiY2hlY2tfZGF0YSQwIiwiYmxpdF9kYXRhJDAiLCJtYWtlJDYiLCJrZXkxIiwia2V5MiIsInF1ZXJ5JDAiLCJrMiQwIiwiazEkMCIsIm1ha2UkNyIsImFkZCQyIiwidGVzdF9rZXlzIiwicmVtb3ZlJDEiLCJmaW5kJDMiLCJsZW5ndGgkOCIsImNsZWFyJDQiLCJjcmVhdGUkNyIsImxlbmd0aCQ5IiwiZ2V0X2tleSQxIiwiZ2V0X2tleV9jb3B5JDEiLCJzZXRfa2V5JDEiLCJ1bnNldF9rZXkkMSIsImNoZWNrX2tleSQxIiwiYmxpdF9rZXkkMSIsImdldF9kYXRhJDMiLCJnZXRfZGF0YV9jb3B5JDEiLCJzZXRfZGF0YSQxIiwidW5zZXRfZGF0YSQxIiwiY2hlY2tfZGF0YSQxIiwiYmxpdF9kYXRhJDEiLCJtYWtlJDgiLCJxdWVyeSQxIiwia2kiLCJrMCIsIm1ha2UkOSIsImFkZCQzIiwidGVzdF9rZXlzJDAiLCJyZW1vdmUkMiIsImZpbmQkNCIsImxlbmd0aCQxMCIsImNsZWFyJDUiLCJnZW5lcmljX2Jhc2VuYW1lIiwiaXNfZGlyX3NlcCIsImdlbmVyaWNfZGlybmFtZSIsImlzX3JlbGF0aXZlIiwiaXNfaW1wbGljaXQiLCJjaGVja19zdWZmaXgiLCJzdWZmIiwiY2hvcF9zdWZmaXhfb3B0IiwibGVuX2YiLCJxdW90ZSIsInF1b3RlX2NvbW1hbmQiLCJiYXNlbmFtZSIsImRpcm5hbWUiLCJpc19kaXJfc2VwJDAiLCJpc19yZWxhdGl2ZSQwIiwiaXNfaW1wbGljaXQkMCIsImNoZWNrX3N1ZmZpeCQwIiwiY2hvcF9zdWZmaXhfb3B0JDAiLCJ0ZW1wX2Rpcl9uYW1lIiwicXVvdGUkMCIsImFkZF9icyIsImxvb3AkMCIsImxvb3BfYnMiLCJxdW90ZV9jbWRfZmlsZW5hbWUiLCJxdW90ZV9jb21tYW5kJDAiLCJkcml2ZV9hbmRfcGF0aCIsImRpcm5hbWUkMCIsInBhdGgiLCJkcml2ZSIsImRpciIsImJhc2VuYW1lJDAiLCJiYXNlbmFtZSQxIiwiZGlybmFtZSQxIiwibnVsbCQzIiwiY3VycmVudF9kaXJfbmFtZSQyIiwicGFyZW50X2Rpcl9uYW1lJDIiLCJkaXJfc2VwJDIiLCJpc19kaXJfc2VwJDEiLCJpc19yZWxhdGl2ZSQxIiwiaXNfaW1wbGljaXQkMSIsImNoZWNrX3N1ZmZpeCQxIiwiY2hvcF9zdWZmaXhfb3B0JDEiLCJ0ZW1wX2Rpcl9uYW1lJDAiLCJxdW90ZSQxIiwicXVvdGVfY29tbWFuZCQxIiwiYmFzZW5hbWUkMiIsImRpcm5hbWUkMiIsImNvbmNhdCQ0IiwiY2hvcF9zdWZmaXgiLCJleHRlbnNpb25fbGVuIiwiZXh0ZW5zaW9uIiwiY2hvcF9leHRlbnNpb24iLCJyZW1vdmVfZXh0ZW5zaW9uIiwicHJuZyQwIiwidGVtcF9maWxlX25hbWUiLCJ0ZW1wX2RpciIsInJuZCIsImN1cnJlbnRfdGVtcF9kaXJfbmFtZSIsInNldF90ZW1wX2Rpcl9uYW1lIiwiZ2V0X3RlbXBfZGlyX25hbWUiLCJ0ZW1wX2ZpbGUiLCJ0cnlfbmFtZSIsImNvdW50ZXIkMSIsIm9wZW5fdGVtcF9maWxlIiwic3RoJDAiLCJwZXJtcyIsInN0aCQxIiwiYWRkJDQiLCJzdWIkNCIsIm5lZyIsImNvbmoiLCJtdWwiLCJkaXYiLCJpbnYiLCJub3JtMiIsIm5vcm0iLCJxJDAiLCJwb2xhciIsInNxcnQiLCJ3JDAiLCJleHAiLCJsb2ciLCJwb3ciLCJmbG9hdDMyIiwiZmxvYXQ2NCIsImludDhfc2lnbmVkIiwiaW50OF91bnNpZ25lZCIsImludDE2X3NpZ25lZCIsImludDE2X3Vuc2lnbmVkIiwiaW50MzIkMSIsImludDY0JDEiLCJpbnQkMiIsIm5hdGl2ZWludCQxIiwiY29tcGxleDMyIiwiY29tcGxleDY0Iiwia2luZF9zaXplX2luX2J5dGVzIiwiY19sYXlvdXQiLCJmb3J0cmFuX2xheW91dCIsImNsb29wIiwiaWR4IiwiY29sIiwiZmxvb3AiLCJpbml0JDYiLCJsYXlvdXQiLCJkaW1zIiwiZGxlbiIsInNpemVfaW5fYnl0ZXMiLCJjcmVhdGUkOCIsImdldCQzIiwic2V0JDIiLCJzaXplX2luX2J5dGVzJDAiLCJvZl92YWx1ZSIsImNyZWF0ZSQ5IiwiZGltIiwic2l6ZV9pbl9ieXRlcyQxIiwic2xpY2UiLCJpbml0JDciLCJvZl9hcnJheSIsImJhIiwiY3JlYXRlJDEwIiwiZGltMSIsImRpbTIiLCJzaXplX2luX2J5dGVzJDIiLCJzbGljZV9sZWZ0Iiwic2xpY2VfcmlnaHQiLCJpbml0JDgiLCJvZl9hcnJheSQwIiwicm93IiwiY3JlYXRlJDExIiwiZGltMyIsInNpemVfaW5fYnl0ZXMkMyIsInNsaWNlX2xlZnRfMSIsInNsaWNlX3JpZ2h0XzEiLCJzbGljZV9sZWZ0XzIiLCJzbGljZV9yaWdodF8yIiwiaW5pdCQ5Iiwib2ZfYXJyYXkkMSIsImFycmF5MF9vZl9nZW5hcnJheSIsImFycmF5MV9vZl9nZW5hcnJheSIsImFycmF5Ml9vZl9nZW5hcnJheSIsImFycmF5M19vZl9nZW5hcnJheSIsInJlc2hhcGVfMCIsInJlc2hhcGVfMSIsInJlc2hhcGVfMiIsInJlc2hhcGVfMyIsIndpdGhfb3BlbiIsIm9wZW5mdW4iLCJ3aXRoX29wZW5fYmluIiwid2l0aF9vcGVuX3RleHQiLCJ3aXRoX29wZW5fZ2VuIiwic2VlayIsImxlbmd0aCQxMSIsImlucHV0X2NoYXIkMCIsImlucHV0X2J5dGUkMCIsImlucHV0X2xpbmUkMCIsInJlYWxseV9pbnB1dCQwIiwicmVhbGx5X2lucHV0X3N0cmluZyQwIiwicmVhZF91cHRvIiwiZW5zdXJlIiwibmV3X2xlbiQwIiwibmV3X2xlbiQxIiwiaW5wdXRfYWxsIiwiY2h1bmtfc2l6ZSIsImluaXRpYWxfc2l6ZSQwIiwiaW5pdGlhbF9zaXplJDEiLCJucmVhZCIsImJ1ZiQwIiwiYnVmJDEiLCJyZW0iLCJ3aXRoX29wZW4kMCIsIndpdGhfb3Blbl9iaW4kMCIsIndpdGhfb3Blbl90ZXh0JDAiLCJ3aXRoX29wZW5fZ2VuJDAiLCJzZWVrJDAiLCJwb3MkMCIsImxlbmd0aCQxMiIsImZvcm1hdF9wZXJpb2QiLCJmbXQiLCJwIiwibWFrZV9wZXJpb2QiLCJ5ZWFycyIsIm1vbnRocyIsImRheXMiLCJhZGRfcGVyaW9kcyIsImQxIiwiZDIiLCJzdWJfcGVyaW9kcyIsIm11bF9wZXJpb2QiLCJtIiwicGVyaW9kX3RvX2RheXMiLCJpc19sZWFwX3llYXIiLCJ5ZWFyIiwiZGF5c19pbl9tb250aCIsIm1vbnRoIiwiaXNfdmFsaWRfZGF0ZSIsImQiLCJtYWtlX2RhdGUiLCJkYXkiLCJhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2QiLCJ5ZWFyJDAiLCJtb250aHMkMCIsIm5ld19tb250aCIsIm1vbnRocyQxIiwieWVhciQxIiwibW9udGhzJDIiLCJ5ZWFyJDIiLCJhZGRfZGF0ZXMiLCJvcHQiLCJzdGgiLCJyb3VuZCIsIm5ld19tb250aCQwIiwibmV3X3llYXIkMCIsIm5ld19kYXRlIiwibmV3X3llYXIiLCJkJDAiLCJkYXlzX2luX2RfbW9udGgiLCJuZXdfZGF5IiwibmV3X21vbnRoJDEiLCJuZXdfeWVhciQxIiwiZGF5cyQwIiwiZCQxIiwibmV3X21vbnRoJDIiLCJuZXdfeWVhciQyIiwiZGF5cyQxIiwiZCQyIiwiY29tcGFyZV9kYXRlcyIsImZvcm1hdF9kYXRlIiwiZmlyc3RfZGF5X29mX21vbnRoIiwibGFzdF9kYXlfb2ZfbW9udGgiLCJkYXlzX21vbnRoIiwibmVnX3BlcmlvZCIsInN1Yl9kYXRlcyIsImNtcCIsIm5ld19kMl9tb250aCIsIm5ld19kMl95ZWFyIiwibmV3X2QyIiwiZGF0ZV90b195bWQiLCJwZXJpb2RfdG9feW1kcyIsInN0cmVhbSQxIiwic3RyZWFtJDAiLCJzdHJlYW0iLCJ2ZXJzaW9uIiwib2NhbWxfbGV4X3RhYmxlcyIsIm9jYW1sX2xleF90YWJsZXMkMCIsIm9jYW1sX2xleF90YWJsZXMkMSIsImpzb25fZXJyb3IiLCJzIiwidXRmOF9vZl9jb2RlIiwiYnVmIiwieCIsImFkZCIsIm1heGJpdHMiLCJuIiwidXRmOF9vZl9zdXJyb2dhdGVfcGFpciIsImkiLCJqIiwiaGlnaDEwIiwibG93MTAiLCJpbml0X2xleGVyIiwiZm5hbWUiLCJvcHQiLCJzdGgiLCJsbnVtIiwiYnVmJDAiLCJidWYkMSIsImhleCIsIndyaXRlX3NwZWNpYWwiLCJzcmMiLCJzdGFydCIsInN0b3AiLCJvYiIsInN0ciIsImZpbmlzaF9zdHJpbmciLCJleGMiLCJ3cml0ZV9zdHJpbmciLCJjIiwianNvbl9zdHJpbmdfb2Zfc3RyaW5nIiwid3JpdGVfbnVsbCIsIndyaXRlX2Jvb2wiLCJ3cml0ZV9kaWdpdHMiLCJkIiwid3JpdGVfaW50IiwiZmxvYXRfbmVlZHNfcGVyaW9kIiwid3JpdGVfZmxvYXQiLCJzMSIsIndyaXRlX25vcm1hbF9mbG9hdF9wcmVjIiwic2lnbmlmaWNhbnRfZmlndXJlcyIsIndyaXRlX2Zsb2F0X3ByZWMiLCJ3cml0ZV9zdGRfZmxvYXQiLCJ3cml0ZV9zdGRfZmxvYXRfcHJlYyIsIndyaXRlX2ludGxpdCIsIndyaXRlX2Zsb2F0bGl0Iiwid3JpdGVfc3RyaW5nbGl0IiwiaXRlcjIiLCJmX2VsdCIsImZfc2VwIiwibCQwIiwieSQwIiwibCIsInkiLCJ3cml0ZV92YXJpYW50IiwibyIsIndyaXRlX3QiLCJ3cml0ZV90dXBsZSIsIndyaXRlX2xpc3QiLCJ3cml0ZV9hc3NvYyIsImwkMSIsInMkMCIsImIiLCJzJDEiLCJmIiwicyQyIiwicyQzIiwid3JpdGVfc3RkX3ZhcmlhbnQiLCJ3cml0ZV9zdGRfanNvbiIsIndyaXRlX3N0ZF90dXBsZSIsInRvX2J1ZmZlciIsInN1ZiIsInN0aCQwIiwic3RkIiwidG9fc3RyaW5nIiwibGVuIiwib2IkMCIsInRvX2NoYW5uZWwiLCJvYyIsInRvX291dHB1dCIsIm91dCIsInRvX2ZpbGUiLCJmaWxlIiwiZSIsInNlcV90b19idWZmZXIiLCJzdCIsInNlcV90b19zdHJpbmciLCJzZXFfdG9fY2hhbm5lbCIsInNlcSIsImpzb24iLCJzZXFfdG9fZmlsZSIsInNvcnQiLCJ2IiwiayIsImEiLCJ2JDAiLCJsJDIiLCJwcCIsImZtdCIsInR1cCIsInNlcCIsInZhbHVlIiwibmFtZSIsIngkMSIsInhzIiwia2V5IiwieHMkMCIsIngkMCIsIngkMiIsIngkMyIsIngkNCIsIngkNSIsIngkNiIsInNob3ciLCJlcXVhbCIsImEkMCIsImIkMCIsImIkMSIsImEkMSIsInlzIiwiY29tcGFyZV9rZXlzIiwia2V5JDAiLCJ5cyQwIiwidmFsdWUkMCIsInJlc3VsdCIsInlzJDEiLCJ4cyQxIiwiYiQyIiwiYSQyIiwibmFtZSQwIiwiYiQzIiwiYSQzIiwicmVzdWx0JDAiLCJiJDQiLCJhJDQiLCJiJDUiLCJhJDUiLCJiJDYiLCJhJDYiLCJiJDciLCJhJDciLCJiJDgiLCJhJDgiLCJwcF9saXN0IiwicHB4IiwicHBfc2VwIiwiaXNfYXRvbSIsImZvcm1hdCIsImluc2lkZV9ib3giLCJ4JDciLCJyZXByZXNlbnRhdGlvbiIsIm9wIiwicHAkMCIsInByZXR0eV9wcmludCIsInByZXR0eV90b19zdHJpbmciLCJwcmV0dHlfdG9fY2hhbm5lbCIsImhleCQwIiwid3JpdGVfc3BlY2lhbCQwIiwiZmluaXNoX3N0cmluZyQwIiwid3JpdGVfc3RyaW5nJDAiLCJqc29uX3N0cmluZ19vZl9zdHJpbmckMCIsIndyaXRlX251bGwkMCIsIndyaXRlX2Jvb2wkMCIsIndyaXRlX2RpZ2l0cyQwIiwid3JpdGVfaW50JDAiLCJmbG9hdF9uZWVkc19wZXJpb2QkMCIsIndyaXRlX2Zsb2F0JDAiLCJ3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyQwIiwid3JpdGVfZmxvYXRfcHJlYyQwIiwid3JpdGVfc3RkX2Zsb2F0JDAiLCJ3cml0ZV9zdGRfZmxvYXRfcHJlYyQwIiwiaXRlcjIkMCIsImZfc2VwJDAiLCJ3cml0ZV9saXN0JDAiLCJ3cml0ZV90JDAiLCJ3cml0ZV9hc3NvYyQwIiwid3JpdGVfc3RkX2pzb24kMCIsInRvX2J1ZmZlciQwIiwidG9fc3RyaW5nJDAiLCJ0b19jaGFubmVsJDAiLCJ0b19vdXRwdXQkMCIsInRvX2ZpbGUkMCIsInNlcV90b19idWZmZXIkMCIsInNlcV90b19zdHJpbmckMCIsInNlcV90b19jaGFubmVsJDAiLCJzZXFfdG9fZmlsZSQwIiwic29ydCQwIiwicHBfbGlzdCQwIiwiaXNfYXRvbSQwIiwiZm9ybWF0JDAiLCJwcCQxIiwicHAkMiIsInNob3ckMCIsImVxdWFsJDAiLCJwcmV0dHlfcHJpbnQkMCIsInByZXR0eV90b19zdHJpbmckMCIsInByZXR0eV90b19jaGFubmVsJDAiLCJoZXgkMSIsImN1c3RvbV9lcnJvciIsImRlc2NyIiwibGV4YnVmIiwib2ZmcyIsImJvbCIsInBvczEiLCJwb3MyIiwiZmlsZV9saW5lIiwiYnl0ZXMiLCJtc2ciLCJsZXhlcl9lcnJvciIsInJlYWRfanVuayIsImxvbmdfZXJyb3IiLCJqdW5rIiwiZXh0cmFfanVuayIsIm1pbjEwIiwibWF4MTAiLCJleHRyYWN0X3Bvc2l0aXZlX2ludCIsImV4dHJhY3RfbmVnYXRpdmVfaW50IiwibmV3bGluZSIsImFkZF9sZXhlbWUiLCJyZWFkX2pzb24kMiIsIm9jYW1sX2xleF9yZWFkX2pzb25fcmVjIiwib2NhbWxfbGV4X3N0YXRlIiwib2NhbWxfbGV4X3N0YXRlJDAiLCJvY2FtbF9sZXhfc3RhdGUkMSIsImZpbmlzaF9zdHJpbmckMSIsImFjYyIsInJlYWRfc3BhY2UiLCJyZWFkX29iamVjdF9lbmQiLCJmaWVsZF9uYW1lIiwicmVhZF9pZGVudCIsInJlYWRfY29sb24iLCJyZWFkX2pzb24iLCJyZWFkX29iamVjdF9zZXAiLCJmaWVsZF9uYW1lJDAiLCJhY2MkMCIsInJlYWRfYXJyYXlfZW5kIiwicmVhZF9hcnJheV9zZXAiLCJmaW5pc2hfY29tbWVudCIsImZpbmlzaF9lc2NhcGVkX2NoYXIiLCJtYXBfc3RyaW5nIiwiYyQwIiwib2NhbWxfbGV4X3N0YXRlJDIiLCJjJDEiLCJkJDAiLCJmaW5pc2hfc3RyaW5nbGl0IiwiZmluaXNoX3ZhcmlhbnQiLCJyZWFkX2d0IiwicmVhZF9sdCIsInJlYWRfY29tbWEiLCJzdGFydF9hbnlfdmFyaWFudCIsInJlYWRfZW9mIiwicmVhZF9udWxsIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlIiwicmVhZF9ib29sIiwib2NhbWxfbGV4X3JlYWRfaW50X3JlYyIsInJlYWRfaW50Iiwib2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIiwicmVhZF9pbnQzMiIsIm9jYW1sX2xleF9yZWFkX2ludDY0X3JlYyIsInJlYWRfaW50NjQiLCJvY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIiwicmVhZF9udW1iZXIiLCJyZWFkX3N0cmluZyIsIm1hcF9pZGVudCIsIm9jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyIsInJlYWRfY2VsbCIsImluaXRfYWNjIiwicmVhZF9zZXF1ZW5jZSIsIm9jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyIsInJlYWRfbGlzdF9yZXYiLCJyZWFkX3R1cGxlIiwicmVhZF90dXBsZV9lbmQiLCJyZWFkX3R1cGxlX2VuZDIiLCJyZWFkX3R1cGxlX3NlcCIsInJlYWRfdHVwbGVfc2VwMiIsIm9jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkcyIsInJlYWRfa2V5IiwicmVhZF9maWVsZCIsInJlYWRfYWJzdHJhY3RfZmllbGRzIiwicmVhZF9sY3VybCIsInN0YXJ0X2FueV90dXBsZSIsInJlYWRfbHBhciIsInJlYWRfcnBhciIsInJlYWRfbGJyIiwicmVhZF9yYnIiLCJmaW5pc2hfc2tpcF9zdHJpbmdsaXQiLCJza2lwX2pzb24kMiIsIm9jYW1sX2xleF9za2lwX2pzb25fcmVjIiwic2tpcF9pZGVudCIsInNraXBfanNvbiIsImZpbmlzaF9za2lwX3ZhcmlhbnQiLCJmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCIsImJ1ZmZlcl9qc29uJDIiLCJvY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIiwiYnVmZmVyX3NwYWNlIiwiYnVmZmVyX29iamVjdF9lbmQiLCJidWZmZXJfaWRlbnQiLCJidWZmZXJfY29sb24iLCJidWZmZXJfanNvbiIsImJ1ZmZlcl9vYmplY3Rfc2VwIiwiYnVmZmVyX2FycmF5X2VuZCIsImJ1ZmZlcl9hcnJheV9zZXAiLCJmaW5pc2hfYnVmZmVyX2NvbW1lbnQiLCJyZWFkX2ludDgiLCJyZWFkX2xpc3QiLCJyZWFkX2FycmF5IiwidGwiLCJyIiwicmVhZF9maWVsZHMiLCJmcm9tX2xleGJ1ZiIsImZyb21fc3RyaW5nJDAiLCJmcm9tX2NoYW5uZWwkMCIsImljIiwiZnJvbV9maWxlIiwic2VxX2Zyb21fbGV4YnVmIiwiZmluIiwiZmluX2UiLCJzZXFfZnJvbV9zdHJpbmciLCJzZXFfZnJvbV9jaGFubmVsIiwic2VxX2Zyb21fZmlsZSIsImZuYW1lJDAiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCIsImxudW0wIiwibGluZSIsImxpbmVzZXFfZnJvbV9maWxlIiwicHJldHRpZnkiLCJjb21wYWN0IiwidHlwZXJyIiwianMiLCJhc3NvYyIsIm9iaiIsIm1lbWJlciIsImluZGV4Iiwid3JhcHBlZF9pbmRleCIsIm1hcCIsInRvX2Fzc29jIiwidG9fb3B0aW9uIiwidG9fYm9vbCIsInRvX2Jvb2xfb3B0aW9uIiwidG9fbnVtYmVyIiwidG9fbnVtYmVyX29wdGlvbiIsInRvX2Zsb2F0IiwidG9fZmxvYXRfb3B0aW9uIiwidG9faW50IiwidG9faW50X29wdGlvbiIsInRvX2xpc3QiLCJ0b19zdHJpbmckMSIsInRvX3N0cmluZ19vcHRpb24iLCJjb252ZXJ0X2VhY2giLCJmaWx0ZXJfbWFwIiwiZmxhdHRlbiIsImwyIiwiZmlsdGVyX2luZGV4IiwiZmlsdGVyX2xpc3QiLCJmaWx0ZXJfbWVtYmVyIiwiZmlsdGVyX2Fzc29jIiwiZmlsdGVyX2Jvb2wiLCJmaWx0ZXJfaW50IiwiZmlsdGVyX2Zsb2F0IiwiZmlsdGVyX251bWJlciIsImZpbHRlcl9zdHJpbmciLCJrZXlzIiwidmFsdWVzIiwiY29tYmluZSIsImZpcnN0Iiwic2Vjb25kIiwidG9fYmFzaWMiLCJoZXgkMiIsIndyaXRlX3NwZWNpYWwkMSIsImZpbmlzaF9zdHJpbmckMiIsIndyaXRlX3N0cmluZyQxIiwianNvbl9zdHJpbmdfb2Zfc3RyaW5nJDEiLCJ3cml0ZV9udWxsJDEiLCJ3cml0ZV9ib29sJDEiLCJ3cml0ZV9kaWdpdHMkMSIsIndyaXRlX2ludCQxIiwiZmxvYXRfbmVlZHNfcGVyaW9kJDEiLCJ3cml0ZV9mbG9hdCQxIiwid3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2Zsb2F0X3ByZWMkMSIsIndyaXRlX3N0ZF9mbG9hdCQxIiwid3JpdGVfc3RkX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2ludGxpdCQwIiwiaXRlcjIkMSIsImZfc2VwJDEiLCJ3cml0ZV92YXJpYW50JDAiLCJ3cml0ZV90JDEiLCJ3cml0ZV90dXBsZSQwIiwid3JpdGVfbGlzdCQxIiwid3JpdGVfYXNzb2MkMSIsIndyaXRlX3N0ZF92YXJpYW50JDAiLCJ3cml0ZV9zdGRfanNvbiQxIiwid3JpdGVfc3RkX3R1cGxlJDAiLCJ0b19idWZmZXIkMSIsInRvX3N0cmluZyQyIiwidG9fY2hhbm5lbCQxIiwidG9fb3V0cHV0JDEiLCJ0b19maWxlJDEiLCJzZXFfdG9fYnVmZmVyJDEiLCJzZXFfdG9fc3RyaW5nJDEiLCJzZXFfdG9fY2hhbm5lbCQxIiwic2VxX3RvX2ZpbGUkMSIsInNvcnQkMSIsInBwX2xpc3QkMSIsImlzX2F0b20kMSIsImZvcm1hdCQxIiwicHAkMyIsInBwJDQiLCJzaG93JDEiLCJlcXVhbCQxIiwicHJldHR5X3ByaW50JDEiLCJwcmV0dHlfdG9fc3RyaW5nJDEiLCJwcmV0dHlfdG9fY2hhbm5lbCQxIiwiaGV4JDMiLCJjdXN0b21fZXJyb3IkMCIsImxleGVyX2Vycm9yJDAiLCJyZWFkX2p1bmskMCIsImxvbmdfZXJyb3IkMCIsIm1pbjEwJDAiLCJtYXgxMCQwIiwiZXh0cmFjdF9wb3NpdGl2ZV9pbnQkMCIsImV4dHJhY3RfbmVnYXRpdmVfaW50JDAiLCJuZXdsaW5lJDAiLCJhZGRfbGV4ZW1lJDAiLCJyZWFkX2pzb24kMyIsIm9jYW1sX2xleF9yZWFkX2pzb25fcmVjJDAiLCJmaW5pc2hfc3RyaW5nJDMiLCJyZWFkX3NwYWNlJDAiLCJyZWFkX29iamVjdF9lbmQkMCIsInJlYWRfaWRlbnQkMCIsInJlYWRfY29sb24kMCIsInJlYWRfanNvbiQwIiwicmVhZF9vYmplY3Rfc2VwJDAiLCJyZWFkX2FycmF5X2VuZCQwIiwicmVhZF9hcnJheV9zZXAkMCIsImFjYyQxIiwicmVhZF90dXBsZV9lbmQkMCIsInJlYWRfdHVwbGVfc2VwJDAiLCJjb25zIiwiZmluaXNoX3ZhcmlhbnQkMCIsImZpbmlzaF9jb21tZW50JDAiLCJmaW5pc2hfZXNjYXBlZF9jaGFyJDAiLCJtYXBfc3RyaW5nJDAiLCJmaW5pc2hfc3RyaW5nbGl0JDAiLCJyZWFkX2d0JDAiLCJyZWFkX2x0JDAiLCJyZWFkX2NvbW1hJDAiLCJzdGFydF9hbnlfdmFyaWFudCQwIiwicmVhZF9lb2YkMCIsInJlYWRfbnVsbCQwIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlJDAiLCJyZWFkX2Jvb2wkMCIsIm9jYW1sX2xleF9yZWFkX2ludF9yZWMkMCIsInJlYWRfaW50JDAiLCJvY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMkMCIsInJlYWRfaW50MzIkMCIsIm9jYW1sX2xleF9yZWFkX2ludDY0X3JlYyQwIiwicmVhZF9pbnQ2NCQwIiwib2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyQwIiwicmVhZF9udW1iZXIkMCIsInJlYWRfc3RyaW5nJDAiLCJtYXBfaWRlbnQkMCIsIm9jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyQwIiwicmVhZF9zZXF1ZW5jZSQwIiwib2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjJDAiLCJyZWFkX2xpc3RfcmV2JDAiLCJvY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMiLCJwb3MiLCJyZWFkX3R1cGxlJDAiLCJyZWFkX3R1cGxlX2VuZDIkMCIsInJlYWRfdHVwbGVfc2VwMiQwIiwib2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzJDAiLCJyZWFkX2Fic3RyYWN0X2ZpZWxkcyQwIiwicmVhZF9sY3VybCQwIiwic3RhcnRfYW55X3R1cGxlJDAiLCJyZWFkX2xwYXIkMCIsInJlYWRfcnBhciQwIiwicmVhZF9sYnIkMCIsInJlYWRfcmJyJDAiLCJmaW5pc2hfc2tpcF92YXJpYW50JDAiLCJza2lwX2pzb24kMCIsImZpbmlzaF9za2lwX3N0cmluZ2xpdCQwIiwic2tpcF9qc29uJDMiLCJvY2FtbF9sZXhfc2tpcF9qc29uX3JlYyQwIiwic2tpcF9pZGVudCQwIiwiZmluaXNoX2J1ZmZlcl92YXJpYW50IiwiYnVmZmVyX2pzb24kMCIsImJ1ZmZlcl9zcGFjZSQwIiwiZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQkMCIsImJ1ZmZlcl9qc29uJDMiLCJvY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjJDAiLCJidWZmZXJfb2JqZWN0X2VuZCQwIiwiYnVmZmVyX2lkZW50JDAiLCJidWZmZXJfY29sb24kMCIsImJ1ZmZlcl9vYmplY3Rfc2VwJDAiLCJidWZmZXJfYXJyYXlfZW5kJDAiLCJidWZmZXJfYXJyYXlfc2VwJDAiLCJidWZmZXJfdHVwbGVfZW5kIiwiYnVmZmVyX3R1cGxlX3NlcCIsImZpbmlzaF9idWZmZXJfY29tbWVudCQwIiwianVuayQwIiwicmVhZF9pbnQ4JDAiLCJyZWFkX2xpc3QkMCIsInJlYWRfYXJyYXkkMCIsInJlYWRfZmllbGRzJDAiLCJmcm9tX2xleGJ1ZiQwIiwiZnJvbV9zdHJpbmckMiIsImZyb21fY2hhbm5lbCQyIiwiZnJvbV9maWxlJDAiLCJzZXFfZnJvbV9sZXhidWYkMCIsInNlcV9mcm9tX3N0cmluZyQwIiwic2VxX2Zyb21fY2hhbm5lbCQwIiwic2VxX2Zyb21fZmlsZSQwIiwibGluZXNlcV9mcm9tX2NoYW5uZWwkMCIsImxpbmVzZXFfZnJvbV9maWxlJDAiLCJwcmV0dGlmeSQwIiwiY29tcGFjdCQwIiwidHlwZXJyJDAiLCJhc3NvYyQwIiwibWVtYmVyJDAiLCJpbmRleCQwIiwibWFwJDAiLCJ0b19hc3NvYyQwIiwidG9fb3B0aW9uJDAiLCJ0b19ib29sJDAiLCJ0b19ib29sX29wdGlvbiQwIiwidG9fbnVtYmVyJDAiLCJ0b19udW1iZXJfb3B0aW9uJDAiLCJ0b19mbG9hdCQwIiwidG9fZmxvYXRfb3B0aW9uJDAiLCJ0b19pbnQkMCIsInRvX2ludF9vcHRpb24kMCIsInRvX2xpc3QkMCIsInRvX3N0cmluZyQzIiwidG9fc3RyaW5nX29wdGlvbiQwIiwiY29udmVydF9lYWNoJDAiLCJmaWx0ZXJfbWFwJDAiLCJmbGF0dGVuJDAiLCJmaWx0ZXJfaW5kZXgkMCIsImZpbHRlcl9saXN0JDAiLCJmaWx0ZXJfbWVtYmVyJDAiLCJmaWx0ZXJfYXNzb2MkMCIsImZpbHRlcl9ib29sJDAiLCJmaWx0ZXJfaW50JDAiLCJmaWx0ZXJfZmxvYXQkMCIsImZpbHRlcl9udW1iZXIkMCIsImZpbHRlcl9zdHJpbmckMCIsImtleXMkMCIsInZhbHVlcyQwIiwiY29tYmluZSQwIiwiaGV4JDQiLCJ3cml0ZV9zcGVjaWFsJDIiLCJmaW5pc2hfc3RyaW5nJDQiLCJ3cml0ZV9zdHJpbmckMiIsImpzb25fc3RyaW5nX29mX3N0cmluZyQyIiwid3JpdGVfbnVsbCQyIiwid3JpdGVfYm9vbCQyIiwid3JpdGVfaW50bGl0JDEiLCJ3cml0ZV9mbG9hdGxpdCQwIiwid3JpdGVfc3RyaW5nbGl0JDAiLCJpdGVyMiQyIiwiZl9zZXAkMiIsIndyaXRlX3ZhcmlhbnQkMSIsIndyaXRlX3QkMiIsIndyaXRlX3R1cGxlJDEiLCJ3cml0ZV9saXN0JDIiLCJ3cml0ZV9hc3NvYyQyIiwid3JpdGVfc3RkX3ZhcmlhbnQkMSIsIndyaXRlX3N0ZF9qc29uJDIiLCJ3cml0ZV9zdGRfdHVwbGUkMSIsInRvX2J1ZmZlciQyIiwidG9fc3RyaW5nJDQiLCJ0b19jaGFubmVsJDIiLCJ0b19vdXRwdXQkMiIsInRvX2ZpbGUkMiIsInNlcV90b19idWZmZXIkMiIsInNlcV90b19zdHJpbmckMiIsInNlcV90b19jaGFubmVsJDIiLCJzZXFfdG9fZmlsZSQyIiwic29ydCQyIiwicHBfbGlzdCQyIiwiaXNfYXRvbSQyIiwiZm9ybWF0JDIiLCJwcCQ1IiwicHAkNiIsInNob3ckMiIsImVxdWFsJDIiLCJwcmV0dHlfcHJpbnQkMiIsInByZXR0eV90b19zdHJpbmckMiIsInByZXR0eV90b19jaGFubmVsJDIiLCJoZXgkNSIsImN1c3RvbV9lcnJvciQxIiwibGV4ZXJfZXJyb3IkMSIsInJlYWRfanVuayQxIiwibG9uZ19lcnJvciQxIiwibWluMTAkMSIsIm1heDEwJDEiLCJleHRyYWN0X3Bvc2l0aXZlX2ludCQxIiwibWFrZV9wb3NpdGl2ZV9pbnQiLCJleHRyYWN0X25lZ2F0aXZlX2ludCQxIiwibWFrZV9uZWdhdGl2ZV9pbnQiLCJuZXdsaW5lJDEiLCJhZGRfbGV4ZW1lJDEiLCJyZWFkX2pzb24kNCIsIm9jYW1sX2xleF9yZWFkX2pzb25fcmVjJDEiLCJmaW5pc2hfc3RyaW5nbGl0JDEiLCJyZWFkX3NwYWNlJDEiLCJyZWFkX29iamVjdF9lbmQkMSIsInJlYWRfaWRlbnQkMSIsInJlYWRfY29sb24kMSIsInJlYWRfanNvbiQxIiwicmVhZF9vYmplY3Rfc2VwJDEiLCJyZWFkX2FycmF5X2VuZCQxIiwicmVhZF9hcnJheV9zZXAkMSIsInJlYWRfdHVwbGVfZW5kJDEiLCJyZWFkX3R1cGxlX3NlcCQxIiwiZmluaXNoX3ZhcmlhbnQkMSIsImZpbmlzaF9jb21tZW50JDEiLCJmaW5pc2hfc3RyaW5nJDUiLCJmaW5pc2hfZXNjYXBlZF9jaGFyJDEiLCJtYXBfc3RyaW5nJDEiLCJyZWFkX2d0JDEiLCJyZWFkX2x0JDEiLCJyZWFkX2NvbW1hJDEiLCJzdGFydF9hbnlfdmFyaWFudCQxIiwicmVhZF9lb2YkMSIsInJlYWRfbnVsbCQxIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlJDEiLCJyZWFkX2Jvb2wkMSIsIm9jYW1sX2xleF9yZWFkX2ludF9yZWMkMSIsInJlYWRfaW50JDEiLCJvY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMkMSIsInJlYWRfaW50MzIkMSIsIm9jYW1sX2xleF9yZWFkX2ludDY0X3JlYyQxIiwicmVhZF9pbnQ2NCQxIiwib2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyQxIiwicmVhZF9udW1iZXIkMSIsInJlYWRfc3RyaW5nJDEiLCJtYXBfaWRlbnQkMSIsIm9jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyQxIiwicmVhZF9zZXF1ZW5jZSQxIiwib2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjJDEiLCJyZWFkX2xpc3RfcmV2JDEiLCJvY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMkMCIsInJlYWRfdHVwbGUkMSIsInJlYWRfdHVwbGVfZW5kMiQxIiwicmVhZF90dXBsZV9zZXAyJDEiLCJvY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHMkMSIsInJlYWRfYWJzdHJhY3RfZmllbGRzJDEiLCJyZWFkX2xjdXJsJDEiLCJzdGFydF9hbnlfdHVwbGUkMSIsInJlYWRfbHBhciQxIiwicmVhZF9ycGFyJDEiLCJyZWFkX2xiciQxIiwicmVhZF9yYnIkMSIsImZpbmlzaF9za2lwX3ZhcmlhbnQkMSIsInNraXBfanNvbiQxIiwiZmluaXNoX3NraXBfc3RyaW5nbGl0JDEiLCJza2lwX2pzb24kNCIsIm9jYW1sX2xleF9za2lwX2pzb25fcmVjJDEiLCJza2lwX2lkZW50JDEiLCJmaW5pc2hfYnVmZmVyX3ZhcmlhbnQkMCIsImJ1ZmZlcl9qc29uJDEiLCJidWZmZXJfc3BhY2UkMSIsImZpbmlzaF9idWZmZXJfc3RyaW5nbGl0JDEiLCJidWZmZXJfanNvbiQ0Iiwib2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyQxIiwiYnVmZmVyX29iamVjdF9lbmQkMSIsImJ1ZmZlcl9pZGVudCQxIiwiYnVmZmVyX2NvbG9uJDEiLCJidWZmZXJfb2JqZWN0X3NlcCQxIiwiYnVmZmVyX2FycmF5X2VuZCQxIiwiYnVmZmVyX2FycmF5X3NlcCQxIiwiYnVmZmVyX3R1cGxlX2VuZCQwIiwiYnVmZmVyX3R1cGxlX3NlcCQwIiwiZmluaXNoX2J1ZmZlcl9jb21tZW50JDEiLCJqdW5rJDEiLCJyZWFkX2ludDgkMSIsInJlYWRfbGlzdCQxIiwicmVhZF9hcnJheSQxIiwicmVhZF9maWVsZHMkMSIsImZyb21fbGV4YnVmJDEiLCJmcm9tX3N0cmluZyQ0IiwiZnJvbV9jaGFubmVsJDQiLCJmcm9tX2ZpbGUkMSIsInNlcV9mcm9tX2xleGJ1ZiQxIiwic2VxX2Zyb21fc3RyaW5nJDEiLCJzZXFfZnJvbV9jaGFubmVsJDEiLCJzZXFfZnJvbV9maWxlJDEiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCQxIiwibGluZXNlcV9mcm9tX2ZpbGUkMSIsInByZXR0aWZ5JDEiLCJjb21wYWN0JDEiLCJ5b2pzb25fb2ZfdW5pdCIsInlvanNvbl9vZl9ib29sIiwiYiIsInlvanNvbl9vZl9zdHJpbmciLCJzdHIiLCJ5b2pzb25fb2ZfYnl0ZXMiLCJieXRlcyIsInlvanNvbl9vZl9jaGFyIiwiYyIsInlvanNvbl9vZl9pbnQiLCJuIiwieW9qc29uX29mX2Zsb2F0IiwieW9qc29uX29mX2ludDMyIiwieW9qc29uX29mX2ludDY0IiwieW9qc29uX29mX25hdGl2ZWludCIsInlvanNvbl9vZl9yZWYiLCJ5b2pzb25fb2ZfYSIsInJmIiwieW9qc29uX29mX2xhenlfdCIsImx2IiwieW9qc29uX29mX29wdGlvbiIsIngiLCJ5b2pzb25fb2ZfcGFpciIsInlvanNvbl9vZl9iIiwiYSIsInlvanNvbl9vZl90cmlwbGUiLCJ5b2pzb25fb2ZfYyIsInlvanNvbl9vZl9saXN0IiwibHN0IiwieW9qc29uX29mX2FycmF5IiwiYXIiLCJsc3RfcmVmIiwiaSIsInlvanNvbl9vZl9oYXNodGJsIiwieW9qc29uX29mX2tleSIsInlvanNvbl9vZl92YWwiLCJodGJsIiwiY29sbCIsImsiLCJ2IiwiYWNjIiwieW9qc29uX29mX29wYXF1ZSIsInlvanNvbl9vZl9mdW4iLCJyZWNvcmRfY2hlY2tfZXh0cmFfZmllbGRzIiwib2ZfeW9qc29uX2Vycm9yX2V4biIsImV4YyIsInlvanNvbiIsIm9mX3lvanNvbl9lcnJvciIsIndoYXQiLCJ1bml0X29mX3lvanNvbiIsImJvb2xfb2ZfeW9qc29uIiwic3RyaW5nX29mX3lvanNvbiIsImJ5dGVzX29mX3lvanNvbiIsImNoYXJfb2ZfeW9qc29uIiwiaW50X29mX3lvanNvbiIsImZsb2F0X29mX3lvanNvbiIsImludDMyX29mX3lvanNvbiIsImludDY0X29mX3lvanNvbiIsIm5hdGl2ZWludF9vZl95b2pzb24iLCJyZWZfb2ZfeW9qc29uIiwiYV9vZl95b2pzb24iLCJsYXp5X3Rfb2ZfeW9qc29uIiwib3B0aW9uX29mX3lvanNvbiIsInBhaXJfb2ZfeW9qc29uIiwiYl9vZl95b2pzb24iLCJiX3lvanNvbiIsImFfeW9qc29uIiwidHJpcGxlX29mX3lvanNvbiIsImNfb2ZfeW9qc29uIiwiY195b2pzb24iLCJsaXN0X29mX3lvanNvbiIsInJldl9sc3QiLCJhcnJheV9vZl95b2pzb24iLCJ0IiwiaCIsImxlbiIsInJlcyIsInQkMCIsImgkMCIsImhhc2h0Ymxfb2ZfeW9qc29uIiwia2V5X29mX3lvanNvbiIsInZhbF9vZl95b2pzb24iLCJhY3QiLCJ2X3lvanNvbiIsImtfeW9qc29uIiwib3BhcXVlX29mX3lvanNvbiIsImZ1bl9vZl95b2pzb24iLCJzcHJpbnRmIiwidHVwbGVfb2Zfc2l6ZV9uX2V4cGVjdGVkIiwibG9jIiwic3RhZ19ub19hcmdzIiwic3RhZ19pbmNvcnJlY3Rfbl9hcmdzIiwidGFnIiwibXNnIiwic3RhZ190YWtlc19hcmdzIiwibmVzdGVkX2xpc3RfaW52YWxpZF9zdW0iLCJlbXB0eV9saXN0X2ludmFsaWRfc3VtIiwidW5leHBlY3RlZF9zdGFnIiwicmVjb3JkX3N1cGVyZmx1b3VzX2ZpZWxkcyIsInJldl9mbGRfbmFtZXMiLCJmbGRfbmFtZXNfc3RyIiwicmVjb3JkX2R1cGxpY2F0ZV9maWVsZHMiLCJyZWNvcmRfZXh0cmFfZmllbGRzIiwicmVjb3JkX2dldF91bmRlZmluZWRfbG9vcCIsInBhcmFtJDEiLCJmaWVsZCIsInBhcmFtJDIiLCJyZWNvcmRfdW5kZWZpbmVkX2VsZW1lbnRzIiwidW5kZWZpbmVkJDAiLCJyZWNvcmRfbGlzdF9pbnN0ZWFkX2F0b20iLCJyZWNvcmRfcG9seV9maWVsZF92YWx1ZSIsIm5vX3ZhcmlhbnRfbWF0Y2giLCJub19tYXRjaGluZ192YXJpYW50X2ZvdW5kIiwicHRhZ19ub19hcmdzIiwicHRhZ19pbmNvcnJlY3Rfbl9hcmdzIiwiY25zdHIiLCJwdGFnX3Rha2VzX2FyZ3MiLCJuZXN0ZWRfbGlzdF9pbnZhbGlkX3BvbHlfdmFyIiwiZW1wdHlfbGlzdF9pbnZhbGlkX3BvbHlfdmFyIiwiZW1wdHlfdHlwZSIsInN5bWJvbCIsInlvanNvbl9vZl9zb3VyY2VfcG9zaXRpb24iLCJ2X2xhd19oZWFkaW5ncyIsInZfZW5kX2NvbHVtbiIsInZfZW5kX2xpbmUiLCJ2X3N0YXJ0X2NvbHVtbiIsInZfc3RhcnRfbGluZSIsInZfZmlsZW5hbWUiLCJhcmciLCJibmRzIiwiYXJnJDAiLCJibmRzJDAiLCJhcmckMSIsImJuZHMkMSIsImFyZyQyIiwiYm5kcyQyIiwiYXJnJDMiLCJibmRzJDMiLCJhcmckNCIsImJuZHMkNCIsIm1vbmV5X29mX2NlbnRzX3N0cmluZyIsImNlbnRzIiwibW9uZXlfb2ZfdW5pdHNfaW50IiwidW5pdHMiLCJtb25leV9vZl9jZW50c19pbnRlZ2VyIiwibW9uZXlfdG9fZmxvYXQiLCJtIiwibW9uZXlfb2ZfZGVjaW1hbCIsImQiLCJtb25leV90b19zdHJpbmciLCJtb25leV90b19jZW50cyIsIm1vbmV5X3JvdW5kIiwiZGVjaW1hbF9vZl9zdHJpbmciLCJkZWNpbWFsX3RvX2Zsb2F0IiwiZGVjaW1hbF9vZl9mbG9hdCIsImRlY2ltYWxfb2ZfaW50ZWdlciIsImRlY2ltYWxfdG9fc3RyaW5nIiwibWF4X3ByZWNfZGlnaXRzIiwiaSIsInNpZ24iLCJuIiwiaW50X3BhcnQiLCJuJDAiLCJkaWdpdHMiLCJsZWFkaW5nX3plcm9lcyIsImRpZ2l0IiwibnVtX2xlYWRpbmdfemVyb2VzIiwiaSQwIiwiZm10IiwiZGVjaW1hbF9yb3VuZCIsInEiLCJkZWNpbWFsX29mX21vbmV5IiwiaW50ZWdlcl9vZl9zdHJpbmciLCJzIiwiaW50ZWdlcl90b19zdHJpbmciLCJpbnRlZ2VyX3RvX2ludCIsImludGVnZXJfb2ZfaW50IiwiaW50ZWdlcl9leHBvbmVudGlhdGlvbiIsImUiLCJpbnRlZ2VyX2xvZzIiLCJ5ZWFyX29mX2RhdGUiLCJ5IiwibW9udGhfbnVtYmVyX29mX2RhdGUiLCJpc19sZWFwX3llYXIiLCJ5JDAiLCJkYXlfb2ZfbW9udGhfb2ZfZGF0ZSIsImQkMCIsImRhdGVfb2ZfbnVtYmVycyIsInllYXIiLCJtb250aCIsImRheSIsImRhdGVfdG9fc3RyaW5nIiwiZmlyc3RfZGF5X29mX21vbnRoIiwibGFzdF9kYXlfb2ZfbW9udGgiLCJkdXJhdGlvbl9vZl9udW1iZXJzIiwiZHVyYXRpb25fdG9fc3RyaW5nIiwiZHVyYXRpb25fdG9feWVhcnNfbW9udGhzX2RheXMiLCJ5b2pzb25fb2ZfcnVudGltZV92YWx1ZSIsInYwJDQiLCJ2MCQ1IiwidjAkNiIsInYwIiwidjAkNyIsInYwJDAiLCJ2MCQ4IiwidjAkMSIsInYwJDkiLCJ2MCQyIiwidjAkMTAiLCJ2MCQzIiwidjEiLCJ2MCQxMSIsInYwJDEyIiwidjEkMCIsInYwJDEzIiwidjAkMTQiLCJ2MSQxIiwidjEkMiIsInYxJDMiLCJ2MCQxNSIsInYwJDE2IiwidjEkNCIsInYwJDE3IiwidjAkMTgiLCJ1bmVtYmVkZGFibGUiLCJlbWJlZF91bml0IiwiZW1iZWRfYm9vbCIsIngiLCJlbWJlZF9tb25leSIsImVtYmVkX2ludGVnZXIiLCJlbWJlZF9kZWNpbWFsIiwiZW1iZWRfZGF0ZSIsImVtYmVkX2R1cmF0aW9uIiwiZW1iZWRfYXJyYXkiLCJmIiwieW9qc29uX29mX2luZm9ybWF0aW9uIiwidiIsInlvanNvbl9vZl9ldmVudCIsInlvanNvbl9vZl92YXJfZGVmIiwieW9qc29uX29mX2Z1bl9jYWxsIiwidl9ib2R5Iiwidl9pbnB1dHMiLCJ2X25hbWUiLCJ2X2Z1bl9jYWxscyIsInZfdmFsdWUiLCJ2X3BvcyIsInZfb3V0cHV0Iiwidl9mdW5faW5wdXRzIiwidl9mdW5fbmFtZSIsImxvZ19yZWYiLCJyZXNldF9sb2ciLCJyZXRyaWV2ZV9sb2ciLCJsb2dfYmVnaW5fY2FsbCIsImluZm8iLCJsb2dfZW5kX2NhbGwiLCJsb2dfdmFyaWFibGVfZGVmaW5pdGlvbiIsImVtYmVkIiwibG9nX2RlY2lzaW9uX3Rha2VuIiwicG9zIiwicHBfZXZlbnRzIiwib3B0IiwicHBmIiwiZXZlbnRzIiwic3RoIiwiaXNfZmlyc3RfY2FsbCIsImZvcm1hdF92YXJfZGVmIiwidmFyJDAiLCJmb3JtYXRfcG9zX29wdCIsImZvcm1hdF92YWx1ZSIsImZvcm1hdF92YXJfZGVmcyIsImZvcm1hdF92YXJfZGVmX3dpdGhfZnVuX2NhbGxzIiwidmFyX3dpdGhfZnVuIiwiZnVuX2NhbGwiLCJmb3JtYXRfZXZlbnQiLCJ4JDAiLCJ4JDEiLCJ4JDIiLCJ4JDMiLCJ4JDQiLCJuYW1lIiwiYXR0cnMiLCJuYW1lJDAiLCJ2YWx1ZSIsImVsdHMiLCJ2YXJfZGVmX3dpdGhfZnVuIiwib3V0cHV0IiwiYm9keSIsImZ1bl9pbnB1dHMiLCJmdW5fbmFtZSIsImJvZHkkMCIsImlucHV0cyIsImVtcHR5IiwiZW1wdHlfY3R4IiwicmF3X2V2ZW50X3RvX3N0cmluZyIsIm5hbWUkMSIsInRha2Vfd2hpbGUiLCJwIiwibCIsInQiLCJoIiwicmVzdCIsInQkMCIsInBhcnNlX3Jhd19ldmVudHMiLCJyYXdfZXZlbnRzIiwibmJfcmF3X2V2ZW50cyIsImlzX2Z1bmN0aW9uX2NhbGwiLCJpbmZvcyIsImlzX3Zhcl9kZWYiLCJwYXJzZV9ldmVudHMiLCJjdHgiLCJjdHgkMCIsInZhcl9uYW1lIiwiYm9keV9jdHgiLCJscyQwIiwiY3R4JDEiLCJyZXN0JDAiLCJyZXN0JDEiLCJjdHgkMiIsImluZm9zJDAiLCJwYXJzZV9mdW5fY2FsbCIsInJlc3QkMiIsImN0eCQzIiwicmVzdCQzIiwidmFyX2RvdF9zdWJzY29wZV92YXJfbmFtZSIsImxzIiwiY3R4JDQiLCJpbmZvcyQxIiwicmF3X2V2ZW50cyQwIiwiZnVuX2NhbGxzIiwicmVzdCQ0IiwiaW5mb3MkMiIsImZ1bl9jYWxsJDAiLCJmdW5fY2FsbHMkMCIsImZ1bl9jYWxscyQxIiwicmVzdCQ2IiwidmFsdWUkMCIsIm5hbWUkMiIsInZhcl9jb21wIiwicmVzdCQ1IiwidmFyX2NvbXAkMCIsInJlc3QkNyIsImN0eCQ2IiwiY3R4JDUiLCJib2R5X3JldiIsInZhcl9kZWYiLCJvdXRwdXQkMCIsIm1zZyIsImhhbmRsZV9kZWZhdWx0IiwiZXhjZXB0aW9ucyIsImp1c3QiLCJjb25zIiwiYWNjIiwiZXhjZXB0IiwibmV3X3ZhbCIsImhhbmRsZV9kZWZhdWx0X29wdCIsImIiLCJub19pbnB1dCIsImNvbXBhcmVfcGVyaW9kcyIsInAxIiwicDIiLCJwMV9kYXlzIiwicDJfZGF5cyIsImVxdWFsX3BlcmlvZHMiLCJvX25vdCIsIm9fbGVuZ3RoIiwiYSIsIm9fbWludXNfaW50IiwiaTEiLCJvX21pbnVzX3JhdCIsIm9fbWludXNfbW9uIiwibTEiLCJvX21pbnVzX2R1ciIsIm9fYW5kIiwib19vciIsIm9feG9yIiwib19lcSIsIm9fbWFwIiwib19yZWR1Y2UiLCJkZnQiLCJsZW4iLCJyIiwib19jb25jYXQiLCJvX2ZpbHRlciIsIm9fYWRkX2ludF9pbnQiLCJpMiIsIm9fYWRkX3JhdF9yYXQiLCJvX2FkZF9tb25fbW9uIiwibTIiLCJvX2FkZF9kYXRfZHVyIiwiZGEiLCJkdSIsIm9fYWRkX2R1cl9kdXIiLCJvX3N1Yl9pbnRfaW50Iiwib19zdWJfcmF0X3JhdCIsIm9fc3ViX21vbl9tb24iLCJvX3N1Yl9kYXRfZGF0Iiwib19zdWJfZGF0X2R1ciIsImRhdCIsImR1ciIsIm9fc3ViX2R1cl9kdXIiLCJvX211bHRfaW50X2ludCIsIm9fbXVsdF9yYXRfcmF0Iiwib19tdWx0X21vbl9yYXQiLCJpMV9hYnMiLCJpMl9hYnMiLCJzaWduX2ludCIsInJhdF9yZXN1bHQiLCJyZW1haW5kZXIiLCJyZXMiLCJvX211bHRfZHVyX2ludCIsIm9fZGl2X2ludF9pbnQiLCJvX2Rpdl9yYXRfcmF0Iiwib19kaXZfbW9uX21vbiIsIm9fZGl2X21vbl9yYXQiLCJyMSIsIm9fZGl2X2R1cl9kdXIiLCJkMSIsImQyIiwib19sdF9pbnRfaW50Iiwib19sdF9yYXRfcmF0Iiwib19sdF9tb25fbW9uIiwib19sdF9kdXJfZHVyIiwib19sdF9kYXRfZGF0Iiwib19sdGVfaW50X2ludCIsIm9fbHRlX3JhdF9yYXQiLCJvX2x0ZV9tb25fbW9uIiwib19sdGVfZHVyX2R1ciIsIm9fbHRlX2RhdF9kYXQiLCJvX2d0X2ludF9pbnQiLCJvX2d0X3JhdF9yYXQiLCJvX2d0X21vbl9tb24iLCJvX2d0X2R1cl9kdXIiLCJvX2d0X2RhdF9kYXQiLCJvX2d0ZV9pbnRfaW50Iiwib19ndGVfcmF0X3JhdCIsIm9fZ3RlX21vbl9tb24iLCJvX2d0ZV9kdXJfZHVyIiwib19ndGVfZGF0X2RhdCIsIm9fZXFfaW50X2ludCIsIm9fZXFfcmF0X3JhdCIsIm9fZXFfbW9uX21vbiIsIm9fZXFfZHVyX2R1ciIsIm9fZXFfZGF0X2RhdCIsIm9fZm9sZCIsIm9fbm90JDAiLCJvX2xlbmd0aCQwIiwib190b3JhdF9pbnQiLCJvX3RvcmF0X21vbiIsIm9fdG9tb25leV9yYXQiLCJvX2dldERheSIsIm9fZ2V0TW9udGgiLCJvX2dldFllYXIiLCJvX2ZpcnN0RGF5T2ZNb250aCIsIm9fbGFzdERheU9mTW9udGgiLCJvX3JvdW5kX21vbiIsIm9fcm91bmRfcmF0Iiwib19taW51c19pbnQkMCIsIm9fbWludXNfcmF0JDAiLCJvX21pbnVzX21vbiQwIiwib19taW51c19kdXIkMCIsIm9fYW5kJDAiLCJvX29yJDAiLCJvX3hvciQwIiwib19lcSQwIiwib19tYXAkMCIsIm9fcmVkdWNlJDAiLCJvX2NvbmNhdCQwIiwib19maWx0ZXIkMCIsIm9fYWRkX2ludF9pbnQkMCIsIm9fYWRkX3JhdF9yYXQkMCIsIm9fYWRkX21vbl9tb24kMCIsIm9fYWRkX2RhdF9kdXIkMCIsIm9fYWRkX2R1cl9kdXIkMCIsIm9fc3ViX2ludF9pbnQkMCIsIm9fc3ViX3JhdF9yYXQkMCIsIm9fc3ViX21vbl9tb24kMCIsIm9fc3ViX2RhdF9kYXQkMCIsIm9fc3ViX2RhdF9kdXIkMCIsIm9fc3ViX2R1cl9kdXIkMCIsIm9fbXVsdF9pbnRfaW50JDAiLCJvX211bHRfcmF0X3JhdCQwIiwib19tdWx0X21vbl9yYXQkMCIsIm9fbXVsdF9kdXJfaW50JDAiLCJvX2Rpdl9pbnRfaW50JDAiLCJvX2Rpdl9yYXRfcmF0JDAiLCJvX2Rpdl9tb25fbW9uJDAiLCJvX2Rpdl9tb25fcmF0JDAiLCJvX2Rpdl9kdXJfZHVyJDAiLCJvX2x0X2ludF9pbnQkMCIsIm9fbHRfcmF0X3JhdCQwIiwib19sdF9tb25fbW9uJDAiLCJvX2x0X2R1cl9kdXIkMCIsIm9fbHRfZGF0X2RhdCQwIiwib19sdGVfaW50X2ludCQwIiwib19sdGVfcmF0X3JhdCQwIiwib19sdGVfbW9uX21vbiQwIiwib19sdGVfZHVyX2R1ciQwIiwib19sdGVfZGF0X2RhdCQwIiwib19ndF9pbnRfaW50JDAiLCJvX2d0X3JhdF9yYXQkMCIsIm9fZ3RfbW9uX21vbiQwIiwib19ndF9kdXJfZHVyJDAiLCJvX2d0X2RhdF9kYXQkMCIsIm9fZ3RlX2ludF9pbnQkMCIsIm9fZ3RlX3JhdF9yYXQkMCIsIm9fZ3RlX21vbl9tb24kMCIsIm9fZ3RlX2R1cl9kdXIkMCIsIm9fZ3RlX2RhdF9kYXQkMCIsIm9fZXFfaW50X2ludCQwIiwib19lcV9yYXRfcmF0JDAiLCJvX2VxX21vbl9tb24kMCIsIm9fZXFfZHVyX2R1ciQwIiwib19lcV9kYXRfZGF0JDAiLCJvX2ZvbGQkMCIsInZlcnNpb24iLCJnaXRfdmVyc2lvbiIsInJhaXNlIiwiZXhuIiwibW9kdWxlIiwiZ2xvYmFsVGhpcyIsInN5bWJvbCIsIngiLCJ5Iiwic3ltYm9sJDAiLCJzeW1ib2wkMSIsInN5bWJvbCQyIiwic3ltYm9sJDMiLCJzeW1ib2wkNCIsImNvbXBhcmUiLCJlcXVhbCIsIm1heCIsIm1pbiIsImVxdWFsJDAiLCJlcXVhbCQxIiwic3ltYm9sJDUiLCJzeW1ib2wkNiIsInN5bWJvbCQ3Iiwic3ltYm9sJDgiLCJzeW1ib2wkOSIsInN5bWJvbCQxMCIsImNvbXBhcmUkMiIsImVxdWFsJDIiLCJtYXgkMCIsIm1pbiQwIiwiZ2xvYmFsIiwibm9faGFuZGxlciIsIm51bGwiLCJ1bmRlZmluZWQiLCJyZXR1cm4kMCIsIm1hcCQwIiwiZiIsImJpbmQiLCJ0ZXN0IiwiaXRlciQwIiwiY2FzZSQwIiwiZyIsImdldCIsIm9wdGlvbiIsIngkMCIsInRvX29wdGlvbiIsInJldHVybiQxIiwibWFwJDEiLCJiaW5kJDAiLCJ0ZXN0JDAiLCJpdGVyJDEiLCJjYXNlJDEiLCJnZXQkMCIsIm9wdGlvbiQwIiwidG9fb3B0aW9uJDAiLCJjb2VyY2UiLCJjb2VyY2Vfb3B0IiwibmZjIiwibmZkIiwibmZrYyIsIm5ma2QiLCJzdHJpbmdfY29uc3RyIiwib2JqZWN0X2tleXMiLCJhcnJheV9sZW5ndGgiLCJhcnJheV9nZXQiLCJhcnJheV9zZXQiLCJhcnJheV9tYXAiLCJhIiwiaWR4IiwiYXJyYXlfbWFwaSIsInN0cl9hcnJheSIsIm1hdGNoX3Jlc3VsdCIsIm1hdGgiLCJlcnJvcl9jb25zdHIiLCJuYW1lIiwiZSIsIm1lc3NhZ2UiLCJzdGFjayIsInRvX3N0cmluZyIsInJhaXNlX2pzX2Vycm9yIiwic3RyaW5nX29mX2Vycm9yIiwiSlNPTiIsImRlY29kZVVSSSIsInMiLCJkZWNvZGVVUklDb21wb25lbnQiLCJlbmNvZGVVUkkiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlc2NhcGUiLCJ1bmVzY2FwZSIsImlzTmFOIiwiaSIsInBhcnNlSW50IiwicyQwIiwicGFyc2VGbG9hdCIsImV4cG9ydF9qcyIsImZpZWxkIiwianNvb19leHBvcnRzIiwiZXhwb3J0JDAiLCJleHBvcnRfYWxsIiwib2JqIiwia2V5IiwibGlzdF9vZl9ub2RlTGlzdCIsIm5vZGVMaXN0IiwibGVuZ3RoIiwiYWNjIiwiaSQwIiwiYWNjJDAiLCJpJDEiLCJkaXNjb25uZWN0ZWQiLCJwcmVjZWRpbmciLCJmb2xsb3dpbmciLCJjb250YWlucyQwIiwiY29udGFpbmVkX2J5IiwiaW1wbGVtZW50YXRpb25fc3BlY2lmaWMiLCJoYXMiLCJ0IiwibWFzayIsImFkZCIsImFwcGVuZENoaWxkIiwicCIsIm4iLCJyZW1vdmVDaGlsZCIsInJlcGxhY2VDaGlsZCIsIm8iLCJpbnNlcnRCZWZvcmUiLCJub2RlVHlwZSIsImNhc3QiLCJlbGVtZW50IiwidGV4dCIsImF0dHIiLCJoYW5kbGVyIiwicmVzIiwiZXZlbnQiLCJmdWxsX2hhbmRsZXIiLCJ0aGlzJDAiLCJpbnZva2VfaGFuZGxlciIsImV2ZW50VGFyZ2V0IiwibWFrZSQwIiwiYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIiwiY2FwdHVyZSIsIm9uY2UiLCJwYXNzaXZlIiwiaXRlciIsImIiLCJhZGRFdmVudExpc3RlbmVyIiwidHlwIiwiaCIsImNhcHQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaWQiLCJwcmV2ZW50RGVmYXVsdCIsImNyZWF0ZUN1c3RvbUV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJkZXRhaWwiLCJvcHRfaXRlciIsImFycmF5QnVmZmVyIiwiaW50OEFycmF5X2luQnVmZmVyIiwiaW50MTZBcnJheV9pbkJ1ZmZlciIsInVpbnQxNkFycmF5X2luQnVmZmVyIiwiaW50MzJBcnJheV9pbkJ1ZmZlciIsInVpbnQzMkFycmF5X2luQnVmZmVyIiwiZmxvYXQzMkFycmF5X2luQnVmZmVyIiwiZmxvYXQ2NEFycmF5X2luQnVmZmVyIiwic2V0IiwiZ2V0JDEiLCJ1bnNhZmVfZ2V0IiwiZGF0YVZpZXciLCJvZl9hcnJheUJ1ZmZlciIsImFiIiwidWludDgiLCJmaWx0ZXJfbWFwIiwicSIsInYiLCJ2JDAiLCJibG9iX3JhdyIsImNvbnRlbnRUeXBlIiwiZW5kaW5ncyIsIm9wdGlvbnMiLCJvcHRpb25zJDAiLCJibG9iX2Zyb21fc3RyaW5nIiwiYmxvYl9mcm9tX2FueSIsImwiLCJhJDAiLCJsJDAiLCJmaWxlbmFtZSIsImZpbGUiLCJuYW1lJDAiLCJkb2NfY29uc3RyIiwiZG9jdW1lbnQiLCJibG9iIiwic3RyaW5nIiwiYXJyYXlCdWZmZXIkMCIsImxvYWRzdGFydCIsInByb2dyZXNzIiwiYWJvcnQiLCJlcnJvciIsImxvYWQiLCJsb2FkZW5kIiwiZmlsZVJlYWRlciIsIm9uSUUiLCJjbGljayIsImNvcHkkMCIsImN1dCIsInBhc3RlIiwiZGJsY2xpY2siLCJtb3VzZWRvd24iLCJtb3VzZXVwIiwibW91c2VvdmVyIiwibW91c2Vtb3ZlIiwibW91c2VvdXQiLCJrZXlwcmVzcyIsImtleWRvd24iLCJrZXl1cCIsIm1vdXNld2hlZWwiLCJ3aGVlbCIsIkRPTU1vdXNlU2Nyb2xsIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIiwidG91Y2hjYW5jZWwiLCJkcmFnc3RhcnQiLCJkcmFnZW5kIiwiZHJhZ2VudGVyIiwiZHJhZ292ZXIiLCJkcmFnbGVhdmUiLCJkcmFnIiwiZHJvcCIsImhhc2hjaGFuZ2UiLCJjaGFuZ2UiLCJpbnB1dCIsInRpbWV1cGRhdGUiLCJzdWJtaXQiLCJzY3JvbGwiLCJmb2N1cyIsImJsdXIiLCJsb2FkJDAiLCJ1bmxvYWQiLCJiZWZvcmV1bmxvYWQiLCJyZXNpemUiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBvcHN0YXRlIiwiZXJyb3IkMCIsImFib3J0JDAiLCJzZWxlY3QiLCJvbmxpbmUiLCJvZmZsaW5lIiwiY2hlY2tpbmciLCJub3VwZGF0ZSIsImRvd25sb2FkaW5nIiwicHJvZ3Jlc3MkMCIsInVwZGF0ZXJlYWR5IiwiY2FjaGVkIiwib2Jzb2xldGUiLCJkb21Db250ZW50TG9hZGVkIiwiYW5pbWF0aW9uc3RhcnQiLCJhbmltYXRpb25lbmQiLCJhbmltYXRpb25pdGVyYXRpb24iLCJhbmltYXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0IiwidHJhbnNpdGlvbmVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJjYW5wbGF5IiwiY2FucGxheXRocm91Z2giLCJkdXJhdGlvbmNoYW5nZSIsImVtcHRpZWQiLCJlbmRlZCIsImdvdHBvaW50ZXJjYXB0dXJlIiwibG9hZGVkZGF0YSIsImxvYWRlZG1ldGFkYXRhIiwibG9hZHN0YXJ0JDAiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJtZXNzYWdlJDAiLCJwYXVzZSIsInBsYXkiLCJwbGF5aW5nIiwicG9pbnRlcmVudGVyIiwicG9pbnRlcmNhbmNlbCIsInBvaW50ZXJkb3duIiwicG9pbnRlcmxlYXZlIiwicG9pbnRlcm1vdmUiLCJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiLCJwb2ludGVydXAiLCJyYXRlY2hhbmdlIiwic2Vla2VkIiwic2Vla2luZyIsInN0YWxsZWQiLCJzdXNwZW5kIiwidm9sdW1lY2hhbmdlIiwid2FpdGluZyIsIm1ha2UkMSIsImQiLCJsb2NhdGlvbl9vcmlnaW4iLCJsb2MiLCJnZXRFbGVtZW50QnlJZCIsInBub2RlIiwiZ2V0RWxlbWVudEJ5SWRfZXhuIiwiZ2V0RWxlbWVudEJ5SWRfb3B0IiwiZ2V0RWxlbWVudEJ5SWRfY29lcmNlIiwiY3JlYXRlRWxlbWVudCIsInVuc2FmZUNyZWF0ZUVsZW1lbnQiLCJkb2MiLCJjcmVhdGVFbGVtZW50U3ludGF4IiwidW5zYWZlQ3JlYXRlRWxlbWVudEV4IiwidHlwZSIsImVsdCIsImVsIiwiY3JlYXRlSHRtbCIsImNyZWF0ZUhlYWQiLCJjcmVhdGVMaW5rIiwiY3JlYXRlVGl0bGUiLCJjcmVhdGVNZXRhIiwiY3JlYXRlQmFzZSIsImNyZWF0ZVN0eWxlIiwiY3JlYXRlQm9keSIsImNyZWF0ZUZvcm0iLCJjcmVhdGVPcHRncm91cCIsImNyZWF0ZU9wdGlvbiIsImNyZWF0ZVNlbGVjdCIsImNyZWF0ZUlucHV0IiwiY3JlYXRlVGV4dGFyZWEiLCJjcmVhdGVCdXR0b24iLCJjcmVhdGVMYWJlbCIsImNyZWF0ZUZpZWxkc2V0IiwiY3JlYXRlTGVnZW5kIiwiY3JlYXRlVWwiLCJjcmVhdGVPbCIsImNyZWF0ZURsIiwiY3JlYXRlTGkiLCJjcmVhdGVEaXYiLCJjcmVhdGVFbWJlZCIsImNyZWF0ZVAiLCJjcmVhdGVIMSIsImNyZWF0ZUgyIiwiY3JlYXRlSDMiLCJjcmVhdGVINCIsImNyZWF0ZUg1IiwiY3JlYXRlSDYiLCJjcmVhdGVRIiwiY3JlYXRlQmxvY2txdW90ZSIsImNyZWF0ZVByZSIsImNyZWF0ZUJyIiwiY3JlYXRlSHIiLCJjcmVhdGVJbnMiLCJjcmVhdGVEZWwiLCJjcmVhdGVBIiwiY3JlYXRlSW1nIiwiY3JlYXRlT2JqZWN0IiwiY3JlYXRlUGFyYW0iLCJjcmVhdGVNYXAiLCJjcmVhdGVBcmVhIiwiY3JlYXRlU2NyaXB0IiwiY3JlYXRlVGFibGUiLCJjcmVhdGVDYXB0aW9uIiwiY3JlYXRlQ29sIiwiY3JlYXRlQ29sZ3JvdXAiLCJjcmVhdGVUaGVhZCIsImNyZWF0ZVRmb290IiwiY3JlYXRlVGJvZHkiLCJjcmVhdGVUciIsImNyZWF0ZVRoIiwiY3JlYXRlVGQiLCJjcmVhdGVTdWIiLCJjcmVhdGVTdXAiLCJjcmVhdGVTcGFuIiwiY3JlYXRlVHQiLCJjcmVhdGVJIiwiY3JlYXRlQiIsImNyZWF0ZUJpZyIsImNyZWF0ZVNtYWxsIiwiY3JlYXRlRW0iLCJjcmVhdGVTdHJvbmciLCJjcmVhdGVDaXRlIiwiY3JlYXRlRGZuIiwiY3JlYXRlQ29kZSIsImNyZWF0ZVNhbXAiLCJjcmVhdGVLYmQiLCJjcmVhdGVWYXIiLCJjcmVhdGVBYmJyIiwiY3JlYXRlRGQiLCJjcmVhdGVEdCIsImNyZWF0ZU5vc2NyaXB0IiwiY3JlYXRlQWRkcmVzcyIsImNyZWF0ZUZyYW1lc2V0IiwiY3JlYXRlRnJhbWUiLCJjcmVhdGVJZnJhbWUiLCJjcmVhdGVBdWRpbyIsImNyZWF0ZVZpZGVvIiwiY3JlYXRlQ2FudmFzIiwiaHRtbF9lbGVtZW50IiwiZWxlbWVudCQwIiwidW5zYWZlQ29lcmNlIiwidGFnIiwiYXJlYSIsImJhc2UiLCJibG9ja3F1b3RlIiwiYm9keSIsImJyIiwiYnV0dG9uIiwiY2FudmFzIiwiY2FwdGlvbiIsImNvbCIsImNvbGdyb3VwIiwiZGVsIiwiZGl2IiwiZGwiLCJmaWVsZHNldCIsImVtYmVkIiwiZm9ybSIsImZyYW1lc2V0IiwiZnJhbWUiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwiaW1nIiwiaW5wdXQkMCIsImlucyIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFwJDIiLCJtZXRhIiwib2JqZWN0Iiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiQxIiwicGFyYW0iLCJwcmUiLCJzY3JpcHQiLCJzZWxlY3QkMCIsInN0eWxlIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidWwiLCJhdWRpbyIsInZpZGVvIiwidW5zYWZlQ29lcmNlRXZlbnQiLCJjb25zdHIiLCJldiIsIm1vdXNlRXZlbnQiLCJrZXlib2FyZEV2ZW50Iiwid2hlZWxFdmVudCIsIm1vdXNlU2Nyb2xsRXZlbnQiLCJwb3BTdGF0ZUV2ZW50IiwibWVzc2FnZUV2ZW50IiwiZXZlbnRSZWxhdGVkVGFyZ2V0IiwiZXZlbnRBYnNvbHV0ZVBvc2l0aW9uIiwiZXZlbnRBYnNvbHV0ZVBvc2l0aW9uJDAiLCJlbGVtZW50Q2xpZW50UG9zaXRpb24iLCJnZXREb2N1bWVudFNjcm9sbCIsImJ1dHRvblByZXNzZWQiLCJhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lcldpdGgiLCJkeCIsImR5IiwiYWRkTW91c2V3aGVlbEV2ZW50TGlzdGVuZXIiLCJ0cnlfa2V5X2NvZGVfbGVmdCIsInRyeV9rZXlfY29kZV9yaWdodCIsInRyeV9rZXlfY29kZV9udW1wYWQiLCJ0cnlfa2V5X2NvZGVfbm9ybWFsIiwibWFrZV91bmlkZW50aWZpZWQiLCJydW5fbmV4dCIsInZhbHVlIiwic3ltYm9sJDExIiwib2ZfZXZlbnQiLCJldnQiLCJjaGFyX29mX2ludCIsImVtcHR5X3N0cmluZyIsIm5vbmUiLCJvZl9ldmVudCQwIiwiZWxlbWVudCQxIiwidGFnZ2VkIiwib3B0X3RhZ2dlZCIsInRhZ2dlZEV2ZW50Iiwib3B0X3RhZ2dlZEV2ZW50Iiwic3RvcFByb3BhZ2F0aW9uIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiYyIsInJlcSIsImNhbGxiYWNrIiwibm93IiwibGFzdCIsImR0IiwiZHQkMCIsImhhc1B1c2hTdGF0ZSIsImhhc1BsYWNlaG9sZGVyIiwiaGFzUmVxdWlyZWQiLCJvdmVyZmxvd19saW1pdCIsInNldFRpbWVvdXQiLCJsb29wIiwicmVtYWluIiwic3RlcCIsImNiIiwiY2xlYXJUaW1lb3V0IiwianNfYXJyYXlfb2ZfY29sbGVjdGlvbiIsImZvcm1EYXRhIiwiZm9ybURhdGFfZm9ybSIsImZpbHRlcl9tYXAkMCIsImhhdmVfY29udGVudCIsImZvcm1fZWxlbWVudHMiLCJpJDIiLCJ2JDIiLCJzdGgiLCJuYW1lJDEiLCJsaXN0IiwidiQxIiwiYXBwZW5kIiwiZm9ybV9jb250ZW50cyIsImZvcm1fZWx0IiwiZW1wdHlfZm9ybV9jb250ZW50cyIsInBvc3RfZm9ybV9jb250ZW50cyIsImNvbnRlbnRzIiwiZ2V0X2Zvcm1fY29udGVudHMiLCJyZWFkeXN0YXRlY2hhbmdlIiwibG9hZHN0YXJ0JDEiLCJwcm9ncmVzcyQxIiwiYWJvcnQkMSIsImVycm9yJDEiLCJsb2FkJDEiLCJ0aW1lb3V0IiwibG9hZGVuZCQwIiwiY3JlYXRlIiwiaW1wb3J0X3NjcmlwdHMiLCJzY3JpcHRzIiwic2V0X29ubWVzc2FnZSIsImpzX2hhbmRsZXIiLCJwb3N0X21lc3NhZ2UiLCJ3ZWJTb2NrZXQiLCJpc19zdXBwb3J0ZWQiLCJkZWZhdWx0Q29udGV4dEF0dHJpYnV0ZXMiLCJ3ZWJnbGNvbnRleHRsb3N0Iiwid2ViZ2xjb250ZXh0cmVzdG9yZWQiLCJ3ZWJnbGNvbnRleHRjcmVhdGlvbmVycm9yIiwiZ2V0Q29udGV4dCIsImN0eCIsImdldENvbnRleHRXaXRoQXR0cmlidXRlcyIsInJlZ2V4cCIsInJlZ2V4cF9jYXNlX2ZvbGQiLCJyZWdleHBfd2l0aF9mbGFnIiwiYmx1bnRfc3RyX2FycmF5X2dldCIsInN0cmluZ19tYXRjaCIsInIiLCJzZWFyY2hfZm9yd2FyZCIsIm1hdGNoZWRfc3RyaW5nIiwibWF0Y2hlZF9ncm91cCIsInF1b3RlX3JlcGwiLCJnbG9iYWxfcmVwbGFjZSIsInNfYnkiLCJyZXBsYWNlX2ZpcnN0IiwiZmxhZ3MiLCJsaXN0X29mX2pzX2FycmF5IiwiaWR4JDEiLCJhY2N1IiwiaWR4JDAiLCJhY2N1JDAiLCJzcGxpdCIsImJvdW5kZWRfc3BsaXQiLCJxdW90ZSIsInJlZ2V4cF9zdHJpbmciLCJyZWdleHBfc3RyaW5nX2Nhc2VfZm9sZCIsImludGVycnVwdCIsInBsdXNfcmUiLCJ1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyIsInVybGRlY29kZSIsInVybGVuY29kZSIsIm9wdCIsIndpdGhfcGx1cyIsImRlZmF1bHRfaHR0cF9wb3J0IiwiZGVmYXVsdF9odHRwc19wb3J0IiwicGF0aF9vZl9wYXRoX3N0cmluZyIsImF1eCIsImoiLCJ3b3JkIiwiZW5jb2RlX2FyZ3VtZW50cyIsImRlY29kZV9hcmd1bWVudHNfanNfc3RyaW5nIiwibGVuIiwiZGVjb2RlX2FyZ3VtZW50cyIsInVybF9vZl9qc19zdHJpbmciLCJwcm90X3N0cmluZyIsInNzbCIsInBhdGhfc3RyIiwidXJsIiwidXJsX29mX3N0cmluZyIsInN0cmluZ19vZl91cmwiLCJmcmFnIiwiYXJncyIsInBhdGgiLCJwb3J0IiwiaG9zdCIsImZyYWckMCIsImFyZ3MkMCIsInBhdGgkMCIsInBvcnQkMCIsImhvc3QkMCIsImZyYWckMSIsImFyZ3MkMSIsInBhdGgkMSIsInByb3RvY29sIiwicGF0aF9zdHJpbmciLCJhcmd1bWVudHMkMCIsImdldF9mcmFnbWVudCIsInNldF9mcmFnbWVudCIsImdldCQyIiwic2V0JDAiLCJ1IiwiYXNfc3RyaW5nIiwidXBkYXRlX2ZpbGUiLCJjb250ZW50Iiwib2MiLCJzZXRfY2hhbm5lbF9mbHVzaGVyIiwib3V0X2NoYW5uZWwiLCJmJDAiLCJzZXRfY2hhbm5lbF9maWxsZXIiLCJpbl9jaGFubmVsIiwibW91bnQiLCJwcmVmaXgiLCJ1bm1vdW50IiwianNfb2Zfb2NhbWxfdmVyc2lvbiIsImVtcHR5X3Jlc2l6ZV9vYnNlcnZlcl9vcHRpb25zIiwiaXNfc3VwcG9ydGVkJDAiLCJvYnNlcnZlIiwibm9kZSIsImJveCIsImJveCQwIiwiaXNfc3VwcG9ydGVkJDEiLCJvYnNlcnZlJDAiLCJlbnRyeV90eXBlcyIsImVtcHR5X211dGF0aW9uX29ic2VydmVyX2luaXQiLCJpc19zdXBwb3J0ZWQkMiIsIm9ic2VydmUkMSIsImNoaWxkX2xpc3QiLCJhdHRyaWJ1dGVzIiwiY2hhcmFjdGVyX2RhdGEiLCJzdWJ0cmVlIiwiYXR0cmlidXRlX29sZF92YWx1ZSIsImNoYXJhY3Rlcl9kYXRhX29sZF92YWx1ZSIsImF0dHJpYnV0ZV9maWx0ZXIiLCJjcmVhdGUkMCIsImFkZCQwIiwiayIsInJlbW92ZSIsImZpbmQiLCJrZXlzIiwicmV2aXZlciIsInVuc2FmZV9pbnB1dCIsIm1sSW50NjRfY29uc3RyIiwib3V0cHV0X3Jldml2ZXIiLCJvdXRwdXQiLCJzdHJpbmdfb2ZfbmFtZSIsIm5hbWVfb2Zfc3RyaW5nIiwicmdiX29mX25hbWUiLCJyZ2IiLCJoc2wiLCJzdHJpbmdfb2ZfdCIsImIkMCIsImckMCIsInIkMCIsImIkMSIsImckMSIsInIkMSIsImIkMiIsImckMiIsInIkMiIsImEkMSIsImgkMCIsImhleF9vZl9yZ2IiLCJibHVlIiwiZ3JlZW4iLCJyZWQiLCJpbl9yYW5nZSIsImpzX3Rfb2ZfanNfc3RyaW5nIiwianMiLCJtbCIsImZhaWwiLCJyZV9yZ2IiLCJyZV9yZ2JfcGN0IiwicmVfaHNsIiwiaV9vZl9zX28iLCJmX29mX3MiLCJhbHBoYSIsInJlZCQwIiwiZ3JlZW4kMCIsImJsdWUkMCIsImFscGhhJDAiLCJyZWQkMSIsImdyZWVuJDEiLCJibHVlJDEiLCJhbHBoYSQxIiwic3RyaW5nX29mX3QkMCIsImYkMSIsImYkMiIsImYkMyIsImYkNCIsImYkNSIsImYkNiIsImYkNyIsImYkOCIsImYkOSIsImYkMTAiLCJmJDExIiwiZiQxMiIsImpzJDAiLCJtbCQwIiwicmUiLCJzdHJpbmdfb2ZfdCQxIiwianMkMSIsIm1sJDEiLCJsaXN0ZW4iLCJ0YXJnZXQiLCJjcmVhdGVFbGVtZW50JDAiLCJ1bnNhZmVDcmVhdGVFbGVtZW50JDAiLCJjcmVhdGVBJDAiLCJjcmVhdGVBbHRHbHlwaCIsImNyZWF0ZUFsdEdseXBoRGVmIiwiY3JlYXRlQWx0R2x5cGhJdGVtIiwiY3JlYXRlQW5pbWF0ZSIsImNyZWF0ZUFuaW1hdGVDb2xvciIsImNyZWF0ZUFuaW1hdGVNb3Rpb24iLCJjcmVhdGVBbmltYXRlVHJhbnNmb3JtIiwiY3JlYXRlQ2lyY2xlIiwiY3JlYXRlQ2xpcFBhdGgiLCJjcmVhdGVDdXJzb3IiLCJjcmVhdGVEZWZzIiwiY3JlYXRlRGVzYyIsImNyZWF0ZUVsbGlwc2UiLCJjcmVhdGVGaWx0ZXIiLCJjcmVhdGVGb250IiwiY3JlYXRlRm9udEZhY2UiLCJjcmVhdGVGb250RmFjZUZvcm1hdCIsImNyZWF0ZUZvbnRGYWNlTmFtZSIsImNyZWF0ZUZvbnRGYWNlU3JjIiwiY3JlYXRlRm9udEZhY2VVcmkiLCJjcmVhdGVGb3JlaWduT2JqZWN0IiwiY3JlYXRlRyIsImNyZWF0ZUdseXBoIiwiY3JlYXRlR2x5cGhSZWYiLCJjcmVhdGVoa2VybiIsImNyZWF0ZUltYWdlIiwiY3JlYXRlTGluZUVsZW1lbnQiLCJjcmVhdGVMaW5lYXJFbGVtZW50IiwiY3JlYXRlTWFzayIsImNyZWF0ZU1ldGFEYXRhIiwiY3JlYXRlTWlzc2luZ0dseXBoIiwiY3JlYXRlTVBhdGgiLCJjcmVhdGVQYXRoIiwiY3JlYXRlUGF0dGVybiIsImNyZWF0ZVBvbHlnb24iLCJjcmVhdGVQb2x5bGluZSIsImNyZWF0ZVJhZGlhbGdyYWRpZW50IiwiY3JlYXRlUmVjdCIsImNyZWF0ZVNjcmlwdCQwIiwiY3JlYXRlU2V0IiwiY3JlYXRlU3RvcCIsImNyZWF0ZVN0eWxlJDAiLCJjcmVhdGVTdmciLCJjcmVhdGVTd2l0Y2giLCJjcmVhdGVTeW1ib2wiLCJjcmVhdGVUZXh0RWxlbWVudCIsImNyZWF0ZVRleHRwYXRoIiwiY3JlYXRlVGl0bGUkMCIsImNyZWF0ZVRyZWYiLCJjcmVhdGVUc3BhbiIsImNyZWF0ZVVzZSIsImNyZWF0ZVZpZXciLCJjcmVhdGV2a2VybiIsInN2Z19lbGVtZW50IiwiZG9jdW1lbnQkMCIsImdldEVsZW1lbnRCeUlkJDAiLCJlbGVtZW50JDIiLCJ1bnNhZmVDb2VyY2UkMCIsImFsdEdseXBoIiwiYWx0R2x5cGhEZWYiLCJhbHRHbHlwaEl0ZW0iLCJhbmltYXRlIiwiYW5pbWF0ZUNvbG9yIiwiYW5pbWF0ZU1vdGlvbiIsImFuaW1hdGVUcmFuc2Zvcm0iLCJjaXJjbGUiLCJjbGlwUGF0aCIsImN1cnNvciIsImRlZnMiLCJkZXNjIiwiZWxsaXBzZSIsImZpbHRlciIsImZvbnQiLCJmb250RmFjZSIsImZvbnRGYWNlRm9ybWF0IiwiZm9udEZhY2VOYW1lIiwiZm9udEZhY2VTcmMiLCJmb250RmFjZVVyaSIsImZvcmVpZ25PYmplY3QiLCJnbHlwaCIsImdseXBoUmVmIiwiaGtlcm4iLCJpbWFnZSIsImxpbmVFbGVtZW50IiwibGluZWFyRWxlbWVudCIsIm1ldGFEYXRhIiwibWlzc2luZ0dseXBoIiwibVBhdGgiLCJwYXR0ZXJuIiwicG9seWdvbiIsInBvbHlsaW5lIiwicmFkaWFsZ3JhZGllbnQiLCJyZWN0Iiwic2NyaXB0JDAiLCJzZXQkMSIsInN0b3AiLCJzdHlsZSQwIiwic3ZnIiwic3dpdGNoJDAiLCJzeW1ib2wkMTIiLCJ0ZXh0RWxlbWVudCIsInRleHRwYXRoIiwidGl0bGUkMCIsInRyZWYiLCJ0c3BhbiIsInVzZSIsInZpZXciLCJ2a2VybiIsIndpdGhDcmVkZW50aWFscyIsImV2ZW50U291cmNlIiwiZXZlbnRTb3VyY2Vfb3B0aW9ucyIsImNvbnNvbGUiLCJlbXB0eV9wb3NpdGlvbl9vcHRpb25zIiwiZ2VvbG9jYXRpb24iLCJpc19zdXBwb3J0ZWQkMyIsImVtcHR5X2ludGVyc2VjdGlvbl9vYnNlcnZlcl9vcCIsImludGVyc2VjdGlvbk9ic2VydmVyX3Vuc2FmZSIsImlzX3N1cHBvcnRlZCQ0Iiwib2JqZWN0X29wdGlvbnMiLCJvcHRpb25zJDEiLCJvcHRpb25zJDIiLCJpbnRsIiwiY29sbGF0b3JfY29uc3RyIiwiZGF0ZVRpbWVGb3JtYXRfY29uc3RyIiwibnVtYmVyRm9ybWF0X2NvbnN0ciIsInBsdXJhbFJ1bGVzX2NvbnN0ciIsImlzX3N1cHBvcnRlZCQ1IiwiZHVyYXRpb25fb2ZfanNvbyIsImQiLCJkdXJhdGlvbl90b19qc29vIiwiZGF5cyIsIm1vbnRocyIsInllYXJzIiwiZGF0ZV9vZl9qc29vIiwiZCQwIiwiZCQxIiwiZGF5IiwibW9udGgiLCJ5ZWFyIiwiZGF0ZV90b19qc29vIiwiZXZ0IiwicG9zIiwidiIsImluZm8iLCJldmVudCIsImV2ZW50X21hbmFnZXIiLCJleGVjdXRlX29yX3Rocm93X2Vycm9yIiwiZiIsInRocm93X2Vycm9yIiwiZGVzY3IiLCJwb3MkMCIsInBvcyQxIiwiZW1iZWRfcHJpc2VfZW5fY2hhcmdlIiwieCIsIngkMCIsIngkMSIsIngkMiIsIngkMyIsIngkNCIsImVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3NjbyIsImVtYmVkX3ByaXNlX2VuX2NvbXB0ZSIsImVtYmVkX3ZlcnNlbWVudF9hbGxvY2F0aW9ucyIsImVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaSIsIngkNSIsIngkNiIsIngkNyIsImVtYmVkX2NvbGxlY3Rpdml0ZSIsIngkOCIsImVtYmVkX2FsbG9jYXRpb25fZmFtaWxpYWxlc19hdiIsImVtYmVkX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWUiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWUiLCJlbWJlZF9zbWljIiwiZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvIiwiZW1iZWRfaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhIiwiZW1iZWRfZW5mYW50X2VudHJlZSIsImVtYmVkX2VuZmFudCIsImVtYmVkX2VuZmFudF9sZV9wbHVzX2FnZSIsImVtYmVkX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJlbWJlZF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2kiLCJlbWJlZF9hbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXYkMCIsImVtYmVkX2VuZmFudF9sZV9wbHVzX2FnZV9pbiIsImVtYmVkX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaSIsImVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZSQwIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmllJDAiLCJlbWJlZF9zbWljX2luIiwiZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvJDAiLCJlbWJlZF9pbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmEkMCIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCIsImFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfMyIsImVuZmFudF9sZV9wbHVzX2FnZSIsImVuZmFudF9sZV9wbHVzX2FnZV9pbiIsImVuZmFudHMiLCJwb3RlbnRpZWxfcGx1c19hZ2VfMSIsInBvdGVudGllbF9wbHVzX2FnZV8yIiwibGVfcGx1c19hZ2UiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8iLCJkYXRlX25haXNzYW5jZSIsImRhdGVfY291cmFudGUiLCJhbm5lZXMiLCJlc3RfaW5mZXJpZXVyX291X2VnYWwiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pIiwiZXN0X3N1cGVyaWV1ciIsInNtaWMiLCJzbWljX2luIiwicmVzaWRlbmNlIiwiYnJ1dF9ob3JhaXJlIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtIiwibW9udGFudCIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIiwiYWdlX2w1MTJfM18yIiwic21pY19kb3RfZGF0ZV9jb3VyYW50ZSIsInNtaWNfZG90X3Jlc2lkZW5jZSIsInJlc3VsdCIsInNtaWNfZG90X2JydXRfaG9yYWlyZSIsInJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xIiwicGxhZm9uZF9sNTEyXzNfMiIsImVuZmFudCIsImNvbmRpdGlvbnNfaG9yc19hZ2UiLCJkcm9pdF9vdXZlcnQiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiIsInBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybSIsInBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybSQwIiwicmVzc291cmNlc19tZW5hZ2UiLCJlbmZhbnRzX2FfY2hhcmdlIiwiYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlIiwicHJpc2VfZW5fY29tcHRlIiwibm9tYnJlX2VuZmFudHNfYWxpbmVhXzJfbDUyMV8zIiwidmVyc2lvbl9hdnJpbF8yMDA4X2RvdF9hZ2VfbWluIiwiYm1hZl9kb3RfZGF0ZV9jb3VyYW50ZSIsInJlc3VsdCQwIiwiYm1hZl9kb3RfbW9udGFudCIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdCIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3ByZSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlcyIsInJlc3VsdCQxIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZHJvIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfY29uIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnIiwiZW5mYW50X2xlX3BsdXNfYWdlX2RvdF9lbmZhbnRzIiwicmVzdWx0JDIiLCJlbmZhbnRfbGVfcGx1c19hZ2VfZG90X2xlX3BsdXMiLCJlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF8iLCJlc3RfZW5mYW50X2xlX3BsdXNfYWdlIiwicGxhZm9uZF9pX2lfZDUyMV8zIiwicGxhZm9uZF9pX2Q1MjFfMyIsImRyb2l0X291dmVydF9jb21wbGVtZW50IiwiZHJvaXRfb3V2ZXJ0X2ZvcmZhaXRhaXJlIiwibW9udGFudF9pbml0aWFsX2Jhc2VfcXVhdHJpZW1lIiwibW9udGFudF9pbml0aWFsX2Jhc2VfdHJvaXNpZW1lIiwibm9tYnJlX3RvdGFsX2VuZmFudHMiLCJzdW0xIiwic3VtMiIsIm5vbWJyZV9tb3llbl9lbmZhbnRzIiwibW9udGFudF9pbml0aWFsX2Jhc2VfcHJlbWllcl9lIiwiZHJvaXRfb3V2ZXJ0X2Jhc2UiLCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvbiIsImFsbG9jYXRpb24iLCJjb21wbGVtZW50X2RlZ3Jlc3NpZiIsIm1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfcGFyXyIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzaWVtZSQwIiwibW9udGFudF9pbml0aWFsX2Jhc2VfZGV1eGllbWVfIiwicmFwcG9ydF9lbmZhbnRzX3RvdGFsX21veWVuIiwibW9udGFudF9pbml0aWFsX21ldHJvcG9sZV9tYWpvIiwibW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZSIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlIiwibW9udGFudF9pbml0aWFsX21ham9yYXRpb24iLCJtb250YW50X3ZlcnNlX2NvbXBsZW1lbnRfcG91cl8iLCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuZWVfYmEiLCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuZWVfbWEiLCJtb250YW50X3ZlcnNlX2Jhc2UiLCJtb250YW50X3ZlcnNlX21ham9yYXRpb24iLCJtb250YW50X2Jhc2VfY29tcGxlbWVudF9wb3VyX2IiLCJtb250YW50X3ZlcnNlX2NvbXBsZW1lbnRfcG91cl8kMCIsIm1vbnRhbnRfdmVyc2UiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwiLCJpX2RhdGVfY291cmFudGUiLCJpX2VuZmFudHMiLCJpX3Jlc3NvdXJjZXNfbWVuYWdlIiwiaV9yZXNpZGVuY2UiLCJpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGUiLCJpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGUkMCIsImlfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XyIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3BlciIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3BlciQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzJDAiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXQiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9lbmYiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9hdmEiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9tb24iLCJpX21vbnRhbnRfdmVyc2UiLCJwcmlzZV9lbl9jaGFyZ2VfdG9fanNvbyIsImFyZyIsImFyZyQwIiwiYXJnJDEiLCJhcmckMiIsImFyZyQzIiwicHJpc2VfZW5fY2hhcmdlX29mX2pzb28iLCJwcmlzZV9lbl9jaGFyZ2UiLCJjb25zIiwic2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfIiwic2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfJDAiLCJzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSIsInByaXNlX2VuX2NvbXB0ZV90b19qc29vIiwicHJpc2VfZW5fY29tcHRlX29mX2pzb28iLCJ2ZXJzZW1lbnRfYWxsb2NhdGlvbnNfdG9fanNvbyIsInZlcnNlbWVudF9hbGxvY2F0aW9uc19vZl9qc29vIiwidmVyc2VtZW50X2FsbG9jYXRpb25zIiwiZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIiwiYXJnJDQiLCJhcmckNSIsImFyZyQ2IiwiZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzJDAiLCJjb2xsZWN0aXZpdGVfdG9fanNvbyIsImFyZyQ3IiwiY29sbGVjdGl2aXRlX29mX2pzb28iLCJjb2xsZWN0aXZpdGUiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAkMCIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQxIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDAiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfdCIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfbyIsInNtaWNfdG9fanNvbyIsInNtaWNfb2ZfanNvbyIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQwIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtJDEiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwkMCIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCQxIiwiZW5mYW50X2VudHJlZV90b19qc29vIiwiZW5mYW50X2VudHJlZSIsImVuZmFudF9lbnRyZWVfb2ZfanNvbyIsImVuZmFudF90b19qc29vIiwiZW5mYW50X29mX2pzb28iLCJlbmZhbnRfbGVfcGx1c19hZ2VfdG9fanNvbyIsImVuZmFudF9sZV9wbHVzX2FnZV9vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiZnVuY3Rpb25faW5wdXQwIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qIiwiYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwJDIiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAkMyIsImVuZmFudF9sZV9wbHVzX2FnZV9pbl90b19qc29vIiwiZW5mYW50X2xlX3BsdXNfYWdlX2luX29mX2pzb28iLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2oiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2oiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMiIsInZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291XyQzIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pJDAiLCJzbWljX2luX3RvX2pzb28iLCJzbWljX2luX29mX2pzb28iLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMiIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQzIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsJDIiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwkMyIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQ0IiwiZW5mYW50X2xlX3BsdXNfYWdlJDAiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kNCIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EkMCIsInNtaWMkMCIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQ0IiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcyQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyQwIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsJDQiLCJlbWJlZF90eXBlX3ByZXQiLCJlbWJlZF90aXR1bGFpcmVfcHJldCIsImVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9kOCIsImVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9yOCIsImVtYmVkX2FtZWxpb3JlX3Bhcl9vY2N1cGFudCIsImVtYmVkX2xpbWl0ZV90cmFuY2hlIiwiZW1iZWRfbGltaXRlX3RyYW5jaGVfZGVjaW1hbCIsImVtYmVkX3ByZXN0YXRpb25fcmVjdWUiLCJlbWJlZF9wYXJlbnRfb3VfYXV0cmUiLCJlbWJlZF9zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUiLCJlbWJlZF9wYXJlbnRlIiwiZW1iZWRfZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pIiwiZW1iZWRfem9uZV9kX2hhYml0YXRpb24iLCJlbWJlZF9wYWllbWVudF9sb2dlbWVudF9kaXN0aW4iLCJlbWJlZF92ZXJzZW1lbnRfYSIsImVtYmVkX2RlcGVuc2VfbG9nZW1lbnQiLCJlbWJlZF9tb2RlX29jY3VwYXRpb25faW1wYXllIiwiZW1iZWRfdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0IiwiZW1iZWRfYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlIiwiZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sIiwiZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZSIsImVtYmVkX3ByaXNlX2VuX2NoYXJnZSQwIiwiZW1iZWRfdHlwZV9sb2dlbWVudF9mb3llciIsImVtYmVkX2NhdGVnb3JpZV9lcXVpdmFsZW5jZV9sbyIsImVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsYyIsImVtYmVkX2NvbGxlY3Rpdml0ZSQwIiwiZW1iZWRfcHJpc2VfZW5fY2hhcmdlX2VuZmFudCIsImVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3NjbyQwIiwiZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pJDAiLCJlbWJlZF9jb252ZW50aW9uX2JhaWxsZXVyX3NvY2kiLCJlbWJlZF9jb252ZW50aW9uX2Ffbl9oX2EiLCJlbWJlZF9wZXJzb25uZV9zb3VzX2xvY2F0aW9uIiwiZW1iZWRfcGF0cmltb2luZSIsImVtYmVkX2NvbmRpdGlvbnNfZXRyYW5nZXJzIiwiZW1iZWRfcGVyc29ubmVfdml2YW50X2hhYml0dWVsIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uIiwiZW1iZWRfZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtIiwiZW1iZWRfcmVzc291cmNlc19haWRlc19wZXJzb25uIiwiZW1iZWRfY29udHJpYnV0aW9uc19zb2NpYWxlc19hIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlIiwiZW1iZWRfY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyIiwiZW1iZWRfY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDAiLCJlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2UiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkMSIsImVtYmVkX3RyYWl0ZW1lbnRfZm9ybXVsZV9haWRlXyIsImVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZSQyIiwiZW1iZWRfaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVuIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDAiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkMSIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQyIiwiZW1iZWRfb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0IiwiZW1iZWRfaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQiLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UiLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UkMCIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyQxIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmllJDEiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWUkMSIsImVtYmVkX3NtaWMkMCIsImVtYmVkX25ldWZfb3VfYW5jaWVuIiwiZW1iZWRfdHJhbmNoZV9yZXZlbnUiLCJlbWJlZF90cmFuY2hlX3JldmVudV9kZWNpbWFsIiwiZW1iZWRfYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UiLCJlbWJlZF9kYXRlX25haXNzYW5jZV90cm9pc2llbWUiLCJlbWJlZF9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2wiLCJlbWJlZF9wcmV0IiwiZW1iZWRfbG9nZW1lbnRfZm95ZXIiLCJlbWJlZF9lbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWwiLCJlbWJlZF90eXBlX2JhaWxsZXVyIiwiZW1iZWRfbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfIiwiZW1iZWRfbmF0aW9uYWxpdGUiLCJlbWJlZF9jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDIiLCJlbWJlZF9pbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGUiLCJlbWJlZF9wcm9wcmlldGFpcmUiLCJlbWJlZF9lbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc18iLCJlbWJlZF9kZW1hbmRldXIiLCJlbWJlZF9lbmZhbnRfYV9jaGFyZ2UiLCJlbWJlZF9sb2NhdGlvbiIsImVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlIiwiZW1iZWRfY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCIsImVtYmVkX21vZGVfb2NjdXBhdGlvbiIsImVtYmVkX2VsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbiIsImVtYmVkX2xvZ2VtZW50IiwiZW1iZWRfbWVuYWdlIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29uJDAiLCJlbWJlZF9lbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm4kMCIsImVtYmVkX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbCQwIiwiZW1iZWRfZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtJDAiLCJlbWJlZF9yZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm4kMCIsImVtYmVkX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYSQwIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDMiLCJlbWJlZF9jYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXIkMCIsImVtYmVkX2NhbGN1bF9ub21icmVfcGFydF9sb2dlbSQwIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDQiLCJlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2UkMCIsImVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZSQ1IiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDYiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkMyIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQ0IiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDUiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkNiIsImVtYmVkX291dmVydHVyZV9kcm9pdHNfcmV0cmFpdCQwIiwiZW1iZWRfaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfIiwiZW1iZWRfY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlJDEiLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UkMiIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyQyIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmllJDIiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWUkMiIsImVtYmVkX3NtaWNfaW4kMCIsImVtYmVkX2VsaWdpYmlsaXRlX3ByZXN0YXRpb25zXyQwIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wIiwiZXhvbmVyZV9jc2ciLCJ0YXV4X2NyZHMiLCJhaWRlX2ZpbmFsZSIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSIsInJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllcyIsImNvbmRpdGlvbl8yX2R1XzgzMl8yNSIsIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUiLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjYiLCJ0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjYiLCJ0cmFuY2hlIiwidHJhbmNoZV9oYXV0IiwidHJhbmNoZXNfcmV2ZW51c19kODMyXzI2X211bHRpIiwicmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzJDAiLCJjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm8iLCJub21icmVfcGVyc29ubmVzX2FfY2hhcmdlIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsIiwibGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lIiwibl9ub21icmVfcGFydHNfZDgzMl8yNV9iYXNlIiwibl9ub21icmVfcGFydHNfZDgzMl8yNV9tYWpvcmF0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fIiwibl9ub21icmVfcGFydHNfZDgzMl8xMSIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luIiwiZGF0ZV9uYWlzc2FuY2VfYXNzdXJlIiwiYWdlX291dmVydHVyZV9kcm9pdCIsImltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4iLCJtb2RlX29jY3VwYXRpb24iLCJhaWRlX3ZlcnNlZSIsIm1vbnRhbnRfYXBsIiwibW9udGFudF9jaGFyZ2VzIiwiZGVwZW5zZV9sb2dlbWVudCIsIm1vbnRhbnRfZGV0dGUiLCJtb2RlX29jY3VwYXRpb25faW1wYXllIiwiZGVwZW5zZV9sb2dlbWVudF9icnV0ZSIsInRvdGFsX2VjaGVhbmNlcyIsIm1lbnN1YWxpdGUiLCJsb3llciIsInRvdGFsIiwibW9udGFudF9sb3llciIsImRlcGVuc2VfbG9nZW1lbnRfbmV0dGUiLCJlY2hlYW5jZV9wcmV0X25ldHRlIiwibWVuc3VhbGl0ZV9uZXR0ZSIsImVjaGVhbmNlX3ByZXRfYnJ1dGUiLCJtZW5zdWFsaXRlX2JydXRlIiwibG95ZXJfbmV0IiwibG95ZXJfYnJ1dCIsInNldWlsX2ltcGF5ZV9kZXBlbnNlX2RlX2xvZ2VtZSIsIm1vbnRhbnRfaW1wYXllIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtJDUiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kNSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EkMSIsInNtaWMkMSIsImFycm9uZGlfY2VudGFpbmVfc3VwZXJpZXVyZSIsInRyYWl0ZW1lbnRfbnVsX3RvdXRfbGVfdGVtcHMiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UiLCJsb3llcl9wcmluY2lwYWxfYmFzZSIsImJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbiIsInpvbmUiLCJsb2dlbWVudF9lc3RfY2hhbWJyZSIsImFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZSIsInR5cGVfYWlkZSIsImNvbG9jYXRpb24iLCJyZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZSIsImxvZ2VtZW50X21ldWJsZV9kODQyXzIiLCJmcmFjdGlvbl9sODMyXzMiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXQiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb24iLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MjNfMTYiLCJtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXIiLCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzE2IiwibG95ZXJfcHJpbmNpcGFsX2F2ZWNfcmVkdWN0aW9uIiwidGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGUiLCJtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3IwIiwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9sb3llIiwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmIiwibGltaXRlIiwibW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4IiwiYWJhdHRlbWVudF9mb3JmYWl0YWlyZV9kODIzXzE3IiwibG95ZXJfcmVmZXJlbmNlIiwicGxhZm9uZF9sb3llcl9kODIzXzE2XzIiLCJwbGFmb25kX3N1cHByZXNzaW9uX2Q4MjNfMTYiLCJwbGFmb25kX2RlZ3Jlc3Npdml0ZV9kODIzXzE2IiwibG95ZXJfZWxpZ2libGUiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RpbWludWUiLCJwYXJ0aWNpcGF0aW9uX21pbmltYWxlIiwicmFwcG9ydF9sb3llcnMiLCJhaWRlX2ZpbmFsZSQwIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0IiwidGF1eF9sb3llcl9lbGlnaWJsZV9mb3JtdWxlIiwiY3JkcyIsImFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaSIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYiIsInRhdXhfbG95ZXJfZWxpZ2libGVfdGF1eF9hcnJvbiIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcmVkdWN0aSIsInRhdXhfcHJpc2VfY29tcHRlX3Jlc3NvdXJjZXMiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnQiLCJwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXMiLCJwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXMkMCIsInBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUiLCJhaWRlX2ZpbmFsZV9mb3JtdWxlIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDAiLCJ0eXBlX2xvZ2VtZW50X2ZveWVyIiwiZGF0ZV9jb252ZW50aW9ubmVtZW50IiwicmVkZXZhbmNlIiwibGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lJDAiLCJjb25kaXRpb25fMl9kdV84MzJfMjUkMCIsIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MjNfMjQiLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjQiLCJwbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWciLCJjb2VmZmljaWVudF9yX2Q4MzJfMjUiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9jb25kaXQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmUiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9zaXR1YXQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9yZXNpZGUiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9saW1pdGEiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWIiLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjciLCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMiLCJlcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSIsIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUkMCIsImFsbG9jYXRpb25fbWVuc3VlbGxlIiwiZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3IiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDAiLCJjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW0kMSIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSQyIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDMiLCJjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW0kNCIsImRlbm9taW5hdGV1ciIsImRlbm9taW5hdGV1ciQwIiwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4IiwiZGVwZW5zZV9uZXR0ZV9taW5pbWFsZSIsImFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbSIsImVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIiwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4JDAiLCJhaWRlX2ZpbmFsZSQxIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtIiwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4JDEiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMSIsIm1lbnN1YWxpdGVfcHJpbmNpcGFsZSIsInR5cGVfdHJhdmF1eF9sb2dlbWVudCIsImRhdGVfc2lnbmF0dXJlX3ByZXQiLCJsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW4iLCJkYXRlX2VudHJlZV9sb2dlbWVudCIsImNvcHJvcHJpZXRlIiwic2l0dWF0aW9uX3I4MjJfMTFfMTNfMTciLCJ0eXBlX3ByZXQiLCJhbmNpZW5uZXRlX2xvZ2VtZW50IiwidGF1eF9mcmFuY3NfdmVyc19ldXJvcyIsInRhdXhfdHJhbmNoZV9zdXBlcmlldXJlX2Q4MzJfMSIsInRhdXhfdHJhbmNoZV9pbmZlcmlldXJlX2Q4MzJfMSIsIm1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMSIsImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MyQwIiwiYW1lbGlvcmVfcGFyX29jY3VwYW50IiwiY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzJDEiLCJtb250YW50X21pbmltYWxfYWlkZV9kODMyXzEwIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzEwIiwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODMyIiwicmVzc291cmNlc19tZW5hZ2VfYXZlY19kODMyXzE4IiwiZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwIiwicGxhZm9uZF9zaWduYXR1cmUiLCJwbGFmb25kX2VudHJlZSIsInBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYiIsInBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYyIsIm1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMSQwIiwibWVuc3VhbGl0ZV9taW5pbWFsZSIsIm1lbnN1YWxpdGVfZWxpZ2libGUiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wiLCJyZXNzb3VyY2VzX2RlbWFuZGV1ciIsInJlc3NvdXJjZXNfY29uam9pbnQiLCJwZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW4iLCJkZW1hbmRldXJfZXhlcmNlX2FjdGl2aXRlX3JlbXUiLCJjb25qb2ludF9leGVyY2VfYWN0aXZpdGVfcmVtdW4iLCJwZXJzb25uZXNfYV9jaGFyZ2UiLCJzaXR1YXRpb25fZmFtaWxpYWxlIiwiY29uZGl0aW9uX2FnZV9ib3Vyc2VfZW5zZWlnbmVtIiwiZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXMiLCJkYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXQiLCJwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm8iLCJwZXJzb25uZSIsInJlc3NvdXJjZXNfcGVyc29ubmVzX3ZpdmFudF9oYSIsImFiYXR0ZW1lbnQiLCJtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzciLCJtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzgiLCJyZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGUiLCJhY2MiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkiLCJhZ2VfbDUxMl8zXzIkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvYyIsImxveWVyX3ByaW5jaXBhbCIsImNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb3llcl9wIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZXNzb3VyIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9iZW5lZmljIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9kYXRlX2NvIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9ub21icmVfIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9zaXR1YXRpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF96b25lIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVuIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9hZ2Vlc19vIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90eXBlX2FpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9jb2xvY2F0IiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZWR1Y3RpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVuJDAiLCJjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3Jlc2lkZW4iLCJjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2FpZGVfZmkiLCJjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3RyYWl0ZW0iLCJpbmZvcyIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kiLCJjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDgiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8iLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMCIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQxIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDIiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMyIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ0IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDUiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kNiIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ3IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDgiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kOSIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQxMCIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQxMSIsIm1vbnRhbnRfbWluaW1hbF9kZXBlbnNlX25ldHRlXyIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xNSIsIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4NDJfMTUiLCJlcXVpdmFsZW5jZV9sb3llciIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlcyIsImxveWVyX21pbmltYWwiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RlcGVuc2UiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZGV2YW4iLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MiLCJyZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmEiLCJjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldCIsIm9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzXyIsImNvZWZmaWNpZW50X2Q4NDJfMTIiLCJjb2VmZmljaWVudF9kODQyXzExIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzEyIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzExIiwibW9udGFudF9taW5pbWFsX2FpZGVfZDg0Ml82IiwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzYiLCJjb25kaXRpb25fZDg0Ml8xMV8zIiwiZGF0ZV9jYWxjdWwiLCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDIiLCJzZXVpbF9taW5pbWFsX3Jlc3NvdXJjZXNfbWVuYWciLCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDIkMCIsInJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19zZSIsImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0MiQxIiwic2V1aWxfbWluaW1hbF9kZXBlbnNlX25ldHRlX21pIiwicGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNiIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGUkMCIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQyIiwicmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpIiwibG9jYXRpb24iLCJsb2dlbWVudGZveWVyIiwicHJvcHJpZXRhaXJlIiwibG9jYXRpb24kMCIsInByb3ByaWV0YWlyZSQwIiwiY2F0ZWdvcmllX2NhbGN1bF9hcGwiLCJyZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGkiLCJiYWlsbGV1ciIsInBhcmFtMCIsInRyYWl0ZW1lbnRfZm9ybXVsZSIsInRyYWl0ZW1lbnRfZm9ybXVsZSQwIiwibG9nZW1lbnRfZm95ZXIiLCJyZXN1bHQkMyIsInJlc3VsdCQ0IiwidHJhaXRlbWVudF9mb3JtdWxlJDEiLCJzb3VzX2NhbGN1bF90cmFpdGVtZW50IiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfIiwibWVuYWdlIiwiZGVtYW5kZXVyIiwiY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wIiwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2UiLCJkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2MiLCJwcmV0IiwiZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jJDAiLCJzZXVpbF9sODIyXzNfcGFydHNfcHJvcHJpZXRlIiwic2V1aWxfbDgyMl8zX3BhcnRzX3VzdWZydWl0Iiwic2V1aWxfbDgyMl81X3BhdHJpbW9pbmUiLCJ1c3VmcnVpdF9vdV9wcm9wcmlldGVfZmFtaWxsZSIsIm5vbWJyZV9wZXJzb25uZXNfbG9nZW1lbnQiLCJzZXB0aWVtZV9hbGluZWFfbDgyM18xX2FwcGxpY2EiLCJjb25kaXRpb25fbm9uX291dmVydHVyZV9sODIyXzkiLCJjb25kaXRpb25fbm9uX291dmVydHVyZV9sODIyXzgiLCJjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3AkMCIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfZG90XyIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfZG90XyQwIiwicGF0cmltb2luZV90b3RhbF9kZW1hbmRldXIiLCJjb25kaXRpb25zIiwiY29uZGl0aW9uX25hdGlvbmFsaXRlIiwicGxhZm9uZF9pbmRpdmlkdWVsX2w4MTVfOV9zZWN1IiwiY29uZGl0aW9uX2xvZ2VtZW50X2xvY2F0aW9uX3RpIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlJDAiLCJ1c3VmcnVpdF9vdV9wcm9wcmlldGVfZmFtaWxsZSQwIiwicGFydHMiLCJwYXJ0cyQwIiwicGFydHMkMSIsInBhcnRzJDIiLCJjb25kaXRpb25fbG9nZW1lbnRfbW9kZV9vY2N1cGEiLCJjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9taW4iLCJjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZSQwIiwiYWdlX2wxNjFfMTdfMl9zZWN1IiwicHJlc3RhdGlvbiIsImNvbmRpdGlvbl9vdXZlcnR1cmVfbDgyMl8xMF9wZSIsImFnZV9sMzUxXzhfMV9zZWN1IiwiZWxpZ2liaWxpdGVfbG9nZW1lbnQiLCJwZXJzb25uZV9hX2NoYXJnZSIsInBhcmVudCIsImNvbmRpdGlvbl8yX3I4MjNfNCIsImVsaWdpYmlsaXRlIiwicHJpc2VfZW5fY29tcHRlX3BlcnNvbm5lX2FfY2hhIiwicGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jIiwiY29lZmYiLCJjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGUiLCJub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXMiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtIiwiaW5mb3JtYXRpb25zIiwiZGF0ZV9lbW1lbmFnZW1lbnQiLCJkZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnQiLCJkZWxhaV9hcHJlc19lbW1lbmFnZW1lbnRfbDgyM18iLCJjb25kaXRpb25fcmFuZ19lbmZhbnQiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X21lbmFnZSIsImVsaWdpYmlsaXRlX2FwbF9kb3RfZGVtYW5kZXVyIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9jb25kaXRpb25fIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9jb25kaXRpb25fJDAiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2RhdGVfZW50cmUiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2RhdGVfY291cmEkMCIsImVsaWdpYmlsaXRlX2FwbF9kb3RfZWxpZ2liaWxpdCIsImRhdGVfbmFpc3NhbmNlX291X2dyb3NzZXNzZSIsImNvbmRpdGlvbl9wZXJpb2RlX2RlbWVuYWdlbWVudCIsInBsYWZvbmRfZDgyM18yMiIsIm1vbnRhbnRfcHJpbWVfZGVtZW5hZ2VtZW50IiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuIiwiYmVuZWZpY2llX2FpZGVfcGVyc29ubmFsaXNlZV9sIiwiZHVyZWVfbDg0MV8xXzMiLCJsXzg0MV8xXzZfYXBwbGljYWJsZSIsImxfODQxXzFfMl9hcHBsaWNhYmxlIiwibF84NDFfMV8xX2FwcGxpY2FibGUiLCJjb25kaXRpb25fYWNjZXNzaW9uX3Byb3ByaWV0ZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X21lbmFnZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RlbWFuZCIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfYyIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdCIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdCQwIiwiZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9lIiwiZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZWxpZ2liIiwiZWxpZ2liaWxpdGVfY29tbXVuZV9kb3Rfbm9tYnJlIiwiZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29lZmZpIiwiZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0JDEiLCJlbGlnaWJpbGl0ZV9kaXNwb3NpdGlvbnNfY29tbXUiLCJkYXRlX21hcmlhZ2UiLCJlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW4kMCIsImRhdGVfYWNjb3JkIiwiZWxpZ2liaWxpdGVfbDg0MV8yIiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlIiwiY2FyYWN0ZXJpc3RpcXVlc19wcmV0X2w4MzFfMV8xIiwiY2FyYWN0ZXJpc3RpcXVlc19wcmV0X2w4MzFfMV82IiwibG9nZW1lbnRfc2l0dWVfY29tbXVuZV9kZXNlcXVpIiwicHJvcHJpZXRlIiwiY29udmVudGlvbiIsImNvbnZlbnRpb24kMCIsImNvbmRpdGlvbl9sb2dlbWVudF9iYWlsbGV1ciIsInByb3ByaWV0ZSQwIiwiY29uZGl0aW9uX2xvZ2VtZW50X3ByZXQiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pIiwicmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDEiLCJlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW4kMiIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiQzIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDQiLCJlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW4kNSIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQwIiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDEiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkMiIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQzIiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDQiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkNSIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDEiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkMiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkNSIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQ2IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDciLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkOCIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDQiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkNSIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ2IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDciLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkOCIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ5IiwiYWlkZV9maW5hbGVfYXBsIiwiYWlkZV9maW5hbGVfYWwiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ciLCJtZW5hZ2Vfc2Fuc19lbmZhbnRzX2dhcmRlX2FsdGUiLCJjYWxjdWxldHRlX2RvdF9tZW5hZ2UiLCJjYWxjdWxldHRlX2RvdF9kZW1hbmRldXIiLCJjYWxjdWxldHRlX2RvdF9kYXRlX2NvdXJhbnRlIiwiY2FsY3VsZXR0ZV9kb3RfcmVzc291cmNlc19tZW5hIiwiY2FsY3VsZXR0ZV9kb3RfZWxpZ2liaWxpdGUiLCJjYWxjdWxldHRlX2RvdF9haWRlX2ZpbmFsZV9mb3IiLCJjYWxjdWxldHRlX2RvdF90cmFpdGVtZW50X2FpZGUiLCJjYWxjdWxldHRlX2RvdF9jb2VmZmljZW50c19lbmYiLCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWUiLCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWUkMCIsImNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZSQxIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlJDIiLCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWUkMyIsInR5cGVfcHJldF90b19qc29vIiwidHlwZV9wcmV0X29mX2pzb28iLCJ0aXR1bGFpcmVfcHJldF90b19qc29vIiwidGl0dWxhaXJlX3ByZXRfb2ZfanNvbyIsInRpdHVsYWlyZV9wcmV0IiwidHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTVfIiwidHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTVfJDAiLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfdCIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfbyIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUiLCJhbWVsaW9yZV9wYXJfb2NjdXBhbnRfdG9fanNvbyIsImFtZWxpb3JlX3Bhcl9vY2N1cGFudF9vZl9qc29vIiwibGltaXRlX3RyYW5jaGVfdG9fanNvbyIsImxpbWl0ZV90cmFuY2hlX29mX2pzb28iLCJsaW1pdGVfdHJhbmNoZSIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfdG9fanNvbyIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfb2ZfanNvbyIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWwiLCJwcmVzdGF0aW9uX3JlY3VlX3RvX2pzb28iLCJwcmVzdGF0aW9uX3JlY3VlX29mX2pzb28iLCJwcmVzdGF0aW9uX3JlY3VlIiwicGFyZW50X291X2F1dHJlX3RvX2pzb28iLCJwYXJlbnRfb3VfYXV0cmVfb2ZfanNvbyIsInBhcmVudF9vdV9hdXRyZSIsInNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZV90b19qcyIsInNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZV9vZl9qcyIsInNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSIsInBhcmVudGVfdG9fanNvbyIsInBhcmVudGVfb2ZfanNvbyIsInBhcmVudGUiLCJkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2ciLCJkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2ckMCIsInpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28iLCJ6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vIiwiem9uZV9kX2hhYml0YXRpb24iLCJwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm8kMCIsInZlcnNlbWVudF9hX3RvX2pzb28iLCJ2ZXJzZW1lbnRfYV9vZl9qc29vIiwidmVyc2VtZW50X2EiLCJkZXBlbnNlX2xvZ2VtZW50X3RvX2pzb28iLCJkZXBlbnNlX2xvZ2VtZW50X29mX2pzb28iLCJtb2RlX29jY3VwYXRpb25faW1wYXllX3RvX2pzb28iLCJtb2RlX29jY3VwYXRpb25faW1wYXllX29mX2pzb28iLCJ0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG8iLCJ0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG8kMCIsImFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbiIsImFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbiQwIiwidHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVuIiwidHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVuJDAiLCJzaXR1YXRpb25fZmFtaWxpYWxlX3RvX2pzb28iLCJzaXR1YXRpb25fZmFtaWxpYWxlX29mX2pzb28iLCJwcmlzZV9lbl9jaGFyZ2VfdG9fanNvbyQwIiwicHJpc2VfZW5fY2hhcmdlX29mX2pzb28kMCIsInR5cGVfbG9nZW1lbnRfZm95ZXJfdG9fanNvbyIsInR5cGVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvbyIsImNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbCIsImNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbCQwIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wJDAiLCJjb2xsZWN0aXZpdGVfdG9fanNvbyQwIiwiY29sbGVjdGl2aXRlX29mX2pzb28kMCIsInByaXNlX2VuX2NoYXJnZV9lbmZhbnRfdG9fanNvbyIsInByaXNlX2VuX2NoYXJnZV9lbmZhbnRfb2ZfanNvbyIsInByaXNlX2VuX2NoYXJnZV9lbmZhbnQiLCJzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV8kMSIsInNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXyQyIiwiZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzJDEiLCJlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMkMiIsImNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX3RvXyIsImNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsIiwiY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWxfb2ZfIiwiY29udmVudGlvbl9hX25faF9hX3RvX2pzb28iLCJjb252ZW50aW9uX2Ffbl9oX2EiLCJjb252ZW50aW9uX2Ffbl9oX2Ffb2ZfanNvbyIsInBlcnNvbm5lX3NvdXNfbG9jYXRpb25fdG9fanNvbyIsInBlcnNvbm5lX3NvdXNfbG9jYXRpb24iLCJwZXJzb25uZV9zb3VzX2xvY2F0aW9uX29mX2pzb28iLCJwYXRyaW1vaW5lX3RvX2pzb28iLCJwYXRyaW1vaW5lIiwicGF0cmltb2luZV9vZl9qc29vIiwiY29uZGl0aW9uc19ldHJhbmdlcnNfdG9fanNvbyIsImNvbmRpdGlvbnNfZXRyYW5nZXJzIiwiY29uZGl0aW9uc19ldHJhbmdlcnNfb2ZfanNvbyIsInBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudCIsInBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudCQwIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDAiLCJlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW0kMSIsInJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbCQwIiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sJDEiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMCIsImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcCQxIiwiY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZvJDAiLCJjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm8kMSIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQwIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fJDEiLCJ0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUiLCJ0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUkMCIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxMCIsImluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiIsImluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDAiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2MkMSIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjJDEiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveSQxIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV90b19qIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9vZl9qIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfdG9fanNvIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfb2ZfanNvIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF90IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9vIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDAiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ckMSIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQ2IiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtJDciLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kNiIsInZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291XyQ3IiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV90JDAiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX28kMCIsInNtaWNfdG9fanNvbyQwIiwic21pY19vZl9qc29vJDAiLCJuZXVmX291X2FuY2llbl90b19qc29vIiwibmV1Zl9vdV9hbmNpZW5fb2ZfanNvbyIsIm5ldWZfb3VfYW5jaWVuIiwidHJhbmNoZV9yZXZlbnVfdG9fanNvbyIsInRyYW5jaGVfcmV2ZW51IiwidHJhbmNoZV9yZXZlbnVfb2ZfanNvbyIsInRyYW5jaGVfcmV2ZW51X2RlY2ltYWxfdG9fanNvbyIsInRyYW5jaGVfcmV2ZW51X2RlY2ltYWwiLCJ0cmFuY2hlX3JldmVudV9kZWNpbWFsX29mX2pzb28iLCJhdXRyZV9wZXJzb25uZV9hX2NoYXJnZV90b19qc28iLCJhdXRyZV9wZXJzb25uZV9hX2NoYXJnZSIsImF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlX29mX2pzbyIsImRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZSIsImRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZSQwIiwicHJldF90b19qc29vIiwicHJldF9vZl9qc29vIiwibG9nZW1lbnRfZm95ZXJfdG9fanNvbyIsImxvZ2VtZW50X2ZveWVyX29mX2pzb28iLCJlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc18iLCJlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyIsImVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzXyQwIiwidHlwZV9iYWlsbGV1cl90b19qc29vIiwidHlwZV9iYWlsbGV1cl9vZl9qc29vIiwidHlwZV9iYWlsbGV1ciIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXyIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXyQwIiwibG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMiLCJuYXRpb25hbGl0ZV90b19qc29vIiwibmF0aW9uYWxpdGVfb2ZfanNvbyIsIm5hdGlvbmFsaXRlIiwiY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfdG9fIiwiY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfb2ZfIiwiaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlIiwiaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlJDAiLCJwcm9wcmlldGFpcmVfdG9fanNvbyIsInByb3ByaWV0YWlyZV9vZl9qc29vIiwiZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpJDAiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMSIsImRlbWFuZGV1cl90b19qc29vIiwiZGVtYW5kZXVyX29mX2pzb28iLCJlbmZhbnRfYV9jaGFyZ2VfdG9fanNvbyIsImVuZmFudF9hX2NoYXJnZSIsImVuZmFudF9hX2NoYXJnZV9vZl9qc29vIiwibG9jYXRpb25fdG9fanNvbyIsImxvY2F0aW9uX29mX2pzb28iLCJwZXJzb25uZV9hX2NoYXJnZV90b19qc29vIiwicGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfdG9fanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfb2ZfanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2wiLCJtb2RlX29jY3VwYXRpb25fdG9fanNvbyIsIm1vZGVfb2NjdXBhdGlvbl9vZl9qc29vIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDAiLCJlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV8kMSIsImxvZ2VtZW50X3RvX2pzb28iLCJsb2dlbWVudCIsImxvZ2VtZW50X29mX2pzb28iLCJtZW5hZ2VfdG9fanNvbyIsIm1lbmFnZV9vZl9qc29vIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDIiLCJlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV8kMyIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQyIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDMiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wkMiIsInJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbCQzIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wJDIiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxMSIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxMiIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQyIiwiY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZvJDMiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTMiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8kMiIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE1IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE2IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE3IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE4IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDIiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2MkMyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQyIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjJDMiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkMiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveSQzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fJDAiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX3QiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX28iLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl90b18iLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl9vZl8iLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2kkMCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyQyIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDMiLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kOCIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQ5IiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDgiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kOSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaSQxIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pJDIiLCJzbWljX2luX3RvX2pzb28kMCIsInNtaWNfaW5fb2ZfanNvbyQwIiwiZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpJDIiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMyIsImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcCQ0IiwiY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZvJDQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8kNCIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUkMCIsImltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50JDAiLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMTAiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMTAiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hJDIiLCJzbWljJDIiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTkiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMjAiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMjEiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wkNCIsImVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaSQ0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkNCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQ0IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDIyIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCQwIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDQiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50JDAiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ckNCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCJdLCJzb3VyY2VzIjpbIiIsIi9idWlsdGluLytpbnQ2NC5qcyIsIi9idWlsdGluLyttbEJ5dGVzLmpzIiwiL2J1aWx0aW4vK2ZhaWwuanMiLCIvYnVpbHRpbi8rc3RkbGliLmpzIiwiL2J1aWx0aW4vK2Zvcm1hdC5qcyIsIi9idWlsdGluLytpZWVlXzc1NC5qcyIsIi9idWlsdGluLytlZmZlY3QuanMiLCIvYnVpbHRpbi8rZnNfbm9kZS5qcyIsIi9idWlsdGluLytmcy5qcyIsIi9idWlsdGluLyt1bml4LmpzIiwiL2J1aWx0aW4vK3N5cy5qcyIsIi9idWlsdGluLytmc19mYWtlLmpzIiwiL2J1aWx0aW4vK25hdC5qcyIsIi9idWlsdGluLytncmFwaGljcy5qcyIsIi9idWlsdGluLyttYXJzaGFsLmpzIiwiL2J1aWx0aW4vK2lvLmpzIiwiL2J1aWx0aW4vK2djLmpzIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi96YXJpdGhfc3R1YnNfanMvYmlnaW50ZWdlci5qcyIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvemFyaXRoX3N0dWJzX2pzL3J1bnRpbWUuanMiLCIvYnVpbHRpbi8rYmlnYXJyYXkuanMiLCIvYnVpbHRpbi8ranNsaWIuanMiLCIvYnVpbHRpbi8rcGFyc2luZy5qcyIsIi9idWlsdGluLytpbnRzLmpzIiwiL2J1aWx0aW4vK2hhc2guanMiLCIvYnVpbHRpbi8rb2JqLmpzIiwiL2J1aWx0aW4vK2RvbWFpbi5qcyIsIi9idWlsdGluLytjb21wYXJlLmpzIiwiL2J1aWx0aW4vK2pzbGliX2pzX29mX29jYW1sLmpzIiwiL2J1aWx0aW4vK2JpZ3N0cmluZy5qcyIsIi9idWlsdGluLyttZDUuanMiLCIvYnVpbHRpbi8rYmFja3RyYWNlLmpzIiwiL2J1aWx0aW4vK3N0ci5qcyIsIi9idWlsdGluLytsZXhpbmcuanMiLCIvYnVpbHRpbi8rYXJyYXkuanMiLCIvYnVpbHRpbi8rc3luYy5qcyIsIi9idWlsdGluLyt3ZWFrLmpzIiwiL2J1aWx0aW4vK3BybmcuanMiLCIvYnVpbHRpbi8rYmlnc3RyaW5nLWNzdHJ1Y3QuanMiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvdWNoYXIubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2ludDY0Lm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9sZXhpbmcubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcHJpbnRleGMubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2ZpbGVuYW1lLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jb21wbGV4Lm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxBdG9taWMubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0ZGxpYi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcGVydmFzaXZlcy5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZmxvYXQubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3JhbmRvbS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvbGlzdC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaW5fY2hhbm5lbC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvb3V0X2NoYW5uZWwubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2VpdGhlci5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvbmF0aXZlaW50Lm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9vYmoubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbExhenkubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2xhenkubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3NlcS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvb3B0aW9uLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9yZXN1bHQubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2Jvb2wubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NoYXIubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2J5dGVzLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9pbnQubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0cmluZy5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvdW5pdC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvbWFyc2hhbC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvYXJyYXkubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2ludDMyLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9wYXJzaW5nLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zZXQubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL21hcC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc3RhY2subWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3F1ZXVlLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zdHJlYW0ubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2J1ZmZlci5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcHJpbnRmLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9hcmcubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2Z1bi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZ2MubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2RpZ2VzdC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaGFzaHRibC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvd2Vhay5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZm9ybWF0Lm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zY2FuZi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FsbGJhY2subWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbE9PLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxNb2QubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2dlbmxleC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZXBoZW1lcm9uLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9iaWdhcnJheS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvZGF0ZXNfY2FsYy9kYXRlcy5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIveW9qc29uL3lvanNvbi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvcHB4X3lvanNvbl9jb252X2xpYi95b2pzb25fY29udi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvcHB4X3lvanNvbl9jb252X2xpYi95b2pzb25fY29udl9lcnJvci5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvcHB4X3lvanNvbl9jb252X2xpYi9wcHhfeW9qc29uX2NvbnZfbGliLm1sIiwiL3dvcmtzcGFjZV9yb290L3J1bnRpbWVzL29jYW1sL3J1bnRpbWUubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sLWNvbXBpbGVyL3J1bnRpbWUvanNvb19ydW50aW1lLm1sIiwiIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9pbXBvcnQubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9kb21faHRtbC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZG9tLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC90eXBlZF9hcnJheS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZmlsZS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZm9ybS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwveG1sSHR0cFJlcXVlc3QubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3dvcmtlci5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvd2ViU29ja2V0cy5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvd2ViR0wubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3JlZ2V4cC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvdXJsLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9zeXNfanMubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3Jlc2l6ZU9ic2VydmVyLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9wZXJmb3JtYW5jZU9ic2VydmVyLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9tdXRhdGlvbk9ic2VydmVyLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9qc3RhYmxlLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9qc29uLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9jU1MubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbV9ldmVudHMubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbV9zdmcubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2V2ZW50U291cmNlLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9maXJlYnVnLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9nZW9sb2NhdGlvbi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvaW50ZXJzZWN0aW9uT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ludGwubWwiLCIvd29ya3NwYWNlX3Jvb3QvcnVudGltZXMvanNvby9ydW50aW1lLm1sIiwiL3dvcmtzcGFjZV9yb290L2ZyZW5jaF9sYXcvb2NhbWwvbGF3X3NvdXJjZS9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLm1sIiwiL3dvcmtzcGFjZV9yb290L2ZyZW5jaF9sYXcvb2NhbWwvbGF3X3NvdXJjZS9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2FwaV93ZWIubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FpZGVzX2xvZ2VtZW50Lm1sIiwiL3dvcmtzcGFjZV9yb290L2ZyZW5jaF9sYXcvb2NhbWwvbGF3X3NvdXJjZS9haWRlc19sb2dlbWVudF9hcGlfd2ViLm1sIiwiL3dvcmtzcGFjZV9yb290L2ZyZW5jaF9sYXcvb2NhbWwvYXBpX3dlYi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc3RkX2V4aXQubWwiXSwibWFwcGluZ3MiOiI7OztBQUNBLENBQUM7SUFBVUE7SUFDVCxPQUFPQzs7OztLQUNMQztPQUNFO1FBQ0M7VUFBc0JGLDhDQUVoQkc7UUFDSEM7SUFFUixTQUFTRDtNQUNQLElBQUlFLE9BQVNILFFBQVFJO01BQ3JCLG9C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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVOzs7Ozs7Ozs7STJCdldEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNnaEJTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21DQWtDWTtNQWxDWjtlQUtKLElBRFE4QixjQUNBLFVBTEpELFVBSUlDO2VBR1IsSUFEVUMsZ0JBQ0EsVUFQTkYsVUFNTUU7ZUFHVixJQURPQyxnQkFDQSxVQVRISCxVQVFHRztlQUdQLElBRFNDLGdCQUNBLFVBWExKLFVBVUtJO2VBS1QsSUFEYUMsZ0JBQ0EsVUFmVEwsVUFjU0s7ZUFEYixJQURTQyxnQkFDQSxVQWJMTixVQVlLTTtlQUtULElBRFNDLGdCQUNBLFVBakJMUCxVQWdCS087ZUFHVCxJQURRQyxnQkFDQSxVQW5CSlIsVUFrQklROzthQUVXQyxnQkFBSkMsWUFDSSxVQURKQSxHQXBCWFYsVUFvQmVTOzthQUVTRSxnQkFBWEM7U0FDVSxVQURWQSxRQXRCYlosVUFzQndCVztnQkFHNUIsSUFEU0UsZ0JBQ0EsV0F6QkxiLFVBd0JLYTtnQkFHVCxJQURTQyxpQkFDQSxXQTNCTGQsVUEwQktjO2dCQUdULElBRE9DLGlCQUNBLFdBN0JIZixVQTRCR2U7Z0JBR1AsSUFEVUMsaUJBQ0EsV0EvQk5oQixVQThCTWdCO2dCQUdWLElBRGtCQyxpQkFDQSxXQWpDZGpCLFVBZ0NjaUIsVUFFVTthQWlCeEJDLGFBV0pDLE9BQU9DO01BQVUsVUFBakJELG9CQStCZ0IsT0EvQlRDO01BQVUsT0FBakJEO2VBRUEsSUFEUWxCLEtBRFJrQixVQUVRLFVBYkpELGFBWUlqQixLQUREbUI7ZUFJUCxJQURVbEIsT0FIVmlCLFVBSVUsVUFmTkQsYUFjTWhCLE9BSEhrQjtlQU1QLElBRE9qQixPQUxQZ0IsVUFNTyxVQWpCSEQsYUFnQkdmLE9BTEFpQjtlQVFQLElBRFNoQixPQVBUZSxVQVFTLFVBbkJMRCxhQWtCS2QsT0FQRmdCO2VBVVAsSUFEYWYsT0FUYmMsVUFVYSxVQXJCVEQsYUFvQlNiLE9BVE5lO2VBWVAsSUFEU2QsT0FYVGEsVUFZUyxVQXZCTEQsYUFzQktaLE9BWEZjO2VBY1AsSUFEU2IsT0FiVFksVUFjUyxVQXpCTEQsYUF3QktYLE9BYkZhO2VBZ0JQLElBRFFaLE9BZlJXLFVBZ0JRLFVBM0JKRCxhQTBCSVYsT0FmRFk7O2FBMkJZWCxPQTNCbkJVLFVBMkJlVCxHQTNCZlM7U0E0Qm1CLFVBREpULEdBdENYUSxhQXNDZVQsT0EzQlpXOzthQTZCb0JULE9BN0IzQlEsVUE2QnNCRSxJQTdCdEJGLFVBNkJpQlAsSUE3QmpCTztTQThCMkIsVUFEVlAsSUFBS1MsSUF4Q2xCSCxhQXdDdUJQLE9BN0JwQlM7Z0JBa0JQLElBRFNQLE9BakJUTSxVQWtCUyxXQTdCTEQsYUE0QktMLE9BakJGTzs7U0FvQlAsSUFEU04sUUFuQlRLLFVBb0JTLFdBL0JMRCxhQThCS0osUUFuQkZNOztTQXNCUCxJQURPTCxRQXJCUEksVUFzQk8sV0FqQ0hELGFBZ0NHSCxRQXJCQUs7O1NBd0JQLElBRFVKLFFBdkJWRyxVQXdCVSxXQW5DTkQsYUFrQ01GLFFBdkJISTtnQkEwQlAsSUFEa0JILFFBekJsQkUsVUEwQmtCLFdBckNkRCxhQW9DY0QsUUF6QlhHLFNBK0JlO2FBTWxCRSxXQUlKQyxLQUFLQztNQUFRLFVBQWJELGtCQTJEQSxPQTNES0M7TUFBUSxPQUFiRDtlQWtCQSxJQURLdEIsS0FqQkxzQixRQWtCSyxVQXRCREQsV0FxQkNyQixLQWpCQXVCO2VBb0JMLElBRFV0QixPQW5CVnFCLFFBb0JVLFVBeEJORCxXQXVCTXBCLE9BbkJMc0I7O2FBQ1FyQixPQURib0IsUUFDUUUsSUFEUkY7U0FFYSxVQURMRSxJQUxKSCxXQUtTbkIsT0FEUnFCOzthQUdhcEIsT0FIbEJtQixRQUdhRyxNQUhiSDtTQUlrQixVQURMRyxNQVBUSixXQU9jbEIsT0FIYm9COzthQU1rQm5CLE9BTnZCa0IsUUFNaUJJLEtBTmpCSixRQU1ZSyxNQU5aTCxRQU1LTSxNQU5MTjtTQU91QixVQURsQk0sTUFBT0QsTUFBS0QsS0FWYkwsV0FVbUJqQixPQU5sQm1COzthQVFvQmxCLE9BUnpCaUIsUUFRbUJPLE9BUm5CUCxRQVFjUSxNQVJkUixRQVFPUyxRQVJQVDtTQVN5QixVQURsQlMsUUFBT0QsTUFBS0QsT0FaZlIsV0FZcUJoQixPQVJwQmtCOzthQVV3QmpCLE9BVjdCZ0IsUUFVdUJVLE9BVnZCVixRQVVrQlcsTUFWbEJYLFFBVVdZLFFBVlhaO1NBVzZCLFVBRGxCWSxRQUFPRCxNQUFLRCxPQWRuQlgsV0FjeUJmLE9BVnhCaUI7O2FBWW9CaEIsT0FaekJlLFFBWW1CYSxPQVpuQmIsUUFZY2MsTUFaZGQsUUFZT2UsUUFaUGY7U0FheUIsVUFEbEJlLFFBQU9ELE1BQUtELE9BaEJmZCxXQWdCcUJkLE9BWnBCZ0I7O2FBY29CZixPQWR6QmMsUUFjbUJnQixPQWRuQmhCLFFBY2NpQixNQWRkakIsUUFjT2tCLE1BZFBsQjtTQWV5QixVQURsQmtCLE1BQU9ELE1BQUtELE9BbEJmakIsV0FrQnFCYixPQWRwQmU7O2FBcUJNYixPQXJCWFksUUFxQk1tQixNQXJCTm5CO1NBc0JXLFVBRExtQixNQXpCRnBCLFdBeUJPWCxPQXJCTmE7Z0JBZ0NMLElBRE1YLE9BL0JOVSxRQWdDTSxXQXBDRkQsV0FtQ0VULE9BL0JEVzs7YUFrQ2dCVixRQWxDckJTLFFBa0NnQm9CLElBbENoQnBCO1NBbUNxQixXQURMb0IsSUF0Q1pyQixXQXNDaUJSLFFBbENoQlU7O2FBb0NjVCxRQXBDbkJRLFFBb0NjcUIsSUFwQ2RyQjtTQXFDcUIsV0FEUHFCLElBeENWdEIsV0F3Q2VQLFFBcENkUzs7YUF1Q21CUixRQXZDeEJPLFFBdUNpQnNCLE1BdkNqQnRCLFFBdUNZdUIsTUF2Q1p2QjtTQXdDMEIsV0FEZHVCLE1BQUtELE1BM0NidkIsV0EyQ29CTixRQXZDbkJROzthQXlDcUJQLFFBekMxQk0sUUF5Q21Cd0IsUUF6Q25CeEIsUUF5Q2N5QixNQXpDZHpCO1NBMEMwQixXQURaeUIsTUFBS0QsUUE3Q2Z6QixXQTZDc0JMLFFBekNyQk87Z0JBd0JMLElBRE15QixRQXZCTjFCLFFBd0JNLFdBNUJGRCxXQTJCRTJCLFFBdkJEekI7Z0JBMEJMLElBRE0wQixRQXpCTjNCLFFBMEJNLFdBOUJGRCxXQTZCRTRCLFFBekJEMUI7O2FBcUR1QjJCLFFBckQ1QjVCLFFBcURnQjZCLFdBckRoQjdCO1NBc0Q0QixXQURaNkIsV0F6RFo5QixXQXlEd0I2QixRQXJEdkIzQjs7YUF1RHVCNkIsUUF2RDVCOUIsUUF1RGdCK0IsV0F2RGhCL0I7U0F3RDRCLFdBRForQixXQTNEWmhDLFdBMkR3QitCLFFBdkR2QjdCO2dCQThCTCxJQURPK0IsUUE3QlBoQyxRQThCTyxXQWxDSEQsV0FpQ0dpQyxRQTdCRi9COzthQTRDK0JnQyxRQTVDcENqQyxRQTRDMEJrQyxTQTVDMUJsQyxRQTRDZW1DLFVBNUNmbkM7U0E2Q29DLFdBRHJCbUMsVUFBV0QsU0FoRHRCbkMsV0FnRGdDa0MsUUE1Qy9CaEM7O2FBOENzQm1DLFFBOUMzQnBDLFFBOENrQnFDLFFBOUNsQnJDO1NBK0MyQixXQURUcUMsUUFsRGR0QyxXQWtEdUJxQyxRQTlDdEJuQztnQkFpREwsSUFEZXFDLFFBaERmdEMsUUFpRGUsV0FyRFhELFdBb0RXdUMsUUFoRFZyQzs7YUFrRGVzQyxRQWxEcEJ2QyxRQWtEZXdDLElBbERmeEM7U0FtRG9CLFdBREx3QyxJQXREWHpDLFdBc0RnQndDLFFBbERmdEM7O2FBMkJhd0MsUUEzQmxCekMsUUEyQmUwQyxFQTNCZjFDLFFBMkJRMkMsTUEzQlIzQztTQTRCa0IsV0FEVjJDLE1BQU9ELEVBL0JYM0MsV0ErQmMwQyxRQTNCYnhDLE9BMkREO29DQS9HQU4sYUFuREFsQixVQW1HQXNCOzs7a0JReGxCQzZDLEdBQUksVUFBSkEsRUFBTztpQkFDUkMsR0FBSSxPQUFKQSxJQUFPO2lCQUNQQSxFQUFFRCxHQUFJLE9BQUpBLEVBQUksUUFBUTtzQkFNTUMsRUFBRUQsR0FFNUIsSUFBSUUsSUFGc0JELEtBRTFCLE9BRjRCRCxFQUU1QixPQUFJRSxHQUdEOzZCQUU4QkQsRUFBRUUsS0FBS0g7TUFFeEMsSUFBSUUsSUFGNkJELEtBRWpDLE9BQUlDLFFBRitCQyxNQUFGRixPQUFPRCxNQVFqQzsyQkFFd0JDLEVBQUVHLEdBRWpDLElBQUlGLElBRjJCRCxLQUUvQixPQUFJQyxNQUY2QkUsTUFFakMsT0FBSUYsR0FHRDtrQkFFSUQsR0FBVyxjQUFYQSxLQUFXLFFBQW1CO2tCQUM5QkEsR0FBVyxjQUFYQSxNQUFXLFFBQXNCOzs7OztJQ3JDeEMsU0NIRUksU0RTU0MsR0FBSSxpQkFBSkEsRUFBb0I7SUFOL0IsU0NKRUMsWURXWUQsR0FBSSwwQkFBSkEsRUFBNkI7SUFQM0M7YUNNRUUsSUQ2Q0lDLEVBQUVDLEdBQU8sc0JBQVRELEVBQUVDLEdBQUZELEVBQUVDLENBQTJCO0lBbkRuQyxTQ09FQyxJRDZDSUYsRUFBRUMsR0FBTyx5QkFBVEQsRUFBRUMsR0FBRkQsRUFBRUMsQ0FBMkI7SUFwRG5DLFNDb0NFRSxJRHlDSUgsR0FBSSxZQUFKQSxXQUE0QjtJQTdFbEMsU0MwQ0VJLEtEeUNLSixHQUFJLE9BQUpBLE1BQWU7SUE0RXRCOztLQUVBO0tBRUE7S0FFQTtLQUVBO0tBRUE7S0F6S0E7O0lBeUtBLGFBc0JRYSxHQUFHQztNQUNYO2dDQURRRDtPQUNSLHlCQURXQztPQUVILG9CQURKQyxLQUEwQkM7TUFFOUIsaUJBSFFILEtBRUpoQixJQURBa0I7TUFHSixpQkFKV0QsS0FFUGpCLEVBREFrQixHQUEwQkM7TUFHOUIsNEJBRkluQixFQUdvQjtJQTNCeEIsU0NwREVvQixZRHFGWXRCO01Wak9qQixRVWlPaUJBLGNBQzBDLE9BRDFDQSxFQUNXLE9DL012QkcsNEJEK00wRTtJQWxDNUUsU0NsREVvQixlRGlIZUMsR0FDakIsT0FEaUJBLG9CQUNZO0lBaEU3QixTQ2pERUM7TURrSGlCOztpQkM5T2pCdEI7O2dCRGlQaUM7SUFwRW5DLFNDaERFdUI7TURzSHFCOztrQkFHWjtJQXpFWCxTQy9DRUMsY0QwSGMzQixHQUNoQixtQ0FEZ0JBLEVBQ0M7SUE1RWpCLFNDN0NFNEIsa0JENkhrQjFCO01WaFJ2QjtRVWtSWSwrQkFGV0E7OzsrQkFHRjtRQVBsQixXQU9zQjtJQW5GdEIsU0NtREUyQixrQkRvQ2tCM0I7TUFDcEIsNEJBRG9CQSxHQUVQMUU7TUFDWDtXQUZFc0csS0FDU3RHLEVBQ0ksV0FIRzBFO1FBSVosMEJBSllBLEVBRVAxRTtRQUVMOzs7O3NCQUVDLE9BTlcwRTtRQUlaLElBQ2dCLElBSFgxRSxnQkFNUDtJQS9GTixTRWxKRXdHLFVGbVBnQnRDO01BQXNCLE9DOUN0Q21DLGtCRDhDc0MsMEJBQXRCbkMsR0FBOEM7SUFqR2hFLFNFbkpFdUMsY0Z3UG9CL0I7TVZyU3pCO1FVdVNZLGlDQUZhQTs7OytCQUdKO1FBUEksV0FPQTtJQXhHdEIsU0kzSUVnQyxPSnVQVWQsR0FBR0M7TUFDZixLQURZRCxHQUVKLE9BRk9DLE9BR1BjLEdBSElmLE1BR1ZnQixHQUhVaEIsTUFHUSxVQUFsQmdCLEdJMVBBRixPSjBQTUMsR0FIT2QsSUFHYztJQVduQjs7S0FDQztLQUNBO2FNM1JUbUIsU055U2FDLEtBQUtDLEtBQUtDO01BQzRCLElBQWpEQyxFQUFpRCw0QkFBMUIsY0FERkQsS0FBVkYsS0FBS0M7TUFFcEIseUJBRElFLEVBRHFCRDtNQUV6QixPQURJQyxDQUVIO0lBakJVLFNNNVJUQyxVTitTU0YsTUFDWCxPTS9TRUgsaUJOOFNTRyxLQUM2RDtJQXBCN0QsU003UlRHLFNObVRhSCxNQUNmLE9NbFRFSCxpQk5pVGFHLEtBQzJEO0lBdkIvRCxTTXJRVEk7TU5vU0YsU0FBUUM7UVYzVlg7UVUyVmtCO3VCQUNMO2NBQ0hsQixhQUFIbUI7O1lBRU0sY0FGTkE7Ozs7c0JBQUduQixFQU1LO01BQ0osT0FUQWtCLEtBU0EscUNBQXNCO0lBeENuQixTTWpRVEUsYU5rVGFDLEdBQUdqRDtNQUNsQiw0QkFEZWlELEdBQUdqRCxJQUNsQixxQkFEa0JBLEdBQ21CO0lBbEQxQixTTWxRVGtELGNOc1RjRCxHQUFHakQ7TUFDbkIsc0JBRGdCaUQsR0FBR2pELElBQ25CLHNCQURtQkEsR0FDMEI7SUFyRGxDLFNNaFFUbUQsT051VE9GLEdBQUdqRCxFQUFFb0QsSUFBSUM7TVZuWHJCLFFVbVhpQkQsWUFBSUMsNkJBQU5yRCxLQUFNcUQsWUFBSkQ7T0FHVCw0QkFISUgsR0FBR2pELEVBQUVvRCxJQUFJQztNQUViLE9DbFdIcEQsdUJEbVc2QjtJQTFEcEIsU00vUFRxRCxpQk4yVGlCTCxHQUFHakQsRUFBRW9ELElBQUlDO01WeFgvQixRVXdYMkJELFlBQUlDLDhCQUFOckQsS0FBTXFELFlBQUpEO09BR25CLHNCQUhjSCxHQUFHakQsRUFBRW9ELElBQUlDO01BRXZCLE9DdldIcEQsaUNEd1dvQztJQS9EM0IsU0NwSFRzRCxhRDBMYUMsS0FBSzlELEdBQUkseUJBQVQ4RCxLQUFLOUQsSUFBZ0M7SUF0RXpDLFNNeFFUK0QsTU5vVlVSLElBQUssY0FBTEEsSUFBZSw2QkFBZkEsR0FBbUM7SUE1RXBDLFNNdlFUUyxZTm9WZ0JUO01WellyQixLVTBZUSxjQURhQTs7UUFFYiwrQkFGYUEsSUFFa0I7MkJBQUc7SUEvRTVCLFNLNVJUVSxXTG9YWXBCLEtBQUtDLEtBQUtDO01BQzRCLElBQWhEQyxFQUFnRCwyQkFBMUIsY0FERkQsS0FBVkYsS0FBS0M7TUFFbkIseUJBRElFLEVBRG9CRDtNQUV4QixPQURJQyxDQUVIO0lBM0ZVLFNLN1JUa0IsWUwwWFFuQixNQUNWLE9LMVhFa0IsaUJMeVhRbEIsS0FDaUM7SUE5RmhDLFNLOVJUb0IsV0w4WFlwQixNQUNkLE9LN1hFa0IsaUJMNFhZbEIsS0FDK0I7SUFqR2xDLFNLdlBUcUIsTUwrVk1DLEdBQUcvRCxFQUFFb0QsSUFBSUM7TVZwYXBCLFFVb2FnQkQsWUFBSUMsNkJBQU5yRCxLQUFNcUQsWUFBSkQ7T0FHUixxQkFIR1csR0FBRy9ELEVBQUVvRCxJQUFJQztNQUVaLE9DblpIcEQsc0JEb1o0QjtJQTNHbkIsU0E2R0wrRCxvQkFBb0JELEdBQUcvRCxFQUFFb0QsSUFBSUM7VUFBSlksVUFBSUM7TUFDbkM7Z0JBRG1DQSxNQUNsQjtRQUNQLElBQUp2RSxFQUFJLGNBRmdCb0UsR0FBRy9ELEVBQUVpRSxNQUFJQztRQUV6QixTQUFKdkUsRUFFQztRQUZHLElBR0gsTUFMNEJ1RSxRQUU3QnZFLE1BR0MsTUFMd0JzRSxRQUV6QnRFLE1BRnlCc0UsWUFBSUMsWUFNaEM7SUFuSFEsU0N2R1RHLGFENE5hTixHQUFHL0QsRUFBRW9ELElBQUlDO01WamIzQixRVWlidUJELFlBQUlDLDZCQUFOckQsS0FBTXFELFlBQUpEO09BR2YsT0FYQ1ksb0JBUVNELEdBQUcvRCxFQUFFb0QsSUFBSUM7TUFFbkIsT0NoYUhwRCw2QkRpYW1DO0lBeEgxQixTQ3RHVHFFLG9CRGdPb0JQLEdBQUdWO01BQ2pCLElBQUpyRCxFQUFJLGtCQURpQnFEO01BRXpCLGFBRnNCVSxHQUNsQi9ELElBRHFCcUQ7TUFFekIsNEJBRElyRCxFQUVvQjtJQTdIYixTQ3pHVHVFLFdEME9XZjtNQUNiLFNBQVFnQixhQUFhQzs7O3VCQUNiLE9BRGFBO2NBRWJ4QyxjQUFOQyxjQUNNbUIseUJBRE5uQjtVQUVFLGdCQUZGQSxLQUZtQnVDLFlBR2JwQjtVQUNKLGtCQURJQSw0QkFEQXBCO1VBSUt5QyxPQUFLckI7TUFDaEI7UUFBUSxJQUFKdkQsRUFBSSxnQ0FSRzBEO1FBUUgsU0FBSjFEO1VBQ1UsS0FGSDRFLEtBSUQ7bUJBVkpGLGFBV2lCLGtCQUxQbkIsU0FBTHFCOztVQU1GLFFBTEw1RTtZQWNRLElBQU42RSxJQUFNLG9CQWRSN0U7WUFlSSxjQXZCRzBELEtBc0JMbUIsUUFkRjdFO1lBY1EsSUFDSixNQWhCUXVELE1BQ1p2RCxNQWVJLFVBREY2RSxJQWZLRCxrQkFBS3JCOztVQU9KLElBQU53QixJQUFNLGtCQU5SL0U7VUFPSyxjQWZFMEQsS0FjTHFCLE1BTkYvRTtVQVFLLG1CQWhCRTBEO1VBZ0JGLEdBVEVrQjtXQVlEO21CQVpNckIsTUFDWnZEO2lCQVBFMEUsYUFtQmlCLGtCQURUTixnQkFMUlcsSUFQS0g7O29CQU9MRzswQ0FZNkI7SUEzSjFCLFNLeFFUQyxjTDRhZWY7TVZoZXBCO1FVZ2U4QiwrQkFBVkEsSUFBZ0M7MkJBQUc7SUFwS3pDLFNDN0pUZ0IsV0R1VVdyQyxHQUFJLDJCTXpjZk4sT055Y1dNLEVBQXdCO0lBMUsxQixTQzVKVHNDLGFEdVVhaEYsR0FBSSxPTTdhakJrRCxjQTdCQWQsT04wY2FwQyxFQUEwQjtJQTNLOUIsU0MzSlRpRixZRHVVWWpGLEdBQUksT003YWhCZ0QsYUE5QkFaLE9OMmNZcEMsRUFBeUI7SUE1SzVCLFNDMUpUa0YsVUR1VVU1SjtNQUF5QixPTS9hbkM0SCxjQTdCQWQsT040Y21DLDRCQUF6QjlHLEdBQTBDO0lBN0szQyxTQ3pKVDZKLFlEdVVZM0YsR0FBeUIsT01oYnJDMEQsY0E3QkFkLE9KaUJBTixVRjRiWXRDLEdBQTRDO0lBOUsvQyxTQ3hKVDRGLGNEdVVjcEY7TUFDaEIsY00vY0VvQyxPTjhjY3BDO01BQ1Esb0JNL2N0Qm9DO01OK2MrQyxxQk0vYy9DQSxPTitjMkQ7SUFoTGxELFNDdkpUaUQ7TUR3VW1CLG9CTWhkbkJqRCxXTmdkNEMscUJNaGQ1Q0EsT05nZHdEO0lBakwvQyxTQ3RKVGtELFdEMlVXNUMsR0FBSSwyQk1uZGZMLE9ObWRXSyxFQUF3QjtJQXJMMUIsU0NySlQ2QyxhRDJVYXZGLEdBQUksT014YmpCa0QsY0E1QkFiLE9Ob2RhckMsRUFBMEI7SUF0TDlCLFNDcEpUd0YsWUQyVVl4RixHQUFJLE9NeGJoQmdELGFBN0JBWCxPTnFkWXJDLEVBQXlCO0lBdkw1QixTQ25KVHlGLFVEMlVVbks7TUFBeUIsT00xYm5DNEgsY0E1QkFiLE9Oc2RtQyw0QkFBekIvRyxHQUEwQztJQXhMM0MsU0NsSlRvSyxZRDJVWWxHLEdBQXlCLE9NM2JyQzBELGNBNUJBYixPSmdCQVAsVUZ1Y1l0QyxHQUE0QztJQXpML0MsU0NqSlRtRyxjRDJVYzNGO01BQ2hCLGNNemRFcUMsT053ZGNyQztNQUNRLG9CTXpkdEJxQztNTnlkK0MscUJNemQvQ0EsT055ZDJEO0lBM0xsRCxTQ2hKVHVEO01ENFVtQixvQk0xZG5CdkQsV04wZDRDLHFCTTFkNUNBLE9OMGR3RDtJ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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQzJuQ1NDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMW5DSkc7Ozs7Ozs7O0tBZ0tBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFtQjs7Ozs7O1VEckoxQjs7Ozs7Ozs7O0lDQUE7eUJDQ1VFLHVCQUF1QkEsa0JBQW1CQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJRERwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDT3dCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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 \ No newline at end of file diff --git a/french_law/ocaml/law_source/aides_logement.ml b/french_law/ocaml/law_source/aides_logement.ml index 29b1ee7c..b6d4e766 100644 --- a/french_law/ocaml/law_source/aides_logement.ml +++ b/french_law/ocaml/law_source/aides_logement.ml @@ -4483,8 +4483,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2189; start_column=14; - end_line=2189; end_column=55; + start_line=2188; start_column=14; + end_line=2188; end_column=55; law_headings=["Article 9"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -4756,9 +4756,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3606; + start_line=3605; start_column=6; - end_line=3613; end_column=28; + end_line=3612; end_column=28; law_headings= ["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; @@ -4850,9 +4850,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3069; + start_line=3068; start_column=6; - end_line=3076; end_column=28; + end_line=3075; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -4939,9 +4939,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1997; + start_line=1996; start_column=6; - end_line=2004; end_column=28; + end_line=2003; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -5186,8 +5186,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2252; start_column=29; - end_line=2252; end_column=55; + start_line=2251; start_column=29; + end_line=2251; end_column=55; law_headings=["Article 14"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -5457,9 +5457,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3388; + start_line=3387; start_column=5; - end_line=3396; end_column=35; + end_line=3395; end_column=35; law_headings= ["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; @@ -5512,9 +5512,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2852; + start_line=2851; start_column=5; - end_line=2860; end_column=35; + end_line=2859; end_column=35; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -5711,9 +5711,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3243; + start_line=3242; start_column=14; - end_line=3243; end_column=42; + end_line=3242; end_column=42; law_headings=["Article 15"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -5856,9 +5856,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3366; + start_line=3365; start_column=5; - end_line=3374; end_column=35; + end_line=3373; end_column=35; law_headings= ["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; @@ -5911,9 +5911,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2831; + start_line=2830; start_column=5; - end_line=2839; end_column=35; + end_line=2838; end_column=35; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -6099,8 +6099,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2333; start_column=14; - end_line=2333; end_column=55; + start_line=2332; start_column=14; + end_line=2332; end_column=55; law_headings=["Article 14"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -6224,9 +6224,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3301; + start_line=3300; start_column=5; - end_line=3309; end_column=35; + end_line=3308; end_column=35; law_headings= ["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; @@ -6279,9 +6279,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2766; + start_line=2765; start_column=5; - end_line=2774; end_column=35; + end_line=2773; end_column=35; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -6489,9 +6489,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2398; + start_line=2397; start_column=14; - end_line=2398; end_column=63; + end_line=2397; end_column=63; law_headings= ["Article 16"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; @@ -6514,9 +6514,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2079; + start_line=2078; start_column=14; - end_line=2079; end_column=63; + end_line=2078; end_column=63; law_headings=["Article 7"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -6791,9 +6791,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1927; + start_line=1926; start_column=6; - end_line=1934; end_column=28; + end_line=1933; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -6949,9 +6949,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2999; + start_line=2998; start_column=6; - end_line=3006; end_column=28; + end_line=3005; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7033,9 +7033,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3535; + start_line=3534; start_column=6; - end_line=3542; end_column=28; + end_line=3541; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7201,8 +7201,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2427; start_column=14; - end_line=2427; end_column=49; + start_line=2426; start_column=14; + end_line=2426; end_column=49; law_headings=["Article 16"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7349,8 +7349,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1853; start_column=6; - end_line=1860; end_column=28; + start_line=1852; start_column=6; + end_line=1859; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7452,8 +7452,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2925; start_column=6; - end_line=2932; end_column=28; + start_line=2924; start_column=6; + end_line=2931; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7504,8 +7504,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3461; start_column=6; - end_line=3468; end_column=28; + start_line=3460; start_column=6; + end_line=3467; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7616,8 +7616,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2193; start_column=14; - end_line=2193; end_column=49; + start_line=2192; start_column=14; + end_line=2192; end_column=49; law_headings=["Article 9"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7952,8 +7952,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3185; start_column=5; - end_line=3194; end_column=28; + start_line=3184; start_column=5; + end_line=3193; end_column=28; law_headings=["Article 47"; "Articles en vigueur à partir du 01 janvier 2021 - Arrêté du 31 décembre 2020 relatif au calcul des aides personnelles au logement pour l'année 2021 NOR : LOGL2028351A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8039,9 +8039,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3432; + start_line=3431; start_column=5; - end_line=3440; end_column=34; + end_line=3439; end_column=34; law_headings=["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8081,8 +8081,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme money_of_cents_string "758400"))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2895; start_column=5; - end_line=2903; end_column=34; + start_line=2894; start_column=5; + end_line=2902; end_column=34; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8116,8 +8116,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "758400"))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1825; start_column=5; - end_line=1833; end_column=34; + start_line=1824; start_column=5; + end_line=1832; end_column=34; law_headings=["Article 46"; "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8155,8 +8155,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3694; start_column=5; - end_line=3703; end_column=28; + start_line=3693; start_column=5; + end_line=3702; end_column=28; law_headings=["Article 47"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8425,8 +8425,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3247; start_column=14; - end_line=3247; end_column=44; + start_line=3246; start_column=14; + end_line=3246; end_column=44; law_headings=["Article 15"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8578,8 +8578,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2336; start_column=14; - end_line=2336; end_column=29; + start_line=2335; start_column=14; + end_line=2335; end_column=29; law_headings=["Article 14"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8901,8 +8901,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2380; start_column=5; - end_line=2381; end_column=34; + start_line=2379; start_column=5; + end_line=2380; end_column=34; law_headings=["Article 16"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8944,8 +8944,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2389; start_column=5; - end_line=2390; end_column=34; + start_line=2388; start_column=5; + end_line=2389; end_column=34; law_headings=["Article 16"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8987,8 +8987,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2402; start_column=5; - end_line=2402; end_column=35; + start_line=2401; start_column=5; + end_line=2401; end_column=35; law_headings=["Article 16"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -9121,9 +9121,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2152; start_column=5; - end_line=2152; end_column=61; - law_headings=["Article 8"; "Article 7"; + start_line=2151; start_column=5; + end_line=2151; end_column=61; + law_headings=["Article 8"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and @@ -9231,9 +9231,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2145; start_column=14; - end_line=2145; end_column=37; - law_headings=["Article 8"; "Article 7"; + start_line=2144; start_column=14; + end_line=2144; end_column=37; + law_headings=["Article 8"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and @@ -9516,8 +9516,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2060; start_column=5; - end_line=2061; end_column=34; + start_line=2059; start_column=5; + end_line=2060; end_column=34; law_headings=["Article 7"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -9557,8 +9557,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2070; start_column=5; - end_line=2071; end_column=34; + start_line=2069; start_column=5; + end_line=2070; end_column=34; law_headings=["Article 7"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -9598,8 +9598,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2084; start_column=5; - end_line=2084; end_column=35; + start_line=2083; start_column=5; + end_line=2083; end_column=35; law_headings=["Article 7"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -9920,8 +9920,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2207; start_column=14; - end_line=2207; end_column=36; + start_line=2206; start_column=14; + end_line=2206; end_column=36; law_headings=["Article 13"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -9993,8 +9993,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2282; start_column=14; - end_line=2282; end_column=28; + start_line=2281; start_column=14; + end_line=2281; end_column=28; law_headings=["Article 14"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -10162,8 +10162,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2306; start_column=14; - end_line=2306; end_column=33; + start_line=2305; start_column=14; + end_line=2305; end_column=33; law_headings=["Article 14"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -10405,8 +10405,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2313; start_column=14; - end_line=2313; end_column=33; + start_line=2312; start_column=14; + end_line=2312; end_column=33; law_headings=["Article 14"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -11284,8 +11284,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2530; start_column=14; - end_line=2530; end_column=48; + start_line=2529; start_column=14; + end_line=2529; end_column=48; law_headings=["Article 27"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -12811,7 +12811,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2407; start_column=14; end_line=2407; end_column=47; - law_headings=["Article 23"; "Article 18"; + law_headings=["Article 23"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> decimal_of_string "0.416")) @@ -12837,7 +12838,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2406; start_column=14; end_line=2406; end_column=47; - law_headings=["Article 23"; "Article 18"; + law_headings=["Article 23"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> decimal_of_string "0.208")) @@ -12863,7 +12865,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2405; start_column=14; end_line=2405; end_column=47; - law_headings=["Article 23"; "Article 18"; + law_headings=["Article 23"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> money_of_cents_string "560085")) @@ -12889,7 +12892,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2485; start_column=14; end_line=2485; end_column=48; - law_headings=["Article 26"; "Article 18"; + law_headings=["Article 26"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> decimal_of_string "16.25")) @@ -12915,7 +12919,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2389; start_column=14; end_line=2389; end_column=48; - law_headings=["Article 22"; "Article 18"; + law_headings=["Article 22"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> money_of_cents_string "2211133")) @@ -12941,7 +12946,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2466; start_column=14; end_line=2466; end_column=50; - law_headings=["Article 25"; "Article 18"; + law_headings=["Article 25"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> @@ -12985,7 +12991,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2379; start_column=14; end_line=2379; end_column=42; - law_headings=["Article 21"; "Article 18"; + law_headings=["Article 21"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> money_of_cents_string "1000")) @@ -13011,7 +13018,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2367; start_column=14; end_line=2367; end_column=41; - law_headings=["Article 20"; "Article 18"; + law_headings=["Article 20"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> money_of_cents_string "500")) @@ -13057,7 +13065,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2438; start_column=7; end_line=2438; end_column=18; - law_headings=["Article 24"; "Article 18"; + law_headings=["Article 24"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -13119,9 +13128,9 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2495; start_column=7; - end_line=2495; end_column=18; - law_headings=["Article 24"; "Article 19"; + start_line=2494; start_column=7; + end_line=2494; end_column=18; + law_headings=["Article 24"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and @@ -13165,7 +13174,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2355; start_column=29; end_line=2355; end_column=64; - law_headings=["Article 19"; "Article 18"; + law_headings=["Article 19"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2022) (7) (1))))) @@ -13211,8 +13221,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2461; start_column=29; - end_line=2461; end_column=64; + start_line=2460; start_column=29; + end_line=2460; end_column=64; law_headings=["Article 19"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -13271,6 +13281,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=827; start_column=5; end_line=842; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -13355,6 +13366,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1083; start_column=5; end_line=1087; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -13488,6 +13500,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1116; start_column=5; end_line=1120; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -13621,6 +13634,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1149; start_column=5; end_line=1153; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -13754,6 +13768,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1182; start_column=5; end_line=1186; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -13887,6 +13902,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1215; start_column=5; end_line=1219; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -14020,6 +14036,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1248; start_column=5; end_line=1252; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -14153,6 +14170,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1281; start_column=5; end_line=1285; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -14286,6 +14304,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1314; start_column=5; end_line=1318; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -14411,6 +14430,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1347; start_column=5; end_line=1351; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -14544,6 +14564,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1380; start_column=5; end_line=1384; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -14669,6 +14690,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1413; start_column=5; end_line=1417; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -14794,6 +14816,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1446; start_column=5; end_line=1450; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -14919,6 +14942,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1479; start_column=5; end_line=1483; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -15044,6 +15068,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1512; start_column=5; end_line=1516; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -15169,6 +15194,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1545; start_column=5; end_line=1549; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -15294,6 +15320,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1578; start_column=5; end_line=1582; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -15419,6 +15446,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1611; start_column=5; end_line=1615; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -15544,6 +15572,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1644; start_column=5; end_line=1648; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -15669,6 +15698,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1677; start_column=5; end_line=1681; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -15794,6 +15824,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1710; start_column=5; end_line=1714; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -15919,6 +15950,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1743; start_column=5; end_line=1747; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -16044,6 +16076,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1776; start_column=5; end_line=1780; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -16169,6 +16202,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1809; start_column=5; end_line=1813; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -16294,6 +16328,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1842; start_column=5; end_line=1846; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -16419,6 +16454,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1875; start_column=5; end_line=1879; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -16544,6 +16580,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1908; start_column=5; end_line=1912; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -16669,6 +16706,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1941; start_column=5; end_line=1945; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -16794,6 +16832,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=1974; start_column=5; end_line=1978; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -16919,6 +16958,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=2007; start_column=5; end_line=2011; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -17044,6 +17084,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=2040; start_column=5; end_line=2044; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -17169,6 +17210,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=2073; start_column=5; end_line=2077; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -17294,6 +17336,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=2106; start_column=5; end_line=2110; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -17419,6 +17462,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=2139; start_column=5; end_line=2143; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -17544,6 +17588,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=2172; start_column=5; end_line=2176; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -17669,6 +17714,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=2205; start_column=5; end_line=2209; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -17794,6 +17840,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=2238; start_column=5; end_line=2242; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -17919,6 +17966,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=2271; start_column=5; end_line=2274; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -18039,6 +18087,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna start_line=2303; start_column=5; end_line=2306; end_column=36; law_headings=["Article 18"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -19246,10 +19295,9 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2475; start_column=14; - end_line=2475; end_column=42; + start_line=2474; start_column=14; + end_line=2474; end_column=42; law_headings=["Article 24"; - "Article 19"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and @@ -19285,7 +19333,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2419; start_column=14; end_line=2419; end_column=42; - law_headings=["Article 24"; "Article 18"; + law_headings=["Article 24"; + "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2022) (7) (1))))) @@ -21791,9 +21840,9 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3345; + start_line=3344; start_column=5; - end_line=3353; end_column=35; + end_line=3352; end_column=35; law_headings= ["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; @@ -21846,9 +21895,9 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2810; + start_line=2809; start_column=5; - end_line=2818; end_column=35; + end_line=2817; end_column=35; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22442,8 +22491,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2681; start_column=6; - end_line=2681; end_column=79; + start_line=2680; start_column=6; + end_line=2680; end_column=79; law_headings=["Article 43"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22480,8 +22529,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2718; start_column=6; - end_line=2719; end_column=38; + start_line=2717; start_column=6; + end_line=2718; end_column=38; law_headings=["Article 43"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22527,8 +22576,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2737; start_column=6; - end_line=2738; end_column=24; + start_line=2736; start_column=6; + end_line=2737; end_column=24; law_headings=["Article 43"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22557,8 +22606,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (money_of_cents_string "26329")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2699; start_column=6; - end_line=2700; end_column=46; + start_line=2698; start_column=6; + end_line=2699; end_column=46; law_headings=["Article 43"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22890,8 +22939,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1894; start_column=6; - end_line=1901; end_column=28; + start_line=1893; start_column=6; + end_line=1900; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22982,8 +23031,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2966; start_column=6; - end_line=2973; end_column=28; + start_line=2965; start_column=6; + end_line=2972; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -23030,8 +23079,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3502; start_column=6; - end_line=3509; end_column=28; + start_line=3501; start_column=6; + end_line=3508; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -23143,8 +23192,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2656; start_column=29; - end_line=2656; end_column=56; + start_line=2655; start_column=29; + end_line=2655; end_column=56; law_headings=["Article 40"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -23912,9 +23961,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3330; + start_line=3329; start_column=5; - end_line=3338; end_column=35; + end_line=3337; end_column=35; law_headings= ["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; @@ -23967,9 +24016,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2795; + start_line=2794; start_column=5; - end_line=2803; end_column=35; + end_line=2802; end_column=35; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -28391,9 +28440,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1954; + start_line=1953; start_column=6; - end_line=1961; end_column=28; + end_line=1960; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -28548,9 +28597,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3026; + start_line=3025; start_column=6; - end_line=3033; end_column=28; + end_line=3032; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -28631,9 +28680,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3562; + start_line=3561; start_column=6; - end_line=3569; end_column=28; + end_line=3568; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -28837,9 +28886,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1874; + start_line=1873; start_column=6; - end_line=1881; end_column=28; + end_line=1880; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -28957,8 +29006,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2946; start_column=6; - end_line=2953; end_column=28; + start_line=2945; start_column=6; + end_line=2952; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -29017,8 +29066,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3482; start_column=6; - end_line=3489; end_column=28; + start_line=3481; start_column=6; + end_line=3488; end_column=28; law_headings=["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -29153,8 +29202,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2631; start_column=5; - end_line=2631; end_column=16; + start_line=2630; start_column=5; + end_line=2630; end_column=16; law_headings=["Article 37"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -29252,8 +29301,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2590; start_column=29; - end_line=2590; end_column=56; + start_line=2589; start_column=29; + end_line=2589; end_column=56; law_headings=["Article 34"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -29487,9 +29536,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2610; + start_line=2609; start_column=5; - end_line=2610; end_column=16; + end_line=2609; end_column=16; law_headings=["Article 37"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -29805,9 +29854,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=3409; + start_line=3408; start_column=5; - end_line=3417; end_column=28; + end_line=3416; end_column=28; law_headings= ["Article 46"; "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; @@ -29884,9 +29933,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2873; + start_line=2872; start_column=5; - end_line=2881; end_column=28; + end_line=2880; end_column=28; law_headings= ["Article 46"; "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";